@openchambery/web 2.1.6-beta.4 → 2.1.6-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/assets/{AgentAvatar-CIrVQfPv.js → AgentAvatar-Bq0x3CB4.js} +1 -1
  2. package/dist/assets/{AssistantView-D_v2B58U.js → AssistantView-D4k8Z-_-.js} +3 -3
  3. package/dist/assets/{DiagramView-ButyI3RU.js → DiagramView-NLlU9san.js} +1 -1
  4. package/dist/assets/{FadeInOnReveal-De7I8Yr9.js → FadeInOnReveal-xE6S4uOf.js} +1 -1
  5. package/dist/assets/{Icon-DG553vVG.js → Icon-uG6OVJ55.js} +1 -1
  6. package/dist/assets/{ImageLoadingPlaceholder-q319ZCOp.js → ImageLoadingPlaceholder-C6Wg5C84.js} +1 -1
  7. package/dist/assets/{LoadingImage-CJsNGQa7.js → LoadingImage-DGsgPXji.js} +1 -1
  8. package/dist/assets/{MarkdownRenderer-D4C_jDDb.js → MarkdownRenderer-omYT-V2o.js} +2 -2
  9. package/dist/assets/{MarkdownRendererImpl-BfrArnXH.js → MarkdownRendererImpl-jykBJkBt.js} +1 -1
  10. package/dist/assets/{MarkstreamRendererImpl-DYzxZ0fX.js → MarkstreamRendererImpl-Dsev1mCz.js} +1 -1
  11. package/dist/assets/{MobileDetailNavigation-BA3y3Y0I.js → MobileDetailNavigation-CtU7Vwwy.js} +1 -1
  12. package/dist/assets/{MobileShareBridge-CzDrXfJm.js → MobileShareBridge-3t1HF0B2.js} +1 -1
  13. package/dist/assets/{MobileTabPageHeader-DNMIDO6t.js → MobileTabPageHeader-D3_SRhh_.js} +1 -1
  14. package/dist/assets/{MultiRunWindow-C2UHr_vt.js → MultiRunWindow-DKFpsr-I.js} +1 -1
  15. package/dist/assets/{OnboardingScreen-D5ONV7j0.js → OnboardingScreen-5J8UYfpK.js} +1 -1
  16. package/dist/assets/{OverlayScrollbar-DhvS-WyM.js → OverlayScrollbar-DfUTPyw5.js} +1 -1
  17. package/dist/assets/{SettingsView-BLKIEMRa.js → SettingsView-BkgklJla.js} +3 -3
  18. package/dist/assets/{SettingsWindow-D-37o-Kj.js → SettingsWindow-CVa_AxkA.js} +1 -1
  19. package/dist/assets/{TerminalView-DOPVrude.js → TerminalView-jYx7qdQp.js} +1 -1
  20. package/dist/assets/{ToolOutputDialog-B_vCfCE6.js → ToolOutputDialog-C1ilYJNm.js} +1 -1
  21. package/dist/assets/{appThemeRegistry-B34MhfNi.js → appThemeRegistry-DgMiqMEo.js} +1 -1
  22. package/dist/assets/{button-Dcg95USu.js → button-CsMXhErP.js} +1 -1
  23. package/dist/assets/{collapsible-C_FwKIcY.js → collapsible-BtX_begd.js} +1 -1
  24. package/dist/assets/{context-menu-Cd4u8G5_.js → context-menu-Bw39s9Z_.js} +1 -1
  25. package/dist/assets/{diagram-xW_zRY0U.js → diagram-mYVe76Qf.js} +1 -1
  26. package/dist/assets/{dropdown-menu.styles-BdfQzOhk.js → dropdown-menu.styles-D_IF_a03.js} +1 -1
  27. package/dist/assets/es-CmsZ1faR.js +15 -0
  28. package/dist/assets/{fileMentionTouchSelection-DWLcnu1b.js → fileMentionTouchSelection-CX0D5p6c.js} +1 -1
  29. package/dist/assets/fr-B2GXF-Ue.js +13 -0
  30. package/dist/assets/{gitApi-BQjgLtPV.js → gitApi-DV3PvsZX.js} +1 -1
  31. package/dist/assets/{input-DUtgDXvp.js → input-BsPul3GT.js} +1 -1
  32. package/dist/assets/insertionBoundaries-Dbc4ooMQ.js +1 -0
  33. package/dist/assets/ja-1_Xg7dxX.js +15 -0
  34. package/dist/assets/ko-DAxhN5z4.js +15 -0
  35. package/dist/assets/{main-BFUn_d0i.js → main-BLVIU-c3.js} +2 -2
  36. package/dist/assets/{main-CVm2XTRV.js → main-CFCPRzI_.js} +5 -5
  37. package/dist/assets/{markdownHeightCache-B7yFmx1_.js → markdownHeightCache-Pr8PsxpU.js} +1 -1
  38. package/dist/assets/{mcpQueries-D7Ar-evF.js → mcpQueries-ClqC1UPF.js} +1 -1
  39. package/dist/assets/{miniChat-Bt0t3ik9.js → miniChat-CXuRsamJ.js} +2 -2
  40. package/dist/assets/{mobile-DxlY5veL.js → mobile-D2So3pLV.js} +2 -2
  41. package/dist/assets/{multirun-D-67rRvt.js → multirun-BEsZpZwA.js} +1 -1
  42. package/dist/assets/pl-wKtP4U2Y.js +15 -0
  43. package/dist/assets/{platform-B5uQ25kN.js → platform-z2erC6Bs.js} +1 -1
  44. package/dist/assets/{projectMeta-BCvhQw6X.js → projectMeta-B5oNzoLn.js} +1 -1
  45. package/dist/assets/pt-BR-kKiTnPvR.js +15 -0
  46. package/dist/assets/{rasterizePng-l6r-aHny.js → rasterizePng-BJfBaYfr.js} +1 -1
  47. package/dist/assets/renderElectronMiniChatApp-Cz3jK33M.js +2 -0
  48. package/dist/assets/{renderMobileApp-CYg0kVBW.js → renderMobileApp-g2X04N6I.js} +4 -4
  49. package/dist/assets/runtimeConfig-ChG-7Oj4.js +2 -0
  50. package/dist/assets/{runtimeEndpointReset-BQo-aMEW.js → runtimeEndpointReset-Bym_kBom.js} +1 -1
  51. package/dist/assets/sessionChangeSummary-BdA1CAwI.js +2 -0
  52. package/dist/assets/sessionChangeSummary-DiYJ_5oO.css +1 -0
  53. package/dist/assets/{sessionLookup-BoSwCXX8.js → sessionLookup-CnIp-vIm.js} +1 -1
  54. package/dist/assets/{sortable-tabs-strip-U1GuVpbB.js → sortable-tabs-strip-CRakLh3E.js} +1 -1
  55. package/dist/assets/{speechSettingsQueries-FB5PeSqJ.js → speechSettingsQueries-DUSsFC2o.js} +1 -1
  56. package/dist/assets/src-CBUXJkw-.css +2 -0
  57. package/dist/assets/store-BIZ0WqXh.js +15 -0
  58. package/dist/assets/{terminalApi-CmxLzOk9.js → terminalApi-BnjU_lmF.js} +1 -1
  59. package/dist/assets/{textarea-D_6qDthB.js → textarea-C0sYqMBG.js} +1 -1
  60. package/dist/assets/{tooltip-JILdO5Q4.js → tooltip-BjLeu5Rm.js} +1 -1
  61. package/dist/assets/uk-Du0sQBeG.js +15 -0
  62. package/dist/assets/{useAppFontEffects-DgMG-09z.js → useAppFontEffects-CEQWKI_5.js} +53 -53
  63. package/dist/assets/{useDesktopWindowControlsLayout-ClEqhbSr.js → useDesktopWindowControlsLayout-DistjXOu.js} +1 -1
  64. package/dist/assets/{useEffectiveDirectory-BMvG9I6q.js → useEffectiveDirectory-BZMMnK6z.js} +1 -1
  65. package/dist/assets/{useFontPreferences-DRwX2vzI.js → useFontPreferences-B4Cgu3bS.js} +1 -1
  66. package/dist/assets/{useMobileNavigationStore-DdwNbT69.js → useMobileNavigationStore-DMubNKfy.js} +7 -7
  67. package/dist/assets/{useWorkerHighlightedLines-Btpy_7wC.js → useWorkerHighlightedLines-BaJ2ZuGC.js} +1 -1
  68. package/dist/assets/zh-CN-CLZ_Iqof.js +15 -0
  69. package/dist/assets/zh-TW-BNb1FeSs.js +15 -0
  70. package/dist/index.html +5 -5
  71. package/dist/mini-chat.html +5 -5
  72. package/dist/mobile.html +5 -5
  73. package/dist/sw.js +1 -1
  74. package/package.json +1 -1
  75. package/dist/assets/es-B7Pk7Sm2.js +0 -15
  76. package/dist/assets/fr-BcJSt2Bt.js +0 -13
  77. package/dist/assets/insertionBoundaries-vvjY2lRz.js +0 -1
  78. package/dist/assets/ja-ex36lpwC.js +0 -15
  79. package/dist/assets/ko-CgIIQFMh.js +0 -15
  80. package/dist/assets/pl-CbT2Ag4y.js +0 -15
  81. package/dist/assets/pt-BR-BqXoXmx6.js +0 -15
  82. package/dist/assets/renderElectronMiniChatApp-dBaofK6N.js +0 -2
  83. package/dist/assets/runtimeConfig-mMH4XDDl.js +0 -2
  84. package/dist/assets/sessionChangeSummary-9BU9q6ze.js +0 -2
  85. package/dist/assets/sessionChangeSummary-DpXRx1hd.css +0 -1
  86. package/dist/assets/src-Vj-Ag3uU.css +0 -2
  87. package/dist/assets/store-CYW4nz6C.js +0 -15
  88. package/dist/assets/uk-18wal33L.js +0 -15
  89. package/dist/assets/zh-CN-LO8acNQg.js +0 -15
  90. package/dist/assets/zh-TW-yk05f02-.js +0 -15
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/gitApi-BQjgLtPV.js","assets/rolldown-runtime-hePW80VL.js","assets/runtime-switch-3ad3yzM7.js","assets/runtime-auth-C8w0nlKy.js","assets/runtime-fetch-QCWYlAx0.js","assets/persistence-DUPZl7Oy.js","assets/vendor-zustand-o69pgTEK.js","assets/vendor-base-ui-CdzJ6My_.js","assets/useUIStore-pl39iO82.js","assets/vendor-react-BP2cRVqX.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/platform-B5uQ25kN.js","assets/vendor-opencode-client-MF2GBrFx.js","assets/vendor-aparajita-capacitor-secure-storage-xol_6BsB.js","assets/useMobileNavigationStore-DdwNbT69.js","assets/vendor-tanstack-react-query-CdqCAt40.js","assets/vendor-sonner-ZS8XIOVl.js","assets/vendor-reactuses-core-BpfIZ1tg.js","assets/vendor-lodash-es-DfLbG5Af.js","assets/vendor-js-cookie-hSOiFTtX.js","assets/button-Dcg95USu.js","assets/store-CYW4nz6C.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/useAssistantUIStore-Dt0l5AKe.js","assets/vendor-zod-Dzk5kdUU.js","assets/vendor-fuse.js-DB5wDJbI.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Nn as t,Wt as n,r,rn as i,sn as a,t as o}from"./persistence-DUPZl7Oy.js";import{it as s,rt as c}from"./vendor-base-ui-CdzJ6My_.js";import{Ct as l,Nt as u}from"./platform-B5uQ25kN.js";import{n as d}from"./useUIStore-pl39iO82.js";import{n as f,t as p}from"./vendor-react-BP2cRVqX.js";import{o as m}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";/* empty css */import{n as h,s as g}from"./vendor-reactuses-core-BpfIZ1tg.js";import{f as _,m as v,r as y,t as b}from"./button-Dcg95USu.js";import{n as x}from"./store-CYW4nz6C.js";import{Ea as ee,Nt as te,S as ne,ba as S,co as re,d as C,ln as ie,nn as ae,yn as oe}from"./useMobileNavigationStore-DdwNbT69.js";import{n as se}from"./Icon-DG553vVG.js";import{At as ce,Bt as le,Dt as ue,E as w,Et as de,Kt as T,Mt as fe,Nt as pe,Ot as me,T as E,Tt as he,Vt as ge,a as _e,jt as D,kt as O,pt as ve,t as ye,w as be,zt as xe}from"./useAppFontEffects-DgMG-09z.js";import{s as Se}from"./projectMeta-BCvhQw6X.js";import{r as Ce}from"./tooltip-JILdO5Q4.js";import{Dt as we,bt as Te,gt as k}from"./speechSettingsQueries-FB5PeSqJ.js";import{n as Ee}from"./useRuntimeAPIs-Cx8S1HLz.js";import{d as De,y as Oe}from"./insertionBoundaries-vvjY2lRz.js";import{i as ke,n as Ae,r as je,t as Me}from"./useDesktopWindowControlsLayout-ClEqhbSr.js";var Ne=p(),A=f(),j=e(s(),1),M=c(),Pe=e=>{let t=(0,A.c)(3),{mode:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,M.jsx)(ve.Provider,{value:n,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i},Fe=e=>{let t=typeof e==`string`?e.trim():``;if(!t)return``;let n=typeof window<`u`?window.__OPENCHAMBER_HOME__:``;if(n&&t===n)return`~`;if(n&&t.startsWith(`${n}/`))return`~/${t.slice(n.length+1)}`;let r=t.split(`/`).filter(Boolean);return r.length<=3?t:`.../${r.slice(-3).join(`/`)}`},N=e=>{let t=typeof e==`string`?e.trim():``;if(!t)return``;let n=t.replace(/\\/g,`/`);return n===`/`?`/`:n.replace(/\/+$/,``)},P=e=>{let t=(0,A.c)(117),{mode:n}=e,{t:r}=_(),o=C(Le),s=C(Re),c=C(ze),u=l(Be),d=re(Ve),f=re(He),p=S(Ue),m=S(We),h=oe(),g=ie(o??``),v=Ee(),x=Oe(Ge),ee;t[0]===o?ee=t[1]:(ee=e=>o?e.worktreeMetadata.get(o)?.path??``:``,t[0]=o,t[1]=ee);let te=C(ee),ce;t[2]===o?ce=t[3]:(ce=e=>o?e.worktreeMetadata.get(o)?.branch?.trim()??null:null,t[2]=o,t[3]=ce);let le=C(ce),ue;t[4]===o?ue=t[5]:(ue=e=>o?e.getAttachment(o):void 0,t[4]=o,t[5]=ue);let w=ne(ue),de=C(Ke),[T,fe]=j.useState(!1),pe=typeof window<`u`?window.__OPENCHAMBER_MACOS_MAJOR__??0:0,me=Number.isFinite(pe)&&pe>0,{usesFramelessChrome:E,side:he}=Me(),ge=me?pe>=26?`h-12`:pe<=15?`h-14`:``:``,_e;t[6]!==o||t[7]!==h?(_e=o?h.find(e=>e.id===o)??null:null,t[6]=o,t[7]=h,t[8]=_e):_e=t[8];let D=_e,O=D?.worktreeMetadata??null,ve,ye;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(ve=()=>{a()&&i(`desktop_get_window_pinned`).then(e=>{typeof e?.pinned==`boolean`&&fe(e.pinned)})},ye=[],t[9]=ve,t[10]=ye):(ve=t[9],ye=t[10]),j.useEffect(ve,ye);let be;t[11]!==s||t[12]!==n||t[13]!==D?.title||t[14]!==r?(be=D?.title?.trim()||r(s||n===`draft`?`miniChat.header.newSession`:`miniChat.header.session`),t[11]=s,t[12]=n,t[13]=D?.title,t[14]=r,t[15]=be):be=t[15];let xe=be,Se=D?.directory??null,Ce;t[16]===Se?Ce=t[17]:(Ce=N(Se),t[16]=Se,t[17]=Ce);let we=Ce,Te=te||O?.path||w?.cwd||w?.worktreeRoot||``,k;t[18]===Te?k=t[19]:(k=N(Te),t[18]=Te,t[19]=k);let Ne=k,Pe;t[20]===u?Pe=t[21]:(Pe=N(u),t[20]=u,t[21]=Pe);let P=Ne||we||de||Pe,Ie;t[22]===P?Ie=t[23]:(Ie=Fe(P),t[22]=P,t[23]=Ie);let $e=Ie,et;t[24]!==we||t[25]!==Ne?(et=e=>{let t=N(Ne||we||``);if(!t)return null;for(let n of e.availableWorktreesByProject.values()){let e=n.find(e=>N(e.path)===t)?.branch?.trim();if(e)return e}return null},t[24]=we,t[25]=Ne,t[26]=et):et=t[26];let tt=C(et),nt,rt;t[27]!==x||t[28]!==P||t[29]!==v.git?(nt=()=>{P&&x(P,v.git).catch(qe)},rt=[x,P,v.git],t[27]=x,t[28]=P,t[29]=v.git,t[30]=nt,t[31]=rt):(nt=t[30],rt=t[31]),j.useEffect(nt,rt),O?.projectDirectory,w?.worktreeRoot;let it;bb0:{let e=O?.projectDirectory??w?.worktreeRoot??null,n;t[32]===e?n=t[33]:(n=N(e),t[32]=e,t[33]=n);let r=n||P;if(!r){it=null;break bb0}let i;t[34]!==r||t[35]!==d?(i=d.map(Je).filter(e=>e.normalizedPath&&(e.normalizedPath===r||r.startsWith(`${e.normalizedPath}/`))).sort(Ye)[0]??null,t[34]=r,t[35]=d,t[36]=i):i=t[36],it=i}let at=it,ot;bb1:{let e=at??f;if(!e){ot=$e||`OpenChamber`;break bb1}let n;t[37]===e.path?n=t[38]:(n=e.path.split(/[\\/]/).filter(Boolean).at(-1)??e.path,t[37]=e.path,t[38]=n),ot=n}let st=ot,ct=De(P||null),lt;t[39]!==tt||t[40]!==ct||t[41]!==O?.branch||t[42]!==w?.branch||t[43]!==le?(lt=ct||le||O?.branch?.trim()||w?.branch?.trim()||tt,t[39]=tt,t[40]=ct,t[41]=O?.branch,t[42]=w?.branch,t[43]=le,t[44]=lt):lt=t[44];let ut=lt,dt=ut&&ut!==`HEAD`?ut:null,ft;t[45]===p?ft=t[46]:(ft=p(),t[45]=p,t[46]=ft);let pt=ft,mt;bb2:{for(let e=g.length-1;e>=0;--e){let t=g[e];if(t.role!==`assistant`||typeof t.providerID!=`string`||typeof t.modelID!=`string`)continue;let n=m.find(e=>e.id===t.providerID)?.models.find(e=>e.id===t.modelID);if(n){mt=n;break bb2}}mt=void 0}let ht=mt,gt=pt?.limit?pt:ht,F=gt&&typeof gt.limit==`object`&&gt.limit!==null?gt.limit:null,_t=F&&typeof F.context==`number`?F.context:0,vt=F&&typeof F.output==`number`?F.output:0,I=ae(o??``,_t,vt),[L,yt]=j.useState(null),bt;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(bt={WebkitAppRegion:`drag`},t[47]=bt):bt=t[47];let xt=bt,St;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(St={WebkitAppRegion:`no-drag`},t[48]=St):St=t[48];let Ct=St,wt,Tt;t[49]!==I||t[50]!==o?(wt=()=>{if(!o){yt(Xe);return}if(I){yt(e=>e&&e.pending===I.pending&&e.totalTokens===I.totalTokens&&e.percentage===I.percentage&&e.contextLimit===I.contextLimit&&(e.outputLimit??0)===(I.outputLimit??0)&&(e.normalizedOutput??0)===(I.normalizedOutput??0)&&e.thresholdLimit===I.thresholdLimit&&e.lastMessageId===I.lastMessageId?e:I);return}yt(Ze)},Tt=[I,o],t[49]=I,t[50]=o,t[51]=wt,t[52]=Tt):(wt=t[51],Tt=t[52]),j.useEffect(wt,Tt);let Et=L&&L.contextLimit>0?Math.min(999,L.totalTokens/L.contextLimit*100):0,Dt;t[53]===T?Dt=t[54]:(Dt=()=>{let e=!T;fe(e),i(`desktop_set_window_pinned`,{pinned:e}).catch(()=>{fe(!e)})},t[53]=T,t[54]=Dt);let Ot=Dt,kt;t[55]!==u||t[56]!==o||t[57]!==c||t[58]!==P||t[59]!==D?(kt=()=>{let e=o?{sessionId:o,directory:D?.directory??u??``}:{mode:`draft`,directory:P||u||``,projectId:c};i(`desktop_focus_main_window`,e).then(Qe)},t[55]=u,t[56]=o,t[57]=c,t[58]=P,t[59]=D,t[60]=kt):kt=t[60];let At=kt,jt=E?`h-12`:ge||`min-h-14`,R;t[61]===jt?R=t[62]:(R=y(`flex items-center gap-3 bg-background pr-3`,me?`pl-[5.5rem]`:`pl-3`,jt),t[61]=jt,t[62]=R);let z;t[63]!==E||t[64]!==he?(z=E&&he===`left`?(0,M.jsx)(je,{visible:!0,position:`left`}):null,t[63]=E,t[64]=he,t[65]=z):z=t[65];let B;t[66]===r?B=t[67]:(B=r(`sessions.switcher.openAria`),t[66]=r,t[67]=B);let V;t[68]===xe?V=t[69]:(V=(0,M.jsx)(`span`,{className:`truncate typography-ui-label text-[14px] font-normal leading-tight text-foreground max-w-full`,children:xe}),t[68]=xe,t[69]=V);let H;t[70]===st?H=t[71]:(H=(0,M.jsx)(`span`,{className:`truncate`,children:st}),t[70]=st,t[71]=H);let U;t[72]===dt?U=t[73]:(U=dt?(0,M.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-0.5`,children:[(0,M.jsx)(se,{name:`git-branch`,className:`h-3 w-3 flex-shrink-0 text-muted-foreground/70`}),(0,M.jsx)(`span`,{className:`truncate`,children:dt})]}):null,t[72]=dt,t[73]=U);let W;t[74]!==H||t[75]!==U?(W=(0,M.jsxs)(`span`,{className:`flex min-w-0 max-w-full items-center gap-1.5 truncate typography-micro text-[10.5px] font-normal leading-tight text-muted-foreground/75`,children:[H,U]}),t[74]=H,t[75]=U,t[76]=W):W=t[76];let G;t[77]!==B||t[78]!==V||t[79]!==W?(G=(0,M.jsx)(Ae,{children:(0,M.jsxs)(`button`,{type:`button`,"aria-label":B,style:Ct,className:`flex min-w-0 max-w-full flex-col items-start rounded-md px-1 py-0.5 text-left transition-colors hover:bg-interactive-hover/60 focus-visible:outline-none focus-visible:bg-interactive-hover/60`,children:[V,W]})}),t[77]=B,t[78]=V,t[79]=W,t[80]=G):G=t[80];let Mt;t[81]===Symbol.for(`react.memo_cache_sentinel`)?(Mt=(0,M.jsx)(`div`,{className:`min-w-0 flex-1`}),t[81]=Mt):Mt=t[81];let K;t[82]!==Et||t[83]!==L?(K=L?(0,M.jsx)(ke,{pending:L.pending,totalTokens:L.totalTokens,percentage:Et,colorPercentage:L.percentage,contextLimit:L.contextLimit,outputLimit:L.outputLimit??0,className:`h-9 shrink-0 pl-1 pr-1 typography-ui-label`,valueClassName:`font-semibold leading-none`,hideIcon:!0,showPercentIcon:!0,percentIconClassName:`h-4.5 w-4.5`}):null,t[82]=Et,t[83]=L,t[84]=K):K=t[84];let q;t[85]!==T||t[86]!==r?(q=r(T?`miniChat.actions.unpinAria`:`miniChat.actions.pinAria`),t[85]=T,t[86]=r,t[87]=q):q=t[87];let J;t[88]!==T||t[89]!==r?(J=r(T?`miniChat.actions.unpin`:`miniChat.actions.pin`),t[88]=T,t[89]=r,t[90]=J):J=t[90];let Y;t[91]===T?Y=t[92]:(Y=T?(0,M.jsx)(se,{name:`pushpin-2-fill`,className:`h-4 w-4`}):(0,M.jsx)(se,{name:`pushpin-2`,className:`h-4 w-4`}),t[91]=T,t[92]=Y);let X;t[93]!==Ot||t[94]!==q||t[95]!==J||t[96]!==Y?(X=(0,M.jsx)(b,{type:`button`,variant:`ghost`,size:`icon`,onClick:Ot,"aria-label":q,title:J,style:Ct,children:Y}),t[93]=Ot,t[94]=q,t[95]=J,t[96]=Y,t[97]=X):X=t[97];let Z;t[98]===r?Z=t[99]:(Z=r(`miniChat.actions.openMainAria`),t[98]=r,t[99]=Z);let Q;t[100]===r?Q=t[101]:(Q=r(`miniChat.actions.openMain`),t[100]=r,t[101]=Q);let Nt;t[102]===Symbol.for(`react.memo_cache_sentinel`)?(Nt=(0,M.jsx)(se,{name:`external-link`,className:`h-4 w-4`}),t[102]=Nt):Nt=t[102];let $;t[103]!==At||t[104]!==Z||t[105]!==Q?($=(0,M.jsx)(b,{type:`button`,variant:`ghost`,size:`icon`,onClick:At,"aria-label":Z,title:Q,style:Ct,children:Nt}),t[103]=At,t[104]=Z,t[105]=Q,t[106]=$):$=t[106];let Pt=E&&he===`right`,Ft;t[107]===Pt?Ft=t[108]:(Ft=(0,M.jsx)(je,{visible:Pt,position:`right`}),t[107]=Pt,t[108]=Ft);let It;return t[109]!==R||t[110]!==z||t[111]!==G||t[112]!==K||t[113]!==X||t[114]!==$||t[115]!==Ft?(It=(0,M.jsxs)(`header`,{className:R,style:xt,children:[z,G,Mt,K,X,$,Ft]}),t[109]=R,t[110]=z,t[111]=G,t[112]=K,t[113]=X,t[114]=$,t[115]=Ft,t[116]=It):It=t[116],It},Ie=e=>{let t=(0,A.c)(9),{mode:n,autoOpenDraft:r,unavailable:i}=e,a=r!==void 0&&r,o=i!==void 0&&i,{t:s}=_(),c;t[0]===n?c=t[1]:(c=(0,M.jsx)(P,{mode:n}),t[0]=n,t[1]=c);let l;t[2]!==a||t[3]!==s||t[4]!==o?(l=(0,M.jsx)(`main`,{className:`min-h-0 flex-1`,children:o?(0,M.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-center typography-ui-label text-muted-foreground`,children:(0,M.jsxs)(`div`,{className:`max-w-sm rounded-lg border border-[var(--interactive-border)] bg-[var(--surface-elevated)] px-4 py-3`,children:[(0,M.jsx)(`div`,{className:`font-medium text-foreground`,children:s(`miniChat.unavailable.title`)}),(0,M.jsx)(`div`,{className:`mt-1 typography-small text-muted-foreground`,children:s(`miniChat.unavailable.description`)})]})}):(0,M.jsx)(Pe,{mode:`mini-chat`,children:(0,M.jsx)(w,{autoOpenDraft:a})})}),t[2]=a,t[3]=s,t[4]=o,t[5]=l):l=t[5];let u;return t[6]!==c||t[7]!==l?(u=(0,M.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background text-foreground`,children:[c,l]}),t[6]=c,t[7]=l,t[8]=u):u=t[8],u};function Le(e){return e.currentSessionId}function Re(e){return!!e.newSessionDraft?.open}function ze(e){return e.newSessionDraft?.selectedProjectId??null}function Be(e){return e.currentDirectory}function Ve(e){return e.projects}function He(e){return e.getActiveProject()}function Ue(e){return e.getCurrentModel}function We(e){return e.providers}function Ge(e){return e.ensureStatus}function Ke(e){return e.newSessionDraft?.open?N(e.newSessionDraft.bootstrapPendingDirectory??e.newSessionDraft.directoryOverride??``):``}function qe(){}function Je(e){return{...e,normalizedPath:N(e.path)}}function Ye(e,t){return t.path.length-e.path.length}function Xe(e){return e===null?e:null}function Ze(e){return e===null?e:null}function Qe(e){return e?.focused===!0?i(`desktop_close_current_window`):null}var $e=()=>{document.querySelector(`textarea[data-chat-input="true"]`)?.focus()},et=()=>{let e=d(e=>e.shortcutOverrides),t=l(e=>e.currentDirectory),r=re(e=>e.getActiveProject()),a=C(e=>e.openNewSessionDraft);j.useEffect(()=>{let o=t=>Te(t,e),s=e=>{if(k(e,o(`focus_input`))){e.preventDefault(),$e();return}if(n()&&k(e,o(`close_context_panel_tab`))){e.preventDefault(),i(`desktop_close_current_window`).catch(e=>{console.warn(`[mini-chat-shortcuts] failed to close current window`,e)});return}if(n()&&k(e,o(`new_mini_chat`))){e.preventDefault(),i(`desktop_open_draft_mini_chat_window`,{directory:t||r?.path||``,projectId:r?.id??null})?.catch(e=>{console.warn(`[mini-chat-shortcuts] failed to open draft mini chat window`,e)});return}if(k(e,o(`new_chat`))){e.preventDefault(),a({selectedProjectId:r?.id??null,directoryOverride:t||r?.path||null,preserveDirectoryOverride:!!(t||r?.path)}),$e();return}if(k(e,o(`open_model_selector`))){e.preventDefault();let{isModelSelectorOpen:t,setModelSelectorOpen:n}=d.getState();n(!t,{instant:!0});return}if(k(e,o(`cycle_thinking_variant`))){let t=S.getState();if(t.getCurrentModelVariants().length===0)return;e.preventDefault(),t.cycleCurrentVariant();let n=S.getState().currentVariant,r=C.getState().currentSessionId,i=S.getState().currentAgentName,a=S.getState().currentProviderId,o=S.getState().currentModelId;r&&i&&a&&o&&ee.getState().saveAgentModelVariantForSession(r,i,a,o,n),i&&a&&o&&S.getState().saveAgentModelSelection(i,a,o,n);return}let s=k(e,o(`cycle_favorite_model_forward`)),c=k(e,o(`cycle_favorite_model_backward`));if(s||c){let{favoriteModels:t,addRecentModel:n}=d.getState();if(t.length===0)return;e.preventDefault();let{currentProviderId:r,currentModelId:i,providers:a,setProvider:o,setModel:c,setCurrentVariant:l}=S.getState(),u=t[(t.findIndex(e=>e.providerID===r&&e.modelID===i)+(s?1:-1)+t.length)%t.length];o(u.providerID),c(u.modelID);let f=a.find(e=>e.id===u.providerID)?.models?.find(e=>e.id===u.modelID),p=f?.variants?Object.keys(f.variants):[],m=u.variant!==void 0&&p.includes(u.variant)?u.variant:void 0;l(m),n(u.providerID,u.modelID,m)}};return window.addEventListener(`keydown`,s),()=>window.removeEventListener(`keydown`,s)},[r?.id,r?.path,t,a,e])},tt=`openchamber:mini-chat-presence`,nt=()=>{let e=typeof window<`u`?new URLSearchParams(window.location.search):new URLSearchParams;return{mode:e.get(`mode`)===`session`?`session`:`draft`,sessionId:e.get(`sessionId`)?.trim()||null,directory:e.get(`directory`)?.trim()||null,projectId:e.get(`projectId`)?.trim()||null}},rt=({config:e})=>{let t=oe(),n=l(e=>e.currentDirectory),r=l(e=>e.setDirectory),i=re(e=>e.projects),a=C(e=>e.currentSessionId),o=C(e=>!!e.newSessionDraft?.open),s=C(e=>e.newSessionDraft?.open?e.newSessionDraft.bootstrapPendingDirectory??e.newSessionDraft.directoryOverride??``:``),c=C(e=>e.setCurrentSession),u=C(e=>e.openNewSessionDraft),d=S(e=>e.initializeApp),f=S(e=>e.isInitialized),p=he();j.useEffect(()=>{d()},[d]),j.useEffect(()=>{if(f)return;let e=!0,t=0,n=window.setInterval(()=>{if(e){if(t+=1,t>10){window.clearInterval(n);return}S.getState().isInitialized||S.getState().initializeApp()}},1e3);return()=>{e=!1,window.clearInterval(n)}},[f]);let _=j.useRef(!1);j.useEffect(()=>{if(!_.current&&e.mode===`session`&&e.directory){if(n===e.directory){_.current=!0;return}r(e.directory,{showOverlay:!1}),_.current=!0}},[e.directory,e.mode,n,r]),j.useEffect(()=>{e.mode!==`draft`||!o||a||!s||n===s||r(s,{showOverlay:!1})},[e.mode,n,a,s,o,r]),me({enabled:!0,source:`electronMiniChat:recovery`});let v=j.useRef(!1);j.useEffect(()=>{if(v.current||e.mode!==`session`||!e.sessionId)return;if(a===e.sessionId){v.current=!0;return}if(a){v.current=!0;return}let n=t.find(t=>t.id===e.sessionId);if(!n){p.ensureSessionRenderable(e.sessionId);return}let r=n.directory??e.directory;c(e.sessionId,r),v.current=!0},[e,a,t,c,p]);let y=g(t),b=h(e=>{let t=e.detail,n=typeof t?.sessionId==`string`?t.sessionId.trim():``;if(!n||C.getState().currentSessionId===n)return;let r=typeof t?.directory==`string`&&t.directory.trim().length>0?t.directory.trim():y.current.find(e=>e.id===n)?.directory??null;p.ensureSessionRenderable(n),c(n,r),v.current=!0});j.useEffect(()=>(window.addEventListener(`openchamber:open-session`,b),()=>window.removeEventListener(`openchamber:open-session`,b)),[b]),j.useEffect(()=>{e.mode!==`draft`||o||a||u({selectedProjectId:e.projectId,directoryOverride:e.directory,preserveDirectoryOverride:!!e.directory})},[e,a,o,u]),j.useEffect(()=>{if(i.length===0)return;let e=!1;return(async()=>{await Promise.all(i.map(async t=>{let n=t.path.replace(/\\/g,`/`).replace(/\/+$/,``);if(n)try{if(!(Oe.getState().directories.get(n)?.isGitRepo??await m(()=>import(`./gitApi-BQjgLtPV.js`).then(e=>e.S).then(e=>e.checkIsGitRepository(n)),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])))||e)return;await Se({id:t.id,path:n},{isCurrent:()=>!e})}catch{}}))})(),()=>{e=!0}},[i]);let x=j.useRef(!1);return j.useEffect(()=>{if(x.current||!f)return;let t=()=>{if(x.current)return;x.current=!0;let e=typeof document<`u`?document.getElementById(`initial-loading`):null;e&&(e.classList.add(`fade-out`),window.setTimeout(()=>e.remove(),300))},n=e.mode===`session`?a===e.sessionId:o,r=window.setTimeout(t,n?100:1500);return()=>window.clearTimeout(r)},[f,e.mode,e.sessionId,a,o]),null},it=()=>{let e=(0,A.c)(4),t=C(ft),n=l(pt),r,i;return e[0]!==n||e[1]!==t?(r=()=>{if(!t||!n||typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(tt),r=r=>{e.postMessage({type:`mini-chat-session-presence`,sessionId:t,directory:n,viewed:r})};r(!0);let i=window.setInterval(()=>r(!0),5e3),a=()=>r(!1);return window.addEventListener(`beforeunload`,a),()=>{window.clearInterval(i),window.removeEventListener(`beforeunload`,a),r(!1),e.close()}},i=[n,t],e[0]=n,e[1]=t,e[2]=r,e[3]=i):(r=e[2],i=e[3]),j.useEffect(r,i),null},at=e=>{let t=(0,A.c)(6),n=oe(),r=C(mt),[i,a]=j.useState(!1),o,s;return t[0]!==e.mode||t[1]!==e.sessionId||t[2]!==r||t[3]!==n?(o=()=>{if(e.mode!==`session`||!e.sessionId||r===e.sessionId){a(!1);return}if(n.some(t=>t.id===e.sessionId)){a(!1);return}let t=window.setTimeout(()=>a(!0),5e3);return()=>window.clearTimeout(t)},s=[e.mode,e.sessionId,r,n],t[0]=e.mode,t[1]=e.sessionId,t[2]=r,t[3]=n,t[4]=o,t[5]=s):(o=t[4],s=t[5]),j.useEffect(o,s),i};function ot(e){let n=(0,A.c)(16),{apis:r}=e,i;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=nt(),n[0]=i):i=n[0];let a=i,o=l(ut),s=C(lt),c=C(ct),d,f;n[1]===o?(d=n[2],f=n[3]):(d=()=>{u.setDirectory(o||a.directory||void 0)},f=[a.directory,o],n[1]=o,n[2]=d,n[3]=f),j.useEffect(d,f);let p,m;n[4]===r?(p=n[5],m=n[6]):(p=()=>(t(r),st),m=[r],n[4]=r,n[5]=p,n[6]=m),j.useEffect(p,m),ye(),et();let h;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(h={enabled:!0},n[7]=h):h=n[7],E(h),be();let g;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=u.getSdkClient(),n[8]=g):g=n[8];let _=o||a.directory||``,v=!(c&&s===null),y;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,M.jsx)(Ce,{delayDuration:300,skipDelayDuration:150,children:(0,M.jsxs)(`div`,{className:`h-full text-foreground bg-background`,children:[(0,M.jsx)(dt,{config:a}),(0,M.jsx)(de,{})]})}),n[9]=y):y=n[9];let b;n[10]===r?b=n[11]:(b=(0,M.jsx)(ue,{apis:r,children:y}),n[10]=r,n[11]=b);let x;return n[12]!==b||n[13]!==_||n[14]!==v?(x=(0,M.jsx)(we,{children:(0,M.jsx)(te,{sdk:g,directory:_,bootstrapDirectory:v,children:b})}),n[12]=b,n[13]=_,n[14]=v,n[15]=x):x=n[15],x}function st(){return t(null)}function ct(e){return!!e.newSessionDraft?.open}function lt(e){return e.currentSessionId}function ut(e){return e.currentDirectory}var dt=e=>{let t=(0,A.c)(11),{config:n}=e,r=at(n),i;t[0]===n?i=t[1]:(i=(0,M.jsx)(rt,{config:n}),t[0]=n,t[1]=i);let a,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,M.jsx)(it,{}),o=(0,M.jsx)(_e,{embeddedBackgroundWorkEnabled:!0}),t[2]=a,t[3]=o):(a=t[2],o=t[3]);let s=n.mode===`draft`,c;t[4]!==n.mode||t[5]!==r||t[6]!==s?(c=(0,M.jsx)(Ie,{mode:n.mode,autoOpenDraft:s,unavailable:r}),t[4]=n.mode,t[5]=r,t[6]=s,t[7]=c):c=t[7];let l;return t[8]!==i||t[9]!==c?(l=(0,M.jsxs)(M.Fragment,{children:[i,a,o,c]}),t[8]=i,t[9]=c,t[10]=l):l=t[10],l};function ft(e){return e.currentSessionId}function pt(e){return e.currentDirectory}function mt(e){return e.currentSessionId}var ht=()=>{x(),o().then(()=>{Promise.all([r(),T()]).catch(e=>{console.error(`[mini-chat-main] settings init failed:`,e)}),fe(),D(),ce()}).catch(e=>{console.error(`[mini-chat-main] appearance init failed:`,e)})};function gt(e){ht();let t=document.getElementById(`root`);if(!t)throw Error(`Root element not found`);(0,Ne.createRoot)(t).render((0,M.jsx)(j.StrictMode,{children:(0,M.jsx)(O,{children:(0,M.jsx)(v,{children:(0,M.jsx)(pe,{children:(0,M.jsx)(xe,{children:(0,M.jsx)(le,{children:(0,M.jsx)(ge,{children:(0,M.jsx)(ot,{apis:e})})})})})})})}))}export{gt as renderElectronMiniChatApp};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-capacitor-app-B5H_XtmE.js","assets/rolldown-runtime-hePW80VL.js","assets/vendor-aparajita-capacitor-secure-storage-xol_6BsB.js"])))=>i.map(i=>d[i]);
2
- import{f as e,g as t,h as n,l as r,p as i}from"./runtime-auth-C8w0nlKy.js";import{a,d as o,f as s,p as c,u as l}from"./runtime-switch-3ad3yzM7.js";import{n as u,t as d}from"./runtime-fetch-QCWYlAx0.js";import{st as f}from"./persistence-DUPZl7Oy.js";import{t as ee}from"./desktopRelayRestore-FWm2fXr6.js";import{$ as te,A as ne,B as re,Ct as ie,D as ae,E as oe,F as se,H as ce,I as le,J as ue,L as de,M as fe,N as pe,P as me,Q as he,R as ge,S as _e,T as ve,U as ye,V as be,W as xe,X as Se,Y as p,Z as Ce,_ as we,_t as Te,a as Ee,at as De,b as Oe,bt as ke,c as Ae,ct as je,d as Me,dt as Ne,et as Pe,f as Fe,ft as Ie,g as Le,gt as Re,h as ze,ht as Be,i as Ve,j as He,k as Ue,l as We,lt as Ge,m as Ke,mt as qe,n as m,nt as Je,o as Ye,ot as Xe,p as Ze,pt as Qe,q as $e,s as et,st as tt,t as nt,tt as rt,u as it,ut as at,v as h,vt as ot,x as g,y as st,yt as _}from"./platform-B5uQ25kN.js";import{n as v,o as y}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{a as ct,c as lt,l as ut,n as dt,r as ft,s as pt,t as mt}from"./terminalApi-CmxLzOk9.js";import{t as b}from"./types-BuiqMmh_.js";import{n as x,t as S}from"./capgoAdapter-KNLHDj7G.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ht=e=>{let t=e?.retry;return{maxRetries:t?.maxRetries??3,initialRetryDelay:t?.initialDelayMs??1e3,maxRetryDelay:t?.maxDelayMs??8e3,connectionTimeout:e?.connectionTimeoutMs??1e4}},gt=()=>({async createSession(e){return ft(e)},connect(e,t,n){let r=dt(e,t.onEvent,t.onError,ht(n));return{close:()=>r()}},async sendInput(e,t){await ut(e,t)},async resize(e){await pt(e.sessionId,e.cols,e.rows)},async close(e){await mt(e)},async restartSession(e,t){return lt(e,{cwd:t.cwd??``,cols:t.cols,rows:t.rows})},async forceKill(e){await ct(e)}}),_t=()=>({checkIsGitRepository:Ae,getGitStatus:de,getGitDiff:pe,getGitFileDiff:me,revertGitFile:Xe,stageGitFile:Ge,stageGitFiles:at,unstageGitFile:Be,unstageGitFiles:Re,stageGitHunk:Ne,unstageGitHunk:Te,revertGitHunk:tt,isLinkedWorktree:$e,getGitBranches:fe,deleteGitBranch:st,deleteRemoteBranch:_e,removeRemote:Pe,generateCommitMessage:oe,generatePullRequestDescription:ae,listGitWorktrees:p,validateGitWorktree:_,createGitWorktree:h,deleteGitWorktree:g,validateWorktreeDirectory:ke,canonicalizeWorktreeState:et,createGitCommit(e,t,n){return Le(e,t,n)},gitPush:ye,gitPull:ce,gitFetch:be,listGitStashes:ue,countGitStashFiles:Ke,stashGitChanges:Qe,applyGitStash:Ye,popGitStash:Ce,dropGitStash:ve,checkoutBranch:We,createBranch:ze,renameBranch:rt,getGitLog(e,t){return le(e,t)},getCommitFiles:Ue,getCurrentGitIdentity:He,hasLocalIdentity:xe,setGitIdentity:je,getGitIdentities:se,createGitIdentity:we,updateGitIdentity:ot,deleteGitIdentity:Oe,getRemotes:re,rebase:te,abortRebase:Ee,continueRebase:Ze,merge:Se,abortMerge:Ve,continueMerge:Fe,checkoutCommit:it,cherryPick:Me,revertCommit:De,resetToCommit:Je,stash:Ie,stashPop:qe,getConflictDetails:ne,worktree:{list:p,validate:_,bootstrapStatus:ge,preview:he,create:h,remove:g}}),C=e=>e.replace(/\\/g,`/`),vt=(e,t)=>({directory:C(t?.directory||t?.path||e),entries:(Array.isArray(t?.entries)?t.entries:[]).filter(e=>!!(e&&typeof e.name==`string`&&typeof e.path==`string`)).map(e=>({name:e.name,path:C(e.path),isDirectory:!!e.isDirectory}))}),w=(e,t)=>{let n=t||e?.();return n?{"x-opencode-directory":n}:void 0},yt=({getDirectory:e})=>({async listDirectory(t,n){let r=C(t),i=new URLSearchParams;r&&i.set(`path`,r),n?.respectGitignore&&i.set(`respectGitignore`,`true`);let a=await u(`/api/fs/list`,{query:i,headers:w(e)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to list directory`)}return vt(r,await a.json())},async search(t){let n=new URLSearchParams,r=C(t.directory);r&&n.set(`directory`,r),n.set(`query`,t.query),n.set(`dirs`,`false`),n.set(`type`,`file`),typeof t.maxResults==`number`&&Number.isFinite(t.maxResults)&&n.set(`limit`,String(t.maxResults));let i=await u(`/api/find/file`,{query:n,headers:w(e)});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to search files`)}let a=await i.json();return(Array.isArray(a)?a:[]).map(e=>({path:C(`${r}/${e}`),preview:[C(e)]}))},async createDirectory(t){let n=C(t),r=await u(`/api/fs/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to create directory`)}let i=await r.json();return{success:!!i?.success,path:typeof i?.path==`string`?C(i.path):n}},async statFile(t,n){let r=C(t),i=new URLSearchParams({path:r});n?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant);let a=await u(`/api/fs/stat`,{query:i,headers:w(e,n?.directory)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to stat file`)}let o=await a.json().catch(()=>({}));return{path:typeof o.path==`string`?C(o.path):r,isFile:!!o.isFile,size:typeof o.size==`number`?o.size:0,mtimeMs:typeof o.mtimeMs==`number`?o.mtimeMs:void 0,isBinary:typeof o.isBinary==`boolean`?o.isBinary:void 0}},async readFile(t,n){let r=C(t),i=new URLSearchParams({path:r});n?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant),n?.optional&&i.set(`optional`,`true`);let a=await u(`/api/fs/read`,{query:i,cache:n?.optional?`no-store`:`default`,headers:w(e,n?.directory)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to read file`)}let o=await a.text();if(n?.optional){let e=a.headers.get(`x-openchamber-file-exists`);if(e!==`true`&&e!==`false`)throw Error(`Optional file read requires an existence response header`);return{content:o,path:r,exists:e===`true`}}return{content:o,path:r,exists:!0}},async writeFile(t,n){let r=C(t),i=await u(`/api/fs/write`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:r,content:n})});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to write file`)}let a=await i.json().catch(()=>({}));return{success:!!a.success,path:typeof a.path==`string`?C(a.path):r}},async delete(t){let n=C(t),r=await u(`/api/fs/delete`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to delete file`)}return{success:!!(await r.json().catch(()=>({}))).success}},async rename(t,n){let r=await u(`/api/fs/rename`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({oldPath:t,newPath:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to rename file`)}let i=await r.json().catch(()=>({}));return{success:!!i.success,path:typeof i.path==`string`?C(i.path):n}},async revealPath(t){let n=await u(`/api/fs/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:C(t)})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to reveal path`)}return{success:!!(await n.json().catch(()=>({}))).success}},async downloadFile(t){let n=C(t),r=await u(`/api/fs/raw`,{query:{path:n,download:!0},headers:w(e)});if(!r.ok)throw Error(`Download failed (${r.status})`);let i=await r.blob(),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=n.split(`/`).pop()||`file`,document.body.appendChild(o),o.click(),document.body.removeChild(o),setTimeout(()=>URL.revokeObjectURL(a),100)}}),T=`/api/config/settings`,bt=`/api/config/reload`,E=e=>!e||typeof e!=`object`?{}:e,xt=()=>({async load(){let e=await u(T,{method:`GET`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(`Failed to load settings: ${e.statusText}`);return{settings:E(await e.json().catch(()=>({}))),source:`web`}},async save(e){let t=await u(T,{method:`PUT`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to save settings`)}return E(await t.json().catch(()=>({})))},async restartOpenCode(){let e=await u(bt,{method:`POST`});if(!e.ok){let t=await e.json().catch(()=>({error:e.statusText}));throw Error(t.error||`Failed to restart OpenCode`)}return{restarted:!0}}}),St=()=>({async requestDirectoryAccess(e){return{success:!0,path:e.path}},async startAccessingDirectory(e){return{success:!0}},async stopAccessingDirectory(e){return{success:!0}}}),Ct=1500,D=5e3,wt=`openchamber-notification-claim:`,O=new Map,Tt=()=>typeof document>`u`||document.visibilityState===`visible`&&document.hasFocus(),Et=e=>(typeof e?.tag==`string`?e.tag.trim():``)||[e?.sessionId,e?.kind,e?.title,e?.body].filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim()).join(`|`),Dt=e=>{for(let[t,n]of O)e-n>D&&O.delete(t)},Ot=e=>{let t=Et(e);if(!t)return!0;let n=Date.now();if(Dt(n),n-(O.get(t)??0)<D)return!1;try{if(typeof window<`u`&&window.localStorage){let e=`${wt}${t}`,r=Number(window.localStorage.getItem(e)??`0`);if(Number.isFinite(r)&&n-r<D)return O.set(t,r),!1;Number.isFinite(r)&&r>0&&window.localStorage.removeItem(e),window.localStorage.setItem(e,String(n))}}catch{}return O.set(t,n),!0},k=async()=>{if(typeof navigator>`u`||!(`serviceWorker`in navigator))return null;let e=null;try{e=await navigator.serviceWorker.getRegistration()??null}catch{e=null}if(e?.active)return e;if(!e)return null;try{return await Promise.race([navigator.serviceWorker.ready,new Promise(e=>{setTimeout(()=>e(null),Ct)})])??e}catch{return e}},kt=async e=>{let t=await k();if(!t||typeof t.showNotification!=`function`)return!1;try{return await t.showNotification(e?.title??`OpenChamber`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification via service worker`,e),!1}},At=async()=>{let e=await k();if(!e||!(`pushManager`in e)||!e.pushManager)return!1;try{return!!await e.pushManager.getSubscription()}catch{return!1}},jt=async e=>{if(e?.requireHidden&&typeof document<`u`&&document.hasFocus())return!0;if(typeof Notification>`u`)return!1;if(Notification.permission==="default"&&await Notification.requestPermission()!==`granted`||Notification.permission!==`granted`)return console.warn(`Notification permission not granted`),!1;if(!Tt()&&await At()||!Ot(e))return!0;try{return await kt(e)||new Notification(e?.title??`OpenChamber`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification`,e),!1}},Mt=async e=>{if(typeof window>`u`)return!1;let t=window.__OPENCHAMBER_DESKTOP__;if(!t?.invoke)return!1;try{return await t.invoke(`desktop_notify`,{payload:{title:e?.title,body:e?.body,tag:e?.tag,kind:e?.kind,sessionId:e?.sessionId,directory:e?.directory,requireHidden:e?.requireHidden}}),!0}catch(e){return console.warn(`Failed to send native notification (desktop)`,e),!1}},Nt=()=>({async notifyAgentCompletion(e){return await Mt(e)||await jt(e)},canNotify:()=>typeof window<`u`&&window.__OPENCHAMBER_DESKTOP__?.invoke?!0:typeof Notification<`u`&&Notification.permission===`granted`}),Pt=()=>({async getAvailableTools(){let e=await u(`/api/experimental/tool/ids`);if(!e.ok)throw Error(`Tools API returned ${e.status} ${e.statusText}`);let t=await e.json();if(!Array.isArray(t))throw Error(`Tools API returned invalid data format`);return t.filter(e=>typeof e==`string`&&e!==`invalid`).sort()}}),A=async(e,t)=>{try{let n=await u(e,{...t,credentials:`include`,headers:{Accept:`application/json`,...t?.headers??{}}});return n.ok?await n.json():null}catch{return null}},Ft=()=>({async getVapidPublicKey(){return A(`/api/push/vapid-public-key`)},async subscribe(e){return A(`/api/push/subscribe`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unsubscribe(e){return A(`/api/push/subscribe`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async setVisibility(e){return A(`/api/push/visibility`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),keepalive:!0})},async registerApnsToken(e){return A(`/api/push/apns-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unregisterApnsToken(e){return A(`/api/push/apns-token`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async registerLiveActivityToken(e){return A(`/api/push/live-activity-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unregisterLiveActivityToken(e){return A(`/api/push/live-activity-token`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}}),j=async e=>await e.json().catch(()=>null),It=({urls:e})=>({async authStatus(){let e=await u(`/api/github/auth/status`,{method:`GET`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load GitHub status`);return t},async authStart(){let e=await u(`/api/github/auth/start`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({})}),t=await j(e);if(!e.ok||!t||!(`deviceCode`in t))throw Error(t?.error||e.statusText||`Failed to start GitHub auth`);return t},async authComplete(e){let t=await u(`/api/github/auth/complete`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({deviceCode:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to complete GitHub auth`);return n},async authDisconnect(){let e=await u(`/api/github/auth`,{method:`DELETE`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok)throw Error(t?.error||e.statusText||`Failed to disconnect GitHub`);return{removed:!!t?.removed}},async authActivate(e){let t=await u(`/api/github/auth/activate`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({accountId:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to activate GitHub account`);return n},async authSetGhCliDisabled(e){let t=await u(`/api/github/auth/gh-cli`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({disabled:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to update gh CLI setting`);return{disabled:!!n.disabled}},async me(){let e=await u(`/api/github/me`,{method:`GET`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to fetch GitHub user`);return t},async prStatus(e,t,n,r){let i=new URLSearchParams({directory:e,branch:t,...n?{remote:n}:{},...r?.force?{force:`true`}:{}}),a=await u(`/api/github/pr/status?${i.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load PR status`);return o},async prCreate(e){let t=await u(`/api/github/pr/create`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to create PR`);return n},async prUpdate(e){let t=await u(`/api/github/pr/update`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to update PR`);return n},async prMerge(e){let t=await u(`/api/github/pr/merge`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to merge PR`);return n},async prReady(e){let t=await u(`/api/github/pr/ready`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to mark PR ready`);return n},async repoUpstream(e){let t=await u(`/api/github/repo/upstream?directory=${encodeURIComponent(e)}`,{method:`GET`,headers:{Accept:`application/json`}}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to detect upstream repo`);return n},async repoBranches(e,t){let n=await u(`/api/github/repo/branches?owner=${encodeURIComponent(e)}&repo=${encodeURIComponent(t)}`,{method:`GET`,headers:{Accept:`application/json`}}),r=await j(n);if(!n.ok||!r)throw Error(r?.error||n.statusText||`Failed to fetch repo branches`);return r.branches??[]},async prsList(e,t){let n=t?.page??1,r=new URLSearchParams({directory:e,page:String(n)});t?.query&&r.set(`query`,t.query);let i=await u(`/api/github/pulls/list?${r.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),a=await j(i);if(!i.ok||!a)throw Error(a?.error||i.statusText||`Failed to load pull requests`);return a},async prContext(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.includeDiff&&i.set(`diff`,`1`),r?.includeCheckDetails&&i.set(`checkDetails`,`1`),r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await u(e.api(`/api/github/pulls/context`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load pull request context`);return o},async issuesList(e,t){let n=t?.page??1,r=new URLSearchParams({directory:e,page:String(n)});t?.query&&r.set(`query`,t.query);let i=await u(`/api/github/issues/list?${r.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),a=await j(i);if(!i.ok||!a)throw Error(a?.error||i.statusText||`Failed to load issues`);return a},async issueGet(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await u(e.api(`/api/github/issues/get`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load issue`);return o},async issueComments(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await u(e.api(`/api/github/issues/comments`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load issue comments`);return o}}),M=async e=>await e.json().catch(()=>null),Lt=()=>({async listClients(){let e=await u(`/api/client-auth/clients`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load remote clients`);return Array.isArray(t.clients)?t.clients:[]},async createClient(e={}){let t=await u(`/api/client-auth/clients`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:e.label??``})}),n=await M(t);if(!t.ok||!n?.client||typeof n.token!=`string`)throw Error(n?.error||t.statusText||`Failed to create remote client token`);return n},async createPairingSession(e={}){let t=await u(`/api/client-auth/pairing/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:e.label??``,...e.allowedClientKinds?{allowedClientKinds:e.allowedClientKinds}:{},...e.serverUrl?{serverUrl:e.serverUrl}:{},...typeof e.includeRelay==`boolean`?{includeRelay:e.includeRelay}:{},...typeof e.includeDirect==`boolean`?{includeDirect:e.includeDirect}:{},...e.relayUrl?{relayUrl:e.relayUrl}:{}})}),n=await M(t);if(!t.ok||typeof n?.pairing?.secret!=`string`||!n?.server)throw Error(n?.error||t.statusText||`Failed to create pairing session`);return n},async listPendingPairings(){let e=await u(`/api/client-auth/pairing/sessions`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load pending pairings`);return Array.isArray(t.pending)?t.pending:[]},async getPairingTransports(){let e=await u(`/api/client-auth/pairing/transports`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load pairing transports`);return{...typeof t.serverName==`string`?{serverName:t.serverName}:{},local:t.local??null,lan:t.lan??null,relayAvailable:t.relayAvailable===!0,...typeof t.relayUrl==`string`?{relayUrl:t.relayUrl}:{},...typeof t.relayUrlLocked==`boolean`?{relayUrlLocked:t.relayUrlLocked}:{}}},async cancelPairing(e){let t=await u(`/api/client-auth/pairing/sessions/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{Accept:`application/json`}}),n=await M(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to cancel pairing`);return{cancelled:n.cancelled===!0}},async renameClient(e,t){let n=await u(`/api/client-auth/clients/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:t})}),r=await M(n);if(!n.ok||!r?.client)throw Error(r?.error||n.statusText||`Failed to rename remote client`);return r.client},async revokeClient(e){let t=await u(`/api/client-auth/clients/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{Accept:`application/json`}}),n=await M(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to revoke remote client`);return n},async purgeRevokedClients(){let e=await u(`/api/client-auth/clients`,{method:`DELETE`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to clear revoked clients`);return t}}),N=e=>typeof e==`object`&&!!e&&!Array.isArray(e),P=e=>typeof e==`number`&&Number.isFinite(e),Rt=e=>{if(!N(e)||typeof e.ok!=`boolean`)return!1;if(e.ok===!0)return N(e.session)&&typeof e.session.id==`string`&&typeof e.messageID==`string`;let t=e.phase;if(typeof t!=`string`)return!1;switch(t){case`validate`:return typeof e.error==`string`&&Array.isArray(e.errors)&&e.errors.every(e=>typeof e==`string`);case`create`:return!(typeof e.error!=`string`||`status`in e&&e.status!==void 0&&!P(e.status));case`prompt`:return N(e.session)&&typeof e.session.id==`string`&&typeof e.messageID==`string`&&typeof e.ambiguous==`boolean`&&typeof e.error==`string`&&(!(`status`in e)||e.status===void 0||P(e.status));case`conflict`:return typeof e.error==`string`;case`unavailable`:return typeof e.error==`string`;case`internal`:return typeof e.error==`string`;default:return!1}},zt=()=>({async createWithPrompt(e,t){let n;try{n=await u(`/api/openchamber/conversations`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t})}catch{throw Error(`Conversation request failed`)}let r;try{r=await n.json()}catch{throw Error(`Unexpected server response: invalid JSON`)}if(!Rt(r))throw Error(`Unexpected server response: result shape mismatch`);return r}}),Bt=`https://openchamber.xiaobe.top/v1/mobile/update/check`,Vt=`https://openchamber-update.vercel.app/v1/mobile/update/check`,Ht=1e4,F=`openchamber.mobile-ota.device-id.v1`,I=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,L=()=>{try{let e=v;return((typeof e.getConfig==`function`?e.getConfig():void 0)??e.config)?.OpenChamberOTA??{}}catch{return{}}},R=e=>e===`beta`||e===`stable`?e:L().channel===`stable`?`stable`:`beta`,z=()=>{let e=L().shellApiVersion;return typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):1},B=()=>{let e=nt();if(e===`ios`||e===`android`)return e;try{let e=v.getPlatform();if(e===`ios`||e===`android`)return e}catch{}return`android`},Ut=()=>{if(typeof window>`u`)return null;try{return I(window.localStorage.getItem(F))}catch{return null}},V=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(F,e)}catch{}},H=async e=>{if(e)try{let t=I((await e.getDeviceId()).deviceId);if(t)return V(t),t}catch{}let t=Ut();if(t)return t;let n=f();return V(n),n},U=async()=>{let e=I(`2.1.6-beta.4`);if(m())try{let{App:t}=await y(async()=>{let{App:e}=await import(`./vendor-capacitor-app-B5H_XtmE.js`).then(e=>e.t);return{App:e}},__vite__mapDeps([0,1,2])),n=await t.getInfo(),r=I(n.version)??e??`0.0.0`,i=I(n.build),a=i?Number.parseInt(i,10):0;return{version:r,build:Number.isFinite(a)?a:0}}catch{}return{version:e??`0.0.0`,build:0}},W=(e,t,n)=>{let r=I(e?.version),i=I(t);if(n===`beta`&&i)return i;if(r&&r!==`builtin`)return i&&i!==r&&i.startsWith(`${r}-`)?i:r;let a=I(e?.id);return a&&a!==`builtin`?a:i??`builtin`},Wt=()=>I(`2.1.6-beta.4`),G=e=>{let t=e?.trim().match(/^v?(\d+)\.\d+\.\d+(?:-beta\.\d+)?$/i),n=t?Number(t[1]):void 0;return n!==void 0&&Number.isSafeInteger(n)?n:void 0},K=async(e,t)=>{let n=Wt();if(!e)return W(null,n,t);try{return W((await e.current()).bundle,n,t)}catch{return W(null,n,t)}},Gt=()=>[Bt,Vt],Kt=(e,t,n)=>{let r=e-n();return r<=0||t<=0?null:Math.max(1,Math.ceil(r/t))};async function qt(e,t,n,r){try{if(m())try{let{CapacitorHttp:r}=await y(async()=>{let{CapacitorHttp:e}=await import(`./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js`).then(e=>e.i);return{CapacitorHttp:e}},__vite__mapDeps([2,1])),i=Object.fromEntries(new Headers(t.headers).entries()),a;if(typeof t.body==`string`)try{a=JSON.parse(t.body)}catch{a=t.body}let o=await Promise.race([r.request({url:e,method:t.method||`GET`,headers:i,data:a,connectTimeout:n,readTimeout:n}),new Promise(e=>{window.setTimeout(()=>e(null),n)})]);return o?{ok:o.status>=200&&o.status<300,status:o.status,json:async()=>{if(typeof o.data==`string`)try{return JSON.parse(o.data)}catch{return o.data}return o.data}}:null}catch{}let i=await r(e,{...t,signal:AbortSignal.timeout(n)});return{ok:i.ok,status:i.status,json:()=>i.json()}}catch{return null}}var Jt=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return!(t.status!==`ok`||t.primaryAction!==`none`&&t.primaryAction!==`apply_ota`&&t.primaryAction!==`install_native_required`||!t.ota||typeof t.ota!=`object`||!t.native||typeof t.native!=`object`||typeof t.nextCheckInSec!=`number`||!Number.isFinite(t.nextCheckInSec))},Yt=e=>{let t=e;return t.isChannelRollback===!0||t.is_channel_rollback===!0?{...e,isChannelRollback:!0}:e};async function Xt(e,t,n,r){let i=await qt(e,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(t)},n,r);if(!i?.ok)return null;let a;try{a=await i.json()}catch{return null}if(!Jt(a))return null;if(a.primaryAction===`apply_ota`&&(t.releaseMajor===void 0||G(a.ota.bundle?.releaseVersion)!==t.releaseMajor))throw Error(`OTA release major mismatch`);return Yt(a)}async function Zt(e={}){let t=e.updater===void 0?await S():e.updater;if(!t&&!m())throw new b;let n=e.fetchImpl??fetch,r=e.now??Date.now,i=R(e.channelOverride),[a,o,s]=await Promise.all([H(t),U(),K(t,i)]),c={channel:i,platform:B(),deviceId:a,nativeVersion:o.version,nativeBuild:o.build,shellApiVersion:z(),currentBundleId:s,releaseMajor:G(s)??G(o.version)},l=Gt(),u=r()+Ht,d=null;for(let[e,t]of l.entries()){let i=Kt(u,l.length-e,r);if(i===null)break;try{let e=await Xt(t,c,i,n);if(e)return e;d=Error(`Mobile OTA check failed at ${t}`)}catch(e){d=e instanceof Error?e:Error(`Mobile OTA check failed`)}}throw d??Error(`Unable to check for mobile OTA updates`)}async function Qt(e){let t=await S();if(!t)return null;let n=await J({updater:t});if(n.releaseMajor===void 0||G(e.releaseVersion)!==n.releaseMajor)throw Error(`OTA release major mismatch`);try{let{bundles:n}=await t.list();return n.find(t=>t.checksum===e.checksum&&t.version===e.releaseVersion&&(t.status===`success`||t.status===`pending`))?.id??null}catch{return null}}async function $t(e){let t=await S();if(!t)throw new b;let n=await J({updater:t});if(n.releaseMajor===void 0||G(e.releaseVersion)!==n.releaseMajor)throw Error(`OTA release major mismatch`);return(await t.download({url:e.url,version:e.releaseVersion,checksum:e.checksum,...e.sessionKey?{sessionKey:e.sessionKey}:{}})).id}async function q(){let e=await S();if(!e)throw new b;await e.reload()}async function en(e){let t=await S();if(!t)throw new b;await t.next({id:e})}async function J(e={}){let t=e.updater===void 0?await S():e.updater,n=R(e.channelOverride),[r,i,a]=await Promise.all([H(t),U(),K(t,n)]);return{channel:n,platform:B(),deviceId:r,nativeVersion:i.version,nativeBuild:i.build,shellApiVersion:z(),currentBundleId:a,releaseMajor:G(a)??G(i.version)}}var Y=null,X=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,Z=async()=>{let e=X(`2.1.6-beta.4`);try{if(v.isNativePlatform()){let{App:t}=await y(async()=>{let{App:e}=await import(`./vendor-capacitor-app-B5H_XtmE.js`).then(e=>e.t);return{App:e}},__vite__mapDeps([0,1,2]));return X((await t.getInfo()).version)??e??`unknown`}}catch{}return e??`unknown`},tn=()=>({async checkForOtaUpdate(e){if(!x()&&!v.isNativePlatform())throw new b;return Zt(e?.channelOverride?{channelOverride:e.channelOverride}:{})},async downloadOtaUpdate(e){if(!x())throw new b;let t=await Qt(e);return t?(Y=t,{skipped:!0}):(Y=await $t(e),{skipped:!1})},async applyOtaUpdateNow(){if(!x())throw new b;await q()},async queueOtaUpdateForNextLaunch(){if(!x())throw new b;let e=Y;if(!e)throw Error(`No downloaded OTA bundle to queue`);await en(e)},async getOtaStatus(){if(!x())return{supported:!1,currentBundleId:`builtin`,nativeVersion:await Z()};let e=await S();if(!e)return{supported:!1,currentBundleId:`builtin`,nativeVersion:await Z()};try{let[t,n]=await Promise.all([e.current(),Z()]);return{supported:!0,currentBundleId:X(t.bundle?.id)||`builtin`,nativeVersion:n}}catch{return{supported:!0,currentBundleId:`builtin`,nativeVersion:await Z()}}}}),nn=()=>({api:(...e)=>s().api(...e),authenticatedAsset:(...e)=>s().authenticatedAsset(...e),auth:(...e)=>s().auth(...e),health:(...e)=>s().health(...e),rawFile:(...e)=>s().rawFile(...e),sse:(...e)=>s().sse(...e),websocket:(...e)=>s().websocket(...e)}),rn=(e={})=>{let t=e.urls??o();c(t);let n=nn();return{runtime:{platform:`web`,isDesktop:!1,isVSCode:!1,label:`web`},terminal:gt(),git:_t(),files:yt({urls:n,getDirectory:()=>ie.getState().currentDirectory}),settings:xt(),permissions:St(),notifications:Nt(),github:It({urls:n}),push:Ft(),mobileUpdates:tn(),clientAuth:Lt(),tools:Pt(),conversations:zt()}},Q=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},$=Promise.resolve(),an=()=>$,on=()=>{let o=typeof window.__OPENCHAMBER_API_BASE_URL__==`string`?window.__OPENCHAMBER_API_BASE_URL__.trim():``,s=typeof window.__OPENCHAMBER_CLIENT_TOKEN__==`string`?window.__OPENCHAMBER_CLIENT_TOKEN__.trim():``,c=typeof window.__OPENCHAMBER_LOCAL_ORIGIN__==`string`?window.__OPENCHAMBER_LOCAL_ORIGIN__.trim():``,u=l({apiBaseUrl:o||void 0,realtimeBaseUrl:o||void 0});a({apiBaseUrl:o,runtimeKey:Q(o,c)?`local`:null}),n(s||null),t(window.__OPENCHAMBER_RUNTIME_HEADERS__||null),i(o||void 0).catch(()=>{}),c&&!Q(o,c)&&Object.keys(r()).length>0&&e(c).catch(()=>{}),d();let f=window.__OPENCHAMBER_RELAY_HOST_ID__;return $=Promise.race([ee(typeof f==`string`&&f?f:void 0).catch(()=>{}),new Promise(e=>{window.setTimeout(e,1e4)})]),rn({urls:u})};export{an as n,on as t};
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{_t as t,dt as n,ft as r,gt as i,ln as a,yt as o}from"./persistence-DUPZl7Oy.js";import{it as s,nt as c,rt as l}from"./vendor-base-ui-CdzJ6My_.js";import{n as u,t as d}from"./platform-B5uQ25kN.js";import{n as f}from"./vendor-react-BP2cRVqX.js";import{a as p,n as m}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{f as h,n as g,r as _}from"./vendor-reactuses-core-BpfIZ1tg.js";import{f as v,r as y,t as b}from"./button-Dcg95USu.js";import{Pr as x,ba as S}from"./useMobileNavigationStore-DdwNbT69.js";import{n as C}from"./Icon-DG553vVG.js";import{v as w}from"./image-loading-BilWo6nu.js";import{i as T,t as E}from"./textarea-D_6qDthB.js";import{a as ee,o as D}from"./dropdown-menu.styles-BdfQzOhk.js";import{t as O}from"./LoadingImage-CJsNGQa7.js";var k=e(s(),1),A=f(),j=l(),te=e(c(),1),M=p(`OpenChamberMedia`);function N(e){return e.platform===`android`||/Android/i.test(e.userAgent)||e.userAgentDataPlatform===`Android`}function P(){if(typeof window>`u`)return!1;let e=navigator.userAgentData;return N({platform:d(),userAgent:navigator.userAgent||``,userAgentDataPlatform:e?.platform})}function ne(){return u()&&m.getPlatform()===`android`&&m.isPluginAvailable(`OpenChamberMedia`)}async function F(e){if(!ne())return null;let t=await M.pickMedia({limit:e});if(t.cancelled)return[];let n=[];for(let e of t.files){let t=await fetch(m.convertFileSrc(e.path));if(!t.ok)throw Error(`Native media fetch failed (${t.status})`);let r=await t.blob();n.push(new File([r],e.name,{type:e.mimeType}))}return n}var I=`h-auto min-h-12 w-full justify-start gap-3 rounded-none supports-[corner-shape:squircle]:rounded-none px-4 border-b border-[var(--surface-subtle)] last:border-b-0`,re=e=>{let t=(0,A.c)(38),{id:n,open:r,onOpenChange:i,onPickPhotos:a,onPickFiles:o}=e,{t:s}=v(),c;t[0]===s?c=t[1]:(c=s(`chat.chatInput.actions.addAttachment`),t[0]=s,t[1]=c);let l;t[2]===c?l=t[3]:(l=(0,j.jsx)(`h2`,{className:`truncate typography-ui-label font-semibold`,children:c}),t[2]=c,t[3]=l);let u;t[4]===s?u=t[5]:(u=s(`chat.chatInput.actions.addAttachment`),t[4]=s,t[5]=u);let d;t[6]===s?d=t[7]:(d=s(`mobile.surface.closeAria`),t[6]=s,t[7]=d);let f;t[8]===s?f=t[9]:(f=s(`mobile.sessions.sheet.resizeAria`),t[8]=s,t[9]=f);let p;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,j.jsx)(C,{name:`file-image`,className:`size-5 flex-shrink-0 text-muted-foreground`}),t[10]=p):p=t[10];let m;t[11]===s?m=t[12]:(m=s(`chat.chatInput.actions.attachPhotos`),t[11]=s,t[12]=m);let h;t[13]===m?h=t[14]:(h=(0,j.jsx)(`span`,{className:`truncate`,children:m}),t[13]=m,t[14]=h);let g;t[15]!==a||t[16]!==h?(g=(0,j.jsxs)(b,{type:`button`,variant:`ghost`,size:`lg`,className:I,"data-mobile-press-feedback":`none`,onClick:a,children:[p,h]}),t[15]=a,t[16]=h,t[17]=g):g=t[17];let _;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,j.jsx)(C,{name:`attachment-2`,className:`size-5 flex-shrink-0 text-muted-foreground`}),t[18]=_):_=t[18];let y;t[19]===s?y=t[20]:(y=s(`chat.chatInput.actions.attachFiles`),t[19]=s,t[20]=y);let x;t[21]===y?x=t[22]:(x=(0,j.jsx)(`span`,{className:`truncate`,children:y}),t[21]=y,t[22]=x);let S;t[23]!==o||t[24]!==x?(S=(0,j.jsxs)(b,{type:`button`,variant:`ghost`,size:`lg`,className:I,"data-mobile-press-feedback":`none`,onClick:o,children:[_,x]}),t[23]=o,t[24]=x,t[25]=S):S=t[25];let w;t[26]!==S||t[27]!==g?(w=(0,j.jsx)(`div`,{className:`flex min-h-0 flex-col overflow-y-auto overscroll-contain px-3 pb-3`,children:(0,j.jsxs)(`div`,{className:`overflow-hidden rounded-2xl bg-[var(--surface-muted)]`,"data-page-scroll-lock":`true`,children:[g,S]})}),t[26]=S,t[27]=g,t[28]=w):w=t[28];let E;return t[29]!==n||t[30]!==i||t[31]!==r||t[32]!==w||t[33]!==l||t[34]!==u||t[35]!==d||t[36]!==f?(E=(0,j.jsx)(T,{id:n,open:r,onOpenChange:i,title:l,ariaLabel:u,closeAriaLabel:d,resizeAriaLabel:f,fitContent:!0,children:w}),t[29]=n,t[30]=i,t[31]=r,t[32]=w,t[33]=l,t[34]=u,t[35]=d,t[36]=f,t[37]=E):E=t[37],E},L=w(!1).colors,ie=`M-50 74.564 A600 600 0 0 1 147.707 22.283 A38 38 0 0 1 154.330 97.994 A524 524 0 0 0 -18.333 143.653 Z`,ae=`M450 74.564 A600 600 0 0 0 252.293 22.283 A38 38 0 0 0 245.670 97.994 A524 524 0 0 1 418.333 143.653 Z`,oe={colorScheme:`light`,"--surface-background":L.surface.background,"--surface-foreground":L.surface.foreground,"--primary-base":L.primary.base,"--foreground":L.surface.background,"--interactive-hover":`color-mix(in srgb, var(--surface-background) 12%, transparent)`,"--interactive-active":`color-mix(in srgb, var(--surface-background) 20%, transparent)`,"--ring":L.interactive.focusRing,"--status-error":L.status.error};function se(e){let t=(0,A.c)(82),{containerRef:n,disabled:r,onInsert:i,onSend:a,onRelease:o,onError:s,onHintChange:c}=e,{t:l}=v(),[u,d]=(0,k.useState)(!1),[f,p]=(0,k.useState)(!1),[m,h]=(0,k.useState)(`edit`),_=(0,k.useRef)(null),y=(0,k.useRef)(null),b=(0,k.useRef)(`insert`),x=(0,k.useRef)(null),S=(0,k.useId)(),C=(0,k.useId)(),w=(0,k.useId)(),T;t[0]!==i||t[1]!==a?(T=e=>b.current===`send`?a(e):i(e),t[0]=i,t[1]=a,t[2]=T):T=t[2];let E;t[3]!==s||t[4]!==T?(E={onTranscript:T,onError:s},t[3]=s,t[4]=T,t[5]=E):E=t[5];let D=ee(E),{status:O,isStarting:M,partialTranscript:N,error:P,volume:ne}=D,F=g(c),I=u?m===`cancel`?`cancelling`:m===`edit`?`editing`:`recording`:f?`processing`:null,re,L;t[6]!==I||t[7]!==F?(re=()=>{F(I)},L=[I,F],t[6]=I,t[7]=F,t[8]=re,t[9]=L):(re=t[8],L=t[9]),(0,k.useEffect)(re,L);let se,R;t[10]===F?(se=t[11],R=t[12]):(se=()=>()=>F(null),R=[F],t[10]=F,t[11]=se,t[12]=R),(0,k.useEffect)(se,R);let le;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(le=()=>{y.current&&clearTimeout(y.current),y.current=null},t[13]=le):le=t[13];let z=g(le),ue;t[14]!==n||t[15]!==r?(ue=e=>{if(r||!(e instanceof HTMLElement))return null;let t=n.current?.querySelector(`textarea`);return!t||t.value!==``||t.disabled||t.readOnly||e!==t&&!e.closest(`[data-oc-composer-compact-surface]`)||e.closest(`button, [data-composer-action]`)?null:t},t[14]=n,t[15]=r,t[16]=ue):ue=t[16];let B=g(ue),de;t[17]!==z||t[18]!==D||t[19]!==P||t[20]!==O?(de=()=>{z(),_.current=null,d(!1),h(`edit`),O===`failed`||O===`idle`&&P?D.discardFailedDictation():D.cancelDictation()},t[17]=z,t[18]=D,t[19]=P,t[20]=O,t[21]=de):de=t[21];let V=g(de),fe;t[22]!==D||t[23]!==r||t[24]!==B||t[25]!==O?(fe=e=>{let t=e.target;r||O!==`idle`||_.current||!e.isPrimary||e.button!==0||!(t instanceof HTMLElement)||B(t)&&(e.preventDefault(),e.stopPropagation(),_.current={pointer:e.pointerId,x:e.clientX,y:e.clientY,intent:`edit`,started:!1},y.current=setTimeout(()=>{if(y.current=null,!_.current)return;let e=B(t);if(!e){_.current=null;return}e.blur(),_.current.started=!0,b.current=`insert`,d(!0),h(`edit`),D.startDictation()},300))},t[22]=D,t[23]=r,t[24]=B,t[25]=O,t[26]=fe):fe=t[26];let H=g(fe),pe;t[27]===z?pe=t[28]:(pe=e=>{let t=_.current;if(!t||t.pointer!==e.pointerId)return;e.preventDefault(),e.stopPropagation();let n=e.clientX-t.x,r=x.current?.getBoundingClientRect(),i=r&&r.width>0&&e.clientY>=r.top&&e.clientY<=r.bottom?e.clientX<r.left+r.width/2?`cancel`:`send`:n<=-64?`cancel`:n>=64?`send`:`edit`;if(!t.started&&Math.hypot(n,t.y-e.clientY)>12){z(),_.current=null;return}t.started&&i!==t.intent&&(t.intent=i,h(i))},t[27]=z,t[28]=pe);let me=g(pe),he;t[29]!==V||t[30]!==z||t[31]!==n||t[32]!==D||t[33]!==P||t[34]!==o||t[35]!==N||t[36]!==O?(he=e=>{let t=_.current;if(!(!t||t.pointer!==e.pointerId)){if(e.preventDefault(),e.stopPropagation(),z(),P||O===`failed`){V();return}_.current=null,d(!1),t.started?t.intent===`cancel`?D.cancelDictation():(b.current=t.intent===`edit`?`insert`:`send`,o(N),p(!0),t.intent===`edit`&&n.current?.querySelector(`textarea`)?.focus(),Promise.resolve(D.confirmDictation()).finally(()=>{p(!1),D.discardFailedDictation()})):n.current?.querySelector(`textarea`)?.focus()}},t[29]=V,t[30]=z,t[31]=n,t[32]=D,t[33]=P,t[34]=o,t[35]=N,t[36]=O,t[37]=he):he=t[37];let ge=g(he),_e;t[38]===V?_e=t[39]:(_e=e=>{_.current?.pointer===e.pointerId&&V()},t[38]=V,t[39]=_e);let ve=g(_e),U;t[40]===B?U=t[41]:(U=e=>{B(e.target)&&e.preventDefault()},t[40]=B,t[41]=U);let W=g(U),G,ye;t[42]!==V||t[43]!==z||t[44]!==n||t[45]!==H||t[46]!==ve||t[47]!==me||t[48]!==W||t[49]!==ge?(G=()=>{let e=n.current;if(!e)return;let t=()=>{document.visibilityState===`hidden`&&V()};return e.addEventListener(`pointerdown`,H,!0),e.addEventListener(`touchstart`,W,{capture:!0,passive:!1}),window.addEventListener(`pointermove`,me,{capture:!0,passive:!1}),window.addEventListener(`pointerup`,ge,!0),window.addEventListener(`pointercancel`,ve,!0),e.addEventListener(`contextmenu`,W,!0),e.addEventListener(`selectstart`,W,!0),window.addEventListener(`blur`,V),document.addEventListener(`visibilitychange`,t),()=>{z(),e.removeEventListener(`pointerdown`,H,!0),e.removeEventListener(`touchstart`,W,!0),window.removeEventListener(`pointermove`,me,!0),window.removeEventListener(`pointerup`,ge,!0),window.removeEventListener(`pointercancel`,ve,!0),e.removeEventListener(`contextmenu`,W,!0),e.removeEventListener(`selectstart`,W,!0),window.removeEventListener(`blur`,V),document.removeEventListener(`visibilitychange`,t)}},ye=[n,H,me,ge,ve,V,z,W],t[42]=V,t[43]=z,t[44]=n,t[45]=H,t[46]=ve,t[47]=me,t[48]=W,t[49]=ge,t[50]=G,t[51]=ye):(G=t[50],ye=t[51]),(0,k.useEffect)(G,ye);let K,q;if(t[52]!==V||t[53]!==r?(K=()=>{r&&V()},q=[r,V],t[52]=V,t[53]=r,t[54]=K,t[55]=q):(K=t[54],q=t[55]),(0,k.useEffect)(K,q),!u)return null;let be=Math.min(1,Math.max(0,ne))**.6,J=!!P,Y=P?V:void 0,X;t[56]===be?X=t[57]:(X={...oe,"--speech-energy":be},t[56]=be,t[57]=X);let xe=X,Se;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(Se=(0,j.jsx)(`div`,{className:`oc-speech-light-field`,"aria-hidden":`true`,children:[`ice`,`lilac`,`mint`,`blush`,`mid`,`core`].map(ce)}),t[58]=Se):Se=t[58];let Z;t[59]!==P||t[60]!==M||t[61]!==N||t[62]!==O||t[63]!==l?(Z=P?(0,j.jsx)(`p`,{role:`alert`,className:`oc-speech-caption oc-speech-error`,children:P}):(0,j.jsx)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`oc-speech-caption`,children:M?(0,j.jsxs)(`span`,{className:`oc-speech-loading`,"aria-label":l(`common.loading`),children:[(0,j.jsx)(`span`,{}),(0,j.jsx)(`span`,{}),(0,j.jsx)(`span`,{})]}):N?(0,j.jsx)(`span`,{className:`oc-speech-interim`,children:N}):l(O===`uploading`?`chat.dictation.processing`:`chat.dictation.listening`)}),t[59]=P,t[60]=M,t[61]=N,t[62]=O,t[63]=l,t[64]=Z):Z=t[64];let Q;t[65]!==M||t[66]!==Z?(Q=(0,j.jsx)(`div`,{className:`oc-speech-content`,"data-starting":M,children:Z}),t[65]=M,t[66]=Z,t[67]=Q):Q=t[67];let $;t[68]!==S||t[69]!==C||t[70]!==w||t[71]!==u||t[72]!==m||t[73]!==l?($=u&&(0,j.jsx)(`div`,{className:`oc-speech-gesture-stage`,"aria-hidden":`true`,children:(0,j.jsxs)(`div`,{className:`oc-speech-gesture-surfaces`,children:[(0,j.jsx)(`div`,{className:`oc-speech-target-glass`,style:{clipPath:`url(#${C})`}}),(0,j.jsx)(`div`,{className:`oc-speech-target-glass`,style:{clipPath:`url(#${w})`}}),(0,j.jsxs)(`svg`,{className:`oc-speech-geometry`,viewBox:`0 0 400 226`,focusable:`false`,children:[(0,j.jsxs)(`defs`,{children:[(0,j.jsx)(`clipPath`,{id:C,clipPathUnits:`objectBoundingBox`,children:(0,j.jsx)(`path`,{transform:`scale(0.0025 0.004424778761)`,d:ie})}),(0,j.jsx)(`clipPath`,{id:w,clipPathUnits:`objectBoundingBox`,children:(0,j.jsx)(`path`,{transform:`scale(0.0025 0.004424778761)`,d:ae})}),(0,j.jsxs)(`linearGradient`,{id:S,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,j.jsx)(`stop`,{offset:`0%`,className:`oc-speech-arc-top`}),(0,j.jsx)(`stop`,{offset:`100%`,className:`oc-speech-arc-bottom`})]})]}),(0,j.jsxs)(`g`,{className:`oc-speech-targets`,ref:x,children:[(0,j.jsxs)(`g`,{className:`oc-speech-target oc-speech-target--cancel`,"data-active":m===`cancel`,children:[(0,j.jsx)(`path`,{d:ie}),(0,j.jsx)(`text`,{x:`95`,y:`68`,textAnchor:`middle`,dominantBaseline:`central`,transform:`rotate(-11 95 68)`,children:l(`chat.dictation.cancelGesture`)})]}),(0,j.jsxs)(`g`,{className:`oc-speech-target oc-speech-target--send`,"data-active":m===`send`,children:[(0,j.jsx)(`path`,{d:ae}),(0,j.jsx)(`text`,{x:`305`,y:`68`,textAnchor:`middle`,dominantBaseline:`central`,transform:`rotate(11 305 68)`,children:l(`chat.dictation.send`)})]})]}),(0,j.jsx)(`path`,{className:`oc-speech-hold-arc`,fill:`url(#${S})`,d:`M-50 186.987 A500 500 0 0 1 450 186.987 L450 300 H-50 Z`})]})]})}),t[68]=S,t[69]=C,t[70]=w,t[71]=u,t[72]=m,t[73]=l,t[74]=$):$=t[74];let Ce;return t[75]!==m||t[76]!==J||t[77]!==Y||t[78]!==xe||t[79]!==Q||t[80]!==$?(Ce=(0,te.createPortal)((0,j.jsxs)(`div`,{className:`oc-speech-overlay`,"data-intent":m,"data-error":J,onClick:Y,style:xe,children:[Se,Q,$]}),document.body),t[75]=m,t[76]=J,t[77]=Y,t[78]=xe,t[79]=Q,t[80]=$,t[81]=Ce):Ce=t[81],Ce}function ce(e){return(0,j.jsx)(`div`,{className:`oc-speech-reactor oc-speech-reactor--${e}`,children:(0,j.jsx)(`div`,{className:`oc-speech-light`})},e)}function R(e){let t=(0,A.c)(7),{available:n}=e,r=S(le),[i,o]=(0,k.useState)(null),s;t[0]!==n||t[1]!==r?(s=n&&r&&!a()&&D(),t[0]=n,t[1]=r,t[2]=s):s=t[2];let c=s,l=c?i:null,u;return t[3]!==c||t[4]!==r||t[5]!==l?(u={globallyEnabled:r,enabled:c,hint:l,onHintChange:o},t[3]=c,t[4]=r,t[5]=l,t[6]=u):u=t[6],u}function le(e){return e.dictationEnabled}var z=k.createContext(null),ue=e=>{let t=(0,A.c)(3),{actions:n,children:r}=e,i;return t[0]!==n||t[1]!==r?(i=(0,j.jsx)(z.Provider,{value:n,children:r}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i},B=()=>k.useContext(z),de=e=>e.nativeEvent.isComposing||e.nativeEvent.keyCode===229;function V(e){let t=(0,A.c)(10),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=y(`inline-flex shrink-0 items-center justify-center rounded-full bg-foreground text-background`,r),t[4]=r,t[5]=a);let o;return t[6]!==n||t[7]!==i||t[8]!==a?(o=(0,j.jsx)(`span`,{className:a,...i,"aria-hidden":!0,children:n}),t[6]=n,t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function fe(e){let t=(0,A.c)(7),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]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,j.jsx)(`span`,{"data-stop-glyph":`true`,className:`block size-[38%] rounded-[20%] bg-current`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,j.jsx)(V,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function H(e){let t=(0,A.c)(13),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,spinning:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i!==void 0&&i,o=a?`loader-4`:`arrow-up`,s=a?`size-[50%] animate-spin`:`size-[56%]`,c;t[4]===s?c=t[5]:(c=y(s),t[4]=s,t[5]=c);let l;t[6]!==o||t[7]!==c?(l=(0,j.jsx)(C,{name:o,weight:`medium`,className:c}),t[6]=o,t[7]=c,t[8]=l):l=t[8];let u;return t[9]!==n||t[10]!==r||t[11]!==l?(u=(0,j.jsx)(V,{className:n,...r,children:l}),t[9]=n,t[10]=r,t[11]=l,t[12]=u):u=t[12],u}var pe=k.forwardRef((e,t)=>{let n=(0,A.c)(19),r,i,a,o,s,c;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],s=n[5],c=n[6]):({children:r,className:i,expanded:s,focusedTone:c,style:o,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=s,n[6]=c);let l=s!==void 0&&s,u=c===void 0?`primary`:c,d=l&&`min-h-0 flex-1`,f=u===`info`?`focus-within:ring-[var(--status-info)]`:`focus-within:ring-primary/50`,p;n[7]!==i||n[8]!==d||n[9]!==f?(p=y(`relative flex flex-col overflow-visible border border-border/80 focus-within:ring-1`,d,f,i),n[7]=i,n[8]=d,n[9]=f,n[10]=p):p=n[10];let m;n[11]===o?m=n[12]:(m={borderRadius:`var(--radius-xl)`,backgroundColor:`var(--surface-subtle)`,...o},n[11]=o,n[12]=m);let h;return n[13]!==r||n[14]!==a||n[15]!==t||n[16]!==p||n[17]!==m?(h=(0,j.jsx)(`div`,{ref:t,className:p,style:m,...a,children:r}),n[13]=r,n[14]=a,n[15]=t,n[16]=p,n[17]=m,n[18]=h):h=n[18],h});pe.displayName=`ChatComposerSurface`;var me=k.forwardRef((e,t)=>{let n=(0,A.c)(3),r;return n[0]!==e||n[1]!==t?(r=(0,j.jsx)(E,{ref:t,...e}),n[0]=e,n[1]=t,n[2]=r):r=n[2],r});me.displayName=`ChatPromptTextarea`;var he=e=>{let t=(0,A.c)(10),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=y(`flex shrink-0 items-center gap-2 bg-transparent px-2.5 py-1.5`,r),t[4]=r,t[5]=a);let o;return t[6]!==n||t[7]!==i||t[8]!==a?(o=(0,j.jsx)(`div`,{className:a,"data-chat-input-footer":`true`,...i,children:n}),t[6]=n,t[7]=i,t[8]=a,t[9]=o):o=t[9],o},ge=(e,t)=>{typeof e==`function`?e(t):e&&(e.current=t)},_e=({value:e,attachments:t=[],disabled:n=!1,pending:r=!1,placeholder:i,isMobile:a=!1,onChange:o,onSubmit:s,onStop:c,onAddFiles:l,onRemoveAttachment:u,addFilesLabel:d,removeAttachmentLabel:f,fileAccept:p=`image/*`,sendLabel:m,stopLabel:_,hint:b,leftControls:S,rightControls:w,footerContent:T,inputHeader:E,attachmentContent:ee,highlightedContent:D,highlightRef:A,inputRef:te,textareaProps:M,textLayoutClassName:N,inputClassName:I,inputOuterClassName:L,inputStyle:ie,footerClassName:ae,footerStyle:oe,contentClassName:se,inputSectionClassName:ce,autoResize:R=!0,disableInputWhilePending:le=!0,layout:z=`stacked`,children:ue,className:B,expanded:V=!1,..._e})=>{let{t:ve}=v(),U=z===`inline`,[W,G]=k.useState(!1),[ye,K]=k.useState(!1),q=P(),be=t.length>0||W,J=k.useRef(null),Y=k.useRef(null),X=k.useRef(null),xe=k.useId().replace(/:/g,``),Se=g(()=>{if(!R||V||M?.fillContainer){U&&G(!1);return}let e=J.current;if(!e)return;e.style.height=U?`0px`:`auto`;let t=Number.parseFloat(window.getComputedStyle(e).maxHeight),n=U?Math.max(e.scrollHeight,48):e.scrollHeight,r=Number.isFinite(t)?Math.min(n,t):n;e.style.height=`${r}px`,e.style.overflowY=Number.isFinite(t)&&n>t?`auto`:`hidden`;let i=r>48;U&&G(e=>e===i?e:i)});k.useLayoutEffect(()=>{Se()},[R,V,U,M?.fillContainer,e]),h(U&&R&&!V&&!M?.fillContainer?J:null,Se);let Z=e=>{M?.onKeyDown?.(e),!(e.defaultPrevented||de(e))&&e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),!n&&(!r||!le)&&s())},Q=e=>{l?.(e.target.files),e.target.value=``},$=g(()=>{J.current?.blur(),K(!0)}),Ce=g(e=>{K(!1),requestAnimationFrame(()=>e?.click())}),we=g(()=>{K(!1),requestAnimationFrame(()=>{(async()=>{if(!ne()){X.current?.click();return}try{let e=await F(20);if(e===null){X.current?.click();return}e.length>0&&l?.(e)}catch(e){console.error(`Native photo pick failed`,e),x.error(ve(`chat.chatInput.toast.attachFileFailed`))}})()})}),Te=e.trim().length>0||t.length>0,Ee=t.filter(e=>e.mime.startsWith(`image/`)),De=t.filter(e=>!e.mime.startsWith(`image/`)),Oe=l?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`input`,{ref:Y,type:`file`,accept:p,multiple:!0,className:`hidden`,onChange:Q}),q?(0,j.jsx)(`input`,{ref:X,type:`file`,accept:`image/*`,multiple:!0,className:`hidden`,onChange:Q}):null,(0,j.jsx)(`button`,{type:`button`,className:`flex size-8 shrink-0 items-center justify-center rounded-md text-foreground outline-none hover:bg-[var(--interactive-hover)] disabled:cursor-not-allowed disabled:opacity-40`,onClick:()=>q?$():Y.current?.click(),onMouseDown:a?e=>e.preventDefault():void 0,onPointerDownCapture:a?e=>e.preventDefault():void 0,disabled:n||r,"aria-label":d,children:(0,j.jsx)(C,{name:`attachment-2`,className:`size-[18px]`})})]}):null,ke=!n&&!r&&Te,Ae=a?`size-6`:`size-full`,je=r&&c?(0,j.jsx)(`button`,{type:`button`,"data-composer-stop":`true`,className:`flex size-8 shrink-0 items-center justify-center rounded-full outline-none hover:opacity-80`,onClick:c,"aria-label":_,children:(0,j.jsx)(fe,{className:Ae})}):(0,j.jsx)(`button`,{type:`submit`,"data-composer-send":`true`,"data-composer-circle":ke?`true`:void 0,className:y(`flex size-8 shrink-0 items-center justify-center outline-none`,ke?`rounded-full hover:opacity-80`:`rounded-md text-primary hover:bg-[var(--interactive-hover)] disabled:cursor-not-allowed disabled:opacity-30`),disabled:n||r||!Te,"aria-label":m,children:ke?(0,j.jsx)(H,{className:Ae}):(0,j.jsx)(C,{name:r?`loader-4`:`send-plane-2`,className:y(`size-4`,r&&`animate-spin`)})}),Me=r&&c?(0,j.jsx)(`button`,{type:`button`,"data-composer-stop":`true`,className:`flex size-8 shrink-0 items-center justify-center rounded-full outline-none hover:opacity-80`,onClick:c,"aria-label":_,children:(0,j.jsx)(fe,{className:Ae})}):(0,j.jsx)(`button`,{type:`submit`,"data-composer-send":`true`,"data-composer-circle":`true`,className:y(`flex size-8 shrink-0 items-center justify-center rounded-full outline-none`,ke?`hover:opacity-80`:`cursor-not-allowed opacity-30`),disabled:n||r||!Te,"aria-busy":r||void 0,"aria-label":m,children:(0,j.jsx)(H,{className:Ae,spinning:r})}),Ne=U?Me:je,Pe=S===void 0?Oe:S;return(0,j.jsxs)(pe,{className:B,expanded:V,..._e,children:[ue,(0,j.jsxs)(`div`,{"data-composer-content":`true`,"data-composer-layout":z,className:y(`relative flex min-h-0`,U?y(`min-h-12 flex-row`,be?`items-end`:`items-center`):`flex-col`,V&&`flex-1`,se),children:[U&&Pe?(0,j.jsx)(`div`,{className:`flex h-12 shrink-0 items-center pl-1.5`,"data-composer-inline-attach":`true`,children:Pe}):null,(0,j.jsxs)(`div`,{className:y(`overflow-hidden`,U&&`min-w-0 flex-1`,V&&`flex min-h-0 flex-1 flex-col`,ce),children:[E,ee,Ee.length>0?(0,j.jsx)(`div`,{className:`flex gap-2 overflow-x-auto px-3 pt-3`,"data-chat-prompt-attachments":`true`,children:Ee.map(e=>(0,j.jsxs)(`div`,{className:`group relative shrink-0`,children:[(0,j.jsx)(`span`,{className:`block size-16`,children:(0,j.jsx)(O,{fill:!0,src:e.url,alt:e.name,className:`size-16 rounded-lg border border-border object-cover`})}),u?(0,j.jsx)(`button`,{type:`button`,className:`absolute -right-1 -top-1 flex size-6 items-center justify-center rounded-full border border-border bg-[var(--surface-elevated)] shadow-sm hover:bg-[var(--interactive-hover)]`,onClick:()=>u(e.id),"aria-label":f,children:(0,j.jsx)(C,{name:`close`,className:`size-3`})}):null]},e.id))}):null,De.length>0?(0,j.jsx)(`div`,{className:`flex flex-wrap gap-2 px-3 pt-3`,"data-chat-prompt-file-attachments":`true`,children:De.map(e=>(0,j.jsxs)(`div`,{className:`relative flex max-w-[12rem] items-center gap-1.5 rounded-lg border border-border bg-[var(--surface-elevated)] px-2 py-1`,children:[(0,j.jsx)(C,{name:`file-text`,className:`size-3.5 shrink-0 text-muted-foreground`}),(0,j.jsx)(`span`,{className:`min-w-0 truncate typography-micro`,children:e.name}),u?(0,j.jsx)(`button`,{type:`button`,className:`flex size-5 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-[var(--interactive-hover)]`,onClick:()=>u(e.id),"aria-label":f,children:(0,j.jsx)(C,{name:`close`,className:`size-3`})}):null]},e.id))}):null,(0,j.jsxs)(`div`,{className:y(`relative overflow-hidden`,U&&y(`flex min-h-12`,W?`items-end`:`items-center`),V&&`flex min-h-0 flex-1 flex-col`),"data-composer-input-shell":`true`,children:[D?(0,j.jsx)(`div`,{ref:A,"aria-hidden":!0,"data-composer-highlight":`true`,className:y(`pointer-events-none absolute inset-0 z-0 rounded-b-none`,N,I),children:D}):null,(0,j.jsx)(me,{...M,simple:!0,fillContainer:!U&&M?.fillContainer,ref:e=>{J.current=e,ge(te,e)},"data-chat-input":`true`,value:e,onChange:e=>o(e.target.value,e),onKeyDown:Z,disabled:n||r&&le,placeholder:i,enterKeyHint:a?`send`:M?.enterKeyHint,outerClassName:y(`ring-0 bg-transparent shadow-none hover:bg-transparent focus-within:ring-0`,U&&`flex-none`,V&&`min-h-0 flex-1`,L),className:y(`relative z-10 resize-none overflow-y-hidden appearance-none border-0 bg-transparent typography-markdown hover:border-transparent md:typography-ui-label`,U?`field-sizing-fixed min-h-12 max-h-32 px-3 py-3 leading-6`:`min-h-[52px] max-h-40 rounded-b-none px-3 pb-2 pt-4`,N,I,D&&`text-transparent caret-[var(--surface-foreground)]`),style:ie,rows:M?.rows??1})]})]}),U?(0,j.jsx)(`div`,{className:y(`flex h-12 shrink-0 items-center pr-1.5`,ae),style:oe,"data-composer-inline-send":`true`,children:w??Ne}):(0,j.jsx)(he,{className:ae,style:oe,children:T??(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`flex items-center gap-1.5`,children:S??Oe}),b?(0,j.jsx)(`div`,{className:`min-w-0 flex-1 truncate typography-micro text-muted-foreground`,children:b}):(0,j.jsx)(`div`,{className:`flex-1`}),(0,j.jsx)(`div`,{className:`flex items-center gap-1.5`,children:w??Ne})]})})]}),q&&l?(0,j.jsx)(re,{id:`mobile-attach-pick-${xe}`,open:ye,onOpenChange:e=>{e||K(!1)},onPickPhotos:we,onPickFiles:()=>Ce(Y.current)}):null]})},ve={dictation:102,mentionFile:100,mentionAgent:100,mentionSession:100,mentionCommand:100,mentionPaste:100,code:90,codeFence:90,link:80,linkUrl:78,heading:70,blockquote:40,listMarker:35,marker:10},U={dictation:`text-foreground underline decoration-current underline-offset-4`,mentionFile:`text-[var(--primary)]`,mentionAgent:`text-[var(--primary)]`,mentionSession:`text-[var(--primary)]`,mentionCommand:`text-[var(--primary)]`,mentionPaste:`text-[var(--primary)]`,code:`rounded-[3px] bg-[var(--surface-subtle)] text-[var(--markdown-inline-code)]`,codeFence:`bg-[var(--surface-subtle)] text-[var(--markdown-inline-code)]`,link:`text-[var(--status-info)] underline`,linkUrl:`text-muted-foreground`,heading:`text-[var(--syntax-keyword)]`,blockquote:`text-muted-foreground`,listMarker:`text-[var(--syntax-keyword)]`,marker:`text-muted-foreground`},W=`text-foreground`;function G(e,t,n){let r=0,i=e.length;for(;r<i;){let i=e[r];if(i==="`"){let i=/^`+/.exec(e.slice(r))?.[0]??``,a=e.indexOf(i,r+i.length);if(a!==-1){let e=a+i.length;n.push({start:t+r,end:t+e,style:`code`}),r=e;continue}}if(i===`[`){let i=/^\[([^\]\n]*)\]\(([^)\n]*)\)/.exec(e.slice(r));if(i){let e=t+r,a=i[1].length,o=i[2].length,s=e+1,c=s+a,l=c+2,u=l+o,d=u+1;n.push({start:e,end:s,style:`marker`}),a>0&&n.push({start:s,end:c,style:`link`}),n.push({start:c,end:l,style:`marker`}),o>0&&n.push({start:l,end:u,style:`linkUrl`}),n.push({start:u,end:d,style:`marker`}),r+=i[0].length;continue}}r+=1}}var ye=/^(\s*)(`{3,}|~{3,})\s*(\S*)/;function K(e){let t=ye.exec(e);return t?{marker:t[2],lang:t[3]||``}:null}function q(e,t){return RegExp(`^\\s*\\${t[0]}{${t.length},}\\s*$`).test(e)}function be(e){let t=[];if(!e)return t;let n=0,r=!1,i=``,a=e.split(`
2
- `);for(let e=0;e<a.length;e+=1){let o=a[e],s=n,c=s+o.length;if(n=c+1,r){t.push({start:s,end:c,style:`codeFence`}),q(o,i)&&(r=!1);continue}let l=K(o);if(l){r=!0,i=l.marker,t.push({start:s,end:c,style:`codeFence`});continue}let u=/^(\s*)(#{1,6})(\s+)/.exec(o);if(u){let e=s+u[1].length,n=e+u[2].length;t.push({start:e,end:n,style:`marker`});let r=n+u[3].length;c>r&&(t.push({start:r,end:c,style:`heading`}),G(o.slice(r-s),r,t));continue}let d=/^(\s*)(>+)(\s?)/.exec(o);if(d){let e=s+d[1].length,n=e+d[2].length;t.push({start:e,end:n,style:`marker`});let r=n+d[3].length;c>r&&(t.push({start:r,end:c,style:`blockquote`}),G(o.slice(r-s),r,t));continue}let f=/^(\s*)([-*+]|\d{1,9}[.)])(\s+)/.exec(o);if(f){let e=s+f[1].length,n=e+f[2].length;t.push({start:e,end:n,style:`listMarker`});let r=n+f[3].length;G(o.slice(r-s),r,t);continue}G(o,s,t)}return t}function J(e,t){if(!e||t.length===0)return null;let n=e.length,r=new Set([0,n]);for(let e of t)e.start>0&&e.start<n&&r.add(e.start),e.end>0&&e.end<n&&r.add(e.end);let i=[...r].sort((e,t)=>e-t),a=t.map((e,t)=>({range:e,index:t})).filter(e=>e.range.end>e.range.start).sort((e,t)=>e.range.start-t.range.start),s=[],c=[],l=0;for(let t=0;t<i.length-1;t+=1){let n=i[t],r=i[t+1];if(r<=n)continue;for(;l<a.length&&a[l].range.start<=n;)c.push(a[l]),l+=1;for(let e=c.length-1;e>=0;--e)c[e].range.end<=n&&c.splice(e,1);let u=null,d=-1,f=1/0;for(let{range:e,index:t}of c){let n=e.priority??ve[e.style];(n>d||n===d&&t<f)&&(d=n,f=t,u=e)}let p=u?u.className??U[u.style]:W,m=e.slice(n,r),h=u?.visual,g=u?.skillName,_=s[s.length-1];_&&_.className===p&&o(_.visual,h)&&_.skillName===g?_.text+=m:s.push({text:m,className:p,visual:h,skillName:g})}return s.length>0?s:null}function Y(e,t){let n=new Set(Array.from(t,e=>e.toLowerCase())),r=[];for(let t of[/(^|\s)\/(\u2003)?([a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?)/gi,/(^|\s)@(\u2003)?([a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?)(?=$|\s|[),.;:!?])/gi]){let i;for(;(i=t.exec(e))!==null;){let e=i[2]??``,t=i[3]||``;if(!n.has(t.toLowerCase()))continue;let a=i.index+(i[1]?.length??0);r.push({start:a,end:a+1+e.length+t.length,name:t})}}return r}function X(e,t,n){if(e===t){let t=n.find(t=>e>t.start&&e<t.end);return t?{start:t.start,end:t.end}:null}let r=n.filter(n=>n.start<t&&n.end>e);return r.length===0?null:{start:Math.min(e,...r.map(e=>e.start)),end:Math.max(t,...r.map(e=>e.end))}}function xe(e,t,n){let r=Y(e,t),i=Math.max(0,Math.min(n.selectionStart,e.length)),a=Math.max(i,Math.min(n.selectionEnd,e.length)),o=i,s=a;if(i===a)if(n.altKey)if(n.key===`Backspace`){for(;o>0&&/\s/.test(e[o-1]);)--o;for(;o>0&&!/\s/.test(e[o-1]);)--o}else{for(;s<e.length&&/\s/.test(e[s]);)s+=1;for(;s<e.length&&!/\s/.test(e[s]);)s+=1}else n.key===`Backspace`?o=Math.max(0,i-1):s=Math.min(e.length,i+1);if(o===s)return null;let c=r.filter(e=>e.start<s&&e.end>o);if(c.length===0)return null;let l=Math.min(o,...c.map(e=>e.start)),u=Math.max(s,...c.map(e=>e.end));return u<e.length&&/\s/.test(e[u])&&(l===0||/\s/.test(e[l-1]))?u+=1:u===e.length&&l>0&&/\s/.test(e[l-1])&&--l,{text:`${e.slice(0,l)}${e.slice(u)}`,caret:l,removedSkillNames:c.map(e=>e.name)}}function Se(e){return e.map(e=>({start:e.start,end:e.end,style:e.kind===`file`?`mentionFile`:e.kind===`session`?`mentionSession`:`mentionAgent`,visual:e.kind===`session`&&e.label?t({trigger:`@`,icon:`chat-thread`,label:e.label},i({trigger:`@`,icon:`chat-thread`,label:e.label})):void 0}))}function Z(e){let t=(0,A.c)(28),{visual:i,text:a}=e,o=i.trigger.length,s=o+i.label.length,c=s+(i.suffix?.length??0),l;t[0]!==s||t[1]!==o||t[2]!==a?(l=a.slice(o,Math.min(s,a.length)),t[0]=s,t[1]=o,t[2]=a,t[3]=l):l=t[3];let u=l,d;t[4]!==s||t[5]!==c||t[6]!==a?(d=a.slice(s,Math.min(c,a.length)),t[4]=s,t[5]=c,t[6]=a,t[7]=d):d=t[7];let f=d,p;t[8]!==c||t[9]!==a?(p=a.slice(Math.min(c,a.length)),t[8]=c,t[9]=a,t[10]=p):p=t[10];let m=p,h;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(h={left:n,right:n},t[11]=h):h=t[11];let g=i.icon,_;t[12]===g?_=t[13]:(_=(0,j.jsx)(`span`,{className:`pointer-events-none absolute inset-y-0 inline-flex items-center justify-center`,style:h,children:(0,j.jsx)(C,{name:g,className:`${r} shrink-0 text-[var(--primary)]`,"aria-hidden":`true`})}),t[12]=g,t[13]=_);let v;t[14]!==_||t[15]!==i.trigger?(v=(0,j.jsxs)(`span`,{className:`relative inline-block align-baseline text-transparent leading-none`,children:[i.trigger,_]}),t[14]=_,t[15]=i.trigger,t[16]=v):v=t[16];let y;t[17]===u?y=t[18]:(y=(0,j.jsx)(`span`,{children:u}),t[17]=u,t[18]=y);let b;t[19]===f?b=t[20]:(b=f?(0,j.jsx)(`span`,{className:`text-transparent`,children:f}):null,t[19]=f,t[20]=b);let x;t[21]===m?x=t[22]:(x=m?(0,j.jsx)(`span`,{className:`text-transparent`,children:m}):null,t[21]=m,t[22]=x);let S;return t[23]!==x||t[24]!==v||t[25]!==y||t[26]!==b?(S=(0,j.jsxs)(j.Fragment,{children:[v,y,b,x]}),t[23]=x,t[24]=v,t[25]=y,t[26]=b,t[27]=S):S=t[27],S}var Q=e=>({text:e.text,references:e.references.map(e=>({...e}))}),$=e=>e.map(e=>({...e,range:{...e.range}})),Ce=(e,t)=>e.text===t.text&&JSON.stringify(e.references)===JSON.stringify(t.references),we=(e,t,n)=>({document:Q(e),mentions:$(t),selection:{...n}}),Te=()=>({undo:[],redo:[]}),Ee=(e,t)=>({undo:[...e.undo,t].slice(-100),redo:[]}),De=(e,t)=>{let n=e.undo.at(-1);return!n||!Ce(n.after.document,t)?null:{history:{undo:e.undo.slice(0,-1),redo:[...e.redo,n]},snapshot:we(n.before.document,n.before.mentions,n.before.selection)}},Oe=(e,t)=>{let n=e.redo.at(-1);return!n||!Ce(n.before.document,t)?null:{history:{undo:[...e.undo,n],redo:e.redo.slice(0,-1)},snapshot:we(n.after.document,n.after.mentions,n.after.selection)}},ke=e=>{if(e.altKey||e.ctrlKey||e.metaKey)return!1;switch(e.key){case`ArrowUp`:case`PageUp`:case`Home`:return!0;default:return!1}},Ae=(e,t,n)=>{let r=t instanceof Element?t:t instanceof Node?t.parentElement:null;for(;r&&r!==e;){if(r instanceof HTMLElement){let e=r.scrollHeight-r.clientHeight;if(e>1&&(n===`up`?r.scrollTop>0:r.scrollTop<e-1))return!0}r=r.parentElement}return!1},je=(e,t)=>Ae(e,t,`up`),Me=(e,t)=>Ae(e,t,`down`),Ne=e=>{let t=(0,A.c)(15),{scrollRef:n,enabled:r,onUpwardIntent:i}=e,a=r===void 0||r,o=k.useRef(null),s;t[0]===i?s=t[1]:(s=()=>{i()},t[0]=i,t[1]=s);let c=g(s),l;t[2]!==c||t[3]!==n?(l=e=>{let t=n.current;t&&(e.deltaY>=0||t instanceof HTMLElement&&(je(t,e.target)||c()))},t[2]=c,t[3]=n,t[4]=l):l=t[4];let u=g(l),d;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>{let t=e.touches.item(0);o.current=t?t.clientY:null},t[5]=d):d=t[5];let f=g(d),p;t[6]!==c||t[7]!==n?(p=e=>{let t=n.current,r=e.touches.item(0);if(!r){o.current=null;return}let i=o.current;o.current=r.clientY,i!==null&&(r.clientY-i<=2||!t||!(t instanceof HTMLElement)||je(t,e.target)||c())},t[6]=c,t[7]=n,t[8]=p):p=t[8];let m=g(p),h;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{o.current=null},t[9]=h):h=t[9];let v=g(h),y;t[10]===c?y=t[11]:(y=e=>{ke(e)&&c()},t[10]=c,t[11]=y);let b=g(y),[x,S]=k.useState(null),C;t[12]===n?C=t[13]:(C=()=>{let e=n.current??null;S(t=>t===e?t:e)},t[12]=n,t[13]=C),k.useEffect(C);let w=a&&x?x:Pe,T;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(T={passive:!0},t[14]=T):T=t[14];let E=T;_(`wheel`,u,w,E),_(`touchstart`,f,w,E),_(`touchmove`,m,w,E),_(`touchend`,v,w,E),_(`touchcancel`,v,w,E),_(`keydown`,b,w)};function Pe(){}var Fe=e=>{if(typeof e!=`number`||!Number.isFinite(e))return;let t=Math.trunc(e);return t>=0?t:void 0},Ie=e=>{if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e.summary;return!t||typeof t!=`object`||Array.isArray(t)?null:t},Le=e=>{let t=Fe(e);return t!==void 0&&t>0?t:void 0};function Re(e){let t=Ie(e);if(!t)return null;let n=Le(t.additions),r=Le(t.deletions),i=Le(t.files)??Le(t.diffCount);return n===void 0&&r===void 0&&i===void 0?null:{...n===void 0?{}:{additions:n},...r===void 0?{}:{deletions:r},...i===void 0?{}:{files:i}}}function ze(e){if(!e)return null;let t=[];return e.additions!==void 0&&e.additions>0&&t.push(`+${e.additions}`),e.deletions!==void 0&&e.deletions>0&&t.push(`−${e.deletions}`),t.length>0?t.join(` `):null}function Be(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=typeof t.providerID==`string`?t.providerID.trim():``,r=typeof t.modelID==`string`?t.modelID.trim():``;if(n&&r)return`${n}/${r}`;let i=t.model;if(typeof i==`string`&&i.trim())return i.trim();if(i&&typeof i==`object`&&!Array.isArray(i)){let e=i,t=typeof e.providerID==`string`?e.providerID.trim():typeof e.provider==`string`?e.provider.trim():``,n=typeof e.modelID==`string`?e.modelID.trim():typeof e.id==`string`?e.id.trim():``;if(t&&n)return`${t}/${n}`}return null}function Ve(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e;if(typeof t.branch==`string`&&t.branch.trim())return t.branch.trim();let n=t.project;if(n&&typeof n==`object`&&!Array.isArray(n)){let e=n.branch;if(typeof e==`string`&&e.trim())return e.trim()}return null}export{se as A,_e as C,ue as D,de as E,ne as M,F as N,B as O,P,be as S,fe as T,q as _,ke as a,X as b,Ne as c,Ee as d,Oe as f,Y as g,J as h,Be as i,re as j,R as k,we as l,Z as m,Ve as n,Me as o,De as p,Re as r,je as s,ze as t,Te as u,K as v,H as w,xe as x,Se as y};
@@ -1 +0,0 @@
1
- :is(.oc-mobile-composer,.oc-hold-to-talk-container)[data-hold-to-talk-empty=true] textarea,:is(.oc-mobile-composer,.oc-hold-to-talk-container)[data-hold-to-talk-empty=true] textarea::placeholder,:is(.oc-mobile-composer,.oc-hold-to-talk-container)[data-hold-to-talk-empty=true] [data-oc-composer-compact-surface]{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.oc-speech-overlay{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;z-index:9999;pointer-events:none;color:var(--surface-foreground);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-foreground) 94%, transparent), color-mix(in srgb, var(--surface-foreground) 82%, transparent) 30%, color-mix(in srgb, var(--surface-foreground) 48%, transparent) 50%, color-mix(in srgb, var(--surface-foreground) 82%, transparent) 70%, color-mix(in srgb, var(--surface-foreground) 94%, transparent));animation:.24s ease-out both oc-speech-in;position:fixed;inset:0;overflow:hidden}.oc-speech-light-field{height:48vh;min-height:210px;position:absolute;inset:0 0 auto;overflow:hidden}.oc-speech-reactor{--speech-color:var(--surface-background);transform-origin:50% 26%;opacity:.28;position:absolute}.oc-speech-light{background:radial-gradient(ellipse at 50% 26%, color-mix(in srgb, var(--speech-color) 40%, transparent), color-mix(in srgb, var(--speech-color) 14%, transparent) 30%, transparent 74%);animation:7s ease-in-out infinite oc-speech-flow;position:absolute;inset:0}.oc-speech-reactor--ice{width:90%;height:190px;top:-40px;left:-8%}.oc-speech-reactor--lilac{width:90%;height:180px;top:-30px;right:-8%}.oc-speech-reactor--lilac .oc-speech-light{animation-duration:8s;animation-delay:-2s}.oc-speech-reactor--mint,.oc-speech-reactor--blush{display:none}.oc-speech-reactor--mid{opacity:.2;width:80%;height:175px;top:-22px;left:10%}.oc-speech-reactor--core{width:116%;height:250px;transform:scale(calc(.74 + var(--speech-energy) * .84));opacity:calc(.1 + var(--speech-energy) * .78);transition:transform .1s ease-out,opacity .1s ease-out;top:-46px;left:-8%}.oc-speech-reactor--core .oc-speech-light{animation:none}.oc-speech-content{top:calc(max(env(safe-area-inset-top), 20px) + 68px);text-align:center;color:var(--surface-background);animation:.5s cubic-bezier(.2,.8,.25,1) both oc-speech-content-in;position:absolute;left:32px;right:32px}.oc-speech-caption{overflow-wrap:anywhere;white-space:pre-wrap;max-height:5.4em;font-size:calc(18 * var(--dpt));letter-spacing:.25px;flex-direction:column;justify-content:flex-end;font-weight:620;line-height:1.8;animation:2.4s ease-in-out infinite oc-speech-breathe;display:flex;overflow:clip}.oc-speech-caption>*{flex-shrink:0}.oc-speech-overlay[data-error=true]{pointer-events:auto;touch-action:none}.oc-speech-content[data-starting=true]{animation:none}.oc-speech-loading{justify-content:center;align-items:center;gap:7px;height:26px;display:inline-flex}.oc-speech-loading>span{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.05s ease-in-out infinite oc-speech-dot}.oc-speech-loading>span:nth-child(2){animation-delay:.15s}.oc-speech-loading>span:nth-child(3){animation-delay:.3s}.oc-speech-error{color:var(--status-error);animation:none}.oc-speech-interim{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 58%, transparent);text-decoration-color:color-mix(in srgb, currentColor 58%, transparent);text-underline-offset:4px}.oc-speech-gesture-stage{--speech-stage-bottom:calc(env(safe-area-inset-bottom) + 32px);padding-bottom:var(--speech-stage-bottom);background:linear-gradient(transparent calc(100% - var(--speech-stage-bottom)), color-mix(in srgb, var(--surface-background) 72%, var(--surface-foreground)) 0);position:absolute;inset:auto 0 0}.oc-speech-gesture-surfaces{position:relative}.oc-speech-target-glass{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:absolute;inset:0}.oc-speech-geometry{width:100%;height:auto;display:block;position:relative;overflow:visible}.oc-speech-target{font-size:calc(20 * var(--dpt));opacity:1;font-weight:600}.oc-speech-target path{fill:color-mix(in srgb, var(--surface-background) 12%, transparent);transition:fill .18s}.oc-speech-target text{fill:var(--surface-background)}.oc-speech-target[data-active=true] path{fill:color-mix(in srgb, var(--surface-background) 40%, transparent)}.oc-speech-hold-arc{stroke:color-mix(in srgb, var(--surface-background) 65%, var(--surface-foreground));stroke-width:4px}.oc-speech-arc-top{stop-color:color-mix(in srgb, var(--surface-background) 55%, var(--surface-foreground))}.oc-speech-arc-bottom{stop-color:color-mix(in srgb, var(--surface-background) 72%, var(--surface-foreground))}.oc-mobile-composer:is([data-dictation-hint=recording],[data-dictation-hint=cancelling],[data-dictation-hint=editing]) :is(.oc-mobile-composer-surface,.oc-mobile-composer-compact-layer){opacity:0}@keyframes oc-speech-in{0%{opacity:0}to{opacity:1}}@keyframes oc-speech-dot{0%,70%,to{transform:scale(.65)}35%{transform:scale(1.25)}}@keyframes oc-speech-content-in{0%{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}@keyframes oc-speech-flow{0%,to{opacity:.65;transform:translateY(-3px)}50%{opacity:.85;transform:translateY(5px)}}@keyframes oc-speech-breathe{0%,to{opacity:.84}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.oc-speech-overlay,.oc-speech-overlay *{transition:none;animation:none}}