@openchambery/web 1.19.0-beta.2 → 1.19.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/assets/{AssistantView-CeUftH6a.js → AssistantView-BmrllM8T.js} +1 -1
  2. package/dist/assets/{ChatContainer-CE5B7ZoY.js → ChatContainer-BTOShmJo.js} +26 -26
  3. package/dist/assets/{ContextPanel-DjVgMdd_.js → ContextPanel-DrOpxE_Z.js} +3 -3
  4. package/dist/assets/{DiagramView-88VdZTFC.js → DiagramView-CkAyvW7S.js} +1 -1
  5. package/dist/assets/{MarkdownRendererImpl-CEt2m_LG.js → MarkdownRendererImpl-B0eBCtyD.js} +1 -1
  6. package/dist/assets/{MobileDetailNavigation-CHQkDyla.js → MobileDetailNavigation-DL4SVma_.js} +1 -1
  7. package/dist/assets/{MobileShareBridge-MNVYAQpx.js → MobileShareBridge-FZ2V3gRM.js} +1 -1
  8. package/dist/assets/{MobileSurface-Cy5O2ftE.js → MobileSurface-DeRexDW2.js} +1 -1
  9. package/dist/assets/{MultiRunWindow-CkLAQu2a.js → MultiRunWindow-D-kO7Hwi.js} +1 -1
  10. package/dist/assets/{SettingsView-BJsctYMK.js → SettingsView-yNqH1aC2.js} +1 -1
  11. package/dist/assets/{SettingsWindow-Cnpe6LNU.js → SettingsWindow-L92_gMCL.js} +1 -1
  12. package/dist/assets/{TerminalView--pkloV1B.js → TerminalView-D4W3gUrF.js} +1 -1
  13. package/dist/assets/{ToolOutputDialog-UAKu6b6Z.js → ToolOutputDialog-CpMU9Jmc.js} +1 -1
  14. package/dist/assets/{appThemeRegistry-rYIBRFtf.js → appThemeRegistry-DohSaUlr.js} +2 -2
  15. package/dist/assets/{gitApi-DFM6mFMX.js → gitApi-BIqXEOV4.js} +1 -1
  16. package/dist/assets/{insertionBoundaries-TTdO3GIW.js → insertionBoundaries-9AGImjk0.js} +1 -1
  17. package/dist/assets/{main-8ssH8Y4M.js → main-BtWdJ1o-.js} +2 -2
  18. package/dist/assets/{main-C4oheRdM.js → main-CnioFiw7.js} +3 -3
  19. package/dist/assets/{miniChat-BqeOJlOz.js → miniChat-CJzPIIkQ.js} +2 -2
  20. package/dist/assets/{mobile-DUjVfFN8.js → mobile-CvkyrtMY.js} +2 -2
  21. package/dist/assets/{multirun-BXVQPFEG.js → multirun-BjeA-Baw.js} +1 -1
  22. package/dist/assets/{projectMeta-BhIldO_1.js → projectMeta-BP0IYkad.js} +1 -1
  23. package/dist/assets/{radio-C9bw93S2.js → radio-dL5rRE7d.js} +1 -1
  24. package/dist/assets/{renderElectronMiniChatApp-B2ocXqU0.js → renderElectronMiniChatApp-Dzfy8-St.js} +2 -2
  25. package/dist/assets/{renderMobileApp-t_yjiog8.js → renderMobileApp-Bi1Sm_lT.js} +5 -5
  26. package/dist/assets/{runtimeConfig-DYtQIAm-.js → runtimeConfig-DMpRvT8y.js} +1 -1
  27. package/dist/assets/{runtimeEndpointReset-ZrxbCvpe.js → runtimeEndpointReset-C6_MkS3Z.js} +1 -1
  28. package/dist/assets/{shikiHighlight-p0HAuVf6.js → shikiHighlight-CGuRQJIr.js} +1 -1
  29. package/dist/assets/{src-BDOLh3pc.css → src-RGaBtbGz.css} +1 -1
  30. package/dist/assets/{useAppFontEffects-apga0HM5.js → useAppFontEffects-Dlfg51WY.js} +2 -2
  31. package/dist/assets/{useDesktopWindowControlsLayout-CB7n5UfN.js → useDesktopWindowControlsLayout-B6l3XRlk.js} +1 -1
  32. package/dist/assets/{useEffectiveDirectory-Dc_c8Epe.js → useEffectiveDirectory-DrRShKin.js} +1 -1
  33. package/dist/assets/{useMobileNavigationStore-FXDlG_jH.js → useMobileNavigationStore-CncTmwzO.js} +1 -1
  34. package/dist/assets/{useSessionAutoCleanup-CJ7ugpXZ.js → useSessionAutoCleanup-BkMesfd-.js} +1 -1
  35. package/dist/assets/{useWorkerHighlightedLines-CVxu41TS.js → useWorkerHighlightedLines-DXDqlnez.js} +1 -1
  36. package/dist/index.html +3 -3
  37. package/dist/mini-chat.html +3 -3
  38. package/dist/mobile.html +3 -3
  39. package/package.json +1 -1
@@ -1 +1 @@
1
- import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{A as n,E as r,t as i,w as a}from"./useUIStore-DzwCfRqr.js";import{$t as o,Ot as s,et as c,rt as l,yt as u}from"./persistence-6sclr7B6.js";import{nt as d,rt as f}from"./vendor-base-ui-CnHfUmDN.js";import{r as p}from"./platform-CbeLpKPk.js";import{n as m}from"./vendor-react-DLPElpoQ.js";import{r as h}from"./vendor-sonner-DVzioF3d.js";import{n as g}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as ee}from"./clipboard-DWuULPzo.js";import{a as _,n as v,s as y}from"./MobileShareBridge-MNVYAQpx.js";import{Fo as b,Ja as x,Si as te,Vi as S,Xr as C,Za as w,_n as T,bo as E,cn as D,ei as O,gn as k,hn as A,o as j,rn as M,ua as N,xo as P}from"./useMobileNavigationStore-FXDlG_jH.js";import{_ as F,a as I,c as L,d as R,f as z,g as ne,l as re,n as ie,o as ae,p as B,r as oe,t as V,v as H,x as U,y as se}from"./MobileDetailNavigation-CHQkDyla.js";import{i as ce,r as le}from"./useAssistantUIStore-BHsHXCKE.js";import{t as ue}from"./AgentAvatar-DDcjamcJ.js";import{t as de}from"./utils-B1EK5zKa.js";import{n as fe}from"./Icon-DpjYnXxn.js";import{a as pe,i as me,n as W,o as G,r as K,t as q}from"./dialog-DPS0W9eS.js";import{t as he}from"./button-C7OXr4ae.js";import{i as ge}from"./OverlayScrollbar-Ch3J6ASR.js";import{J as _e,L as ve,N as ye,P as J,R as be,t as xe}from"./ChatContainer-CE5B7ZoY.js";import{t as Se}from"./ContextPanel-DjVgMdd_.js";import{a as Ce,c as we,l as Te,o as Ee,s as De}from"./shikiHighlight-p0HAuVf6.js";var Y=e(f(),1),Oe=m(),X=e=>e.isVSCode||e.isPhoneShell||e.isMobile&&!e.isIPad?`session`:`context-panel`,Z=d(),ke=e=>{let t=(0,Oe.c)(56),{assistant:n,sessionID:r,warning:a,surface:s,onRevertMessage:c,onEditMessage:l,pendingUserMessages:u,onPendingUserMessagesMaterialized:d}=e,{t:f}=ee(),{isMobile:m}=ge(),h=n.effectiveWorkspacePath,_;t[0]!==n.sessionGeneration||t[1]!==r?(_={sessionID:r,sessionGeneration:n.sessionGeneration},t[0]=n.sessionGeneration,t[1]=r,t[2]=_):_=t[2];let v=H(n.id,_,s.active);v.data?.pages;let y;t[3]===v.data?.pages?y=t[4]:(y=v.data?.pages??[],t[3]=v.data?.pages,t[4]=y);let b;t[5]===y?b=t[6]:(b=te(y),t[5]=y,t[6]=b);let x=b,S;if(t[7]!==x){S=new Map;for(let e of x){let t=S.get(e.sessionID);S.set(e.sessionID,t===void 0||t===e.directory?e.directory:null)}t[7]=x,t[8]=S}else S=t[8];let C=S,w;t[9]===v?w=t[10]:(w=async()=>{(v.hasNextPage||v.isFetchNextPageError)&&await v.fetchNextPage()},t[9]=v,t[10]=w);let E=g(w),D=n.mode===`continuous`,O=ye(),A;t[11]===O?A=t[12]:(A=O&&!p(),t[11]=O,t[12]=A);let j=!!A,M;t[13]===j?M=t[14]:(M=(e,t)=>{T(e,t,{phoneShell:j,switchToChat:!0})},t[13]=j,t[14]=M);let N=g(M),P;t[15]!==h||t[16]!==C||t[17]!==N||t[18]!==r?(P=(e,t)=>{let n=e===r?h:C.get(e);if(!n||n!==t){k(e,`missing-directory`);return}N(e,t)},t[15]=h,t[16]=C,t[17]=N,t[18]=r,t[19]=P):P=t[19];let F=g(P),I;t[20]!==m||t[21]!==j||t[22]!==N||t[23]!==f?(I=(e,t)=>{let n=e.trim(),r=t.trim();if(!n){k(e,`missing-session-id`);return}if(!r){k(n,`missing-directory`);return}if(X({isPhoneShell:j,isMobile:m,isIPad:p(),isVSCode:o()})===`session`){N(n,r);return}i.getState().openContextPanelTab(r,{mode:`chat`,dedupeKey:`session:${n}`,label:f(`contextPanel.mode.chat`),readOnly:!0})},t[20]=m,t[21]=j,t[22]=N,t[23]=f,t[24]=I):I=t[24];let L=g(I),R;t[25]===D?R=t[26]:(R={...J,forkSession:!1,mutateSession:D},t[25]=D,t[26]=R);let z;t[27]===l?z=t[28]:(z=l?{onEditMessage:l}:{},t[27]=l,t[28]=z);let ne;t[29]!==h||t[30]!==L||t[31]!==c||t[32]!==F||t[33]!==r||t[34]!==s.active||t[35]!==s.surfaceID||t[36]!==z||t[37]!==R?(ne={kind:`embedded`,surfaceId:s.surfaceID,sessionId:r,directory:h,active:s.active,capabilities:R,navigateSession:L,onRevertMessage:c,...z,openSourceSession:F},t[29]=h,t[30]=L,t[31]=c,t[32]=F,t[33]=r,t[34]=s.active,t[35]=s.surfaceID,t[36]=z,t[37]=R,t[38]=ne):ne=t[38];let re=ne,ie=v.isError||v.isSuccess&&!v.hasNextPage,ae=v.isLoading||v.isFetchingNextPage,B;t[39]!==E||t[40]!==ie||t[41]!==x||t[42]!==ae?(B={entries:x,complete:ie,loading:ae,fetchPrevious:E},t[39]=E,t[40]=ie,t[41]=x,t[42]=ae,t[43]=B):B=t[43];let oe;t[44]!==h||t[45]!==d||t[46]!==c||t[47]!==u||t[48]!==r||t[49]!==re||t[50]!==s||t[51]!==B||t[52]!==a?(oe={sessionId:r,directory:h,composerSurface:s,sessionSurface:re,warning:a,pendingUserMessages:u,onPendingUserMessagesMaterialized:d,assistantHistory:B,onRevertMessage:c},t[44]=h,t[45]=d,t[46]=c,t[47]=u,t[48]=r,t[49]=re,t[50]=s,t[51]=B,t[52]=a,t[53]=oe):oe=t[53];let V=oe,U;return t[54]===V?U=t[55]:(U=(0,Z.jsx)(xe,{autoOpenDraft:!1,host:V}),t[54]=V,t[55]=U),U},Ae=class extends Error{constructor(){super(`assistant_selection_stale`)}},Q=(e,t)=>e.assistantID===t.assistantID&&e.transportIdentity===t.transportIdentity&&e.runtimeGeneration===t.runtimeGeneration,je=class{onBusyChange;onError;flight=null;authoritativeIdentity=null;constructor(e,t){this.onBusyChange=e,this.onError=t}activate(e){this.authoritativeIdentity&&!Q(this.authoritativeIdentity,e)&&this.flight&&this.retire(this.flight),this.authoritativeIdentity=e}enqueue(e,t,n){if(!this.isAuthoritative(e))return Promise.reject(new Ae);let r=this.flight;r||(r={identity:e,controller:new AbortController,running:!1,desired:null,waiters:[],activeWaiters:[],idleWaiters:[],retired:!1},this.flight=r),r.desired=t;let i=new Promise((e,t)=>{r.waiters.push({resolve:e,reject:t})});return r.running||(r.running=!0,this.onBusyChange(!0),this.run(r,n)),i}async flush(e){if(!this.isAuthoritative(e))throw new Ae;let t=this.flight;t?.running&&await new Promise((e,n)=>t.idleWaiters.push({resolve:e,reject:n}))}assertAuthoritative(e){if(!this.isAuthoritative(e))throw new Ae}dispose(){this.flight&&this.retire(this.flight),this.authoritativeIdentity=null}async run(e,t){for(;!e.retired&&e.desired;){let n=e.desired;e.desired=null;let r=e.waiters.splice(0);e.activeWaiters=r;try{if(await t({identity:e.identity,selection:n,signal:e.controller.signal}),!e.retired)for(let e of r)e.resolve()}catch(t){if(!e.retired){this.onError(t);for(let e of r)e.reject(t)}}e.activeWaiters=[]}e.running=!1;for(let t of e.idleWaiters.splice(0))t.resolve();this.flight===e&&this.onBusyChange(!1)}retire(e){e.retired=!0,e.controller.abort();let t=new Ae;for(let n of e.activeWaiters.splice(0))n.reject(t);for(let n of e.waiters.splice(0))n.reject(t);for(let n of e.idleWaiters.splice(0))n.reject(t);this.flight===e&&(this.flight=null,this.onBusyChange(!1))}isAuthoritative(e){return this.authoritativeIdentity!==null&&Q(this.authoritativeIdentity,e)}},Me=(e,t)=>{let n=t.providerID??e.providerID,r=t.modelID??e.modelID,i=n!==e.providerID||r!==e.modelID;return{enabled:e.enabled,name:e.name,defaultPrompt:e.defaultPrompt,workspacePath:e.workspacePath,providerID:n,modelID:r,agent:t.agent??null,variant:i?null:t.variant??null,mode:e.mode}},Ne=async(e,t,n)=>{n.assertAuthoritative();let r=n.readSnapshot()?.assistants.find(t=>t.id===e.assistantID);if(!r)throw Error(`assistant_unavailable`);try{n.assertAuthoritative(),await n.updateAssistant(r,Me(r,t)),n.assertAuthoritative()}catch(i){if(n.assertAuthoritative(),n.signal.aborted)throw new Ae;if(!(i instanceof U)||i.code!==`revision_conflict`)throw i;if(n.assertAuthoritative(),r=(await n.ensureSnapshot(n.signal)).assistants.find(t=>t.id===e.assistantID),n.assertAuthoritative(),!r)throw new U(`revision_conflict`,409);n.assertAuthoritative(),await n.updateAssistant(r,Me(r,t)),n.assertAuthoritative()}};async function Pe(e){await I(e);let t=ce.getState().defaultShareAssistant;if(t?.assistantID!==e.id)return;let n=await L();n.serverInstanceID&&t.serverInstanceID===n.serverInstanceID&&ce.getState().setDefaultShareAssistant(null)}function Fe({assistant:e,open:t,onOpenChange:n,onDeleted:r}){let{t:i}=ee(),[a,o]=Y.useState(!1),s=e?_(e.name).displayName||e.name:``,c=g(e=>{a&&!e||n(e)}),l=g(()=>{a||n(!1)}),u=g(async()=>{if(!(!e||a)){o(!0);try{await Pe(e),r?.(e.id),n(!1),h.success(i(`assistants.settings.toast.deleted`))}catch{h.error(i(`assistants.settings.toast.deleteFailed`))}finally{o(!1)}}});return(0,Z.jsx)(q,{open:t&&e!==null,onOpenChange:c,children:(0,Z.jsxs)(W,{className:`max-w-md`,children:[(0,Z.jsxs)(pe,{children:[(0,Z.jsx)(G,{children:i(`assistants.settings.delete`)}),(0,Z.jsx)(K,{children:i(`assistants.settings.deleteConfirm`,{name:s})})]}),(0,Z.jsxs)(me,{children:[(0,Z.jsx)(he,{size:`sm`,variant:`ghost`,onClick:l,disabled:a,children:i(`settings.common.actions.cancel`)}),(0,Z.jsx)(he,{size:`sm`,variant:`destructive`,onClick:u,disabled:a,children:i(`settings.common.actions.delete`)})]})]})})}var Ie=[0,500,1500,4e3],Le=(e,t,n)=>{let r=!1,i=e.map(e=>e.info.id!==t||e.info.sessionID===n?e:(r=!0,{...e,info:{...e.info,sessionID:n}}));return r?i:e},Re=e=>{let t=e.refreshDelaysMs??Ie,n=e.sleep??(e=>new Promise(t=>setTimeout(t,e)));(async()=>{for(let r of t){if(r>0&&await n(r),!e.isCurrent())return;try{await e.refresh(e.binding);break}catch{}}})()},ze=e=>`${e.transport}\u0000${e.assistantID}`,Be=e=>({transport:e.transport,assistantID:e.assistantID}),Ve=(e,t)=>e.assistantID===t.assistantID&&e.sessionID===t.sessionID&&e.directory===t.directory&&e.sessionGeneration===t.sessionGeneration&&e.transport===t.transport&&e.runtimeGeneration===t.runtimeGeneration,He=(e,t)=>e.assistantID===t.assistantID&&e.sessionID===t.sessionID&&e.directory===t.directory&&e.sessionGeneration===t.sessionGeneration&&e.messageID===t.messageID&&e.transport===t.transport&&e.runtimeGeneration===t.runtimeGeneration,Ue=()=>{let e=new Map,t=new Map,n=1,r=e=>ze(e),i=async(e,n)=>{let i=r(e),a=t.get(i)??Promise.resolve(),o,s=new Promise(e=>{o=e}),c=a.catch(()=>void 0).then(()=>s);t.set(i,c),await a.catch(()=>void 0);try{return await n()}finally{o(),t.get(i)===c&&t.delete(i)}},a=(t,i)=>{let a=r(Be(t)),o=n++;return e.set(a,{identity:t,rollback:i,token:o}),o},o=t=>e.get(r(t))?.identity,s=t=>e.delete(r(t)),c=async e=>i(e,()=>s(e)),l=async t=>{let n=r(t),i=e.get(n);if(!i)return{kind:`none`};let a=i.token,o=i.identity,s;try{s=await i.rollback()}catch{return{kind:`blocked`,status:`failed`}}let c=e.get(n);return!c||c.token!==a||!He(c.identity,o)?{kind:`superseded`}:s.status===`rolled-back`||s.status===`conflict`?(e.delete(n),{kind:`cleared`,status:s.status}):{kind:`blocked`,status:s.status}},u=async(t,n)=>{let i=r(t),a=e.get(i);if(!a)return{kind:`none`};if(Ve(a.identity,n))return{kind:`match`};let o=a.token,s=a.identity,c=await a.rollback(),l=e.get(i);return!l||l.token!==o||!He(l.identity,s)?{kind:`superseded`}:c.status===`rolled-back`||c.status===`conflict`?(e.delete(i),{kind:`cleared`,status:c.status}):{kind:`rollback_failed`,retained:!0,status:c.status}};return{register:a,read:o,clear:s,clearExclusive:c,retireCurrent:l,rollbackAndClearIfBindingMismatch:async(e,t)=>i(e,()=>u(e,t)),rollbackAllBestEffort:async t=>{let n=[...e.entries()];await Promise.all(n.map(async([,n])=>{if(t?.excludeTransport!==void 0&&n.identity.transport===t.excludeTransport)return;let a=Be(n.identity);await i(a,async()=>{let t=r(a),i=e.get(t);if(!i||i.token!==n.token)return;let o=i.token,s=i.identity;try{let n=await i.rollback(),r=e.get(t);if(!r||r.token!==o||!He(r.identity,s))return;(n.status===`rolled-back`||n.status===`conflict`)&&e.delete(t)}catch{}})}))},stageExclusive:async(e,t)=>i(e,async()=>{let n=await l(e);if(n.kind===`blocked`)return{kind:`blocked`,status:n.status};let r=await t();if(!r)return{kind:`skipped`};let i=a(r.identity,r.rollback);return r.protectOnStale?{kind:`stale_protected`,token:i,identity:r.identity}:{kind:`registered`,token:i,identity:r.identity}})}},We=(e,t)=>!e?.attachments?.length||!t?[]:e.attachments.flatMap(e=>{let n=t[e.attachmentRefID];return n?[n]:[]}),Ge=(e,t)=>{let n=t??{};return e.map(e=>({partID:e.partID,text:e.text,...e.synthetic===!0?{synthetic:!0}:{},attachments:e.attachments.flatMap(e=>n[e.attachmentRefID]?[n[e.attachmentRefID]]:[])}))},Ke=(e,t)=>{if(t.length===0)return[...e];let n=new Map;for(let t of e)n.set(t.partID,t);for(let e of t)n.set(e.partID,e);let r=new Set,i=[];for(let t of e){let e=n.get(t.partID);e&&(i.push(e),r.add(t.partID))}for(let e of t)r.has(e.partID)||(i.push(e),r.add(e.partID));return i},qe=t({AssistantView:()=>et}),Je={},Ye=[],Xe=[],Ze=(e,t,n)=>[...e===void 0?[]:[{type:`text`,text:e}],...(t??[]).flatMap(e=>[{type:`text`,text:e.text,...e.synthetic===!0?{synthetic:!0}:{}},...(e.attachments??[]).map(e=>({type:`file`,mime:e.mimeType,url:e.dataUrl}))]),...(n??[]).map(e=>({type:`file`,mime:e.mimeType,url:e.dataUrl}))],Qe=e=>{let t=(0,Oe.c)(11),{assistant:n,onBack:r}=e,{t:i}=ee(),a;t[0]===n?a=t[1]:(a=n?_(n.name):null,t[0]=n,t[1]=a);let o=a,s=n&&o?o.displayName||n.name:``,c;t[2]!==s||t[3]!==i?(c=s||i(`assistants.title`),t[2]=s,t[3]=i,t[4]=c):c=t[4];let l;t[5]===i?l=t[6]:(l=i(`assistants.actions.backToChat`),t[5]=i,t[6]=l);let u;return t[7]!==r||t[8]!==c||t[9]!==l?(u=(0,Z.jsx)(V,{title:c,backAriaLabel:l,onBack:r}),t[7]=r,t[8]=c,t[9]=l,t[10]=u):u=t[10],u},$e=e=>{let t=(0,Oe.c)(45),{assistantID:n,displayName:r,avatarEmoji:i,modeLabel:a,selected:o,enabled:s,editLabel:c,deleteLabel:l,onSelect:u,onEdit:d,onDelete:f}=e,[p,m]=Y.useState(!1),h;t[0]===u?h=t[1]:(h=()=>u(),t[0]=u,t[1]=h);let ee=g(h),_;t[2]===d?_=t[3]:(_=()=>{m(!1),d()},t[2]=d,t[3]=_);let v=g(_),y;t[4]===f?y=t[5]:(y=()=>{m(!1),f()},t[4]=f,t[5]=y);let b=g(y),x;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{e.preventDefault(),m(!0)},t[6]=x):x=t[6];let te=o?`border-border/50 bg-[var(--surface-elevated)]`:`border-transparent hover:bg-interactive-hover`,S=!s&&`opacity-65`,C;t[7]!==te||t[8]!==S?(C=de(`flex w-full min-h-11 items-center gap-3 rounded-xl border px-3 py-3 text-left outline-none transition-[background-color,border-color,transform,opacity] duration-150 ease-out active:scale-[0.995] focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] motion-reduce:transition-none`,te,S),t[7]=te,t[8]=S,t[9]=C):C=t[9];let w;t[10]!==ee||t[11]!==o||t[12]!==C?(w=(0,Z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":o,onClick:ee,onContextMenu:x,className:C}),t[10]=ee,t[11]=o,t[12]=C,t[13]=w):w=t[13];let T;t[14]!==n||t[15]!==i||t[16]!==r?(T=(0,Z.jsx)(ue,{name:n,emoji:i,size:24,label:r}),t[14]=n,t[15]=i,t[16]=r,t[17]=T):T=t[17];let E;t[18]===r?E=t[19]:(E=(0,Z.jsx)(`span`,{className:`block truncate typography-ui-label font-medium`,children:r}),t[18]=r,t[19]=E);let D;t[20]===a?D=t[21]:(D=(0,Z.jsx)(`span`,{className:`mt-0.5 block truncate typography-micro text-muted-foreground`,children:a}),t[20]=a,t[21]=D);let O;t[22]!==E||t[23]!==D?(O=(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[E,D]}),t[22]=E,t[23]=D,t[24]=O):O=t[24];let k;t[25]!==O||t[26]!==w||t[27]!==T?(k=(0,Z.jsxs)(Te,{render:w,children:[T,O]}),t[25]=O,t[26]=w,t[27]=T,t[28]=k):k=t[28];let A;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Z.jsx)(fe,{name:`edit`,className:`size-4`}),t[29]=A):A=t[29];let j;t[30]!==c||t[31]!==v?(j=(0,Z.jsxs)(De,{onClick:v,children:[A,c]}),t[30]=c,t[31]=v,t[32]=j):j=t[32];let M;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,Z.jsx)(we,{}),t[33]=M):M=t[33];let N;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Z.jsx)(fe,{name:`delete-bin`,className:`size-4`}),t[34]=N):N=t[34];let P;t[35]!==l||t[36]!==b?(P=(0,Z.jsxs)(De,{onClick:b,className:`text-[var(--status-error)] focus:text-[var(--status-error)] data-[highlighted]:text-[var(--status-error)] [&_svg]:text-[var(--status-error)]`,children:[N,l]}),t[35]=l,t[36]=b,t[37]=P):P=t[37];let F;t[38]!==j||t[39]!==P?(F=(0,Z.jsxs)(Ee,{className:`min-w-[10rem]`,children:[j,M,P]}),t[38]=j,t[39]=P,t[40]=F):F=t[40];let I;return t[41]!==p||t[42]!==k||t[43]!==F?(I=(0,Z.jsxs)(Ce,{open:p,onOpenChange:m,children:[k,F]}),t[41]=p,t[42]=k,t[43]=F,t[44]=I):I=t[44],I},et=({activeOverride:e,onMobileBack:t})=>{let{t:o}=ee(),{isMobile:d}=ge(),f=ye(),p=Y.useSyncExternalStore(n,r,r),m=a(),te=i(e=>e.activeMainTab===`assistant`),T=e??te,k=i(e=>e.isMobile),I=d||k,L=F(),V=se(),H=V.data,U=ce(e=>e.assistantByTransport[p]??null),pe=ce(e=>e.selectAssistant),me=ce(e=>e.requestCreate),W=H?.assistants.find(e=>e.id===U)??null,G=W?.id??``,K=W?.sessionID??``,q=W?.effectiveWorkspacePath??``,J=Y.useMemo(()=>s({transportIdentity:p},`assistant:${G}`),[G,p]),xe=u(J),Ce=b(e=>e.draftAttachmentViews[xe]??Je),we=b(e=>e.drafts[xe]),Te=Y.useMemo(()=>{let e=We(we,Ce);return e.length===0?Ye:e},[Ce,we]),Ee=we?.attachments,De=we?.syntheticParts,Oe=Y.useMemo(()=>!Ee||!De?``:`${Ee.map(e=>e.attachmentRefID).join(``)}\u0004${De.map(e=>`${e.partID}\u0002${e.attachments.map(e=>e.attachmentRefID).join(``)}`).join(``)}`,[Ee,De]);Y.useEffect(()=>{G&&b.getState().hydrateDraftAttachments(J)},[G,J,Oe]);let X=P(q||null,{enabled:!!q&&T}),Q=E(q||null,{enabled:!!q&&T}),Me=M(K,q||void 0),Pe=D(K,q||void 0),Ie=A(K),ze=_e(),[Ve,He]=Y.useState(()=>new Map),qe=Y.useRef(0),et=Y.useRef(Ue()),tt=Ve.get(G)??Xe,[,nt]=Y.useState(!1),rt=Y.useRef(()=>{});rt.current=()=>{h.error(o(`assistants.composer.selectionSaveFailed`))};let it=Y.useRef(null);it.current||=new je(nt,e=>rt.current(e));let at=Y.useMemo(()=>({assistantID:G,transportIdentity:p,runtimeGeneration:m}),[G,m,p]),$=it.current,ot=Y.useMemo(()=>({transport:p,assistantID:G}),[G,p]),st=g(async(e,t=p)=>{await et.current.clearExclusive({transport:t,assistantID:e})}),ct=g(e=>{et.current.rollbackAllBestEffort(e).catch(()=>void 0)});Y.useEffect(()=>{!U&&H?.assistants[0]&&pe(H.assistants[0].id)},[pe,U,H?.assistants]),Y.useEffect(()=>{V.isSuccess&&U&&!W&&pe(H?.assistants[0]?.id??null)},[W,pe,U,H?.assistants,V.isSuccess]),Y.useEffect(()=>{T&&G&&!K&&ae(G)},[T,G,K]),Y.useEffect(()=>{qe.current++,He(new Map),ct({excludeTransport:p})},[p,m,ct]),Y.useEffect(()=>()=>{qe.current++,ct()},[ct]),Y.useEffect(()=>{$.activate(at)},[$,at]),Y.useEffect(()=>()=>{$.dispose()},[$]),Y.useEffect(()=>{G&&et.current.rollbackAndClearIfBindingMismatch(ot,{assistantID:G,sessionID:K,directory:q,sessionGeneration:W?.sessionGeneration??-1,transport:p,runtimeGeneration:m}).catch(()=>void 0)},[W?.sessionGeneration,G,q,m,K,ot,p]);let lt=g(e=>at.assistantID?$.enqueue(at,e,async({identity:e,selection:t,signal:n})=>{await Ne(e,t,{readSnapshot:()=>z(void 0,e.transportIdentity),ensureSnapshot:e=>re(e),updateAssistant:ne,signal:n,assertAuthoritative:()=>{if($.assertAuthoritative(e),r()!==e.transportIdentity||a()!==e.runtimeGeneration)throw new Ae}})}):Promise.reject(Error(`assistant_unavailable`))),ut=Y.useMemo(()=>be(Q.data),[Q.data]),dt=g(e=>{if(!W)return;let t=x(ut,W.agent??void 0,e);if(t){let e=w({providerID:W.providerID,modelID:W.modelID,agent:W.agent},t,ut,X.data??[]),n=e.providerID===W.providerID&&e.modelID===W.modelID;lt({...e,agent:e.agent??void 0,variant:n?W.variant??void 0:void 0})}}),ft=g(async(e,t)=>{e.sessionID&&await ze.ensureSessionRenderable(e.sessionID,{directory:e.directory,...t?.force?{force:!0}:{}})}),pt=W?.sessionGeneration;Y.useEffect(()=>{!T||!G||!K||!q||pt===void 0||ft({sessionID:K,directory:q,sessionGeneration:pt},{force:!0})},[T,G,q,ft,pt,K]);let mt=g((e,t)=>{if(t.length===0)return;let n=new Set(t);He(t=>{let r=t.get(e);if(!r?.some(e=>n.has(e.info.id)))return t;let i=new Map(t),a=r.filter(e=>!n.has(e.info.id));return a.length>0?i.set(e,a):i.delete(e),i})}),ht=g((e,t,n)=>{He(r=>{let i=r.get(e);if(!i)return r;let a=Le(i,t,n);if(a===i)return r;let o=new Map(r);return o.set(e,a),o})}),gt=g(e=>{mt(G,e)}),_t=g(async e=>{if(!K||!q)throw Error(`assistant_unavailable`);N(K,q).some(t=>t?.id===e)&&(await C(K,e,{directory:q,draftKey:J,restorePrimaryInput:!1}),await st(G))}),vt=g(async(e,t)=>{if(!W||W.mode!==`continuous`)return;if(!K||!q)throw Error(`assistant_unavailable`);if(!N(K,q).some(t=>t?.id===e))return;if(t.info.id!==e||t.info.sessionID!==K||t.info.role!==`user`)throw Error(`The selected user message is unavailable`);let n={assistantID:W.id,sessionID:K,directory:q,sessionGeneration:W.sessionGeneration,messageID:e,transport:p,runtimeGeneration:m},i=Be(n),o=await et.current.stageExclusive(i,async()=>{let i=await O(K,e,t,{directory:q,draftKey:J}),o=r()===n.transport&&a()===n.runtimeGeneration,s=o?z(void 0,n.transport)?.assistants.find(e=>e.id===n.assistantID):void 0,c=!!(s&&s.mode===`continuous`&&s.sessionID===n.sessionID&&s.sessionGeneration===n.sessionGeneration&&(s.effectiveWorkspacePath??``)===n.directory);if(o&&c)return{identity:n,rollback:()=>i.rollback()};let l=await i.rollback();return l.status===`failed`||l.status===`skipped`?{identity:n,rollback:()=>i.rollback(),protectOnStale:!0}:null});if(o.kind===`blocked`)throw Error(`assistant_stage_message_edit_prior_blocked`);if(o.kind===`stale_protected`)throw Error(`assistant_stage_message_edit_rollback_failed`)}),yt=Y.useMemo(()=>{let e=S(J,()=>b.getState());return{busy:!1,attachments:Te,addAttachment:t=>e.addLocal(t),removeAttachment:t=>e.removeByAttachmentID(t),clearAttachments:()=>e.clearRootAttachments(),restoreAttachments:t=>e.restoreRootAttachments(t),pendingInput:null,consumePendingInput:()=>null,pendingPreset:null,consumePendingPreset:()=>null,consumeSyntheticParts:()=>{let e=b.getState(),t=e.draftAttachmentViews[u(J)]??Je,n=e.consumeDraftSyntheticParts(J,y);return n?Ge(n,t):null},restoreSyntheticParts:e=>{(async()=>{let t=b.getState(),n=e.map(e=>({partID:e.partID??c(),text:e.text,attachments:[],...e.synthetic===!0?{synthetic:!0}:{}})),r=Ke(t.getDraft(J)?.syntheticParts??[],n);t.setDraftSyntheticParts(J,r);for(let r=0;r<n.length;r++){let i=n[r].partID;for(let n of e[r]?.attachments??[])n.source===`server`&&n.dataUrl?t.addDraftDurableAttachment(J,{attachmentID:n.id,filename:n.filename,mimeType:n.mimeType,size:n.size,source:`server`,url:n.dataUrl,serverPath:n.serverPath,partID:i}):await t.addDraftLocalAttachment(J,n.file,{attachmentID:n.id,filename:n.filename,source:n.source===`vscode`?`vscode`:`local`,vscodePath:n.vscodePath,vscodeSource:n.vscodeSource===`selection`?`selection`:void 0,partID:i})}})()},inlineDrafts:[],removeInlineDraft:()=>{},restoreInlineDrafts:()=>{},history:Ie,captureRuntime:()=>b.getState().captureDraftRuntime(),getDraft:e=>b.getState().getDraft(e),abortPrompt:{sessionID:null,clear:()=>{}}}},[Te,J,Ie]),bt=Y.useMemo(()=>{let e=(X.data??[]).find(e=>e.id===W?.providerID)?.models?.find(e=>e.id===W?.modelID);return ve(e)},[W?.modelID,W?.providerID,X.data]),xt=Me.length>0,St=Y.useMemo(()=>{if(!W||!K||!q)return null;let e={sessionID:K,directory:q,sessionGeneration:W.sessionGeneration};return{kind:`secondary`,surfaceID:`assistant:${W.id}`,active:T,sessionID:K,directory:q,draftKey:J,transportIdentity:p,runtimeGeneration:m,deliveryTarget:{kind:`assistant`,assistantID:W.id},resources:yt,...W.mode===`stateless`?{queueSessionID:`assistant:${W.id}`}:{},selection:{value:{providerID:W.providerID,modelID:W.modelID,agent:W.agent??void 0,variant:W.variant??void 0},catalog:{providers:X.data??[],agents:ut,variants:bt,variantsReady:X.isSuccess,ready:X.isSuccess&&Q.isSuccess,loading:X.isPending||Q.isPending,error:X.isError||Q.isError},change:lt,flush:()=>$.flush(at)},activity:{phase:Pe?.type===`busy`?`busy`:Pe?.type===`retry`?`retry`:`idle`,canAbort:Pe?.type===`busy`||Pe?.type===`retry`},commands:{sessionID:K,hasMessages:xt,hasNewDraft:!1},commandPolicy:e=>e.name!==`fork`&&e.name!==`thread`,backend:{send:async t=>{let n;for(let t of N(e.sessionID,e.directory)){let e=typeof t?.id==`string`?t.id:``;/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/.test(e)&&(!n||e>n)&&(n=e)}let r=l(`msg`,n);t.options?.commitStagedMessageEdit&&et.current.clear({transport:p,assistantID:W.id});let i=j({messageID:r,sessionID:e.sessionID,providerID:t.providerID??W.providerID,modelID:t.modelID??W.modelID,agent:t.agent??W.agent??void 0,text:t.text,attachments:t.attachments,additionalParts:t.parts});He(e=>{let t=new Map(e);return t.set(W.id,[...e.get(W.id)??[],i]),t});let a;try{a=await B(W.id,e,r,Ze(t.text,t.parts,t.attachments))}catch(e){throw mt(W.id,[r]),e}if(L.data?.serverInstanceID){let e=_(W.name);v({serverInstanceID:L.data.serverInstanceID,assistantID:W.id,name:e.displayName||W.name,avatarSeed:W.id,...e.avatarEmoji?{avatarEmoji:e.avatarEmoji}:{}}).catch(()=>void 0)}a.binding.sessionID&&ht(W.id,r,a.binding.sessionID);let o=qe.current;Re({binding:a.binding,refresh:t=>ft(t,{force:t.sessionID!==e.sessionID||t.sessionGeneration!==e.sessionGeneration}),isCurrent:()=>qe.current===o})},sendQueued:async()=>{throw Error(`assistant-server-queue-required`)},create:async()=>{let e=await R(W.id);await st(W.id),await ft(e,{force:!0})},compact:async()=>{let t=await oe(W.id,e);await st(W.id),await ft(t.binding,{force:!0})},abort:async()=>{await ie(W.id,e)}},shortcuts:{cycle:dt,new:async()=>{let e=await R(W.id);await st(W.id),await ft(e,{force:!0})},abort:async()=>{await ie(W.id,e)},submit:()=>{}}}},[T,W,L.data?.serverInstanceID,lt,st,dt,q,J,xt,X.data,X.isError,X.isPending,X.isSuccess,Q.isError,Q.isPending,Q.isSuccess,ft,ht,mt,yt,m,$,at,K,Pe,p,bt,ut]),Ct=g(()=>{if(me(),f){f.openSettings();return}let e=i.getState();e.setSettingsPage(`assistants`),e.setSettingsDialogOpen(!0)}),wt=g(e=>{le(e,f?{openMobileSettings:f.openSettings}:void 0)}),[Tt,Et]=Y.useState(null),Dt=g(e=>{Et(e)}),Ot=g(e=>{e||Et(null)}),kt=g(()=>{i.getState().setActiveMainTab(`chat`)}),At=g(()=>{if(t){t();return}kt()}),jt=(e,t,n,r)=>(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[I?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):null,(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center px-6 text-center`,children:[(0,Z.jsx)(fe,{name:e,className:`size-6 text-muted-foreground`}),(0,Z.jsx)(`h1`,{className:`mt-4 typography-ui-header font-semibold`,children:t}),n?(0,Z.jsx)(`p`,{className:`mt-2 max-w-md typography-ui text-muted-foreground`,children:n}):null,r?(0,Z.jsx)(`div`,{className:`mt-5`,children:r}):null]})]});if(L.isPending||V.isPending)return jt(`ai-agent`,o(`assistants.state.unavailable`));if(L.isError||!L.data?.supported||!L.data.enabled||!H?.enabled)return jt(`cloud-off`,o(`assistants.state.unavailable`));if(!H.assistants.length)return jt(`ai-agent`,o(`assistants.onboarding.title`),o(`assistants.onboarding.description`),(0,Z.jsx)(he,{onClick:Ct,children:o(`assistants.onboarding.action`)}));if(!W)return jt(`ai-agent`,o(`assistants.state.unavailable`));if(!St)return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,children:[I?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):null,(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6`,"aria-busy":`true`,"aria-label":o(`assistants.state.unavailable`),children:[(0,Z.jsx)(`div`,{className:`size-10 animate-pulse rounded-xl bg-[var(--surface-muted)] motion-reduce:animate-none`}),(0,Z.jsx)(`div`,{className:`h-3.5 w-36 animate-pulse rounded-md bg-[var(--surface-muted)] motion-reduce:animate-none`})]})]});let Mt=_(W.name),Nt=W.enabled?V.isError?o(`assistants.state.staleSnapshot`):null:o(`assistants.state.assistantDisabled`);return(0,Z.jsxs)(`div`,{className:`relative flex h-full min-h-0 overflow-hidden bg-background`,"data-presentation":`workspace`,children:[I?null:(0,Z.jsxs)(`section`,{className:`flex h-full min-h-0 w-[clamp(16rem,22vw,20rem)] shrink-0 flex-col overflow-hidden`,children:[(0,Z.jsx)(`header`,{className:`shrink-0 px-4 pb-3 pt-4 sm:px-5`,children:(0,Z.jsx)(`h1`,{className:`truncate typography-ui-label font-semibold text-foreground`,children:o(`assistants.title`)})}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 pb-4 sm:px-4`,role:`listbox`,"aria-label":o(`assistants.listAria`),children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-1 border-t border-border/40 pt-3`,children:H.assistants.map(e=>{let t=e.id===U,n=_(e.name);return(0,Z.jsx)($e,{assistantID:e.id,displayName:n.displayName,avatarEmoji:n.avatarEmoji??void 0,modeLabel:e.mode===`stateless`?o(`assistants.mode.stateless`):o(`assistants.mode.continuous`),selected:t,enabled:e.enabled,editLabel:o(`assistants.menu.edit`),deleteLabel:o(`assistants.settings.delete`),onSelect:()=>pe(e.id),onEdit:()=>wt(e.id),onDelete:()=>Dt(e)},e.id)})})})]}),(0,Z.jsx)(Fe,{assistant:Tt,open:Tt!==null,onOpenChange:Ot}),(0,Z.jsxs)(`div`,{className:de(`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-background`,!I&&`border-l border-border/60`),children:[I?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):(0,Z.jsxs)(`header`,{className:`flex h-14 shrink-0 items-center gap-3 border-b border-border/40 px-4 sm:px-5`,children:[(0,Z.jsx)(ue,{name:W.id,emoji:Mt.avatarEmoji,size:24,label:Mt.displayName||W.name}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`truncate typography-ui-label font-medium`,children:Mt.displayName}),(0,Z.jsx)(`div`,{className:`mt-0.5 truncate typography-micro leading-none text-muted-foreground/70`,children:W.mode===`stateless`?o(`assistants.conversation.statelessHint`):o(`assistants.conversation.continuousHint`)})]})]}),(0,Z.jsx)(ke,{onRevertMessage:_t,onEditMessage:W.mode===`continuous`?vt:void 0,assistant:W,sessionID:K,warning:Nt,surface:St,pendingUserMessages:tt,onPendingUserMessagesMaterialized:gt})]}),I?null:(0,Z.jsx)(Se,{directory:q||null})]})};export{qe as n,Fe as r,et as t};
1
+ import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{A as n,E as r,t as i,w as a}from"./useUIStore-DzwCfRqr.js";import{$t as o,Ot as s,et as c,rt as l,yt as u}from"./persistence-6sclr7B6.js";import{nt as d,rt as f}from"./vendor-base-ui-CnHfUmDN.js";import{r as p}from"./platform-CbeLpKPk.js";import{n as m}from"./vendor-react-DLPElpoQ.js";import{r as h}from"./vendor-sonner-DVzioF3d.js";import{n as g}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as ee}from"./clipboard-DWuULPzo.js";import{a as _,n as v,s as y}from"./MobileShareBridge-FZ2V3gRM.js";import{Fo as b,Ja as x,Si as te,Vi as S,Xr as C,Za as w,_n as T,bo as E,cn as D,ei as O,gn as k,hn as A,o as j,rn as M,ua as N,xo as P}from"./useMobileNavigationStore-CncTmwzO.js";import{_ as F,a as I,c as L,d as R,f as z,g as ne,l as re,n as ie,o as ae,p as B,r as oe,t as V,v as H,x as U,y as se}from"./MobileDetailNavigation-DL4SVma_.js";import{i as ce,r as le}from"./useAssistantUIStore-BHsHXCKE.js";import{t as ue}from"./AgentAvatar-DDcjamcJ.js";import{t as de}from"./utils-B1EK5zKa.js";import{n as fe}from"./Icon-DpjYnXxn.js";import{a as pe,i as me,n as W,o as G,r as K,t as q}from"./dialog-DPS0W9eS.js";import{t as he}from"./button-C7OXr4ae.js";import{i as ge}from"./OverlayScrollbar-Ch3J6ASR.js";import{J as _e,L as ve,N as ye,P as J,R as be,t as xe}from"./ChatContainer-BTOShmJo.js";import{t as Se}from"./ContextPanel-DrOpxE_Z.js";import{a as Ce,c as we,l as Te,o as Ee,s as De}from"./shikiHighlight-CGuRQJIr.js";var Y=e(f(),1),Oe=m(),X=e=>e.isVSCode||e.isPhoneShell||e.isMobile&&!e.isIPad?`session`:`context-panel`,Z=d(),ke=e=>{let t=(0,Oe.c)(56),{assistant:n,sessionID:r,warning:a,surface:s,onRevertMessage:c,onEditMessage:l,pendingUserMessages:u,onPendingUserMessagesMaterialized:d}=e,{t:f}=ee(),{isMobile:m}=ge(),h=n.effectiveWorkspacePath,_;t[0]!==n.sessionGeneration||t[1]!==r?(_={sessionID:r,sessionGeneration:n.sessionGeneration},t[0]=n.sessionGeneration,t[1]=r,t[2]=_):_=t[2];let v=H(n.id,_,s.active);v.data?.pages;let y;t[3]===v.data?.pages?y=t[4]:(y=v.data?.pages??[],t[3]=v.data?.pages,t[4]=y);let b;t[5]===y?b=t[6]:(b=te(y),t[5]=y,t[6]=b);let x=b,S;if(t[7]!==x){S=new Map;for(let e of x){let t=S.get(e.sessionID);S.set(e.sessionID,t===void 0||t===e.directory?e.directory:null)}t[7]=x,t[8]=S}else S=t[8];let C=S,w;t[9]===v?w=t[10]:(w=async()=>{(v.hasNextPage||v.isFetchNextPageError)&&await v.fetchNextPage()},t[9]=v,t[10]=w);let E=g(w),D=n.mode===`continuous`,O=ye(),A;t[11]===O?A=t[12]:(A=O&&!p(),t[11]=O,t[12]=A);let j=!!A,M;t[13]===j?M=t[14]:(M=(e,t)=>{T(e,t,{phoneShell:j,switchToChat:!0})},t[13]=j,t[14]=M);let N=g(M),P;t[15]!==h||t[16]!==C||t[17]!==N||t[18]!==r?(P=(e,t)=>{let n=e===r?h:C.get(e);if(!n||n!==t){k(e,`missing-directory`);return}N(e,t)},t[15]=h,t[16]=C,t[17]=N,t[18]=r,t[19]=P):P=t[19];let F=g(P),I;t[20]!==m||t[21]!==j||t[22]!==N||t[23]!==f?(I=(e,t)=>{let n=e.trim(),r=t.trim();if(!n){k(e,`missing-session-id`);return}if(!r){k(n,`missing-directory`);return}if(X({isPhoneShell:j,isMobile:m,isIPad:p(),isVSCode:o()})===`session`){N(n,r);return}i.getState().openContextPanelTab(r,{mode:`chat`,dedupeKey:`session:${n}`,label:f(`contextPanel.mode.chat`),readOnly:!0})},t[20]=m,t[21]=j,t[22]=N,t[23]=f,t[24]=I):I=t[24];let L=g(I),R;t[25]===D?R=t[26]:(R={...J,forkSession:!1,mutateSession:D},t[25]=D,t[26]=R);let z;t[27]===l?z=t[28]:(z=l?{onEditMessage:l}:{},t[27]=l,t[28]=z);let ne;t[29]!==h||t[30]!==L||t[31]!==c||t[32]!==F||t[33]!==r||t[34]!==s.active||t[35]!==s.surfaceID||t[36]!==z||t[37]!==R?(ne={kind:`embedded`,surfaceId:s.surfaceID,sessionId:r,directory:h,active:s.active,capabilities:R,navigateSession:L,onRevertMessage:c,...z,openSourceSession:F},t[29]=h,t[30]=L,t[31]=c,t[32]=F,t[33]=r,t[34]=s.active,t[35]=s.surfaceID,t[36]=z,t[37]=R,t[38]=ne):ne=t[38];let re=ne,ie=v.isError||v.isSuccess&&!v.hasNextPage,ae=v.isLoading||v.isFetchingNextPage,B;t[39]!==E||t[40]!==ie||t[41]!==x||t[42]!==ae?(B={entries:x,complete:ie,loading:ae,fetchPrevious:E},t[39]=E,t[40]=ie,t[41]=x,t[42]=ae,t[43]=B):B=t[43];let oe;t[44]!==h||t[45]!==d||t[46]!==c||t[47]!==u||t[48]!==r||t[49]!==re||t[50]!==s||t[51]!==B||t[52]!==a?(oe={sessionId:r,directory:h,composerSurface:s,sessionSurface:re,warning:a,pendingUserMessages:u,onPendingUserMessagesMaterialized:d,assistantHistory:B,onRevertMessage:c},t[44]=h,t[45]=d,t[46]=c,t[47]=u,t[48]=r,t[49]=re,t[50]=s,t[51]=B,t[52]=a,t[53]=oe):oe=t[53];let V=oe,U;return t[54]===V?U=t[55]:(U=(0,Z.jsx)(xe,{autoOpenDraft:!1,host:V}),t[54]=V,t[55]=U),U},Ae=class extends Error{constructor(){super(`assistant_selection_stale`)}},Q=(e,t)=>e.assistantID===t.assistantID&&e.transportIdentity===t.transportIdentity&&e.runtimeGeneration===t.runtimeGeneration,je=class{onBusyChange;onError;flight=null;authoritativeIdentity=null;constructor(e,t){this.onBusyChange=e,this.onError=t}activate(e){this.authoritativeIdentity&&!Q(this.authoritativeIdentity,e)&&this.flight&&this.retire(this.flight),this.authoritativeIdentity=e}enqueue(e,t,n){if(!this.isAuthoritative(e))return Promise.reject(new Ae);let r=this.flight;r||(r={identity:e,controller:new AbortController,running:!1,desired:null,waiters:[],activeWaiters:[],idleWaiters:[],retired:!1},this.flight=r),r.desired=t;let i=new Promise((e,t)=>{r.waiters.push({resolve:e,reject:t})});return r.running||(r.running=!0,this.onBusyChange(!0),this.run(r,n)),i}async flush(e){if(!this.isAuthoritative(e))throw new Ae;let t=this.flight;t?.running&&await new Promise((e,n)=>t.idleWaiters.push({resolve:e,reject:n}))}assertAuthoritative(e){if(!this.isAuthoritative(e))throw new Ae}dispose(){this.flight&&this.retire(this.flight),this.authoritativeIdentity=null}async run(e,t){for(;!e.retired&&e.desired;){let n=e.desired;e.desired=null;let r=e.waiters.splice(0);e.activeWaiters=r;try{if(await t({identity:e.identity,selection:n,signal:e.controller.signal}),!e.retired)for(let e of r)e.resolve()}catch(t){if(!e.retired){this.onError(t);for(let e of r)e.reject(t)}}e.activeWaiters=[]}e.running=!1;for(let t of e.idleWaiters.splice(0))t.resolve();this.flight===e&&this.onBusyChange(!1)}retire(e){e.retired=!0,e.controller.abort();let t=new Ae;for(let n of e.activeWaiters.splice(0))n.reject(t);for(let n of e.waiters.splice(0))n.reject(t);for(let n of e.idleWaiters.splice(0))n.reject(t);this.flight===e&&(this.flight=null,this.onBusyChange(!1))}isAuthoritative(e){return this.authoritativeIdentity!==null&&Q(this.authoritativeIdentity,e)}},Me=(e,t)=>{let n=t.providerID??e.providerID,r=t.modelID??e.modelID,i=n!==e.providerID||r!==e.modelID;return{enabled:e.enabled,name:e.name,defaultPrompt:e.defaultPrompt,workspacePath:e.workspacePath,providerID:n,modelID:r,agent:t.agent??null,variant:i?null:t.variant??null,mode:e.mode}},Ne=async(e,t,n)=>{n.assertAuthoritative();let r=n.readSnapshot()?.assistants.find(t=>t.id===e.assistantID);if(!r)throw Error(`assistant_unavailable`);try{n.assertAuthoritative(),await n.updateAssistant(r,Me(r,t)),n.assertAuthoritative()}catch(i){if(n.assertAuthoritative(),n.signal.aborted)throw new Ae;if(!(i instanceof U)||i.code!==`revision_conflict`)throw i;if(n.assertAuthoritative(),r=(await n.ensureSnapshot(n.signal)).assistants.find(t=>t.id===e.assistantID),n.assertAuthoritative(),!r)throw new U(`revision_conflict`,409);n.assertAuthoritative(),await n.updateAssistant(r,Me(r,t)),n.assertAuthoritative()}};async function Pe(e){await I(e);let t=ce.getState().defaultShareAssistant;if(t?.assistantID!==e.id)return;let n=await L();n.serverInstanceID&&t.serverInstanceID===n.serverInstanceID&&ce.getState().setDefaultShareAssistant(null)}function Fe({assistant:e,open:t,onOpenChange:n,onDeleted:r}){let{t:i}=ee(),[a,o]=Y.useState(!1),s=e?_(e.name).displayName||e.name:``,c=g(e=>{a&&!e||n(e)}),l=g(()=>{a||n(!1)}),u=g(async()=>{if(!(!e||a)){o(!0);try{await Pe(e),r?.(e.id),n(!1),h.success(i(`assistants.settings.toast.deleted`))}catch{h.error(i(`assistants.settings.toast.deleteFailed`))}finally{o(!1)}}});return(0,Z.jsx)(q,{open:t&&e!==null,onOpenChange:c,children:(0,Z.jsxs)(W,{className:`max-w-md`,children:[(0,Z.jsxs)(pe,{children:[(0,Z.jsx)(G,{children:i(`assistants.settings.delete`)}),(0,Z.jsx)(K,{children:i(`assistants.settings.deleteConfirm`,{name:s})})]}),(0,Z.jsxs)(me,{children:[(0,Z.jsx)(he,{size:`sm`,variant:`ghost`,onClick:l,disabled:a,children:i(`settings.common.actions.cancel`)}),(0,Z.jsx)(he,{size:`sm`,variant:`destructive`,onClick:u,disabled:a,children:i(`settings.common.actions.delete`)})]})]})})}var Ie=[0,500,1500,4e3],Le=(e,t,n)=>{let r=!1,i=e.map(e=>e.info.id!==t||e.info.sessionID===n?e:(r=!0,{...e,info:{...e.info,sessionID:n}}));return r?i:e},Re=e=>{let t=e.refreshDelaysMs??Ie,n=e.sleep??(e=>new Promise(t=>setTimeout(t,e)));(async()=>{for(let r of t){if(r>0&&await n(r),!e.isCurrent())return;try{await e.refresh(e.binding);break}catch{}}})()},ze=e=>`${e.transport}\u0000${e.assistantID}`,Be=e=>({transport:e.transport,assistantID:e.assistantID}),Ve=(e,t)=>e.assistantID===t.assistantID&&e.sessionID===t.sessionID&&e.directory===t.directory&&e.sessionGeneration===t.sessionGeneration&&e.transport===t.transport&&e.runtimeGeneration===t.runtimeGeneration,He=(e,t)=>e.assistantID===t.assistantID&&e.sessionID===t.sessionID&&e.directory===t.directory&&e.sessionGeneration===t.sessionGeneration&&e.messageID===t.messageID&&e.transport===t.transport&&e.runtimeGeneration===t.runtimeGeneration,Ue=()=>{let e=new Map,t=new Map,n=1,r=e=>ze(e),i=async(e,n)=>{let i=r(e),a=t.get(i)??Promise.resolve(),o,s=new Promise(e=>{o=e}),c=a.catch(()=>void 0).then(()=>s);t.set(i,c),await a.catch(()=>void 0);try{return await n()}finally{o(),t.get(i)===c&&t.delete(i)}},a=(t,i)=>{let a=r(Be(t)),o=n++;return e.set(a,{identity:t,rollback:i,token:o}),o},o=t=>e.get(r(t))?.identity,s=t=>e.delete(r(t)),c=async e=>i(e,()=>s(e)),l=async t=>{let n=r(t),i=e.get(n);if(!i)return{kind:`none`};let a=i.token,o=i.identity,s;try{s=await i.rollback()}catch{return{kind:`blocked`,status:`failed`}}let c=e.get(n);return!c||c.token!==a||!He(c.identity,o)?{kind:`superseded`}:s.status===`rolled-back`||s.status===`conflict`?(e.delete(n),{kind:`cleared`,status:s.status}):{kind:`blocked`,status:s.status}},u=async(t,n)=>{let i=r(t),a=e.get(i);if(!a)return{kind:`none`};if(Ve(a.identity,n))return{kind:`match`};let o=a.token,s=a.identity,c=await a.rollback(),l=e.get(i);return!l||l.token!==o||!He(l.identity,s)?{kind:`superseded`}:c.status===`rolled-back`||c.status===`conflict`?(e.delete(i),{kind:`cleared`,status:c.status}):{kind:`rollback_failed`,retained:!0,status:c.status}};return{register:a,read:o,clear:s,clearExclusive:c,retireCurrent:l,rollbackAndClearIfBindingMismatch:async(e,t)=>i(e,()=>u(e,t)),rollbackAllBestEffort:async t=>{let n=[...e.entries()];await Promise.all(n.map(async([,n])=>{if(t?.excludeTransport!==void 0&&n.identity.transport===t.excludeTransport)return;let a=Be(n.identity);await i(a,async()=>{let t=r(a),i=e.get(t);if(!i||i.token!==n.token)return;let o=i.token,s=i.identity;try{let n=await i.rollback(),r=e.get(t);if(!r||r.token!==o||!He(r.identity,s))return;(n.status===`rolled-back`||n.status===`conflict`)&&e.delete(t)}catch{}})}))},stageExclusive:async(e,t)=>i(e,async()=>{let n=await l(e);if(n.kind===`blocked`)return{kind:`blocked`,status:n.status};let r=await t();if(!r)return{kind:`skipped`};let i=a(r.identity,r.rollback);return r.protectOnStale?{kind:`stale_protected`,token:i,identity:r.identity}:{kind:`registered`,token:i,identity:r.identity}})}},We=(e,t)=>!e?.attachments?.length||!t?[]:e.attachments.flatMap(e=>{let n=t[e.attachmentRefID];return n?[n]:[]}),Ge=(e,t)=>{let n=t??{};return e.map(e=>({partID:e.partID,text:e.text,...e.synthetic===!0?{synthetic:!0}:{},attachments:e.attachments.flatMap(e=>n[e.attachmentRefID]?[n[e.attachmentRefID]]:[])}))},Ke=(e,t)=>{if(t.length===0)return[...e];let n=new Map;for(let t of e)n.set(t.partID,t);for(let e of t)n.set(e.partID,e);let r=new Set,i=[];for(let t of e){let e=n.get(t.partID);e&&(i.push(e),r.add(t.partID))}for(let e of t)r.has(e.partID)||(i.push(e),r.add(e.partID));return i},qe=t({AssistantView:()=>et}),Je={},Ye=[],Xe=[],Ze=(e,t,n)=>[...e===void 0?[]:[{type:`text`,text:e}],...(t??[]).flatMap(e=>[{type:`text`,text:e.text,...e.synthetic===!0?{synthetic:!0}:{}},...(e.attachments??[]).map(e=>({type:`file`,mime:e.mimeType,url:e.dataUrl}))]),...(n??[]).map(e=>({type:`file`,mime:e.mimeType,url:e.dataUrl}))],Qe=e=>{let t=(0,Oe.c)(11),{assistant:n,onBack:r}=e,{t:i}=ee(),a;t[0]===n?a=t[1]:(a=n?_(n.name):null,t[0]=n,t[1]=a);let o=a,s=n&&o?o.displayName||n.name:``,c;t[2]!==s||t[3]!==i?(c=s||i(`assistants.title`),t[2]=s,t[3]=i,t[4]=c):c=t[4];let l;t[5]===i?l=t[6]:(l=i(`assistants.actions.backToChat`),t[5]=i,t[6]=l);let u;return t[7]!==r||t[8]!==c||t[9]!==l?(u=(0,Z.jsx)(V,{title:c,backAriaLabel:l,onBack:r}),t[7]=r,t[8]=c,t[9]=l,t[10]=u):u=t[10],u},$e=e=>{let t=(0,Oe.c)(45),{assistantID:n,displayName:r,avatarEmoji:i,modeLabel:a,selected:o,enabled:s,editLabel:c,deleteLabel:l,onSelect:u,onEdit:d,onDelete:f}=e,[p,m]=Y.useState(!1),h;t[0]===u?h=t[1]:(h=()=>u(),t[0]=u,t[1]=h);let ee=g(h),_;t[2]===d?_=t[3]:(_=()=>{m(!1),d()},t[2]=d,t[3]=_);let v=g(_),y;t[4]===f?y=t[5]:(y=()=>{m(!1),f()},t[4]=f,t[5]=y);let b=g(y),x;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{e.preventDefault(),m(!0)},t[6]=x):x=t[6];let te=o?`border-border/50 bg-[var(--surface-elevated)]`:`border-transparent hover:bg-interactive-hover`,S=!s&&`opacity-65`,C;t[7]!==te||t[8]!==S?(C=de(`flex w-full min-h-11 items-center gap-3 rounded-xl border px-3 py-3 text-left outline-none transition-[background-color,border-color,transform,opacity] duration-150 ease-out active:scale-[0.995] focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] motion-reduce:transition-none`,te,S),t[7]=te,t[8]=S,t[9]=C):C=t[9];let w;t[10]!==ee||t[11]!==o||t[12]!==C?(w=(0,Z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":o,onClick:ee,onContextMenu:x,className:C}),t[10]=ee,t[11]=o,t[12]=C,t[13]=w):w=t[13];let T;t[14]!==n||t[15]!==i||t[16]!==r?(T=(0,Z.jsx)(ue,{name:n,emoji:i,size:24,label:r}),t[14]=n,t[15]=i,t[16]=r,t[17]=T):T=t[17];let E;t[18]===r?E=t[19]:(E=(0,Z.jsx)(`span`,{className:`block truncate typography-ui-label font-medium`,children:r}),t[18]=r,t[19]=E);let D;t[20]===a?D=t[21]:(D=(0,Z.jsx)(`span`,{className:`mt-0.5 block truncate typography-micro text-muted-foreground`,children:a}),t[20]=a,t[21]=D);let O;t[22]!==E||t[23]!==D?(O=(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[E,D]}),t[22]=E,t[23]=D,t[24]=O):O=t[24];let k;t[25]!==O||t[26]!==w||t[27]!==T?(k=(0,Z.jsxs)(Te,{render:w,children:[T,O]}),t[25]=O,t[26]=w,t[27]=T,t[28]=k):k=t[28];let A;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Z.jsx)(fe,{name:`edit`,className:`size-4`}),t[29]=A):A=t[29];let j;t[30]!==c||t[31]!==v?(j=(0,Z.jsxs)(De,{onClick:v,children:[A,c]}),t[30]=c,t[31]=v,t[32]=j):j=t[32];let M;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,Z.jsx)(we,{}),t[33]=M):M=t[33];let N;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Z.jsx)(fe,{name:`delete-bin`,className:`size-4`}),t[34]=N):N=t[34];let P;t[35]!==l||t[36]!==b?(P=(0,Z.jsxs)(De,{onClick:b,className:`text-[var(--status-error)] focus:text-[var(--status-error)] data-[highlighted]:text-[var(--status-error)] [&_svg]:text-[var(--status-error)]`,children:[N,l]}),t[35]=l,t[36]=b,t[37]=P):P=t[37];let F;t[38]!==j||t[39]!==P?(F=(0,Z.jsxs)(Ee,{className:`min-w-[10rem]`,children:[j,M,P]}),t[38]=j,t[39]=P,t[40]=F):F=t[40];let I;return t[41]!==p||t[42]!==k||t[43]!==F?(I=(0,Z.jsxs)(Ce,{open:p,onOpenChange:m,children:[k,F]}),t[41]=p,t[42]=k,t[43]=F,t[44]=I):I=t[44],I},et=({activeOverride:e,onMobileBack:t})=>{let{t:o}=ee(),{isMobile:d}=ge(),f=ye(),p=Y.useSyncExternalStore(n,r,r),m=a(),te=i(e=>e.activeMainTab===`assistant`),T=e??te,k=i(e=>e.isMobile),I=d||k,L=F(),V=se(),H=V.data,U=ce(e=>e.assistantByTransport[p]??null),pe=ce(e=>e.selectAssistant),me=ce(e=>e.requestCreate),W=H?.assistants.find(e=>e.id===U)??null,G=W?.id??``,K=W?.sessionID??``,q=W?.effectiveWorkspacePath??``,J=Y.useMemo(()=>s({transportIdentity:p},`assistant:${G}`),[G,p]),xe=u(J),Ce=b(e=>e.draftAttachmentViews[xe]??Je),we=b(e=>e.drafts[xe]),Te=Y.useMemo(()=>{let e=We(we,Ce);return e.length===0?Ye:e},[Ce,we]),Ee=we?.attachments,De=we?.syntheticParts,Oe=Y.useMemo(()=>!Ee||!De?``:`${Ee.map(e=>e.attachmentRefID).join(``)}\u0004${De.map(e=>`${e.partID}\u0002${e.attachments.map(e=>e.attachmentRefID).join(``)}`).join(``)}`,[Ee,De]);Y.useEffect(()=>{G&&b.getState().hydrateDraftAttachments(J)},[G,J,Oe]);let X=P(q||null,{enabled:!!q&&T}),Q=E(q||null,{enabled:!!q&&T}),Me=M(K,q||void 0),Pe=D(K,q||void 0),Ie=A(K),ze=_e(),[Ve,He]=Y.useState(()=>new Map),qe=Y.useRef(0),et=Y.useRef(Ue()),tt=Ve.get(G)??Xe,[,nt]=Y.useState(!1),rt=Y.useRef(()=>{});rt.current=()=>{h.error(o(`assistants.composer.selectionSaveFailed`))};let it=Y.useRef(null);it.current||=new je(nt,e=>rt.current(e));let at=Y.useMemo(()=>({assistantID:G,transportIdentity:p,runtimeGeneration:m}),[G,m,p]),$=it.current,ot=Y.useMemo(()=>({transport:p,assistantID:G}),[G,p]),st=g(async(e,t=p)=>{await et.current.clearExclusive({transport:t,assistantID:e})}),ct=g(e=>{et.current.rollbackAllBestEffort(e).catch(()=>void 0)});Y.useEffect(()=>{!U&&H?.assistants[0]&&pe(H.assistants[0].id)},[pe,U,H?.assistants]),Y.useEffect(()=>{V.isSuccess&&U&&!W&&pe(H?.assistants[0]?.id??null)},[W,pe,U,H?.assistants,V.isSuccess]),Y.useEffect(()=>{T&&G&&!K&&ae(G)},[T,G,K]),Y.useEffect(()=>{qe.current++,He(new Map),ct({excludeTransport:p})},[p,m,ct]),Y.useEffect(()=>()=>{qe.current++,ct()},[ct]),Y.useEffect(()=>{$.activate(at)},[$,at]),Y.useEffect(()=>()=>{$.dispose()},[$]),Y.useEffect(()=>{G&&et.current.rollbackAndClearIfBindingMismatch(ot,{assistantID:G,sessionID:K,directory:q,sessionGeneration:W?.sessionGeneration??-1,transport:p,runtimeGeneration:m}).catch(()=>void 0)},[W?.sessionGeneration,G,q,m,K,ot,p]);let lt=g(e=>at.assistantID?$.enqueue(at,e,async({identity:e,selection:t,signal:n})=>{await Ne(e,t,{readSnapshot:()=>z(void 0,e.transportIdentity),ensureSnapshot:e=>re(e),updateAssistant:ne,signal:n,assertAuthoritative:()=>{if($.assertAuthoritative(e),r()!==e.transportIdentity||a()!==e.runtimeGeneration)throw new Ae}})}):Promise.reject(Error(`assistant_unavailable`))),ut=Y.useMemo(()=>be(Q.data),[Q.data]),dt=g(e=>{if(!W)return;let t=x(ut,W.agent??void 0,e);if(t){let e=w({providerID:W.providerID,modelID:W.modelID,agent:W.agent},t,ut,X.data??[]),n=e.providerID===W.providerID&&e.modelID===W.modelID;lt({...e,agent:e.agent??void 0,variant:n?W.variant??void 0:void 0})}}),ft=g(async(e,t)=>{e.sessionID&&await ze.ensureSessionRenderable(e.sessionID,{directory:e.directory,...t?.force?{force:!0}:{}})}),pt=W?.sessionGeneration;Y.useEffect(()=>{!T||!G||!K||!q||pt===void 0||ft({sessionID:K,directory:q,sessionGeneration:pt},{force:!0})},[T,G,q,ft,pt,K]);let mt=g((e,t)=>{if(t.length===0)return;let n=new Set(t);He(t=>{let r=t.get(e);if(!r?.some(e=>n.has(e.info.id)))return t;let i=new Map(t),a=r.filter(e=>!n.has(e.info.id));return a.length>0?i.set(e,a):i.delete(e),i})}),ht=g((e,t,n)=>{He(r=>{let i=r.get(e);if(!i)return r;let a=Le(i,t,n);if(a===i)return r;let o=new Map(r);return o.set(e,a),o})}),gt=g(e=>{mt(G,e)}),_t=g(async e=>{if(!K||!q)throw Error(`assistant_unavailable`);N(K,q).some(t=>t?.id===e)&&(await C(K,e,{directory:q,draftKey:J,restorePrimaryInput:!1}),await st(G))}),vt=g(async(e,t)=>{if(!W||W.mode!==`continuous`)return;if(!K||!q)throw Error(`assistant_unavailable`);if(!N(K,q).some(t=>t?.id===e))return;if(t.info.id!==e||t.info.sessionID!==K||t.info.role!==`user`)throw Error(`The selected user message is unavailable`);let n={assistantID:W.id,sessionID:K,directory:q,sessionGeneration:W.sessionGeneration,messageID:e,transport:p,runtimeGeneration:m},i=Be(n),o=await et.current.stageExclusive(i,async()=>{let i=await O(K,e,t,{directory:q,draftKey:J}),o=r()===n.transport&&a()===n.runtimeGeneration,s=o?z(void 0,n.transport)?.assistants.find(e=>e.id===n.assistantID):void 0,c=!!(s&&s.mode===`continuous`&&s.sessionID===n.sessionID&&s.sessionGeneration===n.sessionGeneration&&(s.effectiveWorkspacePath??``)===n.directory);if(o&&c)return{identity:n,rollback:()=>i.rollback()};let l=await i.rollback();return l.status===`failed`||l.status===`skipped`?{identity:n,rollback:()=>i.rollback(),protectOnStale:!0}:null});if(o.kind===`blocked`)throw Error(`assistant_stage_message_edit_prior_blocked`);if(o.kind===`stale_protected`)throw Error(`assistant_stage_message_edit_rollback_failed`)}),yt=Y.useMemo(()=>{let e=S(J,()=>b.getState());return{busy:!1,attachments:Te,addAttachment:t=>e.addLocal(t),removeAttachment:t=>e.removeByAttachmentID(t),clearAttachments:()=>e.clearRootAttachments(),restoreAttachments:t=>e.restoreRootAttachments(t),pendingInput:null,consumePendingInput:()=>null,pendingPreset:null,consumePendingPreset:()=>null,consumeSyntheticParts:()=>{let e=b.getState(),t=e.draftAttachmentViews[u(J)]??Je,n=e.consumeDraftSyntheticParts(J,y);return n?Ge(n,t):null},restoreSyntheticParts:e=>{(async()=>{let t=b.getState(),n=e.map(e=>({partID:e.partID??c(),text:e.text,attachments:[],...e.synthetic===!0?{synthetic:!0}:{}})),r=Ke(t.getDraft(J)?.syntheticParts??[],n);t.setDraftSyntheticParts(J,r);for(let r=0;r<n.length;r++){let i=n[r].partID;for(let n of e[r]?.attachments??[])n.source===`server`&&n.dataUrl?t.addDraftDurableAttachment(J,{attachmentID:n.id,filename:n.filename,mimeType:n.mimeType,size:n.size,source:`server`,url:n.dataUrl,serverPath:n.serverPath,partID:i}):await t.addDraftLocalAttachment(J,n.file,{attachmentID:n.id,filename:n.filename,source:n.source===`vscode`?`vscode`:`local`,vscodePath:n.vscodePath,vscodeSource:n.vscodeSource===`selection`?`selection`:void 0,partID:i})}})()},inlineDrafts:[],removeInlineDraft:()=>{},restoreInlineDrafts:()=>{},history:Ie,captureRuntime:()=>b.getState().captureDraftRuntime(),getDraft:e=>b.getState().getDraft(e),abortPrompt:{sessionID:null,clear:()=>{}}}},[Te,J,Ie]),bt=Y.useMemo(()=>{let e=(X.data??[]).find(e=>e.id===W?.providerID)?.models?.find(e=>e.id===W?.modelID);return ve(e)},[W?.modelID,W?.providerID,X.data]),xt=Me.length>0,St=Y.useMemo(()=>{if(!W||!K||!q)return null;let e={sessionID:K,directory:q,sessionGeneration:W.sessionGeneration};return{kind:`secondary`,surfaceID:`assistant:${W.id}`,active:T,sessionID:K,directory:q,draftKey:J,transportIdentity:p,runtimeGeneration:m,deliveryTarget:{kind:`assistant`,assistantID:W.id},resources:yt,...W.mode===`stateless`?{queueSessionID:`assistant:${W.id}`}:{},selection:{value:{providerID:W.providerID,modelID:W.modelID,agent:W.agent??void 0,variant:W.variant??void 0},catalog:{providers:X.data??[],agents:ut,variants:bt,variantsReady:X.isSuccess,ready:X.isSuccess&&Q.isSuccess,loading:X.isPending||Q.isPending,error:X.isError||Q.isError},change:lt,flush:()=>$.flush(at)},activity:{phase:Pe?.type===`busy`?`busy`:Pe?.type===`retry`?`retry`:`idle`,canAbort:Pe?.type===`busy`||Pe?.type===`retry`},commands:{sessionID:K,hasMessages:xt,hasNewDraft:!1},commandPolicy:e=>e.name!==`fork`&&e.name!==`thread`,backend:{send:async t=>{let n;for(let t of N(e.sessionID,e.directory)){let e=typeof t?.id==`string`?t.id:``;/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/.test(e)&&(!n||e>n)&&(n=e)}let r=l(`msg`,n);t.options?.commitStagedMessageEdit&&et.current.clear({transport:p,assistantID:W.id});let i=j({messageID:r,sessionID:e.sessionID,providerID:t.providerID??W.providerID,modelID:t.modelID??W.modelID,agent:t.agent??W.agent??void 0,text:t.text,attachments:t.attachments,additionalParts:t.parts});He(e=>{let t=new Map(e);return t.set(W.id,[...e.get(W.id)??[],i]),t});let a;try{a=await B(W.id,e,r,Ze(t.text,t.parts,t.attachments))}catch(e){throw mt(W.id,[r]),e}if(L.data?.serverInstanceID){let e=_(W.name);v({serverInstanceID:L.data.serverInstanceID,assistantID:W.id,name:e.displayName||W.name,avatarSeed:W.id,...e.avatarEmoji?{avatarEmoji:e.avatarEmoji}:{}}).catch(()=>void 0)}a.binding.sessionID&&ht(W.id,r,a.binding.sessionID);let o=qe.current;Re({binding:a.binding,refresh:t=>ft(t,{force:t.sessionID!==e.sessionID||t.sessionGeneration!==e.sessionGeneration}),isCurrent:()=>qe.current===o})},sendQueued:async()=>{throw Error(`assistant-server-queue-required`)},create:async()=>{let e=await R(W.id);await st(W.id),await ft(e,{force:!0})},compact:async()=>{let t=await oe(W.id,e);await st(W.id),await ft(t.binding,{force:!0})},abort:async()=>{await ie(W.id,e)}},shortcuts:{cycle:dt,new:async()=>{let e=await R(W.id);await st(W.id),await ft(e,{force:!0})},abort:async()=>{await ie(W.id,e)},submit:()=>{}}}},[T,W,L.data?.serverInstanceID,lt,st,dt,q,J,xt,X.data,X.isError,X.isPending,X.isSuccess,Q.isError,Q.isPending,Q.isSuccess,ft,ht,mt,yt,m,$,at,K,Pe,p,bt,ut]),Ct=g(()=>{if(me(),f){f.openSettings();return}let e=i.getState();e.setSettingsPage(`assistants`),e.setSettingsDialogOpen(!0)}),wt=g(e=>{le(e,f?{openMobileSettings:f.openSettings}:void 0)}),[Tt,Et]=Y.useState(null),Dt=g(e=>{Et(e)}),Ot=g(e=>{e||Et(null)}),kt=g(()=>{i.getState().setActiveMainTab(`chat`)}),At=g(()=>{if(t){t();return}kt()}),jt=(e,t,n,r)=>(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[I?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):null,(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center px-6 text-center`,children:[(0,Z.jsx)(fe,{name:e,className:`size-6 text-muted-foreground`}),(0,Z.jsx)(`h1`,{className:`mt-4 typography-ui-header font-semibold`,children:t}),n?(0,Z.jsx)(`p`,{className:`mt-2 max-w-md typography-ui text-muted-foreground`,children:n}):null,r?(0,Z.jsx)(`div`,{className:`mt-5`,children:r}):null]})]});if(L.isPending||V.isPending)return jt(`ai-agent`,o(`assistants.state.unavailable`));if(L.isError||!L.data?.supported||!L.data.enabled||!H?.enabled)return jt(`cloud-off`,o(`assistants.state.unavailable`));if(!H.assistants.length)return jt(`ai-agent`,o(`assistants.onboarding.title`),o(`assistants.onboarding.description`),(0,Z.jsx)(he,{onClick:Ct,children:o(`assistants.onboarding.action`)}));if(!W)return jt(`ai-agent`,o(`assistants.state.unavailable`));if(!St)return(0,Z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,children:[I?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):null,(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6`,"aria-busy":`true`,"aria-label":o(`assistants.state.unavailable`),children:[(0,Z.jsx)(`div`,{className:`size-10 animate-pulse rounded-xl bg-[var(--surface-muted)] motion-reduce:animate-none`}),(0,Z.jsx)(`div`,{className:`h-3.5 w-36 animate-pulse rounded-md bg-[var(--surface-muted)] motion-reduce:animate-none`})]})]});let Mt=_(W.name),Nt=W.enabled?V.isError?o(`assistants.state.staleSnapshot`):null:o(`assistants.state.assistantDisabled`);return(0,Z.jsxs)(`div`,{className:`relative flex h-full min-h-0 overflow-hidden bg-background`,"data-presentation":`workspace`,children:[I?null:(0,Z.jsxs)(`section`,{className:`flex h-full min-h-0 w-[clamp(16rem,22vw,20rem)] shrink-0 flex-col overflow-hidden`,children:[(0,Z.jsx)(`header`,{className:`shrink-0 px-4 pb-3 pt-4 sm:px-5`,children:(0,Z.jsx)(`h1`,{className:`truncate typography-ui-label font-semibold text-foreground`,children:o(`assistants.title`)})}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 pb-4 sm:px-4`,role:`listbox`,"aria-label":o(`assistants.listAria`),children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-1 border-t border-border/40 pt-3`,children:H.assistants.map(e=>{let t=e.id===U,n=_(e.name);return(0,Z.jsx)($e,{assistantID:e.id,displayName:n.displayName,avatarEmoji:n.avatarEmoji??void 0,modeLabel:e.mode===`stateless`?o(`assistants.mode.stateless`):o(`assistants.mode.continuous`),selected:t,enabled:e.enabled,editLabel:o(`assistants.menu.edit`),deleteLabel:o(`assistants.settings.delete`),onSelect:()=>pe(e.id),onEdit:()=>wt(e.id),onDelete:()=>Dt(e)},e.id)})})})]}),(0,Z.jsx)(Fe,{assistant:Tt,open:Tt!==null,onOpenChange:Ot}),(0,Z.jsxs)(`div`,{className:de(`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-background`,!I&&`border-l border-border/60`),children:[I?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):(0,Z.jsxs)(`header`,{className:`flex h-14 shrink-0 items-center gap-3 border-b border-border/40 px-4 sm:px-5`,children:[(0,Z.jsx)(ue,{name:W.id,emoji:Mt.avatarEmoji,size:24,label:Mt.displayName||W.name}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`truncate typography-ui-label font-medium`,children:Mt.displayName}),(0,Z.jsx)(`div`,{className:`mt-0.5 truncate typography-micro leading-none text-muted-foreground/70`,children:W.mode===`stateless`?o(`assistants.conversation.statelessHint`):o(`assistants.conversation.continuousHint`)})]})]}),(0,Z.jsx)(ke,{onRevertMessage:_t,onEditMessage:W.mode===`continuous`?vt:void 0,assistant:W,sessionID:K,warning:Nt,surface:St,pendingUserMessages:tt,onPendingUserMessagesMaterialized:gt})]}),I?null:(0,Z.jsx)(Se,{directory:q||null})]})};export{qe as n,Fe as r,et as t};