@openchambery/web 1.18.2-beta.8 → 1.18.2-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 (39) hide show
  1. package/dist/assets/{AssistantView-C0v6WVEB.js → AssistantView-DjG3NioW.js} +1 -1
  2. package/dist/assets/{ChatContainer-CReoQTua.js → ChatContainer-BQJX_lbm.js} +4 -4
  3. package/dist/assets/{DiagramView-D_WMXwYz.js → DiagramView-CUcZB4JV.js} +1 -1
  4. package/dist/assets/{MarkdownRendererImpl-DhYt2Oq2.js → MarkdownRendererImpl-CEfEkrko.js} +1 -1
  5. package/dist/assets/{MobileDetailNavigation-CgiLWb4L.js → MobileDetailNavigation-X3uGiCOg.js} +1 -1
  6. package/dist/assets/{MobileShareBridge-CED5MFr5.js → MobileShareBridge-Cp9Mbus8.js} +1 -1
  7. package/dist/assets/{MobileSurface-CH2_uvbK.js → MobileSurface-CPfPdhR2.js} +1 -1
  8. package/dist/assets/{MultiRunWindow-BUsyw0Ws.js → MultiRunWindow-TMVAyy27.js} +1 -1
  9. package/dist/assets/{OverlayScrollbar-DP76aSig.js → OverlayScrollbar-Bk-JHgkU.js} +1 -1
  10. package/dist/assets/{SettingsView-BkC2EjbS.js → SettingsView-CEWseYV4.js} +1 -1
  11. package/dist/assets/{SettingsWindow-CAW6MEmX.js → SettingsWindow-DpG6TZAJ.js} +1 -1
  12. package/dist/assets/{TerminalView-BlHms0VM.js → TerminalView-DE-69Gjv.js} +1 -1
  13. package/dist/assets/{ToolOutputDialog-C6tIj91N.js → ToolOutputDialog-BnSnqmPr.js} +1 -1
  14. package/dist/assets/{appThemeRegistry-DVSq4EWU.js → appThemeRegistry-CtmzwV4x.js} +2 -2
  15. package/dist/assets/{context-menu-DpH6U8oW.js → context-menu-BsA0lfWU.js} +1 -1
  16. package/dist/assets/{gitApi-Bhdx5iUS.js → gitApi-DpQOg2UF.js} +1 -1
  17. package/dist/assets/{insertionBoundaries-nU86u9Wm.js → insertionBoundaries-0grn8v_H.js} +1 -1
  18. package/dist/assets/{main-B1xvOgYh.js → main-BhOjZs9d.js} +4 -4
  19. package/dist/assets/{main-CE-WJrYW.js → main-wiv-Mcf-.js} +2 -2
  20. package/dist/assets/{miniChat-BFIjJLav.js → miniChat-BmZzFlCY.js} +2 -2
  21. package/dist/assets/{mobile-CAhmWqvi.js → mobile-BTW_GWJo.js} +2 -2
  22. package/dist/assets/{multirun-CgvZwd2c.js → multirun-BEx2Gajj.js} +1 -1
  23. package/dist/assets/projectMeta-C1espVUO.js +3 -0
  24. package/dist/assets/{radio-B8jlOicg.js → radio-snHzR8-Z.js} +1 -1
  25. package/dist/assets/{renderElectronMiniChatApp-B99BmjcT.js → renderElectronMiniChatApp-DyJSVgf1.js} +2 -2
  26. package/dist/assets/{renderMobileApp-Dk7PNioy.js → renderMobileApp-CmzB08pd.js} +4 -4
  27. package/dist/assets/{runtimeEndpointReset-Ca3v4eoA.js → runtimeEndpointReset-JATNf8W2.js} +1 -1
  28. package/dist/assets/{sortable-tabs-strip-D2vXQoD8.js → sortable-tabs-strip-0XQFWr_M.js} +1 -1
  29. package/dist/assets/{useAppFontEffects-CFXV7nrE.js → useAppFontEffects-D1lxdZjh.js} +2 -2
  30. package/dist/assets/{useDesktopWindowControlsLayout-BN0ppWAs.js → useDesktopWindowControlsLayout-DSAN4xkb.js} +1 -1
  31. package/dist/assets/{useEffectiveDirectory-DGlRozSn.js → useEffectiveDirectory-BTrz9jc0.js} +1 -1
  32. package/dist/assets/{useMobileNavigationStore-BUsW7lSl.js → useMobileNavigationStore-Rel8oStT.js} +1 -1
  33. package/dist/assets/{useSessionAutoCleanup-BRoQwvvb.js → useSessionAutoCleanup-CGvCs8rJ.js} +1 -1
  34. package/dist/assets/{useWorkerHighlightedLines-Ds6gLNsj.js → useWorkerHighlightedLines-CzF7WMk3.js} +1 -1
  35. package/dist/index.html +1 -1
  36. package/dist/mini-chat.html +1 -1
  37. package/dist/mobile.html +1 -1
  38. package/package.json +1 -1
  39. package/dist/assets/projectMeta-1-jW5f2j.js +0 -3
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{M as t,t as n}from"./useUIStore-5agS8bsW.js";import{Kt as r,kn as i,qt as a,u as o}from"./persistence-oSFWyKgV.js";import{h as s}from"./desktopHosts-DSgGxDpI.js";import{a as c,i as l,o as u,r as d}from"./desktopRelayRestore-DVIx7jsz.js";import{nt as f,rt as p}from"./vendor-base-ui-CnHfUmDN.js";import{kt as m}from"./gitApiHttp-SLrnr8a5.js";import{n as h}from"./vendor-react-DLPElpoQ.js";import{n as g}from"./vendor-tanstack-query-core-BWz0ose6.js";import{i as _,r as v}from"./vendor-tanstack-react-query-D7pys_c9.js";import{n as y,t as b}from"./clipboard-DF5tFLDb.js";import{i as x,t as S}from"./store-OURVnLSN.js";import{Xi as C,hr as w,l as T,tr as ee,wr as E,xr as te}from"./useMobileNavigationStore-BUsW7lSl.js";import{t as D}from"./utils-Dxsi3J3l.js";import{n as ne}from"./Icon-DHaR0peD.js";import{t as re}from"./button-DCUMIXDC.js";import{i as ie,n as ae,r as oe,t as se}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{n as ce,r as le}from"./radio-B8jlOicg.js";var O=h(),k=[`desktopHostSwitch`],A=class extends Error{result;host;constructor(e,t){super(e.reason),this.name=`DesktopHostSwitchError`,this.result=e,this.host=t}},ue=(e,t)=>S(x.getState().dictionary,e,t),de=async e=>{let{host:n}=e;if(n.id===`local`){let r=(e.localApiOrigin||``).trim();if(!r)throw new A({ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unreachable`},n);return t({apiBaseUrl:r,clientToken:e.localClientToken||null,runtimeKey:l(n)}),{ok:!0,via:`direct`,status:{status:`ok`,latencyMs:0}}}if(n.viaSshRelay){let e=await u(n);if(!e.ok)throw new A(e,n);return e}let r=await c(n,{cachedProbe:e.cachedProbe});if(!r.ok)throw new A(r,n);return r},j=null,fe=()=>j||(j=new g(o,{mutationKey:k,mutationFn:de,onError:(e,t)=>{e instanceof A&&e.result.reason!==`unsupported`&&ee.error(ue(`desktopHostSwitcher.toast.instanceUnreachable`,{host:s(t.host.label)}))}}),j.subscribe(()=>void 0),j),pe=async e=>{if(d(e.host))return{ok:!0,via:`direct`,status:e.cachedProbe?.status===`ok`?e.cachedProbe:{status:`ok`,latencyMs:0}};if(o.isMutating({mutationKey:k})>0)return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unsupported`};try{return await fe().mutate(e)}catch(e){if(e instanceof A)return e.result;throw e}},me=()=>{let e=(0,O.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationKey:k},e[0]=t):t=e[0],v(t)>0},he=()=>{let e=(0,O.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={filters:{mutationKey:k,status:`pending`},select:ge},e[0]=t):t=e[0],_(t)[0]?.host.id??null};function ge(e){return e.state.variables}var M=e=>typeof e==`object`&&!!e,N=(e,t)=>{let n=e[t];return typeof n==`string`?n:null},P=(e,t)=>{let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:null},F=(e,t)=>{let n=e[t];return typeof n==`boolean`?n:null},I=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],L=()=>r()?(e,t)=>a(e,t):null,R=e=>{if(!M(e))return;let t=F(e,`enabled`)??!1,n=N(e,`store`)?.toLowerCase()===`settings`?`settings`:`never`,r=N(e,`value`);return{enabled:t,store:n,...r?{value:r}:{}}},_e=e=>e===`remote`||e===`dynamic`?e:`local`,ve=e=>{if(!M(e))return null;let t=N(e,`id`);if(!t)return null;let n=F(e,`enabled`)??!0,r=_e(N(e,`type`)),i=N(e,`localHost`)||N(e,`local_host`)||void 0,a=P(e,`localPort`)??P(e,`local_port`)??void 0,o=N(e,`remoteHost`)||N(e,`remote_host`)||void 0,s=P(e,`remotePort`)??P(e,`remote_port`)??void 0;return{id:t,enabled:n,type:r,...i?{localHost:i}:{},...typeof a==`number`?{localPort:a}:{},...o?{remoteHost:o}:{},...typeof s==`number`?{remotePort:s}:{}}},ye=e=>{if(!M(e))return null;let t=N(e,`id`),n=N(e,`sshCommand`)||N(e,`ssh_command`);if(!t||!n)return null;let r=N(e,`nickname`),i=e.sshParsed,a=M(i)?{destination:N(i,`destination`)||``,args:I(i.args)}:void 0,o=M(e.remoteOpenchamber)?e.remoteOpenchamber:M(e.remote_openchamber)?e.remote_openchamber:{},s=M(e.localForward)?e.localForward:M(e.local_forward)?e.local_forward:{},c=M(e.auth)?e.auth:{},l=N(o,`mode`)?.toLowerCase()===`external`?`external`:`managed`,u=N(o,`installMethod`)||N(o,`install_method`),d=u===`npm`||u===`download_release`||u===`upload_bundle`?u:`bun`,f=N(s,`bindHost`)||N(s,`bind_host`)||`127.0.0.1`,p=f===`localhost`||f===`0.0.0.0`?f:`127.0.0.1`,m=(Array.isArray(e.portForwards)?e.portForwards:Array.isArray(e.port_forwards)?e.port_forwards:[]).map(e=>ve(e)).filter(e=>!!e),h=P(o,`preferredPort`)??P(o,`preferred_port`),g=P(s,`preferredLocalPort`)??P(s,`preferred_local_port`),_=R(c.sshPassword||c.ssh_password),v=R(c.openchamberPassword||c.openchamber_password);return{id:t,...r?{nickname:r}:{},sshCommand:n,...a&&a.destination?{sshParsed:a}:{},connectionTimeoutSec:P(e,`connectionTimeoutSec`)??P(e,`connection_timeout_sec`)??60,remoteOpenchamber:{mode:l,keepRunning:F(o,`keepRunning`)??F(o,`keep_running`)??!0,...h?{preferredPort:h}:{},installMethod:d,uploadBundleOverSsh:F(o,`uploadBundleOverSsh`)??F(o,`upload_bundle_over_ssh`)??!1},localForward:{...g?{preferredLocalPort:g}:{},bindHost:p},auth:{..._?{sshPassword:_}:{},...v?{openchamberPassword:v}:{}},portForwards:m}},be=e=>{switch(e){case`config_resolved`:case`auth_check`:case`master_connecting`:case`remote_probe`:case`installing`:case`updating`:case`server_detecting`:case`server_starting`:case`forwarding`:case`ready`:case`degraded`:case`error`:return e;default:return`idle`}},z=e=>{if(!M(e))return null;let t=N(e,`id`);return t?{id:t,phase:be(N(e,`phase`)),...N(e,`detail`)?{detail:N(e,`detail`)||void 0}:{},...N(e,`localUrl`)||N(e,`local_url`)?{localUrl:N(e,`localUrl`)||N(e,`local_url`)||void 0}:{},...typeof(P(e,`localPort`)??P(e,`local_port`))==`number`?{localPort:P(e,`localPort`)??P(e,`local_port`)??void 0}:{},...typeof(P(e,`remotePort`)??P(e,`remote_port`))==`number`?{remotePort:P(e,`remotePort`)??P(e,`remote_port`)??void 0}:{},startedByUs:F(e,`startedByUs`)??F(e,`started_by_us`)??!1,retryAttempt:P(e,`retryAttempt`)??P(e,`retry_attempt`)??0,requiresUserAction:F(e,`requiresUserAction`)??F(e,`requires_user_action`)??!1,updatedAtMs:P(e,`updatedAtMs`)??P(e,`updated_at_ms`)??Date.now()}:null},xe=e=>{if(!M(e))return null;let t=N(e,`host`),n=N(e,`source`),r=N(e,`sshCommand`)||N(e,`ssh_command`);return!t||!n||!r?null:{host:t,source:n,sshCommand:r,pattern:F(e,`pattern`)??!1}},Se=(e,t)=>({id:e,sshCommand:t,connectionTimeoutSec:60,remoteOpenchamber:{mode:`managed`,keepRunning:!0,installMethod:`bun`,uploadBundleOverSsh:!1},localForward:{bindHost:`127.0.0.1`},auth:{},portForwards:[]}),Ce=async()=>{let e=L();if(!e)return{instances:[]};let t=await e(`desktop_ssh_instances_get`);return M(t)?{instances:(Array.isArray(t.instances)?t.instances:Array.isArray(t.desktopSshInstances)?t.desktopSshInstances:[]).map(e=>ye(e)).filter(e=>!!e)}:{instances:[]}},we=async e=>{let t=L();t&&await t(`desktop_ssh_instances_set`,{config:{instances:e.instances}})},Te=async()=>{let e=L();if(!e)return[];let t=await e(`desktop_ssh_import_hosts`);return Array.isArray(t)?t.map(e=>xe(e)).filter(e=>!!e):[]},Ee=async e=>{let t=L();t&&await t(`desktop_ssh_connect`,{id:e})},De=async e=>{let t=L();t&&await t(`desktop_ssh_disconnect`,{id:e})},Oe=async e=>{let t=L();if(!t)return[];let n=await t(`desktop_ssh_status`,{...e?{id:e}:{}});return Array.isArray(n)?n.map(e=>z(e)).filter(e=>!!e):[]},ke=async(e,t)=>{let n=L();if(!n)return[];let r=await n(`desktop_ssh_logs`,{id:e,...typeof t==`number`?{limit:t}:{}});return Array.isArray(r)?r.filter(e=>typeof e==`string`):[]},Ae=async e=>{let t=L();t&&await t(`desktop_ssh_logs_clear`,{id:e})},je=(e,t)=>{let n=Math.max(0,Math.trunc(Number(e.fileGroups)||0)),r=Math.max(0,Math.trunc(Number(e.singleFiles)||0)),i=Math.max(0,Math.trunc(Number(e.directories)||0));return{fileGroups:Array.from({length:n},()=>!0),singleFiles:Array.from({length:r},()=>!0),directories:Array.from({length:i},()=>!0),agentsRoot:!0,authFile:t?.includeAuthFile===!0}},Me=e=>{if(!M(e))return null;let t=N(e,`path`),n=P(e,`bytes`);return!t||n===null?null:{path:t,bytes:n}},Ne=e=>{if(!M(e))return null;let t=N(e,`path`),n=P(e,`fileCount`)??P(e,`file_count`),r=P(e,`bytes`);return!t||n===null||r===null?null:{path:t,fileCount:n,bytes:r}},Pe=e=>{if(e==null||!M(e))return null;let t=P(e,`fileCount`)??P(e,`file_count`),n=P(e,`bytes`);return t===null||n===null?null:{fileCount:t,bytes:n}},B=e=>{if(e==null||!M(e))return null;let t=P(e,`bytes`);return t===null?null:{bytes:t}},V=e=>{if(!M(e))return null;let t=Array.isArray(e.files)?e.files:null,n=Array.isArray(e.directories)?e.directories:null,r=I(e.deletes),i=P(e,`totalBytes`)??P(e,`total_bytes`);if(!t||!n||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=t.map(e=>Me(e)).filter(e=>!!e),o=n.map(e=>Ne(e)).filter(e=>!!e);if(a.length!==t.length||o.length!==n.length)return null;let s=e.agentsRoot??e.agents_root,c=s==null?null:Pe(s);if(s!=null&&c===null)return null;let l=e.authFile??e.auth_file,u=l==null?null:B(l),d=e.direction===`pull`||e.direction===`push`?e.direction:void 0,f=e.selections,p=M(f)?{fileGroups:Array.isArray(f.fileGroups)?f.fileGroups.map(e=>e!==!1):[],singleFiles:Array.isArray(f.singleFiles)?f.singleFiles.map(e=>e!==!1):[],directories:Array.isArray(f.directories)?f.directories.map(e=>e!==!1):[],agentsRoot:f.agentsRoot!==!1,authFile:f.authFile===!0}:void 0,m=H(e.selectionShape??e.selection_shape);return{files:a,directories:o,agentsRoot:c,authFile:u,deletes:r,totalBytes:i,...d?{direction:d}:{},...p?{selections:p}:{},...m?{selectionShape:m}:{}}},H=e=>{if(!M(e))return null;let t=P(e,`fileGroups`)??P(e,`file_groups`),n=P(e,`singleFiles`)??P(e,`single_files`),r=P(e,`directories`);return t===null||n===null||r===null||t<0||n<0||r<0?null:{fileGroups:t,singleFiles:n,directories:r}},Fe=e=>{if(!M(e))return null;let t=V(e.plan);if(!t)return null;let n=H(e.selectionShape??e.selection_shape)??t.selectionShape??null;return{plan:t,remoteExisting:I(e.remoteExisting??e.remote_existing),remoteAgentsRootExists:F(e,`remoteAgentsRootExists`)??F(e,`remote_agents_root_exists`)??!1,remoteAuthFileExists:F(e,`remoteAuthFileExists`)??F(e,`remote_auth_file_exists`)??!1,...typeof e.credentialAuthorized==`boolean`?{credentialAuthorized:e.credentialAuthorized}:{},...n?{selectionShape:n}:{}}},Ie=e=>{if(!M(e)||F(e,`ok`)!==!0)return null;let t=P(e,`files`),n=P(e,`directories`),r=P(e,`deletes`),i=P(e,`totalBytes`)??P(e,`total_bytes`);if(t===null||n===null||r===null||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=e.agentsRoot??e.agents_root,o=null;if(a!=null){if(!M(a))return null;let e=P(a,`fileCount`)??P(a,`file_count`);if(e===null)return null;o={fileCount:e}}let s=e.authFile??e.auth_file,c=s==null?null:B(s);return{ok:!0,files:t,directories:n,deletes:r,totalBytes:i,agentsRoot:o,authFile:c}},Le=async(e={})=>{let t=L();if(!t)return null;let n=await t(`desktop_ssh_sync_opencode_config`,{stage:`local`,...e.direction?{direction:e.direction}:{},...e.selections?{selections:e.selections}:{}});if(!M(n))return null;let r=V(n.plan);if(!r)return null;let i=H(n.selectionShape??n.selection_shape)??r.selectionShape??null;return i?{...r,selectionShape:i}:r},Re=async(e,t={})=>{let n=L();return n?Fe(await n(`desktop_ssh_sync_opencode_config`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}})):null},ze=async(e,t={})=>{let n=L();return n?Ie(await n(`desktop_ssh_sync_opencode_config`,{id:e,apply:!0,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}})):null},Be=async(e,t={})=>{let n=L();if(!n)return[];let r=await n(`desktop_ssh_sync_runs_list`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}});return Array.isArray(r)?r.filter(e=>M(e)&&typeof e.syncRunId==`string`&&typeof e.targetId==`string`):[]},U=e=>{if(!M(e))return null;let t=typeof e.targetId==`string`?e.targetId.trim():``;if(!t)return null;let n=e.authorized===!0,r=typeof e.grantedAt==`string`&&e.grantedAt.trim()?e.grantedAt.trim():void 0,i=typeof e.channel==`string`&&e.channel.trim()?e.channel.trim():void 0;return{targetId:t,authorized:n,...r?{grantedAt:r}:{},...i?{channel:i}:{}}},Ve=async(e,t={})=>{let n=L();return n?U(await n(`desktop_ssh_credential_sync_get`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},He=async(e,t={})=>{let n=L();return n?U(await n(`desktop_ssh_credential_sync_grant`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},Ue=async(e,t={})=>{let n=L();return n?U(await n(`desktop_ssh_credential_sync_revoke`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},We=async e=>{if(!r())return async()=>{};let t=window.__OPENCHAMBER_DESKTOP__?.listen;if(typeof t!=`function`)return async()=>{};let n=await t(`openchamber:ssh-instance-status`,t=>{let n=z(t?.payload);n&&e(n)});return async()=>{await n()}},Ge=`/auth/passkey/authenticate/options`,Ke=`/auth/passkey/authenticate/verify`,qe=`/auth/passkey/register/options`,Je=`/auth/passkey/register/verify`,W=`/api/passkeys`,Ye=`/auth/passkey/status`,Xe=`/api/auth/reset`,G={enabled:!1,hasPasskeys:!1,passkeyCount:0,rpID:null},K=async(e,t)=>i(e,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),q=async(e,t)=>{try{let t=await e.json();if(t&&typeof t.error==`string`&&t.error.trim())return t.error}catch{}return t},Ze=e=>e instanceof ie&&e.code===`ERROR_CEREMONY_ABORTED`,Qe=()=>{oe.cancelCeremony()},J=()=>typeof window>`u`?{supported:!1,reason:`Passkeys are unavailable outside the browser.`}:window.isSecureContext?{supported:!0,reason:``}:{supported:!1,reason:`Passkeys require HTTPS or localhost.`},$e=async()=>{let e=J();if(!e.supported)throw Error(e.reason);let t=await K(qe,{label:typeof navigator.userAgent==`string`&&navigator.userAgent.trim()?navigator.userAgent:`This device`});if(!t.ok)throw Error(await q(t,`Could not start passkey setup.`));let{requestId:n,optionsJSON:r}=await t.json(),i=await K(Je,{requestId:n,response:await ae({optionsJSON:r})});if(!i.ok)throw Error(await q(i,`Could not finish passkey setup.`));return i.json().catch(()=>null)},et=async(e,t={})=>{let n=J();if(!n.supported)throw Error(n.reason);let r=await K(Ge);if(!r.ok)throw Error(await q(r,`Passkey sign-in is not available right now.`));let{requestId:i,optionsJSON:a}=await r.json(),o=await K(Ke,{requestId:i,response:await se({optionsJSON:a}),trustDevice:e,issueClientToken:t.issueClientToken===!0,clientLabel:t.clientLabel,clientKind:t.clientKind,dedupeKey:t.dedupeKey});if(!o.ok)throw Error(await q(o,`Passkey sign-in failed.`));return o.json().catch(()=>null)},tt=async()=>{let e=await i(Ye,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return G;let t=await e.json().catch(()=>null);return{enabled:t?.enabled===!0,hasPasskeys:t?.hasPasskeys===!0,passkeyCount:typeof t?.passkeyCount==`number`?t.passkeyCount:0,rpID:typeof t?.rpID==`string`&&t.rpID?t.rpID:null}},nt=async()=>{let e=await i(W,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(await q(e,`Could not load passkeys.`));let t=await e.json().catch(()=>null);return Array.isArray(t?.passkeys)?t.passkeys:[]},rt=async e=>{let t=await i(`${W}/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok)throw Error(await q(t,`Could not remove passkey.`));return t.json().catch(()=>null)},it=async()=>{let e=await K(Xe);if(!e.ok)throw Error(await q(e,`Could not clear saved authentication.`));return e.json().catch(()=>null)},Y=e(p(),1),X=f();function Z(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-none`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function at(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function ot(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`leading-none font-semibold`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function st(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`px-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card-content`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var ct=class extends Y.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t,copied:!1}),console.error(`Error caught by boundary:`,e,t)}handleReset=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})};handleCopy=async()=>{let{strings:e}=this.props,t=`${this.state.error?String(this.state.error):e.unknownError}${this.state.error?.stack?`\n\nStack:\n${this.state.error.stack}`:``}${this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``}`;(await b(t)).ok&&(this.setState({copied:!0}),window.setTimeout(()=>{this.setState(e=>e.copied?{copied:!1}:null)},1500))};render(){let{strings:e}=this.props;return this.state.hasError?this.props.fallback?this.props.fallback:(0,X.jsx)(`div`,{className:`p-4 flex items-center justify-center min-h-screen`,children:(0,X.jsxs)(Z,{className:`w-full max-w-md`,children:[(0,X.jsx)(at,{className:`text-center`,children:(0,X.jsxs)(ot,{className:`flex items-center justify-center gap-2 text-destructive`,children:[(0,X.jsx)(ne,{name:`error-warning`,className:`h-5 w-5`}),e.title]})}),(0,X.jsxs)(st,{className:`space-y-4`,children:[(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:e.description}),this.state.error&&(0,X.jsxs)(`details`,{className:`text-xs font-mono bg-muted p-3 rounded`,children:[(0,X.jsx)(`summary`,{className:`cursor-pointer hover:bg-interactive-hover/80`,children:e.detailsSummary}),(0,X.jsxs)(`pre`,{className:`mt-2 max-h-48 overflow-auto`,children:[this.state.error.toString(),this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``]})]}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsxs)(re,{onClick:this.handleReset,variant:`outline`,className:`flex-1`,children:[(0,X.jsx)(ne,{name:`restart`,className:`h-4 w-4 mr-2`}),e.tryAgain]}),(0,X.jsx)(re,{onClick:this.handleCopy,variant:`outline`,className:`flex-1`,children:this.state.copied?e.copied:e.copy})]})]})]})}):this.props.children}},lt=e=>{let t=(0,O.c)(29),{children:n,fallback:r}=e,{t:i}=y(),a;t[0]===i?a=t[1]:(a=i(`errorBoundary.state.unknownError`),t[0]=i,t[1]=a);let o;t[2]===i?o=t[3]:(o=i(`errorBoundary.title`),t[2]=i,t[3]=o);let s;t[4]===i?s=t[5]:(s=i(`errorBoundary.description`),t[4]=i,t[5]=s);let c;t[6]===i?c=t[7]:(c=i(`errorBoundary.actions.errorDetails`),t[6]=i,t[7]=c);let l;t[8]===i?l=t[9]:(l=i(`errorBoundary.state.componentStackLabel`),t[8]=i,t[9]=l);let u;t[10]===i?u=t[11]:(u=i(`errorBoundary.actions.tryAgain`),t[10]=i,t[11]=u);let d;t[12]===i?d=t[13]:(d=i(`errorBoundary.actions.copied`),t[12]=i,t[13]=d);let f;t[14]===i?f=t[15]:(f=i(`errorBoundary.actions.copy`),t[14]=i,t[15]=f);let p;t[16]!==a||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==l||t[21]!==u||t[22]!==d||t[23]!==f?(p={unknownError:a,title:o,description:s,detailsSummary:c,componentStackLabel:l,tryAgain:u,copied:d,copy:f},t[16]=a,t[17]=o,t[18]=s,t[19]=c,t[20]=l,t[21]=u,t[22]=d,t[23]=f,t[24]=p):p=t[24];let m=p,h;return t[25]!==n||t[26]!==r||t[27]!==m?(h=(0,X.jsx)(ct,{fallback:r,strings:m,children:n}),t[25]=n,t[26]=r,t[27]=m,t[28]=h):h=t[28],h},Q=e=>S(x.getState().dictionary,e),ut=e=>typeof e!=`number`||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.round(e))),dt=e=>typeof e!=`number`||!Number.isFinite(e)?`-`:`${Math.round(e)}%`,ft=(e,t)=>e??dt(t),pt=(e,t,n=`auto`)=>{if(!e)return t??``;try{let r=new Date(e);if(!Number.isFinite(r.getTime()))return t??``;let i=new Date;return r.toDateString()===i.toDateString()?le(r,n,{fallback:t??``}):ce(r,n,{month:`short`,day:`numeric`,weekday:`short`,hour:`numeric`,minute:`2-digit`})}catch{return t??``}},mt=e=>e===null?`safe`:e>=80?`critical`:e>=50?`warn`:`safe`,ht=e=>e===`5h`?Q(`quota.window.5h`):e===`7d`?Q(`quota.window.7d`):e===`7d-sonnet`?Q(`quota.window.7dSonnet`):e===`7d-opus`?Q(`quota.window.7dOpus`):e===`weekly`?Q(`quota.window.weekly`):e===`daily`?Q(`quota.window.daily`):e===`monthly`?Q(`quota.window.monthly`):e===`credits`?Q(`quota.window.credits`):e===`credits_balance`?Q(`quota.window.creditsBalance`):e===`billing_cycle`?Q(`quota.window.billingCycle`):e===`auto`?Q(`quota.window.auto`):e===`api`?Q(`quota.window.api`):e===`plan_limit`?Q(`quota.window.planLimit`):e===`on_demand`?Q(`quota.window.onDemand`):e===`session`?Q(`quota.window.session`):e===`premium`?Q(`quota.window.premium`):e===`chat`?Q(`quota.window.chat`):e===`completions`?Q(`quota.window.completions`):e===`premium_interactions`?Q(`quota.window.premiumInteractions`):e,gt=e=>{let t=e.toLowerCase().trim();if(t===`5h`)return 18e3;if(t===`7d`||t===`weekly`||t===`7d-sonnet`||t===`7d-opus`)return 604800;if(t===`monthly`)return 2592e3;if(t===`24h`||t===`daily`)return 86400;if(t===`1h`)return 3600;let n=t.match(/^(\d+)h$/);if(n)return parseInt(n[1],10)*3600;let r=t.match(/^(\d+)d$/);return r?parseInt(r[1],10)*86400:null},_t=(e,t,n,r)=>{let i=n;if(i===null&&r&&(i=gt(r)),e===null||t===null||i===null||i<=0)return null;let a=Math.max(0,(t-Date.now())/1e3),o=Math.max(0,Math.min(i,i-a)),s=Math.max(0,Math.min(1,o/i)),c=e/100,l=e>=100&&a>0,u;u=s>.01?Math.min(999,c/s*100):e;let d;d=l?`exhausted`:c<=s?`on-track`:u<=130?`slightly-fast`:`too-fast`;let f=i>=432e3,p=f?86400:3600,m=f?`d`:`h`,h=i/p,g=e/Math.max(o/p,h*.01),_=Number.isFinite(g)?`${Math.min(999.9,Math.max(0,g)).toFixed(1)}%/${m}`:`-`,v=u>100?`+${Math.round(u)}%`:`${Math.round(u)}%`,y=null,b=i/86400;return b>=7&&(y=100/b),{elapsedRatio:s,usageRatio:c,predictedFinalPercent:u,remainingSeconds:a,isExhausted:l,elapsedSeconds:o,totalSeconds:i,status:d,paceRateText:_,predictText:v,dailyAllocationPercent:y}},vt=e=>{switch(e){case`exhausted`:case`too-fast`:return`var(--status-error)`;case`slightly-fast`:return`var(--status-warning)`;case`on-track`:return`var(--status-success)`}},yt=e=>{let t=Math.floor(Math.max(0,Math.floor(e))/60),n=Math.floor(t/60),r=Math.floor(n/24),i=n%24,a=t%60;return r>0?`${r}d ${i}h`:n>0?`${n}h`:t===0?`<1m`:`${a}m`},bt=e=>Math.min(100,Math.max(0,e*100)),xt=[`standalone`,`minimal-ui`,`fullscreen`,`window-controls-overlay`],St=`openchamber.pwaRecentSessions`,Ct=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(display-mode: ${e})`).matches,wt=()=>typeof window>`u`?`browser`:typeof document<`u`&&document.referrer.startsWith(`android-app://`)?`twa`:window.navigator.standalone?`standalone`:xt.find(e=>Ct(e))??`browser`,Tt=864e5,Et=5,Dt=864e5,$=e=>e.time?.updated??e.time?.created??0,Ot=({sessions:e,currentSessionId:t,cutoffDays:n,keepRecent:r=Et,now:i=Date.now()})=>{if(!Array.isArray(e)||n<=0)return[];let a=i-n*Tt,o=[...e].sort((e,t)=>$(t)-$(e)),s=new Set(o.slice(0,r).map(e=>e.id));return o.filter(e=>{if(!e?.id||s.has(e.id)||e.id===t||e.share)return!1;let n=$(e);return n?n<a:!1}).map(e=>e.id)},kt=e=>{let t=typeof e==`object`?e:void 0,r=t?.autoRun!==!1,i=typeof e==`boolean`?e:t?.enabled??!0,a=T(e=>e.currentSessionId),o=T(e=>e.isLoading),s=E(e=>e.activeSessions),c=E(e=>e.hasLoadedFullCatalog),l=n(e=>e.autoDeleteEnabled),u=n(e=>e.autoDeleteAfterDays),d=n(e=>e.sessionRetentionAction),f=n(e=>e.autoDeleteLastRunAt),p=n(e=>e.setAutoDeleteLastRunAt),[h,g]=Y.useState(!1),_=Y.useRef(!1);Y.useEffect(()=>{if(!i||!r||!l||u<=0)return;let e=window.setTimeout(()=>{w(C())},8e3);return()=>window.clearTimeout(e)},[u,l,r,i]);let v=Y.useMemo(()=>u<=0?[]:Ot({sessions:s,currentSessionId:a,cutoffDays:u}),[u,a,s]),y=Y.useCallback(async({force:e=!1}={})=>{if(_.current)return{completedIds:[],failedIds:[],action:d,skippedReason:`running`};if((!l||u<=0)&&!e)return{completedIds:[],failedIds:[],action:d,skippedReason:`disabled`};if(o)return{completedIds:[],failedIds:[],action:d,skippedReason:`loading`};let t=Date.now();if(!e&&f&&t-f<Dt)return{completedIds:[],failedIds:[],action:d,skippedReason:`cooldown`};let{activeSessions:n}=await w(C());if(n.length===0)return{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};let r=Ot({sessions:n,currentSessionId:a,cutoffDays:u,now:t});if(r.length===0)return p(t),{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};_.current=!0,g(!0);try{let e=new Map(n.map(e=>[e.id,e])),t=[],i=[];for(let n of r){let r=e.get(n),a=r?te(r):null;if(!a){i.push(n);continue}try{d===`archive`?await m.updateSession(n,{time:{archived:Date.now()}},a):await m.deleteSession(n,a),t.push(n)}catch{i.push(n)}}return d===`archive`?E.getState().archiveSessions(t):E.getState().removeSessions(t),{completedIds:t,failedIds:i,action:d}}finally{_.current=!1,g(!1),p(Date.now())}},[u,l,f,a,o,d,p]);return Y.useEffect(()=>{i&&r&&(!l||u<=0||o||!c||s.length===0||f&&Date.now()-f<Dt||y())},[u,l,f,r,i,c,s.length,o,y]),{candidates:v,isRunning:h,runCleanup:y,keepRecentCount:Et,action:d}};export{Ee as A,Oe as B,J as C,rt as D,it as E,Te as F,We as G,Le as H,Ce as I,he as J,pe as K,we as L,He as M,Ue as N,je as O,De as P,ke as R,nt as S,$e as T,Re as U,ze as V,Be as W,ot as _,_t as a,G as b,ft as c,vt as d,mt as f,at as g,st as h,bt as i,Ve as j,Se as k,yt as l,Z as m,St as n,ut as o,lt as p,me as q,wt as r,pt as s,kt as t,ht as u,et as v,Ze as w,tt as x,Qe as y,Ae as z};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{M as t,t as n}from"./useUIStore-5agS8bsW.js";import{Kt as r,kn as i,qt as a,u as o}from"./persistence-oSFWyKgV.js";import{h as s}from"./desktopHosts-DSgGxDpI.js";import{a as c,i as l,o as u,r as d}from"./desktopRelayRestore-DVIx7jsz.js";import{nt as f,rt as p}from"./vendor-base-ui-CnHfUmDN.js";import{kt as m}from"./gitApiHttp-SLrnr8a5.js";import{n as h}from"./vendor-react-DLPElpoQ.js";import{n as g}from"./vendor-tanstack-query-core-BWz0ose6.js";import{i as _,r as v}from"./vendor-tanstack-react-query-D7pys_c9.js";import{n as y,t as b}from"./clipboard-DF5tFLDb.js";import{i as x,t as S}from"./store-OURVnLSN.js";import{Xi as C,hr as w,l as T,tr as ee,wr as E,xr as te}from"./useMobileNavigationStore-Rel8oStT.js";import{t as D}from"./utils-Dxsi3J3l.js";import{n as ne}from"./Icon-DHaR0peD.js";import{t as re}from"./button-DCUMIXDC.js";import{i as ie,n as ae,r as oe,t as se}from"./vendor-simplewebauthn-browser-Dwhcdg_5.js";import{n as ce,r as le}from"./radio-snHzR8-Z.js";var O=h(),k=[`desktopHostSwitch`],A=class extends Error{result;host;constructor(e,t){super(e.reason),this.name=`DesktopHostSwitchError`,this.result=e,this.host=t}},ue=(e,t)=>S(x.getState().dictionary,e,t),de=async e=>{let{host:n}=e;if(n.id===`local`){let r=(e.localApiOrigin||``).trim();if(!r)throw new A({ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unreachable`},n);return t({apiBaseUrl:r,clientToken:e.localClientToken||null,runtimeKey:l(n)}),{ok:!0,via:`direct`,status:{status:`ok`,latencyMs:0}}}if(n.viaSshRelay){let e=await u(n);if(!e.ok)throw new A(e,n);return e}let r=await c(n,{cachedProbe:e.cachedProbe});if(!r.ok)throw new A(r,n);return r},j=null,fe=()=>j||(j=new g(o,{mutationKey:k,mutationFn:de,onError:(e,t)=>{e instanceof A&&e.result.reason!==`unsupported`&&ee.error(ue(`desktopHostSwitcher.toast.instanceUnreachable`,{host:s(t.host.label)}))}}),j.subscribe(()=>void 0),j),pe=async e=>{if(d(e.host))return{ok:!0,via:`direct`,status:e.cachedProbe?.status===`ok`?e.cachedProbe:{status:`ok`,latencyMs:0}};if(o.isMutating({mutationKey:k})>0)return{ok:!1,status:{status:`unreachable`,latencyMs:0},reason:`unsupported`};try{return await fe().mutate(e)}catch(e){if(e instanceof A)return e.result;throw e}},me=()=>{let e=(0,O.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationKey:k},e[0]=t):t=e[0],v(t)>0},he=()=>{let e=(0,O.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={filters:{mutationKey:k,status:`pending`},select:ge},e[0]=t):t=e[0],_(t)[0]?.host.id??null};function ge(e){return e.state.variables}var M=e=>typeof e==`object`&&!!e,N=(e,t)=>{let n=e[t];return typeof n==`string`?n:null},P=(e,t)=>{let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:null},F=(e,t)=>{let n=e[t];return typeof n==`boolean`?n:null},I=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],L=()=>r()?(e,t)=>a(e,t):null,R=e=>{if(!M(e))return;let t=F(e,`enabled`)??!1,n=N(e,`store`)?.toLowerCase()===`settings`?`settings`:`never`,r=N(e,`value`);return{enabled:t,store:n,...r?{value:r}:{}}},_e=e=>e===`remote`||e===`dynamic`?e:`local`,ve=e=>{if(!M(e))return null;let t=N(e,`id`);if(!t)return null;let n=F(e,`enabled`)??!0,r=_e(N(e,`type`)),i=N(e,`localHost`)||N(e,`local_host`)||void 0,a=P(e,`localPort`)??P(e,`local_port`)??void 0,o=N(e,`remoteHost`)||N(e,`remote_host`)||void 0,s=P(e,`remotePort`)??P(e,`remote_port`)??void 0;return{id:t,enabled:n,type:r,...i?{localHost:i}:{},...typeof a==`number`?{localPort:a}:{},...o?{remoteHost:o}:{},...typeof s==`number`?{remotePort:s}:{}}},ye=e=>{if(!M(e))return null;let t=N(e,`id`),n=N(e,`sshCommand`)||N(e,`ssh_command`);if(!t||!n)return null;let r=N(e,`nickname`),i=e.sshParsed,a=M(i)?{destination:N(i,`destination`)||``,args:I(i.args)}:void 0,o=M(e.remoteOpenchamber)?e.remoteOpenchamber:M(e.remote_openchamber)?e.remote_openchamber:{},s=M(e.localForward)?e.localForward:M(e.local_forward)?e.local_forward:{},c=M(e.auth)?e.auth:{},l=N(o,`mode`)?.toLowerCase()===`external`?`external`:`managed`,u=N(o,`installMethod`)||N(o,`install_method`),d=u===`npm`||u===`download_release`||u===`upload_bundle`?u:`bun`,f=N(s,`bindHost`)||N(s,`bind_host`)||`127.0.0.1`,p=f===`localhost`||f===`0.0.0.0`?f:`127.0.0.1`,m=(Array.isArray(e.portForwards)?e.portForwards:Array.isArray(e.port_forwards)?e.port_forwards:[]).map(e=>ve(e)).filter(e=>!!e),h=P(o,`preferredPort`)??P(o,`preferred_port`),g=P(s,`preferredLocalPort`)??P(s,`preferred_local_port`),_=R(c.sshPassword||c.ssh_password),v=R(c.openchamberPassword||c.openchamber_password);return{id:t,...r?{nickname:r}:{},sshCommand:n,...a&&a.destination?{sshParsed:a}:{},connectionTimeoutSec:P(e,`connectionTimeoutSec`)??P(e,`connection_timeout_sec`)??60,remoteOpenchamber:{mode:l,keepRunning:F(o,`keepRunning`)??F(o,`keep_running`)??!0,...h?{preferredPort:h}:{},installMethod:d,uploadBundleOverSsh:F(o,`uploadBundleOverSsh`)??F(o,`upload_bundle_over_ssh`)??!1},localForward:{...g?{preferredLocalPort:g}:{},bindHost:p},auth:{..._?{sshPassword:_}:{},...v?{openchamberPassword:v}:{}},portForwards:m}},be=e=>{switch(e){case`config_resolved`:case`auth_check`:case`master_connecting`:case`remote_probe`:case`installing`:case`updating`:case`server_detecting`:case`server_starting`:case`forwarding`:case`ready`:case`degraded`:case`error`:return e;default:return`idle`}},z=e=>{if(!M(e))return null;let t=N(e,`id`);return t?{id:t,phase:be(N(e,`phase`)),...N(e,`detail`)?{detail:N(e,`detail`)||void 0}:{},...N(e,`localUrl`)||N(e,`local_url`)?{localUrl:N(e,`localUrl`)||N(e,`local_url`)||void 0}:{},...typeof(P(e,`localPort`)??P(e,`local_port`))==`number`?{localPort:P(e,`localPort`)??P(e,`local_port`)??void 0}:{},...typeof(P(e,`remotePort`)??P(e,`remote_port`))==`number`?{remotePort:P(e,`remotePort`)??P(e,`remote_port`)??void 0}:{},startedByUs:F(e,`startedByUs`)??F(e,`started_by_us`)??!1,retryAttempt:P(e,`retryAttempt`)??P(e,`retry_attempt`)??0,requiresUserAction:F(e,`requiresUserAction`)??F(e,`requires_user_action`)??!1,updatedAtMs:P(e,`updatedAtMs`)??P(e,`updated_at_ms`)??Date.now()}:null},xe=e=>{if(!M(e))return null;let t=N(e,`host`),n=N(e,`source`),r=N(e,`sshCommand`)||N(e,`ssh_command`);return!t||!n||!r?null:{host:t,source:n,sshCommand:r,pattern:F(e,`pattern`)??!1}},Se=(e,t)=>({id:e,sshCommand:t,connectionTimeoutSec:60,remoteOpenchamber:{mode:`managed`,keepRunning:!0,installMethod:`bun`,uploadBundleOverSsh:!1},localForward:{bindHost:`127.0.0.1`},auth:{},portForwards:[]}),Ce=async()=>{let e=L();if(!e)return{instances:[]};let t=await e(`desktop_ssh_instances_get`);return M(t)?{instances:(Array.isArray(t.instances)?t.instances:Array.isArray(t.desktopSshInstances)?t.desktopSshInstances:[]).map(e=>ye(e)).filter(e=>!!e)}:{instances:[]}},we=async e=>{let t=L();t&&await t(`desktop_ssh_instances_set`,{config:{instances:e.instances}})},Te=async()=>{let e=L();if(!e)return[];let t=await e(`desktop_ssh_import_hosts`);return Array.isArray(t)?t.map(e=>xe(e)).filter(e=>!!e):[]},Ee=async e=>{let t=L();t&&await t(`desktop_ssh_connect`,{id:e})},De=async e=>{let t=L();t&&await t(`desktop_ssh_disconnect`,{id:e})},Oe=async e=>{let t=L();if(!t)return[];let n=await t(`desktop_ssh_status`,{...e?{id:e}:{}});return Array.isArray(n)?n.map(e=>z(e)).filter(e=>!!e):[]},ke=async(e,t)=>{let n=L();if(!n)return[];let r=await n(`desktop_ssh_logs`,{id:e,...typeof t==`number`?{limit:t}:{}});return Array.isArray(r)?r.filter(e=>typeof e==`string`):[]},Ae=async e=>{let t=L();t&&await t(`desktop_ssh_logs_clear`,{id:e})},je=(e,t)=>{let n=Math.max(0,Math.trunc(Number(e.fileGroups)||0)),r=Math.max(0,Math.trunc(Number(e.singleFiles)||0)),i=Math.max(0,Math.trunc(Number(e.directories)||0));return{fileGroups:Array.from({length:n},()=>!0),singleFiles:Array.from({length:r},()=>!0),directories:Array.from({length:i},()=>!0),agentsRoot:!0,authFile:t?.includeAuthFile===!0}},Me=e=>{if(!M(e))return null;let t=N(e,`path`),n=P(e,`bytes`);return!t||n===null?null:{path:t,bytes:n}},Ne=e=>{if(!M(e))return null;let t=N(e,`path`),n=P(e,`fileCount`)??P(e,`file_count`),r=P(e,`bytes`);return!t||n===null||r===null?null:{path:t,fileCount:n,bytes:r}},Pe=e=>{if(e==null||!M(e))return null;let t=P(e,`fileCount`)??P(e,`file_count`),n=P(e,`bytes`);return t===null||n===null?null:{fileCount:t,bytes:n}},B=e=>{if(e==null||!M(e))return null;let t=P(e,`bytes`);return t===null?null:{bytes:t}},V=e=>{if(!M(e))return null;let t=Array.isArray(e.files)?e.files:null,n=Array.isArray(e.directories)?e.directories:null,r=I(e.deletes),i=P(e,`totalBytes`)??P(e,`total_bytes`);if(!t||!n||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=t.map(e=>Me(e)).filter(e=>!!e),o=n.map(e=>Ne(e)).filter(e=>!!e);if(a.length!==t.length||o.length!==n.length)return null;let s=e.agentsRoot??e.agents_root,c=s==null?null:Pe(s);if(s!=null&&c===null)return null;let l=e.authFile??e.auth_file,u=l==null?null:B(l),d=e.direction===`pull`||e.direction===`push`?e.direction:void 0,f=e.selections,p=M(f)?{fileGroups:Array.isArray(f.fileGroups)?f.fileGroups.map(e=>e!==!1):[],singleFiles:Array.isArray(f.singleFiles)?f.singleFiles.map(e=>e!==!1):[],directories:Array.isArray(f.directories)?f.directories.map(e=>e!==!1):[],agentsRoot:f.agentsRoot!==!1,authFile:f.authFile===!0}:void 0,m=H(e.selectionShape??e.selection_shape);return{files:a,directories:o,agentsRoot:c,authFile:u,deletes:r,totalBytes:i,...d?{direction:d}:{},...p?{selections:p}:{},...m?{selectionShape:m}:{}}},H=e=>{if(!M(e))return null;let t=P(e,`fileGroups`)??P(e,`file_groups`),n=P(e,`singleFiles`)??P(e,`single_files`),r=P(e,`directories`);return t===null||n===null||r===null||t<0||n<0||r<0?null:{fileGroups:t,singleFiles:n,directories:r}},Fe=e=>{if(!M(e))return null;let t=V(e.plan);if(!t)return null;let n=H(e.selectionShape??e.selection_shape)??t.selectionShape??null;return{plan:t,remoteExisting:I(e.remoteExisting??e.remote_existing),remoteAgentsRootExists:F(e,`remoteAgentsRootExists`)??F(e,`remote_agents_root_exists`)??!1,remoteAuthFileExists:F(e,`remoteAuthFileExists`)??F(e,`remote_auth_file_exists`)??!1,...typeof e.credentialAuthorized==`boolean`?{credentialAuthorized:e.credentialAuthorized}:{},...n?{selectionShape:n}:{}}},Ie=e=>{if(!M(e)||F(e,`ok`)!==!0)return null;let t=P(e,`files`),n=P(e,`directories`),r=P(e,`deletes`),i=P(e,`totalBytes`)??P(e,`total_bytes`);if(t===null||n===null||r===null||i===null||!(`agentsRoot`in e)&&!(`agents_root`in e))return null;let a=e.agentsRoot??e.agents_root,o=null;if(a!=null){if(!M(a))return null;let e=P(a,`fileCount`)??P(a,`file_count`);if(e===null)return null;o={fileCount:e}}let s=e.authFile??e.auth_file,c=s==null?null:B(s);return{ok:!0,files:t,directories:n,deletes:r,totalBytes:i,agentsRoot:o,authFile:c}},Le=async(e={})=>{let t=L();if(!t)return null;let n=await t(`desktop_ssh_sync_opencode_config`,{stage:`local`,...e.direction?{direction:e.direction}:{},...e.selections?{selections:e.selections}:{}});if(!M(n))return null;let r=V(n.plan);if(!r)return null;let i=H(n.selectionShape??n.selection_shape)??r.selectionShape??null;return i?{...r,selectionShape:i}:r},Re=async(e,t={})=>{let n=L();return n?Fe(await n(`desktop_ssh_sync_opencode_config`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}})):null},ze=async(e,t={})=>{let n=L();return n?Ie(await n(`desktop_ssh_sync_opencode_config`,{id:e,apply:!0,...t.targetKind?{targetKind:t.targetKind}:{},...t.direction?{direction:t.direction}:{},...t.selections?{selections:t.selections}:{}})):null},Be=async(e,t={})=>{let n=L();if(!n)return[];let r=await n(`desktop_ssh_sync_runs_list`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}});return Array.isArray(r)?r.filter(e=>M(e)&&typeof e.syncRunId==`string`&&typeof e.targetId==`string`):[]},U=e=>{if(!M(e))return null;let t=typeof e.targetId==`string`?e.targetId.trim():``;if(!t)return null;let n=e.authorized===!0,r=typeof e.grantedAt==`string`&&e.grantedAt.trim()?e.grantedAt.trim():void 0,i=typeof e.channel==`string`&&e.channel.trim()?e.channel.trim():void 0;return{targetId:t,authorized:n,...r?{grantedAt:r}:{},...i?{channel:i}:{}}},Ve=async(e,t={})=>{let n=L();return n?U(await n(`desktop_ssh_credential_sync_get`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},He=async(e,t={})=>{let n=L();return n?U(await n(`desktop_ssh_credential_sync_grant`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},Ue=async(e,t={})=>{let n=L();return n?U(await n(`desktop_ssh_credential_sync_revoke`,{id:e,...t.targetKind?{targetKind:t.targetKind}:{}})):null},We=async e=>{if(!r())return async()=>{};let t=window.__OPENCHAMBER_DESKTOP__?.listen;if(typeof t!=`function`)return async()=>{};let n=await t(`openchamber:ssh-instance-status`,t=>{let n=z(t?.payload);n&&e(n)});return async()=>{await n()}},Ge=`/auth/passkey/authenticate/options`,Ke=`/auth/passkey/authenticate/verify`,qe=`/auth/passkey/register/options`,Je=`/auth/passkey/register/verify`,W=`/api/passkeys`,Ye=`/auth/passkey/status`,Xe=`/api/auth/reset`,G={enabled:!1,hasPasskeys:!1,passkeyCount:0,rpID:null},K=async(e,t)=>i(e,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:t===void 0?void 0:JSON.stringify(t)}),q=async(e,t)=>{try{let t=await e.json();if(t&&typeof t.error==`string`&&t.error.trim())return t.error}catch{}return t},Ze=e=>e instanceof ie&&e.code===`ERROR_CEREMONY_ABORTED`,Qe=()=>{oe.cancelCeremony()},J=()=>typeof window>`u`?{supported:!1,reason:`Passkeys are unavailable outside the browser.`}:window.isSecureContext?{supported:!0,reason:``}:{supported:!1,reason:`Passkeys require HTTPS or localhost.`},$e=async()=>{let e=J();if(!e.supported)throw Error(e.reason);let t=await K(qe,{label:typeof navigator.userAgent==`string`&&navigator.userAgent.trim()?navigator.userAgent:`This device`});if(!t.ok)throw Error(await q(t,`Could not start passkey setup.`));let{requestId:n,optionsJSON:r}=await t.json(),i=await K(Je,{requestId:n,response:await ae({optionsJSON:r})});if(!i.ok)throw Error(await q(i,`Could not finish passkey setup.`));return i.json().catch(()=>null)},et=async(e,t={})=>{let n=J();if(!n.supported)throw Error(n.reason);let r=await K(Ge);if(!r.ok)throw Error(await q(r,`Passkey sign-in is not available right now.`));let{requestId:i,optionsJSON:a}=await r.json(),o=await K(Ke,{requestId:i,response:await se({optionsJSON:a}),trustDevice:e,issueClientToken:t.issueClientToken===!0,clientLabel:t.clientLabel,clientKind:t.clientKind,dedupeKey:t.dedupeKey});if(!o.ok)throw Error(await q(o,`Passkey sign-in failed.`));return o.json().catch(()=>null)},tt=async()=>{let e=await i(Ye,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return G;let t=await e.json().catch(()=>null);return{enabled:t?.enabled===!0,hasPasskeys:t?.hasPasskeys===!0,passkeyCount:typeof t?.passkeyCount==`number`?t.passkeyCount:0,rpID:typeof t?.rpID==`string`&&t.rpID?t.rpID:null}},nt=async()=>{let e=await i(W,{method:`GET`,credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(await q(e,`Could not load passkeys.`));let t=await e.json().catch(()=>null);return Array.isArray(t?.passkeys)?t.passkeys:[]},rt=async e=>{let t=await i(`${W}/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok)throw Error(await q(t,`Could not remove passkey.`));return t.json().catch(()=>null)},it=async()=>{let e=await K(Xe);if(!e.ok)throw Error(await q(e,`Could not clear saved authentication.`));return e.json().catch(()=>null)},Y=e(p(),1),X=f();function Z(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-none`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function at(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function ot(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`leading-none font-semibold`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function st(e){let t=(0,O.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=D(`px-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,X.jsx)(`div`,{"data-slot":`card-content`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var ct=class extends Y.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t,copied:!1}),console.error(`Error caught by boundary:`,e,t)}handleReset=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})};handleCopy=async()=>{let{strings:e}=this.props,t=`${this.state.error?String(this.state.error):e.unknownError}${this.state.error?.stack?`\n\nStack:\n${this.state.error.stack}`:``}${this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``}`;(await b(t)).ok&&(this.setState({copied:!0}),window.setTimeout(()=>{this.setState(e=>e.copied?{copied:!1}:null)},1500))};render(){let{strings:e}=this.props;return this.state.hasError?this.props.fallback?this.props.fallback:(0,X.jsx)(`div`,{className:`p-4 flex items-center justify-center min-h-screen`,children:(0,X.jsxs)(Z,{className:`w-full max-w-md`,children:[(0,X.jsx)(at,{className:`text-center`,children:(0,X.jsxs)(ot,{className:`flex items-center justify-center gap-2 text-destructive`,children:[(0,X.jsx)(ne,{name:`error-warning`,className:`h-5 w-5`}),e.title]})}),(0,X.jsxs)(st,{className:`space-y-4`,children:[(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:e.description}),this.state.error&&(0,X.jsxs)(`details`,{className:`text-xs font-mono bg-muted p-3 rounded`,children:[(0,X.jsx)(`summary`,{className:`cursor-pointer hover:bg-interactive-hover/80`,children:e.detailsSummary}),(0,X.jsxs)(`pre`,{className:`mt-2 max-h-48 overflow-auto`,children:[this.state.error.toString(),this.state.errorInfo?.componentStack?`\n\n${e.componentStackLabel}${this.state.errorInfo.componentStack}`:``]})]}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsxs)(re,{onClick:this.handleReset,variant:`outline`,className:`flex-1`,children:[(0,X.jsx)(ne,{name:`restart`,className:`h-4 w-4 mr-2`}),e.tryAgain]}),(0,X.jsx)(re,{onClick:this.handleCopy,variant:`outline`,className:`flex-1`,children:this.state.copied?e.copied:e.copy})]})]})]})}):this.props.children}},lt=e=>{let t=(0,O.c)(29),{children:n,fallback:r}=e,{t:i}=y(),a;t[0]===i?a=t[1]:(a=i(`errorBoundary.state.unknownError`),t[0]=i,t[1]=a);let o;t[2]===i?o=t[3]:(o=i(`errorBoundary.title`),t[2]=i,t[3]=o);let s;t[4]===i?s=t[5]:(s=i(`errorBoundary.description`),t[4]=i,t[5]=s);let c;t[6]===i?c=t[7]:(c=i(`errorBoundary.actions.errorDetails`),t[6]=i,t[7]=c);let l;t[8]===i?l=t[9]:(l=i(`errorBoundary.state.componentStackLabel`),t[8]=i,t[9]=l);let u;t[10]===i?u=t[11]:(u=i(`errorBoundary.actions.tryAgain`),t[10]=i,t[11]=u);let d;t[12]===i?d=t[13]:(d=i(`errorBoundary.actions.copied`),t[12]=i,t[13]=d);let f;t[14]===i?f=t[15]:(f=i(`errorBoundary.actions.copy`),t[14]=i,t[15]=f);let p;t[16]!==a||t[17]!==o||t[18]!==s||t[19]!==c||t[20]!==l||t[21]!==u||t[22]!==d||t[23]!==f?(p={unknownError:a,title:o,description:s,detailsSummary:c,componentStackLabel:l,tryAgain:u,copied:d,copy:f},t[16]=a,t[17]=o,t[18]=s,t[19]=c,t[20]=l,t[21]=u,t[22]=d,t[23]=f,t[24]=p):p=t[24];let m=p,h;return t[25]!==n||t[26]!==r||t[27]!==m?(h=(0,X.jsx)(ct,{fallback:r,strings:m,children:n}),t[25]=n,t[26]=r,t[27]=m,t[28]=h):h=t[28],h},Q=e=>S(x.getState().dictionary,e),ut=e=>typeof e!=`number`||!Number.isFinite(e)?null:Math.max(0,Math.min(100,Math.round(e))),dt=e=>typeof e!=`number`||!Number.isFinite(e)?`-`:`${Math.round(e)}%`,ft=(e,t)=>e??dt(t),pt=(e,t,n=`auto`)=>{if(!e)return t??``;try{let r=new Date(e);if(!Number.isFinite(r.getTime()))return t??``;let i=new Date;return r.toDateString()===i.toDateString()?le(r,n,{fallback:t??``}):ce(r,n,{month:`short`,day:`numeric`,weekday:`short`,hour:`numeric`,minute:`2-digit`})}catch{return t??``}},mt=e=>e===null?`safe`:e>=80?`critical`:e>=50?`warn`:`safe`,ht=e=>e===`5h`?Q(`quota.window.5h`):e===`7d`?Q(`quota.window.7d`):e===`7d-sonnet`?Q(`quota.window.7dSonnet`):e===`7d-opus`?Q(`quota.window.7dOpus`):e===`weekly`?Q(`quota.window.weekly`):e===`daily`?Q(`quota.window.daily`):e===`monthly`?Q(`quota.window.monthly`):e===`credits`?Q(`quota.window.credits`):e===`credits_balance`?Q(`quota.window.creditsBalance`):e===`billing_cycle`?Q(`quota.window.billingCycle`):e===`auto`?Q(`quota.window.auto`):e===`api`?Q(`quota.window.api`):e===`plan_limit`?Q(`quota.window.planLimit`):e===`on_demand`?Q(`quota.window.onDemand`):e===`session`?Q(`quota.window.session`):e===`premium`?Q(`quota.window.premium`):e===`chat`?Q(`quota.window.chat`):e===`completions`?Q(`quota.window.completions`):e===`premium_interactions`?Q(`quota.window.premiumInteractions`):e,gt=e=>{let t=e.toLowerCase().trim();if(t===`5h`)return 18e3;if(t===`7d`||t===`weekly`||t===`7d-sonnet`||t===`7d-opus`)return 604800;if(t===`monthly`)return 2592e3;if(t===`24h`||t===`daily`)return 86400;if(t===`1h`)return 3600;let n=t.match(/^(\d+)h$/);if(n)return parseInt(n[1],10)*3600;let r=t.match(/^(\d+)d$/);return r?parseInt(r[1],10)*86400:null},_t=(e,t,n,r)=>{let i=n;if(i===null&&r&&(i=gt(r)),e===null||t===null||i===null||i<=0)return null;let a=Math.max(0,(t-Date.now())/1e3),o=Math.max(0,Math.min(i,i-a)),s=Math.max(0,Math.min(1,o/i)),c=e/100,l=e>=100&&a>0,u;u=s>.01?Math.min(999,c/s*100):e;let d;d=l?`exhausted`:c<=s?`on-track`:u<=130?`slightly-fast`:`too-fast`;let f=i>=432e3,p=f?86400:3600,m=f?`d`:`h`,h=i/p,g=e/Math.max(o/p,h*.01),_=Number.isFinite(g)?`${Math.min(999.9,Math.max(0,g)).toFixed(1)}%/${m}`:`-`,v=u>100?`+${Math.round(u)}%`:`${Math.round(u)}%`,y=null,b=i/86400;return b>=7&&(y=100/b),{elapsedRatio:s,usageRatio:c,predictedFinalPercent:u,remainingSeconds:a,isExhausted:l,elapsedSeconds:o,totalSeconds:i,status:d,paceRateText:_,predictText:v,dailyAllocationPercent:y}},vt=e=>{switch(e){case`exhausted`:case`too-fast`:return`var(--status-error)`;case`slightly-fast`:return`var(--status-warning)`;case`on-track`:return`var(--status-success)`}},yt=e=>{let t=Math.floor(Math.max(0,Math.floor(e))/60),n=Math.floor(t/60),r=Math.floor(n/24),i=n%24,a=t%60;return r>0?`${r}d ${i}h`:n>0?`${n}h`:t===0?`<1m`:`${a}m`},bt=e=>Math.min(100,Math.max(0,e*100)),xt=[`standalone`,`minimal-ui`,`fullscreen`,`window-controls-overlay`],St=`openchamber.pwaRecentSessions`,Ct=e=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(`(display-mode: ${e})`).matches,wt=()=>typeof window>`u`?`browser`:typeof document<`u`&&document.referrer.startsWith(`android-app://`)?`twa`:window.navigator.standalone?`standalone`:xt.find(e=>Ct(e))??`browser`,Tt=864e5,Et=5,Dt=864e5,$=e=>e.time?.updated??e.time?.created??0,Ot=({sessions:e,currentSessionId:t,cutoffDays:n,keepRecent:r=Et,now:i=Date.now()})=>{if(!Array.isArray(e)||n<=0)return[];let a=i-n*Tt,o=[...e].sort((e,t)=>$(t)-$(e)),s=new Set(o.slice(0,r).map(e=>e.id));return o.filter(e=>{if(!e?.id||s.has(e.id)||e.id===t||e.share)return!1;let n=$(e);return n?n<a:!1}).map(e=>e.id)},kt=e=>{let t=typeof e==`object`?e:void 0,r=t?.autoRun!==!1,i=typeof e==`boolean`?e:t?.enabled??!0,a=T(e=>e.currentSessionId),o=T(e=>e.isLoading),s=E(e=>e.activeSessions),c=E(e=>e.hasLoadedFullCatalog),l=n(e=>e.autoDeleteEnabled),u=n(e=>e.autoDeleteAfterDays),d=n(e=>e.sessionRetentionAction),f=n(e=>e.autoDeleteLastRunAt),p=n(e=>e.setAutoDeleteLastRunAt),[h,g]=Y.useState(!1),_=Y.useRef(!1);Y.useEffect(()=>{if(!i||!r||!l||u<=0)return;let e=window.setTimeout(()=>{w(C())},8e3);return()=>window.clearTimeout(e)},[u,l,r,i]);let v=Y.useMemo(()=>u<=0?[]:Ot({sessions:s,currentSessionId:a,cutoffDays:u}),[u,a,s]),y=Y.useCallback(async({force:e=!1}={})=>{if(_.current)return{completedIds:[],failedIds:[],action:d,skippedReason:`running`};if((!l||u<=0)&&!e)return{completedIds:[],failedIds:[],action:d,skippedReason:`disabled`};if(o)return{completedIds:[],failedIds:[],action:d,skippedReason:`loading`};let t=Date.now();if(!e&&f&&t-f<Dt)return{completedIds:[],failedIds:[],action:d,skippedReason:`cooldown`};let{activeSessions:n}=await w(C());if(n.length===0)return{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};let r=Ot({sessions:n,currentSessionId:a,cutoffDays:u,now:t});if(r.length===0)return p(t),{completedIds:[],failedIds:[],action:d,skippedReason:`no-candidates`};_.current=!0,g(!0);try{let e=new Map(n.map(e=>[e.id,e])),t=[],i=[];for(let n of r){let r=e.get(n),a=r?te(r):null;if(!a){i.push(n);continue}try{d===`archive`?await m.updateSession(n,{time:{archived:Date.now()}},a):await m.deleteSession(n,a),t.push(n)}catch{i.push(n)}}return d===`archive`?E.getState().archiveSessions(t):E.getState().removeSessions(t),{completedIds:t,failedIds:i,action:d}}finally{_.current=!1,g(!1),p(Date.now())}},[u,l,f,a,o,d,p]);return Y.useEffect(()=>{i&&r&&(!l||u<=0||o||!c||s.length===0||f&&Date.now()-f<Dt||y())},[u,l,f,r,i,c,s.length,o,y]),{candidates:v,isRunning:h,runCleanup:y,keepRecentCount:Et,action:d}};export{Ee as A,Oe as B,J as C,rt as D,it as E,Te as F,We as G,Le as H,Ce as I,he as J,pe as K,we as L,He as M,Ue as N,je as O,De as P,ke as R,nt as S,$e as T,Re as U,ze as V,Be as W,ot as _,_t as a,G as b,ft as c,vt as d,mt as f,at as g,st as h,bt as i,Ve as j,Se as k,yt as l,Z as m,St as n,ut as o,lt as p,me as q,wt as r,pt as s,kt as t,ht as u,et as v,Ze as w,tt as x,Qe as y,Ae as z};
@@ -1,4 +1,4 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t}from"./useUIStore-5agS8bsW.js";import{$t as n,kn as r,xn as i}from"./persistence-oSFWyKgV.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{a as s,n as c}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as l}from"./vendor-react-DLPElpoQ.js";import{n as u}from"./clipboard-DF5tFLDb.js";import{ko as d}from"./useMobileNavigationStore-BUsW7lSl.js";import{t as f}from"./utils-Dxsi3J3l.js";import{n as p}from"./Icon-DHaR0peD.js";import{t as m}from"./button-DCUMIXDC.js";import{i as h,n as g,t as _}from"./tooltip-xEnco9xY.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{c as y,n as b,o as x,r as S,s as C}from"./markdownTheme-y_Rf6mLa.js";import{i as w}from"./appThemeRegistry-DVSq4EWU.js";import{d as T,n as E,t as D,u as ee}from"./markdown-worker-D-OR2e_G.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(o(),1),k=l(),A=a(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=u(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,d;t[3]===o?d=t[4]:(d=o===`in_progress`?(0,A.jsx)(p,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(p,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(p,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=d);let m=d,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==m||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:m})}),t[7]=m,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=s(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&C(n)}},he=async(e,t)=>{let n=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,t)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,t);else{let e=y(a,n);if(x(e))try{i=await me(e.path,t)}catch{let n=await r(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:t});if(!n.ok)throw Error(`Image source request failed with status ${n.status}`);i=await n.blob()}else i=await G(e.source,t)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!d()||c===void 0?!1:c.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:r,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(r);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(n()){let e=i()?.vscode;if(e?.saveImage){let t=await W(r);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(r,a),`downloaded`},ve=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=b(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==y||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:y,style:S}),t[18]=y,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):T(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t}from"./useUIStore-5agS8bsW.js";import{$t as n,kn as r,xn as i}from"./persistence-oSFWyKgV.js";import{nt as a,rt as o}from"./vendor-base-ui-CnHfUmDN.js";import{a as s,n as c}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";import{n as l}from"./vendor-react-DLPElpoQ.js";import{n as u}from"./clipboard-DF5tFLDb.js";import{ko as d}from"./useMobileNavigationStore-Rel8oStT.js";import{t as f}from"./utils-Dxsi3J3l.js";import{n as p}from"./Icon-DHaR0peD.js";import{t as m}from"./button-DCUMIXDC.js";import{i as h,n as g,t as _}from"./tooltip-xEnco9xY.js";import{n as v}from"./useThemeSystem-DMzWVJaW.js";import{c as y,n as b,o as x,r as S,s as C}from"./markdownTheme-y_Rf6mLa.js";import{i as w}from"./appThemeRegistry-CtmzwV4x.js";import{d as T,n as E,t as D,u as ee}from"./markdown-worker-D-OR2e_G.js";import{t as te}from"./vendor-tanstack-react-virtual-tlDgH6PG.js";var O=e(o(),1),k=l(),A=a(),ne=`w-[min(30rem,calc(100cqw-1rem))] min-w-[280px] max-w-full overflow-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,j={maxWidth:`min(28rem, calc(100cqw - 4ch))`,backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},M=`flex items-center justify-between gap-3 border-b border-[var(--surface-subtle)] px-3 py-2.5`,N=`text-xs font-medium leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,re=`text-xs tabular-nums leading-4 text-muted-foreground md:text-[0.8125rem] md:leading-5`,P=`m-0 list-none divide-y divide-[var(--surface-subtle)] p-0`,F=`${P} max-h-[min(22rem,50vh)] overflow-y-auto`,ie=`${P} w-full`,ae={className:`p-0 rounded-none`,maxHeightClass:`max-h-[46vh]`,disableHorizontal:!0},I=`px-2.5 py-1.5 text-xs leading-4 md:py-2 md:text-[0.8125rem] md:leading-5`,oe=`flex min-w-0 items-center gap-1 text-xs leading-4 text-muted-foreground md:gap-1.5 md:text-[0.8125rem] md:leading-5`,se=`min-w-0 truncate text-xs leading-4 text-foreground md:text-[0.8125rem] md:leading-5`,ce=`inline-flex shrink-0 items-center gap-1 text-xs leading-4 tabular-nums text-muted-foreground md:text-[0.8125rem] md:leading-5`,le=`h-3 w-3 shrink-0 md:h-3.5 md:w-3.5`,ue={in_progress:`text-foreground`,pending:`text-foreground`,completed:`text-muted-foreground line-through`,cancelled:`text-muted-foreground line-through`},L={in_progress:`chat.statusRow.todo.status.inProgress`,pending:`chat.statusRow.todo.status.pending`,completed:`chat.statusRow.todo.status.completed`,cancelled:`chat.statusRow.todo.status.cancelled`},R=e=>{let t=(0,k.c)(26),{todo:n,isActive:r,activeRef:i}=e,{t:a}=u(),o=z.has(n.status)?n.status:`pending`,s=L[o],c;t[0]!==a||t[1]!==s?(c=a(s),t[0]=a,t[1]=s,t[2]=c):c=t[2];let l=c,d;t[3]===o?d=t[4]:(d=o===`in_progress`?(0,A.jsx)(p,{name:`record-circle`,className:`h-3.5 w-3.5 text-[var(--status-info)]`,"aria-hidden":`true`}):o===`completed`?(0,A.jsx)(p,{name:`checkbox-circle`,className:`h-3.5 w-3.5 text-[var(--status-success)]`,"aria-hidden":`true`}):(0,A.jsx)(p,{name:`time`,className:`h-3.5 w-3.5 text-muted-foreground`,"aria-hidden":`true`}),t[3]=o,t[4]=d);let m=d,v=r?`step`:void 0,y=r&&`bg-[var(--surface-muted)] before:absolute before:inset-y-2 before:left-0 before:w-0.5 before:rounded-full before:bg-[var(--status-info)]`,b;t[5]===y?b=t[6]:(b=f(`group relative grid min-w-0 grid-cols-[1rem_minmax(0,1fr)] items-start gap-2.5`,I,y),t[5]=y,t[6]=b);let x;t[7]!==m||t[8]!==l?(x=(0,A.jsx)(h,{asChild:!0,children:(0,A.jsx)(`span`,{className:`flex size-4 items-center justify-center`,"aria-label":l,children:m})}),t[7]=m,t[8]=l,t[9]=x):x=t[9];let S;t[10]===l?S=t[11]:(S=(0,A.jsx)(g,{side:`left`,sideOffset:6,children:l}),t[10]=l,t[11]=S);let C;t[12]!==x||t[13]!==S?(C=(0,A.jsxs)(_,{children:[x,S]}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w=ue[o],T;t[15]===w?T=t[16]:(T=f(`block whitespace-normal break-words`,w),t[15]=w,t[16]=T);let E;t[17]!==T||t[18]!==n.content?(E=(0,A.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,A.jsx)(`span`,{className:T,children:n.content})}),t[17]=T,t[18]=n.content,t[19]=E):E=t[19];let D;return t[20]!==i||t[21]!==E||t[22]!==v||t[23]!==b||t[24]!==C?(D=(0,A.jsxs)(`li`,{ref:i,"aria-current":v,className:b,children:[C,E]}),t[20]=i,t[21]=E,t[22]=v,t[23]=b,t[24]=C,t[25]=D):D=t[25],D},z=new Set([`in_progress`,`pending`,`completed`,`cancelled`]),B=`image/png`,V=s(`OpenChamberMedia`),H=e=>{let t=e.toLowerCase().split(`;`)[0]?.trim()||B;if(t===`image/jpeg`||t===`image/jpg`)return`jpg`;if(t===`image/webp`)return`webp`;if(t===`image/gif`)return`gif`;if(t===`image/svg+xml`)return`svg`;if(t===`image/png`)return`png`;let n=t.split(`/`)[1];return n&&/^[a-z0-9.+-]+$/i.test(n)?n:`png`},U=(e,t)=>{let n=`image.${H(t)}`,r=(((e||``).trim()||n).split(/[\\/]/).pop()||n).replace(/[^\w.\- ()[\]]+/g,`_`).replace(/^\.+/,``);return r?/\.[a-z0-9]{1,8}$/i.test(r)?r:`${r}.${H(t)}`:n},W=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`){t(r.result);return}n(Error(`Failed to encode image`))},r.onerror=()=>n(r.error??Error(`Failed to encode image`)),r.readAsDataURL(e)}),de=async e=>{let t=await W(e),n=t.indexOf(`,`);return n>=0?t.slice(n+1):t},fe=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)},G=async(e,t)=>{let n=await fetch(e,{signal:t,cache:`no-store`});if(!n.ok)throw Error(`Image fetch failed (${n.status})`);return n.blob()},pe=async(e,t=B)=>{if(!e.naturalWidth||!e.naturalHeight)return null;let n=e.currentSrc||e.src;if(n&&(/^(?:blob:|data:|openchamber-asset:)/i.test(n)||/^https?:/i.test(n)||/^\/api(?=\/|[?#]|$)/.test(n)))try{let e=await G(n);if(e.size>0)return e}catch{}try{let n=document.createElement(`canvas`);n.width=e.naturalWidth,n.height=e.naturalHeight;let r=n.getContext(`2d`);if(!r)return null;r.drawImage(e,0,0);let i=t.startsWith(`image/`)?t:B,a=await new Promise(e=>{n.toBlob(t=>e(t),i===`image/jpg`?`image/jpeg`:i)});return a&&a.size>0?a:null}catch{return null}},me=async(e,t)=>{let n=``;try{return n=await S(e,t??new AbortController().signal),await G(n,t)}finally{n&&C(n)}},he=async(e,t)=>{let n=e.effectiveDirectory??``,i=null;e.prefetchedBlob&&e.prefetchedBlob.size>0&&(i=e.prefetchedBlob);let a=e.displayUrl?.trim();if(!i&&a)try{i=await G(a,t)}catch{i=null}if(!i){let a=e.sourceUrl.trim();if(!a)throw Error(`Image source is empty`);if(/^(?:data|blob):/i.test(a)||/^https?:/i.test(a)||/^\/api(?=\/|[?#]|$)/.test(a))i=await G(a,t);else{let e=y(a,n);if(x(e))try{i=await me(e.path,t)}catch{let n=await r(`/api/fs/raw`,{method:`GET`,cache:`no-store`,query:{path:e.path},signal:t});if(!n.ok)throw Error(`Image source request failed with status ${n.status}`);i=await n.blob()}else i=await G(e.source,t)}}if(!i||i.size<=0)throw Error(`Image is empty`);let o=(e.mimeType||(i.type&&i.type.startsWith(`image/`)?i.type:``)||B).split(`;`)[0].trim()||B;return{blob:i,filename:U(e.filename,o),mimeType:o}},ge=()=>!d()||c===void 0?!1:c.isPluginAvailable(`OpenChamberMedia`),_e=async(e,t)=>{let{blob:r,filename:a,mimeType:o}=await he(e,t);if(ge()){let e=await de(r);return await V.saveImage({dataBase64:e,mimeType:o,filename:a}),`saved`}if(n()){let e=i()?.vscode;if(e?.saveImage){let t=await W(r);return await e.saveImage({fileName:a,dataUrl:t}),`saved`}}return fe(r,a),`downloaded`},ve=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`),ye=e=>e?Object.entries(e).map(([e,t])=>t==null?``:`${e.startsWith(`--`)?e:e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}:${typeof t==`number`?`${t}px`:t};`).join(``):``,K=(e,t,n)=>{let r=e.querySelector(`pre`);r&&(r.style.margin=`0`,r.style.background=`transparent`,r.style.whiteSpace=t?`pre-wrap`:`pre`,t&&(r.style.wordBreak=`break-word`,r.style.overflowWrap=`break-word`));let i=e.querySelector(`code`);if(i){let e=ye(n);e&&i.setAttribute(`style`,`${i.getAttribute(`style`)??``}${e}`)}},be=e=>`<pre><code>${ve(e)}</code></pre>`,xe=e=>{let t=(0,k.c)(21),{code:n,language:r,className:i,style:a,codeStyle:o,wrap:s}=e,c=s!==void 0&&s,{currentTheme:l}=v(),u=O.useRef(null),d;t[0]===l?d=t[1]:(d=b(l),t[0]=l,t[1]=d);let p=d,m,h;t[2]!==n||t[3]!==o||t[4]!==c?(m=()=>{let e=u.current;e&&(e.innerHTML=be(n),K(e,c,o))},h=[n,c,o],t[2]=n,t[3]=o,t[4]=c,t[5]=m,t[6]=h):(m=t[5],h=t[6]),O.useLayoutEffect(m,h);let g,_;t[7]!==n||t[8]!==o||t[9]!==r||t[10]!==c?(g=()=>{let e=u.current;if(!e)return;let t=!0,i=new AbortController;return D(n,(r||`text`).toLowerCase(),{signal:i.signal,priority:`visible`}).then(n=>{!t||!e||!n||(e.innerHTML=n,K(e,c,o))}),()=>{t=!1,i.abort()}},_=[n,r,c,o],t[7]=n,t[8]=o,t[9]=r,t[10]=c,t[11]=g,t[12]=_):(g=t[11],_=t[12]),O.useEffect(g,_);let y;t[13]===i?y=t[14]:(y=f(`typography-code`,i),t[13]=i,t[14]=y);let x=p,S;t[15]!==a||t[16]!==x?(S={...x,...a},t[15]=a,t[16]=x,t[17]=S):S=t[17];let C;return t[18]!==y||t[19]!==S?(C=(0,A.jsx)(`div`,{ref:u,className:y,style:S}),t[18]=y,t[19]=S,t[20]=C):C=t[20],C},Se=e=>{let t=e.replace(/^<file>\s*\n?/,``).replace(/\n?<\/file>\s*$/,``);return t=t.replace(/^\s*\d{5}\|\s?/gm,``),t.trim()},Ce=(e,t=``)=>{if(typeof e==`string`)return e;if(e==null)return t;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)}catch{return t}},we=e=>e?e.includes(`<diagnostics`)||e.includes(`<file_diagnostics>`)||e.includes(`LSP errors detected`)||e.includes(`This file has errors`):!1,Te=e=>e?e.replace(/\n{0,2}LSP errors detected[\s\S]*?<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/\n{0,2}This file has errors[\s\S]*?<\/file_diagnostics>/g,``).replace(/<diagnostics[^>]*>[\s\S]*?<\/diagnostics>/g,``).replace(/<file_diagnostics>[\s\S]*?<\/file_diagnostics>/g,``).trim():``,Ee=(e,t)=>!e||typeof e!=`object`?String(e):T(e,t||``),q=e=>{if(typeof e==`string`){let t=e.trim();return t.length>0?t:void 0}if(e&&typeof e==`object`){let t=e.patch;if(typeof t==`string`){let e=t.trim();return e.length>0?e:void 0}}},De=e=>{if(!e||typeof e!=`object`)return;let t=q(e.patch)??q(e.diff);if(t)return t;let n=Array.isArray(e.files)?e.files:[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=q(e.patch)??q(e.diff);if(t)return t}},Oe=e=>{if(!e||typeof e!=`string`)return{data:null,isJson:!1};let t=e.trim();if(!t.startsWith(`{`)&&!t.startsWith(`[`)||!t.endsWith(`}`)&&!t.endsWith(`]`)||t.length<2)return{data:null,isJson:!1};try{let e=JSON.parse(t);return typeof e==`object`&&e?{data:e,isJson:!0}:{data:null,isJson:!1}}catch{return{data:null,isJson:!1}}},ke=(e,t,n)=>{let r=Se(e);if((t===`edit`||t===`multiedit`||t===`write`||t===`apply_patch`)&&we(r)&&(r=Te(r)),(t===`edit`||t===`multiedit`||t===`apply_patch`)&&r.trim().length===0){let e=De(n);if(e)return e}return r},Ae=e=>{let t=e.match(/<type>(file|directory)<\/type>/i)?.[1]?.toLowerCase()??`unknown`,n=(e.match(/<content>([\s\S]*?)<\/content>/i)?.[1]??e).replace(/\r\n/g,`
2
2
  `).split(`
3
3
  `),r=e=>/\(\s*File has more lines\..*offset.*\)/i.test(e.trim());return{type:t,lines:n.map(e=>{let n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);if(t!==`directory`){let t=e.match(/^(\d+):\s?(.*)$/);if(t){let e=t[2],n=e.trim(),i=n.startsWith(`(`)&&n.endsWith(`)`)||r(n);return{lineNumber:i?null:Number(t[1]),text:e,isInfo:i}}}return{lineNumber:null,text:e,isInfo:i}}).filter((e,t,n)=>{if(e.text.trim().length>0)return!0;let r=n[t-1],i=n[t+1],a=!!(r?.isInfo||i?.isInfo),o=e.lineNumber!==null;return!(a&&o)})}},je=(e,n)=>{try{let r=e.trim().split(`
4
4
  `).filter(Boolean);if(r.length===0)return null;let i=[];return r.forEach(e=>{let t=e.match(/^(\s*)(.+)$/);if(t){let[,e,n]=t,r=Math.floor(e.length/2),a=!n.endsWith(`/`);i.push({name:n.replace(/\/$/,``),depth:r,isFile:a})}}),(0,A.jsx)(`div`,{className:f(`w-full min-w-0 font-mono space-y-0.5`,n?.unstyled?null:`p-3 bg-muted/20 rounded-xl border border-border/30`),style:t.tool.popup,children:i.map((e,t)=>(0,A.jsx)(`div`,{className:`min-w-0`,style:{paddingLeft:`${e.depth*20}px`},children:e.isFile?(0,A.jsx)(`span`,{className:`text-foreground/90 block truncate`,children:e.name}):(0,A.jsxs)(`span`,{className:`font-semibold text-foreground block truncate`,children:[e.name,`/`]})},t))})}catch{return null}},Me={backgroundColor:`var(--status-info)`,opacity:.6},Ne=(e,n,r)=>{try{let i=e.trim().split(`
package/dist/index.html CHANGED
@@ -552,7 +552,7 @@
552
552
  opacity: 0.72;
553
553
  }
554
554
  </style>
555
- <script type="module" crossorigin src="/assets/main-CE-WJrYW.js"></script>
555
+ <script type="module" crossorigin src="/assets/main-wiv-Mcf-.js"></script>
556
556
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
557
557
  <link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
558
558
  <link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
@@ -74,7 +74,7 @@
74
74
  }
75
75
  </style>
76
76
 
77
- <script type="module" crossorigin src="/assets/miniChat-BFIjJLav.js"></script>
77
+ <script type="module" crossorigin src="/assets/miniChat-BmZzFlCY.js"></script>
78
78
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
79
79
  <link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
80
80
  <link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
package/dist/mobile.html CHANGED
@@ -63,7 +63,7 @@
63
63
  })();
64
64
  </script>
65
65
 
66
- <script type="module" crossorigin src="/assets/mobile-CAhmWqvi.js"></script>
66
+ <script type="module" crossorigin src="/assets/mobile-BTW_GWJo.js"></script>
67
67
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
68
68
  <link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
69
69
  <link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openchambery/web",
3
- "version": "1.18.2-beta.8",
3
+ "version": "1.18.2-beta.9",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./server/index.js",
@@ -1,3 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{D as t,t as n,w as r}from"./useUIStore-5agS8bsW.js";import{kn as i}from"./persistence-oSFWyKgV.js";import{a,i as o,r as s}from"./vendor-zustand-B4dlGEM2.js";import{C as c,E as l,G as u,S as d,W as f,_ as p,b as m,g as h,h as g,m as _,nt as v,p as y,rt as b,v as x,w as S,x as C,y as w}from"./vendor-base-ui-CnHfUmDN.js";import{kt as T,yt as E}from"./gitApiHttp-SLrnr8a5.js";import{n as D}from"./vendor-react-DLPElpoQ.js";import{n as O}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as k,r as A}from"./clipboard-DF5tFLDb.js";import{Ba as j,Ji as M,Jn as N,Kn as P,Qn as F,Xn as I,Yn as L,Zn as R,b as z,l as B,mo as ee}from"./useMobileNavigationStore-BUsW7lSl.js";import{t as V}from"./utils-Dxsi3J3l.js";import{n as H}from"./Icon-DHaR0peD.js";import{k as te,l as ne,v as re,x as ie}from"./gitApi-Bhdx5iUS.js";import{t as ae}from"./input-QS3IWgY5.js";import{i as oe,n as se,t as ce}from"./tooltip-xEnco9xY.js";import{t as le}from"./OverlayScrollbar-DP76aSig.js";import{_ as ue,l as de,o as fe,s as pe,t as me,v as he,y as ge}from"./vendor-dnd-kit-core-CvWxUPdb.js";import{n as _e,o as ve,s as ye,t as be}from"./vendor-dnd-kit-sortable-hHdP9lLb.js";var U=D(),W=e(b(),1),G=v(),K=W.memo(function(e){let t=(0,U.c)(20),{checked:n,onChange:r,disabled:i,indeterminate:a,ariaLabel:o,className:s,iconClassName:c}=e,l=i!==void 0&&i,d=n||a,p;t[0]===r?p=t[1]:(p=e=>r(!!e),t[0]=r,t[1]=p);let m=d?`border-[color:color-mix(in_srgb,var(--primary-base)_65%,var(--interactive-border))] bg-transparent shadow-none hover:bg-[var(--interactive-hover)] hover:border-[color:color-mix(in_srgb,var(--primary-base)_75%,var(--interactive-border))]`:`border-[var(--interactive-border)] bg-transparent shadow-none hover:bg-[var(--interactive-hover)] hover:border-[var(--interactive-border)]`,h;t[2]!==s||t[3]!==m?(h=V(`group/checkbox relative flex shrink-0 self-center items-center justify-center rounded-[4px] border outline-none`,`h-[14px] w-[14px] min-h-[14px] min-w-[14px]`,`transition-[background-color,border-color,box-shadow] duration-200 ease-out`,m,`focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] focus-visible:ring-offset-1 focus-visible:ring-offset-transparent`,`disabled:cursor-not-allowed disabled:opacity-50`,s),t[2]=s,t[3]=m,t[4]=h):h=t[4];let g;t[5]===c?g=t[6]:(g=V(`flex items-center justify-center text-[var(--primary-base)]`,`data-[unchecked]:hidden`,c),t[5]=c,t[6]=g);let _;t[7]===a?_=t[8]:(_=a?(0,G.jsx)(H,{name:`subtract`,className:V(`h-[10px] w-[10px] min-h-[10px] min-w-[10px]`,`text-[var(--primary-base)]`)}):(0,G.jsx)(H,{name:`check`,className:V(`h-[10px] w-[10px] min-h-[10px] min-w-[10px]`,`text-[var(--primary-base)]`)}),t[7]=a,t[8]=_);let v;t[9]!==g||t[10]!==_?(v=(0,G.jsx)(f,{keepMounted:!0,className:g,children:_}),t[9]=g,t[10]=_,t[11]=v):v=t[11];let y;return t[12]!==o||t[13]!==n||t[14]!==l||t[15]!==a||t[16]!==p||t[17]!==h||t[18]!==v?(y=(0,G.jsx)(u,{checked:n,onCheckedChange:p,disabled:l,indeterminate:a,"aria-label":o,className:h,children:v}),t[12]=o,t[13]=n,t[14]=l,t[15]=a,t[16]=p,t[17]=h,t[18]=v,t[19]=y):y=t[19],y}),xe=/#([a-z0-9_-]+)/gi,Se=15,Ce=e=>{let t={prepend:[],append:[]},n=e;for(let e of[`prepend`,`append`]){let r=RegExp(`<${e}>([\\s\\S]*?)(?:<\\/${e}>|$)`,`gi`);n=n.replace(r,(n,r)=>{let i=String(r).trim();return i&&t[e].push(i),``})}return n=n.replace(/<inject>[\s\S]*?(?:<\/inject>|$)/gi,``).trim(),{inline:n,prepend:t.prepend,append:t.append}},we=e=>{let t=new Map,n=new Set;for(let r of e){let e=r.name.toLowerCase();t.set(e,r),n.add(e)}for(let r of e)for(let e of r.aliases){let i=e.toLowerCase();!n.has(i)&&!t.has(i)&&t.set(i,r)}return t},q=(e,t,n,r)=>{let i=e,a=!0;for(;a;){let e=i,o=!1;xe.lastIndex=0,i=i.replace(xe,(e,i,a,s)=>{if(i.toLowerCase()===`skill`&&s[a+e.length]===`(`)return e;let c=t.get(i.toLowerCase());if(!c)return e;let l=c.name.toLowerCase(),u=(n.get(l)||0)+1;if(u>Se)return o=!0,e;n.set(l,u);let d=Ce(c.content);for(let e of d.prepend)r.prepend.push(q(e,t,n,r));for(let e of d.append)r.append.push(q(e,t,n,r));return q(d.inline,t,n,r)}),a=i!==e&&!o}return i},J=(e,t)=>{if(!/#([a-z0-9_-]+)/i.test(e))return e;let n=we(t),r=[];xe.lastIndex=0;let i;for(;(i=xe.exec(e))!==null;){let t=i[1];(t.toLowerCase()!==`skill`||e[i.index+i[0].length]!==`(`)&&(n.has(t.toLowerCase())||r.push(t))}if(r.length>0)return null;let a={prepend:[],append:[]},o=q(e||``,n,new Map,a).trim();return[...a.prepend,o,...a.append].filter(Boolean).join(`
2
-
3
- `)},Te=5e3,Ee=0,Y=null,X=()=>{try{let e=E.getState().currentDirectory;if(e?.trim())return e.trim();let t=T.getDirectory();if(t?.trim())return t.trim();let n=ee.getState().getActiveProject?.();if(n?.path?.trim())return n.path.trim()}catch(e){console.warn(`[SnippetsStore] Error resolving config directory:`,e)}return null},De=a()(s((e,t)=>({snippets:[],isLoading:!1,selectedSnippetName:null,snippetDraft:null,setSelectedSnippet:t=>e({selectedSnippetName:t}),setSnippetDraft:t=>e({snippetDraft:t}),loadSnippets:async()=>{let n=Date.now();if(t().snippets.length>0&&n-Ee<Te)return!0;if(Y)return Y;let r=(async()=>{e({isLoading:!0});try{let t=X(),n=t?`?directory=${encodeURIComponent(t)}`:``,r=await i(`/api/config/snippets${n}`,{headers:{"Cache-Control":`no-cache`,...t?{"x-opencode-directory":t}:{}}});if(!r.ok)throw Error(`Failed to load snippets`);return e({snippets:await r.json(),isLoading:!1}),Ee=Date.now(),!0}catch(t){return console.error(`[SnippetsStore] Failed to load:`,t),e({isLoading:!1}),!1}})();Y=r;try{return await r}finally{Y=null}},createSnippet:async(e,n,r={})=>{try{let a=X(),o=a?`?directory=${encodeURIComponent(a)}`:``,s=await i(`/api/config/snippets/${encodeURIComponent(e)}${o}`,{method:`POST`,headers:{"Content-Type":`application/json`,...a?{"x-opencode-directory":a}:{}},body:JSON.stringify({content:n,aliases:r.aliases,description:r.description,scope:r.scope})});if(!s.ok){let i=await s.json().catch(()=>null);if(s.status===409)return await t().updateSnippet(e,{content:n,aliases:r.aliases,description:r.description});throw Error(i?.error||`Failed to create snippet`)}return Ee=0,await t().loadSnippets(),!0}catch(e){return console.error(`[SnippetsStore] Failed to create:`,e),!1}},updateSnippet:async(e,n)=>{try{let r=X(),a=r?`?directory=${encodeURIComponent(r)}`:``,o=await i(`/api/config/snippets/${encodeURIComponent(e)}${a}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,...r?{"x-opencode-directory":r}:{}},body:JSON.stringify(n)});if(!o.ok)throw Error((await o.json().catch(()=>null))?.error||`Failed to update snippet`);return Ee=0,await t().loadSnippets(),!0}catch(e){return console.error(`[SnippetsStore] Failed to update:`,e),!1}},deleteSnippet:async n=>{try{let r=X(),a=r?`?directory=${encodeURIComponent(r)}`:``,o=await i(`/api/config/snippets/${encodeURIComponent(n)}${a}`,{method:`DELETE`,headers:r?{"x-opencode-directory":r}:void 0});if(!o.ok)throw Error((await o.json().catch(()=>null))?.error||`Failed to delete snippet`);return t().selectedSnippetName===n&&e({selectedSnippetName:null}),Ee=0,await t().loadSnippets(),!0}catch(e){return console.error(`[SnippetsStore] Failed to delete:`,e),!1}},expandText:async e=>{if(!/#[a-z0-9_-]+/i.test(e))return e;let n=()=>J(e,t().snippets),r=n();if(r!==null)return r;await t().loadSnippets();let a=n();if(a!==null)return a;let o=X(),s=o?`?directory=${encodeURIComponent(o)}`:``,c=await i(`/api/config/snippets/expand${s}`,{method:`POST`,headers:{"Content-Type":`application/json`,...o?{"x-opencode-directory":o}:{}},body:JSON.stringify({text:e})});if(!c.ok)throw Error((await c.json().catch(()=>null))?.error||`Failed to expand snippets`);return(await c.json()).text??e},getSnippetByName:e=>t().snippets.find(t=>t.name===e||t.aliases.includes(e))}),{name:`snippets-store`}));function Oe(e,t){let n=(0,U.c)(3),r;return n[0]!==e||n[1]!==t?(r=n=>{[e,t].forEach(e=>{typeof e==`function`?e(n):e&&typeof e==`object`&&(e.current=n)})},n[0]=e,n[1]=t,n[2]=r):r=n[2],r}var ke=W.forwardRef((e,t)=>{let n=(0,U.c)(28),{as:r,orientation:i,offset:a,size:o,isEnabled:s,hideTopShadow:c,hideBottomShadow:l,observeMutations:u,onVisibilityChange:d,style:f,className:p,children:m,...h}=e,g=r===void 0?`div`:r,_=i===void 0?`vertical`:i,v=a===void 0?0:a,y=o===void 0?48:o,b=s===void 0||s,x=c!==void 0&&c,S=l!==void 0&&l,C=u===void 0||u,w=W.useRef(null),T=W.useRef(`none`),E=h[`data-scroll-shadow`];delete h[`data-scroll-shadow`];let D=f,O;n[0]!==y||n[1]!==D?(O={...D},O[`--scroll-shadow-size`]=`${y}px`,n[0]=y,n[1]=D,n[2]=O):O=n[2];let k=O,A=Ae,j=je,M;n[3]!==S||n[4]!==x||n[5]!==b||n[6]!==v||n[7]!==d||n[8]!==_?(M=()=>{let e=w.current;if(!e)return;if(!b){j(e),T.current!==`none`&&(T.current=`none`,d?.(`none`));return}let t=_===`vertical`?e.scrollTop>v+1:e.scrollLeft>v+1,n=_===`vertical`?e.scrollHeight-(e.scrollTop+e.clientHeight)>v+1:e.scrollWidth-(e.scrollLeft+e.clientWidth)>v+1,r=x&&_===`vertical`?!1:t;S&&_===`vertical`&&(n=!1),A(e,r,n,_===`vertical`?`top`:`left`,_===`vertical`?`bottom`:`right`);let i=r&&n?`both`:r?_===`vertical`?`top`:`left`:n?_===`vertical`?`bottom`:`right`:`none`;i!==T.current&&(T.current=i,d?.(i))},n[3]=S,n[4]=x,n[5]=b,n[6]=v,n[7]=d,n[8]=_,n[9]=M):M=n[9];let N=M,P,F;n[10]!==N||n[11]!==b?(P=()=>{b||N()},F=[N,b],n[10]=N,n[11]=b,n[12]=P,n[13]=F):(P=n[12],F=n[13]),W.useLayoutEffect(P,F);let I,L;n[14]!==N||n[15]!==b||n[16]!==C?(I=()=>{let e=w.current;if(!e||!b)return;let t=null,n=()=>{t===null&&(t=requestAnimationFrame(()=>{t=null,N()}))},r=n,i=typeof ResizeObserver<`u`?new ResizeObserver(n):null,a=C&&typeof MutationObserver<`u`?new MutationObserver(n):null;return N(),e.addEventListener(`scroll`,r,{passive:!0}),i?.observe(e),a?.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>{t!==null&&cancelAnimationFrame(t),e.removeEventListener(`scroll`,r),i?.disconnect(),a?.disconnect()}},L=[N,b,C],n[14]=N,n[15]=b,n[16]=C,n[17]=I,n[18]=L):(I=n[17],L=n[18]),W.useEffect(I,L);let R=Oe(w,t),z=E??!0,B;return n[19]!==g||n[20]!==m||n[21]!==p||n[22]!==R||n[23]!==k||n[24]!==_||n[25]!==h||n[26]!==z?(B=(0,G.jsx)(g,{...h,ref:R,className:p,"data-orientation":_,"data-scroll-shadow":z,style:k,children:m}),n[19]=g,n[20]=m,n[21]=p,n[22]=R,n[23]=k,n[24]=_,n[25]=h,n[26]=z,n[27]=B):B=n[27],B});ke.displayName=`ScrollShadow`;function Ae(e,t,n,r,i){let a=`${r}${i.charAt(0).toUpperCase()}${i.slice(1)}Scroll`;t&&n?(e.dataset[a]=`true`,e.removeAttribute(`data-${r}-scroll`),e.removeAttribute(`data-${i}-scroll`)):(e.dataset[`${r}Scroll`]=String(t),e.dataset[`${i}Scroll`]=String(n),e.removeAttribute(`data-${r}-${i}-scroll`))}function je(e){[`top`,`bottom`,`top-bottom`,`left`,`right`,`left-right`].forEach(t=>{e.removeAttribute(`data-${t}-scroll`)})}var Me=W.forwardRef((e,t)=>{let n=(0,U.c)(45),r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7],u=n[8],d=n[9],f=n[10],p=n[11],m=n[12],h=n[13],g=n[14],_=n[15],v=n[16]):({className:i,outerClassName:s,children:r,style:d,minThumbSize:o,hideDelayMs:a,as:f,scrollbarClassName:u,disableHorizontal:p,observeMutations:m,fillContainer:h,preventOverscroll:g,useScrollShadow:_,scrollShadowSize:l,userIntentOnly:v,...c}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c,n[7]=l,n[8]=u,n[9]=d,n[10]=f,n[11]=p,n[12]=m,n[13]=h,n[14]=g,n[15]=_,n[16]=v);let y=f===void 0?`div`:f,b=p!==void 0&&p,x=m===void 0||m,S=h===void 0||h,C=g!==void 0&&g,w=_!==void 0&&_,T=v!==void 0&&v,E=W.useRef(null),D,O;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>E.current,O=[],n[17]=D,n[18]=O):(D=n[17],O=n[18]),W.useImperativeHandle(t,D,O);let k=C&&`overscroll-none`,A;n[19]!==s||n[20]!==k?(A=V(`relative flex flex-col min-h-0 w-full overflow-hidden`,k,s),n[19]=s,n[20]=k,n[21]=A):A=n[21];let j;n[22]!==y||n[23]!==r||n[24]!==i||n[25]!==b||n[26]!==S||n[27]!==x||n[28]!==C||n[29]!==c||n[30]!==l||n[31]!==d||n[32]!==w?(j=w?(0,G.jsx)(ke,{as:y,ref:E,size:l,className:V(`overlay-scrollbar-target overlay-scrollbar-container`,C&&`overscroll-none`,S?`flex-1 min-h-0 w-full`:`flex-none w-full h-auto`,b?`overflow-y-auto overflow-x-hidden`:`overflow-auto`,i),style:d,observeMutations:x,...c,children:r}):(0,G.jsx)(y,{ref:E,className:V(`overlay-scrollbar-target overlay-scrollbar-container`,C&&`overscroll-none`,S?`flex-1 min-h-0 w-full`:`flex-none w-full h-auto`,b?`overflow-y-auto overflow-x-hidden`:`overflow-auto`,i),style:d,...c,children:r}),n[22]=y,n[23]=r,n[24]=i,n[25]=b,n[26]=S,n[27]=x,n[28]=C,n[29]=c,n[30]=l,n[31]=d,n[32]=w,n[33]=j):j=n[33];let M;n[34]!==b||n[35]!==a||n[36]!==o||n[37]!==x||n[38]!==u||n[39]!==T?(M=(0,G.jsx)(le,{containerRef:E,minThumbSize:o,hideDelayMs:a,className:u,disableHorizontal:b,observeMutations:x,userIntentOnly:T}),n[34]=b,n[35]=a,n[36]=o,n[37]=x,n[38]=u,n[39]=T,n[40]=M):M=n[40];let N;return n[41]!==A||n[42]!==j||n[43]!==M?(N=(0,G.jsxs)(`div`,{className:A,children:[j,M]}),n[41]=A,n[42]=j,n[43]=M,n[44]=N):N=n[44],N});Me.displayName=`ScrollableOverlay`;var Ne=`data:image/png;base64,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`,Pe=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='M4.709%2015.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0%2011.784l.055-.352.48-.321.686.06%201.52.103%202.278.158%201.652.097%202.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686%201.908%201.476%202.491%201.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97%202.97%200%2001-.104-.729L6.283.134%206.696%200l.996.134.42.364.62%201.414%201.002%202.229%201.555%203.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286%201.851-.559%202.903-.364%201.942h.212l.243-.242.985-1.306%201.652-2.064.73-.82.85-.904.547-.431h1.033l.76%201.129-.34%201.166-1.064%201.347-.881%201.142-1.264%201.7-.79%201.36.073.11.188-.02%202.856-.606%201.543-.28%201.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061%201.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093%201.068%202.006%201.81%202.509%202.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649%202.345%203.521.122%201.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674%207.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434%201.967-2.18%202.945-1.726%201.845-.414.164-.717-.37.067-.662.401-.589%202.388-3.036%201.44-1.882.93-1.086-.006-.158h-.055L4.132%2018.56l-1.13.146-.487-.456.061-.746.231-.243%201.908-1.312-.006.006z'%20fill='%23D97757'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,Fe=`data:image/svg+xml,%3csvg%20fill='currentColor'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.106%205.68L12.5.135a.998.998%200%2000-.998%200L1.893%205.68a.84.84%200%2000-.419.726v11.186c0%20.3.16.577.42.727l9.607%205.547a.999.999%200%2000.998%200l9.608-5.547a.84.84%200%2000.42-.727V6.407a.84.84%200%2000-.42-.726zm-.603%201.176L12.228%2022.92c-.063.108-.228.064-.228-.061V12.34a.59.59%200%2000-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264%200%20.428.286.296.514z'/%3e%3c/svg%3e`,Ie=`data:image/svg+xml,%3csvg%20fill='currentColor'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.106%205.68L12.5.135a.998.998%200%2000-.998%200L1.893%205.68a.84.84%200%2000-.419.726v11.186c0%20.3.16.577.42.727l9.607%205.547a.999.999%200%2000.998%200l9.608-5.547a.84.84%200%2000.42-.727V6.407a.84.84%200%2000-.42-.726zm-.603%201.176L12.228%2022.92c-.063.108-.228.064-.228-.061V12.34a.59.59%200%2000-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264%200%20.428.286.296.514z'/%3e%3c/svg%3e`,Le=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%20fill='%234D6BFE'%3e%3c/path%3e%3c/svg%3e`,Re=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDoubao%3c/title%3e%3cpath%20d='M5.31%2015.756c.172-3.75%201.883-5.999%202.549-6.739-3.26%202.058-5.425%205.658-6.358%208.308v1.12C1.501%2021.513%204.226%2024%207.59%2024a6.59%206.59%200%20002.2-.375c.353-.12.7-.248%201.039-.378.913-.899%201.65-1.91%202.243-2.992-4.877%202.431-7.974.072-7.763-4.5l.002.001z'%20fill='%231E37FC'%3e%3c/path%3e%3cpath%20d='M22.57%2010.283c-1.212-.901-4.109-2.404-7.397-2.8.295%203.792.093%208.766-2.1%2012.773a12.782%2012.782%200%2001-2.244%202.992c3.764-1.448%206.746-3.457%208.596-5.219%202.82-2.683%203.353-5.178%203.361-6.66a2.737%202.737%200%2000-.216-1.084v-.002z'%20fill='%2337E1BE'%3e%3c/path%3e%3cpath%20d='M14.303%201.867C12.955.7%2011.248%200%209.39%200%207.532%200%205.883.677%204.545%201.807%202.791%203.29%201.627%205.557%201.5%208.125v9.201c.932-2.65%203.097-6.25%206.357-8.307.5-.318%201.025-.595%201.569-.829%201.883-.801%203.878-.932%205.746-.706-.222-2.83-.718-5.002-.87-5.617h.001z'%20fill='%23A569FF'%3e%3c/path%3e%3cpath%20d='M17.305%204.961a199.47%20199.47%200%2001-1.08-1.094c-.202-.213-.398-.419-.586-.622l-1.333-1.378c.151.615.648%202.786.869%205.617%203.288.395%206.185%201.898%207.396%202.8-1.306-1.275-3.475-3.487-5.266-5.323z'%20fill='%231E37FC'%3e%3c/path%3e%3c/svg%3e`,ze=`data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M37%2020.034C27.8809%2020.5837%2020.5808%2027.8809%2020.0326%2037H19.966C19.4163%2027.8809%2012.1177%2020.5837%203%2020.034V19.9674C12.1191%2019.4163%2019.4163%2012.1191%2019.966%203H20.0326C20.5822%2012.1191%2027.8809%2019.4163%2037%2019.9674V20.034Z'%20fill='currentColor'/%3e%3c/svg%3e`,Be=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGemma%3c/title%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-gemma-_R_0_'%20x1='24.419%25'%20x2='75.194%25'%20y1='75.581%25'%20y2='25.194%25'%3e%3cstop%20offset='0%25'%20stop-color='%23446EFF'%3e%3c/stop%3e%3cstop%20offset='36.661%25'%20stop-color='%232E96FF'%3e%3c/stop%3e%3cstop%20offset='83.221%25'%20stop-color='%23B1C5FF'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M12.34%205.953a8.233%208.233%200%2001-.247-1.125V3.72a8.25%208.25%200%20015.562%202.232H12.34zm-.69%200c.113-.373.199-.755.257-1.145V3.72a8.25%208.25%200%2000-5.562%202.232h5.304zm-5.433.187h5.373a7.98%207.98%200%2001-.267.696%208.41%208.41%200%2001-1.76%202.65L6.216%206.14zm-.264-.187H2.977v.187h2.915a8.436%208.436%200%2000-2.357%205.767H0v.186h3.535a8.436%208.436%200%20002.357%205.767H2.977v.186h2.976v2.977h.187v-2.915a8.436%208.436%200%20005.767%202.357V24h.186v-3.535a8.436%208.436%200%20005.767-2.357v2.915h.186v-2.977h2.977v-.186h-2.915a8.436%208.436%200%20002.357-5.767H24v-.186h-3.535a8.436%208.436%200%2000-2.357-5.767h2.915v-.187h-2.977V2.977h-.186v2.915a8.436%208.436%200%2000-5.767-2.357V0h-.186v3.535A8.436%208.436%200%20006.14%205.892V2.977h-.187v2.976zm6.14%2014.326a8.25%208.25%200%20005.562-2.233H12.34c-.108.367-.19.743-.247%201.126v1.107zm-.186-1.087a8.015%208.015%200%2000-.258-1.146H6.345a8.25%208.25%200%20005.562%202.233v-1.087zm-8.186-7.285h1.107a8.23%208.23%200%20001.125-.247V6.345a8.25%208.25%200%2000-2.232%205.562zm1.087.186H3.72a8.25%208.25%200%20002.232%205.562v-5.304a8.012%208.012%200%2000-1.145-.258zm15.47-.186a8.25%208.25%200%2000-2.232-5.562v5.315c.367.108.743.19%201.126.247h1.107zm-1.086.186c-.39.058-.772.144-1.146.258v5.304a8.25%208.25%200%20002.233-5.562h-1.087zm-1.332%205.69V12.41a7.97%207.97%200%2000-.696.267%208.409%208.409%200%2000-2.65%201.76l3.346%203.346zm0-6.18v-5.45l-.012-.013h-5.451c.076.235.162.468.26.696a8.698%208.698%200%20001.819%202.688%208.698%208.698%200%20002.688%201.82c.228.097.46.183.696.259zM6.14%2017.848V12.41c.235.078.468.167.696.267a8.403%208.403%200%20012.688%201.799%208.404%208.404%200%20011.799%202.688c.1.228.19.46.267.696H6.152l-.012-.012zm0-6.245V6.326l3.29%203.29a8.716%208.716%200%2001-2.594%201.728%208.14%208.14%200%2001-.696.259zm6.257%206.257h5.277l-3.29-3.29a8.716%208.716%200%2000-1.728%202.594%208.135%208.135%200%2000-.259.696zm-2.347-7.81a9.435%209.435%200%2001-2.88%201.96%209.14%209.14%200%20012.88%201.94%209.14%209.14%200%20011.94%202.88%209.435%209.435%200%20011.96-2.88%209.14%209.14%200%20012.88-1.94%209.435%209.435%200%2001-2.88-1.96%209.434%209.434%200%2001-1.96-2.88%209.14%209.14%200%2001-1.94%202.88z'%20fill='url(%23lobe-icons-gemma-_R_0_)'%20fill-rule='evenodd'%3e%3c/path%3e%3c/svg%3e`,Ve=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20.1312%207.50002L17.4088%2011.1913H5.81625L8.5375%207.50002H20.1325H20.1312ZM34.0675%2028.81L31.3475%2032.5H19.795L22.5125%2028.81H34.0675ZM35%207.50002L16.58%2032.5H5L23.42%207.50002H35Z'%20fill='currentColor'/%3e%3c/svg%3e`,He=`data:image/svg+xml,%3csvg%20fill='black'%20fill-rule='evenodd'%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M9.205%208.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357%201.356-.523%202.117-.523%202.854%200%204.662%202.212%204.662%204.566%200%20.167%200%20.357-.024.547l-4.71-2.759a.797.797%200%2000-.856%200l-5.97%203.473zm10.609%208.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473%201.95-1.118a.433.433%200%2001.476%200l4.543%202.617c1.309.76%202.189%202.378%202.189%203.948%200%201.808-1.07%203.473-2.76%204.163zM7.802%2012.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545%201.95-4.472%204.591-4.472%201%200%201.927.333%202.712.928L8.23%205.067c-.285.166-.428.404-.428.737v6.898zM12%2015.128l-2.795-1.57v-3.33L12%208.658l2.795%201.57v3.33L12%2015.128zm1.796%207.23c-1%200-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974%201.142c.167.095.238.238.238.428v5.233c0%202.545-1.974%204.472-4.614%204.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482%204.482%200%20014.21%206.327v5.423c0%20.333.143.571.428.738l5.947%203.449-1.95%201.118a.432.432%200%2001-.476%200zm-.262%203.9c-2.688%200-4.662-2.021-4.662-4.519%200-.19.024-.38.047-.57l4.686%202.71c.286.167.571.167.856%200l5.97-3.448v2.26c0%20.19-.07.333-.237.428l-4.543%202.616c-.619.357-1.356.523-2.117.523zm5.899%202.83a5.947%205.947%200%20005.827-4.756C22.287%2018.339%2024%2015.84%2024%2013.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498%200-3.401-2.759-5.947-5.946-5.947-.642%200-1.26.095-1.88.31A5.962%205.962%200%200010.205%200a5.947%205.947%200%2000-5.827%204.757C1.713%205.447%200%207.945%200%2010.49c0%201.666.713%203.283%201.998%204.448-.119.5-.19%201-.19%201.499%200%203.401%202.759%205.946%205.946%205.946.642%200%201.26-.095%201.88-.309a5.96%205.96%200%20004.162%201.713z'%3e%3c/path%3e%3c/svg%3e`,Ue=`data:image/png;base64,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`,We=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='currentColor'%20overflow='visible'%3e%3c!--%20Official%20Grok%20mark:%20scale%20past%20the%20box%20so%20ring%20fills%20the%20cell;%20slash%20tips%20may%20clip.%20--%3e%3cg%20transform='translate(12%2012)%20scale(1.12)%20translate(-12%20-12)'%3e%3cpath%20fill-rule='evenodd'%20d='M12%201.2c5.965%200%2010.8%204.835%2010.8%2010.8S17.965%2022.8%2012%2022.8%201.2%2017.965%201.2%2012%206.035%201.2%2012%201.2zm0%202.5a8.3%208.3%200%201%200%200%2016.6%208.3%208.3%200%200%200%200-16.6z'/%3e%3cpath%20d='M19.4%202.75c.52.52.52%201.36%200%201.88L4.63%2019.4a1.33%201.33%200%201%201-1.88-1.88L17.52%202.75c.52-.52%201.36-.52%201.88%200z'/%3e%3c/g%3e%3c/svg%3e`,Ge=`data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20fill-rule='evenodd'%3e%3cpath%20d='M12%200c6.627%200%2012%205.373%2012%2012s-5.373%2012-12%2012S0%2018.627%200%2012%205.373%200%2012%200zm1.652%201.123l-.01-.001c.533.097%201.023.233%201.41.404%206.084%202.683%207.396%209.214%201.601%2014.338a3.781%203.781%200%2001-5.337-.328%203.654%203.654%200%2001-.884-3.044c-1.934.6-3.295%202.305-3.524%204.45-.204%201.912.324%204.044%202.056%205.634l.245.067C10.1%2022.876%2011.036%2023%2012%2023c6.075%200%2011-4.925%2011-11%200-5.513-4.056-10.08-9.348-10.877zM2.748%206.21c-.178.269-.348.536-.51.803l-.235.394.078-.167A10.957%2010.957%200%20001%2012c0%204.919%203.228%209.083%207.682%2010.49l.214.065C3.523%2018.528%202.84%2014.149%206.47%208.68A2.234%202.234%200%20102.748%206.21zm10.157-5.172c4.408%201.33%203.61%205.41%202.447%206.924-.86%201.117-2.922%201.46-3.708%202.238-.666.657-1.077%201.462-1.212%202.291A5.303%205.303%200%200112%2012.258a5.672%205.672%200%20001.404-11.169%2010.51%2010.51%200%2000-.5-.052z'/%3e%3c/svg%3e`,Ke=`data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20fill-rule='evenodd'%3e%3cpath%20d='M12%200c6.627%200%2012%205.373%2012%2012s-5.373%2012-12%2012S0%2018.627%200%2012%205.373%200%2012%200zm1.652%201.123l-.01-.001c.533.097%201.023.233%201.41.404%206.084%202.683%207.396%209.214%201.601%2014.338a3.781%203.781%200%2001-5.337-.328%203.654%203.654%200%2001-.884-3.044c-1.934.6-3.295%202.305-3.524%204.45-.204%201.912.324%204.044%202.056%205.634l.245.067C10.1%2022.876%2011.036%2023%2012%2023c6.075%200%2011-4.925%2011-11%200-5.513-4.056-10.08-9.348-10.877zM2.748%206.21c-.178.269-.348.536-.51.803l-.235.394.078-.167A10.957%2010.957%200%20001%2012c0%204.919%203.228%209.083%207.682%2010.49l.214.065C3.523%2018.528%202.84%2014.149%206.47%208.68A2.234%202.234%200%20102.748%206.21zm10.157-5.172c4.408%201.33%203.61%205.41%202.447%206.924-.86%201.117-2.922%201.46-3.708%202.238-.666.657-1.077%201.462-1.212%202.291A5.303%205.303%200%200112%2012.258a5.672%205.672%200%20001.404-11.169%2010.51%2010.51%200%2000-.5-.052z'/%3e%3c/svg%3e`,qe=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eKimi%3c/title%3e%3cpath%20d='M21.846%200a1.923%201.923%200%20110%203.846H20.15a.226.226%200%2001-.227-.226V1.923C19.923.861%2020.784%200%2021.846%200z'%20fill='%231783FF'%3e%3c/path%3e%3cpath%20d='M11.065%2011.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164%200%2000-.117.051l-7.82%207.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103%200-.186.103-.186.23V19.77c0%20.128.083.23.186.23h2.69c.103%200%20.186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158%200%2001.205-.023l6.484%204.772a7.677%207.677%200%20003.453%201.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028%205.028%200%2001-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z'%20fill='%23fff'%3e%3c/path%3e%3c/svg%3e`,Je=`data:image/svg+xml,%3csvg%20fill='black'%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eLongCat%3c/title%3e%3cpath%20clip-rule='evenodd'%20d='M.507%2019.883a.507.507%200%2001-.489-.642L4.29%203.745a1.013%201.013%200%20011.533-.578l5.622%203.687a1.013%201.013%200%20001.11%200L18.2%203.165a1.013%201.013%200%20011.532.58l4.25%2015.497a.506.506%200%2001-.49.64H18.07a6.297%206.297%200%20001.53-4.115v-.177a6.09%206.09%200%2000-1.513-4.017l-.697-3.495a.438.438%200%2000-.694-.266L14.07%209.781a.748.748%200%2001-.654.121%205.156%205.156%200%2000-2.833%200%20.746.746%200%2001-.653-.121L7.302%207.81a.435.435%200%2000-.688.269l-.675%203.652a5.36%205.36%200%2000-1.539%203.76v.333c0%201.474.527%202.9%201.488%204.02l.032.038H.507z'%20fill='%2329E154'%20fill-rule='evenodd'%3e%3c/path%3e%3cpath%20d='M9.213%2016.843h1.52v-3.546h-1.29l-.23%203.546zm5.573%200h-1.52v-3.546h1.29l.23%203.546z'%3e%3c/path%3e%3c/svg%3e`,Ye=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMinimax%3c/title%3e%3cdefs%3e%3clinearGradient%20id='lobe-icons-minimax-_R_0_'%20x1='0%25'%20x2='100.182%25'%20y1='50.057%25'%20y2='50.057%25'%3e%3cstop%20offset='0%25'%20stop-color='%23E2167E'%3e%3c/stop%3e%3cstop%20offset='100%25'%20stop-color='%23FE603C'%3e%3c/stop%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M16.278%202c1.156%200%202.093.927%202.093%202.07v12.501a.74.74%200%2000.744.709.74.74%200%2000.743-.709V9.099a2.06%202.06%200%20012.071-2.049A2.06%202.06%200%200124%209.1v6.561a.649.649%200%2001-.652.645.649.649%200%2001-.653-.645V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v7.472a2.037%202.037%200%2001-2.048%202.026%202.037%202.037%200%2001-2.048-2.026v-12.5a.785.785%200%2000-.788-.753.785.785%200%2000-.789.752l-.001%2015.904A2.037%202.037%200%200113.441%2022a2.037%202.037%200%2001-2.048-2.026V18.04c0-.356.292-.645.652-.645.36%200%20.652.289.652.645v1.934c0%20.263.142.506.372.638.23.131.514.131.744%200a.734.734%200%2000.372-.638V4.07c0-1.143.937-2.07%202.093-2.07zm-5.674%200c1.156%200%202.093.927%202.093%202.07v11.523a.648.648%200%2001-.652.645.648.648%200%2001-.652-.645V4.07a.785.785%200%2000-.789-.78.785.785%200%2000-.789.78v14.013a2.06%202.06%200%2001-2.07%202.048%202.06%202.06%200%2001-2.071-2.048V9.1a.762.762%200%2000-.766-.758.762.762%200%2000-.766.758v3.8a2.06%202.06%200%2001-2.071%202.049A2.06%202.06%200%20010%2012.9v-1.378c0-.357.292-.646.652-.646.36%200%20.653.29.653.646V12.9c0%20.418.343.757.766.757s.766-.339.766-.757V9.099a2.06%202.06%200%20012.07-2.048%202.06%202.06%200%20012.071%202.048v8.984c0%20.419.343.758.767.758.423%200%20.766-.339.766-.758V4.07c0-1.143.937-2.07%202.093-2.07z'%20fill='url(%23lobe-icons-minimax-_R_0_)'%20fill-rule='nonzero'%3e%3c/path%3e%3c/svg%3e`,Xe=`data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1778321140713'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='17891'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M955%20607.2L843.6%20412.1l47.8-91.6c6.6-8.7%208.3-21.5%205.6-31.8L835.7%20178c-4.7-7.3-12.8-11.8-21.5-12H586.3l-51-89.2c-3.6-7-10.5-11.8-18.3-12.7H396.7c-8.9%200.2-15.2%206.7-19.6%2014.4l-1.9%203.1-113.8%20195.1H152.2c-9-0.2-17.5%204.3-22.3%2012L67%20400.1c-4%208-4%2017.5%200%2025.5l113.1%20196.7-51%2089.2c-4%208-4%2017.4%200%2025.5l58.1%20102c4.7%207.8%2013.2%2012.7%2022.3%2012.7h227.8l54.9%2095.5c4.2%207.2%2011.6%2011.9%2019.9%2012.8h129c8.9-0.2%2017.1-5%2021.5-12.7L775%20750.5h100.4c8.9-0.8%2016.9-5.8%2021.5-13.5L955%20634.3c5.4-8.3%205.4-18.9%200-27.1zM814.1%20620L756%20512.5%20517%20933.7l-65.3-107.5H212.8l57.4-104.3H392L153%20302.2h125L396.7%2090.3l59.7%20104.3-61.3%20107.5H873l-60.5%20106.8%20120.3%20211H814.1z'%20fill='%23605BEC'%20p-id='17892'%3e%3c/path%3e%3cpath%20d='M511.4%20660.5l149-238.9H361.7l149.7%20238.9z%20m0%200'%20fill='%23605BEC'%20p-id='17893'%3e%3c/path%3e%3c/svg%3e`,Ze=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDoubao%3c/title%3e%3cpath%20d='M5.31%2015.756c.172-3.75%201.883-5.999%202.549-6.739-3.26%202.058-5.425%205.658-6.358%208.308v1.12C1.501%2021.513%204.226%2024%207.59%2024a6.59%206.59%200%20002.2-.375c.353-.12.7-.248%201.039-.378.913-.899%201.65-1.91%202.243-2.992-4.877%202.431-7.974.072-7.763-4.5l.002.001z'%20fill='%231E37FC'%3e%3c/path%3e%3cpath%20d='M22.57%2010.283c-1.212-.901-4.109-2.404-7.397-2.8.295%203.792.093%208.766-2.1%2012.773a12.782%2012.782%200%2001-2.244%202.992c3.764-1.448%206.746-3.457%208.596-5.219%202.82-2.683%203.353-5.178%203.361-6.66a2.737%202.737%200%2000-.216-1.084v-.002z'%20fill='%2337E1BE'%3e%3c/path%3e%3cpath%20d='M14.303%201.867C12.955.7%2011.248%200%209.39%200%207.532%200%205.883.677%204.545%201.807%202.791%203.29%201.627%205.557%201.5%208.125v9.201c.932-2.65%203.097-6.25%206.357-8.307.5-.318%201.025-.595%201.569-.829%201.883-.801%203.878-.932%205.746-.706-.222-2.83-.718-5.002-.87-5.617h.001z'%20fill='%23A569FF'%3e%3c/path%3e%3cpath%20d='M17.305%204.961a199.47%20199.47%200%2001-1.08-1.094c-.202-.213-.398-.419-.586-.622l-1.333-1.378c.151.615.648%202.786.869%205.617%203.288.395%206.185%201.898%207.396%202.8-1.306-1.275-3.475-3.487-5.266-5.323z'%20fill='%231E37FC'%3e%3c/path%3e%3c/svg%3e`,Qe=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M26.9568%209.88184H22.1265L30.7753%2031.7848H35.4917L26.9568%209.88184ZM13.028%209.88184L4.4917%2031.7848H9.32203L11.2305%2027.1793H20.2166L22.0126%2031.6724H26.8444L18.0832%209.88184H13.028ZM12.5783%2023.1361L15.4987%2015.3853L18.5315%2023.1361H12.5783Z'%20fill='currentColor'/%3e%3c/svg%3e`,$e=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M37.9998%2023.021C33.7998%2025.2889%2029.5698%2027.3649%2024.8614%2028.3069C23.8114%2028.5154%2022.6474%2028.5154%2021.5809%2028.3714C20.5639%2028.2439%2020.0554%2027.3484%2020.4169%2026.4064C20.7619%2025.5289%2021.2209%2024.635%2021.8119%2023.9C23.0899%2022.3025%2024.5329%2020.849%2025.8289%2019.268C26.6203%2018.2991%2027.3335%2017.2689%2027.9618%2016.187C28.4208%2015.4205%2028.2078%2014.4935%2027.4038%2014.111C26.0584%2013.4556%2024.6154%2012.9936%2023.1889%2012.4986C23.0239%2012.4341%2022.7779%2012.6096%2022.4509%2012.7221C22.8604%2013.0881%2023.1559%2013.3596%2023.5654%2013.727C19.3339%2014.447%2015.3305%2015.467%2011.4455%2016.874C11.4275%2016.9535%2011.396%2017.0165%2011.411%2017.0495C11.9855%2017.927%2011.723%2018.5975%2010.886%2019.1405C10.5611%2019.3531%2010.2732%2019.6176%2010.034%2019.9235C12.593%2020.6735%2014.873%2020.243%2017.0539%2018.821C16.9234%2018.6305%2016.7914%2018.455%2016.6609%2018.263C17.4799%2018.407%2017.9719%2018.854%2018.0379%2019.556C18.0544%2019.7165%2017.9569%2019.8755%2017.9074%2020.036C17.7919%2019.907%2017.6449%2019.781%2017.5474%2019.6355C17.4799%2019.5395%2017.4634%2019.4285%2017.4154%2019.268C14.8235%2020.993%2012.035%2021.425%208.96751%2020.531C8.96751%2021.137%208.93451%2021.6485%208.98401%2022.1435C9.01701%2022.574%208.83701%2022.766%208.44401%2022.9895C7.55752%2023.5325%206.63803%2024.092%205.90003%2024.8105C5.01504%2025.6879%205.34354%2026.7589%206.54053%2027.2059C7.90102%2027.7159%209.329%2027.7309%2010.7555%2027.5569C12.4445%2027.3484%2014.1005%2027.0769%2015.9394%2026.8219C13.79%2027.8269%2011.6735%2028.5319%209.4445%2028.8169C7.88452%2029.0269%206.32753%2029.1379%204.78554%2028.6909C2.57156%2028.0684%201.58607%2026.4394%202.16057%2024.251C2.70206%2022.2065%204.01455%2020.5775%205.42454%2019.076C10.133%2014.078%2016.0864%2011.5401%2022.9744%2011.0286C24.5824%2010.9176%2026.2069%2011.1246%2027.7143%2011.7951C29.8308%2012.7536%2030.7173%2014.78%2029.6838%2016.826C29.0118%2018.1835%2028.0758%2019.4285%2027.1413%2020.6585C26.2234%2021.872%2025.1899%2022.9895%2024.2224%2024.155C23.9434%2024.506%2023.6809%2024.875%2023.4679%2025.2724C23.0569%2026.0224%2023.3359%2026.5174%2024.2059%2026.4394C26.0254%2026.2624%2027.8808%2026.1199%2029.6358%2025.6729C32.2098%2025.0174%2034.7193%2024.092%2037.2618%2023.2775C37.5243%2023.213%2037.7703%2023.117%2037.9998%2023.0225V23.021Z'%20fill='currentColor'/%3e%3c/svg%3e`,et=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eCursor%3c/title%3e%3cg%20transform='translate(12%2012)%20scale(0.88)%20translate(-12%20-12)'%3e%3cpath%20d='M22.106%205.68L12.5.135a.998.998%200%2000-.998%200L1.893%205.68a.84.84%200%2000-.419.726v11.186c0%20.3.16.577.42.727l9.607%205.547a.999.999%200%2000.998%200l9.608-5.547a.84.84%200%2000.42-.727V6.407a.84.84%200%2000-.42-.726zm-.603%201.176L12.228%2022.92c-.063.108-.228.064-.228-.061V12.34a.59.59%200%2000-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264%200%20.428.286.296.514z'%3e%3c/path%3e%3c/g%3e%3c/svg%3e`,tt=`data:image/svg+xml,%3csvg%20height='24'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%20fill='%234D6BFE'%3e%3c/path%3e%3c/svg%3e`,nt=`data:image/svg+xml,%3csvg%20fill='%23000000'%20viewBox='0%200%2033%2025'%20role='img'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M79.01%205.863c-4.066%200-6.511%202.92-6.511%206.535%200%203.635%202.445%206.555%206.511%206.555%204.046%200%206.512-2.92%206.512-6.555s-2.466-6.535-6.512-6.535Zm0%2010.968c-2.633%200-4.172-1.933-4.172-4.433s1.539-4.455%204.172-4.455c2.635%200%204.151%201.933%204.151%204.434%200%202.521-1.516%204.454-4.15%204.454Zm14.393%202.096c3.393%200%205.542-1.808%205.837-4.539h-2.36c-.316%201.555-1.517%202.437-3.477%202.437-2.423%200-3.878-1.68-3.878-4.433%200-2.774%201.476-4.434%203.878-4.434%201.96%200%203.14.862%203.477%202.5h2.36c-.295-2.773-2.444-4.622-5.837-4.622-3.856%200-6.217%202.669-6.217%206.535%200%203.887%202.36%206.556%206.217%206.556Zm-29.543-.311h2.36v-6.01c0-2.752%201.348-4.244%203.772-4.244h2.276V6.177h-2.255c-2.128%200-3.288.735-3.898%202.605l-.443-.063.527-2.542h-2.36v12.439h.02Zm-24.445-7.332c.106-2.101%201.517-3.53%203.793-3.53%202.276%200%203.646%201.345%203.646%203.53h-7.439Zm9.778.4c0-3.426-2.381-5.821-5.943-5.821-3.73%200-6.174%202.563-6.174%206.535%200%204.013%202.423%206.555%206.28%206.555%202.929%200%205.247-1.597%205.669-3.887h-2.36c-.507%201.156-1.666%201.828-3.31%201.828-2.38%200-3.877-1.408-3.94-3.803h9.694c.042-.588.084-.861.084-1.408Zm5.69%206.932h1.939l5.5-12.44h-2.529L56%2015.99l-.316.021-3.793-9.833h-2.508l5.5%2012.439ZM32.23%2012.35c0-.882-.359-1.701-.99-2.437a8.594%208.594%200%200%201-1.497%201.093c.337.42.527.861.527%201.345%200%202.731-5.837%204.811-14.14%204.811-8.281.021-14.118-2.059-14.118-4.811%200-.463.168-.925.505-1.345a8.13%208.13%200%200%201-1.475-1.093c-.632.736-.99%201.555-.99%202.438%200%204.034%207.207%206.534%2016.1%206.534%208.87.021%2016.078-2.5%2016.078-6.535Zm-3.351%201.534c-.906-.462-1.96-.861-3.16-1.197-1.37.378-2.909.672-4.553.861%202.318.294%204.341.778%205.9%201.408.76-.336%201.37-.693%201.813-1.072Zm-17.849-.357a31.902%2031.902%200%200%201-4.467-.84c-1.18.336-2.255.735-3.16%201.197.42.379%201.01.715%201.748%201.05%201.539-.63%203.52-1.113%205.88-1.407Zm21.2-6.808c0-4.013-7.207-6.534-16.079-6.534C7.26.185.051%202.706.051%206.719c0%204.035%207.208%206.535%2016.1%206.535%208.872.021%2016.079-2.5%2016.079-6.535Zm-1.94%200c0%202.732-5.836%204.812-14.139%204.812-8.302.021-14.14-2.06-14.14-4.812%200-2.731%205.838-4.811%2014.14-4.811%207.86%200%2014.14%202.08%2014.14%204.811Zm-3.223%202.564c.758-.336%201.37-.694%201.812-1.072-2.95-1.513-7.544-2.353-12.728-2.353s-9.799.84-12.728%202.353c.422.378%201.012.715%201.75%201.05%202.507-1.05%206.363-1.68%2010.978-1.68%204.404%200%208.324.651%2010.916%201.702ZM1.042%2015.628c-.632.736-.99%201.534-.99%202.438%200%204.034%207.207%206.534%2016.1%206.534%208.892%200%2016.099-2.521%2016.099-6.534%200-.883-.359-1.702-.99-2.438-.422.4-.907.757-1.497%201.093.337.42.527.861.527%201.345%200%202.731-5.837%204.811-14.14%204.811-8.302%200-14.14-2.08-14.14-4.811%200-.463.17-.925.506-1.345a10.73%2010.73%200%200%201-1.475-1.093Z'/%3e%3c/svg%3e`,rt=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M35.3993%2026.4544C34.2871%2028.3855%2027.8314%2032.9425%2020%2032.9425C12.1686%2032.9425%205.71288%2028.3855%204.60075%2026.4544C4.5427%2026.3532%204.50826%2026.2401%204.5%2026.1237V22.418C4.51199%2022.3209%204.53496%2022.2256%204.56846%2022.1338C5.04896%2020.9261%206.30833%2019.1733%207.93325%2018.7031C8.14896%2018.149%208.468%2017.3404%208.76508%2016.7437C8.71727%2016.2776%208.69485%2015.8094%208.69792%2015.3409C8.69792%2013.6217%209.06217%2012.113%2010.1601%2010.9906C10.6729%2010.4662%2011.3097%2010.0644%2012.064%209.76091C13.871%208.29357%2016.4453%207.05745%2019.9716%207.05745C23.4978%207.05745%2026.129%208.29357%2027.936%209.76091C28.6903%2010.0644%2029.3271%2010.4662%2029.8399%2010.9906C30.9378%2012.113%2031.3021%2013.6217%2031.3021%2015.3409C31.3021%2015.8162%2031.284%2016.2877%2031.2349%2016.7437C31.532%2017.3404%2031.851%2018.149%2032.0667%2018.7031C33.6917%2019.1733%2034.951%2020.9261%2035.4315%2022.1338C35.4677%2022.2248%2035.4908%2022.3205%2035.5%2022.418V26.1237C35.4917%2026.2401%2035.4573%2026.3532%2035.3993%2026.4544ZM20.2222%2018.7147H19.7778C19.6422%2018.945%2019.4889%2019.1644%2019.3193%2019.3709C18.3247%2020.5941%2016.8419%2021.2981%2014.7881%2021.2981C12.56%2021.2981%2010.9273%2020.8344%209.90304%2019.6719C9.86495%2019.6283%209.82833%2019.5835%209.79325%2019.5375L9.66667%2019.6719V28.1775C11.5202%2029.1837%2015.4972%2030.992%2020%2030.992C24.5028%2030.992%2028.4798%2029.1837%2030.3333%2028.1775V19.6719L30.2067%2019.5375C30.2067%2019.5375%2030.1641%2019.5957%2030.097%2019.6719C29.0727%2020.8344%2027.44%2021.2981%2025.2119%2021.2981C23.1581%2021.2981%2021.6753%2020.5941%2020.6807%2019.3709C20.5111%2019.1644%2020.3578%2018.945%2020.2222%2018.7147ZM23.2292%2022.9127C23.9383%2022.9127%2024.5208%2023.4952%2024.5208%2024.2043V26.7877C24.5208%2027.4968%2023.9383%2028.0793%2023.2292%2028.0793C22.52%2028.0793%2021.9375%2027.4968%2021.9375%2026.7877V24.2043C21.9375%2023.4952%2022.52%2022.9127%2023.2292%2022.9127ZM16.7708%2022.9127C17.48%2022.9127%2018.0625%2023.4952%2018.0625%2024.2043V26.7877C18.0625%2027.4968%2017.48%2028.0793%2016.7708%2028.0793C16.0617%2028.0793%2015.4792%2027.4968%2015.4792%2026.7877V24.2043C15.4792%2023.4952%2016.0617%2022.9127%2016.7708%2022.9127ZM21.0501%2014.9237C21.2258%2016.289%2021.5707%2017.3947%2022.1842%2018.149C22.7551%2018.8517%2023.649%2019.3606%2025.2119%2019.3606C27.2437%2019.3606%2028.1724%2018.9253%2028.6438%2018.3905C29.1398%2017.8287%2029.3646%2016.9051%2029.3646%2015.3409C29.3646%2013.8684%2029.0507%2012.9552%2028.454%2012.3455C27.8378%2011.7152%2026.7502%2011.2321%2024.8063%2011.0216C22.8856%2010.8136%2021.975%2011.1998%2021.5345%2011.7049C21.187%2012.1014%2020.97%2012.7485%2020.9688%2013.7431V13.7702C20.9688%2014.1121%2020.9959%2014.4966%2021.0501%2014.9237ZM18.9499%2014.9237C19.0041%2014.4966%2019.0312%2014.1117%2019.0312%2013.7689V13.7431C19.03%2012.7485%2018.813%2012.1014%2018.4655%2011.7049C18.025%2011.1998%2017.1144%2010.8136%2015.1937%2011.0216C13.2498%2011.2321%2012.1622%2011.7152%2011.546%2012.3455C10.9493%2012.9552%2010.6354%2013.8684%2010.6354%2015.3409C10.6354%2016.9051%2010.8615%2017.8287%2011.3562%2018.3905C11.8276%2018.9253%2012.7563%2019.3606%2014.7881%2019.3606C16.351%2019.3606%2017.2449%2018.8517%2017.8158%2018.149C18.4293%2017.3947%2018.7742%2016.289%2018.9499%2014.9237Z'%20fill='currentColor'/%3e%3c/svg%3e`,it=`data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20role='img'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20.702%202.29c-2.494-1.554-5.778-1.187-8.706.654C9.076%201.104%205.79.736%203.3%202.29c-3.941%202.463-4.42%208.806-1.07%2014.167%202.47%203.954%206.333%206.269%209.77%206.226%203.439.043%207.301-2.273%209.771-6.226%203.347-5.361%202.872-11.704-1.069-14.167zM4.042%2015.328a12.838%2012.838%200%200%201-1.546-3.541%2010.12%2010.12%200%200%201-.336-3.338c.15-1.98.956-3.524%202.27-4.345%201.315-.822%203.052-.87%204.903-.137.281.113.556.24.825.382A15.11%2015.11%200%200%200%207.5%207.54c-2.035%203.255-2.655%206.878-1.945%209.765a13.247%2013.247%200%200%201-1.514-1.98zm17.465-3.541a12.866%2012.866%200%200%201-1.547%203.54%2013.25%2013.25%200%200%201-1.513%201.984c.635-2.589.203-5.76-1.353-8.734a.39.39%200%200%200-.563-.153l-4.852%203.032a.397.397%200%200%200-.126.546l.712%201.139a.395.395%200%200%200%20.547.126l3.145-1.965c.101.306.203.606.28.916.296%201.086.41%202.214.335%203.337-.15%201.982-.956%203.525-2.27%204.347a4.437%204.437%200%200%201-2.25.65h-.101a4.432%204.432%200%200%201-2.25-.65c-1.314-.822-2.121-2.365-2.27-4.347a10.153%2010.153%200%200%201%20.335-3.337%2013.212%2013.212%200%200%201%204.05-6.482%2010.148%2010.148%200%200%201%202.849-1.765c1.845-.733%203.586-.685%204.9.137%201.316.822%202.122%202.365%202.271%204.345a10.146%2010.146%200%200%201-.33%203.334z'/%3e%3c/svg%3e`,at=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M37%2020.034C27.8809%2020.5837%2020.5808%2027.8809%2020.0326%2037H19.966C19.4163%2027.8809%2012.1177%2020.5837%203%2020.034V19.9674C12.1191%2019.4163%2019.4163%2012.1191%2019.966%203H20.0326C20.5822%2012.1191%2027.8809%2019.4163%2037%2019.9674V20.034Z'%20fill='currentColor'/%3e%3c/svg%3e`,ot=`/assets/kimi-for-coding-eVEHug_h.svg`,st=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eLM%20Studio%3c/title%3e%3cpath%20d='M2.84%202a1.273%201.273%200%20100%202.547h14.107a1.273%201.273%200%20100-2.547H2.84zM7.935%205.33a1.273%201.273%200%20000%202.548H22.04a1.274%201.274%200%20000-2.547H7.935zM3.624%209.935c0-.704.57-1.274%201.274-1.274h14.106a1.274%201.274%200%20010%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM1.273%2012.188a1.273%201.273%200%20100%202.547H15.38a1.274%201.274%200%20000-2.547H1.273zM3.624%2016.792c0-.704.57-1.274%201.274-1.274h14.106a1.273%201.273%200%20110%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM13.029%2018.849a1.273%201.273%200%20100%202.547h9.698a1.273%201.273%200%20100-2.547h-9.698z'%20fill-opacity='.3'%3e%3c/path%3e%3cpath%20d='M2.84%202a1.273%201.273%200%20100%202.547h10.287a1.274%201.274%200%20000-2.547H2.84zM7.935%205.33a1.273%201.273%200%20000%202.548H18.22a1.274%201.274%200%20000-2.547H7.935zM3.624%209.935c0-.704.57-1.274%201.274-1.274h10.286a1.273%201.273%200%20010%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM1.273%2012.188a1.273%201.273%200%20100%202.547H11.56a1.274%201.274%200%20000-2.547H1.273zM3.624%2016.792c0-.704.57-1.274%201.274-1.274h10.286a1.273%201.273%200%20110%202.547H4.898c-.703%200-1.274-.57-1.274-1.273zM13.029%2018.849a1.273%201.273%200%20100%202.547h5.78a1.273%201.273%200%20100-2.547h-5.78z'%3e%3c/path%3e%3c/svg%3e`,ct=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.8758%209.20865C17.8758%208.59461%2017.3777%208.09634%2016.7663%208.09634C16.155%208.09634%2015.6567%208.59575%2015.6567%209.20865V27.6446C15.6567%2029.0714%2014.4985%2030.2324%2013.0755%2030.2324C11.6523%2030.2324%2010.4941%2029.0714%2010.4941%2027.6446V15.8167C10.4941%2015.2027%209.99591%2014.7044%209.38453%2014.7044C8.77316%2014.7044%208.275%2015.2038%208.275%2015.8167V20.8301C8.275%2022.2567%207.11678%2023.4179%205.69364%2023.4179C4.2705%2023.4179%203.1123%2022.2567%203.1123%2020.8301V19.0129C3.1123%2018.6054%203.44177%2018.2752%203.84822%2018.2752C4.25467%2018.2752%204.58413%2018.6054%204.58413%2019.0129V20.8301C4.58413%2021.4441%205.08227%2021.9424%205.69364%2021.9424C6.30502%2021.9424%206.80317%2021.443%206.80317%2020.8301V15.8167C6.80317%2014.39%207.96139%2013.2289%209.38453%2013.2289C10.8077%2013.2289%2011.9659%2014.39%2011.9659%2015.8167V27.6446C11.9659%2028.2587%2012.4641%2028.7569%2013.0755%2028.7569C13.6868%2028.7569%2014.1849%2028.2575%2014.1849%2027.6446V20.4123V9.20865C14.1849%207.78194%2015.3431%206.62082%2016.7663%206.62082C18.1894%206.62082%2019.3476%207.78194%2019.3476%209.20865V24.4746C19.3476%2024.8821%2019.0182%2025.2123%2018.6117%2025.2123C18.2053%2025.2123%2017.8758%2024.8821%2017.8758%2024.4746V9.20865ZM31.531%2013.2289C30.1079%2013.2289%2028.9496%2014.39%2028.9496%2015.8167V25.6969C28.9496%2026.311%2028.4515%2026.8093%2027.8401%2026.8093C27.2287%2026.8093%2026.7306%2026.3099%2026.7306%2025.6969V9.20865C26.7306%207.78194%2025.5723%206.62082%2024.1492%206.62082C22.7261%206.62082%2021.5679%207.78194%2021.5679%209.20865V30.1383C21.5679%2030.7523%2021.0697%2031.2506%2020.4583%2031.2506C19.8469%2031.2506%2019.3488%2030.7511%2019.3488%2030.1383V27.5471C19.3488%2027.1396%2019.0194%2026.8093%2018.6129%2026.8093C18.2065%2026.8093%2017.877%2027.1396%2017.877%2027.5471V30.1383C17.877%2031.565%2019.0352%2032.7261%2020.4583%2032.7261C21.8815%2032.7261%2023.0397%2031.565%2023.0397%2030.1383V9.20865C23.0397%208.59461%2023.5378%208.09634%2024.1492%208.09634C24.7605%208.09634%2025.2587%208.59575%2025.2587%209.20865V25.6969C25.2587%2027.1237%2026.417%2028.2848%2027.8401%2028.2848C29.2632%2028.2848%2030.4215%2027.1237%2030.4215%2025.6969V15.8167C30.4215%2015.2027%2030.9196%2014.7044%2031.531%2014.7044C32.1424%2014.7044%2032.6405%2015.2038%2032.6405%2015.8167V24.4746C32.6405%2024.8821%2032.97%2025.2123%2033.3764%2025.2123C33.7829%2025.2123%2034.1123%2024.8821%2034.1123%2024.4746V15.8167C34.1123%2014.39%2032.9541%2013.2289%2031.531%2013.2289Z'%20fill='currentColor'/%3e%3c/svg%3e`,lt=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.8758%209.20865C17.8758%208.59461%2017.3777%208.09634%2016.7663%208.09634C16.155%208.09634%2015.6567%208.59575%2015.6567%209.20865V27.6446C15.6567%2029.0714%2014.4985%2030.2324%2013.0755%2030.2324C11.6523%2030.2324%2010.4941%2029.0714%2010.4941%2027.6446V15.8167C10.4941%2015.2027%209.99591%2014.7044%209.38453%2014.7044C8.77316%2014.7044%208.275%2015.2038%208.275%2015.8167V20.8301C8.275%2022.2567%207.11678%2023.4179%205.69364%2023.4179C4.2705%2023.4179%203.1123%2022.2567%203.1123%2020.8301V19.0129C3.1123%2018.6054%203.44177%2018.2752%203.84822%2018.2752C4.25467%2018.2752%204.58413%2018.6054%204.58413%2019.0129V20.8301C4.58413%2021.4441%205.08227%2021.9424%205.69364%2021.9424C6.30502%2021.9424%206.80317%2021.443%206.80317%2020.8301V15.8167C6.80317%2014.39%207.96139%2013.2289%209.38453%2013.2289C10.8077%2013.2289%2011.9659%2014.39%2011.9659%2015.8167V27.6446C11.9659%2028.2587%2012.4641%2028.7569%2013.0755%2028.7569C13.6868%2028.7569%2014.1849%2028.2575%2014.1849%2027.6446V20.4123V9.20865C14.1849%207.78194%2015.3431%206.62082%2016.7663%206.62082C18.1894%206.62082%2019.3476%207.78194%2019.3476%209.20865V24.4746C19.3476%2024.8821%2019.0182%2025.2123%2018.6117%2025.2123C18.2053%2025.2123%2017.8758%2024.8821%2017.8758%2024.4746V9.20865ZM31.531%2013.2289C30.1079%2013.2289%2028.9496%2014.39%2028.9496%2015.8167V25.6969C28.9496%2026.311%2028.4515%2026.8093%2027.8401%2026.8093C27.2287%2026.8093%2026.7306%2026.3099%2026.7306%2025.6969V9.20865C26.7306%207.78194%2025.5723%206.62082%2024.1492%206.62082C22.7261%206.62082%2021.5679%207.78194%2021.5679%209.20865V30.1383C21.5679%2030.7523%2021.0697%2031.2506%2020.4583%2031.2506C19.8469%2031.2506%2019.3488%2030.7511%2019.3488%2030.1383V27.5471C19.3488%2027.1396%2019.0194%2026.8093%2018.6129%2026.8093C18.2065%2026.8093%2017.877%2027.1396%2017.877%2027.5471V30.1383C17.877%2031.565%2019.0352%2032.7261%2020.4583%2032.7261C21.8815%2032.7261%2023.0397%2031.565%2023.0397%2030.1383V9.20865C23.0397%208.59461%2023.5378%208.09634%2024.1492%208.09634C24.7605%208.09634%2025.2587%208.59575%2025.2587%209.20865V25.6969C25.2587%2027.1237%2026.417%2028.2848%2027.8401%2028.2848C29.2632%2028.2848%2030.4215%2027.1237%2030.4215%2025.6969V15.8167C30.4215%2015.2027%2030.9196%2014.7044%2031.531%2014.7044C32.1424%2014.7044%2032.6405%2015.2038%2032.6405%2015.8167V24.4746C32.6405%2024.8821%2032.97%2025.2123%2033.3764%2025.2123C33.7829%2025.2123%2034.1123%2024.8821%2034.1123%2024.4746V15.8167C34.1123%2014.39%2032.9541%2013.2289%2031.531%2013.2289Z'%20fill='currentColor'/%3e%3c/svg%3e`,ut=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M26.7,5.25l2.14-1.53,10.49,13.29-16.23,19.43-2.65,3L0.42,16.83l6.87-8.64,5.78,2.21,1.79-4.46L23.3,0.1l3.42,5.15ZM31.13,13.98L22.91,1.78l-7.1,4.95-5.45,13.53,20.77-6.28ZM36.74,15.57l-8.03-10.1-0.14-0.1-1.14,0.89,5.03,7.58,4.28,1.73ZM9.06,20.35l3.53-8.84-4.89-1.92-5.62,7.1,6.98,3.66ZM37.62,17.19l-5.3-2.14-9.22,19.52,14.52-17.38ZM30.95,15.24l-20.63,6.22,10.1,15.93,10.53-22.15ZM15.79,32.41l-6.86-10.82c-1.61-0.84-3.2-1.73-4.81-2.57-0.1-0.05-0.21-0.12-0.32-0.13l11.99,13.52Z'%20fill='currentColor'/%3e%3c/svg%3e`,dt=`data:image/svg+xml,%3csvg%20fill='currentColor'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOllama%3c/title%3e%3cpath%20d='M7.905%201.09c.216.085.411.225.588.41.295.306.544.744.734%201.263.191.522.315%201.1.362%201.68a5.054%205.054%200%20012.049-.636l.051-.004c.87-.07%201.73.087%202.48.474.101.053.2.11.297.17.05-.569.172-1.134.36-1.644.19-.52.439-.957.733-1.264a1.67%201.67%200%2001.589-.41c.257-.1.53-.118.796-.042.401.114.745.368%201.016.737.248.337.434.769.561%201.287.23.934.27%202.163.115%203.645l.053.04.026.019c.757.576%201.284%201.397%201.563%202.35.435%201.487.216%203.155-.534%204.088l-.018.021.002.003c.417.762.67%201.567.724%202.4l.002.03c.064%201.065-.2%202.137-.814%203.19l-.007.01.01.024c.472%201.157.62%202.322.438%203.486l-.006.039a.651.651%200%2001-.747.536.648.648%200%2001-.54-.742c.167-1.033.01-2.069-.48-3.123a.643.643%200%2001.04-.617l.004-.006c.604-.924.854-1.83.8-2.72-.046-.779-.325-1.544-.8-2.273a.644.644%200%2001.18-.886l.009-.006c.243-.159.467-.565.58-1.12a4.229%204.229%200%2000-.095-1.974c-.205-.7-.58-1.284-1.105-1.683-.595-.454-1.383-.673-2.38-.61a.653.653%200%2001-.632-.371c-.314-.665-.772-1.141-1.343-1.436a3.288%203.288%200%2000-1.772-.332c-1.245.099-2.343.801-2.67%201.686a.652.652%200%2001-.61.425c-1.067.002-1.893.252-2.497.703-.522.39-.878.935-1.066%201.588a4.07%204.07%200%2000-.068%201.886c.112.558.331%201.02.582%201.269l.008.007c.212.207.257.53.109.785-.36.622-.629%201.549-.673%202.44-.05%201.018.186%201.902.719%202.536l.016.019a.643.643%200%2001.095.69c-.576%201.236-.753%202.252-.562%203.052a.652.652%200%2001-1.269.298c-.243-1.018-.078-2.184.473-3.498l.014-.035-.008-.012a4.339%204.339%200%2001-.598-1.309l-.005-.019a5.764%205.764%200%2001-.177-1.785c.044-.91.278-1.842.622-2.59l.012-.026-.002-.002c-.293-.418-.51-.953-.63-1.545l-.005-.024a5.352%205.352%200%2001.093-2.49c.262-.915.777-1.701%201.536-2.269.06-.045.123-.09.186-.132-.159-1.493-.119-2.73.112-3.67.127-.518.314-.95.562-1.287.27-.368.614-.622%201.015-.737.266-.076.54-.059.797.042zm4.116%209.09c.936%200%201.8.313%202.446.855.63.527%201.005%201.235%201.005%201.94%200%20.888-.406%201.58-1.133%202.022-.62.375-1.451.557-2.403.557-1.009%200-1.871-.259-2.493-.734-.617-.47-.963-1.13-.963-1.845%200-.707.398-1.417%201.056-1.946.668-.537%201.55-.849%202.485-.849zm0%20.896a3.07%203.07%200%2000-1.916.65c-.461.37-.722.835-.722%201.25%200%20.428.21.829.61%201.134.455.347%201.124.548%201.943.548.799%200%201.473-.147%201.932-.426.463-.28.7-.686.7-1.257%200-.423-.246-.89-.683-1.256-.484-.405-1.14-.643-1.864-.643zm.662%201.21l.004.004c.12.151.095.37-.056.49l-.292.23v.446a.375.375%200%2001-.376.373.375.375%200%2001-.376-.373v-.46l-.271-.218a.347.347%200%2001-.052-.49.353.353%200%2001.494-.051l.215.172.22-.174a.353.353%200%2001.49.051zm-5.04-1.919c.478%200%20.867.39.867.871a.87.87%200%2001-.868.871.87.87%200%2001-.867-.87.87.87%200%2001.867-.872zm8.706%200c.48%200%20.868.39.868.871a.87.87%200%2001-.868.871.87.87%200%2001-.867-.87.87.87%200%2001.867-.872zM7.44%202.3l-.003.002a.659.659%200%2000-.285.238l-.005.006c-.138.189-.258.467-.348.832-.17.692-.216%201.631-.124%202.782.43-.128.899-.208%201.404-.237l.01-.001.019-.034c.046-.082.095-.161.148-.239.123-.771.022-1.692-.253-2.444-.134-.364-.297-.65-.453-.813a.628.628%200%2000-.107-.09L7.44%202.3zm9.174.04l-.002.001a.628.628%200%2000-.107.09c-.156.163-.32.45-.453.814-.29.794-.387%201.776-.23%202.572l.058.097.008.014h.03a5.184%205.184%200%20011.466.212c.086-1.124.038-2.043-.128-2.722-.09-.365-.21-.643-.349-.832l-.004-.006a.659.659%200%2000-.285-.239h-.004z'%3e%3c/path%3e%3c/svg%3e`,ft=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M32.8377%2017.282C33.2127%2016.25%2033.3072%2015.218%2033.2127%2014.1875C33.1197%2013.1571%2032.7447%2012.1251%2032.2752%2011.1876C31.4322%209.78209%2030.2127%208.6571%2028.8072%208.0001C27.3072%207.34461%2025.7127%207.15711%2024.1197%207.53211C23.3698%206.78212%2022.5253%206.12512%2021.5878%205.65713C20.6503%205.18913%2019.5253%205.00013%2018.4948%205.00013C16.8851%204.99074%2015.3125%205.48246%2013.9948%206.40712C12.6824%207.34311%2011.7449%208.6571%2011.2754%2010.1571C10.1504%2010.4376%209.21289%2010.9071%208.27539%2011.4696C7.4324%2012.1251%206.77541%2012.9696%206.21291%2013.8126C5.36992%2015.2195%205.08792%2016.8125%205.27542%2018.407C5.46399%2019.9968%206.11605%2021.496%207.1504%2022.718C6.79608%2023.7086%206.66795%2024.7659%206.77541%2025.8124C6.86991%2026.8444%207.2449%2027.8749%207.7129%2028.8124C8.55739%2030.2194%209.77538%2031.3444%2011.1824%2031.9999C12.6824%2032.6569%2014.2753%2032.8444%2015.8698%2032.4694C16.6198%2033.2194%2017.4628%2033.8749%2018.4003%2034.3444C19.3378%2034.8139%2020.4628%2034.9999%2021.4948%2034.9999C23.1043%2035.0097%2024.6769%2034.5185%2025.9947%2033.5944C27.3072%2032.6569%2028.2447%2031.3444%2028.7127%2029.8444C29.7719%2029.6432%2030.7682%2029.1934%2031.6197%2028.5319C32.4627%2027.8749%2033.2127%2027.1249%2033.6822%2026.1874C34.5251%2024.7819%2034.8071%2023.1875%2034.6196%2021.5945C34.4322%2020%2033.8697%2018.5015%2032.8377%2017.282ZM21.5878%2033.0304C20.0878%2033.0304%2018.9628%2032.5609%2017.9323%2031.7179C17.9323%2031.7179%2018.0253%2031.6234%2018.1198%2031.6234L24.1197%2028.1554C24.2862%2028.0803%2024.4196%2027.9469%2024.4947%2027.7804C24.5698%2027.636%2024.6021%2027.4731%2024.5877%2027.3109V18.875L27.1197%2020.375V27.3124C27.1455%2028.0547%2027.0215%2028.7945%2026.755%2029.4878C26.4885%2030.181%2026.085%2030.8134%2025.5687%2031.3473C25.0523%2031.8811%2024.4337%2032.3054%2023.7497%2032.5949C23.0658%2032.8843%2022.3305%2033.0314%2021.5878%2033.0304ZM9.49488%2027.8749C8.83789%2026.7499%208.55739%2025.4374%208.83789%2024.125C8.83789%2024.125%208.93239%2024.2195%209.02539%2024.2195L15.0253%2027.6874C15.1693%2027.7638%2015.3325%2027.7966%2015.4948%2027.7819C15.6823%2027.7819%2015.8698%2027.7819%2015.9628%2027.6874L23.2753%2023.4695V26.3749L17.1823%2029.9374C16.5506%2030.3042%2015.8527%2030.5427%2015.1287%2030.6393C14.4046%2030.7358%2013.6686%2030.6884%2012.9629%2030.4999C11.4629%2030.1249%2010.2449%2029.1874%209.49488%2027.8749ZM7.9004%2014.8445C8.56239%2013.7234%209.58826%2012.8627%2010.8074%2012.4056V19.532C10.8074%2019.718%2010.8074%2019.907%2010.9004%2020C10.9755%2020.1665%2011.1089%2020.2998%2011.2754%2020.375L18.5878%2024.5944L16.0573%2026.0944L10.0574%2022.625C9.41842%2022.2639%208.85742%2021.7797%208.40684%2021.2004C7.95627%2020.6211%207.62506%2019.9582%207.4324%2019.25C7.05741%2017.8445%207.1504%2016.157%207.9004%2014.8445ZM28.6197%2019.625L21.3073%2015.407L23.8377%2013.9071L29.8377%2017.375C30.7752%2017.9375%2031.5252%2018.6875%2031.9947%2019.625C32.4642%2020.5625%2032.7447%2021.5945%2032.6502%2022.7195C32.5603%2023.7755%2032.1699%2024.7837%2031.5252%2025.6249C30.8697%2026.4694%2030.0252%2027.1249%2028.9947%2027.4999V20.375C28.9947%2020.1875%2028.9947%2020%2028.9002%2019.907C28.9002%2019.907%2028.8072%2019.718%2028.6197%2019.625ZM31.1502%2015.875C31.1502%2015.875%2031.0572%2015.782%2030.9627%2015.782L24.9627%2012.3126C24.7752%2012.2196%2024.6822%2012.2196%2024.4947%2012.2196C24.3072%2012.2196%2024.1197%2012.2196%2024.0252%2012.3126L16.7128%2016.532V13.6251L22.8073%2010.0626C23.7448%209.50009%2024.7752%209.31259%2025.9002%209.31259C26.9322%209.31259%2027.9627%209.68759%2028.9002%2010.3446C29.7447%2011.0001%2030.4947%2011.8446%2030.8697%2012.7821C31.2447%2013.7196%2031.3377%2014.8445%2031.1502%2015.875ZM15.4003%2021.125L12.8699%2019.625V12.5946C12.8699%2011.5626%2013.1503%2010.4376%2013.7128%209.59459C14.2753%208.6571%2015.1198%208.0001%2016.0573%207.53211C17.0127%207.05249%2018.0956%206.88812%2019.1503%207.06261C20.1823%207.15711%2021.2128%207.62511%2022.0573%208.2821C22.0573%208.2821%2021.9628%208.3751%2021.8698%208.3751L15.8698%2011.8446C15.7033%2011.9197%2015.57%2012.0531%2015.4948%2012.2196C15.4003%2012.4071%2015.4003%2012.5001%2015.4003%2012.6876V21.125ZM16.7128%2018.125L19.9948%2016.25L23.2753%2018.125V21.875L19.9948%2023.75L16.7128%2021.875V18.125Z'%20fill='currentColor'/%3e%3c/svg%3e`,pt=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenCode%3c/title%3e%3cpath%20d='M8.12%204.7a1%201%200%200%201%20.18%201.4L3.58%2012l4.72%205.9a1%201%200%201%201-1.56%201.25l-5.22-6.53a1%201%200%200%201%200-1.24l5.22-6.53a1%201%200%200%201%201.38-.15Zm7.76%200a1%201%200%200%200-.18%201.4l4.72%205.9-4.72%205.9a1%201%200%201%200%201.56%201.25l5.22-6.53a1%201%200%200%200%200-1.24l-5.22-6.53a1%201%200%200%200-1.38-.15ZM14.45%203.05a1%201%200%200%201%20.5%201.32l-6.4%2016a1%201%200%201%201-1.86-.74l6.4-16a1%201%200%200%201%201.36-.58Z'/%3e%3c/svg%3e`,mt=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.10913%2012.07C3.65512%2012.07%205.76627%2011.5988%206.85825%2010.98C7.95023%2010.3612%207.95023%2010.3612%2010.207%208.75965C13.0642%206.73196%2015.0845%207.41088%2018.3968%207.41088'%20fill='currentColor'/%3e%3cpath%20d='M3.10913%2012.07C3.65512%2012.07%205.76627%2011.5988%206.85825%2010.98C7.95023%2010.3612%207.95023%2010.3612%2010.207%208.75965C13.0642%206.73196%2015.0845%207.41088%2018.3968%207.41088'%20stroke='currentColor'%20stroke-width='3.27593'/%3e%3cpath%20d='M21.6%207.43108L16.0037%2010.6622V4.20001L21.6%207.43108Z'%20fill='currentColor'%20stroke='currentColor'%20stroke-width='0.0363992'/%3e%3cpath%20d='M3%2012.072C3.54599%2012.072%205.65714%2012.5432%206.74912%2013.162C7.8411%2013.7808%207.8411%2013.7808%2010.0978%2015.3823C12.9551%2017.41%2014.9753%2016.7311%2018.2877%2016.7311'%20fill='currentColor'/%3e%3cpath%20d='M3%2012.072C3.54599%2012.072%205.65714%2012.5432%206.74912%2013.162C7.8411%2013.7808%207.8411%2013.7808%2010.0978%2015.3823C12.9551%2017.41%2014.9753%2016.7311%2018.2877%2016.7311'%20stroke='currentColor'%20stroke-width='3.27593'/%3e%3cpath%20d='M21.4909%2016.7109L15.8945%2013.4798V19.942L21.4909%2016.7109Z'%20fill='currentColor'%20stroke='currentColor'%20stroke-width='0.0363992'/%3e%3c/svg%3e`,ht=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cimage%20width='24'%20height='24'%20xlink:href='data:image/png;base64,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'/%3e%3c/svg%3e`,gt=`data:image/svg+xml,%3csvg%20viewBox='5%205%2030%2030'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.4579%2015.6036L26.1529%2035H20.0656L6.37059%2015.6036H12.4579ZM12.4524%2026.3764L15.4974%2030.6909L12.4551%2035H6.36377L12.4524%2026.3764ZM33.6365%207.15727V35H28.647V14.2236L33.6365%207.15727ZM33.6365%205L20.0656%2024.2205L17.0206%2019.9073L27.5451%205H33.6365Z'%20fill='currentColor'/%3e%3c/svg%3e`,_t=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20.1312%207.50002L17.4088%2011.1913H5.81625L8.5375%207.50002H20.1325H20.1312ZM34.0675%2028.81L31.3475%2032.5H19.795L22.5125%2028.81H34.0675ZM35%207.50002L16.58%2032.5H5L23.42%207.50002H35Z'%20fill='currentColor'/%3e%3c/svg%3e`,vt=`data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20.1312%207.5L17.4088%2011.1912H5.81625L8.5375%207.5H20.1325H20.1312ZM34.0675%2028.81L31.3475%2032.5H19.795L22.5125%2028.81H34.0675ZM35%207.5L16.58%2032.5H5L23.42%207.5H35Z'%20fill='currentColor'/%3e%3c/svg%3e`,yt=[...`claudecodeinternal.codexinternal.codebuddy.geminicli.claude.composer.cursor.deepseek.doubao.gemini.gemma.glm.gpt.grok.hunyuan.hy.imate.kimi.knot.longcat.minimax.mistral.llama.qwen.seed.tapd.with.yuanbao.claw.echo.gongfeng.ernie.baichuan`.split(`.`)].sort((e,t)=>t.length-e.length),bt={hy3:`hy`,hunyuan3:`hy`,hunyuan:`hy`,moonshot:`kimi`,anthropic:`claude`,openai:`gpt`,chatgpt:`gpt`,codex:`gpt`,xai:`grok`,google:`gemini`,aliyun:`qwen`,dashscope:`qwen`,zhipu:`glm`,zhipuai:`glm`,"z-ai":`glm`,zai:`glm`,zaicodingplan:`glm`,zhipuaicodingplan:`glm`,tencent:`hy`,meta:`llama`,"meta-llama":`llama`},xt=[`-volc-ioa`,`-ioa`,`-official`,`-external`,`-internal`,`-preview`],St={claude:[`claude`,`anthropic`],gpt:[`gpt`,`openai`],gemini:[`google`,`gemini`],gemma:[`google`,`gemma`,`gemini`],grok:[`grok`],kimi:[`kimi`],glm:[`zai-coding-plan`,`zhipuai-coding-plan`,`glm`],qwen:[`qwen`],hy:[`hunyuan`,`hy`],hunyuan:[`hunyuan`,`hy`],deepseek:[`deepseek`],minimax:[`minimax`],doubao:[`doubao`],longcat:[`longcat`],seed:[`seed`],cursor:[`cursor`,`composer`],composer:[`cursor`,`composer`]},Ct=e=>String(e||``).trim().toLowerCase(),wt=e=>Ct(e).replace(/[^a-z0-9]/g,``),Tt=e=>{let t=Ct(e).replace(/[._]/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),n=!0;for(;n;){n=!1;for(let e of xt)if(t.endsWith(e)&&t.length>e.length){t=t.slice(0,-e.length),n=!0;break}}return/(^|-)\d+m$/.test(t)&&(t=t.replace(/-\d+m$/,``)),bt[t]?bt[t]:t===`hy3`||t===`hunyuan-3`||t===`hunyuan3`?`hy`:t},Et=e=>{if(!e)return null;let t=e.toLowerCase();for(let e of yt)if(t.includes(e))return e;if(t.length>=3){for(let e of yt)if(e.includes(t))return e}let n=null,r=0;for(let e of yt){let i=0,a=Math.min(t.length,e.length);for(let n=0;n<a&&t[n]===e[n];n++)i++;i>=3&&i>r&&(r=i,n=e)}return n},Dt=e=>bt[e]||e,Ot=(e,t)=>{let n=[],r=Tt(e),i=wt(r),a=wt(e),o=wt(t);i&&n.push(i),a&&a!==i&&n.push(a),o&&n.push(o),i&&o&&n.push(o+i,i+o);for(let e of n){let t=Et(e);if(t)return Dt(t)}return/(^|-)o\d/.test(r)||/^o\d/.test(i)?`gpt`:o&&bt[o]?bt[o]:null},kt=e=>{if(!e)return[];let t=St[Dt(e)];return t?[...new Set(t.filter(Boolean))]:[]},At=Object.assign({"../assets/model-icons/_check.png":Ne,"../assets/model-icons/claude.svg":Pe,"../assets/model-icons/composer.svg":Fe,"../assets/model-icons/cursor.svg":Ie,"../assets/model-icons/deepseek.svg":Le,"../assets/model-icons/doubao.svg":Re,"../assets/model-icons/gemini.svg":ze,"../assets/model-icons/gemma.svg":Be,"../assets/model-icons/glm.svg":Ve,"../assets/model-icons/gpt.svg":He,"../assets/model-icons/grok.png":Ue,"../assets/model-icons/grok.svg":We,"../assets/model-icons/hunyuan.svg":Ge,"../assets/model-icons/hy.svg":Ke,"../assets/model-icons/kimi.svg":qe,"../assets/model-icons/longcat.svg":Je,"../assets/model-icons/minimax.svg":Ye,"../assets/model-icons/qwen.svg":Xe,"../assets/model-icons/seed.svg":Ze}),jt=Object.assign({"../assets/provider-logos/anthropic.svg":Qe,"../assets/provider-logos/bailian-coding-plan.svg":$e,"../assets/provider-logos/cursor.svg":et,"../assets/provider-logos/deepseek.svg":tt,"../assets/provider-logos/evroc.svg":nt,"../assets/provider-logos/github-copilot.svg":rt,"../assets/provider-logos/gocode.svg":it,"../assets/provider-logos/google.svg":at,"../assets/provider-logos/kimi-for-coding.svg":ot,"../assets/provider-logos/lmstudio.svg":st,"../assets/provider-logos/minimax-cn-coding-plan.svg":ct,"../assets/provider-logos/minimax-coding-plan.svg":lt,"../assets/provider-logos/nano-gpt.svg":ut,"../assets/provider-logos/ollama.svg":dt,"../assets/provider-logos/openai.svg":ft,"../assets/provider-logos/opencode.svg":pt,"../assets/provider-logos/openrouter.svg":mt,"../assets/provider-logos/wafer.ai.svg":ht,"../assets/provider-logos/xai.svg":gt,"../assets/provider-logos/zai-coding-plan.svg":_t,"../assets/provider-logos/zhipuai-coding-plan.svg":vt}),Mt=new Map,Nt=new Map,Pt=new Map([[`codex`,`openai`],[`chatgpt`,`openai`],[`claude`,`anthropic`],[`gemini`,`google`],[`evroc-ai`,`evroc`],[`evrocai`,`evroc`],[`ollama-cloud`,`ollama`],[`opencode-go`,`opencode`],[`wafer-ai`,`wafer.ai`],[`wafer`,`wafer.ai`],[`zai-coding-plan`,`zai`],[`zhipuai-coding-plan`,`zhipuai`],[`api-for-cursor`,`cursor`]]),Ft=Object.entries(At).sort(([e],[t])=>!!e.toLowerCase().endsWith(`.png`)-+!!t.toLowerCase().endsWith(`.png`));for(let[e,t]of Ft){let n=e.match(/model-icons\/([^/]+)\.(?:svg|png)$/i);n?.[1]&&t&&Mt.set(n[1].toLowerCase(),t)}for(let[e,t]of Object.entries(jt)){let n=e.match(/provider-logos\/([^/]+)\.svg$/i);n?.[1]&&t&&Nt.set(n[1].toLowerCase(),t)}var It=e=>(e??``).toLowerCase().trim().replace(/^models\./,``).replace(/^provider\./,``).replace(/\s+/g,`-`),Lt=e=>{let t=It(e);if(!t)return[];let n=t.replace(/[^a-z0-9_\-./:]/g,``),r=n.split(/[/:]/)[0]||n,i=[Pt.get(n),Pt.get(r),n,r].filter(e=>!!(e&&e.length>0));return[...new Set(i)]},Rt=(e,t)=>{let n=Ot(e,t),r=kt(n),i=Lt(t),a=[];for(let e of r){let t=Mt.get(e);t&&a.push(t)}for(let e of r){let t=Nt.get(e);t&&a.push(t)}for(let e of i){let t=Nt.get(e);t&&a.push(t)}return{brand:n,chain:[...new Set(a)]}};function zt(e,t){let n=(0,U.c)(14),r;n[0]!==e||n[1]!==t?(r=Rt(e,t),n[0]=e,n[1]=t,n[2]=r):r=n[2];let{brand:i,chain:a}=r,[o,s]=(0,W.useState)(0),c;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{s(0)},n[3]=c):c=n[3];let l;n[4]!==e||n[5]!==t?(l=[e,t],n[4]=e,n[5]=t,n[6]=l):l=n[6],(0,W.useEffect)(c,l);let u;n[7]===a.length?u=n[8]:(u=()=>{s(e=>{let t=e+1;return t<a.length?t:a.length})},n[7]=a.length,n[8]=u);let d=O(u),f=o<a.length?a[o]??null:null,p=!!f,m;return n[9]!==i||n[10]!==d||n[11]!==f||n[12]!==p?(m={src:f,onError:d,hasLogo:p,brand:i},n[9]=i,n[10]=d,n[11]=f,n[12]=p,n[13]=m):m=n[13],m}var Bt=e=>{let t=(0,U.c)(12),{modelId:n,providerId:r,alt:i,className:a,onError:o,fallback:s}=e,{src:c,onError:l,hasLogo:u,brand:d}=zt(n,r),f;t[0]!==o||t[1]!==l?(f=()=>{l(),o?.()},t[0]=o,t[1]=l,t[2]=f):f=t[2];let p=f;if(!u||!c){let e=s??null,n;return t[3]===e?n=t[4]:(n=(0,G.jsx)(G.Fragment,{children:e}),t[3]=e,t[4]=n),n}let m=i||`${d||n||r||`model`} logo`,h;t[5]===a?h=t[6]:(h=V(`brightness-0 dark:invert object-contain`,a),t[5]=a,t[6]=h);let g;return t[7]!==p||t[8]!==c||t[9]!==m||t[10]!==h?(g=(0,G.jsx)(`img`,{src:c,alt:m,className:h,loading:`eager`,decoding:`async`,fetchPriority:`high`,draggable:!1,onError:p}),t[7]=p,t[8]=c,t[9]=m,t[10]=h,t[11]=g):g=t[11],g},Vt=()=>{let e=(0,U.c)(22),t=M(Ht),r=n(Ut),i=n(Wt),a=n(Gt),o;e[0]===a?o=e[1]:(o=(e,t)=>a.some(n=>n.providerID===e&&n.modelID===t),e[0]=a,e[1]=o);let s=o,c;if(e[2]!==r||e[3]!==s||e[4]!==t){let n;e[6]!==s||e[7]!==t?(n=e=>{let{providerID:n,modelID:r}=e,i=t.find(e=>e.id===n);if(!i)return null;let a=(Array.isArray(i.models)?i.models:[]).find(e=>e.id===r);return!a||s(n,r)?null:{provider:i,model:a,providerID:n,modelID:r}},e[6]=s,e[7]=t,e[8]=n):n=e[8],c=r.map(n).filter(Kt),e[2]=r,e[3]=s,e[4]=t,e[5]=c}else c=e[5];let l=c,u;if(e[9]!==r||e[10]!==s||e[11]!==t||e[12]!==i){let n;e[14]!==s||e[15]!==t?(n=e=>{let{providerID:n,modelID:r}=e,i=t.find(e=>e.id===n);if(!i)return null;let a=(Array.isArray(i.models)?i.models:[]).find(e=>e.id===r);return!a||s(n,r)?null:{provider:i,model:a,providerID:n,modelID:r}},e[14]=s,e[15]=t,e[16]=n):n=e[16];let a;e[17]===r?a=e[18]:(a=e=>{let{providerID:t,modelID:n}=e;return!r.some(e=>e.providerID===t&&e.modelID===n)},e[17]=r,e[18]=a),u=i.map(n).filter(qt).filter(a),e[9]=r,e[10]=s,e[11]=t,e[12]=i,e[13]=u}else u=e[13];let d=u,f;return e[19]!==l||e[20]!==d?(f={favoriteModelsList:l,recentModelsList:d},e[19]=l,e[20]=d,e[21]=f):f=e[21],f};function Ht(e){return e.providers}function Ut(e){return e.favoriteModels}function Wt(e){return e.recentModels}function Gt(e){return e.hiddenModels}function Kt(e){return e!==null}function qt(e){return e!==null}var Jt=Object.assign({"../assets/provider-logos/anthropic.svg":Qe,"../assets/provider-logos/bailian-coding-plan.svg":$e,"../assets/provider-logos/cursor.svg":et,"../assets/provider-logos/deepseek.svg":tt,"../assets/provider-logos/evroc.svg":nt,"../assets/provider-logos/github-copilot.svg":rt,"../assets/provider-logos/gocode.svg":it,"../assets/provider-logos/google.svg":at,"../assets/provider-logos/kimi-for-coding.svg":ot,"../assets/provider-logos/lmstudio.svg":st,"../assets/provider-logos/minimax-cn-coding-plan.svg":ct,"../assets/provider-logos/minimax-coding-plan.svg":lt,"../assets/provider-logos/nano-gpt.svg":ut,"../assets/provider-logos/ollama.svg":dt,"../assets/provider-logos/openai.svg":ft,"../assets/provider-logos/opencode.svg":pt,"../assets/provider-logos/openrouter.svg":mt,"../assets/provider-logos/wafer.ai.svg":ht,"../assets/provider-logos/xai.svg":gt,"../assets/provider-logos/zai-coding-plan.svg":_t,"../assets/provider-logos/zhipuai-coding-plan.svg":vt}),Yt=new Map,Xt=new Set,Zt=new Map([[`codex`,`openai`],[`chatgpt`,`openai`],[`claude`,`anthropic`],[`gemini`,`google`],[`evroc-ai`,`evroc`],[`evrocai`,`evroc`],[`ollama-cloud`,`ollama`],[`opencode-go`,`opencode`],[`wafer-ai`,`wafer.ai`],[`wafer`,`wafer.ai`]]),Qt=e=>(e??``).toLowerCase().trim().replace(/^models\./,``).replace(/^provider\./,``).replace(/\s+/g,`-`),$t=e=>{let t=Qt(e);if(!t)return[];let n=t.replace(/[^a-z0-9_\-./:]/g,``),r=n.split(/[/:]/)[0]||n,i=[Zt.get(n),Zt.get(r),n,r].filter(e=>!!(e&&e.length>0));return[...new Set(i)]},en=e=>{let t=$t(e).find(e=>Yt.has(e))??null;return t?Yt.get(t)??null:null},tn=e=>{if(typeof Image>`u`)return;let t=en(e);if(!t||Xt.has(t))return;Xt.add(t);let n=new Image;n.decoding=`async`,n.onerror=()=>{Xt.delete(t)},n.src=t,n.decode?.().catch(()=>void 0)},nn=e=>{for(let t of e)tn(t)};for(let[e,t]of Object.entries(Jt)){let n=e.match(/provider-logos\/([^/]+)\.svg$/i);n?.[1]&&t&&Yt.set(n[1].toLowerCase(),t)}function rn(e){let t=(0,U.c)(17),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):(r=$t(e).find(an)??null,n=!!r,i=r?Yt.get(r)??null:null,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i,[o,s]=(0,W.useState)(n?`local`:`none`),c;t[4]===n?c=t[5]:(c=()=>{s(n?`local`:`none`)},t[4]=n,t[5]=c);let l;t[6]!==n||t[7]!==r?(l=[n,r],t[6]=n,t[7]=r,t[8]=l):l=t[8],(0,W.useEffect)(c,l);let u;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{s(`none`)},t[9]=u):u=t[9];let d=O(u);if(!r){let e;return t[10]===d?e=t[11]:(e={src:null,onError:d,hasLogo:!1},t[10]=d,t[11]=e),e}if(o===`local`&&a){let e;return t[12]!==d||t[13]!==a?(e={src:a,onError:d,hasLogo:!0},t[12]=d,t[13]=a,t[14]=e):e=t[14],e}let f;return t[15]===d?f=t[16]:(f={src:null,onError:d,hasLogo:!1},t[15]=d,t[16]=f),f}function an(e){return Yt.has(e)}var on=e=>{let t=(0,U.c)(4),{className:n}=e,r;t[0]===n?r=t[1]:(r=V(`text-muted-foreground`,n),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,G.jsx)(H,{name:`stack`,className:r}),t[2]=r,t[3]=i),i},sn=e=>{let t=(0,U.c)(12),{providerId:n,alt:r,className:i,onError:a}=e,{src:o,onError:s,hasLogo:c}=rn(n),l;t[0]!==a||t[1]!==s?(l=()=>{s(),a?.()},t[0]=a,t[1]=s,t[2]=l):l=t[2];let u=l;if(!c||!o){let e;return t[3]===i?e=t[4]:(e=(0,G.jsx)(on,{className:i}),t[3]=i,t[4]=e),e}let d=r||`${n} logo`,f;t[5]===i?f=t[6]:(f=V(`dark:invert object-contain`,i),t[5]=i,t[6]=f);let p;return t[7]!==u||t[8]!==o||t[9]!==d||t[10]!==f?(p=(0,G.jsx)(`img`,{src:o,alt:d,className:f,loading:`eager`,decoding:`async`,fetchPriority:`high`,draggable:!1,onError:u}),t[7]=u,t[8]=o,t[9]=d,t[10]=f,t[11]=p):p=t[11],p},cn=(e,t)=>{if(!e||typeof e!=`object`)return;let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:void 0},ln=(e,t,n)=>{let r=cn(t.limit,`context`),i=cn(t.limit,`output`),a=r??n?.limit?.context,o=i??n?.limit?.output;return a===void 0&&o===void 0?n:{...n??{id:typeof t.id==`string`?t.id:``,providerId:e,name:typeof t.name==`string`?t.name:void 0},limit:{...n?.limit,...a===void 0?{}:{context:a},...o===void 0?{}:{output:o}}}};function un(e){let t=e.toLowerCase().trim();return{lower:t,compact:t.replace(/[^a-z0-9]/g,``),tokens:t.split(/[^a-z0-9]+/).filter(Boolean)}}function dn(e,t){let n=un(t);if(!n.lower)return!0;let r=un(e);return r.lower.includes(n.lower)||n.compact.length>=2&&r.compact.includes(n.compact)?!0:n.tokens.length!==0&&n.tokens.every(e=>r.tokens.some(t=>t.startsWith(e)||t.includes(e)))}var fn=a()(o(e=>({collapsedSections:{},toggleSection:t=>e(e=>{let n={...e.collapsedSections};return n[t]?delete n[t]:n[t]=!0,{collapsedSections:n}})}),{name:`model-picker-collapsed-sections`,version:1})),pn={image:{icon:`file-image`,labelKey:`modalityImage`},video:{icon:`file-video`,labelKey:`modalityVideo`},audio:{icon:`file-music`,labelKey:`modalityAudio`}},mn=e=>e.trim().toLowerCase(),hn=e=>{let t=(0,U.c)(5),{iconName:n,label:r}=e,i;t[0]===n?i=t[1]:(i=(0,G.jsx)(H,{name:n,className:`size-3.5`}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,G.jsx)(`span`,{className:`flex size-4 flex-shrink-0 items-center justify-center text-muted-foreground`,title:r,"aria-label":r,role:`img`,children:i}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a},gn=(e,t)=>{let n=[];e?.tool_call&&t.capabilityToolCalling&&n.push({key:`tool_call`,icon:`tools`,label:t.capabilityToolCalling}),e?.reasoning&&t.capabilityReasoning&&n.push({key:`reasoning`,icon:`brain-ai-3`,label:t.capabilityReasoning});let r=[...e?.modalities?.input??[],...e?.modalities?.output??[]],i=Array.from(new Set(r.map(mn).filter(Boolean)));for(let e of i){let r=pn[e];if(!r)continue;let i=t[r.labelKey];i&&n.push({key:`modality-${e}`,icon:r.icon,label:i})}return n},_n=e=>new Intl.NumberFormat(A(),{notation:`compact`,compactDisplay:`short`,maximumFractionDigits:1,minimumFractionDigits:0}).format(e),vn=e=>new Intl.NumberFormat(A(),{style:`currency`,currency:`USD`,maximumFractionDigits:4,minimumFractionDigits:2}).format(e),yn=e=>j(e,void 0,{maxLength:40}),bn=e=>{if(typeof e!=`number`||Number.isNaN(e))return``;if(e===0)return`0`;let t=_n(e);return t.endsWith(`.0`)?t.slice(0,-2):t},xn=e=>typeof e!=`number`||!Number.isFinite(e)?`—`:vn(e),Sn=(e,t)=>t?!0:e?!!(e.tool_call||e.reasoning||e.cost?.input!==void 0||e.cost?.output!==void 0||(e.modalities?.input?.length??0)>0||(e.modalities?.output?.length??0)>0):!1,Cn=e=>{let t=(0,U.c)(12),{metadata:n,providerName:r,active:i,labels:a,children:o}=e,[s,c]=W.useState(!1),l,u;if(t[0]===i?(l=t[1],u=t[2]):(l=()=>{if(!i){c(!1);return}let e=window.setTimeout(()=>c(!0),450);return()=>window.clearTimeout(e)},u=[i],t[0]=i,t[1]=l,t[2]=u),W.useEffect(l,u),!Sn(n,r))return o;let d;if(t[3]!==i||t[4]!==o||t[5]!==s||t[6]!==a||t[7]!==n||t[8]!==r){let e=gn(n,a),c=n?.cost?.input!==void 0||n?.cost?.output!==void 0,l;t[10]===o?l=t[11]:(l=(0,G.jsx)(oe,{asChild:!0,children:o}),t[10]=o,t[11]=l),d=(0,G.jsxs)(ce,{delayDuration:0,open:i&&s,onOpenChange:Mn,children:[l,i&&s?(0,G.jsx)(se,{side:`right`,sideOffset:8,className:`min-w-52 max-w-xs text-left transition-none data-[starting-style]:opacity-100 data-[starting-style]:scale-100 data-[ending-style]:opacity-100 data-[ending-style]:scale-100`,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 text-left text-xs`,children:[r&&a.provider?(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-muted-foreground`,children:[(0,G.jsx)(`span`,{className:`typography-meta font-medium`,children:a.provider}),(0,G.jsx)(`span`,{className:`typography-meta text-foreground`,children:r})]}):null,e.length>0?(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-muted-foreground`,children:[(0,G.jsx)(`span`,{className:`typography-meta font-medium shrink-0`,children:a.capabilities}),(0,G.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-1`,children:e.map(Nn)})]}):null,c?(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3 text-muted-foreground`,children:[a.costPerMillion?(0,G.jsx)(`span`,{className:`typography-meta font-medium shrink-0`,children:a.costPerMillion}):null,(0,G.jsxs)(`div`,{className:`flex flex-col items-end gap-0.5 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5 min-w-0`,children:[a.costInput?(0,G.jsx)(`span`,{className:`typography-meta shrink-0`,children:a.costInput}):null,(0,G.jsx)(`span`,{className:`typography-meta text-foreground tabular-nums`,children:xn(n?.cost?.input)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5 min-w-0`,children:[a.costOutput?(0,G.jsx)(`span`,{className:`typography-meta shrink-0`,children:a.costOutput}):null,(0,G.jsx)(`span`,{className:`typography-meta text-foreground tabular-nums`,children:xn(n?.cost?.output)})]})]})]}):null]})}):null]}),t[3]=i,t[4]=o,t[5]=s,t[6]=a,t[7]=n,t[8]=r,t[9]=d}else d=t[9];return d},wn=()=>{let e=0,t=new Set,n=new Map,r=e=>{let t=n.get(e);if(t)for(let e of t)e()};return{getSnapshot:()=>e,subscribe:e=>(t.add(e),()=>t.delete(e)),subscribeIndex:(e,t)=>{let r=n.get(e);return r||(r=new Set,n.set(e,r)),r.add(t),()=>{r.delete(t),r.size===0&&n.delete(e)}},set:n=>{if(e===n)return;let i=e;e=n,r(i),r(n);for(let e of t)e()}}},Tn=W.memo(e=>{let t=(0,U.c)(12),{store:n,index:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=()=>n.getSnapshot()===r,t[0]=r,t[1]=n,t[2]=a):a=t[2];let[o,s]=W.useState(a),c,l;t[3]!==r||t[4]!==n?(c=()=>{let e=()=>s(n.getSnapshot()===r);return e(),n.subscribeIndex(r,e)},l=[r,n],t[3]=r,t[4]=n,t[5]=c,t[6]=l):(c=t[5],l=t[6]),W.useEffect(c,l);let u;t[7]!==i||t[8]!==o?(u=i(o),t[7]=i,t[8]=o,t[9]=u):u=t[9];let d;return t[10]===u?d=t[11]:(d=(0,G.jsx)(G.Fragment,{children:u}),t[10]=u,t[11]=d),d}),En=e=>{let t=(0,U.c)(11),{store:n,flatModelList:r,footerContent:i,fallback:a}=e,o;t[0]===n?o=t[1]:(o=()=>n.getSnapshot(),t[0]=n,t[1]=o);let[s,c]=W.useState(o),l,u;t[2]===n?(l=t[3],u=t[4]):(l=()=>n.subscribe(()=>c(n.getSnapshot())),u=[n],t[2]=n,t[3]=l,t[4]=u),W.useEffect(l,u);let d=r[s],f;t[5]!==d||t[6]!==a||t[7]!==i?(f=typeof i==`function`?i(d):i??a,t[5]=d,t[6]=a,t[7]=i,t[8]=f):f=t[8];let p;return t[9]===f?p=t[10]:(p=(0,G.jsx)(G.Fragment,{children:f}),t[9]=f,t[10]=p),p},Dn=e=>{let t=(0,U.c)(21),{id:n,disabled:r,children:i}=e,a=r!==void 0&&r,o;t[0]!==a||t[1]!==n?(o={id:n,disabled:a},t[0]=a,t[1]=n,t[2]=o):o=t[2];let{attributes:s,listeners:c,setNodeRef:l,setActivatorNodeRef:u,transform:d,transition:f,isDragging:p}=ve(o),m;t[3]===d?m=t[4]:(m=ge.Transform.toString(d),t[3]=d,t[4]=m);let h;t[5]!==m||t[6]!==f?(h={transform:m,transition:f},t[5]=m,t[6]=f,t[7]=h):h=t[7];let g=p&&`opacity-60`,_;t[8]===g?_=t[9]:(_=V(g),t[8]=g,t[9]=_);let v;t[10]!==s||t[11]!==i||t[12]!==p||t[13]!==c||t[14]!==u?(v=i({attributes:s,listeners:c,setActivatorNodeRef:u,isDragging:p}),t[10]=s,t[11]=i,t[12]=p,t[13]=c,t[14]=u,t[15]=v):v=t[15];let y;return t[16]!==l||t[17]!==h||t[18]!==_||t[19]!==v?(y=(0,G.jsx)(`div`,{ref:l,style:h,className:_,children:v}),t[16]=l,t[17]=h,t[18]=_,t[19]=v,t[20]=y):y=t[20],y},On=e=>{let t=(0,U.c)(21),{id:n,disabled:r,children:i}=e,a=r!==void 0&&r,o;t[0]!==a||t[1]!==n?(o={id:n,disabled:a},t[0]=a,t[1]=n,t[2]=o):o=t[2];let{attributes:s,listeners:c,setNodeRef:l,setActivatorNodeRef:u,transform:d,transition:f,isDragging:p}=ve(o),m;t[3]===d?m=t[4]:(m=ge.Translate.toString(d),t[3]=d,t[4]=m);let h;t[5]!==m||t[6]!==f?(h={transform:m,transition:f},t[5]=m,t[6]=f,t[7]=h):h=t[7];let g=p&&`opacity-60`,_;t[8]===g?_=t[9]:(_=V(g),t[8]=g,t[9]=_);let v;t[10]!==s||t[11]!==i||t[12]!==p||t[13]!==c||t[14]!==u?(v=i({attributes:s,listeners:c,setActivatorNodeRef:u,isDragging:p}),t[10]=s,t[11]=i,t[12]=p,t[13]=c,t[14]=u,t[15]=v):v=t[15];let y;return t[16]!==l||t[17]!==h||t[18]!==_||t[19]!==v?(y=(0,G.jsx)(`div`,{ref:l,style:h,className:_,children:v}),t[16]=l,t[17]=h,t[18]=_,t[19]=v,t[20]=y):y=t[20],y},kn=32,An=(e,t)=>{if(!t)return;if(!e){t.scrollIntoView({block:`nearest`});return}let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=r.top-n.top+e.scrollTop,a=i+r.height,o=e.scrollTop,s=o+e.clientHeight,c=i<o+kn?i-kn:a>s?a-e.clientHeight:o,l=Math.max(0,e.scrollHeight-e.clientHeight);e.scrollTop=Math.max(0,Math.min(c,l))},jn=({providers:e,favoriteModels:t,recentModels:n,getMetadata:r,searchQuery:i,onSearchQueryChange:a,onSelect:o,labels:s,selectedModel:c,hiddenModels:l=[],allowedProviderIds:u,allowedModelIdsByProvider:d,includeNotSelected:f=!1,onSelectNone:p,selectionCount:m,disabled:h=!1,maxHeightClassName:g=`max-h-[min(400px,calc(100dvh-12rem))] flex-1`,maxHeightStyle:_,sectionHeaderClassName:v,rowClassName:y,stickyHeaders:b=!0,autoFocus:x=!0,onEscape:S,isFavorite:C,onToggleFavorite:w,renderRowEnd:T,onActiveKeyDown:E,onActiveEntryChange:D,onVariantKey:O,onReorderFavorite:k,reorderFavoriteAriaLabel:A,reorderFavoriteTitle:j,providerOrder:M,onReorderProvider:N,reorderProviderTitle:P,footerContent:F,renderVersion:I,tooltipsEnabled:L=!0})=>{let R=W.useRef(null);R.current||=wn();let z=R.current,B=W.useRef([]),ee=W.useRef(null),te=W.useRef(!1),ne=W.useRef(null),re=fn(e=>e.collapsedSections),ie=fn(e=>e.toggleSection),oe=W.useMemo(()=>new Set(Object.keys(re).filter(e=>re[e])),[re]),se=i.trim().length>0,[ce,le]=W.useState(()=>new Set),ge=se?ce:oe,ve=he(ue(pe,{activationConstraint:{distance:8}})),U=he(ue(fe,{activationConstraint:{distance:8}})),K=W.useMemo(()=>!u||u.length===0?null:new Set(u),[u]),xe=W.useMemo(()=>d?new Map(Object.entries(d).map(([e,t])=>[e,new Set(t)])):null,[d]),Se=W.useCallback((e,t)=>!xe||xe.get(e)?.has(t)===!0,[xe]),Ce=W.useMemo(()=>new Map(e.map(e=>[e.id,e])),[e]),we=W.useCallback((e,t)=>l.some(n=>n.providerID===e&&n.modelID===t),[l]),q=W.useCallback((e,t)=>{let n=i.trim();return!n||dn(e,n)||dn(t,n)},[i]),J=W.useMemo(()=>t.filter(({model:e,providerID:t,modelID:n})=>{if(K&&!K.has(t)||!Se(t,n)||we(t,n))return!1;let r=Ce.get(t)?.name||t;return q(yn(e),r)}),[K,t,Se,we,q,Ce]),Te=W.useMemo(()=>n.filter(({model:e,providerID:t,modelID:n})=>{if(K&&!K.has(t)||!Se(t,n)||we(t,n))return!1;let r=Ce.get(t)?.name||t;return q(yn(e),r)}),[K,Se,we,q,Ce,n]),Ee=W.useMemo(()=>{if(!M||M.length===0)return e;let t=new Map(M.map((e,t)=>[e,t])),n=e.filter(e=>t.has(e.id)).sort((e,n)=>(t.get(e.id)??0)-(t.get(n.id)??0)),r=e.filter(e=>!t.has(e.id));return[...n,...r]},[M,e]),Y=W.useMemo(()=>Ee.filter(e=>!K||K.has(e.id)).map(e=>{let t=(Array.isArray(e.models)?e.models:[]).filter(t=>{let n=typeof t.id==`string`?t.id:``;return!n||we(e.id,n)||!Se(e.id,n)?!1:q(yn(t),e.name||e.id)});return{...e,models:t}}).filter(e=>e.models.length>0),[K,Se,we,q,Ee]),X=W.useMemo(()=>{let e=[];return ge.has(`favorites`)||J.forEach(t=>e.push(t)),ge.has(`recent`)||Te.forEach(t=>e.push(t)),Y.forEach(t=>{ge.has(`provider:${t.id}`)||t.models.forEach(n=>e.push({model:n,providerID:t.id,modelID:n.id}))}),e},[ge,J,Y,Te]),De=X.length>0,Oe=!!k&&i.trim().length===0&&J.length>1,ke=!!N&&i.trim().length===0&&!K&&Y.length>1,Ae=W.useMemo(()=>new Map(J.map(e=>[`${e.providerID}:${e.modelID}`,e])),[J]);W.useEffect(()=>{z.set(0)},[i,z]),W.useEffect(()=>{se||le(e=>e.size===0?e:new Set)},[se]);let je=W.useCallback(e=>{z.set(e),D?.(X[e])},[X,D,z]),Ne=W.useCallback(e=>{let t=X.length;if(t===0)return;te.current=!0,ne.current=null;let n=(z.getSnapshot()+e+t)%t;z.set(n),D?.(X[n]),requestAnimationFrame(()=>An(ee.current,B.current[n]))},[X,D,z]);W.useEffect(()=>{D?.(X[z.getSnapshot()])},[X,D,z]);let Pe=W.useCallback(e=>{if(!e.defaultPrevented){if(e.stopPropagation(),e.key===`ArrowLeft`||e.key===`ArrowRight`){let t=X[z.getSnapshot()];if(t&&O?.(e,t))return}if(E?.(e,X[z.getSnapshot()]),!e.defaultPrevented){if(e.key===`ArrowDown`){e.preventDefault(),Ne(1);return}if(e.key===`ArrowUp`){e.preventDefault(),Ne(-1);return}if(e.key===`Enter`){e.preventDefault();let t=X[z.getSnapshot()];t&&!h&&o(t);return}e.key===`Escape`&&(e.preventDefault(),S?.())}}},[h,X,Ne,E,S,o,O,z]),Fe=V(`typography-micro font-semibold text-muted-foreground uppercase tracking-wider flex items-center gap-2 px-2 py-1.5`,b&&`sticky top-0 z-10 [background:linear-gradient(var(--surface-elevated),var(--surface-elevated)),linear-gradient(var(--surface-background),var(--surface-background))]`,v),Ie=0,Le=(e,t,n,i,a)=>{let l=ln(e.providerID,e.model,r?.(e.providerID,e.modelID)),u=Ce.get(e.providerID)?.name||e.providerID,d=bn(l?.limit?.context),f=m?.(e)??0,p=c?.providerID===e.providerID&&c.modelID===e.modelID,g=C?.(e)??!1,_=e=>{let t={x:e.clientX,y:e.clientY},n=ne.current,r=!n||n.x!==t.x||n.y!==t.y;ne.current=t,!(te.current&&!n)&&(te.current&&!r||(te.current&&r&&(te.current=!1),je(i)))};return(0,G.jsx)(Tn,{store:z,index:i,renderVersion:I,children:t=>{let r=(0,G.jsxs)(`div`,{ref:e=>{B.current[i]=e},role:`option`,"aria-selected":p,"aria-disabled":h||void 0,tabIndex:-1,onClick:()=>{h||o(e)},onKeyDown:t=>{h||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),o(e))},onMouseEnter:_,onMouseMove:_,className:V(`w-full text-left px-2 py-1.5 rounded-md typography-meta flex items-center gap-2 cursor-pointer`,!h&&(t?`bg-interactive-selection`:`hover:bg-interactive-hover/50`),h&&`cursor-not-allowed opacity-60`,y),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-1 min-w-0`,children:[a?(0,G.jsx)(`button`,{type:`button`,ref:a.setActivatorNodeRef,...a.attributes,...a.listeners,disabled:h,onClick:e=>{e.preventDefault(),e.stopPropagation()},className:`model-favorite-drag-handle flex size-4 flex-shrink-0 items-center justify-center text-muted-foreground hover:text-foreground disabled:pointer-events-none`,"aria-label":A,title:j,children:(0,G.jsx)(H,{name:`draggable`,className:`size-3.5`})}):null,n?(0,G.jsx)(Bt,{modelId:e.modelID,providerId:e.providerID,className:`h-3.5 w-3.5 flex-shrink-0`}):null,(0,G.jsx)(`span`,{className:`font-medium truncate`,children:yn(e.model)}),d?(0,G.jsx)(`span`,{className:`typography-micro text-muted-foreground flex-shrink-0`,children:d}):null]}),f>0?(0,G.jsxs)(`span`,{className:`typography-micro text-muted-foreground flex-shrink-0`,children:[`x`,f]}):null,T?.(e,{isHighlighted:t,isSelected:p}),p?(0,G.jsx)(H,{name:`check`,className:`h-4 w-4 text-primary flex-shrink-0`}):null,w?(0,G.jsx)(`button`,{type:`button`,disabled:h,onClick:t=>{t.preventDefault(),t.stopPropagation(),w(e)},className:V(`model-favorite-button flex h-4 w-4 items-center justify-center hover:text-primary/80 flex-shrink-0 disabled:pointer-events-none`,g?`text-primary`:`text-muted-foreground`),"aria-label":g?s.unfavorite:s.favorite,title:g?s.unfavorite:s.favorite,children:(0,G.jsx)(H,{name:g?`star-fill`:`star`,className:`h-3.5 w-3.5`})}):null]});return(0,G.jsx)(Cn,{metadata:l,providerName:u,active:L&&t,labels:s,children:r})}},`${t}-${e.providerID}-${e.modelID}`)},Re=e=>{if(!k)return;let{active:t,over:n}=e;if(!n||t.id===n.id)return;let r=Ae.get(String(t.id)),i=Ae.get(String(n.id));!r||!i||k(r,i)},ze=e=>{if(!N)return;let{active:t,over:n}=e;if(!n||t.id===n.id)return;let r=Ee.map(e=>e.id),i=r.indexOf(String(t.id)),a=r.indexOf(String(n.id));i!==-1&&a!==-1&&N(_e(r,i,a))},Be=e=>ge.has(e),Ve=e=>{if(!se){ie(e);return}le(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},He=(e,t,n,r)=>{let i=Be(e),a=t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),Ve(e))};return r?(0,G.jsxs)(`div`,{ref:r.setActivatorNodeRef,...r.attributes,...r.listeners,role:`button`,tabIndex:0,"aria-expanded":!i,title:P,className:V(Fe,`w-full text-left cursor-grab select-none active:cursor-grabbing`),onClick:()=>Ve(e),onKeyDown:a,children:[(0,G.jsx)(H,{name:`draggable`,className:`size-3.5 flex-shrink-0 text-muted-foreground/70`}),t,(0,G.jsx)(`span`,{className:`min-w-0 truncate`,children:n}),(0,G.jsx)(`span`,{className:`ml-auto flex size-4 flex-shrink-0 items-center justify-center text-muted-foreground`,children:(0,G.jsx)(H,{name:i?`arrow-right-s`:`arrow-down-s`,className:`size-4`})})]}):(0,G.jsxs)(`button`,{type:`button`,className:V(Fe,`w-full text-left cursor-pointer`),onClick:()=>Ve(e),"aria-expanded":!i,children:[t,(0,G.jsx)(`span`,{className:`min-w-0 truncate`,children:n}),(0,G.jsx)(`span`,{className:`ml-auto flex size-4 flex-shrink-0 items-center justify-center text-muted-foreground`,children:(0,G.jsx)(H,{name:i?`arrow-right-s`:`arrow-down-s`,className:`size-4`})})]})},Ue=(e,t,n)=>(0,G.jsxs)(G.Fragment,{children:[t>0?(0,G.jsx)(`div`,{className:`h-px bg-border/40 my-1`}):null,He(`provider:${e.id}`,(0,G.jsx)(sn,{providerId:e.id,className:`h-4 w-4 flex-shrink-0`}),e.name||e.id,n),Be(`provider:${e.id}`)?null:e.models.map(t=>Le({model:t,providerID:e.id,modelID:t.id},`provider`,!0,Ie++))]});return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`p-1.5 pb-1`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(H,{name:`search`,className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,G.jsx)(ae,{type:`text`,placeholder:s.searchPlaceholder,value:i,onChange:e=>a(e.target.value),onKeyDown:Pe,className:`h-8 pl-8 typography-meta`,autoFocus:x})]})}),(0,G.jsx)(Me,{ref:ee,outerClassName:g,className:`overlay-scrollbar-target--no-gutter`,style:_,children:(0,G.jsxs)(`div`,{className:`px-1`,children:[f?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-md px-2 py-1.5 typography-meta text-muted-foreground hover:bg-interactive-hover/50`,onClick:p,children:[(0,G.jsx)(H,{name:`close`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:s.notSelected}),c?null:(0,G.jsx)(H,{name:`check`,className:`h-4 w-4 text-primary ml-auto`})]}),(0,G.jsx)(`div`,{className:`h-px bg-border/40 my-1`})]}):null,De?null:(0,G.jsx)(`div`,{className:`px-2 py-4 text-center typography-meta text-muted-foreground`,children:s.noResults}),J.length>0?(0,G.jsxs)(`div`,{children:[He(`favorites`,(0,G.jsx)(H,{name:`star-fill`,className:`h-4 w-4 text-primary`}),s.favorites),!Be(`favorites`)&&(Oe?(0,G.jsx)(me,{sensors:ve,collisionDetection:de,onDragEnd:Re,children:(0,G.jsx)(be,{items:J.map(e=>`${e.providerID}:${e.modelID}`),strategy:ye,children:J.map(e=>{let t=Ie++;return(0,G.jsx)(Dn,{id:`${e.providerID}:${e.modelID}`,disabled:h,children:n=>Le(e,`fav`,!0,t,n)},`fav-sortable-${e.providerID}-${e.modelID}`)})})}):J.map(e=>Le(e,`fav`,!0,Ie++)))]}):null,Te.length>0?(0,G.jsxs)(`div`,{children:[J.length>0?(0,G.jsx)(`div`,{className:`h-px bg-border/40 my-1`}):null,He(`recent`,(0,G.jsx)(H,{name:`time`,className:`h-4 w-4`}),s.recent),Be(`recent`)?null:Te.map(e=>Le(e,`recent`,!0,Ie++))]}):null,(J.length>0||Te.length>0)&&Y.length>0?(0,G.jsx)(`div`,{className:`h-px bg-border/40 my-1`}):null,ke?(0,G.jsx)(me,{sensors:U,collisionDetection:de,onDragEnd:ze,children:(0,G.jsx)(be,{items:Y.map(e=>e.id),strategy:ye,children:Y.map((e,t)=>(0,G.jsx)(On,{id:e.id,disabled:h,children:n=>Ue(e,t,n)},e.id))})}):Y.map((e,t)=>(0,G.jsx)(`div`,{children:Ue(e,t)},e.id))]})}),(0,G.jsx)(`div`,{className:`px-3 pt-1 pb-1.5 border-t border-border/40 typography-micro text-muted-foreground`,children:(0,G.jsx)(En,{store:z,flatModelList:X,footerContent:F,fallback:s.keyboardHint})})]})};function Mn(){}function Nn(e){let{key:t,icon:n,label:r}=e;return(0,G.jsx)(hn,{iconName:n,label:r},t)}var Pn=W.createContext(null),Fn=e=>e?e.closest(`[data-slot="dialog-content"], [role="dialog"]`):null;function In(e){let t=(0,U.c)(15),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({onValueChange:n,modal:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i!==void 0&&i,[o,s]=W.useState(null),c;t[4]===o?c=t[5]:(c={portalContainer:o,setPortalContainer:s},t[4]=o,t[5]=c);let l=c,u;t[6]===n?u=t[7]:(u=(e,t)=>{typeof e==`string`&&n?.(e,t)},t[6]=n,t[7]=u);let d=u,f;t[8]!==d||t[9]!==a||t[10]!==r?(f=(0,G.jsx)(S,{...r,modal:a,onValueChange:d}),t[8]=d,t[9]=a,t[10]=r,t[11]=f):f=t[11];let p;return t[12]!==l||t[13]!==f?(p=(0,G.jsx)(Pn.Provider,{value:l,children:f}),t[12]=l,t[13]=f,t[14]=p):p=t[14],p}function Ln(e){let t=(0,U.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,G.jsx)(_,{"data-slot":`select-group`,...n}),t[2]=n,t[3]=r),r}function Rn(e){let t=(0,U.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({placeholder:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]!==n||t[5]!==r?(a=e=>{let t=typeof e==`string`||e===void 0?e:e===null?void 0:String(e);return typeof n==`function`?n(t):n??(t===void 0||t===``?r:t)},t[4]=n,t[5]=r,t[6]=a):a=t[6];let o;return t[7]!==i||t[8]!==a?(o=(0,G.jsx)(d,{"data-slot":`select-value`,...i,children:a}),t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function zn(e){let t=(0,U.c)(34),n,r,i,a,o,s,l;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7]):({className:i,size:l,children:r,asChild:n,onPointerDownCapture:o,onFocusCapture:a,...s}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=l);let u=l===void 0?`default`:l,d=W.useContext(Pn),f;t[8]===d?f=t[9]:(f=e=>{if(!d)return;let t=e instanceof HTMLElement?e:null;d.setPortalContainer(Fn(t))},t[8]=d,t[9]=f);let p=f,m;t[10]!==n||t[11]!==r?(m=n&&W.isValidElement(r)?{render:r}:null,t[10]=n,t[11]=r,t[12]=m):m=t[12];let h=m,g;t[13]===i?g=t[14]:(g=V(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-fit items-center justify-between gap-2 rounded-lg border bg-transparent px-2 py-2 typography-ui-label whitespace-nowrap shadow-none outline-none focus-visible:outline-none hover:bg-interactive-hover data-[popup-open]:bg-interactive-active focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-6 data-[size=sm]:h-6 data-[size=lg]:h-8 data-[size=lg]:py-1.5 data-[size=chip]:h-7 data-[size=chip]:py-1 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,i),t[13]=i,t[14]=g);let _;t[15]!==o||t[16]!==p?(_=e=>{p(e.currentTarget),o?.(e)},t[15]=o,t[16]=p,t[17]=_):_=t[17];let v;t[18]!==a||t[19]!==p?(v=e=>{p(e.currentTarget),a?.(e)},t[18]=a,t[19]=p,t[20]=v):v=t[20];let y;t[21]===h?y=t[22]:(y=h??{},t[21]=h,t[22]=y);let b;t[23]!==h||t[24]!==r?(b=h?void 0:(0,G.jsxs)(G.Fragment,{children:[r,(0,G.jsx)(C,{children:(0,G.jsx)(H,{name:`arrow-down-s`,className:`size-4 opacity-50`})})]}),t[23]=h,t[24]=r,t[25]=b):b=t[25];let x;return t[26]!==s||t[27]!==u||t[28]!==g||t[29]!==_||t[30]!==v||t[31]!==y||t[32]!==b?(x=(0,G.jsx)(c,{"data-slot":`select-trigger`,"data-size":u,className:g,onPointerDownCapture:_,onFocusCapture:v,...s,...y,children:b}),t[26]=s,t[27]=u,t[28]=g,t[29]=_,t[30]=v,t[31]=y,t[32]=b,t[33]=x):x=t[33],x}function Bn(e){let t=(0,U.c)(42),n,r,i,a,o,s,c,l,u,d,f;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11]):({className:i,children:r,position:c,fitContent:l,portalToBody:u,sideOffset:s,side:o,align:n,collisionPadding:d,collisionAvoidance:f,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l,t[9]=u,t[10]=d,t[11]=f);let p=c===void 0?`popper`:c,h=l!==void 0&&l,g=u!==void 0&&u,_=d===void 0?8:d,v;t[12]===f?v=t[13]:(v=f===void 0?{side:`shift`,align:`shift`}:f,t[12]=f,t[13]=v);let y=v,b=W.useContext(Pn),S=p===`item-aligned`,C=b?.portalContainer??null,T=g?void 0:C||void 0,E;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(E={backgroundColor:`var(--surface-elevated)`,color:`var(--surface-elevated-foreground)`},t[14]=E):E=t[14];let D=!S&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,O=h&&`w-max min-w-0`,k;t[15]!==i||t[16]!==O||t[17]!==D?(k=V(`pointer-events-auto transition-all duration-150 ease-out data-[starting-style]:opacity-0 data-[starting-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:scale-95 relative z-[120] max-h-[var(--available-height)] min-w-[8rem] origin-[var(--transform-origin)] overflow-x-hidden rounded-xl shadow-[inset_0_1px_0_0_rgba(255,255,255,0.8),inset_0_0_0_1px_rgba(0,0,0,0.04),0_0_0_1px_rgba(0,0,0,0.10),0_1px_2px_-0.5px_rgba(0,0,0,0.08),0_4px_8px_-2px_rgba(0,0,0,0.08),0_12px_20px_-4px_rgba(0,0,0,0.08)] dark:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.12),inset_0_0_0_1px_rgba(255,255,255,0.08),0_0_0_1px_rgba(0,0,0,0.36),0_1px_1px_-0.5px_rgba(0,0,0,0.22),0_3px_3px_-1.5px_rgba(0,0,0,0.20),0_6px_6px_-3px_rgba(0,0,0,0.16)]`,D,O,i),t[15]=i,t[16]=O,t[17]=D,t[18]=k):k=t[18];let A=h?`w-max`:`w-full`,j;t[19]===A?j=t[20]:(j=V(`max-h-[var(--available-height)]`,A),t[19]=A,t[20]=j);let M=!S&&(h?`w-max min-w-0 scroll-my-1`:`w-full min-w-[var(--anchor-width)] scroll-my-1`),N;t[21]===M?N=t[22]:(N=V(`p-1`,M),t[21]=M,t[22]=N);let P;t[23]!==r||t[24]!==j||t[25]!==N?(P=(0,G.jsx)(Me,{outerClassName:j,className:N,preventOverscroll:!0,children:r}),t[23]=r,t[24]=j,t[25]=N,t[26]=P):P=t[26];let F;t[27]!==a||t[28]!==k||t[29]!==P?(F=(0,G.jsx)(x,{"data-slot":`select-content`,style:E,className:k,...a,children:P}),t[27]=a,t[28]=k,t[29]=P,t[30]=F):F=t[30];let I;t[31]!==n||t[32]!==S||t[33]!==y||t[34]!==_||t[35]!==o||t[36]!==s||t[37]!==F?(I=(0,G.jsx)(w,{alignItemWithTrigger:S,sideOffset:s,side:o,align:n,collisionPadding:_,collisionAvoidance:y,className:`absolute z-[120] pointer-events-auto`,children:F}),t[31]=n,t[32]=S,t[33]=y,t[34]=_,t[35]=o,t[36]=s,t[37]=F,t[38]=I):I=t[38];let L;return t[39]!==I||t[40]!==T?(L=(0,G.jsx)(m,{container:T,children:I}),t[39]=I,t[40]=T,t[41]=L):L=t[41],L}function Vn(e){let t=(0,U.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=V(`text-muted-foreground px-2 py-1.5 typography-meta`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,G.jsx)(y,{"data-slot":`select-label`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Hn(e){let t=(0,U.c)(13),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===r?a=t[5]:(a=V(`data-[highlighted]:bg-interactive-hover hover:bg-interactive-hover data-[selected]:bg-interactive-selection data-[selected]:text-interactive-selection-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-pointer items-center gap-2 rounded-lg py-1.5 pr-8 pl-2 typography-ui-label outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,r),t[4]=r,t[5]=a);let o;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,G.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,G.jsx)(h,{children:(0,G.jsx)(H,{name:`check`,className:`size-4`})})}),t[6]=o):o=t[6];let s;t[7]===n?s=t[8]:(s=(0,G.jsx)(g,{children:n}),t[7]=n,t[8]=s);let c;return t[9]!==i||t[10]!==a||t[11]!==s?(c=(0,G.jsxs)(p,{"data-slot":`select-item`,className:a,...i,children:[o,s]}),t[9]=i,t[10]=a,t[11]=s,t[12]=c):c=t[12],c}function Un(e){let t=(0,U.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=V(`bg-border pointer-events-none -mx-1 my-1 h-px`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,G.jsx)(l,{"data-slot":`select-separator`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var Wn=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`);return t===`/`?`/`:t.replace(/\/+$/,``)};async function Gn(e){let t=Wn(e),n=await re(t);return{isDirty:!n.isClean,ahead:n.ahead,behind:n.behind,upstream:n.tracking}}var Kn=6e4,qn=500,Jn=1048576,Z=new Map,Yn=new Map,Xn=0,Zn=(e,t)=>e.length+t.length,Qn=(e,t)=>{Z.delete(e),Z.set(e,{root:t,resolvedAt:Date.now()});let n=0;for(let[e,t]of Z)n+=Zn(e,t.root);for(;Z.size>qn||n>Jn&&Z.size>1;){let e=Z.entries().next().value;if(!e)break;n-=Zn(e[0],e[1].root),Z.delete(e[0])}};function $n(e){if(Xn+=1,typeof e==`string`&&e){let t=Wn(e);Z.delete(t),Yn.delete(t);return}Z.clear(),Yn.clear()}var er=async e=>te(e).catch(()=>e),tr=async e=>{let t=Z.get(e);if(t&&Date.now()-t.resolvedAt<Kn)return Z.delete(e),Z.set(e,t),t.root;t&&Z.delete(e);let n=Yn.get(e);if(n)return n;let r=Xn,i=er(e).then(t=>(Xn===r&&Qn(e,t),t)).catch(()=>e).finally(()=>{Yn.get(e)===i&&Yn.delete(e)});return Yn.set(e,i),i};async function nr(e,t){let n=Wn(e);if(!n)return`HEAD`;try{let e=await tr(n).catch(()=>n),r=t?.knownBranch?.trim();if(r&&e===n)return r;let i=await re(e);return(typeof i.current==`string`?i.current.trim():``)||`HEAD`}catch{return`HEAD`}}var rr=e=>{let t=(e.branch||``).trim(),n=(e.head||``).trim();return t?`branch`:n?`detached`:`unborn`},ir=(e,t)=>({worktreeRoot:t,worktreeStatus:`ready`,headState:rr(e),worktreeSource:`existing`}),Q=e=>{let t=e.replace(/\\/g,`/`);return t===`/`?`/`:t.length>1?t.replace(/\/+$/,``):t},ar=e=>e.trim().replace(/^refs\/heads\//,``).replace(/^heads\//,``).replace(/\s+/g,`-`).replace(/^\/+|\/+$/g,``).split(`/`).join(`-`).replace(/[^A-Za-z0-9._-]+/g,`-`).replace(/-+/g,`-`).replace(/^-+|-+$/g,``).slice(0,80),or=e=>e.trim().replace(/^refs\/heads\//,``).replace(/^heads\//,``).replace(/\s+/g,`-`).replace(/^\/+|\/+$/g,``),sr=(e,t)=>{let n=Q(e);n&&B.setState(e=>{let r=!1,i=e=>Q(e.path)!==n||e.worktreeStatus===t?e:(r=!0,{...e,worktreeStatus:t}),a=e.availableWorktrees,o=!1,s=e.availableWorktrees.map(e=>{let t=i(e);return t!==e&&(o=!0),t});o&&(a=s);let c=e.availableWorktreesByProject;for(let[t,n]of e.availableWorktreesByProject){let r=!1,a=n.map(e=>{let t=i(e);return t!==e&&(r=!0),t});r&&(c===e.availableWorktreesByProject&&(c=new Map(e.availableWorktreesByProject)),c.set(t,a))}let l=e.worktreeMetadata;for(let[t,n]of e.worktreeMetadata){let r=i(n);r!==n&&(l===e.worktreeMetadata&&(l=new Map(e.worktreeMetadata)),l.set(t,r))}return r?{availableWorktrees:a,availableWorktreesByProject:c,worktreeMetadata:l}:{}})},cr=e=>e?.status===`pending`?`pending`:e?.status===`failed`?`invalid`:`ready`,lr=e=>{let t=Q(e),n=t.split(`/`).filter(Boolean);return n[n.length-1]??t},ur=e=>{let t=[];for(let n of e.setupCommands){let r=n.trim();r&&t.push(P(r,{rootWorktreePath:e.projectDirectory}))}let n=t.filter(Boolean).join(` && `);return n.trim().length>0?n:void 0},dr=(e,t)=>{let n=e.mode===`existing`?`existing`:`new`,r=ar(e.worktreeName??e.preferredName??``),i=or(e.branchName??(n===`new`?e.preferredName:void 0)??``),a=or(e.existingBranch??e.branchName??``),o=(e.startRef||``).trim(),s=ur({projectDirectory:t,setupCommands:Array.isArray(e.setupCommands)?e.setupCommands:[]});return{mode:n,...r?{worktreeName:r}:{},...i?{branchName:i}:{},...a?{existingBranch:a}:{},...o?{startRef:o}:{},...s?{startCommand:s}:{},...e.setUpstream?{setUpstream:!0}:{},...e.upstreamRemote?{upstreamRemote:e.upstreamRemote}:{},...e.upstreamBranch?{upstreamBranch:e.upstreamBranch}:{},...e.ensureRemoteName?{ensureRemoteName:e.ensureRemoteName}:{},...e.ensureRemoteUrl?{ensureRemoteUrl:e.ensureRemoteUrl}:{},...e.returnAfterDirectoryCreated?{returnAfterDirectoryCreated:!0}:{}}},fr=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(!e||e.length!==r.length)return!1;for(let t=0;t<r.length;t++){let n=r[t],i=e[t];if(n.path!==i.path||n.branch!==i.branch||n.name!==i.name||n.label!==i.label||n.projectDirectory!==i.projectDirectory||n.worktreeRoot!==i.worktreeRoot||n.headState!==i.headState||n.worktreeSource!==i.worktreeSource||n.source!==i.source)return!1}}return!0},pr=new Map,mr=new Map,hr=new Map,gr=3e4,_r=e=>`${t()}\u0000${Q(e)}`,vr=(e,t=_r(e))=>hr.get(t)??0,yr=e=>{let t=_r(e);hr.set(t,vr(e)+1),pr.delete(t)},br=async e=>{let t=await tr(e).catch(()=>e),n=Q(e);return(await ie.worktree.list(e)).filter(e=>typeof e.path==`string`&&e.path.trim().length>0).map(e=>{let n=Q(e.path),r=(e.branch||``).replace(/^refs\/heads\//,``).trim(),i=(e.name||``).trim(),a=ir(e,n);return{source:`sdk`,name:i||lr(n),path:n,projectDirectory:t,branch:r,label:r||i||lr(n),worktreeRoot:a.worktreeRoot,worktreeStatus:a.worktreeStatus,headState:a.headState,worktreeSource:a.worktreeSource}}).filter(e=>Q(e.path)!==n).sort((e,t)=>{let n=(e.label||e.branch||e.path).toLowerCase(),r=(t.label||t.branch||t.path).toLowerCase();return n.localeCompare(r)})},xr=async(e,n,r)=>{for(;;){let i=vr(e,n),a=await br(e);if(i===vr(e,n))return r===t()&&pr.set(n,{value:a,at:Date.now()}),a}};async function Sr(e){let n=Q(e.path),r=t(),i=`${r}\u0000${n}`,a=pr.get(i);if(a&&Date.now()-a.at<gr)return a.value;let o=mr.get(i);if(o)return o;let s=xr(n,i,r).finally(()=>{mr.get(i)===s&&mr.delete(i)});return mr.set(i,s),s}var Cr=(e,t)=>{let n=L(e.path),r=n?.status===`pending`?`pending`:n?.status===`failed`?`invalid`:t?.worktreeStatus;return r&&r!==e.worktreeStatus?{...e,worktreeStatus:r}:e},wr=e=>{let t=new Set([...e].map(Q));if(t.size===0)return;let n=B.getState().worktreeMetadata,r=new Map(n);for(let[e,i]of n)t.has(Q(i.path))&&r.delete(e);for(let[e,n]of z.getState().attachments){let r=typeof n.worktreeRoot==`string`&&n.worktreeRoot.trim()?Q(n.worktreeRoot):``,i=typeof n.cwd==`string`&&n.cwd.trim()?Q(n.cwd):``;(r&&t.has(r)||i&&t.has(i))&&z.getState().clearAttachment(e)}r.size!==n.size&&B.setState({worktreeMetadata:r})};async function Tr(e,t={}){let n=Q(e.path);yr(n);let r=await Sr({...e,path:n});if(t.isCurrent&&!t.isCurrent())return{worktrees:r,addedDirectories:[],removedDirectories:[]};let i=r,a=[],o=[];return B.setState(e=>{let t=e.availableWorktreesByProject,s=t.get(n)??[],c=new Map(s.map(e=>[Q(e.path),e])),l=r.map(e=>Cr(e,c.get(Q(e.path)))),u=new Set(l.map(e=>Q(e.path)));if(a=l.filter(e=>!c.has(Q(e.path))).map(e=>e.path),o=s.filter(e=>!u.has(Q(e.path))).map(e=>e.path),i=l,s.length===l.length&&s.every((e,t)=>{let n=l[t];return n&&e.path===n.path&&e.branch===n.branch&&e.name===n.name&&e.label===n.label&&e.projectDirectory===n.projectDirectory&&e.worktreeRoot===n.worktreeRoot&&e.headState===n.headState&&e.worktreeSource===n.worktreeSource&&e.source===n.source&&e.worktreeStatus===n.worktreeStatus}))return{};let d=new Map(t);return d.set(n,l),{availableWorktreesByProject:d,availableWorktrees:[...d.values()].flat()}}),wr(o),{worktrees:i,addedDirectories:a,removedDirectories:o}}async function Er(e,t){let n=Q(e.path),r=await tr(n).catch(()=>n),i=dr(t,n),a=await ie.worktree.create(n,i),o=typeof a?.name==`string`?a.name:``,s=typeof a?.branch==`string`?a.branch:``,c=typeof a?.path==`string`?a.path:``;if(!o||!c)throw Error(`Worktree create missing name/path`);let l={source:`sdk`,name:o,path:Q(c),projectDirectory:r,branch:s,label:s||o,worktreeRoot:Q(c),worktreeStatus:cr(a?.bootstrapStatus),headState:s?`branch`:`unborn`,worktreeSource:`created-for-session`};a?.bootstrapStatus?R(l.path,a.bootstrapStatus):I(l.path),F(l.path,{onFailed:()=>sr(l.path,`invalid`),onReady:()=>sr(l.path,`ready`)}),yr(n),$n();let u=n;return B.setState(e=>{let t=new Map(e.availableWorktreesByProject),n=t.get(u)??[];return t.set(u,[...n.filter(e=>Q(e.path)!==l.path),l]),{availableWorktreesByProject:t,availableWorktrees:[...t.values()].flat()}}),l}async function Dr(e,t){let n=e.path,r=dr(t,n);return ie.worktree.validate(n,r)}async function Or(e,t,n){let r=Q(e.path),i=!!n?.deleteRemoteBranch,a=n?.deleteLocalBranch===!0,o=n?.remoteName;if(!(await ie.worktree.remove(r,{directory:t.path,deleteLocalBranch:a}))?.success)throw Error(`Worktree removal failed`);N(t.path),yr(Q(e.path)),$n();let s=Q(t.path),c=r,l=B.getState().availableWorktreesByProject,u=new Map(l),d=u.get(c)??[];u.set(c,d.filter(e=>Q(e.path)!==s)),wr([s]),B.setState({availableWorktreesByProject:u,availableWorktrees:B.getState().availableWorktrees.filter(e=>Q(e.path)!==s)});let f=(t.branch||``).replace(/^refs\/heads\//,``).trim();i&&f&&await ne(r,{branch:f,remote:o}).catch(()=>void 0)}function kr(e){let t=(0,U.c)(4),{onResizeStart:n,ariaLabel:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,G.jsx)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":!0,children:(0,G.jsx)(`path`,{d:`M9.11111 2L2 9.11111M10 6.44444L6.44444 10`,className:`stroke-muted-foreground`,strokeLinecap:`round`})}),t[0]=i):i=t[0];let a;return t[1]!==r||t[2]!==n?(a=(0,G.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,"aria-label":r,onPointerDown:n,className:`pointer-events-auto -m-2 flex size-7 cursor-ns-resize items-end justify-end p-2 touch-none select-none`,children:i}),t[1]=r,t[2]=n,t[3]=a):a=t[3],a}var Ar=W.forwardRef((e,t)=>{let n=(0,U.c)(64),r,i,a,o,s,c,l,u,d,f,p,m,h,g;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6],l=n[7],u=n[8],d=n[9],f=n[10],p=n[11],m=n[12],h=n[13],g=n[14]):({className:r,outerClassName:l,scrollbarClassName:f,fillContainer:m,useScrollShadow:h,scrollShadowSize:d,hasError:s,resizedHeight:i,onResizeHeightChange:c,disabled:a,simple:p,embedded:g,endSlot:o,...u}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c,n[7]=l,n[8]=u,n[9]=d,n[10]=f,n[11]=p,n[12]=m,n[13]=h,n[14]=g);let _=m!==void 0&&m,v=h!==void 0&&h,y=g!==void 0&&g,{t:b}=k(),x=W.useRef(null),S=W.useRef(null),[C,w]=W.useState(null),T=i??C,E;n[15]===c?E=n[16]:(E=e=>{let t=x.current;if(!t)return;S.current={startY:e.clientY,startHeight:t.getBoundingClientRect().height};let n=e.currentTarget;n.setPointerCapture(e.pointerId);let r=e=>{let t=S.current;if(!t)return;let n=t.startHeight+(e.clientY-t.startY),r=Math.max(82,n);c?c(r):w(r)},i=()=>{S.current=null,n.removeEventListener(`pointermove`,r),n.removeEventListener(`pointerup`,i),n.removeEventListener(`pointercancel`,i)};n.addEventListener(`pointermove`,r),n.addEventListener(`pointerup`,i),n.addEventListener(`pointercancel`,i),e.preventDefault()},n[15]=c,n[16]=E);let D=E,O;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>{if(e.target.closest(`textarea, button, [role="separator"]`))return;let t=x.current?.querySelector(`textarea`);t&&document.activeElement!==t&&(e.preventDefault(),t.focus())},n[17]=O):O=n[17];let A=O;if(p){let e=t,i=_?`[field-sizing:fixed]`:`field-sizing-content`,o;n[18]!==r||n[19]!==i?(o=V(`block w-full appearance-none resize-none bg-transparent text-foreground typography-markdown outline-none`,`px-3 py-2 md:typography-ui-label`,`placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50`,i,r),n[18]=r,n[19]=i,n[20]=o):o=n[20];let s;return n[21]!==a||n[22]!==_||n[23]!==l||n[24]!==u||n[25]!==d||n[26]!==f||n[27]!==e||n[28]!==o||n[29]!==v?(s=(0,G.jsx)(Me,{as:`textarea`,ref:e,disableHorizontal:!0,fillContainer:_,useScrollShadow:v,scrollShadowSize:d,outerClassName:l,scrollbarClassName:f,className:o,spellCheck:!1,autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`off`,disabled:a,...u}),n[21]=a,n[22]=_,n[23]=l,n[24]=u,n[25]=d,n[26]=f,n[27]=e,n[28]=o,n[29]=v,n[30]=s):s=n[30],s}let j;n[31]===T?j=n[32]:(j=T===null?void 0:{height:`${T}px`},n[31]=T,n[32]=j);let M;if(n[33]!==y||n[34]!==s||n[35]!==l){let e;n[37]===s?e=n[38]:(e=s&&[`ring-[var(--status-error)]`,`focus-within:ring-2 focus-within:ring-[var(--status-error)]`],n[37]=s,n[38]=e);let t;n[39]===y?t=n[40]:(t=y&&[`rounded-none bg-transparent ring-0`,`hover:[&:not(:focus-within)]:bg-transparent`,`has-[[disabled]]:bg-transparent`],n[39]=y,n[40]=t),M=V(`group/textarea relative flex w-full flex-col rounded-[var(--radius-xl)] bg-[var(--surface-elevated)] pb-2.5`,`ring-1 ring-inset ring-border/60 transition duration-200 ease-out`,`hover:[&:not(:focus-within)]:bg-[var(--surface-subtle)]`,`has-[[disabled]]:pointer-events-none has-[[disabled]]:bg-[var(--surface-subtle)] has-[[disabled]]:ring-transparent`,!s&&[`hover:[&:not(:focus-within)]:ring-transparent`,`focus-within:ring-2 focus-within:ring-[var(--interactive-focus-ring)]`],e,t,l),n[33]=y,n[34]=s,n[35]=l,n[36]=M}else M=n[36];let N;n[41]!==r||n[42]!==a?(N=V(`block w-full flex-1 min-h-0 appearance-none resize-none bg-transparent text-foreground typography-markdown outline-none`,`min-h-[82px] pl-3 pr-2.5 pt-2.5 md:typography-ui-label`,`focus-visible:outline-none disabled:cursor-not-allowed`,!a&&[`placeholder:select-none placeholder:text-muted-foreground placeholder:transition placeholder:duration-200 placeholder:ease-out`,`group-hover/textarea:placeholder:text-foreground/80`,`focus:placeholder:text-foreground/80`],a&&`text-muted-foreground/60 placeholder:text-muted-foreground/60`,r),n[41]=r,n[42]=a,n[43]=N):N=n[43];let P;n[44]!==a||n[45]!==u||n[46]!==t||n[47]!==N?(P=(0,G.jsx)(`textarea`,{ref:t,className:N,spellCheck:!1,autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`off`,disabled:a,...u}),n[44]=a,n[45]=u,n[46]=t,n[47]=N,n[48]=P):P=n[48];let F;n[49]===b?F=n[50]:(F=b(`textarea.resizeHandleAria`),n[49]=b,n[50]=F);let I;n[51]!==D||n[52]!==F?(I=(0,G.jsx)(kr,{onResizeStart:D,ariaLabel:F}),n[51]=D,n[52]=F,n[53]=I):I=n[53];let L;n[54]!==o||n[55]!==I?(L=(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5 pl-3 pr-2.5`,children:[o,I]}),n[54]=o,n[55]=I,n[56]=L):L=n[56];let R;n[57]!==L||n[58]!==P?(R=(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-2`,children:[P,L]}),n[57]=L,n[58]=P,n[59]=R):R=n[59];let z;return n[60]!==R||n[61]!==j||n[62]!==M?(z=(0,G.jsx)(`div`,{ref:x,onPointerDown:A,style:j,className:M,children:R}),n[60]=R,n[61]=j,n[62]=M,n[63]=z):z=n[63],z});Ar.displayName=`Textarea`;var jr=200,$=new Map,Mr=[{key:`code`,Icon:`code-box`,label:`Code`},{key:`terminal`,Icon:`terminal-box`,label:`Terminal`},{key:`rocket`,Icon:`rocket`,label:`Rocket`},{key:`flask`,Icon:`flask`,label:`Lab`},{key:`gamepad`,Icon:`gamepad`,label:`Game`},{key:`briefcase`,Icon:`briefcase`,label:`Work`},{key:`home`,Icon:`home`,label:`Home`},{key:`globe`,Icon:`global`,label:`Web`},{key:`leaf`,Icon:`leaf`,label:`Nature`},{key:`shield`,Icon:`shield`,label:`Security`},{key:`palette`,Icon:`palette`,label:`Design`},{key:`server`,Icon:`server`,label:`Server`},{key:`phone`,Icon:`smartphone`,label:`Mobile`},{key:`database`,Icon:`database-2`,label:`Data`},{key:`lightbulb`,Icon:`lightbulb`,label:`Idea`},{key:`music`,Icon:`music`,label:`Music`},{key:`camera`,Icon:`camera`,label:`Media`},{key:`book`,Icon:`book-open`,label:`Docs`},{key:`heart`,Icon:`heart`,label:`Favorite`}],Nr=Object.fromEntries(Mr.map(e=>[e.key,e.Icon])),Pr=[{key:`keyword`,label:`Purple`,cssVar:`var(--syntax-keyword)`},{key:`string`,label:`Green`,cssVar:`var(--syntax-string)`},{key:`number`,label:`Pink`,cssVar:`var(--syntax-number)`},{key:`type`,label:`Gold`,cssVar:`var(--syntax-type)`},{key:`constant`,label:`Cyan`,cssVar:`var(--syntax-constant)`},{key:`comment`,label:`Muted`,cssVar:`var(--syntax-comment)`},{key:`error`,label:`Red`,cssVar:`var(--status-error)`},{key:`primary`,label:`Blue`,cssVar:`var(--primary)`},{key:`success`,label:`Green`,cssVar:`var(--status-success)`}],Fr=Object.fromEntries(Pr.map(e=>[e.key,e.cssVar])),Ir=(e,t)=>{if(typeof e!=`number`||e<=0)return null;let n=new URLSearchParams({v:String(e)});return typeof t?.iconColor==`string`&&t.iconColor.trim()&&n.set(`iconColor`,t.iconColor.trim()),(t?.themeVariant===`light`||t?.themeVariant===`dark`)&&n.set(`theme`,t.themeVariant),n},Lr=(e,t)=>e?[r()||`same-origin`,e,t.toString()].join(`|`):null,Rr=(e,t,n)=>{let r=Ir(t,n);if(!r)return null;let i=Lr(e,r);return i?{cacheKey:i,projectId:e,query:r}:null},zr=()=>{for(;$.size>jr;){let e=$.keys().next().value;if(typeof e!=`string`)return;let t=$.get(e);t?.url&&typeof URL<`u`&&typeof URL.revokeObjectURL==`function`&&URL.revokeObjectURL(t.url),$.delete(e)}},Br=e=>{let t=$.get(e.cacheKey);if(t?.url)return Promise.resolve(t.url);if(t?.promise)return t.promise;let n=i(`/api/projects/${encodeURIComponent(e.projectId)}/icon`,{method:`GET`,headers:{Accept:`image/*`},query:e.query}).then(async t=>{if(!t.ok||typeof URL>`u`||typeof URL.createObjectURL!=`function`)return null;let n=await t.blob(),r=URL.createObjectURL(n);return $.set(e.cacheKey,{url:r}),zr(),r}).catch(()=>null).finally(()=>{let t=$.get(e.cacheKey);t?.promise===n&&!t.url&&$.delete(e.cacheKey)});return $.set(e.cacheKey,{promise:n}),n},Vr=(e,t)=>{let n=(0,U.c)(10),r=e.id,i=e.iconImage?.updatedAt,a=t?.themeVariant,o=t?.iconColor,s;n[0]!==o||n[1]!==r||n[2]!==a||n[3]!==i?(s=Rr(r,i,{themeVariant:a,iconColor:o}),n[0]=o,n[1]=r,n[2]=a,n[3]=i,n[4]=s):s=n[4];let c=s,l;n[5]===c?l=n[6]:(l=()=>c?$.get(c.cacheKey)?.url??null:null,n[5]=c,n[6]=l);let[u,d]=W.useState(l),f,p;return n[7]===c?(f=n[8],p=n[9]):(f=()=>{if(!c){d(null);return}let e=$.get(c.cacheKey)?.url;if(e){d(e);return}let t=!1;return d(null),Br(c).then(e=>{t||d(e)}),()=>{t=!0}},p=[c],n[7]=c,n[8]=f,n[9]=p),W.useEffect(f,p),u},Hr=e=>{let t=(0,U.c)(21),{project:n,options:r,className:i,alt:a,draggable:o,fallback:s,onError:c}=e,l=a===void 0?``:a,u=o!==void 0&&o,d=s===void 0?null:s,f=Vr(n,r),[p,m]=W.useState(!1),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{m(!1)},t[0]=h):h=t[0];let g=n.iconImage?.updatedAt,_;if(t[1]!==n.id||t[2]!==f||t[3]!==g?(_=[f,n.id,g],t[1]=n.id,t[2]=f,t[3]=g,t[4]=_):_=t[4],W.useEffect(h,_),!f||p){let e;return t[5]===d?e=t[6]:(e=W.createElement(W.Fragment,null,d),t[5]=d,t[6]=e),e}let v;if(t[7]!==l||t[8]!==i||t[9]!==u||t[10]!==c||t[11]!==f){let e;t[13]===c?e=t[14]:(e=e=>{m(!0),c?.(e)},t[13]=c,t[14]=e);let n;t[15]!==l||t[16]!==i||t[17]!==u||t[18]!==f||t[19]!==e?(n={src:f,alt:l,className:i,draggable:u,onError:e},t[15]=l,t[16]=i,t[17]=u,t[18]=f,t[19]=e,t[20]=n):n=t[20],v=W.createElement(`img`,n),t[7]=l,t[8]=i,t[9]=u,t[10]=c,t[11]=f,t[12]=v}else v=t[12];return v};export{Me as A,jn as C,nn as D,sn as E,De as M,K as N,Vt as O,Rn as S,ln as T,Ln as _,Hr as a,Un as b,Tr as c,Dr as d,fr as f,Bn as g,In as h,Nr as i,ke as j,Bt as k,Sr as l,Gn as m,Fr as n,Ar as o,nr as p,Mr as r,Er as s,Pr as t,Or as u,Hn as v,dn as w,zn as x,Vn as y};