@bigduu/lotus 2026.5.13 → 2026.5.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{App-bVqmFSlk.js → App-Agd9FqjU.js} +60 -60
- package/dist/assets/{MetricsService-PUxHq4VE.js → MetricsService-C8JKUh8i.js} +1 -1
- package/dist/assets/{SubAgentsPanel-B1pN_aEg.js → SubAgentsPanel-BtrjPQrW.js} +1 -1
- package/dist/assets/{index-C1smAwgR.js → index-B1RhqvS7.js} +1 -1
- package/dist/assets/{index-YqZv5PIH.js → index-BSDERF_W.js} +1 -1
- package/dist/assets/{index-Y7yrhp6h.js → index-BrDrSRJg.js} +1 -1
- package/dist/assets/{index-GggL5P0b.js → index-Btfph2VJ.js} +1 -1
- package/dist/assets/{index-BfCdANOc.js → index-C5hCIJZL.js} +1 -1
- package/dist/assets/{index-ZWAEbTDI.js → index-CJsySE-8.js} +1 -1
- package/dist/assets/{index-Dyeykeg3.js → index-CSZOcCBg.js} +1 -1
- package/dist/assets/{index-CIgS9N5-.js → index-Cgz3GQNf.js} +1 -1
- package/dist/assets/{index-rcVNW1p_.js → index-D3BCKROz.js} +1 -1
- package/dist/assets/{index-oQX-HGAT.js → index-DtQ-9WIb.js} +1 -1
- package/dist/assets/{index-CWTKRCxw.js → index-QAoCDEtf.js} +2 -2
- package/dist/assets/{main-BEVjNwcv.js → main-C-I4C72U.js} +2 -2
- package/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-
|
|
2
|
-
var gS=Object.defineProperty;var yS=(e,t,n)=>t in e?gS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Et=(e,t,n)=>yS(e,typeof t!="symbol"?t+"":t,n);import{j as a,M as vr,S as dn,a as ng,t as rg,p as sg,b as bS,c as Gu,d as vS,m as og,s as SS,y as ig,e as ag,h as il,f as Ju,r as Qu,g as Zu,i as lg}from"./vendor-markdown-DZuK0SxV.js";import{a as y,u as Ge,R as ht,i as xt,c as xS,g as bs}from"./vendor-i18n-BNURlJ23.js";import{_ as Jt,cq as ed}from"./vendor-mermaid-C1Gk9PtT.js";import{t as ut,o as kf,p as wS,Q as _S,as as ps,aY as cg,aZ as kS,V as kl,E as je,ap as CS,G as vs,ak as Xs,a_ as TS,L as Cr,X as Ss,a$ as ug,H as tu,S as Ue,F as Ee,u as ms,q as zr,O as td,Y as Cl,n as xn,b0 as PS,b1 as ES,j as ft,M as Fn,W as qa,a0 as MS,a4 as nu,b2 as jS,b3 as Tl,b4 as dg,J as nd,b5 as ru,b6 as Ks,b7 as RS,b8 as AS,D as al,k as IS,y as fg,b9 as OS,ba as $S,K as Vs,aj as LS,l as Je,a2 as FS,v as hg,A as ir,C as nn,bb as Pl,bc as pg,ao as DS,ac as NS,w as rd,aE as mg,bd as BS,be as zS,bf as WS,bg as US,z as Gs,bh as qS,bi as HS,ah as sd,ai as Tr,at as ll,aD as Zs,bj as YS,bk as gg,bl as yg,ad as od,a7 as XS,m as El,a9 as Cf,aA as KS,I as Tf,P as bg,aS as vg,aK as VS,av as GS,af as JS,bm as QS,bn as ZS,ar as ex,aF as tx,bo as nx,bp as rx,bq as sx,br as ox,B as ix,aW as zs,bs as Sg,bt as ax,bu as xg,a5 as id,bv as lx,bw as cx,$ as ux,bx as Pf,by as Ef}from"./vendor-antd-C8lKwvI6.js";import{r as dx,A as fx,a as hx}from"./main-BEVjNwcv.js";function wg(e){const[t,n]=y.useState(()=>typeof window<"u"?window.matchMedia(e).matches:!1);return y.useEffect(()=>{if(typeof window>"u")return;const r=window.matchMedia(e);n(r.matches);const s=o=>{n(o.matches)};return r.addEventListener?r.addEventListener("change",s):r.addListener(s),()=>{r.removeEventListener?r.removeEventListener("change",s):r.removeListener(s)}},[e]),t}function Ml(){return wg("(max-width: 768px)")}const px=({chat:e,isSelected:t,compact:n=!1,onSelect:r,onDelete:s,onPin:o,onUnpin:i,onEdit:l,onGenerateTitle:u,onRunProjectDream:f,isGeneratingTitle:h,isRunningProjectDream:m,titleGenerationError:b})=>{const{t:v}=Ge(),[w,S]=y.useState(!1),[k,P]=y.useState(e.title),[T,M]=y.useState(!1),[C,j]=y.useState(!1),{token:A}=ut.useToken(),O=y.useCallback(G=>{G.stopPropagation(),l&&k.trim()&&l(e.id,k.trim()),S(!1)},[e.id,k,l]),F=y.useCallback(G=>{G.stopPropagation(),P(e.title),S(!1)},[e.title]),D=[{key:"pin",icon:e.pinned?a.jsx(kf,{style:{color:A.colorWarning}}):a.jsx(wS,{}),label:e.pinned?v("chat.actions.unpin"):v("chat.actions.pin"),onClick:({domEvent:G})=>{G.stopPropagation(),e.pinned?i(e.id):o(e.id)}},{key:"edit",icon:a.jsx(_S,{}),label:v("chat.chatItem.edit"),onClick:({domEvent:G})=>{G.stopPropagation(),S(!0)}},...u?[{key:"generate-title",icon:h?a.jsx(ps,{}):a.jsx(cg,{style:b?{color:A.colorError}:void 0}),label:b||v("chat.actions.generateTitle"),disabled:h,onClick:({domEvent:G})=>{G.stopPropagation(),u(e.id)}}]:[],...f?[{key:"run-project-dream",icon:m?a.jsx(ps,{}):a.jsx(kS,{}),label:v("chat.actions.runProjectDream"),disabled:m,onClick:({domEvent:G})=>{G.stopPropagation(),f(e.id)}}]:[],{type:"divider"},{key:"delete",icon:a.jsx(kl,{}),label:v("common.delete"),danger:!0,onClick:({domEvent:G})=>{G.stopPropagation(),s(e.id)}}],N={padding:n?"4px 8px":"5px 8px",borderRadius:A.borderRadiusSM,marginBottom:0,cursor:"pointer",transition:"background-color 0.2s ease, box-shadow 0.2s ease",backgroundColor:t?"var(--lotus-primary-soft)":T||C?"var(--lotus-item-hover-bg)":"transparent",border:"1px solid transparent",borderColor:"transparent",position:"relative",overflow:"visible",boxShadow:t?`inset 2px 0 0 ${A.colorPrimary}`:"none",minHeight:n?28:30},q={flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",fontSize:n?12:12.5,lineHeight:1.3,fontWeight:t?600:500,color:t?"var(--lotus-primary)":A.colorText},I={flex:1,fontSize:A.fontSizeSM,marginRight:A.marginSM},Q=w?[a.jsx(je,{type:"text",size:"small",icon:a.jsx(CS,{style:{color:A.colorSuccess}}),onClick:O,"aria-label":v("common.save")},"save"),a.jsx(je,{type:"text",size:"small",icon:a.jsx(vs,{style:{color:A.colorError}}),onClick:F,"aria-label":v("common.cancel")},"cancel")]:T||C?[a.jsx(Xs,{menu:{items:D,className:"lotus-sidebar-actions-menu"},trigger:["click"],placement:"bottomRight",overlayClassName:"lotus-sidebar-actions-dropdown",open:C,onOpenChange:G=>j(G),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(TS,{}),"aria-label":v("common.moreActions","More actions"),onClick:G=>G.stopPropagation(),style:{color:A.colorTextSecondary,borderRadius:A.borderRadiusSM,background:"transparent",width:n?16:18,height:n?16:18,display:"flex",alignItems:"center",justifyContent:"center"}})},"more")]:[];return a.jsx(Cr.Item,{style:N,tabIndex:0,onClick:()=>!w&&r(e.id),onKeyDown:G=>{G.key==="Enter"&&!w?(G.preventDefault(),r(e.id)):(G.key==="Delete"||G.key==="Backspace")&&!w&&G.metaKey&&(G.preventDefault(),s(e.id))},onMouseEnter:()=>M(!0),onMouseLeave:()=>{C||M(!1)},onFocus:()=>M(!0),onBlur:()=>{C||M(!1)},actions:Q,"data-testid":"chat-item",role:"option","aria-selected":t,"aria-label":e.title||v("chat.sidebar.untitledChat"),children:a.jsx("div",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:w?a.jsx(Ss,{value:k,onChange:G=>P(G.target.value),onClick:G=>G.stopPropagation(),onPressEnter:G=>{G.preventDefault(),O(G)},autoFocus:!0,style:I,variant:"borderless",size:"small"}):a.jsxs("div",{style:{...q,display:"flex",alignItems:"center",gap:n?4:A.marginXS,minWidth:0},children:[e.pinned&&a.jsx(kf,{style:{color:A.colorWarning,fontSize:11,flexShrink:0}}),a.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),e.kind==="child"?a.jsx("span",{style:{color:A.colorInfo,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap"},children:v("chat.chatItem.childTag")}):null,e.planMode?a.jsxs("span",{style:{color:"#722ed1",fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:3},children:[a.jsx(ug,{}),v("chat.planMode.badge","Plan")]}):null]})})})},mx=(e,t)=>e.chat.id===t.chat.id&&e.chat.title===t.chat.title&&e.chat.pinned===t.chat.pinned&&e.chat.planMode===t.chat.planMode&&e.isSelected===t.isSelected&&e.compact===t.compact&&e.isGeneratingTitle===t.isGeneratingTitle&&e.isRunningProjectDream===t.isRunningProjectDream&&e.titleGenerationError===t.titleGenerationError,su=y.memo(px,mx);su.displayName="ChatItem";const Mf=e=>({Today:0,Yesterday:1,"This Week":2,"This Month":3})[e]??4,gx=e=>{const t={},n=e.filter(s=>s.pinned);n.length>0&&(t.Pinned=n.sort((s,o)=>o.createdAt-s.createdAt));const r=e.filter(s=>!s.pinned&&!!s.createdByScheduleId);return r.length>0&&(t.Scheduled=r.sort((s,o)=>o.createdAt-s.createdAt)),e.filter(s=>!s.pinned&&!s.createdByScheduleId).forEach(s=>{const i=new Date(s.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});t[i]||(t[i]=[]),t[i].push(s)}),Object.keys(t).forEach(s=>{t[s].sort((o,i)=>i.createdAt-o.createdAt)}),t},yx=e=>{const t=n=>Array.isArray(n)?n.reduce((r,s)=>Math.max(r,s.createdAt),0):Object.values(n).reduce((r,s)=>{const o=s.reduce((i,l)=>Math.max(i,l.createdAt),0);return Math.max(r,o)},0);return Object.keys(e).sort((n,r)=>{if(n==="Pinned")return-1;if(r==="Pinned")return 1;if(n==="Scheduled")return-1;if(r==="Scheduled")return 1;const s=e[n],o=e[r];if(!s||!o)return 0;const i=t(s),l=t(o);return i!==l?l-i:Mf(n)-Mf(r)})},bx=(e,t)=>e[t]?e[t].map(n=>n.id):[],_g=(e,t)=>e[t]?e[t].length:0,vx=e=>e.createdByScheduleId?"Scheduled":new Date(e.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),jf=(e,t)=>{const r={Today:"chat.sidebar.dateGroups.today",Yesterday:"chat.sidebar.dateGroups.yesterday","This Week":"chat.sidebar.dateGroups.thisWeek","This Month":"chat.sidebar.dateGroups.thisMonth",Pinned:"chat.sidebar.dateGroups.pinned",Scheduled:"chat.sidebar.dateGroups.scheduled"}[e];return r?t(r):e},Sx=({groupedChatsByDate:e,childrenByRoot:t,expandedRootIds:n,onToggleRootExpanded:r,sortedDateKeys:s,expandedKeys:o,onCollapseChange:i,currentSessionId:l,onSelectChat:u,onDeleteChat:f,onDeleteByDate:h,onPinChat:m,onUnpinChat:b,onEditTitle:v,onGenerateTitle:w,onRunProjectDream:S,titleGenerationState:k,projectDreamState:P,token:T,hasActiveFilters:M})=>{const{t:C}=Ge(),j=y.useMemo(()=>s.length?s.map(O=>{const F=e[O],D=_g(e,O);return{dateKey:O,dateGroup:F,totalChatsInDate:D}}):[],[e,s]);if(!s.length)return a.jsx(tu,{image:tu.PRESENTED_IMAGE_SIMPLE,description:a.jsxs(Ue,{direction:"vertical",size:4,align:"center",children:[a.jsx("span",{style:{color:T.colorTextSecondary},children:M?C("chat.sidebar.empty.noMatches","No matching sessions"):C("chat.sidebar.empty.noSessions")}),a.jsx("span",{style:{color:T.colorTextSecondary,fontSize:12},children:M?C("chat.sidebar.empty.filterHint","Try adjusting your search or filters"):C("chat.sidebar.empty.hint")}),M&&a.jsx(je,{size:"small",type:"link",onClick:()=>{var F;const O=document.querySelector('[data-testid="sidebar-search-input"] input, .lotus-sidebar-search input');if(O){const D=(F=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))==null?void 0:F.set;D==null||D.call(O,""),O.dispatchEvent(new Event("input",{bubbles:!0}))}},children:C("chat.sidebar.empty.clearFilters","Clear filters")})]})});const A=new Set(o);return a.jsx("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:2},children:j.map(({dateKey:O,dateGroup:F,totalChatsInDate:D})=>{const N=A.has(O);return a.jsxs("div",{style:{borderRadius:T.borderRadiusSM,background:"transparent",padding:0},children:[a.jsxs(Ee,{align:"center",justify:"space-between",style:{cursor:"pointer",padding:"4px 8px",borderRadius:T.borderRadiusSM,transition:"background-color 0.2s ease, color 0.2s ease",border:"1px solid transparent"},role:"button",tabIndex:0,"aria-expanded":N,"aria-label":`${jf(O,C)} (${D})`,onKeyDown:q=>{if(q.key==="Enter"||q.key===" "){q.preventDefault();const I=new Set(A);I.has(O)?I.delete(O):I.add(O),i(Array.from(I))}},onMouseEnter:q=>{q.currentTarget.style.background="var(--lotus-sidebar-item-hover-bg, rgba(204, 251, 241, 0.76))",q.currentTarget.style.borderColor="transparent";const I=q.currentTarget.querySelector(".chat-sidebar-date-group-delete");I&&(I.style.opacity="1")},onMouseLeave:q=>{q.currentTarget.style.background="transparent",q.currentTarget.style.borderColor="transparent";const I=q.currentTarget.querySelector(".chat-sidebar-date-group-delete");I&&(I.style.opacity="0")},onClick:()=>{const q=new Set(A);q.has(O)?q.delete(O):q.add(O),i(Array.from(q))},className:"chat-sidebar-date-group-header",children:[a.jsxs(Ee,{align:"center",gap:"small",style:{minWidth:0},children:[N?a.jsx(ms,{style:{fontSize:12,opacity:.6}}):a.jsx(zr,{style:{fontSize:12,opacity:.6}}),a.jsxs("span",{style:{fontSize:10.5,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.3px",color:O==="Today"?"var(--lotus-primary)":T.colorTextSecondary,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[jf(O,C)," (",D,")"]})]}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(kl,{}),className:"chat-sidebar-date-group-delete",style:{color:T.colorTextTertiary,opacity:0,transition:"opacity 0.2s ease"},onClick:q=>{q.stopPropagation(),h(O)}})]}),N?a.jsx("div",{style:{marginTop:2},children:a.jsx(Cr,{itemLayout:"horizontal",dataSource:F,split:!1,renderItem:q=>{var I,Q,G,Z,pe,$;return a.jsxs("div",{children:[a.jsxs(Ee,{align:"center",gap:6,style:{padding:"4px 8px"},children:[(I=t[q.id])!=null&&I.length?a.jsx(je,{size:"small",type:"text",style:{padding:0,width:18,minWidth:18,height:18},"aria-label":n.has(q.id)?C("chat.sidebar.actions.collapseChildren"):C("chat.sidebar.actions.expandChildren"),onClick:oe=>{oe.preventDefault(),oe.stopPropagation(),r(q.id)},children:n.has(q.id)?a.jsx(ms,{style:{fontSize:12}}):a.jsx(zr,{style:{fontSize:12}})}):a.jsx("div",{style:{width:18}}),a.jsx("div",{style:{flex:1,minWidth:0,marginLeft:-8},children:a.jsx(su,{chat:q,compact:!0,isSelected:q.id===l,onSelect:u,onDelete:f,onPin:m,onUnpin:b,onEdit:v,onGenerateTitle:w,onRunProjectDream:S,isGeneratingTitle:((Q=k[q.id])==null?void 0:Q.status)==="loading",isRunningProjectDream:((G=P[q.id])==null?void 0:G.status)==="loading",titleGenerationError:((Z=k[q.id])==null?void 0:Z.status)==="error"?(pe=k[q.id])==null?void 0:pe.error:void 0})})]}),n.has(q.id)&&((($=t[q.id])==null?void 0:$.length)??0)>0?a.jsx("div",{style:{marginLeft:18,marginTop:1},children:a.jsx(Cr,{itemLayout:"horizontal",dataSource:t[q.id],split:!1,renderItem:oe=>{var me,ne,fe,he;return a.jsx("div",{style:{paddingLeft:8,borderLeft:`1px solid ${T.colorBorderSecondary}`,marginLeft:2},children:a.jsx(su,{chat:oe,compact:!0,isSelected:oe.id===l,onSelect:u,onDelete:f,onPin:m,onUnpin:b,onEdit:v,onGenerateTitle:w,onRunProjectDream:S,isGeneratingTitle:((me=k[oe.id])==null?void 0:me.status)==="loading",isRunningProjectDream:((ne=P[oe.id])==null?void 0:ne.status)==="loading",titleGenerationError:((fe=k[oe.id])==null?void 0:fe.status)==="error"?(he=k[oe.id])==null?void 0:he.error:void 0})},oe.id)}})}):null]},q.id)}})}):null]},O)})})},Rf=e=>{let t;const n=new Set,r=(f,h)=>{const m=typeof f=="function"?f(t):f;if(!Object.is(m,t)){const b=t;t=h??(typeof m!="object"||m===null)?m:Object.assign({},t,m),n.forEach(v=>v(t,b))}},s=()=>t,l={setState:r,getState:s,getInitialState:()=>u,subscribe:f=>(n.add(f),()=>n.delete(f))},u=t=e(r,s,l);return l},xx=e=>e?Rf(e):Rf,wx=e=>e;function _x(e,t=wx){const n=ht.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return ht.useDebugValue(n),n}const Af=e=>{const t=xx(e),n=r=>_x(t,r);return Object.assign(n,t),n},qr=e=>e?Af(e):Af,kx="copilot_ui_theme_v1";function Cx(){var e;try{const t=localStorage.getItem(kx);if(t==="light"||t==="dark")return t}catch{}return(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}const cl=qr(e=>({themeMode:Cx(),setThemeMode:t=>e({themeMode:t}),toggleTheme:()=>e(t=>({themeMode:t.themeMode==="dark"?"light":"dark"}))})),Tx="2026.5.13",Px={version:Tx},Ex=Px.version,{Text:Mx}=ft,jx=({collapsed:e,onNewChat:t,onOpenSettings:n,token:r})=>{const{t:s}=Ge(),o=cl(h=>h.themeMode),i=cl(h=>h.toggleTheme),l=s("chat.sidebar.newSession"),u=s("settings.page.title"),f=o==="dark"?s("settings.app.lightMode","Light mode"):s("settings.app.darkMode","Dark mode");return a.jsxs(Ee,{vertical:!0,gap:e?"small":10,style:{padding:e?10:12,background:"transparent",borderTop:`1px solid ${r.colorBorderSecondary}`},children:[a.jsx(je,{"data-testid":"new-chat","data-tour-id":"new-session",type:"primary",icon:a.jsx(td,{}),onClick:t,block:!e,shape:"default",size:"small",title:l,"aria-label":l,className:"lotus-primary-cta",style:{...e?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:e?40:38,fontWeight:600},children:!e&&l}),a.jsxs(Ee,{gap:6,align:"center",children:[a.jsx(je,{"data-testid":"open-settings","data-tour-id":"open-settings",icon:a.jsx(Cl,{}),onClick:n,block:!e,shape:"default",size:"small",title:u,"aria-label":u,className:"lotus-secondary-button",style:{...e?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:e?40:36,flex:e?void 0:1},children:!e&&u}),!e&&a.jsx(xn,{title:f,placement:"top",children:a.jsx(je,{"data-testid":"toggle-theme",type:"text",icon:o==="dark"?a.jsx(PS,{}):a.jsx(ES,{}),onClick:i,"aria-label":f,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})]}),!e&&a.jsxs(Mx,{type:"secondary","data-testid":"app-version-badge",style:{fontSize:11,textAlign:"center",userSelect:"text"},children:[s("settings.appTab.runningVersion","Running version"),": v",Ex]})]})},If=e=>Symbol.iterator in e,Of=e=>"entries"in e,$f=(e,t)=>{const n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(const[s,o]of n)if(!Object.is(o,r.get(s)))return!1;return!0},Rx=(e,t)=>{const n=e[Symbol.iterator](),r=t[Symbol.iterator]();let s=n.next(),o=r.next();for(;!s.done&&!o.done;){if(!Object.is(s.value,o.value))return!1;s=n.next(),o=r.next()}return!!s.done&&!!o.done};function Ax(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:If(e)&&If(t)?Of(e)&&Of(t)?$f(e,t):Rx(e,t):$f({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function Pi(e){const t=ht.useRef(void 0);return n=>{const r=e(n);return Ax(t.current,r)?t.current:t.current=r}}const kg=()=>!1,Cg=e=>{if(!kg())return!1;try{return localStorage.getItem(e)==="1"}catch{return!1}},Ix=()=>Cg("bodhi_debug_ui_layout"),Xn=(e,t)=>{Ix()&&console.log(`[ui-layout] ${e}`,t??"")},Me=(e,t,...n)=>{kg()&&Cg("bodhi_debug_verbose")&&console.log(`${e} ${t}`,...n)};var hc={};const pc="copilot_backend_base_url",Tg="http://127.0.0.1:9562/v1",Ox=9562,gs=e=>e.trim().replace(/\/+$/,""),$x=()=>{const t=hc==null?void 0:hc.VITE_BACKEND_BASE_URL;return t?gs(t):null},Xi=()=>{const e=globalThis.location;if(!e)return null;const t=typeof e.protocol=="string"?e.protocol:"",n=typeof e.hostname=="string"?e.hostname:"";return!t||!n?null:{protocol:t,hostname:n}},ad=e=>{const t=e.trim().toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="::1"},Lx=(e=Xi())=>(e==null?void 0:e.protocol.toLowerCase())==="https:",Fx=e=>{try{return new URL(gs(e)).protocol.toLowerCase()==="http:"}catch{return!1}},Dx=e=>{try{const t=new URL(gs(e));return ad(t.hostname)}catch{return!1}},Nx=(e=Xi())=>{if(!e)return null;const t=e.protocol.toLowerCase(),n=e.hostname.trim();return n?t==="https:"?gs(`https://${n}/v1`):t==="http:"?gs(`http://${n}/v1`):null:null},Bx=(e,t=Xi())=>{if(!t)return!1;const n=t.hostname.trim();return n?Lx(t)&&Fx(e)?!0:ad(n)?!1:Dx(e):!1},zx=(e=Xi())=>{if(!e)return null;const t=e.protocol.toLowerCase();if(t!=="http:"&&t!=="https:")return null;const n=e.hostname.trim();return n?t==="https:"?Nx(e):ad(n)?Tg:gs(`http://${n}:${Ox}/v1`):null},Wx=()=>{const e=$x();return e||(zx()??Tg)},xs=()=>{const e=Xi(),t=localStorage.getItem(pc);if(t){const n=gs(t);if(Bx(n,e))console.warn("Ignoring stored backend override because it is incompatible with the current page origin:",n),localStorage.removeItem(pc);else try{return new URL(n),n}catch{console.warn("Invalid stored backend URL, using default:",n),localStorage.removeItem(pc)}}return Wx()};class Li extends Error{constructor(t,n,r,s){super(t),this.status=n,this.statusText=r,this.body=s,this.name="ApiError"}}function rI(e){return e instanceof Li}class ld{constructor(t={}){Et(this,"baseUrl");Et(this,"defaultHeaders");this.baseUrl=t.baseUrl??this.resolveBaseUrl(),this.defaultHeaders=t.defaultHeaders??{"Content-Type":"application/json"}}resolveBaseUrl(){const t=xs().trim().replace(/\/+$/,"");return t.endsWith("/v1")?t:`${t}/v1`}buildUrl(t){const n=t.replace(/^\/+/,"");return`${this.baseUrl}/${n}`}async handleResponse(t){var r,s,o;if(!t.ok){const i=await t.text().catch(()=>{});let l=t.statusText;if(i)try{const u=JSON.parse(i),f=typeof(u==null?void 0:u.error)=="object"?(r=u.error)==null?void 0:r.message:void 0;l=(typeof(u==null?void 0:u.error)=="string"?u.error:void 0)||(typeof f=="string"?f:void 0)||u.message||u.detail||t.statusText}catch{l=i||t.statusText}throw new Li(l,t.status,t.statusText,i)}return t.status===204?void 0:(((o=(s=t.headers)==null?void 0:s.get)==null?void 0:o.call(s,"content-type"))||"").includes("application/json")?t.json():typeof t.text=="function"?await t.text():t.json()}delay(t){return new Promise(n=>setTimeout(n,t))}async fetchWithRetry(t,n,r=3){let s=null;for(let o=0;o<r;o++)try{const i=await fetch(t,n);if(i.status>=500&&o<r-1){const l=1e3*Math.pow(2,o);console.warn(`Request failed with ${i.status}, retrying in ${l}ms (attempt ${o+1}/${r})`),await this.delay(l);continue}return i}catch(i){if(s=i,o<r-1){const l=1e3*Math.pow(2,o);console.warn(`Network error: ${s.message}, retrying in ${l}ms (attempt ${o+1}/${r})`),await this.delay(l)}}throw s||new Error("Max retries exceeded")}async get(t,n){const r=this.buildUrl(t),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"GET",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async post(t,n,r){const s=this.buildUrl(t),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:"POST",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async put(t,n,r){const s=this.buildUrl(t),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:"PUT",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async patch(t,n,r){const s=this.buildUrl(t),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:"PATCH",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async delete(t,n){const r=this.buildUrl(t),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"DELETE",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async request(t,n,r){const s=this.buildUrl(n),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:t,headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async fetchRaw(t,n){const r=this.buildUrl(t),s=await fetch(r,{...n,headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include"});if(!s.ok)throw new Li(`API request failed: ${s.statusText}`,s.status,s.statusText);return s}}const rt=new ld,St=new ld({baseUrl:(()=>{let e=xs().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`})()}),Ux=e=>e?{client_message_count:e.client_message_count,client_last_message_id:e.client_last_message_id??null,client_has_pending_question:e.client_has_pending_question,client_pending_question_tool_call_id:e.client_pending_question_tool_call_id??null}:null,qx=e=>e?{need_sync:e.need_sync,reason:e.reason??null,server_message_count:e.server_message_count,server_last_message_id:e.server_last_message_id??null,has_pending_question:e.has_pending_question,pending_question_tool_call_id:e.pending_question_tool_call_id??null,has_pending_user_message:e.has_pending_user_message}:null,Hx=e=>{var n;const t=e.messages[e.messages.length-1];return{session_id:e.session_id,messageCount:e.messages.length,lastMessageId:(t==null?void 0:t.id)??null,lastRole:(t==null?void 0:t.role)??null,compressionEvents:((n=e.compression_events)==null?void 0:n.length)??0}},Yx=e=>({count:e.length,runningCount:e.filter(t=>t.is_running).length,sessions:e.slice(0,10).map(t=>({id:t.id,is_running:t.is_running,last_run_status:t.last_run_status??null,message_count:t.message_count,has_pending_question:t.has_pending_question??!1,running_child_count:t.running_child_count??0,updated_at:t.updated_at}))}),Xx=e=>({count:e.sessions.length,sessions:e.sessions.map(t=>({session_id:t.session_id,run_id:t.run_id,round_count:t.round_count,last_event_at:t.last_event_at??null,last_tool_name:t.last_tool_name??null,last_tool_phase:t.last_tool_phase??null,criticalEventCount:t.last_critical_events.length,runningChildCount:t.running_child_session_ids.length}))}),ba=e=>({type:e.type,session_id:e.session_id??null,run_id:e.run_id??null,round_count:e.round_count??null,message:e.message??null,error:e.error??null,tool_call_id:e.tool_call_id??null}),os=class os{static getInstance(){return os.instance||(os.instance=new os),os.instance}async sendMessage(t){var r,s,o;Me("[AgentClient]","chat.request",{sessionId:t.session_id??null,model:t.model,modelRef:t.model_ref??null,provider:t.provider??null,messageLength:t.message.length,hasImages:(((r=t.images)==null?void 0:r.length)??0)>0,imageCount:((s=t.images)==null?void 0:s.length)??0,selectedSkillCount:((o=t.selected_skill_ids)==null?void 0:o.length)??0,workspacePath:t.workspace_path??null});const n=await St.post("chat",t);return Me("[AgentClient]","chat.response",{requestedSessionId:t.session_id??null,sessionId:n.session_id,status:n.status}),n}async execute(t,n,r,s,o){const i={};n&&(i.model=n),r&&(i.reasoning_effort=r),s&&(i.client_sync=s),o&&(i.model_ref=o,i.provider=o.provider),Me("[AgentClient]","execute.request",{sessionId:t,model:i.model??null,reasoningEffort:i.reasoning_effort??null,modelRef:i.model_ref??null,provider:i.provider??null,clientSync:Ux(i.client_sync)});const l=await St.post(`execute/${t}`,i);return Me("[AgentClient]","execute.response",{sessionId:t,status:l.status,runId:l.run_id??null,eventsUrl:l.events_url,sync:qx(l.sync)}),l}async listSessions(){Me("[AgentClient]","sessions.list.request",{});const t=await St.get("sessions");return Me("[AgentClient]","sessions.list.response",Yx(t.sessions)),t}async getTaskList(t){const n=encodeURIComponent(t),r=await St.get(`task/${n}`);if(!(typeof r.title=="string"||r.items.length>0))return null;const o=new Date().toISOString();return{session_id:r.session_id,title:r.title??"Task List",items:r.items,created_at:o,updated_at:o}}async createSession(t){return St.post("sessions",t)}async patchSession(t,n){const r=encodeURIComponent(t);await St.patch(`sessions/${r}`,n)}async regenerateSessionTitle(t){const n=encodeURIComponent(t);await St.post(`sessions/${n}/regenerate-title`)}async getSessionSystemPrompt(t){const n=encodeURIComponent(t);return St.get(`sessions/${n}/system-prompt`)}async clearSession(t){const n=encodeURIComponent(t);await St.post(`sessions/${n}/clear`)}async runProjectDream(t){const n=encodeURIComponent(t);return St.post(`sessions/${n}/project-dream/run`)}async truncateSessionMessages(t,n){const r=encodeURIComponent(t);return St.post(`sessions/${r}/messages/truncate`,n)}async restoreSessionState(t,n){const r=encodeURIComponent(t);return St.post(`sessions/${r}/restore`,n)}async patchSessionMessage(t,n,r){const s=encodeURIComponent(t),o=encodeURIComponent(n);await St.patch(`sessions/${s}/messages/${o}`,r)}async deleteSessionMessage(t,n){const r=encodeURIComponent(t),s=encodeURIComponent(n);await St.delete(`sessions/${r}/messages/${s}`)}async cleanupSessions(t,n){await St.post("sessions/cleanup",{mode:t,keep_pinned:n})}async devResetSessions(){await St.post("dev/reset")}async getRunningSessions(){Me("[AgentClient]","runs.active.request",{});const t=await St.get("runs/active");return Me("[AgentClient]","runs.active.response",Xx(t)),t}async listSchedules(){return St.get("schedules")}async createSchedule(t){return St.post("schedules",t)}async patchSchedule(t,n){const r=encodeURIComponent(t);return St.patch(`schedules/${r}`,n)}async deleteSchedule(t){const n=encodeURIComponent(t);await St.delete(`schedules/${n}`)}async runScheduleNow(t){const n=encodeURIComponent(t);await St.post(`schedules/${n}/run`)}async listScheduleSessions(t){const n=encodeURIComponent(t);return St.get(`schedules/${n}/sessions`)}async listScheduleRuns(t){const n=encodeURIComponent(t);return St.get(`schedules/${n}/runs`)}async subscribeToEvents(t,n,r){const s=r==null?void 0:r.signal;Me("[AgentClient]","events.subscribe.request",{sessionId:t});const o=xs().trim().replace(/\/+$/,""),l=`${o.endsWith("/v1")?o.slice(0,-3):o}/api/v1/events/${encodeURIComponent(t)}`;return Me("[AgentClient]","events.subscribe.url",{sessionId:t,eventsUrl:l}),await new Promise((u,f)=>{if(s!=null&&s.aborted){Me("[AgentClient]","events.subscribe.aborted_before_connect",{sessionId:t}),u();return}let h=!1,m=!1,b=null;const v=()=>{Me("[AgentClient]","events.subscribe.abort",{sessionId:t,terminalSeen:m}),S()},w=()=>{b&&(b.close(),b=null),s==null||s.removeEventListener("abort",v)},S=()=>{h||(h=!0,Me("[AgentClient]","events.subscribe.resolve",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),w(),u())},k=P=>{h||(h=!0,Me("[AgentClient]","events.subscribe.reject",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1,error:P}),w(),f(P))};s==null||s.addEventListener("abort",v,{once:!0});try{b=new EventSource(l,{withCredentials:!0})}catch(P){k(P);return}b.onopen=()=>{Me("[AgentClient]","events.subscribe.open",{sessionId:t})},b.onmessage=P=>{const T=P.data;if(T==="[DONE]"){m=!0,Me("[AgentClient]","events.subscribe.done",{sessionId:t}),S();return}if(T!=="[KEEPALIVE]")try{const M=JSON.parse(T);(M.type==="execution_started"||M.type==="complete"||M.type==="cancelled"||M.type==="error"||M.type==="runner_progress"||M.type==="need_clarification")&&Me("[AgentClient]","events.subscribe.event",{sessionId:t,...ba(M)}),this.handleEvent(M,n),(M.type==="complete"||M.type==="cancelled"||M.type==="error")&&(m=!0)}catch(M){console.warn("Failed to parse event:",T,M)}},b.onerror=()=>{if(Me("[AgentClient]","events.subscribe.error",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),s!=null&&s.aborted||m){S();return}k(new Error(`EventSource connection failed for session ${t}`))}})}handleEvent(t,n){var r,s,o,i,l,u,f,h,m,b,v,w,S,k,P,T,M,C,j,A,O,F,D,N,q,I,Q,G,Z,pe,$;switch(t.type){case"token":(r=n.onToken)==null||r.call(n,t.content||"");break;case"reasoning_token":(s=n.onReasoningToken)==null||s.call(n,t.content||"");break;case"tool_token":(o=n.onToolToken)==null||o.call(n,t.tool_call_id||"",t.content||"");break;case"tool_start":(i=n.onToolStart)==null||i.call(n,t.tool_call_id||"",t.tool_name||"",t.arguments||{});break;case"tool_complete":t.result&&((l=n.onToolComplete)==null||l.call(n,t.tool_call_id||"",t.result));break;case"tool_error":(u=n.onToolError)==null||u.call(n,t.tool_call_id||"",t.error||"");break;case"task_list_updated":t.task_list&&((f=n.onTaskListUpdated)==null||f.call(n,t.task_list));break;case"task_list_item_progress":if(t.session_id&&t.item_id&&t.status&&t.tool_calls_count!==void 0&&t.version!==void 0){const oe=t.status;if(!(oe==="pending"||oe==="in_progress"||oe==="completed"||oe==="blocked"))break;(h=n.onTaskListItemProgress)==null||h.call(n,{session_id:t.session_id,item_id:t.item_id,status:oe,tool_calls_count:t.tool_calls_count,version:t.version})}break;case"task_list_completed":t.session_id&&t.total_rounds!==void 0&&t.total_tool_calls!==void 0&&((m=n.onTaskListCompleted)==null||m.call(n,t.session_id,t.total_rounds,t.total_tool_calls,t.completed_at));break;case"task_evaluation_started":t.session_id&&t.items_count!==void 0&&((b=n.onTaskEvaluationStarted)==null||b.call(n,t.session_id,t.items_count));break;case"task_evaluation_completed":t.session_id&&t.updates_count!==void 0&&t.reasoning&&((v=n.onTaskEvaluationCompleted)==null||v.call(n,t.session_id,t.updates_count,t.reasoning));break;case"token_budget_updated":t.usage&&"system_tokens"in t.usage&&((w=n.onTokenBudgetUpdated)==null||w.call(n,t.usage));break;case"context_compression_status":typeof t.phase=="string"&&typeof t.status=="string"&&((S=n.onContextCompressionStatus)==null||S.call(n,t.phase,t.status));break;case"tool_lifecycle":(k=n.onToolLifecycle)==null||k.call(n,t.tool_call_id||"",t.tool_name||"",t.phase||"",t.elapsed_ms,t.is_mutating,t.auto_approved,t.summary,t.error);break;case"context_summarized":t.summary_info&&((P=n.onContextSummarized)==null||P.call(n,t.summary_info));break;case"context_pressure_notification":typeof t.percent=="number"&&typeof t.level=="string"&&((T=n.onContextPressureNotification)==null||T.call(n,t.percent,t.level,t.message||""));break;case"sub_agent_started":t.parent_session_id&&t.child_session_id&&((M=n.onSubAgentStarted)==null||M.call(n,t.parent_session_id,t.child_session_id,t.title));break;case"sub_agent_event":t.parent_session_id&&t.child_session_id&&t.event&&((C=n.onSubAgentEvent)==null||C.call(n,t.parent_session_id,t.child_session_id,t.event));break;case"sub_agent_heartbeat":t.parent_session_id&&t.child_session_id&&t.timestamp&&((j=n.onSubAgentHeartbeat)==null||j.call(n,t.parent_session_id,t.child_session_id,t.timestamp));break;case"sub_agent_completed":t.parent_session_id&&t.child_session_id&&((A=n.onSubAgentCompleted)==null||A.call(n,t.parent_session_id,t.child_session_id,typeof t.status=="string"?t.status:"completed",t.error));break;case"execution_started":(O=n.onExecutionStarted)==null||O.call(n,t.run_id||"",t.started_at);break;case"runner_progress":t.session_id&&typeof t.round_count=="number"&&((F=n.onRunnerProgress)==null||F.call(n,t.session_id,t.round_count));break;case"need_clarification":(D=n.onNeedClarification)==null||D.call(n,t);break;case"session_title_updated":t.session_id&&typeof t.title=="string"&&typeof t.title_version=="number"&&(t.source==="auto"||t.source==="manual"||t.source==="fallback")&&typeof t.updated_at=="string"&&((N=n.onSessionTitleUpdated)==null||N.call(n,{type:"session_title_updated",session_id:t.session_id,title:t.title,title_version:t.title_version,source:t.source,updated_at:t.updated_at}));break;case"session_pinned_updated":t.session_id&&typeof t.pinned=="boolean"&&typeof t.updated_at=="string"&&((q=n.onSessionPinnedUpdated)==null||q.call(n,{type:"session_pinned_updated",session_id:t.session_id,pinned:t.pinned,updated_at:t.updated_at}));break;case"plan_mode_entered":(I=n.onPlanModeEntered)==null||I.call(n,t);break;case"plan_mode_exited":(Q=n.onPlanModeExited)==null||Q.call(n,t);break;case"plan_file_updated":(G=n.onPlanFileUpdated)==null||G.call(n,t);break;case"complete":Me("[AgentClient]","events.dispatch.complete",ba(t)),(Z=n.onComplete)==null||Z.call(n,t.usage);break;case"cancelled":Me("[AgentClient]","events.dispatch.cancelled",ba(t)),(pe=n.onCancelled)==null||pe.call(n,t.message);break;case"error":Me("[AgentClient]","events.dispatch.error",ba(t)),($=n.onError)==null||$.call(n,t.message||t.error||"Unknown error");break;default:console.warn("Unknown event type:",t)}}async stopGeneration(t){await St.post(`stop/${t}`)}async deleteSession(t){const n=encodeURIComponent(t);await St.delete(`sessions/${n}`)}async getHistory(t){Me("[AgentClient]","history.request",{sessionId:t});const n=await St.get(`history/${t}`);return Me("[AgentClient]","history.response",Hx(n)),n}async healthCheck(){try{return await St.get("health"),!0}catch{return!1}}};Et(os,"instance");let Jn=os;const Hs=Jn.getInstance(),Lf="provider",Ei=qr(e=>({isOpen:!1,origin:"chat",activeTabKey:Lf,open:(t,n=Lf)=>e({isOpen:!0,origin:t,activeTabKey:n}),close:()=>e({isOpen:!1}),setActiveTabKey:t=>e({activeTabKey:t})})),Ff={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},Fi=new Map,va=e=>{const t=Fi.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([n,r])=>[n,r.getState()])):{}},Kx=(e,t,n)=>{if(e===void 0)return{type:"untracked",connection:t.connect(n)};const r=Fi.get(n.name);if(r)return{type:"tracked",store:e,...r};const s={connection:t.connect(n),stores:{}};return Fi.set(n.name,s),{type:"tracked",store:e,...s}},Vx=(e,t)=>{if(t===void 0)return;const n=Fi.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&Fi.delete(e))},Gx=e=>{var t,n;if(!e)return;const r=e.split(`
|
|
3
|
-
`),s=r.findIndex(i=>i.includes("api.setState"));if(s<0)return;const o=((t=r[s+1])==null?void 0:t.trim())||"";return(n=/.+ (.+) .+/.exec(o))==null?void 0:n[1]},
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-D3BCKROz.js","./vendor-markdown-DZuK0SxV.js","./vendor-i18n-BNURlJ23.js","./vendor-antd-C8lKwvI6.js","./vendor-mermaid-C1Gk9PtT.js","./main-C-I4C72U.js","./main-B6snAd4S.css","./index-Bcpx4-c6.js","./index-C5hCIJZL.js","./index-Bi-vGirQ.css","./index-DtQ-9WIb.js","./index-BBEDlZ5R.js","./index-BmjFP0ha.js","./core-Cfh-QHsP.js","./index-_XI0Qq6F.js","./vendor-pdf-DB-djSmA.js","./index-CJsySE-8.js","./index-DNsNCcgt.css","./index-CSZOcCBg.js","./index-B6OABT-M.css","./index-BrDrSRJg.js","./MetricsService-C8JKUh8i.js","./index-D9ODTr93.css","./index-B1RhqvS7.js","./SubAgentsPanel-BtrjPQrW.js","./index-Btfph2VJ.js","./index-AIUPRSCn.css","./index-QAoCDEtf.js","./onboardingStorage-BVcEpmTy.js","./vendor-charts-bhMup2Pu.js","./index-Cgz3GQNf.js","./index-CLYKYSO0.css","./FeatureGuide-BlFyQEho.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var yS=Object.defineProperty;var bS=(e,t,n)=>t in e?yS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Mt=(e,t,n)=>bS(e,typeof t!="symbol"?t+"":t,n);import{j as a,M as vr,S as dn,a as ng,t as rg,p as sg,b as vS,c as Ju,d as SS,m as og,s as xS,y as ig,e as ag,h as al,f as Qu,r as Zu,g as ed,i as lg}from"./vendor-markdown-DZuK0SxV.js";import{a as y,u as Ge,R as ht,i as xt,c as wS,g as vs}from"./vendor-i18n-BNURlJ23.js";import{_ as Jt,cq as td}from"./vendor-mermaid-C1Gk9PtT.js";import{t as ut,o as kf,p as _S,Q as kS,as as ms,aY as cg,aZ as CS,V as Cl,E as je,ap as TS,G as Ss,ak as Ks,a_ as PS,L as Cr,X as xs,a$ as ug,H as nu,S as Ue,F as Me,u as gs,q as Wr,O as nd,Y as Tl,n as xn,b0 as MS,b1 as ES,j as ft,M as Fn,W as Ha,a0 as jS,a4 as ru,b2 as RS,b3 as Pl,b4 as dg,J as rd,b5 as su,b6 as Vs,b7 as AS,b8 as IS,D as ll,k as OS,y as fg,b9 as $S,ba as LS,K as Gs,aj as FS,l as Je,a2 as DS,v as hg,A as ir,C as nn,bb as Ml,bc as pg,ao as NS,ac as BS,w as sd,aE as mg,bd as zS,be as WS,bf as US,bg as qS,z as Js,bh as HS,bi as YS,ah as od,ai as Tr,at as cl,aD as eo,bj as XS,bk as gg,bl as yg,ad as id,a7 as KS,m as El,a9 as Cf,aA as VS,I as Tf,P as bg,aS as vg,aK as GS,av as JS,af as QS,bm as ZS,bn as ex,ar as tx,aF as nx,bo as rx,bp as sx,bq as ox,br as ix,B as ax,aW as Ws,bs as Sg,bt as lx,bu as xg,a5 as ad,bv as cx,bw as ux,$ as dx,bx as Pf,by as Mf}from"./vendor-antd-C8lKwvI6.js";import{r as fx,A as hx,a as px}from"./main-C-I4C72U.js";function wg(e){const[t,n]=y.useState(()=>typeof window<"u"?window.matchMedia(e).matches:!1);return y.useEffect(()=>{if(typeof window>"u")return;const r=window.matchMedia(e);n(r.matches);const s=o=>{n(o.matches)};return r.addEventListener?r.addEventListener("change",s):r.addListener(s),()=>{r.removeEventListener?r.removeEventListener("change",s):r.removeListener(s)}},[e]),t}function jl(){return wg("(max-width: 768px)")}const mx=({chat:e,isSelected:t,compact:n=!1,onSelect:r,onDelete:s,onPin:o,onUnpin:i,onEdit:l,onGenerateTitle:u,onRunProjectDream:d,isGeneratingTitle:h,isRunningProjectDream:m,titleGenerationError:b})=>{const{t:v}=Ge(),[w,S]=y.useState(!1),[k,P]=y.useState(e.title),[T,j]=y.useState(!1),[C,E]=y.useState(!1),{token:A}=ut.useToken(),O=y.useCallback(G=>{G.stopPropagation(),l&&k.trim()&&l(e.id,k.trim()),S(!1)},[e.id,k,l]),D=y.useCallback(G=>{G.stopPropagation(),P(e.title),S(!1)},[e.title]),F=[{key:"pin",icon:e.pinned?a.jsx(kf,{style:{color:A.colorWarning}}):a.jsx(_S,{}),label:e.pinned?v("chat.actions.unpin"):v("chat.actions.pin"),onClick:({domEvent:G})=>{G.stopPropagation(),e.pinned?i(e.id):o(e.id)}},{key:"edit",icon:a.jsx(kS,{}),label:v("chat.chatItem.edit"),onClick:({domEvent:G})=>{G.stopPropagation(),S(!0)}},...u?[{key:"generate-title",icon:h?a.jsx(ms,{}):a.jsx(cg,{style:b?{color:A.colorError}:void 0}),label:b||v("chat.actions.generateTitle"),disabled:h,onClick:({domEvent:G})=>{G.stopPropagation(),u(e.id)}}]:[],...d?[{key:"run-project-dream",icon:m?a.jsx(ms,{}):a.jsx(CS,{}),label:v("chat.actions.runProjectDream"),disabled:m,onClick:({domEvent:G})=>{G.stopPropagation(),d(e.id)}}]:[],{type:"divider"},{key:"delete",icon:a.jsx(Cl,{}),label:v("common.delete"),danger:!0,onClick:({domEvent:G})=>{G.stopPropagation(),s(e.id)}}],N={padding:n?"4px 8px":"5px 8px",borderRadius:A.borderRadiusSM,marginBottom:0,cursor:"pointer",transition:"background-color 0.2s ease, box-shadow 0.2s ease",backgroundColor:t?"var(--lotus-primary-soft)":T||C?"var(--lotus-item-hover-bg)":"transparent",border:"1px solid transparent",borderColor:"transparent",position:"relative",overflow:"visible",boxShadow:t?`inset 2px 0 0 ${A.colorPrimary}`:"none",minHeight:n?28:30},q={flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",fontSize:n?12:12.5,lineHeight:1.3,fontWeight:t?600:500,color:t?"var(--lotus-primary)":A.colorText},I={flex:1,fontSize:A.fontSizeSM,marginRight:A.marginSM},Q=w?[a.jsx(je,{type:"text",size:"small",icon:a.jsx(TS,{style:{color:A.colorSuccess}}),onClick:O,"aria-label":v("common.save")},"save"),a.jsx(je,{type:"text",size:"small",icon:a.jsx(Ss,{style:{color:A.colorError}}),onClick:D,"aria-label":v("common.cancel")},"cancel")]:T||C?[a.jsx(Ks,{menu:{items:F,className:"lotus-sidebar-actions-menu"},trigger:["click"],placement:"bottomRight",overlayClassName:"lotus-sidebar-actions-dropdown",open:C,onOpenChange:G=>E(G),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(PS,{}),"aria-label":v("common.moreActions","More actions"),onClick:G=>G.stopPropagation(),style:{color:A.colorTextSecondary,borderRadius:A.borderRadiusSM,background:"transparent",width:n?16:18,height:n?16:18,display:"flex",alignItems:"center",justifyContent:"center"}})},"more")]:[];return a.jsx(Cr.Item,{style:N,tabIndex:0,onClick:()=>!w&&r(e.id),onKeyDown:G=>{G.key==="Enter"&&!w?(G.preventDefault(),r(e.id)):(G.key==="Delete"||G.key==="Backspace")&&!w&&G.metaKey&&(G.preventDefault(),s(e.id))},onMouseEnter:()=>j(!0),onMouseLeave:()=>{C||j(!1)},onFocus:()=>j(!0),onBlur:()=>{C||j(!1)},actions:Q,"data-testid":"chat-item",role:"option","aria-selected":t,"aria-label":e.title||v("chat.sidebar.untitledChat"),children:a.jsx("div",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:w?a.jsx(xs,{value:k,onChange:G=>P(G.target.value),onClick:G=>G.stopPropagation(),onPressEnter:G=>{G.preventDefault(),O(G)},autoFocus:!0,style:I,variant:"borderless",size:"small"}):a.jsxs("div",{style:{...q,display:"flex",alignItems:"center",gap:n?4:A.marginXS,minWidth:0},children:[e.pinned&&a.jsx(kf,{style:{color:A.colorWarning,fontSize:11,flexShrink:0}}),a.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),e.kind==="child"?a.jsx("span",{style:{color:A.colorInfo,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap"},children:v("chat.chatItem.childTag")}):null,e.planMode?a.jsxs("span",{style:{color:"#722ed1",fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:3},children:[a.jsx(ug,{}),v("chat.planMode.badge","Plan")]}):null]})})})},gx=(e,t)=>e.chat.id===t.chat.id&&e.chat.title===t.chat.title&&e.chat.pinned===t.chat.pinned&&e.chat.planMode===t.chat.planMode&&e.isSelected===t.isSelected&&e.compact===t.compact&&e.isGeneratingTitle===t.isGeneratingTitle&&e.isRunningProjectDream===t.isRunningProjectDream&&e.titleGenerationError===t.titleGenerationError,ou=y.memo(mx,gx);ou.displayName="ChatItem";const Ef=e=>({Today:0,Yesterday:1,"This Week":2,"This Month":3})[e]??4,yx=e=>{const t={},n=e.filter(s=>s.pinned);n.length>0&&(t.Pinned=n.sort((s,o)=>o.createdAt-s.createdAt));const r=e.filter(s=>!s.pinned&&!!s.createdByScheduleId);return r.length>0&&(t.Scheduled=r.sort((s,o)=>o.createdAt-s.createdAt)),e.filter(s=>!s.pinned&&!s.createdByScheduleId).forEach(s=>{const i=new Date(s.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});t[i]||(t[i]=[]),t[i].push(s)}),Object.keys(t).forEach(s=>{t[s].sort((o,i)=>i.createdAt-o.createdAt)}),t},bx=e=>{const t=n=>Array.isArray(n)?n.reduce((r,s)=>Math.max(r,s.createdAt),0):Object.values(n).reduce((r,s)=>{const o=s.reduce((i,l)=>Math.max(i,l.createdAt),0);return Math.max(r,o)},0);return Object.keys(e).sort((n,r)=>{if(n==="Pinned")return-1;if(r==="Pinned")return 1;if(n==="Scheduled")return-1;if(r==="Scheduled")return 1;const s=e[n],o=e[r];if(!s||!o)return 0;const i=t(s),l=t(o);return i!==l?l-i:Ef(n)-Ef(r)})},vx=(e,t)=>e[t]?e[t].map(n=>n.id):[],_g=(e,t)=>e[t]?e[t].length:0,Sx=e=>e.createdByScheduleId?"Scheduled":new Date(e.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),jf=(e,t)=>{const r={Today:"chat.sidebar.dateGroups.today",Yesterday:"chat.sidebar.dateGroups.yesterday","This Week":"chat.sidebar.dateGroups.thisWeek","This Month":"chat.sidebar.dateGroups.thisMonth",Pinned:"chat.sidebar.dateGroups.pinned",Scheduled:"chat.sidebar.dateGroups.scheduled"}[e];return r?t(r):e},xx=({groupedChatsByDate:e,childrenByRoot:t,expandedRootIds:n,onToggleRootExpanded:r,sortedDateKeys:s,expandedKeys:o,onCollapseChange:i,currentSessionId:l,onSelectChat:u,onDeleteChat:d,onDeleteByDate:h,onPinChat:m,onUnpinChat:b,onEditTitle:v,onGenerateTitle:w,onRunProjectDream:S,titleGenerationState:k,projectDreamState:P,token:T,hasActiveFilters:j})=>{const{t:C}=Ge(),E=y.useMemo(()=>s.length?s.map(O=>{const D=e[O],F=_g(e,O);return{dateKey:O,dateGroup:D,totalChatsInDate:F}}):[],[e,s]);if(!s.length)return a.jsx(nu,{image:nu.PRESENTED_IMAGE_SIMPLE,description:a.jsxs(Ue,{direction:"vertical",size:4,align:"center",children:[a.jsx("span",{style:{color:T.colorTextSecondary},children:j?C("chat.sidebar.empty.noMatches","No matching sessions"):C("chat.sidebar.empty.noSessions")}),a.jsx("span",{style:{color:T.colorTextSecondary,fontSize:12},children:j?C("chat.sidebar.empty.filterHint","Try adjusting your search or filters"):C("chat.sidebar.empty.hint")}),j&&a.jsx(je,{size:"small",type:"link",onClick:()=>{var D;const O=document.querySelector('[data-testid="sidebar-search-input"] input, .lotus-sidebar-search input');if(O){const F=(D=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))==null?void 0:D.set;F==null||F.call(O,""),O.dispatchEvent(new Event("input",{bubbles:!0}))}},children:C("chat.sidebar.empty.clearFilters","Clear filters")})]})});const A=new Set(o);return a.jsx("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:2},children:E.map(({dateKey:O,dateGroup:D,totalChatsInDate:F})=>{const N=A.has(O);return a.jsxs("div",{style:{borderRadius:T.borderRadiusSM,background:"transparent",padding:0},children:[a.jsxs(Me,{align:"center",justify:"space-between",style:{cursor:"pointer",padding:"4px 8px",borderRadius:T.borderRadiusSM,transition:"background-color 0.2s ease, color 0.2s ease",border:"1px solid transparent"},role:"button",tabIndex:0,"aria-expanded":N,"aria-label":`${jf(O,C)} (${F})`,onKeyDown:q=>{if(q.key==="Enter"||q.key===" "){q.preventDefault();const I=new Set(A);I.has(O)?I.delete(O):I.add(O),i(Array.from(I))}},onMouseEnter:q=>{q.currentTarget.style.background="var(--lotus-sidebar-item-hover-bg, rgba(204, 251, 241, 0.76))",q.currentTarget.style.borderColor="transparent";const I=q.currentTarget.querySelector(".chat-sidebar-date-group-delete");I&&(I.style.opacity="1")},onMouseLeave:q=>{q.currentTarget.style.background="transparent",q.currentTarget.style.borderColor="transparent";const I=q.currentTarget.querySelector(".chat-sidebar-date-group-delete");I&&(I.style.opacity="0")},onClick:()=>{const q=new Set(A);q.has(O)?q.delete(O):q.add(O),i(Array.from(q))},className:"chat-sidebar-date-group-header",children:[a.jsxs(Me,{align:"center",gap:"small",style:{minWidth:0},children:[N?a.jsx(gs,{style:{fontSize:12,opacity:.6}}):a.jsx(Wr,{style:{fontSize:12,opacity:.6}}),a.jsxs("span",{style:{fontSize:10.5,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.3px",color:O==="Today"?"var(--lotus-primary)":T.colorTextSecondary,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[jf(O,C)," (",F,")"]})]}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(Cl,{}),className:"chat-sidebar-date-group-delete",style:{color:T.colorTextTertiary,opacity:0,transition:"opacity 0.2s ease"},onClick:q=>{q.stopPropagation(),h(O)}})]}),N?a.jsx("div",{style:{marginTop:2},children:a.jsx(Cr,{itemLayout:"horizontal",dataSource:D,split:!1,renderItem:q=>{var I,Q,G,Z,pe,$;return a.jsxs("div",{children:[a.jsxs(Me,{align:"center",gap:6,style:{padding:"4px 8px"},children:[(I=t[q.id])!=null&&I.length?a.jsx(je,{size:"small",type:"text",style:{padding:0,width:18,minWidth:18,height:18},"aria-label":n.has(q.id)?C("chat.sidebar.actions.collapseChildren"):C("chat.sidebar.actions.expandChildren"),onClick:oe=>{oe.preventDefault(),oe.stopPropagation(),r(q.id)},children:n.has(q.id)?a.jsx(gs,{style:{fontSize:12}}):a.jsx(Wr,{style:{fontSize:12}})}):a.jsx("div",{style:{width:18}}),a.jsx("div",{style:{flex:1,minWidth:0,marginLeft:-8},children:a.jsx(ou,{chat:q,compact:!0,isSelected:q.id===l,onSelect:u,onDelete:d,onPin:m,onUnpin:b,onEdit:v,onGenerateTitle:w,onRunProjectDream:S,isGeneratingTitle:((Q=k[q.id])==null?void 0:Q.status)==="loading",isRunningProjectDream:((G=P[q.id])==null?void 0:G.status)==="loading",titleGenerationError:((Z=k[q.id])==null?void 0:Z.status)==="error"?(pe=k[q.id])==null?void 0:pe.error:void 0})})]}),n.has(q.id)&&((($=t[q.id])==null?void 0:$.length)??0)>0?a.jsx("div",{style:{marginLeft:18,marginTop:1},children:a.jsx(Cr,{itemLayout:"horizontal",dataSource:t[q.id],split:!1,renderItem:oe=>{var me,ne,he,fe;return a.jsx("div",{style:{paddingLeft:8,borderLeft:`1px solid ${T.colorBorderSecondary}`,marginLeft:2},children:a.jsx(ou,{chat:oe,compact:!0,isSelected:oe.id===l,onSelect:u,onDelete:d,onPin:m,onUnpin:b,onEdit:v,onGenerateTitle:w,onRunProjectDream:S,isGeneratingTitle:((me=k[oe.id])==null?void 0:me.status)==="loading",isRunningProjectDream:((ne=P[oe.id])==null?void 0:ne.status)==="loading",titleGenerationError:((he=k[oe.id])==null?void 0:he.status)==="error"?(fe=k[oe.id])==null?void 0:fe.error:void 0})},oe.id)}})}):null]},q.id)}})}):null]},O)})})},Rf=e=>{let t;const n=new Set,r=(d,h)=>{const m=typeof d=="function"?d(t):d;if(!Object.is(m,t)){const b=t;t=h??(typeof m!="object"||m===null)?m:Object.assign({},t,m),n.forEach(v=>v(t,b))}},s=()=>t,l={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d))},u=t=e(r,s,l);return l},wx=e=>e?Rf(e):Rf,_x=e=>e;function kx(e,t=_x){const n=ht.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return ht.useDebugValue(n),n}const Af=e=>{const t=wx(e),n=r=>kx(t,r);return Object.assign(n,t),n},Hr=e=>e?Af(e):Af,Cx="copilot_ui_theme_v1";function Tx(){var e;try{const t=localStorage.getItem(Cx);if(t==="light"||t==="dark")return t}catch{}return(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}const ul=Hr(e=>({themeMode:Tx(),setThemeMode:t=>e({themeMode:t}),toggleTheme:()=>e(t=>({themeMode:t.themeMode==="dark"?"light":"dark"}))})),Px="2026.5.16",Mx={version:Px},Ex=Mx.version,{Text:jx}=ft,Rx=({collapsed:e,onNewChat:t,onOpenSettings:n,token:r})=>{const{t:s}=Ge(),o=ul(h=>h.themeMode),i=ul(h=>h.toggleTheme),l=s("chat.sidebar.newSession"),u=s("settings.page.title"),d=o==="dark"?s("settings.app.lightMode","Light mode"):s("settings.app.darkMode","Dark mode");return a.jsxs(Me,{vertical:!0,gap:e?"small":10,style:{padding:e?10:12,background:"transparent",borderTop:`1px solid ${r.colorBorderSecondary}`},children:[a.jsx(je,{"data-testid":"new-chat","data-tour-id":"new-session",type:"primary",icon:a.jsx(nd,{}),onClick:t,block:!e,shape:"default",size:"small",title:l,"aria-label":l,className:"lotus-primary-cta",style:{...e?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:e?40:38,fontWeight:600},children:!e&&l}),a.jsxs(Me,{gap:6,align:"center",children:[a.jsx(je,{"data-testid":"open-settings","data-tour-id":"open-settings",icon:a.jsx(Tl,{}),onClick:n,block:!e,shape:"default",size:"small",title:u,"aria-label":u,className:"lotus-secondary-button",style:{...e?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:e?40:36,flex:e?void 0:1},children:!e&&u}),!e&&a.jsx(xn,{title:d,placement:"top",children:a.jsx(je,{"data-testid":"toggle-theme",type:"text",icon:o==="dark"?a.jsx(MS,{}):a.jsx(ES,{}),onClick:i,"aria-label":d,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})]}),!e&&a.jsxs(jx,{type:"secondary","data-testid":"app-version-badge",style:{fontSize:11,textAlign:"center",userSelect:"text"},children:[s("settings.appTab.runningVersion","Running version"),": v",Ex]})]})},If=e=>Symbol.iterator in e,Of=e=>"entries"in e,$f=(e,t)=>{const n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(const[s,o]of n)if(!Object.is(o,r.get(s)))return!1;return!0},Ax=(e,t)=>{const n=e[Symbol.iterator](),r=t[Symbol.iterator]();let s=n.next(),o=r.next();for(;!s.done&&!o.done;){if(!Object.is(s.value,o.value))return!1;s=n.next(),o=r.next()}return!!s.done&&!!o.done};function Ix(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:If(e)&&If(t)?Of(e)&&Of(t)?$f(e,t):Ax(e,t):$f({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function Mi(e){const t=ht.useRef(void 0);return n=>{const r=e(n);return Ix(t.current,r)?t.current:t.current=r}}const kg=()=>!1,Cg=e=>{if(!kg())return!1;try{return localStorage.getItem(e)==="1"}catch{return!1}},Ox=()=>Cg("bodhi_debug_ui_layout"),Xn=(e,t)=>{Ox()&&console.log(`[ui-layout] ${e}`,t??"")},Ee=(e,t,...n)=>{kg()&&Cg("bodhi_debug_verbose")&&console.log(`${e} ${t}`,...n)};var pc={};const mc="copilot_backend_base_url",Tg="http://127.0.0.1:9562/v1",$x=9562,ys=e=>e.trim().replace(/\/+$/,""),Lx=()=>{const t=pc==null?void 0:pc.VITE_BACKEND_BASE_URL;return t?ys(t):null},Ki=()=>{const e=globalThis.location;if(!e)return null;const t=typeof e.protocol=="string"?e.protocol:"",n=typeof e.hostname=="string"?e.hostname:"";return!t||!n?null:{protocol:t,hostname:n}},ld=e=>{const t=e.trim().toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="::1"},Fx=(e=Ki())=>(e==null?void 0:e.protocol.toLowerCase())==="https:",Dx=e=>{try{return new URL(ys(e)).protocol.toLowerCase()==="http:"}catch{return!1}},Nx=e=>{try{const t=new URL(ys(e));return ld(t.hostname)}catch{return!1}},Bx=(e=Ki())=>{if(!e)return null;const t=e.protocol.toLowerCase(),n=e.hostname.trim();return n?t==="https:"?ys(`https://${n}/v1`):t==="http:"?ys(`http://${n}/v1`):null:null},zx=(e,t=Ki())=>{if(!t)return!1;const n=t.hostname.trim();return n?Fx(t)&&Dx(e)?!0:ld(n)?!1:Nx(e):!1},Wx=(e=Ki())=>{if(!e)return null;const t=e.protocol.toLowerCase();if(t!=="http:"&&t!=="https:")return null;const n=e.hostname.trim();return n?t==="https:"?Bx(e):ld(n)?Tg:ys(`http://${n}:${$x}/v1`):null},Ux=()=>{const e=Lx();return e||(Wx()??Tg)},ws=()=>{const e=Ki(),t=localStorage.getItem(mc);if(t){const n=ys(t);if(zx(n,e))console.warn("Ignoring stored backend override because it is incompatible with the current page origin:",n),localStorage.removeItem(mc);else try{return new URL(n),n}catch{console.warn("Invalid stored backend URL, using default:",n),localStorage.removeItem(mc)}}return Ux()};class Fi extends Error{constructor(t,n,r,s){super(t),this.status=n,this.statusText=r,this.body=s,this.name="ApiError"}}function aI(e){return e instanceof Fi}class cd{constructor(t={}){Mt(this,"baseUrl");Mt(this,"defaultHeaders");this.baseUrl=t.baseUrl??this.resolveBaseUrl(),this.defaultHeaders=t.defaultHeaders??{"Content-Type":"application/json"}}resolveBaseUrl(){const t=ws().trim().replace(/\/+$/,"");return t.endsWith("/v1")?t:`${t}/v1`}buildUrl(t){const n=t.replace(/^\/+/,"");return`${this.baseUrl}/${n}`}async handleResponse(t){var r,s,o;if(!t.ok){const i=await t.text().catch(()=>{});let l=t.statusText;if(i)try{const u=JSON.parse(i),d=typeof(u==null?void 0:u.error)=="object"?(r=u.error)==null?void 0:r.message:void 0;l=(typeof(u==null?void 0:u.error)=="string"?u.error:void 0)||(typeof d=="string"?d:void 0)||u.message||u.detail||t.statusText}catch{l=i||t.statusText}throw new Fi(l,t.status,t.statusText,i)}return t.status===204?void 0:(((o=(s=t.headers)==null?void 0:s.get)==null?void 0:o.call(s,"content-type"))||"").includes("application/json")?t.json():typeof t.text=="function"?await t.text():t.json()}delay(t){return new Promise(n=>setTimeout(n,t))}async fetchWithRetry(t,n,r=3){let s=null;for(let o=0;o<r;o++)try{const i=await fetch(t,n);if(i.status>=500&&o<r-1){const l=1e3*Math.pow(2,o);console.warn(`Request failed with ${i.status}, retrying in ${l}ms (attempt ${o+1}/${r})`),await this.delay(l);continue}return i}catch(i){if(s=i,o<r-1){const l=1e3*Math.pow(2,o);console.warn(`Network error: ${s.message}, retrying in ${l}ms (attempt ${o+1}/${r})`),await this.delay(l)}}throw s||new Error("Max retries exceeded")}async get(t,n){const r=this.buildUrl(t),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"GET",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async post(t,n,r){const s=this.buildUrl(t),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:"POST",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async put(t,n,r){const s=this.buildUrl(t),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:"PUT",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async patch(t,n,r){const s=this.buildUrl(t),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:"PATCH",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async delete(t,n){const r=this.buildUrl(t),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"DELETE",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async request(t,n,r){const s=this.buildUrl(n),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const l=await this.fetchWithRetry(s,{...r,method:t,headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",signal:o.signal},3);return this.handleResponse(l)}finally{clearTimeout(i)}}async fetchRaw(t,n){const r=this.buildUrl(t),s=await fetch(r,{...n,headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include"});if(!s.ok)throw new Fi(`API request failed: ${s.statusText}`,s.status,s.statusText);return s}}const rt=new cd,St=new cd({baseUrl:(()=>{let e=ws().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`})()}),qx=e=>e?{client_message_count:e.client_message_count,client_last_message_id:e.client_last_message_id??null,client_has_pending_question:e.client_has_pending_question,client_pending_question_tool_call_id:e.client_pending_question_tool_call_id??null}:null,Hx=e=>e?{need_sync:e.need_sync,reason:e.reason??null,server_message_count:e.server_message_count,server_last_message_id:e.server_last_message_id??null,has_pending_question:e.has_pending_question,pending_question_tool_call_id:e.pending_question_tool_call_id??null,has_pending_user_message:e.has_pending_user_message}:null,Yx=e=>{var n;const t=e.messages[e.messages.length-1];return{session_id:e.session_id,messageCount:e.messages.length,lastMessageId:(t==null?void 0:t.id)??null,lastRole:(t==null?void 0:t.role)??null,compressionEvents:((n=e.compression_events)==null?void 0:n.length)??0}},Xx=e=>({count:e.length,runningCount:e.filter(t=>t.is_running).length,sessions:e.slice(0,10).map(t=>({id:t.id,is_running:t.is_running,last_run_status:t.last_run_status??null,message_count:t.message_count,has_pending_question:t.has_pending_question??!1,running_child_count:t.running_child_count??0,updated_at:t.updated_at}))}),Kx=e=>({count:e.sessions.length,sessions:e.sessions.map(t=>({session_id:t.session_id,run_id:t.run_id,round_count:t.round_count,last_event_at:t.last_event_at??null,last_tool_name:t.last_tool_name??null,last_tool_phase:t.last_tool_phase??null,criticalEventCount:t.last_critical_events.length,runningChildCount:t.running_child_session_ids.length}))}),va=e=>({type:e.type,session_id:e.session_id??null,run_id:e.run_id??null,round_count:e.round_count??null,message:e.message??null,error:e.error??null,tool_call_id:e.tool_call_id??null}),is=class is{static getInstance(){return is.instance||(is.instance=new is),is.instance}async sendMessage(t){var r,s,o;Ee("[AgentClient]","chat.request",{sessionId:t.session_id??null,model:t.model,modelRef:t.model_ref??null,provider:t.provider??null,messageLength:t.message.length,hasImages:(((r=t.images)==null?void 0:r.length)??0)>0,imageCount:((s=t.images)==null?void 0:s.length)??0,selectedSkillCount:((o=t.selected_skill_ids)==null?void 0:o.length)??0,workspacePath:t.workspace_path??null});const n=await St.post("chat",t);return Ee("[AgentClient]","chat.response",{requestedSessionId:t.session_id??null,sessionId:n.session_id,status:n.status}),n}async execute(t,n,r,s,o){const i={};n&&(i.model=n),r&&(i.reasoning_effort=r),s&&(i.client_sync=s),o&&(i.model_ref=o,i.provider=o.provider),Ee("[AgentClient]","execute.request",{sessionId:t,model:i.model??null,reasoningEffort:i.reasoning_effort??null,modelRef:i.model_ref??null,provider:i.provider??null,clientSync:qx(i.client_sync)});const l=await St.post(`execute/${t}`,i);return Ee("[AgentClient]","execute.response",{sessionId:t,status:l.status,runId:l.run_id??null,eventsUrl:l.events_url,sync:Hx(l.sync)}),l}async listSessions(){Ee("[AgentClient]","sessions.list.request",{});const t=await St.get("sessions");return Ee("[AgentClient]","sessions.list.response",Xx(t.sessions)),t}async getTaskList(t){const n=encodeURIComponent(t),r=await St.get(`task/${n}`);if(!(typeof r.title=="string"||r.items.length>0))return null;const o=new Date().toISOString();return{session_id:r.session_id,title:r.title??"Task List",items:r.items,created_at:o,updated_at:o}}async createSession(t){return St.post("sessions",t)}async patchSession(t,n){const r=encodeURIComponent(t);await St.patch(`sessions/${r}`,n)}async regenerateSessionTitle(t){const n=encodeURIComponent(t);await St.post(`sessions/${n}/regenerate-title`)}async getSessionSystemPrompt(t){const n=encodeURIComponent(t);return St.get(`sessions/${n}/system-prompt`)}async clearSession(t){const n=encodeURIComponent(t);await St.post(`sessions/${n}/clear`)}async runProjectDream(t){const n=encodeURIComponent(t);return St.post(`sessions/${n}/project-dream/run`)}async truncateSessionMessages(t,n){const r=encodeURIComponent(t);return St.post(`sessions/${r}/messages/truncate`,n)}async restoreSessionState(t,n){const r=encodeURIComponent(t);return St.post(`sessions/${r}/restore`,n)}async patchSessionMessage(t,n,r){const s=encodeURIComponent(t),o=encodeURIComponent(n);await St.patch(`sessions/${s}/messages/${o}`,r)}async deleteSessionMessage(t,n){const r=encodeURIComponent(t),s=encodeURIComponent(n);await St.delete(`sessions/${r}/messages/${s}`)}async cleanupSessions(t,n){await St.post("sessions/cleanup",{mode:t,keep_pinned:n})}async devResetSessions(){await St.post("dev/reset")}async getRunningSessions(){Ee("[AgentClient]","runs.active.request",{});const t=await St.get("runs/active");return Ee("[AgentClient]","runs.active.response",Kx(t)),t}async listSchedules(){return St.get("schedules")}async createSchedule(t){return St.post("schedules",t)}async patchSchedule(t,n){const r=encodeURIComponent(t);return St.patch(`schedules/${r}`,n)}async deleteSchedule(t){const n=encodeURIComponent(t);await St.delete(`schedules/${n}`)}async runScheduleNow(t){const n=encodeURIComponent(t);await St.post(`schedules/${n}/run`)}async listScheduleSessions(t){const n=encodeURIComponent(t);return St.get(`schedules/${n}/sessions`)}async listScheduleRuns(t){const n=encodeURIComponent(t);return St.get(`schedules/${n}/runs`)}async subscribeToEvents(t,n,r){const s=r==null?void 0:r.signal;Ee("[AgentClient]","events.subscribe.request",{sessionId:t});const o=ws().trim().replace(/\/+$/,""),l=`${o.endsWith("/v1")?o.slice(0,-3):o}/api/v1/events/${encodeURIComponent(t)}`;return Ee("[AgentClient]","events.subscribe.url",{sessionId:t,eventsUrl:l}),await new Promise((u,d)=>{if(s!=null&&s.aborted){Ee("[AgentClient]","events.subscribe.aborted_before_connect",{sessionId:t}),u();return}let h=!1,m=!1,b=null;const v=()=>{Ee("[AgentClient]","events.subscribe.abort",{sessionId:t,terminalSeen:m}),S()},w=()=>{b&&(b.close(),b=null),s==null||s.removeEventListener("abort",v)},S=()=>{h||(h=!0,Ee("[AgentClient]","events.subscribe.resolve",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),w(),u())},k=P=>{h||(h=!0,Ee("[AgentClient]","events.subscribe.reject",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1,error:P}),w(),d(P))};s==null||s.addEventListener("abort",v,{once:!0});try{b=new EventSource(l,{withCredentials:!0})}catch(P){k(P);return}b.onopen=()=>{Ee("[AgentClient]","events.subscribe.open",{sessionId:t})},b.onmessage=P=>{const T=P.data;if(T==="[DONE]"){m=!0,Ee("[AgentClient]","events.subscribe.done",{sessionId:t}),S();return}if(T!=="[KEEPALIVE]")try{const j=JSON.parse(T);(j.type==="execution_started"||j.type==="complete"||j.type==="cancelled"||j.type==="error"||j.type==="runner_progress"||j.type==="need_clarification")&&Ee("[AgentClient]","events.subscribe.event",{sessionId:t,...va(j)}),this.handleEvent(j,n),(j.type==="complete"||j.type==="cancelled"||j.type==="error")&&(m=!0)}catch(j){console.warn("Failed to parse event:",T,j)}},b.onerror=()=>{if(Ee("[AgentClient]","events.subscribe.error",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),s!=null&&s.aborted||m){S();return}k(new Error(`EventSource connection failed for session ${t}`))}})}handleEvent(t,n){var r,s,o,i,l,u,d,h,m,b,v,w,S,k,P,T,j,C,E,A,O,D,F,N,q,I,Q,G,Z,pe,$;switch(t.type){case"token":(r=n.onToken)==null||r.call(n,t.content||"");break;case"reasoning_token":(s=n.onReasoningToken)==null||s.call(n,t.content||"");break;case"tool_token":(o=n.onToolToken)==null||o.call(n,t.tool_call_id||"",t.content||"");break;case"tool_start":(i=n.onToolStart)==null||i.call(n,t.tool_call_id||"",t.tool_name||"",t.arguments||{});break;case"tool_complete":t.result&&((l=n.onToolComplete)==null||l.call(n,t.tool_call_id||"",t.result));break;case"tool_error":(u=n.onToolError)==null||u.call(n,t.tool_call_id||"",t.error||"");break;case"task_list_updated":t.task_list&&((d=n.onTaskListUpdated)==null||d.call(n,t.task_list));break;case"task_list_item_progress":if(t.session_id&&t.item_id&&t.status&&t.tool_calls_count!==void 0&&t.version!==void 0){const oe=t.status;if(!(oe==="pending"||oe==="in_progress"||oe==="completed"||oe==="blocked"))break;(h=n.onTaskListItemProgress)==null||h.call(n,{session_id:t.session_id,item_id:t.item_id,status:oe,tool_calls_count:t.tool_calls_count,version:t.version})}break;case"task_list_completed":t.session_id&&t.total_rounds!==void 0&&t.total_tool_calls!==void 0&&((m=n.onTaskListCompleted)==null||m.call(n,t.session_id,t.total_rounds,t.total_tool_calls,t.completed_at));break;case"task_evaluation_started":t.session_id&&t.items_count!==void 0&&((b=n.onTaskEvaluationStarted)==null||b.call(n,t.session_id,t.items_count));break;case"task_evaluation_completed":t.session_id&&t.updates_count!==void 0&&t.reasoning&&((v=n.onTaskEvaluationCompleted)==null||v.call(n,t.session_id,t.updates_count,t.reasoning));break;case"token_budget_updated":t.usage&&"system_tokens"in t.usage&&((w=n.onTokenBudgetUpdated)==null||w.call(n,t.usage));break;case"context_compression_status":typeof t.phase=="string"&&typeof t.status=="string"&&((S=n.onContextCompressionStatus)==null||S.call(n,t.phase,t.status));break;case"tool_lifecycle":(k=n.onToolLifecycle)==null||k.call(n,t.tool_call_id||"",t.tool_name||"",t.phase||"",t.elapsed_ms,t.is_mutating,t.auto_approved,t.summary,t.error);break;case"context_summarized":t.summary_info&&((P=n.onContextSummarized)==null||P.call(n,t.summary_info));break;case"context_pressure_notification":typeof t.percent=="number"&&typeof t.level=="string"&&((T=n.onContextPressureNotification)==null||T.call(n,t.percent,t.level,t.message||""));break;case"sub_agent_started":t.parent_session_id&&t.child_session_id&&((j=n.onSubAgentStarted)==null||j.call(n,t.parent_session_id,t.child_session_id,t.title));break;case"sub_agent_event":t.parent_session_id&&t.child_session_id&&t.event&&((C=n.onSubAgentEvent)==null||C.call(n,t.parent_session_id,t.child_session_id,t.event));break;case"sub_agent_heartbeat":t.parent_session_id&&t.child_session_id&&t.timestamp&&((E=n.onSubAgentHeartbeat)==null||E.call(n,t.parent_session_id,t.child_session_id,t.timestamp));break;case"sub_agent_completed":t.parent_session_id&&t.child_session_id&&((A=n.onSubAgentCompleted)==null||A.call(n,t.parent_session_id,t.child_session_id,typeof t.status=="string"?t.status:"completed",t.error));break;case"execution_started":(O=n.onExecutionStarted)==null||O.call(n,t.run_id||"",t.started_at);break;case"runner_progress":t.session_id&&typeof t.round_count=="number"&&((D=n.onRunnerProgress)==null||D.call(n,t.session_id,t.round_count));break;case"need_clarification":(F=n.onNeedClarification)==null||F.call(n,t);break;case"session_title_updated":t.session_id&&typeof t.title=="string"&&typeof t.title_version=="number"&&(t.source==="auto"||t.source==="manual"||t.source==="fallback")&&typeof t.updated_at=="string"&&((N=n.onSessionTitleUpdated)==null||N.call(n,{type:"session_title_updated",session_id:t.session_id,title:t.title,title_version:t.title_version,source:t.source,updated_at:t.updated_at}));break;case"session_pinned_updated":t.session_id&&typeof t.pinned=="boolean"&&typeof t.updated_at=="string"&&((q=n.onSessionPinnedUpdated)==null||q.call(n,{type:"session_pinned_updated",session_id:t.session_id,pinned:t.pinned,updated_at:t.updated_at}));break;case"plan_mode_entered":(I=n.onPlanModeEntered)==null||I.call(n,t);break;case"plan_mode_exited":(Q=n.onPlanModeExited)==null||Q.call(n,t);break;case"plan_file_updated":(G=n.onPlanFileUpdated)==null||G.call(n,t);break;case"complete":Ee("[AgentClient]","events.dispatch.complete",va(t)),(Z=n.onComplete)==null||Z.call(n,t.usage);break;case"cancelled":Ee("[AgentClient]","events.dispatch.cancelled",va(t)),(pe=n.onCancelled)==null||pe.call(n,t.message);break;case"error":Ee("[AgentClient]","events.dispatch.error",va(t)),($=n.onError)==null||$.call(n,t.message||t.error||"Unknown error");break;default:console.warn("Unknown event type:",t)}}async stopGeneration(t){await St.post(`stop/${t}`)}async deleteSession(t){const n=encodeURIComponent(t);await St.delete(`sessions/${n}`)}async getHistory(t){Ee("[AgentClient]","history.request",{sessionId:t});const n=await St.get(`history/${t}`);return Ee("[AgentClient]","history.response",Yx(n)),n}async healthCheck(){try{return await St.get("health"),!0}catch{return!1}}};Mt(is,"instance");let Jn=is;const Ys=Jn.getInstance(),Lf="provider",Ei=Hr(e=>({isOpen:!1,origin:"chat",activeTabKey:Lf,open:(t,n=Lf)=>e({isOpen:!0,origin:t,activeTabKey:n}),close:()=>e({isOpen:!1}),setActiveTabKey:t=>e({activeTabKey:t})})),Ff={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},Di=new Map,Sa=e=>{const t=Di.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([n,r])=>[n,r.getState()])):{}},Vx=(e,t,n)=>{if(e===void 0)return{type:"untracked",connection:t.connect(n)};const r=Di.get(n.name);if(r)return{type:"tracked",store:e,...r};const s={connection:t.connect(n),stores:{}};return Di.set(n.name,s),{type:"tracked",store:e,...s}},Gx=(e,t)=>{if(t===void 0)return;const n=Di.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&Di.delete(e))},Jx=e=>{var t,n;if(!e)return;const r=e.split(`
|
|
3
|
+
`),s=r.findIndex(i=>i.includes("api.setState"));if(s<0)return;const o=((t=r[s+1])==null?void 0:t.trim())||"";return(n=/.+ (.+) .+/.exec(o))==null?void 0:n[1]},Qx=(e,t={})=>(n,r,s)=>{const{enabled:o,anonymousActionType:i,store:l,...u}=t;let d;try{d=(o??(Ff?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!d)return e(n,r,s);const{connection:h,...m}=Vx(l,d,u);let b=!0;s.setState=(S,k,P)=>{const T=n(S,k);if(!b)return T;const j=P===void 0?{type:i||Jx(new Error().stack)||"anonymous"}:typeof P=="string"?{type:P}:P;return l===void 0?(h==null||h.send(j,r()),T):(h==null||h.send({...j,type:`${l}/${j.type}`},{...Sa(u.name),[l]:s.getState()}),T)},s.devtools={cleanup:()=>{h&&typeof h.unsubscribe=="function"&&h.unsubscribe(),Gx(u.name,l)}};const v=(...S)=>{const k=b;b=!1,n(...S),b=k},w=e(s.setState,r,s);if(m.type==="untracked"?h==null||h.init(w):(m.stores[m.store]=s,h==null||h.init(Object.fromEntries(Object.entries(m.stores).map(([S,k])=>[S,S===m.store?w:k.getState()])))),s.dispatchFromDevtools&&typeof s.dispatch=="function"){let S=!1;const k=s.dispatch;s.dispatch=(...P)=>{(Ff?"production":void 0)!=="production"&&P[0].type==="__setState"&&!S&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),S=!0),k(...P)}}return h.subscribe(S=>{var k;switch(S.type){case"ACTION":if(typeof S.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return gc(S.payload,P=>{if(P.type==="__setState"){if(l===void 0){v(P.state);return}Object.keys(P.state).length!==1&&console.error(`
|
|
4
4
|
[zustand devtools middleware] Unsupported __setState action format.
|
|
5
5
|
When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
|
|
6
6
|
and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
|
|
7
|
-
`);const T=P.state[l];if(T==null)return;JSON.stringify(s.getState())!==JSON.stringify(T)&&v(T);return}s.dispatchFromDevtools&&typeof s.dispatch=="function"&&s.dispatch(P)});case"DISPATCH":switch(S.payload.type){case"RESET":return v(w),l===void 0?h==null?void 0:h.init(s.getState()):h==null?void 0:h.init(
|
|
7
|
+
`);const T=P.state[l];if(T==null)return;JSON.stringify(s.getState())!==JSON.stringify(T)&&v(T);return}s.dispatchFromDevtools&&typeof s.dispatch=="function"&&s.dispatch(P)});case"DISPATCH":switch(S.payload.type){case"RESET":return v(w),l===void 0?h==null?void 0:h.init(s.getState()):h==null?void 0:h.init(Sa(u.name));case"COMMIT":if(l===void 0){h==null||h.init(s.getState());return}return h==null?void 0:h.init(Sa(u.name));case"ROLLBACK":return gc(S.state,P=>{if(l===void 0){v(P),h==null||h.init(s.getState());return}v(P[l]),h==null||h.init(Sa(u.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return gc(S.state,P=>{if(l===void 0){v(P);return}JSON.stringify(s.getState())!==JSON.stringify(P[l])&&v(P[l])});case"IMPORT_STATE":{const{nextLiftedState:P}=S.payload,T=(k=P.computedStates.slice(-1)[0])==null?void 0:k.state;if(!T)return;v(l===void 0?T:T[l]),h==null||h.send(null,P);return}case"PAUSE_RECORDING":return b=!b}return}}),w},Zx=Qx,gc=(e,t)=>{let n;try{n=JSON.parse(e)}catch(r){console.error("[zustand devtools middleware] Could not parse the received json",r)}n!==void 0&&t(n)},ew=e=>(t,n,r)=>{const s=r.subscribe;return r.subscribe=(i,l,u)=>{let d=i;if(l){const h=(u==null?void 0:u.equalityFn)||Object.is;let m=i(r.getState());d=b=>{const v=i(b);if(!h(m,v)){const w=m;l(m=v,w)}},u!=null&&u.fireImmediately&&l(m,m)}return s(d)},e(t,n,r)},tw=ew;function nw(e,t){let n;try{n=e()}catch{return}return{getItem:s=>{var o;const i=u=>u===null?null:JSON.parse(u,void 0),l=(o=n.getItem(s))!=null?o:null;return l instanceof Promise?l.then(i):i(l)},setItem:(s,o)=>n.setItem(s,JSON.stringify(o,void 0)),removeItem:s=>n.removeItem(s)}}const iu=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return iu(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return iu(r)(n)}}}},rw=(e,t)=>(n,r,s)=>{let o={storage:nw(()=>localStorage),partialize:S=>S,version:0,merge:(S,k)=>({...k,...S}),...t},i=!1;const l=new Set,u=new Set;let d=o.storage;if(!d)return e((...S)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),n(...S)},r,s);const h=()=>{const S=o.partialize({...r()});return d.setItem(o.name,{state:S,version:o.version})},m=s.setState;s.setState=(S,k)=>{m(S,k),h()};const b=e((...S)=>{n(...S),h()},r,s);s.getInitialState=()=>b;let v;const w=()=>{var S,k;if(!d)return;i=!1,l.forEach(T=>{var j;return T((j=r())!=null?j:b)});const P=((k=o.onRehydrateStorage)==null?void 0:k.call(o,(S=r())!=null?S:b))||void 0;return iu(d.getItem.bind(d))(o.name).then(T=>{if(T)if(typeof T.version=="number"&&T.version!==o.version){if(o.migrate){const j=o.migrate(T.state,T.version);return j instanceof Promise?j.then(C=>[!0,C]):[!0,j]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,T.state];return[!1,void 0]}).then(T=>{var j;const[C,E]=T;if(v=o.merge(E,(j=r())!=null?j:b),n(v,!0),C)return h()}).then(()=>{P==null||P(v,void 0),v=r(),i=!0,u.forEach(T=>T(v))}).catch(T=>{P==null||P(void 0,T)})};return s.persist={setOptions:S=>{o={...o,...S},S.storage&&(d=S.storage)},clearStorage:()=>{d==null||d.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>w(),hasHydrated:()=>i,onHydrate:S=>(l.add(S),()=>{l.delete(S)}),onFinishHydration:S=>(u.add(S),()=>{u.delete(S)})},o.skipHydration||w(),v||b},sw=rw,ow=()=>({id:"general_assistant",name:"Bodhi",description:xt.t("chat.prompt.defaultDescription"),content:`You are Bodhi, a highly capable AI assistant.
|
|
8
8
|
|
|
9
9
|
You help users solve problems quickly and correctly. Be concise, practical, and proactive.
|
|
10
|
-
If requirements are unclear, ask focused clarifying questions before proceeding.`,isDefault:!0}),ul=()=>[sw()];class ow{async getProviderConfig(){return rt.get("/bamboo/settings/provider")}async saveProviderConfig(t){return rt.post("/bamboo/settings/provider",t)}async reloadConfig(){return rt.post("/bamboo/settings/reload")}async getCopilotAuthStatus(){return rt.post("/bamboo/copilot/auth/status")}async startCopilotAuth(){return rt.post("/bamboo/copilot/auth/start")}async completeCopilotAuth(t){return rt.post("/bamboo/copilot/auth/complete",t)}async authenticateCopilot(){return rt.post("/bamboo/copilot/authenticate")}async logoutCopilot(){return rt.post("/bamboo/copilot/logout")}async fetchProviderModels(t){return(await rt.post("/bamboo/settings/provider/models",{provider:t})).models}async getProviderCatalog(){return rt.get("/bamboo/provider-catalog")}async fetchCatalogModels(t){const n=t?{provider:t}:{};return rt.post("/bamboo/provider-catalog/fetch-models",n)}async getEnvVars(){return rt.get("/bamboo/env-vars")}async upsertEnvVar(t){return rt.post("/bamboo/env-vars",t)}async deleteEnvVar(t){return rt.delete(`/bamboo/env-vars/${encodeURIComponent(t)}`)}async replaceEnvVars(t){return rt.post("/bamboo/env-vars/replace",{entries:t})}}const gc=new ow,Wt=qr((e,t)=>({currentProvider:"copilot",providerConfig:{provider:"copilot",defaults:void 0,providers:{}},isLoading:!1,error:null,selectedModelRef:null,catalog:null,isCatalogFetching:!1,loadProviderConfig:async()=>{var n,r;e({isLoading:!0,error:null});try{const s=await gc.getProviderConfig();if(!((r=(n=s.defaults)==null?void 0:n.chat)!=null&&r.model)&&s.provider&&s.providers){const o=s.provider,i=s.providers[o],l=i==null?void 0:i.model;l&&(s.defaults={chat:{provider:o,model:l}})}e({providerConfig:s,currentProvider:s.provider,isLoading:!1})}catch(s){console.error("Failed to load provider config:",s),e({error:s instanceof Error?s.message:"Failed to load provider config",isLoading:!1})}},setCurrentProvider:n=>{e({currentProvider:n})},updateProviderConfig:n=>{e(r=>({providerConfig:{...r.providerConfig,...n}}))},getActiveModel:()=>{var s,o,i;return((i=(o=(s=t().providerConfig.defaults)==null?void 0:s.chat)==null?void 0:o.model)==null?void 0:i.trim())||void 0},getFastModel:()=>{var s,o,i;const n=t();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},getVisionModel:()=>{var s,o,i;const n=t();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.vision)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},isProviderModelRefEnabled:()=>!0,setSelectedModelRef:n=>{e({selectedModelRef:n})},loadCatalog:async()=>{try{const n=await gc.getProviderCatalog();e({catalog:n})}catch{}},fetchCatalogModels:async n=>{e({isCatalogFetching:!0});try{await gc.fetchCatalogModels(n),await t().loadCatalog()}catch{}finally{e({isCatalogFetching:!1})}},getFastModelRef:()=>{var o,i,l,u;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.fast;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(l=n.providerConfig.defaults)==null?void 0:l.chat;return(u=s==null?void 0:s.model)!=null&&u.trim()?s:null},getVisionModelRef:()=>{var o,i,l,u;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.vision;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(l=n.providerConfig.defaults)==null?void 0:l.chat;return(u=s==null?void 0:s.model)!=null&&u.trim()?s:null},getModelsForProvider:n=>{const{catalog:r}=t();return r!=null&&r.models?r.models.filter(s=>s.reference.provider===n):[]}})),sI=Object.freeze(Object.defineProperty({__proto__:null,useProviderStore:Wt},Symbol.toStringTag,{value:"Module"}));function Pg(e){return e.type==="session_title_updated"||e.type==="session_pinned_updated"}function iu(e,t){switch(e.type){case"session_title_updated":{typeof e.session_id=="string"&&typeof e.title=="string"&&typeof e.title_version=="number"&&t.applyServerTitle(e.session_id,e.title,e.title_version);break}case"session_pinned_updated":{typeof e.session_id=="string"&&typeof e.pinned=="boolean"&&typeof e.updated_at=="string"&&t.applyServerPinned(e.session_id,e.pinned,e.updated_at);break}}}function iw(e,t){const n=t.findIndex(r=>r.id===e.session_id);if(!(n<0))switch(e.type){case"session_title_updated":{if(typeof e.title!="string"||typeof e.title_version!="number")return;const r=e.title_version,s=t[n].titleVersion??0;if(r<=s)return;t[n]={...t[n],title:e.title,titleVersion:r};return}case"session_pinned_updated":{if(typeof e.pinned!="boolean"||typeof e.updated_at!="string")return;const r=new Date(e.updated_at).getTime(),s=new Date(t[n].updatedAt??0).getTime();if(r<s||t[n].pinned===e.pinned)return;t[n]={...t[n],pinned:e.pinned,updatedAt:e.updated_at};return}}}const aw=5e3,Df=80,lw=16,jl=e=>e!==void 0&&e!=="idle"&&e!=="completed"&&e!=="error"&&e!=="cancelled",cw=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children"||e==="settling",uw=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children",Eg=e=>({sessionId:e,phase:"idle",confidence:"optimistic",activeReasons:[],generation:0,backendRunId:null,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},backend:{isRunning:!1,lastRunStatus:null,lastRunError:null,syncedAt:null,hasPendingQuestion:null,runningChildCount:null},interaction:{pendingQuestion:null,respondMode:null},children:{byId:{},runningCount:0},timestamps:{optimisticAt:null,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},error:null}),yn=(e,t)=>e[t]??Eg(t),jt=(e,t)=>[...e.length>=lw?e.slice(-15):e,t],dw=e=>e.length<=Df?e:e.slice(e.length-Df),fw=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]),Nf=(e,t)=>e?e.question===t.question&&e.allowCustom===t.allowCustom&&e.toolCallId===t.toolCallId&&fw(e.options,t.options):!1,Mg=(e,t,n,r)=>{const s=Nf(e.interaction.pendingQuestion,n)?e.interaction.pendingQuestion:{...n,receivedAt:r},o=e.interaction.respondMode&&e.interaction.respondMode.sessionId===t&&Nf(e.interaction.respondMode,n)?e.interaction.respondMode:{...n,sessionId:t};return e.phase==="waiting_user_answer"&&e.confidence==="live"&&s===e.interaction.pendingQuestion&&o===e.interaction.respondMode?e:{...e,phase:"waiting_user_answer",confidence:"live",interaction:{...e.interaction,pendingQuestion:s,respondMode:o},activeReasons:jt(e.activeReasons,"sse:need_clarification")}},Rl=new Set(["idle","completed","error","cancelled","settling","waiting_user_answer"]),ws=e=>Rl.has(e.phase)?e:e.children.runningCount>0?e.phase==="running_children"?e:{...e,phase:"running_children"}:e.stream.activeToolCalls.length>0?e.phase==="running_tools"?e:{...e,phase:"running_tools"}:e.stream.hasTokens?e.phase==="streaming"?e:{...e,phase:"streaming"}:e.phase==="running"?e:{...e,phase:"running"},tn=(e,t,n)=>({...e,[t]:n}),hw=(e,t)=>{if(!(t in e))return e;const n={...e};return delete n[t],n},Bf=(e,t,n)=>{const r=e.timestamps.firstTokenAt??n(),s={...e,confidence:"live",stream:{...e.stream,hasTokens:!0,tokenCount:e.stream.tokenCount+1},timestamps:{...e.timestamps,firstTokenAt:r},activeReasons:jt(e.activeReasons,t)};return ws(s)},pw=(e,t)=>{if(e.stream.hasTokens&&e.timestamps.firstTokenAt!==null)return e;const n=e.timestamps.firstTokenAt??t(),r={...e,confidence:"live",stream:{...e.stream,hasTokens:!0,tokenCount:Math.max(1,e.stream.tokenCount)},timestamps:{...e.timestamps,firstTokenAt:n},activeReasons:jt(e.activeReasons,"sse:token")};return ws(r)},mw=(e,t,n,r)=>{const o=e.stream.activeToolCalls.findIndex(l=>l.toolCallId===t)>=0?e.stream.activeToolCalls:[...e.stream.activeToolCalls,{toolCallId:t,toolName:n,startedAt:r}],i={...e,confidence:"live",stream:{...e.stream,activeToolCalls:o},activeReasons:jt(e.activeReasons,"sse:tool_start")};return ws(i)},gw=(e,t,n)=>{const r=e.stream.activeToolCalls.findIndex(f=>f.toolCallId===t);if(r<0)return e;const s=e.stream.activeToolCalls[r],o=s.preview??"",i=dw(o+n),l={...s,preview:i},u=[...e.stream.activeToolCalls];return u[r]=l,{...e,stream:{...e.stream,activeToolCalls:u}}},yw=(e,t,n)=>{const r=e.stream.activeToolCalls.filter(o=>o.toolCallId!==t);if(r.length===e.stream.activeToolCalls.length)return e;const s={...e,stream:{...e.stream,activeToolCalls:r},activeReasons:jt(e.activeReasons,n)};return s.timestamps.terminalAt&&s.children.runningCount===0&&s.stream.activeToolCalls.length===0&&!Rl.has(s.phase)?{...s,phase:"settling",timestamps:{...s.timestamps,settlingStartedAt:s.timestamps.settlingStartedAt??s.timestamps.terminalAt}}:ws(s)},jg=(e,t,n)=>{const r=e.children.byId[t],s=r!==void 0&&(r.status===void 0||r.status==="running"),o={...r,...n,status:n.status??(r==null?void 0:r.status)??"running"},l=(o.status===void 0||o.status==="running"?1:0)-(s?1:0),u={...e,confidence:"live",children:{byId:{...e.children.byId,[t]:o},runningCount:Math.max(0,e.children.runningCount+l)},activeReasons:jt(e.activeReasons,"sse:sub_agent_started")};return ws(u)},au=(e,t,n)=>{const r=e.children.byId[t],s=r===void 0||r.status===void 0||r.status==="running",o={...r,...n};if(r!==void 0&&r.title===o.title&&r.status===o.status&&r.error===o.error&&r.lastHeartbeatAt===o.lastHeartbeatAt&&r.lastEventAt===o.lastEventAt&&r.outputPreview===o.outputPreview&&r.roundCount===o.roundCount)return e;const i=o.status===void 0||o.status==="running";let l=0;r!==void 0&&(l=(i?1:0)-(s?1:0));const u=Math.max(0,e.children.runningCount+l),f={...e,children:{byId:{...e.children.byId,[t]:o},runningCount:u}};return f.timestamps.terminalAt&&f.children.runningCount===0&&f.stream.activeToolCalls.length===0&&!Rl.has(f.phase)?{...f,phase:"settling",timestamps:{...f.timestamps,settlingStartedAt:f.timestamps.settlingStartedAt??f.timestamps.terminalAt},activeReasons:jt(f.activeReasons,"sse:sub_agent_completed")}:ws(f)},bw=(e,t)=>{if(!(t in e.children.byId))return e;const n=e.children.byId[t],r=n.status===void 0||n.status==="running",s={...e.children.byId};delete s[t];const o={...e,children:{byId:s,runningCount:Math.max(0,e.children.runningCount-(r?1:0))}};return o.timestamps.terminalAt&&o.children.runningCount===0&&o.stream.activeToolCalls.length===0&&!Rl.has(o.phase)?{...o,phase:"settling",timestamps:{...o.timestamps,settlingStartedAt:o.timestamps.settlingStartedAt??o.timestamps.terminalAt}}:ws(o)},zf=(e,t,n)=>{switch(t.type){case"token":return Bf(e,"sse:token",n);case"reasoning_token":return Bf(e,"sse:token",n);case"tool_start":{const r=t.tool_call_id??"",s=t.tool_name??"";return r?mw(e,r,s,n()):e}case"tool_token":{const r=t.tool_call_id??"";return r?gw(e,r,t.content??""):e}case"tool_complete":case"tool_error":{const r=t.tool_call_id??"";return r?yw(e,r,"sse:tool_complete"):e}case"tool_lifecycle":return e;case"sub_agent_started":{const r=t.child_session_id??"";return r?jg(e,r,{title:t.title,status:"running"}):e}case"sub_agent_event":case"sub_agent_heartbeat":{const r=t.child_session_id??"";if(!r)return e;const s={lastEventAt:t.timestamp??n()};return t.type==="sub_agent_heartbeat"&&(s.lastHeartbeatAt=t.timestamp??n()),au(e,r,s)}case"sub_agent_completed":{const r=t.child_session_id??"";if(!r)return e;const s=typeof t.status=="string"?t.status:"completed";return au(e,r,{status:s,error:t.error})}case"need_clarification":{const r={question:t.question??"",options:t.options??[],allowCustom:t.allow_custom??!1,toolCallId:t.tool_call_id??null};return Mg(e,e.sessionId,r,n())}case"execution_started":{const r=t.run_id;return r?e.phase!=="starting"?{...e,backendRunId:r,confidence:"live",activeReasons:jt(e.activeReasons,"sse:execution_started")}:{...e,phase:"running",confidence:"live",backendRunId:r,timestamps:{...e.timestamps,confirmedAt:n()},activeReasons:jt(e.activeReasons,"sse:execution_started")}:e}case"complete":{const r=n();return{...e,phase:"settling",timestamps:{...e.timestamps,terminalAt:r,settlingStartedAt:e.timestamps.settlingStartedAt??r},activeReasons:jt(e.activeReasons,"sse:complete")}}case"cancelled":{const r=n();return{...e,phase:"cancelled",confidence:"terminal",timestamps:{...e.timestamps,terminalAt:r,settledAt:r},error:t.message?{message:t.message,source:"user_cancel",occurredAt:r}:null,activeReasons:jt(e.activeReasons,"sse:error")}}case"error":{const r=n();return{...e,phase:"error",confidence:"terminal",timestamps:{...e.timestamps,terminalAt:r},error:{message:t.message??t.error??"Unknown error",source:"sse",occurredAt:r},activeReasons:jt(e.activeReasons,"sse:error")}}case"task_list_updated":case"task_list_item_progress":case"task_list_completed":case"task_evaluation_started":case"task_evaluation_completed":case"token_budget_updated":case"context_compression_status":case"context_summarized":case"context_pressure_notification":return e;default:return e}},vw=e=>e==="completed"||e==="error"||e==="cancelled",Sw=(e,t,n)=>{const r=t.last_run_status,s=vw(r)?r:null,o=n(),i=t.has_pending_question===void 0?null:t.has_pending_question,l=t.running_child_count===void 0?null:t.running_child_count,u={...e,backend:{...e.backend,isRunning:t.is_running,lastRunStatus:s,lastRunError:t.last_run_error??null,syncedAt:o,hasPendingQuestion:i,runningChildCount:l},backendRunId:e.backendRunId};if(t.is_running)return e.phase==="idle"||e.phase==="completed"||e.phase==="error"||e.phase==="cancelled"?{...u,phase:"running",confidence:"summary",activeReasons:jt(u.activeReasons,"summary:is_running")}:e.phase==="starting"?{...u,phase:"running",confidence:"summary",timestamps:{...u.timestamps,confirmedAt:o},activeReasons:jt(u.activeReasons,"summary:is_running")}:u;if(new Set(["starting","running","streaming","running_tools","running_children","settling"]).has(e.phase)){if(s==="completed")return{...u,phase:"completed",confidence:"terminal",timestamps:{...u.timestamps,settledAt:o},activeReasons:jt(u.activeReasons,"summary:terminal")};if(s==="error")return{...u,phase:"error",confidence:"terminal",timestamps:{...u.timestamps,settledAt:o},error:{message:t.last_run_error??"Backend reported error",source:"summary",occurredAt:o},activeReasons:jt(u.activeReasons,"summary:terminal")};if(s==="cancelled")return{...u,phase:"cancelled",confidence:"terminal",timestamps:{...u.timestamps,settledAt:o},activeReasons:jt(u.activeReasons,"summary:terminal")};if(e.timestamps.optimisticAt){const h=Date.parse(o)-Date.parse(e.timestamps.optimisticAt);if(Number.isFinite(h)&&h<aw)return u}return{...u,phase:"idle",confidence:"summary",activeReasons:jt(u.activeReasons,"summary:terminal")}}return u},xw=()=>new Date().toISOString(),Gt=(e,t,n=xw)=>{switch(t.type){case"ensureSession":return t.sessionId in e?e:tn(e,t.sessionId,Eg(t.sessionId));case"markOptimisticStart":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},interaction:{...r.interaction,respondMode:null},error:null,timestamps:{optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:send")};return tn(e,t.sessionId,o)}case"markRespondStart":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},interaction:{...r.interaction,pendingQuestion:null,respondMode:null},error:null,timestamps:{...r.timestamps,optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:respond")};return tn(e,t.sessionId,o)}case"markRetryStart":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},error:null,timestamps:{...r.timestamps,optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:retry")};return tn(e,t.sessionId,o)}case"markForceSubscribe":{const r=yn(e,t.sessionId);if(jl(r.phase))return e;const s={...r,phase:"running",confidence:"optimistic",generation:r.generation+1,error:null,activeReasons:jt(r.activeReasons,"optimistic:openSession.forceSubscribe")};return tn(e,t.sessionId,s)}case"markCancel":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,settledAt:s},activeReasons:jt(r.activeReasons,"user:cancel")};return tn(e,t.sessionId,o)}case"markSettleTimeout":{const r=yn(e,t.sessionId);if(r.phase!=="starting"&&r.phase!=="settling")return e;const s={...r,phase:"idle",confidence:"optimistic",timestamps:{...r.timestamps,settledAt:n()},activeReasons:jt(r.activeReasons,"settle:timeout")};return tn(e,t.sessionId,s)}case"markStreamStarted":{const r=yn(e,t.sessionId);if(t.generation!==r.generation)return e;const s=pw(r,n);return s===r?e:tn(e,t.sessionId,s)}case"applyAgentEvent":{const r=yn(e,t.sessionId);if(t.generation!==r.generation)return e;const s=zf(r,t.event,n);return s===r?e:tn(e,t.sessionId,s)}case"applyExecutionStarted":{const r=yn(e,t.sessionId);if(t.generation!==r.generation)return e;if(r.phase!=="starting")return tn(e,t.sessionId,{...r,backendRunId:t.runId,confidence:"live",activeReasons:jt(r.activeReasons,"sse:execution_started")});const s={...r,phase:"running",confidence:"live",backendRunId:t.runId,timestamps:{...r.timestamps,confirmedAt:n()},activeReasons:jt(r.activeReasons,"sse:execution_started")};return tn(e,t.sessionId,s)}case"applySessionSummary":{const r=yn(e,t.sessionId),s=Sw(r,t.summary,n);return s===r?e:tn(e,t.sessionId,s)}case"applyOneShotTerminal":{const r=yn(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="idle"&&r.phase!=="starting")return e;const s=n();return t.payload.status==="completed"?tn(e,t.sessionId,{...r,phase:"completed",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")}):t.payload.status==="cancelled"?tn(e,t.sessionId,{...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:t.payload.message?{message:t.payload.message,source:"user_cancel",occurredAt:s}:null,activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")}):tn(e,t.sessionId,{...r,phase:"error",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:{message:t.payload.message??"Unknown error",source:"sse",occurredAt:s},activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")})}case"beginSettle":{const r=yn(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="running"&&r.phase!=="streaming"&&r.phase!=="running_tools"&&r.phase!=="running_children")return e;const s=n();return tn(e,t.sessionId,{...r,phase:"settling",timestamps:{...r.timestamps,settlingStartedAt:s,terminalAt:r.timestamps.terminalAt??s}})}case"applyChildProgress":{const r=yn(e,t.sessionId),o=!(t.childId in r.children.byId)?jg(r,t.childId,t.patch):au(r,t.childId,t.patch);return o===r?e:tn(e,t.sessionId,o)}case"clearChildProgress":{const r=yn(e,t.sessionId),s=bw(r,t.childId);return s===r?e:tn(e,t.sessionId,s)}case"setPendingQuestion":{const r=yn(e,t.sessionId),s=Mg(r,t.sessionId,t.payload,n());return s===r?e:tn(e,t.sessionId,s)}case"clearPendingQuestion":{const r=yn(e,t.sessionId);if(r.interaction.pendingQuestion===null&&r.interaction.respondMode===null)return e;const s={...r,interaction:{...r.interaction,pendingQuestion:null,respondMode:null}};return tn(e,t.sessionId,s)}case"resetSession":return hw(e,t.sessionId);case"applyRunningSnapshot":{let r=e;for(const s of t.sessions){const o=yn(r,s.sessionId),i=o.generation+1;let l={...o,generation:i,backendRunId:s.runId,phase:"running",confidence:"live",timestamps:{...o.timestamps,confirmedAt:n()},activeReasons:jt(o.activeReasons,"sse:execution_started")};for(const u of s.criticalEvents)u.type!=="execution_started"&&(l=zf(l,u,n));r=tn(r,s.sessionId,l)}return r}default:return e}},ln=()=>new Date().toISOString(),ww=(e,t)=>({executionBySession:{},ensureSession:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"ensureSession",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markOptimisticStart:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markOptimisticStart",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markRespondStart:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"markRespondStart",sessionId:n},ln);return o===s.executionBySession?s:{executionBySession:o}})},markRetryStart:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markRetryStart",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markForceSubscribe:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markForceSubscribe",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markCancel:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markCancel",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markSettleTimeout:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markSettleTimeout",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markStreamStarted:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"markStreamStarted",sessionId:n,generation:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},applyAgentEvent:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyAgentEvent",sessionId:n,event:r,generation:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},applyExecutionStarted:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyExecutionStarted",sessionId:n,runId:r,generation:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},applySessionSummary:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"applySessionSummary",sessionId:n,summary:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},applyOneShotTerminal:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyOneShotTerminal",sessionId:n,generation:r,payload:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},beginSettle:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"beginSettle",sessionId:n,generation:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},applyChildProgress:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyChildProgress",sessionId:n,childId:r,patch:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},clearChildProgress:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"clearChildProgress",sessionId:n,childId:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},setPendingQuestion:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"setPendingQuestion",sessionId:n,payload:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},clearPendingQuestion:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"clearPendingQuestion",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},resetSession:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"resetSession",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},applyRunningSnapshot:n=>{const r=t(),s=n.map(o=>{const i=[];for(const l of o.criticalEvents){if(Pg(l)){iu(l,r);continue}i.push(l)}return{...o,criticalEvents:i}});e(o=>{const i=Gt(o.executionBySession,{type:"applyRunningSnapshot",sessions:s},ln);return i===o.executionBySession?o:{executionBySession:i}})}}),hr=Jn.getInstance(),Ys=ul()[0],_w=(Ys==null?void 0:Ys.id)||"general_assistant";var tg;const Rg=((tg=Ys==null?void 0:Ys.content)==null?void 0:tg.trim())||"",yc="tool",Wf=e=>{if(typeof e!="string"||!e.trim())return null;const t=Date.parse(e);return Number.isFinite(t)?t:null},kw=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.provider===t.provider&&e.model===t.model,Cw=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.systemTokens===t.systemTokens&&e.summaryTokens===t.summaryTokens&&e.windowTokens===t.windowTokens&&e.totalTokens===t.totalTokens&&e.maxContextTokens===t.maxContextTokens&&e.budgetLimit===t.budgetLimit&&e.promptCachedToolOutputs===t.promptCachedToolOutputs,Tw=(e,t)=>{if(e===t)return!0;const n=e??[],r=t??[];return n.length!==r.length?!1:n.every((s,o)=>{const i=r[o];return!!i&&s.id===i.id&&s.createdAt===i.createdAt&&s.messagesCompressed===i.messagesCompressed&&s.segmentsRemoved===i.segmentsRemoved})},Pw=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.messageCount===t.messageCount&&e.lastMessageId===t.lastMessageId&&e.hasPendingQuestion===t.hasPendingQuestion&&e.pendingQuestionToolCallId===t.pendingQuestionToolCallId,Ew=(e,t)=>e===t?!0:e.systemPromptId===t.systemPromptId&&e.baseSystemPrompt===t.baseSystemPrompt&&e.lastUsedEnhancedPrompt===t.lastUsedEnhancedPrompt&&e.agentRole===t.agentRole&&e.workspacePath===t.workspacePath&&e.model===t.model&&kw(e.model_ref,t.model_ref)&&e.reasoningEffort===t.reasoningEffort&&Cw(e.tokenUsage,t.tokenUsage)&&e.truncationOccurred===t.truncationOccurred&&e.segmentsRemoved===t.segmentsRemoved&&Tw(e.compressionEvents,t.compressionEvents)&&Pw(e.syncCursor,t.syncCursor),Mw=(e,t)=>e.id===t.id&&e.kind===t.kind&&e.parentSessionId===t.parentSessionId&&e.rootSessionId===t.rootSessionId&&e.spawnDepth===t.spawnDepth&&e.createdByScheduleId===t.createdByScheduleId&&e.isRunning===t.isRunning&&e.updatedAt===t.updatedAt&&e.lastActivityAt===t.lastActivityAt&&e.messageCount===t.messageCount&&e.hasAttachments===t.hasAttachments&&e.lastRunStatus===t.lastRunStatus&&e.lastRunError===t.lastRunError&&e.planMode===t.planMode&&e.subagentType===t.subagentType&&e.title===t.title&&e.titleVersion===t.titleVersion&&e.createdAt===t.createdAt&&e.pinned===t.pinned&&e.messages===t.messages&&Ew(e.config,t.config),jw=()=>{try{const e=globalThis.crypto;if(e!=null&&e.randomUUID)return e.randomUUID()}catch{}return`id_${Date.now()}_${Math.random().toString(16).slice(2)}`},Rw=()=>{let e=xs().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`},Ag=e=>{const t=e.trim();if(!t.startsWith("bamboo-attachment://"))return null;const n=t.slice(20),[r,s]=n.split("/",2);return!r||!s?null:{sessionId:r,attachmentId:s}},Aw=e=>{const t=Ag(e);return t?`${Rw()}/sessions/${encodeURIComponent(t.sessionId)}/attachments/${encodeURIComponent(t.attachmentId)}`:e},ts=e=>{if(typeof e!="string")return;const t=e.trim();if(t&&t.toLowerCase()!=="unknown")return t},Iw=e=>{const t=(e||"").trim();if(!t)return;const n=t.match(/tool policy blocked ['"`]([^'"`]+)['"`]/i);if(n!=null&&n[1])return ts(n[1]);try{const r=JSON.parse(t);if(typeof(r==null?void 0:r.tool_name)=="string")return ts(r.tool_name)}catch{}},lu=e=>{var r,s;const t=Number.isFinite(Date.parse(e.created_at))?Date.parse(e.created_at):Date.now(),n=e.token_usage?{systemTokens:e.token_usage.system_tokens,summaryTokens:e.token_usage.summary_tokens,windowTokens:e.token_usage.window_tokens,totalTokens:e.token_usage.total_tokens,budgetLimit:e.token_usage.budget_limit,...typeof e.token_usage.max_context_tokens=="number"&&e.token_usage.max_context_tokens>0?{maxContextTokens:e.token_usage.max_context_tokens}:{},...typeof e.token_usage.prompt_cached_tool_outputs=="number"&&e.token_usage.prompt_cached_tool_outputs>0?{promptCachedToolOutputs:e.token_usage.prompt_cached_tool_outputs}:{},...typeof e.token_usage.prompt_cached_tool_tokens_saved=="number"&&e.token_usage.prompt_cached_tool_tokens_saved>0?{promptCachedToolTokensSaved:e.token_usage.prompt_cached_tool_tokens_saved}:{}}:void 0;return{id:e.id,kind:e.kind,parentSessionId:e.parent_session_id??null,rootSessionId:e.root_session_id,spawnDepth:e.spawn_depth,createdByScheduleId:e.created_by_schedule_id??null,isRunning:e.is_running,updatedAt:e.updated_at,lastActivityAt:e.last_activity_at,messageCount:e.message_count,hasAttachments:e.has_attachments,lastRunStatus:e.last_run_status,lastRunError:e.last_run_error,planMode:e.plan_mode??null,subagentType:e.subagent_type??null,title:e.title||xt.t("chat.session.defaultTitle"),titleVersion:e.title_version??0,createdAt:t,pinned:e.pinned,messages:[],config:{systemPromptId:_w,baseSystemPrompt:Rg,lastUsedEnhancedPrompt:null,model:e.model,model_ref:e.model_ref??null,reasoningEffort:e.reasoning_effort??null,tokenUsage:n,truncationOccurred:(r=e.token_usage)==null?void 0:r.truncation_occurred,segmentsRemoved:(s=e.token_usage)==null?void 0:s.segments_removed,compressionEvents:[]}}},Ow=(e,t)=>{var o,i,l,u,f;const n=new Map,r=new Map;for(const h of t)h.role==="tool"&&h.tool_call_id&&h.metadata&&r.set(h.tool_call_id,h.metadata);const s=[];for(const h of t){const m=h.created_at||new Date().toISOString();if(h.role==="system"){const b={role:"system",id:h.id,createdAt:m,content:h.content||"",isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(b);continue}if(h.role==="user"){const b=new Map;for(const S of h.image_ocr||[]){const k=(o=S.image_url)==null?void 0:o.trim();if(!k)continue;const T=(S.lines||[]).map(M=>((M==null?void 0:M.text)||"").trim()).filter(Boolean);b.set(k,{ocrText:T.length?T.join(`
|
|
11
|
-
`):void 0,ocrError:S.error?String(S.error):void 0})}const v=[];for(const S of h.content_parts||[]){if(S.type!=="image_url")continue;const k=((i=S.image_url)==null?void 0:i.url)||"";if(!k)continue;const P=Aw(k),T=Ag(k),M=b.get(k.trim());v.push({id:jw(),url:P,ocrText:M==null?void 0:M.ocrText,ocrError:M==null?void 0:M.ocrError,name:T?`attachment-${T.attachmentId}`:"image",size:0,type:"image/*"})}const w={role:"user",id:h.id,createdAt:m,content:h.content||"",images:v.length?v:void 0,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(w);continue}if(h.role==="assistant"){const b=h.tool_calls||[];if(b.length>0){const S=(h.content||"").trim(),k=typeof h.reasoning=="string"&&h.reasoning.trim().length>0;if(S||k){const C=k?{reasoning:h.reasoning,backendMessageId:h.id}:{backendMessageId:h.id},j={role:"assistant",type:"text",id:`${h.id}_text`,createdAt:m,content:h.content||"",metadata:C,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(j)}for(const C of b)C.id&&n.set(C.id,ts((l=C.function)==null?void 0:l.name)||yc);const P=(u=b[0])==null?void 0:u.id,T=P?r.get(P):void 0,M={role:"assistant",type:"tool_call",id:h.id,createdAt:m,toolCalls:b.map(C=>{var j;return{toolCallId:C.id,toolName:ts((j=C.function)==null?void 0:j.name)||yc,parameters:(()=>{var A,O;try{return JSON.parse(((A=C.function)==null?void 0:A.arguments)||"{}")}catch{return{raw:((O=C.function)==null?void 0:O.arguments)||""}}})(),streamingOutput:""}}),...T?{metadata:T}:{},isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(M);continue}const v=typeof h.reasoning=="string"&&h.reasoning.trim().length>0?{reasoning:h.reasoning}:{},w={role:"assistant",type:"text",id:h.id,createdAt:m,content:h.content||"",metadata:v,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(w);continue}if(h.role==="tool"){const b=((f=h.tool_call_id)==null?void 0:f.trim())||`orphan-tool-call:${h.id}`,v=ts(n.get(b))||ts(h.tool_name)||ts(h.name)||Iw(h.content)||yc,w=h.tool_success===!1||h.tool_success==null&&typeof h.content=="string"&&h.content.trimStart().startsWith("Error:"),S={role:"assistant",type:"tool_result",id:h.id,createdAt:m,toolName:v,toolCallId:b,result:{tool_name:v,result:h.content||"",display_preference:"Default"},isError:w,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(S);continue}}return s},$w=750,wt={inFlight:null,forcedPromise:null,timer:null,trailingPromise:null,trailingResolve:null,trailingReject:null};function Ig(){const e={resolve:wt.trailingResolve,reject:wt.trailingReject};return wt.trailingPromise=null,wt.trailingResolve=null,wt.trailingReject=null,e}function Uf(e,t){!t.resolve&&!t.reject||e.then(()=>{var n;return(n=t.resolve)==null?void 0:n.call(t)},n=>{var r;return(r=t.reject)==null?void 0:r.call(t,n)})}function Lw(){return wt.timer&&(clearTimeout(wt.timer),wt.timer=null),Ig()}function Fw(e,t){const n=e.map(lu);t(r=>{let s=r.executionBySession;for(const u of e)s=Gt(s,{type:"applySessionSummary",sessionId:u.id,summary:u});const o=new Map(r.chats.map(u=>[u.id,u]));let i=r.chats.length!==n.length;const l=n.map((u,f)=>{var D,N,q,I;const h=o.get(u.id);if(!h)return i=!0,u;const m=Wf(h.updatedAt),b=Wf(u.updatedAt),v=m!==null&&b!==null&&m>b,w=h.config||{},S=u.config||{},k=Object.prototype.hasOwnProperty.call(w,"model"),P=Object.prototype.hasOwnProperty.call(w,"model_ref"),T=Object.prototype.hasOwnProperty.call(w,"reasoningEffort"),M=Math.max(h.messageCount??0,u.messageCount??0),C=u.titleVersion??0,j=h.titleVersion??0,A=C>j?{title:u.title,titleVersion:C}:{title:h.title,titleVersion:j},O={...w,...S,model:v&&k?w.model:S.model,model_ref:v&&P?w.model_ref:S.model_ref,reasoningEffort:v&&T?w.reasoningEffort:S.reasoningEffort,compressionEvents:((D=h.config)==null?void 0:D.compressionEvents)??((N=u.config)==null?void 0:N.compressionEvents),syncCursor:((q=h.config)==null?void 0:q.syncCursor)??((I=u.config)==null?void 0:I.syncCursor)},F={...u,pinned:v?h.pinned:u.pinned,updatedAt:v?h.updatedAt:u.updatedAt,messages:h.messages,messageCount:M,planMode:u.planMode,config:O,...A};return Mw(h,F)?(r.chats[f]!==h&&(i=!0),h):(i=!0,F)});return!i&&s===r.executionBySession?r:{...r,chats:i?l:r.chats,executionBySession:s}})}async function Ha(e){return wt.inFlight?(Me("[ChatSlice]","refreshChats.inFlight.reuse",{}),wt.inFlight):(Me("[ChatSlice]","refreshChats.start",{}),wt.inFlight=(async()=>{try{const t=await hr.listSessions();Me("[ChatSlice]","refreshChats.response",{count:t.sessions.length,runningCount:t.sessions.filter(n=>n.is_running).length}),Fw(t.sessions,e)}catch(t){throw console.error("[ChatSlice] Failed to refresh sessions:",t),Me("[ChatSlice]","refreshChats.error",{error:t}),t}})().finally(()=>{Me("[ChatSlice]","refreshChats.finally",{}),wt.inFlight=null}),wt.inFlight)}function Dw(e){return wt.forcedPromise?(Me("[ChatSlice]","refreshChatsNow.forced.reuse",{}),wt.forcedPromise):(Me("[ChatSlice]","refreshChatsNow.forced.start",{hasInflight:!!wt.inFlight}),wt.forcedPromise=(async()=>{wt.inFlight&&await wt.inFlight,await Ha(e)})().finally(()=>{Me("[ChatSlice]","refreshChatsNow.forced.finally",{}),wt.forcedPromise=null}),wt.forcedPromise)}const Nw=(e,t)=>({chats:[],currentSessionId:null,latestActiveSessionId:null,addChat:async n=>{var b,v,w,S,k,P,T,M,C,j,A,O;const r=(n.title||xt.t("chat.sidebar.newSession")).trim(),s=((v=(b=n.config)==null?void 0:b.baseSystemPrompt)==null?void 0:v.trim())||"",o=(w=Wt.getState().getActiveModel())==null?void 0:w.trim(),i=((k=(S=n.config)==null?void 0:S.model)==null?void 0:k.trim())||o||void 0,l=((P=n.config)==null?void 0:P.reasoningEffort)??void 0;let u,f;if(Wt.getState().isProviderModelRefEnabled()){const F=(T=n.config)==null?void 0:T.model_ref;if((M=F==null?void 0:F.provider)!=null&&M.trim()&&((C=F==null?void 0:F.model)!=null&&C.trim()))u=F,f=F.provider;else{const D=(j=Wt.getState().providerConfig.defaults)==null?void 0:j.chat;if((A=D==null?void 0:D.provider)!=null&&A.trim()&&((O=D==null?void 0:D.model)!=null&&O.trim()))u=D,f=D.provider;else{const N=Wt.getState().getActiveModel();N&&(u={provider:Wt.getState().currentProvider,model:N},f=Wt.getState().currentProvider)}}}const h=await hr.createSession({title:r,system_prompt:s||void 0,model:i,model_ref:u,provider:f,reasoning_effort:l||void 0}),m={...lu(h.session),title:r,config:{...n.config,model:h.session.model,model_ref:h.session.model_ref??null,reasoningEffort:h.session.reasoning_effort??null,baseSystemPrompt:s||Rg},messages:[]};return e(F=>{const D=[m,...F.chats.filter(N=>N.id!==m.id)];return{...F,chats:D,currentSessionId:m.id,latestActiveSessionId:m.id}}),m.id},selectSession:n=>{const r=t();r.currentSessionId===n&&r.latestActiveSessionId===n||e({currentSessionId:n,latestActiveSessionId:n})},deleteSession:async n=>{try{await hr.deleteSession(n)}catch(r){console.error(`[ChatSlice] Failed to delete backend session ${n}:`,r)}e(r=>{var u;const s=new Set;for(const f of r.chats)f.id===n&&s.add(f.id),f.rootSessionId===n&&s.add(f.id);const o=r.chats.filter(f=>!s.has(f.id)),i=r.currentSessionId&&s.has(r.currentSessionId)?null:r.currentSessionId,l=r.latestActiveSessionId&&s.has(r.latestActiveSessionId)?((u=o[0])==null?void 0:u.id)??null:r.latestActiveSessionId;return{...r,chats:o,currentSessionId:i,latestActiveSessionId:l}})},deleteSessions:async n=>{for(const r of n)await t().deleteSession(r)},updateSession:(n,r)=>{const s=!!r.config&&(Object.prototype.hasOwnProperty.call(r.config,"model")||Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")),o=typeof r.title=="string"||typeof r.pinned=="boolean",l=s||o?new Date().toISOString():void 0;e(f=>{const h=f.chats.map(m=>m.id===n?{...m,...r,...l?{updatedAt:l}:{}}:m);return{...f,chats:h}});const u={};if(typeof r.title=="string"&&(u.title=r.title),typeof r.pinned=="boolean"&&(u.pinned=r.pinned),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model")&&(u.model=r.config.model??null),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model_ref")&&Wt.getState().isProviderModelRefEnabled()&&(u.model_ref=r.config.model_ref??null,r.config.model_ref&&(u.provider=r.config.model_ref.provider)),r.config&&Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")){const f=r.config.reasoningEffort;f?u.reasoning_effort=f:u.clear_reasoning_effort=!0}Object.keys(u).length>0&&hr.patchSession(n,u).catch(f=>{console.warn(`[ChatSlice] Failed to patch session ${n}:`,f)})},persistSessionTitle:async(n,r)=>{var o;const s=(o=t().chats.find(i=>i.id===n))==null?void 0:o.title;e(i=>({...i,chats:i.chats.map(l=>l.id===n?{...l,title:r,updatedAt:new Date().toISOString()}:l)}));try{await hr.patchSession(n,{title:r})}catch(i){throw typeof s=="string"&&e(l=>({...l,chats:l.chats.map(u=>u.id===n?{...u,title:s}:u)})),console.warn(`[ChatSlice] persistSessionTitle failed for ${n}:`,i),i}},applyServerTitle:(n,r,s)=>e(o=>{const i=o.chats.find(l=>l.id===n);return!i||s<=(i.titleVersion??0)?o:{...o,chats:o.chats.map(l=>l.id===n?{...l,title:r,titleVersion:s,updatedAt:new Date().toISOString()}:l)}}),applyServerPinned:(n,r,s)=>e(o=>{const i=o.chats.find(f=>f.id===n);if(!i)return o;const l=Date.parse(s),u=i.updatedAt?Date.parse(i.updatedAt):NaN;return Number.isFinite(l)&&Number.isFinite(u)&&l<u||i.pinned===r?o:{...o,chats:o.chats.map(f=>f.id===n?{...f,pinned:r,updatedAt:s}:f)}}),pinSession:n=>{t().updateSession(n,{pinned:!0})},unpinSession:n=>{t().updateSession(n,{pinned:!1})},setMessages:(n,r)=>{t().chats.find(o=>o.id===n)&&t().updateSession(n,{messages:r})},addMessage:async(n,r)=>{const s=t().chats.find(i=>i.id===n);if(!s)return;const o=[...s.messages,r];t().updateSession(n,{messages:o})},updateMessage:(n,r,s)=>{const o=t().chats.find(l=>l.id===n);if(!o)return;const i=o.messages.map(l=>{if(l.id!==r)return l;const u={...l};return Object.keys(s).forEach(f=>{Object.prototype.hasOwnProperty.call(u,f)&&(u[f]=s[f])}),u});t().updateSession(n,{messages:i})},deleteMessage:async(n,r)=>{const s=t().chats.find(o=>o.id===n);if(!s)return{success:!1,sessionId:n,messageId:r,reason:"session_not_found"};if(!s.messages.some(o=>o.id===r))return{success:!1,sessionId:n,messageId:r,reason:"message_not_found"};try{await hr.deleteSessionMessage(n,r)}catch(o){return console.warn(`[ChatSlice] Failed to delete message ${r} from session ${n}:`,o),o instanceof Li?o.status===404?{success:!1,sessionId:n,messageId:r,reason:"backend_not_found",statusCode:o.status,errorMessage:o.message}:o.status===409?{success:!1,sessionId:n,messageId:r,reason:"session_running",statusCode:o.status,errorMessage:o.message}:{success:!1,sessionId:n,messageId:r,reason:"backend_error",statusCode:o.status,errorMessage:o.message}:{success:!1,sessionId:n,messageId:r,reason:"backend_error",errorMessage:o instanceof Error?o.message:void 0}}return e(o=>({...o,chats:o.chats.map(i=>i.id===n?{...i,messages:i.messages.filter(l=>l.id!==r)}:i)})),{success:!0,sessionId:n,messageId:r}},refreshChats:async()=>wt.inFlight?wt.inFlight:wt.timer?(wt.trailingPromise||(wt.trailingPromise=new Promise((n,r)=>{wt.trailingResolve=n,wt.trailingReject=r})),wt.trailingPromise):(wt.timer=setTimeout(()=>{if(wt.timer=null,wt.trailingPromise){const n=Ig();Uf(Ha(e),n)}},$w),Ha(e)),refreshChatsNow:async()=>{const n=Lw();Me("[ChatSlice]","refreshChatsNow.start",{hadTrailingCallbacks:!!n,hasInflight:!!wt.inFlight});const r=wt.inFlight?Dw(e):Ha(e);return Uf(r,n),r},loadChats:async()=>{var i,l,u;Me("[ChatSlice]","loadChats.start",{});let n=await hr.listSessions();if(!n.sessions||n.sessions.length===0){const f=(i=Wt.getState().getActiveModel())==null?void 0:i.trim(),h=(l=Wt.getState().providerConfig.defaults)==null?void 0:l.chat;Me("[ChatSlice]","loadChats.createInitialSession",{defaultModel:f??null,defaultModelRef:h??null}),n={sessions:[(await hr.createSession({title:xt.t("chat.sidebar.newSession"),model:f,model_ref:h,provider:h==null?void 0:h.provider})).session]}}const r=n.sessions.map(lu),s=((u=r[0])==null?void 0:u.id)??null;Me("[ChatSlice]","loadChats.listResolved",{count:n.sessions.length,currentSessionId:s});let o=t().executionBySession;for(const f of n.sessions)o=Gt(o,{type:"applySessionSummary",sessionId:f.id,summary:f});try{const f=await hr.getRunningSessions();if(Me("[ChatSlice]","loadChats.runningSnapshot",{count:f.sessions.length}),f.sessions.length>0){const h=f.sessions.map(m=>{const b=[];for(const v of m.last_critical_events){if(Pg(v)){iw(v,r);continue}b.push(v)}return{sessionId:m.session_id,runId:m.run_id,criticalEvents:b}});o=Gt(o,{type:"applyRunningSnapshot",sessions:h},()=>new Date().toISOString())}}catch(f){Me("[ChatSlice]","loadChats.runningSnapshot.error",{error:f})}e({chats:r,latestActiveSessionId:s,currentSessionId:s,executionBySession:o}),Me("[ChatSlice]","loadChats.applied",{currentSessionId:s,chatCount:r.length,executionSessionCount:Object.keys(o||{}).length}),s&&(Me("[ChatSlice]","loadChats.loadInitialHistory",{currentSessionId:s}),await t().loadChatHistory(s))},loadChatHistory:async(n,r)=>{var l,u,f,h,m,b,v,w,S,k,P,T,M,C,j,A;const s=(r==null?void 0:r.mode)??"replace",o=Math.max(0,(r==null?void 0:r.retries)??0),i=Math.max(0,(r==null?void 0:r.retryDelayMs)??0);Me("[ChatSlice]","loadChatHistory.start",{sessionId:n,mode:s,retries:o,retryDelayMs:i,waitForAssistant:(r==null?void 0:r.waitForAssistant)??!1});for(let O=0;O<=o;O+=1)try{const F=t().chats.find(I=>I.id===n);if(!F){Me("[ChatSlice]","loadChatHistory.skipMissingChat",{sessionId:n,attempt:O});return}const D=await hr.getHistory(n);Me("[ChatSlice]","loadChatHistory.response",{sessionId:n,attempt:O,historyMessageCount:D.messages.length,localMessageCount:F.messages.length,localStoredMessageCount:F.messageCount??null,lastMessageId:((l=D.messages[D.messages.length-1])==null?void 0:l.id)??null,lastRole:((u=D.messages[D.messages.length-1])==null?void 0:u.role)??null});const N=(f=D.messages[D.messages.length-1])==null?void 0:f.role;if(r!=null&&r.waitForAssistant&&N==="user"&&O<o){const I=i>0?i*(O+1):200*(O+1);Me("[ChatSlice]","loadChatHistory.waitForAssistant.retry",{sessionId:n,attempt:O,delay:I}),await new Promise(Q=>setTimeout(Q,I));continue}const q=Ow(n,D.messages);if(s==="monotonic"){const I=F.messages||[],Q=I.length,G=q.length,Z=(h=q[q.length-1])==null?void 0:h.role,pe=(m=I[I.length-1])==null?void 0:m.role,$=I[I.length-1],oe=q[q.length-1],me=$==null?void 0:$.id,ne=oe==null?void 0:oe.id;let fe=!1;if(G>Q?fe=!0:G===Q&&(fe=pe==="user"&&Z!=="user"||typeof me=="string"&&typeof ne=="string"&&me!==ne),Me("[ChatSlice]","loadChatHistory.monotonicDecision",{sessionId:n,attempt:O,prevLen:Q,nextLen:G,prevLastRole:pe??null,nextLastRole:Z??null,prevLastId:me??null,nextLastId:ne??null,shouldReplace:fe}),!fe){t().updateSession(n,{messageCount:Math.max(F.messageCount??0,D.messages.length)}),Me("[ChatSlice]","loadChatHistory.monotonicSkip",{sessionId:n,attempt:O,localMessageCount:F.messages.length,serverMessageCount:D.messages.length});return}}t().updateSession(n,{messages:q,messageCount:D.messages.length,config:{...F.config||{},compressionEvents:(D.compression_events||[]).map(I=>({id:I.id,createdAt:I.created_at,messagesCompressed:I.messages_compressed,segmentsRemoved:I.segments_removed})),syncCursor:{messageCount:D.messages.length,lastMessageId:((b=D.messages[D.messages.length-1])==null?void 0:b.id)??null,hasPendingQuestion:((S=(w=(v=t().executionBySession)==null?void 0:v[n])==null?void 0:w.interaction.respondMode)==null?void 0:S.sessionId)===n,pendingQuestionToolCallId:((T=(P=(k=t().executionBySession)==null?void 0:k[n])==null?void 0:P.interaction.respondMode)==null?void 0:T.sessionId)===n?((j=(C=(M=t().executionBySession)==null?void 0:M[n])==null?void 0:C.interaction.respondMode)==null?void 0:j.toolCallId)??null:null}}}),Me("[ChatSlice]","loadChatHistory.applied",{sessionId:n,attempt:O,mode:s,messageCount:D.messages.length,lastMessageId:((A=D.messages[D.messages.length-1])==null?void 0:A.id)??null});return}catch(F){if(O>=o){console.warn(`[ChatSlice] Failed to load history for ${n}:`,F),Me("[ChatSlice]","loadChatHistory.error.final",{sessionId:n,attempt:O,retries:o,error:F});return}const D=i>0?i*(O+1):200*(O+1);Me("[ChatSlice]","loadChatHistory.error.retry",{sessionId:n,attempt:O,delay:D,error:F}),await new Promise(N=>setTimeout(N,D))}}});class cu extends Error{constructor(n="Proxy authentication required"){super(n);Et(this,"code","proxy_auth_required");this.name="ProxyAuthRequiredError"}}const is=class is{constructor(){}static getInstance(){return is.instance||(is.instance=new is),is.instance}resolveOpenAICompatBaseUrl(){const t=xs().trim().replace(/\/+$/,"");return t.endsWith("/openai/v1")?t:`${t.endsWith("/v1")?t.slice(0,-3):t}/openai/v1`}async getModels(){var t,n;try{return(await new ld({baseUrl:this.resolveOpenAICompatBaseUrl()}).get("models")).data.map(o=>o.id)}catch(r){if(console.error("Failed to fetch models from HTTP API:",r),r instanceof Li){if(r.status===428)throw new cu(r.message);let s;if(r.body)try{s=JSON.parse(r.body)}catch{}if(s&&typeof s=="object"&&"error"in s&&((t=s.error)==null?void 0:t.code)==="proxy_auth_required")throw new cu(((n=s.error)==null?void 0:n.message)||r.message)}throw r}}};Et(is,"instance");let uu=is;const Og=uu.getInstance(),Bw=async e=>{var t;if(typeof navigator>"u"||!((t=navigator.clipboard)!=null&&t.writeText))throw new Error("navigator.clipboard.writeText is unavailable");await navigator.clipboard.writeText(e)},zw=e=>{if(typeof document>"u")throw new Error("document is unavailable");const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();const n=document.execCommand("copy");if(document.body.removeChild(t),!n)throw new Error("document.execCommand('copy') returned false")},Pr=async e=>{try{await Bw(e);return}catch(t){try{zw(e);return}catch(n){const r=t instanceof Error?t.message:String(t),s=n instanceof Error?n.message:String(n);throw new Error(`Clipboard copy failed: navigator(${r}); fallback(${s})`)}}};class Ww{async copyToClipboard(t){await Pr(t)}async getBambooConfig(){try{return await rt.get("bamboo/config")}catch(t){return console.error("Failed to fetch Bamboo config:",t),{}}}async getBambooTools(){try{return await rt.get("bamboo/tools")}catch(t){return console.error("Failed to fetch Bamboo tools:",t),{tools:[]}}}async getModelLimitDefaults(){try{return await rt.get("bamboo/model-limits/defaults")}catch(t){return console.error("Failed to fetch model limit defaults:",t),{model_limits:[]}}}async setBambooConfig(t){return rt.post("bamboo/config",t)}async validateBambooConfigPatch(t){return rt.post("bamboo/config/validate",t)}async setProxyAuth(t){return rt.post("bamboo/proxy-auth",t)}async getProxyAuthStatus(){try{return await rt.get("bamboo/proxy-auth/status")}catch(t){return console.error("Failed to fetch proxy auth status:",t),{configured:!1,username:null}}}async clearProxyAuth(){return rt.post("bamboo/proxy-auth",{username:"",password:""})}async resetBambooConfig(){return rt.post("bamboo/config/reset",{})}async saveWorkflow(t,n){return rt.post("bamboo/workflows",{name:t,content:n})}async deleteWorkflow(t){return rt.delete(`bamboo/workflows/${encodeURIComponent(t)}`)}async getKeywordMaskingConfig(){try{return await rt.get("bamboo/keyword-masking")}catch(t){return console.error("Failed to fetch keyword masking config:",t),{entries:[]}}}async updateKeywordMaskingConfig(t){return rt.post("bamboo/keyword-masking",t)}async validateKeywordEntries(t){return rt.post("bamboo/keyword-masking/validate",t)}async getSetupStatus(){return await rt.get("bamboo/setup/status")}async markSetupComplete(){return rt.post("bamboo/setup/complete",{})}async resetSetupStatus(){await rt.post("bamboo/setup/incomplete",{})}async getAccessStatus(){return rt.get("bamboo/access/status")}async verifyAccessPassword(t){return rt.post("bamboo/access/verify",{password:t})}async updateAccessPassword(t){return rt.post("bamboo/access/password",t)}}const as=class as{constructor(){Et(this,"httpUtilityService",new Ww)}static getInstance(){return as.instance||(as.instance=new as),as.instance}getUtilityService(){return{copyToClipboard:t=>this.httpUtilityService.copyToClipboard(t),getBambooConfig:()=>this.httpUtilityService.getBambooConfig(),getBambooTools:()=>this.httpUtilityService.getBambooTools(),getModelLimitDefaults:()=>this.httpUtilityService.getModelLimitDefaults(),setBambooConfig:t=>this.httpUtilityService.setBambooConfig(t),validateBambooConfigPatch:t=>this.httpUtilityService.validateBambooConfigPatch(t),setProxyAuth:t=>this.httpUtilityService.setProxyAuth(t),getProxyAuthStatus:()=>this.httpUtilityService.getProxyAuthStatus(),clearProxyAuth:()=>this.httpUtilityService.clearProxyAuth(),resetBambooConfig:()=>this.httpUtilityService.resetBambooConfig(),resetSetupStatus:()=>this.httpUtilityService.resetSetupStatus(),saveWorkflow:(t,n)=>this.httpUtilityService.saveWorkflow(t,n),deleteWorkflow:t=>this.httpUtilityService.deleteWorkflow(t),getKeywordMaskingConfig:()=>this.httpUtilityService.getKeywordMaskingConfig(),updateKeywordMaskingConfig:t=>this.httpUtilityService.updateKeywordMaskingConfig(t),validateKeywordEntries:t=>this.httpUtilityService.validateKeywordEntries(t),getSetupStatus:()=>this.httpUtilityService.getSetupStatus(),markSetupComplete:()=>this.httpUtilityService.markSetupComplete(),getAccessStatus:()=>this.httpUtilityService.getAccessStatus(),verifyAccessPassword:t=>this.httpUtilityService.verifyAccessPassword(t),updateAccessPassword:t=>this.httpUtilityService.updateAccessPassword(t)}}async copyToClipboard(t){return this.getUtilityService().copyToClipboard(t)}async getBambooConfig(){return this.getUtilityService().getBambooConfig()}async getBambooTools(){return this.getUtilityService().getBambooTools()}async getModelLimitDefaults(){return this.getUtilityService().getModelLimitDefaults()}async setBambooConfig(t){return this.getUtilityService().setBambooConfig(t)}async validateBambooConfigPatch(t){return this.getUtilityService().validateBambooConfigPatch(t)}async setProxyAuth(t){return this.getUtilityService().setProxyAuth(t)}async getProxyAuthStatus(){return this.getUtilityService().getProxyAuthStatus()}async clearProxyAuth(){return this.getUtilityService().clearProxyAuth()}async resetBambooConfig(){return this.getUtilityService().resetBambooConfig()}async resetSetupStatus(){return this.getUtilityService().resetSetupStatus()}async saveWorkflow(t,n){return this.getUtilityService().saveWorkflow(t,n)}async deleteWorkflow(t){return this.getUtilityService().deleteWorkflow(t)}async getKeywordMaskingConfig(){return this.getUtilityService().getKeywordMaskingConfig()}async updateKeywordMaskingConfig(t){return this.getUtilityService().updateKeywordMaskingConfig(t)}async validateKeywordEntries(t){return this.getUtilityService().validateKeywordEntries(t)}async getSetupStatus(){return this.getUtilityService().getSetupStatus()}async markSetupComplete(){return this.getUtilityService().markSetupComplete()}async getAccessStatus(){return this.getUtilityService().getAccessStatus()}async verifyAccessPassword(t){return this.getUtilityService().verifyAccessPassword(t)}async updateAccessPassword(t){return this.getUtilityService().updateAccessPassword(t)}};Et(as,"instance");let Js=as;const ns=Js.getInstance();let vo=null,So=null;const bc=(e,t)=>e instanceof Error&&e.message.trim()?e.message:t,du=qr((e,t)=>({config:null,proxyAuthStatus:null,isLoadingConfig:!1,isLoadingProxyAuthStatus:!1,lastLoadedAt:null,error:null,loadConfig:async({force:n=!1}={})=>{const r=t().config;if(!n&&r)return r;if(vo)return vo;vo=(async()=>{e({isLoadingConfig:!0,error:null});try{const s=await ns.getBambooConfig()??{};return e({config:s,lastLoadedAt:Date.now(),error:null}),s}catch(s){const o=bc(s,"Failed to load Bamboo config");throw e({error:o}),s}finally{e({isLoadingConfig:!1})}})();try{return await vo}finally{vo=null}},saveConfig:async n=>{e({isLoadingConfig:!0,error:null,config:n});try{const r=await ns.setBambooConfig(n);return e({config:r,lastLoadedAt:Date.now(),error:null}),r}catch(r){const s=bc(r,"Failed to save Bamboo config");throw e({error:s}),r}finally{e({isLoadingConfig:!1})}},patchConfig:async n=>{const s={...await t().loadConfig()??{},...n??{}};return t().saveConfig(s)},loadProxyAuthStatus:async({force:n=!1}={})=>{const r=t().proxyAuthStatus;if(!n&&r)return r;if(So)return So;So=(async()=>{e({isLoadingProxyAuthStatus:!0,error:null});try{const s=await ns.getProxyAuthStatus();return e({proxyAuthStatus:s,error:null}),s}catch(s){const o=bc(s,"Failed to load proxy auth status");throw e({error:o}),s}finally{e({isLoadingProxyAuthStatus:!1})}})();try{return await So}finally{So=null}},applyProxyAuth:async n=>{await ns.setProxyAuth(n),await t().loadProxyAuthStatus({force:!0})},clearProxyAuth:async()=>{await ns.clearProxyAuth(),await t().loadProxyAuthStatus({force:!0})}}));let xo=null;const Uw=(e,t)=>({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:null,configModel:void 0,setSelectedModel:n=>{e({selectedModel:n})},loadConfigModel:async()=>{try{const n=await du.getState().loadConfig(),r=typeof(n==null?void 0:n.model)=="string"?n.model:void 0;r&&e({configModel:r})}catch(n){console.error("Failed to load model from config:",n)}},fetchModels:async()=>{if(xo)return xo;xo=(async()=>{e({isLoadingModels:!0,modelsError:null});try{try{if(!(await ns.getSetupStatus()).is_complete){Me("[ModelSlice]","Setup not complete, skipping model fetch"),e({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:"Complete setup to access all models"});return}}catch(r){console.error("Failed to check setup status:",r)}const n=await Og.getModels();e(r=>{const s=r.selectedModel;let o=r.selectedModel;return s&&n.includes(s)||(n.length>0?o=n[0]:o=void 0),{...r,models:n,selectedModel:o,modelsError:n.length>0?null:"No available model options"}}),t().models.length===0&&console.warn("No models available from service")}catch(n){const r=n instanceof Error?n.message:String(n);if(console.error("Failed to fetch models:",n),n instanceof cu){e(s=>({...s,models:s.models,selectedModel:s.selectedModel,modelsError:r||"Proxy authentication required. Please configure proxy auth."}));return}e(s=>({...s,models:[],selectedModel:s.selectedModel,modelsError:r}))}finally{e({isLoadingModels:!1})}})();try{await xo}finally{xo=null}}}),qw=["system_prompt","system_prompt_selected_id"],vc=e=>({id:e.id,name:e.name||e.id,content:e.content||"",description:e.description,isDefault:!!e.is_default}),Dr=class Dr{constructor(){Et(this,"deprecatedKeysCleanupDone",!1)}static getInstance(){return Dr.instance||(Dr.instance=new Dr),Dr.instance.cleanupDeprecatedPromptStorageKeys(),Dr.instance}cleanupDeprecatedPromptStorageKeys(){if(!this.deprecatedKeysCleanupDone){this.deprecatedKeysCleanupDone=!0;try{for(const t of qw)localStorage.removeItem(t)}catch(t){console.warn("[SystemPromptService] Failed to cleanup deprecated prompt storage keys:",t)}}}async getSystemPromptPresets(){try{const t=await St.get("prompt-presets"),r=(Array.isArray(t==null?void 0:t.prompts)?t.prompts:[]).filter(s=>s.id&&s.id.trim().length>0).map(vc);if(r.length>0)return r}catch(t){console.error("Failed to load prompt presets from backend:",t)}return ul()}async createSystemPromptPreset(t){var s;const n={name:t.name,content:t.content};(s=t.id)!=null&&s.trim()&&(n.id=t.id.trim()),t.description!==void 0&&(n.description=t.description);const r=await St.post("prompt-presets",n);if(!(r!=null&&r.prompt))throw new Error("Backend did not return created prompt preset");return vc(r.prompt)}async updateSystemPromptPreset(t){const n=encodeURIComponent(t.id),r={name:t.name,content:t.content,description:t.description},s=await St.patch(`prompt-presets/${n}`,r);if(!(s!=null&&s.prompt))throw new Error("Backend did not return updated prompt preset");return vc(s.prompt)}async deleteSystemPromptPreset(t){const n=encodeURIComponent(t);await St.delete(`prompt-presets/${n}`)}async findPresetById(t){return(await this.getSystemPromptPresets()).find(r=>r.id===t)}async getCurrentSystemPromptContent(t){const n=await this.findPresetById(t);if(n)return n.content;const r=await this.getSystemPromptPresets(),s=r.find(o=>o.isDefault)||r[0];return(s==null?void 0:s.content)||""}};Et(Dr,"instance");let dl=Dr;const qf="copilot_last_selected_prompt_id",$g="copilot_custom_system_prompts_v2",Lg="copilot_custom_system_prompts_v2_migrated_to_backend",Fg="general_assistant",cd=80,Ws=dl.getInstance();let Sa=null;function ud(e){const t=e.toLowerCase().trim().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return t.length===0?`prompt_${Date.now()}_${Math.random().toString(36).substring(2,9)}`:t.slice(0,cd)}function Dg(e){if(typeof e!="string")return null;const t=e.toLowerCase().trim().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"");return t?t.slice(0,cd):null}function Ng(e,t){if(!t.has(e))return e;let n=2;for(;;){const r=`_${n}`,o=`${e.slice(0,Math.max(0,cd-r.length))}${r}`;if(!t.has(o))return o;n+=1}}function Bg(){try{const e=localStorage.getItem($g);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const n=new Set,r=[];for(const s of t){const o=typeof(s==null?void 0:s.name)=="string"?s.name.trim():"",i=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!o||!i)continue;const u=Dg(s==null?void 0:s.id)||ud(o),f=Ng(u,n);f!==Fg&&(n.add(f),r.push({id:f,name:o,content:i,description:typeof(s==null?void 0:s.description)=="string"&&s.description.trim()||void 0,isDefault:!!(s!=null&&s.isDefault)}))}return r}catch(e){return console.error("[promptSlice] Failed to read legacy custom prompts:",e),[]}}function zg(){try{return localStorage.getItem(Lg)==="1"}catch(e){return console.error("[promptSlice] Failed to read migration marker:",e),!1}}function Hf(){try{localStorage.setItem(Lg,"1")}catch(e){console.error("[promptSlice] Failed to write migration marker:",e)}}function Yf(){try{localStorage.removeItem($g)}catch(e){console.error("[promptSlice] Failed to clear legacy custom prompts:",e)}}async function Hw(){var s,o;if(zg())return;const e=Bg();if(e.length===0){Yf(),Hf();return}const t=await Ws.getSystemPromptPresets(),n=new Set(t.map(i=>i.id));let r=!1;for(const i of e){const l=(s=i.name)==null?void 0:s.trim(),u=(o=i.content)==null?void 0:o.trim();if(!l||!u||i.id===Fg||i.isDefault)continue;const f=Dg(i.id)||ud(l),h=Ng(f,n);try{const m=await Ws.createSystemPromptPreset({id:h,name:l,content:u,description:i.description});n.add(m.id)}catch(m){r=!0,console.error(`[promptSlice] Failed to migrate legacy prompt '${l}' to backend:`,m)}}r||(Yf(),Hf())}async function Yw(){Sa||(Sa=Hw().finally(()=>{Sa=null})),await Sa}const Xw=(e,t)=>({systemPrompts:[],lastSelectedPromptId:localStorage.getItem(qf)||null,loadSystemPrompts:async()=>{try{await Yw()}catch(s){console.warn("[promptSlice] Legacy prompt migration skipped:",s)}let n=[];try{n=await Ws.getSystemPromptPresets()}catch(s){console.error("Failed to load system prompts from backend:",s)}let r=n.length?n:ul();if(!zg()){const s=Bg();r=Kw(r,s)}r.length===0&&(r=ul()),e({systemPrompts:r})},addSystemPrompt:async n=>{try{await Ws.createSystemPromptPreset({id:ud(n.name),name:n.name,content:n.content,description:n.description}),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to add system prompt:",r),r}},updateSystemPrompt:async n=>{try{await Ws.updateSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to update system prompt:",r),r}},deleteSystemPrompt:async n=>{try{await Ws.deleteSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to delete system prompt:",r),r}},setLastSelectedPromptId:n=>{e({lastSelectedPromptId:n});try{localStorage.setItem(qf,n)}catch(r){console.error("Failed to save last selected prompt ID to localStorage:",r)}}}),Kw=(e,t)=>{const n=new Map;return e.forEach(r=>{n.set(r.id,r)}),t.forEach(r=>{n.set(r.id,r)}),Array.from(n.values())},Vw=()=>({});class Gw{async listSkills(t,n){const r=new URLSearchParams;t!=null&&t.search&&r.append("search",t.search),t!=null&&t.includeDisabled&&r.append("include_disabled","true"),n&&r.append("refresh","true");const s=r.toString(),o=s?`skills?${s}`:"skills";return rt.get(o)}async getSkill(t){return rt.get(`skills/${t}`)}async getFilteredTools(t){const n=t?`?session_id=${encodeURIComponent(t)}`:"";return(await rt.get(`skills/filtered-tools${n}`)).tools??[]}}const Xf=new Gw,Jw=(e,t)=>({skills:[],isLoadingSkills:!1,skillsError:null,loadSkills:async(n,r)=>{e({isLoadingSkills:!0,skillsError:null});try{const s=await Xf.listSkills(n,r);e({skills:s.skills,isLoadingSkills:!1})}catch(s){e({skillsError:s instanceof Error?s.message:xt.t("components.skillManager.loadFailed"),isLoadingSkills:!1})}},getSkill:async n=>{e({isLoadingSkills:!0,skillsError:null});try{const r=await Xf.getSkill(n),s=t().skills,i=s.findIndex(l=>l.id===r.id)>=0?s.map(l=>l.id===r.id?r:l):[...s,r];e({skills:i,isLoadingSkills:!1})}catch(r){e({skillsError:r instanceof Error?r.message:xt.t("components.skillManager.getFailed"),isLoadingSkills:!1})}},clearSkillsError:()=>{e({skillsError:null})}}),Qw=e=>({tokenUsages:{},truncationOccurred:{},segmentsRemoved:{},updateTokenUsage:(t,n)=>e(r=>({tokenUsages:{...r.tokenUsages,[t]:n}})),setTruncationInfo:(t,n,r)=>e(s=>({truncationOccurred:{...s.truncationOccurred,[t]:n},segmentsRemoved:{...s.segmentsRemoved,[t]:r}})),clearTokenUsage:t=>e(n=>{const{[t]:r,...s}=n.tokenUsages,{[t]:o,...i}=n.truncationOccurred,{[t]:l,...u}=n.segmentsRemoved;return{tokenUsages:s,truncationOccurred:i,segmentsRemoved:u}})}),Zw=Jn.getInstance(),e_=(e,t)=>({taskLists:{},taskListVersions:{},activeItems:{},evaluationStates:{},setTaskList:(n,r)=>e(s=>({taskLists:{...s.taskLists,[n]:r},taskListVersions:{...s.taskListVersions,[n]:r.version||0}})),loadTaskList:async n=>{const r=await Zw.getTaskList(n);return r?(t().setTaskList(r.session_id||n,r),r):null},updateTaskListDelta:(n,r)=>e(s=>{const o=s.taskListVersions[n]||0;if(r.version<=o)return s;const i=s.taskLists[n];if(!i)return s;const l=i.items.map(u=>u.id===r.item_id?{...u,status:r.status,tool_calls_count:r.tool_calls_count}:u);return{taskLists:{...s.taskLists,[n]:{...i,items:l,updated_at:new Date().toISOString()}},taskListVersions:{...s.taskListVersions,[n]:r.version},activeItems:{...s.activeItems,[n]:r.status==="in_progress"?r.item_id:null}}}),clearTaskList:n=>e(r=>{const{[n]:s,...o}=r.taskLists,{[n]:i,...l}=r.taskListVersions,{[n]:u,...f}=r.activeItems,{[n]:h,...m}=r.evaluationStates;return{taskLists:o,taskListVersions:l,activeItems:f,evaluationStates:m}}),getTaskListVersion:n=>t().taskListVersions[n]||0,setEvaluationState:(n,r)=>e(s=>({evaluationStates:{...s.evaluationStates,[n]:r}})),clearEvaluationState:n=>e(r=>{const{[n]:s,...o}=r.evaluationStates;return{evaluationStates:o}})});var Ya={exports:{}},t_=Ya.exports,Kf;function n_(){return Kf||(Kf=1,function(e,t){((n,r)=>{e.exports=r()})(t_,function(){var n=function(c,d){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(p,g){p.__proto__=g}:function(p,g){for(var x in g)Object.prototype.hasOwnProperty.call(g,x)&&(p[x]=g[x])}))(c,d)},r=function(){return(r=Object.assign||function(c){for(var d,p=1,g=arguments.length;p<g;p++)for(var x in d=arguments[p])Object.prototype.hasOwnProperty.call(d,x)&&(c[x]=d[x]);return c}).apply(this,arguments)};function s(c,d,p){for(var g,x=0,_=d.length;x<_;x++)!g&&x in d||((g=g||Array.prototype.slice.call(d,0,x))[x]=d[x]);return c.concat(g||Array.prototype.slice.call(d))}var o=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:xS,i=Object.keys,l=Array.isArray;function u(c,d){return typeof d=="object"&&i(d).forEach(function(p){c[p]=d[p]}),c}typeof Promise>"u"||o.Promise||(o.Promise=Promise);var f=Object.getPrototypeOf,h={}.hasOwnProperty;function m(c,d){return h.call(c,d)}function b(c,d){typeof d=="function"&&(d=d(f(c))),(typeof Reflect>"u"?i:Reflect.ownKeys)(d).forEach(function(p){w(c,p,d[p])})}var v=Object.defineProperty;function w(c,d,p,g){v(c,d,u(p&&m(p,"get")&&typeof p.get=="function"?{get:p.get,set:p.set,configurable:!0}:{value:p,configurable:!0,writable:!0},g))}function S(c){return{from:function(d){return c.prototype=Object.create(d.prototype),w(c.prototype,"constructor",c),{extend:b.bind(null,c.prototype)}}}}var k=Object.getOwnPropertyDescriptor,P=[].slice;function T(c,d,p){return P.call(c,d,p)}function M(c,d){return d(c)}function C(c){if(!c)throw new Error("Assertion Failed")}function j(c){o.setImmediate?setImmediate(c):setTimeout(c,0)}function A(c,d){if(typeof d=="string"&&m(c,d))return c[d];if(!d)return c;if(typeof d!="string"){for(var p=[],g=0,x=d.length;g<x;++g){var _=A(c,d[g]);p.push(_)}return p}var E,R=d.indexOf(".");return R===-1||(E=c[d.substr(0,R)])==null?void 0:A(E,d.substr(R+1))}function O(c,d,p){if(c&&d!==void 0&&!("isFrozen"in Object&&Object.isFrozen(c)))if(typeof d!="string"&&"length"in d){C(typeof p!="string"&&"length"in p);for(var g=0,x=d.length;g<x;++g)O(c,d[g],p[g])}else{var _,E,R=d.indexOf(".");R!==-1?(_=d.substr(0,R),(R=d.substr(R+1))===""?p===void 0?l(c)&&!isNaN(parseInt(_))?c.splice(_,1):delete c[_]:c[_]=p:O(E=(E=c[_])&&m(c,_)?E:c[_]={},R,p)):p===void 0?l(c)&&!isNaN(parseInt(d))?c.splice(d,1):delete c[d]:c[d]=p}}function F(c){var d,p={};for(d in c)m(c,d)&&(p[d]=c[d]);return p}var D=[].concat;function N(c){return D.apply([],c)}var he="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(N([8,16,32,64].map(function(c){return["Int","Uint","Float"].map(function(d){return d+c+"Array"})}))).filter(function(c){return o[c]}),q=new Set(he.map(function(c){return o[c]})),I=null;function Q(c){return I=new WeakMap,c=function d(p){if(!p||typeof p!="object")return p;var g=I.get(p);if(g)return g;if(l(p)){g=[],I.set(p,g);for(var x=0,_=p.length;x<_;++x)g.push(d(p[x]))}else if(q.has(p.constructor))g=p;else{var E,R=f(p);for(E in g=R===Object.prototype?{}:Object.create(R),I.set(p,g),p)m(p,E)&&(g[E]=d(p[E]))}return g}(c),I=null,c}var G={}.toString;function Z(c){return G.call(c).slice(8,-1)}var pe=typeof Symbol<"u"?Symbol.iterator:"@@iterator",$=typeof pe=="symbol"?function(c){var d;return c!=null&&(d=c[pe])&&d.apply(c)}:function(){return null};function oe(c,d){d=c.indexOf(d),0<=d&&c.splice(d,1)}var me={};function ne(c){var d,p,g,x;if(arguments.length===1){if(l(c))return c.slice();if(this===me&&typeof c=="string")return[c];if(x=$(c))for(p=[];!(g=x.next()).done;)p.push(g.value);else{if(c==null)return[c];if(typeof(d=c.length)!="number")return[c];for(p=new Array(d);d--;)p[d]=c[d]}}else for(d=arguments.length,p=new Array(d);d--;)p[d]=arguments[d];return p}var fe=typeof Symbol<"u"?function(c){return c[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},he=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],It=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(he),ue={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function de(c,d){this.name=c,this.message=d}function Ce(c,d){return c+". Errors: "+Object.keys(d).map(function(p){return d[p].toString()}).filter(function(p,g,x){return x.indexOf(p)===g}).join(`
|
|
12
|
-
`)}function ze(c,
|
|
13
|
-
`+_:""),this.inner=_||null):typeof x=="object"&&(this.message="".concat(x.name," ").concat(x.message),this.inner=x):(this.message=ue[d]||p,this.inner=null)}return S(g).from(L),c[d]=g,c},{}),Ae=(le.Syntax=SyntaxError,le.Type=TypeError,le.Range=RangeError,he.reduce(function(c,d){return c[d+"Error"]=le[d],c},{}));he=It.reduce(function(c,d){return["Syntax","Type","Range"].indexOf(d)===-1&&(c[d+"Error"]=le[d]),c},{});function Oe(){}function He(c){return c}function dt(c,d){return c==null||c===He?d:function(p){return d(c(p))}}function pt(c,d){return function(){c.apply(this,arguments),d.apply(this,arguments)}}function $t(c,d){return c===Oe?d:function(){var p=c.apply(this,arguments),g=(p!==void 0&&(arguments[0]=p),this.onsuccess),x=this.onerror,_=(this.onsuccess=null,this.onerror=null,d.apply(this,arguments));return g&&(this.onsuccess=this.onsuccess?pt(g,this.onsuccess):g),x&&(this.onerror=this.onerror?pt(x,this.onerror):x),_!==void 0?_:p}}function Qt(c,d){return c===Oe?d:function(){c.apply(this,arguments);var p=this.onsuccess,g=this.onerror;this.onsuccess=this.onerror=null,d.apply(this,arguments),p&&(this.onsuccess=this.onsuccess?pt(p,this.onsuccess):p),g&&(this.onerror=this.onerror?pt(g,this.onerror):g)}}function rn(c,d){return c===Oe?d:function(x){var g=c.apply(this,arguments),x=(u(x,g),this.onsuccess),_=this.onerror,E=(this.onsuccess=null,this.onerror=null,d.apply(this,arguments));return x&&(this.onsuccess=this.onsuccess?pt(x,this.onsuccess):x),_&&(this.onerror=this.onerror?pt(_,this.onerror):_),g===void 0?E===void 0?void 0:E:u(g,E)}}function _n(c,d){return c===Oe?d:function(){return d.apply(this,arguments)!==!1&&c.apply(this,arguments)}}function At(c,d){return c===Oe?d:function(){var p=c.apply(this,arguments);if(p&&typeof p.then=="function"){for(var g=this,x=arguments.length,_=new Array(x);x--;)_[x]=arguments[x];return p.then(function(){return d.apply(g,_)})}return d.apply(this,arguments)}}he.ModifyError=ze,he.DexieError=de,he.BulkError=Le;var Xt=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Kt(c){Xt=c}var gn={},On=100,En=typeof Promise>"u"?[]:(It=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[En=crypto.subtle.digest("SHA-512",new Uint8Array([0])),f(En),It]:[It,f(It),It]),It=En[0],Ms=En[1],Ms=Ms&&Ms.then,_t=It&&It.constructor,bt=!!En[2],ye=function(c,d){fn.push([c,d]),Te&&(queueMicrotask(Ct),Te=!1)},We=!0,Te=!0,qe=[],Lt=[],$n=He,Vt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Oe,pgp:!1,env:{},finalize:Oe},$e=Vt,fn=[],B=0,ie=[];function H(c){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var d=this._PSD=$e;if(typeof c!="function"){if(c!==gn)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Fe(this,this._value)}else this._state=null,this._value=null,++d.ref,function p(g,x){try{x(function(_){if(g._state===null){if(_===g)throw new TypeError("A promise cannot be resolved with itself.");var E=g._lib&&Tt();_&&typeof _.then=="function"?p(g,function(R,W){_ instanceof H?_._then(R,W):_.then(R,W)}):(g._state=!0,g._value=_,et(g)),E&&Ke()}},Fe.bind(null,g))}catch(_){Fe(g,_)}}(this,c)}var _e={get:function(){var c=$e,d=Yr;function p(g,x){var _=this,E=!c.global&&(c!==$e||d!==Yr),R=E&&!er(),W=new H(function(ee,Y){Xe(_,new Ie(io(g,c,E,R),io(x,c,E,R),ee,Y,c))});return this._consoleTask&&(W._consoleTask=this._consoleTask),W}return p.prototype=gn,p},set:function(c){w(this,"then",c&&c.prototype===gn?_e:{get:function(){return c},set:_e.set})}};function Ie(c,d,p,g,x){this.onFulfilled=typeof c=="function"?c:null,this.onRejected=typeof d=="function"?d:null,this.resolve=p,this.reject=g,this.psd=x}function Fe(c,d){var p,g;Lt.push(d),c._state===null&&(p=c._lib&&Tt(),d=$n(d),c._state=!1,c._value=d,g=c,qe.some(function(x){return x._value===g._value})||qe.push(g),et(c),p)&&Ke()}function et(c){var d=c._listeners;c._listeners=[];for(var p=0,g=d.length;p<g;++p)Xe(c,d[p]);var x=c._PSD;--x.ref||x.finalize(),B===0&&(++B,ye(function(){--B==0&&Nt()},[]))}function Xe(c,d){if(c._state===null)c._listeners.push(d);else{var p=c._state?d.onFulfilled:d.onRejected;if(p===null)return(c._state?d.resolve:d.reject)(c._value);++d.psd.ref,++B,ye(kt,[p,c,d])}}function kt(c,d,p){try{var g,x=d._value;!d._state&&Lt.length&&(Lt=[]),g=Xt&&d._consoleTask?d._consoleTask.run(function(){return c(x)}):c(x),d._state||Lt.indexOf(x)!==-1||(_=>{for(var E=qe.length;E;)if(qe[--E]._value===_._value)return qe.splice(E,1)})(d),p.resolve(g)}catch(_){p.reject(_)}finally{--B==0&&Nt(),--p.psd.ref||p.psd.finalize()}}function Ct(){cr(Vt,function(){Tt()&&Ke()})}function Tt(){var c=We;return Te=We=!1,c}function Ke(){var c,d,p;do for(;0<fn.length;)for(c=fn,fn=[],p=c.length,d=0;d<p;++d){var g=c[d];g[0].apply(null,g[1])}while(0<fn.length);Te=We=!0}function Nt(){for(var c=qe,d=(qe=[],c.forEach(function(g){g._PSD.onunhandled.call(null,g._value,g)}),ie.slice(0)),p=d.length;p;)d[--p]()}function Se(c){return new H(gn,!1,c)}function De(c,d){var p=$e;return function(){var g=Tt(),x=$e;try{return tr(p,!0),c.apply(this,arguments)}catch(_){d&&d(_)}finally{tr(x,!1),g&&Ke()}}}b(H.prototype,{then:_e,_then:function(c,d){Xe(this,new Ie(null,null,c,d,$e))},catch:function(c){var d,p;return arguments.length===1?this.then(null,c):(d=c,p=arguments[1],typeof d=="function"?this.then(null,function(g){return(g instanceof d?p:Se)(g)}):this.then(null,function(g){return(g&&g.name===d?p:Se)(g)}))},finally:function(c){return this.then(function(d){return H.resolve(c()).then(function(){return d})},function(d){return H.resolve(c()).then(function(){return Se(d)})})},timeout:function(c,d){var p=this;return c<1/0?new H(function(g,x){var _=setTimeout(function(){return x(new le.Timeout(d))},c);p.then(g,x).finally(clearTimeout.bind(null,_))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&w(H.prototype,Symbol.toStringTag,"Dexie.Promise"),Vt.env=ta(),b(H,{all:function(){var c=ne.apply(null,arguments).map(ks);return new H(function(d,p){c.length===0&&d([]);var g=c.length;c.forEach(function(x,_){return H.resolve(x).then(function(E){c[_]=E,--g||d(c)},p)})})},resolve:function(c){return c instanceof H?c:c&&typeof c.then=="function"?new H(function(d,p){c.then(d,p)}):new H(gn,!0,c)},reject:Se,race:function(){var c=ne.apply(null,arguments).map(ks);return new H(function(d,p){c.map(function(g){return H.resolve(g).then(d,p)})})},PSD:{get:function(){return $e},set:function(c){return $e=c}},totalEchoes:{get:function(){return Yr}},newPSD:Zn,usePSD:cr,scheduler:{get:function(){return ye},set:function(c){ye=c}},rejectionMapper:{get:function(){return $n},set:function(c){$n=c}},follow:function(c,d){return new H(function(p,g){return Zn(function(x,_){var E=$e;E.unhandleds=[],E.onunhandled=_,E.finalize=pt(function(){var R,W=this;R=function(){W.unhandleds.length===0?x():_(W.unhandleds[0])},ie.push(function ee(){R(),ie.splice(ie.indexOf(ee),1)}),++B,ye(function(){--B==0&&Nt()},[])},E.finalize),c()},d,p,g)})}}),_t&&(_t.allSettled&&w(H,"allSettled",function(){var c=ne.apply(null,arguments).map(ks);return new H(function(d){c.length===0&&d([]);var p=c.length,g=new Array(p);c.forEach(function(x,_){return H.resolve(x).then(function(E){return g[_]={status:"fulfilled",value:E}},function(E){return g[_]={status:"rejected",reason:E}}).then(function(){return--p||d(g)})})})}),_t.any&&typeof AggregateError<"u"&&w(H,"any",function(){var c=ne.apply(null,arguments).map(ks);return new H(function(d,p){c.length===0&&p(new AggregateError([]));var g=c.length,x=new Array(g);c.forEach(function(_,E){return H.resolve(_).then(function(R){return d(R)},function(R){x[E]=R,--g||p(new AggregateError(x))})})})}),_t.withResolvers)&&(H.withResolvers=_t.withResolvers);var Ve={awaits:0,echoes:0,id:0},Ot=0,Zt=[],Qn=0,Yr=0,oo=0;function Zn(c,E,p,g){var x=$e,_=Object.create(x),E=(_.parent=x,_.ref=0,_.global=!1,_.id=++oo,Vt.env,_.env=bt?{Promise:H,PromiseProp:{value:H,configurable:!0,writable:!0},all:H.all,race:H.race,allSettled:H.allSettled,any:H.any,resolve:H.resolve,reject:H.reject}:{},E&&u(_,E),++x.ref,_.finalize=function(){--this.parent.ref||this.parent.finalize()},cr(_,c,p,g));return _.ref===0&&_.finalize(),E}function lr(){return Ve.id||(Ve.id=++Ot),++Ve.awaits,Ve.echoes+=On,Ve.id}function er(){return!!Ve.awaits&&(--Ve.awaits==0&&(Ve.id=0),Ve.echoes=Ve.awaits*On,!0)}function ks(c){return Ve.echoes&&c&&c.constructor===_t?(lr(),c.then(function(d){return er(),d},function(d){return er(),Ut(d)})):c}function Wl(){var c=Zt[Zt.length-1];Zt.pop(),tr(c,!1)}function tr(c,d){var p,g,x=$e;(d?!Ve.echoes||Qn++&&c===$e:!Qn||--Qn&&c===$e)||queueMicrotask(d?(function(_){++Yr,Ve.echoes&&--Ve.echoes!=0||(Ve.echoes=Ve.awaits=Ve.id=0),Zt.push($e),tr(_,!0)}).bind(null,c):Wl),c!==$e&&($e=c,x===Vt&&(Vt.env=ta()),bt)&&(p=Vt.env.Promise,g=c.env,x.global||c.global)&&(Object.defineProperty(o,"Promise",g.PromiseProp),p.all=g.all,p.race=g.race,p.resolve=g.resolve,p.reject=g.reject,g.allSettled&&(p.allSettled=g.allSettled),g.any)&&(p.any=g.any)}function ta(){var c=o.Promise;return bt?{Promise:c,PromiseProp:Object.getOwnPropertyDescriptor(o,"Promise"),all:c.all,race:c.race,allSettled:c.allSettled,any:c.any,resolve:c.resolve,reject:c.reject}:{}}function cr(c,d,p,g,x){var _=$e;try{return tr(c,!0),d(p,g,x)}finally{tr(_,!1)}}function io(c,d,p,g){return typeof c!="function"?c:function(){var x=$e;p&&lr(),tr(d,!0);try{return c.apply(this,arguments)}finally{tr(x,!1),g&&queueMicrotask(er)}}}function Cs(c){Promise===_t&&Ve.echoes===0?Qn===0?c():enqueueNativeMicroTask(c):setTimeout(c,0)}(""+Ms).indexOf("[native code]")===-1&&(lr=er=Oe);var Ut=H.reject,ge="",ct="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",qt="String expected.",Bt="__dbnames",vt="readonly",Mn="readwrite";function an(c,d){return c?d?function(){return c.apply(this,arguments)&&d.apply(this,arguments)}:c:d}var Dn={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Xr(c){return typeof c!="string"||/\./.test(c)?function(d){return d}:function(d){return d[c]===void 0&&c in d&&delete(d=Q(d))[c],d}}function xr(){throw le.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function ot(c,d){try{var p=ao(c),g=ao(d);if(p!==g)return p==="Array"?1:g==="Array"?-1:p==="binary"?1:g==="binary"?-1:p==="string"?1:g==="string"?-1:p==="Date"?1:g!=="Date"?NaN:-1;switch(p){case"number":case"Date":case"string":return d<c?1:c<d?-1:0;case"binary":for(var x=Qd(c),_=Qd(d),E=x.length,R=_.length,W=E<R?E:R,ee=0;ee<W;++ee)if(x[ee]!==_[ee])return x[ee]<_[ee]?-1:1;return E===R?0:E<R?-1:1;case"Array":for(var Y=c,z=d,U=Y.length,J=z.length,X=U<J?U:J,K=0;K<X;++K){var V=ot(Y[K],z[K]);if(V!==0)return V}return U===J?0:U<J?-1:1}}catch{}return NaN}function ao(c){var d=typeof c;return d=="object"&&(ArrayBuffer.isView(c)||(d=Z(c))==="ArrayBuffer")?"binary":d}function Qd(c){return c instanceof Uint8Array?c:ArrayBuffer.isView(c)?new Uint8Array(c.buffer,c.byteOffset,c.byteLength):new Uint8Array(c)}function na(c,d,p){var g=c.schema.yProps;return g?(d&&0<p.numFailures&&(d=d.filter(function(x,_){return!p.failures[_]})),Promise.all(g.map(function(x){return x=x.updatesTable,d?c.db.table(x).where("k").anyOf(d).delete():c.db.table(x).clear()})).then(function(){return p})):p}Zd.prototype.execute=function(c){var d=this["@@propmod"];if(d.add!==void 0){var p=d.add;if(l(p))return s(s([],l(c)?c:[],!0),p).sort();if(typeof p=="number")return(Number(c)||0)+p;if(typeof p=="bigint")try{return BigInt(c)+p}catch{return BigInt(0)+p}throw new TypeError("Invalid term ".concat(p))}if(d.remove!==void 0){var g=d.remove;if(l(g))return l(c)?c.filter(function(x){return!g.includes(x)}).sort():[];if(typeof g=="number")return Number(c)-g;if(typeof g=="bigint")try{return BigInt(c)-g}catch{return BigInt(0)-g}throw new TypeError("Invalid subtrahend ".concat(g))}return p=(p=d.replacePrefix)==null?void 0:p[0],p&&typeof c=="string"&&c.startsWith(p)?d.replacePrefix[1]+c.substring(p.length):c};var lo=Zd;function Zd(c){this["@@propmod"]=c}function ef(c,d){for(var p=i(d),g=p.length,x=!1,_=0;_<g;++_){var E=p[_],R=d[E],W=A(c,E);R instanceof lo?(O(c,E,R.execute(W)),x=!0):W!==R&&(O(c,E,R),x=!0)}return x}Ft.prototype._trans=function(c,d,p){var g=this._tx||$e.trans,x=this.name,_=Xt&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(c==="readonly"?"read":"write"," ").concat(this.name));function E(ee,Y,z){if(z.schema[x])return d(z.idbtrans,z);throw new le.NotFound("Table "+x+" not part of transaction")}var R=Tt();try{var W=g&&g.db._novip===this.db._novip?g===$e.trans?g._promise(c,E,p):Zn(function(){return g._promise(c,E,p)},{trans:g,transless:$e.transless||$e}):function ee(Y,z,U,J){if(Y.idbdb&&(Y._state.openComplete||$e.letThrough||Y._vip)){var X=Y._createTransaction(z,U,Y._dbSchema);try{X.create(),Y._state.PR1398_maxLoop=3}catch(K){return K.name===lt.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,z,U,J)})):Ut(K)}return X._promise(z,function(K,V){return Zn(function(){return $e.trans=X,J(K,V,X)})}).then(function(K){if(z==="readwrite")try{X.idbtrans.commit()}catch{}return z==="readonly"?K:X._completion.then(function(){return K})})}if(Y._state.openComplete)return Ut(new le.DatabaseClosed(Y._state.dbOpenError));if(!Y._state.isBeingOpened){if(!Y._state.autoOpen)return Ut(new le.DatabaseClosed);Y.open().catch(Oe)}return Y._state.dbReadyPromise.then(function(){return ee(Y,z,U,J)})}(this.db,c,[this.name],E);return _&&(W._consoleTask=_,W=W.catch(function(ee){return console.trace(ee),Ut(ee)})),W}finally{R&&Ke()}},Ft.prototype.get=function(c,d){var p=this;return c&&c.constructor===Object?this.where(c).first(d):c==null?Ut(new le.Type("Invalid argument to Table.get()")):this._trans("readonly",function(g){return p.core.get({trans:g,key:c}).then(function(x){return p.hook.reading.fire(x)})}).then(d)},Ft.prototype.where=function(c){if(typeof c=="string")return new this.db.WhereClause(this,c);if(l(c))return new this.db.WhereClause(this,"[".concat(c.join("+"),"]"));var d=i(c);if(d.length===1)return this.where(d[0]).equals(c[d[0]]);var p=this.schema.indexes.concat(this.schema.primKey).filter(function(R){if(R.compound&&d.every(function(ee){return 0<=R.keyPath.indexOf(ee)})){for(var W=0;W<d.length;++W)if(d.indexOf(R.keyPath[W])===-1)return!1;return!0}return!1}).sort(function(R,W){return R.keyPath.length-W.keyPath.length})[0];if(p&&this.db._maxKey!==ge)return E=p.keyPath.slice(0,d.length),this.where(E).equals(E.map(function(R){return c[R]}));!p&&Xt&&console.warn("The query ".concat(JSON.stringify(c)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(d.join("+"),"]"));var g=this.schema.idxByName;function x(R,W){return ot(R,W)===0}var E=d.reduce(function(Y,W){var ee=Y[0],Y=Y[1],z=g[W],U=c[W];return[ee||z,ee||!z?an(Y,z&&z.multi?function(J){return J=A(J,W),l(J)&&J.some(function(X){return x(U,X)})}:function(J){return x(U,A(J,W))}):Y]},[null,null]),_=E[0],E=E[1];return _?this.where(_.name).equals(c[_.keyPath]).filter(E):p?this.filter(E):this.where(d).equals("")},Ft.prototype.filter=function(c){return this.toCollection().and(c)},Ft.prototype.count=function(c){return this.toCollection().count(c)},Ft.prototype.offset=function(c){return this.toCollection().offset(c)},Ft.prototype.limit=function(c){return this.toCollection().limit(c)},Ft.prototype.each=function(c){return this.toCollection().each(c)},Ft.prototype.toArray=function(c){return this.toCollection().toArray(c)},Ft.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Ft.prototype.orderBy=function(c){return new this.db.Collection(new this.db.WhereClause(this,l(c)?"[".concat(c.join("+"),"]"):c))},Ft.prototype.reverse=function(){return this.toCollection().reverse()},Ft.prototype.mapToClass=function(c){for(var d=this.db,p=this.name,g=((this.schema.mappedClass=c).prototype instanceof xr&&(c=(E=>{var R=Y,W=E;if(typeof W!="function"&&W!==null)throw new TypeError("Class extends value "+String(W)+" is not a constructor or null");function ee(){this.constructor=R}function Y(){return E!==null&&E.apply(this,arguments)||this}return n(R,W),R.prototype=W===null?Object.create(W):(ee.prototype=W.prototype,new ee),Object.defineProperty(Y.prototype,"db",{get:function(){return d},enumerable:!1,configurable:!0}),Y.prototype.table=function(){return p},Y})(c)),new Set),x=c.prototype;x;x=f(x))Object.getOwnPropertyNames(x).forEach(function(E){return g.add(E)});function _(E){if(!E)return E;var R,W=Object.create(c.prototype);for(R in E)if(!g.has(R))try{W[R]=E[R]}catch{}return W}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=_,this.hook("reading",_),c},Ft.prototype.defineClass=function(){return this.mapToClass(function(c){u(this,c)})},Ft.prototype.add=function(c,d){var p=this,g=this.schema.primKey,x=g.auto,_=g.keyPath,E=c;return _&&x&&(E=Xr(_)(c)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"add",keys:d!=null?[d]:null,values:[E]})}).then(function(R){return R.numFailures?H.reject(R.failures[0]):R.lastResult}).then(function(R){if(_)try{O(c,_,R)}catch{}return R})},Ft.prototype.upsert=function(c,d){var p=this,g=this.schema.primKey.keyPath;return this._trans("readwrite",function(x){return p.core.get({trans:x,key:c}).then(function(_){var E=_??{};return ef(E,d),g&&O(E,g,c),p.core.mutate({trans:x,type:"put",values:[E],keys:[c],upsert:!0,updates:{keys:[c],changeSpecs:[d]}}).then(function(R){return R.numFailures?H.reject(R.failures[0]):!!_})})})},Ft.prototype.update=function(c,d){return typeof c!="object"||l(c)?this.where(":id").equals(c).modify(d):(c=A(c,this.schema.primKey.keyPath))===void 0?Ut(new le.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(c).modify(d)},Ft.prototype.put=function(c,d){var p=this,g=this.schema.primKey,x=g.auto,_=g.keyPath,E=c;return _&&x&&(E=Xr(_)(c)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"put",values:[E],keys:d!=null?[d]:null})}).then(function(R){return R.numFailures?H.reject(R.failures[0]):R.lastResult}).then(function(R){if(_)try{O(c,_,R)}catch{}return R})},Ft.prototype.delete=function(c){var d=this;return this._trans("readwrite",function(p){return d.core.mutate({trans:p,type:"delete",keys:[c]}).then(function(g){return na(d,[c],g)}).then(function(g){return g.numFailures?H.reject(g.failures[0]):void 0})})},Ft.prototype.clear=function(){var c=this;return this._trans("readwrite",function(d){return c.core.mutate({trans:d,type:"deleteRange",range:Dn}).then(function(p){return na(c,null,p)})}).then(function(d){return d.numFailures?H.reject(d.failures[0]):void 0})},Ft.prototype.bulkGet=function(c){var d=this;return this._trans("readonly",function(p){return d.core.getMany({keys:c,trans:p}).then(function(g){return g.map(function(x){return d.hook.reading.fire(x)})})})},Ft.prototype.bulkAdd=function(c,d,p){var g=this,x=Array.isArray(d)?d:void 0,_=(p=p||(x?void 0:d))?p.allKeys:void 0;return this._trans("readwrite",function(E){var R=g.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&x)throw new le.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(x&&x.length!==c.length)throw new le.InvalidArgument("Arguments objects and keys must have the same length");var W=c.length,ee=R&&ee?c.map(Xr(R)):c;return g.core.mutate({trans:E,type:"add",keys:x,values:ee,wantResults:_}).then(function(Y){var z=Y.numFailures,U=Y.failures;if(z===0)return _?Y.results:Y.lastResult;throw new Le("".concat(g.name,".bulkAdd(): ").concat(z," of ").concat(W," operations failed"),U)})})},Ft.prototype.bulkPut=function(c,d,p){var g=this,x=Array.isArray(d)?d:void 0,_=(p=p||(x?void 0:d))?p.allKeys:void 0;return this._trans("readwrite",function(E){var R=g.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&x)throw new le.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(x&&x.length!==c.length)throw new le.InvalidArgument("Arguments objects and keys must have the same length");var W=c.length,ee=R&&ee?c.map(Xr(R)):c;return g.core.mutate({trans:E,type:"put",keys:x,values:ee,wantResults:_}).then(function(Y){var z=Y.numFailures,U=Y.failures;if(z===0)return _?Y.results:Y.lastResult;throw new Le("".concat(g.name,".bulkPut(): ").concat(z," of ").concat(W," operations failed"),U)})})},Ft.prototype.bulkUpdate=function(c){var d=this,p=this.core,g=c.map(function(E){return E.key}),x=c.map(function(E){return E.changes}),_=[];return this._trans("readwrite",function(E){return p.getMany({trans:E,keys:g,cache:"clone"}).then(function(R){var W=[],ee=[],Y=(c.forEach(function(z,U){var J=z.key,X=z.changes,K=R[U];if(K){for(var V=0,se=Object.keys(X);V<se.length;V++){var te=se[V],ce=X[te];if(te===d.schema.primKey.keyPath){if(ot(ce,J)!==0)throw new le.Constraint("Cannot update primary key in bulkUpdate()")}else O(K,te,ce)}_.push(U),W.push(J),ee.push(K)}}),W.length);return p.mutate({trans:E,type:"put",keys:W,values:ee,updates:{keys:g,changeSpecs:x}}).then(function(z){var U=z.numFailures,J=z.failures;if(U===0)return Y;for(var X=0,K=Object.keys(J);X<K.length;X++){var V,se=K[X],te=_[Number(se)];te!=null&&(V=J[se],delete J[se],J[te]=V)}throw new Le("".concat(d.name,".bulkUpdate(): ").concat(U," of ").concat(Y," operations failed"),J)})})})},Ft.prototype.bulkDelete=function(c){var d=this,p=c.length;return this._trans("readwrite",function(g){return d.core.mutate({trans:g,type:"delete",keys:c}).then(function(x){return na(d,c,x)})}).then(function(g){var x=g.numFailures,_=g.failures;if(x===0)return g.lastResult;throw new Le("".concat(d.name,".bulkDelete(): ").concat(x," of ").concat(p," operations failed"),_)})};var tf=Ft;function Ft(){}function co(c){function d(E,R){if(R){for(var W=arguments.length,ee=new Array(W-1);--W;)ee[W-1]=arguments[W];return p[E].subscribe.apply(null,ee),c}if(typeof E=="string")return p[E]}var p={};d.addEventType=_;for(var g=1,x=arguments.length;g<x;++g)_(arguments[g]);return d;function _(E,R,W){var ee,Y;if(typeof E!="object")return R=R||_n,Y={subscribers:[],fire:W=W||Oe,subscribe:function(z){Y.subscribers.indexOf(z)===-1&&(Y.subscribers.push(z),Y.fire=R(Y.fire,z))},unsubscribe:function(z){Y.subscribers=Y.subscribers.filter(function(U){return U!==z}),Y.fire=Y.subscribers.reduce(R,W)}},p[E]=d[E]=Y;i(ee=E).forEach(function(z){var U=ee[z];if(l(U))_(z,ee[z][0],ee[z][1]);else{if(U!=="asap")throw new le.InvalidArgument("Invalid event config");var J=_(z,He,function(){for(var X=arguments.length,K=new Array(X);X--;)K[X]=arguments[X];J.subscribers.forEach(function(V){j(function(){V.apply(null,K)})})})}})}}function uo(c,d){return S(d).from({prototype:c}),d}function Ts(c,d){return!(c.filter||c.algorithm||c.or)&&(d?c.justLimit:!c.replayFilter)}function Ul(c,d){c.filter=an(c.filter,d)}function ql(c,d,p){var g=c.replayFilter;c.replayFilter=g?function(){return an(g(),d())}:d,c.justLimit=p&&!g}function ra(c,d){if(c.isPrimKey)return d.primaryKey;var p=d.getIndexByKeyPath(c.index);if(p)return p;throw new le.Schema("KeyPath "+c.index+" on object store "+d.name+" is not indexed")}function nf(c,d,p){var g=ra(c,d.schema);return d.openCursor({trans:p,values:!c.keysOnly,reverse:c.dir==="prev",unique:!!c.unique,query:{index:g,range:c.range}})}function sa(c,d,p,g){var x,_,E=c.replayFilter?an(c.filter,c.replayFilter()):c.filter;return c.or?(x={},_=function(R,W,ee){var Y,z;E&&!E(W,ee,function(U){return W.stop(U)},function(U){return W.fail(U)})||((z=""+(Y=W.primaryKey))=="[object ArrayBuffer]"&&(z=""+new Uint8Array(Y)),m(x,z))||(x[z]=!0,d(R,W,ee))},Promise.all([c.or._iterate(_,p),rf(nf(c,g,p),c.algorithm,_,!c.keysOnly&&c.valueMapper)])):rf(nf(c,g,p),an(c.algorithm,E),d,!c.keysOnly&&c.valueMapper)}function rf(c,d,p,g){var x=De(g?function(_,E,R){return p(g(_),E,R)}:p);return c.then(function(_){if(_)return _.start(function(){var E=function(){return _.continue()};d&&!d(_,function(R){return E=R},function(R){_.stop(R),E=Oe},function(R){_.fail(R),E=Oe})||x(_.value,_,function(R){return E=R}),E()})})}Pt.prototype._read=function(c,d){var p=this._ctx;return p.error?p.table._trans(null,Ut.bind(null,p.error)):p.table._trans("readonly",c).then(d)},Pt.prototype._write=function(c){var d=this._ctx;return d.error?d.table._trans(null,Ut.bind(null,d.error)):d.table._trans("readwrite",c,"locked")},Pt.prototype._addAlgorithm=function(c){var d=this._ctx;d.algorithm=an(d.algorithm,c)},Pt.prototype._iterate=function(c,d){return sa(this._ctx,c,d,this._ctx.table.core)},Pt.prototype.clone=function(c){var d=Object.create(this.constructor.prototype),p=Object.create(this._ctx);return c&&u(p,c),d._ctx=p,d},Pt.prototype.raw=function(){return this._ctx.valueMapper=null,this},Pt.prototype.each=function(c){var d=this._ctx;return this._read(function(p){return sa(d,c,p,d.table.core)})},Pt.prototype.count=function(c){var d=this;return this._read(function(p){var g,x=d._ctx,_=x.table.core;return Ts(x,!0)?_.count({trans:p,query:{index:ra(x,_.schema),range:x.range}}).then(function(E){return Math.min(E,x.limit)}):(g=0,sa(x,function(){return++g,!1},p,_).then(function(){return g}))}).then(c)},Pt.prototype.sortBy=function(c,d){var p=c.split(".").reverse(),g=p[0],x=p.length-1;function _(W,ee){return ee?_(W[p[ee]],ee-1):W[g]}var E=this._ctx.dir==="next"?1:-1;function R(W,ee){return ot(_(W,x),_(ee,x))*E}return this.toArray(function(W){return W.sort(R)}).then(d)},Pt.prototype.toArray=function(c){var d=this;return this._read(function(p){var g,x,_,E=d._ctx;return Ts(E,!0)&&0<E.limit?(g=E.valueMapper,x=ra(E,E.table.core.schema),E.table.core.query({trans:p,limit:E.limit,values:!0,direction:E.dir==="prev"?"prev":void 0,query:{index:x,range:E.range}}).then(function(R){return R=R.result,g?R.map(g):R})):(_=[],sa(E,function(R){return _.push(R)},p,E.table.core).then(function(){return _}))},c)},Pt.prototype.offset=function(c){var d=this._ctx;return c<=0||(d.offset+=c,Ts(d)?ql(d,function(){var p=c;return function(g,x){return p===0||(p===1?--p:x(function(){g.advance(p),p=0}),!1)}}):ql(d,function(){var p=c;return function(){return--p<0}})),this},Pt.prototype.limit=function(c){return this._ctx.limit=Math.min(this._ctx.limit,c),ql(this._ctx,function(){var d=c;return function(p,g,x){return--d<=0&&g(x),0<=d}},!0),this},Pt.prototype.until=function(c,d){return Ul(this._ctx,function(p,g,x){return!c(p.value)||(g(x),d)}),this},Pt.prototype.first=function(c){return this.limit(1).toArray(function(d){return d[0]}).then(c)},Pt.prototype.last=function(c){return this.reverse().first(c)},Pt.prototype.filter=function(c){var d;return Ul(this._ctx,function(p){return c(p.value)}),(d=this._ctx).isMatch=an(d.isMatch,c),this},Pt.prototype.and=function(c){return this.filter(c)},Pt.prototype.or=function(c){return new this.db.WhereClause(this._ctx.table,c,this)},Pt.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},Pt.prototype.desc=function(){return this.reverse()},Pt.prototype.eachKey=function(c){var d=this._ctx;return d.keysOnly=!d.isMatch,this.each(function(p,g){c(g.key,g)})},Pt.prototype.eachUniqueKey=function(c){return this._ctx.unique="unique",this.eachKey(c)},Pt.prototype.eachPrimaryKey=function(c){var d=this._ctx;return d.keysOnly=!d.isMatch,this.each(function(p,g){c(g.primaryKey,g)})},Pt.prototype.keys=function(c){var d=this._ctx,p=(d.keysOnly=!d.isMatch,[]);return this.each(function(g,x){p.push(x.key)}).then(function(){return p}).then(c)},Pt.prototype.primaryKeys=function(c){var d=this._ctx;if(Ts(d,!0)&&0<d.limit)return this._read(function(g){var x=ra(d,d.table.core.schema);return d.table.core.query({trans:g,values:!1,limit:d.limit,direction:d.dir==="prev"?"prev":void 0,query:{index:x,range:d.range}})}).then(function(g){return g.result}).then(c);d.keysOnly=!d.isMatch;var p=[];return this.each(function(g,x){p.push(x.primaryKey)}).then(function(){return p}).then(c)},Pt.prototype.uniqueKeys=function(c){return this._ctx.unique="unique",this.keys(c)},Pt.prototype.firstKey=function(c){return this.limit(1).keys(function(d){return d[0]}).then(c)},Pt.prototype.lastKey=function(c){return this.reverse().firstKey(c)},Pt.prototype.distinct=function(){var c,d=this._ctx,d=d.index&&d.table.schema.idxByName[d.index];return d&&d.multi&&(c={},Ul(this._ctx,function(g){var g=g.primaryKey.toString(),x=m(c,g);return c[g]=!0,!x})),this},Pt.prototype.modify=function(c){var d=this,p=this._ctx;return this._write(function(g){function x(K,V){var se=V.failures;U+=K-V.numFailures;for(var te=0,ce=i(se);te<ce.length;te++){var be=ce[te];z.push(se[be])}}var _=typeof c=="function"?c:function(K){return ef(K,c)},E=p.table.core,Y=E.schema.primaryKey,R=Y.outbound,W=Y.extractKey,ee=200,Y=d.db._options.modifyChunkSize,z=(Y&&(ee=typeof Y=="object"?Y[E.name]||Y["*"]||200:Y),[]),U=0,J=[],X=c===sf;return d.clone().primaryKeys().then(function(K){function V(te){var ce=Math.min(ee,K.length-te),be=K.slice(te,te+ce);return(X?Promise.resolve([]):E.getMany({trans:g,keys:be,cache:"immutable"})).then(function(xe){var Pe=[],we=[],Ne=R?[]:null,ke=X?be:[];if(!X)for(var Be=0;Be<ce;++Be){var ve=xe[Be],tt={value:Q(ve),primKey:K[te+Be]};_.call(tt,tt.value,tt)!==!1&&(tt.value==null?ke.push(K[te+Be]):R||ot(W(ve),W(tt.value))===0?(we.push(tt.value),R&&Ne.push(K[te+Be])):(ke.push(K[te+Be]),Pe.push(tt.value)))}return Promise.resolve(0<Pe.length&&E.mutate({trans:g,type:"add",values:Pe}).then(function(nt){for(var at in nt.failures)ke.splice(parseInt(at),1);x(Pe.length,nt)})).then(function(){return(0<we.length||se&&typeof c=="object")&&E.mutate({trans:g,type:"put",keys:Ne,values:we,criteria:se,changeSpec:typeof c!="function"&&c,isAdditionalChunk:0<te}).then(function(nt){return x(we.length,nt)})}).then(function(){return(0<ke.length||se&&X)&&E.mutate({trans:g,type:"delete",keys:ke,criteria:se,isAdditionalChunk:0<te}).then(function(nt){return na(p.table,ke,nt)}).then(function(nt){return x(ke.length,nt)})}).then(function(){return K.length>te+ce&&V(te+ee)})})}var se=Ts(p)&&p.limit===1/0&&(typeof c!="function"||X)&&{index:p.index,range:p.range};return V(0).then(function(){if(0<z.length)throw new ze("Error modifying one or more objects",z,U,J);return K.length})})})},Pt.prototype.delete=function(){var c=this._ctx,d=c.range;return!Ts(c)||c.table.schema.yProps||!c.isPrimKey&&d.type!==3?this.modify(sf):this._write(function(p){var g=c.table.core.schema.primaryKey,x=d;return c.table.core.count({trans:p,query:{index:g,range:x}}).then(function(_){return c.table.core.mutate({trans:p,type:"deleteRange",range:x}).then(function(W){var R=W.failures,W=W.numFailures;if(W)throw new ze("Could not delete some values",Object.keys(R).map(function(ee){return R[ee]}),_-W);return _-W})})})};var Gv=Pt;function Pt(){}var sf=function(c,d){return d.value=null};function Jv(c,d){return c<d?-1:c===d?0:1}function Qv(c,d){return d<c?-1:c===d?0:1}function Nn(c,d,p){return c=c instanceof af?new c.Collection(c):c,c._ctx.error=new(p||TypeError)(d),c}function Ps(c){return new c.Collection(c,function(){return of("")}).limit(0)}function oa(J,d,p,g){var x,_,E,R,W,ee,Y,z=p.length;if(!p.every(function(K){return typeof K=="string"}))return Nn(J,qt);function U(K){x=K==="next"?function(se){return se.toUpperCase()}:function(se){return se.toLowerCase()},_=K==="next"?function(se){return se.toLowerCase()}:function(se){return se.toUpperCase()},E=K==="next"?Jv:Qv;var V=p.map(function(se){return{lower:_(se),upper:x(se)}}).sort(function(se,te){return E(se.lower,te.lower)});R=V.map(function(se){return se.upper}),W=V.map(function(se){return se.lower}),Y=(ee=K)==="next"?"":g}U("next");var J=new J.Collection(J,function(){return Er(R[0],W[z-1]+g)}),X=(J._ondirectionchange=function(K){U(K)},0);return J._addAlgorithm(function(K,V,se){var te=K.key;if(typeof te=="string"){var ce=_(te);if(d(ce,W,X))return!0;for(var be=null,xe=X;xe<z;++xe){var Pe=((we,Ne,ke,Be,ve,tt)=>{for(var nt=Math.min(we.length,Be.length),at=-1,yt=0;yt<nt;++yt){var Bn=Ne[yt];if(Bn!==Be[yt])return ve(we[yt],ke[yt])<0?we.substr(0,yt)+ke[yt]+ke.substr(yt+1):ve(we[yt],Be[yt])<0?we.substr(0,yt)+Be[yt]+ke.substr(yt+1):0<=at?we.substr(0,at)+Ne[at]+ke.substr(at+1):null;ve(we[yt],Bn)<0&&(at=yt)}return nt<Be.length&&tt==="next"?we+ke.substr(we.length):nt<we.length&&tt==="prev"?we.substr(0,ke.length):at<0?null:we.substr(0,at)+Be[at]+ke.substr(at+1)})(te,ce,R[xe],W[xe],E,ee);Pe===null&&be===null?X=xe+1:(be===null||0<E(be,Pe))&&(be=Pe)}V(be!==null?function(){K.continue(be+Y)}:se)}return!1}),J}function Er(c,d,p,g){return{type:2,lower:c,upper:d,lowerOpen:p,upperOpen:g}}function of(c){return{type:1,lower:c,upper:c}}Object.defineProperty(hn.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),hn.prototype.between=function(c,d,p,g){p=p!==!1,g=g===!0;try{return 0<this._cmp(c,d)||this._cmp(c,d)===0&&(p||g)&&(!p||!g)?Ps(this):new this.Collection(this,function(){return Er(c,d,!p,!g)})}catch{return Nn(this,ct)}},hn.prototype.equals=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return of(c)})},hn.prototype.above=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Er(c,void 0,!0)})},hn.prototype.aboveOrEqual=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Er(c,void 0,!1)})},hn.prototype.below=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Er(void 0,c,!1,!0)})},hn.prototype.belowOrEqual=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Er(void 0,c)})},hn.prototype.startsWith=function(c){return typeof c!="string"?Nn(this,qt):this.between(c,c+ge,!0,!0)},hn.prototype.startsWithIgnoreCase=function(c){return c===""?this.startsWith(c):oa(this,function(d,p){return d.indexOf(p[0])===0},[c],ge)},hn.prototype.equalsIgnoreCase=function(c){return oa(this,function(d,p){return d===p[0]},[c],"")},hn.prototype.anyOfIgnoreCase=function(){var c=ne.apply(me,arguments);return c.length===0?Ps(this):oa(this,function(d,p){return p.indexOf(d)!==-1},c,"")},hn.prototype.startsWithAnyOfIgnoreCase=function(){var c=ne.apply(me,arguments);return c.length===0?Ps(this):oa(this,function(d,p){return p.some(function(g){return d.indexOf(g)===0})},c,ge)},hn.prototype.anyOf=function(){var c,d,p=this,g=ne.apply(me,arguments),x=this._cmp;try{g.sort(x)}catch{return Nn(this,ct)}return g.length===0?Ps(this):((c=new this.Collection(this,function(){return Er(g[0],g[g.length-1])}))._ondirectionchange=function(_){x=_==="next"?p._ascending:p._descending,g.sort(x)},d=0,c._addAlgorithm(function(_,E,R){for(var W=_.key;0<x(W,g[d]);)if(++d===g.length)return E(R),!1;return x(W,g[d])===0||(E(function(){_.continue(g[d])}),!1)}),c)},hn.prototype.notEqual=function(c){return this.inAnyRange([[-1/0,c],[c,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},hn.prototype.noneOf=function(){var c=ne.apply(me,arguments);if(c.length===0)return new this.Collection(this);try{c.sort(this._ascending)}catch{return Nn(this,ct)}var d=c.reduce(function(p,g){return p?p.concat([[p[p.length-1][1],g]]):[[-1/0,g]]},null);return d.push([c[c.length-1],this.db._maxKey]),this.inAnyRange(d,{includeLowers:!1,includeUppers:!1})},hn.prototype.inAnyRange=function(c,se){var p=this,g=this._cmp,x=this._ascending,_=this._descending,E=this._min,R=this._max;if(c.length===0)return Ps(this);if(!c.every(function(te){return te[0]!==void 0&&te[1]!==void 0&&x(te[0],te[1])<=0}))return Nn(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",le.InvalidArgument);var W=!se||se.includeLowers!==!1,ee=se&&se.includeUppers===!0,Y,z=x;function U(te,ce){return z(te[0],ce[0])}try{(Y=c.reduce(function(te,ce){for(var be=0,xe=te.length;be<xe;++be){var Pe=te[be];if(g(ce[0],Pe[1])<0&&0<g(ce[1],Pe[0])){Pe[0]=E(Pe[0],ce[0]),Pe[1]=R(Pe[1],ce[1]);break}}return be===xe&&te.push(ce),te},[])).sort(U)}catch{return Nn(this,ct)}var J=0,X=ee?function(te){return 0<x(te,Y[J][1])}:function(te){return 0<=x(te,Y[J][1])},K=W?function(te){return 0<_(te,Y[J][0])}:function(te){return 0<=_(te,Y[J][0])},V=X,se=new this.Collection(this,function(){return Er(Y[0][0],Y[Y.length-1][1],!W,!ee)});return se._ondirectionchange=function(te){z=te==="next"?(V=X,x):(V=K,_),Y.sort(U)},se._addAlgorithm(function(te,ce,be){for(var xe,Pe=te.key;V(Pe);)if(++J===Y.length)return ce(be),!1;return!X(xe=Pe)&&!K(xe)||(p._cmp(Pe,Y[J][1])===0||p._cmp(Pe,Y[J][0])===0||ce(function(){z===x?te.continue(Y[J][0]):te.continue(Y[J][1])}),!1)}),se},hn.prototype.startsWithAnyOf=function(){var c=ne.apply(me,arguments);return c.every(function(d){return typeof d=="string"})?c.length===0?Ps(this):this.inAnyRange(c.map(function(d){return[d,d+ge]})):Nn(this,"startsWithAnyOf() only works with strings")};var af=hn;function hn(){}function nr(c){return De(function(d){return fo(d),c(d.target.error),!1})}function fo(c){c.stopPropagation&&c.stopPropagation(),c.preventDefault&&c.preventDefault()}var ho="storagemutated",Hl="x-storagemutated-1",Mr=co(null,ho),Zv=(ur.prototype._lock=function(){return C(!$e.global),++this._reculock,this._reculock!==1||$e.global||($e.lockOwnerFor=this),this},ur.prototype._unlock=function(){if(C(!$e.global),--this._reculock==0)for($e.global||($e.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var c=this._blockedFuncs.shift();try{cr(c[1],c[0])}catch{}}return this},ur.prototype._locked=function(){return this._reculock&&$e.lockOwnerFor!==this},ur.prototype.create=function(c){var d=this;if(this.mode){var p=this.db.idbdb,g=this.db._state.dbOpenError;if(C(!this.idbtrans),!c&&!p)switch(g&&g.name){case"DatabaseClosedError":throw new le.DatabaseClosed(g);case"MissingAPIError":throw new le.MissingAPI(g.message,g);default:throw new le.OpenFailed(g)}if(!this.active)throw new le.TransactionInactive;C(this._completion._state===null),(c=this.idbtrans=c||(this.db.core||p).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=De(function(x){fo(x),d._reject(c.error)}),c.onabort=De(function(x){fo(x),d.active&&d._reject(new le.Abort(c.error)),d.active=!1,d.on("abort").fire(x)}),c.oncomplete=De(function(){d.active=!1,d._resolve(),"mutatedParts"in c&&Mr.storagemutated.fire(c.mutatedParts)})}return this},ur.prototype._promise=function(c,d,p){var g,x=this;return c==="readwrite"&&this.mode!=="readwrite"?Ut(new le.ReadOnly("Transaction is readonly")):this.active?this._locked()?new H(function(_,E){x._blockedFuncs.push([function(){x._promise(c,d,p).then(_,E)},$e])}):p?Zn(function(){var _=new H(function(E,R){x._lock();var W=d(E,R,x);W&&W.then&&W.then(E,R)});return _.finally(function(){return x._unlock()}),_._lib=!0,_}):((g=new H(function(_,E){var R=d(_,E,x);R&&R.then&&R.then(_,E)}))._lib=!0,g):Ut(new le.TransactionInactive)},ur.prototype._root=function(){return this.parent?this.parent._root():this},ur.prototype.waitFor=function(c){var d,p=this._root(),g=H.resolve(c),x=(p._waitingFor?p._waitingFor=p._waitingFor.then(function(){return g}):(p._waitingFor=g,p._waitingQueue=[],d=p.idbtrans.objectStore(p.storeNames[0]),function _(){for(++p._spinCount;p._waitingQueue.length;)p._waitingQueue.shift()();p._waitingFor&&(d.get(-1/0).onsuccess=_)}()),p._waitingFor);return new H(function(_,E){g.then(function(R){return p._waitingQueue.push(De(_.bind(null,R)))},function(R){return p._waitingQueue.push(De(E.bind(null,R)))}).finally(function(){p._waitingFor===x&&(p._waitingFor=null)})})},ur.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new le.Abort))},ur.prototype.table=function(c){var d=this._memoizedTables||(this._memoizedTables={});if(m(d,c))return d[c];var p=this.schema[c];if(p)return(p=new this.db.Table(c,p,this)).core=this.db.core.table(c),d[c]=p;throw new le.NotFound("Table "+c+" not part of transaction")},ur);function ur(){}function Yl(c,d,p,g,x,_,E,R){return{name:c,keyPath:d,unique:p,multi:g,auto:x,compound:_,src:(p&&!E?"&":"")+(g?"*":"")+(x?"++":"")+lf(d),type:R}}function lf(c){return typeof c=="string"?c:c?"["+[].join.call(c,"+")+"]":""}function Xl(c,d,p){return{name:c,primKey:d,indexes:p,mappedClass:null,idxByName:(g=function(x){return[x.name,x]},p.reduce(function(x,_,E){return _=g(_,E),_&&(x[_[0]]=_[1]),x},{}))};var g}var po=function(c){try{return c.only([[]]),po=function(){return[[]]},[[]]}catch{return po=function(){return ge},ge}};function Kl(c){return c==null?function(){}:typeof c=="string"?(d=c).split(".").length===1?function(p){return p[d]}:function(p){return A(p,d)}:function(p){return A(p,c)};var d}function cf(c){return[].slice.call(c)}var eS=0;function mo(c){return c==null?":id":typeof c=="string"?c:"[".concat(c.join("+"),"]")}function tS(c,d,E){function g(V){if(V.type===3)return null;if(V.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var J=V.lower,X=V.upper,K=V.lowerOpen,V=V.upperOpen;return J===void 0?X===void 0?null:d.upperBound(X,!!V):X===void 0?d.lowerBound(J,!!K):d.bound(J,X,!!K,!!V)}function x(U){var J,X,K=U.name;return{name:K,schema:U,mutate:function(V){var se=V.trans,te=V.type,ce=V.keys,be=V.values,xe=V.range;return new Promise(function(Pe,we){Pe=De(Pe);var Ne=se.objectStore(K),ke=Ne.keyPath==null,Be=te==="put"||te==="add";if(!Be&&te!=="delete"&&te!=="deleteRange")throw new Error("Invalid operation type: "+te);var ve,tt=(ce||be||{length:1}).length;if(ce&&be&&ce.length!==be.length)throw new Error("Given keys array must have same length as given values array.");if(tt===0)return Pe({numFailures:0,failures:{},results:[],lastResult:void 0});function nt(jn){++Bn,fo(jn)}var at=[],yt=[],Bn=0;if(te==="deleteRange"){if(xe.type===4)return Pe({numFailures:Bn,failures:yt,results:[],lastResult:void 0});xe.type===3?at.push(ve=Ne.clear()):at.push(ve=Ne.delete(g(xe)))}else{var ke=Be?ke?[be,ce]:[be,null]:[ce,null],it=ke[0],Cn=ke[1];if(Be)for(var Tn=0;Tn<tt;++Tn)at.push(ve=Cn&&Cn[Tn]!==void 0?Ne[te](it[Tn],Cn[Tn]):Ne[te](it[Tn])),ve.onerror=nt;else for(Tn=0;Tn<tt;++Tn)at.push(ve=Ne[te](it[Tn])),ve.onerror=nt}function ya(jn){jn=jn.target.result,at.forEach(function(Gr,fc){return Gr.error!=null&&(yt[fc]=Gr.error)}),Pe({numFailures:Bn,failures:yt,results:te==="delete"?ce:at.map(function(Gr){return Gr.result}),lastResult:jn})}ve.onerror=function(jn){nt(jn),ya(jn)},ve.onsuccess=ya})},getMany:function(V){var se=V.trans,te=V.keys;return new Promise(function(ce,be){ce=De(ce);for(var xe,Pe=se.objectStore(K),we=te.length,Ne=new Array(we),ke=0,Be=0,ve=function(at){at=at.target,Ne[at._pos]=at.result,++Be===ke&&ce(Ne)},tt=nr(be),nt=0;nt<we;++nt)te[nt]!=null&&((xe=Pe.get(te[nt]))._pos=nt,xe.onsuccess=ve,xe.onerror=tt,++ke);ke===0&&ce(Ne)})},get:function(V){var se=V.trans,te=V.key;return new Promise(function(ce,be){ce=De(ce);var xe=se.objectStore(K).get(te);xe.onsuccess=function(Pe){return ce(Pe.target.result)},xe.onerror=nr(be)})},query:(J=W,X=ee,function(V){return new Promise(function(se,te){se=De(se);var ce,be,xe,Pe,tt=V.trans,we=V.values,Ne=V.limit,ve=V.query,ke=(ke=V.direction)!=null?ke:"next",Be=Ne===1/0?void 0:Ne,nt=ve.index,ve=ve.range,tt=tt.objectStore(K),tt=nt.isPrimaryKey?tt:tt.index(nt.name),nt=g(ve);if(Ne===0)return se({result:[]});X?(ve={query:nt,count:Be,direction:ke},(ce=we?tt.getAll(ve):tt.getAllKeys(ve)).onsuccess=function(at){return se({result:at.target.result})},ce.onerror=nr(te)):J&&ke==="next"?((ce=we?tt.getAll(nt,Be):tt.getAllKeys(nt,Be)).onsuccess=function(at){return se({result:at.target.result})},ce.onerror=nr(te)):(be=0,xe=!we&&"openKeyCursor"in tt?tt.openKeyCursor(nt,ke):tt.openCursor(nt,ke),Pe=[],xe.onsuccess=function(){var at=xe.result;return!at||(Pe.push(we?at.value:at.primaryKey),++be===Ne)?se({result:Pe}):void at.continue()},xe.onerror=nr(te))})}),openCursor:function(V){var se=V.trans,te=V.values,ce=V.query,be=V.reverse,xe=V.unique;return new Promise(function(Pe,we){Pe=De(Pe);var Be=ce.index,Ne=ce.range,ke=se.objectStore(K),ke=Be.isPrimaryKey?ke:ke.index(Be.name),Be=be?xe?"prevunique":"prev":xe?"nextunique":"next",ve=!te&&"openKeyCursor"in ke?ke.openKeyCursor(g(Ne),Be):ke.openCursor(g(Ne),Be);ve.onerror=nr(we),ve.onsuccess=De(function(tt){var nt,at,yt,Bn,it=ve.result;it?(it.___id=++eS,it.done=!1,nt=it.continue.bind(it),at=(at=it.continuePrimaryKey)&&at.bind(it),yt=it.advance.bind(it),Bn=function(){throw new Error("Cursor not stopped")},it.trans=se,it.stop=it.continue=it.continuePrimaryKey=it.advance=function(){throw new Error("Cursor not started")},it.fail=De(we),it.next=function(){var Cn=this,Tn=1;return this.start(function(){return Tn--?Cn.continue():Cn.stop()}).then(function(){return Cn})},it.start=function(Cn){function Tn(){if(ve.result)try{Cn()}catch(jn){it.fail(jn)}else it.done=!0,it.start=function(){throw new Error("Cursor behind last entry")},it.stop()}var ya=new Promise(function(jn,Gr){jn=De(jn),ve.onerror=nr(Gr),it.fail=Gr,it.stop=function(fc){it.stop=it.continue=it.continuePrimaryKey=it.advance=Bn,jn(fc)}});return ve.onsuccess=De(function(jn){ve.onsuccess=Tn,Tn()}),it.continue=nt,it.continuePrimaryKey=at,it.advance=yt,Tn(),ya},Pe(it)):Pe(null)},we)})},count:function(V){var se=V.query,te=V.trans,ce=se.index,be=se.range;return new Promise(function(xe,Pe){var we=te.objectStore(K),we=ce.isPrimaryKey?we:we.index(ce.name),Ne=g(be),Ne=Ne?we.count(Ne):we.count();Ne.onsuccess=De(function(ke){return xe(ke.target.result)}),Ne.onerror=nr(Pe)})}}}_=E,R=cf((E=c).objectStoreNames),Y=0<R.length?_.objectStore(R[0]):{};var _,E={schema:{name:E.name,tables:R.map(function(U){return _.objectStore(U)}).map(function(U){var J=U.keyPath,X=U.autoIncrement,V=l(J),K={},V={name:U.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:J==null,compound:V,keyPath:J,autoIncrement:X,unique:!0,extractKey:Kl(J)},indexes:cf(U.indexNames).map(function(se){return U.index(se)}).map(function(be){var xe=be.name,te=be.unique,ce=be.multiEntry,be=be.keyPath,xe={name:xe,compound:l(be),keyPath:be,unique:te,multiEntry:ce,extractKey:Kl(be)};return K[mo(be)]=xe}),getIndexByKeyPath:function(se){return K[mo(se)]}};return K[":id"]=V.primaryKey,J!=null&&(K[mo(J)]=V.primaryKey),V})},hasGetAll:0<R.length&&"getAll"in Y&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in Y},R=E.schema,W=E.hasGetAll,ee=E.hasIdb3Features,Y=R.tables.map(x),z={};return Y.forEach(function(U){return z[U.name]=U}),{stack:"dbcore",transaction:c.transaction.bind(c),table:function(U){if(z[U])return z[U];throw new Error("Table '".concat(U,"' not found"))},MIN_KEY:-1/0,MAX_KEY:po(d),schema:R}}function nS(c,d,p,g){return p=p.IDBKeyRange,d=tS(d,p,g),{dbcore:c.dbcore.reduce(function(x,_){return _=_.create,r(r({},x),_(x))},d)}}function ia(c,d){var p=d.db,p=nS(c._middlewares,p,c._deps,d);c.core=p.dbcore,c.tables.forEach(function(g){var x=g.name;c.core.schema.tables.some(function(_){return _.name===x})&&(g.core=c.core.table(x),c[x]instanceof c.Table)&&(c[x].core=g.core)})}function aa(c,d,p,g){p.forEach(function(x){var _=g[x];d.forEach(function(E){var R=function W(ee,Y){return k(ee,Y)||(ee=f(ee))&&W(ee,Y)}(E,x);(!R||"value"in R&&R.value===void 0)&&(E===c.Transaction.prototype||E instanceof c.Transaction?w(E,x,{get:function(){return this.table(x)},set:function(W){v(this,x,{value:W,writable:!0,configurable:!0,enumerable:!0})}}):E[x]=new c.Table(x,_))})})}function Vl(c,d){d.forEach(function(p){for(var g in p)p[g]instanceof c.Table&&delete p[g]})}function rS(c,d){return c._cfg.version-d._cfg.version}function sS(c,d,p,g){var x=c._dbSchema,_=(p.objectStoreNames.contains("$meta")&&!x.$meta&&(x.$meta=Xl("$meta",df("")[0],[]),c._storeNames.push("$meta")),c._createTransaction("readwrite",c._storeNames,x)),E=(_.create(p),_._completion.catch(g),_._reject.bind(_)),R=$e.transless||$e;Zn(function(){if($e.trans=_,$e.transless=R,d!==0)return ia(c,p),ee=d,((W=_).storeNames.includes("$meta")?W.table("$meta").get("version").then(function(Y){return Y??ee}):H.resolve(ee)).then(function(V){var z=c,U=V,J=_,X=p,K=[],V=z._versions,se=z._dbSchema=ca(0,z.idbdb,X);return(V=V.filter(function(te){return te._cfg.version>=U})).length===0?H.resolve():(V.forEach(function(te){K.push(function(){var ce,be,xe,Pe=se,we=te._cfg.dbschema,Ne=(ua(z,Pe,X),ua(z,we,X),se=z._dbSchema=we,Gl(Pe,we)),ke=(Ne.add.forEach(function(Be){Jl(X,Be[0],Be[1].primKey,Be[1].indexes)}),Ne.change.forEach(function(Be){if(Be.recreate)throw new le.Upgrade("Not yet support for changing primary key");var ve=X.objectStore(Be.name);Be.add.forEach(function(tt){return la(ve,tt)}),Be.change.forEach(function(tt){ve.deleteIndex(tt.name),la(ve,tt)}),Be.del.forEach(function(tt){return ve.deleteIndex(tt)})}),te._cfg.contentUpgrade);if(ke&&te._cfg.version>U)return ia(z,X),J._memoizedTables={},ce=F(we),Ne.del.forEach(function(Be){ce[Be]=Pe[Be]}),Vl(z,[z.Transaction.prototype]),aa(z,[z.Transaction.prototype],i(ce),ce),J.schema=ce,(be=fe(ke))&&lr(),we=H.follow(function(){var Be;(xe=ke(J))&&be&&(Be=er.bind(null,null),xe.then(Be,Be))}),xe&&typeof xe.then=="function"?H.resolve(xe):we.then(function(){return xe})}),K.push(function(ce){var be,xe,Pe=te._cfg.dbschema;be=Pe,xe=ce,[].slice.call(xe.db.objectStoreNames).forEach(function(we){return be[we]==null&&xe.db.deleteObjectStore(we)}),Vl(z,[z.Transaction.prototype]),aa(z,[z.Transaction.prototype],z._storeNames,z._dbSchema),J.schema=z._dbSchema}),K.push(function(ce){z.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(z.idbdb.version/10)===te._cfg.version?(z.idbdb.deleteObjectStore("$meta"),delete z._dbSchema.$meta,z._storeNames=z._storeNames.filter(function(be){return be!=="$meta"})):ce.objectStore("$meta").put(te._cfg.version,"version"))})}),function te(){return K.length?H.resolve(K.shift()(J.idbtrans)).then(te):H.resolve()}().then(function(){uf(se,X)}))}).catch(E);var W,ee;i(x).forEach(function(Y){Jl(p,Y,x[Y].primKey,x[Y].indexes)}),ia(c,p),H.follow(function(){return c.on.populate.fire(_)}).catch(E)})}function oS(c,d){uf(c._dbSchema,d),d.db.version%10!=0||d.objectStoreNames.contains("$meta")||d.db.createObjectStore("$meta").add(Math.ceil(d.db.version/10-1),"version");var p=ca(0,c.idbdb,d);ua(c,c._dbSchema,d);for(var g=0,x=Gl(p,c._dbSchema).change;g<x.length;g++){var _=(E=>{if(E.change.length||E.recreate)return console.warn("Unable to patch indexes of table ".concat(E.name," because it has changes on the type of index or primary key.")),{value:void 0};var R=d.objectStore(E.name);E.add.forEach(function(W){Xt&&console.debug("Dexie upgrade patch: Creating missing index ".concat(E.name,".").concat(W.src)),la(R,W)})})(x[g]);if(typeof _=="object")return _.value}}function Gl(c,d){var p,g={del:[],add:[],change:[]};for(p in c)d[p]||g.del.push(p);for(p in d){var x=c[p],_=d[p];if(x){var E={name:p,def:_,recreate:!1,del:[],add:[],change:[]};if(""+(x.primKey.keyPath||"")!=""+(_.primKey.keyPath||"")||x.primKey.auto!==_.primKey.auto)E.recreate=!0,g.change.push(E);else{var R=x.idxByName,W=_.idxByName,ee=void 0;for(ee in R)W[ee]||E.del.push(ee);for(ee in W){var Y=R[ee],z=W[ee];Y?Y.src!==z.src&&E.change.push(z):E.add.push(z)}(0<E.del.length||0<E.add.length||0<E.change.length)&&g.change.push(E)}}else g.add.push([p,_])}return g}function Jl(c,d,p,g){var x=c.db.createObjectStore(d,p.keyPath?{keyPath:p.keyPath,autoIncrement:p.auto}:{autoIncrement:p.auto});g.forEach(function(_){return la(x,_)})}function uf(c,d){i(c).forEach(function(p){d.db.objectStoreNames.contains(p)||(Xt&&console.debug("Dexie: Creating missing table",p),Jl(d,p,c[p].primKey,c[p].indexes))})}function la(c,d){c.createIndex(d.name,d.keyPath,{unique:d.unique,multiEntry:d.multi})}function ca(c,d,p){var g={};return T(d.objectStoreNames,0).forEach(function(x){for(var _=p.objectStore(x),E=Yl(lf(ee=_.keyPath),ee||"",!0,!1,!!_.autoIncrement,ee&&typeof ee!="string",!0),R=[],W=0;W<_.indexNames.length;++W){var Y=_.index(_.indexNames[W]),ee=Y.keyPath,Y=Yl(Y.name,ee,!!Y.unique,!!Y.multiEntry,!1,ee&&typeof ee!="string",!1);R.push(Y)}g[x]=Xl(x,E,R)}),g}function ua(c,d,p){for(var g=p.db.objectStoreNames,x=0;x<g.length;++x){var _=g[x],E=p.objectStore(_);c._hasGetAll="getAll"in E;for(var R=0;R<E.indexNames.length;++R){var W,ee=E.indexNames[R],Y=E.index(ee).keyPath,Y=typeof Y=="string"?Y:"["+T(Y).join("+")+"]";d[_]&&(W=d[_].idxByName[Y])&&(W.name=ee,delete d[_].idxByName[Y],d[_].idxByName[ee]=W)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&o.WorkerGlobalScope&&o instanceof o.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(c._hasGetAll=!1)}function df(c){return c.split(",").map(function(d,p){var x=d.split(":"),g=(g=x[1])==null?void 0:g.trim(),x=(d=x[0].trim()).replace(/([&*]|\+\+)/g,""),_=/^\[/.test(x)?x.match(/^\[(.*)\]$/)[1].split("+"):x;return Yl(x,_||null,/\&/.test(d),/\*/.test(d),/\+\+/.test(d),l(_),p===0,g)})}Es.prototype._createTableSchema=Xl,Es.prototype._parseIndexSyntax=df,Es.prototype._parseStoresSpec=function(c,d){var p=this;i(c).forEach(function(g){if(c[g]!==null){var x=p._parseIndexSyntax(c[g]),_=x.shift();if(!_)throw new le.Schema("Invalid schema for table "+g+": "+c[g]);if(_.unique=!0,_.multi)throw new le.Schema("Primary key cannot be multiEntry*");x.forEach(function(E){if(E.auto)throw new le.Schema("Only primary key can be marked as autoIncrement (++)");if(!E.keyPath)throw new le.Schema("Index must have a name and cannot be an empty string")}),_=p._createTableSchema(g,_,x),d[g]=_}})},Es.prototype.stores=function(p){var d=this.db,p=(this._cfg.storesSource=this._cfg.storesSource?u(this._cfg.storesSource,p):p,d._versions),g={},x={};return p.forEach(function(_){u(g,_._cfg.storesSource),x=_._cfg.dbschema={},_._parseStoresSpec(g,x)}),d._dbSchema=x,Vl(d,[d._allTables,d,d.Transaction.prototype]),aa(d,[d._allTables,d,d.Transaction.prototype,this._cfg.tables],i(x),x),d._storeNames=i(x),this},Es.prototype.upgrade=function(c){return this._cfg.contentUpgrade=At(this._cfg.contentUpgrade||Oe,c),this};var iS=Es;function Es(){}var go=(()=>{var c,d,p;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(c=new Set,d=new FinalizationRegistry(function(g){c.delete(g)}),{toArray:function(){return Array.from(c).map(function(g){return g.deref()}).filter(function(g){return g!==void 0})},add:function(g){var x=new WeakRef(g._novip);c.add(x),d.register(g._novip,x,x),c.size>g._options.maxConnections&&(x=c.values().next().value,c.delete(x),d.unregister(x))},remove:function(g){if(g)for(var x=c.values(),_=x.next();!_.done;){var E=_.value;if(E.deref()===g._novip)return c.delete(E),void d.unregister(E);_=x.next()}}}):(p=[],{toArray:function(){return p},add:function(g){p.push(g._novip)},remove:function(g){g&&(g=p.indexOf(g._novip))!==-1&&p.splice(g,1)}})})();function Ql(c,d){var p=c._dbNamesDB;return p||(p=c._dbNamesDB=new wr(Bt,{addons:[],indexedDB:c,IDBKeyRange:d})).version(1).stores({dbnames:"name"}),p.table("dbnames")}function Zl(c){return c&&typeof c.databases=="function"}function ec(c){return Zn(function(){return $e.letThrough=!0,c()})}function tc(c){return!("from"in c)}var kn=function(c,d){var p;if(!this)return p=new kn,c&&"d"in c&&u(p,c),p;u(this,arguments.length?{d:1,from:c,to:1<arguments.length?d:c}:{d:0})};function yo(c,d,p){var g=ot(d,p);if(!isNaN(g)){if(0<g)throw RangeError();if(tc(c))return u(c,{from:d,to:p,d:1});var g=c.l,x=c.r;if(ot(p,c.from)<0)return g?yo(g,d,p):c.l={from:d,to:p,d:1,l:null,r:null},hf(c);if(0<ot(d,c.to))return x?yo(x,d,p):c.r={from:d,to:p,d:1,l:null,r:null},hf(c);ot(d,c.from)<0&&(c.from=d,c.l=null,c.d=x?x.d+1:1),0<ot(p,c.to)&&(c.to=p,c.r=null,c.d=c.l?c.l.d+1:1),d=!c.r,g&&!c.l&&bo(c,g),x&&d&&bo(c,x)}}function bo(c,d){tc(d)||function p(g,x){var _=x.from,E=x.l,R=x.r;yo(g,_,x.to),E&&p(g,E),R&&p(g,R)}(c,d)}function ff(c,d){var p=da(d),g=p.next();if(!g.done)for(var x=g.value,_=da(c),E=_.next(x.from),R=E.value;!g.done&&!E.done;){if(ot(R.from,x.to)<=0&&0<=ot(R.to,x.from))return!0;ot(x.from,R.from)<0?x=(g=p.next(R.from)).value:R=(E=_.next(x.from)).value}return!1}function da(c){var d=tc(c)?null:{s:0,n:c};return{next:function(p){for(var g=0<arguments.length;d;)switch(d.s){case 0:if(d.s=1,g)for(;d.n.l&&ot(p,d.n.from)<0;)d={up:d,n:d.n.l,s:1};else for(;d.n.l;)d={up:d,n:d.n.l,s:1};case 1:if(d.s=2,!g||ot(p,d.n.to)<=0)return{value:d.n,done:!1};case 2:if(d.n.r){d.s=3,d={up:d,n:d.n.r,s:0};continue}case 3:d=d.up}return{done:!0}}}}function hf(c){var d,p,g,x=(((x=c.r)==null?void 0:x.d)||0)-(((x=c.l)==null?void 0:x.d)||0),x=1<x?"r":x<-1?"l":"";x&&(d=x=="r"?"l":"r",p=r({},c),g=c[x],c.from=g.from,c.to=g.to,c[x]=g[x],p[x]=g[d],(c[d]=p).d=pf(p)),c.d=pf(c)}function pf(p){var d=p.r,p=p.l;return(d?p?Math.max(d.d,p.d):d.d:p?p.d:0)+1}function fa(c,d){return i(d).forEach(function(p){c[p]?bo(c[p],d[p]):c[p]=function g(x){var _,E,R={};for(_ in x)m(x,_)&&(E=x[_],R[_]=!E||typeof E!="object"||q.has(E.constructor)?E:g(E));return R}(d[p])}),c}function nc(c,d){return c.all||d.all||Object.keys(c).some(function(p){return d[p]&&ff(d[p],c[p])})}b(kn.prototype,((It={add:function(c){return bo(this,c),this},addKey:function(c){return yo(this,c,c),this},addKeys:function(c){var d=this;return c.forEach(function(p){return yo(d,p,p)}),this},hasKey:function(c){var d=da(this).next(c).value;return d&&ot(d.from,c)<=0&&0<=ot(d.to,c)}})[pe]=function(){return da(this)},It));var Kr={},rc={},sc=!1;function ha(c){fa(rc,c),sc||(sc=!0,setTimeout(function(){sc=!1,oc(rc,!(rc={}))},0))}function oc(c,d){d===void 0&&(d=!1);var p=new Set;if(c.all)for(var g=0,x=Object.values(Kr);g<x.length;g++)mf(R=x[g],c,p,d);else for(var _ in c){var E,R,_=/^idb\:\/\/(.*)\/(.*)\//.exec(_);_&&(E=_[1],_=_[2],R=Kr["idb://".concat(E,"/").concat(_)])&&mf(R,c,p,d)}p.forEach(function(W){return W()})}function mf(c,d,p,g){for(var x=[],_=0,E=Object.entries(c.queries.query);_<E.length;_++){for(var R=E[_],W=R[0],ee=[],Y=0,z=R[1];Y<z.length;Y++){var U=z[Y];nc(d,U.obsSet)?U.subscribers.forEach(function(V){return p.add(V)}):g&&ee.push(U)}g&&x.push([W,ee])}if(g)for(var J=0,X=x;J<X.length;J++){var K=X[J],W=K[0],ee=K[1];c.queries.query[W]=ee}}function aS(c){var d=c._state,p=c._deps.indexedDB;if(d.isBeingOpened||c.idbdb)return d.dbReadyPromise.then(function(){return d.dbOpenError?Ut(d.dbOpenError):c});d.isBeingOpened=!0,d.dbOpenError=null,d.openComplete=!1;var g=d.openCanceller,x=Math.round(10*c.verno),_=!1;function E(){if(d.openCanceller!==g)throw new le.DatabaseClosed("db.open() was cancelled")}function R(){return new H(function(U,J){if(E(),!p)throw new le.MissingAPI;var X=c.name,K=d.autoSchema||!x?p.open(X):p.open(X,x);if(!K)throw new le.MissingAPI;K.onerror=nr(J),K.onblocked=De(c._fireOnBlocked),K.onupgradeneeded=De(function(V){var se;Y=K.transaction,d.autoSchema&&!c._options.allowEmptyDB?(K.onerror=fo,Y.abort(),K.result.close(),(se=p.deleteDatabase(X)).onsuccess=se.onerror=De(function(){J(new le.NoSuchDatabase("Database ".concat(X," doesnt exist")))})):(Y.onerror=nr(J),se=V.oldVersion>Math.pow(2,62)?0:V.oldVersion,z=se<1,c.idbdb=K.result,_&&oS(c,Y),sS(c,se/10,Y,J))},J),K.onsuccess=De(function(){Y=null;var V,se,te,ce,be,xe,Pe=c.idbdb=K.result,we=T(Pe.objectStoreNames);if(0<we.length)try{var Ne=Pe.transaction((be=we).length===1?be[0]:be,"readonly");if(d.autoSchema)xe=Pe,ce=Ne,(te=c).verno=xe.version/10,ce=te._dbSchema=ca(0,xe,ce),te._storeNames=T(xe.objectStoreNames,0),aa(te,[te._allTables],i(ce),ce);else if(ua(c,c._dbSchema,Ne),se=Ne,((se=Gl(ca(0,(V=c).idbdb,se),V._dbSchema)).add.length||se.change.some(function(ke){return ke.add.length||ke.change.length}))&&!_)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),Pe.close(),x=Pe.version+1,_=!0,U(R());ia(c,Ne)}catch{}go.add(c),Pe.onversionchange=De(function(ke){d.vcFired=!0,c.on("versionchange").fire(ke)}),Pe.onclose=De(function(){c.close({disableAutoOpen:!1})}),z&&(we=c._deps,be=X,Zl(xe=we.indexedDB)||be===Bt||Ql(xe,we.IDBKeyRange).put({name:be}).catch(Oe)),U()},J)}).catch(function(U){switch(U==null?void 0:U.name){case"UnknownError":if(0<d.PR1398_maxLoop)return d.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),R();break;case"VersionError":if(0<x)return x=0,R()}return H.reject(U)})}var W,ee=d.dbReadyResolve,Y=null,z=!1;return H.race([g,(typeof navigator>"u"?H.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(U){function J(){return indexedDB.databases().finally(U)}W=setInterval(J,100),J()}).finally(function(){return clearInterval(W)}):Promise.resolve()).then(R)]).then(function(){return E(),d.onReadyBeingFired=[],H.resolve(ec(function(){return c.on.ready.fire(c.vip)})).then(function U(){var J;if(0<d.onReadyBeingFired.length)return J=d.onReadyBeingFired.reduce(At,Oe),d.onReadyBeingFired=[],H.resolve(ec(function(){return J(c.vip)})).then(U)})}).finally(function(){d.openCanceller===g&&(d.onReadyBeingFired=null,d.isBeingOpened=!1)}).catch(function(U){d.dbOpenError=U;try{Y&&Y.abort()}catch{}return g===d.openCanceller&&c._close(),Ut(U)}).finally(function(){d.openComplete=!0,ee()}).then(function(){var U;return z&&(U={},c.tables.forEach(function(J){J.schema.indexes.forEach(function(X){X.name&&(U["idb://".concat(c.name,"/").concat(J.name,"/").concat(X.name)]=new kn(-1/0,[[[]]]))}),U["idb://".concat(c.name,"/").concat(J.name,"/")]=U["idb://".concat(c.name,"/").concat(J.name,"/:dels")]=new kn(-1/0,[[[]]])}),Mr(ho).fire(U),oc(U,!0)),c})}function ic(c){function d(_){return c.next(_)}var p=x(d),g=x(function(_){return c.throw(_)});function x(_){return function(R){var R=_(R),W=R.value;return R.done?W:W&&typeof W.then=="function"?W.then(p,g):l(W)?Promise.all(W).then(p,g):p(W)}}return x(d)()}function pa(c,d,p){for(var g=l(c)?c.slice():[c],x=0;x<p;++x)g.push(d);return g}var lS={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(c){return r(r({},c),{table:function(g){var p=c.table(g),g=p.schema,x={},_=[];function E(U,J,X){var te=mo(U),K=x[te]=x[te]||[],V=U==null?0:typeof U=="string"?1:U.length,se=0<J,te=r(r({},X),{name:se?"".concat(te,"(virtual-from:").concat(X.name,")"):X.name,lowLevelIndex:X,isVirtual:se,keyTail:J,keyLength:V,extractKey:Kl(U),unique:!se&&X.unique});return K.push(te),te.isPrimaryKey||_.push(te),1<V&&E(V===2?U[0]:U.slice(0,V-1),J+1,X),K.sort(function(ce,be){return ce.keyTail-be.keyTail}),te}var R=E(g.primaryKey.keyPath,0,g.primaryKey);x[":id"]=[R];for(var W=0,ee=g.indexes;W<ee.length;W++){var Y=ee[W];E(Y.keyPath,0,Y)}function z(U){var J,X=U.query.index;return X.isVirtual?r(r({},U),{query:{index:X.lowLevelIndex,range:(J=U.query.range,X=X.keyTail,{type:J.type===1?2:J.type,lower:pa(J.lower,J.lowerOpen?c.MAX_KEY:c.MIN_KEY,X),lowerOpen:!0,upper:pa(J.upper,J.upperOpen?c.MIN_KEY:c.MAX_KEY,X),upperOpen:!0})}}):U}return r(r({},p),{schema:r(r({},g),{primaryKey:R,indexes:_,getIndexByKeyPath:function(U){return(U=x[mo(U)])&&U[0]}}),count:function(U){return p.count(z(U))},query:function(U){return p.query(z(U))},openCursor:function(U){var J=U.query.index,X=J.keyTail,K=J.keyLength;return J.isVirtual?p.openCursor(z(U)).then(function(se){return se&&V(se)}):p.openCursor(U);function V(se){return Object.create(se,{continue:{value:function(te){te!=null?se.continue(pa(te,U.reverse?c.MAX_KEY:c.MIN_KEY,X)):U.unique?se.continue(se.key.slice(0,K).concat(U.reverse?c.MIN_KEY:c.MAX_KEY,X)):se.continue()}},continuePrimaryKey:{value:function(te,ce){se.continuePrimaryKey(pa(te,c.MAX_KEY,X),ce)}},primaryKey:{get:function(){return se.primaryKey}},key:{get:function(){var te=se.key;return K===1?te[0]:te.slice(0,K)}},value:{get:function(){return se.value}}})}}})}})}};function ac(c,d,p,g){return p=p||{},g=g||"",i(c).forEach(function(x){var _,E,R;m(d,x)?(_=c[x],E=d[x],typeof _=="object"&&typeof E=="object"&&_&&E?(R=Z(_))!==Z(E)?p[g+x]=d[x]:R==="Object"?ac(_,E,p,g+x+"."):_!==E&&(p[g+x]=d[x]):_!==E&&(p[g+x]=d[x])):p[g+x]=void 0}),i(d).forEach(function(x){m(c,x)||(p[g+x]=d[x])}),p}function lc(c,d){return d.type==="delete"?d.keys:d.keys||d.values.map(c.extractKey)}var cS={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(c){return r(r({},c),{table:function(d){var p=c.table(d),g=p.schema.primaryKey;return r(r({},p),{mutate:function(x){var _=$e.trans,E=_.table(d).hook,R=E.deleting,W=E.creating,ee=E.updating;switch(x.type){case"add":if(W.fire===Oe)break;return _._promise("readwrite",function(){return Y(x)},!0);case"put":if(W.fire===Oe&&ee.fire===Oe)break;return _._promise("readwrite",function(){return Y(x)},!0);case"delete":if(R.fire===Oe)break;return _._promise("readwrite",function(){return Y(x)},!0);case"deleteRange":if(R.fire===Oe)break;return _._promise("readwrite",function(){return function z(U,J,X){return p.query({trans:U,values:!1,query:{index:g,range:J},limit:X}).then(function(K){var V=K.result;return Y({type:"delete",keys:V,trans:U}).then(function(se){return 0<se.numFailures?Promise.reject(se.failures[0]):V.length<X?{failures:[],numFailures:0,lastResult:void 0}:z(U,r(r({},J),{lower:V[V.length-1],lowerOpen:!0}),X)})})}(x.trans,x.range,1e4)},!0)}return p.mutate(x);function Y(z){var U,J,X,K=$e.trans,V=z.keys||lc(g,z);if(V)return(z=z.type==="add"||z.type==="put"?r(r({},z),{keys:V}):r({},z)).type!=="delete"&&(z.values=s([],z.values)),z.keys&&(z.keys=s([],z.keys)),U=p,X=V,((J=z).type==="add"?Promise.resolve([]):U.getMany({trans:J.trans,keys:X,cache:"immutable"})).then(function(se){var te=V.map(function(ce,be){var xe,Pe,we,Ne=se[be],ke={onerror:null,onsuccess:null};return z.type==="delete"?R.fire.call(ke,ce,Ne,K):z.type==="add"||Ne===void 0?(xe=W.fire.call(ke,ce,z.values[be],K),ce==null&&xe!=null&&(z.keys[be]=ce=xe,g.outbound||O(z.values[be],g.keyPath,ce))):(xe=ac(Ne,z.values[be]),(Pe=ee.fire.call(ke,xe,ce,Ne,K))&&(we=z.values[be],Object.keys(Pe).forEach(function(Be){m(we,Be)?we[Be]=Pe[Be]:O(we,Be,Pe[Be])}))),ke});return p.mutate(z).then(function(ce){for(var be=ce.failures,xe=ce.results,Pe=ce.numFailures,ce=ce.lastResult,we=0;we<V.length;++we){var Ne=(xe||V)[we],ke=te[we];Ne==null?ke.onerror&&ke.onerror(be[we]):ke.onsuccess&&ke.onsuccess(z.type==="put"&&se[we]?z.values[we]:Ne)}return{failures:be,results:xe,numFailures:Pe,lastResult:ce}}).catch(function(ce){return te.forEach(function(be){return be.onerror&&be.onerror(ce)}),Promise.reject(ce)})});throw new Error("Keys missing")}}})}})}};function gf(c,d,p){try{if(!d||d.keys.length<c.length)return null;for(var g=[],x=0,_=0;x<d.keys.length&&_<c.length;++x)ot(d.keys[x],c[_])===0&&(g.push(p?Q(d.values[x]):d.values[x]),++_);return g.length===c.length?g:null}catch{return null}}var uS={stack:"dbcore",level:-1,create:function(c){return{table:function(d){var p=c.table(d);return r(r({},p),{getMany:function(g){var x;return g.cache?(x=gf(g.keys,g.trans._cache,g.cache==="clone"))?H.resolve(x):p.getMany(g).then(function(_){return g.trans._cache={keys:g.keys,values:g.cache==="clone"?Q(_):_},_}):p.getMany(g)},mutate:function(g){return g.type!=="add"&&(g.trans._cache=null),p.mutate(g)}})}}}};function yf(c,d){return c.trans.mode==="readonly"&&!!c.subscr&&!c.trans.explicit&&c.trans.db._options.cache!=="disabled"&&!d.schema.primaryKey.outbound}function bf(c,d){switch(c){case"query":return d.values&&!d.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var dS={stack:"dbcore",level:0,name:"Observability",create:function(c){var d=c.schema.name,p=new kn(c.MIN_KEY,c.MAX_KEY);return r(r({},c),{transaction:function(g,x,_){if($e.subscr&&x!=="readonly")throw new le.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat($e.querier));return c.transaction(g,x,_)},table:function(g){function x(V){var K,V=V.query;return[K=V.index,new kn((K=(V=V.range).lower)!=null?K:c.MIN_KEY,(K=V.upper)!=null?K:c.MAX_KEY)]}var _=c.table(g),E=_.schema,R=E.primaryKey,W=E.indexes,ee=R.extractKey,Y=R.outbound,z=R.autoIncrement&&W.filter(function(X){return X.compound&&X.keyPath.includes(R.keyPath)}),U=r(r({},_),{mutate:function(X){function K(ve){return ve="idb://".concat(d,"/").concat(g,"/").concat(ve),be[ve]||(be[ve]=new kn)}var V,se,te,ce=X.trans,be=X.mutatedParts||(X.mutatedParts={}),xe=K(""),Pe=K(":dels"),we=X.type,ke=X.type==="deleteRange"?[X.range]:X.type==="delete"?[X.keys]:X.values.length<50?[lc(R,X).filter(function(ve){return ve}),X.values]:[],Ne=ke[0],ke=ke[1],Be=X.trans._cache;return l(Ne)?(xe.addKeys(Ne),(we=we==="delete"||Ne.length===ke.length?gf(Ne,Be):null)||Pe.addKeys(Ne),(we||ke)&&(V=K,se=we,te=ke,E.indexes.forEach(function(ve){var tt=V(ve.name||"");function nt(yt){return yt!=null?ve.extractKey(yt):null}function at(yt){ve.multiEntry&&l(yt)?yt.forEach(function(Bn){return tt.addKey(Bn)}):tt.addKey(yt)}(se||te).forEach(function(yt,Cn){var it=se&&nt(se[Cn]),Cn=te&&nt(te[Cn]);ot(it,Cn)!==0&&(it!=null&&at(it),Cn!=null)&&at(Cn)})}))):Ne?(ke={from:(Be=Ne.lower)!=null?Be:c.MIN_KEY,to:(we=Ne.upper)!=null?we:c.MAX_KEY},Pe.add(ke),xe.add(ke)):(xe.add(p),Pe.add(p),E.indexes.forEach(function(ve){return K(ve.name).add(p)})),_.mutate(X).then(function(ve){return!Ne||X.type!=="add"&&X.type!=="put"||(xe.addKeys(ve.results),z&&z.forEach(function(tt){for(var nt=X.values.map(function(it){return tt.extractKey(it)}),at=tt.keyPath.findIndex(function(it){return it===R.keyPath}),yt=0,Bn=ve.results.length;yt<Bn;++yt)nt[yt][at]=ve.results[yt];K(tt.name).addKeys(nt)})),ce.mutatedParts=fa(ce.mutatedParts||{},be),ve})}}),J={get:function(X){return[R,new kn(X.key)]},getMany:function(X){return[R,new kn().addKeys(X.keys)]},count:x,query:x,openCursor:x};return i(J).forEach(function(X){U[X]=function(K){var V=$e.subscr,se=!!V,te=yf($e,_)&&bf(X,K)?K.obsSet={}:V;if(se){var ce,V=function(ke){return ke="idb://".concat(d,"/").concat(g,"/").concat(ke),te[ke]||(te[ke]=new kn)},be=V(""),xe=V(":dels"),se=J[X](K),Pe=se[0],se=se[1];if((X==="query"&&Pe.isPrimaryKey&&!K.values?xe:V(Pe.name||"")).add(se),!Pe.isPrimaryKey){if(X!=="count")return ce=X==="query"&&Y&&K.values&&_.query(r(r({},K),{values:!1})),_[X].apply(this,arguments).then(function(ke){if(X==="query"){if(Y&&K.values)return ce.then(function(nt){return nt=nt.result,be.addKeys(nt),ke});var Be=K.values?ke.result.map(ee):ke.result;(K.values?be:xe).addKeys(Be)}else{var ve,tt;if(X==="openCursor")return tt=K.values,(ve=ke)&&Object.create(ve,{key:{get:function(){return xe.addKey(ve.primaryKey),ve.key}},primaryKey:{get:function(){var nt=ve.primaryKey;return xe.addKey(nt),nt}},value:{get:function(){return tt&&be.addKey(ve.primaryKey),ve.value}}})}return ke});xe.add(p)}}return _[X].apply(this,arguments)}}),U}})}};function vf(c,d,p){var g;return p.numFailures===0?d:d.type==="deleteRange"||(g=d.keys?d.keys.length:"values"in d&&d.values?d.values.length:1,p.numFailures===g)?null:(g=r({},d),l(g.keys)&&(g.keys=g.keys.filter(function(x,_){return!(_ in p.failures)})),"values"in g&&l(g.values)&&(g.values=g.values.filter(function(x,_){return!(_ in p.failures)})),g)}function cc(c,d){return p=c,((g=d).lower===void 0||(g.lowerOpen?0<ot(p,g.lower):0<=ot(p,g.lower)))&&(p=c,(g=d).upper===void 0||(g.upperOpen?ot(p,g.upper)<0:ot(p,g.upper)<=0));var p,g}function Sf(c,d,p,g,x,_){var E,R,W,ee,Y,z,U;return!p||p.length===0||(E=d.query.index,R=E.multiEntry,W=d.query.range,ee=g.schema.primaryKey.extractKey,Y=E.extractKey,z=(E.lowLevelIndex||E).extractKey,(g=p.reduce(function(J,X){var K=J,V=[];if(X.type==="add"||X.type==="put")for(var se=new kn,te=X.values.length-1;0<=te;--te){var ce,be=X.values[te],xe=ee(be);!se.hasKey(xe)&&(ce=Y(be),R&&l(ce)?ce.some(function(Be){return cc(Be,W)}):cc(ce,W))&&(se.addKey(xe),V.push(be))}switch(X.type){case"add":var Pe=new kn().addKeys(d.values?J.map(function(ve){return ee(ve)}):J),K=J.concat(d.values?V.filter(function(ve){return ve=ee(ve),!Pe.hasKey(ve)&&(Pe.addKey(ve),!0)}):V.map(function(ve){return ee(ve)}).filter(function(ve){return!Pe.hasKey(ve)&&(Pe.addKey(ve),!0)}));break;case"put":var we=new kn().addKeys(X.values.map(function(ve){return ee(ve)}));K=J.filter(function(ve){return!we.hasKey(d.values?ee(ve):ve)}).concat(d.values?V:V.map(function(ve){return ee(ve)}));break;case"delete":var Ne=new kn().addKeys(X.keys);K=J.filter(function(ve){return!Ne.hasKey(d.values?ee(ve):ve)});break;case"deleteRange":var ke=X.range;K=J.filter(function(ve){return!cc(ee(ve),ke)})}return K},c))===c)?c:(U=function(J,X){return ot(z(J),z(X))||ot(ee(J),ee(X))},g.sort(d.direction==="prev"||d.direction==="prevunique"?function(J,X){return U(X,J)}:U),d.limit&&d.limit<1/0&&(g.length>d.limit?g.length=d.limit:c.length===d.limit&&g.length<d.limit&&(x.dirty=!0)),_?Object.freeze(g):g)}function xf(c,d){return ot(c.lower,d.lower)===0&&ot(c.upper,d.upper)===0&&!!c.lowerOpen==!!d.lowerOpen&&!!c.upperOpen==!!d.upperOpen}function fS(c,d){return((p,g,x,_)=>{if(p===void 0)return g!==void 0?-1:0;if(g===void 0)return 1;if((p=ot(p,g))===0){if(x&&_)return 0;if(x)return 1;if(_)return-1}return p})(c.lower,d.lower,c.lowerOpen,d.lowerOpen)<=0&&0<=((p,g,x,_)=>{if(p===void 0)return g!==void 0?1:0;if(g===void 0)return-1;if((p=ot(p,g))===0){if(x&&_)return 0;if(x)return-1;if(_)return 1}return p})(c.upper,d.upper,c.upperOpen,d.upperOpen)}function hS(c,d,p,g){c.subscribers.add(p),g.addEventListener("abort",function(){var x,_;c.subscribers.delete(p),c.subscribers.size===0&&(x=c,_=d,setTimeout(function(){x.subscribers.size===0&&oe(_,x)},3e3))})}var pS={stack:"dbcore",level:0,name:"Cache",create:function(c){var d=c.schema.name;return r(r({},c),{transaction:function(p,g,x){var _,E,R=c.transaction(p,g,x);return g==="readwrite"&&(x=(_=new AbortController).signal,R.addEventListener("abort",(E=function(W){return function(){if(_.abort(),g==="readwrite"){for(var ee=new Set,Y=0,z=p;Y<z.length;Y++){var U=z[Y],J=Kr["idb://".concat(d,"/").concat(U)];if(J){var X=c.table(U),K=J.optimisticOps.filter(function(ve){return ve.trans===R});if(R._explicit&&W&&R.mutatedParts)for(var V=0,se=Object.values(J.queries.query);V<se.length;V++)for(var te=0,ce=(Pe=se[V]).slice();te<ce.length;te++)nc((we=ce[te]).obsSet,R.mutatedParts)&&(oe(Pe,we),we.subscribers.forEach(function(ve){return ee.add(ve)}));else if(0<K.length){J.optimisticOps=J.optimisticOps.filter(function(ve){return ve.trans!==R});for(var be=0,xe=Object.values(J.queries.query);be<xe.length;be++)for(var Pe,we,Ne,ke=0,Be=(Pe=xe[be]).slice();ke<Be.length;ke++)(we=Be[ke]).res!=null&&R.mutatedParts&&(W&&!we.dirty?(Ne=Object.isFrozen(we.res),Ne=Sf(we.res,we.req,K,X,we,Ne),we.dirty?(oe(Pe,we),we.subscribers.forEach(function(ve){return ee.add(ve)})):Ne!==we.res&&(we.res=Ne,we.promise=H.resolve({result:Ne}))):(we.dirty&&oe(Pe,we),we.subscribers.forEach(function(ve){return ee.add(ve)})))}}}ee.forEach(function(ve){return ve()})}}})(!1),{signal:x}),R.addEventListener("error",E(!1),{signal:x}),R.addEventListener("complete",E(!0),{signal:x})),R},table:function(p){var g=c.table(p),x=g.schema.primaryKey;return r(r({},g),{mutate:function(_){var E,R=$e.trans;return!x.outbound&&R.db._options.cache!=="disabled"&&!R.explicit&&R.idbtrans.mode==="readwrite"&&(E=Kr["idb://".concat(d,"/").concat(p)])?(R=g.mutate(_),_.type!=="add"&&_.type!=="put"||!(50<=_.values.length||lc(x,_).some(function(W){return W==null}))?(E.optimisticOps.push(_),_.mutatedParts&&ha(_.mutatedParts),R.then(function(W){0<W.numFailures&&(oe(E.optimisticOps,_),(W=vf(0,_,W))&&E.optimisticOps.push(W),_.mutatedParts)&&ha(_.mutatedParts)}),R.catch(function(){oe(E.optimisticOps,_),_.mutatedParts&&ha(_.mutatedParts)})):R.then(function(W){var ee=vf(0,r(r({},_),{values:_.values.map(function(Y,z){var U;return W.failures[z]?Y:(O(U=(U=x.keyPath)!=null&&U.includes(".")?Q(Y):r({},Y),x.keyPath,W.results[z]),U)})}),W);E.optimisticOps.push(ee),queueMicrotask(function(){return _.mutatedParts&&ha(_.mutatedParts)})}),R):g.mutate(_)},query:function(_){var E,R,W,ee,Y,z,U;return yf($e,g)&&bf("query",_)?(E=((W=$e.trans)==null?void 0:W.db._options.cache)==="immutable",R=(W=$e).requery,W=W.signal,z=((J,X,K,V)=>{var se=Kr["idb://".concat(J,"/").concat(X)];if(!se)return[];if(!(J=se.queries[K]))return[null,!1,se,null];var te=J[(V.query?V.query.index.name:null)||""];if(!te)return[null,!1,se,null];switch(K){case"query":var ce=(be=V.direction)!=null?be:"next",be=te.find(function(xe){var Pe;return xe.req.limit===V.limit&&xe.req.values===V.values&&((Pe=xe.req.direction)!=null?Pe:"next")===ce&&xf(xe.req.query.range,V.query.range)});return be?[be,!0,se,te]:[te.find(function(xe){var Pe;return("limit"in xe.req?xe.req.limit:1/0)>=V.limit&&((Pe=xe.req.direction)!=null?Pe:"next")===ce&&(!V.values||xe.req.values)&&fS(xe.req.query.range,V.query.range)}),!1,se,te];case"count":return be=te.find(function(xe){return xf(xe.req.query.range,V.query.range)}),[be,!!be,se,te]}})(d,p,"query",_),U=z[0],ee=z[2],Y=z[3],U&&z[1]?U.obsSet=_.obsSet:(z=g.query(_).then(function(J){var X=J.result;if(U&&(U.res=X),E){for(var K=0,V=X.length;K<V;++K)Object.freeze(X[K]);Object.freeze(X)}else J.result=Q(X);return J}).catch(function(J){return Y&&U&&oe(Y,U),Promise.reject(J)}),U={obsSet:_.obsSet,promise:z,subscribers:new Set,type:"query",req:_,dirty:!1},Y?Y.push(U):(Y=[U],(ee=ee||(Kr["idb://".concat(d,"/").concat(p)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[_.query.index.name||""]=Y)),hS(U,Y,R,W),U.promise.then(function(J){return{result:Sf(J.result,_,ee==null?void 0:ee.optimisticOps,g,U,E)}})):g.query(_)}})}})}};function ma(c,d){return new Proxy(c,{get:function(p,g,x){return g==="db"?d:Reflect.get(p,g,x)}})}en.prototype.version=function(c){if(isNaN(c)||c<.1)throw new le.Type("Given version is not a positive number");if(c=Math.round(10*c)/10,this.idbdb||this._state.isBeingOpened)throw new le.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,c);var d=this._versions,p=d.filter(function(g){return g._cfg.version===c})[0];return p||(p=new this.Version(c),d.push(p),d.sort(rS),p.stores({}),this._state.autoSchema=!1),p},en.prototype._whenReady=function(c){var d=this;return this.idbdb&&(this._state.openComplete||$e.letThrough||this._vip)?c():new H(function(p,g){if(d._state.openComplete)return g(new le.DatabaseClosed(d._state.dbOpenError));if(!d._state.isBeingOpened){if(!d._state.autoOpen)return void g(new le.DatabaseClosed);d.open().catch(Oe)}d._state.dbReadyPromise.then(p,g)}).then(c)},en.prototype.use=function(x){var d=x.stack,p=x.create,g=x.level,x=x.name,_=(x&&this.unuse({stack:d,name:x}),this._middlewares[d]||(this._middlewares[d]=[]));return _.push({stack:d,create:p,level:g??10,name:x}),_.sort(function(E,R){return E.level-R.level}),this},en.prototype.unuse=function(c){var d=c.stack,p=c.name,g=c.create;return d&&this._middlewares[d]&&(this._middlewares[d]=this._middlewares[d].filter(function(x){return g?x.create!==g:!!p&&x.name!==p})),this},en.prototype.open=function(){var c=this;return cr(Vt,function(){return aS(c)})},en.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var c=this._state;if(go.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}c.isBeingOpened||(c.dbReadyPromise=new H(function(d){c.dbReadyResolve=d}),c.openCanceller=new H(function(d,p){c.cancelOpen=p}))},en.prototype.close=function(d){var d=(d===void 0?{disableAutoOpen:!0}:d).disableAutoOpen,p=this._state;d?(p.isBeingOpened&&p.cancelOpen(new le.DatabaseClosed),this._close(),p.autoOpen=!1,p.dbOpenError=new le.DatabaseClosed):(this._close(),p.autoOpen=this._options.autoOpen||p.isBeingOpened,p.openComplete=!1,p.dbOpenError=null)},en.prototype.delete=function(c){var d=this,p=(c===void 0&&(c={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),g=this._state;return new H(function(x,_){function E(){d.close(c);var R=d._deps.indexedDB.deleteDatabase(d.name);R.onsuccess=De(function(){var W,ee,Y;W=d._deps,ee=d.name,Zl(Y=W.indexedDB)||ee===Bt||Ql(Y,W.IDBKeyRange).delete(ee).catch(Oe),x()}),R.onerror=nr(_),R.onblocked=d._fireOnBlocked}if(p)throw new le.InvalidArgument("Invalid closeOptions argument to db.delete()");g.isBeingOpened?g.dbReadyPromise.then(E):E()})},en.prototype.backendDB=function(){return this.idbdb},en.prototype.isOpen=function(){return this.idbdb!==null},en.prototype.hasBeenClosed=function(){var c=this._state.dbOpenError;return c&&c.name==="DatabaseClosed"},en.prototype.hasFailed=function(){return this._state.dbOpenError!==null},en.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(en.prototype,"tables",{get:function(){var c=this;return i(this._allTables).map(function(d){return c._allTables[d]})},enumerable:!1,configurable:!0}),en.prototype.transaction=function(){var c=(function(d,p,g){var x=arguments.length;if(x<2)throw new le.InvalidArgument("Too few arguments");for(var _=new Array(x-1);--x;)_[x-1]=arguments[x];return g=_.pop(),[d,N(_),g]}).apply(this,arguments);return this._transaction.apply(this,c)},en.prototype._transaction=function(c,d,p){var g,x,_=this,E=$e.trans,R=(E&&E.db===this&&c.indexOf("!")===-1||(E=null),c.indexOf("?")!==-1);c=c.replace("!","").replace("?","");try{if(x=d.map(function(ee){if(ee=ee instanceof _.Table?ee.name:ee,typeof ee!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return ee}),c=="r"||c===vt)g=vt;else{if(c!="rw"&&c!=Mn)throw new le.InvalidArgument("Invalid transaction mode: "+c);g=Mn}if(E){if(E.mode===vt&&g===Mn){if(!R)throw new le.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");E=null}E&&x.forEach(function(ee){if(E&&E.storeNames.indexOf(ee)===-1){if(!R)throw new le.SubTransaction("Table "+ee+" not included in parent transaction.");E=null}}),R&&E&&!E.active&&(E=null)}}catch(ee){return E?E._promise(null,function(Y,z){z(ee)}):Ut(ee)}var W=(function ee(Y,z,U,J,X){return H.resolve().then(function(){var te=$e.transless||$e,K=Y._createTransaction(z,U,Y._dbSchema,J),te=(K.explicit=!0,{trans:K,transless:te});if(J)K.idbtrans=J.idbtrans;else try{K.create(),K.idbtrans._explicit=!0,Y._state.PR1398_maxLoop=3}catch(ce){return ce.name===lt.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,z,U,null,X)})):Ut(ce)}var V,se=fe(X),te=(se&&lr(),H.follow(function(){var ce;(V=X.call(K,K))&&(se?(ce=er.bind(null,null),V.then(ce,ce)):typeof V.next=="function"&&typeof V.throw=="function"&&(V=ic(V)))},te));return(V&&typeof V.then=="function"?H.resolve(V).then(function(ce){return K.active?ce:Ut(new le.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):te.then(function(){return V})).then(function(ce){return J&&K._resolve(),K._completion.then(function(){return ce})}).catch(function(ce){return K._reject(ce),Ut(ce)})})}).bind(null,this,g,x,E,p);return E?E._promise(g,W,"lock"):$e.trans?cr($e.transless,function(){return _._whenReady(W)}):this._whenReady(W)},en.prototype.table=function(c){if(m(this._allTables,c))return this._allTables[c];throw new le.InvalidTable("Table ".concat(c," does not exist"))};var wr=en;function en(c,d){var p,g,x,_,E,R=this,W=(this._middlewares={},this.verno=0,en.dependencies),W=(this._options=d=r({addons:en.addons,autoOpen:!0,indexedDB:W.indexedDB,IDBKeyRange:W.IDBKeyRange,cache:"cloned",maxConnections:1e3},d),this._deps={indexedDB:d.indexedDB,IDBKeyRange:d.IDBKeyRange},d.addons),ee=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:Oe,dbReadyPromise:null,cancelOpen:Oe,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:d.autoOpen}),Y=(ee.dbReadyPromise=new H(function(z){ee.dbReadyResolve=z}),ee.openCanceller=new H(function(z,U){ee.cancelOpen=U}),this._state=ee,this.name=c,this.on=co(this,"populate","blocked","versionchange","close",{ready:[At,Oe]}),this.once=function(z,U){var J=function(){for(var X=[],K=0;K<arguments.length;K++)X[K]=arguments[K];R.on(z).unsubscribe(J),U.apply(R,X)};return R.on(z,J)},this.on.ready.subscribe=M(this.on.ready.subscribe,function(z){return function(U,J){en.vip(function(){var X,K=R._state;K.openComplete?(K.dbOpenError||H.resolve().then(U),J&&z(U)):K.onReadyBeingFired?(K.onReadyBeingFired.push(U),J&&z(U)):(z(U),X=R,J||z(function V(){X.on.ready.unsubscribe(U),X.on.ready.unsubscribe(V)}))})}}),this.Collection=(p=this,uo(Gv.prototype,function(V,K){this.db=p;var J=Dn,X=null;if(K)try{J=K()}catch(te){X=te}var K=V._ctx,V=K.table,se=V.hook.reading.fire;this._ctx={table:V,index:K.index,isPrimKey:!K.index||V.schema.primKey.keyPath&&K.index===V.schema.primKey.name,range:J,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:X,or:K.or,valueMapper:se!==He?se:null}})),this.Table=(g=this,uo(tf.prototype,function(z,U,J){this.db=g,this._tx=J,this.name=z,this.schema=U,this.hook=g._allTables[z]?g._allTables[z].hook:co(null,{creating:[$t,Oe],reading:[dt,He],updating:[rn,Oe],deleting:[Qt,Oe]})})),this.Transaction=(x=this,uo(Zv.prototype,function(z,U,J,X,K){var V=this;z!=="readonly"&&U.forEach(function(se){se=(se=J[se])==null?void 0:se.yProps,se&&(U=U.concat(se.map(function(te){return te.updatesTable})))}),this.db=x,this.mode=z,this.storeNames=U,this.schema=J,this.chromeTransactionDurability=X,this.idbtrans=null,this.on=co(this,"complete","error","abort"),this.parent=K||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new H(function(se,te){V._resolve=se,V._reject=te}),this._completion.then(function(){V.active=!1,V.on.complete.fire()},function(se){var te=V.active;return V.active=!1,V.on.error.fire(se),V.parent?V.parent._reject(se):te&&V.idbtrans&&V.idbtrans.abort(),Ut(se)})})),this.Version=(_=this,uo(iS.prototype,function(z){this.db=_,this._cfg={version:z,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(E=this,uo(af.prototype,function(z,U,J){if(this.db=E,this._ctx={table:z,index:U===":id"?null:U,or:J},this._cmp=this._ascending=ot,this._descending=function(X,K){return ot(K,X)},this._max=function(X,K){return 0<ot(X,K)?X:K},this._min=function(X,K){return ot(X,K)<0?X:K},this._IDBKeyRange=E._deps.IDBKeyRange,!this._IDBKeyRange)throw new le.MissingAPI})),this.on("versionchange",function(z){0<z.newVersion?console.warn("Another connection wants to upgrade database '".concat(R.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(R.name,"'. Closing db now to resume the delete request.")),R.close({disableAutoOpen:!1})}),this.on("blocked",function(z){!z.newVersion||z.newVersion<z.oldVersion?console.warn("Dexie.delete('".concat(R.name,"') was blocked")):console.warn("Upgrade '".concat(R.name,"' blocked by other connection holding version ").concat(z.oldVersion/10))}),this._maxKey=po(d.IDBKeyRange),this._createTransaction=function(z,U,J,X){return new R.Transaction(z,U,J,R._options.chromeTransactionDurability,X)},this._fireOnBlocked=function(z){R.on("blocked").fire(z),go.toArray().filter(function(U){return U.name===R.name&&U!==R&&!U._state.vcFired}).map(function(U){return U.on("versionchange").fire(z)})},this.use(uS),this.use(pS),this.use(dS),this.use(lS),this.use(cS),new Proxy(this,{get:function(z,U,J){var X;return U==="_vip"||(U==="table"?function(K){return ma(R.table(K),Y)}:(X=Reflect.get(z,U,J))instanceof tf?ma(X,Y):U==="tables"?X.map(function(K){return ma(K,Y)}):U==="_createTransaction"?function(){return ma(X.apply(this,arguments),Y)}:X)}}));this.vip=Y,W.forEach(function(z){return z(R)})}var ga,Ms=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",mS=(uc.prototype.subscribe=function(c,d,p){return this._subscribe(c&&typeof c!="function"?c:{next:c,error:d,complete:p})},uc.prototype[Ms]=function(){return this},uc);function uc(c){this._subscribe=c}try{ga={indexedDB:o.indexedDB||o.mozIndexedDB||o.webkitIndexedDB||o.msIndexedDB,IDBKeyRange:o.IDBKeyRange||o.webkitIDBKeyRange}}catch{ga={indexedDB:null,IDBKeyRange:null}}function wf(c){var d,p=!1,g=new mS(function(x){var _=fe(c),E,R=!1,W={},ee={},Y={get closed(){return R},unsubscribe:function(){R||(R=!0,E&&E.abort(),z&&Mr.storagemutated.unsubscribe(X))}},z=(x.start&&x.start(Y),!1),U=function(){return Cs(K)};function J(){return nc(ee,W)}var X=function(V){fa(W,V),J()&&U()},K=function(){var V,se,te;!R&&ga.indexedDB&&(W={},V={},E&&E.abort(),E=new AbortController,te=(ce=>{var be=Tt();try{_&&lr();var xe=Zn(c,ce);return xe=_?xe.finally(er):xe}finally{be&&Ke()}})(se={subscr:V,signal:E.signal,requery:U,querier:c,trans:null}),z||(Mr(ho,X),z=!0),Promise.resolve(te).then(function(ce){p=!0,d=ce,R||se.signal.aborted||(J()||(ee=V,J())?U():(W={},Cs(function(){return!R&&x.next&&x.next(ce)})))},function(ce){p=!1,["DatabaseClosedError","AbortError"].includes(ce==null?void 0:ce.name)||R||Cs(function(){R||x.error&&x.error(ce)})}))};return setTimeout(U,0),Y});return g.hasValue=function(){return p},g.getValue=function(){return d},g}var Vr=wr;function dc(c){var d=jr;try{jr=!0,Mr.storagemutated.fire(c),oc(c,!0)}finally{jr=d}}b(Vr,r(r({},he),{delete:function(c){return new Vr(c,{addons:[]}).delete()},exists:function(c){return new Vr(c,{addons:[]}).open().then(function(d){return d.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(c){try{return d=Vr.dependencies,p=d.indexedDB,d=d.IDBKeyRange,(Zl(p)?Promise.resolve(p.databases()).then(function(g){return g.map(function(x){return x.name}).filter(function(x){return x!==Bt})}):Ql(p,d).toCollection().primaryKeys()).then(c)}catch{return Ut(new le.MissingAPI)}var d,p},defineClass:function(){return function(c){u(this,c)}},ignoreTransaction:function(c){return $e.trans?cr($e.transless||Vt,c):c()},vip:ec,async:function(c){return function(){try{var d=ic(c.apply(this,arguments));return d&&typeof d.then=="function"?d:H.resolve(d)}catch(p){return Ut(p)}}},spawn:function(c,d,p){try{var g=ic(c.apply(p,d||[]));return g&&typeof g.then=="function"?g:H.resolve(g)}catch(x){return Ut(x)}},currentTransaction:{get:function(){return $e.trans||null}},waitFor:function(c,d){return c=H.resolve(typeof c=="function"?Vr.ignoreTransaction(c):c).timeout(d||6e4),$e.trans?$e.trans.waitFor(c):c},Promise:H,debug:{get:function(){return Xt},set:function(c){Kt(c)}},derive:S,extend:u,props:b,override:M,Events:co,on:Mr,liveQuery:wf,extendObservabilitySet:fa,getByKeyPath:A,setByKeyPath:O,delByKeyPath:function(c,d){typeof d=="string"?O(c,d,void 0):"length"in d&&[].map.call(d,function(p){O(c,p,void 0)})},shallowClone:F,deepClone:Q,getObjectDiff:ac,cmp:ot,asap:j,minKey:-1/0,addons:[],connections:{get:go.toArray},errnames:lt,dependencies:ga,cache:Kr,semVer:"4.4.2",version:"4.4.2".split(".").map(function(c){return parseInt(c)}).reduce(function(c,d,p){return c+d/Math.pow(10,2*p)})})),Vr.maxKey=po(Vr.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Mr(ho,function(c){jr||(c=new CustomEvent(Hl,{detail:c}),jr=!0,dispatchEvent(c),jr=!1)}),addEventListener(Hl,function(c){c=c.detail,jr||dc(c)}));var js,jr=!1,_f=function(){};return typeof BroadcastChannel<"u"&&((_f=function(){(js=new BroadcastChannel(Hl)).onmessage=function(c){return c.data&&dc(c.data)}})(),typeof js.unref=="function"&&js.unref(),Mr(ho,function(c){jr||js.postMessage(c)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(c){if(!wr.disableBfCache&&c.persisted){Xt&&console.debug("Dexie: handling persisted pagehide"),js!=null&&js.close();for(var d=0,p=go.toArray();d<p.length;d++)p[d].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(c){!wr.disableBfCache&&c.persisted&&(Xt&&console.debug("Dexie: handling persisted pageshow"),_f(),dc({all:new kn(-1/0,[[]])}))})),H.rejectionMapper=function(c,d){return!c||c instanceof de||c instanceof TypeError||c instanceof SyntaxError||!c.name||!Ae[c.name]?c:(d=new Ae[c.name](d||c.message,c),"stack"in c&&w(d,"stack",{get:function(){return this.inner.stack}}),d)},Kt(Xt),r(wr,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:wr,Entity:xr,PropModification:lo,RangeSet:kn,add:function(c){return new lo({add:c})},cmp:ot,default:wr,liveQuery:wf,mergeRanges:bo,rangesOverlap:ff,remove:function(c){return new lo({remove:c})},replacePrefix:function(c,d){return new lo({replacePrefix:[c,d]})}}),{default:wr}),wr})}(Ya)),Ya.exports}var r_=n_();const fu=bs(r_),Vf=Symbol.for("Dexie"),fl=globalThis[Vf]||(globalThis[Vf]=fu);if(fu.semVer!==fl.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${fu.semVer} and ${fl.semVer}`);const{liveQuery:oI,mergeRanges:iI,rangesOverlap:aI,RangeSet:lI,cmp:cI,Entity:uI,PropModification:dI,replacePrefix:fI,add:hI,remove:pI,DexieYProvider:mI}=fl;class s_ extends fl{constructor(){super("LotusStorage");Et(this,"scrollAnchors");Et(this,"toolSessionCollapses");Et(this,"diffCollapses");Et(this,"inputStates");Et(this,"modelOptionsCaches");this.version(1).stores({scrollAnchors:"sessionId, ts",toolSessionCollapses:"id, sessionId, updatedAt",diffCollapses:"sessionId, updatedAt",inputStates:"sessionId, updatedAt",modelOptionsCaches:"provider, timestamp"})}}const o_=new s_,ls=class ls{constructor(){Et(this,"db",o_)}static getInstance(){return ls.instance||(ls.instance=new ls),ls.instance}async saveScrollAnchor(t,n){try{await this.db.scrollAnchors.put({sessionId:t,anchorId:n.anchorId,offsetPx:n.offsetPx,ts:n.ts,indexHint:n.indexHint,createdAt:n.createdAt})}catch(r){console.warn("[StorageManager] IndexedDB save failed, falling back to localStorage",r);try{localStorage.setItem(`chat_scroll_anchor_v2:${t}`,JSON.stringify(n))}catch{}}}async loadScrollAnchor(t){try{const n=await this.db.scrollAnchors.get(t);return n?{v:1,anchorId:n.anchorId,offsetPx:n.offsetPx,ts:n.ts,indexHint:n.indexHint,createdAt:n.createdAt}:null}catch{try{const n=localStorage.getItem(`chat_scroll_anchor_v2:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&r.v===1&&typeof r.anchorId=="string")return r}catch{}return null}}async clearScrollAnchor(t){try{await this.db.scrollAnchors.delete(t)}catch{}try{localStorage.removeItem(`chat_scroll_anchor_v2:${t}`)}catch{}}async saveToolSessionCollapse(t,n,r){try{await this.db.toolSessionCollapses.put({id:`${t}:${n}`,sessionId:t,toolSessionId:n,isExpanded:r.isExpanded,expandedTools:r.expandedTools,updatedAt:Date.now()})}catch(s){console.warn("[StorageManager] saveToolSessionCollapse failed",s);try{localStorage.setItem(`chat-session-tool-collapse:${t}:${n}`,JSON.stringify(r))}catch{}}}async loadToolSessionCollapse(t,n){try{const r=await this.db.toolSessionCollapses.get(`${t}:${n}`);return r?{isExpanded:r.isExpanded,expandedTools:r.expandedTools}:null}catch{try{const r=localStorage.getItem(`chat-session-tool-collapse:${t}:${n}`);if(!r)return null;const s=JSON.parse(r);if(s&&typeof s.isExpanded=="boolean")return s}catch{}return null}}async saveDiffCollapse(t,n){try{await this.db.diffCollapses.put({sessionId:t,isExpanded:n.isExpanded,expandedFiles:n.expandedFiles,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveDiffCollapse failed",r);try{localStorage.setItem(`chat-session-diff-collapse:${t}`,JSON.stringify(n))}catch{}}}async loadDiffCollapse(t){try{const n=await this.db.diffCollapses.get(t);return n?{isExpanded:n.isExpanded,expandedFiles:n.expandedFiles}:null}catch{try{const n=localStorage.getItem(`chat-session-diff-collapse:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&typeof r.isExpanded=="boolean")return r}catch{}return null}}async saveInputReasoning(t,n){try{const r=await this.db.inputStates.get(t);await this.db.inputStates.put({sessionId:t,reasoningEffort:n,content:r==null?void 0:r.content,referenceText:r==null?void 0:r.referenceText,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveInputReasoning failed",r);try{const s=localStorage.getItem("chat_input_reasoning_by_session_v1"),o=s?JSON.parse(s):{};o[t]=n,localStorage.setItem("chat_input_reasoning_by_session_v1",JSON.stringify(o))}catch{}}}async loadInputReasoning(t){try{const n=await this.db.inputStates.get(t);return(n==null?void 0:n.reasoningEffort)??null}catch{try{const n=localStorage.getItem("chat_input_reasoning_by_session_v1");return n?JSON.parse(n)[t]??null:null}catch{return null}}}async saveLastUsedReasoningEffort(t){try{await this.db.inputStates.put({sessionId:"__last_used__",reasoningEffort:t,updatedAt:Date.now()})}catch{try{localStorage.setItem("chat_input_reasoning_last_used_v1",t)}catch{}}}async loadLastUsedReasoningEffort(){try{const t=await this.db.inputStates.get("__last_used__");return(t==null?void 0:t.reasoningEffort)??null}catch{try{return localStorage.getItem("chat_input_reasoning_last_used_v1")}catch{return null}}}async saveModelOptionsCache(t,n,r){try{await this.db.modelOptionsCaches.put({provider:t,options:n,timestamp:r})}catch(s){console.warn("[StorageManager] saveModelOptionsCache failed",s);try{localStorage.setItem(`chat-model-options-cache-v1:${t}`,JSON.stringify({timestamp:r,options:n}))}catch{}}}async loadModelOptionsCache(t){try{const n=await this.db.modelOptionsCaches.get(t);return n?{options:n.options,timestamp:n.timestamp}:null}catch{try{const n=localStorage.getItem(`chat-model-options-cache-v1:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&Array.isArray(r.options))return{options:r.options,timestamp:r.timestamp}}catch{}return null}}async clearSessionData(t){try{await Promise.all([this.db.scrollAnchors.delete(t),this.db.diffCollapses.delete(t),this.db.toolSessionCollapses.where("sessionId").equals(t).delete(),this.db.inputStates.delete(t)])}catch{}}async cleanupStaleData(t=30){const n=Date.now()-t*24*60*60*1e3;try{await Promise.all([this.db.scrollAnchors.where("ts").below(n).delete(),this.db.toolSessionCollapses.where("updatedAt").below(n).delete(),this.db.diffCollapses.where("updatedAt").below(n).delete(),this.db.inputStates.where("updatedAt").below(n).delete(),this.db.modelOptionsCaches.where("timestamp").below(n).delete()])}catch{}}async getStats(){try{const[t,n,r,s,o]=await Promise.all([this.db.scrollAnchors.count(),this.db.toolSessionCollapses.count(),this.db.diffCollapses.count(),this.db.inputStates.count(),this.db.modelOptionsCaches.count()]);return{scrollAnchors:t,toolSessionCollapses:n,diffCollapses:r,inputStates:s,modelOptionsCaches:o}}catch{return{scrollAnchors:0,toolSessionCollapses:0,diffCollapses:0,inputStates:0,modelOptionsCaches:0}}}};Et(ls,"instance");let Hn=ls;const Wg="chat_input_reasoning_by_session_v1",Ug="chat_input_reasoning_last_used_v1",Gf={content:"",referenceText:null,attachments:[],reasoningEffort:"medium"},dd=e=>e==="low"||e==="medium"||e==="high"||e==="xhigh"||e==="max",qg=()=>{if(typeof window>"u")return{};try{const e=localStorage.getItem(Wg);if(!e)return{};const t=JSON.parse(e),n={};for(const[r,s]of Object.entries(t||{}))dd(s)&&(n[r]=s);return n}catch{return{}}},i_=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Wg,JSON.stringify(e))}catch{}},a_=()=>{if(!(typeof window>"u"))try{const e=localStorage.getItem(Ug);return dd(e)?e:void 0}catch{return}},l_=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Ug,e)}catch{}},Hg=e=>{const t=qg();return dd(t[e])?t[e]:a_()},wo=e=>({...Gf,reasoningEffort:Hg(e)??Gf.reasoningEffort}),c_=(e,t)=>({inputStates:{},setInputContent:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||wo(n),content:r}}})),setReferenceText:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||wo(n),referenceText:r}}})),setAttachments:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||wo(n),attachments:r}}})),setInputReasoningEffort:(n,r)=>{e(i=>({inputStates:{...i.inputStates,[n]:{...i.inputStates[n]||wo(n),reasoningEffort:r}}}));const s=qg();s[n]=r,i_(s),l_(r);const o=Hn.getInstance();o.saveInputReasoning(n,r).catch(()=>{}),o.saveLastUsedReasoningEffort(r).catch(()=>{})},clearInputState:n=>e(r=>{const{[n]:s,...o}=r.inputStates;return{inputStates:o}}),getInputState:n=>t().inputStates[n]||wo(n)}),u_="bamboo_proxy_auth",d_=()=>{try{const e=localStorage.getItem(u_);if(!e)return null;const t=JSON.parse(e);if(!t||typeof t!="object")return null;const n=typeof t.username=="string"?t.username.trim():"",r=typeof t.password=="string"?t.password:"";return n?{username:n,password:r}:null}catch{return null}},Yg={byId:{},runningCount:0},f_=[],In=(e,t)=>t?e.executionBySession[t]??null:null,h_=e=>t=>In(t,e),p_=e=>t=>{const n=In(t,e);return(n==null?void 0:n.phase)??"idle"},Ki=e=>t=>{const n=In(t,e);return jl(n==null?void 0:n.phase)},Xg=e=>t=>{const n=In(t,e);return n?n.phase==="streaming"?!0:n.phase==="running_tools"&&n.stream.hasTokens:!1},m_=e=>t=>{const n=In(t,e);return n?n.phase==="waiting_user_answer"||n.interaction.pendingQuestion!==null||n.backend.hasPendingQuestion===!0:!1},Kg=e=>t=>{const n=In(t,e);return cw(n==null?void 0:n.phase)},Vg=e=>t=>{const n=In(t,e);return uw(n==null?void 0:n.phase)},pr=e=>t=>{const n=In(t,e);return jl(n==null?void 0:n.phase)},g_=e=>t=>{const n=In(t,e);return(n==null?void 0:n.stream.activeToolCalls)??f_},Mi=e=>t=>{const n=In(t,e);return(n==null?void 0:n.interaction.respondMode)??null},Di=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children.byId)??Yg.byId},y_=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children)??Yg},zt=e=>t=>{const n=In(t,e);return(n==null?void 0:n.generation)??0},b_=Object.freeze({state:"idle",activeToolCalls:[],runningChildCount:0,hasQuestion:!1,hasError:!1,errorMessage:null,generation:0}),v_=e=>t=>{var r;const n=In(t,e);return n?{state:n.phase,activeToolCalls:n.stream.activeToolCalls,runningChildCount:n.children.runningCount,hasQuestion:n.interaction.pendingQuestion!==null,hasError:n.error!==null,errorMessage:((r=n.error)==null?void 0:r.message)??null,generation:n.generation}:b_},S_=e=>t=>e.map(n=>({sessionId:n??"",entry:In(t,n)})),x_="auto",w_="required",__=1e4,k_=15e3,C_=Jn.getInstance();let Jf=null,_o=null,Qf=null,ko=null;const Zf=new WeakMap,ae=qr()(Qx(ew((e,t,n)=>({...Nw(e,t),...Uw(e,t),...Xw(e,t),...Vw(),...Jw(e,t),...Qw(e),...e_(e,t),...c_(e,t),...ww(e,t),agentAvailability:null,setAgentAvailability:r=>{e({agentAvailability:r})},checkAgentAvailability:async()=>{if(_o)return _o;_o=(async()=>{const r=await C_.healthCheck();return t().agentAvailability!==r&&e({agentAvailability:r}),r})();try{return await _o}finally{_o=null}},startAgentHealthCheck:()=>{Jf||(t().checkAgentAvailability(),Jf=setInterval(()=>{t().checkAgentAvailability()},__))},refreshSessionsIndex:async()=>{if(ko)return ko;ko=(async()=>{try{await t().refreshChats()}catch(r){console.warn("[AppStore] refreshChats failed:",r)}})();try{return await ko}finally{ko=null}},startSessionsIndexSync:()=>{Qf||(t().refreshSessionsIndex(),Qf=setInterval(()=>{t().refreshSessionsIndex()},k_))}})),{name:"AppStore"})),Gg=e=>{const t=Zf.get(e);if(t)return t;const n=new Map(e.map(r=>[r.id,r]));return Zf.set(e,n),n},_s=e=>t=>e?Gg(t.chats).get(e)??null:null,Jg=e=>e.currentSessionId?Gg(e.chats).get(e.currentSessionId)??null:null,T_=e=>{var t;return((t=Jg(e))==null?void 0:t.messages)??[]},eh=async()=>{const e=d_();if(!e)return!1;try{return await ns.setProxyAuth(e),!0}catch(t){return console.error("Failed to apply stored proxy auth during startup:",t),!1}},P_=async()=>{try{const e=await du.getState().loadConfig();if((typeof(e==null?void 0:e.proxy_auth_mode)=="string"?e.proxy_auth_mode:x_)!==w_)return await eh(),!1;const n=await du.getState().loadProxyAuthStatus({force:!0});return n!=null&&n.configured||await eh()?!1:(ae.setState(s=>({...s,models:[],selectedModel:void 0,modelsError:"Proxy auth mode is set to required. Please configure proxy username/password and apply it.",isLoadingModels:!1})),!0)}catch(e){return console.error("Failed to evaluate startup proxy auth mode:",e),!1}};let th=!1,Qg=!1,xa=null;const fd=async(e=!1)=>{th&&!e||(th=!0,ae.getState().startAgentHealthCheck(),ae.getState().startSessionsIndexSync(),await Wt.getState().loadProviderConfig(),await ae.getState().loadChats(),Qg=!0)},hd=async()=>{if(Qg)return xa||(xa=(async()=>{try{await P_()||await ae.getState().fetchModels(),await ae.getState().loadSystemPrompts()}catch(e){console.error("[AppStore] Deferred bootstrap failed:",e)}})(),xa)},E_=async(e=!1)=>{await fd(e),hd().catch(t=>{console.error("[AppStore] Deferred bootstrap error:",t)})},gI=Object.freeze(Object.defineProperty({__proto__:null,bootstrapCritical:fd,bootstrapDeferred:hd,initializeStore:E_,selectActiveToolCalls:g_,selectCanCancel:Vg,selectChildren:Di,selectChildrenSnapshot:y_,selectCurrentChat:Jg,selectCurrentMessages:T_,selectExecutionByPane:S_,selectExecutionPhase:p_,selectExecutionState:h_,selectGeneration:zt,selectIsAwaitingUser:m_,selectIsBusy:Ki,selectIsInputLocked:Kg,selectIsStreaming:Xg,selectRailModel:v_,selectRespondMode:Mi,selectSessionById:_s,selectShouldObserve:pr,useAppStore:ae},Symbol.toStringTag,{value:"Module"})),wa={THEME:"copilot_ui_theme_v1",LAYOUT:"copilot_ui_layout_v1"};class M_{getTheme(){try{return localStorage.getItem(wa.THEME)}catch(t){return console.error("Failed to get theme:",t),null}}setTheme(t){try{localStorage.setItem(wa.THEME,t)}catch(n){console.error("Failed to set theme:",n)}}getLayout(){try{return localStorage.getItem(wa.LAYOUT)}catch(t){return console.error("Failed to get layout:",t),null}}setLayout(t){try{localStorage.setItem(wa.LAYOUT,t)}catch(n){console.error("Failed to set layout:",n)}}getStorageStats(){let t=0;for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);if(r&&r.startsWith("copilot_ui_")){const s=localStorage.getItem(r);t+=(r.length+((s==null?void 0:s.length)||0))*2}}return{estimatedSize:`${(t/1024).toFixed(1)} KB`}}}const Zg=new M_,pd={collapsed:!1,widthPx:260,collapsedWidthPx:72,minWidthPx:180,maxWidthPx:520},md={widthPx:420,minWidthPx:320,maxWidthPx:680},ey={v:2,sidebar:pd,inspector:md,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:null},splitSizesPx:{}},nh=e=>{const t=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`;return`${e}-${t}`},Kn=e=>e.type==="leaf"?[e.id]:[...Kn(e.children[0]),...Kn(e.children[1])],Ni=e=>e.type==="leaf"?[]:[e.id,...Ni(e.children[0]),...Ni(e.children[1])],j_=(e,t)=>{for(const[n,r]of Object.entries(e))if(r===t)return n;return null},R_=(e,t)=>{const n={},r=new Set;return e.forEach(s=>{const o=t[s]??null;if(!o||r.has(o)){n[s]=null;return}r.add(o),n[s]=o}),n},hu=(e,t,n,r,s)=>e.type==="leaf"?e.id!==t?e:{type:"split",id:r,layout:n,children:[e,{type:"leaf",id:s}]}:{...e,children:[hu(e.children[0],t,n,r,s),hu(e.children[1],t,n,r,s)]},pu=(e,t)=>{if(e.type==="leaf")return e.id===t?{node:null,removed:!0}:{node:e,removed:!1};const n=pu(e.children[0],t);if(n.removed)return n.node?{node:{...e,children:[n.node,e.children[1]]},removed:!0}:{node:e.children[1],removed:!0};const r=pu(e.children[1],t);return r.removed?r.node?{node:{...e,children:[e.children[0],r.node]},removed:!0}:{node:e.children[0],removed:!0}:{node:e,removed:!1}},A_=e=>({v:2,sidebar:e.sidebar,inspector:e.inspector,tree:e.tree,activeLeafId:e.activeLeafId,leafSessionIds:e.leafSessionIds,splitSizesPx:e.splitSizesPx}),I_=e=>{try{Zg.setLayout(JSON.stringify(e))}catch(t){console.warn("[uiLayoutStore] Failed to persist layout:",t)}},dr=e=>{const t=A_(e);return I_(t),t},O_=e=>{var v,w,S,k,P,T,M,C,j,A,O;const t={...pd,...e.sidebar||{}},n={...md},r=((v=e.view)==null?void 0:v.mode)??"single",s=((w=e.view)==null?void 0:w.twoDirection)??"horizontal",o={...((S=e.panes)==null?void 0:S.sessionIds)||{}},i=((k=e.panes)==null?void 0:k.activePaneId)??"lt",l={};if(r==="single")return{v:2,sidebar:t,inspector:n,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:o.lt??null},splitSizesPx:{}};if(r==="two"){const F="split-root",D=s,N=D==="horizontal"?{type:"split",id:F,layout:D,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"rt"}]}:{type:"split",id:F,layout:D,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},q=D==="horizontal"?((P=e.split)==null?void 0:P.twoHorizontalPx)||((T=e.split)==null?void 0:T.columnsPx)||null:((M=e.split)==null?void 0:M.twoVerticalPx)||((C=e.split)==null?void 0:C.leftRowsPx)||null;q&&(l[F]=q);const I=Kn(N);return{v:2,sidebar:t,inspector:n,tree:N,activeLeafId:I.includes(i)?i:I[0],leafSessionIds:Object.fromEntries(I.map(Q=>[Q,o[Q]??null])),splitSizesPx:l}}const u="split-root",f="split-left",h="split-right",m={type:"split",id:u,layout:"horizontal",children:[{type:"split",id:f,layout:"vertical",children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},{type:"split",id:h,layout:"vertical",children:[{type:"leaf",id:"rt"},{type:"leaf",id:"rb"}]}]};(j=e.split)!=null&&j.columnsPx&&(l[u]=e.split.columnsPx),(A=e.split)!=null&&A.leftRowsPx&&(l[f]=e.split.leftRowsPx),(O=e.split)!=null&&O.rightRowsPx&&(l[h]=e.split.rightRowsPx);const b=Kn(m);return{v:2,sidebar:t,inspector:n,tree:m,activeLeafId:b.includes(i)?i:b[0],leafSessionIds:Object.fromEntries(b.map(F=>[F,o[F]??null])),splitSizesPx:l}},$_=e=>{if(!e)return null;try{const t=JSON.parse(e);if(!t||typeof t!="object")return null;if(t.v===2){const n={...pd,...t.sidebar||{}},r={...md,...t.inspector||{}},s=t.tree||ey.tree,o=Kn(s),i=Ni(s),l={};o.forEach(m=>{var b;l[m]=typeof((b=t.leafSessionIds)==null?void 0:b[m])=="string"?t.leafSessionIds[m]:null});const u={};i.forEach(m=>{var v;const b=(v=t.splitSizesPx)==null?void 0:v[m];Array.isArray(b)&&b.length>=2&&(u[m]=[Number(b[0]),Number(b[1])])});const f=typeof t.activeLeafId=="string"&&o.includes(t.activeLeafId)?t.activeLeafId:o[0],h=R_(o,l);return{v:2,sidebar:n,inspector:r,tree:s,activeLeafId:f,leafSessionIds:h,splitSizesPx:u}}return t.v===1?O_(t):null}catch{return null}},L_=()=>$_(Zg.getLayout())??ey,gt=qr(e=>({...L_(),setSidebarCollapsed:t=>{e(n=>n.sidebar.collapsed===t?n:dr({sidebar:{...n.sidebar,collapsed:t},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx}))},setSidebarWidthPx:t=>{e(n=>{const r=Math.max(n.sidebar.minWidthPx,Math.min(n.sidebar.maxWidthPx,t));return n.sidebar.widthPx===r?n:dr({sidebar:{...n.sidebar,widthPx:r},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setInspectorWidthPx:t=>{e(n=>{const r=Math.max(n.inspector.minWidthPx,Math.min(n.inspector.maxWidthPx,t));return n.inspector.widthPx===r?n:dr({sidebar:n.sidebar,inspector:{...n.inspector,widthPx:r},tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setActiveLeafId:t=>{e(n=>n.activeLeafId===t||!Kn(n.tree).includes(t)?n:(Xn("setActiveLeafId",{from:n.activeLeafId,to:t}),dr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:t,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})))},setLeafSessionId:(t,n)=>{e(r=>{const s=Kn(r.tree);if(!s.includes(t)||(r.leafSessionIds[t]??null)===n)return r;const o=[];Xn("setLeafSessionId",{leafId:t,fromSessionId:r.leafSessionIds[t]??null,toSessionId:n,mode:"unique_session_per_leaf"});const i={...r.leafSessionIds,[t]:n};if(n)for(const l of s)l!==t&&i[l]===n&&(i[l]=null,o.push(l));return o.length>0&&Xn("setLeafSessionId dedupe",{sessionId:n,clearedLeafIds:o,assignedLeafId:t}),s.forEach(l=>{l in i||(i[l]=null)}),dr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:i,splitSizesPx:r.splitSizesPx})})},clearSessionFromAllLeaves:t=>{e(n=>{const r={...n.leafSessionIds};let s=!1;for(const[o,i]of Object.entries(r))i===t&&(r[o]=null,s=!0);return s?dr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:r,splitSizesPx:n.splitSizesPx}):n})},splitLeaf:(t,n)=>{e(r=>{const s=Kn(r.tree);if(!s.includes(t)||s.length>=4)return r;const o=nh("split"),i=nh("pane"),l=hu(r.tree,t,n,o,i),u={...r.leafSessionIds,[i]:null};return dr({sidebar:r.sidebar,inspector:r.inspector,tree:l,activeLeafId:i,leafSessionIds:u,splitSizesPx:r.splitSizesPx})})},closeLeaf:t=>{e(n=>{const r=Kn(n.tree);if(!r.includes(t)||r.length<=1)return n;const s=pu(n.tree,t);if(!s.removed||!s.node)return n;const o=s.node,i=Kn(o),l=Ni(o),u={};i.forEach(m=>{u[m]=n.leafSessionIds[m]??null});const f={};l.forEach(m=>{const b=n.splitSizesPx[m];b&&(f[m]=b)});const h=n.activeLeafId===t?i[0]:i.includes(n.activeLeafId)?n.activeLeafId:i[0];return dr({sidebar:n.sidebar,inspector:n.inspector,tree:o,activeLeafId:h,leafSessionIds:u,splitSizesPx:f})})},setSplitSizesPx:(t,n)=>{e(r=>{const s=r.splitSizesPx[t];return s&&s[0]===n[0]&&s[1]===n[1]?r:dr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:r.leafSessionIds,splitSizesPx:{...r.splitSizesPx,[t]:n}})})},pruneSplitSizes:()=>{e(t=>{const n=new Set(Ni(t.tree)),r={};for(const[i,l]of Object.entries(t.splitSizesPx))n.has(i)&&(r[i]=l);const s=Object.keys(t.splitSizesPx),o=Object.keys(r);return s.length===o.length&&s.every(i=>i in r)?t:dr({sidebar:t.sidebar,inspector:t.inspector,tree:t.tree,activeLeafId:t.activeLeafId,leafSessionIds:t.leafSessionIds,splitSizesPx:r})})}})),F_=async(e,t)=>{var i;const n=ae.getState(),r=!n.chats.some(l=>l.id===e);if(t!=null&&t.forceRefreshIndex||r)try{await n.refreshChats()}catch(l){console.warn("[openSession] refreshChats failed:",l)}const s=ae.getState().chats.find(l=>l.id===e);if(!s)return;if(t!=null&&t.forceLoadHistory||r||(((i=s.messages)==null?void 0:i.length)||0)===0&&(s.messageCount||0)>0)try{await n.loadChatHistory(e)}catch(l){console.warn("[openSession] loadChatHistory failed:",l)}if(t!=null&&t.forceSubscribe){n.markForceSubscribe(e);return}((t==null?void 0:t.subscribeIfRunning)??!0)&&s.isRunning&&n.markForceSubscribe(e)},D_=(e,t)=>{const{activeLeafId:n,leafSessionIds:r,setLeafSessionId:s,setActiveLeafId:o}=gt.getState(),i=j_(r,e),l=r[n]??null;Xn("openSession (input)",{activeLeafId:n,activeLeafSessionId:l,sessionId:e,existingLeafId:i}),i?i===n?Xn("openSession (decision)",{action:"noop_already_active",leafId:n,sessionId:e}):(o(i),Xn("openSession (decision)",{action:"focus_existing_leaf",leafId:i,sessionId:e})):(s(n,e),Xn("openSession (decision)",{action:"assign_to_active_leaf",leafId:n,sessionId:e})),ae.getState().selectSession(e),F_(e,t)},ty=e=>e==="child"?"child":"root",N_=e=>({id:e.id,title:e.title,kind:ty(e.kind),pinned:!!e.pinned,parentSessionId:e.parentSessionId||null,rootSessionId:e.rootSessionId||null,createdByScheduleId:e.createdByScheduleId||null,updatedAt:e.updatedAt||null,lastRunStatus:e.lastRunStatus||null,lastRunError:e.lastRunError||null,createdAt:e.createdAt,config:{systemPromptId:e.config.systemPromptId,workspacePath:e.config.workspacePath||null}}),B_=(e,t)=>e.id===t.id&&e.title===t.title&&e.kind===ty(t.kind)&&e.pinned===!!t.pinned&&e.parentSessionId===(t.parentSessionId||null)&&e.rootSessionId===(t.rootSessionId||null)&&e.createdByScheduleId===(t.createdByScheduleId||null)&&e.updatedAt===(t.updatedAt||null)&&e.lastRunStatus===(t.lastRunStatus||null)&&e.lastRunError===(t.lastRunError||null)&&e.createdAt===t.createdAt&&e.config.systemPromptId===t.config.systemPromptId&&e.config.workspacePath===(t.config.workspacePath||null),z_=(()=>{let e=null,t=[],n=new Map;return r=>{if(r===e)return t;const s=r.map(i=>{const l=n.get(i.id);return l&&B_(l,i)?l:N_(i)}),o=s.length===t.length&&s.every((i,l)=>i===t[l]);return e=r,n=new Map(s.map(i=>[i.id,i])),o?t:(t=s,s)}})(),W_=e=>[e.title,e.id,e.kind||"root",e.config.workspacePath||"",e.config.systemPromptId||"",e.updatedAt||"",e.createdByScheduleId||"",e.lastRunStatus||"",e.lastRunError||""].join(" ").toLowerCase(),U_=e=>e.messages.filter(t=>t.role==="user"&&"content"in t).slice(0,3).map(t=>"content"in t?t.content:"").join(" ").toLowerCase(),Sc=(e,t)=>{if(!t)return!0;const n=t.split(/\s+/).filter(Boolean),r=W_(e);if(n.every(l=>r.includes(l)))return!0;const s=ae.getState().chats.find(l=>l.id===e.id);if(!s)return!1;const o=U_(s),i=`${r} ${o}`;return n.every(l=>i.includes(l))},xc=(e,t,n)=>{switch(t){case"pinned":return!!e.pinned;case"running":return n(e.id);case"child":return e.kind==="child";case"all":default:return!0}},q_=()=>{const{t:e}=Ge(),{message:t}=Fn.useApp(),{chats:n,currentSessionId:r,deleteSession:s,deleteSessions:o,pinSession:i,unpinSession:l,updateSession:u,addChat:f,refreshChats:h,lastSelectedPromptId:m,systemPrompts:b}=ae(Pi(ye=>({chats:z_(ye.chats),currentSessionId:ye.currentSessionId,deleteSession:ye.deleteSession,deleteSessions:ye.deleteSessions,pinSession:ye.pinSession,unpinSession:ye.unpinSession,updateSession:ye.updateSession,addChat:ye.addChat,refreshChats:ye.refreshChats,lastSelectedPromptId:ye.lastSelectedPromptId,systemPrompts:ye.systemPrompts}))),v=y.useCallback(ye=>Ki(ye)(ae.getState()),[]),{sidebarCollapsed:w,setSidebarCollapsed:S,clearSessionFromAllLeaves:k}=gt(Pi(ye=>({sidebarCollapsed:ye.sidebar.collapsed,setSidebarCollapsed:ye.setSidebarCollapsed,clearSessionFromAllLeaves:ye.clearSessionFromAllLeaves}))),P=y.useCallback(async(ye,We)=>{var $e,fn;const Te=b.find(B=>B.id===m),qe=(Te==null?void 0:Te.id)||(b.length>0?(($e=b.find(B=>B.id==="general_assistant"))==null?void 0:$e.id)||b[0].id:""),Lt={title:ye||e("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:qe,baseSystemPrompt:(Te==null?void 0:Te.content)||(b.length>0?((fn=b.find(B=>B.id==="general_assistant"))==null?void 0:fn.content)||b[0].content:""),lastUsedEnhancedPrompt:null},...We},$n=await f(Lt),{activeLeafId:Vt}=gt.getState();gt.getState().setLeafSessionId(Vt,$n),gt.getState().setActiveLeafId(Vt)},[f,m,b,e]),[T,M]=y.useState(!1),[C,j]=y.useState(new Set(["Today"])),[A,O]=y.useState(""),[F,D]=y.useState("all"),[N,q]=y.useState({}),I=ae(Pi(ye=>{const We=ye.currentSessionId;if(!We)return null;const Te=ye.chats.find(qe=>qe.id===We);return Te?{id:Te.id,kind:Te.kind,parentSessionId:Te.parentSessionId||null,rootSessionId:Te.rootSessionId||null,pinned:!!Te.pinned,createdAt:Te.createdAt,createdByScheduleId:Te.createdByScheduleId||null}:null})),Q=y.useMemo(()=>I?I.pinned?"Pinned":I.createdByScheduleId?"Scheduled":new Date(I.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):null,[I]),G=y.useMemo(()=>{const ye=new Set(C);return Q&&ye.add(Q),Array.from(ye)},[Q,C]),Z=ye=>{const We=new Set(Array.isArray(ye)?ye:[ye]);j(Te=>{if(Te.size!==We.size)return We;for(const qe of We)if(!Te.has(qe))return We;return Te})},pe=A.trim().toLowerCase(),$=pe.length>0||F!=="all",oe=y.useMemo(()=>[],[]),me=y.useMemo(()=>({}),[]),ne=y.useMemo(()=>({}),[]),fe=y.useMemo(()=>[],[]),he=y.useMemo(()=>new Set,[]),ue=y.useMemo(()=>w?oe:n.filter(ye=>ye.kind!=="child"),[n,w,oe]),de=y.useMemo(()=>{if(w)return me;const ye={};for(const We of n){if(We.kind!=="child")continue;const Te=We.parentSessionId||We.rootSessionId;Te&&(ye[Te]||(ye[Te]=[]),ye[Te].push(We))}return Object.keys(ye).forEach(We=>{ye[We].sort((Te,qe)=>{if(Te.pinned!==qe.pinned)return Te.pinned?-1:1;const Lt=Date.parse(Te.updatedAt||"")||Te.createdAt||0;return(Date.parse(qe.updatedAt||"")||qe.createdAt||0)-Lt})}),ye},[n,w,me]),Ce=y.useMemo(()=>$?ue.filter(ye=>Sc(ye,pe)&&xc(ye,F,v)?!0:(de[ye.id]||[]).some(qe=>Sc(qe,pe)&&xc(qe,F,v))):ue,[de,$,v,pe,ue,F]),ze=y.useMemo(()=>{if(!$)return de;const ye={};for(const We of Ce){const Te=de[We.id]||[];ye[We.id]=Te.filter(qe=>Sc(qe,pe)&&xc(qe,F,v))}return ye},[de,Ce,$,v,pe,F]),Le=y.useMemo(()=>w?ne:gx(Ce),[Ce,w,ne]),lt=y.useMemo(()=>w?fe:yx(Le),[Le,w,fe]),L=y.useCallback(ye=>{i(ye),j(We=>{if(We.has("Pinned"))return We;const Te=new Set(We);return Te.add("Pinned"),Te})},[i]),le=y.useCallback(ye=>{const We=n.find(qe=>qe.id===ye),Te=We?vx({...We}):null;l(ye),Te&&j(qe=>{if(qe.has(Te))return qe;const Lt=new Set(qe);return Lt.add(Te),Lt})},[n,l]),Ae=ye=>{qa.confirm({title:e("chat.sidebar.delete.title"),content:e("chat.sidebar.delete.confirm"),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{k(ye),s(ye)}})},Oe=Ei(ye=>ye.open),He=()=>{Oe("chat")},dt=y.useCallback(ye=>{O(ye)},[]),pt=y.useCallback(ye=>{D(ye)},[]),$t=(ye,We)=>{u(ye,{title:We})},Qt=y.useCallback(async ye=>{try{await Jn.getInstance().regenerateSessionTitle(ye)}catch(We){console.error("Failed to regenerate session title:",We)}},[]),rn=y.useCallback(async ye=>{var Te;if(((Te=N[ye])==null?void 0:Te.status)==="loading")return;q(qe=>({...qe,[ye]:{status:"loading"}}));const We=t.loading(e("chat.actions.runProjectDreamRunning"),0);try{const qe=await Jn.getInstance().runProjectDream(ye);We(),qe.dream_generated?t.success(e("chat.actions.runProjectDreamSuccess")):t.info(qe.message||e("chat.actions.runProjectDreamNoChange"));try{await h()}catch(Lt){console.warn("Failed to refresh chats after project dream run:",Lt)}}catch(qe){We();const Lt=qe instanceof Error&&qe.message?qe.message:e("chat.actions.runProjectDreamFailed");t.error(Lt),console.error("Failed to run project dream:",qe)}finally{q(qe=>({...qe,[ye]:{status:"idle"}}))}},[t,N,h,e]),_n=ye=>{const We=bx(Le,ye),Te=_g(Le,ye);qa.confirm({title:e("chat.sidebar.deleteByDate.title",{date:ye}),content:e("chat.sidebar.deleteByDate.confirm",{count:Te,date:ye}),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{We.forEach(qe=>k(qe)),o(We)}})},At=()=>{M(!0)},Xt=()=>{M(!1)},Kt=async ye=>{try{await P(e("chat.sidebar.newSessionWithPrompt",{prompt:ye.name}),{config:{systemPromptId:ye.id,baseSystemPrompt:ye.content,lastUsedEnhancedPrompt:null}}),M(!1)}catch(We){console.error("Failed to create chat:",We),qa.error({title:e("chat.sidebar.createFailedTitle"),content:We instanceof Error?We.message:e("chat.sidebar.createFailedUnknown")})}},gn=y.useCallback(ye=>D_(ye),[]),[On,En]=y.useState(new Set),It=y.useMemo(()=>{if(w)return he;const ye=new Set;for(const We of Object.values(de))for(const Te of We)if(Te.pinned){const qe=Te.parentSessionId||Te.rootSessionId;qe&&ye.add(qe)}return ye},[de,w,he]),_t=y.useMemo(()=>{var We;if(w)return he;const ye=new Set(On);if((I==null?void 0:I.kind)==="child"){const Te=I.parentSessionId||I.rootSessionId;Te&&ye.add(Te)}for(const Te of It)ye.add(Te);if($)for(const Te of Ce)(((We=ze[Te.id])==null?void 0:We.length)??0)>0&&ye.add(Te.id);return ye},[ze,On,Ce,$,It,I,w,he]),bt=y.useCallback(ye=>{En(We=>{const Te=new Set(We);return Te.has(ye)?Te.delete(ye):Te.add(ye),Te})},[]);return{chats:Ce,childrenByRoot:ze,expandedRootIds:_t,toggleRootExpanded:bt,collapsed:w,currentSessionId:r,expandedKeys:G,groupedChatsByDate:Le,hasActiveFilters:$,handleCollapseChange:Z,handleDelete:Ae,handleDeleteByDate:_n,handleEditTitle:$t,handleGenerateTitle:Qt,handleNewChat:At,handleNewChatSelectorClose:Xt,handleOpenSettings:He,handleRunProjectDream:rn,handleSearchQueryChange:dt,handleStatusFilterChange:pt,handleSystemPromptSelect:Kt,isNewChatSelectorOpen:T,pinSession:L,projectDreamState:N,searchQuery:A,selectSession:gn,setCollapsed:S,sortedDateKeys:lt,statusFilter:F,systemPrompts:b,titleGenerationState:{},unpinSession:le}},H_=y.lazy(()=>Jt(()=>import("./index-rcVNW1p_.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),{useBreakpoint:Y_}=Tl,{useToken:X_}=ut,rh=()=>{const{token:e}=X_(),{t}=Ge(),n=Y_(),{childrenByRoot:r,expandedRootIds:s,toggleRootExpanded:o,collapsed:i,currentSessionId:l,expandedKeys:u,groupedChatsByDate:f,handleCollapseChange:h,handleDelete:m,handleDeleteByDate:b,handleEditTitle:v,handleGenerateTitle:w,handleNewChat:S,handleNewChatSelectorClose:k,handleOpenSettings:P,handleRunProjectDream:T,handleSearchQueryChange:M,handleStatusFilterChange:C,handleSystemPromptSelect:j,hasActiveFilters:A,isNewChatSelectorOpen:O,pinSession:F,projectDreamState:D,searchQuery:N,selectSession:q,setCollapsed:I,sortedDateKeys:Q,statusFilter:G,systemPrompts:Z,titleGenerationState:pe,unpinSession:$}=q_(),{xs:oe,sm:me}=n;return y.useEffect(()=>{typeof oe!="boolean"||typeof me!="boolean"||oe===!1&&me===!1&&I(!0)},[me,oe,I]),i?null:a.jsxs("nav",{"data-tour-id":"sidebar","aria-label":t("chat.sidebar.title","Chat sidebar"),style:{width:"100%",height:"100%",background:"transparent",borderRight:`1px solid ${e.colorBorderSecondary}`,position:"relative",overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:[a.jsx(Ee,{justify:"flex-end",style:{flexShrink:0,padding:"8px 10px 0 10px",minHeight:34},children:a.jsx(je,{type:"text",icon:a.jsx(MS,{}),onClick:()=>I(!0),size:n.xs?"small":"middle",className:"lotus-toolbar-icon","aria-label":t("chat.sidebar.collapse","Collapse sidebar")})}),a.jsxs(Ee,{vertical:!0,gap:6,style:{flexShrink:0,padding:"6px 10px 6px 10px"},children:[a.jsx(Ss,{allowClear:!0,value:N,onChange:ne=>M(ne.target.value),prefix:a.jsx(nu,{style:{color:e.colorTextTertiary}}),placeholder:t("chat.sidebar.searchPlaceholder","Search sessions"),"aria-label":t("chat.sidebar.searchPlaceholder","Search sessions"),size:"small",style:{borderRadius:e.borderRadiusLG}}),a.jsx(jS,{block:!0,size:n.xs?"middle":"small",value:G,onChange:ne=>C(ne),options:[{label:t("chat.sidebar.filters.all","All"),value:"all"},{label:t("chat.sidebar.filters.pinned","Pinned"),value:"pinned"},{label:t("chat.sidebar.filters.running","Running"),value:"running"},{label:t("chat.sidebar.filters.child","Child"),value:"child"}]})]}),a.jsx(Ee,{vertical:!0,role:"list","aria-label":t("chat.sidebar.chatList","Chat list"),style:{flex:1,minHeight:0,overflowY:"auto",padding:"0 10px"},children:a.jsx(Sx,{groupedChatsByDate:f,childrenByRoot:r,expandedRootIds:s,onToggleRootExpanded:o,sortedDateKeys:Q,expandedKeys:u,onCollapseChange:h,currentSessionId:l,onSelectChat:q,onDeleteChat:m,onDeleteByDate:b,onPinChat:F,onUnpinChat:$,onEditTitle:v,onGenerateTitle:w,onRunProjectDream:T,titleGenerationState:pe,projectDreamState:D,token:e,hasActiveFilters:A})}),a.jsx(jx,{collapsed:!1,onNewChat:S,onOpenSettings:P,token:e}),a.jsx(y.Suspense,{fallback:null,children:a.jsx(H_,{open:O,onClose:k,onSelect:j,prompts:Z,title:t("chat.prompt.newSessionSelectorTitle"),showCancelButton:!0})})]})},{Text:sh,Paragraph:K_}=ft;class Bi extends y.Component{constructor(n){super(n);Et(this,"handleReset",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){var o,i;const s=this.props.name??"ErrorBoundary";console.error(`[${s}] Uncaught error:`,n,r),(i=(o=this.props).onError)==null||i.call(o,n,r)}render(){if(!this.state.hasError)return this.props.children;const{fallback:n}=this.props,r=this.state.error;return typeof n=="function"?n(r,this.handleReset):n!==void 0?n:a.jsx(V_,{error:r,onReset:this.handleReset})}}const V_=({error:e,onReset:t})=>{const{token:n}=ut.useToken(),[r,s]=ht.useState(!1),{t:o}=Ge();return a.jsxs("div",{role:"alert",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,padding:n.paddingLG,minHeight:200,textAlign:"center"},children:[a.jsx(dg,{style:{fontSize:36,color:n.colorWarning}}),a.jsx(sh,{strong:!0,style:{fontSize:16},children:o("app.errorBoundary.title")}),a.jsx(sh,{type:"secondary",style:{maxWidth:420},children:o("app.errorBoundary.description")}),a.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[a.jsx(je,{type:"primary",icon:a.jsx(nd,{}),onClick:t,"aria-label":o("app.errorBoundary.tryAgain"),children:o("app.errorBoundary.tryAgain")}),a.jsx(je,{type:"text",size:"small",onClick:()=>s(i=>!i),"aria-expanded":r,"aria-label":o("app.errorBoundary.showDetails"),children:o(r?"app.errorBoundary.hideDetails":"app.errorBoundary.showDetails")})]}),r&&a.jsxs(K_,{code:!0,copyable:!0,style:{maxWidth:560,maxHeight:200,overflow:"auto",fontSize:12,textAlign:"left",marginTop:8,background:n.colorFillTertiary,padding:n.paddingSM,borderRadius:n.borderRadius},children:[e.message,e.stack?`
|
|
10
|
+
If requirements are unclear, ask focused clarifying questions before proceeding.`,isDefault:!0}),dl=()=>[ow()];class iw{async getProviderConfig(){return rt.get("/bamboo/settings/provider")}async saveProviderConfig(t){return rt.post("/bamboo/settings/provider",t)}async reloadConfig(){return rt.post("/bamboo/settings/reload")}async getCopilotAuthStatus(){return rt.post("/bamboo/copilot/auth/status")}async startCopilotAuth(){return rt.post("/bamboo/copilot/auth/start")}async completeCopilotAuth(t){return rt.post("/bamboo/copilot/auth/complete",t)}async authenticateCopilot(){return rt.post("/bamboo/copilot/authenticate")}async logoutCopilot(){return rt.post("/bamboo/copilot/logout")}async fetchProviderModels(t){return(await rt.post("/bamboo/settings/provider/models",{provider:t})).models}async getProviderCatalog(){return rt.get("/bamboo/provider-catalog")}async fetchCatalogModels(t){const n=t?{provider:t}:{};return rt.post("/bamboo/provider-catalog/fetch-models",n)}async getEnvVars(){return rt.get("/bamboo/env-vars")}async upsertEnvVar(t){return rt.post("/bamboo/env-vars",t)}async deleteEnvVar(t){return rt.delete(`/bamboo/env-vars/${encodeURIComponent(t)}`)}async replaceEnvVars(t){return rt.post("/bamboo/env-vars/replace",{entries:t})}}const yc=new iw,Wt=Hr((e,t)=>({currentProvider:"copilot",providerConfig:{provider:"copilot",defaults:void 0,providers:{}},isLoading:!1,error:null,selectedModelRef:null,catalog:null,isCatalogFetching:!1,loadProviderConfig:async()=>{var n,r;e({isLoading:!0,error:null});try{const s=await yc.getProviderConfig();if(!((r=(n=s.defaults)==null?void 0:n.chat)!=null&&r.model)&&s.provider&&s.providers){const o=s.provider,i=s.providers[o],l=i==null?void 0:i.model;l&&(s.defaults={chat:{provider:o,model:l}})}e({providerConfig:s,currentProvider:s.provider,isLoading:!1})}catch(s){console.error("Failed to load provider config:",s),e({error:s instanceof Error?s.message:"Failed to load provider config",isLoading:!1})}},setCurrentProvider:n=>{e({currentProvider:n})},updateProviderConfig:n=>{e(r=>({providerConfig:{...r.providerConfig,...n}}))},getActiveModel:()=>{var s,o,i;return((i=(o=(s=t().providerConfig.defaults)==null?void 0:s.chat)==null?void 0:o.model)==null?void 0:i.trim())||void 0},getFastModel:()=>{var s,o,i;const n=t();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},getVisionModel:()=>{var s,o,i;const n=t();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.vision)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},isProviderModelRefEnabled:()=>!0,setSelectedModelRef:n=>{e({selectedModelRef:n})},loadCatalog:async()=>{try{const n=await yc.getProviderCatalog();e({catalog:n})}catch{}},fetchCatalogModels:async n=>{e({isCatalogFetching:!0});try{await yc.fetchCatalogModels(n),await t().loadCatalog()}catch{}finally{e({isCatalogFetching:!1})}},getFastModelRef:()=>{var o,i,l,u;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.fast;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(l=n.providerConfig.defaults)==null?void 0:l.chat;return(u=s==null?void 0:s.model)!=null&&u.trim()?s:null},getVisionModelRef:()=>{var o,i,l,u;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.vision;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(l=n.providerConfig.defaults)==null?void 0:l.chat;return(u=s==null?void 0:s.model)!=null&&u.trim()?s:null},getModelsForProvider:n=>{const{catalog:r}=t();return r!=null&&r.models?r.models.filter(s=>s.reference.provider===n):[]}})),lI=Object.freeze(Object.defineProperty({__proto__:null,useProviderStore:Wt},Symbol.toStringTag,{value:"Module"}));function Pg(e){return e.type==="session_title_updated"||e.type==="session_pinned_updated"}function au(e,t){switch(e.type){case"session_title_updated":{typeof e.session_id=="string"&&typeof e.title=="string"&&typeof e.title_version=="number"&&t.applyServerTitle(e.session_id,e.title,e.title_version);break}case"session_pinned_updated":{typeof e.session_id=="string"&&typeof e.pinned=="boolean"&&typeof e.updated_at=="string"&&t.applyServerPinned(e.session_id,e.pinned,e.updated_at);break}}}function aw(e,t){const n=t.findIndex(r=>r.id===e.session_id);if(!(n<0))switch(e.type){case"session_title_updated":{if(typeof e.title!="string"||typeof e.title_version!="number")return;const r=e.title_version,s=t[n].titleVersion??0;if(r<=s)return;t[n]={...t[n],title:e.title,titleVersion:r};return}case"session_pinned_updated":{if(typeof e.pinned!="boolean"||typeof e.updated_at!="string")return;const r=new Date(e.updated_at).getTime(),s=new Date(t[n].updatedAt??0).getTime();if(r<s||t[n].pinned===e.pinned)return;t[n]={...t[n],pinned:e.pinned,updatedAt:e.updated_at};return}}}const lw=5e3,Df=80,cw=16,Rl=e=>e!==void 0&&e!=="idle"&&e!=="completed"&&e!=="error"&&e!=="cancelled",uw=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children"||e==="settling",dw=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children",Mg=e=>({sessionId:e,phase:"idle",confidence:"optimistic",activeReasons:[],generation:0,backendRunId:null,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},backend:{isRunning:!1,lastRunStatus:null,lastRunError:null,syncedAt:null,hasPendingQuestion:null,runningChildCount:null},interaction:{pendingQuestion:null,respondMode:null},children:{byId:{},runningCount:0},timestamps:{optimisticAt:null,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},error:null}),yn=(e,t)=>e[t]??Mg(t),jt=(e,t)=>[...e.length>=cw?e.slice(-15):e,t],fw=e=>e.length<=Df?e:e.slice(e.length-Df),hw=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]),Nf=(e,t)=>e?e.question===t.question&&e.allowCustom===t.allowCustom&&e.toolCallId===t.toolCallId&&hw(e.options,t.options):!1,Eg=(e,t,n,r)=>{const s=Nf(e.interaction.pendingQuestion,n)?e.interaction.pendingQuestion:{...n,receivedAt:r},o=e.interaction.respondMode&&e.interaction.respondMode.sessionId===t&&Nf(e.interaction.respondMode,n)?e.interaction.respondMode:{...n,sessionId:t};return e.phase==="waiting_user_answer"&&e.confidence==="live"&&s===e.interaction.pendingQuestion&&o===e.interaction.respondMode?e:{...e,phase:"waiting_user_answer",confidence:"live",interaction:{...e.interaction,pendingQuestion:s,respondMode:o},activeReasons:jt(e.activeReasons,"sse:need_clarification")}},Al=new Set(["idle","completed","error","cancelled","settling","waiting_user_answer"]),_s=e=>Al.has(e.phase)?e:e.children.runningCount>0?e.phase==="running_children"?e:{...e,phase:"running_children"}:e.stream.activeToolCalls.length>0?e.phase==="running_tools"?e:{...e,phase:"running_tools"}:e.stream.hasTokens?e.phase==="streaming"?e:{...e,phase:"streaming"}:e.phase==="running"?e:{...e,phase:"running"},tn=(e,t,n)=>({...e,[t]:n}),pw=(e,t)=>{if(!(t in e))return e;const n={...e};return delete n[t],n},Bf=(e,t,n)=>{const r=e.timestamps.firstTokenAt??n(),s={...e,confidence:"live",stream:{...e.stream,hasTokens:!0,tokenCount:e.stream.tokenCount+1},timestamps:{...e.timestamps,firstTokenAt:r},activeReasons:jt(e.activeReasons,t)};return _s(s)},mw=(e,t)=>{if(e.stream.hasTokens&&e.timestamps.firstTokenAt!==null)return e;const n=e.timestamps.firstTokenAt??t(),r={...e,confidence:"live",stream:{...e.stream,hasTokens:!0,tokenCount:Math.max(1,e.stream.tokenCount)},timestamps:{...e.timestamps,firstTokenAt:n},activeReasons:jt(e.activeReasons,"sse:token")};return _s(r)},gw=(e,t,n,r)=>{const o=e.stream.activeToolCalls.findIndex(l=>l.toolCallId===t)>=0?e.stream.activeToolCalls:[...e.stream.activeToolCalls,{toolCallId:t,toolName:n,startedAt:r}],i={...e,confidence:"live",stream:{...e.stream,activeToolCalls:o},activeReasons:jt(e.activeReasons,"sse:tool_start")};return _s(i)},yw=(e,t,n)=>{const r=e.stream.activeToolCalls.findIndex(d=>d.toolCallId===t);if(r<0)return e;const s=e.stream.activeToolCalls[r],o=s.preview??"",i=fw(o+n),l={...s,preview:i},u=[...e.stream.activeToolCalls];return u[r]=l,{...e,stream:{...e.stream,activeToolCalls:u}}},bw=(e,t,n)=>{const r=e.stream.activeToolCalls.filter(o=>o.toolCallId!==t);if(r.length===e.stream.activeToolCalls.length)return e;const s={...e,stream:{...e.stream,activeToolCalls:r},activeReasons:jt(e.activeReasons,n)};return s.timestamps.terminalAt&&s.children.runningCount===0&&s.stream.activeToolCalls.length===0&&!Al.has(s.phase)?{...s,phase:"settling",timestamps:{...s.timestamps,settlingStartedAt:s.timestamps.settlingStartedAt??s.timestamps.terminalAt}}:_s(s)},jg=(e,t,n)=>{const r=e.children.byId[t],s=r!==void 0&&(r.status===void 0||r.status==="running"),o={...r,...n,status:n.status??(r==null?void 0:r.status)??"running"},l=(o.status===void 0||o.status==="running"?1:0)-(s?1:0),u={...e,confidence:"live",children:{byId:{...e.children.byId,[t]:o},runningCount:Math.max(0,e.children.runningCount+l)},activeReasons:jt(e.activeReasons,"sse:sub_agent_started")};return _s(u)},lu=(e,t,n)=>{const r=e.children.byId[t],s=r===void 0||r.status===void 0||r.status==="running",o={...r,...n};if(r!==void 0&&r.title===o.title&&r.status===o.status&&r.error===o.error&&r.lastHeartbeatAt===o.lastHeartbeatAt&&r.lastEventAt===o.lastEventAt&&r.outputPreview===o.outputPreview&&r.roundCount===o.roundCount)return e;const i=o.status===void 0||o.status==="running";let l=0;r!==void 0&&(l=(i?1:0)-(s?1:0));const u=Math.max(0,e.children.runningCount+l),d={...e,children:{byId:{...e.children.byId,[t]:o},runningCount:u}};return d.timestamps.terminalAt&&d.children.runningCount===0&&d.stream.activeToolCalls.length===0&&!Al.has(d.phase)?{...d,phase:"settling",timestamps:{...d.timestamps,settlingStartedAt:d.timestamps.settlingStartedAt??d.timestamps.terminalAt},activeReasons:jt(d.activeReasons,"sse:sub_agent_completed")}:_s(d)},vw=(e,t)=>{if(!(t in e.children.byId))return e;const n=e.children.byId[t],r=n.status===void 0||n.status==="running",s={...e.children.byId};delete s[t];const o={...e,children:{byId:s,runningCount:Math.max(0,e.children.runningCount-(r?1:0))}};return o.timestamps.terminalAt&&o.children.runningCount===0&&o.stream.activeToolCalls.length===0&&!Al.has(o.phase)?{...o,phase:"settling",timestamps:{...o.timestamps,settlingStartedAt:o.timestamps.settlingStartedAt??o.timestamps.terminalAt}}:_s(o)},zf=(e,t,n)=>{switch(t.type){case"token":return Bf(e,"sse:token",n);case"reasoning_token":return Bf(e,"sse:token",n);case"tool_start":{const r=t.tool_call_id??"",s=t.tool_name??"";return r?gw(e,r,s,n()):e}case"tool_token":{const r=t.tool_call_id??"";return r?yw(e,r,t.content??""):e}case"tool_complete":case"tool_error":{const r=t.tool_call_id??"";return r?bw(e,r,"sse:tool_complete"):e}case"tool_lifecycle":return e;case"sub_agent_started":{const r=t.child_session_id??"";return r?jg(e,r,{title:t.title,status:"running"}):e}case"sub_agent_event":case"sub_agent_heartbeat":{const r=t.child_session_id??"";if(!r)return e;const s={lastEventAt:t.timestamp??n()};return t.type==="sub_agent_heartbeat"&&(s.lastHeartbeatAt=t.timestamp??n()),lu(e,r,s)}case"sub_agent_completed":{const r=t.child_session_id??"";if(!r)return e;const s=typeof t.status=="string"?t.status:"completed";return lu(e,r,{status:s,error:t.error})}case"need_clarification":{const r={question:t.question??"",options:t.options??[],allowCustom:t.allow_custom??!1,toolCallId:t.tool_call_id??null};return Eg(e,e.sessionId,r,n())}case"execution_started":{const r=t.run_id;return r?e.phase!=="starting"?{...e,backendRunId:r,confidence:"live",activeReasons:jt(e.activeReasons,"sse:execution_started")}:{...e,phase:"running",confidence:"live",backendRunId:r,timestamps:{...e.timestamps,confirmedAt:n()},activeReasons:jt(e.activeReasons,"sse:execution_started")}:e}case"complete":{const r=n();return{...e,phase:"settling",timestamps:{...e.timestamps,terminalAt:r,settlingStartedAt:e.timestamps.settlingStartedAt??r},activeReasons:jt(e.activeReasons,"sse:complete")}}case"cancelled":{const r=n();return{...e,phase:"cancelled",confidence:"terminal",timestamps:{...e.timestamps,terminalAt:r,settledAt:r},error:t.message?{message:t.message,source:"user_cancel",occurredAt:r}:null,activeReasons:jt(e.activeReasons,"sse:error")}}case"error":{const r=n();return{...e,phase:"error",confidence:"terminal",timestamps:{...e.timestamps,terminalAt:r},error:{message:t.message??t.error??"Unknown error",source:"sse",occurredAt:r},activeReasons:jt(e.activeReasons,"sse:error")}}case"task_list_updated":case"task_list_item_progress":case"task_list_completed":case"task_evaluation_started":case"task_evaluation_completed":case"token_budget_updated":case"context_compression_status":case"context_summarized":case"context_pressure_notification":return e;default:return e}},Sw=e=>e==="completed"||e==="error"||e==="cancelled",xw=(e,t,n)=>{const r=t.last_run_status,s=Sw(r)?r:null,o=n(),i=t.has_pending_question===void 0?null:t.has_pending_question,l=t.running_child_count===void 0?null:t.running_child_count,u={...e,backend:{...e.backend,isRunning:t.is_running,lastRunStatus:s,lastRunError:t.last_run_error??null,syncedAt:o,hasPendingQuestion:i,runningChildCount:l},backendRunId:e.backendRunId};if(t.is_running)return e.phase==="idle"||e.phase==="completed"||e.phase==="error"||e.phase==="cancelled"?{...u,phase:"running",confidence:"summary",activeReasons:jt(u.activeReasons,"summary:is_running")}:e.phase==="starting"?{...u,phase:"running",confidence:"summary",timestamps:{...u.timestamps,confirmedAt:o},activeReasons:jt(u.activeReasons,"summary:is_running")}:u;if(new Set(["starting","running","streaming","running_tools","running_children","settling"]).has(e.phase)){if(s==="completed")return{...u,phase:"completed",confidence:"terminal",timestamps:{...u.timestamps,settledAt:o},activeReasons:jt(u.activeReasons,"summary:terminal")};if(s==="error")return{...u,phase:"error",confidence:"terminal",timestamps:{...u.timestamps,settledAt:o},error:{message:t.last_run_error??"Backend reported error",source:"summary",occurredAt:o},activeReasons:jt(u.activeReasons,"summary:terminal")};if(s==="cancelled")return{...u,phase:"cancelled",confidence:"terminal",timestamps:{...u.timestamps,settledAt:o},activeReasons:jt(u.activeReasons,"summary:terminal")};if(e.timestamps.optimisticAt){const h=Date.parse(o)-Date.parse(e.timestamps.optimisticAt);if(Number.isFinite(h)&&h<lw)return u}return{...u,phase:"idle",confidence:"summary",activeReasons:jt(u.activeReasons,"summary:terminal")}}return u},ww=()=>new Date().toISOString(),Gt=(e,t,n=ww)=>{switch(t.type){case"ensureSession":return t.sessionId in e?e:tn(e,t.sessionId,Mg(t.sessionId));case"markOptimisticStart":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},interaction:{...r.interaction,respondMode:null},error:null,timestamps:{optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:send")};return tn(e,t.sessionId,o)}case"markRespondStart":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},interaction:{...r.interaction,pendingQuestion:null,respondMode:null},error:null,timestamps:{...r.timestamps,optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:respond")};return tn(e,t.sessionId,o)}case"markRetryStart":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},error:null,timestamps:{...r.timestamps,optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:retry")};return tn(e,t.sessionId,o)}case"markForceSubscribe":{const r=yn(e,t.sessionId);if(Rl(r.phase))return e;const s={...r,phase:"running",confidence:"optimistic",generation:r.generation+1,error:null,activeReasons:jt(r.activeReasons,"optimistic:openSession.forceSubscribe")};return tn(e,t.sessionId,s)}case"markCancel":{const r=yn(e,t.sessionId),s=n(),o={...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,settledAt:s},activeReasons:jt(r.activeReasons,"user:cancel")};return tn(e,t.sessionId,o)}case"markSettleTimeout":{const r=yn(e,t.sessionId);if(r.phase!=="starting"&&r.phase!=="settling")return e;const s={...r,phase:"idle",confidence:"optimistic",timestamps:{...r.timestamps,settledAt:n()},activeReasons:jt(r.activeReasons,"settle:timeout")};return tn(e,t.sessionId,s)}case"markStreamStarted":{const r=yn(e,t.sessionId);if(t.generation!==r.generation)return e;const s=mw(r,n);return s===r?e:tn(e,t.sessionId,s)}case"applyAgentEvent":{const r=yn(e,t.sessionId);if(t.generation!==r.generation)return e;const s=zf(r,t.event,n);return s===r?e:tn(e,t.sessionId,s)}case"applyExecutionStarted":{const r=yn(e,t.sessionId);if(t.generation!==r.generation)return e;if(r.phase!=="starting")return tn(e,t.sessionId,{...r,backendRunId:t.runId,confidence:"live",activeReasons:jt(r.activeReasons,"sse:execution_started")});const s={...r,phase:"running",confidence:"live",backendRunId:t.runId,timestamps:{...r.timestamps,confirmedAt:n()},activeReasons:jt(r.activeReasons,"sse:execution_started")};return tn(e,t.sessionId,s)}case"applySessionSummary":{const r=yn(e,t.sessionId),s=xw(r,t.summary,n);return s===r?e:tn(e,t.sessionId,s)}case"applyOneShotTerminal":{const r=yn(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="idle"&&r.phase!=="starting")return e;const s=n();return t.payload.status==="completed"?tn(e,t.sessionId,{...r,phase:"completed",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")}):t.payload.status==="cancelled"?tn(e,t.sessionId,{...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:t.payload.message?{message:t.payload.message,source:"user_cancel",occurredAt:s}:null,activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")}):tn(e,t.sessionId,{...r,phase:"error",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:{message:t.payload.message??"Unknown error",source:"sse",occurredAt:s},activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")})}case"beginSettle":{const r=yn(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="running"&&r.phase!=="streaming"&&r.phase!=="running_tools"&&r.phase!=="running_children")return e;const s=n();return tn(e,t.sessionId,{...r,phase:"settling",timestamps:{...r.timestamps,settlingStartedAt:s,terminalAt:r.timestamps.terminalAt??s}})}case"applyChildProgress":{const r=yn(e,t.sessionId),o=!(t.childId in r.children.byId)?jg(r,t.childId,t.patch):lu(r,t.childId,t.patch);return o===r?e:tn(e,t.sessionId,o)}case"clearChildProgress":{const r=yn(e,t.sessionId),s=vw(r,t.childId);return s===r?e:tn(e,t.sessionId,s)}case"setPendingQuestion":{const r=yn(e,t.sessionId),s=Eg(r,t.sessionId,t.payload,n());return s===r?e:tn(e,t.sessionId,s)}case"clearPendingQuestion":{const r=yn(e,t.sessionId);if(r.interaction.pendingQuestion===null&&r.interaction.respondMode===null)return e;const s={...r,interaction:{...r.interaction,pendingQuestion:null,respondMode:null}};return tn(e,t.sessionId,s)}case"resetSession":return pw(e,t.sessionId);case"applyRunningSnapshot":{let r=e;for(const s of t.sessions){const o=yn(r,s.sessionId),i=o.generation+1;let l={...o,generation:i,backendRunId:s.runId,phase:"running",confidence:"live",timestamps:{...o.timestamps,confirmedAt:n()},activeReasons:jt(o.activeReasons,"sse:execution_started")};for(const u of s.criticalEvents)u.type!=="execution_started"&&(l=zf(l,u,n));r=tn(r,s.sessionId,l)}return r}default:return e}},ln=()=>new Date().toISOString(),_w=(e,t)=>({executionBySession:{},ensureSession:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"ensureSession",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markOptimisticStart:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markOptimisticStart",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markRespondStart:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"markRespondStart",sessionId:n},ln);return o===s.executionBySession?s:{executionBySession:o}})},markRetryStart:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markRetryStart",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markForceSubscribe:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markForceSubscribe",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markCancel:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markCancel",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markSettleTimeout:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markSettleTimeout",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},markStreamStarted:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"markStreamStarted",sessionId:n,generation:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},applyAgentEvent:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyAgentEvent",sessionId:n,event:r,generation:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},applyExecutionStarted:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyExecutionStarted",sessionId:n,runId:r,generation:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},applySessionSummary:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"applySessionSummary",sessionId:n,summary:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},applyOneShotTerminal:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyOneShotTerminal",sessionId:n,generation:r,payload:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},beginSettle:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"beginSettle",sessionId:n,generation:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},applyChildProgress:(n,r,s)=>{e(o=>{const i=Gt(o.executionBySession,{type:"applyChildProgress",sessionId:n,childId:r,patch:s},ln);return i===o.executionBySession?o:{executionBySession:i}})},clearChildProgress:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"clearChildProgress",sessionId:n,childId:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},setPendingQuestion:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"setPendingQuestion",sessionId:n,payload:r},ln);return o===s.executionBySession?s:{executionBySession:o}})},clearPendingQuestion:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"clearPendingQuestion",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},resetSession:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"resetSession",sessionId:n},ln);return s===r.executionBySession?r:{executionBySession:s}})},applyRunningSnapshot:n=>{const r=t(),s=n.map(o=>{const i=[];for(const l of o.criticalEvents){if(Pg(l)){au(l,r);continue}i.push(l)}return{...o,criticalEvents:i}});e(o=>{const i=Gt(o.executionBySession,{type:"applyRunningSnapshot",sessions:s},ln);return i===o.executionBySession?o:{executionBySession:i}})}}),hr=Jn.getInstance(),Xs=dl()[0],kw=(Xs==null?void 0:Xs.id)||"general_assistant";var tg;const Rg=((tg=Xs==null?void 0:Xs.content)==null?void 0:tg.trim())||"",bc="tool",Wf=e=>{if(typeof e!="string"||!e.trim())return null;const t=Date.parse(e);return Number.isFinite(t)?t:null},Cw=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.provider===t.provider&&e.model===t.model,Tw=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.systemTokens===t.systemTokens&&e.summaryTokens===t.summaryTokens&&e.windowTokens===t.windowTokens&&e.totalTokens===t.totalTokens&&e.maxContextTokens===t.maxContextTokens&&e.budgetLimit===t.budgetLimit&&e.promptCachedToolOutputs===t.promptCachedToolOutputs,Pw=(e,t)=>{if(e===t)return!0;const n=e??[],r=t??[];return n.length!==r.length?!1:n.every((s,o)=>{const i=r[o];return!!i&&s.id===i.id&&s.createdAt===i.createdAt&&s.messagesCompressed===i.messagesCompressed&&s.segmentsRemoved===i.segmentsRemoved})},Mw=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.messageCount===t.messageCount&&e.lastMessageId===t.lastMessageId&&e.hasPendingQuestion===t.hasPendingQuestion&&e.pendingQuestionToolCallId===t.pendingQuestionToolCallId,Ew=(e,t)=>e===t?!0:e.systemPromptId===t.systemPromptId&&e.baseSystemPrompt===t.baseSystemPrompt&&e.lastUsedEnhancedPrompt===t.lastUsedEnhancedPrompt&&e.agentRole===t.agentRole&&e.workspacePath===t.workspacePath&&e.model===t.model&&Cw(e.model_ref,t.model_ref)&&e.reasoningEffort===t.reasoningEffort&&Tw(e.tokenUsage,t.tokenUsage)&&e.truncationOccurred===t.truncationOccurred&&e.segmentsRemoved===t.segmentsRemoved&&Pw(e.compressionEvents,t.compressionEvents)&&Mw(e.syncCursor,t.syncCursor),jw=(e,t)=>e.id===t.id&&e.kind===t.kind&&e.parentSessionId===t.parentSessionId&&e.rootSessionId===t.rootSessionId&&e.spawnDepth===t.spawnDepth&&e.createdByScheduleId===t.createdByScheduleId&&e.isRunning===t.isRunning&&e.updatedAt===t.updatedAt&&e.lastActivityAt===t.lastActivityAt&&e.messageCount===t.messageCount&&e.hasAttachments===t.hasAttachments&&e.lastRunStatus===t.lastRunStatus&&e.lastRunError===t.lastRunError&&e.planMode===t.planMode&&e.subagentType===t.subagentType&&e.title===t.title&&e.titleVersion===t.titleVersion&&e.createdAt===t.createdAt&&e.pinned===t.pinned&&e.messages===t.messages&&Ew(e.config,t.config),Rw=()=>{try{const e=globalThis.crypto;if(e!=null&&e.randomUUID)return e.randomUUID()}catch{}return`id_${Date.now()}_${Math.random().toString(16).slice(2)}`},Aw=()=>{let e=ws().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`},Ag=e=>{const t=e.trim();if(!t.startsWith("bamboo-attachment://"))return null;const n=t.slice(20),[r,s]=n.split("/",2);return!r||!s?null:{sessionId:r,attachmentId:s}},Iw=e=>{const t=Ag(e);return t?`${Aw()}/sessions/${encodeURIComponent(t.sessionId)}/attachments/${encodeURIComponent(t.attachmentId)}`:e},ns=e=>{if(typeof e!="string")return;const t=e.trim();if(t&&t.toLowerCase()!=="unknown")return t},Ow=e=>{const t=(e||"").trim();if(!t)return;const n=t.match(/tool policy blocked ['"`]([^'"`]+)['"`]/i);if(n!=null&&n[1])return ns(n[1]);try{const r=JSON.parse(t);if(typeof(r==null?void 0:r.tool_name)=="string")return ns(r.tool_name)}catch{}},cu=e=>{var r,s;const t=Number.isFinite(Date.parse(e.created_at))?Date.parse(e.created_at):Date.now(),n=e.token_usage?{systemTokens:e.token_usage.system_tokens,summaryTokens:e.token_usage.summary_tokens,windowTokens:e.token_usage.window_tokens,totalTokens:e.token_usage.total_tokens,budgetLimit:e.token_usage.budget_limit,...typeof e.token_usage.max_context_tokens=="number"&&e.token_usage.max_context_tokens>0?{maxContextTokens:e.token_usage.max_context_tokens}:{},...typeof e.token_usage.prompt_cached_tool_outputs=="number"&&e.token_usage.prompt_cached_tool_outputs>0?{promptCachedToolOutputs:e.token_usage.prompt_cached_tool_outputs}:{},...typeof e.token_usage.prompt_cached_tool_tokens_saved=="number"&&e.token_usage.prompt_cached_tool_tokens_saved>0?{promptCachedToolTokensSaved:e.token_usage.prompt_cached_tool_tokens_saved}:{}}:void 0;return{id:e.id,kind:e.kind,parentSessionId:e.parent_session_id??null,rootSessionId:e.root_session_id,spawnDepth:e.spawn_depth,createdByScheduleId:e.created_by_schedule_id??null,isRunning:e.is_running,updatedAt:e.updated_at,lastActivityAt:e.last_activity_at,messageCount:e.message_count,hasAttachments:e.has_attachments,lastRunStatus:e.last_run_status,lastRunError:e.last_run_error,planMode:e.plan_mode??null,subagentType:e.subagent_type??null,title:e.title||xt.t("chat.session.defaultTitle"),titleVersion:e.title_version??0,createdAt:t,pinned:e.pinned,messages:[],config:{systemPromptId:kw,baseSystemPrompt:Rg,lastUsedEnhancedPrompt:null,model:e.model,model_ref:e.model_ref??null,reasoningEffort:e.reasoning_effort??null,tokenUsage:n,truncationOccurred:(r=e.token_usage)==null?void 0:r.truncation_occurred,segmentsRemoved:(s=e.token_usage)==null?void 0:s.segments_removed,compressionEvents:[]}}},$w=(e,t)=>{var o,i,l,u,d;const n=new Map,r=new Map;for(const h of t)h.role==="tool"&&h.tool_call_id&&h.metadata&&r.set(h.tool_call_id,h.metadata);const s=[];for(const h of t){const m=h.created_at||new Date().toISOString();if(h.role==="system"){const b={role:"system",id:h.id,createdAt:m,content:h.content||"",isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(b);continue}if(h.role==="user"){const b=new Map;for(const S of h.image_ocr||[]){const k=(o=S.image_url)==null?void 0:o.trim();if(!k)continue;const T=(S.lines||[]).map(j=>((j==null?void 0:j.text)||"").trim()).filter(Boolean);b.set(k,{ocrText:T.length?T.join(`
|
|
11
|
+
`):void 0,ocrError:S.error?String(S.error):void 0})}const v=[];for(const S of h.content_parts||[]){if(S.type!=="image_url")continue;const k=((i=S.image_url)==null?void 0:i.url)||"";if(!k)continue;const P=Iw(k),T=Ag(k),j=b.get(k.trim());v.push({id:Rw(),url:P,ocrText:j==null?void 0:j.ocrText,ocrError:j==null?void 0:j.ocrError,name:T?`attachment-${T.attachmentId}`:"image",size:0,type:"image/*"})}const w={role:"user",id:h.id,createdAt:m,content:h.content||"",images:v.length?v:void 0,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(w);continue}if(h.role==="assistant"){const b=h.tool_calls||[];if(b.length>0){const S=(h.content||"").trim(),k=typeof h.reasoning=="string"&&h.reasoning.trim().length>0;if(S||k){const C=k?{reasoning:h.reasoning,backendMessageId:h.id}:{backendMessageId:h.id},E={role:"assistant",type:"text",id:`${h.id}_text`,createdAt:m,content:h.content||"",metadata:C,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(E)}for(const C of b)C.id&&n.set(C.id,ns((l=C.function)==null?void 0:l.name)||bc);const P=(u=b[0])==null?void 0:u.id,T=P?r.get(P):void 0,j={role:"assistant",type:"tool_call",id:h.id,createdAt:m,toolCalls:b.map(C=>{var E;return{toolCallId:C.id,toolName:ns((E=C.function)==null?void 0:E.name)||bc,parameters:(()=>{var A,O;try{return JSON.parse(((A=C.function)==null?void 0:A.arguments)||"{}")}catch{return{raw:((O=C.function)==null?void 0:O.arguments)||""}}})(),streamingOutput:""}}),...T?{metadata:T}:{},isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(j);continue}const v=typeof h.reasoning=="string"&&h.reasoning.trim().length>0?{reasoning:h.reasoning}:{},w={role:"assistant",type:"text",id:h.id,createdAt:m,content:h.content||"",metadata:v,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(w);continue}if(h.role==="tool"){const b=((d=h.tool_call_id)==null?void 0:d.trim())||`orphan-tool-call:${h.id}`,v=ns(n.get(b))||ns(h.tool_name)||ns(h.name)||Ow(h.content)||bc,w=h.tool_success===!1||h.tool_success==null&&typeof h.content=="string"&&h.content.trimStart().startsWith("Error:"),S={role:"assistant",type:"tool_result",id:h.id,createdAt:m,toolName:v,toolCallId:b,result:{tool_name:v,result:h.content||"",display_preference:"Default"},isError:w,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(S);continue}}return s},Lw=750,wt={inFlight:null,forcedPromise:null,timer:null,trailingPromise:null,trailingResolve:null,trailingReject:null};function Ig(){const e={resolve:wt.trailingResolve,reject:wt.trailingReject};return wt.trailingPromise=null,wt.trailingResolve=null,wt.trailingReject=null,e}function Uf(e,t){!t.resolve&&!t.reject||e.then(()=>{var n;return(n=t.resolve)==null?void 0:n.call(t)},n=>{var r;return(r=t.reject)==null?void 0:r.call(t,n)})}function Fw(){return wt.timer&&(clearTimeout(wt.timer),wt.timer=null),Ig()}function Dw(e,t){const n=e.map(cu);t(r=>{let s=r.executionBySession;for(const u of e)s=Gt(s,{type:"applySessionSummary",sessionId:u.id,summary:u});const o=new Map(r.chats.map(u=>[u.id,u]));let i=r.chats.length!==n.length;const l=n.map((u,d)=>{var F,N,q,I;const h=o.get(u.id);if(!h)return i=!0,u;const m=Wf(h.updatedAt),b=Wf(u.updatedAt),v=m!==null&&b!==null&&m>b,w=h.config||{},S=u.config||{},k=Object.prototype.hasOwnProperty.call(w,"model"),P=Object.prototype.hasOwnProperty.call(w,"model_ref"),T=Object.prototype.hasOwnProperty.call(w,"reasoningEffort"),j=Math.max(h.messageCount??0,u.messageCount??0),C=u.titleVersion??0,E=h.titleVersion??0,A=C>E?{title:u.title,titleVersion:C}:{title:h.title,titleVersion:E},O={...w,...S,model:v&&k?w.model:S.model,model_ref:v&&P?w.model_ref:S.model_ref,reasoningEffort:v&&T?w.reasoningEffort:S.reasoningEffort,compressionEvents:((F=h.config)==null?void 0:F.compressionEvents)??((N=u.config)==null?void 0:N.compressionEvents),syncCursor:((q=h.config)==null?void 0:q.syncCursor)??((I=u.config)==null?void 0:I.syncCursor)},D={...u,pinned:v?h.pinned:u.pinned,updatedAt:v?h.updatedAt:u.updatedAt,messages:h.messages,messageCount:j,planMode:u.planMode,config:O,...A};return jw(h,D)?(r.chats[d]!==h&&(i=!0),h):(i=!0,D)});return!i&&s===r.executionBySession?r:{...r,chats:i?l:r.chats,executionBySession:s}})}async function Ya(e){return wt.inFlight?(Ee("[ChatSlice]","refreshChats.inFlight.reuse",{}),wt.inFlight):(Ee("[ChatSlice]","refreshChats.start",{}),wt.inFlight=(async()=>{try{const t=await hr.listSessions();Ee("[ChatSlice]","refreshChats.response",{count:t.sessions.length,runningCount:t.sessions.filter(n=>n.is_running).length}),Dw(t.sessions,e)}catch(t){throw console.error("[ChatSlice] Failed to refresh sessions:",t),Ee("[ChatSlice]","refreshChats.error",{error:t}),t}})().finally(()=>{Ee("[ChatSlice]","refreshChats.finally",{}),wt.inFlight=null}),wt.inFlight)}function Nw(e){return wt.forcedPromise?(Ee("[ChatSlice]","refreshChatsNow.forced.reuse",{}),wt.forcedPromise):(Ee("[ChatSlice]","refreshChatsNow.forced.start",{hasInflight:!!wt.inFlight}),wt.forcedPromise=(async()=>{wt.inFlight&&await wt.inFlight,await Ya(e)})().finally(()=>{Ee("[ChatSlice]","refreshChatsNow.forced.finally",{}),wt.forcedPromise=null}),wt.forcedPromise)}const Bw=(e,t)=>({chats:[],currentSessionId:null,latestActiveSessionId:null,addChat:async n=>{var b,v,w,S,k,P,T,j,C,E,A,O;const r=(n.title||xt.t("chat.sidebar.newSession")).trim(),s=((v=(b=n.config)==null?void 0:b.baseSystemPrompt)==null?void 0:v.trim())||"",o=(w=Wt.getState().getActiveModel())==null?void 0:w.trim(),i=((k=(S=n.config)==null?void 0:S.model)==null?void 0:k.trim())||o||void 0,l=((P=n.config)==null?void 0:P.reasoningEffort)??void 0;let u,d;if(Wt.getState().isProviderModelRefEnabled()){const D=(T=n.config)==null?void 0:T.model_ref;if((j=D==null?void 0:D.provider)!=null&&j.trim()&&((C=D==null?void 0:D.model)!=null&&C.trim()))u=D,d=D.provider;else{const F=(E=Wt.getState().providerConfig.defaults)==null?void 0:E.chat;if((A=F==null?void 0:F.provider)!=null&&A.trim()&&((O=F==null?void 0:F.model)!=null&&O.trim()))u=F,d=F.provider;else{const N=Wt.getState().getActiveModel();N&&(u={provider:Wt.getState().currentProvider,model:N},d=Wt.getState().currentProvider)}}}const h=await hr.createSession({title:r,system_prompt:s||void 0,model:i,model_ref:u,provider:d,reasoning_effort:l||void 0}),m={...cu(h.session),title:r,config:{...n.config,model:h.session.model,model_ref:h.session.model_ref??null,reasoningEffort:h.session.reasoning_effort??null,baseSystemPrompt:s||Rg},messages:[]};return e(D=>{const F=[m,...D.chats.filter(N=>N.id!==m.id)];return{...D,chats:F,currentSessionId:m.id,latestActiveSessionId:m.id}}),m.id},selectSession:n=>{const r=t();r.currentSessionId===n&&r.latestActiveSessionId===n||e({currentSessionId:n,latestActiveSessionId:n})},deleteSession:async n=>{try{await hr.deleteSession(n)}catch(r){console.error(`[ChatSlice] Failed to delete backend session ${n}:`,r)}e(r=>{var u;const s=new Set;for(const d of r.chats)d.id===n&&s.add(d.id),d.rootSessionId===n&&s.add(d.id);const o=r.chats.filter(d=>!s.has(d.id)),i=r.currentSessionId&&s.has(r.currentSessionId)?null:r.currentSessionId,l=r.latestActiveSessionId&&s.has(r.latestActiveSessionId)?((u=o[0])==null?void 0:u.id)??null:r.latestActiveSessionId;return{...r,chats:o,currentSessionId:i,latestActiveSessionId:l}})},deleteSessions:async n=>{for(const r of n)await t().deleteSession(r)},updateSession:(n,r)=>{const s=!!r.config&&(Object.prototype.hasOwnProperty.call(r.config,"model")||Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")),o=typeof r.title=="string"||typeof r.pinned=="boolean",l=s||o?new Date().toISOString():void 0;e(d=>{const h=d.chats.map(m=>m.id===n?{...m,...r,...l?{updatedAt:l}:{}}:m);return{...d,chats:h}});const u={};if(typeof r.title=="string"&&(u.title=r.title),typeof r.pinned=="boolean"&&(u.pinned=r.pinned),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model")&&(u.model=r.config.model??null),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model_ref")&&Wt.getState().isProviderModelRefEnabled()&&(u.model_ref=r.config.model_ref??null,r.config.model_ref&&(u.provider=r.config.model_ref.provider)),r.config&&Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")){const d=r.config.reasoningEffort;d?u.reasoning_effort=d:u.clear_reasoning_effort=!0}Object.keys(u).length>0&&hr.patchSession(n,u).catch(d=>{console.warn(`[ChatSlice] Failed to patch session ${n}:`,d)})},persistSessionTitle:async(n,r)=>{var o;const s=(o=t().chats.find(i=>i.id===n))==null?void 0:o.title;e(i=>({...i,chats:i.chats.map(l=>l.id===n?{...l,title:r,updatedAt:new Date().toISOString()}:l)}));try{await hr.patchSession(n,{title:r})}catch(i){throw typeof s=="string"&&e(l=>({...l,chats:l.chats.map(u=>u.id===n?{...u,title:s}:u)})),console.warn(`[ChatSlice] persistSessionTitle failed for ${n}:`,i),i}},applyServerTitle:(n,r,s)=>e(o=>{const i=o.chats.find(l=>l.id===n);return!i||s<=(i.titleVersion??0)?o:{...o,chats:o.chats.map(l=>l.id===n?{...l,title:r,titleVersion:s,updatedAt:new Date().toISOString()}:l)}}),applyServerPinned:(n,r,s)=>e(o=>{const i=o.chats.find(d=>d.id===n);if(!i)return o;const l=Date.parse(s),u=i.updatedAt?Date.parse(i.updatedAt):NaN;return Number.isFinite(l)&&Number.isFinite(u)&&l<u||i.pinned===r?o:{...o,chats:o.chats.map(d=>d.id===n?{...d,pinned:r,updatedAt:s}:d)}}),pinSession:n=>{t().updateSession(n,{pinned:!0})},unpinSession:n=>{t().updateSession(n,{pinned:!1})},setMessages:(n,r)=>{t().chats.find(o=>o.id===n)&&t().updateSession(n,{messages:r})},addMessage:async(n,r)=>{const s=t().chats.find(i=>i.id===n);if(!s)return;const o=[...s.messages,r];t().updateSession(n,{messages:o})},updateMessage:(n,r,s)=>{const o=t().chats.find(l=>l.id===n);if(!o)return;const i=o.messages.map(l=>{if(l.id!==r)return l;const u={...l};return Object.keys(s).forEach(d=>{Object.prototype.hasOwnProperty.call(u,d)&&(u[d]=s[d])}),u});t().updateSession(n,{messages:i})},deleteMessage:async(n,r)=>{const s=t().chats.find(o=>o.id===n);if(!s)return{success:!1,sessionId:n,messageId:r,reason:"session_not_found"};if(!s.messages.some(o=>o.id===r))return{success:!1,sessionId:n,messageId:r,reason:"message_not_found"};try{await hr.deleteSessionMessage(n,r)}catch(o){return console.warn(`[ChatSlice] Failed to delete message ${r} from session ${n}:`,o),o instanceof Fi?o.status===404?{success:!1,sessionId:n,messageId:r,reason:"backend_not_found",statusCode:o.status,errorMessage:o.message}:o.status===409?{success:!1,sessionId:n,messageId:r,reason:"session_running",statusCode:o.status,errorMessage:o.message}:{success:!1,sessionId:n,messageId:r,reason:"backend_error",statusCode:o.status,errorMessage:o.message}:{success:!1,sessionId:n,messageId:r,reason:"backend_error",errorMessage:o instanceof Error?o.message:void 0}}return e(o=>({...o,chats:o.chats.map(i=>i.id===n?{...i,messages:i.messages.filter(l=>l.id!==r)}:i)})),{success:!0,sessionId:n,messageId:r}},refreshChats:async()=>wt.inFlight?wt.inFlight:wt.timer?(wt.trailingPromise||(wt.trailingPromise=new Promise((n,r)=>{wt.trailingResolve=n,wt.trailingReject=r})),wt.trailingPromise):(wt.timer=setTimeout(()=>{if(wt.timer=null,wt.trailingPromise){const n=Ig();Uf(Ya(e),n)}},Lw),Ya(e)),refreshChatsNow:async()=>{const n=Fw();Ee("[ChatSlice]","refreshChatsNow.start",{hadTrailingCallbacks:!!n,hasInflight:!!wt.inFlight});const r=wt.inFlight?Nw(e):Ya(e);return Uf(r,n),r},loadChats:async()=>{var i,l,u;Ee("[ChatSlice]","loadChats.start",{});let n=await hr.listSessions();if(!n.sessions||n.sessions.length===0){const d=(i=Wt.getState().getActiveModel())==null?void 0:i.trim(),h=(l=Wt.getState().providerConfig.defaults)==null?void 0:l.chat;Ee("[ChatSlice]","loadChats.createInitialSession",{defaultModel:d??null,defaultModelRef:h??null}),n={sessions:[(await hr.createSession({title:xt.t("chat.sidebar.newSession"),model:d,model_ref:h,provider:h==null?void 0:h.provider})).session]}}const r=n.sessions.map(cu),s=((u=r[0])==null?void 0:u.id)??null;Ee("[ChatSlice]","loadChats.listResolved",{count:n.sessions.length,currentSessionId:s});let o=t().executionBySession;for(const d of n.sessions)o=Gt(o,{type:"applySessionSummary",sessionId:d.id,summary:d});try{const d=await hr.getRunningSessions();if(Ee("[ChatSlice]","loadChats.runningSnapshot",{count:d.sessions.length}),d.sessions.length>0){const h=d.sessions.map(m=>{const b=[];for(const v of m.last_critical_events){if(Pg(v)){aw(v,r);continue}b.push(v)}return{sessionId:m.session_id,runId:m.run_id,criticalEvents:b}});o=Gt(o,{type:"applyRunningSnapshot",sessions:h},()=>new Date().toISOString())}}catch(d){Ee("[ChatSlice]","loadChats.runningSnapshot.error",{error:d})}e({chats:r,latestActiveSessionId:s,currentSessionId:s,executionBySession:o}),Ee("[ChatSlice]","loadChats.applied",{currentSessionId:s,chatCount:r.length,executionSessionCount:Object.keys(o||{}).length}),s&&(Ee("[ChatSlice]","loadChats.loadInitialHistory",{currentSessionId:s}),await t().loadChatHistory(s))},loadChatHistory:async(n,r)=>{var l,u,d,h,m,b,v,w,S,k,P,T,j,C,E,A;const s=(r==null?void 0:r.mode)??"replace",o=Math.max(0,(r==null?void 0:r.retries)??0),i=Math.max(0,(r==null?void 0:r.retryDelayMs)??0);Ee("[ChatSlice]","loadChatHistory.start",{sessionId:n,mode:s,retries:o,retryDelayMs:i,waitForAssistant:(r==null?void 0:r.waitForAssistant)??!1});for(let O=0;O<=o;O+=1)try{const D=t().chats.find(I=>I.id===n);if(!D){Ee("[ChatSlice]","loadChatHistory.skipMissingChat",{sessionId:n,attempt:O});return}const F=await hr.getHistory(n);Ee("[ChatSlice]","loadChatHistory.response",{sessionId:n,attempt:O,historyMessageCount:F.messages.length,localMessageCount:D.messages.length,localStoredMessageCount:D.messageCount??null,lastMessageId:((l=F.messages[F.messages.length-1])==null?void 0:l.id)??null,lastRole:((u=F.messages[F.messages.length-1])==null?void 0:u.role)??null});const N=(d=F.messages[F.messages.length-1])==null?void 0:d.role;if(r!=null&&r.waitForAssistant&&N==="user"&&O<o){const I=i>0?i*(O+1):200*(O+1);Ee("[ChatSlice]","loadChatHistory.waitForAssistant.retry",{sessionId:n,attempt:O,delay:I}),await new Promise(Q=>setTimeout(Q,I));continue}const q=$w(n,F.messages);if(s==="monotonic"){const I=D.messages||[],Q=I.length,G=q.length,Z=(h=q[q.length-1])==null?void 0:h.role,pe=(m=I[I.length-1])==null?void 0:m.role,$=I[I.length-1],oe=q[q.length-1],me=$==null?void 0:$.id,ne=oe==null?void 0:oe.id;let he=!1;if(G>Q?he=!0:G===Q&&(he=pe==="user"&&Z!=="user"||typeof me=="string"&&typeof ne=="string"&&me!==ne),Ee("[ChatSlice]","loadChatHistory.monotonicDecision",{sessionId:n,attempt:O,prevLen:Q,nextLen:G,prevLastRole:pe??null,nextLastRole:Z??null,prevLastId:me??null,nextLastId:ne??null,shouldReplace:he}),!he){t().updateSession(n,{messageCount:Math.max(D.messageCount??0,F.messages.length)}),Ee("[ChatSlice]","loadChatHistory.monotonicSkip",{sessionId:n,attempt:O,localMessageCount:D.messages.length,serverMessageCount:F.messages.length});return}}t().updateSession(n,{messages:q,messageCount:F.messages.length,config:{...D.config||{},compressionEvents:(F.compression_events||[]).map(I=>({id:I.id,createdAt:I.created_at,messagesCompressed:I.messages_compressed,segmentsRemoved:I.segments_removed})),syncCursor:{messageCount:F.messages.length,lastMessageId:((b=F.messages[F.messages.length-1])==null?void 0:b.id)??null,hasPendingQuestion:((S=(w=(v=t().executionBySession)==null?void 0:v[n])==null?void 0:w.interaction.respondMode)==null?void 0:S.sessionId)===n,pendingQuestionToolCallId:((T=(P=(k=t().executionBySession)==null?void 0:k[n])==null?void 0:P.interaction.respondMode)==null?void 0:T.sessionId)===n?((E=(C=(j=t().executionBySession)==null?void 0:j[n])==null?void 0:C.interaction.respondMode)==null?void 0:E.toolCallId)??null:null}}}),Ee("[ChatSlice]","loadChatHistory.applied",{sessionId:n,attempt:O,mode:s,messageCount:F.messages.length,lastMessageId:((A=F.messages[F.messages.length-1])==null?void 0:A.id)??null});return}catch(D){if(O>=o){console.warn(`[ChatSlice] Failed to load history for ${n}:`,D),Ee("[ChatSlice]","loadChatHistory.error.final",{sessionId:n,attempt:O,retries:o,error:D});return}const F=i>0?i*(O+1):200*(O+1);Ee("[ChatSlice]","loadChatHistory.error.retry",{sessionId:n,attempt:O,delay:F,error:D}),await new Promise(N=>setTimeout(N,F))}}});class uu extends Error{constructor(n="Proxy authentication required"){super(n);Mt(this,"code","proxy_auth_required");this.name="ProxyAuthRequiredError"}}const as=class as{constructor(){}static getInstance(){return as.instance||(as.instance=new as),as.instance}resolveOpenAICompatBaseUrl(){const t=ws().trim().replace(/\/+$/,"");return t.endsWith("/openai/v1")?t:`${t.endsWith("/v1")?t.slice(0,-3):t}/openai/v1`}async getModels(){var t,n;try{return(await new cd({baseUrl:this.resolveOpenAICompatBaseUrl()}).get("models")).data.map(o=>o.id)}catch(r){if(console.error("Failed to fetch models from HTTP API:",r),r instanceof Fi){if(r.status===428)throw new uu(r.message);let s;if(r.body)try{s=JSON.parse(r.body)}catch{}if(s&&typeof s=="object"&&"error"in s&&((t=s.error)==null?void 0:t.code)==="proxy_auth_required")throw new uu(((n=s.error)==null?void 0:n.message)||r.message)}throw r}}};Mt(as,"instance");let du=as;const Og=du.getInstance(),zw=async e=>{var t;if(typeof navigator>"u"||!((t=navigator.clipboard)!=null&&t.writeText))throw new Error("navigator.clipboard.writeText is unavailable");await navigator.clipboard.writeText(e)},Ww=e=>{if(typeof document>"u")throw new Error("document is unavailable");const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();const n=document.execCommand("copy");if(document.body.removeChild(t),!n)throw new Error("document.execCommand('copy') returned false")},Pr=async e=>{try{await zw(e);return}catch(t){try{Ww(e);return}catch(n){const r=t instanceof Error?t.message:String(t),s=n instanceof Error?n.message:String(n);throw new Error(`Clipboard copy failed: navigator(${r}); fallback(${s})`)}}};class Uw{async copyToClipboard(t){await Pr(t)}async getBambooConfig(){try{return await rt.get("bamboo/config")}catch(t){return console.error("Failed to fetch Bamboo config:",t),{}}}async getBambooTools(){try{return await rt.get("bamboo/tools")}catch(t){return console.error("Failed to fetch Bamboo tools:",t),{tools:[]}}}async getModelLimitDefaults(){try{return await rt.get("bamboo/model-limits/defaults")}catch(t){return console.error("Failed to fetch model limit defaults:",t),{model_limits:[]}}}async setBambooConfig(t){return rt.post("bamboo/config",t)}async validateBambooConfigPatch(t){return rt.post("bamboo/config/validate",t)}async setProxyAuth(t){return rt.post("bamboo/proxy-auth",t)}async getProxyAuthStatus(){try{return await rt.get("bamboo/proxy-auth/status")}catch(t){return console.error("Failed to fetch proxy auth status:",t),{configured:!1,username:null}}}async clearProxyAuth(){return rt.post("bamboo/proxy-auth",{username:"",password:""})}async resetBambooConfig(){return rt.post("bamboo/config/reset",{})}async saveWorkflow(t,n){return rt.post("bamboo/workflows",{name:t,content:n})}async deleteWorkflow(t){return rt.delete(`bamboo/workflows/${encodeURIComponent(t)}`)}async getKeywordMaskingConfig(){try{return await rt.get("bamboo/keyword-masking")}catch(t){return console.error("Failed to fetch keyword masking config:",t),{entries:[]}}}async updateKeywordMaskingConfig(t){return rt.post("bamboo/keyword-masking",t)}async validateKeywordEntries(t){return rt.post("bamboo/keyword-masking/validate",t)}async getSetupStatus(){return await rt.get("bamboo/setup/status")}async markSetupComplete(){return rt.post("bamboo/setup/complete",{})}async resetSetupStatus(){await rt.post("bamboo/setup/incomplete",{})}async getAccessStatus(){return rt.get("bamboo/access/status")}async verifyAccessPassword(t){return rt.post("bamboo/access/verify",{password:t})}async updateAccessPassword(t){return rt.post("bamboo/access/password",t)}}const ls=class ls{constructor(){Mt(this,"httpUtilityService",new Uw)}static getInstance(){return ls.instance||(ls.instance=new ls),ls.instance}getUtilityService(){return{copyToClipboard:t=>this.httpUtilityService.copyToClipboard(t),getBambooConfig:()=>this.httpUtilityService.getBambooConfig(),getBambooTools:()=>this.httpUtilityService.getBambooTools(),getModelLimitDefaults:()=>this.httpUtilityService.getModelLimitDefaults(),setBambooConfig:t=>this.httpUtilityService.setBambooConfig(t),validateBambooConfigPatch:t=>this.httpUtilityService.validateBambooConfigPatch(t),setProxyAuth:t=>this.httpUtilityService.setProxyAuth(t),getProxyAuthStatus:()=>this.httpUtilityService.getProxyAuthStatus(),clearProxyAuth:()=>this.httpUtilityService.clearProxyAuth(),resetBambooConfig:()=>this.httpUtilityService.resetBambooConfig(),resetSetupStatus:()=>this.httpUtilityService.resetSetupStatus(),saveWorkflow:(t,n)=>this.httpUtilityService.saveWorkflow(t,n),deleteWorkflow:t=>this.httpUtilityService.deleteWorkflow(t),getKeywordMaskingConfig:()=>this.httpUtilityService.getKeywordMaskingConfig(),updateKeywordMaskingConfig:t=>this.httpUtilityService.updateKeywordMaskingConfig(t),validateKeywordEntries:t=>this.httpUtilityService.validateKeywordEntries(t),getSetupStatus:()=>this.httpUtilityService.getSetupStatus(),markSetupComplete:()=>this.httpUtilityService.markSetupComplete(),getAccessStatus:()=>this.httpUtilityService.getAccessStatus(),verifyAccessPassword:t=>this.httpUtilityService.verifyAccessPassword(t),updateAccessPassword:t=>this.httpUtilityService.updateAccessPassword(t)}}async copyToClipboard(t){return this.getUtilityService().copyToClipboard(t)}async getBambooConfig(){return this.getUtilityService().getBambooConfig()}async getBambooTools(){return this.getUtilityService().getBambooTools()}async getModelLimitDefaults(){return this.getUtilityService().getModelLimitDefaults()}async setBambooConfig(t){return this.getUtilityService().setBambooConfig(t)}async validateBambooConfigPatch(t){return this.getUtilityService().validateBambooConfigPatch(t)}async setProxyAuth(t){return this.getUtilityService().setProxyAuth(t)}async getProxyAuthStatus(){return this.getUtilityService().getProxyAuthStatus()}async clearProxyAuth(){return this.getUtilityService().clearProxyAuth()}async resetBambooConfig(){return this.getUtilityService().resetBambooConfig()}async resetSetupStatus(){return this.getUtilityService().resetSetupStatus()}async saveWorkflow(t,n){return this.getUtilityService().saveWorkflow(t,n)}async deleteWorkflow(t){return this.getUtilityService().deleteWorkflow(t)}async getKeywordMaskingConfig(){return this.getUtilityService().getKeywordMaskingConfig()}async updateKeywordMaskingConfig(t){return this.getUtilityService().updateKeywordMaskingConfig(t)}async validateKeywordEntries(t){return this.getUtilityService().validateKeywordEntries(t)}async getSetupStatus(){return this.getUtilityService().getSetupStatus()}async markSetupComplete(){return this.getUtilityService().markSetupComplete()}async getAccessStatus(){return this.getUtilityService().getAccessStatus()}async verifyAccessPassword(t){return this.getUtilityService().verifyAccessPassword(t)}async updateAccessPassword(t){return this.getUtilityService().updateAccessPassword(t)}};Mt(ls,"instance");let Qs=ls;const rs=Qs.getInstance();let So=null,xo=null;const vc=(e,t)=>e instanceof Error&&e.message.trim()?e.message:t,fu=Hr((e,t)=>({config:null,proxyAuthStatus:null,isLoadingConfig:!1,isLoadingProxyAuthStatus:!1,lastLoadedAt:null,error:null,loadConfig:async({force:n=!1}={})=>{const r=t().config;if(!n&&r)return r;if(So)return So;So=(async()=>{e({isLoadingConfig:!0,error:null});try{const s=await rs.getBambooConfig()??{};return e({config:s,lastLoadedAt:Date.now(),error:null}),s}catch(s){const o=vc(s,"Failed to load Bamboo config");throw e({error:o}),s}finally{e({isLoadingConfig:!1})}})();try{return await So}finally{So=null}},saveConfig:async n=>{e({isLoadingConfig:!0,error:null,config:n});try{const r=await rs.setBambooConfig(n);return e({config:r,lastLoadedAt:Date.now(),error:null}),r}catch(r){const s=vc(r,"Failed to save Bamboo config");throw e({error:s}),r}finally{e({isLoadingConfig:!1})}},patchConfig:async n=>{const s={...await t().loadConfig()??{},...n??{}};return t().saveConfig(s)},loadProxyAuthStatus:async({force:n=!1}={})=>{const r=t().proxyAuthStatus;if(!n&&r)return r;if(xo)return xo;xo=(async()=>{e({isLoadingProxyAuthStatus:!0,error:null});try{const s=await rs.getProxyAuthStatus();return e({proxyAuthStatus:s,error:null}),s}catch(s){const o=vc(s,"Failed to load proxy auth status");throw e({error:o}),s}finally{e({isLoadingProxyAuthStatus:!1})}})();try{return await xo}finally{xo=null}},applyProxyAuth:async n=>{await rs.setProxyAuth(n),await t().loadProxyAuthStatus({force:!0})},clearProxyAuth:async()=>{await rs.clearProxyAuth(),await t().loadProxyAuthStatus({force:!0})}}));let wo=null;const qw=(e,t)=>({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:null,configModel:void 0,setSelectedModel:n=>{e({selectedModel:n})},loadConfigModel:async()=>{try{const n=await fu.getState().loadConfig(),r=typeof(n==null?void 0:n.model)=="string"?n.model:void 0;r&&e({configModel:r})}catch(n){console.error("Failed to load model from config:",n)}},fetchModels:async()=>{if(wo)return wo;wo=(async()=>{e({isLoadingModels:!0,modelsError:null});try{try{if(!(await rs.getSetupStatus()).is_complete){Ee("[ModelSlice]","Setup not complete, skipping model fetch"),e({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:"Complete setup to access all models"});return}}catch(r){console.error("Failed to check setup status:",r)}const n=await Og.getModels();e(r=>{const s=r.selectedModel;let o=r.selectedModel;return s&&n.includes(s)||(n.length>0?o=n[0]:o=void 0),{...r,models:n,selectedModel:o,modelsError:n.length>0?null:"No available model options"}}),t().models.length===0&&console.warn("No models available from service")}catch(n){const r=n instanceof Error?n.message:String(n);if(console.error("Failed to fetch models:",n),n instanceof uu){e(s=>({...s,models:s.models,selectedModel:s.selectedModel,modelsError:r||"Proxy authentication required. Please configure proxy auth."}));return}e(s=>({...s,models:[],selectedModel:s.selectedModel,modelsError:r}))}finally{e({isLoadingModels:!1})}})();try{await wo}finally{wo=null}}}),Hw=["system_prompt","system_prompt_selected_id"],Sc=e=>({id:e.id,name:e.name||e.id,content:e.content||"",description:e.description,isDefault:!!e.is_default}),Nr=class Nr{constructor(){Mt(this,"deprecatedKeysCleanupDone",!1)}static getInstance(){return Nr.instance||(Nr.instance=new Nr),Nr.instance.cleanupDeprecatedPromptStorageKeys(),Nr.instance}cleanupDeprecatedPromptStorageKeys(){if(!this.deprecatedKeysCleanupDone){this.deprecatedKeysCleanupDone=!0;try{for(const t of Hw)localStorage.removeItem(t)}catch(t){console.warn("[SystemPromptService] Failed to cleanup deprecated prompt storage keys:",t)}}}async getSystemPromptPresets(){try{const t=await St.get("prompt-presets"),r=(Array.isArray(t==null?void 0:t.prompts)?t.prompts:[]).filter(s=>s.id&&s.id.trim().length>0).map(Sc);if(r.length>0)return r}catch(t){console.error("Failed to load prompt presets from backend:",t)}return dl()}async createSystemPromptPreset(t){var s;const n={name:t.name,content:t.content};(s=t.id)!=null&&s.trim()&&(n.id=t.id.trim()),t.description!==void 0&&(n.description=t.description);const r=await St.post("prompt-presets",n);if(!(r!=null&&r.prompt))throw new Error("Backend did not return created prompt preset");return Sc(r.prompt)}async updateSystemPromptPreset(t){const n=encodeURIComponent(t.id),r={name:t.name,content:t.content,description:t.description},s=await St.patch(`prompt-presets/${n}`,r);if(!(s!=null&&s.prompt))throw new Error("Backend did not return updated prompt preset");return Sc(s.prompt)}async deleteSystemPromptPreset(t){const n=encodeURIComponent(t);await St.delete(`prompt-presets/${n}`)}async findPresetById(t){return(await this.getSystemPromptPresets()).find(r=>r.id===t)}async getCurrentSystemPromptContent(t){const n=await this.findPresetById(t);if(n)return n.content;const r=await this.getSystemPromptPresets(),s=r.find(o=>o.isDefault)||r[0];return(s==null?void 0:s.content)||""}};Mt(Nr,"instance");let fl=Nr;const qf="copilot_last_selected_prompt_id",$g="copilot_custom_system_prompts_v2",Lg="copilot_custom_system_prompts_v2_migrated_to_backend",Fg="general_assistant",ud=80,Us=fl.getInstance();let xa=null;function dd(e){const t=e.toLowerCase().trim().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return t.length===0?`prompt_${Date.now()}_${Math.random().toString(36).substring(2,9)}`:t.slice(0,ud)}function Dg(e){if(typeof e!="string")return null;const t=e.toLowerCase().trim().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"");return t?t.slice(0,ud):null}function Ng(e,t){if(!t.has(e))return e;let n=2;for(;;){const r=`_${n}`,o=`${e.slice(0,Math.max(0,ud-r.length))}${r}`;if(!t.has(o))return o;n+=1}}function Bg(){try{const e=localStorage.getItem($g);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const n=new Set,r=[];for(const s of t){const o=typeof(s==null?void 0:s.name)=="string"?s.name.trim():"",i=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!o||!i)continue;const u=Dg(s==null?void 0:s.id)||dd(o),d=Ng(u,n);d!==Fg&&(n.add(d),r.push({id:d,name:o,content:i,description:typeof(s==null?void 0:s.description)=="string"&&s.description.trim()||void 0,isDefault:!!(s!=null&&s.isDefault)}))}return r}catch(e){return console.error("[promptSlice] Failed to read legacy custom prompts:",e),[]}}function zg(){try{return localStorage.getItem(Lg)==="1"}catch(e){return console.error("[promptSlice] Failed to read migration marker:",e),!1}}function Hf(){try{localStorage.setItem(Lg,"1")}catch(e){console.error("[promptSlice] Failed to write migration marker:",e)}}function Yf(){try{localStorage.removeItem($g)}catch(e){console.error("[promptSlice] Failed to clear legacy custom prompts:",e)}}async function Yw(){var s,o;if(zg())return;const e=Bg();if(e.length===0){Yf(),Hf();return}const t=await Us.getSystemPromptPresets(),n=new Set(t.map(i=>i.id));let r=!1;for(const i of e){const l=(s=i.name)==null?void 0:s.trim(),u=(o=i.content)==null?void 0:o.trim();if(!l||!u||i.id===Fg||i.isDefault)continue;const d=Dg(i.id)||dd(l),h=Ng(d,n);try{const m=await Us.createSystemPromptPreset({id:h,name:l,content:u,description:i.description});n.add(m.id)}catch(m){r=!0,console.error(`[promptSlice] Failed to migrate legacy prompt '${l}' to backend:`,m)}}r||(Yf(),Hf())}async function Xw(){xa||(xa=Yw().finally(()=>{xa=null})),await xa}const Kw=(e,t)=>({systemPrompts:[],lastSelectedPromptId:localStorage.getItem(qf)||null,loadSystemPrompts:async()=>{try{await Xw()}catch(s){console.warn("[promptSlice] Legacy prompt migration skipped:",s)}let n=[];try{n=await Us.getSystemPromptPresets()}catch(s){console.error("Failed to load system prompts from backend:",s)}let r=n.length?n:dl();if(!zg()){const s=Bg();r=Vw(r,s)}r.length===0&&(r=dl()),e({systemPrompts:r})},addSystemPrompt:async n=>{try{await Us.createSystemPromptPreset({id:dd(n.name),name:n.name,content:n.content,description:n.description}),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to add system prompt:",r),r}},updateSystemPrompt:async n=>{try{await Us.updateSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to update system prompt:",r),r}},deleteSystemPrompt:async n=>{try{await Us.deleteSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to delete system prompt:",r),r}},setLastSelectedPromptId:n=>{e({lastSelectedPromptId:n});try{localStorage.setItem(qf,n)}catch(r){console.error("Failed to save last selected prompt ID to localStorage:",r)}}}),Vw=(e,t)=>{const n=new Map;return e.forEach(r=>{n.set(r.id,r)}),t.forEach(r=>{n.set(r.id,r)}),Array.from(n.values())},Gw=()=>({});class Jw{async listSkills(t,n){const r=new URLSearchParams;t!=null&&t.search&&r.append("search",t.search),t!=null&&t.includeDisabled&&r.append("include_disabled","true"),n&&r.append("refresh","true");const s=r.toString(),o=s?`skills?${s}`:"skills";return rt.get(o)}async getSkill(t){return rt.get(`skills/${t}`)}async getFilteredTools(t){const n=t?`?session_id=${encodeURIComponent(t)}`:"";return(await rt.get(`skills/filtered-tools${n}`)).tools??[]}}const Xf=new Jw,Qw=(e,t)=>({skills:[],isLoadingSkills:!1,skillsError:null,loadSkills:async(n,r)=>{e({isLoadingSkills:!0,skillsError:null});try{const s=await Xf.listSkills(n,r);e({skills:s.skills,isLoadingSkills:!1})}catch(s){e({skillsError:s instanceof Error?s.message:xt.t("components.skillManager.loadFailed"),isLoadingSkills:!1})}},getSkill:async n=>{e({isLoadingSkills:!0,skillsError:null});try{const r=await Xf.getSkill(n),s=t().skills,i=s.findIndex(l=>l.id===r.id)>=0?s.map(l=>l.id===r.id?r:l):[...s,r];e({skills:i,isLoadingSkills:!1})}catch(r){e({skillsError:r instanceof Error?r.message:xt.t("components.skillManager.getFailed"),isLoadingSkills:!1})}},clearSkillsError:()=>{e({skillsError:null})}}),Zw=e=>({tokenUsages:{},truncationOccurred:{},segmentsRemoved:{},updateTokenUsage:(t,n)=>e(r=>({tokenUsages:{...r.tokenUsages,[t]:n}})),setTruncationInfo:(t,n,r)=>e(s=>({truncationOccurred:{...s.truncationOccurred,[t]:n},segmentsRemoved:{...s.segmentsRemoved,[t]:r}})),clearTokenUsage:t=>e(n=>{const{[t]:r,...s}=n.tokenUsages,{[t]:o,...i}=n.truncationOccurred,{[t]:l,...u}=n.segmentsRemoved;return{tokenUsages:s,truncationOccurred:i,segmentsRemoved:u}})}),e_=Jn.getInstance(),t_=(e,t)=>({taskLists:{},taskListVersions:{},activeItems:{},evaluationStates:{},setTaskList:(n,r)=>e(s=>({taskLists:{...s.taskLists,[n]:r},taskListVersions:{...s.taskListVersions,[n]:r.version||0}})),loadTaskList:async n=>{const r=await e_.getTaskList(n);return r?(t().setTaskList(r.session_id||n,r),r):null},updateTaskListDelta:(n,r)=>e(s=>{const o=s.taskListVersions[n]||0;if(r.version<=o)return s;const i=s.taskLists[n];if(!i)return s;const l=i.items.map(u=>u.id===r.item_id?{...u,status:r.status,tool_calls_count:r.tool_calls_count}:u);return{taskLists:{...s.taskLists,[n]:{...i,items:l,updated_at:new Date().toISOString()}},taskListVersions:{...s.taskListVersions,[n]:r.version},activeItems:{...s.activeItems,[n]:r.status==="in_progress"?r.item_id:null}}}),clearTaskList:n=>e(r=>{const{[n]:s,...o}=r.taskLists,{[n]:i,...l}=r.taskListVersions,{[n]:u,...d}=r.activeItems,{[n]:h,...m}=r.evaluationStates;return{taskLists:o,taskListVersions:l,activeItems:d,evaluationStates:m}}),getTaskListVersion:n=>t().taskListVersions[n]||0,setEvaluationState:(n,r)=>e(s=>({evaluationStates:{...s.evaluationStates,[n]:r}})),clearEvaluationState:n=>e(r=>{const{[n]:s,...o}=r.evaluationStates;return{evaluationStates:o}})});var Xa={exports:{}},n_=Xa.exports,Kf;function r_(){return Kf||(Kf=1,function(e,t){((n,r)=>{e.exports=r()})(n_,function(){var n=function(c,f){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(p,g){p.__proto__=g}:function(p,g){for(var x in g)Object.prototype.hasOwnProperty.call(g,x)&&(p[x]=g[x])}))(c,f)},r=function(){return(r=Object.assign||function(c){for(var f,p=1,g=arguments.length;p<g;p++)for(var x in f=arguments[p])Object.prototype.hasOwnProperty.call(f,x)&&(c[x]=f[x]);return c}).apply(this,arguments)};function s(c,f,p){for(var g,x=0,_=f.length;x<_;x++)!g&&x in f||((g=g||Array.prototype.slice.call(f,0,x))[x]=f[x]);return c.concat(g||Array.prototype.slice.call(f))}var o=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:wS,i=Object.keys,l=Array.isArray;function u(c,f){return typeof f=="object"&&i(f).forEach(function(p){c[p]=f[p]}),c}typeof Promise>"u"||o.Promise||(o.Promise=Promise);var d=Object.getPrototypeOf,h={}.hasOwnProperty;function m(c,f){return h.call(c,f)}function b(c,f){typeof f=="function"&&(f=f(d(c))),(typeof Reflect>"u"?i:Reflect.ownKeys)(f).forEach(function(p){w(c,p,f[p])})}var v=Object.defineProperty;function w(c,f,p,g){v(c,f,u(p&&m(p,"get")&&typeof p.get=="function"?{get:p.get,set:p.set,configurable:!0}:{value:p,configurable:!0,writable:!0},g))}function S(c){return{from:function(f){return c.prototype=Object.create(f.prototype),w(c.prototype,"constructor",c),{extend:b.bind(null,c.prototype)}}}}var k=Object.getOwnPropertyDescriptor,P=[].slice;function T(c,f,p){return P.call(c,f,p)}function j(c,f){return f(c)}function C(c){if(!c)throw new Error("Assertion Failed")}function E(c){o.setImmediate?setImmediate(c):setTimeout(c,0)}function A(c,f){if(typeof f=="string"&&m(c,f))return c[f];if(!f)return c;if(typeof f!="string"){for(var p=[],g=0,x=f.length;g<x;++g){var _=A(c,f[g]);p.push(_)}return p}var M,R=f.indexOf(".");return R===-1||(M=c[f.substr(0,R)])==null?void 0:A(M,f.substr(R+1))}function O(c,f,p){if(c&&f!==void 0&&!("isFrozen"in Object&&Object.isFrozen(c)))if(typeof f!="string"&&"length"in f){C(typeof p!="string"&&"length"in p);for(var g=0,x=f.length;g<x;++g)O(c,f[g],p[g])}else{var _,M,R=f.indexOf(".");R!==-1?(_=f.substr(0,R),(R=f.substr(R+1))===""?p===void 0?l(c)&&!isNaN(parseInt(_))?c.splice(_,1):delete c[_]:c[_]=p:O(M=(M=c[_])&&m(c,_)?M:c[_]={},R,p)):p===void 0?l(c)&&!isNaN(parseInt(f))?c.splice(f,1):delete c[f]:c[f]=p}}function D(c){var f,p={};for(f in c)m(c,f)&&(p[f]=c[f]);return p}var F=[].concat;function N(c){return F.apply([],c)}var fe="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(N([8,16,32,64].map(function(c){return["Int","Uint","Float"].map(function(f){return f+c+"Array"})}))).filter(function(c){return o[c]}),q=new Set(fe.map(function(c){return o[c]})),I=null;function Q(c){return I=new WeakMap,c=function f(p){if(!p||typeof p!="object")return p;var g=I.get(p);if(g)return g;if(l(p)){g=[],I.set(p,g);for(var x=0,_=p.length;x<_;++x)g.push(f(p[x]))}else if(q.has(p.constructor))g=p;else{var M,R=d(p);for(M in g=R===Object.prototype?{}:Object.create(R),I.set(p,g),p)m(p,M)&&(g[M]=f(p[M]))}return g}(c),I=null,c}var G={}.toString;function Z(c){return G.call(c).slice(8,-1)}var pe=typeof Symbol<"u"?Symbol.iterator:"@@iterator",$=typeof pe=="symbol"?function(c){var f;return c!=null&&(f=c[pe])&&f.apply(c)}:function(){return null};function oe(c,f){f=c.indexOf(f),0<=f&&c.splice(f,1)}var me={};function ne(c){var f,p,g,x;if(arguments.length===1){if(l(c))return c.slice();if(this===me&&typeof c=="string")return[c];if(x=$(c))for(p=[];!(g=x.next()).done;)p.push(g.value);else{if(c==null)return[c];if(typeof(f=c.length)!="number")return[c];for(p=new Array(f);f--;)p[f]=c[f]}}else for(f=arguments.length,p=new Array(f);f--;)p[f]=arguments[f];return p}var he=typeof Symbol<"u"?function(c){return c[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},fe=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],It=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(fe),ue={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function de(c,f){this.name=c,this.message=f}function Ce(c,f){return c+". Errors: "+Object.keys(f).map(function(p){return f[p].toString()}).filter(function(p,g,x){return x.indexOf(p)===g}).join(`
|
|
12
|
+
`)}function ze(c,f,p,g){this.failures=f,this.failedKeys=g,this.successCount=p,this.message=Ce(c,f)}function Le(c,f){this.name="BulkError",this.failures=Object.keys(f).map(function(p){return f[p]}),this.failuresByPos=f,this.message=Ce(c,this.failures)}S(de).from(Error).extend({toString:function(){return this.name+": "+this.message}}),S(ze).from(de),S(Le).from(de);var lt=It.reduce(function(c,f){return c[f]=f+"Error",c},{}),L=de,le=It.reduce(function(c,f){var p=f+"Error";function g(x,_){this.name=p,x?typeof x=="string"?(this.message="".concat(x).concat(_?`
|
|
13
|
+
`+_:""),this.inner=_||null):typeof x=="object"&&(this.message="".concat(x.name," ").concat(x.message),this.inner=x):(this.message=ue[f]||p,this.inner=null)}return S(g).from(L),c[f]=g,c},{}),Ae=(le.Syntax=SyntaxError,le.Type=TypeError,le.Range=RangeError,fe.reduce(function(c,f){return c[f+"Error"]=le[f],c},{}));fe=It.reduce(function(c,f){return["Syntax","Type","Range"].indexOf(f)===-1&&(c[f+"Error"]=le[f]),c},{});function Ie(){}function He(c){return c}function dt(c,f){return c==null||c===He?f:function(p){return f(c(p))}}function pt(c,f){return function(){c.apply(this,arguments),f.apply(this,arguments)}}function $t(c,f){return c===Ie?f:function(){var p=c.apply(this,arguments),g=(p!==void 0&&(arguments[0]=p),this.onsuccess),x=this.onerror,_=(this.onsuccess=null,this.onerror=null,f.apply(this,arguments));return g&&(this.onsuccess=this.onsuccess?pt(g,this.onsuccess):g),x&&(this.onerror=this.onerror?pt(x,this.onerror):x),_!==void 0?_:p}}function Qt(c,f){return c===Ie?f:function(){c.apply(this,arguments);var p=this.onsuccess,g=this.onerror;this.onsuccess=this.onerror=null,f.apply(this,arguments),p&&(this.onsuccess=this.onsuccess?pt(p,this.onsuccess):p),g&&(this.onerror=this.onerror?pt(g,this.onerror):g)}}function rn(c,f){return c===Ie?f:function(x){var g=c.apply(this,arguments),x=(u(x,g),this.onsuccess),_=this.onerror,M=(this.onsuccess=null,this.onerror=null,f.apply(this,arguments));return x&&(this.onsuccess=this.onsuccess?pt(x,this.onsuccess):x),_&&(this.onerror=this.onerror?pt(_,this.onerror):_),g===void 0?M===void 0?void 0:M:u(g,M)}}function _n(c,f){return c===Ie?f:function(){return f.apply(this,arguments)!==!1&&c.apply(this,arguments)}}function At(c,f){return c===Ie?f:function(){var p=c.apply(this,arguments);if(p&&typeof p.then=="function"){for(var g=this,x=arguments.length,_=new Array(x);x--;)_[x]=arguments[x];return p.then(function(){return f.apply(g,_)})}return f.apply(this,arguments)}}fe.ModifyError=ze,fe.DexieError=de,fe.BulkError=Le;var Xt=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Kt(c){Xt=c}var gn={},On=100,Mn=typeof Promise>"u"?[]:(It=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[Mn=crypto.subtle.digest("SHA-512",new Uint8Array([0])),d(Mn),It]:[It,d(It),It]),It=Mn[0],js=Mn[1],js=js&&js.then,_t=It&&It.constructor,bt=!!Mn[2],ye=function(c,f){fn.push([c,f]),Te&&(queueMicrotask(Ct),Te=!1)},We=!0,Te=!0,qe=[],Lt=[],$n=He,Vt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Ie,pgp:!1,env:{},finalize:Ie},$e=Vt,fn=[],B=0,ie=[];function H(c){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var f=this._PSD=$e;if(typeof c!="function"){if(c!==gn)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Fe(this,this._value)}else this._state=null,this._value=null,++f.ref,function p(g,x){try{x(function(_){if(g._state===null){if(_===g)throw new TypeError("A promise cannot be resolved with itself.");var M=g._lib&&Tt();_&&typeof _.then=="function"?p(g,function(R,W){_ instanceof H?_._then(R,W):_.then(R,W)}):(g._state=!0,g._value=_,et(g)),M&&Ke()}},Fe.bind(null,g))}catch(_){Fe(g,_)}}(this,c)}var _e={get:function(){var c=$e,f=Xr;function p(g,x){var _=this,M=!c.global&&(c!==$e||f!==Xr),R=M&&!er(),W=new H(function(ee,Y){Xe(_,new Oe(ao(g,c,M,R),ao(x,c,M,R),ee,Y,c))});return this._consoleTask&&(W._consoleTask=this._consoleTask),W}return p.prototype=gn,p},set:function(c){w(this,"then",c&&c.prototype===gn?_e:{get:function(){return c},set:_e.set})}};function Oe(c,f,p,g,x){this.onFulfilled=typeof c=="function"?c:null,this.onRejected=typeof f=="function"?f:null,this.resolve=p,this.reject=g,this.psd=x}function Fe(c,f){var p,g;Lt.push(f),c._state===null&&(p=c._lib&&Tt(),f=$n(f),c._state=!1,c._value=f,g=c,qe.some(function(x){return x._value===g._value})||qe.push(g),et(c),p)&&Ke()}function et(c){var f=c._listeners;c._listeners=[];for(var p=0,g=f.length;p<g;++p)Xe(c,f[p]);var x=c._PSD;--x.ref||x.finalize(),B===0&&(++B,ye(function(){--B==0&&Nt()},[]))}function Xe(c,f){if(c._state===null)c._listeners.push(f);else{var p=c._state?f.onFulfilled:f.onRejected;if(p===null)return(c._state?f.resolve:f.reject)(c._value);++f.psd.ref,++B,ye(kt,[p,c,f])}}function kt(c,f,p){try{var g,x=f._value;!f._state&&Lt.length&&(Lt=[]),g=Xt&&f._consoleTask?f._consoleTask.run(function(){return c(x)}):c(x),f._state||Lt.indexOf(x)!==-1||(_=>{for(var M=qe.length;M;)if(qe[--M]._value===_._value)return qe.splice(M,1)})(f),p.resolve(g)}catch(_){p.reject(_)}finally{--B==0&&Nt(),--p.psd.ref||p.psd.finalize()}}function Ct(){cr(Vt,function(){Tt()&&Ke()})}function Tt(){var c=We;return Te=We=!1,c}function Ke(){var c,f,p;do for(;0<fn.length;)for(c=fn,fn=[],p=c.length,f=0;f<p;++f){var g=c[f];g[0].apply(null,g[1])}while(0<fn.length);Te=We=!0}function Nt(){for(var c=qe,f=(qe=[],c.forEach(function(g){g._PSD.onunhandled.call(null,g._value,g)}),ie.slice(0)),p=f.length;p;)f[--p]()}function Se(c){return new H(gn,!1,c)}function De(c,f){var p=$e;return function(){var g=Tt(),x=$e;try{return tr(p,!0),c.apply(this,arguments)}catch(_){f&&f(_)}finally{tr(x,!1),g&&Ke()}}}b(H.prototype,{then:_e,_then:function(c,f){Xe(this,new Oe(null,null,c,f,$e))},catch:function(c){var f,p;return arguments.length===1?this.then(null,c):(f=c,p=arguments[1],typeof f=="function"?this.then(null,function(g){return(g instanceof f?p:Se)(g)}):this.then(null,function(g){return(g&&g.name===f?p:Se)(g)}))},finally:function(c){return this.then(function(f){return H.resolve(c()).then(function(){return f})},function(f){return H.resolve(c()).then(function(){return Se(f)})})},timeout:function(c,f){var p=this;return c<1/0?new H(function(g,x){var _=setTimeout(function(){return x(new le.Timeout(f))},c);p.then(g,x).finally(clearTimeout.bind(null,_))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&w(H.prototype,Symbol.toStringTag,"Dexie.Promise"),Vt.env=na(),b(H,{all:function(){var c=ne.apply(null,arguments).map(Cs);return new H(function(f,p){c.length===0&&f([]);var g=c.length;c.forEach(function(x,_){return H.resolve(x).then(function(M){c[_]=M,--g||f(c)},p)})})},resolve:function(c){return c instanceof H?c:c&&typeof c.then=="function"?new H(function(f,p){c.then(f,p)}):new H(gn,!0,c)},reject:Se,race:function(){var c=ne.apply(null,arguments).map(Cs);return new H(function(f,p){c.map(function(g){return H.resolve(g).then(f,p)})})},PSD:{get:function(){return $e},set:function(c){return $e=c}},totalEchoes:{get:function(){return Xr}},newPSD:Zn,usePSD:cr,scheduler:{get:function(){return ye},set:function(c){ye=c}},rejectionMapper:{get:function(){return $n},set:function(c){$n=c}},follow:function(c,f){return new H(function(p,g){return Zn(function(x,_){var M=$e;M.unhandleds=[],M.onunhandled=_,M.finalize=pt(function(){var R,W=this;R=function(){W.unhandleds.length===0?x():_(W.unhandleds[0])},ie.push(function ee(){R(),ie.splice(ie.indexOf(ee),1)}),++B,ye(function(){--B==0&&Nt()},[])},M.finalize),c()},f,p,g)})}}),_t&&(_t.allSettled&&w(H,"allSettled",function(){var c=ne.apply(null,arguments).map(Cs);return new H(function(f){c.length===0&&f([]);var p=c.length,g=new Array(p);c.forEach(function(x,_){return H.resolve(x).then(function(M){return g[_]={status:"fulfilled",value:M}},function(M){return g[_]={status:"rejected",reason:M}}).then(function(){return--p||f(g)})})})}),_t.any&&typeof AggregateError<"u"&&w(H,"any",function(){var c=ne.apply(null,arguments).map(Cs);return new H(function(f,p){c.length===0&&p(new AggregateError([]));var g=c.length,x=new Array(g);c.forEach(function(_,M){return H.resolve(_).then(function(R){return f(R)},function(R){x[M]=R,--g||p(new AggregateError(x))})})})}),_t.withResolvers)&&(H.withResolvers=_t.withResolvers);var Ve={awaits:0,echoes:0,id:0},Ot=0,Zt=[],Qn=0,Xr=0,io=0;function Zn(c,M,p,g){var x=$e,_=Object.create(x),M=(_.parent=x,_.ref=0,_.global=!1,_.id=++io,Vt.env,_.env=bt?{Promise:H,PromiseProp:{value:H,configurable:!0,writable:!0},all:H.all,race:H.race,allSettled:H.allSettled,any:H.any,resolve:H.resolve,reject:H.reject}:{},M&&u(_,M),++x.ref,_.finalize=function(){--this.parent.ref||this.parent.finalize()},cr(_,c,p,g));return _.ref===0&&_.finalize(),M}function lr(){return Ve.id||(Ve.id=++Ot),++Ve.awaits,Ve.echoes+=On,Ve.id}function er(){return!!Ve.awaits&&(--Ve.awaits==0&&(Ve.id=0),Ve.echoes=Ve.awaits*On,!0)}function Cs(c){return Ve.echoes&&c&&c.constructor===_t?(lr(),c.then(function(f){return er(),f},function(f){return er(),Ut(f)})):c}function Ul(){var c=Zt[Zt.length-1];Zt.pop(),tr(c,!1)}function tr(c,f){var p,g,x=$e;(f?!Ve.echoes||Qn++&&c===$e:!Qn||--Qn&&c===$e)||queueMicrotask(f?(function(_){++Xr,Ve.echoes&&--Ve.echoes!=0||(Ve.echoes=Ve.awaits=Ve.id=0),Zt.push($e),tr(_,!0)}).bind(null,c):Ul),c!==$e&&($e=c,x===Vt&&(Vt.env=na()),bt)&&(p=Vt.env.Promise,g=c.env,x.global||c.global)&&(Object.defineProperty(o,"Promise",g.PromiseProp),p.all=g.all,p.race=g.race,p.resolve=g.resolve,p.reject=g.reject,g.allSettled&&(p.allSettled=g.allSettled),g.any)&&(p.any=g.any)}function na(){var c=o.Promise;return bt?{Promise:c,PromiseProp:Object.getOwnPropertyDescriptor(o,"Promise"),all:c.all,race:c.race,allSettled:c.allSettled,any:c.any,resolve:c.resolve,reject:c.reject}:{}}function cr(c,f,p,g,x){var _=$e;try{return tr(c,!0),f(p,g,x)}finally{tr(_,!1)}}function ao(c,f,p,g){return typeof c!="function"?c:function(){var x=$e;p&&lr(),tr(f,!0);try{return c.apply(this,arguments)}finally{tr(x,!1),g&&queueMicrotask(er)}}}function Ts(c){Promise===_t&&Ve.echoes===0?Qn===0?c():enqueueNativeMicroTask(c):setTimeout(c,0)}(""+js).indexOf("[native code]")===-1&&(lr=er=Ie);var Ut=H.reject,ge="",ct="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",qt="String expected.",Bt="__dbnames",vt="readonly",En="readwrite";function an(c,f){return c?f?function(){return c.apply(this,arguments)&&f.apply(this,arguments)}:c:f}var Dn={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Kr(c){return typeof c!="string"||/\./.test(c)?function(f){return f}:function(f){return f[c]===void 0&&c in f&&delete(f=Q(f))[c],f}}function xr(){throw le.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function ot(c,f){try{var p=lo(c),g=lo(f);if(p!==g)return p==="Array"?1:g==="Array"?-1:p==="binary"?1:g==="binary"?-1:p==="string"?1:g==="string"?-1:p==="Date"?1:g!=="Date"?NaN:-1;switch(p){case"number":case"Date":case"string":return f<c?1:c<f?-1:0;case"binary":for(var x=Qd(c),_=Qd(f),M=x.length,R=_.length,W=M<R?M:R,ee=0;ee<W;++ee)if(x[ee]!==_[ee])return x[ee]<_[ee]?-1:1;return M===R?0:M<R?-1:1;case"Array":for(var Y=c,z=f,U=Y.length,J=z.length,X=U<J?U:J,K=0;K<X;++K){var V=ot(Y[K],z[K]);if(V!==0)return V}return U===J?0:U<J?-1:1}}catch{}return NaN}function lo(c){var f=typeof c;return f=="object"&&(ArrayBuffer.isView(c)||(f=Z(c))==="ArrayBuffer")?"binary":f}function Qd(c){return c instanceof Uint8Array?c:ArrayBuffer.isView(c)?new Uint8Array(c.buffer,c.byteOffset,c.byteLength):new Uint8Array(c)}function ra(c,f,p){var g=c.schema.yProps;return g?(f&&0<p.numFailures&&(f=f.filter(function(x,_){return!p.failures[_]})),Promise.all(g.map(function(x){return x=x.updatesTable,f?c.db.table(x).where("k").anyOf(f).delete():c.db.table(x).clear()})).then(function(){return p})):p}Zd.prototype.execute=function(c){var f=this["@@propmod"];if(f.add!==void 0){var p=f.add;if(l(p))return s(s([],l(c)?c:[],!0),p).sort();if(typeof p=="number")return(Number(c)||0)+p;if(typeof p=="bigint")try{return BigInt(c)+p}catch{return BigInt(0)+p}throw new TypeError("Invalid term ".concat(p))}if(f.remove!==void 0){var g=f.remove;if(l(g))return l(c)?c.filter(function(x){return!g.includes(x)}).sort():[];if(typeof g=="number")return Number(c)-g;if(typeof g=="bigint")try{return BigInt(c)-g}catch{return BigInt(0)-g}throw new TypeError("Invalid subtrahend ".concat(g))}return p=(p=f.replacePrefix)==null?void 0:p[0],p&&typeof c=="string"&&c.startsWith(p)?f.replacePrefix[1]+c.substring(p.length):c};var co=Zd;function Zd(c){this["@@propmod"]=c}function ef(c,f){for(var p=i(f),g=p.length,x=!1,_=0;_<g;++_){var M=p[_],R=f[M],W=A(c,M);R instanceof co?(O(c,M,R.execute(W)),x=!0):W!==R&&(O(c,M,R),x=!0)}return x}Ft.prototype._trans=function(c,f,p){var g=this._tx||$e.trans,x=this.name,_=Xt&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(c==="readonly"?"read":"write"," ").concat(this.name));function M(ee,Y,z){if(z.schema[x])return f(z.idbtrans,z);throw new le.NotFound("Table "+x+" not part of transaction")}var R=Tt();try{var W=g&&g.db._novip===this.db._novip?g===$e.trans?g._promise(c,M,p):Zn(function(){return g._promise(c,M,p)},{trans:g,transless:$e.transless||$e}):function ee(Y,z,U,J){if(Y.idbdb&&(Y._state.openComplete||$e.letThrough||Y._vip)){var X=Y._createTransaction(z,U,Y._dbSchema);try{X.create(),Y._state.PR1398_maxLoop=3}catch(K){return K.name===lt.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,z,U,J)})):Ut(K)}return X._promise(z,function(K,V){return Zn(function(){return $e.trans=X,J(K,V,X)})}).then(function(K){if(z==="readwrite")try{X.idbtrans.commit()}catch{}return z==="readonly"?K:X._completion.then(function(){return K})})}if(Y._state.openComplete)return Ut(new le.DatabaseClosed(Y._state.dbOpenError));if(!Y._state.isBeingOpened){if(!Y._state.autoOpen)return Ut(new le.DatabaseClosed);Y.open().catch(Ie)}return Y._state.dbReadyPromise.then(function(){return ee(Y,z,U,J)})}(this.db,c,[this.name],M);return _&&(W._consoleTask=_,W=W.catch(function(ee){return console.trace(ee),Ut(ee)})),W}finally{R&&Ke()}},Ft.prototype.get=function(c,f){var p=this;return c&&c.constructor===Object?this.where(c).first(f):c==null?Ut(new le.Type("Invalid argument to Table.get()")):this._trans("readonly",function(g){return p.core.get({trans:g,key:c}).then(function(x){return p.hook.reading.fire(x)})}).then(f)},Ft.prototype.where=function(c){if(typeof c=="string")return new this.db.WhereClause(this,c);if(l(c))return new this.db.WhereClause(this,"[".concat(c.join("+"),"]"));var f=i(c);if(f.length===1)return this.where(f[0]).equals(c[f[0]]);var p=this.schema.indexes.concat(this.schema.primKey).filter(function(R){if(R.compound&&f.every(function(ee){return 0<=R.keyPath.indexOf(ee)})){for(var W=0;W<f.length;++W)if(f.indexOf(R.keyPath[W])===-1)return!1;return!0}return!1}).sort(function(R,W){return R.keyPath.length-W.keyPath.length})[0];if(p&&this.db._maxKey!==ge)return M=p.keyPath.slice(0,f.length),this.where(M).equals(M.map(function(R){return c[R]}));!p&&Xt&&console.warn("The query ".concat(JSON.stringify(c)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(f.join("+"),"]"));var g=this.schema.idxByName;function x(R,W){return ot(R,W)===0}var M=f.reduce(function(Y,W){var ee=Y[0],Y=Y[1],z=g[W],U=c[W];return[ee||z,ee||!z?an(Y,z&&z.multi?function(J){return J=A(J,W),l(J)&&J.some(function(X){return x(U,X)})}:function(J){return x(U,A(J,W))}):Y]},[null,null]),_=M[0],M=M[1];return _?this.where(_.name).equals(c[_.keyPath]).filter(M):p?this.filter(M):this.where(f).equals("")},Ft.prototype.filter=function(c){return this.toCollection().and(c)},Ft.prototype.count=function(c){return this.toCollection().count(c)},Ft.prototype.offset=function(c){return this.toCollection().offset(c)},Ft.prototype.limit=function(c){return this.toCollection().limit(c)},Ft.prototype.each=function(c){return this.toCollection().each(c)},Ft.prototype.toArray=function(c){return this.toCollection().toArray(c)},Ft.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Ft.prototype.orderBy=function(c){return new this.db.Collection(new this.db.WhereClause(this,l(c)?"[".concat(c.join("+"),"]"):c))},Ft.prototype.reverse=function(){return this.toCollection().reverse()},Ft.prototype.mapToClass=function(c){for(var f=this.db,p=this.name,g=((this.schema.mappedClass=c).prototype instanceof xr&&(c=(M=>{var R=Y,W=M;if(typeof W!="function"&&W!==null)throw new TypeError("Class extends value "+String(W)+" is not a constructor or null");function ee(){this.constructor=R}function Y(){return M!==null&&M.apply(this,arguments)||this}return n(R,W),R.prototype=W===null?Object.create(W):(ee.prototype=W.prototype,new ee),Object.defineProperty(Y.prototype,"db",{get:function(){return f},enumerable:!1,configurable:!0}),Y.prototype.table=function(){return p},Y})(c)),new Set),x=c.prototype;x;x=d(x))Object.getOwnPropertyNames(x).forEach(function(M){return g.add(M)});function _(M){if(!M)return M;var R,W=Object.create(c.prototype);for(R in M)if(!g.has(R))try{W[R]=M[R]}catch{}return W}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=_,this.hook("reading",_),c},Ft.prototype.defineClass=function(){return this.mapToClass(function(c){u(this,c)})},Ft.prototype.add=function(c,f){var p=this,g=this.schema.primKey,x=g.auto,_=g.keyPath,M=c;return _&&x&&(M=Kr(_)(c)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"add",keys:f!=null?[f]:null,values:[M]})}).then(function(R){return R.numFailures?H.reject(R.failures[0]):R.lastResult}).then(function(R){if(_)try{O(c,_,R)}catch{}return R})},Ft.prototype.upsert=function(c,f){var p=this,g=this.schema.primKey.keyPath;return this._trans("readwrite",function(x){return p.core.get({trans:x,key:c}).then(function(_){var M=_??{};return ef(M,f),g&&O(M,g,c),p.core.mutate({trans:x,type:"put",values:[M],keys:[c],upsert:!0,updates:{keys:[c],changeSpecs:[f]}}).then(function(R){return R.numFailures?H.reject(R.failures[0]):!!_})})})},Ft.prototype.update=function(c,f){return typeof c!="object"||l(c)?this.where(":id").equals(c).modify(f):(c=A(c,this.schema.primKey.keyPath))===void 0?Ut(new le.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(c).modify(f)},Ft.prototype.put=function(c,f){var p=this,g=this.schema.primKey,x=g.auto,_=g.keyPath,M=c;return _&&x&&(M=Kr(_)(c)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"put",values:[M],keys:f!=null?[f]:null})}).then(function(R){return R.numFailures?H.reject(R.failures[0]):R.lastResult}).then(function(R){if(_)try{O(c,_,R)}catch{}return R})},Ft.prototype.delete=function(c){var f=this;return this._trans("readwrite",function(p){return f.core.mutate({trans:p,type:"delete",keys:[c]}).then(function(g){return ra(f,[c],g)}).then(function(g){return g.numFailures?H.reject(g.failures[0]):void 0})})},Ft.prototype.clear=function(){var c=this;return this._trans("readwrite",function(f){return c.core.mutate({trans:f,type:"deleteRange",range:Dn}).then(function(p){return ra(c,null,p)})}).then(function(f){return f.numFailures?H.reject(f.failures[0]):void 0})},Ft.prototype.bulkGet=function(c){var f=this;return this._trans("readonly",function(p){return f.core.getMany({keys:c,trans:p}).then(function(g){return g.map(function(x){return f.hook.reading.fire(x)})})})},Ft.prototype.bulkAdd=function(c,f,p){var g=this,x=Array.isArray(f)?f:void 0,_=(p=p||(x?void 0:f))?p.allKeys:void 0;return this._trans("readwrite",function(M){var R=g.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&x)throw new le.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(x&&x.length!==c.length)throw new le.InvalidArgument("Arguments objects and keys must have the same length");var W=c.length,ee=R&&ee?c.map(Kr(R)):c;return g.core.mutate({trans:M,type:"add",keys:x,values:ee,wantResults:_}).then(function(Y){var z=Y.numFailures,U=Y.failures;if(z===0)return _?Y.results:Y.lastResult;throw new Le("".concat(g.name,".bulkAdd(): ").concat(z," of ").concat(W," operations failed"),U)})})},Ft.prototype.bulkPut=function(c,f,p){var g=this,x=Array.isArray(f)?f:void 0,_=(p=p||(x?void 0:f))?p.allKeys:void 0;return this._trans("readwrite",function(M){var R=g.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&x)throw new le.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(x&&x.length!==c.length)throw new le.InvalidArgument("Arguments objects and keys must have the same length");var W=c.length,ee=R&&ee?c.map(Kr(R)):c;return g.core.mutate({trans:M,type:"put",keys:x,values:ee,wantResults:_}).then(function(Y){var z=Y.numFailures,U=Y.failures;if(z===0)return _?Y.results:Y.lastResult;throw new Le("".concat(g.name,".bulkPut(): ").concat(z," of ").concat(W," operations failed"),U)})})},Ft.prototype.bulkUpdate=function(c){var f=this,p=this.core,g=c.map(function(M){return M.key}),x=c.map(function(M){return M.changes}),_=[];return this._trans("readwrite",function(M){return p.getMany({trans:M,keys:g,cache:"clone"}).then(function(R){var W=[],ee=[],Y=(c.forEach(function(z,U){var J=z.key,X=z.changes,K=R[U];if(K){for(var V=0,se=Object.keys(X);V<se.length;V++){var te=se[V],ce=X[te];if(te===f.schema.primKey.keyPath){if(ot(ce,J)!==0)throw new le.Constraint("Cannot update primary key in bulkUpdate()")}else O(K,te,ce)}_.push(U),W.push(J),ee.push(K)}}),W.length);return p.mutate({trans:M,type:"put",keys:W,values:ee,updates:{keys:g,changeSpecs:x}}).then(function(z){var U=z.numFailures,J=z.failures;if(U===0)return Y;for(var X=0,K=Object.keys(J);X<K.length;X++){var V,se=K[X],te=_[Number(se)];te!=null&&(V=J[se],delete J[se],J[te]=V)}throw new Le("".concat(f.name,".bulkUpdate(): ").concat(U," of ").concat(Y," operations failed"),J)})})})},Ft.prototype.bulkDelete=function(c){var f=this,p=c.length;return this._trans("readwrite",function(g){return f.core.mutate({trans:g,type:"delete",keys:c}).then(function(x){return ra(f,c,x)})}).then(function(g){var x=g.numFailures,_=g.failures;if(x===0)return g.lastResult;throw new Le("".concat(f.name,".bulkDelete(): ").concat(x," of ").concat(p," operations failed"),_)})};var tf=Ft;function Ft(){}function uo(c){function f(M,R){if(R){for(var W=arguments.length,ee=new Array(W-1);--W;)ee[W-1]=arguments[W];return p[M].subscribe.apply(null,ee),c}if(typeof M=="string")return p[M]}var p={};f.addEventType=_;for(var g=1,x=arguments.length;g<x;++g)_(arguments[g]);return f;function _(M,R,W){var ee,Y;if(typeof M!="object")return R=R||_n,Y={subscribers:[],fire:W=W||Ie,subscribe:function(z){Y.subscribers.indexOf(z)===-1&&(Y.subscribers.push(z),Y.fire=R(Y.fire,z))},unsubscribe:function(z){Y.subscribers=Y.subscribers.filter(function(U){return U!==z}),Y.fire=Y.subscribers.reduce(R,W)}},p[M]=f[M]=Y;i(ee=M).forEach(function(z){var U=ee[z];if(l(U))_(z,ee[z][0],ee[z][1]);else{if(U!=="asap")throw new le.InvalidArgument("Invalid event config");var J=_(z,He,function(){for(var X=arguments.length,K=new Array(X);X--;)K[X]=arguments[X];J.subscribers.forEach(function(V){E(function(){V.apply(null,K)})})})}})}}function fo(c,f){return S(f).from({prototype:c}),f}function Ps(c,f){return!(c.filter||c.algorithm||c.or)&&(f?c.justLimit:!c.replayFilter)}function ql(c,f){c.filter=an(c.filter,f)}function Hl(c,f,p){var g=c.replayFilter;c.replayFilter=g?function(){return an(g(),f())}:f,c.justLimit=p&&!g}function sa(c,f){if(c.isPrimKey)return f.primaryKey;var p=f.getIndexByKeyPath(c.index);if(p)return p;throw new le.Schema("KeyPath "+c.index+" on object store "+f.name+" is not indexed")}function nf(c,f,p){var g=sa(c,f.schema);return f.openCursor({trans:p,values:!c.keysOnly,reverse:c.dir==="prev",unique:!!c.unique,query:{index:g,range:c.range}})}function oa(c,f,p,g){var x,_,M=c.replayFilter?an(c.filter,c.replayFilter()):c.filter;return c.or?(x={},_=function(R,W,ee){var Y,z;M&&!M(W,ee,function(U){return W.stop(U)},function(U){return W.fail(U)})||((z=""+(Y=W.primaryKey))=="[object ArrayBuffer]"&&(z=""+new Uint8Array(Y)),m(x,z))||(x[z]=!0,f(R,W,ee))},Promise.all([c.or._iterate(_,p),rf(nf(c,g,p),c.algorithm,_,!c.keysOnly&&c.valueMapper)])):rf(nf(c,g,p),an(c.algorithm,M),f,!c.keysOnly&&c.valueMapper)}function rf(c,f,p,g){var x=De(g?function(_,M,R){return p(g(_),M,R)}:p);return c.then(function(_){if(_)return _.start(function(){var M=function(){return _.continue()};f&&!f(_,function(R){return M=R},function(R){_.stop(R),M=Ie},function(R){_.fail(R),M=Ie})||x(_.value,_,function(R){return M=R}),M()})})}Pt.prototype._read=function(c,f){var p=this._ctx;return p.error?p.table._trans(null,Ut.bind(null,p.error)):p.table._trans("readonly",c).then(f)},Pt.prototype._write=function(c){var f=this._ctx;return f.error?f.table._trans(null,Ut.bind(null,f.error)):f.table._trans("readwrite",c,"locked")},Pt.prototype._addAlgorithm=function(c){var f=this._ctx;f.algorithm=an(f.algorithm,c)},Pt.prototype._iterate=function(c,f){return oa(this._ctx,c,f,this._ctx.table.core)},Pt.prototype.clone=function(c){var f=Object.create(this.constructor.prototype),p=Object.create(this._ctx);return c&&u(p,c),f._ctx=p,f},Pt.prototype.raw=function(){return this._ctx.valueMapper=null,this},Pt.prototype.each=function(c){var f=this._ctx;return this._read(function(p){return oa(f,c,p,f.table.core)})},Pt.prototype.count=function(c){var f=this;return this._read(function(p){var g,x=f._ctx,_=x.table.core;return Ps(x,!0)?_.count({trans:p,query:{index:sa(x,_.schema),range:x.range}}).then(function(M){return Math.min(M,x.limit)}):(g=0,oa(x,function(){return++g,!1},p,_).then(function(){return g}))}).then(c)},Pt.prototype.sortBy=function(c,f){var p=c.split(".").reverse(),g=p[0],x=p.length-1;function _(W,ee){return ee?_(W[p[ee]],ee-1):W[g]}var M=this._ctx.dir==="next"?1:-1;function R(W,ee){return ot(_(W,x),_(ee,x))*M}return this.toArray(function(W){return W.sort(R)}).then(f)},Pt.prototype.toArray=function(c){var f=this;return this._read(function(p){var g,x,_,M=f._ctx;return Ps(M,!0)&&0<M.limit?(g=M.valueMapper,x=sa(M,M.table.core.schema),M.table.core.query({trans:p,limit:M.limit,values:!0,direction:M.dir==="prev"?"prev":void 0,query:{index:x,range:M.range}}).then(function(R){return R=R.result,g?R.map(g):R})):(_=[],oa(M,function(R){return _.push(R)},p,M.table.core).then(function(){return _}))},c)},Pt.prototype.offset=function(c){var f=this._ctx;return c<=0||(f.offset+=c,Ps(f)?Hl(f,function(){var p=c;return function(g,x){return p===0||(p===1?--p:x(function(){g.advance(p),p=0}),!1)}}):Hl(f,function(){var p=c;return function(){return--p<0}})),this},Pt.prototype.limit=function(c){return this._ctx.limit=Math.min(this._ctx.limit,c),Hl(this._ctx,function(){var f=c;return function(p,g,x){return--f<=0&&g(x),0<=f}},!0),this},Pt.prototype.until=function(c,f){return ql(this._ctx,function(p,g,x){return!c(p.value)||(g(x),f)}),this},Pt.prototype.first=function(c){return this.limit(1).toArray(function(f){return f[0]}).then(c)},Pt.prototype.last=function(c){return this.reverse().first(c)},Pt.prototype.filter=function(c){var f;return ql(this._ctx,function(p){return c(p.value)}),(f=this._ctx).isMatch=an(f.isMatch,c),this},Pt.prototype.and=function(c){return this.filter(c)},Pt.prototype.or=function(c){return new this.db.WhereClause(this._ctx.table,c,this)},Pt.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},Pt.prototype.desc=function(){return this.reverse()},Pt.prototype.eachKey=function(c){var f=this._ctx;return f.keysOnly=!f.isMatch,this.each(function(p,g){c(g.key,g)})},Pt.prototype.eachUniqueKey=function(c){return this._ctx.unique="unique",this.eachKey(c)},Pt.prototype.eachPrimaryKey=function(c){var f=this._ctx;return f.keysOnly=!f.isMatch,this.each(function(p,g){c(g.primaryKey,g)})},Pt.prototype.keys=function(c){var f=this._ctx,p=(f.keysOnly=!f.isMatch,[]);return this.each(function(g,x){p.push(x.key)}).then(function(){return p}).then(c)},Pt.prototype.primaryKeys=function(c){var f=this._ctx;if(Ps(f,!0)&&0<f.limit)return this._read(function(g){var x=sa(f,f.table.core.schema);return f.table.core.query({trans:g,values:!1,limit:f.limit,direction:f.dir==="prev"?"prev":void 0,query:{index:x,range:f.range}})}).then(function(g){return g.result}).then(c);f.keysOnly=!f.isMatch;var p=[];return this.each(function(g,x){p.push(x.primaryKey)}).then(function(){return p}).then(c)},Pt.prototype.uniqueKeys=function(c){return this._ctx.unique="unique",this.keys(c)},Pt.prototype.firstKey=function(c){return this.limit(1).keys(function(f){return f[0]}).then(c)},Pt.prototype.lastKey=function(c){return this.reverse().firstKey(c)},Pt.prototype.distinct=function(){var c,f=this._ctx,f=f.index&&f.table.schema.idxByName[f.index];return f&&f.multi&&(c={},ql(this._ctx,function(g){var g=g.primaryKey.toString(),x=m(c,g);return c[g]=!0,!x})),this},Pt.prototype.modify=function(c){var f=this,p=this._ctx;return this._write(function(g){function x(K,V){var se=V.failures;U+=K-V.numFailures;for(var te=0,ce=i(se);te<ce.length;te++){var be=ce[te];z.push(se[be])}}var _=typeof c=="function"?c:function(K){return ef(K,c)},M=p.table.core,Y=M.schema.primaryKey,R=Y.outbound,W=Y.extractKey,ee=200,Y=f.db._options.modifyChunkSize,z=(Y&&(ee=typeof Y=="object"?Y[M.name]||Y["*"]||200:Y),[]),U=0,J=[],X=c===sf;return f.clone().primaryKeys().then(function(K){function V(te){var ce=Math.min(ee,K.length-te),be=K.slice(te,te+ce);return(X?Promise.resolve([]):M.getMany({trans:g,keys:be,cache:"immutable"})).then(function(xe){var Pe=[],we=[],Ne=R?[]:null,ke=X?be:[];if(!X)for(var Be=0;Be<ce;++Be){var ve=xe[Be],tt={value:Q(ve),primKey:K[te+Be]};_.call(tt,tt.value,tt)!==!1&&(tt.value==null?ke.push(K[te+Be]):R||ot(W(ve),W(tt.value))===0?(we.push(tt.value),R&&Ne.push(K[te+Be])):(ke.push(K[te+Be]),Pe.push(tt.value)))}return Promise.resolve(0<Pe.length&&M.mutate({trans:g,type:"add",values:Pe}).then(function(nt){for(var at in nt.failures)ke.splice(parseInt(at),1);x(Pe.length,nt)})).then(function(){return(0<we.length||se&&typeof c=="object")&&M.mutate({trans:g,type:"put",keys:Ne,values:we,criteria:se,changeSpec:typeof c!="function"&&c,isAdditionalChunk:0<te}).then(function(nt){return x(we.length,nt)})}).then(function(){return(0<ke.length||se&&X)&&M.mutate({trans:g,type:"delete",keys:ke,criteria:se,isAdditionalChunk:0<te}).then(function(nt){return ra(p.table,ke,nt)}).then(function(nt){return x(ke.length,nt)})}).then(function(){return K.length>te+ce&&V(te+ee)})})}var se=Ps(p)&&p.limit===1/0&&(typeof c!="function"||X)&&{index:p.index,range:p.range};return V(0).then(function(){if(0<z.length)throw new ze("Error modifying one or more objects",z,U,J);return K.length})})})},Pt.prototype.delete=function(){var c=this._ctx,f=c.range;return!Ps(c)||c.table.schema.yProps||!c.isPrimKey&&f.type!==3?this.modify(sf):this._write(function(p){var g=c.table.core.schema.primaryKey,x=f;return c.table.core.count({trans:p,query:{index:g,range:x}}).then(function(_){return c.table.core.mutate({trans:p,type:"deleteRange",range:x}).then(function(W){var R=W.failures,W=W.numFailures;if(W)throw new ze("Could not delete some values",Object.keys(R).map(function(ee){return R[ee]}),_-W);return _-W})})})};var Jv=Pt;function Pt(){}var sf=function(c,f){return f.value=null};function Qv(c,f){return c<f?-1:c===f?0:1}function Zv(c,f){return f<c?-1:c===f?0:1}function Nn(c,f,p){return c=c instanceof af?new c.Collection(c):c,c._ctx.error=new(p||TypeError)(f),c}function Ms(c){return new c.Collection(c,function(){return of("")}).limit(0)}function ia(J,f,p,g){var x,_,M,R,W,ee,Y,z=p.length;if(!p.every(function(K){return typeof K=="string"}))return Nn(J,qt);function U(K){x=K==="next"?function(se){return se.toUpperCase()}:function(se){return se.toLowerCase()},_=K==="next"?function(se){return se.toLowerCase()}:function(se){return se.toUpperCase()},M=K==="next"?Qv:Zv;var V=p.map(function(se){return{lower:_(se),upper:x(se)}}).sort(function(se,te){return M(se.lower,te.lower)});R=V.map(function(se){return se.upper}),W=V.map(function(se){return se.lower}),Y=(ee=K)==="next"?"":g}U("next");var J=new J.Collection(J,function(){return Mr(R[0],W[z-1]+g)}),X=(J._ondirectionchange=function(K){U(K)},0);return J._addAlgorithm(function(K,V,se){var te=K.key;if(typeof te=="string"){var ce=_(te);if(f(ce,W,X))return!0;for(var be=null,xe=X;xe<z;++xe){var Pe=((we,Ne,ke,Be,ve,tt)=>{for(var nt=Math.min(we.length,Be.length),at=-1,yt=0;yt<nt;++yt){var Bn=Ne[yt];if(Bn!==Be[yt])return ve(we[yt],ke[yt])<0?we.substr(0,yt)+ke[yt]+ke.substr(yt+1):ve(we[yt],Be[yt])<0?we.substr(0,yt)+Be[yt]+ke.substr(yt+1):0<=at?we.substr(0,at)+Ne[at]+ke.substr(at+1):null;ve(we[yt],Bn)<0&&(at=yt)}return nt<Be.length&&tt==="next"?we+ke.substr(we.length):nt<we.length&&tt==="prev"?we.substr(0,ke.length):at<0?null:we.substr(0,at)+Be[at]+ke.substr(at+1)})(te,ce,R[xe],W[xe],M,ee);Pe===null&&be===null?X=xe+1:(be===null||0<M(be,Pe))&&(be=Pe)}V(be!==null?function(){K.continue(be+Y)}:se)}return!1}),J}function Mr(c,f,p,g){return{type:2,lower:c,upper:f,lowerOpen:p,upperOpen:g}}function of(c){return{type:1,lower:c,upper:c}}Object.defineProperty(hn.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),hn.prototype.between=function(c,f,p,g){p=p!==!1,g=g===!0;try{return 0<this._cmp(c,f)||this._cmp(c,f)===0&&(p||g)&&(!p||!g)?Ms(this):new this.Collection(this,function(){return Mr(c,f,!p,!g)})}catch{return Nn(this,ct)}},hn.prototype.equals=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return of(c)})},hn.prototype.above=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Mr(c,void 0,!0)})},hn.prototype.aboveOrEqual=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Mr(c,void 0,!1)})},hn.prototype.below=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Mr(void 0,c,!1,!0)})},hn.prototype.belowOrEqual=function(c){return c==null?Nn(this,ct):new this.Collection(this,function(){return Mr(void 0,c)})},hn.prototype.startsWith=function(c){return typeof c!="string"?Nn(this,qt):this.between(c,c+ge,!0,!0)},hn.prototype.startsWithIgnoreCase=function(c){return c===""?this.startsWith(c):ia(this,function(f,p){return f.indexOf(p[0])===0},[c],ge)},hn.prototype.equalsIgnoreCase=function(c){return ia(this,function(f,p){return f===p[0]},[c],"")},hn.prototype.anyOfIgnoreCase=function(){var c=ne.apply(me,arguments);return c.length===0?Ms(this):ia(this,function(f,p){return p.indexOf(f)!==-1},c,"")},hn.prototype.startsWithAnyOfIgnoreCase=function(){var c=ne.apply(me,arguments);return c.length===0?Ms(this):ia(this,function(f,p){return p.some(function(g){return f.indexOf(g)===0})},c,ge)},hn.prototype.anyOf=function(){var c,f,p=this,g=ne.apply(me,arguments),x=this._cmp;try{g.sort(x)}catch{return Nn(this,ct)}return g.length===0?Ms(this):((c=new this.Collection(this,function(){return Mr(g[0],g[g.length-1])}))._ondirectionchange=function(_){x=_==="next"?p._ascending:p._descending,g.sort(x)},f=0,c._addAlgorithm(function(_,M,R){for(var W=_.key;0<x(W,g[f]);)if(++f===g.length)return M(R),!1;return x(W,g[f])===0||(M(function(){_.continue(g[f])}),!1)}),c)},hn.prototype.notEqual=function(c){return this.inAnyRange([[-1/0,c],[c,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},hn.prototype.noneOf=function(){var c=ne.apply(me,arguments);if(c.length===0)return new this.Collection(this);try{c.sort(this._ascending)}catch{return Nn(this,ct)}var f=c.reduce(function(p,g){return p?p.concat([[p[p.length-1][1],g]]):[[-1/0,g]]},null);return f.push([c[c.length-1],this.db._maxKey]),this.inAnyRange(f,{includeLowers:!1,includeUppers:!1})},hn.prototype.inAnyRange=function(c,se){var p=this,g=this._cmp,x=this._ascending,_=this._descending,M=this._min,R=this._max;if(c.length===0)return Ms(this);if(!c.every(function(te){return te[0]!==void 0&&te[1]!==void 0&&x(te[0],te[1])<=0}))return Nn(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",le.InvalidArgument);var W=!se||se.includeLowers!==!1,ee=se&&se.includeUppers===!0,Y,z=x;function U(te,ce){return z(te[0],ce[0])}try{(Y=c.reduce(function(te,ce){for(var be=0,xe=te.length;be<xe;++be){var Pe=te[be];if(g(ce[0],Pe[1])<0&&0<g(ce[1],Pe[0])){Pe[0]=M(Pe[0],ce[0]),Pe[1]=R(Pe[1],ce[1]);break}}return be===xe&&te.push(ce),te},[])).sort(U)}catch{return Nn(this,ct)}var J=0,X=ee?function(te){return 0<x(te,Y[J][1])}:function(te){return 0<=x(te,Y[J][1])},K=W?function(te){return 0<_(te,Y[J][0])}:function(te){return 0<=_(te,Y[J][0])},V=X,se=new this.Collection(this,function(){return Mr(Y[0][0],Y[Y.length-1][1],!W,!ee)});return se._ondirectionchange=function(te){z=te==="next"?(V=X,x):(V=K,_),Y.sort(U)},se._addAlgorithm(function(te,ce,be){for(var xe,Pe=te.key;V(Pe);)if(++J===Y.length)return ce(be),!1;return!X(xe=Pe)&&!K(xe)||(p._cmp(Pe,Y[J][1])===0||p._cmp(Pe,Y[J][0])===0||ce(function(){z===x?te.continue(Y[J][0]):te.continue(Y[J][1])}),!1)}),se},hn.prototype.startsWithAnyOf=function(){var c=ne.apply(me,arguments);return c.every(function(f){return typeof f=="string"})?c.length===0?Ms(this):this.inAnyRange(c.map(function(f){return[f,f+ge]})):Nn(this,"startsWithAnyOf() only works with strings")};var af=hn;function hn(){}function nr(c){return De(function(f){return ho(f),c(f.target.error),!1})}function ho(c){c.stopPropagation&&c.stopPropagation(),c.preventDefault&&c.preventDefault()}var po="storagemutated",Yl="x-storagemutated-1",Er=uo(null,po),eS=(ur.prototype._lock=function(){return C(!$e.global),++this._reculock,this._reculock!==1||$e.global||($e.lockOwnerFor=this),this},ur.prototype._unlock=function(){if(C(!$e.global),--this._reculock==0)for($e.global||($e.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var c=this._blockedFuncs.shift();try{cr(c[1],c[0])}catch{}}return this},ur.prototype._locked=function(){return this._reculock&&$e.lockOwnerFor!==this},ur.prototype.create=function(c){var f=this;if(this.mode){var p=this.db.idbdb,g=this.db._state.dbOpenError;if(C(!this.idbtrans),!c&&!p)switch(g&&g.name){case"DatabaseClosedError":throw new le.DatabaseClosed(g);case"MissingAPIError":throw new le.MissingAPI(g.message,g);default:throw new le.OpenFailed(g)}if(!this.active)throw new le.TransactionInactive;C(this._completion._state===null),(c=this.idbtrans=c||(this.db.core||p).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=De(function(x){ho(x),f._reject(c.error)}),c.onabort=De(function(x){ho(x),f.active&&f._reject(new le.Abort(c.error)),f.active=!1,f.on("abort").fire(x)}),c.oncomplete=De(function(){f.active=!1,f._resolve(),"mutatedParts"in c&&Er.storagemutated.fire(c.mutatedParts)})}return this},ur.prototype._promise=function(c,f,p){var g,x=this;return c==="readwrite"&&this.mode!=="readwrite"?Ut(new le.ReadOnly("Transaction is readonly")):this.active?this._locked()?new H(function(_,M){x._blockedFuncs.push([function(){x._promise(c,f,p).then(_,M)},$e])}):p?Zn(function(){var _=new H(function(M,R){x._lock();var W=f(M,R,x);W&&W.then&&W.then(M,R)});return _.finally(function(){return x._unlock()}),_._lib=!0,_}):((g=new H(function(_,M){var R=f(_,M,x);R&&R.then&&R.then(_,M)}))._lib=!0,g):Ut(new le.TransactionInactive)},ur.prototype._root=function(){return this.parent?this.parent._root():this},ur.prototype.waitFor=function(c){var f,p=this._root(),g=H.resolve(c),x=(p._waitingFor?p._waitingFor=p._waitingFor.then(function(){return g}):(p._waitingFor=g,p._waitingQueue=[],f=p.idbtrans.objectStore(p.storeNames[0]),function _(){for(++p._spinCount;p._waitingQueue.length;)p._waitingQueue.shift()();p._waitingFor&&(f.get(-1/0).onsuccess=_)}()),p._waitingFor);return new H(function(_,M){g.then(function(R){return p._waitingQueue.push(De(_.bind(null,R)))},function(R){return p._waitingQueue.push(De(M.bind(null,R)))}).finally(function(){p._waitingFor===x&&(p._waitingFor=null)})})},ur.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new le.Abort))},ur.prototype.table=function(c){var f=this._memoizedTables||(this._memoizedTables={});if(m(f,c))return f[c];var p=this.schema[c];if(p)return(p=new this.db.Table(c,p,this)).core=this.db.core.table(c),f[c]=p;throw new le.NotFound("Table "+c+" not part of transaction")},ur);function ur(){}function Xl(c,f,p,g,x,_,M,R){return{name:c,keyPath:f,unique:p,multi:g,auto:x,compound:_,src:(p&&!M?"&":"")+(g?"*":"")+(x?"++":"")+lf(f),type:R}}function lf(c){return typeof c=="string"?c:c?"["+[].join.call(c,"+")+"]":""}function Kl(c,f,p){return{name:c,primKey:f,indexes:p,mappedClass:null,idxByName:(g=function(x){return[x.name,x]},p.reduce(function(x,_,M){return _=g(_,M),_&&(x[_[0]]=_[1]),x},{}))};var g}var mo=function(c){try{return c.only([[]]),mo=function(){return[[]]},[[]]}catch{return mo=function(){return ge},ge}};function Vl(c){return c==null?function(){}:typeof c=="string"?(f=c).split(".").length===1?function(p){return p[f]}:function(p){return A(p,f)}:function(p){return A(p,c)};var f}function cf(c){return[].slice.call(c)}var tS=0;function go(c){return c==null?":id":typeof c=="string"?c:"[".concat(c.join("+"),"]")}function nS(c,f,M){function g(V){if(V.type===3)return null;if(V.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var J=V.lower,X=V.upper,K=V.lowerOpen,V=V.upperOpen;return J===void 0?X===void 0?null:f.upperBound(X,!!V):X===void 0?f.lowerBound(J,!!K):f.bound(J,X,!!K,!!V)}function x(U){var J,X,K=U.name;return{name:K,schema:U,mutate:function(V){var se=V.trans,te=V.type,ce=V.keys,be=V.values,xe=V.range;return new Promise(function(Pe,we){Pe=De(Pe);var Ne=se.objectStore(K),ke=Ne.keyPath==null,Be=te==="put"||te==="add";if(!Be&&te!=="delete"&&te!=="deleteRange")throw new Error("Invalid operation type: "+te);var ve,tt=(ce||be||{length:1}).length;if(ce&&be&&ce.length!==be.length)throw new Error("Given keys array must have same length as given values array.");if(tt===0)return Pe({numFailures:0,failures:{},results:[],lastResult:void 0});function nt(jn){++Bn,ho(jn)}var at=[],yt=[],Bn=0;if(te==="deleteRange"){if(xe.type===4)return Pe({numFailures:Bn,failures:yt,results:[],lastResult:void 0});xe.type===3?at.push(ve=Ne.clear()):at.push(ve=Ne.delete(g(xe)))}else{var ke=Be?ke?[be,ce]:[be,null]:[ce,null],it=ke[0],Cn=ke[1];if(Be)for(var Tn=0;Tn<tt;++Tn)at.push(ve=Cn&&Cn[Tn]!==void 0?Ne[te](it[Tn],Cn[Tn]):Ne[te](it[Tn])),ve.onerror=nt;else for(Tn=0;Tn<tt;++Tn)at.push(ve=Ne[te](it[Tn])),ve.onerror=nt}function ba(jn){jn=jn.target.result,at.forEach(function(Jr,hc){return Jr.error!=null&&(yt[hc]=Jr.error)}),Pe({numFailures:Bn,failures:yt,results:te==="delete"?ce:at.map(function(Jr){return Jr.result}),lastResult:jn})}ve.onerror=function(jn){nt(jn),ba(jn)},ve.onsuccess=ba})},getMany:function(V){var se=V.trans,te=V.keys;return new Promise(function(ce,be){ce=De(ce);for(var xe,Pe=se.objectStore(K),we=te.length,Ne=new Array(we),ke=0,Be=0,ve=function(at){at=at.target,Ne[at._pos]=at.result,++Be===ke&&ce(Ne)},tt=nr(be),nt=0;nt<we;++nt)te[nt]!=null&&((xe=Pe.get(te[nt]))._pos=nt,xe.onsuccess=ve,xe.onerror=tt,++ke);ke===0&&ce(Ne)})},get:function(V){var se=V.trans,te=V.key;return new Promise(function(ce,be){ce=De(ce);var xe=se.objectStore(K).get(te);xe.onsuccess=function(Pe){return ce(Pe.target.result)},xe.onerror=nr(be)})},query:(J=W,X=ee,function(V){return new Promise(function(se,te){se=De(se);var ce,be,xe,Pe,tt=V.trans,we=V.values,Ne=V.limit,ve=V.query,ke=(ke=V.direction)!=null?ke:"next",Be=Ne===1/0?void 0:Ne,nt=ve.index,ve=ve.range,tt=tt.objectStore(K),tt=nt.isPrimaryKey?tt:tt.index(nt.name),nt=g(ve);if(Ne===0)return se({result:[]});X?(ve={query:nt,count:Be,direction:ke},(ce=we?tt.getAll(ve):tt.getAllKeys(ve)).onsuccess=function(at){return se({result:at.target.result})},ce.onerror=nr(te)):J&&ke==="next"?((ce=we?tt.getAll(nt,Be):tt.getAllKeys(nt,Be)).onsuccess=function(at){return se({result:at.target.result})},ce.onerror=nr(te)):(be=0,xe=!we&&"openKeyCursor"in tt?tt.openKeyCursor(nt,ke):tt.openCursor(nt,ke),Pe=[],xe.onsuccess=function(){var at=xe.result;return!at||(Pe.push(we?at.value:at.primaryKey),++be===Ne)?se({result:Pe}):void at.continue()},xe.onerror=nr(te))})}),openCursor:function(V){var se=V.trans,te=V.values,ce=V.query,be=V.reverse,xe=V.unique;return new Promise(function(Pe,we){Pe=De(Pe);var Be=ce.index,Ne=ce.range,ke=se.objectStore(K),ke=Be.isPrimaryKey?ke:ke.index(Be.name),Be=be?xe?"prevunique":"prev":xe?"nextunique":"next",ve=!te&&"openKeyCursor"in ke?ke.openKeyCursor(g(Ne),Be):ke.openCursor(g(Ne),Be);ve.onerror=nr(we),ve.onsuccess=De(function(tt){var nt,at,yt,Bn,it=ve.result;it?(it.___id=++tS,it.done=!1,nt=it.continue.bind(it),at=(at=it.continuePrimaryKey)&&at.bind(it),yt=it.advance.bind(it),Bn=function(){throw new Error("Cursor not stopped")},it.trans=se,it.stop=it.continue=it.continuePrimaryKey=it.advance=function(){throw new Error("Cursor not started")},it.fail=De(we),it.next=function(){var Cn=this,Tn=1;return this.start(function(){return Tn--?Cn.continue():Cn.stop()}).then(function(){return Cn})},it.start=function(Cn){function Tn(){if(ve.result)try{Cn()}catch(jn){it.fail(jn)}else it.done=!0,it.start=function(){throw new Error("Cursor behind last entry")},it.stop()}var ba=new Promise(function(jn,Jr){jn=De(jn),ve.onerror=nr(Jr),it.fail=Jr,it.stop=function(hc){it.stop=it.continue=it.continuePrimaryKey=it.advance=Bn,jn(hc)}});return ve.onsuccess=De(function(jn){ve.onsuccess=Tn,Tn()}),it.continue=nt,it.continuePrimaryKey=at,it.advance=yt,Tn(),ba},Pe(it)):Pe(null)},we)})},count:function(V){var se=V.query,te=V.trans,ce=se.index,be=se.range;return new Promise(function(xe,Pe){var we=te.objectStore(K),we=ce.isPrimaryKey?we:we.index(ce.name),Ne=g(be),Ne=Ne?we.count(Ne):we.count();Ne.onsuccess=De(function(ke){return xe(ke.target.result)}),Ne.onerror=nr(Pe)})}}}_=M,R=cf((M=c).objectStoreNames),Y=0<R.length?_.objectStore(R[0]):{};var _,M={schema:{name:M.name,tables:R.map(function(U){return _.objectStore(U)}).map(function(U){var J=U.keyPath,X=U.autoIncrement,V=l(J),K={},V={name:U.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:J==null,compound:V,keyPath:J,autoIncrement:X,unique:!0,extractKey:Vl(J)},indexes:cf(U.indexNames).map(function(se){return U.index(se)}).map(function(be){var xe=be.name,te=be.unique,ce=be.multiEntry,be=be.keyPath,xe={name:xe,compound:l(be),keyPath:be,unique:te,multiEntry:ce,extractKey:Vl(be)};return K[go(be)]=xe}),getIndexByKeyPath:function(se){return K[go(se)]}};return K[":id"]=V.primaryKey,J!=null&&(K[go(J)]=V.primaryKey),V})},hasGetAll:0<R.length&&"getAll"in Y&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in Y},R=M.schema,W=M.hasGetAll,ee=M.hasIdb3Features,Y=R.tables.map(x),z={};return Y.forEach(function(U){return z[U.name]=U}),{stack:"dbcore",transaction:c.transaction.bind(c),table:function(U){if(z[U])return z[U];throw new Error("Table '".concat(U,"' not found"))},MIN_KEY:-1/0,MAX_KEY:mo(f),schema:R}}function rS(c,f,p,g){return p=p.IDBKeyRange,f=nS(f,p,g),{dbcore:c.dbcore.reduce(function(x,_){return _=_.create,r(r({},x),_(x))},f)}}function aa(c,f){var p=f.db,p=rS(c._middlewares,p,c._deps,f);c.core=p.dbcore,c.tables.forEach(function(g){var x=g.name;c.core.schema.tables.some(function(_){return _.name===x})&&(g.core=c.core.table(x),c[x]instanceof c.Table)&&(c[x].core=g.core)})}function la(c,f,p,g){p.forEach(function(x){var _=g[x];f.forEach(function(M){var R=function W(ee,Y){return k(ee,Y)||(ee=d(ee))&&W(ee,Y)}(M,x);(!R||"value"in R&&R.value===void 0)&&(M===c.Transaction.prototype||M instanceof c.Transaction?w(M,x,{get:function(){return this.table(x)},set:function(W){v(this,x,{value:W,writable:!0,configurable:!0,enumerable:!0})}}):M[x]=new c.Table(x,_))})})}function Gl(c,f){f.forEach(function(p){for(var g in p)p[g]instanceof c.Table&&delete p[g]})}function sS(c,f){return c._cfg.version-f._cfg.version}function oS(c,f,p,g){var x=c._dbSchema,_=(p.objectStoreNames.contains("$meta")&&!x.$meta&&(x.$meta=Kl("$meta",df("")[0],[]),c._storeNames.push("$meta")),c._createTransaction("readwrite",c._storeNames,x)),M=(_.create(p),_._completion.catch(g),_._reject.bind(_)),R=$e.transless||$e;Zn(function(){if($e.trans=_,$e.transless=R,f!==0)return aa(c,p),ee=f,((W=_).storeNames.includes("$meta")?W.table("$meta").get("version").then(function(Y){return Y??ee}):H.resolve(ee)).then(function(V){var z=c,U=V,J=_,X=p,K=[],V=z._versions,se=z._dbSchema=ua(0,z.idbdb,X);return(V=V.filter(function(te){return te._cfg.version>=U})).length===0?H.resolve():(V.forEach(function(te){K.push(function(){var ce,be,xe,Pe=se,we=te._cfg.dbschema,Ne=(da(z,Pe,X),da(z,we,X),se=z._dbSchema=we,Jl(Pe,we)),ke=(Ne.add.forEach(function(Be){Ql(X,Be[0],Be[1].primKey,Be[1].indexes)}),Ne.change.forEach(function(Be){if(Be.recreate)throw new le.Upgrade("Not yet support for changing primary key");var ve=X.objectStore(Be.name);Be.add.forEach(function(tt){return ca(ve,tt)}),Be.change.forEach(function(tt){ve.deleteIndex(tt.name),ca(ve,tt)}),Be.del.forEach(function(tt){return ve.deleteIndex(tt)})}),te._cfg.contentUpgrade);if(ke&&te._cfg.version>U)return aa(z,X),J._memoizedTables={},ce=D(we),Ne.del.forEach(function(Be){ce[Be]=Pe[Be]}),Gl(z,[z.Transaction.prototype]),la(z,[z.Transaction.prototype],i(ce),ce),J.schema=ce,(be=he(ke))&&lr(),we=H.follow(function(){var Be;(xe=ke(J))&&be&&(Be=er.bind(null,null),xe.then(Be,Be))}),xe&&typeof xe.then=="function"?H.resolve(xe):we.then(function(){return xe})}),K.push(function(ce){var be,xe,Pe=te._cfg.dbschema;be=Pe,xe=ce,[].slice.call(xe.db.objectStoreNames).forEach(function(we){return be[we]==null&&xe.db.deleteObjectStore(we)}),Gl(z,[z.Transaction.prototype]),la(z,[z.Transaction.prototype],z._storeNames,z._dbSchema),J.schema=z._dbSchema}),K.push(function(ce){z.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(z.idbdb.version/10)===te._cfg.version?(z.idbdb.deleteObjectStore("$meta"),delete z._dbSchema.$meta,z._storeNames=z._storeNames.filter(function(be){return be!=="$meta"})):ce.objectStore("$meta").put(te._cfg.version,"version"))})}),function te(){return K.length?H.resolve(K.shift()(J.idbtrans)).then(te):H.resolve()}().then(function(){uf(se,X)}))}).catch(M);var W,ee;i(x).forEach(function(Y){Ql(p,Y,x[Y].primKey,x[Y].indexes)}),aa(c,p),H.follow(function(){return c.on.populate.fire(_)}).catch(M)})}function iS(c,f){uf(c._dbSchema,f),f.db.version%10!=0||f.objectStoreNames.contains("$meta")||f.db.createObjectStore("$meta").add(Math.ceil(f.db.version/10-1),"version");var p=ua(0,c.idbdb,f);da(c,c._dbSchema,f);for(var g=0,x=Jl(p,c._dbSchema).change;g<x.length;g++){var _=(M=>{if(M.change.length||M.recreate)return console.warn("Unable to patch indexes of table ".concat(M.name," because it has changes on the type of index or primary key.")),{value:void 0};var R=f.objectStore(M.name);M.add.forEach(function(W){Xt&&console.debug("Dexie upgrade patch: Creating missing index ".concat(M.name,".").concat(W.src)),ca(R,W)})})(x[g]);if(typeof _=="object")return _.value}}function Jl(c,f){var p,g={del:[],add:[],change:[]};for(p in c)f[p]||g.del.push(p);for(p in f){var x=c[p],_=f[p];if(x){var M={name:p,def:_,recreate:!1,del:[],add:[],change:[]};if(""+(x.primKey.keyPath||"")!=""+(_.primKey.keyPath||"")||x.primKey.auto!==_.primKey.auto)M.recreate=!0,g.change.push(M);else{var R=x.idxByName,W=_.idxByName,ee=void 0;for(ee in R)W[ee]||M.del.push(ee);for(ee in W){var Y=R[ee],z=W[ee];Y?Y.src!==z.src&&M.change.push(z):M.add.push(z)}(0<M.del.length||0<M.add.length||0<M.change.length)&&g.change.push(M)}}else g.add.push([p,_])}return g}function Ql(c,f,p,g){var x=c.db.createObjectStore(f,p.keyPath?{keyPath:p.keyPath,autoIncrement:p.auto}:{autoIncrement:p.auto});g.forEach(function(_){return ca(x,_)})}function uf(c,f){i(c).forEach(function(p){f.db.objectStoreNames.contains(p)||(Xt&&console.debug("Dexie: Creating missing table",p),Ql(f,p,c[p].primKey,c[p].indexes))})}function ca(c,f){c.createIndex(f.name,f.keyPath,{unique:f.unique,multiEntry:f.multi})}function ua(c,f,p){var g={};return T(f.objectStoreNames,0).forEach(function(x){for(var _=p.objectStore(x),M=Xl(lf(ee=_.keyPath),ee||"",!0,!1,!!_.autoIncrement,ee&&typeof ee!="string",!0),R=[],W=0;W<_.indexNames.length;++W){var Y=_.index(_.indexNames[W]),ee=Y.keyPath,Y=Xl(Y.name,ee,!!Y.unique,!!Y.multiEntry,!1,ee&&typeof ee!="string",!1);R.push(Y)}g[x]=Kl(x,M,R)}),g}function da(c,f,p){for(var g=p.db.objectStoreNames,x=0;x<g.length;++x){var _=g[x],M=p.objectStore(_);c._hasGetAll="getAll"in M;for(var R=0;R<M.indexNames.length;++R){var W,ee=M.indexNames[R],Y=M.index(ee).keyPath,Y=typeof Y=="string"?Y:"["+T(Y).join("+")+"]";f[_]&&(W=f[_].idxByName[Y])&&(W.name=ee,delete f[_].idxByName[Y],f[_].idxByName[ee]=W)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&o.WorkerGlobalScope&&o instanceof o.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(c._hasGetAll=!1)}function df(c){return c.split(",").map(function(f,p){var x=f.split(":"),g=(g=x[1])==null?void 0:g.trim(),x=(f=x[0].trim()).replace(/([&*]|\+\+)/g,""),_=/^\[/.test(x)?x.match(/^\[(.*)\]$/)[1].split("+"):x;return Xl(x,_||null,/\&/.test(f),/\*/.test(f),/\+\+/.test(f),l(_),p===0,g)})}Es.prototype._createTableSchema=Kl,Es.prototype._parseIndexSyntax=df,Es.prototype._parseStoresSpec=function(c,f){var p=this;i(c).forEach(function(g){if(c[g]!==null){var x=p._parseIndexSyntax(c[g]),_=x.shift();if(!_)throw new le.Schema("Invalid schema for table "+g+": "+c[g]);if(_.unique=!0,_.multi)throw new le.Schema("Primary key cannot be multiEntry*");x.forEach(function(M){if(M.auto)throw new le.Schema("Only primary key can be marked as autoIncrement (++)");if(!M.keyPath)throw new le.Schema("Index must have a name and cannot be an empty string")}),_=p._createTableSchema(g,_,x),f[g]=_}})},Es.prototype.stores=function(p){var f=this.db,p=(this._cfg.storesSource=this._cfg.storesSource?u(this._cfg.storesSource,p):p,f._versions),g={},x={};return p.forEach(function(_){u(g,_._cfg.storesSource),x=_._cfg.dbschema={},_._parseStoresSpec(g,x)}),f._dbSchema=x,Gl(f,[f._allTables,f,f.Transaction.prototype]),la(f,[f._allTables,f,f.Transaction.prototype,this._cfg.tables],i(x),x),f._storeNames=i(x),this},Es.prototype.upgrade=function(c){return this._cfg.contentUpgrade=At(this._cfg.contentUpgrade||Ie,c),this};var aS=Es;function Es(){}var yo=(()=>{var c,f,p;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(c=new Set,f=new FinalizationRegistry(function(g){c.delete(g)}),{toArray:function(){return Array.from(c).map(function(g){return g.deref()}).filter(function(g){return g!==void 0})},add:function(g){var x=new WeakRef(g._novip);c.add(x),f.register(g._novip,x,x),c.size>g._options.maxConnections&&(x=c.values().next().value,c.delete(x),f.unregister(x))},remove:function(g){if(g)for(var x=c.values(),_=x.next();!_.done;){var M=_.value;if(M.deref()===g._novip)return c.delete(M),void f.unregister(M);_=x.next()}}}):(p=[],{toArray:function(){return p},add:function(g){p.push(g._novip)},remove:function(g){g&&(g=p.indexOf(g._novip))!==-1&&p.splice(g,1)}})})();function Zl(c,f){var p=c._dbNamesDB;return p||(p=c._dbNamesDB=new wr(Bt,{addons:[],indexedDB:c,IDBKeyRange:f})).version(1).stores({dbnames:"name"}),p.table("dbnames")}function ec(c){return c&&typeof c.databases=="function"}function tc(c){return Zn(function(){return $e.letThrough=!0,c()})}function nc(c){return!("from"in c)}var kn=function(c,f){var p;if(!this)return p=new kn,c&&"d"in c&&u(p,c),p;u(this,arguments.length?{d:1,from:c,to:1<arguments.length?f:c}:{d:0})};function bo(c,f,p){var g=ot(f,p);if(!isNaN(g)){if(0<g)throw RangeError();if(nc(c))return u(c,{from:f,to:p,d:1});var g=c.l,x=c.r;if(ot(p,c.from)<0)return g?bo(g,f,p):c.l={from:f,to:p,d:1,l:null,r:null},hf(c);if(0<ot(f,c.to))return x?bo(x,f,p):c.r={from:f,to:p,d:1,l:null,r:null},hf(c);ot(f,c.from)<0&&(c.from=f,c.l=null,c.d=x?x.d+1:1),0<ot(p,c.to)&&(c.to=p,c.r=null,c.d=c.l?c.l.d+1:1),f=!c.r,g&&!c.l&&vo(c,g),x&&f&&vo(c,x)}}function vo(c,f){nc(f)||function p(g,x){var _=x.from,M=x.l,R=x.r;bo(g,_,x.to),M&&p(g,M),R&&p(g,R)}(c,f)}function ff(c,f){var p=fa(f),g=p.next();if(!g.done)for(var x=g.value,_=fa(c),M=_.next(x.from),R=M.value;!g.done&&!M.done;){if(ot(R.from,x.to)<=0&&0<=ot(R.to,x.from))return!0;ot(x.from,R.from)<0?x=(g=p.next(R.from)).value:R=(M=_.next(x.from)).value}return!1}function fa(c){var f=nc(c)?null:{s:0,n:c};return{next:function(p){for(var g=0<arguments.length;f;)switch(f.s){case 0:if(f.s=1,g)for(;f.n.l&&ot(p,f.n.from)<0;)f={up:f,n:f.n.l,s:1};else for(;f.n.l;)f={up:f,n:f.n.l,s:1};case 1:if(f.s=2,!g||ot(p,f.n.to)<=0)return{value:f.n,done:!1};case 2:if(f.n.r){f.s=3,f={up:f,n:f.n.r,s:0};continue}case 3:f=f.up}return{done:!0}}}}function hf(c){var f,p,g,x=(((x=c.r)==null?void 0:x.d)||0)-(((x=c.l)==null?void 0:x.d)||0),x=1<x?"r":x<-1?"l":"";x&&(f=x=="r"?"l":"r",p=r({},c),g=c[x],c.from=g.from,c.to=g.to,c[x]=g[x],p[x]=g[f],(c[f]=p).d=pf(p)),c.d=pf(c)}function pf(p){var f=p.r,p=p.l;return(f?p?Math.max(f.d,p.d):f.d:p?p.d:0)+1}function ha(c,f){return i(f).forEach(function(p){c[p]?vo(c[p],f[p]):c[p]=function g(x){var _,M,R={};for(_ in x)m(x,_)&&(M=x[_],R[_]=!M||typeof M!="object"||q.has(M.constructor)?M:g(M));return R}(f[p])}),c}function rc(c,f){return c.all||f.all||Object.keys(c).some(function(p){return f[p]&&ff(f[p],c[p])})}b(kn.prototype,((It={add:function(c){return vo(this,c),this},addKey:function(c){return bo(this,c,c),this},addKeys:function(c){var f=this;return c.forEach(function(p){return bo(f,p,p)}),this},hasKey:function(c){var f=fa(this).next(c).value;return f&&ot(f.from,c)<=0&&0<=ot(f.to,c)}})[pe]=function(){return fa(this)},It));var Vr={},sc={},oc=!1;function pa(c){ha(sc,c),oc||(oc=!0,setTimeout(function(){oc=!1,ic(sc,!(sc={}))},0))}function ic(c,f){f===void 0&&(f=!1);var p=new Set;if(c.all)for(var g=0,x=Object.values(Vr);g<x.length;g++)mf(R=x[g],c,p,f);else for(var _ in c){var M,R,_=/^idb\:\/\/(.*)\/(.*)\//.exec(_);_&&(M=_[1],_=_[2],R=Vr["idb://".concat(M,"/").concat(_)])&&mf(R,c,p,f)}p.forEach(function(W){return W()})}function mf(c,f,p,g){for(var x=[],_=0,M=Object.entries(c.queries.query);_<M.length;_++){for(var R=M[_],W=R[0],ee=[],Y=0,z=R[1];Y<z.length;Y++){var U=z[Y];rc(f,U.obsSet)?U.subscribers.forEach(function(V){return p.add(V)}):g&&ee.push(U)}g&&x.push([W,ee])}if(g)for(var J=0,X=x;J<X.length;J++){var K=X[J],W=K[0],ee=K[1];c.queries.query[W]=ee}}function lS(c){var f=c._state,p=c._deps.indexedDB;if(f.isBeingOpened||c.idbdb)return f.dbReadyPromise.then(function(){return f.dbOpenError?Ut(f.dbOpenError):c});f.isBeingOpened=!0,f.dbOpenError=null,f.openComplete=!1;var g=f.openCanceller,x=Math.round(10*c.verno),_=!1;function M(){if(f.openCanceller!==g)throw new le.DatabaseClosed("db.open() was cancelled")}function R(){return new H(function(U,J){if(M(),!p)throw new le.MissingAPI;var X=c.name,K=f.autoSchema||!x?p.open(X):p.open(X,x);if(!K)throw new le.MissingAPI;K.onerror=nr(J),K.onblocked=De(c._fireOnBlocked),K.onupgradeneeded=De(function(V){var se;Y=K.transaction,f.autoSchema&&!c._options.allowEmptyDB?(K.onerror=ho,Y.abort(),K.result.close(),(se=p.deleteDatabase(X)).onsuccess=se.onerror=De(function(){J(new le.NoSuchDatabase("Database ".concat(X," doesnt exist")))})):(Y.onerror=nr(J),se=V.oldVersion>Math.pow(2,62)?0:V.oldVersion,z=se<1,c.idbdb=K.result,_&&iS(c,Y),oS(c,se/10,Y,J))},J),K.onsuccess=De(function(){Y=null;var V,se,te,ce,be,xe,Pe=c.idbdb=K.result,we=T(Pe.objectStoreNames);if(0<we.length)try{var Ne=Pe.transaction((be=we).length===1?be[0]:be,"readonly");if(f.autoSchema)xe=Pe,ce=Ne,(te=c).verno=xe.version/10,ce=te._dbSchema=ua(0,xe,ce),te._storeNames=T(xe.objectStoreNames,0),la(te,[te._allTables],i(ce),ce);else if(da(c,c._dbSchema,Ne),se=Ne,((se=Jl(ua(0,(V=c).idbdb,se),V._dbSchema)).add.length||se.change.some(function(ke){return ke.add.length||ke.change.length}))&&!_)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),Pe.close(),x=Pe.version+1,_=!0,U(R());aa(c,Ne)}catch{}yo.add(c),Pe.onversionchange=De(function(ke){f.vcFired=!0,c.on("versionchange").fire(ke)}),Pe.onclose=De(function(){c.close({disableAutoOpen:!1})}),z&&(we=c._deps,be=X,ec(xe=we.indexedDB)||be===Bt||Zl(xe,we.IDBKeyRange).put({name:be}).catch(Ie)),U()},J)}).catch(function(U){switch(U==null?void 0:U.name){case"UnknownError":if(0<f.PR1398_maxLoop)return f.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),R();break;case"VersionError":if(0<x)return x=0,R()}return H.reject(U)})}var W,ee=f.dbReadyResolve,Y=null,z=!1;return H.race([g,(typeof navigator>"u"?H.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(U){function J(){return indexedDB.databases().finally(U)}W=setInterval(J,100),J()}).finally(function(){return clearInterval(W)}):Promise.resolve()).then(R)]).then(function(){return M(),f.onReadyBeingFired=[],H.resolve(tc(function(){return c.on.ready.fire(c.vip)})).then(function U(){var J;if(0<f.onReadyBeingFired.length)return J=f.onReadyBeingFired.reduce(At,Ie),f.onReadyBeingFired=[],H.resolve(tc(function(){return J(c.vip)})).then(U)})}).finally(function(){f.openCanceller===g&&(f.onReadyBeingFired=null,f.isBeingOpened=!1)}).catch(function(U){f.dbOpenError=U;try{Y&&Y.abort()}catch{}return g===f.openCanceller&&c._close(),Ut(U)}).finally(function(){f.openComplete=!0,ee()}).then(function(){var U;return z&&(U={},c.tables.forEach(function(J){J.schema.indexes.forEach(function(X){X.name&&(U["idb://".concat(c.name,"/").concat(J.name,"/").concat(X.name)]=new kn(-1/0,[[[]]]))}),U["idb://".concat(c.name,"/").concat(J.name,"/")]=U["idb://".concat(c.name,"/").concat(J.name,"/:dels")]=new kn(-1/0,[[[]]])}),Er(po).fire(U),ic(U,!0)),c})}function ac(c){function f(_){return c.next(_)}var p=x(f),g=x(function(_){return c.throw(_)});function x(_){return function(R){var R=_(R),W=R.value;return R.done?W:W&&typeof W.then=="function"?W.then(p,g):l(W)?Promise.all(W).then(p,g):p(W)}}return x(f)()}function ma(c,f,p){for(var g=l(c)?c.slice():[c],x=0;x<p;++x)g.push(f);return g}var cS={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(c){return r(r({},c),{table:function(g){var p=c.table(g),g=p.schema,x={},_=[];function M(U,J,X){var te=go(U),K=x[te]=x[te]||[],V=U==null?0:typeof U=="string"?1:U.length,se=0<J,te=r(r({},X),{name:se?"".concat(te,"(virtual-from:").concat(X.name,")"):X.name,lowLevelIndex:X,isVirtual:se,keyTail:J,keyLength:V,extractKey:Vl(U),unique:!se&&X.unique});return K.push(te),te.isPrimaryKey||_.push(te),1<V&&M(V===2?U[0]:U.slice(0,V-1),J+1,X),K.sort(function(ce,be){return ce.keyTail-be.keyTail}),te}var R=M(g.primaryKey.keyPath,0,g.primaryKey);x[":id"]=[R];for(var W=0,ee=g.indexes;W<ee.length;W++){var Y=ee[W];M(Y.keyPath,0,Y)}function z(U){var J,X=U.query.index;return X.isVirtual?r(r({},U),{query:{index:X.lowLevelIndex,range:(J=U.query.range,X=X.keyTail,{type:J.type===1?2:J.type,lower:ma(J.lower,J.lowerOpen?c.MAX_KEY:c.MIN_KEY,X),lowerOpen:!0,upper:ma(J.upper,J.upperOpen?c.MIN_KEY:c.MAX_KEY,X),upperOpen:!0})}}):U}return r(r({},p),{schema:r(r({},g),{primaryKey:R,indexes:_,getIndexByKeyPath:function(U){return(U=x[go(U)])&&U[0]}}),count:function(U){return p.count(z(U))},query:function(U){return p.query(z(U))},openCursor:function(U){var J=U.query.index,X=J.keyTail,K=J.keyLength;return J.isVirtual?p.openCursor(z(U)).then(function(se){return se&&V(se)}):p.openCursor(U);function V(se){return Object.create(se,{continue:{value:function(te){te!=null?se.continue(ma(te,U.reverse?c.MAX_KEY:c.MIN_KEY,X)):U.unique?se.continue(se.key.slice(0,K).concat(U.reverse?c.MIN_KEY:c.MAX_KEY,X)):se.continue()}},continuePrimaryKey:{value:function(te,ce){se.continuePrimaryKey(ma(te,c.MAX_KEY,X),ce)}},primaryKey:{get:function(){return se.primaryKey}},key:{get:function(){var te=se.key;return K===1?te[0]:te.slice(0,K)}},value:{get:function(){return se.value}}})}}})}})}};function lc(c,f,p,g){return p=p||{},g=g||"",i(c).forEach(function(x){var _,M,R;m(f,x)?(_=c[x],M=f[x],typeof _=="object"&&typeof M=="object"&&_&&M?(R=Z(_))!==Z(M)?p[g+x]=f[x]:R==="Object"?lc(_,M,p,g+x+"."):_!==M&&(p[g+x]=f[x]):_!==M&&(p[g+x]=f[x])):p[g+x]=void 0}),i(f).forEach(function(x){m(c,x)||(p[g+x]=f[x])}),p}function cc(c,f){return f.type==="delete"?f.keys:f.keys||f.values.map(c.extractKey)}var uS={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(c){return r(r({},c),{table:function(f){var p=c.table(f),g=p.schema.primaryKey;return r(r({},p),{mutate:function(x){var _=$e.trans,M=_.table(f).hook,R=M.deleting,W=M.creating,ee=M.updating;switch(x.type){case"add":if(W.fire===Ie)break;return _._promise("readwrite",function(){return Y(x)},!0);case"put":if(W.fire===Ie&&ee.fire===Ie)break;return _._promise("readwrite",function(){return Y(x)},!0);case"delete":if(R.fire===Ie)break;return _._promise("readwrite",function(){return Y(x)},!0);case"deleteRange":if(R.fire===Ie)break;return _._promise("readwrite",function(){return function z(U,J,X){return p.query({trans:U,values:!1,query:{index:g,range:J},limit:X}).then(function(K){var V=K.result;return Y({type:"delete",keys:V,trans:U}).then(function(se){return 0<se.numFailures?Promise.reject(se.failures[0]):V.length<X?{failures:[],numFailures:0,lastResult:void 0}:z(U,r(r({},J),{lower:V[V.length-1],lowerOpen:!0}),X)})})}(x.trans,x.range,1e4)},!0)}return p.mutate(x);function Y(z){var U,J,X,K=$e.trans,V=z.keys||cc(g,z);if(V)return(z=z.type==="add"||z.type==="put"?r(r({},z),{keys:V}):r({},z)).type!=="delete"&&(z.values=s([],z.values)),z.keys&&(z.keys=s([],z.keys)),U=p,X=V,((J=z).type==="add"?Promise.resolve([]):U.getMany({trans:J.trans,keys:X,cache:"immutable"})).then(function(se){var te=V.map(function(ce,be){var xe,Pe,we,Ne=se[be],ke={onerror:null,onsuccess:null};return z.type==="delete"?R.fire.call(ke,ce,Ne,K):z.type==="add"||Ne===void 0?(xe=W.fire.call(ke,ce,z.values[be],K),ce==null&&xe!=null&&(z.keys[be]=ce=xe,g.outbound||O(z.values[be],g.keyPath,ce))):(xe=lc(Ne,z.values[be]),(Pe=ee.fire.call(ke,xe,ce,Ne,K))&&(we=z.values[be],Object.keys(Pe).forEach(function(Be){m(we,Be)?we[Be]=Pe[Be]:O(we,Be,Pe[Be])}))),ke});return p.mutate(z).then(function(ce){for(var be=ce.failures,xe=ce.results,Pe=ce.numFailures,ce=ce.lastResult,we=0;we<V.length;++we){var Ne=(xe||V)[we],ke=te[we];Ne==null?ke.onerror&&ke.onerror(be[we]):ke.onsuccess&&ke.onsuccess(z.type==="put"&&se[we]?z.values[we]:Ne)}return{failures:be,results:xe,numFailures:Pe,lastResult:ce}}).catch(function(ce){return te.forEach(function(be){return be.onerror&&be.onerror(ce)}),Promise.reject(ce)})});throw new Error("Keys missing")}}})}})}};function gf(c,f,p){try{if(!f||f.keys.length<c.length)return null;for(var g=[],x=0,_=0;x<f.keys.length&&_<c.length;++x)ot(f.keys[x],c[_])===0&&(g.push(p?Q(f.values[x]):f.values[x]),++_);return g.length===c.length?g:null}catch{return null}}var dS={stack:"dbcore",level:-1,create:function(c){return{table:function(f){var p=c.table(f);return r(r({},p),{getMany:function(g){var x;return g.cache?(x=gf(g.keys,g.trans._cache,g.cache==="clone"))?H.resolve(x):p.getMany(g).then(function(_){return g.trans._cache={keys:g.keys,values:g.cache==="clone"?Q(_):_},_}):p.getMany(g)},mutate:function(g){return g.type!=="add"&&(g.trans._cache=null),p.mutate(g)}})}}}};function yf(c,f){return c.trans.mode==="readonly"&&!!c.subscr&&!c.trans.explicit&&c.trans.db._options.cache!=="disabled"&&!f.schema.primaryKey.outbound}function bf(c,f){switch(c){case"query":return f.values&&!f.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var fS={stack:"dbcore",level:0,name:"Observability",create:function(c){var f=c.schema.name,p=new kn(c.MIN_KEY,c.MAX_KEY);return r(r({},c),{transaction:function(g,x,_){if($e.subscr&&x!=="readonly")throw new le.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat($e.querier));return c.transaction(g,x,_)},table:function(g){function x(V){var K,V=V.query;return[K=V.index,new kn((K=(V=V.range).lower)!=null?K:c.MIN_KEY,(K=V.upper)!=null?K:c.MAX_KEY)]}var _=c.table(g),M=_.schema,R=M.primaryKey,W=M.indexes,ee=R.extractKey,Y=R.outbound,z=R.autoIncrement&&W.filter(function(X){return X.compound&&X.keyPath.includes(R.keyPath)}),U=r(r({},_),{mutate:function(X){function K(ve){return ve="idb://".concat(f,"/").concat(g,"/").concat(ve),be[ve]||(be[ve]=new kn)}var V,se,te,ce=X.trans,be=X.mutatedParts||(X.mutatedParts={}),xe=K(""),Pe=K(":dels"),we=X.type,ke=X.type==="deleteRange"?[X.range]:X.type==="delete"?[X.keys]:X.values.length<50?[cc(R,X).filter(function(ve){return ve}),X.values]:[],Ne=ke[0],ke=ke[1],Be=X.trans._cache;return l(Ne)?(xe.addKeys(Ne),(we=we==="delete"||Ne.length===ke.length?gf(Ne,Be):null)||Pe.addKeys(Ne),(we||ke)&&(V=K,se=we,te=ke,M.indexes.forEach(function(ve){var tt=V(ve.name||"");function nt(yt){return yt!=null?ve.extractKey(yt):null}function at(yt){ve.multiEntry&&l(yt)?yt.forEach(function(Bn){return tt.addKey(Bn)}):tt.addKey(yt)}(se||te).forEach(function(yt,Cn){var it=se&&nt(se[Cn]),Cn=te&&nt(te[Cn]);ot(it,Cn)!==0&&(it!=null&&at(it),Cn!=null)&&at(Cn)})}))):Ne?(ke={from:(Be=Ne.lower)!=null?Be:c.MIN_KEY,to:(we=Ne.upper)!=null?we:c.MAX_KEY},Pe.add(ke),xe.add(ke)):(xe.add(p),Pe.add(p),M.indexes.forEach(function(ve){return K(ve.name).add(p)})),_.mutate(X).then(function(ve){return!Ne||X.type!=="add"&&X.type!=="put"||(xe.addKeys(ve.results),z&&z.forEach(function(tt){for(var nt=X.values.map(function(it){return tt.extractKey(it)}),at=tt.keyPath.findIndex(function(it){return it===R.keyPath}),yt=0,Bn=ve.results.length;yt<Bn;++yt)nt[yt][at]=ve.results[yt];K(tt.name).addKeys(nt)})),ce.mutatedParts=ha(ce.mutatedParts||{},be),ve})}}),J={get:function(X){return[R,new kn(X.key)]},getMany:function(X){return[R,new kn().addKeys(X.keys)]},count:x,query:x,openCursor:x};return i(J).forEach(function(X){U[X]=function(K){var V=$e.subscr,se=!!V,te=yf($e,_)&&bf(X,K)?K.obsSet={}:V;if(se){var ce,V=function(ke){return ke="idb://".concat(f,"/").concat(g,"/").concat(ke),te[ke]||(te[ke]=new kn)},be=V(""),xe=V(":dels"),se=J[X](K),Pe=se[0],se=se[1];if((X==="query"&&Pe.isPrimaryKey&&!K.values?xe:V(Pe.name||"")).add(se),!Pe.isPrimaryKey){if(X!=="count")return ce=X==="query"&&Y&&K.values&&_.query(r(r({},K),{values:!1})),_[X].apply(this,arguments).then(function(ke){if(X==="query"){if(Y&&K.values)return ce.then(function(nt){return nt=nt.result,be.addKeys(nt),ke});var Be=K.values?ke.result.map(ee):ke.result;(K.values?be:xe).addKeys(Be)}else{var ve,tt;if(X==="openCursor")return tt=K.values,(ve=ke)&&Object.create(ve,{key:{get:function(){return xe.addKey(ve.primaryKey),ve.key}},primaryKey:{get:function(){var nt=ve.primaryKey;return xe.addKey(nt),nt}},value:{get:function(){return tt&&be.addKey(ve.primaryKey),ve.value}}})}return ke});xe.add(p)}}return _[X].apply(this,arguments)}}),U}})}};function vf(c,f,p){var g;return p.numFailures===0?f:f.type==="deleteRange"||(g=f.keys?f.keys.length:"values"in f&&f.values?f.values.length:1,p.numFailures===g)?null:(g=r({},f),l(g.keys)&&(g.keys=g.keys.filter(function(x,_){return!(_ in p.failures)})),"values"in g&&l(g.values)&&(g.values=g.values.filter(function(x,_){return!(_ in p.failures)})),g)}function uc(c,f){return p=c,((g=f).lower===void 0||(g.lowerOpen?0<ot(p,g.lower):0<=ot(p,g.lower)))&&(p=c,(g=f).upper===void 0||(g.upperOpen?ot(p,g.upper)<0:ot(p,g.upper)<=0));var p,g}function Sf(c,f,p,g,x,_){var M,R,W,ee,Y,z,U;return!p||p.length===0||(M=f.query.index,R=M.multiEntry,W=f.query.range,ee=g.schema.primaryKey.extractKey,Y=M.extractKey,z=(M.lowLevelIndex||M).extractKey,(g=p.reduce(function(J,X){var K=J,V=[];if(X.type==="add"||X.type==="put")for(var se=new kn,te=X.values.length-1;0<=te;--te){var ce,be=X.values[te],xe=ee(be);!se.hasKey(xe)&&(ce=Y(be),R&&l(ce)?ce.some(function(Be){return uc(Be,W)}):uc(ce,W))&&(se.addKey(xe),V.push(be))}switch(X.type){case"add":var Pe=new kn().addKeys(f.values?J.map(function(ve){return ee(ve)}):J),K=J.concat(f.values?V.filter(function(ve){return ve=ee(ve),!Pe.hasKey(ve)&&(Pe.addKey(ve),!0)}):V.map(function(ve){return ee(ve)}).filter(function(ve){return!Pe.hasKey(ve)&&(Pe.addKey(ve),!0)}));break;case"put":var we=new kn().addKeys(X.values.map(function(ve){return ee(ve)}));K=J.filter(function(ve){return!we.hasKey(f.values?ee(ve):ve)}).concat(f.values?V:V.map(function(ve){return ee(ve)}));break;case"delete":var Ne=new kn().addKeys(X.keys);K=J.filter(function(ve){return!Ne.hasKey(f.values?ee(ve):ve)});break;case"deleteRange":var ke=X.range;K=J.filter(function(ve){return!uc(ee(ve),ke)})}return K},c))===c)?c:(U=function(J,X){return ot(z(J),z(X))||ot(ee(J),ee(X))},g.sort(f.direction==="prev"||f.direction==="prevunique"?function(J,X){return U(X,J)}:U),f.limit&&f.limit<1/0&&(g.length>f.limit?g.length=f.limit:c.length===f.limit&&g.length<f.limit&&(x.dirty=!0)),_?Object.freeze(g):g)}function xf(c,f){return ot(c.lower,f.lower)===0&&ot(c.upper,f.upper)===0&&!!c.lowerOpen==!!f.lowerOpen&&!!c.upperOpen==!!f.upperOpen}function hS(c,f){return((p,g,x,_)=>{if(p===void 0)return g!==void 0?-1:0;if(g===void 0)return 1;if((p=ot(p,g))===0){if(x&&_)return 0;if(x)return 1;if(_)return-1}return p})(c.lower,f.lower,c.lowerOpen,f.lowerOpen)<=0&&0<=((p,g,x,_)=>{if(p===void 0)return g!==void 0?1:0;if(g===void 0)return-1;if((p=ot(p,g))===0){if(x&&_)return 0;if(x)return-1;if(_)return 1}return p})(c.upper,f.upper,c.upperOpen,f.upperOpen)}function pS(c,f,p,g){c.subscribers.add(p),g.addEventListener("abort",function(){var x,_;c.subscribers.delete(p),c.subscribers.size===0&&(x=c,_=f,setTimeout(function(){x.subscribers.size===0&&oe(_,x)},3e3))})}var mS={stack:"dbcore",level:0,name:"Cache",create:function(c){var f=c.schema.name;return r(r({},c),{transaction:function(p,g,x){var _,M,R=c.transaction(p,g,x);return g==="readwrite"&&(x=(_=new AbortController).signal,R.addEventListener("abort",(M=function(W){return function(){if(_.abort(),g==="readwrite"){for(var ee=new Set,Y=0,z=p;Y<z.length;Y++){var U=z[Y],J=Vr["idb://".concat(f,"/").concat(U)];if(J){var X=c.table(U),K=J.optimisticOps.filter(function(ve){return ve.trans===R});if(R._explicit&&W&&R.mutatedParts)for(var V=0,se=Object.values(J.queries.query);V<se.length;V++)for(var te=0,ce=(Pe=se[V]).slice();te<ce.length;te++)rc((we=ce[te]).obsSet,R.mutatedParts)&&(oe(Pe,we),we.subscribers.forEach(function(ve){return ee.add(ve)}));else if(0<K.length){J.optimisticOps=J.optimisticOps.filter(function(ve){return ve.trans!==R});for(var be=0,xe=Object.values(J.queries.query);be<xe.length;be++)for(var Pe,we,Ne,ke=0,Be=(Pe=xe[be]).slice();ke<Be.length;ke++)(we=Be[ke]).res!=null&&R.mutatedParts&&(W&&!we.dirty?(Ne=Object.isFrozen(we.res),Ne=Sf(we.res,we.req,K,X,we,Ne),we.dirty?(oe(Pe,we),we.subscribers.forEach(function(ve){return ee.add(ve)})):Ne!==we.res&&(we.res=Ne,we.promise=H.resolve({result:Ne}))):(we.dirty&&oe(Pe,we),we.subscribers.forEach(function(ve){return ee.add(ve)})))}}}ee.forEach(function(ve){return ve()})}}})(!1),{signal:x}),R.addEventListener("error",M(!1),{signal:x}),R.addEventListener("complete",M(!0),{signal:x})),R},table:function(p){var g=c.table(p),x=g.schema.primaryKey;return r(r({},g),{mutate:function(_){var M,R=$e.trans;return!x.outbound&&R.db._options.cache!=="disabled"&&!R.explicit&&R.idbtrans.mode==="readwrite"&&(M=Vr["idb://".concat(f,"/").concat(p)])?(R=g.mutate(_),_.type!=="add"&&_.type!=="put"||!(50<=_.values.length||cc(x,_).some(function(W){return W==null}))?(M.optimisticOps.push(_),_.mutatedParts&&pa(_.mutatedParts),R.then(function(W){0<W.numFailures&&(oe(M.optimisticOps,_),(W=vf(0,_,W))&&M.optimisticOps.push(W),_.mutatedParts)&&pa(_.mutatedParts)}),R.catch(function(){oe(M.optimisticOps,_),_.mutatedParts&&pa(_.mutatedParts)})):R.then(function(W){var ee=vf(0,r(r({},_),{values:_.values.map(function(Y,z){var U;return W.failures[z]?Y:(O(U=(U=x.keyPath)!=null&&U.includes(".")?Q(Y):r({},Y),x.keyPath,W.results[z]),U)})}),W);M.optimisticOps.push(ee),queueMicrotask(function(){return _.mutatedParts&&pa(_.mutatedParts)})}),R):g.mutate(_)},query:function(_){var M,R,W,ee,Y,z,U;return yf($e,g)&&bf("query",_)?(M=((W=$e.trans)==null?void 0:W.db._options.cache)==="immutable",R=(W=$e).requery,W=W.signal,z=((J,X,K,V)=>{var se=Vr["idb://".concat(J,"/").concat(X)];if(!se)return[];if(!(J=se.queries[K]))return[null,!1,se,null];var te=J[(V.query?V.query.index.name:null)||""];if(!te)return[null,!1,se,null];switch(K){case"query":var ce=(be=V.direction)!=null?be:"next",be=te.find(function(xe){var Pe;return xe.req.limit===V.limit&&xe.req.values===V.values&&((Pe=xe.req.direction)!=null?Pe:"next")===ce&&xf(xe.req.query.range,V.query.range)});return be?[be,!0,se,te]:[te.find(function(xe){var Pe;return("limit"in xe.req?xe.req.limit:1/0)>=V.limit&&((Pe=xe.req.direction)!=null?Pe:"next")===ce&&(!V.values||xe.req.values)&&hS(xe.req.query.range,V.query.range)}),!1,se,te];case"count":return be=te.find(function(xe){return xf(xe.req.query.range,V.query.range)}),[be,!!be,se,te]}})(f,p,"query",_),U=z[0],ee=z[2],Y=z[3],U&&z[1]?U.obsSet=_.obsSet:(z=g.query(_).then(function(J){var X=J.result;if(U&&(U.res=X),M){for(var K=0,V=X.length;K<V;++K)Object.freeze(X[K]);Object.freeze(X)}else J.result=Q(X);return J}).catch(function(J){return Y&&U&&oe(Y,U),Promise.reject(J)}),U={obsSet:_.obsSet,promise:z,subscribers:new Set,type:"query",req:_,dirty:!1},Y?Y.push(U):(Y=[U],(ee=ee||(Vr["idb://".concat(f,"/").concat(p)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[_.query.index.name||""]=Y)),pS(U,Y,R,W),U.promise.then(function(J){return{result:Sf(J.result,_,ee==null?void 0:ee.optimisticOps,g,U,M)}})):g.query(_)}})}})}};function ga(c,f){return new Proxy(c,{get:function(p,g,x){return g==="db"?f:Reflect.get(p,g,x)}})}en.prototype.version=function(c){if(isNaN(c)||c<.1)throw new le.Type("Given version is not a positive number");if(c=Math.round(10*c)/10,this.idbdb||this._state.isBeingOpened)throw new le.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,c);var f=this._versions,p=f.filter(function(g){return g._cfg.version===c})[0];return p||(p=new this.Version(c),f.push(p),f.sort(sS),p.stores({}),this._state.autoSchema=!1),p},en.prototype._whenReady=function(c){var f=this;return this.idbdb&&(this._state.openComplete||$e.letThrough||this._vip)?c():new H(function(p,g){if(f._state.openComplete)return g(new le.DatabaseClosed(f._state.dbOpenError));if(!f._state.isBeingOpened){if(!f._state.autoOpen)return void g(new le.DatabaseClosed);f.open().catch(Ie)}f._state.dbReadyPromise.then(p,g)}).then(c)},en.prototype.use=function(x){var f=x.stack,p=x.create,g=x.level,x=x.name,_=(x&&this.unuse({stack:f,name:x}),this._middlewares[f]||(this._middlewares[f]=[]));return _.push({stack:f,create:p,level:g??10,name:x}),_.sort(function(M,R){return M.level-R.level}),this},en.prototype.unuse=function(c){var f=c.stack,p=c.name,g=c.create;return f&&this._middlewares[f]&&(this._middlewares[f]=this._middlewares[f].filter(function(x){return g?x.create!==g:!!p&&x.name!==p})),this},en.prototype.open=function(){var c=this;return cr(Vt,function(){return lS(c)})},en.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var c=this._state;if(yo.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}c.isBeingOpened||(c.dbReadyPromise=new H(function(f){c.dbReadyResolve=f}),c.openCanceller=new H(function(f,p){c.cancelOpen=p}))},en.prototype.close=function(f){var f=(f===void 0?{disableAutoOpen:!0}:f).disableAutoOpen,p=this._state;f?(p.isBeingOpened&&p.cancelOpen(new le.DatabaseClosed),this._close(),p.autoOpen=!1,p.dbOpenError=new le.DatabaseClosed):(this._close(),p.autoOpen=this._options.autoOpen||p.isBeingOpened,p.openComplete=!1,p.dbOpenError=null)},en.prototype.delete=function(c){var f=this,p=(c===void 0&&(c={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),g=this._state;return new H(function(x,_){function M(){f.close(c);var R=f._deps.indexedDB.deleteDatabase(f.name);R.onsuccess=De(function(){var W,ee,Y;W=f._deps,ee=f.name,ec(Y=W.indexedDB)||ee===Bt||Zl(Y,W.IDBKeyRange).delete(ee).catch(Ie),x()}),R.onerror=nr(_),R.onblocked=f._fireOnBlocked}if(p)throw new le.InvalidArgument("Invalid closeOptions argument to db.delete()");g.isBeingOpened?g.dbReadyPromise.then(M):M()})},en.prototype.backendDB=function(){return this.idbdb},en.prototype.isOpen=function(){return this.idbdb!==null},en.prototype.hasBeenClosed=function(){var c=this._state.dbOpenError;return c&&c.name==="DatabaseClosed"},en.prototype.hasFailed=function(){return this._state.dbOpenError!==null},en.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(en.prototype,"tables",{get:function(){var c=this;return i(this._allTables).map(function(f){return c._allTables[f]})},enumerable:!1,configurable:!0}),en.prototype.transaction=function(){var c=(function(f,p,g){var x=arguments.length;if(x<2)throw new le.InvalidArgument("Too few arguments");for(var _=new Array(x-1);--x;)_[x-1]=arguments[x];return g=_.pop(),[f,N(_),g]}).apply(this,arguments);return this._transaction.apply(this,c)},en.prototype._transaction=function(c,f,p){var g,x,_=this,M=$e.trans,R=(M&&M.db===this&&c.indexOf("!")===-1||(M=null),c.indexOf("?")!==-1);c=c.replace("!","").replace("?","");try{if(x=f.map(function(ee){if(ee=ee instanceof _.Table?ee.name:ee,typeof ee!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return ee}),c=="r"||c===vt)g=vt;else{if(c!="rw"&&c!=En)throw new le.InvalidArgument("Invalid transaction mode: "+c);g=En}if(M){if(M.mode===vt&&g===En){if(!R)throw new le.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");M=null}M&&x.forEach(function(ee){if(M&&M.storeNames.indexOf(ee)===-1){if(!R)throw new le.SubTransaction("Table "+ee+" not included in parent transaction.");M=null}}),R&&M&&!M.active&&(M=null)}}catch(ee){return M?M._promise(null,function(Y,z){z(ee)}):Ut(ee)}var W=(function ee(Y,z,U,J,X){return H.resolve().then(function(){var te=$e.transless||$e,K=Y._createTransaction(z,U,Y._dbSchema,J),te=(K.explicit=!0,{trans:K,transless:te});if(J)K.idbtrans=J.idbtrans;else try{K.create(),K.idbtrans._explicit=!0,Y._state.PR1398_maxLoop=3}catch(ce){return ce.name===lt.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,z,U,null,X)})):Ut(ce)}var V,se=he(X),te=(se&&lr(),H.follow(function(){var ce;(V=X.call(K,K))&&(se?(ce=er.bind(null,null),V.then(ce,ce)):typeof V.next=="function"&&typeof V.throw=="function"&&(V=ac(V)))},te));return(V&&typeof V.then=="function"?H.resolve(V).then(function(ce){return K.active?ce:Ut(new le.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):te.then(function(){return V})).then(function(ce){return J&&K._resolve(),K._completion.then(function(){return ce})}).catch(function(ce){return K._reject(ce),Ut(ce)})})}).bind(null,this,g,x,M,p);return M?M._promise(g,W,"lock"):$e.trans?cr($e.transless,function(){return _._whenReady(W)}):this._whenReady(W)},en.prototype.table=function(c){if(m(this._allTables,c))return this._allTables[c];throw new le.InvalidTable("Table ".concat(c," does not exist"))};var wr=en;function en(c,f){var p,g,x,_,M,R=this,W=(this._middlewares={},this.verno=0,en.dependencies),W=(this._options=f=r({addons:en.addons,autoOpen:!0,indexedDB:W.indexedDB,IDBKeyRange:W.IDBKeyRange,cache:"cloned",maxConnections:1e3},f),this._deps={indexedDB:f.indexedDB,IDBKeyRange:f.IDBKeyRange},f.addons),ee=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:Ie,dbReadyPromise:null,cancelOpen:Ie,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:f.autoOpen}),Y=(ee.dbReadyPromise=new H(function(z){ee.dbReadyResolve=z}),ee.openCanceller=new H(function(z,U){ee.cancelOpen=U}),this._state=ee,this.name=c,this.on=uo(this,"populate","blocked","versionchange","close",{ready:[At,Ie]}),this.once=function(z,U){var J=function(){for(var X=[],K=0;K<arguments.length;K++)X[K]=arguments[K];R.on(z).unsubscribe(J),U.apply(R,X)};return R.on(z,J)},this.on.ready.subscribe=j(this.on.ready.subscribe,function(z){return function(U,J){en.vip(function(){var X,K=R._state;K.openComplete?(K.dbOpenError||H.resolve().then(U),J&&z(U)):K.onReadyBeingFired?(K.onReadyBeingFired.push(U),J&&z(U)):(z(U),X=R,J||z(function V(){X.on.ready.unsubscribe(U),X.on.ready.unsubscribe(V)}))})}}),this.Collection=(p=this,fo(Jv.prototype,function(V,K){this.db=p;var J=Dn,X=null;if(K)try{J=K()}catch(te){X=te}var K=V._ctx,V=K.table,se=V.hook.reading.fire;this._ctx={table:V,index:K.index,isPrimKey:!K.index||V.schema.primKey.keyPath&&K.index===V.schema.primKey.name,range:J,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:X,or:K.or,valueMapper:se!==He?se:null}})),this.Table=(g=this,fo(tf.prototype,function(z,U,J){this.db=g,this._tx=J,this.name=z,this.schema=U,this.hook=g._allTables[z]?g._allTables[z].hook:uo(null,{creating:[$t,Ie],reading:[dt,He],updating:[rn,Ie],deleting:[Qt,Ie]})})),this.Transaction=(x=this,fo(eS.prototype,function(z,U,J,X,K){var V=this;z!=="readonly"&&U.forEach(function(se){se=(se=J[se])==null?void 0:se.yProps,se&&(U=U.concat(se.map(function(te){return te.updatesTable})))}),this.db=x,this.mode=z,this.storeNames=U,this.schema=J,this.chromeTransactionDurability=X,this.idbtrans=null,this.on=uo(this,"complete","error","abort"),this.parent=K||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new H(function(se,te){V._resolve=se,V._reject=te}),this._completion.then(function(){V.active=!1,V.on.complete.fire()},function(se){var te=V.active;return V.active=!1,V.on.error.fire(se),V.parent?V.parent._reject(se):te&&V.idbtrans&&V.idbtrans.abort(),Ut(se)})})),this.Version=(_=this,fo(aS.prototype,function(z){this.db=_,this._cfg={version:z,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(M=this,fo(af.prototype,function(z,U,J){if(this.db=M,this._ctx={table:z,index:U===":id"?null:U,or:J},this._cmp=this._ascending=ot,this._descending=function(X,K){return ot(K,X)},this._max=function(X,K){return 0<ot(X,K)?X:K},this._min=function(X,K){return ot(X,K)<0?X:K},this._IDBKeyRange=M._deps.IDBKeyRange,!this._IDBKeyRange)throw new le.MissingAPI})),this.on("versionchange",function(z){0<z.newVersion?console.warn("Another connection wants to upgrade database '".concat(R.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(R.name,"'. Closing db now to resume the delete request.")),R.close({disableAutoOpen:!1})}),this.on("blocked",function(z){!z.newVersion||z.newVersion<z.oldVersion?console.warn("Dexie.delete('".concat(R.name,"') was blocked")):console.warn("Upgrade '".concat(R.name,"' blocked by other connection holding version ").concat(z.oldVersion/10))}),this._maxKey=mo(f.IDBKeyRange),this._createTransaction=function(z,U,J,X){return new R.Transaction(z,U,J,R._options.chromeTransactionDurability,X)},this._fireOnBlocked=function(z){R.on("blocked").fire(z),yo.toArray().filter(function(U){return U.name===R.name&&U!==R&&!U._state.vcFired}).map(function(U){return U.on("versionchange").fire(z)})},this.use(dS),this.use(mS),this.use(fS),this.use(cS),this.use(uS),new Proxy(this,{get:function(z,U,J){var X;return U==="_vip"||(U==="table"?function(K){return ga(R.table(K),Y)}:(X=Reflect.get(z,U,J))instanceof tf?ga(X,Y):U==="tables"?X.map(function(K){return ga(K,Y)}):U==="_createTransaction"?function(){return ga(X.apply(this,arguments),Y)}:X)}}));this.vip=Y,W.forEach(function(z){return z(R)})}var ya,js=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",gS=(dc.prototype.subscribe=function(c,f,p){return this._subscribe(c&&typeof c!="function"?c:{next:c,error:f,complete:p})},dc.prototype[js]=function(){return this},dc);function dc(c){this._subscribe=c}try{ya={indexedDB:o.indexedDB||o.mozIndexedDB||o.webkitIndexedDB||o.msIndexedDB,IDBKeyRange:o.IDBKeyRange||o.webkitIDBKeyRange}}catch{ya={indexedDB:null,IDBKeyRange:null}}function wf(c){var f,p=!1,g=new gS(function(x){var _=he(c),M,R=!1,W={},ee={},Y={get closed(){return R},unsubscribe:function(){R||(R=!0,M&&M.abort(),z&&Er.storagemutated.unsubscribe(X))}},z=(x.start&&x.start(Y),!1),U=function(){return Ts(K)};function J(){return rc(ee,W)}var X=function(V){ha(W,V),J()&&U()},K=function(){var V,se,te;!R&&ya.indexedDB&&(W={},V={},M&&M.abort(),M=new AbortController,te=(ce=>{var be=Tt();try{_&&lr();var xe=Zn(c,ce);return xe=_?xe.finally(er):xe}finally{be&&Ke()}})(se={subscr:V,signal:M.signal,requery:U,querier:c,trans:null}),z||(Er(po,X),z=!0),Promise.resolve(te).then(function(ce){p=!0,f=ce,R||se.signal.aborted||(J()||(ee=V,J())?U():(W={},Ts(function(){return!R&&x.next&&x.next(ce)})))},function(ce){p=!1,["DatabaseClosedError","AbortError"].includes(ce==null?void 0:ce.name)||R||Ts(function(){R||x.error&&x.error(ce)})}))};return setTimeout(U,0),Y});return g.hasValue=function(){return p},g.getValue=function(){return f},g}var Gr=wr;function fc(c){var f=jr;try{jr=!0,Er.storagemutated.fire(c),ic(c,!0)}finally{jr=f}}b(Gr,r(r({},fe),{delete:function(c){return new Gr(c,{addons:[]}).delete()},exists:function(c){return new Gr(c,{addons:[]}).open().then(function(f){return f.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(c){try{return f=Gr.dependencies,p=f.indexedDB,f=f.IDBKeyRange,(ec(p)?Promise.resolve(p.databases()).then(function(g){return g.map(function(x){return x.name}).filter(function(x){return x!==Bt})}):Zl(p,f).toCollection().primaryKeys()).then(c)}catch{return Ut(new le.MissingAPI)}var f,p},defineClass:function(){return function(c){u(this,c)}},ignoreTransaction:function(c){return $e.trans?cr($e.transless||Vt,c):c()},vip:tc,async:function(c){return function(){try{var f=ac(c.apply(this,arguments));return f&&typeof f.then=="function"?f:H.resolve(f)}catch(p){return Ut(p)}}},spawn:function(c,f,p){try{var g=ac(c.apply(p,f||[]));return g&&typeof g.then=="function"?g:H.resolve(g)}catch(x){return Ut(x)}},currentTransaction:{get:function(){return $e.trans||null}},waitFor:function(c,f){return c=H.resolve(typeof c=="function"?Gr.ignoreTransaction(c):c).timeout(f||6e4),$e.trans?$e.trans.waitFor(c):c},Promise:H,debug:{get:function(){return Xt},set:function(c){Kt(c)}},derive:S,extend:u,props:b,override:j,Events:uo,on:Er,liveQuery:wf,extendObservabilitySet:ha,getByKeyPath:A,setByKeyPath:O,delByKeyPath:function(c,f){typeof f=="string"?O(c,f,void 0):"length"in f&&[].map.call(f,function(p){O(c,p,void 0)})},shallowClone:D,deepClone:Q,getObjectDiff:lc,cmp:ot,asap:E,minKey:-1/0,addons:[],connections:{get:yo.toArray},errnames:lt,dependencies:ya,cache:Vr,semVer:"4.4.2",version:"4.4.2".split(".").map(function(c){return parseInt(c)}).reduce(function(c,f,p){return c+f/Math.pow(10,2*p)})})),Gr.maxKey=mo(Gr.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Er(po,function(c){jr||(c=new CustomEvent(Yl,{detail:c}),jr=!0,dispatchEvent(c),jr=!1)}),addEventListener(Yl,function(c){c=c.detail,jr||fc(c)}));var Rs,jr=!1,_f=function(){};return typeof BroadcastChannel<"u"&&((_f=function(){(Rs=new BroadcastChannel(Yl)).onmessage=function(c){return c.data&&fc(c.data)}})(),typeof Rs.unref=="function"&&Rs.unref(),Er(po,function(c){jr||Rs.postMessage(c)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(c){if(!wr.disableBfCache&&c.persisted){Xt&&console.debug("Dexie: handling persisted pagehide"),Rs!=null&&Rs.close();for(var f=0,p=yo.toArray();f<p.length;f++)p[f].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(c){!wr.disableBfCache&&c.persisted&&(Xt&&console.debug("Dexie: handling persisted pageshow"),_f(),fc({all:new kn(-1/0,[[]])}))})),H.rejectionMapper=function(c,f){return!c||c instanceof de||c instanceof TypeError||c instanceof SyntaxError||!c.name||!Ae[c.name]?c:(f=new Ae[c.name](f||c.message,c),"stack"in c&&w(f,"stack",{get:function(){return this.inner.stack}}),f)},Kt(Xt),r(wr,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:wr,Entity:xr,PropModification:co,RangeSet:kn,add:function(c){return new co({add:c})},cmp:ot,default:wr,liveQuery:wf,mergeRanges:vo,rangesOverlap:ff,remove:function(c){return new co({remove:c})},replacePrefix:function(c,f){return new co({replacePrefix:[c,f]})}}),{default:wr}),wr})}(Xa)),Xa.exports}var s_=r_();const hu=vs(s_),Vf=Symbol.for("Dexie"),hl=globalThis[Vf]||(globalThis[Vf]=hu);if(hu.semVer!==hl.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${hu.semVer} and ${hl.semVer}`);const{liveQuery:cI,mergeRanges:uI,rangesOverlap:dI,RangeSet:fI,cmp:hI,Entity:pI,PropModification:mI,replacePrefix:gI,add:yI,remove:bI,DexieYProvider:vI}=hl;class o_ extends hl{constructor(){super("LotusStorage");Mt(this,"scrollAnchors");Mt(this,"toolSessionCollapses");Mt(this,"diffCollapses");Mt(this,"inputStates");Mt(this,"modelOptionsCaches");this.version(1).stores({scrollAnchors:"sessionId, ts",toolSessionCollapses:"id, sessionId, updatedAt",diffCollapses:"sessionId, updatedAt",inputStates:"sessionId, updatedAt",modelOptionsCaches:"provider, timestamp"})}}const i_=new o_,cs=class cs{constructor(){Mt(this,"db",i_)}static getInstance(){return cs.instance||(cs.instance=new cs),cs.instance}async saveScrollAnchor(t,n){try{await this.db.scrollAnchors.put({sessionId:t,anchorId:n.anchorId,offsetPx:n.offsetPx,ts:n.ts,indexHint:n.indexHint,createdAt:n.createdAt})}catch(r){console.warn("[StorageManager] IndexedDB save failed, falling back to localStorage",r);try{localStorage.setItem(`chat_scroll_anchor_v2:${t}`,JSON.stringify(n))}catch{}}}async loadScrollAnchor(t){try{const n=await this.db.scrollAnchors.get(t);return n?{v:1,anchorId:n.anchorId,offsetPx:n.offsetPx,ts:n.ts,indexHint:n.indexHint,createdAt:n.createdAt}:null}catch{try{const n=localStorage.getItem(`chat_scroll_anchor_v2:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&r.v===1&&typeof r.anchorId=="string")return r}catch{}return null}}async clearScrollAnchor(t){try{await this.db.scrollAnchors.delete(t)}catch{}try{localStorage.removeItem(`chat_scroll_anchor_v2:${t}`)}catch{}}async saveToolSessionCollapse(t,n,r){try{await this.db.toolSessionCollapses.put({id:`${t}:${n}`,sessionId:t,toolSessionId:n,isExpanded:r.isExpanded,expandedTools:r.expandedTools,updatedAt:Date.now()})}catch(s){console.warn("[StorageManager] saveToolSessionCollapse failed",s);try{localStorage.setItem(`chat-session-tool-collapse:${t}:${n}`,JSON.stringify(r))}catch{}}}async loadToolSessionCollapse(t,n){try{const r=await this.db.toolSessionCollapses.get(`${t}:${n}`);return r?{isExpanded:r.isExpanded,expandedTools:r.expandedTools}:null}catch{try{const r=localStorage.getItem(`chat-session-tool-collapse:${t}:${n}`);if(!r)return null;const s=JSON.parse(r);if(s&&typeof s.isExpanded=="boolean")return s}catch{}return null}}async saveDiffCollapse(t,n){try{await this.db.diffCollapses.put({sessionId:t,isExpanded:n.isExpanded,expandedFiles:n.expandedFiles,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveDiffCollapse failed",r);try{localStorage.setItem(`chat-session-diff-collapse:${t}`,JSON.stringify(n))}catch{}}}async loadDiffCollapse(t){try{const n=await this.db.diffCollapses.get(t);return n?{isExpanded:n.isExpanded,expandedFiles:n.expandedFiles}:null}catch{try{const n=localStorage.getItem(`chat-session-diff-collapse:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&typeof r.isExpanded=="boolean")return r}catch{}return null}}async saveInputReasoning(t,n){try{const r=await this.db.inputStates.get(t);await this.db.inputStates.put({sessionId:t,reasoningEffort:n,content:r==null?void 0:r.content,referenceText:r==null?void 0:r.referenceText,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveInputReasoning failed",r);try{const s=localStorage.getItem("chat_input_reasoning_by_session_v1"),o=s?JSON.parse(s):{};o[t]=n,localStorage.setItem("chat_input_reasoning_by_session_v1",JSON.stringify(o))}catch{}}}async loadInputReasoning(t){try{const n=await this.db.inputStates.get(t);return(n==null?void 0:n.reasoningEffort)??null}catch{try{const n=localStorage.getItem("chat_input_reasoning_by_session_v1");return n?JSON.parse(n)[t]??null:null}catch{return null}}}async saveLastUsedReasoningEffort(t){try{await this.db.inputStates.put({sessionId:"__last_used__",reasoningEffort:t,updatedAt:Date.now()})}catch{try{localStorage.setItem("chat_input_reasoning_last_used_v1",t)}catch{}}}async loadLastUsedReasoningEffort(){try{const t=await this.db.inputStates.get("__last_used__");return(t==null?void 0:t.reasoningEffort)??null}catch{try{return localStorage.getItem("chat_input_reasoning_last_used_v1")}catch{return null}}}async saveModelOptionsCache(t,n,r){try{await this.db.modelOptionsCaches.put({provider:t,options:n,timestamp:r})}catch(s){console.warn("[StorageManager] saveModelOptionsCache failed",s);try{localStorage.setItem(`chat-model-options-cache-v1:${t}`,JSON.stringify({timestamp:r,options:n}))}catch{}}}async loadModelOptionsCache(t){try{const n=await this.db.modelOptionsCaches.get(t);return n?{options:n.options,timestamp:n.timestamp}:null}catch{try{const n=localStorage.getItem(`chat-model-options-cache-v1:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&Array.isArray(r.options))return{options:r.options,timestamp:r.timestamp}}catch{}return null}}async clearSessionData(t){try{await Promise.all([this.db.scrollAnchors.delete(t),this.db.diffCollapses.delete(t),this.db.toolSessionCollapses.where("sessionId").equals(t).delete(),this.db.inputStates.delete(t)])}catch{}}async cleanupStaleData(t=30){const n=Date.now()-t*24*60*60*1e3;try{await Promise.all([this.db.scrollAnchors.where("ts").below(n).delete(),this.db.toolSessionCollapses.where("updatedAt").below(n).delete(),this.db.diffCollapses.where("updatedAt").below(n).delete(),this.db.inputStates.where("updatedAt").below(n).delete(),this.db.modelOptionsCaches.where("timestamp").below(n).delete()])}catch{}}async getStats(){try{const[t,n,r,s,o]=await Promise.all([this.db.scrollAnchors.count(),this.db.toolSessionCollapses.count(),this.db.diffCollapses.count(),this.db.inputStates.count(),this.db.modelOptionsCaches.count()]);return{scrollAnchors:t,toolSessionCollapses:n,diffCollapses:r,inputStates:s,modelOptionsCaches:o}}catch{return{scrollAnchors:0,toolSessionCollapses:0,diffCollapses:0,inputStates:0,modelOptionsCaches:0}}}};Mt(cs,"instance");let Hn=cs;const Wg="chat_input_reasoning_by_session_v1",Ug="chat_input_reasoning_last_used_v1",Gf={content:"",referenceText:null,attachments:[],reasoningEffort:"medium"},fd=e=>e==="low"||e==="medium"||e==="high"||e==="xhigh"||e==="max",qg=()=>{if(typeof window>"u")return{};try{const e=localStorage.getItem(Wg);if(!e)return{};const t=JSON.parse(e),n={};for(const[r,s]of Object.entries(t||{}))fd(s)&&(n[r]=s);return n}catch{return{}}},a_=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Wg,JSON.stringify(e))}catch{}},l_=()=>{if(!(typeof window>"u"))try{const e=localStorage.getItem(Ug);return fd(e)?e:void 0}catch{return}},c_=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Ug,e)}catch{}},Hg=e=>{const t=qg();return fd(t[e])?t[e]:l_()},_o=e=>({...Gf,reasoningEffort:Hg(e)??Gf.reasoningEffort}),u_=(e,t)=>({inputStates:{},setInputContent:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||_o(n),content:r}}})),setReferenceText:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||_o(n),referenceText:r}}})),setAttachments:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||_o(n),attachments:r}}})),setInputReasoningEffort:(n,r)=>{e(i=>({inputStates:{...i.inputStates,[n]:{...i.inputStates[n]||_o(n),reasoningEffort:r}}}));const s=qg();s[n]=r,a_(s),c_(r);const o=Hn.getInstance();o.saveInputReasoning(n,r).catch(()=>{}),o.saveLastUsedReasoningEffort(r).catch(()=>{})},clearInputState:n=>e(r=>{const{[n]:s,...o}=r.inputStates;return{inputStates:o}}),getInputState:n=>t().inputStates[n]||_o(n)}),d_="bamboo_proxy_auth",f_=()=>{try{const e=localStorage.getItem(d_);if(!e)return null;const t=JSON.parse(e);if(!t||typeof t!="object")return null;const n=typeof t.username=="string"?t.username.trim():"",r=typeof t.password=="string"?t.password:"";return n?{username:n,password:r}:null}catch{return null}},Yg={byId:{},runningCount:0},h_=[],In=(e,t)=>t?e.executionBySession[t]??null:null,p_=e=>t=>In(t,e),m_=e=>t=>{const n=In(t,e);return(n==null?void 0:n.phase)??"idle"},Vi=e=>t=>{const n=In(t,e);return Rl(n==null?void 0:n.phase)},Xg=e=>t=>{const n=In(t,e);return n?n.phase==="streaming"?!0:n.phase==="running_tools"&&n.stream.hasTokens:!1},g_=e=>t=>{const n=In(t,e);return n?n.phase==="waiting_user_answer"||n.interaction.pendingQuestion!==null||n.backend.hasPendingQuestion===!0:!1},Kg=e=>t=>{const n=In(t,e);return uw(n==null?void 0:n.phase)},Vg=e=>t=>{const n=In(t,e);return dw(n==null?void 0:n.phase)},pr=e=>t=>{const n=In(t,e);return Rl(n==null?void 0:n.phase)},y_=e=>t=>{const n=In(t,e);return(n==null?void 0:n.stream.activeToolCalls)??h_},ji=e=>t=>{const n=In(t,e);return(n==null?void 0:n.interaction.respondMode)??null},Ni=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children.byId)??Yg.byId},b_=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children)??Yg},zt=e=>t=>{const n=In(t,e);return(n==null?void 0:n.generation)??0},v_=Object.freeze({state:"idle",activeToolCalls:[],runningChildCount:0,hasQuestion:!1,hasError:!1,errorMessage:null,generation:0}),S_=e=>t=>{var r;const n=In(t,e);return n?{state:n.phase,activeToolCalls:n.stream.activeToolCalls,runningChildCount:n.children.runningCount,hasQuestion:n.interaction.pendingQuestion!==null,hasError:n.error!==null,errorMessage:((r=n.error)==null?void 0:r.message)??null,generation:n.generation}:v_},x_=e=>t=>e.map(n=>({sessionId:n??"",entry:In(t,n)})),w_="auto",__="required",k_=1e4,C_=15e3,T_=Jn.getInstance();let Jf=null,ko=null,Qf=null,Co=null;const Zf=new WeakMap,ae=Hr()(Zx(tw((e,t,n)=>({...Bw(e,t),...qw(e,t),...Kw(e,t),...Gw(),...Qw(e,t),...Zw(e),...t_(e,t),...u_(e,t),..._w(e,t),agentAvailability:null,setAgentAvailability:r=>{e({agentAvailability:r})},checkAgentAvailability:async()=>{if(ko)return ko;ko=(async()=>{const r=await T_.healthCheck();return t().agentAvailability!==r&&e({agentAvailability:r}),r})();try{return await ko}finally{ko=null}},startAgentHealthCheck:()=>{Jf||(t().checkAgentAvailability(),Jf=setInterval(()=>{t().checkAgentAvailability()},k_))},refreshSessionsIndex:async()=>{if(Co)return Co;Co=(async()=>{try{await t().refreshChats()}catch(r){console.warn("[AppStore] refreshChats failed:",r)}})();try{return await Co}finally{Co=null}},startSessionsIndexSync:()=>{Qf||(t().refreshSessionsIndex(),Qf=setInterval(()=>{t().refreshSessionsIndex()},C_))}})),{name:"AppStore"})),Gg=e=>{const t=Zf.get(e);if(t)return t;const n=new Map(e.map(r=>[r.id,r]));return Zf.set(e,n),n},ks=e=>t=>e?Gg(t.chats).get(e)??null:null,Jg=e=>e.currentSessionId?Gg(e.chats).get(e.currentSessionId)??null:null,P_=e=>{var t;return((t=Jg(e))==null?void 0:t.messages)??[]},eh=async()=>{const e=f_();if(!e)return!1;try{return await rs.setProxyAuth(e),!0}catch(t){return console.error("Failed to apply stored proxy auth during startup:",t),!1}},M_=async()=>{try{const e=await fu.getState().loadConfig();if((typeof(e==null?void 0:e.proxy_auth_mode)=="string"?e.proxy_auth_mode:w_)!==__)return await eh(),!1;const n=await fu.getState().loadProxyAuthStatus({force:!0});return n!=null&&n.configured||await eh()?!1:(ae.setState(s=>({...s,models:[],selectedModel:void 0,modelsError:"Proxy auth mode is set to required. Please configure proxy username/password and apply it.",isLoadingModels:!1})),!0)}catch(e){return console.error("Failed to evaluate startup proxy auth mode:",e),!1}};let th=!1,Qg=!1,wa=null;const hd=async(e=!1)=>{th&&!e||(th=!0,ae.getState().startAgentHealthCheck(),ae.getState().startSessionsIndexSync(),await Wt.getState().loadProviderConfig(),await ae.getState().loadChats(),Qg=!0)},pd=async()=>{if(Qg)return wa||(wa=(async()=>{try{await M_()||await ae.getState().fetchModels(),await ae.getState().loadSystemPrompts()}catch(e){console.error("[AppStore] Deferred bootstrap failed:",e)}})(),wa)},E_=async(e=!1)=>{await hd(e),pd().catch(t=>{console.error("[AppStore] Deferred bootstrap error:",t)})},SI=Object.freeze(Object.defineProperty({__proto__:null,bootstrapCritical:hd,bootstrapDeferred:pd,initializeStore:E_,selectActiveToolCalls:y_,selectCanCancel:Vg,selectChildren:Ni,selectChildrenSnapshot:b_,selectCurrentChat:Jg,selectCurrentMessages:P_,selectExecutionByPane:x_,selectExecutionPhase:m_,selectExecutionState:p_,selectGeneration:zt,selectIsAwaitingUser:g_,selectIsBusy:Vi,selectIsInputLocked:Kg,selectIsStreaming:Xg,selectRailModel:S_,selectRespondMode:ji,selectSessionById:ks,selectShouldObserve:pr,useAppStore:ae},Symbol.toStringTag,{value:"Module"})),_a={THEME:"copilot_ui_theme_v1",LAYOUT:"copilot_ui_layout_v1"};class j_{getTheme(){try{return localStorage.getItem(_a.THEME)}catch(t){return console.error("Failed to get theme:",t),null}}setTheme(t){try{localStorage.setItem(_a.THEME,t)}catch(n){console.error("Failed to set theme:",n)}}getLayout(){try{return localStorage.getItem(_a.LAYOUT)}catch(t){return console.error("Failed to get layout:",t),null}}setLayout(t){try{localStorage.setItem(_a.LAYOUT,t)}catch(n){console.error("Failed to set layout:",n)}}getStorageStats(){let t=0;for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);if(r&&r.startsWith("copilot_ui_")){const s=localStorage.getItem(r);t+=(r.length+((s==null?void 0:s.length)||0))*2}}return{estimatedSize:`${(t/1024).toFixed(1)} KB`}}}const Zg=new j_,md={collapsed:!1,widthPx:260,collapsedWidthPx:72,minWidthPx:180,maxWidthPx:520},Dr={widthPx:520,minWidthPx:420,maxWidthPx:840},ey={v:2,sidebar:md,inspector:Dr,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:null},splitSizesPx:{}},nh=e=>{const t=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`;return`${e}-${t}`},Kn=e=>e.type==="leaf"?[e.id]:[...Kn(e.children[0]),...Kn(e.children[1])],Bi=e=>e.type==="leaf"?[]:[e.id,...Bi(e.children[0]),...Bi(e.children[1])],R_=(e,t)=>{for(const[n,r]of Object.entries(e))if(r===t)return n;return null},A_=(e,t)=>{const n={},r=new Set;return e.forEach(s=>{const o=t[s]??null;if(!o||r.has(o)){n[s]=null;return}r.add(o),n[s]=o}),n},pu=(e,t,n,r,s)=>e.type==="leaf"?e.id!==t?e:{type:"split",id:r,layout:n,children:[e,{type:"leaf",id:s}]}:{...e,children:[pu(e.children[0],t,n,r,s),pu(e.children[1],t,n,r,s)]},mu=(e,t)=>{if(e.type==="leaf")return e.id===t?{node:null,removed:!0}:{node:e,removed:!1};const n=mu(e.children[0],t);if(n.removed)return n.node?{node:{...e,children:[n.node,e.children[1]]},removed:!0}:{node:e.children[1],removed:!0};const r=mu(e.children[1],t);return r.removed?r.node?{node:{...e,children:[e.children[0],r.node]},removed:!0}:{node:e.children[0],removed:!0}:{node:e,removed:!1}},I_=e=>({v:2,sidebar:e.sidebar,inspector:e.inspector,tree:e.tree,activeLeafId:e.activeLeafId,leafSessionIds:e.leafSessionIds,splitSizesPx:e.splitSizesPx}),O_=e=>{try{Zg.setLayout(JSON.stringify(e))}catch(t){console.warn("[uiLayoutStore] Failed to persist layout:",t)}},dr=e=>{const t=I_(e);return O_(t),t},$_=e=>{var v,w,S,k,P,T,j,C,E,A,O;const t={...md,...e.sidebar||{}},n={...Dr},r=((v=e.view)==null?void 0:v.mode)??"single",s=((w=e.view)==null?void 0:w.twoDirection)??"horizontal",o={...((S=e.panes)==null?void 0:S.sessionIds)||{}},i=((k=e.panes)==null?void 0:k.activePaneId)??"lt",l={};if(r==="single")return{v:2,sidebar:t,inspector:n,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:o.lt??null},splitSizesPx:{}};if(r==="two"){const D="split-root",F=s,N=F==="horizontal"?{type:"split",id:D,layout:F,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"rt"}]}:{type:"split",id:D,layout:F,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},q=F==="horizontal"?((P=e.split)==null?void 0:P.twoHorizontalPx)||((T=e.split)==null?void 0:T.columnsPx)||null:((j=e.split)==null?void 0:j.twoVerticalPx)||((C=e.split)==null?void 0:C.leftRowsPx)||null;q&&(l[D]=q);const I=Kn(N);return{v:2,sidebar:t,inspector:n,tree:N,activeLeafId:I.includes(i)?i:I[0],leafSessionIds:Object.fromEntries(I.map(Q=>[Q,o[Q]??null])),splitSizesPx:l}}const u="split-root",d="split-left",h="split-right",m={type:"split",id:u,layout:"horizontal",children:[{type:"split",id:d,layout:"vertical",children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},{type:"split",id:h,layout:"vertical",children:[{type:"leaf",id:"rt"},{type:"leaf",id:"rb"}]}]};(E=e.split)!=null&&E.columnsPx&&(l[u]=e.split.columnsPx),(A=e.split)!=null&&A.leftRowsPx&&(l[d]=e.split.leftRowsPx),(O=e.split)!=null&&O.rightRowsPx&&(l[h]=e.split.rightRowsPx);const b=Kn(m);return{v:2,sidebar:t,inspector:n,tree:m,activeLeafId:b.includes(i)?i:b[0],leafSessionIds:Object.fromEntries(b.map(D=>[D,o[D]??null])),splitSizesPx:l}},L_=e=>{if(!e)return null;try{const t=JSON.parse(e);if(!t||typeof t!="object")return null;if(t.v===2){const n={...md,...t.sidebar||{}},r=t.inspector||{},s={...Dr,...r},o=Math.max(Dr.minWidthPx,Number.isFinite(s.minWidthPx)?s.minWidthPx:Dr.minWidthPx),i=Math.max(o,Math.max(Dr.maxWidthPx,Number.isFinite(s.maxWidthPx)?s.maxWidthPx:Dr.maxWidthPx)),u={widthPx:Math.max(o,Math.min(i,Number.isFinite(s.widthPx)?s.widthPx:Dr.widthPx)),minWidthPx:o,maxWidthPx:i},d=t.tree||ey.tree,h=Kn(d),m=Bi(d),b={};h.forEach(k=>{var P;b[k]=typeof((P=t.leafSessionIds)==null?void 0:P[k])=="string"?t.leafSessionIds[k]:null});const v={};m.forEach(k=>{var T;const P=(T=t.splitSizesPx)==null?void 0:T[k];Array.isArray(P)&&P.length>=2&&(v[k]=[Number(P[0]),Number(P[1])])});const w=typeof t.activeLeafId=="string"&&h.includes(t.activeLeafId)?t.activeLeafId:h[0],S=A_(h,b);return{v:2,sidebar:n,inspector:u,tree:d,activeLeafId:w,leafSessionIds:S,splitSizesPx:v}}return t.v===1?$_(t):null}catch{return null}},F_=()=>L_(Zg.getLayout())??ey,gt=Hr(e=>({...F_(),setSidebarCollapsed:t=>{e(n=>n.sidebar.collapsed===t?n:dr({sidebar:{...n.sidebar,collapsed:t},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx}))},setSidebarWidthPx:t=>{e(n=>{const r=Math.max(n.sidebar.minWidthPx,Math.min(n.sidebar.maxWidthPx,t));return n.sidebar.widthPx===r?n:dr({sidebar:{...n.sidebar,widthPx:r},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setInspectorWidthPx:t=>{e(n=>{const r=Math.max(n.inspector.minWidthPx,Math.min(n.inspector.maxWidthPx,t));return n.inspector.widthPx===r?n:dr({sidebar:n.sidebar,inspector:{...n.inspector,widthPx:r},tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setActiveLeafId:t=>{e(n=>n.activeLeafId===t||!Kn(n.tree).includes(t)?n:(Xn("setActiveLeafId",{from:n.activeLeafId,to:t}),dr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:t,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})))},setLeafSessionId:(t,n)=>{e(r=>{const s=Kn(r.tree);if(!s.includes(t)||(r.leafSessionIds[t]??null)===n)return r;const o=[];Xn("setLeafSessionId",{leafId:t,fromSessionId:r.leafSessionIds[t]??null,toSessionId:n,mode:"unique_session_per_leaf"});const i={...r.leafSessionIds,[t]:n};if(n)for(const l of s)l!==t&&i[l]===n&&(i[l]=null,o.push(l));return o.length>0&&Xn("setLeafSessionId dedupe",{sessionId:n,clearedLeafIds:o,assignedLeafId:t}),s.forEach(l=>{l in i||(i[l]=null)}),dr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:i,splitSizesPx:r.splitSizesPx})})},clearSessionFromAllLeaves:t=>{e(n=>{const r={...n.leafSessionIds};let s=!1;for(const[o,i]of Object.entries(r))i===t&&(r[o]=null,s=!0);return s?dr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:r,splitSizesPx:n.splitSizesPx}):n})},splitLeaf:(t,n)=>{e(r=>{const s=Kn(r.tree);if(!s.includes(t)||s.length>=4)return r;const o=nh("split"),i=nh("pane"),l=pu(r.tree,t,n,o,i),u={...r.leafSessionIds,[i]:null};return dr({sidebar:r.sidebar,inspector:r.inspector,tree:l,activeLeafId:i,leafSessionIds:u,splitSizesPx:r.splitSizesPx})})},closeLeaf:t=>{e(n=>{const r=Kn(n.tree);if(!r.includes(t)||r.length<=1)return n;const s=mu(n.tree,t);if(!s.removed||!s.node)return n;const o=s.node,i=Kn(o),l=Bi(o),u={};i.forEach(m=>{u[m]=n.leafSessionIds[m]??null});const d={};l.forEach(m=>{const b=n.splitSizesPx[m];b&&(d[m]=b)});const h=n.activeLeafId===t?i[0]:i.includes(n.activeLeafId)?n.activeLeafId:i[0];return dr({sidebar:n.sidebar,inspector:n.inspector,tree:o,activeLeafId:h,leafSessionIds:u,splitSizesPx:d})})},setSplitSizesPx:(t,n)=>{e(r=>{const s=r.splitSizesPx[t];return s&&s[0]===n[0]&&s[1]===n[1]?r:dr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:r.leafSessionIds,splitSizesPx:{...r.splitSizesPx,[t]:n}})})},pruneSplitSizes:()=>{e(t=>{const n=new Set(Bi(t.tree)),r={};for(const[i,l]of Object.entries(t.splitSizesPx))n.has(i)&&(r[i]=l);const s=Object.keys(t.splitSizesPx),o=Object.keys(r);return s.length===o.length&&s.every(i=>i in r)?t:dr({sidebar:t.sidebar,inspector:t.inspector,tree:t.tree,activeLeafId:t.activeLeafId,leafSessionIds:t.leafSessionIds,splitSizesPx:r})})}})),D_=async(e,t)=>{var i;const n=ae.getState(),r=!n.chats.some(l=>l.id===e);if(t!=null&&t.forceRefreshIndex||r)try{await n.refreshChats()}catch(l){console.warn("[openSession] refreshChats failed:",l)}const s=ae.getState().chats.find(l=>l.id===e);if(!s)return;if(t!=null&&t.forceLoadHistory||r||(((i=s.messages)==null?void 0:i.length)||0)===0&&(s.messageCount||0)>0)try{await n.loadChatHistory(e)}catch(l){console.warn("[openSession] loadChatHistory failed:",l)}if(t!=null&&t.forceSubscribe){n.markForceSubscribe(e);return}((t==null?void 0:t.subscribeIfRunning)??!0)&&s.isRunning&&n.markForceSubscribe(e)},N_=(e,t)=>{const{activeLeafId:n,leafSessionIds:r,setLeafSessionId:s,setActiveLeafId:o}=gt.getState(),i=R_(r,e),l=r[n]??null;Xn("openSession (input)",{activeLeafId:n,activeLeafSessionId:l,sessionId:e,existingLeafId:i}),i?i===n?Xn("openSession (decision)",{action:"noop_already_active",leafId:n,sessionId:e}):(o(i),Xn("openSession (decision)",{action:"focus_existing_leaf",leafId:i,sessionId:e})):(s(n,e),Xn("openSession (decision)",{action:"assign_to_active_leaf",leafId:n,sessionId:e})),ae.getState().selectSession(e),D_(e,t)},ty=e=>e==="child"?"child":"root",B_=e=>({id:e.id,title:e.title,kind:ty(e.kind),pinned:!!e.pinned,parentSessionId:e.parentSessionId||null,rootSessionId:e.rootSessionId||null,createdByScheduleId:e.createdByScheduleId||null,updatedAt:e.updatedAt||null,lastRunStatus:e.lastRunStatus||null,lastRunError:e.lastRunError||null,createdAt:e.createdAt,config:{systemPromptId:e.config.systemPromptId,workspacePath:e.config.workspacePath||null}}),z_=(e,t)=>e.id===t.id&&e.title===t.title&&e.kind===ty(t.kind)&&e.pinned===!!t.pinned&&e.parentSessionId===(t.parentSessionId||null)&&e.rootSessionId===(t.rootSessionId||null)&&e.createdByScheduleId===(t.createdByScheduleId||null)&&e.updatedAt===(t.updatedAt||null)&&e.lastRunStatus===(t.lastRunStatus||null)&&e.lastRunError===(t.lastRunError||null)&&e.createdAt===t.createdAt&&e.config.systemPromptId===t.config.systemPromptId&&e.config.workspacePath===(t.config.workspacePath||null),W_=(()=>{let e=null,t=[],n=new Map;return r=>{if(r===e)return t;const s=r.map(i=>{const l=n.get(i.id);return l&&z_(l,i)?l:B_(i)}),o=s.length===t.length&&s.every((i,l)=>i===t[l]);return e=r,n=new Map(s.map(i=>[i.id,i])),o?t:(t=s,s)}})(),U_=e=>[e.title,e.id,e.kind||"root",e.config.workspacePath||"",e.config.systemPromptId||"",e.updatedAt||"",e.createdByScheduleId||"",e.lastRunStatus||"",e.lastRunError||""].join(" ").toLowerCase(),q_=e=>e.messages.filter(t=>t.role==="user"&&"content"in t).slice(0,3).map(t=>"content"in t?t.content:"").join(" ").toLowerCase(),xc=(e,t)=>{if(!t)return!0;const n=t.split(/\s+/).filter(Boolean),r=U_(e);if(n.every(l=>r.includes(l)))return!0;const s=ae.getState().chats.find(l=>l.id===e.id);if(!s)return!1;const o=q_(s),i=`${r} ${o}`;return n.every(l=>i.includes(l))},wc=(e,t,n)=>{switch(t){case"pinned":return!!e.pinned;case"running":return n(e.id);case"child":return e.kind==="child";case"all":default:return!0}},H_=()=>{const{t:e}=Ge(),{message:t}=Fn.useApp(),{chats:n,currentSessionId:r,deleteSession:s,deleteSessions:o,pinSession:i,unpinSession:l,updateSession:u,addChat:d,refreshChats:h,lastSelectedPromptId:m,systemPrompts:b}=ae(Mi(ye=>({chats:W_(ye.chats),currentSessionId:ye.currentSessionId,deleteSession:ye.deleteSession,deleteSessions:ye.deleteSessions,pinSession:ye.pinSession,unpinSession:ye.unpinSession,updateSession:ye.updateSession,addChat:ye.addChat,refreshChats:ye.refreshChats,lastSelectedPromptId:ye.lastSelectedPromptId,systemPrompts:ye.systemPrompts}))),v=y.useCallback(ye=>Vi(ye)(ae.getState()),[]),{sidebarCollapsed:w,setSidebarCollapsed:S,clearSessionFromAllLeaves:k}=gt(Mi(ye=>({sidebarCollapsed:ye.sidebar.collapsed,setSidebarCollapsed:ye.setSidebarCollapsed,clearSessionFromAllLeaves:ye.clearSessionFromAllLeaves}))),P=y.useCallback(async(ye,We)=>{var $e,fn;const Te=b.find(B=>B.id===m),qe=(Te==null?void 0:Te.id)||(b.length>0?(($e=b.find(B=>B.id==="general_assistant"))==null?void 0:$e.id)||b[0].id:""),Lt={title:ye||e("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:qe,baseSystemPrompt:(Te==null?void 0:Te.content)||(b.length>0?((fn=b.find(B=>B.id==="general_assistant"))==null?void 0:fn.content)||b[0].content:""),lastUsedEnhancedPrompt:null},...We},$n=await d(Lt),{activeLeafId:Vt}=gt.getState();gt.getState().setLeafSessionId(Vt,$n),gt.getState().setActiveLeafId(Vt)},[d,m,b,e]),[T,j]=y.useState(!1),[C,E]=y.useState(new Set(["Today"])),[A,O]=y.useState(""),[D,F]=y.useState("all"),[N,q]=y.useState({}),I=ae(Mi(ye=>{const We=ye.currentSessionId;if(!We)return null;const Te=ye.chats.find(qe=>qe.id===We);return Te?{id:Te.id,kind:Te.kind,parentSessionId:Te.parentSessionId||null,rootSessionId:Te.rootSessionId||null,pinned:!!Te.pinned,createdAt:Te.createdAt,createdByScheduleId:Te.createdByScheduleId||null}:null})),Q=y.useMemo(()=>I?I.pinned?"Pinned":I.createdByScheduleId?"Scheduled":new Date(I.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):null,[I]),G=y.useMemo(()=>{const ye=new Set(C);return Q&&ye.add(Q),Array.from(ye)},[Q,C]),Z=ye=>{const We=new Set(Array.isArray(ye)?ye:[ye]);E(Te=>{if(Te.size!==We.size)return We;for(const qe of We)if(!Te.has(qe))return We;return Te})},pe=A.trim().toLowerCase(),$=pe.length>0||D!=="all",oe=y.useMemo(()=>[],[]),me=y.useMemo(()=>({}),[]),ne=y.useMemo(()=>({}),[]),he=y.useMemo(()=>[],[]),fe=y.useMemo(()=>new Set,[]),ue=y.useMemo(()=>w?oe:n.filter(ye=>ye.kind!=="child"),[n,w,oe]),de=y.useMemo(()=>{if(w)return me;const ye={};for(const We of n){if(We.kind!=="child")continue;const Te=We.parentSessionId||We.rootSessionId;Te&&(ye[Te]||(ye[Te]=[]),ye[Te].push(We))}return Object.keys(ye).forEach(We=>{ye[We].sort((Te,qe)=>{if(Te.pinned!==qe.pinned)return Te.pinned?-1:1;const Lt=Date.parse(Te.updatedAt||"")||Te.createdAt||0;return(Date.parse(qe.updatedAt||"")||qe.createdAt||0)-Lt})}),ye},[n,w,me]),Ce=y.useMemo(()=>$?ue.filter(ye=>xc(ye,pe)&&wc(ye,D,v)?!0:(de[ye.id]||[]).some(qe=>xc(qe,pe)&&wc(qe,D,v))):ue,[de,$,v,pe,ue,D]),ze=y.useMemo(()=>{if(!$)return de;const ye={};for(const We of Ce){const Te=de[We.id]||[];ye[We.id]=Te.filter(qe=>xc(qe,pe)&&wc(qe,D,v))}return ye},[de,Ce,$,v,pe,D]),Le=y.useMemo(()=>w?ne:yx(Ce),[Ce,w,ne]),lt=y.useMemo(()=>w?he:bx(Le),[Le,w,he]),L=y.useCallback(ye=>{i(ye),E(We=>{if(We.has("Pinned"))return We;const Te=new Set(We);return Te.add("Pinned"),Te})},[i]),le=y.useCallback(ye=>{const We=n.find(qe=>qe.id===ye),Te=We?Sx({...We}):null;l(ye),Te&&E(qe=>{if(qe.has(Te))return qe;const Lt=new Set(qe);return Lt.add(Te),Lt})},[n,l]),Ae=ye=>{Ha.confirm({title:e("chat.sidebar.delete.title"),content:e("chat.sidebar.delete.confirm"),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{k(ye),s(ye)}})},Ie=Ei(ye=>ye.open),He=()=>{Ie("chat")},dt=y.useCallback(ye=>{O(ye)},[]),pt=y.useCallback(ye=>{F(ye)},[]),$t=(ye,We)=>{u(ye,{title:We})},Qt=y.useCallback(async ye=>{try{await Jn.getInstance().regenerateSessionTitle(ye)}catch(We){console.error("Failed to regenerate session title:",We)}},[]),rn=y.useCallback(async ye=>{var Te;if(((Te=N[ye])==null?void 0:Te.status)==="loading")return;q(qe=>({...qe,[ye]:{status:"loading"}}));const We=t.loading(e("chat.actions.runProjectDreamRunning"),0);try{const qe=await Jn.getInstance().runProjectDream(ye);We(),qe.dream_generated?t.success(e("chat.actions.runProjectDreamSuccess")):t.info(qe.message||e("chat.actions.runProjectDreamNoChange"));try{await h()}catch(Lt){console.warn("Failed to refresh chats after project dream run:",Lt)}}catch(qe){We();const Lt=qe instanceof Error&&qe.message?qe.message:e("chat.actions.runProjectDreamFailed");t.error(Lt),console.error("Failed to run project dream:",qe)}finally{q(qe=>({...qe,[ye]:{status:"idle"}}))}},[t,N,h,e]),_n=ye=>{const We=vx(Le,ye),Te=_g(Le,ye);Ha.confirm({title:e("chat.sidebar.deleteByDate.title",{date:ye}),content:e("chat.sidebar.deleteByDate.confirm",{count:Te,date:ye}),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{We.forEach(qe=>k(qe)),o(We)}})},At=()=>{j(!0)},Xt=()=>{j(!1)},Kt=async ye=>{try{await P(e("chat.sidebar.newSessionWithPrompt",{prompt:ye.name}),{config:{systemPromptId:ye.id,baseSystemPrompt:ye.content,lastUsedEnhancedPrompt:null}}),j(!1)}catch(We){console.error("Failed to create chat:",We),Ha.error({title:e("chat.sidebar.createFailedTitle"),content:We instanceof Error?We.message:e("chat.sidebar.createFailedUnknown")})}},gn=y.useCallback(ye=>N_(ye),[]),[On,Mn]=y.useState(new Set),It=y.useMemo(()=>{if(w)return fe;const ye=new Set;for(const We of Object.values(de))for(const Te of We)if(Te.pinned){const qe=Te.parentSessionId||Te.rootSessionId;qe&&ye.add(qe)}return ye},[de,w,fe]),_t=y.useMemo(()=>{var We;if(w)return fe;const ye=new Set(On);if((I==null?void 0:I.kind)==="child"){const Te=I.parentSessionId||I.rootSessionId;Te&&ye.add(Te)}for(const Te of It)ye.add(Te);if($)for(const Te of Ce)(((We=ze[Te.id])==null?void 0:We.length)??0)>0&&ye.add(Te.id);return ye},[ze,On,Ce,$,It,I,w,fe]),bt=y.useCallback(ye=>{Mn(We=>{const Te=new Set(We);return Te.has(ye)?Te.delete(ye):Te.add(ye),Te})},[]);return{chats:Ce,childrenByRoot:ze,expandedRootIds:_t,toggleRootExpanded:bt,collapsed:w,currentSessionId:r,expandedKeys:G,groupedChatsByDate:Le,hasActiveFilters:$,handleCollapseChange:Z,handleDelete:Ae,handleDeleteByDate:_n,handleEditTitle:$t,handleGenerateTitle:Qt,handleNewChat:At,handleNewChatSelectorClose:Xt,handleOpenSettings:He,handleRunProjectDream:rn,handleSearchQueryChange:dt,handleStatusFilterChange:pt,handleSystemPromptSelect:Kt,isNewChatSelectorOpen:T,pinSession:L,projectDreamState:N,searchQuery:A,selectSession:gn,setCollapsed:S,sortedDateKeys:lt,statusFilter:D,systemPrompts:b,titleGenerationState:{},unpinSession:le}},Y_=y.lazy(()=>Jt(()=>import("./index-D3BCKROz.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),{useBreakpoint:X_}=Pl,{useToken:K_}=ut,rh=()=>{const{token:e}=K_(),{t}=Ge(),n=X_(),{childrenByRoot:r,expandedRootIds:s,toggleRootExpanded:o,collapsed:i,currentSessionId:l,expandedKeys:u,groupedChatsByDate:d,handleCollapseChange:h,handleDelete:m,handleDeleteByDate:b,handleEditTitle:v,handleGenerateTitle:w,handleNewChat:S,handleNewChatSelectorClose:k,handleOpenSettings:P,handleRunProjectDream:T,handleSearchQueryChange:j,handleStatusFilterChange:C,handleSystemPromptSelect:E,hasActiveFilters:A,isNewChatSelectorOpen:O,pinSession:D,projectDreamState:F,searchQuery:N,selectSession:q,setCollapsed:I,sortedDateKeys:Q,statusFilter:G,systemPrompts:Z,titleGenerationState:pe,unpinSession:$}=H_(),{xs:oe,sm:me}=n;return y.useEffect(()=>{typeof oe!="boolean"||typeof me!="boolean"||oe===!1&&me===!1&&I(!0)},[me,oe,I]),i?null:a.jsxs("nav",{"data-tour-id":"sidebar","aria-label":t("chat.sidebar.title","Chat sidebar"),style:{width:"100%",height:"100%",background:"transparent",borderRight:`1px solid ${e.colorBorderSecondary}`,position:"relative",overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:[a.jsx(Me,{justify:"flex-end",style:{flexShrink:0,padding:"8px 10px 0 10px",minHeight:34},children:a.jsx(je,{type:"text",icon:a.jsx(jS,{}),onClick:()=>I(!0),size:n.xs?"small":"middle",className:"lotus-toolbar-icon","aria-label":t("chat.sidebar.collapse","Collapse sidebar")})}),a.jsxs(Me,{vertical:!0,gap:6,style:{flexShrink:0,padding:"6px 10px 6px 10px"},children:[a.jsx(xs,{allowClear:!0,value:N,onChange:ne=>j(ne.target.value),prefix:a.jsx(ru,{style:{color:e.colorTextTertiary}}),placeholder:t("chat.sidebar.searchPlaceholder","Search sessions"),"aria-label":t("chat.sidebar.searchPlaceholder","Search sessions"),size:"small",style:{borderRadius:e.borderRadiusLG}}),a.jsx(RS,{block:!0,size:n.xs?"middle":"small",value:G,onChange:ne=>C(ne),options:[{label:t("chat.sidebar.filters.all","All"),value:"all"},{label:t("chat.sidebar.filters.pinned","Pinned"),value:"pinned"},{label:t("chat.sidebar.filters.running","Running"),value:"running"},{label:t("chat.sidebar.filters.child","Child"),value:"child"}]})]}),a.jsx(Me,{vertical:!0,role:"list","aria-label":t("chat.sidebar.chatList","Chat list"),style:{flex:1,minHeight:0,overflowY:"auto",padding:"0 10px"},children:a.jsx(xx,{groupedChatsByDate:d,childrenByRoot:r,expandedRootIds:s,onToggleRootExpanded:o,sortedDateKeys:Q,expandedKeys:u,onCollapseChange:h,currentSessionId:l,onSelectChat:q,onDeleteChat:m,onDeleteByDate:b,onPinChat:D,onUnpinChat:$,onEditTitle:v,onGenerateTitle:w,onRunProjectDream:T,titleGenerationState:pe,projectDreamState:F,token:e,hasActiveFilters:A})}),a.jsx(Rx,{collapsed:!1,onNewChat:S,onOpenSettings:P,token:e}),a.jsx(y.Suspense,{fallback:null,children:a.jsx(Y_,{open:O,onClose:k,onSelect:E,prompts:Z,title:t("chat.prompt.newSessionSelectorTitle"),showCancelButton:!0})})]})},{Text:sh,Paragraph:V_}=ft;class zi extends y.Component{constructor(n){super(n);Mt(this,"handleReset",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){var o,i;const s=this.props.name??"ErrorBoundary";console.error(`[${s}] Uncaught error:`,n,r),(i=(o=this.props).onError)==null||i.call(o,n,r)}render(){if(!this.state.hasError)return this.props.children;const{fallback:n}=this.props,r=this.state.error;return typeof n=="function"?n(r,this.handleReset):n!==void 0?n:a.jsx(G_,{error:r,onReset:this.handleReset})}}const G_=({error:e,onReset:t})=>{const{token:n}=ut.useToken(),[r,s]=ht.useState(!1),{t:o}=Ge();return a.jsxs("div",{role:"alert",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,padding:n.paddingLG,minHeight:200,textAlign:"center"},children:[a.jsx(dg,{style:{fontSize:36,color:n.colorWarning}}),a.jsx(sh,{strong:!0,style:{fontSize:16},children:o("app.errorBoundary.title")}),a.jsx(sh,{type:"secondary",style:{maxWidth:420},children:o("app.errorBoundary.description")}),a.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[a.jsx(je,{type:"primary",icon:a.jsx(rd,{}),onClick:t,"aria-label":o("app.errorBoundary.tryAgain"),children:o("app.errorBoundary.tryAgain")}),a.jsx(je,{type:"text",size:"small",onClick:()=>s(i=>!i),"aria-expanded":r,"aria-label":o("app.errorBoundary.showDetails"),children:o(r?"app.errorBoundary.hideDetails":"app.errorBoundary.showDetails")})]}),r&&a.jsxs(V_,{code:!0,copyable:!0,style:{maxWidth:560,maxHeight:200,overflow:"auto",fontSize:12,textAlign:"left",marginTop:8,background:n.colorFillTertiary,padding:n.paddingSM,borderRadius:n.borderRadius},children:[e.message,e.stack?`
|
|
14
14
|
|
|
15
|
-
${e.stack}`:""]})]})},oh={theme:"default",themeVariables:{},fontSize:16,defaultScale:1,useMaxWidth:!0,flowchartNodeSpacing:50,flowchartRankSpacing:50,flowchartCurve:"basis",sequenceActorMargin:50,sequenceMessageMargin:35,sequenceWidth:150,sequenceHeight:65,ganttBarHeight:20,ganttTopPadding:50},gd=
|
|
15
|
+
${e.stack}`:""]})]})},oh={theme:"default",themeVariables:{},fontSize:16,defaultScale:1,useMaxWidth:!0,flowchartNodeSpacing:50,flowchartRankSpacing:50,flowchartCurve:"basis",sequenceActorMargin:50,sequenceMessageMargin:35,sequenceWidth:150,sequenceHeight:65,ganttBarHeight:20,ganttTopPadding:50},gd=Hr()(sw(e=>({settings:oh,updateSettings:t=>e(n=>({settings:{...n.settings,...t}})),resetSettings:()=>e({settings:oh})}),{name:"mermaid-settings"})),yd=()=>gd(t=>t.settings),xI=()=>gd(e=>e.updateSettings),wI=()=>gd(e=>e.resetSettings),J_=()=>{const{token:e}=ut.useToken(),t=yd(),n=y.useRef("");y.useEffect(()=>{const r=Q_(e.colorBgContainer),s=`${r}-${t.theme}-${JSON.stringify(t.themeVariables)}`;if(n.current===s)return;n.current=s;let o=t.theme;(t.theme==="default"||t.theme==="neutral")&&(o=r?"dark":t.theme),td.initialize({startOnLoad:!1,theme:o,securityLevel:"loose",suppressErrorRendering:!0,fontSize:t.fontSize,themeVariables:Object.keys(t.themeVariables).length>0?t.themeVariables:void 0,flowchart:{useMaxWidth:t.useMaxWidth,htmlLabels:!0,curve:t.flowchartCurve,nodeSpacing:t.flowchartNodeSpacing,rankSpacing:t.flowchartRankSpacing},sequence:{useMaxWidth:t.useMaxWidth,diagramMarginX:10,diagramMarginY:10,actorMargin:t.sequenceActorMargin,width:t.sequenceWidth,height:t.sequenceHeight,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:t.sequenceMessageMargin,mirrorActors:!0,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1},gantt:{useMaxWidth:t.useMaxWidth,leftPadding:75,gridLineStartPadding:35,barHeight:t.ganttBarHeight,barGap:4,topPadding:t.ganttTopPadding},journey:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center"},timeline:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35},gitGraph:{useMaxWidth:t.useMaxWidth,showBranches:!0,showCommitLabel:!0},c4:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10},sankey:{useMaxWidth:t.useMaxWidth},xyChart:{useMaxWidth:t.useMaxWidth},block:{useMaxWidth:t.useMaxWidth,padding:8}})},[e,t])};function Q_(e){if(e.startsWith("#")){const n=e.slice(1),r=parseInt(n.substr(0,2),16),s=parseInt(n.substr(2,2),16),o=parseInt(n.substr(4,2),16);return(.299*r+.587*s+.114*o)/255<.5}const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(t){const n=parseInt(t[1]),r=parseInt(t[2]),s=parseInt(t[3]);return(.299*n+.587*r+.114*s)/255<.5}return!1}td.initialize({startOnLoad:!1,theme:"dark",securityLevel:"loose",suppressErrorRendering:!0});td.parseError=function(e){console.warn("Mermaid parse error (handled gracefully):",e)};const ih=new Map,Z_=/^(\s*%%\{[\s\S]*?\}%%\s*)*\s*gantt\b/i,e0=e=>e.replace(/:/g,":").replace(/,/g,",").replace(/;/g,";").replace(/(/g,"(").replace(/)/g,")").replace(/-/g,"-"),t0=e=>(Z_.test(e)?e0(e):e).replace(/\[([\s\S]*?)\]/g,(n,r)=>{const s=String(r),o=/\r?\n/.test(s),i=/[()]/.test(s),l=/@/.test(s);if(!o&&!i&&!l)return n;const u=s.trim(),d=u.startsWith("(")&&u.endsWith(")")&&u.length>=2;let h=s;return o&&(h=h.replace(/\r?\n/g,"<br/>")),i&&!d&&(h=h.replace(/\(/g,"(").replace(/\)/g,")")),l&&(h=h.replace(/@/g,"@")),h===s?n:`[${h}]`}),n0=200,gr=new Map,Ka=new Map;let _c=null;const r0=e=>{const n=new DOMParser().parseFromString(e,"image/svg+xml");return Array.from(n.querySelectorAll("rect")).reduce((s,o)=>{const i=Number(o.getAttribute("width"));return Number.isFinite(i)&&i<0?s+1:s},0)};async function s0(){_c||(_c=Jt(()=>import("./vendor-mermaid-C1Gk9PtT.js").then(t=>t.cs),__vite__mapDeps([4,3,2]),import.meta.url));const e=await _c;return e.default??e}function o0(e,t){if(gr.has(e)&&gr.delete(e),gr.set(e,t),gr.size>n0){const n=gr.keys().next().value;n&&gr.delete(n)}}function Va(e){const t=gr.get(e);return t?(gr.delete(e),gr.set(e,t),t):null}function ah(){gr.clear(),Ka.clear()}function i0(e,t){const n=Va(e);if(n)return Promise.resolve(n);const r=Ka.get(e);if(r)return r;const s=(async()=>{var T,j;const o=await s0();await o.parse(t);const i=`mermaid-${e}`,l=document.createElement("div"),u=Math.max(1600,window.innerWidth||0,((T=document.documentElement)==null?void 0:T.clientWidth)||0);l.style.cssText=["position:absolute","left:-9999px","top:-9999px",`width:${u}px`,`min-width:${u}px`,"visibility:hidden","pointer-events:none","overflow:visible"].join(";"),document.body.appendChild(l);let d;try{d=await o.render(i,t,l)}finally{document.body.removeChild(l)}const h=typeof d=="object"&&"svg"in d?d.svg:String(d),m=r0(h);if(m>0)throw new Error(`Mermaid rendered invalid SVG (${m} rect widths < 0)`);const w=new DOMParser().parseFromString(h,"image/svg+xml").querySelector("svg");let S=800,k=300;if(w){const C=w.getAttribute("viewBox");if(C){const E=C.split(/\s+/).map(Number);E.length===4&&(S=E[2]||800,k=E[3]||300)}if(S===800&&k===300){const E=document.createElement("div");E.style.cssText="position:absolute;visibility:hidden;width:800px;",E.innerHTML=h,document.body.appendChild(E);const A=(j=E.querySelector("svg"))==null?void 0:j.getBoundingClientRect();A&&(S=A.width,k=A.height),document.body.removeChild(E)}}const P={svg:h,width:S,height:k};return o0(e,P),P})().finally(()=>{Ka.delete(e)});return Ka.set(e,s),s}const mi=new Map,Ga=new Set,As=new Map,Ri=new Map;let gi=null;const ny=(e,t)=>{const n=mi.get(e);n&&n.forEach(r=>r(t))},lh=()=>{if(gi=null,Ri.size===0)return;const e=Array.from(Ri.values());Ri.clear(),e.forEach(t=>{ny(t.messageId,t.content),Ga.forEach(n=>n(t))})},Et={getLatest(e){return As.get(e)??null},subscribeMessage(e,t){let n=mi.get(e);return n||(n=new Set,mi.set(e,n)),n.add(t),As.has(e)&&t(As.get(e)??null),()=>{const r=mi.get(e);r&&(r.delete(t),r.size===0&&mi.delete(e))}},subscribe(e){return Ga.add(e),()=>{Ga.delete(e)}},publish(e){e.content===null?As.delete(e.messageId):As.set(e.messageId,e.content),Ri.set(e.messageId,e),gi===null&&(gi=requestAnimationFrame(lh))},clear(e,t){As.delete(t),Ri.delete(t),ny(t,null),Ga.forEach(n=>n({sessionId:e,messageId:t,content:null}))},forceFlush(){gi!==null&&(cancelAnimationFrame(gi),lh())}},gu=e=>{const t=(e??"").trim().toLowerCase();return t.includes("completion policy violation")&&t.includes("conclusion_with_options")},yu=e=>{const t=(e??"").trim(),n=t?`
|
|
16
16
|
|
|
17
|
-
Raw error: ${t}`:"";return["Bamboo stopped this completion because Copilot conclusion_with_options confirmation is enabled for this session.","The assistant tried to finish with plain text instead of calling conclusion_with_options.","Next steps: retry the request, shorten or clarify the prompt, or temporarily disable the Copilot conclusion_with_options enhancement for this session if you do not want enforced confirmation."].join(" ")+n},bd=()=>typeof window<"u"&&!!window.__TAURI_INTERNALS__,ry="bodhi_notification_prefs",_a={enabled:!0,onClarification:!0,onToolApproval:!0,onContextPressure:!0,onSubAgentComplete:!1};function sy(){if(typeof localStorage>"u")return _a;try{const e=localStorage.getItem(ry);if(!e)return _a;const t=JSON.parse(e);return{..._a,...t}}catch{return _a}}function vI(e){if(typeof localStorage>"u")return;const n={...sy(),...e};localStorage.setItem(ry,JSON.stringify(n))}function i0(e){const t=sy();if(!t.enabled)return!1;switch(e){case"clarification":return t.onClarification;case"tool_approval":return t.onToolApproval;case"context_pressure":return t.onContextPressure;case"subagent_completed":return t.onSubAgentComplete;default:return!0}}const yu=new Set,a0=3e4;function l0(e){const t=[e.sessionId??"global",e.eventType];return e.eventId&&t.push(e.eventId),t.join("::")}function c0(e){setTimeout(()=>{yu.delete(e)},a0)}async function u0(){const e=window.__TAURI_INTERNALS__,t=e==null?void 0:e.invoke;if(typeof t!="function")return!0;try{return await t("is_main_window_focused")===!0}catch{return!0}}async function d0(e,t){const n=window.__TAURI_INTERNALS__,r=n==null?void 0:n.invoke;if(typeof r!="function")throw new Error("Tauri invoke not available");await r("show_desktop_notification",{title:e,body:t})}async function ka(e){if(!bd()||await u0()||!i0(e.eventType))return;const n=l0(e);if(!yu.has(n))try{await d0(e.title,e.body),yu.add(n),c0(n)}catch{}}function Ca(...e){}const f0=e=>{const t=e;return(t==null?void 0:t.name)==="AbortError"||(t==null?void 0:t.code)===20},ch=220,uh=e=>{const t=e.replace(/\s+/g," ").trim();return t.length<=ch?t:`${t.slice(0,ch)}...`},h0=e=>e==="pending"||e==="in_progress"||e==="completed"||e==="blocked",p0=new Set(["completed","error","cancelled","failed"]),m0=1500,g0=120,y0=(e,t)=>{var n,r;return(r=(n=Di(e)(ae.getState()))==null?void 0:n[t])==null?void 0:r.status},dh=e=>e?p0.has(e):!1,b0=(e,t,n,r)=>{const s=r==null?void 0:r.trim();return s?`${e}:${s}`:`${e}:stats:${t}:${n}`},Ta=e=>{const t=e.trim().toLowerCase();return t==="memory_note"||t==="session_note"},v0=()=>{const e=Jn;return typeof e.getInstance=="function"?e.getInstance():new Jn},S0=e=>{if(typeof e.pre_permission_mode!="string"||typeof e.entered_at!="string")return null;const t=e.status;return t!=="exploring"&&t!=="designing"&&t!=="reviewing"&&t!=="finalizing"&&t!=="awaiting_approval"?null:{entered_at:e.entered_at,pre_permission_mode:e.pre_permission_mode,plan_file_path:e.plan_file_path??null,status:t}};function x0(){const{message:e}=Fn.useApp(),{addMessage:t,applyAgentEvent:n,markStreamStarted:r,updateTokenUsage:s,setTruncationInfo:o,updateSession:i,updateMessage:l,setTaskList:u,loadTaskList:f,updateTaskListDelta:h,setEvaluationState:m,applyChildProgress:b,persistSessionTitle:v,refreshChatsNow:w,setPendingQuestion:S,clearPendingQuestion:k}=ae(Pi(L=>({addMessage:L.addMessage,applyAgentEvent:L.applyAgentEvent,markStreamStarted:L.markStreamStarted,updateTokenUsage:L.updateTokenUsage,setTruncationInfo:L.setTruncationInfo,updateSession:L.updateSession,updateMessage:L.updateMessage,setTaskList:L.setTaskList,loadTaskList:L.loadTaskList,updateTaskListDelta:L.updateTaskListDelta,setEvaluationState:L.setEvaluationState,applyChildProgress:L.applyChildProgress,persistSessionTitle:L.persistSessionTitle,refreshChatsNow:L.refreshChatsNow,setPendingQuestion:L.setPendingQuestion,clearPendingQuestion:L.clearPendingQuestion}))),P=y.useRef(null);P.current||(P.current=v0());const T=y.useRef(new Set),M=y.useRef(new Map),C=y.useRef(new Map),j=y.useRef(new Map),A=y.useRef(new Map),O=y.useRef(new Map),F=y.useRef(new Map),D=y.useRef(new Map),N=y.useRef(new Map),q=y.useRef(new Map),I=y.useRef(new Map),Q=y.useRef(new Map),G=y.useRef(new Map),Z=y.useRef(new Set),pe=y.useRef(new Map),$=y.useCallback(L=>{const le=pe.current.get(L);le!=null&&le.timer&&clearTimeout(le.timer),pe.current.delete(L)},[]),oe=y.useCallback(L=>{const le=M.current.get(L);le&&(clearTimeout(le),M.current.delete(L))},[]),me=y.useCallback(L=>{const le=C.current.get(L);le!=null&&le.timer&&clearTimeout(le.timer),C.current.delete(L)},[]),ne=y.useCallback((L,le)=>{var pt;const Ae=ae.getState(),Oe=(pt=Ae.executionBySession)==null?void 0:pt[L];Me("[SSE]","cleanupChat",{sessionId:L,opts:le??null,generation:(Oe==null?void 0:Oe.generation)??null,phase:(Oe==null?void 0:Oe.phase)??null,backendRunId:(Oe==null?void 0:Oe.backendRunId)??null,shouldObserve:pr(L)(Ae)}),$(L),oe(L),le!=null&&le.clearTitleRetry&&me(L),Z.current.delete(L),A.current.delete(L);for(const[$t,Qt]of I.current.entries())$t.startsWith(`${L}:`)&&(Qt.timer&&clearTimeout(Qt.timer),I.current.delete($t));const He=O.current.get(L);if(!He)return;O.current.delete(L),He.controller.abort(),Mt.forceFlush();const dt=F.current.get(He.sessionId);dt?(le!=null&&le.clearDraft&&(Mt.clear(dt.sessionId,dt.messageId),Mt.clear(dt.sessionId,dt.reasoningMessageId),Mt.clear(dt.sessionId,dt.statusMessageId)),F.current.delete(He.sessionId)):le!=null&&le.clearDraft&&(Mt.clear(L,`streaming-${L}`),Mt.clear(L,`streaming-reasoning-${L}`),Mt.clear(L,`streaming-status-${L}`))},[oe,$,me]),fe=y.useCallback((L,le)=>{const Ae=`${L}:${le}`,Oe=I.current.get(Ae);Oe&&(Oe.timer&&clearTimeout(Oe.timer),I.current.delete(Ae),b(L,le,{status:"running",outputPreview:Oe.content,lastEventAt:Oe.lastEventAt}))},[b]),he=y.useCallback((L,le,Ae,Oe)=>{const He=`${L}:${le}`,dt=I.current.get(He);dt!=null&&dt.timer&&clearTimeout(dt.timer);const pt=setTimeout(()=>{fe(L,le)},g0);I.current.set(He,{content:Ae,lastEventAt:Oe,timer:pt})},[fe]),ue=y.useCallback(async L=>{const le=L.trim();if(le&&!T.current.has(le)&&!ae.getState().taskLists[le]){T.current.add(le);try{await f(le)}catch(Ae){console.warn(`[useAgentEventSubscription] Failed to recover task list baseline for ${le}:`,Ae)}finally{T.current.delete(le)}}},[f]),de=y.useCallback((L,le,Ae,Oe)=>{var Qt,rn,_n;const He=b0(L,le,Ae,Oe);if(j.current.get(L)===He)return!1;const pt=(Qt=ae.getState().executionBySession)==null?void 0:Qt[L],$t=(pt==null?void 0:pt.phase)==="waiting_user_answer"||((rn=pt==null?void 0:pt.interaction)==null?void 0:rn.pendingQuestion)!=null||((_n=pt==null?void 0:pt.interaction)==null?void 0:_n.respondMode)!=null;return j.current.set(L,He),!$t},[]),Ce=y.useCallback((L,le)=>{A.current.get(L)!==le&&(A.current.set(L,le),r(L,le))},[r]),ze=y.useCallback(L=>{var fn;const le=ae.getState(),Ae=zt(L)(le)??0,Oe=(fn=le.executionBySession)==null?void 0:fn[L];Me("[SSE]","startSubscription",{sessionId:L,generation:Ae,phase:(Oe==null?void 0:Oe.phase)??null,backendRunId:(Oe==null?void 0:Oe.backendRunId)??null,shouldObserve:pr(L)(le)}),$(L),me(L);const He=new AbortController;O.current.set(L,{sessionId:L,controller:He,generation:Ae,streamEnded:!1});const dt=`streaming-${L}`,pt=`streaming-reasoning-${L}`,$t=`streaming-status-${L}`,Qt=Mt.getLatest(dt),rn=Mt.getLatest(pt),_n=Mt.getLatest($t);F.current.set(L,{sessionId:L,messageId:dt,content:Qt??"",reasoningMessageId:pt,reasoningContent:rn??"",statusMessageId:$t,status:_n??""});const At=B=>{const ie=F.current.get(L);if(!ie)return;const H=(B??"").trim();if(!H){if(!ie.status)return;ie.status="",Mt.clear(ie.sessionId,ie.statusMessageId);return}ie.status!==H&&(ie.status=H,Mt.publish({sessionId:ie.sessionId,messageId:ie.statusMessageId,content:ie.status}))};Qt===null&&Mt.publish({sessionId:L,messageId:dt,content:""});const Xt=()=>{var et;const B=pe.current.get(L),ie=(B==null?void 0:B.attempt)??0,H=Math.min(5e3,250*Math.pow(2,ie)),_e=ae.getState(),Ie=(et=_e.executionBySession)==null?void 0:et[L];Me("[SSE]","scheduleReconnect",{sessionId:L,generation:Ae,attempt:ie,delayMs:H,phase:(Ie==null?void 0:Ie.phase)??null,backendRunId:(Ie==null?void 0:Ie.backendRunId)??null,shouldObserve:pr(L)(_e),terminalEventSeen:Kt}),ne(L,{clearDraft:!1});const Fe=setTimeout(()=>{var Ke,Nt,Se,De,Ve;pe.current.delete(L);const Xe=ae.getState();if(!pr(L)(Xe)){Me("[SSE]","scheduleReconnect.skipNotBusy",{sessionId:L,generation:Ae,phase:((Nt=(Ke=Xe.executionBySession)==null?void 0:Ke[L])==null?void 0:Nt.phase)??null,backendRunId:((De=(Se=Xe.executionBySession)==null?void 0:Se[L])==null?void 0:De.backendRunId)??null});return}const Ct=Xe.chats.find(Ot=>Ot.id===L),Tt=(Ve=Ct==null?void 0:Ct.id)==null?void 0:Ve.trim();if(!Tt){Me("[SSE]","scheduleReconnect.skipMissingSession",{sessionId:L,generation:Ae});return}Me("[SSE]","scheduleReconnect.restart",{sessionId:Tt,generation:Ae}),ze(Tt)},H);pe.current.set(L,{attempt:ie+1,timer:Fe})};let Kt=!1;const gn=250,On=[1200,3e3],En=new Set(["New Session","新建会话","新建會話","Nouvelle session","新しいセッション","नया सत्र"]),It=B=>{const ie=(B||"").trim();return!ie||En.has(ie)?!0:ie.startsWith("New Session - ")||ie.startsWith("New Session with ")||ie.startsWith("New session - ")||ie.startsWith("New session with ")?ie.replace(/^New Session - /,"").replace(/^New Session with /,"").replace(/^New session - /,"").replace(/^New session with /,"").trim().length>0:!1},_t=()=>{const B=ae.getState();if((zt(L)(B)??0)!==Ae||pr(L)(B))return!1;const H=B.chats.find(_e=>_e.id===L);return!H||H.isRunning?!1:It(H.title)&&(H.titleVersion??0)===0},bt=()=>{if(!_t()){me(L);return}const B=C.current.get(L),ie=(B==null?void 0:B.attempt)??0;if(ie>=On.length){me(L);return}me(L);const H=On[ie],_e=setTimeout(()=>{C.current.delete(L),(async()=>{if(!_t()){me(L);return}try{await w()}catch(Ie){console.warn(`[useAgentEventSubscription] Title refresh retry failed for session ${L}:`,Ie)}finally{_t()?bt():me(L)}})()},H);C.current.set(L,{attempt:ie+1,timer:_e})},ye=()=>{const B=O.current.get(L);!B||B.controller!==He||B.streamEnded||(B.streamEnded=!0,Ca("markStreamEnded",L,"generation:",B.generation,"terminal:",Kt))},We=()=>{const B=D.current.get(L);return((B==null?void 0:B.children.size)??0)>0},Te=()=>Kt&&!We(),qe=()=>{const B=O.current.get(L);B&&(Mt.clear(L,`streaming-${L}`),Mt.clear(L,`streaming-reasoning-${L}`),Mt.clear(L,`streaming-status-${L}`),F.current.delete(B.sessionId))},Lt=async()=>{oe(L);try{await w()}catch(Fe){console.warn(`[useAgentEventSubscription] High-priority refresh failed while settling parent ${L}:`,Fe)}const B=D.current.get(L)??{children:new Set,parentDone:!1};if(!B.parentDone||B.children.size>0)return;const ie=O.current.get(L);if(ie&&(ie.controller!==He||ie.generation!==Ae))return;const _e=ae.getState().chats.find(Fe=>Fe.id===L);if(!!(_e!=null&&_e.isRunning)){me(L);return}_t()?bt():me(L),ne(L,{clearDraft:!0})},$n=()=>{oe(L);const B=setTimeout(()=>{M.current.delete(L),Lt()},gn);M.current.set(L,B)},Vt=()=>{const B=D.current.get(L)??{children:new Set},ie=new Set(B.children);if(D.current.set(L,{children:ie,parentDone:!0}),ie.size===0){$n();return}qe()},$e=P.current;$e&&$e.subscribeToEvents(L,{onToken:B=>{Ce(L,Ae);const ie=F.current.get(L);ie&&(At(null),ie.content+=B,Mt.publish({sessionId:ie.sessionId,messageId:ie.messageId,content:ie.content}))},onReasoningToken:B=>{Ce(L,Ae);const ie=F.current.get(L);ie&&(ie.reasoningContent+=B,Mt.publish({sessionId:ie.sessionId,messageId:ie.reasoningMessageId,content:ie.reasoningContent}))},onToolStart:(B,ie,H)=>{var Tt,Ke;n(L,{type:"tool_start",tool_call_id:B,tool_name:ie},Ae);const _e=F.current.get(L),Ie=(_e==null?void 0:_e.content)||"",Fe=(_e==null?void 0:_e.reasoningContent)||"",et=Ie.trim().length>0,Xe=Fe.trim().length>0;if(et||Xe){const Nt=ae.getState().chats.find(Ot=>Ot.id===L),Se=(Tt=Nt==null?void 0:Nt.messages)==null?void 0:Tt[Nt.messages.length-1],De=typeof((Ke=Se==null?void 0:Se.metadata)==null?void 0:Ke.reasoning)=="string"?Se.metadata.reasoning:"";(Se==null?void 0:Se.role)==="assistant"&&(Se==null?void 0:Se.type)==="text"&&typeof(Se==null?void 0:Se.content)=="string"&&Se.content===Ie&&De===Fe||t(L,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:Ie,createdAt:new Date().toISOString(),metadata:{sessionId:L,model:"agent",...Xe?{reasoning:Fe}:{}}}),_e&&(_e.content="",_e.reasoningContent="",_e.status&&(_e.status="",Mt.clear(_e.sessionId,_e.statusMessageId)),Mt.publish({sessionId:_e.sessionId,messageId:_e.messageId,content:""}),Mt.publish({sessionId:_e.sessionId,messageId:_e.reasoningMessageId,content:""}))}Q.current.set(B,ie);const kt=ie.trim().toLowerCase();Ta(ie)?At("memory_updating"):At(`tool_running:${kt||"tool"}`);const Ct=crypto.randomUUID();G.current.set(B,Ct),t(L,{id:Ct,role:"assistant",type:"tool_call",toolCalls:[{toolCallId:B,toolName:ie,parameters:H||{},streamingOutput:""}],metadata:{},createdAt:new Date().toISOString()})},onToolToken:(B,ie)=>{n(L,{type:"tool_token",tool_call_id:B,content:ie},Ae);const H=G.current.get(B),_e=ae.getState().chats.find(Xe=>Xe.id===L);if(!_e)return;const Ie=(H?_e==null?void 0:_e.messages.find(Xe=>Xe.id===H):null)||(_e==null?void 0:_e.messages[_e.messages.length-1]);if(!Ie||!("type"in Ie)||Ie.type!=="tool_call"||!("toolCalls"in Ie)||!Array.isArray(Ie.toolCalls))return;const Fe=Ie.toolCalls.find(Xe=>Xe.toolCallId===B);Fe&&!Q.current.has(B)&&(Q.current.set(B,Fe.toolName),G.current.set(B,Ie.id));const et=Ie.toolCalls.map(Xe=>{if(Xe.toolCallId!==B)return Xe;const kt=(Xe.streamingOutput||"")+(ie||"");return{...Xe,streamingOutput:kt}});l(L,Ie.id,{toolCalls:et})},onToolComplete:(B,ie)=>{n(L,{type:"tool_complete",tool_call_id:B},Ae);const H=Q.current.get(B)||"unknown";Q.current.delete(B),G.current.delete(B);const _e=H.trim().toLowerCase(),Ie=F.current.get(L);(Ta(H)?(Ie==null?void 0:Ie.status)==="memory_updating":!!(Ie!=null&&Ie.status&&Ie.status.includes(_e)))&&At(null);const et=(ie==null?void 0:ie.display_preference)||"Default";t(L,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:H,toolCallId:B,result:{tool_name:H,result:(ie==null?void 0:ie.result)??"",display_preference:et},isError:!(ie!=null&&ie.success),createdAt:new Date().toISOString()})},onToolError:(B,ie)=>{n(L,{type:"tool_error",tool_call_id:B},Ae),Q.current.delete(B),G.current.delete(B),At(null),t(L,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:"unknown",toolCallId:B,result:{tool_name:"unknown",result:ie,display_preference:"Default"},isError:!0,createdAt:new Date().toISOString()})},onToolLifecycle:(B,ie,H,_e,Ie,Fe,et)=>{if(H==="begin"){const Xe=(ie||"").trim().toLowerCase();Ta(ie||"")?At("memory_updating"):At(`tool_running:${Xe||"tool"}`),Fe===!1&&ka({title:xt.t("app.notifications.toolApproval.title",{tool:ie||xt.t("app.notifications.toolApproval.unknownTool")}),body:xt.t("app.notifications.toolApproval.body",{tool:ie||""}),sessionId:L,eventType:"tool_approval",eventId:B})}if(H==="finished"||H==="error"||H==="cancelled"){const Xe=G.current.get(B);if(Xe){const Ke=ae.getState().chats.find(De=>De.id===L),Nt=Ke==null?void 0:Ke.messages.find(De=>De.id===Xe),Se=Nt&&"metadata"in Nt?Nt.metadata??{}:{};l(L,Xe,{metadata:{...Se,elapsed_ms:_e,is_mutating:Ie,...et?{summary:et}:{}}})}const kt=(ie||"").trim().toLowerCase(),Ct=F.current.get(L);(Ta(ie||"")?(Ct==null?void 0:Ct.status)==="memory_updating":!!(Ct!=null&&Ct.status&&Ct.status.includes(kt)))&&At(null)}},onContextCompressionStatus:(B,ie)=>{if(ie==="started"){At("context_compacting");return}if(ie==="degraded_sections"){At("context_compaction_degraded");return}if(ie==="failed"){At("context_compaction_failed");return}At(null)},onTokenBudgetUpdated:B=>{const ie=typeof B.max_context_tokens=="number"&&B.max_context_tokens>0?B.max_context_tokens:void 0,H={systemTokens:B.system_tokens,summaryTokens:B.summary_tokens,windowTokens:B.window_tokens,totalTokens:B.total_tokens,budgetLimit:B.budget_limit,...ie?{maxContextTokens:ie}:{},...typeof B.prompt_cached_tool_outputs=="number"&&B.prompt_cached_tool_outputs>0?{promptCachedToolOutputs:B.prompt_cached_tool_outputs}:{},...typeof B.prompt_cached_tool_tokens_saved=="number"&&B.prompt_cached_tool_tokens_saved>0?{promptCachedToolTokensSaved:B.prompt_cached_tool_tokens_saved}:{}};s(L,H),o(L,B.truncation_occurred,B.segments_removed);const _e=ae.getState().chats.find(Ie=>Ie.id===L);_e&&i(L,{config:{..._e.config,tokenUsage:H,truncationOccurred:B.truncation_occurred,segmentsRemoved:B.segments_removed}})},onContextSummarized:B=>{At(null),e.info(xt.t("app.notifications.conversationSummarized",{messages:B.messages_summarized,tokens:B.tokens_saved.toLocaleString()}),5)},onContextPressureNotification:(B,ie,H)=>{ie==="critical"?(e.error(H,6),ka({title:xt.t("app.notifications.contextPressure.title"),body:H,sessionId:L,eventType:"context_pressure"})):e.warning(H,5)},onTaskListUpdated:B=>{B.session_id&&u(B.session_id,B)},onTaskListItemProgress:B=>{if(B.session_id){if(!ae.getState().taskLists[B.session_id]){ue(B.session_id);return}h(B.session_id,B)}},onTaskListCompleted:(B,ie,H,_e)=>{de(B,ie,H,_e)&&e.success(xt.t("app.notifications.allTasksCompleted",{rounds:ie,toolCalls:H}),3)},onTaskEvaluationStarted:(B,ie)=>{m(B,{isEvaluating:!0,reasoning:null,timestamp:Date.now()}),e.info(xt.t("app.notifications.evaluatingTasks",{count:ie}),2)},onTaskEvaluationCompleted:(B,ie,H)=>{const _e=uh(H);m(B,{isEvaluating:!1,reasoning:ie>0?_e:null,timestamp:Date.now()}),ie>0?e.success(xt.t("app.notifications.evaluationCompleteUpdated",{count:ie}),3):e.info(xt.t("app.notifications.evaluationCompleteNoUpdates"),2)},onComplete:()=>{Kt=!0,n(L,{type:"complete"},Ae);const B=He,ie=()=>{const H=O.current.get(L);return H!=null&&(H.controller!==B||H.generation!==Ae)};(async()=>{var Xe,kt,Ct;if(At(null),Mt.forceFlush(),k(L),ie())return;const H=F.current.get(L),_e=(H==null?void 0:H.content)||"",Ie=(H==null?void 0:H.reasoningContent)||"",Fe=_e.trim().length>0,et=Ie.trim().length>0;if(Fe||et){const Tt=ae.getState().chats.find(De=>De.id===L),Ke=(Xe=Tt==null?void 0:Tt.messages)==null?void 0:Xe[Tt.messages.length-1],Nt=typeof((kt=Ke==null?void 0:Ke.metadata)==null?void 0:kt.reasoning)=="string"?Ke.metadata.reasoning:"";(Ke==null?void 0:Ke.role)==="assistant"&&(Ke==null?void 0:Ke.type)==="text"&&typeof(Ke==null?void 0:Ke.content)=="string"&&Ke.content===_e&&Nt===Ie||await t(L,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:_e,createdAt:new Date().toISOString(),metadata:{sessionId:L,model:"agent",...et?{reasoning:Ie}:{}}})}if(!ie()&&(await ae.getState().loadChatHistory(L,{mode:"monotonic",retries:4,retryDelayMs:200,waitForAssistant:!0}),!ie())){if(et){const Tt=ae.getState().chats.find(Se=>Se.id===L),Ke=[...(Tt==null?void 0:Tt.messages)||[]].reverse().find(Se=>(Se==null?void 0:Se.role)==="assistant"&&(Se==null?void 0:Se.type)==="text"),Nt=typeof((Ct=Ke==null?void 0:Ke.metadata)==null?void 0:Ct.reasoning)=="string"&&Ke.metadata.reasoning.trim().length>0;Ke!=null&&Ke.id&&!Nt&&l(L,Ke.id,{metadata:{...Ke.metadata||{},reasoning:Ie}})}ie()||Vt()}})().catch(H=>{console.warn(`[useAgentEventSubscription] Completion finalization failed for session ${L}:`,H),ie()||Vt()})},onCancelled:async B=>{Kt=!0,n(L,{type:"cancelled",message:B},Ae),At(null),k(L),Vt()},onError:async B=>{Kt=!0,n(L,{type:"error",message:B},Ae),At(null);try{const ie=mu(B)?gu(B):B;await t(L,{id:`error-${Date.now()}`,role:"assistant",type:"text",content:`❌ **Error**: ${ie}`,createdAt:new Date().toISOString(),finishReason:"error"})}catch(ie){console.warn(`[useAgentEventSubscription] Failed to append error message for session ${L}:`,ie)}finally{Vt()}},onSessionTitleUpdated:B=>{iu(B,ae.getState())},onSessionPinnedUpdated:B=>{iu(B,ae.getState())},onPlanModeEntered:B=>{const ie=B.session_id||L,H=S0(B);if(!H){w();return}i(ie,{planMode:H})},onPlanModeExited:B=>{const ie=B.session_id||L;i(ie,{planMode:null}),w()},onPlanFileUpdated:B=>{const ie=B.session_id||L,H=ae.getState().chats.find(Ie=>Ie.id===ie),_e=H==null?void 0:H.planMode;_e?i(ie,{planMode:{..._e,plan_file_path:B.plan_file_path??_e.plan_file_path??null,status:B.status==="exploring"||B.status==="designing"||B.status==="reviewing"||B.status==="finalizing"||B.status==="awaiting_approval"?B.status:_e.status}}):w()},onSubAgentStarted:(B,ie,H)=>{const _e=D.current.get(B)??{children:new Set,parentDone:!1},Ie=new Set(_e.children);Ie.add(ie),D.current.set(B,{children:Ie,parentDone:_e.parentDone}),b(B,ie,{title:H,status:"pending",lastEventAt:new Date().toISOString()}),H&&H.trim()&&v(ie,H).catch(Fe=>{console.warn(`[useAgentEventSubscription] Failed to persist sub-agent title for ${ie}:`,Fe)}),w()},onSubAgentEvent:(B,ie,H)=>{var Ie;if(H.type==="task_list_updated"&&H.task_list){const Fe=H.task_list.session_id||B;u(Fe,H.task_list);return}if(H.type==="task_list_item_progress"){const Fe=H.session_id||B;if(typeof H.item_id=="string"&&h0(H.status)&&typeof H.tool_calls_count=="number"&&typeof H.version=="number"){if(!ae.getState().taskLists[Fe]){ue(Fe);return}h(Fe,{session_id:Fe,item_id:H.item_id,status:H.status,tool_calls_count:H.tool_calls_count,version:H.version})}return}if(H.type==="task_evaluation_started"){const Fe=H.session_id||B;m(Fe,{isEvaluating:!0,reasoning:null,timestamp:Date.now()});return}if(H.type==="task_evaluation_completed"){const Fe=H.session_id||B,et=H.updates_count??0;m(Fe,{isEvaluating:!1,reasoning:et>0?uh(H.reasoning??""):null,timestamp:Date.now()});return}const _e=(Ie=Di(B)(ae.getState()))==null?void 0:Ie[ie];if(!dh(_e==null?void 0:_e.status)){if(H.type==="runner_progress"){const Fe=typeof H.round_count=="number"?H.round_count:_e==null?void 0:_e.roundCount,et=`${B}:${ie}`;if(typeof Fe=="number"&&q.current.get(et)===Fe)return;typeof Fe=="number"&&q.current.set(et,Fe),b(B,ie,{status:"running",roundCount:Fe,lastEventAt:new Date().toISOString()});return}if(H.type==="token"&&typeof H.content=="string"){const Fe=`${B}:${ie}`,et=I.current.get(Fe),kt=(((et==null?void 0:et.content)??(_e==null?void 0:_e.outputPreview)??"")+H.content).slice(-2e3);he(B,ie,kt,new Date().toISOString())}else b(B,ie,{status:"running",lastEventAt:new Date().toISOString()})}},onSubAgentHeartbeat:(B,ie,H)=>{if(dh(y0(B,ie)))return;const _e=`${B}:${ie}`,Ie=N.current.get(_e)??0,Fe=Date.parse(H||"")||Date.now();Fe-Ie<m0||(N.current.set(_e,Fe),b(B,ie,{status:"running",lastHeartbeatAt:H}))},onSubAgentCompleted:(B,ie,H,_e)=>{var Xe;const Ie=D.current.get(B)??{children:new Set,parentDone:!1},Fe=new Set(Ie.children);Fe.delete(ie),D.current.set(B,{children:Fe,parentDone:Ie.parentDone}),fe(B,ie);const et=`${B}:${ie}`;if(N.current.delete(et),q.current.delete(et),b(B,ie,{status:H,error:_e,lastEventAt:new Date().toISOString()}),H==="completed"){const kt=(Xe=Di(B)(ae.getState()))==null?void 0:Xe[ie];ka({title:xt.t("app.notifications.backgroundTask.completedTitle"),body:kt!=null&&kt.title?xt.t("app.notifications.backgroundTask.completedBody",{title:kt.title}):xt.t("app.notifications.backgroundTask.completedFallback"),sessionId:B,eventType:"subagent_completed",eventId:ie})}Ie.parentDone&&Fe.size===0&&$n(),w()},onNeedClarification:B=>{const ie=B.session_id||L;S(ie,{question:B.question||"",options:B.options||[],allowCustom:B.allow_custom??!0,toolCallId:B.tool_call_id??null});const H=B.question||"",_e=H.length>80?`${H.slice(0,80)}...`:H;ka({title:xt.t("app.notifications.clarification.title"),body:_e||xt.t("app.notifications.clarification.fallbackBody"),sessionId:ie,eventType:"clarification",eventId:B.tool_call_id??void 0})},onExecutionStarted:(B,ie)=>{Me("[SSE]","event.executionStarted",{sessionId:L,generation:Ae,runId:B}),n(L,{type:"execution_started",run_id:B},Ae)},onRunnerProgress:()=>{}},He).then(()=>{var H,_e,Ie,Fe,et,Xe,kt,Ct;if(ye(),Ca("streamEnded",L,"generation:",Ae,"aborted:",He.signal.aborted,"terminal:",Kt),Me("[SSE]","streamEnded",{sessionId:L,generation:Ae,aborted:He.signal.aborted,terminalEventSeen:Kt,shouldSkipReconnectAfterTerminal:Te(),phase:((_e=(H=ae.getState().executionBySession)==null?void 0:H[L])==null?void 0:_e.phase)??null,backendRunId:((Fe=(Ie=ae.getState().executionBySession)==null?void 0:Ie[L])==null?void 0:Fe.backendRunId)??null}),He.signal.aborted||Te())return;const B=O.current.get(L);if(B&&(B.controller!==He||B.generation!==Ae))return;const ie=pr(L)(ae.getState());if(Me("[SSE]","streamEnded.busyCheck",{sessionId:L,generation:Ae,stillBusy:ie,phase:((Xe=(et=ae.getState().executionBySession)==null?void 0:et[L])==null?void 0:Xe.phase)??null,backendRunId:((Ct=(kt=ae.getState().executionBySession)==null?void 0:kt[L])==null?void 0:Ct.backendRunId)??null}),!ie){ne(L,{clearDraft:!0});return}Xt()}).catch(B=>{var _e,Ie,Fe,et,Xe,kt,Ct,Tt;if(ye(),Me("[SSE]","streamError",{sessionId:L,generation:Ae,aborted:He.signal.aborted,terminalEventSeen:Kt,error:B,phase:((Ie=(_e=ae.getState().executionBySession)==null?void 0:_e[L])==null?void 0:Ie.phase)??null,backendRunId:((et=(Fe=ae.getState().executionBySession)==null?void 0:Fe[L])==null?void 0:et.backendRunId)??null}),He.signal.aborted)return;if(f0(B)){if(Te())return;const Ke=pr(L)(ae.getState());if(Me("[SSE]","streamError.abortError.busyCheck",{sessionId:L,generation:Ae,stillBusy:Ke,phase:((kt=(Xe=ae.getState().executionBySession)==null?void 0:Xe[L])==null?void 0:kt.phase)??null,backendRunId:((Tt=(Ct=ae.getState().executionBySession)==null?void 0:Ct[L])==null?void 0:Tt.backendRunId)??null}),!Ke){ne(L,{clearDraft:!0});return}Xt();return}if(Te())return;console.error("[useAgentEventSubscription] Subscription error:",B),ne(L,{clearDraft:!0});const ie=zt(L)(ae.getState()),H=pr(L)(ae.getState());ie===Ae&&H&&n(L,{type:"error",message:String(B)},Ae)})},[t,ne,oe,k,$,me,ue,e,de,v,w,m,S,n,Ce,u,o,l,i,h,s,b,fe,he]),Le=y.useCallback(L=>{const le=L.trim();if(!le)return;Z.current.delete(le);const Ae=O.current.get(le);if((Ae==null?void 0:Ae.sessionId)===le&&!Ae.controller.signal.aborted&&!Ae.streamEnded){Ca("skipExistingSubscription",le,"generation:",Ae.generation,"streamEnded:",Ae.streamEnded);return}Ae&&(Ca("restartStaleSubscription",le,"generation:",Ae.generation,"aborted:",Ae.controller.signal.aborted,"streamEnded:",Ae.streamEnded),ne(le,{clearDraft:!1})),ze(le)},[ne,ze]),lt=ae(Pi(L=>Object.entries(L.executionBySession).filter(([,le])=>jl(le.phase)).map(([le])=>le).sort()));y.useEffect(()=>{const L=new Set(lt);Me("[SSE]","effect.busySessions",{busySessionIds:lt}),lt.forEach(le=>Le(le));for(const le of Array.from(O.current.keys()))L.has(le)||ne(le,{clearDraft:!0});for(const le of Array.from(Z.current))L.has(le)||Z.current.delete(le)},[lt,Le,ne]),y.useEffect(()=>ae.subscribe(L=>L.chats,()=>{if(Z.current.size!==0)for(const L of Array.from(Z.current)){if(!pr(L)(ae.getState())){Z.current.delete(L);continue}Le(L)}}),[Le]),y.useEffect(()=>{const L=O.current;return()=>{const le=Array.from(L.keys());for(const Ae of le)ne(Ae,{clearDraft:!0,clearTitleRetry:!0})}},[ne])}const Rr=(e,t,n)=>Math.max(t,Math.min(n,e)),Pa=(e,t)=>t==="horizontal"?e.clientWidth:e.clientHeight,Ea=(e,t,n)=>{const r=Math.max(0,Math.round(e)),s=Math.max(0,Math.round(t)),o=Math.max(0,Math.round(n));return s+o>r?{minFirst:0,maxFirst:r,appliedMinFirst:0,appliedMinSecond:0}:{minFirst:s,maxFirst:r-o,appliedMinFirst:s,appliedMinSecond:o}},vd=({layout:e,first:t,second:n,sizesPx:r,defaultSplitRatio:s=.5,minFirstPx:o=0,minSecondPx:i=0,handleSizePx:l=6,disabled:u=!1,onResizeEnd:f,style:h,className:m})=>{const b=y.useRef(null),v=y.useRef(null),[w,S]=y.useState(null),[k,P]=y.useState(0),[T,M]=y.useState(null),C=y.useMemo(()=>{if(!r)return null;const ue=Number(r[0]);return Number.isFinite(ue)?ue:null},[r]),j=y.useMemo(()=>{if(!r)return null;const ue=Number(r[1]);return Number.isFinite(ue)?ue:null},[r]),A=y.useMemo(()=>{if(!r)return null;const ue=Number(r[0]),de=Number(r[1]);if(!Number.isFinite(ue)||!Number.isFinite(de))return null;const Ce=ue+de;return Ce<=0||ue<=0||de<=0?null:Rr(ue/Ce,0,1)},[r]),O=y.useMemo(()=>C===null||j===null?null:C>0&&j<=0?C:null,[C,j]),F=y.useMemo(()=>C===null||j===null?null:j>0&&C<=0?j:null,[C,j]);y.useLayoutEffect(()=>{const ue=b.current;ue&&P(Pa(ue,e))},[e]),y.useEffect(()=>{const ue=b.current;if(!ue)return;const de=()=>{const Ce=Pa(ue,e);P(ze=>ze===Ce?ze:Ce)};if(de(),typeof ResizeObserver<"u"){const Ce=new ResizeObserver(de);return Ce.observe(ue),()=>Ce.disconnect()}return window.addEventListener("resize",de),()=>window.removeEventListener("resize",de)},[e]),y.useEffect(()=>{if(A!==null){M(A);return}M(ue=>ue??Rr(s,.1,.9))},[s,A]);const D=y.useMemo(()=>Ea(k,o,i),[k,o,i]),N=Rr(s,.1,.9),q=T??N,I=k>0?Math.round(k*q):null,Q=w??(A!==null?I:null)??O??(F!==null&&k>0?k-F:null)??I??0,G=k>0?Rr(Q,D.minFirst,D.maxFirst):Math.max(0,Math.round(Q)),Z=y.useCallback(ue=>{if(u)return;const de=b.current;if(!de)return;ue.preventDefault(),ue.stopPropagation();const Ce=e==="horizontal"?ue.clientX:ue.clientY,ze=Pa(de,e),Le=Ea(ze,o,i),lt=Rr(G||Math.round(ze*N),Le.minFirst,Le.maxFirst);v.current={pointerId:ue.pointerId,startPos:Ce,startFirstPx:lt,containerSize:ze};try{ue.currentTarget.setPointerCapture(ue.pointerId)}catch{}},[u,G,N,e,o,i]),pe=y.useCallback(ue=>{const de=v.current;if(!de||ue.pointerId!==de.pointerId)return;ue.preventDefault(),ue.stopPropagation();const ze=(e==="horizontal"?ue.clientX:ue.clientY)-de.startPos,Le=de.containerSize,lt=Ea(Le,o,i),L=Rr(Math.round(de.startFirstPx+ze),lt.minFirst,lt.maxFirst);S(L)},[e,o,i]),$=y.useCallback(ue=>{const de=v.current;if(!de||de.pointerId!==ue)return;const Ce=b.current,ze=Ce?Pa(Ce,e):de.containerSize,Le=w??de.startFirstPx,lt=Ea(ze,o,i),L=Rr(Le,lt.minFirst,lt.maxFirst),le=Math.max(0,ze-L);S(null),ze>0&&M(Rr(L/ze,0,1)),v.current=null,f==null||f([L,le])},[e,w,o,i,f]),oe=y.useCallback(ue=>{ue.preventDefault(),ue.stopPropagation(),$(ue.pointerId)},[$]),me=y.useCallback(ue=>{ue.preventDefault(),ue.stopPropagation(),$(ue.pointerId)},[$]),ne=e==="horizontal",fe=u?"default":ne?"col-resize":"row-resize",he=Math.max(0,Math.round(l));return a.jsxs("div",{ref:b,className:m,style:{display:"flex",flexDirection:ne?"row":"column",height:"100%",minHeight:0,minWidth:0,width:"100%",position:"relative",...h},children:[a.jsx("div",{style:{flex:`0 0 ${G}px`,minWidth:ne?D.appliedMinFirst:0,minHeight:ne?0:D.appliedMinFirst,overflow:"hidden",display:"flex"},children:a.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:t})}),a.jsx("div",{style:{flex:"1 1 auto",minWidth:ne?D.appliedMinSecond:0,minHeight:ne?0:D.appliedMinSecond,overflow:"hidden",display:"flex"},children:a.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:n})}),he>0?a.jsx("div",{role:"separator","aria-orientation":ne?"vertical":"horizontal",onPointerDown:Z,onPointerMove:pe,onPointerUp:oe,onPointerCancel:me,style:{position:"absolute",top:ne?0:`${G-he/2}px`,left:ne?`${G-he/2}px`:0,width:ne?`${he}px`:"100%",height:ne?"100%":`${he}px`,cursor:fe,touchAction:"none",background:"transparent",zIndex:5}}):null]})},bu="chat-toggle-batch-export-selection",vu="chat-open-inspector",Su="chat-focus-input",xu="chat-pending-question-resolved",hl=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp"],fh=10*1024*1024,w0=2048,_0=2048,k0=.82,C0=512*1024,T0=e=>hl.includes(e.type)?e.size>fh?{isValid:!1,error:`Image size too large: ${(e.size/1024/1024).toFixed(2)}MB. Maximum size: ${fh/1024/1024}MB`}:{isValid:!0}:{isValid:!1,error:`Unsupported image type: ${e.type}. Supported types: ${hl.join(", ")}`},P0=e=>new Promise((t,n)=>{const r=new Image;r.onload=()=>t(r),r.onerror=()=>n(new Error("Failed to load image")),r.src=e}),hh=e=>new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?t(r.result):n(new Error("Failed to convert file to base64"))},r.onerror=()=>n(new Error("Failed to read file")),r.readAsDataURL(e)}),E0=e=>URL.createObjectURL(e),M0=(e,t,n,r)=>{let{width:s,height:o}=t;if(s>n||o>r){const l=s/o;s>o?(s=n,o=Math.round(s/l)):(o=r,s=Math.round(o*l))}e.width=s,e.height=o;const i=e.getContext("2d");i&&(i.fillStyle="#ffffff",i.fillRect(0,0,s,o),i.drawImage(t,0,0,s,o))},j0=async(e,t)=>{const n=await P0(e),r=document.createElement("canvas");return M0(r,n,w0,_0),I0(r,t)},R0=async e=>{const t=T0(e);if(!t.isValid)throw new Error(t.error);const n=E0(e);try{let r;if(e.type==="image/gif"||e.size<C0)r=await hh(e);else try{r=await j0(n,k0)}catch(o){console.warn("[imageUtils] Failed to re-encode image, using original:",o),r=await hh(e)}const s=`img_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return{file:e,base64:r,preview:n,id:s,name:e.name,size:e.size,type:e.type}}catch(r){throw oy(n),r}},A0=async e=>{const t=Array.from(e),n=[];for(const r of t)try{const s=await R0(r);n.push(s)}catch(s){console.error(`Failed to process image ${r.name}:`,s)}return n},I0=(e,t=.8)=>e.toDataURL("image/jpeg",t),oy=e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e)},ph=e=>{e.forEach(t=>oy(t.preview))},O0=e=>{if(e===0)return"0 Bytes";const t=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,r)).toFixed(2))+" "+n[r]},$0=e=>!e.files||e.files.length===0?!1:Array.from(e.files).some(t=>hl.includes(t.type)),L0=e=>e.files?Array.from(e.files).filter(t=>hl.includes(t.type)):[],{Text:F0,Title:D0}=ft,N0=({visible:e,images:t,currentIndex:n=0,onClose:r,onDownload:s})=>{const{token:o}=ut.useToken(),{t:i}=Ge(),[l,u]=y.useState(n);if(!t||t.length===0)return null;const f=t[l],h=()=>{if(s&&f)s(f);else{const v=document.createElement("a");v.href=f.base64,v.download=f.name,document.body.appendChild(v),v.click(),document.body.removeChild(v)}},m=()=>{u(v=>v>0?v-1:t.length-1)},b=()=>{u(v=>v<t.length-1?v+1:0)};return a.jsxs(qa,{open:e,onCancel:r,footer:null,width:"90vw",style:{top:20},styles:{body:{padding:0,height:"80vh",display:"flex",flexDirection:"column"}},closeIcon:a.jsx(vs,{style:{color:o.colorTextLightSolid}}),children:[a.jsx("div",{style:{padding:o.paddingMD,borderBottom:`1px solid ${o.colorBorder}`,background:o.colorBgContainer},children:a.jsxs("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[a.jsxs("div",{children:[a.jsx(D0,{level:5,style:{margin:0},children:f.name}),a.jsxs(F0,{type:"secondary",style:{fontSize:o.fontSizeSM},children:[O0(f.size)," • ",f.type,t.length>1&&` • ${i("chat.imagePreview.counter",{current:l+1,total:t.length})}`]})]}),a.jsxs(Ue,{children:[t.length>1&&a.jsxs(a.Fragment,{children:[a.jsx(je,{icon:a.jsx(ru,{}),onClick:m,disabled:t.length<=1}),a.jsx(je,{icon:a.jsx(zr,{}),onClick:b,disabled:t.length<=1})]}),a.jsx(je,{icon:a.jsx(Ks,{}),onClick:h,children:i("common.download")})]})]})}),a.jsxs("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center",background:o.colorBgLayout,position:"relative",overflow:"hidden"},children:[t.length===1?a.jsx("img",{src:f.preview,alt:f.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}}):a.jsx(RS,{dots:!1,arrows:!0,infinite:!0,afterChange:u,style:{width:"100%",height:"100%"},children:t.map(v=>a.jsx("div",{children:a.jsx("div",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:a.jsx("img",{src:v.preview,alt:v.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}})})},v.id))}),t.length>1&&a.jsxs(a.Fragment,{children:[a.jsx(je,{type:"primary",shape:"circle",icon:a.jsx(ru,{}),onClick:m,style:{position:"absolute",left:20,top:"50%",transform:"translateY(-50%)",zIndex:10}}),a.jsx(je,{type:"primary",shape:"circle",icon:a.jsx(zr,{}),onClick:b,style:{position:"absolute",right:20,top:"50%",transform:"translateY(-50%)",zIndex:10}})]})]}),t.length>1&&a.jsx("div",{style:{padding:o.paddingSM,borderTop:`1px solid ${o.colorBorder}`,background:o.colorBgContainer,display:"flex",gap:o.marginXS,overflowX:"auto",maxHeight:80},children:t.map((v,w)=>a.jsx("div",{style:{minWidth:60,height:60,border:w===l?`2px solid ${o.colorPrimary}`:`1px solid ${o.colorBorder}`,borderRadius:o.borderRadius,overflow:"hidden",cursor:"pointer",opacity:w===l?1:.7},onClick:()=>u(w),children:a.jsx("img",{src:v.preview,alt:v.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},v.id))})]})},Co=e=>/\s/.test(e),B0=e=>{if(!e)return[{text:"",type:"text"}];const t=[],n=e.length;let r=0;for(;r<n;){const s=e[r],o=r>0?e[r-1]:"",i=s==="/"&&(r===0||Co(o)),l=s==="@"&&(r===0||Co(o));if(!i&&!l){let h=r;for(;r<n&&!((e[r]==="/"||e[r]==="@")&&(r===0||Co(e[r-1])));)r+=1;t.push({text:e.slice(h,r),type:"text"});continue}let u=r+1;for(;u<n&&!Co(e[u]);)u+=1;const f=e.slice(r,u);i?u===n||Co(e[u])?t.push({text:f,type:"workflow"}):t.push({text:f,type:"text"}):l&&t.push({text:f,type:"file"}),r=u}return t.length>0?t:[{text:"",type:"text"}]},z0=/(\/)([a-zA-Z0-9_-]*)$/,W0=e=>{if(!e)return{command:null,isTriggerActive:!1,searchText:""};const t=e.match(z0);if(!t)return{command:null,isTriggerActive:!1,searchText:""};const n=t[2]||"",r=!n.includes(" ")&&t.index!==void 0;return{command:n||null,isTriggerActive:r,searchText:n}},U0=/@([a-zA-Z0-9._\-\/\\]*)$/,q0=e=>{if(!e)return{isTriggerActive:!1,searchText:"",tokenStart:null};const t=e.match(U0);if(!t||t.index===void 0)return{isTriggerActive:!1,searchText:"",tokenStart:null};const n=t[1]||"",r=t.index;return{isTriggerActive:!n.includes(" "),searchText:n,tokenStart:r}},H0=(e,t=80)=>{const[n,r]=y.useState(e);return y.useEffect(()=>{const s=window.setTimeout(()=>{r(e)},t);return()=>{window.clearTimeout(s)}},[e,t]),n},{Text:Y0}=ft,X0=({visible:e,token:t})=>{const{t:n}=Ge();return e?a.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:t.colorPrimaryBg,borderRadius:t.borderRadius,zIndex:10,pointerEvents:"none"},children:a.jsxs(Ue,{direction:"vertical",align:"center",children:[a.jsx(AS,{style:{fontSize:32,color:t.colorPrimary}}),a.jsx(Y0,{style:{color:t.colorPrimary,fontWeight:500},children:n("chat.input.dropImagesHere")})]})}):null},{Text:mh}=ft,K0=({images:e,token:t,allowImages:n,onPreview:r,onClear:s})=>{const{t:o}=Ge();return!n||e.length===0?null:a.jsx("div",{style:{marginBottom:t.marginSM,padding:`${t.paddingXXS}px ${t.paddingXS}px`,borderRadius:999,border:`1px solid ${t.colorBorderSecondary}`,background:t.colorFillSecondary},children:a.jsxs(Ee,{align:"center",wrap:"wrap",gap:t.marginXS,children:[a.jsx(mh,{type:"secondary",style:{fontSize:t.fontSizeSM,minWidth:"fit-content"},children:e.length>1?o("chat.input.imageCountPlural",{count:e.length}):o("chat.input.imageCountSingular",{count:e.length})}),e.slice(0,3).map(i=>a.jsx("div",{style:{position:"relative",width:32,height:32,borderRadius:999,overflow:"hidden",border:`1px solid ${t.colorBorderSecondary}`,cursor:"pointer"},onClick:()=>r(i),children:a.jsx("img",{src:i.preview,alt:i.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},i.id)),e.length>3&&a.jsx(mh,{type:"secondary",style:{fontSize:t.fontSizeSM},children:o("chat.input.moreImages",{count:e.length-3})}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(vs,{}),onClick:s,style:{marginLeft:"auto",minWidth:"auto",padding:"0 4px",height:24},title:o("chat.input.clearAllImages")})]})})},{TextArea:V0}=Ss,G0=({value:e,placeholder:t,disabled:n,token:r,highlightSegments:s,textAreaRef:o,highlightOverlayRef:i,onChange:l,onKeyDown:u,onPaste:f,onScrollSync:h})=>{const m=e.length>0&&s.some(S=>S.type!=="text"),b="6px 4px",v=1.65,w=n?r.colorTextDisabled:r.colorText;return a.jsxs("div",{style:{position:"relative",flex:1},children:[m?a.jsxs("div",{ref:i,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,padding:b,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflow:"hidden",pointerEvents:"none",color:"transparent",fontSize:r.fontSize,lineHeight:v,fontFamily:"inherit",fontWeight:400,letterSpacing:"normal",transform:"translate(0, 0)",zIndex:0},children:[s.map((S,k)=>{let P;return S.type==="workflow"?P={backgroundColor:r.colorPrimaryBg,color:"transparent",WebkitTextFillColor:"transparent",fontWeight:400,textDecoration:"underline",textDecorationStyle:"dotted",textDecorationColor:r.colorPrimary}:S.type==="file"&&(P={backgroundColor:r.colorSuccessBg,color:"transparent",WebkitTextFillColor:"transparent"}),a.jsx("span",{style:P,children:S.text},`segment-${k}`)}),e.endsWith(`
|
|
17
|
+
Raw error: ${t}`:"";return["Bamboo stopped this completion because Copilot conclusion_with_options confirmation is enabled for this session.","The assistant tried to finish with plain text instead of calling conclusion_with_options.","Next steps: retry the request, shorten or clarify the prompt, or temporarily disable the Copilot conclusion_with_options enhancement for this session if you do not want enforced confirmation."].join(" ")+n},bd=()=>typeof window<"u"&&!!window.__TAURI_INTERNALS__,ry="bodhi_notification_prefs",ka={enabled:!0,onClarification:!0,onToolApproval:!0,onContextPressure:!0,onSubAgentComplete:!1};function sy(){if(typeof localStorage>"u")return ka;try{const e=localStorage.getItem(ry);if(!e)return ka;const t=JSON.parse(e);return{...ka,...t}}catch{return ka}}function _I(e){if(typeof localStorage>"u")return;const n={...sy(),...e};localStorage.setItem(ry,JSON.stringify(n))}function a0(e){const t=sy();if(!t.enabled)return!1;switch(e){case"clarification":return t.onClarification;case"tool_approval":return t.onToolApproval;case"context_pressure":return t.onContextPressure;case"subagent_completed":return t.onSubAgentComplete;default:return!0}}const bu=new Set,l0=3e4;function c0(e){const t=[e.sessionId??"global",e.eventType];return e.eventId&&t.push(e.eventId),t.join("::")}function u0(e){setTimeout(()=>{bu.delete(e)},l0)}async function d0(){const e=window.__TAURI_INTERNALS__,t=e==null?void 0:e.invoke;if(typeof t!="function")return!0;try{return await t("is_main_window_focused")===!0}catch{return!0}}async function f0(e,t){const n=window.__TAURI_INTERNALS__,r=n==null?void 0:n.invoke;if(typeof r!="function")throw new Error("Tauri invoke not available");await r("show_desktop_notification",{title:e,body:t})}async function Ca(e){if(!bd()||await d0()||!a0(e.eventType))return;const n=c0(e);if(!bu.has(n))try{await f0(e.title,e.body),bu.add(n),u0(n)}catch{}}function Ta(...e){}const h0=e=>{const t=e;return(t==null?void 0:t.name)==="AbortError"||(t==null?void 0:t.code)===20},ch=220,uh=e=>{const t=e.replace(/\s+/g," ").trim();return t.length<=ch?t:`${t.slice(0,ch)}...`},p0=e=>e==="pending"||e==="in_progress"||e==="completed"||e==="blocked",m0=new Set(["completed","error","cancelled","failed"]),g0=1500,y0=120,b0=(e,t)=>{var n,r;return(r=(n=Ni(e)(ae.getState()))==null?void 0:n[t])==null?void 0:r.status},dh=e=>e?m0.has(e):!1,v0=(e,t,n,r)=>{const s=r==null?void 0:r.trim();return s?`${e}:${s}`:`${e}:stats:${t}:${n}`},Pa=e=>{const t=e.trim().toLowerCase();return t==="memory_note"||t==="session_note"},S0=()=>{const e=Jn;return typeof e.getInstance=="function"?e.getInstance():new Jn},x0=e=>{if(typeof e.pre_permission_mode!="string"||typeof e.entered_at!="string")return null;const t=e.status;return t!=="exploring"&&t!=="designing"&&t!=="reviewing"&&t!=="finalizing"&&t!=="awaiting_approval"?null:{entered_at:e.entered_at,pre_permission_mode:e.pre_permission_mode,plan_file_path:e.plan_file_path??null,status:t}};function w0(){const{message:e}=Fn.useApp(),{addMessage:t,applyAgentEvent:n,markStreamStarted:r,updateTokenUsage:s,setTruncationInfo:o,updateSession:i,updateMessage:l,setTaskList:u,loadTaskList:d,updateTaskListDelta:h,setEvaluationState:m,applyChildProgress:b,persistSessionTitle:v,refreshChatsNow:w,setPendingQuestion:S,clearPendingQuestion:k}=ae(Mi(L=>({addMessage:L.addMessage,applyAgentEvent:L.applyAgentEvent,markStreamStarted:L.markStreamStarted,updateTokenUsage:L.updateTokenUsage,setTruncationInfo:L.setTruncationInfo,updateSession:L.updateSession,updateMessage:L.updateMessage,setTaskList:L.setTaskList,loadTaskList:L.loadTaskList,updateTaskListDelta:L.updateTaskListDelta,setEvaluationState:L.setEvaluationState,applyChildProgress:L.applyChildProgress,persistSessionTitle:L.persistSessionTitle,refreshChatsNow:L.refreshChatsNow,setPendingQuestion:L.setPendingQuestion,clearPendingQuestion:L.clearPendingQuestion}))),P=y.useRef(null);P.current||(P.current=S0());const T=y.useRef(new Set),j=y.useRef(new Map),C=y.useRef(new Map),E=y.useRef(new Map),A=y.useRef(new Map),O=y.useRef(new Map),D=y.useRef(new Map),F=y.useRef(new Map),N=y.useRef(new Map),q=y.useRef(new Map),I=y.useRef(new Map),Q=y.useRef(new Map),G=y.useRef(new Map),Z=y.useRef(new Set),pe=y.useRef(new Map),$=y.useCallback(L=>{const le=pe.current.get(L);le!=null&&le.timer&&clearTimeout(le.timer),pe.current.delete(L)},[]),oe=y.useCallback(L=>{const le=j.current.get(L);le&&(clearTimeout(le),j.current.delete(L))},[]),me=y.useCallback(L=>{const le=C.current.get(L);le!=null&&le.timer&&clearTimeout(le.timer),C.current.delete(L)},[]),ne=y.useCallback((L,le)=>{var pt;const Ae=ae.getState(),Ie=(pt=Ae.executionBySession)==null?void 0:pt[L];Ee("[SSE]","cleanupChat",{sessionId:L,opts:le??null,generation:(Ie==null?void 0:Ie.generation)??null,phase:(Ie==null?void 0:Ie.phase)??null,backendRunId:(Ie==null?void 0:Ie.backendRunId)??null,shouldObserve:pr(L)(Ae)}),$(L),oe(L),le!=null&&le.clearTitleRetry&&me(L),Z.current.delete(L),A.current.delete(L);for(const[$t,Qt]of I.current.entries())$t.startsWith(`${L}:`)&&(Qt.timer&&clearTimeout(Qt.timer),I.current.delete($t));const He=O.current.get(L);if(!He)return;O.current.delete(L),He.controller.abort(),Et.forceFlush();const dt=D.current.get(He.sessionId);dt?(le!=null&&le.clearDraft&&(Et.clear(dt.sessionId,dt.messageId),Et.clear(dt.sessionId,dt.reasoningMessageId),Et.clear(dt.sessionId,dt.statusMessageId)),D.current.delete(He.sessionId)):le!=null&&le.clearDraft&&(Et.clear(L,`streaming-${L}`),Et.clear(L,`streaming-reasoning-${L}`),Et.clear(L,`streaming-status-${L}`))},[oe,$,me]),he=y.useCallback((L,le)=>{const Ae=`${L}:${le}`,Ie=I.current.get(Ae);Ie&&(Ie.timer&&clearTimeout(Ie.timer),I.current.delete(Ae),b(L,le,{status:"running",outputPreview:Ie.content,lastEventAt:Ie.lastEventAt}))},[b]),fe=y.useCallback((L,le,Ae,Ie)=>{const He=`${L}:${le}`,dt=I.current.get(He);dt!=null&&dt.timer&&clearTimeout(dt.timer);const pt=setTimeout(()=>{he(L,le)},y0);I.current.set(He,{content:Ae,lastEventAt:Ie,timer:pt})},[he]),ue=y.useCallback(async L=>{const le=L.trim();if(le&&!T.current.has(le)&&!ae.getState().taskLists[le]){T.current.add(le);try{await d(le)}catch(Ae){console.warn(`[useAgentEventSubscription] Failed to recover task list baseline for ${le}:`,Ae)}finally{T.current.delete(le)}}},[d]),de=y.useCallback((L,le,Ae,Ie)=>{var Qt,rn,_n;const He=v0(L,le,Ae,Ie);if(E.current.get(L)===He)return!1;const pt=(Qt=ae.getState().executionBySession)==null?void 0:Qt[L],$t=(pt==null?void 0:pt.phase)==="waiting_user_answer"||((rn=pt==null?void 0:pt.interaction)==null?void 0:rn.pendingQuestion)!=null||((_n=pt==null?void 0:pt.interaction)==null?void 0:_n.respondMode)!=null;return E.current.set(L,He),!$t},[]),Ce=y.useCallback((L,le)=>{A.current.get(L)!==le&&(A.current.set(L,le),r(L,le))},[r]),ze=y.useCallback(L=>{var fn;const le=ae.getState(),Ae=zt(L)(le)??0,Ie=(fn=le.executionBySession)==null?void 0:fn[L];Ee("[SSE]","startSubscription",{sessionId:L,generation:Ae,phase:(Ie==null?void 0:Ie.phase)??null,backendRunId:(Ie==null?void 0:Ie.backendRunId)??null,shouldObserve:pr(L)(le)}),$(L),me(L);const He=new AbortController;O.current.set(L,{sessionId:L,controller:He,generation:Ae,streamEnded:!1});const dt=`streaming-${L}`,pt=`streaming-reasoning-${L}`,$t=`streaming-status-${L}`,Qt=Et.getLatest(dt),rn=Et.getLatest(pt),_n=Et.getLatest($t);D.current.set(L,{sessionId:L,messageId:dt,content:Qt??"",reasoningMessageId:pt,reasoningContent:rn??"",statusMessageId:$t,status:_n??""});const At=B=>{const ie=D.current.get(L);if(!ie)return;const H=(B??"").trim();if(!H){if(!ie.status)return;ie.status="",Et.clear(ie.sessionId,ie.statusMessageId);return}ie.status!==H&&(ie.status=H,Et.publish({sessionId:ie.sessionId,messageId:ie.statusMessageId,content:ie.status}))};Qt===null&&Et.publish({sessionId:L,messageId:dt,content:""});const Xt=()=>{var et;const B=pe.current.get(L),ie=(B==null?void 0:B.attempt)??0,H=Math.min(5e3,250*Math.pow(2,ie)),_e=ae.getState(),Oe=(et=_e.executionBySession)==null?void 0:et[L];Ee("[SSE]","scheduleReconnect",{sessionId:L,generation:Ae,attempt:ie,delayMs:H,phase:(Oe==null?void 0:Oe.phase)??null,backendRunId:(Oe==null?void 0:Oe.backendRunId)??null,shouldObserve:pr(L)(_e),terminalEventSeen:Kt}),ne(L,{clearDraft:!1});const Fe=setTimeout(()=>{var Ke,Nt,Se,De,Ve;pe.current.delete(L);const Xe=ae.getState();if(!pr(L)(Xe)){Ee("[SSE]","scheduleReconnect.skipNotBusy",{sessionId:L,generation:Ae,phase:((Nt=(Ke=Xe.executionBySession)==null?void 0:Ke[L])==null?void 0:Nt.phase)??null,backendRunId:((De=(Se=Xe.executionBySession)==null?void 0:Se[L])==null?void 0:De.backendRunId)??null});return}const Ct=Xe.chats.find(Ot=>Ot.id===L),Tt=(Ve=Ct==null?void 0:Ct.id)==null?void 0:Ve.trim();if(!Tt){Ee("[SSE]","scheduleReconnect.skipMissingSession",{sessionId:L,generation:Ae});return}Ee("[SSE]","scheduleReconnect.restart",{sessionId:Tt,generation:Ae}),ze(Tt)},H);pe.current.set(L,{attempt:ie+1,timer:Fe})};let Kt=!1;const gn=250,On=[1200,3e3],Mn=new Set(["New Session","新建会话","新建會話","Nouvelle session","新しいセッション","नया सत्र"]),It=B=>{const ie=(B||"").trim();return!ie||Mn.has(ie)?!0:ie.startsWith("New Session - ")||ie.startsWith("New Session with ")||ie.startsWith("New session - ")||ie.startsWith("New session with ")?ie.replace(/^New Session - /,"").replace(/^New Session with /,"").replace(/^New session - /,"").replace(/^New session with /,"").trim().length>0:!1},_t=()=>{const B=ae.getState();if((zt(L)(B)??0)!==Ae||pr(L)(B))return!1;const H=B.chats.find(_e=>_e.id===L);return!H||H.isRunning?!1:It(H.title)&&(H.titleVersion??0)===0},bt=()=>{if(!_t()){me(L);return}const B=C.current.get(L),ie=(B==null?void 0:B.attempt)??0;if(ie>=On.length){me(L);return}me(L);const H=On[ie],_e=setTimeout(()=>{C.current.delete(L),(async()=>{if(!_t()){me(L);return}try{await w()}catch(Oe){console.warn(`[useAgentEventSubscription] Title refresh retry failed for session ${L}:`,Oe)}finally{_t()?bt():me(L)}})()},H);C.current.set(L,{attempt:ie+1,timer:_e})},ye=()=>{const B=O.current.get(L);!B||B.controller!==He||B.streamEnded||(B.streamEnded=!0,Ta("markStreamEnded",L,"generation:",B.generation,"terminal:",Kt))},We=()=>{const B=F.current.get(L);return((B==null?void 0:B.children.size)??0)>0},Te=()=>Kt&&!We(),qe=()=>{const B=O.current.get(L);B&&(Et.clear(L,`streaming-${L}`),Et.clear(L,`streaming-reasoning-${L}`),Et.clear(L,`streaming-status-${L}`),D.current.delete(B.sessionId))},Lt=async()=>{oe(L);try{await w()}catch(Fe){console.warn(`[useAgentEventSubscription] High-priority refresh failed while settling parent ${L}:`,Fe)}const B=F.current.get(L)??{children:new Set,parentDone:!1};if(!B.parentDone||B.children.size>0)return;const ie=O.current.get(L);if(ie&&(ie.controller!==He||ie.generation!==Ae))return;const _e=ae.getState().chats.find(Fe=>Fe.id===L);if(!!(_e!=null&&_e.isRunning)){me(L);return}_t()?bt():me(L),ne(L,{clearDraft:!0})},$n=()=>{oe(L);const B=setTimeout(()=>{j.current.delete(L),Lt()},gn);j.current.set(L,B)},Vt=()=>{const B=F.current.get(L)??{children:new Set},ie=new Set(B.children);if(F.current.set(L,{children:ie,parentDone:!0}),ie.size===0){$n();return}qe()},$e=P.current;$e&&$e.subscribeToEvents(L,{onToken:B=>{Ce(L,Ae);const ie=D.current.get(L);ie&&(At(null),ie.content+=B,Et.publish({sessionId:ie.sessionId,messageId:ie.messageId,content:ie.content}))},onReasoningToken:B=>{Ce(L,Ae);const ie=D.current.get(L);ie&&(ie.reasoningContent+=B,Et.publish({sessionId:ie.sessionId,messageId:ie.reasoningMessageId,content:ie.reasoningContent}))},onToolStart:(B,ie,H)=>{var Tt,Ke;n(L,{type:"tool_start",tool_call_id:B,tool_name:ie},Ae);const _e=D.current.get(L),Oe=(_e==null?void 0:_e.content)||"",Fe=(_e==null?void 0:_e.reasoningContent)||"",et=Oe.trim().length>0,Xe=Fe.trim().length>0;if(et||Xe){const Nt=ae.getState().chats.find(Ot=>Ot.id===L),Se=(Tt=Nt==null?void 0:Nt.messages)==null?void 0:Tt[Nt.messages.length-1],De=typeof((Ke=Se==null?void 0:Se.metadata)==null?void 0:Ke.reasoning)=="string"?Se.metadata.reasoning:"";(Se==null?void 0:Se.role)==="assistant"&&(Se==null?void 0:Se.type)==="text"&&typeof(Se==null?void 0:Se.content)=="string"&&Se.content===Oe&&De===Fe||t(L,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:Oe,createdAt:new Date().toISOString(),metadata:{sessionId:L,model:"agent",...Xe?{reasoning:Fe}:{}}}),_e&&(_e.content="",_e.reasoningContent="",_e.status&&(_e.status="",Et.clear(_e.sessionId,_e.statusMessageId)),Et.publish({sessionId:_e.sessionId,messageId:_e.messageId,content:""}),Et.publish({sessionId:_e.sessionId,messageId:_e.reasoningMessageId,content:""}))}Q.current.set(B,ie);const kt=ie.trim().toLowerCase();Pa(ie)?At("memory_updating"):At(`tool_running:${kt||"tool"}`);const Ct=crypto.randomUUID();G.current.set(B,Ct),t(L,{id:Ct,role:"assistant",type:"tool_call",toolCalls:[{toolCallId:B,toolName:ie,parameters:H||{},streamingOutput:""}],metadata:{},createdAt:new Date().toISOString()})},onToolToken:(B,ie)=>{n(L,{type:"tool_token",tool_call_id:B,content:ie},Ae);const H=G.current.get(B),_e=ae.getState().chats.find(Xe=>Xe.id===L);if(!_e)return;const Oe=(H?_e==null?void 0:_e.messages.find(Xe=>Xe.id===H):null)||(_e==null?void 0:_e.messages[_e.messages.length-1]);if(!Oe||!("type"in Oe)||Oe.type!=="tool_call"||!("toolCalls"in Oe)||!Array.isArray(Oe.toolCalls))return;const Fe=Oe.toolCalls.find(Xe=>Xe.toolCallId===B);Fe&&!Q.current.has(B)&&(Q.current.set(B,Fe.toolName),G.current.set(B,Oe.id));const et=Oe.toolCalls.map(Xe=>{if(Xe.toolCallId!==B)return Xe;const kt=(Xe.streamingOutput||"")+(ie||"");return{...Xe,streamingOutput:kt}});l(L,Oe.id,{toolCalls:et})},onToolComplete:(B,ie)=>{n(L,{type:"tool_complete",tool_call_id:B},Ae);const H=Q.current.get(B)||"unknown";Q.current.delete(B),G.current.delete(B);const _e=H.trim().toLowerCase(),Oe=D.current.get(L);(Pa(H)?(Oe==null?void 0:Oe.status)==="memory_updating":!!(Oe!=null&&Oe.status&&Oe.status.includes(_e)))&&At(null);const et=(ie==null?void 0:ie.display_preference)||"Default";t(L,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:H,toolCallId:B,result:{tool_name:H,result:(ie==null?void 0:ie.result)??"",display_preference:et},isError:!(ie!=null&&ie.success),createdAt:new Date().toISOString()})},onToolError:(B,ie)=>{n(L,{type:"tool_error",tool_call_id:B},Ae),Q.current.delete(B),G.current.delete(B),At(null),t(L,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:"unknown",toolCallId:B,result:{tool_name:"unknown",result:ie,display_preference:"Default"},isError:!0,createdAt:new Date().toISOString()})},onToolLifecycle:(B,ie,H,_e,Oe,Fe,et)=>{if(H==="begin"){const Xe=(ie||"").trim().toLowerCase();Pa(ie||"")?At("memory_updating"):At(`tool_running:${Xe||"tool"}`),Fe===!1&&Ca({title:xt.t("app.notifications.toolApproval.title",{tool:ie||xt.t("app.notifications.toolApproval.unknownTool")}),body:xt.t("app.notifications.toolApproval.body",{tool:ie||""}),sessionId:L,eventType:"tool_approval",eventId:B})}if(H==="finished"||H==="error"||H==="cancelled"){const Xe=G.current.get(B);if(Xe){const Ke=ae.getState().chats.find(De=>De.id===L),Nt=Ke==null?void 0:Ke.messages.find(De=>De.id===Xe),Se=Nt&&"metadata"in Nt?Nt.metadata??{}:{};l(L,Xe,{metadata:{...Se,elapsed_ms:_e,is_mutating:Oe,...et?{summary:et}:{}}})}const kt=(ie||"").trim().toLowerCase(),Ct=D.current.get(L);(Pa(ie||"")?(Ct==null?void 0:Ct.status)==="memory_updating":!!(Ct!=null&&Ct.status&&Ct.status.includes(kt)))&&At(null)}},onContextCompressionStatus:(B,ie)=>{if(ie==="started"){At("context_compacting");return}if(ie==="degraded_sections"){At("context_compaction_degraded");return}if(ie==="failed"){At("context_compaction_failed");return}At(null)},onTokenBudgetUpdated:B=>{const ie=typeof B.max_context_tokens=="number"&&B.max_context_tokens>0?B.max_context_tokens:void 0,H={systemTokens:B.system_tokens,summaryTokens:B.summary_tokens,windowTokens:B.window_tokens,totalTokens:B.total_tokens,budgetLimit:B.budget_limit,...ie?{maxContextTokens:ie}:{},...typeof B.prompt_cached_tool_outputs=="number"&&B.prompt_cached_tool_outputs>0?{promptCachedToolOutputs:B.prompt_cached_tool_outputs}:{},...typeof B.prompt_cached_tool_tokens_saved=="number"&&B.prompt_cached_tool_tokens_saved>0?{promptCachedToolTokensSaved:B.prompt_cached_tool_tokens_saved}:{}};s(L,H),o(L,B.truncation_occurred,B.segments_removed);const _e=ae.getState().chats.find(Oe=>Oe.id===L);_e&&i(L,{config:{..._e.config,tokenUsage:H,truncationOccurred:B.truncation_occurred,segmentsRemoved:B.segments_removed}})},onContextSummarized:B=>{At(null),e.info(xt.t("app.notifications.conversationSummarized",{messages:B.messages_summarized,tokens:B.tokens_saved.toLocaleString()}),5)},onContextPressureNotification:(B,ie,H)=>{ie==="critical"?(e.error(H,6),Ca({title:xt.t("app.notifications.contextPressure.title"),body:H,sessionId:L,eventType:"context_pressure"})):e.warning(H,5)},onTaskListUpdated:B=>{B.session_id&&u(B.session_id,B)},onTaskListItemProgress:B=>{if(B.session_id){if(!ae.getState().taskLists[B.session_id]){ue(B.session_id);return}h(B.session_id,B)}},onTaskListCompleted:(B,ie,H,_e)=>{de(B,ie,H,_e)&&e.success(xt.t("app.notifications.allTasksCompleted",{rounds:ie,toolCalls:H}),3)},onTaskEvaluationStarted:(B,ie)=>{m(B,{isEvaluating:!0,reasoning:null,timestamp:Date.now()}),e.info(xt.t("app.notifications.evaluatingTasks",{count:ie}),2)},onTaskEvaluationCompleted:(B,ie,H)=>{const _e=uh(H);m(B,{isEvaluating:!1,reasoning:ie>0?_e:null,timestamp:Date.now()}),ie>0?e.success(xt.t("app.notifications.evaluationCompleteUpdated",{count:ie}),3):e.info(xt.t("app.notifications.evaluationCompleteNoUpdates"),2)},onComplete:()=>{Kt=!0,n(L,{type:"complete"},Ae);const B=He,ie=()=>{const H=O.current.get(L);return H!=null&&(H.controller!==B||H.generation!==Ae)};(async()=>{var Xe,kt,Ct;if(At(null),Et.forceFlush(),k(L),ie())return;const H=D.current.get(L),_e=(H==null?void 0:H.content)||"",Oe=(H==null?void 0:H.reasoningContent)||"",Fe=_e.trim().length>0,et=Oe.trim().length>0;if(Fe||et){const Tt=ae.getState().chats.find(De=>De.id===L),Ke=(Xe=Tt==null?void 0:Tt.messages)==null?void 0:Xe[Tt.messages.length-1],Nt=typeof((kt=Ke==null?void 0:Ke.metadata)==null?void 0:kt.reasoning)=="string"?Ke.metadata.reasoning:"";(Ke==null?void 0:Ke.role)==="assistant"&&(Ke==null?void 0:Ke.type)==="text"&&typeof(Ke==null?void 0:Ke.content)=="string"&&Ke.content===_e&&Nt===Oe||await t(L,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:_e,createdAt:new Date().toISOString(),metadata:{sessionId:L,model:"agent",...et?{reasoning:Oe}:{}}})}if(!ie()&&(await ae.getState().loadChatHistory(L,{mode:"monotonic",retries:4,retryDelayMs:200,waitForAssistant:!0}),!ie())){if(et){const Tt=ae.getState().chats.find(Se=>Se.id===L),Ke=[...(Tt==null?void 0:Tt.messages)||[]].reverse().find(Se=>(Se==null?void 0:Se.role)==="assistant"&&(Se==null?void 0:Se.type)==="text"),Nt=typeof((Ct=Ke==null?void 0:Ke.metadata)==null?void 0:Ct.reasoning)=="string"&&Ke.metadata.reasoning.trim().length>0;Ke!=null&&Ke.id&&!Nt&&l(L,Ke.id,{metadata:{...Ke.metadata||{},reasoning:Oe}})}ie()||Vt()}})().catch(H=>{console.warn(`[useAgentEventSubscription] Completion finalization failed for session ${L}:`,H),ie()||Vt()})},onCancelled:async B=>{Kt=!0,n(L,{type:"cancelled",message:B},Ae),At(null),k(L),Vt()},onError:async B=>{Kt=!0,n(L,{type:"error",message:B},Ae),At(null);try{const ie=gu(B)?yu(B):B;await t(L,{id:`error-${Date.now()}`,role:"assistant",type:"text",content:`❌ **Error**: ${ie}`,createdAt:new Date().toISOString(),finishReason:"error"})}catch(ie){console.warn(`[useAgentEventSubscription] Failed to append error message for session ${L}:`,ie)}finally{Vt()}},onSessionTitleUpdated:B=>{au(B,ae.getState())},onSessionPinnedUpdated:B=>{au(B,ae.getState())},onPlanModeEntered:B=>{const ie=B.session_id||L,H=x0(B);if(!H){w();return}i(ie,{planMode:H})},onPlanModeExited:B=>{const ie=B.session_id||L;i(ie,{planMode:null}),w()},onPlanFileUpdated:B=>{const ie=B.session_id||L,H=ae.getState().chats.find(Oe=>Oe.id===ie),_e=H==null?void 0:H.planMode;_e?i(ie,{planMode:{..._e,plan_file_path:B.plan_file_path??_e.plan_file_path??null,status:B.status==="exploring"||B.status==="designing"||B.status==="reviewing"||B.status==="finalizing"||B.status==="awaiting_approval"?B.status:_e.status}}):w()},onSubAgentStarted:(B,ie,H)=>{const _e=F.current.get(B)??{children:new Set,parentDone:!1},Oe=new Set(_e.children);Oe.add(ie),F.current.set(B,{children:Oe,parentDone:_e.parentDone}),b(B,ie,{title:H,status:"pending",lastEventAt:new Date().toISOString()}),H&&H.trim()&&v(ie,H).catch(Fe=>{console.warn(`[useAgentEventSubscription] Failed to persist sub-agent title for ${ie}:`,Fe)}),w()},onSubAgentEvent:(B,ie,H)=>{var Oe;if(H.type==="task_list_updated"&&H.task_list){const Fe=H.task_list.session_id||B;u(Fe,H.task_list);return}if(H.type==="task_list_item_progress"){const Fe=H.session_id||B;if(typeof H.item_id=="string"&&p0(H.status)&&typeof H.tool_calls_count=="number"&&typeof H.version=="number"){if(!ae.getState().taskLists[Fe]){ue(Fe);return}h(Fe,{session_id:Fe,item_id:H.item_id,status:H.status,tool_calls_count:H.tool_calls_count,version:H.version})}return}if(H.type==="task_evaluation_started"){const Fe=H.session_id||B;m(Fe,{isEvaluating:!0,reasoning:null,timestamp:Date.now()});return}if(H.type==="task_evaluation_completed"){const Fe=H.session_id||B,et=H.updates_count??0;m(Fe,{isEvaluating:!1,reasoning:et>0?uh(H.reasoning??""):null,timestamp:Date.now()});return}const _e=(Oe=Ni(B)(ae.getState()))==null?void 0:Oe[ie];if(!dh(_e==null?void 0:_e.status)){if(H.type==="runner_progress"){const Fe=typeof H.round_count=="number"?H.round_count:_e==null?void 0:_e.roundCount,et=`${B}:${ie}`;if(typeof Fe=="number"&&q.current.get(et)===Fe)return;typeof Fe=="number"&&q.current.set(et,Fe),b(B,ie,{status:"running",roundCount:Fe,lastEventAt:new Date().toISOString()});return}if(H.type==="token"&&typeof H.content=="string"){const Fe=`${B}:${ie}`,et=I.current.get(Fe),kt=(((et==null?void 0:et.content)??(_e==null?void 0:_e.outputPreview)??"")+H.content).slice(-2e3);fe(B,ie,kt,new Date().toISOString())}else b(B,ie,{status:"running",lastEventAt:new Date().toISOString()})}},onSubAgentHeartbeat:(B,ie,H)=>{if(dh(b0(B,ie)))return;const _e=`${B}:${ie}`,Oe=N.current.get(_e)??0,Fe=Date.parse(H||"")||Date.now();Fe-Oe<g0||(N.current.set(_e,Fe),b(B,ie,{status:"running",lastHeartbeatAt:H}))},onSubAgentCompleted:(B,ie,H,_e)=>{var Xe;const Oe=F.current.get(B)??{children:new Set,parentDone:!1},Fe=new Set(Oe.children);Fe.delete(ie),F.current.set(B,{children:Fe,parentDone:Oe.parentDone}),he(B,ie);const et=`${B}:${ie}`;if(N.current.delete(et),q.current.delete(et),b(B,ie,{status:H,error:_e,lastEventAt:new Date().toISOString()}),H==="completed"){const kt=(Xe=Ni(B)(ae.getState()))==null?void 0:Xe[ie];Ca({title:xt.t("app.notifications.backgroundTask.completedTitle"),body:kt!=null&&kt.title?xt.t("app.notifications.backgroundTask.completedBody",{title:kt.title}):xt.t("app.notifications.backgroundTask.completedFallback"),sessionId:B,eventType:"subagent_completed",eventId:ie})}Oe.parentDone&&Fe.size===0&&$n(),w()},onNeedClarification:B=>{const ie=B.session_id||L;S(ie,{question:B.question||"",options:B.options||[],allowCustom:B.allow_custom??!0,toolCallId:B.tool_call_id??null});const H=B.question||"",_e=H.length>80?`${H.slice(0,80)}...`:H;Ca({title:xt.t("app.notifications.clarification.title"),body:_e||xt.t("app.notifications.clarification.fallbackBody"),sessionId:ie,eventType:"clarification",eventId:B.tool_call_id??void 0})},onExecutionStarted:(B,ie)=>{Ee("[SSE]","event.executionStarted",{sessionId:L,generation:Ae,runId:B}),n(L,{type:"execution_started",run_id:B},Ae)},onRunnerProgress:()=>{}},He).then(()=>{var H,_e,Oe,Fe,et,Xe,kt,Ct;if(ye(),Ta("streamEnded",L,"generation:",Ae,"aborted:",He.signal.aborted,"terminal:",Kt),Ee("[SSE]","streamEnded",{sessionId:L,generation:Ae,aborted:He.signal.aborted,terminalEventSeen:Kt,shouldSkipReconnectAfterTerminal:Te(),phase:((_e=(H=ae.getState().executionBySession)==null?void 0:H[L])==null?void 0:_e.phase)??null,backendRunId:((Fe=(Oe=ae.getState().executionBySession)==null?void 0:Oe[L])==null?void 0:Fe.backendRunId)??null}),He.signal.aborted||Te())return;const B=O.current.get(L);if(B&&(B.controller!==He||B.generation!==Ae))return;const ie=pr(L)(ae.getState());if(Ee("[SSE]","streamEnded.busyCheck",{sessionId:L,generation:Ae,stillBusy:ie,phase:((Xe=(et=ae.getState().executionBySession)==null?void 0:et[L])==null?void 0:Xe.phase)??null,backendRunId:((Ct=(kt=ae.getState().executionBySession)==null?void 0:kt[L])==null?void 0:Ct.backendRunId)??null}),!ie){ne(L,{clearDraft:!0});return}Xt()}).catch(B=>{var _e,Oe,Fe,et,Xe,kt,Ct,Tt;if(ye(),Ee("[SSE]","streamError",{sessionId:L,generation:Ae,aborted:He.signal.aborted,terminalEventSeen:Kt,error:B,phase:((Oe=(_e=ae.getState().executionBySession)==null?void 0:_e[L])==null?void 0:Oe.phase)??null,backendRunId:((et=(Fe=ae.getState().executionBySession)==null?void 0:Fe[L])==null?void 0:et.backendRunId)??null}),He.signal.aborted)return;if(h0(B)){if(Te())return;const Ke=pr(L)(ae.getState());if(Ee("[SSE]","streamError.abortError.busyCheck",{sessionId:L,generation:Ae,stillBusy:Ke,phase:((kt=(Xe=ae.getState().executionBySession)==null?void 0:Xe[L])==null?void 0:kt.phase)??null,backendRunId:((Tt=(Ct=ae.getState().executionBySession)==null?void 0:Ct[L])==null?void 0:Tt.backendRunId)??null}),!Ke){ne(L,{clearDraft:!0});return}Xt();return}if(Te())return;console.error("[useAgentEventSubscription] Subscription error:",B),ne(L,{clearDraft:!0});const ie=zt(L)(ae.getState()),H=pr(L)(ae.getState());ie===Ae&&H&&n(L,{type:"error",message:String(B)},Ae)})},[t,ne,oe,k,$,me,ue,e,de,v,w,m,S,n,Ce,u,o,l,i,h,s,b,he,fe]),Le=y.useCallback(L=>{const le=L.trim();if(!le)return;Z.current.delete(le);const Ae=O.current.get(le);if((Ae==null?void 0:Ae.sessionId)===le&&!Ae.controller.signal.aborted&&!Ae.streamEnded){Ta("skipExistingSubscription",le,"generation:",Ae.generation,"streamEnded:",Ae.streamEnded);return}Ae&&(Ta("restartStaleSubscription",le,"generation:",Ae.generation,"aborted:",Ae.controller.signal.aborted,"streamEnded:",Ae.streamEnded),ne(le,{clearDraft:!1})),ze(le)},[ne,ze]),lt=ae(Mi(L=>Object.entries(L.executionBySession).filter(([,le])=>Rl(le.phase)).map(([le])=>le).sort()));y.useEffect(()=>{const L=new Set(lt);Ee("[SSE]","effect.busySessions",{busySessionIds:lt}),lt.forEach(le=>Le(le));for(const le of Array.from(O.current.keys()))L.has(le)||ne(le,{clearDraft:!0});for(const le of Array.from(Z.current))L.has(le)||Z.current.delete(le)},[lt,Le,ne]),y.useEffect(()=>ae.subscribe(L=>L.chats,()=>{if(Z.current.size!==0)for(const L of Array.from(Z.current)){if(!pr(L)(ae.getState())){Z.current.delete(L);continue}Le(L)}}),[Le]),y.useEffect(()=>{const L=O.current;return()=>{const le=Array.from(L.keys());for(const Ae of le)ne(Ae,{clearDraft:!0,clearTitleRetry:!0})}},[ne])}const Rr=(e,t,n)=>Math.max(t,Math.min(n,e)),Ma=(e,t)=>t==="horizontal"?e.clientWidth:e.clientHeight,Ea=(e,t,n)=>{const r=Math.max(0,Math.round(e)),s=Math.max(0,Math.round(t)),o=Math.max(0,Math.round(n));return s+o>r?{minFirst:0,maxFirst:r,appliedMinFirst:0,appliedMinSecond:0}:{minFirst:s,maxFirst:r-o,appliedMinFirst:s,appliedMinSecond:o}},vd=({layout:e,first:t,second:n,sizesPx:r,defaultSplitRatio:s=.5,minFirstPx:o=0,minSecondPx:i=0,handleSizePx:l=6,disabled:u=!1,onResizeEnd:d,style:h,className:m})=>{const b=y.useRef(null),v=y.useRef(null),[w,S]=y.useState(null),[k,P]=y.useState(0),[T,j]=y.useState(null),C=y.useMemo(()=>{if(!r)return null;const ue=Number(r[0]);return Number.isFinite(ue)?ue:null},[r]),E=y.useMemo(()=>{if(!r)return null;const ue=Number(r[1]);return Number.isFinite(ue)?ue:null},[r]),A=y.useMemo(()=>{if(!r)return null;const ue=Number(r[0]),de=Number(r[1]);if(!Number.isFinite(ue)||!Number.isFinite(de))return null;const Ce=ue+de;return Ce<=0||ue<=0||de<=0?null:Rr(ue/Ce,0,1)},[r]),O=y.useMemo(()=>C===null||E===null?null:E<=0?Math.max(0,C):null,[C,E]),D=y.useMemo(()=>C===null||E===null?null:E>0&&C<=0?E:null,[C,E]);y.useLayoutEffect(()=>{const ue=b.current;ue&&P(Ma(ue,e))},[e]),y.useEffect(()=>{const ue=b.current;if(!ue)return;const de=()=>{const Ce=Ma(ue,e);P(ze=>ze===Ce?ze:Ce)};if(de(),typeof ResizeObserver<"u"){const Ce=new ResizeObserver(de);return Ce.observe(ue),()=>Ce.disconnect()}return window.addEventListener("resize",de),()=>window.removeEventListener("resize",de)},[e]),y.useEffect(()=>{if(A!==null){j(A);return}j(ue=>ue??Rr(s,.1,.9))},[s,A]);const F=y.useMemo(()=>Ea(k,o,i),[k,o,i]),N=Rr(s,.1,.9),q=T??N,I=k>0?Math.round(k*q):null,Q=w??(A!==null?I:null)??O??(D!==null&&k>0?k-D:null)??I??0,G=k>0?Rr(Q,F.minFirst,F.maxFirst):Math.max(0,Math.round(Q)),Z=y.useCallback(ue=>{if(u)return;const de=b.current;if(!de)return;ue.preventDefault(),ue.stopPropagation();const Ce=e==="horizontal"?ue.clientX:ue.clientY,ze=Ma(de,e),Le=Ea(ze,o,i),lt=Rr(G||Math.round(ze*N),Le.minFirst,Le.maxFirst);v.current={pointerId:ue.pointerId,startPos:Ce,startFirstPx:lt,containerSize:ze};try{ue.currentTarget.setPointerCapture(ue.pointerId)}catch{}},[u,G,N,e,o,i]),pe=y.useCallback(ue=>{const de=v.current;if(!de||ue.pointerId!==de.pointerId)return;ue.preventDefault(),ue.stopPropagation();const ze=(e==="horizontal"?ue.clientX:ue.clientY)-de.startPos,Le=de.containerSize,lt=Ea(Le,o,i),L=Rr(Math.round(de.startFirstPx+ze),lt.minFirst,lt.maxFirst);S(L)},[e,o,i]),$=y.useCallback(ue=>{const de=v.current;if(!de||de.pointerId!==ue)return;const Ce=b.current,ze=Ce?Ma(Ce,e):de.containerSize,Le=w??de.startFirstPx,lt=Ea(ze,o,i),L=Rr(Le,lt.minFirst,lt.maxFirst),le=Math.max(0,ze-L);S(null),ze>0&&j(Rr(L/ze,0,1)),v.current=null,d==null||d([L,le])},[e,w,o,i,d]),oe=y.useCallback(ue=>{ue.preventDefault(),ue.stopPropagation(),$(ue.pointerId)},[$]),me=y.useCallback(ue=>{ue.preventDefault(),ue.stopPropagation(),$(ue.pointerId)},[$]),ne=e==="horizontal",he=u?"default":ne?"col-resize":"row-resize",fe=Math.max(0,Math.round(l));return a.jsxs("div",{ref:b,className:m,style:{display:"flex",flexDirection:ne?"row":"column",height:"100%",minHeight:0,minWidth:0,width:"100%",position:"relative",...h},children:[a.jsx("div",{style:{flex:`0 0 ${G}px`,minWidth:ne?F.appliedMinFirst:0,minHeight:ne?0:F.appliedMinFirst,overflow:"hidden",display:"flex"},children:a.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:t})}),a.jsx("div",{style:{flex:"1 1 auto",minWidth:ne?F.appliedMinSecond:0,minHeight:ne?0:F.appliedMinSecond,overflow:"hidden",display:"flex"},children:a.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:n})}),fe>0?a.jsx("div",{role:"separator","aria-orientation":ne?"vertical":"horizontal",onPointerDown:Z,onPointerMove:pe,onPointerUp:oe,onPointerCancel:me,style:{position:"absolute",top:ne?0:`${G-fe/2}px`,left:ne?`${G-fe/2}px`:0,width:ne?`${fe}px`:"100%",height:ne?"100%":`${fe}px`,cursor:he,touchAction:"none",background:"transparent",zIndex:5}}):null]})},vu="chat-toggle-batch-export-selection",Su="chat-open-inspector",xu="chat-focus-input",wu="chat-pending-question-resolved",pl=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp"],fh=10*1024*1024,_0=2048,k0=2048,C0=.82,T0=512*1024,P0=e=>pl.includes(e.type)?e.size>fh?{isValid:!1,error:`Image size too large: ${(e.size/1024/1024).toFixed(2)}MB. Maximum size: ${fh/1024/1024}MB`}:{isValid:!0}:{isValid:!1,error:`Unsupported image type: ${e.type}. Supported types: ${pl.join(", ")}`},M0=e=>new Promise((t,n)=>{const r=new Image;r.onload=()=>t(r),r.onerror=()=>n(new Error("Failed to load image")),r.src=e}),hh=e=>new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?t(r.result):n(new Error("Failed to convert file to base64"))},r.onerror=()=>n(new Error("Failed to read file")),r.readAsDataURL(e)}),E0=e=>URL.createObjectURL(e),j0=(e,t,n,r)=>{let{width:s,height:o}=t;if(s>n||o>r){const l=s/o;s>o?(s=n,o=Math.round(s/l)):(o=r,s=Math.round(o*l))}e.width=s,e.height=o;const i=e.getContext("2d");i&&(i.fillStyle="#ffffff",i.fillRect(0,0,s,o),i.drawImage(t,0,0,s,o))},R0=async(e,t)=>{const n=await M0(e),r=document.createElement("canvas");return j0(r,n,_0,k0),O0(r,t)},A0=async e=>{const t=P0(e);if(!t.isValid)throw new Error(t.error);const n=E0(e);try{let r;if(e.type==="image/gif"||e.size<T0)r=await hh(e);else try{r=await R0(n,C0)}catch(o){console.warn("[imageUtils] Failed to re-encode image, using original:",o),r=await hh(e)}const s=`img_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return{file:e,base64:r,preview:n,id:s,name:e.name,size:e.size,type:e.type}}catch(r){throw oy(n),r}},I0=async e=>{const t=Array.from(e),n=[];for(const r of t)try{const s=await A0(r);n.push(s)}catch(s){console.error(`Failed to process image ${r.name}:`,s)}return n},O0=(e,t=.8)=>e.toDataURL("image/jpeg",t),oy=e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e)},ph=e=>{e.forEach(t=>oy(t.preview))},$0=e=>{if(e===0)return"0 Bytes";const t=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,r)).toFixed(2))+" "+n[r]},L0=e=>!e.files||e.files.length===0?!1:Array.from(e.files).some(t=>pl.includes(t.type)),F0=e=>e.files?Array.from(e.files).filter(t=>pl.includes(t.type)):[],{Text:D0,Title:N0}=ft,B0=({visible:e,images:t,currentIndex:n=0,onClose:r,onDownload:s})=>{const{token:o}=ut.useToken(),{t:i}=Ge(),[l,u]=y.useState(n);if(!t||t.length===0)return null;const d=t[l],h=()=>{if(s&&d)s(d);else{const v=document.createElement("a");v.href=d.base64,v.download=d.name,document.body.appendChild(v),v.click(),document.body.removeChild(v)}},m=()=>{u(v=>v>0?v-1:t.length-1)},b=()=>{u(v=>v<t.length-1?v+1:0)};return a.jsxs(Ha,{open:e,onCancel:r,footer:null,width:"90vw",style:{top:20},styles:{body:{padding:0,height:"80vh",display:"flex",flexDirection:"column"}},closeIcon:a.jsx(Ss,{style:{color:o.colorTextLightSolid}}),children:[a.jsx("div",{style:{padding:o.paddingMD,borderBottom:`1px solid ${o.colorBorder}`,background:o.colorBgContainer},children:a.jsxs("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[a.jsxs("div",{children:[a.jsx(N0,{level:5,style:{margin:0},children:d.name}),a.jsxs(D0,{type:"secondary",style:{fontSize:o.fontSizeSM},children:[$0(d.size)," • ",d.type,t.length>1&&` • ${i("chat.imagePreview.counter",{current:l+1,total:t.length})}`]})]}),a.jsxs(Ue,{children:[t.length>1&&a.jsxs(a.Fragment,{children:[a.jsx(je,{icon:a.jsx(su,{}),onClick:m,disabled:t.length<=1}),a.jsx(je,{icon:a.jsx(Wr,{}),onClick:b,disabled:t.length<=1})]}),a.jsx(je,{icon:a.jsx(Vs,{}),onClick:h,children:i("common.download")})]})]})}),a.jsxs("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center",background:o.colorBgLayout,position:"relative",overflow:"hidden"},children:[t.length===1?a.jsx("img",{src:d.preview,alt:d.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}}):a.jsx(AS,{dots:!1,arrows:!0,infinite:!0,afterChange:u,style:{width:"100%",height:"100%"},children:t.map(v=>a.jsx("div",{children:a.jsx("div",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:a.jsx("img",{src:v.preview,alt:v.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}})})},v.id))}),t.length>1&&a.jsxs(a.Fragment,{children:[a.jsx(je,{type:"primary",shape:"circle",icon:a.jsx(su,{}),onClick:m,style:{position:"absolute",left:20,top:"50%",transform:"translateY(-50%)",zIndex:10}}),a.jsx(je,{type:"primary",shape:"circle",icon:a.jsx(Wr,{}),onClick:b,style:{position:"absolute",right:20,top:"50%",transform:"translateY(-50%)",zIndex:10}})]})]}),t.length>1&&a.jsx("div",{style:{padding:o.paddingSM,borderTop:`1px solid ${o.colorBorder}`,background:o.colorBgContainer,display:"flex",gap:o.marginXS,overflowX:"auto",maxHeight:80},children:t.map((v,w)=>a.jsx("div",{style:{minWidth:60,height:60,border:w===l?`2px solid ${o.colorPrimary}`:`1px solid ${o.colorBorder}`,borderRadius:o.borderRadius,overflow:"hidden",cursor:"pointer",opacity:w===l?1:.7},onClick:()=>u(w),children:a.jsx("img",{src:v.preview,alt:v.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},v.id))})]})},To=e=>/\s/.test(e),z0=e=>{if(!e)return[{text:"",type:"text"}];const t=[],n=e.length;let r=0;for(;r<n;){const s=e[r],o=r>0?e[r-1]:"",i=s==="/"&&(r===0||To(o)),l=s==="@"&&(r===0||To(o));if(!i&&!l){let h=r;for(;r<n&&!((e[r]==="/"||e[r]==="@")&&(r===0||To(e[r-1])));)r+=1;t.push({text:e.slice(h,r),type:"text"});continue}let u=r+1;for(;u<n&&!To(e[u]);)u+=1;const d=e.slice(r,u);i?u===n||To(e[u])?t.push({text:d,type:"workflow"}):t.push({text:d,type:"text"}):l&&t.push({text:d,type:"file"}),r=u}return t.length>0?t:[{text:"",type:"text"}]},W0=/(\/)([a-zA-Z0-9_-]*)$/,U0=e=>{if(!e)return{command:null,isTriggerActive:!1,searchText:""};const t=e.match(W0);if(!t)return{command:null,isTriggerActive:!1,searchText:""};const n=t[2]||"",r=!n.includes(" ")&&t.index!==void 0;return{command:n||null,isTriggerActive:r,searchText:n}},q0=/@([a-zA-Z0-9._\-\/\\]*)$/,H0=e=>{if(!e)return{isTriggerActive:!1,searchText:"",tokenStart:null};const t=e.match(q0);if(!t||t.index===void 0)return{isTriggerActive:!1,searchText:"",tokenStart:null};const n=t[1]||"",r=t.index;return{isTriggerActive:!n.includes(" "),searchText:n,tokenStart:r}},Y0=(e,t=80)=>{const[n,r]=y.useState(e);return y.useEffect(()=>{const s=window.setTimeout(()=>{r(e)},t);return()=>{window.clearTimeout(s)}},[e,t]),n},{Text:X0}=ft,K0=({visible:e,token:t})=>{const{t:n}=Ge();return e?a.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:t.colorPrimaryBg,borderRadius:t.borderRadius,zIndex:10,pointerEvents:"none"},children:a.jsxs(Ue,{direction:"vertical",align:"center",children:[a.jsx(IS,{style:{fontSize:32,color:t.colorPrimary}}),a.jsx(X0,{style:{color:t.colorPrimary,fontWeight:500},children:n("chat.input.dropImagesHere")})]})}):null},{Text:mh}=ft,V0=({images:e,token:t,allowImages:n,onPreview:r,onClear:s})=>{const{t:o}=Ge();return!n||e.length===0?null:a.jsx("div",{style:{marginBottom:t.marginSM,padding:`${t.paddingXXS}px ${t.paddingXS}px`,borderRadius:999,border:`1px solid ${t.colorBorderSecondary}`,background:t.colorFillSecondary},children:a.jsxs(Me,{align:"center",wrap:"wrap",gap:t.marginXS,children:[a.jsx(mh,{type:"secondary",style:{fontSize:t.fontSizeSM,minWidth:"fit-content"},children:e.length>1?o("chat.input.imageCountPlural",{count:e.length}):o("chat.input.imageCountSingular",{count:e.length})}),e.slice(0,3).map(i=>a.jsx("div",{style:{position:"relative",width:32,height:32,borderRadius:999,overflow:"hidden",border:`1px solid ${t.colorBorderSecondary}`,cursor:"pointer"},onClick:()=>r(i),children:a.jsx("img",{src:i.preview,alt:i.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},i.id)),e.length>3&&a.jsx(mh,{type:"secondary",style:{fontSize:t.fontSizeSM},children:o("chat.input.moreImages",{count:e.length-3})}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(Ss,{}),onClick:s,style:{marginLeft:"auto",minWidth:"auto",padding:"0 4px",height:24},title:o("chat.input.clearAllImages")})]})})},{TextArea:G0}=xs,J0=({value:e,placeholder:t,disabled:n,token:r,highlightSegments:s,textAreaRef:o,highlightOverlayRef:i,onChange:l,onKeyDown:u,onPaste:d,onScrollSync:h})=>{const m=e.length>0&&s.some(S=>S.type!=="text"),b="6px 4px",v=1.65,w=n?r.colorTextDisabled:r.colorText;return a.jsxs("div",{style:{position:"relative",flex:1},children:[m?a.jsxs("div",{ref:i,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,padding:b,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflow:"hidden",pointerEvents:"none",color:"transparent",fontSize:r.fontSize,lineHeight:v,fontFamily:"inherit",fontWeight:400,letterSpacing:"normal",transform:"translate(0, 0)",zIndex:0},children:[s.map((S,k)=>{let P;return S.type==="workflow"?P={backgroundColor:r.colorPrimaryBg,color:"transparent",WebkitTextFillColor:"transparent",fontWeight:400,textDecoration:"underline",textDecorationStyle:"dotted",textDecorationColor:r.colorPrimary}:S.type==="file"&&(P={backgroundColor:r.colorSuccessBg,color:"transparent",WebkitTextFillColor:"transparent"}),a.jsx("span",{style:P,children:S.text},`segment-${k}`)}),e.endsWith(`
|
|
18
18
|
`)?`
|
|
19
|
-
`:null]}):null,a.jsx(
|
|
19
|
+
`:null]}):null,a.jsx(G0,{"data-testid":"chat-input",ref:o,value:e,onChange:S=>l(S.target.value),onKeyDown:u,onPaste:d,placeholder:t,disabled:n,autoSize:{minRows:3,maxRows:8},variant:"borderless",onScroll:h,className:"lotus-message-input-field",style:{resize:"none",flex:1,fontSize:r.fontSize,padding:b,lineHeight:v,border:"none",outline:"none",background:"transparent",color:w,WebkitTextFillColor:w,caretColor:w,position:"relative",zIndex:1,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflowY:"auto"}})]})},Q0=({allowImages:e,disabled:t,isInputLocked:n,token:r,fileInputRef:s,onFileInputChange:o,onFileReferenceButtonClick:i,extraControl:l})=>{const{t:u}=Ge();return a.jsxs(Me,{align:"center",style:{minWidth:0,gap:0},children:[e&&a.jsxs(a.Fragment,{children:[a.jsx("input",{ref:s,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:o}),a.jsx(je,{type:"text",icon:a.jsx(nd,{}),onClick:()=>{var d;return(d=s.current)==null?void 0:d.click()},disabled:t||n,size:"small",style:{minWidth:36,padding:"0 8px",height:36,borderRadius:18,color:r.colorTextSecondary},title:u("chat.input.addAttachments"),"aria-label":u("chat.input.addAttachments")})]}),i&&a.jsx(je,{type:"text",icon:a.jsx(ll,{}),onClick:i,disabled:t||n,size:"small",style:{minWidth:36,padding:"0 8px",height:36,borderRadius:18,color:r.colorTextSecondary},title:u("chat.input.referenceWorkspaceFiles"),"aria-label":u("chat.input.referenceWorkspaceFiles")}),l]})},Z0=({allowRetry:e,hasMessages:t,isInputLocked:n,canCancel:r,disabled:s,onRetry:o,onCancel:i,onSubmit:l,value:u,images:d,isOverCharLimit:h,token:m,statusIndicator:b,submitButtonLabel:v})=>{const{t:w}=Ge(),S=!u.trim()&&d.length===0,k=r??n,P=n,T=n||s||!o,j=v??w("chat.actions.sendMessage");return a.jsxs(Me,{align:"center",style:{flex:"0 0 auto",gap:m.marginXS},children:[b?a.jsx("span",{style:{flex:"0 0 auto"},children:b}):null,e&&t&&a.jsx(Ks,{trigger:["click"],menu:{items:[{key:"regenerate",label:w("chat.actions.regenerate"),icon:a.jsx(rd,{})},{key:"error_retry",label:w("chat.actions.retryFailed"),icon:a.jsx(fg,{})}],onClick:({key:C})=>o==null?void 0:o(C)},disabled:T,children:a.jsx(je,{"data-testid":"regenerate-button",type:"text",icon:a.jsx(OS,{spin:P}),disabled:T,title:w("chat.actions.retryOptions"),"aria-label":w("chat.actions.retryOptions"),size:"small",className:"lotus-secondary-button",style:{minWidth:38,padding:"0 8px",height:38,width:38,borderRadius:19,color:m.colorTextSecondary}})}),a.jsx(je,{"data-testid":k?"cancel-button":"send-button",type:"primary",icon:k?a.jsx($S,{}):a.jsx(LS,{}),onClick:k?i:l,loading:k&&!i,disabled:k?!i||s:n||S||s||h,size:"small",danger:k,className:k?"message-input-send-button":"message-input-send-button lotus-primary-cta",style:{minWidth:50,padding:0,height:50,width:50,borderRadius:25,display:"inline-flex",alignItems:"center",justifyContent:"center",background:k?void 0:"linear-gradient(135deg, var(--lotus-primary) 0%, var(--lotus-accent-secondary) 100%)",border:k?void 0:"none",boxShadow:k?void 0:"var(--lotus-send-btn-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:"scale(1)"},title:k?w("chat.actions.cancelRequest"):j,"aria-label":k?w("chat.actions.cancelRequest"):j})]})},{Text:gh}=ft,ek=({charCount:e,maxCharCount:t,isOverCharLimit:n,isNearCharLimit:r,isProcessingAttachments:s,token:o})=>{const{t:i}=Ge(),l=typeof t=="number"&&Number.isFinite(t)&&t>0;return!s&&!r&&!n?null:a.jsxs(a.Fragment,{children:[l&&a.jsx(Me,{justify:"flex-end",style:{marginTop:o.marginXXS},children:a.jsxs(gh,{type:n?"danger":r?"warning":"secondary",style:{fontSize:o.fontSizeSM},children:[e.toLocaleString()," / ",t.toLocaleString()]})}),s&&a.jsxs(Ue,{size:"small",style:{marginTop:o.marginXS},children:[a.jsx(Gs,{size:"small"}),a.jsx(gh,{type:"secondary",children:i("chat.input.processingFiles")})]})]})},tk=({onFiles:e,mode:t="images"})=>{const[n,r]=y.useState(!1),s=y.useCallback(l=>{var d,h;l.preventDefault(),l.stopPropagation(),(t==="images"?L0(l.dataTransfer):((h=(d=l.dataTransfer)==null?void 0:d.files)==null?void 0:h.length)>0)&&r(!0)},[t]),o=y.useCallback(l=>{l.preventDefault(),l.stopPropagation(),r(!1)},[]),i=y.useCallback(l=>{if(l.preventDefault(),l.stopPropagation(),r(!1),t==="images"){const d=F0(l.dataTransfer);d.length>0&&e(d);return}const u=Array.from(l.dataTransfer.files||[]);u.length>0&&e(u)},[t,e]);return{isDragOver:n,handleDragOver:s,handleDragLeave:o,handleDrop:i}},nk=e=>{const{message:t}=Fn.useApp(),[n,r]=y.useState([]),[s,o]=y.useState(!1),[i,l]=y.useState(0),u=y.useCallback(async b=>{if(e)try{const v=await I0(b);v.length>0&&(r(w=>[...w,...v]),t.success(`Added ${v.length} image(s)`))}catch(v){t.error(`Failed to process images: ${v}`)}},[e,t]),d=y.useCallback(b=>{const v=n.find(w=>w.id===b);v&&ph([v]),r(w=>w.filter(S=>S.id!==b))},[n]),h=y.useCallback(b=>{const v=n.findIndex(w=>w.id===b.id);l(v>=0?v:0),o(!0)},[n]),m=y.useCallback(()=>{ph(n),r([])},[n]);return{images:n,setImages:r,previewModalVisible:s,setPreviewModalVisible:o,previewImageIndex:i,handleImageFiles:u,handleRemoveImage:d,handleImagePreview:h,clearImages:m}},rk=({onImages:e,onAttachments:t,allowImages:n})=>({handlePaste:y.useCallback(s=>{if(!s.clipboardData)return;const o=Array.from(s.clipboardData.items),i=[],l=[];o.forEach(u=>{if(u.kind==="file"){const d=u.getAsFile();if(!d)return;d.type.startsWith("image/")?i.push(d):l.push(d)}}),i.length>0&&n&&(s.preventDefault(),e(i)),l.length>0&&t&&(s.preventDefault(),t(l))},[n,e,t])}),bn=[];for(let e=0;e<256;++e)bn.push((e+256).toString(16).slice(1));function sk(e,t=0){return(bn[e[t+0]]+bn[e[t+1]]+bn[e[t+2]]+bn[e[t+3]]+"-"+bn[e[t+4]]+bn[e[t+5]]+"-"+bn[e[t+6]]+bn[e[t+7]]+"-"+bn[e[t+8]]+bn[e[t+9]]+"-"+bn[e[t+10]]+bn[e[t+11]]+bn[e[t+12]]+bn[e[t+13]]+bn[e[t+14]]+bn[e[t+15]]).toLowerCase()}const ok=new Uint8Array(16);function ik(){return crypto.getRandomValues(ok)}function yh(e,t,n){return crypto.randomUUID?crypto.randomUUID():ak(e)}function ak(e,t,n){var s;e=e||{};const r=e.random??((s=e.rng)==null?void 0:s.call(e))??ik();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,sk(r)}const lk=["text/","application/json","application/xml"],ck=[".md",".markdown",".txt",".log",".json",".yaml",".yml",".toml",".ini",".csv",".ts",".tsx",".js",".jsx",".py",".java",".rs",".go",".rb",".php",".css",".scss",".less",".html",".sh",".bash",".zsh",".sql",".swift",".kt",".c",".cpp",".h",".hpp"],uk=200*1024,iy=e=>e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`,bh=e=>{const t=e.toLowerCase();return ck.some(n=>t.endsWith(n))},dk=e=>!e.type&&bh(e.name)?!0:lk.some(t=>e.type.startsWith(t))||bh(e.name),fk=e=>new Promise((t,n)=>{const r=new FileReader;r.onerror=()=>n(r.error),r.onload=()=>t(r.result),r.readAsText(e)}),vh=async(e,t)=>{const n=uk,r=[],s=[];for(const o of e)try{if(dk(o)&&o.size<=n){const i=await fk(o);r.push({id:yh(),file:o,name:o.name,size:o.size,type:o.type||"text/plain",kind:"text",content:i,preview:i.length>400?`${i.slice(0,400)}…`:i,lastModified:o.lastModified})}else r.push({id:yh(),file:o,name:o.name,size:o.size,type:o.type||"application/octet-stream",kind:"binary",preview:`(${iy(o.size)}) Preview unavailable for this file type.`,lastModified:o.lastModified})}catch(i){console.error("[fileUtils] Failed to process file",o.name,i),s.push(`Failed to process ${o.name}: ${i.message}`)}return{processed:r,errors:s}},hk=e=>{const t=[],n=[];return e.forEach(r=>{r.type.startsWith("image/")?t.push(r):n.push(r)}),{images:t,others:n}},pk=e=>e.length===0?"":e.map(t=>{const n=`### File: ${t.name}`,r=`(_${iy(t.size)}_, ${t.type||"unknown"})`;return t.kind==="text"&&t.content?`${n}
|
|
20
20
|
${r}
|
|
21
21
|
|
|
22
22
|
\`\`\`
|
|
@@ -26,7 +26,7 @@ ${r}
|
|
|
26
26
|
|
|
27
27
|
> Preview unavailable for this file type.`}).join(`
|
|
28
28
|
|
|
29
|
-
`),
|
|
29
|
+
`),mk=({allowImages:e,onAttachmentsAdded:t,messageApi:n})=>{const[r,s]=y.useState(!1),{images:o,setImages:i,previewModalVisible:l,setPreviewModalVisible:u,previewImageIndex:d,handleImageFiles:h,handleImagePreview:m,clearImages:b}=nk(e),v=y.useCallback(async C=>{if(!C||C.length===0)return;const{images:E,others:A}=hk(C);if(E.length>0&&await h(E),A.length>0&&t){s(!0);const{processed:O,errors:D}=await vh(A);O.length>0&&(t(O),n.success(xt.t("chat.input.filesAdded",{count:O.length}))),D.forEach(F=>n.error(F)),s(!1)}},[h,n,t]),{isDragOver:w,handleDragOver:S,handleDragLeave:k,handleDrop:P}=tk({onFiles:v,mode:"any"}),{handlePaste:T}=rk({onImages:h,onAttachments:t?async C=>{s(!0);const{processed:E,errors:A}=await vh(C);E.length>0&&(t(E),n.success(xt.t("chat.input.filesAttached",{count:E.length}))),A.forEach(O=>n.error(O)),s(!1)}:void 0,allowImages:e}),j=y.useCallback(C=>{const E=C.target.files;E&&E.length>0&&h(E),C.target.value=""},[h]);return{images:o,setImages:i,previewModalVisible:l,setPreviewModalVisible:u,previewImageIndex:d,handleImageFiles:h,handleImagePreview:m,clearImages:b,isProcessingAttachments:r,isDragOver:w,handleDragOver:S,handleDragLeave:k,handleDrop:P,handlePaste:T,handleFileInputChange:j}},gk=({value:e,debouncedValue:t,onWorkflowCommandChange:n,onFileReferenceChange:r,onImagesChange:s,images:o,propImages:i,setImages:l,syncOverlayScroll:u})=>{y.useEffect(()=>{u()},[e,u]),y.useEffect(()=>{n&&n(U0(t))},[t,n]),y.useEffect(()=>{r&&r(H0(t))},[t,r]),y.useEffect(()=>{s&&s(o)},[o,s]),y.useEffect(()=>{i&&l(i)},[i,l])},yk=({value:e,images:t,isInputLocked:n,disabled:r,isWorkflowSelectorVisible:s,onChange:o,onSubmit:i,onRetry:l,onHistoryNavigate:u,validateMessage:d,isOverCharLimit:h,maxCharCount:m,messageApi:b,clearImages:v,textAreaRef:w})=>{const S=y.useCallback(()=>{const T=e.trim();if(!(!T&&t.length===0||n||r)){if(h){const j=typeof m=="number"?m.toLocaleString():"configured";b.error(xt.t("chat.input.charLimitExceeded",{max:j}));return}if(d){const j=d(T);if(!j.isValid){b.error(j.errorMessage||xt.t("chat.input.messageFormatInvalid"));return}}i(T,t.length>0?t:void 0),v()}},[v,r,t,h,n,m,b,i,d,e]),k=y.useCallback(T=>{if(u&&!r&&!n&&!T.shiftKey&&(T.key==="ArrowUp"||T.key==="ArrowDown")){const j=T.key==="ArrowUp"?"previous":"next",C=u(j,e);if(C!=null){T.preventDefault(),o(C),requestAnimationFrame(()=>{var A,O;const E=((O=(A=w.current)==null?void 0:A.resizableTextArea)==null?void 0:O.textArea)||null;if(E){const D=C.length;E.setSelectionRange(D,D)}});return}}T.key==="Enter"&&!T.shiftKey&&!n&&!r&&!s&&(T.preventDefault(),S())},[r,S,n,s,o,u,w,e]),P=y.useCallback((T="regenerate")=>{n||r||!l||l(T)},[r,n,l]);return{handleKeyDown:k,handleSubmit:S,handleRetry:P}},bk=ht.memo(({value:e,onChange:t,onSubmit:n,interaction:r,placeholder:s,disabled:o=!1,images:i,onImagesChange:l,allowImages:u=!0,isWorkflowSelectorVisible:d=!1,textAreaRef:h,statusIndicator:m,validateMessage:b,onAttachmentsAdded:v,onWorkflowCommandChange:w,onFileReferenceChange:S,onFileReferenceButtonClick:k,maxCharCount:P,leftControlsExtra:T,submitButtonLabel:j})=>{const{t:C}=Ge(),{isStreaming:E,isInputLocked:A=E,canCancel:O,hasMessages:D,allowRetry:F=!0,onRetry:N,onCancel:q,onHistoryNavigate:I}=r,Q=y.useRef(null),G=y.useRef(null),Z=h||G,pe=y.useRef(null),{token:$}=ut.useToken(),oe=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",[me,ne]=FS.useMessage(),he=e.length,fe=typeof P=="number"&&Number.isFinite(P)&&P>0,ue=fe?he>P:!1,de=fe?!ue&&he>=P*.9:!1,{images:Ce,setImages:ze,previewModalVisible:Le,setPreviewModalVisible:lt,previewImageIndex:L,handleImagePreview:le,clearImages:Ae,isProcessingAttachments:Ie,isDragOver:He,handleDragOver:dt,handleDragLeave:pt,handleDrop:$t,handlePaste:Qt,handleFileInputChange:rn}=mk({allowImages:u,onAttachmentsAdded:v,messageApi:me}),_n=Y0(e,80),At=y.useMemo(()=>z0(e),[e]),Xt=y.useCallback(()=>{var ye,We;const It=(We=(ye=Z.current)==null?void 0:ye.resizableTextArea)==null?void 0:We.textArea;if(!It||!pe.current)return;const _t=It.scrollTop,bt=It.scrollLeft;pe.current.style.transform=`translate(${-bt}px, ${-_t}px)`},[Z]);gk({value:e,debouncedValue:_n,onWorkflowCommandChange:w,onFileReferenceChange:S,onImagesChange:l,images:Ce,propImages:i,setImages:ze,syncOverlayScroll:Xt});const{handleKeyDown:Kt,handleSubmit:gn,handleRetry:On}=yk({value:e,images:Ce,isInputLocked:A,disabled:o,isWorkflowSelectorVisible:d,onChange:t,onSubmit:n,onRetry:N,onHistoryNavigate:I,validateMessage:b,isOverCharLimit:ue,maxCharCount:P,messageApi:me,clearImages:Ae,textAreaRef:Z}),Mn=s??C("chat.input.placeholder");return a.jsxs(a.Fragment,{children:[ne,a.jsxs("div",{className:`message-input-container lotus-message-input-shell ${He?"is-drag-over":""}`,role:"group","aria-label":C("chat.input.messageComposer","Message composer"),style:{position:"relative",border:`1px solid ${He?"var(--lotus-input-border-active)":"var(--lotus-input-border)"}`,borderRadius:26,background:He?"var(--lotus-input-bg-active)":"var(--lotus-input-bg)",backdropFilter:oe?"none":"blur(18px)",WebkitBackdropFilter:oe?"none":"blur(18px)",boxShadow:"var(--lotus-input-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",width:"100%",padding:`${$.paddingSM}px`,overflow:"hidden"},onDragOver:dt,onDragLeave:pt,onDrop:$t,children:[a.jsx(V0,{images:Ce,token:$,allowImages:u,onPreview:le,onClear:Ae}),a.jsx(K0,{visible:He,token:$}),a.jsxs(Me,{vertical:!0,style:{gap:$.marginXS,minHeight:132,width:"100%"},children:[a.jsx(J0,{value:e,placeholder:Mn,disabled:o,token:$,highlightSegments:At,textAreaRef:Z,highlightOverlayRef:pe,onChange:t,onKeyDown:Kt,onPaste:Qt,onScrollSync:Xt}),a.jsxs(Me,{align:"center",justify:"space-between",gap:$.marginSM,wrap:"wrap",style:{rowGap:$.marginXS},children:[a.jsx(Me,{align:"center",gap:$.marginXS,wrap:"wrap",style:{minWidth:0,flex:"1 1 260px"},children:a.jsx(Q0,{allowImages:u,disabled:o,isInputLocked:A,token:$,fileInputRef:Q,onFileInputChange:rn,onFileReferenceButtonClick:k,extraControl:T})}),a.jsx(Z0,{allowRetry:F,hasMessages:D,isStreaming:E,isInputLocked:A,canCancel:O,disabled:o,onRetry:On,onCancel:q,onSubmit:gn,value:e,images:Ce,isOverCharLimit:ue,token:$,statusIndicator:m,submitButtonLabel:j})]})]})]}),a.jsx(ek,{charCount:he,maxCharCount:P,isOverCharLimit:ue,isNearCharLimit:de,isProcessingAttachments:Ie,token:$}),u&&a.jsx(B0,{visible:Le,images:Ce,currentIndex:L,onClose:()=>lt(!1)})]})}),{Text:Sh}=ft,{useToken:vk}=ut,Sk=({text:e,onClose:t})=>{const{token:n}=vk(),{t:r}=Ge(),o=(e.length>150?e.substring(0,147)+"...":e).replace(/^> |^>/gm,"");return a.jsx("div",{style:{marginBottom:n.marginSM,background:n.colorFillSecondary,borderRadius:999,border:`1px solid ${n.colorBorderSecondary}`,padding:`${n.paddingXXS}px ${n.paddingSM}px`},children:a.jsxs(Ue,{style:{width:"100%",justifyContent:"space-between",alignItems:"flex-start"},children:[a.jsxs("div",{style:{flex:1},children:[a.jsx(Sh,{style:{fontSize:n.fontSizeSM,color:n.colorPrimary},children:r("chat.input.referencing")}),a.jsx(Sh,{style:{fontSize:n.fontSizeSM,color:n.colorTextSecondary,marginLeft:n.marginSM},ellipsis:!0,children:o})]}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(Ss,{}),onClick:t,style:{marginLeft:n.marginXS,color:n.colorTextSecondary,borderRadius:999}})]})})},ay="mermaid_enhancement_enabled",xk=()=>localStorage.getItem(ay)!=="false",kI=e=>{localStorage.setItem(ay,e.toString())},wk=()=>`
|
|
30
30
|
|
|
31
31
|
## 📊 Visual Representation Guidelines
|
|
32
32
|
|
|
@@ -51,7 +51,7 @@ When explaining concepts, processes, relationships, or data structures, use Merm
|
|
|
51
51
|
- Keep participant names simple (no spaces): \`participant UserService\`
|
|
52
52
|
- Arrow syntax: \`-->\` (solid), \`-.->\` (dotted), \`==>\` (thick), \`-->|label|\` (labeled)
|
|
53
53
|
|
|
54
|
-
Include relevant diagrams when discussing architecture, workflows, data flow, or relationships.`,
|
|
54
|
+
Include relevant diagrams when discussing architecture, workflows, data flow, or relationships.`,_u="task_enhancement_enabled",xh="todo_enhancement_enabled",_k=e=>e==="false",kk=()=>{let e=localStorage.getItem(_u);if(e===null){const t=localStorage.getItem(xh);t!==null&&(e=t,localStorage.setItem(_u,t),localStorage.removeItem(xh))}return!_k(e)},CI=e=>{localStorage.setItem(_u,e.toString())},Ck=()=>`
|
|
55
55
|
|
|
56
56
|
## Task Management Rules
|
|
57
57
|
|
|
@@ -63,9 +63,9 @@ When marking a task as completed, always fill in the \`summary\` field with a co
|
|
|
63
63
|
Do not use Markdown checkbox lists as a substitute for Task.
|
|
64
64
|
Skip Task only for simple one-step requests.
|
|
65
65
|
Use SubAgent only when the user explicitly requests delegated/parallel sub-agent work.
|
|
66
|
-
`,ly=()=>{if(typeof window<"u"&&"__TAURI__"in window){const e=(navigator.platform??"").toLowerCase();if(e.startsWith("win"))return"windows";if(e.startsWith("mac"))return"macos";if(e.startsWith("linux"))return"linux"}if(typeof navigator<"u"){const e=(navigator.userAgent??"").toLowerCase();if(e.includes("windows"))return"windows";if(e.includes("mac"))return"macos";if(e.includes("linux"))return"linux"}return"unknown"},
|
|
66
|
+
`,ly=()=>{if(typeof window<"u"&&"__TAURI__"in window){const e=(navigator.platform??"").toLowerCase();if(e.startsWith("win"))return"windows";if(e.startsWith("mac"))return"macos";if(e.startsWith("linux"))return"linux"}if(typeof navigator<"u"){const e=(navigator.userAgent??"").toLowerCase();if(e.includes("windows"))return"windows";if(e.includes("mac"))return"macos";if(e.includes("linux"))return"linux"}return"unknown"},Tk=e=>{switch(e){case"windows":return"Windows";case"macos":return"macOS";case"linux":return"Linux";default:return"Unknown OS"}},Pk=()=>{const e=ly(),n=`## 🖥️ Operating System Information
|
|
67
67
|
|
|
68
|
-
You are running on **${
|
|
68
|
+
You are running on **${Tk(e)}**.`;return e==="windows"?n+`
|
|
69
69
|
|
|
70
70
|
### Windows-Specific Notes:
|
|
71
71
|
|
|
@@ -96,21 +96,21 @@ You are running on **${Ck(e)}**.`;return e==="windows"?n+`
|
|
|
96
96
|
|
|
97
97
|
- **File Paths**: Linux uses Unix-style paths with forward slashes (/)
|
|
98
98
|
- **Home Directory**: The tilde (~) expands to /home/[username]
|
|
99
|
-
- **Case Sensitivity**: Linux file systems are case-sensitive (File.txt and file.txt are different files)`:n},cy="copilot_conclusion_with_options_enhancement_enabled",uy=()=>localStorage.getItem(cy)==="true",
|
|
100
|
-
`),
|
|
99
|
+
- **Case Sensitivity**: Linux file systems are case-sensitive (File.txt and file.txt are different files)`:n},cy="copilot_conclusion_with_options_enhancement_enabled",uy=()=>localStorage.getItem(cy)==="true",TI=e=>{try{localStorage.setItem(cy,e.toString())}catch(t){console.error("[copilotConclusionWithOptionsEnhancement] Failed to persist setting:",t)}},Mk=()=>"\n## Copilot Completion Confirmation Rule\n\nBefore ending the task, always call the `conclusion_with_options` tool to confirm whether the user still has additional requests.\n\nRequirements:\n- This rule applies at the end of every task turn.\n- Do not ask final confirmation in plain assistant text; use `conclusion_with_options` for the final confirmation step.\n- The `conclusion_with_options` call must include a `conclusion` object in its arguments.\n- `conclusion.summary` is required and should summarize progress/conclusions.\n- `conclusion.mermaid.graph` is required and must contain a Mermaid graph.\n- Ask a clear confirmation question and include `OK` as one of the selectable options.\n- Only treat the task as finished when the user explicitly selects or replies `OK`.\n- If the user gives any other response, continue assisting and do not end the task.\n- A response that ends the task without `conclusion_with_options` is invalid and must be corrected before finishing.\n",PI=()=>["When this is enabled for Copilot sessions, the assistant must finish by asking for confirmation with the conclusion_with_options tool instead of ending with plain assistant text.","If the assistant tries to finish without calling conclusion_with_options, Bamboo stops the completion and returns a completion policy violation error.","Use this when you want enforced end-of-turn confirmation for Copilot sessions."].join(" "),dy="bamboo_system_prompt_enhancement",Ek=()=>["## Bamboo Operational Guidance","","- For recurring or delayed tasks, use the `schedule_tasks` tool to create and manage schedule jobs instead of only describing manual steps.","- The `schedule_tasks` tool supports: `list`, `create`, `patch`, `delete`, `run_now`, and `list_sessions`.","- Bamboo configuration is stored in `${BAMBOO_DATA_DIR}/config.json`.","- Default config path: `~/.bamboo/config.json` (macOS/Linux) or `%USERPROFILE%\\\\.bamboo\\\\config.json` (Windows)."].join(`
|
|
100
|
+
`),jk=e=>e.map(n=>n.trim()).filter(n=>n.length>0).join(`
|
|
101
101
|
|
|
102
|
-
`),jk=()=>{try{return localStorage.getItem(dy)??""}catch(e){return console.error("Failed to load system prompt enhancement:",e),""}},kI=e=>{try{const t=e.trim()?e:"";localStorage.setItem(dy,t)}catch(t){console.error("Failed to save system prompt enhancement:",t)}},Rk=e=>{const t=[];t.push(Tk().trim()),t.push(Ek().trim());const n=jk().trim();return n&&t.push(n),Sk()&&t.push(xk().trim()),_k()&&t.push(kk().trim()),(e??"").trim().toLowerCase()==="copilot"&&uy()&&t.push(Pk().trim()),t},Ak=e=>Mk(Rk(e));function Sd(e){const t=Wt(s=>s.providerConfig),n=ae(_s(e??null));return y.useMemo(()=>{var u,f,h,m,b,v,w;const s=e?(u=n==null?void 0:n.config)==null?void 0:u.model_ref:void 0,o=(f=s==null?void 0:s.model)==null?void 0:f.trim();if(o)return o;const i=e?(m=(h=n==null?void 0:n.config)==null?void 0:h.model)==null?void 0:m.trim():void 0;return i&&i!=="unknown"?i:((w=(v=(b=t.defaults)==null?void 0:b.chat)==null?void 0:v.model)==null?void 0:w.trim())||void 0},[n,t,e])}function Ik(e){const t=Sd(e),n=Wt(r=>r.providerConfig);return y.useMemo(()=>{var s,o,i;return((i=(o=(s=n.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||t},[n,t])}function fy(e){const t=Wt(s=>s.isProviderModelRefEnabled),n=Wt(s=>s.selectedModelRef),r=Wt(s=>s.providerConfig.defaults);return y.useMemo(()=>{var s,o;return t()?e||n||((o=(s=r==null?void 0:r.chat)==null?void 0:s.model)!=null&&o.trim()?r.chat:null):null},[e,n,r,t])}function Ok(){const e=Wt(t=>t.getFastModelRef);return y.useMemo(()=>e(),[e])}function $k(e){var pe;const{sessionId:t,addMessage:n,updateSession:r}=e,{modal:s,message:o}=Fn.useApp(),{t:i}=Ge(),l=y.useRef(null),u=y.useRef(null),f=y.useRef(""),h=y.useRef(new Jn),m=ae($=>$.agentAvailability),b=ae($=>$.setAgentAvailability),v=ae($=>$.checkAgentAvailability),w=ae($=>$.startAgentHealthCheck),S=ae($=>$.markOptimisticStart),k=ae($=>$.markRetryStart),P=ae($=>$.markSettleTimeout),T=ae($=>$.applyExecutionStarted),M=Sd(t),C=Wt($=>$.currentProvider),j=ae($=>t&&$.chats.find(oe=>oe.id===t)||null),A=fy((pe=j==null?void 0:j.config)==null?void 0:pe.model_ref);y.useEffect(()=>{w()},[w]);const O=y.useCallback(()=>{var oe;(oe=l.current)==null||oe.abort();const $=j==null?void 0:j.id;$&&h.current.stopGeneration($).catch(me=>{console.error("[useMessageStreaming] Failed to stop generation:",me)})},[j==null?void 0:j.id]),F=y.useCallback($=>{var Le;const oe=ae.getState(),ne=(Array.isArray(oe.chats)?oe.chats:[]).find(lt=>lt.id===$),fe=Mi($)(oe),he=(fe==null?void 0:fe.sessionId)===$?fe:null,ue=(Le=ne==null?void 0:ne.config)==null?void 0:Le.syncCursor,de=!!he||!!(ue!=null&&ue.hasPendingQuestion),Ce=(he==null?void 0:he.toolCallId)??(ue==null?void 0:ue.pendingQuestionToolCallId)??null,ze={client_message_count:(ue==null?void 0:ue.messageCount)??(ne==null?void 0:ne.messageCount)??0,client_last_message_id:(ue==null?void 0:ue.lastMessageId)??null,client_has_pending_question:de,client_pending_question_tool_call_id:Ce};return Me("[Streaming]","buildClientSync",{sessionId:$,generation:zt($)(oe),syncCursor:ue??null,messageCount:(ne==null?void 0:ne.messageCount)??null,respondMode:he?{toolCallId:he.toolCallId??null,question:he.question}:null,clientSync:ze}),ze},[]),D=y.useCallback(($,oe)=>{const me=oe.sync;if(!me)return;const ne=ae.getState(),he=(Array.isArray(ne.chats)?ne.chats:[]).find(ue=>ue.id===$);he&&(Me("[Streaming]","applyExecuteSyncSnapshot",{sessionId:$,generation:zt($)(ae.getState()),runId:oe.run_id??null,sync:me}),r($,{messageCount:me.server_message_count,config:{...he.config||{},syncCursor:{messageCount:me.server_message_count,lastMessageId:me.server_last_message_id??null,hasPendingQuestion:me.has_pending_question,pendingQuestionToolCallId:me.pending_question_tool_call_id??null}}}))},[r]),N=y.useCallback(async $=>{try{return await St.get(`respond/${$}/pending`)}catch(oe){return console.warn(`[useMessageStreaming] Failed to fetch pending question for ${$}:`,oe),{has_pending_question:!1}}},[]),q=y.useCallback(async($,oe,me)=>{var Ce,ze;Me("[Streaming]","recoverAfterNeedSync.start",{sessionId:$,generation:zt($)(ae.getState()),executeSync:oe,reasoningEffort:me??null}),P($),await ae.getState().loadChatHistory($,{mode:"replace"});const ne=await N($),fe=ae.getState().setPendingQuestion,he=ae.getState().clearPendingQuestion;if(ne.has_pending_question){Me("[Streaming]","recoverAfterNeedSync.pendingQuestion",{sessionId:$,generation:zt($)(ae.getState()),pending:ne}),fe($,{question:ne.question||"",options:ne.options||[],allowCustom:ne.allow_custom??!0,toolCallId:ne.tool_call_id??null});const Le=ae.getState().chats.find(lt=>lt.id===$);return Le&&r($,{config:{...Le.config||{},syncCursor:{messageCount:Le.messageCount??Le.messages.length,lastMessageId:((ze=(Ce=Le.config)==null?void 0:Ce.syncCursor)==null?void 0:ze.lastMessageId)??null,hasPendingQuestion:!0,pendingQuestionToolCallId:ne.tool_call_id??null}}}),null}if(he($),!((oe==null?void 0:oe.has_pending_user_message)??!1))return Me("[Streaming]","recoverAfterNeedSync.noPendingUserMessage",{sessionId:$,generation:zt($)(ae.getState()),executeSync:oe}),null;Me("[Streaming]","recoverAfterNeedSync.retryExecute",{sessionId:$,generation:zt($)(ae.getState()),executeSync:oe}),S($),await new Promise(Le=>setTimeout(Le,0));const de=me?await h.current.execute($,void 0,me,F($),A??void 0):await h.current.execute($,void 0,void 0,F($),A??void 0);return Me("[Streaming]","recoverAfterNeedSync.retryExecute.result",{sessionId:$,generation:zt($)(ae.getState()),status:de.status,runId:de.run_id??null,sync:de.sync??null}),D($,de),de},[A,D,F,N,S,P,r]),I=y.useCallback(async($,oe,me)=>{var ue,de;let ne=oe;Me("[Streaming]","handleExecuteResult.start",{sessionId:$,generation:zt($)(ae.getState()),status:ne.status,runId:ne.run_id??null,sync:ne.sync??null}),D($,ne);const fe=2;let he=0;for(;(ue=ne.sync)!=null&&ue.need_sync&&he<fe;){Me("[Streaming]","handleExecuteResult.needSync",{sessionId:$,generation:zt($)(ae.getState()),syncRecoveries:he,sync:ne.sync});const Ce=await q($,ne.sync,me);if(he+=1,!Ce){P($);return}ne=Ce,D($,ne)}if((de=ne.sync)!=null&&de.need_sync){console.warn(`[useMessageStreaming] Execute remains out-of-sync after ${fe} recovery attempt(s) for session ${$}.`,ne.sync),P($);return}if(["started","already_running"].includes(ne.status)){if(ne.run_id){const Ce=zt($)(ae.getState());T($,ne.run_id,Ce)}return}if(ne.status==="completed"){Me("[Streaming]","[Agent] Session already completed"),P($);return}throw console.error("[Agent] Execute failed:",ne.status),P($),new Error(`Execute failed: ${ne.status}`)},[D,q,P,T]),Q=y.useCallback(async($,oe,me,ne,fe)=>{var ue,de,Ce;if(!M)throw new Error(i("chat.model.noModelSelected"));const he=new AbortController;l.current=he;try{const ze=Ak(C).trim(),Le=(C??"").trim().toLowerCase()==="copilot"&&uy(),L=(((ue=j==null?void 0:j.config)==null?void 0:ue.workspacePath)||"").trim().replace(/\/+$/,"").replace(/\\+$/,"");Me("[Streaming]","sendWithAgent.start",{sessionId:oe,generation:zt(oe)(ae.getState()),userMessageId:me.id,contentLength:$.length,imageCount:((de=me.images)==null?void 0:de.length)??0,reasoningEffort:ne??null,selectedSkillCount:(fe==null?void 0:fe.length)??0,workspacePath:L||null,activeModel:M,activeModelRef:A??null});const le=await h.current.sendMessage({message:$,session_id:oe,enhance_prompt:ze||void 0,copilot_conclusion_with_options_enhancement_enabled:Le,workspace_path:L||void 0,selected_skill_ids:fe&&fe.length>0?fe:void 0,images:(Ce=me.images)==null?void 0:Ce.filter(He=>!!He.base64).map(He=>({base64:He.base64,name:He.name,size:He.size,type:He.type})),model:M,...A?{model_ref:A,provider:A.provider}:{}});Me("[Streaming]","sendWithAgent.chatResponse",{sessionId:oe,generation:zt(oe)(ae.getState()),response:le});const{session_id:Ae}=le;Ae!==oe&&console.warn(`[useMessageStreaming] Backend returned unexpected session_id=${Ae} for sessionId=${oe}`),Me("[Streaming]","sendWithAgent.loadHistory.beforeExecute",{sessionId:oe,generation:zt(oe)(ae.getState())});const Oe=ne?await h.current.execute(oe,void 0,ne,F(oe),A??void 0):await h.current.execute(oe,void 0,void 0,F(oe),A??void 0);Me("[Streaming]","sendWithAgent.executeResponse",{sessionId:oe,generation:zt(oe)(ae.getState()),status:Oe.status,runId:Oe.run_id??null,sync:Oe.sync??null}),await I(oe,Oe,ne)}catch(ze){throw Me("[Streaming]","sendWithAgent.error",{sessionId:oe,generation:zt(oe)(ae.getState()),error:ze}),ze}},[M,A,F,j,C,t,I,i]),G=y.useCallback(async($,oe,me,ne)=>{if(!j){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatSendContent")});return}if(!t){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdSendContent")});return}if(!M){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeSend")});return}let fe=m;if(fe===null&&(fe=await v()),!fe){o.error(i("chat.streaming.agentUnavailable"));return}if(!M){o.error(i("chat.streaming.modelConfigNotLoaded"));return}const he=t,ue=(oe==null?void 0:oe.map(Ce=>({id:Ce.id,base64:Ce.base64,name:Ce.name,size:Ce.size,type:Ce.type})))||[],de={role:"user",content:$,id:crypto.randomUUID(),createdAt:new Date().toISOString(),images:ue};Me("[Streaming]","sendMessage.localAdd.before",{sessionId:he,generation:zt(he)(ae.getState()),userMessageId:de.id,contentLength:$.length,imageCount:ue.length,reasoningEffort:me??null,selectedSkillCount:(ne==null?void 0:ne.length)??0}),await n(he,de),Me("[Streaming]","sendMessage.localAdd.after",{sessionId:he,generation:zt(he)(ae.getState()),userMessageId:de.id}),S(he),Me("[Streaming]","sendMessage.markOptimisticStart",{sessionId:he,generation:zt(he)(ae.getState())}),await new Promise(Ce=>setTimeout(Ce,0));try{Me("[Streaming]","[useChatStreaming] Using Agent Server"),await Q($,he,de,me,ne),Me("[Streaming]","sendMessage.completed",{sessionId:he,generation:zt(he)(ae.getState()),userMessageId:de.id})}catch(Ce){if(u.current&&Mt.clear(he,u.current),u.current=null,f.current="",Ce instanceof Error&&Ce.name==="AbortError")o.info(i("chat.streaming.requestCancelled"));else{console.error("[useChatStreaming] Failed to send message:",Ce);const ze=Ce instanceof Error?Ce.message:String(Ce??"");mu(ze)?o.error(gu(ze)):(o.error(i("chat.streaming.sendFailed")),b(!1))}Me("[Streaming]","sendMessage.error",{sessionId:he,generation:zt(he)(ae.getState()),error:Ce}),P(he)}finally{Me("[Streaming]","sendMessage.finally",{sessionId:he,generation:zt(he)(ae.getState()),streamingMessageId:u.current}),l.current=null,u.current&&Mt.clear(he,u.current),u.current=null,f.current=""}},[m,o,v,j,t,n,s,Q,b,M,i,S,P]),Z=y.useCallback(async($,oe="regenerate")=>{if(!j){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatRetryContent")});return}if(!t){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdRetryContent")});return}if(!M){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeRetry")});return}let me=m;if(me===null&&(me=await v()),!me){o.error(i("chat.streaming.agentUnavailable"));return}const ne=t;u.current&&Mt.clear(ne,u.current),u.current=null,f.current="";try{const fe=oe==="error_retry"?"error_retry":"after_last_user",he=await h.current.truncateSessionMessages(ne,{mode:fe});(oe==="regenerate"||(he.messages_removed??0)>0)&&await ae.getState().loadChatHistory(ne,{mode:"replace"}),k(ne);const ue=$?await h.current.execute(ne,void 0,$,F(ne),A??void 0):await h.current.execute(ne,void 0,void 0,F(ne),A??void 0);await I(ne,ue,$)}catch(fe){console.error("[useMessageStreaming] Retry failed:",fe);const he=fe instanceof Error?fe.message:String(fe??"");mu(he)?o.error(gu(he)):o.error(i("chat.streaming.retryFailed")),P(ne)}finally{l.current=null}},[M,A,m,o,F,v,j,t,I,s,i,k,P]);return{sendMessage:G,retryLastTurn:Z,cancel:O,agentAvailable:m}}const Lk=e=>{const t=y.useRef(new Map),n=y.useRef(!1),[r,s]=y.useState(null);y.useEffect(()=>{s(null),n.current=!1},[e]);const o=y.useCallback(f=>{if(!e)return;const h=f.trim();if(!h)return;const m=t.current.get(e)??[];if(m[m.length-1]===h)return;const b=[...m,h].slice(-50);t.current.set(e,b),s(null),n.current=!1},[e]),i=y.useCallback((f,h)=>{if(!e)return{value:null,applied:!1};const m=t.current.get(e)??[];if(m.length===0)return{value:null,applied:!1};const b=h.trim();if(f==="previous"){if(b.length>0&&r===null)return{value:null,applied:!1};const w=r??m.length,S=Math.max(0,w-1);return S===r?{value:null,applied:!1}:(s(S),n.current=!0,{value:m[S]??null,applied:!0})}if(r===null)return{value:null,applied:!1};const v=r+1;return v>=m.length?(s(null),n.current=!0,{value:"",applied:!0}):(s(v),n.current=!0,{value:m[v]??null,applied:!0})},[e,r]),l=y.useCallback(()=>{if(n.current){n.current=!1;return}r!==null&&s(null)},[r]),u=y.useCallback(()=>{e&&(t.current.delete(e),s(null),n.current=!1)},[e]);return{recordEntry:o,navigate:i,acknowledgeManualInput:l,clearHistory:u}},cs=class cs{constructor(){Et(this,"cache",null);Et(this,"cacheTime",0);Et(this,"CACHE_TTL",3e4)}static getInstance(){return cs.instance||(cs.instance=new cs),cs.instance}async listCommands(t=!1){const n=Date.now();if(!t&&this.cache&&n-this.cacheTime<this.CACHE_TTL)return this.cache;try{const r=await rt.get("commands");if(!Array.isArray(r.commands))throw new Error("Invalid command list response");return this.cache=r.commands,this.cacheTime=n,Me("[CommandService]","[CommandService] Loaded commands:",this.cache.length),this.cache}catch(r){throw console.error("[CommandService] Failed to list commands:",r),r}}async getCommand(t,n){try{return await rt.get(`commands/${t}/${n}`)}catch(r){throw console.error(`[CommandService] Failed to get command ${t}/${n}:`,r),r}}clearCache(){this.cache=null,this.cacheTime=0}};Et(cs,"instance");let Ri=cs;const eo=e=>{if(typeof e!="string"||!e.startsWith("mcp__"))return null;const t=e.slice(5),n=t.indexOf("__");if(n<=0)return null;const r=t.slice(0,n),s=t.slice(n+2);return!r||!s?null:{serverId:r,toolName:s}},Fk=({setContent:e,onWorkflowDraftChange:t,acknowledgeManualInput:n,currentSessionId:r,textAreaRef:s,content:o})=>{const[i,l]=y.useState(!1),[u,f]=y.useState(""),[h,m]=y.useState(null);y.useEffect(()=>{m(null),t==null||t(null)},[r,t]);const b=y.useCallback((j,A)=>{const O=j.trimStart(),F=`/${A}`;if(!O.startsWith(F))return!1;const D=O.charAt(F.length);return!D||/\s/.test(D)},[]),v=y.useCallback(()=>{m(null),t==null||t(null)},[t]),w=y.useCallback((j,A)=>{if(!b(j,A.name))return;const O=`/${A.name}`,D=j.trim().slice(O.length).trim(),N=[A.content,D].filter(Boolean).join(`
|
|
102
|
+
`),Rk=()=>{try{return localStorage.getItem(dy)??""}catch(e){return console.error("Failed to load system prompt enhancement:",e),""}},MI=e=>{try{const t=e.trim()?e:"";localStorage.setItem(dy,t)}catch(t){console.error("Failed to save system prompt enhancement:",t)}},Ak=e=>{const t=[];t.push(Pk().trim()),t.push(Ek().trim());const n=Rk().trim();return n&&t.push(n),xk()&&t.push(wk().trim()),kk()&&t.push(Ck().trim()),(e??"").trim().toLowerCase()==="copilot"&&uy()&&t.push(Mk().trim()),t},Ik=e=>jk(Ak(e));function Sd(e){const t=Wt(s=>s.providerConfig),n=ae(ks(e??null));return y.useMemo(()=>{var u,d,h,m,b,v,w;const s=e?(u=n==null?void 0:n.config)==null?void 0:u.model_ref:void 0,o=(d=s==null?void 0:s.model)==null?void 0:d.trim();if(o)return o;const i=e?(m=(h=n==null?void 0:n.config)==null?void 0:h.model)==null?void 0:m.trim():void 0;return i&&i!=="unknown"?i:((w=(v=(b=t.defaults)==null?void 0:b.chat)==null?void 0:v.model)==null?void 0:w.trim())||void 0},[n,t,e])}function Ok(e){const t=Sd(e),n=Wt(r=>r.providerConfig);return y.useMemo(()=>{var s,o,i;return((i=(o=(s=n.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||t},[n,t])}function fy(e){const t=Wt(s=>s.isProviderModelRefEnabled),n=Wt(s=>s.selectedModelRef),r=Wt(s=>s.providerConfig.defaults);return y.useMemo(()=>{var s,o;return t()?e||n||((o=(s=r==null?void 0:r.chat)==null?void 0:s.model)!=null&&o.trim()?r.chat:null):null},[e,n,r,t])}function $k(){const e=Wt(t=>t.getFastModelRef);return y.useMemo(()=>e(),[e])}function Lk(e){var pe;const{sessionId:t,addMessage:n,updateSession:r}=e,{modal:s,message:o}=Fn.useApp(),{t:i}=Ge(),l=y.useRef(null),u=y.useRef(null),d=y.useRef(""),h=y.useRef(new Jn),m=ae($=>$.agentAvailability),b=ae($=>$.setAgentAvailability),v=ae($=>$.checkAgentAvailability),w=ae($=>$.startAgentHealthCheck),S=ae($=>$.markOptimisticStart),k=ae($=>$.markRetryStart),P=ae($=>$.markSettleTimeout),T=ae($=>$.applyExecutionStarted),j=Sd(t),C=Wt($=>$.currentProvider),E=ae($=>t&&$.chats.find(oe=>oe.id===t)||null),A=fy((pe=E==null?void 0:E.config)==null?void 0:pe.model_ref);y.useEffect(()=>{w()},[w]);const O=y.useCallback(()=>{var oe;(oe=l.current)==null||oe.abort();const $=E==null?void 0:E.id;$&&h.current.stopGeneration($).catch(me=>{console.error("[useMessageStreaming] Failed to stop generation:",me)})},[E==null?void 0:E.id]),D=y.useCallback($=>{var Le;const oe=ae.getState(),ne=(Array.isArray(oe.chats)?oe.chats:[]).find(lt=>lt.id===$),he=ji($)(oe),fe=(he==null?void 0:he.sessionId)===$?he:null,ue=(Le=ne==null?void 0:ne.config)==null?void 0:Le.syncCursor,de=!!fe||!!(ue!=null&&ue.hasPendingQuestion),Ce=(fe==null?void 0:fe.toolCallId)??(ue==null?void 0:ue.pendingQuestionToolCallId)??null,ze={client_message_count:(ue==null?void 0:ue.messageCount)??(ne==null?void 0:ne.messageCount)??0,client_last_message_id:(ue==null?void 0:ue.lastMessageId)??null,client_has_pending_question:de,client_pending_question_tool_call_id:Ce};return Ee("[Streaming]","buildClientSync",{sessionId:$,generation:zt($)(oe),syncCursor:ue??null,messageCount:(ne==null?void 0:ne.messageCount)??null,respondMode:fe?{toolCallId:fe.toolCallId??null,question:fe.question}:null,clientSync:ze}),ze},[]),F=y.useCallback(($,oe)=>{const me=oe.sync;if(!me)return;const ne=ae.getState(),fe=(Array.isArray(ne.chats)?ne.chats:[]).find(ue=>ue.id===$);fe&&(Ee("[Streaming]","applyExecuteSyncSnapshot",{sessionId:$,generation:zt($)(ae.getState()),runId:oe.run_id??null,sync:me}),r($,{messageCount:me.server_message_count,config:{...fe.config||{},syncCursor:{messageCount:me.server_message_count,lastMessageId:me.server_last_message_id??null,hasPendingQuestion:me.has_pending_question,pendingQuestionToolCallId:me.pending_question_tool_call_id??null}}}))},[r]),N=y.useCallback(async $=>{try{return await St.get(`respond/${$}/pending`)}catch(oe){return console.warn(`[useMessageStreaming] Failed to fetch pending question for ${$}:`,oe),{has_pending_question:!1}}},[]),q=y.useCallback(async($,oe,me)=>{var Ce,ze;Ee("[Streaming]","recoverAfterNeedSync.start",{sessionId:$,generation:zt($)(ae.getState()),executeSync:oe,reasoningEffort:me??null}),P($),await ae.getState().loadChatHistory($,{mode:"replace"});const ne=await N($),he=ae.getState().setPendingQuestion,fe=ae.getState().clearPendingQuestion;if(ne.has_pending_question){Ee("[Streaming]","recoverAfterNeedSync.pendingQuestion",{sessionId:$,generation:zt($)(ae.getState()),pending:ne}),he($,{question:ne.question||"",options:ne.options||[],allowCustom:ne.allow_custom??!0,toolCallId:ne.tool_call_id??null});const Le=ae.getState().chats.find(lt=>lt.id===$);return Le&&r($,{config:{...Le.config||{},syncCursor:{messageCount:Le.messageCount??Le.messages.length,lastMessageId:((ze=(Ce=Le.config)==null?void 0:Ce.syncCursor)==null?void 0:ze.lastMessageId)??null,hasPendingQuestion:!0,pendingQuestionToolCallId:ne.tool_call_id??null}}}),null}if(fe($),!((oe==null?void 0:oe.has_pending_user_message)??!1))return Ee("[Streaming]","recoverAfterNeedSync.noPendingUserMessage",{sessionId:$,generation:zt($)(ae.getState()),executeSync:oe}),null;Ee("[Streaming]","recoverAfterNeedSync.retryExecute",{sessionId:$,generation:zt($)(ae.getState()),executeSync:oe}),S($),await new Promise(Le=>setTimeout(Le,0));const de=me?await h.current.execute($,void 0,me,D($),A??void 0):await h.current.execute($,void 0,void 0,D($),A??void 0);return Ee("[Streaming]","recoverAfterNeedSync.retryExecute.result",{sessionId:$,generation:zt($)(ae.getState()),status:de.status,runId:de.run_id??null,sync:de.sync??null}),F($,de),de},[A,F,D,N,S,P,r]),I=y.useCallback(async($,oe,me)=>{var ue,de;let ne=oe;Ee("[Streaming]","handleExecuteResult.start",{sessionId:$,generation:zt($)(ae.getState()),status:ne.status,runId:ne.run_id??null,sync:ne.sync??null}),F($,ne);const he=2;let fe=0;for(;(ue=ne.sync)!=null&&ue.need_sync&&fe<he;){Ee("[Streaming]","handleExecuteResult.needSync",{sessionId:$,generation:zt($)(ae.getState()),syncRecoveries:fe,sync:ne.sync});const Ce=await q($,ne.sync,me);if(fe+=1,!Ce){P($);return}ne=Ce,F($,ne)}if((de=ne.sync)!=null&&de.need_sync){console.warn(`[useMessageStreaming] Execute remains out-of-sync after ${he} recovery attempt(s) for session ${$}.`,ne.sync),P($);return}if(["started","already_running"].includes(ne.status)){if(ne.run_id){const Ce=zt($)(ae.getState());T($,ne.run_id,Ce)}return}if(ne.status==="completed"){Ee("[Streaming]","[Agent] Session already completed"),P($);return}throw console.error("[Agent] Execute failed:",ne.status),P($),new Error(`Execute failed: ${ne.status}`)},[F,q,P,T]),Q=y.useCallback(async($,oe,me,ne,he)=>{var ue,de,Ce;if(!j)throw new Error(i("chat.model.noModelSelected"));const fe=new AbortController;l.current=fe;try{const ze=Ik(C).trim(),Le=(C??"").trim().toLowerCase()==="copilot"&&uy(),L=(((ue=E==null?void 0:E.config)==null?void 0:ue.workspacePath)||"").trim().replace(/\/+$/,"").replace(/\\+$/,"");Ee("[Streaming]","sendWithAgent.start",{sessionId:oe,generation:zt(oe)(ae.getState()),userMessageId:me.id,contentLength:$.length,imageCount:((de=me.images)==null?void 0:de.length)??0,reasoningEffort:ne??null,selectedSkillCount:(he==null?void 0:he.length)??0,workspacePath:L||null,activeModel:j,activeModelRef:A??null});const le=await h.current.sendMessage({message:$,session_id:oe,enhance_prompt:ze||void 0,copilot_conclusion_with_options_enhancement_enabled:Le,workspace_path:L||void 0,selected_skill_ids:he&&he.length>0?he:void 0,images:(Ce=me.images)==null?void 0:Ce.filter(He=>!!He.base64).map(He=>({base64:He.base64,name:He.name,size:He.size,type:He.type})),model:j,...A?{model_ref:A,provider:A.provider}:{}});Ee("[Streaming]","sendWithAgent.chatResponse",{sessionId:oe,generation:zt(oe)(ae.getState()),response:le});const{session_id:Ae}=le;Ae!==oe&&console.warn(`[useMessageStreaming] Backend returned unexpected session_id=${Ae} for sessionId=${oe}`),Ee("[Streaming]","sendWithAgent.loadHistory.beforeExecute",{sessionId:oe,generation:zt(oe)(ae.getState())});const Ie=ne?await h.current.execute(oe,void 0,ne,D(oe),A??void 0):await h.current.execute(oe,void 0,void 0,D(oe),A??void 0);Ee("[Streaming]","sendWithAgent.executeResponse",{sessionId:oe,generation:zt(oe)(ae.getState()),status:Ie.status,runId:Ie.run_id??null,sync:Ie.sync??null}),await I(oe,Ie,ne)}catch(ze){throw Ee("[Streaming]","sendWithAgent.error",{sessionId:oe,generation:zt(oe)(ae.getState()),error:ze}),ze}},[j,A,D,E,C,t,I,i]),G=y.useCallback(async($,oe,me,ne)=>{if(!E){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatSendContent")});return}if(!t){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdSendContent")});return}if(!j){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeSend")});return}let he=m;if(he===null&&(he=await v()),!he){o.error(i("chat.streaming.agentUnavailable"));return}if(!j){o.error(i("chat.streaming.modelConfigNotLoaded"));return}const fe=t,ue=(oe==null?void 0:oe.map(Ce=>({id:Ce.id,base64:Ce.base64,name:Ce.name,size:Ce.size,type:Ce.type})))||[],de={role:"user",content:$,id:crypto.randomUUID(),createdAt:new Date().toISOString(),images:ue};Ee("[Streaming]","sendMessage.localAdd.before",{sessionId:fe,generation:zt(fe)(ae.getState()),userMessageId:de.id,contentLength:$.length,imageCount:ue.length,reasoningEffort:me??null,selectedSkillCount:(ne==null?void 0:ne.length)??0}),await n(fe,de),Ee("[Streaming]","sendMessage.localAdd.after",{sessionId:fe,generation:zt(fe)(ae.getState()),userMessageId:de.id}),S(fe),Ee("[Streaming]","sendMessage.markOptimisticStart",{sessionId:fe,generation:zt(fe)(ae.getState())}),await new Promise(Ce=>setTimeout(Ce,0));try{Ee("[Streaming]","[useChatStreaming] Using Agent Server"),await Q($,fe,de,me,ne),Ee("[Streaming]","sendMessage.completed",{sessionId:fe,generation:zt(fe)(ae.getState()),userMessageId:de.id})}catch(Ce){if(u.current&&Et.clear(fe,u.current),u.current=null,d.current="",Ce instanceof Error&&Ce.name==="AbortError")o.info(i("chat.streaming.requestCancelled"));else{console.error("[useChatStreaming] Failed to send message:",Ce);const ze=Ce instanceof Error?Ce.message:String(Ce??"");gu(ze)?o.error(yu(ze)):(o.error(i("chat.streaming.sendFailed")),b(!1))}Ee("[Streaming]","sendMessage.error",{sessionId:fe,generation:zt(fe)(ae.getState()),error:Ce}),P(fe)}finally{Ee("[Streaming]","sendMessage.finally",{sessionId:fe,generation:zt(fe)(ae.getState()),streamingMessageId:u.current}),l.current=null,u.current&&Et.clear(fe,u.current),u.current=null,d.current=""}},[m,o,v,E,t,n,s,Q,b,j,i,S,P]),Z=y.useCallback(async($,oe="regenerate")=>{if(!E){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatRetryContent")});return}if(!t){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdRetryContent")});return}if(!j){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeRetry")});return}let me=m;if(me===null&&(me=await v()),!me){o.error(i("chat.streaming.agentUnavailable"));return}const ne=t;u.current&&Et.clear(ne,u.current),u.current=null,d.current="";try{const he=oe==="error_retry"?"error_retry":"after_last_user",fe=await h.current.truncateSessionMessages(ne,{mode:he});(oe==="regenerate"||(fe.messages_removed??0)>0)&&await ae.getState().loadChatHistory(ne,{mode:"replace"}),k(ne);const ue=$?await h.current.execute(ne,void 0,$,D(ne),A??void 0):await h.current.execute(ne,void 0,void 0,D(ne),A??void 0);await I(ne,ue,$)}catch(he){console.error("[useMessageStreaming] Retry failed:",he);const fe=he instanceof Error?he.message:String(he??"");gu(fe)?o.error(yu(fe)):o.error(i("chat.streaming.retryFailed")),P(ne)}finally{l.current=null}},[j,A,m,o,D,v,E,t,I,s,i,k,P]);return{sendMessage:G,retryLastTurn:Z,cancel:O,agentAvailable:m}}const Fk=e=>{const t=y.useRef(new Map),n=y.useRef(!1),[r,s]=y.useState(null);y.useEffect(()=>{s(null),n.current=!1},[e]);const o=y.useCallback(d=>{if(!e)return;const h=d.trim();if(!h)return;const m=t.current.get(e)??[];if(m[m.length-1]===h)return;const b=[...m,h].slice(-50);t.current.set(e,b),s(null),n.current=!1},[e]),i=y.useCallback((d,h)=>{if(!e)return{value:null,applied:!1};const m=t.current.get(e)??[];if(m.length===0)return{value:null,applied:!1};const b=h.trim();if(d==="previous"){if(b.length>0&&r===null)return{value:null,applied:!1};const w=r??m.length,S=Math.max(0,w-1);return S===r?{value:null,applied:!1}:(s(S),n.current=!0,{value:m[S]??null,applied:!0})}if(r===null)return{value:null,applied:!1};const v=r+1;return v>=m.length?(s(null),n.current=!0,{value:"",applied:!0}):(s(v),n.current=!0,{value:m[v]??null,applied:!0})},[e,r]),l=y.useCallback(()=>{if(n.current){n.current=!1;return}r!==null&&s(null)},[r]),u=y.useCallback(()=>{e&&(t.current.delete(e),s(null),n.current=!1)},[e]);return{recordEntry:o,navigate:i,acknowledgeManualInput:l,clearHistory:u}},us=class us{constructor(){Mt(this,"cache",null);Mt(this,"cacheTime",0);Mt(this,"CACHE_TTL",3e4)}static getInstance(){return us.instance||(us.instance=new us),us.instance}async listCommands(t=!1){const n=Date.now();if(!t&&this.cache&&n-this.cacheTime<this.CACHE_TTL)return this.cache;try{const r=await rt.get("commands");if(!Array.isArray(r.commands))throw new Error("Invalid command list response");return this.cache=r.commands,this.cacheTime=n,Ee("[CommandService]","[CommandService] Loaded commands:",this.cache.length),this.cache}catch(r){throw console.error("[CommandService] Failed to list commands:",r),r}}async getCommand(t,n){try{return await rt.get(`commands/${t}/${n}`)}catch(r){throw console.error(`[CommandService] Failed to get command ${t}/${n}:`,r),r}}clearCache(){this.cache=null,this.cacheTime=0}};Mt(us,"instance");let Ai=us;const to=e=>{if(typeof e!="string"||!e.startsWith("mcp__"))return null;const t=e.slice(5),n=t.indexOf("__");if(n<=0)return null;const r=t.slice(0,n),s=t.slice(n+2);return!r||!s?null:{serverId:r,toolName:s}},Dk=({setContent:e,onWorkflowDraftChange:t,acknowledgeManualInput:n,currentSessionId:r,textAreaRef:s,content:o})=>{const[i,l]=y.useState(!1),[u,d]=y.useState(""),[h,m]=y.useState(null);y.useEffect(()=>{m(null),t==null||t(null)},[r,t]);const b=y.useCallback((E,A)=>{const O=E.trimStart(),D=`/${A}`;if(!O.startsWith(D))return!1;const F=O.charAt(D.length);return!F||/\s/.test(F)},[]),v=y.useCallback(()=>{m(null),t==null||t(null)},[t]),w=y.useCallback((E,A)=>{if(!b(E,A.name))return;const O=`/${A.name}`,F=E.trim().slice(O.length).trim(),N=[A.content,F].filter(Boolean).join(`
|
|
103
103
|
|
|
104
|
-
`);t==null||t({...A,content:N})},[b,t]),S=y.useCallback(
|
|
104
|
+
`);t==null||t({...A,content:N})},[b,t]),S=y.useCallback(E=>{n(),h&&!b(E,h.name)&&v(),h&&b(E,h.name)&&w(E,h),e(E)},[n,v,b,h,w,e]),k=y.useCallback(E=>{l(E.isTriggerActive),d(E.isTriggerActive?E.searchText:"")},[]),P=y.useCallback(async E=>{var Z,pe,$,oe,me,ne;l(!1);const O=(he=>{var de;if(he.type!=="mcp")return he.name;const fe=(de=he.metadata)==null?void 0:de.originalName;if(typeof fe=="string"&&fe.trim())return fe.trim();const ue=to(he.name);return ue!=null&&ue.toolName?ue.toolName:he.displayName||he.name})(E),D=(pe=(Z=s.current)==null?void 0:Z.resizableTextArea)==null?void 0:pe.textArea,F=(D==null?void 0:D.selectionStart)??o.length;let N,q;const Q=o.substring(0,F).match(/\/([a-zA-Z0-9_-]*)$/);if(Q){const he=F-Q[0].length,fe=o.substring(0,he),ue=o.substring(F);N=`${fe}/${O} ${ue}`,q=`${fe}/${O} `.length}else if(o.trim()==="")N=`/${O} `,q=N.length;else{const he=o.substring(0,F),fe=o.substring(F);N=`${he}/${O} ${fe}`,q=`${he}/${O} `.length}if(e(N),setTimeout(()=>{D&&(D.selectionStart=q,D.selectionEnd=q,D.focus())},0),E.type!=="workflow"){const he={id:`command-draft-${E.id}`,name:O,content:"",createdAt:new Date().toISOString(),type:E.type,displayName:E.displayName,mcpAlias:E.type==="mcp"?E.name:void 0,mcpServerId:E.type==="mcp"?($=E.metadata)==null?void 0:$.serverId:void 0,mcpServerName:E.type==="mcp"?(oe=E.metadata)==null?void 0:oe.serverName:void 0,mcpOriginalName:E.type==="mcp"?(me=E.metadata)==null?void 0:me.originalName:void 0};m(he),t==null||t(he);return}const G=Ai.getInstance();try{const he=E.id.startsWith("workflow-")?E.id.slice(9):E.id,ue=((ne=(await G.getCommand(E.type,he)).content)==null?void 0:ne.trim())||"";if(ue){const de={id:`command-draft-${E.id}`,name:E.name,content:ue,createdAt:new Date().toISOString(),type:E.type,displayName:E.displayName};m(de),t==null||t(de)}else v()}catch(he){console.error(`[InputContainer] Failed to apply command '${E.name}':`,he),v()}},[v,t,e,o,s]),T=y.useCallback(async E=>{try{const D=(await Ai.getInstance().listCommands()).find(F=>F.id===E.id&&F.type===E.type);if(!D){console.error(`[InputContainer] Command '${E.id}' of type '${E.type}' not found`),e(`/${E.name} `),v();return}await P(D)}catch(A){console.error(`[InputContainer] Failed to select command '${E.name}':`,A),e(`/${E.name} `),v()}},[P,v,e]),j=y.useCallback(()=>{l(!1)},[]),C=y.useCallback(async E=>{l(!1);try{const D=(await Ai.getInstance().listCommands()).find(F=>F.name===E);D?await P(D):(console.error(`[InputContainer] Command '${E}' not found in auto-complete`),e(`/${E} `),v())}catch(A){console.error(`[InputContainer] Failed to load command '${E}' in auto-complete:`,A),e(`/${E} `),v()}},[P,v,e]);return{selectedCommand:h,showCommandSelector:i,commandSearchText:u,clearCommandDraft:v,matchesCommandToken:b,handleInputChange:S,handleCommandChange:k,handleCommandSelect:T,handleCommandSelectorCancel:j,handleAutoComplete:C,setShowCommandSelector:l}};class Nk{constructor(t={}){Mt(this,"cache",null);Mt(this,"options");Mt(this,"validateWorkspacePath",this.validatePath.bind(this));Mt(this,"getRecentWorkspaces",this.getRecent.bind(this));Mt(this,"addRecentWorkspace",this.addRecent.bind(this));Mt(this,"removeRecentWorkspace",this.removeRecent.bind(this));Mt(this,"clearRecentWorkspaces",this.clearRecent.bind(this));Mt(this,"getWorkspaceSuggestions",this.getCombinedSuggestions.bind(this));Mt(this,"getHealthStatus",this.healthCheck.bind(this));this.options={maxRecentWorkspaces:t.maxRecentWorkspaces??10,cacheTimeoutMs:t.cacheTimeoutMs??5*60*1e3,requestTimeoutMs:t.requestTimeoutMs??1e4}}async validatePath(t){return rt.post("workspace/validate",{path:t})}async getRecent(){var t;if(this.isCacheValid())return this.cache.recentWorkspaces;try{const n=await rt.get("workspace/recent",{signal:AbortSignal.timeout(this.options.requestTimeoutMs)});return this.cache={recentWorkspaces:n,timestamp:Date.now()},n}catch(n){if(console.error("Failed to get recent workspaces:",n),(t=this.cache)!=null&&t.recentWorkspaces)return this.cache.recentWorkspaces;throw n}}async addRecent(t,n){await rt.post("workspace/recent",{path:t,metadata:n}),this.invalidateCache()}async removeRecent(t){const r=(await this.getRecent()).filter(s=>s.path!==t);this.cache={recentWorkspaces:r,timestamp:Date.now()}}async clearRecent(){this.cache=null}async getPathSuggestions(){return rt.get("workspace/suggestions")}async browseFolder(t){return rt.post("workspace/browse-folder",{path:t})}async getCombinedSuggestions(){const[t,n]=await Promise.all([this.getPathSuggestions().catch(()=>({suggestions:[]})),this.getRecent().catch(()=>[])]),s=[...t.suggestions.map(i=>({path:i.path,is_valid:!0,workspace_name:i.name})),...n];return this.deduplicateByPath(s).sort((i,l)=>{const u=n.findIndex(h=>h.path===i.path),d=n.findIndex(h=>h.path===l.path);return u!==-1&&d!==-1?u-d:u!==-1?-1:d!==-1?1:(i.workspace_name||"").localeCompare(l.workspace_name||"")})}async healthCheck(){var n,r,s;const t=Date.now();try{await rt.get("workspace/recent",{signal:AbortSignal.timeout(2e3)});const o=((n=this.cache)==null?void 0:n.recentWorkspaces)||await this.getRecent();return{available:!0,cacheValid:this.isCacheValid(),recentCount:o.length,latency:Date.now()-t}}catch(o){return{available:!1,cacheValid:this.isCacheValid(),recentCount:((s=(r=this.cache)==null?void 0:r.recentWorkspaces)==null?void 0:s.length)||0,error:o instanceof Error?o.message:"Unknown error"}}}async listWorkspaceFiles(t,n){return rt.post("workspace/files",{path:t,max_depth:(n==null?void 0:n.max_depth)??3,max_entries:(n==null?void 0:n.max_entries)??500,include_hidden:(n==null?void 0:n.include_hidden)??!1})}isCacheValid(){return this.cache?!(Date.now()-this.cache.timestamp>this.options.cacheTimeoutMs):!1}invalidateCache(){this.cache=null}deduplicateByPath(t){const n=new Set;return t.filter(r=>n.has(r.path)?!1:(n.add(r.path),!0))}}const Bk=new Nk,zk=({content:e,setContent:t,currentSessionId:n,currentChat:r,updateSession:s,messageApi:o})=>{const[i,l]=y.useState(new Map),[u,d]=y.useState([]),[h,m]=y.useState(!1),[b,v]=y.useState(""),[w,S]=y.useState(!1),[k,P]=y.useState(""),[T,j]=y.useState(!1),[C,E]=y.useState(null),[A,O]=y.useState(!1),D=y.useRef(null);y.useEffect(()=>{w&&P((r==null?void 0:r.config.workspacePath)??"")},[w,r==null?void 0:r.config.workspacePath]),y.useEffect(()=>{m(!1),v(""),d([]),l(new Map),D.current=(r==null?void 0:r.config.workspacePath)??null},[n,r==null?void 0:r.config.workspacePath]);const F=y.useCallback(async(pe,$)=>{j(!0),d([]),E(null);try{const oe=await Bk.listWorkspaceFiles($);d(oe),D.current=$}catch(oe){console.error("Failed to load workspace files:",oe),E(oe instanceof Error?oe.message:"Workspace file browsing is unavailable.")}finally{j(!1)}},[]),N=y.useCallback(pe=>{if(v(pe.searchText),!pe.isTriggerActive){m(!1);return}if(!n||!r){m(!1);return}const $=r.config.workspacePath;if(!$){P(""),S(!0),m(!1);return}m(!0),(D.current!==$||u.length===0)&&F(n,$)},[r,n,F,u.length]),q=y.useCallback(pe=>{const $=e.lastIndexOf("@");let oe;$>=0&&e.substring($).match(/^@[a-zA-Z0-9._\\-\\/\\\\]*$/)?oe=`${e.slice(0,$)}@${pe.name} `:oe=e.trim()?`${e.trim()} @${pe.name} `:`@${pe.name} `,t(oe),l(me=>{const ne=new Map(me);return ne.set(pe.name,pe),ne}),m(!1),v("")},[e,t]),I=y.useCallback(()=>{m(!1)},[]),Q=y.useCallback(()=>{if(!n||!r)return;const pe=r.config.workspacePath;if(!pe){P(""),S(!0),m(!1);return}v(""),m(!0),(D.current!==pe||u.length===0)&&F(n,pe)},[r,n,F,u.length]),G=y.useCallback(()=>{S(!1),P("")},[]),Z=y.useCallback(async pe=>{if(!r||!n)return;const $=pe.trim();if(!$){o.error(xt.t("chat.view.workspacePathEmpty"));return}O(!0);try{s(n,{config:{...r.config,workspacePath:$}}),S(!1),P(""),m(!1),E(null)}catch(oe){const me=oe instanceof Error?oe.message:"Unable to save workspace path";o.error(me)}finally{O(!1)}},[r,n,o,s]);return{fileReferences:i,setFileReferences:l,workspaceFiles:u,showFileSelector:h,setShowFileSelector:m,fileSearchText:b,isWorkspaceLoading:T,workspaceError:C,isWorkspaceModalVisible:w,workspacePathInput:k,isSavingWorkspace:A,setWorkspacePathInput:P,setIsWorkspaceModalVisible:S,handleFileReferenceChange:N,handleFileReferenceSelect:q,handleFileSelectorCancel:I,handleFileReferenceButtonClick:Q,handleWorkspaceModalCancel:G,handleWorkspaceModalSubmit:Z,fetchWorkspaceFiles:F}},Wk=()=>{const[e,t]=y.useState([]),n=y.useCallback(o=>{t(i=>[...i,...o])},[]),r=y.useCallback(o=>{t(i=>i.filter(l=>l.id!==o))},[]),s=y.useCallback(()=>{t([])},[]);return{attachments:e,setAttachments:t,handleAttachmentsAdded:n,handleAttachmentRemove:r,handleClearAttachments:s}},Uk=({attachments:e,referenceText:t,selectedWorkflow:n,matchesWorkflowToken:r,fileReferences:s,reasoningEffort:o,sendMessage:i,recordEntry:l,clearWorkflowDraft:u,setContent:d,setReferenceText:h,setAttachments:m,setFileReferences:b})=>({handleSubmit:y.useCallback(async(w,S)=>{const k=w.trim(),P=pk(e),T=(t==null?void 0:t.trim())??"";let j=k,C;if(n!=null&&n.content&&n.type==="workflow"){const A=`/${n.name}`;if(r(k,n.name)){const D=k.slice(A.length).trim();j=[n.content,D].filter(Boolean).join(`
|
|
105
105
|
|
|
106
|
-
`)}}else if((n==null?void 0:n.type)==="skill"){const A=`/${n.name}`;if(r(k,n.name)){const
|
|
106
|
+
`)}}else if((n==null?void 0:n.type)==="skill"){const A=`/${n.name}`;if(r(k,n.name)){const D=k.slice(A.length).trim();j=[`[User explicitly selected skill: ${n.displayName||n.name} (ID: ${n.name})]`,D].filter(Boolean).join(`
|
|
107
107
|
|
|
108
|
-
`),C=[n.name]}}else if((n==null?void 0:n.type)==="mcp"){const A=`/${n.name}`;if(r(k,n.name)){const
|
|
108
|
+
`),C=[n.name]}}else if((n==null?void 0:n.type)==="mcp"){const A=`/${n.name}`;if(r(k,n.name)){const D=k.slice(A.length).trim();j=[`[User explicitly selected MCP tool: ${n.mcpAlias||n.displayName||n.name}]`,D].filter(Boolean).join(`
|
|
109
109
|
|
|
110
|
-
`)}}if(!
|
|
110
|
+
`)}}if(!j&&!P&&(!S||S.length===0))return;const E=[T,j,P].filter(Boolean).join(`
|
|
111
111
|
|
|
112
|
-
`);if(l(j),f(""),u(),s.size>0){const A=Array.from(j.matchAll(/@([^\\s]+)/g));if(A.length>0){const O=[];for(const F of A){const D=F[1],N=s.get(D);N&&O.push(N)}if(O.length>0){const F=JSON.stringify({type:"file_reference",paths:O.map(D=>D.path),display_text:j});await i(F,S,o,C)}else await i(j,S,o,C)}else await i(j,S,o,C)}else await i(j,S,o,C);h(null),m([]),b(new Map)},[e,u,s,r,l,o,n,i,m,f,b,h,t])}),Uk=({currentSessionId:e,currentChat:t,currentMessages:n,reasoningEffort:r,retryLastTurn:s,navigate:o})=>{const i=y.useCallback(async(u="regenerate")=>{if(!e||!t)return;const f=[...n];f.length===0||[...f].reverse().findIndex(m=>m.role==="user")===-1||await s(r,u)},[t,e,n,r,s]),l=y.useCallback((u,f)=>{const h=o(u,f);return h.applied?h.value:null},[o]);return{retryLastMessage:i,handleHistoryNavigate:l}},qk=({referenceText:e,isToolSpecificMode:t,isRestrictConversation:n,allowedTools:r,autoToolPrefix:s,t:o})=>o(e?"chat.input.placeholderWithReference":"chat.input.placeholderWithWorkflows"),Hk=(e,t)=>{var n,r,s,o,i;switch(t==null?void 0:t.trim()){case"openai":return(n=e.providers.openai)==null?void 0:n.reasoning_effort;case"anthropic":return(r=e.providers.anthropic)==null?void 0:r.reasoning_effort;case"gemini":return(s=e.providers.gemini)==null?void 0:s.reasoning_effort;case"copilot":return(o=e.providers.copilot)==null?void 0:o.reasoning_effort;case"bodhi":return(i=e.providers.bodhi)==null?void 0:i.reasoning_effort;default:return}},Yk=(e,t,n)=>{var s,o,i,l,u;const r=((s=t==null?void 0:t.provider)==null?void 0:s.trim())||((l=(i=(o=e.defaults)==null?void 0:o.chat)==null?void 0:i.provider)==null?void 0:l.trim())||(n==null?void 0:n.trim())||((u=e.provider)==null?void 0:u.trim());return Hk(e,r)};function Xk({value:e,onChange:t,disabled:n}){const r=Wt(l=>l.catalog);y.useEffect(()=>{r||Wt.getState().loadCatalog()},[r]);const s=y.useMemo(()=>{if(!(r!=null&&r.models))return[];const l={};for(const h of r.models){const m=h.reference.provider;l[m]||(l[m]={display:h.provider_display_name,models:[]}),l[m].models.push(h)}const u=[];return Object.keys(l).forEach((h,m)=>{const b=l[h];m>0&&u.push({type:"divider"}),u.push({type:"group",label:b.display,children:b.models.map(v=>({key:`${v.reference.provider}/${v.reference.model}`,label:a.jsxs(Ue,{size:4,children:[a.jsx("span",{children:v.display_name}),v.capabilities.supports_vision&&a.jsx(Je,{color:"blue",style:{fontSize:10,lineHeight:"16px",padding:"0 3px"},children:"Vision"})]})}))})}),u},[r]),o=e?`${e.provider}/${e.model}`:void 0,i=y.useCallback(l=>{const[u,...f]=l.key.split("/"),h=f.join("/");u&&h&&t({provider:u,model:h})},[t]);return a.jsx(Ue,{size:4,"data-tour-id":"model-picker",children:a.jsx(Xs,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:o?[o]:[],items:s,style:{maxHeight:"50vh",overflowY:"auto"},onClick:i},disabled:n,children:a.jsx(je,{type:"text",size:"small",disabled:n,style:{minWidth:146,padding:"0 12px",height:36,borderRadius:18},title:e?`${e.provider}/${e.model}`:xt.t("chat.model.selectModel"),children:a.jsxs(Ue,{size:4,children:[a.jsx("span",{style:{maxWidth:150,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13},children:e?`${e.provider}/${e.model}`:xt.t("chat.model.selectModel")}),a.jsx(ms,{style:{fontSize:10}})]})})})})}const CI={copilot:"GitHub Copilot",openai:"OpenAI",anthropic:"Anthropic",gemini:"Google Gemini",bodhi:"Bodhi"},Kk=[{value:"gpt-4o-mini",label:"GPT-4o Mini"},{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4-turbo",label:"GPT-4 Turbo"},{value:"gpt-4-turbo-preview",label:"GPT-4 Turbo Preview"},{value:"gpt-4",label:"GPT-4"},{value:"gpt-3.5-turbo",label:"GPT-3.5 Turbo"}],Vk=[{value:"claude-3-5-sonnet-20241022",label:"Claude 3.5 Sonnet"},{value:"claude-3-5-sonnet-20240620",label:"Claude 3.5 Sonnet (Legacy)"},{value:"claude-3-opus-20240229",label:"Claude 3 Opus"},{value:"claude-3-sonnet-20240229",label:"Claude 3 Sonnet"},{value:"claude-3-haiku-20240307",label:"Claude 3 Haiku"}],Gk=[{value:"gemini-pro",label:"Gemini Pro"},{value:"gemini-pro-vision",label:"Gemini Pro Vision"},{value:"gemini-1.5-pro",label:"Gemini 1.5 Pro"},{value:"gemini-1.5-flash",label:"Gemini 1.5 Flash"}],Jk=[{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4o-mini",label:"GPT-4o Mini"}],Qk=y.lazy(()=>Jt(()=>import("./index-Bcpx4-c6.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),Zk=y.lazy(()=>Jt(()=>import("./index-BfCdANOc.js"),__vite__mapDeps([8,1,2,3,4,5,6,9]),import.meta.url)),eC=y.lazy(()=>Jt(()=>import("./index-oQX-HGAT.js"),__vite__mapDeps([10,1,2,3,5,4,6]),import.meta.url)),tC=y.lazy(()=>Jt(()=>import("./index-BBEDlZ5R.js"),__vite__mapDeps([11,1,2,3]),import.meta.url)),{useToken:nC}=ut,wh="chat-send-message",_h="reference-text",rC="chat-model-options-cache-v1",hy=24*60*60*1e3,sC=["low","medium","high","xhigh","max"],oC=[],py=e=>`${rC}:${e}`,iC=e=>{if(typeof window>"u")return null;try{const t=localStorage.getItem(py(e));if(!t)return null;const n=JSON.parse(t);return!n||!Array.isArray(n.options)||Date.now()-n.timestamp>hy?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string").map(r=>({value:r.value,label:r.label}))}catch{return null}},aC=(e,t)=>{if(!(typeof window>"u"))try{const n={timestamp:Date.now(),options:t};localStorage.setItem(py(e),JSON.stringify(n))}catch{}},lC=async e=>{const t=Hn.getInstance();try{const n=await t.loadModelOptionsCache(e);if(n)return Date.now()-n.timestamp>hy?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string")}catch{}return iC(e)},cC=async(e,t)=>{const n=Hn.getInstance();try{await n.saveModelOptionsCache(e,t,Date.now())}catch{}aC(e,t)},uC=({sessionId:e,onWorkflowDraftChange:t,statusIndicator:n})=>{var cr,io,Cs,Ut;const{t:r}=Ge(),s=y.useRef(null),{token:o}=nC(),i=Ml(),l=Ei(ge=>ge.open),u=ae(ge=>e??ge.currentSessionId),f=ae(ge=>ge.currentSessionId),h=ae(_s(u)),m=y.useMemo(()=>(h==null?void 0:h.messages)||[],[h==null?void 0:h.messages]),b=ae(ge=>ge.addMessage),v=ae(ge=>ge.updateSession),w=ae(Xg(u)),S=ae(Kg(u)),P=ae(Vg(u))||(h==null?void 0:h.isRunning)===!0&&S,T=ae(ge=>ge.markRespondStart),M=ae(ge=>ge.markSettleTimeout),C=ae(Mi(u)),j=ae(ge=>ge.clearPendingQuestion),A=Sd(u),O=fy((cr=h==null?void 0:h.config)==null?void 0:cr.model_ref),F=Wt(ge=>ge.isProviderModelRefEnabled),D=ae(ge=>u?ge.inputStates[u]:void 0),N=ae(ge=>ge.setInputContent),q=ae(ge=>ge.setReferenceText),I=ae(ge=>ge.setInputReasoningEffort),Q=Wt(ge=>ge.currentProvider),G=Wt(ge=>ge.providerConfig),[Z,pe]=y.useState([]),[$,oe]=y.useState(!1),[me,ne]=y.useState(null),[fe,he]=y.useState(!1),ue=(D==null?void 0:D.content)||"",de=(D==null?void 0:D.referenceText)||null,Ce=y.useMemo(()=>{var ge,ct;return Yk(G,O,((ct=(ge=h==null?void 0:h.config)==null?void 0:ge.model_ref)==null?void 0:ct.provider)??Q)},[O,(Cs=(io=h==null?void 0:h.config)==null?void 0:io.model_ref)==null?void 0:Cs.provider,G,Q]),ze=y.useMemo(()=>u?Hg(u):void 0,[u]),Le=((Ut=h==null?void 0:h.config)==null?void 0:Ut.reasoningEffort)??(D==null?void 0:D.reasoningEffort)??ze??Ce??"medium",lt=y.useCallback(ge=>{u&&N(u,ge)},[u,N]),L=y.useCallback(ge=>{u&&q(u,ge)},[u,q]),le=y.useCallback(async ge=>{if(u&&(I(u,ge),!!h))try{await Hs.patchSession(u,{reasoning_effort:ge}),v(u,{config:{...h.config,reasoningEffort:ge}})}catch(ct){console.warn("[InputContainer] Failed to persist reasoning effort:",ct)}},[h,u,I,v]),{sendMessage:Ae,retryLastTurn:Oe,cancel:He}=$k({sessionId:u,addMessage:b,updateSession:v});y.useEffect(()=>{if(typeof window>"u")return;const ge=Bt=>Bt?u===Bt:u!==null&&u===f,ct=Bt=>{const vt=Bt;if(!vt.detail||typeof vt.detail.text!="string")return;const Mn=typeof vt.detail.sessionId=="string"?vt.detail.sessionId:null;if(!ge(Mn))return;const an=vt.detail.text.trim();an&&(vt.detail.handled=!0,L(an),requestAnimationFrame(()=>{var Dn;(Dn=s.current)==null||Dn.focus()}))},qt=Bt=>{var an;const vt=Bt,Mn=typeof((an=vt.detail)==null?void 0:an.sessionId)=="string"?vt.detail.sessionId:null;ge(Mn)&&(vt.detail&&(vt.detail.handled=!0),requestAnimationFrame(()=>{var Dn;(Dn=s.current)==null||Dn.focus()}))};return window.addEventListener(_h,ct),window.addEventListener(Su,qt),()=>{window.removeEventListener(_h,ct),window.removeEventListener(Su,qt)}},[f,u,L]);const{message:dt}=Fn.useApp(),pt=!1,$t=!1,Qt=oC,rn=void 0,{recordEntry:_n,navigate:At,acknowledgeManualInput:Xt}=Lk(u),{attachments:Kt,setAttachments:gn,handleAttachmentsAdded:On,handleAttachmentRemove:En,handleClearAttachments:It}=zk(),_t=Fk({setContent:lt,onWorkflowDraftChange:t,acknowledgeManualInput:Xt,currentSessionId:u,textAreaRef:s,content:ue}),bt=Bk({content:ue,setContent:lt,currentSessionId:u,currentChat:h,updateSession:v,messageApi:dt}),{setShowFileSelector:ye}=bt;y.useEffect(()=>{_t.showCommandSelector&&ye(!1)},[_t.showCommandSelector,ye]);const{handleSubmit:We}=Wk({attachments:Kt,referenceText:de,selectedWorkflow:_t.selectedCommand,matchesWorkflowToken:_t.matchesCommandToken,fileReferences:bt.fileReferences,reasoningEffort:Le,sendMessage:Ae,recordEntry:_n,clearWorkflowDraft:_t.clearCommandDraft,setContent:lt,setReferenceText:L,setAttachments:gn,setFileReferences:bt.setFileReferences}),Te=C,qe=!!Te,Lt=(Te==null?void 0:Te.options)||[],$n=(Te==null?void 0:Te.allowCustom)??!0,Vt=y.useCallback(ge=>ge?!!Mi(ge)(ae.getState()):!1,[]),$e=y.useCallback(async ge=>{const ct=ge.trim();if(!ct||!u)return;const Bt=Mi(u)(ae.getState());if(Bt&&!Bt.allowCustom&&Bt.options.length>0&&!Bt.options.includes(ct)){dt.warning(r("components.questionDialog.selectOptionWarning"));return}T(u,(Te==null?void 0:Te.toolCallId)??null),await new Promise(vt=>setTimeout(vt,0));try{const vt={response:ct,reasoning_effort:Le};F()&&O&&(vt.model_ref=O,vt.provider=O.provider);const Mn=await St.post(`respond/${u}`,vt);dt.success(r("components.questionDialog.responseSubmittedContinue")),lt(""),j(u),typeof window<"u"&&window.dispatchEvent(new CustomEvent(xu,{detail:{sessionId:u}}));const an=Mn==null?void 0:Mn.auto_resume_status;(!an||!["started","already_running"].includes(an))&&M(u)}catch(vt){console.error("[InputContainer] Failed to submit respond:",vt),dt.error(vt instanceof Error?vt.message:r("components.questionDialog.submitFailed")),M(u)}},[u,Le,O,F,dt,lt,j,T,M,Te==null?void 0:Te.toolCallId,r]),fn=y.useCallback(async(ge,ct)=>{if(Vt(u)){await $e(ge);return}await We(ge,ct)},[u,Vt,$e,We]),B=y.useCallback(async(ge,ct)=>{await fn(ge,ct)},[fn]);y.useEffect(()=>{if(typeof window>"u")return;const ge=ct=>{var an,Dn,Xr;const qt=ct;if(!qt.detail)return;const Bt=typeof qt.detail.sessionId=="string"?qt.detail.sessionId:null;if(!(Bt?u===Bt:u!==null&&u===f))return;qt.detail.handled=!0;const Mn=(an=qt.detail)==null?void 0:an.content;if(typeof Mn!="string"||Mn.trim().length===0){(Xr=(Dn=qt.detail)==null?void 0:Dn.reject)==null||Xr.call(Dn,new Error("External send message content is empty"));return}fn(Mn,void 0).then(()=>{var xr,ot;(ot=(xr=qt.detail)==null?void 0:xr.resolve)==null||ot.call(xr)}).catch(xr=>{var ot,ao;(ao=(ot=qt.detail)==null?void 0:ot.reject)==null||ao.call(ot,xr)})};return window.addEventListener(wh,ge),()=>{window.removeEventListener(wh,ge)}},[f,u,fn]);const{retryLastMessage:ie,handleHistoryNavigate:H}=Uk({currentSessionId:u,currentChat:h,currentMessages:m,reasoningEffort:Le,retryLastTurn:Oe,navigate:At}),_e=y.useCallback(()=>L(null),[L]),Ie=y.useMemo(()=>G.providers[Q],[G,Q]),Fe=y.useMemo(()=>!Ie||typeof Ie!="object"?!1:Q==="copilot"?Object.keys(Ie).length>0:"api_key"in Ie?typeof Ie.api_key=="string"&&Ie.api_key.trim().length>0:!1,[Q,Ie]),et=y.useCallback(()=>Fe?!1:(l("chat"),dt.warning(r("chat.view.providerNotConfigured")),!0),[Fe,dt,l,r]);y.useEffect(()=>{(async()=>{const ge=await lC(Q);pe(ge??[]),ne(null)})()},[Q]);const Xe=y.useCallback(ge=>ge instanceof Error&&ge.message.trim()?ge.message:r("chat.view.unknownError"),[r]),kt=y.useMemo(()=>({openai:[...Kk],anthropic:[...Vk],gemini:[...Gk],copilot:[...Jk],bodhi:[]})[Q]||[],[Q]),Ct=y.useMemo(()=>{const ct=[...Z.length>0?Z:kt];return A&&!ct.some(qt=>qt.value===A)&&ct.unshift({value:A,label:A}),ct},[Z,kt,A]),Tt=y.useCallback(async(ge,ct)=>{if(!(!(ct!=null&&ct.force)&&Z.length>0))try{oe(!0),ne(null);const Bt=(ge==="copilot"?await Og.getModels():kt).map(vt=>({value:typeof vt=="string"?vt:vt.value,label:typeof vt=="string"?vt:vt.label}));pe(Bt),await cC(ge,Bt)}catch(qt){ne(Xe(qt))}finally{oe(!1)}},[kt,Xe,Z.length]),Ke=y.useCallback(ge=>{ge&&(et()||$||Z.length>0||Tt(Q))},[Q,Tt,$,Z.length,et]),Nt=y.useCallback(async ge=>{var ct,qt,Bt;if(!(!ge||ge===A)&&!fe)try{if(et())return;if(he(!0),!u||!h){u&&v(u,{config:{systemPromptId:((ct=h==null?void 0:h.config)==null?void 0:ct.systemPromptId)||"default",baseSystemPrompt:((qt=h==null?void 0:h.config)==null?void 0:qt.baseSystemPrompt)||"",lastUsedEnhancedPrompt:((Bt=h==null?void 0:h.config)==null?void 0:Bt.lastUsedEnhancedPrompt)??null,...(h==null?void 0:h.config)||{},model:ge}});return}await Hs.patchSession(u,{model:ge}),v(u,{config:{...h.config,model:ge}}),dt.success(r("settings.providerTab.modelUpdated"))}catch(vt){dt.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xe(vt)}`)}finally{he(!1)}},[A,h,Xe,fe,dt,et,u,r,v]),Se=y.useCallback(async ge=>{if(!u||!(h!=null&&h.config)){Wt.getState().setSelectedModelRef(ge);return}if(!fe)try{he(!0),await Hs.patchSession(u,{model:ge.model,model_ref:ge,provider:ge.provider}),Wt.getState().setSelectedModelRef(ge),v(u,{config:{...h.config,model:ge.model,model_ref:ge}}),dt.success(r("settings.providerTab.modelUpdated"))}catch(ct){dt.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xe(ct)}`)}finally{he(!1)}},[h==null?void 0:h.config,Xe,fe,dt,u,r,v]),De=y.useMemo(()=>qk({referenceText:de,isToolSpecificMode:pt,isRestrictConversation:$t,allowedTools:Qt,autoToolPrefix:rn,t:r}),[de,pt,$t,Qt,rn,r]),Ve=qe&&$n?r("chat.respond.customAnswerPlaceholder"):qe?r("components.questionDialog.selectOptionWarning"):De,Ot=qe?r("chat.respond.submitToolResult","Submit tool result"):void 0,Zt=y.useMemo(()=>({low:r("chat.input.reasoning.low"),medium:r("chat.input.reasoning.medium"),high:r("chat.input.reasoning.high"),xhigh:r("chat.input.reasoning.xhigh"),max:r("chat.input.reasoning.max")}),[r]),Qn=y.useMemo(()=>Zt[Le]??Le,[Le,Zt]),Yr=y.useMemo(()=>a.jsx(Xs,{trigger:["click"],placement:"topLeft",disabled:!A||S,menu:{selectable:!0,selectedKeys:[Le],items:sC.map(ge=>({key:ge,label:Zt[ge]})),onClick:({key:ge})=>{le(ge)}},children:a.jsx(je,{type:"text",size:"small",disabled:!A||w,style:{minWidth:i?74:88,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:Le==="medium"?o.colorTextSecondary:o.colorPrimary},title:r("chat.input.reasoningTitle",{label:Qn}),children:a.jsxs(Ue,{size:6,children:[a.jsx(FS,{}),a.jsx("span",{children:Qn}),a.jsx(ms,{style:{fontSize:10}})]})})}),[A,Qn,S,i,w,Le,Zt,le,r,o.colorPrimary,o.colorTextSecondary]),oo=A||r(Fe?"chat.model.selectModel":"chat.model.configureProvider"),Zn=y.useMemo(()=>Ct.length>0?Ct.map(ge=>({key:ge.value,label:ge.label})):[{key:"__no_models__",label:me||r("chat.model.noModelsAvailable"),disabled:!0}],[Ct,me,r]),lr=y.useMemo(()=>a.jsx(je,{type:"text",size:"small",disabled:w||fe,onClick:()=>{Fe||et()},style:{minWidth:i?112:146,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:me?o.colorError:o.colorTextSecondary},title:oo,children:a.jsxs(Ue,{size:6,children:[$?a.jsx(ps,{}):a.jsx(hg,{}),a.jsx("span",{style:{maxWidth:i?84:128,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:oo}),a.jsx(ms,{style:{fontSize:10}})]})}),[w,fe,Fe,et,i,me,o.colorError,o.colorTextSecondary,oo,$]),er=y.useMemo(()=>F()?a.jsx(Xk,{value:O,onChange:Se,disabled:w||fe}):Fe?a.jsx(Xs,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:A?[A]:[],items:Zn,style:{maxHeight:"50vh",overflowY:"auto"},onClick:({key:ge})=>{ge!=="__no_models__"&&Nt(String(ge))}},onOpenChange:Ke,disabled:S||fe,children:lr}):lr,[F,O,Se,w,fe,Fe,A,Zn,Nt,Ke,S,lr]),ks=y.useMemo(()=>a.jsxs(Ue,{size:0,wrap:!0,children:[er,Yr]}),[er,Yr]),Wl=y.useCallback(ge=>({isValid:!0}),[$t,rn,r]),tr=y.useMemo(()=>m.some(ge=>ge.role==="user"),[m]),ta=y.useMemo(()=>({isStreaming:w,isInputLocked:S,canCancel:P,hasMessages:tr,allowRetry:!0,onRetry:ie,onCancel:He,onHistoryNavigate:H}),[w,S,P,tr,ie,He,H]);return a.jsxs("div",{style:{padding:`${o.paddingXXS}px ${o.paddingXS}px`,background:"transparent",borderTop:"none",boxShadow:"none",width:"100%",position:"relative",overflow:"visible"},children:[!A&&a.jsx(ir,{type:"warning",showIcon:!0,icon:a.jsx(Cl,{}),message:r(Fe?"chat.model.noModelSelected":"chat.model.providerNotConfigured"),description:r(Fe?"chat.model.selectModelHint":"chat.model.configureProviderHint"),action:Fe?void 0:a.jsx(Ue,{children:a.jsx("a",{onClick:()=>l("chat"),children:r("chat.model.openSettings")})}),style:{marginBottom:o.marginSM}}),pt,de&&a.jsx(vk,{text:de,onClose:_e}),Kt.length>0&&a.jsx(y.Suspense,{fallback:a.jsx(Vs,{size:"small"}),children:a.jsx(Qk,{files:Kt,onRemove:En,onClear:It})}),qe&&Lt.length>0&&a.jsx("div",{style:{marginBottom:o.marginSM},children:a.jsx(Ue,{wrap:!0,size:[8,8],children:Lt.map(ge=>a.jsx(je,{size:"small",onClick:()=>{$e(ge)},disabled:S,children:ge},ge))})}),a.jsx(yk,{value:ue,onChange:_t.handleInputChange,onSubmit:B,placeholder:Ve,allowImages:!0,disabled:!A||qe&&!$n&&Lt.length>0,statusIndicator:n,submitButtonLabel:Ot,isWorkflowSelectorVisible:_t.showCommandSelector,textAreaRef:s,validateMessage:Wl,onAttachmentsAdded:On,onWorkflowCommandChange:_t.handleCommandChange,onFileReferenceChange:bt.handleFileReferenceChange,onFileReferenceButtonClick:bt.handleFileReferenceButtonClick,leftControlsExtra:ks,interaction:ta}),a.jsx(y.Suspense,{fallback:null,children:a.jsx(Zk,{visible:_t.showCommandSelector,onSelect:_t.handleCommandSelect,onCancel:_t.handleCommandSelectorCancel,onAutoComplete:_t.handleAutoComplete,searchText:_t.commandSearchText})}),bt.showFileSelector&&a.jsx(y.Suspense,{fallback:a.jsx(Vs,{size:"small"}),children:a.jsx(tC,{visible:bt.showFileSelector,files:bt.workspaceFiles,searchText:bt.fileSearchText,loading:bt.isWorkspaceLoading,error:bt.workspaceError,onSelect:bt.handleFileReferenceSelect,onCancel:bt.handleFileSelectorCancel,onChangeWorkspace:()=>{bt.setWorkspacePathInput((h==null?void 0:h.config.workspacePath)??""),bt.setIsWorkspaceModalVisible(!0)}})}),a.jsx(y.Suspense,{fallback:null,children:a.jsx(eC,{open:bt.isWorkspaceModalVisible,initialPath:bt.workspacePathInput,loading:bt.isSavingWorkspace,onSubmit:bt.handleWorkspaceModalSubmit,onCancel:bt.handleWorkspaceModalCancel})})]})},dC={maxLines:8,maxCharacters:500},Nr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ar=e=>typeof e=="string"?e:void 0,rs=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,kh=e=>typeof e=="boolean"?e:void 0,xd=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);return Nr(n)?n:null}catch{return null}},my=e=>/\\u[0-9a-fA-F]{4}|\\n|\\t|\\r/.test(e)?e.replace(/\\u([0-9a-fA-F]{4})/g,(t,n)=>String.fromCharCode(parseInt(n,16))).replace(/\\n/g,`
|
|
113
|
-
`).replace(/\\t/g," ").replace(/\\r/g,"\r"):e,br=e=>Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>my(t).trim()).filter(Boolean):[],mn=e=>{if(typeof e!="string")return;const t=my(e).trim();return t.length>0?t:void 0},
|
|
112
|
+
`);if(l(E),d(""),u(),s.size>0){const A=Array.from(E.matchAll(/@([^\\s]+)/g));if(A.length>0){const O=[];for(const D of A){const F=D[1],N=s.get(F);N&&O.push(N)}if(O.length>0){const D=JSON.stringify({type:"file_reference",paths:O.map(F=>F.path),display_text:E});await i(D,S,o,C)}else await i(E,S,o,C)}else await i(E,S,o,C)}else await i(E,S,o,C);h(null),m([]),b(new Map)},[e,u,s,r,l,o,n,i,m,d,b,h,t])}),qk=({currentSessionId:e,currentChat:t,currentMessages:n,reasoningEffort:r,retryLastTurn:s,navigate:o})=>{const i=y.useCallback(async(u="regenerate")=>{if(!e||!t)return;const d=[...n];d.length===0||[...d].reverse().findIndex(m=>m.role==="user")===-1||await s(r,u)},[t,e,n,r,s]),l=y.useCallback((u,d)=>{const h=o(u,d);return h.applied?h.value:null},[o]);return{retryLastMessage:i,handleHistoryNavigate:l}},Hk=({referenceText:e,isToolSpecificMode:t,isRestrictConversation:n,allowedTools:r,autoToolPrefix:s,t:o})=>o(e?"chat.input.placeholderWithReference":"chat.input.placeholderWithWorkflows"),Yk=(e,t)=>{var n,r,s,o,i;switch(t==null?void 0:t.trim()){case"openai":return(n=e.providers.openai)==null?void 0:n.reasoning_effort;case"anthropic":return(r=e.providers.anthropic)==null?void 0:r.reasoning_effort;case"gemini":return(s=e.providers.gemini)==null?void 0:s.reasoning_effort;case"copilot":return(o=e.providers.copilot)==null?void 0:o.reasoning_effort;case"bodhi":return(i=e.providers.bodhi)==null?void 0:i.reasoning_effort;default:return}},Xk=(e,t,n)=>{var s,o,i,l,u;const r=((s=t==null?void 0:t.provider)==null?void 0:s.trim())||((l=(i=(o=e.defaults)==null?void 0:o.chat)==null?void 0:i.provider)==null?void 0:l.trim())||(n==null?void 0:n.trim())||((u=e.provider)==null?void 0:u.trim());return Yk(e,r)};function Kk({value:e,onChange:t,disabled:n}){const r=Wt(l=>l.catalog);y.useEffect(()=>{r||Wt.getState().loadCatalog()},[r]);const s=y.useMemo(()=>{if(!(r!=null&&r.models))return[];const l={};for(const h of r.models){const m=h.reference.provider;l[m]||(l[m]={display:h.provider_display_name,models:[]}),l[m].models.push(h)}const u=[];return Object.keys(l).forEach((h,m)=>{const b=l[h];m>0&&u.push({type:"divider"}),u.push({type:"group",label:b.display,children:b.models.map(v=>({key:`${v.reference.provider}/${v.reference.model}`,label:a.jsxs(Ue,{size:4,children:[a.jsx("span",{children:v.display_name}),v.capabilities.supports_vision&&a.jsx(Je,{color:"blue",style:{fontSize:10,lineHeight:"16px",padding:"0 3px"},children:"Vision"})]})}))})}),u},[r]),o=e?`${e.provider}/${e.model}`:void 0,i=y.useCallback(l=>{const[u,...d]=l.key.split("/"),h=d.join("/");u&&h&&t({provider:u,model:h})},[t]);return a.jsx(Ue,{size:4,"data-tour-id":"model-picker",children:a.jsx(Ks,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:o?[o]:[],items:s,style:{maxHeight:"50vh",overflowY:"auto"},onClick:i},disabled:n,children:a.jsx(je,{type:"text",size:"small",disabled:n,style:{minWidth:146,padding:"0 12px",height:36,borderRadius:18},title:e?`${e.provider}/${e.model}`:xt.t("chat.model.selectModel"),children:a.jsxs(Ue,{size:4,children:[a.jsx("span",{style:{maxWidth:150,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13},children:e?`${e.provider}/${e.model}`:xt.t("chat.model.selectModel")}),a.jsx(gs,{style:{fontSize:10}})]})})})})}const EI={copilot:"GitHub Copilot",openai:"OpenAI",anthropic:"Anthropic",gemini:"Google Gemini",bodhi:"Bodhi"},Vk=[{value:"gpt-4o-mini",label:"GPT-4o Mini"},{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4-turbo",label:"GPT-4 Turbo"},{value:"gpt-4-turbo-preview",label:"GPT-4 Turbo Preview"},{value:"gpt-4",label:"GPT-4"},{value:"gpt-3.5-turbo",label:"GPT-3.5 Turbo"}],Gk=[{value:"claude-3-5-sonnet-20241022",label:"Claude 3.5 Sonnet"},{value:"claude-3-5-sonnet-20240620",label:"Claude 3.5 Sonnet (Legacy)"},{value:"claude-3-opus-20240229",label:"Claude 3 Opus"},{value:"claude-3-sonnet-20240229",label:"Claude 3 Sonnet"},{value:"claude-3-haiku-20240307",label:"Claude 3 Haiku"}],Jk=[{value:"gemini-pro",label:"Gemini Pro"},{value:"gemini-pro-vision",label:"Gemini Pro Vision"},{value:"gemini-1.5-pro",label:"Gemini 1.5 Pro"},{value:"gemini-1.5-flash",label:"Gemini 1.5 Flash"}],Qk=[{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4o-mini",label:"GPT-4o Mini"}],Zk=y.lazy(()=>Jt(()=>import("./index-Bcpx4-c6.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),eC=y.lazy(()=>Jt(()=>import("./index-C5hCIJZL.js"),__vite__mapDeps([8,1,2,3,4,5,6,9]),import.meta.url)),tC=y.lazy(()=>Jt(()=>import("./index-DtQ-9WIb.js"),__vite__mapDeps([10,1,2,3,5,4,6]),import.meta.url)),nC=y.lazy(()=>Jt(()=>import("./index-BBEDlZ5R.js"),__vite__mapDeps([11,1,2,3]),import.meta.url)),{useToken:rC}=ut,wh="chat-send-message",_h="reference-text",sC="chat-model-options-cache-v1",hy=24*60*60*1e3,oC=["low","medium","high","xhigh","max"],iC=[],py=e=>`${sC}:${e}`,aC=e=>{if(typeof window>"u")return null;try{const t=localStorage.getItem(py(e));if(!t)return null;const n=JSON.parse(t);return!n||!Array.isArray(n.options)||Date.now()-n.timestamp>hy?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string").map(r=>({value:r.value,label:r.label}))}catch{return null}},lC=(e,t)=>{if(!(typeof window>"u"))try{const n={timestamp:Date.now(),options:t};localStorage.setItem(py(e),JSON.stringify(n))}catch{}},cC=async e=>{const t=Hn.getInstance();try{const n=await t.loadModelOptionsCache(e);if(n)return Date.now()-n.timestamp>hy?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string")}catch{}return aC(e)},uC=async(e,t)=>{const n=Hn.getInstance();try{await n.saveModelOptionsCache(e,t,Date.now())}catch{}lC(e,t)},dC=({sessionId:e,onWorkflowDraftChange:t,statusIndicator:n})=>{var cr,ao,Ts,Ut;const{t:r}=Ge(),s=y.useRef(null),{token:o}=rC(),i=jl(),l=Ei(ge=>ge.open),u=ae(ge=>e??ge.currentSessionId),d=ae(ge=>ge.currentSessionId),h=ae(ks(u)),m=y.useMemo(()=>(h==null?void 0:h.messages)||[],[h==null?void 0:h.messages]),b=ae(ge=>ge.addMessage),v=ae(ge=>ge.updateSession),w=ae(Xg(u)),S=ae(Kg(u)),P=ae(Vg(u))||(h==null?void 0:h.isRunning)===!0&&S,T=ae(ge=>ge.markRespondStart),j=ae(ge=>ge.markSettleTimeout),C=ae(ji(u)),E=ae(ge=>ge.clearPendingQuestion),A=Sd(u),O=fy((cr=h==null?void 0:h.config)==null?void 0:cr.model_ref),D=Wt(ge=>ge.isProviderModelRefEnabled),F=ae(ge=>u?ge.inputStates[u]:void 0),N=ae(ge=>ge.setInputContent),q=ae(ge=>ge.setReferenceText),I=ae(ge=>ge.setInputReasoningEffort),Q=Wt(ge=>ge.currentProvider),G=Wt(ge=>ge.providerConfig),[Z,pe]=y.useState([]),[$,oe]=y.useState(!1),[me,ne]=y.useState(null),[he,fe]=y.useState(!1),ue=(F==null?void 0:F.content)||"",de=(F==null?void 0:F.referenceText)||null,Ce=y.useMemo(()=>{var ge,ct;return Xk(G,O,((ct=(ge=h==null?void 0:h.config)==null?void 0:ge.model_ref)==null?void 0:ct.provider)??Q)},[O,(Ts=(ao=h==null?void 0:h.config)==null?void 0:ao.model_ref)==null?void 0:Ts.provider,G,Q]),ze=y.useMemo(()=>u?Hg(u):void 0,[u]),Le=((Ut=h==null?void 0:h.config)==null?void 0:Ut.reasoningEffort)??(F==null?void 0:F.reasoningEffort)??ze??Ce??"medium",lt=y.useCallback(ge=>{u&&N(u,ge)},[u,N]),L=y.useCallback(ge=>{u&&q(u,ge)},[u,q]),le=y.useCallback(async ge=>{if(u&&(I(u,ge),!!h))try{await Ys.patchSession(u,{reasoning_effort:ge}),v(u,{config:{...h.config,reasoningEffort:ge}})}catch(ct){console.warn("[InputContainer] Failed to persist reasoning effort:",ct)}},[h,u,I,v]),{sendMessage:Ae,retryLastTurn:Ie,cancel:He}=Lk({sessionId:u,addMessage:b,updateSession:v});y.useEffect(()=>{if(typeof window>"u")return;const ge=Bt=>Bt?u===Bt:u!==null&&u===d,ct=Bt=>{const vt=Bt;if(!vt.detail||typeof vt.detail.text!="string")return;const En=typeof vt.detail.sessionId=="string"?vt.detail.sessionId:null;if(!ge(En))return;const an=vt.detail.text.trim();an&&(vt.detail.handled=!0,L(an),requestAnimationFrame(()=>{var Dn;(Dn=s.current)==null||Dn.focus()}))},qt=Bt=>{var an;const vt=Bt,En=typeof((an=vt.detail)==null?void 0:an.sessionId)=="string"?vt.detail.sessionId:null;ge(En)&&(vt.detail&&(vt.detail.handled=!0),requestAnimationFrame(()=>{var Dn;(Dn=s.current)==null||Dn.focus()}))};return window.addEventListener(_h,ct),window.addEventListener(xu,qt),()=>{window.removeEventListener(_h,ct),window.removeEventListener(xu,qt)}},[d,u,L]);const{message:dt}=Fn.useApp(),pt=!1,$t=!1,Qt=iC,rn=void 0,{recordEntry:_n,navigate:At,acknowledgeManualInput:Xt}=Fk(u),{attachments:Kt,setAttachments:gn,handleAttachmentsAdded:On,handleAttachmentRemove:Mn,handleClearAttachments:It}=Wk(),_t=Dk({setContent:lt,onWorkflowDraftChange:t,acknowledgeManualInput:Xt,currentSessionId:u,textAreaRef:s,content:ue}),bt=zk({content:ue,setContent:lt,currentSessionId:u,currentChat:h,updateSession:v,messageApi:dt}),{setShowFileSelector:ye}=bt;y.useEffect(()=>{_t.showCommandSelector&&ye(!1)},[_t.showCommandSelector,ye]);const{handleSubmit:We}=Uk({attachments:Kt,referenceText:de,selectedWorkflow:_t.selectedCommand,matchesWorkflowToken:_t.matchesCommandToken,fileReferences:bt.fileReferences,reasoningEffort:Le,sendMessage:Ae,recordEntry:_n,clearWorkflowDraft:_t.clearCommandDraft,setContent:lt,setReferenceText:L,setAttachments:gn,setFileReferences:bt.setFileReferences}),Te=C,qe=!!Te,Lt=(Te==null?void 0:Te.options)||[],$n=(Te==null?void 0:Te.allowCustom)??!0,Vt=y.useCallback(ge=>ge?!!ji(ge)(ae.getState()):!1,[]),$e=y.useCallback(async ge=>{const ct=ge.trim();if(!ct||!u)return;const Bt=ji(u)(ae.getState());if(Bt&&!Bt.allowCustom&&Bt.options.length>0&&!Bt.options.includes(ct)){dt.warning(r("components.questionDialog.selectOptionWarning"));return}T(u,(Te==null?void 0:Te.toolCallId)??null),await new Promise(vt=>setTimeout(vt,0));try{const vt={response:ct,reasoning_effort:Le};D()&&O&&(vt.model_ref=O,vt.provider=O.provider);const En=await St.post(`respond/${u}`,vt);dt.success(r("components.questionDialog.responseSubmittedContinue")),lt(""),E(u),typeof window<"u"&&window.dispatchEvent(new CustomEvent(wu,{detail:{sessionId:u}}));const an=En==null?void 0:En.auto_resume_status;(!an||!["started","already_running"].includes(an))&&j(u)}catch(vt){console.error("[InputContainer] Failed to submit respond:",vt),dt.error(vt instanceof Error?vt.message:r("components.questionDialog.submitFailed")),j(u)}},[u,Le,O,D,dt,lt,E,T,j,Te==null?void 0:Te.toolCallId,r]),fn=y.useCallback(async(ge,ct)=>{if(Vt(u)){await $e(ge);return}await We(ge,ct)},[u,Vt,$e,We]),B=y.useCallback(async(ge,ct)=>{await fn(ge,ct)},[fn]);y.useEffect(()=>{if(typeof window>"u")return;const ge=ct=>{var an,Dn,Kr;const qt=ct;if(!qt.detail)return;const Bt=typeof qt.detail.sessionId=="string"?qt.detail.sessionId:null;if(!(Bt?u===Bt:u!==null&&u===d))return;qt.detail.handled=!0;const En=(an=qt.detail)==null?void 0:an.content;if(typeof En!="string"||En.trim().length===0){(Kr=(Dn=qt.detail)==null?void 0:Dn.reject)==null||Kr.call(Dn,new Error("External send message content is empty"));return}fn(En,void 0).then(()=>{var xr,ot;(ot=(xr=qt.detail)==null?void 0:xr.resolve)==null||ot.call(xr)}).catch(xr=>{var ot,lo;(lo=(ot=qt.detail)==null?void 0:ot.reject)==null||lo.call(ot,xr)})};return window.addEventListener(wh,ge),()=>{window.removeEventListener(wh,ge)}},[d,u,fn]);const{retryLastMessage:ie,handleHistoryNavigate:H}=qk({currentSessionId:u,currentChat:h,currentMessages:m,reasoningEffort:Le,retryLastTurn:Ie,navigate:At}),_e=y.useCallback(()=>L(null),[L]),Oe=y.useMemo(()=>G.providers[Q],[G,Q]),Fe=y.useMemo(()=>!Oe||typeof Oe!="object"?!1:Q==="copilot"?Object.keys(Oe).length>0:"api_key"in Oe?typeof Oe.api_key=="string"&&Oe.api_key.trim().length>0:!1,[Q,Oe]),et=y.useCallback(()=>Fe?!1:(l("chat"),dt.warning(r("chat.view.providerNotConfigured")),!0),[Fe,dt,l,r]);y.useEffect(()=>{(async()=>{const ge=await cC(Q);pe(ge??[]),ne(null)})()},[Q]);const Xe=y.useCallback(ge=>ge instanceof Error&&ge.message.trim()?ge.message:r("chat.view.unknownError"),[r]),kt=y.useMemo(()=>({openai:[...Vk],anthropic:[...Gk],gemini:[...Jk],copilot:[...Qk],bodhi:[]})[Q]||[],[Q]),Ct=y.useMemo(()=>{const ct=[...Z.length>0?Z:kt];return A&&!ct.some(qt=>qt.value===A)&&ct.unshift({value:A,label:A}),ct},[Z,kt,A]),Tt=y.useCallback(async(ge,ct)=>{if(!(!(ct!=null&&ct.force)&&Z.length>0))try{oe(!0),ne(null);const Bt=(ge==="copilot"?await Og.getModels():kt).map(vt=>({value:typeof vt=="string"?vt:vt.value,label:typeof vt=="string"?vt:vt.label}));pe(Bt),await uC(ge,Bt)}catch(qt){ne(Xe(qt))}finally{oe(!1)}},[kt,Xe,Z.length]),Ke=y.useCallback(ge=>{ge&&(et()||$||Z.length>0||Tt(Q))},[Q,Tt,$,Z.length,et]),Nt=y.useCallback(async ge=>{var ct,qt,Bt;if(!(!ge||ge===A)&&!he)try{if(et())return;if(fe(!0),!u||!h){u&&v(u,{config:{systemPromptId:((ct=h==null?void 0:h.config)==null?void 0:ct.systemPromptId)||"default",baseSystemPrompt:((qt=h==null?void 0:h.config)==null?void 0:qt.baseSystemPrompt)||"",lastUsedEnhancedPrompt:((Bt=h==null?void 0:h.config)==null?void 0:Bt.lastUsedEnhancedPrompt)??null,...(h==null?void 0:h.config)||{},model:ge}});return}await Ys.patchSession(u,{model:ge}),v(u,{config:{...h.config,model:ge}}),dt.success(r("settings.providerTab.modelUpdated"))}catch(vt){dt.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xe(vt)}`)}finally{fe(!1)}},[A,h,Xe,he,dt,et,u,r,v]),Se=y.useCallback(async ge=>{if(!u||!(h!=null&&h.config)){Wt.getState().setSelectedModelRef(ge);return}if(!he)try{fe(!0),await Ys.patchSession(u,{model:ge.model,model_ref:ge,provider:ge.provider}),Wt.getState().setSelectedModelRef(ge),v(u,{config:{...h.config,model:ge.model,model_ref:ge}}),dt.success(r("settings.providerTab.modelUpdated"))}catch(ct){dt.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xe(ct)}`)}finally{fe(!1)}},[h==null?void 0:h.config,Xe,he,dt,u,r,v]),De=y.useMemo(()=>Hk({referenceText:de,isToolSpecificMode:pt,isRestrictConversation:$t,allowedTools:Qt,autoToolPrefix:rn,t:r}),[de,pt,$t,Qt,rn,r]),Ve=qe&&$n?r("chat.respond.customAnswerPlaceholder"):qe?r("components.questionDialog.selectOptionWarning"):De,Ot=qe?r("chat.respond.submitToolResult","Submit tool result"):void 0,Zt=y.useMemo(()=>({low:r("chat.input.reasoning.low"),medium:r("chat.input.reasoning.medium"),high:r("chat.input.reasoning.high"),xhigh:r("chat.input.reasoning.xhigh"),max:r("chat.input.reasoning.max")}),[r]),Qn=y.useMemo(()=>Zt[Le]??Le,[Le,Zt]),Xr=y.useMemo(()=>a.jsx(Ks,{trigger:["click"],placement:"topLeft",disabled:!A||S,menu:{selectable:!0,selectedKeys:[Le],items:oC.map(ge=>({key:ge,label:Zt[ge]})),onClick:({key:ge})=>{le(ge)}},children:a.jsx(je,{type:"text",size:"small",disabled:!A||w,style:{minWidth:i?74:88,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:Le==="medium"?o.colorTextSecondary:o.colorPrimary},title:r("chat.input.reasoningTitle",{label:Qn}),children:a.jsxs(Ue,{size:6,children:[a.jsx(DS,{}),a.jsx("span",{children:Qn}),a.jsx(gs,{style:{fontSize:10}})]})})}),[A,Qn,S,i,w,Le,Zt,le,r,o.colorPrimary,o.colorTextSecondary]),io=A||r(Fe?"chat.model.selectModel":"chat.model.configureProvider"),Zn=y.useMemo(()=>Ct.length>0?Ct.map(ge=>({key:ge.value,label:ge.label})):[{key:"__no_models__",label:me||r("chat.model.noModelsAvailable"),disabled:!0}],[Ct,me,r]),lr=y.useMemo(()=>a.jsx(je,{type:"text",size:"small",disabled:w||he,onClick:()=>{Fe||et()},style:{minWidth:i?112:146,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:me?o.colorError:o.colorTextSecondary},title:io,children:a.jsxs(Ue,{size:6,children:[$?a.jsx(ms,{}):a.jsx(hg,{}),a.jsx("span",{style:{maxWidth:i?84:128,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:io}),a.jsx(gs,{style:{fontSize:10}})]})}),[w,he,Fe,et,i,me,o.colorError,o.colorTextSecondary,io,$]),er=y.useMemo(()=>D()?a.jsx(Kk,{value:O,onChange:Se,disabled:w||he}):Fe?a.jsx(Ks,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:A?[A]:[],items:Zn,style:{maxHeight:"50vh",overflowY:"auto"},onClick:({key:ge})=>{ge!=="__no_models__"&&Nt(String(ge))}},onOpenChange:Ke,disabled:S||he,children:lr}):lr,[D,O,Se,w,he,Fe,A,Zn,Nt,Ke,S,lr]),Cs=y.useMemo(()=>a.jsxs(Ue,{size:0,wrap:!0,children:[er,Xr]}),[er,Xr]),Ul=y.useCallback(ge=>({isValid:!0}),[$t,rn,r]),tr=y.useMemo(()=>m.some(ge=>ge.role==="user"),[m]),na=y.useMemo(()=>({isStreaming:w,isInputLocked:S,canCancel:P,hasMessages:tr,allowRetry:!0,onRetry:ie,onCancel:He,onHistoryNavigate:H}),[w,S,P,tr,ie,He,H]);return a.jsxs("div",{style:{padding:`${o.paddingXXS}px ${o.paddingXS}px`,background:"transparent",borderTop:"none",boxShadow:"none",width:"100%",position:"relative",overflow:"visible"},children:[!A&&a.jsx(ir,{type:"warning",showIcon:!0,icon:a.jsx(Tl,{}),message:r(Fe?"chat.model.noModelSelected":"chat.model.providerNotConfigured"),description:r(Fe?"chat.model.selectModelHint":"chat.model.configureProviderHint"),action:Fe?void 0:a.jsx(Ue,{children:a.jsx("a",{onClick:()=>l("chat"),children:r("chat.model.openSettings")})}),style:{marginBottom:o.marginSM}}),pt,de&&a.jsx(Sk,{text:de,onClose:_e}),Kt.length>0&&a.jsx(y.Suspense,{fallback:a.jsx(Gs,{size:"small"}),children:a.jsx(Zk,{files:Kt,onRemove:Mn,onClear:It})}),qe&&Lt.length>0&&a.jsx("div",{style:{marginBottom:o.marginSM},children:a.jsx(Ue,{wrap:!0,size:[8,8],children:Lt.map(ge=>a.jsx(je,{size:"small",onClick:()=>{$e(ge)},disabled:S,children:ge},ge))})}),a.jsx(bk,{value:ue,onChange:_t.handleInputChange,onSubmit:B,placeholder:Ve,allowImages:!0,disabled:!A||qe&&!$n&&Lt.length>0,statusIndicator:n,submitButtonLabel:Ot,isWorkflowSelectorVisible:_t.showCommandSelector,textAreaRef:s,validateMessage:Ul,onAttachmentsAdded:On,onWorkflowCommandChange:_t.handleCommandChange,onFileReferenceChange:bt.handleFileReferenceChange,onFileReferenceButtonClick:bt.handleFileReferenceButtonClick,leftControlsExtra:Cs,interaction:na}),a.jsx(y.Suspense,{fallback:null,children:a.jsx(eC,{visible:_t.showCommandSelector,onSelect:_t.handleCommandSelect,onCancel:_t.handleCommandSelectorCancel,onAutoComplete:_t.handleAutoComplete,searchText:_t.commandSearchText})}),bt.showFileSelector&&a.jsx(y.Suspense,{fallback:a.jsx(Gs,{size:"small"}),children:a.jsx(nC,{visible:bt.showFileSelector,files:bt.workspaceFiles,searchText:bt.fileSearchText,loading:bt.isWorkspaceLoading,error:bt.workspaceError,onSelect:bt.handleFileReferenceSelect,onCancel:bt.handleFileSelectorCancel,onChangeWorkspace:()=>{bt.setWorkspacePathInput((h==null?void 0:h.config.workspacePath)??""),bt.setIsWorkspaceModalVisible(!0)}})}),a.jsx(y.Suspense,{fallback:null,children:a.jsx(tC,{open:bt.isWorkspaceModalVisible,initialPath:bt.workspacePathInput,loading:bt.isSavingWorkspace,onSubmit:bt.handleWorkspaceModalSubmit,onCancel:bt.handleWorkspaceModalCancel})})]})},fC={maxLines:8,maxCharacters:500},Br=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ar=e=>typeof e=="string"?e:void 0,ss=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,kh=e=>typeof e=="boolean"?e:void 0,xd=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);return Br(n)?n:null}catch{return null}},my=e=>/\\u[0-9a-fA-F]{4}|\\n|\\t|\\r/.test(e)?e.replace(/\\u([0-9a-fA-F]{4})/g,(t,n)=>String.fromCharCode(parseInt(n,16))).replace(/\\n/g,`
|
|
113
|
+
`).replace(/\\t/g," ").replace(/\\r/g,"\r"):e,br=e=>Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>my(t).trim()).filter(Boolean):[],mn=e=>{if(typeof e!="string")return;const t=my(e).trim();return t.length>0?t:void 0},hC=e=>{if(!Br(e))return;const t=mn(e.graph);if(t)return{title:mn(e.title),graph:t}},pC=e=>{if(!Br(e))return;const t=mn(e.summary)??mn(e.conclusion);if(t)return{title:mn(e.title)||"Conclusion",summary:t,key_points:br(e.key_points),next_steps:br(e.next_steps),confidence:mn(e.confidence),mermaid:hC(e.mermaid)}},mC=e=>{const t=xd(e);if(!t)return null;const n=mn(t.conclusion);return!n||t.type!=null&&t.type!=="conclusion"?null:{type:"conclusion",title:mn(t.title)||"Conclusion",conclusion:n,key_points:br(t.key_points),next_steps:br(t.next_steps),confidence:mn(t.confidence)}},gC=e=>{const t=xd(e);if(!t)return null;const n=mn(t.question);if(!n)return null;const r=mn(t.status);return r&&r!=="awaiting_user_input"&&r!=="awaiting_permission_approval"?null:{question:n,options:br(t.options),allow_custom:typeof t.allow_custom=="boolean"?t.allow_custom:!0,conclusion:pC(t.conclusion)}},yC=e=>{var n;if(!e)return null;const t=[`## ${e.title}`,e.summary];if(e.confidence&&t.push(`**Confidence:** ${e.confidence}`),e.key_points.length>0&&t.push(["**Key points**",...e.key_points.map(r=>`- ${r}`)].join(`
|
|
114
114
|
`)),e.next_steps.length>0&&t.push(["**Next steps**",...e.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
|
|
115
115
|
`)),(n=e.mermaid)!=null&&n.graph){const r=e.mermaid.title?`**${e.mermaid.title}**
|
|
116
116
|
|
|
@@ -120,23 +120,23 @@ You are running on **${Ck(e)}**.`;return e==="windows"?n+`
|
|
|
120
120
|
${e.mermaid.graph}
|
|
121
121
|
\`\`\``)}return t.join(`
|
|
122
122
|
|
|
123
|
-
`)},gy=e=>{const t=
|
|
123
|
+
`)},gy=e=>{const t=mC(e);if(!t)return null;const n=[`## ${t.title}`,t.conclusion];return t.confidence&&n.push(`**Confidence:** ${t.confidence}`),t.key_points.length>0&&n.push(["**Key points**",...t.key_points.map(r=>`- ${r}`)].join(`
|
|
124
124
|
`)),t.next_steps.length>0&&n.push(["**Next steps**",...t.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
|
|
125
125
|
`)),n.join(`
|
|
126
126
|
|
|
127
|
-
`)},
|
|
128
|
-
`),n=[];let r=0;for(;r<t.length;){const s=t[r]??"";if(s.startsWith("--- ")||s.startsWith("+++ ")){n.push({kind:"meta",text:s}),r+=1;continue}if(s.startsWith("@@")){n.push({kind:"hunk",text:s}),r+=1;continue}if(
|
|
129
|
-
`),n=[];let r=null,s=null,o=0;for(;o<t.length;){const i=t[o]??"";if(i.startsWith("--- ")||i.startsWith("+++ ")){n.push({kind:"meta",text:i}),o+=1;continue}if(i.startsWith("@@")){const u=
|
|
130
|
-
`)){if(
|
|
131
|
-
`).replace(/\\t/g," ");if(Array.isArray(e))return e.map(
|
|
132
|
-
`).replace(/\\t/g," "),parsedJson:n}}const r=_u(n);return{isJson:!0,formattedText:JSON.stringify(r,null,2),parsedJson:r}}catch{return{isJson:!1,formattedText:e}}},SC=(e,t={})=>{const n={...dC,...t};return e?e.split(/\r?\n/).length>n.maxLines?!0:e.length>n.maxCharacters:!1},xC=(e,t=320)=>e?e.length<=t?{preview:e,isTruncated:!1}:{preview:e.substring(0,t).trimEnd()+"…",isTruncated:!0}:{preview:"",isTruncated:!1},wC=e=>{if(!e)return"No content";const t=60,n=e.trim(),r=to(n);if(r){const o=r.file_path.split(/[\\/]/).pop()||r.file_path,i=`${r.operation}: ${o}`;return i.length<=t?i:i.substring(0,t).trimEnd()+"…"}const s=yy(n);if(s){const o=s.data.project_key||s.data.scope,i=`Memory ${s.action}: ${o} (${s.data.total_memories})`;return i.length<=t?i:i.substring(0,t).trimEnd()+"…"}if(n.length<=t)return n;if(n.startsWith("{")||n.startsWith("["))try{const o=JSON.parse(n);if(typeof o=="object"&&o!==null){if(o.type==="mermaid"&&typeof o.chart=="string"&&o.chart.trim().length>0){const f=`Diagram: ${typeof o.title=="string"&&o.title.trim().length>0?o.title.trim():"Mermaid diagram"}`;return f.length<=t?f:f.substring(0,t).trimEnd()+"…"}if(o.type==="conclusion"&&typeof o.conclusion=="string"&&o.conclusion.trim().length>0){const u=o.conclusion.trim();return u.length<=t?u:u.substring(0,t).trimEnd()+"…"}const i=["content","result","output","message","data"].find(u=>u in o&&typeof o[u]=="string");if(i){const u=o[i];return u.length<=t?u:u.substring(0,t).trimEnd()+"…"}if(Array.isArray(o))return`Array with ${o.length} items`;const l=Object.keys(o);return`Object with ${l.length} propert${l.length===1?"y":"ies"}`}}catch{}return n.substring(0,t).trimEnd()+"…"},vy=e=>{switch(e){case"success":return"green";case"error":return"red";case"warning":return"orange";default:return"blue"}},fs=(e,t=2)=>{if(typeof e=="string")return e;try{return JSON.stringify(e,null,t)}catch(n){return console.error("[resultFormatters] Failed to stringify value:",n),String(e)}},{Text:Pn}=ft,_C=(e,t,n)=>{const r={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:n?11:t.fontSizeSM,lineHeight:n?1.35:1.5,padding:n?"0 4px":"0 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"};return e.kind==="add"?r.background=t.colorSuccessBg:e.kind==="remove"?r.background=t.colorErrorBg:e.kind==="modified_add"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorSuccess}`):e.kind==="modified_remove"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorError}`):e.kind==="hunk"?(r.background=t.colorFillSecondary,r.color=t.colorTextSecondary):e.kind==="meta"&&(r.background=t.colorFillTertiary,r.color=t.colorTextSecondary),r},Ma=(e,t,n)=>{if(e==="remove"&&t==="old")return n.colorErrorBg;if(e==="add"&&t==="new")return n.colorSuccessBg;if(e==="modified")return t==="old"?n.colorErrorBg:n.colorSuccessBg},ja=(e,t,n)=>{if(e==="modified")return t==="old"?`3px solid ${n.colorError}`:`3px solid ${n.colorSuccess}`},Ch=e=>e==null?"":String(e),Ui=({payload:e,defaultViewMode:t="sideBySide",showHeader:n=!0,showViewToggle:r=!0,compact:s=!1,height:o,maxHeight:i=400})=>{var T;const{t:l}=Ge(),{token:u}=ut.useToken(),[f,h]=y.useState(t),m=y.useMemo(()=>{const M=by(e.diff.unified);return{added:e.diff.added_lines??M.added,removed:e.diff.removed_lines??M.removed}},[e]),b=y.useMemo(()=>yC(e.diff.unified),[e.diff.unified]),v=y.useMemo(()=>vC(e.diff.unified),[e.diff.unified]),w=o!==void 0,S={display:"flex",flexDirection:"column",gap:s?6:u.marginSM,minHeight:0,height:w?o:void 0},k={border:`1px solid ${u.colorBorderSecondary}`,borderRadius:s?6:u.borderRadiusSM,overflow:"auto",background:u.colorBgContainer,minHeight:0,flex:w?1:void 0,maxHeight:w?void 0:i},P=s?"small":"middle";return a.jsxs("div",{style:S,children:[n&&a.jsxs("div",{style:{display:"grid",gap:s?2:u.marginXS},children:[e.message?a.jsx(Pn,{style:{fontSize:s?11:u.fontSizeSM},children:e.message}):null,a.jsxs(Ue,{size:s?2:8,wrap:!0,children:[a.jsxs(Pn,{style:{fontSize:s?11:u.fontSizeSM},children:[a.jsxs(Pn,{strong:!0,children:[l("common.file"),":"]})," ",a.jsx(Pn,{code:!0,children:e.file_path})]}),e.workspace?a.jsxs(Pn,{style:{fontSize:s?11:u.fontSizeSM},children:[a.jsxs(Pn,{strong:!0,children:[l("common.workspace"),":"]})," ",a.jsx(Pn,{code:!0,children:e.workspace})]}):null,a.jsxs(Pn,{style:{color:u.colorSuccess,fontSize:s?11:u.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",m.added]}),a.jsxs(Pn,{style:{color:u.colorError,fontSize:s?11:u.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",m.removed]})]}),(T=e.checkpoint)!=null&&T.created?a.jsxs(Pn,{style:{fontSize:s?u.fontSizeSM-1:u.fontSizeSM},children:[a.jsxs(Pn,{strong:!0,children:[l("components.toolResult.checkpoint"),":"]})," ",a.jsx(Pn,{code:!0,children:e.checkpoint.path})]}):a.jsx(Pn,{type:"secondary",style:{fontSize:s?11:u.fontSizeSM},children:l("components.toolResult.checkpointNone")})]}),r?a.jsxs(Ue,{size:s?2:8,wrap:!0,children:[a.jsx(je,{size:P,type:f==="sideBySide"?"primary":"default",onClick:()=>h("sideBySide"),children:l("components.toolResult.sideBySide",{defaultValue:"Side by side"})}),a.jsx(je,{size:P,type:f==="unified"?"primary":"default",onClick:()=>h("unified"),children:l("components.toolResult.unified",{defaultValue:"Unified"})})]}):null,a.jsx("div",{style:k,children:f==="unified"?b.length>0?b.map((M,C)=>a.jsx("pre",{style:_C(M,u,s),children:M.text||" "},`${C}-${M.kind}`)):a.jsx(Pn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:u.fontSizeSM},children:l("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})}):v.length>0?a.jsx("div",{children:v.map((M,C)=>{if(M.kind==="meta"||M.kind==="hunk")return a.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:s?11:u.fontSizeSM,lineHeight:s?1.35:1.5,padding:s?"2px 4px":"4px 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",background:M.kind==="meta"?u.colorFillTertiary:u.colorFillSecondary,color:u.colorTextSecondary,borderBottom:`1px solid ${u.colorBorderSecondary}`},children:M.text||" "},`meta-${C}`);const j=s?11:u.fontSizeSM,A=s?"2px 4px":"4px 8px",O={padding:A,textAlign:"right",color:u.colorTextTertiary,fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:j,borderRight:`1px solid ${u.colorBorderSecondary}`,userSelect:"none"},F={padding:A,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:j};return a.jsxs("div",{style:{display:"grid",gridTemplateColumns:s?"48px 1fr 48px 1fr":"64px 1fr 64px 1fr",borderBottom:`1px solid ${u.colorBorderSecondary}`},children:[a.jsx("div",{style:{...O,background:Ma(M.kind,"old",u),borderLeft:ja(M.kind,"old",u)},children:Ch(M.oldLineNumber)}),a.jsx("div",{style:{...F,background:Ma(M.kind,"old",u),borderRight:`1px solid ${u.colorBorderSecondary}`,borderLeft:ja(M.kind,"old",u)},children:M.oldText??" "}),a.jsx("div",{style:{...O,background:Ma(M.kind,"new",u),borderLeft:ja(M.kind,"new",u)},children:Ch(M.newLineNumber)}),a.jsx("div",{style:{...F,background:Ma(M.kind,"new",u),borderLeft:ja(M.kind,"new",u)},children:M.newText??" "})]},`side-${C}`)})}):a.jsx(Pn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:u.fontSizeSM},children:l("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})})}),e.diff.truncated?a.jsx(Pn,{type:"secondary",style:{fontSize:s?11:u.fontSizeSM},children:l("components.toolResult.diffTruncated")}):null]})},{Text:kC}=ft,CC=e=>e.filter(t=>t!=null&&t!==!1&&!(typeof t=="string"&&t.trim()==="")),TC=(e,t)=>e.flatMap((n,r)=>r===0?[a.jsx(ht.Fragment,{children:n},`item-${r}`)]:[a.jsx(ht.Fragment,{children:t},`sep-${r}`),a.jsx(ht.Fragment,{children:n},`item-${r}`)]),_c=({items:e,separator:t=" · ",nowrap:n=!1,block:r=!1,style:s,className:o,ellipsis:i,...l})=>{const u=CC(e);return u.length===0?null:a.jsx(kC,{type:"secondary",className:o,ellipsis:i,style:{fontSize:11,lineHeight:1.35,whiteSpace:n?"nowrap":void 0,display:r?"block":void 0,...s},...l,children:TC(u,t)})},{Text:An}=ft,PC=220,Ga=e=>e.split(/[\\/]/).pop()||e,EC=e=>{const t=e.replace(/\\/g,"/"),n=t.lastIndexOf("/");return n<=0?null:t.slice(0,n)},Th=e=>e.added+e.removed,ku=e=>e.toLocaleString(),Ph=(e,t)=>`(+${ku(e)} / -${ku(t)})`,MC=e=>({operation:"session_diff_review",file_path:e.filePath,workspace:e.workspace,diff:{unified:e.unifiedDiff,added_lines:e.added,removed_lines:e.removed,truncated:e.truncated}}),Cu=(e,t)=>{const n=[...e];return t==="path"?(n.sort((r,s)=>r.filePath.localeCompare(s.filePath)),n):(n.sort((r,s)=>{const o=Th(s)-Th(r);return o!==0?o:r.filePath.localeCompare(s.filePath)}),n)},Us=({value:e,kind:t,compact:n=!1})=>{const{token:r}=ut.useToken(),s=t==="added";return a.jsxs(An,{style:{color:s?r.colorSuccess:r.colorError,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"nowrap",fontSize:n?11:void 0},children:[s?"+":"-",ku(e)]})},Eh=({files:e,changedTools:t,totalAdded:n,totalRemoved:r,sortMode:s,selectedFilePath:o,compact:i=!1,onSortModeChange:l,onSelectFile:u})=>{const{token:f}=ut.useToken(),h=y.useMemo(()=>Cu(e,s),[e,s]),m=y.useMemo(()=>e.filter(S=>S.truncated).length,[e]),b=y.useMemo(()=>Cu(e,"magnitude")[0]??null,[e]),v=i?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},w=y.useMemo(()=>{const S=[];return b&&S.push(`Largest: ${Ga(b.filePath)} ${Ph(b.added,b.removed)}`),m>0&&S.push(`${m} truncated preview${m>1?"s":""}`),S},[b,m]);return a.jsxs(Ee,{vertical:!0,gap:i?f.marginXS:f.marginSM,style:{width:"100%",minWidth:0},children:[a.jsxs(Ee,{vertical:!0,gap:i?4:6,style:{width:"100%",minWidth:0},children:[a.jsxs(Ee,{align:"flex-start",justify:"space-between",gap:i?f.marginXS:f.marginSM,wrap:!0,children:[a.jsxs(Ue,{size:i?6:f.marginXS,wrap:!0,children:[a.jsx(pg,{style:{color:f.colorPrimary}}),a.jsx(An,{strong:!0,style:i?{fontSize:12}:void 0,children:"Session diffs"}),i?null:a.jsx(An,{type:"secondary",children:"Review changed files, then open one file at a time."})]}),a.jsxs(Ue,{size:i?2:4,wrap:!0,children:[i?a.jsx(_c,{nowrap:!0,items:[`${e.length} files`,`${t} tools`]}):a.jsxs(a.Fragment,{children:[a.jsxs(Je,{style:v,children:[e.length," files"]}),a.jsxs(Je,{style:v,children:[t," tools"]})]}),a.jsx(Us,{value:n,kind:"added"}),a.jsx(Us,{value:r,kind:"removed"})]})]}),i?a.jsx(_c,{block:!0,items:w}):a.jsxs(a.Fragment,{children:[b?a.jsxs(An,{type:"secondary",style:{fontSize:f.fontSizeSM},children:["Largest change: ",Ga(b.filePath)," ",Ph(b.added,b.removed)]}):null,m>0?a.jsxs(An,{type:"secondary",style:{fontSize:f.fontSizeSM},children:[m," diff",m>1?"s":""," truncated in preview."]}):null]})]}),a.jsxs(Ee,{align:"center",justify:"space-between",gap:i?f.marginXS:f.marginSM,wrap:!0,children:[a.jsx(An,{strong:!0,style:i?{fontSize:12}:void 0,children:i?"Files":"Changed files"}),e.length>1?a.jsxs(Ue,{size:i?4:8,wrap:!0,children:[a.jsx(je,{size:"small",type:s==="magnitude"?"primary":"default",onClick:()=>l("magnitude"),"data-testid":"session-diff-sort-magnitude",children:i?"Largest":"Largest changes"}),a.jsx(je,{size:"small",type:s==="path"?"primary":"default",onClick:()=>l("path"),"data-testid":"session-diff-sort-path",children:"Path"})]}):null]}),a.jsx("div",{"data-testid":"session-diff-file-list",style:{display:"grid",gridTemplateColumns:"1fr",gap:i?4:6,width:"100%",minWidth:0,maxHeight:i?248:320,overflowY:"auto",overflowX:"hidden"},children:h.map(S=>{const k=EC(S.filePath),P=o===S.filePath,T=i?[k,S.toolCount&&S.toolCount>1?`${S.toolCount} tool steps`:null]:[];return a.jsx("button",{type:"button","aria-pressed":P,"data-selected":P?"true":"false",onClick:()=>u(S.filePath),"data-testid":"session-diff-file-row","data-file-path":S.filePath,style:{width:"100%",minWidth:0,padding:i?"6px 8px":`${f.paddingSM}px`,borderRadius:f.borderRadiusSM,border:`1px solid ${P?f.colorPrimary:f.colorBorderSecondary}`,background:P?f.colorFillSecondary:f.colorFillTertiary,boxShadow:P?`inset 0 0 0 1px ${f.colorPrimary}`:"none",cursor:"pointer",textAlign:"left",transition:"border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease"},children:a.jsxs(Ee,{align:"flex-start",justify:"space-between",gap:i?f.marginXS:f.marginSM,style:{width:"100%"},children:[a.jsxs(Ee,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[a.jsxs(Ee,{align:"center",gap:f.marginXS,style:{minWidth:0},children:[a.jsx(zr,{style:{color:P?f.colorPrimary:f.colorTextSecondary,flex:"0 0 auto"}}),a.jsx(An,{strong:!0,ellipsis:{tooltip:S.filePath},style:{display:"block",flex:1,minWidth:0},children:Ga(S.filePath)}),S.truncated?i?a.jsx(An,{type:"secondary",style:{fontSize:11,flex:"0 0 auto"},children:"· trunc."}):a.jsx(Je,{color:"warning",style:{...v,flex:"0 0 auto"},children:"Truncated"}):null]}),i?a.jsx(_c,{block:!0,ellipsis:{tooltip:S.filePath},items:T,style:{minWidth:0}}):a.jsxs(a.Fragment,{children:[k?a.jsx(An,{type:"secondary",ellipsis:{tooltip:S.filePath},style:{display:"block",minWidth:0,fontSize:f.fontSizeSM},children:k}):null,S.toolCount&&S.toolCount>1?a.jsxs(An,{type:"secondary",style:{fontSize:Math.max(f.fontSizeSM-1,11)},children:["Touched by ",S.toolCount," tool steps"]}):null]})]}),a.jsxs(Ee,{vertical:!0,align:"flex-end",gap:i?1:0,style:{flex:"0 0 auto"},children:[a.jsx(Us,{value:S.added,kind:"added",compact:i}),a.jsx(Us,{value:S.removed,kind:"removed",compact:i})]})]})},S.filePath)})})]})},jC=({file:e,currentPosition:t,totalFiles:n,canGoPrevious:r,canGoNext:s,compact:o=!1,onPrevious:i,onNext:l,onBack:u})=>{const{token:f}=ut.useToken(),h=y.useMemo(()=>MC(e),[e]);return a.jsxs(Ee,{vertical:!0,gap:o?f.marginXS:f.marginSM,style:{width:"100%",minWidth:0},"data-testid":"session-diff-detail-view",children:[a.jsxs(Ee,{align:"center",justify:"space-between",gap:o?f.marginXS:f.marginSM,wrap:!0,children:[a.jsxs(Ue,{size:o?4:8,wrap:!0,children:[a.jsx(je,{type:"text",size:"small",icon:a.jsx(DS,{}),onClick:u,"data-testid":"session-diff-back",style:{paddingInline:0},children:"Back to files"}),a.jsxs(An,{type:"secondary","data-testid":"session-diff-position",style:o?{fontSize:11}:void 0,children:["File ",t," of ",n]})]}),n>1?a.jsxs(Ue,{size:o?4:8,wrap:!0,children:[a.jsx(je,{size:"small",icon:a.jsx(ru,{}),onClick:i,disabled:!r,"data-testid":"session-diff-prev",children:"Previous"}),a.jsx(je,{size:"small",icon:a.jsx(zr,{}),onClick:l,disabled:!s,"data-testid":"session-diff-next",children:"Next"})]}):null]}),a.jsxs(Ee,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[a.jsxs(Ee,{align:"flex-start",justify:"space-between",gap:o?f.marginXS:f.marginSM,wrap:!0,children:[a.jsxs(Ee,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[a.jsx(An,{strong:!0,ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0},children:Ga(e.filePath)}),a.jsx(An,{type:"secondary",ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0,fontSize:o?11:f.fontSizeSM},children:e.filePath}),e.workspace?a.jsx(An,{type:"secondary",ellipsis:{tooltip:e.workspace},style:{display:"block",minWidth:0,fontSize:o?11:f.fontSizeSM},children:e.workspace}):null]}),a.jsxs(Ue,{size:o?2:4,wrap:!0,children:[e.truncated?a.jsx(Je,{color:"warning",style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:o?"Trunc.":"Truncated"}):null,e.toolCount&&e.toolCount>1?a.jsxs(Je,{style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:[e.toolCount," tools"]}):null,a.jsx(Us,{value:e.added,kind:"added",compact:o}),a.jsx(Us,{value:e.removed,kind:"removed",compact:o})]})]}),o?null:a.jsx(An,{type:"secondary",style:{fontSize:f.fontSizeSM},children:"Review this file in side-by-side or unified mode."})]}),a.jsx(Ui,{payload:h,defaultViewMode:"sideBySide",showHeader:!1,showViewToggle:!0,compact:o,maxHeight:o?"calc(100vh - 240px)":"calc(100vh - 280px)"})]})},Sy=({sessionDiffSummary:e,sessionId:t,compact:n=!1})=>{const{token:r}=ut.useToken(),s=!!(e&&e.files.length>0),[o,i]=y.useState(s),[l,u]=y.useState(s),[f,h]=y.useState("magnitude"),[m,b]=y.useState(null);y.useEffect(()=>{if(s){i(!0);const T=window.setTimeout(()=>u(!0),0);return()=>window.clearTimeout(T)}u(!1);const P=window.setTimeout(()=>i(!1),PC);return()=>window.clearTimeout(P)},[s]),y.useEffect(()=>{h("magnitude"),b(null)},[t]);const v=y.useMemo(()=>(e==null?void 0:e.files)??[],[e]),w=y.useMemo(()=>Cu(v,f),[v,f]),S=y.useMemo(()=>w.findIndex(P=>P.filePath===m),[w,m]),k=S>=0?w[S]:null;return y.useEffect(()=>{m&&(v.some(P=>P.filePath===m)||b(null))},[v,m]),!o||!e?null:a.jsxs("div",{className:`active-tool-card-wrapper ${l?"visible":""}`,"aria-hidden":!l,"data-testid":"session-diff-card",style:{width:"100%",minWidth:0},children:[a.jsx("div",{style:n?{width:"100%",minWidth:0,padding:"2px 0 0"}:{width:"100%",minWidth:0},children:n?a.jsx(Eh,{files:v,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:f,selectedFilePath:m,compact:n,onSortModeChange:h,onSelectFile:b}):a.jsx(nn,{size:"small",style:{width:"100%",minWidth:0,overflow:"hidden",borderRadius:r.borderRadiusLG,border:`1px solid ${r.colorBorderSecondary}`,background:r.colorBgContainer,boxShadow:r.boxShadowSecondary},styles:{body:{padding:`${r.paddingSM}px`}},children:a.jsx(Eh,{files:v,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:f,selectedFilePath:m,compact:n,onSortModeChange:h,onSelectFile:b})})}),a.jsx(Pl,{title:"Diff details",placement:"right",open:!!k,onClose:()=>b(null),width:"min(1100px, calc(100vw - 24px))",styles:{body:{padding:n?r.paddingXS:r.paddingLG,minWidth:0}},destroyOnClose:!0,children:k?a.jsx(jC,{file:k,currentPosition:S+1,totalFiles:w.length,canGoPrevious:S>0,canGoNext:S>=0&&S<w.length-1,compact:n,onPrevious:()=>{S>0&&b(w[S-1].filePath)},onNext:()=>{S>=0&&S<w.length-1&&b(w[S+1].filePath)},onBack:()=>b(null)}):null})]})},RC=e=>{if(!e)return;const{activeLeafId:t,setLeafSessionId:n,setActiveLeafId:r}=gt.getState();n(t,e),r(t),ae.getState().selectSession(e)},AC=["You are Bodhi operating in code review mode.","Review code changes with emphasis on correctness, regressions, security, maintainability, tests, and rollout risk.","Prefer concise findings with severity, rationale, and actionable fixes.","Ask for missing scope or repository context before making strong assumptions."].join(" "),IC=["You are Bodhi operating in bug investigation mode.","Help diagnose issues by analyzing code, logs, stack traces, and runtime behavior.","Trace root causes methodically, suggest targeted fixes, and flag related risks.","Ask for reproduction steps or error messages if not provided."].join(" "),OC=["You are Bodhi operating in feature implementation mode.","Help plan and implement new features step by step, following existing code conventions.","Consider edge cases, testing strategies, and backward compatibility.","Propose an implementation plan before writing code when scope is large."].join(" "),$C=["You are Bodhi operating in architecture analysis mode.","Analyze the repository structure, key abstractions, data flow, and module boundaries.","Identify architectural patterns, coupling hotspots, and potential improvements.","Use diagrams to illustrate relationships when helpful."].join(" "),LC=["You are Bodhi operating in error explanation mode.","Help users understand error messages, stack traces, and unexpected behavior.","Explain the root cause clearly, suggest fixes, and provide prevention tips.","Keep explanations accessible even for less experienced developers."].join(" "),FC=["You are Bodhi operating in file comparison mode.","Compare the given files or code sections, highlighting key differences and their implications.","Focus on functional changes, potential regressions, and design trade-offs."].join(" "),DC=["You are Bodhi operating in refactoring advisor mode.","Suggest targeted refactoring improvements for readability, maintainability, and performance.","Respect existing code style, propose incremental changes, and explain the rationale.","Flag any risks introduced by the refactoring."].join(" "),NC=["You are Bodhi operating in release notes generation mode.","Generate clear, well-structured release notes from git history and code changes.","Categorize changes (features, fixes, improvements, breaking changes).","Write for both technical and non-technical readers."].join(" "),BC=["You are Bodhi operating in work summary mode.","Help summarize recent work activity for standups, weeklies, or status reports.","Pull key accomplishments, blockers, and next steps from session history or code changes.","Keep output concise and actionable."].join(" "),zC=["You are Bodhi operating in documentation writer mode.","Help create or improve technical documentation from code and project context.","Follow good documentation practices: clear structure, examples, and consistent terminology.","Produce Markdown-formatted output by default."].join(" "),WC=["You are Bodhi operating in scheduled task setup mode.","Help the user create a recurring scheduled task in Bamboo.","Clarify the task goal, frequency, workspace, and expected output before proceeding.","Guide the user through configuration and confirm before saving."].join(" "),UC=["You are Bodhi operating in session review mode.","Help inspect and analyze past session history for patterns, insights, or issues.","Summarize key decisions, outcomes, and areas that may need follow-up."].join(" "),qC=["You are Bodhi operating in context diagnostics mode.","Help analyze token usage, prompt bloat, context growth, truncation, and compression behavior.","Quantify likely causes when possible and recommend concrete, prioritized fixes.","Keep the output practical for engineers improving prompt and session efficiency."].join(" "),HC=["development","debugging","analysis","documentation","operations"],YC={development:{titleKey:"chat.emptyLauncher.categories.development",fallback:"Development"},debugging:{titleKey:"chat.emptyLauncher.categories.debugging",fallback:"Debugging"},analysis:{titleKey:"chat.emptyLauncher.categories.analysis",fallback:"Analysis"},documentation:{titleKey:"chat.emptyLauncher.categories.documentation",fallback:"Documentation"},operations:{titleKey:"chat.emptyLauncher.categories.operations",fallback:"Operations"}},XC=(e,t)=>{const n=e.find(s=>s.id===t),r=e.find(s=>s.id==="general_assistant")||e[0];return{systemPromptId:(n==null?void 0:n.id)||(r==null?void 0:r.id)||"",baseSystemPrompt:(n==null?void 0:n.content)||(r==null?void 0:r.content)||""}},KC=({sessionId:e=null,embedded:t=!1,hideHeader:n=!1,layoutMode:r="default"})=>{var q;const{t:s}=Ge(),{token:o}=ut.useToken(),{message:i}=Fn.useApp(),l=ae(I=>e??I.currentSessionId),u=ae(_s(l)),f=ae(I=>I.addChat),h=ae(I=>I.lastSelectedPromptId),m=ae(I=>I.setInputContent),b=ae(I=>I.systemPrompts),v=ae(I=>I.chats),[w,S]=y.useState(null),[k,P]=y.useState(""),T=(u==null?void 0:u.config.workspacePath)??((q=v.find(I=>I.config.workspacePath))==null?void 0:q.config.workspacePath),M=y.useMemo(()=>[{id:"blank",icon:a.jsx(td,{}),title:s("chat.emptyLauncher.actions.blank.title","Blank session"),description:s("chat.emptyLauncher.actions.blank.description","Start from scratch with the default assistant and an empty composer."),sessionTitle:s("chat.emptyLauncher.actions.blank.sessionTitle","New Session"),prefill:s("chat.emptyLauncher.actions.blank.prefill",""),category:"development"},{id:"codeReview",icon:a.jsx(NS,{}),title:s("chat.emptyLauncher.actions.codeReview.title","Code review"),description:s("chat.emptyLauncher.actions.codeReview.description","Open a review-focused session with an editable review brief."),sessionTitle:s("chat.emptyLauncher.actions.codeReview.sessionTitle","Code Review"),prefill:s("chat.emptyLauncher.actions.codeReview.prefill","Review the relevant code changes in this workspace or repository. Start with the overall scope, then list risks, notable diffs, and the most important fixes."),baseSystemPrompt:AC,category:"development",recommendWorkspace:!0},{id:"implementFeature",icon:a.jsx(rd,{}),title:s("chat.emptyLauncher.actions.implementFeature.title","Implement feature"),description:s("chat.emptyLauncher.actions.implementFeature.description","Plan and build a feature step by step following existing code conventions."),sessionTitle:s("chat.emptyLauncher.actions.implementFeature.sessionTitle","Implement Feature"),prefill:s("chat.emptyLauncher.actions.implementFeature.prefill","Help me implement a new feature in this workspace. Start by understanding the codebase structure, then propose an implementation plan before writing code."),baseSystemPrompt:OC,category:"development",recommendWorkspace:!0},{id:"refactor",icon:a.jsx(pg,{}),title:s("chat.emptyLauncher.actions.refactor.title","Refactor code"),description:s("chat.emptyLauncher.actions.refactor.description","Get targeted suggestions for improving code quality and maintainability."),sessionTitle:s("chat.emptyLauncher.actions.refactor.sessionTitle","Refactor Suggestion"),prefill:s("chat.emptyLauncher.actions.refactor.prefill","Suggest refactoring improvements for the code in this workspace. Focus on readability, maintainability, and performance. Propose incremental changes with clear rationale."),baseSystemPrompt:DC,category:"development",recommendWorkspace:!0},{id:"bugInvestigation",icon:a.jsx(dg,{}),title:s("chat.emptyLauncher.actions.bugInvestigation.title","Bug investigation"),description:s("chat.emptyLauncher.actions.bugInvestigation.description","Diagnose issues by analyzing code, logs, and runtime behavior."),sessionTitle:s("chat.emptyLauncher.actions.bugInvestigation.sessionTitle","Bug Investigation"),prefill:s("chat.emptyLauncher.actions.bugInvestigation.prefill","Help me investigate a bug. I'll describe the symptoms and share relevant code or logs. Trace the root cause and suggest targeted fixes."),baseSystemPrompt:IC,category:"debugging",recommendWorkspace:!0},{id:"explainError",icon:a.jsx(mg,{}),title:s("chat.emptyLauncher.actions.explainError.title","Explain error"),description:s("chat.emptyLauncher.actions.explainError.description","Understand what went wrong from an error message or stack trace."),sessionTitle:s("chat.emptyLauncher.actions.explainError.sessionTitle","Explain Error"),prefill:s("chat.emptyLauncher.actions.explainError.prefill","Help me understand the following error. Explain the root cause, suggest fixes, and share prevention tips."),baseSystemPrompt:LC,category:"debugging"},{id:"tokenUsage",icon:a.jsx(BS,{}),title:s("chat.emptyLauncher.actions.tokenUsage.title","Token usage investigation"),description:s("chat.emptyLauncher.actions.tokenUsage.description","Diagnose context growth, truncation risk, and token budget pressure."),sessionTitle:s("chat.emptyLauncher.actions.tokenUsage.sessionTitle","Token Usage Investigation"),prefill:s("chat.emptyLauncher.actions.tokenUsage.prefill","Help me investigate token usage, context growth, and truncation risk for this session or workflow. Summarize the likely drivers and recommend concrete next fixes."),baseSystemPrompt:qC,category:"debugging"},{id:"architectureReview",icon:a.jsx(zS,{}),title:s("chat.emptyLauncher.actions.architectureReview.title","Read repo architecture"),description:s("chat.emptyLauncher.actions.architectureReview.description","Analyze repository structure, modules, and architectural patterns."),sessionTitle:s("chat.emptyLauncher.actions.architectureReview.sessionTitle","Architecture Review"),prefill:s("chat.emptyLauncher.actions.architectureReview.prefill","Analyze the architecture of this repository. Map the key modules, data flow, abstractions, and dependency patterns. Identify strengths and potential improvements."),baseSystemPrompt:$C,category:"analysis",recommendWorkspace:!0},{id:"compareFiles",icon:a.jsx(WS,{}),title:s("chat.emptyLauncher.actions.compareFiles.title","Compare files"),description:s("chat.emptyLauncher.actions.compareFiles.description","Diff and understand differences between files or code sections."),sessionTitle:s("chat.emptyLauncher.actions.compareFiles.sessionTitle","Compare Files"),prefill:s("chat.emptyLauncher.actions.compareFiles.prefill","Compare the following files or code sections. Highlight key differences, their implications, and any potential risks."),baseSystemPrompt:FC,category:"analysis",recommendWorkspace:!0},{id:"releaseNotes",icon:a.jsx(al,{}),title:s("chat.emptyLauncher.actions.releaseNotes.title","Generate release notes"),description:s("chat.emptyLauncher.actions.releaseNotes.description","Create structured release notes from git history and code changes."),sessionTitle:s("chat.emptyLauncher.actions.releaseNotes.sessionTitle","Release Notes"),prefill:s("chat.emptyLauncher.actions.releaseNotes.prefill","Generate release notes for the latest changes in this workspace. Categorize into features, fixes, improvements, and breaking changes."),baseSystemPrompt:NC,category:"documentation",recommendWorkspace:!0},{id:"summarizeWork",icon:a.jsx(US,{}),title:s("chat.emptyLauncher.actions.summarizeWork.title","Summarize work"),description:s("chat.emptyLauncher.actions.summarizeWork.description","Create a work summary for standups or weekly status reports."),sessionTitle:s("chat.emptyLauncher.actions.summarizeWork.sessionTitle","Work Summary"),prefill:s("chat.emptyLauncher.actions.summarizeWork.prefill","Help me summarize my recent work for a status update. Pull key accomplishments, blockers, and next steps."),baseSystemPrompt:BC,category:"documentation"},{id:"writeDocs",icon:a.jsx(al,{}),title:s("chat.emptyLauncher.actions.writeDocs.title","Write documentation"),description:s("chat.emptyLauncher.actions.writeDocs.description","Create or improve technical documentation from code and context."),sessionTitle:s("chat.emptyLauncher.actions.writeDocs.sessionTitle","Write Documentation"),prefill:s("chat.emptyLauncher.actions.writeDocs.prefill","Help me write technical documentation for this project. Analyze the code and produce clear, well-structured Markdown documentation."),baseSystemPrompt:zC,category:"documentation",recommendWorkspace:!0},{id:"createSchedule",icon:a.jsx(Gs,{}),title:s("chat.emptyLauncher.actions.createSchedule.title","Create scheduled task"),description:s("chat.emptyLauncher.actions.createSchedule.description","Set up a recurring task that runs automatically on a schedule."),sessionTitle:s("chat.emptyLauncher.actions.createSchedule.sessionTitle","Create Schedule"),prefill:s("chat.emptyLauncher.actions.createSchedule.prefill","Help me set up a recurring scheduled task. I'll describe what I want it to do, and you guide me through the configuration."),baseSystemPrompt:WC,category:"operations"},{id:"sessionReview",icon:a.jsx(nu,{}),title:s("chat.emptyLauncher.actions.sessionReview.title","Review session history"),description:s("chat.emptyLauncher.actions.sessionReview.description","Inspect and analyze past sessions for patterns and insights."),sessionTitle:s("chat.emptyLauncher.actions.sessionReview.sessionTitle","Session Review"),prefill:s("chat.emptyLauncher.actions.sessionReview.prefill","Help me review my recent session history. Summarize key decisions, outcomes, and areas that need follow-up."),baseSystemPrompt:UC,category:"operations"}],[s]),C=k.trim().toLowerCase(),j=y.useMemo(()=>C?M.filter(I=>I.title.toLowerCase().includes(C)||I.description.toLowerCase().includes(C)):M,[C,M]),A=y.useMemo(()=>{const I={};for(const Q of j)I[Q.category]||(I[Q.category]=[]),I[Q.category].push(Q);return I},[j]),O=y.useCallback(I=>{typeof window>"u"||window.setTimeout(()=>{window.dispatchEvent(new CustomEvent(Su,{detail:{sessionId:I}}))},0)},[]),F=y.useCallback(async I=>{if(!w){S(I.id);try{const Q=XC(b,h),G=await f({title:I.sessionTitle,createdAt:Date.now(),messages:[],config:{systemPromptId:Q.systemPromptId,baseSystemPrompt:I.baseSystemPrompt??Q.baseSystemPrompt,lastUsedEnhancedPrompt:null,...T?{workspacePath:T}:{}}});RC(G),I.prefill.trim().length>0&&m(G,I.prefill),O(G)}catch(Q){console.error("[EmptyTaskLauncher] Failed to create session",Q),i.error(Q instanceof Error?Q.message:s("chat.emptyLauncher.errors.createFailed","Failed to create session"))}finally{S(null)}}},[f,h,i,w,O,m,b,s,T]),D=y.useMemo(()=>({"--lotus-empty-launcher-border":o.colorBorderSecondary,"--lotus-empty-launcher-border-hover":o.colorPrimaryBorder,"--lotus-empty-launcher-bg":o.colorBgElevated,"--lotus-empty-launcher-icon-bg":o.colorPrimaryBg,"--lotus-empty-launcher-icon-color":o.colorPrimary,"--lotus-empty-launcher-text":o.colorText,"--lotus-empty-launcher-text-secondary":o.colorTextSecondary,"--lotus-empty-launcher-shadow":o.boxShadowSecondary,"--lotus-empty-launcher-shadow-hover":o.boxShadow,"--lotus-empty-launcher-category-border":o.colorBorderSecondary,"--lotus-empty-launcher-search-bg":o.colorBgContainer,"--lotus-empty-launcher-badge-bg":o.colorPrimaryBg,"--lotus-empty-launcher-badge-text":o.colorPrimary}),[o]),N=!!T;return a.jsxs("div",{className:`lotus-empty-task-launcher ${t?"is-embedded":""} ${n?"is-headerless":""} ${r==="staggered"?"is-staggered":""}`,style:D,children:[!n&&a.jsxs("div",{className:"lotus-empty-task-launcher__header",children:[a.jsx(ft.Title,{level:t?4:3,style:{margin:0},children:s("chat.emptyLauncher.title","Start with a task")}),a.jsx(ft.Paragraph,{type:"secondary",className:"lotus-empty-task-launcher__subtitle",children:s("chat.emptyLauncher.subtitle","Create a focused session in this pane and prefill the first message before you send it.")}),a.jsx(ft.Text,{type:"secondary",className:"lotus-empty-task-launcher__hint",children:s("chat.emptyLauncher.hint","Nothing is sent automatically — you can edit the prompt first.")})]}),a.jsx("div",{className:"lotus-empty-task-launcher__search",children:a.jsx(Ss,{placeholder:s("chat.emptyLauncher.searchPlaceholder","Search templates..."),prefix:a.jsx(nu,{style:{color:o.colorTextQuaternary}}),value:k,onChange:I=>P(I.target.value),allowClear:!0,size:"middle",variant:"filled"})}),a.jsxs("div",{className:"lotus-empty-task-launcher__categories",children:[HC.map(I=>{const Q=A[I];if(!Q||Q.length===0)return null;const G=YC[I];return a.jsxs("div",{className:"lotus-empty-task-launcher__category",children:[a.jsx(ft.Text,{type:"secondary",className:"lotus-empty-task-launcher__category-label",children:s(G.titleKey,G.fallback)}),a.jsx("div",{className:"lotus-empty-task-launcher__grid",children:Q.map(Z=>{const pe=w===Z.id,$=Z.recommendWorkspace&&N;return a.jsxs("button",{type:"button",className:"lotus-empty-task-card",onClick:()=>{F(Z)},disabled:w!==null,"aria-busy":pe,"aria-label":Z.title,children:[a.jsx("div",{className:"lotus-empty-task-card__icon","aria-hidden":!0,children:pe?a.jsx(ps,{}):Z.icon}),a.jsxs("div",{className:"lotus-empty-task-card__body",children:[a.jsxs("div",{className:"lotus-empty-task-card__titleRow",children:[a.jsx("span",{className:"lotus-empty-task-card__title",children:Z.title}),a.jsx(qS,{className:"lotus-empty-task-card__arrow","aria-hidden":!0})]}),a.jsx("p",{className:"lotus-empty-task-card__description",children:Z.description}),$&&a.jsx("div",{className:"lotus-empty-task-card__badges",children:a.jsxs("span",{className:"lotus-empty-task-card__badge",title:T,children:["📂 ",s("chat.emptyLauncher.badges.workspace","workspace")]})})]})]},Z.id)})})]},I)}),j.length===0&&a.jsx("div",{className:"lotus-empty-task-launcher__no-results",children:a.jsx(ft.Text,{type:"secondary",children:s("chat.emptyLauncher.noResults","No templates match your search. Try a different keyword or start a blank session.")})})]})]})},VC=({sessionId:e,isCenteredLayout:t,maxWidth:n,onWorkflowDraftChange:r,showMessagesView:s,sessionDiffSummary:o,contextUsageIndicator:i,showSessionDiffCard:l=!0})=>a.jsx(Ee,{justify:"center",className:`chat-view-input-container-wrapper ${s?"messages-view":"centered-view"}`,children:a.jsxs("div",{style:{width:"100%",maxWidth:s?n:"min(100%, 920px)",margin:s?"0 auto":void 0,position:"relative",paddingBottom:s?12:0,display:"flex",flexDirection:"column",gap:s?0:24},children:[s&&l?a.jsx(Sy,{sessionDiffSummary:o,sessionId:e}):null,!s&&e?a.jsx(KC,{sessionId:e}):null,a.jsx(uC,{sessionId:e,isCenteredLayout:t,onWorkflowDraftChange:r,statusIndicator:i})]})});function As(e,t,n){let r=n.initialDeps??[],s;function o(){var i,l,u,f;let h;n.key&&((i=n.debug)!=null&&i.call(n))&&(h=Date.now());const m=e();if(!(m.length!==r.length||m.some((w,S)=>r[S]!==w)))return s;r=m;let v;if(n.key&&((l=n.debug)!=null&&l.call(n))&&(v=Date.now()),s=t(...m),n.key&&((u=n.debug)!=null&&u.call(n))){const w=Math.round((Date.now()-h)*100)/100,S=Math.round((Date.now()-v)*100)/100,k=S/16,P=(T,M)=>{for(T=String(T);T.length<M;)T=" "+T;return T};console.info(`%c⏱ ${P(S,5)} /${P(w,5)} ms`,`
|
|
127
|
+
`)},no=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);if(!Br(n))return null;const r=Ar(n.file_path),s=Ar(n.operation),o=n.diff;if(!r||!s||!Br(o))return null;const i=Ar(o.unified);if(!i)return null;const l=n.checkpoint,u=Br(l)?{created:kh(l.created)??!1,id:Ar(l.id),path:Ar(l.path),size_bytes:ss(l.size_bytes),reason:Ar(l.reason)}:void 0;return{operation:s,message:Ar(n.message),file_path:r,workspace:Ar(n.workspace),checkpoint:u,diff:{unified:i,old_line_count:ss(o.old_line_count),new_line_count:ss(o.new_line_count),added_lines:ss(o.added_lines),removed_lines:ss(o.removed_lines),truncated:kh(o.truncated)}}}catch{return null}},yy=e=>{const t=xd(e);if(!t)return null;const n=mn(t.action);if(n!=="inspect"&&n!=="rebuild")return null;const r=t.data;if(!Br(r))return null;const s=mn(r.scope),o=ss(r.total_memories);if(!s||typeof o!="number")return null;const i=l=>Br(l)?Object.fromEntries(Object.entries(l).filter(u=>typeof u[0]=="string"&&typeof u[1]=="number")):{};return{action:n,scope:mn(t.scope),project_key:mn(t.project_key),data:{scope:s,project_key:mn(r.project_key),total_memories:o,by_type:i(r.by_type),by_status:i(r.by_status),recent_ids:br(r.recent_ids),view_files:br(r.view_files),index_files:br(r.index_files),state_files:br(r.state_files),stale_candidate_count:ss(r.stale_candidate_count)??0,last_reindex_at:mn(r.last_reindex_at),last_dream_at:mn(r.last_dream_at),topic_paths:br(r.topic_paths)}}},Wi=e=>e.startsWith("-")&&!e.startsWith("---"),Ui=e=>e.startsWith("+")&&!e.startsWith("+++"),by=e=>{const t=e.split(`
|
|
128
|
+
`),n=[];let r=0;for(;r<t.length;){const s=t[r]??"";if(s.startsWith("--- ")||s.startsWith("+++ ")){n.push({kind:"meta",text:s}),r+=1;continue}if(s.startsWith("@@")){n.push({kind:"hunk",text:s}),r+=1;continue}if(Wi(s)){const o=[];for(;r<t.length&&Wi(t[r]??"");)o.push(t[r]??""),r+=1;const i=[];for(;r<t.length&&Ui(t[r]??"");)i.push(t[r]??""),r+=1;i.length>0?(o.forEach(l=>n.push({kind:"modified_remove",text:l})),i.forEach(l=>n.push({kind:"modified_add",text:l}))):o.forEach(l=>n.push({kind:"remove",text:l}));continue}if(Ui(s)){n.push({kind:"add",text:s}),r+=1;continue}n.push({kind:"context",text:s}),r+=1}return n},bC=(e,t)=>{var w;const n=by(e);if(n.length===0)return n;const r=Math.max(0,t==null?void 0:t.contextLines),s=Math.max(1,t==null?void 0:t.maxLines),o=t==null?void 0:t.preserveLeadingMeta,i=new Set(["add","remove","modified_add","modified_remove"]),l=n.map((S,k)=>({line:S,index:k})).filter(({line:S})=>i.has(S.kind)).map(({index:S})=>S);if(l.length===0||n.length<=s)return n.slice(0,s);const u=[];for(let S=0;S<n.length&&((w=n[S])==null?void 0:w.kind)==="meta";S+=1)u.push(S);const d=(S,k)=>{const P=[];return k&&u.length>0&&P.push({start:u[0],end:u[u.length-1]}),l.forEach(T=>{P.push({start:Math.max(0,T-S),end:Math.min(n.length-1,T+S)})}),P.sort((T,j)=>T.start-j.start),P.reduce((T,j)=>{const C=T[T.length-1];return C?j.start<=C.end+1?(C.end=Math.max(C.end,j.end),T):(T.push({...j}),T):(T.push({...j}),T)},[])},h=S=>{const k=[];return S.forEach((P,T)=>{T>0&&k.push({kind:"gap",text:"⋯"});for(let j=P.start;j<=P.end;j+=1)k.push(n[j])}),k};let m=r,b=d(m,o),v=h(b);for(;v.length>s&&m>0;)m-=1,b=d(m,o),v=h(b);return v.length>s&&o&&(b=d(m,!1),v=h(b)),v.length>s?v.slice(0,s):v},vC=e=>{const t=e.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);return t?{oldStart:Number.parseInt(t[1],10),newStart:Number.parseInt(t[2],10)}:null},Qr=e=>{if(!e)return"";const t=e[0];return t==="+"||t==="-"||t===" "?e.slice(1):e},Ir=e=>e==null?null:e+1,SC=e=>{const t=e.split(`
|
|
129
|
+
`),n=[];let r=null,s=null,o=0;for(;o<t.length;){const i=t[o]??"";if(i.startsWith("--- ")||i.startsWith("+++ ")){n.push({kind:"meta",text:i}),o+=1;continue}if(i.startsWith("@@")){const u=vC(i);u&&(r=u.oldStart,s=u.newStart),n.push({kind:"hunk",text:i}),o+=1;continue}if(Wi(i)){const u=[];for(;o<t.length&&Wi(t[o]??"");)u.push(t[o]??""),o+=1;const d=[];for(;o<t.length&&Ui(t[o]??"");)d.push(t[o]??""),o+=1;if(d.length>0){const h=Math.max(u.length,d.length);for(let m=0;m<h;m+=1){const b=u[m],v=d[m];if(b&&v){n.push({kind:"modified",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:Qr(b),newText:Qr(v)}),r=Ir(r),s=Ir(s);continue}if(b){n.push({kind:"remove",oldLineNumber:r??void 0,oldText:Qr(b)}),r=Ir(r);continue}v&&(n.push({kind:"add",newLineNumber:s??void 0,newText:Qr(v)}),s=Ir(s))}}else u.forEach(h=>{n.push({kind:"remove",oldLineNumber:r??void 0,oldText:Qr(h)}),r=Ir(r)});continue}if(Ui(i)){n.push({kind:"add",newLineNumber:s??void 0,newText:Qr(i)}),s=Ir(s),o+=1;continue}const l=Qr(i);n.push({kind:"context",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:l,newText:l}),r=Ir(r),s=Ir(s),o+=1}return n},vy=e=>{let t=0,n=0;for(const r of e.split(`
|
|
130
|
+
`)){if(Ui(r)){t+=1;continue}Wi(r)&&(n+=1)}return{added:t,removed:n}},wd=e=>{const t=no(e);if(!t)return null;const n=vy(t.diff.unified);return{added:t.diff.added_lines??n.added,removed:t.diff.removed_lines??n.removed}},ku=e=>{if(typeof e=="string")return e.replace(/\\n/g,`
|
|
131
|
+
`).replace(/\\t/g," ");if(Array.isArray(e))return e.map(ku);if(e!==null&&typeof e=="object"){const t={};for(const[n,r]of Object.entries(e))t[n]=ku(r);return t}return e},Zs=e=>{if(!e)return{isJson:!1,formattedText:""};const t=e.trim();if(!t)return{isJson:!1,formattedText:""};if(!(t.startsWith("{")&&t.endsWith("}"))&&!(t.startsWith("[")&&t.endsWith("]")))return{isJson:!1,formattedText:e};try{const n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n)&&Object.keys(n).length===1){const s=Object.keys(n)[0];if((s==="content"||s==="result"||s==="output")&&typeof n[s]=="string")return{isJson:!1,formattedText:n[s].replace(/\\n/g,`
|
|
132
|
+
`).replace(/\\t/g," "),parsedJson:n}}const r=ku(n);return{isJson:!0,formattedText:JSON.stringify(r,null,2),parsedJson:r}}catch{return{isJson:!1,formattedText:e}}},xC=(e,t={})=>{const n={...fC,...t};return e?e.split(/\r?\n/).length>n.maxLines?!0:e.length>n.maxCharacters:!1},wC=(e,t=320)=>e?e.length<=t?{preview:e,isTruncated:!1}:{preview:e.substring(0,t).trimEnd()+"…",isTruncated:!0}:{preview:"",isTruncated:!1},_C=e=>{if(!e)return"No content";const t=60,n=e.trim(),r=no(n);if(r){const o=r.file_path.split(/[\\/]/).pop()||r.file_path,i=`${r.operation}: ${o}`;return i.length<=t?i:i.substring(0,t).trimEnd()+"…"}const s=yy(n);if(s){const o=s.data.project_key||s.data.scope,i=`Memory ${s.action}: ${o} (${s.data.total_memories})`;return i.length<=t?i:i.substring(0,t).trimEnd()+"…"}if(n.length<=t)return n;if(n.startsWith("{")||n.startsWith("["))try{const o=JSON.parse(n);if(typeof o=="object"&&o!==null){if(o.type==="mermaid"&&typeof o.chart=="string"&&o.chart.trim().length>0){const d=`Diagram: ${typeof o.title=="string"&&o.title.trim().length>0?o.title.trim():"Mermaid diagram"}`;return d.length<=t?d:d.substring(0,t).trimEnd()+"…"}if(o.type==="conclusion"&&typeof o.conclusion=="string"&&o.conclusion.trim().length>0){const u=o.conclusion.trim();return u.length<=t?u:u.substring(0,t).trimEnd()+"…"}const i=["content","result","output","message","data"].find(u=>u in o&&typeof o[u]=="string");if(i){const u=o[i];return u.length<=t?u:u.substring(0,t).trimEnd()+"…"}if(Array.isArray(o))return`Array with ${o.length} items`;const l=Object.keys(o);return`Object with ${l.length} propert${l.length===1?"y":"ies"}`}}catch{}return n.substring(0,t).trimEnd()+"…"},Sy=e=>{switch(e){case"success":return"green";case"error":return"red";case"warning":return"orange";default:return"blue"}},hs=(e,t=2)=>{if(typeof e=="string")return e;try{return JSON.stringify(e,null,t)}catch(n){return console.error("[resultFormatters] Failed to stringify value:",n),String(e)}},{Text:Pn}=ft,kC=(e,t,n)=>{const r={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:n?11:t.fontSizeSM,lineHeight:n?1.35:1.5,padding:n?"0 4px":"0 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"};return e.kind==="add"?r.background=t.colorSuccessBg:e.kind==="remove"?r.background=t.colorErrorBg:e.kind==="modified_add"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorSuccess}`):e.kind==="modified_remove"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorError}`):e.kind==="hunk"?(r.background=t.colorFillSecondary,r.color=t.colorTextSecondary):e.kind==="meta"?(r.background=t.colorFillTertiary,r.color=t.colorTextSecondary):e.kind==="gap"&&(r.background=t.colorFillQuaternary,r.color=t.colorTextTertiary,r.textAlign="center",r.fontStyle="italic"),r},ja=(e,t,n)=>{if(e==="remove"&&t==="old")return n.colorErrorBg;if(e==="add"&&t==="new")return n.colorSuccessBg;if(e==="modified")return t==="old"?n.colorErrorBg:n.colorSuccessBg},Ra=(e,t,n)=>{if(e==="modified")return t==="old"?`3px solid ${n.colorError}`:`3px solid ${n.colorSuccess}`},Ch=e=>e==null?"":String(e),qi=({payload:e,defaultViewMode:t="sideBySide",showHeader:n=!0,showViewToggle:r=!0,compact:s=!1,height:o,maxHeight:i=400,unifiedLinesOverride:l})=>{var j;const{t:u}=Ge(),{token:d}=ut.useToken(),[h,m]=y.useState(t),b=y.useMemo(()=>{const C=vy(e.diff.unified);return{added:e.diff.added_lines??C.added,removed:e.diff.removed_lines??C.removed}},[e]),v=y.useMemo(()=>l??by(e.diff.unified),[e.diff.unified,l]),w=y.useMemo(()=>SC(e.diff.unified),[e.diff.unified]),S=o!==void 0,k={display:"flex",flexDirection:"column",gap:s?6:d.marginSM,minHeight:0,height:S?o:void 0},P={border:`1px solid ${d.colorBorderSecondary}`,borderRadius:s?6:d.borderRadiusSM,overflow:"auto",background:d.colorBgContainer,minHeight:0,flex:S?1:void 0,maxHeight:S?void 0:i},T=s?"small":"middle";return a.jsxs("div",{style:k,children:[n&&a.jsxs("div",{style:{display:"grid",gap:s?2:d.marginXS},children:[e.message?a.jsx(Pn,{style:{fontSize:s?11:d.fontSizeSM},children:e.message}):null,a.jsxs(Ue,{size:s?2:8,wrap:!0,children:[a.jsxs(Pn,{style:{fontSize:s?11:d.fontSizeSM},children:[a.jsxs(Pn,{strong:!0,children:[u("common.file"),":"]})," ",a.jsx(Pn,{code:!0,children:e.file_path})]}),e.workspace?a.jsxs(Pn,{style:{fontSize:s?11:d.fontSizeSM},children:[a.jsxs(Pn,{strong:!0,children:[u("common.workspace"),":"]})," ",a.jsx(Pn,{code:!0,children:e.workspace})]}):null,a.jsxs(Pn,{style:{color:d.colorSuccess,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",b.added]}),a.jsxs(Pn,{style:{color:d.colorError,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",b.removed]})]}),(j=e.checkpoint)!=null&&j.created?a.jsxs(Pn,{style:{fontSize:s?d.fontSizeSM-1:d.fontSizeSM},children:[a.jsxs(Pn,{strong:!0,children:[u("components.toolResult.checkpoint"),":"]})," ",a.jsx(Pn,{code:!0,children:e.checkpoint.path})]}):a.jsx(Pn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:u("components.toolResult.checkpointNone")})]}),r?a.jsxs(Ue,{size:s?2:8,wrap:!0,children:[a.jsx(je,{size:T,type:h==="sideBySide"?"primary":"default",onClick:()=>m("sideBySide"),children:u("components.toolResult.sideBySide",{defaultValue:"Side by side"})}),a.jsx(je,{size:T,type:h==="unified"?"primary":"default",onClick:()=>m("unified"),children:u("components.toolResult.unified",{defaultValue:"Unified"})})]}):null,a.jsx("div",{style:P,children:h==="unified"?v.length>0?v.map((C,E)=>a.jsx("pre",{style:kC(C,d,s),children:C.text||" "},`${E}-${C.kind}`)):a.jsx(Pn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:u("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})}):w.length>0?a.jsx("div",{children:w.map((C,E)=>{if(C.kind==="meta"||C.kind==="hunk")return a.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:s?11:d.fontSizeSM,lineHeight:s?1.35:1.5,padding:s?"2px 4px":"4px 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",background:C.kind==="meta"?d.colorFillTertiary:d.colorFillSecondary,color:d.colorTextSecondary,borderBottom:`1px solid ${d.colorBorderSecondary}`},children:C.text||" "},`meta-${E}`);const A=s?11:d.fontSizeSM,O=s?"2px 4px":"4px 8px",D={padding:O,textAlign:"right",color:d.colorTextTertiary,fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A,borderRight:`1px solid ${d.colorBorderSecondary}`,userSelect:"none"},F={padding:O,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A};return a.jsxs("div",{style:{display:"grid",gridTemplateColumns:s?"48px 1fr 48px 1fr":"64px 1fr 64px 1fr",borderBottom:`1px solid ${d.colorBorderSecondary}`},children:[a.jsx("div",{style:{...D,background:ja(C.kind,"old",d),borderLeft:Ra(C.kind,"old",d)},children:Ch(C.oldLineNumber)}),a.jsx("div",{style:{...F,background:ja(C.kind,"old",d),borderRight:`1px solid ${d.colorBorderSecondary}`,borderLeft:Ra(C.kind,"old",d)},children:C.oldText??" "}),a.jsx("div",{style:{...D,background:ja(C.kind,"new",d),borderLeft:Ra(C.kind,"new",d)},children:Ch(C.newLineNumber)}),a.jsx("div",{style:{...F,background:ja(C.kind,"new",d),borderLeft:Ra(C.kind,"new",d)},children:C.newText??" "})]},`side-${E}`)})}):a.jsx(Pn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:u("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})})}),e.diff.truncated?a.jsx(Pn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:u("components.toolResult.diffTruncated")}):null]})},{Text:CC}=ft,TC=e=>e.filter(t=>t!=null&&t!==!1&&!(typeof t=="string"&&t.trim()==="")),PC=(e,t)=>e.flatMap((n,r)=>r===0?[a.jsx(ht.Fragment,{children:n},`item-${r}`)]:[a.jsx(ht.Fragment,{children:t},`sep-${r}`),a.jsx(ht.Fragment,{children:n},`item-${r}`)]),kc=({items:e,separator:t=" · ",nowrap:n=!1,block:r=!1,style:s,className:o,ellipsis:i,...l})=>{const u=TC(e);return u.length===0?null:a.jsx(CC,{type:"secondary",className:o,ellipsis:i,style:{fontSize:11,lineHeight:1.35,whiteSpace:n?"nowrap":void 0,display:r?"block":void 0,...s},...l,children:PC(u,t)})},{Text:An}=ft,MC=220,EC=560,jC=420,Ja=e=>e.split(/[\\/]/).pop()||e,RC=e=>{const t=e.replace(/\\/g,"/"),n=t.lastIndexOf("/");return n<=0?null:t.slice(0,n)},Th=e=>e.added+e.removed,Cu=e=>e.toLocaleString(),Ph=(e,t)=>`(+${Cu(e)} / -${Cu(t)})`,AC=e=>({operation:"session_diff_review",file_path:e.filePath,workspace:e.workspace,diff:{unified:e.unifiedDiff,added_lines:e.added,removed_lines:e.removed,truncated:e.truncated}}),Tu=(e,t)=>{const n=[...e];return t==="path"?(n.sort((r,s)=>r.filePath.localeCompare(s.filePath)),n):(n.sort((r,s)=>{const o=Th(s)-Th(r);return o!==0?o:r.filePath.localeCompare(s.filePath)}),n)},qs=({value:e,kind:t,compact:n=!1})=>{const{token:r}=ut.useToken(),s=t==="added";return a.jsxs(An,{style:{color:s?r.colorSuccess:r.colorError,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"nowrap",fontSize:n?11:void 0},children:[s?"+":"-",Cu(e)]})},Mh=({files:e,changedTools:t,totalAdded:n,totalRemoved:r,sortMode:s,selectedFilePath:o,compact:i=!1,onSortModeChange:l,onSelectFile:u})=>{const{token:d}=ut.useToken(),h=y.useMemo(()=>Tu(e,s),[e,s]),m=y.useMemo(()=>e.filter(S=>S.truncated).length,[e]),b=y.useMemo(()=>Tu(e,"magnitude")[0]??null,[e]),v=i?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},w=y.useMemo(()=>{const S=[];return b&&S.push(`Largest: ${Ja(b.filePath)} ${Ph(b.added,b.removed)}`),m>0&&S.push(`${m} truncated preview${m>1?"s":""}`),S},[b,m]);return a.jsxs(Me,{vertical:!0,gap:i?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},children:[a.jsxs(Me,{vertical:!0,gap:i?4:6,style:{width:"100%",minWidth:0},children:[a.jsxs(Me,{align:"flex-start",justify:"space-between",gap:i?d.marginXS:d.marginSM,wrap:!0,children:[a.jsxs(Ue,{size:i?6:d.marginXS,wrap:!0,children:[a.jsx(pg,{style:{color:d.colorPrimary}}),a.jsx(An,{strong:!0,style:i?{fontSize:12}:void 0,children:"Session diffs"}),i?null:a.jsx(An,{type:"secondary",children:"Review changed files, then open one file at a time."})]}),a.jsxs(Ue,{size:i?2:4,wrap:!0,children:[i?a.jsx(kc,{nowrap:!0,items:[`${e.length} files`,`${t} tools`]}):a.jsxs(a.Fragment,{children:[a.jsxs(Je,{style:v,children:[e.length," files"]}),a.jsxs(Je,{style:v,children:[t," tools"]})]}),a.jsx(qs,{value:n,kind:"added"}),a.jsx(qs,{value:r,kind:"removed"})]})]}),i?a.jsx(kc,{block:!0,items:w}):a.jsxs(a.Fragment,{children:[b?a.jsxs(An,{type:"secondary",style:{fontSize:d.fontSizeSM},children:["Largest change: ",Ja(b.filePath)," ",Ph(b.added,b.removed)]}):null,m>0?a.jsxs(An,{type:"secondary",style:{fontSize:d.fontSizeSM},children:[m," diff",m>1?"s":""," truncated in preview."]}):null]})]}),a.jsxs(Me,{align:"center",justify:"space-between",gap:i?d.marginXS:d.marginSM,wrap:!0,children:[a.jsx(An,{strong:!0,style:i?{fontSize:12}:void 0,children:i?"Files":"Changed files"}),e.length>1?a.jsxs(Ue,{size:i?4:8,wrap:!0,children:[a.jsx(je,{size:"small",type:s==="magnitude"?"primary":"default",onClick:()=>l("magnitude"),"data-testid":"session-diff-sort-magnitude",children:i?"Largest":"Largest changes"}),a.jsx(je,{size:"small",type:s==="path"?"primary":"default",onClick:()=>l("path"),"data-testid":"session-diff-sort-path",children:"Path"})]}):null]}),a.jsx("div",{"data-testid":"session-diff-file-list",style:{display:"grid",gridTemplateColumns:"1fr",gap:i?4:6,width:"100%",minWidth:0,maxHeight:i?jC:EC,overflowY:"auto",overflowX:"hidden"},children:h.map(S=>{const k=RC(S.filePath),P=o===S.filePath,T=i?[k,S.toolCount&&S.toolCount>1?`${S.toolCount} tool steps`:null]:[];return a.jsx("button",{type:"button","aria-pressed":P,"data-selected":P?"true":"false",onClick:()=>u(S.filePath),"data-testid":"session-diff-file-row","data-file-path":S.filePath,style:{width:"100%",minWidth:0,padding:i?"6px 8px":`${d.paddingSM}px`,borderRadius:d.borderRadiusSM,border:`1px solid ${P?d.colorPrimary:d.colorBorderSecondary}`,background:P?d.colorFillSecondary:d.colorFillTertiary,boxShadow:P?`inset 0 0 0 1px ${d.colorPrimary}`:"none",cursor:"pointer",textAlign:"left",transition:"border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease"},children:a.jsxs(Me,{align:"flex-start",justify:"space-between",gap:i?d.marginXS:d.marginSM,style:{width:"100%"},children:[a.jsxs(Me,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[a.jsxs(Me,{align:"center",gap:d.marginXS,style:{minWidth:0},children:[a.jsx(Wr,{style:{color:P?d.colorPrimary:d.colorTextSecondary,flex:"0 0 auto"}}),a.jsx(An,{strong:!0,ellipsis:{tooltip:S.filePath},style:{display:"block",flex:1,minWidth:0},children:Ja(S.filePath)}),S.truncated?i?a.jsx(An,{type:"secondary",style:{fontSize:11,flex:"0 0 auto"},children:"· trunc."}):a.jsx(Je,{color:"warning",style:{...v,flex:"0 0 auto"},children:"Truncated"}):null]}),i?a.jsx(kc,{block:!0,items:T,style:{minWidth:0,whiteSpace:"normal",wordBreak:"break-word"}}):a.jsxs(a.Fragment,{children:[k?a.jsx(An,{type:"secondary",ellipsis:{tooltip:S.filePath},style:{display:"block",minWidth:0,fontSize:d.fontSizeSM},children:k}):null,S.toolCount&&S.toolCount>1?a.jsxs(An,{type:"secondary",style:{fontSize:Math.max(d.fontSizeSM-1,11)},children:["Touched by ",S.toolCount," tool steps"]}):null]})]}),a.jsxs(Me,{vertical:!0,align:"flex-end",gap:i?1:0,style:{flex:"0 0 auto"},children:[a.jsx(qs,{value:S.added,kind:"added",compact:i}),a.jsx(qs,{value:S.removed,kind:"removed",compact:i})]})]})},S.filePath)})})]})},IC=({file:e,currentPosition:t,totalFiles:n,canGoPrevious:r,canGoNext:s,compact:o=!1,onPrevious:i,onNext:l,onBack:u})=>{const{token:d}=ut.useToken(),h=y.useMemo(()=>AC(e),[e]);return a.jsxs(Me,{vertical:!0,gap:o?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},"data-testid":"session-diff-detail-view",children:[a.jsxs(Me,{align:"center",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[a.jsxs(Ue,{size:o?4:8,wrap:!0,children:[a.jsx(je,{type:"text",size:"small",icon:a.jsx(NS,{}),onClick:u,"data-testid":"session-diff-back",style:{paddingInline:0},children:"Back to files"}),a.jsxs(An,{type:"secondary","data-testid":"session-diff-position",style:o?{fontSize:11}:void 0,children:["File ",t," of ",n]})]}),n>1?a.jsxs(Ue,{size:o?4:8,wrap:!0,children:[a.jsx(je,{size:"small",icon:a.jsx(su,{}),onClick:i,disabled:!r,"data-testid":"session-diff-prev",children:"Previous"}),a.jsx(je,{size:"small",icon:a.jsx(Wr,{}),onClick:l,disabled:!s,"data-testid":"session-diff-next",children:"Next"})]}):null]}),a.jsxs(Me,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[a.jsxs(Me,{align:"flex-start",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[a.jsxs(Me,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[a.jsx(An,{strong:!0,ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0},children:Ja(e.filePath)}),a.jsx(An,{type:"secondary",ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.filePath}),e.workspace?a.jsx(An,{type:"secondary",ellipsis:{tooltip:e.workspace},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.workspace}):null]}),a.jsxs(Ue,{size:o?2:4,wrap:!0,children:[e.truncated?a.jsx(Je,{color:"warning",style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:o?"Trunc.":"Truncated"}):null,e.toolCount&&e.toolCount>1?a.jsxs(Je,{style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:[e.toolCount," tools"]}):null,a.jsx(qs,{value:e.added,kind:"added",compact:o}),a.jsx(qs,{value:e.removed,kind:"removed",compact:o})]})]}),o?null:a.jsx(An,{type:"secondary",style:{fontSize:d.fontSizeSM},children:"Review this file in side-by-side or unified mode."})]}),a.jsx(qi,{payload:h,defaultViewMode:"sideBySide",showHeader:!1,showViewToggle:!0,compact:o,maxHeight:o?"calc(100vh - 240px)":"calc(100vh - 280px)"})]})},xy=({sessionDiffSummary:e,sessionId:t,compact:n=!1})=>{const{token:r}=ut.useToken(),s=!!(e&&e.files.length>0),[o,i]=y.useState(s),[l,u]=y.useState(s),[d,h]=y.useState("magnitude"),[m,b]=y.useState(null);y.useEffect(()=>{if(s){i(!0);const T=window.setTimeout(()=>u(!0),0);return()=>window.clearTimeout(T)}u(!1);const P=window.setTimeout(()=>i(!1),MC);return()=>window.clearTimeout(P)},[s]),y.useEffect(()=>{h("magnitude"),b(null)},[t]);const v=y.useMemo(()=>(e==null?void 0:e.files)??[],[e]),w=y.useMemo(()=>Tu(v,d),[v,d]),S=y.useMemo(()=>w.findIndex(P=>P.filePath===m),[w,m]),k=S>=0?w[S]:null;return y.useEffect(()=>{m&&(v.some(P=>P.filePath===m)||b(null))},[v,m]),!o||!e?null:a.jsxs("div",{className:`active-tool-card-wrapper ${l?"visible":""}`,"aria-hidden":!l,"data-testid":"session-diff-card",style:{width:"100%",minWidth:0},children:[a.jsx("div",{style:n?{width:"100%",minWidth:0,padding:"2px 0 0"}:{width:"100%",minWidth:0},children:n?a.jsx(Mh,{files:v,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:m,compact:n,onSortModeChange:h,onSelectFile:b}):a.jsx(nn,{size:"small",style:{width:"100%",minWidth:0,overflow:"hidden",borderRadius:r.borderRadiusLG,border:`1px solid ${r.colorBorderSecondary}`,background:r.colorBgContainer,boxShadow:r.boxShadowSecondary},styles:{body:{padding:`${r.paddingSM}px`}},children:a.jsx(Mh,{files:v,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:m,compact:n,onSortModeChange:h,onSelectFile:b})})}),a.jsx(Ml,{title:"Diff details",placement:"right",open:!!k,onClose:()=>b(null),width:"min(1280px, calc(100vw - 24px))",styles:{body:{padding:n?r.paddingXS:r.paddingLG,minWidth:0}},destroyOnClose:!0,children:k?a.jsx(IC,{file:k,currentPosition:S+1,totalFiles:w.length,canGoPrevious:S>0,canGoNext:S>=0&&S<w.length-1,compact:n,onPrevious:()=>{S>0&&b(w[S-1].filePath)},onNext:()=>{S>=0&&S<w.length-1&&b(w[S+1].filePath)},onBack:()=>b(null)}):null})]})},OC=e=>{if(!e)return;const{activeLeafId:t,setLeafSessionId:n,setActiveLeafId:r}=gt.getState();n(t,e),r(t),ae.getState().selectSession(e)},$C=["You are Bodhi operating in code review mode.","Review code changes with emphasis on correctness, regressions, security, maintainability, tests, and rollout risk.","Prefer concise findings with severity, rationale, and actionable fixes.","Ask for missing scope or repository context before making strong assumptions."].join(" "),LC=["You are Bodhi operating in bug investigation mode.","Help diagnose issues by analyzing code, logs, stack traces, and runtime behavior.","Trace root causes methodically, suggest targeted fixes, and flag related risks.","Ask for reproduction steps or error messages if not provided."].join(" "),FC=["You are Bodhi operating in feature implementation mode.","Help plan and implement new features step by step, following existing code conventions.","Consider edge cases, testing strategies, and backward compatibility.","Propose an implementation plan before writing code when scope is large."].join(" "),DC=["You are Bodhi operating in architecture analysis mode.","Analyze the repository structure, key abstractions, data flow, and module boundaries.","Identify architectural patterns, coupling hotspots, and potential improvements.","Use diagrams to illustrate relationships when helpful."].join(" "),NC=["You are Bodhi operating in error explanation mode.","Help users understand error messages, stack traces, and unexpected behavior.","Explain the root cause clearly, suggest fixes, and provide prevention tips.","Keep explanations accessible even for less experienced developers."].join(" "),BC=["You are Bodhi operating in file comparison mode.","Compare the given files or code sections, highlighting key differences and their implications.","Focus on functional changes, potential regressions, and design trade-offs."].join(" "),zC=["You are Bodhi operating in refactoring advisor mode.","Suggest targeted refactoring improvements for readability, maintainability, and performance.","Respect existing code style, propose incremental changes, and explain the rationale.","Flag any risks introduced by the refactoring."].join(" "),WC=["You are Bodhi operating in release notes generation mode.","Generate clear, well-structured release notes from git history and code changes.","Categorize changes (features, fixes, improvements, breaking changes).","Write for both technical and non-technical readers."].join(" "),UC=["You are Bodhi operating in work summary mode.","Help summarize recent work activity for standups, weeklies, or status reports.","Pull key accomplishments, blockers, and next steps from session history or code changes.","Keep output concise and actionable."].join(" "),qC=["You are Bodhi operating in documentation writer mode.","Help create or improve technical documentation from code and project context.","Follow good documentation practices: clear structure, examples, and consistent terminology.","Produce Markdown-formatted output by default."].join(" "),HC=["You are Bodhi operating in scheduled task setup mode.","Help the user create a recurring scheduled task in Bamboo.","Clarify the task goal, frequency, workspace, and expected output before proceeding.","Guide the user through configuration and confirm before saving."].join(" "),YC=["You are Bodhi operating in session review mode.","Help inspect and analyze past session history for patterns, insights, or issues.","Summarize key decisions, outcomes, and areas that may need follow-up."].join(" "),XC=["You are Bodhi operating in context diagnostics mode.","Help analyze token usage, prompt bloat, context growth, truncation, and compression behavior.","Quantify likely causes when possible and recommend concrete, prioritized fixes.","Keep the output practical for engineers improving prompt and session efficiency."].join(" "),KC=["development","debugging","analysis","documentation","operations"],VC={development:{titleKey:"chat.emptyLauncher.categories.development",fallback:"Development"},debugging:{titleKey:"chat.emptyLauncher.categories.debugging",fallback:"Debugging"},analysis:{titleKey:"chat.emptyLauncher.categories.analysis",fallback:"Analysis"},documentation:{titleKey:"chat.emptyLauncher.categories.documentation",fallback:"Documentation"},operations:{titleKey:"chat.emptyLauncher.categories.operations",fallback:"Operations"}},GC=(e,t)=>{const n=e.find(s=>s.id===t),r=e.find(s=>s.id==="general_assistant")||e[0];return{systemPromptId:(n==null?void 0:n.id)||(r==null?void 0:r.id)||"",baseSystemPrompt:(n==null?void 0:n.content)||(r==null?void 0:r.content)||""}},JC=({sessionId:e=null,embedded:t=!1,hideHeader:n=!1,layoutMode:r="default"})=>{var q;const{t:s}=Ge(),{token:o}=ut.useToken(),{message:i}=Fn.useApp(),l=ae(I=>e??I.currentSessionId),u=ae(ks(l)),d=ae(I=>I.addChat),h=ae(I=>I.lastSelectedPromptId),m=ae(I=>I.setInputContent),b=ae(I=>I.systemPrompts),v=ae(I=>I.chats),[w,S]=y.useState(null),[k,P]=y.useState(""),T=(u==null?void 0:u.config.workspacePath)??((q=v.find(I=>I.config.workspacePath))==null?void 0:q.config.workspacePath),j=y.useMemo(()=>[{id:"blank",icon:a.jsx(nd,{}),title:s("chat.emptyLauncher.actions.blank.title","Blank session"),description:s("chat.emptyLauncher.actions.blank.description","Start from scratch with the default assistant and an empty composer."),sessionTitle:s("chat.emptyLauncher.actions.blank.sessionTitle","New Session"),prefill:s("chat.emptyLauncher.actions.blank.prefill",""),category:"development"},{id:"codeReview",icon:a.jsx(BS,{}),title:s("chat.emptyLauncher.actions.codeReview.title","Code review"),description:s("chat.emptyLauncher.actions.codeReview.description","Open a review-focused session with an editable review brief."),sessionTitle:s("chat.emptyLauncher.actions.codeReview.sessionTitle","Code Review"),prefill:s("chat.emptyLauncher.actions.codeReview.prefill","Review the relevant code changes in this workspace or repository. Start with the overall scope, then list risks, notable diffs, and the most important fixes."),baseSystemPrompt:$C,category:"development",recommendWorkspace:!0},{id:"implementFeature",icon:a.jsx(sd,{}),title:s("chat.emptyLauncher.actions.implementFeature.title","Implement feature"),description:s("chat.emptyLauncher.actions.implementFeature.description","Plan and build a feature step by step following existing code conventions."),sessionTitle:s("chat.emptyLauncher.actions.implementFeature.sessionTitle","Implement Feature"),prefill:s("chat.emptyLauncher.actions.implementFeature.prefill","Help me implement a new feature in this workspace. Start by understanding the codebase structure, then propose an implementation plan before writing code."),baseSystemPrompt:FC,category:"development",recommendWorkspace:!0},{id:"refactor",icon:a.jsx(pg,{}),title:s("chat.emptyLauncher.actions.refactor.title","Refactor code"),description:s("chat.emptyLauncher.actions.refactor.description","Get targeted suggestions for improving code quality and maintainability."),sessionTitle:s("chat.emptyLauncher.actions.refactor.sessionTitle","Refactor Suggestion"),prefill:s("chat.emptyLauncher.actions.refactor.prefill","Suggest refactoring improvements for the code in this workspace. Focus on readability, maintainability, and performance. Propose incremental changes with clear rationale."),baseSystemPrompt:zC,category:"development",recommendWorkspace:!0},{id:"bugInvestigation",icon:a.jsx(dg,{}),title:s("chat.emptyLauncher.actions.bugInvestigation.title","Bug investigation"),description:s("chat.emptyLauncher.actions.bugInvestigation.description","Diagnose issues by analyzing code, logs, and runtime behavior."),sessionTitle:s("chat.emptyLauncher.actions.bugInvestigation.sessionTitle","Bug Investigation"),prefill:s("chat.emptyLauncher.actions.bugInvestigation.prefill","Help me investigate a bug. I'll describe the symptoms and share relevant code or logs. Trace the root cause and suggest targeted fixes."),baseSystemPrompt:LC,category:"debugging",recommendWorkspace:!0},{id:"explainError",icon:a.jsx(mg,{}),title:s("chat.emptyLauncher.actions.explainError.title","Explain error"),description:s("chat.emptyLauncher.actions.explainError.description","Understand what went wrong from an error message or stack trace."),sessionTitle:s("chat.emptyLauncher.actions.explainError.sessionTitle","Explain Error"),prefill:s("chat.emptyLauncher.actions.explainError.prefill","Help me understand the following error. Explain the root cause, suggest fixes, and share prevention tips."),baseSystemPrompt:NC,category:"debugging"},{id:"tokenUsage",icon:a.jsx(zS,{}),title:s("chat.emptyLauncher.actions.tokenUsage.title","Token usage investigation"),description:s("chat.emptyLauncher.actions.tokenUsage.description","Diagnose context growth, truncation risk, and token budget pressure."),sessionTitle:s("chat.emptyLauncher.actions.tokenUsage.sessionTitle","Token Usage Investigation"),prefill:s("chat.emptyLauncher.actions.tokenUsage.prefill","Help me investigate token usage, context growth, and truncation risk for this session or workflow. Summarize the likely drivers and recommend concrete next fixes."),baseSystemPrompt:XC,category:"debugging"},{id:"architectureReview",icon:a.jsx(WS,{}),title:s("chat.emptyLauncher.actions.architectureReview.title","Read repo architecture"),description:s("chat.emptyLauncher.actions.architectureReview.description","Analyze repository structure, modules, and architectural patterns."),sessionTitle:s("chat.emptyLauncher.actions.architectureReview.sessionTitle","Architecture Review"),prefill:s("chat.emptyLauncher.actions.architectureReview.prefill","Analyze the architecture of this repository. Map the key modules, data flow, abstractions, and dependency patterns. Identify strengths and potential improvements."),baseSystemPrompt:DC,category:"analysis",recommendWorkspace:!0},{id:"compareFiles",icon:a.jsx(US,{}),title:s("chat.emptyLauncher.actions.compareFiles.title","Compare files"),description:s("chat.emptyLauncher.actions.compareFiles.description","Diff and understand differences between files or code sections."),sessionTitle:s("chat.emptyLauncher.actions.compareFiles.sessionTitle","Compare Files"),prefill:s("chat.emptyLauncher.actions.compareFiles.prefill","Compare the following files or code sections. Highlight key differences, their implications, and any potential risks."),baseSystemPrompt:BC,category:"analysis",recommendWorkspace:!0},{id:"releaseNotes",icon:a.jsx(ll,{}),title:s("chat.emptyLauncher.actions.releaseNotes.title","Generate release notes"),description:s("chat.emptyLauncher.actions.releaseNotes.description","Create structured release notes from git history and code changes."),sessionTitle:s("chat.emptyLauncher.actions.releaseNotes.sessionTitle","Release Notes"),prefill:s("chat.emptyLauncher.actions.releaseNotes.prefill","Generate release notes for the latest changes in this workspace. Categorize into features, fixes, improvements, and breaking changes."),baseSystemPrompt:WC,category:"documentation",recommendWorkspace:!0},{id:"summarizeWork",icon:a.jsx(qS,{}),title:s("chat.emptyLauncher.actions.summarizeWork.title","Summarize work"),description:s("chat.emptyLauncher.actions.summarizeWork.description","Create a work summary for standups or weekly status reports."),sessionTitle:s("chat.emptyLauncher.actions.summarizeWork.sessionTitle","Work Summary"),prefill:s("chat.emptyLauncher.actions.summarizeWork.prefill","Help me summarize my recent work for a status update. Pull key accomplishments, blockers, and next steps."),baseSystemPrompt:UC,category:"documentation"},{id:"writeDocs",icon:a.jsx(ll,{}),title:s("chat.emptyLauncher.actions.writeDocs.title","Write documentation"),description:s("chat.emptyLauncher.actions.writeDocs.description","Create or improve technical documentation from code and context."),sessionTitle:s("chat.emptyLauncher.actions.writeDocs.sessionTitle","Write Documentation"),prefill:s("chat.emptyLauncher.actions.writeDocs.prefill","Help me write technical documentation for this project. Analyze the code and produce clear, well-structured Markdown documentation."),baseSystemPrompt:qC,category:"documentation",recommendWorkspace:!0},{id:"createSchedule",icon:a.jsx(Js,{}),title:s("chat.emptyLauncher.actions.createSchedule.title","Create scheduled task"),description:s("chat.emptyLauncher.actions.createSchedule.description","Set up a recurring task that runs automatically on a schedule."),sessionTitle:s("chat.emptyLauncher.actions.createSchedule.sessionTitle","Create Schedule"),prefill:s("chat.emptyLauncher.actions.createSchedule.prefill","Help me set up a recurring scheduled task. I'll describe what I want it to do, and you guide me through the configuration."),baseSystemPrompt:HC,category:"operations"},{id:"sessionReview",icon:a.jsx(ru,{}),title:s("chat.emptyLauncher.actions.sessionReview.title","Review session history"),description:s("chat.emptyLauncher.actions.sessionReview.description","Inspect and analyze past sessions for patterns and insights."),sessionTitle:s("chat.emptyLauncher.actions.sessionReview.sessionTitle","Session Review"),prefill:s("chat.emptyLauncher.actions.sessionReview.prefill","Help me review my recent session history. Summarize key decisions, outcomes, and areas that need follow-up."),baseSystemPrompt:YC,category:"operations"}],[s]),C=k.trim().toLowerCase(),E=y.useMemo(()=>C?j.filter(I=>I.title.toLowerCase().includes(C)||I.description.toLowerCase().includes(C)):j,[C,j]),A=y.useMemo(()=>{const I={};for(const Q of E)I[Q.category]||(I[Q.category]=[]),I[Q.category].push(Q);return I},[E]),O=y.useCallback(I=>{typeof window>"u"||window.setTimeout(()=>{window.dispatchEvent(new CustomEvent(xu,{detail:{sessionId:I}}))},0)},[]),D=y.useCallback(async I=>{if(!w){S(I.id);try{const Q=GC(b,h),G=await d({title:I.sessionTitle,createdAt:Date.now(),messages:[],config:{systemPromptId:Q.systemPromptId,baseSystemPrompt:I.baseSystemPrompt??Q.baseSystemPrompt,lastUsedEnhancedPrompt:null,...T?{workspacePath:T}:{}}});OC(G),I.prefill.trim().length>0&&m(G,I.prefill),O(G)}catch(Q){console.error("[EmptyTaskLauncher] Failed to create session",Q),i.error(Q instanceof Error?Q.message:s("chat.emptyLauncher.errors.createFailed","Failed to create session"))}finally{S(null)}}},[d,h,i,w,O,m,b,s,T]),F=y.useMemo(()=>({"--lotus-empty-launcher-border":o.colorBorderSecondary,"--lotus-empty-launcher-border-hover":o.colorPrimaryBorder,"--lotus-empty-launcher-bg":o.colorBgElevated,"--lotus-empty-launcher-icon-bg":o.colorPrimaryBg,"--lotus-empty-launcher-icon-color":o.colorPrimary,"--lotus-empty-launcher-text":o.colorText,"--lotus-empty-launcher-text-secondary":o.colorTextSecondary,"--lotus-empty-launcher-shadow":o.boxShadowSecondary,"--lotus-empty-launcher-shadow-hover":o.boxShadow,"--lotus-empty-launcher-category-border":o.colorBorderSecondary,"--lotus-empty-launcher-search-bg":o.colorBgContainer,"--lotus-empty-launcher-badge-bg":o.colorPrimaryBg,"--lotus-empty-launcher-badge-text":o.colorPrimary}),[o]),N=!!T;return a.jsxs("div",{className:`lotus-empty-task-launcher ${t?"is-embedded":""} ${n?"is-headerless":""} ${r==="staggered"?"is-staggered":""}`,style:F,children:[!n&&a.jsxs("div",{className:"lotus-empty-task-launcher__header",children:[a.jsx(ft.Title,{level:t?4:3,style:{margin:0},children:s("chat.emptyLauncher.title","Start with a task")}),a.jsx(ft.Paragraph,{type:"secondary",className:"lotus-empty-task-launcher__subtitle",children:s("chat.emptyLauncher.subtitle","Create a focused session in this pane and prefill the first message before you send it.")}),a.jsx(ft.Text,{type:"secondary",className:"lotus-empty-task-launcher__hint",children:s("chat.emptyLauncher.hint","Nothing is sent automatically — you can edit the prompt first.")})]}),a.jsx("div",{className:"lotus-empty-task-launcher__search",children:a.jsx(xs,{placeholder:s("chat.emptyLauncher.searchPlaceholder","Search templates..."),prefix:a.jsx(ru,{style:{color:o.colorTextQuaternary}}),value:k,onChange:I=>P(I.target.value),allowClear:!0,size:"middle",variant:"filled"})}),a.jsxs("div",{className:"lotus-empty-task-launcher__categories",children:[KC.map(I=>{const Q=A[I];if(!Q||Q.length===0)return null;const G=VC[I];return a.jsxs("div",{className:"lotus-empty-task-launcher__category",children:[a.jsx(ft.Text,{type:"secondary",className:"lotus-empty-task-launcher__category-label",children:s(G.titleKey,G.fallback)}),a.jsx("div",{className:"lotus-empty-task-launcher__grid",children:Q.map(Z=>{const pe=w===Z.id,$=Z.recommendWorkspace&&N;return a.jsxs("button",{type:"button",className:"lotus-empty-task-card",onClick:()=>{D(Z)},disabled:w!==null,"aria-busy":pe,"aria-label":Z.title,children:[a.jsx("div",{className:"lotus-empty-task-card__icon","aria-hidden":!0,children:pe?a.jsx(ms,{}):Z.icon}),a.jsxs("div",{className:"lotus-empty-task-card__body",children:[a.jsxs("div",{className:"lotus-empty-task-card__titleRow",children:[a.jsx("span",{className:"lotus-empty-task-card__title",children:Z.title}),a.jsx(HS,{className:"lotus-empty-task-card__arrow","aria-hidden":!0})]}),a.jsx("p",{className:"lotus-empty-task-card__description",children:Z.description}),$&&a.jsx("div",{className:"lotus-empty-task-card__badges",children:a.jsxs("span",{className:"lotus-empty-task-card__badge",title:T,children:["📂 ",s("chat.emptyLauncher.badges.workspace","workspace")]})})]})]},Z.id)})})]},I)}),E.length===0&&a.jsx("div",{className:"lotus-empty-task-launcher__no-results",children:a.jsx(ft.Text,{type:"secondary",children:s("chat.emptyLauncher.noResults","No templates match your search. Try a different keyword or start a blank session.")})})]})]})},QC=({sessionId:e,isCenteredLayout:t,maxWidth:n,onWorkflowDraftChange:r,showMessagesView:s,sessionDiffSummary:o,contextUsageIndicator:i,showSessionDiffCard:l=!0})=>a.jsx(Me,{justify:"center",className:`chat-view-input-container-wrapper ${s?"messages-view":"centered-view"}`,children:a.jsxs("div",{style:{width:"100%",maxWidth:s?n:"min(100%, 920px)",margin:s?"0 auto":void 0,position:"relative",paddingBottom:s?12:0,display:"flex",flexDirection:"column",gap:s?0:24},children:[s&&l?a.jsx(xy,{sessionDiffSummary:o,sessionId:e}):null,!s&&e?a.jsx(JC,{sessionId:e}):null,a.jsx(dC,{sessionId:e,isCenteredLayout:t,onWorkflowDraftChange:r,statusIndicator:i})]})});function Is(e,t,n){let r=n.initialDeps??[],s;function o(){var i,l,u,d;let h;n.key&&((i=n.debug)!=null&&i.call(n))&&(h=Date.now());const m=e();if(!(m.length!==r.length||m.some((w,S)=>r[S]!==w)))return s;r=m;let v;if(n.key&&((l=n.debug)!=null&&l.call(n))&&(v=Date.now()),s=t(...m),n.key&&((u=n.debug)!=null&&u.call(n))){const w=Math.round((Date.now()-h)*100)/100,S=Math.round((Date.now()-v)*100)/100,k=S/16,P=(T,j)=>{for(T=String(T);T.length<j;)T=" "+T;return T};console.info(`%c⏱ ${P(S,5)} /${P(w,5)} ms`,`
|
|
133
133
|
font-size: .6rem;
|
|
134
134
|
font-weight: bold;
|
|
135
|
-
color: hsl(${Math.max(0,Math.min(120-120*k,120))}deg 100% 31%);`,n==null?void 0:n.key)}return(f=n==null?void 0:n.onChange)==null||f.call(n,s),s}return o.updateDeps=i=>{r=i},o}function Mh(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const GC=(e,t)=>Math.abs(e-t)<1.01,JC=(e,t,n)=>{let r;return function(...s){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,s),n)}},jh=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},QC=e=>e,ZC=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let s=t;s<=n;s++)r.push(s);return r},eT=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const s=i=>{const{width:l,height:u}=i;t({width:Math.round(l),height:Math.round(u)})};if(s(jh(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(i=>{const l=()=>{const u=i[0];if(u!=null&&u.borderBoxSize){const f=u.borderBoxSize[0];if(f){s({width:f.inlineSize,height:f.blockSize});return}}s(jh(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},Rh={passive:!0},Ah=typeof window>"u"?!0:"onscrollend"in window,tT=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let s=0;const o=e.options.useScrollendEvent&&Ah?()=>{}:JC(r,()=>{t(s,!1)},e.options.isScrollingResetDelay),i=h=>()=>{const{horizontal:m,isRtl:b}=e.options;s=m?n.scrollLeft*(b&&-1||1):n.scrollTop,o(),t(s,h)},l=i(!0),u=i(!1);u(),n.addEventListener("scroll",l,Rh);const f=e.options.useScrollendEvent&&Ah;return f&&n.addEventListener("scrollend",u,Rh),()=>{n.removeEventListener("scroll",l),f&&n.removeEventListener("scrollend",u)}},nT=(e,t,n)=>{if(t!=null&&t.borderBoxSize){const r=t.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},rT=(e,{adjustments:t=0,behavior:n},r)=>{var s,o;const i=e+t;(o=(s=r.scrollElement)==null?void 0:s.scrollTo)==null||o.call(s,{[r.options.horizontal?"left":"top"]:i,behavior:n})};class sT{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(s=>{s.forEach(o=>{const i=()=>{this._measureElement(o.target,o)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var s;(s=r())==null||s.disconnect(),n=null},observe:s=>{var o;return(o=r())==null?void 0:o.observe(s,{box:"border-box"})},unobserve:s=>{var o;return(o=r())==null?void 0:o.unobserve(s)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,s])=>{typeof s>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:QC,rangeExtractor:ZC,onChange:()=>{},measureElement:nT,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...n}},this.notify=n=>{var r,s;(s=(r=this.options).onChange)==null||s.call(r,this,n)},this.maybeNotify=As(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=o,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,r)=>{const s=new Map,o=new Map;for(let i=r-1;i>=0;i--){const l=n[i];if(s.has(l.lane))continue;const u=o.get(l.lane);if(u==null||l.end>u.end?o.set(l.lane,l):l.end<u.end&&s.set(l.lane,!0),s.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((i,l)=>i.end===l.end?i.index-l.index:i.end-l.end)[0]:void 0},this.getMeasurementOptions=As(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(n,r,s,o,i)=>(this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i}),{key:!1}),this.getMeasurements=As(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i},l)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(h=>{this.itemSizeCache.set(h.key,h.size)}));const u=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const f=this.measurementsCache.slice(0,u);for(let h=u;h<n;h++){const m=o(h),b=this.options.lanes===1?f[h-1]:this.getFurthestMeasurement(f,h),v=b?b.end+this.options.gap:r+s,w=l.get(m),S=typeof w=="number"?w:this.options.estimateSize(h),k=v+S,P=b?b.lane:h%this.options.lanes;f[h]={index:h,start:v,size:S,end:k,key:m,lane:P}}return this.measurementsCache=f,f},{key:!1,debug:()=>this.options.debug}),this.calculateRange=As(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,s,o)=>this.range=n.length>0&&r>0?oT({measurements:n,outerSize:r,scrollOffset:s,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=As(()=>{let n=null,r=null;const s=this.calculateRange();return s&&(n=s.startIndex,r=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,r]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,r]},(n,r,s,o,i)=>o===null||i===null?[]:n({startIndex:o,endIndex:i,overscan:r,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,s=n.getAttribute(r);return s?parseInt(s,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this._measureElement=(n,r)=>{const s=this.indexFromElement(n),o=this.measurementsCache[s];if(!o)return;const i=o.key,l=this.elementsCache.get(i);l!==n&&(l&&this.observer.unobserve(l),this.observer.observe(n),this.elementsCache.set(i,n)),n.isConnected&&this.resizeItem(s,this.options.measureElement(n,r,this))},this.resizeItem=(n,r)=>{const s=this.measurementsCache[n];if(!s)return;const o=this.itemSizeCache.get(s.key)??s.size,i=r-o;i!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,i,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=i,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(s.index),this.itemSizeCache=new Map(this.itemSizeCache.set(s.key,r)),this.notify(!1))},this.measureElement=n=>{if(!n){this.elementsCache.forEach((r,s)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(s))});return}this._measureElement(n,void 0)},this.getVirtualItems=As(()=>[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const s=[];for(let o=0,i=n.length;o<i;o++){const l=n[o],u=r[l];s.push(u)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return Mh(r[xy(0,r.length-1,s=>Mh(r[s]).start,n)])},this.getOffsetForAlignment=(n,r,s=0)=>{const o=this.getSize(),i=this.getScrollOffset();r==="auto"&&(r=n>=i+o?"end":"start"),r==="center"?n+=(s-o)/2:r==="end"&&(n-=o);const l=this.getTotalSize()+this.options.scrollMargin-o;return Math.max(Math.min(l,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const s=this.measurementsCache[n];if(!s)return;const o=this.getSize(),i=this.getScrollOffset();if(r==="auto")if(s.end>=i+o-this.options.scrollPaddingEnd)r="end";else if(s.start<=i+this.options.scrollPaddingStart)r="start";else return[i,r];const l=r==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,r,s.size),r]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(n,{align:r="start",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(n,r),{adjustments:void 0,behavior:s})},this.scrollToIndex=(n,{align:r="auto",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),n=Math.max(0,Math.min(n,this.options.count-1));let o=0;const i=10,l=f=>{if(!this.targetWindow)return;const h=this.getOffsetForIndex(n,f);if(!h){console.warn("Failed to get offset for index:",n);return}const[m,b]=h;this._scrollToOffset(m,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const v=this.getScrollOffset(),w=this.getOffsetForIndex(n,b);if(!w){console.warn("Failed to get offset for index:",n);return}GC(w[0],v)||u(b)})},u=f=>{this.targetWindow&&(o++,o<i?this.targetWindow.requestAnimationFrame(()=>l(f)):console.warn(`Failed to scroll to index ${n} after ${i} attempts.`))};l(r)},this.scrollBy=(n,{behavior:r}={})=>{r==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+n,{adjustments:void 0,behavior:r})},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let s;if(r.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((n=r[r.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let i=r.length-1;for(;i>=0&&o.some(l=>l===null);){const l=r[i];o[l.lane]===null&&(o[l.lane]=l.end),i--}s=Math.max(...o.filter(l=>l!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:r,behavior:s})=>{this.options.scrollToFn(n,{behavior:s,adjustments:r},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(t)}}const xy=(e,t,n,r)=>{for(;e<=t;){const s=(e+t)/2|0,o=n(s);if(o<r)e=s+1;else if(o>r)t=s-1;else return s}return e>0?e-1:0};function oT({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const s=e.length-1,o=u=>e[u].start;if(e.length<=r)return{startIndex:0,endIndex:s};let i=xy(0,s,o,n),l=i;if(r===1)for(;l<s&&e[l].end<n+t;)l++;else if(r>1){const u=Array(r).fill(0);for(;l<s&&u.some(h=>h<n+t);){const h=e[l];u[h.lane]=h.end,l++}const f=Array(r).fill(n+t);for(;i>=0&&f.some(h=>h>=n);){const h=e[i];f[h.lane]=h.start,i--}i=Math.max(0,i-i%r),l=Math.min(s,l+(r-1-l%r))}return{startIndex:i,endIndex:l}}const Ih=typeof document<"u"?y.useLayoutEffect:y.useEffect;function iT(e){const t=y.useReducer(()=>({}),{})[1],n={...e,onChange:(s,o)=>{var i;o?HS.flushSync(t):t(),(i=e.onChange)==null||i.call(e,s,o)}},[r]=y.useState(()=>new sT(n));return r.setOptions(n),Ih(()=>r._didMount(),[]),Ih(()=>r._willUpdate()),r}function aT(e){return iT({observeElementRect:eT,observeElementOffset:tT,scrollToFn:rT,...e})}const{Text:Oh,Paragraph:lT}=ft,cT=({content:e,token:t,headingColor:n})=>a.jsx(vr,{components:{p:({children:r})=>a.jsx(lT,{style:{marginBottom:t.marginSM},children:r}),ol:({children:r})=>a.jsx("ol",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),ul:({children:r})=>a.jsx("ul",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),li:({children:r})=>a.jsx("li",{style:{marginBottom:t.marginXS},children:r}),h1:({children:r})=>a.jsx(Oh,{strong:!0,style:{fontSize:t.fontSizeHeading3,marginBottom:t.marginSM,display:"block",color:n},children:r}),h2:({children:r})=>a.jsx(Oh,{strong:!0,style:{fontSize:t.fontSizeHeading4,marginBottom:t.marginSM,display:"block",color:n},children:r})},children:e}),$h=y.memo(cT),uT=e=>{if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null},dT=e=>e?[["base",e.base_system_prompt],["enhancement",e.enhancement_prompt],["workspace",e.workspace_context],["instruction",e.instruction_context],["env",e.env_context],["skills",e.skill_context],["toolGuide",e.tool_guide_context],["dream",e.dream_notebook],["sessionMemory",e.session_memory_note],["externalMemory",e.external_memory],["taskList",e.task_list],["effective",e.effective_system_prompt]].flatMap(([n,r])=>{const s=uT(r);return s?[{key:n,content:s}]:[]}):[],fT=({currentChat:e,message:t,systemPrompts:n})=>{var N;const[r,s]=y.useState(null),[o,i]=y.useState(null),[l,u]=y.useState(null),[f,h]=y.useState(!1),[m,b]=y.useState(!1),v=y.useMemo(()=>dl.getInstance(),[]),w=y.useMemo(()=>Jn.getInstance(),[]),S=t.role==="system"&&typeof t.content=="string"?t.content:"",k=t.role==="system"&&!t.id.startsWith("system-prompt-")&&S.trim().length>0;y.useEffect(()=>{t.role==="system"&&(i(null),u(null),b(!1))},[t.id,t.role,S]);const P=(e==null?void 0:e.id)??null,T=((N=e==null?void 0:e.config)==null?void 0:N.systemPromptId)??null,M=y.useMemo(()=>T?n.find(q=>q.id===T)??null:null,[T,n]),C=(M==null?void 0:M.content)??(r==null?void 0:r.content)??"",j=(M==null?void 0:M.description)??(r==null?void 0:r.description)??"",A=y.useRef(null);y.useEffect(()=>{s(null),A.current=null},[P,T]),y.useEffect(()=>{if(!T)return;const q=T;if(M!=null&&M.content)return;const I=`${P??"no-chat"}:${q}`;if(A.current===I)return;A.current=I;let Q=!1;return(async()=>{try{const Z=await v.findPresetById(q);if(Q)return;const pe=Z?{content:Z.content,description:Z.description}:null;s($=>!$&&!pe||$&&pe&&$.content===pe.content&&$.description===pe.description?$:pe)}catch(Z){console.error("Failed to load preset prompt:",Z)}})(),()=>{Q=!0}},[P,T,v,M==null?void 0:M.content]);const O=y.useCallback(async()=>{var q;if(!f){h(!0);try{if(P)try{const I=await w.getSessionSystemPrompt(P);u(I);const Q=(q=I.effective_system_prompt)==null?void 0:q.trim();if(Q){i(Q),b(!0);return}}catch(I){console.warn("Failed to load backend prompt snapshot:",I)}if(k){u(null),i(S),b(!0);return}console.warn("Enhanced prompt snapshot unavailable; keeping base prompt view.")}catch(I){console.error("Failed to load enhanced prompt:",I)}finally{h(!1)}}},[w,P,k,f,S]),F=y.useMemo(()=>m&&o?o:C||j||(t.role==="system"?S:xt.t("chat.systemPrompt.preparing")),[m,o,C,j,t.role,S]),D=y.useMemo(()=>dT(l),[l]);return{basePrompt:C,categoryDescription:j,enhancedPrompt:o,loadingEnhanced:f,loadEnhancedPrompt:O,promptSnapshot:l,promptToDisplay:F,showEnhanced:m,setShowEnhanced:b,snapshotSections:D,systemMessageContent:S}},{Text:Lh}=ft,{useToken:hT}=ut,pT=(e,t)=>({base:e("chat.prompt.systemCard.sections.base"),enhancement:e("chat.prompt.systemCard.sections.enhancement"),workspace:e("chat.prompt.systemCard.sections.workspace"),instruction:e("chat.prompt.systemCard.sections.instruction"),env:e("chat.prompt.systemCard.sections.env"),skills:e("chat.prompt.systemCard.sections.skills"),toolGuide:e("chat.prompt.systemCard.sections.toolGuide"),dream:e("chat.prompt.systemCard.sections.dream"),sessionMemory:e("chat.prompt.systemCard.sections.sessionMemory"),externalMemory:e("chat.prompt.systemCard.sections.externalMemory"),taskList:e("chat.prompt.systemCard.sections.taskList"),effective:e("chat.prompt.systemCard.sections.effective")})[t],mT=({currentChat:e,message:t})=>{const{token:n}=hT(),{t:r}=Ge(),s=ae(w=>w.systemPrompts),{basePrompt:o,loadingEnhanced:i,loadEnhancedPrompt:l,promptSnapshot:u,promptToDisplay:f,showEnhanced:h,setShowEnhanced:m,snapshotSections:b}=fT({currentChat:e,message:t,systemPrompts:s}),v=y.useCallback(async w=>{try{await Pr(w)}catch(S){console.error("Failed to copy text:",S)}},[]);return a.jsx(nn,{style:{width:"100%",maxWidth:"100%",background:n.colorBgContainer,borderRadius:n.borderRadiusLG,boxShadow:"none"},children:a.jsxs(Ue,{direction:"vertical",size:n.marginSM,style:{width:"100%"},children:[a.jsxs(Ee,{justify:"space-between",align:"center",children:[a.jsx(Ee,{align:"center",gap:n.marginXS,children:a.jsx(Lh,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.title")})}),a.jsxs(Ue,{children:[o&&!h?a.jsx(je,{type:"text",size:"small",icon:a.jsx(sd,{}),onClick:l,loading:i,children:r("chat.prompt.systemCard.viewEnhanced")}):null,o&&h?a.jsx(je,{type:"text",size:"small",onClick:()=>m(!1),children:r("chat.prompt.systemCard.viewBase")}):null,a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),onClick:()=>v(f),children:r("chat.prompt.systemCard.copy")})]})]}),a.jsx(Ee,{vertical:!0,style:{maxHeight:h?400:300,overflowY:"auto",paddingRight:n.paddingXS},children:a.jsx($h,{content:f,token:n,headingColor:n.colorPrimary})}),u&&b.length>0?a.jsxs(a.Fragment,{children:[a.jsx(ll,{style:{margin:`${n.marginXS}px 0`}}),a.jsxs(Ue,{direction:"vertical",size:n.marginXS,style:{width:"100%"},children:[a.jsx(Lh,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.snapshotTitle")}),a.jsx(Zs,{defaultActiveKey:b.map(w=>w.key),items:b.map(w=>({key:w.key,label:pT(r,w.key),children:a.jsx($h,{content:w.content,token:n,headingColor:n.colorPrimary})}))})]})]}):null]})})},wy=y.memo(mT);wy.displayName="SystemMessageCard";const _y=6048e5,gT=864e5,Fh=Symbol.for("constructDateFrom");function Wr(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Fh in e?e[Fh](t):e instanceof Date?new e.constructor(t):new Date(t)}function ar(e,t){return Wr(t||e,e)}let yT={};function Al(){return yT}function qi(e,t){var l,u,f,h;const n=Al(),r=(t==null?void 0:t.weekStartsOn)??((u=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:u.weekStartsOn)??n.weekStartsOn??((h=(f=n.locale)==null?void 0:f.options)==null?void 0:h.weekStartsOn)??0,s=ar(e,t==null?void 0:t.in),o=s.getDay(),i=(o<r?7:0)+o-r;return s.setDate(s.getDate()-i),s.setHours(0,0,0,0),s}function pl(e,t){return qi(e,{...t,weekStartsOn:1})}function ky(e,t){const n=ar(e,t==null?void 0:t.in),r=n.getFullYear(),s=Wr(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const o=pl(s),i=Wr(n,0);i.setFullYear(r,0,4),i.setHours(0,0,0,0);const l=pl(i);return n.getTime()>=o.getTime()?r+1:n.getTime()>=l.getTime()?r:r-1}function Dh(e){const t=ar(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function bT(e,...t){const n=Wr.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function Nh(e,t){const n=ar(e,t==null?void 0:t.in);return n.setHours(0,0,0,0),n}function vT(e,t,n){const[r,s]=bT(n==null?void 0:n.in,e,t),o=Nh(r),i=Nh(s),l=+o-Dh(o),u=+i-Dh(i);return Math.round((l-u)/gT)}function ST(e,t){const n=ky(e,t),r=Wr(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),pl(r)}function xT(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function wT(e){return!(!xT(e)&&typeof e!="number"||isNaN(+ar(e)))}function _T(e,t){const n=ar(e,t==null?void 0:t.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const kT={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},CT=(e,t,n)=>{let r;const s=kT[e];return typeof s=="string"?r=s:t===1?r=s.one:r=s.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function kc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const TT={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},PT={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},ET={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},MT={date:kc({formats:TT,defaultWidth:"full"}),time:kc({formats:PT,defaultWidth:"full"}),dateTime:kc({formats:ET,defaultWidth:"full"})},jT={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},RT=(e,t,n,r)=>jT[e];function To(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let s;if(r==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,l=n!=null&&n.width?String(n.width):i;s=e.formattingValues[l]||e.formattingValues[i]}else{const i=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;s=e.values[l]||e.values[i]}const o=e.argumentCallback?e.argumentCallback(t):t;return s[o]}}const AT={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},IT={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},OT={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},$T={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},LT={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},FT={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},DT=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},NT={ordinalNumber:DT,era:To({values:AT,defaultWidth:"wide"}),quarter:To({values:IT,defaultWidth:"wide",argumentCallback:e=>e-1}),month:To({values:OT,defaultWidth:"wide"}),day:To({values:$T,defaultWidth:"wide"}),dayPeriod:To({values:LT,defaultWidth:"wide",formattingValues:FT,defaultFormattingWidth:"wide"})};function Po(e){return(t,n={})=>{const r=n.width,s=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(s);if(!o)return null;const i=o[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(l)?zT(l,m=>m.test(i)):BT(l,m=>m.test(i));let f;f=e.valueCallback?e.valueCallback(u):u,f=n.valueCallback?n.valueCallback(f):f;const h=t.slice(i.length);return{value:f,rest:h}}}function BT(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function zT(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function WT(e){return(t,n={})=>{const r=t.match(e.matchPattern);if(!r)return null;const s=r[0],o=t.match(e.parsePattern);if(!o)return null;let i=e.valueCallback?e.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;const l=t.slice(s.length);return{value:i,rest:l}}}const UT=/^(\d+)(th|st|nd|rd)?/i,qT=/\d+/i,HT={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},YT={any:[/^b/i,/^(a|c)/i]},XT={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},KT={any:[/1/i,/2/i,/3/i,/4/i]},VT={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},GT={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},JT={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},QT={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},ZT={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},eP={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},tP={ordinalNumber:WT({matchPattern:UT,parsePattern:qT,valueCallback:e=>parseInt(e,10)}),era:Po({matchPatterns:HT,defaultMatchWidth:"wide",parsePatterns:YT,defaultParseWidth:"any"}),quarter:Po({matchPatterns:XT,defaultMatchWidth:"wide",parsePatterns:KT,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Po({matchPatterns:VT,defaultMatchWidth:"wide",parsePatterns:GT,defaultParseWidth:"any"}),day:Po({matchPatterns:JT,defaultMatchWidth:"wide",parsePatterns:QT,defaultParseWidth:"any"}),dayPeriod:Po({matchPatterns:ZT,defaultMatchWidth:"any",parsePatterns:eP,defaultParseWidth:"any"})},nP={code:"en-US",formatDistance:CT,formatLong:MT,formatRelative:RT,localize:NT,match:tP,options:{weekStartsOn:0,firstWeekContainsDate:1}};function rP(e,t){const n=ar(e,t==null?void 0:t.in);return vT(n,_T(n))+1}function sP(e,t){const n=ar(e,t==null?void 0:t.in),r=+pl(n)-+ST(n);return Math.round(r/_y)+1}function Cy(e,t){var h,m,b,v;const n=ar(e,t==null?void 0:t.in),r=n.getFullYear(),s=Al(),o=(t==null?void 0:t.firstWeekContainsDate)??((m=(h=t==null?void 0:t.locale)==null?void 0:h.options)==null?void 0:m.firstWeekContainsDate)??s.firstWeekContainsDate??((v=(b=s.locale)==null?void 0:b.options)==null?void 0:v.firstWeekContainsDate)??1,i=Wr((t==null?void 0:t.in)||e,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const l=qi(i,t),u=Wr((t==null?void 0:t.in)||e,0);u.setFullYear(r,0,o),u.setHours(0,0,0,0);const f=qi(u,t);return+n>=+l?r+1:+n>=+f?r:r-1}function oP(e,t){var l,u,f,h;const n=Al(),r=(t==null?void 0:t.firstWeekContainsDate)??((u=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:u.firstWeekContainsDate)??n.firstWeekContainsDate??((h=(f=n.locale)==null?void 0:f.options)==null?void 0:h.firstWeekContainsDate)??1,s=Cy(e,t),o=Wr((t==null?void 0:t.in)||e,0);return o.setFullYear(s,0,r),o.setHours(0,0,0,0),qi(o,t)}function iP(e,t){const n=ar(e,t==null?void 0:t.in),r=+qi(n,t)-+oP(n,t);return Math.round(r/_y)+1}function Rt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Or={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Rt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Rt(n+1,2)},d(e,t){return Rt(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Rt(e.getHours()%12||12,t.length)},H(e,t){return Rt(e.getHours(),t.length)},m(e,t){return Rt(e.getMinutes(),t.length)},s(e,t){return Rt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return Rt(s,t.length)}},Is={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Bh={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),s=r>0?r:1-r;return n.ordinalNumber(s,{unit:"year"})}return Or.y(e,t)},Y:function(e,t,n,r){const s=Cy(e,r),o=s>0?s:1-s;if(t==="YY"){const i=o%100;return Rt(i,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):Rt(o,t.length)},R:function(e,t){const n=ky(e);return Rt(n,t.length)},u:function(e,t){const n=e.getFullYear();return Rt(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Rt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Rt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Or.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Rt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const s=iP(e,r);return t==="wo"?n.ordinalNumber(s,{unit:"week"}):Rt(s,t.length)},I:function(e,t,n){const r=sP(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Rt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Or.d(e,t)},D:function(e,t,n){const r=rP(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Rt(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const s=e.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return Rt(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(s,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(s,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(s,{width:"short",context:"formatting"});case"eeee":default:return n.day(s,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const s=e.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return Rt(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(s,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(s,{width:"narrow",context:"standalone"});case"cccccc":return n.day(s,{width:"short",context:"standalone"});case"cccc":default:return n.day(s,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),s=r===0?7:r;switch(t){case"i":return String(s);case"ii":return Rt(s,t.length);case"io":return n.ordinalNumber(s,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const s=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let s;switch(r===12?s=Is.noon:r===0?s=Is.midnight:s=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let s;switch(r>=17?s=Is.evening:r>=12?s=Is.afternoon:r>=4?s=Is.morning:s=Is.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Or.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Or.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Rt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Rt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Or.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Or.s(e,t)},S:function(e,t){return Or.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Wh(r);case"XXXX":case"XX":return Qr(r);case"XXXXX":case"XXX":default:return Qr(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Wh(r);case"xxxx":case"xx":return Qr(r);case"xxxxx":case"xxx":default:return Qr(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+zh(r,":");case"OOOO":default:return"GMT"+Qr(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+zh(r,":");case"zzzz":default:return"GMT"+Qr(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Rt(r,t.length)},T:function(e,t,n){return Rt(+e,t.length)}};function zh(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=Math.trunc(r/60),o=r%60;return o===0?n+String(s):n+String(s)+t+Rt(o,2)}function Wh(e,t){return e%60===0?(e>0?"-":"+")+Rt(Math.abs(e)/60,2):Qr(e,t)}function Qr(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=Rt(Math.trunc(r/60),2),o=Rt(r%60,2);return n+s+t+o}const Uh=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},Ty=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},aP=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return Uh(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",Uh(r,t)).replace("{{time}}",Ty(s,t))},lP={p:Ty,P:aP},cP=/^D+$/,uP=/^Y+$/,dP=["D","DD","YY","YYYY"];function fP(e){return cP.test(e)}function hP(e){return uP.test(e)}function pP(e,t,n){const r=mP(e,t,n);if(console.warn(r),dP.includes(e))throw new RangeError(r)}function mP(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const gP=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,yP=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,bP=/^'([^]*?)'?$/,vP=/''/g,SP=/[a-zA-Z]/;function xP(e,t,n){var h,m,b,v;const r=Al(),s=r.locale??nP,o=r.firstWeekContainsDate??((m=(h=r.locale)==null?void 0:h.options)==null?void 0:m.firstWeekContainsDate)??1,i=r.weekStartsOn??((v=(b=r.locale)==null?void 0:b.options)==null?void 0:v.weekStartsOn)??0,l=ar(e,n==null?void 0:n.in);if(!wT(l))throw new RangeError("Invalid time value");let u=t.match(yP).map(w=>{const S=w[0];if(S==="p"||S==="P"){const k=lP[S];return k(w,s.formatLong)}return w}).join("").match(gP).map(w=>{if(w==="''")return{isToken:!1,value:"'"};const S=w[0];if(S==="'")return{isToken:!1,value:wP(w)};if(Bh[S])return{isToken:!0,value:w};if(S.match(SP))throw new RangeError("Format string contains an unescaped latin alphabet character `"+S+"`");return{isToken:!1,value:w}});s.localize.preprocessor&&(u=s.localize.preprocessor(l,u));const f={firstWeekContainsDate:o,weekStartsOn:i,locale:s};return u.map(w=>{if(!w.isToken)return w.value;const S=w.value;(hP(S)||fP(S))&&pP(S,t,String(e));const k=Bh[S[0]];return k(l,S,s.localize,f)}).join("")}function wP(e){const t=e.match(bP);return t?t[1].replace(vP,"'"):e}const{useToken:_P}=ut,{Text:Ra}=ft,kP=({images:e,className:t,style:n,maxHeight:r={single:400,multiple:200}})=>{const{token:s}=_P(),{t:o}=Ge();return!e||e.length===0?null:a.jsx(nn,{className:t,style:{marginBottom:s.marginMD,...n},styles:{body:{padding:0}},variant:"borderless",children:a.jsx(Ee,{wrap:"wrap",gap:s.marginSM,style:{width:"100%"},children:e.map(i=>a.jsxs(nn,{size:"small",style:{flex:e.length===1?"1 1 100%":"1 1 200px",overflow:"hidden",borderRadius:s.borderRadius,border:`1px solid ${s.colorBorderSecondary}`,backgroundColor:s.colorBgLayout},styles:{body:{padding:0}},children:[a.jsxs("div",{style:{position:"relative"},children:[a.jsx(YS,{src:i.url||i.base64,alt:i.name,style:{width:"100%",height:"auto",maxHeight:e.length===1?r.single:r.multiple,objectFit:"cover"},preview:{mask:a.jsxs(Ee,{align:"center",justify:"center",gap:s.marginXS,style:{color:s.colorTextLightSolid},children:[a.jsx(sd,{}),a.jsx(Ra,{style:{color:s.colorTextLightSolid},children:o("components.imageGrid.preview")})]})}}),a.jsxs(Ee,{vertical:!0,style:{position:"absolute",bottom:0,left:0,right:0,background:"linear-gradient(transparent, rgba(0,0,0,0.7))",color:s.colorTextLightSolid,padding:`${s.paddingXS}px ${s.paddingSM}px`,fontSize:s.fontSizeSM},children:[a.jsx(Ra,{style:{color:s.colorTextLightSolid},strong:!0,children:i.name}),i.size&&a.jsxs(Ra,{style:{fontSize:s.fontSizeSM*.85,opacity:.8,color:s.colorTextLightSolid},children:[(i.size/1024).toFixed(1)," KB",i.width&&i.height&&` • ${i.width}×${i.height}`]})]})]}),(i.ocrText||i.ocrError)&&a.jsx("div",{style:{padding:s.paddingSM},children:a.jsx(Zs,{ghost:!0,size:"small",items:[{key:"ocr",label:o("components.imageGrid.ocr"),children:a.jsxs(a.Fragment,{children:[i.ocrError&&a.jsx(Ra,{type:"danger",children:i.ocrError}),i.ocrText&&a.jsx(ft.Paragraph,{style:{marginTop:i.ocrError?s.marginXS:0,marginBottom:0,whiteSpace:"pre-wrap"},children:i.ocrText})]})}]})})]},i.id))})})},{useToken:CP}=ut,{useBreakpoint:TP}=Tl,PP=({buttons:e,isVisible:t,className:n,style:r,position:s={bottom:"8px",right:"8px"}})=>{const{token:o}=CP(),i=TP(),l=()=>(i.xs,"small");return a.jsx(Ee,{justify:"flex-end",gap:o.marginXS,className:n,style:{marginTop:o.marginXS,position:"absolute",bottom:s.bottom,right:s.right,top:s.top,left:s.left,background:"transparent",zIndex:1,opacity:t?1:0,transition:"opacity 0.2s ease",pointerEvents:t?"auto":"none",...r},children:e.map(u=>a.jsx(xn,{title:u.title,children:a.jsx(je,{"data-testid":u["data-testid"]||u.key,icon:u.icon,size:l(),type:"text",onClick:u.onClick,disabled:u.disabled,style:{background:o.colorBgElevated,borderRadius:o.borderRadiusSM}})},u.key))})},EP=(e,t)=>({key:"copy","data-testid":"copy-message",icon:a.jsx(Tr,{}),title:t||xt.t("chat.actions.copyMessage"),onClick:e}),MP=(e,t)=>({key:"reference",icon:a.jsx(gg,{}),title:t||xt.t("chat.actions.referenceMessage"),onClick:e}),Py=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_result",jP=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_call",RP=e=>e.role==="assistant"&&"type"in e&&e.type==="workflow_result",AP=e=>e.role==="user"&&"type"in e&&e.type==="file_reference",IP=e=>e.role==="assistant"&&"type"in e&&e.type==="task_list",{Title:qh,Text:Yn,Paragraph:Hh}=ft,{useToken:OP}=ut,$P=({plan:e,contextId:t,onExecute:n,onRefine:r,timestamp:s})=>{const{t:o}=Ge(),{token:i}=OP(),[l,u]=y.useState(!1),[f,h]=y.useState(""),m=()=>{f.trim()&&(r(f),h(""),u(!1))};return a.jsxs(nn,{style:{marginBottom:i.marginMD,borderColor:i.colorPrimary,borderWidth:2,backgroundColor:i.colorPrimaryBg},title:a.jsxs(Ue,{children:[a.jsx(El,{style:{color:i.colorPrimary}}),a.jsx(Yn,{strong:!0,style:{color:i.colorPrimary},children:o("components.plan.executionPlan")})]}),extra:s?a.jsx(Yn,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[a.jsxs(Ee,{vertical:!0,style:{marginBottom:i.marginLG},children:[a.jsx(qh,{level:5,style:{marginBottom:i.marginXS},children:o("components.plan.goal")}),a.jsx(Hh,{style:{fontSize:15,marginBottom:0},children:e.goal})]}),a.jsxs(Ee,{vertical:!0,style:{marginBottom:i.marginLG},children:[a.jsx(qh,{level:5,style:{marginBottom:i.marginMD},children:o("components.plan.steps")}),a.jsx(yg,{direction:"vertical",current:-1,items:e.steps.map(b=>({title:a.jsxs(Yn,{strong:!0,children:[o("components.plan.stepTitle",{number:b.step_number}),": ",b.action]}),description:a.jsxs(Ee,{vertical:!0,children:[a.jsxs(Hh,{style:{marginBottom:i.marginXS},children:[a.jsxs(Yn,{type:"secondary",children:[o("components.plan.reason"),":"]})," ",b.reason]}),a.jsxs(Ue,{wrap:!0,children:[a.jsxs(Yn,{type:"secondary",children:[a.jsx(rd,{})," ",o("components.plan.tools"),":"]}),b.tools_needed.map((v,w)=>a.jsx(Je,{color:"processing",children:v},w))]}),a.jsx(Ee,{style:{marginTop:i.marginXS},children:a.jsxs(Yn,{type:"secondary",children:[a.jsx(Gs,{})," ",o("components.plan.estimated"),": ",b.estimated_time]})})]}),icon:a.jsx(Yn,{children:b.step_number})}))})]}),a.jsxs(Ue,{direction:"vertical",style:{width:"100%",marginBottom:i.marginLG},children:[a.jsxs(Ee,{align:"center",gap:i.marginXS,wrap:"wrap",children:[a.jsxs(Yn,{type:"secondary",children:[a.jsx(Gs,{})," ",o("components.plan.totalEstimatedTime")," "]}),a.jsx(Je,{color:"processing",children:e.estimated_total_time})]}),e.prerequisites&&e.prerequisites.length>0&&a.jsxs(Ee,{vertical:!0,children:[a.jsxs(Yn,{type:"secondary",children:[o("components.plan.prerequisites"),":"]}),a.jsx(Cr,{size:"small",dataSource:e.prerequisites,renderItem:(b,v)=>a.jsx(Cr.Item,{style:{padding:0},children:a.jsx(Yn,{children:b})},`${b}-${v}`)})]})]}),e.risks&&e.risks.length>0&&a.jsx(Zs,{ghost:!0,style:{marginBottom:i.marginLG},items:[{key:"risks",label:a.jsxs(Ue,{children:[a.jsx(od,{style:{color:i.colorWarning}}),a.jsx(Yn,{strong:!0,children:o("components.plan.potentialRisks",{count:e.risks.length})})]}),children:a.jsx(Cr,{size:"small",dataSource:e.risks,renderItem:(b,v)=>a.jsx(Cr.Item,{style:{padding:0},children:a.jsx(Yn,{children:b})},`${b}-${v}`)})}]}),a.jsx(Ue,{style:{width:"100%",justifyContent:"flex-end"},children:l?a.jsxs(a.Fragment,{children:[a.jsx(je,{onClick:()=>u(!1),children:o("common.cancel")}),a.jsx(je,{type:"primary",onClick:m,disabled:!f.trim(),children:o("components.plan.sendFeedback")})]}):a.jsxs(a.Fragment,{children:[a.jsx(je,{onClick:()=>u(!0),children:o("components.plan.refinePlan")}),a.jsx(je,{type:"primary",icon:a.jsx(XS,{}),onClick:n,children:o("components.plan.executePlan")})]})}),l&&a.jsx(Ee,{vertical:!0,style:{marginTop:i.marginMD},children:a.jsx(Ss.TextArea,{value:f,onChange:b=>h(b.target.value),placeholder:o("components.plan.feedbackPlaceholder"),autoSize:{minRows:4,maxRows:10}})})]})},Ey=y.memo($P);Ey.displayName="PlanMessageCard";const{Title:LP,Text:Os,Paragraph:FP}=ft,{useToken:DP}=ut,NP=({question:e,contextId:t,onAnswer:n,disabled:r=!1,timestamp:s})=>{const{t:o}=Ge(),{token:i}=DP(),[l,u]=y.useState(e.default),[f,h]=y.useState(!1),m=async()=>{if(l){h(!0);try{await n(l)}catch(S){console.error("Failed to submit answer:",S)}finally{h(!1)}}},b=()=>{switch(e.severity){case"critical":return a.jsx(fg,{style:{color:i.colorError}});case"major":return a.jsx(od,{style:{color:i.colorWarning}});case"minor":return a.jsx(KS,{style:{color:i.colorInfo}});default:return a.jsx(mg,{style:{color:i.colorPrimary}})}},v=()=>{switch(e.severity){case"critical":return i.colorErrorBg;case"major":return i.colorWarningBg;case"minor":return i.colorInfoBg;default:return i.colorPrimaryBg}},w=()=>{switch(e.severity){case"critical":return i.colorError;case"major":return i.colorWarning;case"minor":return i.colorInfo;default:return i.colorPrimary}};return a.jsxs(nn,{style:{marginBottom:i.marginMD,borderColor:w(),borderWidth:2,backgroundColor:v()},title:a.jsxs(Ue,{children:[b(),a.jsx(Os,{strong:!0,style:{color:w()},children:o("components.question.agentQuestion")}),a.jsxs(Os,{type:"secondary",style:{fontSize:12},children:["(",e.severity,")"]})]}),extra:s?a.jsx(Os,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[a.jsx(Ee,{vertical:!0,style:{marginBottom:i.marginLG},children:a.jsx(LP,{level:5,style:{marginBottom:i.marginXS},children:e.question})}),e.context&&a.jsx(ir,{message:o("components.question.context"),description:e.context,type:"info",showIcon:!0,style:{marginBottom:i.marginLG}}),a.jsxs(Ee,{vertical:!0,style:{marginBottom:i.marginLG},children:[a.jsx(Os,{strong:!0,style:{display:"block",marginBottom:i.marginSM},children:o("components.question.chooseOption")}),a.jsx(Cf.Group,{value:l,onChange:S=>u(S.target.value),disabled:r||f,style:{width:"100%"},children:a.jsx(Ue,{direction:"vertical",style:{width:"100%"},children:e.options.map(S=>a.jsx(nn,{size:"small",hoverable:!r&&!f,style:{borderColor:l===S.value?i.colorPrimary:i.colorBorder,backgroundColor:l===S.value?i.colorPrimaryBg:i.colorBgContainer,cursor:r||f?"not-allowed":"pointer"},onClick:()=>!r&&!f&&u(S.value),children:a.jsx(Cf,{value:S.value,style:{width:"100%"},children:a.jsxs(Ee,{vertical:!0,children:[a.jsxs(Ee,{align:"center",gap:i.marginXS,wrap:"wrap",children:[a.jsx(Os,{strong:!0,children:S.label}),S.value===e.default&&a.jsx(Je,{color:"processing",style:{marginLeft:i.marginXS},children:o("components.question.recommended")})]}),a.jsx(FP,{type:"secondary",style:{marginTop:i.marginXXS,marginBottom:0},children:S.description})]})})},S.value))})})]}),e.allow_custom&&a.jsxs(Ee,{vertical:!0,style:{marginBottom:i.marginMD},children:[a.jsx(Os,{type:"secondary",style:{fontSize:12},children:o("components.question.customAnswerHint")}),a.jsx(Ss.TextArea,{value:l&&!e.options.find(S=>S.value===l)?l:"",onChange:S=>u(S.target.value),placeholder:o("components.question.customAnswerPlaceholder"),disabled:r||f,autoSize:{minRows:3,maxRows:8},style:{marginTop:i.marginXS}})]}),a.jsx(Ee,{justify:"flex-end",children:a.jsx(je,{type:"primary",icon:a.jsx(El,{}),onClick:m,loading:f,disabled:r||!l,children:o("components.question.submitAnswer")})})]})},My=y.memo(NP);My.displayName="QuestionMessageCard";const{Text:Yh}=ft,BP=({paths:e,displayText:t})=>{const{token:n}=ut.useToken(),r=t.replace(/@[^\s]+/g,"").trim();return a.jsxs(nn,{size:"small",styles:{body:{padding:`${n.paddingSM}px ${n.paddingMD}px`}},style:{maxWidth:"100%"},children:[a.jsx(Ue,{direction:"vertical",size:n.marginXXS,children:e.map((s,o)=>{const i=s.split("/").pop()||s,l=s.substring(0,s.lastIndexOf("/"))||"",u=!i.includes(".");return a.jsxs(Ee,{vertical:!0,children:[a.jsxs(Ue,{size:n.marginXS,align:"center",wrap:!0,children:[u?a.jsx(Tf,{style:{color:n.colorWarning,fontSize:n.fontSizeLG}}):a.jsx(al,{style:{color:n.colorPrimary,fontSize:n.fontSizeLG}}),a.jsx(Je,{color:u?"warning":"processing",style:{margin:0,fontFamily:n.fontFamilyCode,fontSize:n.fontSize},children:i})]}),l&&a.jsx(xn,{title:s,children:a.jsxs(Ue,{size:4,align:"center",style:{marginTop:4},children:[a.jsx(Tf,{style:{color:n.colorTextTertiary,fontSize:n.fontSizeSM}}),a.jsx(Yh,{type:"secondary",style:{fontSize:n.fontSizeSM,fontFamily:n.fontFamilyCode,maxWidth:"400px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},copyable:{text:s},children:l})]})})]},o)})}),r&&a.jsx(Yh,{style:{fontSize:n.fontSize,color:n.colorText,marginTop:n.marginXS,paddingTop:n.marginXS,borderTop:`1px solid ${n.colorBorderSecondary}`},children:r})]})},jy=y.memo(BP);jy.displayName="FileReferenceCard";const zP=({taskList:e})=>{const{token:t}=ut.useToken(),{Text:n}=ft,{t:r}=Ge(),s=u=>{switch(u){case"pending":return a.jsx(Je,{icon:a.jsx(Gs,{}),color:"default",children:r("components.todoList.status.pending")});case"in_progress":return a.jsx(Je,{icon:a.jsx(ps,{spin:!0}),color:"processing",children:r("components.todoList.status.inProgress")});case"completed":return a.jsx(Je,{icon:a.jsx(El,{}),color:"success",children:r("components.todoList.status.completed")});case"skipped":return a.jsx(Je,{icon:a.jsx(VS,{}),color:"default",children:r("components.todoList.status.skipped")});case"failed":return a.jsx(Je,{icon:a.jsx(vg,{}),color:"error",children:r("components.todoList.status.failed")});default:return null}},o=()=>{switch(e.status){case"active":return a.jsx(Je,{color:"processing",children:r("components.todoList.listStatus.active")});case"completed":return a.jsx(Je,{color:"success",children:r("components.todoList.listStatus.completed")});case"abandoned":return a.jsx(Je,{color:"error",children:r("components.todoList.listStatus.abandoned")});default:return null}},i=ht.useMemo(()=>{if(e.items.length===0)return 0;const u=e.items.filter(f=>f.status==="completed").length;return Math.round(u/e.items.length*100)},[e.items]),l=ht.useMemo(()=>e.items.find(u=>u.status==="in_progress"),[e.items]);return a.jsx(nn,{size:"small",styles:{body:{padding:t.paddingSM}},style:{borderRadius:t.borderRadiusLG},children:a.jsxs(Ee,{vertical:!0,gap:t.marginSM,children:[a.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[a.jsxs(Ue,{direction:"vertical",size:2,children:[a.jsx(n,{strong:!0,children:e.title}),e.description?a.jsx(n,{type:"secondary",children:e.description}):null]}),o()]}),a.jsxs(Ue,{direction:"vertical",size:4,children:[a.jsx(bg,{percent:i,status:e.status==="completed"?"success":e.status==="abandoned"?"exception":"active",showInfo:!0}),a.jsx(n,{type:"secondary",children:r("components.todoList.percentComplete",{percent:i})})]}),a.jsx(Cr,{size:"small",dataSource:e.items,renderItem:u=>{var h;const f=(l==null?void 0:l.id)===u.id;return a.jsx(Cr.Item,{style:{borderRadius:t.borderRadius,padding:t.paddingXS,background:f?t.colorPrimaryBg:"transparent",border:"1px solid",borderColor:f?t.colorPrimaryBorder:t.colorBorderSecondary},children:a.jsxs(Ee,{vertical:!0,style:{width:"100%"},gap:4,children:[a.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[a.jsx(n,{children:u.description}),s(u.status)]}),u.status==="failed"&&((h=u.metadata)!=null&&h.error)?a.jsx(n,{type:"danger",style:{fontSize:12},children:u.metadata.error}):null,u.status==="completed"&&u.summary?a.jsx(n,{type:"success",style:{fontSize:12},children:u.summary}):null]})})}}),a.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[a.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.progressLabel",{completed:e.items.filter(u=>u.status==="completed").length,total:e.items.length})}),l?a.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.currentLabel",{description:l.description})}):null]})]})})},WP=100,Zr=new Set;function UP(e){if(Zr.has(e)&&Zr.delete(e),Zr.add(e),Zr.size>WP){const t=Zr.values().next().value;t&&Zr.delete(t)}}function qP(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const HP=e=>{const{t}=Ge(),n=qP(e.chart),[r,s]=y.useState(()=>Zr.has(n)),o=y.useRef(null);return y.useEffect(()=>{if(r)return;const i=o.current;if(!i)return;const l=new IntersectionObserver(u=>{u.some(f=>f.isIntersecting)&&(UP(n),s(!0),l.disconnect())},{rootMargin:"50px",threshold:.01});return l.observe(i),()=>l.disconnect()},[r,n]),a.jsx("div",{ref:o,style:{minHeight:r?"auto":"200px"},children:r?a.jsx(ht.Suspense,{fallback:a.jsx(Vs,{size:"small",tip:t("components.mermaid.loadingDiagram")}),children:a.jsx(YP,{...e})}):a.jsx("div",{style:{minHeight:"200px"}})})},YP=e=>{const{t}=Ge(),[n,r]=y.useState(null);return y.useEffect(()=>{let s=!1;return Jt(()=>Promise.resolve().then(()=>vM),void 0,import.meta.url).then(o=>{s||r(()=>o.MermaidChart)}),()=>{s=!0}},[]),n?a.jsx(n,{...e}):a.jsx(Vs,{size:"small",tip:t("components.mermaid.loadingDiagram")})},XP=ht.memo(HP),KP=({error:e,className:t,style:n,token:r,onFix:s,isFixing:o,fixError:i})=>{const{t:l}=Ge(),u=e.split(`
|
|
135
|
+
color: hsl(${Math.max(0,Math.min(120-120*k,120))}deg 100% 31%);`,n==null?void 0:n.key)}return(d=n==null?void 0:n.onChange)==null||d.call(n,s),s}return o.updateDeps=i=>{r=i},o}function Eh(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const ZC=(e,t)=>Math.abs(e-t)<1.01,eT=(e,t,n)=>{let r;return function(...s){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,s),n)}},jh=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},tT=e=>e,nT=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let s=t;s<=n;s++)r.push(s);return r},rT=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const s=i=>{const{width:l,height:u}=i;t({width:Math.round(l),height:Math.round(u)})};if(s(jh(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(i=>{const l=()=>{const u=i[0];if(u!=null&&u.borderBoxSize){const d=u.borderBoxSize[0];if(d){s({width:d.inlineSize,height:d.blockSize});return}}s(jh(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},Rh={passive:!0},Ah=typeof window>"u"?!0:"onscrollend"in window,sT=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let s=0;const o=e.options.useScrollendEvent&&Ah?()=>{}:eT(r,()=>{t(s,!1)},e.options.isScrollingResetDelay),i=h=>()=>{const{horizontal:m,isRtl:b}=e.options;s=m?n.scrollLeft*(b&&-1||1):n.scrollTop,o(),t(s,h)},l=i(!0),u=i(!1);u(),n.addEventListener("scroll",l,Rh);const d=e.options.useScrollendEvent&&Ah;return d&&n.addEventListener("scrollend",u,Rh),()=>{n.removeEventListener("scroll",l),d&&n.removeEventListener("scrollend",u)}},oT=(e,t,n)=>{if(t!=null&&t.borderBoxSize){const r=t.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},iT=(e,{adjustments:t=0,behavior:n},r)=>{var s,o;const i=e+t;(o=(s=r.scrollElement)==null?void 0:s.scrollTo)==null||o.call(s,{[r.options.horizontal?"left":"top"]:i,behavior:n})};class aT{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(s=>{s.forEach(o=>{const i=()=>{this._measureElement(o.target,o)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var s;(s=r())==null||s.disconnect(),n=null},observe:s=>{var o;return(o=r())==null?void 0:o.observe(s,{box:"border-box"})},unobserve:s=>{var o;return(o=r())==null?void 0:o.unobserve(s)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,s])=>{typeof s>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tT,rangeExtractor:nT,onChange:()=>{},measureElement:oT,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...n}},this.notify=n=>{var r,s;(s=(r=this.options).onChange)==null||s.call(r,this,n)},this.maybeNotify=Is(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=o,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,r)=>{const s=new Map,o=new Map;for(let i=r-1;i>=0;i--){const l=n[i];if(s.has(l.lane))continue;const u=o.get(l.lane);if(u==null||l.end>u.end?o.set(l.lane,l):l.end<u.end&&s.set(l.lane,!0),s.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((i,l)=>i.end===l.end?i.index-l.index:i.end-l.end)[0]:void 0},this.getMeasurementOptions=Is(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(n,r,s,o,i)=>(this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i}),{key:!1}),this.getMeasurements=Is(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i},l)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(h=>{this.itemSizeCache.set(h.key,h.size)}));const u=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const d=this.measurementsCache.slice(0,u);for(let h=u;h<n;h++){const m=o(h),b=this.options.lanes===1?d[h-1]:this.getFurthestMeasurement(d,h),v=b?b.end+this.options.gap:r+s,w=l.get(m),S=typeof w=="number"?w:this.options.estimateSize(h),k=v+S,P=b?b.lane:h%this.options.lanes;d[h]={index:h,start:v,size:S,end:k,key:m,lane:P}}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Is(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,s,o)=>this.range=n.length>0&&r>0?lT({measurements:n,outerSize:r,scrollOffset:s,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Is(()=>{let n=null,r=null;const s=this.calculateRange();return s&&(n=s.startIndex,r=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,r]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,r]},(n,r,s,o,i)=>o===null||i===null?[]:n({startIndex:o,endIndex:i,overscan:r,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,s=n.getAttribute(r);return s?parseInt(s,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this._measureElement=(n,r)=>{const s=this.indexFromElement(n),o=this.measurementsCache[s];if(!o)return;const i=o.key,l=this.elementsCache.get(i);l!==n&&(l&&this.observer.unobserve(l),this.observer.observe(n),this.elementsCache.set(i,n)),n.isConnected&&this.resizeItem(s,this.options.measureElement(n,r,this))},this.resizeItem=(n,r)=>{const s=this.measurementsCache[n];if(!s)return;const o=this.itemSizeCache.get(s.key)??s.size,i=r-o;i!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,i,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=i,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(s.index),this.itemSizeCache=new Map(this.itemSizeCache.set(s.key,r)),this.notify(!1))},this.measureElement=n=>{if(!n){this.elementsCache.forEach((r,s)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(s))});return}this._measureElement(n,void 0)},this.getVirtualItems=Is(()=>[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const s=[];for(let o=0,i=n.length;o<i;o++){const l=n[o],u=r[l];s.push(u)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return Eh(r[wy(0,r.length-1,s=>Eh(r[s]).start,n)])},this.getOffsetForAlignment=(n,r,s=0)=>{const o=this.getSize(),i=this.getScrollOffset();r==="auto"&&(r=n>=i+o?"end":"start"),r==="center"?n+=(s-o)/2:r==="end"&&(n-=o);const l=this.getTotalSize()+this.options.scrollMargin-o;return Math.max(Math.min(l,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const s=this.measurementsCache[n];if(!s)return;const o=this.getSize(),i=this.getScrollOffset();if(r==="auto")if(s.end>=i+o-this.options.scrollPaddingEnd)r="end";else if(s.start<=i+this.options.scrollPaddingStart)r="start";else return[i,r];const l=r==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,r,s.size),r]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(n,{align:r="start",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(n,r),{adjustments:void 0,behavior:s})},this.scrollToIndex=(n,{align:r="auto",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),n=Math.max(0,Math.min(n,this.options.count-1));let o=0;const i=10,l=d=>{if(!this.targetWindow)return;const h=this.getOffsetForIndex(n,d);if(!h){console.warn("Failed to get offset for index:",n);return}const[m,b]=h;this._scrollToOffset(m,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const v=this.getScrollOffset(),w=this.getOffsetForIndex(n,b);if(!w){console.warn("Failed to get offset for index:",n);return}ZC(w[0],v)||u(b)})},u=d=>{this.targetWindow&&(o++,o<i?this.targetWindow.requestAnimationFrame(()=>l(d)):console.warn(`Failed to scroll to index ${n} after ${i} attempts.`))};l(r)},this.scrollBy=(n,{behavior:r}={})=>{r==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+n,{adjustments:void 0,behavior:r})},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let s;if(r.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((n=r[r.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let i=r.length-1;for(;i>=0&&o.some(l=>l===null);){const l=r[i];o[l.lane]===null&&(o[l.lane]=l.end),i--}s=Math.max(...o.filter(l=>l!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:r,behavior:s})=>{this.options.scrollToFn(n,{behavior:s,adjustments:r},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(t)}}const wy=(e,t,n,r)=>{for(;e<=t;){const s=(e+t)/2|0,o=n(s);if(o<r)e=s+1;else if(o>r)t=s-1;else return s}return e>0?e-1:0};function lT({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const s=e.length-1,o=u=>e[u].start;if(e.length<=r)return{startIndex:0,endIndex:s};let i=wy(0,s,o,n),l=i;if(r===1)for(;l<s&&e[l].end<n+t;)l++;else if(r>1){const u=Array(r).fill(0);for(;l<s&&u.some(h=>h<n+t);){const h=e[l];u[h.lane]=h.end,l++}const d=Array(r).fill(n+t);for(;i>=0&&d.some(h=>h>=n);){const h=e[i];d[h.lane]=h.start,i--}i=Math.max(0,i-i%r),l=Math.min(s,l+(r-1-l%r))}return{startIndex:i,endIndex:l}}const Ih=typeof document<"u"?y.useLayoutEffect:y.useEffect;function cT(e){const t=y.useReducer(()=>({}),{})[1],n={...e,onChange:(s,o)=>{var i;o?YS.flushSync(t):t(),(i=e.onChange)==null||i.call(e,s,o)}},[r]=y.useState(()=>new aT(n));return r.setOptions(n),Ih(()=>r._didMount(),[]),Ih(()=>r._willUpdate()),r}function uT(e){return cT({observeElementRect:rT,observeElementOffset:sT,scrollToFn:iT,...e})}const{Text:Oh,Paragraph:dT}=ft,fT=({content:e,token:t,headingColor:n})=>a.jsx(vr,{components:{p:({children:r})=>a.jsx(dT,{style:{marginBottom:t.marginSM},children:r}),ol:({children:r})=>a.jsx("ol",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),ul:({children:r})=>a.jsx("ul",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),li:({children:r})=>a.jsx("li",{style:{marginBottom:t.marginXS},children:r}),h1:({children:r})=>a.jsx(Oh,{strong:!0,style:{fontSize:t.fontSizeHeading3,marginBottom:t.marginSM,display:"block",color:n},children:r}),h2:({children:r})=>a.jsx(Oh,{strong:!0,style:{fontSize:t.fontSizeHeading4,marginBottom:t.marginSM,display:"block",color:n},children:r})},children:e}),$h=y.memo(fT),hT=e=>{if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null},pT=e=>e?[["base",e.base_system_prompt],["enhancement",e.enhancement_prompt],["workspace",e.workspace_context],["instruction",e.instruction_context],["env",e.env_context],["skills",e.skill_context],["toolGuide",e.tool_guide_context],["dream",e.dream_notebook],["sessionMemory",e.session_memory_note],["externalMemory",e.external_memory],["taskList",e.task_list],["effective",e.effective_system_prompt]].flatMap(([n,r])=>{const s=hT(r);return s?[{key:n,content:s}]:[]}):[],mT=({currentChat:e,message:t,systemPrompts:n})=>{var N;const[r,s]=y.useState(null),[o,i]=y.useState(null),[l,u]=y.useState(null),[d,h]=y.useState(!1),[m,b]=y.useState(!1),v=y.useMemo(()=>fl.getInstance(),[]),w=y.useMemo(()=>Jn.getInstance(),[]),S=t.role==="system"&&typeof t.content=="string"?t.content:"",k=t.role==="system"&&!t.id.startsWith("system-prompt-")&&S.trim().length>0;y.useEffect(()=>{t.role==="system"&&(i(null),u(null),b(!1))},[t.id,t.role,S]);const P=(e==null?void 0:e.id)??null,T=((N=e==null?void 0:e.config)==null?void 0:N.systemPromptId)??null,j=y.useMemo(()=>T?n.find(q=>q.id===T)??null:null,[T,n]),C=(j==null?void 0:j.content)??(r==null?void 0:r.content)??"",E=(j==null?void 0:j.description)??(r==null?void 0:r.description)??"",A=y.useRef(null);y.useEffect(()=>{s(null),A.current=null},[P,T]),y.useEffect(()=>{if(!T)return;const q=T;if(j!=null&&j.content)return;const I=`${P??"no-chat"}:${q}`;if(A.current===I)return;A.current=I;let Q=!1;return(async()=>{try{const Z=await v.findPresetById(q);if(Q)return;const pe=Z?{content:Z.content,description:Z.description}:null;s($=>!$&&!pe||$&&pe&&$.content===pe.content&&$.description===pe.description?$:pe)}catch(Z){console.error("Failed to load preset prompt:",Z)}})(),()=>{Q=!0}},[P,T,v,j==null?void 0:j.content]);const O=y.useCallback(async()=>{var q;if(!d){h(!0);try{if(P)try{const I=await w.getSessionSystemPrompt(P);u(I);const Q=(q=I.effective_system_prompt)==null?void 0:q.trim();if(Q){i(Q),b(!0);return}}catch(I){console.warn("Failed to load backend prompt snapshot:",I)}if(k){u(null),i(S),b(!0);return}console.warn("Enhanced prompt snapshot unavailable; keeping base prompt view.")}catch(I){console.error("Failed to load enhanced prompt:",I)}finally{h(!1)}}},[w,P,k,d,S]),D=y.useMemo(()=>m&&o?o:C||E||(t.role==="system"?S:xt.t("chat.systemPrompt.preparing")),[m,o,C,E,t.role,S]),F=y.useMemo(()=>pT(l),[l]);return{basePrompt:C,categoryDescription:E,enhancedPrompt:o,loadingEnhanced:d,loadEnhancedPrompt:O,promptSnapshot:l,promptToDisplay:D,showEnhanced:m,setShowEnhanced:b,snapshotSections:F,systemMessageContent:S}},{Text:Lh}=ft,{useToken:gT}=ut,yT=(e,t)=>({base:e("chat.prompt.systemCard.sections.base"),enhancement:e("chat.prompt.systemCard.sections.enhancement"),workspace:e("chat.prompt.systemCard.sections.workspace"),instruction:e("chat.prompt.systemCard.sections.instruction"),env:e("chat.prompt.systemCard.sections.env"),skills:e("chat.prompt.systemCard.sections.skills"),toolGuide:e("chat.prompt.systemCard.sections.toolGuide"),dream:e("chat.prompt.systemCard.sections.dream"),sessionMemory:e("chat.prompt.systemCard.sections.sessionMemory"),externalMemory:e("chat.prompt.systemCard.sections.externalMemory"),taskList:e("chat.prompt.systemCard.sections.taskList"),effective:e("chat.prompt.systemCard.sections.effective")})[t],bT=({currentChat:e,message:t})=>{const{token:n}=gT(),{t:r}=Ge(),s=ae(w=>w.systemPrompts),{basePrompt:o,loadingEnhanced:i,loadEnhancedPrompt:l,promptSnapshot:u,promptToDisplay:d,showEnhanced:h,setShowEnhanced:m,snapshotSections:b}=mT({currentChat:e,message:t,systemPrompts:s}),v=y.useCallback(async w=>{try{await Pr(w)}catch(S){console.error("Failed to copy text:",S)}},[]);return a.jsx(nn,{style:{width:"100%",maxWidth:"100%",background:n.colorBgContainer,borderRadius:n.borderRadiusLG,boxShadow:"none"},children:a.jsxs(Ue,{direction:"vertical",size:n.marginSM,style:{width:"100%"},children:[a.jsxs(Me,{justify:"space-between",align:"center",children:[a.jsx(Me,{align:"center",gap:n.marginXS,children:a.jsx(Lh,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.title")})}),a.jsxs(Ue,{children:[o&&!h?a.jsx(je,{type:"text",size:"small",icon:a.jsx(od,{}),onClick:l,loading:i,children:r("chat.prompt.systemCard.viewEnhanced")}):null,o&&h?a.jsx(je,{type:"text",size:"small",onClick:()=>m(!1),children:r("chat.prompt.systemCard.viewBase")}):null,a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),onClick:()=>v(d),children:r("chat.prompt.systemCard.copy")})]})]}),a.jsx(Me,{vertical:!0,style:{maxHeight:h?400:300,overflowY:"auto",paddingRight:n.paddingXS},children:a.jsx($h,{content:d,token:n,headingColor:n.colorPrimary})}),u&&b.length>0?a.jsxs(a.Fragment,{children:[a.jsx(cl,{style:{margin:`${n.marginXS}px 0`}}),a.jsxs(Ue,{direction:"vertical",size:n.marginXS,style:{width:"100%"},children:[a.jsx(Lh,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.snapshotTitle")}),a.jsx(eo,{defaultActiveKey:b.map(w=>w.key),items:b.map(w=>({key:w.key,label:yT(r,w.key),children:a.jsx($h,{content:w.content,token:n,headingColor:n.colorPrimary})}))})]})]}):null]})})},_y=y.memo(bT);_y.displayName="SystemMessageCard";const ky=6048e5,vT=864e5,Fh=Symbol.for("constructDateFrom");function Ur(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Fh in e?e[Fh](t):e instanceof Date?new e.constructor(t):new Date(t)}function ar(e,t){return Ur(t||e,e)}let ST={};function Il(){return ST}function Hi(e,t){var l,u,d,h;const n=Il(),r=(t==null?void 0:t.weekStartsOn)??((u=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:u.weekStartsOn)??n.weekStartsOn??((h=(d=n.locale)==null?void 0:d.options)==null?void 0:h.weekStartsOn)??0,s=ar(e,t==null?void 0:t.in),o=s.getDay(),i=(o<r?7:0)+o-r;return s.setDate(s.getDate()-i),s.setHours(0,0,0,0),s}function ml(e,t){return Hi(e,{...t,weekStartsOn:1})}function Cy(e,t){const n=ar(e,t==null?void 0:t.in),r=n.getFullYear(),s=Ur(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const o=ml(s),i=Ur(n,0);i.setFullYear(r,0,4),i.setHours(0,0,0,0);const l=ml(i);return n.getTime()>=o.getTime()?r+1:n.getTime()>=l.getTime()?r:r-1}function Dh(e){const t=ar(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function xT(e,...t){const n=Ur.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function Nh(e,t){const n=ar(e,t==null?void 0:t.in);return n.setHours(0,0,0,0),n}function wT(e,t,n){const[r,s]=xT(n==null?void 0:n.in,e,t),o=Nh(r),i=Nh(s),l=+o-Dh(o),u=+i-Dh(i);return Math.round((l-u)/vT)}function _T(e,t){const n=Cy(e,t),r=Ur(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),ml(r)}function kT(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function CT(e){return!(!kT(e)&&typeof e!="number"||isNaN(+ar(e)))}function TT(e,t){const n=ar(e,t==null?void 0:t.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const PT={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},MT=(e,t,n)=>{let r;const s=PT[e];return typeof s=="string"?r=s:t===1?r=s.one:r=s.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Cc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const ET={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},jT={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},RT={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},AT={date:Cc({formats:ET,defaultWidth:"full"}),time:Cc({formats:jT,defaultWidth:"full"}),dateTime:Cc({formats:RT,defaultWidth:"full"})},IT={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},OT=(e,t,n,r)=>IT[e];function Po(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let s;if(r==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,l=n!=null&&n.width?String(n.width):i;s=e.formattingValues[l]||e.formattingValues[i]}else{const i=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;s=e.values[l]||e.values[i]}const o=e.argumentCallback?e.argumentCallback(t):t;return s[o]}}const $T={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},LT={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},FT={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},DT={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},NT={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},BT={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},zT=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},WT={ordinalNumber:zT,era:Po({values:$T,defaultWidth:"wide"}),quarter:Po({values:LT,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Po({values:FT,defaultWidth:"wide"}),day:Po({values:DT,defaultWidth:"wide"}),dayPeriod:Po({values:NT,defaultWidth:"wide",formattingValues:BT,defaultFormattingWidth:"wide"})};function Mo(e){return(t,n={})=>{const r=n.width,s=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(s);if(!o)return null;const i=o[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(l)?qT(l,m=>m.test(i)):UT(l,m=>m.test(i));let d;d=e.valueCallback?e.valueCallback(u):u,d=n.valueCallback?n.valueCallback(d):d;const h=t.slice(i.length);return{value:d,rest:h}}}function UT(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function qT(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function HT(e){return(t,n={})=>{const r=t.match(e.matchPattern);if(!r)return null;const s=r[0],o=t.match(e.parsePattern);if(!o)return null;let i=e.valueCallback?e.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;const l=t.slice(s.length);return{value:i,rest:l}}}const YT=/^(\d+)(th|st|nd|rd)?/i,XT=/\d+/i,KT={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},VT={any:[/^b/i,/^(a|c)/i]},GT={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},JT={any:[/1/i,/2/i,/3/i,/4/i]},QT={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ZT={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},eP={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},tP={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},nP={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},rP={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},sP={ordinalNumber:HT({matchPattern:YT,parsePattern:XT,valueCallback:e=>parseInt(e,10)}),era:Mo({matchPatterns:KT,defaultMatchWidth:"wide",parsePatterns:VT,defaultParseWidth:"any"}),quarter:Mo({matchPatterns:GT,defaultMatchWidth:"wide",parsePatterns:JT,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Mo({matchPatterns:QT,defaultMatchWidth:"wide",parsePatterns:ZT,defaultParseWidth:"any"}),day:Mo({matchPatterns:eP,defaultMatchWidth:"wide",parsePatterns:tP,defaultParseWidth:"any"}),dayPeriod:Mo({matchPatterns:nP,defaultMatchWidth:"any",parsePatterns:rP,defaultParseWidth:"any"})},oP={code:"en-US",formatDistance:MT,formatLong:AT,formatRelative:OT,localize:WT,match:sP,options:{weekStartsOn:0,firstWeekContainsDate:1}};function iP(e,t){const n=ar(e,t==null?void 0:t.in);return wT(n,TT(n))+1}function aP(e,t){const n=ar(e,t==null?void 0:t.in),r=+ml(n)-+_T(n);return Math.round(r/ky)+1}function Ty(e,t){var h,m,b,v;const n=ar(e,t==null?void 0:t.in),r=n.getFullYear(),s=Il(),o=(t==null?void 0:t.firstWeekContainsDate)??((m=(h=t==null?void 0:t.locale)==null?void 0:h.options)==null?void 0:m.firstWeekContainsDate)??s.firstWeekContainsDate??((v=(b=s.locale)==null?void 0:b.options)==null?void 0:v.firstWeekContainsDate)??1,i=Ur((t==null?void 0:t.in)||e,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const l=Hi(i,t),u=Ur((t==null?void 0:t.in)||e,0);u.setFullYear(r,0,o),u.setHours(0,0,0,0);const d=Hi(u,t);return+n>=+l?r+1:+n>=+d?r:r-1}function lP(e,t){var l,u,d,h;const n=Il(),r=(t==null?void 0:t.firstWeekContainsDate)??((u=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:u.firstWeekContainsDate)??n.firstWeekContainsDate??((h=(d=n.locale)==null?void 0:d.options)==null?void 0:h.firstWeekContainsDate)??1,s=Ty(e,t),o=Ur((t==null?void 0:t.in)||e,0);return o.setFullYear(s,0,r),o.setHours(0,0,0,0),Hi(o,t)}function cP(e,t){const n=ar(e,t==null?void 0:t.in),r=+Hi(n,t)-+lP(n,t);return Math.round(r/ky)+1}function Rt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Or={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Rt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Rt(n+1,2)},d(e,t){return Rt(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Rt(e.getHours()%12||12,t.length)},H(e,t){return Rt(e.getHours(),t.length)},m(e,t){return Rt(e.getMinutes(),t.length)},s(e,t){return Rt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return Rt(s,t.length)}},Os={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Bh={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),s=r>0?r:1-r;return n.ordinalNumber(s,{unit:"year"})}return Or.y(e,t)},Y:function(e,t,n,r){const s=Ty(e,r),o=s>0?s:1-s;if(t==="YY"){const i=o%100;return Rt(i,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):Rt(o,t.length)},R:function(e,t){const n=Cy(e);return Rt(n,t.length)},u:function(e,t){const n=e.getFullYear();return Rt(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Rt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Rt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Or.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Rt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const s=cP(e,r);return t==="wo"?n.ordinalNumber(s,{unit:"week"}):Rt(s,t.length)},I:function(e,t,n){const r=aP(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Rt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Or.d(e,t)},D:function(e,t,n){const r=iP(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Rt(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const s=e.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return Rt(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(s,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(s,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(s,{width:"short",context:"formatting"});case"eeee":default:return n.day(s,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const s=e.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return Rt(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(s,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(s,{width:"narrow",context:"standalone"});case"cccccc":return n.day(s,{width:"short",context:"standalone"});case"cccc":default:return n.day(s,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),s=r===0?7:r;switch(t){case"i":return String(s);case"ii":return Rt(s,t.length);case"io":return n.ordinalNumber(s,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const s=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let s;switch(r===12?s=Os.noon:r===0?s=Os.midnight:s=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let s;switch(r>=17?s=Os.evening:r>=12?s=Os.afternoon:r>=4?s=Os.morning:s=Os.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Or.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Or.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Rt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Rt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Or.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Or.s(e,t)},S:function(e,t){return Or.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Wh(r);case"XXXX":case"XX":return Zr(r);case"XXXXX":case"XXX":default:return Zr(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Wh(r);case"xxxx":case"xx":return Zr(r);case"xxxxx":case"xxx":default:return Zr(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+zh(r,":");case"OOOO":default:return"GMT"+Zr(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+zh(r,":");case"zzzz":default:return"GMT"+Zr(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Rt(r,t.length)},T:function(e,t,n){return Rt(+e,t.length)}};function zh(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=Math.trunc(r/60),o=r%60;return o===0?n+String(s):n+String(s)+t+Rt(o,2)}function Wh(e,t){return e%60===0?(e>0?"-":"+")+Rt(Math.abs(e)/60,2):Zr(e,t)}function Zr(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=Rt(Math.trunc(r/60),2),o=Rt(r%60,2);return n+s+t+o}const Uh=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},Py=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},uP=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return Uh(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",Uh(r,t)).replace("{{time}}",Py(s,t))},dP={p:Py,P:uP},fP=/^D+$/,hP=/^Y+$/,pP=["D","DD","YY","YYYY"];function mP(e){return fP.test(e)}function gP(e){return hP.test(e)}function yP(e,t,n){const r=bP(e,t,n);if(console.warn(r),pP.includes(e))throw new RangeError(r)}function bP(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const vP=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,SP=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,xP=/^'([^]*?)'?$/,wP=/''/g,_P=/[a-zA-Z]/;function kP(e,t,n){var h,m,b,v;const r=Il(),s=r.locale??oP,o=r.firstWeekContainsDate??((m=(h=r.locale)==null?void 0:h.options)==null?void 0:m.firstWeekContainsDate)??1,i=r.weekStartsOn??((v=(b=r.locale)==null?void 0:b.options)==null?void 0:v.weekStartsOn)??0,l=ar(e,n==null?void 0:n.in);if(!CT(l))throw new RangeError("Invalid time value");let u=t.match(SP).map(w=>{const S=w[0];if(S==="p"||S==="P"){const k=dP[S];return k(w,s.formatLong)}return w}).join("").match(vP).map(w=>{if(w==="''")return{isToken:!1,value:"'"};const S=w[0];if(S==="'")return{isToken:!1,value:CP(w)};if(Bh[S])return{isToken:!0,value:w};if(S.match(_P))throw new RangeError("Format string contains an unescaped latin alphabet character `"+S+"`");return{isToken:!1,value:w}});s.localize.preprocessor&&(u=s.localize.preprocessor(l,u));const d={firstWeekContainsDate:o,weekStartsOn:i,locale:s};return u.map(w=>{if(!w.isToken)return w.value;const S=w.value;(gP(S)||mP(S))&&yP(S,t,String(e));const k=Bh[S[0]];return k(l,S,s.localize,d)}).join("")}function CP(e){const t=e.match(xP);return t?t[1].replace(wP,"'"):e}const{useToken:TP}=ut,{Text:Aa}=ft,PP=({images:e,className:t,style:n,maxHeight:r={single:400,multiple:200}})=>{const{token:s}=TP(),{t:o}=Ge();return!e||e.length===0?null:a.jsx(nn,{className:t,style:{marginBottom:s.marginMD,...n},styles:{body:{padding:0}},variant:"borderless",children:a.jsx(Me,{wrap:"wrap",gap:s.marginSM,style:{width:"100%"},children:e.map(i=>a.jsxs(nn,{size:"small",style:{flex:e.length===1?"1 1 100%":"1 1 200px",overflow:"hidden",borderRadius:s.borderRadius,border:`1px solid ${s.colorBorderSecondary}`,backgroundColor:s.colorBgLayout},styles:{body:{padding:0}},children:[a.jsxs("div",{style:{position:"relative"},children:[a.jsx(XS,{src:i.url||i.base64,alt:i.name,style:{width:"100%",height:"auto",maxHeight:e.length===1?r.single:r.multiple,objectFit:"cover"},preview:{mask:a.jsxs(Me,{align:"center",justify:"center",gap:s.marginXS,style:{color:s.colorTextLightSolid},children:[a.jsx(od,{}),a.jsx(Aa,{style:{color:s.colorTextLightSolid},children:o("components.imageGrid.preview")})]})}}),a.jsxs(Me,{vertical:!0,style:{position:"absolute",bottom:0,left:0,right:0,background:"linear-gradient(transparent, rgba(0,0,0,0.7))",color:s.colorTextLightSolid,padding:`${s.paddingXS}px ${s.paddingSM}px`,fontSize:s.fontSizeSM},children:[a.jsx(Aa,{style:{color:s.colorTextLightSolid},strong:!0,children:i.name}),i.size&&a.jsxs(Aa,{style:{fontSize:s.fontSizeSM*.85,opacity:.8,color:s.colorTextLightSolid},children:[(i.size/1024).toFixed(1)," KB",i.width&&i.height&&` • ${i.width}×${i.height}`]})]})]}),(i.ocrText||i.ocrError)&&a.jsx("div",{style:{padding:s.paddingSM},children:a.jsx(eo,{ghost:!0,size:"small",items:[{key:"ocr",label:o("components.imageGrid.ocr"),children:a.jsxs(a.Fragment,{children:[i.ocrError&&a.jsx(Aa,{type:"danger",children:i.ocrError}),i.ocrText&&a.jsx(ft.Paragraph,{style:{marginTop:i.ocrError?s.marginXS:0,marginBottom:0,whiteSpace:"pre-wrap"},children:i.ocrText})]})}]})})]},i.id))})})},{useToken:MP}=ut,{useBreakpoint:EP}=Pl,jP=({buttons:e,isVisible:t,className:n,style:r,position:s={bottom:"8px",right:"8px"}})=>{const{token:o}=MP(),i=EP(),l=()=>(i.xs,"small");return a.jsx(Me,{justify:"flex-end",gap:o.marginXS,className:n,style:{marginTop:o.marginXS,position:"absolute",bottom:s.bottom,right:s.right,top:s.top,left:s.left,background:"transparent",zIndex:1,opacity:t?1:0,transition:"opacity 0.2s ease",pointerEvents:t?"auto":"none",...r},children:e.map(u=>a.jsx(xn,{title:u.title,children:a.jsx(je,{"data-testid":u["data-testid"]||u.key,icon:u.icon,size:l(),type:"text",onClick:u.onClick,disabled:u.disabled,style:{background:o.colorBgElevated,borderRadius:o.borderRadiusSM}})},u.key))})},RP=(e,t)=>({key:"copy","data-testid":"copy-message",icon:a.jsx(Tr,{}),title:t||xt.t("chat.actions.copyMessage"),onClick:e}),AP=(e,t)=>({key:"reference",icon:a.jsx(gg,{}),title:t||xt.t("chat.actions.referenceMessage"),onClick:e}),My=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_result",IP=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_call",OP=e=>e.role==="assistant"&&"type"in e&&e.type==="workflow_result",$P=e=>e.role==="user"&&"type"in e&&e.type==="file_reference",LP=e=>e.role==="assistant"&&"type"in e&&e.type==="task_list",{Title:qh,Text:Yn,Paragraph:Hh}=ft,{useToken:FP}=ut,DP=({plan:e,contextId:t,onExecute:n,onRefine:r,timestamp:s})=>{const{t:o}=Ge(),{token:i}=FP(),[l,u]=y.useState(!1),[d,h]=y.useState(""),m=()=>{d.trim()&&(r(d),h(""),u(!1))};return a.jsxs(nn,{style:{marginBottom:i.marginMD,borderColor:i.colorPrimary,borderWidth:2,backgroundColor:i.colorPrimaryBg},title:a.jsxs(Ue,{children:[a.jsx(El,{style:{color:i.colorPrimary}}),a.jsx(Yn,{strong:!0,style:{color:i.colorPrimary},children:o("components.plan.executionPlan")})]}),extra:s?a.jsx(Yn,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[a.jsxs(Me,{vertical:!0,style:{marginBottom:i.marginLG},children:[a.jsx(qh,{level:5,style:{marginBottom:i.marginXS},children:o("components.plan.goal")}),a.jsx(Hh,{style:{fontSize:15,marginBottom:0},children:e.goal})]}),a.jsxs(Me,{vertical:!0,style:{marginBottom:i.marginLG},children:[a.jsx(qh,{level:5,style:{marginBottom:i.marginMD},children:o("components.plan.steps")}),a.jsx(yg,{direction:"vertical",current:-1,items:e.steps.map(b=>({title:a.jsxs(Yn,{strong:!0,children:[o("components.plan.stepTitle",{number:b.step_number}),": ",b.action]}),description:a.jsxs(Me,{vertical:!0,children:[a.jsxs(Hh,{style:{marginBottom:i.marginXS},children:[a.jsxs(Yn,{type:"secondary",children:[o("components.plan.reason"),":"]})," ",b.reason]}),a.jsxs(Ue,{wrap:!0,children:[a.jsxs(Yn,{type:"secondary",children:[a.jsx(sd,{})," ",o("components.plan.tools"),":"]}),b.tools_needed.map((v,w)=>a.jsx(Je,{color:"processing",children:v},w))]}),a.jsx(Me,{style:{marginTop:i.marginXS},children:a.jsxs(Yn,{type:"secondary",children:[a.jsx(Js,{})," ",o("components.plan.estimated"),": ",b.estimated_time]})})]}),icon:a.jsx(Yn,{children:b.step_number})}))})]}),a.jsxs(Ue,{direction:"vertical",style:{width:"100%",marginBottom:i.marginLG},children:[a.jsxs(Me,{align:"center",gap:i.marginXS,wrap:"wrap",children:[a.jsxs(Yn,{type:"secondary",children:[a.jsx(Js,{})," ",o("components.plan.totalEstimatedTime")," "]}),a.jsx(Je,{color:"processing",children:e.estimated_total_time})]}),e.prerequisites&&e.prerequisites.length>0&&a.jsxs(Me,{vertical:!0,children:[a.jsxs(Yn,{type:"secondary",children:[o("components.plan.prerequisites"),":"]}),a.jsx(Cr,{size:"small",dataSource:e.prerequisites,renderItem:(b,v)=>a.jsx(Cr.Item,{style:{padding:0},children:a.jsx(Yn,{children:b})},`${b}-${v}`)})]})]}),e.risks&&e.risks.length>0&&a.jsx(eo,{ghost:!0,style:{marginBottom:i.marginLG},items:[{key:"risks",label:a.jsxs(Ue,{children:[a.jsx(id,{style:{color:i.colorWarning}}),a.jsx(Yn,{strong:!0,children:o("components.plan.potentialRisks",{count:e.risks.length})})]}),children:a.jsx(Cr,{size:"small",dataSource:e.risks,renderItem:(b,v)=>a.jsx(Cr.Item,{style:{padding:0},children:a.jsx(Yn,{children:b})},`${b}-${v}`)})}]}),a.jsx(Ue,{style:{width:"100%",justifyContent:"flex-end"},children:l?a.jsxs(a.Fragment,{children:[a.jsx(je,{onClick:()=>u(!1),children:o("common.cancel")}),a.jsx(je,{type:"primary",onClick:m,disabled:!d.trim(),children:o("components.plan.sendFeedback")})]}):a.jsxs(a.Fragment,{children:[a.jsx(je,{onClick:()=>u(!0),children:o("components.plan.refinePlan")}),a.jsx(je,{type:"primary",icon:a.jsx(KS,{}),onClick:n,children:o("components.plan.executePlan")})]})}),l&&a.jsx(Me,{vertical:!0,style:{marginTop:i.marginMD},children:a.jsx(xs.TextArea,{value:d,onChange:b=>h(b.target.value),placeholder:o("components.plan.feedbackPlaceholder"),autoSize:{minRows:4,maxRows:10}})})]})},Ey=y.memo(DP);Ey.displayName="PlanMessageCard";const{Title:NP,Text:$s,Paragraph:BP}=ft,{useToken:zP}=ut,WP=({question:e,contextId:t,onAnswer:n,disabled:r=!1,timestamp:s})=>{const{t:o}=Ge(),{token:i}=zP(),[l,u]=y.useState(e.default),[d,h]=y.useState(!1),m=async()=>{if(l){h(!0);try{await n(l)}catch(S){console.error("Failed to submit answer:",S)}finally{h(!1)}}},b=()=>{switch(e.severity){case"critical":return a.jsx(fg,{style:{color:i.colorError}});case"major":return a.jsx(id,{style:{color:i.colorWarning}});case"minor":return a.jsx(VS,{style:{color:i.colorInfo}});default:return a.jsx(mg,{style:{color:i.colorPrimary}})}},v=()=>{switch(e.severity){case"critical":return i.colorErrorBg;case"major":return i.colorWarningBg;case"minor":return i.colorInfoBg;default:return i.colorPrimaryBg}},w=()=>{switch(e.severity){case"critical":return i.colorError;case"major":return i.colorWarning;case"minor":return i.colorInfo;default:return i.colorPrimary}};return a.jsxs(nn,{style:{marginBottom:i.marginMD,borderColor:w(),borderWidth:2,backgroundColor:v()},title:a.jsxs(Ue,{children:[b(),a.jsx($s,{strong:!0,style:{color:w()},children:o("components.question.agentQuestion")}),a.jsxs($s,{type:"secondary",style:{fontSize:12},children:["(",e.severity,")"]})]}),extra:s?a.jsx($s,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[a.jsx(Me,{vertical:!0,style:{marginBottom:i.marginLG},children:a.jsx(NP,{level:5,style:{marginBottom:i.marginXS},children:e.question})}),e.context&&a.jsx(ir,{message:o("components.question.context"),description:e.context,type:"info",showIcon:!0,style:{marginBottom:i.marginLG}}),a.jsxs(Me,{vertical:!0,style:{marginBottom:i.marginLG},children:[a.jsx($s,{strong:!0,style:{display:"block",marginBottom:i.marginSM},children:o("components.question.chooseOption")}),a.jsx(Cf.Group,{value:l,onChange:S=>u(S.target.value),disabled:r||d,style:{width:"100%"},children:a.jsx(Ue,{direction:"vertical",style:{width:"100%"},children:e.options.map(S=>a.jsx(nn,{size:"small",hoverable:!r&&!d,style:{borderColor:l===S.value?i.colorPrimary:i.colorBorder,backgroundColor:l===S.value?i.colorPrimaryBg:i.colorBgContainer,cursor:r||d?"not-allowed":"pointer"},onClick:()=>!r&&!d&&u(S.value),children:a.jsx(Cf,{value:S.value,style:{width:"100%"},children:a.jsxs(Me,{vertical:!0,children:[a.jsxs(Me,{align:"center",gap:i.marginXS,wrap:"wrap",children:[a.jsx($s,{strong:!0,children:S.label}),S.value===e.default&&a.jsx(Je,{color:"processing",style:{marginLeft:i.marginXS},children:o("components.question.recommended")})]}),a.jsx(BP,{type:"secondary",style:{marginTop:i.marginXXS,marginBottom:0},children:S.description})]})})},S.value))})})]}),e.allow_custom&&a.jsxs(Me,{vertical:!0,style:{marginBottom:i.marginMD},children:[a.jsx($s,{type:"secondary",style:{fontSize:12},children:o("components.question.customAnswerHint")}),a.jsx(xs.TextArea,{value:l&&!e.options.find(S=>S.value===l)?l:"",onChange:S=>u(S.target.value),placeholder:o("components.question.customAnswerPlaceholder"),disabled:r||d,autoSize:{minRows:3,maxRows:8},style:{marginTop:i.marginXS}})]}),a.jsx(Me,{justify:"flex-end",children:a.jsx(je,{type:"primary",icon:a.jsx(El,{}),onClick:m,loading:d,disabled:r||!l,children:o("components.question.submitAnswer")})})]})},jy=y.memo(WP);jy.displayName="QuestionMessageCard";const{Text:Yh}=ft,UP=({paths:e,displayText:t})=>{const{token:n}=ut.useToken(),r=t.replace(/@[^\s]+/g,"").trim();return a.jsxs(nn,{size:"small",styles:{body:{padding:`${n.paddingSM}px ${n.paddingMD}px`}},style:{maxWidth:"100%"},children:[a.jsx(Ue,{direction:"vertical",size:n.marginXXS,children:e.map((s,o)=>{const i=s.split("/").pop()||s,l=s.substring(0,s.lastIndexOf("/"))||"",u=!i.includes(".");return a.jsxs(Me,{vertical:!0,children:[a.jsxs(Ue,{size:n.marginXS,align:"center",wrap:!0,children:[u?a.jsx(Tf,{style:{color:n.colorWarning,fontSize:n.fontSizeLG}}):a.jsx(ll,{style:{color:n.colorPrimary,fontSize:n.fontSizeLG}}),a.jsx(Je,{color:u?"warning":"processing",style:{margin:0,fontFamily:n.fontFamilyCode,fontSize:n.fontSize},children:i})]}),l&&a.jsx(xn,{title:s,children:a.jsxs(Ue,{size:4,align:"center",style:{marginTop:4},children:[a.jsx(Tf,{style:{color:n.colorTextTertiary,fontSize:n.fontSizeSM}}),a.jsx(Yh,{type:"secondary",style:{fontSize:n.fontSizeSM,fontFamily:n.fontFamilyCode,maxWidth:"400px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},copyable:{text:s},children:l})]})})]},o)})}),r&&a.jsx(Yh,{style:{fontSize:n.fontSize,color:n.colorText,marginTop:n.marginXS,paddingTop:n.marginXS,borderTop:`1px solid ${n.colorBorderSecondary}`},children:r})]})},Ry=y.memo(UP);Ry.displayName="FileReferenceCard";const qP=({taskList:e})=>{const{token:t}=ut.useToken(),{Text:n}=ft,{t:r}=Ge(),s=u=>{switch(u){case"pending":return a.jsx(Je,{icon:a.jsx(Js,{}),color:"default",children:r("components.todoList.status.pending")});case"in_progress":return a.jsx(Je,{icon:a.jsx(ms,{spin:!0}),color:"processing",children:r("components.todoList.status.inProgress")});case"completed":return a.jsx(Je,{icon:a.jsx(El,{}),color:"success",children:r("components.todoList.status.completed")});case"skipped":return a.jsx(Je,{icon:a.jsx(GS,{}),color:"default",children:r("components.todoList.status.skipped")});case"failed":return a.jsx(Je,{icon:a.jsx(vg,{}),color:"error",children:r("components.todoList.status.failed")});default:return null}},o=()=>{switch(e.status){case"active":return a.jsx(Je,{color:"processing",children:r("components.todoList.listStatus.active")});case"completed":return a.jsx(Je,{color:"success",children:r("components.todoList.listStatus.completed")});case"abandoned":return a.jsx(Je,{color:"error",children:r("components.todoList.listStatus.abandoned")});default:return null}},i=ht.useMemo(()=>{if(e.items.length===0)return 0;const u=e.items.filter(d=>d.status==="completed").length;return Math.round(u/e.items.length*100)},[e.items]),l=ht.useMemo(()=>e.items.find(u=>u.status==="in_progress"),[e.items]);return a.jsx(nn,{size:"small",styles:{body:{padding:t.paddingSM}},style:{borderRadius:t.borderRadiusLG},children:a.jsxs(Me,{vertical:!0,gap:t.marginSM,children:[a.jsxs(Me,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[a.jsxs(Ue,{direction:"vertical",size:2,children:[a.jsx(n,{strong:!0,children:e.title}),e.description?a.jsx(n,{type:"secondary",children:e.description}):null]}),o()]}),a.jsxs(Ue,{direction:"vertical",size:4,children:[a.jsx(bg,{percent:i,status:e.status==="completed"?"success":e.status==="abandoned"?"exception":"active",showInfo:!0}),a.jsx(n,{type:"secondary",children:r("components.todoList.percentComplete",{percent:i})})]}),a.jsx(Cr,{size:"small",dataSource:e.items,renderItem:u=>{var h;const d=(l==null?void 0:l.id)===u.id;return a.jsx(Cr.Item,{style:{borderRadius:t.borderRadius,padding:t.paddingXS,background:d?t.colorPrimaryBg:"transparent",border:"1px solid",borderColor:d?t.colorPrimaryBorder:t.colorBorderSecondary},children:a.jsxs(Me,{vertical:!0,style:{width:"100%"},gap:4,children:[a.jsxs(Me,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[a.jsx(n,{children:u.description}),s(u.status)]}),u.status==="failed"&&((h=u.metadata)!=null&&h.error)?a.jsx(n,{type:"danger",style:{fontSize:12},children:u.metadata.error}):null,u.status==="completed"&&u.summary?a.jsx(n,{type:"success",style:{fontSize:12},children:u.summary}):null]})})}}),a.jsxs(Me,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[a.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.progressLabel",{completed:e.items.filter(u=>u.status==="completed").length,total:e.items.length})}),l?a.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.currentLabel",{description:l.description})}):null]})]})})},HP=100,es=new Set;function YP(e){if(es.has(e)&&es.delete(e),es.add(e),es.size>HP){const t=es.values().next().value;t&&es.delete(t)}}function XP(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const KP=e=>{const{t}=Ge(),n=XP(e.chart),[r,s]=y.useState(()=>es.has(n)),o=y.useRef(null);return y.useEffect(()=>{if(r)return;const i=o.current;if(!i)return;const l=new IntersectionObserver(u=>{u.some(d=>d.isIntersecting)&&(YP(n),s(!0),l.disconnect())},{rootMargin:"50px",threshold:.01});return l.observe(i),()=>l.disconnect()},[r,n]),a.jsx("div",{ref:o,style:{minHeight:r?"auto":"200px"},children:r?a.jsx(ht.Suspense,{fallback:a.jsx(Gs,{size:"small",tip:t("components.mermaid.loadingDiagram")}),children:a.jsx(VP,{...e})}):a.jsx("div",{style:{minHeight:"200px"}})})},VP=e=>{const{t}=Ge(),[n,r]=y.useState(null);return y.useEffect(()=>{let s=!1;return Jt(()=>Promise.resolve().then(()=>wE),void 0,import.meta.url).then(o=>{s||r(()=>o.MermaidChart)}),()=>{s=!0}},[]),n?a.jsx(n,{...e}):a.jsx(Gs,{size:"small",tip:t("components.mermaid.loadingDiagram")})},GP=ht.memo(KP),JP=({error:e,className:t,style:n,token:r,onFix:s,isFixing:o,fixError:i})=>{const{t:l}=Ge(),u=e.split(`
|
|
136
136
|
|
|
137
137
|
`);return a.jsxs("div",{className:t,style:{color:r.colorError,padding:`${r.paddingXS}px ${r.paddingSM}px`,fontSize:r.fontSizeSM,background:r.colorErrorBg,borderRadius:r.borderRadiusSM,border:`1px solid ${r.colorErrorBorder}`,margin:`${r.marginXS}px 0`,minHeight:"60px",maxHeight:"120px",display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"flex-start",overflow:"auto",position:"relative",maxWidth:"100%",boxSizing:"border-box",...n},title:`${l("components.mermaid.errorTitlePrefix")}: ${e}
|
|
138
138
|
|
|
139
|
-
${l("components.mermaid.checkConsoleHint")}`,children:[a.jsxs("div",{style:{display:"flex",alignItems:"center",marginBottom:r.marginXXS},children:[a.jsx("span",{style:{marginRight:r.marginXS,fontSize:"14px",flexShrink:0,lineHeight:1},children:a.jsx(od,{})}),a.jsx("span",{style:{fontWeight:600,color:r.colorError},children:l("components.mermaid.diagramError")})]}),a.jsx("div",{style:{fontSize:r.fontSizeSM,lineHeight:1.4,wordBreak:"break-word",flex:1,width:"100%"},children:u.map((f,h)=>a.jsx("div",{style:{marginBottom:h<u.length-1?r.marginXS:0,...f.startsWith("💡")?{backgroundColor:r.colorInfoBg,border:`1px solid ${r.colorInfoBorder}`,borderRadius:r.borderRadiusSM,padding:r.paddingXS,marginTop:r.marginXS,color:r.colorInfo,fontWeight:500}:{}},children:f},`${h}-${f.substring(0,12)}`))}),s&&a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:r.marginXS,marginTop:r.marginXS,width:"100%"},children:[a.jsx(je,{size:"small",type:"primary",onClick:s,loading:o,children:l("components.mermaid.fixMermaid")}),i&&a.jsx("span",{style:{color:r.colorError,fontSize:r.fontSizeSM,wordBreak:"break-word",flex:1},children:i})]}),a.jsxs("div",{style:{fontSize:r.fontSizeSM,color:r.colorTextSecondary,marginTop:r.marginXS,fontStyle:"italic"},children:[a.jsx(cg,{style:{marginRight:4}})," ",l("components.mermaid.checkConsoleHint")]})]})};var Vn=function(e,t){return Number(e.toFixed(t))},VP=function(e,t){return typeof e=="number"?e:t},Ht=function(e,t,n){n&&typeof n=="function"&&n(e,t)},GP=function(e){return-Math.cos(e*Math.PI)/2+.5},JP=function(e){return e},QP=function(e){return e*e},ZP=function(e){return e*(2-e)},eE=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},tE=function(e){return e*e*e},nE=function(e){return--e*e*e+1},rE=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},sE=function(e){return e*e*e*e},oE=function(e){return 1- --e*e*e*e},iE=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},aE=function(e){return e*e*e*e*e},lE=function(e){return 1+--e*e*e*e*e},cE=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},Ry={easeOut:GP,linear:JP,easeInQuad:QP,easeOutQuad:ZP,easeInOutQuad:eE,easeInCubic:tE,easeOutCubic:nE,easeInOutCubic:rE,easeInQuart:sE,easeOutQuart:oE,easeInOutQuart:iE,easeInQuint:aE,easeOutQuint:lE,easeInOutQuint:cE},Ay=function(e){typeof e=="number"&&cancelAnimationFrame(e)},or=function(e){e.mounted&&(Ay(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function Iy(e,t,n,r){if(e.mounted){var s=new Date().getTime(),o=1;or(e),e.animation=function(){if(!e.mounted)return Ay(e.animation);var i=new Date().getTime()-s,l=i/n,u=Ry[t],f=u(l);i>=n?(r(o),e.animation=null):e.animation&&(r(f),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function uE(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function Hr(e,t,n,r){var s=uE(t);if(!(!e.mounted||!s)){var o=e.setTransformState,i=e.transformState,l=i.scale,u=i.positionX,f=i.positionY,h=t.scale-l,m=t.positionX-u,b=t.positionY-f;n===0?o(t.scale,t.positionX,t.positionY):Iy(e,r,n,function(v){var w=l+h*v,S=u+m*v,k=f+b*v;o(w,S,k)})}}function dE(e,t,n){var r=e.offsetWidth,s=e.offsetHeight,o=t.offsetWidth,i=t.offsetHeight,l=o*n,u=i*n,f=r-l,h=s-u;return{wrapperWidth:r,wrapperHeight:s,newContentWidth:l,newDiffWidth:f,newContentHeight:u,newDiffHeight:h}}var fE=function(e,t,n,r,s,o,i){var l=e>t?n*(i?1:.5):0,u=r>s?o*(i?1:.5):0,f=e-t-l,h=l,m=r-s-u,b=u;return{minPositionX:f,maxPositionX:h,minPositionY:m,maxPositionY:b}},_d=function(e,t){var n=e.wrapperComponent,r=e.contentComponent,s=e.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var o=dE(n,r,t),i=o.wrapperWidth,l=o.wrapperHeight,u=o.newContentWidth,f=o.newDiffWidth,h=o.newContentHeight,m=o.newDiffHeight,b=fE(i,u,f,l,h,m,!!s);return b},Tu=function(e,t,n,r){return r?e<t?Vn(t,2):e>n?Vn(n,2):Vn(e,2):Vn(e,2)},hs=function(e,t){var n=_d(e,t);return e.bounds=n,n};function Vi(e,t,n,r,s,o,i){var l=n.minPositionX,u=n.minPositionY,f=n.maxPositionX,h=n.maxPositionY,m=0,b=0;i&&(m=s,b=o);var v=Tu(e,l-m,f+m,r),w=Tu(t,u-b,h+b,r);return{x:v,y:w}}function Il(e,t,n,r,s,o){var i=e.transformState,l=i.scale,u=i.positionX,f=i.positionY,h=r-l;if(typeof t!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:u,y:f};var m=u-t*h,b=f-n*h,v=Vi(m,b,s,o,0,0,null);return v}function Gi(e,t,n,r,s){var o=s?r:0,i=t-o;return!Number.isNaN(n)&&e>=n?n:!Number.isNaN(t)&&e<=i?i:e}var Xh=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,s=e.wrapperComponent,o=t.target,i="shadowRoot"in o&&"composedPath"in t,l=i?t.composedPath().some(function(h){return h instanceof Element?s==null?void 0:s.contains(h):!1}):s==null?void 0:s.contains(o),u=r&&o&&l;if(!u)return!1;var f=Ol(o,n);return!f},Kh=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,s=r.panning.disabled,o=t&&n&&!s;return!!o},hE=function(e,t){var n=e.transformState,r=n.positionX,s=n.positionY;e.isPanning=!0;var o=t.clientX,i=t.clientY;e.startCoords={x:o-r,y:i-s}},pE=function(e,t){var n=t.touches,r=e.transformState,s=r.positionX,o=r.positionY;e.isPanning=!0;var i=n.length===1;if(i){var l=n[0].clientX,u=n[0].clientY;e.startCoords={x:l-s,y:u-o}}};function mE(e){var t=e.transformState,n=t.positionX,r=t.positionY,s=t.scale,o=e.setup,i=o.disabled,l=o.limitToBounds,u=o.centerZoomedOut,f=e.wrapperComponent;if(!(i||!f||!e.bounds)){var h=e.bounds,m=h.maxPositionX,b=h.minPositionX,v=h.maxPositionY,w=h.minPositionY,S=n>m||n<b,k=r>v||r<w,P=n>m?f.offsetWidth:e.setup.minPositionX||0,T=r>v?f.offsetHeight:e.setup.minPositionY||0,M=Il(e,P,T,s,e.bounds,l||u),C=M.x,j=M.y;return{scale:s,positionX:S?C:n,positionY:k?j:r}}}function Oy(e,t,n,r,s){var o=e.setup.limitToBounds,i=e.wrapperComponent,l=e.bounds,u=e.transformState,f=u.scale,h=u.positionX,m=u.positionY;if(!(i===null||l===null||t===h&&n===m)){var b=Vi(t,n,l,o,r,s,i),v=b.x,w=b.y;e.setTransformState(f,v,w)}}var gE=function(e,t,n){var r=e.startCoords,s=e.transformState,o=e.setup.panning,i=o.lockAxisX,l=o.lockAxisY,u=s.positionX,f=s.positionY;if(!r)return{x:u,y:f};var h=t-r.x,m=n-r.y,b=i?u:h,v=l?f:m;return{x:b,y:v}},Ur=function(e,t){var n=e.setup,r=e.transformState,s=r.scale,o=n.minScale,i=n.disablePadding;return t>0&&s>=o&&!i?t:0},yE=function(e){var t=e.mounted,n=e.setup,r=n.disabled,s=n.velocityAnimation,o=e.transformState.scale,i=s.disabled,l=!i||o>1||!r||t;return!!l},bE=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,s=e.setup,o=s.disabled,i=s.velocityAnimation,l=e.transformState.scale,u=i.disabled,f=!u||l>1||!o||t;return!(!f||!n||!r)};function vE(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,s=n.animationTime,o=n.sensitivity;return r?s*t*o:s}function Vh(e,t,n,r,s,o,i,l,u,f){if(s){if(t>i&&n>i){var h=i+(e-i)*f;return h>u?u:h<i?i:h}if(t<o&&n<o){var h=o+(e-o)*f;return h<l?l:h>o?o:h}}return r?t:Tu(e,o,i,s)}function SE(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function xE(e,t){var n=yE(e);if(n){var r=e.lastMousePosition,s=e.velocityTime,o=e.setup,i=e.wrapperComponent,l=o.velocityAnimation.equalToMove,u=Date.now();if(r&&s&&i){var f=SE(i,l),h=t.x-r.x,m=t.y-r.y,b=h/f,v=m/f,w=u-s,S=h*h+m*m,k=Math.sqrt(S)/w;e.velocity={velocityX:b,velocityY:v,total:k}}e.lastMousePosition=t,e.velocityTime=u}}function wE(e){var t=e.velocity,n=e.bounds,r=e.setup,s=e.wrapperComponent,o=bE(e);if(!(!o||!t||!n||!s)){var i=t.velocityX,l=t.velocityY,u=t.total,f=n.maxPositionX,h=n.minPositionX,m=n.maxPositionY,b=n.minPositionY,v=r.limitToBounds,w=r.alignmentAnimation,S=r.zoomAnimation,k=r.panning,P=k.lockAxisY,T=k.lockAxisX,M=S.animationType,C=w.sizeX,j=w.sizeY,A=w.velocityAlignmentTime,O=A,F=vE(e,u),D=Math.max(F,O),N=Ur(e,C),q=Ur(e,j),I=N*s.offsetWidth/100,Q=q*s.offsetHeight/100,G=f+I,Z=h-I,pe=m+Q,$=b-Q,oe=e.transformState,me=new Date().getTime();Iy(e,M,D,function(ne){var fe=e.transformState,he=fe.scale,ue=fe.positionX,de=fe.positionY,Ce=new Date().getTime()-me,ze=Ce/O,Le=Ry[w.animationType],lt=1-Le(Math.min(1,ze)),L=1-ne,le=ue+i*L,Ae=de+l*L,Oe=Vh(le,oe.positionX,ue,T,v,h,f,Z,G,lt),He=Vh(Ae,oe.positionY,de,P,v,b,m,$,pe,lt);(ue!==le||de!==Ae)&&e.setTransformState(he,Oe,He)})}}function Gh(e,t){var n=e.transformState.scale;or(e),hs(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?pE(e,t):hE(e,t)}function kd(e,t){var n=e.transformState.scale,r=e.setup,s=r.minScale,o=r.alignmentAnimation,i=o.disabled,l=o.sizeX,u=o.sizeY,f=o.animationTime,h=o.animationType,m=i||n<s||!l&&!u;if(!m){var b=mE(e);b&&Hr(e,b,t??f,h)}}function Jh(e,t,n){var r=e.startCoords,s=e.setup,o=s.alignmentAnimation,i=o.sizeX,l=o.sizeY;if(r){var u=gE(e,t,n),f=u.x,h=u.y,m=Ur(e,i),b=Ur(e,l);xE(e,{x:f,y:h}),Oy(e,f,h,m,b)}}function _E(e){if(e.isPanning){var t=e.setup.panning.velocityDisabled,n=e.velocity,r=e.wrapperComponent,s=e.contentComponent;e.isPanning=!1,e.animate=!1,e.animation=null;var o=r==null?void 0:r.getBoundingClientRect(),i=s==null?void 0:s.getBoundingClientRect(),l=(o==null?void 0:o.width)||0,u=(o==null?void 0:o.height)||0,f=(i==null?void 0:i.width)||0,h=(i==null?void 0:i.height)||0,m=l<f||u<h,b=!t&&n&&(n==null?void 0:n.total)>.1&&m;b?wE(e):kd(e)}}function Cd(e,t,n,r){var s=e.setup,o=s.minScale,i=s.maxScale,l=s.limitToBounds,u=Gi(Vn(t,2),o,i,0,!1),f=hs(e,u),h=Il(e,n,r,u,f,l),m=h.x,b=h.y;return{scale:u,positionX:m,positionY:b}}function $y(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,i=o.minScale,l=o.limitToBounds,u=o.zoomAnimation,f=u.disabled,h=u.animationTime,m=u.animationType,b=f||r>=i;if((r>=1||l)&&kd(e),!(b||!s||!e.mounted)){var v=t||s.offsetWidth/2,w=n||s.offsetHeight/2,S=Cd(e,i,v,w);S&&Hr(e,S,h,m)}}var Br=function(){return Br=Object.assign||function(t){for(var n,r=1,s=arguments.length;r<s;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},Br.apply(this,arguments)};function Qh(e,t,n){for(var r=0,s=t.length,o;r<s;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}var Aa={scale:1,positionX:0,positionY:0},Eo={disabled:!1,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,centerZoomedOut:!1,centerOnInit:!1,disablePadding:!1,smooth:!0,wheel:{step:.2,disabled:!1,smoothStep:.001,wheelDisabled:!1,touchPadDisabled:!1,activationKeys:[],excluded:[]},panning:{disabled:!1,velocityDisabled:!1,lockAxisX:!1,lockAxisY:!1,allowLeftClickPan:!0,allowMiddleClickPan:!0,allowRightClickPan:!0,wheelPanning:!1,activationKeys:[],excluded:[]},pinch:{step:5,disabled:!1,excluded:[]},doubleClick:{disabled:!1,step:.7,mode:"zoomIn",animationType:"easeOut",animationTime:200,excluded:[]},zoomAnimation:{disabled:!1,size:.4,animationTime:200,animationType:"easeOut"},alignmentAnimation:{disabled:!1,sizeX:100,sizeY:100,animationTime:200,velocityAlignmentTime:400,animationType:"easeOut"},velocityAnimation:{disabled:!1,sensitivity:1,animationTime:400,animationType:"easeOut",equalToMove:!0}},Pu={wrapperClass:"react-transform-wrapper",contentClass:"react-transform-component"},Ly=function(e){var t,n,r,s;return{previousScale:(t=e.initialScale)!==null&&t!==void 0?t:Aa.scale,scale:(n=e.initialScale)!==null&&n!==void 0?n:Aa.scale,positionX:(r=e.initialPositionX)!==null&&r!==void 0?r:Aa.positionX,positionY:(s=e.initialPositionY)!==null&&s!==void 0?s:Aa.positionY}},Zh=function(e){var t=Br({},Eo);return Object.keys(e).forEach(function(n){var r=typeof e[n]<"u",s=typeof Eo[n]<"u";if(s&&r){var o=Object.prototype.toString.call(Eo[n]),i=o==="[object Object]",l=o==="[object Array]";i?t[n]=Br(Br({},Eo[n]),e[n]):l?t[n]=Qh(Qh([],Eo[n],!0),e[n]):t[n]=e[n]}}),t},Fy=function(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,i=o.maxScale,l=o.minScale,u=o.zoomAnimation,f=o.smooth,h=u.size;if(!s)throw new Error("Wrapper is not mounted");var m=f?r*Math.exp(t*n):r+t*n,b=Gi(Vn(m,3),l,i,h,!1);return b};function Dy(e,t,n,r,s){var o=e.wrapperComponent,i=e.transformState,l=i.scale,u=i.positionX,f=i.positionY;if(!o)return console.error("No WrapperComponent found");var h=o.offsetWidth,m=o.offsetHeight,b=(h/2-u)/l,v=(m/2-f)/l,w=Fy(e,t,n),S=Cd(e,w,b,v);if(!S)return console.error("Error during zoom event. New transformation state was not calculated.");Hr(e,S,r,s)}function Ny(e,t,n,r){var s=e.setup,o=e.wrapperComponent,i=s.limitToBounds,l=Ly(e.props),u=e.transformState,f=u.scale,h=u.positionX,m=u.positionY;if(o){var b=_d(e,l.scale),v=Vi(l.positionX,l.positionY,b,i,0,0,o),w={scale:l.scale,positionX:v.x,positionY:v.y};f===l.scale&&h===l.positionX&&m===l.positionY||(r==null||r(),Hr(e,w,t,n))}}function kE(e,t,n,r){var s=e.getBoundingClientRect(),o=t.getBoundingClientRect(),i=n.getBoundingClientRect(),l=o.x*r.scale,u=o.y*r.scale;return{x:(s.x-i.x+l)/r.scale,y:(s.y-i.y+u)/r.scale}}function CE(e,t,n){var r=e.wrapperComponent,s=e.contentComponent,o=e.transformState,i=e.setup,l=i.limitToBounds,u=i.minScale,f=i.maxScale;if(!r||!s)return o;var h=r.getBoundingClientRect(),m=t.getBoundingClientRect(),b=kE(t,r,s,o),v=b.x,w=b.y,S=m.width/o.scale,k=m.height/o.scale,P=r.offsetWidth/S,T=r.offsetHeight/k,M=Gi(n||Math.min(P,T),u,f,0,!1),C=(h.width-S*M)/2,j=(h.height-k*M)/2,A=(h.left-v)*M+C,O=(h.top-w)*M+j,F=_d(e,M),D=Vi(A,O,F,l,0,0,r),N=D.x,q=D.y;return{positionX:N,positionY:q,scale:M}}var TE=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Dy(e,1,t,n,r)}},PE=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Dy(e,-1,t,n,r)}},EE=function(e){return function(t,n,r,s,o){s===void 0&&(s=300),o===void 0&&(o="easeOut");var i=e.transformState,l=i.positionX,u=i.positionY,f=i.scale,h=e.wrapperComponent,m=e.contentComponent,b=e.setup.disabled;if(!(b||!h||!m)){var v={positionX:Number.isNaN(t)?l:t,positionY:Number.isNaN(n)?u:n,scale:Number.isNaN(r)?f:r};Hr(e,v,s,o)}}},ME=function(e){return function(t,n){t===void 0&&(t=200),n===void 0&&(n="easeOut"),Ny(e,t,n)}},jE=function(e){return function(t,n,r){n===void 0&&(n=200),r===void 0&&(r="easeOut");var s=e.transformState,o=e.wrapperComponent,i=e.contentComponent;if(o&&i){var l=By(t||s.scale,o,i);Hr(e,l,n,r)}}},RE=function(e){return function(t,n,r,s){r===void 0&&(r=600),s===void 0&&(s="easeOut"),or(e);var o=e.wrapperComponent,i=typeof t=="string"?document.getElementById(t):t;if(o&&i&&o.contains(i)){var l=CE(e,i,n);Hr(e,l,r,s)}}},Eu=function(e){return{instance:e,zoomIn:TE(e),zoomOut:PE(e),setTransform:EE(e),resetTransform:ME(e),centerView:jE(e),zoomToElement:RE(e)}},AE=function(e){return{instance:e,state:e.transformState}},Dt=function(e){var t={};return Object.assign(t,AE(e)),Object.assign(t,Eu(e)),t},Cc=!1;function Tc(){try{var e={get passive(){return Cc=!0,!1}};return e}catch{return Cc=!1,Cc}}var Ia=".".concat(Pu.wrapperClass),Ol=function(e,t){return t.some(function(n){return e.matches("".concat(Ia," ").concat(n,", ").concat(Ia," .").concat(n,", ").concat(Ia," ").concat(n," *, ").concat(Ia," .").concat(n," *"))})},Mu=function(e){e&&clearTimeout(e)},IE=function(e,t,n){return"translate(".concat(e,"px, ").concat(t,"px) scale(").concat(n,")")},By=function(e,t,n){var r=n.offsetWidth*e,s=n.offsetHeight*e,o=(t.offsetWidth-r)/2,i=(t.offsetHeight-s)/2;return{scale:e,positionX:o,positionY:i}};function OE(e){return function(t){e.forEach(function(n){typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var $E=function(e,t){var n=e.setup.wheel,r=n.disabled,s=n.wheelDisabled,o=n.touchPadDisabled,i=n.excluded,l=e.isInitialized,u=e.isPanning,f=t.target,h=l&&!u&&!r&&f;if(!h||s&&!t.ctrlKey||o&&t.ctrlKey)return!1;var m=Ol(f,i);return!m},LE=function(e){return e?e.deltaY<0?1:-1:0};function FE(e,t){var n=LE(e),r=VP(t,n);return r}function zy(e,t,n){var r=t.getBoundingClientRect(),s=0,o=0;if("clientX"in e)s=(e.clientX-r.left)/n,o=(e.clientY-r.top)/n;else{var i=e.touches[0];s=(i.clientX-r.left)/n,o=(i.clientY-r.top)/n}return(Number.isNaN(s)||Number.isNaN(o))&&console.error("No mouse or touch offset found"),{x:s,y:o}}var DE=function(e,t,n,r,s){var o=e.transformState.scale,i=e.wrapperComponent,l=e.setup,u=l.maxScale,f=l.minScale,h=l.zoomAnimation,m=l.disablePadding,b=h.size,v=h.disabled;if(!i)throw new Error("Wrapper is not mounted");var w=o+t*n,S=r?!1:!v,k=Gi(Vn(w,3),f,u,b,S&&!m);return k},NE=function(e,t){var n=e.previousWheelEvent,r=e.transformState.scale,s=e.setup,o=s.maxScale,i=s.minScale;return n?r<o||r>i||Math.sign(n.deltaY)!==Math.sign(t.deltaY)||n.deltaY>0&&n.deltaY<t.deltaY||n.deltaY<0&&n.deltaY>t.deltaY||Math.sign(n.deltaY)!==Math.sign(t.deltaY):!1},BE=function(e,t){var n=e.setup.pinch,r=n.disabled,s=n.excluded,o=e.isInitialized,i=t.target,l=o&&!r&&i;if(!l)return!1;var u=Ol(i,s);return!u},zE=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,s=n&&!t&&r;return!!s},WE=function(e,t,n){var r=n.getBoundingClientRect(),s=e.touches,o=Vn(s[0].clientX-r.left,5),i=Vn(s[0].clientY-r.top,5),l=Vn(s[1].clientX-r.left,5),u=Vn(s[1].clientY-r.top,5);return{x:(o+l)/2/t,y:(i+u)/2/t}},Wy=function(e){return Math.sqrt(Math.pow(e.touches[0].pageX-e.touches[1].pageX,2)+Math.pow(e.touches[0].pageY-e.touches[1].pageY,2))},UE=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,s=e.setup,o=s.maxScale,i=s.minScale,l=s.zoomAnimation,u=s.disablePadding,f=l.size,h=l.disabled;if(!n||r===null||!t)throw new Error("Pinch touches distance was not provided");if(t<0)return e.transformState.scale;var m=t/r,b=m*n;return Gi(Vn(b,2),i,o,f,!h&&!u)},qE=160,HE=100,YE=function(e,t){var n=e.props,r=n.onWheelStart,s=n.onZoomStart;e.wheelStopEventTimer||(or(e),Ht(Dt(e),t,r),Ht(Dt(e),t,s))},XE=function(e,t){var n=e.props,r=n.onWheel,s=n.onZoom,o=e.contentComponent,i=e.setup,l=e.transformState,u=l.scale,f=i.limitToBounds,h=i.centerZoomedOut,m=i.zoomAnimation,b=i.wheel,v=i.disablePadding,w=i.smooth,S=m.size,k=m.disabled,P=b.step,T=b.smoothStep;if(!o)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var M=FE(t,null),C=w?T*Math.abs(t.deltaY):P,j=DE(e,M,C,!t.ctrlKey);if(u!==j){var A=hs(e,j),O=zy(t,o,u),F=k||S===0||h||v,D=f&&F,N=Il(e,O.x,O.y,j,A,D),q=N.x,I=N.y;e.previousWheelEvent=t,e.setTransformState(j,q,I),Ht(Dt(e),t,r),Ht(Dt(e),t,s)}},KE=function(e,t){var n=e.props,r=n.onWheelStop,s=n.onZoomStop;Mu(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&($y(e,t.x,t.y),e.wheelAnimationTimer=null)},HE);var o=NE(e,t);o&&(Mu(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,Ht(Dt(e),t,r),Ht(Dt(e),t,s))},qE))},Uy=function(e){for(var t=0,n=0,r=0;r<2;r+=1)t+=e.touches[r].clientX,n+=e.touches[r].clientY;var s=t/2,o=n/2;return{x:s,y:o}},VE=function(e,t){var n=Wy(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1;var r=Uy(t);e.pinchLastCenterX=r.x,e.pinchLastCenterY=r.y,or(e)},GE=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,s=e.wrapperComponent,o=e.transformState.scale,i=e.setup,l=i.limitToBounds,u=i.centerZoomedOut,f=i.zoomAnimation,h=i.alignmentAnimation,m=f.disabled,b=f.size;if(!(r===null||!n)){var v=WE(t,o,n);if(!(!Number.isFinite(v.x)||!Number.isFinite(v.y))){var w=Wy(t),S=UE(e,w),k=Uy(t),P=k.x-(e.pinchLastCenterX||0),T=k.y-(e.pinchLastCenterY||0);if(!(S===o&&P===0&&T===0)){e.pinchLastCenterX=k.x,e.pinchLastCenterY=k.y;var M=hs(e,S),C=m||b===0||u,j=l&&C,A=Il(e,v.x,v.y,S,M,j),O=A.x,F=A.y;e.pinchMidpoint=v,e.lastDistance=w;var D=h.sizeX,N=h.sizeY,q=Ur(e,D),I=Ur(e,N),Q=O+P,G=F+T,Z=Vi(Q,G,M,l,q,I,s),pe=Z.x,$=Z.y;e.setTransformState(S,pe,$)}}}},JE=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,$y(e,t==null?void 0:t.x,t==null?void 0:t.y)},qy=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;Mu(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,Ht(Dt(e),t,n)},r)},QE=function(e,t){var n=e.props,r=n.onZoomStart,s=n.onZoom,o=e.setup.doubleClick,i=o.animationTime,l=o.animationType;Ht(Dt(e),t,r),Ny(e,i,l,function(){return Ht(Dt(e),t,s)}),qy(e,t)};function ZE(e,t){return e==="toggle"?t===1?1:-1:e==="zoomOut"?-1:1}function eM(e,t){var n=e.setup,r=e.doubleClickStopEventTimer,s=e.transformState,o=e.contentComponent,i=s.scale,l=e.props,u=l.onZoomStart,f=l.onZoom,h=n.doubleClick,m=h.disabled,b=h.mode,v=h.step,w=h.animationTime,S=h.animationType;if(!m&&!r){if(b==="reset")return QE(e,t);if(!o)return console.error("No ContentComponent found");var k=ZE(b,e.transformState.scale),P=Fy(e,k,v);if(i!==P){Ht(Dt(e),t,u);var T=zy(t,o,i),M=Cd(e,P,T.x,T.y);if(!M)return console.error("Error during zoom event. New transformation state was not calculated.");Ht(Dt(e),t,f),Hr(e,M,w,S),qy(e,t)}}}var tM=function(e,t){var n=e.isInitialized,r=e.setup,s=e.wrapperComponent,o=r.doubleClick,i=o.disabled,l=o.excluded,u=t.target,f=s==null?void 0:s.contains(u),h=n&&u&&f&&!i;if(!h)return!1;var m=Ol(u,l);return!m},nM=function(){function e(t){var n=this;this.mounted=!0,this.pinchLastCenterX=null,this.pinchLastCenterY=null,this.onChangeCallbacks=new Set,this.onInitCallbacks=new Set,this.wrapperComponent=null,this.contentComponent=null,this.isInitialized=!1,this.bounds=null,this.previousWheelEvent=null,this.wheelStopEventTimer=null,this.wheelAnimationTimer=null,this.isPanning=!1,this.isWheelPanning=!1,this.startCoords=null,this.lastTouch=null,this.distance=null,this.lastDistance=null,this.pinchStartDistance=null,this.pinchStartScale=null,this.pinchMidpoint=null,this.doubleClickStopEventTimer=null,this.velocity=null,this.velocityTime=null,this.lastMousePosition=null,this.animate=!1,this.animation=null,this.maxBounds=null,this.pressedKeys={},this.mount=function(){n.initializeWindowEvents()},this.unmount=function(){n.cleanupWindowEvents()},this.update=function(r){n.props=r,hs(n,n.transformState.scale),n.setup=Zh(r)},this.initializeWindowEvents=function(){var r,s,o=Tc(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,l=i==null?void 0:i.defaultView;(s=n.wrapperComponent)===null||s===void 0||s.addEventListener("wheel",n.onWheelPanning,o),l==null||l.addEventListener("mousedown",n.onPanningStart,o),l==null||l.addEventListener("mousemove",n.onPanning,o),l==null||l.addEventListener("mouseup",n.onPanningStop,o),i==null||i.addEventListener("mouseleave",n.clearPanning,o),l==null||l.addEventListener("keyup",n.setKeyUnPressed,o),l==null||l.addEventListener("keydown",n.setKeyPressed,o)},this.cleanupWindowEvents=function(){var r,s,o=Tc(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,l=i==null?void 0:i.defaultView;l==null||l.removeEventListener("mousedown",n.onPanningStart,o),l==null||l.removeEventListener("mousemove",n.onPanning,o),l==null||l.removeEventListener("mouseup",n.onPanningStop,o),i==null||i.removeEventListener("mouseleave",n.clearPanning,o),l==null||l.removeEventListener("keyup",n.setKeyUnPressed,o),l==null||l.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),or(n),(s=n.observer)===null||s===void 0||s.disconnect()},this.handleInitializeWrapperEvents=function(r){var s=Tc();r.addEventListener("wheel",n.onWheelZoom,s),r.addEventListener("dblclick",n.onDoubleClick,s),r.addEventListener("touchstart",n.onTouchPanningStart,s),r.addEventListener("touchmove",n.onTouchPanning,s),r.addEventListener("touchend",n.onTouchPanningStop,s)},this.handleInitialize=function(r,s){var o=!1,i=n.setup.centerOnInit,l=function(u,f){for(var h=0,m=u;h<m.length;h++){var b=m[h];if(b.target===f)return!0}return!1};n.applyTransformation(),n.onInitCallbacks.forEach(function(u){u(Dt(n))}),n.observer=new ResizeObserver(function(u){if(l(u,r)||l(u,s))if(i&&!o){var f=s.offsetWidth,h=s.offsetHeight;(f>0||h>0)&&(o=!0,n.setCenter())}else or(n),hs(n,n.transformState.scale),kd(n,0)}),n.observer.observe(r),n.observer.observe(s)},this.onWheelZoom=function(r){var s=n.setup.disabled;if(!s){var o=$E(n,r);if(o){var i=n.isPressingKeys(n.setup.wheel.activationKeys);i&&(YE(n,r),XE(n,r),KE(n,r))}}},this.onWheelPanning=function(r){var s=n.setup,o=s.disabled,i=s.wheel,l=s.panning;if(!(!n.wrapperComponent||!n.contentComponent||o||!i.wheelDisabled||l.disabled||!l.wheelPanning||r.ctrlKey)){r.preventDefault(),r.stopPropagation();var u=n.transformState,f=u.positionX,h=u.positionY,m=f-r.deltaX,b=h-r.deltaY,v=l.lockAxisX?f:m,w=l.lockAxisY?h:b,S=n.setup.alignmentAnimation,k=S.sizeX,P=S.sizeY,T=Ur(n,k),M=Ur(n,P);v===f&&w===h||Oy(n,v,w,T,M)}},this.onPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=Xh(n,r);if(i){var l=n.isPressingKeys(n.setup.panning.activationKeys);l&&(r.button===0&&!n.setup.panning.allowLeftClickPan||r.button===1&&!n.setup.panning.allowMiddleClickPan||r.button===2&&!n.setup.panning.allowRightClickPan||(r.preventDefault(),r.stopPropagation(),or(n),Gh(n,r),Ht(Dt(n),r,o)))}}},this.onPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(!s){var i=Kh(n);if(i){var l=n.isPressingKeys(n.setup.panning.activationKeys);l&&(r.preventDefault(),r.stopPropagation(),Jh(n,r.clientX,r.clientY),Ht(Dt(n),r,o))}}},this.onPanningStop=function(r){var s=n.props.onPanningStop;n.isPanning&&(_E(n),Ht(Dt(n),r,s))},this.onPinchStart=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinchingStart,l=o.onZoomStart;if(!s){var u=BE(n,r);u&&(VE(n,r),or(n),Ht(Dt(n),r,i),Ht(Dt(n),r,l))}},this.onPinch=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinching,l=o.onZoom;if(!s){var u=zE(n);u&&(r.preventDefault(),r.stopPropagation(),GE(n,r),Ht(Dt(n),r,i),Ht(Dt(n),r,l))}},this.onPinchStop=function(r){var s=n.props,o=s.onPinchingStop,i=s.onZoomStop;n.pinchStartScale&&(JE(n),Ht(Dt(n),r,o),Ht(Dt(n),r,i))},this.onTouchPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=Xh(n,r);if(i){var l=n.lastTouch&&+new Date-n.lastTouch<200&&r.touches.length===1;if(!l){n.lastTouch=+new Date,or(n);var u=r.touches,f=u.length===1,h=u.length===2;f&&(or(n),Gh(n,r),Ht(Dt(n),r,o)),h&&n.onPinchStart(r)}}}},this.onTouchPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(n.isPanning&&r.touches.length===1){if(s)return;var i=Kh(n);if(!i)return;r.preventDefault(),r.stopPropagation();var l=r.touches[0];Jh(n,l.clientX,l.clientY),Ht(Dt(n),r,o)}else r.touches.length>1&&n.onPinch(r)},this.onTouchPanningStop=function(r){n.onPanningStop(r),n.onPinchStop(r)},this.onDoubleClick=function(r){var s=n.setup.disabled;if(!s){var o=tM(n,r);o&&eM(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?!!r.find(function(s){return n.pressedKeys[s]}):!0},this.setTransformState=function(r,s,o){var i=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(s)&&!Number.isNaN(o)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=s,n.transformState.positionY=o,n.applyTransformation();var l=Dt(n);n.onChangeCallbacks.forEach(function(u){return u(l)}),Ht(l,{scale:r,positionX:s,positionY:o},i)}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=By(n.transformState.scale,n.wrapperComponent,n.contentComponent);n.setTransformState(r.scale,r.positionX,r.positionY)}},this.handleTransformStyles=function(r,s,o){return n.props.customTransform?n.props.customTransform(r,s,o):IE(r,s,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,s=r.scale,o=r.positionX,i=r.positionY,l=n.handleTransformStyles(o,i,s);n.contentComponent.style.transform=l}},this.getContext=function(){return Dt(n)},this.onChange=function(r){return n.onChangeCallbacks.has(r)||n.onChangeCallbacks.add(r),function(){n.onChangeCallbacks.delete(r)}},this.onInit=function(r){return n.onInitCallbacks.has(r)||n.onInitCallbacks.add(r),function(){n.onInitCallbacks.delete(r)}},this.init=function(r,s){n.cleanupWindowEvents(),n.wrapperComponent=r,n.contentComponent=s,hs(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(r,s),n.initializeWindowEvents(),n.isInitialized=!0;var o=Dt(n);Ht(o,void 0,n.props.onInit)},this.props=t,this.setup=Zh(this.props),this.transformState=Ly(this.props)}return e}(),Td=ht.createContext(null),rM=function(e,t){return typeof e=="function"?e(t):e},sM=ht.forwardRef(function(e,t){var n=y.useRef(new nM(e)).current,r=rM(e.children,Eu(n));return y.useImperativeHandle(t,function(){return Eu(n)},[n]),y.useEffect(function(){n.update(e)},[n,e]),ht.createElement(Td.Provider,{value:n},r)});ht.forwardRef(function(e,t){var n=y.useRef(null),r=y.useContext(Td);return y.useEffect(function(){return r.onChange(function(s){if(n.current){var o=0,i=0;n.current.style.transform=r.handleTransformStyles(o,i,1/s.instance.transformState.scale)}})},[r]),ht.createElement("div",Br({},e,{ref:OE([n,t])}))});function oM(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",n==="top"&&r.firstChild?r.insertBefore(s,r.firstChild):r.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}var iM=`.transform-component-module_wrapper__SPB86 {
|
|
139
|
+
${l("components.mermaid.checkConsoleHint")}`,children:[a.jsxs("div",{style:{display:"flex",alignItems:"center",marginBottom:r.marginXXS},children:[a.jsx("span",{style:{marginRight:r.marginXS,fontSize:"14px",flexShrink:0,lineHeight:1},children:a.jsx(id,{})}),a.jsx("span",{style:{fontWeight:600,color:r.colorError},children:l("components.mermaid.diagramError")})]}),a.jsx("div",{style:{fontSize:r.fontSizeSM,lineHeight:1.4,wordBreak:"break-word",flex:1,width:"100%"},children:u.map((d,h)=>a.jsx("div",{style:{marginBottom:h<u.length-1?r.marginXS:0,...d.startsWith("💡")?{backgroundColor:r.colorInfoBg,border:`1px solid ${r.colorInfoBorder}`,borderRadius:r.borderRadiusSM,padding:r.paddingXS,marginTop:r.marginXS,color:r.colorInfo,fontWeight:500}:{}},children:d},`${h}-${d.substring(0,12)}`))}),s&&a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:r.marginXS,marginTop:r.marginXS,width:"100%"},children:[a.jsx(je,{size:"small",type:"primary",onClick:s,loading:o,children:l("components.mermaid.fixMermaid")}),i&&a.jsx("span",{style:{color:r.colorError,fontSize:r.fontSizeSM,wordBreak:"break-word",flex:1},children:i})]}),a.jsxs("div",{style:{fontSize:r.fontSizeSM,color:r.colorTextSecondary,marginTop:r.marginXS,fontStyle:"italic"},children:[a.jsx(cg,{style:{marginRight:4}})," ",l("components.mermaid.checkConsoleHint")]})]})};var Vn=function(e,t){return Number(e.toFixed(t))},QP=function(e,t){return typeof e=="number"?e:t},Ht=function(e,t,n){n&&typeof n=="function"&&n(e,t)},ZP=function(e){return-Math.cos(e*Math.PI)/2+.5},eM=function(e){return e},tM=function(e){return e*e},nM=function(e){return e*(2-e)},rM=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},sM=function(e){return e*e*e},oM=function(e){return--e*e*e+1},iM=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},aM=function(e){return e*e*e*e},lM=function(e){return 1- --e*e*e*e},cM=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},uM=function(e){return e*e*e*e*e},dM=function(e){return 1+--e*e*e*e*e},fM=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},Ay={easeOut:ZP,linear:eM,easeInQuad:tM,easeOutQuad:nM,easeInOutQuad:rM,easeInCubic:sM,easeOutCubic:oM,easeInOutCubic:iM,easeInQuart:aM,easeOutQuart:lM,easeInOutQuart:cM,easeInQuint:uM,easeOutQuint:dM,easeInOutQuint:fM},Iy=function(e){typeof e=="number"&&cancelAnimationFrame(e)},or=function(e){e.mounted&&(Iy(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function Oy(e,t,n,r){if(e.mounted){var s=new Date().getTime(),o=1;or(e),e.animation=function(){if(!e.mounted)return Iy(e.animation);var i=new Date().getTime()-s,l=i/n,u=Ay[t],d=u(l);i>=n?(r(o),e.animation=null):e.animation&&(r(d),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function hM(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function Yr(e,t,n,r){var s=hM(t);if(!(!e.mounted||!s)){var o=e.setTransformState,i=e.transformState,l=i.scale,u=i.positionX,d=i.positionY,h=t.scale-l,m=t.positionX-u,b=t.positionY-d;n===0?o(t.scale,t.positionX,t.positionY):Oy(e,r,n,function(v){var w=l+h*v,S=u+m*v,k=d+b*v;o(w,S,k)})}}function pM(e,t,n){var r=e.offsetWidth,s=e.offsetHeight,o=t.offsetWidth,i=t.offsetHeight,l=o*n,u=i*n,d=r-l,h=s-u;return{wrapperWidth:r,wrapperHeight:s,newContentWidth:l,newDiffWidth:d,newContentHeight:u,newDiffHeight:h}}var mM=function(e,t,n,r,s,o,i){var l=e>t?n*(i?1:.5):0,u=r>s?o*(i?1:.5):0,d=e-t-l,h=l,m=r-s-u,b=u;return{minPositionX:d,maxPositionX:h,minPositionY:m,maxPositionY:b}},_d=function(e,t){var n=e.wrapperComponent,r=e.contentComponent,s=e.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var o=pM(n,r,t),i=o.wrapperWidth,l=o.wrapperHeight,u=o.newContentWidth,d=o.newDiffWidth,h=o.newContentHeight,m=o.newDiffHeight,b=mM(i,u,d,l,h,m,!!s);return b},Pu=function(e,t,n,r){return r?e<t?Vn(t,2):e>n?Vn(n,2):Vn(e,2):Vn(e,2)},ps=function(e,t){var n=_d(e,t);return e.bounds=n,n};function Gi(e,t,n,r,s,o,i){var l=n.minPositionX,u=n.minPositionY,d=n.maxPositionX,h=n.maxPositionY,m=0,b=0;i&&(m=s,b=o);var v=Pu(e,l-m,d+m,r),w=Pu(t,u-b,h+b,r);return{x:v,y:w}}function Ol(e,t,n,r,s,o){var i=e.transformState,l=i.scale,u=i.positionX,d=i.positionY,h=r-l;if(typeof t!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:u,y:d};var m=u-t*h,b=d-n*h,v=Gi(m,b,s,o,0,0,null);return v}function Ji(e,t,n,r,s){var o=s?r:0,i=t-o;return!Number.isNaN(n)&&e>=n?n:!Number.isNaN(t)&&e<=i?i:e}var Xh=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,s=e.wrapperComponent,o=t.target,i="shadowRoot"in o&&"composedPath"in t,l=i?t.composedPath().some(function(h){return h instanceof Element?s==null?void 0:s.contains(h):!1}):s==null?void 0:s.contains(o),u=r&&o&&l;if(!u)return!1;var d=$l(o,n);return!d},Kh=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,s=r.panning.disabled,o=t&&n&&!s;return!!o},gM=function(e,t){var n=e.transformState,r=n.positionX,s=n.positionY;e.isPanning=!0;var o=t.clientX,i=t.clientY;e.startCoords={x:o-r,y:i-s}},yM=function(e,t){var n=t.touches,r=e.transformState,s=r.positionX,o=r.positionY;e.isPanning=!0;var i=n.length===1;if(i){var l=n[0].clientX,u=n[0].clientY;e.startCoords={x:l-s,y:u-o}}};function bM(e){var t=e.transformState,n=t.positionX,r=t.positionY,s=t.scale,o=e.setup,i=o.disabled,l=o.limitToBounds,u=o.centerZoomedOut,d=e.wrapperComponent;if(!(i||!d||!e.bounds)){var h=e.bounds,m=h.maxPositionX,b=h.minPositionX,v=h.maxPositionY,w=h.minPositionY,S=n>m||n<b,k=r>v||r<w,P=n>m?d.offsetWidth:e.setup.minPositionX||0,T=r>v?d.offsetHeight:e.setup.minPositionY||0,j=Ol(e,P,T,s,e.bounds,l||u),C=j.x,E=j.y;return{scale:s,positionX:S?C:n,positionY:k?E:r}}}function $y(e,t,n,r,s){var o=e.setup.limitToBounds,i=e.wrapperComponent,l=e.bounds,u=e.transformState,d=u.scale,h=u.positionX,m=u.positionY;if(!(i===null||l===null||t===h&&n===m)){var b=Gi(t,n,l,o,r,s,i),v=b.x,w=b.y;e.setTransformState(d,v,w)}}var vM=function(e,t,n){var r=e.startCoords,s=e.transformState,o=e.setup.panning,i=o.lockAxisX,l=o.lockAxisY,u=s.positionX,d=s.positionY;if(!r)return{x:u,y:d};var h=t-r.x,m=n-r.y,b=i?u:h,v=l?d:m;return{x:b,y:v}},qr=function(e,t){var n=e.setup,r=e.transformState,s=r.scale,o=n.minScale,i=n.disablePadding;return t>0&&s>=o&&!i?t:0},SM=function(e){var t=e.mounted,n=e.setup,r=n.disabled,s=n.velocityAnimation,o=e.transformState.scale,i=s.disabled,l=!i||o>1||!r||t;return!!l},xM=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,s=e.setup,o=s.disabled,i=s.velocityAnimation,l=e.transformState.scale,u=i.disabled,d=!u||l>1||!o||t;return!(!d||!n||!r)};function wM(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,s=n.animationTime,o=n.sensitivity;return r?s*t*o:s}function Vh(e,t,n,r,s,o,i,l,u,d){if(s){if(t>i&&n>i){var h=i+(e-i)*d;return h>u?u:h<i?i:h}if(t<o&&n<o){var h=o+(e-o)*d;return h<l?l:h>o?o:h}}return r?t:Pu(e,o,i,s)}function _M(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function kM(e,t){var n=SM(e);if(n){var r=e.lastMousePosition,s=e.velocityTime,o=e.setup,i=e.wrapperComponent,l=o.velocityAnimation.equalToMove,u=Date.now();if(r&&s&&i){var d=_M(i,l),h=t.x-r.x,m=t.y-r.y,b=h/d,v=m/d,w=u-s,S=h*h+m*m,k=Math.sqrt(S)/w;e.velocity={velocityX:b,velocityY:v,total:k}}e.lastMousePosition=t,e.velocityTime=u}}function CM(e){var t=e.velocity,n=e.bounds,r=e.setup,s=e.wrapperComponent,o=xM(e);if(!(!o||!t||!n||!s)){var i=t.velocityX,l=t.velocityY,u=t.total,d=n.maxPositionX,h=n.minPositionX,m=n.maxPositionY,b=n.minPositionY,v=r.limitToBounds,w=r.alignmentAnimation,S=r.zoomAnimation,k=r.panning,P=k.lockAxisY,T=k.lockAxisX,j=S.animationType,C=w.sizeX,E=w.sizeY,A=w.velocityAlignmentTime,O=A,D=wM(e,u),F=Math.max(D,O),N=qr(e,C),q=qr(e,E),I=N*s.offsetWidth/100,Q=q*s.offsetHeight/100,G=d+I,Z=h-I,pe=m+Q,$=b-Q,oe=e.transformState,me=new Date().getTime();Oy(e,j,F,function(ne){var he=e.transformState,fe=he.scale,ue=he.positionX,de=he.positionY,Ce=new Date().getTime()-me,ze=Ce/O,Le=Ay[w.animationType],lt=1-Le(Math.min(1,ze)),L=1-ne,le=ue+i*L,Ae=de+l*L,Ie=Vh(le,oe.positionX,ue,T,v,h,d,Z,G,lt),He=Vh(Ae,oe.positionY,de,P,v,b,m,$,pe,lt);(ue!==le||de!==Ae)&&e.setTransformState(fe,Ie,He)})}}function Gh(e,t){var n=e.transformState.scale;or(e),ps(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?yM(e,t):gM(e,t)}function kd(e,t){var n=e.transformState.scale,r=e.setup,s=r.minScale,o=r.alignmentAnimation,i=o.disabled,l=o.sizeX,u=o.sizeY,d=o.animationTime,h=o.animationType,m=i||n<s||!l&&!u;if(!m){var b=bM(e);b&&Yr(e,b,t??d,h)}}function Jh(e,t,n){var r=e.startCoords,s=e.setup,o=s.alignmentAnimation,i=o.sizeX,l=o.sizeY;if(r){var u=vM(e,t,n),d=u.x,h=u.y,m=qr(e,i),b=qr(e,l);kM(e,{x:d,y:h}),$y(e,d,h,m,b)}}function TM(e){if(e.isPanning){var t=e.setup.panning.velocityDisabled,n=e.velocity,r=e.wrapperComponent,s=e.contentComponent;e.isPanning=!1,e.animate=!1,e.animation=null;var o=r==null?void 0:r.getBoundingClientRect(),i=s==null?void 0:s.getBoundingClientRect(),l=(o==null?void 0:o.width)||0,u=(o==null?void 0:o.height)||0,d=(i==null?void 0:i.width)||0,h=(i==null?void 0:i.height)||0,m=l<d||u<h,b=!t&&n&&(n==null?void 0:n.total)>.1&&m;b?CM(e):kd(e)}}function Cd(e,t,n,r){var s=e.setup,o=s.minScale,i=s.maxScale,l=s.limitToBounds,u=Ji(Vn(t,2),o,i,0,!1),d=ps(e,u),h=Ol(e,n,r,u,d,l),m=h.x,b=h.y;return{scale:u,positionX:m,positionY:b}}function Ly(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,i=o.minScale,l=o.limitToBounds,u=o.zoomAnimation,d=u.disabled,h=u.animationTime,m=u.animationType,b=d||r>=i;if((r>=1||l)&&kd(e),!(b||!s||!e.mounted)){var v=t||s.offsetWidth/2,w=n||s.offsetHeight/2,S=Cd(e,i,v,w);S&&Yr(e,S,h,m)}}var zr=function(){return zr=Object.assign||function(t){for(var n,r=1,s=arguments.length;r<s;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},zr.apply(this,arguments)};function Qh(e,t,n){for(var r=0,s=t.length,o;r<s;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}var Ia={scale:1,positionX:0,positionY:0},Eo={disabled:!1,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,centerZoomedOut:!1,centerOnInit:!1,disablePadding:!1,smooth:!0,wheel:{step:.2,disabled:!1,smoothStep:.001,wheelDisabled:!1,touchPadDisabled:!1,activationKeys:[],excluded:[]},panning:{disabled:!1,velocityDisabled:!1,lockAxisX:!1,lockAxisY:!1,allowLeftClickPan:!0,allowMiddleClickPan:!0,allowRightClickPan:!0,wheelPanning:!1,activationKeys:[],excluded:[]},pinch:{step:5,disabled:!1,excluded:[]},doubleClick:{disabled:!1,step:.7,mode:"zoomIn",animationType:"easeOut",animationTime:200,excluded:[]},zoomAnimation:{disabled:!1,size:.4,animationTime:200,animationType:"easeOut"},alignmentAnimation:{disabled:!1,sizeX:100,sizeY:100,animationTime:200,velocityAlignmentTime:400,animationType:"easeOut"},velocityAnimation:{disabled:!1,sensitivity:1,animationTime:400,animationType:"easeOut",equalToMove:!0}},Mu={wrapperClass:"react-transform-wrapper",contentClass:"react-transform-component"},Fy=function(e){var t,n,r,s;return{previousScale:(t=e.initialScale)!==null&&t!==void 0?t:Ia.scale,scale:(n=e.initialScale)!==null&&n!==void 0?n:Ia.scale,positionX:(r=e.initialPositionX)!==null&&r!==void 0?r:Ia.positionX,positionY:(s=e.initialPositionY)!==null&&s!==void 0?s:Ia.positionY}},Zh=function(e){var t=zr({},Eo);return Object.keys(e).forEach(function(n){var r=typeof e[n]<"u",s=typeof Eo[n]<"u";if(s&&r){var o=Object.prototype.toString.call(Eo[n]),i=o==="[object Object]",l=o==="[object Array]";i?t[n]=zr(zr({},Eo[n]),e[n]):l?t[n]=Qh(Qh([],Eo[n],!0),e[n]):t[n]=e[n]}}),t},Dy=function(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,i=o.maxScale,l=o.minScale,u=o.zoomAnimation,d=o.smooth,h=u.size;if(!s)throw new Error("Wrapper is not mounted");var m=d?r*Math.exp(t*n):r+t*n,b=Ji(Vn(m,3),l,i,h,!1);return b};function Ny(e,t,n,r,s){var o=e.wrapperComponent,i=e.transformState,l=i.scale,u=i.positionX,d=i.positionY;if(!o)return console.error("No WrapperComponent found");var h=o.offsetWidth,m=o.offsetHeight,b=(h/2-u)/l,v=(m/2-d)/l,w=Dy(e,t,n),S=Cd(e,w,b,v);if(!S)return console.error("Error during zoom event. New transformation state was not calculated.");Yr(e,S,r,s)}function By(e,t,n,r){var s=e.setup,o=e.wrapperComponent,i=s.limitToBounds,l=Fy(e.props),u=e.transformState,d=u.scale,h=u.positionX,m=u.positionY;if(o){var b=_d(e,l.scale),v=Gi(l.positionX,l.positionY,b,i,0,0,o),w={scale:l.scale,positionX:v.x,positionY:v.y};d===l.scale&&h===l.positionX&&m===l.positionY||(r==null||r(),Yr(e,w,t,n))}}function PM(e,t,n,r){var s=e.getBoundingClientRect(),o=t.getBoundingClientRect(),i=n.getBoundingClientRect(),l=o.x*r.scale,u=o.y*r.scale;return{x:(s.x-i.x+l)/r.scale,y:(s.y-i.y+u)/r.scale}}function MM(e,t,n){var r=e.wrapperComponent,s=e.contentComponent,o=e.transformState,i=e.setup,l=i.limitToBounds,u=i.minScale,d=i.maxScale;if(!r||!s)return o;var h=r.getBoundingClientRect(),m=t.getBoundingClientRect(),b=PM(t,r,s,o),v=b.x,w=b.y,S=m.width/o.scale,k=m.height/o.scale,P=r.offsetWidth/S,T=r.offsetHeight/k,j=Ji(n||Math.min(P,T),u,d,0,!1),C=(h.width-S*j)/2,E=(h.height-k*j)/2,A=(h.left-v)*j+C,O=(h.top-w)*j+E,D=_d(e,j),F=Gi(A,O,D,l,0,0,r),N=F.x,q=F.y;return{positionX:N,positionY:q,scale:j}}var EM=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Ny(e,1,t,n,r)}},jM=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Ny(e,-1,t,n,r)}},RM=function(e){return function(t,n,r,s,o){s===void 0&&(s=300),o===void 0&&(o="easeOut");var i=e.transformState,l=i.positionX,u=i.positionY,d=i.scale,h=e.wrapperComponent,m=e.contentComponent,b=e.setup.disabled;if(!(b||!h||!m)){var v={positionX:Number.isNaN(t)?l:t,positionY:Number.isNaN(n)?u:n,scale:Number.isNaN(r)?d:r};Yr(e,v,s,o)}}},AM=function(e){return function(t,n){t===void 0&&(t=200),n===void 0&&(n="easeOut"),By(e,t,n)}},IM=function(e){return function(t,n,r){n===void 0&&(n=200),r===void 0&&(r="easeOut");var s=e.transformState,o=e.wrapperComponent,i=e.contentComponent;if(o&&i){var l=zy(t||s.scale,o,i);Yr(e,l,n,r)}}},OM=function(e){return function(t,n,r,s){r===void 0&&(r=600),s===void 0&&(s="easeOut"),or(e);var o=e.wrapperComponent,i=typeof t=="string"?document.getElementById(t):t;if(o&&i&&o.contains(i)){var l=MM(e,i,n);Yr(e,l,r,s)}}},Eu=function(e){return{instance:e,zoomIn:EM(e),zoomOut:jM(e),setTransform:RM(e),resetTransform:AM(e),centerView:IM(e),zoomToElement:OM(e)}},$M=function(e){return{instance:e,state:e.transformState}},Dt=function(e){var t={};return Object.assign(t,$M(e)),Object.assign(t,Eu(e)),t},Tc=!1;function Pc(){try{var e={get passive(){return Tc=!0,!1}};return e}catch{return Tc=!1,Tc}}var Oa=".".concat(Mu.wrapperClass),$l=function(e,t){return t.some(function(n){return e.matches("".concat(Oa," ").concat(n,", ").concat(Oa," .").concat(n,", ").concat(Oa," ").concat(n," *, ").concat(Oa," .").concat(n," *"))})},ju=function(e){e&&clearTimeout(e)},LM=function(e,t,n){return"translate(".concat(e,"px, ").concat(t,"px) scale(").concat(n,")")},zy=function(e,t,n){var r=n.offsetWidth*e,s=n.offsetHeight*e,o=(t.offsetWidth-r)/2,i=(t.offsetHeight-s)/2;return{scale:e,positionX:o,positionY:i}};function FM(e){return function(t){e.forEach(function(n){typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var DM=function(e,t){var n=e.setup.wheel,r=n.disabled,s=n.wheelDisabled,o=n.touchPadDisabled,i=n.excluded,l=e.isInitialized,u=e.isPanning,d=t.target,h=l&&!u&&!r&&d;if(!h||s&&!t.ctrlKey||o&&t.ctrlKey)return!1;var m=$l(d,i);return!m},NM=function(e){return e?e.deltaY<0?1:-1:0};function BM(e,t){var n=NM(e),r=QP(t,n);return r}function Wy(e,t,n){var r=t.getBoundingClientRect(),s=0,o=0;if("clientX"in e)s=(e.clientX-r.left)/n,o=(e.clientY-r.top)/n;else{var i=e.touches[0];s=(i.clientX-r.left)/n,o=(i.clientY-r.top)/n}return(Number.isNaN(s)||Number.isNaN(o))&&console.error("No mouse or touch offset found"),{x:s,y:o}}var zM=function(e,t,n,r,s){var o=e.transformState.scale,i=e.wrapperComponent,l=e.setup,u=l.maxScale,d=l.minScale,h=l.zoomAnimation,m=l.disablePadding,b=h.size,v=h.disabled;if(!i)throw new Error("Wrapper is not mounted");var w=o+t*n,S=r?!1:!v,k=Ji(Vn(w,3),d,u,b,S&&!m);return k},WM=function(e,t){var n=e.previousWheelEvent,r=e.transformState.scale,s=e.setup,o=s.maxScale,i=s.minScale;return n?r<o||r>i||Math.sign(n.deltaY)!==Math.sign(t.deltaY)||n.deltaY>0&&n.deltaY<t.deltaY||n.deltaY<0&&n.deltaY>t.deltaY||Math.sign(n.deltaY)!==Math.sign(t.deltaY):!1},UM=function(e,t){var n=e.setup.pinch,r=n.disabled,s=n.excluded,o=e.isInitialized,i=t.target,l=o&&!r&&i;if(!l)return!1;var u=$l(i,s);return!u},qM=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,s=n&&!t&&r;return!!s},HM=function(e,t,n){var r=n.getBoundingClientRect(),s=e.touches,o=Vn(s[0].clientX-r.left,5),i=Vn(s[0].clientY-r.top,5),l=Vn(s[1].clientX-r.left,5),u=Vn(s[1].clientY-r.top,5);return{x:(o+l)/2/t,y:(i+u)/2/t}},Uy=function(e){return Math.sqrt(Math.pow(e.touches[0].pageX-e.touches[1].pageX,2)+Math.pow(e.touches[0].pageY-e.touches[1].pageY,2))},YM=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,s=e.setup,o=s.maxScale,i=s.minScale,l=s.zoomAnimation,u=s.disablePadding,d=l.size,h=l.disabled;if(!n||r===null||!t)throw new Error("Pinch touches distance was not provided");if(t<0)return e.transformState.scale;var m=t/r,b=m*n;return Ji(Vn(b,2),i,o,d,!h&&!u)},XM=160,KM=100,VM=function(e,t){var n=e.props,r=n.onWheelStart,s=n.onZoomStart;e.wheelStopEventTimer||(or(e),Ht(Dt(e),t,r),Ht(Dt(e),t,s))},GM=function(e,t){var n=e.props,r=n.onWheel,s=n.onZoom,o=e.contentComponent,i=e.setup,l=e.transformState,u=l.scale,d=i.limitToBounds,h=i.centerZoomedOut,m=i.zoomAnimation,b=i.wheel,v=i.disablePadding,w=i.smooth,S=m.size,k=m.disabled,P=b.step,T=b.smoothStep;if(!o)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var j=BM(t,null),C=w?T*Math.abs(t.deltaY):P,E=zM(e,j,C,!t.ctrlKey);if(u!==E){var A=ps(e,E),O=Wy(t,o,u),D=k||S===0||h||v,F=d&&D,N=Ol(e,O.x,O.y,E,A,F),q=N.x,I=N.y;e.previousWheelEvent=t,e.setTransformState(E,q,I),Ht(Dt(e),t,r),Ht(Dt(e),t,s)}},JM=function(e,t){var n=e.props,r=n.onWheelStop,s=n.onZoomStop;ju(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&(Ly(e,t.x,t.y),e.wheelAnimationTimer=null)},KM);var o=WM(e,t);o&&(ju(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,Ht(Dt(e),t,r),Ht(Dt(e),t,s))},XM))},qy=function(e){for(var t=0,n=0,r=0;r<2;r+=1)t+=e.touches[r].clientX,n+=e.touches[r].clientY;var s=t/2,o=n/2;return{x:s,y:o}},QM=function(e,t){var n=Uy(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1;var r=qy(t);e.pinchLastCenterX=r.x,e.pinchLastCenterY=r.y,or(e)},ZM=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,s=e.wrapperComponent,o=e.transformState.scale,i=e.setup,l=i.limitToBounds,u=i.centerZoomedOut,d=i.zoomAnimation,h=i.alignmentAnimation,m=d.disabled,b=d.size;if(!(r===null||!n)){var v=HM(t,o,n);if(!(!Number.isFinite(v.x)||!Number.isFinite(v.y))){var w=Uy(t),S=YM(e,w),k=qy(t),P=k.x-(e.pinchLastCenterX||0),T=k.y-(e.pinchLastCenterY||0);if(!(S===o&&P===0&&T===0)){e.pinchLastCenterX=k.x,e.pinchLastCenterY=k.y;var j=ps(e,S),C=m||b===0||u,E=l&&C,A=Ol(e,v.x,v.y,S,j,E),O=A.x,D=A.y;e.pinchMidpoint=v,e.lastDistance=w;var F=h.sizeX,N=h.sizeY,q=qr(e,F),I=qr(e,N),Q=O+P,G=D+T,Z=Gi(Q,G,j,l,q,I,s),pe=Z.x,$=Z.y;e.setTransformState(S,pe,$)}}}},eE=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,Ly(e,t==null?void 0:t.x,t==null?void 0:t.y)},Hy=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;ju(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,Ht(Dt(e),t,n)},r)},tE=function(e,t){var n=e.props,r=n.onZoomStart,s=n.onZoom,o=e.setup.doubleClick,i=o.animationTime,l=o.animationType;Ht(Dt(e),t,r),By(e,i,l,function(){return Ht(Dt(e),t,s)}),Hy(e,t)};function nE(e,t){return e==="toggle"?t===1?1:-1:e==="zoomOut"?-1:1}function rE(e,t){var n=e.setup,r=e.doubleClickStopEventTimer,s=e.transformState,o=e.contentComponent,i=s.scale,l=e.props,u=l.onZoomStart,d=l.onZoom,h=n.doubleClick,m=h.disabled,b=h.mode,v=h.step,w=h.animationTime,S=h.animationType;if(!m&&!r){if(b==="reset")return tE(e,t);if(!o)return console.error("No ContentComponent found");var k=nE(b,e.transformState.scale),P=Dy(e,k,v);if(i!==P){Ht(Dt(e),t,u);var T=Wy(t,o,i),j=Cd(e,P,T.x,T.y);if(!j)return console.error("Error during zoom event. New transformation state was not calculated.");Ht(Dt(e),t,d),Yr(e,j,w,S),Hy(e,t)}}}var sE=function(e,t){var n=e.isInitialized,r=e.setup,s=e.wrapperComponent,o=r.doubleClick,i=o.disabled,l=o.excluded,u=t.target,d=s==null?void 0:s.contains(u),h=n&&u&&d&&!i;if(!h)return!1;var m=$l(u,l);return!m},oE=function(){function e(t){var n=this;this.mounted=!0,this.pinchLastCenterX=null,this.pinchLastCenterY=null,this.onChangeCallbacks=new Set,this.onInitCallbacks=new Set,this.wrapperComponent=null,this.contentComponent=null,this.isInitialized=!1,this.bounds=null,this.previousWheelEvent=null,this.wheelStopEventTimer=null,this.wheelAnimationTimer=null,this.isPanning=!1,this.isWheelPanning=!1,this.startCoords=null,this.lastTouch=null,this.distance=null,this.lastDistance=null,this.pinchStartDistance=null,this.pinchStartScale=null,this.pinchMidpoint=null,this.doubleClickStopEventTimer=null,this.velocity=null,this.velocityTime=null,this.lastMousePosition=null,this.animate=!1,this.animation=null,this.maxBounds=null,this.pressedKeys={},this.mount=function(){n.initializeWindowEvents()},this.unmount=function(){n.cleanupWindowEvents()},this.update=function(r){n.props=r,ps(n,n.transformState.scale),n.setup=Zh(r)},this.initializeWindowEvents=function(){var r,s,o=Pc(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,l=i==null?void 0:i.defaultView;(s=n.wrapperComponent)===null||s===void 0||s.addEventListener("wheel",n.onWheelPanning,o),l==null||l.addEventListener("mousedown",n.onPanningStart,o),l==null||l.addEventListener("mousemove",n.onPanning,o),l==null||l.addEventListener("mouseup",n.onPanningStop,o),i==null||i.addEventListener("mouseleave",n.clearPanning,o),l==null||l.addEventListener("keyup",n.setKeyUnPressed,o),l==null||l.addEventListener("keydown",n.setKeyPressed,o)},this.cleanupWindowEvents=function(){var r,s,o=Pc(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,l=i==null?void 0:i.defaultView;l==null||l.removeEventListener("mousedown",n.onPanningStart,o),l==null||l.removeEventListener("mousemove",n.onPanning,o),l==null||l.removeEventListener("mouseup",n.onPanningStop,o),i==null||i.removeEventListener("mouseleave",n.clearPanning,o),l==null||l.removeEventListener("keyup",n.setKeyUnPressed,o),l==null||l.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),or(n),(s=n.observer)===null||s===void 0||s.disconnect()},this.handleInitializeWrapperEvents=function(r){var s=Pc();r.addEventListener("wheel",n.onWheelZoom,s),r.addEventListener("dblclick",n.onDoubleClick,s),r.addEventListener("touchstart",n.onTouchPanningStart,s),r.addEventListener("touchmove",n.onTouchPanning,s),r.addEventListener("touchend",n.onTouchPanningStop,s)},this.handleInitialize=function(r,s){var o=!1,i=n.setup.centerOnInit,l=function(u,d){for(var h=0,m=u;h<m.length;h++){var b=m[h];if(b.target===d)return!0}return!1};n.applyTransformation(),n.onInitCallbacks.forEach(function(u){u(Dt(n))}),n.observer=new ResizeObserver(function(u){if(l(u,r)||l(u,s))if(i&&!o){var d=s.offsetWidth,h=s.offsetHeight;(d>0||h>0)&&(o=!0,n.setCenter())}else or(n),ps(n,n.transformState.scale),kd(n,0)}),n.observer.observe(r),n.observer.observe(s)},this.onWheelZoom=function(r){var s=n.setup.disabled;if(!s){var o=DM(n,r);if(o){var i=n.isPressingKeys(n.setup.wheel.activationKeys);i&&(VM(n,r),GM(n,r),JM(n,r))}}},this.onWheelPanning=function(r){var s=n.setup,o=s.disabled,i=s.wheel,l=s.panning;if(!(!n.wrapperComponent||!n.contentComponent||o||!i.wheelDisabled||l.disabled||!l.wheelPanning||r.ctrlKey)){r.preventDefault(),r.stopPropagation();var u=n.transformState,d=u.positionX,h=u.positionY,m=d-r.deltaX,b=h-r.deltaY,v=l.lockAxisX?d:m,w=l.lockAxisY?h:b,S=n.setup.alignmentAnimation,k=S.sizeX,P=S.sizeY,T=qr(n,k),j=qr(n,P);v===d&&w===h||$y(n,v,w,T,j)}},this.onPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=Xh(n,r);if(i){var l=n.isPressingKeys(n.setup.panning.activationKeys);l&&(r.button===0&&!n.setup.panning.allowLeftClickPan||r.button===1&&!n.setup.panning.allowMiddleClickPan||r.button===2&&!n.setup.panning.allowRightClickPan||(r.preventDefault(),r.stopPropagation(),or(n),Gh(n,r),Ht(Dt(n),r,o)))}}},this.onPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(!s){var i=Kh(n);if(i){var l=n.isPressingKeys(n.setup.panning.activationKeys);l&&(r.preventDefault(),r.stopPropagation(),Jh(n,r.clientX,r.clientY),Ht(Dt(n),r,o))}}},this.onPanningStop=function(r){var s=n.props.onPanningStop;n.isPanning&&(TM(n),Ht(Dt(n),r,s))},this.onPinchStart=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinchingStart,l=o.onZoomStart;if(!s){var u=UM(n,r);u&&(QM(n,r),or(n),Ht(Dt(n),r,i),Ht(Dt(n),r,l))}},this.onPinch=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinching,l=o.onZoom;if(!s){var u=qM(n);u&&(r.preventDefault(),r.stopPropagation(),ZM(n,r),Ht(Dt(n),r,i),Ht(Dt(n),r,l))}},this.onPinchStop=function(r){var s=n.props,o=s.onPinchingStop,i=s.onZoomStop;n.pinchStartScale&&(eE(n),Ht(Dt(n),r,o),Ht(Dt(n),r,i))},this.onTouchPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=Xh(n,r);if(i){var l=n.lastTouch&&+new Date-n.lastTouch<200&&r.touches.length===1;if(!l){n.lastTouch=+new Date,or(n);var u=r.touches,d=u.length===1,h=u.length===2;d&&(or(n),Gh(n,r),Ht(Dt(n),r,o)),h&&n.onPinchStart(r)}}}},this.onTouchPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(n.isPanning&&r.touches.length===1){if(s)return;var i=Kh(n);if(!i)return;r.preventDefault(),r.stopPropagation();var l=r.touches[0];Jh(n,l.clientX,l.clientY),Ht(Dt(n),r,o)}else r.touches.length>1&&n.onPinch(r)},this.onTouchPanningStop=function(r){n.onPanningStop(r),n.onPinchStop(r)},this.onDoubleClick=function(r){var s=n.setup.disabled;if(!s){var o=sE(n,r);o&&rE(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?!!r.find(function(s){return n.pressedKeys[s]}):!0},this.setTransformState=function(r,s,o){var i=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(s)&&!Number.isNaN(o)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=s,n.transformState.positionY=o,n.applyTransformation();var l=Dt(n);n.onChangeCallbacks.forEach(function(u){return u(l)}),Ht(l,{scale:r,positionX:s,positionY:o},i)}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=zy(n.transformState.scale,n.wrapperComponent,n.contentComponent);n.setTransformState(r.scale,r.positionX,r.positionY)}},this.handleTransformStyles=function(r,s,o){return n.props.customTransform?n.props.customTransform(r,s,o):LM(r,s,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,s=r.scale,o=r.positionX,i=r.positionY,l=n.handleTransformStyles(o,i,s);n.contentComponent.style.transform=l}},this.getContext=function(){return Dt(n)},this.onChange=function(r){return n.onChangeCallbacks.has(r)||n.onChangeCallbacks.add(r),function(){n.onChangeCallbacks.delete(r)}},this.onInit=function(r){return n.onInitCallbacks.has(r)||n.onInitCallbacks.add(r),function(){n.onInitCallbacks.delete(r)}},this.init=function(r,s){n.cleanupWindowEvents(),n.wrapperComponent=r,n.contentComponent=s,ps(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(r,s),n.initializeWindowEvents(),n.isInitialized=!0;var o=Dt(n);Ht(o,void 0,n.props.onInit)},this.props=t,this.setup=Zh(this.props),this.transformState=Fy(this.props)}return e}(),Td=ht.createContext(null),iE=function(e,t){return typeof e=="function"?e(t):e},aE=ht.forwardRef(function(e,t){var n=y.useRef(new oE(e)).current,r=iE(e.children,Eu(n));return y.useImperativeHandle(t,function(){return Eu(n)},[n]),y.useEffect(function(){n.update(e)},[n,e]),ht.createElement(Td.Provider,{value:n},r)});ht.forwardRef(function(e,t){var n=y.useRef(null),r=y.useContext(Td);return y.useEffect(function(){return r.onChange(function(s){if(n.current){var o=0,i=0;n.current.style.transform=r.handleTransformStyles(o,i,1/s.instance.transformState.scale)}})},[r]),ht.createElement("div",zr({},e,{ref:FM([n,t])}))});function lE(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",n==="top"&&r.firstChild?r.insertBefore(s,r.firstChild):r.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}var cE=`.transform-component-module_wrapper__SPB86 {
|
|
140
140
|
position: relative;
|
|
141
141
|
width: -moz-fit-content;
|
|
142
142
|
width: fit-content;
|
|
@@ -167,40 +167,40 @@ ${l("components.mermaid.checkConsoleHint")}`,children:[a.jsxs("div",{style:{disp
|
|
|
167
167
|
.transform-component-module_content__FBWxo img {
|
|
168
168
|
pointer-events: none;
|
|
169
169
|
}
|
|
170
|
-
`,ep={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};
|
|
171
|
-
${new XMLSerializer().serializeToString(r)}`):e},mM=({svg:e,height:t,isLoading:n,initialScale:r,chartKey:s,className:o,style:i,token:l,containerRef:u})=>{const{t:f}=Ge(),{message:h}=Fn.useApp(),[m,b]=y.useState(!1),v=y.useCallback(async()=>{var S;if(!(!e||m)){b(!0);try{const k=pM(e),P=new TextEncoder().encode(k),T=s?`mermaid-${s.slice(0,8)}`:"mermaid-graph",M=yr.generateTimestampedFilename(T,"svg"),C=await yr.saveBinaryFile(P,yr.FILTERS.SVG,M);if(C.success){h.success(f("chat.messageActions.savedFile",{filename:C.filename}));return}if((S=C.error)!=null&&S.toLowerCase().includes("cancel"))return;h.error(C.error||f("chat.messageActions.exportFailed"))}catch(k){const P=k instanceof Error?k.message:f("components.mermaid.exportFailed");h.error(P)}finally{b(!1)}}},[h,s,m,e,f]),w=n||!e||m;return a.jsxs("div",{ref:u,"data-mermaid-loading":n?"true":"false",className:o,style:{textAlign:"center",margin:`${l.marginXS}px 0`,padding:l.padding,background:l.colorBgContainer,borderRadius:l.borderRadiusSM,border:`1px solid ${l.colorBorder}`,overflow:"hidden",height:`${Math.min(t,800)}px`,minHeight:"300px",maxHeight:"80vh",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",willChange:"auto",contain:"layout style paint",...i},children:[n&&a.jsx("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:l.colorTextSecondary,fontSize:l.fontSizeSM,zIndex:2},children:f("components.mermaid.renderingDiagram")}),a.jsx("div",{style:{width:"100%",height:"100%",opacity:n?0:1,position:"relative"},children:a.jsx(sM,{initialScale:r,minScale:.1,maxScale:10,centerOnInit:!0,limitToBounds:!1,wheel:{step:.1},panning:{disabled:!1},pinch:{disabled:!1},doubleClick:{disabled:!1,mode:"zoomIn",step:.5},children:({zoomIn:S,zoomOut:k,resetTransform:P})=>a.jsxs(a.Fragment,{children:[a.jsxs("div",{"data-mermaid-controls":"true",style:{position:"absolute",top:8,right:8,zIndex:10,display:"flex",flexDirection:"column",gap:4,background:l.colorBgContainer,borderRadius:l.borderRadiusSM,border:`1px solid ${l.colorBorder}`,padding:4,boxShadow:l.boxShadowSecondary},children:[a.jsx(je,{size:"small",type:"text",onClick:()=>S(),style:{fontSize:12,padding:"2px 6px"},children:"+"}),a.jsx(je,{size:"small",type:"text",onClick:()=>k(),style:{fontSize:12,padding:"2px 6px"},children:"-"}),a.jsx(je,{size:"small",type:"text",onClick:()=>P(),style:{fontSize:10,padding:"2px 6px"},children:"⌂"}),a.jsx(xn,{title:f("components.mermaid.exportSvg"),children:a.jsx(je,{size:"small",type:"text",icon:a.jsx(Ks,{}),"aria-label":f("components.mermaid.downloadChartAriaLabel"),disabled:w,loading:m,onClick:()=>{v()},style:{fontSize:11,padding:"2px 6px"}})})]}),a.jsx(aM,{wrapperStyle:{width:"100%",height:"100%"},contentStyle:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:a.jsx("div",{style:{display:"inline-block",lineHeight:0},dangerouslySetInnerHTML:{__html:e.replace(/<svg([^>]*)>/,'<svg$1 style="display: block; max-width: 100%; max-height: 100%;">')}})})]})})})]})};function gM(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const yM=(e,t)=>{const n=y.useMemo(()=>e0(e),[e]),r=y.useMemo(()=>gM(n),[n]),[s,o]=y.useState(()=>{const i=Ka(r);return i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:t}});return y.useEffect(()=>{const i=Ka(r);o(i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:!1})},[r]),y.useEffect(()=>{if(Ka(r))return;let l=!1;return o(u=>({...u,isLoading:!0})),o0(r,n).then(u=>{l||o({svg:u.svg,height:u.height+80,svgWidth:u.width,svgHeight:u.height,error:"",isLoading:!1})}).catch(u=>{if(!l){console.error("[MermaidState] Render error:",u);const f=u instanceof Error?u.message:String(u);o(h=>({...h,error:f||"Failed to render Mermaid diagram",isLoading:!1}))}}),()=>{l=!0}},[r,n,t]),{renderState:s,chartKey:r}},{useToken:bM}=ut,ml=ht.memo(({chart:e,id:t,className:n,style:r,onFix:s})=>{const{token:o}=bM(),i=yd(),[l,u]=y.useState(!1),[f,h]=y.useState(""),m=y.useRef(null),{renderState:b,chartKey:v}=yM(e,!0),{svg:w,height:S,svgWidth:k,error:P,isLoading:T}=b,C=(()=>{const A=i.defaultScale;return k>1200?A*.8:k>800?A*1:A*1.2})(),j=async()=>{if(!(!s||l)){u(!0),h("");try{await s(e,P)}catch(A){const O=A instanceof Error?A.message:String(A);h(O||"Failed to fix Mermaid diagram")}finally{u(!1)}}};return P?a.jsx(KP,{error:P,className:n,style:r,token:o,onFix:s?j:void 0,isFixing:l,fixError:f}):a.jsx(mM,{svg:w,height:S,isLoading:T,initialScale:C,chartKey:v,className:n,style:r,token:o,containerRef:m})});ml.displayName="MermaidChart";const vM=Object.freeze(Object.defineProperty({__proto__:null,MermaidChart:ml,default:ml},Symbol.toStringTag,{value:"Module"})),Hi={'code[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"]::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},prolog:{color:"hsl(220, 10%, 40%)"},cdata:{color:"hsl(220, 10%, 40%)"},doctype:{color:"hsl(220, 14%, 71%)"},punctuation:{color:"hsl(220, 14%, 71%)"},entity:{color:"hsl(220, 14%, 71%)",cursor:"help"},"attr-name":{color:"hsl(29, 54%, 61%)"},"class-name":{color:"hsl(29, 54%, 61%)"},boolean:{color:"hsl(29, 54%, 61%)"},constant:{color:"hsl(29, 54%, 61%)"},number:{color:"hsl(29, 54%, 61%)"},atrule:{color:"hsl(29, 54%, 61%)"},keyword:{color:"hsl(286, 60%, 67%)"},property:{color:"hsl(355, 65%, 65%)"},tag:{color:"hsl(355, 65%, 65%)"},symbol:{color:"hsl(355, 65%, 65%)"},deleted:{color:"hsl(355, 65%, 65%)"},important:{color:"hsl(355, 65%, 65%)"},selector:{color:"hsl(95, 38%, 62%)"},string:{color:"hsl(95, 38%, 62%)"},char:{color:"hsl(95, 38%, 62%)"},builtin:{color:"hsl(95, 38%, 62%)"},inserted:{color:"hsl(95, 38%, 62%)"},regex:{color:"hsl(95, 38%, 62%)"},"attr-value":{color:"hsl(95, 38%, 62%)"},"attr-value > .token.punctuation":{color:"hsl(95, 38%, 62%)"},variable:{color:"hsl(207, 82%, 66%)"},operator:{color:"hsl(207, 82%, 66%)"},function:{color:"hsl(207, 82%, 66%)"},url:{color:"hsl(187, 47%, 55%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(220, 14%, 71%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(220, 14%, 71%)"},".language-css .token.selector":{color:"hsl(355, 65%, 65%)"},".language-css .token.property":{color:"hsl(220, 14%, 71%)"},".language-css .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.string.url":{color:"hsl(95, 38%, 62%)"},".language-css .token.important":{color:"hsl(286, 60%, 67%)"},".language-css .token.atrule .token.rule":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.operator":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(5, 48%, 51%)"},".language-json .token.operator":{color:"hsl(220, 14%, 71%)"},".language-json .token.null.keyword":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.url":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.operator":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.content":{color:"hsl(207, 82%, 66%)"},".language-markdown .token.url > .token.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.url-reference.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(95, 38%, 62%)"},".language-markdown .token.bold .token.content":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.italic .token.content":{color:"hsl(286, 60%, 67%)"},".language-markdown .token.strike .token.content":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.list.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(355, 65%, 65%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.cr:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.lf:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.space:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},".line-highlight.line-highlight":{background:"hsla(220, 100%, 80%, 0.04)"},".line-highlight.line-highlight:before":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(220, 100%, 80%, 0.04)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".command-line .command-line-prompt":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(220, 14%, 45%)"},".command-line .command-line-prompt > span:before":{color:"hsl(220, 14%, 45%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(286, 60%, 67%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(224, 13%, 17%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(224, 13%, 17%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(224, 13%, 17%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(224, 13%, 17%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(219, 13%, 22%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(220, 14%, 71%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(220, 14%, 71%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(220, 14%, 71%)"}};dn.registerLanguage("javascript",ng);dn.registerLanguage("js",ng);dn.registerLanguage("typescript",rg);dn.registerLanguage("ts",rg);dn.registerLanguage("python",sg);dn.registerLanguage("py",sg);dn.registerLanguage("json",bS);dn.registerLanguage("bash",Gu);dn.registerLanguage("shell",Gu);dn.registerLanguage("sh",Gu);dn.registerLanguage("css",vS);dn.registerLanguage("html",og);dn.registerLanguage("xml",og);dn.registerLanguage("sql",SS);dn.registerLanguage("yaml",ig);dn.registerLanguage("yml",ig);dn.registerLanguage("markdown",ag);dn.registerLanguage("md",ag);const SM=()=>Hi,xM=["javascript","js","typescript","ts","python","py","json","bash","shell","sh","css","html","xml","sql","yaml","yml","markdown","md"],wM=({language:e,codeString:t,token:n})=>{const{t:r}=Ge(),{message:s}=Fn.useApp(),[o,i]=y.useState(!1),l=(n==null?void 0:n.marginXS)??8,u=(n==null?void 0:n.borderRadiusSM)??4,f=(n==null?void 0:n.fontSizeSM)??12,h=(n==null?void 0:n.paddingSM)??8,m=async()=>{try{await Pr(t),s.success(r("components.markdown.codeCopiedSuccess"))}catch(w){console.error("Copy failed:",w),s.error(r("components.markdown.copyFailed"))}},b=e.toLowerCase(),v=xM.includes(b);return a.jsxs(nn,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto"},onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[a.jsx(dn,{style:SM(),language:v?b:"text",PreTag:"div",customStyle:{margin:`${l}px 0`,borderRadius:u,fontSize:f,maxWidth:"100%",paddingRight:"50px"},showLineNumbers:t.split(`
|
|
172
|
-
`).length>10,wrapLines:!0,wrapLongLines:!0,children:t}),o&&a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),onClick:m,"aria-label":r("components.markdown.copyCodeAriaLabel"),style:{position:"absolute",top:h,right:h,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:u,opacity:.8,transition:"opacity 0.2s",zIndex:10},onMouseEnter:w=>{const S=w.currentTarget;S.style.opacity="1"},onMouseLeave:w=>{const S=w.currentTarget;S.style.opacity="0.8"}})]})},
|
|
170
|
+
`,ep={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};lE(cE);var uE=function(e){var t=e.children,n=e.wrapperClass,r=n===void 0?"":n,s=e.contentClass,o=s===void 0?"":s,i=e.wrapperStyle,l=e.contentStyle,u=e.wrapperProps,d=u===void 0?{}:u,h=e.contentProps,m=h===void 0?{}:h,b=y.useContext(Td),v=b.init,w=b.cleanupWindowEvents,S=y.useRef(null),k=y.useRef(null);return y.useEffect(function(){var P=S.current,T=k.current;return P!==null&&T!==null&&v&&(v==null||v(P,T)),function(){w==null||w()}},[]),ht.createElement("div",zr({},d,{ref:S,className:"".concat(Mu.wrapperClass," ").concat(ep.wrapper," ").concat(r),style:i}),ht.createElement("div",zr({},m,{ref:k,className:"".concat(Mu.contentClass," ").concat(ep.content," ").concat(o),style:l}),t))};class dE{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,{save:o}=await Jt(async()=>{const{save:d}=await import("./index-BmjFP0ha.js");return{save:d}},__vite__mapDeps([12,13]),import.meta.url),{writeFile:i,writeTextFile:l}=await Jt(async()=>{const{writeFile:d,writeTextFile:h}=await import("./index-_XI0Qq6F.js");return{writeFile:d,writeTextFile:h}},__vite__mapDeps([14,13]),import.meta.url),u=await o({filters:r.map(d=>({name:d.name,extensions:[...d.extensions]})),defaultPath:s});if(!u)throw new Error("User cancelled save operation");return typeof n=="string"?await l(u,n):await i(u,n),{filename:Yy(u,s),success:!0}}}class fE{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,o=Yy(s,s);if(typeof window>"u"||typeof document>"u")throw new Error("File save is unavailable in this environment");const i=mE(r,n),l=typeof n=="string"?new Blob([n],{type:`${i};charset=utf-8`}):new Blob([n],{type:i}),u=URL.createObjectURL(l);try{const d=document.createElement("a");d.href=u,d.download=o,d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d)}finally{URL.revokeObjectURL(u)}return{filename:o,success:!0}}}const hE=new dE,pE=new fE,Yy=(e,t)=>e.split(/[/\\]/).pop()||t,mE=(e,t)=>{var r,s,o;switch(((o=(s=(r=e[0])==null?void 0:r.extensions)==null?void 0:s[0])==null?void 0:o.toLowerCase())||""){case"md":return"text/markdown";case"txt":return"text/plain";case"json":return"application/json";case"pdf":return"application/pdf";case"svg":return"image/svg+xml";case"png":return"image/png";case"jpg":case"jpeg":return"image/jpeg";default:return typeof t=="string"?"text/plain":"application/octet-stream"}},gE=()=>bd()?hE:pE;class yr{static async saveFile(t){try{return await gE().saveFile(t)}catch(n){return{filename:"",success:!1,error:n instanceof Error?n.message:"Unknown error occurred"}}}static async saveTextFile(t,n,r){return this.saveFile({content:t,filters:n,defaultPath:r})}static async saveBinaryFile(t,n,r){return this.saveFile({content:t,filters:n,defaultPath:r})}static generateTimestampedFilename(t,n){const r=new Date().toISOString().slice(0,19).replace(/:/g,"-");return`${t}-${r}.${n}`}}Mt(yr,"FILTERS",{MARKDOWN:[{name:"Markdown",extensions:["md"]}],PDF:[{name:"PDF",extensions:["pdf"]}],SVG:[{name:"SVG",extensions:["svg"]}],PNG:[{name:"PNG",extensions:["png"]}],TEXT:[{name:"Text",extensions:["txt"]}],JSON:[{name:"JSON",extensions:["json"]}],ALL:[{name:"All Files",extensions:["*"]}]});const yE=e=>{const r=new DOMParser().parseFromString(e,"image/svg+xml").querySelector("svg");return r?(r.getAttribute("xmlns")||r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r.getAttribute("xmlns:xlink")||r.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),`<?xml version="1.0" encoding="UTF-8"?>
|
|
171
|
+
${new XMLSerializer().serializeToString(r)}`):e},bE=({svg:e,height:t,isLoading:n,initialScale:r,chartKey:s,className:o,style:i,token:l,containerRef:u})=>{const{t:d}=Ge(),{message:h}=Fn.useApp(),[m,b]=y.useState(!1),v=y.useCallback(async()=>{var S;if(!(!e||m)){b(!0);try{const k=yE(e),P=new TextEncoder().encode(k),T=s?`mermaid-${s.slice(0,8)}`:"mermaid-graph",j=yr.generateTimestampedFilename(T,"svg"),C=await yr.saveBinaryFile(P,yr.FILTERS.SVG,j);if(C.success){h.success(d("chat.messageActions.savedFile",{filename:C.filename}));return}if((S=C.error)!=null&&S.toLowerCase().includes("cancel"))return;h.error(C.error||d("chat.messageActions.exportFailed"))}catch(k){const P=k instanceof Error?k.message:d("components.mermaid.exportFailed");h.error(P)}finally{b(!1)}}},[h,s,m,e,d]),w=n||!e||m;return a.jsxs("div",{ref:u,"data-mermaid-loading":n?"true":"false",className:o,style:{textAlign:"center",margin:`${l.marginXS}px 0`,padding:l.padding,background:l.colorBgContainer,borderRadius:l.borderRadiusSM,border:`1px solid ${l.colorBorder}`,overflow:"hidden",height:`${Math.min(t,800)}px`,minHeight:"300px",maxHeight:"80vh",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",willChange:"auto",contain:"layout style paint",...i},children:[n&&a.jsx("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:l.colorTextSecondary,fontSize:l.fontSizeSM,zIndex:2},children:d("components.mermaid.renderingDiagram")}),a.jsx("div",{style:{width:"100%",height:"100%",opacity:n?0:1,position:"relative"},children:a.jsx(aE,{initialScale:r,minScale:.1,maxScale:10,centerOnInit:!0,limitToBounds:!1,wheel:{step:.1},panning:{disabled:!1},pinch:{disabled:!1},doubleClick:{disabled:!1,mode:"zoomIn",step:.5},children:({zoomIn:S,zoomOut:k,resetTransform:P})=>a.jsxs(a.Fragment,{children:[a.jsxs("div",{"data-mermaid-controls":"true",style:{position:"absolute",top:8,right:8,zIndex:10,display:"flex",flexDirection:"column",gap:4,background:l.colorBgContainer,borderRadius:l.borderRadiusSM,border:`1px solid ${l.colorBorder}`,padding:4,boxShadow:l.boxShadowSecondary},children:[a.jsx(je,{size:"small",type:"text",onClick:()=>S(),style:{fontSize:12,padding:"2px 6px"},children:"+"}),a.jsx(je,{size:"small",type:"text",onClick:()=>k(),style:{fontSize:12,padding:"2px 6px"},children:"-"}),a.jsx(je,{size:"small",type:"text",onClick:()=>P(),style:{fontSize:10,padding:"2px 6px"},children:"⌂"}),a.jsx(xn,{title:d("components.mermaid.exportSvg"),children:a.jsx(je,{size:"small",type:"text",icon:a.jsx(Vs,{}),"aria-label":d("components.mermaid.downloadChartAriaLabel"),disabled:w,loading:m,onClick:()=>{v()},style:{fontSize:11,padding:"2px 6px"}})})]}),a.jsx(uE,{wrapperStyle:{width:"100%",height:"100%"},contentStyle:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:a.jsx("div",{style:{display:"inline-block",lineHeight:0},dangerouslySetInnerHTML:{__html:e.replace(/<svg([^>]*)>/,'<svg$1 style="display: block; max-width: 100%; max-height: 100%;">')}})})]})})})]})};function vE(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const SE=(e,t)=>{const n=y.useMemo(()=>t0(e),[e]),r=y.useMemo(()=>vE(n),[n]),[s,o]=y.useState(()=>{const i=Va(r);return i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:t}});return y.useEffect(()=>{const i=Va(r);o(i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:!1})},[r]),y.useEffect(()=>{if(Va(r))return;let l=!1;return o(u=>({...u,isLoading:!0})),i0(r,n).then(u=>{l||o({svg:u.svg,height:u.height+80,svgWidth:u.width,svgHeight:u.height,error:"",isLoading:!1})}).catch(u=>{if(!l){console.error("[MermaidState] Render error:",u);const d=u instanceof Error?u.message:String(u);o(h=>({...h,error:d||"Failed to render Mermaid diagram",isLoading:!1}))}}),()=>{l=!0}},[r,n,t]),{renderState:s,chartKey:r}},{useToken:xE}=ut,gl=ht.memo(({chart:e,id:t,className:n,style:r,onFix:s})=>{const{token:o}=xE(),i=yd(),[l,u]=y.useState(!1),[d,h]=y.useState(""),m=y.useRef(null),{renderState:b,chartKey:v}=SE(e,!0),{svg:w,height:S,svgWidth:k,error:P,isLoading:T}=b,C=(()=>{const A=i.defaultScale;return k>1200?A*.8:k>800?A*1:A*1.2})(),E=async()=>{if(!(!s||l)){u(!0),h("");try{await s(e,P)}catch(A){const O=A instanceof Error?A.message:String(A);h(O||"Failed to fix Mermaid diagram")}finally{u(!1)}}};return P?a.jsx(JP,{error:P,className:n,style:r,token:o,onFix:s?E:void 0,isFixing:l,fixError:d}):a.jsx(bE,{svg:w,height:S,isLoading:T,initialScale:C,chartKey:v,className:n,style:r,token:o,containerRef:m})});gl.displayName="MermaidChart";const wE=Object.freeze(Object.defineProperty({__proto__:null,MermaidChart:gl,default:gl},Symbol.toStringTag,{value:"Module"})),Yi={'code[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none"},'pre[class*="language-"]':{background:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",MozTabSize:"2",OTabSize:"2",tabSize:"2",WebkitHyphens:"none",MozHyphens:"none",msHyphens:"none",hyphens:"none",padding:"1em",margin:"0.5em 0",overflow:"auto",borderRadius:"0.3em"},'code[class*="language-"]::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::-moz-selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"]::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'code[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},'pre[class*="language-"] *::selection':{background:"hsl(220, 13%, 28%)",color:"inherit",textShadow:"none"},':not(pre) > code[class*="language-"]':{padding:"0.2em 0.3em",borderRadius:"0.3em",whiteSpace:"normal"},comment:{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},prolog:{color:"hsl(220, 10%, 40%)"},cdata:{color:"hsl(220, 10%, 40%)"},doctype:{color:"hsl(220, 14%, 71%)"},punctuation:{color:"hsl(220, 14%, 71%)"},entity:{color:"hsl(220, 14%, 71%)",cursor:"help"},"attr-name":{color:"hsl(29, 54%, 61%)"},"class-name":{color:"hsl(29, 54%, 61%)"},boolean:{color:"hsl(29, 54%, 61%)"},constant:{color:"hsl(29, 54%, 61%)"},number:{color:"hsl(29, 54%, 61%)"},atrule:{color:"hsl(29, 54%, 61%)"},keyword:{color:"hsl(286, 60%, 67%)"},property:{color:"hsl(355, 65%, 65%)"},tag:{color:"hsl(355, 65%, 65%)"},symbol:{color:"hsl(355, 65%, 65%)"},deleted:{color:"hsl(355, 65%, 65%)"},important:{color:"hsl(355, 65%, 65%)"},selector:{color:"hsl(95, 38%, 62%)"},string:{color:"hsl(95, 38%, 62%)"},char:{color:"hsl(95, 38%, 62%)"},builtin:{color:"hsl(95, 38%, 62%)"},inserted:{color:"hsl(95, 38%, 62%)"},regex:{color:"hsl(95, 38%, 62%)"},"attr-value":{color:"hsl(95, 38%, 62%)"},"attr-value > .token.punctuation":{color:"hsl(95, 38%, 62%)"},variable:{color:"hsl(207, 82%, 66%)"},operator:{color:"hsl(207, 82%, 66%)"},function:{color:"hsl(207, 82%, 66%)"},url:{color:"hsl(187, 47%, 55%)"},"attr-value > .token.punctuation.attr-equals":{color:"hsl(220, 14%, 71%)"},"special-attr > .token.attr-value > .token.value.css":{color:"hsl(220, 14%, 71%)"},".language-css .token.selector":{color:"hsl(355, 65%, 65%)"},".language-css .token.property":{color:"hsl(220, 14%, 71%)"},".language-css .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.function":{color:"hsl(187, 47%, 55%)"},".language-css .token.url > .token.string.url":{color:"hsl(95, 38%, 62%)"},".language-css .token.important":{color:"hsl(286, 60%, 67%)"},".language-css .token.atrule .token.rule":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.operator":{color:"hsl(286, 60%, 67%)"},".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation":{color:"hsl(5, 48%, 51%)"},".language-json .token.operator":{color:"hsl(220, 14%, 71%)"},".language-json .token.null.keyword":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.url":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.operator":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url-reference.url > .token.string":{color:"hsl(220, 14%, 71%)"},".language-markdown .token.url > .token.content":{color:"hsl(207, 82%, 66%)"},".language-markdown .token.url > .token.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.url-reference.url":{color:"hsl(187, 47%, 55%)"},".language-markdown .token.blockquote.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.hr.punctuation":{color:"hsl(220, 10%, 40%)",fontStyle:"italic"},".language-markdown .token.code-snippet":{color:"hsl(95, 38%, 62%)"},".language-markdown .token.bold .token.content":{color:"hsl(29, 54%, 61%)"},".language-markdown .token.italic .token.content":{color:"hsl(286, 60%, 67%)"},".language-markdown .token.strike .token.content":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.strike .token.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.list.punctuation":{color:"hsl(355, 65%, 65%)"},".language-markdown .token.title.important > .token.punctuation":{color:"hsl(355, 65%, 65%)"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},namespace:{Opacity:"0.8"},"token.tab:not(:empty):before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.cr:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.lf:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"token.space:before":{color:"hsla(220, 14%, 71%, 0.15)",textShadow:"none"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item":{marginRight:"0.4em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 9%, 55%)",padding:"0.1em 0.4em",borderRadius:"0.3em"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus":{background:"hsl(220, 13%, 28%)",color:"hsl(220, 14%, 71%)"},".line-highlight.line-highlight":{background:"hsla(220, 100%, 80%, 0.04)"},".line-highlight.line-highlight:before":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},".line-highlight.line-highlight[data-end]:after":{background:"hsl(220, 13%, 26%)",color:"hsl(220, 14%, 71%)",padding:"0.1em 0.6em",borderRadius:"0.3em",boxShadow:"0 2px 0 0 rgba(0, 0, 0, 0.2)"},"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before":{backgroundColor:"hsla(220, 100%, 80%, 0.04)"},".line-numbers.line-numbers .line-numbers-rows":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".command-line .command-line-prompt":{borderRightColor:"hsla(220, 14%, 71%, 0.15)"},".line-numbers .line-numbers-rows > span:before":{color:"hsl(220, 14%, 45%)"},".command-line .command-line-prompt > span:before":{color:"hsl(220, 14%, 45%)"},".rainbow-braces .token.token.punctuation.brace-level-1":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-5":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-9":{color:"hsl(355, 65%, 65%)"},".rainbow-braces .token.token.punctuation.brace-level-2":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-6":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-10":{color:"hsl(95, 38%, 62%)"},".rainbow-braces .token.token.punctuation.brace-level-3":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-7":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-11":{color:"hsl(207, 82%, 66%)"},".rainbow-braces .token.token.punctuation.brace-level-4":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-8":{color:"hsl(286, 60%, 67%)"},".rainbow-braces .token.token.punctuation.brace-level-12":{color:"hsl(286, 60%, 67%)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)":{backgroundColor:"hsla(353, 100%, 66%, 0.15)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection":{backgroundColor:"hsla(353, 95%, 66%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)":{backgroundColor:"hsla(137, 100%, 55%, 0.15)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection":{backgroundColor:"hsla(135, 73%, 55%, 0.25)"},".prism-previewer.prism-previewer:before":{borderColor:"hsl(224, 13%, 17%)"},".prism-previewer-gradient.prism-previewer-gradient div":{borderColor:"hsl(224, 13%, 17%)",borderRadius:"0.3em"},".prism-previewer-color.prism-previewer-color:before":{borderRadius:"0.3em"},".prism-previewer-easing.prism-previewer-easing:before":{borderRadius:"0.3em"},".prism-previewer.prism-previewer:after":{borderTopColor:"hsl(224, 13%, 17%)"},".prism-previewer-flipped.prism-previewer-flipped.after":{borderBottomColor:"hsl(224, 13%, 17%)"},".prism-previewer-angle.prism-previewer-angle:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-time.prism-previewer-time:before":{background:"hsl(219, 13%, 22%)"},".prism-previewer-easing.prism-previewer-easing":{background:"hsl(219, 13%, 22%)"},".prism-previewer-angle.prism-previewer-angle circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-time.prism-previewer-time circle":{stroke:"hsl(220, 14%, 71%)",strokeOpacity:"1"},".prism-previewer-easing.prism-previewer-easing circle":{stroke:"hsl(220, 14%, 71%)",fill:"transparent"},".prism-previewer-easing.prism-previewer-easing path":{stroke:"hsl(220, 14%, 71%)"},".prism-previewer-easing.prism-previewer-easing line":{stroke:"hsl(220, 14%, 71%)"}};dn.registerLanguage("javascript",ng);dn.registerLanguage("js",ng);dn.registerLanguage("typescript",rg);dn.registerLanguage("ts",rg);dn.registerLanguage("python",sg);dn.registerLanguage("py",sg);dn.registerLanguage("json",vS);dn.registerLanguage("bash",Ju);dn.registerLanguage("shell",Ju);dn.registerLanguage("sh",Ju);dn.registerLanguage("css",SS);dn.registerLanguage("html",og);dn.registerLanguage("xml",og);dn.registerLanguage("sql",xS);dn.registerLanguage("yaml",ig);dn.registerLanguage("yml",ig);dn.registerLanguage("markdown",ag);dn.registerLanguage("md",ag);const _E=()=>Yi,kE=["javascript","js","typescript","ts","python","py","json","bash","shell","sh","css","html","xml","sql","yaml","yml","markdown","md"],CE=({language:e,codeString:t,token:n})=>{const{t:r}=Ge(),{message:s}=Fn.useApp(),[o,i]=y.useState(!1),l=(n==null?void 0:n.marginXS)??8,u=(n==null?void 0:n.borderRadiusSM)??4,d=(n==null?void 0:n.fontSizeSM)??12,h=(n==null?void 0:n.paddingSM)??8,m=async()=>{try{await Pr(t),s.success(r("components.markdown.codeCopiedSuccess"))}catch(w){console.error("Copy failed:",w),s.error(r("components.markdown.copyFailed"))}},b=e.toLowerCase(),v=kE.includes(b);return a.jsxs(nn,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto"},onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[a.jsx(dn,{style:_E(),language:v?b:"text",PreTag:"div",customStyle:{margin:`${l}px 0`,borderRadius:u,fontSize:d,maxWidth:"100%",paddingRight:"50px"},showLineNumbers:t.split(`
|
|
172
|
+
`).length>10,wrapLines:!0,wrapLongLines:!0,children:t}),o&&a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),onClick:m,"aria-label":r("components.markdown.copyCodeAriaLabel"),style:{position:"absolute",top:h,right:h,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:u,opacity:.8,transition:"opacity 0.2s",zIndex:10},onMouseEnter:w=>{const S=w.currentTarget;S.style.opacity="1"},onMouseLeave:w=>{const S=w.currentTarget;S.style.opacity="0.8"}})]})},TE=({codeString:e,token:t})=>{const{t:n}=Ge(),{message:r}=Fn.useApp(),s=(t==null?void 0:t.marginXS)??8,o=(t==null?void 0:t.borderRadiusSM)??4,i=(t==null?void 0:t.fontSizeSM)??12,l=(t==null?void 0:t.paddingSM)??8,u=(t==null?void 0:t.padding)??16;return a.jsxs(nn,{size:"small",styles:{body:{padding:0}},style:{position:"relative",margin:`${s}px 0`},onMouseEnter:d=>{const h=d.currentTarget.querySelector(".fallback-copy-btn");h&&(h.style.display="block")},onMouseLeave:d=>{const h=d.currentTarget.querySelector(".fallback-copy-btn");h&&(h.style.display="none")},children:[a.jsx("pre",{style:{backgroundColor:"var(--ant-color-bg-container, #ffffff)",border:"1px solid var(--ant-color-border, #d9d9d9)",padding:u,borderRadius:o,overflow:"auto",fontSize:i,paddingRight:"50px",margin:0},children:a.jsx("code",{style:{color:"var(--ant-color-text, #333)"},children:e})}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),"aria-label":n("components.markdown.copyCodeAriaLabel"),className:"fallback-copy-btn",onClick:async()=>{try{await Pr(e),r.success(n("components.markdown.codeCopiedSuccess"))}catch(d){console.error("Copy failed:",d),r.error(n("components.markdown.copyFailed"))}},style:{position:"absolute",top:l,right:l,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:o,display:"none",zIndex:10}})]})},PE={mermaid:"mermaid",graph:"graph TD",flowchart:"flowchart TD",sequencediagram:"sequenceDiagram",classdiagram:"classDiagram",statediagram:"stateDiagram-v2","statediagram-v2":"stateDiagram-v2",erdiagram:"erDiagram",journey:"journey",gantt:"gantt",pie:"pie",gitgraph:"gitGraph",mindmap:"mindmap",timeline:"timeline",quadrantchart:"quadrantChart",requirementdiagram:"requirementDiagram",c4context:"C4Context",c4container:"C4Container",c4component:"C4Component",c4dynamic:"C4Dynamic",c4deployment:"C4Deployment",sankey:"sankey-beta","sankey-beta":"sankey-beta",xychart:"xychart-beta","xychart-beta":"xychart-beta",block:"block-beta","block-beta":"block-beta",packet:"packet-beta","packet-beta":"packet-beta",kanban:"kanban",architecture:"architecture"},Xy=/^(\s*%%\{[\s\S]*?\}%%\s*)+/,ME=/^(graph|flowchart|sequencediagram|classdiagram|statediagram(?:-v2)?|erdiagram|journey|gantt|pie|gitgraph|mindmap|timeline|quadrantchart|requirementdiagram|c4context|c4container|c4component|c4dynamic|c4deployment|sankey-beta|xychart-beta|block-beta|packet-beta|kanban|architecture)\b/i,EE=e=>e.replace(Xy,"").trimStart(),jE=(e,t)=>{const n=e.match(Xy);if(!n)return`${t}
|
|
173
173
|
${e}`.trim();const r=n[0].trimEnd(),s=e.slice(n[0].length).trimStart();return s?`${r}
|
|
174
174
|
${t}
|
|
175
175
|
${s}`:`${r}
|
|
176
|
-
${t}`},EM=(e,t)=>{const n=kM[e];if(!n)return null;const r=t.trim();if(!r)return"";if(e==="mermaid")return r;const s=TM(r);return CM.test(s)?r:PM(r,n)},Xy=(e,t,n,r,s="lazy")=>{try{if(!t||typeof t!="string")return console.warn("Invalid codeString provided to renderCodeBlock:",t),null;const o=e.toLowerCase().trim(),i=EM(o,t);if(i!==null){const l=i.trim();return l?s==="eager"?a.jsx(ml,{chart:l,onFix:r}):a.jsx(XP,{chart:l,onFix:r}):(console.warn("Empty Mermaid chart content"),null)}return a.jsx(wM,{language:o,codeString:t,token:n})}catch(o){return console.warn("Syntax highlighting failed:",o),a.jsx(_M,{codeString:t,token:n})}},tp=(e,t)=>{if(typeof window>"u")return;const n=window.open(e,"_blank","noopener,noreferrer");if(n){n.opener=null;return}((t==null?void 0:t.allowLocationFallback)??!0)&&window.location.assign(e)},Ky=async e=>{const t=e.trim();if(!t)return;if(bd()){const r=window.__TAURI_INTERNALS__,s=r==null?void 0:r.invoke;if(typeof s=="function")try{await s("plugin:shell|open",{path:t});return}catch(o){console.warn("[openExternalLink] Failed to open via Tauri shell plugin, falling back to browser open.",o)}tp(t,{allowLocationFallback:!1});return}tp(t)},{Text:np}=ft,Oa=8,Pc=4,rp="4px 8px",MM="4px 8px",Vy=(e,t)=>({p:({children:n})=>a.jsx(np,{style:{marginBottom:Oa,display:"block"},children:n}),ol:({children:n})=>a.jsx("ol",{style:{marginBottom:Oa,paddingLeft:20},children:n}),ul:({children:n})=>a.jsx("ul",{style:{marginBottom:Oa,paddingLeft:20},children:n}),li:({children:n})=>a.jsx("li",{style:{marginBottom:Pc},children:n}),code({className:n,children:r,inline:s,...o}){const i=/language-([^\s]+)/i.exec(n||""),l=i?i[1]:"",u=s??(!i&&!n),f=r?String(r).replace(/\n$/,""):"";return u?a.jsx(np,{code:!0,className:n,...o,children:r}):f.trim()?Xy(l,f,void 0,t==null?void 0:t.onFixMermaid,t==null?void 0:t.mermaidRenderMode):null},blockquote:({children:n})=>a.jsx(nn,{size:"small",styles:{body:{padding:MM}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${Pc}px 0`,color:"var(--ant-color-text-secondary, #64748b)",fontStyle:"italic"},children:n}),a:({children:n,href:r})=>{const s=typeof r=="string"?r.trim():"";return s?a.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer",onClick:o=>{o.preventDefault(),o.stopPropagation(),Ky(s)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:n}):a.jsx(a.Fragment,{children:n})},table:({children:n})=>a.jsx(nn,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${Oa}px 0`},children:a.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:"1px solid var(--ant-color-border, #d9d9d9)"},children:n})}),thead:({children:n})=>a.jsx("thead",{style:{backgroundColor:"var(--ant-color-fill-tertiary, rgba(15, 23, 42, 0.04))"},children:n}),tbody:({children:n})=>a.jsx("tbody",{children:n}),tr:({children:n})=>a.jsx("tr",{style:{borderBottom:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),th:({children:n})=>a.jsx("th",{style:{padding:rp,textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),td:({children:n})=>a.jsx("td",{style:{padding:rp,borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),input:({type:n,checked:r,disabled:s})=>n==="checkbox"?a.jsx("input",{type:"checkbox",checked:r,disabled:s,style:{marginRight:Pc,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):a.jsx("input",{type:n,checked:r,disabled:s})}),{Text:sn}=ft,sp=e=>{if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},jM=({content:e,toolName:t,status:n="success",timestamp:r,defaultCollapsed:s=!0,isLoading:o,errorMessage:i})=>{const{t:l}=Ge(),{token:u}=ut.useToken(),f=y.useMemo(()=>Qs(e),[e]),h=y.useMemo(()=>typeof o=="boolean"?o:f.formattedText.trim().length===0,[f.formattedText,o]),m=y.useMemo(()=>wC(f.formattedText),[f.formattedText]),b=y.useMemo(()=>to(e),[e]),v=y.useMemo(()=>yy(e),[e]),w=async()=>{try{const k=f.isJson?fs(f.parsedJson):f.formattedText;await Pr(k)}catch(k){console.error("[ToolResultCard] Failed to copy result:",k)}},S=y.useMemo(()=>{const k=e?e.slice(0,50).replace(/[^a-zA-Z0-9]/g,""):"empty";return`tool-result-${t}-${k}`},[t,e]);return a.jsx(Zs,{defaultActiveKey:s?[]:[S],style:{backgroundColor:u.colorBgContainer,borderColor:u.colorBorderSecondary,borderWidth:1,borderStyle:"solid",borderRadius:u.borderRadiusLG},items:[{key:S,label:a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:u.marginSM,width:"100%"},children:[a.jsx(hg,{style:{color:u.colorPrimary,flexShrink:0}}),a.jsx(sn,{strong:!0,style:{color:u.colorText,flexShrink:0},children:t}),a.jsx(sn,{type:"secondary",ellipsis:!0,style:{flex:1,minWidth:0,fontSize:u.fontSizeSM},children:h?l("components.toolResult.waiting"):m}),a.jsx(Je,{color:vy(n),style:{flexShrink:0,margin:0},children:n})]}),children:a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:u.marginSM,children:[r&&a.jsx(sn,{type:"secondary",style:{fontSize:u.fontSizeSM},children:new Date(r).toLocaleString()}),i&&a.jsx(ir,{type:"error",message:l("components.toolResult.executionFailed"),description:i,showIcon:!0}),a.jsxs("div",{style:{position:"relative"},children:[a.jsx(xn,{title:l("components.toolResult.copyResult"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),"aria-label":l("components.toolResult.copyResult"),onClick:k=>{k.stopPropagation(),w()},style:{position:"absolute",top:8,right:8,zIndex:1}})}),h?a.jsx(sn,{type:"secondary",children:l("components.toolResult.waitingForResult")}):v?a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:10,children:[a.jsxs(Ue,{wrap:!0,children:[a.jsx(Je,{color:v.action==="rebuild"?"gold":"blue",children:l(`components.toolResult.memory.action.${v.action}`)}),a.jsx(Je,{children:v.data.scope}),v.data.project_key?a.jsx(Je,{children:v.data.project_key}):null,a.jsx(Je,{color:"green",children:l("components.toolResult.memory.totalMemories",{count:v.data.total_memories})}),a.jsx(Je,{color:v.data.stale_candidate_count>0?"orange":"default",children:l("components.toolResult.memory.staleCandidates",{count:v.data.stale_candidate_count})})]}),a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.coverage")}),a.jsxs("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:[Object.entries(v.data.by_type).map(([k,P])=>a.jsx(Je,{children:`${k}: ${P}`},`type-${k}`)),Object.entries(v.data.by_status).map(([k,P])=>a.jsx(Je,{color:"processing",children:`${k}: ${P}`},`status-${k}`))]})]}),a.jsx(ll,{style:{margin:`${u.marginXS}px 0`}}),a.jsxs("div",{style:{display:"grid",gap:u.marginXS},children:[a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.viewsLabel")})," ",v.data.view_files.length]}),a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.indexesLabel")})," ",v.data.index_files.length]}),a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.stateFilesLabel")})," ",v.data.state_files.length]}),v.data.last_reindex_at?a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.lastReindexLabel")})," ",sp(v.data.last_reindex_at)]}):null,v.data.last_dream_at?a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.lastDreamLabel")})," ",sp(v.data.last_dream_at)]}):null]}),v.data.view_files.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.viewFiles")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.view_files.map(k=>a.jsx(Je,{children:k},`view-${k}`))})]}):null,v.data.index_files.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.indexFiles")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.index_files.map(k=>a.jsx(Je,{children:k},`index-${k}`))})]}):null,v.data.state_files.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.stateFiles")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.state_files.map(k=>a.jsx(Je,{children:k},`state-${k}`))})]}):null,v.data.topic_paths.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.topicPaths")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.topic_paths.map(k=>a.jsx(Je,{children:k},`topic-${k}`))})]}):null,v.data.recent_ids.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.recentMemories")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.recent_ids.map(k=>a.jsx(Je,{color:"default",children:k},`recent-${k}`))})]}):null]}):b?a.jsx(Ui,{payload:b,defaultViewMode:"sideBySide"}):f.isJson?a.jsx(il,{language:"json",style:Hi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:u.borderRadiusSM,backgroundColor:u.colorBgContainer,fontSize:u.fontSizeSM,maxHeight:400,overflow:"auto"},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:f.formattedText}):a.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:u.fontSizeSM,backgroundColor:u.colorBgContainer,padding:u.paddingSM,borderRadius:u.borderRadiusSM,margin:0,maxHeight:400,overflow:"auto"},children:f.formattedText})]})]})}]})},Gy=y.memo(jM);Gy.displayName="ToolResultCard";function Jy(e,t){const n=eo(e);if(n)return`MCP ${n.serverId}: ${n.toolName}`;const r=(i,l)=>{const u=typeof i=="string"?i:String(i??"");return!u||u.length<=l?u:u.substring(0,l).trimEnd()+"…"},s={file_read:i=>`Reading: ${r(i.path||i.file_path||"file",40)}`,file_write:i=>`Writing to: ${r(i.path||i.file_path||"file",35)}`,file_edit:i=>`Editing: ${r(i.path||i.file_path||"file",40)}`,bash:i=>`Executing: ${r(i.command,40)}`,grep:i=>`Searching: "${r(i.pattern,30)}"`,glob:i=>`Finding files: "${i.pattern}"`,conclusion:i=>`Presenting conclusion: "${r(i.conclusion||i.title||"",30)}"`,read:i=>`Reading: ${i.file_path||"file"}`,write:i=>`Writing: ${i.file_path||"file"}`,edit:i=>`Editing: ${i.file_path||"file"}`,search:i=>`Searching: "${r(i.query||i.pattern,30)}"`,default:()=>`Calling ${e}`};return(s[e]||s.default)(t)}const RM=(e,t)=>e==null?{isJson:!1,formattedText:""}:t==="json"?{isJson:!0,formattedText:typeof e=="string"?e:fs(e,2)}:t==="text"?{isJson:!1,formattedText:typeof e=="string"?e:fs(e,2)}:typeof e=="string"?Qs(e):{isJson:!0,formattedText:fs(e,2),parsedJson:e},gi=({value:e,mode:t="auto",emptyDescription:n,className:r,height:s,maxHeight:o,compact:i=!1,scrollable:l=!0,backgroundColor:u})=>{const{token:f}=ut.useToken(),h=y.useMemo(()=>RM(e,t),[e,t]),m=h.formattedText??"";if(!m.trim())return n===void 0?null:a.jsx(tu,{description:n});const b=i?Math.max(f.fontSizeSM-1,11):f.fontSizeSM,v=["lotus-code-surface",r].filter(Boolean).join(" "),w={backgroundColor:u??(i?f.colorFillTertiary:f.colorBgContainer),borderRadius:f.borderRadiusSM,height:s,maxHeight:o,minHeight:0,display:"flex",flexDirection:"column",overflow:l?"auto":"hidden"};return h.isJson?a.jsx("div",{className:v,style:w,children:a.jsx(il,{language:"json",style:Hi,wrapLongLines:!0,customStyle:{margin:0,backgroundColor:"transparent",fontSize:b,padding:i?f.paddingXS:f.paddingSM,minHeight:s?"100%":void 0,flex:s?1:void 0},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:m})}):a.jsx("div",{className:v,style:w,children:a.jsx("pre",{style:{margin:0,padding:i?f.paddingXS:f.paddingSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:b,whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:s?"100%":void 0,flex:s?1:void 0},children:m})})},{Text:zn}=ft,AM=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,IM=({open:e,onClose:t,call:n,metadata:r,initialTab:s="preview",result:o})=>{var O,F;const{t:i}=Ge(),{token:l}=ut.useToken(),u=y.useMemo(()=>eo(n.toolName),[n.toolName]),f=y.useMemo(()=>Jy(n.toolName,n.parameters),[n.toolName,n.parameters]),h=((O=o==null?void 0:o.result)==null?void 0:O.result)??"",m=y.useMemo(()=>h.trim()?to(h):null,[h]),b=typeof(r==null?void 0:r.summary)=="string"&&r.summary.trim().length>0?r.summary.trim():null,v=y.useMemo(()=>fs(n.parameters,2),[n.parameters]),w=async()=>{try{await Pr(v)}catch(D){console.error("[ToolStepDetailDrawer] Failed to copy parameters:",D)}},S=y.useMemo(()=>{var D;return(D=n.streamingOutput)!=null&&D.trim()?{label:i("components.toolCall.liveOutput"),value:n.streamingOutput,mode:"auto"}:!m&&h.trim()?{label:i("components.toolSteps.result"),value:h,mode:"auto"}:Object.keys(n.parameters).length>0?{label:i("components.toolSteps.parameters"),value:n.parameters,mode:"json"}:null},[n.parameters,n.streamingOutput,m,h,i]),k=y.useMemo(()=>{const D=["path","file_path","command","pattern","query","limit"];return Object.entries(n.parameters).sort((I,Q)=>{const G=D.indexOf(I[0]),Z=D.indexOf(Q[0]);return G!==-1&&Z!==-1?G-Z:G!==-1?-1:Z!==-1?1:0}).slice(0,3)},[n.parameters]),P=!!((F=n.streamingOutput)!=null&&F.trim()),T=y.useMemo(()=>o?o.isError?a.jsx(Je,{color:"error",children:i("components.toolSteps.statusError")}):a.jsx(Je,{color:"success",children:i("components.toolSteps.statusFinish")}):P?a.jsx(Je,{color:"processing",children:i("components.toolSteps.statusProcess")}):a.jsx(Je,{color:"default",children:i("components.toolSteps.statusWait")}),[o,P,i]),M=(r==null?void 0:r.elapsed_ms)!=null?a.jsx(Je,{color:r.is_mutating?"orange":"green",children:AM(r.elapsed_ms)}):null,C=a.jsxs(Ue,{size:"small",children:[u?a.jsxs(a.Fragment,{children:[a.jsx(Je,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:8,fontWeight:700},children:"MCP"}),a.jsx(zn,{strong:!0,children:u.toolName}),a.jsx(zn,{type:"secondary",style:{fontSize:l.fontSizeSM},children:a.jsx(zn,{code:!0,style:{fontSize:l.fontSizeSM},children:u.serverId})})]}):a.jsx(zn,{strong:!0,children:n.toolName}),T,M]}),j=m?s:s==="diff"?"preview":s,A=[{key:"preview",label:i("components.toolSteps.preview"),children:a.jsxs("div",{className:"lotus-tool-step-drawer-pane",children:[a.jsxs("div",{style:{display:"grid",gap:l.marginSM,flexShrink:0},children:[a.jsxs("div",{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.intent")}),a.jsx("div",{style:{marginTop:l.marginXS},children:a.jsx(zn,{style:{fontSize:l.fontSizeSM},children:f})})]}),b?a.jsxs("div",{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.summary",{defaultValue:"Summary"})}),a.jsx("div",{style:{marginTop:l.marginXS},children:a.jsx(zn,{type:"secondary",style:{fontSize:l.fontSizeSM},children:b})})]}):null,k.length>0&&a.jsxs("div",{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.keyParameters")}),a.jsx("ul",{style:{margin:`${l.marginXS}px 0 0`,paddingLeft:l.paddingLG,fontSize:l.fontSizeSM},children:k.map(([D,N])=>a.jsxs("li",{children:[a.jsx(zn,{code:!0,style:{fontSize:l.fontSizeSM},children:D}),a.jsxs(zn,{style:{fontSize:l.fontSizeSM},children:[": ",typeof N=="string"?N:JSON.stringify(N)]})]},D))})]})]}),a.jsx("div",{style:{marginTop:l.marginSM,display:"flex",flexDirection:"column",gap:l.marginXS,flex:1,minHeight:0},children:m?a.jsxs(a.Fragment,{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.fileChanges",{defaultValue:"File changes"})}),a.jsx(Ui,{payload:m,defaultViewMode:"unified",maxHeight:340})]}):S?a.jsxs(a.Fragment,{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:S.label}),a.jsx(gi,{value:S.value,mode:S.mode,height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})]}):a.jsx(gi,{emptyDescription:i("components.toolSteps.noResult"),height:"100%",scrollable:!0})})]})},...m?[{key:"diff",label:i("components.toolSteps.diff",{defaultValue:"Diff"}),children:a.jsx("div",{className:"lotus-tool-step-drawer-pane",children:a.jsx(Ui,{payload:m,defaultViewMode:"sideBySide",height:"100%"})})}]:[],{key:"parameters",label:i("components.toolSteps.parameters"),children:a.jsx("div",{className:"lotus-tool-step-drawer-pane",children:a.jsxs("div",{style:{position:"relative",flex:1,minHeight:0},children:[a.jsx(xn,{title:i("components.toolCall.copyParameters"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),"aria-label":i("components.toolCall.copyParameters"),onClick:w,style:{position:"absolute",top:0,right:0,zIndex:1}})}),a.jsx(gi,{value:v,mode:"json",height:"100%",scrollable:!0})]})})},{key:"result",label:i("components.toolSteps.result"),children:a.jsx("div",{className:"lotus-tool-step-drawer-pane",children:a.jsx(gi,{value:h,mode:"auto",height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})})}];return a.jsx(Pl,{placement:"right",width:960,open:e,onClose:t,title:C,destroyOnClose:!0,styles:{body:{paddingTop:0,display:"flex",flexDirection:"column",minHeight:0,overflow:"hidden"}},children:a.jsx("div",{className:"lotus-tool-step-drawer-tabs",children:a.jsx(GS,{defaultActiveKey:j,items:A,style:{height:"100%"}},`${n.toolCallId}:${j}`)})})},{Text:$r}=ft;function OM(e){var n;return!((n=e.streamingOutput)!=null&&n.trim())?{status:"wait",icon:a.jsx(Gs,{})}:{status:"process",icon:a.jsx(ps,{spin:!0})}}function $M(e){var r;const t=e.call.toolCalls[0];return e.result?e.result.isError?{status:"error",icon:a.jsx(vg,{})}:{status:"finish",icon:a.jsx(El,{})}:!((r=t==null?void 0:t.streamingOutput)!=null&&r.trim())?{status:"wait",icon:a.jsx(Gs,{})}:{status:"process",icon:a.jsx(ps,{spin:!0})}}const op=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,LM=({toolCalls:e,metadata:t,tools:n,defaultExpanded:r=!1,hideHeader:s=!1})=>{const{t:o}=Ge(),{token:i}=ut.useToken(),[l,u]=y.useState(r),f=y.useMemo(()=>n&&n.length>0?n.map(N=>{const q=N.call.toolCalls[0];return{key:(q==null?void 0:q.toolCallId)||"unknown",toolName:(q==null?void 0:q.toolName)||"tool",parameters:(q==null?void 0:q.parameters)||{},streamingOutput:q==null?void 0:q.streamingOutput,info:$M(N),result:N.result,metadata:N.call.metadata??t}}):(e||[]).map(N=>({key:N.toolCallId,toolName:N.toolName,parameters:N.parameters,streamingOutput:N.streamingOutput,info:OM(N),result:void 0,metadata:t})),[n,e,t]),[h,m]=y.useState(!1),[b,v]=y.useState(null),[w,S]=y.useState("preview"),k=(N,q)=>{v(N),S(q??"preview"),m(!0)},P=()=>{m(!1)},T=y.useMemo(()=>{const N=f.findIndex(q=>q.info.status!=="finish");return N===-1?f.length-1:N},[f]),M=f.some(N=>N.info.status==="error"),C=f.filter(N=>N.info.status==="finish").length,j=f.length,A=op(t==null?void 0:t.elapsed_ms),O=y.useMemo(()=>{const N=[o("components.toolSteps.title"),`${C}/${j}`];return A&&N.push(A),N.join(" · ")},[o,C,j,A]),F=y.useMemo(()=>f.map(N=>{var ue,de,Ce,ze,Le,lt,L;const q=eo(N.toolName),I=Jy(N.toolName,N.parameters),Q=I.length>60?I.substring(0,60).trimEnd()+"…":I,G=((de=(ue=N.result)==null?void 0:ue.result)==null?void 0:de.result)??"",Z=G?to(G):null,pe=G?wd(G):null,$=typeof((Ce=N.metadata)==null?void 0:Ce.summary)=="string"&&N.metadata.summary.trim().length>0?N.metadata.summary.trim():null,oe=Z?`${Z.operation}(${Z.file_path})`:null;let me=null,ne="text",fe=null;if(N.info.status==="process"&&((ze=N.streamingOutput)!=null&&ze.trim()))me=N.streamingOutput.split(`
|
|
176
|
+
${t}`},RE=(e,t)=>{const n=PE[e];if(!n)return null;const r=t.trim();if(!r)return"";if(e==="mermaid")return r;const s=EE(r);return ME.test(s)?r:jE(r,n)},Ky=(e,t,n,r,s="lazy")=>{try{if(!t||typeof t!="string")return console.warn("Invalid codeString provided to renderCodeBlock:",t),null;const o=e.toLowerCase().trim(),i=RE(o,t);if(i!==null){const l=i.trim();return l?s==="eager"?a.jsx(gl,{chart:l,onFix:r}):a.jsx(GP,{chart:l,onFix:r}):(console.warn("Empty Mermaid chart content"),null)}return a.jsx(CE,{language:o,codeString:t,token:n})}catch(o){return console.warn("Syntax highlighting failed:",o),a.jsx(TE,{codeString:t,token:n})}},tp=(e,t)=>{if(typeof window>"u")return;const n=window.open(e,"_blank","noopener,noreferrer");if(n){n.opener=null;return}((t==null?void 0:t.allowLocationFallback)??!0)&&window.location.assign(e)},Vy=async e=>{const t=e.trim();if(!t)return;if(bd()){const r=window.__TAURI_INTERNALS__,s=r==null?void 0:r.invoke;if(typeof s=="function")try{await s("plugin:shell|open",{path:t});return}catch(o){console.warn("[openExternalLink] Failed to open via Tauri shell plugin, falling back to browser open.",o)}tp(t,{allowLocationFallback:!1});return}tp(t)},{Text:np}=ft,$a=8,Mc=4,rp="4px 8px",AE="4px 8px",Gy=(e,t)=>({p:({children:n})=>a.jsx(np,{style:{marginBottom:$a,display:"block"},children:n}),ol:({children:n})=>a.jsx("ol",{style:{marginBottom:$a,paddingLeft:20},children:n}),ul:({children:n})=>a.jsx("ul",{style:{marginBottom:$a,paddingLeft:20},children:n}),li:({children:n})=>a.jsx("li",{style:{marginBottom:Mc},children:n}),code({className:n,children:r,inline:s,...o}){const i=/language-([^\s]+)/i.exec(n||""),l=i?i[1]:"",u=s??(!i&&!n),d=r?String(r).replace(/\n$/,""):"";return u?a.jsx(np,{code:!0,className:n,...o,children:r}):d.trim()?Ky(l,d,void 0,t==null?void 0:t.onFixMermaid,t==null?void 0:t.mermaidRenderMode):null},blockquote:({children:n})=>a.jsx(nn,{size:"small",styles:{body:{padding:AE}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${Mc}px 0`,color:"var(--ant-color-text-secondary, #64748b)",fontStyle:"italic"},children:n}),a:({children:n,href:r})=>{const s=typeof r=="string"?r.trim():"";return s?a.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer",onClick:o=>{o.preventDefault(),o.stopPropagation(),Vy(s)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:n}):a.jsx(a.Fragment,{children:n})},table:({children:n})=>a.jsx(nn,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${$a}px 0`},children:a.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:"1px solid var(--ant-color-border, #d9d9d9)"},children:n})}),thead:({children:n})=>a.jsx("thead",{style:{backgroundColor:"var(--ant-color-fill-tertiary, rgba(15, 23, 42, 0.04))"},children:n}),tbody:({children:n})=>a.jsx("tbody",{children:n}),tr:({children:n})=>a.jsx("tr",{style:{borderBottom:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),th:({children:n})=>a.jsx("th",{style:{padding:rp,textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),td:({children:n})=>a.jsx("td",{style:{padding:rp,borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),input:({type:n,checked:r,disabled:s})=>n==="checkbox"?a.jsx("input",{type:"checkbox",checked:r,disabled:s,style:{marginRight:Mc,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):a.jsx("input",{type:n,checked:r,disabled:s})}),{Text:sn}=ft,sp=e=>{if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},IE=({content:e,toolName:t,status:n="success",timestamp:r,defaultCollapsed:s=!0,isLoading:o,errorMessage:i})=>{const{t:l}=Ge(),{token:u}=ut.useToken(),d=y.useMemo(()=>Zs(e),[e]),h=y.useMemo(()=>typeof o=="boolean"?o:d.formattedText.trim().length===0,[d.formattedText,o]),m=y.useMemo(()=>_C(d.formattedText),[d.formattedText]),b=y.useMemo(()=>no(e),[e]),v=y.useMemo(()=>yy(e),[e]),w=async()=>{try{const k=d.isJson?hs(d.parsedJson):d.formattedText;await Pr(k)}catch(k){console.error("[ToolResultCard] Failed to copy result:",k)}},S=y.useMemo(()=>{const k=e?e.slice(0,50).replace(/[^a-zA-Z0-9]/g,""):"empty";return`tool-result-${t}-${k}`},[t,e]);return a.jsx(eo,{defaultActiveKey:s?[]:[S],style:{backgroundColor:u.colorBgContainer,borderColor:u.colorBorderSecondary,borderWidth:1,borderStyle:"solid",borderRadius:u.borderRadiusLG},items:[{key:S,label:a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:u.marginSM,width:"100%"},children:[a.jsx(hg,{style:{color:u.colorPrimary,flexShrink:0}}),a.jsx(sn,{strong:!0,style:{color:u.colorText,flexShrink:0},children:t}),a.jsx(sn,{type:"secondary",ellipsis:!0,style:{flex:1,minWidth:0,fontSize:u.fontSizeSM},children:h?l("components.toolResult.waiting"):m}),a.jsx(Je,{color:Sy(n),style:{flexShrink:0,margin:0},children:n})]}),children:a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:u.marginSM,children:[r&&a.jsx(sn,{type:"secondary",style:{fontSize:u.fontSizeSM},children:new Date(r).toLocaleString()}),i&&a.jsx(ir,{type:"error",message:l("components.toolResult.executionFailed"),description:i,showIcon:!0}),a.jsxs("div",{style:{position:"relative"},children:[a.jsx(xn,{title:l("components.toolResult.copyResult"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),"aria-label":l("components.toolResult.copyResult"),onClick:k=>{k.stopPropagation(),w()},style:{position:"absolute",top:8,right:8,zIndex:1}})}),h?a.jsx(sn,{type:"secondary",children:l("components.toolResult.waitingForResult")}):v?a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:10,children:[a.jsxs(Ue,{wrap:!0,children:[a.jsx(Je,{color:v.action==="rebuild"?"gold":"blue",children:l(`components.toolResult.memory.action.${v.action}`)}),a.jsx(Je,{children:v.data.scope}),v.data.project_key?a.jsx(Je,{children:v.data.project_key}):null,a.jsx(Je,{color:"green",children:l("components.toolResult.memory.totalMemories",{count:v.data.total_memories})}),a.jsx(Je,{color:v.data.stale_candidate_count>0?"orange":"default",children:l("components.toolResult.memory.staleCandidates",{count:v.data.stale_candidate_count})})]}),a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.coverage")}),a.jsxs("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:[Object.entries(v.data.by_type).map(([k,P])=>a.jsx(Je,{children:`${k}: ${P}`},`type-${k}`)),Object.entries(v.data.by_status).map(([k,P])=>a.jsx(Je,{color:"processing",children:`${k}: ${P}`},`status-${k}`))]})]}),a.jsx(cl,{style:{margin:`${u.marginXS}px 0`}}),a.jsxs("div",{style:{display:"grid",gap:u.marginXS},children:[a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.viewsLabel")})," ",v.data.view_files.length]}),a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.indexesLabel")})," ",v.data.index_files.length]}),a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.stateFilesLabel")})," ",v.data.state_files.length]}),v.data.last_reindex_at?a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.lastReindexLabel")})," ",sp(v.data.last_reindex_at)]}):null,v.data.last_dream_at?a.jsxs(sn,{style:{fontSize:u.fontSizeSM},children:[a.jsx(sn,{strong:!0,children:l("components.toolResult.memory.lastDreamLabel")})," ",sp(v.data.last_dream_at)]}):null]}),v.data.view_files.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.viewFiles")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.view_files.map(k=>a.jsx(Je,{children:k},`view-${k}`))})]}):null,v.data.index_files.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.indexFiles")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.index_files.map(k=>a.jsx(Je,{children:k},`index-${k}`))})]}):null,v.data.state_files.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.stateFiles")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.state_files.map(k=>a.jsx(Je,{children:k},`state-${k}`))})]}):null,v.data.topic_paths.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.topicPaths")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.topic_paths.map(k=>a.jsx(Je,{children:k},`topic-${k}`))})]}):null,v.data.recent_ids.length>0?a.jsxs("div",{children:[a.jsx(sn,{strong:!0,style:{fontSize:u.fontSizeSM},children:l("components.toolResult.memory.recentMemories")}),a.jsx("div",{style:{marginTop:u.marginXS,display:"flex",flexWrap:"wrap",gap:u.marginXS},children:v.data.recent_ids.map(k=>a.jsx(Je,{color:"default",children:k},`recent-${k}`))})]}):null]}):b?a.jsx(qi,{payload:b,defaultViewMode:"sideBySide"}):d.isJson?a.jsx(al,{language:"json",style:Yi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:u.borderRadiusSM,backgroundColor:u.colorBgContainer,fontSize:u.fontSizeSM,maxHeight:400,overflow:"auto"},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:d.formattedText}):a.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:u.fontSizeSM,backgroundColor:u.colorBgContainer,padding:u.paddingSM,borderRadius:u.borderRadiusSM,margin:0,maxHeight:400,overflow:"auto"},children:d.formattedText})]})]})}]})},Jy=y.memo(IE);Jy.displayName="ToolResultCard";function Qy(e,t){const n=to(e);if(n)return`MCP ${n.serverId}: ${n.toolName}`;const r=(i,l)=>{const u=typeof i=="string"?i:String(i??"");return!u||u.length<=l?u:u.substring(0,l).trimEnd()+"…"},s={file_read:i=>`Reading: ${r(i.path||i.file_path||"file",40)}`,file_write:i=>`Writing to: ${r(i.path||i.file_path||"file",35)}`,file_edit:i=>`Editing: ${r(i.path||i.file_path||"file",40)}`,bash:i=>`Executing: ${r(i.command,40)}`,grep:i=>`Searching: "${r(i.pattern,30)}"`,glob:i=>`Finding files: "${i.pattern}"`,conclusion:i=>`Presenting conclusion: "${r(i.conclusion||i.title||"",30)}"`,read:i=>`Reading: ${i.file_path||"file"}`,write:i=>`Writing: ${i.file_path||"file"}`,edit:i=>`Editing: ${i.file_path||"file"}`,search:i=>`Searching: "${r(i.query||i.pattern,30)}"`,default:()=>`Calling ${e}`};return(s[e]||s.default)(t)}const OE=(e,t)=>e==null?{isJson:!1,formattedText:""}:t==="json"?{isJson:!0,formattedText:typeof e=="string"?e:hs(e,2)}:t==="text"?{isJson:!1,formattedText:typeof e=="string"?e:hs(e,2)}:typeof e=="string"?Zs(e):{isJson:!0,formattedText:hs(e,2),parsedJson:e},yi=({value:e,mode:t="auto",emptyDescription:n,className:r,height:s,maxHeight:o,compact:i=!1,scrollable:l=!0,backgroundColor:u})=>{const{token:d}=ut.useToken(),h=y.useMemo(()=>OE(e,t),[e,t]),m=h.formattedText??"";if(!m.trim())return n===void 0?null:a.jsx(nu,{description:n});const b=i?Math.max(d.fontSizeSM-1,11):d.fontSizeSM,v=["lotus-code-surface",r].filter(Boolean).join(" "),w={backgroundColor:u??(i?d.colorFillTertiary:d.colorBgContainer),borderRadius:d.borderRadiusSM,height:s,maxHeight:o,minHeight:0,display:"flex",flexDirection:"column",overflow:l?"auto":"hidden"};return h.isJson?a.jsx("div",{className:v,style:w,children:a.jsx(al,{language:"json",style:Yi,wrapLongLines:!0,customStyle:{margin:0,backgroundColor:"transparent",fontSize:b,padding:i?d.paddingXS:d.paddingSM,minHeight:s?"100%":void 0,flex:s?1:void 0},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:m})}):a.jsx("div",{className:v,style:w,children:a.jsx("pre",{style:{margin:0,padding:i?d.paddingXS:d.paddingSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:b,whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:s?"100%":void 0,flex:s?1:void 0},children:m})})},{Text:zn}=ft,$E=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,LE=({open:e,onClose:t,call:n,metadata:r,initialTab:s="preview",result:o})=>{var O,D;const{t:i}=Ge(),{token:l}=ut.useToken(),u=y.useMemo(()=>to(n.toolName),[n.toolName]),d=y.useMemo(()=>Qy(n.toolName,n.parameters),[n.toolName,n.parameters]),h=((O=o==null?void 0:o.result)==null?void 0:O.result)??"",m=y.useMemo(()=>h.trim()?no(h):null,[h]),b=typeof(r==null?void 0:r.summary)=="string"&&r.summary.trim().length>0?r.summary.trim():null,v=y.useMemo(()=>hs(n.parameters,2),[n.parameters]),w=async()=>{try{await Pr(v)}catch(F){console.error("[ToolStepDetailDrawer] Failed to copy parameters:",F)}},S=y.useMemo(()=>{var F;return(F=n.streamingOutput)!=null&&F.trim()?{label:i("components.toolCall.liveOutput"),value:n.streamingOutput,mode:"auto"}:!m&&h.trim()?{label:i("components.toolSteps.result"),value:h,mode:"auto"}:Object.keys(n.parameters).length>0?{label:i("components.toolSteps.parameters"),value:n.parameters,mode:"json"}:null},[n.parameters,n.streamingOutput,m,h,i]),k=y.useMemo(()=>{const F=["path","file_path","command","pattern","query","limit"];return Object.entries(n.parameters).sort((I,Q)=>{const G=F.indexOf(I[0]),Z=F.indexOf(Q[0]);return G!==-1&&Z!==-1?G-Z:G!==-1?-1:Z!==-1?1:0}).slice(0,3)},[n.parameters]),P=!!((D=n.streamingOutput)!=null&&D.trim()),T=y.useMemo(()=>o?o.isError?a.jsx(Je,{color:"error",children:i("components.toolSteps.statusError")}):a.jsx(Je,{color:"success",children:i("components.toolSteps.statusFinish")}):P?a.jsx(Je,{color:"processing",children:i("components.toolSteps.statusProcess")}):a.jsx(Je,{color:"default",children:i("components.toolSteps.statusWait")}),[o,P,i]),j=(r==null?void 0:r.elapsed_ms)!=null?a.jsx(Je,{color:r.is_mutating?"orange":"green",children:$E(r.elapsed_ms)}):null,C=a.jsxs(Ue,{size:"small",children:[u?a.jsxs(a.Fragment,{children:[a.jsx(Je,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:8,fontWeight:700},children:"MCP"}),a.jsx(zn,{strong:!0,children:u.toolName}),a.jsx(zn,{type:"secondary",style:{fontSize:l.fontSizeSM},children:a.jsx(zn,{code:!0,style:{fontSize:l.fontSizeSM},children:u.serverId})})]}):a.jsx(zn,{strong:!0,children:n.toolName}),T,j]}),E=m?s:s==="diff"?"preview":s,A=[{key:"preview",label:i("components.toolSteps.preview"),children:a.jsxs("div",{className:"lotus-tool-step-drawer-pane",children:[a.jsxs("div",{style:{display:"grid",gap:l.marginSM,flexShrink:0},children:[a.jsxs("div",{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.intent")}),a.jsx("div",{style:{marginTop:l.marginXS},children:a.jsx(zn,{style:{fontSize:l.fontSizeSM},children:d})})]}),b?a.jsxs("div",{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.summary",{defaultValue:"Summary"})}),a.jsx("div",{style:{marginTop:l.marginXS},children:a.jsx(zn,{type:"secondary",style:{fontSize:l.fontSizeSM},children:b})})]}):null,k.length>0&&a.jsxs("div",{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.keyParameters")}),a.jsx("ul",{style:{margin:`${l.marginXS}px 0 0`,paddingLeft:l.paddingLG,fontSize:l.fontSizeSM},children:k.map(([F,N])=>a.jsxs("li",{children:[a.jsx(zn,{code:!0,style:{fontSize:l.fontSizeSM},children:F}),a.jsxs(zn,{style:{fontSize:l.fontSizeSM},children:[": ",typeof N=="string"?N:JSON.stringify(N)]})]},F))})]})]}),a.jsx("div",{style:{marginTop:l.marginSM,display:"flex",flexDirection:"column",gap:l.marginXS,flex:1,minHeight:0},children:m?a.jsxs(a.Fragment,{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:i("components.toolSteps.fileChanges",{defaultValue:"File changes"})}),a.jsx(qi,{payload:m,defaultViewMode:"unified",maxHeight:340})]}):S?a.jsxs(a.Fragment,{children:[a.jsx(zn,{strong:!0,style:{fontSize:l.fontSizeSM},children:S.label}),a.jsx(yi,{value:S.value,mode:S.mode,height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})]}):a.jsx(yi,{emptyDescription:i("components.toolSteps.noResult"),height:"100%",scrollable:!0})})]})},...m?[{key:"diff",label:i("components.toolSteps.diff",{defaultValue:"Diff"}),children:a.jsx("div",{className:"lotus-tool-step-drawer-pane",children:a.jsx(qi,{payload:m,defaultViewMode:"sideBySide",height:"100%"})})}]:[],{key:"parameters",label:i("components.toolSteps.parameters"),children:a.jsx("div",{className:"lotus-tool-step-drawer-pane",children:a.jsxs("div",{style:{position:"relative",flex:1,minHeight:0},children:[a.jsx(xn,{title:i("components.toolCall.copyParameters"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),"aria-label":i("components.toolCall.copyParameters"),onClick:w,style:{position:"absolute",top:0,right:0,zIndex:1}})}),a.jsx(yi,{value:v,mode:"json",height:"100%",scrollable:!0})]})})},{key:"result",label:i("components.toolSteps.result"),children:a.jsx("div",{className:"lotus-tool-step-drawer-pane",children:a.jsx(yi,{value:h,mode:"auto",height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})})}];return a.jsx(Ml,{placement:"right",width:960,open:e,onClose:t,title:C,destroyOnClose:!0,styles:{body:{paddingTop:0,display:"flex",flexDirection:"column",minHeight:0,overflow:"hidden"}},children:a.jsx("div",{className:"lotus-tool-step-drawer-tabs",children:a.jsx(JS,{defaultActiveKey:E,items:A,style:{height:"100%"}},`${n.toolCallId}:${E}`)})})},{Text:$r}=ft,FE=1760;function DE(e){var n;return!((n=e.streamingOutput)!=null&&n.trim())?{status:"wait",icon:a.jsx(Js,{})}:{status:"process",icon:a.jsx(ms,{spin:!0})}}function NE(e){var r;const t=e.call.toolCalls[0];return e.result?e.result.isError?{status:"error",icon:a.jsx(vg,{})}:{status:"finish",icon:a.jsx(El,{})}:!((r=t==null?void 0:t.streamingOutput)!=null&&r.trim())?{status:"wait",icon:a.jsx(Js,{})}:{status:"process",icon:a.jsx(ms,{spin:!0})}}const op=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,BE=({toolCalls:e,metadata:t,tools:n,defaultExpanded:r=!1,hideHeader:s=!1})=>{const{t:o}=Ge(),{token:i}=ut.useToken(),[l,u]=y.useState(r),d=y.useMemo(()=>n&&n.length>0?n.map(N=>{const q=N.call.toolCalls[0];return{key:(q==null?void 0:q.toolCallId)||"unknown",toolName:(q==null?void 0:q.toolName)||"tool",parameters:(q==null?void 0:q.parameters)||{},streamingOutput:q==null?void 0:q.streamingOutput,info:NE(N),result:N.result,metadata:N.call.metadata??t}}):(e||[]).map(N=>({key:N.toolCallId,toolName:N.toolName,parameters:N.parameters,streamingOutput:N.streamingOutput,info:DE(N),result:void 0,metadata:t})),[n,e,t]),[h,m]=y.useState(!1),[b,v]=y.useState(null),[w,S]=y.useState("preview"),k=(N,q)=>{v(N),S(q??"preview"),m(!0)},P=()=>{m(!1)},T=y.useMemo(()=>{const N=d.findIndex(q=>q.info.status!=="finish");return N===-1?d.length-1:N},[d]),j=d.some(N=>N.info.status==="error"),C=d.filter(N=>N.info.status==="finish").length,E=d.length,A=op(t==null?void 0:t.elapsed_ms),O=y.useMemo(()=>{const N=[o("components.toolSteps.title"),`${C}/${E}`];return A&&N.push(A),N.join(" · ")},[o,C,E,A]),D=y.useMemo(()=>d.map(N=>{var de,Ce,ze,Le,lt,L,le;const q=to(N.toolName),I=Qy(N.toolName,N.parameters),Q=I.length>60?I.substring(0,60).trimEnd()+"…":I,G=((Ce=(de=N.result)==null?void 0:de.result)==null?void 0:Ce.result)??"",Z=G?no(G):null,pe=G?wd(G):null,$=Z?bC(Z.diff.unified,{contextLines:2,maxLines:120,preserveLeadingMeta:!0}):null,oe=typeof((ze=N.metadata)==null?void 0:ze.summary)=="string"&&N.metadata.summary.trim().length>0?N.metadata.summary.trim():null,me=Z?`${Z.operation}(${Z.file_path})`:null;let ne=null,he="text",fe=null;if(N.info.status==="process"&&((Le=N.streamingOutput)!=null&&Le.trim()))ne=N.streamingOutput.split(`
|
|
177
177
|
`).slice(-3).join(`
|
|
178
|
-
`),
|
|
178
|
+
`),he=Zs(N.streamingOutput).isJson?"auto":"text",fe="live";else if(!Z&&(N.info.status==="finish"||N.info.status==="error")&&((L=(lt=N.result)==null?void 0:lt.result)!=null&&L.result)){const Ae=Zs(N.result.result.result),Ie=Ae.formattedText.trimEnd();Ie.length>0&&(ne=Ie.split(`
|
|
179
179
|
`).slice(0,3).join(`
|
|
180
|
-
`),
|
|
181
|
-
…`]})}),T&&a.jsxs(
|
|
182
|
-
`),n=[],r=[];for(const i of t){const l=i.trim(),u=l.match(/^\[User explicitly selected MCP tool:\s*(.+?)\s*\]$/);if(u){const h=u[1]??"",m=
|
|
183
|
-
`).trimStart(),hints:n}},WM=({sessionId:e,message:t,messageText:n,isUserToolCall:r,formatUserToolCall:s,markdownComponents:o,markdownPlugins:i,rehypePlugins:l})=>{var w;const{t:u}=Ge(),f=S=>(S??"").trim().toLowerCase()==="conclusion";if(Py(t)){const S=t.result.result??"",k=t.isError?S||u("components.toolResult.executionFailed"):void 0,P=!k&&S.trim().length===0;if(t.result.display_preference==="Hidden")return null;const T=(t.toolName??"").trim().toLowerCase(),M=T==="conclusion",C=mC(S),j=(T==="conclusion_with_options"||T==="exitplanmode"||T==="request_permissions")&&!t.isError&&C,A=T==="conclusion"?gy(S):null;return j&&C?a.jsx(BM,{sessionId:e,question:C.question,options:C.options,allowCustom:C.allow_custom,toolCallId:t.toolCallId,conclusionMarkdown:gC(C.conclusion),markdownComponents:o,markdownPlugins:i,rehypePlugins:l}):A?a.jsx(Ue,{direction:"vertical",style:{width:"100%"},size:"small",children:a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:A})}):a.jsx(Gy,{content:S,toolName:t.toolName,status:t.isError?"error":P?"warning":"success",timestamp:t.createdAt,defaultCollapsed:!M,isLoading:P,errorMessage:k})}if(RP(t)){const S=t.content??"",k=t.status==="error"?S||u("components.workflowResult.executionFailed"):void 0,P=!k&&S.trim().length===0;return a.jsx(Qy,{content:S,workflowName:t.workflowName,parameters:t.parameters,status:P?"warning":t.status??"success",timestamp:t.createdAt,isLoading:P,errorMessage:k})}if(jP(t)){const S=t.toolCalls.filter(k=>!f(k.toolName));return S.length===0?null:a.jsx(Pd,{toolCalls:S,metadata:t.metadata,defaultExpanded:!1})}if(t.isAuthError)return a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:"middle",children:[a.jsx(ir,{message:u("chat.messageCard.authRequired"),description:a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:n}),type:"error",showIcon:!0}),a.jsx(je,{type:"primary",icon:a.jsx(Cl,{}),onClick:()=>{window.location.hash="/settings"},children:u("chat.messageCard.goToSettings")})]});const{cleanText:h,hints:m}=t.role==="user"?zM(n):{cleanText:n,hints:[]},b=t.role==="assistant"&&"type"in t&&t.type==="text"&&"metadata"in t&&typeof((w=t.metadata)==null?void 0:w.reasoning)=="string"?t.metadata.reasoning:"",v=b.trim().length>0;return t.role==="assistant"&&!n&&!v?a.jsx(rr,{italic:!0,children:u("chat.messageCard.assistantThinking")}):a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:"small",children:[v?a.jsx(Zs,{size:"small",defaultActiveKey:["reasoning"],items:[{key:"reasoning",label:a.jsx(rr,{strong:!0,children:u("chat.messageCard.reasoning")}),children:a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:b})}]}):null,m.map((S,k)=>S.type==="mcp"?a.jsx(ir,{type:"info",showIcon:!1,message:a.jsxs(Ue,{wrap:!0,size:"small",children:[a.jsx(Je,{color:"purple",children:"MCP"}),a.jsx(rr,{strong:!0,children:u("chat.messageCard.selectedTool")}),S.serverId&&a.jsx(rr,{type:"secondary",children:a.jsx(rr,{code:!0,children:S.serverId})}),S.toolName&&a.jsx(rr,{type:"secondary",children:a.jsx(rr,{code:!0,children:S.toolName})})]}),style:{marginBottom:0}},`hint-mcp-${k}`):a.jsx(ir,{type:"success",showIcon:!1,message:a.jsxs(Ue,{wrap:!0,size:"small",children:[a.jsx(Je,{color:"success",children:"Skill"}),a.jsx(rr,{strong:!0,children:u("chat.messageCard.selected")}),S.label&&a.jsx(rr,{children:S.label}),S.skillId&&a.jsx(rr,{type:"secondary",children:a.jsx(rr,{code:!0,children:S.skillId})})]}),style:{marginBottom:0}},`hint-skill-${k}`)),h?a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:r?s(h):h}):null]})},UM=y.memo(WM),{Text:jc}=ft,qM=({role:e,formattedTimestamp:t,token:n})=>{const{t:r}=Ge(),s=e==="user",o=e==="assistant",i=e==="system",l=r(s?"chat.view.roleUser":o?"chat.view.brandName":"chat.view.roleDefault"),u=s?r("chat.view.roleUser").slice(0,1):o?r("chat.view.brandName").slice(0,1):e.slice(0,1).toUpperCase();return a.jsxs(Ee,{align:"center",justify:"space-between",gap:n.marginXS,style:{marginBottom:n.marginXS},children:[a.jsxs(Ee,{align:"center",gap:10,children:[a.jsx("div",{style:{width:30,height:30,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:700,letterSpacing:"0.3px",background:s?"var(--lotus-avatar-user-bg)":o?"var(--lotus-avatar-assistant-bg)":"var(--lotus-avatar-system-bg)",color:"white",boxShadow:s?"var(--lotus-avatar-user-shadow)":o?"var(--lotus-avatar-assistant-shadow)":"var(--lotus-avatar-system-shadow)",border:"var(--lotus-avatar-border)"},children:u}),a.jsxs(Ee,{vertical:!0,gap:0,children:[a.jsx(jc,{strong:!0,style:{fontSize:13,color:s?"var(--lotus-primary)":n.colorText,letterSpacing:"0.2px",lineHeight:1.1},children:l}),a.jsx(jc,{type:"secondary",style:{fontSize:11,lineHeight:1.1},children:r(s?"chat.view.subTitleUser":o?"chat.view.roleAssistant":i?"chat.view.roleSystem":"chat.view.roleDefault")})]})]}),t&&a.jsx(jc,{type:"secondary",style:{fontSize:11,whiteSpace:"nowrap",opacity:.92,padding:"4px 8px",borderRadius:999,background:"var(--lotus-timestamp-bg)",border:"1px solid var(--lotus-timestamp-border)"},children:t})]})},Ed=e=>{if(e.includes("```json")){const t=e.indexOf("```json")+7,n=e.indexOf("```",t);if(n>t)return e.substring(t,n).trim()}else if(e.includes("{")){const t=e.indexOf("{"),n=e.lastIndexOf("}");if(n>t)return e.substring(t,n+1).trim()}return null},HM=e=>e==="text"||e==="plan"||e==="question"||e==="tool_call"||e==="tool_result",YM=(e,t)=>{if(t)return t;if("message_type"in e&&e.message_type){const n=e.message_type;if(HM(n))return n}if(e.role==="assistant"&&e.type==="text"){const n=typeof e.content=="string"?e.content:"";try{const r=Ed(n);if(r){const s=JSON.parse(r);if(s.goal&&s.steps&&Array.isArray(s.steps))return"plan";if(s.type==="question"&&s.question)return"question"}}catch{return"text"}}return"text"},XM=(e,t)=>{if(t!=="plan"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=Ed(n);if(r){const s=JSON.parse(r);if(s.goal&&s.steps)return{goal:s.goal,steps:s.steps.map(o=>({step_number:o.step_number||o.stepNumber||0,action:o.action||"",reason:o.reason||o.rationale||"",tools_needed:o.tools_needed||o.tools||[],estimated_time:o.estimated_time||o.estimatedTime||""})),estimated_total_time:s.estimated_total_time||s.estimatedTotalTime||"",risks:s.risks||[],prerequisites:s.prerequisites||[]}}}catch(r){console.error("Failed to parse plan:",r)}return null},KM=(e,t)=>{if(t!=="question"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=Ed(n);if(r){const s=JSON.parse(r);if(s.type==="question"&&s.question)return{type:"question",question:s.question,context:s.context||"",severity:s.severity||"minor",options:s.options||[],default:s.default,allow_custom:s.allow_custom||!1}}}catch(r){console.error("Failed to parse question:",r)}return null},Zy=e=>{if(e.role==="system")return typeof e.content=="string"?e.content:"";if(e.role==="user")return"type"in e&&e.type==="file_reference"?"":typeof e.content=="string"?e.content:"";if(e.role==="assistant"){if(e.type==="text")return typeof e.content=="string"?e.content:"";if(e.type==="tool_result")return(e.toolName??"").trim().toLowerCase()==="conclusion"?gy(e.result.result)??e.result.result:`Tool ${e.toolName} Result: ${e.result.result}`;if(e.type==="tool_call")return`Requesting to call ${e.toolCalls.map(t=>t.toolName).join(", ")}`;if(e.type==="workflow_result")return e.content}return""},VM=e=>{if(!e.startsWith("/"))return e;const t=e.split(" "),n=t[0].substring(1),r=t.slice(1).join(" ");if(n.startsWith("mcp__")){const o=n.slice(5),i=o.indexOf("__");if(i>0){const l=o.slice(0,i),u=o.slice(i+2);if(l&&u)return`🔌 MCP ${l}/${u}: ${r}`}}return`🔧 ${n.replace(/_/g," ").replace(/\b\w/g,o=>o.toUpperCase())}: ${r}`},ip=e=>e.map(t=>({name:t.name,extensions:[...t.extensions]})),ap=e=>e.trim().slice(0,64).replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-")||"message",GM={},JM='[data-mermaid-loading="true"]';class eb{static async exportMessageText(t){const{format:n,content:r,sessionId:s=null,messageId:o=null,filenamePrefix:i}=t,l=i||["chat-message",s?ap(s.slice(0,8)):null,o?ap(o.slice(0,8)):null].filter(Boolean).join("-"),u=n==="markdown"?yr.generateTimestampedFilename(l,"md"):yr.generateTimestampedFilename(l,"pdf");if(n==="markdown"){const f=await yr.saveTextFile(r,ip(yr.FILTERS.MARKDOWN),u);return f.success?{success:!0,filename:f.filename}:{success:!1,error:f.error}}try{const f=await this.generatePdfFromText(r),h=await yr.saveBinaryFile(f,ip(yr.FILTERS.PDF),u);return h.success?{success:!0,filename:h.filename}:{success:!1,error:h.error}}catch(f){return{success:!1,error:f instanceof Error?f.message:xt.t("chat.messageActions.exportFailed")}}}static async generatePdfFromText(t){if(typeof document>"u")throw new Error(xt.t("chat.messageActions.pdfUnavailable"));const n=(await Jt(async()=>{const{default:v}=await import("./vendor-pdf-DB-djSmA.js").then(w=>w.h);return{default:v}},__vite__mapDeps([15,4,3,2]),import.meta.url)).default,{jsPDF:r}=await Jt(async()=>{const{jsPDF:v}=await import("./vendor-pdf-DB-djSmA.js").then(w=>w.j);return{jsPDF:v}},__vite__mapDeps([15,4,3,2]),import.meta.url),{createRoot:s}=await Jt(async()=>{const{createRoot:v}=await import("./main-BEVjNwcv.js").then(w=>w.c);return{createRoot:v}},__vite__mapDeps([5,4,3,2,1,6]),import.meta.url),{flushSync:o}=await Jt(async()=>{const{flushSync:v}=await import("./vendor-antd-C8lKwvI6.js").then(w=>w.R);return{flushSync:v}},__vite__mapDeps([3,2]),import.meta.url),i=Vy(GM,{mermaidRenderMode:"eager"}),l=document.createElement("div");l.style.position="fixed",l.style.left="0",l.style.top="0",l.style.right="0",l.style.bottom="0",l.style.zIndex="2147483647",l.style.background="rgba(0,0,0,0.15)",l.style.display="flex",l.style.alignItems="center",l.style.justifyContent="center",l.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",l.style.fontSize="14px",l.style.color="#111";const u=document.createElement("div");u.style.background="#fff",u.style.border="1px solid rgba(0,0,0,0.12)",u.style.borderRadius="10px",u.style.padding="12px 14px",u.style.boxShadow="0 8px 24px rgba(0,0,0,0.12)",u.textContent=xt.t("chat.messageActions.exportingPdf"),l.appendChild(u);const f=document.createElement("div");f.style.position="fixed",f.style.left="0",f.style.top="0",f.style.zIndex="2147483646",f.style.pointerEvents="none",f.style.width="794px",f.style.background="#fff",f.style.color="#111",f.style.padding="24px",f.style.boxSizing="border-box",f.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",f.style.fontSize="14px",f.style.lineHeight="1.35";const h=document.createElement("style");h.textContent=`
|
|
180
|
+
`),he=Ae.isJson?"json":"text",fe="result")}const ue=N.info.status==="process"?o("components.toolSteps.running"):((le=N.metadata)==null?void 0:le.elapsed_ms)!=null?op(N.metadata.elapsed_ms):void 0;return{key:N.key,title:a.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:i.marginXS},children:q?a.jsxs(a.Fragment,{children:[a.jsx(Je,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:6,fontWeight:700,fontSize:i.fontSizeSM-1,lineHeight:"18px"},children:"MCP"}),a.jsx($r,{strong:!0,style:{fontSize:i.fontSizeSM},children:q.toolName})]}):a.jsx($r,{strong:!0,style:{fontSize:i.fontSizeSM},children:N.toolName})}),subTitle:ue?a.jsx($r,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:ue}):void 0,description:a.jsxs("div",{style:{minWidth:0},children:[a.jsx($r,{ellipsis:!0,style:{fontSize:i.fontSizeSM,display:"block",maxWidth:"100%"},children:Q}),a.jsx("div",{style:{marginTop:i.marginXXS,display:"flex",gap:i.marginXS,alignItems:"center"},children:a.jsx(je,{type:"link",size:"small",icon:a.jsx(od,{}),style:{padding:0,height:"auto",fontSize:i.fontSizeSM},"data-testid":`tool-step-details-${N.key}`,onClick:()=>k(N,Z?"diff":"preview"),children:o("components.toolSteps.details")})}),oe&&!Z&&a.jsx($r,{type:"secondary",style:{display:"block",marginTop:i.marginXS,fontSize:i.fontSizeSM-1},children:oe}),Z&&pe&&a.jsx("div",{style:{marginTop:i.marginXS,padding:i.paddingXS,borderRadius:i.borderRadiusSM,background:i.colorFillTertiary,border:`1px solid ${i.colorBorderSecondary}`},"data-testid":`tool-step-file-change-${N.key}`,children:a.jsxs("div",{style:{display:"grid",gap:i.marginXXS??2},children:[a.jsx($r,{strong:!0,style:{fontSize:i.fontSizeSM},ellipsis:{tooltip:me},children:me}),a.jsx($r,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:o("components.toolSteps.fileChangeStats",{added:pe.added,removed:pe.removed,defaultValue:`Added ${pe.added} lines, removed ${pe.removed} lines`})}),a.jsx(qi,{payload:Z,compact:!0,showHeader:!1,showViewToggle:!1,defaultViewMode:"unified",maxHeight:FE,unifiedLinesOverride:$??void 0}),a.jsx(je,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>k(N,"diff"),children:o("components.toolSteps.viewFullDiff",{defaultValue:"View full diff"})})]})}),ne&&a.jsxs("div",{style:{marginTop:i.marginXS},children:[a.jsx(yi,{value:ne,mode:he,className:"lotus-tool-step-preview",compact:!0,maxHeight:72,scrollable:!1,backgroundColor:"transparent"}),a.jsx(je,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>k(N,fe==="result"?"result":"preview"),children:fe==="result"?o("components.toolSteps.viewFullResult",{defaultValue:"View full result"}):o("components.toolSteps.viewFullOutput")})]})]}),status:N.info.status,icon:N.info.icon}}),[d,i,o]),F=s?{background:"transparent"}:{background:"var(--lotus-tool-card-bg)",borderColor:"var(--lotus-tool-card-border)",borderWidth:1,borderStyle:"solid",borderRadius:i.borderRadiusLG,overflow:"hidden"};return a.jsxs("div",{className:"lotus-tool-steps",style:F,children:[!s&&a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:i.marginSM,padding:`${i.paddingSM}px ${i.paddingSM}px`,cursor:"pointer",userSelect:"none"},onClick:()=>u(N=>!N),"data-testid":"tool-steps-header",children:[a.jsx("span",{style:{flexShrink:0},children:l?a.jsx(gs,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}}):a.jsx(Wr,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}})}),a.jsxs($r,{strong:!0,style:{fontSize:i.fontSizeSM},children:["🛠 ",O]})]}),(s||l)&&a.jsx("div",{style:{padding:s?`${i.paddingXS}px 0 0 0`:`${i.paddingXS}px ${i.paddingSM}px ${i.paddingSM}px`},children:a.jsx(yg,{direction:"vertical",size:"small",current:T,status:j?"error":"process",items:D})}),b&&a.jsx(LE,{open:h,onClose:P,call:{toolCallId:b.key,toolName:b.toolName,parameters:b.parameters,streamingOutput:b.streamingOutput},metadata:b.metadata,initialTab:w,result:b.result})]})},Pd=y.memo(BE);Pd.displayName="ToolStepsCard";const{Text:Ec}=ft,zE=({content:e,workflowName:t,parameters:n,status:r="success",timestamp:s,onRetry:o,isLoading:i,errorMessage:l})=>{const{t:u}=Ge(),{token:d}=ut.useToken(),[h,m]=y.useState(!1),b=y.useMemo(()=>Zs(e),[e]),v=y.useMemo(()=>typeof i=="boolean"?i:b.formattedText.trim().length===0,[b.formattedText,i]),w=y.useMemo(()=>xC(b.formattedText),[b.formattedText]),S=b.isJson||w,k=!S||h,P=y.useMemo(()=>wC(b.formattedText),[b.formattedText]),T=y.useMemo(()=>{if(n==null)return null;if(typeof n=="string")return Zs(n);try{return{isJson:!0,formattedText:JSON.stringify(n,null,2),parsedJson:n}}catch(E){return console.error("[WorkflowResultCard] Failed to stringify parameters:",E),{isJson:!1,formattedText:String(n)}}},[n]),j=async()=>{try{const E=b.isJson?hs(b.parsedJson):b.formattedText;await Pr(E)}catch(E){console.error("[WorkflowResultCard] Failed to copy content:",E)}},C=async()=>{if(T)try{const E=T.isJson?hs(T.parsedJson):T.formattedText;await Pr(E)}catch(E){console.error("[WorkflowResultCard] Failed to copy parameters:",E)}};return a.jsx(nn,{size:"small",variant:"outlined",style:{borderRadius:d.borderRadiusLG,borderColor:d.colorBorderSecondary,backgroundColor:d.colorBgContainer},styles:{body:{padding:d.paddingMD}},children:a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:d.marginSM,children:[a.jsxs(Me,{align:"center",justify:"space-between",children:[a.jsxs(Ue,{size:d.marginXS,align:"center",children:[a.jsx(QS,{style:{color:d.colorWarning}}),a.jsx(Ec,{strong:!0,children:u("components.workflowResult.userWorkflow")}),a.jsx(Je,{color:d.colorWarning,children:t}),a.jsx(Je,{color:Sy(r),children:r})]}),a.jsxs(Ue,{size:"small",children:[a.jsx(xn,{title:u(h?"components.workflowResult.collapseResult":"components.workflowResult.expandResult"),children:S&&a.jsx(je,{type:"text",size:"small",icon:h?a.jsx(ZS,{}):a.jsx(ex,{}),onClick:()=>m(E=>!E)})}),a.jsx(xn,{title:u("components.workflowResult.copyResult"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),onClick:j,"aria-label":u("components.workflowResult.copyContent")})}),o&&a.jsx(xn,{title:u("components.workflowResult.retryWorkflow"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(rd,{}),onClick:o,"aria-label":u("components.workflowResult.retryWorkflow")})})]})]}),s&&a.jsx(Ec,{type:"secondary",style:{fontSize:d.fontSizeSM},children:new Date(s).toLocaleString()}),a.jsx(cl,{style:{margin:`${d.marginXS}px 0`}}),l&&a.jsx(ir,{type:"error",message:u("components.workflowResult.executionFailed"),description:l,showIcon:!0,style:{marginBottom:d.marginXS}}),a.jsx(Me,{vertical:!0,style:{width:"100%"},children:v?a.jsx(Gs,{tip:u("components.workflowResult.waitingForResult")}):b.isJson?a.jsx(al,{language:"json",style:Yi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:k?"none":280,overflow:k?"auto":"hidden"},children:b.formattedText}):a.jsxs("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,maxHeight:k?"none":280,overflow:k?"visible":"hidden",marginBottom:0},children:[k?b.formattedText:P.preview,!k&&P.isTruncated&&`
|
|
181
|
+
…`]})}),T&&a.jsxs(Me,{vertical:!0,style:{width:"100%"},children:[a.jsx(cl,{style:{margin:`${d.marginXS}px 0`},children:a.jsxs(Ue,{size:"small",children:[a.jsx(Ec,{strong:!0,children:u("common.parameters")}),a.jsx(xn,{title:u("components.workflowResult.copyParameters"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),onClick:C,"aria-label":u("components.workflowResult.copyParameters")})})]})}),T.isJson?a.jsx(al,{language:"json",style:Yi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:220,overflow:"auto"},children:T.formattedText}):a.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,marginBottom:0},children:T.formattedText})]})]})})},Zy=y.memo(zE);Zy.displayName="WorkflowResultCard";const WE=e=>Array.isArray(e)?e.map(t=>String(t??"")):[],UE=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s})=>JSON.stringify({sessionId:e??null,question:t??"",options:WE(n),allowCustom:r??!0,toolCallId:s??null}),{Text:jc}=ft,qE=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s,conclusionMarkdown:o,markdownComponents:i,markdownPlugins:l,rehypePlugins:u})=>{const{t:d}=Ge(),[h,m]=y.useState(null),b=y.useMemo(()=>UE({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s}),[e,t,n,r,s]),v=h===b;return y.useEffect(()=>{if(typeof window>"u")return;const w=S=>{var T;const P=((T=S.detail)==null?void 0:T.sessionId)??null;!e||P!==e||m(b)};return window.addEventListener(wu,w),()=>{window.removeEventListener(wu,w)}},[e,b]),a.jsxs(Ue,{direction:"vertical",size:"middle",style:{width:"100%"},children:[o?a.jsx(vr,{remarkPlugins:l,rehypePlugins:u,components:i,children:o}):null,a.jsxs("div",{children:[a.jsx(jc,{strong:!0,children:d("components.questionDialog.questionLabel","Question")}),a.jsx("div",{style:{marginTop:8},children:a.jsx(vr,{remarkPlugins:l,rehypePlugins:u,components:i,children:t})})]}),v?a.jsx(jc,{type:"secondary",children:d("components.questionDialog.responseSubmittedContinue","Response submitted. Continuing...")}):a.jsx(jc,{type:"secondary",children:r?d("components.questionDialog.responseInInputHint","Use the options or input box below to respond."):d("components.questionDialog.responseByOptionHint","Please respond using the options below the input box.")})]})},{Text:rr}=ft,HE=e=>{var o;if(!e)return{cleanText:e,hints:[]};const t=e.split(`
|
|
182
|
+
`),n=[],r=[];for(const i of t){const l=i.trim(),u=l.match(/^\[User explicitly selected MCP tool:\s*(.+?)\s*\]$/);if(u){const h=u[1]??"",m=to(h);n.push({type:"mcp",label:h,serverId:m==null?void 0:m.serverId,toolName:m==null?void 0:m.toolName});continue}const d=l.match(/^\[User explicitly selected skill:\s*(.+?)\s*\]$/);if(d){const h=d[1]??"",m=h.match(/\(ID:\s*([^)]+)\)\s*$/i),b=(o=m==null?void 0:m[1])==null?void 0:o.trim(),v=m?h.replace(/\(ID:\s*([^)]+)\)\s*$/i,"").trim():h;n.push({type:"skill",label:v||h,skillId:b});continue}r.push(i)}return{cleanText:r.join(`
|
|
183
|
+
`).trimStart(),hints:n}},YE=({sessionId:e,message:t,messageText:n,isUserToolCall:r,formatUserToolCall:s,markdownComponents:o,markdownPlugins:i,rehypePlugins:l})=>{var w;const{t:u}=Ge(),d=S=>(S??"").trim().toLowerCase()==="conclusion";if(My(t)){const S=t.result.result??"",k=t.isError?S||u("components.toolResult.executionFailed"):void 0,P=!k&&S.trim().length===0;if(t.result.display_preference==="Hidden")return null;const T=(t.toolName??"").trim().toLowerCase(),j=T==="conclusion",C=gC(S),E=(T==="conclusion_with_options"||T==="exitplanmode"||T==="request_permissions")&&!t.isError&&C,A=T==="conclusion"?gy(S):null;return E&&C?a.jsx(qE,{sessionId:e,question:C.question,options:C.options,allowCustom:C.allow_custom,toolCallId:t.toolCallId,conclusionMarkdown:yC(C.conclusion),markdownComponents:o,markdownPlugins:i,rehypePlugins:l}):A?a.jsx(Ue,{direction:"vertical",style:{width:"100%"},size:"small",children:a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:A})}):a.jsx(Jy,{content:S,toolName:t.toolName,status:t.isError?"error":P?"warning":"success",timestamp:t.createdAt,defaultCollapsed:!j,isLoading:P,errorMessage:k})}if(OP(t)){const S=t.content??"",k=t.status==="error"?S||u("components.workflowResult.executionFailed"):void 0,P=!k&&S.trim().length===0;return a.jsx(Zy,{content:S,workflowName:t.workflowName,parameters:t.parameters,status:P?"warning":t.status??"success",timestamp:t.createdAt,isLoading:P,errorMessage:k})}if(IP(t)){const S=t.toolCalls.filter(k=>!d(k.toolName));return S.length===0?null:a.jsx(Pd,{toolCalls:S,metadata:t.metadata,defaultExpanded:!1})}if(t.isAuthError)return a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:"middle",children:[a.jsx(ir,{message:u("chat.messageCard.authRequired"),description:a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:n}),type:"error",showIcon:!0}),a.jsx(je,{type:"primary",icon:a.jsx(Tl,{}),onClick:()=>{window.location.hash="/settings"},children:u("chat.messageCard.goToSettings")})]});const{cleanText:h,hints:m}=t.role==="user"?HE(n):{cleanText:n,hints:[]},b=t.role==="assistant"&&"type"in t&&t.type==="text"&&"metadata"in t&&typeof((w=t.metadata)==null?void 0:w.reasoning)=="string"?t.metadata.reasoning:"",v=b.trim().length>0;return t.role==="assistant"&&!n&&!v?a.jsx(rr,{italic:!0,children:u("chat.messageCard.assistantThinking")}):a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:"small",children:[v?a.jsx(eo,{size:"small",defaultActiveKey:["reasoning"],items:[{key:"reasoning",label:a.jsx(rr,{strong:!0,children:u("chat.messageCard.reasoning")}),children:a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:b})}]}):null,m.map((S,k)=>S.type==="mcp"?a.jsx(ir,{type:"info",showIcon:!1,message:a.jsxs(Ue,{wrap:!0,size:"small",children:[a.jsx(Je,{color:"purple",children:"MCP"}),a.jsx(rr,{strong:!0,children:u("chat.messageCard.selectedTool")}),S.serverId&&a.jsx(rr,{type:"secondary",children:a.jsx(rr,{code:!0,children:S.serverId})}),S.toolName&&a.jsx(rr,{type:"secondary",children:a.jsx(rr,{code:!0,children:S.toolName})})]}),style:{marginBottom:0}},`hint-mcp-${k}`):a.jsx(ir,{type:"success",showIcon:!1,message:a.jsxs(Ue,{wrap:!0,size:"small",children:[a.jsx(Je,{color:"success",children:"Skill"}),a.jsx(rr,{strong:!0,children:u("chat.messageCard.selected")}),S.label&&a.jsx(rr,{children:S.label}),S.skillId&&a.jsx(rr,{type:"secondary",children:a.jsx(rr,{code:!0,children:S.skillId})})]}),style:{marginBottom:0}},`hint-skill-${k}`)),h?a.jsx(vr,{remarkPlugins:i,rehypePlugins:l,components:o,children:r?s(h):h}):null]})},XE=y.memo(YE),{Text:Rc}=ft,KE=({role:e,formattedTimestamp:t,token:n})=>{const{t:r}=Ge(),s=e==="user",o=e==="assistant",i=e==="system",l=r(s?"chat.view.roleUser":o?"chat.view.brandName":"chat.view.roleDefault"),u=s?r("chat.view.roleUser").slice(0,1):o?r("chat.view.brandName").slice(0,1):e.slice(0,1).toUpperCase();return a.jsxs(Me,{align:"center",justify:"space-between",gap:n.marginXS,style:{marginBottom:n.marginXS},children:[a.jsxs(Me,{align:"center",gap:10,children:[a.jsx("div",{style:{width:30,height:30,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:700,letterSpacing:"0.3px",background:s?"var(--lotus-avatar-user-bg)":o?"var(--lotus-avatar-assistant-bg)":"var(--lotus-avatar-system-bg)",color:"white",boxShadow:s?"var(--lotus-avatar-user-shadow)":o?"var(--lotus-avatar-assistant-shadow)":"var(--lotus-avatar-system-shadow)",border:"var(--lotus-avatar-border)"},children:u}),a.jsxs(Me,{vertical:!0,gap:0,children:[a.jsx(Rc,{strong:!0,style:{fontSize:13,color:s?"var(--lotus-primary)":n.colorText,letterSpacing:"0.2px",lineHeight:1.1},children:l}),a.jsx(Rc,{type:"secondary",style:{fontSize:11,lineHeight:1.1},children:r(s?"chat.view.subTitleUser":o?"chat.view.roleAssistant":i?"chat.view.roleSystem":"chat.view.roleDefault")})]})]}),t&&a.jsx(Rc,{type:"secondary",style:{fontSize:11,whiteSpace:"nowrap",opacity:.92,padding:"4px 8px",borderRadius:999,background:"var(--lotus-timestamp-bg)",border:"1px solid var(--lotus-timestamp-border)"},children:t})]})},Md=e=>{if(e.includes("```json")){const t=e.indexOf("```json")+7,n=e.indexOf("```",t);if(n>t)return e.substring(t,n).trim()}else if(e.includes("{")){const t=e.indexOf("{"),n=e.lastIndexOf("}");if(n>t)return e.substring(t,n+1).trim()}return null},VE=e=>e==="text"||e==="plan"||e==="question"||e==="tool_call"||e==="tool_result",GE=(e,t)=>{if(t)return t;if("message_type"in e&&e.message_type){const n=e.message_type;if(VE(n))return n}if(e.role==="assistant"&&e.type==="text"){const n=typeof e.content=="string"?e.content:"";try{const r=Md(n);if(r){const s=JSON.parse(r);if(s.goal&&s.steps&&Array.isArray(s.steps))return"plan";if(s.type==="question"&&s.question)return"question"}}catch{return"text"}}return"text"},JE=(e,t)=>{if(t!=="plan"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=Md(n);if(r){const s=JSON.parse(r);if(s.goal&&s.steps)return{goal:s.goal,steps:s.steps.map(o=>({step_number:o.step_number||o.stepNumber||0,action:o.action||"",reason:o.reason||o.rationale||"",tools_needed:o.tools_needed||o.tools||[],estimated_time:o.estimated_time||o.estimatedTime||""})),estimated_total_time:s.estimated_total_time||s.estimatedTotalTime||"",risks:s.risks||[],prerequisites:s.prerequisites||[]}}}catch(r){console.error("Failed to parse plan:",r)}return null},QE=(e,t)=>{if(t!=="question"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=Md(n);if(r){const s=JSON.parse(r);if(s.type==="question"&&s.question)return{type:"question",question:s.question,context:s.context||"",severity:s.severity||"minor",options:s.options||[],default:s.default,allow_custom:s.allow_custom||!1}}}catch(r){console.error("Failed to parse question:",r)}return null},eb=e=>{if(e.role==="system")return typeof e.content=="string"?e.content:"";if(e.role==="user")return"type"in e&&e.type==="file_reference"?"":typeof e.content=="string"?e.content:"";if(e.role==="assistant"){if(e.type==="text")return typeof e.content=="string"?e.content:"";if(e.type==="tool_result")return(e.toolName??"").trim().toLowerCase()==="conclusion"?gy(e.result.result)??e.result.result:`Tool ${e.toolName} Result: ${e.result.result}`;if(e.type==="tool_call")return`Requesting to call ${e.toolCalls.map(t=>t.toolName).join(", ")}`;if(e.type==="workflow_result")return e.content}return""},ZE=e=>{if(!e.startsWith("/"))return e;const t=e.split(" "),n=t[0].substring(1),r=t.slice(1).join(" ");if(n.startsWith("mcp__")){const o=n.slice(5),i=o.indexOf("__");if(i>0){const l=o.slice(0,i),u=o.slice(i+2);if(l&&u)return`🔌 MCP ${l}/${u}: ${r}`}}return`🔧 ${n.replace(/_/g," ").replace(/\b\w/g,o=>o.toUpperCase())}: ${r}`},ip=e=>e.map(t=>({name:t.name,extensions:[...t.extensions]})),ap=e=>e.trim().slice(0,64).replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-")||"message",ej={},tj='[data-mermaid-loading="true"]';class tb{static async exportMessageText(t){const{format:n,content:r,sessionId:s=null,messageId:o=null,filenamePrefix:i}=t,l=i||["chat-message",s?ap(s.slice(0,8)):null,o?ap(o.slice(0,8)):null].filter(Boolean).join("-"),u=n==="markdown"?yr.generateTimestampedFilename(l,"md"):yr.generateTimestampedFilename(l,"pdf");if(n==="markdown"){const d=await yr.saveTextFile(r,ip(yr.FILTERS.MARKDOWN),u);return d.success?{success:!0,filename:d.filename}:{success:!1,error:d.error}}try{const d=await this.generatePdfFromText(r),h=await yr.saveBinaryFile(d,ip(yr.FILTERS.PDF),u);return h.success?{success:!0,filename:h.filename}:{success:!1,error:h.error}}catch(d){return{success:!1,error:d instanceof Error?d.message:xt.t("chat.messageActions.exportFailed")}}}static async generatePdfFromText(t){if(typeof document>"u")throw new Error(xt.t("chat.messageActions.pdfUnavailable"));const n=(await Jt(async()=>{const{default:v}=await import("./vendor-pdf-DB-djSmA.js").then(w=>w.h);return{default:v}},__vite__mapDeps([15,4,3,2]),import.meta.url)).default,{jsPDF:r}=await Jt(async()=>{const{jsPDF:v}=await import("./vendor-pdf-DB-djSmA.js").then(w=>w.j);return{jsPDF:v}},__vite__mapDeps([15,4,3,2]),import.meta.url),{createRoot:s}=await Jt(async()=>{const{createRoot:v}=await import("./main-C-I4C72U.js").then(w=>w.c);return{createRoot:v}},__vite__mapDeps([5,4,3,2,1,6]),import.meta.url),{flushSync:o}=await Jt(async()=>{const{flushSync:v}=await import("./vendor-antd-C8lKwvI6.js").then(w=>w.R);return{flushSync:v}},__vite__mapDeps([3,2]),import.meta.url),i=Gy(ej,{mermaidRenderMode:"eager"}),l=document.createElement("div");l.style.position="fixed",l.style.left="0",l.style.top="0",l.style.right="0",l.style.bottom="0",l.style.zIndex="2147483647",l.style.background="rgba(0,0,0,0.15)",l.style.display="flex",l.style.alignItems="center",l.style.justifyContent="center",l.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",l.style.fontSize="14px",l.style.color="#111";const u=document.createElement("div");u.style.background="#fff",u.style.border="1px solid rgba(0,0,0,0.12)",u.style.borderRadius="10px",u.style.padding="12px 14px",u.style.boxShadow="0 8px 24px rgba(0,0,0,0.12)",u.textContent=xt.t("chat.messageActions.exportingPdf"),l.appendChild(u);const d=document.createElement("div");d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.zIndex="2147483646",d.style.pointerEvents="none",d.style.width="794px",d.style.background="#fff",d.style.color="#111",d.style.padding="24px",d.style.boxSizing="border-box",d.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",d.style.fontSize="14px",d.style.lineHeight="1.35";const h=document.createElement("style");h.textContent=`
|
|
184
184
|
.md-export { color: #111; }
|
|
185
185
|
.md-export h1 { font-size: 24px; margin: 0 0 16px; }
|
|
186
186
|
.md-export h2 { font-size: 18px; margin: 18px 0 12px; }
|
|
187
187
|
.md-export h3 { font-size: 16px; margin: 14px 0 10px; }
|
|
188
188
|
.md-export [data-mermaid-controls="true"] { display: none !important; }
|
|
189
|
-
`,
|
|
190
|
-
> `)}`,[]),v=y.useCallback(()=>{if(!n)return;const P=b(f||e),T=new CustomEvent("reference-text",{detail:{text:P,sessionId:n}});window.dispatchEvent(T)},[b,n,e,f]),w=y.useCallback(async P=>{var C;const T=f||e;if(!T){l.warning(u("chat.messageActions.nothingToExport"));return}const M=await eb.exportMessageText({format:P,content:T,sessionId:n??null,messageId:t??null});if(M.success)l.success(u("chat.messageActions.savedFile",{filename:M.filename}));else{if((C=M.error)!=null&&C.toLowerCase().includes("cancel"))return;l.error(M.error||u("chat.messageActions.exportFailed"))}},[l,n,t,e,f,u]),S=y.useCallback(P=>{P.preventDefault(),P.stopPropagation();const T=window.getSelection(),M=T?T.toString():"";M&&i.current&&T&&i.current.contains(T.anchorNode)?h(M):h("")},[i]);return{contextMenuItems:y.useMemo(()=>{const P=[...s&&o&&n&&t?[{key:"restore-chat",label:u("chat.messageActions.restoreChat"),icon:a.jsx(ex,{}),onClick:()=>{s()}},{key:"restore-chat-files",label:u("chat.messageActions.restoreFilesAndChat"),icon:a.jsx(tx,{}),onClick:()=>{o()}},{type:"divider"}]:[],{key:"copy",label:u("chat.messageActions.copy"),icon:a.jsx(Tr,{}),onClick:()=>{m(f||e)}},{key:"reference",label:u("chat.actions.referenceMessage"),icon:a.jsx(gg,{}),onClick:v},{type:"divider"},{key:"export-md",label:u("chat.messageActions.exportMarkdown"),icon:a.jsx(Ks,{}),onClick:()=>w("markdown")},{key:"export-pdf",label:u("chat.messageActions.exportPdf"),icon:a.jsx(Ks,{}),onClick:()=>w("pdf")}];return r&&t&&P.push({key:"delete",label:u("chat.messageActions.deleteMessage"),icon:a.jsx(kl,{}),onClick:()=>r(t),danger:!0}),P},[m,w,t,e,r,s,o,v,f,n,u]),handleMouseUp:S,copyToClipboard:m,referenceMessage:v}},ZM=({currentSessionId:e,updateSession:t,sendMessage:n})=>{const r=y.useCallback(async()=>{if(!e)return;const l=ae.getState().chats.find(u=>u.id===e);if(l)try{t(e,{config:{...l.config,agentRole:"actor"}})}catch(u){console.error("Failed to switch to Actor role:",u)}},[e,t]),s=y.useCallback(async i=>{if(i.trim())try{await n(i.trim())}catch(l){console.error("Failed to send plan refinement:",l)}},[n]),o=y.useCallback(async i=>{if(i)try{await n(i)}catch(l){throw console.error("Failed to send answer:",l),l}},[n]);return{handleExecutePlan:r,handleRefinePlan:s,handleQuestionAnswer:o}};function Qe(e,t,n,r,s){if(typeof t=="function"?e!==t||!0:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,n),n}function re(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}let tb=function(){const{crypto:e}=globalThis;if(e!=null&&e.randomUUID)return tb=e.randomUUID.bind(e),e.randomUUID();const t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,r=>(+r^n()&15>>+r/4).toString(16))};function ju(e){return typeof e=="object"&&e!==null&&("name"in e&&e.name==="AbortError"||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}const Ru=e=>{if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){try{if(Object.prototype.toString.call(e)==="[object Error]"){const t=new Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return new Error(JSON.stringify(e))}catch{}}return new Error(e)};class Ze extends Error{}class wn extends Ze{constructor(t,n,r,s){super(`${wn.makeMessage(t,n,r)}`),this.status=t,this.headers=s,this.requestID=s==null?void 0:s.get("x-request-id"),this.error=n;const o=n;this.code=o==null?void 0:o.code,this.param=o==null?void 0:o.param,this.type=o==null?void 0:o.type}static makeMessage(t,n,r){const s=n!=null&&n.message?typeof n.message=="string"?n.message:JSON.stringify(n.message):n?JSON.stringify(n):r;return t&&s?`${t} ${s}`:t?`${t} status code (no body)`:s||"(no status code or body)"}static generate(t,n,r,s){if(!t||!s)return new $l({message:r,cause:Ru(n)});const o=n==null?void 0:n.error;return t===400?new nb(t,o,r,s):t===401?new rb(t,o,r,s):t===403?new sb(t,o,r,s):t===404?new ob(t,o,r,s):t===409?new ib(t,o,r,s):t===422?new ab(t,o,r,s):t===429?new lb(t,o,r,s):t>=500?new cb(t,o,r,s):new wn(t,o,r,s)}}class Gn extends wn{constructor({message:t}={}){super(void 0,void 0,t||"Request was aborted.",void 0)}}class $l extends wn{constructor({message:t,cause:n}){super(void 0,void 0,t||"Connection error.",void 0),n&&(this.cause=n)}}class Md extends $l{constructor({message:t}={}){super({message:t??"Request timed out."})}}class nb extends wn{}class rb extends wn{}class sb extends wn{}class ob extends wn{}class ib extends wn{}class ab extends wn{}class lb extends wn{}class cb extends wn{}class ub extends Ze{constructor(){super("Could not parse response content as the length limit was reached")}}class db extends Ze{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class yi extends Error{constructor(t){super(t)}}const ej=/^[a-z][a-z0-9+.-]*:/i,tj=e=>ej.test(e);let Ln=e=>(Ln=Array.isArray,Ln(e)),lp=Ln;function nj(e){return typeof e!="object"?{}:e??{}}function rj(e){if(!e)return!0;for(const t in e)return!1;return!0}function sj(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Rc(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}const oj=(e,t)=>{if(typeof t!="number"||!Number.isInteger(t))throw new Ze(`${e} must be an integer`);if(t<0)throw new Ze(`${e} must be a positive integer`);return t},ij=e=>{try{return JSON.parse(e)}catch{return}},Ji=e=>new Promise(t=>setTimeout(t,e)),Ds="5.10.2",aj=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function lj(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}const cj=()=>{var n;const e=lj();if(e==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ds,"X-Stainless-OS":up(Deno.build.os),"X-Stainless-Arch":cp(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:((n=Deno.version)==null?void 0:n.deno)??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ds,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(e==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ds,"X-Stainless-OS":up(globalThis.process.platform??"unknown"),"X-Stainless-Arch":cp(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const t=uj();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ds,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ds,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function uj(){if(typeof navigator>"u"||!navigator)return null;const e=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(const{key:t,pattern:n}of e){const r=n.exec(navigator.userAgent);if(r){const s=r[1]||0,o=r[2]||0,i=r[3]||0;return{browser:t,version:`${s}.${o}.${i}`}}}return null}const cp=e=>e==="x32"?"x32":e==="x86_64"||e==="x64"?"x64":e==="arm"?"arm":e==="aarch64"||e==="arm64"?"arm64":e?`other:${e}`:"unknown",up=e=>(e=e.toLowerCase(),e.includes("ios")?"iOS":e==="android"?"Android":e==="darwin"?"MacOS":e==="win32"?"Windows":e==="freebsd"?"FreeBSD":e==="openbsd"?"OpenBSD":e==="linux"?"Linux":e?`Other:${e}`:"Unknown");let dp;const dj=()=>dp??(dp=cj());function fj(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function fb(...e){const t=globalThis.ReadableStream;if(typeof t>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function hb(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return fb({start(){},async pull(n){const{done:r,value:s}=await t.next();r?n.close():n.enqueue(s)},async cancel(){var n;await((n=t.return)==null?void 0:n.call(t))}})}function pb(e){if(e[Symbol.asyncIterator])return e;const t=e.getReader();return{async next(){try{const n=await t.read();return n!=null&&n.done&&t.releaseLock(),n}catch(n){throw t.releaseLock(),n}},async return(){const n=t.cancel();return t.releaseLock(),await n,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function hj(e){var r,s;if(e===null||typeof e!="object")return;if(e[Symbol.asyncIterator]){await((s=(r=e[Symbol.asyncIterator]()).return)==null?void 0:s.call(r));return}const t=e.getReader(),n=t.cancel();t.releaseLock(),await n}const pj=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)}),mb="RFC3986",gb=e=>String(e),fp={RFC1738:e=>String(e).replace(/%20/g,"+"),RFC3986:gb},mj="RFC1738";let Au=(e,t)=>(Au=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),Au(e,t));const fr=(()=>{const e=[];for(let t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e})(),Ac=1024,gj=(e,t,n,r,s)=>{if(e.length===0)return e;let o=e;if(typeof e=="symbol"?o=Symbol.prototype.toString.call(e):typeof e!="string"&&(o=String(e)),n==="iso-8859-1")return escape(o).replace(/%u[0-9a-f]{4}/gi,function(l){return"%26%23"+parseInt(l.slice(2),16)+"%3B"});let i="";for(let l=0;l<o.length;l+=Ac){const u=o.length>=Ac?o.slice(l,l+Ac):o,f=[];for(let h=0;h<u.length;++h){let m=u.charCodeAt(h);if(m===45||m===46||m===95||m===126||m>=48&&m<=57||m>=65&&m<=90||m>=97&&m<=122||s===mj&&(m===40||m===41)){f[f.length]=u.charAt(h);continue}if(m<128){f[f.length]=fr[m];continue}if(m<2048){f[f.length]=fr[192|m>>6]+fr[128|m&63];continue}if(m<55296||m>=57344){f[f.length]=fr[224|m>>12]+fr[128|m>>6&63]+fr[128|m&63];continue}h+=1,m=65536+((m&1023)<<10|u.charCodeAt(h)&1023),f[f.length]=fr[240|m>>18]+fr[128|m>>12&63]+fr[128|m>>6&63]+fr[128|m&63]}i+=f.join("")}return i};function yj(e){return!e||typeof e!="object"?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function hp(e,t){if(Ln(e)){const n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}const yb={brackets(e){return String(e)+"[]"},comma:"comma",indices(e,t){return String(e)+"["+t+"]"},repeat(e){return String(e)}},bb=function(e,t){Array.prototype.push.apply(e,Ln(t)?t:[t])};let pp;const un={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:gj,encodeValuesOnly:!1,format:mb,formatter:gb,indices:!1,serializeDate(e){return(pp??(pp=Function.prototype.call.bind(Date.prototype.toISOString)))(e)},skipNulls:!1,strictNullHandling:!1};function bj(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"}const Ic={};function vb(e,t,n,r,s,o,i,l,u,f,h,m,b,v,w,S,k,P){let T=e,M=P,C=0,j=!1;for(;(M=M.get(Ic))!==void 0&&!j;){const N=M.get(e);if(C+=1,typeof N<"u"){if(N===C)throw new RangeError("Cyclic object value");j=!0}typeof M.get(Ic)>"u"&&(C=0)}if(typeof f=="function"?T=f(t,T):T instanceof Date?T=b==null?void 0:b(T):n==="comma"&&Ln(T)&&(T=hp(T,function(N){return N instanceof Date?b==null?void 0:b(N):N})),T===null){if(o)return u&&!S?u(t,un.encoder,k,"key",v):t;T=""}if(bj(T)||yj(T)){if(u){const N=S?t:u(t,un.encoder,k,"key",v);return[(w==null?void 0:w(N))+"="+(w==null?void 0:w(u(T,un.encoder,k,"value",v)))]}return[(w==null?void 0:w(t))+"="+(w==null?void 0:w(String(T)))]}const A=[];if(typeof T>"u")return A;let O;if(n==="comma"&&Ln(T))S&&u&&(T=hp(T,u)),O=[{value:T.length>0?T.join(",")||null:void 0}];else if(Ln(f))O=f;else{const N=Object.keys(T);O=h?N.sort(h):N}const F=l?String(t).replace(/\./g,"%2E"):String(t),D=r&&Ln(T)&&T.length===1?F+"[]":F;if(s&&Ln(T)&&T.length===0)return D+"[]";for(let N=0;N<O.length;++N){const q=O[N],I=typeof q=="object"&&typeof q.value<"u"?q.value:T[q];if(i&&I===null)continue;const Q=m&&l?q.replace(/\./g,"%2E"):q,G=Ln(T)?typeof n=="function"?n(D,Q):D:D+(m?"."+Q:"["+Q+"]");P.set(e,C);const Z=new WeakMap;Z.set(Ic,P),bb(A,vb(I,G,n,r,s,o,i,l,n==="comma"&&S&&Ln(T)?null:u,f,h,m,b,v,w,S,k,Z))}return A}function vj(e=un){if(typeof e.allowEmptyArrays<"u"&&typeof e.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof e.encodeDotInKeys<"u"&&typeof e.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(e.encoder!==null&&typeof e.encoder<"u"&&typeof e.encoder!="function")throw new TypeError("Encoder has to be a function.");const t=e.charset||un.charset;if(typeof e.charset<"u"&&e.charset!=="utf-8"&&e.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let n=mb;if(typeof e.format<"u"){if(!Au(fp,e.format))throw new TypeError("Unknown format option provided.");n=e.format}const r=fp[n];let s=un.filter;(typeof e.filter=="function"||Ln(e.filter))&&(s=e.filter);let o;if(e.arrayFormat&&e.arrayFormat in yb?o=e.arrayFormat:"indices"in e?o=e.indices?"indices":"repeat":o=un.arrayFormat,"commaRoundTrip"in e&&typeof e.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");const i=typeof e.allowDots>"u"?e.encodeDotInKeys?!0:un.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:un.addQueryPrefix,allowDots:i,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:un.allowEmptyArrays,arrayFormat:o,charset:t,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:un.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?un.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:un.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:un.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:un.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:un.encodeValuesOnly,filter:s,format:n,formatter:r,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:un.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:un.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:un.strictNullHandling}}function Sj(e,t={}){let n=e;const r=vj(t);let s,o;typeof r.filter=="function"?(o=r.filter,n=o("",n)):Ln(r.filter)&&(o=r.filter,s=o);const i=[];if(typeof n!="object"||n===null)return"";const l=yb[r.arrayFormat],u=l==="comma"&&r.commaRoundTrip;s||(s=Object.keys(n)),r.sort&&s.sort(r.sort);const f=new WeakMap;for(let b=0;b<s.length;++b){const v=s[b];r.skipNulls&&n[v]===null||bb(i,vb(n[v],v,l,u,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,f))}const h=i.join(r.delimiter);let m=r.addQueryPrefix===!0?"?":"";return r.charsetSentinel&&(r.charset==="iso-8859-1"?m+="utf8=%26%2310003%3B&":m+="utf8=%E2%9C%93&"),h.length>0?m+h:""}function xj(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let r=0;for(const s of e)n.set(s,r),r+=s.length;return n}let mp;function jd(e){let t;return(mp??(t=new globalThis.TextEncoder,mp=t.encode.bind(t)))(e)}let gp;function yp(e){let t;return(gp??(t=new globalThis.TextDecoder,gp=t.decode.bind(t)))(e)}var Wn,Un;class Ll{constructor(){Wn.set(this,void 0),Un.set(this,void 0),Qe(this,Wn,new Uint8Array),Qe(this,Un,null)}decode(t){if(t==null)return[];const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?jd(t):t;Qe(this,Wn,xj([re(this,Wn,"f"),n]));const r=[];let s;for(;(s=wj(re(this,Wn,"f"),re(this,Un,"f")))!=null;){if(s.carriage&&re(this,Un,"f")==null){Qe(this,Un,s.index);continue}if(re(this,Un,"f")!=null&&(s.index!==re(this,Un,"f")+1||s.carriage)){r.push(yp(re(this,Wn,"f").subarray(0,re(this,Un,"f")-1))),Qe(this,Wn,re(this,Wn,"f").subarray(re(this,Un,"f"))),Qe(this,Un,null);continue}const o=re(this,Un,"f")!==null?s.preceding-1:s.preceding,i=yp(re(this,Wn,"f").subarray(0,o));r.push(i),Qe(this,Wn,re(this,Wn,"f").subarray(s.index)),Qe(this,Un,null)}return r}flush(){return re(this,Wn,"f").length?this.decode(`
|
|
191
|
-
`):[]}}Wn=new WeakMap,Un=new WeakMap;
|
|
192
|
-
`,"\r"]);
|
|
193
|
-
`);r.enqueue(i)}catch(s){r.error(s)}},async cancel(){var r;await((r=n.return)==null?void 0:r.call(n))}})}}async function*
|
|
194
|
-
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],o}if(this.chunks.push(t),t.startsWith(":"))return null;let[n,r,s]=
|
|
189
|
+
`,d.appendChild(h);const m=document.createElement("div");m.className="md-export",d.appendChild(m),document.body.appendChild(d),document.body.appendChild(l);const b=s(m);o(()=>{b.render(ht.createElement(vr,{remarkPlugins:[Zu,ed],rehypePlugins:[Qu],components:i},t||""))});try{await this.waitForExportRenderReady(d);const v=await this.renderCanvasWithFallback(n,d),w=new r({unit:"pt",format:"a4",orientation:"portrait"}),S=w.internal.pageSize.getWidth(),k=w.internal.pageSize.getHeight(),P=24,T=S-P*2,j=k-P*2,C=v.width/T,E=Math.max(1,Math.floor(j*C));let A=0,O=0;for(;A<v.height;){const F=this.computeSmartSliceHeight(v,A,E),N=Math.max(1,Math.min(F,v.height-A)),q=document.createElement("canvas");q.width=v.width,q.height=N;const I=q.getContext("2d");if(!I)throw new Error("PDF render failed (no canvas context)");I.fillStyle="#ffffff",I.fillRect(0,0,q.width,q.height),I.drawImage(v,0,A,v.width,N,0,0,v.width,N);const Q=q.toDataURL("image/jpeg",.92),G=N/C;O>0&&w.addPage(),w.addImage(Q,"JPEG",P,P,T,G),A+=N,O+=1}const D=w.output("arraybuffer");return new Uint8Array(D)}finally{b.unmount(),l.remove(),d.remove()}}static async waitForExportRenderReady(t){var s,o,i;await new Promise(l=>requestAnimationFrame(()=>requestAnimationFrame(()=>l()))),await((i=(o=(s=document.fonts)==null?void 0:s.ready)==null?void 0:o.catch)==null?void 0:i.call(o,()=>{}));const n=Date.now(),r=6e3;for(;Date.now()-n<r;){if(!t.querySelector(tj)){await new Promise(u=>requestAnimationFrame(()=>u()));return}await new Promise(u=>setTimeout(u,50))}}static async renderCanvasWithFallback(t,n){const r={backgroundColor:"#ffffff",scale:2,useCORS:!0,allowTaint:!0};try{const o=await t(n,{...r,foreignObjectRendering:!0});if(o.width&&o.height)return o}catch(o){console.warn("PDF capture with foreignObjectRendering=true failed:",o)}const s=await t(n,{...r,foreignObjectRendering:!1});if(!s.width||!s.height)throw new Error("PDF render failed (empty canvas)");return s}static computeSmartSliceHeight(t,n,r){const s=t.height-n;if(s<=r)return s;const o=n+r,i=Math.max(1,Math.floor(r*.72)),l=Math.max(8,Math.floor(r*.12)),u=Math.max(n+i,o-l),d=Math.min(t.height-1,o+l),h=this.findWhitespaceBreakY(t,o,u,d);return h===null||h<=n?r:h-n}static findWhitespaceBreakY(t,n,r,s){if(r>s||t.width<=0)return null;try{const o=t.getContext("2d",{willReadFrequently:!0});if(!o||typeof o.getImageData!="function")return null;const i=s-r+1,l=o.getImageData(0,r,t.width,i).data,u=t.width*4,d=Math.max(1,Math.floor(t.width/320)),h=245,m=16,b=.03;let v=null,w=Number.POSITIVE_INFINITY,S=Number.POSITIVE_INFINITY;for(let k=0;k<i;k+=1){let P=0,T=0;const j=k*u;for(let D=0;D<t.width;D+=d){const F=j+D*4,N=l[F+3];if(T+=1,N<=m)continue;const q=l[F],I=l[F+1],Q=l[F+2];(q<h||I<h||Q<h)&&(P+=1)}if(T===0)continue;const C=P/T,E=r+k,A=Math.abs(E-n);(C<w||C===w&&A<S)&&(w=C,S=A,v=E)}return v===null||w>b?null:v}catch{return null}}}const nj=({messageText:e,messageId:t,currentSessionId:n,onDelete:r,onRestoreChat:s,onRestoreFilesAndChat:o,cardRef:i})=>{const{message:l}=Fn.useApp(),{t:u}=Ge(),[d,h]=y.useState(""),m=y.useCallback(async P=>{try{await Pr(P)}catch(T){console.error("Failed to copy text:",T)}},[]),b=y.useCallback(P=>`> ${P.replace(/\n/g,`
|
|
190
|
+
> `)}`,[]),v=y.useCallback(()=>{if(!n)return;const P=b(d||e),T=new CustomEvent("reference-text",{detail:{text:P,sessionId:n}});window.dispatchEvent(T)},[b,n,e,d]),w=y.useCallback(async P=>{var C;const T=d||e;if(!T){l.warning(u("chat.messageActions.nothingToExport"));return}const j=await tb.exportMessageText({format:P,content:T,sessionId:n??null,messageId:t??null});if(j.success)l.success(u("chat.messageActions.savedFile",{filename:j.filename}));else{if((C=j.error)!=null&&C.toLowerCase().includes("cancel"))return;l.error(j.error||u("chat.messageActions.exportFailed"))}},[l,n,t,e,d,u]),S=y.useCallback(P=>{P.preventDefault(),P.stopPropagation();const T=window.getSelection(),j=T?T.toString():"";j&&i.current&&T&&i.current.contains(T.anchorNode)?h(j):h("")},[i]);return{contextMenuItems:y.useMemo(()=>{const P=[...s&&o&&n&&t?[{key:"restore-chat",label:u("chat.messageActions.restoreChat"),icon:a.jsx(tx,{}),onClick:()=>{s()}},{key:"restore-chat-files",label:u("chat.messageActions.restoreFilesAndChat"),icon:a.jsx(nx,{}),onClick:()=>{o()}},{type:"divider"}]:[],{key:"copy",label:u("chat.messageActions.copy"),icon:a.jsx(Tr,{}),onClick:()=>{m(d||e)}},{key:"reference",label:u("chat.actions.referenceMessage"),icon:a.jsx(gg,{}),onClick:v},{type:"divider"},{key:"export-md",label:u("chat.messageActions.exportMarkdown"),icon:a.jsx(Vs,{}),onClick:()=>w("markdown")},{key:"export-pdf",label:u("chat.messageActions.exportPdf"),icon:a.jsx(Vs,{}),onClick:()=>w("pdf")}];return r&&t&&P.push({key:"delete",label:u("chat.messageActions.deleteMessage"),icon:a.jsx(Cl,{}),onClick:()=>r(t),danger:!0}),P},[m,w,t,e,r,s,o,v,d,n,u]),handleMouseUp:S,copyToClipboard:m,referenceMessage:v}},rj=({currentSessionId:e,updateSession:t,sendMessage:n})=>{const r=y.useCallback(async()=>{if(!e)return;const l=ae.getState().chats.find(u=>u.id===e);if(l)try{t(e,{config:{...l.config,agentRole:"actor"}})}catch(u){console.error("Failed to switch to Actor role:",u)}},[e,t]),s=y.useCallback(async i=>{if(i.trim())try{await n(i.trim())}catch(l){console.error("Failed to send plan refinement:",l)}},[n]),o=y.useCallback(async i=>{if(i)try{await n(i)}catch(l){throw console.error("Failed to send answer:",l),l}},[n]);return{handleExecutePlan:r,handleRefinePlan:s,handleQuestionAnswer:o}};function Qe(e,t,n,r,s){if(typeof t=="function"?e!==t||!0:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,n),n}function re(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}let nb=function(){const{crypto:e}=globalThis;if(e!=null&&e.randomUUID)return nb=e.randomUUID.bind(e),e.randomUUID();const t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,r=>(+r^n()&15>>+r/4).toString(16))};function Ru(e){return typeof e=="object"&&e!==null&&("name"in e&&e.name==="AbortError"||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}const Au=e=>{if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){try{if(Object.prototype.toString.call(e)==="[object Error]"){const t=new Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return new Error(JSON.stringify(e))}catch{}}return new Error(e)};class Ze extends Error{}class wn extends Ze{constructor(t,n,r,s){super(`${wn.makeMessage(t,n,r)}`),this.status=t,this.headers=s,this.requestID=s==null?void 0:s.get("x-request-id"),this.error=n;const o=n;this.code=o==null?void 0:o.code,this.param=o==null?void 0:o.param,this.type=o==null?void 0:o.type}static makeMessage(t,n,r){const s=n!=null&&n.message?typeof n.message=="string"?n.message:JSON.stringify(n.message):n?JSON.stringify(n):r;return t&&s?`${t} ${s}`:t?`${t} status code (no body)`:s||"(no status code or body)"}static generate(t,n,r,s){if(!t||!s)return new Ll({message:r,cause:Au(n)});const o=n==null?void 0:n.error;return t===400?new rb(t,o,r,s):t===401?new sb(t,o,r,s):t===403?new ob(t,o,r,s):t===404?new ib(t,o,r,s):t===409?new ab(t,o,r,s):t===422?new lb(t,o,r,s):t===429?new cb(t,o,r,s):t>=500?new ub(t,o,r,s):new wn(t,o,r,s)}}class Gn extends wn{constructor({message:t}={}){super(void 0,void 0,t||"Request was aborted.",void 0)}}class Ll extends wn{constructor({message:t,cause:n}){super(void 0,void 0,t||"Connection error.",void 0),n&&(this.cause=n)}}class Ed extends Ll{constructor({message:t}={}){super({message:t??"Request timed out."})}}class rb extends wn{}class sb extends wn{}class ob extends wn{}class ib extends wn{}class ab extends wn{}class lb extends wn{}class cb extends wn{}class ub extends wn{}class db extends Ze{constructor(){super("Could not parse response content as the length limit was reached")}}class fb extends Ze{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class bi extends Error{constructor(t){super(t)}}const sj=/^[a-z][a-z0-9+.-]*:/i,oj=e=>sj.test(e);let Ln=e=>(Ln=Array.isArray,Ln(e)),lp=Ln;function ij(e){return typeof e!="object"?{}:e??{}}function aj(e){if(!e)return!0;for(const t in e)return!1;return!0}function lj(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ac(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}const cj=(e,t)=>{if(typeof t!="number"||!Number.isInteger(t))throw new Ze(`${e} must be an integer`);if(t<0)throw new Ze(`${e} must be a positive integer`);return t},uj=e=>{try{return JSON.parse(e)}catch{return}},Qi=e=>new Promise(t=>setTimeout(t,e)),Ns="5.10.2",dj=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function fj(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}const hj=()=>{var n;const e=fj();if(e==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ns,"X-Stainless-OS":up(Deno.build.os),"X-Stainless-Arch":cp(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:((n=Deno.version)==null?void 0:n.deno)??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ns,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(e==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ns,"X-Stainless-OS":up(globalThis.process.platform??"unknown"),"X-Stainless-Arch":cp(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const t=pj();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ns,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ns,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function pj(){if(typeof navigator>"u"||!navigator)return null;const e=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(const{key:t,pattern:n}of e){const r=n.exec(navigator.userAgent);if(r){const s=r[1]||0,o=r[2]||0,i=r[3]||0;return{browser:t,version:`${s}.${o}.${i}`}}}return null}const cp=e=>e==="x32"?"x32":e==="x86_64"||e==="x64"?"x64":e==="arm"?"arm":e==="aarch64"||e==="arm64"?"arm64":e?`other:${e}`:"unknown",up=e=>(e=e.toLowerCase(),e.includes("ios")?"iOS":e==="android"?"Android":e==="darwin"?"MacOS":e==="win32"?"Windows":e==="freebsd"?"FreeBSD":e==="openbsd"?"OpenBSD":e==="linux"?"Linux":e?`Other:${e}`:"Unknown");let dp;const mj=()=>dp??(dp=hj());function gj(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function hb(...e){const t=globalThis.ReadableStream;if(typeof t>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function pb(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return hb({start(){},async pull(n){const{done:r,value:s}=await t.next();r?n.close():n.enqueue(s)},async cancel(){var n;await((n=t.return)==null?void 0:n.call(t))}})}function mb(e){if(e[Symbol.asyncIterator])return e;const t=e.getReader();return{async next(){try{const n=await t.read();return n!=null&&n.done&&t.releaseLock(),n}catch(n){throw t.releaseLock(),n}},async return(){const n=t.cancel();return t.releaseLock(),await n,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function yj(e){var r,s;if(e===null||typeof e!="object")return;if(e[Symbol.asyncIterator]){await((s=(r=e[Symbol.asyncIterator]()).return)==null?void 0:s.call(r));return}const t=e.getReader(),n=t.cancel();t.releaseLock(),await n}const bj=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)}),gb="RFC3986",yb=e=>String(e),fp={RFC1738:e=>String(e).replace(/%20/g,"+"),RFC3986:yb},vj="RFC1738";let Iu=(e,t)=>(Iu=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),Iu(e,t));const fr=(()=>{const e=[];for(let t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e})(),Ic=1024,Sj=(e,t,n,r,s)=>{if(e.length===0)return e;let o=e;if(typeof e=="symbol"?o=Symbol.prototype.toString.call(e):typeof e!="string"&&(o=String(e)),n==="iso-8859-1")return escape(o).replace(/%u[0-9a-f]{4}/gi,function(l){return"%26%23"+parseInt(l.slice(2),16)+"%3B"});let i="";for(let l=0;l<o.length;l+=Ic){const u=o.length>=Ic?o.slice(l,l+Ic):o,d=[];for(let h=0;h<u.length;++h){let m=u.charCodeAt(h);if(m===45||m===46||m===95||m===126||m>=48&&m<=57||m>=65&&m<=90||m>=97&&m<=122||s===vj&&(m===40||m===41)){d[d.length]=u.charAt(h);continue}if(m<128){d[d.length]=fr[m];continue}if(m<2048){d[d.length]=fr[192|m>>6]+fr[128|m&63];continue}if(m<55296||m>=57344){d[d.length]=fr[224|m>>12]+fr[128|m>>6&63]+fr[128|m&63];continue}h+=1,m=65536+((m&1023)<<10|u.charCodeAt(h)&1023),d[d.length]=fr[240|m>>18]+fr[128|m>>12&63]+fr[128|m>>6&63]+fr[128|m&63]}i+=d.join("")}return i};function xj(e){return!e||typeof e!="object"?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function hp(e,t){if(Ln(e)){const n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}const bb={brackets(e){return String(e)+"[]"},comma:"comma",indices(e,t){return String(e)+"["+t+"]"},repeat(e){return String(e)}},vb=function(e,t){Array.prototype.push.apply(e,Ln(t)?t:[t])};let pp;const un={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Sj,encodeValuesOnly:!1,format:gb,formatter:yb,indices:!1,serializeDate(e){return(pp??(pp=Function.prototype.call.bind(Date.prototype.toISOString)))(e)},skipNulls:!1,strictNullHandling:!1};function wj(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"}const Oc={};function Sb(e,t,n,r,s,o,i,l,u,d,h,m,b,v,w,S,k,P){let T=e,j=P,C=0,E=!1;for(;(j=j.get(Oc))!==void 0&&!E;){const N=j.get(e);if(C+=1,typeof N<"u"){if(N===C)throw new RangeError("Cyclic object value");E=!0}typeof j.get(Oc)>"u"&&(C=0)}if(typeof d=="function"?T=d(t,T):T instanceof Date?T=b==null?void 0:b(T):n==="comma"&&Ln(T)&&(T=hp(T,function(N){return N instanceof Date?b==null?void 0:b(N):N})),T===null){if(o)return u&&!S?u(t,un.encoder,k,"key",v):t;T=""}if(wj(T)||xj(T)){if(u){const N=S?t:u(t,un.encoder,k,"key",v);return[(w==null?void 0:w(N))+"="+(w==null?void 0:w(u(T,un.encoder,k,"value",v)))]}return[(w==null?void 0:w(t))+"="+(w==null?void 0:w(String(T)))]}const A=[];if(typeof T>"u")return A;let O;if(n==="comma"&&Ln(T))S&&u&&(T=hp(T,u)),O=[{value:T.length>0?T.join(",")||null:void 0}];else if(Ln(d))O=d;else{const N=Object.keys(T);O=h?N.sort(h):N}const D=l?String(t).replace(/\./g,"%2E"):String(t),F=r&&Ln(T)&&T.length===1?D+"[]":D;if(s&&Ln(T)&&T.length===0)return F+"[]";for(let N=0;N<O.length;++N){const q=O[N],I=typeof q=="object"&&typeof q.value<"u"?q.value:T[q];if(i&&I===null)continue;const Q=m&&l?q.replace(/\./g,"%2E"):q,G=Ln(T)?typeof n=="function"?n(F,Q):F:F+(m?"."+Q:"["+Q+"]");P.set(e,C);const Z=new WeakMap;Z.set(Oc,P),vb(A,Sb(I,G,n,r,s,o,i,l,n==="comma"&&S&&Ln(T)?null:u,d,h,m,b,v,w,S,k,Z))}return A}function _j(e=un){if(typeof e.allowEmptyArrays<"u"&&typeof e.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof e.encodeDotInKeys<"u"&&typeof e.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(e.encoder!==null&&typeof e.encoder<"u"&&typeof e.encoder!="function")throw new TypeError("Encoder has to be a function.");const t=e.charset||un.charset;if(typeof e.charset<"u"&&e.charset!=="utf-8"&&e.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let n=gb;if(typeof e.format<"u"){if(!Iu(fp,e.format))throw new TypeError("Unknown format option provided.");n=e.format}const r=fp[n];let s=un.filter;(typeof e.filter=="function"||Ln(e.filter))&&(s=e.filter);let o;if(e.arrayFormat&&e.arrayFormat in bb?o=e.arrayFormat:"indices"in e?o=e.indices?"indices":"repeat":o=un.arrayFormat,"commaRoundTrip"in e&&typeof e.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");const i=typeof e.allowDots>"u"?e.encodeDotInKeys?!0:un.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:un.addQueryPrefix,allowDots:i,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:un.allowEmptyArrays,arrayFormat:o,charset:t,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:un.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?un.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:un.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:un.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:un.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:un.encodeValuesOnly,filter:s,format:n,formatter:r,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:un.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:un.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:un.strictNullHandling}}function kj(e,t={}){let n=e;const r=_j(t);let s,o;typeof r.filter=="function"?(o=r.filter,n=o("",n)):Ln(r.filter)&&(o=r.filter,s=o);const i=[];if(typeof n!="object"||n===null)return"";const l=bb[r.arrayFormat],u=l==="comma"&&r.commaRoundTrip;s||(s=Object.keys(n)),r.sort&&s.sort(r.sort);const d=new WeakMap;for(let b=0;b<s.length;++b){const v=s[b];r.skipNulls&&n[v]===null||vb(i,Sb(n[v],v,l,u,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,d))}const h=i.join(r.delimiter);let m=r.addQueryPrefix===!0?"?":"";return r.charsetSentinel&&(r.charset==="iso-8859-1"?m+="utf8=%26%2310003%3B&":m+="utf8=%E2%9C%93&"),h.length>0?m+h:""}function Cj(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let r=0;for(const s of e)n.set(s,r),r+=s.length;return n}let mp;function jd(e){let t;return(mp??(t=new globalThis.TextEncoder,mp=t.encode.bind(t)))(e)}let gp;function yp(e){let t;return(gp??(t=new globalThis.TextDecoder,gp=t.decode.bind(t)))(e)}var Wn,Un;class Fl{constructor(){Wn.set(this,void 0),Un.set(this,void 0),Qe(this,Wn,new Uint8Array),Qe(this,Un,null)}decode(t){if(t==null)return[];const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?jd(t):t;Qe(this,Wn,Cj([re(this,Wn,"f"),n]));const r=[];let s;for(;(s=Tj(re(this,Wn,"f"),re(this,Un,"f")))!=null;){if(s.carriage&&re(this,Un,"f")==null){Qe(this,Un,s.index);continue}if(re(this,Un,"f")!=null&&(s.index!==re(this,Un,"f")+1||s.carriage)){r.push(yp(re(this,Wn,"f").subarray(0,re(this,Un,"f")-1))),Qe(this,Wn,re(this,Wn,"f").subarray(re(this,Un,"f"))),Qe(this,Un,null);continue}const o=re(this,Un,"f")!==null?s.preceding-1:s.preceding,i=yp(re(this,Wn,"f").subarray(0,o));r.push(i),Qe(this,Wn,re(this,Wn,"f").subarray(s.index)),Qe(this,Un,null)}return r}flush(){return re(this,Wn,"f").length?this.decode(`
|
|
191
|
+
`):[]}}Wn=new WeakMap,Un=new WeakMap;Fl.NEWLINE_CHARS=new Set([`
|
|
192
|
+
`,"\r"]);Fl.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Tj(e,t){for(let s=t??0;s<e.length;s++){if(e[s]===10)return{preceding:s,index:s+1,carriage:!1};if(e[s]===13)return{preceding:s,index:s+1,carriage:!0}}return null}function Pj(e){for(let r=0;r<e.length-1;r++){if(e[r]===10&&e[r+1]===10||e[r]===13&&e[r+1]===13)return r+2;if(e[r]===13&&e[r+1]===10&&r+3<e.length&&e[r+2]===13&&e[r+3]===10)return r+4}return-1}const yl={off:0,error:200,warn:300,info:400,debug:500},bp=(e,t,n)=>{if(e){if(lj(yl,e))return e;vn(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(yl))}`)}};function vi(){}function La(e,t,n){return!t||yl[e]>yl[n]?vi:t[e].bind(t)}const Mj={error:vi,warn:vi,info:vi,debug:vi};let vp=new WeakMap;function vn(e){const t=e.logger,n=e.logLevel??"off";if(!t)return Mj;const r=vp.get(t);if(r&&r[0]===n)return r[1];const s={error:La("error",t,n),warn:La("warn",t,n),info:La("info",t,n),debug:La("debug",t,n)};return vp.set(t,[n,s]),s}const ts=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([t,n])=>[t,t.toLowerCase()==="authorization"||t.toLowerCase()==="cookie"||t.toLowerCase()==="set-cookie"?"***":n]))),"retryOfRequestLogID"in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);var jo;class Sr{constructor(t,n,r){this.iterator=t,jo.set(this,void 0),this.controller=n,Qe(this,jo,r)}static fromSSEResponse(t,n,r){let s=!1;const o=r?vn(r):console;async function*i(){if(s)throw new Ze("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let l=!1;try{for await(const u of Ej(t,n))if(!l){if(u.data.startsWith("[DONE]")){l=!0;continue}if(u.event===null||u.event.startsWith("response.")||u.event.startsWith("image_edit.")||u.event.startsWith("image_generation.")||u.event.startsWith("transcript.")){let d;try{d=JSON.parse(u.data)}catch(h){throw o.error("Could not parse message into JSON:",u.data),o.error("From chunk:",u.raw),h}if(d&&d.error)throw new wn(void 0,d.error,void 0,t.headers);yield d}else{let d;try{d=JSON.parse(u.data)}catch(h){throw console.error("Could not parse message into JSON:",u.data),console.error("From chunk:",u.raw),h}if(u.event=="error")throw new wn(void 0,d.error,d.message,void 0);yield{event:u.event,data:d}}}l=!0}catch(u){if(Ru(u))return;throw u}finally{l||n.abort()}}return new Sr(i,n,r)}static fromReadableStream(t,n,r){let s=!1;async function*o(){const l=new Fl,u=mb(t);for await(const d of u)for(const h of l.decode(d))yield h;for(const d of l.flush())yield d}async function*i(){if(s)throw new Ze("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let l=!1;try{for await(const u of o())l||u&&(yield JSON.parse(u));l=!0}catch(u){if(Ru(u))return;throw u}finally{l||n.abort()}}return new Sr(i,n,r)}[(jo=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){const t=[],n=[],r=this.iterator(),s=o=>({next:()=>{if(o.length===0){const i=r.next();t.push(i),n.push(i)}return o.shift()}});return[new Sr(()=>s(t),this.controller,re(this,jo,"f")),new Sr(()=>s(n),this.controller,re(this,jo,"f"))]}toReadableStream(){const t=this;let n;return hb({async start(){n=t[Symbol.asyncIterator]()},async pull(r){try{const{value:s,done:o}=await n.next();if(o)return r.close();const i=jd(JSON.stringify(s)+`
|
|
193
|
+
`);r.enqueue(i)}catch(s){r.error(s)}},async cancel(){var r;await((r=n.return)==null?void 0:r.call(n))}})}}async function*Ej(e,t){if(!e.body)throw t.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ze("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ze("Attempted to iterate over a response with no body");const n=new Rj,r=new Fl,s=mb(e.body);for await(const o of jj(s))for(const i of r.decode(o)){const l=n.decode(i);l&&(yield l)}for(const o of r.flush()){const i=n.decode(o);i&&(yield i)}}async function*jj(e){let t=new Uint8Array;for await(const n of e){if(n==null)continue;const r=n instanceof ArrayBuffer?new Uint8Array(n):typeof n=="string"?jd(n):n;let s=new Uint8Array(t.length+r.length);s.set(t),s.set(r,t.length),t=s;let o;for(;(o=Pj(t))!==-1;)yield t.slice(0,o),t=t.slice(o)}t.length>0&&(yield t)}class Rj{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(t){if(t.endsWith("\r")&&(t=t.substring(0,t.length-1)),!t){if(!this.event&&!this.data.length)return null;const o={event:this.event,data:this.data.join(`
|
|
194
|
+
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],o}if(this.chunks.push(t),t.startsWith(":"))return null;let[n,r,s]=Aj(t,":");return s.startsWith(" ")&&(s=s.substring(1)),n==="event"?this.event=s:n==="data"&&this.data.push(s),null}}function Aj(e,t){const n=e.indexOf(t);return n!==-1?[e.substring(0,n),t,e.substring(n+t.length)]:[e,"",""]}async function xb(e,t){const{response:n,requestLogID:r,retryOfRequestLogID:s,startTime:o}=t,i=await(async()=>{var m;if(t.options.stream)return vn(e).debug("response",n.status,n.url,n.headers,n.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(n,t.controller,e):Sr.fromSSEResponse(n,t.controller,e);if(n.status===204)return null;if(t.options.__binaryResponse)return n;const l=n.headers.get("content-type"),u=(m=l==null?void 0:l.split(";")[0])==null?void 0:m.trim();if((u==null?void 0:u.includes("application/json"))||(u==null?void 0:u.endsWith("+json"))){const b=await n.json();return wb(b,n)}return await n.text()})();return vn(e).debug(`[${r}] response parsed`,ts({retryOfRequestLogID:s,url:n.url,status:n.status,body:i,durationMs:Date.now()-o})),i}function wb(e,t){return!e||typeof e!="object"||Array.isArray(e)?e:Object.defineProperty(e,"_request_id",{value:t.headers.get("x-request-id"),enumerable:!1})}var Si;class Dl extends Promise{constructor(t,n,r=xb){super(s=>{s(null)}),this.responsePromise=n,this.parseResponse=r,Si.set(this,void 0),Qe(this,Si,t)}_thenUnwrap(t){return new Dl(re(this,Si,"f"),this.responsePromise,async(n,r)=>wb(t(await this.parseResponse(n,r),r),r.response))}asResponse(){return this.responsePromise.then(t=>t.response)}async withResponse(){const[t,n]=await Promise.all([this.parse(),this.asResponse()]);return{data:t,response:n,request_id:n.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(t=>this.parseResponse(re(this,Si,"f"),t))),this.parsedPromise}then(t,n){return this.parse().then(t,n)}catch(t){return this.parse().catch(t)}finally(t){return this.parse().finally(t)}}Si=new WeakMap;var Fa;class _b{constructor(t,n,r,s){Fa.set(this,void 0),Qe(this,Fa,t),this.options=s,this.response=n,this.body=r}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const t=this.nextPageRequestOptions();if(!t)throw new Ze("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await re(this,Fa,"f").requestAPIList(this.constructor,t)}async*iterPages(){let t=this;for(yield t;t.hasNextPage();)t=await t.getNextPage(),yield t}async*[(Fa=new WeakMap,Symbol.asyncIterator)](){for await(const t of this.iterPages())for(const n of t.getPaginatedItems())yield n}}class Ij extends Dl{constructor(t,n,r){super(t,n,async(s,o)=>new r(s,o.response,await xb(s,o),o.options))}async*[Symbol.asyncIterator](){const t=await this;for await(const n of t)yield n}}class Nl extends _b{constructor(t,n,r,s){super(t,n,r,s),this.data=r.data||[],this.object=r.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class on extends _b{constructor(t,n,r,s){super(t,n,r,s),this.data=r.data||[],this.has_more=r.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){var r;const t=this.getPaginatedItems(),n=(r=t[t.length-1])==null?void 0:r.id;return n?{...this.options,query:{...ij(this.options.query),after:n}}:null}}const kb=()=>{var e;if(typeof File>"u"){const{process:t}=globalThis,n=typeof((e=t==null?void 0:t.versions)==null?void 0:e.node)=="string"&&parseInt(t.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(n?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Ii(e,t,n){return kb(),new File(e,t??"unknown_file",n)}function Qa(e){return(typeof e=="object"&&e!==null&&("name"in e&&e.name&&String(e.name)||"url"in e&&e.url&&String(e.url)||"filename"in e&&e.filename&&String(e.filename)||"path"in e&&e.path&&String(e.path))||"").split(/[\\/]/).pop()||void 0}const Cb=e=>e!=null&&typeof e=="object"&&typeof e[Symbol.asyncIterator]=="function",bs=async(e,t)=>({...e,body:await $j(e.body,t)}),Sp=new WeakMap;function Oj(e){const t=typeof e=="function"?e:e.fetch,n=Sp.get(t);if(n)return n;const r=(async()=>{try{const s="Response"in t?t.Response:(await t("data:,")).constructor,o=new FormData;return o.toString()!==await new s(o).text()}catch{return!0}})();return Sp.set(t,r),r}const $j=async(e,t)=>{if(!await Oj(t))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");const n=new FormData;return await Promise.all(Object.entries(e||{}).map(([r,s])=>Ou(n,r,s))),n},Lj=e=>e instanceof Blob&&"name"in e,Ou=async(e,t,n)=>{if(n!==void 0){if(n==null)throw new TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")e.append(t,String(n));else if(n instanceof Response)e.append(t,Ii([await n.blob()],Qa(n)));else if(Cb(n))e.append(t,Ii([await new Response(pb(n)).blob()],Qa(n)));else if(Lj(n))e.append(t,n,Qa(n));else if(Array.isArray(n))await Promise.all(n.map(r=>Ou(e,t+"[]",r)));else if(typeof n=="object")await Promise.all(Object.entries(n).map(([r,s])=>Ou(e,`${t}[${r}]`,s)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${n} instead`)}},Tb=e=>e!=null&&typeof e=="object"&&typeof e.size=="number"&&typeof e.type=="string"&&typeof e.text=="function"&&typeof e.slice=="function"&&typeof e.arrayBuffer=="function",Fj=e=>e!=null&&typeof e=="object"&&typeof e.name=="string"&&typeof e.lastModified=="number"&&Tb(e),Dj=e=>e!=null&&typeof e=="object"&&typeof e.url=="string"&&typeof e.blob=="function";async function Nj(e,t,n){if(kb(),e=await e,Fj(e))return e instanceof File?e:Ii([await e.arrayBuffer()],e.name);if(Dj(e)){const s=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),Ii(await $u(s),t,n)}const r=await $u(e);if(t||(t=Qa(e)),!(n!=null&&n.type)){const s=r.find(o=>typeof o=="object"&&"type"in o&&o.type);typeof s=="string"&&(n={...n,type:s})}return Ii(r,t,n)}async function $u(e){var n;let t=[];if(typeof e=="string"||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(Tb(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(Cb(e))for await(const r of e)t.push(...await $u(r));else{const r=(n=e==null?void 0:e.constructor)==null?void 0:n.name;throw new Error(`Unexpected data type: ${typeof e}${r?`; constructor: ${r}`:""}${Bj(e)}`)}return t}function Bj(e){return typeof e!="object"||e===null?"":`; props: [${Object.getOwnPropertyNames(e).map(n=>`"${n}"`).join(", ")}]`}class st{constructor(t){this._client=t}}function Pb(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const xp=Object.freeze(Object.create(null)),zj=(e=Pb)=>function(n,...r){if(n.length===1)return n[0];let s=!1;const o=[],i=n.reduce((h,m,b)=>{var S;/[?#]/.test(m)&&(s=!0);const v=r[b];let w=(s?encodeURIComponent:e)(""+v);return b!==r.length&&(v==null||typeof v=="object"&&v.toString===((S=Object.getPrototypeOf(Object.getPrototypeOf(v.hasOwnProperty??xp)??xp))==null?void 0:S.toString))&&(w=v+"",o.push({start:h.length+m.length,length:w.length,error:`Value of type ${Object.prototype.toString.call(v).slice(8,-1)} is not a valid path parameter`})),h+m+(b===r.length?"":w)},""),l=i.split(/[?#]/,1)[0],u=new RegExp("(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)","gi");let d;for(;(d=u.exec(l))!==null;)o.push({start:d.index,length:d[0].length,error:`Value "${d[0]}" can't be safely passed as a path parameter`});if(o.sort((h,m)=>h.start-m.start),o.length>0){let h=0;const m=o.reduce((b,v)=>{const w=" ".repeat(v.start-h),S="^".repeat(v.length);return h=v.start+v.length,b+w+S},"");throw new Ze(`Path parameters result in path with invalid segments:
|
|
195
195
|
${o.map(b=>b.error).join(`
|
|
196
196
|
`)}
|
|
197
197
|
${i}
|
|
198
|
-
${m}`)}return i},Re=Fj(Tb);let Pb=class extends st{list(t,n={},r){return this._client.getAPIList(Re`/chat/completions/${t}/messages`,on,{query:n,...r})}};function Dj(e){return typeof e.parse=="function"}const yl=e=>(e==null?void 0:e.role)==="assistant",Eb=e=>(e==null?void 0:e.role)==="tool";var $u,Qa,Za,Si,xi,el,wi,kr,_i,bl,vl,Ns,Mb;class Rd{constructor(){$u.add(this),this.controller=new AbortController,Qa.set(this,void 0),Za.set(this,()=>{}),Si.set(this,()=>{}),xi.set(this,void 0),el.set(this,()=>{}),wi.set(this,()=>{}),kr.set(this,{}),_i.set(this,!1),bl.set(this,!1),vl.set(this,!1),Ns.set(this,!1),Qe(this,Qa,new Promise((t,n)=>{Qe(this,Za,t,"f"),Qe(this,Si,n,"f")})),Qe(this,xi,new Promise((t,n)=>{Qe(this,el,t,"f"),Qe(this,wi,n,"f")})),re(this,Qa,"f").catch(()=>{}),re(this,xi,"f").catch(()=>{})}_run(t){setTimeout(()=>{t().then(()=>{this._emitFinal(),this._emit("end")},re(this,$u,"m",Mb).bind(this))},0)}_connected(){this.ended||(re(this,Za,"f").call(this),this._emit("connect"))}get ended(){return re(this,_i,"f")}get errored(){return re(this,bl,"f")}get aborted(){return re(this,vl,"f")}abort(){this.controller.abort()}on(t,n){return(re(this,kr,"f")[t]||(re(this,kr,"f")[t]=[])).push({listener:n}),this}off(t,n){const r=re(this,kr,"f")[t];if(!r)return this;const s=r.findIndex(o=>o.listener===n);return s>=0&&r.splice(s,1),this}once(t,n){return(re(this,kr,"f")[t]||(re(this,kr,"f")[t]=[])).push({listener:n,once:!0}),this}emitted(t){return new Promise((n,r)=>{Qe(this,Ns,!0),t!=="error"&&this.once("error",r),this.once(t,n)})}async done(){Qe(this,Ns,!0),await re(this,xi,"f")}_emit(t,...n){if(re(this,_i,"f"))return;t==="end"&&(Qe(this,_i,!0),re(this,el,"f").call(this));const r=re(this,kr,"f")[t];if(r&&(re(this,kr,"f")[t]=r.filter(s=>!s.once),r.forEach(({listener:s})=>s(...n))),t==="abort"){const s=n[0];!re(this,Ns,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,Si,"f").call(this,s),re(this,wi,"f").call(this,s),this._emit("end");return}if(t==="error"){const s=n[0];!re(this,Ns,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,Si,"f").call(this,s),re(this,wi,"f").call(this,s),this._emit("end")}}_emitFinal(){}}Qa=new WeakMap,Za=new WeakMap,Si=new WeakMap,xi=new WeakMap,el=new WeakMap,wi=new WeakMap,kr=new WeakMap,_i=new WeakMap,bl=new WeakMap,vl=new WeakMap,Ns=new WeakMap,$u=new WeakSet,Mb=function(t){if(Qe(this,bl,!0),t instanceof Error&&t.name==="AbortError"&&(t=new Gn),t instanceof Gn)return Qe(this,vl,!0),this._emit("abort",t);if(t instanceof Ze)return this._emit("error",t);if(t instanceof Error){const n=new Ze(t.message);return n.cause=t,this._emit("error",n)}return this._emit("error",new Ze(String(t)))};function Ad(e){return(e==null?void 0:e.$brand)==="auto-parseable-response-format"}function Qi(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function Nj(e,t){return!t||!jb(t)?{...e,choices:e.choices.map(n=>({...n,message:{...n.message,parsed:null,...n.message.tool_calls?{tool_calls:n.message.tool_calls}:void 0}}))}:Id(e,t)}function Id(e,t){const n=e.choices.map(r=>{var s;if(r.finish_reason==="length")throw new ub;if(r.finish_reason==="content_filter")throw new db;return{...r,message:{...r.message,...r.message.tool_calls?{tool_calls:((s=r.message.tool_calls)==null?void 0:s.map(o=>zj(t,o)))??void 0}:void 0,parsed:r.message.content&&!r.message.refusal?Bj(t,r.message.content):null}}});return{...e,choices:n}}function Bj(e,t){var n,r;return((n=e.response_format)==null?void 0:n.type)!=="json_schema"?null:((r=e.response_format)==null?void 0:r.type)==="json_schema"?"$parseRaw"in e.response_format?e.response_format.$parseRaw(t):JSON.parse(t):null}function zj(e,t){var r;const n=(r=e.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===t.function.name});return{...t,function:{...t.function,parsed_arguments:Qi(n)?n.$parseRaw(t.function.arguments):n!=null&&n.function.strict?JSON.parse(t.function.arguments):null}}}function Wj(e,t){var r;if(!e)return!1;const n=(r=e.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===t.function.name});return Qi(n)||(n==null?void 0:n.function.strict)||!1}function jb(e){var t;return Ad(e.response_format)?!0:((t=e.tools)==null?void 0:t.some(n=>Qi(n)||n.type==="function"&&n.function.strict===!0))??!1}function Uj(e){for(const t of e??[]){if(t.type!=="function")throw new Ze(`Currently only \`function\` tool types support auto-parsing; Received \`${t.type}\``);if(t.function.strict!==!0)throw new Ze(`The \`${t.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Rn,Lu,Sl,Fu,Du,Nu,Rb,Ab;const qj=10;class Ib extends Rd{constructor(){super(...arguments),Rn.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(t){var r;this._chatCompletions.push(t),this._emit("chatCompletion",t);const n=(r=t.choices[0])==null?void 0:r.message;return n&&this._addMessage(n),t}_addMessage(t,n=!0){if("content"in t||(t.content=null),this.messages.push(t),n){if(this._emit("message",t),Eb(t)&&t.content)this._emit("functionToolCallResult",t.content);else if(yl(t)&&t.tool_calls)for(const r of t.tool_calls)r.type==="function"&&this._emit("functionToolCall",r.function)}}async finalChatCompletion(){await this.done();const t=this._chatCompletions[this._chatCompletions.length-1];if(!t)throw new Ze("stream ended without producing a ChatCompletion");return t}async finalContent(){return await this.done(),re(this,Rn,"m",Lu).call(this)}async finalMessage(){return await this.done(),re(this,Rn,"m",Sl).call(this)}async finalFunctionToolCall(){return await this.done(),re(this,Rn,"m",Fu).call(this)}async finalFunctionToolCallResult(){return await this.done(),re(this,Rn,"m",Du).call(this)}async totalUsage(){return await this.done(),re(this,Rn,"m",Nu).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const t=this._chatCompletions[this._chatCompletions.length-1];t&&this._emit("finalChatCompletion",t);const n=re(this,Rn,"m",Sl).call(this);n&&this._emit("finalMessage",n);const r=re(this,Rn,"m",Lu).call(this);r&&this._emit("finalContent",r);const s=re(this,Rn,"m",Fu).call(this);s&&this._emit("finalFunctionToolCall",s);const o=re(this,Rn,"m",Du).call(this);o!=null&&this._emit("finalFunctionToolCallResult",o),this._chatCompletions.some(i=>i.usage)&&this._emit("totalUsage",re(this,Rn,"m",Nu).call(this))}async _createChatCompletion(t,n,r){const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Rn,"m",Rb).call(this,n);const o=await t.chat.completions.create({...n,stream:!1},{...r,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Id(o,n))}async _runChatCompletion(t,n,r){for(const s of n.messages)this._addMessage(s,!1);return await this._createChatCompletion(t,n,r)}async _runTools(t,n,r){var v,w,S;const s="tool",{tool_choice:o="auto",stream:i,...l}=n,u=typeof o!="string"&&((v=o==null?void 0:o.function)==null?void 0:v.name),{maxChatCompletions:f=qj}=r||{},h=n.tools.map(k=>{if(Qi(k)){if(!k.$callback)throw new Ze("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:k.$callback,name:k.function.name,description:k.function.description||"",parameters:k.function.parameters,parse:k.$parseRaw,strict:!0}}}return k}),m={};for(const k of h)k.type==="function"&&(m[k.function.name||k.function.function.name]=k.function);const b="tools"in n?h.map(k=>k.type==="function"?{type:"function",function:{name:k.function.name||k.function.function.name,parameters:k.function.parameters,description:k.function.description,strict:k.function.strict}}:k):void 0;for(const k of n.messages)this._addMessage(k,!1);for(let k=0;k<f;++k){const T=(w=(await this._createChatCompletion(t,{...l,tool_choice:o,tools:b,messages:[...this.messages]},r)).choices[0])==null?void 0:w.message;if(!T)throw new Ze("missing message in ChatCompletion response");if(!((S=T.tool_calls)!=null&&S.length))return;for(const M of T.tool_calls){if(M.type!=="function")continue;const C=M.id,{name:j,arguments:A}=M.function,O=m[j];if(O){if(u&&u!==j){const q=`Invalid tool_call: ${JSON.stringify(j)}. ${JSON.stringify(u)} requested. Please try again`;this._addMessage({role:s,tool_call_id:C,content:q});continue}}else{const q=`Invalid tool_call: ${JSON.stringify(j)}. Available options are: ${Object.keys(m).map(I=>JSON.stringify(I)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:C,content:q});continue}let F;try{F=Dj(O)?await O.parse(A):A}catch(q){const I=q instanceof Error?q.message:String(q);this._addMessage({role:s,tool_call_id:C,content:I});continue}const D=await O.function(F,this),N=re(this,Rn,"m",Ab).call(this,D);if(this._addMessage({role:s,tool_call_id:C,content:N}),u)return}}}}Rn=new WeakSet,Lu=function(){return re(this,Rn,"m",Sl).call(this).content??null},Sl=function(){let t=this.messages.length;for(;t-- >0;){const n=this.messages[t];if(yl(n))return{...n,content:n.content??null,refusal:n.refusal??null}}throw new Ze("stream ended without producing a ChatCompletionMessage with role=assistant")},Fu=function(){var t,n;for(let r=this.messages.length-1;r>=0;r--){const s=this.messages[r];if(yl(s)&&((t=s==null?void 0:s.tool_calls)!=null&&t.length))return(n=s.tool_calls.at(-1))==null?void 0:n.function}},Du=function(){for(let t=this.messages.length-1;t>=0;t--){const n=this.messages[t];if(Eb(n)&&n.content!=null&&typeof n.content=="string"&&this.messages.some(r=>{var s;return r.role==="assistant"&&((s=r.tool_calls)==null?void 0:s.some(o=>o.type==="function"&&o.id===n.tool_call_id))}))return n.content}},Nu=function(){const t={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:n}of this._chatCompletions)n&&(t.completion_tokens+=n.completion_tokens,t.prompt_tokens+=n.prompt_tokens,t.total_tokens+=n.total_tokens);return t},Rb=function(t){if(t.n!=null&&t.n>1)throw new Ze("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},Ab=function(t){return typeof t=="string"?t:t===void 0?"undefined":JSON.stringify(t)};class Od extends Ib{static runTools(t,n,r){const s=new Od,o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(t,n,o)),s}_addMessage(t,n=!0){super._addMessage(t,n),yl(t)&&t.content&&this._emit("content",t.content)}}const Ob=1,$b=2,Lb=4,Fb=8,Db=16,Nb=32,Bb=64,zb=128,Wb=256,Ub=zb|Wb,qb=Db|Nb|Ub|Bb,Hb=Ob|$b|qb,Yb=Lb|Fb,Hj=Hb|Yb,pn={STR:Ob,NUM:$b,ARR:Lb,OBJ:Fb,NULL:Db,BOOL:Nb,NAN:Bb,INFINITY:zb,MINUS_INFINITY:Wb,INF:Ub,SPECIAL:qb,ATOM:Hb,COLLECTION:Yb,ALL:Hj};class Yj extends Error{}class Xj extends Error{}function Kj(e,t=pn.ALL){if(typeof e!="string")throw new TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw new Error(`${e} is empty`);return Vj(e.trim(),t)}const Vj=(e,t)=>{const n=e.length;let r=0;const s=b=>{throw new Yj(`${b} at position ${r}`)},o=b=>{throw new Xj(`${b} at position ${r}`)},i=()=>(m(),r>=n&&s("Unexpected end of input"),e[r]==='"'?l():e[r]==="{"?u():e[r]==="["?f():e.substring(r,r+4)==="null"||pn.NULL&t&&n-r<4&&"null".startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)==="true"||pn.BOOL&t&&n-r<4&&"true".startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)==="false"||pn.BOOL&t&&n-r<5&&"false".startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)==="Infinity"||pn.INFINITY&t&&n-r<8&&"Infinity".startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)==="-Infinity"||pn.MINUS_INFINITY&t&&1<n-r&&n-r<9&&"-Infinity".startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)==="NaN"||pn.NAN&t&&n-r<3&&"NaN".startsWith(e.substring(r))?(r+=3,NaN):h()),l=()=>{const b=r;let v=!1;for(r++;r<n&&(e[r]!=='"'||v&&e[r-1]==="\\");)v=e[r]==="\\"?!v:!1,r++;if(e.charAt(r)=='"')try{return JSON.parse(e.substring(b,++r-Number(v)))}catch(w){o(String(w))}else if(pn.STR&t)try{return JSON.parse(e.substring(b,r-Number(v))+'"')}catch{return JSON.parse(e.substring(b,e.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},u=()=>{r++,m();const b={};try{for(;e[r]!=="}";){if(m(),r>=n&&pn.OBJ&t)return b;const v=l();m(),r++;try{const w=i();Object.defineProperty(b,v,{value:w,writable:!0,enumerable:!0,configurable:!0})}catch(w){if(pn.OBJ&t)return b;throw w}m(),e[r]===","&&r++}}catch{if(pn.OBJ&t)return b;s("Expected '}' at end of object")}return r++,b},f=()=>{r++;const b=[];try{for(;e[r]!=="]";)b.push(i()),m(),e[r]===","&&r++}catch{if(pn.ARR&t)return b;s("Expected ']' at end of array")}return r++,b},h=()=>{if(r===0){e==="-"&&pn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e)}catch(v){if(pn.NUM&t)try{return e[e.length-1]==="."?JSON.parse(e.substring(0,e.lastIndexOf("."))):JSON.parse(e.substring(0,e.lastIndexOf("e")))}catch{}o(String(v))}}const b=r;for(e[r]==="-"&&r++;e[r]&&!",]}".includes(e[r]);)r++;r==n&&!(pn.NUM&t)&&s("Unterminated number literal");try{return JSON.parse(e.substring(b,r))}catch{e.substring(b,r)==="-"&&pn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e.substring(b,e.lastIndexOf("e")))}catch(w){o(String(w))}}},m=()=>{for(;r<n&&`
|
|
199
|
-
\r `.includes(e[r]);)r++};return i()},wp=e=>
|
|
200
|
-
${
|
|
201
|
-
${
|
|
202
|
-
${
|
|
203
|
-
${Na(e)}`);return{...F,id:O,type:A,function:{...q,name:N,arguments:D}}})}}:{...v,message:{...P,content:w,role:T,refusal:f.refusal??null},finish_reason:h,index:m,logprobs:b}}),created:s,model:o,object:"chat.completion",...i?{system_fingerprint:i}:{}};return Nj(u,t)}function Na(e){return JSON.stringify(e)}class xl extends Yi{static fromReadableStream(t){const n=new xl(null);return n._run(()=>n._fromReadableStream(t)),n}static runTools(t,n,r){const s=new xl(n),o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(t,n,o)),s}}let $d=class extends st{constructor(){super(...arguments),this.messages=new Pb(this._client)}create(t,n){return this._client.post("/chat/completions",{body:t,...n,stream:t.stream??!1})}retrieve(t,n){return this._client.get(Re`/chat/completions/${t}`,n)}update(t,n,r){return this._client.post(Re`/chat/completions/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/chat/completions",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/chat/completions/${t}`,n)}parse(t,n){return Uj(t.tools),this._client.chat.completions.create(t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(r=>Id(r,t))}runTools(t,n){return t.stream?xl.runTools(this._client,t,n):Od.runTools(this._client,t,n)}stream(t,n){return Yi.createChatCompletion(this._client,t,n)}};$d.Messages=Pb;class Ld extends st{constructor(){super(...arguments),this.completions=new $d(this._client)}}Ld.Completions=$d;const Xb=Symbol("brand.privateNullableHeaders");function*Jj(e){if(!e)return;if(Xb in e){const{values:r,nulls:s}=e;yield*r.entries();for(const o of s)yield[o,null];return}let t=!1,n;e instanceof Headers?n=e.entries():lp(e)?n=e:(t=!0,n=Object.entries(e??{}));for(let r of n){const s=r[0];if(typeof s!="string")throw new TypeError("expected header name to be a string");const o=lp(r[1])?r[1]:[r[1]];let i=!1;for(const l of o)l!==void 0&&(t&&!i&&(i=!0,yield[s,null]),yield[s,l])}}const Ye=e=>{const t=new Headers,n=new Set;for(const r of e){const s=new Set;for(const[o,i]of Jj(r)){const l=o.toLowerCase();s.has(l)||(t.delete(o),s.add(l)),i===null?(t.delete(o),n.add(l)):(t.append(o,i),n.delete(l))}}return{[Xb]:!0,values:t,nulls:n}};class Kb extends st{create(t,n){return this._client.post("/audio/speech",{body:t,...n,headers:Ye([{Accept:"application/octet-stream"},n==null?void 0:n.headers]),__binaryResponse:!0})}}class Vb extends st{create(t,n){return this._client.post("/audio/transcriptions",ys({body:t,...n,stream:t.stream??!1,__metadata:{model:t.model}},this._client))}}class Gb extends st{create(t,n){return this._client.post("/audio/translations",ys({body:t,...n,__metadata:{model:t.model}},this._client))}}class Zi extends st{constructor(){super(...arguments),this.transcriptions=new Vb(this._client),this.translations=new Gb(this._client),this.speech=new Kb(this._client)}}Zi.Transcriptions=Vb;Zi.Translations=Gb;Zi.Speech=Kb;class Jb extends st{create(t,n){return this._client.post("/batches",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/batches/${t}`,n)}list(t={},n){return this._client.getAPIList("/batches",on,{query:t,...n})}cancel(t,n){return this._client.post(Re`/batches/${t}/cancel`,n)}}class Qb extends st{create(t,n){return this._client.post("/assistants",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Re`/assistants/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Re`/assistants/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/assistants",on,{query:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Re`/assistants/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Zb extends st{create(t,n){return this._client.post("/realtime/sessions",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class ev extends st{create(t,n){return this._client.post("/realtime/transcription_sessions",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Nl extends st{constructor(){super(...arguments),this.sessions=new Zb(this._client),this.transcriptionSessions=new ev(this._client)}}Nl.Sessions=Zb;Nl.TranscriptionSessions=ev;class tv extends st{create(t,n,r){return this._client.post(Re`/threads/${t}/messages`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(Re`/threads/${s}/messages/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Re`/threads/${s}/messages/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Re`/threads/${t}/messages`,on,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{thread_id:s}=n;return this._client.delete(Re`/threads/${s}/messages/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class nv extends st{retrieve(t,n,r){const{thread_id:s,run_id:o,...i}=n;return this._client.get(Re`/threads/${s}/runs/${o}/steps/${t}`,{query:i,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n,r){const{thread_id:s,...o}=n;return this._client.getAPIList(Re`/threads/${s}/runs/${t}/steps`,on,{query:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}const Qj=e=>{if(typeof Buffer<"u"){const t=Buffer.from(e,"base64");return Array.from(new Float32Array(t.buffer,t.byteOffset,t.length/Float32Array.BYTES_PER_ELEMENT))}else{const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s<n;s++)r[s]=t.charCodeAt(s);return Array.from(new Float32Array(r.buffer))}};var Nc={};const Ls=e=>{var t,n,r,s;if(typeof globalThis.process<"u")return((t=Nc==null?void 0:Nc[e])==null?void 0:t.trim())??void 0;if(typeof globalThis.Deno<"u")return(s=(r=(n=globalThis.Deno.env)==null?void 0:n.get)==null?void 0:r.call(n,e))==null?void 0:s.trim()};var Sn,us,Bu,mr,tl,sr,ds,qs,ss,wl,qn,nl,rl,Ii,ki,Ci,kp,Cp,Tp,Pp,Ep,Mp,jp;class Oi extends Rd{constructor(){super(...arguments),Sn.add(this),Bu.set(this,[]),mr.set(this,{}),tl.set(this,{}),sr.set(this,void 0),ds.set(this,void 0),qs.set(this,void 0),ss.set(this,void 0),wl.set(this,void 0),qn.set(this,void 0),nl.set(this,void 0),rl.set(this,void 0),Ii.set(this,void 0)}[(Bu=new WeakMap,mr=new WeakMap,tl=new WeakMap,sr=new WeakMap,ds=new WeakMap,qs=new WeakMap,ss=new WeakMap,wl=new WeakMap,qn=new WeakMap,nl=new WeakMap,rl=new WeakMap,Ii=new WeakMap,Sn=new WeakSet,Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(t){const n=new us;return n._run(()=>n._fromReadableStream(t)),n}async _fromReadableStream(t,n){var o;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),this._connected();const s=Sr.fromReadableStream(t,this.controller);for await(const i of s)re(this,Sn,"m",ki).call(this,i);if((o=s.controller.signal)!=null&&o.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ci).call(this))}toReadableStream(){return new Sr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(t,n,r,s){const o=new us;return o._run(()=>o._runToolAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}async _createToolAssistantStream(t,n,r,s){var u;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const i={...r,stream:!0},l=await t.submitToolOutputs(n,i,{...s,signal:this.controller.signal});this._connected();for await(const f of l)re(this,Sn,"m",ki).call(this,f);if((u=l.controller.signal)!=null&&u.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ci).call(this))}static createThreadAssistantStream(t,n,r){const s=new us;return s._run(()=>s._threadAssistantStream(t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(t,n,r,s){const o=new us;return o._run(()=>o._runAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}currentEvent(){return re(this,nl,"f")}currentRun(){return re(this,rl,"f")}currentMessageSnapshot(){return re(this,sr,"f")}currentRunStepSnapshot(){return re(this,Ii,"f")}async finalRunSteps(){return await this.done(),Object.values(re(this,mr,"f"))}async finalMessages(){return await this.done(),Object.values(re(this,tl,"f"))}async finalRun(){if(await this.done(),!re(this,ds,"f"))throw Error("Final run was not received.");return re(this,ds,"f")}async _createThreadAssistantStream(t,n,r){var l;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));const o={...n,stream:!0},i=await t.createAndRun(o,{...r,signal:this.controller.signal});this._connected();for await(const u of i)re(this,Sn,"m",ki).call(this,u);if((l=i.controller.signal)!=null&&l.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ci).call(this))}async _createAssistantStream(t,n,r,s){var u;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const i={...r,stream:!0},l=await t.create(n,i,{...s,signal:this.controller.signal});this._connected();for await(const f of l)re(this,Sn,"m",ki).call(this,f);if((u=l.controller.signal)!=null&&u.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ci).call(this))}static accumulateDelta(t,n){for(const[r,s]of Object.entries(n)){if(!t.hasOwnProperty(r)){t[r]=s;continue}let o=t[r];if(o==null){t[r]=s;continue}if(r==="index"||r==="type"){t[r]=s;continue}if(typeof o=="string"&&typeof s=="string")o+=s;else if(typeof o=="number"&&typeof s=="number")o+=s;else if(Rc(o)&&Rc(s))o=this.accumulateDelta(o,s);else if(Array.isArray(o)&&Array.isArray(s)){if(o.every(i=>typeof i=="string"||typeof i=="number")){o.push(...s);continue}for(const i of s){if(!Rc(i))throw new Error(`Expected array delta entry to be an object but got: ${i}`);const l=i.index;if(l==null)throw console.error(i),new Error("Expected array delta entry to have an `index` property");if(typeof l!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${l}`);const u=o[l];u==null?o.push(i):o[l]=this.accumulateDelta(u,i)}continue}else throw Error(`Unhandled record type: ${r}, deltaValue: ${s}, accValue: ${o}`);t[r]=o}return t}_addRun(t){return t}async _threadAssistantStream(t,n,r){return await this._createThreadAssistantStream(n,t,r)}async _runAssistantStream(t,n,r,s){return await this._createAssistantStream(n,t,r,s)}async _runToolAssistantStream(t,n,r,s){return await this._createToolAssistantStream(n,t,r,s)}}us=Oi,ki=function(t){if(!this.ended)switch(Qe(this,nl,t),re(this,Sn,"m",Tp).call(this,t),t.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":re(this,Sn,"m",jp).call(this,t);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":re(this,Sn,"m",Cp).call(this,t);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":re(this,Sn,"m",kp).call(this,t);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},Ci=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");if(!re(this,ds,"f"))throw Error("Final run has not been received");return re(this,ds,"f")},kp=function(t){const[n,r]=re(this,Sn,"m",Ep).call(this,t,re(this,sr,"f"));Qe(this,sr,n),re(this,tl,"f")[n.id]=n;for(const s of r){const o=n.content[s.index];(o==null?void 0:o.type)=="text"&&this._emit("textCreated",o.text)}switch(t.event){case"thread.message.created":this._emit("messageCreated",t.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",t.data.delta,n),t.data.delta.content)for(const s of t.data.delta.content){if(s.type=="text"&&s.text){let o=s.text,i=n.content[s.index];if(i&&i.type=="text")this._emit("textDelta",o,i.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=re(this,qs,"f")){if(re(this,ss,"f"))switch(re(this,ss,"f").type){case"text":this._emit("textDone",re(this,ss,"f").text,re(this,sr,"f"));break;case"image_file":this._emit("imageFileDone",re(this,ss,"f").image_file,re(this,sr,"f"));break}Qe(this,qs,s.index)}Qe(this,ss,n.content[s.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(re(this,qs,"f")!==void 0){const s=t.data.content[re(this,qs,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,re(this,sr,"f"));break;case"text":this._emit("textDone",s.text,re(this,sr,"f"));break}}re(this,sr,"f")&&this._emit("messageDone",t.data),Qe(this,sr,void 0)}},Cp=function(t){const n=re(this,Sn,"m",Pp).call(this,t);switch(Qe(this,Ii,n),t.event){case"thread.run.step.created":this._emit("runStepCreated",t.data);break;case"thread.run.step.delta":const r=t.data.delta;if(r.step_details&&r.step_details.type=="tool_calls"&&r.step_details.tool_calls&&n.step_details.type=="tool_calls")for(const o of r.step_details.tool_calls)o.index==re(this,wl,"f")?this._emit("toolCallDelta",o,n.step_details.tool_calls[o.index]):(re(this,qn,"f")&&this._emit("toolCallDone",re(this,qn,"f")),Qe(this,wl,o.index),Qe(this,qn,n.step_details.tool_calls[o.index]),re(this,qn,"f")&&this._emit("toolCallCreated",re(this,qn,"f")));this._emit("runStepDelta",t.data.delta,n);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":Qe(this,Ii,void 0),t.data.step_details.type=="tool_calls"&&re(this,qn,"f")&&(this._emit("toolCallDone",re(this,qn,"f")),Qe(this,qn,void 0)),this._emit("runStepDone",t.data,n);break}},Tp=function(t){re(this,Bu,"f").push(t),this._emit("event",t)},Pp=function(t){switch(t.event){case"thread.run.step.created":return re(this,mr,"f")[t.data.id]=t.data,t.data;case"thread.run.step.delta":let n=re(this,mr,"f")[t.data.id];if(!n)throw Error("Received a RunStepDelta before creation of a snapshot");let r=t.data;if(r.delta){const s=us.accumulateDelta(n,r.delta);re(this,mr,"f")[t.data.id]=s}return re(this,mr,"f")[t.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":re(this,mr,"f")[t.data.id]=t.data;break}if(re(this,mr,"f")[t.data.id])return re(this,mr,"f")[t.data.id];throw new Error("No snapshot available")},Ep=function(t,n){let r=[];switch(t.event){case"thread.message.created":return[t.data,r];case"thread.message.delta":if(!n)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let s=t.data;if(s.delta.content)for(const o of s.delta.content)if(o.index in n.content){let i=n.content[o.index];n.content[o.index]=re(this,Sn,"m",Mp).call(this,o,i)}else n.content[o.index]=o,r.push(o);return[n,r];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(n)return[n,r];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},Mp=function(t,n){return us.accumulateDelta(n,t)},jp=function(t){switch(Qe(this,rl,t.data),t.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":Qe(this,ds,t.data),re(this,qn,"f")&&(this._emit("toolCallDone",re(this,qn,"f")),Qe(this,qn,void 0));break}};let Fd=class extends st{constructor(){super(...arguments),this.steps=new nv(this._client)}create(t,n,r){const{include:s,...o}=n;return this._client.post(Re`/threads/${t}/runs`,{query:{include:s},body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(Re`/threads/${s}/runs/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Re`/threads/${s}/runs/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Re`/threads/${t}/runs`,on,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{thread_id:s}=n;return this._client.post(Re`/threads/${s}/runs/${t}/cancel`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n,r);return await this.poll(s.id,{thread_id:t},r)}createAndStream(t,n,r){return Oi.createAssistantStream(t,this._client.beta.threads.runs,n,r)}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:l}=await this.retrieve(t,n,{...r,headers:{...r==null?void 0:r.headers,...s}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let u=5e3;if(r!=null&&r.pollIntervalMs)u=r.pollIntervalMs;else{const f=l.headers.get("openai-poll-after-ms");if(f){const h=parseInt(f);isNaN(h)||(u=h)}}await Ji(u);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(t,n,r){return Oi.createAssistantStream(t,this._client.beta.threads.runs,n,r)}submitToolOutputs(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Re`/threads/${s}/runs/${t}/submit_tool_outputs`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}async submitToolOutputsAndPoll(t,n,r){const s=await this.submitToolOutputs(t,n,r);return await this.poll(s.id,n,r)}submitToolOutputsStream(t,n,r){return Oi.createToolAssistantStream(t,this._client.beta.threads.runs,n,r)}};Fd.Steps=nv;class Bl extends st{constructor(){super(...arguments),this.runs=new Fd(this._client),this.messages=new tv(this._client)}create(t={},n){return this._client.post("/threads",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Re`/threads/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Re`/threads/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n){return this._client.delete(Re`/threads/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}createAndRun(t,n){return this._client.post("/threads/runs",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}async createAndRunPoll(t,n){const r=await this.createAndRun(t,n);return await this.runs.poll(r.id,{thread_id:r.thread_id},n)}createAndRunStream(t,n){return Oi.createThreadAssistantStream(t,this._client.beta.threads,n)}}Bl.Runs=Fd;Bl.Messages=tv;class ea extends st{constructor(){super(...arguments),this.realtime=new Nl(this._client),this.assistants=new Qb(this._client),this.threads=new Bl(this._client)}}ea.Realtime=Nl;ea.Assistants=Qb;ea.Threads=Bl;class rv extends st{create(t,n){return this._client.post("/completions",{body:t,...n,stream:t.stream??!1})}}let sv=class extends st{retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Re`/containers/${s}/files/${t}/content`,{...r,headers:Ye([{Accept:"application/binary"},r==null?void 0:r.headers]),__binaryResponse:!0})}},Dd=class extends st{constructor(){super(...arguments),this.content=new sv(this._client)}create(t,n,r){return this._client.post(Re`/containers/${t}/files`,ys({body:n,...r},this._client))}retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Re`/containers/${s}/files/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Re`/containers/${t}/files`,on,{query:n,...r})}delete(t,n,r){const{container_id:s}=n;return this._client.delete(Re`/containers/${s}/files/${t}`,{...r,headers:Ye([{Accept:"*/*"},r==null?void 0:r.headers])})}};Dd.Content=sv;class Nd extends st{constructor(){super(...arguments),this.files=new Dd(this._client)}create(t,n){return this._client.post("/containers",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/containers/${t}`,n)}list(t={},n){return this._client.getAPIList("/containers",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/containers/${t}`,{...n,headers:Ye([{Accept:"*/*"},n==null?void 0:n.headers])})}}Nd.Files=Dd;class ov extends st{create(t,n){const r=!!t.encoding_format;let s=r?t.encoding_format:"base64";r&&vn(this._client).debug("embeddings/user defined encoding_format:",t.encoding_format);const o=this._client.post("/embeddings",{body:{...t,encoding_format:s},...n});return r?o:(vn(this._client).debug("embeddings/decoding base64 embeddings from base64"),o._thenUnwrap(i=>(i&&i.data&&i.data.forEach(l=>{const u=l.embedding;l.embedding=Qj(u)}),i)))}}class iv extends st{retrieve(t,n,r){const{eval_id:s,run_id:o}=n;return this._client.get(Re`/evals/${s}/runs/${o}/output_items/${t}`,r)}list(t,n,r){const{eval_id:s,...o}=n;return this._client.getAPIList(Re`/evals/${s}/runs/${t}/output_items`,on,{query:o,...r})}}class Bd extends st{constructor(){super(...arguments),this.outputItems=new iv(this._client)}create(t,n,r){return this._client.post(Re`/evals/${t}/runs`,{body:n,...r})}retrieve(t,n,r){const{eval_id:s}=n;return this._client.get(Re`/evals/${s}/runs/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Re`/evals/${t}/runs`,on,{query:n,...r})}delete(t,n,r){const{eval_id:s}=n;return this._client.delete(Re`/evals/${s}/runs/${t}`,r)}cancel(t,n,r){const{eval_id:s}=n;return this._client.post(Re`/evals/${s}/runs/${t}`,r)}}Bd.OutputItems=iv;class zd extends st{constructor(){super(...arguments),this.runs=new Bd(this._client)}create(t,n){return this._client.post("/evals",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/evals/${t}`,n)}update(t,n,r){return this._client.post(Re`/evals/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/evals",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/evals/${t}`,n)}}zd.Runs=Bd;let av=class extends st{create(t,n){return this._client.post("/files",ys({body:t,...n},this._client))}retrieve(t,n){return this._client.get(Re`/files/${t}`,n)}list(t={},n){return this._client.getAPIList("/files",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/files/${t}`,n)}content(t,n){return this._client.get(Re`/files/${t}/content`,{...n,headers:Ye([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}async waitForProcessing(t,{pollInterval:n=5e3,maxWait:r=30*60*1e3}={}){const s=new Set(["processed","error","deleted"]),o=Date.now();let i=await this.retrieve(t);for(;!i.status||!s.has(i.status);)if(await Ji(n),i=await this.retrieve(t),Date.now()-o>r)throw new Md({message:`Giving up on waiting for file ${t} to finish processing after ${r} milliseconds.`});return i}};class lv extends st{}let cv=class extends st{run(t,n){return this._client.post("/fine_tuning/alpha/graders/run",{body:t,...n})}validate(t,n){return this._client.post("/fine_tuning/alpha/graders/validate",{body:t,...n})}};class Wd extends st{constructor(){super(...arguments),this.graders=new cv(this._client)}}Wd.Graders=cv;class uv extends st{create(t,n,r){return this._client.getAPIList(Re`/fine_tuning/checkpoints/${t}/permissions`,Dl,{body:n,method:"post",...r})}retrieve(t,n={},r){return this._client.get(Re`/fine_tuning/checkpoints/${t}/permissions`,{query:n,...r})}delete(t,n,r){const{fine_tuned_model_checkpoint:s}=n;return this._client.delete(Re`/fine_tuning/checkpoints/${s}/permissions/${t}`,r)}}let Ud=class extends st{constructor(){super(...arguments),this.permissions=new uv(this._client)}};Ud.Permissions=uv;class dv extends st{list(t,n={},r){return this._client.getAPIList(Re`/fine_tuning/jobs/${t}/checkpoints`,on,{query:n,...r})}}class qd extends st{constructor(){super(...arguments),this.checkpoints=new dv(this._client)}create(t,n){return this._client.post("/fine_tuning/jobs",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/fine_tuning/jobs/${t}`,n)}list(t={},n){return this._client.getAPIList("/fine_tuning/jobs",on,{query:t,...n})}cancel(t,n){return this._client.post(Re`/fine_tuning/jobs/${t}/cancel`,n)}listEvents(t,n={},r){return this._client.getAPIList(Re`/fine_tuning/jobs/${t}/events`,on,{query:n,...r})}pause(t,n){return this._client.post(Re`/fine_tuning/jobs/${t}/pause`,n)}resume(t,n){return this._client.post(Re`/fine_tuning/jobs/${t}/resume`,n)}}qd.Checkpoints=dv;class no extends st{constructor(){super(...arguments),this.methods=new lv(this._client),this.jobs=new qd(this._client),this.checkpoints=new Ud(this._client),this.alpha=new Wd(this._client)}}no.Methods=lv;no.Jobs=qd;no.Checkpoints=Ud;no.Alpha=Wd;class fv extends st{}class Hd extends st{constructor(){super(...arguments),this.graderModels=new fv(this._client)}}Hd.GraderModels=fv;class hv extends st{createVariation(t,n){return this._client.post("/images/variations",ys({body:t,...n},this._client))}edit(t,n){return this._client.post("/images/edits",ys({body:t,...n,stream:t.stream??!1},this._client))}generate(t,n){return this._client.post("/images/generations",{body:t,...n,stream:t.stream??!1})}}class pv extends st{retrieve(t,n){return this._client.get(Re`/models/${t}`,n)}list(t){return this._client.getAPIList("/models",Dl,t)}delete(t,n){return this._client.delete(Re`/models/${t}`,n)}}class mv extends st{create(t,n){return this._client.post("/moderations",{body:t,...n})}}function Zj(e,t){return!t||!tR(t)?{...e,output_parsed:null,output:e.output.map(n=>n.type==="function_call"?{...n,parsed_arguments:null}:n.type==="message"?{...n,content:n.content.map(r=>({...r,parsed:null}))}:n)}:gv(e,t)}function gv(e,t){const n=e.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:sR(t,s)};if(s.type==="message"){const o=s.content.map(i=>i.type==="output_text"?{...i,parsed:eR(t,i.text)}:i);return{...s,content:o}}return s}),r=Object.assign({},e,{output:n});return Object.getOwnPropertyDescriptor(e,"output_text")||zu(r),Object.defineProperty(r,"output_parsed",{enumerable:!0,get(){for(const s of r.output)if(s.type==="message"){for(const o of s.content)if(o.type==="output_text"&&o.parsed!==null)return o.parsed}return null}}),r}function eR(e,t){var n,r,s,o;return((r=(n=e.text)==null?void 0:n.format)==null?void 0:r.type)!=="json_schema"?null:"$parseRaw"in((s=e.text)==null?void 0:s.format)?((o=e.text)==null?void 0:o.format).$parseRaw(t):JSON.parse(t)}function tR(e){var t;return!!Ad((t=e.text)==null?void 0:t.format)}function nR(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function rR(e,t){return e.find(n=>n.type==="function"&&n.name===t)}function sR(e,t){const n=rR(e.tools??[],t.name);return{...t,...t,parsed_arguments:nR(n)?n.$parseRaw(t.arguments):n!=null&&n.strict?JSON.parse(t.arguments):null}}function zu(e){const t=[];for(const n of e.output)if(n.type==="message")for(const r of n.content)r.type==="output_text"&&t.push(r.text);e.output_text=t.join("")}var Fs,Ba,Fr,za,Rp,Ap,Ip,Op;class Yd extends Rd{constructor(t){super(),Fs.add(this),Ba.set(this,void 0),Fr.set(this,void 0),za.set(this,void 0),Qe(this,Ba,t)}static createResponse(t,n,r){const s=new Yd(n);return s._run(()=>s._createOrRetrieveResponse(t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(t,n,r){var l;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Fs,"m",Rp).call(this);let o,i=null;"response_id"in n?(o=await t.responses.retrieve(n.response_id,{stream:!0},{...r,signal:this.controller.signal,stream:!0}),i=n.starting_after??null):o=await t.responses.create({...n,stream:!0},{...r,signal:this.controller.signal}),this._connected();for await(const u of o)re(this,Fs,"m",Ap).call(this,u,i);if((l=o.controller.signal)!=null&&l.aborted)throw new Gn;return re(this,Fs,"m",Ip).call(this)}[(Ba=new WeakMap,Fr=new WeakMap,za=new WeakMap,Fs=new WeakSet,Rp=function(){this.ended||Qe(this,Fr,void 0)},Ap=function(n,r){if(this.ended)return;const s=(i,l)=>{(r==null||l.sequence_number>r)&&this._emit(i,l)},o=re(this,Fs,"m",Op).call(this,n);switch(s("event",n),n.type){case"response.output_text.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);if(i.type==="message"){const l=i.content[n.content_index];if(!l)throw new Ze(`missing content at index ${n.content_index}`);if(l.type!=="output_text")throw new Ze(`expected content to be 'output_text', got ${l.type}`);s("response.output_text.delta",{...n,snapshot:l.text})}break}case"response.function_call_arguments.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);i.type==="function_call"&&s("response.function_call_arguments.delta",{...n,snapshot:i.arguments});break}default:s(n.type,n);break}},Ip=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=re(this,Fr,"f");if(!n)throw new Ze("request ended without sending any events");Qe(this,Fr,void 0);const r=oR(n,re(this,Ba,"f"));return Qe(this,za,r),r},Op=function(n){let r=re(this,Fr,"f");if(!r){if(n.type!=="response.created")throw new Ze(`When snapshot hasn't been set yet, expected 'response.created' event, got ${n.type}`);return r=Qe(this,Fr,n.response),r}switch(n.type){case"response.output_item.added":{r.output.push(n.item);break}case"response.content_part.added":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);s.type==="message"&&s.content.push(n.part);break}case"response.output_text.delta":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);if(s.type==="message"){const o=s.content[n.content_index];if(!o)throw new Ze(`missing content at index ${n.content_index}`);if(o.type!=="output_text")throw new Ze(`expected content to be 'output_text', got ${o.type}`);o.text+=n.delta}break}case"response.function_call_arguments.delta":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);s.type==="function_call"&&(s.arguments+=n.delta);break}case"response.completed":{Qe(this,Fr,n.response);break}}return r},Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const t=re(this,za,"f");if(!t)throw new Ze("stream ended without producing a ChatCompletion");return t}}function oR(e,t){return Zj(e,t)}class yv extends st{list(t,n={},r){return this._client.getAPIList(Re`/responses/${t}/input_items`,on,{query:n,...r})}}class Xd extends st{constructor(){super(...arguments),this.inputItems=new yv(this._client)}create(t,n){return this._client.post("/responses",{body:t,...n,stream:t.stream??!1})._thenUnwrap(r=>("object"in r&&r.object==="response"&&zu(r),r))}retrieve(t,n={},r){return this._client.get(Re`/responses/${t}`,{query:n,...r,stream:(n==null?void 0:n.stream)??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&zu(s),s))}delete(t,n){return this._client.delete(Re`/responses/${t}`,{...n,headers:Ye([{Accept:"*/*"},n==null?void 0:n.headers])})}parse(t,n){return this._client.responses.create(t,n)._thenUnwrap(r=>gv(r,t))}stream(t,n){return Yd.createResponse(this._client,t,n)}cancel(t,n){return this._client.post(Re`/responses/${t}/cancel`,n)}}Xd.InputItems=yv;class bv extends st{create(t,n,r){return this._client.post(Re`/uploads/${t}/parts`,ys({body:n,...r},this._client))}}class Kd extends st{constructor(){super(...arguments),this.parts=new bv(this._client)}create(t,n){return this._client.post("/uploads",{body:t,...n})}cancel(t,n){return this._client.post(Re`/uploads/${t}/cancel`,n)}complete(t,n,r){return this._client.post(Re`/uploads/${t}/complete`,{body:n,...r})}}Kd.Parts=bv;const iR=async e=>{const t=await Promise.allSettled(e),n=t.filter(s=>s.status==="rejected");if(n.length){for(const s of n)console.error(s.reason);throw new Error(`${n.length} promise(s) failed - see the above errors`)}const r=[];for(const s of t)s.status==="fulfilled"&&r.push(s.value);return r};class vv extends st{create(t,n,r){return this._client.post(Re`/vector_stores/${t}/file_batches`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Re`/vector_stores/${s}/file_batches/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{vector_store_id:s}=n;return this._client.post(Re`/vector_stores/${s}/file_batches/${t}/cancel`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n);return await this.poll(t,s.id,r)}listFiles(t,n,r){const{vector_store_id:s,...o}=n;return this._client.getAPIList(Re`/vector_stores/${s}/file_batches/${t}/files`,on,{query:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:l}=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse();switch(i.status){case"in_progress":let u=5e3;if(r!=null&&r.pollIntervalMs)u=r.pollIntervalMs;else{const f=l.headers.get("openai-poll-after-ms");if(f){const h=parseInt(f);isNaN(h)||(u=h)}}await Ji(u);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(t,{files:n,fileIds:r=[]},s){if(n==null||n.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const o=(s==null?void 0:s.maxConcurrency)??5,i=Math.min(o,n.length),l=this._client,u=n.values(),f=[...r];async function h(b){for(let v of b){const w=await l.files.create({file:v,purpose:"assistants"},s);f.push(w.id)}}const m=Array(i).fill(u).map(h);return await iR(m),await this.createAndPoll(t,{file_ids:f})}}class Sv extends st{create(t,n,r){return this._client.post(Re`/vector_stores/${t}/files`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Re`/vector_stores/${s}/files/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{vector_store_id:s,...o}=n;return this._client.post(Re`/vector_stores/${s}/files/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Re`/vector_stores/${t}/files`,on,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{vector_store_id:s}=n;return this._client.delete(Re`/vector_stores/${s}/files/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n,r);return await this.poll(t,s.id,r)}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const i=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse(),l=i.data;switch(l.status){case"in_progress":let u=5e3;if(r!=null&&r.pollIntervalMs)u=r.pollIntervalMs;else{const f=i.response.headers.get("openai-poll-after-ms");if(f){const h=parseInt(f);isNaN(h)||(u=h)}}await Ji(u);break;case"failed":case"completed":return l}}}async upload(t,n,r){const s=await this._client.files.create({file:n,purpose:"assistants"},r);return this.create(t,{file_id:s.id},r)}async uploadAndPoll(t,n,r){const s=await this.upload(t,n,r);return await this.poll(t,s.id,r)}content(t,n,r){const{vector_store_id:s}=n;return this._client.getAPIList(Re`/vector_stores/${s}/files/${t}/content`,Dl,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class zl extends st{constructor(){super(...arguments),this.files=new Sv(this._client),this.fileBatches=new vv(this._client)}create(t,n){return this._client.post("/vector_stores",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Re`/vector_stores/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Re`/vector_stores/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/vector_stores",on,{query:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Re`/vector_stores/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}search(t,n,r){return this._client.getAPIList(Re`/vector_stores/${t}/search`,Dl,{body:n,method:"post",...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}zl.Files=Sv;zl.FileBatches=vv;var Bs,xv,sl;class wv extends st{constructor(){super(...arguments),Bs.add(this)}async unwrap(t,n,r=this._client.webhookSecret,s=300){return await this.verifySignature(t,n,r,s),JSON.parse(t)}async verifySignature(t,n,r=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");re(this,Bs,"m",xv).call(this,r);const o=Ye([n]).values,i=re(this,Bs,"m",sl).call(this,o,"webhook-signature"),l=re(this,Bs,"m",sl).call(this,o,"webhook-timestamp"),u=re(this,Bs,"m",sl).call(this,o,"webhook-id"),f=parseInt(l,10);if(isNaN(f))throw new yi("Invalid webhook timestamp format");const h=Math.floor(Date.now()/1e3);if(h-f>s)throw new yi("Webhook timestamp is too old");if(f>h+s)throw new yi("Webhook timestamp is too new");const m=i.split(" ").map(S=>S.startsWith("v1,")?S.substring(3):S),b=r.startsWith("whsec_")?Buffer.from(r.replace("whsec_",""),"base64"):Buffer.from(r,"utf-8"),v=u?`${u}.${l}.${t}`:`${l}.${t}`,w=await crypto.subtle.importKey("raw",b,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(const S of m)try{const k=Buffer.from(S,"base64");if(await crypto.subtle.verify("HMAC",w,k,new TextEncoder().encode(v)))return}catch{continue}throw new yi("The given webhook signature does not match the expected signature")}}Bs=new WeakSet,xv=function(t){if(typeof t!="string"||t.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},sl=function(t,n){if(!t)throw new Error("Headers are required");const r=t.get(n);if(r==null)throw new Error(`Missing required header: ${n}`);return r};var Wu,Vd,ol,_v;class mt{constructor({baseURL:t=Ls("OPENAI_BASE_URL"),apiKey:n=Ls("OPENAI_API_KEY"),organization:r=Ls("OPENAI_ORG_ID")??null,project:s=Ls("OPENAI_PROJECT_ID")??null,webhookSecret:o=Ls("OPENAI_WEBHOOK_SECRET")??null,...i}={}){if(Wu.add(this),ol.set(this,void 0),this.completions=new rv(this),this.chat=new Ld(this),this.embeddings=new ov(this),this.files=new av(this),this.images=new hv(this),this.audio=new Zi(this),this.moderations=new mv(this),this.models=new pv(this),this.fineTuning=new no(this),this.graders=new Hd(this),this.vectorStores=new zl(this),this.webhooks=new wv(this),this.beta=new ea(this),this.batches=new Jb(this),this.uploads=new Kd(this),this.responses=new Xd(this),this.evals=new zd(this),this.containers=new Nd(this),n===void 0)throw new Ze("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const l={apiKey:n,organization:r,project:s,webhookSecret:o,...i,baseURL:t||"https://api.openai.com/v1"};if(!l.dangerouslyAllowBrowser&&aj())throw new Ze(`It looks like you're running in a browser-like environment.
|
|
198
|
+
${m}`)}return i},Re=zj(Pb);let Mb=class extends st{list(t,n={},r){return this._client.getAPIList(Re`/chat/completions/${t}/messages`,on,{query:n,...r})}};function Wj(e){return typeof e.parse=="function"}const bl=e=>(e==null?void 0:e.role)==="assistant",Eb=e=>(e==null?void 0:e.role)==="tool";var Lu,Za,el,xi,wi,tl,_i,kr,ki,vl,Sl,Bs,jb;class Rd{constructor(){Lu.add(this),this.controller=new AbortController,Za.set(this,void 0),el.set(this,()=>{}),xi.set(this,()=>{}),wi.set(this,void 0),tl.set(this,()=>{}),_i.set(this,()=>{}),kr.set(this,{}),ki.set(this,!1),vl.set(this,!1),Sl.set(this,!1),Bs.set(this,!1),Qe(this,Za,new Promise((t,n)=>{Qe(this,el,t,"f"),Qe(this,xi,n,"f")})),Qe(this,wi,new Promise((t,n)=>{Qe(this,tl,t,"f"),Qe(this,_i,n,"f")})),re(this,Za,"f").catch(()=>{}),re(this,wi,"f").catch(()=>{})}_run(t){setTimeout(()=>{t().then(()=>{this._emitFinal(),this._emit("end")},re(this,Lu,"m",jb).bind(this))},0)}_connected(){this.ended||(re(this,el,"f").call(this),this._emit("connect"))}get ended(){return re(this,ki,"f")}get errored(){return re(this,vl,"f")}get aborted(){return re(this,Sl,"f")}abort(){this.controller.abort()}on(t,n){return(re(this,kr,"f")[t]||(re(this,kr,"f")[t]=[])).push({listener:n}),this}off(t,n){const r=re(this,kr,"f")[t];if(!r)return this;const s=r.findIndex(o=>o.listener===n);return s>=0&&r.splice(s,1),this}once(t,n){return(re(this,kr,"f")[t]||(re(this,kr,"f")[t]=[])).push({listener:n,once:!0}),this}emitted(t){return new Promise((n,r)=>{Qe(this,Bs,!0),t!=="error"&&this.once("error",r),this.once(t,n)})}async done(){Qe(this,Bs,!0),await re(this,wi,"f")}_emit(t,...n){if(re(this,ki,"f"))return;t==="end"&&(Qe(this,ki,!0),re(this,tl,"f").call(this));const r=re(this,kr,"f")[t];if(r&&(re(this,kr,"f")[t]=r.filter(s=>!s.once),r.forEach(({listener:s})=>s(...n))),t==="abort"){const s=n[0];!re(this,Bs,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,xi,"f").call(this,s),re(this,_i,"f").call(this,s),this._emit("end");return}if(t==="error"){const s=n[0];!re(this,Bs,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,xi,"f").call(this,s),re(this,_i,"f").call(this,s),this._emit("end")}}_emitFinal(){}}Za=new WeakMap,el=new WeakMap,xi=new WeakMap,wi=new WeakMap,tl=new WeakMap,_i=new WeakMap,kr=new WeakMap,ki=new WeakMap,vl=new WeakMap,Sl=new WeakMap,Bs=new WeakMap,Lu=new WeakSet,jb=function(t){if(Qe(this,vl,!0),t instanceof Error&&t.name==="AbortError"&&(t=new Gn),t instanceof Gn)return Qe(this,Sl,!0),this._emit("abort",t);if(t instanceof Ze)return this._emit("error",t);if(t instanceof Error){const n=new Ze(t.message);return n.cause=t,this._emit("error",n)}return this._emit("error",new Ze(String(t)))};function Ad(e){return(e==null?void 0:e.$brand)==="auto-parseable-response-format"}function Zi(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function Uj(e,t){return!t||!Rb(t)?{...e,choices:e.choices.map(n=>({...n,message:{...n.message,parsed:null,...n.message.tool_calls?{tool_calls:n.message.tool_calls}:void 0}}))}:Id(e,t)}function Id(e,t){const n=e.choices.map(r=>{var s;if(r.finish_reason==="length")throw new db;if(r.finish_reason==="content_filter")throw new fb;return{...r,message:{...r.message,...r.message.tool_calls?{tool_calls:((s=r.message.tool_calls)==null?void 0:s.map(o=>Hj(t,o)))??void 0}:void 0,parsed:r.message.content&&!r.message.refusal?qj(t,r.message.content):null}}});return{...e,choices:n}}function qj(e,t){var n,r;return((n=e.response_format)==null?void 0:n.type)!=="json_schema"?null:((r=e.response_format)==null?void 0:r.type)==="json_schema"?"$parseRaw"in e.response_format?e.response_format.$parseRaw(t):JSON.parse(t):null}function Hj(e,t){var r;const n=(r=e.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===t.function.name});return{...t,function:{...t.function,parsed_arguments:Zi(n)?n.$parseRaw(t.function.arguments):n!=null&&n.function.strict?JSON.parse(t.function.arguments):null}}}function Yj(e,t){var r;if(!e)return!1;const n=(r=e.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===t.function.name});return Zi(n)||(n==null?void 0:n.function.strict)||!1}function Rb(e){var t;return Ad(e.response_format)?!0:((t=e.tools)==null?void 0:t.some(n=>Zi(n)||n.type==="function"&&n.function.strict===!0))??!1}function Xj(e){for(const t of e??[]){if(t.type!=="function")throw new Ze(`Currently only \`function\` tool types support auto-parsing; Received \`${t.type}\``);if(t.function.strict!==!0)throw new Ze(`The \`${t.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Rn,Fu,xl,Du,Nu,Bu,Ab,Ib;const Kj=10;class Ob extends Rd{constructor(){super(...arguments),Rn.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(t){var r;this._chatCompletions.push(t),this._emit("chatCompletion",t);const n=(r=t.choices[0])==null?void 0:r.message;return n&&this._addMessage(n),t}_addMessage(t,n=!0){if("content"in t||(t.content=null),this.messages.push(t),n){if(this._emit("message",t),Eb(t)&&t.content)this._emit("functionToolCallResult",t.content);else if(bl(t)&&t.tool_calls)for(const r of t.tool_calls)r.type==="function"&&this._emit("functionToolCall",r.function)}}async finalChatCompletion(){await this.done();const t=this._chatCompletions[this._chatCompletions.length-1];if(!t)throw new Ze("stream ended without producing a ChatCompletion");return t}async finalContent(){return await this.done(),re(this,Rn,"m",Fu).call(this)}async finalMessage(){return await this.done(),re(this,Rn,"m",xl).call(this)}async finalFunctionToolCall(){return await this.done(),re(this,Rn,"m",Du).call(this)}async finalFunctionToolCallResult(){return await this.done(),re(this,Rn,"m",Nu).call(this)}async totalUsage(){return await this.done(),re(this,Rn,"m",Bu).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const t=this._chatCompletions[this._chatCompletions.length-1];t&&this._emit("finalChatCompletion",t);const n=re(this,Rn,"m",xl).call(this);n&&this._emit("finalMessage",n);const r=re(this,Rn,"m",Fu).call(this);r&&this._emit("finalContent",r);const s=re(this,Rn,"m",Du).call(this);s&&this._emit("finalFunctionToolCall",s);const o=re(this,Rn,"m",Nu).call(this);o!=null&&this._emit("finalFunctionToolCallResult",o),this._chatCompletions.some(i=>i.usage)&&this._emit("totalUsage",re(this,Rn,"m",Bu).call(this))}async _createChatCompletion(t,n,r){const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Rn,"m",Ab).call(this,n);const o=await t.chat.completions.create({...n,stream:!1},{...r,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Id(o,n))}async _runChatCompletion(t,n,r){for(const s of n.messages)this._addMessage(s,!1);return await this._createChatCompletion(t,n,r)}async _runTools(t,n,r){var v,w,S;const s="tool",{tool_choice:o="auto",stream:i,...l}=n,u=typeof o!="string"&&((v=o==null?void 0:o.function)==null?void 0:v.name),{maxChatCompletions:d=Kj}=r||{},h=n.tools.map(k=>{if(Zi(k)){if(!k.$callback)throw new Ze("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:k.$callback,name:k.function.name,description:k.function.description||"",parameters:k.function.parameters,parse:k.$parseRaw,strict:!0}}}return k}),m={};for(const k of h)k.type==="function"&&(m[k.function.name||k.function.function.name]=k.function);const b="tools"in n?h.map(k=>k.type==="function"?{type:"function",function:{name:k.function.name||k.function.function.name,parameters:k.function.parameters,description:k.function.description,strict:k.function.strict}}:k):void 0;for(const k of n.messages)this._addMessage(k,!1);for(let k=0;k<d;++k){const T=(w=(await this._createChatCompletion(t,{...l,tool_choice:o,tools:b,messages:[...this.messages]},r)).choices[0])==null?void 0:w.message;if(!T)throw new Ze("missing message in ChatCompletion response");if(!((S=T.tool_calls)!=null&&S.length))return;for(const j of T.tool_calls){if(j.type!=="function")continue;const C=j.id,{name:E,arguments:A}=j.function,O=m[E];if(O){if(u&&u!==E){const q=`Invalid tool_call: ${JSON.stringify(E)}. ${JSON.stringify(u)} requested. Please try again`;this._addMessage({role:s,tool_call_id:C,content:q});continue}}else{const q=`Invalid tool_call: ${JSON.stringify(E)}. Available options are: ${Object.keys(m).map(I=>JSON.stringify(I)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:C,content:q});continue}let D;try{D=Wj(O)?await O.parse(A):A}catch(q){const I=q instanceof Error?q.message:String(q);this._addMessage({role:s,tool_call_id:C,content:I});continue}const F=await O.function(D,this),N=re(this,Rn,"m",Ib).call(this,F);if(this._addMessage({role:s,tool_call_id:C,content:N}),u)return}}}}Rn=new WeakSet,Fu=function(){return re(this,Rn,"m",xl).call(this).content??null},xl=function(){let t=this.messages.length;for(;t-- >0;){const n=this.messages[t];if(bl(n))return{...n,content:n.content??null,refusal:n.refusal??null}}throw new Ze("stream ended without producing a ChatCompletionMessage with role=assistant")},Du=function(){var t,n;for(let r=this.messages.length-1;r>=0;r--){const s=this.messages[r];if(bl(s)&&((t=s==null?void 0:s.tool_calls)!=null&&t.length))return(n=s.tool_calls.at(-1))==null?void 0:n.function}},Nu=function(){for(let t=this.messages.length-1;t>=0;t--){const n=this.messages[t];if(Eb(n)&&n.content!=null&&typeof n.content=="string"&&this.messages.some(r=>{var s;return r.role==="assistant"&&((s=r.tool_calls)==null?void 0:s.some(o=>o.type==="function"&&o.id===n.tool_call_id))}))return n.content}},Bu=function(){const t={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:n}of this._chatCompletions)n&&(t.completion_tokens+=n.completion_tokens,t.prompt_tokens+=n.prompt_tokens,t.total_tokens+=n.total_tokens);return t},Ab=function(t){if(t.n!=null&&t.n>1)throw new Ze("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},Ib=function(t){return typeof t=="string"?t:t===void 0?"undefined":JSON.stringify(t)};class Od extends Ob{static runTools(t,n,r){const s=new Od,o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(t,n,o)),s}_addMessage(t,n=!0){super._addMessage(t,n),bl(t)&&t.content&&this._emit("content",t.content)}}const $b=1,Lb=2,Fb=4,Db=8,Nb=16,Bb=32,zb=64,Wb=128,Ub=256,qb=Wb|Ub,Hb=Nb|Bb|qb|zb,Yb=$b|Lb|Hb,Xb=Fb|Db,Vj=Yb|Xb,pn={STR:$b,NUM:Lb,ARR:Fb,OBJ:Db,NULL:Nb,BOOL:Bb,NAN:zb,INFINITY:Wb,MINUS_INFINITY:Ub,INF:qb,SPECIAL:Hb,ATOM:Yb,COLLECTION:Xb,ALL:Vj};class Gj extends Error{}class Jj extends Error{}function Qj(e,t=pn.ALL){if(typeof e!="string")throw new TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw new Error(`${e} is empty`);return Zj(e.trim(),t)}const Zj=(e,t)=>{const n=e.length;let r=0;const s=b=>{throw new Gj(`${b} at position ${r}`)},o=b=>{throw new Jj(`${b} at position ${r}`)},i=()=>(m(),r>=n&&s("Unexpected end of input"),e[r]==='"'?l():e[r]==="{"?u():e[r]==="["?d():e.substring(r,r+4)==="null"||pn.NULL&t&&n-r<4&&"null".startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)==="true"||pn.BOOL&t&&n-r<4&&"true".startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)==="false"||pn.BOOL&t&&n-r<5&&"false".startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)==="Infinity"||pn.INFINITY&t&&n-r<8&&"Infinity".startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)==="-Infinity"||pn.MINUS_INFINITY&t&&1<n-r&&n-r<9&&"-Infinity".startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)==="NaN"||pn.NAN&t&&n-r<3&&"NaN".startsWith(e.substring(r))?(r+=3,NaN):h()),l=()=>{const b=r;let v=!1;for(r++;r<n&&(e[r]!=='"'||v&&e[r-1]==="\\");)v=e[r]==="\\"?!v:!1,r++;if(e.charAt(r)=='"')try{return JSON.parse(e.substring(b,++r-Number(v)))}catch(w){o(String(w))}else if(pn.STR&t)try{return JSON.parse(e.substring(b,r-Number(v))+'"')}catch{return JSON.parse(e.substring(b,e.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},u=()=>{r++,m();const b={};try{for(;e[r]!=="}";){if(m(),r>=n&&pn.OBJ&t)return b;const v=l();m(),r++;try{const w=i();Object.defineProperty(b,v,{value:w,writable:!0,enumerable:!0,configurable:!0})}catch(w){if(pn.OBJ&t)return b;throw w}m(),e[r]===","&&r++}}catch{if(pn.OBJ&t)return b;s("Expected '}' at end of object")}return r++,b},d=()=>{r++;const b=[];try{for(;e[r]!=="]";)b.push(i()),m(),e[r]===","&&r++}catch{if(pn.ARR&t)return b;s("Expected ']' at end of array")}return r++,b},h=()=>{if(r===0){e==="-"&&pn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e)}catch(v){if(pn.NUM&t)try{return e[e.length-1]==="."?JSON.parse(e.substring(0,e.lastIndexOf("."))):JSON.parse(e.substring(0,e.lastIndexOf("e")))}catch{}o(String(v))}}const b=r;for(e[r]==="-"&&r++;e[r]&&!",]}".includes(e[r]);)r++;r==n&&!(pn.NUM&t)&&s("Unterminated number literal");try{return JSON.parse(e.substring(b,r))}catch{e.substring(b,r)==="-"&&pn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e.substring(b,e.lastIndexOf("e")))}catch(w){o(String(w))}}},m=()=>{for(;r<n&&`
|
|
199
|
+
\r `.includes(e[r]);)r++};return i()},wp=e=>Qj(e,pn.ALL^pn.NUM);var cn,_r,Ls,Lr,$c,Da,Lc,Fc,Dc,Na,Nc,_p;class Xi extends Ob{constructor(t){super(),cn.add(this),_r.set(this,void 0),Ls.set(this,void 0),Lr.set(this,void 0),Qe(this,_r,t),Qe(this,Ls,[])}get currentChatCompletionSnapshot(){return re(this,Lr,"f")}static fromReadableStream(t){const n=new Xi(null);return n._run(()=>n._fromReadableStream(t)),n}static createChatCompletion(t,n,r){const s=new Xi(n);return s._run(()=>s._runChatCompletion(t,{...n,stream:!0},{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createChatCompletion(t,n,r){var i;super._createChatCompletion;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,cn,"m",$c).call(this);const o=await t.chat.completions.create({...n,stream:!0},{...r,signal:this.controller.signal});this._connected();for await(const l of o)re(this,cn,"m",Lc).call(this,l);if((i=o.controller.signal)!=null&&i.aborted)throw new Gn;return this._addChatCompletion(re(this,cn,"m",Na).call(this))}async _fromReadableStream(t,n){var i;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),re(this,cn,"m",$c).call(this),this._connected();const s=Sr.fromReadableStream(t,this.controller);let o;for await(const l of s)o&&o!==l.id&&this._addChatCompletion(re(this,cn,"m",Na).call(this)),re(this,cn,"m",Lc).call(this,l),o=l.id;if((i=s.controller.signal)!=null&&i.aborted)throw new Gn;return this._addChatCompletion(re(this,cn,"m",Na).call(this))}[(_r=new WeakMap,Ls=new WeakMap,Lr=new WeakMap,cn=new WeakSet,$c=function(){this.ended||Qe(this,Lr,void 0)},Da=function(n){let r=re(this,Ls,"f")[n.index];return r||(r={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},re(this,Ls,"f")[n.index]=r,r)},Lc=function(n){var s,o,i,l,u,d,h,m,b,v,w,S,k,P,T;if(this.ended)return;const r=re(this,cn,"m",_p).call(this,n);this._emit("chunk",n,r);for(const j of n.choices){const C=r.choices[j.index];j.delta.content!=null&&((s=C.message)==null?void 0:s.role)==="assistant"&&((o=C.message)!=null&&o.content)&&(this._emit("content",j.delta.content,C.message.content),this._emit("content.delta",{delta:j.delta.content,snapshot:C.message.content,parsed:C.message.parsed})),j.delta.refusal!=null&&((i=C.message)==null?void 0:i.role)==="assistant"&&((l=C.message)!=null&&l.refusal)&&this._emit("refusal.delta",{delta:j.delta.refusal,snapshot:C.message.refusal}),((u=j.logprobs)==null?void 0:u.content)!=null&&((d=C.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(h=j.logprobs)==null?void 0:h.content,snapshot:((m=C.logprobs)==null?void 0:m.content)??[]}),((b=j.logprobs)==null?void 0:b.refusal)!=null&&((v=C.message)==null?void 0:v.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(w=j.logprobs)==null?void 0:w.refusal,snapshot:((S=C.logprobs)==null?void 0:S.refusal)??[]});const E=re(this,cn,"m",Da).call(this,C);C.finish_reason&&(re(this,cn,"m",Dc).call(this,C),E.current_tool_call_index!=null&&re(this,cn,"m",Fc).call(this,C,E.current_tool_call_index));for(const A of j.delta.tool_calls??[])E.current_tool_call_index!==A.index&&(re(this,cn,"m",Dc).call(this,C),E.current_tool_call_index!=null&&re(this,cn,"m",Fc).call(this,C,E.current_tool_call_index)),E.current_tool_call_index=A.index;for(const A of j.delta.tool_calls??[]){const O=(k=C.message.tool_calls)==null?void 0:k[A.index];O!=null&&O.type&&((O==null?void 0:O.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(P=O.function)==null?void 0:P.name,index:A.index,arguments:O.function.arguments,parsed_arguments:O.function.parsed_arguments,arguments_delta:((T=A.function)==null?void 0:T.arguments)??""}):(O==null||O.type,void 0))}}},Fc=function(n,r){var i,l,u;if(re(this,cn,"m",Da).call(this,n).done_tool_calls.has(r))return;const o=(i=n.message.tool_calls)==null?void 0:i[r];if(!o)throw new Error("no tool call snapshot");if(!o.type)throw new Error("tool call snapshot missing `type`");if(o.type==="function"){const d=(u=(l=re(this,_r,"f"))==null?void 0:l.tools)==null?void 0:u.find(h=>h.type==="function"&&h.function.name===o.function.name);this._emit("tool_calls.function.arguments.done",{name:o.function.name,index:r,arguments:o.function.arguments,parsed_arguments:Zi(d)?d.$parseRaw(o.function.arguments):d!=null&&d.function.strict?JSON.parse(o.function.arguments):null})}else o.type},Dc=function(n){var s,o;const r=re(this,cn,"m",Da).call(this,n);if(n.message.content&&!r.content_done){r.content_done=!0;const i=re(this,cn,"m",Nc).call(this);this._emit("content.done",{content:n.message.content,parsed:i?i.$parseRaw(n.message.content):null})}n.message.refusal&&!r.refusal_done&&(r.refusal_done=!0,this._emit("refusal.done",{refusal:n.message.refusal})),(s=n.logprobs)!=null&&s.content&&!r.logprobs_content_done&&(r.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:n.logprobs.content})),(o=n.logprobs)!=null&&o.refusal&&!r.logprobs_refusal_done&&(r.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:n.logprobs.refusal}))},Na=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=re(this,Lr,"f");if(!n)throw new Ze("request ended without sending any chunks");return Qe(this,Lr,void 0),Qe(this,Ls,[]),eR(n,re(this,_r,"f"))},Nc=function(){var r;const n=(r=re(this,_r,"f"))==null?void 0:r.response_format;return Ad(n)?n:null},_p=function(n){var r,s,o,i;let l=re(this,Lr,"f");const{choices:u,...d}=n;l?Object.assign(l,d):l=Qe(this,Lr,{...d,choices:[]});for(const{delta:h,finish_reason:m,index:b,logprobs:v=null,...w}of n.choices){let S=l.choices[b];if(S||(S=l.choices[b]={finish_reason:m,index:b,message:{},logprobs:v,...w}),v)if(!S.logprobs)S.logprobs=Object.assign({},v);else{const{content:A,refusal:O,...D}=v;Object.assign(S.logprobs,D),A&&((r=S.logprobs).content??(r.content=[]),S.logprobs.content.push(...A)),O&&((s=S.logprobs).refusal??(s.refusal=[]),S.logprobs.refusal.push(...O))}if(m&&(S.finish_reason=m,re(this,_r,"f")&&Rb(re(this,_r,"f")))){if(m==="length")throw new db;if(m==="content_filter")throw new fb}if(Object.assign(S,w),!h)continue;const{content:k,refusal:P,function_call:T,role:j,tool_calls:C,...E}=h;if(Object.assign(S.message,E),P&&(S.message.refusal=(S.message.refusal||"")+P),j&&(S.message.role=j),T&&(S.message.function_call?(T.name&&(S.message.function_call.name=T.name),T.arguments&&((o=S.message.function_call).arguments??(o.arguments=""),S.message.function_call.arguments+=T.arguments)):S.message.function_call=T),k&&(S.message.content=(S.message.content||"")+k,!S.message.refusal&&re(this,cn,"m",Nc).call(this)&&(S.message.parsed=wp(S.message.content))),C){S.message.tool_calls||(S.message.tool_calls=[]);for(const{index:A,id:O,type:D,function:F,...N}of C){const q=(i=S.message.tool_calls)[A]??(i[A]={});Object.assign(q,N),O&&(q.id=O),D&&(q.type=D),F&&(q.function??(q.function={name:F.name??"",arguments:""})),F!=null&&F.name&&(q.function.name=F.name),F!=null&&F.arguments&&(q.function.arguments+=F.arguments,Yj(re(this,_r,"f"),q)&&(q.function.parsed_arguments=wp(q.function.arguments)))}}}return l},Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("chunk",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Sr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function eR(e,t){const{id:n,choices:r,created:s,model:o,system_fingerprint:i,...l}=e,u={...l,id:n,choices:r.map(({message:d,finish_reason:h,index:m,logprobs:b,...v})=>{if(!h)throw new Ze(`missing finish_reason for choice ${m}`);const{content:w=null,function_call:S,tool_calls:k,...P}=d,T=d.role;if(!T)throw new Ze(`missing role for choice ${m}`);if(S){const{arguments:j,name:C}=S;if(j==null)throw new Ze(`missing function_call.arguments for choice ${m}`);if(!C)throw new Ze(`missing function_call.name for choice ${m}`);return{...v,message:{content:w,function_call:{arguments:j,name:C},role:T,refusal:d.refusal??null},finish_reason:h,index:m,logprobs:b}}return k?{...v,index:m,finish_reason:h,logprobs:b,message:{...P,role:T,content:w,refusal:d.refusal??null,tool_calls:k.map((j,C)=>{const{function:E,type:A,id:O,...D}=j,{arguments:F,name:N,...q}=E||{};if(O==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].id
|
|
200
|
+
${Ba(e)}`);if(A==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].type
|
|
201
|
+
${Ba(e)}`);if(N==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].function.name
|
|
202
|
+
${Ba(e)}`);if(F==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].function.arguments
|
|
203
|
+
${Ba(e)}`);return{...D,id:O,type:A,function:{...q,name:N,arguments:F}}})}}:{...v,message:{...P,content:w,role:T,refusal:d.refusal??null},finish_reason:h,index:m,logprobs:b}}),created:s,model:o,object:"chat.completion",...i?{system_fingerprint:i}:{}};return Uj(u,t)}function Ba(e){return JSON.stringify(e)}class wl extends Xi{static fromReadableStream(t){const n=new wl(null);return n._run(()=>n._fromReadableStream(t)),n}static runTools(t,n,r){const s=new wl(n),o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(t,n,o)),s}}let $d=class extends st{constructor(){super(...arguments),this.messages=new Mb(this._client)}create(t,n){return this._client.post("/chat/completions",{body:t,...n,stream:t.stream??!1})}retrieve(t,n){return this._client.get(Re`/chat/completions/${t}`,n)}update(t,n,r){return this._client.post(Re`/chat/completions/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/chat/completions",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/chat/completions/${t}`,n)}parse(t,n){return Xj(t.tools),this._client.chat.completions.create(t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(r=>Id(r,t))}runTools(t,n){return t.stream?wl.runTools(this._client,t,n):Od.runTools(this._client,t,n)}stream(t,n){return Xi.createChatCompletion(this._client,t,n)}};$d.Messages=Mb;class Ld extends st{constructor(){super(...arguments),this.completions=new $d(this._client)}}Ld.Completions=$d;const Kb=Symbol("brand.privateNullableHeaders");function*tR(e){if(!e)return;if(Kb in e){const{values:r,nulls:s}=e;yield*r.entries();for(const o of s)yield[o,null];return}let t=!1,n;e instanceof Headers?n=e.entries():lp(e)?n=e:(t=!0,n=Object.entries(e??{}));for(let r of n){const s=r[0];if(typeof s!="string")throw new TypeError("expected header name to be a string");const o=lp(r[1])?r[1]:[r[1]];let i=!1;for(const l of o)l!==void 0&&(t&&!i&&(i=!0,yield[s,null]),yield[s,l])}}const Ye=e=>{const t=new Headers,n=new Set;for(const r of e){const s=new Set;for(const[o,i]of tR(r)){const l=o.toLowerCase();s.has(l)||(t.delete(o),s.add(l)),i===null?(t.delete(o),n.add(l)):(t.append(o,i),n.delete(l))}}return{[Kb]:!0,values:t,nulls:n}};class Vb extends st{create(t,n){return this._client.post("/audio/speech",{body:t,...n,headers:Ye([{Accept:"application/octet-stream"},n==null?void 0:n.headers]),__binaryResponse:!0})}}class Gb extends st{create(t,n){return this._client.post("/audio/transcriptions",bs({body:t,...n,stream:t.stream??!1,__metadata:{model:t.model}},this._client))}}class Jb extends st{create(t,n){return this._client.post("/audio/translations",bs({body:t,...n,__metadata:{model:t.model}},this._client))}}class ea extends st{constructor(){super(...arguments),this.transcriptions=new Gb(this._client),this.translations=new Jb(this._client),this.speech=new Vb(this._client)}}ea.Transcriptions=Gb;ea.Translations=Jb;ea.Speech=Vb;class Qb extends st{create(t,n){return this._client.post("/batches",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/batches/${t}`,n)}list(t={},n){return this._client.getAPIList("/batches",on,{query:t,...n})}cancel(t,n){return this._client.post(Re`/batches/${t}/cancel`,n)}}class Zb extends st{create(t,n){return this._client.post("/assistants",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Re`/assistants/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Re`/assistants/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/assistants",on,{query:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Re`/assistants/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class ev extends st{create(t,n){return this._client.post("/realtime/sessions",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class tv extends st{create(t,n){return this._client.post("/realtime/transcription_sessions",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Bl extends st{constructor(){super(...arguments),this.sessions=new ev(this._client),this.transcriptionSessions=new tv(this._client)}}Bl.Sessions=ev;Bl.TranscriptionSessions=tv;class nv extends st{create(t,n,r){return this._client.post(Re`/threads/${t}/messages`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(Re`/threads/${s}/messages/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Re`/threads/${s}/messages/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Re`/threads/${t}/messages`,on,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{thread_id:s}=n;return this._client.delete(Re`/threads/${s}/messages/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class rv extends st{retrieve(t,n,r){const{thread_id:s,run_id:o,...i}=n;return this._client.get(Re`/threads/${s}/runs/${o}/steps/${t}`,{query:i,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n,r){const{thread_id:s,...o}=n;return this._client.getAPIList(Re`/threads/${s}/runs/${t}/steps`,on,{query:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}const nR=e=>{if(typeof Buffer<"u"){const t=Buffer.from(e,"base64");return Array.from(new Float32Array(t.buffer,t.byteOffset,t.length/Float32Array.BYTES_PER_ELEMENT))}else{const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s<n;s++)r[s]=t.charCodeAt(s);return Array.from(new Float32Array(r.buffer))}};var Bc={};const Fs=e=>{var t,n,r,s;if(typeof globalThis.process<"u")return((t=Bc==null?void 0:Bc[e])==null?void 0:t.trim())??void 0;if(typeof globalThis.Deno<"u")return(s=(r=(n=globalThis.Deno.env)==null?void 0:n.get)==null?void 0:r.call(n,e))==null?void 0:s.trim()};var Sn,ds,zu,mr,nl,sr,fs,Hs,os,_l,qn,rl,sl,Oi,Ci,Ti,kp,Cp,Tp,Pp,Mp,Ep,jp;class $i extends Rd{constructor(){super(...arguments),Sn.add(this),zu.set(this,[]),mr.set(this,{}),nl.set(this,{}),sr.set(this,void 0),fs.set(this,void 0),Hs.set(this,void 0),os.set(this,void 0),_l.set(this,void 0),qn.set(this,void 0),rl.set(this,void 0),sl.set(this,void 0),Oi.set(this,void 0)}[(zu=new WeakMap,mr=new WeakMap,nl=new WeakMap,sr=new WeakMap,fs=new WeakMap,Hs=new WeakMap,os=new WeakMap,_l=new WeakMap,qn=new WeakMap,rl=new WeakMap,sl=new WeakMap,Oi=new WeakMap,Sn=new WeakSet,Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(t){const n=new ds;return n._run(()=>n._fromReadableStream(t)),n}async _fromReadableStream(t,n){var o;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),this._connected();const s=Sr.fromReadableStream(t,this.controller);for await(const i of s)re(this,Sn,"m",Ci).call(this,i);if((o=s.controller.signal)!=null&&o.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ti).call(this))}toReadableStream(){return new Sr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(t,n,r,s){const o=new ds;return o._run(()=>o._runToolAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}async _createToolAssistantStream(t,n,r,s){var u;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const i={...r,stream:!0},l=await t.submitToolOutputs(n,i,{...s,signal:this.controller.signal});this._connected();for await(const d of l)re(this,Sn,"m",Ci).call(this,d);if((u=l.controller.signal)!=null&&u.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ti).call(this))}static createThreadAssistantStream(t,n,r){const s=new ds;return s._run(()=>s._threadAssistantStream(t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(t,n,r,s){const o=new ds;return o._run(()=>o._runAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}currentEvent(){return re(this,rl,"f")}currentRun(){return re(this,sl,"f")}currentMessageSnapshot(){return re(this,sr,"f")}currentRunStepSnapshot(){return re(this,Oi,"f")}async finalRunSteps(){return await this.done(),Object.values(re(this,mr,"f"))}async finalMessages(){return await this.done(),Object.values(re(this,nl,"f"))}async finalRun(){if(await this.done(),!re(this,fs,"f"))throw Error("Final run was not received.");return re(this,fs,"f")}async _createThreadAssistantStream(t,n,r){var l;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));const o={...n,stream:!0},i=await t.createAndRun(o,{...r,signal:this.controller.signal});this._connected();for await(const u of i)re(this,Sn,"m",Ci).call(this,u);if((l=i.controller.signal)!=null&&l.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ti).call(this))}async _createAssistantStream(t,n,r,s){var u;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const i={...r,stream:!0},l=await t.create(n,i,{...s,signal:this.controller.signal});this._connected();for await(const d of l)re(this,Sn,"m",Ci).call(this,d);if((u=l.controller.signal)!=null&&u.aborted)throw new Gn;return this._addRun(re(this,Sn,"m",Ti).call(this))}static accumulateDelta(t,n){for(const[r,s]of Object.entries(n)){if(!t.hasOwnProperty(r)){t[r]=s;continue}let o=t[r];if(o==null){t[r]=s;continue}if(r==="index"||r==="type"){t[r]=s;continue}if(typeof o=="string"&&typeof s=="string")o+=s;else if(typeof o=="number"&&typeof s=="number")o+=s;else if(Ac(o)&&Ac(s))o=this.accumulateDelta(o,s);else if(Array.isArray(o)&&Array.isArray(s)){if(o.every(i=>typeof i=="string"||typeof i=="number")){o.push(...s);continue}for(const i of s){if(!Ac(i))throw new Error(`Expected array delta entry to be an object but got: ${i}`);const l=i.index;if(l==null)throw console.error(i),new Error("Expected array delta entry to have an `index` property");if(typeof l!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${l}`);const u=o[l];u==null?o.push(i):o[l]=this.accumulateDelta(u,i)}continue}else throw Error(`Unhandled record type: ${r}, deltaValue: ${s}, accValue: ${o}`);t[r]=o}return t}_addRun(t){return t}async _threadAssistantStream(t,n,r){return await this._createThreadAssistantStream(n,t,r)}async _runAssistantStream(t,n,r,s){return await this._createAssistantStream(n,t,r,s)}async _runToolAssistantStream(t,n,r,s){return await this._createToolAssistantStream(n,t,r,s)}}ds=$i,Ci=function(t){if(!this.ended)switch(Qe(this,rl,t),re(this,Sn,"m",Tp).call(this,t),t.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":re(this,Sn,"m",jp).call(this,t);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":re(this,Sn,"m",Cp).call(this,t);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":re(this,Sn,"m",kp).call(this,t);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},Ti=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");if(!re(this,fs,"f"))throw Error("Final run has not been received");return re(this,fs,"f")},kp=function(t){const[n,r]=re(this,Sn,"m",Mp).call(this,t,re(this,sr,"f"));Qe(this,sr,n),re(this,nl,"f")[n.id]=n;for(const s of r){const o=n.content[s.index];(o==null?void 0:o.type)=="text"&&this._emit("textCreated",o.text)}switch(t.event){case"thread.message.created":this._emit("messageCreated",t.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",t.data.delta,n),t.data.delta.content)for(const s of t.data.delta.content){if(s.type=="text"&&s.text){let o=s.text,i=n.content[s.index];if(i&&i.type=="text")this._emit("textDelta",o,i.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=re(this,Hs,"f")){if(re(this,os,"f"))switch(re(this,os,"f").type){case"text":this._emit("textDone",re(this,os,"f").text,re(this,sr,"f"));break;case"image_file":this._emit("imageFileDone",re(this,os,"f").image_file,re(this,sr,"f"));break}Qe(this,Hs,s.index)}Qe(this,os,n.content[s.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(re(this,Hs,"f")!==void 0){const s=t.data.content[re(this,Hs,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,re(this,sr,"f"));break;case"text":this._emit("textDone",s.text,re(this,sr,"f"));break}}re(this,sr,"f")&&this._emit("messageDone",t.data),Qe(this,sr,void 0)}},Cp=function(t){const n=re(this,Sn,"m",Pp).call(this,t);switch(Qe(this,Oi,n),t.event){case"thread.run.step.created":this._emit("runStepCreated",t.data);break;case"thread.run.step.delta":const r=t.data.delta;if(r.step_details&&r.step_details.type=="tool_calls"&&r.step_details.tool_calls&&n.step_details.type=="tool_calls")for(const o of r.step_details.tool_calls)o.index==re(this,_l,"f")?this._emit("toolCallDelta",o,n.step_details.tool_calls[o.index]):(re(this,qn,"f")&&this._emit("toolCallDone",re(this,qn,"f")),Qe(this,_l,o.index),Qe(this,qn,n.step_details.tool_calls[o.index]),re(this,qn,"f")&&this._emit("toolCallCreated",re(this,qn,"f")));this._emit("runStepDelta",t.data.delta,n);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":Qe(this,Oi,void 0),t.data.step_details.type=="tool_calls"&&re(this,qn,"f")&&(this._emit("toolCallDone",re(this,qn,"f")),Qe(this,qn,void 0)),this._emit("runStepDone",t.data,n);break}},Tp=function(t){re(this,zu,"f").push(t),this._emit("event",t)},Pp=function(t){switch(t.event){case"thread.run.step.created":return re(this,mr,"f")[t.data.id]=t.data,t.data;case"thread.run.step.delta":let n=re(this,mr,"f")[t.data.id];if(!n)throw Error("Received a RunStepDelta before creation of a snapshot");let r=t.data;if(r.delta){const s=ds.accumulateDelta(n,r.delta);re(this,mr,"f")[t.data.id]=s}return re(this,mr,"f")[t.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":re(this,mr,"f")[t.data.id]=t.data;break}if(re(this,mr,"f")[t.data.id])return re(this,mr,"f")[t.data.id];throw new Error("No snapshot available")},Mp=function(t,n){let r=[];switch(t.event){case"thread.message.created":return[t.data,r];case"thread.message.delta":if(!n)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let s=t.data;if(s.delta.content)for(const o of s.delta.content)if(o.index in n.content){let i=n.content[o.index];n.content[o.index]=re(this,Sn,"m",Ep).call(this,o,i)}else n.content[o.index]=o,r.push(o);return[n,r];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(n)return[n,r];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},Ep=function(t,n){return ds.accumulateDelta(n,t)},jp=function(t){switch(Qe(this,sl,t.data),t.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":Qe(this,fs,t.data),re(this,qn,"f")&&(this._emit("toolCallDone",re(this,qn,"f")),Qe(this,qn,void 0));break}};let Fd=class extends st{constructor(){super(...arguments),this.steps=new rv(this._client)}create(t,n,r){const{include:s,...o}=n;return this._client.post(Re`/threads/${t}/runs`,{query:{include:s},body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(Re`/threads/${s}/runs/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Re`/threads/${s}/runs/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Re`/threads/${t}/runs`,on,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{thread_id:s}=n;return this._client.post(Re`/threads/${s}/runs/${t}/cancel`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n,r);return await this.poll(s.id,{thread_id:t},r)}createAndStream(t,n,r){return $i.createAssistantStream(t,this._client.beta.threads.runs,n,r)}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:l}=await this.retrieve(t,n,{...r,headers:{...r==null?void 0:r.headers,...s}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let u=5e3;if(r!=null&&r.pollIntervalMs)u=r.pollIntervalMs;else{const d=l.headers.get("openai-poll-after-ms");if(d){const h=parseInt(d);isNaN(h)||(u=h)}}await Qi(u);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(t,n,r){return $i.createAssistantStream(t,this._client.beta.threads.runs,n,r)}submitToolOutputs(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Re`/threads/${s}/runs/${t}/submit_tool_outputs`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}async submitToolOutputsAndPoll(t,n,r){const s=await this.submitToolOutputs(t,n,r);return await this.poll(s.id,n,r)}submitToolOutputsStream(t,n,r){return $i.createToolAssistantStream(t,this._client.beta.threads.runs,n,r)}};Fd.Steps=rv;class zl extends st{constructor(){super(...arguments),this.runs=new Fd(this._client),this.messages=new nv(this._client)}create(t={},n){return this._client.post("/threads",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Re`/threads/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Re`/threads/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n){return this._client.delete(Re`/threads/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}createAndRun(t,n){return this._client.post("/threads/runs",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}async createAndRunPoll(t,n){const r=await this.createAndRun(t,n);return await this.runs.poll(r.id,{thread_id:r.thread_id},n)}createAndRunStream(t,n){return $i.createThreadAssistantStream(t,this._client.beta.threads,n)}}zl.Runs=Fd;zl.Messages=nv;class ta extends st{constructor(){super(...arguments),this.realtime=new Bl(this._client),this.assistants=new Zb(this._client),this.threads=new zl(this._client)}}ta.Realtime=Bl;ta.Assistants=Zb;ta.Threads=zl;class sv extends st{create(t,n){return this._client.post("/completions",{body:t,...n,stream:t.stream??!1})}}let ov=class extends st{retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Re`/containers/${s}/files/${t}/content`,{...r,headers:Ye([{Accept:"application/binary"},r==null?void 0:r.headers]),__binaryResponse:!0})}},Dd=class extends st{constructor(){super(...arguments),this.content=new ov(this._client)}create(t,n,r){return this._client.post(Re`/containers/${t}/files`,bs({body:n,...r},this._client))}retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Re`/containers/${s}/files/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Re`/containers/${t}/files`,on,{query:n,...r})}delete(t,n,r){const{container_id:s}=n;return this._client.delete(Re`/containers/${s}/files/${t}`,{...r,headers:Ye([{Accept:"*/*"},r==null?void 0:r.headers])})}};Dd.Content=ov;class Nd extends st{constructor(){super(...arguments),this.files=new Dd(this._client)}create(t,n){return this._client.post("/containers",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/containers/${t}`,n)}list(t={},n){return this._client.getAPIList("/containers",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/containers/${t}`,{...n,headers:Ye([{Accept:"*/*"},n==null?void 0:n.headers])})}}Nd.Files=Dd;class iv extends st{create(t,n){const r=!!t.encoding_format;let s=r?t.encoding_format:"base64";r&&vn(this._client).debug("embeddings/user defined encoding_format:",t.encoding_format);const o=this._client.post("/embeddings",{body:{...t,encoding_format:s},...n});return r?o:(vn(this._client).debug("embeddings/decoding base64 embeddings from base64"),o._thenUnwrap(i=>(i&&i.data&&i.data.forEach(l=>{const u=l.embedding;l.embedding=nR(u)}),i)))}}class av extends st{retrieve(t,n,r){const{eval_id:s,run_id:o}=n;return this._client.get(Re`/evals/${s}/runs/${o}/output_items/${t}`,r)}list(t,n,r){const{eval_id:s,...o}=n;return this._client.getAPIList(Re`/evals/${s}/runs/${t}/output_items`,on,{query:o,...r})}}class Bd extends st{constructor(){super(...arguments),this.outputItems=new av(this._client)}create(t,n,r){return this._client.post(Re`/evals/${t}/runs`,{body:n,...r})}retrieve(t,n,r){const{eval_id:s}=n;return this._client.get(Re`/evals/${s}/runs/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Re`/evals/${t}/runs`,on,{query:n,...r})}delete(t,n,r){const{eval_id:s}=n;return this._client.delete(Re`/evals/${s}/runs/${t}`,r)}cancel(t,n,r){const{eval_id:s}=n;return this._client.post(Re`/evals/${s}/runs/${t}`,r)}}Bd.OutputItems=av;class zd extends st{constructor(){super(...arguments),this.runs=new Bd(this._client)}create(t,n){return this._client.post("/evals",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/evals/${t}`,n)}update(t,n,r){return this._client.post(Re`/evals/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/evals",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/evals/${t}`,n)}}zd.Runs=Bd;let lv=class extends st{create(t,n){return this._client.post("/files",bs({body:t,...n},this._client))}retrieve(t,n){return this._client.get(Re`/files/${t}`,n)}list(t={},n){return this._client.getAPIList("/files",on,{query:t,...n})}delete(t,n){return this._client.delete(Re`/files/${t}`,n)}content(t,n){return this._client.get(Re`/files/${t}/content`,{...n,headers:Ye([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}async waitForProcessing(t,{pollInterval:n=5e3,maxWait:r=30*60*1e3}={}){const s=new Set(["processed","error","deleted"]),o=Date.now();let i=await this.retrieve(t);for(;!i.status||!s.has(i.status);)if(await Qi(n),i=await this.retrieve(t),Date.now()-o>r)throw new Ed({message:`Giving up on waiting for file ${t} to finish processing after ${r} milliseconds.`});return i}};class cv extends st{}let uv=class extends st{run(t,n){return this._client.post("/fine_tuning/alpha/graders/run",{body:t,...n})}validate(t,n){return this._client.post("/fine_tuning/alpha/graders/validate",{body:t,...n})}};class Wd extends st{constructor(){super(...arguments),this.graders=new uv(this._client)}}Wd.Graders=uv;class dv extends st{create(t,n,r){return this._client.getAPIList(Re`/fine_tuning/checkpoints/${t}/permissions`,Nl,{body:n,method:"post",...r})}retrieve(t,n={},r){return this._client.get(Re`/fine_tuning/checkpoints/${t}/permissions`,{query:n,...r})}delete(t,n,r){const{fine_tuned_model_checkpoint:s}=n;return this._client.delete(Re`/fine_tuning/checkpoints/${s}/permissions/${t}`,r)}}let Ud=class extends st{constructor(){super(...arguments),this.permissions=new dv(this._client)}};Ud.Permissions=dv;class fv extends st{list(t,n={},r){return this._client.getAPIList(Re`/fine_tuning/jobs/${t}/checkpoints`,on,{query:n,...r})}}class qd extends st{constructor(){super(...arguments),this.checkpoints=new fv(this._client)}create(t,n){return this._client.post("/fine_tuning/jobs",{body:t,...n})}retrieve(t,n){return this._client.get(Re`/fine_tuning/jobs/${t}`,n)}list(t={},n){return this._client.getAPIList("/fine_tuning/jobs",on,{query:t,...n})}cancel(t,n){return this._client.post(Re`/fine_tuning/jobs/${t}/cancel`,n)}listEvents(t,n={},r){return this._client.getAPIList(Re`/fine_tuning/jobs/${t}/events`,on,{query:n,...r})}pause(t,n){return this._client.post(Re`/fine_tuning/jobs/${t}/pause`,n)}resume(t,n){return this._client.post(Re`/fine_tuning/jobs/${t}/resume`,n)}}qd.Checkpoints=fv;class ro extends st{constructor(){super(...arguments),this.methods=new cv(this._client),this.jobs=new qd(this._client),this.checkpoints=new Ud(this._client),this.alpha=new Wd(this._client)}}ro.Methods=cv;ro.Jobs=qd;ro.Checkpoints=Ud;ro.Alpha=Wd;class hv extends st{}class Hd extends st{constructor(){super(...arguments),this.graderModels=new hv(this._client)}}Hd.GraderModels=hv;class pv extends st{createVariation(t,n){return this._client.post("/images/variations",bs({body:t,...n},this._client))}edit(t,n){return this._client.post("/images/edits",bs({body:t,...n,stream:t.stream??!1},this._client))}generate(t,n){return this._client.post("/images/generations",{body:t,...n,stream:t.stream??!1})}}class mv extends st{retrieve(t,n){return this._client.get(Re`/models/${t}`,n)}list(t){return this._client.getAPIList("/models",Nl,t)}delete(t,n){return this._client.delete(Re`/models/${t}`,n)}}class gv extends st{create(t,n){return this._client.post("/moderations",{body:t,...n})}}function rR(e,t){return!t||!oR(t)?{...e,output_parsed:null,output:e.output.map(n=>n.type==="function_call"?{...n,parsed_arguments:null}:n.type==="message"?{...n,content:n.content.map(r=>({...r,parsed:null}))}:n)}:yv(e,t)}function yv(e,t){const n=e.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:lR(t,s)};if(s.type==="message"){const o=s.content.map(i=>i.type==="output_text"?{...i,parsed:sR(t,i.text)}:i);return{...s,content:o}}return s}),r=Object.assign({},e,{output:n});return Object.getOwnPropertyDescriptor(e,"output_text")||Wu(r),Object.defineProperty(r,"output_parsed",{enumerable:!0,get(){for(const s of r.output)if(s.type==="message"){for(const o of s.content)if(o.type==="output_text"&&o.parsed!==null)return o.parsed}return null}}),r}function sR(e,t){var n,r,s,o;return((r=(n=e.text)==null?void 0:n.format)==null?void 0:r.type)!=="json_schema"?null:"$parseRaw"in((s=e.text)==null?void 0:s.format)?((o=e.text)==null?void 0:o.format).$parseRaw(t):JSON.parse(t)}function oR(e){var t;return!!Ad((t=e.text)==null?void 0:t.format)}function iR(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function aR(e,t){return e.find(n=>n.type==="function"&&n.name===t)}function lR(e,t){const n=aR(e.tools??[],t.name);return{...t,...t,parsed_arguments:iR(n)?n.$parseRaw(t.arguments):n!=null&&n.strict?JSON.parse(t.arguments):null}}function Wu(e){const t=[];for(const n of e.output)if(n.type==="message")for(const r of n.content)r.type==="output_text"&&t.push(r.text);e.output_text=t.join("")}var Ds,za,Fr,Wa,Rp,Ap,Ip,Op;class Yd extends Rd{constructor(t){super(),Ds.add(this),za.set(this,void 0),Fr.set(this,void 0),Wa.set(this,void 0),Qe(this,za,t)}static createResponse(t,n,r){const s=new Yd(n);return s._run(()=>s._createOrRetrieveResponse(t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(t,n,r){var l;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Ds,"m",Rp).call(this);let o,i=null;"response_id"in n?(o=await t.responses.retrieve(n.response_id,{stream:!0},{...r,signal:this.controller.signal,stream:!0}),i=n.starting_after??null):o=await t.responses.create({...n,stream:!0},{...r,signal:this.controller.signal}),this._connected();for await(const u of o)re(this,Ds,"m",Ap).call(this,u,i);if((l=o.controller.signal)!=null&&l.aborted)throw new Gn;return re(this,Ds,"m",Ip).call(this)}[(za=new WeakMap,Fr=new WeakMap,Wa=new WeakMap,Ds=new WeakSet,Rp=function(){this.ended||Qe(this,Fr,void 0)},Ap=function(n,r){if(this.ended)return;const s=(i,l)=>{(r==null||l.sequence_number>r)&&this._emit(i,l)},o=re(this,Ds,"m",Op).call(this,n);switch(s("event",n),n.type){case"response.output_text.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);if(i.type==="message"){const l=i.content[n.content_index];if(!l)throw new Ze(`missing content at index ${n.content_index}`);if(l.type!=="output_text")throw new Ze(`expected content to be 'output_text', got ${l.type}`);s("response.output_text.delta",{...n,snapshot:l.text})}break}case"response.function_call_arguments.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);i.type==="function_call"&&s("response.function_call_arguments.delta",{...n,snapshot:i.arguments});break}default:s(n.type,n);break}},Ip=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=re(this,Fr,"f");if(!n)throw new Ze("request ended without sending any events");Qe(this,Fr,void 0);const r=cR(n,re(this,za,"f"));return Qe(this,Wa,r),r},Op=function(n){let r=re(this,Fr,"f");if(!r){if(n.type!=="response.created")throw new Ze(`When snapshot hasn't been set yet, expected 'response.created' event, got ${n.type}`);return r=Qe(this,Fr,n.response),r}switch(n.type){case"response.output_item.added":{r.output.push(n.item);break}case"response.content_part.added":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);s.type==="message"&&s.content.push(n.part);break}case"response.output_text.delta":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);if(s.type==="message"){const o=s.content[n.content_index];if(!o)throw new Ze(`missing content at index ${n.content_index}`);if(o.type!=="output_text")throw new Ze(`expected content to be 'output_text', got ${o.type}`);o.text+=n.delta}break}case"response.function_call_arguments.delta":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);s.type==="function_call"&&(s.arguments+=n.delta);break}case"response.completed":{Qe(this,Fr,n.response);break}}return r},Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const t=re(this,Wa,"f");if(!t)throw new Ze("stream ended without producing a ChatCompletion");return t}}function cR(e,t){return rR(e,t)}class bv extends st{list(t,n={},r){return this._client.getAPIList(Re`/responses/${t}/input_items`,on,{query:n,...r})}}class Xd extends st{constructor(){super(...arguments),this.inputItems=new bv(this._client)}create(t,n){return this._client.post("/responses",{body:t,...n,stream:t.stream??!1})._thenUnwrap(r=>("object"in r&&r.object==="response"&&Wu(r),r))}retrieve(t,n={},r){return this._client.get(Re`/responses/${t}`,{query:n,...r,stream:(n==null?void 0:n.stream)??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&Wu(s),s))}delete(t,n){return this._client.delete(Re`/responses/${t}`,{...n,headers:Ye([{Accept:"*/*"},n==null?void 0:n.headers])})}parse(t,n){return this._client.responses.create(t,n)._thenUnwrap(r=>yv(r,t))}stream(t,n){return Yd.createResponse(this._client,t,n)}cancel(t,n){return this._client.post(Re`/responses/${t}/cancel`,n)}}Xd.InputItems=bv;class vv extends st{create(t,n,r){return this._client.post(Re`/uploads/${t}/parts`,bs({body:n,...r},this._client))}}class Kd extends st{constructor(){super(...arguments),this.parts=new vv(this._client)}create(t,n){return this._client.post("/uploads",{body:t,...n})}cancel(t,n){return this._client.post(Re`/uploads/${t}/cancel`,n)}complete(t,n,r){return this._client.post(Re`/uploads/${t}/complete`,{body:n,...r})}}Kd.Parts=vv;const uR=async e=>{const t=await Promise.allSettled(e),n=t.filter(s=>s.status==="rejected");if(n.length){for(const s of n)console.error(s.reason);throw new Error(`${n.length} promise(s) failed - see the above errors`)}const r=[];for(const s of t)s.status==="fulfilled"&&r.push(s.value);return r};class Sv extends st{create(t,n,r){return this._client.post(Re`/vector_stores/${t}/file_batches`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Re`/vector_stores/${s}/file_batches/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{vector_store_id:s}=n;return this._client.post(Re`/vector_stores/${s}/file_batches/${t}/cancel`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n);return await this.poll(t,s.id,r)}listFiles(t,n,r){const{vector_store_id:s,...o}=n;return this._client.getAPIList(Re`/vector_stores/${s}/file_batches/${t}/files`,on,{query:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:l}=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse();switch(i.status){case"in_progress":let u=5e3;if(r!=null&&r.pollIntervalMs)u=r.pollIntervalMs;else{const d=l.headers.get("openai-poll-after-ms");if(d){const h=parseInt(d);isNaN(h)||(u=h)}}await Qi(u);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(t,{files:n,fileIds:r=[]},s){if(n==null||n.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const o=(s==null?void 0:s.maxConcurrency)??5,i=Math.min(o,n.length),l=this._client,u=n.values(),d=[...r];async function h(b){for(let v of b){const w=await l.files.create({file:v,purpose:"assistants"},s);d.push(w.id)}}const m=Array(i).fill(u).map(h);return await uR(m),await this.createAndPoll(t,{file_ids:d})}}class xv extends st{create(t,n,r){return this._client.post(Re`/vector_stores/${t}/files`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Re`/vector_stores/${s}/files/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{vector_store_id:s,...o}=n;return this._client.post(Re`/vector_stores/${s}/files/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Re`/vector_stores/${t}/files`,on,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{vector_store_id:s}=n;return this._client.delete(Re`/vector_stores/${s}/files/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n,r);return await this.poll(t,s.id,r)}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const i=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse(),l=i.data;switch(l.status){case"in_progress":let u=5e3;if(r!=null&&r.pollIntervalMs)u=r.pollIntervalMs;else{const d=i.response.headers.get("openai-poll-after-ms");if(d){const h=parseInt(d);isNaN(h)||(u=h)}}await Qi(u);break;case"failed":case"completed":return l}}}async upload(t,n,r){const s=await this._client.files.create({file:n,purpose:"assistants"},r);return this.create(t,{file_id:s.id},r)}async uploadAndPoll(t,n,r){const s=await this.upload(t,n,r);return await this.poll(t,s.id,r)}content(t,n,r){const{vector_store_id:s}=n;return this._client.getAPIList(Re`/vector_stores/${s}/files/${t}/content`,Nl,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class Wl extends st{constructor(){super(...arguments),this.files=new xv(this._client),this.fileBatches=new Sv(this._client)}create(t,n){return this._client.post("/vector_stores",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Re`/vector_stores/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Re`/vector_stores/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/vector_stores",on,{query:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Re`/vector_stores/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}search(t,n,r){return this._client.getAPIList(Re`/vector_stores/${t}/search`,Nl,{body:n,method:"post",...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}Wl.Files=xv;Wl.FileBatches=Sv;var zs,wv,ol;class _v extends st{constructor(){super(...arguments),zs.add(this)}async unwrap(t,n,r=this._client.webhookSecret,s=300){return await this.verifySignature(t,n,r,s),JSON.parse(t)}async verifySignature(t,n,r=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");re(this,zs,"m",wv).call(this,r);const o=Ye([n]).values,i=re(this,zs,"m",ol).call(this,o,"webhook-signature"),l=re(this,zs,"m",ol).call(this,o,"webhook-timestamp"),u=re(this,zs,"m",ol).call(this,o,"webhook-id"),d=parseInt(l,10);if(isNaN(d))throw new bi("Invalid webhook timestamp format");const h=Math.floor(Date.now()/1e3);if(h-d>s)throw new bi("Webhook timestamp is too old");if(d>h+s)throw new bi("Webhook timestamp is too new");const m=i.split(" ").map(S=>S.startsWith("v1,")?S.substring(3):S),b=r.startsWith("whsec_")?Buffer.from(r.replace("whsec_",""),"base64"):Buffer.from(r,"utf-8"),v=u?`${u}.${l}.${t}`:`${l}.${t}`,w=await crypto.subtle.importKey("raw",b,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(const S of m)try{const k=Buffer.from(S,"base64");if(await crypto.subtle.verify("HMAC",w,k,new TextEncoder().encode(v)))return}catch{continue}throw new bi("The given webhook signature does not match the expected signature")}}zs=new WeakSet,wv=function(t){if(typeof t!="string"||t.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},ol=function(t,n){if(!t)throw new Error("Headers are required");const r=t.get(n);if(r==null)throw new Error(`Missing required header: ${n}`);return r};var Uu,Vd,il,kv;class mt{constructor({baseURL:t=Fs("OPENAI_BASE_URL"),apiKey:n=Fs("OPENAI_API_KEY"),organization:r=Fs("OPENAI_ORG_ID")??null,project:s=Fs("OPENAI_PROJECT_ID")??null,webhookSecret:o=Fs("OPENAI_WEBHOOK_SECRET")??null,...i}={}){if(Uu.add(this),il.set(this,void 0),this.completions=new sv(this),this.chat=new Ld(this),this.embeddings=new iv(this),this.files=new lv(this),this.images=new pv(this),this.audio=new ea(this),this.moderations=new gv(this),this.models=new mv(this),this.fineTuning=new ro(this),this.graders=new Hd(this),this.vectorStores=new Wl(this),this.webhooks=new _v(this),this.beta=new ta(this),this.batches=new Qb(this),this.uploads=new Kd(this),this.responses=new Xd(this),this.evals=new zd(this),this.containers=new Nd(this),n===void 0)throw new Ze("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const l={apiKey:n,organization:r,project:s,webhookSecret:o,...i,baseURL:t||"https://api.openai.com/v1"};if(!l.dangerouslyAllowBrowser&&dj())throw new Ze(`It looks like you're running in a browser-like environment.
|
|
204
204
|
|
|
205
205
|
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
206
206
|
If you understand the risks and have appropriate mitigations in place,
|
|
@@ -209,16 +209,16 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
|
209
209
|
new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
210
210
|
|
|
211
211
|
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
212
|
-
`);this.baseURL=l.baseURL,this.timeout=l.timeout??Vd.DEFAULT_TIMEOUT,this.logger=l.logger??console;const u="warn";this.logLevel=u,this.logLevel=bp(l.logLevel,"ClientOptions.logLevel",this)??bp(
|
|
212
|
+
`);this.baseURL=l.baseURL,this.timeout=l.timeout??Vd.DEFAULT_TIMEOUT,this.logger=l.logger??console;const u="warn";this.logLevel=u,this.logLevel=bp(l.logLevel,"ClientOptions.logLevel",this)??bp(Fs("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??u,this.fetchOptions=l.fetchOptions,this.maxRetries=l.maxRetries??2,this.fetch=l.fetch??gj(),Qe(this,il,bj),this._options=l,this.apiKey=n,this.organization=r,this.project=s,this.webhookSecret=o}withOptions(t){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...t})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:t,nulls:n}){}async authHeaders(t){return Ye([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(t){return kj(t,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Ns}`}defaultIdempotencyKey(){return`stainless-node-retry-${nb()}`}makeStatusError(t,n,r,s){return wn.generate(t,n,r,s)}buildURL(t,n,r){const s=!re(this,Uu,"m",kv).call(this)&&r||this.baseURL,o=oj(t)?new URL(t):new URL(s+(s.endsWith("/")&&t.startsWith("/")?t.slice(1):t)),i=this.defaultQuery();return aj(i)||(n={...i,...n}),typeof n=="object"&&n&&!Array.isArray(n)&&(o.search=this.stringifyQuery(n)),o.toString()}async prepareOptions(t){}async prepareRequest(t,{url:n,options:r}){}get(t,n){return this.methodRequest("get",t,n)}post(t,n){return this.methodRequest("post",t,n)}patch(t,n){return this.methodRequest("patch",t,n)}put(t,n){return this.methodRequest("put",t,n)}delete(t,n){return this.methodRequest("delete",t,n)}methodRequest(t,n,r){return this.request(Promise.resolve(r).then(s=>({method:t,path:n,...s})))}request(t,n=null){return new Dl(this,this.makeRequest(t,n,void 0))}async makeRequest(t,n,r){var P,T;const s=await t,o=s.maxRetries??this.maxRetries;n==null&&(n=o),await this.prepareOptions(s);const{req:i,url:l,timeout:u}=await this.buildRequest(s,{retryCount:o-n});await this.prepareRequest(i,{url:l,options:s});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),h=r===void 0?"":`, retryOf: ${r}`,m=Date.now();if(vn(this).debug(`[${d}] sending request`,ts({retryOfRequestLogID:r,method:s.method,url:l,options:s,headers:i.headers})),(P=s.signal)!=null&&P.aborted)throw new Gn;const b=new AbortController,v=await this.fetchWithTimeout(l,i,u,b).catch(Au),w=Date.now();if(v instanceof Error){const j=`retrying, ${n} attempts remaining`;if((T=s.signal)!=null&&T.aborted)throw new Gn;const C=Ru(v)||/timed? ?out/i.test(String(v)+("cause"in v?String(v.cause):""));if(n)return vn(this).info(`[${d}] connection ${C?"timed out":"failed"} - ${j}`),vn(this).debug(`[${d}] connection ${C?"timed out":"failed"} (${j})`,ts({retryOfRequestLogID:r,url:l,durationMs:w-m,message:v.message})),this.retryRequest(s,n,r??d);throw vn(this).info(`[${d}] connection ${C?"timed out":"failed"} - error; no more retries left`),vn(this).debug(`[${d}] connection ${C?"timed out":"failed"} (error; no more retries left)`,ts({retryOfRequestLogID:r,url:l,durationMs:w-m,message:v.message})),C?new Ed:new Ll({cause:v})}const S=[...v.headers.entries()].filter(([j])=>j==="x-request-id").map(([j,C])=>", "+j+": "+JSON.stringify(C)).join(""),k=`[${d}${h}${S}] ${i.method} ${l} ${v.ok?"succeeded":"failed"} with status ${v.status} in ${w-m}ms`;if(!v.ok){const j=await this.shouldRetry(v);if(n&&j){const F=`retrying, ${n} attempts remaining`;return await yj(v.body),vn(this).info(`${k} - ${F}`),vn(this).debug(`[${d}] response error (${F})`,ts({retryOfRequestLogID:r,url:v.url,status:v.status,headers:v.headers,durationMs:w-m})),this.retryRequest(s,n,r??d,v.headers)}const C=j?"error; no more retries left":"error; not retryable";vn(this).info(`${k} - ${C}`);const E=await v.text().catch(F=>Au(F).message),A=uj(E),O=A?void 0:E;throw vn(this).debug(`[${d}] response error (${C})`,ts({retryOfRequestLogID:r,url:v.url,status:v.status,headers:v.headers,message:O,durationMs:Date.now()-m})),this.makeStatusError(v.status,A,O,v.headers)}return vn(this).info(k),vn(this).debug(`[${d}] response start`,ts({retryOfRequestLogID:r,url:v.url,status:v.status,headers:v.headers,durationMs:w-m})),{response:v,options:s,controller:b,requestLogID:d,retryOfRequestLogID:r,startTime:m}}getAPIList(t,n,r){return this.requestAPIList(n,{method:"get",path:t,...r})}requestAPIList(t,n){const r=this.makeRequest(n,null,void 0);return new Ij(this,r,t)}async fetchWithTimeout(t,n,r,s){const{signal:o,method:i,...l}=n||{};o&&o.addEventListener("abort",()=>s.abort());const u=setTimeout(()=>s.abort(),r),d=globalThis.ReadableStream&&l.body instanceof globalThis.ReadableStream||typeof l.body=="object"&&l.body!==null&&Symbol.asyncIterator in l.body,h={signal:s.signal,...d?{duplex:"half"}:{},method:"GET",...l};i&&(h.method=i.toUpperCase());try{return await this.fetch.call(void 0,t,h)}finally{clearTimeout(u)}}async shouldRetry(t){const n=t.headers.get("x-should-retry");return n==="true"?!0:n==="false"?!1:t.status===408||t.status===409||t.status===429||t.status>=500}async retryRequest(t,n,r,s){let o;const i=s==null?void 0:s.get("retry-after-ms");if(i){const u=parseFloat(i);Number.isNaN(u)||(o=u)}const l=s==null?void 0:s.get("retry-after");if(l&&!o){const u=parseFloat(l);Number.isNaN(u)?o=Date.parse(l)-Date.now():o=u*1e3}if(!(o&&0<=o&&o<60*1e3)){const u=t.maxRetries??this.maxRetries;o=this.calculateDefaultRetryTimeoutMillis(n,u)}return await Qi(o),this.makeRequest(t,n-1,r)}calculateDefaultRetryTimeoutMillis(t,n){const o=n-t,i=Math.min(.5*Math.pow(2,o),8),l=1-Math.random()*.25;return i*l*1e3}async buildRequest(t,{retryCount:n=0}={}){const r={...t},{method:s,path:o,query:i,defaultBaseURL:l}=r,u=this.buildURL(o,i,l);"timeout"in r&&cj("timeout",r.timeout),r.timeout=r.timeout??this.timeout;const{bodyHeaders:d,body:h}=this.buildBody({options:r}),m=await this.buildHeaders({options:t,method:s,bodyHeaders:d,retryCount:n});return{req:{method:s,headers:m,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&h instanceof globalThis.ReadableStream&&{duplex:"half"},...h&&{body:h},...this.fetchOptions??{},...r.fetchOptions??{}},url:u,timeout:r.timeout}}async buildHeaders({options:t,method:n,bodyHeaders:r,retryCount:s}){let o={};this.idempotencyHeader&&n!=="get"&&(t.idempotencyKey||(t.idempotencyKey=this.defaultIdempotencyKey()),o[this.idempotencyHeader]=t.idempotencyKey);const i=Ye([o,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...t.timeout?{"X-Stainless-Timeout":String(Math.trunc(t.timeout/1e3))}:{},...mj(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(t),this._options.defaultHeaders,r,t.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:t,headers:n}}){if(!t)return{bodyHeaders:void 0,body:void 0};const r=Ye([n]);return ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DataView||typeof t=="string"&&r.values.has("content-type")||t instanceof Blob||t instanceof FormData||t instanceof URLSearchParams||globalThis.ReadableStream&&t instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:t}:typeof t=="object"&&(Symbol.asyncIterator in t||Symbol.iterator in t&&"next"in t&&typeof t.next=="function")?{bodyHeaders:void 0,body:pb(t)}:re(this,il,"f").call(this,{body:t,headers:r})}}Vd=mt,il=new WeakMap,Uu=new WeakSet,kv=function(){return this.baseURL!=="https://api.openai.com/v1"};mt.OpenAI=Vd;mt.DEFAULT_TIMEOUT=6e5;mt.OpenAIError=Ze;mt.APIError=wn;mt.APIConnectionError=Ll;mt.APIConnectionTimeoutError=Ed;mt.APIUserAbortError=Gn;mt.NotFoundError=ib;mt.ConflictError=ab;mt.RateLimitError=cb;mt.BadRequestError=rb;mt.AuthenticationError=sb;mt.InternalServerError=ub;mt.PermissionDeniedError=ob;mt.UnprocessableEntityError=lb;mt.InvalidWebhookSignatureError=bi;mt.toFile=Nj;mt.Completions=sv;mt.Chat=Ld;mt.Embeddings=iv;mt.Files=lv;mt.Images=pv;mt.Audio=ea;mt.Moderations=gv;mt.Models=mv;mt.FineTuning=ro;mt.Graders=Hd;mt.VectorStores=Wl;mt.Webhooks=_v;mt.Beta=ta;mt.Batches=Qb;mt.Uploads=Kd;mt.Responses=Xd;mt.Evals=zd;mt.Containers=Nd;let Ua=null,zc=null;const dR=()=>{const e=ws().trim().replace(/\/+$/,"");if(e.endsWith("/openai/v1"))return e;const t="/v1";return`${e.endsWith(t)?e.slice(0,-t.length):e}/openai/v1`},fR=()=>{const e=dR();return Ua?zc!==e&&(Ua=new mt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),zc=e):(Ua=new mt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),zc=e),Ua},Cv=e=>{const t=e.match(/```mermaid\s*([\s\S]*?)```/i);return t?t[1].trim():e.trim()},hR=(e,t,n)=>{const r=t.trim(),s=Cv(n),o=/```mermaid\s*([\s\S]*?)```/gi;let i=!1;const l=e.replace(o,(d,h)=>i||h.trim()!==r?d:(i=!0,`\`\`\`mermaid
|
|
213
213
|
${s}
|
|
214
|
-
\`\`\``));return i?l:e.match(o)?e.replace(o,
|
|
214
|
+
\`\`\``));return i?l:e.match(o)?e.replace(o,d=>i?d:(i=!0,`\`\`\`mermaid
|
|
215
215
|
${s}
|
|
216
|
-
\`\`\``)):null},$p="_text",
|
|
217
|
-
`)},pR=async(e,t,n)=>{var l,u,f;const r=t==null?void 0:t.trim();if(!r)throw new Error("No model configured. Please select a default model in Provider Settings.");const i=((f=(u=(l=(await lR().chat.completions.create({model:r,messages:[{role:"system",content:"You fix Mermaid diagrams using the parser/render error context. Return only corrected Mermaid code without markdown fences or extra text."},{role:"user",content:hR(e,n)}],temperature:0})).choices)==null?void 0:l[0])==null?void 0:u.message)==null?void 0:f.content)??"";return kv(i)},mR=(e,t)=>{const n=Ik(),r=Ok(),s=(r==null?void 0:r.model)??n;return y.useCallback(async(o,i)=>{const l=ae.getState(),u=t??l.currentSessionId,f=l.chats.find(T=>T.id===u);if(!u||!f)throw new Error("No active chat available");const h=f.messages.find(T=>T.id===e);if(!_l(h))throw new Error("Mermaid fix is only available for assistant text messages");const m=await pR(o,s,i);if(!m)throw new Error("AI did not return a Mermaid fix");const b=cR(h.content,o,m);if(!b)throw new Error("Unable to locate Mermaid block to update");let v=Lp(e,h,f.messages);try{await Hs.patchSessionMessage(u,v,{content:b})}catch(T){if(!dR(T))throw T;await l.loadChatHistory(u,{mode:"replace",retries:2,retryDelayMs:150,waitForAssistant:!0});const C=ae.getState().chats.find(A=>A.id===u);if(!C)throw T;const j=fR(C.messages,e,h.content,o);if(!j)throw T;v=Lp(j.id,j,C.messages),await Hs.patchSessionMessage(u,v,{content:b})}const w=ae.getState(),S=w.chats.find(T=>T.id===u);if(!S)throw new Error("No active chat available");const k=new Set([e,v]),P=S.messages.map(T=>!k.has(T.id)||!_l(T)?T:{...T,content:b});w.updateSession(u,{messages:P})},[e,t,s])},gR=e=>e.xs?"100%":e.sm?"95%":"800px",yR=[{key:"shorter",labelKey:"feedback.retry.shorter",fallbackLabel:"Shorter",color:"blue",prefix:"Please give a shorter, more concise answer:"},{key:"deeper",labelKey:"feedback.retry.deeper",fallbackLabel:"Deeper",color:"purple",prefix:"Please provide a more detailed, in-depth answer:"},{key:"actionable",labelKey:"feedback.retry.actionable",fallbackLabel:"More actionable",color:"green",prefix:"Please make your answer more actionable with specific steps:"}],bR=({messageId:e,isVisible:t,onRetryWithVariation:n})=>{const{t:r}=Ge(),[s,o]=y.useState(null),[i,l]=y.useState(!1),u=y.useCallback(()=>{o(v=>v==="like"?null:"like"),l(!1)},[]),f=y.useCallback(()=>{o(v=>{const w=v==="dislike"?null:"dislike";return l(w==="dislike"),w})},[]),h=y.useCallback(v=>{n&&n(v.prefix)},[n]),b=["lotus-msg-feedback",t?"is-visible":"",s!==null?"has-rating":""].filter(Boolean).join(" ");return a.jsxs("div",{className:b,"data-message-id":e,children:[a.jsx(xn,{title:r("feedback.helpful","Helpful"),children:a.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="like"?"is-liked":""}`,onClick:u,"aria-label":r("feedback.helpful","Helpful"),children:s==="like"?a.jsx(nx,{}):a.jsx(rx,{})})}),a.jsx(xn,{title:r("feedback.notHelpful","Not helpful"),children:a.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="dislike"?"is-disliked":""}`,onClick:f,"aria-label":r("feedback.notHelpful","Not helpful"),children:s==="dislike"?a.jsx(sx,{}):a.jsx(ox,{})})}),i&&n&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"lotus-msg-feedback-sep"}),a.jsx("span",{className:"lotus-msg-feedback-retry",children:yR.map(v=>a.jsx(Je,{color:v.color,bordered:!1,className:"lotus-msg-feedback-retry-tag",onClick:()=>h(v),children:r(v.labelKey,v.fallbackLabel)},v.key))})]})]})},{useToken:vR}=ut,{useBreakpoint:SR}=Tl,xR="chat-send-message",wR=({sessionId:e,message:t,onDelete:n,messageType:r})=>{const{role:s,id:o}=t,{token:i}=vR(),l=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:u}=Ge(),{message:f}=Fn.useApp(),h=SR(),m=ae(de=>de.updateSession),b=ae(de=>de.loadChatHistory),v=ae(de=>de.refreshChats),w=y.useRef(null),[S,k]=y.useState(!1),P=ae(Ki(e)),T=y.useCallback(de=>typeof window>"u"?Promise.reject(new Error("window is unavailable")):new Promise((Ce,ze)=>{const Le={content:de,sessionId:e,handled:!1,resolve:Ce,reject:ze};window.dispatchEvent(new CustomEvent(xR,{detail:Le})),Le.handled||ze(new Error("No chat message dispatcher available"))}),[e]),M=y.useMemo(()=>{if(!t.createdAt)return null;const de=new Date(t.createdAt);if(Number.isNaN(de.getTime()))return null;try{return xP(de,"MMM d, yyyy HH:mm")}catch{return de.toLocaleString()}},[t.createdAt]),C=y.useMemo(()=>YM(t,r),[t,r]),j=y.useMemo(()=>XM(t,C),[t,C]),A=y.useMemo(()=>KM(t,C),[t,C]),O=y.useMemo(()=>Zy(t),[t]),F=mR(o,e),D=y.useCallback(async de=>{var Ce;if(!e||!o){f.warning(u("chat.messageActions.cannotRestore"));return}try{const ze=await Hs.restoreSessionState(e,{target_message_id:o,restore_files:de});await b(e,{mode:"replace"}),await v();const Le=((Ce=ze.file_errors)==null?void 0:Ce.length)??0;if(Le>0){f.warning(u("chat.messageActions.restorePartial",{count:Le}));return}de?f.success(u("chat.messageActions.restoreFilesSuccess",{count:ze.messages_removed})):f.success(u("chat.messageActions.restoreSuccess",{count:ze.messages_removed}))}catch(ze){const Le=ze instanceof Error?ze.message:u("chat.messageActions.restoreFailed");f.error(Le)}},[f,e,b,o,v,u]),N=y.useCallback(()=>{D(!1)},[D]),q=y.useCallback(()=>{D(!0)},[D]),{contextMenuItems:I,handleMouseUp:Q,copyToClipboard:G,referenceMessage:Z}=QM({messageText:O,messageId:o,currentSessionId:e,onDelete:n,onRestoreChat:N,onRestoreFilesAndChat:q,cardRef:w}),pe=y.useMemo(()=>s==="user"&&O.startsWith("/"),[s,O]),$=y.useMemo(()=>Vy(void 0,{onFixMermaid:F}),[F]),oe=y.useMemo(()=>[Qu,Zu],[]),me=y.useMemo(()=>[Ju],[]),ne=y.useMemo(()=>[EP(()=>G(O),u("chat.actions.copyMessage")),MP(Z,u("chat.actions.referenceMessage"))],[O,G,Z,u]),{handleExecutePlan:fe,handleRefinePlan:he,handleQuestionAnswer:ue}=ZM({currentSessionId:e,updateSession:m,sendMessage:T});return C==="plan"&&j&&s==="assistant"?a.jsx(Ey,{plan:j,contextId:e||"",onExecute:fe,onRefine:he,timestamp:M??void 0}):C==="question"&&A&&s==="assistant"?a.jsx(My,{question:A,contextId:e||"",onAnswer:ue,disabled:P||!1,timestamp:M??void 0}):IP(t)?a.jsx(zP,{taskList:t.taskList}):AP(t)?(Me("[MessageCard]","[MessageCard] Rendering FileReferenceCard for message:",t.id,"paths:",t.paths),a.jsx(Ee,{justify:"flex-end",style:{width:"100%"},children:a.jsx(jy,{paths:t.paths,displayText:t.displayText,timestamp:M??void 0})})):a.jsxs(Ee,{vertical:!0,onContextMenu:de=>Q(de),style:{width:"100%"},children:[a.jsx(Xs,{menu:{items:I},trigger:["contextMenu"],children:a.jsx(nn,{"data-testid":s==="assistant"?"assistant-message":"user-message",id:o?`message-${o}`:void 0,ref:w,style:{width:"100%",minWidth:"100%",maxWidth:gR(h),margin:"0 auto",background:s==="user"?"var(--lotus-message-user-bg)":s==="assistant"?"var(--lotus-message-assistant-bg)":i.colorBgContainer,backdropFilter:l?"none":"blur(14px)",WebkitBackdropFilter:l?"none":"blur(14px)",border:s==="user"?"1px solid var(--lotus-message-user-border)":"1px solid var(--lotus-glass-border-subtle)",borderRadius:i.borderRadiusLG,boxShadow:S?"var(--lotus-card-hover-shadow)":"var(--lotus-shadow-soft)",position:"relative",wordWrap:"break-word",overflowWrap:"break-word",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:S?"translateY(-2px) scale(1.002)":"none",overflow:"hidden"},styles:{body:{padding:i.paddingMD}},onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:a.jsxs(Ue,{direction:"vertical",size:i.marginXS,style:{width:"100%",maxWidth:"100%"},children:[a.jsx(qM,{role:s,formattedTimestamp:M,token:i}),t.role==="user"&&t.images&&a.jsx(kP,{images:t.images}),a.jsx(Ee,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:a.jsx(UM,{sessionId:e,message:t,messageText:O,isUserToolCall:pe,formatUserToolCall:VM,markdownComponents:$,markdownPlugins:oe,rehypePlugins:me})}),a.jsx(PP,{isVisible:S,position:{bottom:i.paddingXS,right:i.paddingXS},buttons:ne})]})})}),s==="assistant"&&C==="text"&&o&&a.jsx(bR,{messageId:o,isVisible:S})]})},Cv=y.memo(wR,(e,t)=>e.message===t.message&&e.messageType===t.messageType&&e.onDelete===t.onDelete);Cv.displayName="MessageCard";const{Text:$i}=ft,{useToken:_R}=ut,Ti=8,zc=4,kR=new Set(["mermaid","graph","flowchart","sequencediagram","classdiagram","statediagram","statediagram-v2","erdiagram","journey","gantt","pie","gitgraph","mindmap","timeline","quadrantchart","requirementdiagram","c4context","c4container","c4component","c4dynamic","c4deployment","sankey","sankey-beta","xychart","xychart-beta","block","block-beta","packet","packet-beta","kanban","architecture"]),CR=(e,t)=>a.jsx(nn,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto",marginBottom:Ti,background:t.colorBgContainer,borderColor:t.colorBorder},children:a.jsx("pre",{style:{margin:0,padding:t.paddingSM,background:t.colorBgContainer,color:t.colorText,borderRadius:t.borderRadiusSM,fontSize:t.fontSizeSM,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a.jsx("code",{style:{color:t.colorText},children:e})})}),TR=e=>({p:({children:t})=>a.jsx($i,{style:{marginBottom:Ti,display:"block"},children:t}),ol:({children:t})=>a.jsx("ol",{style:{marginBottom:Ti,paddingLeft:20},children:t}),ul:({children:t})=>a.jsx("ul",{style:{marginBottom:Ti,paddingLeft:20},children:t}),li:({children:t})=>a.jsx("li",{style:{marginBottom:zc},children:t}),code({className:t,children:n,inline:r,...s}){const o=/language-([^\s]+)/i.exec(t||""),i=o?o[1]:"",l=r??(!o&&!t),u=n?String(n).replace(/\n$/,""):"";if(l)return a.jsx($i,{code:!0,className:t,...s,children:n});if(!u.trim())return null;const f=i.toLowerCase();return kR.has(f)?CR(u,e):Xy(i,u,void 0,void 0)},pre:({children:t})=>a.jsx(a.Fragment,{children:t}),blockquote:({children:t})=>a.jsx(nn,{size:"small",styles:{body:{padding:"4px 8px"}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${zc}px 0`,color:"var(--ant-color-text-secondary, #64748b)",fontStyle:"italic"},children:t}),a:({children:t,href:n})=>{const r=typeof n=="string"?n.trim():"";return r?a.jsx("a",{href:r,target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),Ky(r)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:t}):a.jsx(a.Fragment,{children:t})},table:({children:t})=>a.jsx(nn,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${Ti}px 0`},children:a.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:"1px solid var(--ant-color-border, #d9d9d9)"},children:t})}),thead:({children:t})=>a.jsx("thead",{style:{backgroundColor:"var(--ant-color-bg-container, #ffffff)"},children:t}),tbody:({children:t})=>a.jsx("tbody",{children:t}),tr:({children:t})=>a.jsx("tr",{style:{borderBottom:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),th:({children:t})=>a.jsx("th",{style:{padding:"4px 8px",textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),td:({children:t})=>a.jsx("td",{style:{padding:"4px 8px",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),input:({type:t,checked:n,disabled:r})=>t==="checkbox"?a.jsx("input",{type:"checkbox",checked:n,disabled:r,style:{marginRight:zc,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):a.jsx("input",{type:t,checked:n,disabled:r})}),Tv=y.memo(({sessionId:e})=>{const{token:t}=_R(),n=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:r}=Ge(),s=`streaming-${e}`,o=`streaming-reasoning-${e}`,i=`streaming-status-${e}`,[l,u]=y.useState(()=>Mt.getLatest(s)??""),[f,h]=y.useState(()=>Mt.getLatest(o)??""),[m,b]=y.useState(()=>Mt.getLatest(i)??"");y.useEffect(()=>{let P=null,T=null;const M=Mt.subscribeMessage(s,C=>{T=C,P===null&&(P=requestAnimationFrame(()=>{u(T??""),P=null}))});return()=>{M(),P!==null&&cancelAnimationFrame(P)}},[s]),y.useEffect(()=>{let P=null,T=null;const M=Mt.subscribeMessage(o,C=>{T=C,P===null&&(P=requestAnimationFrame(()=>{h(T??""),P=null}))});return()=>{M(),P!==null&&cancelAnimationFrame(P)}},[o]),y.useEffect(()=>{let P=null,T=null;const M=Mt.subscribeMessage(i,C=>{T=C,P===null&&(P=requestAnimationFrame(()=>{b(T??""),P=null}))});return()=>{M(),P!==null&&cancelAnimationFrame(P)}},[i]);const v=y.useMemo(()=>{const P=m.trim().toLowerCase();if(!P)return r("chat.messageCard.assistantThinking");if(P==="context_compacting")return r("chat.messageCard.assistantCompactingContext");if(P==="context_compaction_degraded")return r("chat.messageCard.assistantCompactingContextDegraded");if(P==="context_compaction_failed")return r("chat.messageCard.assistantCompactingContextFailed");if(P==="memory_updating")return r("chat.messageCard.assistantUpdatingMemory");if(P.startsWith("tool_running:")){const M=(P.slice(13).trim()||"tool").replace(/[_-]+/g," ");return r("chat.messageCard.assistantRunningTool",{tool:M})}return r("chat.messageCard.assistantThinking")},[m,r]),w=y.useMemo(()=>[Qu,Zu],[]),S=y.useMemo(()=>[Ju],[]),k=y.useMemo(()=>TR(t),[t]);return a.jsx(nn,{"data-testid":"streaming-indicator",role:"status","aria-live":"polite","aria-busy":!0,"aria-label":r("chat.view.aiRespondingAria"),style:{width:"100%",minWidth:"100%",maxWidth:"800px",margin:"0 auto",background:"var(--lotus-message-streaming-bg)",backdropFilter:n?"none":"blur(14px)",WebkitBackdropFilter:n?"none":"blur(14px)",borderRadius:t.borderRadiusLG,boxShadow:"none",position:"relative",wordWrap:"break-word",overflowWrap:"break-word"},children:a.jsxs(Ue,{direction:"vertical",size:t.marginXS,style:{width:"100%",maxWidth:"100%"},children:[a.jsx(Ee,{align:"baseline",justify:"space-between",gap:t.marginXS,children:a.jsx($i,{type:"secondary",strong:!0,style:{fontSize:t.fontSizeSM},children:r("chat.streaming.assistant")})}),a.jsxs(Ee,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:[f?a.jsx(Zs,{size:"small",defaultActiveKey:["reasoning"],style:{marginBottom:t.marginSM,background:t.colorBgContainer,borderColor:t.colorBorderSecondary},items:[{key:"reasoning",label:a.jsx($i,{strong:!0,children:r("chat.messageCard.reasoning")}),children:a.jsx(vr,{remarkPlugins:w,rehypePlugins:S,components:k,children:f})}]}):null,!l||m?a.jsx($i,{italic:!0,className:"thinking-shimmer",children:v}):null,l?a.jsx(vr,{remarkPlugins:w,rehypePlugins:S,components:k,children:l}):null,a.jsx("span",{className:"blinking-cursor",style:{display:"inline-block",marginLeft:"0.2em",color:t.colorText}})]})]})})});Tv.displayName="StreamingMessageCard";const{Text:Ua}=ft,PR="chat-session-tool-collapse:",Pv=(e,t)=>`${PR}${e}:${t}`,Fp=(e,t)=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(Pv(e,t));if(!n)return null;const r=JSON.parse(n);return!r||typeof r!="object"?null:{isExpanded:"isExpanded"in r&&typeof r.isExpanded=="boolean"?r.isExpanded:!0,expandedTools:[]}}catch{return null}},ER=async(e,t,n)=>{if(typeof window>"u")return;await Hn.getInstance().saveToolSessionCollapse(e,t,n);try{window.localStorage.setItem(Pv(e,t),JSON.stringify(n))}catch{}},MR="synthetic-tool-call:",jR=e=>{var n,r,s,o;const t=new Set;return(n=e.callMessageId)!=null&&n.trim()?t.add(e.callMessageId.trim()):e.call.id&&!e.call.id.includes(":")&&!e.call.id.startsWith(MR)&&t.add(e.call.id),(r=e.resultMessageId)!=null&&r.trim()?t.add(e.resultMessageId.trim()):(o=(s=e.result)==null?void 0:s.id)!=null&&o.trim()&&t.add(e.result.id.trim()),Array.from(t)},RR=e=>{const t=new Set;return e.forEach(n=>{jR(n).forEach(r=>t.add(r))}),Array.from(t)},AR=({tools:e,sessionId:t,defaultExpanded:n=!1,autoCollapseWhenStale:r=!1,onDeleteMessageIds:s})=>{const{t:o}=Ge(),{token:i}=ut.useToken(),l=y.useMemo(()=>{var O,F,D,N;const C=e[0],j=(F=(O=C==null?void 0:C.call)==null?void 0:O.toolCalls)==null?void 0:F[0];return`${(C==null?void 0:C.callMessageId)||((D=C==null?void 0:C.call)==null?void 0:D.id)||(C==null?void 0:C.resultMessageId)||((N=C==null?void 0:C.result)==null?void 0:N.id)||"tool-message-missing"}:${(j==null?void 0:j.toolCallId)||"tool-call-missing"}`},[e]),[u,f]=y.useState(()=>{const C=Fp(t,l);return C?C.isExpanded:n});y.useEffect(()=>{const C=Fp(t,l);f(C?C.isExpanded:n),Hn.getInstance().loadToolSessionCollapse(t,l).then(A=>{A&&f(A.isExpanded)}).catch(()=>{})},[n,t,l]),y.useEffect(()=>{ER(t,l,{isExpanded:u,expandedTools:[]}).catch(()=>{})},[t,l,u]);const h=y.useRef(r);y.useEffect(()=>{!h.current&&r&&f(!1),h.current=r},[r]);const{completedCount:m,pendingCount:b,hasErrors:v}=y.useMemo(()=>{let C=0,j=0,A=!1;return e.forEach(O=>{O.result?(C++,O.result.isError&&(A=!0)):j++}),{completedCount:C,pendingCount:j,hasErrors:A}},[e]),w=y.useMemo(()=>b>0?{color:"processing",text:o("components.toolSession.completedProgress",{completed:m,total:e.length})}:v?{color:"warning",text:o("components.toolSession.completedWithErrors",{completed:m})}:{color:"success",text:o("components.toolSession.completedOnly",{completed:m})},[m,b,v,e.length,o]),S=y.useMemo(()=>{let C=0,j=0,A=0;return e.forEach(O=>{var N,q;const F=(q=(N=O.result)==null?void 0:N.result)==null?void 0:q.result;if(!F)return;const D=wd(F);D&&(C+=D.added,j+=D.removed,A+=1)}),{added:C,removed:j,changedTools:A}},[e]),k=y.useMemo(()=>{const C=e.map(O=>{var N,q;const F=(q=(N=O.call)==null?void 0:N.toolCalls)==null?void 0:q[0];if(!F)return null;const D=eo(F.toolName);return D?D.toolName:F.toolName||null}).filter(O=>!!O);if(C.length===0)return o("components.toolSession.title");if(C.length===1)return C[0];const j=C.filter((O,F)=>F===0||O!==C[F-1]),A=3;return j.length<=A?j.join(" → "):`${j.slice(0,A).join(" → ")} +${j.length-A}`},[e,o]),P=y.useMemo(()=>RR(e),[e]),T=a.jsx(Pd,{tools:e,defaultExpanded:!0,hideHeader:!0}),M={background:"transparent"};return a.jsxs("div",{style:M,children:[a.jsxs("div",{style:{padding:`${i.paddingXS}px 0`,backgroundColor:"transparent",borderBottom:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:i.marginSM,transition:"border-color 240ms ease, background-color 240ms ease"},onClick:()=>f(!u),"data-testid":"tool-session-card-header",children:[a.jsx(rd,{style:{color:i.colorPrimary}}),a.jsx(Ua,{strong:!0,style:{flex:1},children:k}),a.jsx(ix,{count:e.length,style:{backgroundColor:i.colorPrimary}}),S.changedTools>0&&a.jsxs(Ue,{size:4,style:{marginInlineStart:i.marginXS},children:[a.jsxs(Ua,{style:{color:i.colorSuccess,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",S.added]}),a.jsxs(Ua,{style:{color:i.colorError,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",S.removed]})]}),a.jsx(Ua,{type:"secondary",style:{fontSize:i.fontSizeSM},children:w.text}),s&&a.jsx(xn,{title:P.length>0?o("components.toolSession.deleteMessage"):o("components.toolSession.noPersistedMessage"),children:a.jsx(je,{type:"text",size:"small",danger:!0,icon:a.jsx(kl,{}),"aria-label":o("components.toolSession.deleteMessage"),"data-testid":"delete-tool-session",disabled:P.length===0,onClick:C=>{C.preventDefault(),C.stopPropagation(),P.length!==0&&s(P)}})}),a.jsx("div",{style:{marginLeft:i.marginXS},children:u?a.jsx(ms,{style:{color:i.colorTextSecondary}}):a.jsx(zr,{style:{color:i.colorTextSecondary}})})]}),u&&T]})},Ev=y.memo(AR);Ev.displayName="ToolSessionCard";const{Content:IR}=zs,{Text:Dp}=ft,Np=120,OR=140,$R=220,LR=140,FR=72,Bp=68,DR=84,NR=720,BR=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};function zp(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:e.message.id}function zR(e,t){const n=e[t];if(!n)return Np;if("type"in n){if(n.type==="compression_divider")return FR;if(n.type==="tool_session"){if(!(t===e.length-1))return Bp;const o=Bp+Math.min(n.tools.length,8)*DR;return Math.min(NR,o)}}const r="message"in n?n.message:void 0;return r?r.role==="system"?LR:r.role==="user"?OR:$R:Np}const WR=({currentChat:e,currentSessionId:t,convertRenderableEntry:n,handleDeleteMessage:r,handleDeleteToolMessages:s,handleMessagesScroll:o,hasSystemPrompt:i,messagesListRef:l,bottomAnchorRef:u,renderableMessages:f,rowGap:h,showMessagesView:m,screens:b,workflowDraftId:v,isThinking:w,padding:S,selectionMode:k,selectedMessageIds:P,selectableMessageIds:T,onToggleMessageSelection:M})=>{const{t:C}=Ge(),j=y.useRef(f);j.current=f;const A=y.useCallback(Q=>{const G=j.current[Q];return G?zp(G):String(Q)},[]),O=y.useCallback(Q=>zR(j.current,Q),[]),F=aT({count:f.length,getScrollElement:()=>l.current,estimateSize:O,overscan:5,gap:h,getItemKey:A}),D=(Q,G)=>{if(!k)return null;const Z=T.has(Q);return a.jsx(ax,{checked:P.has(Q),disabled:!Z,onChange:()=>{Z&&M(Q)},style:{marginTop:8,marginLeft:G==="flex-end"?8:0,marginRight:G==="flex-start"?8:0}})},N=(Q,G)=>{const Z=n(Q),pe=G===void 0||G===f.length-1;if(Z.type==="compression_divider"){const $=BR(Z.createdAt);return a.jsx("div",{role:"note","aria-label":C("chat.compression.timelineAria",{detail:Z.label,time:$,defaultValue:"{{detail}} at {{time}}"}),style:{margin:"6px 0 10px 0",borderRadius:10,border:"1px solid rgba(250, 173, 20, 0.45)",background:"rgba(250, 173, 20, 0.12)",padding:b.xs?"8px 10px":"10px 12px"},children:a.jsxs(Ee,{align:"center",justify:"space-between",gap:8,wrap:!0,children:[a.jsxs(Ee,{align:"center",gap:8,wrap:!0,children:[a.jsx(Je,{color:"gold",icon:a.jsx(Sg,{}),children:C("chat.compression.tag","Context compressed")}),a.jsx(Dp,{strong:!0,style:{fontSize:12},children:Z.label})]}),a.jsx(Dp,{type:"secondary",style:{fontSize:11},children:$})]})})}return Z.type==="tool_session"?a.jsx(Ee,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:a.jsx("div",{id:`message-${Z.id}`,style:{width:"100%",maxWidth:b.xs?"100%":"90%"},children:a.jsx(Ev,{tools:Z.tools,sessionId:Z.sessionId,createdAt:Z.createdAt,defaultExpanded:pe,autoCollapseWhenStale:!pe,onDeleteMessageIds:t?s:void 0})})}):Z.message.role==="system"?a.jsxs(Ee,{align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[D(Z.message.id,"flex-start"),a.jsx("div",{style:{flex:1,minWidth:0},children:a.jsx(wy,{currentChat:e,message:Z.message})})]}):a.jsxs(Ee,{justify:Z.align,align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[Z.align==="flex-start"&&D(Z.message.id,Z.align),a.jsx("div",{style:{width:Z.message.role==="user"?"85%":"100%",maxWidth:b.xs?"100%":"90%"},children:a.jsx(Cv,{sessionId:t,message:Z.message,messageType:Z.messageType,onDelete:Z.message.id===v?void 0:r})}),Z.align==="flex-end"&&D(Z.message.id,Z.align)]})},q=(m||i)&&f.length>0,I=F.getVirtualItems();return a.jsx(IR,{role:"log","aria-live":"polite","aria-label":C("chat.view.chatMessagesAria"),className:`chat-view-messages-list ${m?"visible":"hidden"}`,style:{flex:1,minHeight:0,padding:S,overflowY:"auto",opacity:m?1:0,scrollbarWidth:"none",msOverflowStyle:"none"},ref:l,onScroll:o,children:a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:h,width:"100%",minHeight:"100%"},children:[q&&a.jsx("div",{style:{position:"relative",width:"100%",height:F.getTotalSize()},children:I.map(Q=>{const G=f[Q.index];if(!G)return null;const Z=zp(G);return a.jsx("div",{"data-chat-entry-id":Z,"data-index":Q.index,ref:F.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${Q.start}px)`},children:a.jsx("div",{className:"messageEnter",children:N(G,Q.index)})},Q.key)})}),w&&t&&a.jsx("div",{className:"streaming-card-enter",children:a.jsx(Ee,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:a.jsx("div",{style:{width:"100%",maxWidth:b.xs?"100%":"90%"},children:a.jsx(Tv,{sessionId:t})})})}),a.jsx("div",{ref:u,"data-chat-bottom-anchor":"true","aria-hidden":"true",style:{width:"100%",height:1,flexShrink:0}})]})})};function Mv(e){return typeof e.maxContextTokens=="number"&&e.maxContextTokens>0?e.maxContextTokens:e.budgetLimit>0?e.budgetLimit:0}function jv(e){const t=Mv(e);return t===0?0:e.totalTokens/t*100}function UR(e){const t=jv(e);return t>=90?"error":t>=70?"warning":t>=50?"success":"default"}function jo(e){return e.toLocaleString()}function OI(e){const t=Math.abs(e),n=r=>r.replace(/\.0$/,"");if(t>=1e9){const r=t>=1e10?0:1;return`${n((e/1e9).toFixed(r))}B`}if(t>=1e6){const r=t>=1e7?0:1;return`${n((e/1e6).toFixed(r))}M`}if(t>=1e3){const r=t>=1e4?0:1;return`${n((e/1e3).toFixed(r))}K`}return`${e}`}const qR=({usage:e,showDetails:t=!0,size:n="small",className:r=""})=>{const{t:s}=Ge(),o=Mv(e),i=jv(e),l=m=>{const b=Math.round(m*10)/10;return Number.isInteger(b)?b.toFixed(0):b.toFixed(1)},u=UR(e),f=()=>i>=90?"var(--lotus-chart-danger)":i>=70?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",h=a.jsxs("div",{style:{minWidth:180,color:"var(--lotus-metric-text-strong)"},children:[a.jsx("div",{style:{marginBottom:4,fontWeight:"bold"},children:s("components.tokenUsage.title")}),a.jsxs("div",{style:{fontSize:12},children:[s("components.tokenUsage.contextWindow"),":"," ",jo(e.totalTokens)," / ",jo(o)," ",s("components.tokenUsage.tokens")]}),a.jsx("div",{style:{fontSize:12,color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.usedPercent",{value:i.toFixed(1)})}),t&&a.jsxs("div",{style:{marginTop:6,borderTop:"1px solid var(--lotus-metric-tooltip-border)",paddingTop:6,fontSize:11},children:[a.jsxs("div",{children:[s("components.tokenUsage.system"),": ",jo(e.systemTokens)]}),e.summaryTokens>0&&a.jsxs("div",{children:[s("components.tokenUsage.summary"),": ",jo(e.summaryTokens)]}),a.jsxs("div",{children:[s("components.tokenUsage.messages"),": ",jo(e.windowTokens)]}),typeof e.promptCachedToolOutputs=="number"&&e.promptCachedToolOutputs>0&&a.jsx("div",{style:{color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.cachedToolOutputs",{count:e.promptCachedToolOutputs,defaultValue:"Prompt cache: {{count}} tool outputs summarized"})})]})]});return a.jsx(xn,{title:h,placement:"top",arrow:!0,children:a.jsxs(Ue,{className:`token-usage-display ${r}`,size:4,align:"center",style:{lineHeight:1},children:[a.jsx(bg,{type:"line",percent:Math.min(i,100),size:{height:n==="small"?6:8,width:80},strokeColor:f(),showInfo:!1,style:{margin:0,lineHeight:1}}),a.jsxs("span",{style:{fontSize:n==="small"?11:12,color:u==="error"?"var(--lotus-chart-danger)":u==="warning"?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",whiteSpace:"nowrap",fontWeight:600},children:[l(i),"%"]})]})})},Uu="chat_scroll_anchors_v1",Rv="chat_scroll_anchor_v2:";function Av(e){if(!e||typeof e!="object")return!1;const t=e;return t.v===1&&typeof t.anchorId=="string"&&typeof t.offsetPx=="number"&&typeof t.ts=="number"}function HR(){try{const e=localStorage.getItem(Uu);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object")return{};const n={};for(const[r,s]of Object.entries(t))Av(s)&&(n[r]=s);return n}catch{return{}}}function YR(e){const t=HR(),n=t[e];if(!n)return null;Hn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),delete t[e];const s=Object.keys(t).length;try{s===0?localStorage.removeItem(Uu):localStorage.setItem(Uu,JSON.stringify(t))}catch{}return n}async function XR(e){if(typeof window>"u")return null;try{const n=await Hn.getInstance().loadScrollAnchor(e);if(n)return n}catch{}try{const t=localStorage.getItem(`${Rv}${e}`);if(t){const n=JSON.parse(t);if(Av(n))return Hn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),n}}catch{}return YR(e)}async function KR(e,t){if(!(typeof window>"u")){try{await Hn.getInstance().saveScrollAnchor(e,t)}catch(n){console.warn("[ScrollAnchor] IndexedDB save failed:",n)}try{localStorage.setItem(`${Rv}${e}`,JSON.stringify(t))}catch{}}}const Wc=1,VR=3,GR=2e3;function JR(e,t){const n=Math.max(0,e.scrollHeight-e.clientHeight);return Math.min(Math.max(0,t),n)}function QR(e){const{scrollEl:t,getAnchorElement:n,offsetPx:r,isCancelled:s}=e;return new Promise(o=>{const i=performance.now();let l=0,u=-1,f=Number.NaN;const h=()=>{if(s()){o();return}const m=n();if(!m){requestAnimationFrame(h);return}const b=t.getBoundingClientRect(),w=m.getBoundingClientRect().top-b.top,S=JR(t,t.scrollTop+(w-r));if(Math.abs(t.scrollTop-S)>Wc)t.scrollTop=S,l=0;else{const P=Number.isFinite(f)?Math.abs(S-f)<=Wc:!1,T=Math.abs(t.scrollTop-u)<=Wc;l=P&&T?l+1:0}f=S,u=t.scrollTop;const k=performance.now()-i>GR;if(l>=VR||k){o();return}requestAnimationFrame(h)};requestAnimationFrame(h)})}const ZR=300,eA=.5;function tA(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:"message"in e&&e.message?e.message.id:null}function Iv(e){if("type"in e&&(e.type==="tool_session"||e.type==="compression_divider"))return e.createdAt;if("message"in e&&e.message)return e.message.createdAt}function Wp(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function nA(e,t){const n=Wp(e.createdAt);if(n!=null){let r=null,s=Number.POSITIVE_INFINITY;for(let o=0;o<t.length;o++){const i=Wp(Iv(t[o]));if(i==null)continue;const l=Math.abs(i-n);l<s&&(s=l,r=o)}if(r!=null)return r}if(typeof e.indexHint=="number"){const r=Math.max(0,Math.min(t.length-1,e.indexHint));return Number.isFinite(r)?r:null}return null}function Gd(e){return Array.from(e.querySelectorAll("[data-chat-entry-id]"))}function rA(e,t){const n=Gd(e);for(const r of n)if(r.dataset.chatEntryId===t)return r;return null}function sA(e,t){const n=Gd(e);if(n.length===0)return null;const r=Math.max(0,Math.min(n.length-1,t));return n[r]??null}function oA(e){const t=Gd(e);if(t.length===0)return null;const n=e.getBoundingClientRect().top;for(const r of t)if(r.getBoundingClientRect().bottom>n)return r;return t[t.length-1]??null}function iA(e){const{currentSessionId:t,messagesListRef:n,renderableMessages:r}=e,s=y.useRef(new Set),o=y.useRef(!1),i=y.useRef(0),l=y.useRef(null),u=y.useRef(null),f=y.useRef(!1);y.useEffect(()=>{const w=n.current;if(!w)return;const S=()=>{f.current=!0};return w.addEventListener("wheel",S,{passive:!0}),w.addEventListener("touchmove",S,{passive:!0}),w.addEventListener("pointerdown",S),()=>{w.removeEventListener("wheel",S),w.removeEventListener("touchmove",S),w.removeEventListener("pointerdown",S)}},[n]);const h=y.useMemo(()=>{const w=new Map;for(let S=0;S<r.length;S++){const k=tA(r[S]);k&&w.set(k,S)}return w},[r]),m=y.useCallback(()=>{const w=n.current;if(!w||r.length===0)return null;const S=oA(w);if(!S)return null;const k=S.dataset.chatEntryId;if(!k)return null;const P=w.getBoundingClientRect(),T=S.getBoundingClientRect(),M=h.get(k),C=typeof M=="number"?r[M]:void 0;return{v:1,anchorId:k,offsetPx:T.top-P.top,ts:Date.now(),indexHint:M,createdAt:C?Iv(C):void 0}},[h,n,r]),b=y.useCallback(async w=>{if(o.current)return;const S=m();if(!S)return;const k=u.current;k&&k.anchorId===S.anchorId&&Math.abs(k.offsetPx-S.offsetPx)<=eA||(await KR(w,S),u.current=S)},[m]),v=y.useCallback(w=>{if(!t||o.current)return;l.current&&clearTimeout(l.current);const S=t;l.current=setTimeout(()=>{b(S).catch(()=>{})},ZR)},[t,b]);return y.useEffect(()=>{const w=t;return()=>{w&&(l.current&&(clearTimeout(l.current),l.current=null),b(w).catch(()=>{}))}},[t,b]),y.useLayoutEffect(()=>{if(!t)return;const w=n.current;if(!w||r.length===0||s.current.has(t))return;let S=!1;return XR(t).then(k=>{if(S||!k){S||s.current.add(t);return}const P=h.get(k.anchorId),T=typeof P=="number"?P:nA(k,r);if(T==null){s.current.add(t);return}l.current&&(clearTimeout(l.current),l.current=null);const M=++i.current;o.current=!0,f.current=!1,w.style.overflowAnchor="none";const C=()=>i.current!==M||f.current;QR({scrollEl:w,getAnchorElement:()=>rA(w,k.anchorId)??sA(w,T),offsetPx:k.offsetPx,isCancelled:C}).finally(()=>{i.current===M&&(o.current=!1,s.current.add(t),w.style.overflowAnchor="",b(t).catch(()=>{}))})}),()=>{S=!0}},[t,h,r,r.length,n,b]),{handleScroll:v}}const Up=2,qp=6,Uc=150,aA="streaming-",lA="streaming-reasoning-",cA="streaming-status-",uA=e=>e.startsWith(aA)&&!e.startsWith(lA)&&!e.startsWith(cA),dA=({currentSessionId:e,isThinking:t,messagesListRef:n,bottomAnchorRef:r,renderableMessages:s})=>{const[o,i]=y.useState(!1),[l,u]=y.useState(!1),[f,h]=y.useState(!1),[m,b]=y.useState(0),v=y.useRef(!1),w=y.useRef(!1),S=y.useRef(!0),k=y.useRef(s.length),P=y.useRef(new Set),T=y.useRef(0),{handleScroll:M}=iA({currentSessionId:e,messagesListRef:n,renderableMessages:s}),C=y.useCallback(()=>{P.current.clear(),h(!1),b(0)},[]),j=y.useCallback(I=>{if(I<=0)return 0;const Q=P.current;if(Q.size===0)return I;let G=I;for(const Z of Array.from(Q)){if(G<=0)break;Q.delete(Z),G-=1}return G},[]),A=y.useCallback(()=>{const I=n.current;if(!I||s.length===0)return i(!1),u(!1),C(),null;const Q=Math.max(0,I.scrollHeight-I.scrollTop-I.clientHeight),G=Q<=Uc,Z=I.scrollTop<=Uc;return i(!G),u(!Z&&s.length>3),G&&(w.current=!0,C()),{atBottom:G,distanceFromBottom:Q}},[C,n,s.length]),O=y.useCallback(I=>{const Q=A();Q&&(Q.distanceFromBottom>Uc?(v.current=!0,w.current=!1):Q.atBottom&&(v.current=!1,w.current=!0,C()),M(I))},[C,A,M]),F=y.useCallback(I=>{cancelAnimationFrame(T.current);const Q=n.current,G=r.current;if(!Q||!G||s.length===0)return;const Z=(I==null?void 0:I.behavior)??"smooth";let pe=0,$=Number.NaN;const oe=()=>{T.current=0,v.current=!1,w.current=!0,C(),A()},me=()=>{const ne=n.current,fe=r.current;if(!ne||!fe)return;const he=Math.max(0,ne.scrollHeight-ne.scrollTop-ne.clientHeight),ue=fe.getBoundingClientRect(),de=ne.getBoundingClientRect(),Ce=ue.top-de.top,ze=!Number.isFinite($)||Math.abs(Ce-$)>.5,Le=he>Up||ze||pe===0;if(Le&&fe.scrollIntoView({block:"end",behavior:pe===0?Z:"auto"}),$=Ce,pe+=1,pe<qp&&Le){T.current=requestAnimationFrame(me);return}oe()};T.current=requestAnimationFrame(me)},[r,C,n,A,s.length]),D=y.useCallback(()=>{if(!n.current)return;let Q=0;const G=()=>{A()},Z=()=>{const pe=n.current;if(!pe)return;const $=pe.scrollTop>Up||Q===0;if($&&pe.scrollTo({top:0,behavior:"auto"}),Q+=1,Q<qp&&$){requestAnimationFrame(Z);return}G()};requestAnimationFrame(Z)},[n,A]),N=y.useCallback(()=>{v.current=!1,w.current=!0,C()},[C]);y.useEffect(()=>{const I=Q=>{var he,ue;const Z=(he=Q.detail)==null?void 0:he.messageId;if(!Z){console.error("No messageId provided for navigation");return}const pe=s.findIndex(de=>"message"in de&&de.message?de.message.id===Z:"id"in de?de.id===Z:!1);if(pe===-1){console.warn("Message not found for navigation:",Z);return}const $=s[pe],oe=$&&"message"in $?$.message.id:$&&"id"in $?$.id:Z,me=document.getElementById(`message-${oe}`),ne=Array.from(((ue=n.current)==null?void 0:ue.querySelectorAll("[data-chat-entry-id]"))||[]),fe=me||ne.find(de=>de.dataset.chatEntryId===oe);if(!fe){console.warn("Message element not found for navigation:",Z);return}fe.scrollIntoView({behavior:"smooth",block:"center"}),fe.classList.add("highlight-message"),setTimeout(()=>{fe.classList.remove("highlight-message")},2e3)};return window.addEventListener("navigate-to-message",I),()=>{window.removeEventListener("navigate-to-message",I)}},[n,s]);const q=y.useRef(t);return y.useEffect(()=>{!q.current&&t&&(N(),F()),q.current=t},[t,N,F]),y.useEffect(()=>Mt.subscribe(I=>{var Q;if(I.sessionId===e){if(v.current){(((Q=I.content)==null?void 0:Q.trim())??"")&&uA(I.messageId)&&(P.current.has(I.messageId)||(P.current.add(I.messageId),b(Z=>Z+1)),h(!0)),A();return}if(!I.content){A();return}F()}}),[e,A,F]),y.useEffect(()=>{const I=s.length,Q=k.current,G=I>Q;if(I===0){C(),A(),k.current=I;return}if(S.current){A(),S.current=!1,k.current=I;return}if(G&&v.current){const Z=j(I-Q);h(!0),Z>0&&b(pe=>pe+Z)}!v.current&&G?F():A(),k.current=I},[C,j,A,s.length,F]),y.useEffect(()=>{const I=n.current;if(!I||typeof ResizeObserver>"u")return;let Q=0,G=!1;const Z=()=>{cancelAnimationFrame(Q);const me=w.current;Q=requestAnimationFrame(()=>{if(G&&me&&!v.current){F({behavior:"auto"});return}A()})},pe=new ResizeObserver(()=>{G=!0,Z()});pe.observe(I);const $=I.firstElementChild;$ instanceof HTMLElement&&pe.observe($);const oe=r.current;return oe instanceof HTMLElement&&pe.observe(oe),Z(),()=>{cancelAnimationFrame(Q),pe.disconnect()}},[r,e,n,A,s.length,F]),y.useEffect(()=>{if(!n.current||s.length===0){A();return}A();let Q=0;const G=requestAnimationFrame(()=>{A(),Q=requestAnimationFrame(()=>{A()})});return()=>{cancelAnimationFrame(G),cancelAnimationFrame(Q)}},[n,s.length,e,A]),y.useEffect(()=>{S.current=!0,v.current=!1,w.current=!1,k.current=0,C()},[C,e]),{handleMessagesScroll:O,hasUnreadActivity:f,resetUserScroll:N,scrollToBottom:F,scrollToTop:D,showScrollToBottom:o,showScrollToTop:l,unreadCount:m}};function fA(e){return"type"in e&&e.type==="tool_session"}function hA(e){return"type"in e&&e.type==="compression_divider"}const Hp=e=>{const t=Date.parse(e||"");return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER},pA=e=>"type"in e?e.createdAt:e.message.createdAt,mA=e=>!("type"in e)&&e.message.role==="system";function gA(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_call"}function yA(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_result"}const Yp=e=>(e??"").trim().toLowerCase()==="conclusion",bA=e=>{const t=(e??"").trim().toLowerCase();return t==="conclusion_with_options"||t==="exitplanmode"||t==="request_permissions"},vA=e=>{var t,n,r;return((n=(t=e.call.toolCalls)==null?void 0:t[0])==null?void 0:n.toolCallId)||((r=e.result)==null?void 0:r.toolCallId)||"tool-call-missing"},SA=(e,t)=>{var n;return e.call.id||e.callMessageId||e.resultMessageId||((n=e.result)==null?void 0:n.id)||`tool-message-missing-${t}`},xA=(e,t)=>`tool-session-${SA(e,t)}:${vA(e)}`;function wA(e){const t=[],n=new Map,r=new Set,s=(i,l)=>{const u=n.get(i)||[];u.push(l),n.set(i,u)},o=i=>{const l=n.get(i);if(!l||l.length===0)return;let u;for(;l.length>0&&!u;){const f=l.shift();f&&!f.result&&(u=f)}return l.length===0?n.delete(i):n.set(i,l),u};for(const i of e){if(gA(i)){const l=i.toolCalls||[];if(l.length===0){t.push(i);continue}l.forEach((u,f)=>{const h=u.toolCallId||`${i.id}-${f}`;if(Yp(u.toolName)){r.add(h);return}if(bA(u.toolName)){r.add(h);const w={...i,id:`${i.id}:tool-call:${f}:${h}`,toolCalls:[{...u,toolCallId:h}]};t.push(w);return}const b={call:{...i,id:`${i.id}:tool-call:${f}:${h}`,toolCalls:[{...u,toolCallId:h}]},callMessageId:i.id};s(h,b);const v=t[t.length-1];Array.isArray(v)?v.push(b):t.push([b])});continue}if(yA(i)){const l=i.toolCallId;if(l&&r.has(l)){r.delete(l),t.push(i);continue}if(Yp(i.toolName)){t.push(i);continue}const u=l?o(l):void 0;if(u)u.result=i,u.resultMessageId=i.id;else{const f=l||`orphan-tool-call:${i.id}`,m={call:{role:"assistant",type:"tool_call",id:`synthetic-tool-call:${i.id}`,createdAt:i.createdAt,toolCalls:[{toolCallId:f,toolName:(i.toolName||"").trim()||"tool",parameters:{},streamingOutput:""}],isCompressed:i.isCompressed,compressedEventId:i.compressedEventId},result:i,resultMessageId:i.id},b=t[t.length-1];Array.isArray(b)?b.push(m):t.push([m])}continue}t.push(i)}return t}const _A=(e,t)=>{var l;const{t:n}=Ge(),r=y.useMemo(()=>{var f;const u=t.find(h=>h.role==="system");return u||((f=e==null?void 0:e.config)!=null&&f.baseSystemPrompt?{id:`system-prompt-${e.id}`,role:"system",content:e.config.baseSystemPrompt,createdAt:new Date(e.createdAt).toISOString()}:null)},[e,t]),s=y.useCallback(u=>!1,[]),o=y.useCallback(u=>{if(hA(u))return{type:"compression_divider",id:u.id,createdAt:u.createdAt,label:u.label};if(fA(u))return{type:"tool_session",id:u.id,sessionId:u.sessionId,tools:u.tools,createdAt:u.createdAt};const f=u.message.role==="user"?"flex-end":"flex-start";let h=u.messageType;if(!h&&u.message.role==="assistant"&&"type"in u.message){const m="type"in u.message?u.message.type:void 0;(m==="text"||m==="plan"||m==="question"||m==="tool_call"||m==="tool_result")&&(h=m)}return{type:"message",message:u.message,align:f,messageType:h}},[]),i=y.useMemo(()=>{var S;const u=t.filter(k=>{const P=k.role;return!(P!=="user"&&P!=="assistant"&&P!=="system"&&P!=="tool"||s(k))}),f=wA(u),h=[];f.forEach((k,P)=>{var C,j;if(Array.isArray(k)){const A=k[0];h.push({type:"tool_session",id:A?xA(A,P):`tool-session-unknown-${P}`,sessionId:(e==null?void 0:e.id)||"default",tools:k,createdAt:((C=A==null?void 0:A.call)==null?void 0:C.createdAt)||((j=A==null?void 0:A.result)==null?void 0:j.createdAt)||new Date().toISOString()});return}const T=k;let M;if(T.role==="assistant"&&"type"in T){const A="type"in T?T.type:void 0;(A==="text"||A==="plan"||A==="question"||A==="tool_call"||A==="tool_result")&&(M=A)}h.push({message:T,messageType:M})}),!u.some(k=>k.role==="system")&&r&&h.unshift({message:r});const b=((S=e==null?void 0:e.config)==null?void 0:S.compressionEvents)||[],v=h.findIndex(k=>!mA(k)),w=v===-1?h.length:v;for(const k of b){const P={type:"compression_divider",id:`compression-divider-${k.id}`,createdAt:k.createdAt,label:n("chat.compression.timelineDetail",{count:k.messagesCompressed,defaultValue:"{{count}} messages archived"})},T=Hp(k.createdAt),M=h.findIndex((C,j)=>j>=w&&Hp(pA(C))>T);M===-1?h.push(P):h.splice(M,0,P)}return h},[(l=e==null?void 0:e.config)==null?void 0:l.compressionEvents,e==null?void 0:e.id,t,s,r,n]);return{systemPromptMessage:r,renderableMessages:i,convertRenderableEntry:o}},{Text:kA}=ft,CA=({visible:e,selectionMode:t,selectedCount:n,totalCount:r,paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:l,maxWidth:u,onToggleSelectionMode:f,onSelectAll:h,onClear:m,onExportMarkdown:b,onExportPdf:v,t:w})=>e?a.jsx("div",{style:{paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:l,maxWidth:u,margin:"0 auto",width:"100%"},children:t?a.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[a.jsx(kA,{type:"secondary",children:w("chat.selectionToolbar.selectedCount",{selected:n,total:r})}),a.jsxs(Ue,{size:8,wrap:!0,children:[a.jsx(je,{size:"small",onClick:h,children:w("chat.selectionToolbar.selectAll")}),a.jsx(je,{size:"small",onClick:m,children:w("chat.selectionToolbar.clear")}),a.jsx(je,{size:"small",icon:a.jsx(Ks,{}),onClick:b,disabled:n===0,children:w("chat.selectionToolbar.exportMarkdown")}),a.jsx(je,{size:"small",type:"primary",icon:a.jsx(Ks,{}),onClick:v,disabled:n===0,children:w("chat.selectionToolbar.exportPdf")}),a.jsx(je,{size:"small",icon:a.jsx(vs,{}),onClick:f,children:w("chat.selectionToolbar.done")})]})]}):a.jsx(Ee,{justify:"flex-end",children:a.jsx(xn,{title:w("chat.selectionToolbar.selectMessages"),children:a.jsx(je,{"aria-label":w("chat.selectionToolbar.selectMessages"),icon:a.jsx(xg,{}),size:"small",onClick:f})})})}):null,TA=({visible:e,showScrollToTop:t,showScrollToBottom:n,hasUnreadActivity:r,unreadCount:s,onScrollToTop:o,onScrollToBottom:i,onResetUserScroll:l,t:u})=>!e||!t&&!n?null:a.jsx("div",{className:"chat-scroll-capsule-wrapper","data-testid":"chat-scroll-capsule-wrapper",children:a.jsxs("div",{className:"chat-scroll-capsule","data-testid":"chat-scroll-capsule",children:[t?a.jsx(je,{"data-testid":"chat-scroll-top-button",className:"chat-scroll-capsule__button",type:"text",icon:a.jsx("span",{"aria-hidden":"true",children:"↑"}),size:"small",onClick:o,children:u("chat.scroll.jumpToTop",{defaultValue:"Jump to top"})}):null,n?a.jsxs("span",{style:{display:"inline-flex"},children:[a.jsx("span",{style:{display:"inline-flex"},children:a.jsx(je,{"data-testid":"chat-scroll-bottom-button",className:`chat-scroll-capsule__button ${r?"chat-scroll-capsule__button--active":""}`,type:r?"primary":"text",icon:a.jsx("span",{"aria-hidden":"true",children:"↓"}),size:"small",onClick:()=>{l(),i()},children:r?u("chat.scroll.newMessagesWithCount",{count:s,defaultValue:s>0?"{{count}} new messages":"New messages"}):u("chat.scroll.backToLatest",{defaultValue:"Back to latest"})})}),r&&s>0?a.jsx("span",{className:"chat-scroll-capsule__count","data-testid":"chat-scroll-unread-count",children:s}):null]}):null]})}),PA=ht.lazy(()=>Jt(()=>import("./index-ZWAEbTDI.js"),__vite__mapDeps([16,1,2,3,4,5,6,17]),import.meta.url).then(e=>({default:e.ContextBar}))),EA=({sessionId:e,auxReady:t,maxWidth:n,paddingLeft:r,paddingRight:s,workspaceState:o,inspectorEligible:i,planMode:l,onRequestOpenInspector:u,t:f})=>{const{token:h}=ut.useToken();if(!e)return null;const m=l?a.jsx(xn,{title:f("chat.planMode.tooltip",{status:l.status,mode:l.pre_permission_mode,defaultValue:"Plan mode active · phase: {{status}} · previous mode: {{mode}}"}),children:a.jsx(Je,{color:"purple",icon:a.jsx(ug,{}),style:{marginInlineEnd:0},children:f("chat.planMode.active",{defaultValue:"Plan mode"})})}):null,b=i&&o.inspectorTogglePlacement==="meta_strip"&&!!u,v=!!(m||o.isMultiPane||b);return a.jsxs(a.Fragment,{children:[t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx(PA,{sessionId:e})}):null,v?a.jsx("div",{"data-conversation-meta-strip":!0,"data-inspector-toggle-placement":o.inspectorTogglePlacement,style:{paddingTop:h.paddingXS,paddingRight:s,paddingBottom:0,paddingLeft:r,maxWidth:n,margin:"0 auto",width:"100%"},children:a.jsxs(Ee,{align:"center",justify:"space-between",gap:h.marginXS,wrap:!0,children:[a.jsxs(Ee,{align:"center",gap:h.marginXS,wrap:!0,children:[m,o.isMultiPane?a.jsx(Je,{color:"blue",style:{marginInlineEnd:0},children:f("chat.workspace.multiPane",{count:o.leafCount,defaultValue:"{{count}} panes"})}):null]}),b&&u?a.jsx(je,{size:"small",icon:a.jsx(id,{}),onClick:u,"aria-label":f("chat.workspace.toggleInspector",{defaultValue:"Open inspector"}),children:o.inspectorMode==="drawer"?f("chat.workspace.openInspector",{defaultValue:"Inspector"}):f("chat.workspace.toggleInspector",{defaultValue:"Inspector"})}):null]})}):null]})},Jd=({isEmbedded:e,leafCount:t,isMobileViewport:n})=>{const r=Number.isFinite(t)&&t>0?Math.floor(t):1,s=r>1;return{isEmbedded:e,leafCount:r,isMultiPane:s,isMobileViewport:n,inspectorMode:n||s?"drawer":"rail",inspectorTogglePlacement:s&&!n?"pane_header":"meta_strip"}},MA=ht.lazy(()=>Jt(()=>import("./index-Dyeykeg3.js"),__vite__mapDeps([18,1,2,3,4,5,6,19]),import.meta.url).then(e=>({default:e.QuestionDialog}))),{useToken:jA}=ut,{useBreakpoint:RA}=Tl,AA=e=>{const{t}=xt;return e.role==="user"?t("chat.view.roleUser"):e.role==="assistant"?t("chat.view.roleAssistant"):e.role==="system"?t("chat.view.roleSystem"):t("chat.view.roleDefault")},Ov=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},IA=e=>e.map(({message:t,text:n},r)=>{const s=AA(t),o=Ov(t.createdAt);return[`## ${r+1}. ${s} · ${o}`,"",n].join(`
|
|
216
|
+
\`\`\``)):null},$p="_text",kl=e=>!!(e&&e.role==="assistant"&&"type"in e&&e.type==="text"),Lp=(e,t,n)=>{var s;const r=typeof((s=t.metadata)==null?void 0:s.backendMessageId)=="string"?t.metadata.backendMessageId.trim():"";if(r)return r;if(e.endsWith($p)){const o=e.slice(0,-$p.length);if(o&&n.some(i=>i.id===o))return o}return e},pR=(e,t)=>{const n=t.trim();if(!n)return!1;const r=e.matchAll(/```mermaid\s*([\s\S]*?)```/gi);for(const s of r)if((s[1]||"").trim()===n)return!0;return!1},mR=e=>(e instanceof Error?e.message:String(e)).toLowerCase().includes("message not found"),gR=(e,t,n,r)=>{const s=e.find(o=>o.id===t);return kl(s)?s:e.find(o=>kl(o)&&(o.content===n||pR(o.content,r)))},yR=(e,t)=>{const n=(t??"").trim(),r=["Original Mermaid code:","```mermaid",e.trim(),"```"];return n&&r.push("","Mermaid parser/render error:",n),r.push("","Please fix the Mermaid syntax while preserving the original meaning and labels."),r.join(`
|
|
217
|
+
`)},bR=async(e,t,n)=>{var l,u,d;const r=t==null?void 0:t.trim();if(!r)throw new Error("No model configured. Please select a default model in Provider Settings.");const i=((d=(u=(l=(await fR().chat.completions.create({model:r,messages:[{role:"system",content:"You fix Mermaid diagrams using the parser/render error context. Return only corrected Mermaid code without markdown fences or extra text."},{role:"user",content:yR(e,n)}],temperature:0})).choices)==null?void 0:l[0])==null?void 0:u.message)==null?void 0:d.content)??"";return Cv(i)},vR=(e,t)=>{const n=Ok(),r=$k(),s=(r==null?void 0:r.model)??n;return y.useCallback(async(o,i)=>{const l=ae.getState(),u=t??l.currentSessionId,d=l.chats.find(T=>T.id===u);if(!u||!d)throw new Error("No active chat available");const h=d.messages.find(T=>T.id===e);if(!kl(h))throw new Error("Mermaid fix is only available for assistant text messages");const m=await bR(o,s,i);if(!m)throw new Error("AI did not return a Mermaid fix");const b=hR(h.content,o,m);if(!b)throw new Error("Unable to locate Mermaid block to update");let v=Lp(e,h,d.messages);try{await Ys.patchSessionMessage(u,v,{content:b})}catch(T){if(!mR(T))throw T;await l.loadChatHistory(u,{mode:"replace",retries:2,retryDelayMs:150,waitForAssistant:!0});const C=ae.getState().chats.find(A=>A.id===u);if(!C)throw T;const E=gR(C.messages,e,h.content,o);if(!E)throw T;v=Lp(E.id,E,C.messages),await Ys.patchSessionMessage(u,v,{content:b})}const w=ae.getState(),S=w.chats.find(T=>T.id===u);if(!S)throw new Error("No active chat available");const k=new Set([e,v]),P=S.messages.map(T=>!k.has(T.id)||!kl(T)?T:{...T,content:b});w.updateSession(u,{messages:P})},[e,t,s])},SR=e=>e.xs?"100%":e.sm?"95%":"800px",xR=[{key:"shorter",labelKey:"feedback.retry.shorter",fallbackLabel:"Shorter",color:"blue",prefix:"Please give a shorter, more concise answer:"},{key:"deeper",labelKey:"feedback.retry.deeper",fallbackLabel:"Deeper",color:"purple",prefix:"Please provide a more detailed, in-depth answer:"},{key:"actionable",labelKey:"feedback.retry.actionable",fallbackLabel:"More actionable",color:"green",prefix:"Please make your answer more actionable with specific steps:"}],wR=({messageId:e,isVisible:t,onRetryWithVariation:n})=>{const{t:r}=Ge(),[s,o]=y.useState(null),[i,l]=y.useState(!1),u=y.useCallback(()=>{o(v=>v==="like"?null:"like"),l(!1)},[]),d=y.useCallback(()=>{o(v=>{const w=v==="dislike"?null:"dislike";return l(w==="dislike"),w})},[]),h=y.useCallback(v=>{n&&n(v.prefix)},[n]),b=["lotus-msg-feedback",t?"is-visible":"",s!==null?"has-rating":""].filter(Boolean).join(" ");return a.jsxs("div",{className:b,"data-message-id":e,children:[a.jsx(xn,{title:r("feedback.helpful","Helpful"),children:a.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="like"?"is-liked":""}`,onClick:u,"aria-label":r("feedback.helpful","Helpful"),children:s==="like"?a.jsx(rx,{}):a.jsx(sx,{})})}),a.jsx(xn,{title:r("feedback.notHelpful","Not helpful"),children:a.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="dislike"?"is-disliked":""}`,onClick:d,"aria-label":r("feedback.notHelpful","Not helpful"),children:s==="dislike"?a.jsx(ox,{}):a.jsx(ix,{})})}),i&&n&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"lotus-msg-feedback-sep"}),a.jsx("span",{className:"lotus-msg-feedback-retry",children:xR.map(v=>a.jsx(Je,{color:v.color,bordered:!1,className:"lotus-msg-feedback-retry-tag",onClick:()=>h(v),children:r(v.labelKey,v.fallbackLabel)},v.key))})]})]})},{useToken:_R}=ut,{useBreakpoint:kR}=Pl,CR="chat-send-message",TR=({sessionId:e,message:t,onDelete:n,messageType:r})=>{const{role:s,id:o}=t,{token:i}=_R(),l=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:u}=Ge(),{message:d}=Fn.useApp(),h=kR(),m=ae(de=>de.updateSession),b=ae(de=>de.loadChatHistory),v=ae(de=>de.refreshChats),w=y.useRef(null),[S,k]=y.useState(!1),P=ae(Vi(e)),T=y.useCallback(de=>typeof window>"u"?Promise.reject(new Error("window is unavailable")):new Promise((Ce,ze)=>{const Le={content:de,sessionId:e,handled:!1,resolve:Ce,reject:ze};window.dispatchEvent(new CustomEvent(CR,{detail:Le})),Le.handled||ze(new Error("No chat message dispatcher available"))}),[e]),j=y.useMemo(()=>{if(!t.createdAt)return null;const de=new Date(t.createdAt);if(Number.isNaN(de.getTime()))return null;try{return kP(de,"MMM d, yyyy HH:mm")}catch{return de.toLocaleString()}},[t.createdAt]),C=y.useMemo(()=>GE(t,r),[t,r]),E=y.useMemo(()=>JE(t,C),[t,C]),A=y.useMemo(()=>QE(t,C),[t,C]),O=y.useMemo(()=>eb(t),[t]),D=vR(o,e),F=y.useCallback(async de=>{var Ce;if(!e||!o){d.warning(u("chat.messageActions.cannotRestore"));return}try{const ze=await Ys.restoreSessionState(e,{target_message_id:o,restore_files:de});await b(e,{mode:"replace"}),await v();const Le=((Ce=ze.file_errors)==null?void 0:Ce.length)??0;if(Le>0){d.warning(u("chat.messageActions.restorePartial",{count:Le}));return}de?d.success(u("chat.messageActions.restoreFilesSuccess",{count:ze.messages_removed})):d.success(u("chat.messageActions.restoreSuccess",{count:ze.messages_removed}))}catch(ze){const Le=ze instanceof Error?ze.message:u("chat.messageActions.restoreFailed");d.error(Le)}},[d,e,b,o,v,u]),N=y.useCallback(()=>{F(!1)},[F]),q=y.useCallback(()=>{F(!0)},[F]),{contextMenuItems:I,handleMouseUp:Q,copyToClipboard:G,referenceMessage:Z}=nj({messageText:O,messageId:o,currentSessionId:e,onDelete:n,onRestoreChat:N,onRestoreFilesAndChat:q,cardRef:w}),pe=y.useMemo(()=>s==="user"&&O.startsWith("/"),[s,O]),$=y.useMemo(()=>Gy(void 0,{onFixMermaid:D}),[D]),oe=y.useMemo(()=>[Zu,ed],[]),me=y.useMemo(()=>[Qu],[]),ne=y.useMemo(()=>[RP(()=>G(O),u("chat.actions.copyMessage")),AP(Z,u("chat.actions.referenceMessage"))],[O,G,Z,u]),{handleExecutePlan:he,handleRefinePlan:fe,handleQuestionAnswer:ue}=rj({currentSessionId:e,updateSession:m,sendMessage:T});return C==="plan"&&E&&s==="assistant"?a.jsx(Ey,{plan:E,contextId:e||"",onExecute:he,onRefine:fe,timestamp:j??void 0}):C==="question"&&A&&s==="assistant"?a.jsx(jy,{question:A,contextId:e||"",onAnswer:ue,disabled:P||!1,timestamp:j??void 0}):LP(t)?a.jsx(qP,{taskList:t.taskList}):$P(t)?(Ee("[MessageCard]","[MessageCard] Rendering FileReferenceCard for message:",t.id,"paths:",t.paths),a.jsx(Me,{justify:"flex-end",style:{width:"100%"},children:a.jsx(Ry,{paths:t.paths,displayText:t.displayText,timestamp:j??void 0})})):a.jsxs(Me,{vertical:!0,onContextMenu:de=>Q(de),style:{width:"100%"},children:[a.jsx(Ks,{menu:{items:I},trigger:["contextMenu"],children:a.jsx(nn,{"data-testid":s==="assistant"?"assistant-message":"user-message",id:o?`message-${o}`:void 0,ref:w,style:{width:"100%",minWidth:"100%",maxWidth:SR(h),margin:"0 auto",background:s==="user"?"var(--lotus-message-user-bg)":s==="assistant"?"var(--lotus-message-assistant-bg)":i.colorBgContainer,backdropFilter:l?"none":"blur(14px)",WebkitBackdropFilter:l?"none":"blur(14px)",border:s==="user"?"1px solid var(--lotus-message-user-border)":"1px solid var(--lotus-glass-border-subtle)",borderRadius:i.borderRadiusLG,boxShadow:S?"var(--lotus-card-hover-shadow)":"var(--lotus-shadow-soft)",position:"relative",wordWrap:"break-word",overflowWrap:"break-word",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:S?"translateY(-2px) scale(1.002)":"none",overflow:"hidden"},styles:{body:{padding:i.paddingMD}},onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:a.jsxs(Ue,{direction:"vertical",size:i.marginXS,style:{width:"100%",maxWidth:"100%"},children:[a.jsx(KE,{role:s,formattedTimestamp:j,token:i}),t.role==="user"&&t.images&&a.jsx(PP,{images:t.images}),a.jsx(Me,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:a.jsx(XE,{sessionId:e,message:t,messageText:O,isUserToolCall:pe,formatUserToolCall:ZE,markdownComponents:$,markdownPlugins:oe,rehypePlugins:me})}),a.jsx(jP,{isVisible:S,position:{bottom:i.paddingXS,right:i.paddingXS},buttons:ne})]})})}),s==="assistant"&&C==="text"&&o&&a.jsx(wR,{messageId:o,isVisible:S})]})},Tv=y.memo(TR,(e,t)=>e.message===t.message&&e.messageType===t.messageType&&e.onDelete===t.onDelete);Tv.displayName="MessageCard";const{Text:Li}=ft,{useToken:PR}=ut,Pi=8,Wc=4,MR=new Set(["mermaid","graph","flowchart","sequencediagram","classdiagram","statediagram","statediagram-v2","erdiagram","journey","gantt","pie","gitgraph","mindmap","timeline","quadrantchart","requirementdiagram","c4context","c4container","c4component","c4dynamic","c4deployment","sankey","sankey-beta","xychart","xychart-beta","block","block-beta","packet","packet-beta","kanban","architecture"]),ER=(e,t)=>a.jsx(nn,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto",marginBottom:Pi,background:t.colorBgContainer,borderColor:t.colorBorder},children:a.jsx("pre",{style:{margin:0,padding:t.paddingSM,background:t.colorBgContainer,color:t.colorText,borderRadius:t.borderRadiusSM,fontSize:t.fontSizeSM,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:a.jsx("code",{style:{color:t.colorText},children:e})})}),jR=e=>({p:({children:t})=>a.jsx(Li,{style:{marginBottom:Pi,display:"block"},children:t}),ol:({children:t})=>a.jsx("ol",{style:{marginBottom:Pi,paddingLeft:20},children:t}),ul:({children:t})=>a.jsx("ul",{style:{marginBottom:Pi,paddingLeft:20},children:t}),li:({children:t})=>a.jsx("li",{style:{marginBottom:Wc},children:t}),code({className:t,children:n,inline:r,...s}){const o=/language-([^\s]+)/i.exec(t||""),i=o?o[1]:"",l=r??(!o&&!t),u=n?String(n).replace(/\n$/,""):"";if(l)return a.jsx(Li,{code:!0,className:t,...s,children:n});if(!u.trim())return null;const d=i.toLowerCase();return MR.has(d)?ER(u,e):Ky(i,u,void 0,void 0)},pre:({children:t})=>a.jsx(a.Fragment,{children:t}),blockquote:({children:t})=>a.jsx(nn,{size:"small",styles:{body:{padding:"4px 8px"}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${Wc}px 0`,color:"var(--ant-color-text-secondary, #64748b)",fontStyle:"italic"},children:t}),a:({children:t,href:n})=>{const r=typeof n=="string"?n.trim():"";return r?a.jsx("a",{href:r,target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),Vy(r)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:t}):a.jsx(a.Fragment,{children:t})},table:({children:t})=>a.jsx(nn,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${Pi}px 0`},children:a.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:"1px solid var(--ant-color-border, #d9d9d9)"},children:t})}),thead:({children:t})=>a.jsx("thead",{style:{backgroundColor:"var(--ant-color-bg-container, #ffffff)"},children:t}),tbody:({children:t})=>a.jsx("tbody",{children:t}),tr:({children:t})=>a.jsx("tr",{style:{borderBottom:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),th:({children:t})=>a.jsx("th",{style:{padding:"4px 8px",textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),td:({children:t})=>a.jsx("td",{style:{padding:"4px 8px",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),input:({type:t,checked:n,disabled:r})=>t==="checkbox"?a.jsx("input",{type:"checkbox",checked:n,disabled:r,style:{marginRight:Wc,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):a.jsx("input",{type:t,checked:n,disabled:r})}),Pv=y.memo(({sessionId:e})=>{const{token:t}=PR(),n=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:r}=Ge(),s=`streaming-${e}`,o=`streaming-reasoning-${e}`,i=`streaming-status-${e}`,[l,u]=y.useState(()=>Et.getLatest(s)??""),[d,h]=y.useState(()=>Et.getLatest(o)??""),[m,b]=y.useState(()=>Et.getLatest(i)??"");y.useEffect(()=>{let P=null,T=null;const j=Et.subscribeMessage(s,C=>{T=C,P===null&&(P=requestAnimationFrame(()=>{u(T??""),P=null}))});return()=>{j(),P!==null&&cancelAnimationFrame(P)}},[s]),y.useEffect(()=>{let P=null,T=null;const j=Et.subscribeMessage(o,C=>{T=C,P===null&&(P=requestAnimationFrame(()=>{h(T??""),P=null}))});return()=>{j(),P!==null&&cancelAnimationFrame(P)}},[o]),y.useEffect(()=>{let P=null,T=null;const j=Et.subscribeMessage(i,C=>{T=C,P===null&&(P=requestAnimationFrame(()=>{b(T??""),P=null}))});return()=>{j(),P!==null&&cancelAnimationFrame(P)}},[i]);const v=y.useMemo(()=>{const P=m.trim().toLowerCase();if(!P)return r("chat.messageCard.assistantThinking");if(P==="context_compacting")return r("chat.messageCard.assistantCompactingContext");if(P==="context_compaction_degraded")return r("chat.messageCard.assistantCompactingContextDegraded");if(P==="context_compaction_failed")return r("chat.messageCard.assistantCompactingContextFailed");if(P==="memory_updating")return r("chat.messageCard.assistantUpdatingMemory");if(P.startsWith("tool_running:")){const j=(P.slice(13).trim()||"tool").replace(/[_-]+/g," ");return r("chat.messageCard.assistantRunningTool",{tool:j})}return r("chat.messageCard.assistantThinking")},[m,r]),w=y.useMemo(()=>[Zu,ed],[]),S=y.useMemo(()=>[Qu],[]),k=y.useMemo(()=>jR(t),[t]);return a.jsx(nn,{"data-testid":"streaming-indicator",role:"status","aria-live":"polite","aria-busy":!0,"aria-label":r("chat.view.aiRespondingAria"),style:{width:"100%",minWidth:"100%",maxWidth:"800px",margin:"0 auto",background:"var(--lotus-message-streaming-bg)",backdropFilter:n?"none":"blur(14px)",WebkitBackdropFilter:n?"none":"blur(14px)",borderRadius:t.borderRadiusLG,boxShadow:"none",position:"relative",wordWrap:"break-word",overflowWrap:"break-word"},children:a.jsxs(Ue,{direction:"vertical",size:t.marginXS,style:{width:"100%",maxWidth:"100%"},children:[a.jsx(Me,{align:"baseline",justify:"space-between",gap:t.marginXS,children:a.jsx(Li,{type:"secondary",strong:!0,style:{fontSize:t.fontSizeSM},children:r("chat.streaming.assistant")})}),a.jsxs(Me,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:[d?a.jsx(eo,{size:"small",defaultActiveKey:["reasoning"],style:{marginBottom:t.marginSM,background:t.colorBgContainer,borderColor:t.colorBorderSecondary},items:[{key:"reasoning",label:a.jsx(Li,{strong:!0,children:r("chat.messageCard.reasoning")}),children:a.jsx(vr,{remarkPlugins:w,rehypePlugins:S,components:k,children:d})}]}):null,!l||m?a.jsx(Li,{italic:!0,className:"thinking-shimmer",children:v}):null,l?a.jsx(vr,{remarkPlugins:w,rehypePlugins:S,components:k,children:l}):null,a.jsx("span",{className:"blinking-cursor",style:{display:"inline-block",marginLeft:"0.2em",color:t.colorText}})]})]})})});Pv.displayName="StreamingMessageCard";const{Text:qa}=ft,RR="chat-session-tool-collapse:",Mv=(e,t)=>`${RR}${e}:${t}`,Fp=(e,t)=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(Mv(e,t));if(!n)return null;const r=JSON.parse(n);return!r||typeof r!="object"?null:{isExpanded:"isExpanded"in r&&typeof r.isExpanded=="boolean"?r.isExpanded:!0,expandedTools:[]}}catch{return null}},AR=async(e,t,n)=>{if(typeof window>"u")return;await Hn.getInstance().saveToolSessionCollapse(e,t,n);try{window.localStorage.setItem(Mv(e,t),JSON.stringify(n))}catch{}},IR="synthetic-tool-call:",OR=e=>{var n,r,s,o;const t=new Set;return(n=e.callMessageId)!=null&&n.trim()?t.add(e.callMessageId.trim()):e.call.id&&!e.call.id.includes(":")&&!e.call.id.startsWith(IR)&&t.add(e.call.id),(r=e.resultMessageId)!=null&&r.trim()?t.add(e.resultMessageId.trim()):(o=(s=e.result)==null?void 0:s.id)!=null&&o.trim()&&t.add(e.result.id.trim()),Array.from(t)},$R=e=>{const t=new Set;return e.forEach(n=>{OR(n).forEach(r=>t.add(r))}),Array.from(t)},LR=({tools:e,sessionId:t,defaultExpanded:n=!1,autoCollapseWhenStale:r=!1,onDeleteMessageIds:s})=>{const{t:o}=Ge(),{token:i}=ut.useToken(),l=y.useMemo(()=>{var O,D,F,N;const C=e[0],E=(D=(O=C==null?void 0:C.call)==null?void 0:O.toolCalls)==null?void 0:D[0];return`${(C==null?void 0:C.callMessageId)||((F=C==null?void 0:C.call)==null?void 0:F.id)||(C==null?void 0:C.resultMessageId)||((N=C==null?void 0:C.result)==null?void 0:N.id)||"tool-message-missing"}:${(E==null?void 0:E.toolCallId)||"tool-call-missing"}`},[e]),[u,d]=y.useState(()=>{const C=Fp(t,l);return C?C.isExpanded:n});y.useEffect(()=>{const C=Fp(t,l);d(C?C.isExpanded:n),Hn.getInstance().loadToolSessionCollapse(t,l).then(A=>{A&&d(A.isExpanded)}).catch(()=>{})},[n,t,l]),y.useEffect(()=>{AR(t,l,{isExpanded:u,expandedTools:[]}).catch(()=>{})},[t,l,u]);const h=y.useRef(r);y.useEffect(()=>{!h.current&&r&&d(!1),h.current=r},[r]);const{completedCount:m,pendingCount:b,hasErrors:v}=y.useMemo(()=>{let C=0,E=0,A=!1;return e.forEach(O=>{O.result?(C++,O.result.isError&&(A=!0)):E++}),{completedCount:C,pendingCount:E,hasErrors:A}},[e]),w=y.useMemo(()=>b>0?{color:"processing",text:o("components.toolSession.completedProgress",{completed:m,total:e.length})}:v?{color:"warning",text:o("components.toolSession.completedWithErrors",{completed:m})}:{color:"success",text:o("components.toolSession.completedOnly",{completed:m})},[m,b,v,e.length,o]),S=y.useMemo(()=>{let C=0,E=0,A=0;return e.forEach(O=>{var N,q;const D=(q=(N=O.result)==null?void 0:N.result)==null?void 0:q.result;if(!D)return;const F=wd(D);F&&(C+=F.added,E+=F.removed,A+=1)}),{added:C,removed:E,changedTools:A}},[e]),k=y.useMemo(()=>{const C=e.map(O=>{var N,q;const D=(q=(N=O.call)==null?void 0:N.toolCalls)==null?void 0:q[0];if(!D)return null;const F=to(D.toolName);return F?F.toolName:D.toolName||null}).filter(O=>!!O);if(C.length===0)return o("components.toolSession.title");if(C.length===1)return C[0];const E=C.filter((O,D)=>D===0||O!==C[D-1]),A=3;return E.length<=A?E.join(" → "):`${E.slice(0,A).join(" → ")} +${E.length-A}`},[e,o]),P=y.useMemo(()=>$R(e),[e]),T=a.jsx(Pd,{tools:e,defaultExpanded:!0,hideHeader:!0}),j={background:"transparent"};return a.jsxs("div",{style:j,children:[a.jsxs("div",{style:{padding:`${i.paddingXS}px 0`,backgroundColor:"transparent",borderBottom:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:i.marginSM,transition:"border-color 240ms ease, background-color 240ms ease"},onClick:()=>d(!u),"data-testid":"tool-session-card-header",children:[a.jsx(sd,{style:{color:i.colorPrimary}}),a.jsx(qa,{strong:!0,style:{flex:1},children:k}),a.jsx(ax,{count:e.length,style:{backgroundColor:i.colorPrimary}}),S.changedTools>0&&a.jsxs(Ue,{size:4,style:{marginInlineStart:i.marginXS},children:[a.jsxs(qa,{style:{color:i.colorSuccess,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",S.added]}),a.jsxs(qa,{style:{color:i.colorError,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",S.removed]})]}),a.jsx(qa,{type:"secondary",style:{fontSize:i.fontSizeSM},children:w.text}),s&&a.jsx(xn,{title:P.length>0?o("components.toolSession.deleteMessage"):o("components.toolSession.noPersistedMessage"),children:a.jsx(je,{type:"text",size:"small",danger:!0,icon:a.jsx(Cl,{}),"aria-label":o("components.toolSession.deleteMessage"),"data-testid":"delete-tool-session",disabled:P.length===0,onClick:C=>{C.preventDefault(),C.stopPropagation(),P.length!==0&&s(P)}})}),a.jsx("div",{style:{marginLeft:i.marginXS},children:u?a.jsx(gs,{style:{color:i.colorTextSecondary}}):a.jsx(Wr,{style:{color:i.colorTextSecondary}})})]}),u&&T]})},Ev=y.memo(LR);Ev.displayName="ToolSessionCard";const{Content:FR}=Ws,{Text:Dp}=ft,Np=120,DR=140,NR=220,BR=140,zR=72,Bp=68,WR=84,UR=720,qR=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};function zp(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:e.message.id}function HR(e,t){const n=e[t];if(!n)return Np;if("type"in n){if(n.type==="compression_divider")return zR;if(n.type==="tool_session"){if(!(t===e.length-1))return Bp;const o=Bp+Math.min(n.tools.length,8)*WR;return Math.min(UR,o)}}const r="message"in n?n.message:void 0;return r?r.role==="system"?BR:r.role==="user"?DR:NR:Np}const YR=({currentChat:e,currentSessionId:t,convertRenderableEntry:n,handleDeleteMessage:r,handleDeleteToolMessages:s,handleMessagesScroll:o,hasSystemPrompt:i,messagesListRef:l,bottomAnchorRef:u,renderableMessages:d,rowGap:h,showMessagesView:m,screens:b,workflowDraftId:v,isThinking:w,padding:S,selectionMode:k,selectedMessageIds:P,selectableMessageIds:T,onToggleMessageSelection:j})=>{const{t:C}=Ge(),E=y.useRef(d);E.current=d;const A=y.useCallback(Q=>{const G=E.current[Q];return G?zp(G):String(Q)},[]),O=y.useCallback(Q=>HR(E.current,Q),[]),D=uT({count:d.length,getScrollElement:()=>l.current,estimateSize:O,overscan:5,gap:h,getItemKey:A}),F=(Q,G)=>{if(!k)return null;const Z=T.has(Q);return a.jsx(lx,{checked:P.has(Q),disabled:!Z,onChange:()=>{Z&&j(Q)},style:{marginTop:8,marginLeft:G==="flex-end"?8:0,marginRight:G==="flex-start"?8:0}})},N=(Q,G)=>{const Z=n(Q),pe=G===void 0||G===d.length-1;if(Z.type==="compression_divider"){const $=qR(Z.createdAt);return a.jsx("div",{role:"note","aria-label":C("chat.compression.timelineAria",{detail:Z.label,time:$,defaultValue:"{{detail}} at {{time}}"}),style:{margin:"6px 0 10px 0",borderRadius:10,border:"1px solid rgba(250, 173, 20, 0.45)",background:"rgba(250, 173, 20, 0.12)",padding:b.xs?"8px 10px":"10px 12px"},children:a.jsxs(Me,{align:"center",justify:"space-between",gap:8,wrap:!0,children:[a.jsxs(Me,{align:"center",gap:8,wrap:!0,children:[a.jsx(Je,{color:"gold",icon:a.jsx(Sg,{}),children:C("chat.compression.tag","Context compressed")}),a.jsx(Dp,{strong:!0,style:{fontSize:12},children:Z.label})]}),a.jsx(Dp,{type:"secondary",style:{fontSize:11},children:$})]})})}return Z.type==="tool_session"?a.jsx(Me,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:a.jsx("div",{id:`message-${Z.id}`,style:{width:"100%",maxWidth:b.xs?"100%":"90%"},children:a.jsx(Ev,{tools:Z.tools,sessionId:Z.sessionId,createdAt:Z.createdAt,defaultExpanded:pe,autoCollapseWhenStale:!pe,onDeleteMessageIds:t?s:void 0})})}):Z.message.role==="system"?a.jsxs(Me,{align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[F(Z.message.id,"flex-start"),a.jsx("div",{style:{flex:1,minWidth:0},children:a.jsx(_y,{currentChat:e,message:Z.message})})]}):a.jsxs(Me,{justify:Z.align,align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[Z.align==="flex-start"&&F(Z.message.id,Z.align),a.jsx("div",{style:{width:Z.message.role==="user"?"85%":"100%",maxWidth:b.xs?"100%":"90%"},children:a.jsx(Tv,{sessionId:t,message:Z.message,messageType:Z.messageType,onDelete:Z.message.id===v?void 0:r})}),Z.align==="flex-end"&&F(Z.message.id,Z.align)]})},q=(m||i)&&d.length>0,I=D.getVirtualItems();return a.jsx(FR,{role:"log","aria-live":"polite","aria-label":C("chat.view.chatMessagesAria"),className:`chat-view-messages-list ${m?"visible":"hidden"}`,style:{flex:1,minHeight:0,padding:S,overflowY:"auto",opacity:m?1:0,scrollbarWidth:"none",msOverflowStyle:"none"},ref:l,onScroll:o,children:a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:h,width:"100%",minHeight:"100%"},children:[q&&a.jsx("div",{style:{position:"relative",width:"100%",height:D.getTotalSize()},children:I.map(Q=>{const G=d[Q.index];if(!G)return null;const Z=zp(G);return a.jsx("div",{"data-chat-entry-id":Z,"data-index":Q.index,ref:D.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${Q.start}px)`},children:a.jsx("div",{className:"messageEnter",children:N(G,Q.index)})},Q.key)})}),w&&t&&a.jsx("div",{className:"streaming-card-enter",children:a.jsx(Me,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:a.jsx("div",{style:{width:"100%",maxWidth:b.xs?"100%":"90%"},children:a.jsx(Pv,{sessionId:t})})})}),a.jsx("div",{ref:u,"data-chat-bottom-anchor":"true","aria-hidden":"true",style:{width:"100%",height:1,flexShrink:0}})]})})};function jv(e){return typeof e.maxContextTokens=="number"&&e.maxContextTokens>0?e.maxContextTokens:e.budgetLimit>0?e.budgetLimit:0}function Rv(e){const t=jv(e);return t===0?0:e.totalTokens/t*100}function XR(e){const t=Rv(e);return t>=90?"error":t>=70?"warning":t>=50?"success":"default"}function Ro(e){return e.toLocaleString()}function DI(e){const t=Math.abs(e),n=r=>r.replace(/\.0$/,"");if(t>=1e9){const r=t>=1e10?0:1;return`${n((e/1e9).toFixed(r))}B`}if(t>=1e6){const r=t>=1e7?0:1;return`${n((e/1e6).toFixed(r))}M`}if(t>=1e3){const r=t>=1e4?0:1;return`${n((e/1e3).toFixed(r))}K`}return`${e}`}const KR=({usage:e,showDetails:t=!0,size:n="small",className:r=""})=>{const{t:s}=Ge(),o=jv(e),i=Rv(e),l=m=>{const b=Math.round(m*10)/10;return Number.isInteger(b)?b.toFixed(0):b.toFixed(1)},u=XR(e),d=()=>i>=90?"var(--lotus-chart-danger)":i>=70?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",h=a.jsxs("div",{style:{minWidth:180,color:"var(--lotus-metric-text-strong)"},children:[a.jsx("div",{style:{marginBottom:4,fontWeight:"bold"},children:s("components.tokenUsage.title")}),a.jsxs("div",{style:{fontSize:12},children:[s("components.tokenUsage.contextWindow"),":"," ",Ro(e.totalTokens)," / ",Ro(o)," ",s("components.tokenUsage.tokens")]}),a.jsx("div",{style:{fontSize:12,color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.usedPercent",{value:i.toFixed(1)})}),t&&a.jsxs("div",{style:{marginTop:6,borderTop:"1px solid var(--lotus-metric-tooltip-border)",paddingTop:6,fontSize:11},children:[a.jsxs("div",{children:[s("components.tokenUsage.system"),": ",Ro(e.systemTokens)]}),e.summaryTokens>0&&a.jsxs("div",{children:[s("components.tokenUsage.summary"),": ",Ro(e.summaryTokens)]}),a.jsxs("div",{children:[s("components.tokenUsage.messages"),": ",Ro(e.windowTokens)]}),typeof e.promptCachedToolOutputs=="number"&&e.promptCachedToolOutputs>0&&a.jsx("div",{style:{color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.cachedToolOutputs",{count:e.promptCachedToolOutputs,defaultValue:"Prompt cache: {{count}} tool outputs summarized"})})]})]});return a.jsx(xn,{title:h,placement:"top",arrow:!0,children:a.jsxs(Ue,{className:`token-usage-display ${r}`,size:4,align:"center",style:{lineHeight:1},children:[a.jsx(bg,{type:"line",percent:Math.min(i,100),size:{height:n==="small"?6:8,width:80},strokeColor:d(),showInfo:!1,style:{margin:0,lineHeight:1}}),a.jsxs("span",{style:{fontSize:n==="small"?11:12,color:u==="error"?"var(--lotus-chart-danger)":u==="warning"?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",whiteSpace:"nowrap",fontWeight:600},children:[l(i),"%"]})]})})},qu="chat_scroll_anchors_v1",Av="chat_scroll_anchor_v2:";function Iv(e){if(!e||typeof e!="object")return!1;const t=e;return t.v===1&&typeof t.anchorId=="string"&&typeof t.offsetPx=="number"&&typeof t.ts=="number"}function VR(){try{const e=localStorage.getItem(qu);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object")return{};const n={};for(const[r,s]of Object.entries(t))Iv(s)&&(n[r]=s);return n}catch{return{}}}function GR(e){const t=VR(),n=t[e];if(!n)return null;Hn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),delete t[e];const s=Object.keys(t).length;try{s===0?localStorage.removeItem(qu):localStorage.setItem(qu,JSON.stringify(t))}catch{}return n}async function JR(e){if(typeof window>"u")return null;try{const n=await Hn.getInstance().loadScrollAnchor(e);if(n)return n}catch{}try{const t=localStorage.getItem(`${Av}${e}`);if(t){const n=JSON.parse(t);if(Iv(n))return Hn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),n}}catch{}return GR(e)}async function QR(e,t){if(!(typeof window>"u")){try{await Hn.getInstance().saveScrollAnchor(e,t)}catch(n){console.warn("[ScrollAnchor] IndexedDB save failed:",n)}try{localStorage.setItem(`${Av}${e}`,JSON.stringify(t))}catch{}}}const Uc=1,ZR=3,eA=2e3;function tA(e,t){const n=Math.max(0,e.scrollHeight-e.clientHeight);return Math.min(Math.max(0,t),n)}function nA(e){const{scrollEl:t,getAnchorElement:n,offsetPx:r,isCancelled:s}=e;return new Promise(o=>{const i=performance.now();let l=0,u=-1,d=Number.NaN;const h=()=>{if(s()){o();return}const m=n();if(!m){requestAnimationFrame(h);return}const b=t.getBoundingClientRect(),w=m.getBoundingClientRect().top-b.top,S=tA(t,t.scrollTop+(w-r));if(Math.abs(t.scrollTop-S)>Uc)t.scrollTop=S,l=0;else{const P=Number.isFinite(d)?Math.abs(S-d)<=Uc:!1,T=Math.abs(t.scrollTop-u)<=Uc;l=P&&T?l+1:0}d=S,u=t.scrollTop;const k=performance.now()-i>eA;if(l>=ZR||k){o();return}requestAnimationFrame(h)};requestAnimationFrame(h)})}const rA=300,sA=.5;function oA(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:"message"in e&&e.message?e.message.id:null}function Ov(e){if("type"in e&&(e.type==="tool_session"||e.type==="compression_divider"))return e.createdAt;if("message"in e&&e.message)return e.message.createdAt}function Wp(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function iA(e,t){const n=Wp(e.createdAt);if(n!=null){let r=null,s=Number.POSITIVE_INFINITY;for(let o=0;o<t.length;o++){const i=Wp(Ov(t[o]));if(i==null)continue;const l=Math.abs(i-n);l<s&&(s=l,r=o)}if(r!=null)return r}if(typeof e.indexHint=="number"){const r=Math.max(0,Math.min(t.length-1,e.indexHint));return Number.isFinite(r)?r:null}return null}function Gd(e){return Array.from(e.querySelectorAll("[data-chat-entry-id]"))}function aA(e,t){const n=Gd(e);for(const r of n)if(r.dataset.chatEntryId===t)return r;return null}function lA(e,t){const n=Gd(e);if(n.length===0)return null;const r=Math.max(0,Math.min(n.length-1,t));return n[r]??null}function cA(e){const t=Gd(e);if(t.length===0)return null;const n=e.getBoundingClientRect().top;for(const r of t)if(r.getBoundingClientRect().bottom>n)return r;return t[t.length-1]??null}function uA(e){const{currentSessionId:t,messagesListRef:n,renderableMessages:r}=e,s=y.useRef(new Set),o=y.useRef(!1),i=y.useRef(0),l=y.useRef(null),u=y.useRef(null),d=y.useRef(!1);y.useEffect(()=>{const w=n.current;if(!w)return;const S=()=>{d.current=!0};return w.addEventListener("wheel",S,{passive:!0}),w.addEventListener("touchmove",S,{passive:!0}),w.addEventListener("pointerdown",S),()=>{w.removeEventListener("wheel",S),w.removeEventListener("touchmove",S),w.removeEventListener("pointerdown",S)}},[n]);const h=y.useMemo(()=>{const w=new Map;for(let S=0;S<r.length;S++){const k=oA(r[S]);k&&w.set(k,S)}return w},[r]),m=y.useCallback(()=>{const w=n.current;if(!w||r.length===0)return null;const S=cA(w);if(!S)return null;const k=S.dataset.chatEntryId;if(!k)return null;const P=w.getBoundingClientRect(),T=S.getBoundingClientRect(),j=h.get(k),C=typeof j=="number"?r[j]:void 0;return{v:1,anchorId:k,offsetPx:T.top-P.top,ts:Date.now(),indexHint:j,createdAt:C?Ov(C):void 0}},[h,n,r]),b=y.useCallback(async w=>{if(o.current)return;const S=m();if(!S)return;const k=u.current;k&&k.anchorId===S.anchorId&&Math.abs(k.offsetPx-S.offsetPx)<=sA||(await QR(w,S),u.current=S)},[m]),v=y.useCallback(w=>{if(!t||o.current)return;l.current&&clearTimeout(l.current);const S=t;l.current=setTimeout(()=>{b(S).catch(()=>{})},rA)},[t,b]);return y.useEffect(()=>{const w=t;return()=>{w&&(l.current&&(clearTimeout(l.current),l.current=null),b(w).catch(()=>{}))}},[t,b]),y.useLayoutEffect(()=>{if(!t)return;const w=n.current;if(!w||r.length===0||s.current.has(t))return;let S=!1;return JR(t).then(k=>{if(S||!k){S||s.current.add(t);return}const P=h.get(k.anchorId),T=typeof P=="number"?P:iA(k,r);if(T==null){s.current.add(t);return}l.current&&(clearTimeout(l.current),l.current=null);const j=++i.current;o.current=!0,d.current=!1,w.style.overflowAnchor="none";const C=()=>i.current!==j||d.current;nA({scrollEl:w,getAnchorElement:()=>aA(w,k.anchorId)??lA(w,T),offsetPx:k.offsetPx,isCancelled:C}).finally(()=>{i.current===j&&(o.current=!1,s.current.add(t),w.style.overflowAnchor="",b(t).catch(()=>{}))})}),()=>{S=!0}},[t,h,r,r.length,n,b]),{handleScroll:v}}const Up=2,qp=6,qc=150,dA="streaming-",fA="streaming-reasoning-",hA="streaming-status-",pA=e=>e.startsWith(dA)&&!e.startsWith(fA)&&!e.startsWith(hA),mA=({currentSessionId:e,isThinking:t,messagesListRef:n,bottomAnchorRef:r,renderableMessages:s})=>{const[o,i]=y.useState(!1),[l,u]=y.useState(!1),[d,h]=y.useState(!1),[m,b]=y.useState(0),v=y.useRef(!1),w=y.useRef(!1),S=y.useRef(!0),k=y.useRef(s.length),P=y.useRef(new Set),T=y.useRef(0),{handleScroll:j}=uA({currentSessionId:e,messagesListRef:n,renderableMessages:s}),C=y.useCallback(()=>{P.current.clear(),h(!1),b(0)},[]),E=y.useCallback(I=>{if(I<=0)return 0;const Q=P.current;if(Q.size===0)return I;let G=I;for(const Z of Array.from(Q)){if(G<=0)break;Q.delete(Z),G-=1}return G},[]),A=y.useCallback(()=>{const I=n.current;if(!I||s.length===0)return i(!1),u(!1),C(),null;const Q=Math.max(0,I.scrollHeight-I.scrollTop-I.clientHeight),G=Q<=qc,Z=I.scrollTop<=qc;return i(!G),u(!Z&&s.length>3),G&&(w.current=!0,C()),{atBottom:G,distanceFromBottom:Q}},[C,n,s.length]),O=y.useCallback(I=>{const Q=A();Q&&(Q.distanceFromBottom>qc?(v.current=!0,w.current=!1):Q.atBottom&&(v.current=!1,w.current=!0,C()),j(I))},[C,A,j]),D=y.useCallback(I=>{cancelAnimationFrame(T.current);const Q=n.current,G=r.current;if(!Q||!G||s.length===0)return;const Z=(I==null?void 0:I.behavior)??"smooth";let pe=0,$=Number.NaN;const oe=()=>{T.current=0,v.current=!1,w.current=!0,C(),A()},me=()=>{const ne=n.current,he=r.current;if(!ne||!he)return;const fe=Math.max(0,ne.scrollHeight-ne.scrollTop-ne.clientHeight),ue=he.getBoundingClientRect(),de=ne.getBoundingClientRect(),Ce=ue.top-de.top,ze=!Number.isFinite($)||Math.abs(Ce-$)>.5,Le=fe>Up||ze||pe===0;if(Le&&he.scrollIntoView({block:"end",behavior:pe===0?Z:"auto"}),$=Ce,pe+=1,pe<qp&&Le){T.current=requestAnimationFrame(me);return}oe()};T.current=requestAnimationFrame(me)},[r,C,n,A,s.length]),F=y.useCallback(()=>{if(!n.current)return;let Q=0;const G=()=>{A()},Z=()=>{const pe=n.current;if(!pe)return;const $=pe.scrollTop>Up||Q===0;if($&&pe.scrollTo({top:0,behavior:"auto"}),Q+=1,Q<qp&&$){requestAnimationFrame(Z);return}G()};requestAnimationFrame(Z)},[n,A]),N=y.useCallback(()=>{v.current=!1,w.current=!0,C()},[C]);y.useEffect(()=>{const I=Q=>{var fe,ue;const Z=(fe=Q.detail)==null?void 0:fe.messageId;if(!Z){console.error("No messageId provided for navigation");return}const pe=s.findIndex(de=>"message"in de&&de.message?de.message.id===Z:"id"in de?de.id===Z:!1);if(pe===-1){console.warn("Message not found for navigation:",Z);return}const $=s[pe],oe=$&&"message"in $?$.message.id:$&&"id"in $?$.id:Z,me=document.getElementById(`message-${oe}`),ne=Array.from(((ue=n.current)==null?void 0:ue.querySelectorAll("[data-chat-entry-id]"))||[]),he=me||ne.find(de=>de.dataset.chatEntryId===oe);if(!he){console.warn("Message element not found for navigation:",Z);return}he.scrollIntoView({behavior:"smooth",block:"center"}),he.classList.add("highlight-message"),setTimeout(()=>{he.classList.remove("highlight-message")},2e3)};return window.addEventListener("navigate-to-message",I),()=>{window.removeEventListener("navigate-to-message",I)}},[n,s]);const q=y.useRef(t);return y.useEffect(()=>{!q.current&&t&&(N(),D()),q.current=t},[t,N,D]),y.useEffect(()=>Et.subscribe(I=>{var Q;if(I.sessionId===e){if(v.current){(((Q=I.content)==null?void 0:Q.trim())??"")&&pA(I.messageId)&&(P.current.has(I.messageId)||(P.current.add(I.messageId),b(Z=>Z+1)),h(!0)),A();return}if(!I.content){A();return}D()}}),[e,A,D]),y.useEffect(()=>{const I=s.length,Q=k.current,G=I>Q;if(I===0){C(),A(),k.current=I;return}if(S.current){A(),S.current=!1,k.current=I;return}if(G&&v.current){const Z=E(I-Q);h(!0),Z>0&&b(pe=>pe+Z)}!v.current&&G?D():A(),k.current=I},[C,E,A,s.length,D]),y.useEffect(()=>{const I=n.current;if(!I||typeof ResizeObserver>"u")return;let Q=0,G=!1;const Z=()=>{cancelAnimationFrame(Q);const me=w.current;Q=requestAnimationFrame(()=>{if(G&&me&&!v.current){D({behavior:"auto"});return}A()})},pe=new ResizeObserver(()=>{G=!0,Z()});pe.observe(I);const $=I.firstElementChild;$ instanceof HTMLElement&&pe.observe($);const oe=r.current;return oe instanceof HTMLElement&&pe.observe(oe),Z(),()=>{cancelAnimationFrame(Q),pe.disconnect()}},[r,e,n,A,s.length,D]),y.useEffect(()=>{if(!n.current||s.length===0){A();return}A();let Q=0;const G=requestAnimationFrame(()=>{A(),Q=requestAnimationFrame(()=>{A()})});return()=>{cancelAnimationFrame(G),cancelAnimationFrame(Q)}},[n,s.length,e,A]),y.useEffect(()=>{S.current=!0,v.current=!1,w.current=!1,k.current=0,C()},[C,e]),{handleMessagesScroll:O,hasUnreadActivity:d,resetUserScroll:N,scrollToBottom:D,scrollToTop:F,showScrollToBottom:o,showScrollToTop:l,unreadCount:m}};function gA(e){return"type"in e&&e.type==="tool_session"}function yA(e){return"type"in e&&e.type==="compression_divider"}const Hp=e=>{const t=Date.parse(e||"");return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER},bA=e=>"type"in e?e.createdAt:e.message.createdAt,vA=e=>!("type"in e)&&e.message.role==="system";function SA(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_call"}function xA(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_result"}const Yp=e=>(e??"").trim().toLowerCase()==="conclusion",wA=e=>{const t=(e??"").trim().toLowerCase();return t==="conclusion_with_options"||t==="exitplanmode"||t==="request_permissions"},_A=e=>{var t,n,r;return((n=(t=e.call.toolCalls)==null?void 0:t[0])==null?void 0:n.toolCallId)||((r=e.result)==null?void 0:r.toolCallId)||"tool-call-missing"},kA=(e,t)=>{var n;return e.call.id||e.callMessageId||e.resultMessageId||((n=e.result)==null?void 0:n.id)||`tool-message-missing-${t}`},CA=(e,t)=>`tool-session-${kA(e,t)}:${_A(e)}`;function TA(e){const t=[],n=new Map,r=new Set,s=(i,l)=>{const u=n.get(i)||[];u.push(l),n.set(i,u)},o=i=>{const l=n.get(i);if(!l||l.length===0)return;let u;for(;l.length>0&&!u;){const d=l.shift();d&&!d.result&&(u=d)}return l.length===0?n.delete(i):n.set(i,l),u};for(const i of e){if(SA(i)){const l=i.toolCalls||[];if(l.length===0){t.push(i);continue}l.forEach((u,d)=>{const h=u.toolCallId||`${i.id}-${d}`;if(Yp(u.toolName)){r.add(h);return}if(wA(u.toolName)){r.add(h);const w={...i,id:`${i.id}:tool-call:${d}:${h}`,toolCalls:[{...u,toolCallId:h}]};t.push(w);return}const b={call:{...i,id:`${i.id}:tool-call:${d}:${h}`,toolCalls:[{...u,toolCallId:h}]},callMessageId:i.id};s(h,b);const v=t[t.length-1];Array.isArray(v)?v.push(b):t.push([b])});continue}if(xA(i)){const l=i.toolCallId;if(l&&r.has(l)){r.delete(l),t.push(i);continue}if(Yp(i.toolName)){t.push(i);continue}const u=l?o(l):void 0;if(u)u.result=i,u.resultMessageId=i.id;else{const d=l||`orphan-tool-call:${i.id}`,m={call:{role:"assistant",type:"tool_call",id:`synthetic-tool-call:${i.id}`,createdAt:i.createdAt,toolCalls:[{toolCallId:d,toolName:(i.toolName||"").trim()||"tool",parameters:{},streamingOutput:""}],isCompressed:i.isCompressed,compressedEventId:i.compressedEventId},result:i,resultMessageId:i.id},b=t[t.length-1];Array.isArray(b)?b.push(m):t.push([m])}continue}t.push(i)}return t}const PA=(e,t)=>{var l;const{t:n}=Ge(),r=y.useMemo(()=>{var d;const u=t.find(h=>h.role==="system");return u||((d=e==null?void 0:e.config)!=null&&d.baseSystemPrompt?{id:`system-prompt-${e.id}`,role:"system",content:e.config.baseSystemPrompt,createdAt:new Date(e.createdAt).toISOString()}:null)},[e,t]),s=y.useCallback(u=>!1,[]),o=y.useCallback(u=>{if(yA(u))return{type:"compression_divider",id:u.id,createdAt:u.createdAt,label:u.label};if(gA(u))return{type:"tool_session",id:u.id,sessionId:u.sessionId,tools:u.tools,createdAt:u.createdAt};const d=u.message.role==="user"?"flex-end":"flex-start";let h=u.messageType;if(!h&&u.message.role==="assistant"&&"type"in u.message){const m="type"in u.message?u.message.type:void 0;(m==="text"||m==="plan"||m==="question"||m==="tool_call"||m==="tool_result")&&(h=m)}return{type:"message",message:u.message,align:d,messageType:h}},[]),i=y.useMemo(()=>{var S;const u=t.filter(k=>{const P=k.role;return!(P!=="user"&&P!=="assistant"&&P!=="system"&&P!=="tool"||s(k))}),d=TA(u),h=[];d.forEach((k,P)=>{var C,E;if(Array.isArray(k)){const A=k[0];h.push({type:"tool_session",id:A?CA(A,P):`tool-session-unknown-${P}`,sessionId:(e==null?void 0:e.id)||"default",tools:k,createdAt:((C=A==null?void 0:A.call)==null?void 0:C.createdAt)||((E=A==null?void 0:A.result)==null?void 0:E.createdAt)||new Date().toISOString()});return}const T=k;let j;if(T.role==="assistant"&&"type"in T){const A="type"in T?T.type:void 0;(A==="text"||A==="plan"||A==="question"||A==="tool_call"||A==="tool_result")&&(j=A)}h.push({message:T,messageType:j})}),!u.some(k=>k.role==="system")&&r&&h.unshift({message:r});const b=((S=e==null?void 0:e.config)==null?void 0:S.compressionEvents)||[],v=h.findIndex(k=>!vA(k)),w=v===-1?h.length:v;for(const k of b){const P={type:"compression_divider",id:`compression-divider-${k.id}`,createdAt:k.createdAt,label:n("chat.compression.timelineDetail",{count:k.messagesCompressed,defaultValue:"{{count}} messages archived"})},T=Hp(k.createdAt),j=h.findIndex((C,E)=>E>=w&&Hp(bA(C))>T);j===-1?h.push(P):h.splice(j,0,P)}return h},[(l=e==null?void 0:e.config)==null?void 0:l.compressionEvents,e==null?void 0:e.id,t,s,r,n]);return{systemPromptMessage:r,renderableMessages:i,convertRenderableEntry:o}},{Text:MA}=ft,EA=({visible:e,selectionMode:t,selectedCount:n,totalCount:r,paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:l,maxWidth:u,onToggleSelectionMode:d,onSelectAll:h,onClear:m,onExportMarkdown:b,onExportPdf:v,t:w})=>e?a.jsx("div",{style:{paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:l,maxWidth:u,margin:"0 auto",width:"100%"},children:t?a.jsxs(Me,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[a.jsx(MA,{type:"secondary",children:w("chat.selectionToolbar.selectedCount",{selected:n,total:r})}),a.jsxs(Ue,{size:8,wrap:!0,children:[a.jsx(je,{size:"small",onClick:h,children:w("chat.selectionToolbar.selectAll")}),a.jsx(je,{size:"small",onClick:m,children:w("chat.selectionToolbar.clear")}),a.jsx(je,{size:"small",icon:a.jsx(Vs,{}),onClick:b,disabled:n===0,children:w("chat.selectionToolbar.exportMarkdown")}),a.jsx(je,{size:"small",type:"primary",icon:a.jsx(Vs,{}),onClick:v,disabled:n===0,children:w("chat.selectionToolbar.exportPdf")}),a.jsx(je,{size:"small",icon:a.jsx(Ss,{}),onClick:d,children:w("chat.selectionToolbar.done")})]})]}):a.jsx(Me,{justify:"flex-end",children:a.jsx(xn,{title:w("chat.selectionToolbar.selectMessages"),children:a.jsx(je,{"aria-label":w("chat.selectionToolbar.selectMessages"),icon:a.jsx(xg,{}),size:"small",onClick:d})})})}):null,jA=({visible:e,showScrollToTop:t,showScrollToBottom:n,hasUnreadActivity:r,unreadCount:s,onScrollToTop:o,onScrollToBottom:i,onResetUserScroll:l,t:u})=>!e||!t&&!n?null:a.jsx("div",{className:"chat-scroll-capsule-wrapper","data-testid":"chat-scroll-capsule-wrapper",children:a.jsxs("div",{className:"chat-scroll-capsule","data-testid":"chat-scroll-capsule",children:[t?a.jsx(je,{"data-testid":"chat-scroll-top-button",className:"chat-scroll-capsule__button",type:"text",icon:a.jsx("span",{"aria-hidden":"true",children:"↑"}),size:"small",onClick:o,children:u("chat.scroll.jumpToTop",{defaultValue:"Jump to top"})}):null,n?a.jsxs("span",{style:{display:"inline-flex"},children:[a.jsx("span",{style:{display:"inline-flex"},children:a.jsx(je,{"data-testid":"chat-scroll-bottom-button",className:`chat-scroll-capsule__button ${r?"chat-scroll-capsule__button--active":""}`,type:r?"primary":"text",icon:a.jsx("span",{"aria-hidden":"true",children:"↓"}),size:"small",onClick:()=>{l(),i()},children:r?u("chat.scroll.newMessagesWithCount",{count:s,defaultValue:s>0?"{{count}} new messages":"New messages"}):u("chat.scroll.backToLatest",{defaultValue:"Back to latest"})})}),r&&s>0?a.jsx("span",{className:"chat-scroll-capsule__count","data-testid":"chat-scroll-unread-count",children:s}):null]}):null]})}),RA=ht.lazy(()=>Jt(()=>import("./index-CJsySE-8.js"),__vite__mapDeps([16,1,2,3,4,5,6,17]),import.meta.url).then(e=>({default:e.ContextBar}))),AA=({sessionId:e,auxReady:t,maxWidth:n,paddingLeft:r,paddingRight:s,workspaceState:o,inspectorEligible:i,planMode:l,onRequestOpenInspector:u,t:d})=>{const{token:h}=ut.useToken();if(!e)return null;const m=l?a.jsx(xn,{title:d("chat.planMode.tooltip",{status:l.status,mode:l.pre_permission_mode,defaultValue:"Plan mode active · phase: {{status}} · previous mode: {{mode}}"}),children:a.jsx(Je,{color:"purple",icon:a.jsx(ug,{}),style:{marginInlineEnd:0},children:d("chat.planMode.active",{defaultValue:"Plan mode"})})}):null,b=i&&o.inspectorTogglePlacement==="meta_strip"&&!!u,v=!!(m||o.isMultiPane||b);return a.jsxs(a.Fragment,{children:[t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx(RA,{sessionId:e})}):null,v?a.jsx("div",{"data-conversation-meta-strip":!0,"data-inspector-toggle-placement":o.inspectorTogglePlacement,style:{paddingTop:h.paddingXS,paddingRight:s,paddingBottom:0,paddingLeft:r,maxWidth:n,margin:"0 auto",width:"100%"},children:a.jsxs(Me,{align:"center",justify:"space-between",gap:h.marginXS,wrap:!0,children:[a.jsxs(Me,{align:"center",gap:h.marginXS,wrap:!0,children:[m,o.isMultiPane?a.jsx(Je,{color:"blue",style:{marginInlineEnd:0},children:d("chat.workspace.multiPane",{count:o.leafCount,defaultValue:"{{count}} panes"})}):null]}),b&&u?a.jsx(je,{size:"small",icon:a.jsx(ad,{}),onClick:u,"aria-label":d("chat.workspace.toggleInspector",{defaultValue:"Open inspector"}),children:o.inspectorMode==="drawer"?d("chat.workspace.openInspector",{defaultValue:"Inspector"}):d("chat.workspace.toggleInspector",{defaultValue:"Inspector"})}):null]})}):null]})},Jd=({isEmbedded:e,leafCount:t,isMobileViewport:n})=>{const r=Number.isFinite(t)&&t>0?Math.floor(t):1,s=r>1;return{isEmbedded:e,leafCount:r,isMultiPane:s,isMobileViewport:n,inspectorMode:n||s?"drawer":"rail",inspectorTogglePlacement:s&&!n?"pane_header":"meta_strip"}},IA=ht.lazy(()=>Jt(()=>import("./index-CSZOcCBg.js"),__vite__mapDeps([18,1,2,3,4,5,6,19]),import.meta.url).then(e=>({default:e.QuestionDialog}))),{useToken:OA}=ut,{useBreakpoint:$A}=Pl,LA=e=>{const{t}=xt;return e.role==="user"?t("chat.view.roleUser"):e.role==="assistant"?t("chat.view.roleAssistant"):e.role==="system"?t("chat.view.roleSystem"):t("chat.view.roleDefault")},$v=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},FA=e=>e.map(({message:t,text:n},r)=>{const s=LA(t),o=$v(t.createdAt);return[`## ${r+1}. ${s} · ${o}`,"",n].join(`
|
|
218
218
|
`)}).join(`
|
|
219
219
|
|
|
220
220
|
---
|
|
221
221
|
|
|
222
|
-
`),Xp=({sessionId:e,embedded:t=!1,paneCount:n=1,auxReady:r=!1,sessionDiffSummary:s=null,workspaceState:o,inspectorEligible:i=!1,onRequestOpenInspector:l})=>{var kt,Ct,Tt,Ke,Nt;const u=n,{message:f}=Fn.useApp(),{t:h}=Ge(),m=ae(Se=>e??Se.currentSessionId),b=ae(_s(m)),v=ae(Se=>Se.deleteMessage),w=ae(Se=>Se.loadChatHistory),S=ae(Se=>m?Se.tokenUsages[m]??null:null),k=ae(Se=>m?Se.truncationOccurred[m]??!1:!1),P=ae(Se=>m?Se.segmentsRemoved[m]??0:0),T=y.useMemo(()=>(b==null?void 0:b.messages)||[],[b]),M=ae(Ki(m));y.useEffect(()=>{if(!m)return;const Se=ae.getState().chats.find(De=>De.id===m);Se&&Array.isArray(Se.messages)&&Se.messages.length>0||w(m)},[m,w]);const C=(b==null?void 0:b.messageCount)??0,j=((kt=b==null?void 0:b.messages)==null?void 0:kt.length)??0;y.useEffect(()=>{if(!m)return;C-j>0&&w(m,{mode:"monotonic"})},[m,C,j,w]);const A=M,O=y.useCallback(Se=>{if(Se.success)return null;switch(Se.reason){case"session_not_found":case"message_not_found":case"backend_not_found":return h("chat.messageActions.deleteNotFound");case"session_running":return h("chat.messageActions.deleteConflict");default:return Se.errorMessage||h("chat.messageActions.deleteFailed")}},[h]),F=y.useCallback(async(Se,De)=>{if(!m){const Ot={success:!1,sessionId:"",messageId:Se,reason:"session_not_found"};return(De==null?void 0:De.notify)!==!1&&f.error(O(Ot)),Ot}const Ve=await v(m,Se);return!Ve.success&&(De==null?void 0:De.notify)!==!1&&f.error(O(Ve)),Ve},[m,v,f,O]),D=y.useCallback(async Se=>{const De=Array.from(new Set(Se.map(Zt=>Zt.trim()).filter(Boolean)));if(De.length===0)return;const Ot=(await Promise.all(De.map(Zt=>F(Zt,{notify:!1})))).filter(Zt=>!Zt.success);if(Ot.length!==0){if(Ot.length===1){f.error(O(Ot[0]));return}f.error(h("chat.messageActions.deleteBatchFailed",{failed:Ot.length,total:De.length}))}},[F,f,O,h]),N=y.useRef(null),q=y.useRef(null),{token:I}=jA(),Q=RA(),G=Ml(),[Z,pe]=y.useState(null),[$,oe]=y.useState(!1),[me,ne]=y.useState(new Set),fe=gt(Se=>Se.sidebar.collapsed),he=r,ue=s,de=()=>t||Q.xs||Q.sm?"100%":Q.md?"90%":Q.lg?"85%":"1024px",Ce=()=>{let Se;return t?Se=I.paddingSM:Q.xs?Se=I.paddingXS:Q.sm?Se=I.paddingSM:Se=I.padding,!t&&fe&&!G?Se+18:Se},ze=y.useMemo(()=>o||Jd({isEmbedded:t,leafCount:u,isMobileViewport:G}),[t,G,u,o]);y.useEffect(()=>{pe(null),oe(!1),ne(new Set)},[m]);const{systemPromptMessage:Le,renderableMessages:lt,convertRenderableEntry:L}=_A(b,T),le=T.length>0,Ae=!!(Z!=null&&Z.content),Oe=!!Le,He=!!m&&(le||Ae),dt=0,pt=y.useMemo(()=>{if(!(Z!=null&&Z.content))return lt;const Se={message:{id:Z.id,role:"user",content:Z.content,createdAt:Z.createdAt},messageType:"text"};return[...lt,Se]},[lt,Z]),$t=y.useMemo(()=>{const Se=[];for(const De of pt){if(!("message"in De))continue;const Ve=Zy(De.message).trim();Ve&&Se.push({id:De.message.id,message:De.message,text:Ve})}return Se},[pt]),Qt=y.useMemo(()=>new Set($t.map(Se=>Se.id)),[$t]);y.useEffect(()=>{ne(Se=>{let De=!1;const Ve=new Set;for(const Ot of Se)Qt.has(Ot)?Ve.add(Ot):De=!0;return De?Ve:Se})},[Qt]);const rn=y.useMemo(()=>$t.filter(Se=>me.has(Se.id)),[$t,me]),_n=$t.length>0,At=y.useCallback(Se=>{ne(De=>{const Ve=new Set(De);return Ve.has(Se)?Ve.delete(Se):Ve.add(Se),Ve})},[]),Xt=y.useCallback(()=>{if(!_n){f.warning(h("chat.view.noExportableMessages"));return}oe(!0)},[f,_n,h]),Kt=y.useCallback(()=>{oe(!1),ne(new Set)},[]),gn=y.useCallback(()=>{if($){Kt();return}Xt()},[Xt,Kt,$]),On=y.useCallback(()=>{ne(new Set($t.map(Se=>Se.id)))},[$t]),En=y.useCallback(()=>{ne(new Set)},[]),It=y.useCallback(async Se=>{var Ot;if(!m){f.warning(h("chat.view.noActiveChat"));return}if(rn.length===0){f.warning(h("chat.view.selectAtLeastOneMessage"));return}const De=IA(rn),Ve=await eb.exportMessageText({format:Se,content:De,sessionId:m,filenamePrefix:`chat-messages-${rn.length}`});if(Ve.success){f.success(h("chat.view.exportSaved",{filename:Ve.filename}));return}(Ot=Ve.error)!=null&&Ot.toLowerCase().includes("cancel")||f.error(Ve.error||h("chat.view.exportFailed"))},[f,m,rn,h]);y.useEffect(()=>{if(typeof window>"u")return;const Se=De=>{var Zt;const Ot=((Zt=De.detail)==null?void 0:Zt.sessionId)??null;!m||Ot!==m||gn()};return window.addEventListener(bu,Se),()=>{window.removeEventListener(bu,Se)}},[m,gn]);const _t=(Ct=b==null?void 0:b.config)==null?void 0:Ct.tokenUsage,bt=S||_t||null,ye=(Tt=b==null?void 0:b.config)==null?void 0:Tt.truncationOccurred,We=k||ye||!1,Te=(Ke=b==null?void 0:b.config)==null?void 0:Ke.segmentsRemoved,qe=P||Te||0,Lt=y.useMemo(()=>{var De;const Se=(De=b==null?void 0:b.config)==null?void 0:De.compressionEvents;return!Se||Se.length===0?null:Se.reduce((Ve,Ot)=>{const Zt=Date.parse(Ve.createdAt),Qn=Date.parse(Ot.createdAt);return Number.isFinite(Zt)?Number.isFinite(Qn)&&Qn>Zt?Ot:Ve:Ot})},[(Nt=b==null?void 0:b.config)==null?void 0:Nt.compressionEvents]),$n=I.marginMD,{handleMessagesScroll:Vt,hasUnreadActivity:$e,resetUserScroll:fn,scrollToBottom:B,scrollToTop:ie,showScrollToBottom:H,showScrollToTop:_e,unreadCount:Ie}=dA({currentSessionId:m,isThinking:A,messagesListRef:N,bottomAnchorRef:q,renderableMessages:pt}),Fe=!!He&&_n&&(!t||$),et=Lt?a.jsx(xn,{title:h("chat.compression.tooltip",{count:Lt.messagesCompressed,time:Ov(Lt.createdAt),defaultValue:"Latest compression at {{time}}: {{count}} messages archived"}),children:a.jsx(Je,{color:"gold",icon:a.jsx(Sg,{}),style:{marginInlineEnd:0,whiteSpace:"nowrap"},children:h("chat.compression.archivedShort",{count:Lt.messagesCompressed,defaultValue:"{{count}} archived"})})}):null,Xe=bt&&bt.budgetLimit>0?a.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:I.marginXS},children:[a.jsx(qR,{usage:bt,showDetails:!0,size:"small"}),We&&a.jsxs("span",{style:{fontSize:11,color:I.colorTextSecondary,whiteSpace:"nowrap"},children:["(",qe," truncated)"]}),et]}):et?a.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:I.marginXS},children:et}):null;return a.jsx(zs,{role:"region","aria-label":h("chat.view.chatRegion","Chat conversation"),style:{flex:1,minHeight:0,height:"100%",background:I.colorBgContainer,position:"relative",overflow:"hidden"},children:a.jsxs(Ee,{vertical:!0,style:{flex:1,minHeight:0,height:"100%"},children:[a.jsx(EA,{sessionId:m,auxReady:he,maxWidth:de(),paddingLeft:Ce(),paddingRight:Ce(),workspaceState:ze,inspectorEligible:i,planMode:(b==null?void 0:b.planMode)??null,onRequestOpenInspector:l,t:h}),a.jsx(CA,{visible:Fe,selectionMode:$,selectedCount:rn.length,totalCount:$t.length,paddingTop:I.paddingXS,paddingRight:Ce()+dt,paddingBottom:0,paddingLeft:Ce(),maxWidth:de(),onToggleSelectionMode:gn,onSelectAll:On,onClear:En,onExportMarkdown:()=>{It("markdown")},onExportPdf:()=>{It("pdf")},t:h}),a.jsx(WR,{currentChat:b,currentSessionId:m,convertRenderableEntry:L,handleDeleteMessage:F,handleDeleteToolMessages:D,handleMessagesScroll:Vt,hasSystemPrompt:Oe,messagesListRef:N,bottomAnchorRef:q,renderableMessages:pt,rowGap:$n,showMessagesView:!!He,screens:Q,workflowDraftId:Z==null?void 0:Z.id,isThinking:A,padding:Ce(),selectionMode:$,selectedMessageIds:me,selectableMessageIds:Qt,onToggleMessageSelection:At}),a.jsxs("div",{className:"chat-bottom-stack","data-testid":"chat-bottom-stack",children:[a.jsx(TA,{visible:He,showScrollToTop:_e,showScrollToBottom:H,hasUnreadActivity:$e,unreadCount:Ie,onScrollToTop:ie,onScrollToBottom:B,onResetUserScroll:fn,t:h}),m&&he&&a.jsx("div",{style:{paddingTop:I.paddingXS,paddingRight:Ce(),paddingBottom:0,paddingLeft:Ce(),maxWidth:de(),margin:"0 auto",width:"100%"},children:a.jsx(ht.Suspense,{fallback:null,children:a.jsx(MA,{sessionId:m},m)})}),a.jsx(VC,{sessionId:m,isCenteredLayout:!He,maxWidth:He?de():"100%",onWorkflowDraftChange:pe,showMessagesView:!!He,sessionDiffSummary:ue,contextUsageIndicator:Xe,showSessionDiffCard:!1})]})]})})},qu="lotus_experience_mode_v1",$I=new Set(["skills","hooks","masking","env-vars","metrics","sessions","config"]);function Kp(){try{const e=localStorage.getItem(qu);if(e==="simple"||e==="advanced")return e}catch{}return"advanced"}const $v=qr(e=>({mode:Kp(),isAdvanced:Kp()==="advanced",setMode:t=>{try{localStorage.setItem(qu,t)}catch{}e({mode:t,isAdvanced:t==="advanced"})},toggleMode:()=>e(t=>{const n=t.mode==="simple"?"advanced":"simple";try{localStorage.setItem(qu,n)}catch{}return{mode:n,isAdvanced:n==="advanced"}})})),OA=ht.lazy(()=>Jt(()=>import("./index-Y7yrhp6h.js"),__vite__mapDeps([20,1,2,3,21,4,5,6,22]),import.meta.url).then(e=>({default:e.SessionSummaryCard}))),$A=ht.lazy(()=>Jt(()=>import("./index-C1smAwgR.js"),__vite__mapDeps([23,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.TodoList}))),LA=ht.lazy(()=>Jt(()=>import("./SubAgentsPanel-B1pN_aEg.js"),__vite__mapDeps([24,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.SubAgentsPanel}))),{Title:FA,Text:Lv}=ft,DA=({sessionId:e,auxReady:t,showMessagesView:n,shouldShowTaskPanel:r,hasSubAgents:s,sessionDiffSummary:o})=>{const{token:i}=ut.useToken(),l=$v(f=>f.isAdvanced),u=y.useMemo(()=>[{key:"overview",title:"Overview",showTitle:!1,visible:l&&n,node:t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx(OA,{sessionId:e,compact:!0})}):null},{key:"tasks",title:"Tasks",showTitle:!1,visible:r,node:t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx($A,{sessionId:e,initialCollapsed:!1,compact:!0})}):null},{key:"agents",title:"Sub-agents",showTitle:!1,visible:s,node:t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx(LA,{parentSessionId:e,compact:!0})}):null},{key:"diffs",title:"Diffs",showTitle:!1,visible:!!o,node:a.jsx(Sy,{sessionDiffSummary:o,sessionId:e,compact:!0})}].filter(f=>f.visible),[t,s,l,o,e,r,n]);return u.length===0?a.jsx(Ee,{vertical:!0,align:"center",justify:"center",style:{minHeight:180,color:i.colorTextSecondary,padding:i.paddingLG,textAlign:"center"},children:a.jsx(Lv,{type:"secondary",children:"No session details available yet."})}):a.jsx(Ee,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:u.map((f,h)=>a.jsx("section",{style:{width:"100%",minWidth:0,paddingTop:h===0?0:6,borderTop:h===0?"none":`1px solid ${i.colorBorderSecondary}`},children:f.showTitle?a.jsxs(Ee,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[a.jsx(FA,{level:5,style:{margin:0,fontSize:i.fontSizeLG},children:f.title}),f.node]}):f.node},f.key))})},Vp=({sessionId:e,auxReady:t,mode:n,open:r,onOpenChange:s,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:l,sessionDiffSummary:u})=>{const{token:f}=ut.useToken(),h=gt(w=>w.inspector.widthPx),m=gt(w=>w.inspector.minWidthPx),b=gt(w=>w.inspector.maxWidthPx);if(!e)return null;const v=a.jsx(DA,{sessionId:e,auxReady:t,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:l,sessionDiffSummary:u});return n==="drawer"?a.jsx(Pl,{title:"Inspector",placement:"right",open:r,onClose:()=>s(!1),width:h,children:v}):r?a.jsxs("aside",{"data-session-inspector-pane":!0,style:{width:"100%",minWidth:m,maxWidth:b,height:"100%",minHeight:0,borderLeft:`1px solid ${f.colorBorderSecondary}`,background:f.colorBgLayout,overflow:"auto"},children:[a.jsxs(Ee,{align:"center",justify:"space-between",style:{position:"sticky",top:0,zIndex:1,padding:`6px ${f.paddingSM}px`,borderBottom:`1px solid ${f.colorBorderSecondary}`,background:f.colorBgLayout},children:[a.jsxs(Ee,{align:"center",gap:f.marginXS,children:[a.jsx(id,{}),a.jsx(Lv,{strong:!0,children:"Inspector"})]}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(vs,{}),"aria-label":"Close inspector",onClick:()=>s(!1)})]}),a.jsx("div",{style:{padding:`6px ${f.paddingSM}px ${f.paddingSM}px`,minWidth:0},children:v})]}):null},NA=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>{const s=n,o=Ml(),i=ae(G=>e??G.currentSessionId),l=ae(_s(i)),u=y.useMemo(()=>(l==null?void 0:l.messages)||[],[l]),f=ae(G=>G.loadTaskList),h=$v(G=>G.isAdvanced),m=y.useMemo(()=>!i||!l?i:l.kind==="child"&&(l.parentSessionId||l.rootSessionId)||i,[l,i]),b=ae(G=>m?!!G.taskLists[m]:!1),v=ae(Ki(i)),w=y.useMemo(()=>!i||!l?!1:!!(b||l.kind==="child"||v),[l,b,v,i]),S=ae(G=>{if(!i)return!1;const Z=Di(i)(G);return Object.keys(Z).length>0?!0:G.chats.some(pe=>pe.kind==="child"&&pe.parentSessionId===i)});y.useEffect(()=>{!m||b||w&&f(m).catch(G=>{console.warn(`[SessionWorkspaceShell] Failed to load task list for ${m}:`,G)})},[m,b,w,f]);const k=y.useMemo(()=>{var me;if(!u||u.length===0)return null;const G=new Map;let Z=0,pe=0,$=0;for(const ne of u){if(!Py(ne))continue;const fe=((me=ne.result)==null?void 0:me.result)??"",he=to(fe),ue=wd(fe);if(!he||!ue)continue;$+=1,Z+=ue.added,pe+=ue.removed;const de=G.get(he.file_path);de?(de.added+=ue.added,de.removed+=ue.removed,de.diffChunks.push(he.diff.unified),de.truncated=de.truncated||!!he.diff.truncated,de.toolCount+=1,de.workspace=de.workspace??he.workspace):G.set(he.file_path,{added:ue.added,removed:ue.removed,diffChunks:[he.diff.unified],truncated:!!he.diff.truncated,toolCount:1,workspace:he.workspace})}if(G.size===0)return null;const oe=Array.from(G.entries()).map(([ne,fe])=>({filePath:ne,added:fe.added,removed:fe.removed,unifiedDiff:fe.diffChunks.join(`
|
|
222
|
+
`),Xp=({sessionId:e,embedded:t=!1,paneCount:n=1,auxReady:r=!1,sessionDiffSummary:s=null,workspaceState:o,inspectorEligible:i=!1,onRequestOpenInspector:l})=>{var kt,Ct,Tt,Ke,Nt;const u=n,{message:d}=Fn.useApp(),{t:h}=Ge(),m=ae(Se=>e??Se.currentSessionId),b=ae(ks(m)),v=ae(Se=>Se.deleteMessage),w=ae(Se=>Se.loadChatHistory),S=ae(Se=>m?Se.tokenUsages[m]??null:null),k=ae(Se=>m?Se.truncationOccurred[m]??!1:!1),P=ae(Se=>m?Se.segmentsRemoved[m]??0:0),T=y.useMemo(()=>(b==null?void 0:b.messages)||[],[b]),j=ae(Vi(m));y.useEffect(()=>{if(!m)return;const Se=ae.getState().chats.find(De=>De.id===m);Se&&Array.isArray(Se.messages)&&Se.messages.length>0||w(m)},[m,w]);const C=(b==null?void 0:b.messageCount)??0,E=((kt=b==null?void 0:b.messages)==null?void 0:kt.length)??0;y.useEffect(()=>{if(!m)return;C-E>0&&w(m,{mode:"monotonic"})},[m,C,E,w]);const A=j,O=y.useCallback(Se=>{if(Se.success)return null;switch(Se.reason){case"session_not_found":case"message_not_found":case"backend_not_found":return h("chat.messageActions.deleteNotFound");case"session_running":return h("chat.messageActions.deleteConflict");default:return Se.errorMessage||h("chat.messageActions.deleteFailed")}},[h]),D=y.useCallback(async(Se,De)=>{if(!m){const Ot={success:!1,sessionId:"",messageId:Se,reason:"session_not_found"};return(De==null?void 0:De.notify)!==!1&&d.error(O(Ot)),Ot}const Ve=await v(m,Se);return!Ve.success&&(De==null?void 0:De.notify)!==!1&&d.error(O(Ve)),Ve},[m,v,d,O]),F=y.useCallback(async Se=>{const De=Array.from(new Set(Se.map(Zt=>Zt.trim()).filter(Boolean)));if(De.length===0)return;const Ot=(await Promise.all(De.map(Zt=>D(Zt,{notify:!1})))).filter(Zt=>!Zt.success);if(Ot.length!==0){if(Ot.length===1){d.error(O(Ot[0]));return}d.error(h("chat.messageActions.deleteBatchFailed",{failed:Ot.length,total:De.length}))}},[D,d,O,h]),N=y.useRef(null),q=y.useRef(null),{token:I}=OA(),Q=$A(),G=jl(),[Z,pe]=y.useState(null),[$,oe]=y.useState(!1),[me,ne]=y.useState(new Set),he=gt(Se=>Se.sidebar.collapsed),fe=r,ue=s,de=()=>t||Q.xs||Q.sm?"100%":Q.md?"90%":Q.lg?"85%":"1024px",Ce=()=>{let Se;return t?Se=I.paddingSM:Q.xs?Se=I.paddingXS:Q.sm?Se=I.paddingSM:Se=I.padding,!t&&he&&!G?Se+18:Se},ze=y.useMemo(()=>o||Jd({isEmbedded:t,leafCount:u,isMobileViewport:G}),[t,G,u,o]);y.useEffect(()=>{pe(null),oe(!1),ne(new Set)},[m]);const{systemPromptMessage:Le,renderableMessages:lt,convertRenderableEntry:L}=PA(b,T),le=T.length>0,Ae=!!(Z!=null&&Z.content),Ie=!!Le,He=!!m&&(le||Ae),dt=0,pt=y.useMemo(()=>{if(!(Z!=null&&Z.content))return lt;const Se={message:{id:Z.id,role:"user",content:Z.content,createdAt:Z.createdAt},messageType:"text"};return[...lt,Se]},[lt,Z]),$t=y.useMemo(()=>{const Se=[];for(const De of pt){if(!("message"in De))continue;const Ve=eb(De.message).trim();Ve&&Se.push({id:De.message.id,message:De.message,text:Ve})}return Se},[pt]),Qt=y.useMemo(()=>new Set($t.map(Se=>Se.id)),[$t]);y.useEffect(()=>{ne(Se=>{let De=!1;const Ve=new Set;for(const Ot of Se)Qt.has(Ot)?Ve.add(Ot):De=!0;return De?Ve:Se})},[Qt]);const rn=y.useMemo(()=>$t.filter(Se=>me.has(Se.id)),[$t,me]),_n=$t.length>0,At=y.useCallback(Se=>{ne(De=>{const Ve=new Set(De);return Ve.has(Se)?Ve.delete(Se):Ve.add(Se),Ve})},[]),Xt=y.useCallback(()=>{if(!_n){d.warning(h("chat.view.noExportableMessages"));return}oe(!0)},[d,_n,h]),Kt=y.useCallback(()=>{oe(!1),ne(new Set)},[]),gn=y.useCallback(()=>{if($){Kt();return}Xt()},[Xt,Kt,$]),On=y.useCallback(()=>{ne(new Set($t.map(Se=>Se.id)))},[$t]),Mn=y.useCallback(()=>{ne(new Set)},[]),It=y.useCallback(async Se=>{var Ot;if(!m){d.warning(h("chat.view.noActiveChat"));return}if(rn.length===0){d.warning(h("chat.view.selectAtLeastOneMessage"));return}const De=FA(rn),Ve=await tb.exportMessageText({format:Se,content:De,sessionId:m,filenamePrefix:`chat-messages-${rn.length}`});if(Ve.success){d.success(h("chat.view.exportSaved",{filename:Ve.filename}));return}(Ot=Ve.error)!=null&&Ot.toLowerCase().includes("cancel")||d.error(Ve.error||h("chat.view.exportFailed"))},[d,m,rn,h]);y.useEffect(()=>{if(typeof window>"u")return;const Se=De=>{var Zt;const Ot=((Zt=De.detail)==null?void 0:Zt.sessionId)??null;!m||Ot!==m||gn()};return window.addEventListener(vu,Se),()=>{window.removeEventListener(vu,Se)}},[m,gn]);const _t=(Ct=b==null?void 0:b.config)==null?void 0:Ct.tokenUsage,bt=S||_t||null,ye=(Tt=b==null?void 0:b.config)==null?void 0:Tt.truncationOccurred,We=k||ye||!1,Te=(Ke=b==null?void 0:b.config)==null?void 0:Ke.segmentsRemoved,qe=P||Te||0,Lt=y.useMemo(()=>{var De;const Se=(De=b==null?void 0:b.config)==null?void 0:De.compressionEvents;return!Se||Se.length===0?null:Se.reduce((Ve,Ot)=>{const Zt=Date.parse(Ve.createdAt),Qn=Date.parse(Ot.createdAt);return Number.isFinite(Zt)?Number.isFinite(Qn)&&Qn>Zt?Ot:Ve:Ot})},[(Nt=b==null?void 0:b.config)==null?void 0:Nt.compressionEvents]),$n=I.marginMD,{handleMessagesScroll:Vt,hasUnreadActivity:$e,resetUserScroll:fn,scrollToBottom:B,scrollToTop:ie,showScrollToBottom:H,showScrollToTop:_e,unreadCount:Oe}=mA({currentSessionId:m,isThinking:A,messagesListRef:N,bottomAnchorRef:q,renderableMessages:pt}),Fe=!!He&&_n&&(!t||$),et=Lt?a.jsx(xn,{title:h("chat.compression.tooltip",{count:Lt.messagesCompressed,time:$v(Lt.createdAt),defaultValue:"Latest compression at {{time}}: {{count}} messages archived"}),children:a.jsx(Je,{color:"gold",icon:a.jsx(Sg,{}),style:{marginInlineEnd:0,whiteSpace:"nowrap"},children:h("chat.compression.archivedShort",{count:Lt.messagesCompressed,defaultValue:"{{count}} archived"})})}):null,Xe=bt&&bt.budgetLimit>0?a.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:I.marginXS},children:[a.jsx(KR,{usage:bt,showDetails:!0,size:"small"}),We&&a.jsxs("span",{style:{fontSize:11,color:I.colorTextSecondary,whiteSpace:"nowrap"},children:["(",qe," truncated)"]}),et]}):et?a.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:I.marginXS},children:et}):null;return a.jsx(Ws,{role:"region","aria-label":h("chat.view.chatRegion","Chat conversation"),style:{flex:1,minHeight:0,height:"100%",background:I.colorBgContainer,position:"relative",overflow:"hidden"},children:a.jsxs(Me,{vertical:!0,style:{flex:1,minHeight:0,height:"100%"},children:[a.jsx(AA,{sessionId:m,auxReady:fe,maxWidth:de(),paddingLeft:Ce(),paddingRight:Ce(),workspaceState:ze,inspectorEligible:i,planMode:(b==null?void 0:b.planMode)??null,onRequestOpenInspector:l,t:h}),a.jsx(EA,{visible:Fe,selectionMode:$,selectedCount:rn.length,totalCount:$t.length,paddingTop:I.paddingXS,paddingRight:Ce()+dt,paddingBottom:0,paddingLeft:Ce(),maxWidth:de(),onToggleSelectionMode:gn,onSelectAll:On,onClear:Mn,onExportMarkdown:()=>{It("markdown")},onExportPdf:()=>{It("pdf")},t:h}),a.jsx(YR,{currentChat:b,currentSessionId:m,convertRenderableEntry:L,handleDeleteMessage:D,handleDeleteToolMessages:F,handleMessagesScroll:Vt,hasSystemPrompt:Ie,messagesListRef:N,bottomAnchorRef:q,renderableMessages:pt,rowGap:$n,showMessagesView:!!He,screens:Q,workflowDraftId:Z==null?void 0:Z.id,isThinking:A,padding:Ce(),selectionMode:$,selectedMessageIds:me,selectableMessageIds:Qt,onToggleMessageSelection:At}),a.jsxs("div",{className:"chat-bottom-stack","data-testid":"chat-bottom-stack",children:[a.jsx(jA,{visible:He,showScrollToTop:_e,showScrollToBottom:H,hasUnreadActivity:$e,unreadCount:Oe,onScrollToTop:ie,onScrollToBottom:B,onResetUserScroll:fn,t:h}),m&&fe&&a.jsx("div",{style:{paddingTop:I.paddingXS,paddingRight:Ce(),paddingBottom:0,paddingLeft:Ce(),maxWidth:de(),margin:"0 auto",width:"100%"},children:a.jsx(ht.Suspense,{fallback:null,children:a.jsx(IA,{sessionId:m},m)})}),a.jsx(QC,{sessionId:m,isCenteredLayout:!He,maxWidth:He?de():"100%",onWorkflowDraftChange:pe,showMessagesView:!!He,sessionDiffSummary:ue,contextUsageIndicator:Xe,showSessionDiffCard:!1})]})]})})},Hu="lotus_experience_mode_v1",NI=new Set(["skills","hooks","masking","env-vars","metrics","sessions","config"]);function Kp(){try{const e=localStorage.getItem(Hu);if(e==="simple"||e==="advanced")return e}catch{}return"advanced"}const Lv=Hr(e=>({mode:Kp(),isAdvanced:Kp()==="advanced",setMode:t=>{try{localStorage.setItem(Hu,t)}catch{}e({mode:t,isAdvanced:t==="advanced"})},toggleMode:()=>e(t=>{const n=t.mode==="simple"?"advanced":"simple";try{localStorage.setItem(Hu,n)}catch{}return{mode:n,isAdvanced:n==="advanced"}})})),DA=ht.lazy(()=>Jt(()=>import("./index-BrDrSRJg.js"),__vite__mapDeps([20,1,2,3,21,4,5,6,22]),import.meta.url).then(e=>({default:e.SessionSummaryCard}))),NA=ht.lazy(()=>Jt(()=>import("./index-B1RhqvS7.js"),__vite__mapDeps([23,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.TodoList}))),BA=ht.lazy(()=>Jt(()=>import("./SubAgentsPanel-BtrjPQrW.js"),__vite__mapDeps([24,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.SubAgentsPanel}))),{Title:zA,Text:Fv}=ft,WA=({sessionId:e,auxReady:t,showMessagesView:n,shouldShowTaskPanel:r,hasSubAgents:s,sessionDiffSummary:o})=>{const{token:i}=ut.useToken(),l=Lv(d=>d.isAdvanced),u=y.useMemo(()=>[{key:"overview",title:"Overview",showTitle:!1,visible:l&&n,node:t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx(DA,{sessionId:e,compact:!0})}):null},{key:"tasks",title:"Tasks",showTitle:!1,visible:r,node:t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx(NA,{sessionId:e,initialCollapsed:!1,compact:!0})}):null},{key:"agents",title:"Sub-agents",showTitle:!1,visible:s,node:t?a.jsx(ht.Suspense,{fallback:null,children:a.jsx(BA,{parentSessionId:e,compact:!0})}):null},{key:"diffs",title:"Diffs",showTitle:!1,visible:!!o,node:a.jsx(xy,{sessionDiffSummary:o,sessionId:e,compact:!0})}].filter(d=>d.visible),[t,s,l,o,e,r,n]);return u.length===0?a.jsx(Me,{vertical:!0,align:"center",justify:"center",style:{minHeight:180,color:i.colorTextSecondary,padding:i.paddingLG,textAlign:"center"},children:a.jsx(Fv,{type:"secondary",children:"No session details available yet."})}):a.jsx(Me,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:u.map((d,h)=>a.jsx("section",{style:{width:"100%",minWidth:0,paddingTop:h===0?0:6,borderTop:h===0?"none":`1px solid ${i.colorBorderSecondary}`},children:d.showTitle?a.jsxs(Me,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[a.jsx(zA,{level:5,style:{margin:0,fontSize:i.fontSizeLG},children:d.title}),d.node]}):d.node},d.key))})},Vp=({sessionId:e,auxReady:t,mode:n,open:r,onOpenChange:s,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:l,sessionDiffSummary:u})=>{const{token:d}=ut.useToken(),h=gt(w=>w.inspector.widthPx),m=gt(w=>w.inspector.minWidthPx),b=gt(w=>w.inspector.maxWidthPx);if(!e)return null;const v=a.jsx(WA,{sessionId:e,auxReady:t,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:l,sessionDiffSummary:u});return n==="drawer"?a.jsx(Ml,{title:"Inspector",placement:"right",open:r,onClose:()=>s(!1),width:h,children:v}):r?a.jsxs("aside",{"data-session-inspector-pane":!0,style:{width:"100%",minWidth:m,maxWidth:b,height:"100%",minHeight:0,borderLeft:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout,overflow:"auto"},children:[a.jsxs(Me,{align:"center",justify:"space-between",style:{position:"sticky",top:0,zIndex:1,padding:`6px ${d.paddingSM}px`,borderBottom:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout},children:[a.jsxs(Me,{align:"center",gap:d.marginXS,children:[a.jsx(ad,{}),a.jsx(Fv,{strong:!0,children:"Inspector"})]}),a.jsx(je,{type:"text",size:"small",icon:a.jsx(Ss,{}),"aria-label":"Close inspector",onClick:()=>s(!1)})]}),a.jsx("div",{style:{padding:`6px ${d.paddingSM}px ${d.paddingSM}px`,minWidth:0},children:v})]}):null},UA=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>{const s=n,o=jl(),i=ae(G=>e??G.currentSessionId),l=ae(ks(i)),u=y.useMemo(()=>(l==null?void 0:l.messages)||[],[l]),d=ae(G=>G.loadTaskList),h=Lv(G=>G.isAdvanced),m=y.useMemo(()=>!i||!l?i:l.kind==="child"&&(l.parentSessionId||l.rootSessionId)||i,[l,i]),b=ae(G=>m?!!G.taskLists[m]:!1),v=ae(Vi(i)),w=y.useMemo(()=>!i||!l?!1:!!(b||l.kind==="child"||v),[l,b,v,i]),S=ae(G=>{if(!i)return!1;const Z=Ni(i)(G);return Object.keys(Z).length>0?!0:G.chats.some(pe=>pe.kind==="child"&&pe.parentSessionId===i)});y.useEffect(()=>{!m||b||w&&d(m).catch(G=>{console.warn(`[SessionWorkspaceShell] Failed to load task list for ${m}:`,G)})},[m,b,w,d]);const k=y.useMemo(()=>{var me;if(!u||u.length===0)return null;const G=new Map;let Z=0,pe=0,$=0;for(const ne of u){if(!My(ne))continue;const he=((me=ne.result)==null?void 0:me.result)??"",fe=no(he),ue=wd(he);if(!fe||!ue)continue;$+=1,Z+=ue.added,pe+=ue.removed;const de=G.get(fe.file_path);de?(de.added+=ue.added,de.removed+=ue.removed,de.diffChunks.push(fe.diff.unified),de.truncated=de.truncated||!!fe.diff.truncated,de.toolCount+=1,de.workspace=de.workspace??fe.workspace):G.set(fe.file_path,{added:ue.added,removed:ue.removed,diffChunks:[fe.diff.unified],truncated:!!fe.diff.truncated,toolCount:1,workspace:fe.workspace})}if(G.size===0)return null;const oe=Array.from(G.entries()).map(([ne,he])=>({filePath:ne,added:he.added,removed:he.removed,unifiedDiff:he.diffChunks.join(`
|
|
223
223
|
|
|
224
|
-
`),truncated:fe.truncated,toolCount:fe.toolCount,workspace:fe.workspace})).sort((ne,fe)=>ne.filePath.localeCompare(fe.filePath));return{totalAdded:Z,totalRemoved:pe,files:oe,changedTools:$}},[u]),P=gt(G=>G.inspector.widthPx),T=gt(G=>G.inspector.minWidthPx),M=gt(G=>G.inspector.maxWidthPx),C=gt(G=>G.setInspectorWidthPx),j=u.length>0,A=y.useMemo(()=>r||Jd({isEmbedded:t,leafCount:s,isMobileViewport:o}),[t,o,s,r]),O=A.inspectorMode,F=!!(i&&(h&&j||w||S||k)),D=!!i&&(O==="drawer"||F),[N,q]=y.useState(()=>O==="rail"),[I,Q]=y.useState(!1);return y.useEffect(()=>{q(O==="rail"?F:!1)},[F,O,i]),y.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Z=requestIdleCallback(()=>Q(!0));return()=>cancelIdleCallback(Z)}const G=window.setTimeout(()=>Q(!0),300);return()=>window.clearTimeout(G)},[]),y.useEffect(()=>{if(typeof window>"u"||!i)return;const G=Z=>{var oe;(((oe=Z.detail)==null?void 0:oe.sessionId)??null)===i&&q(!0)};return window.addEventListener(vu,G),()=>{window.removeEventListener(vu,G)}},[i]),a.jsx("div",{"data-session-workspace-shell":!0,"data-inspector-mode":O,"data-multi-pane":A.isMultiPane?"true":"false","data-inspector-toggle-placement":A.inspectorTogglePlacement,style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:a.jsx(Ee,{style:{flex:1,minHeight:0},children:D&&O==="rail"&&N?a.jsx(vd,{layout:"horizontal",sizesPx:[0,P],minFirstPx:320,minSecondPx:T,style:{flex:1,minHeight:0},handleSizePx:4,onResizeEnd:([,G])=>{const Z=Math.max(T,Math.min(M,G));C(Z)},first:a.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:a.jsx(Xp,{sessionId:i,embedded:t,paneCount:s,auxReady:I,sessionDiffSummary:k,workspaceState:A,inspectorEligible:F,onRequestOpenInspector:()=>q(!0)})}),second:a.jsx(Vp,{sessionId:i,auxReady:I,mode:O,open:N,onOpenChange:q,showMessagesView:j,shouldShowTaskPanel:w,hasSubAgents:S,sessionDiffSummary:k})}):a.jsxs(a.Fragment,{children:[a.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:a.jsx(Xp,{sessionId:i,embedded:t,paneCount:s,auxReady:I,sessionDiffSummary:k,workspaceState:A,inspectorEligible:F,onRequestOpenInspector:()=>q(!0)})}),D?a.jsx(Vp,{sessionId:i,auxReady:I,mode:O,open:N,onOpenChange:q,showMessagesView:j,shouldShowTaskPanel:w,hasSubAgents:S,sessionDiffSummary:k}):null]})})})},BA=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>a.jsx(NA,{sessionId:e,embedded:t,paneCount:n,workspaceState:r}),zA=ht.lazy(()=>Jt(()=>import("./index-GggL5P0b.js"),__vite__mapDeps([25,1,2,3,4,5,6,26]),import.meta.url).then(e=>({default:e.HomeDashboard}))),{useToken:WA}=ut,{Text:UA}=ft,qA=4,HA=({leafId:e})=>{var pe;const{token:t}=WA(),{t:n}=Ge(),r=gt($=>$.tree),s=gt($=>$.leafSessionIds),o=gt($=>$.activeLeafId),i=gt($=>$.setActiveLeafId),l=gt($=>$.splitLeaf),u=gt($=>$.closeLeaf),f=gt($=>$.setLeafSessionId),h=ae($=>$.selectSession),m=ae($=>$.addChat),b=ae($=>$.systemPrompts),v=ae($=>$.lastSelectedPromptId),w=s[e]??null,S=ae(_s(w)),k=y.useMemo(()=>Kn(r),[r]),P=k.length,T=Math.max(0,k.indexOf(e))+1,M=P<qA,C=wg("(max-width: 768px)"),j=y.useMemo(()=>Jd({isEmbedded:!0,leafCount:P,isMobileViewport:C}),[C,P]),A=j.isMultiPane,F=A||!!w,D=j.isMultiPane,N=o===e,q=((pe=S==null?void 0:S.title)==null?void 0:pe.trim())||n("chat.multiPane.selectSessionHint"),I=!C,Q=j.inspectorTogglePlacement==="pane_header"&&!!w,G=y.useCallback($=>{f(e,$),i(e),h($)},[e,h,i,f]),Z=y.useCallback(async()=>{var ne,fe;const $=b.find(he=>he.id===v),oe=($==null?void 0:$.id)||(b.length>0?((ne=b.find(he=>he.id==="general_assistant"))==null?void 0:ne.id)||b[0].id:""),me=await m({title:n("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:oe,baseSystemPrompt:($==null?void 0:$.content)||(b.length>0?((fe=b.find(he=>he.id==="general_assistant"))==null?void 0:fe.content)||b[0].content:""),lastUsedEnhancedPrompt:null}});f(e,me),i(e)},[m,v,b,n,e,f,i]);return a.jsxs("div",{className:"chat-pane-shell",onMouseDownCapture:()=>{Xn("pane focus (mouse)",{leafId:e,sessionId:w,prevActiveLeafId:o}),i(e),w&&h(w)},onFocusCapture:()=>{Xn("pane focus (focus)",{leafId:e,sessionId:w,prevActiveLeafId:o}),i(e)},style:{height:"100%",minHeight:0,border:D?`1px solid ${N?t.colorPrimaryBorder:t.colorBorderSecondary}`:"none",borderRadius:D?t.borderRadiusLG:0,overflow:"hidden",background:t.colorBgContainer,position:"relative"},children:[I?a.jsx("div",{className:"chat-pane-shell__header",style:{padding:`${t.paddingXS}px ${t.paddingSM}px`,borderBottom:`1px solid ${t.colorBorderSecondary}`,background:D?t.colorBgElevated:t.colorBgContainer},children:a.jsxs(Ee,{align:"center",justify:"space-between",gap:t.marginSM,style:{minWidth:0},children:[a.jsxs(Ee,{align:"center",gap:t.marginXS,style:{minWidth:0,flex:1},children:[D?a.jsx(Je,{color:N?"blue":"default",style:{marginInlineEnd:0},children:n("chat.multiPane.paneLabel",{index:T,defaultValue:"Pane {{index}}"})}):null,a.jsx("div",{className:"chat-pane-shell__title",children:a.jsx(UA,{strong:!!w,type:w?void 0:"secondary",ellipsis:{tooltip:q},children:q})})]}),a.jsxs(Ee,{className:"chat-pane-shell__actions",align:"center",gap:4,children:[a.jsx(je,{size:"small",type:"text",icon:a.jsx(lx,{}),disabled:!M,title:n("chat.multiPane.splitHorizontal"),"aria-label":n("chat.multiPane.splitHorizontal"),onClick:$=>{$.preventDefault(),$.stopPropagation(),Xn("pane split request",{leafId:e,layout:"horizontal"}),l(e,"horizontal");const oe=gt.getState(),me=oe.leafSessionIds[oe.activeLeafId]??null;me&&h(me)}}),a.jsx(je,{size:"small",type:"text",icon:a.jsx(cx,{}),disabled:!M,title:n("chat.multiPane.splitVertical"),"aria-label":n("chat.multiPane.splitVertical"),onClick:$=>{$.preventDefault(),$.stopPropagation(),Xn("pane split request",{leafId:e,layout:"vertical"}),l(e,"vertical");const oe=gt.getState(),me=oe.leafSessionIds[oe.activeLeafId]??null;me&&h(me)}}),a.jsx(je,{size:"small",type:"text",icon:a.jsx(xg,{}),disabled:!w,title:n("chat.multiPane.selectMessagesToExport"),"aria-label":n("chat.multiPane.selectMessagesToExport"),onClick:$=>{$.preventDefault(),$.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(bu,{detail:{sessionId:w}}))}}),Q?a.jsx(je,{size:"small",type:"text",icon:a.jsx(id,{}),title:n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),"aria-label":n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),onClick:$=>{$.preventDefault(),$.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(vu,{detail:{sessionId:w}}))}}):null,a.jsx(je,{size:"small",type:"text",danger:!0,icon:a.jsx(vs,{}),disabled:!F,title:n("chat.multiPane.closePane"),"aria-label":n("chat.multiPane.closePane"),onClick:$=>{$.preventDefault(),$.stopPropagation(),Xn("pane close request",{leafId:e}),A?u(e):f(e,null);const oe=gt.getState(),me=oe.leafSessionIds[oe.activeLeafId]??null;h(me)}})]})]})}):null,a.jsx("div",{className:"chat-pane-shell__content",children:w?a.jsx(Bi,{name:"ChatView",children:a.jsx(BA,{sessionId:w,embedded:!0,paneCount:P,workspaceState:j})}):a.jsx(Bi,{name:"HomeDashboard",children:a.jsx(ht.Suspense,{fallback:null,children:a.jsx(zA,{onOpenSession:G,onCreateSession:Z})})})})]})},YA=({node:e})=>{const t=gt(r=>r.splitSizesPx[e.id]??null),n=gt(r=>r.setSplitSizesPx);return a.jsx(vd,{layout:e.layout,sizesPx:t,defaultSplitRatio:.5,minFirstPx:240,minSecondPx:240,style:{height:"100%",minHeight:0},onResizeEnd:r=>{n(e.id,r)},first:a.jsx(Hu,{node:e.children[0]}),second:a.jsx(Hu,{node:e.children[1]})})},Hu=({node:e})=>e.type==="leaf"?a.jsx(HA,{leafId:e.id}):a.jsx(YA,{node:e}),Gp=()=>{const e=gt(h=>h.tree),t=gt(h=>h.leafSessionIds),n=gt(h=>h.activeLeafId),r=gt(h=>h.setActiveLeafId),s=gt(h=>h.setLeafSessionId),o=ae(h=>h.chats.map(m=>m.id).join(",")),i=y.useMemo(()=>new Set(o.split(",")),[o]),l=ae(h=>h.currentSessionId),u=y.useRef(!1),f=y.useMemo(()=>Kn(e),[e]);return y.useEffect(()=>{f.length!==0&&(f.includes(n)||r(f[0]))},[n,f,r]),y.useEffect(()=>{const h=new Set(Object.values(t).filter(Boolean));let m=!1;for(const b of h)if(!i.has(b)){m=!0;break}if(m)for(const[b,v]of Object.entries(t))v&&!i.has(v)&&s(b,null)},[i,t,s]),y.useEffect(()=>{if(!l||u.current)return;if(!Object.values(t).some(Boolean)){s(n,l),u.current=!0;return}u.current=!0},[n,l,t,s]),a.jsx("div",{style:{height:"100%",minHeight:0,padding:0},children:a.jsx(Hu,{node:e})})},XA=ht.lazy(()=>Jt(()=>import("./index-CWTKRCxw.js"),__vite__mapDeps([27,1,2,3,4,28,5,6,21,29]),import.meta.url).then(e=>({default:e.SystemSettingsPage}))),KA=ht.lazy(()=>Jt(()=>import("./index-CIgS9N5-.js"),__vite__mapDeps([30,1,2,3,4,5,6,31]),import.meta.url).then(e=>({default:e.CommandPalette}))),VA=ht.lazy(()=>Jt(()=>import("./FeatureGuide-BlFyQEho.js"),__vite__mapDeps([32,1,2,3,28]),import.meta.url).then(e=>({default:e.FeatureGuide}))),Jp="bodhi_open_provider_on_entry",GA="__LOTUS_COMMAND_PALETTE_FORCE_OPEN__",JA=()=>(x0(),null),QA=({themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r})=>{const s=Ei(I=>I.isOpen),o=Ei(I=>I.close),{t:i}=Ge(),{token:l}=ut.useToken(),u=yd(),f=y.useMemo(()=>ly()==="macos",[]);y.useEffect(()=>{localStorage.getItem(Jp)==="true"&&(localStorage.removeItem(Jp),Ei.getState().open("chat","provider"))},[]),G_(),y.useEffect(()=>{ih.clear(),ah()},[e]),y.useEffect(()=>{ih.clear(),ah()},[u]);const h=gt(I=>I.sidebar.collapsed),m=gt(I=>I.sidebar.widthPx),b=gt(I=>I.sidebar.minWidthPx),v=gt(I=>I.sidebar.maxWidthPx),w=gt(I=>I.setSidebarCollapsed),S=gt(I=>I.setSidebarWidthPx),k=18,P=0,M=!s&&h&&f?44:P,C=0,j=88,A=10,O="none",F=Ml(),D="min(86vw, 360px)",[N,q]=y.useState(!1);return y.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Q=requestIdleCallback(()=>q(!0));return()=>cancelIdleCallback(Q)}const I=window.setTimeout(()=>q(!0),200);return()=>window.clearTimeout(I)},[]),y.useEffect(()=>{const I=Q=>{!((Q.metaKey||Q.ctrlKey)&&Q.key.toLowerCase()==="k")||N||(Q.preventDefault(),window[GA]=!0,q(!0))};return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)},[N]),a.jsxs(a.Fragment,{children:[a.jsx("a",{href:"#lotus-main-content",className:"lotus-skip-link",style:{position:"absolute",top:-9999,left:-9999,zIndex:1e4,padding:"8px 16px",background:"var(--lotus-main-surface, #fff)",color:"var(--ant-color-primary, #0d9488)",borderRadius:8,fontWeight:600,textDecoration:"none"},onFocus:I=>{I.currentTarget.style.top="8px",I.currentTarget.style.left="8px"},onBlur:I=>{I.currentTarget.style.top="-9999px",I.currentTarget.style.left="-9999px"},children:i("app.skipToContent","Skip to main content")}),N&&a.jsx(ht.Suspense,{fallback:null,children:a.jsx(KA,{})}),N&&a.jsx(ht.Suspense,{fallback:null,children:a.jsx(VA,{disabled:s})}),N&&a.jsx(JA,{}),a.jsx(zs,{style:{minHeight:"100vh",height:"100vh",overflow:"hidden",background:"transparent",display:"flex",flexDirection:"row",position:"relative"},children:a.jsxs("div",{style:{display:"flex",flex:1,minHeight:0,height:"100%",width:"100%",boxSizing:"border-box",paddingTop:M,paddingLeft:P,paddingRight:P,paddingBottom:P,background:"transparent"},children:[s?a.jsx(zs,{className:"lotus-shell-panel lotus-settings-panel lotus-page-enter",style:{flex:1,display:"flex",flexDirection:"column",background:"var(--lotus-main-surface)",minHeight:0,borderRadius:`${k}px 0 0 ${k}px`,border:O,overflow:"hidden"},children:a.jsx(Bi,{name:"SystemSettings",children:a.jsx(ht.Suspense,{fallback:a.jsx("div",{style:{padding:24,color:"var(--ant-color-text-secondary)"},children:i("app.loading","Loading…")}),children:a.jsx(XA,{themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r,onBack:o})})})}):a.jsx(a.Fragment,{children:F?a.jsxs(a.Fragment,{children:[a.jsx(Pl,{placement:"left",closable:!1,onClose:()=>w(!0),open:!h,width:D,styles:{body:{padding:0,background:"var(--lotus-sidebar-bg)"}},children:a.jsx(rh,{})}),a.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{flex:1,height:"100%",minHeight:0,borderRadius:`${k}px`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:a.jsx(zs,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:a.jsx(Gp,{})})})]}):a.jsx(vd,{layout:"horizontal",style:{flex:1,minHeight:0,height:"100%",background:"transparent"},sizesPx:[h?C:m,0],minFirstPx:h?C:b,minSecondPx:320,disabled:h,handleSizePx:h?0:2,onResizeEnd:([I])=>{if(h)return;const Q=Math.max(b,Math.min(v,I));S(Q)},first:a.jsx("div",{className:"lotus-shell-panel lotus-shell-sidebar",style:{height:"100%",minHeight:0,borderRadius:`${k}px 0 0 ${k}px`,border:O,overflow:"hidden",background:"var(--lotus-sidebar-bg)"},children:a.jsx(rh,{})}),second:a.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{height:"100%",minHeight:0,borderRadius:`0 ${k}px ${k}px 0`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:a.jsx(zs,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:a.jsx(Gp,{})})})})}),!s&&h?a.jsx(je,{"data-testid":"show-sidebar",type:"text",size:"small",icon:a.jsx(ux,{}),onClick:()=>w(!1),title:i("layout.showSidebar"),"aria-label":i("layout.showSidebar"),className:"lotus-toolbar-icon lotus-floating-sidebar-toggle",style:{position:"absolute",top:F?8:A,left:F?8:j,zIndex:40,width:36,height:36,borderRadius:12,border:`1px solid ${l.colorBorderSecondary}`,background:l.colorBgElevated,boxShadow:l.boxShadowSecondary}}):null]})})]})},ZA="bodhi_open_provider_on_entry",{Title:Qp,Paragraph:Zp}=ft,e1=()=>{const{t:e}=Ge(),[t,n]=y.useState(!1),[r,s]=y.useState(null),[o,i]=y.useState(!1),l=async u=>{try{s(null),i(!0),await Js.getInstance().markSetupComplete(),u&&localStorage.setItem(ZA,"true"),n(!0)}catch(f){console.error("Failed to complete setup:",f),s(e("setup.error.completeFailed"))}finally{i(!1)}};return t?a.jsxs("div",{"data-testid":"setup-complete",className:"setup-complete",children:[a.jsx(Qp,{level:2,children:e("setup.complete.title")}),a.jsx(Zp,{children:e("setup.complete.restartMessage")}),a.jsx(je,{"data-testid":"setup-restart",onClick:()=>window.location.reload(),children:e("setup.complete.restartMessage")})]}):a.jsx("div",{className:"setup-page",children:a.jsxs(nn,{className:"setup-page__card",children:[a.jsxs("div",{className:"setup-page__hero",children:[a.jsx("div",{className:"setup-page__hero-icon",children:a.jsx(Pf,{})}),a.jsx(Qp,{level:2,style:{marginTop:0},children:e("setup.welcome.heading")}),a.jsx(Zp,{type:"secondary",children:e("setup.welcome.description")})]}),a.jsx(ir,{message:e("setup.welcome.providerHint"),type:"info",showIcon:!0,style:{marginBottom:16}}),a.jsx(ir,{message:e("setup.welcome.proxyHint"),type:"info",showIcon:!0,style:{marginBottom:24}}),r?a.jsx(ir,{message:r,type:"error",showIcon:!0,style:{marginBottom:16}}):null,a.jsxs("div",{className:"setup-page__actions",children:[a.jsx(je,{"data-testid":"setup-configure-provider",icon:a.jsx(Cl,{}),onClick:()=>void l(!0),loading:o,children:e("setup.button.configureProvider")}),a.jsx(je,{"data-testid":"setup-get-started",type:"primary",icon:a.jsx(Pf,{}),onClick:()=>void l(!1),loading:o,children:e("setup.button.getStarted")})]})]})})},{Title:t1,Text:em}=ft,n1=({onVerified:e,verifyPassword:t})=>{const{t:n}=Ge(),[r,s]=y.useState(""),[o,i]=y.useState(null),[l,u]=y.useState(!1),f=async()=>{const h=r.trim();if(!h){i(n("app.passwordGate.validation.required"));return}u(!0),i(null);try{await t(h),await e(),s("")}catch(m){const b=m instanceof Error?m.message:n("app.passwordGate.validation.verifyFailed");i(b)}finally{u(!1)}};return a.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:a.jsx(nn,{style:{width:"100%",maxWidth:480},children:a.jsxs(Ue,{direction:"vertical",size:20,style:{width:"100%"},children:[a.jsxs("div",{children:[a.jsx(t1,{level:3,style:{marginBottom:8},children:n("app.passwordGate.title")}),a.jsx(em,{type:"secondary",children:n("app.passwordGate.description")})]}),o?a.jsx(ir,{type:"error",showIcon:!0,message:o}):null,a.jsxs(Ue,{direction:"vertical",size:8,style:{width:"100%"},children:[a.jsx(em,{strong:!0,children:n("app.passwordGate.passwordLabel")}),a.jsx(Ss.Password,{value:r,autoFocus:!0,autoComplete:"current-password",onChange:h=>s(h.target.value),onPressEnter:()=>void f(),placeholder:n("app.passwordGate.passwordPlaceholder")})]}),a.jsx(je,{type:"primary",block:!0,loading:l,onClick:()=>void f(),children:n("app.passwordGate.submit")})]})})})};var Ro={},qc={exports:{}},tm;function Yt(){return tm||(tm=1,function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(qc)),qc.exports}var Ao={},nm;function r1(){if(nm)return Ao;nm=1,Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.default=void 0;var e={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"};return Ao.default=e,Ao}var Io={},Oo={},$o={},Hc={exports:{}},Yc={exports:{}},Xc={exports:{}},Kc={exports:{}},rm;function s1(){return rm||(rm=1,function(e){var t=lg().default;function n(r,s){if(t(r)!="object"||!r)return r;var o=r[Symbol.toPrimitive];if(o!==void 0){var i=o.call(r,s||"default");if(t(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(r)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(Kc)),Kc.exports}var sm;function o1(){return sm||(sm=1,function(e){var t=lg().default,n=s1();function r(s){var o=n(s,"string");return t(o)=="symbol"?o:o+""}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(Xc)),Xc.exports}var om;function i1(){return om||(om=1,function(e){var t=o1();function n(r,s,o){return(s=t(s))in r?Object.defineProperty(r,s,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[s]=o,r}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(Yc)),Yc.exports}var im;function ro(){return im||(im=1,function(e){var t=i1();function n(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(s);o&&(l=l.filter(function(u){return Object.getOwnPropertyDescriptor(s,u).enumerable})),i.push.apply(i,l)}return i}function r(s){for(var o=1;o<arguments.length;o++){var i=arguments[o]!=null?arguments[o]:{};o%2?n(Object(i),!0).forEach(function(l){t(s,l,i[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach(function(l){Object.defineProperty(s,l,Object.getOwnPropertyDescriptor(i,l))})}return s}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(Hc)),Hc.exports}var Lo={},am;function so(){return am||(am=1,Object.defineProperty(Lo,"__esModule",{value:!0}),Lo.commonLocale=void 0,Lo.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}),Lo}var lm;function a1(){if(lm)return $o;lm=1;var e=Yt().default;Object.defineProperty($o,"__esModule",{value:!0}),$o.default=void 0;var t=e(ro()),n=so(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"OK",clear:"Clear",week:"Week",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"});return $o.default=r,$o}var Fo={},cm;function Fv(){if(cm)return Fo;cm=1,Object.defineProperty(Fo,"__esModule",{value:!0}),Fo.default=void 0;const e={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};return Fo.default=e,Fo}var um;function Dv(){if(um)return Oo;um=1;var e=Yt().default;Object.defineProperty(Oo,"__esModule",{value:!0}),Oo.default=void 0;var t=e(a1()),n=e(Fv());const r={lang:Object.assign({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},t.default),timePickerLocale:Object.assign({},n.default)};return Oo.default=r,Oo}var dm;function l1(){if(dm)return Io;dm=1;var e=Yt().default;Object.defineProperty(Io,"__esModule",{value:!0}),Io.default=void 0;var t=e(Dv());return Io.default=t.default,Io}var fm;function c1(){if(fm)return Ro;fm=1;var e=Yt().default;Object.defineProperty(Ro,"__esModule",{value:!0}),Ro.default=void 0;var t=e(r1()),n=e(l1()),r=e(Dv()),s=e(Fv());const o="${label} is not a valid ${type}",i={locale:"en",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckAll:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",deselectAll:"Deselect all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand",collapse:"Collapse"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"},ColorPicker:{presetEmpty:"Empty",transparent:"Transparent",singleColor:"Single",gradientColor:"Gradient"}};return Ro.default=i,Ro}var Vc,hm;function u1(){return hm||(hm=1,Vc=c1()),Vc}var d1=u1();const f1=bs(d1);var Do={},No={},pm;function h1(){if(pm)return No;pm=1,Object.defineProperty(No,"__esModule",{value:!0}),No.default=void 0;var e={items_per_page:"/ page",jump_to:"Aller à",jump_to_confirm:"confirmer",page:"Page",prev_page:"Page précédente",next_page:"Page suivante",prev_5:"5 Pages précédentes",next_5:"5 Pages suivantes",prev_3:"3 Pages précédentes",next_3:"3 Pages suivantes",page_size:"taille de la page"};return No.default=e,No}var Bo={},zo={},Wo={},mm;function p1(){if(mm)return Wo;mm=1;var e=Yt().default;Object.defineProperty(Wo,"__esModule",{value:!0}),Wo.default=void 0;var t=e(ro()),n=so(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"fr_FR",today:"Aujourd'hui",now:"Maintenant",backToToday:"Aujourd'hui",ok:"OK",clear:"Rétablir",week:"Semaine",month:"Mois",year:"Année",timeSelect:"Sélectionner l'heure",dateSelect:"Sélectionner la date",monthSelect:"Choisissez un mois",yearSelect:"Choisissez une année",decadeSelect:"Choisissez une décennie",dateFormat:"DD/MM/YYYY",dayFormat:"DD",dateTimeFormat:"DD/MM/YYYY HH:mm:ss",previousMonth:"Mois précédent (PageUp)",nextMonth:"Mois suivant (PageDown)",previousYear:"Année précédente (Ctrl + gauche)",nextYear:"Année prochaine (Ctrl + droite)",previousDecade:"Décennie précédente",nextDecade:"Décennie suivante",previousCentury:"Siècle précédent",nextCentury:"Siècle suivant"});return Wo.default=r,Wo}var Uo={},gm;function Nv(){if(gm)return Uo;gm=1,Object.defineProperty(Uo,"__esModule",{value:!0}),Uo.default=void 0;const e={placeholder:"Sélectionner l'heure",rangePlaceholder:["Heure de début","Heure de fin"]};return Uo.default=e,Uo}var ym;function Bv(){if(ym)return zo;ym=1;var e=Yt().default;Object.defineProperty(zo,"__esModule",{value:!0}),zo.default=void 0;var t=e(p1()),n=e(Nv());const r={lang:Object.assign({placeholder:"Sélectionner une date",yearPlaceholder:"Sélectionner une année",quarterPlaceholder:"Sélectionner un trimestre",monthPlaceholder:"Sélectionner un mois",weekPlaceholder:"Sélectionner une semaine",rangePlaceholder:["Date de début","Date de fin"],rangeYearPlaceholder:["Année de début","Année de fin"],rangeMonthPlaceholder:["Mois de début","Mois de fin"],rangeWeekPlaceholder:["Semaine de début","Semaine de fin"]},t.default),timePickerLocale:Object.assign({},n.default)};return zo.default=r,zo}var bm;function m1(){if(bm)return Bo;bm=1;var e=Yt().default;Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.default=void 0;var t=e(Bv());return Bo.default=t.default,Bo}var vm;function g1(){if(vm)return Do;vm=1;var e=Yt().default;Object.defineProperty(Do,"__esModule",{value:!0}),Do.default=void 0;var t=e(h1()),n=e(m1()),r=e(Bv()),s=e(Nv());const o="La valeur du champ ${label} n'est pas valide pour le type ${type}",i={locale:"fr",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,Table:{filterTitle:"Filtrer",filterConfirm:"OK",filterReset:"Réinitialiser",filterEmptyText:"Aucun filtre",filterCheckAll:"Tout sélectionner",filterSearchPlaceholder:"Chercher dans les filtres",emptyText:"Aucune donnée",selectAll:"Sélectionner la page actuelle",selectInvert:"Inverser la sélection de la page actuelle",selectNone:"Désélectionner toutes les données",selectionAll:"Sélectionner toutes les données",sortTitle:"Trier",expand:"Développer la ligne",collapse:"Réduire la ligne",triggerDesc:"Trier par ordre décroissant",triggerAsc:"Trier par ordre croissant",cancelSort:"Annuler le tri"},Tour:{Next:"Étape suivante",Previous:"Étape précédente",Finish:"Fin de la visite guidée"},Modal:{okText:"OK",cancelText:"Annuler",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Annuler"},Transfer:{titles:["",""],searchPlaceholder:"Rechercher",itemUnit:"élément",itemsUnit:"éléments",remove:"Désélectionner",selectCurrent:"Sélectionner la page actuelle",removeCurrent:"Désélectionner la page actuelle",selectAll:"Sélectionner toutes les données",removeAll:"Désélectionner toutes les données",selectInvert:"Inverser la sélection de la page actuelle"},Upload:{uploading:"Téléchargement...",removeFile:"Effacer le fichier",uploadError:"Erreur de téléchargement",previewFile:"Fichier de prévisualisation",downloadFile:"Télécharger un fichier"},Empty:{description:"Aucune donnée"},Icon:{icon:"icône"},Text:{edit:"Éditer",copy:"Copier",copied:"Copie effectuée",expand:"Développer"},Form:{optional:"(optionnel)",defaultValidateMessages:{default:"Erreur de validation pour le champ ${label}",required:"Le champ ${label} est obligatoire",enum:"La valeur du champ ${label} doit être parmi [${enum}]",whitespace:"La valeur du champ ${label} ne peut pas être vide",date:{format:"La valeur du champ ${label} n'est pas au format date",parse:"La valeur du champ ${label} ne peut pas être convertie vers une date",invalid:"La valeur du champ ${label} n'est pas une date valide"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"La taille du champ ${label} doit être de ${len} caractères",min:"La taille du champ ${label} doit être au minimum de ${min} caractères",max:"La taille du champ ${label} doit être au maximum de ${max} caractères",range:"La taille du champ ${label} doit être entre ${min} et ${max} caractères"},number:{len:"La valeur du champ ${label} doit être égale à ${len}",min:"La valeur du champ ${label} doit être plus grande que ${min}",max:"La valeur du champ ${label} doit être plus petit que ${max}",range:"La valeur du champ ${label} doit être entre ${min} et ${max}"},array:{len:"La taille du tableau ${label} doit être de ${len}",min:"La taille du tableau ${label} doit être au minimum de ${min}",max:"La taille du tableau ${label} doit être au maximum de ${max}",range:"La taille du tableau ${label} doit être entre ${min}-${max}"},pattern:{mismatch:"La valeur du champ ${label} ne correspond pas au modèle ${pattern}"}}},Image:{preview:"Aperçu"}};return Do.default=i,Do}var Gc,Sm;function y1(){return Sm||(Sm=1,Gc=g1()),Gc}var b1=y1();const v1=bs(b1);var qo={},Ho={},xm;function S1(){if(xm)return Ho;xm=1,Object.defineProperty(Ho,"__esModule",{value:!0}),Ho.default=void 0;var e={items_per_page:"/ पृष्ठ",jump_to:"इस पर चलें",jump_to_confirm:"पुष्टि करें",page:"",prev_page:"पिछला पृष्ठ",next_page:"अगला पृष्ठ",prev_5:"पिछले 5 पृष्ठ",next_5:"अगले 5 पृष्ठ",prev_3:"पिछले 3 पृष्ठ",next_3:"अगले 3 पेज",page_size:"Page Size"};return Ho.default=e,Ho}var Yo={},Xo={},Ko={},wm;function x1(){if(wm)return Ko;wm=1;var e=Yt().default;Object.defineProperty(Ko,"__esModule",{value:!0}),Ko.default=void 0;var t=e(ro()),n=so(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"hi_IN",today:"आज",now:"अभी",backToToday:"आज तक",ok:"ठीक",clear:"स्पष्ट",week:"सप्ताह",month:"महीना",year:"साल",timeSelect:"समय का चयन करें",dateSelect:"तारीख़ चुनें",weekSelect:"एक सप्ताह चुनें",monthSelect:"एक महीना चुनें",yearSelect:"एक वर्ष चुनें",decadeSelect:"एक दशक चुनें",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"पिछला महीना (पेजअप)",nextMonth:"अगले महीने (पेजडाउन)",previousYear:"पिछले साल (Ctrl + बाएं)",nextYear:"अगले साल (Ctrl + दाहिना)",previousDecade:"पिछला दशक",nextDecade:"अगले दशक",previousCentury:"पीछ्ली शताब्दी",nextCentury:"अगली सदी"});return Ko.default=r,Ko}var Vo={},_m;function zv(){if(_m)return Vo;_m=1,Object.defineProperty(Vo,"__esModule",{value:!0}),Vo.default=void 0;const e={placeholder:"समय का चयन करें",rangePlaceholder:["आरंभिक समय","अंत समय"]};return Vo.default=e,Vo}var km;function Wv(){if(km)return Xo;km=1;var e=Yt().default;Object.defineProperty(Xo,"__esModule",{value:!0}),Xo.default=void 0;var t=e(x1()),n=e(zv());const r={lang:Object.assign({placeholder:"तारीख़ चुनें",yearPlaceholder:"वर्ष चुनें",quarterPlaceholder:"तिमाही चुनें",monthPlaceholder:"महीना चुनिए",weekPlaceholder:"सप्ताह चुनें",rangePlaceholder:["प्रारंभ तिथि","समाप्ति तिथि"],rangeYearPlaceholder:["आरंभिक वर्ष","अंत वर्ष"],rangeMonthPlaceholder:["आरंभिक महीना","अंत महीना"],rangeWeekPlaceholder:["आरंभिक सप्ताह","अंत सप्ताह"]},t.default),timePickerLocale:Object.assign({},n.default)};return Xo.default=r,Xo}var Cm;function w1(){if(Cm)return Yo;Cm=1;var e=Yt().default;Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.default=void 0;var t=e(Wv());return Yo.default=t.default,Yo}var Tm;function _1(){if(Tm)return qo;Tm=1;var e=Yt().default;Object.defineProperty(qo,"__esModule",{value:!0}),qo.default=void 0;var t=e(S1()),n=e(w1()),r=e(Wv()),s=e(zv());const o="${label} मान्य ${type} नहीं है",i={locale:"hi",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"कृपया चुनें"},Table:{filterTitle:"सूची बंद करें",filterConfirm:"अच्छी तरह से",filterReset:"रीसेट",filterEmptyText:"कोई फ़िल्टर नहीं",emptyText:"कोई जानकारी नहीं",selectAll:"वर्तमान पृष्ठ का चयन करें",selectInvert:"वर्तमान पृष्ठ घुमाएं",selectNone:"सभी डेटा साफ़ करें",selectionAll:"सभी डेटा का चयन करें",sortTitle:"द्वारा क्रमबद्ध करें",expand:"पंक्ति का विस्तार करें",collapse:"पंक्ति संक्षिप्त करें",triggerDesc:"अवरोही क्रमित करने के लिए क्लिक करें",triggerAsc:"आरोही क्रमित करने के लिए क्लिक करें",cancelSort:"छँटाई रद्द करने के लिए क्लिक करें"},Modal:{okText:"अच्छी तरह से",cancelText:"रद्द करना",justOkText:"अच्छी तरह से"},Popconfirm:{okText:"अच्छी तरह से",cancelText:"रद्द करना"},Transfer:{titles:["",""],searchPlaceholder:"यहां खोजें",itemUnit:"तत्त्व",itemsUnit:"विषय-वस्तु",remove:"हटाए",selectCurrent:"वर्तमान पृष्ठ का चयन करें",removeCurrent:"वर्तमान पृष्ठ हटाएं",selectAll:"सभी डेटा का चयन करें",removeAll:"सभी डेटा हटाएं",selectInvert:"वर्तमान पृष्ठ को उल्टा करें"},Upload:{uploading:"अपलोड हो रहा...",removeFile:"फ़ाइल निकालें",uploadError:"अपलोड में त्रुटि",previewFile:"फ़ाइल पूर्वावलोकन",downloadFile:"फ़ाइल डाउनलोड करें"},Empty:{description:"कोई आकड़ा उपलब्ध नहीं है"},Icon:{icon:"आइकन"},Text:{edit:"संपादित करें",copy:"प्रतिलिपि",copied:"कॉपी किया गया",expand:"विस्तार"},Form:{optional:"(ऐच्छिक)",defaultValidateMessages:{default:"${label} के लिए फील्ड सत्यापन त्रुटि",required:"कृपया ${label} दर्ज करें",enum:"${label} [${enum}] में से एक होना चाहिए",whitespace:"${label} एक खाली अक्षर नहीं हो सकता",date:{format:"${label} तिथि प्रारूप अमान्य है",parse:"${label} को तारीख में नहीं बदला जा सकता",invalid:"${label} एक अमान्य तिथि है"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label} ${len} अक्षर का होना चाहिए",min:"${label} कम से कम ${min} वर्णों का होना चाहिए",max:"${label} अधिकतम ${max} वर्णों का होना चाहिए",range:"${label} ${min}-${max} वर्णों के बीच होना चाहिए"},number:{len:"${label} ${len} के बराबर होना चाहिए",min:"${label} कम से कम ${min} होना चाहिए",max:"${label} अधिकतम ${max} होना चाहिए",range:"${label} ${min}-${max} के बीच होना चाहिए"},array:{len:"${len} ${label} होना चाहिए",min:"कम से कम ${min} ${label}",max:"ज्यादा से ज्यादा ${max} ${label}",range:"${label} की राशि ${min}-${max} के बीच होनी चाहिए"},pattern:{mismatch:"${label} ${pattern} पैटर्न से मेल नहीं खाता"}}},Image:{preview:"पूर्वावलोकन"}};return qo.default=i,qo}var Jc,Pm;function k1(){return Pm||(Pm=1,Jc=_1()),Jc}var C1=k1();const T1=bs(C1);var Go={},Jo={},Em;function P1(){if(Em)return Jo;Em=1,Object.defineProperty(Jo,"__esModule",{value:!0}),Jo.default=void 0;var e={items_per_page:"件 / ページ",jump_to:"移動",jump_to_confirm:"確認する",page:"ページ",prev_page:"前のページ",next_page:"次のページ",prev_5:"前 5ページ",next_5:"次 5ページ",prev_3:"前 3ページ",next_3:"次 3ページ",page_size:"ページサイズ"};return Jo.default=e,Jo}var Qo={},Zo={},ei={},Mm;function E1(){if(Mm)return ei;Mm=1;var e=Yt().default;Object.defineProperty(ei,"__esModule",{value:!0}),ei.default=void 0;var t=e(ro()),n=so(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"ja_JP",today:"今日",now:"現在時刻",backToToday:"今日に戻る",ok:"確定",timeSelect:"時間を選択",dateSelect:"日時を選択",weekSelect:"週を選択",clear:"クリア",week:"週",month:"月",year:"年",previousMonth:"前月 (ページアップキー)",nextMonth:"翌月 (ページダウンキー)",monthSelect:"月を選択",yearSelect:"年を選択",decadeSelect:"年代を選択",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"前年 (Controlを押しながら左キー)",nextYear:"翌年 (Controlを押しながら右キー)",previousDecade:"前の年代",nextDecade:"次の年代",previousCentury:"前の世紀",nextCentury:"次の世紀",monthBeforeYear:!1});return ei.default=r,ei}var ti={},jm;function Uv(){if(jm)return ti;jm=1,Object.defineProperty(ti,"__esModule",{value:!0}),ti.default=void 0;const e={placeholder:"時間を選択",rangePlaceholder:["開始時間","終了時間"]};return ti.default=e,ti}var Rm;function qv(){if(Rm)return Zo;Rm=1;var e=Yt().default;Object.defineProperty(Zo,"__esModule",{value:!0}),Zo.default=void 0;var t=e(E1()),n=e(Uv());const r={lang:Object.assign({placeholder:"日付を選択",yearPlaceholder:"年を選択",quarterPlaceholder:"四半期を選択",monthPlaceholder:"月を選択",weekPlaceholder:"週を選択",rangePlaceholder:["開始日付","終了日付"],rangeYearPlaceholder:["開始年","終了年"],rangeMonthPlaceholder:["開始月","終了月"],rangeQuarterPlaceholder:["開始四半期","終了四半期"],rangeWeekPlaceholder:["開始週","終了週"],shortWeekDays:["日","月","火","水","木","金","土"],shortMonths:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},t.default),timePickerLocale:Object.assign({},n.default)};return Zo.default=r,Zo}var Am;function M1(){if(Am)return Qo;Am=1;var e=Yt().default;Object.defineProperty(Qo,"__esModule",{value:!0}),Qo.default=void 0;var t=e(qv());return Qo.default=t.default,Qo}var Im;function j1(){if(Im)return Go;Im=1;var e=Yt().default;Object.defineProperty(Go,"__esModule",{value:!0}),Go.default=void 0;var t=e(P1()),n=e(M1()),r=e(qv()),s=e(Uv());const o="${label}は有効な${type}ではありません",i={locale:"ja",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"選んでください"},Table:{filterTitle:"フィルター",filterConfirm:"OK",filterReset:"リセット",filterEmptyText:"フィルターなし",filterCheckAll:"すべてを選択",filterSearchPlaceholder:"フィルターで検索",emptyText:"データなし",selectAll:"ページ単位で選択",selectInvert:"ページ単位で反転",selectNone:"クリア",selectionAll:"すべてを選択",sortTitle:"ソート",expand:"展開する",collapse:"折り畳む",triggerDesc:"クリックで降順にソート",triggerAsc:"クリックで昇順にソート",cancelSort:"ソートをキャンセル"},Tour:{Next:"次",Previous:"前の",Finish:"仕上げる"},Modal:{okText:"OK",cancelText:"キャンセル",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"キャンセル"},Transfer:{titles:["",""],searchPlaceholder:"ここを検索",itemUnit:"アイテム",itemsUnit:"アイテム",remove:"削除",selectCurrent:"現在のページを選択",removeCurrent:"現在のページを削除",selectAll:"ページ単位で選択",deselectAll:"すべてのデータの選択を解除する",removeAll:"ページ単位で削除",selectInvert:"ページ単位で反転"},Upload:{uploading:"アップロード中...",removeFile:"ファイルを削除",uploadError:"アップロードエラー",previewFile:"ファイルをプレビュー",downloadFile:"ダウンロードファイル"},Empty:{description:"データがありません"},Icon:{icon:"アイコン"},Text:{edit:"編集",copy:"コピー",copied:"コピーされました",expand:"拡大する",collapse:"崩壊"},Form:{optional:"(オプション)",defaultValidateMessages:{default:"${label}のフィールド検証エラー",required:"${label}を入力してください",enum:"${label}は[${enum}]のいずれかである必要があります",whitespace:"${label}は空白文字にすることはできません",date:{format:"${label}の日付形式は不正です",parse:"${label}は日付に変換できません",invalid:"${label}は不正な日付です"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}は${len}文字である必要があります",min:"${label}は${min}文字以上である必要があります",max:"${label}は${max}文字以下である必要があります",range:"${label}は${min}-${max}文字の範囲である必要があります"},number:{len:"${label}は${len}と等しい必要があります",min:"${label}の最小値は${min}です",max:"${label}の最大値は${max}です",range:"${label}は${min}-${max}の範囲である必要があります"},array:{len:"${label}は${len}である必要があります",min:"${label}の最小は${min}です",max:"${label}の最大は${max}です",range:"${label}の合計は${min}-${max}の範囲である必要があります"},pattern:{mismatch:"${label}はパターン${pattern}と一致しません"}}},Image:{preview:"プレビュー"},QRCode:{expired:"QRコードの有効期限が切れました",refresh:"リフレッシュ",scanned:"スキャン済み"},ColorPicker:{presetEmpty:"空の",transparent:"透明",singleColor:"単色",gradientColor:"グラデーション"}};return Go.default=i,Go}var Qc,Om;function R1(){return Om||(Om=1,Qc=j1()),Qc}var A1=R1();const I1=bs(A1);var ni={},ri={},$m;function O1(){if($m)return ri;$m=1,Object.defineProperty(ri,"__esModule",{value:!0}),ri.default=void 0;var e={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页",page_size:"页码"};return ri.default=e,ri}var si={},oi={},ii={},Lm;function $1(){if(Lm)return ii;Lm=1;var e=Yt().default;Object.defineProperty(ii,"__esModule",{value:!0}),ii.default=void 0;var t=e(ro()),n=so(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",week:"周",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪",yearFormat:"YYYY年",cellDateFormat:"D",monthBeforeYear:!1});return ii.default=r,ii}var ai={},Fm;function Hv(){if(Fm)return ai;Fm=1,Object.defineProperty(ai,"__esModule",{value:!0}),ai.default=void 0;const e={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};return ai.default=e,ai}var Dm;function Yv(){if(Dm)return oi;Dm=1;var e=Yt().default;Object.defineProperty(oi,"__esModule",{value:!0}),oi.default=void 0;var t=e($1()),n=e(Hv());const r={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},t.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="确定",oi.default=r,oi}var Nm;function L1(){if(Nm)return si;Nm=1;var e=Yt().default;Object.defineProperty(si,"__esModule",{value:!0}),si.default=void 0;var t=e(Yv());return si.default=t.default,si}var Bm;function F1(){if(Bm)return ni;Bm=1;var e=Yt().default;Object.defineProperty(ni,"__esModule",{value:!0}),ni.default=void 0;var t=e(O1()),n=e(L1()),r=e(Yv()),s=e(Hv());const o="${label}不是一个有效的${type}",i={locale:"zh-cn",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"请选择"},Table:{filterTitle:"筛选",filterConfirm:"确定",filterReset:"重置",filterEmptyText:"无筛选项",filterCheckAll:"全选",filterSearchPlaceholder:"在筛选项中搜索",emptyText:"暂无数据",selectAll:"全选当页",selectInvert:"反选当页",selectNone:"清空所有",selectionAll:"全选所有",sortTitle:"排序",expand:"展开行",collapse:"关闭行",triggerDesc:"点击降序",triggerAsc:"点击升序",cancelSort:"取消排序"},Modal:{okText:"确定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"结束导览"},Popconfirm:{cancelText:"取消",okText:"确定"},Transfer:{titles:["",""],searchPlaceholder:"请输入搜索内容",itemUnit:"项",itemsUnit:"项",remove:"删除",selectCurrent:"全选当页",removeCurrent:"删除当页",selectAll:"全选所有",deselectAll:"取消全选",removeAll:"删除全部",selectInvert:"反选当页"},Upload:{uploading:"文件上传中",removeFile:"删除文件",uploadError:"上传错误",previewFile:"预览文件",downloadFile:"下载文件"},Empty:{description:"暂无数据"},Icon:{icon:"图标"},Text:{edit:"编辑",copy:"复制",copied:"复制成功",expand:"展开",collapse:"收起"},Form:{optional:"(可选)",defaultValidateMessages:{default:"字段验证错误${label}",required:"请输入${label}",enum:"${label}必须是其中一个[${enum}]",whitespace:"${label}不能为空字符",date:{format:"${label}日期格式无效",parse:"${label}不能转换为日期",invalid:"${label}是一个无效日期"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}须为${len}个字符",min:"${label}最少${min}个字符",max:"${label}最多${max}个字符",range:"${label}须在${min}-${max}字符之间"},number:{len:"${label}必须等于${len}",min:"${label}最小值为${min}",max:"${label}最大值为${max}",range:"${label}须在${min}-${max}之间"},array:{len:"须为${len}个${label}",min:"最少${min}个${label}",max:"最多${max}个${label}",range:"${label}数量须在${min}-${max}之间"},pattern:{mismatch:"${label}与模式不匹配${pattern}"}}},Image:{preview:"预览"},QRCode:{expired:"二维码过期",refresh:"点击刷新",scanned:"已扫描"},ColorPicker:{presetEmpty:"暂无",transparent:"无色",singleColor:"单色",gradientColor:"渐变色"}};return ni.default=i,ni}var Zc,zm;function D1(){return zm||(zm=1,Zc=F1()),Zc}var N1=D1();const B1=bs(N1);var li={},ci={},Wm;function z1(){if(Wm)return ci;Wm=1,Object.defineProperty(ci,"__esModule",{value:!0}),ci.default=void 0;var e={items_per_page:"條/頁",jump_to:"跳至",jump_to_confirm:"確定",page:"頁",prev_page:"上一頁",next_page:"下一頁",prev_5:"向前 5 頁",next_5:"向後 5 頁",prev_3:"向前 3 頁",next_3:"向後 3 頁",page_size:"頁碼"};return ci.default=e,ci}var ui={},di={},fi={},Um;function W1(){if(Um)return fi;Um=1;var e=Yt().default;Object.defineProperty(fi,"__esModule",{value:!0}),fi.default=void 0;var t=e(ro()),n=so(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"zh_TW",today:"今天",now:"此刻",backToToday:"返回今天",ok:"確定",timeSelect:"選擇時間",dateSelect:"選擇日期",weekSelect:"選擇周",clear:"清除",week:"週",month:"月",year:"年",previousMonth:"上個月 (翻頁上鍵)",nextMonth:"下個月 (翻頁下鍵)",monthSelect:"選擇月份",yearSelect:"選擇年份",decadeSelect:"選擇年代",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"上一年 (Control鍵加左方向鍵)",nextYear:"下一年 (Control鍵加右方向鍵)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世紀",nextCentury:"下一世紀",cellDateFormat:"D",monthBeforeYear:!1});return fi.default=r,fi}var hi={},qm;function Xv(){if(qm)return hi;qm=1,Object.defineProperty(hi,"__esModule",{value:!0}),hi.default=void 0;const e={placeholder:"請選擇時間"};return hi.default=e,hi}var Hm;function Kv(){if(Hm)return di;Hm=1;var e=Yt().default;Object.defineProperty(di,"__esModule",{value:!0}),di.default=void 0;var t=e(W1()),n=e(Xv());const r={lang:Object.assign({placeholder:"請選擇日期",yearPlaceholder:"請選擇年份",quarterPlaceholder:"請選擇季度",monthPlaceholder:"請選擇月份",weekPlaceholder:"請選擇周",rangePlaceholder:["開始日期","結束日期"],rangeYearPlaceholder:["開始年份","結束年份"],rangeMonthPlaceholder:["開始月份","結束月份"],rangeQuarterPlaceholder:["開始季度","結束季度"],rangeWeekPlaceholder:["開始周","結束周"]},t.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="確 定",di.default=r,di}var Ym;function U1(){if(Ym)return ui;Ym=1;var e=Yt().default;Object.defineProperty(ui,"__esModule",{value:!0}),ui.default=void 0;var t=e(Kv());return ui.default=t.default,ui}var Xm;function q1(){if(Xm)return li;Xm=1;var e=Yt().default;Object.defineProperty(li,"__esModule",{value:!0}),li.default=void 0;var t=e(z1()),n=e(U1()),r=e(Kv()),s=e(Xv());const o="${label}不是一個有效的${type}",i={locale:"zh-tw",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"請選擇"},Table:{filterTitle:"篩選器",filterConfirm:"確定",filterReset:"重置",filterEmptyText:"無篩選項",filterCheckAll:"全選",filterSearchPlaceholder:"在篩選項中搜尋",emptyText:"暫無數據",selectAll:"全部選取",selectInvert:"反向選取",selectNone:"清空所有",selectionAll:"全選所有",sortTitle:"排序",expand:"展開行",collapse:"關閉行",triggerDesc:"點擊降序",triggerAsc:"點擊升序",cancelSort:"取消排序"},Modal:{okText:"確定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"結束導覽"},Popconfirm:{okText:"確定",cancelText:"取消"},Transfer:{titles:["",""],searchPlaceholder:"搜尋資料",itemUnit:"項目",itemsUnit:"項目",remove:"删除",selectCurrent:"全選當頁",removeCurrent:"删除當頁",selectAll:"全選所有",removeAll:"删除全部",selectInvert:"反選當頁"},Upload:{uploading:"正在上傳...",removeFile:"刪除檔案",uploadError:"上傳失敗",previewFile:"檔案預覽",downloadFile:"下载文件"},Empty:{description:"無此資料"},Icon:{icon:"圖標"},Text:{edit:"編輯",copy:"複製",copied:"複製成功",expand:"展開",collapse:"收起"},Form:{optional:"(可選)",defaultValidateMessages:{default:"字段驗證錯誤${label}",required:"請輸入${label}",enum:"${label}必須是其中一個[${enum}]",whitespace:"${label}不能為空字符",date:{format:"${label}日期格式無效",parse:"${label}不能轉換為日期",invalid:"${label}是一個無效日期"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}須為${len}個字符",min:"${label}最少${min}個字符",max:"${label}最多${max}個字符",range:"${label}須在${min}-${max}字符之間"},number:{len:"${label}必須等於${len}",min:"${label}最小值為${min}",max:"${label}最大值為${max}",range:"${label}須在${min}-${max}之間"},array:{len:"須為${len}個${label}",min:"最少${min}個${label}",max:"最多${max}個${label}",range:"${label}數量須在${min}-${max}之間"},pattern:{mismatch:"${label}與模式不匹配${pattern}"}}},Image:{preview:"預覽"},QRCode:{expired:"二維碼過期",refresh:"點擊刷新",scanned:"已掃描"},ColorPicker:{presetEmpty:"暫無",transparent:"透明",singleColor:"單色",gradientColor:"漸變色"}};return li.default=i,li}var eu,Km;function H1(){return Km||(Km=1,eu=q1()),eu}var Y1=H1();const X1=bs(Y1),Vm=e=>{switch(e){case"zh-CN":return B1;case"zh-TW":return X1;case"fr-FR":return v1;case"ja-JP":return I1;case"hi-IN":return T1;default:return f1}},Vv="lotus_vdi_safe_mode",Gm=()=>{try{return localStorage.getItem(Vv)==="true"}catch{return!1}},LI=e=>{try{localStorage.setItem(Vv,e.toString())}catch(t){console.error("[vdiSafeMode] Failed to persist setting:",t)}};async function K1(){const e=Hn.getInstance();for(const t of Object.keys(localStorage))if(t.startsWith("chat-model-options-cache-v1:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&Array.isArray(s.options)&&(await e.saveModelOptionsCache(n,s.options,s.timestamp),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-diff-collapse:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&typeof s.isExpanded=="boolean"&&(await e.saveDiffCollapse(n,{isExpanded:s.isExpanded,expandedFiles:s.expandedFiles||[]}),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-tool-collapse:")){const n=t.split(":");if(n.length>=3){const r=n[1],s=n.slice(2).join(":");try{const o=localStorage.getItem(t);if(o){const i=JSON.parse(o);i&&typeof i.isExpanded=="boolean"&&(await e.saveToolSessionCollapse(r,s,{isExpanded:i.isExpanded,expandedTools:i.expandedTools||[]}),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}}try{const t=localStorage.getItem("chat_input_reasoning_by_session_v1");if(t){const n=JSON.parse(t);for(const[r,s]of Object.entries(n))typeof s=="string"&&await e.saveInputReasoning(r,s);localStorage.removeItem("chat_input_reasoning_by_session_v1")}}catch{localStorage.removeItem("chat_input_reasoning_by_session_v1")}try{const t=localStorage.getItem("chat_input_reasoning_last_used_v1");t&&typeof t=="string"&&(await e.saveLastUsedReasoningEffort(t),localStorage.removeItem("chat_input_reasoning_last_used_v1"))}catch{localStorage.removeItem("chat_input_reasoning_last_used_v1")}for(const t of Object.keys(localStorage))if(t.startsWith("chat_scroll_anchor_v2:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&s.v===1&&typeof s.anchorId=="string"&&(await e.saveScrollAnchor(n,s),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}localStorage.removeItem("chat_scroll_anchors_v1")}const V1="copilot_ui_theme_v1",Yu={colorPrimary:"#0d9488",colorPrimaryHover:"#14b8a6",colorPrimaryActive:"#0f766e",colorInfo:"#0d9488",colorLink:"#0d9488",colorLinkHover:"#14b8a6",colorLinkActive:"#0f766e",colorSuccess:"#10b981",colorWarning:"#f59e0b",colorError:"#ef4444",colorText:"#0f172a",colorTextSecondary:"#475569",colorTextTertiary:"#64748b",colorTextDisabled:"#94a3b8",colorTextLightSolid:"#ffffff",colorBorder:"#d1e3e0",colorBorderSecondary:"#e2f0ee",colorFill:"#f0fdfa",colorFillSecondary:"#f7fdfb",colorFillTertiary:"rgba(255, 255, 255, 0.82)",colorFillQuaternary:"transparent",colorBgLayout:"#f0fdfa",colorBgContainer:"rgba(255, 255, 255, 0.82)",colorBgElevated:"rgba(255, 255, 255, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.16)",colorPrimaryBg:"#f0fdfa",colorPrimaryBgHover:"#ccfbf1",colorPrimaryBorder:"#99f6e4",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 12px 36px rgba(15, 118, 110, 0.10), 0 6px 18px rgba(15, 23, 42, 0.06)",boxShadowSecondary:"0 20px 48px rgba(15, 118, 110, 0.12), 0 8px 24px rgba(15, 23, 42, 0.08)"},Xu={colorPrimary:"#2dd4bf",colorPrimaryHover:"#5eead4",colorPrimaryActive:"#0d9488",colorInfo:"#2dd4bf",colorLink:"#2dd4bf",colorLinkHover:"#5eead4",colorLinkActive:"#0d9488",colorSuccess:"#34d399",colorWarning:"#fbbf24",colorError:"#f87171",colorText:"#e5edf8",colorTextSecondary:"#b7c4d6",colorTextTertiary:"#8d9bb0",colorTextDisabled:"#627085",colorBorder:"rgba(255, 255, 255, 0.10)",colorBorderSecondary:"rgba(255, 255, 255, 0.06)",colorFill:"#0c1a17",colorFillSecondary:"#091412",colorFillTertiary:"rgba(15, 23, 42, 0.74)",colorFillQuaternary:"transparent",colorBgLayout:"#070e0c",colorBgContainer:"rgba(11, 22, 18, 0.76)",colorBgElevated:"rgba(15, 30, 25, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.20)",colorPrimaryBg:"rgba(13, 148, 136, 0.14)",colorPrimaryBgHover:"rgba(13, 148, 136, 0.18)",colorPrimaryBorder:"rgba(45, 212, 191, 0.28)",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 16px 40px rgba(2, 6, 23, 0.42), 0 8px 20px rgba(15, 23, 42, 0.24)",boxShadowSecondary:"0 24px 56px rgba(2, 6, 23, 0.5), 0 10px 28px rgba(15, 23, 42, 0.28)"},Ku={Tag:{defaultBg:"rgba(13, 148, 136, 0.1)",defaultColor:"#0f766e"},Table:{bodySortBg:"rgba(13, 148, 136, 0.08)"}},Vu={Tag:{defaultBg:"rgba(45, 212, 191, 0.18)",defaultColor:"#ccfbf1"},Table:{bodySortBg:"rgba(45, 212, 191, 0.14)"}},Jm={...Yu,colorBgElevated:"#ffffff",colorBgSpotlight:"#0f172a",colorFillTertiary:"#f3f7f6"},Qm={...Xu,colorBgElevated:"#0f1b18",colorBgSpotlight:"#22332f",colorFillTertiary:"#162622"},Zm={...Ku,Menu:{popupBg:"#ffffff",itemBg:"transparent",itemHoverBg:"#f3f7f6",itemActiveBg:"#eef7f5",itemSelectedBg:"#e7f8f4",subMenuItemBg:"#ffffff",dangerItemActiveBg:"#fdecec",dangerItemSelectedBg:"#fdecec"},Select:{selectorBg:"#ffffff",clearBg:"#ffffff",optionActiveBg:"#f3f7f6",optionSelectedBg:"#e7f8f4"},Modal:{contentBg:"#ffffff",headerBg:"#ffffff",footerBg:"#ffffff"}},eg={...Vu,Menu:{popupBg:"#0f1b18",darkPopupBg:"#0f1b18",itemBg:"transparent",itemHoverBg:"#162622",itemActiveBg:"#162622",itemSelectedBg:"#12332d",subMenuItemBg:"#0f1b18",dangerItemActiveBg:"#3a161c",dangerItemSelectedBg:"#3a161c"},Select:{selectorBg:"#0f1b18",clearBg:"#0f1b18",optionActiveBg:"#162622",optionSelectedBg:"#12332d"},Modal:{contentBg:"#0f1b18",headerBg:"#0f1b18",footerBg:"#0f1b18"}};function G1(){const{t:e}=Ge(),t=cl(C=>C.themeMode),n=cl(C=>C.setThemeMode),[r,s]=y.useState(()=>dx()),[o,i]=y.useState(()=>Gm()),[l,u]=y.useState(null),[f,h]=y.useState(null),[m,b]=y.useState(0),[v,w]=y.useState(null),[S,k]=y.useState(!1);if(y.useEffect(()=>{localStorage.setItem(V1,t)},[t]),y.useEffect(()=>{localStorage.setItem(fx,r),hx(r)},[r]),y.useEffect(()=>{let C=!1;const j=Date.now(),A=async()=>{try{const O=Js.getInstance(),F=await O.getAccessStatus();if(C)return;if(h(null),w(F),F.requires_password&&!S){u(!1);return}const D=await O.getSetupStatus();if(C)return;u(D.is_complete)}catch(O){if(C)return;const F=Date.now()-j;if(F>=2e4){const q=xs(),I=O instanceof Error&&O.message.trim()?O.message:"Unknown error";h(e("app.backendNotReachable",{baseUrl:q,message:I}));return}const N=Math.min(500+Math.floor(F/2),2e3);setTimeout(()=>{C||A()},N)}};return A(),()=>{C=!0}},[S,m,e]),y.useEffect(()=>{document.body.setAttribute("data-theme",t)},[t]),y.useEffect(()=>{const C=()=>{const j=Gm();i(j),document.body.setAttribute("data-vdi-safe",j?"true":"false");const A=document.getElementById("root");A&&A.setAttribute("data-vdi-safe",j?"true":"false")};return C(),window.addEventListener("storage",C),window.addEventListener("lotus-vdi-safe-mode-change",C),()=>{window.removeEventListener("storage",C),window.removeEventListener("lotus-vdi-safe-mode-change",C)}},[]),y.useEffect(()=>{var j;const C=(j=window.__TAURI_INTERNALS__)==null?void 0:j.invoke;typeof C=="function"&&C("set_window_theme",{theme:t}).catch(A=>{console.warn("[App] Failed to sync native window theme:",A)})},[t]),y.useEffect(()=>{l&&fd().then(()=>hd()).catch(C=>{console.error("[App] Bootstrap error:",C)})},[l]),y.useEffect(()=>{const C=Hn.getInstance();C.cleanupStaleData(30).catch(A=>{console.warn("[App] Failed to cleanup stale storage data:",A)});const j=setInterval(()=>{C.cleanupStaleData(30).catch(()=>{})},24*60*60*1e3);return()=>clearInterval(j)},[]),y.useEffect(()=>{const C=setTimeout(()=>{K1().catch(j=>{console.warn("[App] Storage migration failed:",j)})},5e3);return()=>clearTimeout(C)},[]),v!=null&&v.requires_password&&!S)return a.jsx(Ef,{locale:Vm(r),theme:{token:t==="dark"?o?Qm:Xu:o?Jm:Yu,algorithm:t==="dark"?ut.darkAlgorithm:ut.defaultAlgorithm,components:t==="dark"?o?eg:Vu:o?Zm:Ku},children:a.jsx(Fn,{children:a.jsx(Bi,{name:"PasswordGatePage",children:a.jsx(n1,{verifyPassword:async C=>{await Js.getInstance().verifyAccessPassword(C)},onVerified:async()=>{k(!0),h(null),b(C=>C+1)}})})})});if(l===null)return f?a.jsxs("div",{style:{padding:40,textAlign:"center"},children:[a.jsx("div",{style:{marginBottom:12},children:f}),a.jsx(je,{type:"primary",onClick:()=>{h(null),w(null),u(null),b(C=>C+1)},children:e("app.retry")})]}):a.jsx("div",{style:{padding:40,textAlign:"center"},children:e("app.loading")});const P=l?a.jsx(QA,{themeMode:t,onThemeModeChange:n,locale:r,onLocaleChange:s}):a.jsx(e1,{}),T=t==="dark"?o?Qm:Xu:o?Jm:Yu,M=t==="dark"?o?eg:Vu:o?Zm:Ku;return a.jsx(Ef,{locale:Vm(r),theme:{token:T,algorithm:t==="dark"?ut.darkAlgorithm:ut.defaultAlgorithm,components:M},children:a.jsx(Fn,{children:a.jsx(Bi,{name:"App",children:a.jsx("div",{style:{position:"relative"},children:P})})})})}const FI=Object.freeze(Object.defineProperty({__proto__:null,default:G1},Symbol.toStringTag,{value:"Module"}));export{_k as $,$I as A,Di as B,xu as C,Nk as D,KC as E,Jg as F,Jn as G,$k as H,_c as I,du as J,ns as K,yd as L,yI as M,bI as N,_I as O,Ex as P,gc as Q,fs as R,Js as S,sy as T,bd as U,vI as V,CI as W,rI as X,Xk as Y,Xf as Z,Sk as _,St as a,uy as a0,Gm as a1,jk as a2,kI as a3,wI as a4,xI as a5,SI as a6,LI as a7,sI as a8,gI as a9,FI as aa,Pi as b,Ei as c,cl as d,gt as e,$v as f,Kn as g,fy as h,jl as i,Wt as j,Hg as k,NM as l,_s as m,OI as n,D_ as o,jo as p,Ri as q,Yk as r,Ki as s,Me as t,ae as u,eo as v,Hi as w,Pr as x,rt as y,Li as z};
|
|
224
|
+
`),truncated:he.truncated,toolCount:he.toolCount,workspace:he.workspace})).sort((ne,he)=>ne.filePath.localeCompare(he.filePath));return{totalAdded:Z,totalRemoved:pe,files:oe,changedTools:$}},[u]),P=gt(G=>G.inspector.widthPx),T=gt(G=>G.inspector.minWidthPx),j=gt(G=>G.inspector.maxWidthPx),C=gt(G=>G.setInspectorWidthPx),E=u.length>0,A=y.useMemo(()=>r||Jd({isEmbedded:t,leafCount:s,isMobileViewport:o}),[t,o,s,r]),O=A.inspectorMode,D=!!(i&&(h&&E||w||S||k)),F=!!i&&(O==="drawer"||D),[N,q]=y.useState(()=>O==="rail"),[I,Q]=y.useState(!1);return y.useEffect(()=>{q(O==="rail"?D:!1)},[D,O,i]),y.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Z=requestIdleCallback(()=>Q(!0));return()=>cancelIdleCallback(Z)}const G=window.setTimeout(()=>Q(!0),300);return()=>window.clearTimeout(G)},[]),y.useEffect(()=>{if(typeof window>"u"||!i)return;const G=Z=>{var oe;(((oe=Z.detail)==null?void 0:oe.sessionId)??null)===i&&q(!0)};return window.addEventListener(Su,G),()=>{window.removeEventListener(Su,G)}},[i]),a.jsx("div",{"data-session-workspace-shell":!0,"data-inspector-mode":O,"data-multi-pane":A.isMultiPane?"true":"false","data-inspector-toggle-placement":A.inspectorTogglePlacement,style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:a.jsx(Me,{style:{flex:1,minHeight:0},children:F&&O==="rail"&&N?a.jsx(vd,{layout:"horizontal",sizesPx:[0,P],minFirstPx:320,minSecondPx:T,style:{flex:1,minHeight:0},handleSizePx:4,onResizeEnd:([,G])=>{const Z=Math.max(T,Math.min(j,G));C(Z)},first:a.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:a.jsx(Xp,{sessionId:i,embedded:t,paneCount:s,auxReady:I,sessionDiffSummary:k,workspaceState:A,inspectorEligible:D,onRequestOpenInspector:()=>q(!0)})}),second:a.jsx(Vp,{sessionId:i,auxReady:I,mode:O,open:N,onOpenChange:q,showMessagesView:E,shouldShowTaskPanel:w,hasSubAgents:S,sessionDiffSummary:k})}):a.jsxs(a.Fragment,{children:[a.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:a.jsx(Xp,{sessionId:i,embedded:t,paneCount:s,auxReady:I,sessionDiffSummary:k,workspaceState:A,inspectorEligible:D,onRequestOpenInspector:()=>q(!0)})}),F?a.jsx(Vp,{sessionId:i,auxReady:I,mode:O,open:N,onOpenChange:q,showMessagesView:E,shouldShowTaskPanel:w,hasSubAgents:S,sessionDiffSummary:k}):null]})})})},qA=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>a.jsx(UA,{sessionId:e,embedded:t,paneCount:n,workspaceState:r}),HA=ht.lazy(()=>Jt(()=>import("./index-Btfph2VJ.js"),__vite__mapDeps([25,1,2,3,4,5,6,26]),import.meta.url).then(e=>({default:e.HomeDashboard}))),{useToken:YA}=ut,{Text:XA}=ft,KA=4,VA=({leafId:e})=>{var pe;const{token:t}=YA(),{t:n}=Ge(),r=gt($=>$.tree),s=gt($=>$.leafSessionIds),o=gt($=>$.activeLeafId),i=gt($=>$.setActiveLeafId),l=gt($=>$.splitLeaf),u=gt($=>$.closeLeaf),d=gt($=>$.setLeafSessionId),h=ae($=>$.selectSession),m=ae($=>$.addChat),b=ae($=>$.systemPrompts),v=ae($=>$.lastSelectedPromptId),w=s[e]??null,S=ae(ks(w)),k=y.useMemo(()=>Kn(r),[r]),P=k.length,T=Math.max(0,k.indexOf(e))+1,j=P<KA,C=wg("(max-width: 768px)"),E=y.useMemo(()=>Jd({isEmbedded:!0,leafCount:P,isMobileViewport:C}),[C,P]),A=E.isMultiPane,D=A||!!w,F=E.isMultiPane,N=o===e,q=((pe=S==null?void 0:S.title)==null?void 0:pe.trim())||n("chat.multiPane.selectSessionHint"),I=!C,Q=E.inspectorTogglePlacement==="pane_header"&&!!w,G=y.useCallback($=>{d(e,$),i(e),h($)},[e,h,i,d]),Z=y.useCallback(async()=>{var ne,he;const $=b.find(fe=>fe.id===v),oe=($==null?void 0:$.id)||(b.length>0?((ne=b.find(fe=>fe.id==="general_assistant"))==null?void 0:ne.id)||b[0].id:""),me=await m({title:n("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:oe,baseSystemPrompt:($==null?void 0:$.content)||(b.length>0?((he=b.find(fe=>fe.id==="general_assistant"))==null?void 0:he.content)||b[0].content:""),lastUsedEnhancedPrompt:null}});d(e,me),i(e)},[m,v,b,n,e,d,i]);return a.jsxs("div",{className:"chat-pane-shell",onMouseDownCapture:()=>{Xn("pane focus (mouse)",{leafId:e,sessionId:w,prevActiveLeafId:o}),i(e),w&&h(w)},onFocusCapture:()=>{Xn("pane focus (focus)",{leafId:e,sessionId:w,prevActiveLeafId:o}),i(e)},style:{height:"100%",minHeight:0,border:F?`1px solid ${N?t.colorPrimaryBorder:t.colorBorderSecondary}`:"none",borderRadius:F?t.borderRadiusLG:0,overflow:"hidden",background:t.colorBgContainer,position:"relative"},children:[I?a.jsx("div",{className:"chat-pane-shell__header",style:{padding:`${t.paddingXS}px ${t.paddingSM}px`,borderBottom:`1px solid ${t.colorBorderSecondary}`,background:F?t.colorBgElevated:t.colorBgContainer},children:a.jsxs(Me,{align:"center",justify:"space-between",gap:t.marginSM,style:{minWidth:0},children:[a.jsxs(Me,{align:"center",gap:t.marginXS,style:{minWidth:0,flex:1},children:[F?a.jsx(Je,{color:N?"blue":"default",style:{marginInlineEnd:0},children:n("chat.multiPane.paneLabel",{index:T,defaultValue:"Pane {{index}}"})}):null,a.jsx("div",{className:"chat-pane-shell__title",children:a.jsx(XA,{strong:!!w,type:w?void 0:"secondary",ellipsis:{tooltip:q},children:q})})]}),a.jsxs(Me,{className:"chat-pane-shell__actions",align:"center",gap:4,children:[a.jsx(je,{size:"small",type:"text",icon:a.jsx(cx,{}),disabled:!j,title:n("chat.multiPane.splitHorizontal"),"aria-label":n("chat.multiPane.splitHorizontal"),onClick:$=>{$.preventDefault(),$.stopPropagation(),Xn("pane split request",{leafId:e,layout:"horizontal"}),l(e,"horizontal");const oe=gt.getState(),me=oe.leafSessionIds[oe.activeLeafId]??null;me&&h(me)}}),a.jsx(je,{size:"small",type:"text",icon:a.jsx(ux,{}),disabled:!j,title:n("chat.multiPane.splitVertical"),"aria-label":n("chat.multiPane.splitVertical"),onClick:$=>{$.preventDefault(),$.stopPropagation(),Xn("pane split request",{leafId:e,layout:"vertical"}),l(e,"vertical");const oe=gt.getState(),me=oe.leafSessionIds[oe.activeLeafId]??null;me&&h(me)}}),a.jsx(je,{size:"small",type:"text",icon:a.jsx(xg,{}),disabled:!w,title:n("chat.multiPane.selectMessagesToExport"),"aria-label":n("chat.multiPane.selectMessagesToExport"),onClick:$=>{$.preventDefault(),$.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(vu,{detail:{sessionId:w}}))}}),Q?a.jsx(je,{size:"small",type:"text",icon:a.jsx(ad,{}),title:n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),"aria-label":n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),onClick:$=>{$.preventDefault(),$.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(Su,{detail:{sessionId:w}}))}}):null,a.jsx(je,{size:"small",type:"text",danger:!0,icon:a.jsx(Ss,{}),disabled:!D,title:n("chat.multiPane.closePane"),"aria-label":n("chat.multiPane.closePane"),onClick:$=>{$.preventDefault(),$.stopPropagation(),Xn("pane close request",{leafId:e}),A?u(e):d(e,null);const oe=gt.getState(),me=oe.leafSessionIds[oe.activeLeafId]??null;h(me)}})]})]})}):null,a.jsx("div",{className:"chat-pane-shell__content",children:w?a.jsx(zi,{name:"ChatView",children:a.jsx(qA,{sessionId:w,embedded:!0,paneCount:P,workspaceState:E})}):a.jsx(zi,{name:"HomeDashboard",children:a.jsx(ht.Suspense,{fallback:null,children:a.jsx(HA,{onOpenSession:G,onCreateSession:Z})})})})]})},GA=({node:e})=>{const t=gt(r=>r.splitSizesPx[e.id]??null),n=gt(r=>r.setSplitSizesPx);return a.jsx(vd,{layout:e.layout,sizesPx:t,defaultSplitRatio:.5,minFirstPx:240,minSecondPx:240,style:{height:"100%",minHeight:0},onResizeEnd:r=>{n(e.id,r)},first:a.jsx(Yu,{node:e.children[0]}),second:a.jsx(Yu,{node:e.children[1]})})},Yu=({node:e})=>e.type==="leaf"?a.jsx(VA,{leafId:e.id}):a.jsx(GA,{node:e}),Gp=()=>{const e=gt(h=>h.tree),t=gt(h=>h.leafSessionIds),n=gt(h=>h.activeLeafId),r=gt(h=>h.setActiveLeafId),s=gt(h=>h.setLeafSessionId),o=ae(h=>h.chats.map(m=>m.id).join(",")),i=y.useMemo(()=>new Set(o.split(",")),[o]),l=ae(h=>h.currentSessionId),u=y.useRef(!1),d=y.useMemo(()=>Kn(e),[e]);return y.useEffect(()=>{d.length!==0&&(d.includes(n)||r(d[0]))},[n,d,r]),y.useEffect(()=>{const h=new Set(Object.values(t).filter(Boolean));let m=!1;for(const b of h)if(!i.has(b)){m=!0;break}if(m)for(const[b,v]of Object.entries(t))v&&!i.has(v)&&s(b,null)},[i,t,s]),y.useEffect(()=>{if(!l||u.current)return;if(!Object.values(t).some(Boolean)){s(n,l),u.current=!0;return}u.current=!0},[n,l,t,s]),a.jsx("div",{style:{height:"100%",minHeight:0,padding:0},children:a.jsx(Yu,{node:e})})},JA=ht.lazy(()=>Jt(()=>import("./index-QAoCDEtf.js"),__vite__mapDeps([27,1,2,3,4,28,5,6,21,29]),import.meta.url).then(e=>({default:e.SystemSettingsPage}))),QA=ht.lazy(()=>Jt(()=>import("./index-Cgz3GQNf.js"),__vite__mapDeps([30,1,2,3,4,5,6,31]),import.meta.url).then(e=>({default:e.CommandPalette}))),ZA=ht.lazy(()=>Jt(()=>import("./FeatureGuide-BlFyQEho.js"),__vite__mapDeps([32,1,2,3,28]),import.meta.url).then(e=>({default:e.FeatureGuide}))),Jp="bodhi_open_provider_on_entry",e1="__LOTUS_COMMAND_PALETTE_FORCE_OPEN__",t1=()=>(w0(),null),n1=({themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r})=>{const s=Ei(I=>I.isOpen),o=Ei(I=>I.close),{t:i}=Ge(),{token:l}=ut.useToken(),u=yd(),d=y.useMemo(()=>ly()==="macos",[]);y.useEffect(()=>{localStorage.getItem(Jp)==="true"&&(localStorage.removeItem(Jp),Ei.getState().open("chat","provider"))},[]),J_(),y.useEffect(()=>{ih.clear(),ah()},[e]),y.useEffect(()=>{ih.clear(),ah()},[u]);const h=gt(I=>I.sidebar.collapsed),m=gt(I=>I.sidebar.widthPx),b=gt(I=>I.sidebar.minWidthPx),v=gt(I=>I.sidebar.maxWidthPx),w=gt(I=>I.setSidebarCollapsed),S=gt(I=>I.setSidebarWidthPx),k=18,P=0,j=!s&&h&&d?44:P,C=0,E=88,A=10,O="none",D=jl(),F="min(86vw, 360px)",[N,q]=y.useState(!1);return y.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Q=requestIdleCallback(()=>q(!0));return()=>cancelIdleCallback(Q)}const I=window.setTimeout(()=>q(!0),200);return()=>window.clearTimeout(I)},[]),y.useEffect(()=>{const I=Q=>{!((Q.metaKey||Q.ctrlKey)&&Q.key.toLowerCase()==="k")||N||(Q.preventDefault(),window[e1]=!0,q(!0))};return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)},[N]),a.jsxs(a.Fragment,{children:[a.jsx("a",{href:"#lotus-main-content",className:"lotus-skip-link",style:{position:"absolute",top:-9999,left:-9999,zIndex:1e4,padding:"8px 16px",background:"var(--lotus-main-surface, #fff)",color:"var(--ant-color-primary, #0d9488)",borderRadius:8,fontWeight:600,textDecoration:"none"},onFocus:I=>{I.currentTarget.style.top="8px",I.currentTarget.style.left="8px"},onBlur:I=>{I.currentTarget.style.top="-9999px",I.currentTarget.style.left="-9999px"},children:i("app.skipToContent","Skip to main content")}),N&&a.jsx(ht.Suspense,{fallback:null,children:a.jsx(QA,{})}),N&&a.jsx(ht.Suspense,{fallback:null,children:a.jsx(ZA,{disabled:s})}),N&&a.jsx(t1,{}),a.jsx(Ws,{style:{minHeight:"100vh",height:"100vh",overflow:"hidden",background:"transparent",display:"flex",flexDirection:"row",position:"relative"},children:a.jsxs("div",{style:{display:"flex",flex:1,minHeight:0,height:"100%",width:"100%",boxSizing:"border-box",paddingTop:j,paddingLeft:P,paddingRight:P,paddingBottom:P,background:"transparent"},children:[s?a.jsx(Ws,{className:"lotus-shell-panel lotus-settings-panel lotus-page-enter",style:{flex:1,display:"flex",flexDirection:"column",background:"var(--lotus-main-surface)",minHeight:0,borderRadius:`${k}px 0 0 ${k}px`,border:O,overflow:"hidden"},children:a.jsx(zi,{name:"SystemSettings",children:a.jsx(ht.Suspense,{fallback:a.jsx("div",{style:{padding:24,color:"var(--ant-color-text-secondary)"},children:i("app.loading","Loading…")}),children:a.jsx(JA,{themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r,onBack:o})})})}):a.jsx(a.Fragment,{children:D?a.jsxs(a.Fragment,{children:[a.jsx(Ml,{placement:"left",closable:!1,onClose:()=>w(!0),open:!h,width:F,styles:{body:{padding:0,background:"var(--lotus-sidebar-bg)"}},children:a.jsx(rh,{})}),a.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{flex:1,height:"100%",minHeight:0,borderRadius:`${k}px`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:a.jsx(Ws,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:a.jsx(Gp,{})})})]}):a.jsx(vd,{layout:"horizontal",style:{flex:1,minHeight:0,height:"100%",background:"transparent"},sizesPx:[h?C:m,0],minFirstPx:h?C:b,minSecondPx:320,disabled:h,handleSizePx:h?0:2,onResizeEnd:([I])=>{if(h)return;const Q=Math.max(b,Math.min(v,I));S(Q)},first:a.jsx("div",{className:"lotus-shell-panel lotus-shell-sidebar",style:{height:"100%",minHeight:0,borderRadius:`${k}px 0 0 ${k}px`,border:O,overflow:"hidden",background:"var(--lotus-sidebar-bg)"},children:a.jsx(rh,{})}),second:a.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{height:"100%",minHeight:0,borderRadius:h?`${k}px`:`0 ${k}px ${k}px 0`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:a.jsx(Ws,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:a.jsx(Gp,{})})})})}),!s&&h?a.jsx(je,{"data-testid":"show-sidebar",type:"text",size:"small",icon:a.jsx(dx,{}),onClick:()=>w(!1),title:i("layout.showSidebar"),"aria-label":i("layout.showSidebar"),className:"lotus-toolbar-icon lotus-floating-sidebar-toggle",style:{position:"absolute",top:D?8:A,left:D?8:E,zIndex:40,width:36,height:36,borderRadius:12,border:`1px solid ${l.colorBorderSecondary}`,background:l.colorBgElevated,boxShadow:l.boxShadowSecondary}}):null]})})]})},r1="bodhi_open_provider_on_entry",{Title:Qp,Paragraph:Zp}=ft,s1=()=>{const{t:e}=Ge(),[t,n]=y.useState(!1),[r,s]=y.useState(null),[o,i]=y.useState(!1),l=async u=>{try{s(null),i(!0),await Qs.getInstance().markSetupComplete(),u&&localStorage.setItem(r1,"true"),n(!0)}catch(d){console.error("Failed to complete setup:",d),s(e("setup.error.completeFailed"))}finally{i(!1)}};return t?a.jsxs("div",{"data-testid":"setup-complete",className:"setup-complete",children:[a.jsx(Qp,{level:2,children:e("setup.complete.title")}),a.jsx(Zp,{children:e("setup.complete.restartMessage")}),a.jsx(je,{"data-testid":"setup-restart",onClick:()=>window.location.reload(),children:e("setup.complete.restartMessage")})]}):a.jsx("div",{className:"setup-page",children:a.jsxs(nn,{className:"setup-page__card",children:[a.jsxs("div",{className:"setup-page__hero",children:[a.jsx("div",{className:"setup-page__hero-icon",children:a.jsx(Pf,{})}),a.jsx(Qp,{level:2,style:{marginTop:0},children:e("setup.welcome.heading")}),a.jsx(Zp,{type:"secondary",children:e("setup.welcome.description")})]}),a.jsx(ir,{message:e("setup.welcome.providerHint"),type:"info",showIcon:!0,style:{marginBottom:16}}),a.jsx(ir,{message:e("setup.welcome.proxyHint"),type:"info",showIcon:!0,style:{marginBottom:24}}),r?a.jsx(ir,{message:r,type:"error",showIcon:!0,style:{marginBottom:16}}):null,a.jsxs("div",{className:"setup-page__actions",children:[a.jsx(je,{"data-testid":"setup-configure-provider",icon:a.jsx(Tl,{}),onClick:()=>void l(!0),loading:o,children:e("setup.button.configureProvider")}),a.jsx(je,{"data-testid":"setup-get-started",type:"primary",icon:a.jsx(Pf,{}),onClick:()=>void l(!1),loading:o,children:e("setup.button.getStarted")})]})]})})},{Title:o1,Text:em}=ft,i1=({onVerified:e,verifyPassword:t})=>{const{t:n}=Ge(),[r,s]=y.useState(""),[o,i]=y.useState(null),[l,u]=y.useState(!1),d=async()=>{const h=r.trim();if(!h){i(n("app.passwordGate.validation.required"));return}u(!0),i(null);try{await t(h),await e(),s("")}catch(m){const b=m instanceof Error?m.message:n("app.passwordGate.validation.verifyFailed");i(b)}finally{u(!1)}};return a.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:a.jsx(nn,{style:{width:"100%",maxWidth:480},children:a.jsxs(Ue,{direction:"vertical",size:20,style:{width:"100%"},children:[a.jsxs("div",{children:[a.jsx(o1,{level:3,style:{marginBottom:8},children:n("app.passwordGate.title")}),a.jsx(em,{type:"secondary",children:n("app.passwordGate.description")})]}),o?a.jsx(ir,{type:"error",showIcon:!0,message:o}):null,a.jsxs(Ue,{direction:"vertical",size:8,style:{width:"100%"},children:[a.jsx(em,{strong:!0,children:n("app.passwordGate.passwordLabel")}),a.jsx(xs.Password,{value:r,autoFocus:!0,autoComplete:"current-password",onChange:h=>s(h.target.value),onPressEnter:()=>void d(),placeholder:n("app.passwordGate.passwordPlaceholder")})]}),a.jsx(je,{type:"primary",block:!0,loading:l,onClick:()=>void d(),children:n("app.passwordGate.submit")})]})})})};var Ao={},Hc={exports:{}},tm;function Yt(){return tm||(tm=1,function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(Hc)),Hc.exports}var Io={},nm;function a1(){if(nm)return Io;nm=1,Object.defineProperty(Io,"__esModule",{value:!0}),Io.default=void 0;var e={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"};return Io.default=e,Io}var Oo={},$o={},Lo={},Yc={exports:{}},Xc={exports:{}},Kc={exports:{}},Vc={exports:{}},rm;function l1(){return rm||(rm=1,function(e){var t=lg().default;function n(r,s){if(t(r)!="object"||!r)return r;var o=r[Symbol.toPrimitive];if(o!==void 0){var i=o.call(r,s||"default");if(t(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(r)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(Vc)),Vc.exports}var sm;function c1(){return sm||(sm=1,function(e){var t=lg().default,n=l1();function r(s){var o=n(s,"string");return t(o)=="symbol"?o:o+""}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(Kc)),Kc.exports}var om;function u1(){return om||(om=1,function(e){var t=c1();function n(r,s,o){return(s=t(s))in r?Object.defineProperty(r,s,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[s]=o,r}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(Xc)),Xc.exports}var im;function so(){return im||(im=1,function(e){var t=u1();function n(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(s);o&&(l=l.filter(function(u){return Object.getOwnPropertyDescriptor(s,u).enumerable})),i.push.apply(i,l)}return i}function r(s){for(var o=1;o<arguments.length;o++){var i=arguments[o]!=null?arguments[o]:{};o%2?n(Object(i),!0).forEach(function(l){t(s,l,i[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach(function(l){Object.defineProperty(s,l,Object.getOwnPropertyDescriptor(i,l))})}return s}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(Yc)),Yc.exports}var Fo={},am;function oo(){return am||(am=1,Object.defineProperty(Fo,"__esModule",{value:!0}),Fo.commonLocale=void 0,Fo.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}),Fo}var lm;function d1(){if(lm)return Lo;lm=1;var e=Yt().default;Object.defineProperty(Lo,"__esModule",{value:!0}),Lo.default=void 0;var t=e(so()),n=oo(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"OK",clear:"Clear",week:"Week",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"});return Lo.default=r,Lo}var Do={},cm;function Dv(){if(cm)return Do;cm=1,Object.defineProperty(Do,"__esModule",{value:!0}),Do.default=void 0;const e={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};return Do.default=e,Do}var um;function Nv(){if(um)return $o;um=1;var e=Yt().default;Object.defineProperty($o,"__esModule",{value:!0}),$o.default=void 0;var t=e(d1()),n=e(Dv());const r={lang:Object.assign({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},t.default),timePickerLocale:Object.assign({},n.default)};return $o.default=r,$o}var dm;function f1(){if(dm)return Oo;dm=1;var e=Yt().default;Object.defineProperty(Oo,"__esModule",{value:!0}),Oo.default=void 0;var t=e(Nv());return Oo.default=t.default,Oo}var fm;function h1(){if(fm)return Ao;fm=1;var e=Yt().default;Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.default=void 0;var t=e(a1()),n=e(f1()),r=e(Nv()),s=e(Dv());const o="${label} is not a valid ${type}",i={locale:"en",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckAll:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",deselectAll:"Deselect all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand",collapse:"Collapse"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"},ColorPicker:{presetEmpty:"Empty",transparent:"Transparent",singleColor:"Single",gradientColor:"Gradient"}};return Ao.default=i,Ao}var Gc,hm;function p1(){return hm||(hm=1,Gc=h1()),Gc}var m1=p1();const g1=vs(m1);var No={},Bo={},pm;function y1(){if(pm)return Bo;pm=1,Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.default=void 0;var e={items_per_page:"/ page",jump_to:"Aller à",jump_to_confirm:"confirmer",page:"Page",prev_page:"Page précédente",next_page:"Page suivante",prev_5:"5 Pages précédentes",next_5:"5 Pages suivantes",prev_3:"3 Pages précédentes",next_3:"3 Pages suivantes",page_size:"taille de la page"};return Bo.default=e,Bo}var zo={},Wo={},Uo={},mm;function b1(){if(mm)return Uo;mm=1;var e=Yt().default;Object.defineProperty(Uo,"__esModule",{value:!0}),Uo.default=void 0;var t=e(so()),n=oo(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"fr_FR",today:"Aujourd'hui",now:"Maintenant",backToToday:"Aujourd'hui",ok:"OK",clear:"Rétablir",week:"Semaine",month:"Mois",year:"Année",timeSelect:"Sélectionner l'heure",dateSelect:"Sélectionner la date",monthSelect:"Choisissez un mois",yearSelect:"Choisissez une année",decadeSelect:"Choisissez une décennie",dateFormat:"DD/MM/YYYY",dayFormat:"DD",dateTimeFormat:"DD/MM/YYYY HH:mm:ss",previousMonth:"Mois précédent (PageUp)",nextMonth:"Mois suivant (PageDown)",previousYear:"Année précédente (Ctrl + gauche)",nextYear:"Année prochaine (Ctrl + droite)",previousDecade:"Décennie précédente",nextDecade:"Décennie suivante",previousCentury:"Siècle précédent",nextCentury:"Siècle suivant"});return Uo.default=r,Uo}var qo={},gm;function Bv(){if(gm)return qo;gm=1,Object.defineProperty(qo,"__esModule",{value:!0}),qo.default=void 0;const e={placeholder:"Sélectionner l'heure",rangePlaceholder:["Heure de début","Heure de fin"]};return qo.default=e,qo}var ym;function zv(){if(ym)return Wo;ym=1;var e=Yt().default;Object.defineProperty(Wo,"__esModule",{value:!0}),Wo.default=void 0;var t=e(b1()),n=e(Bv());const r={lang:Object.assign({placeholder:"Sélectionner une date",yearPlaceholder:"Sélectionner une année",quarterPlaceholder:"Sélectionner un trimestre",monthPlaceholder:"Sélectionner un mois",weekPlaceholder:"Sélectionner une semaine",rangePlaceholder:["Date de début","Date de fin"],rangeYearPlaceholder:["Année de début","Année de fin"],rangeMonthPlaceholder:["Mois de début","Mois de fin"],rangeWeekPlaceholder:["Semaine de début","Semaine de fin"]},t.default),timePickerLocale:Object.assign({},n.default)};return Wo.default=r,Wo}var bm;function v1(){if(bm)return zo;bm=1;var e=Yt().default;Object.defineProperty(zo,"__esModule",{value:!0}),zo.default=void 0;var t=e(zv());return zo.default=t.default,zo}var vm;function S1(){if(vm)return No;vm=1;var e=Yt().default;Object.defineProperty(No,"__esModule",{value:!0}),No.default=void 0;var t=e(y1()),n=e(v1()),r=e(zv()),s=e(Bv());const o="La valeur du champ ${label} n'est pas valide pour le type ${type}",i={locale:"fr",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,Table:{filterTitle:"Filtrer",filterConfirm:"OK",filterReset:"Réinitialiser",filterEmptyText:"Aucun filtre",filterCheckAll:"Tout sélectionner",filterSearchPlaceholder:"Chercher dans les filtres",emptyText:"Aucune donnée",selectAll:"Sélectionner la page actuelle",selectInvert:"Inverser la sélection de la page actuelle",selectNone:"Désélectionner toutes les données",selectionAll:"Sélectionner toutes les données",sortTitle:"Trier",expand:"Développer la ligne",collapse:"Réduire la ligne",triggerDesc:"Trier par ordre décroissant",triggerAsc:"Trier par ordre croissant",cancelSort:"Annuler le tri"},Tour:{Next:"Étape suivante",Previous:"Étape précédente",Finish:"Fin de la visite guidée"},Modal:{okText:"OK",cancelText:"Annuler",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Annuler"},Transfer:{titles:["",""],searchPlaceholder:"Rechercher",itemUnit:"élément",itemsUnit:"éléments",remove:"Désélectionner",selectCurrent:"Sélectionner la page actuelle",removeCurrent:"Désélectionner la page actuelle",selectAll:"Sélectionner toutes les données",removeAll:"Désélectionner toutes les données",selectInvert:"Inverser la sélection de la page actuelle"},Upload:{uploading:"Téléchargement...",removeFile:"Effacer le fichier",uploadError:"Erreur de téléchargement",previewFile:"Fichier de prévisualisation",downloadFile:"Télécharger un fichier"},Empty:{description:"Aucune donnée"},Icon:{icon:"icône"},Text:{edit:"Éditer",copy:"Copier",copied:"Copie effectuée",expand:"Développer"},Form:{optional:"(optionnel)",defaultValidateMessages:{default:"Erreur de validation pour le champ ${label}",required:"Le champ ${label} est obligatoire",enum:"La valeur du champ ${label} doit être parmi [${enum}]",whitespace:"La valeur du champ ${label} ne peut pas être vide",date:{format:"La valeur du champ ${label} n'est pas au format date",parse:"La valeur du champ ${label} ne peut pas être convertie vers une date",invalid:"La valeur du champ ${label} n'est pas une date valide"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"La taille du champ ${label} doit être de ${len} caractères",min:"La taille du champ ${label} doit être au minimum de ${min} caractères",max:"La taille du champ ${label} doit être au maximum de ${max} caractères",range:"La taille du champ ${label} doit être entre ${min} et ${max} caractères"},number:{len:"La valeur du champ ${label} doit être égale à ${len}",min:"La valeur du champ ${label} doit être plus grande que ${min}",max:"La valeur du champ ${label} doit être plus petit que ${max}",range:"La valeur du champ ${label} doit être entre ${min} et ${max}"},array:{len:"La taille du tableau ${label} doit être de ${len}",min:"La taille du tableau ${label} doit être au minimum de ${min}",max:"La taille du tableau ${label} doit être au maximum de ${max}",range:"La taille du tableau ${label} doit être entre ${min}-${max}"},pattern:{mismatch:"La valeur du champ ${label} ne correspond pas au modèle ${pattern}"}}},Image:{preview:"Aperçu"}};return No.default=i,No}var Jc,Sm;function x1(){return Sm||(Sm=1,Jc=S1()),Jc}var w1=x1();const _1=vs(w1);var Ho={},Yo={},xm;function k1(){if(xm)return Yo;xm=1,Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.default=void 0;var e={items_per_page:"/ पृष्ठ",jump_to:"इस पर चलें",jump_to_confirm:"पुष्टि करें",page:"",prev_page:"पिछला पृष्ठ",next_page:"अगला पृष्ठ",prev_5:"पिछले 5 पृष्ठ",next_5:"अगले 5 पृष्ठ",prev_3:"पिछले 3 पृष्ठ",next_3:"अगले 3 पेज",page_size:"Page Size"};return Yo.default=e,Yo}var Xo={},Ko={},Vo={},wm;function C1(){if(wm)return Vo;wm=1;var e=Yt().default;Object.defineProperty(Vo,"__esModule",{value:!0}),Vo.default=void 0;var t=e(so()),n=oo(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"hi_IN",today:"आज",now:"अभी",backToToday:"आज तक",ok:"ठीक",clear:"स्पष्ट",week:"सप्ताह",month:"महीना",year:"साल",timeSelect:"समय का चयन करें",dateSelect:"तारीख़ चुनें",weekSelect:"एक सप्ताह चुनें",monthSelect:"एक महीना चुनें",yearSelect:"एक वर्ष चुनें",decadeSelect:"एक दशक चुनें",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"पिछला महीना (पेजअप)",nextMonth:"अगले महीने (पेजडाउन)",previousYear:"पिछले साल (Ctrl + बाएं)",nextYear:"अगले साल (Ctrl + दाहिना)",previousDecade:"पिछला दशक",nextDecade:"अगले दशक",previousCentury:"पीछ्ली शताब्दी",nextCentury:"अगली सदी"});return Vo.default=r,Vo}var Go={},_m;function Wv(){if(_m)return Go;_m=1,Object.defineProperty(Go,"__esModule",{value:!0}),Go.default=void 0;const e={placeholder:"समय का चयन करें",rangePlaceholder:["आरंभिक समय","अंत समय"]};return Go.default=e,Go}var km;function Uv(){if(km)return Ko;km=1;var e=Yt().default;Object.defineProperty(Ko,"__esModule",{value:!0}),Ko.default=void 0;var t=e(C1()),n=e(Wv());const r={lang:Object.assign({placeholder:"तारीख़ चुनें",yearPlaceholder:"वर्ष चुनें",quarterPlaceholder:"तिमाही चुनें",monthPlaceholder:"महीना चुनिए",weekPlaceholder:"सप्ताह चुनें",rangePlaceholder:["प्रारंभ तिथि","समाप्ति तिथि"],rangeYearPlaceholder:["आरंभिक वर्ष","अंत वर्ष"],rangeMonthPlaceholder:["आरंभिक महीना","अंत महीना"],rangeWeekPlaceholder:["आरंभिक सप्ताह","अंत सप्ताह"]},t.default),timePickerLocale:Object.assign({},n.default)};return Ko.default=r,Ko}var Cm;function T1(){if(Cm)return Xo;Cm=1;var e=Yt().default;Object.defineProperty(Xo,"__esModule",{value:!0}),Xo.default=void 0;var t=e(Uv());return Xo.default=t.default,Xo}var Tm;function P1(){if(Tm)return Ho;Tm=1;var e=Yt().default;Object.defineProperty(Ho,"__esModule",{value:!0}),Ho.default=void 0;var t=e(k1()),n=e(T1()),r=e(Uv()),s=e(Wv());const o="${label} मान्य ${type} नहीं है",i={locale:"hi",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"कृपया चुनें"},Table:{filterTitle:"सूची बंद करें",filterConfirm:"अच्छी तरह से",filterReset:"रीसेट",filterEmptyText:"कोई फ़िल्टर नहीं",emptyText:"कोई जानकारी नहीं",selectAll:"वर्तमान पृष्ठ का चयन करें",selectInvert:"वर्तमान पृष्ठ घुमाएं",selectNone:"सभी डेटा साफ़ करें",selectionAll:"सभी डेटा का चयन करें",sortTitle:"द्वारा क्रमबद्ध करें",expand:"पंक्ति का विस्तार करें",collapse:"पंक्ति संक्षिप्त करें",triggerDesc:"अवरोही क्रमित करने के लिए क्लिक करें",triggerAsc:"आरोही क्रमित करने के लिए क्लिक करें",cancelSort:"छँटाई रद्द करने के लिए क्लिक करें"},Modal:{okText:"अच्छी तरह से",cancelText:"रद्द करना",justOkText:"अच्छी तरह से"},Popconfirm:{okText:"अच्छी तरह से",cancelText:"रद्द करना"},Transfer:{titles:["",""],searchPlaceholder:"यहां खोजें",itemUnit:"तत्त्व",itemsUnit:"विषय-वस्तु",remove:"हटाए",selectCurrent:"वर्तमान पृष्ठ का चयन करें",removeCurrent:"वर्तमान पृष्ठ हटाएं",selectAll:"सभी डेटा का चयन करें",removeAll:"सभी डेटा हटाएं",selectInvert:"वर्तमान पृष्ठ को उल्टा करें"},Upload:{uploading:"अपलोड हो रहा...",removeFile:"फ़ाइल निकालें",uploadError:"अपलोड में त्रुटि",previewFile:"फ़ाइल पूर्वावलोकन",downloadFile:"फ़ाइल डाउनलोड करें"},Empty:{description:"कोई आकड़ा उपलब्ध नहीं है"},Icon:{icon:"आइकन"},Text:{edit:"संपादित करें",copy:"प्रतिलिपि",copied:"कॉपी किया गया",expand:"विस्तार"},Form:{optional:"(ऐच्छिक)",defaultValidateMessages:{default:"${label} के लिए फील्ड सत्यापन त्रुटि",required:"कृपया ${label} दर्ज करें",enum:"${label} [${enum}] में से एक होना चाहिए",whitespace:"${label} एक खाली अक्षर नहीं हो सकता",date:{format:"${label} तिथि प्रारूप अमान्य है",parse:"${label} को तारीख में नहीं बदला जा सकता",invalid:"${label} एक अमान्य तिथि है"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label} ${len} अक्षर का होना चाहिए",min:"${label} कम से कम ${min} वर्णों का होना चाहिए",max:"${label} अधिकतम ${max} वर्णों का होना चाहिए",range:"${label} ${min}-${max} वर्णों के बीच होना चाहिए"},number:{len:"${label} ${len} के बराबर होना चाहिए",min:"${label} कम से कम ${min} होना चाहिए",max:"${label} अधिकतम ${max} होना चाहिए",range:"${label} ${min}-${max} के बीच होना चाहिए"},array:{len:"${len} ${label} होना चाहिए",min:"कम से कम ${min} ${label}",max:"ज्यादा से ज्यादा ${max} ${label}",range:"${label} की राशि ${min}-${max} के बीच होनी चाहिए"},pattern:{mismatch:"${label} ${pattern} पैटर्न से मेल नहीं खाता"}}},Image:{preview:"पूर्वावलोकन"}};return Ho.default=i,Ho}var Qc,Pm;function M1(){return Pm||(Pm=1,Qc=P1()),Qc}var E1=M1();const j1=vs(E1);var Jo={},Qo={},Mm;function R1(){if(Mm)return Qo;Mm=1,Object.defineProperty(Qo,"__esModule",{value:!0}),Qo.default=void 0;var e={items_per_page:"件 / ページ",jump_to:"移動",jump_to_confirm:"確認する",page:"ページ",prev_page:"前のページ",next_page:"次のページ",prev_5:"前 5ページ",next_5:"次 5ページ",prev_3:"前 3ページ",next_3:"次 3ページ",page_size:"ページサイズ"};return Qo.default=e,Qo}var Zo={},ei={},ti={},Em;function A1(){if(Em)return ti;Em=1;var e=Yt().default;Object.defineProperty(ti,"__esModule",{value:!0}),ti.default=void 0;var t=e(so()),n=oo(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"ja_JP",today:"今日",now:"現在時刻",backToToday:"今日に戻る",ok:"確定",timeSelect:"時間を選択",dateSelect:"日時を選択",weekSelect:"週を選択",clear:"クリア",week:"週",month:"月",year:"年",previousMonth:"前月 (ページアップキー)",nextMonth:"翌月 (ページダウンキー)",monthSelect:"月を選択",yearSelect:"年を選択",decadeSelect:"年代を選択",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"前年 (Controlを押しながら左キー)",nextYear:"翌年 (Controlを押しながら右キー)",previousDecade:"前の年代",nextDecade:"次の年代",previousCentury:"前の世紀",nextCentury:"次の世紀",monthBeforeYear:!1});return ti.default=r,ti}var ni={},jm;function qv(){if(jm)return ni;jm=1,Object.defineProperty(ni,"__esModule",{value:!0}),ni.default=void 0;const e={placeholder:"時間を選択",rangePlaceholder:["開始時間","終了時間"]};return ni.default=e,ni}var Rm;function Hv(){if(Rm)return ei;Rm=1;var e=Yt().default;Object.defineProperty(ei,"__esModule",{value:!0}),ei.default=void 0;var t=e(A1()),n=e(qv());const r={lang:Object.assign({placeholder:"日付を選択",yearPlaceholder:"年を選択",quarterPlaceholder:"四半期を選択",monthPlaceholder:"月を選択",weekPlaceholder:"週を選択",rangePlaceholder:["開始日付","終了日付"],rangeYearPlaceholder:["開始年","終了年"],rangeMonthPlaceholder:["開始月","終了月"],rangeQuarterPlaceholder:["開始四半期","終了四半期"],rangeWeekPlaceholder:["開始週","終了週"],shortWeekDays:["日","月","火","水","木","金","土"],shortMonths:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},t.default),timePickerLocale:Object.assign({},n.default)};return ei.default=r,ei}var Am;function I1(){if(Am)return Zo;Am=1;var e=Yt().default;Object.defineProperty(Zo,"__esModule",{value:!0}),Zo.default=void 0;var t=e(Hv());return Zo.default=t.default,Zo}var Im;function O1(){if(Im)return Jo;Im=1;var e=Yt().default;Object.defineProperty(Jo,"__esModule",{value:!0}),Jo.default=void 0;var t=e(R1()),n=e(I1()),r=e(Hv()),s=e(qv());const o="${label}は有効な${type}ではありません",i={locale:"ja",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"選んでください"},Table:{filterTitle:"フィルター",filterConfirm:"OK",filterReset:"リセット",filterEmptyText:"フィルターなし",filterCheckAll:"すべてを選択",filterSearchPlaceholder:"フィルターで検索",emptyText:"データなし",selectAll:"ページ単位で選択",selectInvert:"ページ単位で反転",selectNone:"クリア",selectionAll:"すべてを選択",sortTitle:"ソート",expand:"展開する",collapse:"折り畳む",triggerDesc:"クリックで降順にソート",triggerAsc:"クリックで昇順にソート",cancelSort:"ソートをキャンセル"},Tour:{Next:"次",Previous:"前の",Finish:"仕上げる"},Modal:{okText:"OK",cancelText:"キャンセル",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"キャンセル"},Transfer:{titles:["",""],searchPlaceholder:"ここを検索",itemUnit:"アイテム",itemsUnit:"アイテム",remove:"削除",selectCurrent:"現在のページを選択",removeCurrent:"現在のページを削除",selectAll:"ページ単位で選択",deselectAll:"すべてのデータの選択を解除する",removeAll:"ページ単位で削除",selectInvert:"ページ単位で反転"},Upload:{uploading:"アップロード中...",removeFile:"ファイルを削除",uploadError:"アップロードエラー",previewFile:"ファイルをプレビュー",downloadFile:"ダウンロードファイル"},Empty:{description:"データがありません"},Icon:{icon:"アイコン"},Text:{edit:"編集",copy:"コピー",copied:"コピーされました",expand:"拡大する",collapse:"崩壊"},Form:{optional:"(オプション)",defaultValidateMessages:{default:"${label}のフィールド検証エラー",required:"${label}を入力してください",enum:"${label}は[${enum}]のいずれかである必要があります",whitespace:"${label}は空白文字にすることはできません",date:{format:"${label}の日付形式は不正です",parse:"${label}は日付に変換できません",invalid:"${label}は不正な日付です"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}は${len}文字である必要があります",min:"${label}は${min}文字以上である必要があります",max:"${label}は${max}文字以下である必要があります",range:"${label}は${min}-${max}文字の範囲である必要があります"},number:{len:"${label}は${len}と等しい必要があります",min:"${label}の最小値は${min}です",max:"${label}の最大値は${max}です",range:"${label}は${min}-${max}の範囲である必要があります"},array:{len:"${label}は${len}である必要があります",min:"${label}の最小は${min}です",max:"${label}の最大は${max}です",range:"${label}の合計は${min}-${max}の範囲である必要があります"},pattern:{mismatch:"${label}はパターン${pattern}と一致しません"}}},Image:{preview:"プレビュー"},QRCode:{expired:"QRコードの有効期限が切れました",refresh:"リフレッシュ",scanned:"スキャン済み"},ColorPicker:{presetEmpty:"空の",transparent:"透明",singleColor:"単色",gradientColor:"グラデーション"}};return Jo.default=i,Jo}var Zc,Om;function $1(){return Om||(Om=1,Zc=O1()),Zc}var L1=$1();const F1=vs(L1);var ri={},si={},$m;function D1(){if($m)return si;$m=1,Object.defineProperty(si,"__esModule",{value:!0}),si.default=void 0;var e={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页",page_size:"页码"};return si.default=e,si}var oi={},ii={},ai={},Lm;function N1(){if(Lm)return ai;Lm=1;var e=Yt().default;Object.defineProperty(ai,"__esModule",{value:!0}),ai.default=void 0;var t=e(so()),n=oo(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",week:"周",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪",yearFormat:"YYYY年",cellDateFormat:"D",monthBeforeYear:!1});return ai.default=r,ai}var li={},Fm;function Yv(){if(Fm)return li;Fm=1,Object.defineProperty(li,"__esModule",{value:!0}),li.default=void 0;const e={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};return li.default=e,li}var Dm;function Xv(){if(Dm)return ii;Dm=1;var e=Yt().default;Object.defineProperty(ii,"__esModule",{value:!0}),ii.default=void 0;var t=e(N1()),n=e(Yv());const r={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},t.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="确定",ii.default=r,ii}var Nm;function B1(){if(Nm)return oi;Nm=1;var e=Yt().default;Object.defineProperty(oi,"__esModule",{value:!0}),oi.default=void 0;var t=e(Xv());return oi.default=t.default,oi}var Bm;function z1(){if(Bm)return ri;Bm=1;var e=Yt().default;Object.defineProperty(ri,"__esModule",{value:!0}),ri.default=void 0;var t=e(D1()),n=e(B1()),r=e(Xv()),s=e(Yv());const o="${label}不是一个有效的${type}",i={locale:"zh-cn",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"请选择"},Table:{filterTitle:"筛选",filterConfirm:"确定",filterReset:"重置",filterEmptyText:"无筛选项",filterCheckAll:"全选",filterSearchPlaceholder:"在筛选项中搜索",emptyText:"暂无数据",selectAll:"全选当页",selectInvert:"反选当页",selectNone:"清空所有",selectionAll:"全选所有",sortTitle:"排序",expand:"展开行",collapse:"关闭行",triggerDesc:"点击降序",triggerAsc:"点击升序",cancelSort:"取消排序"},Modal:{okText:"确定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"结束导览"},Popconfirm:{cancelText:"取消",okText:"确定"},Transfer:{titles:["",""],searchPlaceholder:"请输入搜索内容",itemUnit:"项",itemsUnit:"项",remove:"删除",selectCurrent:"全选当页",removeCurrent:"删除当页",selectAll:"全选所有",deselectAll:"取消全选",removeAll:"删除全部",selectInvert:"反选当页"},Upload:{uploading:"文件上传中",removeFile:"删除文件",uploadError:"上传错误",previewFile:"预览文件",downloadFile:"下载文件"},Empty:{description:"暂无数据"},Icon:{icon:"图标"},Text:{edit:"编辑",copy:"复制",copied:"复制成功",expand:"展开",collapse:"收起"},Form:{optional:"(可选)",defaultValidateMessages:{default:"字段验证错误${label}",required:"请输入${label}",enum:"${label}必须是其中一个[${enum}]",whitespace:"${label}不能为空字符",date:{format:"${label}日期格式无效",parse:"${label}不能转换为日期",invalid:"${label}是一个无效日期"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}须为${len}个字符",min:"${label}最少${min}个字符",max:"${label}最多${max}个字符",range:"${label}须在${min}-${max}字符之间"},number:{len:"${label}必须等于${len}",min:"${label}最小值为${min}",max:"${label}最大值为${max}",range:"${label}须在${min}-${max}之间"},array:{len:"须为${len}个${label}",min:"最少${min}个${label}",max:"最多${max}个${label}",range:"${label}数量须在${min}-${max}之间"},pattern:{mismatch:"${label}与模式不匹配${pattern}"}}},Image:{preview:"预览"},QRCode:{expired:"二维码过期",refresh:"点击刷新",scanned:"已扫描"},ColorPicker:{presetEmpty:"暂无",transparent:"无色",singleColor:"单色",gradientColor:"渐变色"}};return ri.default=i,ri}var eu,zm;function W1(){return zm||(zm=1,eu=z1()),eu}var U1=W1();const q1=vs(U1);var ci={},ui={},Wm;function H1(){if(Wm)return ui;Wm=1,Object.defineProperty(ui,"__esModule",{value:!0}),ui.default=void 0;var e={items_per_page:"條/頁",jump_to:"跳至",jump_to_confirm:"確定",page:"頁",prev_page:"上一頁",next_page:"下一頁",prev_5:"向前 5 頁",next_5:"向後 5 頁",prev_3:"向前 3 頁",next_3:"向後 3 頁",page_size:"頁碼"};return ui.default=e,ui}var di={},fi={},hi={},Um;function Y1(){if(Um)return hi;Um=1;var e=Yt().default;Object.defineProperty(hi,"__esModule",{value:!0}),hi.default=void 0;var t=e(so()),n=oo(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"zh_TW",today:"今天",now:"此刻",backToToday:"返回今天",ok:"確定",timeSelect:"選擇時間",dateSelect:"選擇日期",weekSelect:"選擇周",clear:"清除",week:"週",month:"月",year:"年",previousMonth:"上個月 (翻頁上鍵)",nextMonth:"下個月 (翻頁下鍵)",monthSelect:"選擇月份",yearSelect:"選擇年份",decadeSelect:"選擇年代",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"上一年 (Control鍵加左方向鍵)",nextYear:"下一年 (Control鍵加右方向鍵)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世紀",nextCentury:"下一世紀",cellDateFormat:"D",monthBeforeYear:!1});return hi.default=r,hi}var pi={},qm;function Kv(){if(qm)return pi;qm=1,Object.defineProperty(pi,"__esModule",{value:!0}),pi.default=void 0;const e={placeholder:"請選擇時間"};return pi.default=e,pi}var Hm;function Vv(){if(Hm)return fi;Hm=1;var e=Yt().default;Object.defineProperty(fi,"__esModule",{value:!0}),fi.default=void 0;var t=e(Y1()),n=e(Kv());const r={lang:Object.assign({placeholder:"請選擇日期",yearPlaceholder:"請選擇年份",quarterPlaceholder:"請選擇季度",monthPlaceholder:"請選擇月份",weekPlaceholder:"請選擇周",rangePlaceholder:["開始日期","結束日期"],rangeYearPlaceholder:["開始年份","結束年份"],rangeMonthPlaceholder:["開始月份","結束月份"],rangeQuarterPlaceholder:["開始季度","結束季度"],rangeWeekPlaceholder:["開始周","結束周"]},t.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="確 定",fi.default=r,fi}var Ym;function X1(){if(Ym)return di;Ym=1;var e=Yt().default;Object.defineProperty(di,"__esModule",{value:!0}),di.default=void 0;var t=e(Vv());return di.default=t.default,di}var Xm;function K1(){if(Xm)return ci;Xm=1;var e=Yt().default;Object.defineProperty(ci,"__esModule",{value:!0}),ci.default=void 0;var t=e(H1()),n=e(X1()),r=e(Vv()),s=e(Kv());const o="${label}不是一個有效的${type}",i={locale:"zh-tw",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"請選擇"},Table:{filterTitle:"篩選器",filterConfirm:"確定",filterReset:"重置",filterEmptyText:"無篩選項",filterCheckAll:"全選",filterSearchPlaceholder:"在篩選項中搜尋",emptyText:"暫無數據",selectAll:"全部選取",selectInvert:"反向選取",selectNone:"清空所有",selectionAll:"全選所有",sortTitle:"排序",expand:"展開行",collapse:"關閉行",triggerDesc:"點擊降序",triggerAsc:"點擊升序",cancelSort:"取消排序"},Modal:{okText:"確定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"結束導覽"},Popconfirm:{okText:"確定",cancelText:"取消"},Transfer:{titles:["",""],searchPlaceholder:"搜尋資料",itemUnit:"項目",itemsUnit:"項目",remove:"删除",selectCurrent:"全選當頁",removeCurrent:"删除當頁",selectAll:"全選所有",removeAll:"删除全部",selectInvert:"反選當頁"},Upload:{uploading:"正在上傳...",removeFile:"刪除檔案",uploadError:"上傳失敗",previewFile:"檔案預覽",downloadFile:"下载文件"},Empty:{description:"無此資料"},Icon:{icon:"圖標"},Text:{edit:"編輯",copy:"複製",copied:"複製成功",expand:"展開",collapse:"收起"},Form:{optional:"(可選)",defaultValidateMessages:{default:"字段驗證錯誤${label}",required:"請輸入${label}",enum:"${label}必須是其中一個[${enum}]",whitespace:"${label}不能為空字符",date:{format:"${label}日期格式無效",parse:"${label}不能轉換為日期",invalid:"${label}是一個無效日期"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}須為${len}個字符",min:"${label}最少${min}個字符",max:"${label}最多${max}個字符",range:"${label}須在${min}-${max}字符之間"},number:{len:"${label}必須等於${len}",min:"${label}最小值為${min}",max:"${label}最大值為${max}",range:"${label}須在${min}-${max}之間"},array:{len:"須為${len}個${label}",min:"最少${min}個${label}",max:"最多${max}個${label}",range:"${label}數量須在${min}-${max}之間"},pattern:{mismatch:"${label}與模式不匹配${pattern}"}}},Image:{preview:"預覽"},QRCode:{expired:"二維碼過期",refresh:"點擊刷新",scanned:"已掃描"},ColorPicker:{presetEmpty:"暫無",transparent:"透明",singleColor:"單色",gradientColor:"漸變色"}};return ci.default=i,ci}var tu,Km;function V1(){return Km||(Km=1,tu=K1()),tu}var G1=V1();const J1=vs(G1),Vm=e=>{switch(e){case"zh-CN":return q1;case"zh-TW":return J1;case"fr-FR":return _1;case"ja-JP":return F1;case"hi-IN":return j1;default:return g1}},Gv="lotus_vdi_safe_mode",Gm=()=>{try{return localStorage.getItem(Gv)==="true"}catch{return!1}},BI=e=>{try{localStorage.setItem(Gv,e.toString())}catch(t){console.error("[vdiSafeMode] Failed to persist setting:",t)}};async function Q1(){const e=Hn.getInstance();for(const t of Object.keys(localStorage))if(t.startsWith("chat-model-options-cache-v1:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&Array.isArray(s.options)&&(await e.saveModelOptionsCache(n,s.options,s.timestamp),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-diff-collapse:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&typeof s.isExpanded=="boolean"&&(await e.saveDiffCollapse(n,{isExpanded:s.isExpanded,expandedFiles:s.expandedFiles||[]}),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-tool-collapse:")){const n=t.split(":");if(n.length>=3){const r=n[1],s=n.slice(2).join(":");try{const o=localStorage.getItem(t);if(o){const i=JSON.parse(o);i&&typeof i.isExpanded=="boolean"&&(await e.saveToolSessionCollapse(r,s,{isExpanded:i.isExpanded,expandedTools:i.expandedTools||[]}),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}}try{const t=localStorage.getItem("chat_input_reasoning_by_session_v1");if(t){const n=JSON.parse(t);for(const[r,s]of Object.entries(n))typeof s=="string"&&await e.saveInputReasoning(r,s);localStorage.removeItem("chat_input_reasoning_by_session_v1")}}catch{localStorage.removeItem("chat_input_reasoning_by_session_v1")}try{const t=localStorage.getItem("chat_input_reasoning_last_used_v1");t&&typeof t=="string"&&(await e.saveLastUsedReasoningEffort(t),localStorage.removeItem("chat_input_reasoning_last_used_v1"))}catch{localStorage.removeItem("chat_input_reasoning_last_used_v1")}for(const t of Object.keys(localStorage))if(t.startsWith("chat_scroll_anchor_v2:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&s.v===1&&typeof s.anchorId=="string"&&(await e.saveScrollAnchor(n,s),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}localStorage.removeItem("chat_scroll_anchors_v1")}const Z1="copilot_ui_theme_v1",Xu={colorPrimary:"#0d9488",colorPrimaryHover:"#14b8a6",colorPrimaryActive:"#0f766e",colorInfo:"#0d9488",colorLink:"#0d9488",colorLinkHover:"#14b8a6",colorLinkActive:"#0f766e",colorSuccess:"#10b981",colorWarning:"#f59e0b",colorError:"#ef4444",colorText:"#0f172a",colorTextSecondary:"#475569",colorTextTertiary:"#64748b",colorTextDisabled:"#94a3b8",colorTextLightSolid:"#ffffff",colorBorder:"#d1e3e0",colorBorderSecondary:"#e2f0ee",colorFill:"#f0fdfa",colorFillSecondary:"#f7fdfb",colorFillTertiary:"rgba(255, 255, 255, 0.82)",colorFillQuaternary:"transparent",colorBgLayout:"#f0fdfa",colorBgContainer:"rgba(255, 255, 255, 0.82)",colorBgElevated:"rgba(255, 255, 255, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.16)",colorPrimaryBg:"#f0fdfa",colorPrimaryBgHover:"#ccfbf1",colorPrimaryBorder:"#99f6e4",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 12px 36px rgba(15, 118, 110, 0.10), 0 6px 18px rgba(15, 23, 42, 0.06)",boxShadowSecondary:"0 20px 48px rgba(15, 118, 110, 0.12), 0 8px 24px rgba(15, 23, 42, 0.08)"},Ku={colorPrimary:"#2dd4bf",colorPrimaryHover:"#5eead4",colorPrimaryActive:"#0d9488",colorInfo:"#2dd4bf",colorLink:"#2dd4bf",colorLinkHover:"#5eead4",colorLinkActive:"#0d9488",colorSuccess:"#34d399",colorWarning:"#fbbf24",colorError:"#f87171",colorText:"#e5edf8",colorTextSecondary:"#b7c4d6",colorTextTertiary:"#8d9bb0",colorTextDisabled:"#627085",colorBorder:"rgba(255, 255, 255, 0.10)",colorBorderSecondary:"rgba(255, 255, 255, 0.06)",colorFill:"#0c1a17",colorFillSecondary:"#091412",colorFillTertiary:"rgba(15, 23, 42, 0.74)",colorFillQuaternary:"transparent",colorBgLayout:"#070e0c",colorBgContainer:"rgba(11, 22, 18, 0.76)",colorBgElevated:"rgba(15, 30, 25, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.20)",colorPrimaryBg:"rgba(13, 148, 136, 0.14)",colorPrimaryBgHover:"rgba(13, 148, 136, 0.18)",colorPrimaryBorder:"rgba(45, 212, 191, 0.28)",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 16px 40px rgba(2, 6, 23, 0.42), 0 8px 20px rgba(15, 23, 42, 0.24)",boxShadowSecondary:"0 24px 56px rgba(2, 6, 23, 0.5), 0 10px 28px rgba(15, 23, 42, 0.28)"},Vu={Tag:{defaultBg:"rgba(13, 148, 136, 0.1)",defaultColor:"#0f766e"},Table:{bodySortBg:"rgba(13, 148, 136, 0.08)"}},Gu={Tag:{defaultBg:"rgba(45, 212, 191, 0.18)",defaultColor:"#ccfbf1"},Table:{bodySortBg:"rgba(45, 212, 191, 0.14)"}},Jm={...Xu,colorBgElevated:"#ffffff",colorBgSpotlight:"#0f172a",colorFillTertiary:"#f3f7f6"},Qm={...Ku,colorBgElevated:"#0f1b18",colorBgSpotlight:"#22332f",colorFillTertiary:"#162622"},Zm={...Vu,Menu:{popupBg:"#ffffff",itemBg:"transparent",itemHoverBg:"#f3f7f6",itemActiveBg:"#eef7f5",itemSelectedBg:"#e7f8f4",subMenuItemBg:"#ffffff",dangerItemActiveBg:"#fdecec",dangerItemSelectedBg:"#fdecec"},Select:{selectorBg:"#ffffff",clearBg:"#ffffff",optionActiveBg:"#f3f7f6",optionSelectedBg:"#e7f8f4"},Modal:{contentBg:"#ffffff",headerBg:"#ffffff",footerBg:"#ffffff"}},eg={...Gu,Menu:{popupBg:"#0f1b18",darkPopupBg:"#0f1b18",itemBg:"transparent",itemHoverBg:"#162622",itemActiveBg:"#162622",itemSelectedBg:"#12332d",subMenuItemBg:"#0f1b18",dangerItemActiveBg:"#3a161c",dangerItemSelectedBg:"#3a161c"},Select:{selectorBg:"#0f1b18",clearBg:"#0f1b18",optionActiveBg:"#162622",optionSelectedBg:"#12332d"},Modal:{contentBg:"#0f1b18",headerBg:"#0f1b18",footerBg:"#0f1b18"}};function eI(){const{t:e}=Ge(),t=ul(C=>C.themeMode),n=ul(C=>C.setThemeMode),[r,s]=y.useState(()=>fx()),[o,i]=y.useState(()=>Gm()),[l,u]=y.useState(null),[d,h]=y.useState(null),[m,b]=y.useState(0),[v,w]=y.useState(null),[S,k]=y.useState(!1);if(y.useEffect(()=>{localStorage.setItem(Z1,t)},[t]),y.useEffect(()=>{localStorage.setItem(hx,r),px(r)},[r]),y.useEffect(()=>{let C=!1;const E=Date.now(),A=async()=>{try{const O=Qs.getInstance(),D=await O.getAccessStatus();if(C)return;if(h(null),w(D),D.requires_password&&!S){u(!1);return}const F=await O.getSetupStatus();if(C)return;u(F.is_complete)}catch(O){if(C)return;const D=Date.now()-E;if(D>=2e4){const q=ws(),I=O instanceof Error&&O.message.trim()?O.message:"Unknown error";h(e("app.backendNotReachable",{baseUrl:q,message:I}));return}const N=Math.min(500+Math.floor(D/2),2e3);setTimeout(()=>{C||A()},N)}};return A(),()=>{C=!0}},[S,m,e]),y.useEffect(()=>{document.body.setAttribute("data-theme",t)},[t]),y.useEffect(()=>{const C=()=>{const E=Gm();i(E),document.body.setAttribute("data-vdi-safe",E?"true":"false");const A=document.getElementById("root");A&&A.setAttribute("data-vdi-safe",E?"true":"false")};return C(),window.addEventListener("storage",C),window.addEventListener("lotus-vdi-safe-mode-change",C),()=>{window.removeEventListener("storage",C),window.removeEventListener("lotus-vdi-safe-mode-change",C)}},[]),y.useEffect(()=>{var E;const C=(E=window.__TAURI_INTERNALS__)==null?void 0:E.invoke;typeof C=="function"&&C("set_window_theme",{theme:t}).catch(A=>{console.warn("[App] Failed to sync native window theme:",A)})},[t]),y.useEffect(()=>{l&&hd().then(()=>pd()).catch(C=>{console.error("[App] Bootstrap error:",C)})},[l]),y.useEffect(()=>{const C=Hn.getInstance();C.cleanupStaleData(30).catch(A=>{console.warn("[App] Failed to cleanup stale storage data:",A)});const E=setInterval(()=>{C.cleanupStaleData(30).catch(()=>{})},24*60*60*1e3);return()=>clearInterval(E)},[]),y.useEffect(()=>{const C=setTimeout(()=>{Q1().catch(E=>{console.warn("[App] Storage migration failed:",E)})},5e3);return()=>clearTimeout(C)},[]),v!=null&&v.requires_password&&!S)return a.jsx(Mf,{locale:Vm(r),theme:{token:t==="dark"?o?Qm:Ku:o?Jm:Xu,algorithm:t==="dark"?ut.darkAlgorithm:ut.defaultAlgorithm,components:t==="dark"?o?eg:Gu:o?Zm:Vu},children:a.jsx(Fn,{children:a.jsx(zi,{name:"PasswordGatePage",children:a.jsx(i1,{verifyPassword:async C=>{await Qs.getInstance().verifyAccessPassword(C)},onVerified:async()=>{k(!0),h(null),b(C=>C+1)}})})})});if(l===null)return d?a.jsxs("div",{style:{padding:40,textAlign:"center"},children:[a.jsx("div",{style:{marginBottom:12},children:d}),a.jsx(je,{type:"primary",onClick:()=>{h(null),w(null),u(null),b(C=>C+1)},children:e("app.retry")})]}):a.jsx("div",{style:{padding:40,textAlign:"center"},children:e("app.loading")});const P=l?a.jsx(n1,{themeMode:t,onThemeModeChange:n,locale:r,onLocaleChange:s}):a.jsx(s1,{}),T=t==="dark"?o?Qm:Ku:o?Jm:Xu,j=t==="dark"?o?eg:Gu:o?Zm:Vu;return a.jsx(Mf,{locale:Vm(r),theme:{token:T,algorithm:t==="dark"?ut.darkAlgorithm:ut.defaultAlgorithm,components:j},children:a.jsx(Fn,{children:a.jsx(zi,{name:"App",children:a.jsx("div",{style:{position:"relative"},children:P})})})})}const zI=Object.freeze(Object.defineProperty({__proto__:null,default:eI},Symbol.toStringTag,{value:"Module"}));export{kk as $,NI as A,Ni as B,wu as C,Bk as D,JC as E,Jg as F,Jn as G,Lk as H,kc as I,fu as J,rs as K,yd as L,xI as M,wI as N,PI as O,Ex as P,yc as Q,hs as R,Qs as S,sy as T,bd as U,_I as V,EI as W,aI as X,Kk as Y,Xf as Z,xk as _,St as a,uy as a0,Gm as a1,Rk as a2,MI as a3,TI as a4,CI as a5,kI as a6,BI as a7,lI as a8,SI as a9,zI as aa,Mi as b,Ei as c,ul as d,gt as e,Lv as f,Kn as g,fy as h,Rl as i,Wt as j,Hg as k,UE as l,ks as m,DI as n,N_ as o,Ro as p,Ai as q,Xk as r,Vi as s,Ee as t,ae as u,to as v,Yi as w,Pr as x,rt as y,Fi as z};
|