@bigduu/lotus 2026.6.15 → 2026.6.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/assets/App-M_Enlqcv.js +247 -0
  2. package/dist/assets/{MetricsService-CvmmInSx.js → MetricsService-B3MPZEfA.js} +1 -1
  3. package/dist/assets/{SubAgentsPanel-6pLz99yQ.js → SubAgentsPanel-Cv5BQdXg.js} +1 -1
  4. package/dist/assets/{architectureDiagram-3BPJPVTR-vu60zKK8.js → architectureDiagram-3BPJPVTR-CEwscXSP.js} +1 -1
  5. package/dist/assets/{blockDiagram-GPEHLZMM-EB_Gn5rK.js → blockDiagram-GPEHLZMM-DW5Yb8r-.js} +1 -1
  6. package/dist/assets/{c4Diagram-AAUBKEIU-CpO4DryC.js → c4Diagram-AAUBKEIU-DcKzj8l0.js} +1 -1
  7. package/dist/assets/{chunk-2J33WTMH-C6NKJgeT.js → chunk-2J33WTMH-CVCrXOBM.js} +1 -1
  8. package/dist/assets/{chunk-4BX2VUAB-bYBZYLYe.js → chunk-4BX2VUAB-Bjf7ds0t.js} +1 -1
  9. package/dist/assets/{chunk-55IACEB6-BTqivpQY.js → chunk-55IACEB6-CjKnaow6.js} +1 -1
  10. package/dist/assets/{chunk-727SXJPM-DQoXqWCk.js → chunk-727SXJPM-MYGM3PcL.js} +1 -1
  11. package/dist/assets/{chunk-AQP2D5EJ-N-BZmnJp.js → chunk-AQP2D5EJ-58nBRQ3s.js} +1 -1
  12. package/dist/assets/{chunk-FMBD7UC4-CtVCo5jw.js → chunk-FMBD7UC4-r8Ck2-cC.js} +1 -1
  13. package/dist/assets/{chunk-ND2GUHAM-BWQGRak9.js → chunk-ND2GUHAM-M6noLOM0.js} +1 -1
  14. package/dist/assets/{chunk-QZHKN3VN-CbG1EAnl.js → chunk-QZHKN3VN-D6Wluw3g.js} +1 -1
  15. package/dist/assets/classDiagram-4FO5ZUOK-Brm-FcnA.js +1 -0
  16. package/dist/assets/classDiagram-v2-Q7XG4LA2-Brm-FcnA.js +1 -0
  17. package/dist/assets/{cose-bilkent-S5V4N54A-E9j2ET-x.js → cose-bilkent-S5V4N54A-BAIUuyQ8.js} +1 -1
  18. package/dist/assets/{dagre-BM42HDAG-p9c1YSJT.js → dagre-BM42HDAG-DHs-IW5w.js} +1 -1
  19. package/dist/assets/{diagram-2AECGRRQ-jp-q_SJe.js → diagram-2AECGRRQ-BSi58Pmk.js} +1 -1
  20. package/dist/assets/{diagram-5GNKFQAL-BpFTa350.js → diagram-5GNKFQAL-BP4IDK4A.js} +1 -1
  21. package/dist/assets/{diagram-KO2AKTUF-D8yzoMSX.js → diagram-KO2AKTUF-XVxhi7xd.js} +1 -1
  22. package/dist/assets/{diagram-LMA3HP47-CLIX6AFq.js → diagram-LMA3HP47-DPQbv9x7.js} +1 -1
  23. package/dist/assets/{diagram-OG6HWLK6-Cl1Znuf7.js → diagram-OG6HWLK6-sQNvR1Rj.js} +1 -1
  24. package/dist/assets/{erDiagram-TEJ5UH35-_pbiXa24.js → erDiagram-TEJ5UH35-CPK4amZc.js} +1 -1
  25. package/dist/assets/{flowDiagram-I6XJVG4X-B_-bdgdU.js → flowDiagram-I6XJVG4X-kExdgjMg.js} +1 -1
  26. package/dist/assets/{ganttDiagram-6RSMTGT7-5HbKrfba.js → ganttDiagram-6RSMTGT7-DFIo8kTJ.js} +1 -1
  27. package/dist/assets/{gitGraphDiagram-PVQCEYII-BGaJ0Fx0.js → gitGraphDiagram-PVQCEYII-Dr-TkknI.js} +1 -1
  28. package/dist/assets/{index-0aMcP7WF.js → index-3D4SJ2Sq.js} +1 -1
  29. package/dist/assets/{index-CNBWyXBr.js → index-BPzdRxWR.js} +3 -3
  30. package/dist/assets/{index-CZkmTlGb.js → index-BtKDULhw.js} +1 -1
  31. package/dist/assets/{index-B2ovflfG.js → index-DD799l9l.js} +1 -1
  32. package/dist/assets/{index-0eZAfWsV.js → index-DPB3OsNN.js} +1 -1
  33. package/dist/assets/{index-DfutkAxw.js → index-DRR_PLI3.js} +1 -1
  34. package/dist/assets/{index-3fJDCrCR.js → index-DTwjPw3W.js} +1 -1
  35. package/dist/assets/{index-F4ys17Gt.js → index-DZwtEBJ8.js} +1 -1
  36. package/dist/assets/{index-CFsI6kqQ.js → index-DeiR3zxI.js} +1 -1
  37. package/dist/assets/{index-BsModqb1.js → index-Dx9gwpkf.js} +1 -1
  38. package/dist/assets/{index-o1UsTCHb.js → index-IUnDhddK.js} +1 -1
  39. package/dist/assets/{infoDiagram-5YYISTIA-17OLHc8h.js → infoDiagram-5YYISTIA-TyFn1xMi.js} +1 -1
  40. package/dist/assets/{ishikawaDiagram-YF4QCWOH-t85VGMMG.js → ishikawaDiagram-YF4QCWOH-B54awsuE.js} +1 -1
  41. package/dist/assets/{journeyDiagram-JHISSGLW-CG8vZEvR.js → journeyDiagram-JHISSGLW-UG1dUbuf.js} +1 -1
  42. package/dist/assets/{kanban-definition-UN3LZRKU-DdIM9CUj.js → kanban-definition-UN3LZRKU-qhn1-_c6.js} +1 -1
  43. package/dist/assets/{main-CY_Gscm2.js → main-KJE6TlvG.js} +3 -3
  44. package/dist/assets/{mindmap-definition-RKZ34NQL-RFIMz2IQ.js → mindmap-definition-RKZ34NQL-DA3OZxUI.js} +1 -1
  45. package/dist/assets/{pieDiagram-4H26LBE5-CoovIldV.js → pieDiagram-4H26LBE5-qK8s-crM.js} +1 -1
  46. package/dist/assets/{quadrantDiagram-W4KKPZXB-NIEpLXgM.js → quadrantDiagram-W4KKPZXB-JKpitOx9.js} +1 -1
  47. package/dist/assets/{requirementDiagram-4Y6WPE33-WWPKV4PL.js → requirementDiagram-4Y6WPE33-isliGwvT.js} +1 -1
  48. package/dist/assets/{sankeyDiagram-5OEKKPKP-DhqU6FU8.js → sankeyDiagram-5OEKKPKP-t6847Rv0.js} +1 -1
  49. package/dist/assets/{sequenceDiagram-3UESZ5HK-DZEmzwZ7.js → sequenceDiagram-3UESZ5HK-W-7TqsM-.js} +1 -1
  50. package/dist/assets/{stateDiagram-AJRCARHV-C1ZOcrkH.js → stateDiagram-AJRCARHV-CIeR68vv.js} +1 -1
  51. package/dist/assets/{stateDiagram-v2-BHNVJYJU-DhLFvKYR.js → stateDiagram-v2-BHNVJYJU-ypR04tU0.js} +1 -1
  52. package/dist/assets/{timeline-definition-PNZ67QCA-DzzZVw9V.js → timeline-definition-PNZ67QCA-C6PN9QvV.js} +1 -1
  53. package/dist/assets/{vendor-charts-DE5G49hy.js → vendor-charts-BS4X3sTj.js} +1 -1
  54. package/dist/assets/{vendor-mermaid-CGRgJstN.js → vendor-mermaid-Di565VO4.js} +3 -3
  55. package/dist/assets/{vendor-pdf-DN5g5-6x.js → vendor-pdf-CAvJLb8d.js} +3 -3
  56. package/dist/assets/{vennDiagram-CIIHVFJN-Wbyz6W-a.js → vennDiagram-CIIHVFJN-BaxoAqUJ.js} +1 -1
  57. package/dist/assets/{wardley-L42UT6IY-CbajdhJM.js → wardley-L42UT6IY-BCek0J-6.js} +1 -1
  58. package/dist/assets/{wardleyDiagram-YWT4CUSO-Zo53C2NV.js → wardleyDiagram-YWT4CUSO-DsAawl1D.js} +1 -1
  59. package/dist/assets/{xychartDiagram-2RQKCTM6-dEzgiJxo.js → xychartDiagram-2RQKCTM6-BJFU9Wh3.js} +1 -1
  60. package/dist/index.html +2 -2
  61. package/package.json +1 -1
  62. package/dist/assets/App-Cw9VpMIQ.js +0 -247
  63. package/dist/assets/classDiagram-4FO5ZUOK-Bks36vOb.js +0 -1
  64. package/dist/assets/classDiagram-v2-Q7XG4LA2-Bks36vOb.js +0 -1
@@ -0,0 +1,247 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-3D4SJ2Sq.js","./vendor-markdown-CgV5F7BD.js","./vendor-i18n-Dm-c3D_C.js","./vendor-antd-Ce-qhZOr.js","./vendor-mermaid-Di565VO4.js","./main-KJE6TlvG.js","./main-B6snAd4S.css","./index-Cqta1ICV.js","./index-DPB3OsNN.js","./index-Bi-vGirQ.css","./index-DRR_PLI3.js","./index-Do83dUqx.js","./index-BmjFP0ha.js","./core-Cfh-QHsP.js","./index-_XI0Qq6F.js","./vendor-pdf-CAvJLb8d.js","./index-DZwtEBJ8.js","./index-3qkG_le_.css","./index-DD799l9l.js","./index-8u7yjQhY.css","./index-DTwjPw3W.js","./MetricsService-B3MPZEfA.js","./index-D9ODTr93.css","./index-IUnDhddK.js","./SubAgentsPanel-Cv5BQdXg.js","./index-BtKDULhw.js","./index-AIUPRSCn.css","./index-BPzdRxWR.js","./onboardingStorage-BVcEpmTy.js","./vendor-charts-BS4X3sTj.js","./index-Dx9gwpkf.js","./index-CLYKYSO0.css","./FeatureGuide-pqK-Gb1K.js"])))=>i.map(i=>d[i]);
2
+ var gw=Object.defineProperty;var yw=(e,t,n)=>t in e?gw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var vt=(e,t,n)=>yw(e,typeof t!="symbol"?t+"":t,n);import{j as l,M as hr,S as Jt,a as Lg,t as Dg,p as Fg,b as vw,c as vd,d as bw,m as Ng,s as Sw,y as zg,e as Bg,h as gl,f as bd,r as Sd,g as wd,i as Wg}from"./vendor-markdown-CgV5F7BD.js";import{a as S,u as qe,R as rt,i as kt,c as ww,g as Cs}from"./vendor-i18n-Dm-c3D_C.js";import{_ as Lt,bN as xd,au as xw}from"./vendor-mermaid-Di565VO4.js";import{t as st,u as eh,v as _w,$ as Cw,aC as Qs,b8 as Ug,b9 as kw,a1 as Fl,N as Ee,az as Tw,O as ks,aw as Zs,ba as Pw,z as _r,a3 as Ts,bb as qg,Q as xu,j as ze,F as we,x as eo,w as bs,bc as Hg,Z as _d,a4 as Nl,q as dn,bd as Ew,be as Mw,l as ot,X as Tn,a2 as Zi,a7 as Rw,ab as _u,bf as Aw,bg as zl,bh as Xg,V as Cd,bi as Cu,bj as to,bk as jw,bl as Iw,J as yl,n as Ow,H as Yg,bm as $w,bn as Lw,W as no,as as Dw,o as Ye,a9 as Fw,y as kd,A as Jn,G as Bt,bo as Bl,bp as Kg,ay as Nw,aj as zw,D as Td,aO as Vg,bq as Bw,br as Ww,bs as Uw,I as Ss,bt as qw,bu as Hw,aq as Pd,ar as Cr,aD as vl,aN as ao,bv as _a,bw as Gg,bx as Jg,ak as Ed,ae as Xw,p as qa,ag as th,aL as Yw,U as nh,P as Qg,b4 as ku,aU as Kw,aF as Vw,ao as Gw,by as Jw,bz as Qw,aB as Zw,aP as ex,bA as tx,bB as nx,bC as rx,bD as sx,B as ox,b6 as Hs,am as Zg,bE as ax,bF as ey,ac as Md,an as ix,bG as lx,bH as cx,a6 as ux,bI as rh,bJ as sh}from"./vendor-antd-Ce-qhZOr.js";import{r as dx,A as fx,a as hx}from"./main-KJE6TlvG.js";function ty(e){const[t,n]=S.useState(()=>typeof window<"u"?window.matchMedia(e).matches:!1);return S.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 Wl(){return ty("(max-width: 768px)")}const px=({chat:e,isSelected:t,compact:n=!1,onSelect:r,onDelete:s,onPin:o,onUnpin:a,onEdit:i,onGenerateTitle:c,onRunProjectDream:d,isGeneratingTitle:f,isRunningProjectDream:p,titleGenerationError:v})=>{const{t:g}=qe(),[w,m]=S.useState(!1),[x,k]=S.useState(e.title),[C,E]=S.useState(!1),[T,P]=S.useState(!1),{token:A}=st.useToken(),O=S.useCallback(z=>{z.stopPropagation(),i&&x.trim()&&i(e.id,x.trim()),m(!1)},[e.id,x,i]),$=S.useCallback(z=>{z.stopPropagation(),k(e.title),m(!1)},[e.title]),U=[{key:"pin",icon:e.pinned?l.jsx(eh,{style:{color:A.colorWarning}}):l.jsx(_w,{}),label:e.pinned?g("chat.actions.unpin"):g("chat.actions.pin"),onClick:({domEvent:z})=>{z.stopPropagation(),e.pinned?a(e.id):o(e.id)}},{key:"edit",icon:l.jsx(Cw,{}),label:g("chat.chatItem.edit"),onClick:({domEvent:z})=>{z.stopPropagation(),m(!0)}},...c?[{key:"generate-title",icon:f?l.jsx(Qs,{}):l.jsx(Ug,{style:v?{color:A.colorError}:void 0}),label:v||g("chat.actions.generateTitle"),disabled:f,onClick:({domEvent:z})=>{z.stopPropagation(),c(e.id)}}]:[],...d?[{key:"run-project-dream",icon:p?l.jsx(Qs,{}):l.jsx(kw,{}),label:g("chat.actions.runProjectDream"),disabled:p,onClick:({domEvent:z})=>{z.stopPropagation(),d(e.id)}}]:[],{type:"divider"},{key:"delete",icon:l.jsx(Fl,{}),label:g("common.delete"),danger:!0,onClick:({domEvent:z})=>{z.stopPropagation(),s(e.id)}}],J={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)":C||T?"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},ee={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},Y=w?[l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Tw,{style:{color:A.colorSuccess}}),onClick:O,"aria-label":g("common.save")},"save"),l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(ks,{style:{color:A.colorError}}),onClick:$,"aria-label":g("common.cancel")},"cancel")]:C||T?[l.jsx(Zs,{menu:{items:U,className:"lotus-sidebar-actions-menu"},trigger:["click"],placement:"bottomRight",overlayClassName:"lotus-sidebar-actions-dropdown",open:T,onOpenChange:z=>P(z),children:l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Pw,{}),"aria-label":g("common.moreActions","More actions"),onClick:z=>z.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 l.jsx(_r.Item,{style:J,tabIndex:0,onClick:()=>!w&&r(e.id),onKeyDown:z=>{z.key==="Enter"&&!w?(z.preventDefault(),r(e.id)):(z.key==="Delete"||z.key==="Backspace")&&!w&&(z.metaKey||z.ctrlKey)&&(z.preventDefault(),s(e.id))},onMouseEnter:()=>E(!0),onMouseLeave:()=>{T||E(!1)},onFocus:()=>E(!0),onBlur:()=>{T||E(!1)},actions:Y,"data-testid":"chat-item",role:"option","aria-selected":t,"aria-label":e.title||g("chat.sidebar.untitledChat"),children:l.jsx("div",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:w?l.jsx(Ts,{value:x,onChange:z=>k(z.target.value),onClick:z=>z.stopPropagation(),onPressEnter:z=>{z.preventDefault(),O(z)},autoFocus:!0,style:I,variant:"borderless",size:"small"}):l.jsxs("div",{style:{...ee,display:"flex",alignItems:"center",gap:n?4:A.marginXS,minWidth:0},children:[e.pinned&&l.jsx(eh,{style:{color:A.colorWarning,fontSize:11,flexShrink:0}}),l.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),e.kind==="child"?l.jsx("span",{style:{color:A.colorInfo,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap"},children:g("chat.chatItem.childTag")}):null,e.planMode?l.jsxs("span",{style:{color:A.colorPrimary,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:3},children:[l.jsx(qg,{}),g("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,Tu=S.memo(px,mx);Tu.displayName="ChatItem";const oh=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 a=new Date(s.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});t[a]||(t[a]=[]),t[a].push(s)}),Object.keys(t).forEach(s=>{t[s].sort((o,a)=>a.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((a,i)=>Math.max(a,i.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 a=t(s),i=t(o);return a!==i?i-a:oh(n)-oh(r)})},vx=(e,t)=>e[t]?e[t].map(n=>n.id):[],ny=(e,t)=>e[t]?e[t].length:0,bx=e=>e.createdByScheduleId?"Scheduled":new Date(e.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),ah=(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:a,currentSessionId:i,onSelectChat:c,onDeleteChat:d,onDeleteByDate:f,onPinChat:p,onUnpinChat:v,onEditTitle:g,onGenerateTitle:w,onRunProjectDream:m,titleGenerationState:x,projectDreamState:k,token:C,hasActiveFilters:E,onClearFilters:T})=>{const{t:P}=qe(),A=S.useMemo(()=>s.length?s.map($=>{const U=e[$],J=ny(e,$);return{dateKey:$,dateGroup:U,totalChatsInDate:J}}):[],[e,s]);if(!s.length)return l.jsx(xu,{image:xu.PRESENTED_IMAGE_SIMPLE,description:l.jsxs(ze,{direction:"vertical",size:4,align:"center",children:[l.jsx("span",{style:{color:C.colorTextSecondary},children:E?P("chat.sidebar.empty.noMatches","No matching sessions"):P("chat.sidebar.empty.noSessions")}),l.jsx("span",{style:{color:C.colorTextSecondary,fontSize:12},children:E?P("chat.sidebar.empty.filterHint","Try adjusting your search or filters"):P("chat.sidebar.empty.hint")}),E&&l.jsx(Ee,{size:"small",type:"link",onClick:T,children:P("chat.sidebar.empty.clearFilters","Clear filters")})]})});const O=new Set(o);return l.jsx("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:2},children:A.map(({dateKey:$,dateGroup:U,totalChatsInDate:J})=>{const ee=O.has($);return l.jsxs("div",{style:{borderRadius:C.borderRadiusSM,background:"transparent",padding:0},children:[l.jsxs(we,{align:"center",justify:"space-between",style:{cursor:"pointer",padding:"4px 8px",borderRadius:C.borderRadiusSM,transition:"background-color 0.2s ease, color 0.2s ease",border:"1px solid transparent"},role:"button",tabIndex:0,"aria-expanded":ee,"aria-label":`${ah($,P)} (${J})`,onKeyDown:I=>{if(I.key==="Enter"||I.key===" "){I.preventDefault();const Y=new Set(O);Y.has($)?Y.delete($):Y.add($),a(Array.from(Y))}},onMouseEnter:I=>{I.currentTarget.style.background="var(--lotus-sidebar-item-hover-bg, rgba(204, 251, 241, 0.76))",I.currentTarget.style.borderColor="transparent";const Y=I.currentTarget.querySelector(".chat-sidebar-date-group-delete");Y&&(Y.style.opacity="1")},onMouseLeave:I=>{I.currentTarget.style.background="transparent",I.currentTarget.style.borderColor="transparent";const Y=I.currentTarget.querySelector(".chat-sidebar-date-group-delete");Y&&(Y.style.opacity="0")},onClick:()=>{const I=new Set(O);I.has($)?I.delete($):I.add($),a(Array.from(I))},className:"chat-sidebar-date-group-header",children:[l.jsxs(we,{align:"center",gap:"small",style:{minWidth:0},children:[ee?l.jsx(eo,{style:{fontSize:12,opacity:.6}}):l.jsx(bs,{style:{fontSize:12,opacity:.6}}),l.jsxs("span",{style:{fontSize:10.5,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.3px",color:$==="Today"?"var(--lotus-primary)":C.colorTextSecondary,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[ah($,P)," (",J,")"]})]}),l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Fl,{}),className:"chat-sidebar-date-group-delete",style:{color:C.colorTextTertiary,opacity:0,transition:"opacity 0.2s ease"},onClick:I=>{I.stopPropagation(),f($)}})]}),ee?l.jsx("div",{style:{marginTop:2},children:l.jsx(_r,{itemLayout:"horizontal",dataSource:U,split:!1,renderItem:I=>{var Y,z,D,ie,Q,ue;return l.jsxs("div",{children:[l.jsxs(we,{align:"center",gap:6,style:{padding:"4px 8px"},children:[(Y=t[I.id])!=null&&Y.length?l.jsxs(Ee,{size:"small",type:"text",style:{padding:0,minWidth:18,height:18,display:"inline-flex",alignItems:"center",gap:2},"aria-label":n.has(I.id)?P("chat.sidebar.actions.collapseChildren"):P("chat.sidebar.actions.expandChildren"),onClick:me=>{me.preventDefault(),me.stopPropagation(),r(I.id)},children:[l.jsx(Hg,{style:{fontSize:12,color:"var(--lotus-primary)",opacity:n.has(I.id)?1:.85}}),l.jsx("span",{style:{fontSize:9,fontWeight:600,lineHeight:1,color:"var(--lotus-primary)"},children:t[I.id].length})]}):l.jsx("div",{style:{width:18}}),l.jsx("div",{style:{flex:1,minWidth:0,marginLeft:-8},children:l.jsx(Tu,{chat:I,compact:!0,isSelected:I.id===i,onSelect:c,onDelete:d,onPin:p,onUnpin:v,onEdit:g,onGenerateTitle:w,onRunProjectDream:m,isGeneratingTitle:((z=x[I.id])==null?void 0:z.status)==="loading",isRunningProjectDream:((D=k[I.id])==null?void 0:D.status)==="loading",titleGenerationError:((ie=x[I.id])==null?void 0:ie.status)==="error"?(Q=x[I.id])==null?void 0:Q.error:void 0})})]}),n.has(I.id)&&(((ue=t[I.id])==null?void 0:ue.length)??0)>0?l.jsx("div",{style:{marginLeft:18,marginTop:1},children:l.jsx(_r,{itemLayout:"horizontal",dataSource:t[I.id],split:!1,renderItem:me=>{var V,ae,ve,re;return l.jsx("div",{style:{paddingLeft:8,borderLeft:`1px solid ${C.colorBorderSecondary}`,marginLeft:2},children:l.jsx(Tu,{chat:me,compact:!0,isSelected:me.id===i,onSelect:c,onDelete:d,onPin:p,onUnpin:v,onEdit:g,onGenerateTitle:w,onRunProjectDream:m,isGeneratingTitle:((V=x[me.id])==null?void 0:V.status)==="loading",isRunningProjectDream:((ae=k[me.id])==null?void 0:ae.status)==="loading",titleGenerationError:((ve=x[me.id])==null?void 0:ve.status)==="error"?(re=x[me.id])==null?void 0:re.error:void 0})},me.id)}})}):null]},I.id)}})}):null]},$)})})},ih=e=>{let t;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const v=t;t=f??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(g=>g(t,v))}},s=()=>t,i={setState:r,getState:s,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d))},c=t=e(r,s,i);return i},wx=e=>e?ih(e):ih,xx=e=>e;function _x(e,t=xx){const n=rt.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return rt.useDebugValue(n),n}const lh=e=>{const t=wx(e),n=r=>_x(t,r);return Object.assign(n,t),n},Xr=e=>e?lh(e):lh,ry="copilot_ui_theme_v1";function Cx(){var e;try{const t=localStorage.getItem(ry);if(t==="light"||t==="dark")return t}catch{}return(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}const bl=Xr(e=>({themeMode:Cx(),setThemeMode:t=>e({themeMode:t}),toggleTheme:()=>e(t=>({themeMode:t.themeMode==="dark"?"light":"dark"}))})),kx="2026.6.16",Tx={version:kx},Px=Tx.version,{Text:Ex}=ot,Mx=({collapsed:e,onNewChat:t,onOpenSettings:n,token:r})=>{const{t:s}=qe(),o=bl(f=>f.themeMode),a=bl(f=>f.toggleTheme),i=s("chat.sidebar.newSession"),c=s("settings.page.title"),d=o==="dark"?s("settings.app.lightMode","Light mode"):s("settings.app.darkMode","Dark mode");return l.jsxs(we,{vertical:!0,gap:e?"small":10,style:{padding:e?10:12,background:"transparent",borderTop:`1px solid ${r.colorBorderSecondary}`},children:[l.jsx(Ee,{"data-testid":"new-chat","data-tour-id":"new-session",type:"primary",icon:l.jsx(_d,{}),onClick:t,block:!e,shape:"default",size:"small",title:i,"aria-label":i,className:"lotus-primary-cta",style:{...e?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:e?40:38,fontWeight:600},children:!e&&i}),l.jsxs(we,{gap:6,align:"center",children:[l.jsx(Ee,{"data-testid":"open-settings","data-tour-id":"open-settings",icon:l.jsx(Nl,{}),onClick:n,block:!e,shape:"default",size:"small",title:c,"aria-label":c,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&&c}),!e&&l.jsx(dn,{title:d,placement:"top",children:l.jsx(Ee,{"data-testid":"toggle-theme",type:"text",icon:o==="dark"?l.jsx(Ew,{}):l.jsx(Mw,{}),onClick:a,"aria-label":d,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})]}),!e&&l.jsxs(Ex,{type:"secondary","data-testid":"app-version-badge",style:{fontSize:11,textAlign:"center",userSelect:"text"},children:[s("settings.appTab.runningVersion","Running version"),": v",Px]})]})},ch=e=>Symbol.iterator in e,uh=e=>"entries"in e,dh=(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:ch(e)&&ch(t)?uh(e)&&uh(t)?dh(e,t):Rx(e,t):dh({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function Da(e){const t=rt.useRef(void 0);return n=>{const r=e(n);return Ax(t.current,r)?t.current:t.current=r}}const sy=()=>!1,oy=e=>{if(!sy())return!1;try{return localStorage.getItem(e)==="1"}catch{return!1}},jx=()=>oy("bodhi_debug_ui_layout"),Dn=(e,t)=>{jx()&&console.log(`[ui-layout] ${e}`,t??"")},ke=(e,t,...n)=>{sy()&&oy("bodhi_debug_verbose")&&console.log(`${e} ${t}`,...n)};var Ec={};const Mc="copilot_backend_base_url",ay="http://127.0.0.1:9562/v1",Ix=9562,ws=e=>e.trim().replace(/\/+$/,""),Ox=()=>{const t=Ec==null?void 0:Ec.VITE_BACKEND_BASE_URL;return t?ws(t):null},ni=()=>{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}},Rd=e=>{const t=e.trim().toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="::1"},$x=(e=ni())=>(e==null?void 0:e.protocol.toLowerCase())==="https:",Lx=e=>{try{return new URL(ws(e)).protocol.toLowerCase()==="http:"}catch{return!1}},Dx=e=>{try{const t=new URL(ws(e));return Rd(t.hostname)}catch{return!1}},Fx=(e=ni())=>{if(!e)return null;const t=e.protocol.toLowerCase(),n=e.hostname.trim();return n?t==="https:"?ws(`https://${n}/v1`):t==="http:"?ws(`http://${n}/v1`):null:null},Nx=(e,t=ni())=>{if(!t)return!1;const n=t.hostname.trim();return n?$x(t)&&Lx(e)?!0:Rd(n)?!1:Dx(e):!1},zx=(e=ni())=>{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:"?Fx(e):Rd(n)?ay:ws(`http://${n}:${Ix}/v1`):null},Bx=()=>{const e=Ox();return e||(zx()??ay)},xs=()=>{const e=ni(),t=localStorage.getItem(Mc);if(t){const n=ws(t);if(Nx(n,e))console.warn("Ignoring stored backend override because it is incompatible with the current page origin:",n),localStorage.removeItem(Mc);else try{return new URL(n),n}catch{console.warn("Invalid stored backend URL, using default:",n),localStorage.removeItem(Mc)}}return Bx()};class Ha extends Error{constructor(t,n,r,s){super(t),this.status=n,this.statusText=r,this.body=s,this.name="ApiError"}}function V$(e){return e instanceof Ha}class iy{constructor(t={}){vt(this,"baseUrl");vt(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 a=await t.text().catch(()=>{});let i=t.statusText;if(a)try{const c=JSON.parse(a),d=typeof(c==null?void 0:c.error)=="object"?(r=c.error)==null?void 0:r.message:void 0;i=(typeof(c==null?void 0:c.error)=="string"?c.error:void 0)||(typeof d=="string"?d:void 0)||c.message||c.detail||t.statusText}catch{i=a||t.statusText}throw new Ha(i,t.status,t.statusText,a)}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 a=await fetch(t,n);if(a.status>=500&&o<r-1){const i=1e3*Math.pow(2,o);console.warn(`Request failed with ${a.status}, retrying in ${i}ms (attempt ${o+1}/${r})`),await this.delay(i);continue}return a}catch(a){if(s=a,o<r-1){const i=1e3*Math.pow(2,o);console.warn(`Network error: ${s.message}, retrying in ${i}ms (attempt ${o+1}/${r})`),await this.delay(i)}}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 a=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(a)}finally{clearTimeout(o)}}async post(t,n,r){const s=this.buildUrl(t),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=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(i)}finally{clearTimeout(a)}}async put(t,n,r){const s=this.buildUrl(t),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=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(i)}finally{clearTimeout(a)}}async patch(t,n,r){const s=this.buildUrl(t),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=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(i)}finally{clearTimeout(a)}}async delete(t,n){const r=this.buildUrl(t),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const a=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(a)}finally{clearTimeout(o)}}async request(t,n,r){const s=this.buildUrl(n),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=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(i)}finally{clearTimeout(a)}}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 Ha(`API request failed: ${s.statusText}`,s.status,s.statusText);return s}}const Ue=new iy,ht=new iy({baseUrl:(()=>{let e=xs().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`})()}),Wx=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,Ux=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,qx=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}},Hx=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}))}),Ai=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}),cs=class cs{static getInstance(){return cs.instance||(cs.instance=new cs),cs.instance}async sendMessage(t){var r,s,o;ke("[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 ht.post("chat",t);return ke("[AgentClient]","chat.response",{requestedSessionId:t.session_id??null,sessionId:n.session_id,status:n.status}),n}async execute(t,n,r,s,o){const a={};n&&(a.model=n),r&&(a.reasoning_effort=r),s&&(a.client_sync=s),o&&(a.model_ref=o,a.provider=o.provider),ke("[AgentClient]","execute.request",{sessionId:t,model:a.model??null,reasoningEffort:a.reasoning_effort??null,modelRef:a.model_ref??null,provider:a.provider??null,clientSync:Wx(a.client_sync)});const i=await ht.post(`execute/${t}`,a);return ke("[AgentClient]","execute.response",{sessionId:t,status:i.status,runId:i.run_id??null,eventsUrl:i.events_url,sync:Ux(i.sync)}),i}async listSessions(){ke("[AgentClient]","sessions.list.request",{});const t=await ht.get("sessions");return ke("[AgentClient]","sessions.list.response",Hx(t.sessions)),t}async getTaskList(t){const n=encodeURIComponent(t),r=await ht.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 ht.post("sessions",t)}async patchSession(t,n){const r=encodeURIComponent(t);await ht.patch(`sessions/${r}`,n)}async regenerateSessionTitle(t){const n=encodeURIComponent(t);await ht.post(`sessions/${n}/regenerate-title`)}async getSessionSystemPrompt(t){const n=encodeURIComponent(t);return ht.get(`sessions/${n}/system-prompt`)}async clearSession(t){const n=encodeURIComponent(t);await ht.post(`sessions/${n}/clear`)}async runProjectDream(t){const n=encodeURIComponent(t);return ht.post(`sessions/${n}/project-dream/run`)}async truncateSessionMessages(t,n){const r=encodeURIComponent(t);return ht.post(`sessions/${r}/messages/truncate`,n)}async restoreSessionState(t,n){const r=encodeURIComponent(t);return ht.post(`sessions/${r}/restore`,n)}async patchSessionMessage(t,n,r){const s=encodeURIComponent(t),o=encodeURIComponent(n);await ht.patch(`sessions/${s}/messages/${o}`,r)}async deleteSessionMessage(t,n){const r=encodeURIComponent(t),s=encodeURIComponent(n);await ht.delete(`sessions/${r}/messages/${s}`)}async cleanupSessions(t,n){await ht.post("sessions/cleanup",{mode:t,keep_pinned:n})}async devResetSessions(){await ht.post("dev/reset")}async getRunningSessions(){ke("[AgentClient]","runs.active.request",{});const t=await ht.get("runs/active");return ke("[AgentClient]","runs.active.response",Xx(t)),t}async listSchedules(){return ht.get("schedules")}async createSchedule(t){return ht.post("schedules",t)}async patchSchedule(t,n){const r=encodeURIComponent(t);return ht.patch(`schedules/${r}`,n)}async deleteSchedule(t){const n=encodeURIComponent(t);await ht.delete(`schedules/${n}`)}async runScheduleNow(t){const n=encodeURIComponent(t);await ht.post(`schedules/${n}/run`)}async listScheduleSessions(t){const n=encodeURIComponent(t);return ht.get(`schedules/${n}/sessions`)}async listScheduleRuns(t){const n=encodeURIComponent(t);return ht.get(`schedules/${n}/runs`)}async subscribeToEvents(t,n,r){const s=r==null?void 0:r.signal;ke("[AgentClient]","events.subscribe.request",{sessionId:t});const o=xs().trim().replace(/\/+$/,""),i=`${o.endsWith("/v1")?o.slice(0,-3):o}/api/v1/events/${encodeURIComponent(t)}`;return ke("[AgentClient]","events.subscribe.url",{sessionId:t,eventsUrl:i}),await new Promise((c,d)=>{if(s!=null&&s.aborted){ke("[AgentClient]","events.subscribe.aborted_before_connect",{sessionId:t}),c();return}let f=!1,p=!1,v=null;const g=()=>{ke("[AgentClient]","events.subscribe.abort",{sessionId:t,terminalSeen:p}),m()},w=()=>{v&&(v.close(),v=null),s==null||s.removeEventListener("abort",g)},m=()=>{f||(f=!0,ke("[AgentClient]","events.subscribe.resolve",{sessionId:t,terminalSeen:p,aborted:(s==null?void 0:s.aborted)??!1}),w(),c())},x=k=>{f||(f=!0,ke("[AgentClient]","events.subscribe.reject",{sessionId:t,terminalSeen:p,aborted:(s==null?void 0:s.aborted)??!1,error:k}),w(),d(k))};s==null||s.addEventListener("abort",g,{once:!0});try{v=new EventSource(i,{withCredentials:!0})}catch(k){x(k);return}v.onopen=()=>{ke("[AgentClient]","events.subscribe.open",{sessionId:t})},v.onmessage=k=>{const C=k.data;if(C==="[DONE]"){p=!0,ke("[AgentClient]","events.subscribe.done",{sessionId:t}),m();return}if(C!=="[KEEPALIVE]")try{const E=JSON.parse(C);(E.type==="execution_started"||E.type==="complete"||E.type==="cancelled"||E.type==="error"||E.type==="runner_progress"||E.type==="need_clarification")&&ke("[AgentClient]","events.subscribe.event",{sessionId:t,...Ai(E)}),this.handleEvent(E,n),(E.type==="complete"||E.type==="cancelled"||E.type==="error")&&(p=!0)}catch(E){console.warn("Failed to parse event:",C,E)}},v.onerror=()=>{if(ke("[AgentClient]","events.subscribe.error",{sessionId:t,terminalSeen:p,aborted:(s==null?void 0:s.aborted)??!1}),s!=null&&s.aborted||p){m();return}x(new Error(`EventSource connection failed for session ${t}`))}})}subscribeToAccountStream(t,n){const r=xs().trim().replace(/\/+$/,""),s=r.endsWith("/v1")?r.slice(0,-3):r,o=n!=null&&n.since&&n.since>0?`?since=${n.since}`:"",a=`${s}/api/v1/stream${o}`;ke("[AgentClient]","stream.subscribe.url",{url:a});const i=new EventSource(a,{withCredentials:!0});return i.onopen=()=>{var c;ke("[AgentClient]","stream.subscribe.open",{}),(c=t.onOpen)==null||c.call(t)},i.onmessage=c=>{var f;const d=c.data;if(d!=="[KEEPALIVE]")try{const p=JSON.parse(d);if(p.type==="feed_reset"){ke("[AgentClient]","stream.subscribe.feed_reset",p),(f=t.onReset)==null||f.call(t);return}t.onChange(p)}catch(p){console.warn("Failed to parse change-feed event:",d,p)}},i.onerror=()=>{var c;ke("[AgentClient]","stream.subscribe.error",{}),(c=t.onError)==null||c.call(t)},i}handleEvent(t,n){var r,s,o,a,i,c,d,f,p,v,g,w,m,x,k,C,E,T,P,A,O,$,U,J,ee,I,Y,z,D,ie,Q,ue,me;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":(a=n.onToolStart)==null||a.call(n,t.tool_call_id||"",t.tool_name||"",t.arguments||{});break;case"tool_complete":t.result&&((i=n.onToolComplete)==null||i.call(n,t.tool_call_id||"",t.result));break;case"tool_error":(c=n.onToolError)==null||c.call(n,t.tool_call_id||"",t.error||"");break;case"task_list_updated":t.task_list&&((d=n.onTaskListUpdated)==null||d.call(n,t.task_list));break;case"task_list_item_progress":if(t.session_id&&t.item_id&&t.status&&t.tool_calls_count!==void 0&&t.version!==void 0){const V=t.status;if(!(V==="pending"||V==="in_progress"||V==="completed"||V==="blocked"))break;(f=n.onTaskListItemProgress)==null||f.call(n,{session_id:t.session_id,item_id:t.item_id,status:V,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&&((p=n.onTaskListCompleted)==null||p.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&&((v=n.onTaskEvaluationStarted)==null||v.call(n,t.session_id,t.items_count));break;case"task_evaluation_completed":t.session_id&&t.updates_count!==void 0&&t.reasoning&&((g=n.onTaskEvaluationCompleted)==null||g.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"&&((m=n.onContextCompressionStatus)==null||m.call(n,t.phase,t.status));break;case"tool_lifecycle":(x=n.onToolLifecycle)==null||x.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&&((k=n.onContextSummarized)==null||k.call(n,t.summary_info));break;case"context_pressure_notification":typeof t.percent=="number"&&typeof t.level=="string"&&((C=n.onContextPressureNotification)==null||C.call(n,t.percent,t.level,t.message||""));break;case"sub_agent_started":t.parent_session_id&&t.child_session_id&&((E=n.onSubAgentStarted)==null||E.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&&((T=n.onSubAgentEvent)==null||T.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&&((P=n.onSubAgentHeartbeat)==null||P.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"&&(($=n.onRunnerProgress)==null||$.call(n,t.session_id,t.round_count));break;case"need_clarification":(U=n.onNeedClarification)==null||U.call(n,t);break;case"notification":(J=n.onNotification)==null||J.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"&&((ee=n.onSessionTitleUpdated)==null||ee.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"&&((I=n.onSessionPinnedUpdated)==null||I.call(n,{type:"session_pinned_updated",session_id:t.session_id,pinned:t.pinned,updated_at:t.updated_at}));break;case"plan_mode_entered":(Y=n.onPlanModeEntered)==null||Y.call(n,t);break;case"plan_mode_exited":(z=n.onPlanModeExited)==null||z.call(n,t);break;case"plan_file_updated":(D=n.onPlanFileUpdated)==null||D.call(n,t);break;case"goal_status_changed":(ie=n.onGoalStatusChanged)==null||ie.call(n,t);break;case"complete":ke("[AgentClient]","events.dispatch.complete",Ai(t)),(Q=n.onComplete)==null||Q.call(n,t.usage);break;case"cancelled":ke("[AgentClient]","events.dispatch.cancelled",Ai(t)),(ue=n.onCancelled)==null||ue.call(n,t.message);break;case"error":ke("[AgentClient]","events.dispatch.error",Ai(t)),(me=n.onError)==null||me.call(n,t.message||t.error||"Unknown error");break;default:console.warn("Unknown event type:",t)}}async stopGeneration(t){await ht.post(`stop/${t}`)}async deleteSession(t){const n=encodeURIComponent(t);await ht.delete(`sessions/${n}`)}async getHistory(t,n){ke("[AgentClient]","history.request",{sessionId:t,sinceMessageId:n});const r=n?`history/${t}?since_message_id=${encodeURIComponent(n)}`:`history/${t}`,s=await ht.get(r);return ke("[AgentClient]","history.response",qx(s)),s}async healthCheck(){try{return await ht.get("health"),!0}catch{return!1}}};vt(cs,"instance");let Pn=cs;const Vs=Pn.getInstance(),fh="provider",Fa=Xr(e=>({isOpen:!1,origin:"chat",activeTabKey:fh,open:(t,n=fh)=>e({isOpen:!0,origin:t,activeTabKey:n}),close:()=>e({isOpen:!1}),setActiveTabKey:t=>e({activeTabKey:t})})),hh={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},Xa=new Map,ji=e=>{const t=Xa.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([n,r])=>[n,r.getState()])):{}},Yx=(e,t,n)=>{if(e===void 0)return{type:"untracked",connection:t.connect(n)};const r=Xa.get(n.name);if(r)return{type:"tracked",store:e,...r};const s={connection:t.connect(n),stores:{}};return Xa.set(n.name,s),{type:"tracked",store:e,...s}},Kx=(e,t)=>{if(t===void 0)return;const n=Xa.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&Xa.delete(e))},Vx=e=>{var t,n;if(!e)return;const r=e.split(`
3
+ `),s=r.findIndex(a=>a.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]},Gx=(e,t={})=>(n,r,s)=>{const{enabled:o,anonymousActionType:a,store:i,...c}=t;let d;try{d=(o??(hh?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!d)return e(n,r,s);const{connection:f,...p}=Yx(i,d,c);let v=!0;s.setState=(m,x,k)=>{const C=n(m,x);if(!v)return C;const E=k===void 0?{type:a||Vx(new Error().stack)||"anonymous"}:typeof k=="string"?{type:k}:k;return i===void 0?(f==null||f.send(E,r()),C):(f==null||f.send({...E,type:`${i}/${E.type}`},{...ji(c.name),[i]:s.getState()}),C)},s.devtools={cleanup:()=>{f&&typeof f.unsubscribe=="function"&&f.unsubscribe(),Kx(c.name,i)}};const g=(...m)=>{const x=v;v=!1,n(...m),v=x},w=e(s.setState,r,s);if(p.type==="untracked"?f==null||f.init(w):(p.stores[p.store]=s,f==null||f.init(Object.fromEntries(Object.entries(p.stores).map(([m,x])=>[m,m===p.store?w:x.getState()])))),s.dispatchFromDevtools&&typeof s.dispatch=="function"){let m=!1;const x=s.dispatch;s.dispatch=(...k)=>{(hh?"production":void 0)!=="production"&&k[0].type==="__setState"&&!m&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),m=!0),x(...k)}}return f.subscribe(m=>{var x;switch(m.type){case"ACTION":if(typeof m.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return Rc(m.payload,k=>{if(k.type==="__setState"){if(i===void 0){g(k.state);return}Object.keys(k.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 C=k.state[i];if(C==null)return;JSON.stringify(s.getState())!==JSON.stringify(C)&&g(C);return}s.dispatchFromDevtools&&typeof s.dispatch=="function"&&s.dispatch(k)});case"DISPATCH":switch(m.payload.type){case"RESET":return g(w),i===void 0?f==null?void 0:f.init(s.getState()):f==null?void 0:f.init(ji(c.name));case"COMMIT":if(i===void 0){f==null||f.init(s.getState());return}return f==null?void 0:f.init(ji(c.name));case"ROLLBACK":return Rc(m.state,k=>{if(i===void 0){g(k),f==null||f.init(s.getState());return}g(k[i]),f==null||f.init(ji(c.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return Rc(m.state,k=>{if(i===void 0){g(k);return}JSON.stringify(s.getState())!==JSON.stringify(k[i])&&g(k[i])});case"IMPORT_STATE":{const{nextLiftedState:k}=m.payload,C=(x=k.computedStates.slice(-1)[0])==null?void 0:x.state;if(!C)return;g(i===void 0?C:C[i]),f==null||f.send(null,k);return}case"PAUSE_RECORDING":return v=!v}return}}),w},Jx=Gx,Rc=(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)},Qx=e=>(t,n,r)=>{const s=r.subscribe;return r.subscribe=(a,i,c)=>{let d=a;if(i){const f=(c==null?void 0:c.equalityFn)||Object.is;let p=a(r.getState());d=v=>{const g=a(v);if(!f(p,g)){const w=p;i(p=g,w)}},c!=null&&c.fireImmediately&&i(p,p)}return s(d)},e(t,n,r)},Zx=Qx;function e_(e,t){let n;try{n=e()}catch{return}return{getItem:s=>{var o;const a=c=>c===null?null:JSON.parse(c,void 0),i=(o=n.getItem(s))!=null?o:null;return i instanceof Promise?i.then(a):a(i)},setItem:(s,o)=>n.setItem(s,JSON.stringify(o,void 0)),removeItem:s=>n.removeItem(s)}}const Pu=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return Pu(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return Pu(r)(n)}}}},t_=(e,t)=>(n,r,s)=>{let o={storage:e_(()=>localStorage),partialize:m=>m,version:0,merge:(m,x)=>({...x,...m}),...t},a=!1;const i=new Set,c=new Set;let d=o.storage;if(!d)return e((...m)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),n(...m)},r,s);const f=()=>{const m=o.partialize({...r()});return d.setItem(o.name,{state:m,version:o.version})},p=s.setState;s.setState=(m,x)=>{p(m,x),f()};const v=e((...m)=>{n(...m),f()},r,s);s.getInitialState=()=>v;let g;const w=()=>{var m,x;if(!d)return;a=!1,i.forEach(C=>{var E;return C((E=r())!=null?E:v)});const k=((x=o.onRehydrateStorage)==null?void 0:x.call(o,(m=r())!=null?m:v))||void 0;return Pu(d.getItem.bind(d))(o.name).then(C=>{if(C)if(typeof C.version=="number"&&C.version!==o.version){if(o.migrate){const E=o.migrate(C.state,C.version);return E instanceof Promise?E.then(T=>[!0,T]):[!0,E]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,C.state];return[!1,void 0]}).then(C=>{var E;const[T,P]=C;if(g=o.merge(P,(E=r())!=null?E:v),n(g,!0),T)return f()}).then(()=>{k==null||k(g,void 0),g=r(),a=!0,c.forEach(C=>C(g))}).catch(C=>{k==null||k(void 0,C)})};return s.persist={setOptions:m=>{o={...o,...m},m.storage&&(d=m.storage)},clearStorage:()=>{d==null||d.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>w(),hasHydrated:()=>a,onHydrate:m=>(i.add(m),()=>{i.delete(m)}),onFinishHydration:m=>(c.add(m),()=>{c.delete(m)})},o.skipHydration||w(),g||v},n_=t_;class r_{async getProviderConfig(){return Ue.get("/bamboo/settings/provider")}async saveProviderConfig(t){return Ue.post("/bamboo/settings/provider",t)}async reloadConfig(){return Ue.post("/bamboo/settings/reload")}async getCopilotAuthStatus(){return Ue.post("/bamboo/copilot/auth/status")}async startCopilotAuth(){return Ue.post("/bamboo/copilot/auth/start")}async completeCopilotAuth(t){return Ue.post("/bamboo/copilot/auth/complete",t)}async authenticateCopilot(){return Ue.post("/bamboo/copilot/authenticate")}async logoutCopilot(){return Ue.post("/bamboo/copilot/logout")}async fetchProviderModels(t){return(await Ue.post("/bamboo/settings/provider/models",{provider:t})).models}async getProviderCatalog(){return Ue.get("/bamboo/provider-catalog")}async fetchCatalogModels(t){const n=t?{provider:t}:{};return Ue.post("/bamboo/provider-catalog/fetch-models",n)}async getProviderInstances(){return Ue.get("/bamboo/settings/provider-instances")}async createProviderInstance(t){return Ue.post("/bamboo/settings/provider-instances",t)}async updateProviderInstance(t,n){return Ue.put(`/bamboo/settings/provider-instances/${encodeURIComponent(t)}`,n)}async deleteProviderInstance(t){return Ue.delete(`/bamboo/settings/provider-instances/${encodeURIComponent(t)}`)}async setDefaultProviderInstance(t){return Ue.post("/bamboo/settings/provider-instances/default",{default_provider_instance_id:t})}async getEnvVars(){return Ue.get("/bamboo/env-vars")}async upsertEnvVar(t){return Ue.post("/bamboo/env-vars",t)}async deleteEnvVar(t){return Ue.delete(`/bamboo/env-vars/${encodeURIComponent(t)}`)}async replaceEnvVars(t){return Ue.post("/bamboo/env-vars/replace",{entries:t})}}const Ca=new r_,s_=(e,t,n)=>{var o;if(!(e!=null&&e.models)||!t.trim())return[];const r=e.models.filter(a=>a.reference.provider===t);if(r.length>0)return r;const s=(o=n.find(a=>a.id===t))==null?void 0:o.type;return s?e.models.filter(a=>a.reference.provider===s):[]},mt=Xr((e,t)=>({currentProvider:"copilot",providerConfig:{provider:"copilot",defaults:void 0,providers:{}},providerInstances:[],defaultProviderInstanceId:null,isInstancesLoaded:!1,isLoading:!1,error:null,selectedModelRef:null,catalog:null,isCatalogFetching:!1,loadProviderConfig:async()=>{var n,r;e({isLoading:!0,error:null});try{const s=await Ca.getProviderConfig();if(!((r=(n=s.defaults)==null?void 0:n.chat)!=null&&r.model)&&s.provider&&s.providers){const o=s.provider,a=s.providers[o],i=a==null?void 0:a.model;i&&(s.defaults={chat:{provider:o,model:i}})}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})}},loadProviderInstances:async()=>{var n,r,s,o;e({isLoading:!0,error:null});try{const a=await Ca.getProviderInstances(),i=a.instances??[],c=a.default_provider_instance_id??null,d={};for(const p of i)d[p.id]=p.config;const f={provider:c??"",defaults:a.defaults,providers:d,features:a.features};if(!((r=(n=f.defaults)==null?void 0:n.chat)!=null&&r.model)&&c){const p=d[c],v=p==null?void 0:p.model;v&&(f.defaults={chat:{provider:c,model:v}})}e({providerInstances:i,defaultProviderInstanceId:c,currentProvider:c??((o=(s=a.defaults)==null?void 0:s.chat)==null?void 0:o.provider)??"",providerConfig:f,isInstancesLoaded:!0,isLoading:!1})}catch(a){console.error("Failed to load provider instances:",a),e({error:a instanceof Error?a.message:"Failed to load provider instances",isLoading:!1,isInstancesLoaded:!1})}},setCurrentProvider:n=>{e({currentProvider:n})},updateProviderConfig:n=>{e(r=>({providerConfig:{...r.providerConfig,...n}}))},getActiveModel:()=>{var s,o,a;return((a=(o=(s=t().providerConfig.defaults)==null?void 0:s.chat)==null?void 0:o.model)==null?void 0:a.trim())||void 0},getFastModel:()=>{var s,o,a;const n=t();return((a=(o=(s=n.providerConfig.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:a.trim())||n.getActiveModel()},getVisionModel:()=>{var s,o,a;const n=t();return((a=(o=(s=n.providerConfig.defaults)==null?void 0:s.vision)==null?void 0:o.model)==null?void 0:a.trim())||n.getActiveModel()},isProviderModelRefEnabled:()=>!0,setSelectedModelRef:n=>{e({selectedModelRef:n})},loadCatalog:async()=>{try{const n=await Ca.getProviderCatalog();e({catalog:n})}catch{}},fetchCatalogModels:async n=>{e({isCatalogFetching:!0});try{await Ca.fetchCatalogModels(n),await t().loadCatalog()}catch{}finally{e({isCatalogFetching:!1})}},getFastModelRef:()=>{var o,a,i,c;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.fast;if((a=r==null?void 0:r.model)!=null&&a.trim())return r;const s=(i=n.providerConfig.defaults)==null?void 0:i.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getVisionModelRef:()=>{var o,a,i,c;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.vision;if((a=r==null?void 0:r.model)!=null&&a.trim())return r;const s=(i=n.providerConfig.defaults)==null?void 0:i.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getModelsForProvider:n=>{const{catalog:r,providerInstances:s}=t();return s_(r,n,s)},getProviderInstance:n=>t().providerInstances.find(r=>r.id===n),getProviderDisplayLabel:n=>{const r=t().providerInstances.find(s=>s.id===n);return r?r.label||r.type:n},getProviderType:n=>{const r=t().providerInstances.find(s=>s.id===n);return(r==null?void 0:r.type)??n}})),G$=Object.freeze(Object.defineProperty({__proto__:null,useProviderStore:mt},Symbol.toStringTag,{value:"Module"}));function ly(e){return e.type==="session_title_updated"||e.type==="session_pinned_updated"}function Eu(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 o_(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 a_=5e3,ph=80,i_=16,Nr=(e,t)=>{},Ad=e=>e!==void 0&&e!=="idle"&&e!=="completed"&&e!=="error"&&e!=="cancelled",l_=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children"||e==="settling",c_=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children",cy=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}),an=(e,t)=>e[t]??cy(t),bt=(e,t)=>[...e.length>=i_?e.slice(-15):e,t],u_=e=>e.length<=ph?e:e.slice(e.length-ph),d_=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]),f_=(e,t)=>e?e.question===t.question&&e.allowCustom===t.allowCustom&&e.toolCallId===t.toolCallId&&d_(e.options,t.options):!1,uy=(e,t,n)=>{const r=f_(e.interaction.pendingQuestion,t)?e.interaction.pendingQuestion:{...t,receivedAt:n};return e.phase==="waiting_user_answer"&&e.confidence==="live"&&r===e.interaction.pendingQuestion?e:{...e,phase:"waiting_user_answer",confidence:"live",interaction:{...e.interaction,pendingQuestion:r,respondMode:null},activeReasons:bt(e.activeReasons,"sse:need_clarification")}},ri=new Set(["idle","completed","error","cancelled","settling","waiting_user_answer"]),Ps=e=>ri.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"},zt=(e,t,n)=>({...e,[t]:n}),h_=(e,t)=>{if(!(t in e))return e;const n={...e};return delete n[t],n},mh=(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:bt(e.activeReasons,t)};return Ps(s)},p_=(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:bt(e.activeReasons,"sse:token")};return Ps(r)},m_=(e,t,n,r)=>{const o=e.stream.activeToolCalls.findIndex(i=>i.toolCallId===t)>=0?e.stream.activeToolCalls:[...e.stream.activeToolCalls,{toolCallId:t,toolName:n,startedAt:r}],a={...e,confidence:"live",stream:{...e.stream,activeToolCalls:o},activeReasons:bt(e.activeReasons,"sse:tool_start")};return Ps(a)},g_=(e,t,n)=>{const r=e.stream.activeToolCalls.findIndex(d=>d.toolCallId===t);if(r<0)return e;const s=e.stream.activeToolCalls[r],o=s.preview??"",a=u_(o+n),i={...s,preview:a},c=[...e.stream.activeToolCalls];return c[r]=i,{...e,stream:{...e.stream,activeToolCalls:c}}},y_=(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:bt(e.activeReasons,n)};return s.timestamps.terminalAt&&s.children.runningCount===0&&s.stream.activeToolCalls.length===0&&!ri.has(s.phase)?{...s,phase:"settling",timestamps:{...s.timestamps,settlingStartedAt:s.timestamps.settlingStartedAt??s.timestamps.terminalAt}}:Ps(s)},dy=(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"},i=(o.status===void 0||o.status==="running"?1:0)-(s?1:0),c={...e,confidence:"live",children:{byId:{...e.children.byId,[t]:o},runningCount:Math.max(0,e.children.runningCount+i)},activeReasons:bt(e.activeReasons,"sse:sub_agent_started")};return Ps(c)},Mu=(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 a=o.status===void 0||o.status==="running";let i=0;r!==void 0&&(i=(a?1:0)-(s?1:0));const c=Math.max(0,e.children.runningCount+i),d={...e,children:{byId:{...e.children.byId,[t]:o},runningCount:c}};return d.timestamps.terminalAt&&d.children.runningCount===0&&d.stream.activeToolCalls.length===0&&!ri.has(d.phase)?{...d,phase:"settling",timestamps:{...d.timestamps,settlingStartedAt:d.timestamps.settlingStartedAt??d.timestamps.terminalAt},activeReasons:bt(d.activeReasons,"sse:sub_agent_completed")}:Ps(d)},v_=(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&&!ri.has(o.phase)?{...o,phase:"settling",timestamps:{...o.timestamps,settlingStartedAt:o.timestamps.settlingStartedAt??o.timestamps.terminalAt}}:Ps(o)},gh=(e,t,n)=>{switch(t.type){case"token":return mh(e,"sse:token",n);case"reasoning_token":return mh(e,"sse:token",n);case"tool_start":{const r=t.tool_call_id??"",s=t.tool_name??"";return r?m_(e,r,s,n()):e}case"tool_token":{const r=t.tool_call_id??"";return r?g_(e,r,t.content??""):e}case"tool_complete":case"tool_error":{const r=t.tool_call_id??"";return r?y_(e,r,"sse:tool_complete"):e}case"tool_lifecycle":return e;case"sub_agent_started":{const r=t.child_session_id??"";return r?dy(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()),Mu(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 Mu(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 uy(e,r,n())}case"execution_started":{const r=t.run_id;return r?e.phase!=="starting"&&e.phase!=="settling"?{...e,backendRunId:r,confidence:"live",activeReasons:bt(e.activeReasons,"sse:execution_started")}:{...e,phase:"running",confidence:"live",backendRunId:r,timestamps:{...e.timestamps,confirmedAt:n()},activeReasons:bt(e.activeReasons,"sse:execution_started")}:e}case"complete":{if(ri.has(e.phase))return e;const r=n();return{...e,phase:"settling",timestamps:{...e.timestamps,terminalAt:r,settlingStartedAt:e.timestamps.settlingStartedAt??r},activeReasons:bt(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:bt(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:bt(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}},b_=e=>e==="completed"||e==="error"||e==="cancelled",S_=(e,t,n)=>{const r=t.last_run_status,s=b_(r)?r:null,o=n(),a=t.has_pending_question===void 0?null:t.has_pending_question,i=t.running_child_count===void 0?null:t.running_child_count,c={...e,backend:{...e.backend,isRunning:t.is_running,lastRunStatus:s,lastRunError:t.last_run_error??null,syncedAt:o,hasPendingQuestion:a,runningChildCount:i},backendRunId:e.backendRunId};if(t.is_running)return e.phase==="idle"||e.phase==="completed"||e.phase==="error"||e.phase==="cancelled"?{...c,phase:"running",confidence:"summary",activeReasons:bt(c.activeReasons,"summary:is_running")}:e.phase==="starting"?{...c,phase:"running",confidence:"summary",timestamps:{...c.timestamps,confirmedAt:o},activeReasons:bt(c.activeReasons,"summary:is_running")}:c;if(Nr("summary.notRunning.evaluate",{sessionId:t.id,phase:e.phase,generation:e.generation,backendRunId:e.backendRunId,summaryIsRunning:t.is_running,optimisticAt:e.timestamps.optimisticAt}),new Set(["starting","running","streaming","running_tools","running_children","settling"]).has(e.phase)){if(s==="completed")return Nr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"completed",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:bt(c.activeReasons,"summary:terminal")};if(s==="error")return Nr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"error",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},error:{message:t.last_run_error??"Backend reported error",source:"summary",occurredAt:o},activeReasons:bt(c.activeReasons,"summary:terminal")};if(s==="cancelled")return Nr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"cancelled",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:bt(c.activeReasons,"summary:terminal")};if(e.timestamps.optimisticAt){const f=Date.parse(o)-Date.parse(e.timestamps.optimisticAt);if(Number.isFinite(f)&&f<a_)return Nr("summary.notRunning.keepOptimistic",{sessionId:t.id,phase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),c}return Nr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"idle",confidence:"summary",activeReasons:bt(c.activeReasons,"summary:terminal")}}return c},w_=()=>new Date().toISOString(),Sl=(e,t,n=w_)=>{switch(t.type){case"ensureSession":return t.sessionId in e?e:zt(e,t.sessionId,cy(t.sessionId));case"markOptimisticStart":{const r=an(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:bt(r.activeReasons,"optimistic:send")};return zt(e,t.sessionId,o)}case"markRespondStart":{const r=an(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:bt(r.activeReasons,"optimistic:respond")};return zt(e,t.sessionId,o)}case"markRetryStart":{const r=an(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:bt(r.activeReasons,"optimistic:retry")};return zt(e,t.sessionId,o)}case"markForceSubscribe":{const r=an(e,t.sessionId);if(Ad(r.phase))return e;const s={...r,phase:"running",confidence:"optimistic",generation:r.generation+1,error:null,activeReasons:bt(r.activeReasons,"optimistic:openSession.forceSubscribe")};return zt(e,t.sessionId,s)}case"markCancel":{const r=an(e,t.sessionId),s=n(),o={...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,settledAt:s},activeReasons:bt(r.activeReasons,"user:cancel")};return zt(e,t.sessionId,o)}case"markSettleTimeout":{const r=an(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:bt(r.activeReasons,"settle:timeout")};return zt(e,t.sessionId,s)}case"markStreamStarted":{const r=an(e,t.sessionId);if(t.generation!==r.generation)return e;const s=p_(r,n);return s===r?e:zt(e,t.sessionId,s)}case"applyAgentEvent":{const r=an(e,t.sessionId);if(t.generation!==r.generation)return Nr("drop.applyAgentEvent.generationMismatch",{sessionId:t.sessionId,actionGeneration:t.generation,entryGeneration:r.generation,eventType:t.event.type,phase:r.phase,backendRunId:r.backendRunId??null}),e;const s=gh(r,t.event,n);return s===r?e:zt(e,t.sessionId,s)}case"applyExecutionStarted":{const r=an(e,t.sessionId);if(t.generation!==r.generation)return Nr("drop.applyExecutionStarted.generationMismatch",{sessionId:t.sessionId,actionGeneration:t.generation,entryGeneration:r.generation,runId:t.runId,phase:r.phase,backendRunId:r.backendRunId??null}),e;if(r.phase!=="starting"&&r.phase!=="settling")return zt(e,t.sessionId,{...r,backendRunId:t.runId,confidence:"live",activeReasons:bt(r.activeReasons,"sse:execution_started")});const s={...r,phase:"running",confidence:"live",backendRunId:t.runId,timestamps:{...r.timestamps,confirmedAt:n()},activeReasons:bt(r.activeReasons,"sse:execution_started")};return zt(e,t.sessionId,s)}case"applySessionSummary":{const r=an(e,t.sessionId),s=S_(r,t.summary,n);return s===r?e:zt(e,t.sessionId,s)}case"applyOneShotTerminal":{const r=an(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="idle"&&r.phase!=="starting")return e;const s=n();return t.payload.status==="completed"?zt(e,t.sessionId,{...r,phase:"completed",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},activeReasons:bt(r.activeReasons,"sse:terminal_one_shot")}):t.payload.status==="cancelled"?zt(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:bt(r.activeReasons,"sse:terminal_one_shot")}):zt(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:bt(r.activeReasons,"sse:terminal_one_shot")})}case"beginSettle":{const r=an(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 zt(e,t.sessionId,{...r,phase:"settling",timestamps:{...r.timestamps,settlingStartedAt:s,terminalAt:r.timestamps.terminalAt??s}})}case"applyChildProgress":{const r=an(e,t.sessionId),o=!(t.childId in r.children.byId)?dy(r,t.childId,t.patch):Mu(r,t.childId,t.patch);return o===r?e:zt(e,t.sessionId,o)}case"clearChildProgress":{const r=an(e,t.sessionId),s=v_(r,t.childId);return s===r?e:zt(e,t.sessionId,s)}case"setPendingQuestion":{const r=an(e,t.sessionId),s=uy(r,t.payload,n());return s===r?e:zt(e,t.sessionId,s)}case"clearPendingQuestion":{const r=an(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 zt(e,t.sessionId,s)}case"resetSession":return h_(e,t.sessionId);case"applyRunningSnapshot":{let r=e;for(const s of t.sessions){const o=an(r,s.sessionId),a=o.generation+1;let i={...o,generation:a,backendRunId:s.runId,phase:"running",confidence:"live",timestamps:{...o.timestamps,confirmedAt:n()},activeReasons:bt(o.activeReasons,"sse:execution_started")};for(const c of s.criticalEvents)c.type!=="execution_started"&&(i=gh(i,c,n));r=zt(r,s.sessionId,i)}return r}default:return e}},x_=()=>new Date().toISOString(),Yt=(e,t)=>{e(n=>{const r=Sl(n.executionBySession,t,x_);return r===n.executionBySession?n:{executionBySession:r}})},__=(e,t)=>({executionBySession:{},ensureSession:n=>Yt(e,{type:"ensureSession",sessionId:n}),markOptimisticStart:n=>{const r=t().executionBySession[n],s=r?r.generation+1:1;return Yt(e,{type:"markOptimisticStart",sessionId:n}),s},markRespondStart:(n,r)=>{const s=t().executionBySession[n],o=s?s.generation+1:1;return Yt(e,{type:"markRespondStart",sessionId:n}),o},markRetryStart:n=>{const r=t().executionBySession[n],s=r?r.generation+1:1;return Yt(e,{type:"markRetryStart",sessionId:n}),s},markForceSubscribe:n=>Yt(e,{type:"markForceSubscribe",sessionId:n}),markCancel:n=>Yt(e,{type:"markCancel",sessionId:n}),markSettleTimeout:n=>Yt(e,{type:"markSettleTimeout",sessionId:n}),markStreamStarted:(n,r)=>Yt(e,{type:"markStreamStarted",sessionId:n,generation:r}),applyAgentEvent:(n,r,s)=>Yt(e,{type:"applyAgentEvent",sessionId:n,event:r,generation:s}),applyExecutionStarted:(n,r,s)=>Yt(e,{type:"applyExecutionStarted",sessionId:n,runId:r,generation:s}),applySessionSummary:(n,r)=>Yt(e,{type:"applySessionSummary",sessionId:n,summary:r}),applyOneShotTerminal:(n,r,s)=>Yt(e,{type:"applyOneShotTerminal",sessionId:n,generation:r,payload:s}),beginSettle:(n,r)=>Yt(e,{type:"beginSettle",sessionId:n,generation:r}),applyChildProgress:(n,r,s)=>Yt(e,{type:"applyChildProgress",sessionId:n,childId:r,patch:s}),clearChildProgress:(n,r)=>Yt(e,{type:"clearChildProgress",sessionId:n,childId:r}),setPendingQuestion:(n,r)=>Yt(e,{type:"setPendingQuestion",sessionId:n,payload:r}),clearPendingQuestion:n=>Yt(e,{type:"clearPendingQuestion",sessionId:n}),resetSession:n=>Yt(e,{type:"resetSession",sessionId:n}),applyRunningSnapshot:n=>{const r=t(),s=n.map(o=>{const a=[];for(const i of o.criticalEvents){if(ly(i)){Eu(i,r);continue}a.push(i)}return{...o,criticalEvents:a}});Yt(e,{type:"applyRunningSnapshot",sessions:s})}}),C_="medium",k_=e=>e.sessionEffort??e.inputEffort??e.persistedEffort??e.providerDefault??C_,Ac=e=>e==null?void 0:e.reasoning_effort,T_=(e,t,n)=>{if(!(t!=null&&t.trim()))return;const r=t.trim(),s=e.providers,o=n==null?void 0:n.find(c=>c.id===r),a=Ac(o==null?void 0:o.config);if(a)return a;const i=Ac(s[r]);if(i)return i;if(o)return Ac(s[o.type])},fy=(e,t,n,r)=>{var o,a,i,c,d;const s=((o=t==null?void 0:t.provider)==null?void 0:o.trim())||((c=(i=(a=e.defaults)==null?void 0:a.chat)==null?void 0:i.provider)==null?void 0:c.trim())||(n==null?void 0:n.trim())||((d=e.provider)==null?void 0:d.trim());return T_(e,s,r)},P_=()=>({id:"general_assistant",name:"Bodhi",description:kt.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}),wl=()=>[P_()];function hy(e){if(!e)return;const t={systemTokens:e.system_tokens,summaryTokens:e.summary_tokens,windowTokens:e.window_tokens,totalTokens:e.total_tokens,budgetLimit:e.budget_limit};return typeof e.max_context_tokens=="number"&&e.max_context_tokens>0&&(t.maxContextTokens=e.max_context_tokens),typeof e.prompt_cached_tool_outputs=="number"&&(t.promptCachedToolOutputs=e.prompt_cached_tool_outputs),typeof e.prompt_cached_tool_tokens_saved=="number"&&(t.promptCachedToolTokensSaved=e.prompt_cached_tool_tokens_saved),typeof e.thinking_tokens=="number"&&(t.thinkingTokens=e.thinking_tokens),typeof e.cache_read_input_tokens=="number"&&(t.cacheReadInputTokens=e.cache_read_input_tokens),t}function py(e){return typeof e.maxContextTokens=="number"&&e.maxContextTokens>0?e.maxContextTokens:e.budgetLimit>0?e.budgetLimit:0}function my(e){const t=py(e);return t===0?0:e.totalTokens/t*100}function E_(e){const t=my(e);return t>=90?"error":t>=70?"warning":t>=50?"success":"default"}function Ar(e){return e.toLocaleString()}function jc(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 Gs=wl()[0],M_=(Gs==null?void 0:Gs.id)||"general_assistant";var $g;const gy=(($g=Gs==null?void 0:Gs.content)==null?void 0:$g.trim())||"",Ic="tool",yh=()=>{try{const e=globalThis.crypto;if(e!=null&&e.randomUUID)return e.randomUUID()}catch{}return`id_${Date.now()}_${Math.random().toString(16).slice(2)}`},R_=()=>{let e=xs().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`},yy=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}},vh=e=>{const t=yy(e);return t?`${R_()}/sessions/${encodeURIComponent(t.sessionId)}/attachments/${encodeURIComponent(t.attachmentId)}`:e},os=e=>{if(typeof e!="string")return;const t=e.trim();if(t&&t.toLowerCase()!=="unknown")return t},A_=e=>{const t=(e||"").trim();if(!t)return;const n=t.match(/tool policy blocked ['"`]([^'"`]+)['"`]/i);if(n!=null&&n[1])return os(n[1]);try{const r=JSON.parse(t);if(typeof(r==null?void 0:r.tool_name)=="string")return os(r.tool_name)}catch{}},Ru=e=>{var r,s;const t=Number.isFinite(Date.parse(e.created_at))?Date.parse(e.created_at):Date.now(),n=hy(e.token_usage);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,lifecycle:e.lifecycle??null,residentName:e.resident_name??null,title:e.title||kt.t("chat.session.defaultTitle"),titleVersion:e.title_version??0,createdAt:t,pinned:e.pinned,messages:[],config:{systemPromptId:M_,baseSystemPrompt:gy,lastUsedEnhancedPrompt:null,model:e.model,model_ref:e.model_ref??null,reasoningEffort:e.reasoning_effort??null,goldConfig:e.gold_config??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:[]}}},j_=(e,t)=>{var o,a,i,c,d,f;const n=new Map,r=new Map;for(const p of t)p.role==="tool"&&p.tool_call_id&&p.metadata&&r.set(p.tool_call_id,p.metadata);const s=[];for(const p of t){const v=p.created_at||new Date().toISOString();if(p.role==="system"){const g={role:"system",id:p.id,createdAt:v,content:p.content||"",isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(g);continue}if(p.role==="user"){const g=new Map;for(const x of p.image_ocr||[]){const k=(o=x.image_url)==null?void 0:o.trim();if(!k)continue;const E=(x.lines||[]).map(T=>((T==null?void 0:T.text)||"").trim()).filter(Boolean);g.set(k,{ocrText:E.length?E.join(`
11
+ `):void 0,ocrError:x.error?String(x.error):void 0})}const w=[];for(const x of p.content_parts||[]){if(x.type!=="image_url")continue;const k=((a=x.image_url)==null?void 0:a.url)||"";if(!k)continue;const C=vh(k),E=yy(k),T=g.get(k.trim());w.push({id:yh(),url:C,ocrText:T==null?void 0:T.ocrText,ocrError:T==null?void 0:T.ocrError,name:E?`attachment-${E.attachmentId}`:"image",size:0,type:"image/*"})}const m={role:"user",id:p.id,createdAt:v,content:p.content||"",images:w.length?w:void 0,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(m);continue}if(p.role==="assistant"){const g=p.tool_calls||[];if(g.length>0){const x=(p.content||"").trim(),k=typeof p.reasoning=="string"&&p.reasoning.trim().length>0;if(x||k){const P=k?{reasoning:p.reasoning,backendMessageId:p.id}:{backendMessageId:p.id},A={role:"assistant",type:"text",id:`${p.id}_text`,createdAt:v,content:p.content||"",metadata:P,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(A)}for(const P of g)P.id&&n.set(P.id,os((i=P.function)==null?void 0:i.name)||Ic);const C=(c=g[0])==null?void 0:c.id,E=C?r.get(C):void 0,T={role:"assistant",type:"tool_call",id:p.id,createdAt:v,toolCalls:g.map(P=>{var A;return{toolCallId:P.id,toolName:os((A=P.function)==null?void 0:A.name)||Ic,parameters:(()=>{var O,$;try{return JSON.parse(((O=P.function)==null?void 0:O.arguments)||"{}")}catch{return{raw:(($=P.function)==null?void 0:$.arguments)||""}}})(),streamingOutput:""}}),...E?{metadata:E}:{},isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(T);continue}const w=typeof p.reasoning=="string"&&p.reasoning.trim().length>0?{reasoning:p.reasoning}:{},m={role:"assistant",type:"text",id:p.id,createdAt:v,content:p.content||"",metadata:w,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(m);continue}if(p.role==="tool"){const g=((d=p.tool_call_id)==null?void 0:d.trim())||`orphan-tool-call:${p.id}`,w=os(n.get(g))||os(p.tool_name)||os(p.name)||A_(p.content)||Ic,m=p.tool_success===!1||p.tool_success==null&&typeof p.content=="string"&&p.content.trimStart().startsWith("Error:"),x=[];for(const C of p.content_parts||[]){if(C.type!=="image_url")continue;const E=((f=C.image_url)==null?void 0:f.url)||"";E&&x.push({id:yh(),url:vh(E),name:"screenshot",size:0,type:"image/*"})}const k={role:"assistant",type:"tool_result",id:p.id,createdAt:v,toolName:w,toolCallId:g,result:{tool_name:w,result:p.content||"",display_preference:"Default"},isError:m,images:x.length?x:void 0,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(k);continue}}return s},bh=e=>{if(typeof e!="string"||!e.trim())return null;const t=Date.parse(e);return Number.isFinite(t)?t:null},I_=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.provider===t.provider&&e.model===t.model,O_=(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??0)===(t.maxContextTokens??0)&&e.budgetLimit===t.budgetLimit&&(e.promptCachedToolOutputs??0)===(t.promptCachedToolOutputs??0)&&(e.promptCachedToolTokensSaved??0)===(t.promptCachedToolTokensSaved??0)&&(e.thinkingTokens??0)===(t.thinkingTokens??0)&&(e.cacheReadInputTokens??0)===(t.cacheReadInputTokens??0),$_=(e,t)=>{if(e===t)return!0;const n=e??[],r=t??[];return n.length!==r.length?!1:n.every((s,o)=>{const a=r[o];return!!a&&s.id===a.id&&s.createdAt===a.createdAt&&s.messagesCompressed===a.messagesCompressed&&s.segmentsRemoved===a.segmentsRemoved})},L_=(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,D_=(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&&I_(e.model_ref,t.model_ref)&&e.reasoningEffort===t.reasoningEffort&&JSON.stringify(e.goldConfig??null)===JSON.stringify(t.goldConfig??null)&&JSON.stringify(e.goalState??null)===JSON.stringify(t.goalState??null)&&O_(e.tokenUsage,t.tokenUsage)&&e.truncationOccurred===t.truncationOccurred&&e.segmentsRemoved===t.segmentsRemoved&&$_(e.compressionEvents,t.compressionEvents)&&L_(e.syncCursor,t.syncCursor),F_=(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&&D_(e.config,t.config),N_=Pn.getInstance(),z_=750,pt={inFlight:null,forcedPromise:null,timer:null,trailingPromise:null,trailingResolve:null,trailingReject:null};function vy(){const e={resolve:pt.trailingResolve,reject:pt.trailingReject};return pt.trailingPromise=null,pt.trailingResolve=null,pt.trailingReject=null,e}function Sh(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 B_(){return pt.timer&&(clearTimeout(pt.timer),pt.timer=null),vy()}function W_(e,t){const n=e.map(Ru);t(r=>{let s=r.executionBySession;for(const c of e)s=Sl(s,{type:"applySessionSummary",sessionId:c.id,summary:c});const o=new Map(r.chats.map(c=>[c.id,c]));let a=r.chats.length!==n.length;const i=n.map((c,d)=>{var J,ee,I,Y;const f=o.get(c.id);if(!f)return a=!0,c;const p=bh(f.updatedAt),v=bh(c.updatedAt),g=p!==null&&v!==null&&p>v,w=f.config||{},m=c.config||{},x=Object.prototype.hasOwnProperty.call(w,"model"),k=Object.prototype.hasOwnProperty.call(w,"model_ref"),C=Object.prototype.hasOwnProperty.call(w,"reasoningEffort"),E=Object.prototype.hasOwnProperty.call(w,"goldConfig"),T=Math.max(f.messageCount??0,c.messageCount??0),P=c.titleVersion??0,A=f.titleVersion??0,O=P>A?{title:c.title,titleVersion:P}:{title:f.title,titleVersion:A},$={...w,...m,model:g&&x?w.model:m.model,model_ref:g&&k?w.model_ref:m.model_ref,reasoningEffort:g&&C?w.reasoningEffort:m.reasoningEffort,goldConfig:g&&E?w.goldConfig:m.goldConfig,compressionEvents:((J=f.config)==null?void 0:J.compressionEvents)??((ee=c.config)==null?void 0:ee.compressionEvents),syncCursor:((I=f.config)==null?void 0:I.syncCursor)??((Y=c.config)==null?void 0:Y.syncCursor)},U={...c,pinned:g?f.pinned:c.pinned,updatedAt:g?f.updatedAt:c.updatedAt,messages:f.messages,messageCount:T,planMode:c.planMode,config:$,...O};return F_(f,U)?(r.chats[d]!==f&&(a=!0),f):(a=!0,U)});return!a&&s===r.executionBySession?r:{...r,chats:a?i:r.chats,executionBySession:s}})}async function el(e){return pt.inFlight?(ke("[ChatSlice]","refreshChats.inFlight.reuse",{}),pt.inFlight):(ke("[ChatSlice]","refreshChats.start",{}),pt.inFlight=(async()=>{try{const t=await N_.listSessions();ke("[ChatSlice]","refreshChats.response",{count:t.sessions.length,runningCount:t.sessions.filter(n=>n.is_running).length}),W_(t.sessions,e)}catch(t){throw console.error("[ChatSlice] Failed to refresh sessions:",t),ke("[ChatSlice]","refreshChats.error",{error:t}),t}})().finally(()=>{ke("[ChatSlice]","refreshChats.finally",{}),pt.inFlight=null}),pt.inFlight)}function U_(e){return pt.forcedPromise?(ke("[ChatSlice]","refreshChatsNow.forced.reuse",{}),pt.forcedPromise):(ke("[ChatSlice]","refreshChatsNow.forced.start",{hasInflight:!!pt.inFlight}),pt.forcedPromise=(async()=>{pt.inFlight&&await pt.inFlight,await el(e)})().finally(()=>{ke("[ChatSlice]","refreshChatsNow.forced.finally",{}),pt.forcedPromise=null}),pt.forcedPromise)}const br=Pn.getInstance(),q_=(e,t)=>({chats:[],currentSessionId:null,latestActiveSessionId:null,addChat:async n=>{var v,g,w,m,x,k,C,E,T,P,A,O,$,U;const r=(n.title||kt.t("chat.sidebar.newSession")).trim(),s=((g=(v=n.config)==null?void 0:v.baseSystemPrompt)==null?void 0:g.trim())||"",o=(w=mt.getState().getActiveModel())==null?void 0:w.trim(),a=((x=(m=n.config)==null?void 0:m.model)==null?void 0:x.trim())||o||void 0;let i,c;if(mt.getState().isProviderModelRefEnabled()){const J=(k=n.config)==null?void 0:k.model_ref;if((C=J==null?void 0:J.provider)!=null&&C.trim()&&((E=J==null?void 0:J.model)!=null&&E.trim()))i=J,c=J.provider;else{const ee=(T=mt.getState().providerConfig.defaults)==null?void 0:T.chat;if((P=ee==null?void 0:ee.provider)!=null&&P.trim()&&((A=ee==null?void 0:ee.model)!=null&&A.trim()))i=ee,c=ee.provider;else{const I=mt.getState().getActiveModel();I&&(i={provider:mt.getState().currentProvider,model:I},c=mt.getState().currentProvider)}}}const d=((O=n.config)==null?void 0:O.reasoningEffort)??fy(mt.getState().providerConfig,i??null,c??null,mt.getState().providerInstances),f=await br.createSession({title:r,system_prompt:s||void 0,model:a,model_ref:i,provider:c,reasoning_effort:d||void 0,gold_config:(($=n.config)==null?void 0:$.goldConfig)??void 0}),p={...Ru(f.session),title:r,config:{...n.config,model:f.session.model,model_ref:f.session.model_ref??null,reasoningEffort:f.session.reasoning_effort??null,goldConfig:f.session.gold_config??((U=n.config)==null?void 0:U.goldConfig)??null,baseSystemPrompt:s||gy},messages:[]};return e(J=>{const ee=[p,...J.chats.filter(I=>I.id!==p.id)];return{...J,chats:ee,currentSessionId:p.id,latestActiveSessionId:p.id}}),p.id},selectSession:n=>{const r=t();r.currentSessionId===n&&r.latestActiveSessionId===n||e({currentSessionId:n,latestActiveSessionId:n})},deleteSession:async n=>{try{await br.deleteSession(n)}catch(r){console.error(`[ChatSlice] Failed to delete backend session ${n}:`,r)}e(r=>{var c;const s=new Set;for(const d of r.chats)d.id===n&&s.add(d.id),d.rootSessionId===n&&s.add(d.id);const o=r.chats.filter(d=>!s.has(d.id)),a=r.currentSessionId&&s.has(r.currentSessionId)?null:r.currentSessionId,i=r.latestActiveSessionId&&s.has(r.latestActiveSessionId)?((c=o[0])==null?void 0:c.id)??null:r.latestActiveSessionId;return{...r,chats:o,currentSessionId:a,latestActiveSessionId:i}})},deleteSessions:async n=>{for(const r of n)await t().deleteSession(r)},updateSession:(n,r,s)=>{const o=!!r.config&&(Object.prototype.hasOwnProperty.call(r.config,"model")||Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")||Object.prototype.hasOwnProperty.call(r.config,"goldConfig")),a=typeof r.title=="string"||typeof r.pinned=="boolean",c=o||a?new Date().toISOString():void 0;e(f=>{const p=f.chats.map(v=>v.id===n?{...v,...r,...c?{updatedAt:c}:{}}:v);return{...f,chats:p}});const d={};if(typeof r.title=="string"&&(d.title=r.title),typeof r.pinned=="boolean"&&(d.pinned=r.pinned),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model")&&(d.model=r.config.model??null),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model_ref")&&mt.getState().isProviderModelRefEnabled()&&(d.model_ref=r.config.model_ref??null,r.config.model_ref&&(d.provider=r.config.model_ref.provider)),r.config&&Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")){const f=r.config.reasoningEffort;f?d.reasoning_effort=f:d.clear_reasoning_effort=!0}r.config&&Object.prototype.hasOwnProperty.call(r.config,"goldConfig")&&(d.gold_config=r.config.goldConfig??{enabled:!1,auto_answer_enabled:!1,auto_continue_enabled:!1}),!(s!=null&&s.skipBackendPatch)&&Object.keys(d).length>0&&br.patchSession(n,d).catch(f=>{console.warn(`[ChatSlice] Failed to patch session ${n}:`,f)})},persistSessionTitle:async(n,r)=>{var o;const s=(o=t().chats.find(a=>a.id===n))==null?void 0:o.title;e(a=>({...a,chats:a.chats.map(i=>i.id===n?{...i,title:r,updatedAt:new Date().toISOString()}:i)}));try{await br.patchSession(n,{title:r})}catch(a){throw typeof s=="string"&&e(i=>({...i,chats:i.chats.map(c=>c.id===n?{...c,title:s}:c)})),console.warn(`[ChatSlice] persistSessionTitle failed for ${n}:`,a),a}},applyServerTitle:(n,r,s)=>e(o=>{const a=o.chats.find(i=>i.id===n);return!a||s<=(a.titleVersion??0)?o:{...o,chats:o.chats.map(i=>i.id===n?{...i,title:r,titleVersion:s,updatedAt:new Date().toISOString()}:i)}}),applyServerPinned:(n,r,s)=>e(o=>{const a=o.chats.find(d=>d.id===n);if(!a)return o;const i=Date.parse(s),c=a.updatedAt?Date.parse(a.updatedAt):NaN;return Number.isFinite(i)&&Number.isFinite(c)&&i<c||a.pinned===r?o:{...o,chats:o.chats.map(d=>d.id===n?{...d,pinned:r,updatedAt:s}:d)}}),pinSession:n=>{t().updateSession(n,{pinned:!0})},unpinSession:n=>{t().updateSession(n,{pinned:!1})},setMessages:(n,r)=>{t().chats.find(o=>o.id===n)&&t().updateSession(n,{messages:r})},addMessage:async(n,r)=>{const s=t().chats.find(a=>a.id===n);if(!s)return;const o=[...s.messages,r];t().updateSession(n,{messages:o})},updateMessage:(n,r,s)=>{const o=t().chats.find(i=>i.id===n);if(!o)return;const a=o.messages.map(i=>{if(i.id!==r)return i;const c={...i};return Object.keys(s).forEach(d=>{Object.prototype.hasOwnProperty.call(c,d)&&(c[d]=s[d])}),c});t().updateSession(n,{messages:a})},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 br.deleteSessionMessage(n,r)}catch(o){return console.warn(`[ChatSlice] Failed to delete message ${r} from session ${n}:`,o),o instanceof Ha?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(a=>a.id===n?{...a,messages:a.messages.filter(i=>i.id!==r)}:a)})),{success:!0,sessionId:n,messageId:r}},refreshChats:async()=>pt.inFlight?pt.inFlight:pt.timer?(pt.trailingPromise||(pt.trailingPromise=new Promise((n,r)=>{pt.trailingResolve=n,pt.trailingReject=r})),pt.trailingPromise):(pt.timer=setTimeout(()=>{if(pt.timer=null,pt.trailingPromise){const n=vy();Sh(el(e),n)}},z_),el(e)),refreshChatsNow:async()=>{const n=B_();ke("[ChatSlice]","refreshChatsNow.start",{hadTrailingCallbacks:!!n,hasInflight:!!pt.inFlight});const r=pt.inFlight?U_(e):el(e);return Sh(r,n),r},loadChats:async()=>{var a,i,c;ke("[ChatSlice]","loadChats.start",{});let n=await br.listSessions();if(!n.sessions||n.sessions.length===0){const d=(a=mt.getState().getActiveModel())==null?void 0:a.trim(),f=(i=mt.getState().providerConfig.defaults)==null?void 0:i.chat;ke("[ChatSlice]","loadChats.createInitialSession",{defaultModel:d??null,defaultModelRef:f??null}),n={sessions:[(await br.createSession({title:kt.t("chat.sidebar.newSession"),model:d,model_ref:f,provider:f==null?void 0:f.provider})).session]}}const r=n.sessions.map(Ru),s=((c=r[0])==null?void 0:c.id)??null;ke("[ChatSlice]","loadChats.listResolved",{count:n.sessions.length,currentSessionId:s});let o=t().executionBySession;for(const d of n.sessions)o=Sl(o,{type:"applySessionSummary",sessionId:d.id,summary:d});try{const d=await br.getRunningSessions();if(ke("[ChatSlice]","loadChats.runningSnapshot",{count:d.sessions.length}),d.sessions.length>0){const f=d.sessions.map(p=>{const v=[];for(const g of p.last_critical_events){if(ly(g)){o_(g,r);continue}v.push(g)}return{sessionId:p.session_id,runId:p.run_id,criticalEvents:v}});o=Sl(o,{type:"applyRunningSnapshot",sessions:f},()=>new Date().toISOString())}}catch(d){ke("[ChatSlice]","loadChats.runningSnapshot.error",{error:d})}e({chats:r,latestActiveSessionId:s,currentSessionId:s,executionBySession:o}),ke("[ChatSlice]","loadChats.applied",{currentSessionId:s,chatCount:r.length,executionSessionCount:Object.keys(o||{}).length}),s&&(ke("[ChatSlice]","loadChats.loadInitialHistory",{currentSessionId:s}),await t().loadChatHistory(s))},loadChatHistory:async(n,r)=>{var i,c,d,f,p,v,g,w,m,x,k,C;const s=(r==null?void 0:r.mode)??"replace",o=Math.max(0,(r==null?void 0:r.retries)??0),a=Math.max(0,(r==null?void 0:r.retryDelayMs)??0);ke("[ChatSlice]","loadChatHistory.start",{sessionId:n,mode:s,retries:o,retryDelayMs:a,waitForAssistant:(r==null?void 0:r.waitForAssistant)??!1});for(let E=0;E<=o;E+=1)try{const T=t().chats.find($=>$.id===n);if(!T){ke("[ChatSlice]","loadChatHistory.skipMissingChat",{sessionId:n,attempt:E});return}const P=await br.getHistory(n);ke("[ChatSlice]","loadChatHistory.response",{sessionId:n,attempt:E,historyMessageCount:P.messages.length,localMessageCount:T.messages.length,localStoredMessageCount:T.messageCount??null,lastMessageId:((i=P.messages[P.messages.length-1])==null?void 0:i.id)??null,lastRole:((c=P.messages[P.messages.length-1])==null?void 0:c.role)??null});const A=(d=P.messages[P.messages.length-1])==null?void 0:d.role;if(r!=null&&r.waitForAssistant&&A==="user"&&E<o){const $=a>0?a*(E+1):200*(E+1);ke("[ChatSlice]","loadChatHistory.waitForAssistant.retry",{sessionId:n,attempt:E,delay:$}),await new Promise(U=>setTimeout(U,$));continue}const O=j_(n,P.messages);if(s==="monotonic"){const $=T.messages||[],U=$.length,J=O.length,ee=(f=O[O.length-1])==null?void 0:f.role,I=(p=$[$.length-1])==null?void 0:p.role,Y=$[$.length-1],z=O[O.length-1],D=Y==null?void 0:Y.id,ie=z==null?void 0:z.id;let Q=!1;if(J>U?Q=!0:J===U&&(Q=I==="user"&&ee!=="user"||typeof D=="string"&&typeof ie=="string"&&D!==ie),ke("[ChatSlice]","loadChatHistory.monotonicDecision",{sessionId:n,attempt:E,prevLen:U,nextLen:J,prevLastRole:I??null,nextLastRole:ee??null,prevLastId:D??null,nextLastId:ie??null,shouldReplace:Q}),!Q){t().updateSession(n,{messageCount:Math.max(T.messageCount??0,P.messages.length)}),ke("[ChatSlice]","loadChatHistory.monotonicSkip",{sessionId:n,attempt:E,localMessageCount:T.messages.length,serverMessageCount:P.messages.length});return}}t().updateSession(n,{messages:O,messageCount:P.messages.length,config:{...T.config||{},...P.gold_config!=null?{goldConfig:P.gold_config}:{},...P.goal_state!=null?{goalState:P.goal_state}:{},compressionEvents:(P.compression_events||[]).map($=>({id:$.id,createdAt:$.created_at,messagesCompressed:$.messages_compressed,segmentsRemoved:$.segments_removed})),syncCursor:{messageCount:P.messages.length,lastMessageId:((v=P.messages[P.messages.length-1])==null?void 0:v.id)??null,hasPendingQuestion:!!((w=(g=t().executionBySession)==null?void 0:g[n])!=null&&w.interaction.pendingQuestion),pendingQuestionToolCallId:((k=(x=(m=t().executionBySession)==null?void 0:m[n])==null?void 0:x.interaction.pendingQuestion)==null?void 0:k.toolCallId)??null}}}),ke("[ChatSlice]","loadChatHistory.applied",{sessionId:n,attempt:E,mode:s,messageCount:P.messages.length,lastMessageId:((C=P.messages[P.messages.length-1])==null?void 0:C.id)??null});return}catch(T){if(E>=o){console.warn(`[ChatSlice] Failed to load history for ${n}:`,T),ke("[ChatSlice]","loadChatHistory.error.final",{sessionId:n,attempt:E,retries:o,error:T});return}const P=a>0?a*(E+1):200*(E+1);ke("[ChatSlice]","loadChatHistory.error.retry",{sessionId:n,attempt:E,delay:P,error:T}),await new Promise(A=>setTimeout(A,P))}}});class Au extends Error{constructor(n="Proxy authentication required"){super(n);vt(this,"code","proxy_auth_required");this.name="ProxyAuthRequiredError"}}const us=class us{constructor(){}static getInstance(){return us.instance||(us.instance=new us),us.instance}async getModels(t){var n,r;try{const s=await Ca.fetchCatalogModels(t),o=[];for(const i of s.fetched)if(i.models&&i.models.length>0)for(const c of i.models)c.reference&&c.reference.model&&o.push(c.reference.model);return[...new Set(o)].sort()}catch(s){if(console.error("Failed to fetch models from Provider Catalog:",s),s instanceof Ha){if(s.status===428)throw new Au(s.message);let o;if(s.body)try{o=JSON.parse(s.body)}catch{}if(o&&typeof o=="object"&&"error"in o&&((n=o.error)==null?void 0:n.code)==="proxy_auth_required")throw new Au(((r=o.error)==null?void 0:r.message)||s.message)}throw s}}};vt(us,"instance");let ju=us;const by=ju.getInstance(),H_=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)},X_=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")},kr=async e=>{try{await H_(e);return}catch(t){try{X_(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 Y_{async copyToClipboard(t){await kr(t)}async getBambooConfig(){try{return await Ue.get("bamboo/config")}catch(t){return console.error("Failed to fetch Bamboo config:",t),{}}}async getBambooTools(){try{return await Ue.get("bamboo/tools")}catch(t){return console.error("Failed to fetch Bamboo tools:",t),{tools:[]}}}async getModelLimitDefaults(){try{return await Ue.get("bamboo/model-limits/defaults")}catch(t){return console.error("Failed to fetch model limit defaults:",t),{model_limits:[]}}}async setBambooConfig(t){return Ue.post("bamboo/config",t)}async validateBambooConfigPatch(t){return Ue.post("bamboo/config/validate",t)}async setProxyAuth(t){return Ue.post("bamboo/proxy-auth",t)}async getProxyAuthStatus(){try{return await Ue.get("bamboo/proxy-auth/status")}catch(t){return console.error("Failed to fetch proxy auth status:",t),{configured:!1,username:null}}}async clearProxyAuth(){return Ue.post("bamboo/proxy-auth",{username:"",password:""})}async resetBambooConfig(){return Ue.post("bamboo/config/reset",{})}async saveWorkflow(t,n){return Ue.post("bamboo/workflows",{name:t,content:n})}async deleteWorkflow(t){return Ue.delete(`bamboo/workflows/${encodeURIComponent(t)}`)}async getKeywordMaskingConfig(){try{return await Ue.get("bamboo/keyword-masking")}catch(t){return console.error("Failed to fetch keyword masking config:",t),{entries:[]}}}async updateKeywordMaskingConfig(t){return Ue.post("bamboo/keyword-masking",t)}async validateKeywordEntries(t){return Ue.post("bamboo/keyword-masking/validate",t)}async getSetupStatus(){return await Ue.get("bamboo/setup/status")}async markSetupComplete(){return Ue.post("bamboo/setup/complete",{})}async resetSetupStatus(){await Ue.post("bamboo/setup/incomplete",{})}async getAccessStatus(){return Ue.get("bamboo/access/status")}async verifyAccessPassword(t){return Ue.post("bamboo/access/verify",{password:t})}async updateAccessPassword(t){return Ue.post("bamboo/access/password",t)}}const ds=class ds extends Y_{constructor(){super()}static getInstance(){return ds.instance||(ds.instance=new ds),ds.instance}getUtilityService(){return this}};vt(ds,"instance");let ro=ds;const as=ro.getInstance();let Po=null,Eo=null;const Oc=(e,t)=>e instanceof Error&&e.message.trim()?e.message:t,Iu=Xr((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(Po)return Po;Po=(async()=>{e({isLoadingConfig:!0,error:null});try{const s=await as.getBambooConfig()??{};return e({config:s,lastLoadedAt:Date.now(),error:null}),s}catch(s){const o=Oc(s,"Failed to load Bamboo config");throw e({error:o}),s}finally{e({isLoadingConfig:!1})}})();try{return await Po}finally{Po=null}},saveConfig:async n=>{e({isLoadingConfig:!0,error:null,config:n});try{const r=await as.setBambooConfig(n);return e({config:r,lastLoadedAt:Date.now(),error:null}),r}catch(r){const s=Oc(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(Eo)return Eo;Eo=(async()=>{e({isLoadingProxyAuthStatus:!0,error:null});try{const s=await as.getProxyAuthStatus();return e({proxyAuthStatus:s,error:null}),s}catch(s){const o=Oc(s,"Failed to load proxy auth status");throw e({error:o}),s}finally{e({isLoadingProxyAuthStatus:!1})}})();try{return await Eo}finally{Eo=null}},applyProxyAuth:async n=>{await as.setProxyAuth(n),await t().loadProxyAuthStatus({force:!0})},clearProxyAuth:async()=>{await as.clearProxyAuth(),await t().loadProxyAuthStatus({force:!0})}}));let Mo=null;const K_=(e,t)=>({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:null,configModel:void 0,setSelectedModel:n=>{e({selectedModel:n})},loadConfigModel:async()=>{try{const n=await Iu.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(Mo)return Mo;Mo=(async()=>{e({isLoadingModels:!0,modelsError:null});try{try{if(!(await as.getSetupStatus()).is_complete){ke("[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 by.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 Au){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 Mo}finally{Mo=null}}}),V_=["system_prompt","system_prompt_selected_id"],$c=e=>({id:e.id,name:e.name||e.id,content:e.content||"",description:e.description,isDefault:!!e.is_default}),Br=class Br{constructor(){vt(this,"deprecatedKeysCleanupDone",!1)}static getInstance(){return Br.instance||(Br.instance=new Br),Br.instance.cleanupDeprecatedPromptStorageKeys(),Br.instance}cleanupDeprecatedPromptStorageKeys(){if(!this.deprecatedKeysCleanupDone){this.deprecatedKeysCleanupDone=!0;try{for(const t of V_)localStorage.removeItem(t)}catch(t){console.warn("[SystemPromptService] Failed to cleanup deprecated prompt storage keys:",t)}}}async getSystemPromptPresets(){try{const t=await ht.get("prompt-presets"),r=(Array.isArray(t==null?void 0:t.prompts)?t.prompts:[]).filter(s=>s.id&&s.id.trim().length>0).map($c);if(r.length>0)return r}catch(t){console.error("Failed to load prompt presets from backend:",t)}return wl()}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 ht.post("prompt-presets",n);if(!(r!=null&&r.prompt))throw new Error("Backend did not return created prompt preset");return $c(r.prompt)}async updateSystemPromptPreset(t){const n=encodeURIComponent(t.id),r={name:t.name,content:t.content,description:t.description},s=await ht.patch(`prompt-presets/${n}`,r);if(!(s!=null&&s.prompt))throw new Error("Backend did not return updated prompt preset");return $c(s.prompt)}async deleteSystemPromptPreset(t){const n=encodeURIComponent(t);await ht.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)||""}};vt(Br,"instance");let xl=Br;const wh="copilot_last_selected_prompt_id",Sy="copilot_custom_system_prompts_v2",wy="copilot_custom_system_prompts_v2_migrated_to_backend",xy="general_assistant",jd=80,Xs=xl.getInstance();let Ii=null;function Id(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,jd)}function _y(e){if(typeof e!="string")return null;const t=e.toLowerCase().trim().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"");return t?t.slice(0,jd):null}function Cy(e,t){if(!t.has(e))return e;let n=2;for(;;){const r=`_${n}`,o=`${e.slice(0,Math.max(0,jd-r.length))}${r}`;if(!t.has(o))return o;n+=1}}function ky(){try{const e=localStorage.getItem(Sy);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():"",a=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!o||!a)continue;const c=_y(s==null?void 0:s.id)||Id(o),d=Cy(c,n);d!==xy&&(n.add(d),r.push({id:d,name:o,content:a,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 Ty(){try{return localStorage.getItem(wy)==="1"}catch(e){return console.error("[promptSlice] Failed to read migration marker:",e),!1}}function xh(){try{localStorage.setItem(wy,"1")}catch(e){console.error("[promptSlice] Failed to write migration marker:",e)}}function _h(){try{localStorage.removeItem(Sy)}catch(e){console.error("[promptSlice] Failed to clear legacy custom prompts:",e)}}async function G_(){var s,o;if(Ty())return;const e=ky();if(e.length===0){_h(),xh();return}const t=await Xs.getSystemPromptPresets(),n=new Set(t.map(a=>a.id));let r=!1;for(const a of e){const i=(s=a.name)==null?void 0:s.trim(),c=(o=a.content)==null?void 0:o.trim();if(!i||!c||a.id===xy||a.isDefault)continue;const d=_y(a.id)||Id(i),f=Cy(d,n);try{const p=await Xs.createSystemPromptPreset({id:f,name:i,content:c,description:a.description});n.add(p.id)}catch(p){r=!0,console.error(`[promptSlice] Failed to migrate legacy prompt '${i}' to backend:`,p)}}r||(_h(),xh())}async function J_(){Ii||(Ii=G_().finally(()=>{Ii=null})),await Ii}const Q_=(e,t)=>({systemPrompts:[],lastSelectedPromptId:localStorage.getItem(wh)||null,loadSystemPrompts:async()=>{try{await J_()}catch(s){console.warn("[promptSlice] Legacy prompt migration skipped:",s)}let n=[];try{n=await Xs.getSystemPromptPresets()}catch(s){console.error("Failed to load system prompts from backend:",s)}let r=n.length?n:wl();if(!Ty()){const s=ky();r=Z_(r,s)}r.length===0&&(r=wl()),e({systemPrompts:r})},addSystemPrompt:async n=>{try{await Xs.createSystemPromptPreset({id:Id(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 Xs.updateSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to update system prompt:",r),r}},deleteSystemPrompt:async n=>{try{await Xs.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(wh,n)}catch(r){console.error("Failed to save last selected prompt ID to localStorage:",r)}}}),Z_=(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())},e0=()=>({});class t0{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 Ue.get(o)}async getSkill(t){return Ue.get(`skills/${t}`)}async getFilteredTools(t){const n=t?`?session_id=${encodeURIComponent(t)}`:"";return(await Ue.get(`skills/filtered-tools${n}`)).tools??[]}}const Ch=new t0,n0=(e,t)=>({skills:[],isLoadingSkills:!1,skillsError:null,loadSkills:async(n,r)=>{e({isLoadingSkills:!0,skillsError:null});try{const s=await Ch.listSkills(n,r);e({skills:s.skills,isLoadingSkills:!1})}catch(s){e({skillsError:s instanceof Error?s.message:kt.t("components.skillManager.loadFailed"),isLoadingSkills:!1})}},getSkill:async n=>{e({isLoadingSkills:!0,skillsError:null});try{const r=await Ch.getSkill(n),s=t().skills,a=s.findIndex(i=>i.id===r.id)>=0?s.map(i=>i.id===r.id?r:i):[...s,r];e({skills:a,isLoadingSkills:!1})}catch(r){e({skillsError:r instanceof Error?r.message:kt.t("components.skillManager.getFailed"),isLoadingSkills:!1})}},clearSkillsError:()=>{e({skillsError:null})}}),r0=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,...a}=n.truncationOccurred,{[t]:i,...c}=n.segmentsRemoved;return{tokenUsages:s,truncationOccurred:a,segmentsRemoved:c}})}),s0=Pn.getInstance(),o0=(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 s0.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 a=s.taskLists[n];if(!a)return s;const i=a.items.map(c=>c.id===r.item_id?{...c,status:r.status,tool_calls_count:r.tool_calls_count}:c);return{taskLists:{...s.taskLists,[n]:{...a,items:i,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]:a,...i}=r.taskListVersions,{[n]:c,...d}=r.activeItems,{[n]:f,...p}=r.evaluationStates;return{taskLists:o,taskListVersions:i,activeItems:d,evaluationStates:p}}),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 tl={exports:{}},a0=tl.exports,kh;function i0(){return kh||(kh=1,function(e,t){((n,r)=>{e.exports=r()})(a0,function(){var n=function(u,h){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(y,b){y.__proto__=b}:function(y,b){for(var _ in b)Object.prototype.hasOwnProperty.call(b,_)&&(y[_]=b[_])}))(u,h)},r=function(){return(r=Object.assign||function(u){for(var h,y=1,b=arguments.length;y<b;y++)for(var _ in h=arguments[y])Object.prototype.hasOwnProperty.call(h,_)&&(u[_]=h[_]);return u}).apply(this,arguments)};function s(u,h,y){for(var b,_=0,M=h.length;_<M;_++)!b&&_ in h||((b=b||Array.prototype.slice.call(h,0,_))[_]=h[_]);return u.concat(b||Array.prototype.slice.call(h))}var o=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:ww,a=Object.keys,i=Array.isArray;function c(u,h){return typeof h=="object"&&a(h).forEach(function(y){u[y]=h[y]}),u}typeof Promise>"u"||o.Promise||(o.Promise=Promise);var d=Object.getPrototypeOf,f={}.hasOwnProperty;function p(u,h){return f.call(u,h)}function v(u,h){typeof h=="function"&&(h=h(d(u))),(typeof Reflect>"u"?a:Reflect.ownKeys)(h).forEach(function(y){w(u,y,h[y])})}var g=Object.defineProperty;function w(u,h,y,b){g(u,h,c(y&&p(y,"get")&&typeof y.get=="function"?{get:y.get,set:y.set,configurable:!0}:{value:y,configurable:!0,writable:!0},b))}function m(u){return{from:function(h){return u.prototype=Object.create(h.prototype),w(u.prototype,"constructor",u),{extend:v.bind(null,u.prototype)}}}}var x=Object.getOwnPropertyDescriptor,k=[].slice;function C(u,h,y){return k.call(u,h,y)}function E(u,h){return h(u)}function T(u){if(!u)throw new Error("Assertion Failed")}function P(u){o.setImmediate?setImmediate(u):setTimeout(u,0)}function A(u,h){if(typeof h=="string"&&p(u,h))return u[h];if(!h)return u;if(typeof h!="string"){for(var y=[],b=0,_=h.length;b<_;++b){var M=A(u,h[b]);y.push(M)}return y}var R,j=h.indexOf(".");return j===-1||(R=u[h.substr(0,j)])==null?void 0:A(R,h.substr(j+1))}function O(u,h,y){if(u&&h!==void 0&&!("isFrozen"in Object&&Object.isFrozen(u)))if(typeof h!="string"&&"length"in h){T(typeof y!="string"&&"length"in y);for(var b=0,_=h.length;b<_;++b)O(u,h[b],y[b])}else{var M,R,j=h.indexOf(".");j!==-1?(M=h.substr(0,j),(j=h.substr(j+1))===""?y===void 0?i(u)&&!isNaN(parseInt(M))?u.splice(M,1):delete u[M]:u[M]=y:O(R=(R=u[M])&&p(u,M)?R:u[M]={},j,y)):y===void 0?i(u)&&!isNaN(parseInt(h))?u.splice(h,1):delete u[h]:u[h]=y}}function $(u){var h,y={};for(h in u)p(u,h)&&(y[h]=u[h]);return y}var U=[].concat;function J(u){return U.apply([],u)}var ve="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(J([8,16,32,64].map(function(u){return["Int","Uint","Float"].map(function(h){return h+u+"Array"})}))).filter(function(u){return o[u]}),ee=new Set(ve.map(function(u){return o[u]})),I=null;function Y(u){return I=new WeakMap,u=function h(y){if(!y||typeof y!="object")return y;var b=I.get(y);if(b)return b;if(i(y)){b=[],I.set(y,b);for(var _=0,M=y.length;_<M;++_)b.push(h(y[_]))}else if(ee.has(y.constructor))b=y;else{var R,j=d(y);for(R in b=j===Object.prototype?{}:Object.create(j),I.set(y,b),y)p(y,R)&&(b[R]=h(y[R]))}return b}(u),I=null,u}var z={}.toString;function D(u){return z.call(u).slice(8,-1)}var ie=typeof Symbol<"u"?Symbol.iterator:"@@iterator",Q=typeof ie=="symbol"?function(u){var h;return u!=null&&(h=u[ie])&&h.apply(u)}:function(){return null};function ue(u,h){h=u.indexOf(h),0<=h&&u.splice(h,1)}var me={};function V(u){var h,y,b,_;if(arguments.length===1){if(i(u))return u.slice();if(this===me&&typeof u=="string")return[u];if(_=Q(u))for(y=[];!(b=_.next()).done;)y.push(b.value);else{if(u==null)return[u];if(typeof(h=u.length)!="number")return[u];for(y=new Array(h);h--;)y[h]=u[h]}}else for(h=arguments.length,y=new Array(h);h--;)y[h]=arguments[h];return y}var ae=typeof Symbol<"u"?function(u){return u[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},ve=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Tt=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(ve),re={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 le(u,h){this.name=u,this.message=h}function de(u,h){return u+". Errors: "+Object.keys(h).map(function(y){return h[y].toString()}).filter(function(y,b,_){return _.indexOf(y)===b}).join(`
12
+ `)}function pe(u,h,y,b){this.failures=h,this.failedKeys=b,this.successCount=y,this.message=de(u,h)}function Ae(u,h){this.name="BulkError",this.failures=Object.keys(h).map(function(y){return h[y]}),this.failuresByPos=h,this.message=de(u,this.failures)}m(le).from(Error).extend({toString:function(){return this.name+": "+this.message}}),m(pe).from(le),m(Ae).from(le);var Me=Tt.reduce(function(u,h){return u[h]=h+"Error",u},{}),F=le,L=Tt.reduce(function(u,h){var y=h+"Error";function b(_,M){this.name=y,_?typeof _=="string"?(this.message="".concat(_).concat(M?`
13
+ `+M:""),this.inner=M||null):typeof _=="object"&&(this.message="".concat(_.name," ").concat(_.message),this.inner=_):(this.message=re[h]||y,this.inner=null)}return m(b).from(F),u[h]=b,u},{}),fe=(L.Syntax=SyntaxError,L.Type=TypeError,L.Range=RangeError,ve.reduce(function(u,h){return u[h+"Error"]=L[h],u},{}));ve=Tt.reduce(function(u,h){return["Syntax","Type","Range"].indexOf(h)===-1&&(u[h+"Error"]=L[h]),u},{});function Se(){}function De(u){return u}function We(u,h){return u==null||u===De?h:function(y){return h(u(y))}}function Ge(u,h){return function(){u.apply(this,arguments),h.apply(this,arguments)}}function He(u,h){return u===Se?h:function(){var y=u.apply(this,arguments),b=(y!==void 0&&(arguments[0]=y),this.onsuccess),_=this.onerror,M=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return b&&(this.onsuccess=this.onsuccess?Ge(b,this.onsuccess):b),_&&(this.onerror=this.onerror?Ge(_,this.onerror):_),M!==void 0?M:y}}function at(u,h){return u===Se?h:function(){u.apply(this,arguments);var y=this.onsuccess,b=this.onerror;this.onsuccess=this.onerror=null,h.apply(this,arguments),y&&(this.onsuccess=this.onsuccess?Ge(y,this.onsuccess):y),b&&(this.onerror=this.onerror?Ge(b,this.onerror):b)}}function St(u,h){return u===Se?h:function(_){var b=u.apply(this,arguments),_=(c(_,b),this.onsuccess),M=this.onerror,R=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return _&&(this.onsuccess=this.onsuccess?Ge(_,this.onsuccess):_),M&&(this.onerror=this.onerror?Ge(M,this.onerror):M),b===void 0?R===void 0?void 0:R:c(b,R)}}function Ot(u,h){return u===Se?h:function(){return h.apply(this,arguments)!==!1&&u.apply(this,arguments)}}function xt(u,h){return u===Se?h:function(){var y=u.apply(this,arguments);if(y&&typeof y.then=="function"){for(var b=this,_=arguments.length,M=new Array(_);_--;)M[_]=arguments[_];return y.then(function(){return h.apply(b,M)})}return h.apply(this,arguments)}}ve.ModifyError=pe,ve.DexieError=le,ve.BulkError=Ae;var Fe=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function lt(u){Fe=u}var _t={},Qt=100,At=typeof Promise>"u"?[]:(Tt=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[At=crypto.subtle.digest("SHA-512",new Uint8Array([0])),d(At),Tt]:[Tt,d(Tt),Tt]),Tt=At[0],Is=At[1],Is=Is&&Is.then,Ht=Tt&&Tt.constructor,$n=!!At[2],Zt=function(u,h){Dt.push([u,h]),Ne&&(queueMicrotask(Es),Ne=!1)},he=!0,Ne=!0,Ie=[],Je=[],Wt=De,yn={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Se,pgp:!1,env:{},finalize:Se},Oe=yn,Dt=[],en=0,tn=[];function Re(u){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var h=this._PSD=Oe;if(typeof u!="function"){if(u!==_t)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Pr(this,this._value)}else this._state=null,this._value=null,++h.ref,function y(b,_){try{_(function(M){if(b._state===null){if(M===b)throw new TypeError("A promise cannot be resolved with itself.");var R=b._lib&&Wn();M&&typeof M.then=="function"?y(b,function(j,B){M instanceof Re?M._then(j,B):M.then(j,B)}):(b._state=!0,b._value=M,Vr(b)),R&&Cn()}},Pr.bind(null,b))}catch(M){Pr(b,M)}}(this,u)}var Zn={get:function(){var u=Oe,h=gr;function y(b,_){var M=this,R=!u.global&&(u!==Oe||h!==gr),j=R&&!Un(),B=new Re(function(te,q){er(M,new Tr(Ft(b,u,R,j),Ft(_,u,R,j),te,q,u))});return this._consoleTask&&(B._consoleTask=this._consoleTask),B}return y.prototype=_t,y},set:function(u){w(this,"then",u&&u.prototype===_t?Zn:{get:function(){return u},set:Zn.set})}};function Tr(u,h,y,b,_){this.onFulfilled=typeof u=="function"?u:null,this.onRejected=typeof h=="function"?h:null,this.resolve=y,this.reject=b,this.psd=_}function Pr(u,h){var y,b;Je.push(h),u._state===null&&(y=u._lib&&Wn(),h=Wt(h),u._state=!1,u._value=h,b=u,Ie.some(function(_){return _._value===b._value})||Ie.push(b),Vr(u),y)&&Cn()}function Vr(u){var h=u._listeners;u._listeners=[];for(var y=0,b=h.length;y<b;++y)er(u,h[y]);var _=u._PSD;--_.ref||_.finalize(),en===0&&(++en,Zt(function(){--en==0&&tr()},[]))}function er(u,h){if(u._state===null)u._listeners.push(h);else{var y=u._state?h.onFulfilled:h.onRejected;if(y===null)return(u._state?h.resolve:h.reject)(u._value);++h.psd.ref,++en,Zt(po,[y,u,h])}}function po(u,h,y){try{var b,_=h._value;!h._state&&Je.length&&(Je=[]),b=Fe&&h._consoleTask?h._consoleTask.run(function(){return u(_)}):u(_),h._state||Je.indexOf(_)!==-1||(M=>{for(var R=Ie.length;R;)if(Ie[--R]._value===M._value)return Ie.splice(R,1)})(h),y.resolve(b)}catch(M){y.reject(M)}finally{--en==0&&tr(),--y.psd.ref||y.psd.finalize()}}function Es(){xe(yn,function(){Wn()&&Cn()})}function Wn(){var u=he;return Ne=he=!1,u}function Cn(){var u,h,y;do for(;0<Dt.length;)for(u=Dt,Dt=[],y=u.length,h=0;h<y;++h){var b=u[h];b[0].apply(null,b[1])}while(0<Dt.length);Ne=he=!0}function tr(){for(var u=Ie,h=(Ie=[],u.forEach(function(b){b._PSD.onunhandled.call(null,b._value,b)}),tn.slice(0)),y=h.length;y;)h[--y]()}function nr(u){return new Re(_t,!1,u)}function Ce(u,h){var y=Oe;return function(){var b=Wn(),_=Oe;try{return qn(y,!0),u.apply(this,arguments)}catch(M){h&&h(M)}finally{qn(_,!1),b&&Cn()}}}v(Re.prototype,{then:Zn,_then:function(u,h){er(this,new Tr(null,null,u,h,Oe))},catch:function(u){var h,y;return arguments.length===1?this.then(null,u):(h=u,y=arguments[1],typeof h=="function"?this.then(null,function(b){return(b instanceof h?y:nr)(b)}):this.then(null,function(b){return(b&&b.name===h?y:nr)(b)}))},finally:function(u){return this.then(function(h){return Re.resolve(u()).then(function(){return h})},function(h){return Re.resolve(u()).then(function(){return nr(h)})})},timeout:function(u,h){var y=this;return u<1/0?new Re(function(b,_){var M=setTimeout(function(){return _(new L.Timeout(h))},u);y.then(b,_).finally(clearTimeout.bind(null,M))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&w(Re.prototype,Symbol.toStringTag,"Dexie.Promise"),yn.env=mo(),v(Re,{all:function(){var u=V.apply(null,arguments).map(Gr);return new Re(function(h,y){u.length===0&&h([]);var b=u.length;u.forEach(function(_,M){return Re.resolve(_).then(function(R){u[M]=R,--b||h(u)},y)})})},resolve:function(u){return u instanceof Re?u:u&&typeof u.then=="function"?new Re(function(h,y){u.then(h,y)}):new Re(_t,!0,u)},reject:nr,race:function(){var u=V.apply(null,arguments).map(Gr);return new Re(function(h,y){u.map(function(b){return Re.resolve(b).then(h,y)})})},PSD:{get:function(){return Oe},set:function(u){return Oe=u}},totalEchoes:{get:function(){return gr}},newPSD:rr,usePSD:xe,scheduler:{get:function(){return Zt},set:function(u){Zt=u}},rejectionMapper:{get:function(){return Wt},set:function(u){Wt=u}},follow:function(u,h){return new Re(function(y,b){return rr(function(_,M){var R=Oe;R.unhandleds=[],R.onunhandled=M,R.finalize=Ge(function(){var j,B=this;j=function(){B.unhandleds.length===0?_():M(B.unhandleds[0])},tn.push(function te(){j(),tn.splice(tn.indexOf(te),1)}),++en,Zt(function(){--en==0&&tr()},[])},R.finalize),u()},h,y,b)})}}),Ht&&(Ht.allSettled&&w(Re,"allSettled",function(){var u=V.apply(null,arguments).map(Gr);return new Re(function(h){u.length===0&&h([]);var y=u.length,b=new Array(y);u.forEach(function(_,M){return Re.resolve(_).then(function(R){return b[M]={status:"fulfilled",value:R}},function(R){return b[M]={status:"rejected",reason:R}}).then(function(){return--y||h(b)})})})}),Ht.any&&typeof AggregateError<"u"&&w(Re,"any",function(){var u=V.apply(null,arguments).map(Gr);return new Re(function(h,y){u.length===0&&y(new AggregateError([]));var b=u.length,_=new Array(b);u.forEach(function(M,R){return Re.resolve(M).then(function(j){return h(j)},function(j){_[R]=j,--b||y(new AggregateError(_))})})})}),Ht.withResolvers)&&(Re.withResolvers=Ht.withResolvers);var Xe={awaits:0,echoes:0,id:0},yt=0,Pt=[],nn=0,gr=0,fi=0;function rr(u,R,y,b){var _=Oe,M=Object.create(_),R=(M.parent=_,M.ref=0,M.global=!1,M.id=++fi,yn.env,M.env=$n?{Promise:Re,PromiseProp:{value:Re,configurable:!0,writable:!0},all:Re.all,race:Re.race,allSettled:Re.allSettled,any:Re.any,resolve:Re.resolve,reject:Re.reject}:{},R&&c(M,R),++_.ref,M.finalize=function(){--this.parent.ref||this.parent.finalize()},xe(M,u,y,b));return M.ref===0&&M.finalize(),R}function yr(){return Xe.id||(Xe.id=++yt),++Xe.awaits,Xe.echoes+=Qt,Xe.id}function Un(){return!!Xe.awaits&&(--Xe.awaits==0&&(Xe.id=0),Xe.echoes=Xe.awaits*Qt,!0)}function Gr(u){return Xe.echoes&&u&&u.constructor===Ht?(yr(),u.then(function(h){return Un(),h},function(h){return Un(),ft(h)})):u}function hi(){var u=Pt[Pt.length-1];Pt.pop(),qn(u,!1)}function qn(u,h){var y,b,_=Oe;(h?!Xe.echoes||nn++&&u===Oe:!nn||--nn&&u===Oe)||queueMicrotask(h?(function(M){++gr,Xe.echoes&&--Xe.echoes!=0||(Xe.echoes=Xe.awaits=Xe.id=0),Pt.push(Oe),qn(M,!0)}).bind(null,u):hi),u!==Oe&&(Oe=u,_===yn&&(yn.env=mo()),$n)&&(y=yn.env.Promise,b=u.env,_.global||u.global)&&(Object.defineProperty(o,"Promise",b.PromiseProp),y.all=b.all,y.race=b.race,y.resolve=b.resolve,y.reject=b.reject,b.allSettled&&(y.allSettled=b.allSettled),b.any)&&(y.any=b.any)}function mo(){var u=o.Promise;return $n?{Promise:u,PromiseProp:Object.getOwnPropertyDescriptor(o,"Promise"),all:u.all,race:u.race,allSettled:u.allSettled,any:u.any,resolve:u.resolve,reject:u.reject}:{}}function xe(u,h,y,b,_){var M=Oe;try{return qn(u,!0),h(y,b,_)}finally{qn(M,!1)}}function Ft(u,h,y,b){return typeof u!="function"?u:function(){var _=Oe;y&&yr(),qn(h,!0);try{return u.apply(this,arguments)}finally{qn(_,!1),b&&queueMicrotask(Un)}}}function Xt(u){Promise===Ht&&Xe.echoes===0?nn===0?u():enqueueNativeMicroTask(u):setTimeout(u,0)}(""+Is).indexOf("[native code]")===-1&&(yr=Un=Se);var ft=Re.reject,$t="￿",on="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",Hn="String expected.",vn="__dbnames",Ms="readonly",sr="readwrite";function bn(u,h){return u?h?function(){return u.apply(this,arguments)&&h.apply(this,arguments)}:u:h}var go={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function pi(u){return typeof u!="string"||/\./.test(u)?function(h){return h}:function(h){return h[u]===void 0&&u in h&&delete(h=Y(h))[u],h}}function Pf(){throw L.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function dt(u,h){try{var y=Ef(u),b=Ef(h);if(y!==b)return y==="Array"?1:b==="Array"?-1:y==="binary"?1:b==="binary"?-1:y==="string"?1:b==="string"?-1:y==="Date"?1:b!=="Date"?NaN:-1;switch(y){case"number":case"Date":case"string":return h<u?1:u<h?-1:0;case"binary":for(var _=Mf(u),M=Mf(h),R=_.length,j=M.length,B=R<j?R:j,te=0;te<B;++te)if(_[te]!==M[te])return _[te]<M[te]?-1:1;return R===j?0:R<j?-1:1;case"Array":for(var q=u,N=h,W=q.length,G=N.length,H=W<G?W:G,X=0;X<H;++X){var K=dt(q[X],N[X]);if(K!==0)return K}return W===G?0:W<G?-1:1}}catch{}return NaN}function Ef(u){var h=typeof u;return h=="object"&&(ArrayBuffer.isView(u)||(h=D(u))==="ArrayBuffer")?"binary":h}function Mf(u){return u instanceof Uint8Array?u:ArrayBuffer.isView(u)?new Uint8Array(u.buffer,u.byteOffset,u.byteLength):new Uint8Array(u)}function mi(u,h,y){var b=u.schema.yProps;return b?(h&&0<y.numFailures&&(h=h.filter(function(_,M){return!y.failures[M]})),Promise.all(b.map(function(_){return _=_.updatesTable,h?u.db.table(_).where("k").anyOf(h).delete():u.db.table(_).clear()})).then(function(){return y})):y}Rf.prototype.execute=function(u){var h=this["@@propmod"];if(h.add!==void 0){var y=h.add;if(i(y))return s(s([],i(u)?u:[],!0),y).sort();if(typeof y=="number")return(Number(u)||0)+y;if(typeof y=="bigint")try{return BigInt(u)+y}catch{return BigInt(0)+y}throw new TypeError("Invalid term ".concat(y))}if(h.remove!==void 0){var b=h.remove;if(i(b))return i(u)?u.filter(function(_){return!b.includes(_)}).sort():[];if(typeof b=="number")return Number(u)-b;if(typeof b=="bigint")try{return BigInt(u)-b}catch{return BigInt(0)-b}throw new TypeError("Invalid subtrahend ".concat(b))}return y=(y=h.replacePrefix)==null?void 0:y[0],y&&typeof u=="string"&&u.startsWith(y)?h.replacePrefix[1]+u.substring(y.length):u};var yo=Rf;function Rf(u){this["@@propmod"]=u}function Af(u,h){for(var y=a(h),b=y.length,_=!1,M=0;M<b;++M){var R=y[M],j=h[R],B=A(u,R);j instanceof yo?(O(u,R,j.execute(B)),_=!0):B!==j&&(O(u,R,j),_=!0)}return _}Mt.prototype._trans=function(u,h,y){var b=this._tx||Oe.trans,_=this.name,M=Fe&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(u==="readonly"?"read":"write"," ").concat(this.name));function R(te,q,N){if(N.schema[_])return h(N.idbtrans,N);throw new L.NotFound("Table "+_+" not part of transaction")}var j=Wn();try{var B=b&&b.db._novip===this.db._novip?b===Oe.trans?b._promise(u,R,y):rr(function(){return b._promise(u,R,y)},{trans:b,transless:Oe.transless||Oe}):function te(q,N,W,G){if(q.idbdb&&(q._state.openComplete||Oe.letThrough||q._vip)){var H=q._createTransaction(N,W,q._dbSchema);try{H.create(),q._state.PR1398_maxLoop=3}catch(X){return X.name===Me.InvalidState&&q.isOpen()&&0<--q._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),q.close({disableAutoOpen:!1}),q.open().then(function(){return te(q,N,W,G)})):ft(X)}return H._promise(N,function(X,K){return rr(function(){return Oe.trans=H,G(X,K,H)})}).then(function(X){if(N==="readwrite")try{H.idbtrans.commit()}catch{}return N==="readonly"?X:H._completion.then(function(){return X})})}if(q._state.openComplete)return ft(new L.DatabaseClosed(q._state.dbOpenError));if(!q._state.isBeingOpened){if(!q._state.autoOpen)return ft(new L.DatabaseClosed);q.open().catch(Se)}return q._state.dbReadyPromise.then(function(){return te(q,N,W,G)})}(this.db,u,[this.name],R);return M&&(B._consoleTask=M,B=B.catch(function(te){return console.trace(te),ft(te)})),B}finally{j&&Cn()}},Mt.prototype.get=function(u,h){var y=this;return u&&u.constructor===Object?this.where(u).first(h):u==null?ft(new L.Type("Invalid argument to Table.get()")):this._trans("readonly",function(b){return y.core.get({trans:b,key:u}).then(function(_){return y.hook.reading.fire(_)})}).then(h)},Mt.prototype.where=function(u){if(typeof u=="string")return new this.db.WhereClause(this,u);if(i(u))return new this.db.WhereClause(this,"[".concat(u.join("+"),"]"));var h=a(u);if(h.length===1)return this.where(h[0]).equals(u[h[0]]);var y=this.schema.indexes.concat(this.schema.primKey).filter(function(j){if(j.compound&&h.every(function(te){return 0<=j.keyPath.indexOf(te)})){for(var B=0;B<h.length;++B)if(h.indexOf(j.keyPath[B])===-1)return!1;return!0}return!1}).sort(function(j,B){return j.keyPath.length-B.keyPath.length})[0];if(y&&this.db._maxKey!==$t)return R=y.keyPath.slice(0,h.length),this.where(R).equals(R.map(function(j){return u[j]}));!y&&Fe&&console.warn("The query ".concat(JSON.stringify(u)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(h.join("+"),"]"));var b=this.schema.idxByName;function _(j,B){return dt(j,B)===0}var R=h.reduce(function(q,B){var te=q[0],q=q[1],N=b[B],W=u[B];return[te||N,te||!N?bn(q,N&&N.multi?function(G){return G=A(G,B),i(G)&&G.some(function(H){return _(W,H)})}:function(G){return _(W,A(G,B))}):q]},[null,null]),M=R[0],R=R[1];return M?this.where(M.name).equals(u[M.keyPath]).filter(R):y?this.filter(R):this.where(h).equals("")},Mt.prototype.filter=function(u){return this.toCollection().and(u)},Mt.prototype.count=function(u){return this.toCollection().count(u)},Mt.prototype.offset=function(u){return this.toCollection().offset(u)},Mt.prototype.limit=function(u){return this.toCollection().limit(u)},Mt.prototype.each=function(u){return this.toCollection().each(u)},Mt.prototype.toArray=function(u){return this.toCollection().toArray(u)},Mt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Mt.prototype.orderBy=function(u){return new this.db.Collection(new this.db.WhereClause(this,i(u)?"[".concat(u.join("+"),"]"):u))},Mt.prototype.reverse=function(){return this.toCollection().reverse()},Mt.prototype.mapToClass=function(u){for(var h=this.db,y=this.name,b=((this.schema.mappedClass=u).prototype instanceof Pf&&(u=(R=>{var j=q,B=R;if(typeof B!="function"&&B!==null)throw new TypeError("Class extends value "+String(B)+" is not a constructor or null");function te(){this.constructor=j}function q(){return R!==null&&R.apply(this,arguments)||this}return n(j,B),j.prototype=B===null?Object.create(B):(te.prototype=B.prototype,new te),Object.defineProperty(q.prototype,"db",{get:function(){return h},enumerable:!1,configurable:!0}),q.prototype.table=function(){return y},q})(u)),new Set),_=u.prototype;_;_=d(_))Object.getOwnPropertyNames(_).forEach(function(R){return b.add(R)});function M(R){if(!R)return R;var j,B=Object.create(u.prototype);for(j in R)if(!b.has(j))try{B[j]=R[j]}catch{}return B}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=M,this.hook("reading",M),u},Mt.prototype.defineClass=function(){return this.mapToClass(function(u){c(this,u)})},Mt.prototype.add=function(u,h){var y=this,b=this.schema.primKey,_=b.auto,M=b.keyPath,R=u;return M&&_&&(R=pi(M)(u)),this._trans("readwrite",function(j){return y.core.mutate({trans:j,type:"add",keys:h!=null?[h]:null,values:[R]})}).then(function(j){return j.numFailures?Re.reject(j.failures[0]):j.lastResult}).then(function(j){if(M)try{O(u,M,j)}catch{}return j})},Mt.prototype.upsert=function(u,h){var y=this,b=this.schema.primKey.keyPath;return this._trans("readwrite",function(_){return y.core.get({trans:_,key:u}).then(function(M){var R=M??{};return Af(R,h),b&&O(R,b,u),y.core.mutate({trans:_,type:"put",values:[R],keys:[u],upsert:!0,updates:{keys:[u],changeSpecs:[h]}}).then(function(j){return j.numFailures?Re.reject(j.failures[0]):!!M})})})},Mt.prototype.update=function(u,h){return typeof u!="object"||i(u)?this.where(":id").equals(u).modify(h):(u=A(u,this.schema.primKey.keyPath))===void 0?ft(new L.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(u).modify(h)},Mt.prototype.put=function(u,h){var y=this,b=this.schema.primKey,_=b.auto,M=b.keyPath,R=u;return M&&_&&(R=pi(M)(u)),this._trans("readwrite",function(j){return y.core.mutate({trans:j,type:"put",values:[R],keys:h!=null?[h]:null})}).then(function(j){return j.numFailures?Re.reject(j.failures[0]):j.lastResult}).then(function(j){if(M)try{O(u,M,j)}catch{}return j})},Mt.prototype.delete=function(u){var h=this;return this._trans("readwrite",function(y){return h.core.mutate({trans:y,type:"delete",keys:[u]}).then(function(b){return mi(h,[u],b)}).then(function(b){return b.numFailures?Re.reject(b.failures[0]):void 0})})},Mt.prototype.clear=function(){var u=this;return this._trans("readwrite",function(h){return u.core.mutate({trans:h,type:"deleteRange",range:go}).then(function(y){return mi(u,null,y)})}).then(function(h){return h.numFailures?Re.reject(h.failures[0]):void 0})},Mt.prototype.bulkGet=function(u){var h=this;return this._trans("readonly",function(y){return h.core.getMany({keys:u,trans:y}).then(function(b){return b.map(function(_){return h.hook.reading.fire(_)})})})},Mt.prototype.bulkAdd=function(u,h,y){var b=this,_=Array.isArray(h)?h:void 0,M=(y=y||(_?void 0:h))?y.allKeys:void 0;return this._trans("readwrite",function(R){var j=b.schema.primKey,te=j.auto,j=j.keyPath;if(j&&_)throw new L.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(_&&_.length!==u.length)throw new L.InvalidArgument("Arguments objects and keys must have the same length");var B=u.length,te=j&&te?u.map(pi(j)):u;return b.core.mutate({trans:R,type:"add",keys:_,values:te,wantResults:M}).then(function(q){var N=q.numFailures,W=q.failures;if(N===0)return M?q.results:q.lastResult;throw new Ae("".concat(b.name,".bulkAdd(): ").concat(N," of ").concat(B," operations failed"),W)})})},Mt.prototype.bulkPut=function(u,h,y){var b=this,_=Array.isArray(h)?h:void 0,M=(y=y||(_?void 0:h))?y.allKeys:void 0;return this._trans("readwrite",function(R){var j=b.schema.primKey,te=j.auto,j=j.keyPath;if(j&&_)throw new L.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(_&&_.length!==u.length)throw new L.InvalidArgument("Arguments objects and keys must have the same length");var B=u.length,te=j&&te?u.map(pi(j)):u;return b.core.mutate({trans:R,type:"put",keys:_,values:te,wantResults:M}).then(function(q){var N=q.numFailures,W=q.failures;if(N===0)return M?q.results:q.lastResult;throw new Ae("".concat(b.name,".bulkPut(): ").concat(N," of ").concat(B," operations failed"),W)})})},Mt.prototype.bulkUpdate=function(u){var h=this,y=this.core,b=u.map(function(R){return R.key}),_=u.map(function(R){return R.changes}),M=[];return this._trans("readwrite",function(R){return y.getMany({trans:R,keys:b,cache:"clone"}).then(function(j){var B=[],te=[],q=(u.forEach(function(N,W){var G=N.key,H=N.changes,X=j[W];if(X){for(var K=0,oe=Object.keys(H);K<oe.length;K++){var ne=oe[K],ce=H[ne];if(ne===h.schema.primKey.keyPath){if(dt(ce,G)!==0)throw new L.Constraint("Cannot update primary key in bulkUpdate()")}else O(X,ne,ce)}M.push(W),B.push(G),te.push(X)}}),B.length);return y.mutate({trans:R,type:"put",keys:B,values:te,updates:{keys:b,changeSpecs:_}}).then(function(N){var W=N.numFailures,G=N.failures;if(W===0)return q;for(var H=0,X=Object.keys(G);H<X.length;H++){var K,oe=X[H],ne=M[Number(oe)];ne!=null&&(K=G[oe],delete G[oe],G[ne]=K)}throw new Ae("".concat(h.name,".bulkUpdate(): ").concat(W," of ").concat(q," operations failed"),G)})})})},Mt.prototype.bulkDelete=function(u){var h=this,y=u.length;return this._trans("readwrite",function(b){return h.core.mutate({trans:b,type:"delete",keys:u}).then(function(_){return mi(h,u,_)})}).then(function(b){var _=b.numFailures,M=b.failures;if(_===0)return b.lastResult;throw new Ae("".concat(h.name,".bulkDelete(): ").concat(_," of ").concat(y," operations failed"),M)})};var jf=Mt;function Mt(){}function vo(u){function h(R,j){if(j){for(var B=arguments.length,te=new Array(B-1);--B;)te[B-1]=arguments[B];return y[R].subscribe.apply(null,te),u}if(typeof R=="string")return y[R]}var y={};h.addEventType=M;for(var b=1,_=arguments.length;b<_;++b)M(arguments[b]);return h;function M(R,j,B){var te,q;if(typeof R!="object")return j=j||Ot,q={subscribers:[],fire:B=B||Se,subscribe:function(N){q.subscribers.indexOf(N)===-1&&(q.subscribers.push(N),q.fire=j(q.fire,N))},unsubscribe:function(N){q.subscribers=q.subscribers.filter(function(W){return W!==N}),q.fire=q.subscribers.reduce(j,B)}},y[R]=h[R]=q;a(te=R).forEach(function(N){var W=te[N];if(i(W))M(N,te[N][0],te[N][1]);else{if(W!=="asap")throw new L.InvalidArgument("Invalid event config");var G=M(N,De,function(){for(var H=arguments.length,X=new Array(H);H--;)X[H]=arguments[H];G.subscribers.forEach(function(K){P(function(){K.apply(null,X)})})})}})}}function bo(u,h){return m(h).from({prototype:u}),h}function Rs(u,h){return!(u.filter||u.algorithm||u.or)&&(h?u.justLimit:!u.replayFilter)}function sc(u,h){u.filter=bn(u.filter,h)}function oc(u,h,y){var b=u.replayFilter;u.replayFilter=b?function(){return bn(b(),h())}:h,u.justLimit=y&&!b}function gi(u,h){if(u.isPrimKey)return h.primaryKey;var y=h.getIndexByKeyPath(u.index);if(y)return y;throw new L.Schema("KeyPath "+u.index+" on object store "+h.name+" is not indexed")}function If(u,h,y){var b=gi(u,h.schema);return h.openCursor({trans:y,values:!u.keysOnly,reverse:u.dir==="prev",unique:!!u.unique,query:{index:b,range:u.range}})}function yi(u,h,y,b){var _,M,R=u.replayFilter?bn(u.filter,u.replayFilter()):u.filter;return u.or?(_={},M=function(j,B,te){var q,N;R&&!R(B,te,function(W){return B.stop(W)},function(W){return B.fail(W)})||((N=""+(q=B.primaryKey))=="[object ArrayBuffer]"&&(N=""+new Uint8Array(q)),p(_,N))||(_[N]=!0,h(j,B,te))},Promise.all([u.or._iterate(M,y),Of(If(u,b,y),u.algorithm,M,!u.keysOnly&&u.valueMapper)])):Of(If(u,b,y),bn(u.algorithm,R),h,!u.keysOnly&&u.valueMapper)}function Of(u,h,y,b){var _=Ce(b?function(M,R,j){return y(b(M),R,j)}:y);return u.then(function(M){if(M)return M.start(function(){var R=function(){return M.continue()};h&&!h(M,function(j){return R=j},function(j){M.stop(j),R=Se},function(j){M.fail(j),R=Se})||_(M.value,M,function(j){return R=j}),R()})})}gt.prototype._read=function(u,h){var y=this._ctx;return y.error?y.table._trans(null,ft.bind(null,y.error)):y.table._trans("readonly",u).then(h)},gt.prototype._write=function(u){var h=this._ctx;return h.error?h.table._trans(null,ft.bind(null,h.error)):h.table._trans("readwrite",u,"locked")},gt.prototype._addAlgorithm=function(u){var h=this._ctx;h.algorithm=bn(h.algorithm,u)},gt.prototype._iterate=function(u,h){return yi(this._ctx,u,h,this._ctx.table.core)},gt.prototype.clone=function(u){var h=Object.create(this.constructor.prototype),y=Object.create(this._ctx);return u&&c(y,u),h._ctx=y,h},gt.prototype.raw=function(){return this._ctx.valueMapper=null,this},gt.prototype.each=function(u){var h=this._ctx;return this._read(function(y){return yi(h,u,y,h.table.core)})},gt.prototype.count=function(u){var h=this;return this._read(function(y){var b,_=h._ctx,M=_.table.core;return Rs(_,!0)?M.count({trans:y,query:{index:gi(_,M.schema),range:_.range}}).then(function(R){return Math.min(R,_.limit)}):(b=0,yi(_,function(){return++b,!1},y,M).then(function(){return b}))}).then(u)},gt.prototype.sortBy=function(u,h){var y=u.split(".").reverse(),b=y[0],_=y.length-1;function M(B,te){return te?M(B[y[te]],te-1):B[b]}var R=this._ctx.dir==="next"?1:-1;function j(B,te){return dt(M(B,_),M(te,_))*R}return this.toArray(function(B){return B.sort(j)}).then(h)},gt.prototype.toArray=function(u){var h=this;return this._read(function(y){var b,_,M,R=h._ctx;return Rs(R,!0)&&0<R.limit?(b=R.valueMapper,_=gi(R,R.table.core.schema),R.table.core.query({trans:y,limit:R.limit,values:!0,direction:R.dir==="prev"?"prev":void 0,query:{index:_,range:R.range}}).then(function(j){return j=j.result,b?j.map(b):j})):(M=[],yi(R,function(j){return M.push(j)},y,R.table.core).then(function(){return M}))},u)},gt.prototype.offset=function(u){var h=this._ctx;return u<=0||(h.offset+=u,Rs(h)?oc(h,function(){var y=u;return function(b,_){return y===0||(y===1?--y:_(function(){b.advance(y),y=0}),!1)}}):oc(h,function(){var y=u;return function(){return--y<0}})),this},gt.prototype.limit=function(u){return this._ctx.limit=Math.min(this._ctx.limit,u),oc(this._ctx,function(){var h=u;return function(y,b,_){return--h<=0&&b(_),0<=h}},!0),this},gt.prototype.until=function(u,h){return sc(this._ctx,function(y,b,_){return!u(y.value)||(b(_),h)}),this},gt.prototype.first=function(u){return this.limit(1).toArray(function(h){return h[0]}).then(u)},gt.prototype.last=function(u){return this.reverse().first(u)},gt.prototype.filter=function(u){var h;return sc(this._ctx,function(y){return u(y.value)}),(h=this._ctx).isMatch=bn(h.isMatch,u),this},gt.prototype.and=function(u){return this.filter(u)},gt.prototype.or=function(u){return new this.db.WhereClause(this._ctx.table,u,this)},gt.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},gt.prototype.desc=function(){return this.reverse()},gt.prototype.eachKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(y,b){u(b.key,b)})},gt.prototype.eachUniqueKey=function(u){return this._ctx.unique="unique",this.eachKey(u)},gt.prototype.eachPrimaryKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(y,b){u(b.primaryKey,b)})},gt.prototype.keys=function(u){var h=this._ctx,y=(h.keysOnly=!h.isMatch,[]);return this.each(function(b,_){y.push(_.key)}).then(function(){return y}).then(u)},gt.prototype.primaryKeys=function(u){var h=this._ctx;if(Rs(h,!0)&&0<h.limit)return this._read(function(b){var _=gi(h,h.table.core.schema);return h.table.core.query({trans:b,values:!1,limit:h.limit,direction:h.dir==="prev"?"prev":void 0,query:{index:_,range:h.range}})}).then(function(b){return b.result}).then(u);h.keysOnly=!h.isMatch;var y=[];return this.each(function(b,_){y.push(_.primaryKey)}).then(function(){return y}).then(u)},gt.prototype.uniqueKeys=function(u){return this._ctx.unique="unique",this.keys(u)},gt.prototype.firstKey=function(u){return this.limit(1).keys(function(h){return h[0]}).then(u)},gt.prototype.lastKey=function(u){return this.reverse().firstKey(u)},gt.prototype.distinct=function(){var u,h=this._ctx,h=h.index&&h.table.schema.idxByName[h.index];return h&&h.multi&&(u={},sc(this._ctx,function(b){var b=b.primaryKey.toString(),_=p(u,b);return u[b]=!0,!_})),this},gt.prototype.modify=function(u){var h=this,y=this._ctx;return this._write(function(b){function _(X,K){var oe=K.failures;W+=X-K.numFailures;for(var ne=0,ce=a(oe);ne<ce.length;ne++){var ge=ce[ne];N.push(oe[ge])}}var M=typeof u=="function"?u:function(X){return Af(X,u)},R=y.table.core,q=R.schema.primaryKey,j=q.outbound,B=q.extractKey,te=200,q=h.db._options.modifyChunkSize,N=(q&&(te=typeof q=="object"?q[R.name]||q["*"]||200:q),[]),W=0,G=[],H=u===$f;return h.clone().primaryKeys().then(function(X){function K(ne){var ce=Math.min(te,X.length-ne),ge=X.slice(ne,ne+ce);return(H?Promise.resolve([]):R.getMany({trans:b,keys:ge,cache:"immutable"})).then(function(be){var Pe=[],_e=[],$e=j?[]:null,Te=H?ge:[];if(!H)for(var Le=0;Le<ce;++Le){var ye=be[Le],Qe={value:Y(ye),primKey:X[ne+Le]};M.call(Qe,Qe.value,Qe)!==!1&&(Qe.value==null?Te.push(X[ne+Le]):j||dt(B(ye),B(Qe.value))===0?(_e.push(Qe.value),j&&$e.push(X[ne+Le])):(Te.push(X[ne+Le]),Pe.push(Qe.value)))}return Promise.resolve(0<Pe.length&&R.mutate({trans:b,type:"add",values:Pe}).then(function(Ze){for(var nt in Ze.failures)Te.splice(parseInt(nt),1);_(Pe.length,Ze)})).then(function(){return(0<_e.length||oe&&typeof u=="object")&&R.mutate({trans:b,type:"put",keys:$e,values:_e,criteria:oe,changeSpec:typeof u!="function"&&u,isAdditionalChunk:0<ne}).then(function(Ze){return _(_e.length,Ze)})}).then(function(){return(0<Te.length||oe&&H)&&R.mutate({trans:b,type:"delete",keys:Te,criteria:oe,isAdditionalChunk:0<ne}).then(function(Ze){return mi(y.table,Te,Ze)}).then(function(Ze){return _(Te.length,Ze)})}).then(function(){return X.length>ne+ce&&K(ne+te)})})}var oe=Rs(y)&&y.limit===1/0&&(typeof u!="function"||H)&&{index:y.index,range:y.range};return K(0).then(function(){if(0<N.length)throw new pe("Error modifying one or more objects",N,W,G);return X.length})})})},gt.prototype.delete=function(){var u=this._ctx,h=u.range;return!Rs(u)||u.table.schema.yProps||!u.isPrimKey&&h.type!==3?this.modify($f):this._write(function(y){var b=u.table.core.schema.primaryKey,_=h;return u.table.core.count({trans:y,query:{index:b,range:_}}).then(function(M){return u.table.core.mutate({trans:y,type:"deleteRange",range:_}).then(function(B){var j=B.failures,B=B.numFailures;if(B)throw new pe("Could not delete some values",Object.keys(j).map(function(te){return j[te]}),M-B);return M-B})})})};var GS=gt;function gt(){}var $f=function(u,h){return h.value=null};function JS(u,h){return u<h?-1:u===h?0:1}function QS(u,h){return h<u?-1:u===h?0:1}function En(u,h,y){return u=u instanceof Df?new u.Collection(u):u,u._ctx.error=new(y||TypeError)(h),u}function As(u){return new u.Collection(u,function(){return Lf("")}).limit(0)}function vi(G,h,y,b){var _,M,R,j,B,te,q,N=y.length;if(!y.every(function(X){return typeof X=="string"}))return En(G,Hn);function W(X){_=X==="next"?function(oe){return oe.toUpperCase()}:function(oe){return oe.toLowerCase()},M=X==="next"?function(oe){return oe.toLowerCase()}:function(oe){return oe.toUpperCase()},R=X==="next"?JS:QS;var K=y.map(function(oe){return{lower:M(oe),upper:_(oe)}}).sort(function(oe,ne){return R(oe.lower,ne.lower)});j=K.map(function(oe){return oe.upper}),B=K.map(function(oe){return oe.lower}),q=(te=X)==="next"?"":b}W("next");var G=new G.Collection(G,function(){return Er(j[0],B[N-1]+b)}),H=(G._ondirectionchange=function(X){W(X)},0);return G._addAlgorithm(function(X,K,oe){var ne=X.key;if(typeof ne=="string"){var ce=M(ne);if(h(ce,B,H))return!0;for(var ge=null,be=H;be<N;++be){var Pe=((_e,$e,Te,Le,ye,Qe)=>{for(var Ze=Math.min(_e.length,Le.length),nt=-1,ut=0;ut<Ze;++ut){var Mn=$e[ut];if(Mn!==Le[ut])return ye(_e[ut],Te[ut])<0?_e.substr(0,ut)+Te[ut]+Te.substr(ut+1):ye(_e[ut],Le[ut])<0?_e.substr(0,ut)+Le[ut]+Te.substr(ut+1):0<=nt?_e.substr(0,nt)+$e[nt]+Te.substr(nt+1):null;ye(_e[ut],Mn)<0&&(nt=ut)}return Ze<Le.length&&Qe==="next"?_e+Te.substr(_e.length):Ze<_e.length&&Qe==="prev"?_e.substr(0,Te.length):nt<0?null:_e.substr(0,nt)+Le[nt]+Te.substr(nt+1)})(ne,ce,j[be],B[be],R,te);Pe===null&&ge===null?H=be+1:(ge===null||0<R(ge,Pe))&&(ge=Pe)}K(ge!==null?function(){X.continue(ge+q)}:oe)}return!1}),G}function Er(u,h,y,b){return{type:2,lower:u,upper:h,lowerOpen:y,upperOpen:b}}function Lf(u){return{type:1,lower:u,upper:u}}Object.defineProperty(rn.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),rn.prototype.between=function(u,h,y,b){y=y!==!1,b=b===!0;try{return 0<this._cmp(u,h)||this._cmp(u,h)===0&&(y||b)&&(!y||!b)?As(this):new this.Collection(this,function(){return Er(u,h,!y,!b)})}catch{return En(this,on)}},rn.prototype.equals=function(u){return u==null?En(this,on):new this.Collection(this,function(){return Lf(u)})},rn.prototype.above=function(u){return u==null?En(this,on):new this.Collection(this,function(){return Er(u,void 0,!0)})},rn.prototype.aboveOrEqual=function(u){return u==null?En(this,on):new this.Collection(this,function(){return Er(u,void 0,!1)})},rn.prototype.below=function(u){return u==null?En(this,on):new this.Collection(this,function(){return Er(void 0,u,!1,!0)})},rn.prototype.belowOrEqual=function(u){return u==null?En(this,on):new this.Collection(this,function(){return Er(void 0,u)})},rn.prototype.startsWith=function(u){return typeof u!="string"?En(this,Hn):this.between(u,u+$t,!0,!0)},rn.prototype.startsWithIgnoreCase=function(u){return u===""?this.startsWith(u):vi(this,function(h,y){return h.indexOf(y[0])===0},[u],$t)},rn.prototype.equalsIgnoreCase=function(u){return vi(this,function(h,y){return h===y[0]},[u],"")},rn.prototype.anyOfIgnoreCase=function(){var u=V.apply(me,arguments);return u.length===0?As(this):vi(this,function(h,y){return y.indexOf(h)!==-1},u,"")},rn.prototype.startsWithAnyOfIgnoreCase=function(){var u=V.apply(me,arguments);return u.length===0?As(this):vi(this,function(h,y){return y.some(function(b){return h.indexOf(b)===0})},u,$t)},rn.prototype.anyOf=function(){var u,h,y=this,b=V.apply(me,arguments),_=this._cmp;try{b.sort(_)}catch{return En(this,on)}return b.length===0?As(this):((u=new this.Collection(this,function(){return Er(b[0],b[b.length-1])}))._ondirectionchange=function(M){_=M==="next"?y._ascending:y._descending,b.sort(_)},h=0,u._addAlgorithm(function(M,R,j){for(var B=M.key;0<_(B,b[h]);)if(++h===b.length)return R(j),!1;return _(B,b[h])===0||(R(function(){M.continue(b[h])}),!1)}),u)},rn.prototype.notEqual=function(u){return this.inAnyRange([[-1/0,u],[u,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},rn.prototype.noneOf=function(){var u=V.apply(me,arguments);if(u.length===0)return new this.Collection(this);try{u.sort(this._ascending)}catch{return En(this,on)}var h=u.reduce(function(y,b){return y?y.concat([[y[y.length-1][1],b]]):[[-1/0,b]]},null);return h.push([u[u.length-1],this.db._maxKey]),this.inAnyRange(h,{includeLowers:!1,includeUppers:!1})},rn.prototype.inAnyRange=function(u,oe){var y=this,b=this._cmp,_=this._ascending,M=this._descending,R=this._min,j=this._max;if(u.length===0)return As(this);if(!u.every(function(ne){return ne[0]!==void 0&&ne[1]!==void 0&&_(ne[0],ne[1])<=0}))return En(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",L.InvalidArgument);var B=!oe||oe.includeLowers!==!1,te=oe&&oe.includeUppers===!0,q,N=_;function W(ne,ce){return N(ne[0],ce[0])}try{(q=u.reduce(function(ne,ce){for(var ge=0,be=ne.length;ge<be;++ge){var Pe=ne[ge];if(b(ce[0],Pe[1])<0&&0<b(ce[1],Pe[0])){Pe[0]=R(Pe[0],ce[0]),Pe[1]=j(Pe[1],ce[1]);break}}return ge===be&&ne.push(ce),ne},[])).sort(W)}catch{return En(this,on)}var G=0,H=te?function(ne){return 0<_(ne,q[G][1])}:function(ne){return 0<=_(ne,q[G][1])},X=B?function(ne){return 0<M(ne,q[G][0])}:function(ne){return 0<=M(ne,q[G][0])},K=H,oe=new this.Collection(this,function(){return Er(q[0][0],q[q.length-1][1],!B,!te)});return oe._ondirectionchange=function(ne){N=ne==="next"?(K=H,_):(K=X,M),q.sort(W)},oe._addAlgorithm(function(ne,ce,ge){for(var be,Pe=ne.key;K(Pe);)if(++G===q.length)return ce(ge),!1;return!H(be=Pe)&&!X(be)||(y._cmp(Pe,q[G][1])===0||y._cmp(Pe,q[G][0])===0||ce(function(){N===_?ne.continue(q[G][0]):ne.continue(q[G][1])}),!1)}),oe},rn.prototype.startsWithAnyOf=function(){var u=V.apply(me,arguments);return u.every(function(h){return typeof h=="string"})?u.length===0?As(this):this.inAnyRange(u.map(function(h){return[h,h+$t]})):En(this,"startsWithAnyOf() only works with strings")};var Df=rn;function rn(){}function Xn(u){return Ce(function(h){return So(h),u(h.target.error),!1})}function So(u){u.stopPropagation&&u.stopPropagation(),u.preventDefault&&u.preventDefault()}var wo="storagemutated",ac="x-storagemutated-1",Mr=vo(null,wo),ZS=(or.prototype._lock=function(){return T(!Oe.global),++this._reculock,this._reculock!==1||Oe.global||(Oe.lockOwnerFor=this),this},or.prototype._unlock=function(){if(T(!Oe.global),--this._reculock==0)for(Oe.global||(Oe.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var u=this._blockedFuncs.shift();try{xe(u[1],u[0])}catch{}}return this},or.prototype._locked=function(){return this._reculock&&Oe.lockOwnerFor!==this},or.prototype.create=function(u){var h=this;if(this.mode){var y=this.db.idbdb,b=this.db._state.dbOpenError;if(T(!this.idbtrans),!u&&!y)switch(b&&b.name){case"DatabaseClosedError":throw new L.DatabaseClosed(b);case"MissingAPIError":throw new L.MissingAPI(b.message,b);default:throw new L.OpenFailed(b)}if(!this.active)throw new L.TransactionInactive;T(this._completion._state===null),(u=this.idbtrans=u||(this.db.core||y).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=Ce(function(_){So(_),h._reject(u.error)}),u.onabort=Ce(function(_){So(_),h.active&&h._reject(new L.Abort(u.error)),h.active=!1,h.on("abort").fire(_)}),u.oncomplete=Ce(function(){h.active=!1,h._resolve(),"mutatedParts"in u&&Mr.storagemutated.fire(u.mutatedParts)})}return this},or.prototype._promise=function(u,h,y){var b,_=this;return u==="readwrite"&&this.mode!=="readwrite"?ft(new L.ReadOnly("Transaction is readonly")):this.active?this._locked()?new Re(function(M,R){_._blockedFuncs.push([function(){_._promise(u,h,y).then(M,R)},Oe])}):y?rr(function(){var M=new Re(function(R,j){_._lock();var B=h(R,j,_);B&&B.then&&B.then(R,j)});return M.finally(function(){return _._unlock()}),M._lib=!0,M}):((b=new Re(function(M,R){var j=h(M,R,_);j&&j.then&&j.then(M,R)}))._lib=!0,b):ft(new L.TransactionInactive)},or.prototype._root=function(){return this.parent?this.parent._root():this},or.prototype.waitFor=function(u){var h,y=this._root(),b=Re.resolve(u),_=(y._waitingFor?y._waitingFor=y._waitingFor.then(function(){return b}):(y._waitingFor=b,y._waitingQueue=[],h=y.idbtrans.objectStore(y.storeNames[0]),function M(){for(++y._spinCount;y._waitingQueue.length;)y._waitingQueue.shift()();y._waitingFor&&(h.get(-1/0).onsuccess=M)}()),y._waitingFor);return new Re(function(M,R){b.then(function(j){return y._waitingQueue.push(Ce(M.bind(null,j)))},function(j){return y._waitingQueue.push(Ce(R.bind(null,j)))}).finally(function(){y._waitingFor===_&&(y._waitingFor=null)})})},or.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new L.Abort))},or.prototype.table=function(u){var h=this._memoizedTables||(this._memoizedTables={});if(p(h,u))return h[u];var y=this.schema[u];if(y)return(y=new this.db.Table(u,y,this)).core=this.db.core.table(u),h[u]=y;throw new L.NotFound("Table "+u+" not part of transaction")},or);function or(){}function ic(u,h,y,b,_,M,R,j){return{name:u,keyPath:h,unique:y,multi:b,auto:_,compound:M,src:(y&&!R?"&":"")+(b?"*":"")+(_?"++":"")+Ff(h),type:j}}function Ff(u){return typeof u=="string"?u:u?"["+[].join.call(u,"+")+"]":""}function lc(u,h,y){return{name:u,primKey:h,indexes:y,mappedClass:null,idxByName:(b=function(_){return[_.name,_]},y.reduce(function(_,M,R){return M=b(M,R),M&&(_[M[0]]=M[1]),_},{}))};var b}var xo=function(u){try{return u.only([[]]),xo=function(){return[[]]},[[]]}catch{return xo=function(){return $t},$t}};function cc(u){return u==null?function(){}:typeof u=="string"?(h=u).split(".").length===1?function(y){return y[h]}:function(y){return A(y,h)}:function(y){return A(y,u)};var h}function Nf(u){return[].slice.call(u)}var ew=0;function _o(u){return u==null?":id":typeof u=="string"?u:"[".concat(u.join("+"),"]")}function tw(u,h,R){function b(K){if(K.type===3)return null;if(K.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var G=K.lower,H=K.upper,X=K.lowerOpen,K=K.upperOpen;return G===void 0?H===void 0?null:h.upperBound(H,!!K):H===void 0?h.lowerBound(G,!!X):h.bound(G,H,!!X,!!K)}function _(W){var G,H,X=W.name;return{name:X,schema:W,mutate:function(K){var oe=K.trans,ne=K.type,ce=K.keys,ge=K.values,be=K.range;return new Promise(function(Pe,_e){Pe=Ce(Pe);var $e=oe.objectStore(X),Te=$e.keyPath==null,Le=ne==="put"||ne==="add";if(!Le&&ne!=="delete"&&ne!=="deleteRange")throw new Error("Invalid operation type: "+ne);var ye,Qe=(ce||ge||{length:1}).length;if(ce&&ge&&ce.length!==ge.length)throw new Error("Given keys array must have same length as given values array.");if(Qe===0)return Pe({numFailures:0,failures:{},results:[],lastResult:void 0});function Ze(Sn){++Mn,So(Sn)}var nt=[],ut=[],Mn=0;if(ne==="deleteRange"){if(be.type===4)return Pe({numFailures:Mn,failures:ut,results:[],lastResult:void 0});be.type===3?nt.push(ye=$e.clear()):nt.push(ye=$e.delete(b(be)))}else{var Te=Le?Te?[ge,ce]:[ge,null]:[ce,null],tt=Te[0],pn=Te[1];if(Le)for(var mn=0;mn<Qe;++mn)nt.push(ye=pn&&pn[mn]!==void 0?$e[ne](tt[mn],pn[mn]):$e[ne](tt[mn])),ye.onerror=Ze;else for(mn=0;mn<Qe;++mn)nt.push(ye=$e[ne](tt[mn])),ye.onerror=Ze}function Ri(Sn){Sn=Sn.target.result,nt.forEach(function(Zr,Pc){return Zr.error!=null&&(ut[Pc]=Zr.error)}),Pe({numFailures:Mn,failures:ut,results:ne==="delete"?ce:nt.map(function(Zr){return Zr.result}),lastResult:Sn})}ye.onerror=function(Sn){Ze(Sn),Ri(Sn)},ye.onsuccess=Ri})},getMany:function(K){var oe=K.trans,ne=K.keys;return new Promise(function(ce,ge){ce=Ce(ce);for(var be,Pe=oe.objectStore(X),_e=ne.length,$e=new Array(_e),Te=0,Le=0,ye=function(nt){nt=nt.target,$e[nt._pos]=nt.result,++Le===Te&&ce($e)},Qe=Xn(ge),Ze=0;Ze<_e;++Ze)ne[Ze]!=null&&((be=Pe.get(ne[Ze]))._pos=Ze,be.onsuccess=ye,be.onerror=Qe,++Te);Te===0&&ce($e)})},get:function(K){var oe=K.trans,ne=K.key;return new Promise(function(ce,ge){ce=Ce(ce);var be=oe.objectStore(X).get(ne);be.onsuccess=function(Pe){return ce(Pe.target.result)},be.onerror=Xn(ge)})},query:(G=B,H=te,function(K){return new Promise(function(oe,ne){oe=Ce(oe);var ce,ge,be,Pe,Qe=K.trans,_e=K.values,$e=K.limit,ye=K.query,Te=(Te=K.direction)!=null?Te:"next",Le=$e===1/0?void 0:$e,Ze=ye.index,ye=ye.range,Qe=Qe.objectStore(X),Qe=Ze.isPrimaryKey?Qe:Qe.index(Ze.name),Ze=b(ye);if($e===0)return oe({result:[]});H?(ye={query:Ze,count:Le,direction:Te},(ce=_e?Qe.getAll(ye):Qe.getAllKeys(ye)).onsuccess=function(nt){return oe({result:nt.target.result})},ce.onerror=Xn(ne)):G&&Te==="next"?((ce=_e?Qe.getAll(Ze,Le):Qe.getAllKeys(Ze,Le)).onsuccess=function(nt){return oe({result:nt.target.result})},ce.onerror=Xn(ne)):(ge=0,be=!_e&&"openKeyCursor"in Qe?Qe.openKeyCursor(Ze,Te):Qe.openCursor(Ze,Te),Pe=[],be.onsuccess=function(){var nt=be.result;return!nt||(Pe.push(_e?nt.value:nt.primaryKey),++ge===$e)?oe({result:Pe}):void nt.continue()},be.onerror=Xn(ne))})}),openCursor:function(K){var oe=K.trans,ne=K.values,ce=K.query,ge=K.reverse,be=K.unique;return new Promise(function(Pe,_e){Pe=Ce(Pe);var Le=ce.index,$e=ce.range,Te=oe.objectStore(X),Te=Le.isPrimaryKey?Te:Te.index(Le.name),Le=ge?be?"prevunique":"prev":be?"nextunique":"next",ye=!ne&&"openKeyCursor"in Te?Te.openKeyCursor(b($e),Le):Te.openCursor(b($e),Le);ye.onerror=Xn(_e),ye.onsuccess=Ce(function(Qe){var Ze,nt,ut,Mn,tt=ye.result;tt?(tt.___id=++ew,tt.done=!1,Ze=tt.continue.bind(tt),nt=(nt=tt.continuePrimaryKey)&&nt.bind(tt),ut=tt.advance.bind(tt),Mn=function(){throw new Error("Cursor not stopped")},tt.trans=oe,tt.stop=tt.continue=tt.continuePrimaryKey=tt.advance=function(){throw new Error("Cursor not started")},tt.fail=Ce(_e),tt.next=function(){var pn=this,mn=1;return this.start(function(){return mn--?pn.continue():pn.stop()}).then(function(){return pn})},tt.start=function(pn){function mn(){if(ye.result)try{pn()}catch(Sn){tt.fail(Sn)}else tt.done=!0,tt.start=function(){throw new Error("Cursor behind last entry")},tt.stop()}var Ri=new Promise(function(Sn,Zr){Sn=Ce(Sn),ye.onerror=Xn(Zr),tt.fail=Zr,tt.stop=function(Pc){tt.stop=tt.continue=tt.continuePrimaryKey=tt.advance=Mn,Sn(Pc)}});return ye.onsuccess=Ce(function(Sn){ye.onsuccess=mn,mn()}),tt.continue=Ze,tt.continuePrimaryKey=nt,tt.advance=ut,mn(),Ri},Pe(tt)):Pe(null)},_e)})},count:function(K){var oe=K.query,ne=K.trans,ce=oe.index,ge=oe.range;return new Promise(function(be,Pe){var _e=ne.objectStore(X),_e=ce.isPrimaryKey?_e:_e.index(ce.name),$e=b(ge),$e=$e?_e.count($e):_e.count();$e.onsuccess=Ce(function(Te){return be(Te.target.result)}),$e.onerror=Xn(Pe)})}}}M=R,j=Nf((R=u).objectStoreNames),q=0<j.length?M.objectStore(j[0]):{};var M,R={schema:{name:R.name,tables:j.map(function(W){return M.objectStore(W)}).map(function(W){var G=W.keyPath,H=W.autoIncrement,K=i(G),X={},K={name:W.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:G==null,compound:K,keyPath:G,autoIncrement:H,unique:!0,extractKey:cc(G)},indexes:Nf(W.indexNames).map(function(oe){return W.index(oe)}).map(function(ge){var be=ge.name,ne=ge.unique,ce=ge.multiEntry,ge=ge.keyPath,be={name:be,compound:i(ge),keyPath:ge,unique:ne,multiEntry:ce,extractKey:cc(ge)};return X[_o(ge)]=be}),getIndexByKeyPath:function(oe){return X[_o(oe)]}};return X[":id"]=K.primaryKey,G!=null&&(X[_o(G)]=K.primaryKey),K})},hasGetAll:0<j.length&&"getAll"in q&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in q},j=R.schema,B=R.hasGetAll,te=R.hasIdb3Features,q=j.tables.map(_),N={};return q.forEach(function(W){return N[W.name]=W}),{stack:"dbcore",transaction:u.transaction.bind(u),table:function(W){if(N[W])return N[W];throw new Error("Table '".concat(W,"' not found"))},MIN_KEY:-1/0,MAX_KEY:xo(h),schema:j}}function nw(u,h,y,b){return y=y.IDBKeyRange,h=tw(h,y,b),{dbcore:u.dbcore.reduce(function(_,M){return M=M.create,r(r({},_),M(_))},h)}}function bi(u,h){var y=h.db,y=nw(u._middlewares,y,u._deps,h);u.core=y.dbcore,u.tables.forEach(function(b){var _=b.name;u.core.schema.tables.some(function(M){return M.name===_})&&(b.core=u.core.table(_),u[_]instanceof u.Table)&&(u[_].core=b.core)})}function Si(u,h,y,b){y.forEach(function(_){var M=b[_];h.forEach(function(R){var j=function B(te,q){return x(te,q)||(te=d(te))&&B(te,q)}(R,_);(!j||"value"in j&&j.value===void 0)&&(R===u.Transaction.prototype||R instanceof u.Transaction?w(R,_,{get:function(){return this.table(_)},set:function(B){g(this,_,{value:B,writable:!0,configurable:!0,enumerable:!0})}}):R[_]=new u.Table(_,M))})})}function uc(u,h){h.forEach(function(y){for(var b in y)y[b]instanceof u.Table&&delete y[b]})}function rw(u,h){return u._cfg.version-h._cfg.version}function sw(u,h,y,b){var _=u._dbSchema,M=(y.objectStoreNames.contains("$meta")&&!_.$meta&&(_.$meta=lc("$meta",Bf("")[0],[]),u._storeNames.push("$meta")),u._createTransaction("readwrite",u._storeNames,_)),R=(M.create(y),M._completion.catch(b),M._reject.bind(M)),j=Oe.transless||Oe;rr(function(){if(Oe.trans=M,Oe.transless=j,h!==0)return bi(u,y),te=h,((B=M).storeNames.includes("$meta")?B.table("$meta").get("version").then(function(q){return q??te}):Re.resolve(te)).then(function(K){var N=u,W=K,G=M,H=y,X=[],K=N._versions,oe=N._dbSchema=xi(0,N.idbdb,H);return(K=K.filter(function(ne){return ne._cfg.version>=W})).length===0?Re.resolve():(K.forEach(function(ne){X.push(function(){var ce,ge,be,Pe=oe,_e=ne._cfg.dbschema,$e=(_i(N,Pe,H),_i(N,_e,H),oe=N._dbSchema=_e,dc(Pe,_e)),Te=($e.add.forEach(function(Le){fc(H,Le[0],Le[1].primKey,Le[1].indexes)}),$e.change.forEach(function(Le){if(Le.recreate)throw new L.Upgrade("Not yet support for changing primary key");var ye=H.objectStore(Le.name);Le.add.forEach(function(Qe){return wi(ye,Qe)}),Le.change.forEach(function(Qe){ye.deleteIndex(Qe.name),wi(ye,Qe)}),Le.del.forEach(function(Qe){return ye.deleteIndex(Qe)})}),ne._cfg.contentUpgrade);if(Te&&ne._cfg.version>W)return bi(N,H),G._memoizedTables={},ce=$(_e),$e.del.forEach(function(Le){ce[Le]=Pe[Le]}),uc(N,[N.Transaction.prototype]),Si(N,[N.Transaction.prototype],a(ce),ce),G.schema=ce,(ge=ae(Te))&&yr(),_e=Re.follow(function(){var Le;(be=Te(G))&&ge&&(Le=Un.bind(null,null),be.then(Le,Le))}),be&&typeof be.then=="function"?Re.resolve(be):_e.then(function(){return be})}),X.push(function(ce){var ge,be,Pe=ne._cfg.dbschema;ge=Pe,be=ce,[].slice.call(be.db.objectStoreNames).forEach(function(_e){return ge[_e]==null&&be.db.deleteObjectStore(_e)}),uc(N,[N.Transaction.prototype]),Si(N,[N.Transaction.prototype],N._storeNames,N._dbSchema),G.schema=N._dbSchema}),X.push(function(ce){N.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(N.idbdb.version/10)===ne._cfg.version?(N.idbdb.deleteObjectStore("$meta"),delete N._dbSchema.$meta,N._storeNames=N._storeNames.filter(function(ge){return ge!=="$meta"})):ce.objectStore("$meta").put(ne._cfg.version,"version"))})}),function ne(){return X.length?Re.resolve(X.shift()(G.idbtrans)).then(ne):Re.resolve()}().then(function(){zf(oe,H)}))}).catch(R);var B,te;a(_).forEach(function(q){fc(y,q,_[q].primKey,_[q].indexes)}),bi(u,y),Re.follow(function(){return u.on.populate.fire(M)}).catch(R)})}function ow(u,h){zf(u._dbSchema,h),h.db.version%10!=0||h.objectStoreNames.contains("$meta")||h.db.createObjectStore("$meta").add(Math.ceil(h.db.version/10-1),"version");var y=xi(0,u.idbdb,h);_i(u,u._dbSchema,h);for(var b=0,_=dc(y,u._dbSchema).change;b<_.length;b++){var M=(R=>{if(R.change.length||R.recreate)return console.warn("Unable to patch indexes of table ".concat(R.name," because it has changes on the type of index or primary key.")),{value:void 0};var j=h.objectStore(R.name);R.add.forEach(function(B){Fe&&console.debug("Dexie upgrade patch: Creating missing index ".concat(R.name,".").concat(B.src)),wi(j,B)})})(_[b]);if(typeof M=="object")return M.value}}function dc(u,h){var y,b={del:[],add:[],change:[]};for(y in u)h[y]||b.del.push(y);for(y in h){var _=u[y],M=h[y];if(_){var R={name:y,def:M,recreate:!1,del:[],add:[],change:[]};if(""+(_.primKey.keyPath||"")!=""+(M.primKey.keyPath||"")||_.primKey.auto!==M.primKey.auto)R.recreate=!0,b.change.push(R);else{var j=_.idxByName,B=M.idxByName,te=void 0;for(te in j)B[te]||R.del.push(te);for(te in B){var q=j[te],N=B[te];q?q.src!==N.src&&R.change.push(N):R.add.push(N)}(0<R.del.length||0<R.add.length||0<R.change.length)&&b.change.push(R)}}else b.add.push([y,M])}return b}function fc(u,h,y,b){var _=u.db.createObjectStore(h,y.keyPath?{keyPath:y.keyPath,autoIncrement:y.auto}:{autoIncrement:y.auto});b.forEach(function(M){return wi(_,M)})}function zf(u,h){a(u).forEach(function(y){h.db.objectStoreNames.contains(y)||(Fe&&console.debug("Dexie: Creating missing table",y),fc(h,y,u[y].primKey,u[y].indexes))})}function wi(u,h){u.createIndex(h.name,h.keyPath,{unique:h.unique,multiEntry:h.multi})}function xi(u,h,y){var b={};return C(h.objectStoreNames,0).forEach(function(_){for(var M=y.objectStore(_),R=ic(Ff(te=M.keyPath),te||"",!0,!1,!!M.autoIncrement,te&&typeof te!="string",!0),j=[],B=0;B<M.indexNames.length;++B){var q=M.index(M.indexNames[B]),te=q.keyPath,q=ic(q.name,te,!!q.unique,!!q.multiEntry,!1,te&&typeof te!="string",!1);j.push(q)}b[_]=lc(_,R,j)}),b}function _i(u,h,y){for(var b=y.db.objectStoreNames,_=0;_<b.length;++_){var M=b[_],R=y.objectStore(M);u._hasGetAll="getAll"in R;for(var j=0;j<R.indexNames.length;++j){var B,te=R.indexNames[j],q=R.index(te).keyPath,q=typeof q=="string"?q:"["+C(q).join("+")+"]";h[M]&&(B=h[M].idxByName[q])&&(B.name=te,delete h[M].idxByName[q],h[M].idxByName[te]=B)}}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&&(u._hasGetAll=!1)}function Bf(u){return u.split(",").map(function(h,y){var _=h.split(":"),b=(b=_[1])==null?void 0:b.trim(),_=(h=_[0].trim()).replace(/([&*]|\+\+)/g,""),M=/^\[/.test(_)?_.match(/^\[(.*)\]$/)[1].split("+"):_;return ic(_,M||null,/\&/.test(h),/\*/.test(h),/\+\+/.test(h),i(M),y===0,b)})}js.prototype._createTableSchema=lc,js.prototype._parseIndexSyntax=Bf,js.prototype._parseStoresSpec=function(u,h){var y=this;a(u).forEach(function(b){if(u[b]!==null){var _=y._parseIndexSyntax(u[b]),M=_.shift();if(!M)throw new L.Schema("Invalid schema for table "+b+": "+u[b]);if(M.unique=!0,M.multi)throw new L.Schema("Primary key cannot be multiEntry*");_.forEach(function(R){if(R.auto)throw new L.Schema("Only primary key can be marked as autoIncrement (++)");if(!R.keyPath)throw new L.Schema("Index must have a name and cannot be an empty string")}),M=y._createTableSchema(b,M,_),h[b]=M}})},js.prototype.stores=function(y){var h=this.db,y=(this._cfg.storesSource=this._cfg.storesSource?c(this._cfg.storesSource,y):y,h._versions),b={},_={};return y.forEach(function(M){c(b,M._cfg.storesSource),_=M._cfg.dbschema={},M._parseStoresSpec(b,_)}),h._dbSchema=_,uc(h,[h._allTables,h,h.Transaction.prototype]),Si(h,[h._allTables,h,h.Transaction.prototype,this._cfg.tables],a(_),_),h._storeNames=a(_),this},js.prototype.upgrade=function(u){return this._cfg.contentUpgrade=xt(this._cfg.contentUpgrade||Se,u),this};var aw=js;function js(){}var Co=(()=>{var u,h,y;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(u=new Set,h=new FinalizationRegistry(function(b){u.delete(b)}),{toArray:function(){return Array.from(u).map(function(b){return b.deref()}).filter(function(b){return b!==void 0})},add:function(b){var _=new WeakRef(b._novip);u.add(_),h.register(b._novip,_,_),u.size>b._options.maxConnections&&(_=u.values().next().value,u.delete(_),h.unregister(_))},remove:function(b){if(b)for(var _=u.values(),M=_.next();!M.done;){var R=M.value;if(R.deref()===b._novip)return u.delete(R),void h.unregister(R);M=_.next()}}}):(y=[],{toArray:function(){return y},add:function(b){y.push(b._novip)},remove:function(b){b&&(b=y.indexOf(b._novip))!==-1&&y.splice(b,1)}})})();function hc(u,h){var y=u._dbNamesDB;return y||(y=u._dbNamesDB=new vr(vn,{addons:[],indexedDB:u,IDBKeyRange:h})).version(1).stores({dbnames:"name"}),y.table("dbnames")}function pc(u){return u&&typeof u.databases=="function"}function mc(u){return rr(function(){return Oe.letThrough=!0,u()})}function gc(u){return!("from"in u)}var hn=function(u,h){var y;if(!this)return y=new hn,u&&"d"in u&&c(y,u),y;c(this,arguments.length?{d:1,from:u,to:1<arguments.length?h:u}:{d:0})};function ko(u,h,y){var b=dt(h,y);if(!isNaN(b)){if(0<b)throw RangeError();if(gc(u))return c(u,{from:h,to:y,d:1});var b=u.l,_=u.r;if(dt(y,u.from)<0)return b?ko(b,h,y):u.l={from:h,to:y,d:1,l:null,r:null},Uf(u);if(0<dt(h,u.to))return _?ko(_,h,y):u.r={from:h,to:y,d:1,l:null,r:null},Uf(u);dt(h,u.from)<0&&(u.from=h,u.l=null,u.d=_?_.d+1:1),0<dt(y,u.to)&&(u.to=y,u.r=null,u.d=u.l?u.l.d+1:1),h=!u.r,b&&!u.l&&To(u,b),_&&h&&To(u,_)}}function To(u,h){gc(h)||function y(b,_){var M=_.from,R=_.l,j=_.r;ko(b,M,_.to),R&&y(b,R),j&&y(b,j)}(u,h)}function Wf(u,h){var y=Ci(h),b=y.next();if(!b.done)for(var _=b.value,M=Ci(u),R=M.next(_.from),j=R.value;!b.done&&!R.done;){if(dt(j.from,_.to)<=0&&0<=dt(j.to,_.from))return!0;dt(_.from,j.from)<0?_=(b=y.next(j.from)).value:j=(R=M.next(_.from)).value}return!1}function Ci(u){var h=gc(u)?null:{s:0,n:u};return{next:function(y){for(var b=0<arguments.length;h;)switch(h.s){case 0:if(h.s=1,b)for(;h.n.l&&dt(y,h.n.from)<0;)h={up:h,n:h.n.l,s:1};else for(;h.n.l;)h={up:h,n:h.n.l,s:1};case 1:if(h.s=2,!b||dt(y,h.n.to)<=0)return{value:h.n,done:!1};case 2:if(h.n.r){h.s=3,h={up:h,n:h.n.r,s:0};continue}case 3:h=h.up}return{done:!0}}}}function Uf(u){var h,y,b,_=(((_=u.r)==null?void 0:_.d)||0)-(((_=u.l)==null?void 0:_.d)||0),_=1<_?"r":_<-1?"l":"";_&&(h=_=="r"?"l":"r",y=r({},u),b=u[_],u.from=b.from,u.to=b.to,u[_]=b[_],y[_]=b[h],(u[h]=y).d=qf(y)),u.d=qf(u)}function qf(y){var h=y.r,y=y.l;return(h?y?Math.max(h.d,y.d):h.d:y?y.d:0)+1}function ki(u,h){return a(h).forEach(function(y){u[y]?To(u[y],h[y]):u[y]=function b(_){var M,R,j={};for(M in _)p(_,M)&&(R=_[M],j[M]=!R||typeof R!="object"||ee.has(R.constructor)?R:b(R));return j}(h[y])}),u}function yc(u,h){return u.all||h.all||Object.keys(u).some(function(y){return h[y]&&Wf(h[y],u[y])})}v(hn.prototype,((Tt={add:function(u){return To(this,u),this},addKey:function(u){return ko(this,u,u),this},addKeys:function(u){var h=this;return u.forEach(function(y){return ko(h,y,y)}),this},hasKey:function(u){var h=Ci(this).next(u).value;return h&&dt(h.from,u)<=0&&0<=dt(h.to,u)}})[ie]=function(){return Ci(this)},Tt));var Jr={},vc={},bc=!1;function Ti(u){ki(vc,u),bc||(bc=!0,setTimeout(function(){bc=!1,Sc(vc,!(vc={}))},0))}function Sc(u,h){h===void 0&&(h=!1);var y=new Set;if(u.all)for(var b=0,_=Object.values(Jr);b<_.length;b++)Hf(j=_[b],u,y,h);else for(var M in u){var R,j,M=/^idb\:\/\/(.*)\/(.*)\//.exec(M);M&&(R=M[1],M=M[2],j=Jr["idb://".concat(R,"/").concat(M)])&&Hf(j,u,y,h)}y.forEach(function(B){return B()})}function Hf(u,h,y,b){for(var _=[],M=0,R=Object.entries(u.queries.query);M<R.length;M++){for(var j=R[M],B=j[0],te=[],q=0,N=j[1];q<N.length;q++){var W=N[q];yc(h,W.obsSet)?W.subscribers.forEach(function(K){return y.add(K)}):b&&te.push(W)}b&&_.push([B,te])}if(b)for(var G=0,H=_;G<H.length;G++){var X=H[G],B=X[0],te=X[1];u.queries.query[B]=te}}function iw(u){var h=u._state,y=u._deps.indexedDB;if(h.isBeingOpened||u.idbdb)return h.dbReadyPromise.then(function(){return h.dbOpenError?ft(h.dbOpenError):u});h.isBeingOpened=!0,h.dbOpenError=null,h.openComplete=!1;var b=h.openCanceller,_=Math.round(10*u.verno),M=!1;function R(){if(h.openCanceller!==b)throw new L.DatabaseClosed("db.open() was cancelled")}function j(){return new Re(function(W,G){if(R(),!y)throw new L.MissingAPI;var H=u.name,X=h.autoSchema||!_?y.open(H):y.open(H,_);if(!X)throw new L.MissingAPI;X.onerror=Xn(G),X.onblocked=Ce(u._fireOnBlocked),X.onupgradeneeded=Ce(function(K){var oe;q=X.transaction,h.autoSchema&&!u._options.allowEmptyDB?(X.onerror=So,q.abort(),X.result.close(),(oe=y.deleteDatabase(H)).onsuccess=oe.onerror=Ce(function(){G(new L.NoSuchDatabase("Database ".concat(H," doesnt exist")))})):(q.onerror=Xn(G),oe=K.oldVersion>Math.pow(2,62)?0:K.oldVersion,N=oe<1,u.idbdb=X.result,M&&ow(u,q),sw(u,oe/10,q,G))},G),X.onsuccess=Ce(function(){q=null;var K,oe,ne,ce,ge,be,Pe=u.idbdb=X.result,_e=C(Pe.objectStoreNames);if(0<_e.length)try{var $e=Pe.transaction((ge=_e).length===1?ge[0]:ge,"readonly");if(h.autoSchema)be=Pe,ce=$e,(ne=u).verno=be.version/10,ce=ne._dbSchema=xi(0,be,ce),ne._storeNames=C(be.objectStoreNames,0),Si(ne,[ne._allTables],a(ce),ce);else if(_i(u,u._dbSchema,$e),oe=$e,((oe=dc(xi(0,(K=u).idbdb,oe),K._dbSchema)).add.length||oe.change.some(function(Te){return Te.add.length||Te.change.length}))&&!M)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(),_=Pe.version+1,M=!0,W(j());bi(u,$e)}catch{}Co.add(u),Pe.onversionchange=Ce(function(Te){h.vcFired=!0,u.on("versionchange").fire(Te)}),Pe.onclose=Ce(function(){u.close({disableAutoOpen:!1})}),N&&(_e=u._deps,ge=H,pc(be=_e.indexedDB)||ge===vn||hc(be,_e.IDBKeyRange).put({name:ge}).catch(Se)),W()},G)}).catch(function(W){switch(W==null?void 0:W.name){case"UnknownError":if(0<h.PR1398_maxLoop)return h.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),j();break;case"VersionError":if(0<_)return _=0,j()}return Re.reject(W)})}var B,te=h.dbReadyResolve,q=null,N=!1;return Re.race([b,(typeof navigator>"u"?Re.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(W){function G(){return indexedDB.databases().finally(W)}B=setInterval(G,100),G()}).finally(function(){return clearInterval(B)}):Promise.resolve()).then(j)]).then(function(){return R(),h.onReadyBeingFired=[],Re.resolve(mc(function(){return u.on.ready.fire(u.vip)})).then(function W(){var G;if(0<h.onReadyBeingFired.length)return G=h.onReadyBeingFired.reduce(xt,Se),h.onReadyBeingFired=[],Re.resolve(mc(function(){return G(u.vip)})).then(W)})}).finally(function(){h.openCanceller===b&&(h.onReadyBeingFired=null,h.isBeingOpened=!1)}).catch(function(W){h.dbOpenError=W;try{q&&q.abort()}catch{}return b===h.openCanceller&&u._close(),ft(W)}).finally(function(){h.openComplete=!0,te()}).then(function(){var W;return N&&(W={},u.tables.forEach(function(G){G.schema.indexes.forEach(function(H){H.name&&(W["idb://".concat(u.name,"/").concat(G.name,"/").concat(H.name)]=new hn(-1/0,[[[]]]))}),W["idb://".concat(u.name,"/").concat(G.name,"/")]=W["idb://".concat(u.name,"/").concat(G.name,"/:dels")]=new hn(-1/0,[[[]]])}),Mr(wo).fire(W),Sc(W,!0)),u})}function wc(u){function h(M){return u.next(M)}var y=_(h),b=_(function(M){return u.throw(M)});function _(M){return function(j){var j=M(j),B=j.value;return j.done?B:B&&typeof B.then=="function"?B.then(y,b):i(B)?Promise.all(B).then(y,b):y(B)}}return _(h)()}function Pi(u,h,y){for(var b=i(u)?u.slice():[u],_=0;_<y;++_)b.push(h);return b}var lw={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(u){return r(r({},u),{table:function(b){var y=u.table(b),b=y.schema,_={},M=[];function R(W,G,H){var ne=_o(W),X=_[ne]=_[ne]||[],K=W==null?0:typeof W=="string"?1:W.length,oe=0<G,ne=r(r({},H),{name:oe?"".concat(ne,"(virtual-from:").concat(H.name,")"):H.name,lowLevelIndex:H,isVirtual:oe,keyTail:G,keyLength:K,extractKey:cc(W),unique:!oe&&H.unique});return X.push(ne),ne.isPrimaryKey||M.push(ne),1<K&&R(K===2?W[0]:W.slice(0,K-1),G+1,H),X.sort(function(ce,ge){return ce.keyTail-ge.keyTail}),ne}var j=R(b.primaryKey.keyPath,0,b.primaryKey);_[":id"]=[j];for(var B=0,te=b.indexes;B<te.length;B++){var q=te[B];R(q.keyPath,0,q)}function N(W){var G,H=W.query.index;return H.isVirtual?r(r({},W),{query:{index:H.lowLevelIndex,range:(G=W.query.range,H=H.keyTail,{type:G.type===1?2:G.type,lower:Pi(G.lower,G.lowerOpen?u.MAX_KEY:u.MIN_KEY,H),lowerOpen:!0,upper:Pi(G.upper,G.upperOpen?u.MIN_KEY:u.MAX_KEY,H),upperOpen:!0})}}):W}return r(r({},y),{schema:r(r({},b),{primaryKey:j,indexes:M,getIndexByKeyPath:function(W){return(W=_[_o(W)])&&W[0]}}),count:function(W){return y.count(N(W))},query:function(W){return y.query(N(W))},openCursor:function(W){var G=W.query.index,H=G.keyTail,X=G.keyLength;return G.isVirtual?y.openCursor(N(W)).then(function(oe){return oe&&K(oe)}):y.openCursor(W);function K(oe){return Object.create(oe,{continue:{value:function(ne){ne!=null?oe.continue(Pi(ne,W.reverse?u.MAX_KEY:u.MIN_KEY,H)):W.unique?oe.continue(oe.key.slice(0,X).concat(W.reverse?u.MIN_KEY:u.MAX_KEY,H)):oe.continue()}},continuePrimaryKey:{value:function(ne,ce){oe.continuePrimaryKey(Pi(ne,u.MAX_KEY,H),ce)}},primaryKey:{get:function(){return oe.primaryKey}},key:{get:function(){var ne=oe.key;return X===1?ne[0]:ne.slice(0,X)}},value:{get:function(){return oe.value}}})}}})}})}};function xc(u,h,y,b){return y=y||{},b=b||"",a(u).forEach(function(_){var M,R,j;p(h,_)?(M=u[_],R=h[_],typeof M=="object"&&typeof R=="object"&&M&&R?(j=D(M))!==D(R)?y[b+_]=h[_]:j==="Object"?xc(M,R,y,b+_+"."):M!==R&&(y[b+_]=h[_]):M!==R&&(y[b+_]=h[_])):y[b+_]=void 0}),a(h).forEach(function(_){p(u,_)||(y[b+_]=h[_])}),y}function _c(u,h){return h.type==="delete"?h.keys:h.keys||h.values.map(u.extractKey)}var cw={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(u){return r(r({},u),{table:function(h){var y=u.table(h),b=y.schema.primaryKey;return r(r({},y),{mutate:function(_){var M=Oe.trans,R=M.table(h).hook,j=R.deleting,B=R.creating,te=R.updating;switch(_.type){case"add":if(B.fire===Se)break;return M._promise("readwrite",function(){return q(_)},!0);case"put":if(B.fire===Se&&te.fire===Se)break;return M._promise("readwrite",function(){return q(_)},!0);case"delete":if(j.fire===Se)break;return M._promise("readwrite",function(){return q(_)},!0);case"deleteRange":if(j.fire===Se)break;return M._promise("readwrite",function(){return function N(W,G,H){return y.query({trans:W,values:!1,query:{index:b,range:G},limit:H}).then(function(X){var K=X.result;return q({type:"delete",keys:K,trans:W}).then(function(oe){return 0<oe.numFailures?Promise.reject(oe.failures[0]):K.length<H?{failures:[],numFailures:0,lastResult:void 0}:N(W,r(r({},G),{lower:K[K.length-1],lowerOpen:!0}),H)})})}(_.trans,_.range,1e4)},!0)}return y.mutate(_);function q(N){var W,G,H,X=Oe.trans,K=N.keys||_c(b,N);if(K)return(N=N.type==="add"||N.type==="put"?r(r({},N),{keys:K}):r({},N)).type!=="delete"&&(N.values=s([],N.values)),N.keys&&(N.keys=s([],N.keys)),W=y,H=K,((G=N).type==="add"?Promise.resolve([]):W.getMany({trans:G.trans,keys:H,cache:"immutable"})).then(function(oe){var ne=K.map(function(ce,ge){var be,Pe,_e,$e=oe[ge],Te={onerror:null,onsuccess:null};return N.type==="delete"?j.fire.call(Te,ce,$e,X):N.type==="add"||$e===void 0?(be=B.fire.call(Te,ce,N.values[ge],X),ce==null&&be!=null&&(N.keys[ge]=ce=be,b.outbound||O(N.values[ge],b.keyPath,ce))):(be=xc($e,N.values[ge]),(Pe=te.fire.call(Te,be,ce,$e,X))&&(_e=N.values[ge],Object.keys(Pe).forEach(function(Le){p(_e,Le)?_e[Le]=Pe[Le]:O(_e,Le,Pe[Le])}))),Te});return y.mutate(N).then(function(ce){for(var ge=ce.failures,be=ce.results,Pe=ce.numFailures,ce=ce.lastResult,_e=0;_e<K.length;++_e){var $e=(be||K)[_e],Te=ne[_e];$e==null?Te.onerror&&Te.onerror(ge[_e]):Te.onsuccess&&Te.onsuccess(N.type==="put"&&oe[_e]?N.values[_e]:$e)}return{failures:ge,results:be,numFailures:Pe,lastResult:ce}}).catch(function(ce){return ne.forEach(function(ge){return ge.onerror&&ge.onerror(ce)}),Promise.reject(ce)})});throw new Error("Keys missing")}}})}})}};function Xf(u,h,y){try{if(!h||h.keys.length<u.length)return null;for(var b=[],_=0,M=0;_<h.keys.length&&M<u.length;++_)dt(h.keys[_],u[M])===0&&(b.push(y?Y(h.values[_]):h.values[_]),++M);return b.length===u.length?b:null}catch{return null}}var uw={stack:"dbcore",level:-1,create:function(u){return{table:function(h){var y=u.table(h);return r(r({},y),{getMany:function(b){var _;return b.cache?(_=Xf(b.keys,b.trans._cache,b.cache==="clone"))?Re.resolve(_):y.getMany(b).then(function(M){return b.trans._cache={keys:b.keys,values:b.cache==="clone"?Y(M):M},M}):y.getMany(b)},mutate:function(b){return b.type!=="add"&&(b.trans._cache=null),y.mutate(b)}})}}}};function Yf(u,h){return u.trans.mode==="readonly"&&!!u.subscr&&!u.trans.explicit&&u.trans.db._options.cache!=="disabled"&&!h.schema.primaryKey.outbound}function Kf(u,h){switch(u){case"query":return h.values&&!h.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var dw={stack:"dbcore",level:0,name:"Observability",create:function(u){var h=u.schema.name,y=new hn(u.MIN_KEY,u.MAX_KEY);return r(r({},u),{transaction:function(b,_,M){if(Oe.subscr&&_!=="readonly")throw new L.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(Oe.querier));return u.transaction(b,_,M)},table:function(b){function _(K){var X,K=K.query;return[X=K.index,new hn((X=(K=K.range).lower)!=null?X:u.MIN_KEY,(X=K.upper)!=null?X:u.MAX_KEY)]}var M=u.table(b),R=M.schema,j=R.primaryKey,B=R.indexes,te=j.extractKey,q=j.outbound,N=j.autoIncrement&&B.filter(function(H){return H.compound&&H.keyPath.includes(j.keyPath)}),W=r(r({},M),{mutate:function(H){function X(ye){return ye="idb://".concat(h,"/").concat(b,"/").concat(ye),ge[ye]||(ge[ye]=new hn)}var K,oe,ne,ce=H.trans,ge=H.mutatedParts||(H.mutatedParts={}),be=X(""),Pe=X(":dels"),_e=H.type,Te=H.type==="deleteRange"?[H.range]:H.type==="delete"?[H.keys]:H.values.length<50?[_c(j,H).filter(function(ye){return ye}),H.values]:[],$e=Te[0],Te=Te[1],Le=H.trans._cache;return i($e)?(be.addKeys($e),(_e=_e==="delete"||$e.length===Te.length?Xf($e,Le):null)||Pe.addKeys($e),(_e||Te)&&(K=X,oe=_e,ne=Te,R.indexes.forEach(function(ye){var Qe=K(ye.name||"");function Ze(ut){return ut!=null?ye.extractKey(ut):null}function nt(ut){ye.multiEntry&&i(ut)?ut.forEach(function(Mn){return Qe.addKey(Mn)}):Qe.addKey(ut)}(oe||ne).forEach(function(ut,pn){var tt=oe&&Ze(oe[pn]),pn=ne&&Ze(ne[pn]);dt(tt,pn)!==0&&(tt!=null&&nt(tt),pn!=null)&&nt(pn)})}))):$e?(Te={from:(Le=$e.lower)!=null?Le:u.MIN_KEY,to:(_e=$e.upper)!=null?_e:u.MAX_KEY},Pe.add(Te),be.add(Te)):(be.add(y),Pe.add(y),R.indexes.forEach(function(ye){return X(ye.name).add(y)})),M.mutate(H).then(function(ye){return!$e||H.type!=="add"&&H.type!=="put"||(be.addKeys(ye.results),N&&N.forEach(function(Qe){for(var Ze=H.values.map(function(tt){return Qe.extractKey(tt)}),nt=Qe.keyPath.findIndex(function(tt){return tt===j.keyPath}),ut=0,Mn=ye.results.length;ut<Mn;++ut)Ze[ut][nt]=ye.results[ut];X(Qe.name).addKeys(Ze)})),ce.mutatedParts=ki(ce.mutatedParts||{},ge),ye})}}),G={get:function(H){return[j,new hn(H.key)]},getMany:function(H){return[j,new hn().addKeys(H.keys)]},count:_,query:_,openCursor:_};return a(G).forEach(function(H){W[H]=function(X){var K=Oe.subscr,oe=!!K,ne=Yf(Oe,M)&&Kf(H,X)?X.obsSet={}:K;if(oe){var ce,K=function(Te){return Te="idb://".concat(h,"/").concat(b,"/").concat(Te),ne[Te]||(ne[Te]=new hn)},ge=K(""),be=K(":dels"),oe=G[H](X),Pe=oe[0],oe=oe[1];if((H==="query"&&Pe.isPrimaryKey&&!X.values?be:K(Pe.name||"")).add(oe),!Pe.isPrimaryKey){if(H!=="count")return ce=H==="query"&&q&&X.values&&M.query(r(r({},X),{values:!1})),M[H].apply(this,arguments).then(function(Te){if(H==="query"){if(q&&X.values)return ce.then(function(Ze){return Ze=Ze.result,ge.addKeys(Ze),Te});var Le=X.values?Te.result.map(te):Te.result;(X.values?ge:be).addKeys(Le)}else{var ye,Qe;if(H==="openCursor")return Qe=X.values,(ye=Te)&&Object.create(ye,{key:{get:function(){return be.addKey(ye.primaryKey),ye.key}},primaryKey:{get:function(){var Ze=ye.primaryKey;return be.addKey(Ze),Ze}},value:{get:function(){return Qe&&ge.addKey(ye.primaryKey),ye.value}}})}return Te});be.add(y)}}return M[H].apply(this,arguments)}}),W}})}};function Vf(u,h,y){var b;return y.numFailures===0?h:h.type==="deleteRange"||(b=h.keys?h.keys.length:"values"in h&&h.values?h.values.length:1,y.numFailures===b)?null:(b=r({},h),i(b.keys)&&(b.keys=b.keys.filter(function(_,M){return!(M in y.failures)})),"values"in b&&i(b.values)&&(b.values=b.values.filter(function(_,M){return!(M in y.failures)})),b)}function Cc(u,h){return y=u,((b=h).lower===void 0||(b.lowerOpen?0<dt(y,b.lower):0<=dt(y,b.lower)))&&(y=u,(b=h).upper===void 0||(b.upperOpen?dt(y,b.upper)<0:dt(y,b.upper)<=0));var y,b}function Gf(u,h,y,b,_,M){var R,j,B,te,q,N,W;return!y||y.length===0||(R=h.query.index,j=R.multiEntry,B=h.query.range,te=b.schema.primaryKey.extractKey,q=R.extractKey,N=(R.lowLevelIndex||R).extractKey,(b=y.reduce(function(G,H){var X=G,K=[];if(H.type==="add"||H.type==="put")for(var oe=new hn,ne=H.values.length-1;0<=ne;--ne){var ce,ge=H.values[ne],be=te(ge);!oe.hasKey(be)&&(ce=q(ge),j&&i(ce)?ce.some(function(Le){return Cc(Le,B)}):Cc(ce,B))&&(oe.addKey(be),K.push(ge))}switch(H.type){case"add":var Pe=new hn().addKeys(h.values?G.map(function(ye){return te(ye)}):G),X=G.concat(h.values?K.filter(function(ye){return ye=te(ye),!Pe.hasKey(ye)&&(Pe.addKey(ye),!0)}):K.map(function(ye){return te(ye)}).filter(function(ye){return!Pe.hasKey(ye)&&(Pe.addKey(ye),!0)}));break;case"put":var _e=new hn().addKeys(H.values.map(function(ye){return te(ye)}));X=G.filter(function(ye){return!_e.hasKey(h.values?te(ye):ye)}).concat(h.values?K:K.map(function(ye){return te(ye)}));break;case"delete":var $e=new hn().addKeys(H.keys);X=G.filter(function(ye){return!$e.hasKey(h.values?te(ye):ye)});break;case"deleteRange":var Te=H.range;X=G.filter(function(ye){return!Cc(te(ye),Te)})}return X},u))===u)?u:(W=function(G,H){return dt(N(G),N(H))||dt(te(G),te(H))},b.sort(h.direction==="prev"||h.direction==="prevunique"?function(G,H){return W(H,G)}:W),h.limit&&h.limit<1/0&&(b.length>h.limit?b.length=h.limit:u.length===h.limit&&b.length<h.limit&&(_.dirty=!0)),M?Object.freeze(b):b)}function Jf(u,h){return dt(u.lower,h.lower)===0&&dt(u.upper,h.upper)===0&&!!u.lowerOpen==!!h.lowerOpen&&!!u.upperOpen==!!h.upperOpen}function fw(u,h){return((y,b,_,M)=>{if(y===void 0)return b!==void 0?-1:0;if(b===void 0)return 1;if((y=dt(y,b))===0){if(_&&M)return 0;if(_)return 1;if(M)return-1}return y})(u.lower,h.lower,u.lowerOpen,h.lowerOpen)<=0&&0<=((y,b,_,M)=>{if(y===void 0)return b!==void 0?1:0;if(b===void 0)return-1;if((y=dt(y,b))===0){if(_&&M)return 0;if(_)return-1;if(M)return 1}return y})(u.upper,h.upper,u.upperOpen,h.upperOpen)}function hw(u,h,y,b){u.subscribers.add(y),b.addEventListener("abort",function(){var _,M;u.subscribers.delete(y),u.subscribers.size===0&&(_=u,M=h,setTimeout(function(){_.subscribers.size===0&&ue(M,_)},3e3))})}var pw={stack:"dbcore",level:0,name:"Cache",create:function(u){var h=u.schema.name;return r(r({},u),{transaction:function(y,b,_){var M,R,j=u.transaction(y,b,_);return b==="readwrite"&&(_=(M=new AbortController).signal,j.addEventListener("abort",(R=function(B){return function(){if(M.abort(),b==="readwrite"){for(var te=new Set,q=0,N=y;q<N.length;q++){var W=N[q],G=Jr["idb://".concat(h,"/").concat(W)];if(G){var H=u.table(W),X=G.optimisticOps.filter(function(ye){return ye.trans===j});if(j._explicit&&B&&j.mutatedParts)for(var K=0,oe=Object.values(G.queries.query);K<oe.length;K++)for(var ne=0,ce=(Pe=oe[K]).slice();ne<ce.length;ne++)yc((_e=ce[ne]).obsSet,j.mutatedParts)&&(ue(Pe,_e),_e.subscribers.forEach(function(ye){return te.add(ye)}));else if(0<X.length){G.optimisticOps=G.optimisticOps.filter(function(ye){return ye.trans!==j});for(var ge=0,be=Object.values(G.queries.query);ge<be.length;ge++)for(var Pe,_e,$e,Te=0,Le=(Pe=be[ge]).slice();Te<Le.length;Te++)(_e=Le[Te]).res!=null&&j.mutatedParts&&(B&&!_e.dirty?($e=Object.isFrozen(_e.res),$e=Gf(_e.res,_e.req,X,H,_e,$e),_e.dirty?(ue(Pe,_e),_e.subscribers.forEach(function(ye){return te.add(ye)})):$e!==_e.res&&(_e.res=$e,_e.promise=Re.resolve({result:$e}))):(_e.dirty&&ue(Pe,_e),_e.subscribers.forEach(function(ye){return te.add(ye)})))}}}te.forEach(function(ye){return ye()})}}})(!1),{signal:_}),j.addEventListener("error",R(!1),{signal:_}),j.addEventListener("complete",R(!0),{signal:_})),j},table:function(y){var b=u.table(y),_=b.schema.primaryKey;return r(r({},b),{mutate:function(M){var R,j=Oe.trans;return!_.outbound&&j.db._options.cache!=="disabled"&&!j.explicit&&j.idbtrans.mode==="readwrite"&&(R=Jr["idb://".concat(h,"/").concat(y)])?(j=b.mutate(M),M.type!=="add"&&M.type!=="put"||!(50<=M.values.length||_c(_,M).some(function(B){return B==null}))?(R.optimisticOps.push(M),M.mutatedParts&&Ti(M.mutatedParts),j.then(function(B){0<B.numFailures&&(ue(R.optimisticOps,M),(B=Vf(0,M,B))&&R.optimisticOps.push(B),M.mutatedParts)&&Ti(M.mutatedParts)}),j.catch(function(){ue(R.optimisticOps,M),M.mutatedParts&&Ti(M.mutatedParts)})):j.then(function(B){var te=Vf(0,r(r({},M),{values:M.values.map(function(q,N){var W;return B.failures[N]?q:(O(W=(W=_.keyPath)!=null&&W.includes(".")?Y(q):r({},q),_.keyPath,B.results[N]),W)})}),B);R.optimisticOps.push(te),queueMicrotask(function(){return M.mutatedParts&&Ti(M.mutatedParts)})}),j):b.mutate(M)},query:function(M){var R,j,B,te,q,N,W;return Yf(Oe,b)&&Kf("query",M)?(R=((B=Oe.trans)==null?void 0:B.db._options.cache)==="immutable",j=(B=Oe).requery,B=B.signal,N=((G,H,X,K)=>{var oe=Jr["idb://".concat(G,"/").concat(H)];if(!oe)return[];if(!(G=oe.queries[X]))return[null,!1,oe,null];var ne=G[(K.query?K.query.index.name:null)||""];if(!ne)return[null,!1,oe,null];switch(X){case"query":var ce=(ge=K.direction)!=null?ge:"next",ge=ne.find(function(be){var Pe;return be.req.limit===K.limit&&be.req.values===K.values&&((Pe=be.req.direction)!=null?Pe:"next")===ce&&Jf(be.req.query.range,K.query.range)});return ge?[ge,!0,oe,ne]:[ne.find(function(be){var Pe;return("limit"in be.req?be.req.limit:1/0)>=K.limit&&((Pe=be.req.direction)!=null?Pe:"next")===ce&&(!K.values||be.req.values)&&fw(be.req.query.range,K.query.range)}),!1,oe,ne];case"count":return ge=ne.find(function(be){return Jf(be.req.query.range,K.query.range)}),[ge,!!ge,oe,ne]}})(h,y,"query",M),W=N[0],te=N[2],q=N[3],W&&N[1]?W.obsSet=M.obsSet:(N=b.query(M).then(function(G){var H=G.result;if(W&&(W.res=H),R){for(var X=0,K=H.length;X<K;++X)Object.freeze(H[X]);Object.freeze(H)}else G.result=Y(H);return G}).catch(function(G){return q&&W&&ue(q,W),Promise.reject(G)}),W={obsSet:M.obsSet,promise:N,subscribers:new Set,type:"query",req:M,dirty:!1},q?q.push(W):(q=[W],(te=te||(Jr["idb://".concat(h,"/").concat(y)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[M.query.index.name||""]=q)),hw(W,q,j,B),W.promise.then(function(G){return{result:Gf(G.result,M,te==null?void 0:te.optimisticOps,b,W,R)}})):b.query(M)}})}})}};function Ei(u,h){return new Proxy(u,{get:function(y,b,_){return b==="db"?h:Reflect.get(y,b,_)}})}Nt.prototype.version=function(u){if(isNaN(u)||u<.1)throw new L.Type("Given version is not a positive number");if(u=Math.round(10*u)/10,this.idbdb||this._state.isBeingOpened)throw new L.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,u);var h=this._versions,y=h.filter(function(b){return b._cfg.version===u})[0];return y||(y=new this.Version(u),h.push(y),h.sort(rw),y.stores({}),this._state.autoSchema=!1),y},Nt.prototype._whenReady=function(u){var h=this;return this.idbdb&&(this._state.openComplete||Oe.letThrough||this._vip)?u():new Re(function(y,b){if(h._state.openComplete)return b(new L.DatabaseClosed(h._state.dbOpenError));if(!h._state.isBeingOpened){if(!h._state.autoOpen)return void b(new L.DatabaseClosed);h.open().catch(Se)}h._state.dbReadyPromise.then(y,b)}).then(u)},Nt.prototype.use=function(_){var h=_.stack,y=_.create,b=_.level,_=_.name,M=(_&&this.unuse({stack:h,name:_}),this._middlewares[h]||(this._middlewares[h]=[]));return M.push({stack:h,create:y,level:b??10,name:_}),M.sort(function(R,j){return R.level-j.level}),this},Nt.prototype.unuse=function(u){var h=u.stack,y=u.name,b=u.create;return h&&this._middlewares[h]&&(this._middlewares[h]=this._middlewares[h].filter(function(_){return b?_.create!==b:!!y&&_.name!==y})),this},Nt.prototype.open=function(){var u=this;return xe(yn,function(){return iw(u)})},Nt.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var u=this._state;if(Co.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}u.isBeingOpened||(u.dbReadyPromise=new Re(function(h){u.dbReadyResolve=h}),u.openCanceller=new Re(function(h,y){u.cancelOpen=y}))},Nt.prototype.close=function(h){var h=(h===void 0?{disableAutoOpen:!0}:h).disableAutoOpen,y=this._state;h?(y.isBeingOpened&&y.cancelOpen(new L.DatabaseClosed),this._close(),y.autoOpen=!1,y.dbOpenError=new L.DatabaseClosed):(this._close(),y.autoOpen=this._options.autoOpen||y.isBeingOpened,y.openComplete=!1,y.dbOpenError=null)},Nt.prototype.delete=function(u){var h=this,y=(u===void 0&&(u={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),b=this._state;return new Re(function(_,M){function R(){h.close(u);var j=h._deps.indexedDB.deleteDatabase(h.name);j.onsuccess=Ce(function(){var B,te,q;B=h._deps,te=h.name,pc(q=B.indexedDB)||te===vn||hc(q,B.IDBKeyRange).delete(te).catch(Se),_()}),j.onerror=Xn(M),j.onblocked=h._fireOnBlocked}if(y)throw new L.InvalidArgument("Invalid closeOptions argument to db.delete()");b.isBeingOpened?b.dbReadyPromise.then(R):R()})},Nt.prototype.backendDB=function(){return this.idbdb},Nt.prototype.isOpen=function(){return this.idbdb!==null},Nt.prototype.hasBeenClosed=function(){var u=this._state.dbOpenError;return u&&u.name==="DatabaseClosed"},Nt.prototype.hasFailed=function(){return this._state.dbOpenError!==null},Nt.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(Nt.prototype,"tables",{get:function(){var u=this;return a(this._allTables).map(function(h){return u._allTables[h]})},enumerable:!1,configurable:!0}),Nt.prototype.transaction=function(){var u=(function(h,y,b){var _=arguments.length;if(_<2)throw new L.InvalidArgument("Too few arguments");for(var M=new Array(_-1);--_;)M[_-1]=arguments[_];return b=M.pop(),[h,J(M),b]}).apply(this,arguments);return this._transaction.apply(this,u)},Nt.prototype._transaction=function(u,h,y){var b,_,M=this,R=Oe.trans,j=(R&&R.db===this&&u.indexOf("!")===-1||(R=null),u.indexOf("?")!==-1);u=u.replace("!","").replace("?","");try{if(_=h.map(function(te){if(te=te instanceof M.Table?te.name:te,typeof te!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return te}),u=="r"||u===Ms)b=Ms;else{if(u!="rw"&&u!=sr)throw new L.InvalidArgument("Invalid transaction mode: "+u);b=sr}if(R){if(R.mode===Ms&&b===sr){if(!j)throw new L.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");R=null}R&&_.forEach(function(te){if(R&&R.storeNames.indexOf(te)===-1){if(!j)throw new L.SubTransaction("Table "+te+" not included in parent transaction.");R=null}}),j&&R&&!R.active&&(R=null)}}catch(te){return R?R._promise(null,function(q,N){N(te)}):ft(te)}var B=(function te(q,N,W,G,H){return Re.resolve().then(function(){var ne=Oe.transless||Oe,X=q._createTransaction(N,W,q._dbSchema,G),ne=(X.explicit=!0,{trans:X,transless:ne});if(G)X.idbtrans=G.idbtrans;else try{X.create(),X.idbtrans._explicit=!0,q._state.PR1398_maxLoop=3}catch(ce){return ce.name===Me.InvalidState&&q.isOpen()&&0<--q._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),q.close({disableAutoOpen:!1}),q.open().then(function(){return te(q,N,W,null,H)})):ft(ce)}var K,oe=ae(H),ne=(oe&&yr(),Re.follow(function(){var ce;(K=H.call(X,X))&&(oe?(ce=Un.bind(null,null),K.then(ce,ce)):typeof K.next=="function"&&typeof K.throw=="function"&&(K=wc(K)))},ne));return(K&&typeof K.then=="function"?Re.resolve(K).then(function(ce){return X.active?ce:ft(new L.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):ne.then(function(){return K})).then(function(ce){return G&&X._resolve(),X._completion.then(function(){return ce})}).catch(function(ce){return X._reject(ce),ft(ce)})})}).bind(null,this,b,_,R,y);return R?R._promise(b,B,"lock"):Oe.trans?xe(Oe.transless,function(){return M._whenReady(B)}):this._whenReady(B)},Nt.prototype.table=function(u){if(p(this._allTables,u))return this._allTables[u];throw new L.InvalidTable("Table ".concat(u," does not exist"))};var vr=Nt;function Nt(u,h){var y,b,_,M,R,j=this,B=(this._middlewares={},this.verno=0,Nt.dependencies),B=(this._options=h=r({addons:Nt.addons,autoOpen:!0,indexedDB:B.indexedDB,IDBKeyRange:B.IDBKeyRange,cache:"cloned",maxConnections:1e3},h),this._deps={indexedDB:h.indexedDB,IDBKeyRange:h.IDBKeyRange},h.addons),te=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:Se,dbReadyPromise:null,cancelOpen:Se,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:h.autoOpen}),q=(te.dbReadyPromise=new Re(function(N){te.dbReadyResolve=N}),te.openCanceller=new Re(function(N,W){te.cancelOpen=W}),this._state=te,this.name=u,this.on=vo(this,"populate","blocked","versionchange","close",{ready:[xt,Se]}),this.once=function(N,W){var G=function(){for(var H=[],X=0;X<arguments.length;X++)H[X]=arguments[X];j.on(N).unsubscribe(G),W.apply(j,H)};return j.on(N,G)},this.on.ready.subscribe=E(this.on.ready.subscribe,function(N){return function(W,G){Nt.vip(function(){var H,X=j._state;X.openComplete?(X.dbOpenError||Re.resolve().then(W),G&&N(W)):X.onReadyBeingFired?(X.onReadyBeingFired.push(W),G&&N(W)):(N(W),H=j,G||N(function K(){H.on.ready.unsubscribe(W),H.on.ready.unsubscribe(K)}))})}}),this.Collection=(y=this,bo(GS.prototype,function(K,X){this.db=y;var G=go,H=null;if(X)try{G=X()}catch(ne){H=ne}var X=K._ctx,K=X.table,oe=K.hook.reading.fire;this._ctx={table:K,index:X.index,isPrimKey:!X.index||K.schema.primKey.keyPath&&X.index===K.schema.primKey.name,range:G,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:H,or:X.or,valueMapper:oe!==De?oe:null}})),this.Table=(b=this,bo(jf.prototype,function(N,W,G){this.db=b,this._tx=G,this.name=N,this.schema=W,this.hook=b._allTables[N]?b._allTables[N].hook:vo(null,{creating:[He,Se],reading:[We,De],updating:[St,Se],deleting:[at,Se]})})),this.Transaction=(_=this,bo(ZS.prototype,function(N,W,G,H,X){var K=this;N!=="readonly"&&W.forEach(function(oe){oe=(oe=G[oe])==null?void 0:oe.yProps,oe&&(W=W.concat(oe.map(function(ne){return ne.updatesTable})))}),this.db=_,this.mode=N,this.storeNames=W,this.schema=G,this.chromeTransactionDurability=H,this.idbtrans=null,this.on=vo(this,"complete","error","abort"),this.parent=X||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 Re(function(oe,ne){K._resolve=oe,K._reject=ne}),this._completion.then(function(){K.active=!1,K.on.complete.fire()},function(oe){var ne=K.active;return K.active=!1,K.on.error.fire(oe),K.parent?K.parent._reject(oe):ne&&K.idbtrans&&K.idbtrans.abort(),ft(oe)})})),this.Version=(M=this,bo(aw.prototype,function(N){this.db=M,this._cfg={version:N,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(R=this,bo(Df.prototype,function(N,W,G){if(this.db=R,this._ctx={table:N,index:W===":id"?null:W,or:G},this._cmp=this._ascending=dt,this._descending=function(H,X){return dt(X,H)},this._max=function(H,X){return 0<dt(H,X)?H:X},this._min=function(H,X){return dt(H,X)<0?H:X},this._IDBKeyRange=R._deps.IDBKeyRange,!this._IDBKeyRange)throw new L.MissingAPI})),this.on("versionchange",function(N){0<N.newVersion?console.warn("Another connection wants to upgrade database '".concat(j.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(j.name,"'. Closing db now to resume the delete request.")),j.close({disableAutoOpen:!1})}),this.on("blocked",function(N){!N.newVersion||N.newVersion<N.oldVersion?console.warn("Dexie.delete('".concat(j.name,"') was blocked")):console.warn("Upgrade '".concat(j.name,"' blocked by other connection holding version ").concat(N.oldVersion/10))}),this._maxKey=xo(h.IDBKeyRange),this._createTransaction=function(N,W,G,H){return new j.Transaction(N,W,G,j._options.chromeTransactionDurability,H)},this._fireOnBlocked=function(N){j.on("blocked").fire(N),Co.toArray().filter(function(W){return W.name===j.name&&W!==j&&!W._state.vcFired}).map(function(W){return W.on("versionchange").fire(N)})},this.use(uw),this.use(pw),this.use(dw),this.use(lw),this.use(cw),new Proxy(this,{get:function(N,W,G){var H;return W==="_vip"||(W==="table"?function(X){return Ei(j.table(X),q)}:(H=Reflect.get(N,W,G))instanceof jf?Ei(H,q):W==="tables"?H.map(function(X){return Ei(X,q)}):W==="_createTransaction"?function(){return Ei(H.apply(this,arguments),q)}:H)}}));this.vip=q,B.forEach(function(N){return N(j)})}var Mi,Is=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",mw=(kc.prototype.subscribe=function(u,h,y){return this._subscribe(u&&typeof u!="function"?u:{next:u,error:h,complete:y})},kc.prototype[Is]=function(){return this},kc);function kc(u){this._subscribe=u}try{Mi={indexedDB:o.indexedDB||o.mozIndexedDB||o.webkitIndexedDB||o.msIndexedDB,IDBKeyRange:o.IDBKeyRange||o.webkitIDBKeyRange}}catch{Mi={indexedDB:null,IDBKeyRange:null}}function Qf(u){var h,y=!1,b=new mw(function(_){var M=ae(u),R,j=!1,B={},te={},q={get closed(){return j},unsubscribe:function(){j||(j=!0,R&&R.abort(),N&&Mr.storagemutated.unsubscribe(H))}},N=(_.start&&_.start(q),!1),W=function(){return Xt(X)};function G(){return yc(te,B)}var H=function(K){ki(B,K),G()&&W()},X=function(){var K,oe,ne;!j&&Mi.indexedDB&&(B={},K={},R&&R.abort(),R=new AbortController,ne=(ce=>{var ge=Wn();try{M&&yr();var be=rr(u,ce);return be=M?be.finally(Un):be}finally{ge&&Cn()}})(oe={subscr:K,signal:R.signal,requery:W,querier:u,trans:null}),N||(Mr(wo,H),N=!0),Promise.resolve(ne).then(function(ce){y=!0,h=ce,j||oe.signal.aborted||(G()||(te=K,G())?W():(B={},Xt(function(){return!j&&_.next&&_.next(ce)})))},function(ce){y=!1,["DatabaseClosedError","AbortError"].includes(ce==null?void 0:ce.name)||j||Xt(function(){j||_.error&&_.error(ce)})}))};return setTimeout(W,0),q});return b.hasValue=function(){return y},b.getValue=function(){return h},b}var Qr=vr;function Tc(u){var h=Rr;try{Rr=!0,Mr.storagemutated.fire(u),Sc(u,!0)}finally{Rr=h}}v(Qr,r(r({},ve),{delete:function(u){return new Qr(u,{addons:[]}).delete()},exists:function(u){return new Qr(u,{addons:[]}).open().then(function(h){return h.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(u){try{return h=Qr.dependencies,y=h.indexedDB,h=h.IDBKeyRange,(pc(y)?Promise.resolve(y.databases()).then(function(b){return b.map(function(_){return _.name}).filter(function(_){return _!==vn})}):hc(y,h).toCollection().primaryKeys()).then(u)}catch{return ft(new L.MissingAPI)}var h,y},defineClass:function(){return function(u){c(this,u)}},ignoreTransaction:function(u){return Oe.trans?xe(Oe.transless||yn,u):u()},vip:mc,async:function(u){return function(){try{var h=wc(u.apply(this,arguments));return h&&typeof h.then=="function"?h:Re.resolve(h)}catch(y){return ft(y)}}},spawn:function(u,h,y){try{var b=wc(u.apply(y,h||[]));return b&&typeof b.then=="function"?b:Re.resolve(b)}catch(_){return ft(_)}},currentTransaction:{get:function(){return Oe.trans||null}},waitFor:function(u,h){return u=Re.resolve(typeof u=="function"?Qr.ignoreTransaction(u):u).timeout(h||6e4),Oe.trans?Oe.trans.waitFor(u):u},Promise:Re,debug:{get:function(){return Fe},set:function(u){lt(u)}},derive:m,extend:c,props:v,override:E,Events:vo,on:Mr,liveQuery:Qf,extendObservabilitySet:ki,getByKeyPath:A,setByKeyPath:O,delByKeyPath:function(u,h){typeof h=="string"?O(u,h,void 0):"length"in h&&[].map.call(h,function(y){O(u,y,void 0)})},shallowClone:$,deepClone:Y,getObjectDiff:xc,cmp:dt,asap:P,minKey:-1/0,addons:[],connections:{get:Co.toArray},errnames:Me,dependencies:Mi,cache:Jr,semVer:"4.4.2",version:"4.4.2".split(".").map(function(u){return parseInt(u)}).reduce(function(u,h,y){return u+h/Math.pow(10,2*y)})})),Qr.maxKey=xo(Qr.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Mr(wo,function(u){Rr||(u=new CustomEvent(ac,{detail:u}),Rr=!0,dispatchEvent(u),Rr=!1)}),addEventListener(ac,function(u){u=u.detail,Rr||Tc(u)}));var Os,Rr=!1,Zf=function(){};return typeof BroadcastChannel<"u"&&((Zf=function(){(Os=new BroadcastChannel(ac)).onmessage=function(u){return u.data&&Tc(u.data)}})(),typeof Os.unref=="function"&&Os.unref(),Mr(wo,function(u){Rr||Os.postMessage(u)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(u){if(!vr.disableBfCache&&u.persisted){Fe&&console.debug("Dexie: handling persisted pagehide"),Os!=null&&Os.close();for(var h=0,y=Co.toArray();h<y.length;h++)y[h].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(u){!vr.disableBfCache&&u.persisted&&(Fe&&console.debug("Dexie: handling persisted pageshow"),Zf(),Tc({all:new hn(-1/0,[[]])}))})),Re.rejectionMapper=function(u,h){return!u||u instanceof le||u instanceof TypeError||u instanceof SyntaxError||!u.name||!fe[u.name]?u:(h=new fe[u.name](h||u.message,u),"stack"in u&&w(h,"stack",{get:function(){return this.inner.stack}}),h)},lt(Fe),r(vr,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:vr,Entity:Pf,PropModification:yo,RangeSet:hn,add:function(u){return new yo({add:u})},cmp:dt,default:vr,liveQuery:Qf,mergeRanges:To,rangesOverlap:Wf,remove:function(u){return new yo({remove:u})},replacePrefix:function(u,h){return new yo({replacePrefix:[u,h]})}}),{default:vr}),vr})}(tl)),tl.exports}var l0=i0();const Ou=Cs(l0),Th=Symbol.for("Dexie"),_l=globalThis[Th]||(globalThis[Th]=Ou);if(Ou.semVer!==_l.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${Ou.semVer} and ${_l.semVer}`);const{liveQuery:J$,mergeRanges:Q$,rangesOverlap:Z$,RangeSet:eL,cmp:tL,Entity:nL,PropModification:rL,replacePrefix:sL,add:oL,remove:aL,DexieYProvider:iL}=_l;class c0 extends _l{constructor(){super("LotusStorage");vt(this,"scrollAnchors");vt(this,"toolSessionCollapses");vt(this,"diffCollapses");vt(this,"inputStates");vt(this,"modelOptionsCaches");this.version(1).stores({scrollAnchors:"sessionId, ts",toolSessionCollapses:"id, sessionId, updatedAt",diffCollapses:"sessionId, updatedAt",inputStates:"sessionId, updatedAt",modelOptionsCaches:"provider, timestamp"})}}const u0=new c0,fs=class fs{constructor(){vt(this,"db",u0)}static getInstance(){return fs.instance||(fs.instance=new fs),fs.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}}}};vt(fs,"instance");let On=fs;const Py="chat_input_reasoning_by_session_v1",Ey="chat_input_reasoning_last_used_v1",Ph={content:"",referenceText:null,attachments:[],reasoningEffort:"medium"},Od=e=>e==="low"||e==="medium"||e==="high"||e==="xhigh"||e==="max",My=()=>{if(typeof window>"u")return{};try{const e=localStorage.getItem(Py);if(!e)return{};const t=JSON.parse(e),n={};for(const[r,s]of Object.entries(t||{}))Od(s)&&(n[r]=s);return n}catch{return{}}},d0=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Py,JSON.stringify(e))}catch{}},f0=()=>{if(!(typeof window>"u"))try{const e=localStorage.getItem(Ey);return Od(e)?e:void 0}catch{return}},h0=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Ey,e)}catch{}},Ry=e=>{const t=My();return Od(t[e])?t[e]:f0()},Ro=e=>({...Ph,reasoningEffort:Ry(e)??Ph.reasoningEffort}),p0=(e,t)=>({inputStates:{},setInputContent:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Ro(n),content:r}}})),setReferenceText:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Ro(n),referenceText:r}}})),setAttachments:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Ro(n),attachments:r}}})),setInputReasoningEffort:(n,r)=>{e(a=>({inputStates:{...a.inputStates,[n]:{...a.inputStates[n]||Ro(n),reasoningEffort:r}}}));const s=My();s[n]=r,d0(s),h0(r);const o=On.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]||Ro(n)}),$d="lotus_account_feed_cursor_v1",m0=400;let Eh=null,Lc=null;const g0=()=>{try{const e=localStorage.getItem($d),t=e?Number.parseInt(e,10):0;return Number.isFinite(t)&&t>0?t:0}catch{return 0}},y0=e=>{try{localStorage.setItem($d,String(e))}catch{}},v0=()=>{try{localStorage.removeItem($d)}catch{}},Dc=()=>{Lc||(Lc=setTimeout(()=>{Lc=null,Z.getState().refreshSessionsIndex()},m0))},b0=e=>{const{event:t}=e,n=Z.getState(),r=e.session_id??t.session_id;switch(t.type){case"session_title_updated":r&&typeof t.title=="string"&&n.applyServerTitle(r,t.title,t.title_version??0),Dc();break;case"session_pinned_updated":r&&typeof t.pinned=="boolean"&&n.applyServerPinned(r,t.pinned,t.updated_at??e.ts),Dc();break;case"session_created":case"session_deleted":case"session_cleared":case"message_appended":case"task_list_updated":case"task_list_item_progress":case"task_list_completed":case"complete":case"cancelled":case"error":case"execution_started":case"need_clarification":default:Dc();break}},S0=()=>{if(Eh||typeof EventSource>"u")return;Eh=Pn.getInstance().subscribeToAccountStream({onOpen:()=>{Z.getState().setAgentAvailability(!0)},onError:()=>{Z.getState().setAgentAvailability(!1)},onReset:()=>{v0(),Z.getState().refreshSessionsIndex()},onChange:t=>{Z.getState().setAgentAvailability(!0),y0(t.seq),b0(t)}},{since:g0()})},w0="bamboo_proxy_auth",x0=()=>{try{const e=localStorage.getItem(w0);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}},Ay={byId:{},runningCount:0},_0=[],_n=(e,t)=>t?e.executionBySession[t]??null:null,C0=e=>t=>_n(t,e),k0=e=>t=>{const n=_n(t,e);return(n==null?void 0:n.phase)??"idle"},si=e=>t=>{const n=_n(t,e);return Ad(n==null?void 0:n.phase)},jy=e=>t=>{const n=_n(t,e);return n?n.phase==="streaming"?!0:n.phase==="running_tools"&&n.stream.hasTokens:!1},T0=e=>t=>{const n=_n(t,e);return n?n.phase==="waiting_user_answer"||n.interaction.pendingQuestion!==null||n.backend.hasPendingQuestion===!0:!1},Iy=e=>t=>{const n=_n(t,e);return l_(n==null?void 0:n.phase)},Oy=e=>t=>{const n=_n(t,e);return c_(n==null?void 0:n.phase)},Vn=e=>t=>{const n=_n(t,e);return Ad(n==null?void 0:n.phase)?(n==null?void 0:n.phase)!=="waiting_user_answer":!1},P0=e=>t=>{const n=_n(t,e);return(n==null?void 0:n.stream.activeToolCalls)??_0},so=e=>t=>{const n=_n(t,e);return(n==null?void 0:n.interaction.pendingQuestion)??null},E0=e=>t=>{if(!e)return null;const n=so(e)(t);return n?{sessionId:e,question:n.question,options:n.options,allowCustom:n.allowCustom,toolCallId:n.toolCallId}:null},Ul=e=>t=>{const n=_n(t,e);return(n==null?void 0:n.children.byId)??Ay.byId},M0=e=>t=>{const n=_n(t,e);return(n==null?void 0:n.children)??Ay},Ct=e=>t=>{const n=_n(t,e);return(n==null?void 0:n.generation)??0},R0=Object.freeze({state:"idle",activeToolCalls:[],runningChildCount:0,hasQuestion:!1,hasError:!1,errorMessage:null,generation:0}),A0=e=>t=>{var r;const n=_n(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}:R0},j0=e=>t=>e.map(n=>({sessionId:n??"",entry:_n(t,n)})),I0="auto",O0="required",$0=1e4,L0=15e3,D0=Pn.getInstance();let Mh=null,Ao=null,Rh=null,jo=null;const Ah=new WeakMap,Z=Xr()(Jx(Zx((e,t,n)=>({...q_(e,t),...K_(e,t),...Q_(e,t),...e0(),...n0(e,t),...r0(e),...o0(e,t),...p0(e,t),...__(e,t),agentAvailability:null,setAgentAvailability:r=>{e({agentAvailability:r})},checkAgentAvailability:async()=>{if(Ao)return Ao;Ao=(async()=>{const r=await D0.healthCheck();return t().agentAvailability!==r&&e({agentAvailability:r}),r})();try{return await Ao}finally{Ao=null}},startAgentHealthCheck:()=>{Mh||(t().checkAgentAvailability(),Mh=setInterval(()=>{t().checkAgentAvailability()},$0))},refreshSessionsIndex:async()=>{if(jo)return jo;jo=(async()=>{try{await t().refreshChats()}catch(r){console.warn("[AppStore] refreshChats failed:",r)}})();try{return await jo}finally{jo=null}},startSessionsIndexSync:()=>{Rh||(t().refreshSessionsIndex(),Rh=setInterval(()=>{t().refreshSessionsIndex()},L0))}})),{name:"AppStore"})),$y=e=>{const t=Ah.get(e);if(t)return t;const n=new Map(e.map(r=>[r.id,r]));return Ah.set(e,n),n},mr=e=>t=>e?$y(t.chats).get(e)??null:null,Ly=e=>e.currentSessionId?$y(e.chats).get(e.currentSessionId)??null:null,F0=e=>{var t;return((t=Ly(e))==null?void 0:t.messages)??[]},jh=async()=>{const e=x0();if(!e)return!1;try{return await as.setProxyAuth(e),!0}catch(t){return console.error("Failed to apply stored proxy auth during startup:",t),!1}},N0=async()=>{try{const e=await Iu.getState().loadConfig();if((typeof(e==null?void 0:e.proxy_auth_mode)=="string"?e.proxy_auth_mode:I0)!==O0)return await jh(),!1;const n=await Iu.getState().loadProxyAuthStatus({force:!0});return n!=null&&n.configured||await jh()?!1:(Z.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 Ih=!1,Dy=!1,Oi=null;const Ld=async(e=!1)=>{if(Ih&&!e)return;if(Ih=!0,S0(),Z.getState().startAgentHealthCheck(),Z.getState().startSessionsIndexSync(),!(typeof globalThis<"u"&&"__vitest_worker__"in globalThis))try{await mt.getState().loadProviderInstances(),mt.getState().isInstancesLoaded||await mt.getState().loadProviderConfig()}catch(n){console.error("[AppStore] Failed to bootstrap provider state:",n)}await Z.getState().loadChats(),Dy=!0},Dd=async()=>{if(Dy)return Oi||(Oi=(async()=>{try{await N0()||await Z.getState().fetchModels(),await Z.getState().loadSystemPrompts()}catch(e){console.error("[AppStore] Deferred bootstrap failed:",e)}})(),Oi)},z0=async(e=!1)=>{await Ld(e),Dd().catch(t=>{console.error("[AppStore] Deferred bootstrap error:",t)})},lL=Object.freeze(Object.defineProperty({__proto__:null,bootstrapCritical:Ld,bootstrapDeferred:Dd,initializeStore:z0,selectActiveToolCalls:P0,selectCanCancel:Oy,selectChildren:Ul,selectChildrenSnapshot:M0,selectCurrentChat:Ly,selectCurrentMessages:F0,selectExecutionByPane:j0,selectExecutionPhase:k0,selectExecutionState:C0,selectGeneration:Ct,selectIsAwaitingUser:T0,selectIsBusy:si,selectIsInputLocked:Iy,selectIsStreaming:jy,selectPendingQuestion:so,selectRailModel:A0,selectRespondMode:E0,selectSessionById:mr,selectShouldObserve:Vn,useAppStore:Z},Symbol.toStringTag,{value:"Module"})),Fy="copilot_ui_layout_v1",Fd={collapsed:!1,widthPx:260,collapsedWidthPx:72,minWidthPx:180,maxWidthPx:520},zr={widthPx:520,minWidthPx:420,maxWidthPx:840},Ny={v:2,sidebar:Fd,inspector:zr,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:null},splitSizesPx:{}},Oh=e=>{const t=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`;return`${e}-${t}`},Fn=e=>e.type==="leaf"?[e.id]:[...Fn(e.children[0]),...Fn(e.children[1])],Ya=e=>e.type==="leaf"?[]:[e.id,...Ya(e.children[0]),...Ya(e.children[1])],B0=(e,t)=>{for(const[n,r]of Object.entries(e))if(r===t)return n;return null},W0=(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},$u=(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:[$u(e.children[0],t,n,r,s),$u(e.children[1],t,n,r,s)]},Lu=(e,t)=>{if(e.type==="leaf")return e.id===t?{node:null,removed:!0}:{node:e,removed:!1};const n=Lu(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=Lu(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}},U0=()=>{try{return localStorage.getItem(Fy)}catch(e){return console.warn("[uiLayoutStore] Failed to read persisted layout:",e),null}},q0=e=>({v:2,sidebar:e.sidebar,inspector:e.inspector,tree:e.tree,activeLeafId:e.activeLeafId,leafSessionIds:e.leafSessionIds,splitSizesPx:e.splitSizesPx}),H0=e=>{try{localStorage.setItem(Fy,JSON.stringify(e))}catch(t){console.warn("[uiLayoutStore] Failed to persist layout:",t)}},ar=e=>{const t=q0(e);return H0(t),t},X0=e=>{var g,w,m,x,k,C,E,T,P,A,O;const t={...Fd,...e.sidebar||{}},n={...zr},r=((g=e.view)==null?void 0:g.mode)??"single",s=((w=e.view)==null?void 0:w.twoDirection)??"horizontal",o={...((m=e.panes)==null?void 0:m.sessionIds)||{}},a=((x=e.panes)==null?void 0:x.activePaneId)??"lt",i={};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 $="split-root",U=s,J=U==="horizontal"?{type:"split",id:$,layout:U,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"rt"}]}:{type:"split",id:$,layout:U,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},ee=U==="horizontal"?((k=e.split)==null?void 0:k.twoHorizontalPx)||((C=e.split)==null?void 0:C.columnsPx)||null:((E=e.split)==null?void 0:E.twoVerticalPx)||((T=e.split)==null?void 0:T.leftRowsPx)||null;ee&&(i[$]=ee);const I=Fn(J);return{v:2,sidebar:t,inspector:n,tree:J,activeLeafId:I.includes(a)?a:I[0],leafSessionIds:Object.fromEntries(I.map(Y=>[Y,o[Y]??null])),splitSizesPx:i}}const c="split-root",d="split-left",f="split-right",p={type:"split",id:c,layout:"horizontal",children:[{type:"split",id:d,layout:"vertical",children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},{type:"split",id:f,layout:"vertical",children:[{type:"leaf",id:"rt"},{type:"leaf",id:"rb"}]}]};(P=e.split)!=null&&P.columnsPx&&(i[c]=e.split.columnsPx),(A=e.split)!=null&&A.leftRowsPx&&(i[d]=e.split.leftRowsPx),(O=e.split)!=null&&O.rightRowsPx&&(i[f]=e.split.rightRowsPx);const v=Fn(p);return{v:2,sidebar:t,inspector:n,tree:p,activeLeafId:v.includes(a)?a:v[0],leafSessionIds:Object.fromEntries(v.map($=>[$,o[$]??null])),splitSizesPx:i}},Y0=e=>{if(!e)return null;try{const t=JSON.parse(e);if(!t||typeof t!="object")return null;if(t.v===2){const n={...Fd,...t.sidebar||{}},r=t.inspector||{},s={...zr,...r},o=Math.max(zr.minWidthPx,Number.isFinite(s.minWidthPx)?s.minWidthPx:zr.minWidthPx),a=Math.max(o,Math.max(zr.maxWidthPx,Number.isFinite(s.maxWidthPx)?s.maxWidthPx:zr.maxWidthPx)),c={widthPx:Math.max(o,Math.min(a,Number.isFinite(s.widthPx)?s.widthPx:zr.widthPx)),minWidthPx:o,maxWidthPx:a},d=t.tree||Ny.tree,f=Fn(d),p=Ya(d),v={};f.forEach(x=>{var k;v[x]=typeof((k=t.leafSessionIds)==null?void 0:k[x])=="string"?t.leafSessionIds[x]:null});const g={};p.forEach(x=>{var C;const k=(C=t.splitSizesPx)==null?void 0:C[x];Array.isArray(k)&&k.length>=2&&(g[x]=[Number(k[0]),Number(k[1])])});const w=typeof t.activeLeafId=="string"&&f.includes(t.activeLeafId)?t.activeLeafId:f[0],m=W0(f,v);return{v:2,sidebar:n,inspector:c,tree:d,activeLeafId:w,leafSessionIds:m,splitSizesPx:g}}return t.v===1?X0(t):null}catch{return null}},K0=()=>Y0(U0())??Ny,ct=Xr(e=>({...K0(),setSidebarCollapsed:t=>{e(n=>n.sidebar.collapsed===t?n:ar({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:ar({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:ar({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||!Fn(n.tree).includes(t)?n:(Dn("setActiveLeafId",{from:n.activeLeafId,to:t}),ar({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:t,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})))},setLeafSessionId:(t,n)=>{e(r=>{const s=Fn(r.tree);if(!s.includes(t)||(r.leafSessionIds[t]??null)===n)return r;const o=[];Dn("setLeafSessionId",{leafId:t,fromSessionId:r.leafSessionIds[t]??null,toSessionId:n,mode:"unique_session_per_leaf"});const a={...r.leafSessionIds,[t]:n};if(n)for(const i of s)i!==t&&a[i]===n&&(a[i]=null,o.push(i));return o.length>0&&Dn("setLeafSessionId dedupe",{sessionId:n,clearedLeafIds:o,assignedLeafId:t}),s.forEach(i=>{i in a||(a[i]=null)}),ar({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:a,splitSizesPx:r.splitSizesPx})})},clearSessionFromAllLeaves:t=>{e(n=>{const r={...n.leafSessionIds};let s=!1;for(const[o,a]of Object.entries(r))a===t&&(r[o]=null,s=!0);return s?ar({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=Fn(r.tree);if(!s.includes(t)||s.length>=4)return r;const o=Oh("split"),a=Oh("pane"),i=$u(r.tree,t,n,o,a),c={...r.leafSessionIds,[a]:null};return ar({sidebar:r.sidebar,inspector:r.inspector,tree:i,activeLeafId:a,leafSessionIds:c,splitSizesPx:r.splitSizesPx})})},closeLeaf:t=>{e(n=>{const r=Fn(n.tree);if(!r.includes(t)||r.length<=1)return n;const s=Lu(n.tree,t);if(!s.removed||!s.node)return n;const o=s.node,a=Fn(o),i=Ya(o),c={};a.forEach(p=>{c[p]=n.leafSessionIds[p]??null});const d={};i.forEach(p=>{const v=n.splitSizesPx[p];v&&(d[p]=v)});const f=n.activeLeafId===t?a[0]:a.includes(n.activeLeafId)?n.activeLeafId:a[0];return ar({sidebar:n.sidebar,inspector:n.inspector,tree:o,activeLeafId:f,leafSessionIds:c,splitSizesPx:d})})},setSplitSizesPx:(t,n)=>{e(r=>{const s=r.splitSizesPx[t];return s&&s[0]===n[0]&&s[1]===n[1]?r:ar({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(Ya(t.tree)),r={};for(const[a,i]of Object.entries(t.splitSizesPx))n.has(a)&&(r[a]=i);const s=Object.keys(t.splitSizesPx),o=Object.keys(r);return s.length===o.length&&s.every(a=>a in r)?t:ar({sidebar:t.sidebar,inspector:t.inspector,tree:t.tree,activeLeafId:t.activeLeafId,leafSessionIds:t.leafSessionIds,splitSizesPx:r})})}})),V0=async(e,t)=>{var a;const n=Z.getState(),r=!n.chats.some(i=>i.id===e);if(t!=null&&t.forceRefreshIndex||r)try{await n.refreshChats()}catch(i){console.warn("[openSession] refreshChats failed:",i)}const s=Z.getState().chats.find(i=>i.id===e);if(!s)return;if(t!=null&&t.forceLoadHistory||r||(((a=s.messages)==null?void 0:a.length)||0)===0&&(s.messageCount||0)>0)try{await n.loadChatHistory(e)}catch(i){console.warn("[openSession] loadChatHistory failed:",i)}if(t!=null&&t.forceSubscribe){n.markForceSubscribe(e);return}((t==null?void 0:t.subscribeIfRunning)??!0)&&s.isRunning&&n.markForceSubscribe(e)},G0=(e,t)=>{const{activeLeafId:n,leafSessionIds:r,setLeafSessionId:s,setActiveLeafId:o}=ct.getState(),a=B0(r,e),i=r[n]??null;Dn("openSession (input)",{activeLeafId:n,activeLeafSessionId:i,sessionId:e,existingLeafId:a}),a?a===n?Dn("openSession (decision)",{action:"noop_already_active",leafId:n,sessionId:e}):(o(a),Dn("openSession (decision)",{action:"focus_existing_leaf",leafId:a,sessionId:e})):(s(n,e),Dn("openSession (decision)",{action:"assign_to_active_leaf",leafId:n,sessionId:e})),Z.getState().selectSession(e),V0(e,t)},zy=e=>e==="child"?"child":"root",J0=e=>({id:e.id,title:e.title,kind:zy(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}}),Q0=(e,t)=>e.id===t.id&&e.title===t.title&&e.kind===zy(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),Z0=(()=>{let e=null,t=[],n=new Map;return r=>{if(r===e)return t;const s=r.map(a=>{const i=n.get(a.id);return i&&Q0(i,a)?i:J0(a)}),o=s.length===t.length&&s.every((a,i)=>a===t[i]);return e=r,n=new Map(s.map(a=>[a.id,a])),o?t:(t=s,s)}})(),eC=e=>[e.title,e.id,e.kind||"root",e.config.workspacePath||"",e.config.systemPromptId||"",e.updatedAt||"",e.createdByScheduleId||"",e.lastRunStatus||"",e.lastRunError||""].join(" ").toLowerCase(),tC=e=>e.messages.filter(t=>t.role==="user"&&"content"in t).slice(0,3).map(t=>"content"in t?t.content:"").join(" ").toLowerCase(),Fc=(e,t)=>{if(!t)return!0;const n=t.split(/\s+/).filter(Boolean),r=eC(e);if(n.every(i=>r.includes(i)))return!0;const s=Z.getState().chats.find(i=>i.id===e.id);if(!s)return!1;const o=tC(s),a=`${r} ${o}`;return n.every(i=>a.includes(i))},Nc=(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}},nC=()=>{const{t:e}=qe(),{message:t}=Tn.useApp(),{chats:n,currentSessionId:r,deleteSession:s,deleteSessions:o,pinSession:a,unpinSession:i,updateSession:c,addChat:d,refreshChats:f,lastSelectedPromptId:p,systemPrompts:v}=Z(Da(he=>({chats:Z0(he.chats),currentSessionId:he.currentSessionId,deleteSession:he.deleteSession,deleteSessions:he.deleteSessions,pinSession:he.pinSession,unpinSession:he.unpinSession,updateSession:he.updateSession,addChat:he.addChat,refreshChats:he.refreshChats,lastSelectedPromptId:he.lastSelectedPromptId,systemPrompts:he.systemPrompts}))),g=S.useCallback(he=>si(he)(Z.getState()),[]),{sidebarCollapsed:w,setSidebarCollapsed:m,clearSessionFromAllLeaves:x}=ct(Da(he=>({sidebarCollapsed:he.sidebar.collapsed,setSidebarCollapsed:he.setSidebarCollapsed,clearSessionFromAllLeaves:he.clearSessionFromAllLeaves}))),k=S.useCallback(async(he,Ne)=>{var Dt,en;const Ie=v.find(tn=>tn.id===p),Je=(Ie==null?void 0:Ie.id)||(v.length>0?((Dt=v.find(tn=>tn.id==="general_assistant"))==null?void 0:Dt.id)||v[0].id:""),Wt={title:he||e("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:Je,baseSystemPrompt:(Ie==null?void 0:Ie.content)||(v.length>0?((en=v.find(tn=>tn.id==="general_assistant"))==null?void 0:en.content)||v[0].content:""),lastUsedEnhancedPrompt:null},...Ne},yn=await d(Wt),{activeLeafId:Oe}=ct.getState();ct.getState().setLeafSessionId(Oe,yn),ct.getState().setActiveLeafId(Oe)},[d,p,v,e]),[C,E]=S.useState(!1),[T,P]=S.useState(new Set(["Today"])),[A,O]=S.useState(""),[$,U]=S.useState("all"),[J,ee]=S.useState({}),I=Z(Da(he=>{const Ne=he.currentSessionId;if(!Ne)return null;const Ie=he.chats.find(Je=>Je.id===Ne);return Ie?{id:Ie.id,kind:Ie.kind,parentSessionId:Ie.parentSessionId||null,rootSessionId:Ie.rootSessionId||null,pinned:!!Ie.pinned,createdAt:Ie.createdAt,createdByScheduleId:Ie.createdByScheduleId||null}:null})),Y=S.useMemo(()=>I?I.pinned?"Pinned":I.createdByScheduleId?"Scheduled":new Date(I.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):null,[I]),z=S.useMemo(()=>{const he=new Set(T);return Y&&he.add(Y),Array.from(he)},[Y,T]),D=he=>{const Ne=new Set(Array.isArray(he)?he:[he]);P(Ie=>{if(Ie.size!==Ne.size)return Ne;for(const Je of Ne)if(!Ie.has(Je))return Ne;return Ie})},ie=A.trim().toLowerCase(),Q=ie.length>0||$!=="all",ue=S.useMemo(()=>[],[]),me=S.useMemo(()=>({}),[]),V=S.useMemo(()=>({}),[]),ae=S.useMemo(()=>[],[]),ve=S.useMemo(()=>new Set,[]),re=S.useMemo(()=>w?ue:n.filter(he=>he.kind!=="child"),[n,w,ue]),le=S.useMemo(()=>{if(w)return me;const he={};for(const Ne of n){if(Ne.kind!=="child")continue;const Ie=Ne.parentSessionId||Ne.rootSessionId;Ie&&(he[Ie]||(he[Ie]=[]),he[Ie].push(Ne))}return Object.keys(he).forEach(Ne=>{he[Ne].sort((Ie,Je)=>Ie.pinned!==Je.pinned?Ie.pinned?-1:1:(Je.createdAt??0)-(Ie.createdAt??0))}),he},[n,w,me]),de=S.useMemo(()=>Q?re.filter(he=>Fc(he,ie)&&Nc(he,$,g)?!0:(le[he.id]||[]).some(Je=>Fc(Je,ie)&&Nc(Je,$,g))):re,[le,Q,g,ie,re,$]),pe=S.useMemo(()=>{if(!Q)return le;const he={};for(const Ne of de){const Ie=le[Ne.id]||[];he[Ne.id]=Ie.filter(Je=>Fc(Je,ie)&&Nc(Je,$,g))}return he},[le,de,Q,g,ie,$]),Ae=S.useMemo(()=>w?V:gx(de),[de,w,V]),Me=S.useMemo(()=>w?ae:yx(Ae),[Ae,w,ae]),F=S.useCallback(he=>{a(he),P(Ne=>{if(Ne.has("Pinned"))return Ne;const Ie=new Set(Ne);return Ie.add("Pinned"),Ie})},[a]),L=S.useCallback(he=>{const Ne=n.find(Je=>Je.id===he),Ie=Ne?bx({...Ne}):null;i(he),Ie&&P(Je=>{if(Je.has(Ie))return Je;const Wt=new Set(Je);return Wt.add(Ie),Wt})},[n,i]),fe=he=>{Zi.confirm({title:e("chat.sidebar.delete.title"),content:e("chat.sidebar.delete.confirm"),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{x(he),s(he)}})},Se=Fa(he=>he.open),De=()=>{Se("chat")},We=S.useCallback(he=>{O(he)},[]),Ge=S.useCallback(he=>{U(he)},[]),He=S.useCallback(()=>{O(""),U("all")},[]),at=(he,Ne)=>{c(he,{title:Ne})},St=S.useCallback(async he=>{try{await Pn.getInstance().regenerateSessionTitle(he)}catch(Ne){console.error("Failed to regenerate session title:",Ne)}},[]),Ot=S.useCallback(async he=>{var Ie;if(((Ie=J[he])==null?void 0:Ie.status)==="loading")return;ee(Je=>({...Je,[he]:{status:"loading"}}));const Ne=t.loading(e("chat.actions.runProjectDreamRunning"),0);try{const Je=await Pn.getInstance().runProjectDream(he);Ne(),Je.dream_generated?t.success(e("chat.actions.runProjectDreamSuccess")):t.info(Je.message||e("chat.actions.runProjectDreamNoChange"));try{await f()}catch(Wt){console.warn("Failed to refresh chats after project dream run:",Wt)}}catch(Je){Ne();const Wt=Je instanceof Error&&Je.message?Je.message:e("chat.actions.runProjectDreamFailed");t.error(Wt),console.error("Failed to run project dream:",Je)}finally{ee(Je=>({...Je,[he]:{status:"idle"}}))}},[t,J,f,e]),xt=he=>{const Ne=vx(Ae,he),Ie=ny(Ae,he);Zi.confirm({title:e("chat.sidebar.deleteByDate.title",{date:he}),content:e("chat.sidebar.deleteByDate.confirm",{count:Ie,date:he}),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{Ne.forEach(Je=>x(Je)),o(Ne)}})},Fe=()=>{E(!0)},lt=()=>{E(!1)},_t=async he=>{try{await k(e("chat.sidebar.newSessionWithPrompt",{prompt:he.name}),{config:{systemPromptId:he.id,baseSystemPrompt:he.content,lastUsedEnhancedPrompt:null}}),E(!1)}catch(Ne){console.error("Failed to create chat:",Ne),Zi.error({title:e("chat.sidebar.createFailedTitle"),content:Ne instanceof Error?Ne.message:e("chat.sidebar.createFailedUnknown")})}},Qt=S.useCallback(he=>G0(he),[]),[At,Tt]=S.useState(new Set),Ht=S.useMemo(()=>{if(w)return ve;const he=new Set;for(const Ne of Object.values(le))for(const Ie of Ne)if(Ie.pinned){const Je=Ie.parentSessionId||Ie.rootSessionId;Je&&he.add(Je)}return he},[le,w,ve]),$n=S.useMemo(()=>{var Ne;if(w)return ve;const he=new Set(At);if((I==null?void 0:I.kind)==="child"){const Ie=I.parentSessionId||I.rootSessionId;Ie&&he.add(Ie)}for(const Ie of Ht)he.add(Ie);if(Q)for(const Ie of de)(((Ne=pe[Ie.id])==null?void 0:Ne.length)??0)>0&&he.add(Ie.id);return he},[pe,At,de,Q,Ht,I,w,ve]),Zt=S.useCallback(he=>{Tt(Ne=>{const Ie=new Set(Ne);return Ie.has(he)?Ie.delete(he):Ie.add(he),Ie})},[]);return{chats:de,childrenByRoot:pe,expandedRootIds:$n,toggleRootExpanded:Zt,collapsed:w,currentSessionId:r,expandedKeys:z,groupedChatsByDate:Ae,hasActiveFilters:Q,handleCollapseChange:D,handleDelete:fe,handleDeleteByDate:xt,handleEditTitle:at,handleGenerateTitle:St,handleNewChat:Fe,handleNewChatSelectorClose:lt,handleOpenSettings:De,handleRunProjectDream:Ot,handleSearchQueryChange:We,handleStatusFilterChange:Ge,handleClearFilters:He,handleSystemPromptSelect:_t,isNewChatSelectorOpen:C,pinSession:F,projectDreamState:J,searchQuery:A,selectSession:Qt,setCollapsed:m,sortedDateKeys:Me,statusFilter:$,systemPrompts:v,titleGenerationState:{},unpinSession:L}},rC=S.lazy(()=>Lt(()=>import("./index-3D4SJ2Sq.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),{useBreakpoint:sC}=zl,{useToken:oC}=st,$h=()=>{const{token:e}=oC(),{t}=qe(),n=sC(),{childrenByRoot:r,expandedRootIds:s,toggleRootExpanded:o,collapsed:a,currentSessionId:i,expandedKeys:c,groupedChatsByDate:d,handleCollapseChange:f,handleDelete:p,handleDeleteByDate:v,handleEditTitle:g,handleGenerateTitle:w,handleNewChat:m,handleNewChatSelectorClose:x,handleOpenSettings:k,handleRunProjectDream:C,handleSearchQueryChange:E,handleStatusFilterChange:T,handleClearFilters:P,handleSystemPromptSelect:A,hasActiveFilters:O,isNewChatSelectorOpen:$,pinSession:U,projectDreamState:J,searchQuery:ee,selectSession:I,setCollapsed:Y,sortedDateKeys:z,statusFilter:D,systemPrompts:ie,titleGenerationState:Q,unpinSession:ue}=nC(),{xs:me,sm:V}=n;return S.useEffect(()=>{typeof me!="boolean"||typeof V!="boolean"||me===!1&&V===!1&&Y(!0)},[V,me,Y]),a?null:l.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:[l.jsx(we,{justify:"flex-end",style:{flexShrink:0,padding:"8px 10px 0 10px",minHeight:34},children:l.jsx(Ee,{type:"text",icon:l.jsx(Rw,{}),onClick:()=>Y(!0),size:n.xs?"small":"middle",className:"lotus-toolbar-icon","aria-label":t("chat.sidebar.collapse","Collapse sidebar")})}),l.jsxs(we,{vertical:!0,gap:6,style:{flexShrink:0,padding:"6px 10px 6px 10px"},children:[l.jsx(Ts,{allowClear:!0,value:ee,onChange:ae=>E(ae.target.value),prefix:l.jsx(_u,{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}}),l.jsx(Aw,{block:!0,size:n.xs?"middle":"small",value:D,onChange:ae=>T(ae),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"}]})]}),l.jsx(we,{vertical:!0,role:"list","aria-label":t("chat.sidebar.chatList","Chat list"),style:{flex:1,minHeight:0,overflowY:"auto",padding:"0 10px"},children:l.jsx(Sx,{groupedChatsByDate:d,childrenByRoot:r,expandedRootIds:s,onToggleRootExpanded:o,sortedDateKeys:z,expandedKeys:c,onCollapseChange:f,currentSessionId:i,onSelectChat:I,onDeleteChat:p,onDeleteByDate:v,onPinChat:U,onUnpinChat:ue,onEditTitle:g,onGenerateTitle:w,onRunProjectDream:C,titleGenerationState:Q,projectDreamState:J,token:e,hasActiveFilters:O,onClearFilters:P})}),l.jsx(Mx,{collapsed:!1,onNewChat:m,onOpenSettings:k,token:e}),l.jsx(S.Suspense,{fallback:null,children:l.jsx(rC,{open:$,onClose:x,onSelect:A,prompts:ie,title:t("chat.prompt.newSessionSelectorTitle"),showCancelButton:!0})})]})},{Text:Lh,Paragraph:aC}=ot;class Ka extends S.Component{constructor(n){super(n);vt(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,a;const s=this.props.name??"ErrorBoundary";console.error(`[${s}] Uncaught error:`,n,r),(a=(o=this.props).onError)==null||a.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:l.jsx(iC,{error:r,onReset:this.handleReset})}}const iC=({error:e,onReset:t})=>{const{token:n}=st.useToken(),[r,s]=rt.useState(!1),{t:o}=qe();return l.jsxs("div",{role:"alert",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,padding:n.paddingLG,minHeight:200,textAlign:"center"},children:[l.jsx(Xg,{style:{fontSize:36,color:n.colorWarning}}),l.jsx(Lh,{strong:!0,style:{fontSize:16},children:o("app.errorBoundary.title")}),l.jsx(Lh,{type:"secondary",style:{maxWidth:420},children:o("app.errorBoundary.description")}),l.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[l.jsx(Ee,{type:"primary",icon:l.jsx(Cd,{}),onClick:t,"aria-label":o("app.errorBoundary.tryAgain"),children:o("app.errorBoundary.tryAgain")}),l.jsx(Ee,{type:"text",size:"small",onClick:()=>s(a=>!a),"aria-expanded":r,"aria-label":o("app.errorBoundary.showDetails"),children:o(r?"app.errorBoundary.hideDetails":"app.errorBoundary.showDetails")})]}),r&&l.jsxs(aC,{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}`:""]})]})},Dh={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},Nd=Xr()(n_(e=>({settings:Dh,updateSettings:t=>e(n=>({settings:{...n.settings,...t}})),resetSettings:()=>e({settings:Dh})}),{name:"mermaid-settings"})),zd=()=>Nd(t=>t.settings),cL=()=>Nd(e=>e.updateSettings),uL=()=>Nd(e=>e.resetSettings),lC=()=>{const{token:e}=st.useToken(),t=zd(),n=S.useRef("");S.useEffect(()=>{const r=cC(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),xd.initialize({startOnLoad:!1,theme:o,securityLevel:"strict",htmlLabels:!1,suppressErrorRendering:!0,fontSize:t.fontSize,themeVariables:Object.keys(t.themeVariables).length>0?t.themeVariables:void 0,flowchart:{useMaxWidth:t.useMaxWidth,htmlLabels:!1,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 cC(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}xd.initialize({startOnLoad:!1,theme:"dark",securityLevel:"strict",htmlLabels:!1,suppressErrorRendering:!0});xd.parseError=function(e){console.warn("Mermaid parse error (handled gracefully):",e)};const Fh=new Map,uC=/^(\s*%%\{[\s\S]*?\}%%\s*)*\s*gantt\b/i,dC=e=>e.replace(/:/g,":").replace(/,/g,",").replace(/;/g,";").replace(/(/g,"(").replace(/)/g,")").replace(/-/g,"-"),fC=e=>(uC.test(e)?dC(e):e).replace(/\[([\s\S]*?)\]/g,(n,r)=>{const s=String(r),o=/\r?\n/.test(s),a=/[()]/.test(s),i=/@/.test(s);if(!o&&!a&&!i)return n;const c=s.trim(),d=c.startsWith("(")&&c.endsWith(")")&&c.length>=2;let f=s;return o&&(f=f.replace(/\r?\n/g,"<br/>")),a&&!d&&(f=f.replace(/\(/g,"&#40;").replace(/\)/g,"&#41;")),i&&(f=f.replace(/@/g,"&#64;")),f===s?n:`[${f}]`}),hC=200,cr=new Map,nl=new Map;let zc=null;const pC=e=>{const n=new DOMParser().parseFromString(e,"image/svg+xml");return Array.from(n.querySelectorAll("rect")).reduce((s,o)=>{const a=Number(o.getAttribute("width"));return Number.isFinite(a)&&a<0?s+1:s},0)};async function mC(){zc||(zc=Lt(()=>import("./vendor-mermaid-Di565VO4.js").then(t=>t.bP),__vite__mapDeps([4,3,2]),import.meta.url));const e=await zc;return e.default??e}function gC(e,t){if(cr.has(e)&&cr.delete(e),cr.set(e,t),cr.size>hC){const n=cr.keys().next().value;n&&cr.delete(n)}}function rl(e){const t=cr.get(e);return t?(cr.delete(e),cr.set(e,t),t):null}function Nh(){cr.clear(),nl.clear()}function yC(e,t){const n=rl(e);if(n)return Promise.resolve(n);const r=nl.get(e);if(r)return r;const s=(async()=>{var C,E;const o=await mC();await o.parse(t);const a=`mermaid-${e}`,i=document.createElement("div"),c=Math.max(1600,window.innerWidth||0,((C=document.documentElement)==null?void 0:C.clientWidth)||0);i.style.cssText=["position:absolute","left:-9999px","top:-9999px",`width:${c}px`,`min-width:${c}px`,"visibility:hidden","pointer-events:none","overflow:visible"].join(";"),document.body.appendChild(i);let d;try{d=await o.render(a,t,i)}finally{document.body.removeChild(i)}const f=typeof d=="object"&&"svg"in d?d.svg:String(d),p=pC(f);if(p>0)throw new Error(`Mermaid rendered invalid SVG (${p} rect widths < 0)`);const w=new DOMParser().parseFromString(f,"image/svg+xml").querySelector("svg");let m=800,x=300;if(w){const T=w.getAttribute("viewBox");if(T){const P=T.split(/\s+/).map(Number);P.length===4&&(m=P[2]||800,x=P[3]||300)}if(m===800&&x===300){const P=document.createElement("div");P.style.cssText="position:absolute;visibility:hidden;width:800px;",P.innerHTML=f,document.body.appendChild(P);const A=(E=P.querySelector("svg"))==null?void 0:E.getBoundingClientRect();A&&(m=A.width,x=A.height),document.body.removeChild(P)}}const k={svg:f,width:m,height:x};return gC(e,k),k})().finally(()=>{nl.delete(e)});return nl.set(e,s),s}const ka=new Map,sl=new Set,$s=new Map,Js=new Map;let ts=null;const By=(e,t)=>{const n=ka.get(e);n&&n.forEach(r=>r(t))},Bc=()=>{if(ts=null,Js.size===0)return;const e=Array.from(Js.values());Js.clear(),e.forEach(t=>{By(t.messageId,t.content),sl.forEach(n=>n(t))})},Et={getLatest(e){return $s.get(e)??null},subscribeMessage(e,t){let n=ka.get(e);return n||(n=new Set,ka.set(e,n)),n.add(t),$s.has(e)&&t($s.get(e)??null),()=>{const r=ka.get(e);r&&(r.delete(t),r.size===0&&ka.delete(e))}},subscribe(e){return sl.add(e),()=>{sl.delete(e)}},publish(e){if(e.transient){Js.set(e.messageId,e),ts===null&&(ts=requestAnimationFrame(Bc));return}e.content===null?$s.delete(e.messageId):$s.set(e.messageId,e.content),Js.set(e.messageId,e),ts===null&&(ts=requestAnimationFrame(Bc))},clear(e,t){$s.delete(t),Js.delete(t),By(t,null),sl.forEach(n=>n({sessionId:e,messageId:t,content:null}))},forceFlush(){ts!==null&&(cancelAnimationFrame(ts),Bc())}},xr={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function Wy(e){return"init"in e}function Du(e){return typeof e.write=="function"}function vC(e){return!!e.onMount}function zh(e){return"v"in e||"e"in e}function Cl(e){if("e"in e)throw e.e;if((xr?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}function kl(e){return typeof(e==null?void 0:e.then)=="function"}function Uy(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function qy(e,t,n){const r=n.get(e),s=r==null?void 0:r.t,o=t.p;if(!(s!=null&&s.size))return o;if(!o.size)return s;const a=new Set(s);for(const i of o)a.add(i);return a}function bC(e){return!!e.INTERNAL_onInit}const SC=(e,t,n,...r)=>n.read(...r),wC=(e,t,n,...r)=>n.write(...r),xC=(e,t,n)=>n.INTERNAL_onInit(t),_C=(e,t,n,r)=>{var s;return(s=n.onMount)==null?void 0:s.call(n,r)},CC=(e,t,n)=>{var r;const s=e[0];let o=s.get(n);if(!o){const a=e[6],i=e[9];o={d:new Map,p:new Set,n:0},s.set(n,o),(r=a.i)==null||r.call(a,n),bC(n)&&i(e,t,n)}return o},kC=(e,t)=>{var n;const r=e[1],s=e[3],o=e[4],a=e[5],i=e[6],c=e[13];if(!i.f&&!s.size&&!o.size&&!a.size)return;const d=[],f=p=>{try{p()}catch(v){d.push(v)}};do{i.f&&f(i.f);const p=new Set;for(const v of s){const g=(n=r.get(v))==null?void 0:n.l;if(g)for(const w of g)p.add(w)}s.clear();for(const v of a)p.add(v);a.clear();for(const v of o)p.add(v);o.clear();for(const v of p)f(v);s.size&&c(e,t)}while(s.size||a.size||o.size);if(d.length)throw new AggregateError(d)},TC=(e,t)=>{const n=e[1],r=e[2],s=e[3],o=e[11],a=e[14],i=e[17];if(!s.size)return;const c=[],d=[],f=new WeakSet,p=new WeakSet,v=[],g=[];for(const w of s)v.push(w),g.push(o(e,t,w));for(;v.length;){const w=v.length-1,m=v[w],x=g[w];if(p.has(m)){v.pop(),g.pop();continue}if(f.has(m)){if(r.get(m)===x.n)c.push(m),d.push(x);else if((xr?"production":void 0)!=="production"&&r.has(m))throw new Error("[Bug] invalidated atom exists");p.add(m),v.pop(),g.pop();continue}f.add(m);for(const k of qy(m,x,n))f.has(k)||(v.push(k),g.push(o(e,t,k)))}for(let w=c.length-1;w>=0;--w){const m=c[w],x=d[w];let k=!1;for(const C of x.d.keys())if(C!==m&&s.has(C)){k=!0;break}k&&(r.set(m,x.n),a(e,t,m),i(e,t,m)),r.delete(m)}},Fu=new WeakSet,PC=(e,t,n)=>{var r,s;const o=e[1],a=e[2],i=e[3],c=e[6],d=e[7],f=e[11],p=e[12],v=e[13],g=e[14],w=e[16],m=e[17],x=e[20],k=e[26],C=e[28],E=f(e,t,n),T=C[0];if(zh(E)){if(o.has(n)&&a.get(n)!==E.n||E.m===T)return E.m=T,E;let D=!1;for(const[ie,Q]of E.d)if(g(e,t,ie).n!==Q){D=!0;break}if(!D)return E.m=T,E}let P=!0;const A=new Set(E.d.keys()),O=()=>{for(const D of A)E.d.delete(D)},$=()=>{if(o.has(n)){const D=!i.size;m(e,t,n),D&&(v(e,t),p(e,t))}},U=D=>{var ie;if(D===n){const ue=f(e,t,D);if(!zh(ue))if(Wy(D))x(e,t,D,D.init);else throw new Error("no atom init");return Cl(ue)}const Q=g(e,t,D);try{return Cl(Q)}finally{A.delete(D),E.d.set(D,Q.n),kl(E.v)&&Uy(n,E.v,Q),o.has(n)&&((ie=o.get(D))==null||ie.t.add(n)),P||$()}};let J,ee;const I={get signal(){return J||(J=new AbortController),J.signal},get setSelf(){return(xr?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(xr?"production":void 0)!=="production"&&!Du(n)&&console.warn("setSelf function cannot be used with read-only atom"),!ee&&Du(n)&&(ee=(...D)=>{if((xr?"production":void 0)!=="production"&&P&&console.warn("setSelf function cannot be called in sync"),!P)try{return w(e,t,n,D)}finally{v(e,t),p(e,t)}}),ee}},Y=E.n,z=a.get(n)===Y;try{(xr?"production":void 0)!=="production"&&Fu.delete(t);const D=d(e,t,n,U,I);if((xr?"production":void 0)!=="production"&&Fu.has(t)&&console.warn("Detected store mutation during atom read. This is not supported."),x(e,t,n,D),kl(D)){k(e,t,D,()=>J==null?void 0:J.abort());const ie=()=>{O(),$()};D.then(ie,ie)}else O();return(r=c.r)==null||r.call(c,n),E.m=T,E}catch(D){return delete E.v,E.e=D,++E.n,E.m=T,E}finally{P=!1,E.n!==Y&&z&&(a.set(n,E.n),i.add(n),(s=c.c)==null||s.call(c,n))}},EC=(e,t,n)=>{const r=e[1],s=e[2],o=e[11],a=[n];for(;a.length;){const i=a.pop(),c=o(e,t,i);for(const d of qy(i,c,r)){const f=o(e,t,d);s.get(d)!==f.n&&(s.set(d,f.n),a.push(d))}}},MC=(e,t,n,r)=>{const s=e[3],o=e[6],a=e[8],i=e[11],c=e[12],d=e[13],f=e[14],p=e[15],v=e[16],g=e[17],w=e[20],m=e[28];let x=!0;const k=E=>Cl(f(e,t,E)),C=(E,...T)=>{var P;const A=i(e,t,E);try{if(E===n){if(!Wy(E))throw new Error("atom not writable");(xr?"production":void 0)!=="production"&&Fu.add(t);const O=A.n,$=T[0];w(e,t,E,$),g(e,t,E),O!==A.n&&(++m[0],s.add(E),p(e,t,E),(P=o.c)==null||P.call(o,E));return}else return v(e,t,E,T)}finally{x||(d(e,t),c(e,t))}};try{return a(e,t,n,k,C,...r)}finally{x=!1}},RC=(e,t,n)=>{var r;const s=e[1],o=e[3],a=e[6],i=e[11],c=e[15],d=e[18],f=e[19],p=i(e,t,n),v=s.get(n);if(v&&p.d.size>0){for(const[g,w]of p.d)if(!v.d.has(g)){const m=i(e,t,g);d(e,t,g).t.add(n),v.d.add(g),w!==m.n&&(o.add(g),c(e,t,g),(r=a.c)==null||r.call(a,g))}for(const g of v.d)if(!p.d.has(g)){v.d.delete(g);const w=f(e,t,g);w==null||w.t.delete(n)}}},AC=(e,t,n)=>{var r;const s=e[1],o=e[4],a=e[6],i=e[10],c=e[11],d=e[12],f=e[13],p=e[14],v=e[16],g=e[18],w=c(e,t,n);let m=s.get(n);if(!m){p(e,t,n);for(const x of w.d.keys())g(e,t,x).t.add(n);if(m={l:new Set,d:new Set(w.d.keys()),t:new Set},s.set(n,m),Du(n)&&vC(n)){const x=()=>{let k=!0;const C=(...E)=>{try{return v(e,t,n,E)}finally{k||(f(e,t),d(e,t))}};try{const E=i(e,t,n,C);E&&(m.u=()=>{k=!0;try{E()}finally{k=!1}})}finally{k=!1}};o.add(x)}(r=a.m)==null||r.call(a,n)}return m},jC=(e,t,n)=>{var r,s;const o=e[1],a=e[5],i=e[6],c=e[11],d=e[19],f=c(e,t,n);let p=o.get(n);if(!p||p.l.size)return p;let v=!1;for(const g of p.t)if((r=o.get(g))!=null&&r.d.has(n)){v=!0;break}if(!v){p.u&&a.add(p.u),p=void 0,o.delete(n);for(const g of f.d.keys()){const w=d(e,t,g);w==null||w.t.delete(n)}(s=i.u)==null||s.call(i,n);return}return p},IC=(e,t,n,r)=>{const s=e[11],o=e[27],a=s(e,t,n),i="v"in a,c=a.v;if(kl(r))for(const d of a.d.keys())Uy(n,r,s(e,t,d));a.v=r,delete a.e,(!i||!Object.is(c,a.v))&&(++a.n,kl(c)&&o(e,t,c))},OC=(e,t,n)=>{const r=e[14];return Cl(r(e,t,n))},$C=(e,t,n,...r)=>{const s=e[3],o=e[12],a=e[13],i=e[16],c=s.size;try{return i(e,t,n,r)}finally{s.size!==c&&(a(e,t),o(e,t))}},LC=(e,t,n,r)=>{const s=e[12],o=e[18],a=e[19],c=o(e,t,n).l;return c.add(r),s(e,t),()=>{c.delete(r),a(e,t,n),s(e,t)}},DC=(e,t,n,r)=>{const s=e[25];let o=s.get(n);if(!o){o=new Set,s.set(n,o);const a=()=>s.delete(n);n.then(a,a)}o.add(r)},FC=(e,t,n)=>{const s=e[25].get(n);s==null||s.forEach(o=>o())},Hy=new WeakMap;function NC(e){const t=Hy.get(e);if((xr?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");const n=t[24];return n?n(t,e):t}function zC(...e){const t={get(a){return r(n,t,a)},set(a,...i){return s(n,t,a,...i)},sub(a,i){return o(n,t,a,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},SC,wC,xC,_C,CC,kC,TC,PC,EC,MC,RC,AC,jC,IC,OC,$C,LC,void 0,new WeakMap,DC,FC,[0]].map((a,i)=>e[i]||a);Hy.set(t,Object.freeze(n));const r=n[21],s=n[22],o=n[23];return t}const Xy={};let BC=0;function Yr(e,t){const n=`atom${++BC}`,r={toString(){return(Xy?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=WC,r.write=UC),t&&(r.write=t),r}function WC(e){return e(this)}function UC(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function Yy(){return zC()}let Io;function qC(){return Io||(Io=Yy(),(Xy?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Io),globalThis.__JOTAI_DEFAULT_STORE__!==Io&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Io}const HC=S.createContext(void 0);function XC(e){const t=S.useContext(HC);return(e==null?void 0:e.store)||t||qC()}const Nu=e=>typeof(e==null?void 0:e.then)=="function",zu=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},YC=rt.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(zu(e),e)}),Wc=new WeakMap,Bh=(e,t,n)=>{const r=NC(e),s=r[26];let o=Wc.get(t);return o||(o=new Promise((a,i)=>{let c=t;const d=v=>g=>{c===v&&a(g)},f=v=>g=>{c===v&&i(g)},p=()=>{try{const v=n();Nu(v)?(Wc.set(v,o),c=v,v.then(d(v),f(v)),s(r,e,v,p)):a(v)}catch(v){i(v)}};t.then(d(t),f(t)),s(r,e,t,p)}),Wc.set(t,o)),o};function KC(e,t){const{delay:n,unstable_promiseStatus:r=!rt.use}=t||{},s=XC(t),[[o,a,i],c]=S.useReducer(f=>{const p=s.get(e);return Object.is(f[0],p)&&f[1]===s&&f[2]===e?f:[p,s,e]},void 0,()=>[s.get(e),s,e]);let d=o;if((a!==s||i!==e)&&(c(),d=s.get(e)),S.useEffect(()=>{const f=s.sub(e,()=>{if(r)try{const p=s.get(e);Nu(p)&&zu(Bh(s,p,()=>s.get(e)))}catch{}if(typeof n=="number"){console.warn(`[DEPRECATED] delay option is deprecated and will be removed in v3.
16
+
17
+ Migration guide:
18
+
19
+ Create a custom hook like the following.
20
+
21
+ function useAtomValueWithDelay<Value>(
22
+ atom: Atom<Value>,
23
+ options: { delay: number },
24
+ ): Value {
25
+ const { delay } = options
26
+ const store = useStore(options)
27
+ const [value, setValue] = useState(() => store.get(atom))
28
+ useEffect(() => {
29
+ const unsub = store.sub(atom, () => {
30
+ setTimeout(() => setValue(store.get(atom)), delay)
31
+ })
32
+ return unsub
33
+ }, [store, atom, delay])
34
+ return value
35
+ }
36
+ `),setTimeout(c,n);return}c()});return c(),f},[s,e,n,r]),S.useDebugValue(d),Nu(d)){const f=Bh(s,d,()=>s.get(e));return r&&zu(f),YC(f)}return d}function VC(e,t){let n=null;const r=new Map,s=new Set;function o(i){let c;if(c=r.get(i),c!==void 0)if(n!=null&&n(c[1],i))o.remove(i);else return c[0];const d=e(i);return r.set(i,[d,Date.now()]),a("CREATE",i,d),d}function a(i,c,d){for(const f of s)f({type:i,param:c,atom:d})}return o.unstable_listen=i=>(s.add(i),()=>{s.delete(i)}),o.getParams=()=>r.keys(),o.remove=i=>{{if(!r.has(i))return;const[c]=r.get(i);r.delete(i),a("REMOVE",i,c)}},o.setShouldRemove=i=>{if(n=i,!!n)for(const[c,[d,f]]of r)n(f,c)&&(r.delete(c),a("REMOVE",c,d))},o}const Bn=e=>(e??"").trim(),Ky=(...e)=>{const t=e.map(Bn);return t.some(n=>!n)?"":t.join("::")},Bu=(e,t,n,r)=>n?e.get(t(n)):r,Vy=(e,t,n,r,s)=>{n&&(e.set(t(n),r),t.remove(n),s==null||s.delete(n))},GC=(e,t,n,r,s)=>{r&&Array.from(n).forEach(o=>{o.startsWith(r)&&Vy(e,t,o,s,n)})},Bd=e=>{const t=Yy(),n=VC(s=>Yr(e)),r=new Set;return{store:t,atomFamily:n,activeKeys:r,getState:s=>Bu(t,n,s,e),clearState:s=>Vy(t,n,s,e,r),clearStatesByPrefix:s=>GC(t,n,r,s,e)}},Gy={content:"",reasoningContent:"",updatedAt:0},ql=Bd(Gy),Hl=ql.store,Xl=ql.atomFamily,JC=Yr(null,(e,t,n)=>{const r=Bn(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=Xl(r),a=e(o);t(o,{...a,content:a.content+s,updatedAt:Date.now()})}),QC=Yr(null,(e,t,n)=>{const r=Bn(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=Xl(r),a=e(o);t(o,{...a,reasoningContent:a.reasoningContent+s,updatedAt:Date.now()})}),ZC=Yr(null,(e,t,n)=>{const r=Bn(n.sessionId);if(!r)return;const s=Xl(r),o=e(s);t(s,{content:n.patch.content??o.content,reasoningContent:n.patch.reasoningContent??o.reasoningContent,updatedAt:n.patch.updatedAt??Date.now()})}),ek=(e,t)=>{Hl.set(JC,{sessionId:e,chunk:t})},tk=(e,t)=>{Hl.set(QC,{sessionId:e,chunk:t})},nk=(e,t)=>{Hl.set(ZC,{sessionId:e,patch:t})},Wu=e=>{ql.clearState(Bn(e))},Wh=e=>ql.getState(Bn(e)),rk={output:"",status:"idle",updatedAt:0},oi=Bd(rk),Wd=oi.store,Ud=oi.atomFamily,qd=(e,t)=>Ky(e,t),sk=Yr(null,(e,t,n)=>{const r=qd(n.sessionId,n.toolCallId);if(!r)return;const s=n.chunk??"";if(!s)return;oi.activeKeys.add(r);const o=Ud(r),a=e(o);t(o,{output:a.output+s,status:"running",updatedAt:Date.now()})}),ok=Yr(null,(e,t,n)=>{const r=qd(n.sessionId,n.toolCallId);if(!r)return;oi.activeKeys.add(r);const s=Ud(r),o=e(s);t(s,{...o,status:n.status,updatedAt:Date.now()})}),Uh=e=>{const t=Bn(e);t&&oi.clearStatesByPrefix(`${t}::`)},ak=(e,t,n)=>{Wd.set(sk,{sessionId:e,toolCallId:t,chunk:n})},Uc=(e,t,n)=>{Wd.set(ok,{sessionId:e,toolCallId:t,status:n})},ik={outputPreview:"",updatedAt:0},io=Bd(ik),lk=io.store,ck=io.atomFamily,Hd=(e,t)=>Ky(e,t),uk=Yr(null,(e,t,n)=>{const r=Hd(n.parentSessionId,n.childSessionId);if(!r)return;io.activeKeys.add(r);const s=ck(r),o=e(s);t(s,{...o,outputPreview:n.outputPreview,updatedAt:Date.now()})}),Jy=(e,t,n)=>{lk.set(uk,{parentSessionId:e,childSessionId:t,outputPreview:n})},dk=(e,t)=>{io.clearState(Hd(e,t))},qh=e=>{const t=Bn(e);t&&io.clearStatesByPrefix(`${t}::`)},fk=(e,t)=>io.getState(Hd(e,t));function ps(...e){}const hk=e=>{const t=e;return(t==null?void 0:t.name)==="AbortError"||(t==null?void 0:t.code)===20},Hh=220,Qy=e=>{const t=e.replace(/\s+/g," ").trim();return t.length<=Hh?t:`${t.slice(0,Hh)}...`},pk=e=>e==="pending"||e==="in_progress"||e==="completed"||e==="blocked",mk=new Set(["completed","error","cancelled","failed"]),gk=1500,yk=120,vk=8e3,bk=(e,t)=>{var n,r;return(r=(n=Ul(e)(Z.getState()))==null?void 0:n[t])==null?void 0:r.status},Xh=e=>e?mk.has(e):!1,Sk=(e,t,n,r)=>{const s=r==null?void 0:r.trim();return s?`${e}:${s}`:`${e}:stats:${t}:${n}`},$i=e=>{const t=e.trim().toLowerCase();return t==="memory_note"||t==="session_note"},wk=()=>{const e=Pn;return typeof e.getInstance=="function"?e.getInstance():new Pn},xk=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}},Uu=e=>{const t=(e??"").trim().toLowerCase();return t.includes("completion policy violation")&&t.includes("conclusion_with_options")},qu=e=>{const t=(e??"").trim(),n=t?`
37
+
38
+ 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},Xd=()=>typeof window<"u"&&!!window.__TAURI_INTERNALS__;async function _k(){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 Ck(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 kk(e){if(!(!Xd()||await _k()))try{await Ck(e.title,e.body)}catch{}}function Tk(e){switch(e){case"needs_clarification":return kt.t("app.notifications.clarification.title");case"needs_approval":return kt.t("app.notifications.toolApproval.genericTitle","Approval required");case"context_critical":return kt.t("app.notifications.contextPressure.title");case"subagent_completed":return kt.t("app.notifications.backgroundTask.completedTitle");default:return null}}const Pk=250,Yh=[1200,3e3],Ek=new Set(["New Session","新建会话","新建會話","Nouvelle session","新しいセッション","नया सत्र"]),Mk=e=>{const t=(e||"").trim();return!t||Ek.has(t)?!0:t.startsWith("New Session - ")||t.startsWith("New Session with ")||t.startsWith("New session - ")||t.startsWith("New session with ")?t.replace(/^New Session - /,"").replace(/^New Session with /,"").replace(/^New session - /,"").replace(/^New session with /,"").trim().length>0:!1};function Rk(e){const{sessionId:t,generation:n,setStreamingStatus:r}=e,{markStreamStartedOnce:s,streamingStateBySessionRef:o}=e.ctx;return{onToken:a=>{s(t,n);const i=o.current.get(t);i&&(r(null),i.content+=a,ek(i.sessionId,a),Et.publish({sessionId:i.sessionId,messageId:i.messageId,content:a,transient:!0}))},onReasoningToken:a=>{s(t,n);const i=o.current.get(t);i&&(i.reasoningContent+=a,tk(i.sessionId,a),Et.publish({sessionId:i.sessionId,messageId:i.reasoningMessageId,content:a,transient:!0}))}}}function Ak(e){const{sessionId:t,generation:n,setStreamingStatus:r}=e,{addMessage:s,applyAgentEvent:o,updateMessage:a,streamingStateBySessionRef:i,toolNamesByCallIdRef:c,toolCallMessageIdByCallIdRef:d}=e.ctx;return{onToolStart:(f,p,v)=>{var T,P;o(t,{type:"tool_start",tool_call_id:f,tool_name:p},n);const g=i.current.get(t),w=(g==null?void 0:g.content)||"",m=(g==null?void 0:g.reasoningContent)||"",x=w.trim().length>0,k=m.trim().length>0;if(x||k){const A=Z.getState().chats.find(J=>J.id===t),O=(T=A==null?void 0:A.messages)==null?void 0:T[A.messages.length-1],$=typeof((P=O==null?void 0:O.metadata)==null?void 0:P.reasoning)=="string"?O.metadata.reasoning:"";(O==null?void 0:O.role)==="assistant"&&(O==null?void 0:O.type)==="text"&&typeof(O==null?void 0:O.content)=="string"&&O.content===w&&$===m||s(t,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:w,createdAt:new Date().toISOString(),metadata:{sessionId:t,model:"agent",...k?{reasoning:m}:{}}}),g&&(g.content="",g.reasoningContent="",nk(g.sessionId,{content:"",reasoningContent:""}),g.status&&(g.status="",Et.clear(g.sessionId,g.statusMessageId)))}c.current.set(f,p);const C=p.trim().toLowerCase();$i(p)?r("memory_updating"):r(`tool_running:${C||"tool"}`);const E=crypto.randomUUID();d.current.set(f,E),s(t,{id:E,role:"assistant",type:"tool_call",toolCalls:[{toolCallId:f,toolName:p,parameters:v||{},streamingOutput:""}],metadata:{},createdAt:new Date().toISOString()})},onToolToken:(f,p)=>{var v;if(o(t,{type:"tool_token",tool_call_id:f,content:p},n),!c.current.has(f)){const g=Z.getState().chats.find(m=>m.id===t),w=((v=g==null?void 0:g.messages)==null?void 0:v.slice().reverse().find(m=>"type"in m&&m.type==="tool_call"&&Array.isArray(m.toolCalls)&&m.toolCalls.some(x=>x.toolCallId===f)))??null;if(w&&"toolCalls"in w&&Array.isArray(w.toolCalls)){const m=w.toolCalls.find(x=>x.toolCallId===f);m&&(c.current.set(f,m.toolName),d.current.set(f,w.id))}}ak(t,f,p)},onToolComplete:(f,p)=>{o(t,{type:"tool_complete",tool_call_id:f},n);const v=c.current.get(f)||"unknown";Uc(t,f,"completed"),c.current.delete(f),d.current.delete(f);const g=v.trim().toLowerCase(),w=i.current.get(t);($i(v)?(w==null?void 0:w.status)==="memory_updating":!!(w!=null&&w.status&&w.status.includes(g)))&&r(null);const x=(p==null?void 0:p.display_preference)||"Default",k=((p==null?void 0:p.images)??[]).filter(C=>C==null?void 0:C.data).map(C=>({id:crypto.randomUUID(),url:`data:${C.mime_type||"image/png"};base64,${C.data}`,name:"screenshot",size:0,type:C.mime_type||"image/*"}));s(t,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:v,toolCallId:f,result:{tool_name:v,result:(p==null?void 0:p.result)??"",display_preference:x},isError:!(p!=null&&p.success),createdAt:new Date().toISOString(),...k.length?{images:k}:{}})},onToolError:(f,p)=>{o(t,{type:"tool_error",tool_call_id:f},n);const v=c.current.get(f)||"unknown";Uc(t,f,"error"),c.current.delete(f),d.current.delete(f),r(null),s(t,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:v,toolCallId:f,result:{tool_name:v,result:p,display_preference:"Default"},isError:!0,createdAt:new Date().toISOString()})},onToolLifecycle:(f,p,v,g,w,m,x)=>{if(v==="begin"){const k=(p||"").trim().toLowerCase();$i(p||"")?r("memory_updating"):r(`tool_running:${k||"tool"}`)}if(v==="finished"||v==="error"||v==="cancelled"){Uc(t,f,v==="finished"?"completed":"error");const k=d.current.get(f);if(k){const P=Z.getState().chats.find($=>$.id===t),A=P==null?void 0:P.messages.find($=>$.id===k),O=A&&"metadata"in A?A.metadata??{}:{};a(t,k,{metadata:{...O,elapsed_ms:g,is_mutating:w,...x?{summary:x}:{}}})}const C=(p||"").trim().toLowerCase(),E=i.current.get(t);($i(p||"")?(E==null?void 0:E.status)==="memory_updating":!!(E!=null&&E.status&&E.status.includes(C)))&&r(null)}}}}function jk(e){const{sessionId:t,setStreamingStatus:n}=e,{message:r,setTruncationInfo:s,updateSession:o,updateTokenUsage:a}=e.ctx;return{onContextCompressionStatus:(i,c)=>{if(c==="started"){n("context_compacting");return}if(c==="degraded_sections"){n("context_compaction_degraded");return}if(c==="failed"){n("context_compaction_failed");return}n(null)},onTokenBudgetUpdated:i=>{const c=hy(i);if(!c)return;a(t,c),s(t,i.truncation_occurred,i.segments_removed);const d=Z.getState().chats.find(f=>f.id===t);d&&o(t,{config:{...d.config,tokenUsage:c,truncationOccurred:i.truncation_occurred,segmentsRemoved:i.segments_removed}})},onContextSummarized:i=>{n(null),r.info(kt.t("app.notifications.conversationSummarized",{messages:i.messages_summarized,tokens:i.tokens_saved.toLocaleString()}),5)},onContextPressureNotification:(i,c,d)=>{c==="critical"?r.error(d,6):r.warning(d,5)}}}function Ik(e){const{message:t,setTaskList:n,updateTaskListDelta:r,setEvaluationState:s,ensureTaskListBaseline:o,shouldShowTaskListCompletedNotice:a}=e.ctx;return{onTaskListUpdated:i=>{i.session_id&&n(i.session_id,i)},onTaskListItemProgress:i=>{if(i.session_id){if(!Z.getState().taskLists[i.session_id]){o(i.session_id);return}r(i.session_id,i)}},onTaskListCompleted:(i,c,d,f)=>{a(i,c,d,f)&&t.success(kt.t("app.notifications.allTasksCompleted",{rounds:c,toolCalls:d}),3)},onTaskEvaluationStarted:(i,c)=>{s(i,{isEvaluating:!0,reasoning:null,timestamp:Date.now()}),t.info(kt.t("app.notifications.evaluatingTasks",{count:c}),2)},onTaskEvaluationCompleted:(i,c,d)=>{const f=Qy(d);s(i,{isEvaluating:!1,reasoning:c>0?f:null,timestamp:Date.now()}),c>0?t.success(kt.t("app.notifications.evaluationCompleteUpdated",{count:c}),3):t.info(kt.t("app.notifications.evaluationCompleteNoUpdates"),2)}}}function Ok(e){const{sessionId:t}=e,{refreshChatsNow:n,updateSession:r}=e.ctx;return{onSessionTitleUpdated:s=>{Eu(s,Z.getState())},onSessionPinnedUpdated:s=>{Eu(s,Z.getState())},onPlanModeEntered:s=>{const o=s.session_id||t,a=xk(s);if(!a){n();return}r(o,{planMode:a})},onPlanModeExited:s=>{const o=s.session_id||t;r(o,{planMode:null}),n()},onGoalStatusChanged:s=>{const o=s.session_id||t,a=s.goal_state??null,i=Z.getState().chats.find(c=>c.id===o);if(!i){n();return}r(o,{config:{...i.config||{},goalState:a}})},onPlanFileUpdated:s=>{const o=s.session_id||t,a=Z.getState().chats.find(c=>c.id===o),i=a==null?void 0:a.planMode;i?r(o,{planMode:{...i,plan_file_path:s.plan_file_path??i.plan_file_path??null,status:s.status==="exploring"||s.status==="designing"||s.status==="reviewing"||s.status==="finalizing"||s.status==="awaiting_approval"?s.status:i.status}}):n()}}}function $k(e){const{scheduleParentSettleCheck:t}=e,{applyChildProgress:n,ensureTaskListBaseline:r,flushChildPreview:s,persistSessionTitle:o,refreshChatsNow:a,scheduleChildPreviewFlush:i,setEvaluationState:c,setTaskList:d,updateTaskListDelta:f,backgroundChildrenByParentRef:p,lastChildHeartbeatAtRef:v,lastChildRoundCountRef:g,pendingChildPreviewRef:w}=e.ctx;return{onSubAgentStarted:(m,x,k)=>{const C=p.current.get(m)??{children:new Set,parentDone:!1},E=new Set(C.children);E.add(x),p.current.set(m,{children:E,parentDone:C.parentDone}),n(m,x,{title:k,status:"pending",lastEventAt:new Date().toISOString()}),k&&k.trim()&&o(x,k).catch(T=>{console.warn(`[useAgentEventSubscription] Failed to persist sub-agent title for ${x}:`,T)}),a()},onSubAgentEvent:(m,x,k)=>{var E;if(k.type==="task_list_updated"&&k.task_list){const T=k.task_list.session_id||m;d(T,k.task_list);return}if(k.type==="task_list_item_progress"){const T=k.session_id||m;if(typeof k.item_id=="string"&&pk(k.status)&&typeof k.tool_calls_count=="number"&&typeof k.version=="number"){if(!Z.getState().taskLists[T]){r(T);return}f(T,{session_id:T,item_id:k.item_id,status:k.status,tool_calls_count:k.tool_calls_count,version:k.version})}return}if(k.type==="task_evaluation_started"){const T=k.session_id||m;c(T,{isEvaluating:!0,reasoning:null,timestamp:Date.now()});return}if(k.type==="task_evaluation_completed"){const T=k.session_id||m,P=k.updates_count??0;c(T,{isEvaluating:!1,reasoning:P>0?Qy(k.reasoning??""):null,timestamp:Date.now()});return}const C=(E=Ul(m)(Z.getState()))==null?void 0:E[x];if(!Xh(C==null?void 0:C.status)){if(k.type==="runner_progress"){const T=typeof k.round_count=="number"?k.round_count:C==null?void 0:C.roundCount,P=`${m}:${x}`;if(typeof T=="number"&&g.current.get(P)===T)return;typeof T=="number"&&g.current.set(P,T),n(m,x,{status:"running",roundCount:T,lastEventAt:new Date().toISOString()});return}if(k.type==="token"&&typeof k.content=="string"){const T=`${m}:${x}`,P=w.current.get(T),A=fk(m,x),$=(((P==null?void 0:P.content)??A.outputPreview??(C==null?void 0:C.outputPreview)??"")+k.content).slice(-vk);Jy(m,x,$),i(m,x,$,new Date().toISOString())}else n(m,x,{status:"running",lastEventAt:new Date().toISOString()})}},onSubAgentHeartbeat:(m,x,k)=>{if(Xh(bk(m,x)))return;const C=`${m}:${x}`,E=v.current.get(C)??0,T=Date.parse(k||"")||Date.now();T-E<gk||(v.current.set(C,T),n(m,x,{status:"running",lastHeartbeatAt:k}))},onSubAgentCompleted:(m,x,k,C)=>{const E=p.current.get(m)??{children:new Set,parentDone:!1},T=new Set(E.children);T.delete(x),p.current.set(m,{children:T,parentDone:E.parentDone}),s(m,x),dk(m,x);const P=`${m}:${x}`;v.current.delete(P),g.current.delete(P),n(m,x,{status:k,error:C,lastEventAt:new Date().toISOString()}),E.parentDone&&T.size===0&&t(),a()}}}function Lk(e,t){var Me;const{addMessage:n,applyAgentEvent:r,updateMessage:s,refreshChatsNow:o,setPendingQuestion:a,clearPendingQuestion:i,cleanupChat:c,clearReconnect:d,clearParentSettleTimer:f,clearTitleRefreshRetry:p,restart:v,agentClientRef:g,parentSettleTimersRef:w,titleRefreshRetryTimersRef:m,subscriptionsBySessionRef:x,streamingStateBySessionRef:k,backgroundChildrenByParentRef:C,reconnectStateBySessionRef:E}=t,T=Z.getState(),P=Ct(e)(T)??0,A=(Me=T.executionBySession)==null?void 0:Me[e];ke("[SSE]","startSubscription",{sessionId:e,generation:P,phase:(A==null?void 0:A.phase)??null,backendRunId:(A==null?void 0:A.backendRunId)??null,shouldObserve:Vn(e)(T)}),d(e),p(e);const O=new AbortController;x.current.set(e,{sessionId:e,controller:O,generation:P,streamEnded:!1});const $=`streaming-${e}`,U=`streaming-reasoning-${e}`,J=`streaming-status-${e}`,ee=Wh(e),I=Et.getLatest(J);k.current.set(e,{sessionId:e,messageId:$,content:ee.content,reasoningMessageId:U,reasoningContent:ee.reasoningContent,statusMessageId:J,status:I??""});const Y=F=>{const L=k.current.get(e);if(!L)return;const fe=(F??"").trim();if(!fe){if(!L.status)return;L.status="",Et.clear(L.sessionId,L.statusMessageId);return}L.status!==fe&&(L.status=fe,Et.publish({sessionId:L.sessionId,messageId:L.statusMessageId,content:L.status}))},z=()=>{var Ge;const F=E.current.get(e),L=(F==null?void 0:F.attempt)??0,fe=Math.min(5e3,250*Math.pow(2,L)),Se=Z.getState(),De=(Ge=Se.executionBySession)==null?void 0:Ge[e];ke("[SSE]","scheduleReconnect",{sessionId:e,generation:P,attempt:L,delayMs:fe,phase:(De==null?void 0:De.phase)??null,backendRunId:(De==null?void 0:De.backendRunId)??null,shouldObserve:Vn(e)(Se),terminalEventSeen:D}),c(e,{clearDraft:!1});const We=setTimeout(()=>{var xt,Fe,lt,_t,Qt;E.current.delete(e);const He=Z.getState();if(!Vn(e)(He)){ke("[SSE]","scheduleReconnect.skipNotBusy",{sessionId:e,generation:P,phase:((Fe=(xt=He.executionBySession)==null?void 0:xt[e])==null?void 0:Fe.phase)??null,backendRunId:((_t=(lt=He.executionBySession)==null?void 0:lt[e])==null?void 0:_t.backendRunId)??null});return}const St=He.chats.find(At=>At.id===e),Ot=(Qt=St==null?void 0:St.id)==null?void 0:Qt.trim();if(!Ot){ke("[SSE]","scheduleReconnect.skipMissingSession",{sessionId:e,generation:P});return}ke("[SSE]","scheduleReconnect.restart",{sessionId:Ot,generation:P}),v(Ot)},fe);E.current.set(e,{attempt:L+1,timer:We})};let D=!1,ie=!1;const Q=()=>{const F=Z.getState();if((Ct(e)(F)??0)!==P||Vn(e)(F))return!1;const fe=F.chats.find(Se=>Se.id===e);return!fe||fe.isRunning?!1:Mk(fe.title)&&(fe.titleVersion??0)===0},ue=()=>{if(!Q()){p(e);return}const F=m.current.get(e),L=(F==null?void 0:F.attempt)??0;if(L>=Yh.length){p(e);return}p(e);const fe=Yh[L],Se=setTimeout(()=>{m.current.delete(e),(async()=>{if(!Q()){p(e);return}try{await o()}catch(De){console.warn(`[useAgentEventSubscription] Title refresh retry failed for session ${e}:`,De)}finally{Q()?ue():p(e)}})()},fe);m.current.set(e,{attempt:L+1,timer:Se})},me=()=>{const F=x.current.get(e);!F||F.controller!==O||F.streamEnded||(F.streamEnded=!0,ps("markStreamEnded",e,"generation:",F.generation,"terminal:",D))},V=()=>{const F=C.current.get(e);return((F==null?void 0:F.children.size)??0)>0},ae=()=>D&&!V(),ve=()=>{const F=x.current.get(e);F&&(Et.clear(e,`streaming-${e}`),Et.clear(e,`streaming-reasoning-${e}`),Et.clear(e,`streaming-status-${e}`),Wu(e),k.current.delete(F.sessionId))},re=async()=>{f(e);try{await o()}catch(We){console.warn(`[useAgentEventSubscription] High-priority refresh failed while settling parent ${e}:`,We)}const F=C.current.get(e)??{children:new Set,parentDone:!1};if(!F.parentDone||F.children.size>0)return;const L=x.current.get(e);if(L&&(L.controller!==O||L.generation!==P))return;const Se=Z.getState().chats.find(We=>We.id===e);if(!!(Se!=null&&Se.isRunning)){p(e);return}Q()?ue():p(e),c(e,{clearDraft:!0})},le=()=>{f(e);const F=setTimeout(()=>{w.current.delete(e),re()},Pk);w.current.set(e,F)},de=()=>{const F=C.current.get(e)??{children:new Set},L=new Set(F.children);if(C.current.set(e,{children:L,parentDone:!0}),L.size===0){le();return}ve()},pe={ctx:t,sessionId:e,generation:P,setStreamingStatus:Y,scheduleParentSettleCheck:le},Ae=g.current;Ae&&Ae.subscribeToEvents(e,{...Rk(pe),...Ak(pe),...jk(pe),...Ik(pe),...Ok(pe),...$k(pe),onComplete:()=>{if(ie){D=!0,Y(null),Et.forceFlush();return}D=!0,r(e,{type:"complete"},P);const F=O,L=()=>{const fe=x.current.get(e);return fe!=null&&(fe.controller!==F||fe.generation!==P)};(async()=>{var at,St,Ot;if(Y(null),Et.forceFlush(),i(e),L())return;const fe=k.current.get(e),Se=Wh(e),De=Se.content||(fe==null?void 0:fe.content)||"",We=Se.reasoningContent||(fe==null?void 0:fe.reasoningContent)||"",Ge=De.trim().length>0,He=We.trim().length>0;if(Ge||He){const xt=Z.getState().chats.find(Qt=>Qt.id===e),Fe=(at=xt==null?void 0:xt.messages)==null?void 0:at[xt.messages.length-1],lt=typeof((St=Fe==null?void 0:Fe.metadata)==null?void 0:St.reasoning)=="string"?Fe.metadata.reasoning:"";(Fe==null?void 0:Fe.role)==="assistant"&&(Fe==null?void 0:Fe.type)==="text"&&typeof(Fe==null?void 0:Fe.content)=="string"&&Fe.content===De&&lt===We||await n(e,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:De,createdAt:new Date().toISOString(),metadata:{sessionId:e,model:"agent",...He?{reasoning:We}:{}}})}if(!L()&&(await Z.getState().loadChatHistory(e,{mode:"monotonic",retries:4,retryDelayMs:200,waitForAssistant:!0}),!L())){if(He){const xt=Z.getState().chats.find(_t=>_t.id===e),Fe=[...(xt==null?void 0:xt.messages)||[]].reverse().find(_t=>(_t==null?void 0:_t.role)==="assistant"&&(_t==null?void 0:_t.type)==="text"),lt=typeof((Ot=Fe==null?void 0:Fe.metadata)==null?void 0:Ot.reasoning)=="string"&&Fe.metadata.reasoning.trim().length>0;Fe!=null&&Fe.id&&!lt&&s(e,Fe.id,{metadata:{...Fe.metadata||{},reasoning:We}})}L()||de()}})().catch(fe=>{console.warn(`[useAgentEventSubscription] Completion finalization failed for session ${e}:`,fe),L()||de()})},onCancelled:async F=>{D=!0,r(e,{type:"cancelled",message:F},P),Y(null),i(e),de()},onError:async F=>{D=!0,r(e,{type:"error",message:F},P),Y(null);try{const L=Uu(F)?qu(F):F;await n(e,{id:`error-${Date.now()}`,role:"assistant",type:"text",content:`❌ **Error**: ${L}`,createdAt:new Date().toISOString(),finishReason:"error"})}catch(L){console.warn(`[useAgentEventSubscription] Failed to append error message for session ${e}:`,L)}finally{de()}},onNeedClarification:F=>{const L=F.session_id||e;L===e&&(ie=!0),ps("event.needClarification",{sessionId:e,targetSessionId:L,subscriptionGeneration:P,currentStoreGeneration:Ct(L)(Z.getState()),toolCallId:F.tool_call_id??null,questionPreview:(F.question||"").slice(0,120)}),a(L,{question:F.question||"",options:F.options||[],allowCustom:F.allow_custom??!0,toolCallId:F.tool_call_id??null})},onNotification:F=>{const L=Tk(F.category)||F.title||"";kk({title:L,body:F.body||""})},onExecutionStarted:(F,L)=>{ke("[SSE]","event.executionStarted",{sessionId:e,generation:P,runId:F}),ps("event.executionStarted.compareGeneration",{sessionId:e,subscriptionGeneration:P,currentStoreGeneration:Ct(e)(Z.getState()),runId:F}),r(e,{type:"execution_started",run_id:F},P)},onRunnerProgress:()=>{}},O).then(()=>{var fe,Se,De,We,Ge,He,at,St;if(me(),ps("streamEnded",e,"generation:",P,"aborted:",O.signal.aborted,"terminal:",D),ke("[SSE]","streamEnded",{sessionId:e,generation:P,aborted:O.signal.aborted,terminalEventSeen:D,shouldSkipReconnectAfterTerminal:ae(),phase:((Se=(fe=Z.getState().executionBySession)==null?void 0:fe[e])==null?void 0:Se.phase)??null,backendRunId:((We=(De=Z.getState().executionBySession)==null?void 0:De[e])==null?void 0:We.backendRunId)??null}),O.signal.aborted||ae())return;const F=x.current.get(e);if(F&&(F.controller!==O||F.generation!==P))return;const L=Vn(e)(Z.getState());if(ke("[SSE]","streamEnded.busyCheck",{sessionId:e,generation:P,stillBusy:L,phase:((He=(Ge=Z.getState().executionBySession)==null?void 0:Ge[e])==null?void 0:He.phase)??null,backendRunId:((St=(at=Z.getState().executionBySession)==null?void 0:at[e])==null?void 0:St.backendRunId)??null}),!L){c(e,{clearDraft:!0});return}z()}).catch(F=>{var Se,De,We,Ge,He,at,St,Ot;if(me(),ke("[SSE]","streamError",{sessionId:e,generation:P,aborted:O.signal.aborted,terminalEventSeen:D,error:F,phase:((De=(Se=Z.getState().executionBySession)==null?void 0:Se[e])==null?void 0:De.phase)??null,backendRunId:((Ge=(We=Z.getState().executionBySession)==null?void 0:We[e])==null?void 0:Ge.backendRunId)??null}),O.signal.aborted)return;if(hk(F)){if(ae())return;const xt=Vn(e)(Z.getState());if(ke("[SSE]","streamError.abortError.busyCheck",{sessionId:e,generation:P,stillBusy:xt,phase:((at=(He=Z.getState().executionBySession)==null?void 0:He[e])==null?void 0:at.phase)??null,backendRunId:((Ot=(St=Z.getState().executionBySession)==null?void 0:St[e])==null?void 0:Ot.backendRunId)??null}),!xt){c(e,{clearDraft:!0});return}z();return}if(ae())return;console.error("[useAgentEventSubscription] Subscription error:",F),c(e,{clearDraft:!0});const L=Ct(e)(Z.getState()),fe=Vn(e)(Z.getState());L===P&&fe&&r(e,{type:"error",message:String(F)},P)})}function Dk(){const{message:e}=Tn.useApp(),{addMessage:t,applyAgentEvent:n,markStreamStarted:r,updateTokenUsage:s,setTruncationInfo:o,updateSession:a,updateMessage:i,setTaskList:c,loadTaskList:d,updateTaskListDelta:f,setEvaluationState:p,applyChildProgress:v,persistSessionTitle:g,refreshChatsNow:w,setPendingQuestion:m,clearPendingQuestion:x}=Z(Da(F=>({addMessage:F.addMessage,applyAgentEvent:F.applyAgentEvent,markStreamStarted:F.markStreamStarted,updateTokenUsage:F.updateTokenUsage,setTruncationInfo:F.setTruncationInfo,updateSession:F.updateSession,updateMessage:F.updateMessage,setTaskList:F.setTaskList,loadTaskList:F.loadTaskList,updateTaskListDelta:F.updateTaskListDelta,setEvaluationState:F.setEvaluationState,applyChildProgress:F.applyChildProgress,persistSessionTitle:F.persistSessionTitle,refreshChatsNow:F.refreshChatsNow,setPendingQuestion:F.setPendingQuestion,clearPendingQuestion:F.clearPendingQuestion}))),k=S.useRef(null);k.current||(k.current=wk());const C=S.useRef(new Set),E=S.useRef(new Map),T=S.useRef(new Map),P=S.useRef(new Map),A=S.useRef(new Map),O=S.useRef(new Map),$=S.useRef(new Map),U=S.useRef(new Map),J=S.useRef(new Map),ee=S.useRef(new Map),I=S.useRef(new Map),Y=S.useRef(new Map),z=S.useRef(new Map),D=S.useRef(new Set),ie=S.useRef(new Map),Q=S.useCallback(F=>{const L=ie.current.get(F);L!=null&&L.timer&&clearTimeout(L.timer),ie.current.delete(F)},[]),ue=S.useCallback(F=>{const L=E.current.get(F);L&&(clearTimeout(L),E.current.delete(F))},[]),me=S.useCallback(F=>{const L=T.current.get(F);L!=null&&L.timer&&clearTimeout(L.timer),T.current.delete(F)},[]),V=S.useCallback((F,L)=>{var Ge;const fe=Z.getState(),Se=(Ge=fe.executionBySession)==null?void 0:Ge[F];ke("[SSE]","cleanupChat",{sessionId:F,opts:L??null,generation:(Se==null?void 0:Se.generation)??null,phase:(Se==null?void 0:Se.phase)??null,backendRunId:(Se==null?void 0:Se.backendRunId)??null,shouldObserve:Vn(F)(fe)}),Q(F),ue(F),L!=null&&L.clearTitleRetry&&me(F),D.current.delete(F),A.current.delete(F);for(const[He,at]of I.current.entries())He.startsWith(`${F}:`)&&(at.timer&&clearTimeout(at.timer),I.current.delete(He));const De=O.current.get(F);if(!De){L!=null&&L.clearDraft&&(Et.clear(F,`streaming-${F}`),Et.clear(F,`streaming-reasoning-${F}`),Et.clear(F,`streaming-status-${F}`),Wu(F),Uh(F),qh(F));return}O.current.delete(F),De.controller.abort(),Et.forceFlush();const We=$.current.get(De.sessionId);We?(L!=null&&L.clearDraft&&(Et.clear(We.sessionId,We.messageId),Et.clear(We.sessionId,We.reasoningMessageId),Et.clear(We.sessionId,We.statusMessageId)),$.current.delete(De.sessionId)):L!=null&&L.clearDraft&&(Et.clear(F,`streaming-${F}`),Et.clear(F,`streaming-reasoning-${F}`),Et.clear(F,`streaming-status-${F}`)),L!=null&&L.clearDraft&&(Wu(F),Uh(F),qh(F))},[ue,Q,me]),ae=S.useCallback((F,L)=>{const fe=`${F}:${L}`,Se=I.current.get(fe);Se&&(Se.timer&&clearTimeout(Se.timer),I.current.delete(fe),Jy(F,L,Se.content),v(F,L,{status:"running",outputPreview:Se.content,lastEventAt:Se.lastEventAt}))},[v]),ve=S.useCallback((F,L,fe,Se)=>{const De=`${F}:${L}`,We=I.current.get(De);We!=null&&We.timer&&clearTimeout(We.timer);const Ge=setTimeout(()=>{ae(F,L)},yk);I.current.set(De,{content:fe,lastEventAt:Se,timer:Ge})},[ae]),re=S.useCallback(async F=>{const L=F.trim();if(L&&!C.current.has(L)&&!Z.getState().taskLists[L]){C.current.add(L);try{await d(L)}catch(fe){console.warn(`[useAgentEventSubscription] Failed to recover task list baseline for ${L}:`,fe)}finally{C.current.delete(L)}}},[d]),le=S.useCallback((F,L,fe,Se)=>{var at,St;const De=Sk(F,L,fe,Se);if(P.current.get(F)===De)return!1;const Ge=(at=Z.getState().executionBySession)==null?void 0:at[F],He=(Ge==null?void 0:Ge.phase)==="waiting_user_answer"||((St=Ge==null?void 0:Ge.interaction)==null?void 0:St.pendingQuestion)!=null;return P.current.set(F,De),!He},[]),de=S.useCallback((F,L)=>{A.current.get(F)!==L&&(A.current.set(F,L),r(F,L))},[r]),pe=S.useCallback(F=>{Lk(F,{addMessage:t,applyAgentEvent:n,updateTokenUsage:s,setTruncationInfo:o,updateSession:a,updateMessage:i,setTaskList:c,updateTaskListDelta:f,setEvaluationState:p,applyChildProgress:v,persistSessionTitle:g,refreshChatsNow:w,setPendingQuestion:m,clearPendingQuestion:x,message:e,cleanupChat:V,clearReconnect:Q,clearParentSettleTimer:ue,clearTitleRefreshRetry:me,ensureTaskListBaseline:re,shouldShowTaskListCompletedNotice:le,markStreamStartedOnce:de,flushChildPreview:ae,scheduleChildPreviewFlush:ve,restart:pe,agentClientRef:k,parentSettleTimersRef:E,titleRefreshRetryTimersRef:T,subscriptionsBySessionRef:O,streamingStateBySessionRef:$,backgroundChildrenByParentRef:U,lastChildHeartbeatAtRef:J,lastChildRoundCountRef:ee,pendingChildPreviewRef:I,toolNamesByCallIdRef:Y,toolCallMessageIdByCallIdRef:z,reconnectStateBySessionRef:ie})},[t,V,ue,x,Q,me,re,e,le,g,w,p,m,n,de,c,o,i,a,f,s,v,ae,ve]),Ae=S.useCallback(F=>{const L=F.trim();if(!L)return;D.current.delete(L);const fe=O.current.get(L),Se=Ct(L)(Z.getState()),De=fe&&fe.generation!==Se;if(ps("ensureSubscription.check",{sessionId:L,existingGeneration:(fe==null?void 0:fe.generation)??null,currentGeneration:Se,hasExisting:!!fe,aborted:(fe==null?void 0:fe.controller.signal.aborted)??null,streamEnded:(fe==null?void 0:fe.streamEnded)??null,generationMismatch:De}),(fe==null?void 0:fe.sessionId)===L&&!fe.controller.signal.aborted&&!fe.streamEnded&&!De){ps("skipExistingSubscription",L,"generation:",fe.generation,"streamEnded:",fe.streamEnded);return}fe&&(ps("restartStaleSubscription",L,"generation:",fe.generation,"currentGeneration:",Se,"aborted:",fe.controller.signal.aborted,"streamEnded:",fe.streamEnded,"generationMismatch:",De),V(L,{clearDraft:!1})),pe(L)},[V,pe]),Me=Z(Da(F=>Object.entries(F.executionBySession).filter(([L])=>Vn(L)(F)).map(([L,fe])=>{const Se=fe.phase==="starting"?"starting":fe.phase==="settling"?"settling":"live";return`${L}\0${fe.generation}\0${Se}`}).sort()));S.useEffect(()=>{const F=Me.map(fe=>{const Se=fe.indexOf("\0");return Se>=0?fe.slice(0,Se):fe}),L=new Set(F);ke("[SSE]","effect.busySessions",{busySessionIds:F}),F.forEach(fe=>Ae(fe));for(const fe of Array.from(O.current.keys()))L.has(fe)||V(fe,{clearDraft:!0});for(const fe of Array.from(D.current))L.has(fe)||D.current.delete(fe)},[Me,Ae,V]),S.useEffect(()=>Z.subscribe(F=>F.chats,()=>{if(D.current.size!==0)for(const F of Array.from(D.current)){if(!Vn(F)(Z.getState())){D.current.delete(F);continue}Ae(F)}}),[Ae]),S.useEffect(()=>{const F=O.current;return()=>{const L=Array.from(F.keys());for(const fe of L)V(fe,{clearDraft:!0,clearTitleRetry:!0})}},[V])}const jr=(e,t,n)=>Math.max(t,Math.min(n,e)),Li=(e,t)=>t==="horizontal"?e.clientWidth:e.clientHeight,Di=(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}},Yd=({layout:e,first:t,second:n,sizesPx:r,defaultSplitRatio:s=.5,minFirstPx:o=0,minSecondPx:a=0,handleSizePx:i=6,disabled:c=!1,onResizeEnd:d,style:f,className:p})=>{const v=S.useRef(null),g=S.useRef(null),[w,m]=S.useState(null),[x,k]=S.useState(0),[C,E]=S.useState(null),T=S.useMemo(()=>{if(!r)return null;const re=Number(r[0]);return Number.isFinite(re)?re:null},[r]),P=S.useMemo(()=>{if(!r)return null;const re=Number(r[1]);return Number.isFinite(re)?re:null},[r]),A=S.useMemo(()=>{if(!r)return null;const re=Number(r[0]),le=Number(r[1]);if(!Number.isFinite(re)||!Number.isFinite(le))return null;const de=re+le;return de<=0||re<=0||le<=0?null:jr(re/de,0,1)},[r]),O=S.useMemo(()=>T===null||P===null?null:P<=0?Math.max(0,T):null,[T,P]),$=S.useMemo(()=>T===null||P===null?null:P>0&&T<=0?P:null,[T,P]);S.useLayoutEffect(()=>{const re=v.current;re&&k(Li(re,e))},[e]),S.useEffect(()=>{const re=v.current;if(!re)return;const le=()=>{const de=Li(re,e);k(pe=>pe===de?pe:de)};if(le(),typeof ResizeObserver<"u"){const de=new ResizeObserver(le);return de.observe(re),()=>de.disconnect()}return window.addEventListener("resize",le),()=>window.removeEventListener("resize",le)},[e]),S.useEffect(()=>{if(A!==null){E(A);return}E(re=>re??jr(s,.1,.9))},[s,A]);const U=S.useMemo(()=>Di(x,o,a),[x,o,a]),J=jr(s,.1,.9),ee=C??J,I=x>0?Math.round(x*ee):null,Y=w??(A!==null?I:null)??O??($!==null&&x>0?x-$:null)??I??0,z=x>0?jr(Y,U.minFirst,U.maxFirst):Math.max(0,Math.round(Y)),D=S.useCallback(re=>{if(c)return;const le=v.current;if(!le)return;re.preventDefault(),re.stopPropagation();const de=e==="horizontal"?re.clientX:re.clientY,pe=Li(le,e),Ae=Di(pe,o,a),Me=jr(z||Math.round(pe*J),Ae.minFirst,Ae.maxFirst);g.current={pointerId:re.pointerId,startPos:de,startFirstPx:Me,containerSize:pe};try{re.currentTarget.setPointerCapture(re.pointerId)}catch{}},[c,z,J,e,o,a]),ie=S.useCallback(re=>{const le=g.current;if(!le||re.pointerId!==le.pointerId)return;re.preventDefault(),re.stopPropagation();const pe=(e==="horizontal"?re.clientX:re.clientY)-le.startPos,Ae=le.containerSize,Me=Di(Ae,o,a),F=jr(Math.round(le.startFirstPx+pe),Me.minFirst,Me.maxFirst);m(F)},[e,o,a]),Q=S.useCallback(re=>{const le=g.current;if(!le||le.pointerId!==re)return;const de=v.current,pe=de?Li(de,e):le.containerSize,Ae=w??le.startFirstPx,Me=Di(pe,o,a),F=jr(Ae,Me.minFirst,Me.maxFirst),L=Math.max(0,pe-F);m(null),pe>0&&E(jr(F/pe,0,1)),g.current=null,d==null||d([F,L])},[e,w,o,a,d]),ue=S.useCallback(re=>{re.preventDefault(),re.stopPropagation(),Q(re.pointerId)},[Q]),me=S.useCallback(re=>{re.preventDefault(),re.stopPropagation(),Q(re.pointerId)},[Q]),V=e==="horizontal",ae=c?"default":V?"col-resize":"row-resize",ve=Math.max(0,Math.round(i));return l.jsxs("div",{ref:v,className:p,style:{display:"flex",flexDirection:V?"row":"column",height:"100%",minHeight:0,minWidth:0,width:"100%",position:"relative",...f},children:[l.jsx("div",{style:{flex:`0 0 ${z}px`,minWidth:V?U.appliedMinFirst:0,minHeight:V?0:U.appliedMinFirst,overflow:"hidden",display:"flex"},children:l.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:t})}),l.jsx("div",{style:{flex:"1 1 auto",minWidth:V?U.appliedMinSecond:0,minHeight:V?0:U.appliedMinSecond,overflow:"hidden",display:"flex"},children:l.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:n})}),ve>0?l.jsx("div",{role:"separator","aria-orientation":V?"vertical":"horizontal",onPointerDown:D,onPointerMove:ie,onPointerUp:ue,onPointerCancel:me,style:{position:"absolute",top:V?0:`${z-ve/2}px`,left:V?`${z-ve/2}px`:0,width:V?`${ve}px`:"100%",height:V?"100%":`${ve}px`,cursor:ae,touchAction:"none",background:"transparent",zIndex:5}}):null]})},Hu="chat-toggle-batch-export-selection",Xu="chat-open-inspector",Tl="chat-focus-input",Yu="chat-pending-question-resolved",Pl=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp"],Kh=10*1024*1024,Fk=2048,Nk=2048,zk=.82,Bk=512*1024,Wk=e=>Pl.includes(e.type)?e.size>Kh?{isValid:!1,error:`Image size too large: ${(e.size/1024/1024).toFixed(2)}MB. Maximum size: ${Kh/1024/1024}MB`}:{isValid:!0}:{isValid:!1,error:`Unsupported image type: ${e.type}. Supported types: ${Pl.join(", ")}`},Uk=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}),Vh=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)}),qk=e=>URL.createObjectURL(e),Hk=(e,t,n,r)=>{let{width:s,height:o}=t;if(s>n||o>r){const i=s/o;s>o?(s=n,o=Math.round(s/i)):(o=r,s=Math.round(o*i))}e.width=s,e.height=o;const a=e.getContext("2d");a&&(a.fillStyle="#ffffff",a.fillRect(0,0,s,o),a.drawImage(t,0,0,s,o))},Xk=async(e,t)=>{const n=await Uk(e),r=document.createElement("canvas");return Hk(r,n,Fk,Nk),Vk(r,t)},Yk=async e=>{const t=Wk(e);if(!t.isValid)throw new Error(t.error);const n=qk(e);try{let r;if(e.type==="image/gif"||e.size<Bk)r=await Vh(e);else try{r=await Xk(n,zk)}catch(o){console.warn("[imageUtils] Failed to re-encode image, using original:",o),r=await Vh(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 Zy(n),r}},Kk=async e=>{const t=Array.from(e),n=[];for(const r of t)try{const s=await Yk(r);n.push(s)}catch(s){console.error(`Failed to process image ${r.name}:`,s)}return n},Vk=(e,t=.8)=>e.toDataURL("image/jpeg",t),Zy=e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e)},Gh=e=>{e.forEach(t=>Zy(t.preview))},Gk=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]},Jk=e=>!e.files||e.files.length===0?!1:Array.from(e.files).some(t=>Pl.includes(t.type)),Qk=e=>e.files?Array.from(e.files).filter(t=>Pl.includes(t.type)):[],{Text:Zk,Title:eT}=ot,tT=({visible:e,images:t,currentIndex:n=0,onClose:r,onDownload:s})=>{const{token:o}=st.useToken(),{t:a}=qe(),[i,c]=S.useState(n);if(!t||t.length===0)return null;const d=t[i],f=()=>{if(s&&d)s(d);else{const g=document.createElement("a");g.href=d.base64,g.download=d.name,document.body.appendChild(g),g.click(),document.body.removeChild(g)}},p=()=>{c(g=>g>0?g-1:t.length-1)},v=()=>{c(g=>g<t.length-1?g+1:0)};return l.jsxs(Zi,{open:e,onCancel:r,footer:null,width:"90vw",style:{top:20},styles:{body:{padding:0,height:"80vh",display:"flex",flexDirection:"column"}},closeIcon:l.jsx(ks,{style:{color:o.colorTextLightSolid}}),children:[l.jsx("div",{style:{padding:o.paddingMD,borderBottom:`1px solid ${o.colorBorder}`,background:o.colorBgContainer},children:l.jsxs("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[l.jsxs("div",{children:[l.jsx(eT,{level:5,style:{margin:0},children:d.name}),l.jsxs(Zk,{type:"secondary",style:{fontSize:o.fontSizeSM},children:[Gk(d.size)," • ",d.type,t.length>1&&` • ${a("chat.imagePreview.counter",{current:i+1,total:t.length})}`]})]}),l.jsxs(ze,{children:[t.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(Ee,{icon:l.jsx(Cu,{}),onClick:p,disabled:t.length<=1}),l.jsx(Ee,{icon:l.jsx(bs,{}),onClick:v,disabled:t.length<=1})]}),l.jsx(Ee,{icon:l.jsx(to,{}),onClick:f,children:a("common.download")})]})]})}),l.jsxs("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center",background:o.colorBgLayout,position:"relative",overflow:"hidden"},children:[t.length===1?l.jsx("img",{src:d.preview,alt:d.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}}):l.jsx(jw,{dots:!1,arrows:!0,infinite:!0,afterChange:c,style:{width:"100%",height:"100%"},children:t.map(g=>l.jsx("div",{children:l.jsx("div",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:l.jsx("img",{src:g.preview,alt:g.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}})})},g.id))}),t.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(Ee,{type:"primary",shape:"circle",icon:l.jsx(Cu,{}),onClick:p,style:{position:"absolute",left:20,top:"50%",transform:"translateY(-50%)",zIndex:10}}),l.jsx(Ee,{type:"primary",shape:"circle",icon:l.jsx(bs,{}),onClick:v,style:{position:"absolute",right:20,top:"50%",transform:"translateY(-50%)",zIndex:10}})]})]}),t.length>1&&l.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((g,w)=>l.jsx("div",{style:{minWidth:60,height:60,border:w===i?`2px solid ${o.colorPrimary}`:`1px solid ${o.colorBorder}`,borderRadius:o.borderRadius,overflow:"hidden",cursor:"pointer",opacity:w===i?1:.7},onClick:()=>c(w),children:l.jsx("img",{src:g.preview,alt:g.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},g.id))})]})},Oo=e=>/\s/.test(e),nT=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]:"",a=s==="/"&&(r===0||Oo(o)),i=s==="@"&&(r===0||Oo(o));if(!a&&!i){let f=r;for(;r<n&&!((e[r]==="/"||e[r]==="@")&&(r===0||Oo(e[r-1])));)r+=1;t.push({text:e.slice(f,r),type:"text"});continue}let c=r+1;for(;c<n&&!Oo(e[c]);)c+=1;const d=e.slice(r,c);a?c===n||Oo(e[c])?t.push({text:d,type:"workflow"}):t.push({text:d,type:"text"}):i&&t.push({text:d,type:"file"}),r=c}return t.length>0?t:[{text:"",type:"text"}]},rT=/(\/)([a-zA-Z0-9_-]*)$/,sT=e=>{if(!e)return{command:null,isTriggerActive:!1,searchText:""};const t=e.match(rT);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}},oT=/@([a-zA-Z0-9._\-\/\\]*)$/,aT=e=>{if(!e)return{isTriggerActive:!1,searchText:"",tokenStart:null};const t=e.match(oT);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}},iT=(e,t=80)=>{const[n,r]=S.useState(e);return S.useEffect(()=>{const s=window.setTimeout(()=>{r(e)},t);return()=>{window.clearTimeout(s)}},[e,t]),n},{Text:lT}=ot,cT=({visible:e,token:t})=>{const{t:n}=qe();return e?l.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:l.jsxs(ze,{direction:"vertical",align:"center",children:[l.jsx(Iw,{style:{fontSize:32,color:t.colorPrimary}}),l.jsx(lT,{style:{color:t.colorPrimary,fontWeight:500},children:n("chat.input.dropImagesHere")})]})}):null},{Text:Jh}=ot,uT=({images:e,token:t,allowImages:n,onPreview:r,onClear:s})=>{const{t:o}=qe();return!n||e.length===0?null:l.jsx("div",{style:{marginBottom:t.marginSM,padding:`${t.paddingXXS}px ${t.paddingXS}px`,borderRadius:999,border:`1px solid ${t.colorBorderSecondary}`,background:t.colorFillSecondary},children:l.jsxs(we,{align:"center",wrap:"wrap",gap:t.marginXS,children:[l.jsx(Jh,{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(a=>l.jsx("div",{style:{position:"relative",width:32,height:32,borderRadius:999,overflow:"hidden",border:`1px solid ${t.colorBorderSecondary}`,cursor:"pointer"},onClick:()=>r(a),children:l.jsx("img",{src:a.preview,alt:a.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},a.id)),e.length>3&&l.jsx(Jh,{type:"secondary",style:{fontSize:t.fontSizeSM},children:o("chat.input.moreImages",{count:e.length-3})}),l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(ks,{}),onClick:s,style:{marginLeft:"auto",minWidth:"auto",padding:"0 4px",height:24},title:o("chat.input.clearAllImages")})]})})},{TextArea:dT}=Ts,fT=({value:e,placeholder:t,disabled:n,token:r,highlightSegments:s,textAreaRef:o,highlightOverlayRef:a,onChange:i,onKeyDown:c,onPaste:d,onScrollSync:f})=>{const p=e.length>0&&s.some(m=>m.type!=="text"),v="6px 4px",g=1.65,w=n?r.colorTextDisabled:r.colorText;return l.jsxs("div",{style:{position:"relative",flex:1},children:[p?l.jsxs("div",{ref:a,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,padding:v,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflow:"hidden",pointerEvents:"none",color:"transparent",fontSize:r.fontSize,lineHeight:g,fontFamily:"inherit",fontWeight:400,letterSpacing:"normal",transform:"translate(0, 0)",zIndex:0},children:[s.map((m,x)=>{let k;return m.type==="workflow"?k={backgroundColor:r.colorPrimaryBg,color:"transparent",WebkitTextFillColor:"transparent",fontWeight:400,textDecoration:"underline",textDecorationStyle:"dotted",textDecorationColor:r.colorPrimary}:m.type==="file"&&(k={backgroundColor:r.colorSuccessBg,color:"transparent",WebkitTextFillColor:"transparent"}),l.jsx("span",{style:k,children:m.text},`segment-${x}`)}),e.endsWith(`
39
+ `)?`
40
+ `:null]}):null,l.jsx(dT,{"data-testid":"chat-input",ref:o,value:e,onChange:m=>i(m.target.value),onKeyDown:c,onPaste:d,placeholder:t,disabled:n,autoSize:{minRows:3,maxRows:8},variant:"borderless",onScroll:f,className:"lotus-message-input-field",style:{resize:"none",flex:1,fontSize:r.fontSize,padding:v,lineHeight:g,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"}})]})},hT=({allowImages:e,disabled:t,isInputLocked:n,token:r,fileInputRef:s,onFileInputChange:o,onFileReferenceButtonClick:a,extraControl:i})=>{const{t:c}=qe();return l.jsxs(we,{align:"center",style:{minWidth:0,gap:0},children:[e&&l.jsxs(l.Fragment,{children:[l.jsx("input",{ref:s,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:o}),l.jsx(Ee,{type:"text",icon:l.jsx(_d,{}),onClick:()=>{var d;return(d=s.current)==null?void 0:d.click()},disabled:t||n,size:"small",style:{minWidth:36,padding:"0 8px",height:36,borderRadius:18,color:r.colorTextSecondary},title:c("chat.input.addAttachments"),"aria-label":c("chat.input.addAttachments")})]}),a&&l.jsx(Ee,{type:"text",icon:l.jsx(yl,{}),onClick:a,disabled:t||n,size:"small",style:{minWidth:36,padding:"0 8px",height:36,borderRadius:18,color:r.colorTextSecondary},title:c("chat.input.referenceWorkspaceFiles"),"aria-label":c("chat.input.referenceWorkspaceFiles")}),i]})},pT=({allowRetry:e,hasMessages:t,isInputLocked:n,canCancel:r,disabled:s,onRetry:o,onCancel:a,onSubmit:i,value:c,images:d,isOverCharLimit:f,token:p,statusIndicator:v,submitButtonLabel:g})=>{const{t:w}=qe(),m=!c.trim()&&d.length===0,x=r??n,k=n,C=n||s||!o,E=g??w("chat.actions.sendMessage");return l.jsxs(we,{align:"center",style:{flex:"0 0 auto",gap:p.marginXS},children:[v?l.jsx("span",{style:{flex:"0 0 auto"},children:v}):null,e&&t&&l.jsx(Zs,{trigger:["click"],menu:{items:[{key:"regenerate",label:w("chat.actions.regenerate"),icon:l.jsx(Cd,{})},{key:"error_retry",label:w("chat.actions.retryFailed"),icon:l.jsx(Yg,{})}],onClick:({key:T})=>o==null?void 0:o(T)},disabled:C,children:l.jsx(Ee,{"data-testid":"regenerate-button",type:"text",icon:l.jsx(Ow,{spin:k}),disabled:C,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:p.colorTextSecondary}})}),l.jsx(Ee,{"data-testid":x?"cancel-button":"send-button",type:"primary",icon:x?l.jsx($w,{}):l.jsx(Lw,{}),onClick:x?a:i,loading:x&&!a,disabled:x?!a||s:n||m||s||f,size:"small",danger:x,className:x?"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:x?void 0:"linear-gradient(135deg, var(--lotus-primary) 0%, var(--lotus-accent-secondary) 100%)",border:x?void 0:"none",boxShadow:x?void 0:"var(--lotus-send-btn-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:"scale(1)"},title:x?w("chat.actions.cancelRequest"):E,"aria-label":x?w("chat.actions.cancelRequest"):E})]})},{Text:Qh}=ot,mT=({charCount:e,maxCharCount:t,isOverCharLimit:n,isNearCharLimit:r,isProcessingAttachments:s,token:o})=>{const{t:a}=qe(),i=typeof t=="number"&&Number.isFinite(t)&&t>0;return!s&&!r&&!n?null:l.jsxs(l.Fragment,{children:[i&&l.jsx(we,{justify:"flex-end",style:{marginTop:o.marginXXS},children:l.jsxs(Qh,{type:n?"danger":r?"warning":"secondary",style:{fontSize:o.fontSizeSM},children:[e.toLocaleString()," / ",t.toLocaleString()]})}),s&&l.jsxs(ze,{size:"small",style:{marginTop:o.marginXS},children:[l.jsx(no,{size:"small"}),l.jsx(Qh,{type:"secondary",children:a("chat.input.processingFiles")})]})]})},gT=({onFiles:e,mode:t="images"})=>{const[n,r]=S.useState(!1),s=S.useCallback(i=>{var d,f;i.preventDefault(),i.stopPropagation(),(t==="images"?Jk(i.dataTransfer):((f=(d=i.dataTransfer)==null?void 0:d.files)==null?void 0:f.length)>0)&&r(!0)},[t]),o=S.useCallback(i=>{i.preventDefault(),i.stopPropagation(),r(!1)},[]),a=S.useCallback(i=>{if(i.preventDefault(),i.stopPropagation(),r(!1),t==="images"){const d=Qk(i.dataTransfer);d.length>0&&e(d);return}const c=Array.from(i.dataTransfer.files||[]);c.length>0&&e(c)},[t,e]);return{isDragOver:n,handleDragOver:s,handleDragLeave:o,handleDrop:a}},yT=e=>{const{message:t}=Tn.useApp(),[n,r]=S.useState([]),[s,o]=S.useState(!1),[a,i]=S.useState(0),c=S.useCallback(async v=>{if(e)try{const g=await Kk(v);g.length>0&&(r(w=>[...w,...g]),t.success(`Added ${g.length} image(s)`))}catch(g){t.error(`Failed to process images: ${g}`)}},[e,t]),d=S.useCallback(v=>{const g=n.find(w=>w.id===v);g&&Gh([g]),r(w=>w.filter(m=>m.id!==v))},[n]),f=S.useCallback(v=>{const g=n.findIndex(w=>w.id===v.id);i(g>=0?g:0),o(!0)},[n]),p=S.useCallback(()=>{Gh(n),r([])},[n]);return{images:n,setImages:r,previewModalVisible:s,setPreviewModalVisible:o,previewImageIndex:a,handleImageFiles:c,handleRemoveImage:d,handleImagePreview:f,clearImages:p}},vT=({onImages:e,onAttachments:t,allowImages:n})=>({handlePaste:S.useCallback(s=>{if(!s.clipboardData)return;const o=Array.from(s.clipboardData.items),a=[],i=[];o.forEach(c=>{if(c.kind==="file"){const d=c.getAsFile();if(!d)return;d.type.startsWith("image/")?a.push(d):i.push(d)}}),a.length>0&&n&&(s.preventDefault(),e(a)),i.length>0&&t&&(s.preventDefault(),t(i))},[n,e,t])}),ln=[];for(let e=0;e<256;++e)ln.push((e+256).toString(16).slice(1));function bT(e,t=0){return(ln[e[t+0]]+ln[e[t+1]]+ln[e[t+2]]+ln[e[t+3]]+"-"+ln[e[t+4]]+ln[e[t+5]]+"-"+ln[e[t+6]]+ln[e[t+7]]+"-"+ln[e[t+8]]+ln[e[t+9]]+"-"+ln[e[t+10]]+ln[e[t+11]]+ln[e[t+12]]+ln[e[t+13]]+ln[e[t+14]]+ln[e[t+15]]).toLowerCase()}const ST=new Uint8Array(16);function wT(){return crypto.getRandomValues(ST)}function Zh(e,t,n){return crypto.randomUUID?crypto.randomUUID():xT(e)}function xT(e,t,n){var s;e=e||{};const r=e.random??((s=e.rng)==null?void 0:s.call(e))??wT();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,bT(r)}const _T=["text/","application/json","application/xml"],CT=[".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"],kT=200*1024,ev=e=>e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`,ep=e=>{const t=e.toLowerCase();return CT.some(n=>t.endsWith(n))},TT=e=>!e.type&&ep(e.name)?!0:_T.some(t=>e.type.startsWith(t))||ep(e.name),PT=e=>new Promise((t,n)=>{const r=new FileReader;r.onerror=()=>n(r.error),r.onload=()=>t(r.result),r.readAsText(e)}),tp=async(e,t)=>{const n=kT,r=[],s=[];for(const o of e)try{if(TT(o)&&o.size<=n){const a=await PT(o);r.push({id:Zh(),file:o,name:o.name,size:o.size,type:o.type||"text/plain",kind:"text",content:a,preview:a.length>400?`${a.slice(0,400)}…`:a,lastModified:o.lastModified})}else r.push({id:Zh(),file:o,name:o.name,size:o.size,type:o.type||"application/octet-stream",kind:"binary",preview:`(${ev(o.size)}) Preview unavailable for this file type.`,lastModified:o.lastModified})}catch(a){console.error("[fileUtils] Failed to process file",o.name,a),s.push(`Failed to process ${o.name}: ${a.message}`)}return{processed:r,errors:s}},ET=e=>{const t=[],n=[];return e.forEach(r=>{r.type.startsWith("image/")?t.push(r):n.push(r)}),{images:t,others:n}},MT=e=>e.length===0?"":e.map(t=>{const n=`### File: ${t.name}`,r=`(_${ev(t.size)}_, ${t.type||"unknown"})`;return t.kind==="text"&&t.content?`${n}
41
+ ${r}
42
+
43
+ \`\`\`
44
+ ${t.content}
45
+ \`\`\``:`${n}
46
+ ${r}
47
+
48
+ > Preview unavailable for this file type.`}).join(`
49
+
50
+ `),RT=({allowImages:e,onAttachmentsAdded:t,messageApi:n})=>{const[r,s]=S.useState(!1),{images:o,setImages:a,previewModalVisible:i,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:p,clearImages:v}=yT(e),g=S.useCallback(async T=>{if(!T||T.length===0)return;const{images:P,others:A}=ET(T);if(P.length>0&&await f(P),A.length>0&&t){s(!0);const{processed:O,errors:$}=await tp(A);O.length>0&&(t(O),n.success(kt.t("chat.input.filesAdded",{count:O.length}))),$.forEach(U=>n.error(U)),s(!1)}},[f,n,t]),{isDragOver:w,handleDragOver:m,handleDragLeave:x,handleDrop:k}=gT({onFiles:g,mode:"any"}),{handlePaste:C}=vT({onImages:f,onAttachments:t?async T=>{s(!0);const{processed:P,errors:A}=await tp(T);P.length>0&&(t(P),n.success(kt.t("chat.input.filesAttached",{count:P.length}))),A.forEach(O=>n.error(O)),s(!1)}:void 0,allowImages:e}),E=S.useCallback(T=>{const P=T.target.files;P&&P.length>0&&f(P),T.target.value=""},[f]);return{images:o,setImages:a,previewModalVisible:i,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:p,clearImages:v,isProcessingAttachments:r,isDragOver:w,handleDragOver:m,handleDragLeave:x,handleDrop:k,handlePaste:C,handleFileInputChange:E}},AT=({value:e,debouncedValue:t,onWorkflowCommandChange:n,onFileReferenceChange:r,onImagesChange:s,images:o,propImages:a,setImages:i,syncOverlayScroll:c})=>{S.useEffect(()=>{c()},[e,c]),S.useEffect(()=>{n&&n(sT(t))},[t,n]),S.useEffect(()=>{r&&r(aT(t))},[t,r]),S.useEffect(()=>{s&&s(o)},[o,s]),S.useEffect(()=>{a&&i(a)},[a,i])},jT=({value:e,images:t,isInputLocked:n,disabled:r,isWorkflowSelectorVisible:s,onChange:o,onSubmit:a,onRetry:i,onHistoryNavigate:c,validateMessage:d,isOverCharLimit:f,maxCharCount:p,messageApi:v,clearImages:g,textAreaRef:w})=>{const m=S.useCallback(()=>{const C=e.trim();if(!(!C&&t.length===0||n||r)){if(f){const E=typeof p=="number"?p.toLocaleString():"configured";v.error(kt.t("chat.input.charLimitExceeded",{max:E}));return}if(d){const E=d(C);if(!E.isValid){v.error(E.errorMessage||kt.t("chat.input.messageFormatInvalid"));return}}a(C,t.length>0?t:void 0),g()}},[g,r,t,f,n,p,v,a,d,e]),x=S.useCallback(C=>{if(c&&!r&&!n&&!C.shiftKey&&(C.key==="ArrowUp"||C.key==="ArrowDown")){const E=C.key==="ArrowUp"?"previous":"next",T=c(E,e);if(T!=null){C.preventDefault(),o(T),requestAnimationFrame(()=>{var A,O;const P=((O=(A=w.current)==null?void 0:A.resizableTextArea)==null?void 0:O.textArea)||null;if(P){const $=T.length;P.setSelectionRange($,$)}});return}}C.key==="Enter"&&!C.shiftKey&&!n&&!r&&!s&&(C.preventDefault(),m())},[r,m,n,s,o,c,w,e]),k=S.useCallback((C="regenerate")=>{n||r||!i||i(C)},[r,n,i]);return{handleKeyDown:x,handleSubmit:m,handleRetry:k}},IT=rt.memo(({value:e,onChange:t,onSubmit:n,interaction:r,placeholder:s,disabled:o=!1,images:a,onImagesChange:i,allowImages:c=!0,isWorkflowSelectorVisible:d=!1,textAreaRef:f,statusIndicator:p,validateMessage:v,onAttachmentsAdded:g,onWorkflowCommandChange:w,onFileReferenceChange:m,onFileReferenceButtonClick:x,maxCharCount:k,leftControlsExtra:C,submitButtonLabel:E})=>{const{t:T}=qe(),{isStreaming:P,isInputLocked:A=P,canCancel:O,hasMessages:$,allowRetry:U=!0,onRetry:J,onCancel:ee,onHistoryNavigate:I}=r,Y=S.useRef(null),z=S.useRef(null),D=f||z,ie=S.useRef(null),{token:Q}=st.useToken(),ue=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",[me,V]=Dw.useMessage(),ae=e.length,ve=typeof k=="number"&&Number.isFinite(k)&&k>0,re=ve?ae>k:!1,le=ve?!re&&ae>=k*.9:!1,{images:de,setImages:pe,previewModalVisible:Ae,setPreviewModalVisible:Me,previewImageIndex:F,handleImagePreview:L,clearImages:fe,isProcessingAttachments:Se,isDragOver:De,handleDragOver:We,handleDragLeave:Ge,handleDrop:He,handlePaste:at,handleFileInputChange:St}=RT({allowImages:c,onAttachmentsAdded:g,messageApi:me}),Ot=iT(e,80),xt=S.useMemo(()=>nT(e),[e]),Fe=S.useCallback(()=>{var Zt,he;const Tt=(he=(Zt=D.current)==null?void 0:Zt.resizableTextArea)==null?void 0:he.textArea;if(!Tt||!ie.current)return;const Ht=Tt.scrollTop,$n=Tt.scrollLeft;ie.current.style.transform=`translate(${-$n}px, ${-Ht}px)`},[D]);AT({value:e,debouncedValue:Ot,onWorkflowCommandChange:w,onFileReferenceChange:m,onImagesChange:i,images:de,propImages:a,setImages:pe,syncOverlayScroll:Fe});const{handleKeyDown:lt,handleSubmit:_t,handleRetry:Qt}=jT({value:e,images:de,isInputLocked:A,disabled:o,isWorkflowSelectorVisible:d,onChange:t,onSubmit:n,onRetry:J,onHistoryNavigate:I,validateMessage:v,isOverCharLimit:re,maxCharCount:k,messageApi:me,clearImages:fe,textAreaRef:D}),At=s??T("chat.input.placeholder");return l.jsxs(l.Fragment,{children:[V,l.jsxs("div",{className:`message-input-container lotus-message-input-shell ${De?"is-drag-over":""}`,role:"group","aria-label":T("chat.input.messageComposer","Message composer"),style:{position:"relative",border:`1px solid ${De?"var(--lotus-input-border-active)":"var(--lotus-input-border)"}`,borderRadius:26,background:De?"var(--lotus-input-bg-active)":"var(--lotus-input-bg)",backdropFilter:ue?"none":"blur(18px)",WebkitBackdropFilter:ue?"none":"blur(18px)",boxShadow:"var(--lotus-input-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",width:"100%",padding:`${Q.paddingSM}px`,overflow:"hidden"},onDragOver:We,onDragLeave:Ge,onDrop:He,children:[l.jsx(uT,{images:de,token:Q,allowImages:c,onPreview:L,onClear:fe}),l.jsx(cT,{visible:De,token:Q}),l.jsxs(we,{vertical:!0,style:{gap:Q.marginXS,minHeight:132,width:"100%"},children:[l.jsx(fT,{value:e,placeholder:At,disabled:o,token:Q,highlightSegments:xt,textAreaRef:D,highlightOverlayRef:ie,onChange:t,onKeyDown:lt,onPaste:at,onScrollSync:Fe}),l.jsxs(we,{align:"center",justify:"space-between",gap:Q.marginSM,wrap:"wrap",style:{rowGap:Q.marginXS},children:[l.jsx(we,{align:"center",gap:Q.marginXS,wrap:"wrap",style:{minWidth:0,flex:"1 1 260px"},children:l.jsx(hT,{allowImages:c,disabled:o,isInputLocked:A,token:Q,fileInputRef:Y,onFileInputChange:St,onFileReferenceButtonClick:x,extraControl:C})}),l.jsx(pT,{allowRetry:U,hasMessages:$,isStreaming:P,isInputLocked:A,canCancel:O,disabled:o,onRetry:Qt,onCancel:ee,onSubmit:_t,value:e,images:de,isOverCharLimit:re,token:Q,statusIndicator:p,submitButtonLabel:E})]})]})]}),l.jsx(mT,{charCount:ae,maxCharCount:k,isOverCharLimit:re,isNearCharLimit:le,isProcessingAttachments:Se,token:Q}),c&&l.jsx(tT,{visible:Ae,images:de,currentIndex:F,onClose:()=>Me(!1)})]})}),{Text:np}=ot,{useToken:OT}=st,$T=({text:e,onClose:t})=>{const{token:n}=OT(),{t:r}=qe(),o=(e.length>150?e.substring(0,147)+"...":e).replace(/^> |^>/gm,"");return l.jsx("div",{style:{marginBottom:n.marginSM,background:n.colorFillSecondary,borderRadius:999,border:`1px solid ${n.colorBorderSecondary}`,padding:`${n.paddingXXS}px ${n.paddingSM}px`},children:l.jsxs(ze,{style:{width:"100%",justifyContent:"space-between",alignItems:"flex-start"},children:[l.jsxs("div",{style:{flex:1},children:[l.jsx(np,{style:{fontSize:n.fontSizeSM,color:n.colorPrimary},children:r("chat.input.referencing")}),l.jsx(np,{style:{fontSize:n.fontSizeSM,color:n.colorTextSecondary,marginLeft:n.marginSM},ellipsis:!0,children:o})]}),l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(ks,{}),onClick:t,style:{marginLeft:n.marginXS,color:n.colorTextSecondary,borderRadius:999}})]})})},tv="mermaid_enhancement_enabled",LT=()=>localStorage.getItem(tv)!=="false",dL=e=>{localStorage.setItem(tv,e.toString())},DT=()=>`
51
+
52
+ ## 📊 Visual Representation Guidelines
53
+
54
+ When explaining concepts, processes, relationships, or data structures, use Mermaid diagrams to enhance understanding. Choose appropriate diagram types:
55
+
56
+ - **Flowcharts** (graph TD/LR) - processes, workflows, decision trees
57
+ - **Sequence Diagrams** - API interactions, communication flows
58
+ - **Class Diagrams** - object relationships, data models
59
+ - **State Diagrams** - state machines, status flows
60
+ - **Gantt Charts** - project timelines
61
+ - **ER Diagrams** - database schemas
62
+ - **Git Graphs** - version control workflows
63
+
64
+ **Syntax Notes:**
65
+ - Mermaid diagram definitions MUST be inside a fenced code block (never inline). Example:
66
+ \`\`\`mermaid
67
+ graph TD
68
+ A --> B
69
+ \`\`\`
70
+ - Avoid nested brackets: use \`A[Text]\` or \`A(Text)\`, NOT \`A[Text()]\`
71
+ - Use HTML entities for special chars: &#35; for #, &#59; for ;, &#34; for quotes
72
+ - Keep participant names simple (no spaces): \`participant UserService\`
73
+ - Arrow syntax: \`-->\` (solid), \`-.->\` (dotted), \`==>\` (thick), \`-->|label|\` (labeled)
74
+
75
+ Include relevant diagrams when discussing architecture, workflows, data flow, or relationships.`,Ku="task_enhancement_enabled",rp="todo_enhancement_enabled",FT=e=>e==="false",NT=()=>{let e=localStorage.getItem(Ku);if(e===null){const t=localStorage.getItem(rp);t!==null&&(e=t,localStorage.setItem(Ku,t),localStorage.removeItem(rp))}return!FT(e)},fL=e=>{localStorage.setItem(Ku,e.toString())},zT=()=>`
76
+
77
+ ## Task Management Rules
78
+
79
+ Use the Task tool for non-trivial or multi-step tasks.
80
+ Task updates are shared across the current root session and all child sessions.
81
+ Keep exactly one item in \`in_progress\` state whenever possible.
82
+ Update Task immediately when a step starts or completes; do not batch status updates.
83
+ When marking a task as completed, always fill in the \`summary\` field with a concise description of what was accomplished.
84
+ Do not use Markdown checkbox lists as a substitute for Task.
85
+ Skip Task only for simple one-step requests.
86
+ Use SubAgent only when the user explicitly requests delegated/parallel sub-agent work.
87
+ `,nv=()=>{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"},BT=e=>{switch(e){case"windows":return"Windows";case"macos":return"macOS";case"linux":return"Linux";default:return"Unknown OS"}},WT=()=>{const e=nv(),n=`## 🖥️ Operating System Information
88
+
89
+ You are running on **${BT(e)}**.`;return e==="windows"?n+`
90
+
91
+ ### Windows-Specific Notes:
92
+
93
+ - **Configuration Directory**: Application configuration and data are stored in the user's home directory at \`.bamboo\` (e.g., \`C:\\Users\\[Username]\\.bamboo\`)
94
+ - Note: When accessing this directory programmatically, use the expanded path rather than the ~ shorthand
95
+
96
+ - **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.
97
+ - Example: \`~/Documents/file.txt\` should be expanded to \`C:\\Users\\[Username]\\Documents\\file.txt\`
98
+ - Use tools to get the actual home directory path when needed
99
+ - Note: This applies to leading tilde only. Windows short paths like \`C:\\PROGRA~1\\\` are valid and should NOT be modified
100
+ - Some Windows shells (PowerShell, Git Bash, WSL) may support ~ in specific contexts, but Windows-native paths/APIs generally do not
101
+
102
+ - **Path Separators**: Windows uses backslashes (\\) as path separators, but forward slashes (/) are also accepted in most contexts
103
+ - **Case Insensitivity**: Windows file paths are case-insensitive (file.txt and FILE.TXT refer to the same file)
104
+ - **Drive Letters**: Windows paths typically start with a drive letter (C:\\, D:\\, etc.)`:e==="macos"?n+`
105
+
106
+ ### macOS-Specific Notes:
107
+
108
+ - **Configuration Directory**: Application configuration and data are stored in \`~/.bamboo\` (expands to \`/Users/[Username]/.bamboo\`)
109
+
110
+ - **File Paths**: macOS uses Unix-style paths with forward slashes (/)
111
+ - **Home Directory**: The tilde (~) expands to /Users/[Username]
112
+ - **Case Sensitivity**: macOS file system may be case-sensitive or case-insensitive depending on format (APFS is case-insensitive by default)`:e==="linux"?n+`
113
+
114
+ ### Linux-Specific Notes:
115
+
116
+ - **Configuration Directory**: Application configuration and data are stored in \`~/.bamboo\` (expands to \`/home/[username]/.bamboo\`)
117
+
118
+ - **File Paths**: Linux uses Unix-style paths with forward slashes (/)
119
+ - **Home Directory**: The tilde (~) expands to /home/[username]
120
+ - **Case Sensitivity**: Linux file systems are case-sensitive (File.txt and file.txt are different files)`:n},rv="copilot_conclusion_with_options_enhancement_enabled",sv=()=>localStorage.getItem(rv)==="true",hL=e=>{try{localStorage.setItem(rv,e.toString())}catch(t){console.error("[copilotConclusionWithOptionsEnhancement] Failed to persist setting:",t)}},UT=()=>"\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",pL=()=>["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(" "),ov="bamboo_system_prompt_enhancement",qT=()=>["## 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(`
121
+ `),HT=e=>e.map(n=>n.trim()).filter(n=>n.length>0).join(`
122
+
123
+ `),XT=()=>{try{return localStorage.getItem(ov)??""}catch(e){return console.error("Failed to load system prompt enhancement:",e),""}},mL=e=>{try{const t=e.trim()?e:"";localStorage.setItem(ov,t)}catch(t){console.error("Failed to save system prompt enhancement:",t)}},YT=e=>{const t=[];t.push(WT().trim()),t.push(qT().trim());const n=XT().trim();return n&&t.push(n),LT()&&t.push(DT().trim()),NT()&&t.push(zT().trim()),(e??"").trim().toLowerCase()==="copilot"&&sv()&&t.push(UT().trim()),t},KT=e=>HT(YT(e));function Kd(e){const t=mt(s=>s.providerConfig),n=Z(mr(e??null));return S.useMemo(()=>{var c,d,f,p,v,g,w;const s=e?(c=n==null?void 0:n.config)==null?void 0:c.model_ref:void 0,o=(d=s==null?void 0:s.model)==null?void 0:d.trim();if(o)return o;const a=e?(p=(f=n==null?void 0:n.config)==null?void 0:f.model)==null?void 0:p.trim():void 0;return a&&a!=="unknown"?a:((w=(g=(v=t.defaults)==null?void 0:v.chat)==null?void 0:g.model)==null?void 0:w.trim())||void 0},[n,t,e])}function VT(e){const t=Kd(e),n=mt(r=>r.providerConfig);return S.useMemo(()=>{var s,o,a;return((a=(o=(s=n.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:a.trim())||t},[n,t])}function av(e){const t=mt(s=>s.isProviderModelRefEnabled),n=mt(s=>s.selectedModelRef),r=mt(s=>s.providerConfig.defaults);return S.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 GT(){const e=mt(t=>t.getFastModelRef);return S.useMemo(()=>e(),[e])}const qc=(e,t,n,r,s)=>n?e.execute(t,void 0,n,r,s):e.execute(t,void 0,void 0,r,s);function JT(e){var me;const{sessionId:t,addMessage:n,updateSession:r}=e,{modal:s,message:o}=Tn.useApp(),{t:a}=qe(),i=S.useRef(null),c=S.useRef(null),d=S.useRef(""),f=S.useRef(new Pn),p=Z(V=>V.agentAvailability),v=Z(V=>V.setAgentAvailability),g=Z(V=>V.checkAgentAvailability),w=Z(V=>V.startAgentHealthCheck),m=Z(V=>V.markOptimisticStart),x=Z(V=>V.markRetryStart),k=Z(V=>V.markSettleTimeout),C=Z(V=>V.resetSession),E=Z(V=>V.applyExecutionStarted),T=Kd(t),P=mt(V=>V.currentProvider),O=mt(V=>V.getProviderType)(P),$=Z(V=>t&&V.chats.find(ae=>ae.id===t)||null),U=av((me=$==null?void 0:$.config)==null?void 0:me.model_ref);S.useEffect(()=>{w()},[w]);const J=S.useCallback(()=>{var ae;(ae=i.current)==null||ae.abort();const V=$==null?void 0:$.id;V&&f.current.stopGeneration(V).catch(ve=>{console.error("[useMessageStreaming] Failed to stop generation:",ve)})},[$==null?void 0:$.id]),ee=S.useCallback(V=>{var L;const ae=Z.getState(),re=(Array.isArray(ae.chats)?ae.chats:[]).find(fe=>fe.id===V),le=so(V)(ae),de=le?{sessionId:V,question:le.question,options:le.options,allowCustom:le.allowCustom,toolCallId:le.toolCallId}:null,pe=(L=re==null?void 0:re.config)==null?void 0:L.syncCursor,Ae=!!de||!!(pe!=null&&pe.hasPendingQuestion),Me=(de==null?void 0:de.toolCallId)??(pe==null?void 0:pe.pendingQuestionToolCallId)??null,F={client_message_count:(pe==null?void 0:pe.messageCount)??(re==null?void 0:re.messageCount)??0,client_last_message_id:(pe==null?void 0:pe.lastMessageId)??null,client_has_pending_question:Ae,client_pending_question_tool_call_id:Me};return ke("[Streaming]","buildClientSync",{sessionId:V,generation:Ct(V)(ae),syncCursor:pe??null,messageCount:(re==null?void 0:re.messageCount)??null,respondMode:de?{toolCallId:de.toolCallId??null,question:de.question}:null,clientSync:F}),F},[]),I=S.useCallback((V,ae)=>{const ve=ae.sync;if(!ve)return;const re=Z.getState(),de=(Array.isArray(re.chats)?re.chats:[]).find(pe=>pe.id===V);de&&(ke("[Streaming]","applyExecuteSyncSnapshot",{sessionId:V,generation:Ct(V)(Z.getState()),runId:ae.run_id??null,sync:ve}),r(V,{messageCount:ve.server_message_count,config:{...de.config||{},syncCursor:{messageCount:ve.server_message_count,lastMessageId:ve.server_last_message_id??null,hasPendingQuestion:ve.has_pending_question,pendingQuestionToolCallId:ve.pending_question_tool_call_id??null}}}))},[r]),Y=S.useCallback(async V=>{try{return await ht.get(`respond/${V}/pending`)}catch(ae){return console.warn(`[useMessageStreaming] Failed to fetch pending question for ${V}:`,ae),{has_pending_question:!1}}},[]),z=S.useCallback(async(V,ae,ve)=>{var Me,F;ke("[Streaming]","recoverAfterNeedSync.start",{sessionId:V,generation:Ct(V)(Z.getState()),executeSync:ae,reasoningEffort:ve??null}),k(V),await Z.getState().loadChatHistory(V,{mode:"replace"});const re=await Y(V),le=Z.getState().setPendingQuestion,de=Z.getState().clearPendingQuestion;if(re.has_pending_question){ke("[Streaming]","recoverAfterNeedSync.pendingQuestion",{sessionId:V,generation:Ct(V)(Z.getState()),pending:re}),le(V,{question:re.question||"",options:re.options||[],allowCustom:re.allow_custom??!0,toolCallId:re.tool_call_id??null});const L=Z.getState().chats.find(fe=>fe.id===V);return L&&r(V,{config:{...L.config||{},syncCursor:{messageCount:L.messageCount??L.messages.length,lastMessageId:((F=(Me=L.config)==null?void 0:Me.syncCursor)==null?void 0:F.lastMessageId)??null,hasPendingQuestion:!0,pendingQuestionToolCallId:re.tool_call_id??null}}}),null}if(de(V),!((ae==null?void 0:ae.has_pending_user_message)??!1))return ke("[Streaming]","recoverAfterNeedSync.noPendingUserMessage",{sessionId:V,generation:Ct(V)(Z.getState()),executeSync:ae}),null;ke("[Streaming]","recoverAfterNeedSync.retryExecute",{sessionId:V,generation:Ct(V)(Z.getState()),executeSync:ae}),m(V),await new Promise(L=>setTimeout(L,0));const Ae=await qc(f.current,V,ve,ee(V),U??void 0);return ke("[Streaming]","recoverAfterNeedSync.retryExecute.result",{sessionId:V,generation:Ct(V)(Z.getState()),status:Ae.status,runId:Ae.run_id??null,sync:Ae.sync??null}),I(V,Ae),Ae},[U,I,ee,Y,m,k,r]),D=S.useCallback(async(V,ae,ve)=>{var pe,Ae;let re=ae;ke("[Streaming]","handleExecuteResult.start",{sessionId:V,generation:Ct(V)(Z.getState()),status:re.status,runId:re.run_id??null,sync:re.sync??null}),I(V,re);const le=2;let de=0;for(;(pe=re.sync)!=null&&pe.need_sync&&de<le;){ke("[Streaming]","handleExecuteResult.needSync",{sessionId:V,generation:Ct(V)(Z.getState()),syncRecoveries:de,sync:re.sync});const Me=await z(V,re.sync,ve);if(de+=1,!Me){k(V);return}re=Me,I(V,re)}if((Ae=re.sync)!=null&&Ae.need_sync){console.warn(`[useMessageStreaming] Execute remains out-of-sync after ${le} recovery attempt(s) for session ${V}.`,re.sync),k(V);return}if(["started","already_running"].includes(re.status)){if(re.run_id){const Me=Ct(V)(Z.getState());E(V,re.run_id,Me)}return}if(re.status==="completed"){ke("[Streaming]","[Agent] Session already completed"),k(V);return}throw console.error("[Agent] Execute failed:",re.status),k(V),new Error(`Execute failed: ${re.status}`)},[I,z,k,E]),ie=S.useCallback(async(V,ae,ve,re,le)=>{var pe,Ae,Me;if(!T)throw new Error(a("chat.model.noModelSelected"));const de=new AbortController;i.current=de;try{const F=KT(O).trim(),L=O==="copilot"&&sv(),Se=(((pe=$==null?void 0:$.config)==null?void 0:pe.workspacePath)||"").trim().replace(/\/+$/,"").replace(/\\+$/,"");ke("[Streaming]","sendWithAgent.start",{sessionId:ae,generation:Ct(ae)(Z.getState()),userMessageId:ve.id,contentLength:V.length,imageCount:((Ae=ve.images)==null?void 0:Ae.length)??0,reasoningEffort:re??null,selectedSkillCount:(le==null?void 0:le.length)??0,workspacePath:Se||null,activeModel:T,activeModelRef:U??null});const De=await f.current.sendMessage({message:V,session_id:ae,enhance_prompt:F||void 0,copilot_conclusion_with_options_enhancement_enabled:L,workspace_path:Se||void 0,selected_skill_ids:le&&le.length>0?le:void 0,images:(Me=ve.images)==null?void 0:Me.filter(He=>!!He.base64).map(He=>({base64:He.base64,name:He.name,size:He.size,type:He.type})),model:T,...U?{model_ref:U,provider:U.provider}:{}});ke("[Streaming]","sendWithAgent.chatResponse",{sessionId:ae,generation:Ct(ae)(Z.getState()),response:De});const{session_id:We}=De;if(We!==ae&&console.warn(`[useMessageStreaming] Backend returned unexpected session_id=${We} for sessionId=${ae}`),De.goal_command){const He=De.goal_command;if(ke("[Streaming]","sendWithAgent.goalCommand",{sessionId:ae,action:He.action,shouldExecute:He.should_execute,hasGoldConfig:He.gold_config!=null}),He.gold_config!==void 0){const at=Z.getState().chats.find(St=>St.id===ae);at!=null&&at.config&&Z.getState().updateSession(ae,{config:{...at.config,goldConfig:He.gold_config??null}})}if(!He.should_execute){C(ae),await Z.getState().loadChatHistory(ae,{mode:"replace"}),await Z.getState().refreshChatsNow();return}await Z.getState().loadChatHistory(ae,{mode:"replace"})}ke("[Streaming]","sendWithAgent.loadHistory.beforeExecute",{sessionId:ae,generation:Ct(ae)(Z.getState())});const Ge=await qc(f.current,ae,re,ee(ae),U??void 0);ke("[Streaming]","sendWithAgent.executeResponse",{sessionId:ae,generation:Ct(ae)(Z.getState()),status:Ge.status,runId:Ge.run_id??null,sync:Ge.sync??null}),await D(ae,Ge,re)}catch(F){throw ke("[Streaming]","sendWithAgent.error",{sessionId:ae,generation:Ct(ae)(Z.getState()),error:F}),F}},[T,U,ee,$,P,O,t,D,C,a]),Q=S.useCallback(async(V,ae,ve,re)=>{if(!$){s.info({title:a("chat.streaming.noActiveChatTitle"),content:a("chat.streaming.noActiveChatSendContent")});return}if(!t){s.info({title:a("chat.streaming.noChatIdTitle"),content:a("chat.streaming.noChatIdSendContent")});return}if(!T){s.error({title:a("chat.model.noModelSelected"),content:a("chat.model.selectModelBeforeSend")});return}let le=p;if(le===null&&(le=await g()),!le){o.error(a("chat.streaming.agentUnavailable"));return}if(!T){o.error(a("chat.streaming.modelConfigNotLoaded"));return}const de=t,pe=(ae==null?void 0:ae.map(Me=>({id:Me.id,base64:Me.base64,name:Me.name,size:Me.size,type:Me.type})))||[],Ae={role:"user",content:V,id:crypto.randomUUID(),createdAt:new Date().toISOString(),images:pe};ke("[Streaming]","sendMessage.localAdd.before",{sessionId:de,generation:Ct(de)(Z.getState()),userMessageId:Ae.id,contentLength:V.length,imageCount:pe.length,reasoningEffort:ve??null,selectedSkillCount:(re==null?void 0:re.length)??0}),await n(de,Ae),ke("[Streaming]","sendMessage.localAdd.after",{sessionId:de,generation:Ct(de)(Z.getState()),userMessageId:Ae.id}),m(de),ke("[Streaming]","sendMessage.markOptimisticStart",{sessionId:de,generation:Ct(de)(Z.getState())}),await new Promise(Me=>setTimeout(Me,0));try{ke("[Streaming]","[useChatStreaming] Using Agent Server"),await ie(V,de,Ae,ve,re),ke("[Streaming]","sendMessage.completed",{sessionId:de,generation:Ct(de)(Z.getState()),userMessageId:Ae.id})}catch(Me){if(c.current&&Et.clear(de,c.current),c.current=null,d.current="",Me instanceof Error&&Me.name==="AbortError")o.info(a("chat.streaming.requestCancelled"));else{console.error("[useChatStreaming] Failed to send message:",Me);const F=Me instanceof Error?Me.message:String(Me??"");Uu(F)?o.error(qu(F)):(o.error(a("chat.streaming.sendFailed")),v(!1))}ke("[Streaming]","sendMessage.error",{sessionId:de,generation:Ct(de)(Z.getState()),error:Me}),k(de)}finally{ke("[Streaming]","sendMessage.finally",{sessionId:de,generation:Ct(de)(Z.getState()),streamingMessageId:c.current}),i.current=null,c.current&&Et.clear(de,c.current),c.current=null,d.current=""}},[p,o,g,$,t,n,s,ie,v,T,a,m,k]),ue=S.useCallback(async(V,ae="regenerate")=>{if(!$){s.info({title:a("chat.streaming.noActiveChatTitle"),content:a("chat.streaming.noActiveChatRetryContent")});return}if(!t){s.info({title:a("chat.streaming.noChatIdTitle"),content:a("chat.streaming.noChatIdRetryContent")});return}if(!T){s.error({title:a("chat.model.noModelSelected"),content:a("chat.model.selectModelBeforeRetry")});return}let ve=p;if(ve===null&&(ve=await g()),!ve){o.error(a("chat.streaming.agentUnavailable"));return}const re=t;c.current&&Et.clear(re,c.current),c.current=null,d.current="";try{const le=ae==="error_retry"?"error_retry":"after_last_user",de=await f.current.truncateSessionMessages(re,{mode:le});(ae==="regenerate"||(de.messages_removed??0)>0)&&await Z.getState().loadChatHistory(re,{mode:"replace"}),x(re);const pe=await qc(f.current,re,V,ee(re),U??void 0);await D(re,pe,V)}catch(le){console.error("[useMessageStreaming] Retry failed:",le);const de=le instanceof Error?le.message:String(le??"");Uu(de)?o.error(qu(de)):o.error(a("chat.streaming.retryFailed")),k(re)}finally{i.current=null}},[T,U,p,o,ee,g,$,t,D,s,a,x,k]);return{sendMessage:Q,retryLastTurn:ue,cancel:J,agentAvailable:p}}const QT=e=>{const t=S.useRef(new Map),n=S.useRef(!1),[r,s]=S.useState(null);S.useEffect(()=>{s(null),n.current=!1},[e]);const o=S.useCallback(d=>{if(!e)return;const f=d.trim();if(!f)return;const p=t.current.get(e)??[];if(p[p.length-1]===f)return;const v=[...p,f].slice(-50);t.current.set(e,v),s(null),n.current=!1},[e]),a=S.useCallback((d,f)=>{if(!e)return{value:null,applied:!1};const p=t.current.get(e)??[];if(p.length===0)return{value:null,applied:!1};const v=f.trim();if(d==="previous"){if(v.length>0&&r===null)return{value:null,applied:!1};const w=r??p.length,m=Math.max(0,w-1);return m===r?{value:null,applied:!1}:(s(m),n.current=!0,{value:p[m]??null,applied:!0})}if(r===null)return{value:null,applied:!1};const g=r+1;return g>=p.length?(s(null),n.current=!0,{value:"",applied:!0}):(s(g),n.current=!0,{value:p[g]??null,applied:!0})},[e,r]),i=S.useCallback(()=>{if(n.current){n.current=!1;return}r!==null&&s(null)},[r]),c=S.useCallback(()=>{e&&(t.current.delete(e),s(null),n.current=!1)},[e]);return{recordEntry:o,navigate:a,acknowledgeManualInput:i,clearHistory:c}},ZT=[{id:"builtin-goal",name:"goal",displayName:"Goal",description:"Set, inspect, or clear the session goal using /goal commands.",type:"goal",category:"session",tags:["goal","session","inspector"],metadata:{}}],eP=e=>[...ZT.filter(n=>!e.some(r=>r.name===n.name&&r.type===n.type)),...e],hs=class hs{constructor(){vt(this,"cache",null);vt(this,"cacheTime",0);vt(this,"CACHE_TTL",3e4)}static getInstance(){return hs.instance||(hs.instance=new hs),hs.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 Ue.get("commands");if(!Array.isArray(r.commands))throw new Error("Invalid command list response");return this.cache=eP(r.commands),this.cacheTime=n,ke("[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 Ue.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}};vt(hs,"instance");let Na=hs;const lo=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}},tP=({setContent:e,onWorkflowDraftChange:t,acknowledgeManualInput:n,currentSessionId:r,textAreaRef:s,content:o})=>{const[a,i]=S.useState(!1),[c,d]=S.useState(""),[f,p]=S.useState(null);S.useEffect(()=>{p(null),t==null||t(null)},[r,t]);const v=S.useCallback((P,A)=>{const O=P.trimStart(),$=`/${A}`;if(!O.startsWith($))return!1;const U=O.charAt($.length);return!U||/\s/.test(U)},[]),g=S.useCallback(()=>{p(null),t==null||t(null)},[t]),w=S.useCallback((P,A)=>{if(!v(P,A.name))return;const O=`/${A.name}`,U=P.trim().slice(O.length).trim(),J=[A.content,U].filter(Boolean).join(`
124
+
125
+ `);t==null||t({...A,content:J})},[v,t]),m=S.useCallback(P=>{n(),f&&!v(P,f.name)&&g(),f&&v(P,f.name)&&w(P,f),e(P)},[n,g,v,f,w,e]),x=S.useCallback(P=>{i(P.isTriggerActive),d(P.isTriggerActive?P.searchText:"")},[]),k=S.useCallback(async P=>{var D,ie,Q,ue,me,V;i(!1);const O=(ae=>{var le;if(ae.type==="goal"||ae.type!=="mcp")return ae.name;const ve=(le=ae.metadata)==null?void 0:le.originalName;if(typeof ve=="string"&&ve.trim())return ve.trim();const re=lo(ae.name);return re!=null&&re.toolName?re.toolName:ae.displayName||ae.name})(P),$=(ie=(D=s.current)==null?void 0:D.resizableTextArea)==null?void 0:ie.textArea,U=($==null?void 0:$.selectionStart)??o.length;let J,ee;const Y=o.substring(0,U).match(/\/([a-zA-Z0-9_-]*)$/);if(Y){const ae=U-Y[0].length,ve=o.substring(0,ae),re=o.substring(U);J=`${ve}/${O} ${re}`,ee=`${ve}/${O} `.length}else if(o.trim()==="")J=`/${O} `,ee=J.length;else{const ae=o.substring(0,U),ve=o.substring(U);J=`${ae}/${O} ${ve}`,ee=`${ae}/${O} `.length}if(e(J),setTimeout(()=>{$&&($.selectionStart=ee,$.selectionEnd=ee,$.focus())},0),P.type!=="workflow"){const ae={id:`command-draft-${P.id}`,name:O,content:"",createdAt:new Date().toISOString(),type:P.type,displayName:P.displayName,mcpAlias:P.type==="mcp"?P.name:void 0,mcpServerId:P.type==="mcp"?(Q=P.metadata)==null?void 0:Q.serverId:void 0,mcpServerName:P.type==="mcp"?(ue=P.metadata)==null?void 0:ue.serverName:void 0,mcpOriginalName:P.type==="mcp"?(me=P.metadata)==null?void 0:me.originalName:void 0};p(ae),t==null||t(ae);return}const z=Na.getInstance();try{const ae=P.id.startsWith("workflow-")?P.id.slice(9):P.id,re=((V=(await z.getCommand(P.type,ae)).content)==null?void 0:V.trim())||"";if(re){const le={id:`command-draft-${P.id}`,name:P.name,content:re,createdAt:new Date().toISOString(),type:P.type,displayName:P.displayName};p(le),t==null||t(le)}else g()}catch(ae){console.error(`[InputContainer] Failed to apply command '${P.name}':`,ae),g()}},[g,t,e,o,s]),C=S.useCallback(async P=>{try{const $=(await Na.getInstance().listCommands()).find(U=>U.id===P.id&&U.type===P.type);if(!$){console.error(`[InputContainer] Command '${P.id}' of type '${P.type}' not found`),e(`/${P.name} `),g();return}await k($)}catch(A){console.error(`[InputContainer] Failed to select command '${P.name}':`,A),e(`/${P.name} `),g()}},[k,g,e]),E=S.useCallback(()=>{i(!1)},[]),T=S.useCallback(async P=>{i(!1);try{const $=(await Na.getInstance().listCommands()).find(U=>U.name===P);$?await k($):(console.error(`[InputContainer] Command '${P}' not found in auto-complete`),e(`/${P} `),g())}catch(A){console.error(`[InputContainer] Failed to load command '${P}' in auto-complete:`,A),e(`/${P} `),g()}},[k,g,e]);return{selectedCommand:f,showCommandSelector:a,commandSearchText:c,clearCommandDraft:g,matchesCommandToken:v,handleInputChange:m,handleCommandChange:x,handleCommandSelect:C,handleCommandSelectorCancel:E,handleAutoComplete:T,setShowCommandSelector:i}};class nP{constructor(t={}){vt(this,"cache",null);vt(this,"options");vt(this,"validateWorkspacePath",this.validatePath.bind(this));vt(this,"getRecentWorkspaces",this.getRecent.bind(this));vt(this,"addRecentWorkspace",this.addRecent.bind(this));vt(this,"removeRecentWorkspace",this.removeRecent.bind(this));vt(this,"clearRecentWorkspaces",this.clearRecent.bind(this));vt(this,"getWorkspaceSuggestions",this.getCombinedSuggestions.bind(this));vt(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 Ue.post("workspace/validate",{path:t})}async getRecent(){var t;if(this.isCacheValid())return this.cache.recentWorkspaces;try{const n=await Ue.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 Ue.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 Ue.get("workspace/suggestions")}async browseFolder(t){return Ue.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(a=>({path:a.path,is_valid:!0,workspace_name:a.name})),...n];return this.deduplicateByPath(s).sort((a,i)=>{const c=n.findIndex(f=>f.path===a.path),d=n.findIndex(f=>f.path===i.path);return c!==-1&&d!==-1?c-d:c!==-1?-1:d!==-1?1:(a.workspace_name||"").localeCompare(i.workspace_name||"")})}async healthCheck(){var n,r,s;const t=Date.now();try{await Ue.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 Ue.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 rP=new nP,sP=({content:e,setContent:t,currentSessionId:n,currentChat:r,updateSession:s,messageApi:o})=>{const[a,i]=S.useState(new Map),[c,d]=S.useState([]),[f,p]=S.useState(!1),[v,g]=S.useState(""),[w,m]=S.useState(!1),[x,k]=S.useState(""),[C,E]=S.useState(!1),[T,P]=S.useState(null),[A,O]=S.useState(!1),$=S.useRef(null);S.useEffect(()=>{w&&k((r==null?void 0:r.config.workspacePath)??"")},[w,r==null?void 0:r.config.workspacePath]),S.useEffect(()=>{p(!1),g(""),d([]),i(new Map),$.current=(r==null?void 0:r.config.workspacePath)??null},[n,r==null?void 0:r.config.workspacePath]);const U=S.useCallback(async(ie,Q)=>{E(!0),d([]),P(null);try{const ue=await rP.listWorkspaceFiles(Q);d(ue),$.current=Q}catch(ue){console.error("Failed to load workspace files:",ue),P(ue instanceof Error?ue.message:"Workspace file browsing is unavailable.")}finally{E(!1)}},[]),J=S.useCallback(ie=>{if(g(ie.searchText),!ie.isTriggerActive){p(!1);return}if(!n||!r){p(!1);return}const Q=r.config.workspacePath;if(!Q){k(""),m(!0),p(!1);return}p(!0),($.current!==Q||c.length===0)&&U(n,Q)},[r,n,U,c.length]),ee=S.useCallback(ie=>{const Q=e.lastIndexOf("@");let ue;Q>=0&&e.substring(Q).match(/^@[a-zA-Z0-9._\\-\\/\\\\]*$/)?ue=`${e.slice(0,Q)}@${ie.name} `:ue=e.trim()?`${e.trim()} @${ie.name} `:`@${ie.name} `,t(ue),i(me=>{const V=new Map(me);return V.set(ie.name,ie),V}),p(!1),g("")},[e,t]),I=S.useCallback(()=>{p(!1)},[]),Y=S.useCallback(()=>{if(!n||!r)return;const ie=r.config.workspacePath;if(!ie){k(""),m(!0),p(!1);return}g(""),p(!0),($.current!==ie||c.length===0)&&U(n,ie)},[r,n,U,c.length]),z=S.useCallback(()=>{m(!1),k("")},[]),D=S.useCallback(async ie=>{if(!r||!n)return;const Q=ie.trim();if(!Q){o.error(kt.t("chat.view.workspacePathEmpty"));return}O(!0);try{s(n,{config:{...r.config,workspacePath:Q}}),m(!1),k(""),p(!1),P(null)}catch(ue){const me=ue instanceof Error?ue.message:"Unable to save workspace path";o.error(me)}finally{O(!1)}},[r,n,o,s]);return{fileReferences:a,setFileReferences:i,workspaceFiles:c,showFileSelector:f,setShowFileSelector:p,fileSearchText:v,isWorkspaceLoading:C,workspaceError:T,isWorkspaceModalVisible:w,workspacePathInput:x,isSavingWorkspace:A,setWorkspacePathInput:k,setIsWorkspaceModalVisible:m,handleFileReferenceChange:J,handleFileReferenceSelect:ee,handleFileSelectorCancel:I,handleFileReferenceButtonClick:Y,handleWorkspaceModalCancel:z,handleWorkspaceModalSubmit:D,fetchWorkspaceFiles:U}},oP=()=>{const[e,t]=S.useState([]),n=S.useCallback(o=>{t(a=>[...a,...o])},[]),r=S.useCallback(o=>{t(a=>a.filter(i=>i.id!==o))},[]),s=S.useCallback(()=>{t([])},[]);return{attachments:e,setAttachments:t,handleAttachmentsAdded:n,handleAttachmentRemove:r,handleClearAttachments:s}},Vd="zenith.usedModels.v1";function Va(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(Vd);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="string"&&n.trim().length>0):[]}catch{return[]}}function gL(){return Va()}function aP(e){const t=typeof e=="string"?e.trim():"";if(!t||typeof window>"u")return Va();const n=Va().filter(s=>s!==t),r=[t,...n];try{window.localStorage.setItem(Vd,JSON.stringify(r))}catch{}return r}function yL(e){const t=typeof e=="string"?e.trim():"";if(!t||typeof window>"u")return Va();const n=Va().filter(r=>r!==t);try{window.localStorage.setItem(Vd,JSON.stringify(n))}catch{}return n}const iP=({attachments:e,referenceText:t,selectedWorkflow:n,matchesWorkflowToken:r,fileReferences:s,reasoningEffort:o,usedModelName:a,sendMessage:i,recordEntry:c,clearWorkflowDraft:d,setContent:f,setReferenceText:p,setAttachments:v,setFileReferences:g})=>({handleSubmit:S.useCallback(async(m,x)=>{const k=m.trim(),C=MT(e),E=(t==null?void 0:t.trim())??"";let T=k,P;if(n!=null&&n.content&&n.type==="workflow"){const O=`/${n.name}`;if(r(k,n.name)){const U=k.slice(O.length).trim();T=[n.content,U].filter(Boolean).join(`
126
+
127
+ `)}}else if((n==null?void 0:n.type)==="skill"){const O=`/${n.name}`;if(r(k,n.name)){const U=k.slice(O.length).trim();T=[`[User explicitly selected skill: ${n.displayName||n.name} (ID: ${n.name})]`,U].filter(Boolean).join(`
128
+
129
+ `),P=[n.name]}}else if((n==null?void 0:n.type)==="mcp"){const O=`/${n.name}`;if(r(k,n.name)){const U=k.slice(O.length).trim();T=[`[User explicitly selected MCP tool: ${n.mcpAlias||n.displayName||n.name}]`,U].filter(Boolean).join(`
130
+
131
+ `)}}if(!T&&!C&&(!x||x.length===0))return;const A=[E,T,C].filter(Boolean).join(`
132
+
133
+ `);if(c(A),aP(a??Z.getState().selectedModel),f(""),d(),s.size>0){const O=Array.from(A.matchAll(/@([^\\s]+)/g));if(O.length>0){const $=[];for(const U of O){const J=U[1],ee=s.get(J);ee&&$.push(ee)}if($.length>0){const U=JSON.stringify({type:"file_reference",paths:$.map(J=>J.path),display_text:A});await i(U,x,o,P)}else await i(A,x,o,P)}else await i(A,x,o,P)}else await i(A,x,o,P);p(null),v([]),g(new Map)},[e,d,s,r,c,o,n,i,a,v,f,g,p,t])}),lP=({currentSessionId:e,currentChat:t,currentMessages:n,reasoningEffort:r,retryLastTurn:s,navigate:o})=>{const a=S.useCallback(async(c="regenerate")=>{if(!e||!t)return;const d=[...n];d.length===0||[...d].reverse().findIndex(p=>p.role==="user")===-1||await s(r,c)},[t,e,n,r,s]),i=S.useCallback((c,d)=>{const f=o(c,d);return f.applied?f.value:null},[o]);return{retryLastMessage:a,handleHistoryNavigate:i}},cP=({referenceText:e,isToolSpecificMode:t,isRestrictConversation:n,allowedTools:r,autoToolPrefix:s,t:o})=>o(e?"chat.input.placeholderWithReference":"chat.input.placeholderWithWorkflows");function uP({value:e,onChange:t,disabled:n,dataTestId:r,appearance:s="default"}){const{token:o}=st.useToken(),a=mt(m=>m.catalog),i=mt(m=>m.getProviderDisplayLabel);S.useEffect(()=>{a||mt.getState().loadCatalog()},[a]);const c=S.useMemo(()=>{if(!(a!=null&&a.models))return[];const m={};for(const C of a.models){const E=C.reference.provider;m[E]||(m[E]={display:C.provider_display_name,models:[]}),m[E].models.push(C)}const x=[];return Object.keys(m).forEach((C,E)=>{const T=m[C];E>0&&x.push({type:"divider"}),x.push({type:"group",label:T.display,children:T.models.map(P=>({key:`${P.reference.provider}/${P.reference.model}`,label:l.jsxs(ze,{size:4,children:[l.jsx("span",{children:P.display_name}),P.capabilities.supports_vision&&l.jsx(Ye,{color:"blue",style:{fontSize:10,lineHeight:"16px",padding:"0 3px"},children:"Vision"})]})}))})}),x},[a]),d=e?`${e.provider}/${e.model}`:void 0,f=e?i(e.provider):void 0,p=e?`${f||e.provider}/${e.model}`:kt.t("chat.model.selectModel"),v=S.useCallback(m=>{const[x,...k]=m.key.split("/"),C=k.join("/");x&&C&&t({provider:x,model:C})},[t]),g=s==="contrast"?{minWidth:220,width:"100%",justifyContent:"space-between",padding:"0 12px",height:36,borderRadius:o.borderRadiusLG,background:o.colorBgElevated,border:`1px solid ${o.colorBorder}`,boxShadow:"none"}:{minWidth:146,padding:"0 12px",height:36,borderRadius:18},w=s==="contrast"?{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,textAlign:"left"}:{maxWidth:150,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13};return l.jsx(ze,{size:4,"data-tour-id":"model-picker",children:l.jsx(Zs,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:d?[d]:[],items:c,style:{maxHeight:"50vh",overflowY:"auto"},onClick:v},disabled:n,children:l.jsx(Ee,{"data-testid":r,type:s==="contrast"?"default":"text",size:"small",block:s==="contrast",disabled:n,style:g,title:p,children:l.jsxs(ze,{size:4,style:{width:"100%",justifyContent:"space-between"},children:[l.jsx("span",{style:w,children:p}),l.jsx(eo,{style:{fontSize:10}})]})})})})}const sp="chat-send-message",op="reference-text",dP="chat-model-options-cache-v1",iv=24*60*60*1e3,fP=["low","medium","high","xhigh","max"],hP=[],pP=1024,mP=3,gP={copilot:"GitHub Copilot",openai:"OpenAI",anthropic:"Anthropic",gemini:"Google Gemini",bodhi:"Bodhi"},yP=[{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"}],vP=[{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"}],bP=[{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"}],SP=[{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4o-mini",label:"GPT-4o Mini"}],lv=e=>`${dP}:${e}`,wP=e=>{if(typeof window>"u")return null;try{const t=localStorage.getItem(lv(e));if(!t)return null;const n=JSON.parse(t);return!n||!Array.isArray(n.options)||Date.now()-n.timestamp>iv?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}},xP=(e,t)=>{if(!(typeof window>"u"))try{const n={timestamp:Date.now(),options:t};localStorage.setItem(lv(e),JSON.stringify(n))}catch{}},_P=async e=>{const t=On.getInstance();try{const n=await t.loadModelOptionsCache(e);if(n)return Date.now()-n.timestamp>iv?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string")}catch{}return wP(e)},CP=async(e,t)=>{const n=On.getInstance();try{await n.saveModelOptionsCache(e,t,Date.now())}catch{}xP(e,t)},kP=({resolvedProviderType:e,currentProvider:t,activeModel:n,getErrorMessage:r,redirectToProviderSettingsIfNeeded:s})=>{const[o,a]=S.useState([]),[i,c]=S.useState(!1),[d,f]=S.useState(null);S.useEffect(()=>{(async()=>{const m=await _P(e);a(m??[]),f(null)})()},[e]);const p=S.useMemo(()=>({openai:[...yP],anthropic:[...vP],gemini:[...bP],copilot:[...SP],bodhi:[]})[e]||[],[e]),v=S.useMemo(()=>{const x=[...o.length>0?o:p];return n&&!x.some(k=>k.value===n)&&x.unshift({value:n,label:n}),x},[o,p,n]),g=S.useCallback(async(m,x,k)=>{if(!(!(k!=null&&k.force)&&o.length>0))try{c(!0),f(null);const E=(x==="copilot"?await by.getModels(m):p).map(T=>({value:typeof T=="string"?T:T.value,label:typeof T=="string"?T:T.label}));a(E),await CP(x,E)}catch(C){f(r(C))}finally{c(!1)}},[p,r,o.length]),w=S.useCallback(m=>{m&&(s()||i||o.length>0||g(t,e))},[t,e,g,i,o.length,s]);return{modelOptions:o,isModelOptionsLoading:i,modelOptionsError:d,resolvedModelOptions:v,handleModelDropdownVisibleChange:w}},$o=(e,t)=>{},TP=({sessionId:e,reasoningEffort:t,activeModelRef:n,isFlagOn:r,messageApi:s,setContent:o,pendingQuestionToolCallId:a,t:i})=>{const c=Z(m=>m.markRespondStart),d=Z(m=>m.markSettleTimeout),f=Z(m=>m.applyExecutionStarted),p=Z(m=>m.clearPendingQuestion),v=S.useCallback(()=>{var x,k;if(!e)return null;const m=(x=Z.getState().executionBySession)==null?void 0:x[e];return m?{phase:m.phase,generation:m.generation,backendRunId:m.backendRunId??null,backendIsRunning:m.backend.isRunning,hasPendingQuestion:m.interaction.pendingQuestion!=null,pendingQuestionToolCallId:((k=m.interaction.pendingQuestion)==null?void 0:k.toolCallId)??null,tokenCount:m.stream.tokenCount,hasTokens:m.stream.hasTokens,activeReasons:m.activeReasons}:null},[e]),g=S.useCallback(m=>m?!!so(m)(Z.getState()):!1,[]);return{handleRespondSubmit:S.useCallback(async m=>{const x=m.trim();if(!x||!e)return;const C=so(e)(Z.getState());if(C&&!C.allowCustom&&C.options.length>0&&!C.options.includes(x)){s.warning(i("components.questionDialog.selectOptionWarning"));return}$o("input.respond:start",{trimmedLength:x.length,executionBefore:v()});const E=c(e,a??null);$o("input.respond:afterMarkRespondStart",{executionAfterMarkRespondStart:v()}),await new Promise(T=>setTimeout(T,0));try{const T={response:x,reasoning_effort:t};r()&&n&&(T.model_ref=n,T.provider=n.provider);const P=await ht.post(`respond/${e}`,T);$o("input.respond:response",{sessionId:e,result:P,executionAfterResponse:v()}),s.success(i("components.questionDialog.responseSubmittedContinue")),o(""),p(e),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Yu,{detail:{sessionId:e}}));const A=P==null?void 0:P.auto_resume_status,O=P==null?void 0:P.run_id;$o("input.respond:resumeDecision",{sessionId:e,resumeStatus:A,runId:O??null,newGeneration:E,executionBeforeResumeDecision:v()}),A==="started"||A==="already_running"?(f(e,O??"",E),$o("input.respond:afterApplyExecutionStarted",{sessionId:e,resumeStatus:A,runId:O??null,newGeneration:E,executionAfterApplyExecutionStarted:v()})):(A==="error"||!A)&&(console.error("[InputContainer] Failed to auto-resume agent execution"),d(e))}catch(T){console.error("[InputContainer] Failed to submit respond:",T),s.error(T instanceof Error?T.message:i("components.questionDialog.submitFailed")),d(e)}},[e,t,n,r,s,o,p,c,d,f,v,a,i]),shouldUseRespondModeForSession:g}},PP=({sessionId:e,currentChat:t,updateSession:n,messageApi:r,recordEntry:s,clearCommandDraft:o,textAreaRef:a,setContent:i})=>{var m;const c=((m=t==null?void 0:t.config)==null?void 0:m.goldConfig)??null,d=(c==null?void 0:c.enabled)===!0,f=(c==null?void 0:c.goal)??(c==null?void 0:c.evaluation_prompt)??"",p=S.useCallback((x,k)=>({...c??{},enabled:x,auto_answer_enabled:x,auto_continue_enabled:x,goal:k.trim()||void 0,max_output_tokens:(c==null?void 0:c.max_output_tokens)??pP,max_auto_continuations:(c==null?void 0:c.max_auto_continuations)??mP}),[c]),v=S.useCallback(x=>{!e||!t||n(e,{config:{...t.config,goldConfig:x}})},[t,e,n]),g=S.useCallback(()=>{i(""),o(),requestAnimationFrame(()=>{var x;(x=a.current)==null||x.focus()})},[o,i,a]);return{handleGoalCommand:S.useCallback(async x=>{const k=x.trim();if(!/^\/goal(?:\s|$)/i.test(k))return!1;if(!e||!t)return r.warning("Create or select a session before using /goal."),!0;const C=k.replace(/^\/goal(?:\s+)?/i,"").trim(),E=C.toLowerCase();if(s(k),!C||E==="status"){const T=f.trim(),P=T.length>120?`${T.slice(0,120)}…`:T;return r.info(d?`Goal is enabled for this session${P?`: ${P}`:"."}`:"Goal is disabled for this session. Use /goal <prompt> to enable it."),g(),!0}if(["off","disable","disabled"].includes(E))return v(p(!1,f)),r.success("Goal disabled for this session."),g(),!0;if(["clear","reset"].includes(E))return v(p(!1,"")),r.success("Goal cleared for this session."),g(),!0;if(["on","enable","enabled"].includes(E)){const T=f.trim();return T?(v(p(!0,T)),r.success("Goal enabled for this session."),g(),!0):(r.warning("Usage: /goal <prompt> to enable Goal for this session."),!0)}return v(p(!0,C)),r.success("Goal enabled for this session."),g(),!0},[p,g,t,f,d,r,v,s,e])}},EP=S.lazy(()=>Lt(()=>import("./index-Cqta1ICV.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),MP=S.lazy(()=>Lt(()=>import("./index-DPB3OsNN.js"),__vite__mapDeps([8,1,2,3,4,5,6,9]),import.meta.url)),RP=S.lazy(()=>Lt(()=>import("./index-DRR_PLI3.js"),__vite__mapDeps([10,1,2,3,5,4,6]),import.meta.url)),AP=S.lazy(()=>Lt(()=>import("./index-Do83dUqx.js"),__vite__mapDeps([11,1,2,3]),import.meta.url)),{useToken:jP}=st,IP=({sessionId:e,onWorkflowDraftChange:t,statusIndicator:n})=>{var yr,Un,Gr,hi,qn,mo;const{t:r}=qe(),s=S.useRef(null),{token:o}=jP(),a=Wl(),i=Fa(xe=>xe.open),c=Z(xe=>e??xe.currentSessionId),d=Z(xe=>xe.currentSessionId),f=Z(mr(c)),p=S.useMemo(()=>(f==null?void 0:f.messages)||[],[f==null?void 0:f.messages]),v=Z(xe=>xe.addMessage),g=Z(xe=>xe.updateSession),w=Z(jy(c)),m=Z(Iy(c)),k=Z(Oy(c))||(f==null?void 0:f.isRunning)===!0&&m,C=Z(so(c)),E=Kd(c),T=av((yr=f==null?void 0:f.config)==null?void 0:yr.model_ref),P=mt(xe=>xe.isProviderModelRefEnabled),A=Z(xe=>c?xe.inputStates[c]:void 0),O=Z(xe=>xe.setInputContent),$=Z(xe=>xe.setReferenceText),U=Z(xe=>xe.setInputReasoningEffort),J=mt(xe=>xe.currentProvider),ee=mt(xe=>xe.providerConfig),I=mt(xe=>xe.providerInstances),Y=mt(xe=>xe.getProviderType),z=S.useMemo(()=>Y(J),[J,Y]),[D,ie]=S.useState(!1),Q=(A==null?void 0:A.content)||"",ue=(A==null?void 0:A.referenceText)||null,me=S.useMemo(()=>{var xe,Ft;return fy(ee,T,((Ft=(xe=f==null?void 0:f.config)==null?void 0:xe.model_ref)==null?void 0:Ft.provider)??J,I)},[T,(Gr=(Un=f==null?void 0:f.config)==null?void 0:Un.model_ref)==null?void 0:Gr.provider,ee,J,I]),V=S.useMemo(()=>c?Ry(c):void 0,[c]),ae=k_({sessionEffort:(hi=f==null?void 0:f.config)==null?void 0:hi.reasoningEffort,inputEffort:A==null?void 0:A.reasoningEffort,persistedEffort:V,providerDefault:me}),ve=S.useCallback(xe=>{c&&O(c,xe)},[c,O]),re=S.useCallback(xe=>{c&&$(c,xe)},[c,$]),le=S.useCallback(async xe=>{if(c&&(U(c,xe),!!f))try{await Vs.patchSession(c,{reasoning_effort:xe}),g(c,{config:{...f.config,reasoningEffort:xe}},{skipBackendPatch:!0})}catch(Ft){console.warn("[InputContainer] Failed to persist reasoning effort:",Ft)}},[f,c,U,g]),{sendMessage:de,retryLastTurn:pe,cancel:Ae}=JT({sessionId:c,addMessage:v,updateSession:g});S.useEffect(()=>{if(typeof window>"u")return;const xe=ft=>ft?c===ft:c!==null&&c===d,Ft=ft=>{const $t=ft;if(!$t.detail||typeof $t.detail.text!="string")return;const on=typeof $t.detail.sessionId=="string"?$t.detail.sessionId:null;if(!xe(on))return;const Hn=$t.detail.text.trim();Hn&&($t.detail.handled=!0,re(Hn),requestAnimationFrame(()=>{var vn;(vn=s.current)==null||vn.focus()}))},Xt=ft=>{var Hn;const $t=ft,on=typeof((Hn=$t.detail)==null?void 0:Hn.sessionId)=="string"?$t.detail.sessionId:null;xe(on)&&($t.detail&&($t.detail.handled=!0),requestAnimationFrame(()=>{var vn;(vn=s.current)==null||vn.focus()}))};return window.addEventListener(op,Ft),window.addEventListener(Tl,Xt),()=>{window.removeEventListener(op,Ft),window.removeEventListener(Tl,Xt)}},[d,c,re]);const{message:Me}=Tn.useApp(),F=!1,L=!1,fe=hP,Se=void 0,{recordEntry:De,navigate:We,acknowledgeManualInput:Ge}=QT(c),{attachments:He,setAttachments:at,handleAttachmentsAdded:St,handleAttachmentRemove:Ot,handleClearAttachments:xt}=oP(),Fe=tP({setContent:ve,onWorkflowDraftChange:t,acknowledgeManualInput:Ge,currentSessionId:c,textAreaRef:s,content:Q}),lt=sP({content:Q,setContent:ve,currentSessionId:c,currentChat:f,updateSession:g,messageApi:Me}),{setShowFileSelector:_t}=lt;S.useEffect(()=>{Fe.showCommandSelector&&_t(!1)},[Fe.showCommandSelector,_t]);const{handleSubmit:Qt}=iP({attachments:He,referenceText:ue,selectedWorkflow:Fe.selectedCommand,matchesWorkflowToken:Fe.matchesCommandToken,fileReferences:lt.fileReferences,reasoningEffort:ae,usedModelName:(T==null?void 0:T.model)??((mo=(qn=f==null?void 0:f.config)==null?void 0:qn.model_ref)==null?void 0:mo.model),sendMessage:de,recordEntry:De,clearWorkflowDraft:Fe.clearCommandDraft,setContent:ve,setReferenceText:re,setAttachments:at,setFileReferences:lt.setFileReferences}),At=C?{sessionId:c??"",question:C.question,options:C.options,allowCustom:C.allowCustom,toolCallId:C.toolCallId}:null,Tt=!!At,Ht=(At==null?void 0:At.options)||[],$n=(At==null?void 0:At.allowCustom)??!0,{handleRespondSubmit:Zt,shouldUseRespondModeForSession:he}=TP({sessionId:c,reasoningEffort:ae,activeModelRef:T,isFlagOn:P,messageApi:Me,setContent:ve,pendingQuestionToolCallId:(At==null?void 0:At.toolCallId)??null,t:r});PP({sessionId:c,currentChat:f,updateSession:g,messageApi:Me,recordEntry:De,clearCommandDraft:Fe.clearCommandDraft,textAreaRef:s,setContent:ve});const Ne=S.useCallback(async(xe,Ft)=>{if(he(c)){await Zt(xe);return}await Qt(xe,Ft)},[Zt,Qt,c,he]),Ie=S.useCallback(async(xe,Ft)=>{await Ne(xe,Ft)},[Ne]);S.useEffect(()=>{if(typeof window>"u")return;const xe=Ft=>{var Hn,vn,Ms;const Xt=Ft;if(!Xt.detail)return;const ft=typeof Xt.detail.sessionId=="string"?Xt.detail.sessionId:null;if(!(ft?c===ft:c!==null&&c===d))return;Xt.detail.handled=!0;const on=(Hn=Xt.detail)==null?void 0:Hn.content;if(typeof on!="string"||on.trim().length===0){(Ms=(vn=Xt.detail)==null?void 0:vn.reject)==null||Ms.call(vn,new Error("External send message content is empty"));return}Ne(on,void 0).then(()=>{var sr,bn;(bn=(sr=Xt.detail)==null?void 0:sr.resolve)==null||bn.call(sr)}).catch(sr=>{var bn,go;(go=(bn=Xt.detail)==null?void 0:bn.reject)==null||go.call(bn,sr)})};return window.addEventListener(sp,xe),()=>{window.removeEventListener(sp,xe)}},[d,c,Ne]);const{retryLastMessage:Je,handleHistoryNavigate:Wt}=lP({currentSessionId:c,currentChat:f,currentMessages:p,reasoningEffort:ae,retryLastTurn:pe,navigate:We}),yn=S.useCallback(()=>re(null),[re]),Oe=S.useMemo(()=>ee.providers[J],[ee,J]),Dt=S.useMemo(()=>!Oe||typeof Oe!="object"?!1:z==="copilot"?Object.keys(Oe).length>0:"api_key"in Oe?typeof Oe.api_key=="string"&&Oe.api_key.trim().length>0:!1,[z,Oe]),en=S.useCallback(()=>Dt?!1:(i("chat"),Me.warning(r("chat.view.providerNotConfigured")),!0),[Dt,Me,i,r]),tn=S.useCallback(xe=>xe instanceof Error&&xe.message.trim()?xe.message:r("chat.view.unknownError"),[r]),{isModelOptionsLoading:Re,modelOptionsError:Zn,resolvedModelOptions:Tr,handleModelDropdownVisibleChange:Pr}=kP({resolvedProviderType:z,currentProvider:J,activeModel:E,getErrorMessage:tn,redirectToProviderSettingsIfNeeded:en}),Vr=S.useCallback(async xe=>{var Ft,Xt,ft;if(!(!xe||xe===E)&&!D)try{if(en())return;if(ie(!0),!c||!f){c&&g(c,{config:{systemPromptId:((Ft=f==null?void 0:f.config)==null?void 0:Ft.systemPromptId)||"default",baseSystemPrompt:((Xt=f==null?void 0:f.config)==null?void 0:Xt.baseSystemPrompt)||"",lastUsedEnhancedPrompt:((ft=f==null?void 0:f.config)==null?void 0:ft.lastUsedEnhancedPrompt)??null,...(f==null?void 0:f.config)||{},model:xe}});return}await Vs.patchSession(c,{model:xe}),g(c,{config:{...f.config,model:xe}},{skipBackendPatch:!0}),Me.success(r("settings.providerTab.modelUpdated"))}catch($t){Me.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${tn($t)}`)}finally{ie(!1)}},[E,f,tn,D,Me,en,c,r,g]),er=S.useCallback(async xe=>{if(!c||!(f!=null&&f.config)){mt.getState().setSelectedModelRef(xe);return}if(!D)try{ie(!0),await Vs.patchSession(c,{model:xe.model,model_ref:xe,provider:xe.provider}),mt.getState().setSelectedModelRef(xe),g(c,{config:{...f.config,model:xe.model,model_ref:xe}},{skipBackendPatch:!0}),Me.success(r("settings.providerTab.modelUpdated"))}catch(Ft){Me.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${tn(Ft)}`)}finally{ie(!1)}},[f==null?void 0:f.config,tn,D,Me,c,r,g]),po=S.useMemo(()=>cP({referenceText:ue,isToolSpecificMode:F,isRestrictConversation:L,allowedTools:fe,autoToolPrefix:Se,t:r}),[ue,F,L,fe,Se,r]),Es=Tt&&$n?r("chat.respond.customAnswerPlaceholder"):Tt?r("components.questionDialog.selectOptionWarning"):po,Wn=Tt?r("chat.respond.submitToolResult","Submit tool result"):void 0,Cn=S.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]),tr=S.useMemo(()=>Cn[ae]??ae,[ae,Cn]),nr=S.useMemo(()=>l.jsx(Zs,{trigger:["click"],placement:"topLeft",disabled:!E||m,menu:{selectable:!0,selectedKeys:[ae],items:fP.map(xe=>({key:xe,label:Cn[xe]})),onClick:({key:xe})=>{le(xe)}},children:l.jsx(Ee,{type:"text",size:"small",disabled:!E||w,style:{minWidth:a?74:88,padding:a?"0 8px":"0 12px",height:36,borderRadius:18,color:ae==="medium"?o.colorTextSecondary:o.colorPrimary},title:r("chat.input.reasoningTitle",{label:tr}),children:l.jsxs(ze,{size:6,children:[l.jsx(Fw,{}),l.jsx("span",{children:tr}),l.jsx(eo,{style:{fontSize:10}})]})})}),[E,tr,m,a,w,ae,Cn,le,r,o.colorPrimary,o.colorTextSecondary]),Ce=E||r(Dt?"chat.model.selectModel":"chat.model.configureProvider"),Xe=S.useMemo(()=>Tr.length>0?Tr.map(xe=>({key:xe.value,label:xe.label})):[{key:"__no_models__",label:Zn||r("chat.model.noModelsAvailable"),disabled:!0}],[Tr,Zn,r]),yt=S.useMemo(()=>l.jsx(Ee,{type:"text",size:"small",disabled:w||D,onClick:()=>{Dt||en()},style:{minWidth:a?112:146,padding:a?"0 8px":"0 12px",height:36,borderRadius:18,color:Zn?o.colorError:o.colorTextSecondary},title:Ce,children:l.jsxs(ze,{size:6,children:[Re?l.jsx(Qs,{}):l.jsx(kd,{}),l.jsx("span",{style:{maxWidth:a?84:128,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Ce}),l.jsx(eo,{style:{fontSize:10}})]})}),[w,D,Dt,en,a,Zn,o.colorError,o.colorTextSecondary,Ce,Re]),Pt=S.useMemo(()=>P()?l.jsx(uP,{value:T,onChange:er,disabled:w||D}):Dt?l.jsx(Zs,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:E?[E]:[],items:Xe,style:{maxHeight:"50vh",overflowY:"auto"},onClick:({key:xe})=>{xe!=="__no_models__"&&Vr(String(xe))}},onOpenChange:Pr,disabled:m||D,children:yt}):yt,[P,T,er,w,D,Dt,E,Xe,Vr,Pr,m,yt]),nn=S.useMemo(()=>l.jsxs(ze,{size:0,wrap:!0,children:[Pt,nr]}),[Pt,nr]),gr=S.useCallback(xe=>({isValid:!0}),[L,Se,r]),fi=S.useMemo(()=>p.some(xe=>xe.role==="user"),[p]),rr=S.useMemo(()=>({isStreaming:w,isInputLocked:m,canCancel:k,hasMessages:fi,allowRetry:!0,onRetry:Je,onCancel:Ae,onHistoryNavigate:Wt}),[w,m,k,fi,Je,Ae,Wt]);return l.jsxs("div",{style:{padding:`${o.paddingXXS}px ${o.paddingXS}px`,background:"transparent",borderTop:"none",boxShadow:"none",width:"100%",position:"relative",overflow:"visible"},children:[!E&&l.jsx(Jn,{type:"warning",showIcon:!0,icon:l.jsx(Nl,{}),message:r(Dt?"chat.model.noModelSelected":"chat.model.providerNotConfigured"),description:r(Dt?"chat.model.selectModelHint":"chat.model.configureProviderHint"),action:Dt?void 0:l.jsx(ze,{children:l.jsx("a",{onClick:()=>i("chat"),children:r("chat.model.openSettings")})}),style:{marginBottom:o.marginSM}}),F,ue&&l.jsx($T,{text:ue,onClose:yn}),He.length>0&&l.jsx(S.Suspense,{fallback:l.jsx(no,{size:"small"}),children:l.jsx(EP,{files:He,onRemove:Ot,onClear:xt})}),Tt&&Ht.length>0&&l.jsx("div",{style:{marginBottom:o.marginSM},children:l.jsx(ze,{wrap:!0,size:[8,8],children:Ht.map(xe=>l.jsx(Ee,{size:"small",onClick:()=>{Zt(xe)},disabled:m,children:xe},xe))})}),l.jsx(IT,{value:Q,onChange:Fe.handleInputChange,onSubmit:Ie,placeholder:Es,allowImages:!0,disabled:!E||Tt&&!$n&&Ht.length>0,statusIndicator:n,submitButtonLabel:Wn,isWorkflowSelectorVisible:Fe.showCommandSelector,textAreaRef:s,validateMessage:gr,onAttachmentsAdded:St,onWorkflowCommandChange:Fe.handleCommandChange,onFileReferenceChange:lt.handleFileReferenceChange,onFileReferenceButtonClick:lt.handleFileReferenceButtonClick,leftControlsExtra:nn,interaction:rr}),l.jsx(S.Suspense,{fallback:null,children:l.jsx(MP,{visible:Fe.showCommandSelector,onSelect:Fe.handleCommandSelect,onCancel:Fe.handleCommandSelectorCancel,onAutoComplete:Fe.handleAutoComplete,searchText:Fe.commandSearchText})}),lt.showFileSelector&&l.jsx(S.Suspense,{fallback:l.jsx(no,{size:"small"}),children:l.jsx(AP,{visible:lt.showFileSelector,files:lt.workspaceFiles,searchText:lt.fileSearchText,loading:lt.isWorkspaceLoading,error:lt.workspaceError,onSelect:lt.handleFileReferenceSelect,onCancel:lt.handleFileSelectorCancel,onChangeWorkspace:()=>{lt.setWorkspacePathInput((f==null?void 0:f.config.workspacePath)??""),lt.setIsWorkspaceModalVisible(!0)}})}),l.jsx(S.Suspense,{fallback:null,children:l.jsx(RP,{open:lt.isWorkspaceModalVisible,initialPath:lt.workspacePathInput,loading:lt.isSavingWorkspace,onSubmit:lt.handleWorkspaceModalSubmit,onCancel:lt.handleWorkspaceModalCancel})})]})},OP={maxLines:8,maxCharacters:500},Wr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ir=e=>typeof e=="string"?e:void 0,is=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,ap=e=>typeof e=="boolean"?e:void 0,Yl=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);return Wr(n)?n:null}catch{return null}},cv=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,`
134
+ `).replace(/\\t/g," ").replace(/\\r/g,"\r"):e,dr=e=>Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>cv(t).trim()).filter(Boolean):[],Gt=e=>{if(typeof e!="string")return;const t=cv(e).trim();return t.length>0?t:void 0},$P=e=>{if(!Wr(e))return;const t=Gt(e.graph);if(t)return{title:Gt(e.title),graph:t}},LP=e=>{if(!Wr(e))return;const t=Gt(e.summary)??Gt(e.conclusion);if(t)return{title:Gt(e.title)||"Conclusion",summary:t,key_points:dr(e.key_points),next_steps:dr(e.next_steps),confidence:Gt(e.confidence),mermaid:$P(e.mermaid)}},DP=e=>{const t=Yl(e);if(!t)return null;const n=Gt(t.conclusion);return!n||t.type!=null&&t.type!=="conclusion"?null:{type:"conclusion",title:Gt(t.title)||"Conclusion",conclusion:n,key_points:dr(t.key_points),next_steps:dr(t.next_steps),confidence:Gt(t.confidence)}},FP=e=>{const t=Yl(e);if(!t)return null;const n=Gt(t.question);if(!n)return null;const r=Gt(t.status);return r&&r!=="awaiting_user_input"&&r!=="awaiting_permission_approval"?null:{question:n,options:dr(t.options),allow_custom:typeof t.allow_custom=="boolean"?t.allow_custom:!0,conclusion:LP(t.conclusion)}},NP=e=>{const t=Yl(e);return Gt(t==null?void 0:t.status)==="awaiting_permission_approval"},zP=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(`
135
+ `)),e.next_steps.length>0&&t.push(["**Next steps**",...e.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
136
+ `)),(n=e.mermaid)!=null&&n.graph){const r=e.mermaid.title?`**${e.mermaid.title}**
137
+
138
+ `:`**Flow**
139
+
140
+ `;t.push(`${r}\`\`\`mermaid
141
+ ${e.mermaid.graph}
142
+ \`\`\``)}return t.join(`
143
+
144
+ `)},uv=e=>{const t=DP(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(`
145
+ `)),t.next_steps.length>0&&n.push(["**Next steps**",...t.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
146
+ `)),n.join(`
147
+
148
+ `)},co=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);if(!Wr(n))return null;const r=Ir(n.file_path),s=Ir(n.operation),o=n.diff;if(!r||!s||!Wr(o))return null;const a=Ir(o.unified);if(!a)return null;const i=n.checkpoint,c=Wr(i)?{created:ap(i.created)??!1,id:Ir(i.id),path:Ir(i.path),size_bytes:is(i.size_bytes),reason:Ir(i.reason)}:void 0;return{operation:s,message:Ir(n.message),file_path:r,workspace:Ir(n.workspace),checkpoint:c,diff:{unified:a,old_line_count:is(o.old_line_count),new_line_count:is(o.new_line_count),added_lines:is(o.added_lines),removed_lines:is(o.removed_lines),truncated:ap(o.truncated)}}}catch{return null}},dv=e=>{const t=Yl(e);if(!t)return null;const n=Gt(t.action);if(n!=="inspect"&&n!=="rebuild")return null;const r=t.data;if(!Wr(r))return null;const s=Gt(r.scope),o=is(r.total_memories);if(!s||typeof o!="number")return null;const a=i=>Wr(i)?Object.fromEntries(Object.entries(i).filter(c=>typeof c[0]=="string"&&typeof c[1]=="number")):{};return{action:n,scope:Gt(t.scope),project_key:Gt(t.project_key),data:{scope:s,project_key:Gt(r.project_key),total_memories:o,by_type:a(r.by_type),by_status:a(r.by_status),recent_ids:dr(r.recent_ids),view_files:dr(r.view_files),index_files:dr(r.index_files),state_files:dr(r.state_files),stale_candidate_count:is(r.stale_candidate_count)??0,last_reindex_at:Gt(r.last_reindex_at),last_dream_at:Gt(r.last_dream_at),topic_paths:dr(r.topic_paths)}}},Ga=e=>e.startsWith("-")&&!e.startsWith("---"),Ja=e=>e.startsWith("+")&&!e.startsWith("+++"),fv=e=>{const t=e.split(`
149
+ `),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(Ga(s)){const o=[];for(;r<t.length&&Ga(t[r]??"");)o.push(t[r]??""),r+=1;const a=[];for(;r<t.length&&Ja(t[r]??"");)a.push(t[r]??""),r+=1;a.length>0?(o.forEach(i=>n.push({kind:"modified_remove",text:i})),a.forEach(i=>n.push({kind:"modified_add",text:i}))):o.forEach(i=>n.push({kind:"remove",text:i}));continue}if(Ja(s)){n.push({kind:"add",text:s}),r+=1;continue}n.push({kind:"context",text:s}),r+=1}return n},BP=(e,t)=>{var w;const n=fv(e);if(n.length===0)return n;const r=Math.max(0,t==null?void 0:t.contextLines),s=Math.max(1,t==null?void 0:t.maxLines),o=t==null?void 0:t.preserveLeadingMeta,a=new Set(["add","remove","modified_add","modified_remove"]),i=n.map((m,x)=>({line:m,index:x})).filter(({line:m})=>a.has(m.kind)).map(({index:m})=>m);if(i.length===0||n.length<=s)return n.slice(0,s);const c=[];for(let m=0;m<n.length&&((w=n[m])==null?void 0:w.kind)==="meta";m+=1)c.push(m);const d=(m,x)=>{const k=[];return x&&c.length>0&&k.push({start:c[0],end:c[c.length-1]}),i.forEach(C=>{k.push({start:Math.max(0,C-m),end:Math.min(n.length-1,C+m)})}),k.sort((C,E)=>C.start-E.start),k.reduce((C,E)=>{const T=C[C.length-1];return T?E.start<=T.end+1?(T.end=Math.max(T.end,E.end),C):(C.push({...E}),C):(C.push({...E}),C)},[])},f=m=>{const x=[];return m.forEach((k,C)=>{C>0&&x.push({kind:"gap",text:"⋯"});for(let E=k.start;E<=k.end;E+=1)x.push(n[E])}),x};let p=r,v=d(p,o),g=f(v);for(;g.length>s&&p>0;)p-=1,v=d(p,o),g=f(v);return g.length>s&&o&&(v=d(p,!1),g=f(v)),g.length>s?g.slice(0,s):g},WP=e=>{const t=e.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);return t?{oldStart:Number.parseInt(t[1],10),newStart:Number.parseInt(t[2],10)}:null},es=e=>{if(!e)return"";const t=e[0];return t==="+"||t==="-"||t===" "?e.slice(1):e},Or=e=>e==null?null:e+1,UP=e=>{const t=e.split(`
150
+ `),n=[];let r=null,s=null,o=0;for(;o<t.length;){const a=t[o]??"";if(a.startsWith("--- ")||a.startsWith("+++ ")){n.push({kind:"meta",text:a}),o+=1;continue}if(a.startsWith("@@")){const c=WP(a);c&&(r=c.oldStart,s=c.newStart),n.push({kind:"hunk",text:a}),o+=1;continue}if(Ga(a)){const c=[];for(;o<t.length&&Ga(t[o]??"");)c.push(t[o]??""),o+=1;const d=[];for(;o<t.length&&Ja(t[o]??"");)d.push(t[o]??""),o+=1;if(d.length>0){const f=Math.max(c.length,d.length);for(let p=0;p<f;p+=1){const v=c[p],g=d[p];if(v&&g){n.push({kind:"modified",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:es(v),newText:es(g)}),r=Or(r),s=Or(s);continue}if(v){n.push({kind:"remove",oldLineNumber:r??void 0,oldText:es(v)}),r=Or(r);continue}g&&(n.push({kind:"add",newLineNumber:s??void 0,newText:es(g)}),s=Or(s))}}else c.forEach(f=>{n.push({kind:"remove",oldLineNumber:r??void 0,oldText:es(f)}),r=Or(r)});continue}if(Ja(a)){n.push({kind:"add",newLineNumber:s??void 0,newText:es(a)}),s=Or(s),o+=1;continue}const i=es(a);n.push({kind:"context",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:i,newText:i}),r=Or(r),s=Or(s),o+=1}return n},hv=e=>{let t=0,n=0;for(const r of e.split(`
151
+ `)){if(Ja(r)){t+=1;continue}Ga(r)&&(n+=1)}return{added:t,removed:n}},Gd=e=>{const t=co(e);if(!t)return null;const n=hv(t.diff.unified);return{added:t.diff.added_lines??n.added,removed:t.diff.removed_lines??n.removed}},Vu=e=>{if(typeof e=="string")return e.replace(/\\n/g,`
152
+ `).replace(/\\t/g," ");if(Array.isArray(e))return e.map(Vu);if(e!==null&&typeof e=="object"){const t={};for(const[n,r]of Object.entries(e))t[n]=Vu(r);return t}return e},oo=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,`
153
+ `).replace(/\\t/g," "),parsedJson:n}}const r=Vu(n);return{isJson:!0,formattedText:JSON.stringify(r,null,2),parsedJson:r}}catch{return{isJson:!1,formattedText:e}}},qP=(e,t={})=>{const n={...OP,...t};return e?e.split(/\r?\n/).length>n.maxLines?!0:e.length>n.maxCharacters:!1},HP=(e,t=320)=>e?e.length<=t?{preview:e,isTruncated:!1}:{preview:e.substring(0,t).trimEnd()+"…",isTruncated:!0}:{preview:"",isTruncated:!1},XP=e=>{if(!e)return"No content";const t=60,n=e.trim(),r=co(n);if(r){const o=r.file_path.split(/[\\/]/).pop()||r.file_path,a=`${r.operation}: ${o}`;return a.length<=t?a:a.substring(0,t).trimEnd()+"…"}const s=dv(n);if(s){const o=s.data.project_key||s.data.scope,a=`Memory ${s.action}: ${o} (${s.data.total_memories})`;return a.length<=t?a:a.substring(0,t).trimEnd()+"…"}if(n.length<=t)return n;if(n.startsWith("{")||n.startsWith("["))try{const o=JSON.parse(n);if(typeof o=="object"&&o!==null){if(o.type==="mermaid"&&typeof o.chart=="string"&&o.chart.trim().length>0){const d=`Diagram: ${typeof o.title=="string"&&o.title.trim().length>0?o.title.trim():"Mermaid diagram"}`;return d.length<=t?d:d.substring(0,t).trimEnd()+"…"}if(o.type==="conclusion"&&typeof o.conclusion=="string"&&o.conclusion.trim().length>0){const c=o.conclusion.trim();return c.length<=t?c:c.substring(0,t).trimEnd()+"…"}const a=["content","result","output","message","data"].find(c=>c in o&&typeof o[c]=="string");if(a){const c=o[a];return c.length<=t?c:c.substring(0,t).trimEnd()+"…"}if(Array.isArray(o))return`Array with ${o.length} items`;const i=Object.keys(o);return`Object with ${i.length} propert${i.length===1?"y":"ies"}`}}catch{}return n.substring(0,t).trimEnd()+"…"},pv=e=>{switch(e){case"success":return"green";case"error":return"red";case"warning":return"orange";default:return"blue"}},ys=(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:gn}=ot,YP=(e,t,n)=>{const r={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:n?11:t.fontSizeSM,lineHeight:n?1.35:1.5,padding:n?"0 4px":"0 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"};return e.kind==="add"?r.background=t.colorSuccessBg:e.kind==="remove"?r.background=t.colorErrorBg:e.kind==="modified_add"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorSuccess}`):e.kind==="modified_remove"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorError}`):e.kind==="hunk"?(r.background=t.colorFillSecondary,r.color=t.colorTextSecondary):e.kind==="meta"?(r.background=t.colorFillTertiary,r.color=t.colorTextSecondary):e.kind==="gap"&&(r.background=t.colorFillQuaternary,r.color=t.colorTextTertiary,r.textAlign="center",r.fontStyle="italic"),r},Fi=(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},Ni=(e,t,n)=>{if(e==="modified")return t==="old"?`3px solid ${n.colorError}`:`3px solid ${n.colorSuccess}`},ip=e=>e==null?"":String(e),Qa=({payload:e,defaultViewMode:t="sideBySide",showHeader:n=!0,showViewToggle:r=!0,compact:s=!1,height:o,maxHeight:a=400,unifiedLinesOverride:i})=>{var E;const{t:c}=qe(),{token:d}=st.useToken(),[f,p]=S.useState(t),v=S.useMemo(()=>{const T=hv(e.diff.unified);return{added:e.diff.added_lines??T.added,removed:e.diff.removed_lines??T.removed}},[e]),g=S.useMemo(()=>i??fv(e.diff.unified),[e.diff.unified,i]),w=S.useMemo(()=>UP(e.diff.unified),[e.diff.unified]),m=o!==void 0,x={display:"flex",flexDirection:"column",gap:s?6:d.marginSM,minHeight:0,height:m?o:void 0},k={border:`1px solid ${d.colorBorderSecondary}`,borderRadius:s?6:d.borderRadiusSM,overflow:"auto",background:d.colorBgContainer,minHeight:0,flex:m?1:void 0,maxHeight:m?void 0:a},C=s?"small":"middle";return l.jsxs("div",{style:x,children:[n&&l.jsxs("div",{style:{display:"grid",gap:s?2:d.marginXS},children:[e.message?l.jsx(gn,{style:{fontSize:s?11:d.fontSizeSM},children:e.message}):null,l.jsxs(ze,{size:s?2:8,wrap:!0,children:[l.jsxs(gn,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(gn,{strong:!0,children:[c("common.file"),":"]})," ",l.jsx(gn,{code:!0,children:e.file_path})]}),e.workspace?l.jsxs(gn,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(gn,{strong:!0,children:[c("common.workspace"),":"]})," ",l.jsx(gn,{code:!0,children:e.workspace})]}):null,l.jsxs(gn,{style:{color:d.colorSuccess,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",v.added]}),l.jsxs(gn,{style:{color:d.colorError,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",v.removed]})]}),(E=e.checkpoint)!=null&&E.created?l.jsxs(gn,{style:{fontSize:s?d.fontSizeSM-1:d.fontSizeSM},children:[l.jsxs(gn,{strong:!0,children:[c("components.toolResult.checkpoint"),":"]})," ",l.jsx(gn,{code:!0,children:e.checkpoint.path})]}):l.jsx(gn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.checkpointNone")})]}),r?l.jsxs(ze,{size:s?2:8,wrap:!0,children:[l.jsx(Ee,{size:C,type:f==="sideBySide"?"primary":"default",onClick:()=>p("sideBySide"),children:c("components.toolResult.sideBySide",{defaultValue:"Side by side"})}),l.jsx(Ee,{size:C,type:f==="unified"?"primary":"default",onClick:()=>p("unified"),children:c("components.toolResult.unified",{defaultValue:"Unified"})})]}):null,l.jsx("div",{style:k,children:f==="unified"?g.length>0?g.map((T,P)=>l.jsx("pre",{style:YP(T,d,s),children:T.text||" "},`${P}-${T.kind}`)):l.jsx(gn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})}):w.length>0?l.jsx("div",{children:w.map((T,P)=>{if(T.kind==="meta"||T.kind==="hunk")return l.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:s?11:d.fontSizeSM,lineHeight:s?1.4:1.5,padding:s?"0 4px":"1px 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",background:T.kind==="meta"?d.colorFillTertiary:d.colorFillSecondary,color:d.colorTextSecondary},children:T.text||" "},`meta-${P}`);const A=s?11:d.fontSizeSM,O=s?"0 4px":"0 8px",$=s?1.4:1.5,U={padding:O,lineHeight:$,textAlign:"right",color:d.colorTextTertiary,fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A,borderRight:`1px solid ${d.colorBorderSecondary}`,userSelect:"none"},J={padding:O,lineHeight:$,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A};return l.jsxs("div",{style:{display:"grid",gridTemplateColumns:s?"48px 1fr 48px 1fr":"64px 1fr 64px 1fr"},children:[l.jsx("div",{style:{...U,background:Fi(T.kind,"old",d),borderLeft:Ni(T.kind,"old",d)},children:ip(T.oldLineNumber)}),l.jsx("div",{style:{...J,background:Fi(T.kind,"old",d),borderRight:`1px solid ${d.colorBorderSecondary}`,borderLeft:Ni(T.kind,"old",d)},children:T.oldText??" "}),l.jsx("div",{style:{...U,background:Fi(T.kind,"new",d),borderLeft:Ni(T.kind,"new",d)},children:ip(T.newLineNumber)}),l.jsx("div",{style:{...J,background:Fi(T.kind,"new",d),borderLeft:Ni(T.kind,"new",d)},children:T.newText??" "})]},`side-${P}`)})}):l.jsx(gn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})})}),e.diff.truncated?l.jsx(gn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.diffTruncated")}):null]})},{Text:KP}=ot,VP=e=>e.filter(t=>t!=null&&t!==!1&&!(typeof t=="string"&&t.trim()==="")),GP=(e,t)=>e.flatMap((n,r)=>r===0?[l.jsx(rt.Fragment,{children:n},`item-${r}`)]:[l.jsx(rt.Fragment,{children:t},`sep-${r}`),l.jsx(rt.Fragment,{children:n},`item-${r}`)]),ol=({items:e,separator:t=" · ",nowrap:n=!1,block:r=!1,style:s,className:o,ellipsis:a,...i})=>{const c=VP(e);return c.length===0?null:l.jsx(KP,{type:"secondary",className:o,ellipsis:a,style:{fontSize:11,lineHeight:1.35,whiteSpace:n?"nowrap":void 0,display:r?"block":void 0,...s},...i,children:GP(c,t)})},{Text:xn}=ot,JP=220,QP=560,ZP=420,al=e=>e.split(/[\\/]/).pop()||e,eE=e=>{const t=e.replace(/\\/g,"/"),n=t.lastIndexOf("/");return n<=0?null:t.slice(0,n)},lp=e=>e.added+e.removed,Gu=e=>e.toLocaleString(),cp=(e,t)=>`(+${Gu(e)} / -${Gu(t)})`,tE=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}}),Ju=(e,t)=>{const n=[...e];return t==="path"?(n.sort((r,s)=>r.filePath.localeCompare(s.filePath)),n):(n.sort((r,s)=>{const o=lp(s)-lp(r);return o!==0?o:r.filePath.localeCompare(s.filePath)}),n)},Ys=({value:e,kind:t,compact:n=!1})=>{const{token:r}=st.useToken(),s=t==="added";return l.jsxs(xn,{style:{color:s?r.colorSuccess:r.colorError,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"nowrap",fontSize:n?11:void 0},children:[s?"+":"-",Gu(e)]})},up=({files:e,changedTools:t,totalAdded:n,totalRemoved:r,sortMode:s,selectedFilePath:o,compact:a=!1,onSortModeChange:i,onSelectFile:c})=>{const{token:d}=st.useToken(),f=S.useMemo(()=>Ju(e,s),[e,s]),p=S.useMemo(()=>e.filter(m=>m.truncated).length,[e]),v=S.useMemo(()=>Ju(e,"magnitude")[0]??null,[e]),g=a?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},w=S.useMemo(()=>{const m=[];return v&&m.push(`Largest: ${al(v.filePath)} ${cp(v.added,v.removed)}`),p>0&&m.push(`${p} truncated preview${p>1?"s":""}`),m},[v,p]);return l.jsxs(we,{vertical:!0,gap:a?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},children:[l.jsxs(we,{vertical:!0,gap:a?4:6,style:{width:"100%",minWidth:0},children:[l.jsxs(we,{align:"flex-start",justify:"space-between",gap:a?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(ze,{size:a?6:d.marginXS,wrap:!0,children:[l.jsx(Kg,{style:{color:d.colorPrimary}}),l.jsx(xn,{strong:!0,style:a?{fontSize:12}:void 0,children:"Session diffs"}),a?null:l.jsx(xn,{type:"secondary",children:"Review changed files, then open one file at a time."})]}),l.jsxs(ze,{size:a?2:4,wrap:!0,children:[a?l.jsx(ol,{nowrap:!0,items:[`${e.length} files`,`${t} tools`]}):l.jsxs(l.Fragment,{children:[l.jsxs(Ye,{style:g,children:[e.length," files"]}),l.jsxs(Ye,{style:g,children:[t," tools"]})]}),l.jsx(Ys,{value:n,kind:"added"}),l.jsx(Ys,{value:r,kind:"removed"})]})]}),a?l.jsx(ol,{block:!0,items:w}):l.jsxs(l.Fragment,{children:[v?l.jsxs(xn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:["Largest change: ",al(v.filePath)," ",cp(v.added,v.removed)]}):null,p>0?l.jsxs(xn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:[p," diff",p>1?"s":""," truncated in preview."]}):null]})]}),l.jsxs(we,{align:"center",justify:"space-between",gap:a?d.marginXS:d.marginSM,wrap:!0,children:[l.jsx(xn,{strong:!0,style:a?{fontSize:12}:void 0,children:a?"Files":"Changed files"}),e.length>1?l.jsxs(ze,{size:a?4:8,wrap:!0,children:[l.jsx(Ee,{size:"small",type:s==="magnitude"?"primary":"default",onClick:()=>i("magnitude"),"data-testid":"session-diff-sort-magnitude",children:a?"Largest":"Largest changes"}),l.jsx(Ee,{size:"small",type:s==="path"?"primary":"default",onClick:()=>i("path"),"data-testid":"session-diff-sort-path",children:"Path"})]}):null]}),l.jsx("div",{"data-testid":"session-diff-file-list",style:{display:"grid",gridTemplateColumns:"1fr",gap:a?4:6,width:"100%",minWidth:0,maxHeight:a?ZP:QP,overflowY:"auto",overflowX:"hidden"},children:f.map(m=>{const x=eE(m.filePath),k=o===m.filePath,C=a?[x,m.toolCount&&m.toolCount>1?`${m.toolCount} tool steps`:null]:[];return l.jsx("button",{type:"button","aria-pressed":k,"data-selected":k?"true":"false",onClick:()=>c(m.filePath),"data-testid":"session-diff-file-row","data-file-path":m.filePath,style:{width:"100%",minWidth:0,padding:a?"6px 8px":`${d.paddingSM}px`,borderRadius:d.borderRadiusSM,border:`1px solid ${k?d.colorPrimary:d.colorBorderSecondary}`,background:k?d.colorFillSecondary:d.colorFillTertiary,boxShadow:k?`inset 0 0 0 1px ${d.colorPrimary}`:"none",cursor:"pointer",textAlign:"left",transition:"border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease"},children:l.jsxs(we,{align:"flex-start",justify:"space-between",gap:a?d.marginXS:d.marginSM,style:{width:"100%"},children:[l.jsxs(we,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsxs(we,{align:"center",gap:d.marginXS,style:{minWidth:0},children:[l.jsx(bs,{style:{color:k?d.colorPrimary:d.colorTextSecondary,flex:"0 0 auto"}}),l.jsx(xn,{strong:!0,ellipsis:{tooltip:m.filePath},style:{display:"block",flex:1,minWidth:0},children:al(m.filePath)}),m.truncated?a?l.jsx(xn,{type:"secondary",style:{fontSize:11,flex:"0 0 auto"},children:"· trunc."}):l.jsx(Ye,{color:"warning",style:{...g,flex:"0 0 auto"},children:"Truncated"}):null]}),a?l.jsx(ol,{block:!0,items:C,style:{minWidth:0,whiteSpace:"normal",wordBreak:"break-word"}}):l.jsxs(l.Fragment,{children:[x?l.jsx(xn,{type:"secondary",ellipsis:{tooltip:m.filePath},style:{display:"block",minWidth:0,fontSize:d.fontSizeSM},children:x}):null,m.toolCount&&m.toolCount>1?l.jsxs(xn,{type:"secondary",style:{fontSize:Math.max(d.fontSizeSM-1,11)},children:["Touched by ",m.toolCount," tool steps"]}):null]})]}),l.jsxs(we,{vertical:!0,align:"flex-end",gap:a?1:0,style:{flex:"0 0 auto"},children:[l.jsx(Ys,{value:m.added,kind:"added",compact:a}),l.jsx(Ys,{value:m.removed,kind:"removed",compact:a})]})]})},m.filePath)})})]})},nE=({file:e,currentPosition:t,totalFiles:n,canGoPrevious:r,canGoNext:s,compact:o=!1,onPrevious:a,onNext:i,onBack:c})=>{const{token:d}=st.useToken(),f=S.useMemo(()=>tE(e),[e]);return l.jsxs(we,{vertical:!0,gap:o?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},"data-testid":"session-diff-detail-view",children:[l.jsxs(we,{align:"center",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(ze,{size:o?4:8,wrap:!0,children:[l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Nw,{}),onClick:c,"data-testid":"session-diff-back",style:{paddingInline:0},children:"Back to files"}),l.jsxs(xn,{type:"secondary","data-testid":"session-diff-position",style:o?{fontSize:11}:void 0,children:["File ",t," of ",n]})]}),n>1?l.jsxs(ze,{size:o?4:8,wrap:!0,children:[l.jsx(Ee,{size:"small",icon:l.jsx(Cu,{}),onClick:a,disabled:!r,"data-testid":"session-diff-prev",children:"Previous"}),l.jsx(Ee,{size:"small",icon:l.jsx(bs,{}),onClick:i,disabled:!s,"data-testid":"session-diff-next",children:"Next"})]}):null]}),l.jsxs(we,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsxs(we,{align:"flex-start",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(we,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsx(xn,{strong:!0,ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0},children:al(e.filePath)}),l.jsx(xn,{type:"secondary",ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.filePath}),e.workspace?l.jsx(xn,{type:"secondary",ellipsis:{tooltip:e.workspace},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.workspace}):null]}),l.jsxs(ze,{size:o?2:4,wrap:!0,children:[e.truncated?l.jsx(Ye,{color:"warning",style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:o?"Trunc.":"Truncated"}):null,e.toolCount&&e.toolCount>1?l.jsxs(Ye,{style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:[e.toolCount," tools"]}):null,l.jsx(Ys,{value:e.added,kind:"added",compact:o}),l.jsx(Ys,{value:e.removed,kind:"removed",compact:o})]})]}),o?null:l.jsx(xn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:"Review this file in side-by-side or unified mode."})]}),l.jsx(Qa,{payload:f,defaultViewMode:"sideBySide",showHeader:!1,showViewToggle:!0,compact:o,maxHeight:o?"calc(100vh - 240px)":"calc(100vh - 280px)"})]})},mv=({sessionDiffSummary:e,sessionId:t,compact:n=!1})=>{const{token:r}=st.useToken(),s=!!(e&&e.files.length>0),[o,a]=S.useState(s),[i,c]=S.useState(s),[d,f]=S.useState("magnitude"),[p,v]=S.useState(null);S.useEffect(()=>{if(s){a(!0);const C=window.setTimeout(()=>c(!0),0);return()=>window.clearTimeout(C)}c(!1);const k=window.setTimeout(()=>a(!1),JP);return()=>window.clearTimeout(k)},[s]),S.useEffect(()=>{f("magnitude"),v(null)},[t]);const g=S.useMemo(()=>(e==null?void 0:e.files)??[],[e]),w=S.useMemo(()=>Ju(g,d),[g,d]),m=S.useMemo(()=>w.findIndex(k=>k.filePath===p),[w,p]),x=m>=0?w[m]:null;return S.useEffect(()=>{p&&(g.some(k=>k.filePath===p)||v(null))},[g,p]),!o||!e?null:l.jsxs("div",{className:`active-tool-card-wrapper ${i?"visible":""}`,"aria-hidden":!i,"data-testid":"session-diff-card",style:{width:"100%",minWidth:0},children:[l.jsx("div",{style:n?{width:"100%",minWidth:0,padding:"2px 0 0"}:{width:"100%",minWidth:0},children:n?l.jsx(up,{files:g,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:p,compact:n,onSortModeChange:f,onSelectFile:v}):l.jsx(Bt,{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:l.jsx(up,{files:g,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:p,compact:n,onSortModeChange:f,onSelectFile:v})})}),l.jsx(Bl,{title:"Diff details",placement:"right",open:!!x,onClose:()=>v(null),width:"min(1280px, calc(100vw - 24px))",styles:{body:{padding:n?r.paddingXS:r.paddingLG,minWidth:0}},destroyOnClose:!0,children:x?l.jsx(nE,{file:x,currentPosition:m+1,totalFiles:w.length,canGoPrevious:m>0,canGoNext:m>=0&&m<w.length-1,compact:n,onPrevious:()=>{m>0&&v(w[m-1].filePath)},onNext:()=>{m>=0&&m<w.length-1&&v(w[m+1].filePath)},onBack:()=>v(null)}):null})]})},rE=e=>{if(!e)return;const{activeLeafId:t,setLeafSessionId:n,setActiveLeafId:r}=ct.getState();n(t,e),r(t),Z.getState().selectSession(e)},sE=["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(" "),oE=["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(" "),aE=["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(" "),iE=["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(" "),lE=["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(" "),cE=["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(" "),uE=["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(" "),dE=["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(" "),fE=["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(" "),hE=["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(" "),pE=["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(" "),mE=["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(" "),gE=["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(" "),yE=["development","debugging","analysis","documentation","operations"],vE={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"}},bE=(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)||""}},SE=({sessionId:e=null,embedded:t=!1,hideHeader:n=!1,layoutMode:r="default"})=>{var ee;const{t:s}=qe(),{token:o}=st.useToken(),{message:a}=Tn.useApp(),i=Z(I=>e??I.currentSessionId),c=Z(mr(i)),d=Z(I=>I.addChat),f=Z(I=>I.lastSelectedPromptId),p=Z(I=>I.setInputContent),v=Z(I=>I.systemPrompts),g=Z(I=>I.chats),[w,m]=S.useState(null),[x,k]=S.useState(""),C=(c==null?void 0:c.config.workspacePath)??((ee=g.find(I=>I.config.workspacePath))==null?void 0:ee.config.workspacePath),E=S.useMemo(()=>[{id:"blank",icon:l.jsx(_d,{}),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:l.jsx(zw,{}),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:sE,category:"development",recommendWorkspace:!0},{id:"implementFeature",icon:l.jsx(Td,{}),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:aE,category:"development",recommendWorkspace:!0},{id:"refactor",icon:l.jsx(Kg,{}),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:uE,category:"development",recommendWorkspace:!0},{id:"bugInvestigation",icon:l.jsx(Xg,{}),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:oE,category:"debugging",recommendWorkspace:!0},{id:"explainError",icon:l.jsx(Vg,{}),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:lE,category:"debugging"},{id:"tokenUsage",icon:l.jsx(Bw,{}),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:gE,category:"debugging"},{id:"architectureReview",icon:l.jsx(Hg,{}),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:iE,category:"analysis",recommendWorkspace:!0},{id:"compareFiles",icon:l.jsx(Ww,{}),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:cE,category:"analysis",recommendWorkspace:!0},{id:"releaseNotes",icon:l.jsx(yl,{}),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:dE,category:"documentation",recommendWorkspace:!0},{id:"summarizeWork",icon:l.jsx(Uw,{}),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:fE,category:"documentation"},{id:"writeDocs",icon:l.jsx(yl,{}),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:hE,category:"documentation",recommendWorkspace:!0},{id:"createSchedule",icon:l.jsx(Ss,{}),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:pE,category:"operations"},{id:"sessionReview",icon:l.jsx(_u,{}),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:mE,category:"operations"}],[s]),T=x.trim().toLowerCase(),P=S.useMemo(()=>T?E.filter(I=>I.title.toLowerCase().includes(T)||I.description.toLowerCase().includes(T)):E,[T,E]),A=S.useMemo(()=>{const I={};for(const Y of P)I[Y.category]||(I[Y.category]=[]),I[Y.category].push(Y);return I},[P]),O=S.useCallback(I=>{typeof window>"u"||window.setTimeout(()=>{window.dispatchEvent(new CustomEvent(Tl,{detail:{sessionId:I}}))},0)},[]),$=S.useCallback(async I=>{if(!w){m(I.id);try{const Y=bE(v,f),z=await d({title:I.sessionTitle,createdAt:Date.now(),messages:[],config:{systemPromptId:Y.systemPromptId,baseSystemPrompt:I.baseSystemPrompt??Y.baseSystemPrompt,lastUsedEnhancedPrompt:null,...C?{workspacePath:C}:{}}});rE(z),I.prefill.trim().length>0&&p(z,I.prefill),O(z)}catch(Y){console.error("[EmptyTaskLauncher] Failed to create session",Y),a.error(Y instanceof Error?Y.message:s("chat.emptyLauncher.errors.createFailed","Failed to create session"))}finally{m(null)}}},[d,f,a,w,O,p,v,s,C]),U=S.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]),J=!!C;return l.jsxs("div",{className:`lotus-empty-task-launcher ${t?"is-embedded":""} ${n?"is-headerless":""} ${r==="staggered"?"is-staggered":""}`,style:U,children:[!n&&l.jsxs("div",{className:"lotus-empty-task-launcher__header",children:[l.jsx(ot.Title,{level:t?4:3,style:{margin:0},children:s("chat.emptyLauncher.title","Start with a task")}),l.jsx(ot.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.")}),l.jsx(ot.Text,{type:"secondary",className:"lotus-empty-task-launcher__hint",children:s("chat.emptyLauncher.hint","Nothing is sent automatically — you can edit the prompt first.")})]}),l.jsx("div",{className:"lotus-empty-task-launcher__search",children:l.jsx(Ts,{placeholder:s("chat.emptyLauncher.searchPlaceholder","Search templates..."),prefix:l.jsx(_u,{style:{color:o.colorTextQuaternary}}),value:x,onChange:I=>k(I.target.value),allowClear:!0,size:"middle",variant:"filled"})}),l.jsxs("div",{className:"lotus-empty-task-launcher__categories",children:[yE.map(I=>{const Y=A[I];if(!Y||Y.length===0)return null;const z=vE[I];return l.jsxs("div",{className:"lotus-empty-task-launcher__category",children:[l.jsx(ot.Text,{type:"secondary",className:"lotus-empty-task-launcher__category-label",children:s(z.titleKey,z.fallback)}),l.jsx("div",{className:"lotus-empty-task-launcher__grid",children:Y.map(D=>{const ie=w===D.id,Q=D.recommendWorkspace&&J;return l.jsxs("button",{type:"button",className:"lotus-empty-task-card",onClick:()=>{$(D)},disabled:w!==null,"aria-busy":ie,"aria-label":D.title,children:[l.jsx("div",{className:"lotus-empty-task-card__icon","aria-hidden":!0,children:ie?l.jsx(Qs,{}):D.icon}),l.jsxs("div",{className:"lotus-empty-task-card__body",children:[l.jsxs("div",{className:"lotus-empty-task-card__titleRow",children:[l.jsx("span",{className:"lotus-empty-task-card__title",children:D.title}),l.jsx(qw,{className:"lotus-empty-task-card__arrow","aria-hidden":!0})]}),l.jsx("p",{className:"lotus-empty-task-card__description",children:D.description}),Q&&l.jsx("div",{className:"lotus-empty-task-card__badges",children:l.jsxs("span",{className:"lotus-empty-task-card__badge",title:C,children:["📂 ",s("chat.emptyLauncher.badges.workspace","workspace")]})})]})]},D.id)})})]},I)}),P.length===0&&l.jsx("div",{className:"lotus-empty-task-launcher__no-results",children:l.jsx(ot.Text,{type:"secondary",children:s("chat.emptyLauncher.noResults","No templates match your search. Try a different keyword or start a blank session.")})})]})]})},wE=({sessionId:e,isCenteredLayout:t,maxWidth:n,onWorkflowDraftChange:r,showMessagesView:s,sessionDiffSummary:o,contextUsageIndicator:a,showSessionDiffCard:i=!0})=>l.jsx(we,{justify:"center",className:`chat-view-input-container-wrapper ${s?"messages-view":"centered-view"}`,children:l.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&&i?l.jsx(mv,{sessionDiffSummary:o,sessionId:e}):null,!s&&e?l.jsx(SE,{sessionId:e}):null,l.jsx(IP,{sessionId:e,isCenteredLayout:t,onWorkflowDraftChange:r,statusIndicator:a})]})});function Ls(e,t,n){let r=n.initialDeps??[],s;function o(){var a,i,c,d;let f;n.key&&((a=n.debug)!=null&&a.call(n))&&(f=Date.now());const p=e();if(!(p.length!==r.length||p.some((w,m)=>r[m]!==w)))return s;r=p;let g;if(n.key&&((i=n.debug)!=null&&i.call(n))&&(g=Date.now()),s=t(...p),n.key&&((c=n.debug)!=null&&c.call(n))){const w=Math.round((Date.now()-f)*100)/100,m=Math.round((Date.now()-g)*100)/100,x=m/16,k=(C,E)=>{for(C=String(C);C.length<E;)C=" "+C;return C};console.info(`%c⏱ ${k(m,5)} /${k(w,5)} ms`,`
154
+ font-size: .6rem;
155
+ font-weight: bold;
156
+ color: hsl(${Math.max(0,Math.min(120-120*x,120))}deg 100% 31%);`,n==null?void 0:n.key)}return(d=n==null?void 0:n.onChange)==null||d.call(n,s),s}return o.updateDeps=a=>{r=a},o}function dp(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const xE=(e,t)=>Math.abs(e-t)<1.01,_E=(e,t,n)=>{let r;return function(...s){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,s),n)}},fp=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},CE=e=>e,kE=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},TE=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const s=a=>{const{width:i,height:c}=a;t({width:Math.round(i),height:Math.round(c)})};if(s(fp(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(a=>{const i=()=>{const c=a[0];if(c!=null&&c.borderBoxSize){const d=c.borderBoxSize[0];if(d){s({width:d.inlineSize,height:d.blockSize});return}}s(fp(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},hp={passive:!0},pp=typeof window>"u"?!0:"onscrollend"in window,PE=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let s=0;const o=e.options.useScrollendEvent&&pp?()=>{}:_E(r,()=>{t(s,!1)},e.options.isScrollingResetDelay),a=f=>()=>{const{horizontal:p,isRtl:v}=e.options;s=p?n.scrollLeft*(v&&-1||1):n.scrollTop,o(),t(s,f)},i=a(!0),c=a(!1);c(),n.addEventListener("scroll",i,hp);const d=e.options.useScrollendEvent&&pp;return d&&n.addEventListener("scrollend",c,hp),()=>{n.removeEventListener("scroll",i),d&&n.removeEventListener("scrollend",c)}},EE=(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"]},ME=(e,{adjustments:t=0,behavior:n},r)=>{var s,o;const a=e+t;(o=(s=r.scrollElement)==null?void 0:s.scrollTo)==null||o.call(s,{[r.options.horizontal?"left":"top"]:a,behavior:n})};class RE{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 a=()=>{this._measureElement(o.target,o)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()})}));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:CE,rangeExtractor:kE,onChange:()=>{},measureElement:EE,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=Ls(()=>(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 a=r-1;a>=0;a--){const i=n[a];if(s.has(i.lane))continue;const c=o.get(i.lane);if(c==null||i.end>c.end?o.set(i.lane,i):i.end<c.end&&s.set(i.lane,!0),s.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((a,i)=>a.end===i.end?a.index-i.index:a.end-i.end)[0]:void 0},this.getMeasurementOptions=Ls(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(n,r,s,o,a)=>(this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:a}),{key:!1}),this.getMeasurements=Ls(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:a},i)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(f=>{this.itemSizeCache.set(f.key,f.size)}));const c=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const d=this.measurementsCache.slice(0,c);for(let f=c;f<n;f++){const p=o(f),v=this.options.lanes===1?d[f-1]:this.getFurthestMeasurement(d,f),g=v?v.end+this.options.gap:r+s,w=i.get(p),m=typeof w=="number"?w:this.options.estimateSize(f),x=g+m,k=v?v.lane:f%this.options.lanes;d[f]={index:f,start:g,size:m,end:x,key:p,lane:k}}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Ls(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,s,o)=>this.range=n.length>0&&r>0?AE({measurements:n,outerSize:r,scrollOffset:s,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Ls(()=>{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,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,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 a=o.key,i=this.elementsCache.get(a);i!==n&&(i&&this.observer.unobserve(i),this.observer.observe(n),this.elementsCache.set(a,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,a=r-o;a!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,a,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=a,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=Ls(()=>[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const s=[];for(let o=0,a=n.length;o<a;o++){const i=n[o],c=r[i];s.push(c)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return dp(r[gv(0,r.length-1,s=>dp(r[s]).start,n)])},this.getOffsetForAlignment=(n,r,s=0)=>{const o=this.getSize(),a=this.getScrollOffset();r==="auto"&&(r=n>=a+o?"end":"start"),r==="center"?n+=(s-o)/2:r==="end"&&(n-=o);const i=this.getTotalSize()+this.options.scrollMargin-o;return Math.max(Math.min(i,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(),a=this.getScrollOffset();if(r==="auto")if(s.end>=a+o-this.options.scrollPaddingEnd)r="end";else if(s.start<=a+this.options.scrollPaddingStart)r="start";else return[a,r];const i=r==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,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 a=10,i=d=>{if(!this.targetWindow)return;const f=this.getOffsetForIndex(n,d);if(!f){console.warn("Failed to get offset for index:",n);return}const[p,v]=f;this._scrollToOffset(p,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const g=this.getScrollOffset(),w=this.getOffsetForIndex(n,v);if(!w){console.warn("Failed to get offset for index:",n);return}xE(w[0],g)||c(v)})},c=d=>{this.targetWindow&&(o++,o<a?this.targetWindow.requestAnimationFrame(()=>i(d)):console.warn(`Failed to scroll to index ${n} after ${a} attempts.`))};i(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 a=r.length-1;for(;a>=0&&o.some(i=>i===null);){const i=r[a];o[i.lane]===null&&(o[i.lane]=i.end),a--}s=Math.max(...o.filter(i=>i!==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 gv=(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 AE({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const s=e.length-1,o=c=>e[c].start;if(e.length<=r)return{startIndex:0,endIndex:s};let a=gv(0,s,o,n),i=a;if(r===1)for(;i<s&&e[i].end<n+t;)i++;else if(r>1){const c=Array(r).fill(0);for(;i<s&&c.some(f=>f<n+t);){const f=e[i];c[f.lane]=f.end,i++}const d=Array(r).fill(n+t);for(;a>=0&&d.some(f=>f>=n);){const f=e[a];d[f.lane]=f.start,a--}a=Math.max(0,a-a%r),i=Math.min(s,i+(r-1-i%r))}return{startIndex:a,endIndex:i}}const mp=typeof document<"u"?S.useLayoutEffect:S.useEffect;function jE(e){const t=S.useReducer(()=>({}),{})[1],n={...e,onChange:(s,o)=>{var a;o?Hw.flushSync(t):t(),(a=e.onChange)==null||a.call(e,s,o)}},[r]=S.useState(()=>new RE(n));return r.setOptions(n),mp(()=>r._didMount(),[]),mp(()=>r._willUpdate()),r}function IE(e){return jE({observeElementRect:TE,observeElementOffset:PE,scrollToFn:ME,...e})}const{Text:gp,Paragraph:OE}=ot,$E=({content:e,token:t,headingColor:n})=>l.jsx(hr,{components:{p:({children:r})=>l.jsx(OE,{style:{marginBottom:t.marginSM},children:r}),ol:({children:r})=>l.jsx("ol",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),ul:({children:r})=>l.jsx("ul",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),li:({children:r})=>l.jsx("li",{style:{marginBottom:t.marginXS},children:r}),h1:({children:r})=>l.jsx(gp,{strong:!0,style:{fontSize:t.fontSizeHeading3,marginBottom:t.marginSM,display:"block",color:n},children:r}),h2:({children:r})=>l.jsx(gp,{strong:!0,style:{fontSize:t.fontSizeHeading4,marginBottom:t.marginSM,display:"block",color:n},children:r})},children:e}),yp=S.memo($E),LE=e=>{if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null},DE=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=LE(r);return s?[{key:n,content:s}]:[]}):[],FE=({currentChat:e,message:t,systemPrompts:n})=>{var J;const[r,s]=S.useState(null),[o,a]=S.useState(null),[i,c]=S.useState(null),[d,f]=S.useState(!1),[p,v]=S.useState(!1),g=S.useMemo(()=>xl.getInstance(),[]),w=S.useMemo(()=>Pn.getInstance(),[]),m=t.role==="system"&&typeof t.content=="string"?t.content:"",x=t.role==="system"&&!t.id.startsWith("system-prompt-")&&m.trim().length>0;S.useEffect(()=>{t.role==="system"&&(a(null),c(null),v(!1))},[t.id,t.role,m]);const k=(e==null?void 0:e.id)??null,C=((J=e==null?void 0:e.config)==null?void 0:J.systemPromptId)??null,E=S.useMemo(()=>C?n.find(ee=>ee.id===C)??null:null,[C,n]),T=(E==null?void 0:E.content)??(r==null?void 0:r.content)??"",P=(E==null?void 0:E.description)??(r==null?void 0:r.description)??"",A=S.useRef(null);S.useEffect(()=>{s(null),A.current=null},[k,C]),S.useEffect(()=>{if(!C)return;const ee=C;if(E!=null&&E.content)return;const I=`${k??"no-chat"}:${ee}`;if(A.current===I)return;A.current=I;let Y=!1;return(async()=>{try{const D=await g.findPresetById(ee);if(Y)return;const ie=D?{content:D.content,description:D.description}:null;s(Q=>!Q&&!ie||Q&&ie&&Q.content===ie.content&&Q.description===ie.description?Q:ie)}catch(D){console.error("Failed to load preset prompt:",D)}})(),()=>{Y=!0}},[k,C,g,E==null?void 0:E.content]);const O=S.useCallback(async()=>{var ee;if(!d){f(!0);try{if(k)try{const I=await w.getSessionSystemPrompt(k);c(I);const Y=(ee=I.effective_system_prompt)==null?void 0:ee.trim();if(Y){a(Y),v(!0);return}}catch(I){console.warn("Failed to load backend prompt snapshot:",I)}if(x){c(null),a(m),v(!0);return}console.warn("Enhanced prompt snapshot unavailable; keeping base prompt view.")}catch(I){console.error("Failed to load enhanced prompt:",I)}finally{f(!1)}}},[w,k,x,d,m]),$=S.useMemo(()=>p&&o?o:T||P||(t.role==="system"?m:kt.t("chat.systemPrompt.preparing")),[p,o,T,P,t.role,m]),U=S.useMemo(()=>DE(i),[i]);return{basePrompt:T,categoryDescription:P,enhancedPrompt:o,loadingEnhanced:d,loadEnhancedPrompt:O,promptSnapshot:i,promptToDisplay:$,showEnhanced:p,setShowEnhanced:v,snapshotSections:U,systemMessageContent:m}},{Text:vp}=ot,{useToken:NE}=st,zE=(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],BE=({currentChat:e,message:t})=>{const{token:n}=NE(),{t:r}=qe(),s=Z(w=>w.systemPrompts),{basePrompt:o,loadingEnhanced:a,loadEnhancedPrompt:i,promptSnapshot:c,promptToDisplay:d,showEnhanced:f,setShowEnhanced:p,snapshotSections:v}=FE({currentChat:e,message:t,systemPrompts:s}),g=S.useCallback(async w=>{try{await kr(w)}catch(m){console.error("Failed to copy text:",m)}},[]);return l.jsx(Bt,{style:{width:"100%",maxWidth:"100%",background:n.colorBgContainer,borderRadius:n.borderRadiusLG,boxShadow:"none"},children:l.jsxs(ze,{direction:"vertical",size:n.marginSM,style:{width:"100%"},children:[l.jsxs(we,{justify:"space-between",align:"center",children:[l.jsx(we,{align:"center",gap:n.marginXS,children:l.jsx(vp,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.title")})}),l.jsxs(ze,{children:[o&&!f?l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Pd,{}),onClick:i,loading:a,children:r("chat.prompt.systemCard.viewEnhanced")}):null,o&&f?l.jsx(Ee,{type:"text",size:"small",onClick:()=>p(!1),children:r("chat.prompt.systemCard.viewBase")}):null,l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cr,{}),onClick:()=>g(d),children:r("chat.prompt.systemCard.copy")})]})]}),l.jsx(we,{vertical:!0,style:{maxHeight:f?400:300,overflowY:"auto",paddingRight:n.paddingXS},children:l.jsx(yp,{content:d,token:n,headingColor:n.colorPrimary})}),c&&v.length>0?l.jsxs(l.Fragment,{children:[l.jsx(vl,{style:{margin:`${n.marginXS}px 0`}}),l.jsxs(ze,{direction:"vertical",size:n.marginXS,style:{width:"100%"},children:[l.jsx(vp,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.snapshotTitle")}),l.jsx(ao,{defaultActiveKey:v.map(w=>w.key),items:v.map(w=>({key:w.key,label:zE(r,w.key),children:l.jsx(yp,{content:w.content,token:n,headingColor:n.colorPrimary})}))})]})]}):null]})})},yv=S.memo(BE);yv.displayName="SystemMessageCard";const vv=6048e5,WE=864e5,bp=Symbol.for("constructDateFrom");function qr(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&bp in e?e[bp](t):e instanceof Date?new e.constructor(t):new Date(t)}function Qn(e,t){return qr(t||e,e)}let UE={};function Kl(){return UE}function Za(e,t){var i,c,d,f;const n=Kl(),r=(t==null?void 0:t.weekStartsOn)??((c=(i=t==null?void 0:t.locale)==null?void 0:i.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((f=(d=n.locale)==null?void 0:d.options)==null?void 0:f.weekStartsOn)??0,s=Qn(e,t==null?void 0:t.in),o=s.getDay(),a=(o<r?7:0)+o-r;return s.setDate(s.getDate()-a),s.setHours(0,0,0,0),s}function El(e,t){return Za(e,{...t,weekStartsOn:1})}function bv(e,t){const n=Qn(e,t==null?void 0:t.in),r=n.getFullYear(),s=qr(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const o=El(s),a=qr(n,0);a.setFullYear(r,0,4),a.setHours(0,0,0,0);const i=El(a);return n.getTime()>=o.getTime()?r+1:n.getTime()>=i.getTime()?r:r-1}function Sp(e){const t=Qn(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 qE(e,...t){const n=qr.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function wp(e,t){const n=Qn(e,t==null?void 0:t.in);return n.setHours(0,0,0,0),n}function HE(e,t,n){const[r,s]=qE(n==null?void 0:n.in,e,t),o=wp(r),a=wp(s),i=+o-Sp(o),c=+a-Sp(a);return Math.round((i-c)/WE)}function XE(e,t){const n=bv(e,t),r=qr(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),El(r)}function YE(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function KE(e){return!(!YE(e)&&typeof e!="number"||isNaN(+Qn(e)))}function VE(e,t){const n=Qn(e,t==null?void 0:t.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const GE={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"}},JE=(e,t,n)=>{let r;const s=GE[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 Hc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const QE={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ZE={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},eM={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},tM={date:Hc({formats:QE,defaultWidth:"full"}),time:Hc({formats:ZE,defaultWidth:"full"}),dateTime:Hc({formats:eM,defaultWidth:"full"})},nM={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},rM=(e,t,n,r)=>nM[e];function Lo(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let s;if(r==="formatting"&&e.formattingValues){const a=e.defaultFormattingWidth||e.defaultWidth,i=n!=null&&n.width?String(n.width):a;s=e.formattingValues[i]||e.formattingValues[a]}else{const a=e.defaultWidth,i=n!=null&&n.width?String(n.width):e.defaultWidth;s=e.values[i]||e.values[a]}const o=e.argumentCallback?e.argumentCallback(t):t;return s[o]}}const sM={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},oM={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},aM={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"]},iM={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"]},lM={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"}},cM={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"}},uM=(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"},dM={ordinalNumber:uM,era:Lo({values:sM,defaultWidth:"wide"}),quarter:Lo({values:oM,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Lo({values:aM,defaultWidth:"wide"}),day:Lo({values:iM,defaultWidth:"wide"}),dayPeriod:Lo({values:lM,defaultWidth:"wide",formattingValues:cM,defaultFormattingWidth:"wide"})};function Do(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 a=o[0],i=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(i)?hM(i,p=>p.test(a)):fM(i,p=>p.test(a));let d;d=e.valueCallback?e.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;const f=t.slice(a.length);return{value:d,rest:f}}}function fM(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function hM(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function pM(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 a=e.valueCallback?e.valueCallback(o[0]):o[0];a=n.valueCallback?n.valueCallback(a):a;const i=t.slice(s.length);return{value:a,rest:i}}}const mM=/^(\d+)(th|st|nd|rd)?/i,gM=/\d+/i,yM={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},vM={any:[/^b/i,/^(a|c)/i]},bM={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},SM={any:[/1/i,/2/i,/3/i,/4/i]},wM={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},xM={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]},_M={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},CM={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]},kM={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},TM={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}},PM={ordinalNumber:pM({matchPattern:mM,parsePattern:gM,valueCallback:e=>parseInt(e,10)}),era:Do({matchPatterns:yM,defaultMatchWidth:"wide",parsePatterns:vM,defaultParseWidth:"any"}),quarter:Do({matchPatterns:bM,defaultMatchWidth:"wide",parsePatterns:SM,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Do({matchPatterns:wM,defaultMatchWidth:"wide",parsePatterns:xM,defaultParseWidth:"any"}),day:Do({matchPatterns:_M,defaultMatchWidth:"wide",parsePatterns:CM,defaultParseWidth:"any"}),dayPeriod:Do({matchPatterns:kM,defaultMatchWidth:"any",parsePatterns:TM,defaultParseWidth:"any"})},EM={code:"en-US",formatDistance:JE,formatLong:tM,formatRelative:rM,localize:dM,match:PM,options:{weekStartsOn:0,firstWeekContainsDate:1}};function MM(e,t){const n=Qn(e,t==null?void 0:t.in);return HE(n,VE(n))+1}function RM(e,t){const n=Qn(e,t==null?void 0:t.in),r=+El(n)-+XE(n);return Math.round(r/vv)+1}function Sv(e,t){var f,p,v,g;const n=Qn(e,t==null?void 0:t.in),r=n.getFullYear(),s=Kl(),o=(t==null?void 0:t.firstWeekContainsDate)??((p=(f=t==null?void 0:t.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??s.firstWeekContainsDate??((g=(v=s.locale)==null?void 0:v.options)==null?void 0:g.firstWeekContainsDate)??1,a=qr((t==null?void 0:t.in)||e,0);a.setFullYear(r+1,0,o),a.setHours(0,0,0,0);const i=Za(a,t),c=qr((t==null?void 0:t.in)||e,0);c.setFullYear(r,0,o),c.setHours(0,0,0,0);const d=Za(c,t);return+n>=+i?r+1:+n>=+d?r:r-1}function AM(e,t){var i,c,d,f;const n=Kl(),r=(t==null?void 0:t.firstWeekContainsDate)??((c=(i=t==null?void 0:t.locale)==null?void 0:i.options)==null?void 0:c.firstWeekContainsDate)??n.firstWeekContainsDate??((f=(d=n.locale)==null?void 0:d.options)==null?void 0:f.firstWeekContainsDate)??1,s=Sv(e,t),o=qr((t==null?void 0:t.in)||e,0);return o.setFullYear(s,0,r),o.setHours(0,0,0,0),Za(o,t)}function jM(e,t){const n=Qn(e,t==null?void 0:t.in),r=+Za(n,t)-+AM(n,t);return Math.round(r/vv)+1}function wt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const $r={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return wt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):wt(n+1,2)},d(e,t){return wt(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 wt(e.getHours()%12||12,t.length)},H(e,t){return wt(e.getHours(),t.length)},m(e,t){return wt(e.getMinutes(),t.length)},s(e,t){return wt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return wt(s,t.length)}},Ds={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},xp={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 $r.y(e,t)},Y:function(e,t,n,r){const s=Sv(e,r),o=s>0?s:1-s;if(t==="YY"){const a=o%100;return wt(a,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):wt(o,t.length)},R:function(e,t){const n=bv(e);return wt(n,t.length)},u:function(e,t){const n=e.getFullYear();return wt(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 wt(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 wt(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 $r.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 wt(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=jM(e,r);return t==="wo"?n.ordinalNumber(s,{unit:"week"}):wt(s,t.length)},I:function(e,t,n){const r=RM(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):wt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):$r.d(e,t)},D:function(e,t,n){const r=MM(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):wt(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 wt(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 wt(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 wt(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=Ds.noon:r===0?s=Ds.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=Ds.evening:r>=12?s=Ds.afternoon:r>=4?s=Ds.morning:s=Ds.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 $r.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):$r.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):wt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):wt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):$r.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):$r.s(e,t)},S:function(e,t){return $r.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Cp(r);case"XXXX":case"XX":return ns(r);case"XXXXX":case"XXX":default:return ns(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Cp(r);case"xxxx":case"xx":return ns(r);case"xxxxx":case"xxx":default:return ns(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+_p(r,":");case"OOOO":default:return"GMT"+ns(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+_p(r,":");case"zzzz":default:return"GMT"+ns(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return wt(r,t.length)},T:function(e,t,n){return wt(+e,t.length)}};function _p(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+wt(o,2)}function Cp(e,t){return e%60===0?(e>0?"-":"+")+wt(Math.abs(e)/60,2):ns(e,t)}function ns(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=wt(Math.trunc(r/60),2),o=wt(r%60,2);return n+s+t+o}const kp=(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"})}},wv=(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"})}},IM=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return kp(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}}",kp(r,t)).replace("{{time}}",wv(s,t))},OM={p:wv,P:IM},$M=/^D+$/,LM=/^Y+$/,DM=["D","DD","YY","YYYY"];function FM(e){return $M.test(e)}function NM(e){return LM.test(e)}function zM(e,t,n){const r=BM(e,t,n);if(console.warn(r),DM.includes(e))throw new RangeError(r)}function BM(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 WM=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,UM=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,qM=/^'([^]*?)'?$/,HM=/''/g,XM=/[a-zA-Z]/;function YM(e,t,n){var f,p,v,g;const r=Kl(),s=r.locale??EM,o=r.firstWeekContainsDate??((p=(f=r.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??1,a=r.weekStartsOn??((g=(v=r.locale)==null?void 0:v.options)==null?void 0:g.weekStartsOn)??0,i=Qn(e,n==null?void 0:n.in);if(!KE(i))throw new RangeError("Invalid time value");let c=t.match(UM).map(w=>{const m=w[0];if(m==="p"||m==="P"){const x=OM[m];return x(w,s.formatLong)}return w}).join("").match(WM).map(w=>{if(w==="''")return{isToken:!1,value:"'"};const m=w[0];if(m==="'")return{isToken:!1,value:KM(w)};if(xp[m])return{isToken:!0,value:w};if(m.match(XM))throw new RangeError("Format string contains an unescaped latin alphabet character `"+m+"`");return{isToken:!1,value:w}});s.localize.preprocessor&&(c=s.localize.preprocessor(i,c));const d={firstWeekContainsDate:o,weekStartsOn:a,locale:s};return c.map(w=>{if(!w.isToken)return w.value;const m=w.value;(NM(m)||FM(m))&&zM(m,t,String(e));const x=xp[m[0]];return x(i,m,s.localize,d)}).join("")}function KM(e){const t=e.match(qM);return t?t[1].replace(HM,"'"):e}const{useToken:VM}=st,{Text:zi}=ot,GM=({images:e,className:t,style:n,maxHeight:r={single:400,multiple:200}})=>{const{token:s}=VM(),{t:o}=qe();return!e||e.length===0?null:l.jsx(Bt,{className:t,style:{marginBottom:s.marginMD,...n},styles:{body:{padding:0}},variant:"borderless",children:l.jsx(we,{wrap:"wrap",gap:s.marginSM,style:{width:"100%"},children:e.map(a=>l.jsxs(Bt,{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:[l.jsxs("div",{style:{position:"relative"},children:[l.jsx(_a,{src:a.url||a.base64,alt:a.name,style:{width:"100%",height:"auto",maxHeight:e.length===1?r.single:r.multiple,objectFit:"cover"},preview:{mask:l.jsxs(we,{align:"center",justify:"center",gap:s.marginXS,style:{color:s.colorTextLightSolid},children:[l.jsx(Pd,{}),l.jsx(zi,{style:{color:s.colorTextLightSolid},children:o("components.imageGrid.preview")})]})}}),l.jsxs(we,{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:[l.jsx(zi,{style:{color:s.colorTextLightSolid},strong:!0,children:a.name}),a.size&&l.jsxs(zi,{style:{fontSize:s.fontSizeSM*.85,opacity:.8,color:s.colorTextLightSolid},children:[(a.size/1024).toFixed(1)," KB",a.width&&a.height&&` • ${a.width}×${a.height}`]})]})]}),(a.ocrText||a.ocrError)&&l.jsx("div",{style:{padding:s.paddingSM},children:l.jsx(ao,{ghost:!0,size:"small",items:[{key:"ocr",label:o("components.imageGrid.ocr"),children:l.jsxs(l.Fragment,{children:[a.ocrError&&l.jsx(zi,{type:"danger",children:a.ocrError}),a.ocrText&&l.jsx(ot.Paragraph,{style:{marginTop:a.ocrError?s.marginXS:0,marginBottom:0,whiteSpace:"pre-wrap"},children:a.ocrText})]})}]})})]},a.id))})})},{useToken:JM}=st,{useBreakpoint:QM}=zl,ZM=({buttons:e,isVisible:t,className:n,style:r,position:s={bottom:"8px",right:"8px"}})=>{const{token:o}=JM(),a=QM(),i=()=>(a.xs,"small");return l.jsx(we,{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(c=>l.jsx(dn,{title:c.title,children:l.jsx(Ee,{"data-testid":c["data-testid"]||c.key,icon:c.icon,size:i(),type:"text",onClick:c.onClick,disabled:c.disabled,style:{background:o.colorBgElevated,borderRadius:o.borderRadiusSM}})},c.key))})},eR=(e,t)=>({key:"copy","data-testid":"copy-message",icon:l.jsx(Cr,{}),title:t||kt.t("chat.actions.copyMessage"),onClick:e}),tR=(e,t)=>({key:"reference",icon:l.jsx(Gg,{}),title:t||kt.t("chat.actions.referenceMessage"),onClick:e}),xv=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_result",nR=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_call",rR=e=>e.role==="assistant"&&"type"in e&&e.type==="workflow_result",sR=e=>e.role==="user"&&"type"in e&&e.type==="file_reference",oR=e=>e.role==="assistant"&&"type"in e&&e.type==="task_list",{Title:Tp,Text:Ln,Paragraph:Pp}=ot,{useToken:aR}=st,iR=({plan:e,contextId:t,onExecute:n,onRefine:r,timestamp:s})=>{const{t:o}=qe(),{token:a}=aR(),[i,c]=S.useState(!1),[d,f]=S.useState(""),p=()=>{d.trim()&&(r(d),f(""),c(!1))};return l.jsxs(Bt,{style:{marginBottom:a.marginMD,borderColor:a.colorPrimary,borderWidth:2,backgroundColor:a.colorPrimaryBg},title:l.jsxs(ze,{children:[l.jsx(qa,{style:{color:a.colorPrimary}}),l.jsx(Ln,{strong:!0,style:{color:a.colorPrimary},children:o("components.plan.executionPlan")})]}),extra:s?l.jsx(Ln,{type:"secondary",style:{fontSize:a.fontSizeSM},children:s}):void 0,children:[l.jsxs(we,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Tp,{level:5,style:{marginBottom:a.marginXS},children:o("components.plan.goal")}),l.jsx(Pp,{style:{fontSize:15,marginBottom:0},children:e.goal})]}),l.jsxs(we,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Tp,{level:5,style:{marginBottom:a.marginMD},children:o("components.plan.steps")}),l.jsx(Jg,{direction:"vertical",current:-1,items:e.steps.map(v=>({title:l.jsxs(Ln,{strong:!0,children:[o("components.plan.stepTitle",{number:v.step_number}),": ",v.action]}),description:l.jsxs(we,{vertical:!0,children:[l.jsxs(Pp,{style:{marginBottom:a.marginXS},children:[l.jsxs(Ln,{type:"secondary",children:[o("components.plan.reason"),":"]})," ",v.reason]}),l.jsxs(ze,{wrap:!0,children:[l.jsxs(Ln,{type:"secondary",children:[l.jsx(Td,{})," ",o("components.plan.tools"),":"]}),v.tools_needed.map(g=>l.jsx(Ye,{color:"processing",children:g},g))]}),l.jsx(we,{style:{marginTop:a.marginXS},children:l.jsxs(Ln,{type:"secondary",children:[l.jsx(Ss,{})," ",o("components.plan.estimated"),": ",v.estimated_time]})})]}),icon:l.jsx(Ln,{children:v.step_number})}))})]}),l.jsxs(ze,{direction:"vertical",style:{width:"100%",marginBottom:a.marginLG},children:[l.jsxs(we,{align:"center",gap:a.marginXS,wrap:"wrap",children:[l.jsxs(Ln,{type:"secondary",children:[l.jsx(Ss,{})," ",o("components.plan.totalEstimatedTime")," "]}),l.jsx(Ye,{color:"processing",children:e.estimated_total_time})]}),e.prerequisites&&e.prerequisites.length>0&&l.jsxs(we,{vertical:!0,children:[l.jsxs(Ln,{type:"secondary",children:[o("components.plan.prerequisites"),":"]}),l.jsx(_r,{size:"small",dataSource:e.prerequisites,renderItem:(v,g)=>l.jsx(_r.Item,{style:{padding:0},children:l.jsx(Ln,{children:v})},`${v}-${g}`)})]})]}),e.risks&&e.risks.length>0&&l.jsx(ao,{ghost:!0,style:{marginBottom:a.marginLG},items:[{key:"risks",label:l.jsxs(ze,{children:[l.jsx(Ed,{style:{color:a.colorWarning}}),l.jsx(Ln,{strong:!0,children:o("components.plan.potentialRisks",{count:e.risks.length})})]}),children:l.jsx(_r,{size:"small",dataSource:e.risks,renderItem:(v,g)=>l.jsx(_r.Item,{style:{padding:0},children:l.jsx(Ln,{children:v})},`${v}-${g}`)})}]}),l.jsx(ze,{style:{width:"100%",justifyContent:"flex-end"},children:i?l.jsxs(l.Fragment,{children:[l.jsx(Ee,{onClick:()=>c(!1),children:o("common.cancel")}),l.jsx(Ee,{type:"primary",onClick:p,disabled:!d.trim(),children:o("components.plan.sendFeedback")})]}):l.jsxs(l.Fragment,{children:[l.jsx(Ee,{onClick:()=>c(!0),children:o("components.plan.refinePlan")}),l.jsx(Ee,{type:"primary",icon:l.jsx(Xw,{}),onClick:n,children:o("components.plan.executePlan")})]})}),i&&l.jsx(we,{vertical:!0,style:{marginTop:a.marginMD},children:l.jsx(Ts.TextArea,{value:d,onChange:v=>f(v.target.value),placeholder:o("components.plan.feedbackPlaceholder"),autoSize:{minRows:4,maxRows:10}})})]})},_v=S.memo(iR);_v.displayName="PlanMessageCard";const{Title:lR,Text:Fs,Paragraph:cR}=ot,{useToken:uR}=st,dR=({question:e,contextId:t,onAnswer:n,disabled:r=!1,timestamp:s})=>{const{t:o}=qe(),{token:a}=uR(),[i,c]=S.useState(e.default),[d,f]=S.useState(!1),p=async()=>{if(i){f(!0);try{await n(i)}catch(m){console.error("Failed to submit answer:",m)}finally{f(!1)}}},v=()=>{switch(e.severity){case"critical":return l.jsx(Yg,{style:{color:a.colorError}});case"major":return l.jsx(Ed,{style:{color:a.colorWarning}});case"minor":return l.jsx(Yw,{style:{color:a.colorInfo}});default:return l.jsx(Vg,{style:{color:a.colorPrimary}})}},g=()=>{switch(e.severity){case"critical":return a.colorErrorBg;case"major":return a.colorWarningBg;case"minor":return a.colorInfoBg;default:return a.colorPrimaryBg}},w=()=>{switch(e.severity){case"critical":return a.colorError;case"major":return a.colorWarning;case"minor":return a.colorInfo;default:return a.colorPrimary}};return l.jsxs(Bt,{style:{marginBottom:a.marginMD,borderColor:w(),borderWidth:2,backgroundColor:g()},title:l.jsxs(ze,{children:[v(),l.jsx(Fs,{strong:!0,style:{color:w()},children:o("components.question.agentQuestion")}),l.jsxs(Fs,{type:"secondary",style:{fontSize:12},children:["(",e.severity,")"]})]}),extra:s?l.jsx(Fs,{type:"secondary",style:{fontSize:a.fontSizeSM},children:s}):void 0,children:[l.jsx(we,{vertical:!0,style:{marginBottom:a.marginLG},children:l.jsx(lR,{level:5,style:{marginBottom:a.marginXS},children:e.question})}),e.context&&l.jsx(Jn,{message:o("components.question.context"),description:e.context,type:"info",showIcon:!0,style:{marginBottom:a.marginLG}}),l.jsxs(we,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Fs,{strong:!0,style:{display:"block",marginBottom:a.marginSM},children:o("components.question.chooseOption")}),l.jsx(th.Group,{value:i,onChange:m=>c(m.target.value),disabled:r||d,style:{width:"100%"},children:l.jsx(ze,{direction:"vertical",style:{width:"100%"},children:e.options.map(m=>l.jsx(Bt,{size:"small",hoverable:!r&&!d,style:{borderColor:i===m.value?a.colorPrimary:a.colorBorder,backgroundColor:i===m.value?a.colorPrimaryBg:a.colorBgContainer,cursor:r||d?"not-allowed":"pointer"},onClick:()=>!r&&!d&&c(m.value),children:l.jsx(th,{value:m.value,style:{width:"100%"},children:l.jsxs(we,{vertical:!0,children:[l.jsxs(we,{align:"center",gap:a.marginXS,wrap:"wrap",children:[l.jsx(Fs,{strong:!0,children:m.label}),m.value===e.default&&l.jsx(Ye,{color:"processing",style:{marginLeft:a.marginXS},children:o("components.question.recommended")})]}),l.jsx(cR,{type:"secondary",style:{marginTop:a.marginXXS,marginBottom:0},children:m.description})]})})},m.value))})})]}),e.allow_custom&&l.jsxs(we,{vertical:!0,style:{marginBottom:a.marginMD},children:[l.jsx(Fs,{type:"secondary",style:{fontSize:12},children:o("components.question.customAnswerHint")}),l.jsx(Ts.TextArea,{value:i&&!e.options.find(m=>m.value===i)?i:"",onChange:m=>c(m.target.value),placeholder:o("components.question.customAnswerPlaceholder"),disabled:r||d,autoSize:{minRows:3,maxRows:8},style:{marginTop:a.marginXS}})]}),l.jsx(we,{justify:"flex-end",children:l.jsx(Ee,{type:"primary",icon:l.jsx(qa,{}),onClick:p,loading:d,disabled:r||!i,children:o("components.question.submitAnswer")})})]})},Cv=S.memo(dR);Cv.displayName="QuestionMessageCard";const{Text:Ep}=ot,fR=({paths:e,displayText:t})=>{const{token:n}=st.useToken(),r=t.replace(/@[^\s]+/g,"").trim();return l.jsxs(Bt,{size:"small",styles:{body:{padding:`${n.paddingSM}px ${n.paddingMD}px`}},style:{maxWidth:"100%"},children:[l.jsx(ze,{direction:"vertical",size:n.marginXXS,children:e.map(s=>{const o=s.split("/").pop()||s,a=s.substring(0,s.lastIndexOf("/"))||"",i=!o.includes(".");return l.jsxs(we,{vertical:!0,children:[l.jsxs(ze,{size:n.marginXS,align:"center",wrap:!0,children:[i?l.jsx(nh,{style:{color:n.colorWarning,fontSize:n.fontSizeLG}}):l.jsx(yl,{style:{color:n.colorPrimary,fontSize:n.fontSizeLG}}),l.jsx(Ye,{color:i?"warning":"processing",style:{margin:0,fontFamily:n.fontFamilyCode,fontSize:n.fontSize},children:o})]}),a&&l.jsx(dn,{title:s,children:l.jsxs(ze,{size:4,align:"center",style:{marginTop:4},children:[l.jsx(nh,{style:{color:n.colorTextTertiary,fontSize:n.fontSizeSM}}),l.jsx(Ep,{type:"secondary",style:{fontSize:n.fontSizeSM,fontFamily:n.fontFamilyCode,maxWidth:"400px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},copyable:{text:s},children:a})]})})]},s)})}),r&&l.jsx(Ep,{style:{fontSize:n.fontSize,color:n.colorText,marginTop:n.marginXS,paddingTop:n.marginXS,borderTop:`1px solid ${n.colorBorderSecondary}`},children:r})]})},kv=S.memo(fR);kv.displayName="FileReferenceCard";const hR=({taskList:e})=>{const{token:t}=st.useToken(),{Text:n}=ot,{t:r}=qe(),s=c=>{switch(c){case"pending":return l.jsx(Ye,{icon:l.jsx(Ss,{}),color:"default",children:r("components.todoList.status.pending")});case"in_progress":return l.jsx(Ye,{icon:l.jsx(Qs,{spin:!0}),color:"processing",children:r("components.todoList.status.inProgress")});case"completed":return l.jsx(Ye,{icon:l.jsx(qa,{}),color:"success",children:r("components.todoList.status.completed")});case"skipped":return l.jsx(Ye,{icon:l.jsx(Kw,{}),color:"default",children:r("components.todoList.status.skipped")});case"failed":return l.jsx(Ye,{icon:l.jsx(ku,{}),color:"error",children:r("components.todoList.status.failed")});default:return null}},o=()=>{switch(e.status){case"active":return l.jsx(Ye,{color:"processing",children:r("components.todoList.listStatus.active")});case"completed":return l.jsx(Ye,{color:"success",children:r("components.todoList.listStatus.completed")});case"abandoned":return l.jsx(Ye,{color:"error",children:r("components.todoList.listStatus.abandoned")});default:return null}},a=rt.useMemo(()=>{if(e.items.length===0)return 0;const c=e.items.filter(d=>d.status==="completed").length;return Math.round(c/e.items.length*100)},[e.items]),i=rt.useMemo(()=>e.items.find(c=>c.status==="in_progress"),[e.items]);return l.jsx(Bt,{size:"small",styles:{body:{padding:t.paddingSM}},style:{borderRadius:t.borderRadiusLG},children:l.jsxs(we,{vertical:!0,gap:t.marginSM,children:[l.jsxs(we,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsxs(ze,{direction:"vertical",size:2,children:[l.jsx(n,{strong:!0,children:e.title}),e.description?l.jsx(n,{type:"secondary",children:e.description}):null]}),o()]}),l.jsxs(ze,{direction:"vertical",size:4,children:[l.jsx(Qg,{percent:a,status:e.status==="completed"?"success":e.status==="abandoned"?"exception":"active",showInfo:!0}),l.jsx(n,{type:"secondary",children:r("components.todoList.percentComplete",{percent:a})})]}),l.jsx(_r,{size:"small",dataSource:e.items,renderItem:c=>{var f;const d=(i==null?void 0:i.id)===c.id;return l.jsx(_r.Item,{style:{borderRadius:t.borderRadius,padding:t.paddingXS,background:d?t.colorPrimaryBg:"transparent",border:"1px solid",borderColor:d?t.colorPrimaryBorder:t.colorBorderSecondary},children:l.jsxs(we,{vertical:!0,style:{width:"100%"},gap:4,children:[l.jsxs(we,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(n,{children:c.description}),s(c.status)]}),c.status==="failed"&&((f=c.metadata)!=null&&f.error)?l.jsx(n,{type:"danger",style:{fontSize:12},children:String(c.metadata.error)}):null,c.status==="completed"&&c.summary?l.jsx(n,{type:"success",style:{fontSize:12},children:c.summary}):null]})})}}),l.jsxs(we,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.progressLabel",{completed:e.items.filter(c=>c.status==="completed").length,total:e.items.length})}),i?l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.currentLabel",{description:i.description})}):null]})]})})},pR=100,rs=new Set;function mR(e){if(rs.has(e)&&rs.delete(e),rs.add(e),rs.size>pR){const t=rs.values().next().value;t&&rs.delete(t)}}function gR(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const yR=e=>{const{t}=qe(),n=gR(e.chart),[r,s]=S.useState(()=>rs.has(n)),o=S.useRef(null);return S.useEffect(()=>{if(r)return;const a=o.current;if(!a)return;const i=new IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(mR(n),s(!0),i.disconnect())},{rootMargin:"50px",threshold:.01});return i.observe(a),()=>i.disconnect()},[r,n]),l.jsx("div",{ref:o,style:{minHeight:r?"auto":"200px"},children:r?l.jsx(rt.Suspense,{fallback:l.jsx(no,{size:"small",tip:t("components.mermaid.loadingDiagram")}),children:l.jsx(vR,{...e})}):l.jsx("div",{style:{minHeight:"200px"}})})},vR=e=>{const{t}=qe(),[n,r]=S.useState(null);return S.useEffect(()=>{let s=!1;return Lt(()=>Promise.resolve().then(()=>qA),void 0,import.meta.url).then(o=>{s||r(()=>o.MermaidChart)}),()=>{s=!0}},[]),n?l.jsx(n,{...e}):l.jsx(no,{size:"small",tip:t("components.mermaid.loadingDiagram")})},bR=rt.memo(yR),SR=({error:e,className:t,style:n,token:r,onFix:s,isFixing:o,fixError:a})=>{const{t:i}=qe(),c=e.split(`
157
+
158
+ `);return l.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:`${i("components.mermaid.errorTitlePrefix")}: ${e}
159
+
160
+ ${i("components.mermaid.checkConsoleHint")}`,children:[l.jsxs("div",{style:{display:"flex",alignItems:"center",marginBottom:r.marginXXS},children:[l.jsx("span",{style:{marginRight:r.marginXS,fontSize:"14px",flexShrink:0,lineHeight:1},children:l.jsx(Ed,{})}),l.jsx("span",{style:{fontWeight:600,color:r.colorError},children:i("components.mermaid.diagramError")})]}),l.jsx("div",{style:{fontSize:r.fontSizeSM,lineHeight:1.4,wordBreak:"break-word",flex:1,width:"100%"},children:c.map((d,f)=>l.jsx("div",{style:{marginBottom:f<c.length-1?r.marginXS:0,...d.startsWith("💡")?{backgroundColor:r.colorInfoBg,border:`1px solid ${r.colorInfoBorder}`,borderRadius:r.borderRadiusSM,padding:r.paddingXS,marginTop:r.marginXS,color:r.colorInfo,fontWeight:500}:{}},children:d},`${f}-${d.substring(0,12)}`))}),s&&l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:r.marginXS,marginTop:r.marginXS,width:"100%"},children:[l.jsx(Ee,{size:"small",type:"primary",onClick:s,loading:o,children:i("components.mermaid.fixMermaid")}),a&&l.jsx("span",{style:{color:r.colorError,fontSize:r.fontSizeSM,wordBreak:"break-word",flex:1},children:a})]}),l.jsxs("div",{style:{fontSize:r.fontSizeSM,color:r.colorTextSecondary,marginTop:r.marginXS,fontStyle:"italic"},children:[l.jsx(Ug,{style:{marginRight:4}})," ",i("components.mermaid.checkConsoleHint")]})]})};var Nn=function(e,t){return Number(e.toFixed(t))},wR=function(e,t){return typeof e=="number"?e:t},jt=function(e,t,n){n&&typeof n=="function"&&n(e,t)},xR=function(e){return-Math.cos(e*Math.PI)/2+.5},_R=function(e){return e},CR=function(e){return e*e},kR=function(e){return e*(2-e)},TR=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},PR=function(e){return e*e*e},ER=function(e){return--e*e*e+1},MR=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},RR=function(e){return e*e*e*e},AR=function(e){return 1- --e*e*e*e},jR=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},IR=function(e){return e*e*e*e*e},OR=function(e){return 1+--e*e*e*e*e},$R=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},Tv={easeOut:xR,linear:_R,easeInQuad:CR,easeOutQuad:kR,easeInOutQuad:TR,easeInCubic:PR,easeOutCubic:ER,easeInOutCubic:MR,easeInQuart:RR,easeOutQuart:AR,easeInOutQuart:jR,easeInQuint:IR,easeOutQuint:OR,easeInOutQuint:$R},Pv=function(e){typeof e=="number"&&cancelAnimationFrame(e)},Gn=function(e){e.mounted&&(Pv(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function Ev(e,t,n,r){if(e.mounted){var s=new Date().getTime(),o=1;Gn(e),e.animation=function(){if(!e.mounted)return Pv(e.animation);var a=new Date().getTime()-s,i=a/n,c=Tv[t],d=c(i);a>=n?(r(o),e.animation=null):e.animation&&(r(d),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function LR(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function Kr(e,t,n,r){var s=LR(t);if(!(!e.mounted||!s)){var o=e.setTransformState,a=e.transformState,i=a.scale,c=a.positionX,d=a.positionY,f=t.scale-i,p=t.positionX-c,v=t.positionY-d;n===0?o(t.scale,t.positionX,t.positionY):Ev(e,r,n,function(g){var w=i+f*g,m=c+p*g,x=d+v*g;o(w,m,x)})}}function DR(e,t,n){var r=e.offsetWidth,s=e.offsetHeight,o=t.offsetWidth,a=t.offsetHeight,i=o*n,c=a*n,d=r-i,f=s-c;return{wrapperWidth:r,wrapperHeight:s,newContentWidth:i,newDiffWidth:d,newContentHeight:c,newDiffHeight:f}}var FR=function(e,t,n,r,s,o,a){var i=e>t?n*(a?1:.5):0,c=r>s?o*(a?1:.5):0,d=e-t-i,f=i,p=r-s-c,v=c;return{minPositionX:d,maxPositionX:f,minPositionY:p,maxPositionY:v}},Jd=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=DR(n,r,t),a=o.wrapperWidth,i=o.wrapperHeight,c=o.newContentWidth,d=o.newDiffWidth,f=o.newContentHeight,p=o.newDiffHeight,v=FR(a,c,d,i,f,p,!!s);return v},Qu=function(e,t,n,r){return r?e<t?Nn(t,2):e>n?Nn(n,2):Nn(e,2):Nn(e,2)},vs=function(e,t){var n=Jd(e,t);return e.bounds=n,n};function ai(e,t,n,r,s,o,a){var i=n.minPositionX,c=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,p=0,v=0;a&&(p=s,v=o);var g=Qu(e,i-p,d+p,r),w=Qu(t,c-v,f+v,r);return{x:g,y:w}}function Vl(e,t,n,r,s,o){var a=e.transformState,i=a.scale,c=a.positionX,d=a.positionY,f=r-i;if(typeof t!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:c,y:d};var p=c-t*f,v=d-n*f,g=ai(p,v,s,o,0,0,null);return g}function ii(e,t,n,r,s){var o=s?r:0,a=t-o;return!Number.isNaN(n)&&e>=n?n:!Number.isNaN(t)&&e<=a?a:e}var Mp=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,s=e.wrapperComponent,o=t.target,a="shadowRoot"in o&&"composedPath"in t,i=a?t.composedPath().some(function(f){return f instanceof Element?s==null?void 0:s.contains(f):!1}):s==null?void 0:s.contains(o),c=r&&o&&i;if(!c)return!1;var d=Gl(o,n);return!d},Rp=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,s=r.panning.disabled,o=t&&n&&!s;return!!o},NR=function(e,t){var n=e.transformState,r=n.positionX,s=n.positionY;e.isPanning=!0;var o=t.clientX,a=t.clientY;e.startCoords={x:o-r,y:a-s}},zR=function(e,t){var n=t.touches,r=e.transformState,s=r.positionX,o=r.positionY;e.isPanning=!0;var a=n.length===1;if(a){var i=n[0].clientX,c=n[0].clientY;e.startCoords={x:i-s,y:c-o}}};function BR(e){var t=e.transformState,n=t.positionX,r=t.positionY,s=t.scale,o=e.setup,a=o.disabled,i=o.limitToBounds,c=o.centerZoomedOut,d=e.wrapperComponent;if(!(a||!d||!e.bounds)){var f=e.bounds,p=f.maxPositionX,v=f.minPositionX,g=f.maxPositionY,w=f.minPositionY,m=n>p||n<v,x=r>g||r<w,k=n>p?d.offsetWidth:e.setup.minPositionX||0,C=r>g?d.offsetHeight:e.setup.minPositionY||0,E=Vl(e,k,C,s,e.bounds,i||c),T=E.x,P=E.y;return{scale:s,positionX:m?T:n,positionY:x?P:r}}}function Mv(e,t,n,r,s){var o=e.setup.limitToBounds,a=e.wrapperComponent,i=e.bounds,c=e.transformState,d=c.scale,f=c.positionX,p=c.positionY;if(!(a===null||i===null||t===f&&n===p)){var v=ai(t,n,i,o,r,s,a),g=v.x,w=v.y;e.setTransformState(d,g,w)}}var WR=function(e,t,n){var r=e.startCoords,s=e.transformState,o=e.setup.panning,a=o.lockAxisX,i=o.lockAxisY,c=s.positionX,d=s.positionY;if(!r)return{x:c,y:d};var f=t-r.x,p=n-r.y,v=a?c:f,g=i?d:p;return{x:v,y:g}},Hr=function(e,t){var n=e.setup,r=e.transformState,s=r.scale,o=n.minScale,a=n.disablePadding;return t>0&&s>=o&&!a?t:0},UR=function(e){var t=e.mounted,n=e.setup,r=n.disabled,s=n.velocityAnimation,o=e.transformState.scale,a=s.disabled,i=!a||o>1||!r||t;return!!i},qR=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,s=e.setup,o=s.disabled,a=s.velocityAnimation,i=e.transformState.scale,c=a.disabled,d=!c||i>1||!o||t;return!(!d||!n||!r)};function HR(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,s=n.animationTime,o=n.sensitivity;return r?s*t*o:s}function Ap(e,t,n,r,s,o,a,i,c,d){if(s){if(t>a&&n>a){var f=a+(e-a)*d;return f>c?c:f<a?a:f}if(t<o&&n<o){var f=o+(e-o)*d;return f<i?i:f>o?o:f}}return r?t:Qu(e,o,a,s)}function XR(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function YR(e,t){var n=UR(e);if(n){var r=e.lastMousePosition,s=e.velocityTime,o=e.setup,a=e.wrapperComponent,i=o.velocityAnimation.equalToMove,c=Date.now();if(r&&s&&a){var d=XR(a,i),f=t.x-r.x,p=t.y-r.y,v=f/d,g=p/d,w=c-s,m=f*f+p*p,x=Math.sqrt(m)/w;e.velocity={velocityX:v,velocityY:g,total:x}}e.lastMousePosition=t,e.velocityTime=c}}function KR(e){var t=e.velocity,n=e.bounds,r=e.setup,s=e.wrapperComponent,o=qR(e);if(!(!o||!t||!n||!s)){var a=t.velocityX,i=t.velocityY,c=t.total,d=n.maxPositionX,f=n.minPositionX,p=n.maxPositionY,v=n.minPositionY,g=r.limitToBounds,w=r.alignmentAnimation,m=r.zoomAnimation,x=r.panning,k=x.lockAxisY,C=x.lockAxisX,E=m.animationType,T=w.sizeX,P=w.sizeY,A=w.velocityAlignmentTime,O=A,$=HR(e,c),U=Math.max($,O),J=Hr(e,T),ee=Hr(e,P),I=J*s.offsetWidth/100,Y=ee*s.offsetHeight/100,z=d+I,D=f-I,ie=p+Y,Q=v-Y,ue=e.transformState,me=new Date().getTime();Ev(e,E,U,function(V){var ae=e.transformState,ve=ae.scale,re=ae.positionX,le=ae.positionY,de=new Date().getTime()-me,pe=de/O,Ae=Tv[w.animationType],Me=1-Ae(Math.min(1,pe)),F=1-V,L=re+a*F,fe=le+i*F,Se=Ap(L,ue.positionX,re,C,g,f,d,D,z,Me),De=Ap(fe,ue.positionY,le,k,g,v,p,Q,ie,Me);(re!==L||le!==fe)&&e.setTransformState(ve,Se,De)})}}function jp(e,t){var n=e.transformState.scale;Gn(e),vs(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?zR(e,t):NR(e,t)}function Qd(e,t){var n=e.transformState.scale,r=e.setup,s=r.minScale,o=r.alignmentAnimation,a=o.disabled,i=o.sizeX,c=o.sizeY,d=o.animationTime,f=o.animationType,p=a||n<s||!i&&!c;if(!p){var v=BR(e);v&&Kr(e,v,t??d,f)}}function Ip(e,t,n){var r=e.startCoords,s=e.setup,o=s.alignmentAnimation,a=o.sizeX,i=o.sizeY;if(r){var c=WR(e,t,n),d=c.x,f=c.y,p=Hr(e,a),v=Hr(e,i);YR(e,{x:d,y:f}),Mv(e,d,f,p,v)}}function VR(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(),a=s==null?void 0:s.getBoundingClientRect(),i=(o==null?void 0:o.width)||0,c=(o==null?void 0:o.height)||0,d=(a==null?void 0:a.width)||0,f=(a==null?void 0:a.height)||0,p=i<d||c<f,v=!t&&n&&(n==null?void 0:n.total)>.1&&p;v?KR(e):Qd(e)}}function Zd(e,t,n,r){var s=e.setup,o=s.minScale,a=s.maxScale,i=s.limitToBounds,c=ii(Nn(t,2),o,a,0,!1),d=vs(e,c),f=Vl(e,n,r,c,d,i),p=f.x,v=f.y;return{scale:c,positionX:p,positionY:v}}function Rv(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,a=o.minScale,i=o.limitToBounds,c=o.zoomAnimation,d=c.disabled,f=c.animationTime,p=c.animationType,v=d||r>=a;if((r>=1||i)&&Qd(e),!(v||!s||!e.mounted)){var g=t||s.offsetWidth/2,w=n||s.offsetHeight/2,m=Zd(e,a,g,w);m&&Kr(e,m,f,p)}}var Ur=function(){return Ur=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},Ur.apply(this,arguments)};function Op(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 Bi={scale:1,positionX:0,positionY:0},Fo={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}},Zu={wrapperClass:"react-transform-wrapper",contentClass:"react-transform-component"},Av=function(e){var t,n,r,s;return{previousScale:(t=e.initialScale)!==null&&t!==void 0?t:Bi.scale,scale:(n=e.initialScale)!==null&&n!==void 0?n:Bi.scale,positionX:(r=e.initialPositionX)!==null&&r!==void 0?r:Bi.positionX,positionY:(s=e.initialPositionY)!==null&&s!==void 0?s:Bi.positionY}},$p=function(e){var t=Ur({},Fo);return Object.keys(e).forEach(function(n){var r=typeof e[n]<"u",s=typeof Fo[n]<"u";if(s&&r){var o=Object.prototype.toString.call(Fo[n]),a=o==="[object Object]",i=o==="[object Array]";a?t[n]=Ur(Ur({},Fo[n]),e[n]):i?t[n]=Op(Op([],Fo[n],!0),e[n]):t[n]=e[n]}}),t},jv=function(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,a=o.maxScale,i=o.minScale,c=o.zoomAnimation,d=o.smooth,f=c.size;if(!s)throw new Error("Wrapper is not mounted");var p=d?r*Math.exp(t*n):r+t*n,v=ii(Nn(p,3),i,a,f,!1);return v};function Iv(e,t,n,r,s){var o=e.wrapperComponent,a=e.transformState,i=a.scale,c=a.positionX,d=a.positionY;if(!o)return console.error("No WrapperComponent found");var f=o.offsetWidth,p=o.offsetHeight,v=(f/2-c)/i,g=(p/2-d)/i,w=jv(e,t,n),m=Zd(e,w,v,g);if(!m)return console.error("Error during zoom event. New transformation state was not calculated.");Kr(e,m,r,s)}function Ov(e,t,n,r){var s=e.setup,o=e.wrapperComponent,a=s.limitToBounds,i=Av(e.props),c=e.transformState,d=c.scale,f=c.positionX,p=c.positionY;if(o){var v=Jd(e,i.scale),g=ai(i.positionX,i.positionY,v,a,0,0,o),w={scale:i.scale,positionX:g.x,positionY:g.y};d===i.scale&&f===i.positionX&&p===i.positionY||(r==null||r(),Kr(e,w,t,n))}}function GR(e,t,n,r){var s=e.getBoundingClientRect(),o=t.getBoundingClientRect(),a=n.getBoundingClientRect(),i=o.x*r.scale,c=o.y*r.scale;return{x:(s.x-a.x+i)/r.scale,y:(s.y-a.y+c)/r.scale}}function JR(e,t,n){var r=e.wrapperComponent,s=e.contentComponent,o=e.transformState,a=e.setup,i=a.limitToBounds,c=a.minScale,d=a.maxScale;if(!r||!s)return o;var f=r.getBoundingClientRect(),p=t.getBoundingClientRect(),v=GR(t,r,s,o),g=v.x,w=v.y,m=p.width/o.scale,x=p.height/o.scale,k=r.offsetWidth/m,C=r.offsetHeight/x,E=ii(n||Math.min(k,C),c,d,0,!1),T=(f.width-m*E)/2,P=(f.height-x*E)/2,A=(f.left-g)*E+T,O=(f.top-w)*E+P,$=Jd(e,E),U=ai(A,O,$,i,0,0,r),J=U.x,ee=U.y;return{positionX:J,positionY:ee,scale:E}}var QR=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Iv(e,1,t,n,r)}},ZR=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Iv(e,-1,t,n,r)}},eA=function(e){return function(t,n,r,s,o){s===void 0&&(s=300),o===void 0&&(o="easeOut");var a=e.transformState,i=a.positionX,c=a.positionY,d=a.scale,f=e.wrapperComponent,p=e.contentComponent,v=e.setup.disabled;if(!(v||!f||!p)){var g={positionX:Number.isNaN(t)?i:t,positionY:Number.isNaN(n)?c:n,scale:Number.isNaN(r)?d:r};Kr(e,g,s,o)}}},tA=function(e){return function(t,n){t===void 0&&(t=200),n===void 0&&(n="easeOut"),Ov(e,t,n)}},nA=function(e){return function(t,n,r){n===void 0&&(n=200),r===void 0&&(r="easeOut");var s=e.transformState,o=e.wrapperComponent,a=e.contentComponent;if(o&&a){var i=$v(t||s.scale,o,a);Kr(e,i,n,r)}}},rA=function(e){return function(t,n,r,s){r===void 0&&(r=600),s===void 0&&(s="easeOut"),Gn(e);var o=e.wrapperComponent,a=typeof t=="string"?document.getElementById(t):t;if(o&&a&&o.contains(a)){var i=JR(e,a,n);Kr(e,i,r,s)}}},ed=function(e){return{instance:e,zoomIn:QR(e),zoomOut:ZR(e),setTransform:eA(e),resetTransform:tA(e),centerView:nA(e),zoomToElement:rA(e)}},sA=function(e){return{instance:e,state:e.transformState}},Rt=function(e){var t={};return Object.assign(t,sA(e)),Object.assign(t,ed(e)),t},Xc=!1;function Yc(){try{var e={get passive(){return Xc=!0,!1}};return e}catch{return Xc=!1,Xc}}var Wi=".".concat(Zu.wrapperClass),Gl=function(e,t){return t.some(function(n){return e.matches("".concat(Wi," ").concat(n,", ").concat(Wi," .").concat(n,", ").concat(Wi," ").concat(n," *, ").concat(Wi," .").concat(n," *"))})},td=function(e){e&&clearTimeout(e)},oA=function(e,t,n){return"translate(".concat(e,"px, ").concat(t,"px) scale(").concat(n,")")},$v=function(e,t,n){var r=n.offsetWidth*e,s=n.offsetHeight*e,o=(t.offsetWidth-r)/2,a=(t.offsetHeight-s)/2;return{scale:e,positionX:o,positionY:a}};function aA(e){return function(t){e.forEach(function(n){typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var iA=function(e,t){var n=e.setup.wheel,r=n.disabled,s=n.wheelDisabled,o=n.touchPadDisabled,a=n.excluded,i=e.isInitialized,c=e.isPanning,d=t.target,f=i&&!c&&!r&&d;if(!f||s&&!t.ctrlKey||o&&t.ctrlKey)return!1;var p=Gl(d,a);return!p},lA=function(e){return e?e.deltaY<0?1:-1:0};function cA(e,t){var n=lA(e),r=wR(t,n);return r}function Lv(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 a=e.touches[0];s=(a.clientX-r.left)/n,o=(a.clientY-r.top)/n}return(Number.isNaN(s)||Number.isNaN(o))&&console.error("No mouse or touch offset found"),{x:s,y:o}}var uA=function(e,t,n,r,s){var o=e.transformState.scale,a=e.wrapperComponent,i=e.setup,c=i.maxScale,d=i.minScale,f=i.zoomAnimation,p=i.disablePadding,v=f.size,g=f.disabled;if(!a)throw new Error("Wrapper is not mounted");var w=o+t*n,m=r?!1:!g,x=ii(Nn(w,3),d,c,v,m&&!p);return x},dA=function(e,t){var n=e.previousWheelEvent,r=e.transformState.scale,s=e.setup,o=s.maxScale,a=s.minScale;return n?r<o||r>a||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},fA=function(e,t){var n=e.setup.pinch,r=n.disabled,s=n.excluded,o=e.isInitialized,a=t.target,i=o&&!r&&a;if(!i)return!1;var c=Gl(a,s);return!c},hA=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,s=n&&!t&&r;return!!s},pA=function(e,t,n){var r=n.getBoundingClientRect(),s=e.touches,o=Nn(s[0].clientX-r.left,5),a=Nn(s[0].clientY-r.top,5),i=Nn(s[1].clientX-r.left,5),c=Nn(s[1].clientY-r.top,5);return{x:(o+i)/2/t,y:(a+c)/2/t}},Dv=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))},mA=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,s=e.setup,o=s.maxScale,a=s.minScale,i=s.zoomAnimation,c=s.disablePadding,d=i.size,f=i.disabled;if(!n||r===null||!t)throw new Error("Pinch touches distance was not provided");if(t<0)return e.transformState.scale;var p=t/r,v=p*n;return ii(Nn(v,2),a,o,d,!f&&!c)},gA=160,yA=100,vA=function(e,t){var n=e.props,r=n.onWheelStart,s=n.onZoomStart;e.wheelStopEventTimer||(Gn(e),jt(Rt(e),t,r),jt(Rt(e),t,s))},bA=function(e,t){var n=e.props,r=n.onWheel,s=n.onZoom,o=e.contentComponent,a=e.setup,i=e.transformState,c=i.scale,d=a.limitToBounds,f=a.centerZoomedOut,p=a.zoomAnimation,v=a.wheel,g=a.disablePadding,w=a.smooth,m=p.size,x=p.disabled,k=v.step,C=v.smoothStep;if(!o)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var E=cA(t,null),T=w?C*Math.abs(t.deltaY):k,P=uA(e,E,T,!t.ctrlKey);if(c!==P){var A=vs(e,P),O=Lv(t,o,c),$=x||m===0||f||g,U=d&&$,J=Vl(e,O.x,O.y,P,A,U),ee=J.x,I=J.y;e.previousWheelEvent=t,e.setTransformState(P,ee,I),jt(Rt(e),t,r),jt(Rt(e),t,s)}},SA=function(e,t){var n=e.props,r=n.onWheelStop,s=n.onZoomStop;td(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&(Rv(e,t.x,t.y),e.wheelAnimationTimer=null)},yA);var o=dA(e,t);o&&(td(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,jt(Rt(e),t,r),jt(Rt(e),t,s))},gA))},Fv=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}},wA=function(e,t){var n=Dv(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1;var r=Fv(t);e.pinchLastCenterX=r.x,e.pinchLastCenterY=r.y,Gn(e)},xA=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,s=e.wrapperComponent,o=e.transformState.scale,a=e.setup,i=a.limitToBounds,c=a.centerZoomedOut,d=a.zoomAnimation,f=a.alignmentAnimation,p=d.disabled,v=d.size;if(!(r===null||!n)){var g=pA(t,o,n);if(!(!Number.isFinite(g.x)||!Number.isFinite(g.y))){var w=Dv(t),m=mA(e,w),x=Fv(t),k=x.x-(e.pinchLastCenterX||0),C=x.y-(e.pinchLastCenterY||0);if(!(m===o&&k===0&&C===0)){e.pinchLastCenterX=x.x,e.pinchLastCenterY=x.y;var E=vs(e,m),T=p||v===0||c,P=i&&T,A=Vl(e,g.x,g.y,m,E,P),O=A.x,$=A.y;e.pinchMidpoint=g,e.lastDistance=w;var U=f.sizeX,J=f.sizeY,ee=Hr(e,U),I=Hr(e,J),Y=O+k,z=$+C,D=ai(Y,z,E,i,ee,I,s),ie=D.x,Q=D.y;e.setTransformState(m,ie,Q)}}}},_A=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,Rv(e,t==null?void 0:t.x,t==null?void 0:t.y)},Nv=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;td(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,jt(Rt(e),t,n)},r)},CA=function(e,t){var n=e.props,r=n.onZoomStart,s=n.onZoom,o=e.setup.doubleClick,a=o.animationTime,i=o.animationType;jt(Rt(e),t,r),Ov(e,a,i,function(){return jt(Rt(e),t,s)}),Nv(e,t)};function kA(e,t){return e==="toggle"?t===1?1:-1:e==="zoomOut"?-1:1}function TA(e,t){var n=e.setup,r=e.doubleClickStopEventTimer,s=e.transformState,o=e.contentComponent,a=s.scale,i=e.props,c=i.onZoomStart,d=i.onZoom,f=n.doubleClick,p=f.disabled,v=f.mode,g=f.step,w=f.animationTime,m=f.animationType;if(!p&&!r){if(v==="reset")return CA(e,t);if(!o)return console.error("No ContentComponent found");var x=kA(v,e.transformState.scale),k=jv(e,x,g);if(a!==k){jt(Rt(e),t,c);var C=Lv(t,o,a),E=Zd(e,k,C.x,C.y);if(!E)return console.error("Error during zoom event. New transformation state was not calculated.");jt(Rt(e),t,d),Kr(e,E,w,m),Nv(e,t)}}}var PA=function(e,t){var n=e.isInitialized,r=e.setup,s=e.wrapperComponent,o=r.doubleClick,a=o.disabled,i=o.excluded,c=t.target,d=s==null?void 0:s.contains(c),f=n&&c&&d&&!a;if(!f)return!1;var p=Gl(c,i);return!p},EA=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,vs(n,n.transformState.scale),n.setup=$p(r)},this.initializeWindowEvents=function(){var r,s,o=Yc(),a=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,i=a==null?void 0:a.defaultView;(s=n.wrapperComponent)===null||s===void 0||s.addEventListener("wheel",n.onWheelPanning,o),i==null||i.addEventListener("mousedown",n.onPanningStart,o),i==null||i.addEventListener("mousemove",n.onPanning,o),i==null||i.addEventListener("mouseup",n.onPanningStop,o),a==null||a.addEventListener("mouseleave",n.clearPanning,o),i==null||i.addEventListener("keyup",n.setKeyUnPressed,o),i==null||i.addEventListener("keydown",n.setKeyPressed,o)},this.cleanupWindowEvents=function(){var r,s,o=Yc(),a=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,i=a==null?void 0:a.defaultView;i==null||i.removeEventListener("mousedown",n.onPanningStart,o),i==null||i.removeEventListener("mousemove",n.onPanning,o),i==null||i.removeEventListener("mouseup",n.onPanningStop,o),a==null||a.removeEventListener("mouseleave",n.clearPanning,o),i==null||i.removeEventListener("keyup",n.setKeyUnPressed,o),i==null||i.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),Gn(n),(s=n.observer)===null||s===void 0||s.disconnect()},this.handleInitializeWrapperEvents=function(r){var s=Yc();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,a=n.setup.centerOnInit,i=function(c,d){for(var f=0,p=c;f<p.length;f++){var v=p[f];if(v.target===d)return!0}return!1};n.applyTransformation(),n.onInitCallbacks.forEach(function(c){c(Rt(n))}),n.observer=new ResizeObserver(function(c){if(i(c,r)||i(c,s))if(a&&!o){var d=s.offsetWidth,f=s.offsetHeight;(d>0||f>0)&&(o=!0,n.setCenter())}else Gn(n),vs(n,n.transformState.scale),Qd(n,0)}),n.observer.observe(r),n.observer.observe(s)},this.onWheelZoom=function(r){var s=n.setup.disabled;if(!s){var o=iA(n,r);if(o){var a=n.isPressingKeys(n.setup.wheel.activationKeys);a&&(vA(n,r),bA(n,r),SA(n,r))}}},this.onWheelPanning=function(r){var s=n.setup,o=s.disabled,a=s.wheel,i=s.panning;if(!(!n.wrapperComponent||!n.contentComponent||o||!a.wheelDisabled||i.disabled||!i.wheelPanning||r.ctrlKey)){r.preventDefault(),r.stopPropagation();var c=n.transformState,d=c.positionX,f=c.positionY,p=d-r.deltaX,v=f-r.deltaY,g=i.lockAxisX?d:p,w=i.lockAxisY?f:v,m=n.setup.alignmentAnimation,x=m.sizeX,k=m.sizeY,C=Hr(n,x),E=Hr(n,k);g===d&&w===f||Mv(n,g,w,C,E)}},this.onPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var a=Mp(n,r);if(a){var i=n.isPressingKeys(n.setup.panning.activationKeys);i&&(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(),Gn(n),jp(n,r),jt(Rt(n),r,o)))}}},this.onPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(!s){var a=Rp(n);if(a){var i=n.isPressingKeys(n.setup.panning.activationKeys);i&&(r.preventDefault(),r.stopPropagation(),Ip(n,r.clientX,r.clientY),jt(Rt(n),r,o))}}},this.onPanningStop=function(r){var s=n.props.onPanningStop;n.isPanning&&(VR(n),jt(Rt(n),r,s))},this.onPinchStart=function(r){var s=n.setup.disabled,o=n.props,a=o.onPinchingStart,i=o.onZoomStart;if(!s){var c=fA(n,r);c&&(wA(n,r),Gn(n),jt(Rt(n),r,a),jt(Rt(n),r,i))}},this.onPinch=function(r){var s=n.setup.disabled,o=n.props,a=o.onPinching,i=o.onZoom;if(!s){var c=hA(n);c&&(r.preventDefault(),r.stopPropagation(),xA(n,r),jt(Rt(n),r,a),jt(Rt(n),r,i))}},this.onPinchStop=function(r){var s=n.props,o=s.onPinchingStop,a=s.onZoomStop;n.pinchStartScale&&(_A(n),jt(Rt(n),r,o),jt(Rt(n),r,a))},this.onTouchPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var a=Mp(n,r);if(a){var i=n.lastTouch&&+new Date-n.lastTouch<200&&r.touches.length===1;if(!i){n.lastTouch=+new Date,Gn(n);var c=r.touches,d=c.length===1,f=c.length===2;d&&(Gn(n),jp(n,r),jt(Rt(n),r,o)),f&&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 a=Rp(n);if(!a)return;r.preventDefault(),r.stopPropagation();var i=r.touches[0];Ip(n,i.clientX,i.clientY),jt(Rt(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=PA(n,r);o&&TA(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 a=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 i=Rt(n);n.onChangeCallbacks.forEach(function(c){return c(i)}),jt(i,{scale:r,positionX:s,positionY:o},a)}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=$v(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):oA(r,s,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,s=r.scale,o=r.positionX,a=r.positionY,i=n.handleTransformStyles(o,a,s);n.contentComponent.style.transform=i}},this.getContext=function(){return Rt(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,vs(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(r,s),n.initializeWindowEvents(),n.isInitialized=!0;var o=Rt(n);jt(o,void 0,n.props.onInit)},this.props=t,this.setup=$p(this.props),this.transformState=Av(this.props)}return e}(),ef=rt.createContext(null),MA=function(e,t){return typeof e=="function"?e(t):e},RA=rt.forwardRef(function(e,t){var n=S.useRef(new EA(e)).current,r=MA(e.children,ed(n));return S.useImperativeHandle(t,function(){return ed(n)},[n]),S.useEffect(function(){n.update(e)},[n,e]),rt.createElement(ef.Provider,{value:n},r)});rt.forwardRef(function(e,t){var n=S.useRef(null),r=S.useContext(ef);return S.useEffect(function(){return r.onChange(function(s){if(n.current){var o=0,a=0;n.current.style.transform=r.handleTransformStyles(o,a,1/s.instance.transformState.scale)}})},[r]),rt.createElement("div",Ur({},e,{ref:aA([n,t])}))});function AA(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 jA=`.transform-component-module_wrapper__SPB86 {
161
+ position: relative;
162
+ width: -moz-fit-content;
163
+ width: fit-content;
164
+ height: -moz-fit-content;
165
+ height: fit-content;
166
+ overflow: hidden;
167
+ -webkit-touch-callout: none; /* iOS Safari */
168
+ -webkit-user-select: none; /* Safari */
169
+ -khtml-user-select: none; /* Konqueror HTML */
170
+ -moz-user-select: none; /* Firefox */
171
+ -ms-user-select: none; /* Internet Explorer/Edge */
172
+ user-select: none;
173
+ margin: 0;
174
+ padding: 0;
175
+ transform: translate3d(0, 0, 0);
176
+ }
177
+ .transform-component-module_content__FBWxo {
178
+ display: flex;
179
+ flex-wrap: wrap;
180
+ width: -moz-fit-content;
181
+ width: fit-content;
182
+ height: -moz-fit-content;
183
+ height: fit-content;
184
+ margin: 0;
185
+ padding: 0;
186
+ transform-origin: 0% 0%;
187
+ }
188
+ .transform-component-module_content__FBWxo img {
189
+ pointer-events: none;
190
+ }
191
+ `,Lp={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};AA(jA);var IA=function(e){var t=e.children,n=e.wrapperClass,r=n===void 0?"":n,s=e.contentClass,o=s===void 0?"":s,a=e.wrapperStyle,i=e.contentStyle,c=e.wrapperProps,d=c===void 0?{}:c,f=e.contentProps,p=f===void 0?{}:f,v=S.useContext(ef),g=v.init,w=v.cleanupWindowEvents,m=S.useRef(null),x=S.useRef(null);return S.useEffect(function(){var k=m.current,C=x.current;return k!==null&&C!==null&&g&&(g==null||g(k,C)),function(){w==null||w()}},[]),rt.createElement("div",Ur({},d,{ref:m,className:"".concat(Zu.wrapperClass," ").concat(Lp.wrapper," ").concat(r),style:a}),rt.createElement("div",Ur({},p,{ref:x,className:"".concat(Zu.contentClass," ").concat(Lp.content," ").concat(o),style:i}),t))};class OA{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,{save:o}=await Lt(async()=>{const{save:d}=await import("./index-BmjFP0ha.js");return{save:d}},__vite__mapDeps([12,13]),import.meta.url),{writeFile:a,writeTextFile:i}=await Lt(async()=>{const{writeFile:d,writeTextFile:f}=await import("./index-_XI0Qq6F.js");return{writeFile:d,writeTextFile:f}},__vite__mapDeps([14,13]),import.meta.url),c=await o({filters:r.map(d=>({name:d.name,extensions:[...d.extensions]})),defaultPath:s});if(!c)throw new Error("User cancelled save operation");return typeof n=="string"?await i(c,n):await a(c,n),{filename:zv(c,s),success:!0}}}class $A{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,o=zv(s,s);if(typeof window>"u"||typeof document>"u")throw new Error("File save is unavailable in this environment");const a=FA(r,n),i=typeof n=="string"?new Blob([n],{type:`${a};charset=utf-8`}):new Blob([n],{type:a}),c=URL.createObjectURL(i);try{const d=document.createElement("a");d.href=c,d.download=o,d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d)}finally{URL.revokeObjectURL(c)}return{filename:o,success:!0}}}const LA=new OA,DA=new $A,zv=(e,t)=>e.split(/[/\\]/).pop()||t,FA=(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"}},NA=()=>Xd()?LA:DA;class ur{static async saveFile(t){try{return await NA().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}`}}vt(ur,"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 Bv=e=>xw.sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["style"],ADD_ATTR:["dominant-baseline"]}),zA=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"?>
192
+ ${new XMLSerializer().serializeToString(r)}`):e},BA=({svg:e,height:t,isLoading:n,initialScale:r,chartKey:s,className:o,style:a,token:i,containerRef:c})=>{const{t:d}=qe(),{message:f}=Tn.useApp(),[p,v]=S.useState(!1),g=S.useMemo(()=>e?Bv(e).replace(/<svg([^>]*)>/,'<svg$1 style="display: block; max-width: 100%; max-height: 100%;">'):"",[e]),w=S.useCallback(async()=>{var x;if(!(!e||p)){v(!0);try{const k=zA(e),C=new TextEncoder().encode(k),E=s?`mermaid-${s.slice(0,8)}`:"mermaid-graph",T=ur.generateTimestampedFilename(E,"svg"),P=await ur.saveBinaryFile(C,ur.FILTERS.SVG,T);if(P.success){f.success(d("chat.messageActions.savedFile",{filename:P.filename}));return}if((x=P.error)!=null&&x.toLowerCase().includes("cancel"))return;f.error(P.error||d("chat.messageActions.exportFailed"))}catch(k){const C=k instanceof Error?k.message:d("components.mermaid.exportFailed");f.error(C)}finally{v(!1)}}},[f,s,p,e,d]),m=n||!e||p;return l.jsxs("div",{ref:c,"data-mermaid-loading":n?"true":"false",className:o,style:{textAlign:"center",margin:`${i.marginXS}px 0`,padding:i.padding,background:i.colorBgContainer,borderRadius:i.borderRadiusSM,border:`1px solid ${i.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",...a},children:[n&&l.jsx("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:i.colorTextSecondary,fontSize:i.fontSizeSM,zIndex:2},children:d("components.mermaid.renderingDiagram")}),l.jsx("div",{style:{width:"100%",height:"100%",opacity:n?0:1,position:"relative"},children:l.jsx(RA,{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:x,zoomOut:k,resetTransform:C})=>l.jsxs(l.Fragment,{children:[l.jsxs("div",{"data-mermaid-controls":"true",style:{position:"absolute",top:8,right:8,zIndex:10,display:"flex",flexDirection:"column",gap:4,background:i.colorBgContainer,borderRadius:i.borderRadiusSM,border:`1px solid ${i.colorBorder}`,padding:4,boxShadow:i.boxShadowSecondary},children:[l.jsx(Ee,{size:"small",type:"text",onClick:()=>x(),style:{fontSize:12,padding:"2px 6px"},children:"+"}),l.jsx(Ee,{size:"small",type:"text",onClick:()=>k(),style:{fontSize:12,padding:"2px 6px"},children:"-"}),l.jsx(Ee,{size:"small",type:"text",onClick:()=>C(),style:{fontSize:10,padding:"2px 6px"},children:"⌂"}),l.jsx(dn,{title:d("components.mermaid.exportSvg"),children:l.jsx(Ee,{size:"small",type:"text",icon:l.jsx(to,{}),"aria-label":d("components.mermaid.downloadChartAriaLabel"),disabled:m,loading:p,onClick:()=>{w()},style:{fontSize:11,padding:"2px 6px"}})})]}),l.jsx(IA,{wrapperStyle:{width:"100%",height:"100%"},contentStyle:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:l.jsx("div",{style:{display:"inline-block",lineHeight:0},dangerouslySetInnerHTML:{__html:g}})})]})})})]})};function WA(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const Wv=(e,t)=>{const n=S.useMemo(()=>fC(e),[e]),r=S.useMemo(()=>WA(n),[n]),[s,o]=S.useState(()=>{const a=rl(r);return a?{svg:a.svg,height:a.height+80,svgWidth:a.width,svgHeight:a.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:t}});return S.useEffect(()=>{const a=rl(r);o(a?{svg:a.svg,height:a.height+80,svgWidth:a.width,svgHeight:a.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:!1})},[r]),S.useEffect(()=>{if(rl(r))return;let i=!1;return o(c=>({...c,isLoading:!0})),yC(r,n).then(c=>{i||o({svg:c.svg,height:c.height+80,svgWidth:c.width,svgHeight:c.height,error:"",isLoading:!1})}).catch(c=>{if(!i){console.error("[MermaidState] Render error:",c);const d=c instanceof Error?c.message:String(c);o(f=>({...f,error:d||"Failed to render Mermaid diagram",isLoading:!1}))}}),()=>{i=!0}},[r,n,t]),{renderState:s,chartKey:r}},{useToken:UA}=st,Ml=rt.memo(({chart:e,id:t,className:n,style:r,onFix:s})=>{const{token:o}=UA(),a=zd(),[i,c]=S.useState(!1),[d,f]=S.useState(""),p=S.useRef(null),{renderState:v,chartKey:g}=Wv(e,!0),{svg:w,height:m,svgWidth:x,error:k,isLoading:C}=v,T=(()=>{const A=a.defaultScale;return x>1200?A*.8:x>800?A*1:A*1.2})(),P=async()=>{if(!(!s||i)){c(!0),f("");try{await s(e,k)}catch(A){const O=A instanceof Error?A.message:String(A);f(O||"Failed to fix Mermaid diagram")}finally{c(!1)}}};return k?l.jsx(SR,{error:k,className:n,style:r,token:o,onFix:s?P:void 0,isFixing:i,fixError:d}):l.jsx(BA,{svg:w,height:m,isLoading:C,initialScale:T,chartKey:g,className:n,style:r,token:o,containerRef:p})});Ml.displayName="MermaidChart";const qA=Object.freeze(Object.defineProperty({__proto__:null,MermaidChart:Ml,default:Ml},Symbol.toStringTag,{value:"Module"})),HA=e=>{const n=new DOMParser().parseFromString(e,"image/svg+xml").querySelector("svg");if(!n)return{width:0,height:0,markup:e};let r=0,s=0;const o=n.getAttribute("viewBox");if(o){const a=o.split(/[\s,]+/).map(Number);a.length===4&&a.every(i=>Number.isFinite(i))&&(r=a[2],s=a[3])}return r||(r=parseFloat(n.getAttribute("width")||"")||0),s||(s=parseFloat(n.getAttribute("height")||"")||0),r&&s&&(n.setAttribute("width",String(r)),n.setAttribute("height",String(s)),n.style.maxWidth="none"),n.getAttribute("xmlns")||n.setAttribute("xmlns","http://www.w3.org/2000/svg"),{width:r,height:s,markup:new XMLSerializer().serializeToString(n)}},XA=e=>new Promise(t=>{const n=new Image;n.onload=()=>t(n),n.onerror=()=>t(null),n.src=e}),YA=async(e,t=3)=>{if(typeof document>"u"||!e)return null;const{width:n,height:r,markup:s}=HA(e);if(!n||!r)return null;const o=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`,a=await XA(o);if(!a)return null;const i=document.createElement("canvas");i.width=Math.max(1,Math.round(n*t)),i.height=Math.max(1,Math.round(r*t));const c=i.getContext("2d");if(!c)return null;c.fillStyle="#ffffff",c.fillRect(0,0,i.width,i.height),c.drawImage(a,0,0,i.width,i.height);try{return{url:i.toDataURL("image/png"),width:n,height:r}}catch{return null}},KA=({chart:e,scale:t=3})=>{const{renderState:n}=Wv(e,!0),{svg:r,error:s}=n,[o,a]=S.useState(null),[i,c]=S.useState(!1);S.useEffect(()=>{let f=!1;if(a(null),c(!1),!!r)return YA(r,t).then(p=>{f||(p?a({url:p.url,width:p.width}):c(!0))}),()=>{f=!0}},[r,t]);const d=!s&&!o&&!i;return s?l.jsx("pre",{"data-mermaid-loading":"false",style:{border:"1px solid #d9d9d9",borderRadius:8,padding:12,background:"#fafafa",color:"#1f1f1f",whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12},children:`Mermaid render failed: ${s}
193
+
194
+ ${e}`}):o?l.jsx("div",{"data-mermaid-loading":"false",style:{margin:"8px 0"},children:l.jsx("img",{src:o.url,alt:"Mermaid diagram",style:{width:o.width,maxWidth:"100%",height:"auto",display:"block"}})}):i&&r?l.jsx("div",{"data-mermaid-loading":"false",style:{margin:"8px 0"},dangerouslySetInnerHTML:{__html:Bv(r)}}):l.jsx("div",{"data-mermaid-loading":d?"true":"false",style:{minHeight:24}})},ei={'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%)"}};Jt.registerLanguage("javascript",Lg);Jt.registerLanguage("js",Lg);Jt.registerLanguage("typescript",Dg);Jt.registerLanguage("ts",Dg);Jt.registerLanguage("python",Fg);Jt.registerLanguage("py",Fg);Jt.registerLanguage("json",vw);Jt.registerLanguage("bash",vd);Jt.registerLanguage("shell",vd);Jt.registerLanguage("sh",vd);Jt.registerLanguage("css",bw);Jt.registerLanguage("html",Ng);Jt.registerLanguage("xml",Ng);Jt.registerLanguage("sql",Sw);Jt.registerLanguage("yaml",zg);Jt.registerLanguage("yml",zg);Jt.registerLanguage("markdown",Bg);Jt.registerLanguage("md",Bg);const VA=()=>ei,GA=["javascript","js","typescript","ts","python","py","json","bash","shell","sh","css","html","xml","sql","yaml","yml","markdown","md"],JA=({language:e,codeString:t,token:n})=>{const{t:r}=qe(),{message:s}=Tn.useApp(),[o,a]=S.useState(!1),i=(n==null?void 0:n.marginXS)??8,c=(n==null?void 0:n.borderRadiusSM)??4,d=(n==null?void 0:n.fontSizeSM)??12,f=(n==null?void 0:n.paddingSM)??8,p=async()=>{try{await kr(t),s.success(r("components.markdown.codeCopiedSuccess"))}catch(w){console.error("Copy failed:",w),s.error(r("components.markdown.copyFailed"))}},v=e.toLowerCase(),g=GA.includes(v);return l.jsxs(Bt,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto"},onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:[l.jsx(Jt,{style:VA(),language:g?v:"text",PreTag:"div",customStyle:{margin:`${i}px 0`,borderRadius:c,fontSize:d,maxWidth:"100%",paddingRight:"50px"},showLineNumbers:t.split(`
195
+ `).length>10,wrapLines:!0,wrapLongLines:!0,children:t}),o&&l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cr,{}),onClick:p,"aria-label":r("components.markdown.copyCodeAriaLabel"),style:{position:"absolute",top:f,right:f,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:c,opacity:.8,transition:"opacity 0.2s",zIndex:10},onMouseEnter:w=>{const m=w.currentTarget;m.style.opacity="1"},onMouseLeave:w=>{const m=w.currentTarget;m.style.opacity="0.8"}})]})},QA=({codeString:e,token:t})=>{const{t:n}=qe(),{message:r}=Tn.useApp(),s=(t==null?void 0:t.marginXS)??8,o=(t==null?void 0:t.borderRadiusSM)??4,a=(t==null?void 0:t.fontSizeSM)??12,i=(t==null?void 0:t.paddingSM)??8,c=(t==null?void 0:t.padding)??16;return l.jsxs(Bt,{size:"small",styles:{body:{padding:0}},style:{position:"relative",margin:`${s}px 0`},onMouseEnter:d=>{const f=d.currentTarget.querySelector(".fallback-copy-btn");f&&(f.style.display="block")},onMouseLeave:d=>{const f=d.currentTarget.querySelector(".fallback-copy-btn");f&&(f.style.display="none")},children:[l.jsx("pre",{style:{backgroundColor:"var(--ant-color-bg-container, #ffffff)",border:"1px solid var(--ant-color-border, #d9d9d9)",padding:c,borderRadius:o,overflow:"auto",fontSize:a,paddingRight:"50px",margin:0},children:l.jsx("code",{style:{color:"var(--ant-color-text, #333)"},children:e})}),l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cr,{}),"aria-label":n("components.markdown.copyCodeAriaLabel"),className:"fallback-copy-btn",onClick:async()=>{try{await kr(e),r.success(n("components.markdown.codeCopiedSuccess"))}catch(d){console.error("Copy failed:",d),r.error(n("components.markdown.copyFailed"))}},style:{position:"absolute",top:i,right:i,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}})]})},ZA={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"},Uv=/^(\s*%%\{[\s\S]*?\}%%\s*)+/,ej=/^(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,tj=e=>e.replace(Uv,"").trimStart(),nj=(e,t)=>{const n=e.match(Uv);if(!n)return`${t}
196
+ ${e}`.trim();const r=n[0].trimEnd(),s=e.slice(n[0].length).trimStart();return s?`${r}
197
+ ${t}
198
+ ${s}`:`${r}
199
+ ${t}`},rj=(e,t)=>{const n=ZA[e];if(!n)return null;const r=t.trim();if(!r)return"";if(e==="mermaid")return r;const s=tj(r);return ej.test(s)?r:nj(r,n)},qv=(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(),a=rj(o,t);if(a!==null){const i=a.trim();return i?s==="static"?l.jsx(KA,{chart:i}):s==="eager"?l.jsx(Ml,{chart:i,onFix:r}):l.jsx(bR,{chart:i,onFix:r}):(console.warn("Empty Mermaid chart content"),null)}return l.jsx(JA,{language:o,codeString:t,token:n})}catch(o){return console.warn("Syntax highlighting failed:",o),l.jsx(QA,{codeString:t,token:n})}},Dp=(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)},Hv=async e=>{const t=e.trim();if(!t)return;if(Xd()){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)}Dp(t,{allowLocationFallback:!1});return}Dp(t)},{Text:Fp}=ot,Ui=8,Kc=4,Np="4px 8px",sj="4px 8px",Xv=(e,t)=>({p:({children:n})=>l.jsx(Fp,{style:{marginBottom:Ui,display:"block"},children:n}),ol:({children:n})=>l.jsx("ol",{style:{marginBottom:Ui,paddingLeft:20},children:n}),ul:({children:n})=>l.jsx("ul",{style:{marginBottom:Ui,paddingLeft:20},children:n}),li:({children:n})=>l.jsx("li",{style:{marginBottom:Kc},children:n}),code({className:n,children:r,inline:s,...o}){const a=/language-([^\s]+)/i.exec(n||""),i=a?a[1]:"",c=s??(!a&&!n),d=r?String(r).replace(/\n$/,""):"";return c?l.jsx(Fp,{code:!0,className:n,...o,children:r}):d.trim()?qv(i,d,void 0,t==null?void 0:t.onFixMermaid,t==null?void 0:t.mermaidRenderMode):null},blockquote:({children:n})=>l.jsx(Bt,{size:"small",styles:{body:{padding:sj}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${Kc}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?l.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer",onClick:o=>{o.preventDefault(),o.stopPropagation(),Hv(s)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:n}):l.jsx(l.Fragment,{children:n})},table:({children:n})=>l.jsx(Bt,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${Ui}px 0`},children:l.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:"1px solid var(--ant-color-border, #d9d9d9)"},children:n})}),thead:({children:n})=>l.jsx("thead",{style:{backgroundColor:"var(--ant-color-fill-tertiary, rgba(15, 23, 42, 0.04))"},children:n}),tbody:({children:n})=>l.jsx("tbody",{children:n}),tr:({children:n})=>l.jsx("tr",{style:{borderBottom:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),th:({children:n})=>l.jsx("th",{style:{padding:Np,textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),td:({children:n})=>l.jsx("td",{style:{padding:Np,borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),input:({type:n,checked:r,disabled:s})=>n==="checkbox"?l.jsx("input",{type:"checkbox",checked:r,disabled:s,style:{marginRight:Kc,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:n,checked:r,disabled:s})}),{Text:Ut}=ot,zp=e=>{if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},oj=({content:e,toolName:t,status:n="success",timestamp:r,defaultCollapsed:s=!0,isLoading:o,errorMessage:a})=>{const{t:i}=qe(),{token:c}=st.useToken(),d=S.useMemo(()=>oo(e),[e]),f=S.useMemo(()=>typeof o=="boolean"?o:d.formattedText.trim().length===0,[d.formattedText,o]),p=S.useMemo(()=>XP(d.formattedText),[d.formattedText]),v=S.useMemo(()=>co(e),[e]),g=S.useMemo(()=>dv(e),[e]),w=async()=>{try{const x=d.isJson?ys(d.parsedJson):d.formattedText;await kr(x)}catch(x){console.error("[ToolResultCard] Failed to copy result:",x)}},m=S.useMemo(()=>{const x=e?e.slice(0,50).replace(/[^a-zA-Z0-9]/g,""):"empty";return`tool-result-${t}-${x}`},[t,e]);return l.jsx(ao,{defaultActiveKey:s?[]:[m],style:{backgroundColor:c.colorBgContainer,borderColor:c.colorBorderSecondary,borderWidth:1,borderStyle:"solid",borderRadius:c.borderRadiusLG},items:[{key:m,label:l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:c.marginSM,width:"100%"},children:[l.jsx(kd,{style:{color:c.colorPrimary,flexShrink:0}}),l.jsx(Ut,{strong:!0,style:{color:c.colorText,flexShrink:0},children:t}),l.jsx(Ut,{type:"secondary",ellipsis:!0,style:{flex:1,minWidth:0,fontSize:c.fontSizeSM},children:f?i("components.toolResult.waiting"):p}),l.jsx(Ye,{color:pv(n),style:{flexShrink:0,margin:0},children:n})]}),children:l.jsxs(ze,{direction:"vertical",style:{width:"100%"},size:c.marginSM,children:[r&&l.jsx(Ut,{type:"secondary",style:{fontSize:c.fontSizeSM},children:new Date(r).toLocaleString()}),a&&l.jsx(Jn,{type:"error",message:i("components.toolResult.executionFailed"),description:a,showIcon:!0}),l.jsxs("div",{style:{position:"relative"},children:[l.jsx(dn,{title:i("components.toolResult.copyResult"),children:l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cr,{}),"aria-label":i("components.toolResult.copyResult"),onClick:x=>{x.stopPropagation(),w()},style:{position:"absolute",top:8,right:8,zIndex:1}})}),f?l.jsx(Ut,{type:"secondary",children:i("components.toolResult.waitingForResult")}):g?l.jsxs(ze,{direction:"vertical",style:{width:"100%"},size:10,children:[l.jsxs(ze,{wrap:!0,children:[l.jsx(Ye,{color:g.action==="rebuild"?"gold":"blue",children:i(`components.toolResult.memory.action.${g.action}`)}),l.jsx(Ye,{children:g.data.scope}),g.data.project_key?l.jsx(Ye,{children:g.data.project_key}):null,l.jsx(Ye,{color:"green",children:i("components.toolResult.memory.totalMemories",{count:g.data.total_memories})}),l.jsx(Ye,{color:g.data.stale_candidate_count>0?"orange":"default",children:i("components.toolResult.memory.staleCandidates",{count:g.data.stale_candidate_count})})]}),l.jsxs("div",{children:[l.jsx(Ut,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.coverage")}),l.jsxs("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:[Object.entries(g.data.by_type).map(([x,k])=>l.jsx(Ye,{children:`${x}: ${k}`},`type-${x}`)),Object.entries(g.data.by_status).map(([x,k])=>l.jsx(Ye,{color:"processing",children:`${x}: ${k}`},`status-${x}`))]})]}),l.jsx(vl,{style:{margin:`${c.marginXS}px 0`}}),l.jsxs("div",{style:{display:"grid",gap:c.marginXS},children:[l.jsxs(Ut,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Ut,{strong:!0,children:i("components.toolResult.memory.viewsLabel")})," ",g.data.view_files.length]}),l.jsxs(Ut,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Ut,{strong:!0,children:i("components.toolResult.memory.indexesLabel")})," ",g.data.index_files.length]}),l.jsxs(Ut,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Ut,{strong:!0,children:i("components.toolResult.memory.stateFilesLabel")})," ",g.data.state_files.length]}),g.data.last_reindex_at?l.jsxs(Ut,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Ut,{strong:!0,children:i("components.toolResult.memory.lastReindexLabel")})," ",zp(g.data.last_reindex_at)]}):null,g.data.last_dream_at?l.jsxs(Ut,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Ut,{strong:!0,children:i("components.toolResult.memory.lastDreamLabel")})," ",zp(g.data.last_dream_at)]}):null]}),g.data.view_files.length>0?l.jsxs("div",{children:[l.jsx(Ut,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.viewFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:g.data.view_files.map(x=>l.jsx(Ye,{children:x},`view-${x}`))})]}):null,g.data.index_files.length>0?l.jsxs("div",{children:[l.jsx(Ut,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.indexFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:g.data.index_files.map(x=>l.jsx(Ye,{children:x},`index-${x}`))})]}):null,g.data.state_files.length>0?l.jsxs("div",{children:[l.jsx(Ut,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.stateFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:g.data.state_files.map(x=>l.jsx(Ye,{children:x},`state-${x}`))})]}):null,g.data.topic_paths.length>0?l.jsxs("div",{children:[l.jsx(Ut,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.topicPaths")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:g.data.topic_paths.map(x=>l.jsx(Ye,{children:x},`topic-${x}`))})]}):null,g.data.recent_ids.length>0?l.jsxs("div",{children:[l.jsx(Ut,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.recentMemories")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:g.data.recent_ids.map(x=>l.jsx(Ye,{color:"default",children:x},`recent-${x}`))})]}):null]}):v?l.jsx(Qa,{payload:v,defaultViewMode:"sideBySide"}):d.isJson?l.jsx(gl,{language:"json",style:ei,wrapLongLines:!0,customStyle:{margin:0,borderRadius:c.borderRadiusSM,backgroundColor:c.colorBgContainer,fontSize:c.fontSizeSM,maxHeight:400,overflow:"auto"},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:d.formattedText}):l.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:c.fontSizeSM,backgroundColor:c.colorBgContainer,padding:c.paddingSM,borderRadius:c.borderRadiusSM,margin:0,maxHeight:400,overflow:"auto"},children:d.formattedText})]})]})}]})},Yv=S.memo(oj);Yv.displayName="ToolResultCard";function Kv(e,t){const n=lo(e);if(n)return`MCP ${n.serverId}: ${n.toolName}`;const r=(a,i)=>{const c=typeof a=="string"?a:String(a??"");return!c||c.length<=i?c:c.substring(0,i).trimEnd()+"…"},s={file_read:a=>`Reading: ${r(a.path||a.file_path||"file",40)}`,file_write:a=>`Writing to: ${r(a.path||a.file_path||"file",35)}`,file_edit:a=>`Editing: ${r(a.path||a.file_path||"file",40)}`,bash:a=>`Executing: ${r(a.command,40)}`,grep:a=>`Searching: "${r(a.pattern,30)}"`,glob:a=>`Finding files: "${a.pattern}"`,conclusion:a=>`Presenting conclusion: "${r(a.conclusion||a.title||"",30)}"`,read:a=>`Reading: ${a.file_path||"file"}`,write:a=>`Writing: ${a.file_path||"file"}`,edit:a=>`Editing: ${a.file_path||"file"}`,search:a=>`Searching: "${r(a.query||a.pattern,30)}"`,default:()=>`Calling ${e}`};return(s[e]||s.default)(t)}const aj=e=>Array.from(new Set(e.map(t=>Bn(t)).filter(Boolean))).sort(),Vv=(e,t)=>{const n=Bn(e),r=S.useMemo(()=>aj(t),[t]),s=S.useMemo(()=>Yr(o=>{const a={};return n&&r.forEach(i=>{const c=qd(n,i);c&&(a[i]=o(Ud(c)))}),a}),[n,r]);return KC(s,{store:Wd})},Gv=(e,t,n)=>{var o;const r=Bn(e);return(r?((o=t[r])==null?void 0:o.output)??"":"")||n||""},ij=(e,t)=>e==null?{isJson:!1,formattedText:""}:t==="json"?{isJson:!0,formattedText:typeof e=="string"?e:ys(e,2)}:t==="text"?{isJson:!1,formattedText:typeof e=="string"?e:ys(e,2)}:typeof e=="string"?oo(e):{isJson:!0,formattedText:ys(e,2),parsedJson:e},Ta=({value:e,mode:t="auto",emptyDescription:n,className:r,height:s,maxHeight:o,compact:a=!1,scrollable:i=!0,backgroundColor:c})=>{const{token:d}=st.useToken(),f=S.useMemo(()=>ij(e,t),[e,t]),p=f.formattedText??"";if(!p.trim())return n===void 0?null:l.jsx(xu,{description:n});const v=a?Math.max(d.fontSizeSM-1,11):d.fontSizeSM,g=["lotus-code-surface",r].filter(Boolean).join(" "),w={backgroundColor:c??(a?d.colorFillTertiary:d.colorBgContainer),borderRadius:d.borderRadiusSM,height:s,maxHeight:o,minHeight:0,display:"flex",flexDirection:"column",overflow:i?"auto":"hidden"};return f.isJson?l.jsx("div",{className:g,style:w,children:l.jsx(gl,{language:"json",style:ei,wrapLongLines:!0,customStyle:{margin:0,backgroundColor:"transparent",fontSize:v,padding:a?d.paddingXS:d.paddingSM,minHeight:s?"100%":void 0,flex:s?1:void 0},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:p})}):l.jsx("div",{className:g,style:w,children:l.jsx("pre",{style:{margin:0,padding:a?d.paddingXS:d.paddingSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:v,whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:s?"100%":void 0,flex:s?1:void 0},children:p})})},{Text:Rn}=ot,lj=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,cj=({open:e,onClose:t,sessionId:n=null,call:r,metadata:s,initialTab:o="preview",result:a})=>{var J;const{t:i}=qe(),{token:c}=st.useToken(),d=Vv(n,[r.toolCallId]),f=Gv(r.toolCallId,d,r.streamingOutput),p=S.useMemo(()=>lo(r.toolName),[r.toolName]),v=S.useMemo(()=>Kv(r.toolName,r.parameters),[r.toolName,r.parameters]),g=((J=a==null?void 0:a.result)==null?void 0:J.result)??"",w=S.useMemo(()=>g.trim()?co(g):null,[g]),m=typeof(s==null?void 0:s.summary)=="string"&&s.summary.trim().length>0?s.summary.trim():null,x=S.useMemo(()=>ys(r.parameters,2),[r.parameters]),k=async()=>{try{await kr(x)}catch(ee){console.error("[ToolStepDetailDrawer] Failed to copy parameters:",ee)}},C=S.useMemo(()=>f!=null&&f.trim()?{label:i("components.toolCall.liveOutput"),value:f,mode:"auto"}:!w&&g.trim()?{label:i("components.toolSteps.result"),value:g,mode:"auto"}:Object.keys(r.parameters).length>0?{label:i("components.toolSteps.parameters"),value:r.parameters,mode:"json"}:null,[r.parameters,w,f,g,i]),E=S.useMemo(()=>{const ee=["path","file_path","command","pattern","query","limit"];return Object.entries(r.parameters).sort((z,D)=>{const ie=ee.indexOf(z[0]),Q=ee.indexOf(D[0]);return ie!==-1&&Q!==-1?ie-Q:ie!==-1?-1:Q!==-1?1:0}).slice(0,3)},[r.parameters]),T=!!(f!=null&&f.trim()),P=S.useMemo(()=>a?a.isError?l.jsx(Ye,{color:"error",children:i("components.toolSteps.statusError")}):l.jsx(Ye,{color:"success",children:i("components.toolSteps.statusFinish")}):T?l.jsx(Ye,{color:"processing",children:i("components.toolSteps.statusProcess")}):l.jsx(Ye,{color:"default",children:i("components.toolSteps.statusWait")}),[a,T,i]),A=(s==null?void 0:s.elapsed_ms)!=null?l.jsx(Ye,{color:s.is_mutating?"orange":"green",children:lj(s.elapsed_ms)}):null,O=l.jsxs(ze,{size:"small",children:[p?l.jsxs(l.Fragment,{children:[l.jsx(Ye,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:8,fontWeight:700},children:"MCP"}),l.jsx(Rn,{strong:!0,children:p.toolName}),l.jsx(Rn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:l.jsx(Rn,{code:!0,style:{fontSize:c.fontSizeSM},children:p.serverId})})]}):l.jsx(Rn,{strong:!0,children:r.toolName}),P,A]}),$=w?o:o==="diff"?"preview":o,U=[{key:"preview",label:i("components.toolSteps.preview"),children:l.jsxs("div",{className:"lotus-tool-step-drawer-pane",children:[l.jsxs("div",{style:{display:"grid",gap:c.marginSM,flexShrink:0},children:[l.jsxs("div",{children:[l.jsx(Rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.intent")}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(Rn,{style:{fontSize:c.fontSizeSM},children:v})})]}),m?l.jsxs("div",{children:[l.jsx(Rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.summary",{defaultValue:"Summary"})}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(Rn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:m})})]}):null,E.length>0&&l.jsxs("div",{children:[l.jsx(Rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.keyParameters")}),l.jsx("ul",{style:{margin:`${c.marginXS}px 0 0`,paddingLeft:c.paddingLG,fontSize:c.fontSizeSM},children:E.map(([ee,I])=>l.jsxs("li",{children:[l.jsx(Rn,{code:!0,style:{fontSize:c.fontSizeSM},children:ee}),l.jsxs(Rn,{style:{fontSize:c.fontSizeSM},children:[": ",typeof I=="string"?I:JSON.stringify(I)]})]},ee))})]})]}),l.jsxs("div",{style:{marginTop:c.marginSM,display:"flex",flexDirection:"column",gap:c.marginXS,flex:1,minHeight:0},children:[a!=null&&a.images&&a.images.length>0?l.jsx("div",{style:{flexShrink:0,marginBottom:c.marginXS},children:l.jsx(_a.PreviewGroup,{children:l.jsx(ze,{size:c.marginXS,wrap:!0,children:a.images.map(ee=>l.jsx(_a,{src:ee.url,alt:ee.name,style:{maxHeight:360,maxWidth:"100%",objectFit:"contain",borderRadius:c.borderRadius,border:`1px solid ${c.colorBorderSecondary}`}},ee.id))})})}):null,w?l.jsxs(l.Fragment,{children:[l.jsx(Rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.fileChanges",{defaultValue:"File changes"})}),l.jsx(Qa,{payload:w,defaultViewMode:"unified",maxHeight:340})]}):C?l.jsxs(l.Fragment,{children:[l.jsx(Rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:C.label}),l.jsx(Ta,{value:C.value,mode:C.mode,height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})]}):l.jsx(Ta,{emptyDescription:i("components.toolSteps.noResult"),height:"100%",scrollable:!0})]})]})},...w?[{key:"diff",label:i("components.toolSteps.diff",{defaultValue:"Diff"}),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsx(Qa,{payload:w,defaultViewMode:"sideBySide",height:"100%"})})}]:[],{key:"parameters",label:i("components.toolSteps.parameters"),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsxs("div",{style:{position:"relative",flex:1,minHeight:0},children:[l.jsx(dn,{title:i("components.toolCall.copyParameters"),children:l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cr,{}),"aria-label":i("components.toolCall.copyParameters"),onClick:k,style:{position:"absolute",top:0,right:0,zIndex:1}})}),l.jsx(Ta,{value:x,mode:"json",height:"100%",scrollable:!0})]})})},{key:"result",label:i("components.toolSteps.result"),children:l.jsxs("div",{className:"lotus-tool-step-drawer-pane",children:[a!=null&&a.images&&a.images.length>0?l.jsx("div",{style:{flexShrink:0,marginBottom:c.marginSM},children:l.jsx(_a.PreviewGroup,{children:l.jsx(ze,{size:c.marginXS,wrap:!0,children:a.images.map(ee=>l.jsx(_a,{src:ee.url,alt:ee.name,style:{maxHeight:480,maxWidth:"100%",objectFit:"contain",borderRadius:c.borderRadius,border:`1px solid ${c.colorBorderSecondary}`}},ee.id))})})}):null,l.jsx(Ta,{value:g,mode:"auto",height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})]})}];return l.jsx(Bl,{placement:"right",width:960,open:e,onClose:t,title:O,destroyOnClose:!0,styles:{body:{paddingTop:0,display:"flex",flexDirection:"column",minHeight:0,overflow:"hidden"}},children:l.jsx("div",{className:"lotus-tool-step-drawer-tabs",children:l.jsx(Vw,{defaultActiveKey:$,items:U,style:{height:"100%"}},`${r.toolCallId}:${$}`)})})},{Text:Lr}=ot,uj=1760;function dj(e,t,n){return e?e.isError?{status:"error",icon:l.jsx(ku,{})}:{status:"finish",icon:l.jsx(qa,{})}:n==="error"?{status:"error",icon:l.jsx(ku,{})}:n==="completed"?{status:"finish",icon:l.jsx(qa,{})}:!!!(t!=null&&t.trim())&&n!=="running"?{status:"wait",icon:l.jsx(Ss,{})}:{status:"process",icon:l.jsx(Qs,{spin:!0})}}const Bp=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,fj=({sessionId:e=null,toolCalls:t,metadata:n,tools:r,defaultExpanded:s=!1,hideHeader:o=!1})=>{const{t:a}=qe(),{token:i}=st.useToken(),[c,d]=S.useState(s),f=S.useMemo(()=>r&&r.length>0?r.map(z=>{const D=z.call.toolCalls[0];return{key:(D==null?void 0:D.toolCallId)||"unknown",toolName:(D==null?void 0:D.toolName)||"tool",parameters:(D==null?void 0:D.parameters)||{},streamingOutput:D==null?void 0:D.streamingOutput,info:{status:"wait",icon:l.jsx(Ss,{})},result:z.result,metadata:z.call.metadata??n}}):(t||[]).map(z=>({key:z.toolCallId,toolName:z.toolName,parameters:z.parameters,streamingOutput:z.streamingOutput,info:{status:"wait",icon:l.jsx(Ss,{})},result:void 0,metadata:n})),[r,t,n]),p=S.useMemo(()=>f.map(z=>z.key),[f]),v=Vv(e,p),g=S.useMemo(()=>f.map(z=>{const D=v[z.key],ie=Gv(z.key,v,z.streamingOutput);return{...z,streamingOutput:ie,info:dj(z.result,ie,D==null?void 0:D.status)}}),[f,v]),[w,m]=S.useState(!1),[x,k]=S.useState(null),[C,E]=S.useState("preview"),T=(z,D)=>{k(z),E(D??"preview"),m(!0)},P=()=>{m(!1)},A=S.useMemo(()=>{const z=g.findIndex(D=>D.info.status!=="finish");return z===-1?Math.max(g.length-1,0):z},[g]),O=g.some(z=>z.info.status==="error"),$=g.filter(z=>z.info.status==="finish").length,U=g.length,J=Bp(n==null?void 0:n.elapsed_ms),ee=S.useMemo(()=>{const z=[a("components.toolSteps.title"),`${$}/${U}`];return J&&z.push(J),z.join(" · ")},[a,$,U,J]),I=S.useMemo(()=>g.map(z=>{var Me,F,L,fe,Se,De,We;const D=lo(z.toolName),ie=Kv(z.toolName,z.parameters),Q=ie.length>60?ie.substring(0,60).trimEnd()+"…":ie,ue=((F=(Me=z.result)==null?void 0:Me.result)==null?void 0:F.result)??"",me=ue?co(ue):null,V=ue?Gd(ue):null,ae=me?BP(me.diff.unified,{contextLines:2,maxLines:120,preserveLeadingMeta:!0}):null,ve=typeof((L=z.metadata)==null?void 0:L.summary)=="string"&&z.metadata.summary.trim().length>0?z.metadata.summary.trim():null,re=me?`${me.operation}(${me.file_path})`:null;let le=null,de="text",pe=null;if(z.info.status==="process"&&((fe=z.streamingOutput)!=null&&fe.trim()))le=z.streamingOutput.split(`
200
+ `).slice(-3).join(`
201
+ `),de=oo(z.streamingOutput).isJson?"auto":"text",pe="live";else if(!me&&(z.info.status==="finish"||z.info.status==="error")&&((De=(Se=z.result)==null?void 0:Se.result)!=null&&De.result)){const Ge=oo(z.result.result.result),He=Ge.formattedText.trimEnd();He.length>0&&(le=He.split(`
202
+ `).slice(0,3).join(`
203
+ `),de=Ge.isJson?"json":"text",pe="result")}const Ae=z.info.status==="process"?a("components.toolSteps.running"):((We=z.metadata)==null?void 0:We.elapsed_ms)!=null?Bp(z.metadata.elapsed_ms):void 0;return{key:z.key,title:l.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:i.marginXS},children:D?l.jsxs(l.Fragment,{children:[l.jsx(Ye,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:6,fontWeight:700,fontSize:i.fontSizeSM-1,lineHeight:"18px"},children:"MCP"}),l.jsx(Lr,{strong:!0,style:{fontSize:i.fontSizeSM},children:D.toolName})]}):l.jsx(Lr,{strong:!0,style:{fontSize:i.fontSizeSM},children:z.toolName})}),subTitle:Ae?l.jsx(Lr,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:Ae}):void 0,description:l.jsxs("div",{style:{minWidth:0},children:[l.jsx(Lr,{ellipsis:!0,style:{fontSize:i.fontSizeSM,display:"block",maxWidth:"100%"},children:Q}),l.jsx("div",{style:{marginTop:i.marginXXS,display:"flex",gap:i.marginXS,alignItems:"center"},children:l.jsx(Ee,{type:"link",size:"small",icon:l.jsx(Pd,{}),style:{padding:0,height:"auto",fontSize:i.fontSizeSM},"data-testid":`tool-step-details-${z.key}`,onClick:()=>T(z,me?"diff":"preview"),children:a("components.toolSteps.details")})}),ve&&!me&&l.jsx(Lr,{type:"secondary",style:{display:"block",marginTop:i.marginXS,fontSize:i.fontSizeSM-1},children:ve}),me&&V&&l.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-${z.key}`,children:l.jsxs("div",{style:{display:"grid",gap:i.marginXXS??2},children:[l.jsx(Lr,{strong:!0,style:{fontSize:i.fontSizeSM},ellipsis:{tooltip:re},children:re}),l.jsx(Lr,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:a("components.toolSteps.fileChangeStats",{added:V.added,removed:V.removed,defaultValue:`Added ${V.added} lines, removed ${V.removed} lines`})}),l.jsx(Qa,{payload:me,compact:!0,showHeader:!1,showViewToggle:!1,defaultViewMode:"unified",maxHeight:uj,unifiedLinesOverride:ae??void 0}),l.jsx(Ee,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>T(z,"diff"),children:a("components.toolSteps.viewFullDiff",{defaultValue:"View full diff"})})]})}),le&&l.jsxs("div",{style:{marginTop:i.marginXS},children:[l.jsx(Ta,{value:le,mode:de,className:"lotus-tool-step-preview",compact:!0,maxHeight:72,scrollable:!1,backgroundColor:"transparent"}),l.jsx(Ee,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>T(z,pe==="result"?"result":"preview"),children:pe==="result"?a("components.toolSteps.viewFullResult",{defaultValue:"View full result"}):a("components.toolSteps.viewFullOutput")})]})]}),status:z.info.status,icon:z.info.icon}}),[g,i,a]),Y=o?{background:"transparent"}:{background:"var(--lotus-tool-card-bg)",borderColor:"var(--lotus-tool-card-border)",borderWidth:1,borderStyle:"solid",borderRadius:i.borderRadiusLG,overflow:"hidden"};return l.jsxs("div",{className:"lotus-tool-steps",style:Y,children:[!o&&l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:i.marginSM,padding:`${i.paddingSM}px ${i.paddingSM}px`,cursor:"pointer",userSelect:"none"},onClick:()=>d(z=>!z),"data-testid":"tool-steps-header",children:[l.jsx("span",{style:{flexShrink:0},children:c?l.jsx(eo,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}}):l.jsx(bs,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}})}),l.jsxs(Lr,{strong:!0,style:{fontSize:i.fontSizeSM},children:["🛠 ",ee]})]}),(o||c)&&l.jsx("div",{style:{padding:o?`${i.paddingXS}px 0 0 0`:`${i.paddingXS}px ${i.paddingSM}px ${i.paddingSM}px`},children:l.jsx(Jg,{direction:"vertical",size:"small",current:A,status:O?"error":"process",items:I})}),x&&l.jsx(cj,{open:w,onClose:P,sessionId:e,call:{toolCallId:x.key,toolName:x.toolName,parameters:x.parameters,streamingOutput:x.streamingOutput},metadata:x.metadata,initialTab:C,result:x.result})]})},tf=S.memo(fj);tf.displayName="ToolStepsCard";const{Text:Vc}=ot,hj=({content:e,workflowName:t,parameters:n,status:r="success",timestamp:s,onRetry:o,isLoading:a,errorMessage:i})=>{const{t:c}=qe(),{token:d}=st.useToken(),[f,p]=S.useState(!1),v=S.useMemo(()=>oo(e),[e]),g=S.useMemo(()=>typeof a=="boolean"?a:v.formattedText.trim().length===0,[v.formattedText,a]),w=S.useMemo(()=>qP(v.formattedText),[v.formattedText]),m=v.isJson||w,x=!m||f,k=S.useMemo(()=>HP(v.formattedText),[v.formattedText]),C=S.useMemo(()=>{if(n==null)return null;if(typeof n=="string")return oo(n);try{return{isJson:!0,formattedText:JSON.stringify(n,null,2),parsedJson:n}}catch(P){return console.error("[WorkflowResultCard] Failed to stringify parameters:",P),{isJson:!1,formattedText:String(n)}}},[n]),E=async()=>{try{const P=v.isJson?ys(v.parsedJson):v.formattedText;await kr(P)}catch(P){console.error("[WorkflowResultCard] Failed to copy content:",P)}},T=async()=>{if(C)try{const P=C.isJson?ys(C.parsedJson):C.formattedText;await kr(P)}catch(P){console.error("[WorkflowResultCard] Failed to copy parameters:",P)}};return l.jsx(Bt,{size:"small",variant:"outlined",style:{borderRadius:d.borderRadiusLG,borderColor:d.colorBorderSecondary,backgroundColor:d.colorBgContainer},styles:{body:{padding:d.paddingMD}},children:l.jsxs(ze,{direction:"vertical",style:{width:"100%"},size:d.marginSM,children:[l.jsxs(we,{align:"center",justify:"space-between",children:[l.jsxs(ze,{size:d.marginXS,align:"center",children:[l.jsx(Gw,{style:{color:d.colorWarning}}),l.jsx(Vc,{strong:!0,children:c("components.workflowResult.userWorkflow")}),l.jsx(Ye,{color:d.colorWarning,children:t}),l.jsx(Ye,{color:pv(r),children:r})]}),l.jsxs(ze,{size:"small",children:[l.jsx(dn,{title:c(f?"components.workflowResult.collapseResult":"components.workflowResult.expandResult"),children:m&&l.jsx(Ee,{type:"text",size:"small",icon:f?l.jsx(Jw,{}):l.jsx(Qw,{}),onClick:()=>p(P=>!P)})}),l.jsx(dn,{title:c("components.workflowResult.copyResult"),children:l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cr,{}),onClick:E,"aria-label":c("components.workflowResult.copyContent")})}),o&&l.jsx(dn,{title:c("components.workflowResult.retryWorkflow"),children:l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cd,{}),onClick:o,"aria-label":c("components.workflowResult.retryWorkflow")})})]})]}),s&&l.jsx(Vc,{type:"secondary",style:{fontSize:d.fontSizeSM},children:new Date(s).toLocaleString()}),l.jsx(vl,{style:{margin:`${d.marginXS}px 0`}}),i&&l.jsx(Jn,{type:"error",message:c("components.workflowResult.executionFailed"),description:i,showIcon:!0,style:{marginBottom:d.marginXS}}),l.jsx(we,{vertical:!0,style:{width:"100%"},children:g?l.jsx(no,{tip:c("components.workflowResult.waitingForResult")}):v.isJson?l.jsx(gl,{language:"json",style:ei,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:x?"none":280,overflow:x?"auto":"hidden"},children:v.formattedText}):l.jsxs("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,maxHeight:x?"none":280,overflow:x?"visible":"hidden",marginBottom:0},children:[x?v.formattedText:k.preview,!x&&k.isTruncated&&`
204
+ …`]})}),C&&l.jsxs(we,{vertical:!0,style:{width:"100%"},children:[l.jsx(vl,{style:{margin:`${d.marginXS}px 0`},children:l.jsxs(ze,{size:"small",children:[l.jsx(Vc,{strong:!0,children:c("common.parameters")}),l.jsx(dn,{title:c("components.workflowResult.copyParameters"),children:l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(Cr,{}),onClick:T,"aria-label":c("components.workflowResult.copyParameters")})})]})}),C.isJson?l.jsx(gl,{language:"json",style:ei,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:220,overflow:"auto"},children:C.formattedText}):l.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,marginBottom:0},children:C.formattedText})]})]})})},Jv=S.memo(hj);Jv.displayName="WorkflowResultCard";const pj=e=>Array.isArray(e)?e.map(t=>String(t??"")):[],mj=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s})=>JSON.stringify({sessionId:e??null,question:t??"",options:pj(n),allowCustom:r??!0,toolCallId:s??null}),{Text:Gc}=ot,gj=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s,conclusionMarkdown:o,markdownComponents:a,markdownPlugins:i,rehypePlugins:c})=>{const{t:d}=qe(),[f,p]=S.useState(null),v=S.useMemo(()=>mj({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s}),[e,t,n,r,s]),g=f===v;return S.useEffect(()=>{if(typeof window>"u")return;const w=m=>{var C;const k=((C=m.detail)==null?void 0:C.sessionId)??null;!e||k!==e||p(v)};return window.addEventListener(Yu,w),()=>{window.removeEventListener(Yu,w)}},[e,v]),l.jsxs(ze,{direction:"vertical",size:"middle",style:{width:"100%"},children:[o?l.jsx(hr,{remarkPlugins:i,rehypePlugins:c,components:a,children:o}):null,l.jsxs("div",{children:[l.jsx(Gc,{strong:!0,children:d("components.questionDialog.questionLabel","Question")}),l.jsx("div",{style:{marginTop:8},children:l.jsx(hr,{remarkPlugins:i,rehypePlugins:c,components:a,children:t})})]}),g?l.jsx(Gc,{type:"secondary",children:d("components.questionDialog.responseSubmittedContinue","Response submitted. Continuing...")}):l.jsx(Gc,{type:"secondary",children:r?d("components.questionDialog.responseInInputHint","Use the options or input box below to respond."):d("components.questionDialog.responseByOptionHint","Please respond using the options below the input box.")})]})},{Text:Yn}=ot,yj=e=>{var o;if(!e)return{cleanText:e,hints:[]};const t=e.split(`
205
+ `),n=[],r=[];for(const a of t){const i=a.trim(),c=i.match(/^\[User explicitly selected MCP tool:\s*(.+?)\s*\]$/);if(c){const f=c[1]??"",p=lo(f);n.push({type:"mcp",label:f,serverId:p==null?void 0:p.serverId,toolName:p==null?void 0:p.toolName});continue}const d=i.match(/^\[User explicitly selected skill:\s*(.+?)\s*\]$/);if(d){const f=d[1]??"",p=f.match(/\(ID:\s*([^)]+)\)\s*$/i),v=(o=p==null?void 0:p[1])==null?void 0:o.trim(),g=p?f.replace(/\(ID:\s*([^)]+)\)\s*$/i,"").trim():f;n.push({type:"skill",label:g||f,skillId:v});continue}r.push(a)}return{cleanText:r.join(`
206
+ `).trimStart(),hints:n}},vj=({sessionId:e,message:t,messageText:n,isUserToolCall:r,formatUserToolCall:s,markdownComponents:o,markdownPlugins:a,rehypePlugins:i})=>{var w;const{t:c}=qe(),d=m=>(m??"").trim().toLowerCase()==="conclusion";if(xv(t)){const m=t.result.result??"",x=t.isError?m||c("components.toolResult.executionFailed"):void 0,k=!x&&m.trim().length===0;if(t.result.display_preference==="Hidden")return null;const C=(t.toolName??"").trim().toLowerCase(),E=C==="conclusion",T=FP(m),P=(C==="conclusion_with_options"||C==="exitplanmode"||C==="request_permissions"||NP(m))&&!t.isError&&T,A=C==="conclusion"?uv(m):null;return P&&T?l.jsx(gj,{sessionId:e,question:T.question,options:T.options,allowCustom:T.allow_custom,toolCallId:t.toolCallId,conclusionMarkdown:zP(T.conclusion),markdownComponents:o,markdownPlugins:a,rehypePlugins:i}):A?l.jsx(ze,{direction:"vertical",style:{width:"100%"},size:"small",children:l.jsx(hr,{remarkPlugins:a,rehypePlugins:i,components:o,children:A})}):l.jsx(Yv,{content:m,toolName:t.toolName,status:t.isError?"error":k?"warning":"success",timestamp:t.createdAt,defaultCollapsed:!E,isLoading:k,errorMessage:x})}if(rR(t)){const m=t.content??"",x=t.status==="error"?m||c("components.workflowResult.executionFailed"):void 0,k=!x&&m.trim().length===0;return l.jsx(Jv,{content:m,workflowName:t.workflowName,parameters:t.parameters,status:k?"warning":t.status??"success",timestamp:t.createdAt,isLoading:k,errorMessage:x})}if(nR(t)){const m=t.toolCalls.filter(x=>!d(x.toolName));return m.length===0?null:l.jsx(tf,{sessionId:e,toolCalls:m,metadata:t.metadata,defaultExpanded:!1})}if(t.isAuthError)return l.jsxs(ze,{direction:"vertical",style:{width:"100%"},size:"middle",children:[l.jsx(Jn,{message:c("chat.messageCard.authRequired"),description:l.jsx(hr,{remarkPlugins:a,rehypePlugins:i,components:o,children:n}),type:"error",showIcon:!0}),l.jsx(Ee,{type:"primary",icon:l.jsx(Nl,{}),onClick:()=>{window.location.hash="/settings"},children:c("chat.messageCard.goToSettings")})]});const{cleanText:f,hints:p}=t.role==="user"?yj(n):{cleanText:n,hints:[]},v=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:"",g=v.trim().length>0;return t.role==="assistant"&&!n&&!g?l.jsx(Yn,{italic:!0,children:c("chat.messageCard.assistantThinking")}):l.jsxs(ze,{direction:"vertical",style:{width:"100%"},size:"small",children:[g?l.jsx(ao,{size:"small",defaultActiveKey:["reasoning"],items:[{key:"reasoning",label:l.jsx(Yn,{strong:!0,children:c("chat.messageCard.reasoning")}),children:l.jsx(hr,{remarkPlugins:a,rehypePlugins:i,components:o,children:v})}]}):null,p.map((m,x)=>m.type==="mcp"?l.jsx(Jn,{type:"info",showIcon:!1,message:l.jsxs(ze,{wrap:!0,size:"small",children:[l.jsx(Ye,{color:"purple",children:"MCP"}),l.jsx(Yn,{strong:!0,children:c("chat.messageCard.selectedTool")}),m.serverId&&l.jsx(Yn,{type:"secondary",children:l.jsx(Yn,{code:!0,children:m.serverId})}),m.toolName&&l.jsx(Yn,{type:"secondary",children:l.jsx(Yn,{code:!0,children:m.toolName})})]}),style:{marginBottom:0}},`hint-mcp-${x}`):l.jsx(Jn,{type:"success",showIcon:!1,message:l.jsxs(ze,{wrap:!0,size:"small",children:[l.jsx(Ye,{color:"success",children:"Skill"}),l.jsx(Yn,{strong:!0,children:c("chat.messageCard.selected")}),m.label&&l.jsx(Yn,{children:m.label}),m.skillId&&l.jsx(Yn,{type:"secondary",children:l.jsx(Yn,{code:!0,children:m.skillId})})]}),style:{marginBottom:0}},`hint-skill-${x}`)),f?l.jsx(hr,{remarkPlugins:a,rehypePlugins:i,components:o,children:r?s(f):f}):null]})},bj=S.memo(vj),{Text:Jc}=ot,Sj=({role:e,formattedTimestamp:t,token:n})=>{const{t:r}=qe(),s=e==="user",o=e==="assistant",a=e==="system",i=r(s?"chat.view.roleUser":o?"chat.view.brandName":"chat.view.roleDefault"),c=s?r("chat.view.roleUser").slice(0,1):o?r("chat.view.brandName").slice(0,1):e.slice(0,1).toUpperCase();return l.jsxs(we,{align:"center",justify:"space-between",gap:n.marginXS,style:{marginBottom:n.marginXS},children:[l.jsxs(we,{align:"center",gap:10,children:[l.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:c}),l.jsxs(we,{vertical:!0,gap:0,children:[l.jsx(Jc,{strong:!0,style:{fontSize:13,color:s?"var(--lotus-primary)":n.colorText,letterSpacing:"0.2px",lineHeight:1.1},children:i}),l.jsx(Jc,{type:"secondary",style:{fontSize:11,lineHeight:1.1},children:r(s?"chat.view.subTitleUser":o?"chat.view.roleAssistant":a?"chat.view.roleSystem":"chat.view.roleDefault")})]})]}),t&&l.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})]})},nf=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},wj=e=>e==="text"||e==="plan"||e==="question"||e==="tool_call"||e==="tool_result",xj=(e,t)=>{if(t)return t;if("message_type"in e&&e.message_type){const n=e.message_type;if(wj(n))return n}if(e.role==="assistant"&&e.type==="text"){const n=typeof e.content=="string"?e.content:"";try{const r=nf(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"},_j=(e,t)=>{if(t!=="plan"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=nf(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},Cj=(e,t)=>{if(t!=="question"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=nf(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},Qv=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"?uv(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""},kj=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),a=o.indexOf("__");if(a>0){const i=o.slice(0,a),c=o.slice(a+2);if(i&&c)return`🔌 MCP ${i}/${c}: ${r}`}}return`🔧 ${n.replace(/_/g," ").replace(/\b\w/g,o=>o.toUpperCase())}: ${r}`},Tj=1.4;function Pj(e,t){const n=e.getBoundingClientRect();if(!n.height)return[];const r=t.height/n.height,s=e.clientWidth-48,o=[];return e.querySelectorAll("[data-mermaid-loading] img").forEach(i=>{const c=i.naturalWidth,d=i.naturalHeight;if(!c||!d)return;const f=c/d,p=parseFloat(i.style.width)||c;if(f<=Tj||p<=s)return;const v=i.getBoundingClientRect(),g=Math.max(0,Math.floor((v.top-n.top)*r)),w=Math.min(t.height,Math.ceil((v.bottom-n.top)*r));w>g&&o.push({topPx:g,bottomPx:w,src:i.src,ratio:f})}),o.sort((i,c)=>i.topPx-c.topPx),o}function Wp(e,t,n,r,s,o){if(r-n<1)return;let a=n;for(;a<r;){const i=r-a;let c;if(i<=o.sliceHeightPx)c=i;else{const v=Mj(t,a,o.sliceHeightPx);c=Math.max(1,Math.min(v,i))}const d=document.createElement("canvas");d.width=t.width,d.height=c;const f=d.getContext("2d");if(!f)throw new Error("PDF render failed (no canvas context)");f.fillStyle="#ffffff",f.fillRect(0,0,d.width,d.height),f.drawImage(t,0,a,t.width,c,0,0,t.width,c);const p=d.toDataURL("image/jpeg",.92);s(),e.addImage(p,"JPEG",o.marginPt,o.marginPt,o.contentWidthPt,c/o.pxPerPt),a+=c}}function Ej(e,t,n,r){r();const s=e.internal.pageSize.getWidth()-n*2,o=e.internal.pageSize.getHeight()-n*2;let a=s,i=s/t.ratio;i>o&&(i=o,a=o*t.ratio);const c=n+(s-a)/2,d=n+(o-i)/2;e.addImage(t.src,"PNG",c,d,a,i)}function Mj(e,t,n){const r=e.height-t;if(r<=n)return r;const s=t+n,o=Math.max(1,Math.floor(n*.72)),a=Math.max(8,Math.floor(n*.12)),i=Math.max(t+o,s-a),c=Math.min(e.height-1,s+a),d=Rj(e,s,i,c);return d===null||d<=t?n:d-t}function Rj(e,t,n,r){if(n>r||e.width<=0)return null;try{const s=e.getContext("2d",{willReadFrequently:!0});if(!s||typeof s.getImageData!="function")return null;const o=r-n+1,a=s.getImageData(0,n,e.width,o).data,i=e.width*4,c=Math.max(1,Math.floor(e.width/320)),d=245,f=16,p=.03;let v=null,g=Number.POSITIVE_INFINITY,w=Number.POSITIVE_INFINITY;for(let m=0;m<o;m+=1){let x=0,k=0;const C=m*i;for(let O=0;O<e.width;O+=c){const $=C+O*4,U=a[$+3];if(k+=1,U<=f)continue;const J=a[$],ee=a[$+1],I=a[$+2];(J<d||ee<d||I<d)&&(x+=1)}if(k===0)continue;const E=x/k,T=n+m,P=Math.abs(T-t);(E<g||E===g&&P<w)&&(g=E,w=P,v=T)}return v===null||g>p?null:v}catch{return null}}const Up=e=>e.map(t=>({name:t.name,extensions:[...t.extensions]})),qp=e=>e.trim().slice(0,64).replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-")||"message",Aj={},jj='[data-mermaid-loading="true"]';class Zv{static async exportMessageText(t){const{format:n,content:r,sessionId:s=null,messageId:o=null,filenamePrefix:a}=t,i=a||["chat-message",s?qp(s.slice(0,8)):null,o?qp(o.slice(0,8)):null].filter(Boolean).join("-"),c=n==="markdown"?ur.generateTimestampedFilename(i,"md"):ur.generateTimestampedFilename(i,"pdf");if(n==="markdown"){const d=await ur.saveTextFile(r,Up(ur.FILTERS.MARKDOWN),c);return d.success?{success:!0,filename:d.filename}:{success:!1,error:d.error}}try{const d=await this.generatePdfFromText(r),f=await ur.saveBinaryFile(d,Up(ur.FILTERS.PDF),c);return f.success?{success:!0,filename:f.filename}:{success:!1,error:f.error}}catch(d){return{success:!1,error:d instanceof Error?d.message:kt.t("chat.messageActions.exportFailed")}}}static async generatePdfFromText(t){if(typeof document>"u")throw new Error(kt.t("chat.messageActions.pdfUnavailable"));const n=(await Lt(async()=>{const{default:g}=await import("./vendor-pdf-CAvJLb8d.js").then(w=>w.h);return{default:g}},__vite__mapDeps([15,4,3,2]),import.meta.url)).default,{jsPDF:r}=await Lt(async()=>{const{jsPDF:g}=await import("./vendor-pdf-CAvJLb8d.js").then(w=>w.j);return{jsPDF:g}},__vite__mapDeps([15,4,3,2]),import.meta.url),{createRoot:s}=await Lt(async()=>{const{createRoot:g}=await import("./main-KJE6TlvG.js").then(w=>w.c);return{createRoot:g}},__vite__mapDeps([5,4,3,2,1,6]),import.meta.url),{flushSync:o}=await Lt(async()=>{const{flushSync:g}=await import("./vendor-antd-Ce-qhZOr.js").then(w=>w.R);return{flushSync:g}},__vite__mapDeps([3,2]),import.meta.url),a=Xv(Aj,{mermaidRenderMode:"static"}),i=document.createElement("div");i.style.position="fixed",i.style.left="0",i.style.top="0",i.style.right="0",i.style.bottom="0",i.style.zIndex="2147483647",i.style.background="rgba(0,0,0,0.15)",i.style.display="flex",i.style.alignItems="center",i.style.justifyContent="center",i.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",i.style.fontSize="14px",i.style.color="#111";const c=document.createElement("div");c.style.background="#fff",c.style.border="1px solid rgba(0,0,0,0.12)",c.style.borderRadius="10px",c.style.padding="12px 14px",c.style.boxShadow="0 8px 24px rgba(0,0,0,0.12)",c.textContent=kt.t("chat.messageActions.exportingPdf"),i.appendChild(c);const d=document.createElement("div");d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.zIndex="2147483646",d.style.pointerEvents="none",d.style.width="794px",d.style.background="#fff",d.style.color="#111",d.style.padding="24px",d.style.boxSizing="border-box",d.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",d.style.fontSize="14px",d.style.lineHeight="1.35";const f=document.createElement("style");f.textContent=`
207
+ .md-export { color: #111; }
208
+ .md-export h1 { font-size: 24px; margin: 0 0 16px; }
209
+ .md-export h2 { font-size: 18px; margin: 18px 0 12px; }
210
+ .md-export h3 { font-size: 16px; margin: 14px 0 10px; }
211
+ .md-export [data-mermaid-controls="true"] { display: none !important; }
212
+ `,d.appendChild(f);const p=document.createElement("div");p.className="md-export",d.appendChild(p),document.body.appendChild(d),document.body.appendChild(i);const v=s(p);o(()=>{v.render(rt.createElement(hr,{remarkPlugins:[Sd,wd],rehypePlugins:[bd],components:a},t||""))});try{await this.waitForExportRenderReady(d),await this.awaitMermaidImagesDecoded(d);const g=await this.renderCanvasWithFallback(n,d),w=new r({unit:"pt",format:"a4",orientation:"portrait"}),m=24,x=w.internal.pageSize.getWidth()-m*2,k=w.internal.pageSize.getHeight()-m*2,C=g.width/x,E={marginPt:m,contentWidthPt:x,pxPerPt:C,sliceHeightPx:Math.max(1,Math.floor(k*C))};let T=0;const P=()=>{w.addPage("a4","portrait"),T+=1},A=()=>{w.addPage("a4","landscape"),T+=1},O=Pj(d,g);let $=0;for(const J of O)Wp(w,g,$,J.topPx,P,E),Ej(w,J,m,A),$=J.bottomPx;Wp(w,g,$,g.height,P,E),T>0&&w.deletePage(1);const U=w.output("arraybuffer");return new Uint8Array(U)}finally{v.unmount(),i.remove(),d.remove()}}static async waitForExportRenderReady(t){var s,o,a;await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(()=>i()))),await((a=(o=(s=document.fonts)==null?void 0:s.ready)==null?void 0:o.catch)==null?void 0:a.call(o,()=>{}));const n=Date.now(),r=6e3;for(;Date.now()-n<r;){if(!t.querySelector(jj)){await new Promise(c=>requestAnimationFrame(()=>c()));return}await new Promise(c=>setTimeout(c,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 async awaitMermaidImagesDecoded(t){const n=Array.from(t.querySelectorAll("[data-mermaid-loading] img"));await Promise.all(n.map(async r=>{if(!(r.complete&&r.naturalWidth))try{await r.decode()}catch{}}))}}const Ij=({messageText:e,messageId:t,currentSessionId:n,onDelete:r,onRestoreChat:s,onRestoreFilesAndChat:o,cardRef:a})=>{const{message:i}=Tn.useApp(),{t:c}=qe(),[d,f]=S.useState(""),p=S.useCallback(async k=>{try{await kr(k)}catch(C){console.error("Failed to copy text:",C)}},[]),v=S.useCallback(k=>`> ${k.replace(/\n/g,`
213
+ > `)}`,[]),g=S.useCallback(()=>{if(!n)return;const k=v(d||e),C=new CustomEvent("reference-text",{detail:{text:k,sessionId:n}});window.dispatchEvent(C)},[v,n,e,d]),w=S.useCallback(async k=>{var T;const C=d||e;if(!C){i.warning(c("chat.messageActions.nothingToExport"));return}const E=await Zv.exportMessageText({format:k,content:C,sessionId:n??null,messageId:t??null});if(E.success)i.success(c("chat.messageActions.savedFile",{filename:E.filename}));else{if((T=E.error)!=null&&T.toLowerCase().includes("cancel"))return;i.error(E.error||c("chat.messageActions.exportFailed"))}},[i,n,t,e,d,c]),m=S.useCallback(k=>{k.preventDefault(),k.stopPropagation();const C=window.getSelection(),E=C?C.toString():"";E&&a.current&&C&&a.current.contains(C.anchorNode)?f(E):f("")},[a]);return{contextMenuItems:S.useMemo(()=>{const k=[...s&&o&&n&&t?[{key:"restore-chat",label:c("chat.messageActions.restoreChat"),icon:l.jsx(Zw,{}),onClick:()=>{s()}},{key:"restore-chat-files",label:c("chat.messageActions.restoreFilesAndChat"),icon:l.jsx(ex,{}),onClick:()=>{o()}},{type:"divider"}]:[],{key:"copy",label:c("chat.messageActions.copy"),icon:l.jsx(Cr,{}),onClick:()=>{p(d||e)}},{key:"reference",label:c("chat.actions.referenceMessage"),icon:l.jsx(Gg,{}),onClick:g},{type:"divider"},{key:"export-md",label:c("chat.messageActions.exportMarkdown"),icon:l.jsx(to,{}),onClick:()=>w("markdown")},{key:"export-pdf",label:c("chat.messageActions.exportPdf"),icon:l.jsx(to,{}),onClick:()=>w("pdf")}];return r&&t&&k.push({key:"delete",label:c("chat.messageActions.deleteMessage"),icon:l.jsx(Fl,{}),onClick:()=>r(t),danger:!0}),k},[p,w,t,e,r,s,o,g,d,n,c]),handleMouseUp:m,copyToClipboard:p,referenceMessage:g}},Oj=({currentSessionId:e,updateSession:t,sendMessage:n})=>{const r=S.useCallback(async()=>{if(!e)return;const i=Z.getState().chats.find(c=>c.id===e);if(i)try{t(e,{config:{...i.config,agentRole:"actor"}})}catch(c){console.error("Failed to switch to Actor role:",c)}},[e,t]),s=S.useCallback(async a=>{if(a.trim())try{await n(a.trim())}catch(i){console.error("Failed to send plan refinement:",i)}},[n]),o=S.useCallback(async a=>{if(a)try{await n(a)}catch(i){throw console.error("Failed to send answer:",i),i}},[n]);return{handleExecutePlan:r,handleRefinePlan:s,handleQuestionAnswer:o}};function Ke(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 se(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 eb=function(){const{crypto:e}=globalThis;if(e!=null&&e.randomUUID)return eb=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 nd(e){return typeof e=="object"&&e!==null&&("name"in e&&e.name==="AbortError"||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}const rd=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 Ve extends Error{}class fn extends Ve{constructor(t,n,r,s){super(`${fn.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 Jl({message:r,cause:rd(n)});const o=n==null?void 0:n.error;return t===400?new tb(t,o,r,s):t===401?new nb(t,o,r,s):t===403?new rb(t,o,r,s):t===404?new sb(t,o,r,s):t===409?new ob(t,o,r,s):t===422?new ab(t,o,r,s):t===429?new ib(t,o,r,s):t>=500?new lb(t,o,r,s):new fn(t,o,r,s)}}class zn extends fn{constructor({message:t}={}){super(void 0,void 0,t||"Request was aborted.",void 0)}}class Jl extends fn{constructor({message:t,cause:n}){super(void 0,void 0,t||"Connection error.",void 0),n&&(this.cause=n)}}class rf extends Jl{constructor({message:t}={}){super({message:t??"Request timed out."})}}class tb extends fn{}class nb extends fn{}class rb extends fn{}class sb extends fn{}class ob extends fn{}class ab extends fn{}class ib extends fn{}class lb extends fn{}class cb extends Ve{constructor(){super("Could not parse response content as the length limit was reached")}}class ub extends Ve{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class Pa extends Error{constructor(t){super(t)}}const $j=/^[a-z][a-z0-9+.-]*:/i,Lj=e=>$j.test(e);let kn=e=>(kn=Array.isArray,kn(e)),Hp=kn;function Dj(e){return typeof e!="object"?{}:e??{}}function Fj(e){if(!e)return!0;for(const t in e)return!1;return!0}function Nj(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Qc(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}const zj=(e,t)=>{if(typeof t!="number"||!Number.isInteger(t))throw new Ve(`${e} must be an integer`);if(t<0)throw new Ve(`${e} must be a positive integer`);return t},Bj=e=>{try{return JSON.parse(e)}catch{return}},li=e=>new Promise(t=>setTimeout(t,e)),Ws="5.10.2",Wj=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function Uj(){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 qj=()=>{var n;const e=Uj();if(e==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ws,"X-Stainless-OS":Yp(Deno.build.os),"X-Stainless-Arch":Xp(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":Ws,"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":Ws,"X-Stainless-OS":Yp(globalThis.process.platform??"unknown"),"X-Stainless-Arch":Xp(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const t=Hj();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ws,"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":Ws,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function Hj(){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,a=r[3]||0;return{browser:t,version:`${s}.${o}.${a}`}}}return null}const Xp=e=>e==="x32"?"x32":e==="x86_64"||e==="x64"?"x64":e==="arm"?"arm":e==="aarch64"||e==="arm64"?"arm64":e?`other:${e}`:"unknown",Yp=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 Kp;const Xj=()=>Kp??(Kp=qj());function Yj(){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 db(...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 fb(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return db({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 hb(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 Kj(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 Vj=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)}),pb="RFC3986",mb=e=>String(e),Vp={RFC1738:e=>String(e).replace(/%20/g,"+"),RFC3986:mb},Gj="RFC1738";let sd=(e,t)=>(sd=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),sd(e,t));const ir=(()=>{const e=[];for(let t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e})(),Zc=1024,Jj=(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(i){return"%26%23"+parseInt(i.slice(2),16)+"%3B"});let a="";for(let i=0;i<o.length;i+=Zc){const c=o.length>=Zc?o.slice(i,i+Zc):o,d=[];for(let f=0;f<c.length;++f){let p=c.charCodeAt(f);if(p===45||p===46||p===95||p===126||p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===Gj&&(p===40||p===41)){d[d.length]=c.charAt(f);continue}if(p<128){d[d.length]=ir[p];continue}if(p<2048){d[d.length]=ir[192|p>>6]+ir[128|p&63];continue}if(p<55296||p>=57344){d[d.length]=ir[224|p>>12]+ir[128|p>>6&63]+ir[128|p&63];continue}f+=1,p=65536+((p&1023)<<10|c.charCodeAt(f)&1023),d[d.length]=ir[240|p>>18]+ir[128|p>>12&63]+ir[128|p>>6&63]+ir[128|p&63]}a+=d.join("")}return a};function Qj(e){return!e||typeof e!="object"?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function Gp(e,t){if(kn(e)){const n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}const gb={brackets(e){return String(e)+"[]"},comma:"comma",indices(e,t){return String(e)+"["+t+"]"},repeat(e){return String(e)}},yb=function(e,t){Array.prototype.push.apply(e,kn(t)?t:[t])};let Jp;const Vt={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Jj,encodeValuesOnly:!1,format:pb,formatter:mb,indices:!1,serializeDate(e){return(Jp??(Jp=Function.prototype.call.bind(Date.prototype.toISOString)))(e)},skipNulls:!1,strictNullHandling:!1};function Zj(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"}const eu={};function vb(e,t,n,r,s,o,a,i,c,d,f,p,v,g,w,m,x,k){let C=e,E=k,T=0,P=!1;for(;(E=E.get(eu))!==void 0&&!P;){const J=E.get(e);if(T+=1,typeof J<"u"){if(J===T)throw new RangeError("Cyclic object value");P=!0}typeof E.get(eu)>"u"&&(T=0)}if(typeof d=="function"?C=d(t,C):C instanceof Date?C=v==null?void 0:v(C):n==="comma"&&kn(C)&&(C=Gp(C,function(J){return J instanceof Date?v==null?void 0:v(J):J})),C===null){if(o)return c&&!m?c(t,Vt.encoder,x,"key",g):t;C=""}if(Zj(C)||Qj(C)){if(c){const J=m?t:c(t,Vt.encoder,x,"key",g);return[(w==null?void 0:w(J))+"="+(w==null?void 0:w(c(C,Vt.encoder,x,"value",g)))]}return[(w==null?void 0:w(t))+"="+(w==null?void 0:w(String(C)))]}const A=[];if(typeof C>"u")return A;let O;if(n==="comma"&&kn(C))m&&c&&(C=Gp(C,c)),O=[{value:C.length>0?C.join(",")||null:void 0}];else if(kn(d))O=d;else{const J=Object.keys(C);O=f?J.sort(f):J}const $=i?String(t).replace(/\./g,"%2E"):String(t),U=r&&kn(C)&&C.length===1?$+"[]":$;if(s&&kn(C)&&C.length===0)return U+"[]";for(let J=0;J<O.length;++J){const ee=O[J],I=typeof ee=="object"&&typeof ee.value<"u"?ee.value:C[ee];if(a&&I===null)continue;const Y=p&&i?ee.replace(/\./g,"%2E"):ee,z=kn(C)?typeof n=="function"?n(U,Y):U:U+(p?"."+Y:"["+Y+"]");k.set(e,T);const D=new WeakMap;D.set(eu,k),yb(A,vb(I,z,n,r,s,o,a,i,n==="comma"&&m&&kn(C)?null:c,d,f,p,v,g,w,m,x,D))}return A}function e1(e=Vt){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||Vt.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=pb;if(typeof e.format<"u"){if(!sd(Vp,e.format))throw new TypeError("Unknown format option provided.");n=e.format}const r=Vp[n];let s=Vt.filter;(typeof e.filter=="function"||kn(e.filter))&&(s=e.filter);let o;if(e.arrayFormat&&e.arrayFormat in gb?o=e.arrayFormat:"indices"in e?o=e.indices?"indices":"repeat":o=Vt.arrayFormat,"commaRoundTrip"in e&&typeof e.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");const a=typeof e.allowDots>"u"?e.encodeDotInKeys?!0:Vt.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:Vt.addQueryPrefix,allowDots:a,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Vt.allowEmptyArrays,arrayFormat:o,charset:t,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Vt.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?Vt.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:Vt.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:Vt.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:Vt.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:Vt.encodeValuesOnly,filter:s,format:n,formatter:r,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:Vt.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:Vt.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Vt.strictNullHandling}}function t1(e,t={}){let n=e;const r=e1(t);let s,o;typeof r.filter=="function"?(o=r.filter,n=o("",n)):kn(r.filter)&&(o=r.filter,s=o);const a=[];if(typeof n!="object"||n===null)return"";const i=gb[r.arrayFormat],c=i==="comma"&&r.commaRoundTrip;s||(s=Object.keys(n)),r.sort&&s.sort(r.sort);const d=new WeakMap;for(let v=0;v<s.length;++v){const g=s[v];r.skipNulls&&n[g]===null||yb(a,vb(n[g],g,i,c,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,d))}const f=a.join(r.delimiter);let p=r.addQueryPrefix===!0?"?":"";return r.charsetSentinel&&(r.charset==="iso-8859-1"?p+="utf8=%26%2310003%3B&":p+="utf8=%E2%9C%93&"),f.length>0?p+f:""}function n1(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 Qp;function sf(e){let t;return(Qp??(t=new globalThis.TextEncoder,Qp=t.encode.bind(t)))(e)}let Zp;function em(e){let t;return(Zp??(t=new globalThis.TextDecoder,Zp=t.decode.bind(t)))(e)}var An,jn;class Ql{constructor(){An.set(this,void 0),jn.set(this,void 0),Ke(this,An,new Uint8Array),Ke(this,jn,null)}decode(t){if(t==null)return[];const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?sf(t):t;Ke(this,An,n1([se(this,An,"f"),n]));const r=[];let s;for(;(s=r1(se(this,An,"f"),se(this,jn,"f")))!=null;){if(s.carriage&&se(this,jn,"f")==null){Ke(this,jn,s.index);continue}if(se(this,jn,"f")!=null&&(s.index!==se(this,jn,"f")+1||s.carriage)){r.push(em(se(this,An,"f").subarray(0,se(this,jn,"f")-1))),Ke(this,An,se(this,An,"f").subarray(se(this,jn,"f"))),Ke(this,jn,null);continue}const o=se(this,jn,"f")!==null?s.preceding-1:s.preceding,a=em(se(this,An,"f").subarray(0,o));r.push(a),Ke(this,An,se(this,An,"f").subarray(s.index)),Ke(this,jn,null)}return r}flush(){return se(this,An,"f").length?this.decode(`
214
+ `):[]}}An=new WeakMap,jn=new WeakMap;Ql.NEWLINE_CHARS=new Set([`
215
+ `,"\r"]);Ql.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function r1(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 s1(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 Rl={off:0,error:200,warn:300,info:400,debug:500},tm=(e,t,n)=>{if(e){if(Nj(Rl,e))return e;cn(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Rl))}`)}};function Ea(){}function qi(e,t,n){return!t||Rl[e]>Rl[n]?Ea:t[e].bind(t)}const o1={error:Ea,warn:Ea,info:Ea,debug:Ea};let nm=new WeakMap;function cn(e){const t=e.logger,n=e.logLevel??"off";if(!t)return o1;const r=nm.get(t);if(r&&r[0]===n)return r[1];const s={error:qi("error",t,n),warn:qi("warn",t,n),info:qi("info",t,n),debug:qi("debug",t,n)};return nm.set(t,[n,s]),s}const ss=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 No;class pr{constructor(t,n,r){this.iterator=t,No.set(this,void 0),this.controller=n,Ke(this,No,r)}static fromSSEResponse(t,n,r){let s=!1;const o=r?cn(r):console;async function*a(){if(s)throw new Ve("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let i=!1;try{for await(const c of a1(t,n))if(!i){if(c.data.startsWith("[DONE]")){i=!0;continue}if(c.event===null||c.event.startsWith("response.")||c.event.startsWith("image_edit.")||c.event.startsWith("image_generation.")||c.event.startsWith("transcript.")){let d;try{d=JSON.parse(c.data)}catch(f){throw o.error("Could not parse message into JSON:",c.data),o.error("From chunk:",c.raw),f}if(d&&d.error)throw new fn(void 0,d.error,void 0,t.headers);yield d}else{let d;try{d=JSON.parse(c.data)}catch(f){throw console.error("Could not parse message into JSON:",c.data),console.error("From chunk:",c.raw),f}if(c.event=="error")throw new fn(void 0,d.error,d.message,void 0);yield{event:c.event,data:d}}}i=!0}catch(c){if(nd(c))return;throw c}finally{i||n.abort()}}return new pr(a,n,r)}static fromReadableStream(t,n,r){let s=!1;async function*o(){const i=new Ql,c=hb(t);for await(const d of c)for(const f of i.decode(d))yield f;for(const d of i.flush())yield d}async function*a(){if(s)throw new Ve("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let i=!1;try{for await(const c of o())i||c&&(yield JSON.parse(c));i=!0}catch(c){if(nd(c))return;throw c}finally{i||n.abort()}}return new pr(a,n,r)}[(No=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){const t=[],n=[],r=this.iterator(),s=o=>({next:()=>{if(o.length===0){const a=r.next();t.push(a),n.push(a)}return o.shift()}});return[new pr(()=>s(t),this.controller,se(this,No,"f")),new pr(()=>s(n),this.controller,se(this,No,"f"))]}toReadableStream(){const t=this;let n;return db({async start(){n=t[Symbol.asyncIterator]()},async pull(r){try{const{value:s,done:o}=await n.next();if(o)return r.close();const a=sf(JSON.stringify(s)+`
216
+ `);r.enqueue(a)}catch(s){r.error(s)}},async cancel(){var r;await((r=n.return)==null?void 0:r.call(n))}})}}async function*a1(e,t){if(!e.body)throw t.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ve("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 Ve("Attempted to iterate over a response with no body");const n=new l1,r=new Ql,s=hb(e.body);for await(const o of i1(s))for(const a of r.decode(o)){const i=n.decode(a);i&&(yield i)}for(const o of r.flush()){const a=n.decode(o);a&&(yield a)}}async function*i1(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"?sf(n):n;let s=new Uint8Array(t.length+r.length);s.set(t),s.set(r,t.length),t=s;let o;for(;(o=s1(t))!==-1;)yield t.slice(0,o),t=t.slice(o)}t.length>0&&(yield t)}class l1{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(`
217
+ `),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]=c1(t,":");return s.startsWith(" ")&&(s=s.substring(1)),n==="event"?this.event=s:n==="data"&&this.data.push(s),null}}function c1(e,t){const n=e.indexOf(t);return n!==-1?[e.substring(0,n),t,e.substring(n+t.length)]:[e,"",""]}async function bb(e,t){const{response:n,requestLogID:r,retryOfRequestLogID:s,startTime:o}=t,a=await(async()=>{var p;if(t.options.stream)return cn(e).debug("response",n.status,n.url,n.headers,n.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(n,t.controller,e):pr.fromSSEResponse(n,t.controller,e);if(n.status===204)return null;if(t.options.__binaryResponse)return n;const i=n.headers.get("content-type"),c=(p=i==null?void 0:i.split(";")[0])==null?void 0:p.trim();if((c==null?void 0:c.includes("application/json"))||(c==null?void 0:c.endsWith("+json"))){const v=await n.json();return Sb(v,n)}return await n.text()})();return cn(e).debug(`[${r}] response parsed`,ss({retryOfRequestLogID:s,url:n.url,status:n.status,body:a,durationMs:Date.now()-o})),a}function Sb(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 Ma;class Zl extends Promise{constructor(t,n,r=bb){super(s=>{s(null)}),this.responsePromise=n,this.parseResponse=r,Ma.set(this,void 0),Ke(this,Ma,t)}_thenUnwrap(t){return new Zl(se(this,Ma,"f"),this.responsePromise,async(n,r)=>Sb(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(se(this,Ma,"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)}}Ma=new WeakMap;var Hi;class wb{constructor(t,n,r,s){Hi.set(this,void 0),Ke(this,Hi,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 Ve("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await se(this,Hi,"f").requestAPIList(this.constructor,t)}async*iterPages(){let t=this;for(yield t;t.hasNextPage();)t=await t.getNextPage(),yield t}async*[(Hi=new WeakMap,Symbol.asyncIterator)](){for await(const t of this.iterPages())for(const n of t.getPaginatedItems())yield n}}class u1 extends Zl{constructor(t,n,r){super(t,n,async(s,o)=>new r(s,o.response,await bb(s,o),o.options))}async*[Symbol.asyncIterator](){const t=await this;for await(const n of t)yield n}}class ec 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 qt 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:{...Dj(this.options.query),after:n}}:null}}const xb=()=>{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 za(e,t,n){return xb(),new File(e,t??"unknown_file",n)}function il(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 _b=e=>e!=null&&typeof e=="object"&&typeof e[Symbol.asyncIterator]=="function",_s=async(e,t)=>({...e,body:await f1(e.body,t)}),rm=new WeakMap;function d1(e){const t=typeof e=="function"?e:e.fetch,n=rm.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 rm.set(t,r),r}const f1=async(e,t)=>{if(!await d1(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])=>od(n,r,s))),n},h1=e=>e instanceof Blob&&"name"in e,od=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,za([await n.blob()],il(n)));else if(_b(n))e.append(t,za([await new Response(fb(n)).blob()],il(n)));else if(h1(n))e.append(t,n,il(n));else if(Array.isArray(n))await Promise.all(n.map(r=>od(e,t+"[]",r)));else if(typeof n=="object")await Promise.all(Object.entries(n).map(([r,s])=>od(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",p1=e=>e!=null&&typeof e=="object"&&typeof e.name=="string"&&typeof e.lastModified=="number"&&Cb(e),m1=e=>e!=null&&typeof e=="object"&&typeof e.url=="string"&&typeof e.blob=="function";async function g1(e,t,n){if(xb(),e=await e,p1(e))return e instanceof File?e:za([await e.arrayBuffer()],e.name);if(m1(e)){const s=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),za(await ad(s),t,n)}const r=await ad(e);if(t||(t=il(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 za(r,t,n)}async function ad(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(_b(e))for await(const r of e)t.push(...await ad(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}`:""}${y1(e)}`)}return t}function y1(e){return typeof e!="object"||e===null?"":`; props: [${Object.getOwnPropertyNames(e).map(n=>`"${n}"`).join(", ")}]`}class et{constructor(t){this._client=t}}function kb(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const sm=Object.freeze(Object.create(null)),v1=(e=kb)=>function(n,...r){if(n.length===1)return n[0];let s=!1;const o=[],a=n.reduce((f,p,v)=>{var m;/[?#]/.test(p)&&(s=!0);const g=r[v];let w=(s?encodeURIComponent:e)(""+g);return v!==r.length&&(g==null||typeof g=="object"&&g.toString===((m=Object.getPrototypeOf(Object.getPrototypeOf(g.hasOwnProperty??sm)??sm))==null?void 0:m.toString))&&(w=g+"",o.push({start:f.length+p.length,length:w.length,error:`Value of type ${Object.prototype.toString.call(g).slice(8,-1)} is not a valid path parameter`})),f+p+(v===r.length?"":w)},""),i=a.split(/[?#]/,1)[0],c=new RegExp("(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)","gi");let d;for(;(d=c.exec(i))!==null;)o.push({start:d.index,length:d[0].length,error:`Value "${d[0]}" can't be safely passed as a path parameter`});if(o.sort((f,p)=>f.start-p.start),o.length>0){let f=0;const p=o.reduce((v,g)=>{const w=" ".repeat(g.start-f),m="^".repeat(g.length);return f=g.start+g.length,v+w+m},"");throw new Ve(`Path parameters result in path with invalid segments:
218
+ ${o.map(v=>v.error).join(`
219
+ `)}
220
+ ${a}
221
+ ${p}`)}return a},je=v1(kb);let Tb=class extends et{list(t,n={},r){return this._client.getAPIList(je`/chat/completions/${t}/messages`,qt,{query:n,...r})}};function b1(e){return typeof e.parse=="function"}const Al=e=>(e==null?void 0:e.role)==="assistant",Pb=e=>(e==null?void 0:e.role)==="tool";var id,ll,cl,Ra,Aa,ul,ja,wr,Ia,jl,Il,Us,Eb;class of{constructor(){id.add(this),this.controller=new AbortController,ll.set(this,void 0),cl.set(this,()=>{}),Ra.set(this,()=>{}),Aa.set(this,void 0),ul.set(this,()=>{}),ja.set(this,()=>{}),wr.set(this,{}),Ia.set(this,!1),jl.set(this,!1),Il.set(this,!1),Us.set(this,!1),Ke(this,ll,new Promise((t,n)=>{Ke(this,cl,t,"f"),Ke(this,Ra,n,"f")})),Ke(this,Aa,new Promise((t,n)=>{Ke(this,ul,t,"f"),Ke(this,ja,n,"f")})),se(this,ll,"f").catch(()=>{}),se(this,Aa,"f").catch(()=>{})}_run(t){setTimeout(()=>{t().then(()=>{this._emitFinal(),this._emit("end")},se(this,id,"m",Eb).bind(this))},0)}_connected(){this.ended||(se(this,cl,"f").call(this),this._emit("connect"))}get ended(){return se(this,Ia,"f")}get errored(){return se(this,jl,"f")}get aborted(){return se(this,Il,"f")}abort(){this.controller.abort()}on(t,n){return(se(this,wr,"f")[t]||(se(this,wr,"f")[t]=[])).push({listener:n}),this}off(t,n){const r=se(this,wr,"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(se(this,wr,"f")[t]||(se(this,wr,"f")[t]=[])).push({listener:n,once:!0}),this}emitted(t){return new Promise((n,r)=>{Ke(this,Us,!0),t!=="error"&&this.once("error",r),this.once(t,n)})}async done(){Ke(this,Us,!0),await se(this,Aa,"f")}_emit(t,...n){if(se(this,Ia,"f"))return;t==="end"&&(Ke(this,Ia,!0),se(this,ul,"f").call(this));const r=se(this,wr,"f")[t];if(r&&(se(this,wr,"f")[t]=r.filter(s=>!s.once),r.forEach(({listener:s})=>s(...n))),t==="abort"){const s=n[0];!se(this,Us,"f")&&!(r!=null&&r.length)&&Promise.reject(s),se(this,Ra,"f").call(this,s),se(this,ja,"f").call(this,s),this._emit("end");return}if(t==="error"){const s=n[0];!se(this,Us,"f")&&!(r!=null&&r.length)&&Promise.reject(s),se(this,Ra,"f").call(this,s),se(this,ja,"f").call(this,s),this._emit("end")}}_emitFinal(){}}ll=new WeakMap,cl=new WeakMap,Ra=new WeakMap,Aa=new WeakMap,ul=new WeakMap,ja=new WeakMap,wr=new WeakMap,Ia=new WeakMap,jl=new WeakMap,Il=new WeakMap,Us=new WeakMap,id=new WeakSet,Eb=function(t){if(Ke(this,jl,!0),t instanceof Error&&t.name==="AbortError"&&(t=new zn),t instanceof zn)return Ke(this,Il,!0),this._emit("abort",t);if(t instanceof Ve)return this._emit("error",t);if(t instanceof Error){const n=new Ve(t.message);return n.cause=t,this._emit("error",n)}return this._emit("error",new Ve(String(t)))};function af(e){return(e==null?void 0:e.$brand)==="auto-parseable-response-format"}function ci(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function S1(e,t){return!t||!Mb(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}}))}:lf(e,t)}function lf(e,t){const n=e.choices.map(r=>{var s;if(r.finish_reason==="length")throw new cb;if(r.finish_reason==="content_filter")throw new ub;return{...r,message:{...r.message,...r.message.tool_calls?{tool_calls:((s=r.message.tool_calls)==null?void 0:s.map(o=>x1(t,o)))??void 0}:void 0,parsed:r.message.content&&!r.message.refusal?w1(t,r.message.content):null}}});return{...e,choices:n}}function w1(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 x1(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:ci(n)?n.$parseRaw(t.function.arguments):n!=null&&n.function.strict?JSON.parse(t.function.arguments):null}}}function _1(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 ci(n)||(n==null?void 0:n.function.strict)||!1}function Mb(e){var t;return af(e.response_format)?!0:((t=e.tools)==null?void 0:t.some(n=>ci(n)||n.type==="function"&&n.function.strict===!0))??!1}function C1(e){for(const t of e??[]){if(t.type!=="function")throw new Ve(`Currently only \`function\` tool types support auto-parsing; Received \`${t.type}\``);if(t.function.strict!==!0)throw new Ve(`The \`${t.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var wn,ld,Ol,cd,ud,dd,Rb,Ab;const k1=10;class jb extends of{constructor(){super(...arguments),wn.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),Pb(t)&&t.content)this._emit("functionToolCallResult",t.content);else if(Al(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 Ve("stream ended without producing a ChatCompletion");return t}async finalContent(){return await this.done(),se(this,wn,"m",ld).call(this)}async finalMessage(){return await this.done(),se(this,wn,"m",Ol).call(this)}async finalFunctionToolCall(){return await this.done(),se(this,wn,"m",cd).call(this)}async finalFunctionToolCallResult(){return await this.done(),se(this,wn,"m",ud).call(this)}async totalUsage(){return await this.done(),se(this,wn,"m",dd).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const t=this._chatCompletions[this._chatCompletions.length-1];t&&this._emit("finalChatCompletion",t);const n=se(this,wn,"m",Ol).call(this);n&&this._emit("finalMessage",n);const r=se(this,wn,"m",ld).call(this);r&&this._emit("finalContent",r);const s=se(this,wn,"m",cd).call(this);s&&this._emit("finalFunctionToolCall",s);const o=se(this,wn,"m",ud).call(this);o!=null&&this._emit("finalFunctionToolCallResult",o),this._chatCompletions.some(a=>a.usage)&&this._emit("totalUsage",se(this,wn,"m",dd).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())),se(this,wn,"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(lf(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 g,w,m;const s="tool",{tool_choice:o="auto",stream:a,...i}=n,c=typeof o!="string"&&((g=o==null?void 0:o.function)==null?void 0:g.name),{maxChatCompletions:d=k1}=r||{},f=n.tools.map(x=>{if(ci(x)){if(!x.$callback)throw new Ve("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:x.$callback,name:x.function.name,description:x.function.description||"",parameters:x.function.parameters,parse:x.$parseRaw,strict:!0}}}return x}),p={};for(const x of f)x.type==="function"&&(p[x.function.name||x.function.function.name]=x.function);const v="tools"in n?f.map(x=>x.type==="function"?{type:"function",function:{name:x.function.name||x.function.function.name,parameters:x.function.parameters,description:x.function.description,strict:x.function.strict}}:x):void 0;for(const x of n.messages)this._addMessage(x,!1);for(let x=0;x<d;++x){const C=(w=(await this._createChatCompletion(t,{...i,tool_choice:o,tools:v,messages:[...this.messages]},r)).choices[0])==null?void 0:w.message;if(!C)throw new Ve("missing message in ChatCompletion response");if(!((m=C.tool_calls)!=null&&m.length))return;for(const E of C.tool_calls){if(E.type!=="function")continue;const T=E.id,{name:P,arguments:A}=E.function,O=p[P];if(O){if(c&&c!==P){const ee=`Invalid tool_call: ${JSON.stringify(P)}. ${JSON.stringify(c)} requested. Please try again`;this._addMessage({role:s,tool_call_id:T,content:ee});continue}}else{const ee=`Invalid tool_call: ${JSON.stringify(P)}. Available options are: ${Object.keys(p).map(I=>JSON.stringify(I)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:T,content:ee});continue}let $;try{$=b1(O)?await O.parse(A):A}catch(ee){const I=ee instanceof Error?ee.message:String(ee);this._addMessage({role:s,tool_call_id:T,content:I});continue}const U=await O.function($,this),J=se(this,wn,"m",Ab).call(this,U);if(this._addMessage({role:s,tool_call_id:T,content:J}),c)return}}}}wn=new WeakSet,ld=function(){return se(this,wn,"m",Ol).call(this).content??null},Ol=function(){let t=this.messages.length;for(;t-- >0;){const n=this.messages[t];if(Al(n))return{...n,content:n.content??null,refusal:n.refusal??null}}throw new Ve("stream ended without producing a ChatCompletionMessage with role=assistant")},cd=function(){var t,n;for(let r=this.messages.length-1;r>=0;r--){const s=this.messages[r];if(Al(s)&&((t=s==null?void 0:s.tool_calls)!=null&&t.length))return(n=s.tool_calls.at(-1))==null?void 0:n.function}},ud=function(){for(let t=this.messages.length-1;t>=0;t--){const n=this.messages[t];if(Pb(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}},dd=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 Ve("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 cf extends jb{static runTools(t,n,r){const s=new cf,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),Al(t)&&t.content&&this._emit("content",t.content)}}const Ib=1,Ob=2,$b=4,Lb=8,Db=16,Fb=32,Nb=64,zb=128,Bb=256,Wb=zb|Bb,Ub=Db|Fb|Wb|Nb,qb=Ib|Ob|Ub,Hb=$b|Lb,T1=qb|Hb,sn={STR:Ib,NUM:Ob,ARR:$b,OBJ:Lb,NULL:Db,BOOL:Fb,NAN:Nb,INFINITY:zb,MINUS_INFINITY:Bb,INF:Wb,SPECIAL:Ub,ATOM:qb,COLLECTION:Hb,ALL:T1};class P1 extends Error{}class E1 extends Error{}function M1(e,t=sn.ALL){if(typeof e!="string")throw new TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw new Error(`${e} is empty`);return R1(e.trim(),t)}const R1=(e,t)=>{const n=e.length;let r=0;const s=v=>{throw new P1(`${v} at position ${r}`)},o=v=>{throw new E1(`${v} at position ${r}`)},a=()=>(p(),r>=n&&s("Unexpected end of input"),e[r]==='"'?i():e[r]==="{"?c():e[r]==="["?d():e.substring(r,r+4)==="null"||sn.NULL&t&&n-r<4&&"null".startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)==="true"||sn.BOOL&t&&n-r<4&&"true".startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)==="false"||sn.BOOL&t&&n-r<5&&"false".startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)==="Infinity"||sn.INFINITY&t&&n-r<8&&"Infinity".startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)==="-Infinity"||sn.MINUS_INFINITY&t&&1<n-r&&n-r<9&&"-Infinity".startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)==="NaN"||sn.NAN&t&&n-r<3&&"NaN".startsWith(e.substring(r))?(r+=3,NaN):f()),i=()=>{const v=r;let g=!1;for(r++;r<n&&(e[r]!=='"'||g&&e[r-1]==="\\");)g=e[r]==="\\"?!g:!1,r++;if(e.charAt(r)=='"')try{return JSON.parse(e.substring(v,++r-Number(g)))}catch(w){o(String(w))}else if(sn.STR&t)try{return JSON.parse(e.substring(v,r-Number(g))+'"')}catch{return JSON.parse(e.substring(v,e.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},c=()=>{r++,p();const v={};try{for(;e[r]!=="}";){if(p(),r>=n&&sn.OBJ&t)return v;const g=i();p(),r++;try{const w=a();Object.defineProperty(v,g,{value:w,writable:!0,enumerable:!0,configurable:!0})}catch(w){if(sn.OBJ&t)return v;throw w}p(),e[r]===","&&r++}}catch{if(sn.OBJ&t)return v;s("Expected '}' at end of object")}return r++,v},d=()=>{r++;const v=[];try{for(;e[r]!=="]";)v.push(a()),p(),e[r]===","&&r++}catch{if(sn.ARR&t)return v;s("Expected ']' at end of array")}return r++,v},f=()=>{if(r===0){e==="-"&&sn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e)}catch(g){if(sn.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(g))}}const v=r;for(e[r]==="-"&&r++;e[r]&&!",]}".includes(e[r]);)r++;r==n&&!(sn.NUM&t)&&s("Unterminated number literal");try{return JSON.parse(e.substring(v,r))}catch{e.substring(v,r)==="-"&&sn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e.substring(v,e.lastIndexOf("e")))}catch(w){o(String(w))}}},p=()=>{for(;r<n&&`
222
+ \r `.includes(e[r]);)r++};return a()},om=e=>M1(e,sn.ALL^sn.NUM);var Kt,Sr,Ns,Dr,tu,Xi,nu,ru,su,Yi,ou,am;class ti extends jb{constructor(t){super(),Kt.add(this),Sr.set(this,void 0),Ns.set(this,void 0),Dr.set(this,void 0),Ke(this,Sr,t),Ke(this,Ns,[])}get currentChatCompletionSnapshot(){return se(this,Dr,"f")}static fromReadableStream(t){const n=new ti(null);return n._run(()=>n._fromReadableStream(t)),n}static createChatCompletion(t,n,r){const s=new ti(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 a;super._createChatCompletion;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),se(this,Kt,"m",tu).call(this);const o=await t.chat.completions.create({...n,stream:!0},{...r,signal:this.controller.signal});this._connected();for await(const i of o)se(this,Kt,"m",nu).call(this,i);if((a=o.controller.signal)!=null&&a.aborted)throw new zn;return this._addChatCompletion(se(this,Kt,"m",Yi).call(this))}async _fromReadableStream(t,n){var a;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),se(this,Kt,"m",tu).call(this),this._connected();const s=pr.fromReadableStream(t,this.controller);let o;for await(const i of s)o&&o!==i.id&&this._addChatCompletion(se(this,Kt,"m",Yi).call(this)),se(this,Kt,"m",nu).call(this,i),o=i.id;if((a=s.controller.signal)!=null&&a.aborted)throw new zn;return this._addChatCompletion(se(this,Kt,"m",Yi).call(this))}[(Sr=new WeakMap,Ns=new WeakMap,Dr=new WeakMap,Kt=new WeakSet,tu=function(){this.ended||Ke(this,Dr,void 0)},Xi=function(n){let r=se(this,Ns,"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},se(this,Ns,"f")[n.index]=r,r)},nu=function(n){var s,o,a,i,c,d,f,p,v,g,w,m,x,k,C;if(this.ended)return;const r=se(this,Kt,"m",am).call(this,n);this._emit("chunk",n,r);for(const E of n.choices){const T=r.choices[E.index];E.delta.content!=null&&((s=T.message)==null?void 0:s.role)==="assistant"&&((o=T.message)!=null&&o.content)&&(this._emit("content",E.delta.content,T.message.content),this._emit("content.delta",{delta:E.delta.content,snapshot:T.message.content,parsed:T.message.parsed})),E.delta.refusal!=null&&((a=T.message)==null?void 0:a.role)==="assistant"&&((i=T.message)!=null&&i.refusal)&&this._emit("refusal.delta",{delta:E.delta.refusal,snapshot:T.message.refusal}),((c=E.logprobs)==null?void 0:c.content)!=null&&((d=T.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(f=E.logprobs)==null?void 0:f.content,snapshot:((p=T.logprobs)==null?void 0:p.content)??[]}),((v=E.logprobs)==null?void 0:v.refusal)!=null&&((g=T.message)==null?void 0:g.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(w=E.logprobs)==null?void 0:w.refusal,snapshot:((m=T.logprobs)==null?void 0:m.refusal)??[]});const P=se(this,Kt,"m",Xi).call(this,T);T.finish_reason&&(se(this,Kt,"m",su).call(this,T),P.current_tool_call_index!=null&&se(this,Kt,"m",ru).call(this,T,P.current_tool_call_index));for(const A of E.delta.tool_calls??[])P.current_tool_call_index!==A.index&&(se(this,Kt,"m",su).call(this,T),P.current_tool_call_index!=null&&se(this,Kt,"m",ru).call(this,T,P.current_tool_call_index)),P.current_tool_call_index=A.index;for(const A of E.delta.tool_calls??[]){const O=(x=T.message.tool_calls)==null?void 0:x[A.index];O!=null&&O.type&&((O==null?void 0:O.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(k=O.function)==null?void 0:k.name,index:A.index,arguments:O.function.arguments,parsed_arguments:O.function.parsed_arguments,arguments_delta:((C=A.function)==null?void 0:C.arguments)??""}):(O==null||O.type,void 0))}}},ru=function(n,r){var a,i,c;if(se(this,Kt,"m",Xi).call(this,n).done_tool_calls.has(r))return;const o=(a=n.message.tool_calls)==null?void 0:a[r];if(!o)throw new Error("no tool call snapshot");if(!o.type)throw new Error("tool call snapshot missing `type`");if(o.type==="function"){const d=(c=(i=se(this,Sr,"f"))==null?void 0:i.tools)==null?void 0:c.find(f=>f.type==="function"&&f.function.name===o.function.name);this._emit("tool_calls.function.arguments.done",{name:o.function.name,index:r,arguments:o.function.arguments,parsed_arguments:ci(d)?d.$parseRaw(o.function.arguments):d!=null&&d.function.strict?JSON.parse(o.function.arguments):null})}else o.type},su=function(n){var s,o;const r=se(this,Kt,"m",Xi).call(this,n);if(n.message.content&&!r.content_done){r.content_done=!0;const a=se(this,Kt,"m",ou).call(this);this._emit("content.done",{content:n.message.content,parsed:a?a.$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}))},Yi=function(){if(this.ended)throw new Ve("stream has ended, this shouldn't happen");const n=se(this,Dr,"f");if(!n)throw new Ve("request ended without sending any chunks");return Ke(this,Dr,void 0),Ke(this,Ns,[]),A1(n,se(this,Sr,"f"))},ou=function(){var r;const n=(r=se(this,Sr,"f"))==null?void 0:r.response_format;return af(n)?n:null},am=function(n){var r,s,o,a;let i=se(this,Dr,"f");const{choices:c,...d}=n;i?Object.assign(i,d):i=Ke(this,Dr,{...d,choices:[]});for(const{delta:f,finish_reason:p,index:v,logprobs:g=null,...w}of n.choices){let m=i.choices[v];if(m||(m=i.choices[v]={finish_reason:p,index:v,message:{},logprobs:g,...w}),g)if(!m.logprobs)m.logprobs=Object.assign({},g);else{const{content:A,refusal:O,...$}=g;Object.assign(m.logprobs,$),A&&((r=m.logprobs).content??(r.content=[]),m.logprobs.content.push(...A)),O&&((s=m.logprobs).refusal??(s.refusal=[]),m.logprobs.refusal.push(...O))}if(p&&(m.finish_reason=p,se(this,Sr,"f")&&Mb(se(this,Sr,"f")))){if(p==="length")throw new cb;if(p==="content_filter")throw new ub}if(Object.assign(m,w),!f)continue;const{content:x,refusal:k,function_call:C,role:E,tool_calls:T,...P}=f;if(Object.assign(m.message,P),k&&(m.message.refusal=(m.message.refusal||"")+k),E&&(m.message.role=E),C&&(m.message.function_call?(C.name&&(m.message.function_call.name=C.name),C.arguments&&((o=m.message.function_call).arguments??(o.arguments=""),m.message.function_call.arguments+=C.arguments)):m.message.function_call=C),x&&(m.message.content=(m.message.content||"")+x,!m.message.refusal&&se(this,Kt,"m",ou).call(this)&&(m.message.parsed=om(m.message.content))),T){m.message.tool_calls||(m.message.tool_calls=[]);for(const{index:A,id:O,type:$,function:U,...J}of T){const ee=(a=m.message.tool_calls)[A]??(a[A]={});Object.assign(ee,J),O&&(ee.id=O),$&&(ee.type=$),U&&(ee.function??(ee.function={name:U.name??"",arguments:""})),U!=null&&U.name&&(ee.function.name=U.name),U!=null&&U.arguments&&(ee.function.arguments+=U.arguments,_1(se(this,Sr,"f"),ee)&&(ee.function.parsed_arguments=om(ee.function.arguments)))}}}return i},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,a)=>n.push({resolve:o,reject:a})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new pr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function A1(e,t){const{id:n,choices:r,created:s,model:o,system_fingerprint:a,...i}=e,c={...i,id:n,choices:r.map(({message:d,finish_reason:f,index:p,logprobs:v,...g})=>{if(!f)throw new Ve(`missing finish_reason for choice ${p}`);const{content:w=null,function_call:m,tool_calls:x,...k}=d,C=d.role;if(!C)throw new Ve(`missing role for choice ${p}`);if(m){const{arguments:E,name:T}=m;if(E==null)throw new Ve(`missing function_call.arguments for choice ${p}`);if(!T)throw new Ve(`missing function_call.name for choice ${p}`);return{...g,message:{content:w,function_call:{arguments:E,name:T},role:C,refusal:d.refusal??null},finish_reason:f,index:p,logprobs:v}}return x?{...g,index:p,finish_reason:f,logprobs:v,message:{...k,role:C,content:w,refusal:d.refusal??null,tool_calls:x.map((E,T)=>{const{function:P,type:A,id:O,...$}=E,{arguments:U,name:J,...ee}=P||{};if(O==null)throw new Ve(`missing choices[${p}].tool_calls[${T}].id
223
+ ${Ki(e)}`);if(A==null)throw new Ve(`missing choices[${p}].tool_calls[${T}].type
224
+ ${Ki(e)}`);if(J==null)throw new Ve(`missing choices[${p}].tool_calls[${T}].function.name
225
+ ${Ki(e)}`);if(U==null)throw new Ve(`missing choices[${p}].tool_calls[${T}].function.arguments
226
+ ${Ki(e)}`);return{...$,id:O,type:A,function:{...ee,name:J,arguments:U}}})}}:{...g,message:{...k,content:w,role:C,refusal:d.refusal??null},finish_reason:f,index:p,logprobs:v}}),created:s,model:o,object:"chat.completion",...a?{system_fingerprint:a}:{}};return S1(c,t)}function Ki(e){return JSON.stringify(e)}class $l extends ti{static fromReadableStream(t){const n=new $l(null);return n._run(()=>n._fromReadableStream(t)),n}static runTools(t,n,r){const s=new $l(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 uf=class extends et{constructor(){super(...arguments),this.messages=new Tb(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(je`/chat/completions/${t}`,n)}update(t,n,r){return this._client.post(je`/chat/completions/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/chat/completions",qt,{query:t,...n})}delete(t,n){return this._client.delete(je`/chat/completions/${t}`,n)}parse(t,n){return C1(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=>lf(r,t))}runTools(t,n){return t.stream?$l.runTools(this._client,t,n):cf.runTools(this._client,t,n)}stream(t,n){return ti.createChatCompletion(this._client,t,n)}};uf.Messages=Tb;class df extends et{constructor(){super(...arguments),this.completions=new uf(this._client)}}df.Completions=uf;const Xb=Symbol("brand.privateNullableHeaders");function*j1(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():Hp(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=Hp(r[1])?r[1]:[r[1]];let a=!1;for(const i of o)i!==void 0&&(t&&!a&&(a=!0,yield[s,null]),yield[s,i])}}const Be=e=>{const t=new Headers,n=new Set;for(const r of e){const s=new Set;for(const[o,a]of j1(r)){const i=o.toLowerCase();s.has(i)||(t.delete(o),s.add(i)),a===null?(t.delete(o),n.add(i)):(t.append(o,a),n.delete(i))}}return{[Xb]:!0,values:t,nulls:n}};class Yb extends et{create(t,n){return this._client.post("/audio/speech",{body:t,...n,headers:Be([{Accept:"application/octet-stream"},n==null?void 0:n.headers]),__binaryResponse:!0})}}class Kb extends et{create(t,n){return this._client.post("/audio/transcriptions",_s({body:t,...n,stream:t.stream??!1,__metadata:{model:t.model}},this._client))}}class Vb extends et{create(t,n){return this._client.post("/audio/translations",_s({body:t,...n,__metadata:{model:t.model}},this._client))}}class ui extends et{constructor(){super(...arguments),this.transcriptions=new Kb(this._client),this.translations=new Vb(this._client),this.speech=new Yb(this._client)}}ui.Transcriptions=Kb;ui.Translations=Vb;ui.Speech=Yb;class Gb extends et{create(t,n){return this._client.post("/batches",{body:t,...n})}retrieve(t,n){return this._client.get(je`/batches/${t}`,n)}list(t={},n){return this._client.getAPIList("/batches",qt,{query:t,...n})}cancel(t,n){return this._client.post(je`/batches/${t}/cancel`,n)}}class Jb extends et{create(t,n){return this._client.post("/assistants",{body:t,...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(je`/assistants/${t}`,{...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(je`/assistants/${t}`,{body:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/assistants",qt,{query:t,...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(je`/assistants/${t}`,{...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Qb extends et{create(t,n){return this._client.post("/realtime/sessions",{body:t,...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Zb extends et{create(t,n){return this._client.post("/realtime/transcription_sessions",{body:t,...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class tc extends et{constructor(){super(...arguments),this.sessions=new Qb(this._client),this.transcriptionSessions=new Zb(this._client)}}tc.Sessions=Qb;tc.TranscriptionSessions=Zb;class eS extends et{create(t,n,r){return this._client.post(je`/threads/${t}/messages`,{body:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(je`/threads/${s}/messages/${t}`,{...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(je`/threads/${s}/messages/${t}`,{body:o,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(je`/threads/${t}/messages`,qt,{query:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{thread_id:s}=n;return this._client.delete(je`/threads/${s}/messages/${t}`,{...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class tS extends et{retrieve(t,n,r){const{thread_id:s,run_id:o,...a}=n;return this._client.get(je`/threads/${s}/runs/${o}/steps/${t}`,{query:a,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n,r){const{thread_id:s,...o}=n;return this._client.getAPIList(je`/threads/${s}/runs/${t}/steps`,qt,{query:o,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}const I1=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 au={};const zs=e=>{var t,n,r,s;if(typeof globalThis.process<"u")return((t=au==null?void 0:au[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 un,ms,fd,lr,dl,Kn,gs,Ks,ls,Ll,In,fl,hl,Ba,Oa,$a,im,lm,cm,um,dm,fm,hm;class Wa extends of{constructor(){super(...arguments),un.add(this),fd.set(this,[]),lr.set(this,{}),dl.set(this,{}),Kn.set(this,void 0),gs.set(this,void 0),Ks.set(this,void 0),ls.set(this,void 0),Ll.set(this,void 0),In.set(this,void 0),fl.set(this,void 0),hl.set(this,void 0),Ba.set(this,void 0)}[(fd=new WeakMap,lr=new WeakMap,dl=new WeakMap,Kn=new WeakMap,gs=new WeakMap,Ks=new WeakMap,ls=new WeakMap,Ll=new WeakMap,In=new WeakMap,fl=new WeakMap,hl=new WeakMap,Ba=new WeakMap,un=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,a)=>n.push({resolve:o,reject:a})).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 ms;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=pr.fromReadableStream(t,this.controller);for await(const a of s)se(this,un,"m",Oa).call(this,a);if((o=s.controller.signal)!=null&&o.aborted)throw new zn;return this._addRun(se(this,un,"m",$a).call(this))}toReadableStream(){return new pr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(t,n,r,s){const o=new ms;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 c;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const a={...r,stream:!0},i=await t.submitToolOutputs(n,a,{...s,signal:this.controller.signal});this._connected();for await(const d of i)se(this,un,"m",Oa).call(this,d);if((c=i.controller.signal)!=null&&c.aborted)throw new zn;return this._addRun(se(this,un,"m",$a).call(this))}static createThreadAssistantStream(t,n,r){const s=new ms;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 ms;return o._run(()=>o._runAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}currentEvent(){return se(this,fl,"f")}currentRun(){return se(this,hl,"f")}currentMessageSnapshot(){return se(this,Kn,"f")}currentRunStepSnapshot(){return se(this,Ba,"f")}async finalRunSteps(){return await this.done(),Object.values(se(this,lr,"f"))}async finalMessages(){return await this.done(),Object.values(se(this,dl,"f"))}async finalRun(){if(await this.done(),!se(this,gs,"f"))throw Error("Final run was not received.");return se(this,gs,"f")}async _createThreadAssistantStream(t,n,r){var i;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},a=await t.createAndRun(o,{...r,signal:this.controller.signal});this._connected();for await(const c of a)se(this,un,"m",Oa).call(this,c);if((i=a.controller.signal)!=null&&i.aborted)throw new zn;return this._addRun(se(this,un,"m",$a).call(this))}async _createAssistantStream(t,n,r,s){var c;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const a={...r,stream:!0},i=await t.create(n,a,{...s,signal:this.controller.signal});this._connected();for await(const d of i)se(this,un,"m",Oa).call(this,d);if((c=i.controller.signal)!=null&&c.aborted)throw new zn;return this._addRun(se(this,un,"m",$a).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(Qc(o)&&Qc(s))o=this.accumulateDelta(o,s);else if(Array.isArray(o)&&Array.isArray(s)){if(o.every(a=>typeof a=="string"||typeof a=="number")){o.push(...s);continue}for(const a of s){if(!Qc(a))throw new Error(`Expected array delta entry to be an object but got: ${a}`);const i=a.index;if(i==null)throw console.error(a),new Error("Expected array delta entry to have an `index` property");if(typeof i!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${i}`);const c=o[i];c==null?o.push(a):o[i]=this.accumulateDelta(c,a)}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)}}ms=Wa,Oa=function(t){if(!this.ended)switch(Ke(this,fl,t),se(this,un,"m",cm).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":se(this,un,"m",hm).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":se(this,un,"m",lm).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":se(this,un,"m",im).call(this,t);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},$a=function(){if(this.ended)throw new Ve("stream has ended, this shouldn't happen");if(!se(this,gs,"f"))throw Error("Final run has not been received");return se(this,gs,"f")},im=function(t){const[n,r]=se(this,un,"m",dm).call(this,t,se(this,Kn,"f"));Ke(this,Kn,n),se(this,dl,"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,a=n.content[s.index];if(a&&a.type=="text")this._emit("textDelta",o,a.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=se(this,Ks,"f")){if(se(this,ls,"f"))switch(se(this,ls,"f").type){case"text":this._emit("textDone",se(this,ls,"f").text,se(this,Kn,"f"));break;case"image_file":this._emit("imageFileDone",se(this,ls,"f").image_file,se(this,Kn,"f"));break}Ke(this,Ks,s.index)}Ke(this,ls,n.content[s.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(se(this,Ks,"f")!==void 0){const s=t.data.content[se(this,Ks,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,se(this,Kn,"f"));break;case"text":this._emit("textDone",s.text,se(this,Kn,"f"));break}}se(this,Kn,"f")&&this._emit("messageDone",t.data),Ke(this,Kn,void 0)}},lm=function(t){const n=se(this,un,"m",um).call(this,t);switch(Ke(this,Ba,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==se(this,Ll,"f")?this._emit("toolCallDelta",o,n.step_details.tool_calls[o.index]):(se(this,In,"f")&&this._emit("toolCallDone",se(this,In,"f")),Ke(this,Ll,o.index),Ke(this,In,n.step_details.tool_calls[o.index]),se(this,In,"f")&&this._emit("toolCallCreated",se(this,In,"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":Ke(this,Ba,void 0),t.data.step_details.type=="tool_calls"&&se(this,In,"f")&&(this._emit("toolCallDone",se(this,In,"f")),Ke(this,In,void 0)),this._emit("runStepDone",t.data,n);break}},cm=function(t){se(this,fd,"f").push(t),this._emit("event",t)},um=function(t){switch(t.event){case"thread.run.step.created":return se(this,lr,"f")[t.data.id]=t.data,t.data;case"thread.run.step.delta":let n=se(this,lr,"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=ms.accumulateDelta(n,r.delta);se(this,lr,"f")[t.data.id]=s}return se(this,lr,"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":se(this,lr,"f")[t.data.id]=t.data;break}if(se(this,lr,"f")[t.data.id])return se(this,lr,"f")[t.data.id];throw new Error("No snapshot available")},dm=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 a=n.content[o.index];n.content[o.index]=se(this,un,"m",fm).call(this,o,a)}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")},fm=function(t,n){return ms.accumulateDelta(n,t)},hm=function(t){switch(Ke(this,hl,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":Ke(this,gs,t.data),se(this,In,"f")&&(this._emit("toolCallDone",se(this,In,"f")),Ke(this,In,void 0));break}};let ff=class extends et{constructor(){super(...arguments),this.steps=new tS(this._client)}create(t,n,r){const{include:s,...o}=n;return this._client.post(je`/threads/${t}/runs`,{query:{include:s},body:o,...r,headers:Be([{"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(je`/threads/${s}/runs/${t}`,{...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(je`/threads/${s}/runs/${t}`,{body:o,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(je`/threads/${t}/runs`,qt,{query:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{thread_id:s}=n;return this._client.post(je`/threads/${s}/runs/${t}/cancel`,{...r,headers:Be([{"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 Wa.createAssistantStream(t,this._client.beta.threads.runs,n,r)}async poll(t,n,r){var o;const s=Be([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:a,response:i}=await this.retrieve(t,n,{...r,headers:{...r==null?void 0:r.headers,...s}}).withResponse();switch(a.status){case"queued":case"in_progress":case"cancelling":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=i.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await li(c);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return a}}}stream(t,n,r){return Wa.createAssistantStream(t,this._client.beta.threads.runs,n,r)}submitToolOutputs(t,n,r){const{thread_id:s,...o}=n;return this._client.post(je`/threads/${s}/runs/${t}/submit_tool_outputs`,{body:o,...r,headers:Be([{"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 Wa.createToolAssistantStream(t,this._client.beta.threads.runs,n,r)}};ff.Steps=tS;class nc extends et{constructor(){super(...arguments),this.runs=new ff(this._client),this.messages=new eS(this._client)}create(t={},n){return this._client.post("/threads",{body:t,...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(je`/threads/${t}`,{...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(je`/threads/${t}`,{body:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n){return this._client.delete(je`/threads/${t}`,{...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}createAndRun(t,n){return this._client.post("/threads/runs",{body:t,...n,headers:Be([{"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 Wa.createThreadAssistantStream(t,this._client.beta.threads,n)}}nc.Runs=ff;nc.Messages=eS;class di extends et{constructor(){super(...arguments),this.realtime=new tc(this._client),this.assistants=new Jb(this._client),this.threads=new nc(this._client)}}di.Realtime=tc;di.Assistants=Jb;di.Threads=nc;class nS extends et{create(t,n){return this._client.post("/completions",{body:t,...n,stream:t.stream??!1})}}let rS=class extends et{retrieve(t,n,r){const{container_id:s}=n;return this._client.get(je`/containers/${s}/files/${t}/content`,{...r,headers:Be([{Accept:"application/binary"},r==null?void 0:r.headers]),__binaryResponse:!0})}},hf=class extends et{constructor(){super(...arguments),this.content=new rS(this._client)}create(t,n,r){return this._client.post(je`/containers/${t}/files`,_s({body:n,...r},this._client))}retrieve(t,n,r){const{container_id:s}=n;return this._client.get(je`/containers/${s}/files/${t}`,r)}list(t,n={},r){return this._client.getAPIList(je`/containers/${t}/files`,qt,{query:n,...r})}delete(t,n,r){const{container_id:s}=n;return this._client.delete(je`/containers/${s}/files/${t}`,{...r,headers:Be([{Accept:"*/*"},r==null?void 0:r.headers])})}};hf.Content=rS;class pf extends et{constructor(){super(...arguments),this.files=new hf(this._client)}create(t,n){return this._client.post("/containers",{body:t,...n})}retrieve(t,n){return this._client.get(je`/containers/${t}`,n)}list(t={},n){return this._client.getAPIList("/containers",qt,{query:t,...n})}delete(t,n){return this._client.delete(je`/containers/${t}`,{...n,headers:Be([{Accept:"*/*"},n==null?void 0:n.headers])})}}pf.Files=hf;class sS extends et{create(t,n){const r=!!t.encoding_format;let s=r?t.encoding_format:"base64";r&&cn(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:(cn(this._client).debug("embeddings/decoding base64 embeddings from base64"),o._thenUnwrap(a=>(a&&a.data&&a.data.forEach(i=>{const c=i.embedding;i.embedding=I1(c)}),a)))}}class oS extends et{retrieve(t,n,r){const{eval_id:s,run_id:o}=n;return this._client.get(je`/evals/${s}/runs/${o}/output_items/${t}`,r)}list(t,n,r){const{eval_id:s,...o}=n;return this._client.getAPIList(je`/evals/${s}/runs/${t}/output_items`,qt,{query:o,...r})}}class mf extends et{constructor(){super(...arguments),this.outputItems=new oS(this._client)}create(t,n,r){return this._client.post(je`/evals/${t}/runs`,{body:n,...r})}retrieve(t,n,r){const{eval_id:s}=n;return this._client.get(je`/evals/${s}/runs/${t}`,r)}list(t,n={},r){return this._client.getAPIList(je`/evals/${t}/runs`,qt,{query:n,...r})}delete(t,n,r){const{eval_id:s}=n;return this._client.delete(je`/evals/${s}/runs/${t}`,r)}cancel(t,n,r){const{eval_id:s}=n;return this._client.post(je`/evals/${s}/runs/${t}`,r)}}mf.OutputItems=oS;class gf extends et{constructor(){super(...arguments),this.runs=new mf(this._client)}create(t,n){return this._client.post("/evals",{body:t,...n})}retrieve(t,n){return this._client.get(je`/evals/${t}`,n)}update(t,n,r){return this._client.post(je`/evals/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/evals",qt,{query:t,...n})}delete(t,n){return this._client.delete(je`/evals/${t}`,n)}}gf.Runs=mf;let aS=class extends et{create(t,n){return this._client.post("/files",_s({body:t,...n},this._client))}retrieve(t,n){return this._client.get(je`/files/${t}`,n)}list(t={},n){return this._client.getAPIList("/files",qt,{query:t,...n})}delete(t,n){return this._client.delete(je`/files/${t}`,n)}content(t,n){return this._client.get(je`/files/${t}/content`,{...n,headers:Be([{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 a=await this.retrieve(t);for(;!a.status||!s.has(a.status);)if(await li(n),a=await this.retrieve(t),Date.now()-o>r)throw new rf({message:`Giving up on waiting for file ${t} to finish processing after ${r} milliseconds.`});return a}};class iS extends et{}let lS=class extends et{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 yf extends et{constructor(){super(...arguments),this.graders=new lS(this._client)}}yf.Graders=lS;class cS extends et{create(t,n,r){return this._client.getAPIList(je`/fine_tuning/checkpoints/${t}/permissions`,ec,{body:n,method:"post",...r})}retrieve(t,n={},r){return this._client.get(je`/fine_tuning/checkpoints/${t}/permissions`,{query:n,...r})}delete(t,n,r){const{fine_tuned_model_checkpoint:s}=n;return this._client.delete(je`/fine_tuning/checkpoints/${s}/permissions/${t}`,r)}}let vf=class extends et{constructor(){super(...arguments),this.permissions=new cS(this._client)}};vf.Permissions=cS;class uS extends et{list(t,n={},r){return this._client.getAPIList(je`/fine_tuning/jobs/${t}/checkpoints`,qt,{query:n,...r})}}class bf extends et{constructor(){super(...arguments),this.checkpoints=new uS(this._client)}create(t,n){return this._client.post("/fine_tuning/jobs",{body:t,...n})}retrieve(t,n){return this._client.get(je`/fine_tuning/jobs/${t}`,n)}list(t={},n){return this._client.getAPIList("/fine_tuning/jobs",qt,{query:t,...n})}cancel(t,n){return this._client.post(je`/fine_tuning/jobs/${t}/cancel`,n)}listEvents(t,n={},r){return this._client.getAPIList(je`/fine_tuning/jobs/${t}/events`,qt,{query:n,...r})}pause(t,n){return this._client.post(je`/fine_tuning/jobs/${t}/pause`,n)}resume(t,n){return this._client.post(je`/fine_tuning/jobs/${t}/resume`,n)}}bf.Checkpoints=uS;class uo extends et{constructor(){super(...arguments),this.methods=new iS(this._client),this.jobs=new bf(this._client),this.checkpoints=new vf(this._client),this.alpha=new yf(this._client)}}uo.Methods=iS;uo.Jobs=bf;uo.Checkpoints=vf;uo.Alpha=yf;class dS extends et{}class Sf extends et{constructor(){super(...arguments),this.graderModels=new dS(this._client)}}Sf.GraderModels=dS;class fS extends et{createVariation(t,n){return this._client.post("/images/variations",_s({body:t,...n},this._client))}edit(t,n){return this._client.post("/images/edits",_s({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 hS extends et{retrieve(t,n){return this._client.get(je`/models/${t}`,n)}list(t){return this._client.getAPIList("/models",ec,t)}delete(t,n){return this._client.delete(je`/models/${t}`,n)}}class pS extends et{create(t,n){return this._client.post("/moderations",{body:t,...n})}}function O1(e,t){return!t||!L1(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)}:mS(e,t)}function mS(e,t){const n=e.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:N1(t,s)};if(s.type==="message"){const o=s.content.map(a=>a.type==="output_text"?{...a,parsed:$1(t,a.text)}:a);return{...s,content:o}}return s}),r=Object.assign({},e,{output:n});return Object.getOwnPropertyDescriptor(e,"output_text")||hd(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 $1(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 L1(e){var t;return!!af((t=e.text)==null?void 0:t.format)}function D1(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function F1(e,t){return e.find(n=>n.type==="function"&&n.name===t)}function N1(e,t){const n=F1(e.tools??[],t.name);return{...t,...t,parsed_arguments:D1(n)?n.$parseRaw(t.arguments):n!=null&&n.strict?JSON.parse(t.arguments):null}}function hd(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 Bs,Vi,Fr,Gi,pm,mm,gm,ym;class wf extends of{constructor(t){super(),Bs.add(this),Vi.set(this,void 0),Fr.set(this,void 0),Gi.set(this,void 0),Ke(this,Vi,t)}static createResponse(t,n,r){const s=new wf(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 i;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),se(this,Bs,"m",pm).call(this);let o,a=null;"response_id"in n?(o=await t.responses.retrieve(n.response_id,{stream:!0},{...r,signal:this.controller.signal,stream:!0}),a=n.starting_after??null):o=await t.responses.create({...n,stream:!0},{...r,signal:this.controller.signal}),this._connected();for await(const c of o)se(this,Bs,"m",mm).call(this,c,a);if((i=o.controller.signal)!=null&&i.aborted)throw new zn;return se(this,Bs,"m",gm).call(this)}[(Vi=new WeakMap,Fr=new WeakMap,Gi=new WeakMap,Bs=new WeakSet,pm=function(){this.ended||Ke(this,Fr,void 0)},mm=function(n,r){if(this.ended)return;const s=(a,i)=>{(r==null||i.sequence_number>r)&&this._emit(a,i)},o=se(this,Bs,"m",ym).call(this,n);switch(s("event",n),n.type){case"response.output_text.delta":{const a=o.output[n.output_index];if(!a)throw new Ve(`missing output at index ${n.output_index}`);if(a.type==="message"){const i=a.content[n.content_index];if(!i)throw new Ve(`missing content at index ${n.content_index}`);if(i.type!=="output_text")throw new Ve(`expected content to be 'output_text', got ${i.type}`);s("response.output_text.delta",{...n,snapshot:i.text})}break}case"response.function_call_arguments.delta":{const a=o.output[n.output_index];if(!a)throw new Ve(`missing output at index ${n.output_index}`);a.type==="function_call"&&s("response.function_call_arguments.delta",{...n,snapshot:a.arguments});break}default:s(n.type,n);break}},gm=function(){if(this.ended)throw new Ve("stream has ended, this shouldn't happen");const n=se(this,Fr,"f");if(!n)throw new Ve("request ended without sending any events");Ke(this,Fr,void 0);const r=z1(n,se(this,Vi,"f"));return Ke(this,Gi,r),r},ym=function(n){let r=se(this,Fr,"f");if(!r){if(n.type!=="response.created")throw new Ve(`When snapshot hasn't been set yet, expected 'response.created' event, got ${n.type}`);return r=Ke(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 Ve(`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 Ve(`missing output at index ${n.output_index}`);if(s.type==="message"){const o=s.content[n.content_index];if(!o)throw new Ve(`missing content at index ${n.content_index}`);if(o.type!=="output_text")throw new Ve(`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 Ve(`missing output at index ${n.output_index}`);s.type==="function_call"&&(s.arguments+=n.delta);break}case"response.completed":{Ke(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,a)=>n.push({resolve:o,reject:a})).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=se(this,Gi,"f");if(!t)throw new Ve("stream ended without producing a ChatCompletion");return t}}function z1(e,t){return O1(e,t)}class gS extends et{list(t,n={},r){return this._client.getAPIList(je`/responses/${t}/input_items`,qt,{query:n,...r})}}class xf extends et{constructor(){super(...arguments),this.inputItems=new gS(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"&&hd(r),r))}retrieve(t,n={},r){return this._client.get(je`/responses/${t}`,{query:n,...r,stream:(n==null?void 0:n.stream)??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&hd(s),s))}delete(t,n){return this._client.delete(je`/responses/${t}`,{...n,headers:Be([{Accept:"*/*"},n==null?void 0:n.headers])})}parse(t,n){return this._client.responses.create(t,n)._thenUnwrap(r=>mS(r,t))}stream(t,n){return wf.createResponse(this._client,t,n)}cancel(t,n){return this._client.post(je`/responses/${t}/cancel`,n)}}xf.InputItems=gS;class yS extends et{create(t,n,r){return this._client.post(je`/uploads/${t}/parts`,_s({body:n,...r},this._client))}}class _f extends et{constructor(){super(...arguments),this.parts=new yS(this._client)}create(t,n){return this._client.post("/uploads",{body:t,...n})}cancel(t,n){return this._client.post(je`/uploads/${t}/cancel`,n)}complete(t,n,r){return this._client.post(je`/uploads/${t}/complete`,{body:n,...r})}}_f.Parts=yS;const B1=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 vS extends et{create(t,n,r){return this._client.post(je`/vector_stores/${t}/file_batches`,{body:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(je`/vector_stores/${s}/file_batches/${t}`,{...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{vector_store_id:s}=n;return this._client.post(je`/vector_stores/${s}/file_batches/${t}/cancel`,{...r,headers:Be([{"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(je`/vector_stores/${s}/file_batches/${t}/files`,qt,{query:o,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async poll(t,n,r){var o;const s=Be([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:a,response:i}=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse();switch(a.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=i.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await li(c);break;case"failed":case"cancelled":case"completed":return a}}}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,a=Math.min(o,n.length),i=this._client,c=n.values(),d=[...r];async function f(v){for(let g of v){const w=await i.files.create({file:g,purpose:"assistants"},s);d.push(w.id)}}const p=Array(a).fill(c).map(f);return await B1(p),await this.createAndPoll(t,{file_ids:d})}}class bS extends et{create(t,n,r){return this._client.post(je`/vector_stores/${t}/files`,{body:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(je`/vector_stores/${s}/files/${t}`,{...r,headers:Be([{"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(je`/vector_stores/${s}/files/${t}`,{body:o,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(je`/vector_stores/${t}/files`,qt,{query:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{vector_store_id:s}=n;return this._client.delete(je`/vector_stores/${s}/files/${t}`,{...r,headers:Be([{"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=Be([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 a=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse(),i=a.data;switch(i.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=a.response.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await li(c);break;case"failed":case"completed":return i}}}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(je`/vector_stores/${s}/files/${t}/content`,ec,{...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class rc extends et{constructor(){super(...arguments),this.files=new bS(this._client),this.fileBatches=new vS(this._client)}create(t,n){return this._client.post("/vector_stores",{body:t,...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(je`/vector_stores/${t}`,{...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(je`/vector_stores/${t}`,{body:n,...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/vector_stores",qt,{query:t,...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(je`/vector_stores/${t}`,{...n,headers:Be([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}search(t,n,r){return this._client.getAPIList(je`/vector_stores/${t}/search`,ec,{body:n,method:"post",...r,headers:Be([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}rc.Files=bS;rc.FileBatches=vS;var qs,SS,pl;class wS extends et{constructor(){super(...arguments),qs.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");se(this,qs,"m",SS).call(this,r);const o=Be([n]).values,a=se(this,qs,"m",pl).call(this,o,"webhook-signature"),i=se(this,qs,"m",pl).call(this,o,"webhook-timestamp"),c=se(this,qs,"m",pl).call(this,o,"webhook-id"),d=parseInt(i,10);if(isNaN(d))throw new Pa("Invalid webhook timestamp format");const f=Math.floor(Date.now()/1e3);if(f-d>s)throw new Pa("Webhook timestamp is too old");if(d>f+s)throw new Pa("Webhook timestamp is too new");const p=a.split(" ").map(m=>m.startsWith("v1,")?m.substring(3):m),v=r.startsWith("whsec_")?Buffer.from(r.replace("whsec_",""),"base64"):Buffer.from(r,"utf-8"),g=c?`${c}.${i}.${t}`:`${i}.${t}`,w=await crypto.subtle.importKey("raw",v,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(const m of p)try{const x=Buffer.from(m,"base64");if(await crypto.subtle.verify("HMAC",w,x,new TextEncoder().encode(g)))return}catch{continue}throw new Pa("The given webhook signature does not match the expected signature")}}qs=new WeakSet,SS=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")},pl=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 pd,Cf,ml,xS;class it{constructor({baseURL:t=zs("OPENAI_BASE_URL"),apiKey:n=zs("OPENAI_API_KEY"),organization:r=zs("OPENAI_ORG_ID")??null,project:s=zs("OPENAI_PROJECT_ID")??null,webhookSecret:o=zs("OPENAI_WEBHOOK_SECRET")??null,...a}={}){if(pd.add(this),ml.set(this,void 0),this.completions=new nS(this),this.chat=new df(this),this.embeddings=new sS(this),this.files=new aS(this),this.images=new fS(this),this.audio=new ui(this),this.moderations=new pS(this),this.models=new hS(this),this.fineTuning=new uo(this),this.graders=new Sf(this),this.vectorStores=new rc(this),this.webhooks=new wS(this),this.beta=new di(this),this.batches=new Gb(this),this.uploads=new _f(this),this.responses=new xf(this),this.evals=new gf(this),this.containers=new pf(this),n===void 0)throw new Ve("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 i={apiKey:n,organization:r,project:s,webhookSecret:o,...a,baseURL:t||"https://api.openai.com/v1"};if(!i.dangerouslyAllowBrowser&&Wj())throw new Ve(`It looks like you're running in a browser-like environment.
227
+
228
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
229
+ If you understand the risks and have appropriate mitigations in place,
230
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
231
+
232
+ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
233
+
234
+ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
235
+ `);this.baseURL=i.baseURL,this.timeout=i.timeout??Cf.DEFAULT_TIMEOUT,this.logger=i.logger??console;const c="warn";this.logLevel=c,this.logLevel=tm(i.logLevel,"ClientOptions.logLevel",this)??tm(zs("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??Yj(),Ke(this,ml,Vj),this._options=i,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 Be([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(t){return t1(t,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Ws}`}defaultIdempotencyKey(){return`stainless-node-retry-${eb()}`}makeStatusError(t,n,r,s){return fn.generate(t,n,r,s)}buildURL(t,n,r){const s=!se(this,pd,"m",xS).call(this)&&r||this.baseURL,o=Lj(t)?new URL(t):new URL(s+(s.endsWith("/")&&t.startsWith("/")?t.slice(1):t)),a=this.defaultQuery();return Fj(a)||(n={...a,...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 Zl(this,this.makeRequest(t,n,void 0))}async makeRequest(t,n,r){var k,C;const s=await t,o=s.maxRetries??this.maxRetries;n==null&&(n=o),await this.prepareOptions(s);const{req:a,url:i,timeout:c}=await this.buildRequest(s,{retryCount:o-n});await this.prepareRequest(a,{url:i,options:s});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),f=r===void 0?"":`, retryOf: ${r}`,p=Date.now();if(cn(this).debug(`[${d}] sending request`,ss({retryOfRequestLogID:r,method:s.method,url:i,options:s,headers:a.headers})),(k=s.signal)!=null&&k.aborted)throw new zn;const v=new AbortController,g=await this.fetchWithTimeout(i,a,c,v).catch(rd),w=Date.now();if(g instanceof Error){const E=`retrying, ${n} attempts remaining`;if((C=s.signal)!=null&&C.aborted)throw new zn;const T=nd(g)||/timed? ?out/i.test(String(g)+("cause"in g?String(g.cause):""));if(n)return cn(this).info(`[${d}] connection ${T?"timed out":"failed"} - ${E}`),cn(this).debug(`[${d}] connection ${T?"timed out":"failed"} (${E})`,ss({retryOfRequestLogID:r,url:i,durationMs:w-p,message:g.message})),this.retryRequest(s,n,r??d);throw cn(this).info(`[${d}] connection ${T?"timed out":"failed"} - error; no more retries left`),cn(this).debug(`[${d}] connection ${T?"timed out":"failed"} (error; no more retries left)`,ss({retryOfRequestLogID:r,url:i,durationMs:w-p,message:g.message})),T?new rf:new Jl({cause:g})}const m=[...g.headers.entries()].filter(([E])=>E==="x-request-id").map(([E,T])=>", "+E+": "+JSON.stringify(T)).join(""),x=`[${d}${f}${m}] ${a.method} ${i} ${g.ok?"succeeded":"failed"} with status ${g.status} in ${w-p}ms`;if(!g.ok){const E=await this.shouldRetry(g);if(n&&E){const U=`retrying, ${n} attempts remaining`;return await Kj(g.body),cn(this).info(`${x} - ${U}`),cn(this).debug(`[${d}] response error (${U})`,ss({retryOfRequestLogID:r,url:g.url,status:g.status,headers:g.headers,durationMs:w-p})),this.retryRequest(s,n,r??d,g.headers)}const T=E?"error; no more retries left":"error; not retryable";cn(this).info(`${x} - ${T}`);const P=await g.text().catch(U=>rd(U).message),A=Bj(P),O=A?void 0:P;throw cn(this).debug(`[${d}] response error (${T})`,ss({retryOfRequestLogID:r,url:g.url,status:g.status,headers:g.headers,message:O,durationMs:Date.now()-p})),this.makeStatusError(g.status,A,O,g.headers)}return cn(this).info(x),cn(this).debug(`[${d}] response start`,ss({retryOfRequestLogID:r,url:g.url,status:g.status,headers:g.headers,durationMs:w-p})),{response:g,options:s,controller:v,requestLogID:d,retryOfRequestLogID:r,startTime:p}}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 u1(this,r,t)}async fetchWithTimeout(t,n,r,s){const{signal:o,method:a,...i}=n||{};o&&o.addEventListener("abort",()=>s.abort());const c=setTimeout(()=>s.abort(),r),d=globalThis.ReadableStream&&i.body instanceof globalThis.ReadableStream||typeof i.body=="object"&&i.body!==null&&Symbol.asyncIterator in i.body,f={signal:s.signal,...d?{duplex:"half"}:{},method:"GET",...i};a&&(f.method=a.toUpperCase());try{return await this.fetch.call(void 0,t,f)}finally{clearTimeout(c)}}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 a=s==null?void 0:s.get("retry-after-ms");if(a){const c=parseFloat(a);Number.isNaN(c)||(o=c)}const i=s==null?void 0:s.get("retry-after");if(i&&!o){const c=parseFloat(i);Number.isNaN(c)?o=Date.parse(i)-Date.now():o=c*1e3}if(!(o&&0<=o&&o<60*1e3)){const c=t.maxRetries??this.maxRetries;o=this.calculateDefaultRetryTimeoutMillis(n,c)}return await li(o),this.makeRequest(t,n-1,r)}calculateDefaultRetryTimeoutMillis(t,n){const o=n-t,a=Math.min(.5*Math.pow(2,o),8),i=1-Math.random()*.25;return a*i*1e3}async buildRequest(t,{retryCount:n=0}={}){const r={...t},{method:s,path:o,query:a,defaultBaseURL:i}=r,c=this.buildURL(o,a,i);"timeout"in r&&zj("timeout",r.timeout),r.timeout=r.timeout??this.timeout;const{bodyHeaders:d,body:f}=this.buildBody({options:r}),p=await this.buildHeaders({options:t,method:s,bodyHeaders:d,retryCount:n});return{req:{method:s,headers:p,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&f instanceof globalThis.ReadableStream&&{duplex:"half"},...f&&{body:f},...this.fetchOptions??{},...r.fetchOptions??{}},url:c,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 a=Be([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))}:{},...Xj(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(t),this._options.defaultHeaders,r,t.headers]);return this.validateHeaders(a),a.values}buildBody({options:{body:t,headers:n}}){if(!t)return{bodyHeaders:void 0,body:void 0};const r=Be([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:fb(t)}:se(this,ml,"f").call(this,{body:t,headers:r})}}Cf=it,ml=new WeakMap,pd=new WeakSet,xS=function(){return this.baseURL!=="https://api.openai.com/v1"};it.OpenAI=Cf;it.DEFAULT_TIMEOUT=6e5;it.OpenAIError=Ve;it.APIError=fn;it.APIConnectionError=Jl;it.APIConnectionTimeoutError=rf;it.APIUserAbortError=zn;it.NotFoundError=sb;it.ConflictError=ob;it.RateLimitError=ib;it.BadRequestError=tb;it.AuthenticationError=nb;it.InternalServerError=lb;it.PermissionDeniedError=rb;it.UnprocessableEntityError=ab;it.InvalidWebhookSignatureError=Pa;it.toFile=g1;it.Completions=nS;it.Chat=df;it.Embeddings=sS;it.Files=aS;it.Images=fS;it.Audio=ui;it.Moderations=pS;it.Models=hS;it.FineTuning=uo;it.Graders=Sf;it.VectorStores=rc;it.Webhooks=wS;it.Beta=di;it.Batches=Gb;it.Uploads=_f;it.Responses=xf;it.Evals=gf;it.Containers=pf;let Ji=null,iu=null;const W1=()=>{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`},U1=()=>{const e=W1();return Ji?iu!==e&&(Ji=new it({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),iu=e):(Ji=new it({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),iu=e),Ji},_S=e=>{const t=e.match(/```mermaid\s*([\s\S]*?)```/i);return t?t[1].trim():e.trim()},q1=(e,t,n)=>{const r=t.trim(),s=_S(n),o=/```mermaid\s*([\s\S]*?)```/gi;let a=!1;const i=e.replace(o,(d,f)=>a||f.trim()!==r?d:(a=!0,`\`\`\`mermaid
236
+ ${s}
237
+ \`\`\``));return a?i:e.match(o)?e.replace(o,d=>a?d:(a=!0,`\`\`\`mermaid
238
+ ${s}
239
+ \`\`\``)):null},vm="_text",Dl=e=>!!(e&&e.role==="assistant"&&"type"in e&&e.type==="text"),bm=(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(vm)){const o=e.slice(0,-vm.length);if(o&&n.some(a=>a.id===o))return o}return e},H1=(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},X1=e=>(e instanceof Error?e.message:String(e)).toLowerCase().includes("message not found"),Y1=(e,t,n,r)=>{const s=e.find(o=>o.id===t);return Dl(s)?s:e.find(o=>Dl(o)&&(o.content===n||H1(o.content,r)))},K1=(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(`
240
+ `)},V1=async(e,t,n)=>{var i,c,d;const r=t==null?void 0:t.trim();if(!r)throw new Error("No model configured. Please select a default model in Provider Settings.");const a=((d=(c=(i=(await U1().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:K1(e,n)}],temperature:0})).choices)==null?void 0:i[0])==null?void 0:c.message)==null?void 0:d.content)??"";return _S(a)},G1=(e,t)=>{const n=VT(),r=GT(),s=(r==null?void 0:r.model)??n;return S.useCallback(async(o,a)=>{const i=Z.getState(),c=t??i.currentSessionId,d=i.chats.find(C=>C.id===c);if(!c||!d)throw new Error("No active chat available");const f=d.messages.find(C=>C.id===e);if(!Dl(f))throw new Error("Mermaid fix is only available for assistant text messages");const p=await V1(o,s,a);if(!p)throw new Error("AI did not return a Mermaid fix");const v=q1(f.content,o,p);if(!v)throw new Error("Unable to locate Mermaid block to update");let g=bm(e,f,d.messages);try{await Vs.patchSessionMessage(c,g,{content:v})}catch(C){if(!X1(C))throw C;await i.loadChatHistory(c,{mode:"replace",retries:2,retryDelayMs:150,waitForAssistant:!0});const T=Z.getState().chats.find(A=>A.id===c);if(!T)throw C;const P=Y1(T.messages,e,f.content,o);if(!P)throw C;g=bm(P.id,P,T.messages),await Vs.patchSessionMessage(c,g,{content:v})}const w=Z.getState(),m=w.chats.find(C=>C.id===c);if(!m)throw new Error("No active chat available");const x=new Set([e,g]),k=m.messages.map(C=>!x.has(C.id)||!Dl(C)?C:{...C,content:v});w.updateSession(c,{messages:k})},[e,t,s])},J1=e=>e.xs?"100%":e.sm?"95%":"800px",Q1=[{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:"}],Z1=({messageId:e,isVisible:t,onRetryWithVariation:n})=>{const{t:r}=qe(),[s,o]=S.useState(null),[a,i]=S.useState(!1),c=S.useCallback(()=>{o(g=>g==="like"?null:"like"),i(!1)},[]),d=S.useCallback(()=>{o(g=>{const w=g==="dislike"?null:"dislike";return i(w==="dislike"),w})},[]),f=S.useCallback(g=>{n&&n(g.prefix)},[n]),v=["lotus-msg-feedback",t?"is-visible":"",s!==null?"has-rating":""].filter(Boolean).join(" ");return l.jsxs("div",{className:v,"data-message-id":e,children:[l.jsx(dn,{title:r("feedback.helpful","Helpful"),children:l.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="like"?"is-liked":""}`,onClick:c,"aria-label":r("feedback.helpful","Helpful"),children:s==="like"?l.jsx(tx,{}):l.jsx(nx,{})})}),l.jsx(dn,{title:r("feedback.notHelpful","Not helpful"),children:l.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="dislike"?"is-disliked":""}`,onClick:d,"aria-label":r("feedback.notHelpful","Not helpful"),children:s==="dislike"?l.jsx(rx,{}):l.jsx(sx,{})})}),a&&n&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"lotus-msg-feedback-sep"}),l.jsx("span",{className:"lotus-msg-feedback-retry",children:Q1.map(g=>l.jsx(Ye,{color:g.color,bordered:!1,className:"lotus-msg-feedback-retry-tag",onClick:()=>f(g),children:r(g.labelKey,g.fallbackLabel)},g.key))})]})]})},{useToken:eI}=st,{useBreakpoint:tI}=zl,nI="chat-send-message",rI=({sessionId:e,message:t,onDelete:n,messageType:r})=>{const{role:s,id:o}=t,{token:a}=eI(),i=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:c}=qe(),{message:d}=Tn.useApp(),f=tI(),p=Z(le=>le.updateSession),v=Z(le=>le.loadChatHistory),g=Z(le=>le.refreshChats),w=S.useRef(null),[m,x]=S.useState(!1),k=Z(si(e)),C=S.useCallback(le=>typeof window>"u"?Promise.reject(new Error("window is unavailable")):new Promise((de,pe)=>{const Ae={content:le,sessionId:e,handled:!1,resolve:de,reject:pe};window.dispatchEvent(new CustomEvent(nI,{detail:Ae})),Ae.handled||pe(new Error("No chat message dispatcher available"))}),[e]),E=S.useMemo(()=>{if(!t.createdAt)return null;const le=new Date(t.createdAt);if(Number.isNaN(le.getTime()))return null;try{return YM(le,"MMM d, yyyy HH:mm")}catch{return le.toLocaleString()}},[t.createdAt]),T=S.useMemo(()=>xj(t,r),[t,r]),P=S.useMemo(()=>_j(t,T),[t,T]),A=S.useMemo(()=>Cj(t,T),[t,T]),O=S.useMemo(()=>Qv(t),[t]),$=G1(o,e),U=S.useCallback(async le=>{var de;if(!e||!o){d.warning(c("chat.messageActions.cannotRestore"));return}try{const pe=await Vs.restoreSessionState(e,{target_message_id:o,restore_files:le});await v(e,{mode:"replace"}),await g();const Ae=((de=pe.file_errors)==null?void 0:de.length)??0;if(Ae>0){d.warning(c("chat.messageActions.restorePartial",{count:Ae}));return}le?d.success(c("chat.messageActions.restoreFilesSuccess",{count:pe.messages_removed})):d.success(c("chat.messageActions.restoreSuccess",{count:pe.messages_removed}))}catch(pe){const Ae=pe instanceof Error?pe.message:c("chat.messageActions.restoreFailed");d.error(Ae)}},[d,e,v,o,g,c]),J=S.useCallback(()=>{U(!1)},[U]),ee=S.useCallback(()=>{U(!0)},[U]),{contextMenuItems:I,handleMouseUp:Y,copyToClipboard:z,referenceMessage:D}=Ij({messageText:O,messageId:o,currentSessionId:e,onDelete:n,onRestoreChat:J,onRestoreFilesAndChat:ee,cardRef:w}),ie=S.useMemo(()=>s==="user"&&O.startsWith("/"),[s,O]),Q=S.useMemo(()=>Xv(void 0,{onFixMermaid:$}),[$]),ue=S.useMemo(()=>[Sd,wd],[]),me=S.useMemo(()=>[bd],[]),V=S.useMemo(()=>[eR(()=>z(O),c("chat.actions.copyMessage")),tR(D,c("chat.actions.referenceMessage"))],[O,z,D,c]),{handleExecutePlan:ae,handleRefinePlan:ve,handleQuestionAnswer:re}=Oj({currentSessionId:e,updateSession:p,sendMessage:C});return T==="plan"&&P&&s==="assistant"?l.jsx(_v,{plan:P,contextId:e||"",onExecute:ae,onRefine:ve,timestamp:E??void 0}):T==="question"&&A&&s==="assistant"?l.jsx(Cv,{question:A,contextId:e||"",onAnswer:re,disabled:k||!1,timestamp:E??void 0}):oR(t)?l.jsx(hR,{taskList:t.taskList}):sR(t)?(ke("[MessageCard]","[MessageCard] Rendering FileReferenceCard for message:",t.id,"paths:",t.paths),l.jsx(we,{justify:"flex-end",style:{width:"100%"},children:l.jsx(kv,{paths:t.paths,displayText:t.displayText,timestamp:E??void 0})})):l.jsxs(we,{vertical:!0,onContextMenu:le=>Y(le),style:{width:"100%"},children:[l.jsx(Zs,{menu:{items:I},trigger:["contextMenu"],children:l.jsx(Bt,{"data-testid":s==="assistant"?"assistant-message":"user-message",id:o?`message-${o}`:void 0,ref:w,style:{width:"100%",minWidth:"100%",maxWidth:J1(f),margin:"0 auto",background:s==="user"?"var(--lotus-message-user-bg)":s==="assistant"?"var(--lotus-message-assistant-bg)":a.colorBgContainer,backdropFilter:i?"none":"blur(14px)",WebkitBackdropFilter:i?"none":"blur(14px)",border:s==="user"?"1px solid var(--lotus-message-user-border)":"1px solid var(--lotus-glass-border-subtle)",borderRadius:a.borderRadiusLG,boxShadow:m?"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:m?"translateY(-2px) scale(1.002)":"none",overflow:"hidden"},styles:{body:{padding:a.paddingMD}},onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),children:l.jsxs(ze,{direction:"vertical",size:a.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(Sj,{role:s,formattedTimestamp:E,token:a}),t.role==="user"&&t.images&&l.jsx(GM,{images:t.images}),l.jsx(we,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:l.jsx(bj,{sessionId:e,message:t,messageText:O,isUserToolCall:ie,formatUserToolCall:kj,markdownComponents:Q,markdownPlugins:ue,rehypePlugins:me})}),l.jsx(ZM,{isVisible:m,position:{bottom:a.paddingXS,right:a.paddingXS},buttons:V})]})})}),s==="assistant"&&T==="text"&&o&&l.jsx(Z1,{messageId:o,isVisible:m})]})},CS=S.memo(rI,(e,t)=>e.message===t.message&&e.messageType===t.messageType&&e.onDelete===t.onDelete&&e.sessionId===t.sessionId);CS.displayName="MessageCard";const sI=({key:e,atomFamily:t,store:n,emptyState:r})=>{const s=S.useMemo(()=>e?t(e):null,[t,e]),[o,a]=S.useState(()=>Bu(n,t,e,r));return S.useEffect(()=>{if(a(Bu(n,t,e,r)),!s||!e)return;let i=null,c=n.get(s);const d=n.sub(s,()=>{c=n.get(s),i===null&&(i=requestAnimationFrame(()=>{a(c),i=null}))});return()=>{d(),i!==null&&cancelAnimationFrame(i)}},[t,r,e,s,n]),o},oI=e=>{const t=Bn(e);return sI({key:t,atomFamily:Xl,store:Hl,emptyState:Gy})},{Text:Ua}=ot,{useToken:aI}=st,La=8,lu=4,iI=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"]),lI=(e,t)=>l.jsx(Bt,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto",marginBottom:La,background:t.colorBgContainer,borderColor:t.colorBorder},children:l.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:l.jsx("code",{style:{color:t.colorText},children:e})})}),cI=e=>({p:({children:t})=>l.jsx(Ua,{style:{marginBottom:La,display:"block"},children:t}),ol:({children:t})=>l.jsx("ol",{style:{marginBottom:La,paddingLeft:20},children:t}),ul:({children:t})=>l.jsx("ul",{style:{marginBottom:La,paddingLeft:20},children:t}),li:({children:t})=>l.jsx("li",{style:{marginBottom:lu},children:t}),code({className:t,children:n,inline:r,...s}){const o=/language-([^\s]+)/i.exec(t||""),a=o?o[1]:"",i=r??(!o&&!t),c=n?String(n).replace(/\n$/,""):"";if(i)return l.jsx(Ua,{code:!0,className:t,...s,children:n});if(!c.trim())return null;const d=a.toLowerCase();return iI.has(d)?lI(c,e):qv(a,c,void 0,void 0)},pre:({children:t})=>l.jsx(l.Fragment,{children:t}),blockquote:({children:t})=>l.jsx(Bt,{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:`${lu}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?l.jsx("a",{href:r,target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),Hv(r)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:t}):l.jsx(l.Fragment,{children:t})},table:({children:t})=>l.jsx(Bt,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${La}px 0`},children:l.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:`1px solid ${e.colorBorder}`},children:t})}),thead:({children:t})=>l.jsx("thead",{style:{backgroundColor:e.colorFillTertiary,color:e.colorText},children:t}),tbody:({children:t})=>l.jsx("tbody",{children:t}),tr:({children:t})=>l.jsx("tr",{style:{borderBottom:`1px solid ${e.colorBorderSecondary}`},children:t}),th:({children:t})=>l.jsx("th",{style:{padding:"4px 8px",textAlign:"left",fontWeight:"bold",color:e.colorText,borderRight:`1px solid ${e.colorBorder}`},children:t}),td:({children:t})=>l.jsx("td",{style:{padding:"4px 8px",borderRight:`1px solid ${e.colorBorder}`},children:t}),input:({type:t,checked:n,disabled:r})=>t==="checkbox"?l.jsx("input",{type:"checkbox",checked:n,disabled:r,style:{marginRight:lu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:t,checked:n,disabled:r})}),kS=S.memo(({sessionId:e})=>{const{token:t}=aI(),n=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:r}=qe(),s=`streaming-status-${e}`,o=oI(e),a=o.content,i=o.reasoningContent,[c,d]=S.useState(()=>Et.getLatest(s)??"");S.useEffect(()=>{let w=null,m=null;const x=Et.subscribeMessage(s,k=>{m=k,w===null&&(w=requestAnimationFrame(()=>{d(m??""),w=null}))});return()=>{x(),w!==null&&cancelAnimationFrame(w)}},[s]);const f=S.useMemo(()=>{const w=c.trim().toLowerCase();if(!w)return r("chat.messageCard.assistantThinking");if(w==="context_compacting")return r("chat.messageCard.assistantCompactingContext");if(w==="context_compaction_degraded")return r("chat.messageCard.assistantCompactingContextDegraded");if(w==="context_compaction_failed")return r("chat.messageCard.assistantCompactingContextFailed");if(w==="memory_updating")return r("chat.messageCard.assistantUpdatingMemory");if(w.startsWith("tool_running:")){const x=(w.slice(13).trim()||"tool").replace(/[_-]+/g," ");return r("chat.messageCard.assistantRunningTool",{tool:x})}return r("chat.messageCard.assistantThinking")},[c,r]),p=S.useMemo(()=>[Sd,wd],[]),v=S.useMemo(()=>[bd],[]),g=S.useMemo(()=>cI(t),[t]);return l.jsx(Bt,{"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:l.jsxs(ze,{direction:"vertical",size:t.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(we,{align:"baseline",justify:"space-between",gap:t.marginXS,children:l.jsx(Ua,{type:"secondary",strong:!0,style:{fontSize:t.fontSizeSM},children:r("chat.streaming.assistant")})}),l.jsxs(we,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:[i?l.jsx(ao,{size:"small",defaultActiveKey:["reasoning"],style:{marginBottom:t.marginSM,background:t.colorBgContainer,borderColor:t.colorBorderSecondary},items:[{key:"reasoning",label:l.jsx(Ua,{strong:!0,children:r("chat.messageCard.reasoning")}),children:l.jsx(hr,{remarkPlugins:p,rehypePlugins:v,components:g,children:i})}]}):null,!a||c?l.jsx(Ua,{italic:!0,className:"thinking-shimmer",children:f}):null,a?l.jsx(hr,{remarkPlugins:p,rehypePlugins:v,components:g,children:a}):null,l.jsx("span",{className:"blinking-cursor",style:{display:"inline-block",marginLeft:"0.2em",color:t.colorText}})]})]})})});kS.displayName="StreamingMessageCard";const{Text:Qi}=ot,uI="chat-session-tool-collapse:",TS=(e,t)=>`${uI}${e}:${t}`,Sm=(e,t)=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(TS(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}},dI=async(e,t,n)=>{if(typeof window>"u")return;await On.getInstance().saveToolSessionCollapse(e,t,n);try{window.localStorage.setItem(TS(e,t),JSON.stringify(n))}catch{}},fI="synthetic-tool-call:",hI=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(fI)&&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)},pI=e=>{const t=new Set;return e.forEach(n=>{hI(n).forEach(r=>t.add(r))}),Array.from(t)},mI=({tools:e,sessionId:t,defaultExpanded:n=!1,autoCollapseWhenStale:r=!1,onDeleteMessageIds:s})=>{const{t:o}=qe(),{token:a}=st.useToken(),i=S.useMemo(()=>{var O,$,U,J;const T=e[0],P=($=(O=T==null?void 0:T.call)==null?void 0:O.toolCalls)==null?void 0:$[0];return`${(T==null?void 0:T.callMessageId)||((U=T==null?void 0:T.call)==null?void 0:U.id)||(T==null?void 0:T.resultMessageId)||((J=T==null?void 0:T.result)==null?void 0:J.id)||"tool-message-missing"}:${(P==null?void 0:P.toolCallId)||"tool-call-missing"}`},[e]),[c,d]=S.useState(()=>{const T=Sm(t,i);return T?T.isExpanded:n});S.useEffect(()=>{const T=Sm(t,i);d(T?T.isExpanded:n),On.getInstance().loadToolSessionCollapse(t,i).then(A=>{A&&d(A.isExpanded)}).catch(()=>{})},[n,t,i]),S.useEffect(()=>{dI(t,i,{isExpanded:c,expandedTools:[]}).catch(()=>{})},[t,i,c]);const f=S.useRef(r);S.useEffect(()=>{!f.current&&r&&d(!1),f.current=r},[r]);const{completedCount:p,pendingCount:v,hasErrors:g}=S.useMemo(()=>{let T=0,P=0,A=!1;return e.forEach(O=>{O.result?(T++,O.result.isError&&(A=!0)):P++}),{completedCount:T,pendingCount:P,hasErrors:A}},[e]),w=S.useMemo(()=>v>0?{color:"processing",text:o("components.toolSession.completedProgress",{completed:p,total:e.length})}:g?{color:"warning",text:o("components.toolSession.completedWithErrors",{completed:p})}:{color:"success",text:o("components.toolSession.completedOnly",{completed:p})},[p,v,g,e.length,o]),m=S.useMemo(()=>{let T=0,P=0,A=0;return e.forEach(O=>{var J,ee;const $=(ee=(J=O.result)==null?void 0:J.result)==null?void 0:ee.result;if(!$)return;const U=Gd($);U&&(T+=U.added,P+=U.removed,A+=1)}),{added:T,removed:P,changedTools:A}},[e]),x=S.useMemo(()=>{const T=e.map(O=>{var J,ee;const $=(ee=(J=O.call)==null?void 0:J.toolCalls)==null?void 0:ee[0];if(!$)return null;const U=lo($.toolName);return U?U.toolName:$.toolName||null}).filter(O=>!!O);if(T.length===0)return o("components.toolSession.title");if(T.length===1)return T[0];const P=T.filter((O,$)=>$===0||O!==T[$-1]),A=3;return P.length<=A?P.join(" → "):`${P.slice(0,A).join(" → ")} +${P.length-A}`},[e,o]),k=S.useMemo(()=>pI(e),[e]),C=l.jsx(tf,{sessionId:t,tools:e,defaultExpanded:!0,hideHeader:!0}),E={background:"transparent"};return l.jsxs("div",{style:E,children:[l.jsxs("div",{style:{padding:`${a.paddingXS}px 0`,backgroundColor:"transparent",borderBottom:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:a.marginSM,transition:"border-color 240ms ease, background-color 240ms ease"},onClick:()=>d(!c),"data-testid":"tool-session-card-header",children:[l.jsx(Td,{style:{color:a.colorPrimary}}),l.jsx(Qi,{strong:!0,style:{flex:1},children:x}),l.jsx(ox,{count:e.length,style:{backgroundColor:a.colorPrimary}}),m.changedTools>0&&l.jsxs(ze,{size:4,style:{marginInlineStart:a.marginXS},children:[l.jsxs(Qi,{style:{color:a.colorSuccess,fontSize:a.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",m.added]}),l.jsxs(Qi,{style:{color:a.colorError,fontSize:a.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",m.removed]})]}),l.jsx(Qi,{type:"secondary",style:{fontSize:a.fontSizeSM},children:w.text}),s&&l.jsx(dn,{title:k.length>0?o("components.toolSession.deleteMessage"):o("components.toolSession.noPersistedMessage"),children:l.jsx(Ee,{type:"text",size:"small",danger:!0,icon:l.jsx(Fl,{}),"aria-label":o("components.toolSession.deleteMessage"),"data-testid":"delete-tool-session",disabled:k.length===0,onClick:T=>{T.preventDefault(),T.stopPropagation(),k.length!==0&&s(k)}})}),l.jsx("div",{style:{marginLeft:a.marginXS},children:c?l.jsx(eo,{style:{color:a.colorTextSecondary}}):l.jsx(bs,{style:{color:a.colorTextSecondary}})})]}),c&&C]})},PS=S.memo(mI);PS.displayName="ToolSessionCard";const{Content:gI}=Hs,{Text:wm}=ot,xm=120,yI=140,vI=220,bI=140,SI=72,_m=68,wI=84,xI=720,_I=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};function Cm(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:e.message.id}function CI(e,t){const n=e[t];if(!n)return xm;if("type"in n){if(n.type==="compression_divider")return SI;if(n.type==="tool_session"){if(!(t===e.length-1))return _m;const o=_m+Math.min(n.tools.length,8)*wI;return Math.min(xI,o)}}const r="message"in n?n.message:void 0;return r?r.role==="system"?bI:r.role==="user"?yI:vI:xm}const kI=({currentChat:e,currentSessionId:t,convertRenderableEntry:n,handleDeleteMessage:r,handleDeleteToolMessages:s,handleMessagesScroll:o,hasSystemPrompt:a,messagesListRef:i,bottomAnchorRef:c,renderableMessages:d,rowGap:f,showMessagesView:p,screens:v,workflowDraftId:g,isThinking:w,padding:m,selectionMode:x,selectedMessageIds:k,selectableMessageIds:C,onToggleMessageSelection:E})=>{const{t:T}=qe(),P=S.useRef(d);P.current=d;const A=S.useCallback(Y=>{const z=P.current[Y];return z?Cm(z):String(Y)},[]),O=S.useCallback(Y=>CI(P.current,Y),[]),$=IE({count:d.length,getScrollElement:()=>i.current,estimateSize:O,overscan:5,gap:f,getItemKey:A}),U=(Y,z)=>{if(!x)return null;const D=C.has(Y);return l.jsx(ax,{checked:k.has(Y),disabled:!D,onChange:()=>{D&&E(Y)},style:{marginTop:8,marginLeft:z==="flex-end"?8:0,marginRight:z==="flex-start"?8:0}})},J=(Y,z)=>{const D=n(Y),ie=z===void 0||z===d.length-1;if(D.type==="compression_divider"){const Q=_I(D.createdAt);return l.jsx("div",{role:"note","aria-label":T("chat.compression.timelineAria",{detail:D.label,time:Q,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:v.xs?"8px 10px":"10px 12px"},children:l.jsxs(we,{align:"center",justify:"space-between",gap:8,wrap:!0,children:[l.jsxs(we,{align:"center",gap:8,wrap:!0,children:[l.jsx(Ye,{color:"gold",icon:l.jsx(Zg,{}),children:T("chat.compression.tag","Context compressed")}),l.jsx(wm,{strong:!0,style:{fontSize:12},children:D.label})]}),l.jsx(wm,{type:"secondary",style:{fontSize:11},children:Q})]})})}return D.type==="tool_session"?l.jsx(we,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{id:`message-${D.id}`,style:{width:"100%",maxWidth:v.xs?"100%":"90%"},children:l.jsx(PS,{tools:D.tools,sessionId:D.sessionId,createdAt:D.createdAt,defaultExpanded:ie,autoCollapseWhenStale:!ie,onDeleteMessageIds:t?s:void 0})})}):D.message.role==="system"?l.jsxs(we,{align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[U(D.message.id,"flex-start"),l.jsx("div",{style:{flex:1,minWidth:0},children:l.jsx(yv,{currentChat:e,message:D.message})})]}):l.jsxs(we,{justify:D.align,align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[D.align==="flex-start"&&U(D.message.id,D.align),l.jsx("div",{style:{width:D.message.role==="user"?"85%":"100%",maxWidth:v.xs?"100%":"90%"},children:l.jsx(CS,{sessionId:t,message:D.message,messageType:D.messageType,onDelete:D.message.id===g?void 0:r})}),D.align==="flex-end"&&U(D.message.id,D.align)]})},ee=(p||a)&&d.length>0,I=$.getVirtualItems();return l.jsx(gI,{role:"log","aria-live":"polite","aria-label":T("chat.view.chatMessagesAria"),className:`chat-view-messages-list ${p?"visible":"hidden"}`,style:{flex:1,minHeight:0,padding:m,overflowY:"auto",opacity:p?1:0,scrollbarWidth:"none",msOverflowStyle:"none"},ref:i,onScroll:o,children:l.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:f,width:"100%",minHeight:"100%"},children:[ee&&l.jsx("div",{style:{position:"relative",width:"100%",height:$.getTotalSize()},children:I.map(Y=>{const z=d[Y.index];if(!z)return null;const D=Cm(z);return l.jsx("div",{"data-chat-entry-id":D,"data-index":Y.index,ref:$.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${Y.start}px)`},children:l.jsx("div",{className:"messageEnter",children:J(z,Y.index)})},Y.key)})}),w&&t&&l.jsx("div",{className:"streaming-card-enter",children:l.jsx(we,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{style:{width:"100%",maxWidth:v.xs?"100%":"90%"},children:l.jsx(kS,{sessionId:t})})})}),l.jsx("div",{ref:c,"data-chat-bottom-anchor":"true","aria-hidden":"true",style:{width:"100%",height:1,flexShrink:0}})]})})},TI=rt.memo(kI),PI={green:{backgroundColor:"color-mix(in srgb, var(--lotus-success) 14%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-success) 30%, transparent)",color:"var(--lotus-success)"},blue:{backgroundColor:"color-mix(in srgb, var(--lotus-accent-secondary) 14%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-accent-secondary) 30%, transparent)",color:"var(--lotus-accent-secondary)"},purple:{backgroundColor:"color-mix(in srgb, var(--lotus-gold) 16%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-gold) 32%, transparent)",color:"var(--lotus-gold)"}},EI=({label:e,tone:t})=>{const n=PI[t];return l.jsx("span",{style:{display:"inline-flex",alignItems:"center",padding:"1px 6px",borderRadius:999,fontSize:10,lineHeight:1.4,fontWeight:600,whiteSpace:"nowrap",backgroundColor:n.backgroundColor,border:`1px solid ${n.borderColor}`,color:n.color},children:e})},MI=({usage:e,showDetails:t=!0,size:n="small",className:r=""})=>{const{t:s}=qe(),o=py(e),a=my(e),i=E_(e),c=e.promptCachedToolOutputs??0,d=e.promptCachedToolTokensSaved??0,f=e.thinkingTokens??0,p=e.cacheReadInputTokens??0,v=c>0||d>0,g=f>0||p>0,w=E=>{const T=Math.round(E*10)/10;return Number.isInteger(T)?T.toFixed(0):T.toFixed(1)},m=()=>a>=90?"var(--lotus-chart-danger)":a>=70?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",x=[];d>0&&x.push({key:"prompt-saved",label:s("components.tokenUsage.promptSavedBadge",{value:jc(d)}),tone:"green"}),p>0&&x.push({key:"cache-read",label:s("components.tokenUsage.cacheReadBadge",{value:jc(p)}),tone:"blue"}),f>0&&x.push({key:"thinking",label:s("components.tokenUsage.thinkingBadge",{value:jc(f)}),tone:"purple"});const k={marginTop:8,marginBottom:4,fontSize:11,fontWeight:700,color:"var(--lotus-metric-text-muted)"},C=l.jsxs("div",{style:{minWidth:220,color:"var(--lotus-metric-text-strong)"},children:[l.jsx("div",{style:{marginBottom:4,fontWeight:"bold"},children:s("components.tokenUsage.title")}),l.jsxs("div",{style:{fontSize:12},children:[s("components.tokenUsage.contextWindow"),": ",Ar(e.totalTokens)," /"," ",Ar(o)," ",s("components.tokenUsage.tokens")]}),l.jsx("div",{style:{fontSize:12,color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.usedPercent",{value:a.toFixed(1)})}),t&&l.jsxs("div",{style:{marginTop:6,borderTop:"1px solid var(--lotus-metric-tooltip-border)",paddingTop:6,fontSize:11},children:[l.jsx("div",{style:k,children:s("components.tokenUsage.contextPrepared")}),l.jsxs("div",{children:[s("components.tokenUsage.system"),": ",Ar(e.systemTokens)]}),e.summaryTokens>0&&l.jsxs("div",{children:[s("components.tokenUsage.summary"),": ",Ar(e.summaryTokens)]}),l.jsxs("div",{children:[s("components.tokenUsage.messages"),": ",Ar(e.windowTokens)]}),v?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:k,children:s("components.tokenUsage.promptCacheTitle")}),c>0&&l.jsx("div",{style:{color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.cachedToolOutputs",{count:c})}),d>0&&l.jsxs("div",{style:{color:"var(--lotus-metric-text-muted)"},children:[s("components.tokenUsage.promptSaved"),":"," ",Ar(d)]})]}):null,g?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:k,children:s("components.tokenUsage.providerResult")}),p>0&&l.jsxs("div",{children:[s("components.tokenUsage.cacheRead"),": ",Ar(p)]}),f>0&&l.jsxs("div",{children:[s("components.tokenUsage.thinking"),": ",Ar(f)]})]}):null]})]});return l.jsx(dn,{title:C,placement:"top",arrow:!0,color:"var(--lotus-metric-tooltip-bg)",children:l.jsxs(ze,{className:`token-usage-display ${r}`,size:4,align:"center",style:{lineHeight:1},children:[l.jsx(Qg,{type:"line",percent:Math.min(a,100),size:{height:n==="small"?6:8,width:80},strokeColor:m(),showInfo:!1,style:{margin:0,lineHeight:1}}),l.jsxs("span",{style:{fontSize:n==="small"?11:12,color:i==="error"?"var(--lotus-chart-danger)":i==="warning"?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",whiteSpace:"nowrap",fontWeight:600},children:[w(a),"%"]}),x.map(E=>l.jsx(EI,{label:E.label,tone:E.tone},E.key))]})})},md="chat_scroll_anchors_v1",ES="chat_scroll_anchor_v2:";function MS(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 RI(){try{const e=localStorage.getItem(md);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object")return{};const n={};for(const[r,s]of Object.entries(t))MS(s)&&(n[r]=s);return n}catch{return{}}}function AI(e){const t=RI(),n=t[e];if(!n)return null;On.getInstance().saveScrollAnchor(e,n).catch(()=>{}),delete t[e];const s=Object.keys(t).length;try{s===0?localStorage.removeItem(md):localStorage.setItem(md,JSON.stringify(t))}catch{}return n}async function jI(e){if(typeof window>"u")return null;try{const n=await On.getInstance().loadScrollAnchor(e);if(n)return n}catch{}try{const t=localStorage.getItem(`${ES}${e}`);if(t){const n=JSON.parse(t);if(MS(n))return On.getInstance().saveScrollAnchor(e,n).catch(()=>{}),n}}catch{}return AI(e)}async function II(e,t){if(!(typeof window>"u")){try{await On.getInstance().saveScrollAnchor(e,t)}catch(n){console.warn("[ScrollAnchor] IndexedDB save failed:",n)}try{localStorage.setItem(`${ES}${e}`,JSON.stringify(t))}catch{}}}const cu=1,OI=3,$I=2e3;function LI(e,t){const n=Math.max(0,e.scrollHeight-e.clientHeight);return Math.min(Math.max(0,t),n)}function DI(e){const{scrollEl:t,getAnchorElement:n,offsetPx:r,isCancelled:s}=e;return new Promise(o=>{const a=performance.now();let i=0,c=-1,d=Number.NaN;const f=()=>{if(s()){o();return}const p=n();if(!p){requestAnimationFrame(f);return}const v=t.getBoundingClientRect(),w=p.getBoundingClientRect().top-v.top,m=LI(t,t.scrollTop+(w-r));if(Math.abs(t.scrollTop-m)>cu)t.scrollTop=m,i=0;else{const k=Number.isFinite(d)?Math.abs(m-d)<=cu:!1,C=Math.abs(t.scrollTop-c)<=cu;i=k&&C?i+1:0}d=m,c=t.scrollTop;const x=performance.now()-a>$I;if(i>=OI||x){o();return}requestAnimationFrame(f)};requestAnimationFrame(f)})}const FI=300,NI=.5;function zI(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 RS(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 km(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function BI(e,t){const n=km(e.createdAt);if(n!=null){let r=null,s=Number.POSITIVE_INFINITY;for(let o=0;o<t.length;o++){const a=km(RS(t[o]));if(a==null)continue;const i=Math.abs(a-n);i<s&&(s=i,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 kf(e){return Array.from(e.querySelectorAll("[data-chat-entry-id]"))}function WI(e,t){const n=kf(e);for(const r of n)if(r.dataset.chatEntryId===t)return r;return null}function UI(e,t){const n=kf(e);if(n.length===0)return null;const r=Math.max(0,Math.min(n.length-1,t));return n[r]??null}function qI(e){const t=kf(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 HI(e){const{currentSessionId:t,messagesListRef:n,renderableMessages:r}=e,s=S.useRef(new Set),o=S.useRef(!1),a=S.useRef(0),i=S.useRef(null),c=S.useRef(null),d=S.useRef(!1);S.useEffect(()=>{const w=n.current;if(!w)return;const m=()=>{d.current=!0};return w.addEventListener("wheel",m,{passive:!0}),w.addEventListener("touchmove",m,{passive:!0}),w.addEventListener("pointerdown",m),()=>{w.removeEventListener("wheel",m),w.removeEventListener("touchmove",m),w.removeEventListener("pointerdown",m)}},[n]);const f=S.useMemo(()=>{const w=new Map;for(let m=0;m<r.length;m++){const x=zI(r[m]);x&&w.set(x,m)}return w},[r]),p=S.useCallback(()=>{const w=n.current;if(!w||r.length===0)return null;const m=qI(w);if(!m)return null;const x=m.dataset.chatEntryId;if(!x)return null;const k=w.getBoundingClientRect(),C=m.getBoundingClientRect(),E=f.get(x),T=typeof E=="number"?r[E]:void 0;return{v:1,anchorId:x,offsetPx:C.top-k.top,ts:Date.now(),indexHint:E,createdAt:T?RS(T):void 0}},[f,n,r]),v=S.useCallback(async w=>{if(o.current)return;const m=p();if(!m)return;const x=c.current;x&&x.anchorId===m.anchorId&&Math.abs(x.offsetPx-m.offsetPx)<=NI||(await II(w,m),c.current=m)},[p]),g=S.useCallback(w=>{if(!t||o.current)return;i.current&&clearTimeout(i.current);const m=t;i.current=setTimeout(()=>{v(m).catch(()=>{})},FI)},[t,v]);return S.useEffect(()=>{const w=t;return()=>{w&&(i.current&&(clearTimeout(i.current),i.current=null),v(w).catch(()=>{}))}},[t,v]),S.useLayoutEffect(()=>{if(!t)return;const w=n.current;if(!w||r.length===0||s.current.has(t))return;let m=!1;return jI(t).then(x=>{if(m||!x){m||s.current.add(t);return}const k=f.get(x.anchorId),C=typeof k=="number"?k:BI(x,r);if(C==null){s.current.add(t);return}i.current&&(clearTimeout(i.current),i.current=null);const E=++a.current;o.current=!0,d.current=!1,w.style.overflowAnchor="none";const T=()=>a.current!==E||d.current;DI({scrollEl:w,getAnchorElement:()=>WI(w,x.anchorId)??UI(w,C),offsetPx:x.offsetPx,isCancelled:T}).finally(()=>{a.current===E&&(o.current=!1,s.current.add(t),w.style.overflowAnchor="",v(t).catch(()=>{}))})}),()=>{m=!0}},[t,f,r,r.length,n,v]),{handleScroll:g}}const Tm=2,Pm=6,uu=150,XI="streaming-",YI="streaming-reasoning-",KI="streaming-status-",VI=e=>e.startsWith(XI)&&!e.startsWith(YI)&&!e.startsWith(KI),GI=({currentSessionId:e,isThinking:t,messagesListRef:n,bottomAnchorRef:r,renderableMessages:s})=>{const[o,a]=S.useState(!1),[i,c]=S.useState(!1),[d,f]=S.useState(!1),[p,v]=S.useState(0),g=S.useRef(!1),w=S.useRef(!1),m=S.useRef(!0),x=S.useRef(s.length),k=S.useRef(new Set),C=S.useRef(0),{handleScroll:E}=HI({currentSessionId:e,messagesListRef:n,renderableMessages:s}),T=S.useCallback(()=>{k.current.clear(),f(!1),v(0)},[]),P=S.useCallback(I=>{if(I<=0)return 0;const Y=k.current;if(Y.size===0)return I;let z=I;for(const D of Array.from(Y)){if(z<=0)break;Y.delete(D),z-=1}return z},[]),A=S.useCallback(()=>{const I=n.current;if(!I||s.length===0)return a(!1),c(!1),T(),null;const Y=Math.max(0,I.scrollHeight-I.scrollTop-I.clientHeight),z=Y<=uu,D=I.scrollTop<=uu;return a(!z),c(!D&&s.length>3),z&&(w.current=!0,T()),{atBottom:z,distanceFromBottom:Y}},[T,n,s.length]),O=S.useCallback(I=>{const Y=A();Y&&(Y.distanceFromBottom>uu?(g.current=!0,w.current=!1):Y.atBottom&&(g.current=!1,w.current=!0,T()),E(I))},[T,A,E]),$=S.useCallback(I=>{cancelAnimationFrame(C.current);const Y=n.current,z=r.current;if(!Y||!z||s.length===0)return;const D=(I==null?void 0:I.behavior)??"smooth";let ie=0,Q=Number.NaN;const ue=()=>{C.current=0,g.current=!1,w.current=!0,T(),A()},me=()=>{const V=n.current,ae=r.current;if(!V||!ae)return;const ve=Math.max(0,V.scrollHeight-V.scrollTop-V.clientHeight),re=ae.getBoundingClientRect(),le=V.getBoundingClientRect(),de=re.top-le.top,pe=!Number.isFinite(Q)||Math.abs(de-Q)>.5,Ae=ve>Tm||pe||ie===0;if(Ae&&ae.scrollIntoView({block:"end",behavior:ie===0?D:"auto"}),Q=de,ie+=1,ie<Pm&&Ae){C.current=requestAnimationFrame(me);return}ue()};C.current=requestAnimationFrame(me)},[r,T,n,A,s.length]),U=S.useCallback(()=>{if(!n.current)return;let Y=0;const z=()=>{A()},D=()=>{const ie=n.current;if(!ie)return;const Q=ie.scrollTop>Tm||Y===0;if(Q&&ie.scrollTo({top:0,behavior:"auto"}),Y+=1,Y<Pm&&Q){requestAnimationFrame(D);return}z()};requestAnimationFrame(D)},[n,A]),J=S.useCallback(()=>{g.current=!1,w.current=!0,T()},[T]);S.useEffect(()=>{const I=Y=>{var ve,re;const D=(ve=Y.detail)==null?void 0:ve.messageId;if(!D){console.error("No messageId provided for navigation");return}const ie=s.findIndex(le=>"message"in le&&le.message?le.message.id===D:"id"in le?le.id===D:!1);if(ie===-1){console.warn("Message not found for navigation:",D);return}const Q=s[ie],ue=Q&&"message"in Q?Q.message.id:Q&&"id"in Q?Q.id:D,me=document.getElementById(`message-${ue}`),V=Array.from(((re=n.current)==null?void 0:re.querySelectorAll("[data-chat-entry-id]"))||[]),ae=me||V.find(le=>le.dataset.chatEntryId===ue);if(!ae){console.warn("Message element not found for navigation:",D);return}ae.scrollIntoView({behavior:"smooth",block:"center"}),ae.classList.add("highlight-message"),setTimeout(()=>{ae.classList.remove("highlight-message")},2e3)};return window.addEventListener("navigate-to-message",I),()=>{window.removeEventListener("navigate-to-message",I)}},[n,s]);const ee=S.useRef(t);return S.useEffect(()=>{!ee.current&&t&&(J(),$()),ee.current=t},[t,J,$]),S.useEffect(()=>Et.subscribe(I=>{var Y;if(I.sessionId===e){if(g.current){(((Y=I.content)==null?void 0:Y.trim())??"")&&VI(I.messageId)&&(k.current.has(I.messageId)||(k.current.add(I.messageId),v(D=>D+1)),f(!0)),A();return}if(!I.content){A();return}$()}}),[e,A,$]),S.useEffect(()=>{const I=s.length,Y=x.current,z=I>Y;if(I===0){T(),A(),x.current=I;return}if(m.current){A(),m.current=!1,x.current=I;return}if(z&&g.current){const D=P(I-Y);f(!0),D>0&&v(ie=>ie+D)}!g.current&&z?$():A(),x.current=I},[T,P,A,s.length,$]),S.useEffect(()=>{const I=n.current;if(!I||typeof ResizeObserver>"u")return;let Y=0,z=!1;const D=()=>{cancelAnimationFrame(Y);const me=w.current;Y=requestAnimationFrame(()=>{if(z&&me&&!g.current){$({behavior:"auto"});return}A()})},ie=new ResizeObserver(()=>{z=!0,D()});ie.observe(I);const Q=I.firstElementChild;Q instanceof HTMLElement&&ie.observe(Q);const ue=r.current;return ue instanceof HTMLElement&&ie.observe(ue),D(),()=>{cancelAnimationFrame(Y),ie.disconnect()}},[r,e,n,A,s.length,$]),S.useEffect(()=>{if(!n.current||s.length===0){A();return}A();let Y=0;const z=requestAnimationFrame(()=>{A(),Y=requestAnimationFrame(()=>{A()})});return()=>{cancelAnimationFrame(z),cancelAnimationFrame(Y)}},[n,s.length,e,A]),S.useEffect(()=>{m.current=!0,g.current=!1,w.current=!1,x.current=0,T()},[T,e]),{handleMessagesScroll:O,hasUnreadActivity:d,resetUserScroll:J,scrollToBottom:$,scrollToTop:U,showScrollToBottom:o,showScrollToTop:i,unreadCount:p}};function JI(e){return"type"in e&&e.type==="tool_session"}function QI(e){return"type"in e&&e.type==="compression_divider"}const Em=e=>{const t=Date.parse(e||"");return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER},ZI=e=>"type"in e?e.createdAt:e.message.createdAt,eO=e=>!("type"in e)&&e.message.role==="system";function tO(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_call"}function nO(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_result"}const Mm=e=>(e??"").trim().toLowerCase()==="conclusion",rO=e=>{const t=(e??"").trim().toLowerCase();return t==="conclusion_with_options"||t==="exitplanmode"||t==="request_permissions"},sO=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"},oO=(e,t)=>{var n;return e.call.id||e.callMessageId||e.resultMessageId||((n=e.result)==null?void 0:n.id)||`tool-message-missing-${t}`},aO=(e,t)=>`tool-session-${oO(e,t)}:${sO(e)}`;function iO(e){const t=[],n=new Map,r=new Set,s=(a,i)=>{const c=n.get(a)||[];c.push(i),n.set(a,c)},o=a=>{const i=n.get(a);if(!i||i.length===0)return;let c;for(;i.length>0&&!c;){const d=i.shift();d&&!d.result&&(c=d)}return i.length===0?n.delete(a):n.set(a,i),c};for(const a of e){if(tO(a)){const i=a.toolCalls||[];if(i.length===0){t.push(a);continue}i.forEach((c,d)=>{const f=c.toolCallId||`${a.id}-${d}`;if(Mm(c.toolName)){r.add(f);return}if(rO(c.toolName)){r.add(f);const w={...a,id:`${a.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]};t.push(w);return}const v={call:{...a,id:`${a.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]},callMessageId:a.id};s(f,v);const g=t[t.length-1];Array.isArray(g)?g.push(v):t.push([v])});continue}if(nO(a)){const i=a.toolCallId;if(i&&r.has(i)){r.delete(i),t.push(a);continue}if(Mm(a.toolName)){t.push(a);continue}const c=i?o(i):void 0;if(c)c.result=a,c.resultMessageId=a.id;else{const d=i||`orphan-tool-call:${a.id}`,p={call:{role:"assistant",type:"tool_call",id:`synthetic-tool-call:${a.id}`,createdAt:a.createdAt,toolCalls:[{toolCallId:d,toolName:(a.toolName||"").trim()||"tool",parameters:{},streamingOutput:""}],isCompressed:a.isCompressed,compressedEventId:a.compressedEventId},result:a,resultMessageId:a.id},v=t[t.length-1];Array.isArray(v)?v.push(p):t.push([p])}continue}t.push(a)}return t}const lO=(e,t)=>{var i;const{t:n}=qe(),r=S.useMemo(()=>{var d;const c=t.find(f=>f.role==="system");return c||((d=e==null?void 0:e.config)!=null&&d.baseSystemPrompt?{id:`system-prompt-${e.id}`,role:"system",content:e.config.baseSystemPrompt,createdAt:new Date(e.createdAt).toISOString()}:null)},[e,t]),s=S.useCallback(c=>!1,[]),o=S.useCallback(c=>{if(QI(c))return{type:"compression_divider",id:c.id,createdAt:c.createdAt,label:c.label};if(JI(c))return{type:"tool_session",id:c.id,sessionId:c.sessionId,tools:c.tools,createdAt:c.createdAt};const d=c.message.role==="user"?"flex-end":"flex-start";let f=c.messageType;if(!f&&c.message.role==="assistant"&&"type"in c.message){const p="type"in c.message?c.message.type:void 0;(p==="text"||p==="plan"||p==="question"||p==="tool_call"||p==="tool_result")&&(f=p)}return{type:"message",message:c.message,align:d,messageType:f}},[]),a=S.useMemo(()=>{var m;const c=t.filter(x=>{const k=x.role;return!(k!=="user"&&k!=="assistant"&&k!=="system"&&k!=="tool"||s(x))}),d=iO(c),f=[];d.forEach((x,k)=>{var T,P;if(Array.isArray(x)){const A=x[0];f.push({type:"tool_session",id:A?aO(A,k):`tool-session-unknown-${k}`,sessionId:(e==null?void 0:e.id)||"default",tools:x,createdAt:((T=A==null?void 0:A.call)==null?void 0:T.createdAt)||((P=A==null?void 0:A.result)==null?void 0:P.createdAt)||new Date().toISOString()});return}const C=x;let E;if(C.role==="assistant"&&"type"in C){const A="type"in C?C.type:void 0;(A==="text"||A==="plan"||A==="question"||A==="tool_call"||A==="tool_result")&&(E=A)}f.push({message:C,messageType:E})}),!c.some(x=>x.role==="system")&&r&&f.unshift({message:r});const v=((m=e==null?void 0:e.config)==null?void 0:m.compressionEvents)||[],g=f.findIndex(x=>!eO(x)),w=g===-1?f.length:g;for(const x of v){const k={type:"compression_divider",id:`compression-divider-${x.id}`,createdAt:x.createdAt,label:n("chat.compression.timelineDetail",{count:x.messagesCompressed,defaultValue:"{{count}} messages archived"})},C=Em(x.createdAt),E=f.findIndex((T,P)=>P>=w&&Em(ZI(T))>C);E===-1?f.push(k):f.splice(E,0,k)}return f},[(i=e==null?void 0:e.config)==null?void 0:i.compressionEvents,e==null?void 0:e.id,t,s,r,n]);return{systemPromptMessage:r,renderableMessages:a,convertRenderableEntry:o}},{Text:cO}=ot,uO=({visible:e,selectionMode:t,selectedCount:n,totalCount:r,paddingTop:s,paddingRight:o,paddingBottom:a,paddingLeft:i,maxWidth:c,onToggleSelectionMode:d,onSelectAll:f,onClear:p,onExportMarkdown:v,onExportPdf:g,t:w})=>e?l.jsx("div",{style:{paddingTop:s,paddingRight:o,paddingBottom:a,paddingLeft:i,maxWidth:c,margin:"0 auto",width:"100%"},children:t?l.jsxs(we,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(cO,{type:"secondary",children:w("chat.selectionToolbar.selectedCount",{selected:n,total:r})}),l.jsxs(ze,{size:8,wrap:!0,children:[l.jsx(Ee,{size:"small",onClick:f,children:w("chat.selectionToolbar.selectAll")}),l.jsx(Ee,{size:"small",onClick:p,children:w("chat.selectionToolbar.clear")}),l.jsx(Ee,{size:"small",icon:l.jsx(to,{}),onClick:v,disabled:n===0,children:w("chat.selectionToolbar.exportMarkdown")}),l.jsx(Ee,{size:"small",type:"primary",icon:l.jsx(to,{}),onClick:g,disabled:n===0,children:w("chat.selectionToolbar.exportPdf")}),l.jsx(Ee,{size:"small",icon:l.jsx(ks,{}),onClick:d,children:w("chat.selectionToolbar.done")})]})]}):l.jsx(we,{justify:"flex-end",children:l.jsx(dn,{title:w("chat.selectionToolbar.selectMessages"),children:l.jsx(Ee,{"aria-label":w("chat.selectionToolbar.selectMessages"),icon:l.jsx(ey,{}),size:"small",onClick:d})})})}):null,dO=({visible:e,showScrollToTop:t,showScrollToBottom:n,hasUnreadActivity:r,unreadCount:s,onScrollToTop:o,onScrollToBottom:a,onResetUserScroll:i,t:c})=>!e||!t&&!n?null:l.jsx("div",{className:"chat-scroll-capsule-wrapper","data-testid":"chat-scroll-capsule-wrapper",children:l.jsxs("div",{className:"chat-scroll-capsule","data-testid":"chat-scroll-capsule",children:[t?l.jsx(Ee,{"data-testid":"chat-scroll-top-button",className:"chat-scroll-capsule__button",type:"text",icon:l.jsx("span",{"aria-hidden":"true",children:"↑"}),size:"small",onClick:o,children:c("chat.scroll.jumpToTop",{defaultValue:"Jump to top"})}):null,n?l.jsxs("span",{style:{display:"inline-flex"},children:[l.jsx("span",{style:{display:"inline-flex"},children:l.jsx(Ee,{"data-testid":"chat-scroll-bottom-button",className:`chat-scroll-capsule__button ${r?"chat-scroll-capsule__button--active":""}`,type:r?"primary":"text",icon:l.jsx("span",{"aria-hidden":"true",children:"↓"}),size:"small",onClick:()=>{i(),a()},children:r?c("chat.scroll.newMessagesWithCount",{count:s,defaultValue:s>0?"{{count}} new messages":"New messages"}):c("chat.scroll.backToLatest",{defaultValue:"Back to latest"})})}),r&&s>0?l.jsx("span",{className:"chat-scroll-capsule__count","data-testid":"chat-scroll-unread-count",children:s}):null]}):null]})}),fO=rt.lazy(()=>Lt(()=>import("./index-DZwtEBJ8.js"),__vite__mapDeps([16,1,2,3,4,5,6,17]),import.meta.url).then(e=>({default:e.ContextBar}))),hO=({sessionId:e,auxReady:t,maxWidth:n,paddingLeft:r,paddingRight:s,workspaceState:o,inspectorEligible:a,planMode:i,onRequestOpenInspector:c,t:d})=>{const{token:f}=st.useToken();if(!e)return null;const p=i?l.jsx(dn,{title:d("chat.planMode.tooltip",{status:i.status,mode:i.pre_permission_mode,defaultValue:"Plan mode active · phase: {{status}} · previous mode: {{mode}}"}),children:l.jsx(Ye,{color:"purple",icon:l.jsx(qg,{}),style:{marginInlineEnd:0},children:d("chat.planMode.active",{defaultValue:"Plan mode"})})}):null,v=a&&o.inspectorTogglePlacement==="meta_strip"&&!!c,g=!!(p||o.isMultiPane||v);return l.jsxs(l.Fragment,{children:[t?l.jsx(rt.Suspense,{fallback:null,children:l.jsx(fO,{sessionId:e})}):null,g?l.jsx("div",{"data-conversation-meta-strip":!0,"data-inspector-toggle-placement":o.inspectorTogglePlacement,style:{paddingTop:f.paddingXS,paddingRight:s,paddingBottom:0,paddingLeft:r,maxWidth:n,margin:"0 auto",width:"100%"},children:l.jsxs(we,{align:"center",justify:"space-between",gap:f.marginXS,wrap:!0,children:[l.jsxs(we,{align:"center",gap:f.marginXS,wrap:!0,children:[p,o.isMultiPane?l.jsx(Ye,{color:"blue",style:{marginInlineEnd:0},children:d("chat.workspace.multiPane",{count:o.leafCount,defaultValue:"{{count}} panes"})}):null]}),v&&c?l.jsx(Ee,{size:"small",icon:l.jsx(Md,{}),onClick:c,"aria-label":d("chat.workspace.toggleInspector",{defaultValue:"Open inspector"}),children:o.inspectorMode==="drawer"?d("chat.workspace.openInspector",{defaultValue:"Inspector"}):d("chat.workspace.toggleInspector",{defaultValue:"Inspector"})}):null]})}):null]})},Tf=({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"}},pO=rt.lazy(()=>Lt(()=>import("./index-DD799l9l.js"),__vite__mapDeps([18,1,2,3,4,5,6,19]),import.meta.url).then(e=>({default:e.QuestionDialog}))),{useToken:mO}=st,{useBreakpoint:gO}=zl,yO=e=>{const{t}=kt;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")},AS=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},vO=e=>e.map(({message:t,text:n},r)=>{const s=yO(t),o=AS(t.createdAt);return[`## ${r+1}. ${s} · ${o}`,"",n].join(`
241
+ `)}).join(`
242
+
243
+ ---
244
+
245
+ `),Rm=({sessionId:e,embedded:t=!1,paneCount:n=1,auxReady:r=!1,sessionDiffSummary:s=null,workspaceState:o,inspectorEligible:a=!1,onRequestOpenInspector:i})=>{var Es,Wn,Cn,tr,nr;const c=n,{message:d}=Tn.useApp(),{t:f}=qe(),p=Z(Ce=>e??Ce.currentSessionId),v=Z(mr(p)),g=Z(Ce=>Ce.deleteMessage),w=Z(Ce=>Ce.loadChatHistory),m=Z(Ce=>p?Ce.tokenUsages[p]??null:null),x=Z(Ce=>p?Ce.truncationOccurred[p]??!1:!1),k=Z(Ce=>p?Ce.segmentsRemoved[p]??0:0),C=S.useMemo(()=>(v==null?void 0:v.messages)||[],[v]),E=Z(si(p));S.useEffect(()=>{if(!p)return;const Ce=Z.getState().chats.find(Xe=>Xe.id===p);Ce&&Array.isArray(Ce.messages)&&Ce.messages.length>0||w(p)},[p,w]);const T=(v==null?void 0:v.messageCount)??0,P=((Es=v==null?void 0:v.messages)==null?void 0:Es.length)??0;S.useEffect(()=>{if(!p)return;T-P>0&&w(p,{mode:"monotonic"})},[p,T,P,w]);const A=E,O=S.useCallback(Ce=>{if(Ce.success)return null;switch(Ce.reason){case"session_not_found":case"message_not_found":case"backend_not_found":return f("chat.messageActions.deleteNotFound");case"session_running":return f("chat.messageActions.deleteConflict");default:return Ce.errorMessage||f("chat.messageActions.deleteFailed")}},[f]),$=S.useCallback(async(Ce,Xe)=>{if(!p){const Pt={success:!1,sessionId:"",messageId:Ce,reason:"session_not_found"};return(Xe==null?void 0:Xe.notify)!==!1&&d.error(O(Pt)),Pt}const yt=await g(p,Ce);return!yt.success&&(Xe==null?void 0:Xe.notify)!==!1&&d.error(O(yt)),yt},[p,g,d,O]),U=S.useCallback(async Ce=>{const Xe=Array.from(new Set(Ce.map(nn=>nn.trim()).filter(Boolean)));if(Xe.length===0)return;const Pt=(await Promise.all(Xe.map(nn=>$(nn,{notify:!1})))).filter(nn=>!nn.success);if(Pt.length!==0){if(Pt.length===1){d.error(O(Pt[0]));return}d.error(f("chat.messageActions.deleteBatchFailed",{failed:Pt.length,total:Xe.length}))}},[$,d,O,f]),J=S.useRef(null),ee=S.useRef(null),{token:I}=mO(),Y=gO(),z=S.useMemo(()=>({xs:Y.xs}),[Y.xs]),D=Wl(),[ie,Q]=S.useState(null),[ue,me]=S.useState(!1),[V,ae]=S.useState(new Set),ve=ct(Ce=>Ce.sidebar.collapsed),re=r,le=s,de=()=>t||Y.xs||Y.sm?"100%":Y.md?"90%":Y.lg?"85%":"1024px",pe=()=>{let Ce;return t?Ce=I.paddingSM:Y.xs?Ce=I.paddingXS:Y.sm?Ce=I.paddingSM:Ce=I.padding,!t&&ve&&!D?Ce+18:Ce},Ae=S.useMemo(()=>o||Tf({isEmbedded:t,leafCount:c,isMobileViewport:D}),[t,D,c,o]);S.useEffect(()=>{Q(null),me(!1),ae(new Set)},[p]);const{systemPromptMessage:Me,renderableMessages:F,convertRenderableEntry:L}=lO(v,C),fe=C.length>0,Se=!!(ie!=null&&ie.content),De=!!Me,We=!!p&&(fe||Se),Ge=0,He=S.useMemo(()=>{if(!(ie!=null&&ie.content))return F;const Ce={message:{id:ie.id,role:"user",content:ie.content,createdAt:ie.createdAt},messageType:"text"};return[...F,Ce]},[F,ie]),at=S.useMemo(()=>{const Ce=[];for(const Xe of He){if(!("message"in Xe))continue;const yt=Qv(Xe.message).trim();yt&&Ce.push({id:Xe.message.id,message:Xe.message,text:yt})}return Ce},[He]),St=S.useMemo(()=>new Set(at.map(Ce=>Ce.id)),[at]);S.useEffect(()=>{ae(Ce=>{let Xe=!1;const yt=new Set;for(const Pt of Ce)St.has(Pt)?yt.add(Pt):Xe=!0;return Xe?yt:Ce})},[St]);const Ot=S.useMemo(()=>at.filter(Ce=>V.has(Ce.id)),[at,V]),xt=at.length>0,Fe=S.useCallback(Ce=>{ae(Xe=>{const yt=new Set(Xe);return yt.has(Ce)?yt.delete(Ce):yt.add(Ce),yt})},[]),lt=S.useCallback(()=>{if(!xt){d.warning(f("chat.view.noExportableMessages"));return}me(!0)},[d,xt,f]),_t=S.useCallback(()=>{me(!1),ae(new Set)},[]),Qt=S.useCallback(()=>{if(ue){_t();return}lt()},[lt,_t,ue]),At=S.useCallback(()=>{ae(new Set(at.map(Ce=>Ce.id)))},[at]),Tt=S.useCallback(()=>{ae(new Set)},[]),Ht=S.useCallback(async Ce=>{var Pt;if(!p){d.warning(f("chat.view.noActiveChat"));return}if(Ot.length===0){d.warning(f("chat.view.selectAtLeastOneMessage"));return}const Xe=vO(Ot),yt=await Zv.exportMessageText({format:Ce,content:Xe,sessionId:p,filenamePrefix:`chat-messages-${Ot.length}`});if(yt.success){d.success(f("chat.view.exportSaved",{filename:yt.filename}));return}(Pt=yt.error)!=null&&Pt.toLowerCase().includes("cancel")||d.error(yt.error||f("chat.view.exportFailed"))},[d,p,Ot,f]);S.useEffect(()=>{if(typeof window>"u")return;const Ce=Xe=>{var nn;const Pt=((nn=Xe.detail)==null?void 0:nn.sessionId)??null;!p||Pt!==p||Qt()};return window.addEventListener(Hu,Ce),()=>{window.removeEventListener(Hu,Ce)}},[p,Qt]);const $n=(Wn=v==null?void 0:v.config)==null?void 0:Wn.tokenUsage,Zt=m||$n||null,he=(Cn=v==null?void 0:v.config)==null?void 0:Cn.truncationOccurred,Ne=x||he||!1,Ie=(tr=v==null?void 0:v.config)==null?void 0:tr.segmentsRemoved,Je=k||Ie||0,Wt=S.useMemo(()=>{var Xe;const Ce=(Xe=v==null?void 0:v.config)==null?void 0:Xe.compressionEvents;return!Ce||Ce.length===0?null:Ce.reduce((yt,Pt)=>{const nn=Date.parse(yt.createdAt),gr=Date.parse(Pt.createdAt);return Number.isFinite(nn)?Number.isFinite(gr)&&gr>nn?Pt:yt:Pt})},[(nr=v==null?void 0:v.config)==null?void 0:nr.compressionEvents]),yn=I.marginMD,{handleMessagesScroll:Oe,hasUnreadActivity:Dt,resetUserScroll:en,scrollToBottom:tn,scrollToTop:Re,showScrollToBottom:Zn,showScrollToTop:Tr,unreadCount:Pr}=GI({currentSessionId:p,isThinking:A,messagesListRef:J,bottomAnchorRef:ee,renderableMessages:He}),Vr=!!We&&xt&&(!t||ue),er=Wt?l.jsx(dn,{title:f("chat.compression.tooltip",{count:Wt.messagesCompressed,time:AS(Wt.createdAt),defaultValue:"Latest compression at {{time}}: {{count}} messages archived"}),children:l.jsx(Ye,{color:"gold",icon:l.jsx(Zg,{}),style:{marginInlineEnd:0,whiteSpace:"nowrap"},children:f("chat.compression.archivedShort",{count:Wt.messagesCompressed,defaultValue:"{{count}} archived"})})}):null,po=Zt&&Zt.budgetLimit>0?l.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:I.marginXS},children:[l.jsx(MI,{usage:Zt,showDetails:!0,size:"small"}),Ne&&l.jsxs("span",{style:{fontSize:11,color:I.colorTextSecondary,whiteSpace:"nowrap"},children:["(",f("components.tokenUsage.truncatedBadge",{count:Je,defaultValue:"{{count}} truncated"}),")"]}),er]}):er?l.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:I.marginXS},children:er}):null;return l.jsx(Hs,{role:"region","aria-label":f("chat.view.chatRegion","Chat conversation"),style:{flex:1,minHeight:0,height:"100%",background:I.colorBgContainer,position:"relative",overflow:"hidden"},children:l.jsxs(we,{vertical:!0,style:{flex:1,minHeight:0,height:"100%"},children:[l.jsx(hO,{sessionId:p,auxReady:re,maxWidth:de(),paddingLeft:pe(),paddingRight:pe(),workspaceState:Ae,inspectorEligible:a,planMode:(v==null?void 0:v.planMode)??null,onRequestOpenInspector:i,t:f}),l.jsx(uO,{visible:Vr,selectionMode:ue,selectedCount:Ot.length,totalCount:at.length,paddingTop:I.paddingXS,paddingRight:pe()+Ge,paddingBottom:0,paddingLeft:pe(),maxWidth:de(),onToggleSelectionMode:Qt,onSelectAll:At,onClear:Tt,onExportMarkdown:()=>{Ht("markdown")},onExportPdf:()=>{Ht("pdf")},t:f}),l.jsx(TI,{currentChat:v,currentSessionId:p,convertRenderableEntry:L,handleDeleteMessage:$,handleDeleteToolMessages:U,handleMessagesScroll:Oe,hasSystemPrompt:De,messagesListRef:J,bottomAnchorRef:ee,renderableMessages:He,rowGap:yn,showMessagesView:!!We,screens:z,workflowDraftId:ie==null?void 0:ie.id,isThinking:A,padding:pe(),selectionMode:ue,selectedMessageIds:V,selectableMessageIds:St,onToggleMessageSelection:Fe}),l.jsxs("div",{className:`chat-bottom-stack ${We?"":"is-empty-centered"}`,"data-testid":"chat-bottom-stack",children:[l.jsx(dO,{visible:We,showScrollToTop:Tr,showScrollToBottom:Zn,hasUnreadActivity:Dt,unreadCount:Pr,onScrollToTop:Re,onScrollToBottom:tn,onResetUserScroll:en,t:f}),p&&re&&l.jsx("div",{style:{paddingTop:I.paddingXS,paddingRight:pe(),paddingBottom:0,paddingLeft:pe(),maxWidth:de(),margin:"0 auto",width:"100%"},children:l.jsx(rt.Suspense,{fallback:null,children:l.jsx(pO,{sessionId:p},p)})}),l.jsx(wE,{sessionId:p,isCenteredLayout:!We,maxWidth:We?de():"100%",onWorkflowDraftChange:Q,showMessagesView:!!We,sessionDiffSummary:le,contextUsageIndicator:po,showSessionDiffCard:!1})]})]})})},gd="lotus_experience_mode_v1",TL=new Set(["skills","hooks","masking","env-vars","metrics","sessions","config"]);function Am(){try{const e=localStorage.getItem(gd);if(e==="simple"||e==="advanced")return e}catch{}return"advanced"}const jS=Xr(e=>({mode:Am(),isAdvanced:Am()==="advanced",setMode:t=>{try{localStorage.setItem(gd,t)}catch{}e({mode:t,isAdvanced:t==="advanced"})},toggleMode:()=>e(t=>{const n=t.mode==="simple"?"advanced":"simple";try{localStorage.setItem(gd,n)}catch{}return{mode:n,isAdvanced:n==="advanced"}})})),bO={low:"Low",medium:"Medium",high:"High",xhigh:"Extra high",max:"Max"},SO=rt.lazy(()=>Lt(()=>import("./index-DTwjPw3W.js"),__vite__mapDeps([20,1,2,3,21,4,5,6,22]),import.meta.url).then(e=>({default:e.SessionSummaryCard}))),wO=rt.lazy(()=>Lt(()=>import("./index-IUnDhddK.js"),__vite__mapDeps([23,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.TodoList}))),xO=rt.lazy(()=>Lt(()=>import("./SubAgentsPanel-Cv5BQdXg.js"),__vite__mapDeps([24,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.SubAgentsPanel}))),{Title:_O,Text:fr}=ot,jm={active:{label:"Active",color:"processing"},complete:{label:"Complete",color:"success"},blocked:{label:"Blocked",color:"error"},need_input:{label:"Needs input",color:"warning"},budget_limited:{label:"Budget limited",color:"warning"}},CO=({sessionId:e})=>{var p,v,g,w,m,x,k;const{token:t}=st.useToken(),n=Z(mr(e)),r=Z(C=>C.setInputContent),s=((p=n==null?void 0:n.config)==null?void 0:p.goldConfig)??null,o=((v=n==null?void 0:n.config)==null?void 0:v.goalState)??null,a=((g=(s==null?void 0:s.goal)??(s==null?void 0:s.evaluation_prompt))==null?void 0:g.trim())??"",i=(s==null?void 0:s.enabled)===!0,c=a.length>0,d=((w=o==null?void 0:o.eval_history)==null?void 0:w[o.eval_history.length-1])??null;if(!n||!s||!c&&!i)return null;const f=()=>{const C=c?`/goal ${a}`:"/goal ";r(e,C),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Tl,{detail:{sessionId:e}}))};return l.jsx("div",{"data-testid":"session-goal-card",style:{padding:`${t.paddingXXS}px ${t.paddingXS}px`,borderRadius:t.borderRadiusLG,border:`1px solid ${i?t.colorWarningBorder:t.colorBorderSecondary}`,background:i?t.colorWarningBg:t.colorFillQuaternary},children:l.jsxs(we,{vertical:!0,gap:4,style:{width:"100%",minWidth:0},children:[l.jsxs(we,{align:"center",justify:"space-between",gap:8,children:[l.jsxs(we,{align:"center",gap:6,style:{minWidth:0},children:[l.jsx(ix,{style:{color:i?t.colorWarning:t.colorTextSecondary}}),l.jsx(fr,{strong:!0,style:{fontSize:12},children:"Goal"})]}),l.jsx(Ee,{size:"small",type:"text",onClick:f,style:{paddingInline:6},children:"Edit /goal"})]}),l.jsx(ol,{items:[i?"Enabled":"Disabled",s.auto_answer_enabled?"Auto-answer":null,s.auto_continue_enabled?"Auto-continue":null],block:!0}),l.jsx(fr,{style:{fontSize:12,lineHeight:1.45,color:c?t.colorText:t.colorTextSecondary,whiteSpace:"pre-wrap"},children:c?a:"Use /goal <prompt> in the composer to set a session goal."}),o?l.jsxs(we,{vertical:!0,gap:4,style:{marginTop:2},children:[l.jsxs(we,{align:"center",gap:6,wrap:"wrap",children:[l.jsx(Ye,{color:((m=jm[o.status])==null?void 0:m.color)??"default",style:{marginInlineEnd:0},children:((x=jm[o.status])==null?void 0:x.label)??o.status}),o.continuation_count>0?l.jsxs(fr,{type:"secondary",style:{fontSize:11},children:[o.continuation_count," continuation",o.continuation_count===1?"":"s"]}):null,(k=o.eval_history)!=null&&k.length?l.jsxs(fr,{type:"secondary",style:{fontSize:11},children:[o.eval_history.length," double-check",o.eval_history.length===1?"":"s"]}):null]}),d?l.jsx(fr,{type:"secondary",style:{fontSize:11,lineHeight:1.4,whiteSpace:"pre-wrap"},children:`Last check [${d.checkpoint}] ${d.decision}/${d.confidence}: ${d.reasoning}`}):null]}):null]})})},kO=({sessionId:e})=>{var g,w;const{token:t}=st.useToken(),{t:n}=qe(),r=Z(mr(e)),s=mt(m=>m.providerInstances),o=r==null?void 0:r.config,a=((g=o==null?void 0:o.model_ref)==null?void 0:g.model)??(o==null?void 0:o.model)??null,i=((w=o==null?void 0:o.model_ref)==null?void 0:w.provider)??null,c=S.useMemo(()=>{if(!i)return null;const m=s.find(x=>x.id===i);return m?m.label||m.id:gP[i]??i},[i,s]);if(!r||!a)return null;const d=(o==null?void 0:o.reasoningEffort)??null,f=d?bO[d]??d:"Provider default",p=(o==null?void 0:o.agentRole)??null,v=[{label:"Model",value:a},...c?[{label:"Provider",value:c}]:[],{label:"Reasoning",value:f,muted:!d},...p?[{label:"Role",value:p}]:[]];return l.jsx("div",{"data-testid":"session-config-card",style:{padding:`${t.paddingXXS}px ${t.paddingXS}px`,borderRadius:t.borderRadiusLG,border:`1px solid ${t.colorBorderSecondary}`,background:t.colorFillQuaternary},children:l.jsxs(we,{vertical:!0,gap:4,style:{width:"100%",minWidth:0},children:[l.jsxs(we,{align:"center",gap:6,style:{minWidth:0},children:[l.jsx(kd,{style:{color:t.colorTextSecondary}}),l.jsx(fr,{strong:!0,style:{fontSize:12},children:n("inspector.configuration","Configuration")})]}),l.jsx(we,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:v.map(m=>l.jsxs(we,{align:"center",justify:"space-between",gap:8,children:[l.jsx(fr,{type:"secondary",style:{fontSize:12,flexShrink:0},children:m.label}),l.jsx(fr,{style:{fontSize:12,textAlign:"right",color:m.muted?t.colorTextTertiary:t.colorText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:m.value,children:m.value})]},m.label))})]})})},TO=({sessionId:e,auxReady:t,showMessagesView:n,shouldShowTaskPanel:r,hasSubAgents:s,sessionDiffSummary:o})=>{var v,g,w,m,x,k;const{token:a}=st.useToken(),i=jS(C=>C.isAdvanced),c=Z(mr(e)),d=!!((v=c==null?void 0:c.config)!=null&&v.goldConfig&&((((w=(g=c.config.goldConfig.goal??c.config.goldConfig.evaluation_prompt)==null?void 0:g.trim())==null?void 0:w.length)??0)>0||c.config.goldConfig.enabled===!0)),f=!!((x=(m=c==null?void 0:c.config)==null?void 0:m.model_ref)!=null&&x.model||(k=c==null?void 0:c.config)!=null&&k.model),p=S.useMemo(()=>[{key:"goal",title:"Goal",showTitle:!1,visible:d,node:l.jsx(CO,{sessionId:e})},{key:"config",title:"Configuration",showTitle:!1,visible:f,node:l.jsx(kO,{sessionId:e})},{key:"overview",title:"Overview",showTitle:!1,visible:i&&n,node:t?l.jsx(rt.Suspense,{fallback:null,children:l.jsx(SO,{sessionId:e,compact:!0})}):null},{key:"tasks",title:"Tasks",showTitle:!1,visible:r,node:t?l.jsx(rt.Suspense,{fallback:null,children:l.jsx(wO,{sessionId:e,initialCollapsed:!1,compact:!0})}):null},{key:"agents",title:"Sub-agents",showTitle:!1,visible:s,node:t?l.jsx(rt.Suspense,{fallback:null,children:l.jsx(xO,{parentSessionId:e,compact:!0})}):null},{key:"diffs",title:"Diffs",showTitle:!1,visible:!!o,node:l.jsx(mv,{sessionDiffSummary:o,sessionId:e,compact:!0})}].filter(C=>C.visible),[t,f,d,s,i,o,e,r,n]);return p.length===0?l.jsx(we,{vertical:!0,align:"center",justify:"center",style:{minHeight:180,color:a.colorTextSecondary,padding:a.paddingLG,textAlign:"center"},children:l.jsx(fr,{type:"secondary",children:"No session details available yet."})}):l.jsx(we,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:p.map((C,E)=>l.jsx("section",{style:{width:"100%",minWidth:0,paddingTop:E===0?0:6,borderTop:E===0?"none":`1px solid ${a.colorBorderSecondary}`},children:C.showTitle?l.jsxs(we,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsx(_O,{level:5,style:{margin:0,fontSize:a.fontSizeLG},children:C.title}),C.node]}):C.node},C.key))})},Im=({sessionId:e,auxReady:t,mode:n,open:r,onOpenChange:s,showMessagesView:o,shouldShowTaskPanel:a,hasSubAgents:i,sessionDiffSummary:c})=>{const{token:d}=st.useToken(),{t:f}=qe(),p=ct(m=>m.inspector.widthPx),v=ct(m=>m.inspector.minWidthPx),g=ct(m=>m.inspector.maxWidthPx);if(!e)return null;const w=l.jsx(TO,{sessionId:e,auxReady:t,showMessagesView:o,shouldShowTaskPanel:a,hasSubAgents:i,sessionDiffSummary:c});return n==="drawer"?l.jsx(Bl,{title:f("inspector.title","Inspector"),placement:"right",open:r,onClose:()=>s(!1),width:p,children:w}):r?l.jsxs("aside",{"data-session-inspector-pane":!0,style:{width:"100%",minWidth:v,maxWidth:g,height:"100%",minHeight:0,borderLeft:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout,overflow:"auto"},children:[l.jsxs(we,{align:"center",justify:"space-between",style:{position:"sticky",top:0,zIndex:1,padding:`6px ${d.paddingSM}px`,borderBottom:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout},children:[l.jsxs(we,{align:"center",gap:d.marginXS,children:[l.jsx(Md,{}),l.jsx(fr,{strong:!0,children:f("inspector.title","Inspector")})]}),l.jsx(Ee,{type:"text",size:"small",icon:l.jsx(ks,{}),"aria-label":"Close inspector",onClick:()=>s(!1)})]}),l.jsx("div",{style:{padding:`6px ${d.paddingSM}px ${d.paddingSM}px`,minWidth:0},children:w})]}):null},PO=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>{var D,ie,Q;const s=n,o=Wl(),a=Z(ue=>e??ue.currentSessionId),i=Z(mr(a)),c=S.useMemo(()=>(i==null?void 0:i.messages)||[],[i]),d=Z(ue=>ue.loadTaskList),f=jS(ue=>ue.isAdvanced),p=S.useMemo(()=>!a||!i?a:i.kind==="child"&&(i.parentSessionId||i.rootSessionId)||a,[i,a]),v=Z(ue=>p?!!ue.taskLists[p]:!1),g=Z(si(a)),w=S.useMemo(()=>!a||!i?!1:!!(v||i.kind==="child"||g),[i,v,g,a]),m=Z(ue=>{if(!a)return!1;const me=Ul(a)(ue);return Object.keys(me).length>0?!0:ue.chats.some(V=>V.kind==="child"&&V.parentSessionId===a)});S.useEffect(()=>{!p||v||w&&d(p).catch(ue=>{console.warn(`[SessionWorkspaceShell] Failed to load task list for ${p}:`,ue)})},[p,v,w,d]);const x=S.useMemo(()=>{var re;if(!c||c.length===0)return null;const ue=new Map;let me=0,V=0,ae=0;for(const le of c){if(!xv(le))continue;const de=((re=le.result)==null?void 0:re.result)??"",pe=co(de),Ae=Gd(de);if(!pe||!Ae)continue;ae+=1,me+=Ae.added,V+=Ae.removed;const Me=ue.get(pe.file_path);Me?(Me.added+=Ae.added,Me.removed+=Ae.removed,Me.diffChunks.push(pe.diff.unified),Me.truncated=Me.truncated||!!pe.diff.truncated,Me.toolCount+=1,Me.workspace=Me.workspace??pe.workspace):ue.set(pe.file_path,{added:Ae.added,removed:Ae.removed,diffChunks:[pe.diff.unified],truncated:!!pe.diff.truncated,toolCount:1,workspace:pe.workspace})}if(ue.size===0)return null;const ve=Array.from(ue.entries()).map(([le,de])=>({filePath:le,added:de.added,removed:de.removed,unifiedDiff:de.diffChunks.join(`
246
+
247
+ `),truncated:de.truncated,toolCount:de.toolCount,workspace:de.workspace})).sort((le,de)=>le.filePath.localeCompare(de.filePath));return{totalAdded:me,totalRemoved:V,files:ve,changedTools:ae}},[c]),k=ct(ue=>ue.inspector.widthPx),C=ct(ue=>ue.inspector.minWidthPx),E=ct(ue=>ue.inspector.maxWidthPx),T=ct(ue=>ue.setInspectorWidthPx),P=c.length>0,A=!!((D=i==null?void 0:i.config)!=null&&D.goldConfig&&((((Q=(ie=i.config.goldConfig.evaluation_prompt)==null?void 0:ie.trim())==null?void 0:Q.length)??0)>0||i.config.goldConfig.enabled===!0)),O=S.useMemo(()=>r||Tf({isEmbedded:t,leafCount:s,isMobileViewport:o}),[t,o,s,r]),$=O.inspectorMode,U=!!(a&&(f&&P||A||w||m||x)),J=!!a&&($==="drawer"||U),[ee,I]=S.useState(()=>$==="rail"),[Y,z]=S.useState(!1);return S.useEffect(()=>{I($==="rail"?U:!1)},[U,$,a]),S.useEffect(()=>{if(typeof requestIdleCallback=="function"){const me=requestIdleCallback(()=>z(!0));return()=>cancelIdleCallback(me)}const ue=window.setTimeout(()=>z(!0),300);return()=>window.clearTimeout(ue)},[]),S.useEffect(()=>{if(typeof window>"u"||!a)return;const ue=me=>{var ve;(((ve=me.detail)==null?void 0:ve.sessionId)??null)===a&&I(!0)};return window.addEventListener(Xu,ue),()=>{window.removeEventListener(Xu,ue)}},[a]),l.jsx("div",{"data-session-workspace-shell":!0,"data-inspector-mode":$,"data-multi-pane":O.isMultiPane?"true":"false","data-inspector-toggle-placement":O.inspectorTogglePlacement,style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(we,{style:{flex:1,minHeight:0},children:J&&$==="rail"&&ee?l.jsx(Yd,{layout:"horizontal",sizesPx:[0,k],minFirstPx:320,minSecondPx:C,style:{flex:1,minHeight:0},handleSizePx:4,onResizeEnd:([,ue])=>{const me=Math.max(C,Math.min(E,ue));T(me)},first:l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Rm,{sessionId:a,embedded:t,paneCount:s,auxReady:Y,sessionDiffSummary:x,workspaceState:O,inspectorEligible:U,onRequestOpenInspector:()=>I(!0)})}),second:l.jsx(Im,{sessionId:a,auxReady:Y,mode:$,open:ee,onOpenChange:I,showMessagesView:P,shouldShowTaskPanel:w,hasSubAgents:m,sessionDiffSummary:x})}):l.jsxs(l.Fragment,{children:[l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Rm,{sessionId:a,embedded:t,paneCount:s,auxReady:Y,sessionDiffSummary:x,workspaceState:O,inspectorEligible:U,onRequestOpenInspector:()=>I(!0)})}),J?l.jsx(Im,{sessionId:a,auxReady:Y,mode:$,open:ee,onOpenChange:I,showMessagesView:P,shouldShowTaskPanel:w,hasSubAgents:m,sessionDiffSummary:x}):null]})})})},EO=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>l.jsx(PO,{sessionId:e,embedded:t,paneCount:n,workspaceState:r}),MO=rt.lazy(()=>Lt(()=>import("./index-BtKDULhw.js"),__vite__mapDeps([25,1,2,3,4,5,6,26]),import.meta.url).then(e=>({default:e.HomeDashboard}))),{useToken:RO}=st,{Text:AO}=ot,jO=4,IO=({leafId:e})=>{var ie;const{token:t}=RO(),{t:n}=qe(),r=ct(Q=>Q.tree),s=ct(Q=>Q.leafSessionIds),o=ct(Q=>Q.activeLeafId),a=ct(Q=>Q.setActiveLeafId),i=ct(Q=>Q.splitLeaf),c=ct(Q=>Q.closeLeaf),d=ct(Q=>Q.setLeafSessionId),f=Z(Q=>Q.selectSession),p=Z(Q=>Q.addChat),v=Z(Q=>Q.systemPrompts),g=Z(Q=>Q.lastSelectedPromptId),w=s[e]??null,m=Z(mr(w)),x=S.useMemo(()=>Fn(r),[r]),k=x.length,C=Math.max(0,x.indexOf(e))+1,E=k<jO,T=ty("(max-width: 768px)"),P=S.useMemo(()=>Tf({isEmbedded:!0,leafCount:k,isMobileViewport:T}),[T,k]),A=P.isMultiPane,$=A||!!w,U=P.isMultiPane,J=o===e,ee=((ie=m==null?void 0:m.title)==null?void 0:ie.trim())||n("chat.multiPane.selectSessionHint"),I=!T,Y=P.inspectorTogglePlacement==="pane_header"&&!!w,z=S.useCallback(Q=>{d(e,Q),a(e),f(Q)},[e,f,a,d]),D=S.useCallback(async()=>{var V,ae;const Q=v.find(ve=>ve.id===g),ue=(Q==null?void 0:Q.id)||(v.length>0?((V=v.find(ve=>ve.id==="general_assistant"))==null?void 0:V.id)||v[0].id:""),me=await p({title:n("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:ue,baseSystemPrompt:(Q==null?void 0:Q.content)||(v.length>0?((ae=v.find(ve=>ve.id==="general_assistant"))==null?void 0:ae.content)||v[0].content:""),lastUsedEnhancedPrompt:null}});d(e,me),a(e)},[p,g,v,n,e,d,a]);return l.jsxs("div",{className:"chat-pane-shell",onMouseDownCapture:()=>{Dn("pane focus (mouse)",{leafId:e,sessionId:w,prevActiveLeafId:o}),a(e),w&&f(w)},onFocusCapture:()=>{Dn("pane focus (focus)",{leafId:e,sessionId:w,prevActiveLeafId:o}),a(e)},style:{height:"100%",minHeight:0,border:U?`1px solid ${J?t.colorPrimaryBorder:t.colorBorderSecondary}`:"none",borderRadius:U?t.borderRadiusLG:0,overflow:"hidden",background:t.colorBgContainer,position:"relative"},children:[I?l.jsx("div",{className:"chat-pane-shell__header",style:{padding:`${t.paddingXS}px ${t.paddingSM}px`,borderBottom:`1px solid ${t.colorBorderSecondary}`,background:U?t.colorBgElevated:t.colorBgContainer},children:l.jsxs(we,{align:"center",justify:"space-between",gap:t.marginSM,style:{minWidth:0},children:[l.jsxs(we,{align:"center",gap:t.marginXS,style:{minWidth:0,flex:1},children:[U?l.jsx(Ye,{color:J?"blue":"default",style:{marginInlineEnd:0},children:n("chat.multiPane.paneLabel",{index:C,defaultValue:"Pane {{index}}"})}):null,l.jsx("div",{className:"chat-pane-shell__title",children:l.jsx(AO,{strong:!!w,type:w?void 0:"secondary",ellipsis:{tooltip:ee},children:ee})})]}),l.jsxs(we,{className:"chat-pane-shell__actions",align:"center",gap:4,children:[l.jsx(Ee,{size:"small",type:"text",icon:l.jsx(lx,{}),disabled:!E,title:n("chat.multiPane.splitHorizontal"),"aria-label":n("chat.multiPane.splitHorizontal"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),Dn("pane split request",{leafId:e,layout:"horizontal"}),i(e,"horizontal");const ue=ct.getState(),me=ue.leafSessionIds[ue.activeLeafId]??null;me&&f(me)}}),l.jsx(Ee,{size:"small",type:"text",icon:l.jsx(cx,{}),disabled:!E,title:n("chat.multiPane.splitVertical"),"aria-label":n("chat.multiPane.splitVertical"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),Dn("pane split request",{leafId:e,layout:"vertical"}),i(e,"vertical");const ue=ct.getState(),me=ue.leafSessionIds[ue.activeLeafId]??null;me&&f(me)}}),l.jsx(Ee,{size:"small",type:"text",icon:l.jsx(ey,{}),disabled:!w,title:n("chat.multiPane.selectMessagesToExport"),"aria-label":n("chat.multiPane.selectMessagesToExport"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(Hu,{detail:{sessionId:w}}))}}),Y?l.jsx(Ee,{size:"small",type:"text",icon:l.jsx(Md,{}),title:n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),"aria-label":n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(Xu,{detail:{sessionId:w}}))}}):null,l.jsx(Ee,{size:"small",type:"text",danger:!0,icon:l.jsx(ks,{}),disabled:!$,title:n("chat.multiPane.closePane"),"aria-label":n("chat.multiPane.closePane"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),Dn("pane close request",{leafId:e}),A?c(e):d(e,null);const ue=ct.getState(),me=ue.leafSessionIds[ue.activeLeafId]??null;f(me)}})]})]})}):null,l.jsx("div",{className:"chat-pane-shell__content",children:w?l.jsx(Ka,{name:"ChatView",children:l.jsx(EO,{sessionId:w,embedded:!0,paneCount:k,workspaceState:P})}):l.jsx(Ka,{name:"HomeDashboard",children:l.jsx(rt.Suspense,{fallback:null,children:l.jsx(MO,{onOpenSession:z,onCreateSession:D})})})})]})},OO=({node:e})=>{const t=ct(r=>r.splitSizesPx[e.id]??null),n=ct(r=>r.setSplitSizesPx);return l.jsx(Yd,{layout:e.layout,sizesPx:t,defaultSplitRatio:.5,minFirstPx:240,minSecondPx:240,style:{height:"100%",minHeight:0},onResizeEnd:r=>{n(e.id,r)},first:l.jsx(yd,{node:e.children[0]}),second:l.jsx(yd,{node:e.children[1]})})},yd=({node:e})=>e.type==="leaf"?l.jsx(IO,{leafId:e.id}):l.jsx(OO,{node:e}),Om=()=>{const e=ct(f=>f.tree),t=ct(f=>f.leafSessionIds),n=ct(f=>f.activeLeafId),r=ct(f=>f.setActiveLeafId),s=ct(f=>f.setLeafSessionId),o=Z(f=>f.chats.map(p=>p.id).join(",")),a=S.useMemo(()=>new Set(o.split(",")),[o]),i=Z(f=>f.currentSessionId),c=S.useRef(!1),d=S.useMemo(()=>Fn(e),[e]);return S.useEffect(()=>{d.length!==0&&(d.includes(n)||r(d[0]))},[n,d,r]),S.useEffect(()=>{const f=new Set(Object.values(t).filter(Boolean));let p=!1;for(const v of f)if(!a.has(v)){p=!0;break}if(p)for(const[v,g]of Object.entries(t))g&&!a.has(g)&&s(v,null)},[a,t,s]),S.useEffect(()=>{if(!i||c.current)return;if(!Object.values(t).some(Boolean)){s(n,i),c.current=!0;return}c.current=!0},[n,i,t,s]),l.jsx("div",{style:{height:"100%",minHeight:0,padding:0},children:l.jsx(yd,{node:e})})},$O=rt.lazy(()=>Lt(()=>import("./index-BPzdRxWR.js"),__vite__mapDeps([27,1,2,3,4,28,5,6,21,29]),import.meta.url).then(e=>({default:e.SystemSettingsPage}))),LO=rt.lazy(()=>Lt(()=>import("./index-Dx9gwpkf.js"),__vite__mapDeps([30,1,2,3,4,5,6,31]),import.meta.url).then(e=>({default:e.CommandPalette}))),DO=rt.lazy(()=>Lt(()=>import("./FeatureGuide-pqK-Gb1K.js"),__vite__mapDeps([32,1,2,3,28]),import.meta.url).then(e=>({default:e.FeatureGuide}))),$m="bodhi_open_provider_on_entry",FO="__LOTUS_COMMAND_PALETTE_FORCE_OPEN__",NO=()=>(Dk(),null),zO=({themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r})=>{const s=Fa(I=>I.isOpen),o=Fa(I=>I.close),{t:a}=qe(),{token:i}=st.useToken(),c=zd(),d=S.useMemo(()=>nv()==="macos",[]);S.useEffect(()=>{localStorage.getItem($m)==="true"&&(localStorage.removeItem($m),Fa.getState().open("chat","provider"))},[]),lC(),S.useEffect(()=>{Fh.clear(),Nh()},[e]),S.useEffect(()=>{Fh.clear(),Nh()},[c]);const f=ct(I=>I.sidebar.collapsed),p=ct(I=>I.sidebar.widthPx),v=ct(I=>I.sidebar.minWidthPx),g=ct(I=>I.sidebar.maxWidthPx),w=ct(I=>I.setSidebarCollapsed),m=ct(I=>I.setSidebarWidthPx),x=18,k=0,E=!s&&f&&d?44:k,T=0,P=88,A=10,O="none",$=Wl(),U="min(86vw, 360px)",[J,ee]=S.useState(!1);return S.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Y=requestIdleCallback(()=>ee(!0));return()=>cancelIdleCallback(Y)}const I=window.setTimeout(()=>ee(!0),200);return()=>window.clearTimeout(I)},[]),S.useEffect(()=>{const I=Y=>{!((Y.metaKey||Y.ctrlKey)&&Y.key.toLowerCase()==="k")||J||(Y.preventDefault(),window[FO]=!0,ee(!0))};return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)},[J]),l.jsxs(l.Fragment,{children:[l.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:a("app.skipToContent","Skip to main content")}),J&&l.jsx(rt.Suspense,{fallback:null,children:l.jsx(LO,{})}),J&&l.jsx(rt.Suspense,{fallback:null,children:l.jsx(DO,{disabled:s})}),J&&l.jsx(NO,{}),l.jsx(Hs,{style:{minHeight:"100vh",height:"100vh",overflow:"hidden",background:"transparent",display:"flex",flexDirection:"row",position:"relative"},children:l.jsxs("div",{style:{display:"flex",flex:1,minHeight:0,height:"100%",width:"100%",boxSizing:"border-box",paddingTop:E,paddingLeft:k,paddingRight:k,paddingBottom:k,background:"transparent"},children:[s?l.jsx(Hs,{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:`${x}px 0 0 ${x}px`,border:O,overflow:"hidden"},children:l.jsx(Ka,{name:"SystemSettings",children:l.jsx(rt.Suspense,{fallback:l.jsx("div",{style:{padding:24,color:"var(--ant-color-text-secondary)"},children:a("app.loading","Loading…")}),children:l.jsx($O,{themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r,onBack:o})})})}):l.jsx(l.Fragment,{children:$?l.jsxs(l.Fragment,{children:[l.jsx(Bl,{placement:"left",closable:!1,onClose:()=>w(!0),open:!f,width:U,styles:{body:{padding:0,background:"var(--lotus-sidebar-bg)"}},children:l.jsx($h,{})}),l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{flex:1,height:"100%",minHeight:0,borderRadius:`${x}px`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(Hs,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(Om,{})})})]}):l.jsx(Yd,{layout:"horizontal",style:{flex:1,minHeight:0,height:"100%",background:"transparent"},sizesPx:[f?T:p,0],minFirstPx:f?T:v,minSecondPx:320,disabled:f,handleSizePx:f?0:2,onResizeEnd:([I])=>{if(f)return;const Y=Math.max(v,Math.min(g,I));m(Y)},first:l.jsx("div",{className:"lotus-shell-panel lotus-shell-sidebar",style:{height:"100%",minHeight:0,borderRadius:`${x}px 0 0 ${x}px`,border:O,overflow:"hidden",background:"var(--lotus-sidebar-bg)"},children:l.jsx($h,{})}),second:l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{height:"100%",minHeight:0,borderRadius:f?`${x}px`:`0 ${x}px ${x}px 0`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(Hs,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(Om,{})})})})}),!s&&f?l.jsx(Ee,{"data-testid":"show-sidebar",type:"text",size:"small",icon:l.jsx(ux,{}),onClick:()=>w(!1),title:a("layout.showSidebar"),"aria-label":a("layout.showSidebar"),className:"lotus-toolbar-icon lotus-floating-sidebar-toggle",style:{position:"absolute",top:$?8:A,left:$?8:P,zIndex:40,width:36,height:36,borderRadius:12,border:`1px solid ${i.colorBorderSecondary}`,background:i.colorBgElevated,boxShadow:i.boxShadowSecondary}}):null]})})]})},BO="bodhi_open_provider_on_entry",{Title:Lm,Paragraph:Dm}=ot,WO=()=>{const{t:e}=qe(),[t,n]=S.useState(!1),[r,s]=S.useState(null),[o,a]=S.useState(!1),i=async c=>{try{s(null),a(!0),await ro.getInstance().markSetupComplete(),c&&localStorage.setItem(BO,"true"),n(!0)}catch(d){console.error("Failed to complete setup:",d),s(e("setup.error.completeFailed"))}finally{a(!1)}};return t?l.jsxs("div",{"data-testid":"setup-complete",className:"setup-complete",children:[l.jsx(Lm,{level:2,children:e("setup.complete.title")}),l.jsx(Dm,{children:e("setup.complete.restartMessage")}),l.jsx(Ee,{"data-testid":"setup-restart",onClick:()=>window.location.reload(),children:e("setup.complete.restartMessage")})]}):l.jsx("div",{className:"setup-page",children:l.jsxs(Bt,{className:"setup-page__card",children:[l.jsxs("div",{className:"setup-page__hero",children:[l.jsx("div",{className:"setup-page__hero-icon",children:l.jsx(rh,{})}),l.jsx(Lm,{level:2,style:{marginTop:0},children:e("setup.welcome.heading")}),l.jsx(Dm,{type:"secondary",children:e("setup.welcome.description")})]}),l.jsx(Jn,{message:e("setup.welcome.providerHint"),type:"info",showIcon:!0,style:{marginBottom:16}}),l.jsx(Jn,{message:e("setup.welcome.proxyHint"),type:"info",showIcon:!0,style:{marginBottom:24}}),r?l.jsx(Jn,{message:r,type:"error",showIcon:!0,style:{marginBottom:16}}):null,l.jsxs("div",{className:"setup-page__actions",children:[l.jsx(Ee,{"data-testid":"setup-configure-provider",icon:l.jsx(Nl,{}),onClick:()=>void i(!0),loading:o,children:e("setup.button.configureProvider")}),l.jsx(Ee,{"data-testid":"setup-get-started",type:"primary",icon:l.jsx(rh,{}),onClick:()=>void i(!1),loading:o,children:e("setup.button.getStarted")})]})]})})},{Title:UO,Text:Fm}=ot,qO=({onVerified:e,verifyPassword:t})=>{const{t:n}=qe(),[r,s]=S.useState(""),[o,a]=S.useState(null),[i,c]=S.useState(!1),d=async()=>{const f=r.trim();if(!f){a(n("app.passwordGate.validation.required"));return}c(!0),a(null);try{await t(f),await e(),s("")}catch(p){const v=p instanceof Error?p.message:n("app.passwordGate.validation.verifyFailed");a(v)}finally{c(!1)}};return l.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:l.jsx(Bt,{style:{width:"100%",maxWidth:480},children:l.jsxs(ze,{direction:"vertical",size:20,style:{width:"100%"},children:[l.jsxs("div",{children:[l.jsx(UO,{level:3,style:{marginBottom:8},children:n("app.passwordGate.title")}),l.jsx(Fm,{type:"secondary",children:n("app.passwordGate.description")})]}),o?l.jsx(Jn,{type:"error",showIcon:!0,message:o}):null,l.jsxs(ze,{direction:"vertical",size:8,style:{width:"100%"},children:[l.jsx(Fm,{strong:!0,children:n("app.passwordGate.passwordLabel")}),l.jsx(Ts.Password,{value:r,autoFocus:!0,autoComplete:"current-password",onChange:f=>s(f.target.value),onPressEnter:()=>void d(),placeholder:n("app.passwordGate.passwordPlaceholder")})]}),l.jsx(Ee,{type:"primary",block:!0,loading:i,onClick:()=>void d(),children:n("app.passwordGate.submit")})]})})})};var zo={},du={exports:{}},Nm;function It(){return Nm||(Nm=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}(du)),du.exports}var Bo={},zm;function HO(){if(zm)return Bo;zm=1,Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.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 Bo.default=e,Bo}var Wo={},Uo={},qo={},fu={exports:{}},hu={exports:{}},pu={exports:{}},mu={exports:{}},Bm;function XO(){return Bm||(Bm=1,function(e){var t=Wg().default;function n(r,s){if(t(r)!="object"||!r)return r;var o=r[Symbol.toPrimitive];if(o!==void 0){var a=o.call(r,s||"default");if(t(a)!="object")return a;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}(mu)),mu.exports}var Wm;function YO(){return Wm||(Wm=1,function(e){var t=Wg().default,n=XO();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}(pu)),pu.exports}var Um;function KO(){return Um||(Um=1,function(e){var t=YO();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}(hu)),hu.exports}var qm;function fo(){return qm||(qm=1,function(e){var t=KO();function n(s,o){var a=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);o&&(i=i.filter(function(c){return Object.getOwnPropertyDescriptor(s,c).enumerable})),a.push.apply(a,i)}return a}function r(s){for(var o=1;o<arguments.length;o++){var a=arguments[o]!=null?arguments[o]:{};o%2?n(Object(a),!0).forEach(function(i){t(s,i,a[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach(function(i){Object.defineProperty(s,i,Object.getOwnPropertyDescriptor(a,i))})}return s}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(fu)),fu.exports}var Ho={},Hm;function ho(){return Hm||(Hm=1,Object.defineProperty(Ho,"__esModule",{value:!0}),Ho.commonLocale=void 0,Ho.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}),Ho}var Xm;function VO(){if(Xm)return qo;Xm=1;var e=It().default;Object.defineProperty(qo,"__esModule",{value:!0}),qo.default=void 0;var t=e(fo()),n=ho(),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 qo.default=r,qo}var Xo={},Ym;function IS(){if(Ym)return Xo;Ym=1,Object.defineProperty(Xo,"__esModule",{value:!0}),Xo.default=void 0;const e={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};return Xo.default=e,Xo}var Km;function OS(){if(Km)return Uo;Km=1;var e=It().default;Object.defineProperty(Uo,"__esModule",{value:!0}),Uo.default=void 0;var t=e(VO()),n=e(IS());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 Uo.default=r,Uo}var Vm;function GO(){if(Vm)return Wo;Vm=1;var e=It().default;Object.defineProperty(Wo,"__esModule",{value:!0}),Wo.default=void 0;var t=e(OS());return Wo.default=t.default,Wo}var Gm;function JO(){if(Gm)return zo;Gm=1;var e=It().default;Object.defineProperty(zo,"__esModule",{value:!0}),zo.default=void 0;var t=e(HO()),n=e(GO()),r=e(OS()),s=e(IS());const o="${label} is not a valid ${type}",a={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 zo.default=a,zo}var gu,Jm;function QO(){return Jm||(Jm=1,gu=JO()),gu}var ZO=QO();const e$=Cs(ZO);var Yo={},Ko={},Qm;function t$(){if(Qm)return Ko;Qm=1,Object.defineProperty(Ko,"__esModule",{value:!0}),Ko.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 Ko.default=e,Ko}var Vo={},Go={},Jo={},Zm;function n$(){if(Zm)return Jo;Zm=1;var e=It().default;Object.defineProperty(Jo,"__esModule",{value:!0}),Jo.default=void 0;var t=e(fo()),n=ho(),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 Jo.default=r,Jo}var Qo={},eg;function $S(){if(eg)return Qo;eg=1,Object.defineProperty(Qo,"__esModule",{value:!0}),Qo.default=void 0;const e={placeholder:"Sélectionner l'heure",rangePlaceholder:["Heure de début","Heure de fin"]};return Qo.default=e,Qo}var tg;function LS(){if(tg)return Go;tg=1;var e=It().default;Object.defineProperty(Go,"__esModule",{value:!0}),Go.default=void 0;var t=e(n$()),n=e($S());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 Go.default=r,Go}var ng;function r$(){if(ng)return Vo;ng=1;var e=It().default;Object.defineProperty(Vo,"__esModule",{value:!0}),Vo.default=void 0;var t=e(LS());return Vo.default=t.default,Vo}var rg;function s$(){if(rg)return Yo;rg=1;var e=It().default;Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.default=void 0;var t=e(t$()),n=e(r$()),r=e(LS()),s=e($S());const o="La valeur du champ ${label} n'est pas valide pour le type ${type}",a={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 Yo.default=a,Yo}var yu,sg;function o$(){return sg||(sg=1,yu=s$()),yu}var a$=o$();const i$=Cs(a$);var Zo={},ea={},og;function l$(){if(og)return ea;og=1,Object.defineProperty(ea,"__esModule",{value:!0}),ea.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 ea.default=e,ea}var ta={},na={},ra={},ag;function c$(){if(ag)return ra;ag=1;var e=It().default;Object.defineProperty(ra,"__esModule",{value:!0}),ra.default=void 0;var t=e(fo()),n=ho(),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 ra.default=r,ra}var sa={},ig;function DS(){if(ig)return sa;ig=1,Object.defineProperty(sa,"__esModule",{value:!0}),sa.default=void 0;const e={placeholder:"समय का चयन करें",rangePlaceholder:["आरंभिक समय","अंत समय"]};return sa.default=e,sa}var lg;function FS(){if(lg)return na;lg=1;var e=It().default;Object.defineProperty(na,"__esModule",{value:!0}),na.default=void 0;var t=e(c$()),n=e(DS());const r={lang:Object.assign({placeholder:"तारीख़ चुनें",yearPlaceholder:"वर्ष चुनें",quarterPlaceholder:"तिमाही चुनें",monthPlaceholder:"महीना चुनिए",weekPlaceholder:"सप्ताह चुनें",rangePlaceholder:["प्रारंभ तिथि","समाप्ति तिथि"],rangeYearPlaceholder:["आरंभिक वर्ष","अंत वर्ष"],rangeMonthPlaceholder:["आरंभिक महीना","अंत महीना"],rangeWeekPlaceholder:["आरंभिक सप्ताह","अंत सप्ताह"]},t.default),timePickerLocale:Object.assign({},n.default)};return na.default=r,na}var cg;function u$(){if(cg)return ta;cg=1;var e=It().default;Object.defineProperty(ta,"__esModule",{value:!0}),ta.default=void 0;var t=e(FS());return ta.default=t.default,ta}var ug;function d$(){if(ug)return Zo;ug=1;var e=It().default;Object.defineProperty(Zo,"__esModule",{value:!0}),Zo.default=void 0;var t=e(l$()),n=e(u$()),r=e(FS()),s=e(DS());const o="${label} मान्य ${type} नहीं है",a={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 Zo.default=a,Zo}var vu,dg;function f$(){return dg||(dg=1,vu=d$()),vu}var h$=f$();const p$=Cs(h$);var oa={},aa={},fg;function m$(){if(fg)return aa;fg=1,Object.defineProperty(aa,"__esModule",{value:!0}),aa.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 aa.default=e,aa}var ia={},la={},ca={},hg;function g$(){if(hg)return ca;hg=1;var e=It().default;Object.defineProperty(ca,"__esModule",{value:!0}),ca.default=void 0;var t=e(fo()),n=ho(),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 ca.default=r,ca}var ua={},pg;function NS(){if(pg)return ua;pg=1,Object.defineProperty(ua,"__esModule",{value:!0}),ua.default=void 0;const e={placeholder:"時間を選択",rangePlaceholder:["開始時間","終了時間"]};return ua.default=e,ua}var mg;function zS(){if(mg)return la;mg=1;var e=It().default;Object.defineProperty(la,"__esModule",{value:!0}),la.default=void 0;var t=e(g$()),n=e(NS());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 la.default=r,la}var gg;function y$(){if(gg)return ia;gg=1;var e=It().default;Object.defineProperty(ia,"__esModule",{value:!0}),ia.default=void 0;var t=e(zS());return ia.default=t.default,ia}var yg;function v$(){if(yg)return oa;yg=1;var e=It().default;Object.defineProperty(oa,"__esModule",{value:!0}),oa.default=void 0;var t=e(m$()),n=e(y$()),r=e(zS()),s=e(NS());const o="${label}は有効な${type}ではありません",a={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 oa.default=a,oa}var bu,vg;function b$(){return vg||(vg=1,bu=v$()),bu}var S$=b$();const w$=Cs(S$);var da={},fa={},bg;function x$(){if(bg)return fa;bg=1,Object.defineProperty(fa,"__esModule",{value:!0}),fa.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 fa.default=e,fa}var ha={},pa={},ma={},Sg;function _$(){if(Sg)return ma;Sg=1;var e=It().default;Object.defineProperty(ma,"__esModule",{value:!0}),ma.default=void 0;var t=e(fo()),n=ho(),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 ma.default=r,ma}var ga={},wg;function BS(){if(wg)return ga;wg=1,Object.defineProperty(ga,"__esModule",{value:!0}),ga.default=void 0;const e={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};return ga.default=e,ga}var xg;function WS(){if(xg)return pa;xg=1;var e=It().default;Object.defineProperty(pa,"__esModule",{value:!0}),pa.default=void 0;var t=e(_$()),n=e(BS());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="确定",pa.default=r,pa}var _g;function C$(){if(_g)return ha;_g=1;var e=It().default;Object.defineProperty(ha,"__esModule",{value:!0}),ha.default=void 0;var t=e(WS());return ha.default=t.default,ha}var Cg;function k$(){if(Cg)return da;Cg=1;var e=It().default;Object.defineProperty(da,"__esModule",{value:!0}),da.default=void 0;var t=e(x$()),n=e(C$()),r=e(WS()),s=e(BS());const o="${label}不是一个有效的${type}",a={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 da.default=a,da}var Su,kg;function T$(){return kg||(kg=1,Su=k$()),Su}var P$=T$();const E$=Cs(P$);var ya={},va={},Tg;function M$(){if(Tg)return va;Tg=1,Object.defineProperty(va,"__esModule",{value:!0}),va.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 va.default=e,va}var ba={},Sa={},wa={},Pg;function R$(){if(Pg)return wa;Pg=1;var e=It().default;Object.defineProperty(wa,"__esModule",{value:!0}),wa.default=void 0;var t=e(fo()),n=ho(),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 wa.default=r,wa}var xa={},Eg;function US(){if(Eg)return xa;Eg=1,Object.defineProperty(xa,"__esModule",{value:!0}),xa.default=void 0;const e={placeholder:"請選擇時間"};return xa.default=e,xa}var Mg;function qS(){if(Mg)return Sa;Mg=1;var e=It().default;Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.default=void 0;var t=e(R$()),n=e(US());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="確 定",Sa.default=r,Sa}var Rg;function A$(){if(Rg)return ba;Rg=1;var e=It().default;Object.defineProperty(ba,"__esModule",{value:!0}),ba.default=void 0;var t=e(qS());return ba.default=t.default,ba}var Ag;function j$(){if(Ag)return ya;Ag=1;var e=It().default;Object.defineProperty(ya,"__esModule",{value:!0}),ya.default=void 0;var t=e(M$()),n=e(A$()),r=e(qS()),s=e(US());const o="${label}不是一個有效的${type}",a={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 ya.default=a,ya}var wu,jg;function I$(){return jg||(jg=1,wu=j$()),wu}var O$=I$();const $$=Cs(O$),Ig=e=>{switch(e){case"zh-CN":return E$;case"zh-TW":return $$;case"fr-FR":return i$;case"ja-JP":return w$;case"hi-IN":return p$;default:return e$}},HS="lotus_vdi_safe_mode",Og=()=>{try{return localStorage.getItem(HS)==="true"}catch{return!1}},PL=e=>{try{localStorage.setItem(HS,e.toString())}catch(t){console.error("[vdiSafeMode] Failed to persist setting:",t)}},XS={colorPrimary:"#157f6b",colorPrimaryHover:"#1b9a82",colorPrimaryActive:"#0f5f51",colorInfo:"#2b6e8f",colorLink:"#157f6b",colorLinkHover:"#1b9a82",colorLinkActive:"#0f5f51",colorSuccess:"#2e9e6f",colorWarning:"#c08a2e",colorError:"#d24b3c",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:"#eef5f1",colorBgContainer:"rgba(255, 255, 255, 0.82)",colorBgElevated:"rgba(255, 255, 255, 0.9)",colorBgSpotlight:"rgba(21, 127, 107, 0.16)",colorPrimaryBg:"#e6f1ec",colorPrimaryBgHover:"#cfe6dd",colorPrimaryBorder:"#9fd0c1",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)"},YS={colorPrimary:"#46c2a0",colorPrimaryHover:"#6ad7b8",colorPrimaryActive:"#2e9e7f",colorInfo:"#5aa9cf",colorLink:"#46c2a0",colorLinkHover:"#6ad7b8",colorLinkActive:"#2e9e7f",colorSuccess:"#4cc08c",colorWarning:"#dcae4c",colorError:"#ef6a5c",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:"#070f0d",colorBgContainer:"rgba(11, 23, 20, 0.76)",colorBgElevated:"rgba(15, 31, 27, 0.9)",colorBgSpotlight:"rgba(21, 127, 107, 0.22)",colorPrimaryBg:"rgba(21, 127, 107, 0.16)",colorPrimaryBgHover:"rgba(21, 127, 107, 0.22)",colorPrimaryBorder:"rgba(70, 194, 160, 0.30)",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)"},KS={Tag:{defaultBg:"rgba(21, 127, 107, 0.10)",defaultColor:"#0f5f51"},Table:{bodySortBg:"rgba(21, 127, 107, 0.08)"}},VS={Tag:{defaultBg:"rgba(70, 194, 160, 0.18)",defaultColor:"#c8efe2"},Table:{bodySortBg:"rgba(70, 194, 160, 0.14)"}},L$={...XS,colorBgElevated:"#ffffff",colorBgSpotlight:"#0f172a",colorFillTertiary:"#f3f7f6"},D$={...YS,colorBgElevated:"#0f1b18",colorBgSpotlight:"#22332f",colorFillTertiary:"#162622"},F$={...KS,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"}},N$={...VS,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 z$(e,t){const n=e==="dark"?t?D$:YS:t?L$:XS,r=e==="dark"?t?N$:VS:t?F$:KS,s=e==="dark"?st.darkAlgorithm:st.defaultAlgorithm;return{token:n,components:r,algorithm:s}}async function B$(){const e=On.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 a=JSON.parse(o);a&&typeof a.isExpanded=="boolean"&&(await e.saveToolSessionCollapse(r,s,{isExpanded:a.isExpanded,expandedTools:a.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")}function W$(){const{t:e}=qe(),t=bl(P=>P.themeMode),n=bl(P=>P.setThemeMode),[r,s]=S.useState(()=>dx()),[o,a]=S.useState(()=>Og()),[i,c]=S.useState(null),[d,f]=S.useState(null),[p,v]=S.useState(0),[g,w]=S.useState(null),[m,x]=S.useState(!1);S.useEffect(()=>{localStorage.setItem(ry,t)},[t]),S.useEffect(()=>{localStorage.setItem(fx,r),hx(r)},[r]),S.useEffect(()=>{let P=!1;const A=Date.now(),O=async()=>{try{const $=ro.getInstance(),U=await $.getAccessStatus();if(P)return;if(f(null),w(U),U.requires_password&&!m){c(!1);return}const J=await $.getSetupStatus();if(P)return;c(J.is_complete)}catch($){if(P)return;const U=Date.now()-A;if(U>=2e4){const I=xs(),Y=$ instanceof Error&&$.message.trim()?$.message:"Unknown error";f(e("app.backendNotReachable",{baseUrl:I,message:Y}));return}const ee=Math.min(500+Math.floor(U/2),2e3);setTimeout(()=>{P||O()},ee)}};return O(),()=>{P=!0}},[m,p,e]),S.useEffect(()=>{document.body.setAttribute("data-theme",t)},[t]),S.useEffect(()=>{const P=()=>{const A=Og();a(A),document.body.setAttribute("data-vdi-safe",A?"true":"false");const O=document.getElementById("root");O&&O.setAttribute("data-vdi-safe",A?"true":"false")};return P(),window.addEventListener("storage",P),window.addEventListener("lotus-vdi-safe-mode-change",P),()=>{window.removeEventListener("storage",P),window.removeEventListener("lotus-vdi-safe-mode-change",P)}},[]),S.useEffect(()=>{var A;const P=(A=window.__TAURI_INTERNALS__)==null?void 0:A.invoke;typeof P=="function"&&P("set_window_theme",{theme:t}).catch(O=>{console.warn("[App] Failed to sync native window theme:",O)})},[t]),S.useEffect(()=>{i&&Ld().then(()=>Dd()).catch(P=>{console.error("[App] Bootstrap error:",P)})},[i]),S.useEffect(()=>{const P=On.getInstance();P.cleanupStaleData(30).catch(O=>{console.warn("[App] Failed to cleanup stale storage data:",O)});const A=setInterval(()=>{P.cleanupStaleData(30).catch(()=>{})},24*60*60*1e3);return()=>clearInterval(A)},[]),S.useEffect(()=>{const P=setTimeout(()=>{B$().catch(A=>{console.warn("[App] Storage migration failed:",A)})},5e3);return()=>clearTimeout(P)},[]);const{token:k,components:C,algorithm:E}=z$(t,o);if(g!=null&&g.requires_password&&!m)return l.jsx(sh,{locale:Ig(r),theme:{token:k,algorithm:E,components:C},children:l.jsx(Tn,{children:l.jsx(Ka,{name:"PasswordGatePage",children:l.jsx(qO,{verifyPassword:async P=>{await ro.getInstance().verifyAccessPassword(P)},onVerified:async()=>{x(!0),f(null),v(P=>P+1)}})})})});if(i===null)return d?l.jsxs("div",{style:{padding:40,textAlign:"center"},children:[l.jsx("div",{style:{marginBottom:12},children:d}),l.jsx(Ee,{type:"primary",onClick:()=>{f(null),w(null),c(null),v(P=>P+1)},children:e("app.retry")})]}):l.jsx("div",{style:{padding:40,textAlign:"center"},children:e("app.loading")});const T=i?l.jsx(zO,{themeMode:t,onThemeModeChange:n,locale:r,onLocaleChange:s}):l.jsx(WO,{});return l.jsx(sh,{locale:Ig(r),theme:{token:k,algorithm:E,components:C},children:l.jsx(Tn,{children:l.jsx(Ka,{name:"App",children:l.jsx("div",{style:{position:"relative"},children:T})})})})}const EL=Object.freeze(Object.defineProperty({__proto__:null,default:W$},Symbol.toStringTag,{value:"Module"}));export{ro as $,TL as A,kr as B,Yu as C,Ue as D,SE as E,Ha as F,Hd as G,sI as H,ol as I,ck as J,lk as K,ik as L,fk as M,Vs as N,vk as O,Ul as P,rP as Q,Ly as R,Pn as S,JT as T,Iu as U,as as V,zd as W,cL as X,uL as Y,pL as Z,Px as _,ht as a,Ca as a0,ys as a1,Xd as a2,gP as a3,V$ as a4,uP as a5,Ch as a6,gL as a7,yL as a8,LT as a9,NT as aa,sv as ab,Og as ac,XT as ad,mL as ae,hL as af,fL as ag,dL as ah,PL as ai,G$ as aj,lL as ak,EL as al,Da as b,Fa as c,bl as d,ct as e,jS as f,Fn as g,so as h,Ad as i,av as j,mt as k,Ry as l,k_ as m,mj as n,G0 as o,mr as p,jc as q,fy as r,si as s,Ar as t,Z as u,Zh as v,Na as w,ke as x,lo as y,ei as z};