@oneworks/client 0.1.0-beta.0 → 0.1.0-beta.1
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/assets/{ActionSearchToolbar-8q-bk3mu.js → ActionSearchToolbar-BqRwfUQY.js} +1 -1
- package/dist/assets/{AgentRoomRoute-DfSI_dFH.js → AgentRoomRoute-BYgM7vgg.js} +1 -1
- package/dist/assets/{AgentRoomSessionRoute-DH9PdjZm.js → AgentRoomSessionRoute-DdoZY7qL.js} +1 -1
- package/dist/assets/{ArchiveRoute-E9-htB4H.js → ArchiveRoute-ydgLUN7p.js} +1 -1
- package/dist/assets/{AuthenticatedApp-CgBrvMuc.js → AuthenticatedApp-CK9TT7Nk.js} +192 -192
- package/dist/assets/{AutomationRoute-Bw2xw5bx.js → AutomationRoute-CpcRbNa8.js} +1 -1
- package/dist/assets/{BenchmarkRoute-3VS17jHr.js → BenchmarkRoute-CZRZVolT.js} +1 -1
- package/dist/assets/{ChatRoute-CBQ3j4Je.js → ChatRoute-DdRVEkAb.js} +1 -1
- package/dist/assets/{Collapse-B-oCiEx4.js → Collapse-CxTS9FJh.js} +1 -1
- package/dist/assets/{ComposerLanding-SZn_zRGX.js → ComposerLanding-BChGuCjF.js} +1 -1
- package/dist/assets/{ConfigRoute-Dv-7BRGG.js → ConfigRoute-D_EkHryB.js} +1 -1
- package/dist/assets/{InteractionStructureRoute-FDl9jRvT.js → InteractionStructureRoute-Dpjr6hIq.js} +1 -1
- package/dist/assets/{KnowledgeRoute-C5em_VSL.js → KnowledgeRoute-Bp4Da65A.js} +1 -1
- package/dist/assets/{LauncherApp-olYmK_zO.js → LauncherApp-ByUpDwod.js} +2 -2
- package/dist/assets/{LauncherRoute-Qt8dQkIk.js → LauncherRoute-B94P9m3I.js} +1 -1
- package/dist/assets/{MobileAwareSelect-BmK6WApn.js → MobileAwareSelect-CCAQrsxL.js} +1 -1
- package/dist/assets/{ModuleManagementRoute-B1I_8JKc.js → ModuleManagementRoute-DcrMX6P7.js} +1 -1
- package/dist/assets/{NotFoundRoute-Bj6_YY3I.js → NotFoundRoute-C1IfsiZY.js} +1 -1
- package/dist/assets/{PluginStoreRoute-B847PAZ5.js → PluginStoreRoute-7UBLkrWc.js} +1 -1
- package/dist/assets/{RouteContainerPanelTabs-BnIptVwq.js → RouteContainerPanelTabs-D8pC61tF.js} +1 -1
- package/dist/assets/{SchemaObjectEditor-B9fPfDyT.js → SchemaObjectEditor-DvwrURac.js} +1 -1
- package/dist/assets/{StandaloneMobileDebugRoute-BR4w_LeM.js → StandaloneMobileDebugRoute--yiQ5EdW.js} +1 -1
- package/dist/assets/{WorkspaceApp-BNmtIdn4.js → WorkspaceApp-l-h_IsMp.js} +3 -3
- package/dist/assets/{agent-room-session-paths-Dca8S6NN.js → agent-room-session-paths-DNpYqOr3.js} +3 -3
- package/dist/assets/{arc-JBUpUV6M.js → arc-Xh4h56Fv.js} +1 -1
- package/dist/assets/{blockDiagram-c4efeb88-DKhNwgEQ.js → blockDiagram-c4efeb88-CG3HxYeL.js} +1 -1
- package/dist/assets/{c4Diagram-c83219d4-CWODEGms.js → c4Diagram-c83219d4-DiEPAqCg.js} +1 -1
- package/dist/assets/channel-DH-F5Uqk.js +1 -0
- package/dist/assets/{classDiagram-beda092f-DlghsOqF.js → classDiagram-beda092f-Dwx44PuJ.js} +1 -1
- package/dist/assets/{classDiagram-v2-2358418a-CrSR8gWz.js → classDiagram-v2-2358418a-COXM437u.js} +1 -1
- package/dist/assets/client-build-info-6B4KoYHs.js +1 -0
- package/dist/assets/clone-DGri7oGq.js +1 -0
- package/dist/assets/{createText-1719965b-CLlPr73k.js → createText-1719965b-DPLMqVqY.js} +1 -1
- package/dist/assets/{cssMode-Bt_74RVV.js → cssMode-DfDq4hLs.js} +1 -1
- package/dist/assets/{dockPanelConstants-BWuu_DJp.js → dockPanelConstants-OzU6hJl5.js} +1 -1
- package/dist/assets/{edges-96097737-L_gy1fky.js → edges-96097737-ry9ejc8v.js} +1 -1
- package/dist/assets/{erDiagram-0228fc6a-X1QMD6me.js → erDiagram-0228fc6a-AcCPz3wc.js} +1 -1
- package/dist/assets/{flowDb-c6c81e3f-DNdWK0Po.js → flowDb-c6c81e3f-BGnBxhJf.js} +1 -1
- package/dist/assets/{flowDiagram-50d868cf-C2khStgw.js → flowDiagram-50d868cf-BnS6RFWo.js} +1 -1
- package/dist/assets/flowDiagram-v2-4f6560a1-C3klqpJG.js +1 -0
- package/dist/assets/{flowchart-elk-definition-6af322e1-C89sxd2D.js → flowchart-elk-definition-6af322e1-8-ynORZL.js} +1 -1
- package/dist/assets/{freemarker2-DZ1XIuHj.js → freemarker2-uFZBYLEW.js} +1 -1
- package/dist/assets/{ganttDiagram-a2739b55-Ba3rPNKd.js → ganttDiagram-a2739b55-3MEPfmMB.js} +1 -1
- package/dist/assets/{gitGraphDiagram-82fe8481-DTEFHHtN.js → gitGraphDiagram-82fe8481-BKYGV9pb.js} +1 -1
- package/dist/assets/{graph-BPujwFoF.js → graph-BEwlNa_j.js} +1 -1
- package/dist/assets/{handlebars-lOgsnnQw.js → handlebars-dg6IZCa7.js} +1 -1
- package/dist/assets/{html-DLHadu9L.js → html-KunL9NkW.js} +1 -1
- package/dist/assets/{htmlMode-VeiQ-IsQ.js → htmlMode-CrFpTEpC.js} +1 -1
- package/dist/assets/{index-5325376f-Cx2RM6pk.js → index-5325376f-CCcP_Ahl.js} +1 -1
- package/dist/assets/{index-D4eelxQF.js → index-BIs5hzci.js} +1 -1
- package/dist/assets/{index-CJEVYkL9.js → index-BggFUwYR.js} +1 -1
- package/dist/assets/{index-Cp4GfHnF.js → index-DdUqPqXW.js} +3 -3
- package/dist/assets/{index-CBFCjoHv.js → index-DhpAFZQZ.js} +1 -1
- package/dist/assets/{index-sFqkb8xv.js → index-YzfSzOLk.js} +1 -1
- package/dist/assets/{index-CWmEuVWV.js → index-ZOsqqPVv.js} +1 -1
- package/dist/assets/{index-DBUG8CzV.js → index-nXq6jwfM.js} +1 -1
- package/dist/assets/{infoDiagram-8eee0895-Bj9hWnDg.js → infoDiagram-8eee0895-BzZ34kgw.js} +1 -1
- package/dist/assets/{interaction-panel-mobile-debug-pages-1Gdivksn.js → interaction-panel-mobile-debug-pages-DXC3HSZU.js} +1 -1
- package/dist/assets/{javascript-CXJw-bvU.js → javascript-DA3fh3oR.js} +1 -1
- package/dist/assets/{journeyDiagram-c64418c1-BXAycrrn.js → journeyDiagram-c64418c1-B_kSGErn.js} +1 -1
- package/dist/assets/{jsonMode-DmUNJfpX.js → jsonMode-BDucSIBv.js} +1 -1
- package/dist/assets/{layout-Bp8GVMnq.js → layout-CRLM1T9z.js} +1 -1
- package/dist/assets/{line-olpPNgnh.js → line-Cdyr_7ve.js} +1 -1
- package/dist/assets/{linear-flh_7ux_.js → linear-y86GycLK.js} +1 -1
- package/dist/assets/{liquid-BiVpRgBP.js → liquid-mJp997il.js} +1 -1
- package/dist/assets/{lspLanguageFeatures-olWF83eX.js → lspLanguageFeatures-DiGGmudW.js} +1 -1
- package/dist/assets/{mdx-B5dr7YB-.js → mdx-Co6h2mZ2.js} +1 -1
- package/dist/assets/{mermaid.core-NVIiXnRA.js → mermaid.core-VYJIZL_J.js} +4 -4
- package/dist/assets/{mindmap-definition-8da855dc-BOCh8K8K.js → mindmap-definition-8da855dc-DKNG2gyr.js} +1 -1
- package/dist/assets/{pieDiagram-a8764435-CCitKBQK.js → pieDiagram-a8764435-Cu3up9mc.js} +1 -1
- package/dist/assets/{project-file-tree-icons-DqqhgvoI.js → project-file-tree-icons-CfonMx-1.js} +1 -1
- package/dist/assets/{python-BkEOPIle.js → python-BUUKzwmG.js} +1 -1
- package/dist/assets/{quadrantDiagram-1e28029f-C_FvcHzZ.js → quadrantDiagram-1e28029f-DHW8R4el.js} +1 -1
- package/dist/assets/{razor-BCMQgdis.js → razor-ZPlQfY47.js} +1 -1
- package/dist/assets/{requirementDiagram-08caed73-B001ugYd.js → requirementDiagram-08caed73-CXWNC-_B.js} +1 -1
- package/dist/assets/{route-plugin-chrome-B-Goj3vG.js → route-plugin-chrome-bV1HEaju.js} +1 -1
- package/dist/assets/{sankeyDiagram-a04cb91d-BnkC9YW5.js → sankeyDiagram-a04cb91d-DhKL8pMH.js} +1 -1
- package/dist/assets/{sequenceDiagram-c5b8d532-BGiFCs5z.js → sequenceDiagram-c5b8d532-D3fAcQeI.js} +1 -1
- package/dist/assets/{shortcutUtils-20iqPDwh.js → shortcutUtils-B8h6g_7o.js} +1 -1
- package/dist/assets/{stateDiagram-1ecb1508-Uk4XxTkP.js → stateDiagram-1ecb1508-wKQS4LMF.js} +1 -1
- package/dist/assets/{stateDiagram-v2-c2b004d7-Db6Ouywh.js → stateDiagram-v2-c2b004d7-D5qOKtOa.js} +1 -1
- package/dist/assets/{styles-b4e223ce-CfG45yIm.js → styles-b4e223ce-CpBwPex_.js} +1 -1
- package/dist/assets/{styles-ca3715f6-BGGbMvKc.js → styles-ca3715f6-4bqpN1KH.js} +1 -1
- package/dist/assets/{styles-d45a18b0-mHteeqS2.js → styles-d45a18b0-B0RCBD5D.js} +1 -1
- package/dist/assets/{svgDrawCommon-b86b1483-BAMR2PsF.js → svgDrawCommon-b86b1483-C9KXk4gS.js} +1 -1
- package/dist/assets/{timeline-definition-faaaa080-DLBoPuJD.js → timeline-definition-faaaa080-B1Bfjd0m.js} +1 -1
- package/dist/assets/{tsMode-BTzZ8Zos.js → tsMode-Bd8BwKXc.js} +1 -1
- package/dist/assets/{typescript-_rLmAd51.js → typescript-CLd6MPK0.js} +1 -1
- package/dist/assets/{use-app-preferences-gyulV-hA.js → use-app-preferences-DGCafwsP.js} +1 -1
- package/dist/assets/{use-chat-session-actions-DDZ5KCua.js → use-chat-session-actions-wF_HiVzj.js} +1 -1
- package/dist/assets/{vendor-state-BYwEPTaO.js → vendor-state-zjcHRN98.js} +1 -1
- package/dist/assets/{workspace-file-openers-BwZ5cSeq.js → workspace-file-openers-Dj_Cfk1S.js} +1 -1
- package/dist/assets/{xml-BAU8TJ-c.js → xml-BeC1cWk3.js} +1 -1
- package/dist/assets/{xychartDiagram-f5964ef8-CNfcxTsi.js → xychartDiagram-f5964ef8-DbJVUSHy.js} +1 -1
- package/dist/assets/{yaml-_cphTIn0.js → yaml-gQrw9AcN.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +17 -17
- package/dist/assets/channel-BsuHYNQO.js +0 -1
- package/dist/assets/client-build-info-bcijLdfD.js +0 -1
- package/dist/assets/clone-BKV6leIk.js +0 -1
- package/dist/assets/flowDiagram-v2-4f6560a1-DW5hyUju.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LauncherApp-
|
|
2
|
-
var kp=Object.defineProperty;var xp=(e,t,n)=>t in e?kp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var H=(e,t,n)=>xp(e,typeof t!="symbol"?t+"":t,n);import{g as Ii,R as I,a as As,r as u,b as Wo,c as _i,d as Pp,e as Rc,j as L,u as Tp,N as Da,f as Ep,B as Rp}from"./vendor-react-CnooHTJc.js";import{u as un,a as Ge,b as Ap,i as Ac,c as Dp,S as Mp}from"./vendor-state-BYwEPTaO.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();const Wr=1024,Pn=10.24,Op=2.75,Fp=1.35,Dc=.76,tn=.46,An=118,nn=12,Mc=0,Ip=[0,0,1],lt=(e,t,n,o,r)=>({amp:e.signedRandomRange(t,n),phase:e.randomRange(0,Math.PI*2),timeFreq:e.randomChoice(r),uFreq:e.randomChoice(o)}),Hr=e=>({shape:{depthScale:e.signedRandomRange(.08,.22),diagonal:e.signedRandomRange(.04,.12),lobeBalance:e.signedRandomRange(.08,.2),phaseDrift:e.signedRandomRange(.03,.09),waist:e.signedRandomRange(.08,.2),xScale:e.signedRandomRange(.08,.18),yScale:e.signedRandomRange(.1,.22)},twist:[lt(e,.1,.18,[1,2,3],[1,2]),lt(e,.04,.09,[2,3,4],[2,3])],warpX:[lt(e,.02,.05,[1,2],[1,2]),lt(e,.01,.025,[3,4],[2,3])],warpY:[lt(e,.018,.04,[1,2],[1,2]),lt(e,.01,.02,[3,4],[2,3])],warpZ:[lt(e,.055,.12,[1,2,3],[1,2]),lt(e,.025,.055,[2,3,4],[2,3])],width:[lt(e,.035,.06,[2,3,4],[1,2]),lt(e,.015,.03,[3,4,5],[2,3])]}),_p=(e,t,n,o=Pn)=>{const r=e+n,a=Math.floor(r/o),i=(r%o+o)%o/o,s=Math.sin(Math.PI*i)**2;return{cycleIndex:a,envelope:s*t,phase:i}},Ao=e=>String(e??"").trim().replace(/[^\w-]/g,"").slice(0,64)||null,_t=()=>{var t;const e=new Uint32Array(2);return(t=globalThis.crypto)!=null&&t.getRandomValues?globalThis.crypto.getRandomValues(e):(e[0]=Math.floor(Math.random()*4294967295),e[1]=Date.now()>>>0),Ao(`${e[0].toString(36)}${e[1].toString(36)}`)??"oneworks"},Lp=e=>{let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0},Ds=e=>{let t=Lp(e)||2654435769;return()=>{t+=1831565813;let n=t;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}},Cn=(e,t,n)=>{const o=Math.PI*2*n;return e.reduce((r,a)=>r+a.amp*Math.sin(a.uFreq*t+a.timeFreq*o+a.phase),0)},Ma=(e,t)=>{const{shape:n}=t.cycle,o=t.envelope||0,r=Math.PI*2*(t.phase||0),a=e+o*n.phaseDrift*Math.sin(r),i=Math.sin(a),s=Math.cos(a),l=Math.tanh(1.8*i),c=1-o*n.waist*Math.cos(2*a)**2,d=1+o*n.lobeBalance*l,m=1+o*n.xScale,p=1+o*n.yScale*Math.sin(r+.8),g=1+o*n.depthScale*Math.cos(r+.35),h=o*n.diagonal;return[Op*m*d*c*i+h*Math.sin(3*a+r),Fp*p*Math.sin(2*a)*(1-.16*o*l),Dc*g*s+o*.08*Math.sin(3*a-r)]},Np=(e,t)=>{const o=Ma(e-.001,t),r=Ma(e+.001,t);return[(r[0]-o[0])/(2*.001),(r[1]-o[1])/(2*.001),(r[2]-o[2])/(2*.001)]},Ur=(e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]],Vr=(e,t)=>[e[0]*t,e[1]*t,e[2]*t],Ms=(e,t)=>[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]],zr=e=>{const t=Math.hypot(e[0],e[1],e[2])||1;return[e[0]/t,e[1]/t,e[2]/t]},Oc=(e,t)=>{const n=[],o=e?Math.PI*2*t.phase*e:0;for(let r=0;r<An;r+=1){const a=Mc+2*Math.PI*r/An,i=Ma(a,t),s=zr(Np(a,t));let l=Ms(Ip,s);l=l[0]**2+l[1]**2+l[2]**2<1e-6?[1,0,0]:zr(l);const c=zr(Ms(s,l)),d=t.envelope*Cn(t.cycle.twist,a,t.phase),m=1+t.envelope*Cn(t.cycle.width,a,t.phase)+t.envelope*t.cycle.shape.waist*.28*Math.sin(2*a+Math.PI*2*t.phase),p=a/2+Math.PI*.1+d+o,g=Ur(Vr(l,Math.cos(p)),Vr(c,Math.sin(p))),h=[t.envelope*Cn(t.cycle.warpX,a,t.phase),t.envelope*Cn(t.cycle.warpY,a,t.phase),t.envelope*Cn(t.cycle.warpZ,a,t.phase)],v=Ur(i,h),f=[];for(let y=0;y<=nn;y+=1){const b=-tn+2*tn*y/nn,S=Ur(v,Vr(g,b*m));f.push({u:a,v:b,x:S[0],y:S[1],z:S[2]})}n.push(f)}return n},$p=e=>{const t=e.flat(),n=Math.min(...t.map(c=>c.x)),o=Math.max(...t.map(c=>c.x)),r=Math.min(...t.map(c=>c.y)),a=Math.max(...t.map(c=>c.y)),i=Math.min(820/(o-n),610/(a-r)),s=(n+o)/2,l=(r+a)/2;return c=>({u:c.u,v:c.v,x:512+(c.x-s)*i,y:512-((c.y-l)*i+c.z*i*.045),z:c.z})},Bp=(e,t,n)=>{const o=Oc(e,t),r=[];for(let a=0;a<An;a+=1){const i=(a+1)%An,s=i===0;for(let l=0;l<nn;l+=1){const c=jp(o,n,a,l,i,s);if(!c)continue;const d=c.reduce((g,h)=>g+h.z,0)/4,m=Mc+2*Math.PI*(a+.5)/An,p=-tn+2*tn*(l+.5)/nn;r.push({depth:d,points:Wp(c,.82),sortDepth:d+.11*Math.cos(m),u:m,v:p})}}return r.sort((a,i)=>a.sortDepth-i.sortDepth||a.u-i.u||a.v-i.v)},jp=(e,t,n,o,r,a)=>{const i=a?nn-o:o,s=a?nn-o-1:o+1,l=e[n],c=e[r],d=l==null?void 0:l[o],m=c==null?void 0:c[i],p=c==null?void 0:c[s],g=l==null?void 0:l[o+1];return d&&m&&p&&g?[t(d),t(m),t(p),t(g)]:null},Wp=(e,t)=>{const n=e.reduce((r,a)=>r+a.x,0)/e.length,o=e.reduce((r,a)=>r+a.y,0)/e.length;return e.map(r=>{const a=r.x-n,i=r.y-o,s=Math.hypot(a,i)||1;return{...r,x:r.x+t*a/s,y:r.y+t*i/s}})},Hp=(e,t,n,o,r,a)=>{const i=.5+.5*(n/(Dc+tn)),s=.5+.5*Math.cos(o-.55),l=Math.abs(r)/tn,c=.5+.5*Math.cos(o+a*.68);if(e==="industrial"){const p=ft(.74*i+.14*s+.08*l+.04*c),g=t==="light"?[[255,230,202],[255,146,58],[229,58,18],[82,21,9]]:[[20,9,6],[108,22,12],[226,63,18],[255,145,35]];return p<.44?ct(Ve(g[0],g[1],p/.44)):p<.78?ct(Ve(g[1],g[2],(p-.44)/.34)):ct(Ve(g[2],g[3],(p-.78)/.22))}if(e==="matrix"){const p=ft(.76*i+.12*s+.08*l+.04*c),g=t==="light"?[[212,255,226],[38,226,112],[0,146,70],[0,72,40]]:[[2,18,10],[0,86,44],[0,214,96],[168,255,198]];return p<.36?ct(Ve(g[0],g[1],p/.36)):p<.78?ct(Ve(g[1],g[2],(p-.36)/.42)):ct(Ve(g[2],g[3],(p-.78)/.22))}if(e==="metal"){const p=l**1.6,g=.5+.5*Math.cos(o*2.1-.72),h=Math.max(0,Math.cos(o*3.2+r*2.4-1.1))**10,v=.025*Math.sin(o*54+r*18),f=ft(.62*i+.14*s+.12*p+.08*g+.13*h+v),y=t==="light"?[[34,39,42],[79,88,90],[159,165,162],[250,248,236],[72,78,79]]:[[8,10,11],[42,47,49],[139,148,147],[248,247,238],[82,89,91]];return f<.34?ct(Ve(y[0],y[1],f/.34)):f<.62?ct(Ve(y[1],y[2],(f-.34)/.28)):f<.82?ct(Ve(y[2],y[3],(f-.62)/.2)):ct(Ve(y[3],y[4],(f-.82)/.18))}const d=ft(.82*i+.1*s+.08*l),m=t==="dark"?Math.max(18,Math.min(242,Math.round(14+226*d))):Math.max(18,Math.min(246,Math.round(248-226*d)));return`rgb(${m},${m},${m})`},Up=(e,t)=>e==="industrial"?t==="light"?"#FFF1E8":"#180804":e==="matrix"?t==="light"?"#E9FFF1":"#001B0D":e==="metal"?t==="light"?"#F2F4F0":"#111615":t==="light"?"#F3F5F2":"#111514",ft=(e,t=0,n=1)=>Math.max(t,Math.min(n,e)),qr=(e,t,n)=>Math.round(e+(t-e)*ft(n)),Ve=(e,t,n)=>[qr(e[0],t[0],n),qr(e[1],t[1],n),qr(e[2],t[2],n)],ct=e=>`rgb(${e[0]},${e[1]},${e[2]})`,Fc=(e,t)=>`rgba(${e[0]},${e[1]},${e[2]},${t})`,Vp=(e=_t())=>{let t=Ao(e)??_t(),n=Ds(t),o=Os(n),r=Hr(o);const a=(g=_t())=>(t=Ao(g)??_t(),n=Ds(t),o=Os(n),r=Hr(o),t),i=(g,h,v)=>{const f=(v==null?void 0:v.motionCycle)??r;if(h===0)return{cycle:f,envelope:0,phase:0};const y=_p(g,h,(v==null?void 0:v.motionOffset)??0,v==null?void 0:v.motionLoopSeconds);return v&&v.motionCycleIndex<0&&(v.motionCycleIndex=y.cycleIndex),{cycle:f,envelope:y.envelope,phase:y.phase}},s=()=>Hr(o),c=$p(Oc(0,{cycle:r,envelope:0,phase:0})),d=(g,h,v=i(g,h))=>Bp(h,v,c);return{get seed(){return t},buildMesh:d,createMotionCycle:s,createMotionSource:()=>({motionCycle:s(),motionCycleIndex:-1,motionLoopSeconds:Pn,motionOffset:o.randomRange(0,Pn)}),getMotionState:i,random:()=>n(),randomRange:(g,h)=>o.randomRange(g,h),resetMotionSource:g=>{g.motionCycleIndex=-1,g.motionCycle=s(),g.motionOffset=o.randomRange(0,Pn),g.motionLoopSeconds=Pn},resetSeed:a,staticMesh:d(0,0)}},Os=e=>{const t=(r,a)=>r+e()*(a-r);return{random:e,randomChoice:r=>r[Math.floor(e()*r.length)]??r[0]??0,randomRange:t,signedRandomRange:(r,a)=>t(r,a)*(e()<.5?-1:1)}},zp=(e,t)=>{const n=t.width<210?11:13,o=Math.ceil(t.width/n)+1;t.rainFontSize=n,t.rainColumns=Array.from({length:o},(r,a)=>({seed:e.randomRange(0,t.height+n*18),speed:e.randomRange(22,58),length:Math.round(e.randomRange(7,15)),alpha:e.randomRange(.2,.72),x:a*n+n/2}))},qp=(e,t)=>{const n=t.width<170?12:15,o=Math.ceil(t.width/n),r=Math.ceil(t.height/n);t.heatCellSize=n,t.heatCols=o,t.heatRows=r,t.nextHeatUpdate=0,t.heatCells=Array.from({length:o*r},(a,i)=>Kp(e,o,r,i))},Gp=(e,t,n)=>{if(t.backgroundStyle==="textured"){if(t.theme==="matrix"){Xp(t,n);return}t.theme==="industrial"&&Qp(e,t,n)}},Kp=(e,t,n,o)=>{const r=o%t,a=Math.floor(o/t),i=(r+.5)/t,s=(a+.5)/n,l=ft(Yp(i,s)+e.randomRange(-.18,.18));return{speed:e.randomRange(.035,.085),target:l,value:l}},Yp=(e,t)=>{const n=Math.exp(-((e-.34)**2/.035+(t-.52)**2/.055)),o=Math.exp(-((e-.66)**2/.032+(t-.42)**2/.05)),r=Math.exp(-((e-.54)**2/.06+(t-.68)**2/.04)),a=Math.max(0,1-Math.abs(t-(.82-e*.62))*3.8);return ft(.08+n*.46+o*.42+r*.22+a*.16)},Xp=(e,t)=>{const{ctx:n,height:o,mode:r,rainColumns:a,rainFontSize:i,width:s}=e,l=r==="light",c=n.createRadialGradient(s*.54,o*.47,0,s*.54,o*.47,s*.52);c.addColorStop(0,l?"rgba(0,180,84,0.09)":"rgba(0,255,118,0.12)"),c.addColorStop(.55,l?"rgba(0,180,84,0.035)":"rgba(0,255,118,0.045)"),c.addColorStop(1,"rgba(0,255,118,0)"),n.fillStyle=c,n.fillRect(0,0,s,o),n.save(),n.font=`${i}px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace`,n.textAlign="center",n.textBaseline="middle";for(const d of a)Jp(e,d.x,d.length,d.seed,d.speed,d.alpha,t);n.restore()},Jp=(e,t,n,o,r,a,i)=>{const{ctx:s,height:l,mode:c,rainFontSize:d}=e,m=l+n*d,p=(i*.001*r+o)%m-n*d;for(let g=0;g<n;g+=1){const h=p-g*d;if(h<-d||h>l+d)continue;const v=1-g/n,f=Math.sin(t*12.9898+g*78.233+Math.floor(i*.006)*18.97),y=c==="light"?g===0?[0,116,58]:[0,148,72]:g===0?[215,255,226]:[116,255,168],b=a*v*(g===0?.74:.42)*(c==="light"?.52:1);s.fillStyle=Fc(y,b),s.fillText(f>0?"1":"0",t,h)}},Qp=(e,t,n)=>{if(t.heatCells.length===0)return;Zp(e,t,n);const{ctx:o,heatCellSize:r,heatCols:a,heatRows:i,mode:s}=t,l=Math.max(1,Math.round(r*.14)),c=r-l;o.save(),o.globalCompositeOperation="source-over";for(let d=0;d<i;d+=1)for(let m=0;m<a;m+=1){const p=t.heatCells[d*a+m];if(!p)continue;t.isStatic||(p.value+=(p.target-p.value)*p.speed);const g=ft(p.value);o.fillStyle=Fc(ef(s,g),s==="light"?.22+g*.48:.18+g*.64),o.fillRect(m*r+l/2,d*r+l/2,c,c)}o.restore()},Zp=(e,t,n)=>{if(!(t.isStatic||n<t.nextHeatUpdate)){t.nextHeatUpdate=n+e.randomRange(90,170);for(const o of t.heatCells)e.random()>=.28||(o.target=ft(o.target+e.randomRange(-.42,.42)),o.speed=e.randomRange(.045,.12))}},ef=(e,t)=>{const n=e==="light"?[255,239,221]:[31,12,7],o=e==="light"?[255,156,55]:[124,24,12],r=e==="light"?[223,54,16]:[255,98,24],a=e==="light"?[96,24,10]:[255,178,56];return t<.42?Ve(n,o,t/.42):t<.76?Ve(o,r,(t-.42)/.34):Ve(r,a,(t-.76)/.24)},tf=`#version 300 es
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LauncherApp-ByUpDwod.js","assets/vendor-react-CnooHTJc.js","assets/vendor-state-zjcHRN98.js","assets/use-app-preferences-DGCafwsP.js","assets/StandaloneMobileDebugRoute--yiQ5EdW.js","assets/interaction-panel-mobile-debug-pages-DXC3HSZU.js","assets/MobileAwareSelect-CCAQrsxL.js","assets/MobileAwareSelect-BySpAJpa.css","assets/index-ZOsqqPVv.js","assets/index-BIs5hzci.js","assets/route-plugin-chrome-bV1HEaju.js","assets/shortcutUtils-B8h6g_7o.js","assets/index-YzfSzOLk.js","assets/index-nXq6jwfM.js","assets/interaction-panel-mobile-debug-pages-8AAd4Csf.css","assets/StandaloneMobileDebugRoute-DuOLjUb9.css","assets/WorkspaceApp-l-h_IsMp.js","assets/client-build-info-6B4KoYHs.js","assets/WorkspaceApp-3wrApX0a.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
var kp=Object.defineProperty;var xp=(e,t,n)=>t in e?kp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var H=(e,t,n)=>xp(e,typeof t!="symbol"?t+"":t,n);import{g as Ii,R as I,a as As,r as u,b as Wo,c as _i,d as Pp,e as Rc,j as L,u as Tp,N as Da,f as Ep,B as Rp}from"./vendor-react-CnooHTJc.js";import{u as un,a as Ge,b as Ap,i as Ac,c as Dp,S as Mp}from"./vendor-state-zjcHRN98.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();const Wr=1024,Pn=10.24,Op=2.75,Fp=1.35,Dc=.76,tn=.46,An=118,nn=12,Mc=0,Ip=[0,0,1],lt=(e,t,n,o,r)=>({amp:e.signedRandomRange(t,n),phase:e.randomRange(0,Math.PI*2),timeFreq:e.randomChoice(r),uFreq:e.randomChoice(o)}),Hr=e=>({shape:{depthScale:e.signedRandomRange(.08,.22),diagonal:e.signedRandomRange(.04,.12),lobeBalance:e.signedRandomRange(.08,.2),phaseDrift:e.signedRandomRange(.03,.09),waist:e.signedRandomRange(.08,.2),xScale:e.signedRandomRange(.08,.18),yScale:e.signedRandomRange(.1,.22)},twist:[lt(e,.1,.18,[1,2,3],[1,2]),lt(e,.04,.09,[2,3,4],[2,3])],warpX:[lt(e,.02,.05,[1,2],[1,2]),lt(e,.01,.025,[3,4],[2,3])],warpY:[lt(e,.018,.04,[1,2],[1,2]),lt(e,.01,.02,[3,4],[2,3])],warpZ:[lt(e,.055,.12,[1,2,3],[1,2]),lt(e,.025,.055,[2,3,4],[2,3])],width:[lt(e,.035,.06,[2,3,4],[1,2]),lt(e,.015,.03,[3,4,5],[2,3])]}),_p=(e,t,n,o=Pn)=>{const r=e+n,a=Math.floor(r/o),i=(r%o+o)%o/o,s=Math.sin(Math.PI*i)**2;return{cycleIndex:a,envelope:s*t,phase:i}},Ao=e=>String(e??"").trim().replace(/[^\w-]/g,"").slice(0,64)||null,_t=()=>{var t;const e=new Uint32Array(2);return(t=globalThis.crypto)!=null&&t.getRandomValues?globalThis.crypto.getRandomValues(e):(e[0]=Math.floor(Math.random()*4294967295),e[1]=Date.now()>>>0),Ao(`${e[0].toString(36)}${e[1].toString(36)}`)??"oneworks"},Lp=e=>{let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0},Ds=e=>{let t=Lp(e)||2654435769;return()=>{t+=1831565813;let n=t;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}},Cn=(e,t,n)=>{const o=Math.PI*2*n;return e.reduce((r,a)=>r+a.amp*Math.sin(a.uFreq*t+a.timeFreq*o+a.phase),0)},Ma=(e,t)=>{const{shape:n}=t.cycle,o=t.envelope||0,r=Math.PI*2*(t.phase||0),a=e+o*n.phaseDrift*Math.sin(r),i=Math.sin(a),s=Math.cos(a),l=Math.tanh(1.8*i),c=1-o*n.waist*Math.cos(2*a)**2,d=1+o*n.lobeBalance*l,m=1+o*n.xScale,p=1+o*n.yScale*Math.sin(r+.8),g=1+o*n.depthScale*Math.cos(r+.35),h=o*n.diagonal;return[Op*m*d*c*i+h*Math.sin(3*a+r),Fp*p*Math.sin(2*a)*(1-.16*o*l),Dc*g*s+o*.08*Math.sin(3*a-r)]},Np=(e,t)=>{const o=Ma(e-.001,t),r=Ma(e+.001,t);return[(r[0]-o[0])/(2*.001),(r[1]-o[1])/(2*.001),(r[2]-o[2])/(2*.001)]},Ur=(e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]],Vr=(e,t)=>[e[0]*t,e[1]*t,e[2]*t],Ms=(e,t)=>[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]],zr=e=>{const t=Math.hypot(e[0],e[1],e[2])||1;return[e[0]/t,e[1]/t,e[2]/t]},Oc=(e,t)=>{const n=[],o=e?Math.PI*2*t.phase*e:0;for(let r=0;r<An;r+=1){const a=Mc+2*Math.PI*r/An,i=Ma(a,t),s=zr(Np(a,t));let l=Ms(Ip,s);l=l[0]**2+l[1]**2+l[2]**2<1e-6?[1,0,0]:zr(l);const c=zr(Ms(s,l)),d=t.envelope*Cn(t.cycle.twist,a,t.phase),m=1+t.envelope*Cn(t.cycle.width,a,t.phase)+t.envelope*t.cycle.shape.waist*.28*Math.sin(2*a+Math.PI*2*t.phase),p=a/2+Math.PI*.1+d+o,g=Ur(Vr(l,Math.cos(p)),Vr(c,Math.sin(p))),h=[t.envelope*Cn(t.cycle.warpX,a,t.phase),t.envelope*Cn(t.cycle.warpY,a,t.phase),t.envelope*Cn(t.cycle.warpZ,a,t.phase)],v=Ur(i,h),f=[];for(let y=0;y<=nn;y+=1){const b=-tn+2*tn*y/nn,S=Ur(v,Vr(g,b*m));f.push({u:a,v:b,x:S[0],y:S[1],z:S[2]})}n.push(f)}return n},$p=e=>{const t=e.flat(),n=Math.min(...t.map(c=>c.x)),o=Math.max(...t.map(c=>c.x)),r=Math.min(...t.map(c=>c.y)),a=Math.max(...t.map(c=>c.y)),i=Math.min(820/(o-n),610/(a-r)),s=(n+o)/2,l=(r+a)/2;return c=>({u:c.u,v:c.v,x:512+(c.x-s)*i,y:512-((c.y-l)*i+c.z*i*.045),z:c.z})},Bp=(e,t,n)=>{const o=Oc(e,t),r=[];for(let a=0;a<An;a+=1){const i=(a+1)%An,s=i===0;for(let l=0;l<nn;l+=1){const c=jp(o,n,a,l,i,s);if(!c)continue;const d=c.reduce((g,h)=>g+h.z,0)/4,m=Mc+2*Math.PI*(a+.5)/An,p=-tn+2*tn*(l+.5)/nn;r.push({depth:d,points:Wp(c,.82),sortDepth:d+.11*Math.cos(m),u:m,v:p})}}return r.sort((a,i)=>a.sortDepth-i.sortDepth||a.u-i.u||a.v-i.v)},jp=(e,t,n,o,r,a)=>{const i=a?nn-o:o,s=a?nn-o-1:o+1,l=e[n],c=e[r],d=l==null?void 0:l[o],m=c==null?void 0:c[i],p=c==null?void 0:c[s],g=l==null?void 0:l[o+1];return d&&m&&p&&g?[t(d),t(m),t(p),t(g)]:null},Wp=(e,t)=>{const n=e.reduce((r,a)=>r+a.x,0)/e.length,o=e.reduce((r,a)=>r+a.y,0)/e.length;return e.map(r=>{const a=r.x-n,i=r.y-o,s=Math.hypot(a,i)||1;return{...r,x:r.x+t*a/s,y:r.y+t*i/s}})},Hp=(e,t,n,o,r,a)=>{const i=.5+.5*(n/(Dc+tn)),s=.5+.5*Math.cos(o-.55),l=Math.abs(r)/tn,c=.5+.5*Math.cos(o+a*.68);if(e==="industrial"){const p=ft(.74*i+.14*s+.08*l+.04*c),g=t==="light"?[[255,230,202],[255,146,58],[229,58,18],[82,21,9]]:[[20,9,6],[108,22,12],[226,63,18],[255,145,35]];return p<.44?ct(Ve(g[0],g[1],p/.44)):p<.78?ct(Ve(g[1],g[2],(p-.44)/.34)):ct(Ve(g[2],g[3],(p-.78)/.22))}if(e==="matrix"){const p=ft(.76*i+.12*s+.08*l+.04*c),g=t==="light"?[[212,255,226],[38,226,112],[0,146,70],[0,72,40]]:[[2,18,10],[0,86,44],[0,214,96],[168,255,198]];return p<.36?ct(Ve(g[0],g[1],p/.36)):p<.78?ct(Ve(g[1],g[2],(p-.36)/.42)):ct(Ve(g[2],g[3],(p-.78)/.22))}if(e==="metal"){const p=l**1.6,g=.5+.5*Math.cos(o*2.1-.72),h=Math.max(0,Math.cos(o*3.2+r*2.4-1.1))**10,v=.025*Math.sin(o*54+r*18),f=ft(.62*i+.14*s+.12*p+.08*g+.13*h+v),y=t==="light"?[[34,39,42],[79,88,90],[159,165,162],[250,248,236],[72,78,79]]:[[8,10,11],[42,47,49],[139,148,147],[248,247,238],[82,89,91]];return f<.34?ct(Ve(y[0],y[1],f/.34)):f<.62?ct(Ve(y[1],y[2],(f-.34)/.28)):f<.82?ct(Ve(y[2],y[3],(f-.62)/.2)):ct(Ve(y[3],y[4],(f-.82)/.18))}const d=ft(.82*i+.1*s+.08*l),m=t==="dark"?Math.max(18,Math.min(242,Math.round(14+226*d))):Math.max(18,Math.min(246,Math.round(248-226*d)));return`rgb(${m},${m},${m})`},Up=(e,t)=>e==="industrial"?t==="light"?"#FFF1E8":"#180804":e==="matrix"?t==="light"?"#E9FFF1":"#001B0D":e==="metal"?t==="light"?"#F2F4F0":"#111615":t==="light"?"#F3F5F2":"#111514",ft=(e,t=0,n=1)=>Math.max(t,Math.min(n,e)),qr=(e,t,n)=>Math.round(e+(t-e)*ft(n)),Ve=(e,t,n)=>[qr(e[0],t[0],n),qr(e[1],t[1],n),qr(e[2],t[2],n)],ct=e=>`rgb(${e[0]},${e[1]},${e[2]})`,Fc=(e,t)=>`rgba(${e[0]},${e[1]},${e[2]},${t})`,Vp=(e=_t())=>{let t=Ao(e)??_t(),n=Ds(t),o=Os(n),r=Hr(o);const a=(g=_t())=>(t=Ao(g)??_t(),n=Ds(t),o=Os(n),r=Hr(o),t),i=(g,h,v)=>{const f=(v==null?void 0:v.motionCycle)??r;if(h===0)return{cycle:f,envelope:0,phase:0};const y=_p(g,h,(v==null?void 0:v.motionOffset)??0,v==null?void 0:v.motionLoopSeconds);return v&&v.motionCycleIndex<0&&(v.motionCycleIndex=y.cycleIndex),{cycle:f,envelope:y.envelope,phase:y.phase}},s=()=>Hr(o),c=$p(Oc(0,{cycle:r,envelope:0,phase:0})),d=(g,h,v=i(g,h))=>Bp(h,v,c);return{get seed(){return t},buildMesh:d,createMotionCycle:s,createMotionSource:()=>({motionCycle:s(),motionCycleIndex:-1,motionLoopSeconds:Pn,motionOffset:o.randomRange(0,Pn)}),getMotionState:i,random:()=>n(),randomRange:(g,h)=>o.randomRange(g,h),resetMotionSource:g=>{g.motionCycleIndex=-1,g.motionCycle=s(),g.motionOffset=o.randomRange(0,Pn),g.motionLoopSeconds=Pn},resetSeed:a,staticMesh:d(0,0)}},Os=e=>{const t=(r,a)=>r+e()*(a-r);return{random:e,randomChoice:r=>r[Math.floor(e()*r.length)]??r[0]??0,randomRange:t,signedRandomRange:(r,a)=>t(r,a)*(e()<.5?-1:1)}},zp=(e,t)=>{const n=t.width<210?11:13,o=Math.ceil(t.width/n)+1;t.rainFontSize=n,t.rainColumns=Array.from({length:o},(r,a)=>({seed:e.randomRange(0,t.height+n*18),speed:e.randomRange(22,58),length:Math.round(e.randomRange(7,15)),alpha:e.randomRange(.2,.72),x:a*n+n/2}))},qp=(e,t)=>{const n=t.width<170?12:15,o=Math.ceil(t.width/n),r=Math.ceil(t.height/n);t.heatCellSize=n,t.heatCols=o,t.heatRows=r,t.nextHeatUpdate=0,t.heatCells=Array.from({length:o*r},(a,i)=>Kp(e,o,r,i))},Gp=(e,t,n)=>{if(t.backgroundStyle==="textured"){if(t.theme==="matrix"){Xp(t,n);return}t.theme==="industrial"&&Qp(e,t,n)}},Kp=(e,t,n,o)=>{const r=o%t,a=Math.floor(o/t),i=(r+.5)/t,s=(a+.5)/n,l=ft(Yp(i,s)+e.randomRange(-.18,.18));return{speed:e.randomRange(.035,.085),target:l,value:l}},Yp=(e,t)=>{const n=Math.exp(-((e-.34)**2/.035+(t-.52)**2/.055)),o=Math.exp(-((e-.66)**2/.032+(t-.42)**2/.05)),r=Math.exp(-((e-.54)**2/.06+(t-.68)**2/.04)),a=Math.max(0,1-Math.abs(t-(.82-e*.62))*3.8);return ft(.08+n*.46+o*.42+r*.22+a*.16)},Xp=(e,t)=>{const{ctx:n,height:o,mode:r,rainColumns:a,rainFontSize:i,width:s}=e,l=r==="light",c=n.createRadialGradient(s*.54,o*.47,0,s*.54,o*.47,s*.52);c.addColorStop(0,l?"rgba(0,180,84,0.09)":"rgba(0,255,118,0.12)"),c.addColorStop(.55,l?"rgba(0,180,84,0.035)":"rgba(0,255,118,0.045)"),c.addColorStop(1,"rgba(0,255,118,0)"),n.fillStyle=c,n.fillRect(0,0,s,o),n.save(),n.font=`${i}px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace`,n.textAlign="center",n.textBaseline="middle";for(const d of a)Jp(e,d.x,d.length,d.seed,d.speed,d.alpha,t);n.restore()},Jp=(e,t,n,o,r,a,i)=>{const{ctx:s,height:l,mode:c,rainFontSize:d}=e,m=l+n*d,p=(i*.001*r+o)%m-n*d;for(let g=0;g<n;g+=1){const h=p-g*d;if(h<-d||h>l+d)continue;const v=1-g/n,f=Math.sin(t*12.9898+g*78.233+Math.floor(i*.006)*18.97),y=c==="light"?g===0?[0,116,58]:[0,148,72]:g===0?[215,255,226]:[116,255,168],b=a*v*(g===0?.74:.42)*(c==="light"?.52:1);s.fillStyle=Fc(y,b),s.fillText(f>0?"1":"0",t,h)}},Qp=(e,t,n)=>{if(t.heatCells.length===0)return;Zp(e,t,n);const{ctx:o,heatCellSize:r,heatCols:a,heatRows:i,mode:s}=t,l=Math.max(1,Math.round(r*.14)),c=r-l;o.save(),o.globalCompositeOperation="source-over";for(let d=0;d<i;d+=1)for(let m=0;m<a;m+=1){const p=t.heatCells[d*a+m];if(!p)continue;t.isStatic||(p.value+=(p.target-p.value)*p.speed);const g=ft(p.value);o.fillStyle=Fc(ef(s,g),s==="light"?.22+g*.48:.18+g*.64),o.fillRect(m*r+l/2,d*r+l/2,c,c)}o.restore()},Zp=(e,t,n)=>{if(!(t.isStatic||n<t.nextHeatUpdate)){t.nextHeatUpdate=n+e.randomRange(90,170);for(const o of t.heatCells)e.random()>=.28||(o.target=ft(o.target+e.randomRange(-.42,.42)),o.speed=e.randomRange(.045,.12))}},ef=(e,t)=>{const n=e==="light"?[255,239,221]:[31,12,7],o=e==="light"?[255,156,55]:[124,24,12],r=e==="light"?[223,54,16]:[255,98,24],a=e==="light"?[96,24,10]:[255,178,56];return t<.42?Ve(n,o,t/.42):t<.76?Ve(o,r,(t-.42)/.34):Ve(r,a,(t-.76)/.24)},tf=`#version 300 es
|
|
3
3
|
precision mediump float;
|
|
4
4
|
|
|
5
5
|
layout(location = 0) in vec4 a_position;
|
|
@@ -692,7 +692,7 @@ html body {
|
|
|
692
692
|
${t}-confirm-body-wrapper`]:{display:"flex",flexDirection:"column",flex:"auto"},[`${t}-confirm-body`]:{marginBottom:"auto"}}}]},IC=e=>{const{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl",[`${t}-confirm-body`]:{direction:"rtl"}}}}},_C=e=>{const{componentCls:t}=e,n=Wu(e),o=Object.assign({},n);delete o.xs;const r=`--${t.replace(".","")}-`,a=Object.keys(o).map(i=>({[`@media (min-width: ${Z(o[i])})`]:{width:`var(${r}${i}-width)`}}));return{[`${t}-root`]:{[t]:[].concat(j(Object.keys(n).map((i,s)=>{const l=Object.keys(n)[s-1];return l?{[`${r}${i}-width`]:`var(${r}${l}-width)`}:null})),[{width:`var(${r}xs-width)`}],j(a))}}},Hu=e=>{const t=e.padding,n=e.fontSizeHeading5,o=e.lineHeightHeading5;return at(e,{modalHeaderHeight:e.calc(e.calc(o).mul(n).equal()).add(e.calc(t).mul(2).equal()).equal(),modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterBorderWidth:e.lineWidth,modalCloseIconColor:e.colorIcon,modalCloseIconHoverColor:e.colorIconHover,modalCloseBtnSize:e.controlHeight,modalConfirmIconSize:e.fontHeight,modalTitleHeight:e.calc(e.titleFontSize).mul(e.titleLineHeight).equal()})},Uu=e=>({footerBg:"transparent",headerBg:e.colorBgElevated,titleLineHeight:e.lineHeightHeading5,titleFontSize:e.fontSizeHeading5,contentBg:e.colorBgElevated,titleColor:e.colorTextHeading,contentPadding:e.wireframe?0:`${Z(e.paddingMD)} ${Z(e.paddingContentHorizontalLG)}`,headerPadding:e.wireframe?`${Z(e.padding)} ${Z(e.paddingLG)}`:0,headerBorderBottom:e.wireframe?`${Z(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",headerMarginBottom:e.wireframe?0:e.marginXS,bodyPadding:e.wireframe?e.paddingLG:0,footerPadding:e.wireframe?`${Z(e.paddingXS)} ${Z(e.padding)}`:0,footerBorderTop:e.wireframe?`${Z(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",footerBorderRadius:e.wireframe?`0 0 ${Z(e.borderRadiusLG)} ${Z(e.borderRadiusLG)}`:0,footerMarginTop:e.wireframe?0:e.marginSM,confirmBodyPadding:e.wireframe?`${Z(e.padding*2)} ${Z(e.padding*2)} ${Z(e.paddingLG)}`:0,confirmIconMarginInlineEnd:e.wireframe?e.margin:e.marginSM,confirmBtnsMarginTop:e.wireframe?e.marginLG:e.marginSM}),LC=yt("Modal",e=>{const t=Hu(e);return[FC(t),IC(t),OC(t),mS(t,"zoom"),_C(t)]},Uu,{unitless:{titleLineHeight:!0}});var NC=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]]);return n};let Ti;const $C=e=>{Ti={x:e.pageX,y:e.pageY},setTimeout(()=>{Ti=null},100)};tC()&&document.documentElement.addEventListener("click",$C,!0);const BC=e=>{const{prefixCls:t,className:n,rootClassName:o,open:r,wrapClassName:a,centered:i,getContainer:s,focusTriggerAfterClose:l=!0,style:c,visible:d,width:m=520,footer:p,classNames:g,styles:h,children:v,loading:f,confirmLoading:y,zIndex:b,mousePosition:S,onOk:C,onCancel:w,destroyOnHidden:x,destroyOnClose:k,panelRef:E=null,modalRender:T}=e,P=NC(e,["prefixCls","className","rootClassName","open","wrapClassName","centered","getContainer","focusTriggerAfterClose","style","visible","width","footer","classNames","styles","children","loading","confirmLoading","zIndex","mousePosition","onOk","onCancel","destroyOnHidden","destroyOnClose","panelRef","modalRender"]),{getPopupContainer:M,getPrefixCls:F,direction:D,modal:A}=u.useContext(de),_=se=>{y||w==null||w(se)},N=se=>{C==null||C(se)},$=F("modal",t),K=F(),Y=lr($),[ee,J,G]=LC($,Y),te=W(a,{[`${$}-centered`]:i??(A==null?void 0:A.centered),[`${$}-wrap-rtl`]:D==="rtl"}),q=p!==null&&!f?u.createElement(PC,Object.assign({},e,{onOk:N,onCancel:_})):null,[U,V,ne,Te]=Ub(Ol(e),Ol(A),{closable:!0,closeIcon:u.createElement(Vn,{className:`${$}-close-icon`}),closeIconRender:se=>xC($,se)}),he=T?se=>u.createElement("div",{className:`${$}-render`},T(se)):void 0,be=`.${$}-${T?"render":"content"}`,ye=kC(be),Se=Qo(E,ye),[fe,ue]=Kb("Modal",b),[oe,ie]=u.useMemo(()=>m&&typeof m=="object"?[void 0,m]:[m,void 0],[m]),Ke=u.useMemo(()=>{const se={};return ie&&Object.keys(ie).forEach(Ne=>{const Re=ie[Ne];Re!==void 0&&(se[`--${$}-${Ne}-width`]=typeof Re=="number"?`${Re}px`:Re)}),se},[$,ie]);return ee(u.createElement(eC,{form:!0,space:!0},u.createElement(du.Provider,{value:ue},u.createElement(Fu,Object.assign({width:oe},P,{zIndex:fe,getContainer:s===void 0?M:s,prefixCls:$,rootClassName:W(J,o,G,Y),footer:q,visible:r??d,mousePosition:S??Ti,onClose:_,closable:U&&Object.assign({disabled:ne,closeIcon:V},Te),closeIcon:V,focusTriggerAfterClose:l,transitionName:$o(K,"zoom",e.transitionName),maskTransitionName:$o(K,"fade",e.maskTransitionName),className:W(J,n,A==null?void 0:A.className),style:Object.assign(Object.assign(Object.assign({},A==null?void 0:A.style),c),Ke),classNames:Object.assign(Object.assign(Object.assign({},A==null?void 0:A.classNames),g),{wrapper:W(te,g==null?void 0:g.wrapper)}),styles:Object.assign(Object.assign({},A==null?void 0:A.styles),h),panelRef:Se,destroyOnClose:x??k,modalRender:he}),f?u.createElement(hn,{active:!0,title:!1,paragraph:{rows:4},className:`${$}-body-skeleton`}):v))))},jC=e=>{const{componentCls:t,titleFontSize:n,titleLineHeight:o,modalConfirmIconSize:r,fontSize:a,lineHeight:i,modalTitleHeight:s,fontHeight:l,confirmBodyPadding:c}=e,d=`${t}-confirm`;return{[d]:{"&-rtl":{direction:"rtl"},[`${e.antCls}-modal-header`]:{display:"none"},[`${d}-body-wrapper`]:Object.assign({},bv()),[`&${t} ${t}-body`]:{padding:c},[`${d}-body`]:{display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${e.iconCls}`]:{flex:"none",fontSize:r,marginInlineEnd:e.confirmIconMarginInlineEnd,marginTop:e.calc(e.calc(l).sub(r).equal()).div(2).equal()},[`&-has-title > ${e.iconCls}`]:{marginTop:e.calc(e.calc(s).sub(r).equal()).div(2).equal()}},[`${d}-paragraph`]:{display:"flex",flexDirection:"column",flex:"auto",rowGap:e.marginXS,maxWidth:`calc(100% - ${Z(e.marginSM)})`},[`${e.iconCls} + ${d}-paragraph`]:{maxWidth:`calc(100% - ${Z(e.calc(e.modalConfirmIconSize).add(e.marginSM).equal())})`},[`${d}-title`]:{color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:n,lineHeight:o},[`${d}-content`]:{color:e.colorText,fontSize:a,lineHeight:i},[`${d}-btns`]:{textAlign:"end",marginTop:e.confirmBtnsMarginTop,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${d}-error ${d}-body > ${e.iconCls}`]:{color:e.colorError},[`${d}-warning ${d}-body > ${e.iconCls},
|
|
693
693
|
${d}-confirm ${d}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${d}-info ${d}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${d}-success ${d}-body > ${e.iconCls}`]:{color:e.colorSuccess}}},WC=jd(["Modal","confirm"],e=>{const t=Hu(e);return jC(t)},Uu,{order:-1e3});var HC=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]]);return n};const UC=e=>{const{prefixCls:t,icon:n,okText:o,cancelText:r,confirmPrefixCls:a,type:i,okCancel:s,footer:l,locale:c}=e,d=HC(e,["prefixCls","icon","okText","cancelText","confirmPrefixCls","type","okCancel","footer","locale"]);let m=n;if(!n&&n!==null)switch(i){case"info":m=u.createElement(is,null);break;case"success":m=u.createElement(os,null);break;case"error":m=u.createElement(rs,null);break;default:m=u.createElement(as,null)}const p=s??i==="confirm",g=e.autoFocusButton===null?!1:e.autoFocusButton||"ok",[h]=rr("Modal"),v=c||h,f=o||(p?v==null?void 0:v.okText:v==null?void 0:v.justOkText),y=r||(v==null?void 0:v.cancelText),b=u.useMemo(()=>Object.assign({autoFocusButton:g,cancelTextLocale:y,okTextLocale:f,mergedOkCancel:p},d),[g,y,f,p,d]),S=u.createElement(u.Fragment,null,u.createElement(zl,null),u.createElement(ql,null)),C=e.title!==void 0&&e.title!==null,w=`${a}-body`;return u.createElement("div",{className:`${a}-body-wrapper`},u.createElement("div",{className:W(w,{[`${w}-has-title`]:C})},m,u.createElement("div",{className:`${a}-paragraph`},C&&u.createElement("span",{className:`${a}-title`},e.title),u.createElement("div",{className:`${a}-content`},e.content))),l===void 0||typeof l=="function"?u.createElement(Ru,{value:b},u.createElement("div",{className:`${a}-btns`},typeof l=="function"?l(S,{OkBtn:ql,CancelBtn:zl}):S)):l,u.createElement(WC,{prefixCls:t}))},VC=e=>{const{close:t,zIndex:n,maskStyle:o,direction:r,prefixCls:a,wrapClassName:i,rootPrefixCls:s,bodyStyle:l,closable:c=!1,onConfirm:d,styles:m,title:p}=e,g=`${a}-confirm`,h=e.width||416,v=e.style||{},f=e.mask===void 0?!0:e.mask,y=e.maskClosable===void 0?!1:e.maskClosable,b=W(g,`${g}-${e.type}`,{[`${g}-rtl`]:r==="rtl"},e.className),[,S]=bt(),C=u.useMemo(()=>n!==void 0?n:S.zIndexPopupBase+ss,[n,S]);return u.createElement(BC,Object.assign({},e,{className:b,wrapClassName:W({[`${g}-centered`]:!!e.centered},i),onCancel:()=>{t==null||t({triggerCancel:!0}),d==null||d(!1)},title:p,footer:null,transitionName:$o(s||"","zoom",e.transitionName),maskTransitionName:$o(s||"","fade",e.maskTransitionName),mask:f,maskClosable:y,style:v,styles:Object.assign({body:l,mask:o},m),width:h,zIndex:C,closable:c}),u.createElement(UC,Object.assign({},e,{confirmPrefixCls:g})))},Vu=e=>{const{rootPrefixCls:t,iconPrefixCls:n,direction:o,theme:r}=e;return u.createElement(Dt,{prefixCls:t,iconPrefixCls:n,direction:o,theme:r},u.createElement(VC,Object.assign({},e)))},Rn=[];let zu="";function qu(){return zu}const zC=e=>{var t,n;const{prefixCls:o,getContainer:r,direction:a}=e,i=xd(),s=u.useContext(de),l=qu()||s.getPrefixCls(),c=o||`${l}-modal`;let d=r;return d===!1&&(d=void 0),I.createElement(Vu,Object.assign({},e,{rootPrefixCls:l,prefixCls:c,iconPrefixCls:s.iconPrefixCls,theme:s.theme,direction:a??s.direction,locale:(n=(t=s.locale)===null||t===void 0?void 0:t.Modal)!==null&&n!==void 0?n:i,getContainer:d}))};function KP(e){const t=ob(),n=document.createDocumentFragment();let o=Object.assign(Object.assign({},e),{close:l,open:!0}),r,a;function i(...d){var m;if(d.some(h=>h==null?void 0:h.triggerCancel)){var g;(m=e.onCancel)===null||m===void 0||(g=m).call.apply(g,[e,()=>{}].concat(j(d.slice(1))))}for(let h=0;h<Rn.length;h++)if(Rn[h]===l){Rn.splice(h,1);break}a()}const s=d=>{clearTimeout(r),r=setTimeout(()=>{const m=t.getPrefixCls(void 0,qu()),p=t.getIconPrefixCls(),g=t.getTheme(),h=I.createElement(zC,Object.assign({},d));a=hu()(I.createElement(Dt,{prefixCls:m,iconPrefixCls:p,theme:g},typeof t.holderRender=="function"?t.holderRender(h):h),n)})};function l(...d){o=Object.assign(Object.assign({},o),{open:!1,afterClose:()=>{typeof e.afterClose=="function"&&e.afterClose(),i.apply(this,d)}}),o.visible&&delete o.visible,s(o)}function c(d){typeof d=="function"?o=d(o):o=Object.assign(Object.assign({},o),d),s(o)}return s(o),Rn.push(l),{destroy:l,update:c}}function qC(e){return Object.assign(Object.assign({},e),{type:"warning"})}function GC(e){return Object.assign(Object.assign({},e),{type:"info"})}function KC(e){return Object.assign(Object.assign({},e),{type:"success"})}function YC(e){return Object.assign(Object.assign({},e),{type:"error"})}function XC(e){return Object.assign(Object.assign({},e),{type:"confirm"})}function YP({rootPrefixCls:e}){zu=e}var JC=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]]);return n};const QC=(e,t)=>{var n,{afterClose:o,config:r}=e,a=JC(e,["afterClose","config"]);const[i,s]=u.useState(!0),[l,c]=u.useState(r),{direction:d,getPrefixCls:m}=u.useContext(de),p=m("modal"),g=m(),h=()=>{var b;o(),(b=l.afterClose)===null||b===void 0||b.call(l)},v=(...b)=>{var S;if(s(!1),b.some(x=>x==null?void 0:x.triggerCancel)){var w;(S=l.onCancel)===null||S===void 0||(w=S).call.apply(w,[l,()=>{}].concat(j(b.slice(1))))}};u.useImperativeHandle(t,()=>({destroy:v,update:b=>{c(S=>{const C=typeof b=="function"?b(S):b;return Object.assign(Object.assign({},S),C)})}}));const f=(n=l.okCancel)!==null&&n!==void 0?n:l.type==="confirm",[y]=rr("Modal",Rt.Modal);return u.createElement(Vu,Object.assign({prefixCls:p,rootPrefixCls:g},l,{close:v,open:i,afterClose:h,okText:l.okText||(f?y==null?void 0:y.okText:y==null?void 0:y.justOkText),direction:l.direction||d,cancelText:l.cancelText||(y==null?void 0:y.cancelText)},a))},ZC=u.forwardRef(QC);let gc=0;const e0=u.memo(u.forwardRef((e,t)=>{const[n,o]=Vb();return u.useImperativeHandle(t,()=>({patchElement:o}),[o]),u.createElement(u.Fragment,null,n)}));function t0(){const e=u.useRef(null),[t,n]=u.useState([]);u.useEffect(()=>{t.length&&(j(t).forEach(i=>{i()}),n([]))},[t]);const o=u.useCallback(a=>function(s){var l;gc+=1;const c=u.createRef();let d;const m=new Promise(f=>{d=f});let p=!1,g;const h=u.createElement(ZC,{key:`modal-${gc}`,config:a(s),ref:c,afterClose:()=>{g==null||g()},isSilent:()=>p,onConfirm:f=>{d(f)}});return g=(l=e.current)===null||l===void 0?void 0:l.patchElement(h),g&&Rn.push(g),{destroy:()=>{function f(){var y;(y=c.current)===null||y===void 0||y.destroy()}c.current?f():n(y=>[].concat(j(y),[f]))},update:f=>{function y(){var b;(b=c.current)===null||b===void 0||b.update(f)}c.current?y():n(b=>[].concat(j(b),[y]))},then:f=>(p=!0,m.then(f))}},[]);return[u.useMemo(()=>({info:o(GC),success:o(KC),error:o(YC),warning:o(qC),confirm:o(XC)}),[o]),u.createElement(e0,{key:"modal-holder",ref:e})]}const n0=e=>{const{componentCls:t,notificationMarginEdge:n,animationMaxHeight:o}=e,r=`${t}-notice`,a=new ge("antNotificationFadeIn",{"0%":{transform:"translate3d(100%, 0, 0)",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",opacity:1}}),i=new ge("antNotificationTopFadeIn",{"0%":{top:-o,opacity:0},"100%":{top:0,opacity:1}}),s=new ge("antNotificationBottomFadeIn",{"0%":{bottom:e.calc(o).mul(-1).equal(),opacity:0},"100%":{bottom:0,opacity:1}}),l=new ge("antNotificationLeftFadeIn",{"0%":{transform:"translate3d(-100%, 0, 0)",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",opacity:1}});return{[t]:{[`&${t}-top, &${t}-bottom`]:{marginInline:0,[r]:{marginInline:"auto auto"}},[`&${t}-top`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:i}},[`&${t}-bottom`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:s}},[`&${t}-topRight, &${t}-bottomRight`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:a}},[`&${t}-topLeft, &${t}-bottomLeft`]:{marginRight:{value:0,_skip_check_:!0},marginLeft:{value:n,_skip_check_:!0},[r]:{marginInlineEnd:"auto",marginInlineStart:0},[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:l}}}}},o0=["top","topLeft","topRight","bottom","bottomLeft","bottomRight"],r0={topLeft:"left",topRight:"right",bottomLeft:"left",bottomRight:"right",top:"left",bottom:"left"},a0=(e,t)=>{const{componentCls:n}=e;return{[`${n}-${t}`]:{[`&${n}-stack > ${n}-notice-wrapper`]:{[t.startsWith("top")?"top":"bottom"]:0,[r0[t]]:{value:0,_skip_check_:!0}}}}},i0=e=>{const t={};for(let n=1;n<e.notificationStackLayer;n++)t[`&:nth-last-child(${n+1})`]={overflow:"hidden",[`& > ${e.componentCls}-notice`]:{opacity:0,transition:`opacity ${e.motionDurationMid}`}};return Object.assign({[`&:not(:nth-last-child(-n+${e.notificationStackLayer}))`]:{opacity:0,overflow:"hidden",color:"transparent",pointerEvents:"none"}},t)},s0=e=>{const t={};for(let n=1;n<e.notificationStackLayer;n++)t[`&:nth-last-child(${n+1})`]={background:e.colorBgBlur,backdropFilter:"blur(10px)","-webkit-backdrop-filter":"blur(10px)"};return Object.assign({},t)},l0=e=>{const{componentCls:t}=e;return Object.assign({[`${t}-stack`]:{[`& > ${t}-notice-wrapper`]:Object.assign({transition:`transform ${e.motionDurationSlow}, backdrop-filter 0s`,willChange:"transform, opacity",position:"absolute"},i0(e))},[`${t}-stack:not(${t}-stack-expanded)`]:{[`& > ${t}-notice-wrapper`]:Object.assign({},s0(e))},[`${t}-stack${t}-stack-expanded`]:{[`& > ${t}-notice-wrapper`]:{"&:not(:nth-last-child(-n + 1))":{opacity:1,overflow:"unset",color:"inherit",pointerEvents:"auto",[`& > ${e.componentCls}-notice`]:{opacity:1}},"&:after":{content:'""',position:"absolute",height:e.margin,width:"100%",insetInline:0,bottom:e.calc(e.margin).mul(-1).equal(),background:"transparent",pointerEvents:"auto"}}}},o0.map(n=>a0(e,n)).reduce((n,o)=>Object.assign(Object.assign({},n),o),{}))},c0=e=>{const{iconCls:t,componentCls:n,boxShadow:o,fontSizeLG:r,notificationMarginBottom:a,borderRadiusLG:i,colorSuccess:s,colorInfo:l,colorWarning:c,colorError:d,colorTextHeading:m,notificationBg:p,notificationPadding:g,notificationMarginEdge:h,notificationProgressBg:v,notificationProgressHeight:f,fontSize:y,lineHeight:b,width:S,notificationIconSize:C,colorText:w,colorSuccessBg:x,colorErrorBg:k,colorInfoBg:E,colorWarningBg:T}=e,P=`${n}-notice`;return{position:"relative",marginBottom:a,marginInlineStart:"auto",background:p,borderRadius:i,boxShadow:o,[P]:{padding:g,width:S,maxWidth:`calc(100vw - ${Z(e.calc(h).mul(2).equal())})`,lineHeight:b,wordWrap:"break-word",borderRadius:i,overflow:"hidden","&-success":x?{background:x}:{},"&-error":k?{background:k}:{},"&-info":E?{background:E}:{},"&-warning":T?{background:T}:{}},[`${P}-message`]:{color:m,fontSize:r,lineHeight:e.lineHeightLG},[`${P}-description`]:{fontSize:y,color:w,marginTop:e.marginXS},[`${P}-closable ${P}-message`]:{paddingInlineEnd:e.paddingLG},[`${P}-with-icon ${P}-message`]:{marginInlineStart:e.calc(e.marginSM).add(C).equal(),fontSize:r},[`${P}-with-icon ${P}-description`]:{marginInlineStart:e.calc(e.marginSM).add(C).equal(),fontSize:y},[`${P}-icon`]:{position:"absolute",fontSize:C,lineHeight:1,[`&-success${t}`]:{color:s},[`&-info${t}`]:{color:l},[`&-warning${t}`]:{color:c},[`&-error${t}`]:{color:d}},[`${P}-close`]:Object.assign({position:"absolute",top:e.notificationPaddingVertical,insetInlineEnd:e.notificationPaddingHorizontal,color:e.colorIcon,outline:"none",width:e.notificationCloseButtonSize,height:e.notificationCloseButtonSize,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center",background:"none",border:"none","&:hover":{color:e.colorIconHover,backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive}},ir(e)),[`${P}-progress`]:{position:"absolute",display:"block",appearance:"none",inlineSize:`calc(100% - ${Z(i)} * 2)`,left:{_skip_check_:!0,value:i},right:{_skip_check_:!0,value:i},bottom:0,blockSize:f,border:0,"&, &::-webkit-progress-bar":{borderRadius:i,backgroundColor:"rgba(0, 0, 0, 0.04)"},"&::-moz-progress-bar":{background:v},"&::-webkit-progress-value":{borderRadius:i,background:v}},[`${P}-actions`]:{float:"right",marginTop:e.marginSM}}},d0=e=>{const{componentCls:t,notificationMarginBottom:n,notificationMarginEdge:o,motionDurationMid:r,motionEaseInOut:a}=e,i=`${t}-notice`,s=new ge("antNotificationFadeOut",{"0%":{maxHeight:e.animationMaxHeight,marginBottom:n},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[t]:Object.assign(Object.assign({},ts(e)),{position:"fixed",zIndex:e.zIndexPopup,marginRight:{value:o,_skip_check_:!0},[`${t}-hook-holder`]:{position:"relative"},[`${t}-fade-appear-prepare`]:{opacity:"0 !important"},[`${t}-fade-enter, ${t}-fade-appear`]:{animationDuration:e.motionDurationMid,animationTimingFunction:a,animationFillMode:"both",opacity:0,animationPlayState:"paused"},[`${t}-fade-leave`]:{animationTimingFunction:a,animationFillMode:"both",animationDuration:r,animationPlayState:"paused"},[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationPlayState:"running"},[`${t}-fade-leave${t}-fade-leave-active`]:{animationName:s,animationPlayState:"running"},"&-rtl":{direction:"rtl",[`${i}-actions`]:{float:"left"}}})},{[t]:{[`${i}-wrapper`]:c0(e)}}]},u0=e=>({zIndexPopup:e.zIndexPopupBase+ss+50,width:384,colorSuccessBg:void 0,colorErrorBg:void 0,colorInfoBg:void 0,colorWarningBg:void 0}),m0=e=>{const t=e.paddingMD,n=e.paddingLG;return at(e,{notificationBg:e.colorBgElevated,notificationPaddingVertical:t,notificationPaddingHorizontal:n,notificationIconSize:e.calc(e.fontSizeLG).mul(e.lineHeightLG).equal(),notificationCloseButtonSize:e.calc(e.controlHeightLG).mul(.55).equal(),notificationMarginBottom:e.margin,notificationPadding:`${Z(e.paddingMD)} ${Z(e.paddingContentHorizontalLG)}`,notificationMarginEdge:e.marginLG,animationMaxHeight:150,notificationStackLayer:3,notificationProgressHeight:2,notificationProgressBg:`linear-gradient(90deg, ${e.colorPrimaryBorderHover}, ${e.colorPrimary})`})},p0=yt("Notification",e=>{const t=m0(e);return[d0(t),n0(t),l0(t)]},u0);function Gu(e,t){return t===null||t===!1?null:t||u.createElement(Vn,{className:`${e}-close-icon`})}const f0={success:os,info:is,error:rs,warning:as},g0=e=>{const{prefixCls:t,icon:n,type:o,message:r,description:a,actions:i,role:s="alert"}=e;let l=null;return n?l=u.createElement("span",{className:`${t}-icon`},n):o&&(l=u.createElement(f0[o]||null,{className:W(`${t}-icon`,`${t}-icon-${o}`)})),u.createElement("div",{className:W({[`${t}-with-icon`]:l}),role:s},l,u.createElement("div",{className:`${t}-message`},r),a&&u.createElement("div",{className:`${t}-description`},a),i&&u.createElement("div",{className:`${t}-actions`},i))};function h0(e,t,n){let o;switch(e){case"top":o={left:"50%",transform:"translateX(-50%)",right:"auto",top:t,bottom:"auto"};break;case"topLeft":o={left:0,top:t,bottom:"auto"};break;case"topRight":o={right:0,top:t,bottom:"auto"};break;case"bottom":o={left:"50%",transform:"translateX(-50%)",right:"auto",top:"auto",bottom:n};break;case"bottomLeft":o={left:0,top:"auto",bottom:n};break;default:o={right:0,top:"auto",bottom:n};break}return o}function v0(e){return{motionName:`${e}-fade`}}function b0(e,t,n){return typeof e<"u"?e:typeof(t==null?void 0:t.closeIcon)<"u"?t.closeIcon:n==null?void 0:n.closeIcon}var y0=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]]);return n};const hc=24,S0=4.5,w0="topRight",C0=({children:e,prefixCls:t})=>{const n=lr(t),[o,r,a]=p0(t,n);return o(I.createElement(su,{classNames:{list:W(r,a,n)}},e))},k0=(e,{prefixCls:t,key:n})=>I.createElement(C0,{prefixCls:t,key:n},e),x0=I.forwardRef((e,t)=>{const{top:n,bottom:o,prefixCls:r,getContainer:a,maxCount:i,rtl:s,onAllRemoved:l,stack:c,duration:d,pauseOnHover:m=!0,showProgress:p}=e,{getPrefixCls:g,getPopupContainer:h,notification:v,direction:f}=u.useContext(de),[,y]=bt(),b=r||g("notification"),S=E=>h0(E,n??hc,o??hc),C=()=>W({[`${b}-rtl`]:s??f==="rtl"}),w=()=>v0(b),[x,k]=lu({prefixCls:b,style:S,className:C,motion:w,closable:!0,closeIcon:Gu(b),duration:d??S0,getContainer:()=>(a==null?void 0:a())||(h==null?void 0:h())||document.body,maxCount:i,pauseOnHover:m,showProgress:p,onAllRemoved:l,renderNotifications:k0,stack:c===!1?!1:{threshold:typeof c=="object"?c==null?void 0:c.threshold:void 0,offset:8,gap:y.margin}});return I.useImperativeHandle(t,()=>Object.assign(Object.assign({},x),{prefixCls:b,notification:v})),k});function P0(e){const t=I.useRef(null);return or(),[I.useMemo(()=>{const o=s=>{var l;if(!t.current)return;const{open:c,prefixCls:d,notification:m}=t.current,p=`${d}-notice`,{message:g,description:h,icon:v,type:f,btn:y,actions:b,className:S,style:C,role:w="alert",closeIcon:x,closable:k}=s,E=y0(s,["message","description","icon","type","btn","actions","className","style","role","closeIcon","closable"]),T=b??y,P=Gu(p,b0(x,e,m));return c(Object.assign(Object.assign({placement:(l=e==null?void 0:e.placement)!==null&&l!==void 0?l:w0},E),{content:I.createElement(g0,{prefixCls:p,icon:v,type:f,message:g,description:h,actions:T,role:w}),className:W(f&&`${p}-${f}`,S,m==null?void 0:m.className),style:Object.assign(Object.assign({},m==null?void 0:m.style),C),closeIcon:P,closable:k??!!P}))},a={open:o,destroy:s=>{var l,c;s!==void 0?(l=t.current)===null||l===void 0||l.close(s):(c=t.current)===null||c===void 0||c.destroy()}};return["success","info","warning","error"].forEach(s=>{a[s]=l=>o(Object.assign(Object.assign({},l),{type:s}))}),a},[]),I.createElement(x0,Object.assign({key:"notification-holder"},e,{ref:t}))]}function T0(e){return P0(e)}const vc=I.createContext({}),Ku=I.createContext({message:{},notification:{},modal:{}}),E0=e=>{const{componentCls:t,colorText:n,fontSize:o,lineHeight:r,fontFamily:a}=e;return{[t]:{color:n,fontSize:o,lineHeight:r,fontFamily:a,[`&${t}-rtl`]:{direction:"rtl"}}}},R0=()=>({}),A0=yt("App",E0,R0),D0=e=>{const{prefixCls:t,children:n,className:o,rootClassName:r,message:a,notification:i,style:s,component:l="div"}=e,{direction:c,getPrefixCls:d}=u.useContext(de),m=d("app",t),[p,g,h]=A0(m),v=W(g,m,o,r,h,{[`${m}-rtl`]:c==="rtl"}),f=u.useContext(vc),y=I.useMemo(()=>({message:Object.assign(Object.assign({},f.message),a),notification:Object.assign(Object.assign({},f.notification),i)}),[a,i,f.message,f.notification]),[b,S]=ly(y.message),[C,w]=T0(y.notification),[x,k]=t0(),E=I.useMemo(()=>({message:b,notification:C,modal:x}),[b,C,x]);or()(!(h&&l===!1),"usage","When using cssVar, ensure `component` is assigned a valid React component string.");const T=l===!1?I.Fragment:l,P={className:v,style:s};return p(I.createElement(Ku.Provider,{value:E},I.createElement(vc.Provider,{value:y},I.createElement(T,Object.assign({},l===!1?void 0:P),k,S,w,n))))},M0=()=>I.useContext(Ku),us=D0;us.useApp=M0;var yr={};function O0(e){return e&&e.__esModule?e:{default:e}}const F0=Object.freeze(Object.defineProperty({__proto__:null,default:O0},Symbol.toStringTag,{value:"Module"})),Mt=Rc(F0);var Sr={};Object.defineProperty(Sr,"__esModule",{value:!0});Sr.default=void 0;var I0={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"};Sr.default=I0;var wr={},Xn={},Cr={};const Yu=Rc(mg);var Jn={};Object.defineProperty(Jn,"__esModule",{value:!0});Jn.commonLocale=void 0;Jn.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0};var _0=Mt.default;Object.defineProperty(Cr,"__esModule",{value:!0});Cr.default=void 0;var bc=_0(Yu),L0=Jn,N0=(0,bc.default)((0,bc.default)({},L0.commonLocale),{},{locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"OK",clear:"Clear",week:"Week",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"});Cr.default=N0;var Qn={};Object.defineProperty(Qn,"__esModule",{value:!0});Qn.default=void 0;const $0={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};Qn.default=$0;var Xu=Mt.default;Object.defineProperty(Xn,"__esModule",{value:!0});Xn.default=void 0;var B0=Xu(Cr),j0=Xu(Qn);const W0={lang:Object.assign({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},B0.default),timePickerLocale:Object.assign({},j0.default)};Xn.default=W0;var H0=Mt.default;Object.defineProperty(wr,"__esModule",{value:!0});wr.default=void 0;var U0=H0(Xn);wr.default=U0.default;var kr=Mt.default;Object.defineProperty(yr,"__esModule",{value:!0});yr.default=void 0;var V0=kr(Sr),z0=kr(wr),q0=kr(Xn),G0=kr(Qn);const He="${label} is not a valid ${type}",K0={locale:"en",Pagination:V0.default,DatePicker:q0.default,TimePicker:G0.default,Calendar:z0.default,global:{placeholder:"Please select",close:"Close"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckAll:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",deselectAll:"Deselect all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand",collapse:"Collapse"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:He,method:He,array:He,object:He,number:He,date:He,boolean:He,integer:He,float:He,regexp:He,email:He,url:He,hex:He},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"},ColorPicker:{presetEmpty:"Empty",transparent:"Transparent",singleColor:"Single",gradientColor:"Gradient"}};yr.default=K0;var Y0=yr;const X0=Ii(Y0);var xr={},Pr={};Object.defineProperty(Pr,"__esModule",{value:!0});Pr.default=void 0;var J0={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页",page_size:"页码"};Pr.default=J0;var Tr={},Zn={},Er={},Q0=Mt.default;Object.defineProperty(Er,"__esModule",{value:!0});Er.default=void 0;var yc=Q0(Yu),Z0=Jn,ek=(0,yc.default)((0,yc.default)({},Z0.commonLocale),{},{locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",week:"周",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪",yearFormat:"YYYY年",cellDateFormat:"D",monthBeforeYear:!1});Er.default=ek;var eo={};Object.defineProperty(eo,"__esModule",{value:!0});eo.default=void 0;const tk={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};eo.default=tk;var Ju=Mt.default;Object.defineProperty(Zn,"__esModule",{value:!0});Zn.default=void 0;var nk=Ju(Er),ok=Ju(eo);const Qu={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},nk.default),timePickerLocale:Object.assign({},ok.default)};Qu.lang.ok="确定";Zn.default=Qu;var rk=Mt.default;Object.defineProperty(Tr,"__esModule",{value:!0});Tr.default=void 0;var ak=rk(Zn);Tr.default=ak.default;var Rr=Mt.default;Object.defineProperty(xr,"__esModule",{value:!0});xr.default=void 0;var ik=Rr(Pr),sk=Rr(Tr),lk=Rr(Zn),ck=Rr(eo);const Ue="${label}不是一个有效的${type}",dk={locale:"zh-cn",Pagination:ik.default,DatePicker:lk.default,TimePicker:ck.default,Calendar:sk.default,global:{placeholder:"请选择",close:"关闭"},Table:{filterTitle:"筛选",filterConfirm:"确定",filterReset:"重置",filterEmptyText:"无筛选项",filterCheckAll:"全选",filterSearchPlaceholder:"在筛选项中搜索",emptyText:"暂无数据",selectAll:"全选当页",selectInvert:"反选当页",selectNone:"清空所有",selectionAll:"全选所有",sortTitle:"排序",expand:"展开行",collapse:"关闭行",triggerDesc:"点击降序",triggerAsc:"点击升序",cancelSort:"取消排序"},Modal:{okText:"确定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"结束导览"},Popconfirm:{cancelText:"取消",okText:"确定"},Transfer:{titles:["",""],searchPlaceholder:"请输入搜索内容",itemUnit:"项",itemsUnit:"项",remove:"删除",selectCurrent:"全选当页",removeCurrent:"删除当页",selectAll:"全选所有",deselectAll:"取消全选",removeAll:"删除全部",selectInvert:"反选当页"},Upload:{uploading:"文件上传中",removeFile:"删除文件",uploadError:"上传错误",previewFile:"预览文件",downloadFile:"下载文件"},Empty:{description:"暂无数据"},Icon:{icon:"图标"},Text:{edit:"编辑",copy:"复制",copied:"复制成功",expand:"展开",collapse:"收起"},Form:{optional:"(可选)",defaultValidateMessages:{default:"字段验证错误${label}",required:"请输入${label}",enum:"${label}必须是其中一个[${enum}]",whitespace:"${label}不能为空字符",date:{format:"${label}日期格式无效",parse:"${label}不能转换为日期",invalid:"${label}是一个无效日期"},types:{string:Ue,method:Ue,array:Ue,object:Ue,number:Ue,date:Ue,boolean:Ue,integer:Ue,float:Ue,regexp:Ue,email:Ue,url:Ue,hex:Ue},string:{len:"${label}须为${len}个字符",min:"${label}最少${min}个字符",max:"${label}最多${max}个字符",range:"${label}须在${min}-${max}字符之间"},number:{len:"${label}必须等于${len}",min:"${label}最小值为${min}",max:"${label}最大值为${max}",range:"${label}须在${min}-${max}之间"},array:{len:"须为${len}个${label}",min:"最少${min}个${label}",max:"最多${max}个${label}",range:"${label}数量须在${min}-${max}之间"},pattern:{mismatch:"${label}与模式不匹配${pattern}"}}},Image:{preview:"预览"},QRCode:{expired:"二维码过期",refresh:"点击刷新",scanned:"已扫描"},ColorPicker:{presetEmpty:"暂无",transparent:"无色",singleColor:"单色",gradientColor:"渐变色"}};xr.default=dk;var uk=xr;const mk=Ii(uk),pk="modulepreload",fk=function(e){return"/__ONEWORKS_PROJECT_CLIENT_BASE__/"+e},Sc={},ms=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),s=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));r=Promise.allSettled(n.map(l=>{if(l=fk(l),l in Sc)return;Sc[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const m=document.createElement("link");if(m.rel=c?"stylesheet":pk,c||(m.as="script"),m.crossOrigin="",m.href=l,s&&m.setAttribute("nonce",s),document.head.appendChild(m),c)return new Promise((p,g)=>{m.addEventListener("load",p),m.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${l}`)))})}))}function a(i){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=i,window.dispatchEvent(s),!s.defaultPrevented)throw i}return r.then(i=>{for(const s of i||[])s.status==="rejected"&&a(s.reason);return t().catch(a)})},gk=async()=>{},hk=async(e,t)=>{const n=await gk();return n==null?void 0:n.handleHomepagePreviewFetch(e,t)},ps="oneworks_server_base_url",fs="oneworks_server_connection_picker_requested",vk=(e,t)=>(e.trim()===""?"One Works Web":e.trim()).replace(/\s+\[[^\]]+\]$/,""),bk=()=>globalThis.__ONEWORKS_PROJECT_RUNTIME_ENV__,gs=e=>{const t=globalThis,n={...t.__ONEWORKS_PROJECT_RUNTIME_ENV__??{},...e};return t.__ONEWORKS_PROJECT_RUNTIME_ENV__=n,n},Ar=(...e)=>e.find(t=>typeof t=="string"&&t.trim()!==""),hs=e=>{let t=(e==null?void 0:e.trim())??"/ui";return t.startsWith("/")||(t=`/${t}`),t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t},yk=e=>{let t=(e==null?void 0:e.trim())??"";return t?(t.startsWith("/")||(t=`/${t}`),t):"/ws"},Sk=e=>{const t=e==null?void 0:e.trim();if(!(t==null||t===""||t==="0.0.0.0"||t==="::"||t==="[::]"))return t},wk=e=>/^[a-z][a-z\d+.-]*:\/\//i.test(e),vn=()=>{try{return globalThis.localStorage}catch{return}},Ei=()=>{var e;return((e=globalThis.location)==null?void 0:e.protocol)==="https:"?"https":"http"},vs=()=>{var e;return(e=Ar(wt().__ONEWORKS_PROJECT_CLIENT_MODE__,void 0,void 0))==null?void 0:e.trim().toLowerCase()},Ck=()=>vs()==="dev",Pa=()=>Ck()||/^(?:1|true|yes|on)$/i.test(Ar(wt().__ONEWORKS_PROJECT_CLIENT_DEV_SERVER__,void 0)??""),Pe=e=>{const t=(e==null?void 0:e.trim())??"";if(t==="")return;const n=wk(t)?t:`${Ei()}://${t}`;try{const o=new URL(n);return o.protocol!=="http:"&&o.protocol!=="https:"?void 0:(o.hash="",o.search="",o.toString().replace(/\/$/,""))}catch{return}},Dr=(e,t)=>{const n=Pe(e);if(n==null)throw new Error("Invalid server base URL");const o=t.replace(/^\/+/,"");return new URL(o,`${n}/`).toString()},kk=()=>{var e;return Pe(((e=vn())==null?void 0:e.getItem(ps))??void 0)},XP=e=>{var n;const t=Pe(e);if(t!=null)return(n=vn())==null||n.setItem(ps,t),t},xk=()=>{var e;(e=vn())==null||e.removeItem(ps)},Zu=()=>vs()==="desktop",Pk=()=>{var e;return(e=Ar(wt().__ONEWORKS_PROJECT_SERVER_ROLE__,void 0))==null?void 0:e.trim().toLowerCase()},em=()=>Pk()==="manager",Tk=()=>{const e=vs();return e==="standalone"||e==="independent"||e==="desktop"||em()},wt=()=>bk()??{},bs=(...e)=>hs(Ar(...e)),tm=()=>bs(wt().__ONEWORKS_PROJECT_CLIENT_BASE__,void 0,"/__ONEWORKS_PROJECT_CLIENT_BASE__/","/ui"),nm="w",ys=e=>{const t=e==null?void 0:e.trim();if(!(t==null||t===""))return/^w_[\w-]{8,64}$/u.test(t)?t:void 0},Ek=()=>ys(wt().__ONEWORKS_PROJECT_WORKSPACE_ID__),Rk=(e,t=bs(void 0,"/__ONEWORKS_PROJECT_CLIENT_BASE__/","/ui"))=>{const n=ys(e);if(n==null)throw new Error("Invalid workspace id");const o=hs(t),r=`${nm}/${encodeURIComponent(n)}`;return o==="/"?`/${r}`:`${o}/${r}`},Ak=(e,t=bs(void 0,"/__ONEWORKS_PROJECT_CLIENT_BASE__/","/ui"))=>{const n=hs(t),o=e.startsWith("/")?e:`/${e}`,r=n==="/"?o:o===n?"/":o.startsWith(`${n}/`)?o.slice(n.length):"",[a,i]=r.split("/").filter(Boolean);if(a===nm&&i!=null)try{return ys(decodeURIComponent(i))}catch{return}},Ri=()=>Sk(wt().__ONEWORKS_PROJECT_SERVER_HOST__??void 0),Ai=()=>wt().__ONEWORKS_PROJECT_SERVER_PORT__??void 0,om=()=>Pe(wt().__ONEWORKS_PROJECT_SERVER_BASE_URL__??void 0),rm=()=>{var o;const e=om();if(e!=null)return e;const t=Ri(),n=(o=Ai())==null?void 0:o.trim();if(!(t==null||n==null||n===""))return Pe(`${t}:${n}`)},JP=()=>{var e;return((e=vn())==null?void 0:e.getItem(fs))==="true"},QP=({clearCurrentServer:e=!1}={})=>{var t;e&&xk(),(t=vn())==null||t.setItem(fs,"true")},ZP=()=>{var e;(e=vn())==null||e.removeItem(fs)},eT=()=>yk(wt().__ONEWORKS_PROJECT_SERVER_WS_PATH__??void 0),bn=()=>{var r,a,i;const e=rm(),t=om();if(Zu()){if(t!=null)return t;if(Pa()&&((r=globalThis.location)==null?void 0:r.origin)!=null)return globalThis.location.origin;if(e!=null)return e;const s=Ri()??"localhost",l=Ai()??"8787";return Pe(`${s}:${l}`)??`${Ei()}://localhost:8787`}if(t!=null)return t;if(Tk()){const s=kk();if(s!=null)return s}if(e!=null&&(t!=null||!Pa()))return e;if(Pa()&&((a=globalThis.location)==null?void 0:a.origin)!=null)return globalThis.location.origin;if(e!=null)return e;const n=Ri()??((i=globalThis.location)==null?void 0:i.hostname)??"localhost",o=Ai()??"8787";return Pe(`${n}:${o}`)??`${Ei()}://localhost:8787`},Dk=e=>Dr(bn(),e),am="oneworks_server_base_url_history",im=()=>{try{return globalThis.localStorage}catch{return}},Et=e=>{const t=typeof e=="string"?e.trim():"";return t===""?void 0:t},Mk=(e,t)=>{if(typeof e=="string"){const d=Pe(e);return d==null?void 0:{serverUrl:d,createdAt:t,lastConnectedAt:t}}if(e==null||typeof e!="object"||Array.isArray(e))return;const n=e,o=Pe(n.serverUrl);if(o==null)return;const r=typeof n.createdAt=="number"?n.createdAt:t,a=typeof n.lastConnectedAt=="number"?n.lastConnectedAt:r,i=Et(n.alias),s=Et(n.description),l=Et(n.authToken),c=Et(n.serverVersion);return{serverUrl:o,createdAt:r,lastConnectedAt:a,...i!=null?{alias:i}:{},...s!=null?{description:s}:{},...l!=null?{authToken:l}:{},...c!=null?{serverVersion:c}:{}}},sm=e=>[...e].sort((t,n)=>n.lastConnectedAt-t.lastConnectedAt),to=e=>{var n;const t=sm(e);return(n=im())==null||n.setItem(am,JSON.stringify(t)),t},vt=()=>{var t;const e=(t=im())==null?void 0:t.getItem(am);if(e==null||e.trim()==="")return[];try{const n=JSON.parse(e);if(!Array.isArray(n))return[];const o=new Map,r=Date.now();for(const a of n){const i=Mk(a,r);i==null||o.has(i.serverUrl)||o.set(i.serverUrl,i)}return sm(Array.from(o.values()))}catch{return[]}},Ok=(e,t={})=>{const n=Pe(e);if(n==null)return vt();const o=Date.now(),r=vt(),a=r.find(s=>s.serverUrl===n),i={...a,serverUrl:n,createdAt:(a==null?void 0:a.createdAt)??o,lastConnectedAt:o,...Et(t.serverVersion)!=null?{serverVersion:Et(t.serverVersion)}:{}};return to([i,...r.filter(s=>s.serverUrl!==n)])},tT=(e,t)=>{const n=Pe(e);if(n==null)return vt();const o=Date.now(),r=vt(),a=r.find(m=>m.serverUrl===n),i=Et(t.alias),s=Et(t.description),{alias:l,description:c,...d}=a??{};return to([{...d,serverUrl:n,createdAt:(a==null?void 0:a.createdAt)??o,lastConnectedAt:(a==null?void 0:a.lastConnectedAt)??o,...i!=null?{alias:i}:{},...s!=null?{description:s}:{}},...r.filter(m=>m.serverUrl!==n)])},nT=e=>{const t=Pe(e);return t==null?vt():to(vt().filter(n=>n.serverUrl!==t))},Fk=e=>{var t;return(t=vt().find(n=>n.serverUrl===Pe(e)))==null?void 0:t.authToken},Ik=(e,t)=>{const n=t.trim();if(n==="")return;const o=Ok(e),r=Pe(e);to(o.map(a=>a.serverUrl===r?{...a,authToken:n}:a))},_k=e=>{const t=Pe(e);return t==null?vt():to(vt().map(n=>{if(n.serverUrl!==t)return n;const{authToken:o,...r}=n;return r}))},Lk=()=>{var n;const e=bn(),t=(n=Fk(e))==null?void 0:n.trim();return t==null||t===""?void 0:t},oT=e=>{const t=e.trim();t!==""&&Ik(bn(),t)},rT=()=>{_k(bn())},Nk=e=>{const t=Lk();t==null||e.has("Authorization")||e.set("Authorization",`Bearer ${t}`)},Mr={"Content-Type":"application/json"},$k=15e3,aT=()=>new URL(lm()).hostname,iT=()=>{const{port:e,protocol:t}=new URL(lm());return e!==""?e:t==="https:"?"443":"80"},lm=()=>bn(),Ss=e=>e.startsWith("http://")||e.startsWith("https://")?e:Dk(e),sT=e=>new URL(Ss(e));class gt extends Error{constructor(n,o){super(o.message);H(this,"status");H(this,"code");H(this,"details");this.name="ApiError",this.status=n,this.code=o.code,this.details=o.details}}const jo=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),Bk=e=>jo(e)&&e.success===!0&&"data"in e,cm=e=>jo(e)&&e.success===!1&&jo(e.error)&&typeof e.error.message=="string"&&typeof e.error.code=="string",jk=async e=>{const t=await e.text();if(t.trim()==="")return null;try{return JSON.parse(t)}catch{return t}},Wk=(e,t,n)=>{if(cm(t))return new gt(e,t.error);if(jo(t)){const o=typeof t.error=="string"?t.error:typeof t.message=="string"?t.message:n,r=typeof t.code=="string"?t.code:"request_failed";return new gt(e,{code:r,message:o,...t.details!==void 0?{details:t.details}:{}})}return typeof t=="string"&&t.trim()!==""?new gt(e,{code:"request_failed",message:t}):new gt(e,{code:"request_failed",message:n})},dm=async(e,t)=>{const n=await jk(e);if(!e.ok){const o=t??`Request failed with status ${e.status}`,r=Wk(e.status,n,o);throw console.error(t??"[api] request failed",e.status,r.message,r.details),r}if(cm(n))throw new gt(e.status,n.error);return Bk(n)?n.data:n},Hk=(e,t)=>e instanceof gt&&e.message.trim()!==""?e.message:Uk(e)?t:e instanceof Error&&e.message.trim()!==""?e.message:t,lT=e=>e instanceof gt&&e.code==="request_timeout",Uk=e=>e instanceof Error?typeof DOMException<"u"&&e instanceof DOMException&&(e.name==="AbortError"||e.name==="TimeoutError")?!0:e.message==="signal is aborted without reason"||e.message.toLowerCase().includes("aborted"):!1,Vk=e=>{const{timeoutMs:t,signal:n,...o}=e??{},r=new Headers(e==null?void 0:e.headers);Nk(r);const a=t??(n==null?$k:void 0);let i=!1,s=()=>{},l=n;if(a!=null&&a>0){const c=new AbortController,d=()=>c.abort(n==null?void 0:n.reason),m=()=>{i=!0,c.abort(new DOMException(`Request timed out after ${a}ms`,"TimeoutError"))};(n==null?void 0:n.aborted)===!0?d():n==null||n.addEventListener("abort",d,{once:!0});const p=setTimeout(m,a);s=()=>{clearTimeout(p),n==null||n.removeEventListener("abort",d)},l=c.signal}return{didTimeout:()=>i,init:{...o,signal:l,credentials:(e==null?void 0:e.credentials)??"include",headers:r},cleanup:s}},um=async(e,t)=>{const n=Vk(t);try{const o=await hk(e,n.init);return o??await fetch(e,n.init)}catch(o){throw n.didTimeout()?new gt(408,{code:"request_timeout",message:"Request timed out. Check that the server is still running and retry."}):o}finally{n.cleanup()}};async function Ct(e,t){const n=typeof e=="string"?Ss(e):e.toString(),o=await um(n,t);return dm(o)}async function cT(e,t,n){const o=typeof e=="string"?Ss(e):e.toString(),r=await um(o,t);return dm(r,n)}async function zk(e){try{return await navigator.clipboard.writeText(e.text),e.messageApi.success(e.successMessage),!0}catch{return e.messageApi.error(e.failureMessage),!1}}const qk=new Set(["connect","home","reload","restart","retry"]),mm="(max-width: 520px)",Gk={changeServer:"swap_horiz",connect:"link",home:"home",reload:"refresh",restart:"restart_alt",retry:"refresh"},Kk=e=>{switch(e){case"changeServer":return"errorState.actions.changeServer";case"connect":return"errorState.actions.connect";case"home":return"errorState.actions.home";case"reload":return"errorState.actions.reload";case"restart":return"errorState.actions.restart";case"retry":return"errorState.actions.retry"}},Yk=e=>L.jsx("span",{className:"material-symbols-rounded app-error-state__action-icon","aria-hidden":"true",children:e}),Xk=()=>typeof window>"u"||typeof window.matchMedia!="function"?!0:!window.matchMedia(mm).matches;function pm({actions:e=[],className:t,context:n,description:o,details:r,focusOnMount:a=!0,icon:i,measure:s="compact",mobileDescription:l,secondaryMessage:c,severity:d="error",title:m,variant:p="route"}){var T,P,M,F;const{t:g}=un(),{message:h}=us.useApp(),v=u.useRef(null),[f,y]=u.useState(Xk),b=l!=null,S=(r==null?void 0:r.title)??g("errorState.details"),C=r!=null&&((((T=r.items)==null?void 0:T.length)??0)>0||r.content!=null||r.copyText!=null),w=((P=r==null?void 0:r.copyText)==null?void 0:P.trim())===""||r==null?void 0:r.copyText,x=w!=null;u.useEffect(()=>{var D;a&&((D=v.current)==null||D.focus({preventScroll:!0}))},[a]),u.useEffect(()=>{if(!C||typeof window>"u"||typeof window.matchMedia!="function")return;const D=window.matchMedia(mm),A=()=>y(!D.matches);return A(),D.addEventListener("change",A),()=>D.removeEventListener("change",A)},[C]);const k=()=>{x&&zk({failureMessage:g("errorState.copyDiagnosticsFailed"),messageApi:h,successMessage:g("errorState.copyDiagnosticsSuccess"),text:w})},E=e.map((D,A)=>{const _=A===0&&qk.has(D.kind)?"primary":"default";return L.jsx(fn,{type:_,loading:D.loading,disabled:D.disabled,icon:Yk(Gk[D.kind]),onClick:D.onClick,children:D.label??g(Kk(D.kind))},`${D.kind}-${A}`)});return L.jsxs("div",{className:["app-error-state",`app-error-state--${p}`,`app-error-state--${d}`,`app-error-state--measure-${s}`,t].filter(Boolean).join(" "),role:"alert",children:[L.jsxs("div",{className:"app-error-state__content",children:[L.jsxs("div",{className:"app-error-state__header",children:[L.jsx("span",{className:"app-error-state__icon","aria-hidden":"true",children:i??L.jsx("span",{className:"material-symbols-rounded",children:"error"})}),L.jsx("h1",{ref:v,className:"app-error-state__title",tabIndex:-1,children:m})]}),o!=null&&L.jsx("p",{className:"app-error-state__description",children:o}),b&&L.jsx("p",{className:"app-error-state__mobile-description",children:l}),n!=null&&L.jsx("div",{className:"app-error-state__body",children:L.jsx("div",{className:"app-error-state__context",children:n})}),E.length>0&&L.jsx("div",{className:"app-error-state__actions",children:E}),c!=null&&L.jsx("div",{className:"app-error-state__secondary-message",children:c})]}),C&&L.jsxs("section",{className:"app-error-state__details","data-expanded":f,children:[L.jsxs("div",{className:"app-error-state__details-header",children:[L.jsx("div",{className:"app-error-state__details-title",children:S}),L.jsxs("div",{className:"app-error-state__details-actions",children:[x&&L.jsxs("button",{className:"app-error-state__details-copy",type:"button",onClick:k,children:[L.jsx("span",{className:"material-symbols-rounded","aria-hidden":"true",children:"content_copy"}),L.jsx("span",{children:g("errorState.copyDiagnostics")})]}),L.jsx("button",{className:"app-error-state__details-toggle",type:"button","aria-expanded":f,"aria-label":g(f?"errorState.collapseDiagnostics":"errorState.expandDiagnostics"),onClick:()=>y(D=>!D),children:L.jsx("span",{className:"material-symbols-rounded","aria-hidden":"true",children:f?"expand_more":"expand_less"})})]})]}),L.jsxs("div",{className:"app-error-state__details-body",children:[(((M=r==null?void 0:r.items)==null?void 0:M.length)??0)>0&&L.jsx("dl",{className:"app-error-state__detail-list",children:(F=r==null?void 0:r.items)==null?void 0:F.map((D,A)=>L.jsxs("div",{className:"app-error-state__detail-row",children:[L.jsx("dt",{className:"app-error-state__detail-label",children:D.label}),L.jsx("dd",{className:["app-error-state__detail-value",D.mono===!0?"app-error-state__detail-value--mono":void 0].filter(Boolean).join(" "),children:D.value})]},A))}),r==null?void 0:r.content]})]})]})}function fm({compact:e=!1,measure:t="compact",...n}){return L.jsx("div",{className:`app-error-state-screen ${e?"app-error-state-screen--compact":""}`,children:L.jsx(pm,{...n,measure:t,variant:"fullscreen"})})}function dT(e){return L.jsx("div",{className:"app-error-state-route",children:L.jsx(pm,{...e,variant:"route"})})}const Jk=(e,t)=>[`Message: ${(e==null?void 0:e.message)??"Unknown error"}`,"","Stack:",(e==null?void 0:e.stack)??"n/a","","Component stack:",(t==null?void 0:t.componentStack)??"n/a"].join(`
|
|
694
694
|
`);class Qk extends u.Component{constructor(){super(...arguments);H(this,"state",{})}static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,o){console.error("[app-error-boundary] render failed",n,o),this.setState({error:n,errorInfo:o})}render(){const{children:n,labels:o}=this.props,{error:r,errorInfo:a}=this.state;if(r==null)return n;const i=Jk(r,a);return L.jsx(fm,{actions:[{kind:"reload",label:o.reloadLabel,onClick:()=>window.location.reload()}],description:o.description,details:{copyText:i,items:[{label:o.copyLabel,mono:!0,value:r.message}],title:o.copyLabel},mobileDescription:o.mobileDescription,title:o.title})}}function Zk({children:e}){const{t}=un();return L.jsx(Qk,{labels:{copyLabel:t("errorState.diagnostics"),description:t("errorState.appCrashDescription"),mobileDescription:t("errorState.appCrashMobileDescription"),reloadLabel:t("errorState.actions.reload"),title:t("errorState.appCrashTitle")},children:e})}const ex=e=>{const t=e.trim(),n=t.startsWith("/")?t:`/${t}`;return n.endsWith("/")?n:`${n}/`},tx=e=>{const t=ex(e);return{scope:t,url:`${t}sw.js`}},nx=e=>{if(!("serviceWorker"in navigator))return;const t=tx(e.clientBase);window.addEventListener("load",()=>{navigator.serviceWorker.register(t.url,{scope:t.scope}).catch(n=>{console.warn("[pwa] service worker registration failed",n)})})},wc=80,ox=["input","textarea","select",'[contenteditable="true"]','[role="textbox"]'].join(","),Ta=()=>globalThis.visualViewport,gm=()=>{const e=document.activeElement;if(e instanceof HTMLElement)return e.matches(ox)?e:void 0},rx=()=>{const e=gm();e!=null&&e.scrollIntoView({block:"center",inline:"nearest",behavior:"auto"})},ax=()=>{var o,r;if(typeof window>"u")return;let e=0;const t=()=>{const a=Ta(),i=(a==null?void 0:a.height)??window.innerHeight,s=(a==null?void 0:a.offsetTop)??0,l=gm(),c=a==null||l==null?0:Math.max(0,window.innerHeight-i-s);return document.documentElement.style.setProperty("--oneworks-visual-viewport-height",`${Math.round(i)}px`),document.documentElement.style.setProperty("--oneworks-keyboard-inset-bottom",`${Math.round(c)}px`),document.documentElement.classList.toggle("has-mobile-keyboard",c>wc),c},n=()=>{window.cancelAnimationFrame(e),e=window.requestAnimationFrame(()=>{t()>wc&&rx()})};t(),(o=Ta())==null||o.addEventListener("resize",n),(r=Ta())==null||r.addEventListener("scroll",n),window.addEventListener("resize",n),window.addEventListener("orientationchange",n),document.addEventListener("focusin",n),document.addEventListener("focusout",()=>{window.setTimeout(t,120)})},ix="/standalone/devices",uT="/standalone/devices/settings",sx=e=>{try{return decodeURIComponent(e)}catch{return e}},lx=e=>{const t=e==null?void 0:e.trim();return t==null||t===""?void 0:t},cx=e=>{try{return new URL(e,"http://localhost")}catch{return}},mT=e=>`${ix}/${encodeURIComponent(e)}/debug`,dx=e=>{const t=cx(e.trim());if(t==null)return;const o=(t.pathname.replace(/\/+$/,"")||"/").split("/").filter(Boolean);if(o[0]!=="standalone"||o[1]!=="devices")return;if(o.length===2)return{kind:"devices",mode:"devices"};if(o.length===3&&o[2]==="settings")return{kind:"devices",mode:"settings"};const r=lx(o[2]==null?void 0:sx(o[2]));if(r!=null&&o.length===4&&o[3]==="debug")return{deviceId:r,kind:"devices",mode:"debug"}},ux=e=>dx(e)!=null,mx=()=>{var e;return Pe((e=globalThis.location)==null?void 0:e.origin)??rm()??bn()},Ot=e=>Dr(mx(),e),ws=()=>{var t;const e=(t=globalThis.location)==null?void 0:t.origin;return e==null||e==="null"||e.trim()===""?{}:{"X-OneWorks-Client-Origin":e}},pT=()=>Ct(Ot("/api/launcher/workspaces")),fT=e=>Ct(Ot("/api/launcher/workspaces/open"),{method:"POST",headers:{...Mr,...ws()},body:JSON.stringify({workspaceFolder:e}),timeoutMs:3e4}),px=e=>Ct(Ot(`/api/launcher/workspaces/${encodeURIComponent(e)}/connection`),{headers:ws(),timeoutMs:3e4}),Cc=e=>Ct(Ot(`/api/launcher/workspaces/${encodeURIComponent(e)}/restart`),{method:"POST",headers:ws(),timeoutMs:45e3}),gT=e=>Ct(Ot("/api/launcher/workspaces/forget"),{method:"POST",headers:Mr,body:JSON.stringify({workspaceFolder:e})}),hT=(e,t={})=>Ct(Ot("/api/launcher/workspaces/stop"),{method:"POST",headers:Mr,body:JSON.stringify({workspaceFolder:e,forget:t.forget===!0})}),vT=e=>{const t=new URL(Ot("/api/launcher/directories"));return e!=null&&e.trim()!==""&&t.searchParams.set("directory",e),Ct(t)},bT=(e,t)=>Ct(Ot("/api/launcher/workspaces/create"),{method:"POST",headers:Mr,body:JSON.stringify({parentDirectory:e,projectName:t})}),Di=u.createContext(null),fx=8e3,gx=e=>{const t=e.getBoundingClientRect();if(t.width<=0||t.height<=0)return!1;const n=window.getComputedStyle(e);return n.display!=="none"&&n.visibility!=="hidden"&&n.opacity!=="0"},hx=e=>Array.from(document.querySelectorAll(e)).some(gx);function yT(e,t={}){const n=u.useContext(Di),{timeoutMs:o=fx,visibleSelector:r}=t;u.useEffect(()=>{if(!e||n==null)return;let a=!1,i=!1,s=null,l=null,c=null,d=null;const m=()=>{c==null||c.disconnect(),c=null,d!=null&&(window.clearTimeout(d),d=null)},p=()=>{a||i||s!=null||l!=null||(s=window.requestAnimationFrame(()=>{s=null,l=window.requestAnimationFrame(()=>{l=null,!(a||i)&&(i=!0,m(),n())})}))},g=()=>{r!=null&&!hx(r)||p()};return r==null?p():(c=new MutationObserver(g),c.observe(document.documentElement,{attributeFilter:["aria-hidden","class","data-oneworks-sender-editor-ready","hidden","style"],attributes:!0,childList:!0,subtree:!0}),d=window.setTimeout(p,o),g()),()=>{a=!0,m(),s!=null&&window.cancelAnimationFrame(s),l!=null&&window.cancelAnimationFrame(l)}},[n,e,o,r])}const vx="desktop-workspace-startup",bx=3200,yx=["quickFind","dragFiles","newWindow","slashCommand","sidePanel","terminal","context","glass"];function Sx({appearance:e,phase:t="visible",subtitle:n,title:o}){const{t:r}=un(),a=u.useRef(null),i=u.useRef(null),[s,l]=u.useState(0),[c,d]=u.useState(!1),m=u.useMemo(()=>yx.map(g=>r(`desktopStartupOverlay.tips.${g}`)),[r]),p=m[s%m.length]??r("desktopStartupOverlay.defaultTip");return u.useEffect(()=>{const g=a.current;if(!(g==null||i.current!=null)){try{i.current=Uc(g,{appearance:e,background:"transparent",canvasClassName:"workspace-opening-overlay__icon-canvas",className:"workspace-opening-overlay__icon-loader",motion:!0,random:!1,seed:vx,shadow:!1,theme:"metal"}),d(!1)}catch(h){d(!0),console.warn("[workspace-opening] failed to mount opening animation",h)}return()=>{var h;(h=i.current)==null||h.dispose(),i.current=null}}},[e]),u.useEffect(()=>{var g;(g=i.current)==null||g.update({appearance:e})},[e]),u.useEffect(()=>{l(0);const g=window.setInterval(()=>{l(h=>h+1)},bx);return()=>window.clearInterval(g)},[n]),_i.createPortal(L.jsxs("div",{className:["workspace-opening-overlay",t==="exiting"?"is-exiting":"is-visible"].join(" "),"data-phase":t,role:"status","aria-live":"polite","aria-busy":"true",children:[L.jsxs("div",{className:"workspace-opening-overlay__content",children:[L.jsxs("div",{ref:a,className:["workspace-opening-overlay__icon",c?"is-fallback":""].filter(Boolean).join(" "),"aria-label":r("launcher.openingProjectAnimationLabel"),role:"img",children:[L.jsx("img",{className:"workspace-opening-overlay__icon-fallback workspace-opening-overlay__icon-fallback--light",src:"/favicon-metal-light.svg",alt:"",draggable:!1}),L.jsx("img",{className:"workspace-opening-overlay__icon-fallback workspace-opening-overlay__icon-fallback--dark",src:"/favicon-metal-dark.svg",alt:"",draggable:!1})]}),L.jsxs("div",{className:"workspace-opening-overlay__copy",children:[L.jsx("p",{className:"workspace-opening-overlay__eyebrow",children:r("desktopStartupOverlay.eyebrow")}),L.jsx("h2",{className:"workspace-opening-overlay__title",children:o}),n!=null&&n.trim()!==""&&L.jsx("p",{className:"workspace-opening-overlay__subtitle",title:n,children:n})]})]}),L.jsx("p",{className:"workspace-opening-overlay__tip",children:p})]}),document.body)}const ST=Ge(Number(localStorage.getItem("sidebarWidth"))||300),wT=Ge(!1),CT=Ge(!1),kT=Ge(!1);Ge(void 0);const wx=e=>e==="light"||e==="dark"||e==="system",Cx=e=>wx(e)?e:"system",kc=Ge("system"),kx=Ge(e=>e(kc),(e,t,n)=>{t(kc,Cx(n))}),xx=(e,t)=>{try{const n=localStorage.getItem(e);if(n==="true")return!0;if(n==="false")return!1}catch{}return t},hm=(e,t)=>{const n=Ge(xx(e,t));return Ge(o=>o(n),(o,r,a)=>{const i=a===!0;r(n,i);try{localStorage.setItem(e,String(i))}catch{}})},Px=(e,t)=>{try{const n=localStorage.getItem(e);if(n==null||n.trim()==="")return t;const o=Number(n);if(Number.isInteger(o)&&o>=0)return o}catch{}return t},vm=(e,t)=>{const n=Ge(Px(e,t));return Ge(o=>o(n),(o,r,a)=>{const i=Number.isInteger(a)&&a>=0?a:t;r(n,i);try{localStorage.setItem(e,String(i))}catch{}})},bm="oneworks_sender_header_default_display",ym=e=>e==="expanded"||e==="collapsed",Tx=()=>{try{const e=localStorage.getItem(bm);if(e!=null&&ym(e))return e}catch{}return"collapsed"},xc=Ge(Tx()),xT=Ge(e=>e(xc),(e,t,n)=>{const o=ym(n)?n:"collapsed";t(xc,o);try{localStorage.setItem(bm,o)}catch{}}),Ex="oneworks_show_announcements",Rx="oneworks_show_new_session_starter_list",Ax="oneworks_session_list_search_threshold",Dx="oneworks_interaction_panel_pinned_tab_limit",Mx=5,Ox=4,PT=hm(Ex,!0),TT=hm(Rx,!0),ET=vm(Ax,Mx),RT=vm(Dx,Ox),Fx=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-color-scheme: dark)").matches;function Ix(){const e=Ap(kx),[t,n]=u.useState(Fx);u.useEffect(()=>{if(e!=="system"||typeof window>"u"||typeof window.matchMedia!="function")return;const r=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>n(r.matches);return a(),r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[e]);const o=e==="dark"||e==="system"&&t?"dark":"light";return u.useMemo(()=>({isDarkMode:o==="dark",resolvedThemeMode:o,themeMode:e}),[o,e])}function AT(e){u.useEffect(()=>{const t=window.oneworksDesktop,n=t==null?void 0:t.setThemeSource;if(n==null)return;n(e).catch(()=>{});const o=t==null?void 0:t.updateDesktopSettings;if(o==null)return;let r=!1;return(async()=>{var i;try{const s=await((i=t==null?void 0:t.getDesktopSettings)==null?void 0:i.call(t));if(r||(s==null?void 0:s.iconAppearance)===e)return;await o({iconAppearance:e})}catch{}})(),()=>{r=!0}},[e])}const _x=4e3,Lx=new Set(["running","waiting_input"]),en=e=>e!=null&&typeof e=="object"&&!Array.isArray(e),Nx=e=>en(e)&&en(e.existing)&&en(e.requested)&&typeof e.workspaceFolder=="string"&&typeof e.restartable=="boolean",Ea=e=>e instanceof gt&&e.code==="workspace_server_version_conflict"&&Nx(e.details)?e.details:void 0,$x=e=>en(e)&&e.success===!0&&"data"in e?e.data:e,Bx=e=>{if(!en(e)||typeof e.id!="string"||e.id.trim()==="")return;const t=typeof e.status=="string"&&Lx.has(e.status)?e.status:void 0;if(t==null)return;const n=typeof e.title=="string"&&e.title.trim()!==""?e.title.trim():void 0;return{id:e.id,status:t,...n==null?{}:{title:n}}},Sm=e=>Array.isArray(e)?e.map(Bx).filter(t=>t!=null):[],wm=async e=>{const t=new AbortController,n=globalThis.setTimeout(()=>t.abort(),_x);try{const o=await fetch(e,{credentials:"include",signal:t.signal});if(!o.ok)return;const r=await o.text();if(r.trim()==="")return;try{return $x(JSON.parse(r))}catch{return}}catch{return}finally{globalThis.clearTimeout(n)}},jx=async e=>{const t=await wm(Dr(e,"/api/workspace/activity"));if(!en(t))return{status:"unknown"};const n=t;if(n.idle===!0)return{status:"idle"};if(n.idle===!1){const o=Sm(n.activeSessions);return{status:"busy",activeSessionCount:typeof n.activeSessionCount=="number"?n.activeSessionCount:o.length>0?o.length:1,activeSessions:o}}return{status:"unknown"}},Wx=async e=>{const t=await wm(Dr(e,"/api/sessions")),n=t==null?void 0:t.sessions;if(!Array.isArray(n))return{status:"unknown"};const o=Sm(n);return o.length>0?{status:"busy",activeSessionCount:o.length,activeSessions:o}:{status:"idle"}},Hx=async e=>{const t=Pe(e.existing.serverBaseUrl);if(t==null)return{status:"unknown"};const n=await jx(t);return n.status==="unknown"?await Wx(t):n},Ra=e=>{const t=Pe(e.serverBaseUrl);if(t==null)throw new Error("Workspace server returned an invalid URL.");gs({__ONEWORKS_PROJECT_SERVER_BASE_URL__:t,__ONEWORKS_PROJECT_SERVER_ROLE__:"workspace",__ONEWORKS_PROJECT_WORKSPACE_FOLDER__:e.workspaceFolder,__ONEWORKS_PROJECT_WORKSPACE_ID__:e.workspaceId})},Pc=e=>e==null||e.trim()===""?"n/a":(e.startsWith("git:")||e.startsWith("git-runtime:"))&&e.length>38?`${e.slice(0,38)}...`:e,Ux=e=>{var n;const t=(n=e.title)==null?void 0:n.trim();return t==null||t===""?e.id:t},Cm=(e,t)=>{const n=(e==null?void 0:e.trim())===""||e==null?"n/a":e,o=(t==null?void 0:t.trim())===""||t==null?"n/a":t;return n===o?n:`${n} -> ${o}`},Vx=(e,t)=>[`${t.runtimeCompatibilityVersion}: ${Cm(e.existing.runtimeCompatibilityVersion,e.requested.runtimeCompatibilityVersion)}`,`${t.runningVersion}: ${e.existing.sourceVersionId??e.existing.implementationId??"n/a"}`,`${t.requestedVersion}: ${e.requested.sourceVersionId??e.requested.implementationId??"n/a"}`,`${t.serverUrl}: ${e.existing.serverBaseUrl??"n/a"}`,`${t.processId}: ${e.existing.pid??"n/a"}`].join(`
|
|
695
|
-
`),zx=()=>typeof window>"u"||typeof window.matchMedia!="function"||!window.matchMedia("(max-width: 520px)").matches;function qx({details:e,isRestarting:t,message:n,restartActivity:o,restartErrorMessage:r,onRestart:a,onRetry:i}){const{t:s}=un(),l=(o==null?void 0:o.status)==="busy"?o:void 0,c=e==null?n:s("workspaceConnection.versionConflictTitle"),[d,m]=u.useState(zx),p=u.useMemo(()=>({processId:s("workspaceConnection.processId"),requestedVersion:s("workspaceConnection.requestedVersion"),runtimeCompatibilityVersion:s("workspaceConnection.runtimeCompatibilityVersion"),runningVersion:s("workspaceConnection.runningVersion"),serverUrl:s("workspaceConnection.serverUrl")}),[s]),g=u.useMemo(()=>e==null?[]:[{label:p.runtimeCompatibilityVersion,mono:!0,value:Cm(e.existing.runtimeCompatibilityVersion,e.requested.runtimeCompatibilityVersion)},{label:p.runningVersion,mono:!0,value:Pc(e.existing.sourceVersionId??e.existing.implementationId)},{label:p.requestedVersion,mono:!0,value:Pc(e.requested.sourceVersionId??e.requested.implementationId)},{label:p.serverUrl,mono:!0,value:e.existing.serverBaseUrl??"n/a"},{label:p.processId,mono:!0,value:e.existing.pid??"n/a"}],[e,p]),h=u.useMemo(()=>{const f=new Map;for(const y of(l==null?void 0:l.activeSessions)??[]){const b=y.status??"unknown";f.set(b,(f.get(b)??0)+1)}return Array.from(f.entries())},[l==null?void 0:l.activeSessions]),v=u.useMemo(()=>[...(e==null?void 0:e.restartable)===!0?[{kind:"restart",loading:t,onClick:a}]:[],{disabled:t,kind:"retry",onClick:i}],[e==null?void 0:e.restartable,t,a,i]);return u.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const f=window.matchMedia("(max-width: 520px)"),y=()=>m(!f.matches);return y(),f.addEventListener("change",y),()=>f.removeEventListener("change",y)},[]),L.jsx(fm,{actions:v,className:"workspace-connection-gate__state",context:l==null?void 0:L.jsxs("div",{className:"workspace-connection-gate__busy",children:[L.jsxs("div",{className:"workspace-connection-gate__busy-header",children:[L.jsx("div",{className:"workspace-connection-gate__busy-title",children:s("workspaceConnection.busyTitle",{count:l.activeSessionCount})}),L.jsx("div",{className:"workspace-connection-gate__busy-badge",children:s("workspaceConnection.autoRestartPaused")})]}),L.jsx("p",{className:"workspace-connection-gate__busy-description",children:s("workspaceConnection.busyDescription")}),L.jsxs("div",{className:"workspace-connection-gate__busy-stats","aria-label":s("workspaceConnection.busyStatsLabel"),children:[L.jsx("span",{children:s("workspaceConnection.busyTotal",{count:l.activeSessionCount})}),h.map(([f,y])=>L.jsxs("span",{children:[f==="unknown"?s("workspaceConnection.unknownStatus"):s(`common.status.${f}`,{defaultValue:f})," ",y]},f))]}),l.activeSessions.length>0&&L.jsxs(L.Fragment,{children:[L.jsx("button",{className:"workspace-connection-gate__busy-toggle",type:"button","aria-expanded":d,onClick:()=>m(f=>!f),children:s(d?"workspaceConnection.hideActiveSessions":"workspaceConnection.showActiveSessions")}),d&&L.jsx("ul",{className:"workspace-connection-gate__busy-list",children:l.activeSessions.map(f=>L.jsxs("li",{children:[L.jsxs("span",{className:"workspace-connection-gate__busy-session-main",children:[L.jsx("span",{className:"workspace-connection-gate__busy-session-title",children:Ux(f)}),L.jsx("span",{className:"workspace-connection-gate__busy-session-id",children:f.id})]}),L.jsx("span",{className:"workspace-connection-gate__busy-session-status",children:f.status==null?s("workspaceConnection.unknownStatus"):s(`common.status.${f.status}`,{defaultValue:f.status})})]},f.id))})]})]}),description:e==null?void 0:s("workspaceConnection.versionConflictDescription"),details:e==null?void 0:{copyText:Vx(e,p),items:g,title:s("workspaceConnection.diagnosticsTitle")},measure:"wide",mobileDescription:e==null?void 0:s("workspaceConnection.mobileVersionConflictSummary"),secondaryMessage:r,title:c})}const Gx=720,Kx=420,Yx=8e3,Xx=e=>JSON.stringify({existingImplementationId:e.existing.implementationId,existingLaunchConfigHash:e.existing.launchConfigHash,existingServerBaseUrl:e.existing.serverBaseUrl,requestedImplementationId:e.requested.implementationId,requestedLaunchConfigHash:e.requested.launchConfigHash,workspaceFolder:e.workspaceFolder});function Jx({children:e,workspaceId:t}){const{t:n}=un(),{resolvedThemeMode:o}=Ix(),[r,a]=u.useState({status:"loading"}),[i,s]=u.useState(),[l,c]=u.useState(!1),[d,m]=u.useState("visible"),p=u.useContext(Di),g=u.useRef(performance.now()),h=u.useRef(!1),v=u.useRef(null),f=u.useRef(null),y=u.useRef(),b=u.useRef(),S=u.useCallback(()=>{v.current!=null&&(window.clearTimeout(v.current),v.current=null),f.current!=null&&(window.clearTimeout(f.current),f.current=null)},[]),C=u.useCallback(()=>{S(),g.current=performance.now(),h.current=!1,m("visible")},[S]),w=u.useCallback(()=>{if(h.current)return;h.current=!0;const D=performance.now()-g.current,A=Math.max(0,Gx-D);v.current=window.setTimeout(()=>{v.current=null,m("exiting"),f.current=window.setTimeout(()=>{f.current=null,m("hidden")},Kx)},A)},[]),x=u.useCallback(()=>{w(),p==null||p()},[p,w]),k=u.useCallback(async D=>{if(D.restartable!==!0)return;const A=Xx(D);if(y.current===A)return;const _=await Hx(D);if(b.current=_,_.status==="idle")return y.current=A,await Cc(t)},[t]),E=u.useCallback(async()=>{try{return await px(t)}catch(D){const A=Ea(D);if(A!=null)try{const _=await k(A);if(_!=null)return _}catch{}throw D}},[k,t]),T=u.useCallback(async()=>{C(),a({status:"loading"}),s(void 0),b.current=void 0;try{const D=await E();Ra(D),a({status:"ready"})}catch(D){const A=Ea(D),_=b.current;b.current=void 0,a({details:A,message:D instanceof Error&&D.message.trim()!==""?D.message:"Failed to open workspace.",..._==null?{}:{restartActivity:_},status:"error"})}},[E,C]);u.useEffect(()=>{let D=!1;return(async()=>{C(),a({status:"loading"}),s(void 0),b.current=void 0;try{const A=await E();if(D)return;Ra(A),a({status:"ready"})}catch(A){if(D)return;const _=Ea(A),N=b.current;b.current=void 0,a({details:_,status:"error",...N==null?{}:{restartActivity:N},message:A instanceof Error&&A.message.trim()!==""?A.message:"Failed to open workspace."})}})(),()=>{D=!0}},[E,C]);const P=u.useCallback(async()=>{var D;if(!(r.status!=="error"||((D=r.details)==null?void 0:D.restartable)!==!0)){c(!0),s(void 0);try{const A=await Cc(t);Ra(A),a({status:"ready"})}catch(A){s(Hk(A,n("workspaceConnection.restartFailed")))}finally{c(!1)}}},[r,n,t]);if(u.useEffect(()=>()=>S(),[S]),u.useEffect(()=>{if(r.status!=="ready")return;const D=window.setTimeout(x,Yx);return()=>window.clearTimeout(D)},[x,r.status]),r.status==="error")return L.jsx(qx,{details:r.details,isRestarting:l,message:r.message,restartActivity:r.restartActivity,restartErrorMessage:i,onRestart:()=>void P(),onRetry:()=>void T()});const M=r.status==="ready",F=d!=="hidden";return L.jsxs(Di.Provider,{value:M?x:null,children:[M?e:L.jsx("div",{className:"workspace-connection-gate workspace-connection-gate--loading"}),F&&L.jsx(Sx,{appearance:o,phase:d==="exiting"?"exiting":"visible",title:n("desktopStartupOverlay.title")})]})}const Qx=u.lazy(async()=>({default:(await ms(async()=>{const{LauncherApp:e}=await import("./LauncherApp-olYmK_zO.js");return{LauncherApp:e}},__vite__mapDeps([0,1,2,3]))).LauncherApp})),Zx=u.lazy(async()=>({default:(await ms(async()=>{const{StandaloneMobileDebugRoute:e}=await import("./StandaloneMobileDebugRoute-BR4w_LeM.js");return{StandaloneMobileDebugRoute:e}},__vite__mapDeps([4,1,5,2,6,7,8,9,10,11,12,13,14,3,15]))).StandaloneMobileDebugRoute})),Aa=u.lazy(async()=>({default:(await ms(async()=>{const{WorkspaceApp:e}=await import("./WorkspaceApp-BNmtIdn4.js").then(t=>t.W);return{WorkspaceApp:e}},__vite__mapDeps([16,1,2,6,7,8,17,18]))).WorkspaceApp})),eP=e=>!1;function tP(){return L.jsx(Da,{to:"/",replace:!0})}function nP(){const e=Tp(),t=em(),n=Ek(),o=eP(e.search),r=u.useRef(o);return e.pathname==="/__component-lab"?L.jsx(tP,{}):ux(`${e.pathname}${e.search}`)?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Zx,{})}):n!=null?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Jx,{workspaceId:n,children:L.jsx(Aa,{})})}):r.current?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Aa,{})}):e.pathname==="/launcher"?window.oneworksDesktop==null&&!t?L.jsx(Da,{to:"/",replace:!0}):L.jsx(u.Suspense,{fallback:null,children:L.jsx(Qx,{})}):window.oneworksDesktop!=null&&Zu()&&!t?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Aa,{})}):L.jsx(Da,{to:{pathname:"/launcher",search:e.search,hash:e.hash},replace:!0})}const km={newChat:"New Chat",search:"Search title or ID...",sessions:"Sessions",knowledgeBase:"Data Assets",pluginStore:"Plugin Marketplace",scheduledTasks:"Scheduled Tasks",archive:"Archive",archivedSessions:"Archived Sessions",theme:"Theme Mode",themeLight:"Light",themeDark:"Dark",themeSystem:"System",settings:"Settings",navigation:"Navigation",language:"Language",reset:"Reset",automation:"Automation",benchmark:"Benchmark",delete:"Delete",deleteSession:"Delete Session",deleteSessionConfirm:"Are you sure you want to delete this session? This action cannot be undone.",restore:"Restore",restoreSuccess:"Restored successfully",restoreFailed:"Failed to restore",batchRestore:"Batch Restore",batchRestoreSuccess:"Batch restored successfully",batchRestoreFailed:"Failed to restore some sessions",cancel:"Cancel",continue:"Continue",confirm:"Confirm",clear:"Clear",select:"Select",confirmAction:"Confirm {{action}}",startNewChat:"No active sessions found. Start a new chat!",back:"Back",backToHome:"Back to Home",noData:"No data",noSessions:"No matching sessions found",noArchivedSessions:"No archived sessions",sessionNotFound:"Session not found",roomNotFound:"Agent room not found",expand:"Expand sidebar",dragResize:"Drag to resize",selectOrCreateSession:"Please select or create a session to start chatting",batchMode:"Batch Mode",cancelBatch:"Cancel Batch Mode",batchArchive:"Batch Archive",archiveConfirm:"Are you sure you want to archive the selected {{count}} chats?",alreadyInNewChat:"You are already in a new chat",creatingChat:"Creating",batchDelete:"Batch Delete",batchDeleteSuccess:"Batch deleted successfully",batchDeleteFailed:"Failed to delete some sessions",selectedCount:"{{count}} sessions selected",selectAll:"Select all",deselectAll:"Deselect all",collapse:"Collapse sidebar",close:"Close",enterFullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen",expandPanel:"Expand panel",collapsePanel:"Collapse panel",sort:"Sort order",tags:"Tags",allTags:"All tags",allAdapters:"All adapters",searchActions:"Search and filters",expandItem:"Expand item",collapseItem:"Collapse item",expandChildren:"Expand children",collapseChildren:"Collapse children",expandGroup:"Expand group",collapseGroup:"Collapse group",childSummary:"{{count}} child sessions",childStatusItem:"{{count}} {{status}}",deleteConfirm:"Are you sure you want to delete the selected {{count}} chats?",deleteSuccess:"Deleted successfully",deleteFailed:"Failed to delete",operationFailed:"Operation failed",openInNewWindow:"Open in New Window",notSupportedYet:"Not supported yet",notifications:{queueLabel:"Notification queue",close:"Close message",mutePlugin:"Mute messages from {{plugin}}"},copyFailed:"Copy failed",star:"Star",unstar:"Unstar",rename:"Rename",renameSession:"Rename session",addTag:"Tag",copySessionLink:"Copy session link",copySessionId:"Copy session ID",copyResumeCommand:"Copy resume command",copyWorkspacePath:"Copy workspace path",copySessionMarkdown:"Copy session as Markdown",forkCurrentWorkspace:"Fork to current workspace",deriveNewWorktree:"Derive to new worktree",createScheduledTask:"Create scheduled task",moreActions:"More actions",createdAt:"Created at",sessionLinkCopied:"Session link copied to clipboard",resumeCommandCopied:"Resume command copied to clipboard",sessionIdCopied:"Session ID copied to clipboard",workspacePathCopied:"Workspace path copied to clipboard",sessionMarkdownCopied:"Session Markdown copied to clipboard",doubleClickToCopy:"Double click to copy Session ID",status:{running:"Running",completed:"Done",failed:"Failed",terminated:"Stopped",waiting_input:"Waiting"}},xm={actions:{changeServer:"Switch",connect:"Connect",home:"Home",reload:"Reload",restart:"Restart",retry:"Retry"},appCrashDescription:"The interface hit a rendering error. The current page state may be incomplete; reloading usually restores it.",appCrashMobileDescription:"The interface hit an error. Reload the page to continue.",appCrashTitle:"Page error",configLoadFailedDescription:"Configuration data is temporarily unavailable. Reload configuration or return home and continue other work.",connectionIssueTitle:"Connection failed",copyDiagnostics:"Copy",copyDiagnosticsFailed:"Failed to copy diagnostics",copyDiagnosticsSuccess:"Diagnostics copied",details:"Details",diagnostics:"Diagnostics",collapseDiagnostics:"Collapse diagnostics",expandDiagnostics:"Expand diagnostics",roomNotFoundDescription:"This agent room was not found. It may have been deleted, archived, or not synced by the current service yet.",roomId:"Room ID",routeNotFoundDescription:"No page matches the current address. Return home or check whether the link is complete.",routeNotFoundMobileDescription:"No page matches this address.",routeNotFoundTitle:"Page not found",sessionNotFoundDescription:"This session was not found. It may have been deleted, archived, or not synced by the current service yet.",sessionId:"Session ID"},Pm={open:"Sync Data",title:"Sync Data",settingsTitle:"Browser Data",settingsDescription:"Sync data used by web sign-in from browsers or backups.",summaryTitle:"Start with data that can be migrated safely",summaryDescription:"This version syncs saved passwords from CSV files or detected Chromium-based browsers and imports verification codes from Authenticator standard backups. Password manager extensions will be connected as a later sync item.",securityTitle:"Security",securityDescription:"OneWorks does not silently read third-party password manager vaults, browser extension data, or 2FA secrets. Syncing passwords may ask for system permission to access the selected browser secure storage. Imported data is encrypted by desktop secure storage and kept on this device.",actions:{comingSoon:"Coming Soon",chooseFile:"Choose file",importBackup:"Import Backup",manage:"View",sync:"Sync"},status:{available:"Available",planned:"Planned"},savedPasswords:{title:"Saved passwords",description:"Sync saved passwords from detected local browser profiles into the OneWorks encrypted vault. {{count}} passwords are saved.",importSuccess:"Synced {{imported}} passwords, updated {{updated}}, skipped {{skipped}}; {{duplicates}} duplicate accounts were handled by your choice, and {{failed}} could not be decrypted.",importFailed:"Failed to sync browser passwords. Make sure the browser is installed and system access to browser secure storage is allowed.",importCsvSuccess:"Imported {{imported}} passwords from CSV, updated {{updated}}, skipped {{skipped}}; {{duplicates}} duplicate accounts were handled by your choice.",importCsvFailed:"Failed to import the password CSV. Make sure the file contains standard columns such as url, username, and password.",importSourceSuccess:"Synced {{imported}} passwords from {{source}}, updated {{updated}}, skipped {{skipped}}; {{duplicates}} duplicate accounts were handled by your choice, and {{failed}} could not be decrypted.",importSourceFailed:"Failed to sync {{source}} passwords. Make sure the browser is installed and system access to browser secure storage is allowed.",desktopRestartRequired:"Restart the desktop app to load the new password import capability.",csvTitle:"CSV password file",csvDescription:"Import passwords from a CSV file exported by Chrome, Edge, Firefox, Safari, or a password manager.",sourceTitle:"{{source}} passwords",sourceDescription:"{{profiles}} profiles detected. Sync saved passwords from local {{source}} profiles.",sourceFallbackDescription:"If {{source}} is installed on this device, you can try syncing saved passwords from the default profile.",openManager:"Password manager",managerTitle:"Saved passwords",searchPlaceholder:"Search passwords",detailSearchPlaceholder:"Search accounts for this site",empty:"No saved passwords",emptyDetail:"No matching accounts",unavailable:"Saved password management is only available in the desktop app",settingsTitle:"Password settings",passwordSectionTitle:"Passwords",passwordSectionDescription:"Create, save, and manage passwords to sign in to websites and apps.",groupCredentialCount:"{{count}} accounts",authenticationReason:"Confirm to view saved passwords",authenticationFailed:"Password confirmation failed. Password details were not opened.",authenticationUnavailable:"System password confirmation is unavailable on this device, so password details cannot be opened.",timeoutTitle:"OneWorks password management timed out",timeoutDescription:"To keep your passwords secure, OneWorks password management locks after {{minutes}} minutes of inactivity.",timeoutOk:"Got it",usernameLabel:"Username",passwordLabel:"Password",websiteLabel:"Website",noteLabel:"Note",noNote:"No note added",edit:"Edit",delete:"Delete",save:"Save",editTitle:"Edit account",websiteRequired:"Enter the website URL",passwordEditHint:"Leave blank to keep the current password",updateSuccess:"Account updated",updateFailed:"Failed to update account",deleteConfirmTitle:"Delete this account?",deleteConfirmDescription:"This account cannot be restored from saved passwords after deletion.",deleteSuccess:"Account deleted",copyUsername:"Copy username",copyPassword:"Copy password",reveal:"Show",hide:"Hide",noUsername:"No username",usernameCopied:"Username copied",passwordCopied:"Password copied",copyFailed:"Copy failed",revealFailed:"Failed to show password",managerLoadFailed:"Failed to load saved passwords",settingsOfferToSaveTitle:"Offer to save passwords and verification codes",settingsOfferToSaveDescription:"The saved-data prompt policy is kept for web sign-in flows.",settingsSaveFailed:"Failed to save password settings",settingsAutoSignInTitle:"Auto sign-in",settingsAutoSignInDescription:"The auto-fill policy is kept after a matching account is found.",settingsRequireAuthTitle:"Confirm identity before viewing or copying passwords",settingsRequireAuthDescription:"Entering details, showing, or copying passwords stays protected by short system authentication.",settingsCsvImportTitle:"Import CSV passwords",settingsCsvImportDescription:"Import from a CSV file exported by a browser or password manager. Duplicate accounts ask whether to overwrite or skip.",settingsImportTitle:"Sync browser passwords",settingsImportDescription:"Sync from local browser profiles. Duplicate accounts ask whether to overwrite or skip.",settingsImportSourceTitle:"Sync {{source}} passwords",settingsImportSourceDescription:"{{profiles}} profiles detected. Duplicate accounts ask whether to overwrite or skip.",settingsImportSourceFallbackDescription:"If {{source}} is installed on this device, you can try syncing from the default profile. Restart the desktop app if syncing still fails.",settingsAuthCacheTitle:"Short authentication window",settingsAuthCacheDescription:"Authentication is kept only in current desktop process memory and expires automatically.",settingsAuthCacheValue:"5 minutes"},passwordManagerExtensions:{title:"Password manager extensions",description:"Sync enabled state for password manager extensions such as 1Password and Bitwarden. Secrets stay managed by each extension."},authenticator:{title:"Verification codes / Authenticator",description:"Import one-time verification codes from an Authenticator standard backup. {{count}} verification codes are saved.",importSuccess:"Imported {{imported}} verification codes, updated {{updated}}, skipped {{skipped}}.",importFailed:"Failed to import the verification-code backup. Make sure the file contains standard otpauth:// records."}},Tm={filters:{all:"All",activeProject:"Project: {{project}}",activeSession:"Session: {{session}}",activeSessionStatus:"Status: {{status}}",activeSessions:"Active",allSessionStatuses:"All",allProjects:"All Projects",allSessions:"All Sessions",archivedSessions:"Archived",currentProject:"Current Project",filter:"Filter records",filterActive:"Filtered: {{scope}}",noProjects:"No projects",noSessions:"No sessions",projectLabel:"Project",scopeLabel:"Scope",sessionLabel:"Session",sessionStatusLabel:"Status"},scope:{project:"Project",session:"Session"},history:{title:"History",searchPlaceholder:"Search history",empty:"No history yet",emptyFiltered:"No history matches the current filters",unavailable:"History is only available in the desktop app",loadFailed:"Failed to load history",openFailed:"Failed to open history item",visitCount:"{{count}} visits"},downloads:{title:"Downloads",searchPlaceholder:"Search downloads",empty:"No downloads yet",emptyFiltered:"No downloads match the current filters",unavailable:"Downloads are only available in the desktop app",loadFailed:"Failed to load downloads",openFailed:"Failed to open download",revealFailed:"Failed to reveal download",unknownFile:"Untitled download",open:"Open",reveal:"Show in folder",status:{cancelled:"Cancelled",completed:"Completed",interrupted:"Interrupted",progressing:"Downloading"}}},Em={newChat:"New Chat",conversations:"Conversations",sessions:"Sessions",archivedSessions:"Archived Sessions",more:"Menu",settings:"Settings",theme:"Theme Mode",language:"Language",expandSidebar:"Expand sidebar",collapseSidebar:"Collapse sidebar",collapsePanel:"Collapse panel",back:"Back",forward:"Forward",updateAvailable:"Update available: {{version}}",updateDownloading:"Downloading update: {{progress}}",updateReady:"Restart to update: {{version}}",moduleUpdateAvailable:"Core/adapter updates available: {{count}}"},Rm={source:"History Import",title:"Imported history is ready",description:"Found {{count}} {{adapters}} history sessions for this project. Open one to review it.",manualImport:"Import Project History",importing:"Importing History",emptyTitle:"No importable history found",emptyDescription:"No Codex or Claude Code history sessions were found for the current project.",failed:"Failed to import native history",failedDescription:"Try again later, or check the local Codex / Claude Code history directories.",open:"Open imported session",dismiss:"Later",platforms:{codex:"Codex",claudeCode:"Claude Code"},quickEntry:{title:"Import current project history",description:"Review candidate sessions and file sizes from local Codex and Claude Code history before importing.",manage:"Review Candidates"},manager:{allPlatforms:"All",importTitle:"Import scope",importDescription:"Preview candidate file sizes per platform first, then manually import a platform. Only history for this project or the same Git project is matched.",globalAutoImportTitle:"Automatic Import",globalAutoImportDescription:"Default automatic import setting for all adapters. Per-adapter settings take precedence.",globalSizeLimitTitle:"Automatic Import Size Limit",globalSizeLimitDescription:"Skip history files above this size during automatic import. Leave empty for no limit.",adapterAutoImportTitle:"{{platform}} Automatic Import",adapterAutoImportOverride:"This adapter uses its own switch, which takes precedence over the global setting.",adapterAutoImportInherited:"This adapter inherits the global setting: {{state}}.",adapterSizeLimitTitle:"{{platform}} Size Limit",effectiveSizeLimit:"Effective automatic import limit: {{size}}.",inheritGlobal:"Inherit Global",enabled:"Enabled",disabled:"Disabled",unlimited:"Unlimited",importSelected:"Import Selected Platforms",importAdapterTitle:"Import {{platform}}",importAdapter:"Import {{platform}}",importAll:"Import All",previewTitle:"Importable History",previewDescription:"Shows history sessions that can be imported for this project. Only metadata and file sizes are read.",previewLoading:"Scanning candidate files and sizes",previewPending:"Candidate scan has not finished yet",previewSummary:"Scanned {{scanned}} history files, matched {{files}} candidates, total {{total}}, largest {{largest}}, {{largeFiles}} large files.",refreshPreview:"Refresh",searchPlaceholder:"Search title, folder, or source file",filterTitle:"Filters",filterScope:"Scope",filterAll:"All",filterSessions:"Filter sessions",filterActive:"Filtered: {{scope}}",threadScope:"Type",threadScopeUser:"User sessions",threadScopeSubagent:"Subtasks",projectScope:"Project",projectScopeCurrent:"Current Project",projectScopeGlobal:"Global",createdTime:"Created",updatedTime:"Modified",timeRangeStart:"Start",timeRangeEnd:"End",timeRangeBetween:"{{from}} - {{to}}",timeRangeFrom:"after {{time}}",timeRangeTo:"before {{time}}",timeFilterLabel:"{{field}}: {{range}}",timeSort:"Time Sort",timeSortActivity:"Composite",timeSortFilterLabel:"Sort: {{sort}}",timePresetLastDay:"Last day",timePresetLastWeek:"Last week",timePresetLast30Days:"Last 30 days",timePresetLast90Days:"Last 90 days",archivedFilter:"Filter archived sessions",archivedFilterActive:"Filtered: archived sessions",unarchivedFilterCondition:"Unarchived sessions",archivedFilterCondition:"Archived sessions",emptySearchResults:"No candidates match this search",loadMore:"Load more",copyCodexThreadLink:"Copy Codex thread link",codexThreadLinkCopied:"Codex thread link copied to clipboard",importOne:"Import",alreadyImported:"Imported",emptyCandidates:"No {{platform}} history sessions were found for this project",largeFileSize:"Large {{size}}",autoSkippedSize:"Auto skips {{size}}",autoSkippedSizeTooltip:"Exceeds the automatic import size limit, so auto import skips this file. Manual import is still available. Size: {{size}}",importedCount:"{{count}}",resultTitle:"External Sessions",resultPending:"No import has been run from this page yet. Existing external sessions for this project are listed below.",resultSummary:"Matched {{files}} history files, linked {{sessions}} sessions, and added {{events}} events.",emptySessions:"No imported external sessions for this project",archived:"Archived",togglePlatform:"Select {{platform}}",platformDescriptions:{codex:"Scans ~/.codex/sessions and archived_sessions.","claude-code":"Scans Claude Code sessions under ~/.claude/projects."}}},Am={menuLabel:"Check Updates",title:"Check Updates",check:"Check Updates",checkFailed:"Failed to check module updates",installFailed:"Failed to install module update",installSuccess:"{{name}} {{version}} was written to the runtime cache",groupInstallFailed:"Failed to install group updates",groupInstallSuccess:"{{group}} updated {{count}} modules",channelSaved:"Update channel saved",channelSaveFailed:"Failed to save update channel",update:"Update",updateAll:"Update All",updateGroup:"Update Group",installing:"Updating",allInstalling:"Updating All",groupInstalling:"Updating",allInstallFailed:"Failed to install all module updates",allInstallSuccess:"Updated {{count}} modules",confirmTitle:"Review update changes",confirmBatchTitle:"Review {{count}} module updates",confirmOk:"Update",confirmCancel:"Cancel",reviewTitle:"Update Contents",reviewEmpty:"No updateable modules.",changelogSummaryTitle:"Update Contents",changelogSummaryRange:"{{count}} modules",changelogSummaryIntro:"This update will install **{{count}} modules**. The changes below are grouped by feature updates and fixes. They are written to the runtime cache first and take effect after the matching runtime restarts or a new session starts.",changelogSummaryFeatures:"Features",changelogSummaryFixes:"Fixes",changelogSummaryMarkers:{important:"Important",fix:"Fix",verification:"Verified",other:"Other"},changelogSummaryOther:"Other Updates",changelogSummaryMoreItems:"{{count}} more items. Open the full changelog for details.",changelogSummaryGroups:"Scope",changelogSummaryVersions:"Version changes",changelogSummaryGroupCount:"{{count}} modules",changelogSummaryMultipleVersions:"multiple versions",changelogDetailTitle:"Changelog",changelogSummaryDetailHint:"Available package changelogs have been merged into this summary.",changelogSummaryMissingHint:"No package-level changelog was found for the exact version ranges, so this summary was generated from groups and version ranges.",changelogRange:"{{from}} -> {{to}}",changelogEntryTitle:"{{version}} changelog",changelogMissing:"No changelog was found for this version range.",reviewModulesTitle:"Module Details",reviewModulesIntro:"This update affects **{{count}} modules**. The module groups and version changes are listed below.",reviewModulesDescription:"View affected modules and version changes",reviewChangelogTitle:"Full Changelog",reviewChangelogIntro:"Raw package changelogs included in this update are listed below.",reviewChangelogDescription:"View each package's raw changelog",reviewDetailPagesTitle:"Details",cached:"Cached",upToDate:"Up to date",notChecked:"Not checked yet",summary:"{{total}} modules, {{available}} updateable, {{pendingActivation}} pending restart",groupSummary:"{{total}} modules, {{available}} updateable, {{pendingActivation}} pending activation",groupAvailableCount:"{{count}} updateable",groupPendingActivationCount:"{{count}} pending activation",defaultChannel:"Default Channel",groupChannelLabel:"{{group}} update channel",moduleChannelLabel:"{{name}} update channel",channelDefaultOption:"Follow global ({{channel}})",channelMixedOption:"Mixed",versionUnknown:"Unknown",channelOptions:{alpha:"Alpha",beta:"Beta",rc:"RC",stable:"Stable"},kind:{adapter:"Adapter",client:"Client",plugin:"Plugin",runtime:"Runtime",server:"Server"},groups:{adapter:"Adapters",core:"Core",plugin:"Plugins"},status:{available:"Available",cached:"Cached",error:"Check Failed",pendingActivation:"Pending",upToDate:"Latest"},versions:{current:"Current {{version}}",cached:"Cached {{version}}",latest:"Latest {{version}}",channel:"Channel {{channel}}"},activation:{newSession:"New sessions use the cached version after update.",restart:"Restart the corresponding runtime after update."}},Dm={searchPlaceholder:"Search this entry...",empty:"No matching structure data",filter:{label:"Structure list filter",all:"All",active:"Active",done:"Done"},filterRoutes:{requests:{label:"Request type filter",all:"All requests",stateLabel:"Request status filter",stateAll:"All states",priorityLabel:"Priority filter",priorityAll:"All priorities",priority:{high:"High priority",medium:"Medium priority",low:"Low priority"},channelLabel:"Source filter",channelAll:"All sources",channel:{web:"Web",extension:"Plugin",navigation:"Navigation"},states:{active:"Active",done:"Done"}},resources:{label:"Resource type filter",all:"All resources",stateLabel:"Resource status filter",stateAll:"All states",sourceLabel:"Resource source filter",sourceAll:"All sources",source:{design:"Design assets",server:"Server",docs:"Docs"},freshnessLabel:"Freshness filter",freshnessAll:"All freshness",freshness:{current:"Current",archived:"Archived"},states:{pending:"Pending sync",archived:"Archived"}},operations:{label:"Operation lane filter",all:"All lanes",stateLabel:"Lane status filter",stateAll:"All states",cadenceLabel:"Cadence filter",cadenceAll:"All cadences",cadence:{nightly:"Nightly",daily:"Daily",weekly:"Weekly"},ownerLabel:"Owner filter",ownerAll:"All owners",owner:{system:"System",product:"Product"},states:{running:"Running",archived:"Archived"}}},actions:{archiveOperation:"Archive lane",archiveResource:"Archive resource",bookmarkResource:"Add to resource set",convertToTask:"Convert to task",copyResourceReference:"Copy resource reference",createFollowUp:"Create follow-up",markDone:"Mark done",openResource:"Open resource",pauseOperation:"Pause lane",pinOperation:"Pin lane",runOperation:"Run check",syncResource:"Sync resource",unbookmarkResource:"Remove from resource set",unpinOperation:"Unpin lane",viewRunLog:"View run log"},selection:{selectedTotal:"{{selected}}/{{total}} selected"},itemState:{starred:"Starred"},navigationMenu:{hideEntry:"Hide {{entry}}",showAllEntries:"Show all entries",visibleEntries:"Choose visible entries"},moreMenuContext:{configureActions:"Configure menu actions",hideArchiveAction:"Hide archive action"},debugTools:{title:"Mock debug tools",platform:"App",platformFieldLabel:"Mock system",platformMacos:"macOS",platformWindows:"Windows",platformWeb:"Web",fullscreen:"Fullscreen",fullscreenFieldLabel:"Mock fullscreen",fullscreenOn:"On",fullscreenOff:"Off"},panels:{closeTab:"Close {{title}}",contextMenu:{keepOnlyTab:"Keep only {{tab}}",openAllTabs:"Open all {{panel}} tabs",resetDefaultPage:"Return to {{panel}} default page",resetDefaultTab:"Restore default {{panel}} tab",selectTab:"Switch to {{tab}}",tabMetadata:"{{panel}} / {{tab}}"},create:{label:"Create panel content",summaryTab:"Open structure summary",routeTab:"Open entry context",itemTab:"Open selected item",itemDisabled:"Select a sidebar item first",entryTemplates:"Create by entry",templates:"Template group",customTitle:"Custom rendered entry",customDescription:"{{entry}} injects this menu item and can replace it with any renderer.",requests:{requirement:"New request card",followUp:"New follow-up",experienceTemplate:"Experience template",pluginTemplate:"Plugin audit template"},resources:{importResource:"Import resource",referenceDoc:"New reference document",source:"Create by source",designSource:"Design source",serverSource:"Server source",docsSource:"Docs source"},operations:{scheduledLane:"New scheduled lane",monitorView:"New monitor view",cadence:"Create by cadence",cadenceNightly:"Nightly task",cadenceDaily:"Daily task",cadenceWeekly:"Weekly task"}},side:{open:"Open side region",close:"Close side region",resize:"Drag to resize side region",kicker:"Side slot",title:"Structure context",tabs:{summary:"Structure summary",route:"Entry context",item:"Selected item"},rows:{route:"Entry",metric:"Metric",path:"Path",item:"Selected item",component:"Component"}},bottom:{open:"Open bottom panel",close:"Close bottom panel",resize:"Drag to resize bottom panel",title:"Route bottom panel",defaultItem:"Entry default page",tabs:{summary:"Panel summary",route:"Path context",item:"Current item"},rows:{path:"Current path",item:"Current item",slot:"Render slot"}}},overview:{defaultPage:"Entry default page"},detail:{sections:{structure:"Structure State",behavior:"Component Interfaces",scroll:"Scroll Content"},rows:{routeSlot:{title:"Route slot",description:"{{route}} passes only the path and selected item to the external renderer instead of owning page content."},activeItem:{title:"Selected item",description:"{{item}} is written to the URL from the left list, and the right side swaps independent content from it."},headerState:{title:"Header mode",description:"The current detail component is {{component}}, so title, breadcrumbs, and right actions can be configured separately."},containerPadding:{title:"Container spacing",description:"The page top spacing reuses header tokens to avoid maintaining header and content sizes separately."},componentSwitch:{title:"Content switch",description:"{{item}} renders from test data configuration and stays decoupled from the route container layout."},sidebarLink:{title:"Sidebar entry",description:"{{route}} can override list data, filters, and context menus from entry configuration."},filterState:{title:"Filter state",description:"The current item carries its own filter tokens, while each entry can configure multiple filter groups."},contextActions:{title:"Context actions",description:"Context menus and batch actions come from the entry action list; the generic List only triggers them."},batchSelection:{title:"Batch selection",description:"When multi-select is active, pages can mount their own batch actions without teaching List business meaning."},itemRenderer:{title:"Item renderer",description:"List item icons, actions, meta, and children come from external render configuration."},scrollTrace:{title:"Scroll check {{count}}",description:"Mock content for {{route}} / {{item}} to verify fixed header behavior, body scrolling, and bottom spacing."}}},itemMetrics:{coverage:"Coverage",owner:"Owner",progress:"Progress",queue:"Queue",risk:"Risk",sla:"SLA",version:"Version"},itemMetricValues:{medium:"Medium",reviewed:"Reviewed",running:"Running",synced:"Synced"},routes:{requests:{activeLabel:"Current Request Entry",label:"Request Entry",description:"Collect conversations, reviews, and ad hoc work.",metric:"3 request groups",searchPlaceholder:"Search requests, sources, or priorities..."},resources:{activeLabel:"Current Resource Entry",label:"Resource Entry",description:"Gather docs, design assets, and API references.",metric:"3 resource types",searchPlaceholder:"Search resources, APIs, or docs..."},operations:{activeLabel:"Current Operations Entry",label:"Operations Entry",description:"Track recurring tasks, checks, and regression queues.",metric:"3 flows",searchPlaceholder:"Search flows, queues, or owners..."}},items:{requestCheckout:{title:"Checkout experience alignment",description:"Map the core desktop and web steps.",meta:"Today",tag:"Experience"},requestCheckoutMobile:{title:"Mobile breakpoint check",description:"Verify primary interactions under 860px.",meta:"12:20",tag:"Mobile"},requestCheckoutCopy:{title:"Empty state copy pass",description:"Replace temporary text with reusable copy.",meta:"Yesterday",tag:"Copy"},requestPluginAudit:{title:"Plugin action audit",description:"Cover install, disable, and error paths.",meta:"2h ago",tag:"Plugin"},requestNavigationRefresh:{title:"Navigation structure review",description:"Align sidebar switching with the right container.",meta:"Monday",tag:"Structure"},assetDesignSystem:{title:"Design system references",description:"Component states, spacing, and color references.",meta:"4 items",tag:"Design"},assetTokens:{title:"Theme token table",description:"Align dark and light variables.",meta:"Updating",tag:"Theme"},assetCopyDeck:{title:"Standard copy cards",description:"Reusable titles, hints, and empty states.",meta:"Reviewed",tag:"Copy"},assetApiCatalog:{title:"API catalog",description:"Map page entries to server contracts.",meta:"18 rows",tag:"API"},assetReleaseNotes:{title:"Release note template",description:"Record user-visible changes and checks.",meta:"Archived",tag:"Release"},opsNightlyRun:{title:"Nightly sync task",description:"Collect data status and generate a summary.",meta:"Running",tag:"Schedule"},opsDataSnapshot:{title:"Data snapshot",description:"Pull key state and incremental records.",meta:"Collecting",tag:"Data"},opsDigestPublish:{title:"Digest publish",description:"Generate the sync summary and send it to the entry.",meta:"Pending publish",tag:"Digest"},opsReviewLoop:{title:"Review loop",description:"Track waiting, blocked, and done states.",meta:"5 nodes",tag:"Flow"},opsTriageQueue:{title:"Triage queue",description:"Sort outside feedback into the right entry.",meta:"3 items",tag:"Queue"},opsRegressionWatch:{title:"Regression watch",description:"Keep the latest verification result.",meta:"Passed",tag:"Regression"},opsArchiveSweep:{title:"Archive sweep",description:"Organize done items and retain links.",meta:"Done",tag:"Archive"}}},Mm={eyebrow:"OneWorks",title:"Setting up your project",defaultTip:"Warming up the project context.",tips:{quickFind:"Tip: quick search jumps straight to actions, sessions, and files.",dragFiles:"Drop files into the composer to skip typing long paths.",newWindow:"Right-click a session to open it in a new window for side-by-side work.",slashCommand:"Type / to find common commands and workflows.",sidePanel:"When the sidebar is collapsed, the top bar takes over navigation.",terminal:"The bottom panel keeps terminals and web tabs where you left them.",context:"Referencing exact files means fewer guesses and better context.",glass:"If you can see the skeleton through the glass, the frontend is waking up."}},Om={autoRestartPaused:"Auto restart paused",busyDescription:"Background restart was skipped to avoid interrupting work in progress. Finish or stop these sessions, then retry.",busyStatsLabel:"Active session statistics",busyTitle:"Active sessions: {{count}}",busyTotal:"Total {{count}}",diagnosticsTitle:"Service diagnostics",hideActiveSessions:"Hide sessions",mobileVersionConflictSummary:"The service version differs. Restart the workspace server or retry later.",processId:"Process",requestedVersion:"Requested",restartFailed:"Failed to restart the workspace server",restartWorkspaceServer:"Restart workspace server",retry:"Retry",runtimeCompatibilityVersion:"Compatibility version",runningVersion:"Running",serverUrl:"Server URL",showActiveSessions:"View sessions",unknownStatus:"Unknown",versionConflictDescription:"This page and the running workspace server come from different versions. Client-only or compatible server edits can reuse the workspace server; restart the workspace server when the runtime compatibility versions differ.",versionConflictTitle:"Workspace server version mismatch"},Fm={senderLabel:"Launcher input",senderPlaceholder:"Type a project to open or start...",searchLabel:"Search projects and actions",searchPlaceholder:"Search projects or actions...",commandListLabel:"Launcher actions",commandFailed:"Failed to run action",noResults:"No matching projects or actions",shortcutDisabled:"Not set",desktopActionUnavailable:"Desktop launch actions are not available in this environment",openWorkspaceFailed:"Failed to open project",openingProjectAnimationLabel:"OneWorks opening project animation",openingProjectTitle:"Opening {{name}}",createWorkspaceFailed:"Failed to create project",createWorkspaceNamePlaceholder:"Enter a new project folder name",createWorkspaceNameSearchLabel:"Enter a new project folder name",createWorkspaceNameRequired:"Enter a new project folder name",createWorkspaceParentRequired:"Choose where to create the project",cloneRepositoryPromptTitle:"Clone Remote Repository",cloneRepositoryUrlPlaceholder:"Enter a Git repository URL",cloneRepositorySearchLabel:"Enter a Git repository URL",cloneRepositoryUrlRequired:"Enter a Git repository URL",cloneRepositoryDestinationRequired:"Choose a clone destination folder",cloneRepositoryCloning:"Cloning into {{path}}...",cloneRepositorySuccess:"Repository cloned",cloneRepositoryFailed:"Failed to clone repository",cloneRepositoryDestinationTitle:"Clone into",cloneRepositoryDestinationTooltip:"Current folder: {{path}}",cloneRepositoryDestinationLoading:"Loading folders...",cloneRepositoryDestinationEmpty:"No child folders",cloneRepositoryDestinationFailed:"Failed to load folders",cloneRepositoryFavoriteDestination:"Favorite this folder",cloneRepositoryUnfavoriteDestination:"Unfavorite this folder",directoryBrowserTooltip:"Current folder: {{path}}",directoryBrowserLoading:"Loading folders...",directoryBrowserEmpty:"No child folders",directoryBrowserFailed:"Failed to load folders",directoryBreadcrumbLabel:"Current folder path",directoryNameCopied:"Folder name copied",directoryPathCopied:"Folder path copied",favoriteDirectory:"Favorite this folder",unfavoriteDirectory:"Unfavorite this folder",openWorkspaceSearchPlaceholder:"Search folder paths in this list...",openWorkspaceSearchLabel:"Search folder paths",comingSoon:"This entry is still being connected",files:{title:"Files",globalTitle:"File Search",rootLabel:"Computer",searchLabel:"Search files",searchPlaceholder:"Search files in {{project}}...",globalSearchPlaceholder:"Search files or folders from the computer root...",inputHint:"Type a file name or path to search this project",globalInputHint:"Type a file name or path to search from the computer root",searching:"Searching files...",noResults:"No matching files or folders",searchFailed:"Failed to search files",openFailed:"Failed to open file",folderBadge:"Folder",externalBadge:"External",loadingOpeners:"Loading available apps...",openWithDefault:"Open with default app",openWithDefaultNamed:"Open with default app ({{name}})",openWithNamed:"Open with {{name}}"},resource:{searchPlaceholder:"Search files, sessions, terminals, or websites in {{project}}...",createTitle:"Create",sessionsTitle:"Sessions",websitesTitle:"Websites",terminalsTitle:"Terminals",newSession:"New Session Tab",newSessionHint:"Open a session page in the current chat window",newTerminal:"New Terminal Tab",newTerminalHint:"Create a terminal in the bottom panel",newWebsite:"New Website Tab",newWebsiteHint:"Create a browser page in the bottom panel",tabBadge:"Tab",fileBadge:"In app",sessionBadge:"Session",websiteBadge:"Web",terminalBadge:"Terminal"},start:{title:"Start",newProjectFolder:"New Project",newProjectFolderHint:"Create a local folder and open it as a project",openFolder:"Open Project",openFolderHint:"Choose a local project directory",cloneRepository:"Clone Remote Repository",cloneRepositoryHint:"Create a project from a Git repository",connectRemoteService:"Link Remote Service",connectRemoteServiceHint:"Connect an existing OneWorks service"},projects:{copyName:"Copy name",copyPath:"Copy path",fileExplorer:"File Explorer",fileManager:"file manager",nameCopied:"Project name copied",open:"Open project",openFolder:"Open in file manager",pathCopied:"Project path copied",revealFailed:"Failed to show project in {{manager}}",revealInFileManager:"Show in {{manager}}",remove:"Remove project",removeConfirmDescription:"This only removes the project from the recent list. The folder stays on disk and can be opened again later.",removeConfirmOk:"Remove",removeConfirmTitle:"Remove {{name}} from the launcher?",removeFailed:"Failed to remove project",stopAndRemove:"Stop and remove",stopAndRemoveConfirmDescription:"This stops the local server process for the project and removes it from the recent list. The folder stays on disk.",stopAndRemoveConfirmOk:"Stop and remove",stopAndRemoveConfirmTitle:"Stop and remove {{name}} from the launcher?",stopAndRemoveSuccess:"Project service stopped and removed",stopFailed:"Failed to stop project service",stopService:"Stop service",stopServiceConfirmDescription:"This stops the local server process for the project. Project files are not deleted and the project can be opened again later.",stopServiceConfirmOk:"Stop",stopServiceConfirmTitle:"Stop the server process for {{name}}?",stopServiceSuccess:"Project service stopped",title:"Projects"},menu:{open:"Open OneWorks menu",settings:"Settings",about:"About",checkUpdate:"Check Updates",language:"Language",projectRequired:"Open or focus a project before opening Settings or About",openFailed:"Failed to open this workspace page"},settings:{title:"Launcher Settings",searchLabel:"Search launcher settings",searchPlaceholder:"Search settings...",listLabel:"Launcher settings",sectionsLabel:"Launcher setting sections",empty:"No matching settings",resetSection:"Reset {{section}}",sectionShortcutTooltip:"Press {{shortcut}} to switch to {{section}}",sections:{general:"General",behavior:"Behavior",appearance:"Appearance",icon:"Icon"},items:{theme:{title:"Theme mode",desc:"Switch the launcher and main UI between light, dark, or system mode"},textSize:{title:"Text size",desc:"Adjust text size inside the launcher",default:"Default",large:"Large"},windowMode:{title:"Window mode",desc:"Switch the launcher between default and compact window layouts",default:"Default",compact:"Compact"},favorites:{title:"Show favorites in compact mode",desc:"Keep favorites visible in the compact launcher window"},language:{title:"Interface language",desc:"Quickly switch the current interface language"},shortcut:{title:"Launcher shortcut",desc:"Press a shortcut to summon the launcher"},launchAtLogin:{title:"Launch at login",desc:"Start OneWorks automatically after signing in"},openLastWorkspaceOnStartup:{title:"Open last project at startup",desc:"Open the most recent project on normal app startup; otherwise show the launcher"},autoUpdate:{title:"Automatic updates",desc:"Automatically check for and download desktop updates for the current project"},updateChannel:{title:"Update channel",desc:"Choose Stable, RC, Beta, or Alpha for the current project's desktop updates"},statusPin:{title:"Pin icon",desc:"Show a Pin icon in the system status area for quick launcher access",descMac:"Show a Pin icon in the macOS menu bar for quick launcher access",descWindows:"Show a Pin icon in the Windows system tray for quick launcher access"},hideAfterAction:{title:"Hide after action",desc:"Collapse the launcher after opening a project, file, or session"},currentProject:{title:"Show current project",desc:"Prefer the focused project context when a project window is active"},resourceSearch:{title:"Search project resources",desc:"Search files, sessions, terminals, and websites in the current project"},footerHints:{title:"Footer key hints",desc:"Show available actions for the selected item in the lower right"},appIcon:{title:"App icon",desc:"Choose the app icon theme and background used by the launcher",syncLabel:"Sync desktop icon",syncDesc:"Update the desktop, Dock, or taskbar icon when the icon theme changes"}}},about:{title:"About",searchLabel:"About OneWorks",searchPlaceholder:"About OneWorks",listLabel:"About OneWorks"},footer:{settings:"Settings",help:"Help",more:"More"},footerHints:{label:"Keyboard actions for the selected item",section:"Section",move:"Move",open:"Open",toggle:"Toggle",adjust:"Adjust",edit:"Edit",create:"Create",clone:"Clone",openDirectory:"Open folder",context:"Menu",contextKey:"Right click",fileSearch:"Files",close:"Close",back:"Back"},recent:{title:"Recent Projects",empty:"No recent projects",more:"More..."}},Im={title:"Sign in to OneWorks",subtitle:"Use a configured account to continue into this workspace.",username:"Username",usernamePlaceholder:"Enter username",usernameRequired:"Enter username",password:"Password",passwordPlaceholder:"Enter password",passwordRequired:"Enter password",rememberDevice:"Remember this device",login:"Sign in",loginFailed:"Sign in failed",statusFailed:"Could not load sign-in status",statusFailedHelp:"Make sure the backend service is still running, then retry.",statusTimeout:"Timed out while loading sign-in status. Make sure the backend service is still running, then retry.",retryStatus:"Retry",accountMenu:"Account and connection",changeServer:"Switch backend",logout:"Sign out of this server",logoutFailed:"Sign out failed",generatedPasswordTitle:"Using an auto-generated local password",generatedPasswordDescription:"Find the password in the local password file, or configure fixed accounts in webAuth.accounts.",generatedPasswordHint:"Default password file: {{path}}"},_m={title:"Connect your backend",subtitle:"Start the backend on the computer running OneWorks, then paste the service address shown in the terminal.",desktopTitle:"Switch backend",desktopSubtitle:"The desktop app already started a local service on this device. You can also connect to other OneWorks backends and switch execution environments from the same Electron app.",setupTitle:"Run this on your computer",setupDescription:"Copy the http or https address shown in the terminal. For advanced network setups, see ",docsLink:"the PWA deployment guide",localServiceTitle:"Built-in local service",localServiceBannerDescription:"Electron started this local service automatically on the current device, so no extra sign-in is required.",localServiceAlias:"This device",localServiceProfileDescription:"Local service started automatically by Electron",serverUrl:"Backend service address",serverScheme:"Backend service protocol",serverUrlPlaceholder:"Paste the service address from the terminal",serverUrlRequired:"Enter the backend service address",invalidUrl:"Enter a valid http or https address",connectionFailed:"Could not connect to that backend service. Make sure it is running and allows cross-origin requests.",unsupportedServerVersion:"This backend version is not supported. The PWA version is {{clientVersion}}, and the backend version is {{serverVersion}}.",recentTitle:"Saved backend services",manageProfile:"Manage backend service",serverVersion:"Backend {{version}}",serverVersionUnknown:"unknown version",profileAlias:"Alias",profileAliasPlaceholder:"For example, Home computer",profileDescription:"Description",profileDescriptionPlaceholder:"For example, Tailscale private network or desktop at home",loginState:"Sign-in state",loginSaved:"Saved sign-in",loginMissing:"No saved sign-in",clearLoginState:"Clear sign-in state",clearLoginStateConfirm:"Only clears the sign-in state saved in this browser.",removeProfile:"Remove record",removeProfileConfirm:"Removes this record and its local sign-in state.",connect:"Connect"},Lm={title:"Automation",newRule:"New Rule",newTask:"New Task",creatingRule:"Creating",editRule:"Edit Rule",createMode:"Creation mode",createModeForm:"Form",createModeChat:"Chat",searchRule:"Search tasks",favorite:"Favorite",unfavorite:"Unfavorite",toggleEnabled:"Enable/Disable",noDescription:"No description",runSearch:"Search runs",runFilters:"Filter runs",runOptions:"Run options",statusAll:"All statuses",timeRange:"Time range",timeAll:"All time",time24h:"Last 24 hours",time7d:"Last 7 days",time30d:"Last 30 days",sortOrder:"Sort order",sortDesc:"Newest first",sortAsc:"Oldest first",triggerCount:"{{count}} triggers",basicDesc:"Describe purpose and toggle the rule on or off",sectionBasic:"Basic Info",sectionTriggers:"Triggers",sectionTasks:"Tasks",sectionStartup:"Startup Parameters",startupSummaryDefault:"Use default startup parameters",startupDefault:"Default",startupAdapter:"Adapter",startupDefaultAdapter:"Use default adapter",startupModel:"Model",startupDefaultModel:"Use default model",defaultModelLabel:"Default model",startupNoModels:"No models available",startupEffort:"Reasoning Effort",startupPermissionMode:"Permission Mode",startupWorkspace:"Workspace",startupBranchAction:"Branch Action",startupBranchKind:"Branch Source",startupBranchName:"Branch Name",startupBranchNameRequired:"Enter a branch name",startupBranchNamePlaceholder:"Example: codex/automation-nightly",startupUseManagedWorktree:"Create managed worktree",startupUseCurrentWorkspace:"Use current workspace",startupBranchDefault:"Do not set branch",startupBranchCheckout:"Check out existing branch",startupBranchCreate:"Create new branch",startupBranchKindLocal:"Local branch",startupBranchKindRemote:"Remote branch",startupSummaryAdapter:"Adapter: {{value}}",startupSummaryModel:"Model: {{value}}",startupSummaryEffort:"Effort: {{value}}",startupSummaryPermission:"Permission: {{value}}",startupSummaryCheckoutBranch:"Checkout: {{value}}",startupSummaryCreateBranch:"New branch: {{value}}",startupSummaryBranchKind:"Branch source: {{value}}",effortLow:"Low",effortMedium:"Medium",effortHigh:"High",effortMax:"Max",permissionAcceptEdits:"Accept edits",permissionPlan:"Plan",permissionDontAsk:"Do not ask",permissionBypassPermissions:"Bypass permissions",ruleName:"Rule Name",ruleNameRequired:"Enter a rule name",ruleDescription:"Description",ruleDescriptionPlaceholder:"Enter a description",immediateRun:"Run Immediately",ruleType:"Trigger Type",ruleTypeRequired:"Select a trigger type",typeInterval:"Interval",typeWebhook:"Webhook",typeCron:"Cron",intervalMinutes:"Interval (minutes)",intervalRequired:"Enter an interval",webhookKey:"Webhook Key",webhookKeyHint:"Leave empty to auto-generate",cronExpressionLabel:"Cron Expression",cronExpressionRequired:"Enter a cron expression",cronExpressionHint:"Example: 0 9 * * 1",cronExpression:"Cron: {{expression}}",cronPreset:"Presets",cronPresetHint:"Choose a preset",cronPresetHourly:"Hourly",cronPresetDaily9:"Daily at 09:00",cronPresetWeekday9:"Weekdays at 09:00",cronPresetWeekend10:"Weekend at 10:00",cronInputHint:"Enter cron directly, or use weekly fields below to generate one",weeklyDay:"Weekly Day",weeklyTime:"Time (HH:mm)",weeklyTimeHint:"Example: 09:00",weekdaySun:"Sun",weekdayMon:"Mon",weekdayTue:"Tue",weekdayWed:"Wed",weekdayThu:"Thu",weekdayFri:"Fri",weekdaySat:"Sat",triggerAny:"Trigger when any condition matches",taskAll:"Run all tasks when triggered",addTrigger:"Add Trigger",addTask:"Add Task",remove:"Remove",taskDefaultTitle:"Task {{index}}",taskTitle:"Task Title",taskTitlePlaceholder:"Optional, for distinguishing tasks",collapseTask:"Collapse task content",expandTask:"Expand task content",taskIndex:"Task {{index}}",taskCount:"{{count}} tasks",taskUnknown:"Untitled Task",webhookUrl:"Webhook URL",prompt:"Task Prompt",promptRequired:"Enter the task prompt",trigger:"Trigger",webhookTrigger:"Webhook",intervalEvery:"Every {{minutes}} min",enabled:"Enabled",enabledStatus:"Enabled Status",ruleStatus:"Rule Status",lastRunLabel:"Last Run",lastRun:"Last Run",lastRunAt:"Last run: {{time}}",noRunYet:"No runs yet",emptyRules:"No automation rules",createRuleLink:"Create automation",mobileRules:"Rules",mobileDetails:"Details",collapseRulePanel:"Collapse rule list",expandRulePanel:"Expand rule list",selectRule:"Select an automation rule",ruleId:"Rule ID",createdAt:"Created At",enabledOn:"Enabled",enabledOff:"Disabled",noTriggers:"No triggers",noTasks:"No tasks",runHistory:"Run History",runTime:"Run Time",runStatus:"Status",runSummary:"Summary",session:"Session",relatedSession:"Related Session",openSession:"Open Session",noRuns:"No runs yet",actions:"Actions",run:"Run Now",edit:"Edit",delete:"Delete",copy:"Copy",webhookCopied:"Webhook copied",created:"Rule created",updated:"Rule updated",deleted:"Rule deleted",saveFailed:"Save failed",deleteFailed:"Delete failed",toggleFailed:"Update failed",runStarted:"Task started",runFailed:"Start failed",emptyLandingEyebrow:"AI automation setup",emptyLandingTitle:"Let AI create the automation",emptyLandingDescription:"Choose a common task to fill the sender below, or describe the trigger and the work to run. Sending starts a chat where AI can call tools to create it.",emptyLandingPlaceholder:"Describe the automation you want to create",emptyLandingSendInstruction:`Create an automation from the request below. Prefer calling the available automation tools to create it; if required details are missing, ask for the missing configuration first.
|
|
695
|
+
`),zx=()=>typeof window>"u"||typeof window.matchMedia!="function"||!window.matchMedia("(max-width: 520px)").matches;function qx({details:e,isRestarting:t,message:n,restartActivity:o,restartErrorMessage:r,onRestart:a,onRetry:i}){const{t:s}=un(),l=(o==null?void 0:o.status)==="busy"?o:void 0,c=e==null?n:s("workspaceConnection.versionConflictTitle"),[d,m]=u.useState(zx),p=u.useMemo(()=>({processId:s("workspaceConnection.processId"),requestedVersion:s("workspaceConnection.requestedVersion"),runtimeCompatibilityVersion:s("workspaceConnection.runtimeCompatibilityVersion"),runningVersion:s("workspaceConnection.runningVersion"),serverUrl:s("workspaceConnection.serverUrl")}),[s]),g=u.useMemo(()=>e==null?[]:[{label:p.runtimeCompatibilityVersion,mono:!0,value:Cm(e.existing.runtimeCompatibilityVersion,e.requested.runtimeCompatibilityVersion)},{label:p.runningVersion,mono:!0,value:Pc(e.existing.sourceVersionId??e.existing.implementationId)},{label:p.requestedVersion,mono:!0,value:Pc(e.requested.sourceVersionId??e.requested.implementationId)},{label:p.serverUrl,mono:!0,value:e.existing.serverBaseUrl??"n/a"},{label:p.processId,mono:!0,value:e.existing.pid??"n/a"}],[e,p]),h=u.useMemo(()=>{const f=new Map;for(const y of(l==null?void 0:l.activeSessions)??[]){const b=y.status??"unknown";f.set(b,(f.get(b)??0)+1)}return Array.from(f.entries())},[l==null?void 0:l.activeSessions]),v=u.useMemo(()=>[...(e==null?void 0:e.restartable)===!0?[{kind:"restart",loading:t,onClick:a}]:[],{disabled:t,kind:"retry",onClick:i}],[e==null?void 0:e.restartable,t,a,i]);return u.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const f=window.matchMedia("(max-width: 520px)"),y=()=>m(!f.matches);return y(),f.addEventListener("change",y),()=>f.removeEventListener("change",y)},[]),L.jsx(fm,{actions:v,className:"workspace-connection-gate__state",context:l==null?void 0:L.jsxs("div",{className:"workspace-connection-gate__busy",children:[L.jsxs("div",{className:"workspace-connection-gate__busy-header",children:[L.jsx("div",{className:"workspace-connection-gate__busy-title",children:s("workspaceConnection.busyTitle",{count:l.activeSessionCount})}),L.jsx("div",{className:"workspace-connection-gate__busy-badge",children:s("workspaceConnection.autoRestartPaused")})]}),L.jsx("p",{className:"workspace-connection-gate__busy-description",children:s("workspaceConnection.busyDescription")}),L.jsxs("div",{className:"workspace-connection-gate__busy-stats","aria-label":s("workspaceConnection.busyStatsLabel"),children:[L.jsx("span",{children:s("workspaceConnection.busyTotal",{count:l.activeSessionCount})}),h.map(([f,y])=>L.jsxs("span",{children:[f==="unknown"?s("workspaceConnection.unknownStatus"):s(`common.status.${f}`,{defaultValue:f})," ",y]},f))]}),l.activeSessions.length>0&&L.jsxs(L.Fragment,{children:[L.jsx("button",{className:"workspace-connection-gate__busy-toggle",type:"button","aria-expanded":d,onClick:()=>m(f=>!f),children:s(d?"workspaceConnection.hideActiveSessions":"workspaceConnection.showActiveSessions")}),d&&L.jsx("ul",{className:"workspace-connection-gate__busy-list",children:l.activeSessions.map(f=>L.jsxs("li",{children:[L.jsxs("span",{className:"workspace-connection-gate__busy-session-main",children:[L.jsx("span",{className:"workspace-connection-gate__busy-session-title",children:Ux(f)}),L.jsx("span",{className:"workspace-connection-gate__busy-session-id",children:f.id})]}),L.jsx("span",{className:"workspace-connection-gate__busy-session-status",children:f.status==null?s("workspaceConnection.unknownStatus"):s(`common.status.${f.status}`,{defaultValue:f.status})})]},f.id))})]})]}),description:e==null?void 0:s("workspaceConnection.versionConflictDescription"),details:e==null?void 0:{copyText:Vx(e,p),items:g,title:s("workspaceConnection.diagnosticsTitle")},measure:"wide",mobileDescription:e==null?void 0:s("workspaceConnection.mobileVersionConflictSummary"),secondaryMessage:r,title:c})}const Gx=720,Kx=420,Yx=8e3,Xx=e=>JSON.stringify({existingImplementationId:e.existing.implementationId,existingLaunchConfigHash:e.existing.launchConfigHash,existingServerBaseUrl:e.existing.serverBaseUrl,requestedImplementationId:e.requested.implementationId,requestedLaunchConfigHash:e.requested.launchConfigHash,workspaceFolder:e.workspaceFolder});function Jx({children:e,workspaceId:t}){const{t:n}=un(),{resolvedThemeMode:o}=Ix(),[r,a]=u.useState({status:"loading"}),[i,s]=u.useState(),[l,c]=u.useState(!1),[d,m]=u.useState("visible"),p=u.useContext(Di),g=u.useRef(performance.now()),h=u.useRef(!1),v=u.useRef(null),f=u.useRef(null),y=u.useRef(),b=u.useRef(),S=u.useCallback(()=>{v.current!=null&&(window.clearTimeout(v.current),v.current=null),f.current!=null&&(window.clearTimeout(f.current),f.current=null)},[]),C=u.useCallback(()=>{S(),g.current=performance.now(),h.current=!1,m("visible")},[S]),w=u.useCallback(()=>{if(h.current)return;h.current=!0;const D=performance.now()-g.current,A=Math.max(0,Gx-D);v.current=window.setTimeout(()=>{v.current=null,m("exiting"),f.current=window.setTimeout(()=>{f.current=null,m("hidden")},Kx)},A)},[]),x=u.useCallback(()=>{w(),p==null||p()},[p,w]),k=u.useCallback(async D=>{if(D.restartable!==!0)return;const A=Xx(D);if(y.current===A)return;const _=await Hx(D);if(b.current=_,_.status==="idle")return y.current=A,await Cc(t)},[t]),E=u.useCallback(async()=>{try{return await px(t)}catch(D){const A=Ea(D);if(A!=null)try{const _=await k(A);if(_!=null)return _}catch{}throw D}},[k,t]),T=u.useCallback(async()=>{C(),a({status:"loading"}),s(void 0),b.current=void 0;try{const D=await E();Ra(D),a({status:"ready"})}catch(D){const A=Ea(D),_=b.current;b.current=void 0,a({details:A,message:D instanceof Error&&D.message.trim()!==""?D.message:"Failed to open workspace.",..._==null?{}:{restartActivity:_},status:"error"})}},[E,C]);u.useEffect(()=>{let D=!1;return(async()=>{C(),a({status:"loading"}),s(void 0),b.current=void 0;try{const A=await E();if(D)return;Ra(A),a({status:"ready"})}catch(A){if(D)return;const _=Ea(A),N=b.current;b.current=void 0,a({details:_,status:"error",...N==null?{}:{restartActivity:N},message:A instanceof Error&&A.message.trim()!==""?A.message:"Failed to open workspace."})}})(),()=>{D=!0}},[E,C]);const P=u.useCallback(async()=>{var D;if(!(r.status!=="error"||((D=r.details)==null?void 0:D.restartable)!==!0)){c(!0),s(void 0);try{const A=await Cc(t);Ra(A),a({status:"ready"})}catch(A){s(Hk(A,n("workspaceConnection.restartFailed")))}finally{c(!1)}}},[r,n,t]);if(u.useEffect(()=>()=>S(),[S]),u.useEffect(()=>{if(r.status!=="ready")return;const D=window.setTimeout(x,Yx);return()=>window.clearTimeout(D)},[x,r.status]),r.status==="error")return L.jsx(qx,{details:r.details,isRestarting:l,message:r.message,restartActivity:r.restartActivity,restartErrorMessage:i,onRestart:()=>void P(),onRetry:()=>void T()});const M=r.status==="ready",F=d!=="hidden";return L.jsxs(Di.Provider,{value:M?x:null,children:[M?e:L.jsx("div",{className:"workspace-connection-gate workspace-connection-gate--loading"}),F&&L.jsx(Sx,{appearance:o,phase:d==="exiting"?"exiting":"visible",title:n("desktopStartupOverlay.title")})]})}const Qx=u.lazy(async()=>({default:(await ms(async()=>{const{LauncherApp:e}=await import("./LauncherApp-ByUpDwod.js");return{LauncherApp:e}},__vite__mapDeps([0,1,2,3]))).LauncherApp})),Zx=u.lazy(async()=>({default:(await ms(async()=>{const{StandaloneMobileDebugRoute:e}=await import("./StandaloneMobileDebugRoute--yiQ5EdW.js");return{StandaloneMobileDebugRoute:e}},__vite__mapDeps([4,1,5,2,6,7,8,9,10,11,12,13,14,3,15]))).StandaloneMobileDebugRoute})),Aa=u.lazy(async()=>({default:(await ms(async()=>{const{WorkspaceApp:e}=await import("./WorkspaceApp-l-h_IsMp.js").then(t=>t.W);return{WorkspaceApp:e}},__vite__mapDeps([16,1,2,6,7,8,17,18]))).WorkspaceApp})),eP=e=>!1;function tP(){return L.jsx(Da,{to:"/",replace:!0})}function nP(){const e=Tp(),t=em(),n=Ek(),o=eP(e.search),r=u.useRef(o);return e.pathname==="/__component-lab"?L.jsx(tP,{}):ux(`${e.pathname}${e.search}`)?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Zx,{})}):n!=null?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Jx,{workspaceId:n,children:L.jsx(Aa,{})})}):r.current?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Aa,{})}):e.pathname==="/launcher"?window.oneworksDesktop==null&&!t?L.jsx(Da,{to:"/",replace:!0}):L.jsx(u.Suspense,{fallback:null,children:L.jsx(Qx,{})}):window.oneworksDesktop!=null&&Zu()&&!t?L.jsx(u.Suspense,{fallback:null,children:L.jsx(Aa,{})}):L.jsx(Da,{to:{pathname:"/launcher",search:e.search,hash:e.hash},replace:!0})}const km={newChat:"New Chat",search:"Search title or ID...",sessions:"Sessions",knowledgeBase:"Data Assets",pluginStore:"Plugin Marketplace",scheduledTasks:"Scheduled Tasks",archive:"Archive",archivedSessions:"Archived Sessions",theme:"Theme Mode",themeLight:"Light",themeDark:"Dark",themeSystem:"System",settings:"Settings",navigation:"Navigation",language:"Language",reset:"Reset",automation:"Automation",benchmark:"Benchmark",delete:"Delete",deleteSession:"Delete Session",deleteSessionConfirm:"Are you sure you want to delete this session? This action cannot be undone.",restore:"Restore",restoreSuccess:"Restored successfully",restoreFailed:"Failed to restore",batchRestore:"Batch Restore",batchRestoreSuccess:"Batch restored successfully",batchRestoreFailed:"Failed to restore some sessions",cancel:"Cancel",continue:"Continue",confirm:"Confirm",clear:"Clear",select:"Select",confirmAction:"Confirm {{action}}",startNewChat:"No active sessions found. Start a new chat!",back:"Back",backToHome:"Back to Home",noData:"No data",noSessions:"No matching sessions found",noArchivedSessions:"No archived sessions",sessionNotFound:"Session not found",roomNotFound:"Agent room not found",expand:"Expand sidebar",dragResize:"Drag to resize",selectOrCreateSession:"Please select or create a session to start chatting",batchMode:"Batch Mode",cancelBatch:"Cancel Batch Mode",batchArchive:"Batch Archive",archiveConfirm:"Are you sure you want to archive the selected {{count}} chats?",alreadyInNewChat:"You are already in a new chat",creatingChat:"Creating",batchDelete:"Batch Delete",batchDeleteSuccess:"Batch deleted successfully",batchDeleteFailed:"Failed to delete some sessions",selectedCount:"{{count}} sessions selected",selectAll:"Select all",deselectAll:"Deselect all",collapse:"Collapse sidebar",close:"Close",enterFullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen",expandPanel:"Expand panel",collapsePanel:"Collapse panel",sort:"Sort order",tags:"Tags",allTags:"All tags",allAdapters:"All adapters",searchActions:"Search and filters",expandItem:"Expand item",collapseItem:"Collapse item",expandChildren:"Expand children",collapseChildren:"Collapse children",expandGroup:"Expand group",collapseGroup:"Collapse group",childSummary:"{{count}} child sessions",childStatusItem:"{{count}} {{status}}",deleteConfirm:"Are you sure you want to delete the selected {{count}} chats?",deleteSuccess:"Deleted successfully",deleteFailed:"Failed to delete",operationFailed:"Operation failed",openInNewWindow:"Open in New Window",notSupportedYet:"Not supported yet",notifications:{queueLabel:"Notification queue",close:"Close message",mutePlugin:"Mute messages from {{plugin}}"},copyFailed:"Copy failed",star:"Star",unstar:"Unstar",rename:"Rename",renameSession:"Rename session",addTag:"Tag",copySessionLink:"Copy session link",copySessionId:"Copy session ID",copyResumeCommand:"Copy resume command",copyWorkspacePath:"Copy workspace path",copySessionMarkdown:"Copy session as Markdown",forkCurrentWorkspace:"Fork to current workspace",deriveNewWorktree:"Derive to new worktree",createScheduledTask:"Create scheduled task",moreActions:"More actions",createdAt:"Created at",sessionLinkCopied:"Session link copied to clipboard",resumeCommandCopied:"Resume command copied to clipboard",sessionIdCopied:"Session ID copied to clipboard",workspacePathCopied:"Workspace path copied to clipboard",sessionMarkdownCopied:"Session Markdown copied to clipboard",doubleClickToCopy:"Double click to copy Session ID",status:{running:"Running",completed:"Done",failed:"Failed",terminated:"Stopped",waiting_input:"Waiting"}},xm={actions:{changeServer:"Switch",connect:"Connect",home:"Home",reload:"Reload",restart:"Restart",retry:"Retry"},appCrashDescription:"The interface hit a rendering error. The current page state may be incomplete; reloading usually restores it.",appCrashMobileDescription:"The interface hit an error. Reload the page to continue.",appCrashTitle:"Page error",configLoadFailedDescription:"Configuration data is temporarily unavailable. Reload configuration or return home and continue other work.",connectionIssueTitle:"Connection failed",copyDiagnostics:"Copy",copyDiagnosticsFailed:"Failed to copy diagnostics",copyDiagnosticsSuccess:"Diagnostics copied",details:"Details",diagnostics:"Diagnostics",collapseDiagnostics:"Collapse diagnostics",expandDiagnostics:"Expand diagnostics",roomNotFoundDescription:"This agent room was not found. It may have been deleted, archived, or not synced by the current service yet.",roomId:"Room ID",routeNotFoundDescription:"No page matches the current address. Return home or check whether the link is complete.",routeNotFoundMobileDescription:"No page matches this address.",routeNotFoundTitle:"Page not found",sessionNotFoundDescription:"This session was not found. It may have been deleted, archived, or not synced by the current service yet.",sessionId:"Session ID"},Pm={open:"Sync Data",title:"Sync Data",settingsTitle:"Browser Data",settingsDescription:"Sync data used by web sign-in from browsers or backups.",summaryTitle:"Start with data that can be migrated safely",summaryDescription:"This version syncs saved passwords from CSV files or detected Chromium-based browsers and imports verification codes from Authenticator standard backups. Password manager extensions will be connected as a later sync item.",securityTitle:"Security",securityDescription:"OneWorks does not silently read third-party password manager vaults, browser extension data, or 2FA secrets. Syncing passwords may ask for system permission to access the selected browser secure storage. Imported data is encrypted by desktop secure storage and kept on this device.",actions:{comingSoon:"Coming Soon",chooseFile:"Choose file",importBackup:"Import Backup",manage:"View",sync:"Sync"},status:{available:"Available",planned:"Planned"},savedPasswords:{title:"Saved passwords",description:"Sync saved passwords from detected local browser profiles into the OneWorks encrypted vault. {{count}} passwords are saved.",importSuccess:"Synced {{imported}} passwords, updated {{updated}}, skipped {{skipped}}; {{duplicates}} duplicate accounts were handled by your choice, and {{failed}} could not be decrypted.",importFailed:"Failed to sync browser passwords. Make sure the browser is installed and system access to browser secure storage is allowed.",importCsvSuccess:"Imported {{imported}} passwords from CSV, updated {{updated}}, skipped {{skipped}}; {{duplicates}} duplicate accounts were handled by your choice.",importCsvFailed:"Failed to import the password CSV. Make sure the file contains standard columns such as url, username, and password.",importSourceSuccess:"Synced {{imported}} passwords from {{source}}, updated {{updated}}, skipped {{skipped}}; {{duplicates}} duplicate accounts were handled by your choice, and {{failed}} could not be decrypted.",importSourceFailed:"Failed to sync {{source}} passwords. Make sure the browser is installed and system access to browser secure storage is allowed.",desktopRestartRequired:"Restart the desktop app to load the new password import capability.",csvTitle:"CSV password file",csvDescription:"Import passwords from a CSV file exported by Chrome, Edge, Firefox, Safari, or a password manager.",sourceTitle:"{{source}} passwords",sourceDescription:"{{profiles}} profiles detected. Sync saved passwords from local {{source}} profiles.",sourceFallbackDescription:"If {{source}} is installed on this device, you can try syncing saved passwords from the default profile.",openManager:"Password manager",managerTitle:"Saved passwords",searchPlaceholder:"Search passwords",detailSearchPlaceholder:"Search accounts for this site",empty:"No saved passwords",emptyDetail:"No matching accounts",unavailable:"Saved password management is only available in the desktop app",settingsTitle:"Password settings",passwordSectionTitle:"Passwords",passwordSectionDescription:"Create, save, and manage passwords to sign in to websites and apps.",groupCredentialCount:"{{count}} accounts",authenticationReason:"Confirm to view saved passwords",authenticationFailed:"Password confirmation failed. Password details were not opened.",authenticationUnavailable:"System password confirmation is unavailable on this device, so password details cannot be opened.",timeoutTitle:"OneWorks password management timed out",timeoutDescription:"To keep your passwords secure, OneWorks password management locks after {{minutes}} minutes of inactivity.",timeoutOk:"Got it",usernameLabel:"Username",passwordLabel:"Password",websiteLabel:"Website",noteLabel:"Note",noNote:"No note added",edit:"Edit",delete:"Delete",save:"Save",editTitle:"Edit account",websiteRequired:"Enter the website URL",passwordEditHint:"Leave blank to keep the current password",updateSuccess:"Account updated",updateFailed:"Failed to update account",deleteConfirmTitle:"Delete this account?",deleteConfirmDescription:"This account cannot be restored from saved passwords after deletion.",deleteSuccess:"Account deleted",copyUsername:"Copy username",copyPassword:"Copy password",reveal:"Show",hide:"Hide",noUsername:"No username",usernameCopied:"Username copied",passwordCopied:"Password copied",copyFailed:"Copy failed",revealFailed:"Failed to show password",managerLoadFailed:"Failed to load saved passwords",settingsOfferToSaveTitle:"Offer to save passwords and verification codes",settingsOfferToSaveDescription:"The saved-data prompt policy is kept for web sign-in flows.",settingsSaveFailed:"Failed to save password settings",settingsAutoSignInTitle:"Auto sign-in",settingsAutoSignInDescription:"The auto-fill policy is kept after a matching account is found.",settingsRequireAuthTitle:"Confirm identity before viewing or copying passwords",settingsRequireAuthDescription:"Entering details, showing, or copying passwords stays protected by short system authentication.",settingsCsvImportTitle:"Import CSV passwords",settingsCsvImportDescription:"Import from a CSV file exported by a browser or password manager. Duplicate accounts ask whether to overwrite or skip.",settingsImportTitle:"Sync browser passwords",settingsImportDescription:"Sync from local browser profiles. Duplicate accounts ask whether to overwrite or skip.",settingsImportSourceTitle:"Sync {{source}} passwords",settingsImportSourceDescription:"{{profiles}} profiles detected. Duplicate accounts ask whether to overwrite or skip.",settingsImportSourceFallbackDescription:"If {{source}} is installed on this device, you can try syncing from the default profile. Restart the desktop app if syncing still fails.",settingsAuthCacheTitle:"Short authentication window",settingsAuthCacheDescription:"Authentication is kept only in current desktop process memory and expires automatically.",settingsAuthCacheValue:"5 minutes"},passwordManagerExtensions:{title:"Password manager extensions",description:"Sync enabled state for password manager extensions such as 1Password and Bitwarden. Secrets stay managed by each extension."},authenticator:{title:"Verification codes / Authenticator",description:"Import one-time verification codes from an Authenticator standard backup. {{count}} verification codes are saved.",importSuccess:"Imported {{imported}} verification codes, updated {{updated}}, skipped {{skipped}}.",importFailed:"Failed to import the verification-code backup. Make sure the file contains standard otpauth:// records."}},Tm={filters:{all:"All",activeProject:"Project: {{project}}",activeSession:"Session: {{session}}",activeSessionStatus:"Status: {{status}}",activeSessions:"Active",allSessionStatuses:"All",allProjects:"All Projects",allSessions:"All Sessions",archivedSessions:"Archived",currentProject:"Current Project",filter:"Filter records",filterActive:"Filtered: {{scope}}",noProjects:"No projects",noSessions:"No sessions",projectLabel:"Project",scopeLabel:"Scope",sessionLabel:"Session",sessionStatusLabel:"Status"},scope:{project:"Project",session:"Session"},history:{title:"History",searchPlaceholder:"Search history",empty:"No history yet",emptyFiltered:"No history matches the current filters",unavailable:"History is only available in the desktop app",loadFailed:"Failed to load history",openFailed:"Failed to open history item",visitCount:"{{count}} visits"},downloads:{title:"Downloads",searchPlaceholder:"Search downloads",empty:"No downloads yet",emptyFiltered:"No downloads match the current filters",unavailable:"Downloads are only available in the desktop app",loadFailed:"Failed to load downloads",openFailed:"Failed to open download",revealFailed:"Failed to reveal download",unknownFile:"Untitled download",open:"Open",reveal:"Show in folder",status:{cancelled:"Cancelled",completed:"Completed",interrupted:"Interrupted",progressing:"Downloading"}}},Em={newChat:"New Chat",conversations:"Conversations",sessions:"Sessions",archivedSessions:"Archived Sessions",more:"Menu",settings:"Settings",theme:"Theme Mode",language:"Language",expandSidebar:"Expand sidebar",collapseSidebar:"Collapse sidebar",collapsePanel:"Collapse panel",back:"Back",forward:"Forward",updateAvailable:"Update available: {{version}}",updateDownloading:"Downloading update: {{progress}}",updateReady:"Restart to update: {{version}}",moduleUpdateAvailable:"Core/adapter updates available: {{count}}"},Rm={source:"History Import",title:"Imported history is ready",description:"Found {{count}} {{adapters}} history sessions for this project. Open one to review it.",manualImport:"Import Project History",importing:"Importing History",emptyTitle:"No importable history found",emptyDescription:"No Codex or Claude Code history sessions were found for the current project.",failed:"Failed to import native history",failedDescription:"Try again later, or check the local Codex / Claude Code history directories.",open:"Open imported session",dismiss:"Later",platforms:{codex:"Codex",claudeCode:"Claude Code"},quickEntry:{title:"Import current project history",description:"Review candidate sessions and file sizes from local Codex and Claude Code history before importing.",manage:"Review Candidates"},manager:{allPlatforms:"All",importTitle:"Import scope",importDescription:"Preview candidate file sizes per platform first, then manually import a platform. Only history for this project or the same Git project is matched.",globalAutoImportTitle:"Automatic Import",globalAutoImportDescription:"Default automatic import setting for all adapters. Per-adapter settings take precedence.",globalSizeLimitTitle:"Automatic Import Size Limit",globalSizeLimitDescription:"Skip history files above this size during automatic import. Leave empty for no limit.",adapterAutoImportTitle:"{{platform}} Automatic Import",adapterAutoImportOverride:"This adapter uses its own switch, which takes precedence over the global setting.",adapterAutoImportInherited:"This adapter inherits the global setting: {{state}}.",adapterSizeLimitTitle:"{{platform}} Size Limit",effectiveSizeLimit:"Effective automatic import limit: {{size}}.",inheritGlobal:"Inherit Global",enabled:"Enabled",disabled:"Disabled",unlimited:"Unlimited",importSelected:"Import Selected Platforms",importAdapterTitle:"Import {{platform}}",importAdapter:"Import {{platform}}",importAll:"Import All",previewTitle:"Importable History",previewDescription:"Shows history sessions that can be imported for this project. Only metadata and file sizes are read.",previewLoading:"Scanning candidate files and sizes",previewPending:"Candidate scan has not finished yet",previewSummary:"Scanned {{scanned}} history files, matched {{files}} candidates, total {{total}}, largest {{largest}}, {{largeFiles}} large files.",refreshPreview:"Refresh",searchPlaceholder:"Search title, folder, or source file",filterTitle:"Filters",filterScope:"Scope",filterAll:"All",filterSessions:"Filter sessions",filterActive:"Filtered: {{scope}}",threadScope:"Type",threadScopeUser:"User sessions",threadScopeSubagent:"Subtasks",projectScope:"Project",projectScopeCurrent:"Current Project",projectScopeGlobal:"Global",createdTime:"Created",updatedTime:"Modified",timeRangeStart:"Start",timeRangeEnd:"End",timeRangeBetween:"{{from}} - {{to}}",timeRangeFrom:"after {{time}}",timeRangeTo:"before {{time}}",timeFilterLabel:"{{field}}: {{range}}",timeSort:"Time Sort",timeSortActivity:"Composite",timeSortFilterLabel:"Sort: {{sort}}",timePresetLastDay:"Last day",timePresetLastWeek:"Last week",timePresetLast30Days:"Last 30 days",timePresetLast90Days:"Last 90 days",archivedFilter:"Filter archived sessions",archivedFilterActive:"Filtered: archived sessions",unarchivedFilterCondition:"Unarchived sessions",archivedFilterCondition:"Archived sessions",emptySearchResults:"No candidates match this search",loadMore:"Load more",copyCodexThreadLink:"Copy Codex thread link",codexThreadLinkCopied:"Codex thread link copied to clipboard",importOne:"Import",alreadyImported:"Imported",emptyCandidates:"No {{platform}} history sessions were found for this project",largeFileSize:"Large {{size}}",autoSkippedSize:"Auto skips {{size}}",autoSkippedSizeTooltip:"Exceeds the automatic import size limit, so auto import skips this file. Manual import is still available. Size: {{size}}",importedCount:"{{count}}",resultTitle:"External Sessions",resultPending:"No import has been run from this page yet. Existing external sessions for this project are listed below.",resultSummary:"Matched {{files}} history files, linked {{sessions}} sessions, and added {{events}} events.",emptySessions:"No imported external sessions for this project",archived:"Archived",togglePlatform:"Select {{platform}}",platformDescriptions:{codex:"Scans ~/.codex/sessions and archived_sessions.","claude-code":"Scans Claude Code sessions under ~/.claude/projects."}}},Am={menuLabel:"Check Updates",title:"Check Updates",check:"Check Updates",checkFailed:"Failed to check module updates",installFailed:"Failed to install module update",installSuccess:"{{name}} {{version}} was written to the runtime cache",groupInstallFailed:"Failed to install group updates",groupInstallSuccess:"{{group}} updated {{count}} modules",channelSaved:"Update channel saved",channelSaveFailed:"Failed to save update channel",update:"Update",updateAll:"Update All",updateGroup:"Update Group",installing:"Updating",allInstalling:"Updating All",groupInstalling:"Updating",allInstallFailed:"Failed to install all module updates",allInstallSuccess:"Updated {{count}} modules",confirmTitle:"Review update changes",confirmBatchTitle:"Review {{count}} module updates",confirmOk:"Update",confirmCancel:"Cancel",reviewTitle:"Update Contents",reviewEmpty:"No updateable modules.",changelogSummaryTitle:"Update Contents",changelogSummaryRange:"{{count}} modules",changelogSummaryIntro:"This update will install **{{count}} modules**. The changes below are grouped by feature updates and fixes. They are written to the runtime cache first and take effect after the matching runtime restarts or a new session starts.",changelogSummaryFeatures:"Features",changelogSummaryFixes:"Fixes",changelogSummaryMarkers:{important:"Important",fix:"Fix",verification:"Verified",other:"Other"},changelogSummaryOther:"Other Updates",changelogSummaryMoreItems:"{{count}} more items. Open the full changelog for details.",changelogSummaryGroups:"Scope",changelogSummaryVersions:"Version changes",changelogSummaryGroupCount:"{{count}} modules",changelogSummaryMultipleVersions:"multiple versions",changelogDetailTitle:"Changelog",changelogSummaryDetailHint:"Available package changelogs have been merged into this summary.",changelogSummaryMissingHint:"No package-level changelog was found for the exact version ranges, so this summary was generated from groups and version ranges.",changelogRange:"{{from}} -> {{to}}",changelogEntryTitle:"{{version}} changelog",changelogMissing:"No changelog was found for this version range.",reviewModulesTitle:"Module Details",reviewModulesIntro:"This update affects **{{count}} modules**. The module groups and version changes are listed below.",reviewModulesDescription:"View affected modules and version changes",reviewChangelogTitle:"Full Changelog",reviewChangelogIntro:"Raw package changelogs included in this update are listed below.",reviewChangelogDescription:"View each package's raw changelog",reviewDetailPagesTitle:"Details",cached:"Cached",upToDate:"Up to date",notChecked:"Not checked yet",summary:"{{total}} modules, {{available}} updateable, {{pendingActivation}} pending restart",groupSummary:"{{total}} modules, {{available}} updateable, {{pendingActivation}} pending activation",groupAvailableCount:"{{count}} updateable",groupPendingActivationCount:"{{count}} pending activation",defaultChannel:"Default Channel",groupChannelLabel:"{{group}} update channel",moduleChannelLabel:"{{name}} update channel",channelDefaultOption:"Follow global ({{channel}})",channelMixedOption:"Mixed",versionUnknown:"Unknown",channelOptions:{alpha:"Alpha",beta:"Beta",rc:"RC",stable:"Stable"},kind:{adapter:"Adapter",client:"Client",plugin:"Plugin",runtime:"Runtime",server:"Server"},groups:{adapter:"Adapters",core:"Core",plugin:"Plugins"},status:{available:"Available",cached:"Cached",error:"Check Failed",pendingActivation:"Pending",upToDate:"Latest"},versions:{current:"Current {{version}}",cached:"Cached {{version}}",latest:"Latest {{version}}",channel:"Channel {{channel}}"},activation:{newSession:"New sessions use the cached version after update.",restart:"Restart the corresponding runtime after update."}},Dm={searchPlaceholder:"Search this entry...",empty:"No matching structure data",filter:{label:"Structure list filter",all:"All",active:"Active",done:"Done"},filterRoutes:{requests:{label:"Request type filter",all:"All requests",stateLabel:"Request status filter",stateAll:"All states",priorityLabel:"Priority filter",priorityAll:"All priorities",priority:{high:"High priority",medium:"Medium priority",low:"Low priority"},channelLabel:"Source filter",channelAll:"All sources",channel:{web:"Web",extension:"Plugin",navigation:"Navigation"},states:{active:"Active",done:"Done"}},resources:{label:"Resource type filter",all:"All resources",stateLabel:"Resource status filter",stateAll:"All states",sourceLabel:"Resource source filter",sourceAll:"All sources",source:{design:"Design assets",server:"Server",docs:"Docs"},freshnessLabel:"Freshness filter",freshnessAll:"All freshness",freshness:{current:"Current",archived:"Archived"},states:{pending:"Pending sync",archived:"Archived"}},operations:{label:"Operation lane filter",all:"All lanes",stateLabel:"Lane status filter",stateAll:"All states",cadenceLabel:"Cadence filter",cadenceAll:"All cadences",cadence:{nightly:"Nightly",daily:"Daily",weekly:"Weekly"},ownerLabel:"Owner filter",ownerAll:"All owners",owner:{system:"System",product:"Product"},states:{running:"Running",archived:"Archived"}}},actions:{archiveOperation:"Archive lane",archiveResource:"Archive resource",bookmarkResource:"Add to resource set",convertToTask:"Convert to task",copyResourceReference:"Copy resource reference",createFollowUp:"Create follow-up",markDone:"Mark done",openResource:"Open resource",pauseOperation:"Pause lane",pinOperation:"Pin lane",runOperation:"Run check",syncResource:"Sync resource",unbookmarkResource:"Remove from resource set",unpinOperation:"Unpin lane",viewRunLog:"View run log"},selection:{selectedTotal:"{{selected}}/{{total}} selected"},itemState:{starred:"Starred"},navigationMenu:{hideEntry:"Hide {{entry}}",showAllEntries:"Show all entries",visibleEntries:"Choose visible entries"},moreMenuContext:{configureActions:"Configure menu actions",hideArchiveAction:"Hide archive action"},debugTools:{title:"Mock debug tools",platform:"App",platformFieldLabel:"Mock system",platformMacos:"macOS",platformWindows:"Windows",platformWeb:"Web",fullscreen:"Fullscreen",fullscreenFieldLabel:"Mock fullscreen",fullscreenOn:"On",fullscreenOff:"Off"},panels:{closeTab:"Close {{title}}",contextMenu:{keepOnlyTab:"Keep only {{tab}}",openAllTabs:"Open all {{panel}} tabs",resetDefaultPage:"Return to {{panel}} default page",resetDefaultTab:"Restore default {{panel}} tab",selectTab:"Switch to {{tab}}",tabMetadata:"{{panel}} / {{tab}}"},create:{label:"Create panel content",summaryTab:"Open structure summary",routeTab:"Open entry context",itemTab:"Open selected item",itemDisabled:"Select a sidebar item first",entryTemplates:"Create by entry",templates:"Template group",customTitle:"Custom rendered entry",customDescription:"{{entry}} injects this menu item and can replace it with any renderer.",requests:{requirement:"New request card",followUp:"New follow-up",experienceTemplate:"Experience template",pluginTemplate:"Plugin audit template"},resources:{importResource:"Import resource",referenceDoc:"New reference document",source:"Create by source",designSource:"Design source",serverSource:"Server source",docsSource:"Docs source"},operations:{scheduledLane:"New scheduled lane",monitorView:"New monitor view",cadence:"Create by cadence",cadenceNightly:"Nightly task",cadenceDaily:"Daily task",cadenceWeekly:"Weekly task"}},side:{open:"Open side region",close:"Close side region",resize:"Drag to resize side region",kicker:"Side slot",title:"Structure context",tabs:{summary:"Structure summary",route:"Entry context",item:"Selected item"},rows:{route:"Entry",metric:"Metric",path:"Path",item:"Selected item",component:"Component"}},bottom:{open:"Open bottom panel",close:"Close bottom panel",resize:"Drag to resize bottom panel",title:"Route bottom panel",defaultItem:"Entry default page",tabs:{summary:"Panel summary",route:"Path context",item:"Current item"},rows:{path:"Current path",item:"Current item",slot:"Render slot"}}},overview:{defaultPage:"Entry default page"},detail:{sections:{structure:"Structure State",behavior:"Component Interfaces",scroll:"Scroll Content"},rows:{routeSlot:{title:"Route slot",description:"{{route}} passes only the path and selected item to the external renderer instead of owning page content."},activeItem:{title:"Selected item",description:"{{item}} is written to the URL from the left list, and the right side swaps independent content from it."},headerState:{title:"Header mode",description:"The current detail component is {{component}}, so title, breadcrumbs, and right actions can be configured separately."},containerPadding:{title:"Container spacing",description:"The page top spacing reuses header tokens to avoid maintaining header and content sizes separately."},componentSwitch:{title:"Content switch",description:"{{item}} renders from test data configuration and stays decoupled from the route container layout."},sidebarLink:{title:"Sidebar entry",description:"{{route}} can override list data, filters, and context menus from entry configuration."},filterState:{title:"Filter state",description:"The current item carries its own filter tokens, while each entry can configure multiple filter groups."},contextActions:{title:"Context actions",description:"Context menus and batch actions come from the entry action list; the generic List only triggers them."},batchSelection:{title:"Batch selection",description:"When multi-select is active, pages can mount their own batch actions without teaching List business meaning."},itemRenderer:{title:"Item renderer",description:"List item icons, actions, meta, and children come from external render configuration."},scrollTrace:{title:"Scroll check {{count}}",description:"Mock content for {{route}} / {{item}} to verify fixed header behavior, body scrolling, and bottom spacing."}}},itemMetrics:{coverage:"Coverage",owner:"Owner",progress:"Progress",queue:"Queue",risk:"Risk",sla:"SLA",version:"Version"},itemMetricValues:{medium:"Medium",reviewed:"Reviewed",running:"Running",synced:"Synced"},routes:{requests:{activeLabel:"Current Request Entry",label:"Request Entry",description:"Collect conversations, reviews, and ad hoc work.",metric:"3 request groups",searchPlaceholder:"Search requests, sources, or priorities..."},resources:{activeLabel:"Current Resource Entry",label:"Resource Entry",description:"Gather docs, design assets, and API references.",metric:"3 resource types",searchPlaceholder:"Search resources, APIs, or docs..."},operations:{activeLabel:"Current Operations Entry",label:"Operations Entry",description:"Track recurring tasks, checks, and regression queues.",metric:"3 flows",searchPlaceholder:"Search flows, queues, or owners..."}},items:{requestCheckout:{title:"Checkout experience alignment",description:"Map the core desktop and web steps.",meta:"Today",tag:"Experience"},requestCheckoutMobile:{title:"Mobile breakpoint check",description:"Verify primary interactions under 860px.",meta:"12:20",tag:"Mobile"},requestCheckoutCopy:{title:"Empty state copy pass",description:"Replace temporary text with reusable copy.",meta:"Yesterday",tag:"Copy"},requestPluginAudit:{title:"Plugin action audit",description:"Cover install, disable, and error paths.",meta:"2h ago",tag:"Plugin"},requestNavigationRefresh:{title:"Navigation structure review",description:"Align sidebar switching with the right container.",meta:"Monday",tag:"Structure"},assetDesignSystem:{title:"Design system references",description:"Component states, spacing, and color references.",meta:"4 items",tag:"Design"},assetTokens:{title:"Theme token table",description:"Align dark and light variables.",meta:"Updating",tag:"Theme"},assetCopyDeck:{title:"Standard copy cards",description:"Reusable titles, hints, and empty states.",meta:"Reviewed",tag:"Copy"},assetApiCatalog:{title:"API catalog",description:"Map page entries to server contracts.",meta:"18 rows",tag:"API"},assetReleaseNotes:{title:"Release note template",description:"Record user-visible changes and checks.",meta:"Archived",tag:"Release"},opsNightlyRun:{title:"Nightly sync task",description:"Collect data status and generate a summary.",meta:"Running",tag:"Schedule"},opsDataSnapshot:{title:"Data snapshot",description:"Pull key state and incremental records.",meta:"Collecting",tag:"Data"},opsDigestPublish:{title:"Digest publish",description:"Generate the sync summary and send it to the entry.",meta:"Pending publish",tag:"Digest"},opsReviewLoop:{title:"Review loop",description:"Track waiting, blocked, and done states.",meta:"5 nodes",tag:"Flow"},opsTriageQueue:{title:"Triage queue",description:"Sort outside feedback into the right entry.",meta:"3 items",tag:"Queue"},opsRegressionWatch:{title:"Regression watch",description:"Keep the latest verification result.",meta:"Passed",tag:"Regression"},opsArchiveSweep:{title:"Archive sweep",description:"Organize done items and retain links.",meta:"Done",tag:"Archive"}}},Mm={eyebrow:"OneWorks",title:"Setting up your project",defaultTip:"Warming up the project context.",tips:{quickFind:"Tip: quick search jumps straight to actions, sessions, and files.",dragFiles:"Drop files into the composer to skip typing long paths.",newWindow:"Right-click a session to open it in a new window for side-by-side work.",slashCommand:"Type / to find common commands and workflows.",sidePanel:"When the sidebar is collapsed, the top bar takes over navigation.",terminal:"The bottom panel keeps terminals and web tabs where you left them.",context:"Referencing exact files means fewer guesses and better context.",glass:"If you can see the skeleton through the glass, the frontend is waking up."}},Om={autoRestartPaused:"Auto restart paused",busyDescription:"Background restart was skipped to avoid interrupting work in progress. Finish or stop these sessions, then retry.",busyStatsLabel:"Active session statistics",busyTitle:"Active sessions: {{count}}",busyTotal:"Total {{count}}",diagnosticsTitle:"Service diagnostics",hideActiveSessions:"Hide sessions",mobileVersionConflictSummary:"The service version differs. Restart the workspace server or retry later.",processId:"Process",requestedVersion:"Requested",restartFailed:"Failed to restart the workspace server",restartWorkspaceServer:"Restart workspace server",retry:"Retry",runtimeCompatibilityVersion:"Compatibility version",runningVersion:"Running",serverUrl:"Server URL",showActiveSessions:"View sessions",unknownStatus:"Unknown",versionConflictDescription:"This page and the running workspace server come from different versions. Client-only or compatible server edits can reuse the workspace server; restart the workspace server when the runtime compatibility versions differ.",versionConflictTitle:"Workspace server version mismatch"},Fm={senderLabel:"Launcher input",senderPlaceholder:"Type a project to open or start...",searchLabel:"Search projects and actions",searchPlaceholder:"Search projects or actions...",commandListLabel:"Launcher actions",commandFailed:"Failed to run action",noResults:"No matching projects or actions",shortcutDisabled:"Not set",desktopActionUnavailable:"Desktop launch actions are not available in this environment",openWorkspaceFailed:"Failed to open project",openingProjectAnimationLabel:"OneWorks opening project animation",openingProjectTitle:"Opening {{name}}",createWorkspaceFailed:"Failed to create project",createWorkspaceNamePlaceholder:"Enter a new project folder name",createWorkspaceNameSearchLabel:"Enter a new project folder name",createWorkspaceNameRequired:"Enter a new project folder name",createWorkspaceParentRequired:"Choose where to create the project",cloneRepositoryPromptTitle:"Clone Remote Repository",cloneRepositoryUrlPlaceholder:"Enter a Git repository URL",cloneRepositorySearchLabel:"Enter a Git repository URL",cloneRepositoryUrlRequired:"Enter a Git repository URL",cloneRepositoryDestinationRequired:"Choose a clone destination folder",cloneRepositoryCloning:"Cloning into {{path}}...",cloneRepositorySuccess:"Repository cloned",cloneRepositoryFailed:"Failed to clone repository",cloneRepositoryDestinationTitle:"Clone into",cloneRepositoryDestinationTooltip:"Current folder: {{path}}",cloneRepositoryDestinationLoading:"Loading folders...",cloneRepositoryDestinationEmpty:"No child folders",cloneRepositoryDestinationFailed:"Failed to load folders",cloneRepositoryFavoriteDestination:"Favorite this folder",cloneRepositoryUnfavoriteDestination:"Unfavorite this folder",directoryBrowserTooltip:"Current folder: {{path}}",directoryBrowserLoading:"Loading folders...",directoryBrowserEmpty:"No child folders",directoryBrowserFailed:"Failed to load folders",directoryBreadcrumbLabel:"Current folder path",directoryNameCopied:"Folder name copied",directoryPathCopied:"Folder path copied",favoriteDirectory:"Favorite this folder",unfavoriteDirectory:"Unfavorite this folder",openWorkspaceSearchPlaceholder:"Search folder paths in this list...",openWorkspaceSearchLabel:"Search folder paths",comingSoon:"This entry is still being connected",files:{title:"Files",globalTitle:"File Search",rootLabel:"Computer",searchLabel:"Search files",searchPlaceholder:"Search files in {{project}}...",globalSearchPlaceholder:"Search files or folders from the computer root...",inputHint:"Type a file name or path to search this project",globalInputHint:"Type a file name or path to search from the computer root",searching:"Searching files...",noResults:"No matching files or folders",searchFailed:"Failed to search files",openFailed:"Failed to open file",folderBadge:"Folder",externalBadge:"External",loadingOpeners:"Loading available apps...",openWithDefault:"Open with default app",openWithDefaultNamed:"Open with default app ({{name}})",openWithNamed:"Open with {{name}}"},resource:{searchPlaceholder:"Search files, sessions, terminals, or websites in {{project}}...",createTitle:"Create",sessionsTitle:"Sessions",websitesTitle:"Websites",terminalsTitle:"Terminals",newSession:"New Session Tab",newSessionHint:"Open a session page in the current chat window",newTerminal:"New Terminal Tab",newTerminalHint:"Create a terminal in the bottom panel",newWebsite:"New Website Tab",newWebsiteHint:"Create a browser page in the bottom panel",tabBadge:"Tab",fileBadge:"In app",sessionBadge:"Session",websiteBadge:"Web",terminalBadge:"Terminal"},start:{title:"Start",newProjectFolder:"New Project",newProjectFolderHint:"Create a local folder and open it as a project",openFolder:"Open Project",openFolderHint:"Choose a local project directory",cloneRepository:"Clone Remote Repository",cloneRepositoryHint:"Create a project from a Git repository",connectRemoteService:"Link Remote Service",connectRemoteServiceHint:"Connect an existing OneWorks service"},projects:{copyName:"Copy name",copyPath:"Copy path",fileExplorer:"File Explorer",fileManager:"file manager",nameCopied:"Project name copied",open:"Open project",openFolder:"Open in file manager",pathCopied:"Project path copied",revealFailed:"Failed to show project in {{manager}}",revealInFileManager:"Show in {{manager}}",remove:"Remove project",removeConfirmDescription:"This only removes the project from the recent list. The folder stays on disk and can be opened again later.",removeConfirmOk:"Remove",removeConfirmTitle:"Remove {{name}} from the launcher?",removeFailed:"Failed to remove project",stopAndRemove:"Stop and remove",stopAndRemoveConfirmDescription:"This stops the local server process for the project and removes it from the recent list. The folder stays on disk.",stopAndRemoveConfirmOk:"Stop and remove",stopAndRemoveConfirmTitle:"Stop and remove {{name}} from the launcher?",stopAndRemoveSuccess:"Project service stopped and removed",stopFailed:"Failed to stop project service",stopService:"Stop service",stopServiceConfirmDescription:"This stops the local server process for the project. Project files are not deleted and the project can be opened again later.",stopServiceConfirmOk:"Stop",stopServiceConfirmTitle:"Stop the server process for {{name}}?",stopServiceSuccess:"Project service stopped",title:"Projects"},menu:{open:"Open OneWorks menu",settings:"Settings",about:"About",checkUpdate:"Check Updates",language:"Language",projectRequired:"Open or focus a project before opening Settings or About",openFailed:"Failed to open this workspace page"},settings:{title:"Launcher Settings",searchLabel:"Search launcher settings",searchPlaceholder:"Search settings...",listLabel:"Launcher settings",sectionsLabel:"Launcher setting sections",empty:"No matching settings",resetSection:"Reset {{section}}",sectionShortcutTooltip:"Press {{shortcut}} to switch to {{section}}",sections:{general:"General",behavior:"Behavior",appearance:"Appearance",icon:"Icon"},items:{theme:{title:"Theme mode",desc:"Switch the launcher and main UI between light, dark, or system mode"},textSize:{title:"Text size",desc:"Adjust text size inside the launcher",default:"Default",large:"Large"},windowMode:{title:"Window mode",desc:"Switch the launcher between default and compact window layouts",default:"Default",compact:"Compact"},favorites:{title:"Show favorites in compact mode",desc:"Keep favorites visible in the compact launcher window"},language:{title:"Interface language",desc:"Quickly switch the current interface language"},shortcut:{title:"Launcher shortcut",desc:"Press a shortcut to summon the launcher"},launchAtLogin:{title:"Launch at login",desc:"Start OneWorks automatically after signing in"},openLastWorkspaceOnStartup:{title:"Open last project at startup",desc:"Open the most recent project on normal app startup; otherwise show the launcher"},autoUpdate:{title:"Automatic updates",desc:"Automatically check for and download desktop updates for the current project"},updateChannel:{title:"Update channel",desc:"Choose Stable, RC, Beta, or Alpha for the current project's desktop updates"},statusPin:{title:"Pin icon",desc:"Show a Pin icon in the system status area for quick launcher access",descMac:"Show a Pin icon in the macOS menu bar for quick launcher access",descWindows:"Show a Pin icon in the Windows system tray for quick launcher access"},hideAfterAction:{title:"Hide after action",desc:"Collapse the launcher after opening a project, file, or session"},currentProject:{title:"Show current project",desc:"Prefer the focused project context when a project window is active"},resourceSearch:{title:"Search project resources",desc:"Search files, sessions, terminals, and websites in the current project"},footerHints:{title:"Footer key hints",desc:"Show available actions for the selected item in the lower right"},appIcon:{title:"App icon",desc:"Choose the app icon theme and background used by the launcher",syncLabel:"Sync desktop icon",syncDesc:"Update the desktop, Dock, or taskbar icon when the icon theme changes"}}},about:{title:"About",searchLabel:"About OneWorks",searchPlaceholder:"About OneWorks",listLabel:"About OneWorks"},footer:{settings:"Settings",help:"Help",more:"More"},footerHints:{label:"Keyboard actions for the selected item",section:"Section",move:"Move",open:"Open",toggle:"Toggle",adjust:"Adjust",edit:"Edit",create:"Create",clone:"Clone",openDirectory:"Open folder",context:"Menu",contextKey:"Right click",fileSearch:"Files",close:"Close",back:"Back"},recent:{title:"Recent Projects",empty:"No recent projects",more:"More..."}},Im={title:"Sign in to OneWorks",subtitle:"Use a configured account to continue into this workspace.",username:"Username",usernamePlaceholder:"Enter username",usernameRequired:"Enter username",password:"Password",passwordPlaceholder:"Enter password",passwordRequired:"Enter password",rememberDevice:"Remember this device",login:"Sign in",loginFailed:"Sign in failed",statusFailed:"Could not load sign-in status",statusFailedHelp:"Make sure the backend service is still running, then retry.",statusTimeout:"Timed out while loading sign-in status. Make sure the backend service is still running, then retry.",retryStatus:"Retry",accountMenu:"Account and connection",changeServer:"Switch backend",logout:"Sign out of this server",logoutFailed:"Sign out failed",generatedPasswordTitle:"Using an auto-generated local password",generatedPasswordDescription:"Find the password in the local password file, or configure fixed accounts in webAuth.accounts.",generatedPasswordHint:"Default password file: {{path}}"},_m={title:"Connect your backend",subtitle:"Start the backend on the computer running OneWorks, then paste the service address shown in the terminal.",desktopTitle:"Switch backend",desktopSubtitle:"The desktop app already started a local service on this device. You can also connect to other OneWorks backends and switch execution environments from the same Electron app.",setupTitle:"Run this on your computer",setupDescription:"Copy the http or https address shown in the terminal. For advanced network setups, see ",docsLink:"the PWA deployment guide",localServiceTitle:"Built-in local service",localServiceBannerDescription:"Electron started this local service automatically on the current device, so no extra sign-in is required.",localServiceAlias:"This device",localServiceProfileDescription:"Local service started automatically by Electron",serverUrl:"Backend service address",serverScheme:"Backend service protocol",serverUrlPlaceholder:"Paste the service address from the terminal",serverUrlRequired:"Enter the backend service address",invalidUrl:"Enter a valid http or https address",connectionFailed:"Could not connect to that backend service. Make sure it is running and allows cross-origin requests.",unsupportedServerVersion:"This backend version is not supported. The PWA version is {{clientVersion}}, and the backend version is {{serverVersion}}.",recentTitle:"Saved backend services",manageProfile:"Manage backend service",serverVersion:"Backend {{version}}",serverVersionUnknown:"unknown version",profileAlias:"Alias",profileAliasPlaceholder:"For example, Home computer",profileDescription:"Description",profileDescriptionPlaceholder:"For example, Tailscale private network or desktop at home",loginState:"Sign-in state",loginSaved:"Saved sign-in",loginMissing:"No saved sign-in",clearLoginState:"Clear sign-in state",clearLoginStateConfirm:"Only clears the sign-in state saved in this browser.",removeProfile:"Remove record",removeProfileConfirm:"Removes this record and its local sign-in state.",connect:"Connect"},Lm={title:"Automation",newRule:"New Rule",newTask:"New Task",creatingRule:"Creating",editRule:"Edit Rule",createMode:"Creation mode",createModeForm:"Form",createModeChat:"Chat",searchRule:"Search tasks",favorite:"Favorite",unfavorite:"Unfavorite",toggleEnabled:"Enable/Disable",noDescription:"No description",runSearch:"Search runs",runFilters:"Filter runs",runOptions:"Run options",statusAll:"All statuses",timeRange:"Time range",timeAll:"All time",time24h:"Last 24 hours",time7d:"Last 7 days",time30d:"Last 30 days",sortOrder:"Sort order",sortDesc:"Newest first",sortAsc:"Oldest first",triggerCount:"{{count}} triggers",basicDesc:"Describe purpose and toggle the rule on or off",sectionBasic:"Basic Info",sectionTriggers:"Triggers",sectionTasks:"Tasks",sectionStartup:"Startup Parameters",startupSummaryDefault:"Use default startup parameters",startupDefault:"Default",startupAdapter:"Adapter",startupDefaultAdapter:"Use default adapter",startupModel:"Model",startupDefaultModel:"Use default model",defaultModelLabel:"Default model",startupNoModels:"No models available",startupEffort:"Reasoning Effort",startupPermissionMode:"Permission Mode",startupWorkspace:"Workspace",startupBranchAction:"Branch Action",startupBranchKind:"Branch Source",startupBranchName:"Branch Name",startupBranchNameRequired:"Enter a branch name",startupBranchNamePlaceholder:"Example: codex/automation-nightly",startupUseManagedWorktree:"Create managed worktree",startupUseCurrentWorkspace:"Use current workspace",startupBranchDefault:"Do not set branch",startupBranchCheckout:"Check out existing branch",startupBranchCreate:"Create new branch",startupBranchKindLocal:"Local branch",startupBranchKindRemote:"Remote branch",startupSummaryAdapter:"Adapter: {{value}}",startupSummaryModel:"Model: {{value}}",startupSummaryEffort:"Effort: {{value}}",startupSummaryPermission:"Permission: {{value}}",startupSummaryCheckoutBranch:"Checkout: {{value}}",startupSummaryCreateBranch:"New branch: {{value}}",startupSummaryBranchKind:"Branch source: {{value}}",effortLow:"Low",effortMedium:"Medium",effortHigh:"High",effortMax:"Max",permissionAcceptEdits:"Accept edits",permissionPlan:"Plan",permissionDontAsk:"Do not ask",permissionBypassPermissions:"Bypass permissions",ruleName:"Rule Name",ruleNameRequired:"Enter a rule name",ruleDescription:"Description",ruleDescriptionPlaceholder:"Enter a description",immediateRun:"Run Immediately",ruleType:"Trigger Type",ruleTypeRequired:"Select a trigger type",typeInterval:"Interval",typeWebhook:"Webhook",typeCron:"Cron",intervalMinutes:"Interval (minutes)",intervalRequired:"Enter an interval",webhookKey:"Webhook Key",webhookKeyHint:"Leave empty to auto-generate",cronExpressionLabel:"Cron Expression",cronExpressionRequired:"Enter a cron expression",cronExpressionHint:"Example: 0 9 * * 1",cronExpression:"Cron: {{expression}}",cronPreset:"Presets",cronPresetHint:"Choose a preset",cronPresetHourly:"Hourly",cronPresetDaily9:"Daily at 09:00",cronPresetWeekday9:"Weekdays at 09:00",cronPresetWeekend10:"Weekend at 10:00",cronInputHint:"Enter cron directly, or use weekly fields below to generate one",weeklyDay:"Weekly Day",weeklyTime:"Time (HH:mm)",weeklyTimeHint:"Example: 09:00",weekdaySun:"Sun",weekdayMon:"Mon",weekdayTue:"Tue",weekdayWed:"Wed",weekdayThu:"Thu",weekdayFri:"Fri",weekdaySat:"Sat",triggerAny:"Trigger when any condition matches",taskAll:"Run all tasks when triggered",addTrigger:"Add Trigger",addTask:"Add Task",remove:"Remove",taskDefaultTitle:"Task {{index}}",taskTitle:"Task Title",taskTitlePlaceholder:"Optional, for distinguishing tasks",collapseTask:"Collapse task content",expandTask:"Expand task content",taskIndex:"Task {{index}}",taskCount:"{{count}} tasks",taskUnknown:"Untitled Task",webhookUrl:"Webhook URL",prompt:"Task Prompt",promptRequired:"Enter the task prompt",trigger:"Trigger",webhookTrigger:"Webhook",intervalEvery:"Every {{minutes}} min",enabled:"Enabled",enabledStatus:"Enabled Status",ruleStatus:"Rule Status",lastRunLabel:"Last Run",lastRun:"Last Run",lastRunAt:"Last run: {{time}}",noRunYet:"No runs yet",emptyRules:"No automation rules",createRuleLink:"Create automation",mobileRules:"Rules",mobileDetails:"Details",collapseRulePanel:"Collapse rule list",expandRulePanel:"Expand rule list",selectRule:"Select an automation rule",ruleId:"Rule ID",createdAt:"Created At",enabledOn:"Enabled",enabledOff:"Disabled",noTriggers:"No triggers",noTasks:"No tasks",runHistory:"Run History",runTime:"Run Time",runStatus:"Status",runSummary:"Summary",session:"Session",relatedSession:"Related Session",openSession:"Open Session",noRuns:"No runs yet",actions:"Actions",run:"Run Now",edit:"Edit",delete:"Delete",copy:"Copy",webhookCopied:"Webhook copied",created:"Rule created",updated:"Rule updated",deleted:"Rule deleted",saveFailed:"Save failed",deleteFailed:"Delete failed",toggleFailed:"Update failed",runStarted:"Task started",runFailed:"Start failed",emptyLandingEyebrow:"AI automation setup",emptyLandingTitle:"Let AI create the automation",emptyLandingDescription:"Choose a common task to fill the sender below, or describe the trigger and the work to run. Sending starts a chat where AI can call tools to create it.",emptyLandingPlaceholder:"Describe the automation you want to create",emptyLandingSendInstruction:`Create an automation from the request below. Prefer calling the available automation tools to create it; if required details are missing, ask for the missing configuration first.
|
|
696
696
|
|
|
697
697
|
Request:
|
|
698
698
|
{{request}}`,emptyLandingAttachmentInstruction:"Create an automation from the context I attached. Prefer calling the available automation tools to create it; if required details are missing, ask for the missing configuration first.",starterDailyTitle:"Daily project brief",starterDailyDescription:"Summarize progress, risks, and next steps on a schedule.",starterDailyPrompt:"Help me create an automation: every weekday at 9:00 AM, check the current project status and summarize yesterday's completed work, today's risks, and suggested next steps. Please use the available automation tools to create it.",starterHealthTitle:"Scheduled health check",starterHealthDescription:"Run periodic checks and report when something breaks.",starterHealthPrompt:"Help me create an automation: every 30 minutes, check whether the current project has failing tests, build errors, or service issues. If there is a problem, create a session explaining the cause and suggested fixes. Please use the available automation tools to create it.",starterWeeklyTitle:"Weekly review",starterWeeklyDescription:"Collect progress, open issues, and planning notes each week.",starterWeeklyPrompt:"Help me create an automation: every Friday at 5:30 PM, summarize this week's development progress, solved issues, unfinished work, and recommendations for next week. Please use the available automation tools to create it.",starterReminderTitle:"Important reminders",starterReminderDescription:"Remind me or check specific items at the right time.",starterReminderPrompt:"Help me create an automation: every weekday at 6:00 PM, check whether there are unresolved todos, waiting inputs, or failed tasks, then create a session reminding me to handle them. Please use the available automation tools to create it."},Nm={title:"Benchmark",sidebarHint:"Choose a category and case, inspect the task goal, and launch a run.",category:"Category",categoryCount:"{{count}} categories",caseCount:"{{count}} cases",caseTree:"Case Tree",expandAll:"Expand All",collapseAll:"Collapse All",runSelected:"Run Selected ({{count}})",runAll:"Run All",caseId:"Case:",searchPlaceholder:"Search category, title, or summary",emptyCases:"No benchmark cases",mobileCases:"Cases",mobileDetails:"Details",noSummary:"No summary",configTitle:"Case Config",baseCommit:"Base Commit",setupCommand:"Setup Command",testCommand:"Test Command",timeoutSec:"Timeout (sec)",runState:"Run State",noActiveRun:"No active benchmark run",runStatus:"Status",progress:"Progress",lastMessage:"Last Message",taskGoal:"Task Goal",resultTitle:"Latest Result",noResult:"No result yet",finalScore:"Final Score",lastRunAt:"Last Run",testScore:"Test Score",goalScore:"Goal Score",referenceScore:"Reference Score",changedFiles:"Changed Files",noChangedFiles:"No changed files recorded",testExitCode:"Test Exit Code",durationMs:"Duration (ms)",issues:"Issues",noIssues:"No issues",concurrency:"Concurrency",runCategory:"Run Category",runCase:"Run Case",runStarted:"Benchmark started",categoryRunStarted:"Category benchmark started",runCompleted:"Benchmark completed",runFailed:"Benchmark run failed",status:{pass:"Pass",partial:"Partial",fail:"Fail"}},$m={title:"Project Knowledge Base",subtitle:"Manage skills, entities, flows, and rules for this project",tabs:{skills:"Skills",entities:"Entities",flows:"Flows",rules:"Rules"},actions:{new:"New",refresh:"Refresh",refreshed:"Refreshed",import:"Import",expand:"Expand",collapse:"Collapse"},filters:{search:"Search name, description, or params",searchActive:"Search current list",tags:"Filter by tags",noResults:"No matching results"},meta:{params:"{{count}} params",always:"Always",skills:"Skills",rules:"Rules",skillsCount:"Skills {{count}}",rulesCount:"Rules {{count}}"},skills:{title:"Skill Library",desc:"Maintain reusable skill definitions and usage notes.",empty:"No skills found.",project:"Project Skills",sourceProject:"Project Default",sourceGlobalConfig:"~/.oneworks/.oo.config.json",sourceProjectConfig:".oo.config.json",sourceUserConfig:".oo.dev.config.json",sourcePlugin:"Plugin",sourceHome:"Real Home",market:"Market",create:"Create Skill",createSuccess:"Skill created",createFailed:"Failed to create skill",createHint:"Create a skill file under .oo/skills, then refresh the page.",importHint:"Import skill files into .oo/skills, then refresh the page.",importSuccess:"Imported {{count}} files",importFailed:"Failed to import skills",searchProject:"Search project skills",searchHub:"Search configured skills registries",marketActions:"Registries and filters",allRegistries:"All registries",registryFilter:"Filter registries",allSources:"All sources",sourceFilter:"Filter sources",installFilter:"Filter install status",allStatuses:"All statuses",installedOnly:"Installed only",notInstalled:"Not installed",sort:"Sort",sortDefault:"Default",sortInstallsDesc:"Most installed",sortNameAsc:"Name A-Z",sortNameDesc:"Name Z-A",addRegistry:"Add Registry",openConfig:"Open skills config",noRegistry:"No skills registry configured.",emptyHub:"No matching skills were found in the configured registries.",install:"Install",openOfficialSite:"Open official site",loadMore:"Load more",loadingMore:"Loading",reinstall:"Reinstall",installSuccess:"Installed",installFailed:"Install failed",installed:"Installed",installs:"{{value}} installs",scope:"Scope",hooks:"Hooks",registrySaved:"Registry saved",registryExists:"A registry with the same source already exists",registryConfigSource:"Config file",registryTitle:"Display title (optional)",registryTitlePlaceholder:"Lynx Team Skills",registrySource:"Source path",registrySourceRequired:"Enter a skills source path",registrySourcePlaceholder:"example-source/default/public",registryValue:"NPM registry (optional)",registryValuePlaceholder:"https://registry.example.com",skillName:"Name",skillNameRequired:"Enter a skill name",skillNamePlaceholder:"review-checklist",skillDescription:"Description",skillDescriptionPlaceholder:"Checklist for code review",skillBody:"Body",skillBodyPlaceholder:"Describe how this skill should be used"},entities:{title:"Entity Library",desc:"Manage roles, components, and domain entities for the project.",empty:"No entities found.",create:"Create Entity",createHint:"Create an entity definition file, then refresh the page.",importHint:"Import entity definition files, then refresh the page."},flows:{title:"Flow Library",desc:"Manage project flows and parameter definitions.",empty:"No flows found.",noContent:"No flow definition content",create:"Create Flow",createHint:"Create a flow file under .oo/specs, then refresh the page.",importHint:"Import flow files into .oo/specs, then refresh the page."},rules:{title:"Rule Library",desc:"Maintain project conventions, constraints, and enforcement rules.",empty:"No rules found.",create:"Create Rule",createHint:"Create a rule file under .oo/rules, then refresh the page.",importHint:"Import rule files into .oo/rules, then refresh the page."}},Bm={header:{eyebrow:"Agent Room",summary:"Room summary",memberCount:"{{count}} members",attentionCount:"{{count}} waiting",runningCount:"{{count}} running"},system:{memberJoined:"{{member}} joined the room"},message:{you:"You",agent:"Agent",system:"System",replyingTo:"Replying to {{author}}: {{content}}",expandLong:"Show more",collapseLong:"Show less"},reaction:{completed:"Completed",completedBy:"{{agent}} completed",working:"Working",workingBy:"{{agent}} is working",openTarget:"Open {{agent}} session"},approvalBatch:{title:"Approval queue",summary:"Approval request summary",total:"{{count}} requests",pendingCount:"{{count}} pending",handledCount:"{{count}} handled",actionCount:"{{count}} leader actions",pending:"Pending",handled:"Handled",handledByLeader:"Handled by leader",currentRequest:"Current request",latestRequest:"Latest request",options:"Available options",history:"{{count}} history items"},interactionRequest:{title:"Permission request",titleWithSubject:"Permission request: {{subject}}",options:"Available responses",response:"Responded: {{response}}",command:{summary:"Review this command before allowing execution.",title:"Command",shell:"Shell: {{shell}}",arguments:"Arguments: {{arguments}}",script:"Script content",fullCommand:"Full command"},status:{pending:"Pending",handled:"Handled",expired:"Expired"},kind:{confirmation:"Confirmation",input:"Input",progress:"Progress"}},mode:{session:"Session mode",room:"Room mode"},transcript:{ariaLabel:"{{title}} transcript",empty:"No public room messages yet"},status:{room:{active:"Active",waiting:"Waiting",completed:"Completed",failed:"Failed",idle:"Idle"},member:{active:"Active",waiting:"Waiting",completed:"Completed",failed:"Failed",stopped:"Stopped",idle:"Idle"},run:{running:"Running",waiting:"Waiting",completed:"Completed",failed:"Failed",stopped:"Stopped"}},actions:{openRun:"Open run",openHostSession:"Open host session",messageRun:"Open {{target}} session",backToRoom:"Back"},sessionStatus:{starting:"Task created, waiting for the child agent to start",startingStale:"Child agent did not start; no runtime events received",running:"Child agent is running",waiting:"Child agent is waiting for confirmation",completed:"Child task completed",failed:"Child task failed",stopped:"Child task stopped"},sessionBreadcrumbLabel:"{{roomTitle}} / {{sessionTitle}}",approvals:{empty:"No pending approvals",waitingForInput:"Waiting",waitingDescription:"This child run is waiting inside the room. The leader will decide whether to ask you for approval."},roster:{eyebrow:"Roster",title:"Room members",compactTitle:"Room roster · {{count}} members",memberCount:"{{count}} members",activeRuns:"{{count}} active",pendingCount:"{{count}} pending",expandRuns:"Show sessions",collapseRuns:"Hide sessions",noRuns:"No runs yet"},composer:{placeholder:"Message the host agent...",ariaLabel:"Agent room message",send:"Send",sending:"Sending",target:{host:"{{target}}",member:"{{target}}",run:"{{target}}",missing:"Can't find {{target}}",ambiguous:"Multiple matches for {{target}}"},completion:{member:"member mailbox",run:"run"},error:{missingTarget:"Unknown target {{target}}",ambiguousTarget:"Ambiguous target {{target}}",emptyTargetedMessage:"Add a message for {{target}}",unsupportedAttachments:"Agent Room messages currently support text only. Remove image and file attachments before sending."}},sidebar:{label:"Agent room",openRoom:"Open room",favoriteRoom:"Favorite room",unfavoriteRoom:"Unfavorite room",favoritedRoom:"Favorited room",archiveRoom:"Archive room",unarchiveRoom:"Unarchive room",copyRoomLink:"Copy room link",copyRoomId:"Copy room ID",roomLinkCopied:"Room link copied to clipboard",roomIdCopied:"Room ID copied to clipboard",activeRuns:"{{count}} active",pendingCount:"{{count}} waiting"}},jm={titleUpdated:"Title updated",titleUpdateFailed:"Failed to update title",clickToEditTitle:"Click to edit title",inputPlaceholder:"Type a message...",childSessionPlaceholder:"Type a message in this child session...",send:"Send",thinking:"Thinking",voiceInput:{tooltip:"Voice input",start:"Start recording",menu:"Voice service menu",stop:"Stop recording and transcribe",sendAfterTranscription:"Send after transcription",transcribing:"Transcribing",configure:"Configure voice service",retry:"Retry",setDefault:"Set default: {{name}}",setupPrompt:"No available speech-to-text service is configured",setupAction:"No voice service configured, configure",showInSender:"Show voice input",showInSenderFailed:"Failed to show voice input",defaultService:"Default",browserWebSpeechService:"Browser speech recognition",defaultSaved:"Default voice service saved",defaultSaveFailed:"Failed to save default voice service",unsupported:"Recording is not supported in this browser",unavailable:"Recording is not available in the current state",permissionDenied:"Microphone permission was denied",browserLanguageUnsupported:"This recognition language is not supported by the browser",browserRecognitionNetwork:"Browser speech recognition network error",loadServicesFailed:"Failed to load voice services",recordingFailed:"Failed to start recording",emptyRecording:"No recognizable audio was recorded",transcribeFailed:"Speech recognition failed"},sessionOperation:{adapterCliPrepare:"Preparing adapter CLI. If no compatible system install is available, it will be installed now…"},stop:"Stop",result:"Result",sessionActive:"Session Active",pinSessionDockPreview:"Pin current session",unpinSessionDockPreview:"Unpin current session",selectModel:"Select a model to start",adapterSelectPlaceholder:"Select adapter",adapterBuiltinLabel:"Built in",adapterConfiguredLabel:"Configured",adapterFirstRunHint:"First launch of an adapter prepares its CLI and may take a little longer.",adapterHiddenBuiltinTitle:"Hidden built-in adapters",adapterHideBuiltin:"Hide {{adapter}}",adapterHideLastBuiltinDisabled:"Keep at least one adapter visible",adapterRestoreBuiltin:"Show {{adapter}}",modelSelectPlaceholder:"Select model",defaultModelLabel:"Default model",modelSearchPlaceholder:"Search models or services",modelUnavailable:"No models available",modelConfigRequired:"Add a model service in config before starting a session",modelConfigRequiredTitle:"Model setup required",modelConfigRequiredHelp:"Add at least one model service, then retry sending from the composer.",connectionErrorTitle:"Connection error",connectionClosedTitle:"Connection closed",connectionAuthRequiredTitle:"Login expired",sessionErrorTitle:"Task failed",sessionCreateFailedTitle:"Session creation failed",connectionError:"WebSocket connection failed. Check the server and try again.",connectionClosed:"WebSocket connection closed. Try reconnecting.",connectionAuthRequired:"Your login has expired. Sign in again to continue.",historyLoadFailed:"Failed to load message history. Retry after checking the server connection.",connectionErrorHelp:"Streaming updates stopped before the session could recover. Retry to resubscribe to the running session.",connectionClosedHelp:"The current stream has ended unexpectedly. Retry to reconnect and continue receiving new messages.",connectionAuthRequiredHelp:"The server rejected the realtime connection. Sign in again, then return to this session.",sessionErrorHelp:"Check the latest tool output or terminal logs, then continue from the most recent user message if needed.",sessionCreateFailedHelp:"The first message is still here. After fixing the issue, retry with the same message to create the session.",sessionCreateFailedMessage:"Failed to create session",sessionStoppingMessage:"Requesting session stop...",sessionStopRequestedMessage:"Session stop requested",sessionStopFailedMessage:"Failed to stop session",sessionErrorCode:"Error code: {{code}}",retryConnection:"Retry",retrySessionCreation:"Retry creating session",retrySessionCreationRequired:"Use the retry button in the error notice first.",debugMockLabel:"Debug Preview",debugMockConnectionErrorMessage:"Unable to reach the session stream. The websocket handshake timed out before any updates arrived.",debugMockConnectionClosedMessage:"The connection dropped after the assistant started responding. No further tokens will arrive until you reconnect.",debugMockSessionErrorMessage:"The runtime hit its session timeout while waiting for a downstream tool result and stopped this turn.",permissionRequestBadge:"Permission request",permissionRequestTitleWithTool:"Requesting permission to use 【{{tool}}】. Choose how to proceed.",permissionSubject:"Scope",permissionProjectConfig:"Project config",permissionCurrentMode:"Current mode",permissionSuggestedMode:"Suggested mode",permissionDeniedTools:"Restricted tools",permissionReasons:"Reasons",permissionExpandOptions:"Show more options",permissionCollapseOptions:"Show fewer options",permissionConfirmOption:"Confirm option",permissionConfirmOptionTooltip:"Confirm the currently highlighted permission option",permissionSendBlockedTooltip:"A permission choice is still pending. Confirm the option above first.",permissionSendBlockedError:"A permission choice is still pending, so sending is temporarily disabled.",agentRoomChildRequest:{title:"Child Task Request",request:"Request",options:"Available options",moreContext:"More context"},agentRoomSessionSource:{leader:"leader",agent:"{{source}}",user:"You",separator:":"},interactionOptionNavigation:"Quick option navigation",interactionOptionPrevious:"Previous option",interactionOptionNext:"Next option",tooltipSlashCommands:"Slash commands",tooltipMentionAgents:"Mention agents",tooltipInjectContext:"Inject context",tooltipUploadImages:"Upload images",tooltipReferenceActions:"More",referenceActionsShortcutTooltip:"More / Permission mode",modelShortcutTooltip:"Switch model",modelAddRecommendation:"Add to recommended models",modelAlreadyRecommended:"Already recommended",modelRemoveRecommendation:"Remove from recommended models",effortShortcutTooltip:"Switch reasoning effort",sendShortcutTooltip:"Send message",queue:{steerTitle:"Send After Current Turn",nextTitle:"Send At Next Safe Point",count:"{{count}} queued",sendAfterTurn:"After turn",sendNext:"Next safe point",steerShortcutTooltip:"Queue the message until the current turn finishes",nextShortcutTooltip:"Queue the message and send it at the next safe point",attachmentsOnly:"Contains queued images or references",hasImage:"Contains images",hasReference:"Contains references",moveToSteer:"Move to send after current turn",moveToNext:"Move to send at next safe point",requeueMessage:"Re-queue message",stopCurrentRun:"Stop current run",stopShortcutTooltip:"Press Esc twice to stop the current run",stopShortcutConfirm:"Press Esc again to stop the current run"},adapterLockedTooltip:"Adapters are locked after a session is created",sessionTarget:{title:"Session target",lockedHint:"Fixed after creation",creatingHint:"Creating session",missingResourceWarning:"Choose a resource for the current mode first",modes:{default:"Default",workspace:"Workspace",entity:"Agent",spec:"Spec"},placeholders:{workspace:"Choose workspace",entity:"Choose agent",spec:"Choose spec"},empty:{workspace:"No workspaces",entity:"No agents",spec:"No specs"}},referenceActionsShort:"More",referenceActionsTitle:"More",referenceActionsDescription:"Add photos, files, and permission-related settings.",referenceAttachments:"Add photos and files",referenceAttachmentsDescription:"Choose images or project files as references.",referencePermission:"Permission mode",referencePermissionDescription:"Control how tool actions are authorized.",collapseHeaderControls:"Collapse top bar",expandHeaderControls:"Expand top bar",collapseStatusBar:"Hide status bar",expandStatusBar:"Show status bar",referenceImage:"Image",referenceImageDescription:"Choose a local image and attach it to the message.",referenceFile:"File",referenceFileDescription:"Choose files from the current project tree.",accountSelectPlaceholder:"Select account",accountSelectCreateAccount:"Quick create {{adapter}} account",accountSelectCreateTitle:"Connect {{adapter}} account",accountSelectCreateWaiting:"Waiting for account connection",accountSelectCreateDescription:"Complete authentication in the browser flow opened by Codex. Keep this dialog open until the account is connected, or cancel if you want to stop.",accountSelectCreateCanceling:"Canceling…",accountSelectCreateCanceled:"Account connection canceled",accountSelectOpenAdapterConfig:"Open {{adapter}} config",accountSelectOpenAccountConfig:"Open {{account}} settings",effortSelectPlaceholder:"Effort",effortLabels:{default:"Standard",low:"Low",medium:"Medium",high:"High",max:"Max"},permissionModeSelectPlaceholder:"Permission mode",assetWarningsTitle:"Compatibility notes",assetWarningsCount:"{{count}} asset warnings",assetWarningsMore:"+{{count}} more",selectionWarningsTitle:"Model routing warnings",selectionWarningsCount:"{{count}} model warnings",selectionWarningReasonExcluded:"the model is excluded by adapter rules",selectionWarningReasonNotIncluded:"the model is not included by adapter rules",selectionWarningFallback:"Adapter {{adapter}} switched from {{requestedModel}} to {{resolvedModel}} because {{reason}}.",modelGroupBuiltin:"{{adapter}} built-in models",modelGroupServices:"Model Services",imageTooLarge:"Image must be smaller than 5MB",imageReadFailed:"Failed to read image",previewImage:"Preview image",imagePreviewTitle:"Image",imageLoadFailed:"Failed to load image",openImageInBrowser:"Open image in browser",copyImageLink:"Copy image link",imageLinkCopied:"Image link copied",markdownLinkActions:{openWorkspaceFileInApp:"Open file in current app",openInAppBrowser:"Open in app",openInExternalBrowser:"Open in external browser",copyMarkdownLink:"Copy Markdown link",copyMarkdownSuccess:"Markdown link copied"},imageZoomIn:"Zoom in",imageZoomOut:"Zoom out",imageZoomReset:"Reset zoom",imageNotSupportedInInteraction:"Images are not supported for this interaction",fileNotSupportedInInteraction:"Files are not supported for this interaction",contextPickerTitle:"Reference files or folders",contextPickerDescription:"Choose one or more files or folders from the current project tree.",contextPickerConfirm:"Reference",contextPickerLoading:"Loading workspace tree...",contextPickerEmpty:"No items available in this directory",contextPickerLoadFailed:"Failed to load workspace tree",workspaceDrawerToggle:"Workspace drawer",workspaceDrawerClose:"Close workspace drawer",workspaceDrawerCollapse:"Collapse workspace drawer",workspaceDrawerTitle:"Workspace",workspacePathUnavailable:"No workspace path available",workspaceDrawerRefresh:"Refresh workspace",workspaceDrawerForceSync:"Force sync",workspaceDrawerDisplayMode:"Display mode",workspaceDrawerLocateFile:"Reveal file",workspaceDrawerExpandAll:"Expand",workspaceDrawerCollapseAll:"Collapse",workspaceDrawerToggleSection:"Expand or collapse section",workspaceFileOpen:"Open file",workspaceFileExternalOpenFailed:"Failed to open file in external app",workspaceTreeReferenceToInput:"Reference in input",workspaceTreeTargetMissing:"Target missing",workspaceTreeTargetMissingState:" (target missing)",workspaceTreeExternalLinkState:" (external link)",workspaceTreeNodeLinkTitle:"{{path}} -> {{target}}{{state}}",workspaceTreeLinkTargetMissing:"Link target missing: {{target}}",workspaceTreeLinkTarget:"Link target: {{target}}",workspaceFileCopyName:"Copy file name",workspaceFileCopyRelativePath:"Copy relative path",workspaceFileCopyAbsolutePath:"Copy absolute path",workspaceFileCopyPath:"Copy path",workspaceFileNameCopied:"File name copied",workspaceFileRelativePathCopied:"Relative path copied",workspaceFileAbsolutePathCopied:"Absolute path copied",workspaceFilePathCopied:"Path copied",workspaceFileOpenInExternalEditor:"Open in {{opener}}",workspaceFileReferenceFile:"Reference file",workspaceFileCommentFile:"Comment on this file",workspacePathRevealInTree:"Reveal in tree",workspacePathRevealInFileManager:"Reveal in {{manager}}",workspacePathOpenContainingFolderInFileManager:"Open containing folder in {{manager}}",workspacePathRevealInFileManagerFailed:"Failed to reveal path in {{manager}}",workspacePathFileManagerFallback:"File Manager",workspacePathFileManager:{finder:"Finder",explorer:"File Explorer",fileManager:"File Manager"},workspaceFileCloseOthers:"Close others",workspaceFileCloseRight:"Close to the right",workspaceFileCloseAll:"Close all",workspaceDrawerChangedFiles:"Changed files",workspaceChanges:{summary:"{{count}} files changed",review:"Review",reviewTitle:"Open changed files review",expand:"Expand",collapse:"Collapse",expandFiles:"Expand file list",collapseFiles:"Collapse file list",showDiff:"Expand diff for {{path}}",hideDiff:"Collapse diff for {{path}}",diffUnavailable:"No diff was recorded.",diffTruncated:"Diff is large and was truncated."},workspaceDrawerChangedCount:"{{count}}",workspaceDrawerLoadingGit:"Loading Git status...",workspaceDrawerGitUnavailable:"Git is unavailable for this workspace.",workspaceDrawerNoChangedFiles:"No changed files",workspaceDrawerTree:"Directory tree",workspaceDrawerApprovals:"Approvals",workspaceDrawerAgents:"Agents",workspaceDrawerChangedFolders:"Group by folder",workspaceDrawerChangedFlat:"Flat view",workspaceDrawerChangedSection:{staged:"Staged",tracked:"Tracked",untracked:"Untracked"},workspaceDrawerSubmodule:"Submodule",workspaceDrawerSubmoduleCommit:"commit changed",workspaceDrawerSubmoduleTracked:"tracked changes",workspaceDrawerSubmoduleUntracked:"untracked changes",workspaceFileEditorTitle:"File",workspaceFileEditorLoading:"Loading file...",workspaceFileEditorLoadFailed:"Failed to load file",workspaceImagePreviewLoadFailed:"Failed to load image",workspaceFileEditorSave:"Save",workspaceFileEditorSaved:"Saved",workspaceFileEditorRevert:"Revert",workspaceFileEditorResizePanel:"Drag to resize file editor height",bottomPanelToggle:"Bottom panel",bottomPanelResizePanel:"Drag to resize bottom panel height",browserComments:{ariaLabel:"{{count}} comments",clearAll:"Clear comments",count:"{{count}} comments",targetFallback:"Page element"},textSelections:{addToConversation:"Add to conversation",clearAll:"Clear selected text snippets",count:"{{count}} selected text snippets",sourceChatTranscript:"Chat transcript",sourceFallback:"Selected text",toolbarAriaLabel:"Text selection actions"},fileComments:{addComment:"Add comment",clearAll:"Clear file comments",commentingLines:"Commenting {{segments}}",confirm:"Add file comment",confirmInline:"Confirm",count:"{{count}} file comments",discardDraftContent:"Closing the file tab will clear the current unconfirmed comment.",discardDraftEmptyContent:"Closing the file tab will clear the current unconfirmed comment state.",discardDraftOk:"Discard and close",discardDraftTitle:"Discard current file comment?",emptyLine:"Empty line",editorAriaLabel:"File comment input",lineSegment:"line {{lineNumber}}",lineSegmentRange:"lines {{startLineNumber}}-{{endLineNumber}}",lineSegmentSeparator:", ",missingFileContent:"Cannot read {{path}}. Remove this pending file comment?",missingFileRemove:"Remove comment",missingFileTitle:"File unavailable",placeholder:"Comment on this file snippet",sourceEditor:"File editor",sourceMarkdownPreview:"Markdown preview",wholeFile:"Whole file",toolbarAriaLabel:"File text selection actions"},interactionPanel:{addIframe:"New web page",addIframeDescription:"Open a web preview or external debugging page.",addMobileDebug:"Debug phone",addMobileDebugDescription:"Connect a mobile device and open debugging tools.",addSession:"New session",addSessionDescription:"Create an independent session page in the bottom panel.",addTab:"Add panel page",addTerminalDescription:"Create a terminal task and keep command output in context.",closeTab:"Close {{title}}",editPinnedTab:"Edit pinned tab",emptyDescription:"Open resources, terminals, or web previews while keeping session context in one panel.",emptyHintManageTabs:"Drag or right-click tabs to organize panel pages",emptyHintOpenResource:"{{shortcut}} quick open resource",emptyStart:"Start",emptyTitle:"OneWorks",expandPanel:"Expand bottom panel",expandPanelFullscreen:"Expand bottom panel upward",hidePanel:"Hide bottom panel",editRunCommand:"Edit run command",favoriteRunCommand:"Favorite run command",markdownEditorMode:"Show Markdown source only",markdownPreviewMode:"Render Markdown full width",markdownResizeSplit:"Drag to resize Markdown preview split",markdownSplitMode:"Preview Markdown side by side",minimizePanel:"Minimize bottom panel",addRunCommand:"Add run command",manageRunCommands:"Manage run commands",openResourceDescription:"Open project files, folders, or resource references.",addRunCommandEnv:"Add environment variable",mobileDebugAdbPath:"ADB path",mobileDebugAddNetworkTarget:"Add network target",mobileDebugAddPortForward:"Add port forward",mobileDebugAdbInstallCommand:"brew install android-platform-tools",mobileDebugAdbInstallHint:"After installing, keep the phone connected with USB debugging enabled. This page will rescan automatically.",mobileDebugAdbMissingDescription:"Phone debugging needs Android Debug Bridge. On macOS, install Android Platform Tools with Homebrew.",mobileDebugAdbMissingTitle:"ADB not found",mobileDebugAllApps:"All apps",mobileDebugChrome:"Chrome",mobileDebugCollapsePanels:"Collapse system panels",mobileDebugConfig:"Settings",mobileDebugDesktopOnly:"Phone debugging is only available in the desktop app",mobileDebugDeviceOffline:"Offline",mobileDebugDevicePort:"Device port",mobileDebugDeviceReady:"Connected",mobileDebugDeviceUnauthorized:"Unauthorized",mobileDebugDeviceUnknown:"Unknown",mobileDebugDeviceDisconnectedDescription:"{{device}} is no longer in the connected device list. Try reconnecting or return to device management.",mobileDebugDeviceDisconnectedTitle:"Device connection lost",mobileDebugBackAction:"Back",mobileDebugDevices:"Devices",mobileDebugDiagnostics:"Diagnostics",mobileDebugDiscoverNetworkTargets:"Discover network targets",mobileDebugDiscoverUsbDevices:"Discover USB devices",mobileDebugLocalAddress:"Local address, e.g. 127.0.0.1:3000",mobileDebugNetwork:"Network target",mobileDebugNetworkAddress:"Network address, e.g. 192.168.1.10:9222",mobileDebugNetworkTargets:"Network targets",mobileDebugNoKnownDevices:"No phone found, open settings",mobileDebugNoDevices:"No Android devices found. Connect a phone and enable USB debugging.",mobileDebugNoMatchingTargets:"No matching pages.",mobileDebugNoNetworkTargetsConfigured:"No network targets configured.",mobileDebugNoPortForwardingRules:"No port forwarding rules configured.",mobileDebugNoTargets:"No debuggable pages found. Open a page in mobile Chrome, or make sure the target app has WebView debugging enabled.",mobileDebugNotAvailable:"Not available",mobileDebugOther:"Other",mobileDebugPortForwardActive:"Active",mobileDebugPortForwardError:"Failed",mobileDebugPortForwardRemoved:"Removed",mobileDebugPortForwardSkipped:"Skipped",mobileDebugPortForwarding:"Port forwarding...",mobileDebugPortForwardingStatus:"Port forwarding",mobileDebugAppSwitch:"Apps",mobileDebugBack:"Back",mobileDebugDetails:"Details",mobileDebugDockBottom:"Dock to bottom",mobileDebugDockLeft:"Dock to left",mobileDebugDockPosition:"Information area position",mobileDebugDockRight:"Dock to right",mobileDebugEnvironmentAltitude:"Altitude",mobileDebugEnvironmentApplied:"Device state applied",mobileDebugEnvironmentApply:"Apply",mobileDebugEnvironmentApplyFailed:"Failed to apply device state",mobileDebugEnvironmentApplyPhone:"Run phone action",mobileDebugEnvironmentBattery:"Battery",mobileDebugEnvironmentBatteryHealth:"Battery health",mobileDebugEnvironmentBatteryLevel:"Battery level",mobileDebugEnvironmentBatteryStatus:"Battery status",mobileDebugEnvironmentCellular:"Cellular",mobileDebugEnvironmentCharger:"Charger",mobileDebugEnvironmentDataStatus:"Data registration",mobileDebugEnvironmentEmulatorOnly:"Except for battery controls, these state controls only work with Android Emulator.",mobileDebugEnvironmentFingerId:"Finger ID",mobileDebugEnvironmentFingerprint:"Fingerprint",mobileDebugEnvironmentGoogleMap:"Google Map",mobileDebugEnvironmentLatitude:"Latitude",mobileDebugEnvironmentLocation:"Location",mobileDebugEnvironmentLongitude:"Longitude",mobileDebugEnvironmentMapPicker:"Click the map to update coordinates",mobileDebugEnvironmentMeterStatus:"Metered network",mobileDebugEnvironmentNetworkDelay:"Network delay",mobileDebugEnvironmentNetworkSpeed:"Network speed",mobileDebugEnvironmentOptions:{batteryHealth:{cold:"Cold",dead:"Dead",failure:"Failure",good:"Good",overheat:"Overheat",overvoltage:"Overvoltage",unknown:"Unknown"},batteryStatus:{charging:"Charging",discharging:"Discharging",full:"Full","not-charging":"Not charging",unknown:"Unknown"},charger:{ac:"AC",none:"Off",usb:"USB",wireless:"Wireless"},meter:{metered:"Metered",unmetered:"Unmetered"},networkDelay:{edge:"EDGE",gprs:"GPRS",none:"None",umts:"UMTS"},networkSpeed:{edge:"EDGE",full:"Full",gprs:"GPRS",gsm:"GSM",hscsd:"HSCSD",hsdpa:"HSDPA",lte:"LTE",umts:"UMTS"},phoneAction:{accept:"Accept",call:"Call",cancel:"Cancel",hold:"Hold"},registration:{denied:"Denied",home:"Home",off:"Off",on:"On",roaming:"Roaming",searching:"Searching",unregistered:"Unregistered"},signal:{good:"Good",great:"Great",moderate:"Moderate",none:"None",poor:"Poor"}},mobileDebugEnvironmentPhone:"Phone",mobileDebugEnvironmentPhoneAction:"Phone action",mobileDebugEnvironmentPhoneNumber:"Phone number",mobileDebugEnvironmentResetBattery:"Reset battery",mobileDebugEnvironmentSendSms:"Send SMS",mobileDebugEnvironmentSignalProfile:"Signal profile",mobileDebugEnvironmentSmsDefaultMessage:"Test message from One Works",mobileDebugEnvironmentSmsMessage:"SMS message",mobileDebugEnvironmentTitle:"Device state",mobileDebugEnvironmentTouchFingerprint:"Touch fingerprint",mobileDebugEnvironmentVoiceStatus:"Voice registration",mobileDebugBoundsCenter:"Center",mobileDebugBoundsElement:"Element",mobileDebugBoundsScreen:"Screen",mobileDebugElementAttributes:"Element attributes",mobileDebugElementBounds:"Bounds",mobileDebugElementDetails:"Element details",mobileDebugElementOverview:"Overview",mobileDebugElementTree:"Element tree",mobileDebugElements:"Elements",mobileDebugResizeElementDetails:"Resize element details",mobileDebugHideSidePanel:"Hide side panel",mobileDebugHome:"Home",mobileDebugInputFailed:"Device input failed",mobileDebugInputTab:"Input",mobileDebugInspectMode:"Inspect elements",mobileDebugLogs:"Logs",mobileDebugNoElements:"No elements loaded yet.",mobileDebugNoLogs:"No logs.",mobileDebugPreviewAlt:"Android device screen",mobileDebugPreviewFailed:"Failed to refresh device preview",mobileDebugPreviewLoading:"Loading device screen...",mobileDebugRefresh:"Refresh",mobileDebugRefreshLogs:"Refresh logs",mobileDebugRefreshPreview:"Refresh device screen",mobileDebugReconnectPreview:"Reconnect device",mobileDebugScanning:"Scanning Android debug targets...",mobileDebugSearchPlaceholder:"Search pages or URLs",mobileDebugSelectElement:"Click the screen or tree to select a node.",mobileDebugSendText:"Type",mobileDebugShowSidePanel:"Show side panel",mobileDebugBackToDeviceList:"Back to device list",mobileDebugMoreControls:"More controls",mobileDebugNotifications:"Notifications",mobileDebugPower:"Power",mobileDebugQuickSettings:"Quick settings",mobileDebugRotate:"Rotate",mobileDebugScreenshot:"Screenshot",mobileDebugTargetTab:"Targets",mobileDebugTargets:"Debuggable pages",mobileDebugTextPlaceholder:"Type text into the device",mobileDebugTitle:"Debug phone",mobileDebugReconnectAction:"Retry",mobileDebugTryReconnect:"Try reconnecting",mobileDebugVolumeDown:"Volume down",mobileDebugVolumeUp:"Volume up",mobileDebugWebView:"WebView",mobileDebugWindowClose:"Close window",mobileDebugWindowMinimize:"Minimize window",mobileDebugZoom:"Zoom",openResource:"Open resource",openResourceEmpty:"No matching resources",openResourceInputHint:"Type to search files, sessions, or web pages",openResourceLoading:"Indexing resources...",openResourceLoadFailed:"Failed to load resources",openResourceRecentEmpty:"No recently visited resources",openResourceRecentSection:"Recent resources",openResourceResultsSection:"Matching resources",openResourceSearchPlaceholder:"Search files, sessions, or web pages",openWorkspace:"Open current workspace",openWorkspaceFailed:"Failed to open current workspace",openWorkspaceUnavailable:"No available opener",openWorkspaceWith:"Open in {{opener}}",pageDebuggerListEmpty:"No debuggable pages yet.",pageDebuggerListLoadFailed:"Failed to load page debugger list",pageDebuggerListLoading:"Loading debuggable pages...",pageDebuggerListTitle:"Page debugger list",pageDebuggerUntitledTarget:"Untitled page",pinTab:"Pin tab",pinnedTabEditHint:"Use a Material Symbols name for the icon; leave fields blank to use the original title and icon.",pinnedTabIcon:"Display icon",pinnedTabTitle:"Display title",removeRunCommand:"Remove run command",removeRunCommandEnv:"Remove environment variable",runCommandAdvanced:"Advanced",runCommandCwd:"Working directory",runCommandCwdPlaceholder:"cwd",runCommandEnvKey:"Environment variable name",runCommandEnvKeyPlaceholder:"Variable",runCommandEnvValue:"Environment variable value",runCommandEnvValuePlaceholder:"Value",runCommandEscClosePrompt:"Press Esc again to close the run command window",runCommandIcon:"Icon",runCommandIconPlaceholder:"terminal",runCommandName:"Name",runCommandNamePlaceholder:"Dev server",runCommandBackToList:"Back to commands",runCommandPrimary:"Run {{command}}",runCommandRunning:"Running",runCommandRun:"Run",runShellFile:"Run script",runShellFileTitle:"Run {{file}}",runTaskRestart:"Restart",runTaskStart:"Start",runTaskTerminate:"Terminate",runCommandScript:"Script",runCommandScriptPlaceholder:"pnpm dev",runCommands:"Run commands",runCommandsEmpty:"No run commands",runCommandsTitle:"Run commands",unfavoriteRunCommand:"Unfavorite run command",closeWindowGroup:"Close window group",maximizeWindowGroup:"Maximize window group",restoreWindowGroup:"Restore window group",resourceChildSession:"Child session",resourceFile:"File",resourceWebsite:"Web page",unpinTab:"Unpin tab",copyIframeUrl:"Copy URL",iframeBack:"Back",iframeBackUnavailable:"Cannot go back",iframeAddComment:"Add comment",iframeAnnotationActive:"Annotating",iframeAnnotationAddedToSender:"Comment added to the composer",iframeAnnotationCommentPlaceholder:"Enter a comment for this page element",iframeAnnotationConfig:"Comment settings",iframeAnnotationConfigPlaceholder:"Settings area placeholder",iframeAnnotationCommentRequired:"Enter a comment",iframeAnnotationCommentTitle:"Add page comment",iframeAnnotationInfoAccessibility:"Accessibility",iframeAnnotationInfoBackground:"Background",iframeAnnotationInfoKeyboardFocusable:"Keyboard-focusable",iframeAnnotationInfoName:"Name",iframeAnnotationInfoPadding:"Padding",iframeAnnotationInfoRole:"Role",iframeAnnotationMarker:"Comment {{number}}",iframeAnnotationNoPage:"There is no page to comment on",iframeAnnotationNoSession:"There is no session to receive this comment",iframeAnnotationSensitiveTarget:"This element cannot be commented on",iframeAnnotationSendFailed:"Failed to send comment",iframeAnnotationSent:"Comment sent to the current session",iframeAnnotationStarted:"Select a page element to comment on. Press Esc to cancel.",iframeAnnotationStop:"Exit annotation",iframeAnnotationSubmit:"Add to current session",iframeAnnotationUnavailable:"Cannot read the current page structure",iframeAnnotationUnknownTarget:"Unnamed element",iframeAnnotationVoice:"Voice input",iframeAnnotationWebviewUnsupported:"Element comments are not supported for this page yet",iframeClearCache:"Clear cache",iframeClearCacheSuccess:"Cache cleared",iframeClearCookie:"Clear Cookie",iframeClearCookieSuccess:"Cookie cleared",iframeDeviceToolbar:"Show device toolbar",iframeViewportDesktop:"Desktop",iframeViewportDimensions:"Dimensions:",iframeViewportHeight:"Height",iframeViewportAddDevicePixelRatio:"Add device pixel ratio",iframeViewportAddDeviceType:"Add device type",iframeViewportCaptureFullSizeScreenshot:"Capture full size screenshot",iframeViewportCaptureScreenshot:"Capture screenshot",iframeViewportDevicePixelRatio:"Device pixel ratio",iframeViewportDeviceType:"Device type",iframeViewportDeviceTypeDesktop:"Desktop",iframeViewportDeviceTypeMobile:"Mobile",iframeViewportHideDeviceFrame:"Hide device frame",iframeViewportHideMediaQueries:"Hide media queries",iframeViewportHideRulers:"Hide rulers",iframeViewportMobile:"Mobile",iframeViewportNetwork:"Network throttling",iframeViewportNoThrottling:"No throttling",iframeViewportPreset:"Viewport preset",iframeViewportRemoveDevicePixelRatio:"Remove device pixel ratio",iframeViewportRemoveDeviceType:"Remove device type",iframeViewportResetToDefaults:"Reset to defaults",iframeViewportResponsive:"Responsive",iframeViewportRotate:"Rotate",iframeViewportShowDeviceFrame:"Show device frame",iframeViewportShowMediaQueries:"Show media queries",iframeViewportShowRulers:"Show rulers",iframeViewportStandard:"Standard",iframeViewportTablet:"Tablet",iframeViewportToolbar:"Window size",iframeViewportWidth:"Width",iframeViewportZoom:"Zoom",iframeViewportZoomAuto:"Auto {{value}}",iframeDebugAutoInjectUnavailableCopied:"This page cannot be connected automatically. The debug script was copied; add it to the target page and refresh.",iframeDebugCloseDeveloperTools:"Close developer tools",iframeDebugCopyScript:"Copy debug script",iframeDebugDeveloperToolsTitle:"Developer tools",iframeDebugDockBottom:"Dock to bottom",iframeDebugDockLeft:"Dock to left",iframeDebugDockRight:"Dock to right",iframeDebugInjectUnavailable:"This page cannot be injected from the Web UI",iframeDebugOpenDeveloperTools:"Open developer tools",iframeDebugResizeDeveloperTools:"Drag to resize developer tools",iframeDebugScriptCopied:"Debug script copied",iframeDebugServiceUnavailable:"Page debugging service is unavailable",iframeEditingHint:"Enter to open",iframeEmpty:"Enter a URL to load a web page",iframeForward:"Forward",iframeForwardUnavailable:"Cannot go forward",iframeForceReload:"Force reload",iframeMore:"More",iframeOpenExternalBrowser:"Open in external browser",iframeRefresh:"Refresh",iframeRefreshUnavailable:"No page to refresh",iframeScreenshot:"Screenshot",iframeScreenshotCopied:"Screenshot copied",iframeScreenshotFailed:"Screenshot failed",iframeTitle:"Page {{index}}",iframeUrlCopied:"URL copied",iframeZoom:"Zoom",iframeZoomIn:"Zoom in",iframeZoomOut:"Zoom out",iframeZoomReset:"Reset zoom",newSameShellTerminal:"New terminal with same shell",iframeUrlPlaceholder:"Enter URL",sessionTitle:"Session {{index}}"},workspaceDrawerFileStatus:{staged:"Staged",tracked:"Tracked changes",unstaged:"Unstaged",untracked:"Untracked",mixed:"Mixed"},modelGroupRecommended:"Recommended Models",modelMoreModels:"More models",modelConnectMoreServices:"Connect more",modelOpenModelServicesConfig:"Open config",modelOpenModelServiceDetails:"Open service details",availableTools:"Available Tools",availableToolsEmpty:"No tools are available for this session yet.",toolGroupChromeDevtools:"ChromeDevtools",toolGroupSystem:"System",toolsCount:"{{count}} tools",usedTools:"Used {{count}} tools",debugSessionId:"Session",debugType:"Type",debugUuid:"UUID",debugLeafUuid:"Leaf",debugAdapter:"Adapter",debugModel:"Model",debugEffort:"Effort",debugVersion:"Version",debugTools:"Tools",debugAgents:"Agents",debugCwd:"CWD",debugContextCompaction:"Context Compact",debugContextCompactionId:"Compact Event",debugContextCompactionTokens:"Token Count",debugTags:"Tags",debugView:"View",debugStarred:"Starred",debugArchived:"Archived",debugEnable:"Enable debug mode",debugDisable:"Disable debug mode",debugOpenSessionLog:"Open session log",debugEnabledValue:"Enabled",debugDisabledValue:"Disabled",debugSectionTitle:"Debug Session Info",debugModeTitle:"Debug mode is on",debugModeDescription:"This section is visible because the current URL contains a debug query.",contextCompressingTitle:"Compressing context",contextCompactedTitle:"Context compressed",contextCompactedMessage:"",contextCompactedDetail:"",contextCompactedTokens:"",viewInitInfo:"Click the title 5 times to toggle debug mode",viewHistory:"History",viewTimeline:"Timeline",hideHistoryTimeline:"Hide timeline in this session",viewTerminal:"Terminal",viewSettings:"Settings",newSessionTitle:"New session",gitBranchSwitcher:"Switch branch",gitOperations:"Git actions",gitWorktree:"Worktree",statusBarTitle:"Session status",statusBarSessionSubtitle:"Track the current session workspace and git context here.",statusBarDraftSubtitle:"Set up the next session workspace before sending the first message.",sessionWorkspace:"Session workspace",sessionWorkspaceManaged:"Managed worktree",sessionWorkspaceShared:"Shared workspace",sessionWorkspaceExternal:"External workspace",sessionWorkspaceDraftCreateWorktree:"Create worktree",sessionWorkspaceDraftStrategyLocal:"Local",sessionWorkspaceDraftStrategyManaged:"New worktree",sessionWorkspaceMenuCurrentWorktree:"Current worktree",sessionWorkspaceMenuWorktreeList:"Worktree list",sessionWorkspaceMenuLaunchInWorktree:"Start in worktree mode",sessionWorkspaceMenuTransferToLocal:"Transfer to local",sessionWorkspaceMenuCreateWorktree:"Create worktree",sessionWorkspaceDraftCreateWorktreeEnabled:"New sessions get an isolated managed worktree.",sessionWorkspaceDraftCreateWorktreeDisabled:"New sessions reuse the shared workspace directly.",sessionWorkspaceDraftCreateBranchLabel:"New branch: {{branch}}",sessionWorkspaceDraftGitUnavailable:"Git is unavailable for the current workspace.",sessionWorkspaceSearchWorktrees:"Search worktrees",sessionWorkspaceNoWorktrees:"No worktrees",sessionCreationProgress:{title:"Session setup",worktreePreparing:"Checking repository state",worktreeCreating:"Creating managed worktree",worktreeCreated:"Managed worktree created",environmentResolving:"Resolving environment scripts",environmentScriptRunning:"Running environment script",environmentScriptSucceeded:"Environment script finished",environmentScriptFailed:"Environment script failed",environmentSkipped:"No environment scripts to run",workspaceReady:"Session workspace is ready",workspaceFailed:"Session workspace failed",outputLabel:"{{script}} output",outputSummary:"{{lines}} lines · {{size}}",outputFollow:"Scroll to latest output",outputExpand:"Expand script output",outputCollapse:"Collapse script output",outputMaximize:"Maximize script output",outputRestore:"Restore script output height"},sessionWorkspaceMode:"Mode",sessionWorkspaceState:"State",sessionWorkspaceBranch:"Branch",sessionWorkspacePath:"Path",sessionWorkspaceCleanup:"Cleanup",sessionWorkspaceCleanupDelete:"Deletes with session",sessionWorkspaceCleanupRetain:"Retained on delete",sessionWorkspaceBaseRef:"Base ref",sessionWorkspaceCurrentSession:"Current session",sessionWorkspaceRepositoryWorktrees:"Repository worktrees",sessionWorkspaceEnvironment:"Runtime environment",sessionWorkspaceEnvironmentDefault:"Default environment",sessionWorkspaceEnvironmentProject:"Project",sessionWorkspaceEnvironmentLocal:"Local",sessionWorkspaceNoEnvironments:"No environments",sessionWorkspaceStateReady:"Ready",sessionWorkspaceStateProvisioning:"Provisioning",sessionWorkspaceStateDeleting:"Deleting",sessionWorkspaceStateDeleted:"Deleted",sessionWorkspaceStateBroken:"Broken",sessionWorkspaceCreateWorktreeSuccess:"Created a managed worktree for this session.",sessionWorkspaceTransferToLocalSuccess:"This worktree is now retained locally.",sessionWorkspaceForceDeleteTitle:"Delete dirty workspace?",sessionWorkspaceForceDeleteDescription:"This session workspace has uncommitted changes. Force delete the session and remove its bound worktree anyway?",gitDetachedHead:"DETACHED",gitSearchBranches:"Search local or remote branches",gitBranchViewMode:"Branch view mode",gitBranchViewTree:"Tree",gitBranchViewFlat:"Flat",gitBranchesLocal:"Local branches",gitBranchesWorktrees:"Other worktrees",gitBranchesRemote:"Remote branches",gitBranchCheckedOutInOtherWorktree:"Checked out in {{path}}",gitRemoteBranchCheckedOutInOtherWorktree:"Local branch already checked out in {{path}}",gitNoBranches:"No matching branches",gitCreateBranch:"Create branch",gitCreateBranchWithName:"Create branch {{branch}}",gitSwitchBranchSuccess:"Switched to {{branch}}",gitCreateBranchSuccess:"Created and switched to {{branch}}",gitCommitShort:"Commit",gitCommitAllChanges:"Commit all changes",gitCommitDialogTitle:"Commit all changes",gitCommitDescription:"This stages all current repository changes before committing.",gitCommitPanelTitle:"Commit changes",gitCommitPanelBranch:"Branch",gitCommitPanelChanges:"Changes",gitChangedFilesCount:"{{count}} files",gitCommitIncludeUnstagedChanges:"Include unstaged changes",gitCommitIncludeUnstagedChangesDescription:"Include unstaged and untracked files.",gitCommitOnlyStagedChangesDescription:"Commit staged changes only.",gitCommitSkipHooks:"Skip Git hooks",gitCommitSkipHooksDescription:"Skip pre-commit and commit-msg hooks.",gitCommitAmend:"Amend latest commit",gitCommitAmendDescription:"Fold into the latest commit. Current: {{subject}}",gitCommitAmendUnavailableDescription:"There is no existing commit to amend in this repository.",gitCommitMessageLabel:"Commit message",gitCommitMessageOptional:"Optional",gitCommitMessagePlaceholder:"Enter a commit message",gitCommitMessagePlaceholderAmend:"Leave blank to keep the latest commit message",gitCommitMessageAmendHint:"Leave it blank to reuse the latest commit message.",gitCommitMessageRequired:"Enter a commit message",gitCommitSuccess:"Commit created",gitCommitNoChanges:"There are no changes to commit",gitCommitNoStagedChanges:"There are no staged changes to commit",gitCommitNextStep:"Next step",gitCommitAndPush:"Commit and push",gitCommitAndPushSuccess:"Commit and push completed",gitCommitPushFailedAfterCommit:"Commit completed, but push failed: {{error}}",gitAmendSuccess:"Amend completed",gitAmendAndPushSuccess:"Amend and push completed",gitAmendUnavailable:"There is no commit available to amend",gitForcePush:"Force push",gitForcePushDescription:"Use force-with-lease for the remote branch.",gitForcePushHint:"Only replaces it when the remote has no newer commits.",gitPushNeedsSyncOrForce:"This branch is behind upstream. Sync first or enable force push.",gitPushShort:"Push",gitPush:"Push current branch",gitPushPanelTitle:"Push changes",gitPushPanelUpstream:"Upstream",gitPushPanelUpstreamHint:"The first push sets the upstream automatically.",gitForcePushSuccess:"Force push completed",gitPushSuccess:"Push completed",gitSyncShort:"Sync",gitSync:"Sync current branch",gitSyncSuccess:"Sync completed",gitStatusDirty:"Uncommitted changes",gitStatusClean:"Working tree clean",gitUpstreamStatus:"Ahead {{ahead}} / behind {{behind}}",gitNoUpstream:"No upstream configured",gitLocalBranch:"Local",gitRemoteBranch:"Remote · {{remote}}",deleteSessionTitle:"Delete session",deleteSessionDesc:"This will permanently remove the session and all messages. Proceed carefully.",timelineEmpty:"No events yet",timelineTask:"Task",timelineStatus:"Status",timelineTiming:"Timeline",timelineStart:"Start",timelineEventName:"Event",timelineInput:"Input",timelineOutput:"Output",timelineEmptyValue:"—",timeline:{mainTasks:"Main task",mainStart:"Conversation start",mainEnd:"Conversation end",startTasks:"Create tasks",askUserQuestion:"AskUserQuestion",edit:"Edit",resumeTask:"Resume task",userPrompt:"User prompt",merge:"Merge",merged:"Merged",donePrefix:"Done",taskStart:"Create task",taskEnd:"End",viewGit:"Git Graph",viewGantt:"Gantt",eventListTitle:"Event List",eventListSearch:"Search events",expandGraph:"Expand conversation graph",collapseGraph:"Collapse conversation graph",running:"Running",waitingInput:"Waiting for input",permissionRequest:"Permission request",failed:"Failed",terminated:"Stopped",ganttTitle:"Task Timeline",ganttMainSection:"Main",ganttTasksSection:"Tasks",allTasksDone:"All tasks done",userAnswer:"User answer",receiveReply:"Reply received",destroyLabel:"Destroy {{name}} @ {{end}}",rangeLabel:"{{name}} ({{start}} → {{end}})"},messageActions:{copy:"Copy raw text",copySuccess:"Raw message copied",copyFailed:"Failed to copy raw message",copyLink:"Copy message link",copyLinkSuccess:"Message link copied",copyId:"Copy message ID",copyIdSuccess:"Message ID copied",copyJson:"Copy message JSON",copyJsonSuccess:"Message JSON copied",copyTimestamp:"Copy timestamp",copyTimestampSuccess:"Timestamp copied",edit:"Edit message",editInProgress:"A message is already being edited. Send or cancel it first.",saveEdit:"Save as branch",confirmInline:"Confirm",recall:"Recall to here",fork:"Fork from here",recallConfirmTitle:"Recall to this message?",recallConfirmContent:"Messages after this point will be rolled back. Continue?",forkConfirmTitle:"Fork from this message?",forkConfirmContent:"This will create a new session branch from this message. Continue?",branchNavigation:"Message version navigation",previousBranch:"Previous message version",nextBranch:"Next message version"},messageFooter:{tokens:"Tokens",copyTimestampSuccess:"Copied ISO timestamp",copyTimestampTitle:"Double-click to copy the ISO timestamp and log the message payload"},turnProcessedDuration:"Processed {{duration}}",turnDurationUnderSecond:"<1s",turnDurationHours:"{{count}}h",turnDurationMinutes:"{{count}}m",turnDurationSeconds:"{{count}}s",turnSummaryCount:"{{count}} hidden messages",turnExpandAction:"Expand",turnCollapseAction:"Collapse",hint:"Press Enter to send, Shift + Enter for new line, type / @ # for completion",newSessionGuide:{loading:"Loading...",searchPlaceholder:"Search actions, prompts, or targets",recentTitle:"Recent",emptySearch:"No matching actions",showMore:"Show {{count}} more",showLess:"Show less",favoriteAction:"Favorite action",unfavoriteAction:"Unfavorite action",fallbackPresetPrefix:"Preset",fallbackActionPrefix:"Action",welcomeMessage:"Welcome back. Describe what you want to move forward, or start with an action template below.",announcements:{title:"Announcements"},workspaces:{title:"Existing Workspaces",empty:"No workspaces found. Configure workspaces in .oo.config.json."},moreCount:"{{count}} more",specs:{title:"Existing Flows",params:"{{count}} params",empty:"No flows found. Add .oo/specs/*.md to show them here.",create:"Quick Create Flow",createToast:"Create a flow file under .oo/specs, then refresh the page."},entities:{title:"Existing Agents",empty:"No agents found. Add entity definition files to show them here.",create:"Quick Create Agent",createToast:"Create an entity definition file, then refresh the page."}},attachments:{pastedImage:"Pasted image"},todo:{noTasks:"No tasks planned",progress:"Progress: {{completed}}/{{total}} completed",pendingCount:"{{count}} todo",inProgressCount:"{{count}} doing",completedCount:"{{count}} done"},tools:{read:"Read File",write:"Write File",bash:"Bash",getTaskInfo:"Get Task Info",listTasks:"List Tasks",listTasksEmpty:"No tasks",startTasks:"Start Tasks",startTasksBackground:"Background",startTasksForeground:"Foreground",startTasksEmpty:"No tasks",startTasksStarted:"Started",startTasksFailed:"Failed",startTasksLogs:"Task Logs",task:"Task",taskCount:"{{count}} tasks",taskExitCode:"Exit: {{code}}",writeSuccess:"Write Success",writeFailed:"Write Failed",askUserQuestion:"Ask User Question",globTool:"Glob",grepTool:"Grep",editTool:"Edit File",lsTool:"List Directory",notebookEdit:"Notebook Edit",webFetch:"Web Fetch",webSearch:"Web Search",booleanOn:"On",booleanOff:"Off",diffSplit:"Split",diffInline:"Inline",skill:"Skill",enterPlanMode:"Enter Plan Mode",exitPlanMode:"Exit Plan Mode",taskCreate:"Create Task",taskGet:"Get Task",taskUpdate:"Update Task",taskList:"List Tasks",claudeTask:"Claude Task",todo:"Task Planning",call:"call",reading:"Reading file...",offset:"offset",limit:"limit",timeout:"timeout",runInBackground:"run in background",dangerouslyDisableSandbox:"sandbox disabled",viewCommand:"View command",noParameters:"No parameters",groupSummaryCount:"{{name}} {{count}}x",groupSummaryMoreCount:"+{{count}}x",singleSelect:"single",multiSelect:"multi",fields:{activeForm:"Active Form",addBlockedBy:"Add Blocked By",addBlocks:"Add Blocks",allowedDomains:"Allowed Domains",allowedPrompts:"Allowed Prompts",answers:"Answers",args:"Args",blockedDomains:"Blocked Domains",cellId:"Cell ID",cellType:"Cell Type",command:"Command",content:"Content",description:"Description",disableSandbox:"Disable Sandbox",details:"Details",editMode:"Edit Mode",glob:"Glob",ignore:"Ignore",limit:"Limit",maxTurns:"Max Turns",metadata:"Metadata",model:"Model",mode:"Mode",newSource:"New Source",newString:"New String",oldString:"Old String",owner:"Owner",offset:"Offset",path:"Path",prompt:"Prompt",pushToRemote:"Push To Remote",questions:"Questions",remoteSession:"Remote Session",remoteSessionUrl:"Remote Session URL",replaceAll:"Replace All",resume:"Resume",runInBackground:"Run In Background",status:"Status",subagentType:"Subagent Type",subject:"Subject",timeout:"Timeout",todos:"Todos"},unknown:"Unknown tool"},terminal:{addSession:"New terminal",closeNamedSession:"Close {{title}}",closeSession:"Close terminal {{index}}",connectionError:"Terminal connection failed. Check the server and try again.",dragSession:"Drag to reorder terminals",enterFullscreen:"Fullscreen",exited:"Exited",exitFullscreen:"Exit fullscreen",exitSummary:"Terminal exited with exitCode={{code}}, signal={{signal}}",hideManager:"Hide terminal list",manageTerminals:"Manage terminals",paneTitle:"Terminal {{index}}",renameSession:"Rename {{title}}",selectShell:"Choose terminal type",sessionCount:"{{count}} terminals",resizePanel:"Drag to resize terminal height",shellTooltip:"Shell: {{shell}}",shellTooltipExited:"Shell: {{shell}}, exited",showManager:"Show terminal list",shell:{bash:"Bash",default:"Default shell",sh:"sh",zsh:"Zsh"}},sessionSettings:"Session Settings",enterTitle:"Enter session title...",tags:"Tags",addTagPlaceholder:"Add tag and press Enter...",noTags:"No tags",title:"Title",newSessionPlaceholder:"Type a message to start a new chat..."},Wm={title:"Plugin Marketplace",subtitle:"Manage installed workspace plugins, or create a new plugin quickly through chat.",configure:"Plugin config",refresh:"Refresh",details:"Details",createPlugin:"Create plugin",connectPlugin:"Add plugin",marketplace:"Plugin Marketplace",viewMode:"Plugin page mode",searchPlaceholder:"Search plugins",empty:"No plugins are loaded",installedLabel:"Installed plugins",groupMode:"Plugin grouping mode",groupByEnabled:"Group by enabled state",groupBySource:"Group by source",groupEnabled:"Enabled",groupDisabled:"Disabled",sourceBuiltIn:"Built-in",sourceGlobal:"Global",sourceLocal:"Local",sourceLocalDev:"Local development",localDirectory:"Local directory",disabled:"Disabled",enablePlugin:"Enable plugin",disablePlugin:"Disable plugin",enablePluginInWorkspace:"Enable in this workspace",disablePluginInWorkspace:"Disable in this workspace",enablePluginGlobally:"Enable globally",disablePluginGlobally:"Disable globally",enabledHint:"Disabled plugins do not load client entries, server entries, or contributions in this workspace. They stay in the list so they can be enabled again.",pluginEnabled:"Plugin enabled",pluginDisabled:"Plugin disabled",pluginEnabledUpdateFailed:"Failed to update plugin enabled state",watch:"Watch",watchHint:"Watch this plugin directory, reload the plugin runtime after file changes, and notify the frontend to reload that plugin.",openDetails:"View details",enableWatch:"Enable Watch",disableWatch:"Disable Watch",copyPluginScope:"Copy plugin ID",copyPluginRoot:"Copy plugin path",pluginScopeCopied:"Plugin ID copied",pluginRootCopied:"Plugin path copied",watchEnabled:"Plugin watch enabled",watchDisabled:"Plugin watch disabled",watchUpdateFailed:"Failed to update plugin watch",diagnostics:"Diagnostics",marketplaceFilter:"Filter",marketplaceConfig:"Config",marketplaceFilterStatus:"Status",marketplaceFilterSource:"Config source",marketplaceFilterAll:"All",marketplaceFilterStatus_all:"All",marketplaceFilterStatus_enabled:"Enabled",marketplaceFilterStatus_disabled:"Disabled",marketplaceSearchPlaceholder:"Search plugins",marketplacePlugins:"Plugins",marketplacePluginsEmpty:"No matching plugins",marketplacePluginEnabled:"Plugin enabled",marketplacePluginDisabled:"Plugin disabled",marketplacePluginSaveFailed:"Failed to save plugin configuration",marketplaceSources:"Plugin sources",marketplaceSourcesEmpty:"No plugin sources yet",addMarketplaceSource:"Add plugin source",removeMarketplaceSource:"Remove plugin source",marketplaceSourceName:"Source name",marketplaceSourceUrl:"Git repository URL",marketplaceSourceRef:"Branch / tag",marketplaceSourcePath:"Subdirectory",marketplaceSourceUrlRequired:"Enter a Git repository URL",marketplaceSourceSaved:"Plugin source saved",marketplaceSourceSaveFailed:"Failed to save plugin source",marketplaceSourceRemoved:"Plugin source removed",marketplaceSourceEnabled:"Plugin source enabled",marketplaceSourceDisabled:"Plugin source disabled",createLandingTitle:"Create a plugin with chat",createLandingDescription:"Pick a common plugin type to prefill the composer, or describe the entry point, interaction, and files you want to extend. Sending starts a session where AI creates the plugin using the repository structure.",createLandingPlaceholder:"Describe the plugin you want to create",createLandingSendInstruction:`Create a OneWorks plugin from the request below. Prefer using create-plugin / plugin-creator capabilities and implement it using the current repository plugin structure. If required details are missing, ask for the missing configuration first.
|