@openchambery/web 1.18.2-beta.4 → 1.18.2-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AgentAvatar-B2kZjgaf.js → AgentAvatar-OmE7AspO.js} +1 -1
- package/dist/assets/AssistantView-BbFh_0Dg.js +1 -0
- package/dist/assets/{ChatContainer-BmLxb00F.js → ChatContainer-Dsu6TrBr.js} +40 -40
- package/dist/assets/{DiagramView-GH3vG8Z5.js → DiagramView-B6LoNerQ.js} +1 -1
- package/dist/assets/{FadeInOnReveal-aeWlaqVB.js → FadeInOnReveal-EygBOzfu.js} +1 -1
- package/dist/assets/{Icon-AXqa-fYB.js → Icon-C0dydAmx.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-tgkSfBku.js → MarkdownRendererImpl-DIIxch1E.js} +2 -2
- package/dist/assets/{MobileDetailNavigation-CyDXHPw9.js → MobileDetailNavigation-gJrPjED8.js} +1 -1
- package/dist/assets/MobileShareBridge-CywbQFtE.js +4 -0
- package/dist/assets/MobileSurface-t3_oHKiU.js +2 -0
- package/dist/assets/{MultiRunWindow-CJQ8RU1e.js → MultiRunWindow-C7ytmqsf.js} +1 -1
- package/dist/assets/{OnboardingScreen-DiPnIwza.js → OnboardingScreen-Ck8vLrCb.js} +1 -1
- package/dist/assets/OverlayScrollbar-DMQhwzR3.js +2 -0
- package/dist/assets/SettingsView-BjIXFDJo.js +25 -0
- package/dist/assets/{SettingsWindow-zVXnRr6V.js → SettingsWindow-DapIdHCG.js} +1 -1
- package/dist/assets/{TerminalView-CE3CCTsi.js → TerminalView-C27XY7Gf.js} +1 -1
- package/dist/assets/{ToolOutputDialog-C3_vf7HM.js → ToolOutputDialog-Biq5MW0L.js} +1 -1
- package/dist/assets/appThemeRegistry-DSeuIQ8x.js +2 -0
- package/dist/assets/assistant-guide-hero-wide-DiFIThB0.jpg +0 -0
- package/dist/assets/{button-CDvMVaiO.js → button-Iv9uULki.js} +1 -1
- package/dist/assets/capgoAdapter-BSPH5_gX.js +1 -0
- package/dist/assets/{clipboard-CbqhDr1g.js → clipboard-DH0BvKYH.js} +1 -1
- package/dist/assets/{collapsible-C2aamDvD.js → collapsible-C46kU7ea.js} +1 -1
- package/dist/assets/{context-menu-wdR3gf8a.js → context-menu-6-6_ZMPD.js} +1 -1
- package/dist/assets/{desktopHosts-CBoBpJ1Z.js → desktopHosts-DV_01iQq.js} +1 -1
- package/dist/assets/{desktopRelayRestore-l2R9muux.js → desktopRelayRestore-DhQzRu4d.js} +1 -1
- package/dist/assets/{diagram-CEon0BQs.js → diagram-CqOdzPLy.js} +1 -1
- package/dist/assets/{dialog--cf4dygO.js → dialog-BPXCMWcj.js} +1 -1
- package/dist/assets/{es-DCoGZljP.js → es-DyE3MYjW.js} +4 -4
- package/dist/assets/{fileQueries-CE_DaZWQ.js → fileQueries-EAHC6GsF.js} +1 -1
- package/dist/assets/{fr-dkEoZpPz.js → fr-T-bfFDvO.js} +4 -4
- package/dist/assets/gitApi-DBiUTo9f.js +7 -0
- package/dist/assets/{input-k9DGGyZ6.js → input-7arjRNdx.js} +1 -1
- package/dist/assets/insertionBoundaries-sHx9jxbo.js +1 -0
- package/dist/assets/{ja-bQwSsvRr.js → ja-CZPkddOJ.js} +4 -4
- package/dist/assets/{ko-Kq5C3hsv.js → ko-MUUqS5Un.js} +4 -4
- package/dist/assets/main-CHJqCV7K.js +2 -0
- package/dist/assets/main-DWXng23x.js +172 -0
- package/dist/assets/{markdown-worker-DkeWiER6.js → markdown-worker-sIoCa792.js} +1 -1
- package/dist/assets/{markdownTheme-DNT93i5L.js → markdownTheme-QtXMKzKz.js} +1 -1
- package/dist/assets/miniChat-BESI7TXK.js +2 -0
- package/dist/assets/mobile-DHxpMIIL.js +2 -0
- package/dist/assets/multirun-B0t49WA8.js +4 -0
- package/dist/assets/{persistence-DPNMIbF5.js → persistence-Cm9DnxXq.js} +2 -2
- package/dist/assets/pl-g4y8Kn6w.js +15 -0
- package/dist/assets/platform-BrOZ1tqx.js +2 -0
- package/dist/assets/projectMeta-BKiWwihW.js +3 -0
- package/dist/assets/{pt-BR-MSPTLfTm.js → pt-BR-Boqh_bme.js} +4 -4
- package/dist/assets/radio-F1ArMGUG.js +1 -0
- package/dist/assets/renderElectronMiniChatApp-jT1prGPG.js +2 -0
- package/dist/assets/renderMobileApp-DTW_aLud.js +23 -0
- package/dist/assets/runtimeConfig-BbXojIxL.js +2 -0
- package/dist/assets/runtimeEndpointReset-CnX8ef-9.js +145 -0
- package/dist/assets/{sortable-tabs-strip-8qgYIxgY.js → sortable-tabs-strip-OO0ijdmq.js} +1 -1
- package/dist/assets/src-BBD2IyWD.css +2 -0
- package/dist/assets/{store-OURVnLSN.js → store-BLmIK6EO.js} +4 -4
- package/dist/assets/terminalApi-BunCJZ0A.js +1 -0
- package/dist/assets/{tooltip-DMNR5rN0.js → tooltip-CO8qCWXw.js} +1 -1
- package/dist/assets/types-BuiqMmh_.js +1 -0
- package/dist/assets/{uk-cSkRAYFY.js → uk-B4CEXe9W.js} +4 -4
- package/dist/assets/{url-7MqoLs9X.js → url-CM2fyKko.js} +1 -1
- package/dist/assets/useAppFontEffects-s3g5mFHX.js +7 -0
- package/dist/assets/{useAssistantUIStore-Bq3cPj2x.js → useAssistantUIStore-B9YvQgXU.js} +1 -1
- package/dist/assets/useDesktopWindowControlsLayout-BaYTRHtA.js +1 -0
- package/dist/assets/useEffectiveDirectory-SM-YH736.js +1 -0
- package/dist/assets/{useFontPreferences-CIurCeNv.js → useFontPreferences-DKIVD8RE.js} +1 -1
- package/dist/assets/useMobileNavigationStore-BcAHNGih.js +476 -0
- package/dist/assets/useSessionAutoCleanup-CCxr-ARs.js +1 -0
- package/dist/assets/{useUIStore-5agS8bsW.js → useUIStore-CL06MzOk.js} +1 -1
- package/dist/assets/{useWorkerHighlightedLines-DEhp2GTh.js → useWorkerHighlightedLines-DCymxLYc.js} +1 -1
- package/dist/assets/{utils-Co19EJEL.js → utils-DlvuQ5yV.js} +1 -1
- package/dist/assets/{zh-CN-BKqeT_uz.js → zh-CN-C4wauCqC.js} +4 -4
- package/dist/assets/{zh-TW-BaNjJ8Y4.js → zh-TW-DtT3aVC7.js} +4 -4
- package/dist/index.html +13 -11
- package/dist/mini-chat.html +11 -9
- package/dist/mobile.html +11 -9
- package/package.json +1 -1
- package/server/index.js +7 -0
- package/server/lib/assistants/DOCUMENTATION.md +2 -2
- package/server/lib/assistants/history-state.js +23 -0
- package/server/lib/assistants/history-state.test.js +57 -0
- package/server/lib/assistants/service.js +44 -15
- package/server/lib/assistants/service.test.js +120 -5
- package/server/lib/event-stream/DOCUMENTATION.md +2 -2
- package/server/lib/event-stream/diff-summary.js +39 -11
- package/server/lib/event-stream/diff-summary.test.js +73 -6
- package/server/lib/event-stream/protocol.test.js +70 -7
- package/server/lib/message-queue/DOCUMENTATION.md +1 -1
- package/server/lib/notifications/DOCUMENTATION.md +2 -2
- package/server/lib/notifications/runtime.js +68 -27
- package/server/lib/notifications/runtime.test.js +176 -0
- package/server/lib/opencode/DOCUMENTATION.md +1 -1
- package/server/lib/opencode/feature-routes-runtime.test.js +10 -1
- package/server/lib/session-index/DOCUMENTATION.md +12 -6
- package/server/lib/session-index/routes.js +34 -0
- package/server/lib/session-index/routes.test.js +76 -0
- package/server/lib/session-index/service.js +53 -4
- package/server/lib/session-index/service.test.js +72 -2
- package/server/lib/session-title/DOCUMENTATION.md +19 -14
- package/server/lib/session-title/runtime.js +8 -8
- package/server/lib/session-title/runtime.test.js +231 -0
- package/server/lib/session-turn-pages/DOCUMENTATION.md +26 -6
- package/server/lib/session-turn-pages/changes.service.js +156 -0
- package/server/lib/session-turn-pages/changes.service.test.js +188 -0
- package/server/lib/session-turn-pages/reconcile.routes.test.js +52 -0
- package/server/lib/session-turn-pages/reconcile.service.js +3 -1
- package/server/lib/session-turn-pages/reconcile.service.test.js +44 -0
- package/server/lib/session-turn-pages/routes.js +273 -12
- package/server/lib/session-turn-pages/routes.test.js +387 -0
- package/server/lib/session-turn-pages/service.js +31 -7
- package/server/lib/session-turn-pages/service.test.js +40 -0
- package/server/lib/small-model/DOCUMENTATION.md +93 -38
- package/server/lib/small-model/catalog.js +10 -2
- package/server/lib/small-model/catalog.test.js +3 -1
- package/server/lib/small-model/index.js +52 -28
- package/server/lib/small-model/opencode-session.js +339 -0
- package/server/lib/small-model/opencode-session.test.js +177 -0
- package/server/lib/small-model/resolve.js +116 -5
- package/server/lib/small-model/resolve.test.js +76 -10
- package/server/lib/small-model/summary-settings.test.js +60 -3
- package/dist/assets/AssistantView-zQDlmCA-.js +0 -1
- package/dist/assets/MobileShareBridge-DT2ySSn1.js +0 -4
- package/dist/assets/MobileSurface-Bhur0fxY.js +0 -2
- package/dist/assets/OverlayScrollbar-DC12_DLb.js +0 -1
- package/dist/assets/SettingsView-BywZ5HTE.js +0 -25
- package/dist/assets/appThemeRegistry-Y2U1kIMh.js +0 -2
- package/dist/assets/gitApi-BL_etF0B.js +0 -7
- package/dist/assets/gitApiHttp-D8j1qRH4.js +0 -2
- package/dist/assets/insertionBoundaries-CjCybFIP.js +0 -1
- package/dist/assets/main-Bpwq1Xh1.js +0 -2
- package/dist/assets/main-DIVJIea3.js +0 -172
- package/dist/assets/miniChat-BrYw8M4I.js +0 -2
- package/dist/assets/mobile-i4Pu_Tak.js +0 -2
- package/dist/assets/multirun-OJ8angjt.js +0 -4
- package/dist/assets/pl-CYpMAgVn.js +0 -15
- package/dist/assets/projectMeta-Dt0loPh9.js +0 -3
- package/dist/assets/radio-SXFBBh2O.js +0 -1
- package/dist/assets/renderElectronMiniChatApp-BBb29zbe.js +0 -2
- package/dist/assets/renderMobileApp-Ctj7sqAE.js +0 -23
- package/dist/assets/runtimeConfig-BtWi74Pm.js +0 -1
- package/dist/assets/runtimeEndpointReset-By8IWO59.js +0 -145
- package/dist/assets/src-DOs1ZW0T.css +0 -2
- package/dist/assets/terminalApi-tB3qLcfa.js +0 -1
- package/dist/assets/useAppFontEffects-D81CYdad.js +0 -7
- package/dist/assets/useDesktopWindowControlsLayout-BWOeSiA5.js +0 -1
- package/dist/assets/useEffectiveDirectory-BNDb_82A.js +0 -1
- package/dist/assets/useMobileNavigationStore-DBYUoTQ0.js +0 -475
- package/dist/assets/useSessionAutoCleanup-Cc_AwEoh.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-heic2any-CUPf3g2A.js","assets/rolldown-runtime-C0FnF6B9.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{A as t,D as n,E as r,F as i,H as a,T as o,X as s,b as c,et as l,j as u,nt as d}from"./useUIStore-CL06MzOk.js";import{$t as f,Mt as p,Pt as m,Xt as h,kn as g,nt as ee,ot as te,pt as ne,r as _,st as v,xn as re,zt as ie}from"./persistence-Cm9DnxXq.js";import{a as ae,r as oe}from"./vendor-zustand-B4dlGEM2.js";import{t as se}from"./vendor-opencode-sdk-C07HQypa.js";import{i as ce}from"./vendor-pathe-vBmvQE8f.js";import{o as le}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";var ue=(e,t)=>e!==t,de=new Set([`image/heic`,`image/heif`]),fe=!1,pe=()=>{let e=globalThis.window?.Capacitor;return e&&typeof e==`object`?e:null},me=e=>de.has((e.type||``).toLowerCase()),he=async e=>{let t=new Uint8Array(await e.arrayBuffer()),n=``,r=32768;for(let e=0;e<t.byteLength;e+=r){let i=t.subarray(e,Math.min(e+r,t.byteLength));n+=String.fromCharCode(...i)}return btoa(n)},ge=(e,t)=>{let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return new Blob([r],{type:t})},_e=async e=>{if(!me(e)||fe)return null;let t=pe();if(!t||typeof t.isNativePlatform!=`function`||!t.isNativePlatform())return null;let n=t.Plugins?.OpenChamberMedia?.transcode;if(typeof n!=`function`)return null;try{let t=await n({data:await he(e),mime:e.type.toLowerCase(),quality:.9});if(typeof t?.data!=`string`||!t.data)return null;let r=typeof t.mime==`string`&&t.mime?t.mime:`image/jpeg`;return ge(t.data,r)}catch(e){return fe=!0,console.warn(`Native HEIC transcode failed`,e),null}},ve=e=>e.trim().toLowerCase(),ye=e=>e.source===`local`||e.source===`server`||e.source===`vscode`,be=(e,t)=>{if(!e||!e.includes(`[`)||t.length===0)return[];let n=new Set(t.map(ve)),r=[],i=0;for(;i<e.length;){let t=e.indexOf(`[`,i);if(t===-1)break;let a=e.indexOf(`]`,t+1);if(a===-1)break;if(e[a+1]!==`(`){let i=ne(e.slice(t+1,a)).trim();n.has(ve(i))&&r.push({start:t,end:a+1})}i=a+1}return r},xe=(e,t)=>{let n=t.start,r=t.end;return r<e.length&&/\s/.test(e[r])?r+=1:n>0&&/\s/.test(e[n-1])&&--n,{start:n,end:r}},Se=(e,t,n,r)=>{let i=be(e,t);if(i.length===0)return{text:e,mentions:[...n],composerReferences:r===void 0?void 0:[...r],changed:!1};let a=e,o=[...n],s=r===void 0?[]:[...r];for(let e=i.length-1;e>=0;--e){let{start:t,end:n}=xe(a,i[e]),r=n-t;a=`${a.slice(0,t)}${a.slice(n)}`,o=o.flatMap(e=>e.range.end<=t?[e]:e.range.start>=n?[{...e,range:{start:e.range.start-r,end:e.range.end-r}}]:[]),s=s.flatMap(e=>e.end<=t?[e]:e.start>=n?[{...e,start:e.start-r,end:e.end-r}]:[])}return{text:a,mentions:o,composerReferences:r===void 0?void 0:s,changed:!0}},Ce=new Set([`image`,`screenshot`,`screen-shot`,`clipboard`,`pasted-image`,`pastedimage`,`untitled`,`unknown`,`file`,`blob`]),we={"image/avif":`avif`,"image/bmp":`bmp`,"image/gif":`gif`,"image/heic":`heic`,"image/heif":`heif`,"image/jpeg":`jpg`,"image/jpg":`jpg`,"image/png":`png`,"image/svg+xml":`svg`,"image/tiff":`tiff`,"image/webp":`webp`},y=e=>e.trim().toLowerCase(),Te=e=>e.charCodeAt(0)<32||`<>:"/\\|?*[]`.includes(e),Ee=e=>{let t=e.replace(/\\/g,`/`).split(`/`).pop()??``;return Array.from(t).map(e=>Te(e)?`-`:e).join(``).replace(/\s+/g,` `).replace(/-+/g,`-`).trim()},De=e=>we[e?.trim().toLowerCase()??``]??`png`,Oe=e=>{let t=Ee(e.name),n=De(e.type),r=t.lastIndexOf(`.`);if(r>0&&r<t.length-1){let e=t.slice(r+1).toLowerCase();if(/^[a-z0-9]{1,10}$/.test(e))return{base:t.slice(0,r).trim()||`image`,ext:e}}return{base:t.trim()||`image`,ext:n}},ke=e=>{let{base:t}=Oe({name:e}),n=t.trim().toLowerCase().replace(/[\s_]+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``);if(Ce.has(n))return!0;let r=n.replace(/-\(\d+\)$/g,``);return r!==n&&Ce.has(r)?!0:/^(image|file|unknown|untitled|blob)-\d+$/.test(n)},b=(e,t)=>`${e}.${t}`,Ae=(e,t,n)=>{let r=b(e,t);if(!n.has(y(r)))return r;for(let r=2;r<2**53-1;r+=1){let i=b(`${e}-${r}`,t);if(!n.has(y(i)))return i}return b(`${e}-${Date.now()}`,t)},je=(e,t)=>{for(let n=1;n<2**53-1;n+=1){let r=b(`image-${n}`,e);if(!Array.from(t).some(e=>e.startsWith(`image-${n}.`))&&!t.has(y(r)))return r}return b(`image-${Date.now()}`,e)},Me=(e,t)=>{let n=new Set(t.map(y));return e.map(e=>{let{base:t,ext:r}=Oe(e),i=ke(b(t,r))?je(r,n):Ae(t,r,n);return n.add(y(i)),i})},Ne=e=>e.map(e=>v(e)).join(` `),Pe=(e,t,n)=>{if(t===n)return[];let r=[];for(let i of e){let e=[v(i),`[${i}]`],a=e.some(e=>t.includes(e)),o=e.some(e=>n.includes(e));a&&!o&&r.push(i)}return r},Fe=e=>e.replaceAll(`[${te}`,`[`),Ie=/\.(?:png|jpe?g|gif|webp|svg|avif|bmp|heic|heif|tiff?)$/i,Le=e=>{let t=e.trim();return t.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(t)||t.startsWith(`\\\\`)},Re=(e,t)=>{let n=e;for(let e of t){let t=e.filename.trim(),r=e.path.trim();if(!t||!r||t===r||Le(t)||!Ie.test(t)&&!Ie.test(r))continue;let i=`[${r}]`;n=n.split(v(t)).join(i).split(`[${t}]`).join(i)}return n},ze=(e,t)=>{let n=e;for(let e of t??[]){if(e.source!==`vscode`||e.vscodeSource!==`selection`||!e.vscodePath)continue;let t=e.filename.match(/:(\d+(?:-\d+)?)$/)?.[1];if(!t)continue;let r=`[${e.vscodePath}:${t}]`;n=n.split(v(e.filename)).join(r).split(`[${e.filename}]`).join(r)}return n},Be=e=>e.mime===`text/plain`&&typeof e.filename==`string`&&/:\d+(?:-\d+)?$/.test(e.filename),Ve=`application/x-directory`,He=e=>typeof e==`string`&&e.trim().toLowerCase()===`application/x-directory`,Ue=e=>typeof e==`string`&&/[/\\]$/.test(e.trim()),We=(e,t,n)=>{if(t===`Backspace`){let t=n;for(;t>0&&/\s/.test(e[t-1]);)--t;for(;t>0&&!/\s/.test(e[t-1]);)--t;return{start:t,end:n}}let r=n;for(;r<e.length&&/\s/.test(e[r]);)r+=1;for(;r<e.length&&!/\s/.test(e[r]);)r+=1;return{start:n,end:r}},Ge=(e,t,n)=>{let r=Math.max(0,Math.min(n.selectionStart,e.length)),i=Math.max(r,Math.min(n.selectionEnd,e.length)),a;if(a=r===i?n.altKey?We(e,n.key,r):n.key===`Backspace`?{start:Math.max(0,r-1),end:r}:{start:r,end:Math.min(e.length,r+1)}:{start:r,end:i},a.start===a.end)return null;let o=be(e,t).filter(e=>e.start<a.end&&e.end>a.start);if(o.length===0)return null;let s=Math.min(a.start,...o.map(e=>e.start)),c=Math.max(a.end,...o.map(e=>e.end));return c<e.length&&/\s/.test(e[c])&&(s===0||/\s/.test(e[s-1]))?c+=1:c===e.length&&s>0&&/\s/.test(e[s-1])&&--s,{text:`${e.slice(0,s)}${e.slice(c)}`,caret:s,removedFilenames:o.map(t=>ne(e.slice(t.start+1,t.end-1)).trim())}},x=class extends Error{status;code;constructor(e,t,n=`Failed to upload prompt attachment`){super(n),this.name=`PromptAttachmentUploadError`,this.status=e,this.code=t}},S=`file://`,Ke=e=>{let t=e.trim();if(t.toLowerCase().startsWith(S))return t;let n=ce(t).split(`/`).map(e=>/^[A-Za-z]:$/.test(e)?e:encodeURIComponent(e)).join(`/`);return/^[A-Za-z]:/.test(n)?`${S}/${n}`:`${S}${n}`},qe=e=>{let t=e.trim();if(!t.toLowerCase().startsWith(S))return t;let n=t.slice(7);n.toLowerCase().startsWith(`localhost/`)&&(n=n.slice(9));let r=n.split(`/`).map(e=>{if(/^[A-Za-z]:$/.test(e))return e;try{return decodeURIComponent(e)}catch{return e}}).join(`/`);return/^\/[A-Za-z]:/.test(r)?r.slice(1):r},Je=async e=>[...new Uint8Array(await crypto.subtle.digest(`SHA-256`,await e.arrayBuffer()))].map(e=>e.toString(16).padStart(2,`0`)).join(``),Ye=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Xe=async e=>{let t;try{t=await e.json()}catch{throw new x(e.status,`unavailable`)}if(!Ye(t)||typeof t.path!=`string`||!t.path)throw new x(e.status,`unavailable`);let n=typeof t.mime==`string`&&t.mime?t.mime:`application/octet-stream`,r=typeof t.size==`number`&&Number.isSafeInteger(t.size)?t.size:0,i=typeof t.sha256==`string`?t.sha256:``;return{path:t.path,url:Ke(t.path),mime:n,size:r,sha256:i}},Ze=e=>{let t=typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`,n=e?.replace(/[^a-z0-9._-]+/gi,`-`).replace(/^-+|-+$/g,``).slice(0,32);return n?`att-${t}-${n}`:`att-${t}`},Qe=(e,t)=>{if(!e.startsWith(`data:`))return null;let n=e.indexOf(`,`);if(n===-1)return null;let r=e.slice(5,n),i=e.slice(n+1),a=r.split(`;`,1)[0]?.trim()||t||`application/octet-stream`;try{if(r.toLowerCase().includes(`;base64`)){let e=atob(i),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return new Blob([t],{type:a})}return new Blob([decodeURIComponent(i)],{type:a})}catch{return null}},$e=e=>e.startsWith(`data:`)||e.startsWith(`blob:`),et=async e=>{let t=e.mime||e.body.type||`application/octet-stream`,n=e.body.type===t?e.body:new Blob([e.body],{type:t});if(!Number.isSafeInteger(n.size)||n.size<0||n.size>26214400)throw new x(413,`too-large`);let r=await Je(n),i=Ze(e.filename),a;try{a=await g(`/api/fs/prompt-attachments/${encodeURIComponent(i)}`,{method:`PUT`,headers:{"Content-Type":t,"Content-Length":String(n.size),"X-OpenChamber-Content-Length":String(n.size),"X-OpenChamber-Sha256":r,"X-OpenChamber-Mime":t,...e.filename?{"X-OpenChamber-Filename":encodeURIComponent(e.filename)}:{}},body:n,signal:e.signal})}catch{throw new x(0,`unavailable`)}if(a.status===413)throw new x(413,`too-large`);if(!a.ok)throw new x(a.status,a.status>=500||a.status===0?`unavailable`:`rejected`);let o=await Xe(a);if(o.size!==n.size)throw new x(a.status,`unavailable`);return{...o,mime:t}},tt=500,nt=()=>{if(typeof window>`u`)return!1;try{return new URLSearchParams(window.location.search).get(`startupTrace`)===`1`||window.localStorage?.getItem(`OPENCHAMBER_STARTUP_TRACE`)===`1`}catch{return!1}},rt=()=>nt(),C=(e,t)=>{if(!nt())return;let n=typeof performance<`u`?performance.now():Date.now();window.__OPENCHAMBER_STARTUP_TRACE_START__??=n,window.__OPENCHAMBER_STARTUP_TRACE__??=[],window.__OPENCHAMBER_STARTUP_TRACE__.push({t:Math.round(n-window.__OPENCHAMBER_STARTUP_TRACE_START__),name:e,...t?{data:t}:{}}),window.__OPENCHAMBER_STARTUP_TRACE__.length>tt&&window.__OPENCHAMBER_STARTUP_TRACE__.splice(0,window.__OPENCHAMBER_STARTUP_TRACE__.length-tt)};typeof window<`u`&&(window.__OPENCHAMBER_STARTUP_TRACE_SUMMARY__=()=>{let e=typeof window<`u`?window.__OPENCHAMBER_STARTUP_TRACE__??[]:[],t=e.findIndex(e=>e.name===`ModelControls:ready`),n=t>=0?Math.min(e.length,t+8):e.length;return e.slice(0,n).filter(e=>e.name.includes(`checkConnection`)||e.name.includes(`checkHealth`)||e.name.includes(`initializeApp`)||e.name.includes(`initApp`)||e.name.includes(`loadProviders`)||e.name.includes(`loadAgents`)||e.name.includes(`config.defaults`)||e.name.includes(`ModelControls`)||e.name.includes(`activateDirectory`)||e.name.includes(`opencodeClient:setDirectory`))});var it=async(e,t,n)=>{let r=typeof performance<`u`?performance.now():Date.now();C(`${e}:start`,n);try{let n=await t(),i=typeof performance<`u`?performance.now():Date.now();return C(`${e}:end`,{durationMs:Math.round(i-r)}),n}catch(t){let n=typeof performance<`u`?performance.now():Date.now();throw C(`${e}:error`,{durationMs:Math.round(n-r),error:t instanceof Error?t.message:String(t)}),t}},at=3,ot=3e4,st=32e3,ct=36e5,lt=6e5,ut=new Set([429,502,503,504]),w=new Map;function dt(){let e=Date.now();for(let[t,n]of w)n.consecutiveErrors===0&&e-n.lastErrorAt>ct&&w.delete(t)}typeof setInterval<`u`&&setInterval(dt,lt).unref?.();function ft(e){let t=w.get(e);return t||(t={consecutiveErrors:0,lastErrorAt:0,circuitOpen:!1,circuitOpenAt:0,circuitCooldownMs:ot},w.set(e,t)),t}function pt(e){if(!e)return;let t=w.get(e);t&&(t.consecutiveErrors=0,t.lastErrorAt=0)}function mt(e,t){if(!e)return;let n=ft(e);n.consecutiveErrors+=1,n.lastErrorAt=Date.now(),ht(t)&&n.consecutiveErrors>=at&&(n.circuitOpen=!0,n.circuitOpenAt=Date.now(),console.warn(`[provider-tracker] Circuit opened for ${e} after ${n.consecutiveErrors} consecutive errors`))}function ht(e){return e!==void 0&&ut.has(e)}function gt(e){let t=w.get(e);return t?.circuitOpen?Date.now()-t.circuitOpenAt>=t.circuitCooldownMs?(t.circuitOpen=!1,t.consecutiveErrors=0,t.circuitCooldownMs=Math.min(t.circuitCooldownMs*2,st*4),!1):!0:!1}function _t(e){if(!(!e||!gt(e)))throw Error(`Provider ${e} is temporarily unavailable after repeated errors. Please retry shortly.`)}var vt=`/api`,yt=1e4,bt=4e3,xt=3e3,St=1e3,Ct=12e3;function T(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;if(e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}function E(e,t){if(e.error){let n=e.response?.status,r=Error(`${t} failed${n?` (${n})`:``}: ${T(e.error)}`);throw n!==void 0&&(r.status=n),r}if(e.data===void 0||e.data===null)throw Error(`${t} failed: empty response`);return e.data}function D(e,t){if(e.error){let n=e.response?.status,r=Error(`${t} failed${n?` (${n})`:``}: ${T(e.error)}`);throw n!==void 0&&(r.status=n),r}return e.data}var wt=/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//,Tt=e=>{let t=typeof e==`string`&&e.trim().length>0?e.trim():`/api`;if(wt.test(t)||typeof window>`u`)return t;let n=window.location?.href||window.location?.origin;if(!n)return t;try{return new URL(t,n).toString()}catch(e){return console.warn(`Failed to normalize OpenCode base URL:`,e),t}},Et=()=>{try{return i().api(`/api`)}catch{return null}},Dt=()=>{try{return i().api(`/`)}catch{return null}},Ot=e=>{let t=typeof AbortSignal<`u`?AbortSignal:void 0;if(typeof t?.timeout==`function`)return{signal:t.timeout(e),cleanup:()=>void 0};let n=new AbortController,r=setTimeout(()=>n.abort(),e);return{signal:n.signal,cleanup:()=>clearTimeout(r)}},kt=e=>{let t=e.filter(e=>e!=null);if(t.length===0)return{signal:new AbortController().signal,cleanup:()=>void 0};if(t.length===1)return{signal:t[0],cleanup:()=>void 0};let n=typeof AbortSignal<`u`?AbortSignal:void 0;if(typeof n?.any==`function`)return{signal:n.any(t),cleanup:()=>void 0};let r=new AbortController,i=()=>r.abort();for(let e of t){if(e.aborted){r.abort();break}e.addEventListener(`abort`,i)}return{signal:r.signal,cleanup:()=>{for(let e of t)e.removeEventListener(`abort`,i)}}},O=e=>se({...e,fetch:g}),At=e=>typeof e.mime==`string`&&e.mime.startsWith(`image/`)?!0:typeof e.filename==`string`&&/\.(?:png|jpe?g|gif|webp|svg|avif|bmp|heic|heif|tiff?)$/i.test(e.filename),jt=e=>{let t=[];for(let n of e){if(!At(n))continue;let e=typeof n.filename==`string`?n.filename.trim():``,r=typeof n.url==`string`?n.url:``;if(!e||!r.toLowerCase().startsWith(`file://`))continue;let i=qe(r).trim();i&&t.push({filename:e,path:i})}return t},Mt=async(e,t)=>{let n=[],r=e.files?.length?await Promise.all(e.files.map(e=>t(e))):[],i=e.additionalParts?.length?await Promise.all(e.additionalParts.map(async e=>({text:e.text,synthetic:e.synthetic,files:e.files?.length?await Promise.all(e.files.map(e=>t(e))):[]}))):[],a=e=>Re(e,jt([...r,...i.flatMap(e=>e.files)]));if(e.prefaceText&&e.prefaceText.trim()&&n.push({type:`text`,text:a(e.prefaceText),synthetic:e.prefaceTextSynthetic!==!1}),e.text&&e.text.trim()&&n.push({type:`text`,text:a(e.text)}),n.push(...r),i.length>0)for(let e of i){if(e.text&&e.text.trim()){let t={type:`text`,text:a(e.text)};e.synthetic&&(t.synthetic=!0),n.push(t)}n.push(...e.files)}if(e.agentMentions&&e.agentMentions.length>0)for(let t of e.agentMentions){if(!t?.name)continue;let e={type:`agent`,name:t.name};t.source&&(e.source=t.source),n.push(e)}if(n.length===0)throw Error(`Message must have at least one part (text or file)`);return n},k=e=>e.replace(/\\/g,`/`),Nt=400,Pt=()=>{let e=re();return e&&e.runtime?.isDesktop&&e.files?e.files:null},A=new class{client;baseUrl;scopedClients=new Map;currentDirectory=void 0;directoryContextQueue=Promise.resolve();listDirectoryInFlight=new Map;configProvidersInFlight=new Map;listAgentsInFlight=new Map;configInFlight=new Map;configCache=new Map;configCacheGeneration=0;listDirectoryCache=new Map;healthInFlight=new Map;healthCache=new Map;healthCacheGeneration=0;constructor(e=vt){let t=Et()||e;this.baseUrl=Tt(t),this.client=O({baseUrl:this.baseUrl})}getBaseUrl(){return this.baseUrl}reconnectToRuntimeBaseUrl(){let e=Tt(Et()||vt);e!==this.baseUrl&&(this.baseUrl=e,this.client=O({baseUrl:this.baseUrl}),this.scopedClients.clear(),this.listDirectoryInFlight.clear(),this.configProvidersInFlight.clear(),this.listAgentsInFlight.clear(),this.clearConfigCache(),this.listDirectoryCache.clear(),this.clearHealthCache())}getSdkClient(){return this.client}getScopedSdkClient(e){return this.getScopedApiClient(e)}getScopedApiClient(e){let t=this.normalizeCandidatePath(e)??e,n=t||``,r=this.scopedClients.get(n);if(r)return r;let i=O({baseUrl:this.baseUrl,directory:t});return this.scopedClients.set(n,i),i}normalizeCandidatePath(e){if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=t.replace(/\\/g,`/`).replace(/^([a-z]):/,(e,t)=>t.toUpperCase()+`:`);return(n.length>1?n.replace(/\/+$/,``):n)||null}deriveHomeDirectory(e){let t=e.match(/^([A-Za-z]:)(?:\/|$)/);if(t){let n=t[1],r=e.slice(n.length+ +(e.charAt(n.length)===`/`)).split(`/`).filter(Boolean);return r.length>=2?{homeDirectory:`${n}/${r[0]}/${r[1]}`,username:r[1]}:r.length===1?{homeDirectory:`${n}/${r[0]}`,username:r[0]}:{homeDirectory:n,username:void 0}}let n=e.startsWith(`/`),r=e.split(`/`).filter(Boolean);return r.length>=2&&(r[0]===`Users`||r[0]===`home`)?{homeDirectory:`${n?`/`:``}${r[0]}/${r[1]}`,username:r[1]}:n?r.length===0?{homeDirectory:`/`,username:void 0}:{homeDirectory:`/${r.join(`/`)}`,username:r[r.length-1]}:r.length>0?{homeDirectory:`/${r.join(`/`)}`,username:r[r.length-1]}:{homeDirectory:`/`,username:void 0}}setDirectory(e){let t=this.normalizeCandidatePath(e)??e;this.currentDirectory!==t&&C(`opencodeClient:setDirectory`,{previous:this.currentDirectory??null,next:t??null}),this.currentDirectory=t}getDirectory(){return this.currentDirectory}async withDirectory(e,t){let n=async()=>{if(e==null)return t();let n=this.currentDirectory,r=this.normalizeCandidatePath(e)??e;this.currentDirectory=r;try{return await t()}finally{this.currentDirectory===r&&(this.currentDirectory=n)}},r=this.directoryContextQueue.then(n,n);return this.directoryContextQueue=r.then(()=>void 0,()=>void 0),r}getApiClient(){return this.client}async getSystemInfo(){let e=new Set,t=t=>{let n=this.normalizeCandidatePath(t);n&&e.add(n)};try{let e=(await this.client.path.get(this.currentDirectory?{directory:this.currentDirectory}:void 0)).data;e&&(t(e.directory),t(e.worktree),t(e.state))}catch{}if(!e.size)try{t((await this.client.project.current(this.currentDirectory?{directory:this.currentDirectory}:void 0)).data?.worktree)}catch{}if(!e.size)try{(await this.listSessions()).forEach(e=>t(e.directory))}catch{}if(t(this.currentDirectory),typeof window<`u`)try{t(p(`lastDirectory`)),t(p(`homeDirectory`))}catch{}if(!e.size&&typeof process<`u`&&typeof process.cwd==`function`&&t(process.cwd()),!e.size)return{homeDirectory:`/`,username:void 0};let[n]=Array.from(e);return this.deriveHomeDirectory(n)}async probeDirectory(e){let t=this.normalizeCandidatePath(e);if(!t)return!1;try{let e=(await this.client.path.get({directory:t})).data,n=typeof e?.directory==`string`?e.directory:null;return!!(n&&n.trim().length>0)}catch{return!1}}async listSessions(){let e=await this.client.session.list(this.currentDirectory?{directory:this.currentDirectory}:void 0);return Array.isArray(e.data)?e.data:[]}async createSession(e,t){let n=this.normalizeCandidatePath(t)??this.currentDirectory;return E(await this.client.session.create({...n?{directory:n}:{},parentID:e?.parentID,title:e?.title,metadata:e?.metadata}),`session.create`)}async getSession(e,t){let n=this.normalizeCandidatePath(t)??this.currentDirectory;return E(await this.client.session.get({sessionID:e,...n?{directory:n}:{}}),`session.get`)}async deleteSession(e,t){let n=this.normalizeCandidatePath(t)??this.currentDirectory;return D(await this.client.session.delete({sessionID:e,...n?{directory:n}:{}}),`session.delete`)===!0}async deleteSessionMessage(e,t,n){let r=this.normalizeCandidatePath(n)??this.currentDirectory;return D(await this.client.session.deleteMessage({sessionID:e,messageID:t,...r?{directory:r}:{}}),`session.deleteMessage`)===!0}async updateSession(e,t,n){let r=this.normalizeCandidatePath(n)??this.currentDirectory,i={...t.title===void 0?{}:{title:t.title},...t.metadata===void 0?{}:{metadata:t.metadata},...t.time?.archived!==void 0&&t.time.archived!==null?{time:{archived:t.time.archived}}:{}};return E(await this.client.session.update({sessionID:e,...r?{directory:r}:{},...i}),`session.update`)}async getSessionMessages(e,t){return E(await this.client.session.messages({sessionID:e,...this.currentDirectory?{directory:this.currentDirectory}:{},...typeof t==`number`?{limit:t}:{}}),`session.messages`)}async getSessionDiff(e,t){let n=this.normalizeCandidatePath(e.directory)??this.currentDirectory,r=typeof e.messageID==`string`&&e.messageID.trim().length>0?e.messageID.trim():void 0,i={sessionID:e.sessionID,...n?{directory:n}:{},...r?{messageID:r}:{}};return E(t?.signal?await this.client.session.diff(i,{signal:t.signal}):await this.client.session.diff(i),`session.diff`)}async getSessionTodos(e){try{let t=await this.client.session.todo({sessionID:e,...this.currentDirectory?{directory:this.currentDirectory}:{}});if(t.error)return[];let n=t.data;return!n||!Array.isArray(n)?[]:n}catch{return[]}}shouldNormalizeToTextPlain(e){if(!e)return!1;let t=e.toLowerCase();return t.startsWith(`text/`)&&t!==`text/plain`?!0:[`application/json`,`application/xml`,`application/javascript`,`application/typescript`,`application/x-yaml`,`application/yaml`,`application/toml`,`application/x-sh`,`application/x-shellscript`,`application/octet-stream`,`image/svg+xml`].includes(t)}isHeicMime(e){if(!e)return!1;let t=e.toLowerCase();return t===`image/heic`||t===`image/heif`}async convertHeicToJpeg(t){try{let n=Qe(t.url,t.mime);if(!n)return t;let r=await _e(n)??await(await le(async()=>{let{default:t}=await import(`./vendor-heic2any-CUPf3g2A.js`).then(t=>e(t.t(),1));return{default:t}},__vite__mapDeps([0,1]))).default({blob:n,toType:`image/jpeg`,quality:.9}),i=await new Promise((e,t)=>{let n=new FileReader;n.onload=()=>e(n.result),n.onerror=t,n.readAsDataURL(r)}),a=t.filename;return a&&=a.replace(/\.heic$/i,`.jpg`).replace(/\.heif$/i,`.jpg`),{mime:`image/jpeg`,filename:a,url:i}}catch(e){return console.warn(`Failed to convert HEIC to JPEG:`,e),t}}async normalizeFilePart(e){if(this.isHeicMime(e.mime))return this.convertHeicToJpeg(e);if(!this.shouldNormalizeToTextPlain(e.mime))return e;let t=e.url;if(e.url.startsWith(`data:`)){let n=e.url.indexOf(`,`);if(n!==-1){let r=e.url.substring(5,n),i=e.url.substring(n);t=`data:${r.replace(/^[^;,]+/,`text/plain`)}${i}`}}return{mime:`text/plain`,filename:e.filename,url:t}}async toNormalizedFilePartInput(e){let t=await this.normalizeFilePart(e),n=t.url;if($e(n)){let e=Qe(n,t.mime);if(!e)throw Error(`Failed to materialize attachment bytes for ${t.filename??`file`}`);n=(await et({body:e,mime:t.mime,filename:t.filename})).url}return{...e.id?{id:e.id}:{},type:`file`,mime:t.mime,filename:t.filename,url:n}}async buildMessageParts(e){return Mt(e,e=>this.toNormalizedFilePartInput(e))}async sendMessage(e){let t=e.messageId??ee(`msg`),n=await this.buildMessageParts({text:e.text,prefaceText:e.prefaceText,prefaceTextSynthetic:e.prefaceTextSynthetic,files:e.files,additionalParts:e.additionalParts,agentMentions:e.agentMentions}),r=this.normalizeCandidatePath(e.directory??null)??this.currentDirectory;e.format&&(e.id,e.providerID,e.modelID,e.agent,e.variant,this.baseUrl,e.format.type),_t(e.providerID);let i;try{let a=await this.client.session.promptAsync({sessionID:e.id,...r?{directory:r}:{},model:{providerID:e.providerID,modelID:e.modelID},agent:e.agent,variant:e.variant,messageID:t,...e.delivery?{delivery:e.delivery}:{},...e.format?{format:e.format}:{},parts:n});if(a.response instanceof Response)i=a.response;else if(a.error){let e=a.response?.status;if(!e)throw Error(`Message send transport failure: ${T(a.error)}`);i=new Response(JSON.stringify(a.error),{status:e})}else i=new Response(JSON.stringify(a.data??!0),{status:200})}catch(t){throw mt(e.providerID),t}if(i.ok)return pt(e.providerID),t;let a=``;try{a=await i.text()}catch{}let o=a&&a.trim().length>0?`: ${a.trim()}`:``,s=Error(`Failed to send message (${i.status})${o}`);throw s.status=i.status,mt(e.providerID,i.status),s}async sendCommand(e){let t=e.messageId??ee(`msg`),n=[];if(e.files&&e.files.length>0)for(let t of e.files)n.push(await this.toNormalizedFilePartInput(t));let r=this.normalizeCandidatePath(e.directory??null)??this.currentDirectory;return D(await this.client.session.command({sessionID:e.id,...r?{directory:r}:{},command:e.command,arguments:e.arguments??``,model:`${e.providerID}/${e.modelID}`,agent:e.agent,variant:e.variant,...n.length>0?{parts:n}:{},messageID:t}),`session.command`),t}async abortSession(e){return!!(await this.client.session.abort({sessionID:e,...this.currentDirectory?{directory:this.currentDirectory}:{}},{throwOnError:!0})).data}async shellSession(e){let t=this.normalizeCandidatePath(e.directory??null)??this.currentDirectory;return E(await this.client.session.shell({sessionID:e.sessionId,...t?{directory:t}:{},messageID:e.messageId,agent:e.agent,model:e.model,command:e.command}),`session.shell`)}async revertSession(e,t,n,r){let i=this.normalizeCandidatePath(r)??this.currentDirectory;return E(await this.client.session.revert({sessionID:e,...i?{directory:i}:{},messageID:t,partID:n}),`session.revert`)}async summarizeSession(e,t,n,r){let i=this.normalizeCandidatePath(r)??this.currentDirectory;return D(await this.client.session.summarize({sessionID:e,...i?{directory:i}:{},providerID:t,modelID:n}),`session.summarize`)===!0}async unrevertSession(e){return E(await this.client.session.unrevert({sessionID:e,...this.currentDirectory?{directory:this.currentDirectory}:{}}),`session.unrevert`)}async forkSession(e,t,n){let r=this.normalizeCandidatePath(n)??this.currentDirectory,i=E(await this.client.session.fork({sessionID:e,...r?{directory:r}:{},messageID:t}),`session.fork`);return i.id,i}async getSessionStatus(){return await this.getSessionStatusForDirectory(this.currentDirectory??null)??{}}async getSessionStatusForDirectory(e,t){try{let n=typeof e==`string`?e.trim():``,r=await this.client.session.status(n?{directory:n}:void 0,t?{signal:t}:void 0);return r.error||!r.data||typeof r.data!=`object`?null:r.data}catch{return null}}async getSessionActive(e){try{let t=await O({baseUrl:Tt(Dt()||`/`)}).v2.session.active(e?{signal:e}:void 0),n=t.response?.status;if(t.error||n!==void 0&&n!==200)return n===404||n===405||n===501?{state:`unsupported`}:{state:`unknown`};let r=t.data,i=r&&typeof r==`object`&&`data`in r&&r.data!==void 0?r.data:r;if(!i||typeof i!=`object`||Array.isArray(i))return{state:`unknown`};let a={};for(let[e,t]of Object.entries(i)){if(typeof e!=`string`||e.length===0||!t||typeof t!=`object`||t.type!==`running`)return{state:`unknown`};a[e]={type:`running`}}return{state:`supported`,membership:a}}catch{return{state:`unknown`}}}async getGlobalSessionStatus(){return await this.getSessionStatusForDirectory(null)??{}}async getWebServerSessionActivity(){try{let e=await g(`/api/session-activity`,{method:`GET`,headers:{Accept:`application/json`}});if(!e.ok)return null;let t=await e.json().catch(()=>null);return!t||typeof t!=`object`?null:t}catch{return null}}async listToolIds(e){try{let t=typeof e?.directory==`string`?e.directory.trim():this.currentDirectory?this.currentDirectory.trim():``;return((await this.client.tool.ids(t?{directory:t}:void 0)).data||[]).filter(e=>typeof e==`string`&&e!==`invalid`)}catch{return[]}}async replyToPermission(e,t,n){let r=this.normalizeCandidatePath(n?.directory??null)??this.currentDirectory;return D(await this.client.permission.reply({requestID:e,...r?{directory:r}:{},reply:t,...n?.message?{message:n.message}:{}}),`permission.reply`)===!0}async createPermission(e,t,n,r){try{let i=await this.client.v2.session.permission.create({sessionID:e,action:t,resources:n,...r?.id?{id:r.id}:{},...r?.save?{save:r.save}:{},...r?.metadata?{metadata:r.metadata}:{},...r?.source?{source:r.source}:{},...r?.agent?{agent:r.agent}:{}});if(i.error!==void 0)return null;let a=i.data?.data;return a===void 0?null:{id:a.id,effect:a.effect}}catch{return null}}async fetchPermission(e,t){try{let n=await this.client.v2.session.permission.get({sessionID:e,requestID:t});if(n.error===void 0){let e=n.data?.data;if(e!==void 0)return{state:`ok`,permission:e}}return n.response?.status===404?{state:`resolved`}:{state:`unknown`}}catch{return{state:`unknown`}}}async listPendingPermissions(e){let t=[],n=async e=>{let t=typeof e==`string`?e.trim():``,n=await this.client.permission.list(t?{directory:t}:void 0);if(n.error)throw Error(`permission.list failed: ${T(n.error)}`);return n.data||[]};t.push(n(null));let r=new Set;for(let t of e?.directories??[]){let e=this.normalizeCandidatePath(t??null);e&&r.add(e)}for(let e of r)t.push(n(e));let i=await Promise.all(t),a=[],o=new Set;for(let e of i)for(let t of e){if(!t||typeof t!=`object`)continue;let e=t.id;typeof e==`string`&&e.length!==0&&(o.has(e)||(o.add(e),a.push(t)))}return a}async replyToQuestion(e,t,n){let r=!Array.isArray(t)||t.length===0?[]:Array.isArray(t[0])?t:[t],i=this.normalizeCandidatePath(n)??this.currentDirectory;return D(await this.client.question.reply({requestID:e,...i?{directory:i}:{},answers:r}),`question.reply`)===!0}async rejectQuestion(e){return D(await this.client.question.reject({requestID:e,...this.currentDirectory?{directory:this.currentDirectory}:{}}),`question.reject`)===!0}async listPendingQuestions(e){let t=[],n=async e=>{let t=typeof e==`string`?e.trim():``,n=await this.client.question.list(t?{directory:t}:void 0);if(n.error)throw Error(`question.list failed: ${T(n.error)}`);return n.data||[]};t.push(n(null));let r=new Set;for(let t of e?.directories??[]){let e=this.normalizeCandidatePath(t??null);e&&r.add(e)}for(let e of r)t.push(n(e));let i=await Promise.all(t),a=[],o=new Set;for(let e of i)for(let t of e){if(!t||typeof t!=`object`)continue;let e=t.id;typeof e==`string`&&e.length!==0&&(o.has(e)||(o.add(e),a.push(t)))}return a}clearConfigCache(){this.configCacheGeneration+=1,this.configInFlight.clear(),this.configCache.clear()}clearHealthCache(){this.healthCacheGeneration+=1,this.healthInFlight.clear(),this.healthCache.clear()}async getConfig(e){let t=this.normalizeCandidatePath(e)??e??this.currentDirectory??void 0,n=t??``,r=this.configCache.get(n);if(r&&r.expiresAt>Date.now())return C(`opencodeClient.getConfig:cacheHit`,{directory:t??null}),r.config;let i=this.configInFlight.get(n);if(i)return C(`opencodeClient.getConfig:deduped`,{directory:t??null}),i;let a=this.configCacheGeneration,o=(async()=>{C(`opencodeClient.getConfig:start`,{directory:t??null});let e=typeof performance<`u`?performance.now():Date.now(),r=await(t?this.getScopedApiClient(t):this.client).config.get();if(!r.data)throw Error(`Failed to get config`);let i=typeof performance<`u`?performance.now():Date.now();return C(`opencodeClient.getConfig:end`,{directory:t??null,durationMs:Math.round(i-e)}),a===this.configCacheGeneration&&this.configCache.set(n,{config:r.data,expiresAt:Date.now()+yt}),r.data})();this.configInFlight.set(n,o);try{return await o}finally{this.configInFlight.get(n)===o&&this.configInFlight.delete(n)}}async updateConfig(e){let t=E(await this.client.config.update({config:e}),`global.config.update`);return this.clearConfigCache(),t}async updateConfigPartial(e){let t=e(await this.getConfig());return await this.updateConfig(t)}async getProviders(){return this.getProvidersForConfig(this.currentDirectory)}async getProvidersForConfig(e){let t=e===void 0?this.currentDirectory??void 0:this.normalizeCandidatePath(e)??void 0,n=t??``,r=this.configProvidersInFlight.get(n);if(r)return r;let i=(async()=>E(await this.client.config.providers(t?{directory:t}:void 0),`config.providers`))();this.configProvidersInFlight.set(n,i);try{return await i}finally{this.configProvidersInFlight.delete(n)}}async getApp(){return{version:`0.0.3`,config:await this.getConfig()}}async initApp(){try{return await this.checkHealth()}catch{return!1}}async listAgents(e,t){let n=e===void 0?this.currentDirectory??void 0:this.normalizeCandidatePath(e)??void 0,r=n??``;if(!t){let e=this.listAgentsInFlight.get(r);if(e)return e}let i=(async()=>{let e=Ot(Ct),r=kt(t?[t,e.signal]:[e.signal]);try{let e=n?{directory:n}:void 0,t=await this.client.app.agents(e,{signal:r.signal});if(!t.error&&Array.isArray(t.data)&&t.data.length>0)return t.data;let i=await g(`/api/agent`,{...n?{query:{directory:n}}:{},signal:r.signal});if(!i.ok)throw t.error?Error(`app.agents failed${t.response?.status?` (${t.response.status})`:``}: ${T(t.error)}`):Error(`agent.list failed (${i.status})`);let a=await i.json().catch(()=>null);if(!Array.isArray(a))throw Error(`agent.list failed: invalid response`);return a}finally{e.cleanup(),r.cleanup()}})();if(t)return i;this.listAgentsInFlight.set(r,i);try{return await i}finally{this.listAgentsInFlight.delete(r)}}async readFile(e){try{let t=await this.client.file.read({path:e,...this.currentDirectory?{directory:this.currentDirectory}:{}});return String(E(t,`file.read`))}catch{return`// Content of ${e}\n// This would be loaded from the server`}}async listFiles(e){try{let t=e||this.currentDirectory||`/`,n=E(await this.client.file.list({path:t,...this.currentDirectory?{directory:this.currentDirectory}:{}}),`file.list`);return Array.isArray(n)?n:[]}catch{return[]}}async listCommands(){return(E(await this.client.command.list(this.currentDirectory?{directory:this.currentDirectory}:void 0),`command.list`)||[]).map(e=>({name:e.name,description:e.description,agent:e.agent,model:e.model,source:e.source}))}async listCommandsWithDetails(){return(E(await this.client.command.list(this.currentDirectory?{directory:this.currentDirectory}:void 0),`command.list`)||[]).map(e=>({name:e.name,description:e.description,agent:e.agent,model:e.model,source:e.source,template:e.template}))}async listSkillsWithDetails(){try{let e=(await this.client.app.skills(this.currentDirectory?{directory:this.currentDirectory}:void 0)).data;if(!Array.isArray(e))return[];let t=[];for(let n of e){let e=typeof n.name==`string`?n.name.trim():``,r=typeof n.location==`string`?n.location:``;if(!e||!r)continue;let i={name:e,location:r};typeof n.description==`string`&&(i.description=n.description),typeof n.content==`string`&&(i.content=n.content),t.push(i)}return t}catch{return[]}}async getCommandDetails(e){try{let t=await this.client.command.list(this.currentDirectory?{directory:this.currentDirectory}:void 0);if(t.data){let n=t.data.find(t=>t.name===e);if(n)return{name:n.name,template:n.template,description:n.description,agent:n.agent,model:n.model}}return null}catch{return null}}async checkHealth(){let e=r(),t=this.healthCache.get(e);if(t&&t.expiresAt>Date.now())return t.healthy;let n=this.healthInFlight.get(e);if(n)return n;let i=this.healthCacheGeneration,a=(async()=>{let t=!1;try{let e=this.baseUrl.endsWith(`/`)?this.baseUrl.replace(/\/+$/,``):this.baseUrl,n=e===`/api`||e.endsWith(`/api`)?`/api/opencode/health`:`${e}/opencode/health`;C(`opencodeClient.checkHealth:url`,{baseUrl:this.baseUrl,healthUrl:n});let r=Ot(bt),i=await g(n,{signal:r.signal}).finally(r.cleanup);if(C(`opencodeClient.checkHealth:response`,{status:i.status}),i.ok){let e=await i.json();C(`opencodeClient.checkHealth:result`,{healthy:e?.healthy}),t=e?.healthy===!0}}catch{t=!1}return i!==this.healthCacheGeneration||e!==r()?!1:(this.healthCache.set(e,{healthy:t,expiresAt:Date.now()+(t?xt:St)}),t)})();this.healthInFlight.set(e,a);try{return await a}finally{this.healthInFlight.get(e)===a&&this.healthInFlight.delete(e)}}async createDirectory(e,t){let n=Pt();if(n?.createDirectory)try{return await n.createDirectory(e)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(t||`Failed to create directory`)}let r={path:e,...t?.allowOutsideWorkspace?{allowOutsideWorkspace:!0}:{}},i=await g(`${this.baseUrl}/fs/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.json().catch(()=>({error:`Failed to create directory`}));throw Error(e.error||`Failed to create directory`)}return await i.json()}async cloneRepository(e){let t=await g(`${this.baseUrl}/fs/clone`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({error:`Failed to clone repository`}));throw Error(e.error||`Failed to clone repository`)}return await t.json()}async listLocalDirectory(e,t){let n=`${typeof e==`string`?k(e.trim()):``}|${t?.respectGitignore?`1`:`0`}`,r=Date.now(),i=this.listDirectoryCache.get(n);if(i&&i.expiresAt>r)return i.entries;let a=this.listDirectoryInFlight.get(n);if(a)return a;let o=(async()=>{let r=Pt();if(r)try{let i=await r.listDirectory(e||``,t);if(!i||!Array.isArray(i.entries))return[];let a=i.entries.map(e=>({name:e.name,path:k(e.path),isDirectory:!!e.isDirectory,isFile:!e.isDirectory,isSymbolicLink:!1}));return this.listDirectoryCache.set(n,{entries:a,expiresAt:Date.now()+Nt}),a}catch(e){throw console.error(`Failed to list directory contents:`,e),e}try{let r=new URLSearchParams;e&&e.trim().length>0&&r.set(`path`,e),t?.respectGitignore&&r.set(`respectGitignore`,`true`);let i=r.toString(),a=await g(`${this.baseUrl}/fs/list${i?`?${i}`:``}`);if(!a.ok){let e=await a.json().catch(()=>({})),t=typeof e.error==`string`?e.error:`Failed to list directory`;throw Error(t)}let o=await a.json();if(!o||!Array.isArray(o.entries))return[];let s=o.entries;return this.listDirectoryCache.set(n,{entries:s,expiresAt:Date.now()+Nt}),s}catch(e){throw console.error(`Failed to list directory contents:`,e),e}})().finally(()=>{this.listDirectoryInFlight.get(n)===o&&this.listDirectoryInFlight.delete(n)});return this.listDirectoryInFlight.set(n,o),o}async searchFiles(e,t){let n=typeof t?.directory==`string`&&t.directory.trim().length>0?t.directory.trim():this.currentDirectory,r=n?k(n):null,i=n?this.getScopedApiClient(n):this.client;try{let n=await i.find.files({query:e,limit:typeof t?.limit==`number`&&Number.isFinite(t.limit)?t.limit:void 0,dirs:t?.dirs===!1||t?.type===`file`?`false`:`true`,type:t?.type});return(Array.isArray(n?.data)?n.data:[]).map(e=>{let t=k(e),n=t.split(`/`).filter(Boolean).pop()||t;return{name:n,path:k(r?`${r}/${t}`:t),relativePath:t,extension:n.includes(`.`)?n.split(`.`).pop()?.toLowerCase():void 0}})}catch(e){throw console.error(`Failed to search files:`,e),e}}async getFilesystemHome(){let e=r();if(!e||e===`local`){let e=await ie();if(e)return e}try{let e=await g(`${this.baseUrl}/fs/home`,{method:`GET`,headers:{Accept:`application/json`}});if(!e.ok){let t=await e.json().catch(()=>({})),n=typeof t.error==`string`&&t.error.length>0?t.error:`Failed to resolve home directory`;throw Error(n)}let t=await e.json();return t&&typeof t.home==`string`&&t.home.length>0?t.home:null}catch(e){return console.warn(`Failed to resolve filesystem home directory:`,e),null}}async setOpenCodeWorkingDirectory(e){if(!e||typeof e!=`string`||!e.trim())return console.warn(`[OpencodeClient] setOpenCodeWorkingDirectory: invalid path`,e),null;let t=`${this.baseUrl}/opencode/directory`;try{let n=await g(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})}),r=await n.json().catch(()=>null);if(!n.ok){let e=r??{},t=typeof e.error==`string`&&e.error.length>0?e.error:`Failed to update OpenCode working directory`;throw Error(t)}return r&&typeof r==`object`?r:{success:!0,restarted:!1,path:e}}catch(e){throw console.warn(`Failed to update OpenCode working directory:`,e),e}}},Ft=3e4,It=40,Lt=60,Rt=(e,t,n,r,i,a)=>{let o=e.trim(),s=t.trim().toLowerCase();return JSON.stringify([o,s,n,r,i,a])},zt=(e,t)=>{try{let n=JSON.parse(e);return Array.isArray(n)&&n[0]===t}catch{return!1}},Bt=ae()(oe((e,t)=>({cache:{},cacheKeys:[],inFlight:{},async searchFiles(n,r,i=Lt,a){if(!n||n.trim().length===0)return[];let o=n.trim(),s=typeof r==`string`?r.trim():``,c=!!a?.includeHidden,l=a?.respectGitignore??!0,u=a?.type===`directory`?`directory`:`file`,d=Rt(o,s,i,c,l,u),f=Date.now(),p=t().cache[d];if(p&&f-p.timestamp<Ft)return p.files;let m=t().inFlight[d];if(m)return m;let h=A.searchFiles(s,{directory:o,limit:i,includeHidden:c,respectGitignore:l,dirs:u!==`file`,type:u}).then(t=>(e(e=>{if(e.inFlight[d]!==h)return e;let n={...e.cache,[d]:{files:t,timestamp:Date.now()}},r=e.cacheKeys.filter(e=>e!==d);for(r.push(d);r.length>It;){let e=r.shift();e&&delete n[e]}return{cache:n,cacheKeys:r}}),t)).finally(()=>{e(e=>{if(e.inFlight[d]!==h)return e;let t={...e.inFlight};return delete t[d],{inFlight:t}})});return e(e=>({inFlight:{...e.inFlight,[d]:h}})),h},invalidateDirectory(t){if(!t||t.trim().length===0){e({cache:{},cacheKeys:[],inFlight:{}});return}let n=t.trim();e(e=>{let t={...e.cache},r=e.cacheKeys.filter(e=>!zt(e,n)||(delete t[e],!1)),i=Object.entries(e.inFlight).filter(([e])=>!zt(e,n));return{cache:t,cacheKeys:r,inFlight:Object.fromEntries(i)}})}}),{name:`file-search-store`})),Vt=()=>{if(typeof window>`u`)return!1;try{return window.localStorage.getItem(`openchamber_stream_debug`)===`1`}catch{return!1}},Ht=`openchamber_stream_perf`,j=()=>{if(typeof window>`u`)return!1;try{return window.localStorage.getItem(Ht)===`1`}catch{return!1}},Ut=()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now(),Wt=()=>{if(!j()||typeof window>`u`)return null;if(!window.__openchamberStreamPerfState){let e=Date.now();window.__openchamberStreamPerfState={counters:new Map,startedAt:e,lastUpdatedAt:e}}return window.__openchamberStreamPerfState},Gt=e=>Array.from(e.entries()).map(([e,t])=>({metric:e,count:t.count,avg:t.count>0?Number((t.total/t.count).toFixed(3)):0,max:Number(t.max.toFixed(3)),total:Number(t.total.toFixed(3)),last:Number(t.last.toFixed(3))})).sort((e,t)=>t.total-e.total||t.count-e.count),Kt=(e,t)=>{let n=Wt();if(!n)return;let r=n.counters.get(e)??{count:0,total:0,max:0,last:0};r.count+=1,r.total+=t,r.max=Math.max(r.max,t),r.last=t,n.counters.set(e,r),n.lastUpdatedAt=Date.now()},qt=e=>{if(!(typeof window>`u`))try{if(e){window.localStorage.setItem(Ht,`1`),window.__openchamberStreamPerfState={counters:new Map,startedAt:Date.now(),lastUpdatedAt:Date.now()};return}window.localStorage.removeItem(Ht),delete window.__openchamberStreamPerfState,delete window.__openchamberVsCodeStreamPerfState}catch{}},Jt=()=>{typeof window>`u`||(j()&&(window.__openchamberStreamPerfState={counters:new Map,startedAt:Date.now(),lastUpdatedAt:Date.now()}),window.__openchamberVsCodeStreamPerfState&&(window.__openchamberVsCodeStreamPerfState={...window.__openchamberVsCodeStreamPerfState,counters:new Map,startedAt:Date.now(),lastUpdatedAt:Date.now()}))},Yt=()=>{if(typeof window>`u`)return{enabled:!1,startedAt:null,lastUpdatedAt:null,durationMs:0,entries:[]};let e=window.__openchamberStreamPerfState;return!j()||!e?{enabled:!1,startedAt:null,lastUpdatedAt:null,durationMs:0,entries:[]}:{enabled:!0,startedAt:e.startedAt,lastUpdatedAt:e.lastUpdatedAt,durationMs:Math.max(0,Date.now()-e.startedAt),entries:Gt(e.counters)}},Xt=()=>{if(typeof window>`u`)return{enabled:!1,startedAt:null,lastUpdatedAt:null,durationMs:0,entries:[]};let e=window.__openchamberVsCodeStreamPerfState;if(!j()||!e)return{enabled:!1,startedAt:null,lastUpdatedAt:null,durationMs:0,entries:[]};let t=typeof e.startedAt==`number`?e.startedAt:null;return{enabled:!0,startedAt:t,lastUpdatedAt:typeof e.lastUpdatedAt==`number`?e.lastUpdatedAt:null,durationMs:t?Math.max(0,Date.now()-t):0,entries:Gt(e.counters)}},Zt=(e,t=1)=>{Kt(e,t)},Qt=(e,t)=>{Kt(e,t)},$t=(e,t)=>{if(!j())return t();let n=Ut();try{return t()}finally{Kt(e,Ut()-n)}},M=null,en=0,N=c(),tn=p(`lastDirectory`,{storage:N}),nn=typeof tn==`string`&&tn.length>0,P=e=>{try{Bt.getState().invalidateDirectory(e)}catch(e){console.warn(`Failed to invalidate file search cache:`,e)}},F=e=>{let t=e.trim();if(!t)return t;let n=t.replace(/\\/g,`/`).replace(/^([a-z]):/,(e,t)=>t.toUpperCase()+`:`);return n.length>1?n.replace(/\/+$/,``):n},rn=(e,t)=>{let n=e.trim();return n.startsWith(`~`)?n===`~`?t||n:(n.startsWith(`~/`)||n.startsWith(`~\\`))&&t?`${t}${n.slice(1)}`:n:n},I=(e,t)=>F(rn(e,t)),an=()=>{let e=p(`homeDirectory`,{storage:N});if(typeof e!=`string`||e.trim().length===0)return null;let t=F(e);return t.length>0?t:null},on=()=>{let e=p(`lastDirectory`,{storage:N});if(typeof e!=`string`||e.trim().length===0)return null;let t=F(e);return t.length>0?t:null},sn=()=>{if(typeof process>`u`)return null;let e={},t=e?.HOME||e?.USERPROFILE||(e?.HOMEDRIVE&&e?.HOMEPATH?`${e.HOMEDRIVE}${e.HOMEPATH}`:void 0);if(typeof t==`string`&&t.trim().length>0){let e=F(t);return e.length>0?e:null}let n=process?.cwd?.();if(typeof n==`string`&&n.trim().length>0){let e=F(n);return e.length>0?e:null}return null},L=()=>{if(typeof window<`u`){if(M)return M;let e=typeof window.__OPENCHAMBER_HOME__==`string`&&window.__OPENCHAMBER_HOME__.length>0?window.__OPENCHAMBER_HOME__:null;if(e&&e.length>0)return M=e,m(`homeDirectory`,e,{storage:N}),e;let t=an();if(t&&!f())return M=t,t}return sn()||`/`},cn=e=>{if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=t.replace(/\\/g,`/`);if(n.length>1){let e=n.replace(/\/+$/,``);if(e&&e.length>0)return e===`/`?null:e}return n===`/`||n.length===0?null:n},ln=e=>(M=e,typeof window<`u`&&m(`homeDirectory`,e,{storage:N}),_({homeDirectory:e}),e),un=async()=>{let e=e=>{let t=cn(e);return t?ln(t):null};try{let t=e(await A.getFilesystemHome());if(t)return t}catch(e){console.warn(`Failed to obtain filesystem home directory:`,e)}try{let t=e((await A.getSystemInfo())?.homeDirectory);if(t)return t}catch(e){console.warn(`Failed to get home directory from system info:`,e)}try{let t=e(await ie());if(t)return t}catch(e){console.warn(`Failed to obtain desktop-integrated home directory:`,e)}let t=L();return e(t)||t},R=(()=>{if(!f())return null;let e=window.__VSCODE_CONFIG__?.workspaceFolder;if(typeof e!=`string`||e.trim().length===0)return null;let t=F(e);return t.length>0?t:null})()||L(),z=(()=>{let e=on();return e&&!f()?I(e,R):R})();z&&A.setDirectory(z);var dn=!!(R&&R!==`/`),B=ae()(oe((e,t)=>({currentDirectory:z,directoryHistory:[z],historyIndex:0,homeDirectory:R,hasPersistedDirectory:nn,isHomeReady:dn,isSwitchingDirectory:!1,setDirectory:(n,r)=>{let i=I(n,M||t().homeDirectory||p(`homeDirectory`,{storage:N}));Vt(),ue(t().currentDirectory,i)&&(A.setDirectory(i),P(),e(e=>{let t=[...e.directoryHistory.slice(0,e.historyIndex+1),i];return m(`lastDirectory`,i,{storage:N}),_({lastDirectory:i}),{currentDirectory:i,directoryHistory:t,historyIndex:t.length-1,hasPersistedDirectory:!0,isHomeReady:!0,isSwitchingDirectory:!1}}))},goBack:()=>{let n=t();if(n.historyIndex>0){let t=n.historyIndex-1,r=n.directoryHistory[t];A.setDirectory(r),P(),m(`lastDirectory`,r,{storage:N}),_({lastDirectory:r}),e({currentDirectory:r,historyIndex:t,hasPersistedDirectory:!0,isHomeReady:!0,isSwitchingDirectory:!1})}},goForward:()=>{let n=t();if(n.historyIndex<n.directoryHistory.length-1){let t=n.historyIndex+1,r=n.directoryHistory[t];A.setDirectory(r),P(),m(`lastDirectory`,r,{storage:N}),_({lastDirectory:r}),e({currentDirectory:r,historyIndex:t,hasPersistedDirectory:!0,isHomeReady:!0,isSwitchingDirectory:!1})}},goToParent:()=>{let{currentDirectory:e,setDirectory:n}=t();if(e===(M||t().homeDirectory||L())||e===`/`)return;let r=e.endsWith(`/`)?e.slice(0,-1):e,i=r.lastIndexOf(`/`);n(i===-1?M||L():i===0?`/`:r.substring(0,i))},goHome:async()=>{let e=M||t().homeDirectory||await un();t().setDirectory(e)},synchronizeHomeDirectory:n=>{let r=t(),i=n;M=i;let a=r.homeDirectory!==i,o=p(`lastDirectory`,{storage:N}),s=typeof o==`string`&&o.length>0,c=!s&&(r.currentDirectory===`/`||r.currentDirectory===r.homeDirectory||!r.currentDirectory);if(!a&&!c){r.isHomeReady||e({isHomeReady:!0});return}let l=typeof i==`string`&&i!==``&&i!==`/`,u=r.currentDirectory?I(r.currentDirectory,i):r.currentDirectory,d=r.directoryHistory.map(e=>I(e,i)),f=d.some((e,t)=>e!==r.directoryHistory[t]),h=!!(u&&u!==r.currentDirectory),g={homeDirectory:i,hasPersistedDirectory:s,isHomeReady:l};if(c?(g.currentDirectory=i,g.directoryHistory=[i],g.historyIndex=0,g.isSwitchingDirectory=!1):(h||f)&&(g.currentDirectory=u,g.directoryHistory=d,g.historyIndex=Math.min(r.historyIndex,d.length-1),g.isSwitchingDirectory=!1),e(()=>g),(c||h)&&l){let e=c?i:u;A.setDirectory(e),P(),m(`lastDirectory`,e,{storage:N}),_({lastDirectory:e})}_({homeDirectory:i})}}),{name:`directory-store`}));typeof window<`u`&&(un().then(e=>{B.getState().synchronizeHomeDirectory(e)}),u(e=>{M=null;let n=++en;if(t(e)){let e=an(),t=on(),n=e||`/`,r=t||n;M=e,B.setState({currentDirectory:r,directoryHistory:[r],historyIndex:0,homeDirectory:n,hasPersistedDirectory:!!t,isHomeReady:!!(e&&e!==`/`),isSwitchingDirectory:!1}),r&&(A.setDirectory(r),P())}un().then(e=>{n===en&&B.getState().synchronizeHomeDirectory(e)})}));var fn=`x-openchamber-target-port`,pn=()=>{let e=a();for(let[t,n]of Object.entries(e)){if(t.trim().toLowerCase()!==fn)continue;let e=n.trim();return e?{[fn]:e}:void 0}},mn=(e,t)=>{let n=s();return n?n.openWebSocket(d(e),t,pn()):l(t?new WebSocket(e,t):new WebSocket(e))},V=`/api/git`,hn=1200,gn=5e3,_n=2,vn=5e3,yn=`${V}/worktrees/queue-activation`,bn=`message_queue_activation_pending`,xn=`worktree_lifecycle_busy`,Sn=`worktree_activation_stale`,Cn=5e3,wn=3e4,Tn=[0,500,1e3,2e3,4e3,8e3,14e3],H=new Map,U=new Map,En=new Map,W=new Map,G=new Map,K=new Map,q=new Map,Dn=new Map,J=new Map,On=new Map,kn=new Set,Y=0,An=[],jn=()=>Y<_n?(Y+=1,Promise.resolve()):new Promise(e=>{An.push(e)}),Mn=()=>{let e=An.shift();if(e){e();return}Y=Math.max(0,Y-1)},Nn=async e=>{await jn();try{return await e()}finally{Mn()}},Pn=Symbol.for(`openchamber.git.discoveryGated`),Fn=e=>(Object.defineProperty(e,Pn,{value:!0,configurable:!0}),e),In=e=>typeof e==`function`&&e[Pn]===!0,X=e=>e.trim(),Ln=(e,t)=>t===`light`?`${X(e)}::light`:X(e),Rn=e=>En.get(X(e))??0,Z=e=>{let t=X(e);En.set(t,Rn(e)+1);for(let e of Array.from(H.keys()))(e===t||e.startsWith(`${t}::`))&&H.delete(e);for(let e of Array.from(U.keys()))(e===t||e.startsWith(`${t}::`))&&U.delete(e)},zn=e=>On.get(X(e))??0,Q=e=>{let t=X(e);t&&(On.set(t,zn(e)+1),Dn.delete(t),J.delete(t))};function $(e,t,n){let r={...n};return t&&(r.directory=t),i().api(e,r)}var Bn=(e,t,n)=>{let r=X(e);if(!r)return;let i=Date.now()+vn;W.set(r,{value:t,expiresAt:i});let a=typeof n==`string`&&n?n:e;K.set(r,{value:{root:a},expiresAt:i})};async function Vn(e){let t=Array.from(new Set(e.map(e=>X(e)).filter(Boolean))),n=new Map;if(t.length===0)return n;let r=Date.now(),a=[];for(let e of t){let t=W.get(e),i=K.get(e);if(t&&t.expiresAt>r&&i&&i.expiresAt>r){n.set(e,{isGitRepository:t.value,primaryRoot:i.value.root});continue}a.push(e)}if(a.length===0)return n;let o=e=>{for(let t of e){let e=typeof t.directory==`string`?X(t.directory):``;if(!e)continue;let r=!!t.isGitRepository,i=typeof t.primaryRoot==`string`&&t.primaryRoot?t.primaryRoot:null;Bn(e,r,i),n.set(e,{isGitRepository:r,primaryRoot:i})}},s=async e=>{await Promise.all(e.map(async e=>{try{let[t,r]=await Promise.all([Hn(e),Wn(e).then(e=>e.root).catch(()=>e)]);Bn(e,t,t?r:null),n.set(e,{isGitRepository:t,primaryRoot:t?r:null})}catch{Bn(e,!1,null),n.set(e,{isGitRepository:!1,primaryRoot:null})}}))};try{await Nn(async()=>{let e=new URLSearchParams;for(let t of a)e.append(`directories`,t);let t=i().api(`${V}/discover`),n=e.toString(),r=n?t.includes(`?`)?`${t}&${n}`:`${t}?${n}`:t,s=await g(r);if(s.status===501||!s.ok)throw Error(`Batch git discover unavailable: ${s.status} ${s.statusText}`);let c=await s.json().catch(()=>null),l=Array.isArray(c)?c:[];if(l.length===0&&a.length>0)throw Error(`Batch git discover returned empty payload`);o(l)})}catch{}let c=a.filter(e=>!n.has(e));return c.length>0&&await s(c),n}async function Hn(e){let t=X(e),n=Date.now(),r=W.get(t);if(r&&r.expiresAt>n)return r.value;let i=G.get(t);if(i)return i;let a=(async()=>{let n=await g($(`${V}/check`,e));if(!n.ok)throw Error(`Failed to check git repository: ${n.statusText}`);let r=!!(await n.json()).isGitRepository;return W.set(t,{value:r,expiresAt:Date.now()+gn}),r})();G.set(t,a);try{return await a}finally{G.get(t)===a&&G.delete(t)}}async function Un(e,t){let n=t?.mode,r=Ln(e,n),i=Date.now(),a=H.get(r);if(a&&a.expiresAt>i)return a.value;let o=U.get(r);if(o)return o;let s=(async()=>{let t=Rn(e),i=await g($(`${V}/status`,e,n?{mode:n}:void 0));if(!i.ok)throw Error(`Failed to get git status: ${i.statusText}`);let a=await i.json();return Rn(e)===t&&H.set(r,{value:a,expiresAt:Date.now()+hn}),a})();U.set(r,s);try{return await s}finally{U.get(r)===s&&U.delete(r)}}async function Wn(e){let t=X(e),n=Date.now(),r=K.get(t);if(r&&r.expiresAt>n)return r.value;let i=q.get(t);if(i)return i;let a=Nn(async()=>{let n=await g($(`${V}/primary-root`,e));if(!n.ok)throw Error(`Failed to resolve git primary root: ${n.statusText}`);let r=await n.json().catch(()=>({})),i={root:typeof r.root==`string`&&r.root?r.root:e};return K.set(t,{value:i,expiresAt:Date.now()+vn}),i});q.set(t,a);try{return await a}finally{q.get(t)===a&&q.delete(t)}}async function Gn(e){let t=await g($(`${V}/toplevel`,e));if(!t.ok)throw Error(`Failed to resolve git toplevel: ${t.statusText}`);let n=await t.json().catch(()=>({}));return{root:typeof n.root==`string`&&n.root?n.root:e}}async function Kn(e,t){let{path:n,staged:r,contextLines:i}=t;if(!n)throw Error(`path is required to fetch git diff`);let a=await g($(`${V}/diff`,e,{path:n,staged:r?`true`:void 0,context:i}));if(!a.ok)throw Error(`Failed to get git diff: ${a.statusText}`);return a.json()}async function qn(e,t){let{path:n,staged:r}=t;if(!n)throw Error(`path is required to fetch git file diff`);let i=await g($(`${V}/file-diff`,e,{path:n,staged:r?`true`:void 0}));if(!i.ok)throw Error(`Failed to get git file diff: ${i.statusText}`);return i.json()}async function Jn(e,t,n){if(!t)throw Error(`path is required to revert git changes`);let r=await g($(`${V}/revert`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t,scope:n?.scope})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to revert git changes`)}Z(e)}async function Yn(e,t){await Xn(e,[t])}async function Xn(e,t){let n=t.map(e=>e.trim()).filter(Boolean);if(n.length===0)throw Error(`path is required to stage git changes`);let r=await g($(`${V}/stage`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({paths:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to stage git changes`)}Z(e)}async function Zn(e,t){await Qn(e,[t])}async function Qn(e,t){let n=t.map(e=>e.trim()).filter(Boolean);if(n.length===0)throw Error(`path is required to unstage git changes`);let r=await g($(`${V}/unstage`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({paths:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to unstage git changes`)}Z(e)}async function $n(e,t,n){await nr(e,t,n,`stage`)}async function er(e,t,n){await nr(e,t,n,`unstage`)}async function tr(e,t,n){await nr(e,t,n,`discard`)}async function nr(e,t,n,r){if(!t)throw Error(`path is required to apply a git hunk`);if(typeof n!=`string`||!n.trim())throw Error(`patch is required to apply a git hunk`);let i=await g($(`${V}/apply-hunk`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t,patch:n,action:r})});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to apply git hunk`)}Z(e)}async function rr(e){if(!e)return!1;let t=await g($(`${V}/worktree-type`,e));if(!t.ok)throw Error(`Failed to detect worktree type: ${t.statusText}`);return!!(await t.json()).linked}async function ir(e,t){let n=await g($(`${V}/branches`,e),{signal:t?.signal});if(!n.ok)throw Error(`Failed to get branches: ${n.statusText}`);return n.json()}async function ar(e,t){if(!t?.branch)throw Error(`branch is required to delete a branch`);let n=await g($(`${V}/branches`,e),{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to delete branch`)}return n.json()}async function or(e,t){if(!t?.branch)throw Error(`branch is required to delete remote branch`);let n=await g($(`${V}/remote-branches`,e),{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to delete remote branch`)}return n.json()}async function sr(e,t){let n=t?.remote?.trim();if(!n)throw Error(`remote is required to remove a remote`);let r=await g($(`${V}/remotes`,e),{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({remote:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to remove remote`)}return r.json()}async function cr(e,t,n){if(!Array.isArray(t)||t.length===0)throw Error(`No files provided to generate commit message`);let r={files:t};n?.zenModel&&(r.zenModel=n.zenModel),n?.providerId&&(r.providerId=n.providerId),n?.modelId&&(r.modelId=n.modelId);let i=await g($(`${V}/commit-message`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));console.error(`[git-generation][browser] http error`,{status:i.status,statusText:i.statusText,error:e});let t=typeof e?.traceId==`string`&&e.traceId?` (traceId: ${e.traceId})`:``;throw Error(`${e.error||`Failed to generate commit message`}${t}`)}let a=await i.json();if(!a?.message||typeof a.message!=`object`)throw Error(`Malformed commit generation response`);return{message:{subject:typeof a.message.subject==`string`&&a.message.subject.trim().length>0?a.message.subject.trim():``,highlights:Array.isArray(a.message.highlights)?a.message.highlights.filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim()):[]}}}async function lr(e,t){let{base:n,head:r,context:i,zenModel:a,providerId:o,modelId:s}=t;if(!n||!r)throw Error(`base and head are required`);let c={base:n,head:r};i?.trim()&&(c.context=i.trim()),a&&(c.zenModel=a),o&&(c.providerId=o),s&&(c.modelId=s);let l=await g($(`${V}/pr-description`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(c)});if(!l.ok){let e=await l.json().catch(()=>({error:l.statusText}));throw Error(e.error||`Failed to generate PR description`)}let u=await l.json().catch(()=>null),d=typeof u?.title==`string`?u.title:``,f=typeof u?.body==`string`?u.body:``;if(!d&&!f)throw Error(`Malformed PR description response`);return{title:d,body:f}}async function ur(e){let t=X(e),n=Date.now(),r=Dn.get(t);if(r&&r.expiresAt>n)return r.value;let i=J.get(t);if(i)return i;let a=zn(e),o=Nn(async()=>{let n=await g($(`${V}/worktrees`,e));if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to list worktrees`)}let r=await n.json();return a===zn(e)&&Dn.set(t,{value:r,expiresAt:Date.now()+vn}),r});J.set(t,o);try{return await o}finally{J.get(t)===o&&J.delete(t)}}Fn(ur);async function dr(e,t){let n=await g($(`${V}/worktrees/validate`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t??{})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to validate worktree`)}return n.json()}async function fr(e){let t=await g($(`${V}/worktrees/bootstrap-status`,e));if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to get worktree bootstrap status`)}return t.json()}async function pr(e,t){let n=await g($(`${V}/worktrees/preview`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t??{})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to preview worktree`)}return n.json()}var mr=e=>typeof e==`string`&&e.length>0,hr=e=>{if(!e||typeof e!=`object`)return null;let t=e;if(!mr(t.name)||!mr(t.path))return null;let n={head:typeof t.head==`string`?t.head:``,name:t.name,branch:typeof t.branch==`string`?t.branch:``,path:t.path};return t.directoryCreated===!0&&(n.directoryCreated=!0),t.bootstrapStatus&&typeof t.bootstrapStatus==`object`&&(n.bootstrapStatus=t.bootstrapStatus),n},gr=(e,t,n)=>{if(e!==503||!t||typeof t!=`object`)return null;let r=t;if(r.code!==bn)return null;let i=hr(r.worktree);if(!i)return null;let a=r.repair;if(!a||typeof a!=`object`)return null;let o=a;if(o.method!==`POST`||o.path!==yn)return null;let s=o.body;if(!s||typeof s!=`object`)return null;let c=s;return c.projectDirectory!==n||c.directory!==i.path?null:i},_r=(e,t,n,r)=>`${e}\u0000${t}\u0000${n}\u0000${r}`,vr=e=>new Promise(t=>{setTimeout(t,e)}),yr=async e=>{if(e.status===409){let t=await e.json().catch(()=>null);return t?.code===xn||t?.code===Sn}return e.status===503&&(await e.json().catch(()=>null))?.code===bn},br=e=>e===400||e===401||e===403||e===501,xr=(e,t)=>{let r=n(),i=o(),a=_r(r,i,e,t);if(kn.has(a))return;kn.add(a);let s=()=>n()===r&&o()===i;(async()=>{let n=Date.now(),r=0;for(;Date.now()-n<wn;){if(!s())return;let i=Tn[Math.min(r,Tn.length-1)]??0;if(i>0){let e=wn-(Date.now()-n);if(e<=0||(await vr(Math.min(i,e)),!s()))return}let a=new AbortController,o=setTimeout(()=>a.abort(),Cn);try{let n=await g($(yn,void 0),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({projectDirectory:e,directory:t}),signal:a.signal});if(n.ok||br(n.status))return;if(await yr(n)){r+=1;continue}return}catch{r+=1}finally{clearTimeout(o)}}})().catch(()=>{}).finally(()=>{kn.delete(a)})};async function Sr(e,t){let n=await g($(`${V}/worktrees`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t??{})}),r=await n.json().catch(()=>null);if(n.ok){let t=hr(r);if(t)return Q(e),t;if(r&&typeof r==`object`)return Q(e),r;throw Error(`Failed to create worktree`)}let i=gr(n.status,r,e);if(i)return Q(e),xr(e,i.path),i;let a=r&&typeof r==`object`?r:{error:n.statusText};throw Error(a.error||`Failed to create worktree`)}async function Cr(e,t){let n=await g($(`${V}/worktrees`,e),{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t??{})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to delete worktree`)}let r=await n.json();return Q(e),r}async function wr(e,t,n={}){let r=await g($(`${V}/commit`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:t,addAll:n.addAll??!1,files:n.files,stageFiles:n.stageFiles})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to create commit`)}let i=await r.json();return Z(e),i}async function Tr(e,t={}){let n=await g($(`${V}/push`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to push`)}let r=await n.json();return Z(e),r}async function Er(e,t={}){let n=await g($(`${V}/pull`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to pull`)}let r=await n.json();return Z(e),r}async function Dr(e,t={}){let n=await g($(`${V}/fetch`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to fetch`)}let r=await n.json();return Z(e),r}async function Or(e){let t=await g($(`${V}/stashes`,e));if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to list stashes`)}return t.json()}async function kr(e,t){let n=await g($(`${V}/stashes/file-counts`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({refs:t})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to count stash files`)}return n.json()}async function Ar(e,t={}){let n=await g($(`${V}/stash`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to stash changes`)}return n.json()}var jr=async(e,t,n)=>{let r=await g($(`${V}/${t}`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to ${t}`)}return r.json()},Mr=(e,t)=>jr(e,`stash/apply`,t),Nr=(e,t)=>jr(e,`stash/pop`,t),Pr=(e,t)=>jr(e,`stash/drop`,t);async function Fr(e,t){let n=await g($(`${V}/checkout`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({branch:t})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to checkout branch`)}return n.json()}async function Ir(e,t,n){let r=await g($(`${V}/branches`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:t,startPoint:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to create branch`)}return r.json()}async function Lr(e,t,n){let r=await g($(`${V}/branches/rename`,e),{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldName:t,newName:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to rename branch`)}return r.json()}async function Rr(e,t={}){let n=await g($(`${V}/log`,e,{maxCount:t.maxCount,from:t.from,to:t.to,file:t.file,all:t.all?`true`:void 0}));if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(`Failed to get git log: ${e.error||n.statusText}`)}return n.json()}async function zr(e,t){let n=await g($(`${V}/commit-files`,e,{hash:t}));if(!n.ok)throw Error(`Failed to get commit files: ${n.statusText}`);return n.json()}async function Br(e,t,n,r){let i=await g($(`${V}/commit-file-diff`,e,{hash:t,path:n,binary:r?`true`:void 0}));if(!i.ok)throw Error(`Failed to get commit file diff: ${i.statusText}`);return i.json()}async function Vr(){let e=await g($(`${V}/identities`,void 0));if(!e.ok)throw Error(`Failed to get git identities: ${e.statusText}`);return e.json()}async function Hr(e){let t=await g($(`${V}/identities`,void 0),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to create git identity`)}return t.json()}async function Ur(e,t){let n=await g($(`${V}/identities/${e}`,void 0),{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to update git identity`)}return n.json()}async function Wr(e){let t=await g($(`${V}/identities/${e}`,void 0),{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to delete git identity`)}}async function Gr(e){if(!e)return null;let t=await g($(`${V}/current-identity`,e));if(!t.ok)throw Error(`Failed to get current git identity: ${t.statusText}`);let n=await t.json();return n?{userName:n.userName??null,userEmail:n.userEmail??null,sshCommand:n.sshCommand??null}:null}async function Kr(e){if(!e)return!1;let t=await g($(`${V}/has-local-identity`,e));if(!t.ok)throw Error(`Failed to check local identity: ${t.statusText}`);return(await t.json().catch(()=>null))?.hasLocalIdentity===!0}async function qr(){let e=await g($(`${V}/global-identity`,void 0));if(!e.ok)throw Error(`Failed to get global git identity: ${e.statusText}`);let t=await e.json();return!t||!t.userName&&!t.userEmail?null:{userName:t.userName??null,userEmail:t.userEmail??null,sshCommand:t.sshCommand??null}}async function Jr(e,t){let n=await g($(`${V}/set-identity`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({profileId:t})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to set git identity`)}return n.json()}async function Yr(){let e=await g($(`${V}/discover-credentials`,void 0));if(!e.ok)throw Error(`Failed to discover git credentials: ${e.statusText}`);return e.json()}async function Xr(e,t){let n=await g($(`${V}/remotes`,e),{signal:t?.signal});if(!n.ok)throw Error(`Failed to get remotes: ${n.statusText}`);return n.json()}async function Zr(e,t){let n=await g($(`${V}/rebase`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to rebase`)}return n.json()}async function Qr(e){let t=await g($(`${V}/rebase/abort`,e),{method:`POST`});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to abort rebase`)}return t.json()}async function $r(e,t){let n=await g($(`${V}/merge`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to merge`)}return n.json()}async function ei(e,t){let n=await g($(`${V}/checkout-commit`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({hash:t})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to checkout commit`)}return n.json()}async function ti(e,t){let n=await g($(`${V}/cherry-pick`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({hash:t})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to cherry-pick`)}return n.json()}async function ni(e,t){let n=await g($(`${V}/revert-commit`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({hash:t})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to revert commit`)}return n.json()}async function ri(e,t,n,r){let i=await g($(`${V}/reset-to-commit`,e),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({hash:t,mode:n,force:r})});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to reset`)}return i.json()}async function ii(e){let t=await g($(`${V}/merge/abort`,e),{method:`POST`});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to abort merge`)}return t.json()}async function ai(e){let t=await g($(`${V}/rebase/continue`,e),{method:`POST`});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to continue rebase`)}return t.json()}async function oi(e){let t=await g($(`${V}/merge/continue`,e),{method:`POST`});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to continue merge`)}return t.json()}async function si(e,t){return await Ar(e,{message:t?.message}),{success:!0}}async function ci(e){return await Nr(e,{ref:`stash@{0}`}),{success:!0}}async function li(e){let t=await g($(`${V}/conflict-details`,e));if(!t.ok)throw Error(`Failed to get conflict details: ${t.statusText}`);return t.json()}async function ui(e,t){let n=await g(`${V}/validate-directory`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({directory:e,worktreeRoot:t})});if(!n.ok)throw Error(`Failed to validate worktree directory: ${n.statusText}`);return n.json()}async function di(e){let t=await g(`${V}/canonicalize-worktree-state`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({directory:e})});if(!t.ok)throw Error(`Failed to canonicalize worktree state: ${t.statusText}`);return t.json()}var fi=()=>typeof window>`u`?!1:window.Capacitor?.isNativePlatform?.()===!0||window.location.protocol===`capacitor:`,pi=()=>{if(typeof window>`u`||!fi()||mi()!==`ios`)return!1;let e=navigator.userAgent||``,t=navigator.maxTouchPoints??0;return/iPad/i.test(e)||/Macintosh|MacIntel/i.test(e)&&t>1},mi=()=>{if(typeof window<`u`){let e=window.Capacitor?.getPlatform?.();if(e===`ios`||e===`android`)return e}return f()?`vscode`:h()?`desktop`:`web`};export{Zr as $,li as A,$t as At,Xr as B,Pe as Bt,Yr as C,B as Ct,lr as D,qt as Dt,cr as E,Jt as Et,Vr as F,it as Ft,Q as G,Ge as Gt,Er as H,Be as Ht,Rr as I,rt as It,Or as J,ye as Jt,In as K,Fe as Kt,Un as L,Ve as Lt,ir as M,Bt as Mt,Kn as N,A as Nt,Br as O,Vt as Ot,qn as P,C as Pt,pr as Q,fr as R,Me as Rt,or as S,mn as St,Pr as T,Xt as Tt,Tr as U,He as Ut,Dr as V,ze as Vt,Kr as W,Ue as Wt,$r as X,ur as Y,Se as Yt,Nr as Z,Hr as _,er as _t,Qr as a,ni as at,Wr as b,ui as bt,Hn as c,Jr as ct,ti as d,$n as dt,sr as et,oi as f,si as ft,wr as g,Qn as gt,Ir as h,Zn as ht,ii as i,Gn as it,Gr as j,Qt as jt,zr as k,Zt as kt,Fr as l,Yn as lt,kr as m,ci as mt,fi as n,ri as nt,Mr as o,Jn as ot,ai as p,Ar as pt,rr as q,be as qt,pi as r,Wn as rt,di as s,tr as st,mi as t,Lr as tt,ei as u,Xn as ut,Sr as v,Ur as vt,Vn as w,Yt as wt,Cr as x,Nn as xt,ar as y,dr as yt,qr as z,Ne as zt};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{D as t,t as n,w as r}from"./useUIStore-CL06MzOk.js";import{kn as i}from"./persistence-Cm9DnxXq.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{Ct as T,Nt as E}from"./platform-BrOZ1tqx.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-DH0BvKYH.js";import{Jn as j,Kn as M,Qn as N,Xn as P,Yn as F,Zn as I,b as L,l as R,qa as z,ta as ee,xo as te}from"./useMobileNavigationStore-BcAHNGih.js";import{t as B}from"./utils-DlvuQ5yV.js";import{n as V}from"./Icon-C0dydAmx.js";import{k as ne,l as re,v as ie,x as ae}from"./gitApi-DBiUTo9f.js";import{t as oe}from"./input-7arjRNdx.js";import{i as se,n as ce,t as le}from"./tooltip-CO8qCWXw.js";import{t as ue}from"./OverlayScrollbar-DMQhwzR3.js";import{_ as de,l as fe,o as pe,s as me,t as he,v as ge,y as _e}from"./vendor-dnd-kit-core-CvWxUPdb.js";import{n as ve,o as ye,s as be,t as xe}from"./vendor-dnd-kit-sortable-hHdP9lLb.js";var H=D(),U=e(b(),1),W=v(),G=U.memo(function(e){let t=(0,H.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=B(`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=B(`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,W.jsx)(V,{name:`subtract`,className:B(`h-[10px] w-[10px] min-h-[10px] min-w-[10px]`,`text-[var(--primary-base)]`)}):(0,W.jsx)(V,{name:`check`,className:B(`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,W.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,W.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}),Se=/#([a-z0-9_-]+)/gi,Ce=15,we=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}},Te=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},K=(e,t,n,r)=>{let i=e,a=!0;for(;a;){let e=i,o=!1;Se.lastIndex=0,i=i.replace(Se,(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>Ce)return o=!0,e;n.set(l,u);let d=we(c.content);for(let e of d.prepend)r.prepend.push(K(e,t,n,r));for(let e of d.append)r.append.push(K(e,t,n,r));return K(d.inline,t,n,r)}),a=i!==e&&!o}return i},q=(e,t)=>{if(!/#([a-z0-9_-]+)/i.test(e))return e;let n=Te(t),r=[];Se.lastIndex=0;let i;for(;(i=Se.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=K(e||``,n,new Map,a).trim();return[...a.prepend,o,...a.append].filter(Boolean).join(`
|
|
2
|
+
|
|
3
|
+
`)},Ee=5e3,J=0,Y=null,X=()=>{try{let e=T.getState().currentDirectory;if(e?.trim())return e.trim();let t=E.getDirectory();if(t?.trim())return t.trim();let n=te.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-J<Ee)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}),J=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 J=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 J=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}),J=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=()=>q(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,H.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=U.forwardRef((e,t)=>{let n=(0,H.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=U.useRef(null),T=U.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]),U.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]),U.useEffect(I,L);let R=Oe(w,t),z=E??!0,ee;return n[19]!==g||n[20]!==m||n[21]!==p||n[22]!==R||n[23]!==k||n[24]!==_||n[25]!==h||n[26]!==z?(ee=(0,W.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]=ee):ee=n[27],ee});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=U.forwardRef((e,t)=>{let n=(0,H.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=U.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]),U.useImperativeHandle(t,D,O);let k=C&&`overscroll-none`,A;n[19]!==s||n[20]!==k?(A=B(`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,W.jsx)(ke,{as:y,ref:E,size:l,className:B(`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,W.jsx)(y,{ref:E,className:B(`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,W.jsx)(ue,{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,W.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='currentColor'%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='30'%20viewBox='0%200%20256%20320'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenCode%3c/title%3e%3cpath%20d='M192%2064V256H64V64H192Z'%20fill='currentColor'%20fill-opacity='0.2'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M256%20320H0V0H256V320ZM192%2064H64V256H192V64Z'%20fill='currentColor'/%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,H.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,U.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,U.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,H.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,W.jsx)(W.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=B(`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,W.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};function Vt(e,t,n,r){let i=e.find(e=>e.id===n);if(!i)return null;let a=(Array.isArray(i.models)?i.models:[]).find(e=>e.id===r);return!a||t.some(e=>e.providerID===n&&e.modelID===r)?null:{provider:i,model:a,providerID:n,modelID:r}}var Ht=e=>{let t=(0,H.c)(30),r=ee(Ut),i=n(Wt),a=n(Gt),o=n(Kt),s=e?.currentProviderID??null,c=e?.currentModelID??null,l;if(t[0]!==i||t[1]!==o||t[2]!==r){let e;t[4]!==o||t[5]!==r?(e=e=>{let{providerID:t,modelID:n}=e;return Vt(r,o,t,n)},t[4]=o,t[5]=r,t[6]=e):e=t[6],l=i.map(e).filter(qt),t[0]=i,t[1]=o,t[2]=r,t[3]=l}else l=t[3];let u=l,d;if(t[7]!==c||t[8]!==s||t[9]!==i||t[10]!==o||t[11]!==r||t[12]!==a){bb0:{let e;t[14]!==o||t[15]!==r?(e=e=>{let{providerID:t,modelID:n}=e;return Vt(r,o,t,n)},t[14]=o,t[15]=r,t[16]=e):e=t[16];let n;t[17]===i?n=t[18]:(n=e=>{let{providerID:t,modelID:n}=e;return!i.some(e=>e.providerID===t&&e.modelID===n)},t[17]=i,t[18]=n);let l=a.map(e).filter(Jt).filter(n);if(!s||!c){d=l;break bb0}if(i.some(e=>e.providerID===s&&e.modelID===c)){d=l;break bb0}let u;t[19]!==c||t[20]!==s?(u=e=>e.providerID===s&&e.modelID===c,t[19]=c,t[20]=s,t[21]=u):u=t[21];let f=l.findIndex(u);if(f===0){d=l;break bb0}if(f>0){let e=l.slice(),[t]=e.splice(f,1);e.unshift(t),d=e;break bb0}let p;t[22]!==c||t[23]!==s||t[24]!==o||t[25]!==r?(p=Vt(r,o,s,c),t[22]=c,t[23]=s,t[24]=o,t[25]=r,t[26]=p):p=t[26];let m=p;if(!m){d=l;break bb0}d=[m,...l]}t[7]=c,t[8]=s,t[9]=i,t[10]=o,t[11]=r,t[12]=a,t[13]=d}else d=t[13];let f=d,p;return t[27]!==u||t[28]!==f?(p={favoriteModelsList:u,recentModelsList:f},t[27]=u,t[28]=f,t[29]=p):p=t[29],p};function Ut(e){return e.providers}function Wt(e){return e.favoriteModels}function Gt(e){return e.recentModels}function Kt(e){return e.hiddenModels}function qt(e){return e!==null}function Jt(e){return e!==null}var Yt=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}),Xt=new Map,Zt=new Set,Qt=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`]]),$t=e=>(e??``).toLowerCase().trim().replace(/^models\./,``).replace(/^provider\./,``).replace(/\s+/g,`-`),en=e=>{let t=$t(e);if(!t)return[];let n=t.replace(/[^a-z0-9_\-./:]/g,``),r=n.split(/[/:]/)[0]||n,i=[Qt.get(n),Qt.get(r),n,r].filter(e=>!!(e&&e.length>0));return[...new Set(i)]},tn=e=>{let t=en(e).find(e=>Xt.has(e))??null;return t?Xt.get(t)??null:null},nn=e=>{if(typeof Image>`u`)return;let t=tn(e);if(!t||Zt.has(t))return;Zt.add(t);let n=new Image;n.decoding=`async`,n.onerror=()=>{Zt.delete(t)},n.src=t,n.decode?.().catch(()=>void 0)},rn=e=>{for(let t of e)nn(t)};for(let[e,t]of Object.entries(Yt)){let n=e.match(/provider-logos\/([^/]+)\.svg$/i);n?.[1]&&t&&Xt.set(n[1].toLowerCase(),t)}function an(e){let t=(0,H.c)(17),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):(r=en(e).find(on)??null,n=!!r,i=r?Xt.get(r)??null:null,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i,[o,s]=(0,U.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,U.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 on(e){return Xt.has(e)}var sn=e=>{let t=(0,H.c)(4),{className:n}=e,r;t[0]===n?r=t[1]:(r=B(`text-muted-foreground`,n),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,W.jsx)(V,{name:`stack`,className:r}),t[2]=r,t[3]=i),i},cn=e=>{let t=(0,H.c)(12),{providerId:n,alt:r,className:i,onError:a}=e,{src:o,onError:s,hasLogo:c}=an(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,W.jsx)(sn,{className:i}),t[3]=i,t[4]=e),e}let d=r||`${n} logo`,f;t[5]===i?f=t[6]:(f=B(`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,W.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},ln=(e,t)=>{if(!e||typeof e!=`object`)return;let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:void 0},un=(e,t,n)=>{let r=ln(t.limit,`context`),i=ln(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 dn(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 fn(e,t){let n=dn(t);if(!n.lower)return!0;let r=dn(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 pn=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})),mn={image:{icon:`file-image`,labelKey:`modalityImage`},video:{icon:`file-video`,labelKey:`modalityVideo`},audio:{icon:`file-music`,labelKey:`modalityAudio`}},hn=e=>e.trim().toLowerCase(),gn=e=>{let t=(0,H.c)(5),{iconName:n,label:r}=e,i;t[0]===n?i=t[1]:(i=(0,W.jsx)(V,{name:n,className:`size-3.5`}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,W.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},_n=(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(hn).filter(Boolean)));for(let e of i){let r=mn[e];if(!r)continue;let i=t[r.labelKey];i&&n.push({key:`modality-${e}`,icon:r.icon,label:i})}return n},vn=e=>new Intl.NumberFormat(A(),{notation:`compact`,compactDisplay:`short`,maximumFractionDigits:1,minimumFractionDigits:0}).format(e),yn=e=>new Intl.NumberFormat(A(),{style:`currency`,currency:`USD`,maximumFractionDigits:4,minimumFractionDigits:2}).format(e),bn=e=>z(e,void 0,{maxLength:40}),xn=e=>{if(typeof e!=`number`||Number.isNaN(e))return``;if(e===0)return`0`;let t=vn(e);return t.endsWith(`.0`)?t.slice(0,-2):t},Sn=e=>typeof e!=`number`||!Number.isFinite(e)?`—`:yn(e),Cn=(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,wn=e=>{let t=(0,H.c)(12),{metadata:n,providerName:r,active:i,labels:a,children:o}=e,[s,c]=U.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),U.useEffect(l,u),!Cn(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=_n(n,a),c=n?.cost?.input!==void 0||n?.cost?.output!==void 0,l;t[10]===o?l=t[11]:(l=(0,W.jsx)(se,{asChild:!0,children:o}),t[10]=o,t[11]=l),d=(0,W.jsxs)(le,{delayDuration:0,open:i&&s,onOpenChange:Nn,children:[l,i&&s?(0,W.jsx)(ce,{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,W.jsxs)(`div`,{className:`flex flex-col gap-2 text-left text-xs`,children:[r&&a.provider?(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-muted-foreground`,children:[(0,W.jsx)(`span`,{className:`typography-meta font-medium`,children:a.provider}),(0,W.jsx)(`span`,{className:`typography-meta text-foreground`,children:r})]}):null,e.length>0?(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-muted-foreground`,children:[(0,W.jsx)(`span`,{className:`typography-meta font-medium shrink-0`,children:a.capabilities}),(0,W.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-1`,children:e.map(Pn)})]}):null,c?(0,W.jsxs)(`div`,{className:`flex items-start justify-between gap-3 text-muted-foreground`,children:[a.costPerMillion?(0,W.jsx)(`span`,{className:`typography-meta font-medium shrink-0`,children:a.costPerMillion}):null,(0,W.jsxs)(`div`,{className:`flex flex-col items-end gap-0.5 min-w-0`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5 min-w-0`,children:[a.costInput?(0,W.jsx)(`span`,{className:`typography-meta shrink-0`,children:a.costInput}):null,(0,W.jsx)(`span`,{className:`typography-meta text-foreground tabular-nums`,children:Sn(n?.cost?.input)})]}),(0,W.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5 min-w-0`,children:[a.costOutput?(0,W.jsx)(`span`,{className:`typography-meta shrink-0`,children:a.costOutput}):null,(0,W.jsx)(`span`,{className:`typography-meta text-foreground tabular-nums`,children:Sn(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},Tn=()=>{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()}}},En=U.memo(e=>{let t=(0,H.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]=U.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]),U.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,W.jsx)(W.Fragment,{children:u}),t[10]=u,t[11]=d),d}),Dn=e=>{let t=(0,H.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]=U.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),U.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,W.jsx)(W.Fragment,{children:f}),t[9]=f,t[10]=p),p},On=e=>{let t=(0,H.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}=ye(o),m;t[3]===d?m=t[4]:(m=_e.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]:(_=B(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,W.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=e=>{let t=(0,H.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}=ye(o),m;t[3]===d?m=t[4]:(m=_e.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]:(_=B(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,W.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},An=32,jn=(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+An?i-An:a>s?a-e.clientHeight:o,l=Math.max(0,e.scrollHeight-e.clientHeight);e.scrollTop=Math.max(0,Math.min(c,l))},Mn=({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=U.useRef(null);R.current||=Tn();let z=R.current,ee=U.useRef([]),te=U.useRef(null),ne=U.useRef(!1),re=U.useRef(null),ie=pn(e=>e.collapsedSections),ae=pn(e=>e.toggleSection),se=U.useMemo(()=>new Set(Object.keys(ie).filter(e=>ie[e])),[ie]),ce=i.trim().length>0,[le,ue]=U.useState(()=>new Set),_e=ce?le:se,ye=ge(de(me,{activationConstraint:{distance:8}})),H=ge(de(pe,{activationConstraint:{distance:8}})),G=U.useMemo(()=>!u||u.length===0?null:new Set(u),[u]),Se=U.useMemo(()=>d?new Map(Object.entries(d).map(([e,t])=>[e,new Set(t)])):null,[d]),Ce=U.useCallback((e,t)=>!Se||Se.get(e)?.has(t)===!0,[Se]),we=U.useMemo(()=>new Map(e.map(e=>[e.id,e])),[e]),Te=U.useCallback((e,t)=>l.some(n=>n.providerID===e&&n.modelID===t),[l]),K=U.useCallback((e,t)=>{let n=i.trim();return!n||fn(e,n)||fn(t,n)},[i]),q=U.useMemo(()=>t.filter(({model:e,providerID:t,modelID:n})=>{if(G&&!G.has(t)||!Ce(t,n)||Te(t,n))return!1;let r=we.get(t)?.name||t;return K(bn(e),r)}),[G,t,Ce,Te,K,we]),Ee=U.useMemo(()=>n.filter(({model:e,providerID:t,modelID:n})=>{if(G&&!G.has(t)||!Ce(t,n)||Te(t,n))return!1;let r=we.get(t)?.name||t;return K(bn(e),r)}),[G,Ce,Te,K,we,n]),J=U.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=U.useMemo(()=>J.filter(e=>!G||G.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||Te(e.id,n)||!Ce(e.id,n)?!1:K(bn(t),e.name||e.id)});return{...e,models:t}}).filter(e=>e.models.length>0),[G,Ce,Te,K,J]),X=U.useMemo(()=>{let e=[];return _e.has(`favorites`)||q.forEach(t=>e.push(t)),_e.has(`recent`)||Ee.forEach(t=>e.push(t)),Y.forEach(t=>{_e.has(`provider:${t.id}`)||t.models.forEach(n=>e.push({model:n,providerID:t.id,modelID:n.id}))}),e},[_e,q,Y,Ee]),De=X.length>0,Oe=!!k&&i.trim().length===0&&q.length>1,ke=!!N&&i.trim().length===0&&!G&&Y.length>1,Ae=U.useMemo(()=>new Map(q.map(e=>[`${e.providerID}:${e.modelID}`,e])),[q]);U.useEffect(()=>{z.set(0)},[i,z]),U.useEffect(()=>{ce||ue(e=>e.size===0?e:new Set)},[ce]);let je=U.useCallback(e=>{z.set(e),D?.(X[e])},[X,D,z]),Ne=U.useCallback(e=>{let t=X.length;if(t===0)return;ne.current=!0,re.current=null;let n=(z.getSnapshot()+e+t)%t;z.set(n),D?.(X[n]),requestAnimationFrame(()=>jn(te.current,ee.current[n]))},[X,D,z]);U.useEffect(()=>{D?.(X[z.getSnapshot()])},[X,D,z]);let Pe=U.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=B(`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=un(e.providerID,e.model,r?.(e.providerID,e.modelID)),u=we.get(e.providerID)?.name||e.providerID,d=xn(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=re.current,r=!n||n.x!==t.x||n.y!==t.y;re.current=t,!(ne.current&&!n)&&(ne.current&&!r||(ne.current&&r&&(ne.current=!1),je(i)))};return(0,W.jsx)(En,{store:z,index:i,renderVersion:I,children:t=>{let r=(0,W.jsxs)(`div`,{ref:e=>{ee.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:B(`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,W.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-1 min-w-0`,children:[a?(0,W.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,W.jsx)(V,{name:`draggable`,className:`size-3.5`})}):null,n?(0,W.jsx)(Bt,{modelId:e.modelID,providerId:e.providerID,className:`h-3.5 w-3.5 flex-shrink-0`}):null,(0,W.jsx)(`span`,{className:`font-medium truncate`,children:bn(e.model)}),d?(0,W.jsx)(`span`,{className:`typography-micro text-muted-foreground flex-shrink-0`,children:d}):null]}),f>0?(0,W.jsxs)(`span`,{className:`typography-micro text-muted-foreground flex-shrink-0`,children:[`x`,f]}):null,T?.(e,{isHighlighted:t,isSelected:p}),p?(0,W.jsx)(V,{name:`check`,className:`h-4 w-4 text-primary flex-shrink-0`}):null,w?(0,W.jsx)(`button`,{type:`button`,disabled:h,onClick:t=>{t.preventDefault(),t.stopPropagation(),w(e)},className:B(`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,W.jsx)(V,{name:g?`star-fill`:`star`,className:`h-3.5 w-3.5`})}):null]});return(0,W.jsx)(wn,{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=J.map(e=>e.id),i=r.indexOf(String(t.id)),a=r.indexOf(String(n.id));i!==-1&&a!==-1&&N(ve(r,i,a))},Be=e=>_e.has(e),Ve=e=>{if(!ce){ae(e);return}ue(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,W.jsxs)(`div`,{ref:r.setActivatorNodeRef,...r.attributes,...r.listeners,role:`button`,tabIndex:0,"aria-expanded":!i,title:P,className:B(Fe,`w-full text-left cursor-grab select-none active:cursor-grabbing`),onClick:()=>Ve(e),onKeyDown:a,children:[(0,W.jsx)(V,{name:`draggable`,className:`size-3.5 flex-shrink-0 text-muted-foreground/70`}),t,(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:n}),(0,W.jsx)(`span`,{className:`ml-auto flex size-4 flex-shrink-0 items-center justify-center text-muted-foreground`,children:(0,W.jsx)(V,{name:i?`arrow-right-s`:`arrow-down-s`,className:`size-4`})})]}):(0,W.jsxs)(`button`,{type:`button`,className:B(Fe,`w-full text-left cursor-pointer`),onClick:()=>Ve(e),"aria-expanded":!i,children:[t,(0,W.jsx)(`span`,{className:`min-w-0 truncate`,children:n}),(0,W.jsx)(`span`,{className:`ml-auto flex size-4 flex-shrink-0 items-center justify-center text-muted-foreground`,children:(0,W.jsx)(V,{name:i?`arrow-right-s`:`arrow-down-s`,className:`size-4`})})]})},Ue=(e,t,n)=>(0,W.jsxs)(W.Fragment,{children:[t>0?(0,W.jsx)(`div`,{className:`h-px bg-border/40 my-1`}):null,He(`provider:${e.id}`,(0,W.jsx)(cn,{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,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{className:`p-1.5 pb-1`,children:(0,W.jsxs)(`div`,{className:`relative`,children:[(0,W.jsx)(V,{name:`search`,className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,W.jsx)(oe,{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,W.jsx)(Me,{ref:te,outerClassName:g,className:`overlay-scrollbar-target--no-gutter`,style:_,children:(0,W.jsxs)(`div`,{className:`px-1`,children:[f?(0,W.jsxs)(W.Fragment,{children:[(0,W.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,W.jsx)(V,{name:`close`,className:`h-3.5 w-3.5`}),(0,W.jsx)(`span`,{children:s.notSelected}),c?null:(0,W.jsx)(V,{name:`check`,className:`h-4 w-4 text-primary ml-auto`})]}),(0,W.jsx)(`div`,{className:`h-px bg-border/40 my-1`})]}):null,De?null:(0,W.jsx)(`div`,{className:`px-2 py-4 text-center typography-meta text-muted-foreground`,children:s.noResults}),q.length>0?(0,W.jsxs)(`div`,{children:[He(`favorites`,(0,W.jsx)(V,{name:`star-fill`,className:`h-4 w-4 text-primary`}),s.favorites),!Be(`favorites`)&&(Oe?(0,W.jsx)(he,{sensors:ye,collisionDetection:fe,onDragEnd:Re,children:(0,W.jsx)(xe,{items:q.map(e=>`${e.providerID}:${e.modelID}`),strategy:be,children:q.map(e=>{let t=Ie++;return(0,W.jsx)(On,{id:`${e.providerID}:${e.modelID}`,disabled:h,children:n=>Le(e,`fav`,!0,t,n)},`fav-sortable-${e.providerID}-${e.modelID}`)})})}):q.map(e=>Le(e,`fav`,!0,Ie++)))]}):null,Ee.length>0?(0,W.jsxs)(`div`,{children:[q.length>0?(0,W.jsx)(`div`,{className:`h-px bg-border/40 my-1`}):null,He(`recent`,(0,W.jsx)(V,{name:`time`,className:`h-4 w-4`}),s.recent),Be(`recent`)?null:Ee.map(e=>Le(e,`recent`,!0,Ie++))]}):null,(q.length>0||Ee.length>0)&&Y.length>0?(0,W.jsx)(`div`,{className:`h-px bg-border/40 my-1`}):null,ke?(0,W.jsx)(he,{sensors:H,collisionDetection:fe,onDragEnd:ze,children:(0,W.jsx)(xe,{items:Y.map(e=>e.id),strategy:be,children:Y.map((e,t)=>(0,W.jsx)(kn,{id:e.id,disabled:h,children:n=>Ue(e,t,n)},e.id))})}):Y.map((e,t)=>(0,W.jsx)(`div`,{children:Ue(e,t)},e.id))]})}),(0,W.jsx)(`div`,{className:`px-3 pt-1 pb-1.5 border-t border-border/40 typography-micro text-muted-foreground`,children:(0,W.jsx)(Dn,{store:z,flatModelList:X,footerContent:F,fallback:s.keyboardHint})})]})};function Nn(){}function Pn(e){let{key:t,icon:n,label:r}=e;return(0,W.jsx)(gn,{iconName:n,label:r},t)}var Fn=U.createContext(null),In=e=>e?e.closest(`[data-slot="dialog-content"], [role="dialog"]`):null;function Ln(e){let t=(0,H.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]=U.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,W.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,W.jsx)(Fn.Provider,{value:l,children:f}),t[12]=l,t[13]=f,t[14]=p):p=t[14],p}function Rn(e){let t=(0,H.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,W.jsx)(_,{"data-slot":`select-group`,...n}),t[2]=n,t[3]=r),r}function zn(e){let t=(0,H.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,W.jsx)(d,{"data-slot":`select-value`,...i,children:a}),t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function Bn(e){let t=(0,H.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=U.useContext(Fn),f;t[8]===d?f=t[9]:(f=e=>{if(!d)return;let t=e instanceof HTMLElement?e:null;d.setPortalContainer(In(t))},t[8]=d,t[9]=f);let p=f,m;t[10]!==n||t[11]!==r?(m=n&&U.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=B(`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,W.jsxs)(W.Fragment,{children:[r,(0,W.jsx)(C,{children:(0,W.jsx)(V,{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,W.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 Vn(e){let t=(0,H.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=U.useContext(Fn),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=B(`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=B(`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=B(`p-1`,M),t[21]=M,t[22]=N);let P;t[23]!==r||t[24]!==j||t[25]!==N?(P=(0,W.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,W.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,W.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,W.jsx)(m,{container:T,children:I}),t[39]=I,t[40]=T,t[41]=L):L=t[41],L}function Hn(e){let t=(0,H.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=B(`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,W.jsx)(y,{"data-slot":`select-label`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Un(e){let t=(0,H.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=B(`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,W.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,W.jsx)(h,{children:(0,W.jsx)(V,{name:`check`,className:`size-4`})})}),t[6]=o):o=t[6];let s;t[7]===n?s=t[8]:(s=(0,W.jsx)(g,{children:n}),t[7]=n,t[8]=s);let c;return t[9]!==i||t[10]!==a||t[11]!==s?(c=(0,W.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 Wn(e){let t=(0,H.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=B(`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,W.jsx)(l,{"data-slot":`select-separator`,className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var Gn=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`);return t===`/`?`/`:t.replace(/\/+$/,``)};async function Kn(e){let t=Gn(e),n=await ie(t);return{isDirty:!n.isClean,ahead:n.ahead,behind:n.behind,upstream:n.tracking}}var qn=6e4,Jn=500,Yn=1048576,Z=new Map,Xn=new Map,Zn=0,Qn=(e,t)=>e.length+t.length,$n=(e,t)=>{Z.delete(e),Z.set(e,{root:t,resolvedAt:Date.now()});let n=0;for(let[e,t]of Z)n+=Qn(e,t.root);for(;Z.size>Jn||n>Yn&&Z.size>1;){let e=Z.entries().next().value;if(!e)break;n-=Qn(e[0],e[1].root),Z.delete(e[0])}};function er(e){if(Zn+=1,typeof e==`string`&&e){let t=Gn(e);Z.delete(t),Xn.delete(t);return}Z.clear(),Xn.clear()}var tr=async e=>ne(e).catch(()=>e),nr=async e=>{let t=Z.get(e);if(t&&Date.now()-t.resolvedAt<qn)return Z.delete(e),Z.set(e,t),t.root;t&&Z.delete(e);let n=Xn.get(e);if(n)return n;let r=Zn,i=tr(e).then(t=>(Zn===r&&$n(e,t),t)).catch(()=>e).finally(()=>{Xn.get(e)===i&&Xn.delete(e)});return Xn.set(e,i),i};async function rr(e,t){let n=Gn(e);if(!n)return`HEAD`;try{let e=await nr(n).catch(()=>n),r=t?.knownBranch?.trim();if(r&&e===n)return r;let i=await ie(e);return(typeof i.current==`string`?i.current.trim():``)||`HEAD`}catch{return`HEAD`}}var ir=e=>{let t=(e.branch||``).trim(),n=(e.head||``).trim();return t?`branch`:n?`detached`:`unborn`},ar=(e,t)=>({worktreeRoot:t,worktreeStatus:`ready`,headState:ir(e),worktreeSource:`existing`}),Q=e=>{let t=e.replace(/\\/g,`/`);return t===`/`?`/`:t.length>1?t.replace(/\/+$/,``):t},or=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),sr=e=>e.trim().replace(/^refs\/heads\//,``).replace(/^heads\//,``).replace(/\s+/g,`-`).replace(/^\/+|\/+$/g,``),cr=(e,t)=>{let n=Q(e);n&&R.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}:{}})},lr=e=>e?.status===`pending`?`pending`:e?.status===`failed`?`invalid`:`ready`,ur=e=>{let t=Q(e),n=t.split(`/`).filter(Boolean);return n[n.length-1]??t},dr=e=>{let t=[];for(let n of e.setupCommands){let r=n.trim();r&&t.push(M(r,{rootWorktreePath:e.projectDirectory}))}let n=t.filter(Boolean).join(` && `);return n.trim().length>0?n:void 0},fr=(e,t)=>{let n=e.mode===`existing`?`existing`:`new`,r=or(e.worktreeName??e.preferredName??``),i=sr(e.branchName??(n===`new`?e.preferredName:void 0)??``),a=sr(e.existingBranch??e.branchName??``),o=(e.startRef||``).trim(),s=dr({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}:{}}},pr=(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},mr=new Map,hr=new Map,gr=new Map,_r=3e4,vr=e=>`${t()}\u0000${Q(e)}`,yr=(e,t=vr(e))=>gr.get(t)??0,br=e=>{let t=vr(e);gr.set(t,yr(e)+1),mr.delete(t)},xr=async e=>{let t=await nr(e).catch(()=>e),n=Q(e);return(await ae.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=ar(e,n);return{source:`sdk`,name:i||ur(n),path:n,projectDirectory:t,branch:r,label:r||i||ur(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)})},Sr=async(e,n,r)=>{for(;;){let i=yr(e,n),a=await xr(e);if(i===yr(e,n))return r===t()&&mr.set(n,{value:a,at:Date.now()}),a}};async function Cr(e){let n=Q(e.path),r=t(),i=`${r}\u0000${n}`,a=mr.get(i);if(a&&Date.now()-a.at<_r)return a.value;let o=hr.get(i);if(o)return o;let s=Sr(n,i,r).finally(()=>{hr.get(i)===s&&hr.delete(i)});return hr.set(i,s),s}var wr=(e,t)=>{let n=F(e.path),r=n?.status===`pending`?`pending`:n?.status===`failed`?`invalid`:t?.worktreeStatus;return r&&r!==e.worktreeStatus?{...e,worktreeStatus:r}:e},Tr=e=>{let t=new Set([...e].map(Q));if(t.size===0)return;let n=R.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 L.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))&&L.getState().clearAttachment(e)}r.size!==n.size&&R.setState({worktreeMetadata:r})};async function Er(e,t={}){let n=Q(e.path);br(n);let r=await Cr({...e,path:n});if(t.isCurrent&&!t.isCurrent())return{worktrees:r,addedDirectories:[],removedDirectories:[]};let i=r,a=[],o=[];return R.setState(e=>{let t=e.availableWorktreesByProject,s=t.get(n)??[],c=new Map(s.map(e=>[Q(e.path),e])),l=r.map(e=>wr(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()}}),Tr(o),{worktrees:i,addedDirectories:a,removedDirectories:o}}async function Dr(e,t){let n=Q(e.path),r=await nr(n).catch(()=>n),i=fr(t,n),a=await ae.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:lr(a?.bootstrapStatus),headState:s?`branch`:`unborn`,worktreeSource:`created-for-session`};a?.bootstrapStatus?I(l.path,a.bootstrapStatus):P(l.path),N(l.path,{onFailed:()=>cr(l.path,`invalid`),onReady:()=>cr(l.path,`ready`)}),br(n),er();let u=n;return R.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 Or(e,t){let n=e.path,r=fr(t,n);return ae.worktree.validate(n,r)}async function kr(e,t,n){let r=Q(e.path),i=!!n?.deleteRemoteBranch,a=n?.deleteLocalBranch===!0,o=n?.remoteName;if(!(await ae.worktree.remove(r,{directory:t.path,deleteLocalBranch:a}))?.success)throw Error(`Worktree removal failed`);j(t.path),br(Q(e.path)),er();let s=Q(t.path),c=r,l=R.getState().availableWorktreesByProject,u=new Map(l),d=u.get(c)??[];u.set(c,d.filter(e=>Q(e.path)!==s)),Tr([s]),R.setState({availableWorktreesByProject:u,availableWorktrees:R.getState().availableWorktrees.filter(e=>Q(e.path)!==s)});let f=(t.branch||``).replace(/^refs\/heads\//,``).trim();i&&f&&await re(r,{branch:f,remote:o}).catch(()=>void 0)}function Ar(e){let t=(0,H.c)(4),{onResizeStart:n,ariaLabel:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,W.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,W.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,W.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 jr=U.forwardRef((e,t)=>{let n=(0,H.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=U.useRef(null),S=U.useRef(null),[C,w]=U.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=B(`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,W.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=B(`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=B(`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,W.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,W.jsx)(Ar,{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,W.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,W.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,W.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});jr.displayName=`Textarea`;var Mr=200,$=new Map,Nr=[{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`}],Pr=Object.fromEntries(Nr.map(e=>[e.key,e.Icon])),Fr=[{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)`}],Ir=Object.fromEntries(Fr.map(e=>[e.key,e.cssVar])),Lr=(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},Rr=(e,t)=>e?[r()||`same-origin`,e,t.toString()].join(`|`):null,zr=(e,t,n)=>{let r=Lr(t,n);if(!r)return null;let i=Rr(e,r);return i?{cacheKey:i,projectId:e,query:r}:null},Br=()=>{for(;$.size>Mr;){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)}},Vr=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}),Br(),r}).catch(()=>null).finally(()=>{let t=$.get(e.cacheKey);t?.promise===n&&!t.url&&$.delete(e.cacheKey)});return $.set(e.cacheKey,{promise:n}),n},Hr=(e,t)=>{let n=(0,H.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=zr(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]=U.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),Vr(c).then(e=>{t||d(e)}),()=>{t=!0}},p=[c],n[7]=c,n[8]=f,n[9]=p),U.useEffect(f,p),u},Ur=e=>{let t=(0,H.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=Hr(n,r),[p,m]=U.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],U.useEffect(h,_),!f||p){let e;return t[5]===d?e=t[6]:(e=U.createElement(U.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=U.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,Mn as C,rn as D,cn as E,De as M,G as N,Ht as O,zn as S,un as T,Rn as _,Ur as a,Wn as b,Er as c,Or as d,pr as f,Vn as g,Ln as h,Pr as i,ke as j,Bt as k,Cr as l,Kn as m,Ir as n,jr as o,rr as p,Nr as r,Dr as s,Fr as t,kr as u,Un as v,fn as w,Bn as x,Hn as y};
|