@openchambery/web 2.1.10-beta.8 → 2.1.10-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/assets/{AssistantView-sg_gJwXp.js → AssistantView-CAI5-ej0.js} +3 -3
  2. package/dist/assets/{DiagramView-BW-3spOQ.js → DiagramView-DqD04eBO.js} +1 -1
  3. package/dist/assets/Icon-DVF98Tje.js +1 -0
  4. package/dist/assets/{MarkdownRenderer-LEXHIyuj.js → MarkdownRenderer-B8veZLqW.js} +2 -2
  5. package/dist/assets/{MarkdownRendererImpl-Xs4gJB0s.js → MarkdownRendererImpl-CYxw9k71.js} +1 -1
  6. package/dist/assets/{MarkstreamRendererImpl-RXTIFS1c.js → MarkstreamRendererImpl-BMW-INrV.js} +1 -1
  7. package/dist/assets/{MobileDetailNavigation-Bx1Vbirv.js → MobileDetailNavigation-BYfpLqAN.js} +1 -1
  8. package/dist/assets/{MobileShareBridge-DKsBX4J6.js → MobileShareBridge-BscgKH9V.js} +1 -1
  9. package/dist/assets/{MobileTabPageHeader-BIbvqv8n.js → MobileTabPageHeader-CJDOC6gh.js} +1 -1
  10. package/dist/assets/{MultiRunWindow-Dl6X54iv.js → MultiRunWindow-DwypLkr8.js} +1 -1
  11. package/dist/assets/{OnboardingScreen-CqcZEptL.js → OnboardingScreen-DnF9UT7Z.js} +1 -1
  12. package/dist/assets/{SettingsView-DJZEQaSF.js → SettingsView-CFVnVldo.js} +1 -1
  13. package/dist/assets/{SettingsWindow-TvlhBd6w.js → SettingsWindow-BksF0iMD.js} +1 -1
  14. package/dist/assets/{TerminalView-By3D_hLv.js → TerminalView-3Sscu2s5.js} +1 -1
  15. package/dist/assets/ToolOutputDialog-DAVZmdoA.css +1 -0
  16. package/dist/assets/ToolOutputDialog-DmCqTQUZ.js +10 -0
  17. package/dist/assets/{appThemeRegistry-Du5KFmTd.js → appThemeRegistry-DmMTfBaK.js} +1 -1
  18. package/dist/assets/{dialog-BMa16qrs.js → dialog-l3LcLl96.js} +1 -1
  19. package/dist/assets/{fileMentionTouchSelection-DZvVbBP-.js → fileMentionTouchSelection-Di65ReZH.js} +1 -1
  20. package/dist/assets/{gitApi-DdM2FGUu.js → gitApi-BviIuCdm.js} +1 -1
  21. package/dist/assets/{insertionBoundaries-D5hR7Bnk.js → insertionBoundaries-lHP9w434.js} +1 -1
  22. package/dist/assets/{main-M6NuXmS9.js → main-B-eYtL7p.js} +4 -4
  23. package/dist/assets/{main-C4f3ftkw.js → main-Ct977h_n.js} +2 -2
  24. package/dist/assets/{mcpQueries-BJQRGKlF.js → mcpQueries-CiVCTf3i.js} +1 -1
  25. package/dist/assets/{miniChat-haVuHJtE.js → miniChat-n3x5xJy1.js} +2 -2
  26. package/dist/assets/{mobile-AgEB6KUi.js → mobile-jp5_jLeZ.js} +2 -2
  27. package/dist/assets/{mobileBackNavigation-DYaEgNKl.js → mobileBackNavigation-DpZwGABf.js} +1 -1
  28. package/dist/assets/{multirun-CLywRk_h.js → multirun-CNDOrmMn.js} +1 -1
  29. package/dist/assets/{projectMeta-CmY-ALGU.js → projectMeta-DSNsY-ei.js} +1 -1
  30. package/dist/assets/{renderElectronMiniChatApp-G3oei-lb.js → renderElectronMiniChatApp-CgyVa3Ij.js} +2 -2
  31. package/dist/assets/{renderMobileApp-CLKJYLRa.js → renderMobileApp-SQ7rPy0g.js} +4 -4
  32. package/dist/assets/{runtimeConfig-wXAjg8Wj.js → runtimeConfig-ChIQDmQG.js} +1 -1
  33. package/dist/assets/{runtimeEndpointReset-BcpbVtkr.js → runtimeEndpointReset-7FNMVMmY.js} +2 -2
  34. package/dist/assets/{sessionChangeSummary-DIIJkyzk.js → sessionChangeSummary-CkC8jE6b.js} +1 -1
  35. package/dist/assets/{sessionLookup-Dayma9hk.js → sessionLookup-HPWMV2x0.js} +1 -1
  36. package/dist/assets/{sortable-tabs-strip-CscHgCaq.js → sortable-tabs-strip-BKHrDVrU.js} +1 -1
  37. package/dist/assets/{speechSettingsQueries-F67f52-o.js → speechSettingsQueries-CmD0x6hE.js} +1 -1
  38. package/dist/assets/src-Doy5O-1o.css +2 -0
  39. package/dist/assets/{textarea-CAOC2ViF.js → textarea-BgYhsDvJ.js} +1 -1
  40. package/dist/assets/{useAppFontEffects-Cf-BIyAh.js → useAppFontEffects-DQop9zYG.js} +5 -5
  41. package/dist/assets/{useDesktopWindowControlsLayout-BgLopOdv.js → useDesktopWindowControlsLayout-DX2SytTz.js} +1 -1
  42. package/dist/assets/{useEffectiveDirectory-BljJHzlP.js → useEffectiveDirectory-4JvgTR23.js} +1 -1
  43. package/dist/assets/{useMobileNavigationStore-Bc3q1mPg.js → useMobileNavigationStore-DjdScMT1.js} +3 -3
  44. package/dist/assets/{useWorkerHighlightedLines-r5Bij0Em.js → useWorkerHighlightedLines-ClBia5wg.js} +1 -1
  45. package/dist/index.html +3 -3
  46. package/dist/mini-chat.html +3 -3
  47. package/dist/mobile.html +3 -3
  48. package/package.json +1 -1
  49. package/dist/assets/Icon-BCFeHDWx.js +0 -1
  50. package/dist/assets/ToolOutputDialog-DesCcdFD.css +0 -1
  51. package/dist/assets/ToolOutputDialog-Dt49fiUz.js +0 -10
  52. package/dist/assets/src-azLZheh6.css +0 -2
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Q as t,X as n,Y as r,Z as i,et as a,it as o,rt as s}from"./vendor-base-ui-CdzJ6My_.js";import{n as c}from"./vendor-react-BP2cRVqX.js";import{f as l,r as u}from"./button-CWSs9Baz.js";import{n as d}from"./Icon-BCFeHDWx.js";import{t as f}from"./multirun-CLywRk_h.js";var p=c(),m=e(o(),1),h=s(),g=e=>{let o=(0,p.c)(33),{open:s,onOpenChange:c,initialPrompt:g}=e,v=m.useId(),{t:y}=l(),b=_,x;o[0]===c?x=o[1]:(x=e=>{!e&&b()||c(e)},o[0]=c,o[1]=x);let S;o[2]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(a,{className:u(`fixed inset-0 z-50 bg-black/50 dark:bg-black/75`,`transition-opacity duration-150 ease-out`,`data-[starting-style]:opacity-0 data-[ending-style]:opacity-0`)}),o[2]=S):S=o[2];let C;o[3]===Symbol.for(`react.memo_cache_sentinel`)?(C=u(`relative pointer-events-auto`,`w-[90vw] max-w-[720px] h-[680px] max-h-[85vh]`,`flex flex-col rounded-xl border shadow-none overflow-hidden origin-center`,`bg-background`,`transition-all duration-150 ease-out`,`data-[starting-style]:opacity-0 data-[starting-style]:scale-[0.98]`,`data-[ending-style]:opacity-0 data-[ending-style]:scale-[0.98]`),o[3]=C):C=o[3];let w;o[4]===c?w=o[5]:(w=()=>c(!1),o[4]=c,o[5]=w);let T;o[6]===y?T=o[7]:(T=y(`multiRun.window.actions.closeAria`),o[6]=y,o[7]=T);let E;o[8]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,h.jsx)(d,{name:`close`,className:`h-5 w-5`}),o[8]=E):E=o[8];let D;o[9]!==w||o[10]!==T?(D=(0,h.jsx)(`div`,{className:`absolute right-0.5 top-0.5 z-50`,children:(0,h.jsx)(`button`,{type:`button`,onClick:w,"aria-label":T,className:`inline-flex h-7 w-7 items-center justify-center rounded-md p-0.5 text-muted-foreground hover:text-foreground hover:bg-interactive-hover/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:E})}),o[9]=w,o[10]=T,o[11]=D):D=o[11];let O;o[12]===y?O=o[13]:(O=y(`multiRun.window.description`),o[12]=y,o[13]=O);let k;o[14]!==v||o[15]!==O?(k=(0,h.jsx)(t,{id:v,className:`sr-only`,children:O}),o[14]=v,o[15]=O,o[16]=k):k=o[16];let A,j;o[17]===c?(A=o[18],j=o[19]):(A=()=>c(!1),j=()=>c(!1),o[17]=c,o[18]=A,o[19]=j);let M;o[20]!==g||o[21]!==A||o[22]!==j?(M=(0,h.jsx)(f,{initialPrompt:g,onCreated:A,onCancel:j,isWindowed:!0}),o[20]=g,o[21]=A,o[22]=j,o[23]=M):M=o[23];let N;o[24]!==v||o[25]!==M||o[26]!==D||o[27]!==k?(N=(0,h.jsxs)(n,{children:[S,(0,h.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center pointer-events-none`,children:(0,h.jsxs)(i,{"aria-describedby":v,className:C,children:[D,k,M]})})]}),o[24]=v,o[25]=M,o[26]=D,o[27]=k,o[28]=N):N=o[28];let P;return o[29]!==s||o[30]!==x||o[31]!==N?(P=(0,h.jsx)(r,{open:s,onOpenChange:x,children:N}),o[29]=s,o[30]=x,o[31]=N,o[32]=P):P=o[32],P};function _(){return typeof document>`u`?!1:!!document.querySelector(`[data-slot="dropdown-menu-content"][data-open], [data-slot="select-content"][data-open]`)}export{g as MultiRunWindow};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Q as t,X as n,Y as r,Z as i,et as a,it as o,rt as s}from"./vendor-base-ui-CdzJ6My_.js";import{n as c}from"./vendor-react-BP2cRVqX.js";import{f as l,r as u}from"./button-CWSs9Baz.js";import{n as d}from"./Icon-DVF98Tje.js";import{t as f}from"./multirun-CNDOrmMn.js";var p=c(),m=e(o(),1),h=s(),g=e=>{let o=(0,p.c)(33),{open:s,onOpenChange:c,initialPrompt:g}=e,v=m.useId(),{t:y}=l(),b=_,x;o[0]===c?x=o[1]:(x=e=>{!e&&b()||c(e)},o[0]=c,o[1]=x);let S;o[2]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(a,{className:u(`fixed inset-0 z-50 bg-black/50 dark:bg-black/75`,`transition-opacity duration-150 ease-out`,`data-[starting-style]:opacity-0 data-[ending-style]:opacity-0`)}),o[2]=S):S=o[2];let C;o[3]===Symbol.for(`react.memo_cache_sentinel`)?(C=u(`relative pointer-events-auto`,`w-[90vw] max-w-[720px] h-[680px] max-h-[85vh]`,`flex flex-col rounded-xl border shadow-none overflow-hidden origin-center`,`bg-background`,`transition-all duration-150 ease-out`,`data-[starting-style]:opacity-0 data-[starting-style]:scale-[0.98]`,`data-[ending-style]:opacity-0 data-[ending-style]:scale-[0.98]`),o[3]=C):C=o[3];let w;o[4]===c?w=o[5]:(w=()=>c(!1),o[4]=c,o[5]=w);let T;o[6]===y?T=o[7]:(T=y(`multiRun.window.actions.closeAria`),o[6]=y,o[7]=T);let E;o[8]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,h.jsx)(d,{name:`close`,className:`h-5 w-5`}),o[8]=E):E=o[8];let D;o[9]!==w||o[10]!==T?(D=(0,h.jsx)(`div`,{className:`absolute right-0.5 top-0.5 z-50`,children:(0,h.jsx)(`button`,{type:`button`,onClick:w,"aria-label":T,className:`inline-flex h-7 w-7 items-center justify-center rounded-md p-0.5 text-muted-foreground hover:text-foreground hover:bg-interactive-hover/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:E})}),o[9]=w,o[10]=T,o[11]=D):D=o[11];let O;o[12]===y?O=o[13]:(O=y(`multiRun.window.description`),o[12]=y,o[13]=O);let k;o[14]!==v||o[15]!==O?(k=(0,h.jsx)(t,{id:v,className:`sr-only`,children:O}),o[14]=v,o[15]=O,o[16]=k):k=o[16];let A,j;o[17]===c?(A=o[18],j=o[19]):(A=()=>c(!1),j=()=>c(!1),o[17]=c,o[18]=A,o[19]=j);let M;o[20]!==g||o[21]!==A||o[22]!==j?(M=(0,h.jsx)(f,{initialPrompt:g,onCreated:A,onCancel:j,isWindowed:!0}),o[20]=g,o[21]=A,o[22]=j,o[23]=M):M=o[23];let N;o[24]!==v||o[25]!==M||o[26]!==D||o[27]!==k?(N=(0,h.jsxs)(n,{children:[S,(0,h.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center pointer-events-none`,children:(0,h.jsxs)(i,{"aria-describedby":v,className:C,children:[D,k,M]})})]}),o[24]=v,o[25]=M,o[26]=D,o[27]=k,o[28]=N):N=o[28];let P;return o[29]!==s||o[30]!==x||o[31]!==N?(P=(0,h.jsx)(r,{open:s,onOpenChange:x,children:N}),o[29]=s,o[30]=x,o[31]=N,o[32]=P):P=o[32],P};function _(){return typeof document>`u`?!1:!!document.querySelector(`[data-slot="dropdown-menu-content"][data-open], [data-slot="select-content"][data-open]`)}export{g as MultiRunWindow};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./runtime-fetch-WgH0pROs.js";import{i as n,kn as r,on as i,xn as a,yn as o}from"./persistence-BKszKaoQ.js";import{_ as s,h as c,i as l,n as u,r as d}from"./desktopHosts-C0e7Nes2.js";import{it as f,rt as p}from"./vendor-base-ui-CdzJ6My_.js";import{n as m}from"./vendor-react-BP2cRVqX.js";import{d as h,f as g,r as _,t as v}from"./button-CWSs9Baz.js";import{n as y}from"./Icon-BCFeHDWx.js";import{o as b,r as x}from"./dialog-BMa16qrs.js";import{t as S}from"./input-CALwaZEB.js";var C=m(),w=e(f(),1),T=p();function E(e){switch(e){case`ok`:return null;case`auth`:return`onboarding.remoteConnection.probe.authMessage`;case`update-recommended`:return`onboarding.remoteConnection.probe.updateRecommendedMessage`;case`incompatible`:return`onboarding.remoteConnection.probe.incompatibleMessage`;case`wrong-service`:return`onboarding.remoteConnection.probe.wrongServiceMessage`;case`unreachable`:return`onboarding.remoteConnection.probe.unreachableMessage`;default:return null}}function D(e){return e===`wrong-service`||e===`unreachable`||e===`incompatible`}function O({onBack:e,showBackButton:t=!0,initialUrl:n=``,initialLabel:r=``,isRecoveryMode:o=!1,onConnect:c,onSwitchToLocal:f}){let{t:p}=g(),[m,h]=(0,w.useState)(n),[_,y]=(0,w.useState)(r),[b,x]=(0,w.useState)(`idle`),[C,O]=(0,w.useState)(null),[k,A]=(0,w.useState)(``),j=s(m),M=j?.persistedUrl??null,N=(0,w.useCallback)(e=>{h(e.target.value),x(`idle`),O(null),A(``)},[]),P=(0,w.useCallback)(e=>{y(e.target.value)},[]),F=(0,w.useCallback)(async()=>{if(M){x(`testing`),O(null),A(``);try{let e=await u(M);O(e),x(e.status===`ok`||e.status===`update-recommended`?`success`:`error`)}catch(e){A(e instanceof Error?e.message:p(`onboarding.remoteConnection.errors.connectionTestFailed`)),x(`error`)}}},[M,p]),I=(0,w.useCallback)(async()=>{if(!j)return;let e=j.persistedUrl;x(`testing`),O(null),A(``);try{let t=await u(e);if(O(t),D(t.status)){x(`error`);return}let n=await d(),r=_.trim()||e,o=n.hosts.find(t=>t.url===e),s=o?o.id:`host-${Date.now().toString(16)}`,f={id:s,label:r,url:e,apiUrl:e},p=o?n.hosts.map(e=>e.id===s?f:e):[...n.hosts,f];if(await l({hosts:p,defaultHostId:s,initialHostChoiceCompleted:!0}),c?.(),j.redeemUrl){window.location.assign(j.redeemUrl);return}i()&&await a()}catch(e){A(e instanceof Error?e.message:p(`onboarding.remoteConnection.errors.failedToSaveConnection`)),x(`error`)}},[j,_,c,p]),L=b===`testing`,R=M!==null&&!L,z=M!==null&&!L&&!D(C?.status??null),B=E(C?.status??null),V=C?.status===`ok`,H=C?.status===`update-recommended`,U=C?.status===`auth`,W=D(C?.status??null);return(0,T.jsx)(`div`,{className:`flex flex-col items-center justify-center h-full p-8`,children:(0,T.jsxs)(`div`,{className:`w-full max-w-md space-y-6`,children:[t&&(0,T.jsx)(`div`,{className:`flex items-center`,children:(0,T.jsx)(v,{variant:`ghost`,onClick:e,className:`p-0 text-muted-foreground hover:text-foreground`,children:p(`onboarding.common.actions.back`)})}),(0,T.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,T.jsx)(`h1`,{className:`typography-ui-header text-xl font-semibold text-foreground`,children:p(o?`onboarding.remoteConnection.titleRecovery`:`onboarding.remoteConnection.title`)}),(0,T.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:p(`onboarding.remoteConnection.description`)})]}),(0,T.jsxs)(`div`,{className:`space-y-4`,children:[(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsx)(`label`,{htmlFor:`remote-url`,className:`text-sm text-foreground`,children:p(`onboarding.remoteConnection.field.serverAddress`)}),(0,T.jsx)(S,{id:`remote-url`,type:`url`,value:m,onChange:N,placeholder:p(`onboarding.remoteConnection.field.serverAddressPlaceholder`),disabled:L})]}),(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsx)(`label`,{htmlFor:`remote-label`,className:`text-sm text-foreground`,children:p(`onboarding.remoteConnection.field.nameOptional`)}),(0,T.jsx)(S,{id:`remote-label`,type:`text`,value:_,onChange:P,placeholder:p(`onboarding.remoteConnection.field.namePlaceholder`),disabled:L})]})]}),C&&V&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-success)`,color:`var(--status-success)`},children:p(`onboarding.remoteConnection.status.connectedSuccessfully`,{latencyMs:C.latencyMs})}),C&&U&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-warning)`,color:`var(--status-warning)`},children:p(`onboarding.remoteConnection.status.authWarning`)}),C&&H&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-warning)`,color:`var(--status-warning)`},children:B?p(B):null}),C&&W&&(0,T.jsxs)(`div`,{className:`rounded-lg border p-3 text-sm space-y-3`,style:{borderColor:`var(--status-error)`,color:`var(--status-error)`},children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{className:`font-semibold mb-1`,children:p(`onboarding.remoteConnection.status.connectionFailed`)}),(0,T.jsx)(`div`,{className:`opacity-90`,children:B?p(B):null})]}),(0,T.jsx)(`div`,{className:`text-xs opacity-80`,children:C.status===`unreachable`?p(`onboarding.remoteConnection.status.suggestionsUnreachable`):p(`onboarding.remoteConnection.status.suggestionsWrongService`)})]}),k&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-error)`,color:`var(--status-error)`},children:k}),(0,T.jsxs)(`div`,{className:`flex gap-3`,children:[(0,T.jsx)(v,{variant:`outline`,onClick:F,disabled:!R,children:p(L?`onboarding.remoteConnection.actions.testing`:`onboarding.remoteConnection.actions.testConnection`)}),(0,T.jsx)(v,{onClick:I,disabled:!z,children:p(`onboarding.remoteConnection.actions.connectAndRestart`)})]}),W&&(0,T.jsxs)(`div`,{className:`flex flex-col gap-2 pt-2 border-t border-border`,children:[(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground text-center`,children:p(`onboarding.remoteConnection.actions.whatToDo`)}),(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[(0,T.jsx)(v,{variant:`outline`,size:`sm`,onClick:e,className:`flex-1`,children:p(`onboarding.remoteConnection.actions.chooseDifferentServer`)}),!o&&f&&(0,T.jsx)(v,{variant:`outline`,size:`sm`,onClick:f,className:`flex-1`,children:p(`onboarding.remoteConnection.actions.useLocalInstead`)})]})]})]})})}async function k(){let e=await t(`/health`);if(!e.ok)return!1;let n=await e.json().catch(()=>null);return n?.openCodeRunning===!0||n?.isOpenCodeReady===!0}async function A(){return(await t(`/api/opencode/retry`,{method:`POST`})).ok?k():!1}var j=`curl -fsSL https://opencode.ai/v2/install | bash`,M=`https://opencode.ai/docs`,N=2500,P=1e4;function F(e){let t=(0,C.c)(5),{onCopy:n,copyTitle:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,T.jsxs)(`code`,{className:`flex-1 text-left overflow-x-auto whitespace-nowrap`,children:[(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`curl`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` -fsSL `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-string)`},children:`https://opencode.ai/v2/install`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` | `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`bash`})]}),t[0]=i):i=t[0];let a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,T.jsx)(y,{name:`file-copy`,className:`h-4 w-4`}),t[1]=a):a=t[1];let o;return t[2]!==r||t[3]!==n?(o=(0,T.jsxs)(`div`,{className:`flex items-center justify-between gap-3 w-full`,children:[i,(0,T.jsx)(`button`,{onClick:n,className:`inline-flex items-center text-muted-foreground hover:text-foreground transition-colors shrink-0`,title:r,"aria-label":r,children:a})]}),t[2]=r,t[3]=n,t[4]=o):o=t[4],o}function I({onCliAvailable:e}){let{t:s}=g(),[c,u]=w.useState(!1),[f,p]=w.useState(!1),[m,b]=w.useState(!1),[x,C]=w.useState(!1),[E,D]=w.useState(``),[I,L]=w.useState(`unknown`),[R,z]=w.useState(`local`),[B,V]=w.useState(!1),[H,U]=w.useState(!1),[W,G]=w.useState(null),K=w.useRef(!1);w.useEffect(()=>{p(i())},[]),w.useEffect(()=>{if(typeof navigator>`u`){L(`unknown`);return}let e=navigator.userAgent||``;/Windows/i.test(e)?L(`windows`):/Macintosh|Mac OS X/i.test(e)?L(`macos`):/Linux/i.test(e)?L(`linux`):L(`unknown`)},[]),w.useEffect(()=>{let e=!1;return(async()=>{try{let n=await t(`/api/config/settings`,{method:`GET`,headers:{Accept:`application/json`}});if(!n.ok)return;let r=await n.json().catch(()=>null);if(!r||e)return;let i=typeof r.opencodeBinary==`string`?r.opencodeBinary.trim():``;i&&D(i)}catch{}})(),()=>{e=!0}},[]);let q=w.useCallback(async e=>{let t=e.target;t.closest(`.app-region-no-drag`)||t.closest(`button, a, input, select, textarea, code, summary, details`)||e.button===0&&f&&await r()},[f]),J=w.useCallback(async e=>{if(!f)return;let t=await d();await l({...t,...e===`local`?{defaultHostId:`local`}:{},initialHostChoiceCompleted:!0})},[f]),Y=w.useCallback(async()=>{if(!K.current){K.current=!0;try{f&&await J(`local`),await e?.()}catch(e){throw K.current=!1,e}}},[f,e,J]);w.useEffect(()=>{if(R!==`local`)return;let e=!1,t=null,n=0,r=async()=>{if(!e){try{let t=await k(),r=Date.now();if(!t&&r-n>=P&&(n=r,t=await A()),e)return;if(t){await Y();return}}catch{}e||(t=setTimeout(r,N))}};return t=setTimeout(r,N),()=>{e=!0,t&&clearTimeout(t)}},[R,Y]);let X=w.useCallback(async()=>{C(!0),G(null);try{let e=await k();e||=await A(),e?await Y():G(s(`onboarding.localSetup.errors.cliNotReady`))}catch{G(s(`onboarding.localSetup.errors.detectionFailed`))}finally{C(!1)}},[Y,s]),Z=w.useCallback(async()=>{if(!(typeof window>`u`)&&f)try{let e=await o();e.success&&e.path&&e.path.trim().length>0&&D(e.path.trim())}catch{}},[f]),Q=w.useCallback(async()=>{b(!0);try{if(await n({opencodeBinary:E.trim()}),f){await J(`local`),await a();return}await t(`/api/config/reload`,{method:`POST`})}finally{setTimeout(()=>b(!1),1e3)}},[f,E,J]),$=w.useCallback(async()=>{let e=await h(j);e.ok?(u(!0),setTimeout(()=>u(!1),2e3)):console.error(`Failed to copy:`,e.error)},[]),ee=M,te=I===`windows`?`C:\\Users\\you\\AppData\\Roaming\\npm\\opencode.cmd`:I===`linux`?`/home/you/.bun/bin/opencode`:`/Users/you/.bun/bin/opencode`,ne=!f||R===`local`;return(0,T.jsx)(`div`,{className:`app-region-drag h-full flex items-center justify-center bg-transparent p-8 cursor-default select-none overflow-y-auto`,onMouseDown:q,children:(0,T.jsxs)(`div`,{className:`w-full max-w-md space-y-7`,children:[(0,T.jsxs)(`header`,{className:`text-center space-y-1.5`,children:[(0,T.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight text-foreground`,children:s(`onboarding.chooser.title`)}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`onboarding.chooser.description`)})]}),f&&(0,T.jsxs)(`div`,{className:`app-region-no-drag flex gap-1.5`,children:[(0,T.jsx)(`button`,{type:`button`,className:_(`flex-1 px-4 py-2 rounded-lg border transition-colors text-sm`,R===`local`?`border-[var(--interactive-selection)] text-foreground bg-[var(--interactive-selection)]/10`:`border-border text-muted-foreground hover:text-foreground hover:border-muted-foreground`),onClick:()=>z(`local`),children:s(`onboarding.chooser.tabs.localInstall`)}),(0,T.jsx)(`button`,{type:`button`,className:_(`flex-1 px-4 py-2 rounded-lg border transition-colors text-sm`,R===`remote`?`border-[var(--interactive-selection)] text-foreground bg-[var(--interactive-selection)]/10`:`border-border text-muted-foreground hover:text-foreground hover:border-muted-foreground`),onClick:()=>z(`remote`),children:s(`onboarding.chooser.tabs.connectRemote`)})]}),f&&R===`remote`?(0,T.jsx)(`div`,{className:`app-region-no-drag`,children:(0,T.jsx)(O,{onBack:()=>z(`local`),showBackButton:!1,onSwitchToLocal:()=>z(`local`)})}):null,ne&&(0,T.jsxs)(`div`,{className:`space-y-4`,children:[I===`windows`&&(0,T.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/50 p-4`,children:[(0,T.jsx)(`div`,{className:`text-sm text-foreground`,children:s(`onboarding.localSetup.windows.title`)}),(0,T.jsxs)(`ol`,{className:`mt-2 list-decimal space-y-1 pl-5 text-sm text-muted-foreground`,children:[(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.windows.stepRunInstallInWsl`)}),(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.windows.stepSetBinaryPath`)})]})]}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground text-center leading-relaxed`,children:s(`onboarding.localSetup.intro`)}),(0,T.jsx)(`div`,{className:`app-region-no-drag rounded-lg border border-border bg-background/60 backdrop-blur-sm px-4 py-3 font-mono text-sm`,children:c?(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,style:{color:`var(--status-success)`},children:[(0,T.jsx)(y,{name:`check`,className:`h-4 w-4`}),s(`onboarding.common.status.copiedToClipboard`)]}):(0,T.jsx)(F,{onCopy:$,copyTitle:s(`onboarding.common.copyToClipboard`)})}),(0,T.jsxs)(`div`,{className:`app-region-no-drag flex items-center justify-between`,children:[(0,T.jsxs)(`a`,{href:ee,target:`_blank`,rel:`noopener noreferrer`,className:`text-xs text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1`,children:[s(I===`windows`?`onboarding.localSetup.docs.windows`:`onboarding.localSetup.docs.default`),(0,T.jsx)(y,{name:`external-link`,className:`h-3 w-3`})]}),(0,T.jsx)(`button`,{type:`button`,onClick:X,disabled:x,className:`text-xs text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50`,children:s(x?`onboarding.localSetup.actions.checking`:`onboarding.localSetup.actions.checkNow`)})]}),W&&(0,T.jsx)(`p`,{role:`alert`,className:`text-center text-xs text-[var(--status-error-foreground)]`,children:W}),(0,T.jsxs)(`div`,{className:`rounded-lg border px-4 py-3 flex items-center gap-3`,style:{borderColor:`color-mix(in srgb, var(--primary-base) 20%, transparent)`,backgroundColor:`color-mix(in srgb, var(--primary-base) 6%, transparent)`},role:`status`,"aria-live":`polite`,children:[(0,T.jsxs)(`span`,{className:`relative inline-flex h-2.5 w-2.5 shrink-0`,"aria-hidden":!0,children:[(0,T.jsx)(`span`,{className:`absolute inset-0 rounded-full`,style:{backgroundColor:`var(--primary-base)`,animation:`pulse-opacity 1.6s ease-in-out infinite`}}),(0,T.jsx)(`span`,{className:`absolute inset-[-4px] rounded-full`,style:{backgroundColor:`var(--primary-base)`,animation:`pulse-opacity-dim 1.6s ease-in-out infinite`,opacity:0}})]}),(0,T.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,T.jsx)(`div`,{className:`text-sm text-foreground leading-tight`,children:s(`onboarding.localSetup.status.watching`)}),(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground leading-tight mt-0.5`,children:s(`onboarding.localSetup.status.autoContinue`)})]})]}),(0,T.jsxs)(`details`,{className:`app-region-no-drag group rounded-lg border border-border/60 px-4 open:bg-background/40 transition-colors`,open:B,onToggle:e=>V(e.currentTarget.open),children:[(0,T.jsxs)(`summary`,{className:`flex items-center justify-between cursor-pointer py-2.5 text-sm text-muted-foreground hover:text-foreground transition-colors list-none [&::-webkit-details-marker]:hidden`,children:[(0,T.jsx)(`span`,{children:s(`onboarding.localSetup.advanced.title`)}),(0,T.jsx)(y,{name:`arrow-down-s`,className:`h-4 w-4 transition-transform group-open:rotate-180`})]}),(0,T.jsxs)(`div`,{className:`pb-4 space-y-2`,children:[(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[(0,T.jsx)(S,{value:E,onChange:e=>D(e.target.value),placeholder:te,disabled:m,className:`flex-1 font-mono text-xs`}),(0,T.jsx)(v,{type:`button`,variant:`secondary`,size:`sm`,onClick:Z,disabled:m||!f,children:s(`onboarding.localSetup.actions.browse`)}),(0,T.jsx)(v,{type:`button`,size:`sm`,onClick:Q,disabled:m||!E.trim(),children:s(`onboarding.localSetup.actions.apply`)})]}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground/70`,children:s(`onboarding.localSetup.helper.saveAndReload`)})]})]}),(0,T.jsxs)(`details`,{className:`app-region-no-drag group rounded-lg border border-border/60 px-4 open:bg-background/40 transition-colors`,open:H,onToggle:e=>U(e.currentTarget.open),children:[(0,T.jsxs)(`summary`,{className:`flex items-center justify-between cursor-pointer py-2.5 text-sm text-muted-foreground hover:text-foreground transition-colors list-none [&::-webkit-details-marker]:hidden`,children:[(0,T.jsx)(`span`,{children:s(`onboarding.localSetup.troubleshoot.title`)}),(0,T.jsx)(y,{name:`arrow-down-s`,className:`h-4 w-4 transition-transform group-open:rotate-180`})]}),(0,T.jsx)(`ul`,{className:`pb-4 space-y-1.5 text-xs text-muted-foreground list-disc pl-4`,children:I===`windows`?(0,T.jsx)(T.Fragment,{children:(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.windows.hintDetectionFailed`)})}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.hint.ensurePath`)}),(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.hint.setEnv`)}),(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.hint.missingRuntime`)})]})})]})]})]})})}var L=`curl -fsSL https://opencode.ai/v2/install | bash`,R=`https://opencode.ai/docs`;function z(e){let t=(0,C.c)(5),{onCopy:n,copyTitle:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,T.jsxs)(`code`,{children:[(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`curl`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` -fsSL `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-string)`},children:`https://opencode.ai/v2/install`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` | `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`bash`})]}),t[0]=i):i=t[0];let a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,T.jsx)(y,{name:`file-copy`,className:`h-4 w-4`}),t[1]=a):a=t[1];let o;return t[2]!==r||t[3]!==n?(o=(0,T.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[i,(0,T.jsx)(`button`,{onClick:n,className:`inline-flex items-center text-muted-foreground hover:text-foreground transition-colors`,title:r,children:a})]}),t[2]=r,t[3]=n,t[4]=o):o=t[4],o}var B=3e4;function V({onBack:e,onCliAvailable:s,isFromRecovery:c=!1,onSwitchToRemote:l}){let{t:u}=g(),[d,f]=w.useState(!1),[p,m]=w.useState(!1),[_,b]=w.useState(!1),[x,C]=w.useState(!1),[E,D]=w.useState(!1),[O,j]=w.useState(null),[M,N]=w.useState(``),[P,F]=w.useState(`unknown`);w.useEffect(()=>{let e=setTimeout(()=>m(!0),B);return()=>clearTimeout(e)},[]),w.useEffect(()=>{b(i())},[]),w.useEffect(()=>{if(typeof navigator>`u`){F(`unknown`);return}let e=navigator.userAgent||``;if(/Windows/i.test(e)){F(`windows`);return}if(/Macintosh|Mac OS X/i.test(e)){F(`macos`);return}if(/Linux/i.test(e)){F(`linux`);return}F(`unknown`)},[]),w.useEffect(()=>{let e=!1;return(async()=>{try{let n=await t(`/api/config/settings`,{method:`GET`,headers:{Accept:`application/json`}});if(!n.ok)return;let r=await n.json().catch(()=>null);if(!r||e)return;let i=typeof r.opencodeBinary==`string`?r.opencodeBinary.trim():``;i&&N(i)}catch{}})(),()=>{e=!0}},[]);let I=w.useCallback(async e=>{e.target.closest(`button, a, input, select, textarea, code`)||e.button===0&&_&&await r()},[_]),V=w.useCallback(async()=>{if(!(typeof window>`u`)&&_)try{let e=await o();e.success&&e.path&&e.path.trim().length>0&&N(e.path.trim())}catch{}},[_]),H=w.useCallback(async()=>{C(!0);try{if(await n({opencodeBinary:M.trim()}),_){await a();return}await t(`/api/config/reload`,{method:`POST`})}finally{setTimeout(()=>C(!1),1e3)}},[_,M]),U=w.useCallback(async()=>{let e=await h(L);e.ok?(f(!0),setTimeout(()=>f(!1),2e3)):console.error(`Failed to copy:`,e.error)},[]),W=w.useCallback(async()=>{D(!0),j(null);try{let e=await k();e||=await A(),e?s?.():j(u(`onboarding.localSetup.errors.cliNotReady`))}catch(e){j(e instanceof Error?e.message:u(`onboarding.localSetup.errors.detectionFailed`))}finally{D(!1)}},[s,u]),G=R,K=P===`windows`?`C:\\Users\\you\\AppData\\Roaming\\npm\\opencode.cmd`:P===`linux`?`/home/you/.bun/bin/opencode`:`/Users/you/.bun/bin/opencode`;return(0,T.jsxs)(`div`,{className:`h-full flex items-center justify-center bg-transparent p-8 relative cursor-default select-none`,onMouseDown:I,children:[(0,T.jsxs)(`div`,{className:`w-full max-w-lg space-y-4 text-center`,children:[(0,T.jsx)(`div`,{className:`flex items-center`,children:(0,T.jsx)(v,{variant:`ghost`,onClick:e,className:`p-0 text-muted-foreground hover:text-foreground`,children:u(`onboarding.common.actions.back`)})}),(0,T.jsxs)(`div`,{className:`space-y-4`,children:[(0,T.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight text-foreground`,children:u(`onboarding.localSetup.title`)}),(0,T.jsx)(`p`,{className:`text-muted-foreground`,children:u(`onboarding.localSetup.description`)})]}),P===`windows`&&(0,T.jsxs)(`div`,{className:`mx-auto max-w-2xl rounded-lg border border-border bg-background/50 p-4 text-left`,children:[(0,T.jsx)(`div`,{className:`text-sm text-foreground`,children:u(`onboarding.localSetup.windows.title`)}),(0,T.jsxs)(`ol`,{className:`mt-2 list-decimal space-y-1 pl-5 text-sm text-muted-foreground`,children:[(0,T.jsx)(`li`,{children:u(`onboarding.localSetup.windows.stepRunInstallInWsl`)}),(0,T.jsx)(`li`,{children:u(`onboarding.localSetup.windows.stepSetBinaryPath`)})]})]}),(0,T.jsx)(`div`,{className:`flex justify-center`,children:(0,T.jsx)(`div`,{className:`bg-background/60 backdrop-blur-sm border border-border rounded-lg px-5 py-3 font-mono text-sm w-fit`,children:d?(0,T.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,style:{color:`var(--status-success)`},children:[(0,T.jsx)(y,{name:`check`,className:`h-4 w-4`}),u(`onboarding.common.status.copiedToClipboard`)]}):(0,T.jsx)(z,{onCopy:U,copyTitle:u(`onboarding.common.copyToClipboard`)})})}),(0,T.jsxs)(`a`,{href:G,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1 justify-center`,children:[u(P===`windows`?`onboarding.localSetup.docs.windows`:`onboarding.localSetup.docs.default`),(0,T.jsx)(y,{name:`external-link`,className:`h-3 w-3`})]}),O&&(0,T.jsx)(`div`,{className:`mx-auto max-w-md rounded-lg border border-destructive/50 bg-destructive/10 p-3 text-sm text-destructive`,children:O}),(0,T.jsxs)(`div`,{className:`space-y-3`,children:[(0,T.jsx)(v,{type:`button`,onClick:W,disabled:E,className:`w-full max-w-xs`,size:`lg`,children:u(E?`onboarding.localSetup.actions.checking`:`onboarding.localSetup.actions.checkAndContinue`)}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u(`onboarding.localSetup.helper.checkAndContinue`)})]}),(0,T.jsx)(`div`,{className:`mx-auto w-full max-w-xl pt-4`,children:(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:u(`onboarding.localSetup.field.alreadyInstalled`)}),(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[(0,T.jsx)(S,{value:M,onChange:e=>N(e.target.value),placeholder:K,disabled:x,className:`flex-1 font-mono text-xs`}),(0,T.jsx)(v,{type:`button`,variant:`secondary`,onClick:V,disabled:x||!_,children:u(`onboarding.localSetup.actions.browse`)}),(0,T.jsx)(v,{type:`button`,onClick:H,disabled:x,children:u(`onboarding.localSetup.actions.apply`)})]}),(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground/70`,children:u(`onboarding.localSetup.helper.saveAndReload`)})]})}),c&&l&&(0,T.jsxs)(`div`,{className:`text-center pt-4`,children:[(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground mb-2`,children:u(`onboarding.localSetup.remotePreference`)}),(0,T.jsx)(v,{variant:`link`,onClick:l,children:u(`onboarding.localSetup.actions.connectRemoteServer`)})]})]}),p&&(0,T.jsx)(`div`,{className:`absolute bottom-8 left-0 right-0 text-center space-y-1`,children:P===`windows`?(0,T.jsx)(T.Fragment,{children:(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.windows.hintDetectionFailed`)})}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.hint.ensurePath`)}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.hint.setEnv`)}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.hint.missingRuntime`)})]})})]})}function H(e,t){if(e?.trim())return c(e.trim());if(t)return c(t)}function U(e,t,n){switch(e){case`local-unavailable`:return{title:`Local OpenCode Unavailable`,description:`OpenCode CLI could not be started or is not installed. Install OpenCode or connect to a remote server instead.`,titleKey:`onboarding.desktopRecovery.localUnavailable.title`,descriptionKey:`onboarding.desktopRecovery.localUnavailable.description`,iconKey:`local`,showRetry:!0,retryLabel:`Retry Local`,retryLabelKey:`onboarding.desktopRecovery.localUnavailable.retry`,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Set Up Local`,useLocalLabelKey:`onboarding.desktopRecovery.localUnavailable.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`};case`remote-missing`:return{title:`No Default Connection`,description:`Your saved default connection could not be found. Choose how you want to connect.`,titleKey:`onboarding.desktopRecovery.noDefaultConnection.title`,descriptionKey:`onboarding.desktopRecovery.noDefaultConnection.description`,iconKey:`local`,showRetry:!1,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`};case`remote-unreachable`:{let e=H(t,n);return{title:`Remote Server Unreachable`,description:`Could not connect to "${e||`the remote server`}". Check your network connection and verify the server address.`,titleKey:`onboarding.desktopRecovery.remoteUnreachable.title`,descriptionKey:`onboarding.desktopRecovery.remoteUnreachable.description`,descriptionParams:e?{host:e}:void 0,iconKey:`remote`,showRetry:!0,retryLabel:`Retry Connection`,retryLabelKey:`onboarding.desktopRecovery.remoteUnreachable.retry`,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`}}case`remote-wrong-service`:{let e=H(t,n);return{title:`Incompatible Server`,description:`The server at "${e||`unknown`}" is not running OpenChamberY. Verify the address points to an OpenChamberY server.`,titleKey:`onboarding.desktopRecovery.incompatibleServer.title`,descriptionKey:`onboarding.desktopRecovery.incompatibleServer.description`,descriptionParams:e?{host:e}:void 0,iconKey:`remote`,showRetry:!1,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`}}case`remote-incompatible`:{let e=H(t,n);return{title:`Server Update Required`,description:`The OpenChamberY server at "${e||`unknown`}" is not compatible with this app version. Update OpenChamberY on the server, then try again.`,titleKey:`onboarding.desktopRecovery.remoteIncompatible.title`,descriptionKey:`onboarding.desktopRecovery.remoteIncompatible.description`,descriptionParams:e?{host:e}:void 0,iconKey:`remote`,showRetry:!0,retryLabel:`Retry Connection`,retryLabelKey:`onboarding.desktopRecovery.remoteUnreachable.retry`,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`}}case`missing-default-host`:return{title:`No Default Connection`,description:`Your saved default connection could not be found. Choose how you want to connect.`,titleKey:`onboarding.desktopRecovery.noDefaultConnection.title`,descriptionKey:`onboarding.desktopRecovery.noDefaultConnection.description`,iconKey:`local`,showRetry:!1,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`};default:throw Error(`Unknown recovery variant: ${e}`)}}function W(e){switch(e){case`local`:return(0,T.jsx)(y,{name:`macbook`,className:`h-8 w-8`});case`remote`:return(0,T.jsx)(y,{name:`server`,className:`h-8 w-8`})}}function G({variant:e,hostLabel:t,hostUrl:n,onRetry:r,onUseLocal:i,onUseRemote:a,isRetrying:o=!1}){let{t:s}=g(),l=U(e,t,n),u=l.retryLabelKey??`onboarding.desktopRecovery.actions.retryConnection`,d=w.useMemo(()=>{if(l.descriptionParams?.host)return l.descriptionParams;if(e===`remote-unreachable`)return{host:s(`onboarding.desktopRecovery.placeholders.remoteServer`)};if(e===`remote-wrong-service`||e===`remote-incompatible`)return{host:s(`onboarding.desktopRecovery.placeholders.unknownServer`)}},[l.descriptionParams,s,e]);return(0,T.jsx)(`div`,{className:`flex flex-col items-center justify-center h-full p-8`,children:(0,T.jsxs)(`div`,{className:`w-full max-w-md space-y-6`,children:[(0,T.jsxs)(`div`,{className:`flex flex-col items-center space-y-3 text-center`,children:[(0,T.jsx)(`div`,{className:`p-3 rounded-full`,style:{backgroundColor:`var(--status-warning)`,opacity:.15},children:(0,T.jsx)(`div`,{style:{color:`var(--status-warning)`},children:W(l.iconKey)})}),(0,T.jsx)(`h1`,{className:`typography-ui-header text-xl font-semibold text-foreground`,children:s(l.titleKey)}),(0,T.jsx)(`p`,{className:`text-muted-foreground text-sm max-w-sm`,children:s(l.descriptionKey,d)})]}),n&&(e===`remote-unreachable`||e===`remote-wrong-service`||e===`remote-incompatible`)&&(0,T.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/50 p-3`,children:[(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,children:s(`onboarding.remoteConnection.field.serverAddress`)}),(0,T.jsx)(`div`,{className:`font-mono text-sm text-foreground truncate`,children:c(n)})]}),(0,T.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[l.showRetry&&r&&(0,T.jsxs)(v,{onClick:r,disabled:o,className:`w-full`,children:[(0,T.jsx)(y,{name:`refresh`,className:_(`h-4 w-4`,o&&`animate-spin`)}),s(o?`onboarding.desktopRecovery.actions.retrying`:u)]}),(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[l.showUseLocal&&i&&(0,T.jsxs)(v,{variant:`outline`,onClick:i,disabled:o,className:`flex-1`,children:[(0,T.jsx)(y,{name:`macbook`,className:`h-4 w-4`}),s(l.useLocalLabelKey)]}),l.showUseRemote&&a&&(0,T.jsxs)(v,{variant:`outline`,onClick:a,disabled:o,className:`flex-1`,children:[(0,T.jsx)(y,{name:`server`,className:`h-4 w-4`}),s(l.useRemoteLabelKey)]})]})]})]})})}function K(e,t){if(t===`use-remote`)return{kind:`remote-form`};switch(e){case`local-unavailable`:return{kind:`local-setup`};case`remote-unreachable`:case`remote-incompatible`:case`remote-wrong-service`:case`remote-missing`:case`missing-default-host`:return{kind:`switch-default-to-local`};default:throw Error(`Unhandled RecoveryVariant: ${e}`)}}function q(e){let n=(0,C.c)(27),{variant:r,hostUrl:o,hostLabel:s,onRetry:c,onChooseRemote:l,showRemoteForm:u,onCloseRemoteForm:d,onSwitchToLocalFromRemote:f,onEnterLocalSetup:p,isRetrying:m}=e,h=u!==void 0&&u,g=m!==void 0&&m,_=J,v;n[0]===c?v=n[1]:(v=async()=>{if(i()){await a();return}await t(`/api/config/reload`,{method:`POST`}),c?.()},n[0]=c,n[1]=v);let y=v,b;n[2]!==p||n[3]!==r?(b=async()=>{if(K(r,`use-local`).kind===`local-setup`){p?.();return}if(await _(`local`),i()){await a();return}window.location.reload()},n[2]=p,n[3]=r,n[4]=b):b=n[4];let x=b,S;n[5]!==l||n[6]!==r?(S=()=>{K(r,`use-remote`).kind===`remote-form`&&l?.()},n[5]=l,n[6]=r,n[7]=S):S=n[7];let w=S;if(h){let e=r===`remote-wrong-service`?``:o||``,t=r===`remote-wrong-service`?``:s||``,c;n[8]!==l||n[9]!==d?(c=d||(()=>l?.()),n[8]=l,n[9]=d,n[10]=c):c=n[10];let u;n[11]!==p||n[12]!==f?(u=f||(()=>{_(`local`).then(()=>{i()?a():p?.()})}),n[11]=p,n[12]=f,n[13]=u):u=n[13];let m;return n[14]!==t||n[15]!==e||n[16]!==c||n[17]!==u?(m=(0,T.jsx)(O,{onBack:c,initialUrl:e,initialLabel:t,isRecoveryMode:!0,onSwitchToLocal:u}),n[14]=t,n[15]=e,n[16]=c,n[17]=u,n[18]=m):m=n[18],m}let E;return n[19]!==y||n[20]!==x||n[21]!==w||n[22]!==s||n[23]!==o||n[24]!==g||n[25]!==r?(E=(0,T.jsx)(G,{variant:r,hostLabel:s,hostUrl:o,onRetry:y,onUseLocal:x,onUseRemote:w,isRetrying:g}),n[19]=y,n[20]=x,n[21]=w,n[22]=s,n[23]=o,n[24]=g,n[25]=r,n[26]=E):E=n[26],E}async function J(e){if(!i())return;let t=await d();await l({...t,...e===`local`?{defaultHostId:`local`}:{},initialHostChoiceCompleted:!0})}function Y(e){let t=(0,C.c)(47),{status:n,statusError:r,onContinueInBackground:i}=e,{t:a,locale:o}=g(),s=n?.total??0,c=n?.completed??0,l=r||n?.phase===`partial`||n?.phase===`error`,u=s>0?Math.min(1,Math.max(0,c/s)):null,d;t[0]===a?d=t[1]:(d=a(`onboarding.index.title`),t[0]=a,t[1]=d);let f=Math.max(s,1),p=s>0?c:void 0,m;t[2]!==c||t[3]!==a||t[4]!==s?(m=a(`commandPalette.index.progress`,{completed:c,total:s}),t[2]=c,t[3]=a,t[4]=s,t[5]=m):m=t[5];let h=`absolute inset-0 size-full -rotate-90 ${u===null&&!l?`motion-safe:animate-spin motion-safe:[animation-duration:3s]`:``}`,_;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,T.jsx)(`circle`,{cx:`96`,cy:`96`,r:`84`,stroke:`currentColor`,strokeWidth:`1.5`,className:`text-border`}),t[6]=_):_=t[6];let y=100-(u??.22)*100,S;t[7]===y?S=t[8]:(S=(0,T.jsx)(`circle`,{cx:`96`,cy:`96`,r:`84`,pathLength:`100`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:`100`,strokeDashoffset:y,className:`text-foreground/80 motion-safe:transition-[stroke-dashoffset] motion-safe:duration-700`}),t[7]=y,t[8]=S);let w;t[9]===u?w=t[10]:(w=u!==null&&u>0&&u<1&&(0,T.jsx)(`g`,{style:{transform:`rotate(${u*360}deg)`,transformOrigin:`96px 96px`},className:`motion-safe:transition-transform motion-safe:duration-700`,children:(0,T.jsx)(`circle`,{cx:`180`,cy:`96`,r:`3`,fill:`currentColor`,className:`text-foreground`})}),t[9]=u,t[10]=w);let E;t[11]!==h||t[12]!==S||t[13]!==w?(E=(0,T.jsxs)(`svg`,{viewBox:`0 0 192 192`,fill:`none`,"aria-hidden":`true`,className:h,children:[_,S,w]}),t[11]=h,t[12]=S,t[13]=w,t[14]=E):E=t[14];let D;t[15]!==o||t[16]!==u?(D=u!==null&&(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`text-[2.5rem] font-light tabular-nums tracking-[-0.05em] text-foreground`,children:new Intl.NumberFormat(o,{style:`percent`,maximumFractionDigits:0}).format(u)}),t[15]=o,t[16]=u,t[17]=D):D=t[17];let O;t[18]!==d||t[19]!==E||t[20]!==D||t[21]!==f||t[22]!==p||t[23]!==m?(O=(0,T.jsxs)(`div`,{role:`progressbar`,"aria-label":d,"aria-valuemin":0,"aria-valuemax":f,"aria-valuenow":p,"aria-valuetext":m,className:`relative mb-9 flex size-40 items-center justify-center sm:size-44`,children:[E,D]}),t[18]=d,t[19]=E,t[20]=D,t[21]=f,t[22]=p,t[23]=m,t[24]=O):O=t[24];let k;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(k={fontSize:`1.0625rem`,fontWeight:450},t[25]=k):k=t[25];let A;t[26]===a?A=t[27]:(A=a(`onboarding.index.title`),t[26]=a,t[27]=A);let j;t[28]===A?j=t[29]:(j=(0,T.jsx)(b,{className:`tracking-tight`,style:k,children:A}),t[28]=A,t[29]=j);let M;t[30]!==l||t[31]!==a?(M=a(l?`onboarding.index.retrying`:`onboarding.index.description`),t[30]=l,t[31]=a,t[32]=M):M=t[32];let N;t[33]===M?N=t[34]:(N=(0,T.jsx)(x,{className:`text-xs text-muted-foreground`,children:M}),t[33]=M,t[34]=N);let P;t[35]!==j||t[36]!==N?(P=(0,T.jsxs)(`header`,{className:`space-y-2.5`,role:`status`,"aria-live":`polite`,children:[j,N]}),t[35]=j,t[36]=N,t[37]=P):P=t[37];let F;t[38]===a?F=t[39]:(F=a(`onboarding.index.background`),t[38]=a,t[39]=F);let I;t[40]!==i||t[41]!==F?(I=(0,T.jsx)(v,{variant:`ghost`,size:`sm`,className:`mt-8 text-xs font-normal text-muted-foreground`,onClick:i,children:F}),t[40]=i,t[41]=F,t[42]=I):I=t[42];let L;return t[43]!==O||t[44]!==P||t[45]!==I?(L=(0,T.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,"data-content-index-onboarding":!0,children:(0,T.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center text-center`,children:[O,P,I]})}),t[43]=O,t[44]=P,t[45]=I,t[46]=L):L=t[46],L}function X(e){let t=(0,C.c)(30),{onBack:n,onCliAvailable:r,mode:i,recoveryVariant:a,recoveryHostUrl:o,recoveryHostLabel:s,onEnterLocalSetup:c,indexStatus:l,indexStatusError:u,onContinueInBackground:d}=e,f=i===void 0?`first-launch`:i,p=a===void 0?`missing-default-host`:a,[m,h]=w.useState(!1),[g,_]=w.useState(!1),v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>{_(!1),h(!1)},t[0]=v):v=t[0];let y;t[1]!==f||t[2]!==s||t[3]!==o||t[4]!==p?(y=[f,p,o,s],t[1]=f,t[2]=s,t[3]=o,t[4]=p,t[5]=y):y=t[5],w.useEffect(v,y);let b=g?`local-setup`:f;if(b===`content-index`){let e;return t[6]!==l||t[7]!==u||t[8]!==d?(e=(0,T.jsx)(Y,{status:l,statusError:u,onContinueInBackground:d}),t[6]=l,t[7]=u,t[8]=d,t[9]=e):e=t[9],e}if(b===`recovery`){let e,n;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>h(!1),n=()=>{h(!1),_(!0)},t[10]=e,t[11]=n):(e=t[10],n=t[11]);let r;t[12]===c?r=t[13]:(r=()=>{_(!0),c?.()},t[12]=c,t[13]=r);let i;return t[14]!==s||t[15]!==o||t[16]!==p||t[17]!==m||t[18]!==r?(i=(0,T.jsx)(q,{variant:p,hostUrl:o,hostLabel:s,showRemoteForm:m,onCloseRemoteForm:e,onSwitchToLocalFromRemote:n,onEnterLocalSetup:r}),t[14]=s,t[15]=o,t[16]=p,t[17]=m,t[18]=r,t[19]=i):i=t[19],i}if(b===`local-setup`){let e;t[20]!==n||t[21]!==g?(e=()=>{g?_(!1):n?.()},t[20]=n,t[21]=g,t[22]=e):e=t[22];let i;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>h(!0),t[23]=i):i=t[23];let a;return t[24]!==r||t[25]!==g||t[26]!==e?(a=(0,T.jsx)(V,{onBack:e,onCliAvailable:r,isFromRecovery:g,onSwitchToRemote:i}),t[24]=r,t[25]=g,t[26]=e,t[27]=a):a=t[27],a}let x;return t[28]===r?x=t[29]:(x=(0,T.jsx)(I,{onCliAvailable:r}),t[28]=r,t[29]=x),x}export{X as OnboardingScreen};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t}from"./runtime-fetch-WgH0pROs.js";import{i as n,kn as r,on as i,xn as a,yn as o}from"./persistence-BKszKaoQ.js";import{_ as s,h as c,i as l,n as u,r as d}from"./desktopHosts-C0e7Nes2.js";import{it as f,rt as p}from"./vendor-base-ui-CdzJ6My_.js";import{n as m}from"./vendor-react-BP2cRVqX.js";import{d as h,f as g,r as _,t as v}from"./button-CWSs9Baz.js";import{n as y}from"./Icon-DVF98Tje.js";import{o as b,r as x}from"./dialog-l3LcLl96.js";import{t as S}from"./input-CALwaZEB.js";var C=m(),w=e(f(),1),T=p();function E(e){switch(e){case`ok`:return null;case`auth`:return`onboarding.remoteConnection.probe.authMessage`;case`update-recommended`:return`onboarding.remoteConnection.probe.updateRecommendedMessage`;case`incompatible`:return`onboarding.remoteConnection.probe.incompatibleMessage`;case`wrong-service`:return`onboarding.remoteConnection.probe.wrongServiceMessage`;case`unreachable`:return`onboarding.remoteConnection.probe.unreachableMessage`;default:return null}}function D(e){return e===`wrong-service`||e===`unreachable`||e===`incompatible`}function O({onBack:e,showBackButton:t=!0,initialUrl:n=``,initialLabel:r=``,isRecoveryMode:o=!1,onConnect:c,onSwitchToLocal:f}){let{t:p}=g(),[m,h]=(0,w.useState)(n),[_,y]=(0,w.useState)(r),[b,x]=(0,w.useState)(`idle`),[C,O]=(0,w.useState)(null),[k,A]=(0,w.useState)(``),j=s(m),M=j?.persistedUrl??null,N=(0,w.useCallback)(e=>{h(e.target.value),x(`idle`),O(null),A(``)},[]),P=(0,w.useCallback)(e=>{y(e.target.value)},[]),F=(0,w.useCallback)(async()=>{if(M){x(`testing`),O(null),A(``);try{let e=await u(M);O(e),x(e.status===`ok`||e.status===`update-recommended`?`success`:`error`)}catch(e){A(e instanceof Error?e.message:p(`onboarding.remoteConnection.errors.connectionTestFailed`)),x(`error`)}}},[M,p]),I=(0,w.useCallback)(async()=>{if(!j)return;let e=j.persistedUrl;x(`testing`),O(null),A(``);try{let t=await u(e);if(O(t),D(t.status)){x(`error`);return}let n=await d(),r=_.trim()||e,o=n.hosts.find(t=>t.url===e),s=o?o.id:`host-${Date.now().toString(16)}`,f={id:s,label:r,url:e,apiUrl:e},p=o?n.hosts.map(e=>e.id===s?f:e):[...n.hosts,f];if(await l({hosts:p,defaultHostId:s,initialHostChoiceCompleted:!0}),c?.(),j.redeemUrl){window.location.assign(j.redeemUrl);return}i()&&await a()}catch(e){A(e instanceof Error?e.message:p(`onboarding.remoteConnection.errors.failedToSaveConnection`)),x(`error`)}},[j,_,c,p]),L=b===`testing`,R=M!==null&&!L,z=M!==null&&!L&&!D(C?.status??null),B=E(C?.status??null),V=C?.status===`ok`,H=C?.status===`update-recommended`,U=C?.status===`auth`,W=D(C?.status??null);return(0,T.jsx)(`div`,{className:`flex flex-col items-center justify-center h-full p-8`,children:(0,T.jsxs)(`div`,{className:`w-full max-w-md space-y-6`,children:[t&&(0,T.jsx)(`div`,{className:`flex items-center`,children:(0,T.jsx)(v,{variant:`ghost`,onClick:e,className:`p-0 text-muted-foreground hover:text-foreground`,children:p(`onboarding.common.actions.back`)})}),(0,T.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,T.jsx)(`h1`,{className:`typography-ui-header text-xl font-semibold text-foreground`,children:p(o?`onboarding.remoteConnection.titleRecovery`:`onboarding.remoteConnection.title`)}),(0,T.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:p(`onboarding.remoteConnection.description`)})]}),(0,T.jsxs)(`div`,{className:`space-y-4`,children:[(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsx)(`label`,{htmlFor:`remote-url`,className:`text-sm text-foreground`,children:p(`onboarding.remoteConnection.field.serverAddress`)}),(0,T.jsx)(S,{id:`remote-url`,type:`url`,value:m,onChange:N,placeholder:p(`onboarding.remoteConnection.field.serverAddressPlaceholder`),disabled:L})]}),(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsx)(`label`,{htmlFor:`remote-label`,className:`text-sm text-foreground`,children:p(`onboarding.remoteConnection.field.nameOptional`)}),(0,T.jsx)(S,{id:`remote-label`,type:`text`,value:_,onChange:P,placeholder:p(`onboarding.remoteConnection.field.namePlaceholder`),disabled:L})]})]}),C&&V&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-success)`,color:`var(--status-success)`},children:p(`onboarding.remoteConnection.status.connectedSuccessfully`,{latencyMs:C.latencyMs})}),C&&U&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-warning)`,color:`var(--status-warning)`},children:p(`onboarding.remoteConnection.status.authWarning`)}),C&&H&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-warning)`,color:`var(--status-warning)`},children:B?p(B):null}),C&&W&&(0,T.jsxs)(`div`,{className:`rounded-lg border p-3 text-sm space-y-3`,style:{borderColor:`var(--status-error)`,color:`var(--status-error)`},children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`div`,{className:`font-semibold mb-1`,children:p(`onboarding.remoteConnection.status.connectionFailed`)}),(0,T.jsx)(`div`,{className:`opacity-90`,children:B?p(B):null})]}),(0,T.jsx)(`div`,{className:`text-xs opacity-80`,children:C.status===`unreachable`?p(`onboarding.remoteConnection.status.suggestionsUnreachable`):p(`onboarding.remoteConnection.status.suggestionsWrongService`)})]}),k&&(0,T.jsx)(`div`,{className:`rounded-lg border p-3 text-sm`,style:{borderColor:`var(--status-error)`,color:`var(--status-error)`},children:k}),(0,T.jsxs)(`div`,{className:`flex gap-3`,children:[(0,T.jsx)(v,{variant:`outline`,onClick:F,disabled:!R,children:p(L?`onboarding.remoteConnection.actions.testing`:`onboarding.remoteConnection.actions.testConnection`)}),(0,T.jsx)(v,{onClick:I,disabled:!z,children:p(`onboarding.remoteConnection.actions.connectAndRestart`)})]}),W&&(0,T.jsxs)(`div`,{className:`flex flex-col gap-2 pt-2 border-t border-border`,children:[(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground text-center`,children:p(`onboarding.remoteConnection.actions.whatToDo`)}),(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[(0,T.jsx)(v,{variant:`outline`,size:`sm`,onClick:e,className:`flex-1`,children:p(`onboarding.remoteConnection.actions.chooseDifferentServer`)}),!o&&f&&(0,T.jsx)(v,{variant:`outline`,size:`sm`,onClick:f,className:`flex-1`,children:p(`onboarding.remoteConnection.actions.useLocalInstead`)})]})]})]})})}async function k(){let e=await t(`/health`);if(!e.ok)return!1;let n=await e.json().catch(()=>null);return n?.openCodeRunning===!0||n?.isOpenCodeReady===!0}async function A(){return(await t(`/api/opencode/retry`,{method:`POST`})).ok?k():!1}var j=`curl -fsSL https://opencode.ai/v2/install | bash`,M=`https://opencode.ai/docs`,N=2500,P=1e4;function F(e){let t=(0,C.c)(5),{onCopy:n,copyTitle:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,T.jsxs)(`code`,{className:`flex-1 text-left overflow-x-auto whitespace-nowrap`,children:[(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`curl`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` -fsSL `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-string)`},children:`https://opencode.ai/v2/install`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` | `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`bash`})]}),t[0]=i):i=t[0];let a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,T.jsx)(y,{name:`file-copy`,className:`h-4 w-4`}),t[1]=a):a=t[1];let o;return t[2]!==r||t[3]!==n?(o=(0,T.jsxs)(`div`,{className:`flex items-center justify-between gap-3 w-full`,children:[i,(0,T.jsx)(`button`,{onClick:n,className:`inline-flex items-center text-muted-foreground hover:text-foreground transition-colors shrink-0`,title:r,"aria-label":r,children:a})]}),t[2]=r,t[3]=n,t[4]=o):o=t[4],o}function I({onCliAvailable:e}){let{t:s}=g(),[c,u]=w.useState(!1),[f,p]=w.useState(!1),[m,b]=w.useState(!1),[x,C]=w.useState(!1),[E,D]=w.useState(``),[I,L]=w.useState(`unknown`),[R,z]=w.useState(`local`),[B,V]=w.useState(!1),[H,U]=w.useState(!1),[W,G]=w.useState(null),K=w.useRef(!1);w.useEffect(()=>{p(i())},[]),w.useEffect(()=>{if(typeof navigator>`u`){L(`unknown`);return}let e=navigator.userAgent||``;/Windows/i.test(e)?L(`windows`):/Macintosh|Mac OS X/i.test(e)?L(`macos`):/Linux/i.test(e)?L(`linux`):L(`unknown`)},[]),w.useEffect(()=>{let e=!1;return(async()=>{try{let n=await t(`/api/config/settings`,{method:`GET`,headers:{Accept:`application/json`}});if(!n.ok)return;let r=await n.json().catch(()=>null);if(!r||e)return;let i=typeof r.opencodeBinary==`string`?r.opencodeBinary.trim():``;i&&D(i)}catch{}})(),()=>{e=!0}},[]);let q=w.useCallback(async e=>{let t=e.target;t.closest(`.app-region-no-drag`)||t.closest(`button, a, input, select, textarea, code, summary, details`)||e.button===0&&f&&await r()},[f]),J=w.useCallback(async e=>{if(!f)return;let t=await d();await l({...t,...e===`local`?{defaultHostId:`local`}:{},initialHostChoiceCompleted:!0})},[f]),Y=w.useCallback(async()=>{if(!K.current){K.current=!0;try{f&&await J(`local`),await e?.()}catch(e){throw K.current=!1,e}}},[f,e,J]);w.useEffect(()=>{if(R!==`local`)return;let e=!1,t=null,n=0,r=async()=>{if(!e){try{let t=await k(),r=Date.now();if(!t&&r-n>=P&&(n=r,t=await A()),e)return;if(t){await Y();return}}catch{}e||(t=setTimeout(r,N))}};return t=setTimeout(r,N),()=>{e=!0,t&&clearTimeout(t)}},[R,Y]);let X=w.useCallback(async()=>{C(!0),G(null);try{let e=await k();e||=await A(),e?await Y():G(s(`onboarding.localSetup.errors.cliNotReady`))}catch{G(s(`onboarding.localSetup.errors.detectionFailed`))}finally{C(!1)}},[Y,s]),Z=w.useCallback(async()=>{if(!(typeof window>`u`)&&f)try{let e=await o();e.success&&e.path&&e.path.trim().length>0&&D(e.path.trim())}catch{}},[f]),Q=w.useCallback(async()=>{b(!0);try{if(await n({opencodeBinary:E.trim()}),f){await J(`local`),await a();return}await t(`/api/config/reload`,{method:`POST`})}finally{setTimeout(()=>b(!1),1e3)}},[f,E,J]),$=w.useCallback(async()=>{let e=await h(j);e.ok?(u(!0),setTimeout(()=>u(!1),2e3)):console.error(`Failed to copy:`,e.error)},[]),ee=M,te=I===`windows`?`C:\\Users\\you\\AppData\\Roaming\\npm\\opencode.cmd`:I===`linux`?`/home/you/.bun/bin/opencode`:`/Users/you/.bun/bin/opencode`,ne=!f||R===`local`;return(0,T.jsx)(`div`,{className:`app-region-drag h-full flex items-center justify-center bg-transparent p-8 cursor-default select-none overflow-y-auto`,onMouseDown:q,children:(0,T.jsxs)(`div`,{className:`w-full max-w-md space-y-7`,children:[(0,T.jsxs)(`header`,{className:`text-center space-y-1.5`,children:[(0,T.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight text-foreground`,children:s(`onboarding.chooser.title`)}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:s(`onboarding.chooser.description`)})]}),f&&(0,T.jsxs)(`div`,{className:`app-region-no-drag flex gap-1.5`,children:[(0,T.jsx)(`button`,{type:`button`,className:_(`flex-1 px-4 py-2 rounded-lg border transition-colors text-sm`,R===`local`?`border-[var(--interactive-selection)] text-foreground bg-[var(--interactive-selection)]/10`:`border-border text-muted-foreground hover:text-foreground hover:border-muted-foreground`),onClick:()=>z(`local`),children:s(`onboarding.chooser.tabs.localInstall`)}),(0,T.jsx)(`button`,{type:`button`,className:_(`flex-1 px-4 py-2 rounded-lg border transition-colors text-sm`,R===`remote`?`border-[var(--interactive-selection)] text-foreground bg-[var(--interactive-selection)]/10`:`border-border text-muted-foreground hover:text-foreground hover:border-muted-foreground`),onClick:()=>z(`remote`),children:s(`onboarding.chooser.tabs.connectRemote`)})]}),f&&R===`remote`?(0,T.jsx)(`div`,{className:`app-region-no-drag`,children:(0,T.jsx)(O,{onBack:()=>z(`local`),showBackButton:!1,onSwitchToLocal:()=>z(`local`)})}):null,ne&&(0,T.jsxs)(`div`,{className:`space-y-4`,children:[I===`windows`&&(0,T.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/50 p-4`,children:[(0,T.jsx)(`div`,{className:`text-sm text-foreground`,children:s(`onboarding.localSetup.windows.title`)}),(0,T.jsxs)(`ol`,{className:`mt-2 list-decimal space-y-1 pl-5 text-sm text-muted-foreground`,children:[(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.windows.stepRunInstallInWsl`)}),(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.windows.stepSetBinaryPath`)})]})]}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground text-center leading-relaxed`,children:s(`onboarding.localSetup.intro`)}),(0,T.jsx)(`div`,{className:`app-region-no-drag rounded-lg border border-border bg-background/60 backdrop-blur-sm px-4 py-3 font-mono text-sm`,children:c?(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,style:{color:`var(--status-success)`},children:[(0,T.jsx)(y,{name:`check`,className:`h-4 w-4`}),s(`onboarding.common.status.copiedToClipboard`)]}):(0,T.jsx)(F,{onCopy:$,copyTitle:s(`onboarding.common.copyToClipboard`)})}),(0,T.jsxs)(`div`,{className:`app-region-no-drag flex items-center justify-between`,children:[(0,T.jsxs)(`a`,{href:ee,target:`_blank`,rel:`noopener noreferrer`,className:`text-xs text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1`,children:[s(I===`windows`?`onboarding.localSetup.docs.windows`:`onboarding.localSetup.docs.default`),(0,T.jsx)(y,{name:`external-link`,className:`h-3 w-3`})]}),(0,T.jsx)(`button`,{type:`button`,onClick:X,disabled:x,className:`text-xs text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50`,children:s(x?`onboarding.localSetup.actions.checking`:`onboarding.localSetup.actions.checkNow`)})]}),W&&(0,T.jsx)(`p`,{role:`alert`,className:`text-center text-xs text-[var(--status-error-foreground)]`,children:W}),(0,T.jsxs)(`div`,{className:`rounded-lg border px-4 py-3 flex items-center gap-3`,style:{borderColor:`color-mix(in srgb, var(--primary-base) 20%, transparent)`,backgroundColor:`color-mix(in srgb, var(--primary-base) 6%, transparent)`},role:`status`,"aria-live":`polite`,children:[(0,T.jsxs)(`span`,{className:`relative inline-flex h-2.5 w-2.5 shrink-0`,"aria-hidden":!0,children:[(0,T.jsx)(`span`,{className:`absolute inset-0 rounded-full`,style:{backgroundColor:`var(--primary-base)`,animation:`pulse-opacity 1.6s ease-in-out infinite`}}),(0,T.jsx)(`span`,{className:`absolute inset-[-4px] rounded-full`,style:{backgroundColor:`var(--primary-base)`,animation:`pulse-opacity-dim 1.6s ease-in-out infinite`,opacity:0}})]}),(0,T.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,T.jsx)(`div`,{className:`text-sm text-foreground leading-tight`,children:s(`onboarding.localSetup.status.watching`)}),(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground leading-tight mt-0.5`,children:s(`onboarding.localSetup.status.autoContinue`)})]})]}),(0,T.jsxs)(`details`,{className:`app-region-no-drag group rounded-lg border border-border/60 px-4 open:bg-background/40 transition-colors`,open:B,onToggle:e=>V(e.currentTarget.open),children:[(0,T.jsxs)(`summary`,{className:`flex items-center justify-between cursor-pointer py-2.5 text-sm text-muted-foreground hover:text-foreground transition-colors list-none [&::-webkit-details-marker]:hidden`,children:[(0,T.jsx)(`span`,{children:s(`onboarding.localSetup.advanced.title`)}),(0,T.jsx)(y,{name:`arrow-down-s`,className:`h-4 w-4 transition-transform group-open:rotate-180`})]}),(0,T.jsxs)(`div`,{className:`pb-4 space-y-2`,children:[(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[(0,T.jsx)(S,{value:E,onChange:e=>D(e.target.value),placeholder:te,disabled:m,className:`flex-1 font-mono text-xs`}),(0,T.jsx)(v,{type:`button`,variant:`secondary`,size:`sm`,onClick:Z,disabled:m||!f,children:s(`onboarding.localSetup.actions.browse`)}),(0,T.jsx)(v,{type:`button`,size:`sm`,onClick:Q,disabled:m||!E.trim(),children:s(`onboarding.localSetup.actions.apply`)})]}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground/70`,children:s(`onboarding.localSetup.helper.saveAndReload`)})]})]}),(0,T.jsxs)(`details`,{className:`app-region-no-drag group rounded-lg border border-border/60 px-4 open:bg-background/40 transition-colors`,open:H,onToggle:e=>U(e.currentTarget.open),children:[(0,T.jsxs)(`summary`,{className:`flex items-center justify-between cursor-pointer py-2.5 text-sm text-muted-foreground hover:text-foreground transition-colors list-none [&::-webkit-details-marker]:hidden`,children:[(0,T.jsx)(`span`,{children:s(`onboarding.localSetup.troubleshoot.title`)}),(0,T.jsx)(y,{name:`arrow-down-s`,className:`h-4 w-4 transition-transform group-open:rotate-180`})]}),(0,T.jsx)(`ul`,{className:`pb-4 space-y-1.5 text-xs text-muted-foreground list-disc pl-4`,children:I===`windows`?(0,T.jsx)(T.Fragment,{children:(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.windows.hintDetectionFailed`)})}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.hint.ensurePath`)}),(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.hint.setEnv`)}),(0,T.jsx)(`li`,{children:s(`onboarding.localSetup.hint.missingRuntime`)})]})})]})]})]})})}var L=`curl -fsSL https://opencode.ai/v2/install | bash`,R=`https://opencode.ai/docs`;function z(e){let t=(0,C.c)(5),{onCopy:n,copyTitle:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,T.jsxs)(`code`,{children:[(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`curl`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` -fsSL `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-string)`},children:`https://opencode.ai/v2/install`}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:` | `}),(0,T.jsx)(`span`,{style:{color:`var(--syntax-keyword)`},children:`bash`})]}),t[0]=i):i=t[0];let a;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,T.jsx)(y,{name:`file-copy`,className:`h-4 w-4`}),t[1]=a):a=t[1];let o;return t[2]!==r||t[3]!==n?(o=(0,T.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[i,(0,T.jsx)(`button`,{onClick:n,className:`inline-flex items-center text-muted-foreground hover:text-foreground transition-colors`,title:r,children:a})]}),t[2]=r,t[3]=n,t[4]=o):o=t[4],o}var B=3e4;function V({onBack:e,onCliAvailable:s,isFromRecovery:c=!1,onSwitchToRemote:l}){let{t:u}=g(),[d,f]=w.useState(!1),[p,m]=w.useState(!1),[_,b]=w.useState(!1),[x,C]=w.useState(!1),[E,D]=w.useState(!1),[O,j]=w.useState(null),[M,N]=w.useState(``),[P,F]=w.useState(`unknown`);w.useEffect(()=>{let e=setTimeout(()=>m(!0),B);return()=>clearTimeout(e)},[]),w.useEffect(()=>{b(i())},[]),w.useEffect(()=>{if(typeof navigator>`u`){F(`unknown`);return}let e=navigator.userAgent||``;if(/Windows/i.test(e)){F(`windows`);return}if(/Macintosh|Mac OS X/i.test(e)){F(`macos`);return}if(/Linux/i.test(e)){F(`linux`);return}F(`unknown`)},[]),w.useEffect(()=>{let e=!1;return(async()=>{try{let n=await t(`/api/config/settings`,{method:`GET`,headers:{Accept:`application/json`}});if(!n.ok)return;let r=await n.json().catch(()=>null);if(!r||e)return;let i=typeof r.opencodeBinary==`string`?r.opencodeBinary.trim():``;i&&N(i)}catch{}})(),()=>{e=!0}},[]);let I=w.useCallback(async e=>{e.target.closest(`button, a, input, select, textarea, code`)||e.button===0&&_&&await r()},[_]),V=w.useCallback(async()=>{if(!(typeof window>`u`)&&_)try{let e=await o();e.success&&e.path&&e.path.trim().length>0&&N(e.path.trim())}catch{}},[_]),H=w.useCallback(async()=>{C(!0);try{if(await n({opencodeBinary:M.trim()}),_){await a();return}await t(`/api/config/reload`,{method:`POST`})}finally{setTimeout(()=>C(!1),1e3)}},[_,M]),U=w.useCallback(async()=>{let e=await h(L);e.ok?(f(!0),setTimeout(()=>f(!1),2e3)):console.error(`Failed to copy:`,e.error)},[]),W=w.useCallback(async()=>{D(!0),j(null);try{let e=await k();e||=await A(),e?s?.():j(u(`onboarding.localSetup.errors.cliNotReady`))}catch(e){j(e instanceof Error?e.message:u(`onboarding.localSetup.errors.detectionFailed`))}finally{D(!1)}},[s,u]),G=R,K=P===`windows`?`C:\\Users\\you\\AppData\\Roaming\\npm\\opencode.cmd`:P===`linux`?`/home/you/.bun/bin/opencode`:`/Users/you/.bun/bin/opencode`;return(0,T.jsxs)(`div`,{className:`h-full flex items-center justify-center bg-transparent p-8 relative cursor-default select-none`,onMouseDown:I,children:[(0,T.jsxs)(`div`,{className:`w-full max-w-lg space-y-4 text-center`,children:[(0,T.jsx)(`div`,{className:`flex items-center`,children:(0,T.jsx)(v,{variant:`ghost`,onClick:e,className:`p-0 text-muted-foreground hover:text-foreground`,children:u(`onboarding.common.actions.back`)})}),(0,T.jsxs)(`div`,{className:`space-y-4`,children:[(0,T.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight text-foreground`,children:u(`onboarding.localSetup.title`)}),(0,T.jsx)(`p`,{className:`text-muted-foreground`,children:u(`onboarding.localSetup.description`)})]}),P===`windows`&&(0,T.jsxs)(`div`,{className:`mx-auto max-w-2xl rounded-lg border border-border bg-background/50 p-4 text-left`,children:[(0,T.jsx)(`div`,{className:`text-sm text-foreground`,children:u(`onboarding.localSetup.windows.title`)}),(0,T.jsxs)(`ol`,{className:`mt-2 list-decimal space-y-1 pl-5 text-sm text-muted-foreground`,children:[(0,T.jsx)(`li`,{children:u(`onboarding.localSetup.windows.stepRunInstallInWsl`)}),(0,T.jsx)(`li`,{children:u(`onboarding.localSetup.windows.stepSetBinaryPath`)})]})]}),(0,T.jsx)(`div`,{className:`flex justify-center`,children:(0,T.jsx)(`div`,{className:`bg-background/60 backdrop-blur-sm border border-border rounded-lg px-5 py-3 font-mono text-sm w-fit`,children:d?(0,T.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,style:{color:`var(--status-success)`},children:[(0,T.jsx)(y,{name:`check`,className:`h-4 w-4`}),u(`onboarding.common.status.copiedToClipboard`)]}):(0,T.jsx)(z,{onCopy:U,copyTitle:u(`onboarding.common.copyToClipboard`)})})}),(0,T.jsxs)(`a`,{href:G,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-1 justify-center`,children:[u(P===`windows`?`onboarding.localSetup.docs.windows`:`onboarding.localSetup.docs.default`),(0,T.jsx)(y,{name:`external-link`,className:`h-3 w-3`})]}),O&&(0,T.jsx)(`div`,{className:`mx-auto max-w-md rounded-lg border border-destructive/50 bg-destructive/10 p-3 text-sm text-destructive`,children:O}),(0,T.jsxs)(`div`,{className:`space-y-3`,children:[(0,T.jsx)(v,{type:`button`,onClick:W,disabled:E,className:`w-full max-w-xs`,size:`lg`,children:u(E?`onboarding.localSetup.actions.checking`:`onboarding.localSetup.actions.checkAndContinue`)}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u(`onboarding.localSetup.helper.checkAndContinue`)})]}),(0,T.jsx)(`div`,{className:`mx-auto w-full max-w-xl pt-4`,children:(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:u(`onboarding.localSetup.field.alreadyInstalled`)}),(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[(0,T.jsx)(S,{value:M,onChange:e=>N(e.target.value),placeholder:K,disabled:x,className:`flex-1 font-mono text-xs`}),(0,T.jsx)(v,{type:`button`,variant:`secondary`,onClick:V,disabled:x||!_,children:u(`onboarding.localSetup.actions.browse`)}),(0,T.jsx)(v,{type:`button`,onClick:H,disabled:x,children:u(`onboarding.localSetup.actions.apply`)})]}),(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground/70`,children:u(`onboarding.localSetup.helper.saveAndReload`)})]})}),c&&l&&(0,T.jsxs)(`div`,{className:`text-center pt-4`,children:[(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground mb-2`,children:u(`onboarding.localSetup.remotePreference`)}),(0,T.jsx)(v,{variant:`link`,onClick:l,children:u(`onboarding.localSetup.actions.connectRemoteServer`)})]})]}),p&&(0,T.jsx)(`div`,{className:`absolute bottom-8 left-0 right-0 text-center space-y-1`,children:P===`windows`?(0,T.jsx)(T.Fragment,{children:(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.windows.hintDetectionFailed`)})}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.hint.ensurePath`)}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.hint.setEnv`)}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground/70`,children:u(`onboarding.localSetup.hint.missingRuntime`)})]})})]})}function H(e,t){if(e?.trim())return c(e.trim());if(t)return c(t)}function U(e,t,n){switch(e){case`local-unavailable`:return{title:`Local OpenCode Unavailable`,description:`OpenCode CLI could not be started or is not installed. Install OpenCode or connect to a remote server instead.`,titleKey:`onboarding.desktopRecovery.localUnavailable.title`,descriptionKey:`onboarding.desktopRecovery.localUnavailable.description`,iconKey:`local`,showRetry:!0,retryLabel:`Retry Local`,retryLabelKey:`onboarding.desktopRecovery.localUnavailable.retry`,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Set Up Local`,useLocalLabelKey:`onboarding.desktopRecovery.localUnavailable.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`};case`remote-missing`:return{title:`No Default Connection`,description:`Your saved default connection could not be found. Choose how you want to connect.`,titleKey:`onboarding.desktopRecovery.noDefaultConnection.title`,descriptionKey:`onboarding.desktopRecovery.noDefaultConnection.description`,iconKey:`local`,showRetry:!1,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`};case`remote-unreachable`:{let e=H(t,n);return{title:`Remote Server Unreachable`,description:`Could not connect to "${e||`the remote server`}". Check your network connection and verify the server address.`,titleKey:`onboarding.desktopRecovery.remoteUnreachable.title`,descriptionKey:`onboarding.desktopRecovery.remoteUnreachable.description`,descriptionParams:e?{host:e}:void 0,iconKey:`remote`,showRetry:!0,retryLabel:`Retry Connection`,retryLabelKey:`onboarding.desktopRecovery.remoteUnreachable.retry`,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`}}case`remote-wrong-service`:{let e=H(t,n);return{title:`Incompatible Server`,description:`The server at "${e||`unknown`}" is not running OpenChamberY. Verify the address points to an OpenChamberY server.`,titleKey:`onboarding.desktopRecovery.incompatibleServer.title`,descriptionKey:`onboarding.desktopRecovery.incompatibleServer.description`,descriptionParams:e?{host:e}:void 0,iconKey:`remote`,showRetry:!1,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`}}case`remote-incompatible`:{let e=H(t,n);return{title:`Server Update Required`,description:`The OpenChamberY server at "${e||`unknown`}" is not compatible with this app version. Update OpenChamberY on the server, then try again.`,titleKey:`onboarding.desktopRecovery.remoteIncompatible.title`,descriptionKey:`onboarding.desktopRecovery.remoteIncompatible.description`,descriptionParams:e?{host:e}:void 0,iconKey:`remote`,showRetry:!0,retryLabel:`Retry Connection`,retryLabelKey:`onboarding.desktopRecovery.remoteUnreachable.retry`,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`}}case`missing-default-host`:return{title:`No Default Connection`,description:`Your saved default connection could not be found. Choose how you want to connect.`,titleKey:`onboarding.desktopRecovery.noDefaultConnection.title`,descriptionKey:`onboarding.desktopRecovery.noDefaultConnection.description`,iconKey:`local`,showRetry:!1,showUseLocal:!0,showUseRemote:!0,useLocalLabel:`Use Local`,useLocalLabelKey:`onboarding.desktopRecovery.common.useLocal`,useRemoteLabel:`Use Remote`,useRemoteLabelKey:`onboarding.desktopRecovery.common.useRemote`};default:throw Error(`Unknown recovery variant: ${e}`)}}function W(e){switch(e){case`local`:return(0,T.jsx)(y,{name:`macbook`,className:`h-8 w-8`});case`remote`:return(0,T.jsx)(y,{name:`server`,className:`h-8 w-8`})}}function G({variant:e,hostLabel:t,hostUrl:n,onRetry:r,onUseLocal:i,onUseRemote:a,isRetrying:o=!1}){let{t:s}=g(),l=U(e,t,n),u=l.retryLabelKey??`onboarding.desktopRecovery.actions.retryConnection`,d=w.useMemo(()=>{if(l.descriptionParams?.host)return l.descriptionParams;if(e===`remote-unreachable`)return{host:s(`onboarding.desktopRecovery.placeholders.remoteServer`)};if(e===`remote-wrong-service`||e===`remote-incompatible`)return{host:s(`onboarding.desktopRecovery.placeholders.unknownServer`)}},[l.descriptionParams,s,e]);return(0,T.jsx)(`div`,{className:`flex flex-col items-center justify-center h-full p-8`,children:(0,T.jsxs)(`div`,{className:`w-full max-w-md space-y-6`,children:[(0,T.jsxs)(`div`,{className:`flex flex-col items-center space-y-3 text-center`,children:[(0,T.jsx)(`div`,{className:`p-3 rounded-full`,style:{backgroundColor:`var(--status-warning)`,opacity:.15},children:(0,T.jsx)(`div`,{style:{color:`var(--status-warning)`},children:W(l.iconKey)})}),(0,T.jsx)(`h1`,{className:`typography-ui-header text-xl font-semibold text-foreground`,children:s(l.titleKey)}),(0,T.jsx)(`p`,{className:`text-muted-foreground text-sm max-w-sm`,children:s(l.descriptionKey,d)})]}),n&&(e===`remote-unreachable`||e===`remote-wrong-service`||e===`remote-incompatible`)&&(0,T.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/50 p-3`,children:[(0,T.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,children:s(`onboarding.remoteConnection.field.serverAddress`)}),(0,T.jsx)(`div`,{className:`font-mono text-sm text-foreground truncate`,children:c(n)})]}),(0,T.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[l.showRetry&&r&&(0,T.jsxs)(v,{onClick:r,disabled:o,className:`w-full`,children:[(0,T.jsx)(y,{name:`refresh`,className:_(`h-4 w-4`,o&&`animate-spin`)}),s(o?`onboarding.desktopRecovery.actions.retrying`:u)]}),(0,T.jsxs)(`div`,{className:`flex gap-2`,children:[l.showUseLocal&&i&&(0,T.jsxs)(v,{variant:`outline`,onClick:i,disabled:o,className:`flex-1`,children:[(0,T.jsx)(y,{name:`macbook`,className:`h-4 w-4`}),s(l.useLocalLabelKey)]}),l.showUseRemote&&a&&(0,T.jsxs)(v,{variant:`outline`,onClick:a,disabled:o,className:`flex-1`,children:[(0,T.jsx)(y,{name:`server`,className:`h-4 w-4`}),s(l.useRemoteLabelKey)]})]})]})]})})}function K(e,t){if(t===`use-remote`)return{kind:`remote-form`};switch(e){case`local-unavailable`:return{kind:`local-setup`};case`remote-unreachable`:case`remote-incompatible`:case`remote-wrong-service`:case`remote-missing`:case`missing-default-host`:return{kind:`switch-default-to-local`};default:throw Error(`Unhandled RecoveryVariant: ${e}`)}}function q(e){let n=(0,C.c)(27),{variant:r,hostUrl:o,hostLabel:s,onRetry:c,onChooseRemote:l,showRemoteForm:u,onCloseRemoteForm:d,onSwitchToLocalFromRemote:f,onEnterLocalSetup:p,isRetrying:m}=e,h=u!==void 0&&u,g=m!==void 0&&m,_=J,v;n[0]===c?v=n[1]:(v=async()=>{if(i()){await a();return}await t(`/api/config/reload`,{method:`POST`}),c?.()},n[0]=c,n[1]=v);let y=v,b;n[2]!==p||n[3]!==r?(b=async()=>{if(K(r,`use-local`).kind===`local-setup`){p?.();return}if(await _(`local`),i()){await a();return}window.location.reload()},n[2]=p,n[3]=r,n[4]=b):b=n[4];let x=b,S;n[5]!==l||n[6]!==r?(S=()=>{K(r,`use-remote`).kind===`remote-form`&&l?.()},n[5]=l,n[6]=r,n[7]=S):S=n[7];let w=S;if(h){let e=r===`remote-wrong-service`?``:o||``,t=r===`remote-wrong-service`?``:s||``,c;n[8]!==l||n[9]!==d?(c=d||(()=>l?.()),n[8]=l,n[9]=d,n[10]=c):c=n[10];let u;n[11]!==p||n[12]!==f?(u=f||(()=>{_(`local`).then(()=>{i()?a():p?.()})}),n[11]=p,n[12]=f,n[13]=u):u=n[13];let m;return n[14]!==t||n[15]!==e||n[16]!==c||n[17]!==u?(m=(0,T.jsx)(O,{onBack:c,initialUrl:e,initialLabel:t,isRecoveryMode:!0,onSwitchToLocal:u}),n[14]=t,n[15]=e,n[16]=c,n[17]=u,n[18]=m):m=n[18],m}let E;return n[19]!==y||n[20]!==x||n[21]!==w||n[22]!==s||n[23]!==o||n[24]!==g||n[25]!==r?(E=(0,T.jsx)(G,{variant:r,hostLabel:s,hostUrl:o,onRetry:y,onUseLocal:x,onUseRemote:w,isRetrying:g}),n[19]=y,n[20]=x,n[21]=w,n[22]=s,n[23]=o,n[24]=g,n[25]=r,n[26]=E):E=n[26],E}async function J(e){if(!i())return;let t=await d();await l({...t,...e===`local`?{defaultHostId:`local`}:{},initialHostChoiceCompleted:!0})}function Y(e){let t=(0,C.c)(47),{status:n,statusError:r,onContinueInBackground:i}=e,{t:a,locale:o}=g(),s=n?.total??0,c=n?.completed??0,l=r||n?.phase===`partial`||n?.phase===`error`,u=s>0?Math.min(1,Math.max(0,c/s)):null,d;t[0]===a?d=t[1]:(d=a(`onboarding.index.title`),t[0]=a,t[1]=d);let f=Math.max(s,1),p=s>0?c:void 0,m;t[2]!==c||t[3]!==a||t[4]!==s?(m=a(`commandPalette.index.progress`,{completed:c,total:s}),t[2]=c,t[3]=a,t[4]=s,t[5]=m):m=t[5];let h=`absolute inset-0 size-full -rotate-90 ${u===null&&!l?`motion-safe:animate-spin motion-safe:[animation-duration:3s]`:``}`,_;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,T.jsx)(`circle`,{cx:`96`,cy:`96`,r:`84`,stroke:`currentColor`,strokeWidth:`1.5`,className:`text-border`}),t[6]=_):_=t[6];let y=100-(u??.22)*100,S;t[7]===y?S=t[8]:(S=(0,T.jsx)(`circle`,{cx:`96`,cy:`96`,r:`84`,pathLength:`100`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:`100`,strokeDashoffset:y,className:`text-foreground/80 motion-safe:transition-[stroke-dashoffset] motion-safe:duration-700`}),t[7]=y,t[8]=S);let w;t[9]===u?w=t[10]:(w=u!==null&&u>0&&u<1&&(0,T.jsx)(`g`,{style:{transform:`rotate(${u*360}deg)`,transformOrigin:`96px 96px`},className:`motion-safe:transition-transform motion-safe:duration-700`,children:(0,T.jsx)(`circle`,{cx:`180`,cy:`96`,r:`3`,fill:`currentColor`,className:`text-foreground`})}),t[9]=u,t[10]=w);let E;t[11]!==h||t[12]!==S||t[13]!==w?(E=(0,T.jsxs)(`svg`,{viewBox:`0 0 192 192`,fill:`none`,"aria-hidden":`true`,className:h,children:[_,S,w]}),t[11]=h,t[12]=S,t[13]=w,t[14]=E):E=t[14];let D;t[15]!==o||t[16]!==u?(D=u!==null&&(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`text-[2.5rem] font-light tabular-nums tracking-[-0.05em] text-foreground`,children:new Intl.NumberFormat(o,{style:`percent`,maximumFractionDigits:0}).format(u)}),t[15]=o,t[16]=u,t[17]=D):D=t[17];let O;t[18]!==d||t[19]!==E||t[20]!==D||t[21]!==f||t[22]!==p||t[23]!==m?(O=(0,T.jsxs)(`div`,{role:`progressbar`,"aria-label":d,"aria-valuemin":0,"aria-valuemax":f,"aria-valuenow":p,"aria-valuetext":m,className:`relative mb-9 flex size-40 items-center justify-center sm:size-44`,children:[E,D]}),t[18]=d,t[19]=E,t[20]=D,t[21]=f,t[22]=p,t[23]=m,t[24]=O):O=t[24];let k;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(k={fontSize:`1.0625rem`,fontWeight:450},t[25]=k):k=t[25];let A;t[26]===a?A=t[27]:(A=a(`onboarding.index.title`),t[26]=a,t[27]=A);let j;t[28]===A?j=t[29]:(j=(0,T.jsx)(b,{className:`tracking-tight`,style:k,children:A}),t[28]=A,t[29]=j);let M;t[30]!==l||t[31]!==a?(M=a(l?`onboarding.index.retrying`:`onboarding.index.description`),t[30]=l,t[31]=a,t[32]=M):M=t[32];let N;t[33]===M?N=t[34]:(N=(0,T.jsx)(x,{className:`text-xs text-muted-foreground`,children:M}),t[33]=M,t[34]=N);let P;t[35]!==j||t[36]!==N?(P=(0,T.jsxs)(`header`,{className:`space-y-2.5`,role:`status`,"aria-live":`polite`,children:[j,N]}),t[35]=j,t[36]=N,t[37]=P):P=t[37];let F;t[38]===a?F=t[39]:(F=a(`onboarding.index.background`),t[38]=a,t[39]=F);let I;t[40]!==i||t[41]!==F?(I=(0,T.jsx)(v,{variant:`ghost`,size:`sm`,className:`mt-8 text-xs font-normal text-muted-foreground`,onClick:i,children:F}),t[40]=i,t[41]=F,t[42]=I):I=t[42];let L;return t[43]!==O||t[44]!==P||t[45]!==I?(L=(0,T.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,"data-content-index-onboarding":!0,children:(0,T.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center text-center`,children:[O,P,I]})}),t[43]=O,t[44]=P,t[45]=I,t[46]=L):L=t[46],L}function X(e){let t=(0,C.c)(30),{onBack:n,onCliAvailable:r,mode:i,recoveryVariant:a,recoveryHostUrl:o,recoveryHostLabel:s,onEnterLocalSetup:c,indexStatus:l,indexStatusError:u,onContinueInBackground:d}=e,f=i===void 0?`first-launch`:i,p=a===void 0?`missing-default-host`:a,[m,h]=w.useState(!1),[g,_]=w.useState(!1),v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>{_(!1),h(!1)},t[0]=v):v=t[0];let y;t[1]!==f||t[2]!==s||t[3]!==o||t[4]!==p?(y=[f,p,o,s],t[1]=f,t[2]=s,t[3]=o,t[4]=p,t[5]=y):y=t[5],w.useEffect(v,y);let b=g?`local-setup`:f;if(b===`content-index`){let e;return t[6]!==l||t[7]!==u||t[8]!==d?(e=(0,T.jsx)(Y,{status:l,statusError:u,onContinueInBackground:d}),t[6]=l,t[7]=u,t[8]=d,t[9]=e):e=t[9],e}if(b===`recovery`){let e,n;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=()=>h(!1),n=()=>{h(!1),_(!0)},t[10]=e,t[11]=n):(e=t[10],n=t[11]);let r;t[12]===c?r=t[13]:(r=()=>{_(!0),c?.()},t[12]=c,t[13]=r);let i;return t[14]!==s||t[15]!==o||t[16]!==p||t[17]!==m||t[18]!==r?(i=(0,T.jsx)(q,{variant:p,hostUrl:o,hostLabel:s,showRemoteForm:m,onCloseRemoteForm:e,onSwitchToLocalFromRemote:n,onEnterLocalSetup:r}),t[14]=s,t[15]=o,t[16]=p,t[17]=m,t[18]=r,t[19]=i):i=t[19],i}if(b===`local-setup`){let e;t[20]!==n||t[21]!==g?(e=()=>{g?_(!1):n?.()},t[20]=n,t[21]=g,t[22]=e):e=t[22];let i;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>h(!0),t[23]=i):i=t[23];let a;return t[24]!==r||t[25]!==g||t[26]!==e?(a=(0,T.jsx)(V,{onBack:e,onCliAvailable:r,isFromRecovery:g,onSwitchToRemote:i}),t[24]=r,t[25]=g,t[26]=e,t[27]=a):a=t[27],a}let x;return t[28]===r?x=t[29]:(x=(0,T.jsx)(I,{onCliAvailable:r}),t[28]=r,t[29]=x),x}export{X as OnboardingScreen};