@bigduu/lotus 2026.5.11 → 2026.5.13
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-D9R-_Pem.css → App-DNZiQHSs.css} +1 -1
- package/dist/assets/App-bVqmFSlk.js +224 -0
- package/dist/assets/{FeatureGuide-BNBq_PLn.js → FeatureGuide-BlFyQEho.js} +1 -1
- package/dist/assets/MetricsService-PUxHq4VE.js +1 -0
- package/dist/assets/SubAgentsPanel-B1pN_aEg.js +1 -0
- package/dist/assets/{_baseUniq-DVrw3Tro.js → _baseUniq-Rkm-pzcz.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-BZE_2gaA.js → architectureDiagram-Q4EWVU46-Dr89vzdU.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-CI8uSrzU.js → blockDiagram-DXYQGD6D-TGOxvREa.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-DYfj69gY.js → c4Diagram-AHTNJAMY-CBv5o-M1.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-Cw-2rap4.js → chunk-4BX2VUAB-CxLevY_l.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-jxTPHq0D.js → chunk-4TB4RGXK-CZ85N7UX.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DmAIxchJ.js → chunk-55IACEB6-CyMcswjM.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-FvClTRCF.js → chunk-EDXVE4YY-KspsFgAM.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Dv-f6b4O.js → chunk-FMBD7UC4-BH440Lco.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-CUAa_Yz6.js → chunk-OYMX7WX6-D5KuKqj-.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-D1FDs1aQ.js → chunk-QZHKN3VN-CYjk1VsY.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-C2iPLYG9.js → chunk-YZCP3GAM-D1Ua-1JA.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-D76pdmuK.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-D76pdmuK.js +1 -0
- package/dist/assets/clone-L6_2PEie.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-CidaofdU.js → cose-bilkent-S5V4N54A-DBcT_Wx0.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-B5okAMLc.js → dagre-KV5264BT-DXZkFF5A.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-DqlBY-17.js → diagram-5BDNPKRD-BsQPI1ko.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-BuAFDD-X.js → diagram-G4DWMVQ6-BO9UfQRh.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-CFv_32_w.js → diagram-MMDJMWI5-DkWy2py4.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-CEU-9NCq.js → diagram-TYMM5635-DkuaI_3A.js} +1 -1
- package/dist/assets/en-US-CnZu52UQ.js +3 -0
- package/dist/assets/{erDiagram-SMLLAGMA-BGcZ-Hfc.js → erDiagram-SMLLAGMA-5BQBJx-k.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-CCSeCjR1.js → flowDiagram-DWJPFMVM-CBv8eO1S.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-BqAoxnNO.js → ganttDiagram-T4ZO3ILL-CkWwjmoY.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-DJ0V7_Rv.js → gitGraphDiagram-UUTBAWPF-Cq7iSNVm.js} +1 -1
- package/dist/assets/{graph-BxbYGKIB.js → graph-DP71R45G.js} +1 -1
- package/dist/assets/index-BBEDlZ5R.js +1 -0
- package/dist/assets/index-Bcpx4-c6.js +1 -0
- package/dist/assets/{index-Dgw8qH4q.js → index-BfCdANOc.js} +1 -1
- package/dist/assets/index-C1smAwgR.js +1 -0
- package/dist/assets/index-CIgS9N5-.js +1 -0
- package/dist/assets/index-CWTKRCxw.js +21 -0
- package/dist/assets/index-D9ODTr93.css +1 -0
- package/dist/assets/index-Dyeykeg3.js +8 -0
- package/dist/assets/index-GggL5P0b.js +1 -0
- package/dist/assets/index-Y7yrhp6h.js +1 -0
- package/dist/assets/{index-DJeQeDwp.js → index-YqZv5PIH.js} +1 -1
- package/dist/assets/index-ZWAEbTDI.js +1 -0
- package/dist/assets/index-oQX-HGAT.js +1 -0
- package/dist/assets/index-rcVNW1p_.js +1 -0
- package/dist/assets/{index.es-BhiHSeCT.js → index.es-usLOUMSp.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-Cemw9omR.js → infoDiagram-42DDH7IO-Cs719lD3.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-BYRE-suN.js → ishikawaDiagram-UXIWVN3A-zTI5fHSR.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-BRkAfzxG.js → journeyDiagram-VCZTEJTY-DINdIE0t.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-DrTcKNPa.js → kanban-definition-6JOO6SKY-BWZUu9_H.js} +1 -1
- package/dist/assets/{layout-B2E_GeCC.js → layout-QZEMSKRD.js} +1 -1
- package/dist/assets/main-BEVjNwcv.js +8 -0
- package/dist/assets/{min-5KBdYKFY.js → min-BB314uX0.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-sq4qw8uy.js → mindmap-definition-QFDTVHPH-GgqTvonx.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-C8vOtX53.js → pieDiagram-DEJITSTG-wmUFaxVG.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-LV5yQE3M.js → quadrantDiagram-34T5L4WZ-Bt7Nxjyo.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-Bq6y8VCF.js → requirementDiagram-MS252O5E-4eb0TnXV.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-DvABiNaK.js → sankeyDiagram-XADWPNL6-H6jXqw4X.js} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-Bv9Ckauz.js → sequenceDiagram-FGHM5R23-DgqfEZPw.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-CwYUsnc5.js → stateDiagram-FHFEXIEX-CZrwRbTi.js} +1 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-CwhUMrAy.js +1 -0
- package/dist/assets/{timeline-definition-GMOUNBTQ-BgidC49j.js → timeline-definition-GMOUNBTQ-CMjl6c48.js} +1 -1
- package/dist/assets/vendor-antd-C8lKwvI6.js +502 -0
- package/dist/assets/{vendor-charts-BYce7JXy.js → vendor-charts-bhMup2Pu.js} +1 -1
- package/dist/assets/{vendor-markdown-DzaXAW9Q.js → vendor-markdown-DZuK0SxV.js} +1 -1
- package/dist/assets/{vendor-mermaid-De-Yacw-.js → vendor-mermaid-C1Gk9PtT.js} +4 -4
- package/dist/assets/{vendor-pdf-DHgAFQ2M.js → vendor-pdf-DB-djSmA.js} +4 -4
- package/dist/assets/{vennDiagram-DHZGUBPP-Bzkbjibi.js → vennDiagram-DHZGUBPP-CJuHv1C-.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-CBRp4POe.js → wardley-RL74JXVD-3f0MBifK.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DAhT4-uz.js → wardleyDiagram-NUSXRM2D-DsfJX8FP.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-CXfA4uSx.js → xychartDiagram-5P7HB3ND-DnywOWSH.js} +1 -1
- package/dist/assets/zh-CN-NcKxgANL.js +3 -0
- package/dist/index.html +4 -4
- package/package.json +2 -2
- package/dist/assets/App-BocqxYkX.js +0 -223
- package/dist/assets/SubAgentsPanel-XAgdP-xO.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-DVvX4wPS.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-DVvX4wPS.js +0 -1
- package/dist/assets/clone-DRAA6Q7k.js +0 -1
- package/dist/assets/en-US-DLwJLted.js +0 -3
- package/dist/assets/index-BEkwZ-K8.js +0 -1
- package/dist/assets/index-C8GkXwzS.js +0 -1
- package/dist/assets/index-CucuFwVZ.css +0 -1
- package/dist/assets/index-DC9Ggtrl.js +0 -1
- package/dist/assets/index-DHJJSQ2h.js +0 -1
- package/dist/assets/index-DMaXHadP.js +0 -21
- package/dist/assets/index-DRVv9Wt_.js +0 -1
- package/dist/assets/index-DaK9qR94.js +0 -1
- package/dist/assets/index-dBIF9Wdr.js +0 -1
- package/dist/assets/index-o5s-6ubE.js +0 -8
- package/dist/assets/index-pOHcR4B7.js +0 -1
- package/dist/assets/index-rWoFDRGk.js +0 -1
- package/dist/assets/main-TSfsr__P.js +0 -6
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-aegiqwuH.js +0 -1
- package/dist/assets/vendor-antd-DODjfilb.js +0 -502
- package/dist/assets/zh-CN-B74Ip0pW.js +0 -3
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-rcVNW1p_.js","./vendor-markdown-DZuK0SxV.js","./vendor-i18n-BNURlJ23.js","./vendor-antd-C8lKwvI6.js","./vendor-mermaid-C1Gk9PtT.js","./main-BEVjNwcv.js","./main-B6snAd4S.css","./index-Bcpx4-c6.js","./index-BfCdANOc.js","./index-Bi-vGirQ.css","./index-oQX-HGAT.js","./index-BBEDlZ5R.js","./index-BmjFP0ha.js","./core-Cfh-QHsP.js","./index-_XI0Qq6F.js","./vendor-pdf-DB-djSmA.js","./index-ZWAEbTDI.js","./index-DNsNCcgt.css","./index-Dyeykeg3.js","./index-B6OABT-M.css","./index-Y7yrhp6h.js","./MetricsService-PUxHq4VE.js","./index-D9ODTr93.css","./index-C1smAwgR.js","./SubAgentsPanel-B1pN_aEg.js","./index-GggL5P0b.js","./index-AIUPRSCn.css","./index-CWTKRCxw.js","./onboardingStorage-BVcEpmTy.js","./vendor-charts-bhMup2Pu.js","./index-CIgS9N5-.js","./index-CLYKYSO0.css","./FeatureGuide-BlFyQEho.js"])))=>i.map(i=>d[i]);
|
|
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]},Jx=(e,t={})=>(n,r,s)=>{const{enabled:o,anonymousActionType:i,store:l,...u}=t;let f;try{f=(o??(Ff?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!f)return e(n,r,s);const{connection:h,...m}=Kx(l,f,u);let b=!0;s.setState=(S,k,P)=>{const T=n(S,k);if(!b)return T;const M=P===void 0?{type:i||Gx(new Error().stack)||"anonymous"}:typeof P=="string"?{type:P}:P;return l===void 0?(h==null||h.send(M,r()),T):(h==null||h.send({...M,type:`${l}/${M.type}`},{...va(u.name),[l]:s.getState()}),T)},s.devtools={cleanup:()=>{h&&typeof h.unsubscribe=="function"&&h.unsubscribe(),Vx(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 mc(S.payload,P=>{if(P.type==="__setState"){if(l===void 0){v(P.state);return}Object.keys(P.state).length!==1&&console.error(`
|
|
4
|
+
[zustand devtools middleware] Unsupported __setState action format.
|
|
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
|
+
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(va(u.name));case"COMMIT":if(l===void 0){h==null||h.init(s.getState());return}return h==null?void 0:h.init(va(u.name));case"ROLLBACK":return mc(S.state,P=>{if(l===void 0){v(P),h==null||h.init(s.getState());return}v(P[l]),h==null||h.init(va(u.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return mc(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},Qx=Jx,mc=(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)},Zx=e=>(t,n,r)=>{const s=r.subscribe;return r.subscribe=(i,l,u)=>{let f=i;if(l){const h=(u==null?void 0:u.equalityFn)||Object.is;let m=i(r.getState());f=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(f)},e(t,n,r)},ew=Zx;function tw(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 ou=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return ou(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return ou(r)(n)}}}},nw=(e,t)=>(n,r,s)=>{let o={storage:tw(()=>localStorage),partialize:S=>S,version:0,merge:(S,k)=>({...k,...S}),...t},i=!1;const l=new Set,u=new Set;let f=o.storage;if(!f)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 f.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(!f)return;i=!1,l.forEach(T=>{var M;return T((M=r())!=null?M:b)});const P=((k=o.onRehydrateStorage)==null?void 0:k.call(o,(S=r())!=null?S:b))||void 0;return ou(f.getItem.bind(f))(o.name).then(T=>{if(T)if(typeof T.version=="number"&&T.version!==o.version){if(o.migrate){const M=o.migrate(T.state,T.version);return M instanceof Promise?M.then(C=>[!0,C]):[!0,M]}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 M;const[C,j]=T;if(v=o.merge(j,(M=r())!=null?M: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&&(f=S.storage)},clearStorage:()=>{f==null||f.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},rw=nw,sw=()=>({id:"general_assistant",name:"Bodhi",description:xt.t("chat.prompt.defaultDescription"),content:`You are Bodhi, a highly capable AI assistant.
|
|
8
|
+
|
|
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,d,p,g){this.failures=d,this.failedKeys=g,this.successCount=p,this.message=Ce(c,d)}function Le(c,d){this.name="BulkError",this.failures=Object.keys(d).map(function(p){return d[p]}),this.failuresByPos=d,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,d){return c[d]=d+"Error",c},{}),L=de,le=It.reduce(function(c,d){var p=d+"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[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?`
|
|
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=qr()(rw(e=>({settings:oh,updateSettings:t=>e(n=>({settings:{...n.settings,...t}})),resetSettings:()=>e({settings:oh})}),{name:"mermaid-settings"})),yd=()=>gd(t=>t.settings),yI=()=>gd(e=>e.updateSettings),bI=()=>gd(e=>e.resetSettings),G_=()=>{const{token:e}=ut.useToken(),t=yd(),n=y.useRef("");y.useEffect(()=>{const r=J_(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),ed.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 J_(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}ed.initialize({startOnLoad:!1,theme:"dark",securityLevel:"loose",suppressErrorRendering:!0});ed.parseError=function(e){console.warn("Mermaid parse error (handled gracefully):",e)};const ih=new Map,Q_=/^(\s*%%\{[\s\S]*?\}%%\s*)*\s*gantt\b/i,Z_=e=>e.replace(/:/g,":").replace(/,/g,",").replace(/;/g,";").replace(/(/g,"(").replace(/)/g,")").replace(/-/g,"-"),e0=e=>(Q_.test(e)?Z_(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(),f=u.startsWith("(")&&u.endsWith(")")&&u.length>=2;let h=s;return o&&(h=h.replace(/\r?\n/g,"<br/>")),i&&!f&&(h=h.replace(/\(/g,"(").replace(/\)/g,")")),l&&(h=h.replace(/@/g,"@")),h===s?n:`[${h}]`}),t0=200,gr=new Map,Xa=new Map;let wc=null;const n0=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 r0(){wc||(wc=Jt(()=>import("./vendor-mermaid-C1Gk9PtT.js").then(t=>t.cs),__vite__mapDeps([4,3,2]),import.meta.url));const e=await wc;return e.default??e}function s0(e,t){if(gr.has(e)&&gr.delete(e),gr.set(e,t),gr.size>t0){const n=gr.keys().next().value;n&&gr.delete(n)}}function Ka(e){const t=gr.get(e);return t?(gr.delete(e),gr.set(e,t),t):null}function ah(){gr.clear(),Xa.clear()}function o0(e,t){const n=Ka(e);if(n)return Promise.resolve(n);const r=Xa.get(e);if(r)return r;const s=(async()=>{var T,M;const o=await r0();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 f;try{f=await o.render(i,t,l)}finally{document.body.removeChild(l)}const h=typeof f=="object"&&"svg"in f?f.svg:String(f),m=n0(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 j=C.split(/\s+/).map(Number);j.length===4&&(S=j[2]||800,k=j[3]||300)}if(S===800&&k===300){const j=document.createElement("div");j.style.cssText="position:absolute;visibility:hidden;width:800px;",j.innerHTML=h,document.body.appendChild(j);const A=(M=j.querySelector("svg"))==null?void 0:M.getBoundingClientRect();A&&(S=A.width,k=A.height),document.body.removeChild(j)}}const P={svg:h,width:S,height:k};return s0(e,P),P})().finally(()=>{Xa.delete(e)});return Xa.set(e,s),s}const pi=new Map,Va=new Set,Rs=new Map,ji=new Map;let mi=null;const ny=(e,t)=>{const n=pi.get(e);n&&n.forEach(r=>r(t))},lh=()=>{if(mi=null,ji.size===0)return;const e=Array.from(ji.values());ji.clear(),e.forEach(t=>{ny(t.messageId,t.content),Va.forEach(n=>n(t))})},Mt={getLatest(e){return Rs.get(e)??null},subscribeMessage(e,t){let n=pi.get(e);return n||(n=new Set,pi.set(e,n)),n.add(t),Rs.has(e)&&t(Rs.get(e)??null),()=>{const r=pi.get(e);r&&(r.delete(t),r.size===0&&pi.delete(e))}},subscribe(e){return Va.add(e),()=>{Va.delete(e)}},publish(e){e.content===null?Rs.delete(e.messageId):Rs.set(e.messageId,e.content),ji.set(e.messageId,e),mi===null&&(mi=requestAnimationFrame(lh))},clear(e,t){Rs.delete(t),ji.delete(t),ny(t,null),Va.forEach(n=>n({sessionId:e,messageId:t,content:null}))},forceFlush(){mi!==null&&(cancelAnimationFrame(mi),lh())}},mu=e=>{const t=(e??"").trim().toLowerCase();return t.includes("completion policy violation")&&t.includes("conclusion_with_options")},gu=e=>{const t=(e??"").trim(),n=t?`
|
|
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(`
|
|
18
|
+
`)?`
|
|
19
|
+
`:null]}):null,a.jsx(V0,{"data-testid":"chat-input",ref:o,value:e,onChange:S=>l(S.target.value),onKeyDown:u,onPaste:f,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"}})]})},J0=({allowImages:e,disabled:t,isInputLocked:n,token:r,fileInputRef:s,onFileInputChange:o,onFileReferenceButtonClick:i,extraControl:l})=>{const{t:u}=Ge();return a.jsxs(Ee,{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(td,{}),onClick:()=>{var f;return(f=s.current)==null?void 0:f.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(al,{}),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]})},Q0=({allowRetry:e,hasMessages:t,isInputLocked:n,canCancel:r,disabled:s,onRetry:o,onCancel:i,onSubmit:l,value:u,images:f,isOverCharLimit:h,token:m,statusIndicator:b,submitButtonLabel:v})=>{const{t:w}=Ge(),S=!u.trim()&&f.length===0,k=r??n,P=n,T=n||s||!o,M=v??w("chat.actions.sendMessage");return a.jsxs(Ee,{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(Xs,{trigger:["click"],menu:{items:[{key:"regenerate",label:w("chat.actions.regenerate"),icon:a.jsx(nd,{})},{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(IS,{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(OS,{}):a.jsx($S,{}),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"):M,"aria-label":k?w("chat.actions.cancelRequest"):M})]})},{Text:gh}=ft,Z0=({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(Ee,{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(Vs,{size:"small"}),a.jsx(gh,{type:"secondary",children:i("chat.input.processingFiles")})]})]})},ek=({onFiles:e,mode:t="images"})=>{const[n,r]=y.useState(!1),s=y.useCallback(l=>{var f,h;l.preventDefault(),l.stopPropagation(),(t==="images"?$0(l.dataTransfer):((h=(f=l.dataTransfer)==null?void 0:f.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 f=L0(l.dataTransfer);f.length>0&&e(f);return}const u=Array.from(l.dataTransfer.files||[]);u.length>0&&e(u)},[t,e]);return{isDragOver:n,handleDragOver:s,handleDragLeave:o,handleDrop:i}},tk=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 A0(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]),f=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:f,handleImagePreview:h,clearImages:m}},nk=({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 f=u.getAsFile();if(!f)return;f.type.startsWith("image/")?i.push(f):l.push(f)}}),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 rk(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 sk=new Uint8Array(16);function ok(){return crypto.getRandomValues(sk)}function yh(e,t,n){return crypto.randomUUID?crypto.randomUUID():ik(e)}function ik(e,t,n){var s;e=e||{};const r=e.random??((s=e.rng)==null?void 0:s.call(e))??ok();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,rk(r)}const ak=["text/","application/json","application/xml"],lk=[".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"],ck=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 lk.some(n=>t.endsWith(n))},uk=e=>!e.type&&bh(e.name)?!0:ak.some(t=>e.type.startsWith(t))||bh(e.name),dk=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=ck,r=[],s=[];for(const o of e)try{if(uk(o)&&o.size<=n){const i=await dk(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}},fk=e=>{const t=[],n=[];return e.forEach(r=>{r.type.startsWith("image/")?t.push(r):n.push(r)}),{images:t,others:n}},hk=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
|
+
${r}
|
|
21
|
+
|
|
22
|
+
\`\`\`
|
|
23
|
+
${t.content}
|
|
24
|
+
\`\`\``:`${n}
|
|
25
|
+
${r}
|
|
26
|
+
|
|
27
|
+
> Preview unavailable for this file type.`}).join(`
|
|
28
|
+
|
|
29
|
+
`),pk=({allowImages:e,onAttachmentsAdded:t,messageApi:n})=>{const[r,s]=y.useState(!1),{images:o,setImages:i,previewModalVisible:l,setPreviewModalVisible:u,previewImageIndex:f,handleImageFiles:h,handleImagePreview:m,clearImages:b}=tk(e),v=y.useCallback(async C=>{if(!C||C.length===0)return;const{images:j,others:A}=fk(C);if(j.length>0&&await h(j),A.length>0&&t){s(!0);const{processed:O,errors:F}=await vh(A);O.length>0&&(t(O),n.success(xt.t("chat.input.filesAdded",{count:O.length}))),F.forEach(D=>n.error(D)),s(!1)}},[h,n,t]),{isDragOver:w,handleDragOver:S,handleDragLeave:k,handleDrop:P}=ek({onFiles:v,mode:"any"}),{handlePaste:T}=nk({onImages:h,onAttachments:t?async C=>{s(!0);const{processed:j,errors:A}=await vh(C);j.length>0&&(t(j),n.success(xt.t("chat.input.filesAttached",{count:j.length}))),A.forEach(O=>n.error(O)),s(!1)}:void 0,allowImages:e}),M=y.useCallback(C=>{const j=C.target.files;j&&j.length>0&&h(j),C.target.value=""},[h]);return{images:o,setImages:i,previewModalVisible:l,setPreviewModalVisible:u,previewImageIndex:f,handleImageFiles:h,handleImagePreview:m,clearImages:b,isProcessingAttachments:r,isDragOver:w,handleDragOver:S,handleDragLeave:k,handleDrop:P,handlePaste:T,handleFileInputChange:M}},mk=({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(W0(t))},[t,n]),y.useEffect(()=>{r&&r(q0(t))},[t,r]),y.useEffect(()=>{s&&s(o)},[o,s]),y.useEffect(()=>{i&&l(i)},[i,l])},gk=({value:e,images:t,isInputLocked:n,disabled:r,isWorkflowSelectorVisible:s,onChange:o,onSubmit:i,onRetry:l,onHistoryNavigate:u,validateMessage:f,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 M=typeof m=="number"?m.toLocaleString():"configured";b.error(xt.t("chat.input.charLimitExceeded",{max:M}));return}if(f){const M=f(T);if(!M.isValid){b.error(M.errorMessage||xt.t("chat.input.messageFormatInvalid"));return}}i(T,t.length>0?t:void 0),v()}},[v,r,t,h,n,m,b,i,f,e]),k=y.useCallback(T=>{if(u&&!r&&!n&&!T.shiftKey&&(T.key==="ArrowUp"||T.key==="ArrowDown")){const M=T.key==="ArrowUp"?"previous":"next",C=u(M,e);if(C!=null){T.preventDefault(),o(C),requestAnimationFrame(()=>{var A,O;const j=((O=(A=w.current)==null?void 0:A.resizableTextArea)==null?void 0:O.textArea)||null;if(j){const F=C.length;j.setSelectionRange(F,F)}});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}},yk=ht.memo(({value:e,onChange:t,onSubmit:n,interaction:r,placeholder:s,disabled:o=!1,images:i,onImagesChange:l,allowImages:u=!0,isWorkflowSelectorVisible:f=!1,textAreaRef:h,statusIndicator:m,validateMessage:b,onAttachmentsAdded:v,onWorkflowCommandChange:w,onFileReferenceChange:S,onFileReferenceButtonClick:k,maxCharCount:P,leftControlsExtra:T,submitButtonLabel:M})=>{const{t:C}=Ge(),{isStreaming:j,isInputLocked:A=j,canCancel:O,hasMessages:F,allowRetry:D=!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]=LS.useMessage(),fe=e.length,he=typeof P=="number"&&Number.isFinite(P)&&P>0,ue=he?fe>P:!1,de=he?!ue&&fe>=P*.9:!1,{images:Ce,setImages:ze,previewModalVisible:Le,setPreviewModalVisible:lt,previewImageIndex:L,handleImagePreview:le,clearImages:Ae,isProcessingAttachments:Oe,isDragOver:He,handleDragOver:dt,handleDragLeave:pt,handleDrop:$t,handlePaste:Qt,handleFileInputChange:rn}=pk({allowImages:u,onAttachmentsAdded:v,messageApi:me}),_n=H0(e,80),At=y.useMemo(()=>B0(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]);mk({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}=gk({value:e,images:Ce,isInputLocked:A,disabled:o,isWorkflowSelectorVisible:f,onChange:t,onSubmit:n,onRetry:N,onHistoryNavigate:I,validateMessage:b,isOverCharLimit:ue,maxCharCount:P,messageApi:me,clearImages:Ae,textAreaRef:Z}),En=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(K0,{images:Ce,token:$,allowImages:u,onPreview:le,onClear:Ae}),a.jsx(X0,{visible:He,token:$}),a.jsxs(Ee,{vertical:!0,style:{gap:$.marginXS,minHeight:132,width:"100%"},children:[a.jsx(G0,{value:e,placeholder:En,disabled:o,token:$,highlightSegments:At,textAreaRef:Z,highlightOverlayRef:pe,onChange:t,onKeyDown:Kt,onPaste:Qt,onScrollSync:Xt}),a.jsxs(Ee,{align:"center",justify:"space-between",gap:$.marginSM,wrap:"wrap",style:{rowGap:$.marginXS},children:[a.jsx(Ee,{align:"center",gap:$.marginXS,wrap:"wrap",style:{minWidth:0,flex:"1 1 260px"},children:a.jsx(J0,{allowImages:u,disabled:o,isInputLocked:A,token:$,fileInputRef:Q,onFileInputChange:rn,onFileReferenceButtonClick:k,extraControl:T})}),a.jsx(Q0,{allowRetry:D,hasMessages:F,isStreaming:j,isInputLocked:A,canCancel:O,disabled:o,onRetry:On,onCancel:q,onSubmit:gn,value:e,images:Ce,isOverCharLimit:ue,token:$,statusIndicator:m,submitButtonLabel:M})]})]})]}),a.jsx(Z0,{charCount:fe,maxCharCount:P,isOverCharLimit:ue,isNearCharLimit:de,isProcessingAttachments:Oe,token:$}),u&&a.jsx(N0,{visible:Le,images:Ce,currentIndex:L,onClose:()=>lt(!1)})]})}),{Text:Sh}=ft,{useToken:bk}=ut,vk=({text:e,onClose:t})=>{const{token:n}=bk(),{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(vs,{}),onClick:t,style:{marginLeft:n.marginXS,color:n.colorTextSecondary,borderRadius:999}})]})})},ay="mermaid_enhancement_enabled",Sk=()=>localStorage.getItem(ay)!=="false",SI=e=>{localStorage.setItem(ay,e.toString())},xk=()=>`
|
|
30
|
+
|
|
31
|
+
## 📊 Visual Representation Guidelines
|
|
32
|
+
|
|
33
|
+
When explaining concepts, processes, relationships, or data structures, use Mermaid diagrams to enhance understanding. Choose appropriate diagram types:
|
|
34
|
+
|
|
35
|
+
- **Flowcharts** (graph TD/LR) - processes, workflows, decision trees
|
|
36
|
+
- **Sequence Diagrams** - API interactions, communication flows
|
|
37
|
+
- **Class Diagrams** - object relationships, data models
|
|
38
|
+
- **State Diagrams** - state machines, status flows
|
|
39
|
+
- **Gantt Charts** - project timelines
|
|
40
|
+
- **ER Diagrams** - database schemas
|
|
41
|
+
- **Git Graphs** - version control workflows
|
|
42
|
+
|
|
43
|
+
**Syntax Notes:**
|
|
44
|
+
- Mermaid diagram definitions MUST be inside a fenced code block (never inline). Example:
|
|
45
|
+
\`\`\`mermaid
|
|
46
|
+
graph TD
|
|
47
|
+
A --> B
|
|
48
|
+
\`\`\`
|
|
49
|
+
- Avoid nested brackets: use \`A[Text]\` or \`A(Text)\`, NOT \`A[Text()]\`
|
|
50
|
+
- Use HTML entities for special chars: # for #, ; for ;, " for quotes
|
|
51
|
+
- Keep participant names simple (no spaces): \`participant UserService\`
|
|
52
|
+
- Arrow syntax: \`-->\` (solid), \`-.->\` (dotted), \`==>\` (thick), \`-->|label|\` (labeled)
|
|
53
|
+
|
|
54
|
+
Include relevant diagrams when discussing architecture, workflows, data flow, or relationships.`,wu="task_enhancement_enabled",xh="todo_enhancement_enabled",wk=e=>e==="false",_k=()=>{let e=localStorage.getItem(wu);if(e===null){const t=localStorage.getItem(xh);t!==null&&(e=t,localStorage.setItem(wu,t),localStorage.removeItem(xh))}return!wk(e)},xI=e=>{localStorage.setItem(wu,e.toString())},kk=()=>`
|
|
55
|
+
|
|
56
|
+
## Task Management Rules
|
|
57
|
+
|
|
58
|
+
Use the Task tool for non-trivial or multi-step tasks.
|
|
59
|
+
Task updates are shared across the current root session and all child sessions.
|
|
60
|
+
Keep exactly one item in \`in_progress\` state whenever possible.
|
|
61
|
+
Update Task immediately when a step starts or completes; do not batch status updates.
|
|
62
|
+
When marking a task as completed, always fill in the \`summary\` field with a concise description of what was accomplished.
|
|
63
|
+
Do not use Markdown checkbox lists as a substitute for Task.
|
|
64
|
+
Skip Task only for simple one-step requests.
|
|
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"},Ck=e=>{switch(e){case"windows":return"Windows";case"macos":return"macOS";case"linux":return"Linux";default:return"Unknown OS"}},Tk=()=>{const e=ly(),n=`## 🖥️ Operating System Information
|
|
67
|
+
|
|
68
|
+
You are running on **${Ck(e)}**.`;return e==="windows"?n+`
|
|
69
|
+
|
|
70
|
+
### Windows-Specific Notes:
|
|
71
|
+
|
|
72
|
+
- **Configuration Directory**: Application configuration and data are stored in the user's home directory at \`.bamboo\` (e.g., \`C:\\Users\\[Username]\\.bamboo\`)
|
|
73
|
+
- Note: When accessing this directory programmatically, use the expanded path rather than the ~ shorthand
|
|
74
|
+
|
|
75
|
+
- **Home Directory Paths with Tilde (~)**: On Windows, a leading tilde (~) in file paths is NOT automatically expanded to the user's home directory by most Windows-native APIs and tools. When you encounter paths starting with ~, ~/, or ~\\, you MUST replace them with the Windows absolute path before using them.
|
|
76
|
+
- Example: \`~/Documents/file.txt\` should be expanded to \`C:\\Users\\[Username]\\Documents\\file.txt\`
|
|
77
|
+
- Use tools to get the actual home directory path when needed
|
|
78
|
+
- Note: This applies to leading tilde only. Windows short paths like \`C:\\PROGRA~1\\\` are valid and should NOT be modified
|
|
79
|
+
- Some Windows shells (PowerShell, Git Bash, WSL) may support ~ in specific contexts, but Windows-native paths/APIs generally do not
|
|
80
|
+
|
|
81
|
+
- **Path Separators**: Windows uses backslashes (\\) as path separators, but forward slashes (/) are also accepted in most contexts
|
|
82
|
+
- **Case Insensitivity**: Windows file paths are case-insensitive (file.txt and FILE.TXT refer to the same file)
|
|
83
|
+
- **Drive Letters**: Windows paths typically start with a drive letter (C:\\, D:\\, etc.)`:e==="macos"?n+`
|
|
84
|
+
|
|
85
|
+
### macOS-Specific Notes:
|
|
86
|
+
|
|
87
|
+
- **Configuration Directory**: Application configuration and data are stored in \`~/.bamboo\` (expands to \`/Users/[Username]/.bamboo\`)
|
|
88
|
+
|
|
89
|
+
- **File Paths**: macOS uses Unix-style paths with forward slashes (/)
|
|
90
|
+
- **Home Directory**: The tilde (~) expands to /Users/[Username]
|
|
91
|
+
- **Case Sensitivity**: macOS file system may be case-sensitive or case-insensitive depending on format (APFS is case-insensitive by default)`:e==="linux"?n+`
|
|
92
|
+
|
|
93
|
+
### Linux-Specific Notes:
|
|
94
|
+
|
|
95
|
+
- **Configuration Directory**: Application configuration and data are stored in \`~/.bamboo\` (expands to \`/home/[username]/.bamboo\`)
|
|
96
|
+
|
|
97
|
+
- **File Paths**: Linux uses Unix-style paths with forward slashes (/)
|
|
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",wI=e=>{try{localStorage.setItem(cy,e.toString())}catch(t){console.error("[copilotConclusionWithOptionsEnhancement] Failed to persist setting:",t)}},Pk=()=>"\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",_I=()=>["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
|
+
`),Mk=e=>e.map(n=>n.trim()).filter(n=>n.length>0).join(`
|
|
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(`
|
|
103
|
+
|
|
104
|
+
`);t==null||t({...A,content:N})},[b,t]),S=y.useCallback(j=>{n(),h&&!b(j,h.name)&&v(),h&&b(j,h.name)&&w(j,h),e(j)},[n,v,b,h,w,e]),k=y.useCallback(j=>{l(j.isTriggerActive),f(j.isTriggerActive?j.searchText:"")},[]),P=y.useCallback(async j=>{var Z,pe,$,oe,me,ne;l(!1);const O=(fe=>{var de;if(fe.type!=="mcp")return fe.name;const he=(de=fe.metadata)==null?void 0:de.originalName;if(typeof he=="string"&&he.trim())return he.trim();const ue=eo(fe.name);return ue!=null&&ue.toolName?ue.toolName:fe.displayName||fe.name})(j),F=(pe=(Z=s.current)==null?void 0:Z.resizableTextArea)==null?void 0:pe.textArea,D=(F==null?void 0:F.selectionStart)??o.length;let N,q;const Q=o.substring(0,D).match(/\/([a-zA-Z0-9_-]*)$/);if(Q){const fe=D-Q[0].length,he=o.substring(0,fe),ue=o.substring(D);N=`${he}/${O} ${ue}`,q=`${he}/${O} `.length}else if(o.trim()==="")N=`/${O} `,q=N.length;else{const fe=o.substring(0,D),he=o.substring(D);N=`${fe}/${O} ${he}`,q=`${fe}/${O} `.length}if(e(N),setTimeout(()=>{F&&(F.selectionStart=q,F.selectionEnd=q,F.focus())},0),j.type!=="workflow"){const fe={id:`command-draft-${j.id}`,name:O,content:"",createdAt:new Date().toISOString(),type:j.type,displayName:j.displayName,mcpAlias:j.type==="mcp"?j.name:void 0,mcpServerId:j.type==="mcp"?($=j.metadata)==null?void 0:$.serverId:void 0,mcpServerName:j.type==="mcp"?(oe=j.metadata)==null?void 0:oe.serverName:void 0,mcpOriginalName:j.type==="mcp"?(me=j.metadata)==null?void 0:me.originalName:void 0};m(fe),t==null||t(fe);return}const G=Ri.getInstance();try{const fe=j.id.startsWith("workflow-")?j.id.slice(9):j.id,ue=((ne=(await G.getCommand(j.type,fe)).content)==null?void 0:ne.trim())||"";if(ue){const de={id:`command-draft-${j.id}`,name:j.name,content:ue,createdAt:new Date().toISOString(),type:j.type,displayName:j.displayName};m(de),t==null||t(de)}else v()}catch(fe){console.error(`[InputContainer] Failed to apply command '${j.name}':`,fe),v()}},[v,t,e,o,s]),T=y.useCallback(async j=>{try{const F=(await Ri.getInstance().listCommands()).find(D=>D.id===j.id&&D.type===j.type);if(!F){console.error(`[InputContainer] Command '${j.id}' of type '${j.type}' not found`),e(`/${j.name} `),v();return}await P(F)}catch(A){console.error(`[InputContainer] Failed to select command '${j.name}':`,A),e(`/${j.name} `),v()}},[P,v,e]),M=y.useCallback(()=>{l(!1)},[]),C=y.useCallback(async j=>{l(!1);try{const F=(await Ri.getInstance().listCommands()).find(D=>D.name===j);F?await P(F):(console.error(`[InputContainer] Command '${j}' not found in auto-complete`),e(`/${j} `),v())}catch(A){console.error(`[InputContainer] Failed to load command '${j}' in auto-complete:`,A),e(`/${j} `),v()}},[P,v,e]);return{selectedCommand:h,showCommandSelector:i,commandSearchText:u,clearCommandDraft:v,matchesCommandToken:b,handleInputChange:S,handleCommandChange:k,handleCommandSelect:T,handleCommandSelectorCancel:M,handleAutoComplete:C,setShowCommandSelector:l}};class Dk{constructor(t={}){Et(this,"cache",null);Et(this,"options");Et(this,"validateWorkspacePath",this.validatePath.bind(this));Et(this,"getRecentWorkspaces",this.getRecent.bind(this));Et(this,"addRecentWorkspace",this.addRecent.bind(this));Et(this,"removeRecentWorkspace",this.removeRecent.bind(this));Et(this,"clearRecentWorkspaces",this.clearRecent.bind(this));Et(this,"getWorkspaceSuggestions",this.getCombinedSuggestions.bind(this));Et(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),f=n.findIndex(h=>h.path===l.path);return u!==-1&&f!==-1?u-f:u!==-1?-1:f!==-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 Nk=new Dk,Bk=({content:e,setContent:t,currentSessionId:n,currentChat:r,updateSession:s,messageApi:o})=>{const[i,l]=y.useState(new Map),[u,f]=y.useState([]),[h,m]=y.useState(!1),[b,v]=y.useState(""),[w,S]=y.useState(!1),[k,P]=y.useState(""),[T,M]=y.useState(!1),[C,j]=y.useState(null),[A,O]=y.useState(!1),F=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(""),f([]),l(new Map),F.current=(r==null?void 0:r.config.workspacePath)??null},[n,r==null?void 0:r.config.workspacePath]);const D=y.useCallback(async(pe,$)=>{M(!0),f([]),j(null);try{const oe=await Nk.listWorkspaceFiles($);f(oe),F.current=$}catch(oe){console.error("Failed to load workspace files:",oe),j(oe instanceof Error?oe.message:"Workspace file browsing is unavailable.")}finally{M(!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),(F.current!==$||u.length===0)&&D(n,$)},[r,n,D,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),(F.current!==pe||u.length===0)&&D(n,pe)},[r,n,D,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),j(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:D}},zk=()=>{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}},Wk=({attachments:e,referenceText:t,selectedWorkflow:n,matchesWorkflowToken:r,fileReferences:s,reasoningEffort:o,sendMessage:i,recordEntry:l,clearWorkflowDraft:u,setContent:f,setReferenceText:h,setAttachments:m,setFileReferences:b})=>({handleSubmit:y.useCallback(async(w,S)=>{const k=w.trim(),P=hk(e),T=(t==null?void 0:t.trim())??"";let M=k,C;if(n!=null&&n.content&&n.type==="workflow"){const A=`/${n.name}`;if(r(k,n.name)){const F=k.slice(A.length).trim();M=[n.content,F].filter(Boolean).join(`
|
|
105
|
+
|
|
106
|
+
`)}}else if((n==null?void 0:n.type)==="skill"){const A=`/${n.name}`;if(r(k,n.name)){const F=k.slice(A.length).trim();M=[`[User explicitly selected skill: ${n.displayName||n.name} (ID: ${n.name})]`,F].filter(Boolean).join(`
|
|
107
|
+
|
|
108
|
+
`),C=[n.name]}}else if((n==null?void 0:n.type)==="mcp"){const A=`/${n.name}`;if(r(k,n.name)){const F=k.slice(A.length).trim();M=[`[User explicitly selected MCP tool: ${n.mcpAlias||n.displayName||n.name}]`,F].filter(Boolean).join(`
|
|
109
|
+
|
|
110
|
+
`)}}if(!M&&!P&&(!S||S.length===0))return;const j=[T,M,P].filter(Boolean).join(`
|
|
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},fC=e=>{if(!Nr(e))return;const t=mn(e.graph);if(t)return{title:mn(e.title),graph:t}},hC=e=>{if(!Nr(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:fC(e.mermaid)}},pC=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)}},mC=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:hC(t.conclusion)}},gC=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
|
+
`)),e.next_steps.length>0&&t.push(["**Next steps**",...e.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
|
|
115
|
+
`)),(n=e.mermaid)!=null&&n.graph){const r=e.mermaid.title?`**${e.mermaid.title}**
|
|
116
|
+
|
|
117
|
+
`:`**Flow**
|
|
118
|
+
|
|
119
|
+
`;t.push(`${r}\`\`\`mermaid
|
|
120
|
+
${e.mermaid.graph}
|
|
121
|
+
\`\`\``)}return t.join(`
|
|
122
|
+
|
|
123
|
+
`)},gy=e=>{const t=pC(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
|
+
`)),t.next_steps.length>0&&n.push(["**Next steps**",...t.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
|
|
125
|
+
`)),n.join(`
|
|
126
|
+
|
|
127
|
+
`)},to=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);if(!Nr(n))return null;const r=Ar(n.file_path),s=Ar(n.operation),o=n.diff;if(!r||!s||!Nr(o))return null;const i=Ar(o.unified);if(!i)return null;const l=n.checkpoint,u=Nr(l)?{created:kh(l.created)??!1,id:Ar(l.id),path:Ar(l.path),size_bytes:rs(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:rs(o.old_line_count),new_line_count:rs(o.new_line_count),added_lines:rs(o.added_lines),removed_lines:rs(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(!Nr(r))return null;const s=mn(r.scope),o=rs(r.total_memories);if(!s||typeof o!="number")return null;const i=l=>Nr(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:rs(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)}}},zi=e=>e.startsWith("-")&&!e.startsWith("---"),Wi=e=>e.startsWith("+")&&!e.startsWith("+++"),yC=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(zi(s)){const o=[];for(;r<t.length&&zi(t[r]??"");)o.push(t[r]??""),r+=1;const i=[];for(;r<t.length&&Wi(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(Wi(s)){n.push({kind:"add",text:s}),r+=1;continue}n.push({kind:"context",text:s}),r+=1}return n},bC=e=>{const t=e.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);return t?{oldStart:Number.parseInt(t[1],10),newStart:Number.parseInt(t[2],10)}:null},Jr=e=>{if(!e)return"";const t=e[0];return t==="+"||t==="-"||t===" "?e.slice(1):e},Ir=e=>e==null?null:e+1,vC=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=bC(i);u&&(r=u.oldStart,s=u.newStart),n.push({kind:"hunk",text:i}),o+=1;continue}if(zi(i)){const u=[];for(;o<t.length&&zi(t[o]??"");)u.push(t[o]??""),o+=1;const f=[];for(;o<t.length&&Wi(t[o]??"");)f.push(t[o]??""),o+=1;if(f.length>0){const h=Math.max(u.length,f.length);for(let m=0;m<h;m+=1){const b=u[m],v=f[m];if(b&&v){n.push({kind:"modified",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:Jr(b),newText:Jr(v)}),r=Ir(r),s=Ir(s);continue}if(b){n.push({kind:"remove",oldLineNumber:r??void 0,oldText:Jr(b)}),r=Ir(r);continue}v&&(n.push({kind:"add",newLineNumber:s??void 0,newText:Jr(v)}),s=Ir(s))}}else u.forEach(h=>{n.push({kind:"remove",oldLineNumber:r??void 0,oldText:Jr(h)}),r=Ir(r)});continue}if(Wi(i)){n.push({kind:"add",newLineNumber:s??void 0,newText:Jr(i)}),s=Ir(s),o+=1;continue}const l=Jr(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},by=e=>{let t=0,n=0;for(const r of e.split(`
|
|
130
|
+
`)){if(Wi(r)){t+=1;continue}zi(r)&&(n+=1)}return{added:t,removed:n}},wd=e=>{const t=to(e);if(!t)return null;const n=by(t.diff.unified);return{added:t.diff.added_lines??n.added,removed:t.diff.removed_lines??n.removed}},_u=e=>{if(typeof e=="string")return e.replace(/\\n/g,`
|
|
131
|
+
`).replace(/\\t/g," ");if(Array.isArray(e))return e.map(_u);if(e!==null&&typeof e=="object"){const t={};for(const[n,r]of Object.entries(e))t[n]=_u(r);return t}return e},Qs=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=_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`,`
|
|
133
|
+
font-size: .6rem;
|
|
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(`
|
|
136
|
+
|
|
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
|
+
|
|
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 {
|
|
140
|
+
position: relative;
|
|
141
|
+
width: -moz-fit-content;
|
|
142
|
+
width: fit-content;
|
|
143
|
+
height: -moz-fit-content;
|
|
144
|
+
height: fit-content;
|
|
145
|
+
overflow: hidden;
|
|
146
|
+
-webkit-touch-callout: none; /* iOS Safari */
|
|
147
|
+
-webkit-user-select: none; /* Safari */
|
|
148
|
+
-khtml-user-select: none; /* Konqueror HTML */
|
|
149
|
+
-moz-user-select: none; /* Firefox */
|
|
150
|
+
-ms-user-select: none; /* Internet Explorer/Edge */
|
|
151
|
+
user-select: none;
|
|
152
|
+
margin: 0;
|
|
153
|
+
padding: 0;
|
|
154
|
+
transform: translate3d(0, 0, 0);
|
|
155
|
+
}
|
|
156
|
+
.transform-component-module_content__FBWxo {
|
|
157
|
+
display: flex;
|
|
158
|
+
flex-wrap: wrap;
|
|
159
|
+
width: -moz-fit-content;
|
|
160
|
+
width: fit-content;
|
|
161
|
+
height: -moz-fit-content;
|
|
162
|
+
height: fit-content;
|
|
163
|
+
margin: 0;
|
|
164
|
+
padding: 0;
|
|
165
|
+
transform-origin: 0% 0%;
|
|
166
|
+
}
|
|
167
|
+
.transform-component-module_content__FBWxo img {
|
|
168
|
+
pointer-events: none;
|
|
169
|
+
}
|
|
170
|
+
`,ep={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};oM(iM);var aM=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,f=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",Br({},f,{ref:S,className:"".concat(Pu.wrapperClass," ").concat(ep.wrapper," ").concat(r),style:i}),ht.createElement("div",Br({},m,{ref:k,className:"".concat(Pu.contentClass," ").concat(ep.content," ").concat(o),style:l}),t))};class lM{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,{save:o}=await Jt(async()=>{const{save:f}=await import("./index-BmjFP0ha.js");return{save:f}},__vite__mapDeps([12,13]),import.meta.url),{writeFile:i,writeTextFile:l}=await Jt(async()=>{const{writeFile:f,writeTextFile:h}=await import("./index-_XI0Qq6F.js");return{writeFile:f,writeTextFile:h}},__vite__mapDeps([14,13]),import.meta.url),u=await o({filters:r.map(f=>({name:f.name,extensions:[...f.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:Hy(u,s),success:!0}}}class cM{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,o=Hy(s,s);if(typeof window>"u"||typeof document>"u")throw new Error("File save is unavailable in this environment");const i=fM(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 f=document.createElement("a");f.href=u,f.download=o,f.style.display="none",document.body.appendChild(f),f.click(),document.body.removeChild(f)}finally{URL.revokeObjectURL(u)}return{filename:o,success:!0}}}const uM=new lM,dM=new cM,Hy=(e,t)=>e.split(/[/\\]/).pop()||t,fM=(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"}},hM=()=>bd()?uM:dM;class yr{static async saveFile(t){try{return await hM().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}`}}Et(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 pM=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},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"}})]})},_M=({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:f=>{const h=f.currentTarget.querySelector(".fallback-copy-btn");h&&(h.style.display="block")},onMouseLeave:f=>{const h=f.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(f){console.error("Copy failed:",f),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}})]})},kM={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"},Yy=/^(\s*%%\{[\s\S]*?\}%%\s*)+/,CM=/^(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,TM=e=>e.replace(Yy,"").trimStart(),PM=(e,t)=>{const n=e.match(Yy);if(!n)return`${t}
|
|
173
|
+
${e}`.trim();const r=n[0].trimEnd(),s=e.slice(n[0].length).trimStart();return s?`${r}
|
|
174
|
+
${t}
|
|
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(`
|
|
177
|
+
`).slice(-3).join(`
|
|
178
|
+
`),ne=Qs(N.streamingOutput).isJson?"auto":"text",fe="live";else if(!Z&&(N.info.status==="finish"||N.info.status==="error")&&((lt=(Le=N.result)==null?void 0:Le.result)!=null&<.result)){const le=Qs(N.result.result.result),Ae=le.formattedText.trimEnd();Ae.length>0&&(me=Ae.split(`
|
|
179
|
+
`).slice(0,3).join(`
|
|
180
|
+
`),ne=le.isJson?"json":"text",fe="result")}const he=N.info.status==="process"?o("components.toolSteps.running"):((L=N.metadata)==null?void 0:L.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:he?a.jsx($r,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:he}):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(sd,{}),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")})}),$&&!Z&&a.jsx($r,{type:"secondary",style:{display:"block",marginTop:i.marginXS,fontSize:i.fontSizeSM-1},children:$}),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:oe},children:oe}),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(Ui,{payload:Z,compact:!0,showHeader:!1,showViewToggle:!1,defaultViewMode:"unified",maxHeight:108}),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"})})]})}),me&&a.jsxs("div",{style:{marginTop:i.marginXS},children:[a.jsx(gi,{value:me,mode:ne,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}}),[f,i,o]),D=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:D,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(ms,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}}):a.jsx(zr,{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:M?"error":"process",items:F})}),b&&a.jsx(IM,{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(LM);Pd.displayName="ToolStepsCard";const{Text:Ec}=ft,FM=({content:e,workflowName:t,parameters:n,status:r="success",timestamp:s,onRetry:o,isLoading:i,errorMessage:l})=>{const{t:u}=Ge(),{token:f}=ut.useToken(),[h,m]=y.useState(!1),b=y.useMemo(()=>Qs(e),[e]),v=y.useMemo(()=>typeof i=="boolean"?i:b.formattedText.trim().length===0,[b.formattedText,i]),w=y.useMemo(()=>SC(b.formattedText),[b.formattedText]),S=b.isJson||w,k=!S||h,P=y.useMemo(()=>xC(b.formattedText),[b.formattedText]),T=y.useMemo(()=>{if(n==null)return null;if(typeof n=="string")return Qs(n);try{return{isJson:!0,formattedText:JSON.stringify(n,null,2),parsedJson:n}}catch(j){return console.error("[WorkflowResultCard] Failed to stringify parameters:",j),{isJson:!1,formattedText:String(n)}}},[n]),M=async()=>{try{const j=b.isJson?fs(b.parsedJson):b.formattedText;await Pr(j)}catch(j){console.error("[WorkflowResultCard] Failed to copy content:",j)}},C=async()=>{if(T)try{const j=T.isJson?fs(T.parsedJson):T.formattedText;await Pr(j)}catch(j){console.error("[WorkflowResultCard] Failed to copy parameters:",j)}};return a.jsx(nn,{size:"small",variant:"outlined",style:{borderRadius:f.borderRadiusLG,borderColor:f.colorBorderSecondary,backgroundColor:f.colorBgContainer},styles:{body:{padding:f.paddingMD}},children:a.jsxs(Ue,{direction:"vertical",style:{width:"100%"},size:f.marginSM,children:[a.jsxs(Ee,{align:"center",justify:"space-between",children:[a.jsxs(Ue,{size:f.marginXS,align:"center",children:[a.jsx(JS,{style:{color:f.colorWarning}}),a.jsx(Ec,{strong:!0,children:u("components.workflowResult.userWorkflow")}),a.jsx(Je,{color:f.colorWarning,children:t}),a.jsx(Je,{color:vy(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(QS,{}):a.jsx(ZS,{}),onClick:()=>m(j=>!j)})}),a.jsx(xn,{title:u("components.workflowResult.copyResult"),children:a.jsx(je,{type:"text",size:"small",icon:a.jsx(Tr,{}),onClick:M,"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(nd,{}),onClick:o,"aria-label":u("components.workflowResult.retryWorkflow")})})]})]}),s&&a.jsx(Ec,{type:"secondary",style:{fontSize:f.fontSizeSM},children:new Date(s).toLocaleString()}),a.jsx(ll,{style:{margin:`${f.marginXS}px 0`}}),l&&a.jsx(ir,{type:"error",message:u("components.workflowResult.executionFailed"),description:l,showIcon:!0,style:{marginBottom:f.marginXS}}),a.jsx(Ee,{vertical:!0,style:{width:"100%"},children:v?a.jsx(Vs,{tip:u("components.workflowResult.waitingForResult")}):b.isJson?a.jsx(il,{language:"json",style:Hi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:f.borderRadiusSM,backgroundColor:f.colorBgContainer,fontSize:f.fontSizeSM,maxHeight:k?"none":280,overflow:k?"auto":"hidden"},children:b.formattedText}):a.jsxs("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:f.fontSizeSM,maxHeight:k?"none":280,overflow:k?"visible":"hidden",marginBottom:0},children:[k?b.formattedText:P.preview,!k&&P.isTruncated&&`
|
|
181
|
+
…`]})}),T&&a.jsxs(Ee,{vertical:!0,style:{width:"100%"},children:[a.jsx(ll,{style:{margin:`${f.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(il,{language:"json",style:Hi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:f.borderRadiusSM,backgroundColor:f.colorBgContainer,fontSize:f.fontSizeSM,maxHeight:220,overflow:"auto"},children:T.formattedText}):a.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:f.fontSizeSM,marginBottom:0},children:T.formattedText})]})]})})},Qy=y.memo(FM);Qy.displayName="WorkflowResultCard";const DM=e=>Array.isArray(e)?e.map(t=>String(t??"")):[],NM=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s})=>JSON.stringify({sessionId:e??null,question:t??"",options:DM(n),allowCustom:r??!0,toolCallId:s??null}),{Text:Mc}=ft,BM=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s,conclusionMarkdown:o,markdownComponents:i,markdownPlugins:l,rehypePlugins:u})=>{const{t:f}=Ge(),[h,m]=y.useState(null),b=y.useMemo(()=>NM({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(xu,w),()=>{window.removeEventListener(xu,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(Mc,{strong:!0,children:f("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(Mc,{type:"secondary",children:f("components.questionDialog.responseSubmittedContinue","Response submitted. Continuing...")}):a.jsx(Mc,{type:"secondary",children:r?f("components.questionDialog.responseInInputHint","Use the options or input box below to respond."):f("components.questionDialog.responseByOptionHint","Please respond using the options below the input box.")})]})},{Text:rr}=ft,zM=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=eo(h);n.push({type:"mcp",label:h,serverId:m==null?void 0:m.serverId,toolName:m==null?void 0:m.toolName});continue}const f=l.match(/^\[User explicitly selected skill:\s*(.+?)\s*\]$/);if(f){const h=f[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}},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=`
|
|
184
|
+
.md-export { color: #111; }
|
|
185
|
+
.md-export h1 { font-size: 24px; margin: 0 0 16px; }
|
|
186
|
+
.md-export h2 { font-size: 18px; margin: 18px 0 12px; }
|
|
187
|
+
.md-export h3 { font-size: 16px; margin: 14px 0 10px; }
|
|
188
|
+
.md-export [data-mermaid-controls="true"] { display: none !important; }
|
|
189
|
+
`,f.appendChild(h);const m=document.createElement("div");m.className="md-export",f.appendChild(m),document.body.appendChild(f),document.body.appendChild(l);const b=s(m);o(()=>{b.render(ht.createElement(vr,{remarkPlugins:[Qu,Zu],rehypePlugins:[Ju],components:i},t||""))});try{await this.waitForExportRenderReady(f);const v=await this.renderCanvasWithFallback(n,f),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,M=k-P*2,C=v.width/T,j=Math.max(1,Math.floor(M*C));let A=0,O=0;for(;A<v.height;){const D=this.computeSmartSliceHeight(v,A,j),N=Math.max(1,Math.min(D,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 F=w.output("arraybuffer");return new Uint8Array(F)}finally{b.unmount(),l.remove(),f.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(JM)){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),f=Math.min(t.height-1,o+l),h=this.findWhitespaceBreakY(t,o,u,f);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,f=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 M=k*u;for(let F=0;F<t.width;F+=f){const D=M+F*4,N=l[D+3];if(T+=1,N<=m)continue;const q=l[D],I=l[D+1],Q=l[D+2];(q<h||I<h||Q<h)&&(P+=1)}if(T===0)continue;const C=P/T,j=r+k,A=Math.abs(j-n);(C<w||C===w&&A<S)&&(w=C,S=A,v=j)}return v===null||w>b?null:v}catch{return null}}}const QM=({messageText:e,messageId:t,currentSessionId:n,onDelete:r,onRestoreChat:s,onRestoreFilesAndChat:o,cardRef:i})=>{const{message:l}=Fn.useApp(),{t:u}=Ge(),[f,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(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;Ll.NEWLINE_CHARS=new Set([`
|
|
192
|
+
`,"\r"]);Ll.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wj(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 _j(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 gl={off:0,error:200,warn:300,info:400,debug:500},bp=(e,t,n)=>{if(e){if(sj(gl,e))return e;vn(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(gl))}`)}};function bi(){}function $a(e,t,n){return!t||gl[e]>gl[n]?bi:t[e].bind(t)}const kj={error:bi,warn:bi,info:bi,debug:bi};let vp=new WeakMap;function vn(e){const t=e.logger,n=e.logLevel??"off";if(!t)return kj;const r=vp.get(t);if(r&&r[0]===n)return r[1];const s={error:$a("error",t,n),warn:$a("warn",t,n),info:$a("info",t,n),debug:$a("debug",t,n)};return vp.set(t,[n,s]),s}const es=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 Mo;class Sr{constructor(t,n,r){this.iterator=t,Mo.set(this,void 0),this.controller=n,Qe(this,Mo,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 Cj(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 f;try{f=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(f&&f.error)throw new wn(void 0,f.error,void 0,t.headers);yield f}else{let f;try{f=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,f.error,f.message,void 0);yield{event:u.event,data:f}}}l=!0}catch(u){if(ju(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 Ll,u=pb(t);for await(const f of u)for(const h of l.decode(f))yield h;for(const f of l.flush())yield f}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(ju(u))return;throw u}finally{l||n.abort()}}return new Sr(i,n,r)}[(Mo=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,Mo,"f")),new Sr(()=>s(n),this.controller,re(this,Mo,"f"))]}toReadableStream(){const t=this;let n;return fb({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*Cj(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 Pj,r=new Ll,s=pb(e.body);for await(const o of Tj(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*Tj(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=_j(t))!==-1;)yield t.slice(0,o),t=t.slice(o)}t.length>0&&(yield t)}class Pj{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]=Ej(t,":");return s.startsWith(" ")&&(s=s.substring(1)),n==="event"?this.event=s:n==="data"&&this.data.push(s),null}}function Ej(e,t){const n=e.indexOf(t);return n!==-1?[e.substring(0,n),t,e.substring(n+t.length)]:[e,"",""]}async function Sb(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 xb(b,n)}return await n.text()})();return vn(e).debug(`[${r}] response parsed`,es({retryOfRequestLogID:s,url:n.url,status:n.status,body:i,durationMs:Date.now()-o})),i}function xb(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 vi;class Fl extends Promise{constructor(t,n,r=Sb){super(s=>{s(null)}),this.responsePromise=n,this.parseResponse=r,vi.set(this,void 0),Qe(this,vi,t)}_thenUnwrap(t){return new Fl(re(this,vi,"f"),this.responsePromise,async(n,r)=>xb(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,vi,"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)}}vi=new WeakMap;var La;class wb{constructor(t,n,r,s){La.set(this,void 0),Qe(this,La,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,La,"f").requestAPIList(this.constructor,t)}async*iterPages(){let t=this;for(yield t;t.hasNextPage();)t=await t.getNextPage(),yield t}async*[(La=new WeakMap,Symbol.asyncIterator)](){for await(const t of this.iterPages())for(const n of t.getPaginatedItems())yield n}}class Mj extends Fl{constructor(t,n,r){super(t,n,async(s,o)=>new r(s,o.response,await Sb(s,o),o.options))}async*[Symbol.asyncIterator](){const t=await this;for await(const n of t)yield n}}class Dl extends wb{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 wb{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:{...nj(this.options.query),after:n}}:null}}const _b=()=>{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 Ai(e,t,n){return _b(),new File(e,t??"unknown_file",n)}function Ja(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 kb=e=>e!=null&&typeof e=="object"&&typeof e[Symbol.asyncIterator]=="function",ys=async(e,t)=>({...e,body:await Rj(e.body,t)}),Sp=new WeakMap;function jj(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 Rj=async(e,t)=>{if(!await jj(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])=>Iu(n,r,s))),n},Aj=e=>e instanceof Blob&&"name"in e,Iu=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,Ai([await n.blob()],Ja(n)));else if(kb(n))e.append(t,Ai([await new Response(hb(n)).blob()],Ja(n)));else if(Aj(n))e.append(t,n,Ja(n));else if(Array.isArray(n))await Promise.all(n.map(r=>Iu(e,t+"[]",r)));else if(typeof n=="object")await Promise.all(Object.entries(n).map(([r,s])=>Iu(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`)}},Cb=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",Ij=e=>e!=null&&typeof e=="object"&&typeof e.name=="string"&&typeof e.lastModified=="number"&&Cb(e),Oj=e=>e!=null&&typeof e=="object"&&typeof e.url=="string"&&typeof e.blob=="function";async function $j(e,t,n){if(_b(),e=await e,Ij(e))return e instanceof File?e:Ai([await e.arrayBuffer()],e.name);if(Oj(e)){const s=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),Ai(await Ou(s),t,n)}const r=await Ou(e);if(t||(t=Ja(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 Ai(r,t,n)}async function Ou(e){var n;let t=[];if(typeof e=="string"||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(Cb(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(kb(e))for await(const r of e)t.push(...await Ou(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}`:""}${Lj(e)}`)}return t}function Lj(e){return typeof e!="object"||e===null?"":`; props: [${Object.getOwnPropertyNames(e).map(n=>`"${n}"`).join(", ")}]`}class st{constructor(t){this._client=t}}function Tb(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const xp=Object.freeze(Object.create(null)),Fj=(e=Tb)=>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 f;for(;(f=u.exec(l))!==null;)o.push({start:f.index,length:f[0].length,error:`Value "${f[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
|
+
${o.map(b=>b.error).join(`
|
|
196
|
+
`)}
|
|
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=>Kj(e,pn.ALL^pn.NUM);var cn,_r,$s,Lr,Oc,Fa,$c,Lc,Fc,Da,Dc,_p;class Yi extends Ib{constructor(t){super(),cn.add(this),_r.set(this,void 0),$s.set(this,void 0),Lr.set(this,void 0),Qe(this,_r,t),Qe(this,$s,[])}get currentChatCompletionSnapshot(){return re(this,Lr,"f")}static fromReadableStream(t){const n=new Yi(null);return n._run(()=>n._fromReadableStream(t)),n}static createChatCompletion(t,n,r){const s=new Yi(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",Oc).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",$c).call(this,l);if((i=o.controller.signal)!=null&&i.aborted)throw new Gn;return this._addChatCompletion(re(this,cn,"m",Da).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",Oc).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",Da).call(this)),re(this,cn,"m",$c).call(this,l),o=l.id;if((i=s.controller.signal)!=null&&i.aborted)throw new Gn;return this._addChatCompletion(re(this,cn,"m",Da).call(this))}[(_r=new WeakMap,$s=new WeakMap,Lr=new WeakMap,cn=new WeakSet,Oc=function(){this.ended||Qe(this,Lr,void 0)},Fa=function(n){let r=re(this,$s,"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,$s,"f")[n.index]=r,r)},$c=function(n){var s,o,i,l,u,f,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 M of n.choices){const C=r.choices[M.index];M.delta.content!=null&&((s=C.message)==null?void 0:s.role)==="assistant"&&((o=C.message)!=null&&o.content)&&(this._emit("content",M.delta.content,C.message.content),this._emit("content.delta",{delta:M.delta.content,snapshot:C.message.content,parsed:C.message.parsed})),M.delta.refusal!=null&&((i=C.message)==null?void 0:i.role)==="assistant"&&((l=C.message)!=null&&l.refusal)&&this._emit("refusal.delta",{delta:M.delta.refusal,snapshot:C.message.refusal}),((u=M.logprobs)==null?void 0:u.content)!=null&&((f=C.message)==null?void 0:f.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(h=M.logprobs)==null?void 0:h.content,snapshot:((m=C.logprobs)==null?void 0:m.content)??[]}),((b=M.logprobs)==null?void 0:b.refusal)!=null&&((v=C.message)==null?void 0:v.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(w=M.logprobs)==null?void 0:w.refusal,snapshot:((S=C.logprobs)==null?void 0:S.refusal)??[]});const j=re(this,cn,"m",Fa).call(this,C);C.finish_reason&&(re(this,cn,"m",Fc).call(this,C),j.current_tool_call_index!=null&&re(this,cn,"m",Lc).call(this,C,j.current_tool_call_index));for(const A of M.delta.tool_calls??[])j.current_tool_call_index!==A.index&&(re(this,cn,"m",Fc).call(this,C),j.current_tool_call_index!=null&&re(this,cn,"m",Lc).call(this,C,j.current_tool_call_index)),j.current_tool_call_index=A.index;for(const A of M.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))}}},Lc=function(n,r){var i,l,u;if(re(this,cn,"m",Fa).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 f=(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:Qi(f)?f.$parseRaw(o.function.arguments):f!=null&&f.function.strict?JSON.parse(o.function.arguments):null})}else o.type},Fc=function(n){var s,o;const r=re(this,cn,"m",Fa).call(this,n);if(n.message.content&&!r.content_done){r.content_done=!0;const i=re(this,cn,"m",Dc).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}))},Da=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,$s,[]),Gj(n,re(this,_r,"f"))},Dc=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,...f}=n;l?Object.assign(l,f):l=Qe(this,Lr,{...f,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,...F}=v;Object.assign(S.logprobs,F),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")&&jb(re(this,_r,"f")))){if(m==="length")throw new ub;if(m==="content_filter")throw new db}if(Object.assign(S,w),!h)continue;const{content:k,refusal:P,function_call:T,role:M,tool_calls:C,...j}=h;if(Object.assign(S.message,j),P&&(S.message.refusal=(S.message.refusal||"")+P),M&&(S.message.role=M),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",Dc).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:F,function:D,...N}of C){const q=(i=S.message.tool_calls)[A]??(i[A]={});Object.assign(q,N),O&&(q.id=O),F&&(q.type=F),D&&(q.function??(q.function={name:D.name??"",arguments:""})),D!=null&&D.name&&(q.function.name=D.name),D!=null&&D.arguments&&(q.function.arguments+=D.arguments,Wj(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 Gj(e,t){const{id:n,choices:r,created:s,model:o,system_fingerprint:i,...l}=e,u={...l,id:n,choices:r.map(({message:f,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}=f,T=f.role;if(!T)throw new Ze(`missing role for choice ${m}`);if(S){const{arguments:M,name:C}=S;if(M==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:M,name:C},role:T,refusal:f.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:f.refusal??null,tool_calls:k.map((M,C)=>{const{function:j,type:A,id:O,...F}=M,{arguments:D,name:N,...q}=j||{};if(O==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].id
|
|
200
|
+
${Na(e)}`);if(A==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].type
|
|
201
|
+
${Na(e)}`);if(N==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].function.name
|
|
202
|
+
${Na(e)}`);if(D==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].function.arguments
|
|
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.
|
|
204
|
+
|
|
205
|
+
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
206
|
+
If you understand the risks and have appropriate mitigations in place,
|
|
207
|
+
you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
208
|
+
|
|
209
|
+
new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
210
|
+
|
|
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(Ls("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??u,this.fetchOptions=l.fetchOptions,this.maxRetries=l.maxRetries??2,this.fetch=l.fetch??fj(),Qe(this,ol,pj),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 Sj(t,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Ds}`}defaultIdempotencyKey(){return`stainless-node-retry-${tb()}`}makeStatusError(t,n,r,s){return wn.generate(t,n,r,s)}buildURL(t,n,r){const s=!re(this,Wu,"m",_v).call(this)&&r||this.baseURL,o=tj(t)?new URL(t):new URL(s+(s.endsWith("/")&&t.startsWith("/")?t.slice(1):t)),i=this.defaultQuery();return rj(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 Fl(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 f="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),h=r===void 0?"":`, retryOf: ${r}`,m=Date.now();if(vn(this).debug(`[${f}] sending request`,es({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(Ru),w=Date.now();if(v instanceof Error){const M=`retrying, ${n} attempts remaining`;if((T=s.signal)!=null&&T.aborted)throw new Gn;const C=ju(v)||/timed? ?out/i.test(String(v)+("cause"in v?String(v.cause):""));if(n)return vn(this).info(`[${f}] connection ${C?"timed out":"failed"} - ${M}`),vn(this).debug(`[${f}] connection ${C?"timed out":"failed"} (${M})`,es({retryOfRequestLogID:r,url:l,durationMs:w-m,message:v.message})),this.retryRequest(s,n,r??f);throw vn(this).info(`[${f}] connection ${C?"timed out":"failed"} - error; no more retries left`),vn(this).debug(`[${f}] connection ${C?"timed out":"failed"} (error; no more retries left)`,es({retryOfRequestLogID:r,url:l,durationMs:w-m,message:v.message})),C?new Md:new $l({cause:v})}const S=[...v.headers.entries()].filter(([M])=>M==="x-request-id").map(([M,C])=>", "+M+": "+JSON.stringify(C)).join(""),k=`[${f}${h}${S}] ${i.method} ${l} ${v.ok?"succeeded":"failed"} with status ${v.status} in ${w-m}ms`;if(!v.ok){const M=await this.shouldRetry(v);if(n&&M){const D=`retrying, ${n} attempts remaining`;return await hj(v.body),vn(this).info(`${k} - ${D}`),vn(this).debug(`[${f}] response error (${D})`,es({retryOfRequestLogID:r,url:v.url,status:v.status,headers:v.headers,durationMs:w-m})),this.retryRequest(s,n,r??f,v.headers)}const C=M?"error; no more retries left":"error; not retryable";vn(this).info(`${k} - ${C}`);const j=await v.text().catch(D=>Ru(D).message),A=ij(j),O=A?void 0:j;throw vn(this).debug(`[${f}] response error (${C})`,es({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(`[${f}] response start`,es({retryOfRequestLogID:r,url:v.url,status:v.status,headers:v.headers,durationMs:w-m})),{response:v,options:s,controller:b,requestLogID:f,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 Mj(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),f=globalThis.ReadableStream&&l.body instanceof globalThis.ReadableStream||typeof l.body=="object"&&l.body!==null&&Symbol.asyncIterator in l.body,h={signal:s.signal,...f?{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 Ji(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&&oj("timeout",r.timeout),r.timeout=r.timeout??this.timeout;const{bodyHeaders:f,body:h}=this.buildBody({options:r}),m=await this.buildHeaders({options:t,method:s,bodyHeaders:f,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))}:{},...dj(),"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:hb(t)}:re(this,ol,"f").call(this,{body:t,headers:r})}}Vd=mt,ol=new WeakMap,Wu=new WeakSet,_v=function(){return this.baseURL!=="https://api.openai.com/v1"};mt.OpenAI=Vd;mt.DEFAULT_TIMEOUT=6e5;mt.OpenAIError=Ze;mt.APIError=wn;mt.APIConnectionError=$l;mt.APIConnectionTimeoutError=Md;mt.APIUserAbortError=Gn;mt.NotFoundError=ob;mt.ConflictError=ib;mt.RateLimitError=lb;mt.BadRequestError=nb;mt.AuthenticationError=rb;mt.InternalServerError=cb;mt.PermissionDeniedError=sb;mt.UnprocessableEntityError=ab;mt.InvalidWebhookSignatureError=yi;mt.toFile=$j;mt.Completions=rv;mt.Chat=Ld;mt.Embeddings=ov;mt.Files=av;mt.Images=hv;mt.Audio=Zi;mt.Moderations=mv;mt.Models=pv;mt.FineTuning=no;mt.Graders=Hd;mt.VectorStores=zl;mt.Webhooks=wv;mt.Beta=ea;mt.Batches=Jb;mt.Uploads=Kd;mt.Responses=Xd;mt.Evals=zd;mt.Containers=Nd;let Wa=null,Bc=null;const aR=()=>{const e=xs().trim().replace(/\/+$/,"");if(e.endsWith("/openai/v1"))return e;const t="/v1";return`${e.endsWith(t)?e.slice(0,-t.length):e}/openai/v1`},lR=()=>{const e=aR();return Wa?Bc!==e&&(Wa=new mt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),Bc=e):(Wa=new mt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),Bc=e),Wa},kv=e=>{const t=e.match(/```mermaid\s*([\s\S]*?)```/i);return t?t[1].trim():e.trim()},cR=(e,t,n)=>{const r=t.trim(),s=kv(n),o=/```mermaid\s*([\s\S]*?)```/gi;let i=!1;const l=e.replace(o,(f,h)=>i||h.trim()!==r?f:(i=!0,`\`\`\`mermaid
|
|
213
|
+
${s}
|
|
214
|
+
\`\`\``));return i?l:e.match(o)?e.replace(o,f=>i?f:(i=!0,`\`\`\`mermaid
|
|
215
|
+
${s}
|
|
216
|
+
\`\`\``)):null},$p="_text",_l=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},uR=(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},dR=e=>(e instanceof Error?e.message:String(e)).toLowerCase().includes("message not found"),fR=(e,t,n,r)=>{const s=e.find(o=>o.id===t);return _l(s)?s:e.find(o=>_l(o)&&(o.content===n||uR(o.content,r)))},hR=(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
|
+
`)},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(`
|
|
218
|
+
`)}).join(`
|
|
219
|
+
|
|
220
|
+
---
|
|
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(`
|
|
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};
|