@bigduu/lotus 2026.5.29 → 2026.5.30

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 (74) hide show
  1. package/dist/assets/App-D3csea82.js +245 -0
  2. package/dist/assets/{FeatureGuide-BEvoRR9h.js → FeatureGuide-WswLwoHO.js} +1 -1
  3. package/dist/assets/{MetricsService-C3SA5O-z.js → MetricsService-dBlApAzA.js} +1 -1
  4. package/dist/assets/{SubAgentsPanel-DankG8co.js → SubAgentsPanel-1J9eU6HS.js} +1 -1
  5. package/dist/assets/{architectureDiagram-3BPJPVTR-BxRN2904.js → architectureDiagram-3BPJPVTR-BckxpZW_.js} +1 -1
  6. package/dist/assets/{blockDiagram-GPEHLZMM-BUdOFKXS.js → blockDiagram-GPEHLZMM-BfXz5GZp.js} +1 -1
  7. package/dist/assets/{c4Diagram-AAUBKEIU-R7VM_jb2.js → c4Diagram-AAUBKEIU-Cd72GXZG.js} +1 -1
  8. package/dist/assets/{chunk-2J33WTMH-C1T3QgQd.js → chunk-2J33WTMH-U_PdFANU.js} +1 -1
  9. package/dist/assets/{chunk-4BX2VUAB-25Fo2TVO.js → chunk-4BX2VUAB-O_jazZ2T.js} +1 -1
  10. package/dist/assets/{chunk-55IACEB6-BGyfC2jK.js → chunk-55IACEB6-5UylDpQB.js} +1 -1
  11. package/dist/assets/{chunk-727SXJPM-RKlR8ckj.js → chunk-727SXJPM-DH2cqvYy.js} +1 -1
  12. package/dist/assets/{chunk-AQP2D5EJ-C55Msx4c.js → chunk-AQP2D5EJ-CT7Gc5S2.js} +1 -1
  13. package/dist/assets/{chunk-FMBD7UC4-h0twIch2.js → chunk-FMBD7UC4-nXSVcWgU.js} +1 -1
  14. package/dist/assets/{chunk-ND2GUHAM-DyslQZ1W.js → chunk-ND2GUHAM-zl6hPuET.js} +1 -1
  15. package/dist/assets/{chunk-QZHKN3VN-Dqthq7BH.js → chunk-QZHKN3VN-GNJt4FcN.js} +1 -1
  16. package/dist/assets/classDiagram-4FO5ZUOK-qkEIsjts.js +1 -0
  17. package/dist/assets/classDiagram-v2-Q7XG4LA2-qkEIsjts.js +1 -0
  18. package/dist/assets/{cose-bilkent-S5V4N54A-CkpcGEHo.js → cose-bilkent-S5V4N54A-Kyzm36fn.js} +1 -1
  19. package/dist/assets/{dagre-BM42HDAG-C3J21rxW.js → dagre-BM42HDAG-D49oMA8k.js} +1 -1
  20. package/dist/assets/{diagram-2AECGRRQ-C61YsAB8.js → diagram-2AECGRRQ-DmFsRfUD.js} +1 -1
  21. package/dist/assets/{diagram-5GNKFQAL-Caw10HFd.js → diagram-5GNKFQAL-uQtS07Me.js} +1 -1
  22. package/dist/assets/{diagram-KO2AKTUF-CYt9RoUh.js → diagram-KO2AKTUF-D1nppaIm.js} +1 -1
  23. package/dist/assets/{diagram-LMA3HP47-B5C2a2_L.js → diagram-LMA3HP47-zqAs84Ke.js} +1 -1
  24. package/dist/assets/{diagram-OG6HWLK6-fEaxrU7x.js → diagram-OG6HWLK6-DhwNMDsy.js} +1 -1
  25. package/dist/assets/{en-US-DCV88PnO.js → en-US-Bn6iZkOI.js} +1 -1
  26. package/dist/assets/{erDiagram-TEJ5UH35-GSKZF-im.js → erDiagram-TEJ5UH35-BrlM5CSe.js} +1 -1
  27. package/dist/assets/{flowDiagram-I6XJVG4X-DuSuzMpf.js → flowDiagram-I6XJVG4X-DW8rny64.js} +1 -1
  28. package/dist/assets/{ganttDiagram-6RSMTGT7-Cu_jEY-M.js → ganttDiagram-6RSMTGT7-DAw-BWSY.js} +1 -1
  29. package/dist/assets/{gitGraphDiagram-PVQCEYII-zECKggi3.js → gitGraphDiagram-PVQCEYII-BPa5-uQf.js} +1 -1
  30. package/dist/assets/{index-Czl6lcNT.js → index-79boilyG.js} +1 -1
  31. package/dist/assets/{index-DMAgXK8O.js → index-BClD_Kuo.js} +1 -1
  32. package/dist/assets/{index-BZvX5d4s.js → index-BIexw-RU.js} +1 -1
  33. package/dist/assets/{index-4NqkovnM.js → index-Bt1I6ZoX.js} +1 -1
  34. package/dist/assets/{index-BfAjm2cg.js → index-CW352hcn.js} +1 -1
  35. package/dist/assets/{index-Cej2Q9Bg.js → index-CZufMAVA.js} +1 -1
  36. package/dist/assets/{index-BdFrXiGe.js → index-CoGZNEv_.js} +1 -1
  37. package/dist/assets/{index-hdos2Xoy.js → index-CpKeyar-.js} +1 -1
  38. package/dist/assets/{index-CJdw34gN.js → index-CzInZqzj.js} +1 -1
  39. package/dist/assets/index-D-NMfOT0.js +1 -0
  40. package/dist/assets/{index-6wyG_o5U.js → index-EX0mHOrI.js} +1 -1
  41. package/dist/assets/{index-CQnpSDCR.js → index-mh3nNjD-.js} +3 -3
  42. package/dist/assets/{index-CrnJlXzG.js → index-nKvapWnz.js} +1 -1
  43. package/dist/assets/{index.es-DXC3ul5Q.js → index.es-BmYnl4eQ.js} +1 -1
  44. package/dist/assets/{infoDiagram-5YYISTIA-ajMB2Qxa.js → infoDiagram-5YYISTIA-9ipMATHw.js} +1 -1
  45. package/dist/assets/{ishikawaDiagram-YF4QCWOH-DQEp0c9W.js → ishikawaDiagram-YF4QCWOH-CMyDqtla.js} +1 -1
  46. package/dist/assets/{journeyDiagram-JHISSGLW-D7FItFb_.js → journeyDiagram-JHISSGLW-BZYnoh6-.js} +1 -1
  47. package/dist/assets/{kanban-definition-UN3LZRKU-CgKt-G01.js → kanban-definition-UN3LZRKU-Cys7RooC.js} +1 -1
  48. package/dist/assets/{main-DfVgHWQe.js → main-CgrLoRFE.js} +3 -3
  49. package/dist/assets/{mindmap-definition-RKZ34NQL-CuKXTTe2.js → mindmap-definition-RKZ34NQL-D5UNfPbo.js} +1 -1
  50. package/dist/assets/{pieDiagram-4H26LBE5-JkCQLkjB.js → pieDiagram-4H26LBE5-Q8TIweQd.js} +1 -1
  51. package/dist/assets/{quadrantDiagram-W4KKPZXB-C3dmbPVz.js → quadrantDiagram-W4KKPZXB-CN2vkAO6.js} +1 -1
  52. package/dist/assets/{requirementDiagram-4Y6WPE33-t3HhKU2z.js → requirementDiagram-4Y6WPE33-BZPimYSg.js} +1 -1
  53. package/dist/assets/{sankeyDiagram-5OEKKPKP-D8h7Gi4_.js → sankeyDiagram-5OEKKPKP-CbLGNQHF.js} +1 -1
  54. package/dist/assets/{sequenceDiagram-3UESZ5HK-BYJgkHcz.js → sequenceDiagram-3UESZ5HK-D1yJhogs.js} +1 -1
  55. package/dist/assets/{stateDiagram-AJRCARHV-CSKaC8Rl.js → stateDiagram-AJRCARHV-B4B9uE8t.js} +1 -1
  56. package/dist/assets/stateDiagram-v2-BHNVJYJU-CoHveFyA.js +1 -0
  57. package/dist/assets/{timeline-definition-PNZ67QCA-DLdfICX3.js → timeline-definition-PNZ67QCA-fj8baLbI.js} +1 -1
  58. package/dist/assets/{vendor-antd-rbjGKamc.js → vendor-antd-CKNrd1kL.js} +84 -84
  59. package/dist/assets/{vendor-charts-DtVw-oR1.js → vendor-charts-CYC-iQBh.js} +1 -1
  60. package/dist/assets/{vendor-markdown-D6K7N9C9.js → vendor-markdown-DrYaLZhb.js} +1 -1
  61. package/dist/assets/{vendor-mermaid-B4BbwE4a.js → vendor-mermaid-D1_CPXHE.js} +4 -4
  62. package/dist/assets/{vendor-pdf-iqXtbvvh.js → vendor-pdf-DHC4XUDH.js} +4 -4
  63. package/dist/assets/{vennDiagram-CIIHVFJN-I4nowEuq.js → vennDiagram-CIIHVFJN-BqxKpPQ5.js} +1 -1
  64. package/dist/assets/{wardley-L42UT6IY-CvpejOzB.js → wardley-L42UT6IY-DzDVarUL.js} +1 -1
  65. package/dist/assets/{wardleyDiagram-YWT4CUSO-Bp8K5VuA.js → wardleyDiagram-YWT4CUSO-BdaarJgD.js} +1 -1
  66. package/dist/assets/{xychartDiagram-2RQKCTM6-BXOi8G-8.js → xychartDiagram-2RQKCTM6-D0BGJUS2.js} +1 -1
  67. package/dist/assets/{zh-CN-CXhj-AJU.js → zh-CN-Cw8YiQz9.js} +1 -1
  68. package/dist/index.html +4 -4
  69. package/package.json +1 -1
  70. package/dist/assets/App-CSoVc5kq.js +0 -245
  71. package/dist/assets/classDiagram-4FO5ZUOK-CnyHN3Oj.js +0 -1
  72. package/dist/assets/classDiagram-v2-Q7XG4LA2-CnyHN3Oj.js +0 -1
  73. package/dist/assets/index-BC8EjiMM.js +0 -1
  74. package/dist/assets/stateDiagram-v2-BHNVJYJU-BbOS1eq2.js +0 -1
@@ -0,0 +1,245 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CW352hcn.js","./vendor-markdown-DrYaLZhb.js","./vendor-i18n-Dm-c3D_C.js","./vendor-antd-CKNrd1kL.js","./vendor-mermaid-D1_CPXHE.js","./main-CgrLoRFE.js","./main-B6snAd4S.css","./index-CoGZNEv_.js","./index-D-NMfOT0.js","./index-Bi-vGirQ.css","./index-Bt1I6ZoX.js","./index-CzInZqzj.js","./index-BmjFP0ha.js","./core-Cfh-QHsP.js","./index-_XI0Qq6F.js","./vendor-pdf-DHC4XUDH.js","./index-nKvapWnz.js","./index-3qkG_le_.css","./index-EX0mHOrI.js","./index-B6OABT-M.css","./index-BIexw-RU.js","./MetricsService-dBlApAzA.js","./index-D9ODTr93.css","./index-CpKeyar-.js","./SubAgentsPanel-1J9eU6HS.js","./index-CZufMAVA.js","./index-AIUPRSCn.css","./index-mh3nNjD-.js","./onboardingStorage-BVcEpmTy.js","./vendor-charts-CYC-iQBh.js","./index-BClD_Kuo.js","./index-CLYKYSO0.css","./FeatureGuide-WswLwoHO.js"])))=>i.map(i=>d[i]);
2
+ var dx=Object.defineProperty;var fx=(e,t,n)=>t in e?dx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Rt=(e,t,n)=>fx(e,typeof t!="symbol"?t+"":t,n);import{j as l,M as Cr,S as fn,a as zg,t as Bg,p as Wg,b as hx,c as Md,d as px,m as Ug,s as mx,y as qg,e as Hg,h as Cl,f as Ad,r as Rd,g as jd,i as Yg}from"./vendor-markdown-DrYaLZhb.js";import{a as b,u as Ge,R as ft,i as Pt,c as gx,g as Is}from"./vendor-i18n-Dm-c3D_C.js";import{_ as en,bN as Id}from"./vendor-mermaid-D1_CPXHE.js";import{t as dt,u as sh,v as yx,$ as vx,aB as co,b7 as Xg,b8 as bx,a1 as Xl,N as je,ay as Sx,O as Os,av as uo,b9 as xx,z as jr,a3 as $s,ba as Kg,Q as Au,j as Ye,F as Pe,x as Ms,w as Zr,Z as Od,a4 as Kl,q as wn,bb as wx,bc as _x,l as ht,X as Dn,a2 as il,a7 as Cx,ab as Ru,bd as kx,be as Vl,bf as Vg,V as $d,bg as ju,bh as fo,bi as Tx,bj as Px,J as kl,n as Ex,H as Gg,bk as Mx,bl as Ax,W as ho,as as Rx,o as Je,a9 as jx,y as Jg,A as fr,G as sn,bm as Gl,bn as Qg,ax as Ix,aj as Ox,D as Ld,aN as Zg,bo as $x,bp as Lx,bq as Dx,br as Fx,I as As,bs as Nx,bt as zx,aq as Dd,ar as Ir,aC as Tl,aM as go,bu as Bx,bv as ey,bw as ty,ak as Fd,ae as Wx,p as Qa,ag as oh,aJ as Ux,U as ah,P as ny,b3 as Iu,aT as qx,aE as Hx,ao as Yx,bx as Xx,by as Kx,aA as Vx,aO as Gx,bz as Jx,bA as Qx,bB as Zx,bC as ew,B as tw,b5 as to,am as ry,bD as nw,bE as sy,ac as Nd,an as rw,bF as sw,bG as ow,a6 as aw,bH as ih,bI as lh}from"./vendor-antd-CKNrd1kL.js";import{r as iw,A as lw,a as cw}from"./main-CgrLoRFE.js";function oy(e){const[t,n]=b.useState(()=>typeof window<"u"?window.matchMedia(e).matches:!1);return b.useEffect(()=>{if(typeof window>"u")return;const r=window.matchMedia(e);n(r.matches);const s=o=>{n(o.matches)};return r.addEventListener?r.addEventListener("change",s):r.addListener(s),()=>{r.removeEventListener?r.removeEventListener("change",s):r.removeListener(s)}},[e]),t}function Jl(){return oy("(max-width: 768px)")}const uw=({chat:e,isSelected:t,compact:n=!1,onSelect:r,onDelete:s,onPin:o,onUnpin:a,onEdit:i,onGenerateTitle:c,onRunProjectDream:d,isGeneratingTitle:f,isRunningProjectDream:m,titleGenerationError:g})=>{const{t:y}=Ge(),[x,S]=b.useState(!1),[_,E]=b.useState(e.title),[T,P]=b.useState(!1),[C,A]=b.useState(!1),{token:I}=dt.useToken(),L=b.useCallback(W=>{W.stopPropagation(),i&&_.trim()&&i(e.id,_.trim()),S(!1)},[e.id,_,i]),$=b.useCallback(W=>{W.stopPropagation(),E(e.title),S(!1)},[e.title]),F=[{key:"pin",icon:e.pinned?l.jsx(sh,{style:{color:I.colorWarning}}):l.jsx(yx,{}),label:e.pinned?y("chat.actions.unpin"):y("chat.actions.pin"),onClick:({domEvent:W})=>{W.stopPropagation(),e.pinned?a(e.id):o(e.id)}},{key:"edit",icon:l.jsx(vx,{}),label:y("chat.chatItem.edit"),onClick:({domEvent:W})=>{W.stopPropagation(),S(!0)}},...c?[{key:"generate-title",icon:f?l.jsx(co,{}):l.jsx(Xg,{style:g?{color:I.colorError}:void 0}),label:g||y("chat.actions.generateTitle"),disabled:f,onClick:({domEvent:W})=>{W.stopPropagation(),c(e.id)}}]:[],...d?[{key:"run-project-dream",icon:m?l.jsx(co,{}):l.jsx(bx,{}),label:y("chat.actions.runProjectDream"),disabled:m,onClick:({domEvent:W})=>{W.stopPropagation(),d(e.id)}}]:[],{type:"divider"},{key:"delete",icon:l.jsx(Xl,{}),label:y("common.delete"),danger:!0,onClick:({domEvent:W})=>{W.stopPropagation(),s(e.id)}}],te={padding:n?"4px 8px":"5px 8px",borderRadius:I.borderRadiusSM,marginBottom:0,cursor:"pointer",transition:"background-color 0.2s ease, box-shadow 0.2s ease",backgroundColor:t?"var(--lotus-primary-soft)":T||C?"var(--lotus-item-hover-bg)":"transparent",border:"1px solid transparent",borderColor:"transparent",position:"relative",overflow:"visible",boxShadow:t?`inset 2px 0 0 ${I.colorPrimary}`:"none",minHeight:n?28:30},N={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)":I.colorText},O={flex:1,fontSize:I.fontSizeSM,marginRight:I.marginSM},Q=x?[l.jsx(je,{type:"text",size:"small",icon:l.jsx(Sx,{style:{color:I.colorSuccess}}),onClick:L,"aria-label":y("common.save")},"save"),l.jsx(je,{type:"text",size:"small",icon:l.jsx(Os,{style:{color:I.colorError}}),onClick:$,"aria-label":y("common.cancel")},"cancel")]:T||C?[l.jsx(uo,{menu:{items:F,className:"lotus-sidebar-actions-menu"},trigger:["click"],placement:"bottomRight",overlayClassName:"lotus-sidebar-actions-dropdown",open:C,onOpenChange:W=>A(W),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(xx,{}),"aria-label":y("common.moreActions","More actions"),onClick:W=>W.stopPropagation(),style:{color:I.colorTextSecondary,borderRadius:I.borderRadiusSM,background:"transparent",width:n?16:18,height:n?16:18,display:"flex",alignItems:"center",justifyContent:"center"}})},"more")]:[];return l.jsx(jr.Item,{style:te,tabIndex:0,onClick:()=>!x&&r(e.id),onKeyDown:W=>{W.key==="Enter"&&!x?(W.preventDefault(),r(e.id)):(W.key==="Delete"||W.key==="Backspace")&&!x&&W.metaKey&&(W.preventDefault(),s(e.id))},onMouseEnter:()=>P(!0),onMouseLeave:()=>{C||P(!1)},onFocus:()=>P(!0),onBlur:()=>{C||P(!1)},actions:Q,"data-testid":"chat-item",role:"option","aria-selected":t,"aria-label":e.title||y("chat.sidebar.untitledChat"),children:l.jsx("div",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:x?l.jsx($s,{value:_,onChange:W=>E(W.target.value),onClick:W=>W.stopPropagation(),onPressEnter:W=>{W.preventDefault(),L(W)},autoFocus:!0,style:O,variant:"borderless",size:"small"}):l.jsxs("div",{style:{...N,display:"flex",alignItems:"center",gap:n?4:I.marginXS,minWidth:0},children:[e.pinned&&l.jsx(sh,{style:{color:I.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:I.colorInfo,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap"},children:y("chat.chatItem.childTag")}):null,e.planMode?l.jsxs("span",{style:{color:"#722ed1",fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:3},children:[l.jsx(Kg,{}),y("chat.planMode.badge","Plan")]}):null]})})})},dw=(e,t)=>e.chat.id===t.chat.id&&e.chat.title===t.chat.title&&e.chat.pinned===t.chat.pinned&&e.chat.planMode===t.chat.planMode&&e.isSelected===t.isSelected&&e.compact===t.compact&&e.isGeneratingTitle===t.isGeneratingTitle&&e.isRunningProjectDream===t.isRunningProjectDream&&e.titleGenerationError===t.titleGenerationError,Ou=b.memo(uw,dw);Ou.displayName="ChatItem";const ch=e=>({Today:0,Yesterday:1,"This Week":2,"This Month":3})[e]??4,fw=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},hw=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:ch(n)-ch(r)})},pw=(e,t)=>e[t]?e[t].map(n=>n.id):[],ay=(e,t)=>e[t]?e[t].length:0,mw=e=>e.createdByScheduleId?"Scheduled":new Date(e.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),uh=(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},gw=({groupedChatsByDate:e,childrenByRoot:t,expandedRootIds:n,onToggleRootExpanded:r,sortedDateKeys:s,expandedKeys:o,onCollapseChange:a,currentSessionId:i,onSelectChat:c,onDeleteChat:d,onDeleteByDate:f,onPinChat:m,onUnpinChat:g,onEditTitle:y,onGenerateTitle:x,onRunProjectDream:S,titleGenerationState:_,projectDreamState:E,token:T,hasActiveFilters:P})=>{const{t:C}=Ge(),A=b.useMemo(()=>s.length?s.map(L=>{const $=e[L],F=ay(e,L);return{dateKey:L,dateGroup:$,totalChatsInDate:F}}):[],[e,s]);if(!s.length)return l.jsx(Au,{image:Au.PRESENTED_IMAGE_SIMPLE,description:l.jsxs(Ye,{direction:"vertical",size:4,align:"center",children:[l.jsx("span",{style:{color:T.colorTextSecondary},children:P?C("chat.sidebar.empty.noMatches","No matching sessions"):C("chat.sidebar.empty.noSessions")}),l.jsx("span",{style:{color:T.colorTextSecondary,fontSize:12},children:P?C("chat.sidebar.empty.filterHint","Try adjusting your search or filters"):C("chat.sidebar.empty.hint")}),P&&l.jsx(je,{size:"small",type:"link",onClick:()=>{var $;const L=document.querySelector('[data-testid="sidebar-search-input"] input, .lotus-sidebar-search input');if(L){const F=($=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))==null?void 0:$.set;F==null||F.call(L,""),L.dispatchEvent(new Event("input",{bubbles:!0}))}},children:C("chat.sidebar.empty.clearFilters","Clear filters")})]})});const I=new Set(o);return l.jsx("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:2},children:A.map(({dateKey:L,dateGroup:$,totalChatsInDate:F})=>{const te=I.has(L);return l.jsxs("div",{style:{borderRadius:T.borderRadiusSM,background:"transparent",padding:0},children:[l.jsxs(Pe,{align:"center",justify:"space-between",style:{cursor:"pointer",padding:"4px 8px",borderRadius:T.borderRadiusSM,transition:"background-color 0.2s ease, color 0.2s ease",border:"1px solid transparent"},role:"button",tabIndex:0,"aria-expanded":te,"aria-label":`${uh(L,C)} (${F})`,onKeyDown:N=>{if(N.key==="Enter"||N.key===" "){N.preventDefault();const O=new Set(I);O.has(L)?O.delete(L):O.add(L),a(Array.from(O))}},onMouseEnter:N=>{N.currentTarget.style.background="var(--lotus-sidebar-item-hover-bg, rgba(204, 251, 241, 0.76))",N.currentTarget.style.borderColor="transparent";const O=N.currentTarget.querySelector(".chat-sidebar-date-group-delete");O&&(O.style.opacity="1")},onMouseLeave:N=>{N.currentTarget.style.background="transparent",N.currentTarget.style.borderColor="transparent";const O=N.currentTarget.querySelector(".chat-sidebar-date-group-delete");O&&(O.style.opacity="0")},onClick:()=>{const N=new Set(I);N.has(L)?N.delete(L):N.add(L),a(Array.from(N))},className:"chat-sidebar-date-group-header",children:[l.jsxs(Pe,{align:"center",gap:"small",style:{minWidth:0},children:[te?l.jsx(Ms,{style:{fontSize:12,opacity:.6}}):l.jsx(Zr,{style:{fontSize:12,opacity:.6}}),l.jsxs("span",{style:{fontSize:10.5,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.3px",color:L==="Today"?"var(--lotus-primary)":T.colorTextSecondary,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[uh(L,C)," (",F,")"]})]}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(Xl,{}),className:"chat-sidebar-date-group-delete",style:{color:T.colorTextTertiary,opacity:0,transition:"opacity 0.2s ease"},onClick:N=>{N.stopPropagation(),f(L)}})]}),te?l.jsx("div",{style:{marginTop:2},children:l.jsx(jr,{itemLayout:"horizontal",dataSource:$,split:!1,renderItem:N=>{var O,Q,W,z,pe,Z;return l.jsxs("div",{children:[l.jsxs(Pe,{align:"center",gap:6,style:{padding:"4px 8px"},children:[(O=t[N.id])!=null&&O.length?l.jsx(je,{size:"small",type:"text",style:{padding:0,width:18,minWidth:18,height:18},"aria-label":n.has(N.id)?C("chat.sidebar.actions.collapseChildren"):C("chat.sidebar.actions.expandChildren"),onClick:ce=>{ce.preventDefault(),ce.stopPropagation(),r(N.id)},children:n.has(N.id)?l.jsx(Ms,{style:{fontSize:12}}):l.jsx(Zr,{style:{fontSize:12}})}):l.jsx("div",{style:{width:18}}),l.jsx("div",{style:{flex:1,minWidth:0,marginLeft:-8},children:l.jsx(Ou,{chat:N,compact:!0,isSelected:N.id===i,onSelect:c,onDelete:d,onPin:m,onUnpin:g,onEdit:y,onGenerateTitle:x,onRunProjectDream:S,isGeneratingTitle:((Q=_[N.id])==null?void 0:Q.status)==="loading",isRunningProjectDream:((W=E[N.id])==null?void 0:W.status)==="loading",titleGenerationError:((z=_[N.id])==null?void 0:z.status)==="error"?(pe=_[N.id])==null?void 0:pe.error:void 0})})]}),n.has(N.id)&&(((Z=t[N.id])==null?void 0:Z.length)??0)>0?l.jsx("div",{style:{marginLeft:18,marginTop:1},children:l.jsx(jr,{itemLayout:"horizontal",dataSource:t[N.id],split:!1,renderItem:ce=>{var ve,G,he,_e;return l.jsx("div",{style:{paddingLeft:8,borderLeft:`1px solid ${T.colorBorderSecondary}`,marginLeft:2},children:l.jsx(Ou,{chat:ce,compact:!0,isSelected:ce.id===i,onSelect:c,onDelete:d,onPin:m,onUnpin:g,onEdit:y,onGenerateTitle:x,onRunProjectDream:S,isGeneratingTitle:((ve=_[ce.id])==null?void 0:ve.status)==="loading",isRunningProjectDream:((G=E[ce.id])==null?void 0:G.status)==="loading",titleGenerationError:((he=_[ce.id])==null?void 0:he.status)==="error"?(_e=_[ce.id])==null?void 0:_e.error:void 0})},ce.id)}})}):null]},N.id)}})}):null]},L)})})},dh=e=>{let t;const n=new Set,r=(d,f)=>{const m=typeof d=="function"?d(t):d;if(!Object.is(m,t)){const g=t;t=f??(typeof m!="object"||m===null)?m:Object.assign({},t,m),n.forEach(y=>y(t,g))}},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},yw=e=>e?dh(e):dh,vw=e=>e;function bw(e,t=vw){const n=ft.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return ft.useDebugValue(n),n}const fh=e=>{const t=yw(e),n=r=>bw(t,r);return Object.assign(n,t),n},ns=e=>e?fh(e):fh,Sw="copilot_ui_theme_v1";function xw(){var e;try{const t=localStorage.getItem(Sw);if(t==="light"||t==="dark")return t}catch{}return(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}const Pl=ns(e=>({themeMode:xw(),setThemeMode:t=>e({themeMode:t}),toggleTheme:()=>e(t=>({themeMode:t.themeMode==="dark"?"light":"dark"}))})),ww="2026.5.30",_w={version:ww},Cw=_w.version,{Text:kw}=ht,Tw=({collapsed:e,onNewChat:t,onOpenSettings:n,token:r})=>{const{t:s}=Ge(),o=Pl(f=>f.themeMode),a=Pl(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(Pe,{vertical:!0,gap:e?"small":10,style:{padding:e?10:12,background:"transparent",borderTop:`1px solid ${r.colorBorderSecondary}`},children:[l.jsx(je,{"data-testid":"new-chat","data-tour-id":"new-session",type:"primary",icon:l.jsx(Od,{}),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(Pe,{gap:6,align:"center",children:[l.jsx(je,{"data-testid":"open-settings","data-tour-id":"open-settings",icon:l.jsx(Kl,{}),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(wn,{title:d,placement:"top",children:l.jsx(je,{"data-testid":"toggle-theme",type:"text",icon:o==="dark"?l.jsx(wx,{}):l.jsx(_x,{}),onClick:a,"aria-label":d,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})]}),!e&&l.jsxs(kw,{type:"secondary","data-testid":"app-version-badge",style:{fontSize:11,textAlign:"center",userSelect:"text"},children:[s("settings.appTab.runningVersion","Running version"),": v",Cw]})]})},hh=e=>Symbol.iterator in e,ph=e=>"entries"in e,mh=(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},Pw=(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 Ew(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:hh(e)&&hh(t)?ph(e)&&ph(t)?mh(e,t):Pw(e,t):mh({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function Ha(e){const t=ft.useRef(void 0);return n=>{const r=e(n);return Ew(t.current,r)?t.current:t.current=r}}const iy=()=>!1,ly=e=>{if(!iy())return!1;try{return localStorage.getItem(e)==="1"}catch{return!1}},Mw=()=>ly("bodhi_debug_ui_layout"),Jn=(e,t)=>{Mw()&&console.log(`[ui-layout] ${e}`,t??"")},Re=(e,t,...n)=>{iy()&&ly("bodhi_debug_verbose")&&console.log(`${e} ${t}`,...n)};var Nc={};const zc="copilot_backend_base_url",cy="http://127.0.0.1:9562/v1",Aw=9562,Rs=e=>e.trim().replace(/\/+$/,""),Rw=()=>{const t=Nc==null?void 0:Nc.VITE_BACKEND_BASE_URL;return t?Rs(t):null},ui=()=>{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}},zd=e=>{const t=e.trim().toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="::1"},jw=(e=ui())=>(e==null?void 0:e.protocol.toLowerCase())==="https:",Iw=e=>{try{return new URL(Rs(e)).protocol.toLowerCase()==="http:"}catch{return!1}},Ow=e=>{try{const t=new URL(Rs(e));return zd(t.hostname)}catch{return!1}},$w=(e=ui())=>{if(!e)return null;const t=e.protocol.toLowerCase(),n=e.hostname.trim();return n?t==="https:"?Rs(`https://${n}/v1`):t==="http:"?Rs(`http://${n}/v1`):null:null},Lw=(e,t=ui())=>{if(!t)return!1;const n=t.hostname.trim();return n?jw(t)&&Iw(e)?!0:zd(n)?!1:Ow(e):!1},Dw=(e=ui())=>{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:"?$w(e):zd(n)?cy:Rs(`http://${n}:${Aw}/v1`):null},Fw=()=>{const e=Rw();return e||(Dw()??cy)},yo=()=>{const e=ui(),t=localStorage.getItem(zc);if(t){const n=Rs(t);if(Lw(n,e))console.warn("Ignoring stored backend override because it is incompatible with the current page origin:",n),localStorage.removeItem(zc);else try{return new URL(n),n}catch{console.warn("Invalid stored backend URL, using default:",n),localStorage.removeItem(zc)}}return Fw()};class Za extends Error{constructor(t,n,r,s){super(t),this.status=n,this.statusText=r,this.body=s,this.name="ApiError"}}function s$(e){return e instanceof Za}class uy{constructor(t={}){Rt(this,"baseUrl");Rt(this,"defaultHeaders");this.baseUrl=t.baseUrl??this.resolveBaseUrl(),this.defaultHeaders=t.defaultHeaders??{"Content-Type":"application/json"}}resolveBaseUrl(){const t=yo().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 Za(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 Za(`API request failed: ${s.statusText}`,s.status,s.statusText);return s}}const Ve=new uy,kt=new uy({baseUrl:(()=>{let e=yo().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`})()}),Nw=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,zw=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,Bw=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}},Ww=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}))}),Uw=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}))}),Li=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}),Ss=class Ss{static getInstance(){return Ss.instance||(Ss.instance=new Ss),Ss.instance}async sendMessage(t){var r,s,o;Re("[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 kt.post("chat",t);return Re("[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),Re("[AgentClient]","execute.request",{sessionId:t,model:a.model??null,reasoningEffort:a.reasoning_effort??null,modelRef:a.model_ref??null,provider:a.provider??null,clientSync:Nw(a.client_sync)});const i=await kt.post(`execute/${t}`,a);return Re("[AgentClient]","execute.response",{sessionId:t,status:i.status,runId:i.run_id??null,eventsUrl:i.events_url,sync:zw(i.sync)}),i}async listSessions(){Re("[AgentClient]","sessions.list.request",{});const t=await kt.get("sessions");return Re("[AgentClient]","sessions.list.response",Ww(t.sessions)),t}async getTaskList(t){const n=encodeURIComponent(t),r=await kt.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 kt.post("sessions",t)}async patchSession(t,n){const r=encodeURIComponent(t);await kt.patch(`sessions/${r}`,n)}async regenerateSessionTitle(t){const n=encodeURIComponent(t);await kt.post(`sessions/${n}/regenerate-title`)}async getSessionSystemPrompt(t){const n=encodeURIComponent(t);return kt.get(`sessions/${n}/system-prompt`)}async clearSession(t){const n=encodeURIComponent(t);await kt.post(`sessions/${n}/clear`)}async runProjectDream(t){const n=encodeURIComponent(t);return kt.post(`sessions/${n}/project-dream/run`)}async truncateSessionMessages(t,n){const r=encodeURIComponent(t);return kt.post(`sessions/${r}/messages/truncate`,n)}async restoreSessionState(t,n){const r=encodeURIComponent(t);return kt.post(`sessions/${r}/restore`,n)}async patchSessionMessage(t,n,r){const s=encodeURIComponent(t),o=encodeURIComponent(n);await kt.patch(`sessions/${s}/messages/${o}`,r)}async deleteSessionMessage(t,n){const r=encodeURIComponent(t),s=encodeURIComponent(n);await kt.delete(`sessions/${r}/messages/${s}`)}async cleanupSessions(t,n){await kt.post("sessions/cleanup",{mode:t,keep_pinned:n})}async devResetSessions(){await kt.post("dev/reset")}async getRunningSessions(){Re("[AgentClient]","runs.active.request",{});const t=await kt.get("runs/active");return Re("[AgentClient]","runs.active.response",Uw(t)),t}async listSchedules(){return kt.get("schedules")}async createSchedule(t){return kt.post("schedules",t)}async patchSchedule(t,n){const r=encodeURIComponent(t);return kt.patch(`schedules/${r}`,n)}async deleteSchedule(t){const n=encodeURIComponent(t);await kt.delete(`schedules/${n}`)}async runScheduleNow(t){const n=encodeURIComponent(t);await kt.post(`schedules/${n}/run`)}async listScheduleSessions(t){const n=encodeURIComponent(t);return kt.get(`schedules/${n}/sessions`)}async listScheduleRuns(t){const n=encodeURIComponent(t);return kt.get(`schedules/${n}/runs`)}async subscribeToEvents(t,n,r){const s=r==null?void 0:r.signal;Re("[AgentClient]","events.subscribe.request",{sessionId:t});const o=yo().trim().replace(/\/+$/,""),i=`${o.endsWith("/v1")?o.slice(0,-3):o}/api/v1/events/${encodeURIComponent(t)}`;return Re("[AgentClient]","events.subscribe.url",{sessionId:t,eventsUrl:i}),await new Promise((c,d)=>{if(s!=null&&s.aborted){Re("[AgentClient]","events.subscribe.aborted_before_connect",{sessionId:t}),c();return}let f=!1,m=!1,g=null;const y=()=>{Re("[AgentClient]","events.subscribe.abort",{sessionId:t,terminalSeen:m}),S()},x=()=>{g&&(g.close(),g=null),s==null||s.removeEventListener("abort",y)},S=()=>{f||(f=!0,Re("[AgentClient]","events.subscribe.resolve",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),x(),c())},_=E=>{f||(f=!0,Re("[AgentClient]","events.subscribe.reject",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1,error:E}),x(),d(E))};s==null||s.addEventListener("abort",y,{once:!0});try{g=new EventSource(i,{withCredentials:!0})}catch(E){_(E);return}g.onopen=()=>{Re("[AgentClient]","events.subscribe.open",{sessionId:t})},g.onmessage=E=>{const T=E.data;if(T==="[DONE]"){m=!0,Re("[AgentClient]","events.subscribe.done",{sessionId:t}),S();return}if(T!=="[KEEPALIVE]")try{const P=JSON.parse(T);(P.type==="execution_started"||P.type==="complete"||P.type==="cancelled"||P.type==="error"||P.type==="runner_progress"||P.type==="need_clarification")&&Re("[AgentClient]","events.subscribe.event",{sessionId:t,...Li(P)}),this.handleEvent(P,n),(P.type==="complete"||P.type==="cancelled"||P.type==="error")&&(m=!0)}catch(P){console.warn("Failed to parse event:",T,P)}},g.onerror=()=>{if(Re("[AgentClient]","events.subscribe.error",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),s!=null&&s.aborted||m){S();return}_(new Error(`EventSource connection failed for session ${t}`))}})}handleEvent(t,n){var r,s,o,a,i,c,d,f,m,g,y,x,S,_,E,T,P,C,A,I,L,$,F,te,N,O,Q,W,z,pe,Z;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 ce=t.status;if(!(ce==="pending"||ce==="in_progress"||ce==="completed"||ce==="blocked"))break;(f=n.onTaskListItemProgress)==null||f.call(n,{session_id:t.session_id,item_id:t.item_id,status:ce,tool_calls_count:t.tool_calls_count,version:t.version})}break;case"task_list_completed":t.session_id&&t.total_rounds!==void 0&&t.total_tool_calls!==void 0&&((m=n.onTaskListCompleted)==null||m.call(n,t.session_id,t.total_rounds,t.total_tool_calls,t.completed_at));break;case"task_evaluation_started":t.session_id&&t.items_count!==void 0&&((g=n.onTaskEvaluationStarted)==null||g.call(n,t.session_id,t.items_count));break;case"task_evaluation_completed":t.session_id&&t.updates_count!==void 0&&t.reasoning&&((y=n.onTaskEvaluationCompleted)==null||y.call(n,t.session_id,t.updates_count,t.reasoning));break;case"token_budget_updated":t.usage&&"system_tokens"in t.usage&&((x=n.onTokenBudgetUpdated)==null||x.call(n,t.usage));break;case"context_compression_status":typeof t.phase=="string"&&typeof t.status=="string"&&((S=n.onContextCompressionStatus)==null||S.call(n,t.phase,t.status));break;case"tool_lifecycle":(_=n.onToolLifecycle)==null||_.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&&((E=n.onContextSummarized)==null||E.call(n,t.summary_info));break;case"context_pressure_notification":typeof t.percent=="number"&&typeof t.level=="string"&&((T=n.onContextPressureNotification)==null||T.call(n,t.percent,t.level,t.message||""));break;case"sub_agent_started":t.parent_session_id&&t.child_session_id&&((P=n.onSubAgentStarted)==null||P.call(n,t.parent_session_id,t.child_session_id,t.title));break;case"sub_agent_event":t.parent_session_id&&t.child_session_id&&t.event&&((C=n.onSubAgentEvent)==null||C.call(n,t.parent_session_id,t.child_session_id,t.event));break;case"sub_agent_heartbeat":t.parent_session_id&&t.child_session_id&&t.timestamp&&((A=n.onSubAgentHeartbeat)==null||A.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&&((I=n.onSubAgentCompleted)==null||I.call(n,t.parent_session_id,t.child_session_id,typeof t.status=="string"?t.status:"completed",t.error));break;case"execution_started":(L=n.onExecutionStarted)==null||L.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":(F=n.onNeedClarification)==null||F.call(n,t);break;case"session_title_updated":t.session_id&&typeof t.title=="string"&&typeof t.title_version=="number"&&(t.source==="auto"||t.source==="manual"||t.source==="fallback")&&typeof t.updated_at=="string"&&((te=n.onSessionTitleUpdated)==null||te.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"&&((N=n.onSessionPinnedUpdated)==null||N.call(n,{type:"session_pinned_updated",session_id:t.session_id,pinned:t.pinned,updated_at:t.updated_at}));break;case"plan_mode_entered":(O=n.onPlanModeEntered)==null||O.call(n,t);break;case"plan_mode_exited":(Q=n.onPlanModeExited)==null||Q.call(n,t);break;case"plan_file_updated":(W=n.onPlanFileUpdated)==null||W.call(n,t);break;case"complete":Re("[AgentClient]","events.dispatch.complete",Li(t)),(z=n.onComplete)==null||z.call(n,t.usage);break;case"cancelled":Re("[AgentClient]","events.dispatch.cancelled",Li(t)),(pe=n.onCancelled)==null||pe.call(n,t.message);break;case"error":Re("[AgentClient]","events.dispatch.error",Li(t)),(Z=n.onError)==null||Z.call(n,t.message||t.error||"Unknown error");break;default:console.warn("Unknown event type:",t)}}async stopGeneration(t){await kt.post(`stop/${t}`)}async deleteSession(t){const n=encodeURIComponent(t);await kt.delete(`sessions/${n}`)}async getHistory(t){Re("[AgentClient]","history.request",{sessionId:t});const n=await kt.get(`history/${t}`);return Re("[AgentClient]","history.response",Bw(n)),n}async healthCheck(){try{return await kt.get("health"),!0}catch{return!1}}};Rt(Ss,"instance");let tr=Ss;const oo=tr.getInstance(),gh="provider",Ya=ns(e=>({isOpen:!1,origin:"chat",activeTabKey:gh,open:(t,n=gh)=>e({isOpen:!0,origin:t,activeTabKey:n}),close:()=>e({isOpen:!1}),setActiveTabKey:t=>e({activeTabKey:t})})),yh={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},ei=new Map,Di=e=>{const t=ei.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([n,r])=>[n,r.getState()])):{}},qw=(e,t,n)=>{if(e===void 0)return{type:"untracked",connection:t.connect(n)};const r=ei.get(n.name);if(r)return{type:"tracked",store:e,...r};const s={connection:t.connect(n),stores:{}};return ei.set(n.name,s),{type:"tracked",store:e,...s}},Hw=(e,t)=>{if(t===void 0)return;const n=ei.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&ei.delete(e))},Yw=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]},Xw=(e,t={})=>(n,r,s)=>{const{enabled:o,anonymousActionType:a,store:i,...c}=t;let d;try{d=(o??(yh?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!d)return e(n,r,s);const{connection:f,...m}=qw(i,d,c);let g=!0;s.setState=(S,_,E)=>{const T=n(S,_);if(!g)return T;const P=E===void 0?{type:a||Yw(new Error().stack)||"anonymous"}:typeof E=="string"?{type:E}:E;return i===void 0?(f==null||f.send(P,r()),T):(f==null||f.send({...P,type:`${i}/${P.type}`},{...Di(c.name),[i]:s.getState()}),T)},s.devtools={cleanup:()=>{f&&typeof f.unsubscribe=="function"&&f.unsubscribe(),Hw(c.name,i)}};const y=(...S)=>{const _=g;g=!1,n(...S),g=_},x=e(s.setState,r,s);if(m.type==="untracked"?f==null||f.init(x):(m.stores[m.store]=s,f==null||f.init(Object.fromEntries(Object.entries(m.stores).map(([S,_])=>[S,S===m.store?x:_.getState()])))),s.dispatchFromDevtools&&typeof s.dispatch=="function"){let S=!1;const _=s.dispatch;s.dispatch=(...E)=>{(yh?"production":void 0)!=="production"&&E[0].type==="__setState"&&!S&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),S=!0),_(...E)}}return f.subscribe(S=>{var _;switch(S.type){case"ACTION":if(typeof S.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return Bc(S.payload,E=>{if(E.type==="__setState"){if(i===void 0){y(E.state);return}Object.keys(E.state).length!==1&&console.error(`
4
+ [zustand devtools middleware] Unsupported __setState action format.
5
+ When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
6
+ and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
7
+ `);const T=E.state[i];if(T==null)return;JSON.stringify(s.getState())!==JSON.stringify(T)&&y(T);return}s.dispatchFromDevtools&&typeof s.dispatch=="function"&&s.dispatch(E)});case"DISPATCH":switch(S.payload.type){case"RESET":return y(x),i===void 0?f==null?void 0:f.init(s.getState()):f==null?void 0:f.init(Di(c.name));case"COMMIT":if(i===void 0){f==null||f.init(s.getState());return}return f==null?void 0:f.init(Di(c.name));case"ROLLBACK":return Bc(S.state,E=>{if(i===void 0){y(E),f==null||f.init(s.getState());return}y(E[i]),f==null||f.init(Di(c.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return Bc(S.state,E=>{if(i===void 0){y(E);return}JSON.stringify(s.getState())!==JSON.stringify(E[i])&&y(E[i])});case"IMPORT_STATE":{const{nextLiftedState:E}=S.payload,T=(_=E.computedStates.slice(-1)[0])==null?void 0:_.state;if(!T)return;y(i===void 0?T:T[i]),f==null||f.send(null,E);return}case"PAUSE_RECORDING":return g=!g}return}}),x},Kw=Xw,Bc=(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)},Vw=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 m=a(r.getState());d=g=>{const y=a(g);if(!f(m,y)){const x=m;i(m=y,x)}},c!=null&&c.fireImmediately&&i(m,m)}return s(d)},e(t,n,r)},Gw=Vw;function Jw(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 $u=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return $u(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return $u(r)(n)}}}},Qw=(e,t)=>(n,r,s)=>{let o={storage:Jw(()=>localStorage),partialize:S=>S,version:0,merge:(S,_)=>({..._,...S}),...t},a=!1;const i=new Set,c=new Set;let d=o.storage;if(!d)return e((...S)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),n(...S)},r,s);const f=()=>{const S=o.partialize({...r()});return d.setItem(o.name,{state:S,version:o.version})},m=s.setState;s.setState=(S,_)=>{m(S,_),f()};const g=e((...S)=>{n(...S),f()},r,s);s.getInitialState=()=>g;let y;const x=()=>{var S,_;if(!d)return;a=!1,i.forEach(T=>{var P;return T((P=r())!=null?P:g)});const E=((_=o.onRehydrateStorage)==null?void 0:_.call(o,(S=r())!=null?S:g))||void 0;return $u(d.getItem.bind(d))(o.name).then(T=>{if(T)if(typeof T.version=="number"&&T.version!==o.version){if(o.migrate){const P=o.migrate(T.state,T.version);return P instanceof Promise?P.then(C=>[!0,C]):[!0,P]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,T.state];return[!1,void 0]}).then(T=>{var P;const[C,A]=T;if(y=o.merge(A,(P=r())!=null?P:g),n(y,!0),C)return f()}).then(()=>{E==null||E(y,void 0),y=r(),a=!0,c.forEach(T=>T(y))}).catch(T=>{E==null||E(void 0,T)})};return s.persist={setOptions:S=>{o={...o,...S},S.storage&&(d=S.storage)},clearStorage:()=>{d==null||d.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>x(),hasHydrated:()=>a,onHydrate:S=>(i.add(S),()=>{i.delete(S)}),onFinishHydration:S=>(c.add(S),()=>{c.delete(S)})},o.skipHydration||x(),y||g},Zw=Qw,e_=()=>({id:"general_assistant",name:"Bodhi",description:Pt.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}),El=()=>[e_()];class t_{async getProviderConfig(){return Ve.get("/bamboo/settings/provider")}async saveProviderConfig(t){return Ve.post("/bamboo/settings/provider",t)}async reloadConfig(){return Ve.post("/bamboo/settings/reload")}async getCopilotAuthStatus(){return Ve.post("/bamboo/copilot/auth/status")}async startCopilotAuth(){return Ve.post("/bamboo/copilot/auth/start")}async completeCopilotAuth(t){return Ve.post("/bamboo/copilot/auth/complete",t)}async authenticateCopilot(){return Ve.post("/bamboo/copilot/authenticate")}async logoutCopilot(){return Ve.post("/bamboo/copilot/logout")}async fetchProviderModels(t){return(await Ve.post("/bamboo/settings/provider/models",{provider:t})).models}async getProviderCatalog(){return Ve.get("/bamboo/provider-catalog")}async fetchCatalogModels(t){const n=t?{provider:t}:{};return Ve.post("/bamboo/provider-catalog/fetch-models",n)}async getProviderInstances(){return Ve.get("/bamboo/settings/provider-instances")}async createProviderInstance(t){return Ve.post("/bamboo/settings/provider-instances",t)}async updateProviderInstance(t,n){return Ve.put(`/bamboo/settings/provider-instances/${encodeURIComponent(t)}`,n)}async deleteProviderInstance(t){return Ve.delete(`/bamboo/settings/provider-instances/${encodeURIComponent(t)}`)}async setDefaultProviderInstance(t){return Ve.post("/bamboo/settings/provider-instances/default",{default_provider_instance_id:t})}async getEnvVars(){return Ve.get("/bamboo/env-vars")}async upsertEnvVar(t){return Ve.post("/bamboo/env-vars",t)}async deleteEnvVar(t){return Ve.delete(`/bamboo/env-vars/${encodeURIComponent(t)}`)}async replaceEnvVars(t){return Ve.post("/bamboo/env-vars/replace",{entries:t})}}const ja=new t_,n_=(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):[]},Nt=ns((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 ja.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 ja.getProviderInstances(),i=a.instances??[],c=a.default_provider_instance_id??null,d={};for(const m of i)d[m.id]=m.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 m=d[c],g=m==null?void 0:m.model;g&&(f.defaults={chat:{provider:c,model:g}})}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 ja.getProviderCatalog();e({catalog:n})}catch{}},fetchCatalogModels:async n=>{e({isCatalogFetching:!0});try{await ja.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 n_(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}})),o$=Object.freeze(Object.defineProperty({__proto__:null,useProviderStore:Nt},Symbol.toStringTag,{value:"Module"}));function dy(e){return e.type==="session_title_updated"||e.type==="session_pinned_updated"}function Lu(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 r_(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 s_=5e3,vh=80,o_=16,Kr=(e,t)=>{},Bd=e=>e!==void 0&&e!=="idle"&&e!=="completed"&&e!=="error"&&e!=="cancelled",a_=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children"||e==="settling",i_=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children",fy=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}),vn=(e,t)=>e[t]??fy(t),Ft=(e,t)=>[...e.length>=o_?e.slice(-15):e,t],l_=e=>e.length<=vh?e:e.slice(e.length-vh),c_=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]),u_=(e,t)=>e?e.question===t.question&&e.allowCustom===t.allowCustom&&e.toolCallId===t.toolCallId&&c_(e.options,t.options):!1,hy=(e,t,n)=>{const r=u_(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:Ft(e.activeReasons,"sse:need_clarification")}},di=new Set(["idle","completed","error","cancelled","settling","waiting_user_answer"]),Ls=e=>di.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"},rn=(e,t,n)=>({...e,[t]:n}),d_=(e,t)=>{if(!(t in e))return e;const n={...e};return delete n[t],n},bh=(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:Ft(e.activeReasons,t)};return Ls(s)},f_=(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:Ft(e.activeReasons,"sse:token")};return Ls(r)},h_=(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:Ft(e.activeReasons,"sse:tool_start")};return Ls(a)},p_=(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=l_(o+n),i={...s,preview:a},c=[...e.stream.activeToolCalls];return c[r]=i,{...e,stream:{...e.stream,activeToolCalls:c}}},m_=(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:Ft(e.activeReasons,n)};return s.timestamps.terminalAt&&s.children.runningCount===0&&s.stream.activeToolCalls.length===0&&!di.has(s.phase)?{...s,phase:"settling",timestamps:{...s.timestamps,settlingStartedAt:s.timestamps.settlingStartedAt??s.timestamps.terminalAt}}:Ls(s)},py=(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:Ft(e.activeReasons,"sse:sub_agent_started")};return Ls(c)},Du=(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&&!di.has(d.phase)?{...d,phase:"settling",timestamps:{...d.timestamps,settlingStartedAt:d.timestamps.settlingStartedAt??d.timestamps.terminalAt},activeReasons:Ft(d.activeReasons,"sse:sub_agent_completed")}:Ls(d)},g_=(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&&!di.has(o.phase)?{...o,phase:"settling",timestamps:{...o.timestamps,settlingStartedAt:o.timestamps.settlingStartedAt??o.timestamps.terminalAt}}:Ls(o)},Sh=(e,t,n)=>{switch(t.type){case"token":return bh(e,"sse:token",n);case"reasoning_token":return bh(e,"sse:token",n);case"tool_start":{const r=t.tool_call_id??"",s=t.tool_name??"";return r?h_(e,r,s,n()):e}case"tool_token":{const r=t.tool_call_id??"";return r?p_(e,r,t.content??""):e}case"tool_complete":case"tool_error":{const r=t.tool_call_id??"";return r?m_(e,r,"sse:tool_complete"):e}case"tool_lifecycle":return e;case"sub_agent_started":{const r=t.child_session_id??"";return r?py(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()),Du(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 Du(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 hy(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:Ft(e.activeReasons,"sse:execution_started")}:{...e,phase:"running",confidence:"live",backendRunId:r,timestamps:{...e.timestamps,confirmedAt:n()},activeReasons:Ft(e.activeReasons,"sse:execution_started")}:e}case"complete":{if(di.has(e.phase))return e;const r=n();return{...e,phase:"settling",timestamps:{...e.timestamps,terminalAt:r,settlingStartedAt:e.timestamps.settlingStartedAt??r},activeReasons:Ft(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:Ft(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:Ft(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}},y_=e=>e==="completed"||e==="error"||e==="cancelled",v_=(e,t,n)=>{const r=t.last_run_status,s=y_(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:Ft(c.activeReasons,"summary:is_running")}:e.phase==="starting"?{...c,phase:"running",confidence:"summary",timestamps:{...c.timestamps,confirmedAt:o},activeReasons:Ft(c.activeReasons,"summary:is_running")}:c;if(Kr("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 Kr("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:Ft(c.activeReasons,"summary:terminal")};if(s==="error")return Kr("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:Ft(c.activeReasons,"summary:terminal")};if(s==="cancelled")return Kr("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:Ft(c.activeReasons,"summary:terminal")};if(e.timestamps.optimisticAt){const f=Date.parse(o)-Date.parse(e.timestamps.optimisticAt);if(Number.isFinite(f)&&f<s_)return Kr("summary.notRunning.keepOptimistic",{sessionId:t.id,phase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),c}return Kr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"idle",confidence:"summary",activeReasons:Ft(c.activeReasons,"summary:terminal")}}return c},b_=()=>new Date().toISOString(),Zt=(e,t,n=b_)=>{switch(t.type){case"ensureSession":return t.sessionId in e?e:rn(e,t.sessionId,fy(t.sessionId));case"markOptimisticStart":{const r=vn(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:Ft(r.activeReasons,"optimistic:send")};return rn(e,t.sessionId,o)}case"markRespondStart":{const r=vn(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:Ft(r.activeReasons,"optimistic:respond")};return rn(e,t.sessionId,o)}case"markRetryStart":{const r=vn(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:Ft(r.activeReasons,"optimistic:retry")};return rn(e,t.sessionId,o)}case"markForceSubscribe":{const r=vn(e,t.sessionId);if(Bd(r.phase))return e;const s={...r,phase:"running",confidence:"optimistic",generation:r.generation+1,error:null,activeReasons:Ft(r.activeReasons,"optimistic:openSession.forceSubscribe")};return rn(e,t.sessionId,s)}case"markCancel":{const r=vn(e,t.sessionId),s=n(),o={...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,settledAt:s},activeReasons:Ft(r.activeReasons,"user:cancel")};return rn(e,t.sessionId,o)}case"markSettleTimeout":{const r=vn(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:Ft(r.activeReasons,"settle:timeout")};return rn(e,t.sessionId,s)}case"markStreamStarted":{const r=vn(e,t.sessionId);if(t.generation!==r.generation)return e;const s=f_(r,n);return s===r?e:rn(e,t.sessionId,s)}case"applyAgentEvent":{const r=vn(e,t.sessionId);if(t.generation!==r.generation)return Kr("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=Sh(r,t.event,n);return s===r?e:rn(e,t.sessionId,s)}case"applyExecutionStarted":{const r=vn(e,t.sessionId);if(t.generation!==r.generation)return Kr("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 rn(e,t.sessionId,{...r,backendRunId:t.runId,confidence:"live",activeReasons:Ft(r.activeReasons,"sse:execution_started")});const s={...r,phase:"running",confidence:"live",backendRunId:t.runId,timestamps:{...r.timestamps,confirmedAt:n()},activeReasons:Ft(r.activeReasons,"sse:execution_started")};return rn(e,t.sessionId,s)}case"applySessionSummary":{const r=vn(e,t.sessionId),s=v_(r,t.summary,n);return s===r?e:rn(e,t.sessionId,s)}case"applyOneShotTerminal":{const r=vn(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="idle"&&r.phase!=="starting")return e;const s=n();return t.payload.status==="completed"?rn(e,t.sessionId,{...r,phase:"completed",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},activeReasons:Ft(r.activeReasons,"sse:terminal_one_shot")}):t.payload.status==="cancelled"?rn(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:Ft(r.activeReasons,"sse:terminal_one_shot")}):rn(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:Ft(r.activeReasons,"sse:terminal_one_shot")})}case"beginSettle":{const r=vn(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 rn(e,t.sessionId,{...r,phase:"settling",timestamps:{...r.timestamps,settlingStartedAt:s,terminalAt:r.timestamps.terminalAt??s}})}case"applyChildProgress":{const r=vn(e,t.sessionId),o=!(t.childId in r.children.byId)?py(r,t.childId,t.patch):Du(r,t.childId,t.patch);return o===r?e:rn(e,t.sessionId,o)}case"clearChildProgress":{const r=vn(e,t.sessionId),s=g_(r,t.childId);return s===r?e:rn(e,t.sessionId,s)}case"setPendingQuestion":{const r=vn(e,t.sessionId),s=hy(r,t.payload,n());return s===r?e:rn(e,t.sessionId,s)}case"clearPendingQuestion":{const r=vn(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 rn(e,t.sessionId,s)}case"resetSession":return d_(e,t.sessionId);case"applyRunningSnapshot":{let r=e;for(const s of t.sessions){const o=vn(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:Ft(o.activeReasons,"sse:execution_started")};for(const c of s.criticalEvents)c.type!=="execution_started"&&(i=Sh(i,c,n));r=rn(r,s.sessionId,i)}return r}default:return e}},cn=()=>new Date().toISOString(),S_=(e,t)=>({executionBySession:{},ensureSession:n=>{e(r=>{const s=Zt(r.executionBySession,{type:"ensureSession",sessionId:n},cn);return s===r.executionBySession?r:{executionBySession:s}})},markOptimisticStart:n=>{let r=0;return e(s=>{const o=s.executionBySession[n];r=o?o.generation+1:1;const i=Zt(s.executionBySession,{type:"markOptimisticStart",sessionId:n},cn);return i===s.executionBySession?s:{executionBySession:i}}),r},markRespondStart:(n,r)=>{let s=0;return e(o=>{const a=o.executionBySession[n];s=a?a.generation+1:1;const c=Zt(o.executionBySession,{type:"markRespondStart",sessionId:n},cn);return c===o.executionBySession?o:{executionBySession:c}}),s},markRetryStart:n=>{let r=0;return e(s=>{const o=s.executionBySession[n];r=o?o.generation+1:1;const i=Zt(s.executionBySession,{type:"markRetryStart",sessionId:n},cn);return i===s.executionBySession?s:{executionBySession:i}}),r},markForceSubscribe:n=>{e(r=>{const s=Zt(r.executionBySession,{type:"markForceSubscribe",sessionId:n},cn);return s===r.executionBySession?r:{executionBySession:s}})},markCancel:n=>{e(r=>{const s=Zt(r.executionBySession,{type:"markCancel",sessionId:n},cn);return s===r.executionBySession?r:{executionBySession:s}})},markSettleTimeout:n=>{e(r=>{const s=Zt(r.executionBySession,{type:"markSettleTimeout",sessionId:n},cn);return s===r.executionBySession?r:{executionBySession:s}})},markStreamStarted:(n,r)=>{e(s=>{const o=Zt(s.executionBySession,{type:"markStreamStarted",sessionId:n,generation:r},cn);return o===s.executionBySession?s:{executionBySession:o}})},applyAgentEvent:(n,r,s)=>{e(o=>{const a=Zt(o.executionBySession,{type:"applyAgentEvent",sessionId:n,event:r,generation:s},cn);return a===o.executionBySession?o:{executionBySession:a}})},applyExecutionStarted:(n,r,s)=>{e(o=>{const a=Zt(o.executionBySession,{type:"applyExecutionStarted",sessionId:n,runId:r,generation:s},cn);return a===o.executionBySession?o:{executionBySession:a}})},applySessionSummary:(n,r)=>{e(s=>{const o=Zt(s.executionBySession,{type:"applySessionSummary",sessionId:n,summary:r},cn);return o===s.executionBySession?s:{executionBySession:o}})},applyOneShotTerminal:(n,r,s)=>{e(o=>{const a=Zt(o.executionBySession,{type:"applyOneShotTerminal",sessionId:n,generation:r,payload:s},cn);return a===o.executionBySession?o:{executionBySession:a}})},beginSettle:(n,r)=>{e(s=>{const o=Zt(s.executionBySession,{type:"beginSettle",sessionId:n,generation:r},cn);return o===s.executionBySession?s:{executionBySession:o}})},applyChildProgress:(n,r,s)=>{e(o=>{const a=Zt(o.executionBySession,{type:"applyChildProgress",sessionId:n,childId:r,patch:s},cn);return a===o.executionBySession?o:{executionBySession:a}})},clearChildProgress:(n,r)=>{e(s=>{const o=Zt(s.executionBySession,{type:"clearChildProgress",sessionId:n,childId:r},cn);return o===s.executionBySession?s:{executionBySession:o}})},setPendingQuestion:(n,r)=>{e(s=>{const o=Zt(s.executionBySession,{type:"setPendingQuestion",sessionId:n,payload:r},cn);return o===s.executionBySession?s:{executionBySession:o}})},clearPendingQuestion:n=>{e(r=>{const s=Zt(r.executionBySession,{type:"clearPendingQuestion",sessionId:n},cn);return s===r.executionBySession?r:{executionBySession:s}})},resetSession:n=>{e(r=>{const s=Zt(r.executionBySession,{type:"resetSession",sessionId:n},cn);return s===r.executionBySession?r:{executionBySession:s}})},applyRunningSnapshot:n=>{const r=t(),s=n.map(o=>{const a=[];for(const i of o.criticalEvents){if(dy(i)){Lu(i,r);continue}a.push(i)}return{...o,criticalEvents:a}});e(o=>{const a=Zt(o.executionBySession,{type:"applyRunningSnapshot",sessions:s},cn);return a===o.executionBySession?o:{executionBySession:a}})}});function my(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 gy(e){return typeof e.maxContextTokens=="number"&&e.maxContextTokens>0?e.maxContextTokens:e.budgetLimit>0?e.budgetLimit:0}function yy(e){const t=gy(e);return t===0?0:e.totalTokens/t*100}function x_(e){const t=yy(e);return t>=90?"error":t>=70?"warning":t>=50?"success":"default"}function zr(e){return e.toLocaleString()}function Wc(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 br=tr.getInstance(),ao=El()[0],w_=(ao==null?void 0:ao.id)||"general_assistant";var Ng;const vy=((Ng=ao==null?void 0:ao.content)==null?void 0:Ng.trim())||"",Uc="tool",xh=e=>{if(typeof e!="string"||!e.trim())return null;const t=Date.parse(e);return Number.isFinite(t)?t:null},__=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.provider===t.provider&&e.model===t.model,C_=(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),k_=(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})},T_=(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,P_=(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&&__(e.model_ref,t.model_ref)&&e.reasoningEffort===t.reasoningEffort&&JSON.stringify(e.goldConfig??null)===JSON.stringify(t.goldConfig??null)&&C_(e.tokenUsage,t.tokenUsage)&&e.truncationOccurred===t.truncationOccurred&&e.segmentsRemoved===t.segmentsRemoved&&k_(e.compressionEvents,t.compressionEvents)&&T_(e.syncCursor,t.syncCursor),E_=(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&&P_(e.config,t.config),M_=()=>{try{const e=globalThis.crypto;if(e!=null&&e.randomUUID)return e.randomUUID()}catch{}return`id_${Date.now()}_${Math.random().toString(16).slice(2)}`},A_=()=>{let e=yo().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`},by=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}},R_=e=>{const t=by(e);return t?`${A_()}/sessions/${encodeURIComponent(t.sessionId)}/attachments/${encodeURIComponent(t.attachmentId)}`:e},gs=e=>{if(typeof e!="string")return;const t=e.trim();if(t&&t.toLowerCase()!=="unknown")return t},j_=e=>{const t=(e||"").trim();if(!t)return;const n=t.match(/tool policy blocked ['"`]([^'"`]+)['"`]/i);if(n!=null&&n[1])return gs(n[1]);try{const r=JSON.parse(t);if(typeof(r==null?void 0:r.tool_name)=="string")return gs(r.tool_name)}catch{}},Fu=e=>{var r,s;const t=Number.isFinite(Date.parse(e.created_at))?Date.parse(e.created_at):Date.now(),n=my(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,title:e.title||Pt.t("chat.session.defaultTitle"),titleVersion:e.title_version??0,createdAt:t,pinned:e.pinned,messages:[],config:{systemPromptId:w_,baseSystemPrompt:vy,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:[]}}},I_=(e,t)=>{var o,a,i,c,d;const n=new Map,r=new Map;for(const f of t)f.role==="tool"&&f.tool_call_id&&f.metadata&&r.set(f.tool_call_id,f.metadata);const s=[];for(const f of t){const m=f.created_at||new Date().toISOString();if(f.role==="system"){const g={role:"system",id:f.id,createdAt:m,content:f.content||"",isCompressed:!!f.compressed,compressedEventId:f.compressed_by_event_id};s.push(g);continue}if(f.role==="user"){const g=new Map;for(const S of f.image_ocr||[]){const _=(o=S.image_url)==null?void 0:o.trim();if(!_)continue;const T=(S.lines||[]).map(P=>((P==null?void 0:P.text)||"").trim()).filter(Boolean);g.set(_,{ocrText:T.length?T.join(`
11
+ `):void 0,ocrError:S.error?String(S.error):void 0})}const y=[];for(const S of f.content_parts||[]){if(S.type!=="image_url")continue;const _=((a=S.image_url)==null?void 0:a.url)||"";if(!_)continue;const E=R_(_),T=by(_),P=g.get(_.trim());y.push({id:M_(),url:E,ocrText:P==null?void 0:P.ocrText,ocrError:P==null?void 0:P.ocrError,name:T?`attachment-${T.attachmentId}`:"image",size:0,type:"image/*"})}const x={role:"user",id:f.id,createdAt:m,content:f.content||"",images:y.length?y:void 0,isCompressed:!!f.compressed,compressedEventId:f.compressed_by_event_id};s.push(x);continue}if(f.role==="assistant"){const g=f.tool_calls||[];if(g.length>0){const S=(f.content||"").trim(),_=typeof f.reasoning=="string"&&f.reasoning.trim().length>0;if(S||_){const C=_?{reasoning:f.reasoning,backendMessageId:f.id}:{backendMessageId:f.id},A={role:"assistant",type:"text",id:`${f.id}_text`,createdAt:m,content:f.content||"",metadata:C,isCompressed:!!f.compressed,compressedEventId:f.compressed_by_event_id};s.push(A)}for(const C of g)C.id&&n.set(C.id,gs((i=C.function)==null?void 0:i.name)||Uc);const E=(c=g[0])==null?void 0:c.id,T=E?r.get(E):void 0,P={role:"assistant",type:"tool_call",id:f.id,createdAt:m,toolCalls:g.map(C=>{var A;return{toolCallId:C.id,toolName:gs((A=C.function)==null?void 0:A.name)||Uc,parameters:(()=>{var I,L;try{return JSON.parse(((I=C.function)==null?void 0:I.arguments)||"{}")}catch{return{raw:((L=C.function)==null?void 0:L.arguments)||""}}})(),streamingOutput:""}}),...T?{metadata:T}:{},isCompressed:!!f.compressed,compressedEventId:f.compressed_by_event_id};s.push(P);continue}const y=typeof f.reasoning=="string"&&f.reasoning.trim().length>0?{reasoning:f.reasoning}:{},x={role:"assistant",type:"text",id:f.id,createdAt:m,content:f.content||"",metadata:y,isCompressed:!!f.compressed,compressedEventId:f.compressed_by_event_id};s.push(x);continue}if(f.role==="tool"){const g=((d=f.tool_call_id)==null?void 0:d.trim())||`orphan-tool-call:${f.id}`,y=gs(n.get(g))||gs(f.tool_name)||gs(f.name)||j_(f.content)||Uc,x=f.tool_success===!1||f.tool_success==null&&typeof f.content=="string"&&f.content.trimStart().startsWith("Error:"),S={role:"assistant",type:"tool_result",id:f.id,createdAt:m,toolName:y,toolCallId:g,result:{tool_name:y,result:f.content||"",display_preference:"Default"},isError:x,isCompressed:!!f.compressed,compressedEventId:f.compressed_by_event_id};s.push(S);continue}}return s},O_=750,Tt={inFlight:null,forcedPromise:null,timer:null,trailingPromise:null,trailingResolve:null,trailingReject:null};function Sy(){const e={resolve:Tt.trailingResolve,reject:Tt.trailingReject};return Tt.trailingPromise=null,Tt.trailingResolve=null,Tt.trailingReject=null,e}function wh(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 $_(){return Tt.timer&&(clearTimeout(Tt.timer),Tt.timer=null),Sy()}function L_(e,t){const n=e.map(Fu);t(r=>{let s=r.executionBySession;for(const c of e)s=Zt(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 te,N,O,Q;const f=o.get(c.id);if(!f)return a=!0,c;const m=xh(f.updatedAt),g=xh(c.updatedAt),y=m!==null&&g!==null&&m>g,x=f.config||{},S=c.config||{},_=Object.prototype.hasOwnProperty.call(x,"model"),E=Object.prototype.hasOwnProperty.call(x,"model_ref"),T=Object.prototype.hasOwnProperty.call(x,"reasoningEffort"),P=Object.prototype.hasOwnProperty.call(x,"goldConfig"),C=Math.max(f.messageCount??0,c.messageCount??0),A=c.titleVersion??0,I=f.titleVersion??0,L=A>I?{title:c.title,titleVersion:A}:{title:f.title,titleVersion:I},$={...x,...S,model:y&&_?x.model:S.model,model_ref:y&&E?x.model_ref:S.model_ref,reasoningEffort:y&&T?x.reasoningEffort:S.reasoningEffort,goldConfig:y&&P?x.goldConfig:S.goldConfig,compressionEvents:((te=f.config)==null?void 0:te.compressionEvents)??((N=c.config)==null?void 0:N.compressionEvents),syncCursor:((O=f.config)==null?void 0:O.syncCursor)??((Q=c.config)==null?void 0:Q.syncCursor)},F={...c,pinned:y?f.pinned:c.pinned,updatedAt:y?f.updatedAt:c.updatedAt,messages:f.messages,messageCount:C,planMode:c.planMode,config:$,...L};return E_(f,F)?(r.chats[d]!==f&&(a=!0),f):(a=!0,F)});return!a&&s===r.executionBySession?r:{...r,chats:a?i:r.chats,executionBySession:s}})}async function ll(e){return Tt.inFlight?(Re("[ChatSlice]","refreshChats.inFlight.reuse",{}),Tt.inFlight):(Re("[ChatSlice]","refreshChats.start",{}),Tt.inFlight=(async()=>{try{const t=await br.listSessions();Re("[ChatSlice]","refreshChats.response",{count:t.sessions.length,runningCount:t.sessions.filter(n=>n.is_running).length}),L_(t.sessions,e)}catch(t){throw console.error("[ChatSlice] Failed to refresh sessions:",t),Re("[ChatSlice]","refreshChats.error",{error:t}),t}})().finally(()=>{Re("[ChatSlice]","refreshChats.finally",{}),Tt.inFlight=null}),Tt.inFlight)}function D_(e){return Tt.forcedPromise?(Re("[ChatSlice]","refreshChatsNow.forced.reuse",{}),Tt.forcedPromise):(Re("[ChatSlice]","refreshChatsNow.forced.start",{hasInflight:!!Tt.inFlight}),Tt.forcedPromise=(async()=>{Tt.inFlight&&await Tt.inFlight,await ll(e)})().finally(()=>{Re("[ChatSlice]","refreshChatsNow.forced.finally",{}),Tt.forcedPromise=null}),Tt.forcedPromise)}const F_=(e,t)=>({chats:[],currentSessionId:null,latestActiveSessionId:null,addChat:async n=>{var g,y,x,S,_,E,T,P,C,A,I,L,$,F;const r=(n.title||Pt.t("chat.sidebar.newSession")).trim(),s=((y=(g=n.config)==null?void 0:g.baseSystemPrompt)==null?void 0:y.trim())||"",o=(x=Nt.getState().getActiveModel())==null?void 0:x.trim(),a=((_=(S=n.config)==null?void 0:S.model)==null?void 0:_.trim())||o||void 0,i=((E=n.config)==null?void 0:E.reasoningEffort)??void 0;let c,d;if(Nt.getState().isProviderModelRefEnabled()){const te=(T=n.config)==null?void 0:T.model_ref;if((P=te==null?void 0:te.provider)!=null&&P.trim()&&((C=te==null?void 0:te.model)!=null&&C.trim()))c=te,d=te.provider;else{const N=(A=Nt.getState().providerConfig.defaults)==null?void 0:A.chat;if((I=N==null?void 0:N.provider)!=null&&I.trim()&&((L=N==null?void 0:N.model)!=null&&L.trim()))c=N,d=N.provider;else{const O=Nt.getState().getActiveModel();O&&(c={provider:Nt.getState().currentProvider,model:O},d=Nt.getState().currentProvider)}}}const f=await br.createSession({title:r,system_prompt:s||void 0,model:a,model_ref:c,provider:d,reasoning_effort:i||void 0,gold_config:(($=n.config)==null?void 0:$.goldConfig)??void 0}),m={...Fu(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??((F=n.config)==null?void 0:F.goldConfig)??null,baseSystemPrompt:s||vy},messages:[]};return e(te=>{const N=[m,...te.chats.filter(O=>O.id!==m.id)];return{...te,chats:N,currentSessionId:m.id,latestActiveSessionId:m.id}}),m.id},selectSession:n=>{const r=t();r.currentSessionId===n&&r.latestActiveSessionId===n||e({currentSessionId:n,latestActiveSessionId:n})},deleteSession:async n=>{try{await 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)=>{const s=!!r.config&&(Object.prototype.hasOwnProperty.call(r.config,"model")||Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")||Object.prototype.hasOwnProperty.call(r.config,"goldConfig")),o=typeof r.title=="string"||typeof r.pinned=="boolean",i=s||o?new Date().toISOString():void 0;e(d=>{const f=d.chats.map(m=>m.id===n?{...m,...r,...i?{updatedAt:i}:{}}:m);return{...d,chats:f}});const c={};if(typeof r.title=="string"&&(c.title=r.title),typeof r.pinned=="boolean"&&(c.pinned=r.pinned),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model")&&(c.model=r.config.model??null),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model_ref")&&Nt.getState().isProviderModelRefEnabled()&&(c.model_ref=r.config.model_ref??null,r.config.model_ref&&(c.provider=r.config.model_ref.provider)),r.config&&Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")){const d=r.config.reasoningEffort;d?c.reasoning_effort=d:c.clear_reasoning_effort=!0}r.config&&Object.prototype.hasOwnProperty.call(r.config,"goldConfig")&&(c.gold_config=r.config.goldConfig??{enabled:!1,auto_answer_enabled:!1,auto_continue_enabled:!1}),Object.keys(c).length>0&&br.patchSession(n,c).catch(d=>{console.warn(`[ChatSlice] Failed to patch session ${n}:`,d)})},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 Za?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()=>Tt.inFlight?Tt.inFlight:Tt.timer?(Tt.trailingPromise||(Tt.trailingPromise=new Promise((n,r)=>{Tt.trailingResolve=n,Tt.trailingReject=r})),Tt.trailingPromise):(Tt.timer=setTimeout(()=>{if(Tt.timer=null,Tt.trailingPromise){const n=Sy();wh(ll(e),n)}},O_),ll(e)),refreshChatsNow:async()=>{const n=$_();Re("[ChatSlice]","refreshChatsNow.start",{hadTrailingCallbacks:!!n,hasInflight:!!Tt.inFlight});const r=Tt.inFlight?D_(e):ll(e);return wh(r,n),r},loadChats:async()=>{var a,i,c;Re("[ChatSlice]","loadChats.start",{});let n=await br.listSessions();if(!n.sessions||n.sessions.length===0){const d=(a=Nt.getState().getActiveModel())==null?void 0:a.trim(),f=(i=Nt.getState().providerConfig.defaults)==null?void 0:i.chat;Re("[ChatSlice]","loadChats.createInitialSession",{defaultModel:d??null,defaultModelRef:f??null}),n={sessions:[(await br.createSession({title:Pt.t("chat.sidebar.newSession"),model:d,model_ref:f,provider:f==null?void 0:f.provider})).session]}}const r=n.sessions.map(Fu),s=((c=r[0])==null?void 0:c.id)??null;Re("[ChatSlice]","loadChats.listResolved",{count:n.sessions.length,currentSessionId:s});let o=t().executionBySession;for(const d of n.sessions)o=Zt(o,{type:"applySessionSummary",sessionId:d.id,summary:d});try{const d=await br.getRunningSessions();if(Re("[ChatSlice]","loadChats.runningSnapshot",{count:d.sessions.length}),d.sessions.length>0){const f=d.sessions.map(m=>{const g=[];for(const y of m.last_critical_events){if(dy(y)){r_(y,r);continue}g.push(y)}return{sessionId:m.session_id,runId:m.run_id,criticalEvents:g}});o=Zt(o,{type:"applyRunningSnapshot",sessions:f},()=>new Date().toISOString())}}catch(d){Re("[ChatSlice]","loadChats.runningSnapshot.error",{error:d})}e({chats:r,latestActiveSessionId:s,currentSessionId:s,executionBySession:o}),Re("[ChatSlice]","loadChats.applied",{currentSessionId:s,chatCount:r.length,executionSessionCount:Object.keys(o||{}).length}),s&&(Re("[ChatSlice]","loadChats.loadInitialHistory",{currentSessionId:s}),await t().loadChatHistory(s))},loadChatHistory:async(n,r)=>{var i,c,d,f,m,g,y,x,S,_,E,T;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);Re("[ChatSlice]","loadChatHistory.start",{sessionId:n,mode:s,retries:o,retryDelayMs:a,waitForAssistant:(r==null?void 0:r.waitForAssistant)??!1});for(let P=0;P<=o;P+=1)try{const C=t().chats.find($=>$.id===n);if(!C){Re("[ChatSlice]","loadChatHistory.skipMissingChat",{sessionId:n,attempt:P});return}const A=await br.getHistory(n);Re("[ChatSlice]","loadChatHistory.response",{sessionId:n,attempt:P,historyMessageCount:A.messages.length,localMessageCount:C.messages.length,localStoredMessageCount:C.messageCount??null,lastMessageId:((i=A.messages[A.messages.length-1])==null?void 0:i.id)??null,lastRole:((c=A.messages[A.messages.length-1])==null?void 0:c.role)??null});const I=(d=A.messages[A.messages.length-1])==null?void 0:d.role;if(r!=null&&r.waitForAssistant&&I==="user"&&P<o){const $=a>0?a*(P+1):200*(P+1);Re("[ChatSlice]","loadChatHistory.waitForAssistant.retry",{sessionId:n,attempt:P,delay:$}),await new Promise(F=>setTimeout(F,$));continue}const L=I_(n,A.messages);if(s==="monotonic"){const $=C.messages||[],F=$.length,te=L.length,N=(f=L[L.length-1])==null?void 0:f.role,O=(m=$[$.length-1])==null?void 0:m.role,Q=$[$.length-1],W=L[L.length-1],z=Q==null?void 0:Q.id,pe=W==null?void 0:W.id;let Z=!1;if(te>F?Z=!0:te===F&&(Z=O==="user"&&N!=="user"||typeof z=="string"&&typeof pe=="string"&&z!==pe),Re("[ChatSlice]","loadChatHistory.monotonicDecision",{sessionId:n,attempt:P,prevLen:F,nextLen:te,prevLastRole:O??null,nextLastRole:N??null,prevLastId:z??null,nextLastId:pe??null,shouldReplace:Z}),!Z){t().updateSession(n,{messageCount:Math.max(C.messageCount??0,A.messages.length)}),Re("[ChatSlice]","loadChatHistory.monotonicSkip",{sessionId:n,attempt:P,localMessageCount:C.messages.length,serverMessageCount:A.messages.length});return}}t().updateSession(n,{messages:L,messageCount:A.messages.length,config:{...C.config||{},...A.gold_config!=null?{goldConfig:A.gold_config}:{},compressionEvents:(A.compression_events||[]).map($=>({id:$.id,createdAt:$.created_at,messagesCompressed:$.messages_compressed,segmentsRemoved:$.segments_removed})),syncCursor:{messageCount:A.messages.length,lastMessageId:((g=A.messages[A.messages.length-1])==null?void 0:g.id)??null,hasPendingQuestion:!!((x=(y=t().executionBySession)==null?void 0:y[n])!=null&&x.interaction.pendingQuestion),pendingQuestionToolCallId:((E=(_=(S=t().executionBySession)==null?void 0:S[n])==null?void 0:_.interaction.pendingQuestion)==null?void 0:E.toolCallId)??null}}}),Re("[ChatSlice]","loadChatHistory.applied",{sessionId:n,attempt:P,mode:s,messageCount:A.messages.length,lastMessageId:((T=A.messages[A.messages.length-1])==null?void 0:T.id)??null});return}catch(C){if(P>=o){console.warn(`[ChatSlice] Failed to load history for ${n}:`,C),Re("[ChatSlice]","loadChatHistory.error.final",{sessionId:n,attempt:P,retries:o,error:C});return}const A=a>0?a*(P+1):200*(P+1);Re("[ChatSlice]","loadChatHistory.error.retry",{sessionId:n,attempt:P,delay:A,error:C}),await new Promise(I=>setTimeout(I,A))}}});class Nu extends Error{constructor(n="Proxy authentication required"){super(n);Rt(this,"code","proxy_auth_required");this.name="ProxyAuthRequiredError"}}const xs=class xs{constructor(){}static getInstance(){return xs.instance||(xs.instance=new xs),xs.instance}async getModels(t){var n,r;try{const s=await ja.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 Za){if(s.status===428)throw new Nu(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 Nu(((r=o.error)==null?void 0:r.message)||s.message)}throw s}}};Rt(xs,"instance");let zu=xs;const xy=zu.getInstance(),N_=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)},z_=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")},Or=async e=>{try{await N_(e);return}catch(t){try{z_(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 B_{async copyToClipboard(t){await Or(t)}async getBambooConfig(){try{return await Ve.get("bamboo/config")}catch(t){return console.error("Failed to fetch Bamboo config:",t),{}}}async getBambooTools(){try{return await Ve.get("bamboo/tools")}catch(t){return console.error("Failed to fetch Bamboo tools:",t),{tools:[]}}}async getModelLimitDefaults(){try{return await Ve.get("bamboo/model-limits/defaults")}catch(t){return console.error("Failed to fetch model limit defaults:",t),{model_limits:[]}}}async setBambooConfig(t){return Ve.post("bamboo/config",t)}async validateBambooConfigPatch(t){return Ve.post("bamboo/config/validate",t)}async setProxyAuth(t){return Ve.post("bamboo/proxy-auth",t)}async getProxyAuthStatus(){try{return await Ve.get("bamboo/proxy-auth/status")}catch(t){return console.error("Failed to fetch proxy auth status:",t),{configured:!1,username:null}}}async clearProxyAuth(){return Ve.post("bamboo/proxy-auth",{username:"",password:""})}async resetBambooConfig(){return Ve.post("bamboo/config/reset",{})}async saveWorkflow(t,n){return Ve.post("bamboo/workflows",{name:t,content:n})}async deleteWorkflow(t){return Ve.delete(`bamboo/workflows/${encodeURIComponent(t)}`)}async getKeywordMaskingConfig(){try{return await Ve.get("bamboo/keyword-masking")}catch(t){return console.error("Failed to fetch keyword masking config:",t),{entries:[]}}}async updateKeywordMaskingConfig(t){return Ve.post("bamboo/keyword-masking",t)}async validateKeywordEntries(t){return Ve.post("bamboo/keyword-masking/validate",t)}async getSetupStatus(){return await Ve.get("bamboo/setup/status")}async markSetupComplete(){return Ve.post("bamboo/setup/complete",{})}async resetSetupStatus(){await Ve.post("bamboo/setup/incomplete",{})}async getAccessStatus(){return Ve.get("bamboo/access/status")}async verifyAccessPassword(t){return Ve.post("bamboo/access/verify",{password:t})}async updateAccessPassword(t){return Ve.post("bamboo/access/password",t)}}const ws=class ws{constructor(){Rt(this,"httpUtilityService",new B_)}static getInstance(){return ws.instance||(ws.instance=new ws),ws.instance}getUtilityService(){return{copyToClipboard:t=>this.httpUtilityService.copyToClipboard(t),getBambooConfig:()=>this.httpUtilityService.getBambooConfig(),getBambooTools:()=>this.httpUtilityService.getBambooTools(),getModelLimitDefaults:()=>this.httpUtilityService.getModelLimitDefaults(),setBambooConfig:t=>this.httpUtilityService.setBambooConfig(t),validateBambooConfigPatch:t=>this.httpUtilityService.validateBambooConfigPatch(t),setProxyAuth:t=>this.httpUtilityService.setProxyAuth(t),getProxyAuthStatus:()=>this.httpUtilityService.getProxyAuthStatus(),clearProxyAuth:()=>this.httpUtilityService.clearProxyAuth(),resetBambooConfig:()=>this.httpUtilityService.resetBambooConfig(),resetSetupStatus:()=>this.httpUtilityService.resetSetupStatus(),saveWorkflow:(t,n)=>this.httpUtilityService.saveWorkflow(t,n),deleteWorkflow:t=>this.httpUtilityService.deleteWorkflow(t),getKeywordMaskingConfig:()=>this.httpUtilityService.getKeywordMaskingConfig(),updateKeywordMaskingConfig:t=>this.httpUtilityService.updateKeywordMaskingConfig(t),validateKeywordEntries:t=>this.httpUtilityService.validateKeywordEntries(t),getSetupStatus:()=>this.httpUtilityService.getSetupStatus(),markSetupComplete:()=>this.httpUtilityService.markSetupComplete(),getAccessStatus:()=>this.httpUtilityService.getAccessStatus(),verifyAccessPassword:t=>this.httpUtilityService.verifyAccessPassword(t),updateAccessPassword:t=>this.httpUtilityService.updateAccessPassword(t)}}async copyToClipboard(t){return this.getUtilityService().copyToClipboard(t)}async getBambooConfig(){return this.getUtilityService().getBambooConfig()}async getBambooTools(){return this.getUtilityService().getBambooTools()}async getModelLimitDefaults(){return this.getUtilityService().getModelLimitDefaults()}async setBambooConfig(t){return this.getUtilityService().setBambooConfig(t)}async validateBambooConfigPatch(t){return this.getUtilityService().validateBambooConfigPatch(t)}async setProxyAuth(t){return this.getUtilityService().setProxyAuth(t)}async getProxyAuthStatus(){return this.getUtilityService().getProxyAuthStatus()}async clearProxyAuth(){return this.getUtilityService().clearProxyAuth()}async resetBambooConfig(){return this.getUtilityService().resetBambooConfig()}async resetSetupStatus(){return this.getUtilityService().resetSetupStatus()}async saveWorkflow(t,n){return this.getUtilityService().saveWorkflow(t,n)}async deleteWorkflow(t){return this.getUtilityService().deleteWorkflow(t)}async getKeywordMaskingConfig(){return this.getUtilityService().getKeywordMaskingConfig()}async updateKeywordMaskingConfig(t){return this.getUtilityService().updateKeywordMaskingConfig(t)}async validateKeywordEntries(t){return this.getUtilityService().validateKeywordEntries(t)}async getSetupStatus(){return this.getUtilityService().getSetupStatus()}async markSetupComplete(){return this.getUtilityService().markSetupComplete()}async getAccessStatus(){return this.getUtilityService().getAccessStatus()}async verifyAccessPassword(t){return this.getUtilityService().verifyAccessPassword(t)}async updateAccessPassword(t){return this.getUtilityService().updateAccessPassword(t)}};Rt(ws,"instance");let po=ws;const ys=po.getInstance();let Lo=null,Do=null;const qc=(e,t)=>e instanceof Error&&e.message.trim()?e.message:t,Bu=ns((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(Lo)return Lo;Lo=(async()=>{e({isLoadingConfig:!0,error:null});try{const s=await ys.getBambooConfig()??{};return e({config:s,lastLoadedAt:Date.now(),error:null}),s}catch(s){const o=qc(s,"Failed to load Bamboo config");throw e({error:o}),s}finally{e({isLoadingConfig:!1})}})();try{return await Lo}finally{Lo=null}},saveConfig:async n=>{e({isLoadingConfig:!0,error:null,config:n});try{const r=await ys.setBambooConfig(n);return e({config:r,lastLoadedAt:Date.now(),error:null}),r}catch(r){const s=qc(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(Do)return Do;Do=(async()=>{e({isLoadingProxyAuthStatus:!0,error:null});try{const s=await ys.getProxyAuthStatus();return e({proxyAuthStatus:s,error:null}),s}catch(s){const o=qc(s,"Failed to load proxy auth status");throw e({error:o}),s}finally{e({isLoadingProxyAuthStatus:!1})}})();try{return await Do}finally{Do=null}},applyProxyAuth:async n=>{await ys.setProxyAuth(n),await t().loadProxyAuthStatus({force:!0})},clearProxyAuth:async()=>{await ys.clearProxyAuth(),await t().loadProxyAuthStatus({force:!0})}}));let Fo=null;const W_=(e,t)=>({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:null,configModel:void 0,setSelectedModel:n=>{e({selectedModel:n})},loadConfigModel:async()=>{try{const n=await Bu.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(Fo)return Fo;Fo=(async()=>{e({isLoadingModels:!0,modelsError:null});try{try{if(!(await ys.getSetupStatus()).is_complete){Re("[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 xy.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 Nu){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 Fo}finally{Fo=null}}}),U_=["system_prompt","system_prompt_selected_id"],Hc=e=>({id:e.id,name:e.name||e.id,content:e.content||"",description:e.description,isDefault:!!e.is_default}),Gr=class Gr{constructor(){Rt(this,"deprecatedKeysCleanupDone",!1)}static getInstance(){return Gr.instance||(Gr.instance=new Gr),Gr.instance.cleanupDeprecatedPromptStorageKeys(),Gr.instance}cleanupDeprecatedPromptStorageKeys(){if(!this.deprecatedKeysCleanupDone){this.deprecatedKeysCleanupDone=!0;try{for(const t of U_)localStorage.removeItem(t)}catch(t){console.warn("[SystemPromptService] Failed to cleanup deprecated prompt storage keys:",t)}}}async getSystemPromptPresets(){try{const t=await kt.get("prompt-presets"),r=(Array.isArray(t==null?void 0:t.prompts)?t.prompts:[]).filter(s=>s.id&&s.id.trim().length>0).map(Hc);if(r.length>0)return r}catch(t){console.error("Failed to load prompt presets from backend:",t)}return El()}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 kt.post("prompt-presets",n);if(!(r!=null&&r.prompt))throw new Error("Backend did not return created prompt preset");return Hc(r.prompt)}async updateSystemPromptPreset(t){const n=encodeURIComponent(t.id),r={name:t.name,content:t.content,description:t.description},s=await kt.patch(`prompt-presets/${n}`,r);if(!(s!=null&&s.prompt))throw new Error("Backend did not return updated prompt preset");return Hc(s.prompt)}async deleteSystemPromptPreset(t){const n=encodeURIComponent(t);await kt.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)||""}};Rt(Gr,"instance");let Ml=Gr;const _h="copilot_last_selected_prompt_id",wy="copilot_custom_system_prompts_v2",_y="copilot_custom_system_prompts_v2_migrated_to_backend",Cy="general_assistant",Wd=80,no=Ml.getInstance();let Fi=null;function Ud(e){const t=e.toLowerCase().trim().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return t.length===0?`prompt_${Date.now()}_${Math.random().toString(36).substring(2,9)}`:t.slice(0,Wd)}function ky(e){if(typeof e!="string")return null;const t=e.toLowerCase().trim().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"");return t?t.slice(0,Wd):null}function Ty(e,t){if(!t.has(e))return e;let n=2;for(;;){const r=`_${n}`,o=`${e.slice(0,Math.max(0,Wd-r.length))}${r}`;if(!t.has(o))return o;n+=1}}function Py(){try{const e=localStorage.getItem(wy);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=ky(s==null?void 0:s.id)||Ud(o),d=Ty(c,n);d!==Cy&&(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 Ey(){try{return localStorage.getItem(_y)==="1"}catch(e){return console.error("[promptSlice] Failed to read migration marker:",e),!1}}function Ch(){try{localStorage.setItem(_y,"1")}catch(e){console.error("[promptSlice] Failed to write migration marker:",e)}}function kh(){try{localStorage.removeItem(wy)}catch(e){console.error("[promptSlice] Failed to clear legacy custom prompts:",e)}}async function q_(){var s,o;if(Ey())return;const e=Py();if(e.length===0){kh(),Ch();return}const t=await no.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===Cy||a.isDefault)continue;const d=ky(a.id)||Ud(i),f=Ty(d,n);try{const m=await no.createSystemPromptPreset({id:f,name:i,content:c,description:a.description});n.add(m.id)}catch(m){r=!0,console.error(`[promptSlice] Failed to migrate legacy prompt '${i}' to backend:`,m)}}r||(kh(),Ch())}async function H_(){Fi||(Fi=q_().finally(()=>{Fi=null})),await Fi}const Y_=(e,t)=>({systemPrompts:[],lastSelectedPromptId:localStorage.getItem(_h)||null,loadSystemPrompts:async()=>{try{await H_()}catch(s){console.warn("[promptSlice] Legacy prompt migration skipped:",s)}let n=[];try{n=await no.getSystemPromptPresets()}catch(s){console.error("Failed to load system prompts from backend:",s)}let r=n.length?n:El();if(!Ey()){const s=Py();r=X_(r,s)}r.length===0&&(r=El()),e({systemPrompts:r})},addSystemPrompt:async n=>{try{await no.createSystemPromptPreset({id:Ud(n.name),name:n.name,content:n.content,description:n.description}),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to add system prompt:",r),r}},updateSystemPrompt:async n=>{try{await no.updateSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to update system prompt:",r),r}},deleteSystemPrompt:async n=>{try{await no.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(_h,n)}catch(r){console.error("Failed to save last selected prompt ID to localStorage:",r)}}}),X_=(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())},K_=()=>({});class V_{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 Ve.get(o)}async getSkill(t){return Ve.get(`skills/${t}`)}async getFilteredTools(t){const n=t?`?session_id=${encodeURIComponent(t)}`:"";return(await Ve.get(`skills/filtered-tools${n}`)).tools??[]}}const Th=new V_,G_=(e,t)=>({skills:[],isLoadingSkills:!1,skillsError:null,loadSkills:async(n,r)=>{e({isLoadingSkills:!0,skillsError:null});try{const s=await Th.listSkills(n,r);e({skills:s.skills,isLoadingSkills:!1})}catch(s){e({skillsError:s instanceof Error?s.message:Pt.t("components.skillManager.loadFailed"),isLoadingSkills:!1})}},getSkill:async n=>{e({isLoadingSkills:!0,skillsError:null});try{const r=await Th.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:Pt.t("components.skillManager.getFailed"),isLoadingSkills:!1})}},clearSkillsError:()=>{e({skillsError:null})}}),J_=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}})}),Q_=tr.getInstance(),Z_=(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 Q_.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,...m}=r.evaluationStates;return{taskLists:o,taskListVersions:i,activeItems:d,evaluationStates:m}}),getTaskListVersion:n=>t().taskListVersions[n]||0,setEvaluationState:(n,r)=>e(s=>({evaluationStates:{...s.evaluationStates,[n]:r}})),clearEvaluationState:n=>e(r=>{const{[n]:s,...o}=r.evaluationStates;return{evaluationStates:o}})});var cl={exports:{}},e0=cl.exports,Ph;function t0(){return Ph||(Ph=1,function(e,t){((n,r)=>{e.exports=r()})(e0,function(){var n=function(u,h){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(p,v){p.__proto__=v}:function(p,v){for(var w in v)Object.prototype.hasOwnProperty.call(v,w)&&(p[w]=v[w])}))(u,h)},r=function(){return(r=Object.assign||function(u){for(var h,p=1,v=arguments.length;p<v;p++)for(var w in h=arguments[p])Object.prototype.hasOwnProperty.call(h,w)&&(u[w]=h[w]);return u}).apply(this,arguments)};function s(u,h,p){for(var v,w=0,k=h.length;w<k;w++)!v&&w in h||((v=v||Array.prototype.slice.call(h,0,w))[w]=h[w]);return u.concat(v||Array.prototype.slice.call(h))}var o=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:gx,a=Object.keys,i=Array.isArray;function c(u,h){return typeof h=="object"&&a(h).forEach(function(p){u[p]=h[p]}),u}typeof Promise>"u"||o.Promise||(o.Promise=Promise);var d=Object.getPrototypeOf,f={}.hasOwnProperty;function m(u,h){return f.call(u,h)}function g(u,h){typeof h=="function"&&(h=h(d(u))),(typeof Reflect>"u"?a:Reflect.ownKeys)(h).forEach(function(p){x(u,p,h[p])})}var y=Object.defineProperty;function x(u,h,p,v){y(u,h,c(p&&m(p,"get")&&typeof p.get=="function"?{get:p.get,set:p.set,configurable:!0}:{value:p,configurable:!0,writable:!0},v))}function S(u){return{from:function(h){return u.prototype=Object.create(h.prototype),x(u.prototype,"constructor",u),{extend:g.bind(null,u.prototype)}}}}var _=Object.getOwnPropertyDescriptor,E=[].slice;function T(u,h,p){return E.call(u,h,p)}function P(u,h){return h(u)}function C(u){if(!u)throw new Error("Assertion Failed")}function A(u){o.setImmediate?setImmediate(u):setTimeout(u,0)}function I(u,h){if(typeof h=="string"&&m(u,h))return u[h];if(!h)return u;if(typeof h!="string"){for(var p=[],v=0,w=h.length;v<w;++v){var k=I(u,h[v]);p.push(k)}return p}var M,R=h.indexOf(".");return R===-1||(M=u[h.substr(0,R)])==null?void 0:I(M,h.substr(R+1))}function L(u,h,p){if(u&&h!==void 0&&!("isFrozen"in Object&&Object.isFrozen(u)))if(typeof h!="string"&&"length"in h){C(typeof p!="string"&&"length"in p);for(var v=0,w=h.length;v<w;++v)L(u,h[v],p[v])}else{var k,M,R=h.indexOf(".");R!==-1?(k=h.substr(0,R),(R=h.substr(R+1))===""?p===void 0?i(u)&&!isNaN(parseInt(k))?u.splice(k,1):delete u[k]:u[k]=p:L(M=(M=u[k])&&m(u,k)?M:u[k]={},R,p)):p===void 0?i(u)&&!isNaN(parseInt(h))?u.splice(h,1):delete u[h]:u[h]=p}}function $(u){var h,p={};for(h in u)m(u,h)&&(p[h]=u[h]);return p}var F=[].concat;function te(u){return F.apply([],u)}var _e="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(te([8,16,32,64].map(function(u){return["Int","Uint","Float"].map(function(h){return h+u+"Array"})}))).filter(function(u){return o[u]}),N=new Set(_e.map(function(u){return o[u]})),O=null;function Q(u){return O=new WeakMap,u=function h(p){if(!p||typeof p!="object")return p;var v=O.get(p);if(v)return v;if(i(p)){v=[],O.set(p,v);for(var w=0,k=p.length;w<k;++w)v.push(h(p[w]))}else if(N.has(p.constructor))v=p;else{var M,R=d(p);for(M in v=R===Object.prototype?{}:Object.create(R),O.set(p,v),p)m(p,M)&&(v[M]=h(p[M]))}return v}(u),O=null,u}var W={}.toString;function z(u){return W.call(u).slice(8,-1)}var pe=typeof Symbol<"u"?Symbol.iterator:"@@iterator",Z=typeof pe=="symbol"?function(u){var h;return u!=null&&(h=u[pe])&&h.apply(u)}:function(){return null};function ce(u,h){h=u.indexOf(h),0<=h&&u.splice(h,1)}var ve={};function G(u){var h,p,v,w;if(arguments.length===1){if(i(u))return u.slice();if(this===ve&&typeof u=="string")return[u];if(w=Z(u))for(p=[];!(v=w.next()).done;)p.push(v.value);else{if(u==null)return[u];if(typeof(h=u.length)!="number")return[u];for(p=new Array(h);h--;)p[h]=u[h]}}else for(h=arguments.length,p=new Array(h);h--;)p[h]=arguments[h];return p}var he=typeof Symbol<"u"?function(u){return u[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},_e=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Bt=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(_e),ie={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 ue(u,h){this.name=u,this.message=h}function me(u,h){return u+". Errors: "+Object.keys(h).map(function(p){return h[p].toString()}).filter(function(p,v,w){return w.indexOf(p)===v}).join(`
12
+ `)}function ke(u,h,p,v){this.failures=h,this.failedKeys=v,this.successCount=p,this.message=me(u,h)}function De(u,h){this.name="BulkError",this.failures=Object.keys(h).map(function(p){return h[p]}),this.failuresByPos=h,this.message=me(u,this.failures)}S(ue).from(Error).extend({toString:function(){return this.name+": "+this.message}}),S(ke).from(ue),S(De).from(ue);var Fe=Bt.reduce(function(u,h){return u[h]=h+"Error",u},{}),j=ue,se=Bt.reduce(function(u,h){var p=h+"Error";function v(w,k){this.name=p,w?typeof w=="string"?(this.message="".concat(w).concat(k?`
13
+ `+k:""),this.inner=k||null):typeof w=="object"&&(this.message="".concat(w.name," ").concat(w.message),this.inner=w):(this.message=ie[h]||p,this.inner=null)}return S(v).from(j),u[h]=v,u},{}),ge=(se.Syntax=SyntaxError,se.Type=TypeError,se.Range=RangeError,_e.reduce(function(u,h){return u[h+"Error"]=se[h],u},{}));_e=Bt.reduce(function(u,h){return["Syntax","Type","Range"].indexOf(h)===-1&&(u[h+"Error"]=se[h]),u},{});function we(){}function He(u){return u}function xt(u,h){return u==null||u===He?h:function(p){return h(u(p))}}function ot(u,h){return function(){u.apply(this,arguments),h.apply(this,arguments)}}function et(u,h){return u===we?h:function(){var p=u.apply(this,arguments),v=(p!==void 0&&(arguments[0]=p),this.onsuccess),w=this.onerror,k=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return v&&(this.onsuccess=this.onsuccess?ot(v,this.onsuccess):v),w&&(this.onerror=this.onerror?ot(w,this.onerror):w),k!==void 0?k:p}}function $t(u,h){return u===we?h:function(){u.apply(this,arguments);var p=this.onsuccess,v=this.onerror;this.onsuccess=this.onerror=null,h.apply(this,arguments),p&&(this.onsuccess=this.onsuccess?ot(p,this.onsuccess):p),v&&(this.onerror=this.onerror?ot(v,this.onerror):v)}}function Yt(u,h){return u===we?h:function(w){var v=u.apply(this,arguments),w=(c(w,v),this.onsuccess),k=this.onerror,M=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return w&&(this.onsuccess=this.onsuccess?ot(w,this.onsuccess):w),k&&(this.onerror=this.onerror?ot(k,this.onerror):k),v===void 0?M===void 0?void 0:M:c(v,M)}}function Lt(u,h){return u===we?h:function(){return h.apply(this,arguments)!==!1&&u.apply(this,arguments)}}function On(u,h){return u===we?h:function(){var p=u.apply(this,arguments);if(p&&typeof p.then=="function"){for(var v=this,w=arguments.length,k=new Array(w);w--;)k[w]=arguments[w];return p.then(function(){return h.apply(v,k)})}return h.apply(this,arguments)}}_e.ModifyError=ke,_e.DexieError=ue,_e.BulkError=De;var jt=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Mn(u){jt=u}var yt={},Cn=100,yn=typeof Promise>"u"?[]:(Bt=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[yn=crypto.subtle.digest("SHA-512",new Uint8Array([0])),d(yn),Bt]:[Bt,d(Bt),Bt]),Bt=yn[0],Us=yn[1],Us=Us&&Us.then,Qt=Bt&&Bt.constructor,hn=!!yn[2],ye=function(u,h){wt.push([u,h]),$e&&(queueMicrotask(bt),$e=!1)},Ue=!0,$e=!0,Ke=[],Xt=[],Fn=He,tn={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:we,pgp:!1,env:{},finalize:we},Ie=tn,wt=[],B=0,oe=[];function D(u){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var h=this._PSD=Ie;if(typeof u!="function"){if(u!==yt)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Ne(this,this._value)}else this._state=null,this._value=null,++h.ref,function p(v,w){try{w(function(k){if(v._state===null){if(k===v)throw new TypeError("A promise cannot be resolved with itself.");var M=v._lib&&Ht();k&&typeof k.then=="function"?p(v,function(R,q){k instanceof D?k._then(R,q):k.then(R,q)}):(v._state=!0,v._value=k,it(v)),M&&_t()}},Ne.bind(null,v))}catch(k){Ne(v,k)}}(this,u)}var Ae={get:function(){var u=Ie,h=Lr;function p(v,w){var k=this,M=!u.global&&(u!==Ie||h!==Lr),R=M&&!sr(),q=new D(function(ee,Y){pt(k,new We(ko(v,u,M,R),ko(w,u,M,R),ee,Y,u))});return this._consoleTask&&(q._consoleTask=this._consoleTask),q}return p.prototype=yt,p},set:function(u){x(this,"then",u&&u.prototype===yt?Ae:{get:function(){return u},set:Ae.set})}};function We(u,h,p,v,w){this.onFulfilled=typeof u=="function"?u:null,this.onRejected=typeof h=="function"?h:null,this.resolve=p,this.reject=v,this.psd=w}function Ne(u,h){var p,v;Xt.push(h),u._state===null&&(p=u._lib&&Ht(),h=Fn(h),u._state=!1,u._value=h,v=u,Ke.some(function(w){return w._value===v._value})||Ke.push(v),it(u),p)&&_t()}function it(u){var h=u._listeners;u._listeners=[];for(var p=0,v=h.length;p<v;++p)pt(u,h[p]);var w=u._PSD;--w.ref||w.finalize(),B===0&&(++B,ye(function(){--B==0&&st()},[]))}function pt(u,h){if(u._state===null)u._listeners.push(h);else{var p=u._state?h.onFulfilled:h.onRejected;if(p===null)return(u._state?h.resolve:h.reject)(u._value);++h.psd.ref,++B,ye(It,[p,u,h])}}function It(u,h,p){try{var v,w=h._value;!h._state&&Xt.length&&(Xt=[]),v=jt&&h._consoleTask?h._consoleTask.run(function(){return u(w)}):u(w),h._state||Xt.indexOf(w)!==-1||(k=>{for(var M=Ke.length;M;)if(Ke[--M]._value===k._value)return Ke.splice(M,1)})(h),p.resolve(v)}catch(k){p.reject(k)}finally{--B==0&&st(),--p.psd.ref||p.psd.finalize()}}function bt(){or(tn,function(){Ht()&&_t()})}function Ht(){var u=Ue;return $e=Ue=!1,u}function _t(){var u,h,p;do for(;0<wt.length;)for(u=wt,wt=[],p=u.length,h=0;h<p;++h){var v=u[h];v[0].apply(null,v[1])}while(0<wt.length);$e=Ue=!0}function st(){for(var u=Ke,h=(Ke=[],u.forEach(function(v){v._PSD.onunhandled.call(null,v._value,v)}),oe.slice(0)),p=h.length;p;)h[--p]()}function Te(u){return new D(yt,!1,u)}function Oe(u,h){var p=Ie;return function(){var v=Ht(),w=Ie;try{return pr(p,!0),u.apply(this,arguments)}catch(k){h&&h(k)}finally{pr(w,!1),v&&_t()}}}g(D.prototype,{then:Ae,_then:function(u,h){pt(this,new We(null,null,u,h,Ie))},catch:function(u){var h,p;return arguments.length===1?this.then(null,u):(h=u,p=arguments[1],typeof h=="function"?this.then(null,function(v){return(v instanceof h?p:Te)(v)}):this.then(null,function(v){return(v&&v.name===h?p:Te)(v)}))},finally:function(u){return this.then(function(h){return D.resolve(u()).then(function(){return h})},function(h){return D.resolve(u()).then(function(){return Te(h)})})},timeout:function(u,h){var p=this;return u<1/0?new D(function(v,w){var k=setTimeout(function(){return w(new se.Timeout(h))},u);p.then(v,w).finally(clearTimeout.bind(null,k))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&x(D.prototype,Symbol.toStringTag,"Dexie.Promise"),tn.env=ss(),g(D,{all:function(){var u=G.apply(null,arguments).map(Ds);return new D(function(h,p){u.length===0&&h([]);var v=u.length;u.forEach(function(w,k){return D.resolve(w).then(function(M){u[k]=M,--v||h(u)},p)})})},resolve:function(u){return u instanceof D?u:u&&typeof u.then=="function"?new D(function(h,p){u.then(h,p)}):new D(yt,!0,u)},reject:Te,race:function(){var u=G.apply(null,arguments).map(Ds);return new D(function(h,p){u.map(function(v){return D.resolve(v).then(h,p)})})},PSD:{get:function(){return Ie},set:function(u){return Ie=u}},totalEchoes:{get:function(){return Lr}},newPSD:rr,usePSD:or,scheduler:{get:function(){return ye},set:function(u){ye=u}},rejectionMapper:{get:function(){return Fn},set:function(u){Fn=u}},follow:function(u,h){return new D(function(p,v){return rr(function(w,k){var M=Ie;M.unhandleds=[],M.onunhandled=k,M.finalize=ot(function(){var R,q=this;R=function(){q.unhandleds.length===0?w():k(q.unhandleds[0])},oe.push(function ee(){R(),oe.splice(oe.indexOf(ee),1)}),++B,ye(function(){--B==0&&st()},[])},M.finalize),u()},h,p,v)})}}),Qt&&(Qt.allSettled&&x(D,"allSettled",function(){var u=G.apply(null,arguments).map(Ds);return new D(function(h){u.length===0&&h([]);var p=u.length,v=new Array(p);u.forEach(function(w,k){return D.resolve(w).then(function(M){return v[k]={status:"fulfilled",value:M}},function(M){return v[k]={status:"rejected",reason:M}}).then(function(){return--p||h(v)})})})}),Qt.any&&typeof AggregateError<"u"&&x(D,"any",function(){var u=G.apply(null,arguments).map(Ds);return new D(function(h,p){u.length===0&&p(new AggregateError([]));var v=u.length,w=new Array(v);u.forEach(function(k,M){return D.resolve(k).then(function(R){return h(R)},function(R){w[M]=R,--v||p(new AggregateError(w))})})})}),Qt.withResolvers)&&(D.withResolvers=Qt.withResolvers);var qe={awaits:0,echoes:0,id:0},Et=0,Jt=[],Yn=0,Lr=0,bi=0;function rr(u,M,p,v){var w=Ie,k=Object.create(w),M=(k.parent=w,k.ref=0,k.global=!1,k.id=++bi,tn.env,k.env=hn?{Promise:D,PromiseProp:{value:D,configurable:!0,writable:!0},all:D.all,race:D.race,allSettled:D.allSettled,any:D.any,resolve:D.resolve,reject:D.reject}:{},M&&c(k,M),++w.ref,k.finalize=function(){--this.parent.ref||this.parent.finalize()},or(k,u,p,v));return k.ref===0&&k.finalize(),M}function Pr(){return qe.id||(qe.id=++Et),++qe.awaits,qe.echoes+=Cn,qe.id}function sr(){return!!qe.awaits&&(--qe.awaits==0&&(qe.id=0),qe.echoes=qe.awaits*Cn,!0)}function Ds(u){return qe.echoes&&u&&u.constructor===Qt?(Pr(),u.then(function(h){return sr(),h},function(h){return sr(),Kt(h)})):u}function mc(){var u=Jt[Jt.length-1];Jt.pop(),pr(u,!1)}function pr(u,h){var p,v,w=Ie;(h?!qe.echoes||Yn++&&u===Ie:!Yn||--Yn&&u===Ie)||queueMicrotask(h?(function(k){++Lr,qe.echoes&&--qe.echoes!=0||(qe.echoes=qe.awaits=qe.id=0),Jt.push(Ie),pr(k,!0)}).bind(null,u):mc),u!==Ie&&(Ie=u,w===tn&&(tn.env=ss()),hn)&&(p=tn.env.Promise,v=u.env,w.global||u.global)&&(Object.defineProperty(o,"Promise",v.PromiseProp),p.all=v.all,p.race=v.race,p.resolve=v.resolve,p.reject=v.reject,v.allSettled&&(p.allSettled=v.allSettled),v.any)&&(p.any=v.any)}function ss(){var u=o.Promise;return hn?{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 or(u,h,p,v,w){var k=Ie;try{return pr(u,!0),h(p,v,w)}finally{pr(k,!1)}}function ko(u,h,p,v){return typeof u!="function"?u:function(){var w=Ie;p&&Pr(),pr(h,!0);try{return u.apply(this,arguments)}finally{pr(w,!1),v&&queueMicrotask(sr)}}}function os(u){Promise===Qt&&qe.echoes===0?Yn===0?u():enqueueNativeMicroTask(u):setTimeout(u,0)}(""+Us).indexOf("[native code]")===-1&&(Pr=sr=we);var Kt=D.reject,ar="￿",Xn="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",Si="String expected.",Fs="__dbnames",Ns="readonly",To="readwrite";function mr(u,h){return u?h?function(){return u.apply(this,arguments)&&h.apply(this,arguments)}:u:h}var Po={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function as(u){return typeof u!="string"||/\./.test(u)?function(h){return h}:function(h){return h[u]===void 0&&u in h&&delete(h=Q(h))[u],h}}function Eo(){throw se.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function mt(u,h){try{var p=de(u),v=de(h);if(p!==v)return p==="Array"?1:v==="Array"?-1:p==="binary"?1:v==="binary"?-1:p==="string"?1:v==="string"?-1:p==="Date"?1:v!=="Date"?NaN:-1;switch(p){case"number":case"Date":case"string":return h<u?1:u<h?-1:0;case"binary":for(var w=lt(u),k=lt(h),M=w.length,R=k.length,q=M<R?M:R,ee=0;ee<q;++ee)if(w[ee]!==k[ee])return w[ee]<k[ee]?-1:1;return M===R?0:M<R?-1:1;case"Array":for(var Y=u,U=h,H=Y.length,J=U.length,X=H<J?H:J,K=0;K<X;++K){var V=mt(Y[K],U[K]);if(V!==0)return V}return H===J?0:H<J?-1:1}}catch{}return NaN}function de(u){var h=typeof u;return h=="object"&&(ArrayBuffer.isView(u)||(h=z(u))==="ArrayBuffer")?"binary":h}function lt(u){return u instanceof Uint8Array?u:ArrayBuffer.isView(u)?new Uint8Array(u.buffer,u.byteOffset,u.byteLength):new Uint8Array(u)}function Ct(u,h,p){var v=u.schema.yProps;return v?(h&&0<p.numFailures&&(h=h.filter(function(w,k){return!p.failures[k]})),Promise.all(v.map(function(w){return w=w.updatesTable,h?u.db.table(w).where("k").anyOf(h).delete():u.db.table(w).clear()})).then(function(){return p})):p}Mt.prototype.execute=function(u){var h=this["@@propmod"];if(h.add!==void 0){var p=h.add;if(i(p))return s(s([],i(u)?u:[],!0),p).sort();if(typeof p=="number")return(Number(u)||0)+p;if(typeof p=="bigint")try{return BigInt(u)+p}catch{return BigInt(0)+p}throw new TypeError("Invalid term ".concat(p))}if(h.remove!==void 0){var v=h.remove;if(i(v))return i(u)?u.filter(function(w){return!v.includes(w)}).sort():[];if(typeof v=="number")return Number(u)-v;if(typeof v=="bigint")try{return BigInt(u)-v}catch{return BigInt(0)-v}throw new TypeError("Invalid subtrahend ".concat(v))}return p=(p=h.replacePrefix)==null?void 0:p[0],p&&typeof u=="string"&&u.startsWith(p)?h.replacePrefix[1]+u.substring(p.length):u};var Ot=Mt;function Mt(u){this["@@propmod"]=u}function Dt(u,h){for(var p=a(h),v=p.length,w=!1,k=0;k<v;++k){var M=p[k],R=h[M],q=I(u,M);R instanceof Ot?(L(u,M,R.execute(q)),w=!0):q!==R&&(L(u,M,R),w=!0)}return w}at.prototype._trans=function(u,h,p){var v=this._tx||Ie.trans,w=this.name,k=jt&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(u==="readonly"?"read":"write"," ").concat(this.name));function M(ee,Y,U){if(U.schema[w])return h(U.idbtrans,U);throw new se.NotFound("Table "+w+" not part of transaction")}var R=Ht();try{var q=v&&v.db._novip===this.db._novip?v===Ie.trans?v._promise(u,M,p):rr(function(){return v._promise(u,M,p)},{trans:v,transless:Ie.transless||Ie}):function ee(Y,U,H,J){if(Y.idbdb&&(Y._state.openComplete||Ie.letThrough||Y._vip)){var X=Y._createTransaction(U,H,Y._dbSchema);try{X.create(),Y._state.PR1398_maxLoop=3}catch(K){return K.name===Fe.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,U,H,J)})):Kt(K)}return X._promise(U,function(K,V){return rr(function(){return Ie.trans=X,J(K,V,X)})}).then(function(K){if(U==="readwrite")try{X.idbtrans.commit()}catch{}return U==="readonly"?K:X._completion.then(function(){return K})})}if(Y._state.openComplete)return Kt(new se.DatabaseClosed(Y._state.dbOpenError));if(!Y._state.isBeingOpened){if(!Y._state.autoOpen)return Kt(new se.DatabaseClosed);Y.open().catch(we)}return Y._state.dbReadyPromise.then(function(){return ee(Y,U,H,J)})}(this.db,u,[this.name],M);return k&&(q._consoleTask=k,q=q.catch(function(ee){return console.trace(ee),Kt(ee)})),q}finally{R&&_t()}},at.prototype.get=function(u,h){var p=this;return u&&u.constructor===Object?this.where(u).first(h):u==null?Kt(new se.Type("Invalid argument to Table.get()")):this._trans("readonly",function(v){return p.core.get({trans:v,key:u}).then(function(w){return p.hook.reading.fire(w)})}).then(h)},at.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 p=this.schema.indexes.concat(this.schema.primKey).filter(function(R){if(R.compound&&h.every(function(ee){return 0<=R.keyPath.indexOf(ee)})){for(var q=0;q<h.length;++q)if(h.indexOf(R.keyPath[q])===-1)return!1;return!0}return!1}).sort(function(R,q){return R.keyPath.length-q.keyPath.length})[0];if(p&&this.db._maxKey!==ar)return M=p.keyPath.slice(0,h.length),this.where(M).equals(M.map(function(R){return u[R]}));!p&&jt&&console.warn("The query ".concat(JSON.stringify(u)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(h.join("+"),"]"));var v=this.schema.idxByName;function w(R,q){return mt(R,q)===0}var M=h.reduce(function(Y,q){var ee=Y[0],Y=Y[1],U=v[q],H=u[q];return[ee||U,ee||!U?mr(Y,U&&U.multi?function(J){return J=I(J,q),i(J)&&J.some(function(X){return w(H,X)})}:function(J){return w(H,I(J,q))}):Y]},[null,null]),k=M[0],M=M[1];return k?this.where(k.name).equals(u[k.keyPath]).filter(M):p?this.filter(M):this.where(h).equals("")},at.prototype.filter=function(u){return this.toCollection().and(u)},at.prototype.count=function(u){return this.toCollection().count(u)},at.prototype.offset=function(u){return this.toCollection().offset(u)},at.prototype.limit=function(u){return this.toCollection().limit(u)},at.prototype.each=function(u){return this.toCollection().each(u)},at.prototype.toArray=function(u){return this.toCollection().toArray(u)},at.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},at.prototype.orderBy=function(u){return new this.db.Collection(new this.db.WhereClause(this,i(u)?"[".concat(u.join("+"),"]"):u))},at.prototype.reverse=function(){return this.toCollection().reverse()},at.prototype.mapToClass=function(u){for(var h=this.db,p=this.name,v=((this.schema.mappedClass=u).prototype instanceof Eo&&(u=(M=>{var R=Y,q=M;if(typeof q!="function"&&q!==null)throw new TypeError("Class extends value "+String(q)+" is not a constructor or null");function ee(){this.constructor=R}function Y(){return M!==null&&M.apply(this,arguments)||this}return n(R,q),R.prototype=q===null?Object.create(q):(ee.prototype=q.prototype,new ee),Object.defineProperty(Y.prototype,"db",{get:function(){return h},enumerable:!1,configurable:!0}),Y.prototype.table=function(){return p},Y})(u)),new Set),w=u.prototype;w;w=d(w))Object.getOwnPropertyNames(w).forEach(function(M){return v.add(M)});function k(M){if(!M)return M;var R,q=Object.create(u.prototype);for(R in M)if(!v.has(R))try{q[R]=M[R]}catch{}return q}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=k,this.hook("reading",k),u},at.prototype.defineClass=function(){return this.mapToClass(function(u){c(this,u)})},at.prototype.add=function(u,h){var p=this,v=this.schema.primKey,w=v.auto,k=v.keyPath,M=u;return k&&w&&(M=as(k)(u)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"add",keys:h!=null?[h]:null,values:[M]})}).then(function(R){return R.numFailures?D.reject(R.failures[0]):R.lastResult}).then(function(R){if(k)try{L(u,k,R)}catch{}return R})},at.prototype.upsert=function(u,h){var p=this,v=this.schema.primKey.keyPath;return this._trans("readwrite",function(w){return p.core.get({trans:w,key:u}).then(function(k){var M=k??{};return Dt(M,h),v&&L(M,v,u),p.core.mutate({trans:w,type:"put",values:[M],keys:[u],upsert:!0,updates:{keys:[u],changeSpecs:[h]}}).then(function(R){return R.numFailures?D.reject(R.failures[0]):!!k})})})},at.prototype.update=function(u,h){return typeof u!="object"||i(u)?this.where(":id").equals(u).modify(h):(u=I(u,this.schema.primKey.keyPath))===void 0?Kt(new se.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(u).modify(h)},at.prototype.put=function(u,h){var p=this,v=this.schema.primKey,w=v.auto,k=v.keyPath,M=u;return k&&w&&(M=as(k)(u)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"put",values:[M],keys:h!=null?[h]:null})}).then(function(R){return R.numFailures?D.reject(R.failures[0]):R.lastResult}).then(function(R){if(k)try{L(u,k,R)}catch{}return R})},at.prototype.delete=function(u){var h=this;return this._trans("readwrite",function(p){return h.core.mutate({trans:p,type:"delete",keys:[u]}).then(function(v){return Ct(h,[u],v)}).then(function(v){return v.numFailures?D.reject(v.failures[0]):void 0})})},at.prototype.clear=function(){var u=this;return this._trans("readwrite",function(h){return u.core.mutate({trans:h,type:"deleteRange",range:Po}).then(function(p){return Ct(u,null,p)})}).then(function(h){return h.numFailures?D.reject(h.failures[0]):void 0})},at.prototype.bulkGet=function(u){var h=this;return this._trans("readonly",function(p){return h.core.getMany({keys:u,trans:p}).then(function(v){return v.map(function(w){return h.hook.reading.fire(w)})})})},at.prototype.bulkAdd=function(u,h,p){var v=this,w=Array.isArray(h)?h:void 0,k=(p=p||(w?void 0:h))?p.allKeys:void 0;return this._trans("readwrite",function(M){var R=v.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&w)throw new se.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(w&&w.length!==u.length)throw new se.InvalidArgument("Arguments objects and keys must have the same length");var q=u.length,ee=R&&ee?u.map(as(R)):u;return v.core.mutate({trans:M,type:"add",keys:w,values:ee,wantResults:k}).then(function(Y){var U=Y.numFailures,H=Y.failures;if(U===0)return k?Y.results:Y.lastResult;throw new De("".concat(v.name,".bulkAdd(): ").concat(U," of ").concat(q," operations failed"),H)})})},at.prototype.bulkPut=function(u,h,p){var v=this,w=Array.isArray(h)?h:void 0,k=(p=p||(w?void 0:h))?p.allKeys:void 0;return this._trans("readwrite",function(M){var R=v.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&w)throw new se.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(w&&w.length!==u.length)throw new se.InvalidArgument("Arguments objects and keys must have the same length");var q=u.length,ee=R&&ee?u.map(as(R)):u;return v.core.mutate({trans:M,type:"put",keys:w,values:ee,wantResults:k}).then(function(Y){var U=Y.numFailures,H=Y.failures;if(U===0)return k?Y.results:Y.lastResult;throw new De("".concat(v.name,".bulkPut(): ").concat(U," of ").concat(q," operations failed"),H)})})},at.prototype.bulkUpdate=function(u){var h=this,p=this.core,v=u.map(function(M){return M.key}),w=u.map(function(M){return M.changes}),k=[];return this._trans("readwrite",function(M){return p.getMany({trans:M,keys:v,cache:"clone"}).then(function(R){var q=[],ee=[],Y=(u.forEach(function(U,H){var J=U.key,X=U.changes,K=R[H];if(K){for(var V=0,le=Object.keys(X);V<le.length;V++){var re=le[V],fe=X[re];if(re===h.schema.primKey.keyPath){if(mt(fe,J)!==0)throw new se.Constraint("Cannot update primary key in bulkUpdate()")}else L(K,re,fe)}k.push(H),q.push(J),ee.push(K)}}),q.length);return p.mutate({trans:M,type:"put",keys:q,values:ee,updates:{keys:v,changeSpecs:w}}).then(function(U){var H=U.numFailures,J=U.failures;if(H===0)return Y;for(var X=0,K=Object.keys(J);X<K.length;X++){var V,le=K[X],re=k[Number(le)];re!=null&&(V=J[le],delete J[le],J[re]=V)}throw new De("".concat(h.name,".bulkUpdate(): ").concat(H," of ").concat(Y," operations failed"),J)})})})},at.prototype.bulkDelete=function(u){var h=this,p=u.length;return this._trans("readwrite",function(v){return h.core.mutate({trans:v,type:"delete",keys:u}).then(function(w){return Ct(h,u,w)})}).then(function(v){var w=v.numFailures,k=v.failures;if(w===0)return v.lastResult;throw new De("".concat(h.name,".bulkDelete(): ").concat(w," of ").concat(p," operations failed"),k)})};var ln=at;function at(){}function Kn(u){function h(M,R){if(R){for(var q=arguments.length,ee=new Array(q-1);--q;)ee[q-1]=arguments[q];return p[M].subscribe.apply(null,ee),u}if(typeof M=="string")return p[M]}var p={};h.addEventType=k;for(var v=1,w=arguments.length;v<w;++v)k(arguments[v]);return h;function k(M,R,q){var ee,Y;if(typeof M!="object")return R=R||Lt,Y={subscribers:[],fire:q=q||we,subscribe:function(U){Y.subscribers.indexOf(U)===-1&&(Y.subscribers.push(U),Y.fire=R(Y.fire,U))},unsubscribe:function(U){Y.subscribers=Y.subscribers.filter(function(H){return H!==U}),Y.fire=Y.subscribers.reduce(R,q)}},p[M]=h[M]=Y;a(ee=M).forEach(function(U){var H=ee[U];if(i(H))k(U,ee[U][0],ee[U][1]);else{if(H!=="asap")throw new se.InvalidArgument("Invalid event config");var J=k(U,He,function(){for(var X=arguments.length,K=new Array(X);X--;)K[X]=arguments[X];J.subscribers.forEach(function(V){A(function(){V.apply(null,K)})})})}})}}function Vn(u,h){return S(h).from({prototype:u}),h}function $n(u,h){return!(u.filter||u.algorithm||u.or)&&(h?u.justLimit:!u.replayFilter)}function zs(u,h){u.filter=mr(u.filter,h)}function gc(u,h,p){var v=u.replayFilter;u.replayFilter=v?function(){return mr(v(),h())}:h,u.justLimit=p&&!v}function xi(u,h){if(u.isPrimKey)return h.primaryKey;var p=h.getIndexByKeyPath(u.index);if(p)return p;throw new se.Schema("KeyPath "+u.index+" on object store "+h.name+" is not indexed")}function Df(u,h,p){var v=xi(u,h.schema);return h.openCursor({trans:p,values:!u.keysOnly,reverse:u.dir==="prev",unique:!!u.unique,query:{index:v,range:u.range}})}function wi(u,h,p,v){var w,k,M=u.replayFilter?mr(u.filter,u.replayFilter()):u.filter;return u.or?(w={},k=function(R,q,ee){var Y,U;M&&!M(q,ee,function(H){return q.stop(H)},function(H){return q.fail(H)})||((U=""+(Y=q.primaryKey))=="[object ArrayBuffer]"&&(U=""+new Uint8Array(Y)),m(w,U))||(w[U]=!0,h(R,q,ee))},Promise.all([u.or._iterate(k,p),Ff(Df(u,v,p),u.algorithm,k,!u.keysOnly&&u.valueMapper)])):Ff(Df(u,v,p),mr(u.algorithm,M),h,!u.keysOnly&&u.valueMapper)}function Ff(u,h,p,v){var w=Oe(v?function(k,M,R){return p(v(k),M,R)}:p);return u.then(function(k){if(k)return k.start(function(){var M=function(){return k.continue()};h&&!h(k,function(R){return M=R},function(R){k.stop(R),M=we},function(R){k.fail(R),M=we})||w(k.value,k,function(R){return M=R}),M()})})}At.prototype._read=function(u,h){var p=this._ctx;return p.error?p.table._trans(null,Kt.bind(null,p.error)):p.table._trans("readonly",u).then(h)},At.prototype._write=function(u){var h=this._ctx;return h.error?h.table._trans(null,Kt.bind(null,h.error)):h.table._trans("readwrite",u,"locked")},At.prototype._addAlgorithm=function(u){var h=this._ctx;h.algorithm=mr(h.algorithm,u)},At.prototype._iterate=function(u,h){return wi(this._ctx,u,h,this._ctx.table.core)},At.prototype.clone=function(u){var h=Object.create(this.constructor.prototype),p=Object.create(this._ctx);return u&&c(p,u),h._ctx=p,h},At.prototype.raw=function(){return this._ctx.valueMapper=null,this},At.prototype.each=function(u){var h=this._ctx;return this._read(function(p){return wi(h,u,p,h.table.core)})},At.prototype.count=function(u){var h=this;return this._read(function(p){var v,w=h._ctx,k=w.table.core;return $n(w,!0)?k.count({trans:p,query:{index:xi(w,k.schema),range:w.range}}).then(function(M){return Math.min(M,w.limit)}):(v=0,wi(w,function(){return++v,!1},p,k).then(function(){return v}))}).then(u)},At.prototype.sortBy=function(u,h){var p=u.split(".").reverse(),v=p[0],w=p.length-1;function k(q,ee){return ee?k(q[p[ee]],ee-1):q[v]}var M=this._ctx.dir==="next"?1:-1;function R(q,ee){return mt(k(q,w),k(ee,w))*M}return this.toArray(function(q){return q.sort(R)}).then(h)},At.prototype.toArray=function(u){var h=this;return this._read(function(p){var v,w,k,M=h._ctx;return $n(M,!0)&&0<M.limit?(v=M.valueMapper,w=xi(M,M.table.core.schema),M.table.core.query({trans:p,limit:M.limit,values:!0,direction:M.dir==="prev"?"prev":void 0,query:{index:w,range:M.range}}).then(function(R){return R=R.result,v?R.map(v):R})):(k=[],wi(M,function(R){return k.push(R)},p,M.table.core).then(function(){return k}))},u)},At.prototype.offset=function(u){var h=this._ctx;return u<=0||(h.offset+=u,$n(h)?gc(h,function(){var p=u;return function(v,w){return p===0||(p===1?--p:w(function(){v.advance(p),p=0}),!1)}}):gc(h,function(){var p=u;return function(){return--p<0}})),this},At.prototype.limit=function(u){return this._ctx.limit=Math.min(this._ctx.limit,u),gc(this._ctx,function(){var h=u;return function(p,v,w){return--h<=0&&v(w),0<=h}},!0),this},At.prototype.until=function(u,h){return zs(this._ctx,function(p,v,w){return!u(p.value)||(v(w),h)}),this},At.prototype.first=function(u){return this.limit(1).toArray(function(h){return h[0]}).then(u)},At.prototype.last=function(u){return this.reverse().first(u)},At.prototype.filter=function(u){var h;return zs(this._ctx,function(p){return u(p.value)}),(h=this._ctx).isMatch=mr(h.isMatch,u),this},At.prototype.and=function(u){return this.filter(u)},At.prototype.or=function(u){return new this.db.WhereClause(this._ctx.table,u,this)},At.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},At.prototype.desc=function(){return this.reverse()},At.prototype.eachKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(p,v){u(v.key,v)})},At.prototype.eachUniqueKey=function(u){return this._ctx.unique="unique",this.eachKey(u)},At.prototype.eachPrimaryKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(p,v){u(v.primaryKey,v)})},At.prototype.keys=function(u){var h=this._ctx,p=(h.keysOnly=!h.isMatch,[]);return this.each(function(v,w){p.push(w.key)}).then(function(){return p}).then(u)},At.prototype.primaryKeys=function(u){var h=this._ctx;if($n(h,!0)&&0<h.limit)return this._read(function(v){var w=xi(h,h.table.core.schema);return h.table.core.query({trans:v,values:!1,limit:h.limit,direction:h.dir==="prev"?"prev":void 0,query:{index:w,range:h.range}})}).then(function(v){return v.result}).then(u);h.keysOnly=!h.isMatch;var p=[];return this.each(function(v,w){p.push(w.primaryKey)}).then(function(){return p}).then(u)},At.prototype.uniqueKeys=function(u){return this._ctx.unique="unique",this.keys(u)},At.prototype.firstKey=function(u){return this.limit(1).keys(function(h){return h[0]}).then(u)},At.prototype.lastKey=function(u){return this.reverse().firstKey(u)},At.prototype.distinct=function(){var u,h=this._ctx,h=h.index&&h.table.schema.idxByName[h.index];return h&&h.multi&&(u={},zs(this._ctx,function(v){var v=v.primaryKey.toString(),w=m(u,v);return u[v]=!0,!w})),this},At.prototype.modify=function(u){var h=this,p=this._ctx;return this._write(function(v){function w(K,V){var le=V.failures;H+=K-V.numFailures;for(var re=0,fe=a(le);re<fe.length;re++){var be=fe[re];U.push(le[be])}}var k=typeof u=="function"?u:function(K){return Dt(K,u)},M=p.table.core,Y=M.schema.primaryKey,R=Y.outbound,q=Y.extractKey,ee=200,Y=h.db._options.modifyChunkSize,U=(Y&&(ee=typeof Y=="object"?Y[M.name]||Y["*"]||200:Y),[]),H=0,J=[],X=u===Nf;return h.clone().primaryKeys().then(function(K){function V(re){var fe=Math.min(ee,K.length-re),be=K.slice(re,re+fe);return(X?Promise.resolve([]):M.getMany({trans:v,keys:be,cache:"immutable"})).then(function(xe){var Me=[],Ce=[],ze=R?[]:null,Ee=X?be:[];if(!X)for(var Be=0;Be<fe;++Be){var Se=xe[Be],tt={value:Q(Se),primKey:K[re+Be]};k.call(tt,tt.value,tt)!==!1&&(tt.value==null?Ee.push(K[re+Be]):R||mt(q(Se),q(tt.value))===0?(Ce.push(tt.value),R&&ze.push(K[re+Be])):(Ee.push(K[re+Be]),Me.push(tt.value)))}return Promise.resolve(0<Me.length&&M.mutate({trans:v,type:"add",values:Me}).then(function(nt){for(var ut in nt.failures)Ee.splice(parseInt(ut),1);w(Me.length,nt)})).then(function(){return(0<Ce.length||le&&typeof u=="object")&&M.mutate({trans:v,type:"put",keys:ze,values:Ce,criteria:le,changeSpec:typeof u!="function"&&u,isAdditionalChunk:0<re}).then(function(nt){return w(Ce.length,nt)})}).then(function(){return(0<Ee.length||le&&X)&&M.mutate({trans:v,type:"delete",keys:Ee,criteria:le,isAdditionalChunk:0<re}).then(function(nt){return Ct(p.table,Ee,nt)}).then(function(nt){return w(Ee.length,nt)})}).then(function(){return K.length>re+fe&&V(re+ee)})})}var le=$n(p)&&p.limit===1/0&&(typeof u!="function"||X)&&{index:p.index,range:p.range};return V(0).then(function(){if(0<U.length)throw new ke("Error modifying one or more objects",U,H,J);return K.length})})})},At.prototype.delete=function(){var u=this._ctx,h=u.range;return!$n(u)||u.table.schema.yProps||!u.isPrimKey&&h.type!==3?this.modify(Nf):this._write(function(p){var v=u.table.core.schema.primaryKey,w=h;return u.table.core.count({trans:p,query:{index:v,range:w}}).then(function(k){return u.table.core.mutate({trans:p,type:"deleteRange",range:w}).then(function(q){var R=q.failures,q=q.numFailures;if(q)throw new ke("Could not delete some values",Object.keys(R).map(function(ee){return R[ee]}),k-q);return k-q})})})};var HS=At;function At(){}var Nf=function(u,h){return h.value=null};function YS(u,h){return u<h?-1:u===h?0:1}function XS(u,h){return h<u?-1:u===h?0:1}function Nn(u,h,p){return u=u instanceof Bf?new u.Collection(u):u,u._ctx.error=new(p||TypeError)(h),u}function Bs(u){return new u.Collection(u,function(){return zf("")}).limit(0)}function _i(J,h,p,v){var w,k,M,R,q,ee,Y,U=p.length;if(!p.every(function(K){return typeof K=="string"}))return Nn(J,Si);function H(K){w=K==="next"?function(le){return le.toUpperCase()}:function(le){return le.toLowerCase()},k=K==="next"?function(le){return le.toLowerCase()}:function(le){return le.toUpperCase()},M=K==="next"?YS:XS;var V=p.map(function(le){return{lower:k(le),upper:w(le)}}).sort(function(le,re){return M(le.lower,re.lower)});R=V.map(function(le){return le.upper}),q=V.map(function(le){return le.lower}),Y=(ee=K)==="next"?"":v}H("next");var J=new J.Collection(J,function(){return Dr(R[0],q[U-1]+v)}),X=(J._ondirectionchange=function(K){H(K)},0);return J._addAlgorithm(function(K,V,le){var re=K.key;if(typeof re=="string"){var fe=k(re);if(h(fe,q,X))return!0;for(var be=null,xe=X;xe<U;++xe){var Me=((Ce,ze,Ee,Be,Se,tt)=>{for(var nt=Math.min(Ce.length,Be.length),ut=-1,St=0;St<nt;++St){var zn=ze[St];if(zn!==Be[St])return Se(Ce[St],Ee[St])<0?Ce.substr(0,St)+Ee[St]+Ee.substr(St+1):Se(Ce[St],Be[St])<0?Ce.substr(0,St)+Be[St]+Ee.substr(St+1):0<=ut?Ce.substr(0,ut)+ze[ut]+Ee.substr(ut+1):null;Se(Ce[St],zn)<0&&(ut=St)}return nt<Be.length&&tt==="next"?Ce+Ee.substr(Ce.length):nt<Ce.length&&tt==="prev"?Ce.substr(0,Ee.length):ut<0?null:Ce.substr(0,ut)+Be[ut]+Ee.substr(ut+1)})(re,fe,R[xe],q[xe],M,ee);Me===null&&be===null?X=xe+1:(be===null||0<M(be,Me))&&(be=Me)}V(be!==null?function(){K.continue(be+Y)}:le)}return!1}),J}function Dr(u,h,p,v){return{type:2,lower:u,upper:h,lowerOpen:p,upperOpen:v}}function zf(u){return{type:1,lower:u,upper:u}}Object.defineProperty(pn.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),pn.prototype.between=function(u,h,p,v){p=p!==!1,v=v===!0;try{return 0<this._cmp(u,h)||this._cmp(u,h)===0&&(p||v)&&(!p||!v)?Bs(this):new this.Collection(this,function(){return Dr(u,h,!p,!v)})}catch{return Nn(this,Xn)}},pn.prototype.equals=function(u){return u==null?Nn(this,Xn):new this.Collection(this,function(){return zf(u)})},pn.prototype.above=function(u){return u==null?Nn(this,Xn):new this.Collection(this,function(){return Dr(u,void 0,!0)})},pn.prototype.aboveOrEqual=function(u){return u==null?Nn(this,Xn):new this.Collection(this,function(){return Dr(u,void 0,!1)})},pn.prototype.below=function(u){return u==null?Nn(this,Xn):new this.Collection(this,function(){return Dr(void 0,u,!1,!0)})},pn.prototype.belowOrEqual=function(u){return u==null?Nn(this,Xn):new this.Collection(this,function(){return Dr(void 0,u)})},pn.prototype.startsWith=function(u){return typeof u!="string"?Nn(this,Si):this.between(u,u+ar,!0,!0)},pn.prototype.startsWithIgnoreCase=function(u){return u===""?this.startsWith(u):_i(this,function(h,p){return h.indexOf(p[0])===0},[u],ar)},pn.prototype.equalsIgnoreCase=function(u){return _i(this,function(h,p){return h===p[0]},[u],"")},pn.prototype.anyOfIgnoreCase=function(){var u=G.apply(ve,arguments);return u.length===0?Bs(this):_i(this,function(h,p){return p.indexOf(h)!==-1},u,"")},pn.prototype.startsWithAnyOfIgnoreCase=function(){var u=G.apply(ve,arguments);return u.length===0?Bs(this):_i(this,function(h,p){return p.some(function(v){return h.indexOf(v)===0})},u,ar)},pn.prototype.anyOf=function(){var u,h,p=this,v=G.apply(ve,arguments),w=this._cmp;try{v.sort(w)}catch{return Nn(this,Xn)}return v.length===0?Bs(this):((u=new this.Collection(this,function(){return Dr(v[0],v[v.length-1])}))._ondirectionchange=function(k){w=k==="next"?p._ascending:p._descending,v.sort(w)},h=0,u._addAlgorithm(function(k,M,R){for(var q=k.key;0<w(q,v[h]);)if(++h===v.length)return M(R),!1;return w(q,v[h])===0||(M(function(){k.continue(v[h])}),!1)}),u)},pn.prototype.notEqual=function(u){return this.inAnyRange([[-1/0,u],[u,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},pn.prototype.noneOf=function(){var u=G.apply(ve,arguments);if(u.length===0)return new this.Collection(this);try{u.sort(this._ascending)}catch{return Nn(this,Xn)}var h=u.reduce(function(p,v){return p?p.concat([[p[p.length-1][1],v]]):[[-1/0,v]]},null);return h.push([u[u.length-1],this.db._maxKey]),this.inAnyRange(h,{includeLowers:!1,includeUppers:!1})},pn.prototype.inAnyRange=function(u,le){var p=this,v=this._cmp,w=this._ascending,k=this._descending,M=this._min,R=this._max;if(u.length===0)return Bs(this);if(!u.every(function(re){return re[0]!==void 0&&re[1]!==void 0&&w(re[0],re[1])<=0}))return Nn(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",se.InvalidArgument);var q=!le||le.includeLowers!==!1,ee=le&&le.includeUppers===!0,Y,U=w;function H(re,fe){return U(re[0],fe[0])}try{(Y=u.reduce(function(re,fe){for(var be=0,xe=re.length;be<xe;++be){var Me=re[be];if(v(fe[0],Me[1])<0&&0<v(fe[1],Me[0])){Me[0]=M(Me[0],fe[0]),Me[1]=R(Me[1],fe[1]);break}}return be===xe&&re.push(fe),re},[])).sort(H)}catch{return Nn(this,Xn)}var J=0,X=ee?function(re){return 0<w(re,Y[J][1])}:function(re){return 0<=w(re,Y[J][1])},K=q?function(re){return 0<k(re,Y[J][0])}:function(re){return 0<=k(re,Y[J][0])},V=X,le=new this.Collection(this,function(){return Dr(Y[0][0],Y[Y.length-1][1],!q,!ee)});return le._ondirectionchange=function(re){U=re==="next"?(V=X,w):(V=K,k),Y.sort(H)},le._addAlgorithm(function(re,fe,be){for(var xe,Me=re.key;V(Me);)if(++J===Y.length)return fe(be),!1;return!X(xe=Me)&&!K(xe)||(p._cmp(Me,Y[J][1])===0||p._cmp(Me,Y[J][0])===0||fe(function(){U===w?re.continue(Y[J][0]):re.continue(Y[J][1])}),!1)}),le},pn.prototype.startsWithAnyOf=function(){var u=G.apply(ve,arguments);return u.every(function(h){return typeof h=="string"})?u.length===0?Bs(this):this.inAnyRange(u.map(function(h){return[h,h+ar]})):Nn(this,"startsWithAnyOf() only works with strings")};var Bf=pn;function pn(){}function ir(u){return Oe(function(h){return Mo(h),u(h.target.error),!1})}function Mo(u){u.stopPropagation&&u.stopPropagation(),u.preventDefault&&u.preventDefault()}var Ao="storagemutated",yc="x-storagemutated-1",Fr=Kn(null,Ao),KS=(gr.prototype._lock=function(){return C(!Ie.global),++this._reculock,this._reculock!==1||Ie.global||(Ie.lockOwnerFor=this),this},gr.prototype._unlock=function(){if(C(!Ie.global),--this._reculock==0)for(Ie.global||(Ie.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var u=this._blockedFuncs.shift();try{or(u[1],u[0])}catch{}}return this},gr.prototype._locked=function(){return this._reculock&&Ie.lockOwnerFor!==this},gr.prototype.create=function(u){var h=this;if(this.mode){var p=this.db.idbdb,v=this.db._state.dbOpenError;if(C(!this.idbtrans),!u&&!p)switch(v&&v.name){case"DatabaseClosedError":throw new se.DatabaseClosed(v);case"MissingAPIError":throw new se.MissingAPI(v.message,v);default:throw new se.OpenFailed(v)}if(!this.active)throw new se.TransactionInactive;C(this._completion._state===null),(u=this.idbtrans=u||(this.db.core||p).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=Oe(function(w){Mo(w),h._reject(u.error)}),u.onabort=Oe(function(w){Mo(w),h.active&&h._reject(new se.Abort(u.error)),h.active=!1,h.on("abort").fire(w)}),u.oncomplete=Oe(function(){h.active=!1,h._resolve(),"mutatedParts"in u&&Fr.storagemutated.fire(u.mutatedParts)})}return this},gr.prototype._promise=function(u,h,p){var v,w=this;return u==="readwrite"&&this.mode!=="readwrite"?Kt(new se.ReadOnly("Transaction is readonly")):this.active?this._locked()?new D(function(k,M){w._blockedFuncs.push([function(){w._promise(u,h,p).then(k,M)},Ie])}):p?rr(function(){var k=new D(function(M,R){w._lock();var q=h(M,R,w);q&&q.then&&q.then(M,R)});return k.finally(function(){return w._unlock()}),k._lib=!0,k}):((v=new D(function(k,M){var R=h(k,M,w);R&&R.then&&R.then(k,M)}))._lib=!0,v):Kt(new se.TransactionInactive)},gr.prototype._root=function(){return this.parent?this.parent._root():this},gr.prototype.waitFor=function(u){var h,p=this._root(),v=D.resolve(u),w=(p._waitingFor?p._waitingFor=p._waitingFor.then(function(){return v}):(p._waitingFor=v,p._waitingQueue=[],h=p.idbtrans.objectStore(p.storeNames[0]),function k(){for(++p._spinCount;p._waitingQueue.length;)p._waitingQueue.shift()();p._waitingFor&&(h.get(-1/0).onsuccess=k)}()),p._waitingFor);return new D(function(k,M){v.then(function(R){return p._waitingQueue.push(Oe(k.bind(null,R)))},function(R){return p._waitingQueue.push(Oe(M.bind(null,R)))}).finally(function(){p._waitingFor===w&&(p._waitingFor=null)})})},gr.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new se.Abort))},gr.prototype.table=function(u){var h=this._memoizedTables||(this._memoizedTables={});if(m(h,u))return h[u];var p=this.schema[u];if(p)return(p=new this.db.Table(u,p,this)).core=this.db.core.table(u),h[u]=p;throw new se.NotFound("Table "+u+" not part of transaction")},gr);function gr(){}function vc(u,h,p,v,w,k,M,R){return{name:u,keyPath:h,unique:p,multi:v,auto:w,compound:k,src:(p&&!M?"&":"")+(v?"*":"")+(w?"++":"")+Wf(h),type:R}}function Wf(u){return typeof u=="string"?u:u?"["+[].join.call(u,"+")+"]":""}function bc(u,h,p){return{name:u,primKey:h,indexes:p,mappedClass:null,idxByName:(v=function(w){return[w.name,w]},p.reduce(function(w,k,M){return k=v(k,M),k&&(w[k[0]]=k[1]),w},{}))};var v}var Ro=function(u){try{return u.only([[]]),Ro=function(){return[[]]},[[]]}catch{return Ro=function(){return ar},ar}};function Sc(u){return u==null?function(){}:typeof u=="string"?(h=u).split(".").length===1?function(p){return p[h]}:function(p){return I(p,h)}:function(p){return I(p,u)};var h}function Uf(u){return[].slice.call(u)}var VS=0;function jo(u){return u==null?":id":typeof u=="string"?u:"[".concat(u.join("+"),"]")}function GS(u,h,M){function v(V){if(V.type===3)return null;if(V.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var J=V.lower,X=V.upper,K=V.lowerOpen,V=V.upperOpen;return J===void 0?X===void 0?null:h.upperBound(X,!!V):X===void 0?h.lowerBound(J,!!K):h.bound(J,X,!!K,!!V)}function w(H){var J,X,K=H.name;return{name:K,schema:H,mutate:function(V){var le=V.trans,re=V.type,fe=V.keys,be=V.values,xe=V.range;return new Promise(function(Me,Ce){Me=Oe(Me);var ze=le.objectStore(K),Ee=ze.keyPath==null,Be=re==="put"||re==="add";if(!Be&&re!=="delete"&&re!=="deleteRange")throw new Error("Invalid operation type: "+re);var Se,tt=(fe||be||{length:1}).length;if(fe&&be&&fe.length!==be.length)throw new Error("Given keys array must have same length as given values array.");if(tt===0)return Me({numFailures:0,failures:{},results:[],lastResult:void 0});function nt(An){++zn,Mo(An)}var ut=[],St=[],zn=0;if(re==="deleteRange"){if(xe.type===4)return Me({numFailures:zn,failures:St,results:[],lastResult:void 0});xe.type===3?ut.push(Se=ze.clear()):ut.push(Se=ze.delete(v(xe)))}else{var Ee=Be?Ee?[be,fe]:[be,null]:[fe,null],ct=Ee[0],Tn=Ee[1];if(Be)for(var Pn=0;Pn<tt;++Pn)ut.push(Se=Tn&&Tn[Pn]!==void 0?ze[re](ct[Pn],Tn[Pn]):ze[re](ct[Pn])),Se.onerror=nt;else for(Pn=0;Pn<tt;++Pn)ut.push(Se=ze[re](ct[Pn])),Se.onerror=nt}function $i(An){An=An.target.result,ut.forEach(function(cs,Fc){return cs.error!=null&&(St[Fc]=cs.error)}),Me({numFailures:zn,failures:St,results:re==="delete"?fe:ut.map(function(cs){return cs.result}),lastResult:An})}Se.onerror=function(An){nt(An),$i(An)},Se.onsuccess=$i})},getMany:function(V){var le=V.trans,re=V.keys;return new Promise(function(fe,be){fe=Oe(fe);for(var xe,Me=le.objectStore(K),Ce=re.length,ze=new Array(Ce),Ee=0,Be=0,Se=function(ut){ut=ut.target,ze[ut._pos]=ut.result,++Be===Ee&&fe(ze)},tt=ir(be),nt=0;nt<Ce;++nt)re[nt]!=null&&((xe=Me.get(re[nt]))._pos=nt,xe.onsuccess=Se,xe.onerror=tt,++Ee);Ee===0&&fe(ze)})},get:function(V){var le=V.trans,re=V.key;return new Promise(function(fe,be){fe=Oe(fe);var xe=le.objectStore(K).get(re);xe.onsuccess=function(Me){return fe(Me.target.result)},xe.onerror=ir(be)})},query:(J=q,X=ee,function(V){return new Promise(function(le,re){le=Oe(le);var fe,be,xe,Me,tt=V.trans,Ce=V.values,ze=V.limit,Se=V.query,Ee=(Ee=V.direction)!=null?Ee:"next",Be=ze===1/0?void 0:ze,nt=Se.index,Se=Se.range,tt=tt.objectStore(K),tt=nt.isPrimaryKey?tt:tt.index(nt.name),nt=v(Se);if(ze===0)return le({result:[]});X?(Se={query:nt,count:Be,direction:Ee},(fe=Ce?tt.getAll(Se):tt.getAllKeys(Se)).onsuccess=function(ut){return le({result:ut.target.result})},fe.onerror=ir(re)):J&&Ee==="next"?((fe=Ce?tt.getAll(nt,Be):tt.getAllKeys(nt,Be)).onsuccess=function(ut){return le({result:ut.target.result})},fe.onerror=ir(re)):(be=0,xe=!Ce&&"openKeyCursor"in tt?tt.openKeyCursor(nt,Ee):tt.openCursor(nt,Ee),Me=[],xe.onsuccess=function(){var ut=xe.result;return!ut||(Me.push(Ce?ut.value:ut.primaryKey),++be===ze)?le({result:Me}):void ut.continue()},xe.onerror=ir(re))})}),openCursor:function(V){var le=V.trans,re=V.values,fe=V.query,be=V.reverse,xe=V.unique;return new Promise(function(Me,Ce){Me=Oe(Me);var Be=fe.index,ze=fe.range,Ee=le.objectStore(K),Ee=Be.isPrimaryKey?Ee:Ee.index(Be.name),Be=be?xe?"prevunique":"prev":xe?"nextunique":"next",Se=!re&&"openKeyCursor"in Ee?Ee.openKeyCursor(v(ze),Be):Ee.openCursor(v(ze),Be);Se.onerror=ir(Ce),Se.onsuccess=Oe(function(tt){var nt,ut,St,zn,ct=Se.result;ct?(ct.___id=++VS,ct.done=!1,nt=ct.continue.bind(ct),ut=(ut=ct.continuePrimaryKey)&&ut.bind(ct),St=ct.advance.bind(ct),zn=function(){throw new Error("Cursor not stopped")},ct.trans=le,ct.stop=ct.continue=ct.continuePrimaryKey=ct.advance=function(){throw new Error("Cursor not started")},ct.fail=Oe(Ce),ct.next=function(){var Tn=this,Pn=1;return this.start(function(){return Pn--?Tn.continue():Tn.stop()}).then(function(){return Tn})},ct.start=function(Tn){function Pn(){if(Se.result)try{Tn()}catch(An){ct.fail(An)}else ct.done=!0,ct.start=function(){throw new Error("Cursor behind last entry")},ct.stop()}var $i=new Promise(function(An,cs){An=Oe(An),Se.onerror=ir(cs),ct.fail=cs,ct.stop=function(Fc){ct.stop=ct.continue=ct.continuePrimaryKey=ct.advance=zn,An(Fc)}});return Se.onsuccess=Oe(function(An){Se.onsuccess=Pn,Pn()}),ct.continue=nt,ct.continuePrimaryKey=ut,ct.advance=St,Pn(),$i},Me(ct)):Me(null)},Ce)})},count:function(V){var le=V.query,re=V.trans,fe=le.index,be=le.range;return new Promise(function(xe,Me){var Ce=re.objectStore(K),Ce=fe.isPrimaryKey?Ce:Ce.index(fe.name),ze=v(be),ze=ze?Ce.count(ze):Ce.count();ze.onsuccess=Oe(function(Ee){return xe(Ee.target.result)}),ze.onerror=ir(Me)})}}}k=M,R=Uf((M=u).objectStoreNames),Y=0<R.length?k.objectStore(R[0]):{};var k,M={schema:{name:M.name,tables:R.map(function(H){return k.objectStore(H)}).map(function(H){var J=H.keyPath,X=H.autoIncrement,V=i(J),K={},V={name:H.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:J==null,compound:V,keyPath:J,autoIncrement:X,unique:!0,extractKey:Sc(J)},indexes:Uf(H.indexNames).map(function(le){return H.index(le)}).map(function(be){var xe=be.name,re=be.unique,fe=be.multiEntry,be=be.keyPath,xe={name:xe,compound:i(be),keyPath:be,unique:re,multiEntry:fe,extractKey:Sc(be)};return K[jo(be)]=xe}),getIndexByKeyPath:function(le){return K[jo(le)]}};return K[":id"]=V.primaryKey,J!=null&&(K[jo(J)]=V.primaryKey),V})},hasGetAll:0<R.length&&"getAll"in Y&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in Y},R=M.schema,q=M.hasGetAll,ee=M.hasIdb3Features,Y=R.tables.map(w),U={};return Y.forEach(function(H){return U[H.name]=H}),{stack:"dbcore",transaction:u.transaction.bind(u),table:function(H){if(U[H])return U[H];throw new Error("Table '".concat(H,"' not found"))},MIN_KEY:-1/0,MAX_KEY:Ro(h),schema:R}}function JS(u,h,p,v){return p=p.IDBKeyRange,h=GS(h,p,v),{dbcore:u.dbcore.reduce(function(w,k){return k=k.create,r(r({},w),k(w))},h)}}function Ci(u,h){var p=h.db,p=JS(u._middlewares,p,u._deps,h);u.core=p.dbcore,u.tables.forEach(function(v){var w=v.name;u.core.schema.tables.some(function(k){return k.name===w})&&(v.core=u.core.table(w),u[w]instanceof u.Table)&&(u[w].core=v.core)})}function ki(u,h,p,v){p.forEach(function(w){var k=v[w];h.forEach(function(M){var R=function q(ee,Y){return _(ee,Y)||(ee=d(ee))&&q(ee,Y)}(M,w);(!R||"value"in R&&R.value===void 0)&&(M===u.Transaction.prototype||M instanceof u.Transaction?x(M,w,{get:function(){return this.table(w)},set:function(q){y(this,w,{value:q,writable:!0,configurable:!0,enumerable:!0})}}):M[w]=new u.Table(w,k))})})}function xc(u,h){h.forEach(function(p){for(var v in p)p[v]instanceof u.Table&&delete p[v]})}function QS(u,h){return u._cfg.version-h._cfg.version}function ZS(u,h,p,v){var w=u._dbSchema,k=(p.objectStoreNames.contains("$meta")&&!w.$meta&&(w.$meta=bc("$meta",Hf("")[0],[]),u._storeNames.push("$meta")),u._createTransaction("readwrite",u._storeNames,w)),M=(k.create(p),k._completion.catch(v),k._reject.bind(k)),R=Ie.transless||Ie;rr(function(){if(Ie.trans=k,Ie.transless=R,h!==0)return Ci(u,p),ee=h,((q=k).storeNames.includes("$meta")?q.table("$meta").get("version").then(function(Y){return Y??ee}):D.resolve(ee)).then(function(V){var U=u,H=V,J=k,X=p,K=[],V=U._versions,le=U._dbSchema=Pi(0,U.idbdb,X);return(V=V.filter(function(re){return re._cfg.version>=H})).length===0?D.resolve():(V.forEach(function(re){K.push(function(){var fe,be,xe,Me=le,Ce=re._cfg.dbschema,ze=(Ei(U,Me,X),Ei(U,Ce,X),le=U._dbSchema=Ce,wc(Me,Ce)),Ee=(ze.add.forEach(function(Be){_c(X,Be[0],Be[1].primKey,Be[1].indexes)}),ze.change.forEach(function(Be){if(Be.recreate)throw new se.Upgrade("Not yet support for changing primary key");var Se=X.objectStore(Be.name);Be.add.forEach(function(tt){return Ti(Se,tt)}),Be.change.forEach(function(tt){Se.deleteIndex(tt.name),Ti(Se,tt)}),Be.del.forEach(function(tt){return Se.deleteIndex(tt)})}),re._cfg.contentUpgrade);if(Ee&&re._cfg.version>H)return Ci(U,X),J._memoizedTables={},fe=$(Ce),ze.del.forEach(function(Be){fe[Be]=Me[Be]}),xc(U,[U.Transaction.prototype]),ki(U,[U.Transaction.prototype],a(fe),fe),J.schema=fe,(be=he(Ee))&&Pr(),Ce=D.follow(function(){var Be;(xe=Ee(J))&&be&&(Be=sr.bind(null,null),xe.then(Be,Be))}),xe&&typeof xe.then=="function"?D.resolve(xe):Ce.then(function(){return xe})}),K.push(function(fe){var be,xe,Me=re._cfg.dbschema;be=Me,xe=fe,[].slice.call(xe.db.objectStoreNames).forEach(function(Ce){return be[Ce]==null&&xe.db.deleteObjectStore(Ce)}),xc(U,[U.Transaction.prototype]),ki(U,[U.Transaction.prototype],U._storeNames,U._dbSchema),J.schema=U._dbSchema}),K.push(function(fe){U.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(U.idbdb.version/10)===re._cfg.version?(U.idbdb.deleteObjectStore("$meta"),delete U._dbSchema.$meta,U._storeNames=U._storeNames.filter(function(be){return be!=="$meta"})):fe.objectStore("$meta").put(re._cfg.version,"version"))})}),function re(){return K.length?D.resolve(K.shift()(J.idbtrans)).then(re):D.resolve()}().then(function(){qf(le,X)}))}).catch(M);var q,ee;a(w).forEach(function(Y){_c(p,Y,w[Y].primKey,w[Y].indexes)}),Ci(u,p),D.follow(function(){return u.on.populate.fire(k)}).catch(M)})}function ex(u,h){qf(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 p=Pi(0,u.idbdb,h);Ei(u,u._dbSchema,h);for(var v=0,w=wc(p,u._dbSchema).change;v<w.length;v++){var k=(M=>{if(M.change.length||M.recreate)return console.warn("Unable to patch indexes of table ".concat(M.name," because it has changes on the type of index or primary key.")),{value:void 0};var R=h.objectStore(M.name);M.add.forEach(function(q){jt&&console.debug("Dexie upgrade patch: Creating missing index ".concat(M.name,".").concat(q.src)),Ti(R,q)})})(w[v]);if(typeof k=="object")return k.value}}function wc(u,h){var p,v={del:[],add:[],change:[]};for(p in u)h[p]||v.del.push(p);for(p in h){var w=u[p],k=h[p];if(w){var M={name:p,def:k,recreate:!1,del:[],add:[],change:[]};if(""+(w.primKey.keyPath||"")!=""+(k.primKey.keyPath||"")||w.primKey.auto!==k.primKey.auto)M.recreate=!0,v.change.push(M);else{var R=w.idxByName,q=k.idxByName,ee=void 0;for(ee in R)q[ee]||M.del.push(ee);for(ee in q){var Y=R[ee],U=q[ee];Y?Y.src!==U.src&&M.change.push(U):M.add.push(U)}(0<M.del.length||0<M.add.length||0<M.change.length)&&v.change.push(M)}}else v.add.push([p,k])}return v}function _c(u,h,p,v){var w=u.db.createObjectStore(h,p.keyPath?{keyPath:p.keyPath,autoIncrement:p.auto}:{autoIncrement:p.auto});v.forEach(function(k){return Ti(w,k)})}function qf(u,h){a(u).forEach(function(p){h.db.objectStoreNames.contains(p)||(jt&&console.debug("Dexie: Creating missing table",p),_c(h,p,u[p].primKey,u[p].indexes))})}function Ti(u,h){u.createIndex(h.name,h.keyPath,{unique:h.unique,multiEntry:h.multi})}function Pi(u,h,p){var v={};return T(h.objectStoreNames,0).forEach(function(w){for(var k=p.objectStore(w),M=vc(Wf(ee=k.keyPath),ee||"",!0,!1,!!k.autoIncrement,ee&&typeof ee!="string",!0),R=[],q=0;q<k.indexNames.length;++q){var Y=k.index(k.indexNames[q]),ee=Y.keyPath,Y=vc(Y.name,ee,!!Y.unique,!!Y.multiEntry,!1,ee&&typeof ee!="string",!1);R.push(Y)}v[w]=bc(w,M,R)}),v}function Ei(u,h,p){for(var v=p.db.objectStoreNames,w=0;w<v.length;++w){var k=v[w],M=p.objectStore(k);u._hasGetAll="getAll"in M;for(var R=0;R<M.indexNames.length;++R){var q,ee=M.indexNames[R],Y=M.index(ee).keyPath,Y=typeof Y=="string"?Y:"["+T(Y).join("+")+"]";h[k]&&(q=h[k].idxByName[Y])&&(q.name=ee,delete h[k].idxByName[Y],h[k].idxByName[ee]=q)}}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 Hf(u){return u.split(",").map(function(h,p){var w=h.split(":"),v=(v=w[1])==null?void 0:v.trim(),w=(h=w[0].trim()).replace(/([&*]|\+\+)/g,""),k=/^\[/.test(w)?w.match(/^\[(.*)\]$/)[1].split("+"):w;return vc(w,k||null,/\&/.test(h),/\*/.test(h),/\+\+/.test(h),i(k),p===0,v)})}Ws.prototype._createTableSchema=bc,Ws.prototype._parseIndexSyntax=Hf,Ws.prototype._parseStoresSpec=function(u,h){var p=this;a(u).forEach(function(v){if(u[v]!==null){var w=p._parseIndexSyntax(u[v]),k=w.shift();if(!k)throw new se.Schema("Invalid schema for table "+v+": "+u[v]);if(k.unique=!0,k.multi)throw new se.Schema("Primary key cannot be multiEntry*");w.forEach(function(M){if(M.auto)throw new se.Schema("Only primary key can be marked as autoIncrement (++)");if(!M.keyPath)throw new se.Schema("Index must have a name and cannot be an empty string")}),k=p._createTableSchema(v,k,w),h[v]=k}})},Ws.prototype.stores=function(p){var h=this.db,p=(this._cfg.storesSource=this._cfg.storesSource?c(this._cfg.storesSource,p):p,h._versions),v={},w={};return p.forEach(function(k){c(v,k._cfg.storesSource),w=k._cfg.dbschema={},k._parseStoresSpec(v,w)}),h._dbSchema=w,xc(h,[h._allTables,h,h.Transaction.prototype]),ki(h,[h._allTables,h,h.Transaction.prototype,this._cfg.tables],a(w),w),h._storeNames=a(w),this},Ws.prototype.upgrade=function(u){return this._cfg.contentUpgrade=On(this._cfg.contentUpgrade||we,u),this};var tx=Ws;function Ws(){}var Io=(()=>{var u,h,p;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(u=new Set,h=new FinalizationRegistry(function(v){u.delete(v)}),{toArray:function(){return Array.from(u).map(function(v){return v.deref()}).filter(function(v){return v!==void 0})},add:function(v){var w=new WeakRef(v._novip);u.add(w),h.register(v._novip,w,w),u.size>v._options.maxConnections&&(w=u.values().next().value,u.delete(w),h.unregister(w))},remove:function(v){if(v)for(var w=u.values(),k=w.next();!k.done;){var M=k.value;if(M.deref()===v._novip)return u.delete(M),void h.unregister(M);k=w.next()}}}):(p=[],{toArray:function(){return p},add:function(v){p.push(v._novip)},remove:function(v){v&&(v=p.indexOf(v._novip))!==-1&&p.splice(v,1)}})})();function Cc(u,h){var p=u._dbNamesDB;return p||(p=u._dbNamesDB=new Er(Fs,{addons:[],indexedDB:u,IDBKeyRange:h})).version(1).stores({dbnames:"name"}),p.table("dbnames")}function kc(u){return u&&typeof u.databases=="function"}function Tc(u){return rr(function(){return Ie.letThrough=!0,u()})}function Pc(u){return!("from"in u)}var kn=function(u,h){var p;if(!this)return p=new kn,u&&"d"in u&&c(p,u),p;c(this,arguments.length?{d:1,from:u,to:1<arguments.length?h:u}:{d:0})};function Oo(u,h,p){var v=mt(h,p);if(!isNaN(v)){if(0<v)throw RangeError();if(Pc(u))return c(u,{from:h,to:p,d:1});var v=u.l,w=u.r;if(mt(p,u.from)<0)return v?Oo(v,h,p):u.l={from:h,to:p,d:1,l:null,r:null},Xf(u);if(0<mt(h,u.to))return w?Oo(w,h,p):u.r={from:h,to:p,d:1,l:null,r:null},Xf(u);mt(h,u.from)<0&&(u.from=h,u.l=null,u.d=w?w.d+1:1),0<mt(p,u.to)&&(u.to=p,u.r=null,u.d=u.l?u.l.d+1:1),h=!u.r,v&&!u.l&&$o(u,v),w&&h&&$o(u,w)}}function $o(u,h){Pc(h)||function p(v,w){var k=w.from,M=w.l,R=w.r;Oo(v,k,w.to),M&&p(v,M),R&&p(v,R)}(u,h)}function Yf(u,h){var p=Mi(h),v=p.next();if(!v.done)for(var w=v.value,k=Mi(u),M=k.next(w.from),R=M.value;!v.done&&!M.done;){if(mt(R.from,w.to)<=0&&0<=mt(R.to,w.from))return!0;mt(w.from,R.from)<0?w=(v=p.next(R.from)).value:R=(M=k.next(w.from)).value}return!1}function Mi(u){var h=Pc(u)?null:{s:0,n:u};return{next:function(p){for(var v=0<arguments.length;h;)switch(h.s){case 0:if(h.s=1,v)for(;h.n.l&&mt(p,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,!v||mt(p,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 Xf(u){var h,p,v,w=(((w=u.r)==null?void 0:w.d)||0)-(((w=u.l)==null?void 0:w.d)||0),w=1<w?"r":w<-1?"l":"";w&&(h=w=="r"?"l":"r",p=r({},u),v=u[w],u.from=v.from,u.to=v.to,u[w]=v[w],p[w]=v[h],(u[h]=p).d=Kf(p)),u.d=Kf(u)}function Kf(p){var h=p.r,p=p.l;return(h?p?Math.max(h.d,p.d):h.d:p?p.d:0)+1}function Ai(u,h){return a(h).forEach(function(p){u[p]?$o(u[p],h[p]):u[p]=function v(w){var k,M,R={};for(k in w)m(w,k)&&(M=w[k],R[k]=!M||typeof M!="object"||N.has(M.constructor)?M:v(M));return R}(h[p])}),u}function Ec(u,h){return u.all||h.all||Object.keys(u).some(function(p){return h[p]&&Yf(h[p],u[p])})}g(kn.prototype,((Bt={add:function(u){return $o(this,u),this},addKey:function(u){return Oo(this,u,u),this},addKeys:function(u){var h=this;return u.forEach(function(p){return Oo(h,p,p)}),this},hasKey:function(u){var h=Mi(this).next(u).value;return h&&mt(h.from,u)<=0&&0<=mt(h.to,u)}})[pe]=function(){return Mi(this)},Bt));var is={},Mc={},Ac=!1;function Ri(u){Ai(Mc,u),Ac||(Ac=!0,setTimeout(function(){Ac=!1,Rc(Mc,!(Mc={}))},0))}function Rc(u,h){h===void 0&&(h=!1);var p=new Set;if(u.all)for(var v=0,w=Object.values(is);v<w.length;v++)Vf(R=w[v],u,p,h);else for(var k in u){var M,R,k=/^idb\:\/\/(.*)\/(.*)\//.exec(k);k&&(M=k[1],k=k[2],R=is["idb://".concat(M,"/").concat(k)])&&Vf(R,u,p,h)}p.forEach(function(q){return q()})}function Vf(u,h,p,v){for(var w=[],k=0,M=Object.entries(u.queries.query);k<M.length;k++){for(var R=M[k],q=R[0],ee=[],Y=0,U=R[1];Y<U.length;Y++){var H=U[Y];Ec(h,H.obsSet)?H.subscribers.forEach(function(V){return p.add(V)}):v&&ee.push(H)}v&&w.push([q,ee])}if(v)for(var J=0,X=w;J<X.length;J++){var K=X[J],q=K[0],ee=K[1];u.queries.query[q]=ee}}function nx(u){var h=u._state,p=u._deps.indexedDB;if(h.isBeingOpened||u.idbdb)return h.dbReadyPromise.then(function(){return h.dbOpenError?Kt(h.dbOpenError):u});h.isBeingOpened=!0,h.dbOpenError=null,h.openComplete=!1;var v=h.openCanceller,w=Math.round(10*u.verno),k=!1;function M(){if(h.openCanceller!==v)throw new se.DatabaseClosed("db.open() was cancelled")}function R(){return new D(function(H,J){if(M(),!p)throw new se.MissingAPI;var X=u.name,K=h.autoSchema||!w?p.open(X):p.open(X,w);if(!K)throw new se.MissingAPI;K.onerror=ir(J),K.onblocked=Oe(u._fireOnBlocked),K.onupgradeneeded=Oe(function(V){var le;Y=K.transaction,h.autoSchema&&!u._options.allowEmptyDB?(K.onerror=Mo,Y.abort(),K.result.close(),(le=p.deleteDatabase(X)).onsuccess=le.onerror=Oe(function(){J(new se.NoSuchDatabase("Database ".concat(X," doesnt exist")))})):(Y.onerror=ir(J),le=V.oldVersion>Math.pow(2,62)?0:V.oldVersion,U=le<1,u.idbdb=K.result,k&&ex(u,Y),ZS(u,le/10,Y,J))},J),K.onsuccess=Oe(function(){Y=null;var V,le,re,fe,be,xe,Me=u.idbdb=K.result,Ce=T(Me.objectStoreNames);if(0<Ce.length)try{var ze=Me.transaction((be=Ce).length===1?be[0]:be,"readonly");if(h.autoSchema)xe=Me,fe=ze,(re=u).verno=xe.version/10,fe=re._dbSchema=Pi(0,xe,fe),re._storeNames=T(xe.objectStoreNames,0),ki(re,[re._allTables],a(fe),fe);else if(Ei(u,u._dbSchema,ze),le=ze,((le=wc(Pi(0,(V=u).idbdb,le),V._dbSchema)).add.length||le.change.some(function(Ee){return Ee.add.length||Ee.change.length}))&&!k)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."),Me.close(),w=Me.version+1,k=!0,H(R());Ci(u,ze)}catch{}Io.add(u),Me.onversionchange=Oe(function(Ee){h.vcFired=!0,u.on("versionchange").fire(Ee)}),Me.onclose=Oe(function(){u.close({disableAutoOpen:!1})}),U&&(Ce=u._deps,be=X,kc(xe=Ce.indexedDB)||be===Fs||Cc(xe,Ce.IDBKeyRange).put({name:be}).catch(we)),H()},J)}).catch(function(H){switch(H==null?void 0:H.name){case"UnknownError":if(0<h.PR1398_maxLoop)return h.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),R();break;case"VersionError":if(0<w)return w=0,R()}return D.reject(H)})}var q,ee=h.dbReadyResolve,Y=null,U=!1;return D.race([v,(typeof navigator>"u"?D.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(H){function J(){return indexedDB.databases().finally(H)}q=setInterval(J,100),J()}).finally(function(){return clearInterval(q)}):Promise.resolve()).then(R)]).then(function(){return M(),h.onReadyBeingFired=[],D.resolve(Tc(function(){return u.on.ready.fire(u.vip)})).then(function H(){var J;if(0<h.onReadyBeingFired.length)return J=h.onReadyBeingFired.reduce(On,we),h.onReadyBeingFired=[],D.resolve(Tc(function(){return J(u.vip)})).then(H)})}).finally(function(){h.openCanceller===v&&(h.onReadyBeingFired=null,h.isBeingOpened=!1)}).catch(function(H){h.dbOpenError=H;try{Y&&Y.abort()}catch{}return v===h.openCanceller&&u._close(),Kt(H)}).finally(function(){h.openComplete=!0,ee()}).then(function(){var H;return U&&(H={},u.tables.forEach(function(J){J.schema.indexes.forEach(function(X){X.name&&(H["idb://".concat(u.name,"/").concat(J.name,"/").concat(X.name)]=new kn(-1/0,[[[]]]))}),H["idb://".concat(u.name,"/").concat(J.name,"/")]=H["idb://".concat(u.name,"/").concat(J.name,"/:dels")]=new kn(-1/0,[[[]]])}),Fr(Ao).fire(H),Rc(H,!0)),u})}function jc(u){function h(k){return u.next(k)}var p=w(h),v=w(function(k){return u.throw(k)});function w(k){return function(R){var R=k(R),q=R.value;return R.done?q:q&&typeof q.then=="function"?q.then(p,v):i(q)?Promise.all(q).then(p,v):p(q)}}return w(h)()}function ji(u,h,p){for(var v=i(u)?u.slice():[u],w=0;w<p;++w)v.push(h);return v}var rx={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(u){return r(r({},u),{table:function(v){var p=u.table(v),v=p.schema,w={},k=[];function M(H,J,X){var re=jo(H),K=w[re]=w[re]||[],V=H==null?0:typeof H=="string"?1:H.length,le=0<J,re=r(r({},X),{name:le?"".concat(re,"(virtual-from:").concat(X.name,")"):X.name,lowLevelIndex:X,isVirtual:le,keyTail:J,keyLength:V,extractKey:Sc(H),unique:!le&&X.unique});return K.push(re),re.isPrimaryKey||k.push(re),1<V&&M(V===2?H[0]:H.slice(0,V-1),J+1,X),K.sort(function(fe,be){return fe.keyTail-be.keyTail}),re}var R=M(v.primaryKey.keyPath,0,v.primaryKey);w[":id"]=[R];for(var q=0,ee=v.indexes;q<ee.length;q++){var Y=ee[q];M(Y.keyPath,0,Y)}function U(H){var J,X=H.query.index;return X.isVirtual?r(r({},H),{query:{index:X.lowLevelIndex,range:(J=H.query.range,X=X.keyTail,{type:J.type===1?2:J.type,lower:ji(J.lower,J.lowerOpen?u.MAX_KEY:u.MIN_KEY,X),lowerOpen:!0,upper:ji(J.upper,J.upperOpen?u.MIN_KEY:u.MAX_KEY,X),upperOpen:!0})}}):H}return r(r({},p),{schema:r(r({},v),{primaryKey:R,indexes:k,getIndexByKeyPath:function(H){return(H=w[jo(H)])&&H[0]}}),count:function(H){return p.count(U(H))},query:function(H){return p.query(U(H))},openCursor:function(H){var J=H.query.index,X=J.keyTail,K=J.keyLength;return J.isVirtual?p.openCursor(U(H)).then(function(le){return le&&V(le)}):p.openCursor(H);function V(le){return Object.create(le,{continue:{value:function(re){re!=null?le.continue(ji(re,H.reverse?u.MAX_KEY:u.MIN_KEY,X)):H.unique?le.continue(le.key.slice(0,K).concat(H.reverse?u.MIN_KEY:u.MAX_KEY,X)):le.continue()}},continuePrimaryKey:{value:function(re,fe){le.continuePrimaryKey(ji(re,u.MAX_KEY,X),fe)}},primaryKey:{get:function(){return le.primaryKey}},key:{get:function(){var re=le.key;return K===1?re[0]:re.slice(0,K)}},value:{get:function(){return le.value}}})}}})}})}};function Ic(u,h,p,v){return p=p||{},v=v||"",a(u).forEach(function(w){var k,M,R;m(h,w)?(k=u[w],M=h[w],typeof k=="object"&&typeof M=="object"&&k&&M?(R=z(k))!==z(M)?p[v+w]=h[w]:R==="Object"?Ic(k,M,p,v+w+"."):k!==M&&(p[v+w]=h[w]):k!==M&&(p[v+w]=h[w])):p[v+w]=void 0}),a(h).forEach(function(w){m(u,w)||(p[v+w]=h[w])}),p}function Oc(u,h){return h.type==="delete"?h.keys:h.keys||h.values.map(u.extractKey)}var sx={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(u){return r(r({},u),{table:function(h){var p=u.table(h),v=p.schema.primaryKey;return r(r({},p),{mutate:function(w){var k=Ie.trans,M=k.table(h).hook,R=M.deleting,q=M.creating,ee=M.updating;switch(w.type){case"add":if(q.fire===we)break;return k._promise("readwrite",function(){return Y(w)},!0);case"put":if(q.fire===we&&ee.fire===we)break;return k._promise("readwrite",function(){return Y(w)},!0);case"delete":if(R.fire===we)break;return k._promise("readwrite",function(){return Y(w)},!0);case"deleteRange":if(R.fire===we)break;return k._promise("readwrite",function(){return function U(H,J,X){return p.query({trans:H,values:!1,query:{index:v,range:J},limit:X}).then(function(K){var V=K.result;return Y({type:"delete",keys:V,trans:H}).then(function(le){return 0<le.numFailures?Promise.reject(le.failures[0]):V.length<X?{failures:[],numFailures:0,lastResult:void 0}:U(H,r(r({},J),{lower:V[V.length-1],lowerOpen:!0}),X)})})}(w.trans,w.range,1e4)},!0)}return p.mutate(w);function Y(U){var H,J,X,K=Ie.trans,V=U.keys||Oc(v,U);if(V)return(U=U.type==="add"||U.type==="put"?r(r({},U),{keys:V}):r({},U)).type!=="delete"&&(U.values=s([],U.values)),U.keys&&(U.keys=s([],U.keys)),H=p,X=V,((J=U).type==="add"?Promise.resolve([]):H.getMany({trans:J.trans,keys:X,cache:"immutable"})).then(function(le){var re=V.map(function(fe,be){var xe,Me,Ce,ze=le[be],Ee={onerror:null,onsuccess:null};return U.type==="delete"?R.fire.call(Ee,fe,ze,K):U.type==="add"||ze===void 0?(xe=q.fire.call(Ee,fe,U.values[be],K),fe==null&&xe!=null&&(U.keys[be]=fe=xe,v.outbound||L(U.values[be],v.keyPath,fe))):(xe=Ic(ze,U.values[be]),(Me=ee.fire.call(Ee,xe,fe,ze,K))&&(Ce=U.values[be],Object.keys(Me).forEach(function(Be){m(Ce,Be)?Ce[Be]=Me[Be]:L(Ce,Be,Me[Be])}))),Ee});return p.mutate(U).then(function(fe){for(var be=fe.failures,xe=fe.results,Me=fe.numFailures,fe=fe.lastResult,Ce=0;Ce<V.length;++Ce){var ze=(xe||V)[Ce],Ee=re[Ce];ze==null?Ee.onerror&&Ee.onerror(be[Ce]):Ee.onsuccess&&Ee.onsuccess(U.type==="put"&&le[Ce]?U.values[Ce]:ze)}return{failures:be,results:xe,numFailures:Me,lastResult:fe}}).catch(function(fe){return re.forEach(function(be){return be.onerror&&be.onerror(fe)}),Promise.reject(fe)})});throw new Error("Keys missing")}}})}})}};function Gf(u,h,p){try{if(!h||h.keys.length<u.length)return null;for(var v=[],w=0,k=0;w<h.keys.length&&k<u.length;++w)mt(h.keys[w],u[k])===0&&(v.push(p?Q(h.values[w]):h.values[w]),++k);return v.length===u.length?v:null}catch{return null}}var ox={stack:"dbcore",level:-1,create:function(u){return{table:function(h){var p=u.table(h);return r(r({},p),{getMany:function(v){var w;return v.cache?(w=Gf(v.keys,v.trans._cache,v.cache==="clone"))?D.resolve(w):p.getMany(v).then(function(k){return v.trans._cache={keys:v.keys,values:v.cache==="clone"?Q(k):k},k}):p.getMany(v)},mutate:function(v){return v.type!=="add"&&(v.trans._cache=null),p.mutate(v)}})}}}};function Jf(u,h){return u.trans.mode==="readonly"&&!!u.subscr&&!u.trans.explicit&&u.trans.db._options.cache!=="disabled"&&!h.schema.primaryKey.outbound}function Qf(u,h){switch(u){case"query":return h.values&&!h.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var ax={stack:"dbcore",level:0,name:"Observability",create:function(u){var h=u.schema.name,p=new kn(u.MIN_KEY,u.MAX_KEY);return r(r({},u),{transaction:function(v,w,k){if(Ie.subscr&&w!=="readonly")throw new se.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(Ie.querier));return u.transaction(v,w,k)},table:function(v){function w(V){var K,V=V.query;return[K=V.index,new kn((K=(V=V.range).lower)!=null?K:u.MIN_KEY,(K=V.upper)!=null?K:u.MAX_KEY)]}var k=u.table(v),M=k.schema,R=M.primaryKey,q=M.indexes,ee=R.extractKey,Y=R.outbound,U=R.autoIncrement&&q.filter(function(X){return X.compound&&X.keyPath.includes(R.keyPath)}),H=r(r({},k),{mutate:function(X){function K(Se){return Se="idb://".concat(h,"/").concat(v,"/").concat(Se),be[Se]||(be[Se]=new kn)}var V,le,re,fe=X.trans,be=X.mutatedParts||(X.mutatedParts={}),xe=K(""),Me=K(":dels"),Ce=X.type,Ee=X.type==="deleteRange"?[X.range]:X.type==="delete"?[X.keys]:X.values.length<50?[Oc(R,X).filter(function(Se){return Se}),X.values]:[],ze=Ee[0],Ee=Ee[1],Be=X.trans._cache;return i(ze)?(xe.addKeys(ze),(Ce=Ce==="delete"||ze.length===Ee.length?Gf(ze,Be):null)||Me.addKeys(ze),(Ce||Ee)&&(V=K,le=Ce,re=Ee,M.indexes.forEach(function(Se){var tt=V(Se.name||"");function nt(St){return St!=null?Se.extractKey(St):null}function ut(St){Se.multiEntry&&i(St)?St.forEach(function(zn){return tt.addKey(zn)}):tt.addKey(St)}(le||re).forEach(function(St,Tn){var ct=le&&nt(le[Tn]),Tn=re&&nt(re[Tn]);mt(ct,Tn)!==0&&(ct!=null&&ut(ct),Tn!=null)&&ut(Tn)})}))):ze?(Ee={from:(Be=ze.lower)!=null?Be:u.MIN_KEY,to:(Ce=ze.upper)!=null?Ce:u.MAX_KEY},Me.add(Ee),xe.add(Ee)):(xe.add(p),Me.add(p),M.indexes.forEach(function(Se){return K(Se.name).add(p)})),k.mutate(X).then(function(Se){return!ze||X.type!=="add"&&X.type!=="put"||(xe.addKeys(Se.results),U&&U.forEach(function(tt){for(var nt=X.values.map(function(ct){return tt.extractKey(ct)}),ut=tt.keyPath.findIndex(function(ct){return ct===R.keyPath}),St=0,zn=Se.results.length;St<zn;++St)nt[St][ut]=Se.results[St];K(tt.name).addKeys(nt)})),fe.mutatedParts=Ai(fe.mutatedParts||{},be),Se})}}),J={get:function(X){return[R,new kn(X.key)]},getMany:function(X){return[R,new kn().addKeys(X.keys)]},count:w,query:w,openCursor:w};return a(J).forEach(function(X){H[X]=function(K){var V=Ie.subscr,le=!!V,re=Jf(Ie,k)&&Qf(X,K)?K.obsSet={}:V;if(le){var fe,V=function(Ee){return Ee="idb://".concat(h,"/").concat(v,"/").concat(Ee),re[Ee]||(re[Ee]=new kn)},be=V(""),xe=V(":dels"),le=J[X](K),Me=le[0],le=le[1];if((X==="query"&&Me.isPrimaryKey&&!K.values?xe:V(Me.name||"")).add(le),!Me.isPrimaryKey){if(X!=="count")return fe=X==="query"&&Y&&K.values&&k.query(r(r({},K),{values:!1})),k[X].apply(this,arguments).then(function(Ee){if(X==="query"){if(Y&&K.values)return fe.then(function(nt){return nt=nt.result,be.addKeys(nt),Ee});var Be=K.values?Ee.result.map(ee):Ee.result;(K.values?be:xe).addKeys(Be)}else{var Se,tt;if(X==="openCursor")return tt=K.values,(Se=Ee)&&Object.create(Se,{key:{get:function(){return xe.addKey(Se.primaryKey),Se.key}},primaryKey:{get:function(){var nt=Se.primaryKey;return xe.addKey(nt),nt}},value:{get:function(){return tt&&be.addKey(Se.primaryKey),Se.value}}})}return Ee});xe.add(p)}}return k[X].apply(this,arguments)}}),H}})}};function Zf(u,h,p){var v;return p.numFailures===0?h:h.type==="deleteRange"||(v=h.keys?h.keys.length:"values"in h&&h.values?h.values.length:1,p.numFailures===v)?null:(v=r({},h),i(v.keys)&&(v.keys=v.keys.filter(function(w,k){return!(k in p.failures)})),"values"in v&&i(v.values)&&(v.values=v.values.filter(function(w,k){return!(k in p.failures)})),v)}function $c(u,h){return p=u,((v=h).lower===void 0||(v.lowerOpen?0<mt(p,v.lower):0<=mt(p,v.lower)))&&(p=u,(v=h).upper===void 0||(v.upperOpen?mt(p,v.upper)<0:mt(p,v.upper)<=0));var p,v}function eh(u,h,p,v,w,k){var M,R,q,ee,Y,U,H;return!p||p.length===0||(M=h.query.index,R=M.multiEntry,q=h.query.range,ee=v.schema.primaryKey.extractKey,Y=M.extractKey,U=(M.lowLevelIndex||M).extractKey,(v=p.reduce(function(J,X){var K=J,V=[];if(X.type==="add"||X.type==="put")for(var le=new kn,re=X.values.length-1;0<=re;--re){var fe,be=X.values[re],xe=ee(be);!le.hasKey(xe)&&(fe=Y(be),R&&i(fe)?fe.some(function(Be){return $c(Be,q)}):$c(fe,q))&&(le.addKey(xe),V.push(be))}switch(X.type){case"add":var Me=new kn().addKeys(h.values?J.map(function(Se){return ee(Se)}):J),K=J.concat(h.values?V.filter(function(Se){return Se=ee(Se),!Me.hasKey(Se)&&(Me.addKey(Se),!0)}):V.map(function(Se){return ee(Se)}).filter(function(Se){return!Me.hasKey(Se)&&(Me.addKey(Se),!0)}));break;case"put":var Ce=new kn().addKeys(X.values.map(function(Se){return ee(Se)}));K=J.filter(function(Se){return!Ce.hasKey(h.values?ee(Se):Se)}).concat(h.values?V:V.map(function(Se){return ee(Se)}));break;case"delete":var ze=new kn().addKeys(X.keys);K=J.filter(function(Se){return!ze.hasKey(h.values?ee(Se):Se)});break;case"deleteRange":var Ee=X.range;K=J.filter(function(Se){return!$c(ee(Se),Ee)})}return K},u))===u)?u:(H=function(J,X){return mt(U(J),U(X))||mt(ee(J),ee(X))},v.sort(h.direction==="prev"||h.direction==="prevunique"?function(J,X){return H(X,J)}:H),h.limit&&h.limit<1/0&&(v.length>h.limit?v.length=h.limit:u.length===h.limit&&v.length<h.limit&&(w.dirty=!0)),k?Object.freeze(v):v)}function th(u,h){return mt(u.lower,h.lower)===0&&mt(u.upper,h.upper)===0&&!!u.lowerOpen==!!h.lowerOpen&&!!u.upperOpen==!!h.upperOpen}function ix(u,h){return((p,v,w,k)=>{if(p===void 0)return v!==void 0?-1:0;if(v===void 0)return 1;if((p=mt(p,v))===0){if(w&&k)return 0;if(w)return 1;if(k)return-1}return p})(u.lower,h.lower,u.lowerOpen,h.lowerOpen)<=0&&0<=((p,v,w,k)=>{if(p===void 0)return v!==void 0?1:0;if(v===void 0)return-1;if((p=mt(p,v))===0){if(w&&k)return 0;if(w)return-1;if(k)return 1}return p})(u.upper,h.upper,u.upperOpen,h.upperOpen)}function lx(u,h,p,v){u.subscribers.add(p),v.addEventListener("abort",function(){var w,k;u.subscribers.delete(p),u.subscribers.size===0&&(w=u,k=h,setTimeout(function(){w.subscribers.size===0&&ce(k,w)},3e3))})}var cx={stack:"dbcore",level:0,name:"Cache",create:function(u){var h=u.schema.name;return r(r({},u),{transaction:function(p,v,w){var k,M,R=u.transaction(p,v,w);return v==="readwrite"&&(w=(k=new AbortController).signal,R.addEventListener("abort",(M=function(q){return function(){if(k.abort(),v==="readwrite"){for(var ee=new Set,Y=0,U=p;Y<U.length;Y++){var H=U[Y],J=is["idb://".concat(h,"/").concat(H)];if(J){var X=u.table(H),K=J.optimisticOps.filter(function(Se){return Se.trans===R});if(R._explicit&&q&&R.mutatedParts)for(var V=0,le=Object.values(J.queries.query);V<le.length;V++)for(var re=0,fe=(Me=le[V]).slice();re<fe.length;re++)Ec((Ce=fe[re]).obsSet,R.mutatedParts)&&(ce(Me,Ce),Ce.subscribers.forEach(function(Se){return ee.add(Se)}));else if(0<K.length){J.optimisticOps=J.optimisticOps.filter(function(Se){return Se.trans!==R});for(var be=0,xe=Object.values(J.queries.query);be<xe.length;be++)for(var Me,Ce,ze,Ee=0,Be=(Me=xe[be]).slice();Ee<Be.length;Ee++)(Ce=Be[Ee]).res!=null&&R.mutatedParts&&(q&&!Ce.dirty?(ze=Object.isFrozen(Ce.res),ze=eh(Ce.res,Ce.req,K,X,Ce,ze),Ce.dirty?(ce(Me,Ce),Ce.subscribers.forEach(function(Se){return ee.add(Se)})):ze!==Ce.res&&(Ce.res=ze,Ce.promise=D.resolve({result:ze}))):(Ce.dirty&&ce(Me,Ce),Ce.subscribers.forEach(function(Se){return ee.add(Se)})))}}}ee.forEach(function(Se){return Se()})}}})(!1),{signal:w}),R.addEventListener("error",M(!1),{signal:w}),R.addEventListener("complete",M(!0),{signal:w})),R},table:function(p){var v=u.table(p),w=v.schema.primaryKey;return r(r({},v),{mutate:function(k){var M,R=Ie.trans;return!w.outbound&&R.db._options.cache!=="disabled"&&!R.explicit&&R.idbtrans.mode==="readwrite"&&(M=is["idb://".concat(h,"/").concat(p)])?(R=v.mutate(k),k.type!=="add"&&k.type!=="put"||!(50<=k.values.length||Oc(w,k).some(function(q){return q==null}))?(M.optimisticOps.push(k),k.mutatedParts&&Ri(k.mutatedParts),R.then(function(q){0<q.numFailures&&(ce(M.optimisticOps,k),(q=Zf(0,k,q))&&M.optimisticOps.push(q),k.mutatedParts)&&Ri(k.mutatedParts)}),R.catch(function(){ce(M.optimisticOps,k),k.mutatedParts&&Ri(k.mutatedParts)})):R.then(function(q){var ee=Zf(0,r(r({},k),{values:k.values.map(function(Y,U){var H;return q.failures[U]?Y:(L(H=(H=w.keyPath)!=null&&H.includes(".")?Q(Y):r({},Y),w.keyPath,q.results[U]),H)})}),q);M.optimisticOps.push(ee),queueMicrotask(function(){return k.mutatedParts&&Ri(k.mutatedParts)})}),R):v.mutate(k)},query:function(k){var M,R,q,ee,Y,U,H;return Jf(Ie,v)&&Qf("query",k)?(M=((q=Ie.trans)==null?void 0:q.db._options.cache)==="immutable",R=(q=Ie).requery,q=q.signal,U=((J,X,K,V)=>{var le=is["idb://".concat(J,"/").concat(X)];if(!le)return[];if(!(J=le.queries[K]))return[null,!1,le,null];var re=J[(V.query?V.query.index.name:null)||""];if(!re)return[null,!1,le,null];switch(K){case"query":var fe=(be=V.direction)!=null?be:"next",be=re.find(function(xe){var Me;return xe.req.limit===V.limit&&xe.req.values===V.values&&((Me=xe.req.direction)!=null?Me:"next")===fe&&th(xe.req.query.range,V.query.range)});return be?[be,!0,le,re]:[re.find(function(xe){var Me;return("limit"in xe.req?xe.req.limit:1/0)>=V.limit&&((Me=xe.req.direction)!=null?Me:"next")===fe&&(!V.values||xe.req.values)&&ix(xe.req.query.range,V.query.range)}),!1,le,re];case"count":return be=re.find(function(xe){return th(xe.req.query.range,V.query.range)}),[be,!!be,le,re]}})(h,p,"query",k),H=U[0],ee=U[2],Y=U[3],H&&U[1]?H.obsSet=k.obsSet:(U=v.query(k).then(function(J){var X=J.result;if(H&&(H.res=X),M){for(var K=0,V=X.length;K<V;++K)Object.freeze(X[K]);Object.freeze(X)}else J.result=Q(X);return J}).catch(function(J){return Y&&H&&ce(Y,H),Promise.reject(J)}),H={obsSet:k.obsSet,promise:U,subscribers:new Set,type:"query",req:k,dirty:!1},Y?Y.push(H):(Y=[H],(ee=ee||(is["idb://".concat(h,"/").concat(p)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[k.query.index.name||""]=Y)),lx(H,Y,R,q),H.promise.then(function(J){return{result:eh(J.result,k,ee==null?void 0:ee.optimisticOps,v,H,M)}})):v.query(k)}})}})}};function Ii(u,h){return new Proxy(u,{get:function(p,v,w){return v==="db"?h:Reflect.get(p,v,w)}})}nn.prototype.version=function(u){if(isNaN(u)||u<.1)throw new se.Type("Given version is not a positive number");if(u=Math.round(10*u)/10,this.idbdb||this._state.isBeingOpened)throw new se.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,u);var h=this._versions,p=h.filter(function(v){return v._cfg.version===u})[0];return p||(p=new this.Version(u),h.push(p),h.sort(QS),p.stores({}),this._state.autoSchema=!1),p},nn.prototype._whenReady=function(u){var h=this;return this.idbdb&&(this._state.openComplete||Ie.letThrough||this._vip)?u():new D(function(p,v){if(h._state.openComplete)return v(new se.DatabaseClosed(h._state.dbOpenError));if(!h._state.isBeingOpened){if(!h._state.autoOpen)return void v(new se.DatabaseClosed);h.open().catch(we)}h._state.dbReadyPromise.then(p,v)}).then(u)},nn.prototype.use=function(w){var h=w.stack,p=w.create,v=w.level,w=w.name,k=(w&&this.unuse({stack:h,name:w}),this._middlewares[h]||(this._middlewares[h]=[]));return k.push({stack:h,create:p,level:v??10,name:w}),k.sort(function(M,R){return M.level-R.level}),this},nn.prototype.unuse=function(u){var h=u.stack,p=u.name,v=u.create;return h&&this._middlewares[h]&&(this._middlewares[h]=this._middlewares[h].filter(function(w){return v?w.create!==v:!!p&&w.name!==p})),this},nn.prototype.open=function(){var u=this;return or(tn,function(){return nx(u)})},nn.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var u=this._state;if(Io.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}u.isBeingOpened||(u.dbReadyPromise=new D(function(h){u.dbReadyResolve=h}),u.openCanceller=new D(function(h,p){u.cancelOpen=p}))},nn.prototype.close=function(h){var h=(h===void 0?{disableAutoOpen:!0}:h).disableAutoOpen,p=this._state;h?(p.isBeingOpened&&p.cancelOpen(new se.DatabaseClosed),this._close(),p.autoOpen=!1,p.dbOpenError=new se.DatabaseClosed):(this._close(),p.autoOpen=this._options.autoOpen||p.isBeingOpened,p.openComplete=!1,p.dbOpenError=null)},nn.prototype.delete=function(u){var h=this,p=(u===void 0&&(u={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),v=this._state;return new D(function(w,k){function M(){h.close(u);var R=h._deps.indexedDB.deleteDatabase(h.name);R.onsuccess=Oe(function(){var q,ee,Y;q=h._deps,ee=h.name,kc(Y=q.indexedDB)||ee===Fs||Cc(Y,q.IDBKeyRange).delete(ee).catch(we),w()}),R.onerror=ir(k),R.onblocked=h._fireOnBlocked}if(p)throw new se.InvalidArgument("Invalid closeOptions argument to db.delete()");v.isBeingOpened?v.dbReadyPromise.then(M):M()})},nn.prototype.backendDB=function(){return this.idbdb},nn.prototype.isOpen=function(){return this.idbdb!==null},nn.prototype.hasBeenClosed=function(){var u=this._state.dbOpenError;return u&&u.name==="DatabaseClosed"},nn.prototype.hasFailed=function(){return this._state.dbOpenError!==null},nn.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(nn.prototype,"tables",{get:function(){var u=this;return a(this._allTables).map(function(h){return u._allTables[h]})},enumerable:!1,configurable:!0}),nn.prototype.transaction=function(){var u=(function(h,p,v){var w=arguments.length;if(w<2)throw new se.InvalidArgument("Too few arguments");for(var k=new Array(w-1);--w;)k[w-1]=arguments[w];return v=k.pop(),[h,te(k),v]}).apply(this,arguments);return this._transaction.apply(this,u)},nn.prototype._transaction=function(u,h,p){var v,w,k=this,M=Ie.trans,R=(M&&M.db===this&&u.indexOf("!")===-1||(M=null),u.indexOf("?")!==-1);u=u.replace("!","").replace("?","");try{if(w=h.map(function(ee){if(ee=ee instanceof k.Table?ee.name:ee,typeof ee!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return ee}),u=="r"||u===Ns)v=Ns;else{if(u!="rw"&&u!=To)throw new se.InvalidArgument("Invalid transaction mode: "+u);v=To}if(M){if(M.mode===Ns&&v===To){if(!R)throw new se.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");M=null}M&&w.forEach(function(ee){if(M&&M.storeNames.indexOf(ee)===-1){if(!R)throw new se.SubTransaction("Table "+ee+" not included in parent transaction.");M=null}}),R&&M&&!M.active&&(M=null)}}catch(ee){return M?M._promise(null,function(Y,U){U(ee)}):Kt(ee)}var q=(function ee(Y,U,H,J,X){return D.resolve().then(function(){var re=Ie.transless||Ie,K=Y._createTransaction(U,H,Y._dbSchema,J),re=(K.explicit=!0,{trans:K,transless:re});if(J)K.idbtrans=J.idbtrans;else try{K.create(),K.idbtrans._explicit=!0,Y._state.PR1398_maxLoop=3}catch(fe){return fe.name===Fe.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,U,H,null,X)})):Kt(fe)}var V,le=he(X),re=(le&&Pr(),D.follow(function(){var fe;(V=X.call(K,K))&&(le?(fe=sr.bind(null,null),V.then(fe,fe)):typeof V.next=="function"&&typeof V.throw=="function"&&(V=jc(V)))},re));return(V&&typeof V.then=="function"?D.resolve(V).then(function(fe){return K.active?fe:Kt(new se.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):re.then(function(){return V})).then(function(fe){return J&&K._resolve(),K._completion.then(function(){return fe})}).catch(function(fe){return K._reject(fe),Kt(fe)})})}).bind(null,this,v,w,M,p);return M?M._promise(v,q,"lock"):Ie.trans?or(Ie.transless,function(){return k._whenReady(q)}):this._whenReady(q)},nn.prototype.table=function(u){if(m(this._allTables,u))return this._allTables[u];throw new se.InvalidTable("Table ".concat(u," does not exist"))};var Er=nn;function nn(u,h){var p,v,w,k,M,R=this,q=(this._middlewares={},this.verno=0,nn.dependencies),q=(this._options=h=r({addons:nn.addons,autoOpen:!0,indexedDB:q.indexedDB,IDBKeyRange:q.IDBKeyRange,cache:"cloned",maxConnections:1e3},h),this._deps={indexedDB:h.indexedDB,IDBKeyRange:h.IDBKeyRange},h.addons),ee=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:we,dbReadyPromise:null,cancelOpen:we,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:h.autoOpen}),Y=(ee.dbReadyPromise=new D(function(U){ee.dbReadyResolve=U}),ee.openCanceller=new D(function(U,H){ee.cancelOpen=H}),this._state=ee,this.name=u,this.on=Kn(this,"populate","blocked","versionchange","close",{ready:[On,we]}),this.once=function(U,H){var J=function(){for(var X=[],K=0;K<arguments.length;K++)X[K]=arguments[K];R.on(U).unsubscribe(J),H.apply(R,X)};return R.on(U,J)},this.on.ready.subscribe=P(this.on.ready.subscribe,function(U){return function(H,J){nn.vip(function(){var X,K=R._state;K.openComplete?(K.dbOpenError||D.resolve().then(H),J&&U(H)):K.onReadyBeingFired?(K.onReadyBeingFired.push(H),J&&U(H)):(U(H),X=R,J||U(function V(){X.on.ready.unsubscribe(H),X.on.ready.unsubscribe(V)}))})}}),this.Collection=(p=this,Vn(HS.prototype,function(V,K){this.db=p;var J=Po,X=null;if(K)try{J=K()}catch(re){X=re}var K=V._ctx,V=K.table,le=V.hook.reading.fire;this._ctx={table:V,index:K.index,isPrimKey:!K.index||V.schema.primKey.keyPath&&K.index===V.schema.primKey.name,range:J,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:X,or:K.or,valueMapper:le!==He?le:null}})),this.Table=(v=this,Vn(ln.prototype,function(U,H,J){this.db=v,this._tx=J,this.name=U,this.schema=H,this.hook=v._allTables[U]?v._allTables[U].hook:Kn(null,{creating:[et,we],reading:[xt,He],updating:[Yt,we],deleting:[$t,we]})})),this.Transaction=(w=this,Vn(KS.prototype,function(U,H,J,X,K){var V=this;U!=="readonly"&&H.forEach(function(le){le=(le=J[le])==null?void 0:le.yProps,le&&(H=H.concat(le.map(function(re){return re.updatesTable})))}),this.db=w,this.mode=U,this.storeNames=H,this.schema=J,this.chromeTransactionDurability=X,this.idbtrans=null,this.on=Kn(this,"complete","error","abort"),this.parent=K||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new D(function(le,re){V._resolve=le,V._reject=re}),this._completion.then(function(){V.active=!1,V.on.complete.fire()},function(le){var re=V.active;return V.active=!1,V.on.error.fire(le),V.parent?V.parent._reject(le):re&&V.idbtrans&&V.idbtrans.abort(),Kt(le)})})),this.Version=(k=this,Vn(tx.prototype,function(U){this.db=k,this._cfg={version:U,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(M=this,Vn(Bf.prototype,function(U,H,J){if(this.db=M,this._ctx={table:U,index:H===":id"?null:H,or:J},this._cmp=this._ascending=mt,this._descending=function(X,K){return mt(K,X)},this._max=function(X,K){return 0<mt(X,K)?X:K},this._min=function(X,K){return mt(X,K)<0?X:K},this._IDBKeyRange=M._deps.IDBKeyRange,!this._IDBKeyRange)throw new se.MissingAPI})),this.on("versionchange",function(U){0<U.newVersion?console.warn("Another connection wants to upgrade database '".concat(R.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(R.name,"'. Closing db now to resume the delete request.")),R.close({disableAutoOpen:!1})}),this.on("blocked",function(U){!U.newVersion||U.newVersion<U.oldVersion?console.warn("Dexie.delete('".concat(R.name,"') was blocked")):console.warn("Upgrade '".concat(R.name,"' blocked by other connection holding version ").concat(U.oldVersion/10))}),this._maxKey=Ro(h.IDBKeyRange),this._createTransaction=function(U,H,J,X){return new R.Transaction(U,H,J,R._options.chromeTransactionDurability,X)},this._fireOnBlocked=function(U){R.on("blocked").fire(U),Io.toArray().filter(function(H){return H.name===R.name&&H!==R&&!H._state.vcFired}).map(function(H){return H.on("versionchange").fire(U)})},this.use(ox),this.use(cx),this.use(ax),this.use(rx),this.use(sx),new Proxy(this,{get:function(U,H,J){var X;return H==="_vip"||(H==="table"?function(K){return Ii(R.table(K),Y)}:(X=Reflect.get(U,H,J))instanceof ln?Ii(X,Y):H==="tables"?X.map(function(K){return Ii(K,Y)}):H==="_createTransaction"?function(){return Ii(X.apply(this,arguments),Y)}:X)}}));this.vip=Y,q.forEach(function(U){return U(R)})}var Oi,Us=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",ux=(Lc.prototype.subscribe=function(u,h,p){return this._subscribe(u&&typeof u!="function"?u:{next:u,error:h,complete:p})},Lc.prototype[Us]=function(){return this},Lc);function Lc(u){this._subscribe=u}try{Oi={indexedDB:o.indexedDB||o.mozIndexedDB||o.webkitIndexedDB||o.msIndexedDB,IDBKeyRange:o.IDBKeyRange||o.webkitIDBKeyRange}}catch{Oi={indexedDB:null,IDBKeyRange:null}}function nh(u){var h,p=!1,v=new ux(function(w){var k=he(u),M,R=!1,q={},ee={},Y={get closed(){return R},unsubscribe:function(){R||(R=!0,M&&M.abort(),U&&Fr.storagemutated.unsubscribe(X))}},U=(w.start&&w.start(Y),!1),H=function(){return os(K)};function J(){return Ec(ee,q)}var X=function(V){Ai(q,V),J()&&H()},K=function(){var V,le,re;!R&&Oi.indexedDB&&(q={},V={},M&&M.abort(),M=new AbortController,re=(fe=>{var be=Ht();try{k&&Pr();var xe=rr(u,fe);return xe=k?xe.finally(sr):xe}finally{be&&_t()}})(le={subscr:V,signal:M.signal,requery:H,querier:u,trans:null}),U||(Fr(Ao,X),U=!0),Promise.resolve(re).then(function(fe){p=!0,h=fe,R||le.signal.aborted||(J()||(ee=V,J())?H():(q={},os(function(){return!R&&w.next&&w.next(fe)})))},function(fe){p=!1,["DatabaseClosedError","AbortError"].includes(fe==null?void 0:fe.name)||R||os(function(){R||w.error&&w.error(fe)})}))};return setTimeout(H,0),Y});return v.hasValue=function(){return p},v.getValue=function(){return h},v}var ls=Er;function Dc(u){var h=Nr;try{Nr=!0,Fr.storagemutated.fire(u),Rc(u,!0)}finally{Nr=h}}g(ls,r(r({},_e),{delete:function(u){return new ls(u,{addons:[]}).delete()},exists:function(u){return new ls(u,{addons:[]}).open().then(function(h){return h.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(u){try{return h=ls.dependencies,p=h.indexedDB,h=h.IDBKeyRange,(kc(p)?Promise.resolve(p.databases()).then(function(v){return v.map(function(w){return w.name}).filter(function(w){return w!==Fs})}):Cc(p,h).toCollection().primaryKeys()).then(u)}catch{return Kt(new se.MissingAPI)}var h,p},defineClass:function(){return function(u){c(this,u)}},ignoreTransaction:function(u){return Ie.trans?or(Ie.transless||tn,u):u()},vip:Tc,async:function(u){return function(){try{var h=jc(u.apply(this,arguments));return h&&typeof h.then=="function"?h:D.resolve(h)}catch(p){return Kt(p)}}},spawn:function(u,h,p){try{var v=jc(u.apply(p,h||[]));return v&&typeof v.then=="function"?v:D.resolve(v)}catch(w){return Kt(w)}},currentTransaction:{get:function(){return Ie.trans||null}},waitFor:function(u,h){return u=D.resolve(typeof u=="function"?ls.ignoreTransaction(u):u).timeout(h||6e4),Ie.trans?Ie.trans.waitFor(u):u},Promise:D,debug:{get:function(){return jt},set:function(u){Mn(u)}},derive:S,extend:c,props:g,override:P,Events:Kn,on:Fr,liveQuery:nh,extendObservabilitySet:Ai,getByKeyPath:I,setByKeyPath:L,delByKeyPath:function(u,h){typeof h=="string"?L(u,h,void 0):"length"in h&&[].map.call(h,function(p){L(u,p,void 0)})},shallowClone:$,deepClone:Q,getObjectDiff:Ic,cmp:mt,asap:A,minKey:-1/0,addons:[],connections:{get:Io.toArray},errnames:Fe,dependencies:Oi,cache:is,semVer:"4.4.2",version:"4.4.2".split(".").map(function(u){return parseInt(u)}).reduce(function(u,h,p){return u+h/Math.pow(10,2*p)})})),ls.maxKey=Ro(ls.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Fr(Ao,function(u){Nr||(u=new CustomEvent(yc,{detail:u}),Nr=!0,dispatchEvent(u),Nr=!1)}),addEventListener(yc,function(u){u=u.detail,Nr||Dc(u)}));var qs,Nr=!1,rh=function(){};return typeof BroadcastChannel<"u"&&((rh=function(){(qs=new BroadcastChannel(yc)).onmessage=function(u){return u.data&&Dc(u.data)}})(),typeof qs.unref=="function"&&qs.unref(),Fr(Ao,function(u){Nr||qs.postMessage(u)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(u){if(!Er.disableBfCache&&u.persisted){jt&&console.debug("Dexie: handling persisted pagehide"),qs!=null&&qs.close();for(var h=0,p=Io.toArray();h<p.length;h++)p[h].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(u){!Er.disableBfCache&&u.persisted&&(jt&&console.debug("Dexie: handling persisted pageshow"),rh(),Dc({all:new kn(-1/0,[[]])}))})),D.rejectionMapper=function(u,h){return!u||u instanceof ue||u instanceof TypeError||u instanceof SyntaxError||!u.name||!ge[u.name]?u:(h=new ge[u.name](h||u.message,u),"stack"in u&&x(h,"stack",{get:function(){return this.inner.stack}}),h)},Mn(jt),r(Er,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Er,Entity:Eo,PropModification:Ot,RangeSet:kn,add:function(u){return new Ot({add:u})},cmp:mt,default:Er,liveQuery:nh,mergeRanges:$o,rangesOverlap:Yf,remove:function(u){return new Ot({remove:u})},replacePrefix:function(u,h){return new Ot({replacePrefix:[u,h]})}}),{default:Er}),Er})}(cl)),cl.exports}var n0=t0();const Wu=Is(n0),Eh=Symbol.for("Dexie"),Al=globalThis[Eh]||(globalThis[Eh]=Wu);if(Wu.semVer!==Al.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${Wu.semVer} and ${Al.semVer}`);const{liveQuery:a$,mergeRanges:i$,rangesOverlap:l$,RangeSet:c$,cmp:u$,Entity:d$,PropModification:f$,replacePrefix:h$,add:p$,remove:m$,DexieYProvider:g$}=Al;class r0 extends Al{constructor(){super("LotusStorage");Rt(this,"scrollAnchors");Rt(this,"toolSessionCollapses");Rt(this,"diffCollapses");Rt(this,"inputStates");Rt(this,"modelOptionsCaches");this.version(1).stores({scrollAnchors:"sessionId, ts",toolSessionCollapses:"id, sessionId, updatedAt",diffCollapses:"sessionId, updatedAt",inputStates:"sessionId, updatedAt",modelOptionsCaches:"provider, timestamp"})}}const s0=new r0,_s=class _s{constructor(){Rt(this,"db",s0)}static getInstance(){return _s.instance||(_s.instance=new _s),_s.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}}}};Rt(_s,"instance");let Hn=_s;const My="chat_input_reasoning_by_session_v1",Ay="chat_input_reasoning_last_used_v1",Mh={content:"",referenceText:null,attachments:[],reasoningEffort:"medium"},qd=e=>e==="low"||e==="medium"||e==="high"||e==="xhigh"||e==="max",Ry=()=>{if(typeof window>"u")return{};try{const e=localStorage.getItem(My);if(!e)return{};const t=JSON.parse(e),n={};for(const[r,s]of Object.entries(t||{}))qd(s)&&(n[r]=s);return n}catch{return{}}},o0=e=>{if(!(typeof window>"u"))try{localStorage.setItem(My,JSON.stringify(e))}catch{}},a0=()=>{if(!(typeof window>"u"))try{const e=localStorage.getItem(Ay);return qd(e)?e:void 0}catch{return}},i0=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Ay,e)}catch{}},jy=e=>{const t=Ry();return qd(t[e])?t[e]:a0()},No=e=>({...Mh,reasoningEffort:jy(e)??Mh.reasoningEffort}),l0=(e,t)=>({inputStates:{},setInputContent:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||No(n),content:r}}})),setReferenceText:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||No(n),referenceText:r}}})),setAttachments:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||No(n),attachments:r}}})),setInputReasoningEffort:(n,r)=>{e(a=>({inputStates:{...a.inputStates,[n]:{...a.inputStates[n]||No(n),reasoningEffort:r}}}));const s=Ry();s[n]=r,o0(s),i0(r);const o=Hn.getInstance();o.saveInputReasoning(n,r).catch(()=>{}),o.saveLastUsedReasoningEffort(r).catch(()=>{})},clearInputState:n=>e(r=>{const{[n]:s,...o}=r.inputStates;return{inputStates:o}}),getInputState:n=>t().inputStates[n]||No(n)}),c0="bamboo_proxy_auth",u0=()=>{try{const e=localStorage.getItem(c0);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}},Iy={byId:{},runningCount:0},d0=[],In=(e,t)=>t?e.executionBySession[t]??null:null,f0=e=>t=>In(t,e),h0=e=>t=>{const n=In(t,e);return(n==null?void 0:n.phase)??"idle"},fi=e=>t=>{const n=In(t,e);return Bd(n==null?void 0:n.phase)},Oy=e=>t=>{const n=In(t,e);return n?n.phase==="streaming"?!0:n.phase==="running_tools"&&n.stream.hasTokens:!1},p0=e=>t=>{const n=In(t,e);return n?n.phase==="waiting_user_answer"||n.interaction.pendingQuestion!==null||n.backend.hasPendingQuestion===!0:!1},$y=e=>t=>{const n=In(t,e);return a_(n==null?void 0:n.phase)},Ly=e=>t=>{const n=In(t,e);return i_(n==null?void 0:n.phase)},cr=e=>t=>{const n=In(t,e);return Bd(n==null?void 0:n.phase)?(n==null?void 0:n.phase)!=="waiting_user_answer":!1},m0=e=>t=>{const n=In(t,e);return(n==null?void 0:n.stream.activeToolCalls)??d0},io=e=>t=>{const n=In(t,e);return(n==null?void 0:n.interaction.pendingQuestion)??null},g0=e=>t=>{if(!e)return null;const n=io(e)(t);return n?{sessionId:e,question:n.question,options:n.options,allowCustom:n.allowCustom,toolCallId:n.toolCallId}:null},ti=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children.byId)??Iy.byId},y0=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children)??Iy},Wt=e=>t=>{const n=In(t,e);return(n==null?void 0:n.generation)??0},v0=Object.freeze({state:"idle",activeToolCalls:[],runningChildCount:0,hasQuestion:!1,hasError:!1,errorMessage:null,generation:0}),b0=e=>t=>{var r;const n=In(t,e);return n?{state:n.phase,activeToolCalls:n.stream.activeToolCalls,runningChildCount:n.children.runningCount,hasQuestion:n.interaction.pendingQuestion!==null,hasError:n.error!==null,errorMessage:((r=n.error)==null?void 0:r.message)??null,generation:n.generation}:v0},S0=e=>t=>e.map(n=>({sessionId:n??"",entry:In(t,n)})),x0="auto",w0="required",_0=1e4,C0=15e3,k0=tr.getInstance();let Ah=null,zo=null,Rh=null,Bo=null;const jh=new WeakMap,ne=ns()(Kw(Gw((e,t,n)=>({...F_(e,t),...W_(e,t),...Y_(e,t),...K_(),...G_(e,t),...J_(e),...Z_(e,t),...l0(e,t),...S_(e,t),agentAvailability:null,setAgentAvailability:r=>{e({agentAvailability:r})},checkAgentAvailability:async()=>{if(zo)return zo;zo=(async()=>{const r=await k0.healthCheck();return t().agentAvailability!==r&&e({agentAvailability:r}),r})();try{return await zo}finally{zo=null}},startAgentHealthCheck:()=>{Ah||(t().checkAgentAvailability(),Ah=setInterval(()=>{t().checkAgentAvailability()},_0))},refreshSessionsIndex:async()=>{if(Bo)return Bo;Bo=(async()=>{try{await t().refreshChats()}catch(r){console.warn("[AppStore] refreshChats failed:",r)}})();try{return await Bo}finally{Bo=null}},startSessionsIndexSync:()=>{Rh||(t().refreshSessionsIndex(),Rh=setInterval(()=>{t().refreshSessionsIndex()},C0))}})),{name:"AppStore"})),Dy=e=>{const t=jh.get(e);if(t)return t;const n=new Map(e.map(r=>[r.id,r]));return jh.set(e,n),n},$r=e=>t=>e?Dy(t.chats).get(e)??null:null,Fy=e=>e.currentSessionId?Dy(e.chats).get(e.currentSessionId)??null:null,T0=e=>{var t;return((t=Fy(e))==null?void 0:t.messages)??[]},Ih=async()=>{const e=u0();if(!e)return!1;try{return await ys.setProxyAuth(e),!0}catch(t){return console.error("Failed to apply stored proxy auth during startup:",t),!1}},P0=async()=>{try{const e=await Bu.getState().loadConfig();if((typeof(e==null?void 0:e.proxy_auth_mode)=="string"?e.proxy_auth_mode:x0)!==w0)return await Ih(),!1;const n=await Bu.getState().loadProxyAuthStatus({force:!0});return n!=null&&n.configured||await Ih()?!1:(ne.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 Oh=!1,Ny=!1,Ni=null;const Hd=async(e=!1)=>{if(Oh&&!e)return;if(Oh=!0,ne.getState().startAgentHealthCheck(),ne.getState().startSessionsIndexSync(),!(typeof globalThis<"u"&&"__vitest_worker__"in globalThis))try{await Nt.getState().loadProviderInstances(),Nt.getState().isInstancesLoaded||await Nt.getState().loadProviderConfig()}catch(n){console.error("[AppStore] Failed to bootstrap provider state:",n)}await ne.getState().loadChats(),Ny=!0},Yd=async()=>{if(Ny)return Ni||(Ni=(async()=>{try{await P0()||await ne.getState().fetchModels(),await ne.getState().loadSystemPrompts()}catch(e){console.error("[AppStore] Deferred bootstrap failed:",e)}})(),Ni)},E0=async(e=!1)=>{await Hd(e),Yd().catch(t=>{console.error("[AppStore] Deferred bootstrap error:",t)})},y$=Object.freeze(Object.defineProperty({__proto__:null,bootstrapCritical:Hd,bootstrapDeferred:Yd,initializeStore:E0,selectActiveToolCalls:m0,selectCanCancel:Ly,selectChildren:ti,selectChildrenSnapshot:y0,selectCurrentChat:Fy,selectCurrentMessages:T0,selectExecutionByPane:S0,selectExecutionPhase:h0,selectExecutionState:f0,selectGeneration:Wt,selectIsAwaitingUser:p0,selectIsBusy:fi,selectIsInputLocked:$y,selectIsStreaming:Oy,selectPendingQuestion:io,selectRailModel:b0,selectRespondMode:g0,selectSessionById:$r,selectShouldObserve:cr,useAppStore:ne},Symbol.toStringTag,{value:"Module"})),zi={THEME:"copilot_ui_theme_v1",LAYOUT:"copilot_ui_layout_v1"};class M0{getTheme(){try{return localStorage.getItem(zi.THEME)}catch(t){return console.error("Failed to get theme:",t),null}}setTheme(t){try{localStorage.setItem(zi.THEME,t)}catch(n){console.error("Failed to set theme:",n)}}getLayout(){try{return localStorage.getItem(zi.LAYOUT)}catch(t){return console.error("Failed to get layout:",t),null}}setLayout(t){try{localStorage.setItem(zi.LAYOUT,t)}catch(n){console.error("Failed to set layout:",n)}}getStorageStats(){let t=0;for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);if(r&&r.startsWith("copilot_ui_")){const s=localStorage.getItem(r);t+=(r.length+((s==null?void 0:s.length)||0))*2}}return{estimatedSize:`${(t/1024).toFixed(1)} KB`}}}const zy=new M0,Xd={collapsed:!1,widthPx:260,collapsedWidthPx:72,minWidthPx:180,maxWidthPx:520},Vr={widthPx:520,minWidthPx:420,maxWidthPx:840},By={v:2,sidebar:Xd,inspector:Vr,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:null},splitSizesPx:{}},$h=e=>{const t=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`;return`${e}-${t}`},Qn=e=>e.type==="leaf"?[e.id]:[...Qn(e.children[0]),...Qn(e.children[1])],ni=e=>e.type==="leaf"?[]:[e.id,...ni(e.children[0]),...ni(e.children[1])],A0=(e,t)=>{for(const[n,r]of Object.entries(e))if(r===t)return n;return null},R0=(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},Uu=(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:[Uu(e.children[0],t,n,r,s),Uu(e.children[1],t,n,r,s)]},qu=(e,t)=>{if(e.type==="leaf")return e.id===t?{node:null,removed:!0}:{node:e,removed:!1};const n=qu(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=qu(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}},j0=e=>({v:2,sidebar:e.sidebar,inspector:e.inspector,tree:e.tree,activeLeafId:e.activeLeafId,leafSessionIds:e.leafSessionIds,splitSizesPx:e.splitSizesPx}),I0=e=>{try{zy.setLayout(JSON.stringify(e))}catch(t){console.warn("[uiLayoutStore] Failed to persist layout:",t)}},yr=e=>{const t=j0(e);return I0(t),t},O0=e=>{var y,x,S,_,E,T,P,C,A,I,L;const t={...Xd,...e.sidebar||{}},n={...Vr},r=((y=e.view)==null?void 0:y.mode)??"single",s=((x=e.view)==null?void 0:x.twoDirection)??"horizontal",o={...((S=e.panes)==null?void 0:S.sessionIds)||{}},a=((_=e.panes)==null?void 0:_.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",F=s,te=F==="horizontal"?{type:"split",id:$,layout:F,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"rt"}]}:{type:"split",id:$,layout:F,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},N=F==="horizontal"?((E=e.split)==null?void 0:E.twoHorizontalPx)||((T=e.split)==null?void 0:T.columnsPx)||null:((P=e.split)==null?void 0:P.twoVerticalPx)||((C=e.split)==null?void 0:C.leftRowsPx)||null;N&&(i[$]=N);const O=Qn(te);return{v:2,sidebar:t,inspector:n,tree:te,activeLeafId:O.includes(a)?a:O[0],leafSessionIds:Object.fromEntries(O.map(Q=>[Q,o[Q]??null])),splitSizesPx:i}}const c="split-root",d="split-left",f="split-right",m={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"}]}]};(A=e.split)!=null&&A.columnsPx&&(i[c]=e.split.columnsPx),(I=e.split)!=null&&I.leftRowsPx&&(i[d]=e.split.leftRowsPx),(L=e.split)!=null&&L.rightRowsPx&&(i[f]=e.split.rightRowsPx);const g=Qn(m);return{v:2,sidebar:t,inspector:n,tree:m,activeLeafId:g.includes(a)?a:g[0],leafSessionIds:Object.fromEntries(g.map($=>[$,o[$]??null])),splitSizesPx:i}},$0=e=>{if(!e)return null;try{const t=JSON.parse(e);if(!t||typeof t!="object")return null;if(t.v===2){const n={...Xd,...t.sidebar||{}},r=t.inspector||{},s={...Vr,...r},o=Math.max(Vr.minWidthPx,Number.isFinite(s.minWidthPx)?s.minWidthPx:Vr.minWidthPx),a=Math.max(o,Math.max(Vr.maxWidthPx,Number.isFinite(s.maxWidthPx)?s.maxWidthPx:Vr.maxWidthPx)),c={widthPx:Math.max(o,Math.min(a,Number.isFinite(s.widthPx)?s.widthPx:Vr.widthPx)),minWidthPx:o,maxWidthPx:a},d=t.tree||By.tree,f=Qn(d),m=ni(d),g={};f.forEach(_=>{var E;g[_]=typeof((E=t.leafSessionIds)==null?void 0:E[_])=="string"?t.leafSessionIds[_]:null});const y={};m.forEach(_=>{var T;const E=(T=t.splitSizesPx)==null?void 0:T[_];Array.isArray(E)&&E.length>=2&&(y[_]=[Number(E[0]),Number(E[1])])});const x=typeof t.activeLeafId=="string"&&f.includes(t.activeLeafId)?t.activeLeafId:f[0],S=R0(f,g);return{v:2,sidebar:n,inspector:c,tree:d,activeLeafId:x,leafSessionIds:S,splitSizesPx:y}}return t.v===1?O0(t):null}catch{return null}},L0=()=>$0(zy.getLayout())??By,vt=ns(e=>({...L0(),setSidebarCollapsed:t=>{e(n=>n.sidebar.collapsed===t?n:yr({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:yr({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:yr({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||!Qn(n.tree).includes(t)?n:(Jn("setActiveLeafId",{from:n.activeLeafId,to:t}),yr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:t,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})))},setLeafSessionId:(t,n)=>{e(r=>{const s=Qn(r.tree);if(!s.includes(t)||(r.leafSessionIds[t]??null)===n)return r;const o=[];Jn("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&&Jn("setLeafSessionId dedupe",{sessionId:n,clearedLeafIds:o,assignedLeafId:t}),s.forEach(i=>{i in a||(a[i]=null)}),yr({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?yr({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=Qn(r.tree);if(!s.includes(t)||s.length>=4)return r;const o=$h("split"),a=$h("pane"),i=Uu(r.tree,t,n,o,a),c={...r.leafSessionIds,[a]:null};return yr({sidebar:r.sidebar,inspector:r.inspector,tree:i,activeLeafId:a,leafSessionIds:c,splitSizesPx:r.splitSizesPx})})},closeLeaf:t=>{e(n=>{const r=Qn(n.tree);if(!r.includes(t)||r.length<=1)return n;const s=qu(n.tree,t);if(!s.removed||!s.node)return n;const o=s.node,a=Qn(o),i=ni(o),c={};a.forEach(m=>{c[m]=n.leafSessionIds[m]??null});const d={};i.forEach(m=>{const g=n.splitSizesPx[m];g&&(d[m]=g)});const f=n.activeLeafId===t?a[0]:a.includes(n.activeLeafId)?n.activeLeafId:a[0];return yr({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:yr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:r.leafSessionIds,splitSizesPx:{...r.splitSizesPx,[t]:n}})})},pruneSplitSizes:()=>{e(t=>{const n=new Set(ni(t.tree)),r={};for(const[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:yr({sidebar:t.sidebar,inspector:t.inspector,tree:t.tree,activeLeafId:t.activeLeafId,leafSessionIds:t.leafSessionIds,splitSizesPx:r})})}})),D0=async(e,t)=>{var a;const n=ne.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=ne.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)},F0=(e,t)=>{const{activeLeafId:n,leafSessionIds:r,setLeafSessionId:s,setActiveLeafId:o}=vt.getState(),a=A0(r,e),i=r[n]??null;Jn("openSession (input)",{activeLeafId:n,activeLeafSessionId:i,sessionId:e,existingLeafId:a}),a?a===n?Jn("openSession (decision)",{action:"noop_already_active",leafId:n,sessionId:e}):(o(a),Jn("openSession (decision)",{action:"focus_existing_leaf",leafId:a,sessionId:e})):(s(n,e),Jn("openSession (decision)",{action:"assign_to_active_leaf",leafId:n,sessionId:e})),ne.getState().selectSession(e),D0(e,t)},Wy=e=>e==="child"?"child":"root",N0=e=>({id:e.id,title:e.title,kind:Wy(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}}),z0=(e,t)=>e.id===t.id&&e.title===t.title&&e.kind===Wy(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),B0=(()=>{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&&z0(i,a)?i:N0(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)}})(),W0=e=>[e.title,e.id,e.kind||"root",e.config.workspacePath||"",e.config.systemPromptId||"",e.updatedAt||"",e.createdByScheduleId||"",e.lastRunStatus||"",e.lastRunError||""].join(" ").toLowerCase(),U0=e=>e.messages.filter(t=>t.role==="user"&&"content"in t).slice(0,3).map(t=>"content"in t?t.content:"").join(" ").toLowerCase(),Yc=(e,t)=>{if(!t)return!0;const n=t.split(/\s+/).filter(Boolean),r=W0(e);if(n.every(i=>r.includes(i)))return!0;const s=ne.getState().chats.find(i=>i.id===e.id);if(!s)return!1;const o=U0(s),a=`${r} ${o}`;return n.every(i=>a.includes(i))},Xc=(e,t,n)=>{switch(t){case"pinned":return!!e.pinned;case"running":return n(e.id);case"child":return e.kind==="child";case"all":default:return!0}},q0=()=>{const{t:e}=Ge(),{message:t}=Dn.useApp(),{chats:n,currentSessionId:r,deleteSession:s,deleteSessions:o,pinSession:a,unpinSession:i,updateSession:c,addChat:d,refreshChats:f,lastSelectedPromptId:m,systemPrompts:g}=ne(Ha(ye=>({chats:B0(ye.chats),currentSessionId:ye.currentSessionId,deleteSession:ye.deleteSession,deleteSessions:ye.deleteSessions,pinSession:ye.pinSession,unpinSession:ye.unpinSession,updateSession:ye.updateSession,addChat:ye.addChat,refreshChats:ye.refreshChats,lastSelectedPromptId:ye.lastSelectedPromptId,systemPrompts:ye.systemPrompts}))),y=b.useCallback(ye=>fi(ye)(ne.getState()),[]),{sidebarCollapsed:x,setSidebarCollapsed:S,clearSessionFromAllLeaves:_}=vt(Ha(ye=>({sidebarCollapsed:ye.sidebar.collapsed,setSidebarCollapsed:ye.setSidebarCollapsed,clearSessionFromAllLeaves:ye.clearSessionFromAllLeaves}))),E=b.useCallback(async(ye,Ue)=>{var Ie,wt;const $e=g.find(B=>B.id===m),Ke=($e==null?void 0:$e.id)||(g.length>0?((Ie=g.find(B=>B.id==="general_assistant"))==null?void 0:Ie.id)||g[0].id:""),Xt={title:ye||e("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:Ke,baseSystemPrompt:($e==null?void 0:$e.content)||(g.length>0?((wt=g.find(B=>B.id==="general_assistant"))==null?void 0:wt.content)||g[0].content:""),lastUsedEnhancedPrompt:null},...Ue},Fn=await d(Xt),{activeLeafId:tn}=vt.getState();vt.getState().setLeafSessionId(tn,Fn),vt.getState().setActiveLeafId(tn)},[d,m,g,e]),[T,P]=b.useState(!1),[C,A]=b.useState(new Set(["Today"])),[I,L]=b.useState(""),[$,F]=b.useState("all"),[te,N]=b.useState({}),O=ne(Ha(ye=>{const Ue=ye.currentSessionId;if(!Ue)return null;const $e=ye.chats.find(Ke=>Ke.id===Ue);return $e?{id:$e.id,kind:$e.kind,parentSessionId:$e.parentSessionId||null,rootSessionId:$e.rootSessionId||null,pinned:!!$e.pinned,createdAt:$e.createdAt,createdByScheduleId:$e.createdByScheduleId||null}:null})),Q=b.useMemo(()=>O?O.pinned?"Pinned":O.createdByScheduleId?"Scheduled":new Date(O.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):null,[O]),W=b.useMemo(()=>{const ye=new Set(C);return Q&&ye.add(Q),Array.from(ye)},[Q,C]),z=ye=>{const Ue=new Set(Array.isArray(ye)?ye:[ye]);A($e=>{if($e.size!==Ue.size)return Ue;for(const Ke of Ue)if(!$e.has(Ke))return Ue;return $e})},pe=I.trim().toLowerCase(),Z=pe.length>0||$!=="all",ce=b.useMemo(()=>[],[]),ve=b.useMemo(()=>({}),[]),G=b.useMemo(()=>({}),[]),he=b.useMemo(()=>[],[]),_e=b.useMemo(()=>new Set,[]),ie=b.useMemo(()=>x?ce:n.filter(ye=>ye.kind!=="child"),[n,x,ce]),ue=b.useMemo(()=>{if(x)return ve;const ye={};for(const Ue of n){if(Ue.kind!=="child")continue;const $e=Ue.parentSessionId||Ue.rootSessionId;$e&&(ye[$e]||(ye[$e]=[]),ye[$e].push(Ue))}return Object.keys(ye).forEach(Ue=>{ye[Ue].sort(($e,Ke)=>{if($e.pinned!==Ke.pinned)return $e.pinned?-1:1;const Xt=Date.parse($e.updatedAt||"")||$e.createdAt||0;return(Date.parse(Ke.updatedAt||"")||Ke.createdAt||0)-Xt})}),ye},[n,x,ve]),me=b.useMemo(()=>Z?ie.filter(ye=>Yc(ye,pe)&&Xc(ye,$,y)?!0:(ue[ye.id]||[]).some(Ke=>Yc(Ke,pe)&&Xc(Ke,$,y))):ie,[ue,Z,y,pe,ie,$]),ke=b.useMemo(()=>{if(!Z)return ue;const ye={};for(const Ue of me){const $e=ue[Ue.id]||[];ye[Ue.id]=$e.filter(Ke=>Yc(Ke,pe)&&Xc(Ke,$,y))}return ye},[ue,me,Z,y,pe,$]),De=b.useMemo(()=>x?G:fw(me),[me,x,G]),Fe=b.useMemo(()=>x?he:hw(De),[De,x,he]),j=b.useCallback(ye=>{a(ye),A(Ue=>{if(Ue.has("Pinned"))return Ue;const $e=new Set(Ue);return $e.add("Pinned"),$e})},[a]),se=b.useCallback(ye=>{const Ue=n.find(Ke=>Ke.id===ye),$e=Ue?mw({...Ue}):null;i(ye),$e&&A(Ke=>{if(Ke.has($e))return Ke;const Xt=new Set(Ke);return Xt.add($e),Xt})},[n,i]),ge=ye=>{il.confirm({title:e("chat.sidebar.delete.title"),content:e("chat.sidebar.delete.confirm"),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{_(ye),s(ye)}})},we=Ya(ye=>ye.open),He=()=>{we("chat")},xt=b.useCallback(ye=>{L(ye)},[]),ot=b.useCallback(ye=>{F(ye)},[]),et=(ye,Ue)=>{c(ye,{title:Ue})},$t=b.useCallback(async ye=>{try{await tr.getInstance().regenerateSessionTitle(ye)}catch(Ue){console.error("Failed to regenerate session title:",Ue)}},[]),Yt=b.useCallback(async ye=>{var $e;if((($e=te[ye])==null?void 0:$e.status)==="loading")return;N(Ke=>({...Ke,[ye]:{status:"loading"}}));const Ue=t.loading(e("chat.actions.runProjectDreamRunning"),0);try{const Ke=await tr.getInstance().runProjectDream(ye);Ue(),Ke.dream_generated?t.success(e("chat.actions.runProjectDreamSuccess")):t.info(Ke.message||e("chat.actions.runProjectDreamNoChange"));try{await f()}catch(Xt){console.warn("Failed to refresh chats after project dream run:",Xt)}}catch(Ke){Ue();const Xt=Ke instanceof Error&&Ke.message?Ke.message:e("chat.actions.runProjectDreamFailed");t.error(Xt),console.error("Failed to run project dream:",Ke)}finally{N(Ke=>({...Ke,[ye]:{status:"idle"}}))}},[t,te,f,e]),Lt=ye=>{const Ue=pw(De,ye),$e=ay(De,ye);il.confirm({title:e("chat.sidebar.deleteByDate.title",{date:ye}),content:e("chat.sidebar.deleteByDate.confirm",{count:$e,date:ye}),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{Ue.forEach(Ke=>_(Ke)),o(Ue)}})},On=()=>{P(!0)},jt=()=>{P(!1)},Mn=async ye=>{try{await E(e("chat.sidebar.newSessionWithPrompt",{prompt:ye.name}),{config:{systemPromptId:ye.id,baseSystemPrompt:ye.content,lastUsedEnhancedPrompt:null}}),P(!1)}catch(Ue){console.error("Failed to create chat:",Ue),il.error({title:e("chat.sidebar.createFailedTitle"),content:Ue instanceof Error?Ue.message:e("chat.sidebar.createFailedUnknown")})}},yt=b.useCallback(ye=>F0(ye),[]),[Cn,yn]=b.useState(new Set),Bt=b.useMemo(()=>{if(x)return _e;const ye=new Set;for(const Ue of Object.values(ue))for(const $e of Ue)if($e.pinned){const Ke=$e.parentSessionId||$e.rootSessionId;Ke&&ye.add(Ke)}return ye},[ue,x,_e]),Qt=b.useMemo(()=>{var Ue;if(x)return _e;const ye=new Set(Cn);if((O==null?void 0:O.kind)==="child"){const $e=O.parentSessionId||O.rootSessionId;$e&&ye.add($e)}for(const $e of Bt)ye.add($e);if(Z)for(const $e of me)(((Ue=ke[$e.id])==null?void 0:Ue.length)??0)>0&&ye.add($e.id);return ye},[ke,Cn,me,Z,Bt,O,x,_e]),hn=b.useCallback(ye=>{yn(Ue=>{const $e=new Set(Ue);return $e.has(ye)?$e.delete(ye):$e.add(ye),$e})},[]);return{chats:me,childrenByRoot:ke,expandedRootIds:Qt,toggleRootExpanded:hn,collapsed:x,currentSessionId:r,expandedKeys:W,groupedChatsByDate:De,hasActiveFilters:Z,handleCollapseChange:z,handleDelete:ge,handleDeleteByDate:Lt,handleEditTitle:et,handleGenerateTitle:$t,handleNewChat:On,handleNewChatSelectorClose:jt,handleOpenSettings:He,handleRunProjectDream:Yt,handleSearchQueryChange:xt,handleStatusFilterChange:ot,handleSystemPromptSelect:Mn,isNewChatSelectorOpen:T,pinSession:j,projectDreamState:te,searchQuery:I,selectSession:yt,setCollapsed:S,sortedDateKeys:Fe,statusFilter:$,systemPrompts:g,titleGenerationState:{},unpinSession:se}},H0=b.lazy(()=>en(()=>import("./index-CW352hcn.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),{useBreakpoint:Y0}=Vl,{useToken:X0}=dt,Lh=()=>{const{token:e}=X0(),{t}=Ge(),n=Y0(),{childrenByRoot:r,expandedRootIds:s,toggleRootExpanded:o,collapsed:a,currentSessionId:i,expandedKeys:c,groupedChatsByDate:d,handleCollapseChange:f,handleDelete:m,handleDeleteByDate:g,handleEditTitle:y,handleGenerateTitle:x,handleNewChat:S,handleNewChatSelectorClose:_,handleOpenSettings:E,handleRunProjectDream:T,handleSearchQueryChange:P,handleStatusFilterChange:C,handleSystemPromptSelect:A,hasActiveFilters:I,isNewChatSelectorOpen:L,pinSession:$,projectDreamState:F,searchQuery:te,selectSession:N,setCollapsed:O,sortedDateKeys:Q,statusFilter:W,systemPrompts:z,titleGenerationState:pe,unpinSession:Z}=q0(),{xs:ce,sm:ve}=n;return b.useEffect(()=>{typeof ce!="boolean"||typeof ve!="boolean"||ce===!1&&ve===!1&&O(!0)},[ve,ce,O]),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(Pe,{justify:"flex-end",style:{flexShrink:0,padding:"8px 10px 0 10px",minHeight:34},children:l.jsx(je,{type:"text",icon:l.jsx(Cx,{}),onClick:()=>O(!0),size:n.xs?"small":"middle",className:"lotus-toolbar-icon","aria-label":t("chat.sidebar.collapse","Collapse sidebar")})}),l.jsxs(Pe,{vertical:!0,gap:6,style:{flexShrink:0,padding:"6px 10px 6px 10px"},children:[l.jsx($s,{allowClear:!0,value:te,onChange:G=>P(G.target.value),prefix:l.jsx(Ru,{style:{color:e.colorTextTertiary}}),placeholder:t("chat.sidebar.searchPlaceholder","Search sessions"),"aria-label":t("chat.sidebar.searchPlaceholder","Search sessions"),size:"small",style:{borderRadius:e.borderRadiusLG}}),l.jsx(kx,{block:!0,size:n.xs?"middle":"small",value:W,onChange:G=>C(G),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(Pe,{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(gw,{groupedChatsByDate:d,childrenByRoot:r,expandedRootIds:s,onToggleRootExpanded:o,sortedDateKeys:Q,expandedKeys:c,onCollapseChange:f,currentSessionId:i,onSelectChat:N,onDeleteChat:m,onDeleteByDate:g,onPinChat:$,onUnpinChat:Z,onEditTitle:y,onGenerateTitle:x,onRunProjectDream:T,titleGenerationState:pe,projectDreamState:F,token:e,hasActiveFilters:I})}),l.jsx(Tw,{collapsed:!1,onNewChat:S,onOpenSettings:E,token:e}),l.jsx(b.Suspense,{fallback:null,children:l.jsx(H0,{open:L,onClose:_,onSelect:A,prompts:z,title:t("chat.prompt.newSessionSelectorTitle"),showCancelButton:!0})})]})},{Text:Dh,Paragraph:K0}=ht;class ri extends b.Component{constructor(n){super(n);Rt(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(V0,{error:r,onReset:this.handleReset})}}const V0=({error:e,onReset:t})=>{const{token:n}=dt.useToken(),[r,s]=ft.useState(!1),{t:o}=Ge();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(Vg,{style:{fontSize:36,color:n.colorWarning}}),l.jsx(Dh,{strong:!0,style:{fontSize:16},children:o("app.errorBoundary.title")}),l.jsx(Dh,{type:"secondary",style:{maxWidth:420},children:o("app.errorBoundary.description")}),l.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[l.jsx(je,{type:"primary",icon:l.jsx($d,{}),onClick:t,"aria-label":o("app.errorBoundary.tryAgain"),children:o("app.errorBoundary.tryAgain")}),l.jsx(je,{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(K0,{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}`:""]})]})},Fh={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},Kd=ns()(Zw(e=>({settings:Fh,updateSettings:t=>e(n=>({settings:{...n.settings,...t}})),resetSettings:()=>e({settings:Fh})}),{name:"mermaid-settings"})),Vd=()=>Kd(t=>t.settings),v$=()=>Kd(e=>e.updateSettings),b$=()=>Kd(e=>e.resetSettings),G0=()=>{const{token:e}=dt.useToken(),t=Vd(),n=b.useRef("");b.useEffect(()=>{const r=J0(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),Id.initialize({startOnLoad:!1,theme:o,securityLevel:"loose",suppressErrorRendering:!0,fontSize:t.fontSize,themeVariables:Object.keys(t.themeVariables).length>0?t.themeVariables:void 0,flowchart:{useMaxWidth:t.useMaxWidth,htmlLabels:!0,curve:t.flowchartCurve,nodeSpacing:t.flowchartNodeSpacing,rankSpacing:t.flowchartRankSpacing},sequence:{useMaxWidth:t.useMaxWidth,diagramMarginX:10,diagramMarginY:10,actorMargin:t.sequenceActorMargin,width:t.sequenceWidth,height:t.sequenceHeight,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:t.sequenceMessageMargin,mirrorActors:!0,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1},gantt:{useMaxWidth:t.useMaxWidth,leftPadding:75,gridLineStartPadding:35,barHeight:t.ganttBarHeight,barGap:4,topPadding:t.ganttTopPadding},journey:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center"},timeline:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35},gitGraph:{useMaxWidth:t.useMaxWidth,showBranches:!0,showCommitLabel:!0},c4:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10},sankey:{useMaxWidth:t.useMaxWidth},xyChart:{useMaxWidth:t.useMaxWidth},block:{useMaxWidth:t.useMaxWidth,padding:8}})},[e,t])};function J0(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}Id.initialize({startOnLoad:!1,theme:"dark",securityLevel:"loose",suppressErrorRendering:!0});Id.parseError=function(e){console.warn("Mermaid parse error (handled gracefully):",e)};const Nh=new Map,Q0=/^(\s*%%\{[\s\S]*?\}%%\s*)*\s*gantt\b/i,Z0=e=>e.replace(/:/g,":").replace(/,/g,",").replace(/;/g,";").replace(/(/g,"(").replace(/)/g,")").replace(/-/g,"-"),eC=e=>(Q0.test(e)?Z0(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}]`}),tC=200,xr=new Map,ul=new Map;let Kc=null;const nC=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 rC(){Kc||(Kc=en(()=>import("./vendor-mermaid-D1_CPXHE.js").then(t=>t.bP),__vite__mapDeps([4,3,2]),import.meta.url));const e=await Kc;return e.default??e}function sC(e,t){if(xr.has(e)&&xr.delete(e),xr.set(e,t),xr.size>tC){const n=xr.keys().next().value;n&&xr.delete(n)}}function dl(e){const t=xr.get(e);return t?(xr.delete(e),xr.set(e,t),t):null}function zh(){xr.clear(),ul.clear()}function oC(e,t){const n=dl(e);if(n)return Promise.resolve(n);const r=ul.get(e);if(r)return r;const s=(async()=>{var T,P;const o=await rC();await o.parse(t);const a=`mermaid-${e}`,i=document.createElement("div"),c=Math.max(1600,window.innerWidth||0,((T=document.documentElement)==null?void 0:T.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),m=nC(f);if(m>0)throw new Error(`Mermaid rendered invalid SVG (${m} rect widths < 0)`);const x=new DOMParser().parseFromString(f,"image/svg+xml").querySelector("svg");let S=800,_=300;if(x){const C=x.getAttribute("viewBox");if(C){const A=C.split(/\s+/).map(Number);A.length===4&&(S=A[2]||800,_=A[3]||300)}if(S===800&&_===300){const A=document.createElement("div");A.style.cssText="position:absolute;visibility:hidden;width:800px;",A.innerHTML=f,document.body.appendChild(A);const I=(P=A.querySelector("svg"))==null?void 0:P.getBoundingClientRect();I&&(S=I.width,_=I.height),document.body.removeChild(A)}}const E={svg:f,width:S,height:_};return sC(e,E),E})().finally(()=>{ul.delete(e)});return ul.set(e,s),s}const Ia=new Map,fl=new Set,Hs=new Map,lo=new Map;let fs=null;const Uy=(e,t)=>{const n=Ia.get(e);n&&n.forEach(r=>r(t))},Vc=()=>{if(fs=null,lo.size===0)return;const e=Array.from(lo.values());lo.clear(),e.forEach(t=>{Uy(t.messageId,t.content),fl.forEach(n=>n(t))})},Ut={getLatest(e){return Hs.get(e)??null},subscribeMessage(e,t){let n=Ia.get(e);return n||(n=new Set,Ia.set(e,n)),n.add(t),Hs.has(e)&&t(Hs.get(e)??null),()=>{const r=Ia.get(e);r&&(r.delete(t),r.size===0&&Ia.delete(e))}},subscribe(e){return fl.add(e),()=>{fl.delete(e)}},publish(e){if(e.transient){lo.set(e.messageId,e),fs===null&&(fs=requestAnimationFrame(Vc));return}e.content===null?Hs.delete(e.messageId):Hs.set(e.messageId,e.content),lo.set(e.messageId,e),fs===null&&(fs=requestAnimationFrame(Vc))},clear(e,t){Hs.delete(t),lo.delete(t),Uy(t,null),fl.forEach(n=>n({sessionId:e,messageId:t,content:null}))},forceFlush(){fs!==null&&(cancelAnimationFrame(fs),Vc())}},Rr={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function qy(e){return"init"in e}function Hu(e){return typeof e.write=="function"}function aC(e){return!!e.onMount}function Bh(e){return"v"in e||"e"in e}function Rl(e){if("e"in e)throw e.e;if((Rr?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}function jl(e){return typeof(e==null?void 0:e.then)=="function"}function Hy(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Yy(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 iC(e){return!!e.INTERNAL_onInit}const lC=(e,t,n,...r)=>n.read(...r),cC=(e,t,n,...r)=>n.write(...r),uC=(e,t,n)=>n.INTERNAL_onInit(t),dC=(e,t,n,r)=>{var s;return(s=n.onMount)==null?void 0:s.call(n,r)},fC=(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),iC(n)&&i(e,t,n)}return o},hC=(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=m=>{try{m()}catch(g){d.push(g)}};do{i.f&&f(i.f);const m=new Set;for(const g of s){const y=(n=r.get(g))==null?void 0:n.l;if(y)for(const x of y)m.add(x)}s.clear();for(const g of a)m.add(g);a.clear();for(const g of o)m.add(g);o.clear();for(const g of m)f(g);s.size&&c(e,t)}while(s.size||a.size||o.size);if(d.length)throw new AggregateError(d)},pC=(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,m=new WeakSet,g=[],y=[];for(const x of s)g.push(x),y.push(o(e,t,x));for(;g.length;){const x=g.length-1,S=g[x],_=y[x];if(m.has(S)){g.pop(),y.pop();continue}if(f.has(S)){if(r.get(S)===_.n)c.push(S),d.push(_);else if((Rr?"production":void 0)!=="production"&&r.has(S))throw new Error("[Bug] invalidated atom exists");m.add(S),g.pop(),y.pop();continue}f.add(S);for(const E of Yy(S,_,n))f.has(E)||(g.push(E),y.push(o(e,t,E)))}for(let x=c.length-1;x>=0;--x){const S=c[x],_=d[x];let E=!1;for(const T of _.d.keys())if(T!==S&&s.has(T)){E=!0;break}E&&(r.set(S,_.n),a(e,t,S),i(e,t,S)),r.delete(S)}},Yu=new WeakSet,mC=(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],m=e[12],g=e[13],y=e[14],x=e[16],S=e[17],_=e[20],E=e[26],T=e[28],P=f(e,t,n),C=T[0];if(Bh(P)){if(o.has(n)&&a.get(n)!==P.n||P.m===C)return P.m=C,P;let z=!1;for(const[pe,Z]of P.d)if(y(e,t,pe).n!==Z){z=!0;break}if(!z)return P.m=C,P}let A=!0;const I=new Set(P.d.keys()),L=()=>{for(const z of I)P.d.delete(z)},$=()=>{if(o.has(n)){const z=!i.size;S(e,t,n),z&&(g(e,t),m(e,t))}},F=z=>{var pe;if(z===n){const ce=f(e,t,z);if(!Bh(ce))if(qy(z))_(e,t,z,z.init);else throw new Error("no atom init");return Rl(ce)}const Z=y(e,t,z);try{return Rl(Z)}finally{I.delete(z),P.d.set(z,Z.n),jl(P.v)&&Hy(n,P.v,Z),o.has(n)&&((pe=o.get(z))==null||pe.t.add(n)),A||$()}};let te,N;const O={get signal(){return te||(te=new AbortController),te.signal},get setSelf(){return(Rr?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(Rr?"production":void 0)!=="production"&&!Hu(n)&&console.warn("setSelf function cannot be used with read-only atom"),!N&&Hu(n)&&(N=(...z)=>{if((Rr?"production":void 0)!=="production"&&A&&console.warn("setSelf function cannot be called in sync"),!A)try{return x(e,t,n,z)}finally{g(e,t),m(e,t)}}),N}},Q=P.n,W=a.get(n)===Q;try{(Rr?"production":void 0)!=="production"&&Yu.delete(t);const z=d(e,t,n,F,O);if((Rr?"production":void 0)!=="production"&&Yu.has(t)&&console.warn("Detected store mutation during atom read. This is not supported."),_(e,t,n,z),jl(z)){E(e,t,z,()=>te==null?void 0:te.abort());const pe=()=>{L(),$()};z.then(pe,pe)}else L();return(r=c.r)==null||r.call(c,n),P.m=C,P}catch(z){return delete P.v,P.e=z,++P.n,P.m=C,P}finally{A=!1,P.n!==Q&&W&&(a.set(n,P.n),i.add(n),(s=c.c)==null||s.call(c,n))}},gC=(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 Yy(i,c,r)){const f=o(e,t,d);s.get(d)!==f.n&&(s.set(d,f.n),a.push(d))}}},yC=(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],m=e[15],g=e[16],y=e[17],x=e[20],S=e[28];let _=!0;const E=P=>Rl(f(e,t,P)),T=(P,...C)=>{var A;const I=i(e,t,P);try{if(P===n){if(!qy(P))throw new Error("atom not writable");(Rr?"production":void 0)!=="production"&&Yu.add(t);const L=I.n,$=C[0];x(e,t,P,$),y(e,t,P),L!==I.n&&(++S[0],s.add(P),m(e,t,P),(A=o.c)==null||A.call(o,P));return}else return g(e,t,P,C)}finally{_||(d(e,t),c(e,t))}};try{return a(e,t,n,E,T,...r)}finally{_=!1}},vC=(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],m=i(e,t,n),g=s.get(n);if(g&&m.d.size>0){for(const[y,x]of m.d)if(!g.d.has(y)){const S=i(e,t,y);d(e,t,y).t.add(n),g.d.add(y),x!==S.n&&(o.add(y),c(e,t,y),(r=a.c)==null||r.call(a,y))}for(const y of g.d)if(!m.d.has(y)){g.d.delete(y);const x=f(e,t,y);x==null||x.t.delete(n)}}},bC=(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],m=e[14],g=e[16],y=e[18],x=c(e,t,n);let S=s.get(n);if(!S){m(e,t,n);for(const _ of x.d.keys())y(e,t,_).t.add(n);if(S={l:new Set,d:new Set(x.d.keys()),t:new Set},s.set(n,S),Hu(n)&&aC(n)){const _=()=>{let E=!0;const T=(...P)=>{try{return g(e,t,n,P)}finally{E||(f(e,t),d(e,t))}};try{const P=i(e,t,n,T);P&&(S.u=()=>{E=!0;try{P()}finally{E=!1}})}finally{E=!1}};o.add(_)}(r=a.m)==null||r.call(a,n)}return S},SC=(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 m=o.get(n);if(!m||m.l.size)return m;let g=!1;for(const y of m.t)if((r=o.get(y))!=null&&r.d.has(n)){g=!0;break}if(!g){m.u&&a.add(m.u),m=void 0,o.delete(n);for(const y of f.d.keys()){const x=d(e,t,y);x==null||x.t.delete(n)}(s=i.u)==null||s.call(i,n);return}return m},xC=(e,t,n,r)=>{const s=e[11],o=e[27],a=s(e,t,n),i="v"in a,c=a.v;if(jl(r))for(const d of a.d.keys())Hy(n,r,s(e,t,d));a.v=r,delete a.e,(!i||!Object.is(c,a.v))&&(++a.n,jl(c)&&o(e,t,c))},wC=(e,t,n)=>{const r=e[14];return Rl(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))}},CC=(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)}},kC=(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)},TC=(e,t,n)=>{const s=e[25].get(n);s==null||s.forEach(o=>o())},Xy=new WeakMap;function PC(e){const t=Xy.get(e);if((Rr?"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 EC(...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,{},lC,cC,uC,dC,fC,hC,pC,mC,gC,yC,vC,bC,SC,xC,wC,_C,CC,void 0,new WeakMap,kC,TC,[0]].map((a,i)=>e[i]||a);Xy.set(t,Object.freeze(n));const r=n[21],s=n[22],o=n[23];return t}const Ky={};let MC=0;function Tr(e,t){const n=`atom${++MC}`,r={toString(){return(Ky?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=AC,r.write=RC),t&&(r.write=t),r}function AC(e){return e(this)}function RC(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function Ql(){return EC()}let Wo;function jC(){return Wo||(Wo=Ql(),(Ky?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Wo),globalThis.__JOTAI_DEFAULT_STORE__!==Wo&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Wo}const IC=b.createContext(void 0);function OC(e){const t=b.useContext(IC);return(e==null?void 0:e.store)||t||jC()}const Xu=e=>typeof(e==null?void 0:e.then)=="function",Ku=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},$C=ft.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(Ku(e),e)}),Gc=new WeakMap,Wh=(e,t,n)=>{const r=PC(e),s=r[26];let o=Gc.get(t);return o||(o=new Promise((a,i)=>{let c=t;const d=g=>y=>{c===g&&a(y)},f=g=>y=>{c===g&&i(y)},m=()=>{try{const g=n();Xu(g)?(Gc.set(g,o),c=g,g.then(d(g),f(g)),s(r,e,g,m)):a(g)}catch(g){i(g)}};t.then(d(t),f(t)),s(r,e,t,m)}),Gc.set(t,o)),o};function LC(e,t){const{delay:n,unstable_promiseStatus:r=!ft.use}=t||{},s=OC(t),[[o,a,i],c]=b.useReducer(f=>{const m=s.get(e);return Object.is(f[0],m)&&f[1]===s&&f[2]===e?f:[m,s,e]},void 0,()=>[s.get(e),s,e]);let d=o;if((a!==s||i!==e)&&(c(),d=s.get(e)),b.useEffect(()=>{const f=s.sub(e,()=>{if(r)try{const m=s.get(e);Xu(m)&&Ku(Wh(s,m,()=>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]),b.useDebugValue(d),Xu(d)){const f=Wh(s,d,()=>s.get(e));return r&&Ku(f),$C(f)}return d}function Gd(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 nr=e=>(e??"").trim(),Vy=(...e)=>{const t=e.map(nr);return t.some(n=>!n)?"":t.join("::")},Il=(e,t,n,r)=>n?e.get(t(n)):r,Jd=(e,t,n,r,s)=>{n&&(e.set(t(n),r),t.remove(n),s==null||s.delete(n))},Gy=(e,t,n,r,s)=>{r&&Array.from(n).forEach(o=>{o.startsWith(r)&&Jd(e,t,o,s,n)})},Zl={content:"",reasoningContent:"",updatedAt:0},vo=Ql(),bo=Gd(e=>Tr(Zl)),DC=Tr(null,(e,t,n)=>{const r=nr(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=bo(r),a=e(o);t(o,{...a,content:a.content+s,updatedAt:Date.now()})}),FC=Tr(null,(e,t,n)=>{const r=nr(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=bo(r),a=e(o);t(o,{...a,reasoningContent:a.reasoningContent+s,updatedAt:Date.now()})}),NC=Tr(null,(e,t,n)=>{const r=nr(n.sessionId);if(!r)return;const s=bo(r),o=e(s);t(s,{content:n.patch.content??o.content,reasoningContent:n.patch.reasoningContent??o.reasoningContent,updatedAt:n.patch.updatedAt??Date.now()})}),zC=(e,t)=>{vo.set(DC,{sessionId:e,chunk:t})},BC=(e,t)=>{vo.set(FC,{sessionId:e,chunk:t})},WC=(e,t)=>{vo.set(NC,{sessionId:e,patch:t})},Jc=e=>{Jd(vo,bo,nr(e),Zl)},Uh=e=>Il(vo,bo,nr(e),Zl),Jy={output:"",status:"idle",updatedAt:0},Qd=new Set,ec=Ql(),Zd=(e,t)=>Vy(e,t),tc=Gd(e=>Tr(Jy)),UC=Tr(null,(e,t,n)=>{const r=Zd(n.sessionId,n.toolCallId);if(!r)return;const s=n.chunk??"";if(!s)return;Qd.add(r);const o=tc(r),a=e(o);t(o,{output:a.output+s,status:"running",updatedAt:Date.now()})}),qC=Tr(null,(e,t,n)=>{const r=Zd(n.sessionId,n.toolCallId);if(!r)return;Qd.add(r);const s=tc(r),o=e(s);t(s,{...o,status:n.status,updatedAt:Date.now()})}),qh=e=>{const t=nr(e);t&&Gy(ec,tc,Qd,`${t}::`,Jy)},HC=(e,t,n)=>{ec.set(UC,{sessionId:e,toolCallId:t,chunk:n})},Qc=(e,t,n)=>{ec.set(qC,{sessionId:e,toolCallId:t,status:n})},nc={outputPreview:"",updatedAt:0},rc=Ql(),ef=(e,t)=>Vy(e,t),tf=new Set,sc=Gd(e=>Tr(nc)),YC=Tr(null,(e,t,n)=>{const r=ef(n.parentSessionId,n.childSessionId);if(!r)return;tf.add(r);const s=sc(r),o=e(s);t(s,{...o,outputPreview:n.outputPreview,updatedAt:Date.now()})}),Hh=(e,t,n)=>{rc.set(YC,{parentSessionId:e,childSessionId:t,outputPreview:n})},XC=(e,t)=>{Jd(rc,sc,ef(e,t),nc,tf)},Yh=e=>{const t=nr(e);t&&Gy(rc,sc,tf,`${t}::`,nc)},KC=(e,t)=>Il(rc,sc,ef(e,t),nc),Vu=e=>{const t=(e??"").trim().toLowerCase();return t.includes("completion policy violation")&&t.includes("conclusion_with_options")},Gu=e=>{const t=(e??"").trim(),n=t?`
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},nf=()=>typeof window<"u"&&!!window.__TAURI_INTERNALS__,Qy="bodhi_notification_prefs",Bi={enabled:!0,onClarification:!0,onToolApproval:!0,onContextPressure:!0,onSubAgentComplete:!1};function Zy(){if(typeof localStorage>"u")return Bi;try{const e=localStorage.getItem(Qy);if(!e)return Bi;const t=JSON.parse(e);return{...Bi,...t}}catch{return Bi}}function S$(e){if(typeof localStorage>"u")return;const n={...Zy(),...e};localStorage.setItem(Qy,JSON.stringify(n))}function VC(e){const t=Zy();if(!t.enabled)return!1;switch(e){case"clarification":return t.onClarification;case"tool_approval":return t.onToolApproval;case"context_pressure":return t.onContextPressure;case"subagent_completed":return t.onSubAgentComplete;default:return!0}}const Ju=new Set,GC=3e4;function JC(e){const t=[e.sessionId??"global",e.eventType];return e.eventId&&t.push(e.eventId),t.join("::")}function QC(e){setTimeout(()=>{Ju.delete(e)},GC)}async function ZC(){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 ek(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 Wi(e){if(!nf()||await ZC()||!VC(e.eventType))return;const n=JC(e);if(!Ju.has(n))try{await ek(e.title,e.body),Ju.add(n),QC(n)}catch{}}function us(...e){}const tk=e=>{const t=e;return(t==null?void 0:t.name)==="AbortError"||(t==null?void 0:t.code)===20},Xh=220,Kh=e=>{const t=e.replace(/\s+/g," ").trim();return t.length<=Xh?t:`${t.slice(0,Xh)}...`},nk=e=>e==="pending"||e==="in_progress"||e==="completed"||e==="blocked",rk=new Set(["completed","error","cancelled","failed"]),sk=1500,ok=120,ak=(e,t)=>{var n,r;return(r=(n=ti(e)(ne.getState()))==null?void 0:n[t])==null?void 0:r.status},Vh=e=>e?rk.has(e):!1,ik=(e,t,n,r)=>{const s=r==null?void 0:r.trim();return s?`${e}:${s}`:`${e}:stats:${t}:${n}`},Ui=e=>{const t=e.trim().toLowerCase();return t==="memory_note"||t==="session_note"},lk=()=>{const e=tr;return typeof e.getInstance=="function"?e.getInstance():new tr},ck=e=>{if(typeof e.pre_permission_mode!="string"||typeof e.entered_at!="string")return null;const t=e.status;return t!=="exploring"&&t!=="designing"&&t!=="reviewing"&&t!=="finalizing"&&t!=="awaiting_approval"?null:{entered_at:e.entered_at,pre_permission_mode:e.pre_permission_mode,plan_file_path:e.plan_file_path??null,status:t}};function uk(){const{message:e}=Dn.useApp(),{addMessage:t,applyAgentEvent:n,markStreamStarted:r,updateTokenUsage:s,setTruncationInfo:o,updateSession:a,updateMessage:i,setTaskList:c,loadTaskList:d,updateTaskListDelta:f,setEvaluationState:m,applyChildProgress:g,persistSessionTitle:y,refreshChatsNow:x,setPendingQuestion:S,clearPendingQuestion:_}=ne(Ha(j=>({addMessage:j.addMessage,applyAgentEvent:j.applyAgentEvent,markStreamStarted:j.markStreamStarted,updateTokenUsage:j.updateTokenUsage,setTruncationInfo:j.setTruncationInfo,updateSession:j.updateSession,updateMessage:j.updateMessage,setTaskList:j.setTaskList,loadTaskList:j.loadTaskList,updateTaskListDelta:j.updateTaskListDelta,setEvaluationState:j.setEvaluationState,applyChildProgress:j.applyChildProgress,persistSessionTitle:j.persistSessionTitle,refreshChatsNow:j.refreshChatsNow,setPendingQuestion:j.setPendingQuestion,clearPendingQuestion:j.clearPendingQuestion}))),E=b.useRef(null);E.current||(E.current=lk());const T=b.useRef(new Set),P=b.useRef(new Map),C=b.useRef(new Map),A=b.useRef(new Map),I=b.useRef(new Map),L=b.useRef(new Map),$=b.useRef(new Map),F=b.useRef(new Map),te=b.useRef(new Map),N=b.useRef(new Map),O=b.useRef(new Map),Q=b.useRef(new Map),W=b.useRef(new Map),z=b.useRef(new Set),pe=b.useRef(new Map),Z=b.useCallback(j=>{const se=pe.current.get(j);se!=null&&se.timer&&clearTimeout(se.timer),pe.current.delete(j)},[]),ce=b.useCallback(j=>{const se=P.current.get(j);se&&(clearTimeout(se),P.current.delete(j))},[]),ve=b.useCallback(j=>{const se=C.current.get(j);se!=null&&se.timer&&clearTimeout(se.timer),C.current.delete(j)},[]),G=b.useCallback((j,se)=>{var ot;const ge=ne.getState(),we=(ot=ge.executionBySession)==null?void 0:ot[j];Re("[SSE]","cleanupChat",{sessionId:j,opts:se??null,generation:(we==null?void 0:we.generation)??null,phase:(we==null?void 0:we.phase)??null,backendRunId:(we==null?void 0:we.backendRunId)??null,shouldObserve:cr(j)(ge)}),Z(j),ce(j),se!=null&&se.clearTitleRetry&&ve(j),z.current.delete(j),I.current.delete(j);for(const[et,$t]of O.current.entries())et.startsWith(`${j}:`)&&($t.timer&&clearTimeout($t.timer),O.current.delete(et));const He=L.current.get(j);if(!He){se!=null&&se.clearDraft&&(Ut.clear(j,`streaming-${j}`),Ut.clear(j,`streaming-reasoning-${j}`),Ut.clear(j,`streaming-status-${j}`),Jc(j),qh(j),Yh(j));return}L.current.delete(j),He.controller.abort(),Ut.forceFlush();const xt=$.current.get(He.sessionId);xt?(se!=null&&se.clearDraft&&(Ut.clear(xt.sessionId,xt.messageId),Ut.clear(xt.sessionId,xt.reasoningMessageId),Ut.clear(xt.sessionId,xt.statusMessageId)),$.current.delete(He.sessionId)):se!=null&&se.clearDraft&&(Ut.clear(j,`streaming-${j}`),Ut.clear(j,`streaming-reasoning-${j}`),Ut.clear(j,`streaming-status-${j}`)),se!=null&&se.clearDraft&&(Jc(j),qh(j),Yh(j))},[ce,Z,ve]),he=b.useCallback((j,se)=>{const ge=`${j}:${se}`,we=O.current.get(ge);we&&(we.timer&&clearTimeout(we.timer),O.current.delete(ge),Hh(j,se,we.content),g(j,se,{status:"running",outputPreview:we.content,lastEventAt:we.lastEventAt}))},[g]),_e=b.useCallback((j,se,ge,we)=>{const He=`${j}:${se}`,xt=O.current.get(He);xt!=null&&xt.timer&&clearTimeout(xt.timer);const ot=setTimeout(()=>{he(j,se)},ok);O.current.set(He,{content:ge,lastEventAt:we,timer:ot})},[he]),ie=b.useCallback(async j=>{const se=j.trim();if(se&&!T.current.has(se)&&!ne.getState().taskLists[se]){T.current.add(se);try{await d(se)}catch(ge){console.warn(`[useAgentEventSubscription] Failed to recover task list baseline for ${se}:`,ge)}finally{T.current.delete(se)}}},[d]),ue=b.useCallback((j,se,ge,we)=>{var $t,Yt;const He=ik(j,se,ge,we);if(A.current.get(j)===He)return!1;const ot=($t=ne.getState().executionBySession)==null?void 0:$t[j],et=(ot==null?void 0:ot.phase)==="waiting_user_answer"||((Yt=ot==null?void 0:ot.interaction)==null?void 0:Yt.pendingQuestion)!=null;return A.current.set(j,He),!et},[]),me=b.useCallback((j,se)=>{I.current.get(j)!==se&&(I.current.set(j,se),r(j,se))},[r]),ke=b.useCallback(j=>{var wt;const se=ne.getState(),ge=Wt(j)(se)??0,we=(wt=se.executionBySession)==null?void 0:wt[j];Re("[SSE]","startSubscription",{sessionId:j,generation:ge,phase:(we==null?void 0:we.phase)??null,backendRunId:(we==null?void 0:we.backendRunId)??null,shouldObserve:cr(j)(se)}),Z(j),ve(j);const He=new AbortController;L.current.set(j,{sessionId:j,controller:He,generation:ge,streamEnded:!1});const xt=`streaming-${j}`,ot=`streaming-reasoning-${j}`,et=`streaming-status-${j}`,$t=Uh(j),Yt=Ut.getLatest(et);$.current.set(j,{sessionId:j,messageId:xt,content:$t.content,reasoningMessageId:ot,reasoningContent:$t.reasoningContent,statusMessageId:et,status:Yt??""});const Lt=B=>{const oe=$.current.get(j);if(!oe)return;const D=(B??"").trim();if(!D){if(!oe.status)return;oe.status="",Ut.clear(oe.sessionId,oe.statusMessageId);return}oe.status!==D&&(oe.status=D,Ut.publish({sessionId:oe.sessionId,messageId:oe.statusMessageId,content:oe.status}))},On=()=>{var it;const B=pe.current.get(j),oe=(B==null?void 0:B.attempt)??0,D=Math.min(5e3,250*Math.pow(2,oe)),Ae=ne.getState(),We=(it=Ae.executionBySession)==null?void 0:it[j];Re("[SSE]","scheduleReconnect",{sessionId:j,generation:ge,attempt:oe,delayMs:D,phase:(We==null?void 0:We.phase)??null,backendRunId:(We==null?void 0:We.backendRunId)??null,shouldObserve:cr(j)(Ae),terminalEventSeen:jt}),G(j,{clearDraft:!1});const Ne=setTimeout(()=>{var _t,st,Te,Oe,qe;pe.current.delete(j);const pt=ne.getState();if(!cr(j)(pt)){Re("[SSE]","scheduleReconnect.skipNotBusy",{sessionId:j,generation:ge,phase:((st=(_t=pt.executionBySession)==null?void 0:_t[j])==null?void 0:st.phase)??null,backendRunId:((Oe=(Te=pt.executionBySession)==null?void 0:Te[j])==null?void 0:Oe.backendRunId)??null});return}const bt=pt.chats.find(Et=>Et.id===j),Ht=(qe=bt==null?void 0:bt.id)==null?void 0:qe.trim();if(!Ht){Re("[SSE]","scheduleReconnect.skipMissingSession",{sessionId:j,generation:ge});return}Re("[SSE]","scheduleReconnect.restart",{sessionId:Ht,generation:ge}),ke(Ht)},D);pe.current.set(j,{attempt:oe+1,timer:Ne})};let jt=!1,Mn=!1;const yt=250,Cn=[1200,3e3],yn=new Set(["New Session","新建会话","新建會話","Nouvelle session","新しいセッション","नया सत्र"]),Bt=B=>{const oe=(B||"").trim();return!oe||yn.has(oe)?!0:oe.startsWith("New Session - ")||oe.startsWith("New Session with ")||oe.startsWith("New session - ")||oe.startsWith("New session with ")?oe.replace(/^New Session - /,"").replace(/^New Session with /,"").replace(/^New session - /,"").replace(/^New session with /,"").trim().length>0:!1},Qt=()=>{const B=ne.getState();if((Wt(j)(B)??0)!==ge||cr(j)(B))return!1;const D=B.chats.find(Ae=>Ae.id===j);return!D||D.isRunning?!1:Bt(D.title)&&(D.titleVersion??0)===0},hn=()=>{if(!Qt()){ve(j);return}const B=C.current.get(j),oe=(B==null?void 0:B.attempt)??0;if(oe>=Cn.length){ve(j);return}ve(j);const D=Cn[oe],Ae=setTimeout(()=>{C.current.delete(j),(async()=>{if(!Qt()){ve(j);return}try{await x()}catch(We){console.warn(`[useAgentEventSubscription] Title refresh retry failed for session ${j}:`,We)}finally{Qt()?hn():ve(j)}})()},D);C.current.set(j,{attempt:oe+1,timer:Ae})},ye=()=>{const B=L.current.get(j);!B||B.controller!==He||B.streamEnded||(B.streamEnded=!0,us("markStreamEnded",j,"generation:",B.generation,"terminal:",jt))},Ue=()=>{const B=F.current.get(j);return((B==null?void 0:B.children.size)??0)>0},$e=()=>jt&&!Ue(),Ke=()=>{const B=L.current.get(j);B&&(Ut.clear(j,`streaming-${j}`),Ut.clear(j,`streaming-reasoning-${j}`),Ut.clear(j,`streaming-status-${j}`),Jc(j),$.current.delete(B.sessionId))},Xt=async()=>{ce(j);try{await x()}catch(Ne){console.warn(`[useAgentEventSubscription] High-priority refresh failed while settling parent ${j}:`,Ne)}const B=F.current.get(j)??{children:new Set,parentDone:!1};if(!B.parentDone||B.children.size>0)return;const oe=L.current.get(j);if(oe&&(oe.controller!==He||oe.generation!==ge))return;const Ae=ne.getState().chats.find(Ne=>Ne.id===j);if(!!(Ae!=null&&Ae.isRunning)){ve(j);return}Qt()?hn():ve(j),G(j,{clearDraft:!0})},Fn=()=>{ce(j);const B=setTimeout(()=>{P.current.delete(j),Xt()},yt);P.current.set(j,B)},tn=()=>{const B=F.current.get(j)??{children:new Set},oe=new Set(B.children);if(F.current.set(j,{children:oe,parentDone:!0}),oe.size===0){Fn();return}Ke()},Ie=E.current;Ie&&Ie.subscribeToEvents(j,{onToken:B=>{me(j,ge);const oe=$.current.get(j);oe&&(Lt(null),oe.content+=B,zC(oe.sessionId,B),Ut.publish({sessionId:oe.sessionId,messageId:oe.messageId,content:B,transient:!0}))},onReasoningToken:B=>{me(j,ge);const oe=$.current.get(j);oe&&(oe.reasoningContent+=B,BC(oe.sessionId,B),Ut.publish({sessionId:oe.sessionId,messageId:oe.reasoningMessageId,content:B,transient:!0}))},onToolStart:(B,oe,D)=>{var Ht,_t;n(j,{type:"tool_start",tool_call_id:B,tool_name:oe},ge);const Ae=$.current.get(j),We=(Ae==null?void 0:Ae.content)||"",Ne=(Ae==null?void 0:Ae.reasoningContent)||"",it=We.trim().length>0,pt=Ne.trim().length>0;if(it||pt){const st=ne.getState().chats.find(Et=>Et.id===j),Te=(Ht=st==null?void 0:st.messages)==null?void 0:Ht[st.messages.length-1],Oe=typeof((_t=Te==null?void 0:Te.metadata)==null?void 0:_t.reasoning)=="string"?Te.metadata.reasoning:"";(Te==null?void 0:Te.role)==="assistant"&&(Te==null?void 0:Te.type)==="text"&&typeof(Te==null?void 0:Te.content)=="string"&&Te.content===We&&Oe===Ne||t(j,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:We,createdAt:new Date().toISOString(),metadata:{sessionId:j,model:"agent",...pt?{reasoning:Ne}:{}}}),Ae&&(Ae.content="",Ae.reasoningContent="",WC(Ae.sessionId,{content:"",reasoningContent:""}),Ae.status&&(Ae.status="",Ut.clear(Ae.sessionId,Ae.statusMessageId)))}Q.current.set(B,oe);const It=oe.trim().toLowerCase();Ui(oe)?Lt("memory_updating"):Lt(`tool_running:${It||"tool"}`);const bt=crypto.randomUUID();W.current.set(B,bt),t(j,{id:bt,role:"assistant",type:"tool_call",toolCalls:[{toolCallId:B,toolName:oe,parameters:D||{},streamingOutput:""}],metadata:{},createdAt:new Date().toISOString()})},onToolToken:(B,oe)=>{var D;if(n(j,{type:"tool_token",tool_call_id:B,content:oe},ge),!Q.current.has(B)){const Ae=ne.getState().chats.find(Ne=>Ne.id===j),We=((D=Ae==null?void 0:Ae.messages)==null?void 0:D.slice().reverse().find(Ne=>"type"in Ne&&Ne.type==="tool_call"&&Array.isArray(Ne.toolCalls)&&Ne.toolCalls.some(it=>it.toolCallId===B)))??null;if(We&&"toolCalls"in We&&Array.isArray(We.toolCalls)){const Ne=We.toolCalls.find(it=>it.toolCallId===B);Ne&&(Q.current.set(B,Ne.toolName),W.current.set(B,We.id))}}HC(j,B,oe)},onToolComplete:(B,oe)=>{n(j,{type:"tool_complete",tool_call_id:B},ge);const D=Q.current.get(B)||"unknown";Qc(j,B,"completed"),Q.current.delete(B),W.current.delete(B);const Ae=D.trim().toLowerCase(),We=$.current.get(j);(Ui(D)?(We==null?void 0:We.status)==="memory_updating":!!(We!=null&&We.status&&We.status.includes(Ae)))&&Lt(null);const it=(oe==null?void 0:oe.display_preference)||"Default";t(j,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:D,toolCallId:B,result:{tool_name:D,result:(oe==null?void 0:oe.result)??"",display_preference:it},isError:!(oe!=null&&oe.success),createdAt:new Date().toISOString()})},onToolError:(B,oe)=>{n(j,{type:"tool_error",tool_call_id:B},ge);const D=Q.current.get(B)||"unknown";Qc(j,B,"error"),Q.current.delete(B),W.current.delete(B),Lt(null),t(j,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:D,toolCallId:B,result:{tool_name:D,result:oe,display_preference:"Default"},isError:!0,createdAt:new Date().toISOString()})},onToolLifecycle:(B,oe,D,Ae,We,Ne,it)=>{if(D==="begin"){const pt=(oe||"").trim().toLowerCase();Ui(oe||"")?Lt("memory_updating"):Lt(`tool_running:${pt||"tool"}`),Ne===!1&&Wi({title:Pt.t("app.notifications.toolApproval.title",{tool:oe||Pt.t("app.notifications.toolApproval.unknownTool")}),body:Pt.t("app.notifications.toolApproval.body",{tool:oe||""}),sessionId:j,eventType:"tool_approval",eventId:B})}if(D==="finished"||D==="error"||D==="cancelled"){Qc(j,B,D==="finished"?"completed":"error");const pt=W.current.get(B);if(pt){const _t=ne.getState().chats.find(Oe=>Oe.id===j),st=_t==null?void 0:_t.messages.find(Oe=>Oe.id===pt),Te=st&&"metadata"in st?st.metadata??{}:{};i(j,pt,{metadata:{...Te,elapsed_ms:Ae,is_mutating:We,...it?{summary:it}:{}}})}const It=(oe||"").trim().toLowerCase(),bt=$.current.get(j);(Ui(oe||"")?(bt==null?void 0:bt.status)==="memory_updating":!!(bt!=null&&bt.status&&bt.status.includes(It)))&&Lt(null)}},onContextCompressionStatus:(B,oe)=>{if(oe==="started"){Lt("context_compacting");return}if(oe==="degraded_sections"){Lt("context_compaction_degraded");return}if(oe==="failed"){Lt("context_compaction_failed");return}Lt(null)},onTokenBudgetUpdated:B=>{const oe=my(B);if(!oe)return;s(j,oe),o(j,B.truncation_occurred,B.segments_removed);const D=ne.getState().chats.find(Ae=>Ae.id===j);D&&a(j,{config:{...D.config,tokenUsage:oe,truncationOccurred:B.truncation_occurred,segmentsRemoved:B.segments_removed}})},onContextSummarized:B=>{Lt(null),e.info(Pt.t("app.notifications.conversationSummarized",{messages:B.messages_summarized,tokens:B.tokens_saved.toLocaleString()}),5)},onContextPressureNotification:(B,oe,D)=>{oe==="critical"?(e.error(D,6),Wi({title:Pt.t("app.notifications.contextPressure.title"),body:D,sessionId:j,eventType:"context_pressure"})):e.warning(D,5)},onTaskListUpdated:B=>{B.session_id&&c(B.session_id,B)},onTaskListItemProgress:B=>{if(B.session_id){if(!ne.getState().taskLists[B.session_id]){ie(B.session_id);return}f(B.session_id,B)}},onTaskListCompleted:(B,oe,D,Ae)=>{ue(B,oe,D,Ae)&&e.success(Pt.t("app.notifications.allTasksCompleted",{rounds:oe,toolCalls:D}),3)},onTaskEvaluationStarted:(B,oe)=>{m(B,{isEvaluating:!0,reasoning:null,timestamp:Date.now()}),e.info(Pt.t("app.notifications.evaluatingTasks",{count:oe}),2)},onTaskEvaluationCompleted:(B,oe,D)=>{const Ae=Kh(D);m(B,{isEvaluating:!1,reasoning:oe>0?Ae:null,timestamp:Date.now()}),oe>0?e.success(Pt.t("app.notifications.evaluationCompleteUpdated",{count:oe}),3):e.info(Pt.t("app.notifications.evaluationCompleteNoUpdates"),2)},onComplete:()=>{if(Mn){jt=!0,Lt(null),Ut.forceFlush();return}jt=!0,n(j,{type:"complete"},ge);const B=He,oe=()=>{const D=L.current.get(j);return D!=null&&(D.controller!==B||D.generation!==ge)};(async()=>{var It,bt,Ht;if(Lt(null),Ut.forceFlush(),_(j),oe())return;const D=$.current.get(j),Ae=Uh(j),We=Ae.content||(D==null?void 0:D.content)||"",Ne=Ae.reasoningContent||(D==null?void 0:D.reasoningContent)||"",it=We.trim().length>0,pt=Ne.trim().length>0;if(it||pt){const _t=ne.getState().chats.find(qe=>qe.id===j),st=(It=_t==null?void 0:_t.messages)==null?void 0:It[_t.messages.length-1],Te=typeof((bt=st==null?void 0:st.metadata)==null?void 0:bt.reasoning)=="string"?st.metadata.reasoning:"";(st==null?void 0:st.role)==="assistant"&&(st==null?void 0:st.type)==="text"&&typeof(st==null?void 0:st.content)=="string"&&st.content===We&&Te===Ne||await t(j,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:We,createdAt:new Date().toISOString(),metadata:{sessionId:j,model:"agent",...pt?{reasoning:Ne}:{}}})}if(!oe()&&(await ne.getState().loadChatHistory(j,{mode:"monotonic",retries:4,retryDelayMs:200,waitForAssistant:!0}),!oe())){if(pt){const _t=ne.getState().chats.find(Oe=>Oe.id===j),st=[...(_t==null?void 0:_t.messages)||[]].reverse().find(Oe=>(Oe==null?void 0:Oe.role)==="assistant"&&(Oe==null?void 0:Oe.type)==="text"),Te=typeof((Ht=st==null?void 0:st.metadata)==null?void 0:Ht.reasoning)=="string"&&st.metadata.reasoning.trim().length>0;st!=null&&st.id&&!Te&&i(j,st.id,{metadata:{...st.metadata||{},reasoning:Ne}})}oe()||tn()}})().catch(D=>{console.warn(`[useAgentEventSubscription] Completion finalization failed for session ${j}:`,D),oe()||tn()})},onCancelled:async B=>{jt=!0,n(j,{type:"cancelled",message:B},ge),Lt(null),_(j),tn()},onError:async B=>{jt=!0,n(j,{type:"error",message:B},ge),Lt(null);try{const oe=Vu(B)?Gu(B):B;await t(j,{id:`error-${Date.now()}`,role:"assistant",type:"text",content:`❌ **Error**: ${oe}`,createdAt:new Date().toISOString(),finishReason:"error"})}catch(oe){console.warn(`[useAgentEventSubscription] Failed to append error message for session ${j}:`,oe)}finally{tn()}},onSessionTitleUpdated:B=>{Lu(B,ne.getState())},onSessionPinnedUpdated:B=>{Lu(B,ne.getState())},onPlanModeEntered:B=>{const oe=B.session_id||j,D=ck(B);if(!D){x();return}a(oe,{planMode:D})},onPlanModeExited:B=>{const oe=B.session_id||j;a(oe,{planMode:null}),x()},onPlanFileUpdated:B=>{const oe=B.session_id||j,D=ne.getState().chats.find(We=>We.id===oe),Ae=D==null?void 0:D.planMode;Ae?a(oe,{planMode:{...Ae,plan_file_path:B.plan_file_path??Ae.plan_file_path??null,status:B.status==="exploring"||B.status==="designing"||B.status==="reviewing"||B.status==="finalizing"||B.status==="awaiting_approval"?B.status:Ae.status}}):x()},onSubAgentStarted:(B,oe,D)=>{const Ae=F.current.get(B)??{children:new Set,parentDone:!1},We=new Set(Ae.children);We.add(oe),F.current.set(B,{children:We,parentDone:Ae.parentDone}),g(B,oe,{title:D,status:"pending",lastEventAt:new Date().toISOString()}),D&&D.trim()&&y(oe,D).catch(Ne=>{console.warn(`[useAgentEventSubscription] Failed to persist sub-agent title for ${oe}:`,Ne)}),x()},onSubAgentEvent:(B,oe,D)=>{var We;if(D.type==="task_list_updated"&&D.task_list){const Ne=D.task_list.session_id||B;c(Ne,D.task_list);return}if(D.type==="task_list_item_progress"){const Ne=D.session_id||B;if(typeof D.item_id=="string"&&nk(D.status)&&typeof D.tool_calls_count=="number"&&typeof D.version=="number"){if(!ne.getState().taskLists[Ne]){ie(Ne);return}f(Ne,{session_id:Ne,item_id:D.item_id,status:D.status,tool_calls_count:D.tool_calls_count,version:D.version})}return}if(D.type==="task_evaluation_started"){const Ne=D.session_id||B;m(Ne,{isEvaluating:!0,reasoning:null,timestamp:Date.now()});return}if(D.type==="task_evaluation_completed"){const Ne=D.session_id||B,it=D.updates_count??0;m(Ne,{isEvaluating:!1,reasoning:it>0?Kh(D.reasoning??""):null,timestamp:Date.now()});return}const Ae=(We=ti(B)(ne.getState()))==null?void 0:We[oe];if(!Vh(Ae==null?void 0:Ae.status)){if(D.type==="runner_progress"){const Ne=typeof D.round_count=="number"?D.round_count:Ae==null?void 0:Ae.roundCount,it=`${B}:${oe}`;if(typeof Ne=="number"&&N.current.get(it)===Ne)return;typeof Ne=="number"&&N.current.set(it,Ne),g(B,oe,{status:"running",roundCount:Ne,lastEventAt:new Date().toISOString()});return}if(D.type==="token"&&typeof D.content=="string"){const Ne=`${B}:${oe}`,it=O.current.get(Ne),pt=KC(B,oe),bt=(((it==null?void 0:it.content)??pt.outputPreview??(Ae==null?void 0:Ae.outputPreview)??"")+D.content).slice(-2e3);Hh(B,oe,bt),_e(B,oe,bt,new Date().toISOString())}else g(B,oe,{status:"running",lastEventAt:new Date().toISOString()})}},onSubAgentHeartbeat:(B,oe,D)=>{if(Vh(ak(B,oe)))return;const Ae=`${B}:${oe}`,We=te.current.get(Ae)??0,Ne=Date.parse(D||"")||Date.now();Ne-We<sk||(te.current.set(Ae,Ne),g(B,oe,{status:"running",lastHeartbeatAt:D}))},onSubAgentCompleted:(B,oe,D,Ae)=>{var pt;const We=F.current.get(B)??{children:new Set,parentDone:!1},Ne=new Set(We.children);Ne.delete(oe),F.current.set(B,{children:Ne,parentDone:We.parentDone}),he(B,oe),XC(B,oe);const it=`${B}:${oe}`;if(te.current.delete(it),N.current.delete(it),g(B,oe,{status:D,error:Ae,lastEventAt:new Date().toISOString()}),D==="completed"){const It=(pt=ti(B)(ne.getState()))==null?void 0:pt[oe];Wi({title:Pt.t("app.notifications.backgroundTask.completedTitle"),body:It!=null&&It.title?Pt.t("app.notifications.backgroundTask.completedBody",{title:It.title}):Pt.t("app.notifications.backgroundTask.completedFallback"),sessionId:B,eventType:"subagent_completed",eventId:oe})}We.parentDone&&Ne.size===0&&Fn(),x()},onNeedClarification:B=>{const oe=B.session_id||j;oe===j&&(Mn=!0),us("event.needClarification",{sessionId:j,targetSessionId:oe,subscriptionGeneration:ge,currentStoreGeneration:Wt(oe)(ne.getState()),toolCallId:B.tool_call_id??null,questionPreview:(B.question||"").slice(0,120)}),S(oe,{question:B.question||"",options:B.options||[],allowCustom:B.allow_custom??!0,toolCallId:B.tool_call_id??null});const D=B.question||"",Ae=D.length>80?`${D.slice(0,80)}...`:D;Wi({title:Pt.t("app.notifications.clarification.title"),body:Ae||Pt.t("app.notifications.clarification.fallbackBody"),sessionId:oe,eventType:"clarification",eventId:B.tool_call_id??void 0})},onExecutionStarted:(B,oe)=>{Re("[SSE]","event.executionStarted",{sessionId:j,generation:ge,runId:B}),us("event.executionStarted.compareGeneration",{sessionId:j,subscriptionGeneration:ge,currentStoreGeneration:Wt(j)(ne.getState()),runId:B}),n(j,{type:"execution_started",run_id:B},ge)},onRunnerProgress:()=>{}},He).then(()=>{var D,Ae,We,Ne,it,pt,It,bt;if(ye(),us("streamEnded",j,"generation:",ge,"aborted:",He.signal.aborted,"terminal:",jt),Re("[SSE]","streamEnded",{sessionId:j,generation:ge,aborted:He.signal.aborted,terminalEventSeen:jt,shouldSkipReconnectAfterTerminal:$e(),phase:((Ae=(D=ne.getState().executionBySession)==null?void 0:D[j])==null?void 0:Ae.phase)??null,backendRunId:((Ne=(We=ne.getState().executionBySession)==null?void 0:We[j])==null?void 0:Ne.backendRunId)??null}),He.signal.aborted||$e())return;const B=L.current.get(j);if(B&&(B.controller!==He||B.generation!==ge))return;const oe=cr(j)(ne.getState());if(Re("[SSE]","streamEnded.busyCheck",{sessionId:j,generation:ge,stillBusy:oe,phase:((pt=(it=ne.getState().executionBySession)==null?void 0:it[j])==null?void 0:pt.phase)??null,backendRunId:((bt=(It=ne.getState().executionBySession)==null?void 0:It[j])==null?void 0:bt.backendRunId)??null}),!oe){G(j,{clearDraft:!0});return}On()}).catch(B=>{var Ae,We,Ne,it,pt,It,bt,Ht;if(ye(),Re("[SSE]","streamError",{sessionId:j,generation:ge,aborted:He.signal.aborted,terminalEventSeen:jt,error:B,phase:((We=(Ae=ne.getState().executionBySession)==null?void 0:Ae[j])==null?void 0:We.phase)??null,backendRunId:((it=(Ne=ne.getState().executionBySession)==null?void 0:Ne[j])==null?void 0:it.backendRunId)??null}),He.signal.aborted)return;if(tk(B)){if($e())return;const _t=cr(j)(ne.getState());if(Re("[SSE]","streamError.abortError.busyCheck",{sessionId:j,generation:ge,stillBusy:_t,phase:((It=(pt=ne.getState().executionBySession)==null?void 0:pt[j])==null?void 0:It.phase)??null,backendRunId:((Ht=(bt=ne.getState().executionBySession)==null?void 0:bt[j])==null?void 0:Ht.backendRunId)??null}),!_t){G(j,{clearDraft:!0});return}On();return}if($e())return;console.error("[useAgentEventSubscription] Subscription error:",B),G(j,{clearDraft:!0});const oe=Wt(j)(ne.getState()),D=cr(j)(ne.getState());oe===ge&&D&&n(j,{type:"error",message:String(B)},ge)})},[t,G,ce,_,Z,ve,ie,e,ue,y,x,m,S,n,me,c,o,i,a,f,s,g,he,_e]),De=b.useCallback(j=>{const se=j.trim();if(!se)return;z.current.delete(se);const ge=L.current.get(se),we=Wt(se)(ne.getState()),He=ge&&ge.generation!==we;if(us("ensureSubscription.check",{sessionId:se,existingGeneration:(ge==null?void 0:ge.generation)??null,currentGeneration:we,hasExisting:!!ge,aborted:(ge==null?void 0:ge.controller.signal.aborted)??null,streamEnded:(ge==null?void 0:ge.streamEnded)??null,generationMismatch:He}),(ge==null?void 0:ge.sessionId)===se&&!ge.controller.signal.aborted&&!ge.streamEnded&&!He){us("skipExistingSubscription",se,"generation:",ge.generation,"streamEnded:",ge.streamEnded);return}ge&&(us("restartStaleSubscription",se,"generation:",ge.generation,"currentGeneration:",we,"aborted:",ge.controller.signal.aborted,"streamEnded:",ge.streamEnded,"generationMismatch:",He),G(se,{clearDraft:!1})),ke(se)},[G,ke]),Fe=ne(Ha(j=>Object.entries(j.executionBySession).filter(([se])=>cr(se)(j)).map(([se,ge])=>{const we=ge.phase==="starting"?"starting":ge.phase==="settling"?"settling":"live";return`${se}\0${ge.generation}\0${we}`}).sort()));b.useEffect(()=>{const j=Fe.map(ge=>{const we=ge.indexOf("\0");return we>=0?ge.slice(0,we):ge}),se=new Set(j);Re("[SSE]","effect.busySessions",{busySessionIds:j}),j.forEach(ge=>De(ge));for(const ge of Array.from(L.current.keys()))se.has(ge)||G(ge,{clearDraft:!0});for(const ge of Array.from(z.current))se.has(ge)||z.current.delete(ge)},[Fe,De,G]),b.useEffect(()=>ne.subscribe(j=>j.chats,()=>{if(z.current.size!==0)for(const j of Array.from(z.current)){if(!cr(j)(ne.getState())){z.current.delete(j);continue}De(j)}}),[De]),b.useEffect(()=>{const j=L.current;return()=>{const se=Array.from(j.keys());for(const ge of se)G(ge,{clearDraft:!0,clearTitleRetry:!0})}},[G])}const Br=(e,t,n)=>Math.max(t,Math.min(n,e)),qi=(e,t)=>t==="horizontal"?e.clientWidth:e.clientHeight,Hi=(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}},rf=({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:m})=>{const g=b.useRef(null),y=b.useRef(null),[x,S]=b.useState(null),[_,E]=b.useState(0),[T,P]=b.useState(null),C=b.useMemo(()=>{if(!r)return null;const ie=Number(r[0]);return Number.isFinite(ie)?ie:null},[r]),A=b.useMemo(()=>{if(!r)return null;const ie=Number(r[1]);return Number.isFinite(ie)?ie:null},[r]),I=b.useMemo(()=>{if(!r)return null;const ie=Number(r[0]),ue=Number(r[1]);if(!Number.isFinite(ie)||!Number.isFinite(ue))return null;const me=ie+ue;return me<=0||ie<=0||ue<=0?null:Br(ie/me,0,1)},[r]),L=b.useMemo(()=>C===null||A===null?null:A<=0?Math.max(0,C):null,[C,A]),$=b.useMemo(()=>C===null||A===null?null:A>0&&C<=0?A:null,[C,A]);b.useLayoutEffect(()=>{const ie=g.current;ie&&E(qi(ie,e))},[e]),b.useEffect(()=>{const ie=g.current;if(!ie)return;const ue=()=>{const me=qi(ie,e);E(ke=>ke===me?ke:me)};if(ue(),typeof ResizeObserver<"u"){const me=new ResizeObserver(ue);return me.observe(ie),()=>me.disconnect()}return window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[e]),b.useEffect(()=>{if(I!==null){P(I);return}P(ie=>ie??Br(s,.1,.9))},[s,I]);const F=b.useMemo(()=>Hi(_,o,a),[_,o,a]),te=Br(s,.1,.9),N=T??te,O=_>0?Math.round(_*N):null,Q=x??(I!==null?O:null)??L??($!==null&&_>0?_-$:null)??O??0,W=_>0?Br(Q,F.minFirst,F.maxFirst):Math.max(0,Math.round(Q)),z=b.useCallback(ie=>{if(c)return;const ue=g.current;if(!ue)return;ie.preventDefault(),ie.stopPropagation();const me=e==="horizontal"?ie.clientX:ie.clientY,ke=qi(ue,e),De=Hi(ke,o,a),Fe=Br(W||Math.round(ke*te),De.minFirst,De.maxFirst);y.current={pointerId:ie.pointerId,startPos:me,startFirstPx:Fe,containerSize:ke};try{ie.currentTarget.setPointerCapture(ie.pointerId)}catch{}},[c,W,te,e,o,a]),pe=b.useCallback(ie=>{const ue=y.current;if(!ue||ie.pointerId!==ue.pointerId)return;ie.preventDefault(),ie.stopPropagation();const ke=(e==="horizontal"?ie.clientX:ie.clientY)-ue.startPos,De=ue.containerSize,Fe=Hi(De,o,a),j=Br(Math.round(ue.startFirstPx+ke),Fe.minFirst,Fe.maxFirst);S(j)},[e,o,a]),Z=b.useCallback(ie=>{const ue=y.current;if(!ue||ue.pointerId!==ie)return;const me=g.current,ke=me?qi(me,e):ue.containerSize,De=x??ue.startFirstPx,Fe=Hi(ke,o,a),j=Br(De,Fe.minFirst,Fe.maxFirst),se=Math.max(0,ke-j);S(null),ke>0&&P(Br(j/ke,0,1)),y.current=null,d==null||d([j,se])},[e,x,o,a,d]),ce=b.useCallback(ie=>{ie.preventDefault(),ie.stopPropagation(),Z(ie.pointerId)},[Z]),ve=b.useCallback(ie=>{ie.preventDefault(),ie.stopPropagation(),Z(ie.pointerId)},[Z]),G=e==="horizontal",he=c?"default":G?"col-resize":"row-resize",_e=Math.max(0,Math.round(i));return l.jsxs("div",{ref:g,className:m,style:{display:"flex",flexDirection:G?"row":"column",height:"100%",minHeight:0,minWidth:0,width:"100%",position:"relative",...f},children:[l.jsx("div",{style:{flex:`0 0 ${W}px`,minWidth:G?F.appliedMinFirst:0,minHeight:G?0:F.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:G?F.appliedMinSecond:0,minHeight:G?0:F.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})}),_e>0?l.jsx("div",{role:"separator","aria-orientation":G?"vertical":"horizontal",onPointerDown:z,onPointerMove:pe,onPointerUp:ce,onPointerCancel:ve,style:{position:"absolute",top:G?0:`${W-_e/2}px`,left:G?`${W-_e/2}px`:0,width:G?`${_e}px`:"100%",height:G?"100%":`${_e}px`,cursor:he,touchAction:"none",background:"transparent",zIndex:5}}):null]})},Qu="chat-toggle-batch-export-selection",Zu="chat-open-inspector",Ol="chat-focus-input",ed="chat-pending-question-resolved",$l=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp"],Gh=10*1024*1024,dk=2048,fk=2048,hk=.82,pk=512*1024,mk=e=>$l.includes(e.type)?e.size>Gh?{isValid:!1,error:`Image size too large: ${(e.size/1024/1024).toFixed(2)}MB. Maximum size: ${Gh/1024/1024}MB`}:{isValid:!0}:{isValid:!1,error:`Unsupported image type: ${e.type}. Supported types: ${$l.join(", ")}`},gk=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}),Jh=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)}),yk=e=>URL.createObjectURL(e),vk=(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))},bk=async(e,t)=>{const n=await gk(e),r=document.createElement("canvas");return vk(r,n,dk,fk),wk(r,t)},Sk=async e=>{const t=mk(e);if(!t.isValid)throw new Error(t.error);const n=yk(e);try{let r;if(e.type==="image/gif"||e.size<pk)r=await Jh(e);else try{r=await bk(n,hk)}catch(o){console.warn("[imageUtils] Failed to re-encode image, using original:",o),r=await Jh(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 ev(n),r}},xk=async e=>{const t=Array.from(e),n=[];for(const r of t)try{const s=await Sk(r);n.push(s)}catch(s){console.error(`Failed to process image ${r.name}:`,s)}return n},wk=(e,t=.8)=>e.toDataURL("image/jpeg",t),ev=e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e)},Qh=e=>{e.forEach(t=>ev(t.preview))},_k=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]},Ck=e=>!e.files||e.files.length===0?!1:Array.from(e.files).some(t=>$l.includes(t.type)),kk=e=>e.files?Array.from(e.files).filter(t=>$l.includes(t.type)):[],{Text:Tk,Title:Pk}=ht,Ek=({visible:e,images:t,currentIndex:n=0,onClose:r,onDownload:s})=>{const{token:o}=dt.useToken(),{t:a}=Ge(),[i,c]=b.useState(n);if(!t||t.length===0)return null;const d=t[i],f=()=>{if(s&&d)s(d);else{const y=document.createElement("a");y.href=d.base64,y.download=d.name,document.body.appendChild(y),y.click(),document.body.removeChild(y)}},m=()=>{c(y=>y>0?y-1:t.length-1)},g=()=>{c(y=>y<t.length-1?y+1:0)};return l.jsxs(il,{open:e,onCancel:r,footer:null,width:"90vw",style:{top:20},styles:{body:{padding:0,height:"80vh",display:"flex",flexDirection:"column"}},closeIcon:l.jsx(Os,{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(Pk,{level:5,style:{margin:0},children:d.name}),l.jsxs(Tk,{type:"secondary",style:{fontSize:o.fontSizeSM},children:[_k(d.size)," • ",d.type,t.length>1&&` • ${a("chat.imagePreview.counter",{current:i+1,total:t.length})}`]})]}),l.jsxs(Ye,{children:[t.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(je,{icon:l.jsx(ju,{}),onClick:m,disabled:t.length<=1}),l.jsx(je,{icon:l.jsx(Zr,{}),onClick:g,disabled:t.length<=1})]}),l.jsx(je,{icon:l.jsx(fo,{}),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(Tx,{dots:!1,arrows:!0,infinite:!0,afterChange:c,style:{width:"100%",height:"100%"},children:t.map(y=>l.jsx("div",{children:l.jsx("div",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:l.jsx("img",{src:y.preview,alt:y.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}})})},y.id))}),t.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(je,{type:"primary",shape:"circle",icon:l.jsx(ju,{}),onClick:m,style:{position:"absolute",left:20,top:"50%",transform:"translateY(-50%)",zIndex:10}}),l.jsx(je,{type:"primary",shape:"circle",icon:l.jsx(Zr,{}),onClick:g,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((y,x)=>l.jsx("div",{style:{minWidth:60,height:60,border:x===i?`2px solid ${o.colorPrimary}`:`1px solid ${o.colorBorder}`,borderRadius:o.borderRadius,overflow:"hidden",cursor:"pointer",opacity:x===i?1:.7},onClick:()=>c(x),children:l.jsx("img",{src:y.preview,alt:y.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},y.id))})]})},Uo=e=>/\s/.test(e),Mk=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||Uo(o)),i=s==="@"&&(r===0||Uo(o));if(!a&&!i){let f=r;for(;r<n&&!((e[r]==="/"||e[r]==="@")&&(r===0||Uo(e[r-1])));)r+=1;t.push({text:e.slice(f,r),type:"text"});continue}let c=r+1;for(;c<n&&!Uo(e[c]);)c+=1;const d=e.slice(r,c);a?c===n||Uo(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"}]},Ak=/(\/)([a-zA-Z0-9_-]*)$/,Rk=e=>{if(!e)return{command:null,isTriggerActive:!1,searchText:""};const t=e.match(Ak);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}},jk=/@([a-zA-Z0-9._\-\/\\]*)$/,Ik=e=>{if(!e)return{isTriggerActive:!1,searchText:"",tokenStart:null};const t=e.match(jk);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}},Ok=(e,t=80)=>{const[n,r]=b.useState(e);return b.useEffect(()=>{const s=window.setTimeout(()=>{r(e)},t);return()=>{window.clearTimeout(s)}},[e,t]),n},{Text:$k}=ht,Lk=({visible:e,token:t})=>{const{t:n}=Ge();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(Ye,{direction:"vertical",align:"center",children:[l.jsx(Px,{style:{fontSize:32,color:t.colorPrimary}}),l.jsx($k,{style:{color:t.colorPrimary,fontWeight:500},children:n("chat.input.dropImagesHere")})]})}):null},{Text:Zh}=ht,Dk=({images:e,token:t,allowImages:n,onPreview:r,onClear:s})=>{const{t:o}=Ge();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(Pe,{align:"center",wrap:"wrap",gap:t.marginXS,children:[l.jsx(Zh,{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(Zh,{type:"secondary",style:{fontSize:t.fontSizeSM},children:o("chat.input.moreImages",{count:e.length-3})}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(Os,{}),onClick:s,style:{marginLeft:"auto",minWidth:"auto",padding:"0 4px",height:24},title:o("chat.input.clearAllImages")})]})})},{TextArea:Fk}=$s,Nk=({value:e,placeholder:t,disabled:n,token:r,highlightSegments:s,textAreaRef:o,highlightOverlayRef:a,onChange:i,onKeyDown:c,onPaste:d,onScrollSync:f})=>{const m=e.length>0&&s.some(S=>S.type!=="text"),g="6px 4px",y=1.65,x=n?r.colorTextDisabled:r.colorText;return l.jsxs("div",{style:{position:"relative",flex:1},children:[m?l.jsxs("div",{ref:a,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,padding:g,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflow:"hidden",pointerEvents:"none",color:"transparent",fontSize:r.fontSize,lineHeight:y,fontFamily:"inherit",fontWeight:400,letterSpacing:"normal",transform:"translate(0, 0)",zIndex:0},children:[s.map((S,_)=>{let E;return S.type==="workflow"?E={backgroundColor:r.colorPrimaryBg,color:"transparent",WebkitTextFillColor:"transparent",fontWeight:400,textDecoration:"underline",textDecorationStyle:"dotted",textDecorationColor:r.colorPrimary}:S.type==="file"&&(E={backgroundColor:r.colorSuccessBg,color:"transparent",WebkitTextFillColor:"transparent"}),l.jsx("span",{style:E,children:S.text},`segment-${_}`)}),e.endsWith(`
39
+ `)?`
40
+ `:null]}):null,l.jsx(Fk,{"data-testid":"chat-input",ref:o,value:e,onChange:S=>i(S.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:g,lineHeight:y,border:"none",outline:"none",background:"transparent",color:x,WebkitTextFillColor:x,caretColor:x,position:"relative",zIndex:1,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflowY:"auto"}})]})},zk=({allowImages:e,disabled:t,isInputLocked:n,token:r,fileInputRef:s,onFileInputChange:o,onFileReferenceButtonClick:a,extraControl:i})=>{const{t:c}=Ge();return l.jsxs(Pe,{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(je,{type:"text",icon:l.jsx(Od,{}),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(je,{type:"text",icon:l.jsx(kl,{}),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]})},Bk=({allowRetry:e,hasMessages:t,isInputLocked:n,canCancel:r,disabled:s,onRetry:o,onCancel:a,onSubmit:i,value:c,images:d,isOverCharLimit:f,token:m,statusIndicator:g,submitButtonLabel:y})=>{const{t:x}=Ge(),S=!c.trim()&&d.length===0,_=r??n,E=n,T=n||s||!o,P=y??x("chat.actions.sendMessage");return l.jsxs(Pe,{align:"center",style:{flex:"0 0 auto",gap:m.marginXS},children:[g?l.jsx("span",{style:{flex:"0 0 auto"},children:g}):null,e&&t&&l.jsx(uo,{trigger:["click"],menu:{items:[{key:"regenerate",label:x("chat.actions.regenerate"),icon:l.jsx($d,{})},{key:"error_retry",label:x("chat.actions.retryFailed"),icon:l.jsx(Gg,{})}],onClick:({key:C})=>o==null?void 0:o(C)},disabled:T,children:l.jsx(je,{"data-testid":"regenerate-button",type:"text",icon:l.jsx(Ex,{spin:E}),disabled:T,title:x("chat.actions.retryOptions"),"aria-label":x("chat.actions.retryOptions"),size:"small",className:"lotus-secondary-button",style:{minWidth:38,padding:"0 8px",height:38,width:38,borderRadius:19,color:m.colorTextSecondary}})}),l.jsx(je,{"data-testid":_?"cancel-button":"send-button",type:"primary",icon:_?l.jsx(Mx,{}):l.jsx(Ax,{}),onClick:_?a:i,loading:_&&!a,disabled:_?!a||s:n||S||s||f,size:"small",danger:_,className:_?"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:_?void 0:"linear-gradient(135deg, var(--lotus-primary) 0%, var(--lotus-accent-secondary) 100%)",border:_?void 0:"none",boxShadow:_?void 0:"var(--lotus-send-btn-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:"scale(1)"},title:_?x("chat.actions.cancelRequest"):P,"aria-label":_?x("chat.actions.cancelRequest"):P})]})},{Text:ep}=ht,Wk=({charCount:e,maxCharCount:t,isOverCharLimit:n,isNearCharLimit:r,isProcessingAttachments:s,token:o})=>{const{t:a}=Ge(),i=typeof t=="number"&&Number.isFinite(t)&&t>0;return!s&&!r&&!n?null:l.jsxs(l.Fragment,{children:[i&&l.jsx(Pe,{justify:"flex-end",style:{marginTop:o.marginXXS},children:l.jsxs(ep,{type:n?"danger":r?"warning":"secondary",style:{fontSize:o.fontSizeSM},children:[e.toLocaleString()," / ",t.toLocaleString()]})}),s&&l.jsxs(Ye,{size:"small",style:{marginTop:o.marginXS},children:[l.jsx(ho,{size:"small"}),l.jsx(ep,{type:"secondary",children:a("chat.input.processingFiles")})]})]})},Uk=({onFiles:e,mode:t="images"})=>{const[n,r]=b.useState(!1),s=b.useCallback(i=>{var d,f;i.preventDefault(),i.stopPropagation(),(t==="images"?Ck(i.dataTransfer):((f=(d=i.dataTransfer)==null?void 0:d.files)==null?void 0:f.length)>0)&&r(!0)},[t]),o=b.useCallback(i=>{i.preventDefault(),i.stopPropagation(),r(!1)},[]),a=b.useCallback(i=>{if(i.preventDefault(),i.stopPropagation(),r(!1),t==="images"){const d=kk(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}},qk=e=>{const{message:t}=Dn.useApp(),[n,r]=b.useState([]),[s,o]=b.useState(!1),[a,i]=b.useState(0),c=b.useCallback(async g=>{if(e)try{const y=await xk(g);y.length>0&&(r(x=>[...x,...y]),t.success(`Added ${y.length} image(s)`))}catch(y){t.error(`Failed to process images: ${y}`)}},[e,t]),d=b.useCallback(g=>{const y=n.find(x=>x.id===g);y&&Qh([y]),r(x=>x.filter(S=>S.id!==g))},[n]),f=b.useCallback(g=>{const y=n.findIndex(x=>x.id===g.id);i(y>=0?y:0),o(!0)},[n]),m=b.useCallback(()=>{Qh(n),r([])},[n]);return{images:n,setImages:r,previewModalVisible:s,setPreviewModalVisible:o,previewImageIndex:a,handleImageFiles:c,handleRemoveImage:d,handleImagePreview:f,clearImages:m}},Hk=({onImages:e,onAttachments:t,allowImages:n})=>({handlePaste:b.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])}),bn=[];for(let e=0;e<256;++e)bn.push((e+256).toString(16).slice(1));function Yk(e,t=0){return(bn[e[t+0]]+bn[e[t+1]]+bn[e[t+2]]+bn[e[t+3]]+"-"+bn[e[t+4]]+bn[e[t+5]]+"-"+bn[e[t+6]]+bn[e[t+7]]+"-"+bn[e[t+8]]+bn[e[t+9]]+"-"+bn[e[t+10]]+bn[e[t+11]]+bn[e[t+12]]+bn[e[t+13]]+bn[e[t+14]]+bn[e[t+15]]).toLowerCase()}const Xk=new Uint8Array(16);function Kk(){return crypto.getRandomValues(Xk)}function tp(e,t,n){return crypto.randomUUID?crypto.randomUUID():Vk(e)}function Vk(e,t,n){var s;e=e||{};const r=e.random??((s=e.rng)==null?void 0:s.call(e))??Kk();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,Yk(r)}const Gk=["text/","application/json","application/xml"],Jk=[".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"],Qk=200*1024,tv=e=>e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`,np=e=>{const t=e.toLowerCase();return Jk.some(n=>t.endsWith(n))},Zk=e=>!e.type&&np(e.name)?!0:Gk.some(t=>e.type.startsWith(t))||np(e.name),eT=e=>new Promise((t,n)=>{const r=new FileReader;r.onerror=()=>n(r.error),r.onload=()=>t(r.result),r.readAsText(e)}),rp=async(e,t)=>{const n=Qk,r=[],s=[];for(const o of e)try{if(Zk(o)&&o.size<=n){const a=await eT(o);r.push({id:tp(),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:tp(),file:o,name:o.name,size:o.size,type:o.type||"application/octet-stream",kind:"binary",preview:`(${tv(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}},tT=e=>{const t=[],n=[];return e.forEach(r=>{r.type.startsWith("image/")?t.push(r):n.push(r)}),{images:t,others:n}},nT=e=>e.length===0?"":e.map(t=>{const n=`### File: ${t.name}`,r=`(_${tv(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]=b.useState(!1),{images:o,setImages:a,previewModalVisible:i,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:m,clearImages:g}=qk(e),y=b.useCallback(async C=>{if(!C||C.length===0)return;const{images:A,others:I}=tT(C);if(A.length>0&&await f(A),I.length>0&&t){s(!0);const{processed:L,errors:$}=await rp(I);L.length>0&&(t(L),n.success(Pt.t("chat.input.filesAdded",{count:L.length}))),$.forEach(F=>n.error(F)),s(!1)}},[f,n,t]),{isDragOver:x,handleDragOver:S,handleDragLeave:_,handleDrop:E}=Uk({onFiles:y,mode:"any"}),{handlePaste:T}=Hk({onImages:f,onAttachments:t?async C=>{s(!0);const{processed:A,errors:I}=await rp(C);A.length>0&&(t(A),n.success(Pt.t("chat.input.filesAttached",{count:A.length}))),I.forEach(L=>n.error(L)),s(!1)}:void 0,allowImages:e}),P=b.useCallback(C=>{const A=C.target.files;A&&A.length>0&&f(A),C.target.value=""},[f]);return{images:o,setImages:a,previewModalVisible:i,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:m,clearImages:g,isProcessingAttachments:r,isDragOver:x,handleDragOver:S,handleDragLeave:_,handleDrop:E,handlePaste:T,handleFileInputChange:P}},sT=({value:e,debouncedValue:t,onWorkflowCommandChange:n,onFileReferenceChange:r,onImagesChange:s,images:o,propImages:a,setImages:i,syncOverlayScroll:c})=>{b.useEffect(()=>{c()},[e,c]),b.useEffect(()=>{n&&n(Rk(t))},[t,n]),b.useEffect(()=>{r&&r(Ik(t))},[t,r]),b.useEffect(()=>{s&&s(o)},[o,s]),b.useEffect(()=>{a&&i(a)},[a,i])},oT=({value:e,images:t,isInputLocked:n,disabled:r,isWorkflowSelectorVisible:s,onChange:o,onSubmit:a,onRetry:i,onHistoryNavigate:c,validateMessage:d,isOverCharLimit:f,maxCharCount:m,messageApi:g,clearImages:y,textAreaRef:x})=>{const S=b.useCallback(()=>{const T=e.trim();if(!(!T&&t.length===0||n||r)){if(f){const P=typeof m=="number"?m.toLocaleString():"configured";g.error(Pt.t("chat.input.charLimitExceeded",{max:P}));return}if(d){const P=d(T);if(!P.isValid){g.error(P.errorMessage||Pt.t("chat.input.messageFormatInvalid"));return}}a(T,t.length>0?t:void 0),y()}},[y,r,t,f,n,m,g,a,d,e]),_=b.useCallback(T=>{if(c&&!r&&!n&&!T.shiftKey&&(T.key==="ArrowUp"||T.key==="ArrowDown")){const P=T.key==="ArrowUp"?"previous":"next",C=c(P,e);if(C!=null){T.preventDefault(),o(C),requestAnimationFrame(()=>{var I,L;const A=((L=(I=x.current)==null?void 0:I.resizableTextArea)==null?void 0:L.textArea)||null;if(A){const $=C.length;A.setSelectionRange($,$)}});return}}T.key==="Enter"&&!T.shiftKey&&!n&&!r&&!s&&(T.preventDefault(),S())},[r,S,n,s,o,c,x,e]),E=b.useCallback((T="regenerate")=>{n||r||!i||i(T)},[r,n,i]);return{handleKeyDown:_,handleSubmit:S,handleRetry:E}},aT=ft.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:m,validateMessage:g,onAttachmentsAdded:y,onWorkflowCommandChange:x,onFileReferenceChange:S,onFileReferenceButtonClick:_,maxCharCount:E,leftControlsExtra:T,submitButtonLabel:P})=>{const{t:C}=Ge(),{isStreaming:A,isInputLocked:I=A,canCancel:L,hasMessages:$,allowRetry:F=!0,onRetry:te,onCancel:N,onHistoryNavigate:O}=r,Q=b.useRef(null),W=b.useRef(null),z=f||W,pe=b.useRef(null),{token:Z}=dt.useToken(),ce=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",[ve,G]=Rx.useMessage(),he=e.length,_e=typeof E=="number"&&Number.isFinite(E)&&E>0,ie=_e?he>E:!1,ue=_e?!ie&&he>=E*.9:!1,{images:me,setImages:ke,previewModalVisible:De,setPreviewModalVisible:Fe,previewImageIndex:j,handleImagePreview:se,clearImages:ge,isProcessingAttachments:we,isDragOver:He,handleDragOver:xt,handleDragLeave:ot,handleDrop:et,handlePaste:$t,handleFileInputChange:Yt}=rT({allowImages:c,onAttachmentsAdded:y,messageApi:ve}),Lt=Ok(e,80),On=b.useMemo(()=>Mk(e),[e]),jt=b.useCallback(()=>{var ye,Ue;const Bt=(Ue=(ye=z.current)==null?void 0:ye.resizableTextArea)==null?void 0:Ue.textArea;if(!Bt||!pe.current)return;const Qt=Bt.scrollTop,hn=Bt.scrollLeft;pe.current.style.transform=`translate(${-hn}px, ${-Qt}px)`},[z]);sT({value:e,debouncedValue:Lt,onWorkflowCommandChange:x,onFileReferenceChange:S,onImagesChange:i,images:me,propImages:a,setImages:ke,syncOverlayScroll:jt});const{handleKeyDown:Mn,handleSubmit:yt,handleRetry:Cn}=oT({value:e,images:me,isInputLocked:I,disabled:o,isWorkflowSelectorVisible:d,onChange:t,onSubmit:n,onRetry:te,onHistoryNavigate:O,validateMessage:g,isOverCharLimit:ie,maxCharCount:E,messageApi:ve,clearImages:ge,textAreaRef:z}),yn=s??C("chat.input.placeholder");return l.jsxs(l.Fragment,{children:[G,l.jsxs("div",{className:`message-input-container lotus-message-input-shell ${He?"is-drag-over":""}`,role:"group","aria-label":C("chat.input.messageComposer","Message composer"),style:{position:"relative",border:`1px solid ${He?"var(--lotus-input-border-active)":"var(--lotus-input-border)"}`,borderRadius:26,background:He?"var(--lotus-input-bg-active)":"var(--lotus-input-bg)",backdropFilter:ce?"none":"blur(18px)",WebkitBackdropFilter:ce?"none":"blur(18px)",boxShadow:"var(--lotus-input-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",width:"100%",padding:`${Z.paddingSM}px`,overflow:"hidden"},onDragOver:xt,onDragLeave:ot,onDrop:et,children:[l.jsx(Dk,{images:me,token:Z,allowImages:c,onPreview:se,onClear:ge}),l.jsx(Lk,{visible:He,token:Z}),l.jsxs(Pe,{vertical:!0,style:{gap:Z.marginXS,minHeight:132,width:"100%"},children:[l.jsx(Nk,{value:e,placeholder:yn,disabled:o,token:Z,highlightSegments:On,textAreaRef:z,highlightOverlayRef:pe,onChange:t,onKeyDown:Mn,onPaste:$t,onScrollSync:jt}),l.jsxs(Pe,{align:"center",justify:"space-between",gap:Z.marginSM,wrap:"wrap",style:{rowGap:Z.marginXS},children:[l.jsx(Pe,{align:"center",gap:Z.marginXS,wrap:"wrap",style:{minWidth:0,flex:"1 1 260px"},children:l.jsx(zk,{allowImages:c,disabled:o,isInputLocked:I,token:Z,fileInputRef:Q,onFileInputChange:Yt,onFileReferenceButtonClick:_,extraControl:T})}),l.jsx(Bk,{allowRetry:F,hasMessages:$,isStreaming:A,isInputLocked:I,canCancel:L,disabled:o,onRetry:Cn,onCancel:N,onSubmit:yt,value:e,images:me,isOverCharLimit:ie,token:Z,statusIndicator:m,submitButtonLabel:P})]})]})]}),l.jsx(Wk,{charCount:he,maxCharCount:E,isOverCharLimit:ie,isNearCharLimit:ue,isProcessingAttachments:we,token:Z}),c&&l.jsx(Ek,{visible:De,images:me,currentIndex:j,onClose:()=>Fe(!1)})]})}),{Text:sp}=ht,{useToken:iT}=dt,lT=({text:e,onClose:t})=>{const{token:n}=iT(),{t:r}=Ge(),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(Ye,{style:{width:"100%",justifyContent:"space-between",alignItems:"flex-start"},children:[l.jsxs("div",{style:{flex:1},children:[l.jsx(sp,{style:{fontSize:n.fontSizeSM,color:n.colorPrimary},children:r("chat.input.referencing")}),l.jsx(sp,{style:{fontSize:n.fontSizeSM,color:n.colorTextSecondary,marginLeft:n.marginSM},ellipsis:!0,children:o})]}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(Os,{}),onClick:t,style:{marginLeft:n.marginXS,color:n.colorTextSecondary,borderRadius:999}})]})})},nv="mermaid_enhancement_enabled",cT=()=>localStorage.getItem(nv)!=="false",x$=e=>{localStorage.setItem(nv,e.toString())},uT=()=>`
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.`,td="task_enhancement_enabled",op="todo_enhancement_enabled",dT=e=>e==="false",fT=()=>{let e=localStorage.getItem(td);if(e===null){const t=localStorage.getItem(op);t!==null&&(e=t,localStorage.setItem(td,t),localStorage.removeItem(op))}return!dT(e)},w$=e=>{localStorage.setItem(td,e.toString())},hT=()=>`
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
+ `,rv=()=>{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"},pT=e=>{switch(e){case"windows":return"Windows";case"macos":return"macOS";case"linux":return"Linux";default:return"Unknown OS"}},mT=()=>{const e=rv(),n=`## 🖥️ Operating System Information
88
+
89
+ You are running on **${pT(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},sv="copilot_conclusion_with_options_enhancement_enabled",ov=()=>localStorage.getItem(sv)==="true",_$=e=>{try{localStorage.setItem(sv,e.toString())}catch(t){console.error("[copilotConclusionWithOptionsEnhancement] Failed to persist setting:",t)}},gT=()=>"\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",C$=()=>["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(" "),av="bamboo_system_prompt_enhancement",yT=()=>["## 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
+ `),vT=e=>e.map(n=>n.trim()).filter(n=>n.length>0).join(`
122
+
123
+ `),bT=()=>{try{return localStorage.getItem(av)??""}catch(e){return console.error("Failed to load system prompt enhancement:",e),""}},k$=e=>{try{const t=e.trim()?e:"";localStorage.setItem(av,t)}catch(t){console.error("Failed to save system prompt enhancement:",t)}},ST=e=>{const t=[];t.push(mT().trim()),t.push(yT().trim());const n=bT().trim();return n&&t.push(n),cT()&&t.push(uT().trim()),fT()&&t.push(hT().trim()),(e??"").trim().toLowerCase()==="copilot"&&ov()&&t.push(gT().trim()),t},xT=e=>vT(ST(e));function sf(e){const t=Nt(s=>s.providerConfig),n=ne($r(e??null));return b.useMemo(()=>{var c,d,f,m,g,y,x;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?(m=(f=n==null?void 0:n.config)==null?void 0:f.model)==null?void 0:m.trim():void 0;return a&&a!=="unknown"?a:((x=(y=(g=t.defaults)==null?void 0:g.chat)==null?void 0:y.model)==null?void 0:x.trim())||void 0},[n,t,e])}function wT(e){const t=sf(e),n=Nt(r=>r.providerConfig);return b.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 iv(e){const t=Nt(s=>s.isProviderModelRefEnabled),n=Nt(s=>s.selectedModelRef),r=Nt(s=>s.providerConfig.defaults);return b.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 _T(){const e=Nt(t=>t.getFastModelRef);return b.useMemo(()=>e(),[e])}function CT(e){var ve;const{sessionId:t,addMessage:n,updateSession:r}=e,{modal:s,message:o}=Dn.useApp(),{t:a}=Ge(),i=b.useRef(null),c=b.useRef(null),d=b.useRef(""),f=b.useRef(new tr),m=ne(G=>G.agentAvailability),g=ne(G=>G.setAgentAvailability),y=ne(G=>G.checkAgentAvailability),x=ne(G=>G.startAgentHealthCheck),S=ne(G=>G.markOptimisticStart),_=ne(G=>G.markRetryStart),E=ne(G=>G.markSettleTimeout),T=ne(G=>G.resetSession),P=ne(G=>G.applyExecutionStarted),C=sf(t),A=Nt(G=>G.currentProvider),L=Nt(G=>G.getProviderType)(A),$=ne(G=>t&&G.chats.find(he=>he.id===t)||null),F=iv((ve=$==null?void 0:$.config)==null?void 0:ve.model_ref);b.useEffect(()=>{x()},[x]);const te=b.useCallback(()=>{var he;(he=i.current)==null||he.abort();const G=$==null?void 0:$.id;G&&f.current.stopGeneration(G).catch(_e=>{console.error("[useMessageStreaming] Failed to stop generation:",_e)})},[$==null?void 0:$.id]),N=b.useCallback(G=>{var se;const he=ne.getState(),ie=(Array.isArray(he.chats)?he.chats:[]).find(ge=>ge.id===G),ue=io(G)(he),me=ue?{sessionId:G,question:ue.question,options:ue.options,allowCustom:ue.allowCustom,toolCallId:ue.toolCallId}:null,ke=(se=ie==null?void 0:ie.config)==null?void 0:se.syncCursor,De=!!me||!!(ke!=null&&ke.hasPendingQuestion),Fe=(me==null?void 0:me.toolCallId)??(ke==null?void 0:ke.pendingQuestionToolCallId)??null,j={client_message_count:(ke==null?void 0:ke.messageCount)??(ie==null?void 0:ie.messageCount)??0,client_last_message_id:(ke==null?void 0:ke.lastMessageId)??null,client_has_pending_question:De,client_pending_question_tool_call_id:Fe};return Re("[Streaming]","buildClientSync",{sessionId:G,generation:Wt(G)(he),syncCursor:ke??null,messageCount:(ie==null?void 0:ie.messageCount)??null,respondMode:me?{toolCallId:me.toolCallId??null,question:me.question}:null,clientSync:j}),j},[]),O=b.useCallback((G,he)=>{const _e=he.sync;if(!_e)return;const ie=ne.getState(),me=(Array.isArray(ie.chats)?ie.chats:[]).find(ke=>ke.id===G);me&&(Re("[Streaming]","applyExecuteSyncSnapshot",{sessionId:G,generation:Wt(G)(ne.getState()),runId:he.run_id??null,sync:_e}),r(G,{messageCount:_e.server_message_count,config:{...me.config||{},syncCursor:{messageCount:_e.server_message_count,lastMessageId:_e.server_last_message_id??null,hasPendingQuestion:_e.has_pending_question,pendingQuestionToolCallId:_e.pending_question_tool_call_id??null}}}))},[r]),Q=b.useCallback(async G=>{try{return await kt.get(`respond/${G}/pending`)}catch(he){return console.warn(`[useMessageStreaming] Failed to fetch pending question for ${G}:`,he),{has_pending_question:!1}}},[]),W=b.useCallback(async(G,he,_e)=>{var Fe,j;Re("[Streaming]","recoverAfterNeedSync.start",{sessionId:G,generation:Wt(G)(ne.getState()),executeSync:he,reasoningEffort:_e??null}),E(G),await ne.getState().loadChatHistory(G,{mode:"replace"});const ie=await Q(G),ue=ne.getState().setPendingQuestion,me=ne.getState().clearPendingQuestion;if(ie.has_pending_question){Re("[Streaming]","recoverAfterNeedSync.pendingQuestion",{sessionId:G,generation:Wt(G)(ne.getState()),pending:ie}),ue(G,{question:ie.question||"",options:ie.options||[],allowCustom:ie.allow_custom??!0,toolCallId:ie.tool_call_id??null});const se=ne.getState().chats.find(ge=>ge.id===G);return se&&r(G,{config:{...se.config||{},syncCursor:{messageCount:se.messageCount??se.messages.length,lastMessageId:((j=(Fe=se.config)==null?void 0:Fe.syncCursor)==null?void 0:j.lastMessageId)??null,hasPendingQuestion:!0,pendingQuestionToolCallId:ie.tool_call_id??null}}}),null}if(me(G),!((he==null?void 0:he.has_pending_user_message)??!1))return Re("[Streaming]","recoverAfterNeedSync.noPendingUserMessage",{sessionId:G,generation:Wt(G)(ne.getState()),executeSync:he}),null;Re("[Streaming]","recoverAfterNeedSync.retryExecute",{sessionId:G,generation:Wt(G)(ne.getState()),executeSync:he}),S(G),await new Promise(se=>setTimeout(se,0));const De=_e?await f.current.execute(G,void 0,_e,N(G),F??void 0):await f.current.execute(G,void 0,void 0,N(G),F??void 0);return Re("[Streaming]","recoverAfterNeedSync.retryExecute.result",{sessionId:G,generation:Wt(G)(ne.getState()),status:De.status,runId:De.run_id??null,sync:De.sync??null}),O(G,De),De},[F,O,N,Q,S,E,r]),z=b.useCallback(async(G,he,_e)=>{var ke,De;let ie=he;Re("[Streaming]","handleExecuteResult.start",{sessionId:G,generation:Wt(G)(ne.getState()),status:ie.status,runId:ie.run_id??null,sync:ie.sync??null}),O(G,ie);const ue=2;let me=0;for(;(ke=ie.sync)!=null&&ke.need_sync&&me<ue;){Re("[Streaming]","handleExecuteResult.needSync",{sessionId:G,generation:Wt(G)(ne.getState()),syncRecoveries:me,sync:ie.sync});const Fe=await W(G,ie.sync,_e);if(me+=1,!Fe){E(G);return}ie=Fe,O(G,ie)}if((De=ie.sync)!=null&&De.need_sync){console.warn(`[useMessageStreaming] Execute remains out-of-sync after ${ue} recovery attempt(s) for session ${G}.`,ie.sync),E(G);return}if(["started","already_running"].includes(ie.status)){if(ie.run_id){const Fe=Wt(G)(ne.getState());P(G,ie.run_id,Fe)}return}if(ie.status==="completed"){Re("[Streaming]","[Agent] Session already completed"),E(G);return}throw console.error("[Agent] Execute failed:",ie.status),E(G),new Error(`Execute failed: ${ie.status}`)},[O,W,E,P]),pe=b.useCallback(async(G,he,_e,ie,ue)=>{var ke,De,Fe;if(!C)throw new Error(a("chat.model.noModelSelected"));const me=new AbortController;i.current=me;try{const j=xT(L).trim(),se=L==="copilot"&&ov(),we=(((ke=$==null?void 0:$.config)==null?void 0:ke.workspacePath)||"").trim().replace(/\/+$/,"").replace(/\\+$/,"");Re("[Streaming]","sendWithAgent.start",{sessionId:he,generation:Wt(he)(ne.getState()),userMessageId:_e.id,contentLength:G.length,imageCount:((De=_e.images)==null?void 0:De.length)??0,reasoningEffort:ie??null,selectedSkillCount:(ue==null?void 0:ue.length)??0,workspacePath:we||null,activeModel:C,activeModelRef:F??null});const He=await f.current.sendMessage({message:G,session_id:he,enhance_prompt:j||void 0,copilot_conclusion_with_options_enhancement_enabled:se,workspace_path:we||void 0,selected_skill_ids:ue&&ue.length>0?ue:void 0,images:(Fe=_e.images)==null?void 0:Fe.filter(et=>!!et.base64).map(et=>({base64:et.base64,name:et.name,size:et.size,type:et.type})),model:C,...F?{model_ref:F,provider:F.provider}:{}});Re("[Streaming]","sendWithAgent.chatResponse",{sessionId:he,generation:Wt(he)(ne.getState()),response:He});const{session_id:xt}=He;if(xt!==he&&console.warn(`[useMessageStreaming] Backend returned unexpected session_id=${xt} for sessionId=${he}`),He.goal_command){const et=He.goal_command;if(Re("[Streaming]","sendWithAgent.goalCommand",{sessionId:he,action:et.action,shouldExecute:et.should_execute,hasGoldConfig:et.gold_config!=null}),et.gold_config!==void 0){const $t=ne.getState().chats.find(Yt=>Yt.id===he);$t!=null&&$t.config&&ne.getState().updateSession(he,{config:{...$t.config,goldConfig:et.gold_config??null}})}if(!et.should_execute){T(he),await ne.getState().loadChatHistory(he,{mode:"replace"}),await ne.getState().refreshChatsNow();return}await ne.getState().loadChatHistory(he,{mode:"replace"})}Re("[Streaming]","sendWithAgent.loadHistory.beforeExecute",{sessionId:he,generation:Wt(he)(ne.getState())});const ot=ie?await f.current.execute(he,void 0,ie,N(he),F??void 0):await f.current.execute(he,void 0,void 0,N(he),F??void 0);Re("[Streaming]","sendWithAgent.executeResponse",{sessionId:he,generation:Wt(he)(ne.getState()),status:ot.status,runId:ot.run_id??null,sync:ot.sync??null}),await z(he,ot,ie)}catch(j){throw Re("[Streaming]","sendWithAgent.error",{sessionId:he,generation:Wt(he)(ne.getState()),error:j}),j}},[C,F,N,$,A,L,t,z,T,a]),Z=b.useCallback(async(G,he,_e,ie)=>{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(!C){s.error({title:a("chat.model.noModelSelected"),content:a("chat.model.selectModelBeforeSend")});return}let ue=m;if(ue===null&&(ue=await y()),!ue){o.error(a("chat.streaming.agentUnavailable"));return}if(!C){o.error(a("chat.streaming.modelConfigNotLoaded"));return}const me=t,ke=(he==null?void 0:he.map(Fe=>({id:Fe.id,base64:Fe.base64,name:Fe.name,size:Fe.size,type:Fe.type})))||[],De={role:"user",content:G,id:crypto.randomUUID(),createdAt:new Date().toISOString(),images:ke};Re("[Streaming]","sendMessage.localAdd.before",{sessionId:me,generation:Wt(me)(ne.getState()),userMessageId:De.id,contentLength:G.length,imageCount:ke.length,reasoningEffort:_e??null,selectedSkillCount:(ie==null?void 0:ie.length)??0}),await n(me,De),Re("[Streaming]","sendMessage.localAdd.after",{sessionId:me,generation:Wt(me)(ne.getState()),userMessageId:De.id}),S(me),Re("[Streaming]","sendMessage.markOptimisticStart",{sessionId:me,generation:Wt(me)(ne.getState())}),await new Promise(Fe=>setTimeout(Fe,0));try{Re("[Streaming]","[useChatStreaming] Using Agent Server"),await pe(G,me,De,_e,ie),Re("[Streaming]","sendMessage.completed",{sessionId:me,generation:Wt(me)(ne.getState()),userMessageId:De.id})}catch(Fe){if(c.current&&Ut.clear(me,c.current),c.current=null,d.current="",Fe instanceof Error&&Fe.name==="AbortError")o.info(a("chat.streaming.requestCancelled"));else{console.error("[useChatStreaming] Failed to send message:",Fe);const j=Fe instanceof Error?Fe.message:String(Fe??"");Vu(j)?o.error(Gu(j)):(o.error(a("chat.streaming.sendFailed")),g(!1))}Re("[Streaming]","sendMessage.error",{sessionId:me,generation:Wt(me)(ne.getState()),error:Fe}),E(me)}finally{Re("[Streaming]","sendMessage.finally",{sessionId:me,generation:Wt(me)(ne.getState()),streamingMessageId:c.current}),i.current=null,c.current&&Ut.clear(me,c.current),c.current=null,d.current=""}},[m,o,y,$,t,n,s,pe,g,C,a,S,E]),ce=b.useCallback(async(G,he="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(!C){s.error({title:a("chat.model.noModelSelected"),content:a("chat.model.selectModelBeforeRetry")});return}let _e=m;if(_e===null&&(_e=await y()),!_e){o.error(a("chat.streaming.agentUnavailable"));return}const ie=t;c.current&&Ut.clear(ie,c.current),c.current=null,d.current="";try{const ue=he==="error_retry"?"error_retry":"after_last_user",me=await f.current.truncateSessionMessages(ie,{mode:ue});(he==="regenerate"||(me.messages_removed??0)>0)&&await ne.getState().loadChatHistory(ie,{mode:"replace"}),_(ie);const ke=G?await f.current.execute(ie,void 0,G,N(ie),F??void 0):await f.current.execute(ie,void 0,void 0,N(ie),F??void 0);await z(ie,ke,G)}catch(ue){console.error("[useMessageStreaming] Retry failed:",ue);const me=ue instanceof Error?ue.message:String(ue??"");Vu(me)?o.error(Gu(me)):o.error(a("chat.streaming.retryFailed")),E(ie)}finally{i.current=null}},[C,F,m,o,N,y,$,t,z,s,a,_,E]);return{sendMessage:Z,retryLastTurn:ce,cancel:te,agentAvailable:m}}const kT=e=>{const t=b.useRef(new Map),n=b.useRef(!1),[r,s]=b.useState(null);b.useEffect(()=>{s(null),n.current=!1},[e]);const o=b.useCallback(d=>{if(!e)return;const f=d.trim();if(!f)return;const m=t.current.get(e)??[];if(m[m.length-1]===f)return;const g=[...m,f].slice(-50);t.current.set(e,g),s(null),n.current=!1},[e]),a=b.useCallback((d,f)=>{if(!e)return{value:null,applied:!1};const m=t.current.get(e)??[];if(m.length===0)return{value:null,applied:!1};const g=f.trim();if(d==="previous"){if(g.length>0&&r===null)return{value:null,applied:!1};const x=r??m.length,S=Math.max(0,x-1);return S===r?{value:null,applied:!1}:(s(S),n.current=!0,{value:m[S]??null,applied:!0})}if(r===null)return{value:null,applied:!1};const y=r+1;return y>=m.length?(s(null),n.current=!0,{value:"",applied:!0}):(s(y),n.current=!0,{value:m[y]??null,applied:!0})},[e,r]),i=b.useCallback(()=>{if(n.current){n.current=!1;return}r!==null&&s(null)},[r]),c=b.useCallback(()=>{e&&(t.current.delete(e),s(null),n.current=!1)},[e]);return{recordEntry:o,navigate:a,acknowledgeManualInput:i,clearHistory:c}},TT=[{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:{}}],PT=e=>[...TT.filter(n=>!e.some(r=>r.name===n.name&&r.type===n.type)),...e],Cs=class Cs{constructor(){Rt(this,"cache",null);Rt(this,"cacheTime",0);Rt(this,"CACHE_TTL",3e4)}static getInstance(){return Cs.instance||(Cs.instance=new Cs),Cs.instance}async listCommands(t=!1){const n=Date.now();if(!t&&this.cache&&n-this.cacheTime<this.CACHE_TTL)return this.cache;try{const r=await Ve.get("commands");if(!Array.isArray(r.commands))throw new Error("Invalid command list response");return this.cache=PT(r.commands),this.cacheTime=n,Re("[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 Ve.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}};Rt(Cs,"instance");let Xa=Cs;const So=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}},ET=({setContent:e,onWorkflowDraftChange:t,acknowledgeManualInput:n,currentSessionId:r,textAreaRef:s,content:o})=>{const[a,i]=b.useState(!1),[c,d]=b.useState(""),[f,m]=b.useState(null);b.useEffect(()=>{m(null),t==null||t(null)},[r,t]);const g=b.useCallback((A,I)=>{const L=A.trimStart(),$=`/${I}`;if(!L.startsWith($))return!1;const F=L.charAt($.length);return!F||/\s/.test(F)},[]),y=b.useCallback(()=>{m(null),t==null||t(null)},[t]),x=b.useCallback((A,I)=>{if(!g(A,I.name))return;const L=`/${I.name}`,F=A.trim().slice(L.length).trim(),te=[I.content,F].filter(Boolean).join(`
124
+
125
+ `);t==null||t({...I,content:te})},[g,t]),S=b.useCallback(A=>{n(),f&&!g(A,f.name)&&y(),f&&g(A,f.name)&&x(A,f),e(A)},[n,y,g,f,x,e]),_=b.useCallback(A=>{i(A.isTriggerActive),d(A.isTriggerActive?A.searchText:"")},[]),E=b.useCallback(async A=>{var z,pe,Z,ce,ve,G;i(!1);const L=(he=>{var ue;if(he.type==="goal"||he.type!=="mcp")return he.name;const _e=(ue=he.metadata)==null?void 0:ue.originalName;if(typeof _e=="string"&&_e.trim())return _e.trim();const ie=So(he.name);return ie!=null&&ie.toolName?ie.toolName:he.displayName||he.name})(A),$=(pe=(z=s.current)==null?void 0:z.resizableTextArea)==null?void 0:pe.textArea,F=($==null?void 0:$.selectionStart)??o.length;let te,N;const Q=o.substring(0,F).match(/\/([a-zA-Z0-9_-]*)$/);if(Q){const he=F-Q[0].length,_e=o.substring(0,he),ie=o.substring(F);te=`${_e}/${L} ${ie}`,N=`${_e}/${L} `.length}else if(o.trim()==="")te=`/${L} `,N=te.length;else{const he=o.substring(0,F),_e=o.substring(F);te=`${he}/${L} ${_e}`,N=`${he}/${L} `.length}if(e(te),setTimeout(()=>{$&&($.selectionStart=N,$.selectionEnd=N,$.focus())},0),A.type!=="workflow"){const he={id:`command-draft-${A.id}`,name:L,content:"",createdAt:new Date().toISOString(),type:A.type,displayName:A.displayName,mcpAlias:A.type==="mcp"?A.name:void 0,mcpServerId:A.type==="mcp"?(Z=A.metadata)==null?void 0:Z.serverId:void 0,mcpServerName:A.type==="mcp"?(ce=A.metadata)==null?void 0:ce.serverName:void 0,mcpOriginalName:A.type==="mcp"?(ve=A.metadata)==null?void 0:ve.originalName:void 0};m(he),t==null||t(he);return}const W=Xa.getInstance();try{const he=A.id.startsWith("workflow-")?A.id.slice(9):A.id,ie=((G=(await W.getCommand(A.type,he)).content)==null?void 0:G.trim())||"";if(ie){const ue={id:`command-draft-${A.id}`,name:A.name,content:ie,createdAt:new Date().toISOString(),type:A.type,displayName:A.displayName};m(ue),t==null||t(ue)}else y()}catch(he){console.error(`[InputContainer] Failed to apply command '${A.name}':`,he),y()}},[y,t,e,o,s]),T=b.useCallback(async A=>{try{const $=(await Xa.getInstance().listCommands()).find(F=>F.id===A.id&&F.type===A.type);if(!$){console.error(`[InputContainer] Command '${A.id}' of type '${A.type}' not found`),e(`/${A.name} `),y();return}await E($)}catch(I){console.error(`[InputContainer] Failed to select command '${A.name}':`,I),e(`/${A.name} `),y()}},[E,y,e]),P=b.useCallback(()=>{i(!1)},[]),C=b.useCallback(async A=>{i(!1);try{const $=(await Xa.getInstance().listCommands()).find(F=>F.name===A);$?await E($):(console.error(`[InputContainer] Command '${A}' not found in auto-complete`),e(`/${A} `),y())}catch(I){console.error(`[InputContainer] Failed to load command '${A}' in auto-complete:`,I),e(`/${A} `),y()}},[E,y,e]);return{selectedCommand:f,showCommandSelector:a,commandSearchText:c,clearCommandDraft:y,matchesCommandToken:g,handleInputChange:S,handleCommandChange:_,handleCommandSelect:T,handleCommandSelectorCancel:P,handleAutoComplete:C,setShowCommandSelector:i}};class MT{constructor(t={}){Rt(this,"cache",null);Rt(this,"options");Rt(this,"validateWorkspacePath",this.validatePath.bind(this));Rt(this,"getRecentWorkspaces",this.getRecent.bind(this));Rt(this,"addRecentWorkspace",this.addRecent.bind(this));Rt(this,"removeRecentWorkspace",this.removeRecent.bind(this));Rt(this,"clearRecentWorkspaces",this.clearRecent.bind(this));Rt(this,"getWorkspaceSuggestions",this.getCombinedSuggestions.bind(this));Rt(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 Ve.post("workspace/validate",{path:t})}async getRecent(){var t;if(this.isCacheValid())return this.cache.recentWorkspaces;try{const n=await Ve.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 Ve.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 Ve.get("workspace/suggestions")}async browseFolder(t){return Ve.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 Ve.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 Ve.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 AT=new MT,RT=({content:e,setContent:t,currentSessionId:n,currentChat:r,updateSession:s,messageApi:o})=>{const[a,i]=b.useState(new Map),[c,d]=b.useState([]),[f,m]=b.useState(!1),[g,y]=b.useState(""),[x,S]=b.useState(!1),[_,E]=b.useState(""),[T,P]=b.useState(!1),[C,A]=b.useState(null),[I,L]=b.useState(!1),$=b.useRef(null);b.useEffect(()=>{x&&E((r==null?void 0:r.config.workspacePath)??"")},[x,r==null?void 0:r.config.workspacePath]),b.useEffect(()=>{m(!1),y(""),d([]),i(new Map),$.current=(r==null?void 0:r.config.workspacePath)??null},[n,r==null?void 0:r.config.workspacePath]);const F=b.useCallback(async(pe,Z)=>{P(!0),d([]),A(null);try{const ce=await AT.listWorkspaceFiles(Z);d(ce),$.current=Z}catch(ce){console.error("Failed to load workspace files:",ce),A(ce instanceof Error?ce.message:"Workspace file browsing is unavailable.")}finally{P(!1)}},[]),te=b.useCallback(pe=>{if(y(pe.searchText),!pe.isTriggerActive){m(!1);return}if(!n||!r){m(!1);return}const Z=r.config.workspacePath;if(!Z){E(""),S(!0),m(!1);return}m(!0),($.current!==Z||c.length===0)&&F(n,Z)},[r,n,F,c.length]),N=b.useCallback(pe=>{const Z=e.lastIndexOf("@");let ce;Z>=0&&e.substring(Z).match(/^@[a-zA-Z0-9._\\-\\/\\\\]*$/)?ce=`${e.slice(0,Z)}@${pe.name} `:ce=e.trim()?`${e.trim()} @${pe.name} `:`@${pe.name} `,t(ce),i(ve=>{const G=new Map(ve);return G.set(pe.name,pe),G}),m(!1),y("")},[e,t]),O=b.useCallback(()=>{m(!1)},[]),Q=b.useCallback(()=>{if(!n||!r)return;const pe=r.config.workspacePath;if(!pe){E(""),S(!0),m(!1);return}y(""),m(!0),($.current!==pe||c.length===0)&&F(n,pe)},[r,n,F,c.length]),W=b.useCallback(()=>{S(!1),E("")},[]),z=b.useCallback(async pe=>{if(!r||!n)return;const Z=pe.trim();if(!Z){o.error(Pt.t("chat.view.workspacePathEmpty"));return}L(!0);try{s(n,{config:{...r.config,workspacePath:Z}}),S(!1),E(""),m(!1),A(null)}catch(ce){const ve=ce instanceof Error?ce.message:"Unable to save workspace path";o.error(ve)}finally{L(!1)}},[r,n,o,s]);return{fileReferences:a,setFileReferences:i,workspaceFiles:c,showFileSelector:f,setShowFileSelector:m,fileSearchText:g,isWorkspaceLoading:T,workspaceError:C,isWorkspaceModalVisible:x,workspacePathInput:_,isSavingWorkspace:I,setWorkspacePathInput:E,setIsWorkspaceModalVisible:S,handleFileReferenceChange:te,handleFileReferenceSelect:N,handleFileSelectorCancel:O,handleFileReferenceButtonClick:Q,handleWorkspaceModalCancel:W,handleWorkspaceModalSubmit:z,fetchWorkspaceFiles:F}},jT=()=>{const[e,t]=b.useState([]),n=b.useCallback(o=>{t(a=>[...a,...o])},[]),r=b.useCallback(o=>{t(a=>a.filter(i=>i.id!==o))},[]),s=b.useCallback(()=>{t([])},[]);return{attachments:e,setAttachments:t,handleAttachmentsAdded:n,handleAttachmentRemove:r,handleClearAttachments:s}},IT=({attachments:e,referenceText:t,selectedWorkflow:n,matchesWorkflowToken:r,fileReferences:s,reasoningEffort:o,sendMessage:a,recordEntry:i,clearWorkflowDraft:c,setContent:d,setReferenceText:f,setAttachments:m,setFileReferences:g})=>({handleSubmit:b.useCallback(async(x,S)=>{const _=x.trim(),E=nT(e),T=(t==null?void 0:t.trim())??"";let P=_,C;if(n!=null&&n.content&&n.type==="workflow"){const I=`/${n.name}`;if(r(_,n.name)){const $=_.slice(I.length).trim();P=[n.content,$].filter(Boolean).join(`
126
+
127
+ `)}}else if((n==null?void 0:n.type)==="skill"){const I=`/${n.name}`;if(r(_,n.name)){const $=_.slice(I.length).trim();P=[`[User explicitly selected skill: ${n.displayName||n.name} (ID: ${n.name})]`,$].filter(Boolean).join(`
128
+
129
+ `),C=[n.name]}}else if((n==null?void 0:n.type)==="mcp"){const I=`/${n.name}`;if(r(_,n.name)){const $=_.slice(I.length).trim();P=[`[User explicitly selected MCP tool: ${n.mcpAlias||n.displayName||n.name}]`,$].filter(Boolean).join(`
130
+
131
+ `)}}if(!P&&!E&&(!S||S.length===0))return;const A=[T,P,E].filter(Boolean).join(`
132
+
133
+ `);if(i(A),d(""),c(),s.size>0){const I=Array.from(A.matchAll(/@([^\\s]+)/g));if(I.length>0){const L=[];for(const $ of I){const F=$[1],te=s.get(F);te&&L.push(te)}if(L.length>0){const $=JSON.stringify({type:"file_reference",paths:L.map(F=>F.path),display_text:A});await a($,S,o,C)}else await a(A,S,o,C)}else await a(A,S,o,C)}else await a(A,S,o,C);f(null),m([]),g(new Map)},[e,c,s,r,i,o,n,a,m,d,g,f,t])}),OT=({currentSessionId:e,currentChat:t,currentMessages:n,reasoningEffort:r,retryLastTurn:s,navigate:o})=>{const a=b.useCallback(async(c="regenerate")=>{if(!e||!t)return;const d=[...n];d.length===0||[...d].reverse().findIndex(m=>m.role==="user")===-1||await s(r,c)},[t,e,n,r,s]),i=b.useCallback((c,d)=>{const f=o(c,d);return f.applied?f.value:null},[o]);return{retryLastMessage:a,handleHistoryNavigate:i}},$T=({referenceText:e,isToolSpecificMode:t,isRestrictConversation:n,allowedTools:r,autoToolPrefix:s,t:o})=>o(e?"chat.input.placeholderWithReference":"chat.input.placeholderWithWorkflows"),LT=new Set(["openai","anthropic","gemini","copilot","bodhi"]),DT=(e,t)=>{if(!(t!=null&&t.trim()))return;const n=t.trim();if(LT.has(n)){const a=e.providers[n];return a==null?void 0:a.reasoning_effort}const s=e.providers[n];return s==null?void 0:s.reasoning_effort},FT=(e,t,n)=>{var s,o,a,i,c;const r=((s=t==null?void 0:t.provider)==null?void 0:s.trim())||((i=(a=(o=e.defaults)==null?void 0:o.chat)==null?void 0:a.provider)==null?void 0:i.trim())||(n==null?void 0:n.trim())||((c=e.provider)==null?void 0:c.trim());return DT(e,r)};function NT({value:e,onChange:t,disabled:n,dataTestId:r,appearance:s="default"}){const{token:o}=dt.useToken(),a=Nt(S=>S.catalog),i=Nt(S=>S.getProviderDisplayLabel);b.useEffect(()=>{a||Nt.getState().loadCatalog()},[a]);const c=b.useMemo(()=>{if(!(a!=null&&a.models))return[];const S={};for(const T of a.models){const P=T.reference.provider;S[P]||(S[P]={display:T.provider_display_name,models:[]}),S[P].models.push(T)}const _=[];return Object.keys(S).forEach((T,P)=>{const C=S[T];P>0&&_.push({type:"divider"}),_.push({type:"group",label:C.display,children:C.models.map(A=>({key:`${A.reference.provider}/${A.reference.model}`,label:l.jsxs(Ye,{size:4,children:[l.jsx("span",{children:A.display_name}),A.capabilities.supports_vision&&l.jsx(Je,{color:"blue",style:{fontSize:10,lineHeight:"16px",padding:"0 3px"},children:"Vision"})]})}))})}),_},[a]),d=e?`${e.provider}/${e.model}`:void 0,f=e?i(e.provider):void 0,m=e?`${f||e.provider}/${e.model}`:Pt.t("chat.model.selectModel"),g=b.useCallback(S=>{const[_,...E]=S.key.split("/"),T=E.join("/");_&&T&&t({provider:_,model:T})},[t]),y=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},x=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(Ye,{size:4,"data-tour-id":"model-picker",children:l.jsx(uo,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:d?[d]:[],items:c,style:{maxHeight:"50vh",overflowY:"auto"},onClick:g},disabled:n,children:l.jsx(je,{"data-testid":r,type:s==="contrast"?"default":"text",size:"small",block:s==="contrast",disabled:n,style:y,title:m,children:l.jsxs(Ye,{size:4,style:{width:"100%",justifyContent:"space-between"},children:[l.jsx("span",{style:x,children:m}),l.jsx(Ms,{style:{fontSize:10}})]})})})})}const T$={copilot:"GitHub Copilot",openai:"OpenAI",anthropic:"Anthropic",gemini:"Google Gemini",bodhi:"Bodhi"},zT=[{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"}],BT=[{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"}],WT=[{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"}],UT=[{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4o-mini",label:"GPT-4o Mini"}],qT=b.lazy(()=>en(()=>import("./index-CoGZNEv_.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),HT=b.lazy(()=>en(()=>import("./index-D-NMfOT0.js"),__vite__mapDeps([8,1,2,3,4,5,6,9]),import.meta.url)),YT=b.lazy(()=>en(()=>import("./index-Bt1I6ZoX.js"),__vite__mapDeps([10,1,2,3,5,4,6]),import.meta.url)),XT=b.lazy(()=>en(()=>import("./index-CzInZqzj.js"),__vite__mapDeps([11,1,2,3]),import.meta.url)),{useToken:KT}=dt,ap="chat-send-message",ip="reference-text",VT="chat-model-options-cache-v1",lv=24*60*60*1e3,GT=["low","medium","high","xhigh","max"],JT=[],QT=1024,ZT=3,qo=(e,t)=>{},cv=e=>`${VT}:${e}`,eP=e=>{if(typeof window>"u")return null;try{const t=localStorage.getItem(cv(e));if(!t)return null;const n=JSON.parse(t);return!n||!Array.isArray(n.options)||Date.now()-n.timestamp>lv?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}},tP=(e,t)=>{if(!(typeof window>"u"))try{const n={timestamp:Date.now(),options:t};localStorage.setItem(cv(e),JSON.stringify(n))}catch{}},nP=async e=>{const t=Hn.getInstance();try{const n=await t.loadModelOptionsCache(e);if(n)return Date.now()-n.timestamp>lv?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string")}catch{}return eP(e)},rP=async(e,t)=>{const n=Hn.getInstance();try{await n.saveModelOptionsCache(e,t,Date.now())}catch{}tP(e,t)},sP=({sessionId:e,onWorkflowDraftChange:t,statusIndicator:n})=>{var mr,Po,as,Eo,mt;const{t:r}=Ge(),s=b.useRef(null),{token:o}=KT(),a=Jl(),i=Ya(de=>de.open),c=ne(de=>e??de.currentSessionId),d=ne(de=>de.currentSessionId),f=ne($r(c)),m=b.useMemo(()=>(f==null?void 0:f.messages)||[],[f==null?void 0:f.messages]),g=ne(de=>de.addMessage),y=ne(de=>de.updateSession),x=ne(Oy(c)),S=ne($y(c)),E=ne(Ly(c))||(f==null?void 0:f.isRunning)===!0&&S,T=ne(de=>de.markRespondStart),P=ne(de=>de.markSettleTimeout),C=ne(de=>de.applyExecutionStarted),A=ne(io(c)),I=ne(de=>de.clearPendingQuestion),L=b.useCallback(()=>{var lt,Ct;if(!c)return null;const de=(lt=ne.getState().executionBySession)==null?void 0:lt[c];return de?{phase:de.phase,generation:de.generation,backendRunId:de.backendRunId??null,backendIsRunning:de.backend.isRunning,hasPendingQuestion:de.interaction.pendingQuestion!=null,pendingQuestionToolCallId:((Ct=de.interaction.pendingQuestion)==null?void 0:Ct.toolCallId)??null,tokenCount:de.stream.tokenCount,hasTokens:de.stream.hasTokens,activeReasons:de.activeReasons}:null},[c]),$=sf(c),F=iv((mr=f==null?void 0:f.config)==null?void 0:mr.model_ref),te=Nt(de=>de.isProviderModelRefEnabled),N=ne(de=>c?de.inputStates[c]:void 0),O=ne(de=>de.setInputContent),Q=ne(de=>de.setReferenceText),W=ne(de=>de.setInputReasoningEffort),z=Nt(de=>de.currentProvider),pe=Nt(de=>de.providerConfig),Z=Nt(de=>de.getProviderType),ce=b.useMemo(()=>Z(z),[z,Z]),[ve,G]=b.useState([]),[he,_e]=b.useState(!1),[ie,ue]=b.useState(null),[me,ke]=b.useState(!1),De=(N==null?void 0:N.content)||"",Fe=(N==null?void 0:N.referenceText)||null,j=b.useMemo(()=>{var de,lt;return FT(pe,F,((lt=(de=f==null?void 0:f.config)==null?void 0:de.model_ref)==null?void 0:lt.provider)??z)},[F,(as=(Po=f==null?void 0:f.config)==null?void 0:Po.model_ref)==null?void 0:as.provider,pe,z]),se=b.useMemo(()=>c?jy(c):void 0,[c]),ge=((Eo=f==null?void 0:f.config)==null?void 0:Eo.reasoningEffort)??(N==null?void 0:N.reasoningEffort)??se??j??"medium",we=((mt=f==null?void 0:f.config)==null?void 0:mt.goldConfig)??null,He=(we==null?void 0:we.enabled)===!0,xt=(we==null?void 0:we.goal)??(we==null?void 0:we.evaluation_prompt)??"",ot=b.useCallback((de,lt)=>({...we??{},enabled:de,auto_answer_enabled:de,auto_continue_enabled:de,goal:lt.trim()||void 0,max_output_tokens:(we==null?void 0:we.max_output_tokens)??QT,max_auto_continuations:(we==null?void 0:we.max_auto_continuations)??ZT}),[we]),et=b.useCallback(de=>{c&&O(c,de)},[c,O]),$t=b.useCallback(de=>{c&&Q(c,de)},[c,Q]),Yt=b.useCallback(de=>{!c||!f||y(c,{config:{...f.config,goldConfig:de}})},[f,c,y]),Lt=b.useCallback(async de=>{if(c&&(W(c,de),!!f))try{await oo.patchSession(c,{reasoning_effort:de}),y(c,{config:{...f.config,reasoningEffort:de}})}catch(lt){console.warn("[InputContainer] Failed to persist reasoning effort:",lt)}},[f,c,W,y]),{sendMessage:On,retryLastTurn:jt,cancel:Mn}=CT({sessionId:c,addMessage:g,updateSession:y});b.useEffect(()=>{if(typeof window>"u")return;const de=Ot=>Ot?c===Ot:c!==null&&c===d,lt=Ot=>{const Mt=Ot;if(!Mt.detail||typeof Mt.detail.text!="string")return;const Dt=typeof Mt.detail.sessionId=="string"?Mt.detail.sessionId:null;if(!de(Dt))return;const ln=Mt.detail.text.trim();ln&&(Mt.detail.handled=!0,$t(ln),requestAnimationFrame(()=>{var at;(at=s.current)==null||at.focus()}))},Ct=Ot=>{var ln;const Mt=Ot,Dt=typeof((ln=Mt.detail)==null?void 0:ln.sessionId)=="string"?Mt.detail.sessionId:null;de(Dt)&&(Mt.detail&&(Mt.detail.handled=!0),requestAnimationFrame(()=>{var at;(at=s.current)==null||at.focus()}))};return window.addEventListener(ip,lt),window.addEventListener(Ol,Ct),()=>{window.removeEventListener(ip,lt),window.removeEventListener(Ol,Ct)}},[d,c,$t]);const{message:yt}=Dn.useApp(),Cn=!1,yn=!1,Bt=JT,Qt=void 0,{recordEntry:hn,navigate:ye,acknowledgeManualInput:Ue}=kT(c),{attachments:$e,setAttachments:Ke,handleAttachmentsAdded:Xt,handleAttachmentRemove:Fn,handleClearAttachments:tn}=jT(),Ie=ET({setContent:et,onWorkflowDraftChange:t,acknowledgeManualInput:Ue,currentSessionId:c,textAreaRef:s,content:De}),wt=RT({content:De,setContent:et,currentSessionId:c,currentChat:f,updateSession:y,messageApi:yt}),{setShowFileSelector:B}=wt;b.useEffect(()=>{Ie.showCommandSelector&&B(!1)},[Ie.showCommandSelector,B]);const{handleSubmit:oe}=IT({attachments:$e,referenceText:Fe,selectedWorkflow:Ie.selectedCommand,matchesWorkflowToken:Ie.matchesCommandToken,fileReferences:wt.fileReferences,reasoningEffort:ge,sendMessage:On,recordEntry:hn,clearWorkflowDraft:Ie.clearCommandDraft,setContent:et,setReferenceText:$t,setAttachments:Ke,setFileReferences:wt.setFileReferences}),D=A?{sessionId:c??"",question:A.question,options:A.options,allowCustom:A.allowCustom,toolCallId:A.toolCallId}:null,Ae=!!D,We=(D==null?void 0:D.options)||[],Ne=(D==null?void 0:D.allowCustom)??!0,it=b.useCallback(de=>de?!!io(de)(ne.getState()):!1,[]),pt=b.useCallback(async de=>{const lt=de.trim();if(!lt||!c)return;const Ot=io(c)(ne.getState());if(Ot&&!Ot.allowCustom&&Ot.options.length>0&&!Ot.options.includes(lt)){yt.warning(r("components.questionDialog.selectOptionWarning"));return}qo("input.respond:start",{trimmedLength:lt.length,pendingQuestionToolCallId:(D==null?void 0:D.toolCallId)??null,executionBefore:L()});const Mt=T(c,(D==null?void 0:D.toolCallId)??null);qo("input.respond:afterMarkRespondStart",{executionAfterMarkRespondStart:L()}),await new Promise(Dt=>setTimeout(Dt,0));try{const Dt={response:lt,reasoning_effort:ge};te()&&F&&(Dt.model_ref=F,Dt.provider=F.provider);const ln=await kt.post(`respond/${c}`,Dt);qo("input.respond:response",{sessionId:c,result:ln,executionAfterResponse:L()}),yt.success(r("components.questionDialog.responseSubmittedContinue")),et(""),I(c),typeof window<"u"&&window.dispatchEvent(new CustomEvent(ed,{detail:{sessionId:c}}));const at=ln==null?void 0:ln.auto_resume_status,Kn=ln==null?void 0:ln.run_id;qo("input.respond:resumeDecision",{sessionId:c,resumeStatus:at,runId:Kn??null,newGeneration:Mt,executionBeforeResumeDecision:L()}),at==="started"||at==="already_running"?(C(c,Kn??"",Mt),qo("input.respond:afterApplyExecutionStarted",{sessionId:c,resumeStatus:at,runId:Kn??null,newGeneration:Mt,executionAfterApplyExecutionStarted:L()})):(at==="error"||!at)&&(console.error("[InputContainer] Failed to auto-resume agent execution"),P(c))}catch(Dt){console.error("[InputContainer] Failed to submit respond:",Dt),yt.error(Dt instanceof Error?Dt.message:r("components.questionDialog.submitFailed")),P(c)}},[c,ge,F,te,yt,et,I,T,P,C,L,D==null?void 0:D.toolCallId,r]),It=b.useCallback(()=>{et(""),Ie.clearCommandDraft(),requestAnimationFrame(()=>{var de;(de=s.current)==null||de.focus()})},[Ie,et]);b.useCallback(async de=>{const lt=de.trim();if(!/^\/goal(?:\s|$)/i.test(lt))return!1;if(!c||!f)return yt.warning("Create or select a session before using /goal."),!0;const Ct=lt.replace(/^\/goal(?:\s+)?/i,"").trim(),Ot=Ct.toLowerCase();if(hn(lt),!Ct||Ot==="status"){const Mt=xt.trim(),Dt=Mt.length>120?`${Mt.slice(0,120)}…`:Mt;return yt.info(He?`Goal is enabled for this session${Dt?`: ${Dt}`:"."}`:"Goal is disabled for this session. Use /goal <prompt> to enable it."),It(),!0}if(["off","disable","disabled"].includes(Ot))return Yt(ot(!1,xt)),yt.success("Goal disabled for this session."),It(),!0;if(["clear","reset"].includes(Ot))return Yt(ot(!1,"")),yt.success("Goal cleared for this session."),It(),!0;if(["on","enable","enabled"].includes(Ot)){const Mt=xt.trim();return Mt?(Yt(ot(!0,Mt)),yt.success("Goal enabled for this session."),It(),!0):(yt.warning("Usage: /goal <prompt> to enable Goal for this session."),!0)}return Yt(ot(!0,Ct)),yt.success("Goal enabled for this session."),It(),!0},[ot,It,f,xt,He,yt,Yt,hn,c]);const bt=b.useCallback(async(de,lt)=>{if(it(c)){await pt(de);return}await oe(de,lt)},[pt,oe,c,it]),Ht=b.useCallback(async(de,lt)=>{await bt(de,lt)},[bt]);b.useEffect(()=>{if(typeof window>"u")return;const de=lt=>{var ln,at,Kn;const Ct=lt;if(!Ct.detail)return;const Ot=typeof Ct.detail.sessionId=="string"?Ct.detail.sessionId:null;if(!(Ot?c===Ot:c!==null&&c===d))return;Ct.detail.handled=!0;const Dt=(ln=Ct.detail)==null?void 0:ln.content;if(typeof Dt!="string"||Dt.trim().length===0){(Kn=(at=Ct.detail)==null?void 0:at.reject)==null||Kn.call(at,new Error("External send message content is empty"));return}bt(Dt,void 0).then(()=>{var Vn,$n;($n=(Vn=Ct.detail)==null?void 0:Vn.resolve)==null||$n.call(Vn)}).catch(Vn=>{var $n,zs;(zs=($n=Ct.detail)==null?void 0:$n.reject)==null||zs.call($n,Vn)})};return window.addEventListener(ap,de),()=>{window.removeEventListener(ap,de)}},[d,c,bt]);const{retryLastMessage:_t,handleHistoryNavigate:st}=OT({currentSessionId:c,currentChat:f,currentMessages:m,reasoningEffort:ge,retryLastTurn:jt,navigate:ye}),Te=b.useCallback(()=>$t(null),[$t]),Oe=b.useMemo(()=>pe.providers[z],[pe,z]),qe=b.useMemo(()=>!Oe||typeof Oe!="object"?!1:ce==="copilot"?Object.keys(Oe).length>0:"api_key"in Oe?typeof Oe.api_key=="string"&&Oe.api_key.trim().length>0:!1,[ce,Oe]),Et=b.useCallback(()=>qe?!1:(i("chat"),yt.warning(r("chat.view.providerNotConfigured")),!0),[qe,yt,i,r]);b.useEffect(()=>{(async()=>{const de=await nP(ce);G(de??[]),ue(null)})()},[ce]);const Jt=b.useCallback(de=>de instanceof Error&&de.message.trim()?de.message:r("chat.view.unknownError"),[r]),Yn=b.useMemo(()=>({openai:[...zT],anthropic:[...BT],gemini:[...WT],copilot:[...UT],bodhi:[]})[ce]||[],[ce]),Lr=b.useMemo(()=>{const lt=[...ve.length>0?ve:Yn];return $&&!lt.some(Ct=>Ct.value===$)&&lt.unshift({value:$,label:$}),lt},[ve,Yn,$]),bi=b.useCallback(async(de,lt,Ct)=>{if(!(!(Ct!=null&&Ct.force)&&ve.length>0))try{_e(!0),ue(null);const Mt=(lt==="copilot"?await xy.getModels(de):Yn).map(Dt=>({value:typeof Dt=="string"?Dt:Dt.value,label:typeof Dt=="string"?Dt:Dt.label}));G(Mt),await rP(lt,Mt)}catch(Ot){ue(Jt(Ot))}finally{_e(!1)}},[Yn,Jt,ve.length]),rr=b.useCallback(de=>{de&&(Et()||he||ve.length>0||bi(z,ce))},[z,ce,bi,he,ve.length,Et]),Pr=b.useCallback(async de=>{var lt,Ct,Ot;if(!(!de||de===$)&&!me)try{if(Et())return;if(ke(!0),!c||!f){c&&y(c,{config:{systemPromptId:((lt=f==null?void 0:f.config)==null?void 0:lt.systemPromptId)||"default",baseSystemPrompt:((Ct=f==null?void 0:f.config)==null?void 0:Ct.baseSystemPrompt)||"",lastUsedEnhancedPrompt:((Ot=f==null?void 0:f.config)==null?void 0:Ot.lastUsedEnhancedPrompt)??null,...(f==null?void 0:f.config)||{},model:de}});return}await oo.patchSession(c,{model:de}),y(c,{config:{...f.config,model:de}}),yt.success(r("settings.providerTab.modelUpdated"))}catch(Mt){yt.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Jt(Mt)}`)}finally{ke(!1)}},[$,f,Jt,me,yt,Et,c,r,y]),sr=b.useCallback(async de=>{if(!c||!(f!=null&&f.config)){Nt.getState().setSelectedModelRef(de);return}if(!me)try{ke(!0),await oo.patchSession(c,{model:de.model,model_ref:de,provider:de.provider}),Nt.getState().setSelectedModelRef(de),y(c,{config:{...f.config,model:de.model,model_ref:de}}),yt.success(r("settings.providerTab.modelUpdated"))}catch(lt){yt.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Jt(lt)}`)}finally{ke(!1)}},[f==null?void 0:f.config,Jt,me,yt,c,r,y]),Ds=b.useMemo(()=>$T({referenceText:Fe,isToolSpecificMode:Cn,isRestrictConversation:yn,allowedTools:Bt,autoToolPrefix:Qt,t:r}),[Fe,Cn,yn,Bt,Qt,r]),mc=Ae&&Ne?r("chat.respond.customAnswerPlaceholder"):Ae?r("components.questionDialog.selectOptionWarning"):Ds,pr=Ae?r("chat.respond.submitToolResult","Submit tool result"):void 0,ss=b.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]),or=b.useMemo(()=>ss[ge]??ge,[ge,ss]),ko=b.useMemo(()=>l.jsx(uo,{trigger:["click"],placement:"topLeft",disabled:!$||S,menu:{selectable:!0,selectedKeys:[ge],items:GT.map(de=>({key:de,label:ss[de]})),onClick:({key:de})=>{Lt(de)}},children:l.jsx(je,{type:"text",size:"small",disabled:!$||x,style:{minWidth:a?74:88,padding:a?"0 8px":"0 12px",height:36,borderRadius:18,color:ge==="medium"?o.colorTextSecondary:o.colorPrimary},title:r("chat.input.reasoningTitle",{label:or}),children:l.jsxs(Ye,{size:6,children:[l.jsx(jx,{}),l.jsx("span",{children:or}),l.jsx(Ms,{style:{fontSize:10}})]})})}),[$,or,S,a,x,ge,ss,Lt,r,o.colorPrimary,o.colorTextSecondary]),os=$||r(qe?"chat.model.selectModel":"chat.model.configureProvider"),Kt=b.useMemo(()=>Lr.length>0?Lr.map(de=>({key:de.value,label:de.label})):[{key:"__no_models__",label:ie||r("chat.model.noModelsAvailable"),disabled:!0}],[Lr,ie,r]),ar=b.useMemo(()=>l.jsx(je,{type:"text",size:"small",disabled:x||me,onClick:()=>{qe||Et()},style:{minWidth:a?112:146,padding:a?"0 8px":"0 12px",height:36,borderRadius:18,color:ie?o.colorError:o.colorTextSecondary},title:os,children:l.jsxs(Ye,{size:6,children:[he?l.jsx(co,{}):l.jsx(Jg,{}),l.jsx("span",{style:{maxWidth:a?84:128,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:os}),l.jsx(Ms,{style:{fontSize:10}})]})}),[x,me,qe,Et,a,ie,o.colorError,o.colorTextSecondary,os,he]),Xn=b.useMemo(()=>te()?l.jsx(NT,{value:F,onChange:sr,disabled:x||me}):qe?l.jsx(uo,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:$?[$]:[],items:Kt,style:{maxHeight:"50vh",overflowY:"auto"},onClick:({key:de})=>{de!=="__no_models__"&&Pr(String(de))}},onOpenChange:rr,disabled:S||me,children:ar}):ar,[te,F,sr,x,me,qe,$,Kt,Pr,rr,S,ar]),Si=b.useMemo(()=>l.jsxs(Ye,{size:0,wrap:!0,children:[Xn,ko]}),[Xn,ko]),Fs=b.useCallback(de=>({isValid:!0}),[yn,Qt,r]),Ns=b.useMemo(()=>m.some(de=>de.role==="user"),[m]),To=b.useMemo(()=>({isStreaming:x,isInputLocked:S,canCancel:E,hasMessages:Ns,allowRetry:!0,onRetry:_t,onCancel:Mn,onHistoryNavigate:st}),[x,S,E,Ns,_t,Mn,st]);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:[!$&&l.jsx(fr,{type:"warning",showIcon:!0,icon:l.jsx(Kl,{}),message:r(qe?"chat.model.noModelSelected":"chat.model.providerNotConfigured"),description:r(qe?"chat.model.selectModelHint":"chat.model.configureProviderHint"),action:qe?void 0:l.jsx(Ye,{children:l.jsx("a",{onClick:()=>i("chat"),children:r("chat.model.openSettings")})}),style:{marginBottom:o.marginSM}}),Cn,Fe&&l.jsx(lT,{text:Fe,onClose:Te}),$e.length>0&&l.jsx(b.Suspense,{fallback:l.jsx(ho,{size:"small"}),children:l.jsx(qT,{files:$e,onRemove:Fn,onClear:tn})}),Ae&&We.length>0&&l.jsx("div",{style:{marginBottom:o.marginSM},children:l.jsx(Ye,{wrap:!0,size:[8,8],children:We.map(de=>l.jsx(je,{size:"small",onClick:()=>{pt(de)},disabled:S,children:de},de))})}),l.jsx(aT,{value:De,onChange:Ie.handleInputChange,onSubmit:Ht,placeholder:mc,allowImages:!0,disabled:!$||Ae&&!Ne&&We.length>0,statusIndicator:n,submitButtonLabel:pr,isWorkflowSelectorVisible:Ie.showCommandSelector,textAreaRef:s,validateMessage:Fs,onAttachmentsAdded:Xt,onWorkflowCommandChange:Ie.handleCommandChange,onFileReferenceChange:wt.handleFileReferenceChange,onFileReferenceButtonClick:wt.handleFileReferenceButtonClick,leftControlsExtra:Si,interaction:To}),l.jsx(b.Suspense,{fallback:null,children:l.jsx(HT,{visible:Ie.showCommandSelector,onSelect:Ie.handleCommandSelect,onCancel:Ie.handleCommandSelectorCancel,onAutoComplete:Ie.handleAutoComplete,searchText:Ie.commandSearchText})}),wt.showFileSelector&&l.jsx(b.Suspense,{fallback:l.jsx(ho,{size:"small"}),children:l.jsx(XT,{visible:wt.showFileSelector,files:wt.workspaceFiles,searchText:wt.fileSearchText,loading:wt.isWorkspaceLoading,error:wt.workspaceError,onSelect:wt.handleFileReferenceSelect,onCancel:wt.handleFileSelectorCancel,onChangeWorkspace:()=>{wt.setWorkspacePathInput((f==null?void 0:f.config.workspacePath)??""),wt.setIsWorkspaceModalVisible(!0)}})}),l.jsx(b.Suspense,{fallback:null,children:l.jsx(YT,{open:wt.isWorkspaceModalVisible,initialPath:wt.workspacePathInput,loading:wt.isSavingWorkspace,onSubmit:wt.handleWorkspaceModalSubmit,onCancel:wt.handleWorkspaceModalCancel})})]})},oP={maxLines:8,maxCharacters:500},Jr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Wr=e=>typeof e=="string"?e:void 0,vs=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,lp=e=>typeof e=="boolean"?e:void 0,of=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);return Jr(n)?n:null}catch{return null}},uv=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,_r=e=>Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>uv(t).trim()).filter(Boolean):[],gn=e=>{if(typeof e!="string")return;const t=uv(e).trim();return t.length>0?t:void 0},aP=e=>{if(!Jr(e))return;const t=gn(e.graph);if(t)return{title:gn(e.title),graph:t}},iP=e=>{if(!Jr(e))return;const t=gn(e.summary)??gn(e.conclusion);if(t)return{title:gn(e.title)||"Conclusion",summary:t,key_points:_r(e.key_points),next_steps:_r(e.next_steps),confidence:gn(e.confidence),mermaid:aP(e.mermaid)}},lP=e=>{const t=of(e);if(!t)return null;const n=gn(t.conclusion);return!n||t.type!=null&&t.type!=="conclusion"?null:{type:"conclusion",title:gn(t.title)||"Conclusion",conclusion:n,key_points:_r(t.key_points),next_steps:_r(t.next_steps),confidence:gn(t.confidence)}},cP=e=>{const t=of(e);if(!t)return null;const n=gn(t.question);if(!n)return null;const r=gn(t.status);return r&&r!=="awaiting_user_input"&&r!=="awaiting_permission_approval"?null:{question:n,options:_r(t.options),allow_custom:typeof t.allow_custom=="boolean"?t.allow_custom:!0,conclusion:iP(t.conclusion)}},uP=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
+ `)},dv=e=>{const t=lP(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
+ `)},xo=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);if(!Jr(n))return null;const r=Wr(n.file_path),s=Wr(n.operation),o=n.diff;if(!r||!s||!Jr(o))return null;const a=Wr(o.unified);if(!a)return null;const i=n.checkpoint,c=Jr(i)?{created:lp(i.created)??!1,id:Wr(i.id),path:Wr(i.path),size_bytes:vs(i.size_bytes),reason:Wr(i.reason)}:void 0;return{operation:s,message:Wr(n.message),file_path:r,workspace:Wr(n.workspace),checkpoint:c,diff:{unified:a,old_line_count:vs(o.old_line_count),new_line_count:vs(o.new_line_count),added_lines:vs(o.added_lines),removed_lines:vs(o.removed_lines),truncated:lp(o.truncated)}}}catch{return null}},fv=e=>{const t=of(e);if(!t)return null;const n=gn(t.action);if(n!=="inspect"&&n!=="rebuild")return null;const r=t.data;if(!Jr(r))return null;const s=gn(r.scope),o=vs(r.total_memories);if(!s||typeof o!="number")return null;const a=i=>Jr(i)?Object.fromEntries(Object.entries(i).filter(c=>typeof c[0]=="string"&&typeof c[1]=="number")):{};return{action:n,scope:gn(t.scope),project_key:gn(t.project_key),data:{scope:s,project_key:gn(r.project_key),total_memories:o,by_type:a(r.by_type),by_status:a(r.by_status),recent_ids:_r(r.recent_ids),view_files:_r(r.view_files),index_files:_r(r.index_files),state_files:_r(r.state_files),stale_candidate_count:vs(r.stale_candidate_count)??0,last_reindex_at:gn(r.last_reindex_at),last_dream_at:gn(r.last_dream_at),topic_paths:_r(r.topic_paths)}}},si=e=>e.startsWith("-")&&!e.startsWith("---"),oi=e=>e.startsWith("+")&&!e.startsWith("+++"),hv=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(si(s)){const o=[];for(;r<t.length&&si(t[r]??"");)o.push(t[r]??""),r+=1;const a=[];for(;r<t.length&&oi(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(oi(s)){n.push({kind:"add",text:s}),r+=1;continue}n.push({kind:"context",text:s}),r+=1}return n},dP=(e,t)=>{var x;const n=hv(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((S,_)=>({line:S,index:_})).filter(({line:S})=>a.has(S.kind)).map(({index:S})=>S);if(i.length===0||n.length<=s)return n.slice(0,s);const c=[];for(let S=0;S<n.length&&((x=n[S])==null?void 0:x.kind)==="meta";S+=1)c.push(S);const d=(S,_)=>{const E=[];return _&&c.length>0&&E.push({start:c[0],end:c[c.length-1]}),i.forEach(T=>{E.push({start:Math.max(0,T-S),end:Math.min(n.length-1,T+S)})}),E.sort((T,P)=>T.start-P.start),E.reduce((T,P)=>{const C=T[T.length-1];return C?P.start<=C.end+1?(C.end=Math.max(C.end,P.end),T):(T.push({...P}),T):(T.push({...P}),T)},[])},f=S=>{const _=[];return S.forEach((E,T)=>{T>0&&_.push({kind:"gap",text:"⋯"});for(let P=E.start;P<=E.end;P+=1)_.push(n[P])}),_};let m=r,g=d(m,o),y=f(g);for(;y.length>s&&m>0;)m-=1,g=d(m,o),y=f(g);return y.length>s&&o&&(g=d(m,!1),y=f(g)),y.length>s?y.slice(0,s):y},fP=e=>{const t=e.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);return t?{oldStart:Number.parseInt(t[1],10),newStart:Number.parseInt(t[2],10)}:null},ds=e=>{if(!e)return"";const t=e[0];return t==="+"||t==="-"||t===" "?e.slice(1):e},Ur=e=>e==null?null:e+1,hP=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=fP(a);c&&(r=c.oldStart,s=c.newStart),n.push({kind:"hunk",text:a}),o+=1;continue}if(si(a)){const c=[];for(;o<t.length&&si(t[o]??"");)c.push(t[o]??""),o+=1;const d=[];for(;o<t.length&&oi(t[o]??"");)d.push(t[o]??""),o+=1;if(d.length>0){const f=Math.max(c.length,d.length);for(let m=0;m<f;m+=1){const g=c[m],y=d[m];if(g&&y){n.push({kind:"modified",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:ds(g),newText:ds(y)}),r=Ur(r),s=Ur(s);continue}if(g){n.push({kind:"remove",oldLineNumber:r??void 0,oldText:ds(g)}),r=Ur(r);continue}y&&(n.push({kind:"add",newLineNumber:s??void 0,newText:ds(y)}),s=Ur(s))}}else c.forEach(f=>{n.push({kind:"remove",oldLineNumber:r??void 0,oldText:ds(f)}),r=Ur(r)});continue}if(oi(a)){n.push({kind:"add",newLineNumber:s??void 0,newText:ds(a)}),s=Ur(s),o+=1;continue}const i=ds(a);n.push({kind:"context",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:i,newText:i}),r=Ur(r),s=Ur(s),o+=1}return n},pv=e=>{let t=0,n=0;for(const r of e.split(`
151
+ `)){if(oi(r)){t+=1;continue}si(r)&&(n+=1)}return{added:t,removed:n}},af=e=>{const t=xo(e);if(!t)return null;const n=pv(t.diff.unified);return{added:t.diff.added_lines??n.added,removed:t.diff.removed_lines??n.removed}},nd=e=>{if(typeof e=="string")return e.replace(/\\n/g,`
152
+ `).replace(/\\t/g," ");if(Array.isArray(e))return e.map(nd);if(e!==null&&typeof e=="object"){const t={};for(const[n,r]of Object.entries(e))t[n]=nd(r);return t}return e},mo=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=nd(n);return{isJson:!0,formattedText:JSON.stringify(r,null,2),parsedJson:r}}catch{return{isJson:!1,formattedText:e}}},pP=(e,t={})=>{const n={...oP,...t};return e?e.split(/\r?\n/).length>n.maxLines?!0:e.length>n.maxCharacters:!1},mP=(e,t=320)=>e?e.length<=t?{preview:e,isTruncated:!1}:{preview:e.substring(0,t).trimEnd()+"…",isTruncated:!0}:{preview:"",isTruncated:!1},gP=e=>{if(!e)return"No content";const t=60,n=e.trim(),r=xo(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=fv(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()+"…"},mv=e=>{switch(e){case"success":return"green";case"error":return"red";case"warning":return"orange";default:return"blue"}},Ps=(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:En}=ht,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},Yi=(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},Xi=(e,t,n)=>{if(e==="modified")return t==="old"?`3px solid ${n.colorError}`:`3px solid ${n.colorSuccess}`},cp=e=>e==null?"":String(e),ai=({payload:e,defaultViewMode:t="sideBySide",showHeader:n=!0,showViewToggle:r=!0,compact:s=!1,height:o,maxHeight:a=400,unifiedLinesOverride:i})=>{var P;const{t:c}=Ge(),{token:d}=dt.useToken(),[f,m]=b.useState(t),g=b.useMemo(()=>{const C=pv(e.diff.unified);return{added:e.diff.added_lines??C.added,removed:e.diff.removed_lines??C.removed}},[e]),y=b.useMemo(()=>i??hv(e.diff.unified),[e.diff.unified,i]),x=b.useMemo(()=>hP(e.diff.unified),[e.diff.unified]),S=o!==void 0,_={display:"flex",flexDirection:"column",gap:s?6:d.marginSM,minHeight:0,height:S?o:void 0},E={border:`1px solid ${d.colorBorderSecondary}`,borderRadius:s?6:d.borderRadiusSM,overflow:"auto",background:d.colorBgContainer,minHeight:0,flex:S?1:void 0,maxHeight:S?void 0:a},T=s?"small":"middle";return l.jsxs("div",{style:_,children:[n&&l.jsxs("div",{style:{display:"grid",gap:s?2:d.marginXS},children:[e.message?l.jsx(En,{style:{fontSize:s?11:d.fontSizeSM},children:e.message}):null,l.jsxs(Ye,{size:s?2:8,wrap:!0,children:[l.jsxs(En,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(En,{strong:!0,children:[c("common.file"),":"]})," ",l.jsx(En,{code:!0,children:e.file_path})]}),e.workspace?l.jsxs(En,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(En,{strong:!0,children:[c("common.workspace"),":"]})," ",l.jsx(En,{code:!0,children:e.workspace})]}):null,l.jsxs(En,{style:{color:d.colorSuccess,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",g.added]}),l.jsxs(En,{style:{color:d.colorError,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",g.removed]})]}),(P=e.checkpoint)!=null&&P.created?l.jsxs(En,{style:{fontSize:s?d.fontSizeSM-1:d.fontSizeSM},children:[l.jsxs(En,{strong:!0,children:[c("components.toolResult.checkpoint"),":"]})," ",l.jsx(En,{code:!0,children:e.checkpoint.path})]}):l.jsx(En,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.checkpointNone")})]}),r?l.jsxs(Ye,{size:s?2:8,wrap:!0,children:[l.jsx(je,{size:T,type:f==="sideBySide"?"primary":"default",onClick:()=>m("sideBySide"),children:c("components.toolResult.sideBySide",{defaultValue:"Side by side"})}),l.jsx(je,{size:T,type:f==="unified"?"primary":"default",onClick:()=>m("unified"),children:c("components.toolResult.unified",{defaultValue:"Unified"})})]}):null,l.jsx("div",{style:E,children:f==="unified"?y.length>0?y.map((C,A)=>l.jsx("pre",{style:yP(C,d,s),children:C.text||" "},`${A}-${C.kind}`)):l.jsx(En,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})}):x.length>0?l.jsx("div",{children:x.map((C,A)=>{if(C.kind==="meta"||C.kind==="hunk")return l.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:s?11:d.fontSizeSM,lineHeight:s?1.35:1.5,padding:s?"2px 4px":"4px 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",background:C.kind==="meta"?d.colorFillTertiary:d.colorFillSecondary,color:d.colorTextSecondary,borderBottom:`1px solid ${d.colorBorderSecondary}`},children:C.text||" "},`meta-${A}`);const I=s?11:d.fontSizeSM,L=s?"2px 4px":"4px 8px",$={padding:L,textAlign:"right",color:d.colorTextTertiary,fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:I,borderRight:`1px solid ${d.colorBorderSecondary}`,userSelect:"none"},F={padding:L,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:I};return l.jsxs("div",{style:{display:"grid",gridTemplateColumns:s?"48px 1fr 48px 1fr":"64px 1fr 64px 1fr",borderBottom:`1px solid ${d.colorBorderSecondary}`},children:[l.jsx("div",{style:{...$,background:Yi(C.kind,"old",d),borderLeft:Xi(C.kind,"old",d)},children:cp(C.oldLineNumber)}),l.jsx("div",{style:{...F,background:Yi(C.kind,"old",d),borderRight:`1px solid ${d.colorBorderSecondary}`,borderLeft:Xi(C.kind,"old",d)},children:C.oldText??" "}),l.jsx("div",{style:{...$,background:Yi(C.kind,"new",d),borderLeft:Xi(C.kind,"new",d)},children:cp(C.newLineNumber)}),l.jsx("div",{style:{...F,background:Yi(C.kind,"new",d),borderLeft:Xi(C.kind,"new",d)},children:C.newText??" "})]},`side-${A}`)})}):l.jsx(En,{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(En,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.diffTruncated")}):null]})},{Text:vP}=ht,bP=e=>e.filter(t=>t!=null&&t!==!1&&!(typeof t=="string"&&t.trim()==="")),SP=(e,t)=>e.flatMap((n,r)=>r===0?[l.jsx(ft.Fragment,{children:n},`item-${r}`)]:[l.jsx(ft.Fragment,{children:t},`sep-${r}`),l.jsx(ft.Fragment,{children:n},`item-${r}`)]),hl=({items:e,separator:t=" · ",nowrap:n=!1,block:r=!1,style:s,className:o,ellipsis:a,...i})=>{const c=bP(e);return c.length===0?null:l.jsx(vP,{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:SP(c,t)})},{Text:jn}=ht,xP=220,wP=560,_P=420,pl=e=>e.split(/[\\/]/).pop()||e,CP=e=>{const t=e.replace(/\\/g,"/"),n=t.lastIndexOf("/");return n<=0?null:t.slice(0,n)},up=e=>e.added+e.removed,rd=e=>e.toLocaleString(),dp=(e,t)=>`(+${rd(e)} / -${rd(t)})`,kP=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}}),sd=(e,t)=>{const n=[...e];return t==="path"?(n.sort((r,s)=>r.filePath.localeCompare(s.filePath)),n):(n.sort((r,s)=>{const o=up(s)-up(r);return o!==0?o:r.filePath.localeCompare(s.filePath)}),n)},ro=({value:e,kind:t,compact:n=!1})=>{const{token:r}=dt.useToken(),s=t==="added";return l.jsxs(jn,{style:{color:s?r.colorSuccess:r.colorError,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"nowrap",fontSize:n?11:void 0},children:[s?"+":"-",rd(e)]})},fp=({files:e,changedTools:t,totalAdded:n,totalRemoved:r,sortMode:s,selectedFilePath:o,compact:a=!1,onSortModeChange:i,onSelectFile:c})=>{const{token:d}=dt.useToken(),f=b.useMemo(()=>sd(e,s),[e,s]),m=b.useMemo(()=>e.filter(S=>S.truncated).length,[e]),g=b.useMemo(()=>sd(e,"magnitude")[0]??null,[e]),y=a?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},x=b.useMemo(()=>{const S=[];return g&&S.push(`Largest: ${pl(g.filePath)} ${dp(g.added,g.removed)}`),m>0&&S.push(`${m} truncated preview${m>1?"s":""}`),S},[g,m]);return l.jsxs(Pe,{vertical:!0,gap:a?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},children:[l.jsxs(Pe,{vertical:!0,gap:a?4:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Pe,{align:"flex-start",justify:"space-between",gap:a?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(Ye,{size:a?6:d.marginXS,wrap:!0,children:[l.jsx(Qg,{style:{color:d.colorPrimary}}),l.jsx(jn,{strong:!0,style:a?{fontSize:12}:void 0,children:"Session diffs"}),a?null:l.jsx(jn,{type:"secondary",children:"Review changed files, then open one file at a time."})]}),l.jsxs(Ye,{size:a?2:4,wrap:!0,children:[a?l.jsx(hl,{nowrap:!0,items:[`${e.length} files`,`${t} tools`]}):l.jsxs(l.Fragment,{children:[l.jsxs(Je,{style:y,children:[e.length," files"]}),l.jsxs(Je,{style:y,children:[t," tools"]})]}),l.jsx(ro,{value:n,kind:"added"}),l.jsx(ro,{value:r,kind:"removed"})]})]}),a?l.jsx(hl,{block:!0,items:x}):l.jsxs(l.Fragment,{children:[g?l.jsxs(jn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:["Largest change: ",pl(g.filePath)," ",dp(g.added,g.removed)]}):null,m>0?l.jsxs(jn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:[m," diff",m>1?"s":""," truncated in preview."]}):null]})]}),l.jsxs(Pe,{align:"center",justify:"space-between",gap:a?d.marginXS:d.marginSM,wrap:!0,children:[l.jsx(jn,{strong:!0,style:a?{fontSize:12}:void 0,children:a?"Files":"Changed files"}),e.length>1?l.jsxs(Ye,{size:a?4:8,wrap:!0,children:[l.jsx(je,{size:"small",type:s==="magnitude"?"primary":"default",onClick:()=>i("magnitude"),"data-testid":"session-diff-sort-magnitude",children:a?"Largest":"Largest changes"}),l.jsx(je,{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?_P:wP,overflowY:"auto",overflowX:"hidden"},children:f.map(S=>{const _=CP(S.filePath),E=o===S.filePath,T=a?[_,S.toolCount&&S.toolCount>1?`${S.toolCount} tool steps`:null]:[];return l.jsx("button",{type:"button","aria-pressed":E,"data-selected":E?"true":"false",onClick:()=>c(S.filePath),"data-testid":"session-diff-file-row","data-file-path":S.filePath,style:{width:"100%",minWidth:0,padding:a?"6px 8px":`${d.paddingSM}px`,borderRadius:d.borderRadiusSM,border:`1px solid ${E?d.colorPrimary:d.colorBorderSecondary}`,background:E?d.colorFillSecondary:d.colorFillTertiary,boxShadow:E?`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(Pe,{align:"flex-start",justify:"space-between",gap:a?d.marginXS:d.marginSM,style:{width:"100%"},children:[l.jsxs(Pe,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsxs(Pe,{align:"center",gap:d.marginXS,style:{minWidth:0},children:[l.jsx(Zr,{style:{color:E?d.colorPrimary:d.colorTextSecondary,flex:"0 0 auto"}}),l.jsx(jn,{strong:!0,ellipsis:{tooltip:S.filePath},style:{display:"block",flex:1,minWidth:0},children:pl(S.filePath)}),S.truncated?a?l.jsx(jn,{type:"secondary",style:{fontSize:11,flex:"0 0 auto"},children:"· trunc."}):l.jsx(Je,{color:"warning",style:{...y,flex:"0 0 auto"},children:"Truncated"}):null]}),a?l.jsx(hl,{block:!0,items:T,style:{minWidth:0,whiteSpace:"normal",wordBreak:"break-word"}}):l.jsxs(l.Fragment,{children:[_?l.jsx(jn,{type:"secondary",ellipsis:{tooltip:S.filePath},style:{display:"block",minWidth:0,fontSize:d.fontSizeSM},children:_}):null,S.toolCount&&S.toolCount>1?l.jsxs(jn,{type:"secondary",style:{fontSize:Math.max(d.fontSizeSM-1,11)},children:["Touched by ",S.toolCount," tool steps"]}):null]})]}),l.jsxs(Pe,{vertical:!0,align:"flex-end",gap:a?1:0,style:{flex:"0 0 auto"},children:[l.jsx(ro,{value:S.added,kind:"added",compact:a}),l.jsx(ro,{value:S.removed,kind:"removed",compact:a})]})]})},S.filePath)})})]})},TP=({file:e,currentPosition:t,totalFiles:n,canGoPrevious:r,canGoNext:s,compact:o=!1,onPrevious:a,onNext:i,onBack:c})=>{const{token:d}=dt.useToken(),f=b.useMemo(()=>kP(e),[e]);return l.jsxs(Pe,{vertical:!0,gap:o?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},"data-testid":"session-diff-detail-view",children:[l.jsxs(Pe,{align:"center",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(Ye,{size:o?4:8,wrap:!0,children:[l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ix,{}),onClick:c,"data-testid":"session-diff-back",style:{paddingInline:0},children:"Back to files"}),l.jsxs(jn,{type:"secondary","data-testid":"session-diff-position",style:o?{fontSize:11}:void 0,children:["File ",t," of ",n]})]}),n>1?l.jsxs(Ye,{size:o?4:8,wrap:!0,children:[l.jsx(je,{size:"small",icon:l.jsx(ju,{}),onClick:a,disabled:!r,"data-testid":"session-diff-prev",children:"Previous"}),l.jsx(je,{size:"small",icon:l.jsx(Zr,{}),onClick:i,disabled:!s,"data-testid":"session-diff-next",children:"Next"})]}):null]}),l.jsxs(Pe,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Pe,{align:"flex-start",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(Pe,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsx(jn,{strong:!0,ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0},children:pl(e.filePath)}),l.jsx(jn,{type:"secondary",ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.filePath}),e.workspace?l.jsx(jn,{type:"secondary",ellipsis:{tooltip:e.workspace},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.workspace}):null]}),l.jsxs(Ye,{size:o?2:4,wrap:!0,children:[e.truncated?l.jsx(Je,{color:"warning",style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:o?"Trunc.":"Truncated"}):null,e.toolCount&&e.toolCount>1?l.jsxs(Je,{style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:[e.toolCount," tools"]}):null,l.jsx(ro,{value:e.added,kind:"added",compact:o}),l.jsx(ro,{value:e.removed,kind:"removed",compact:o})]})]}),o?null:l.jsx(jn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:"Review this file in side-by-side or unified mode."})]}),l.jsx(ai,{payload:f,defaultViewMode:"sideBySide",showHeader:!1,showViewToggle:!0,compact:o,maxHeight:o?"calc(100vh - 240px)":"calc(100vh - 280px)"})]})},gv=({sessionDiffSummary:e,sessionId:t,compact:n=!1})=>{const{token:r}=dt.useToken(),s=!!(e&&e.files.length>0),[o,a]=b.useState(s),[i,c]=b.useState(s),[d,f]=b.useState("magnitude"),[m,g]=b.useState(null);b.useEffect(()=>{if(s){a(!0);const T=window.setTimeout(()=>c(!0),0);return()=>window.clearTimeout(T)}c(!1);const E=window.setTimeout(()=>a(!1),xP);return()=>window.clearTimeout(E)},[s]),b.useEffect(()=>{f("magnitude"),g(null)},[t]);const y=b.useMemo(()=>(e==null?void 0:e.files)??[],[e]),x=b.useMemo(()=>sd(y,d),[y,d]),S=b.useMemo(()=>x.findIndex(E=>E.filePath===m),[x,m]),_=S>=0?x[S]:null;return b.useEffect(()=>{m&&(y.some(E=>E.filePath===m)||g(null))},[y,m]),!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(fp,{files:y,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:m,compact:n,onSortModeChange:f,onSelectFile:g}):l.jsx(sn,{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(fp,{files:y,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:m,compact:n,onSortModeChange:f,onSelectFile:g})})}),l.jsx(Gl,{title:"Diff details",placement:"right",open:!!_,onClose:()=>g(null),width:"min(1280px, calc(100vw - 24px))",styles:{body:{padding:n?r.paddingXS:r.paddingLG,minWidth:0}},destroyOnClose:!0,children:_?l.jsx(TP,{file:_,currentPosition:S+1,totalFiles:x.length,canGoPrevious:S>0,canGoNext:S>=0&&S<x.length-1,compact:n,onPrevious:()=>{S>0&&g(x[S-1].filePath)},onNext:()=>{S>=0&&S<x.length-1&&g(x[S+1].filePath)},onBack:()=>g(null)}):null})]})},PP=e=>{if(!e)return;const{activeLeafId:t,setLeafSessionId:n,setActiveLeafId:r}=vt.getState();n(t,e),r(t),ne.getState().selectSession(e)},EP=["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(" "),MP=["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(" "),AP=["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(" "),RP=["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(" "),jP=["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(" "),IP=["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(" "),OP=["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(" "),$P=["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(" "),LP=["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(" "),DP=["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(" "),FP=["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(" "),NP=["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(" "),zP=["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(" "),BP=["development","debugging","analysis","documentation","operations"],WP={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"}},UP=(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)||""}},qP=({sessionId:e=null,embedded:t=!1,hideHeader:n=!1,layoutMode:r="default"})=>{var N;const{t:s}=Ge(),{token:o}=dt.useToken(),{message:a}=Dn.useApp(),i=ne(O=>e??O.currentSessionId),c=ne($r(i)),d=ne(O=>O.addChat),f=ne(O=>O.lastSelectedPromptId),m=ne(O=>O.setInputContent),g=ne(O=>O.systemPrompts),y=ne(O=>O.chats),[x,S]=b.useState(null),[_,E]=b.useState(""),T=(c==null?void 0:c.config.workspacePath)??((N=y.find(O=>O.config.workspacePath))==null?void 0:N.config.workspacePath),P=b.useMemo(()=>[{id:"blank",icon:l.jsx(Od,{}),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(Ox,{}),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:EP,category:"development",recommendWorkspace:!0},{id:"implementFeature",icon:l.jsx(Ld,{}),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:AP,category:"development",recommendWorkspace:!0},{id:"refactor",icon:l.jsx(Qg,{}),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:OP,category:"development",recommendWorkspace:!0},{id:"bugInvestigation",icon:l.jsx(Vg,{}),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:MP,category:"debugging",recommendWorkspace:!0},{id:"explainError",icon:l.jsx(Zg,{}),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:jP,category:"debugging"},{id:"tokenUsage",icon:l.jsx($x,{}),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:zP,category:"debugging"},{id:"architectureReview",icon:l.jsx(Lx,{}),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:RP,category:"analysis",recommendWorkspace:!0},{id:"compareFiles",icon:l.jsx(Dx,{}),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:IP,category:"analysis",recommendWorkspace:!0},{id:"releaseNotes",icon:l.jsx(kl,{}),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:$P,category:"documentation",recommendWorkspace:!0},{id:"summarizeWork",icon:l.jsx(Fx,{}),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:LP,category:"documentation"},{id:"writeDocs",icon:l.jsx(kl,{}),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:DP,category:"documentation",recommendWorkspace:!0},{id:"createSchedule",icon:l.jsx(As,{}),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:FP,category:"operations"},{id:"sessionReview",icon:l.jsx(Ru,{}),title:s("chat.emptyLauncher.actions.sessionReview.title","Review session history"),description:s("chat.emptyLauncher.actions.sessionReview.description","Inspect and analyze past sessions for patterns and insights."),sessionTitle:s("chat.emptyLauncher.actions.sessionReview.sessionTitle","Session Review"),prefill:s("chat.emptyLauncher.actions.sessionReview.prefill","Help me review my recent session history. Summarize key decisions, outcomes, and areas that need follow-up."),baseSystemPrompt:NP,category:"operations"}],[s]),C=_.trim().toLowerCase(),A=b.useMemo(()=>C?P.filter(O=>O.title.toLowerCase().includes(C)||O.description.toLowerCase().includes(C)):P,[C,P]),I=b.useMemo(()=>{const O={};for(const Q of A)O[Q.category]||(O[Q.category]=[]),O[Q.category].push(Q);return O},[A]),L=b.useCallback(O=>{typeof window>"u"||window.setTimeout(()=>{window.dispatchEvent(new CustomEvent(Ol,{detail:{sessionId:O}}))},0)},[]),$=b.useCallback(async O=>{if(!x){S(O.id);try{const Q=UP(g,f),W=await d({title:O.sessionTitle,createdAt:Date.now(),messages:[],config:{systemPromptId:Q.systemPromptId,baseSystemPrompt:O.baseSystemPrompt??Q.baseSystemPrompt,lastUsedEnhancedPrompt:null,...T?{workspacePath:T}:{}}});PP(W),O.prefill.trim().length>0&&m(W,O.prefill),L(W)}catch(Q){console.error("[EmptyTaskLauncher] Failed to create session",Q),a.error(Q instanceof Error?Q.message:s("chat.emptyLauncher.errors.createFailed","Failed to create session"))}finally{S(null)}}},[d,f,a,x,L,m,g,s,T]),F=b.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]),te=!!T;return l.jsxs("div",{className:`lotus-empty-task-launcher ${t?"is-embedded":""} ${n?"is-headerless":""} ${r==="staggered"?"is-staggered":""}`,style:F,children:[!n&&l.jsxs("div",{className:"lotus-empty-task-launcher__header",children:[l.jsx(ht.Title,{level:t?4:3,style:{margin:0},children:s("chat.emptyLauncher.title","Start with a task")}),l.jsx(ht.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(ht.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($s,{placeholder:s("chat.emptyLauncher.searchPlaceholder","Search templates..."),prefix:l.jsx(Ru,{style:{color:o.colorTextQuaternary}}),value:_,onChange:O=>E(O.target.value),allowClear:!0,size:"middle",variant:"filled"})}),l.jsxs("div",{className:"lotus-empty-task-launcher__categories",children:[BP.map(O=>{const Q=I[O];if(!Q||Q.length===0)return null;const W=WP[O];return l.jsxs("div",{className:"lotus-empty-task-launcher__category",children:[l.jsx(ht.Text,{type:"secondary",className:"lotus-empty-task-launcher__category-label",children:s(W.titleKey,W.fallback)}),l.jsx("div",{className:"lotus-empty-task-launcher__grid",children:Q.map(z=>{const pe=x===z.id,Z=z.recommendWorkspace&&te;return l.jsxs("button",{type:"button",className:"lotus-empty-task-card",onClick:()=>{$(z)},disabled:x!==null,"aria-busy":pe,"aria-label":z.title,children:[l.jsx("div",{className:"lotus-empty-task-card__icon","aria-hidden":!0,children:pe?l.jsx(co,{}):z.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:z.title}),l.jsx(Nx,{className:"lotus-empty-task-card__arrow","aria-hidden":!0})]}),l.jsx("p",{className:"lotus-empty-task-card__description",children:z.description}),Z&&l.jsx("div",{className:"lotus-empty-task-card__badges",children:l.jsxs("span",{className:"lotus-empty-task-card__badge",title:T,children:["📂 ",s("chat.emptyLauncher.badges.workspace","workspace")]})})]})]},z.id)})})]},O)}),A.length===0&&l.jsx("div",{className:"lotus-empty-task-launcher__no-results",children:l.jsx(ht.Text,{type:"secondary",children:s("chat.emptyLauncher.noResults","No templates match your search. Try a different keyword or start a blank session.")})})]})]})},HP=({sessionId:e,isCenteredLayout:t,maxWidth:n,onWorkflowDraftChange:r,showMessagesView:s,sessionDiffSummary:o,contextUsageIndicator:a,showSessionDiffCard:i=!0})=>l.jsx(Pe,{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(gv,{sessionDiffSummary:o,sessionId:e}):null,!s&&e?l.jsx(qP,{sessionId:e}):null,l.jsx(sP,{sessionId:e,isCenteredLayout:t,onWorkflowDraftChange:r,statusIndicator:a})]})});function Ys(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 m=e();if(!(m.length!==r.length||m.some((x,S)=>r[S]!==x)))return s;r=m;let y;if(n.key&&((i=n.debug)!=null&&i.call(n))&&(y=Date.now()),s=t(...m),n.key&&((c=n.debug)!=null&&c.call(n))){const x=Math.round((Date.now()-f)*100)/100,S=Math.round((Date.now()-y)*100)/100,_=S/16,E=(T,P)=>{for(T=String(T);T.length<P;)T=" "+T;return T};console.info(`%c⏱ ${E(S,5)} /${E(x,5)} ms`,`
154
+ font-size: .6rem;
155
+ font-weight: bold;
156
+ color: hsl(${Math.max(0,Math.min(120-120*_,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 hp(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const YP=(e,t)=>Math.abs(e-t)<1.01,XP=(e,t,n)=>{let r;return function(...s){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,s),n)}},pp=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},KP=e=>e,VP=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},GP=(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(pp(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(pp(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},mp={passive:!0},gp=typeof window>"u"?!0:"onscrollend"in window,JP=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let s=0;const o=e.options.useScrollendEvent&&gp?()=>{}:XP(r,()=>{t(s,!1)},e.options.isScrollingResetDelay),a=f=>()=>{const{horizontal:m,isRtl:g}=e.options;s=m?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(s,f)},i=a(!0),c=a(!1);c(),n.addEventListener("scroll",i,mp);const d=e.options.useScrollendEvent&&gp;return d&&n.addEventListener("scrollend",c,mp),()=>{n.removeEventListener("scroll",i),d&&n.removeEventListener("scrollend",c)}},QP=(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"]},ZP=(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 eE{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:KP,rangeExtractor:VP,onChange:()=>{},measureElement:QP,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=Ys(()=>(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=Ys(()=>[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=Ys(()=>[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 m=o(f),g=this.options.lanes===1?d[f-1]:this.getFurthestMeasurement(d,f),y=g?g.end+this.options.gap:r+s,x=i.get(m),S=typeof x=="number"?x:this.options.estimateSize(f),_=y+S,E=g?g.lane:f%this.options.lanes;d[f]={index:f,start:y,size:S,end:_,key:m,lane:E}}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Ys(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,s,o)=>this.range=n.length>0&&r>0?tE({measurements:n,outerSize:r,scrollOffset:s,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Ys(()=>{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=Ys(()=>[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 hp(r[yv(0,r.length-1,s=>hp(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[m,g]=f;this._scrollToOffset(m,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const y=this.getScrollOffset(),x=this.getOffsetForIndex(n,g);if(!x){console.warn("Failed to get offset for index:",n);return}YP(x[0],y)||c(g)})},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 yv=(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 tE({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=yv(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 yp=typeof document<"u"?b.useLayoutEffect:b.useEffect;function nE(e){const t=b.useReducer(()=>({}),{})[1],n={...e,onChange:(s,o)=>{var a;o?zx.flushSync(t):t(),(a=e.onChange)==null||a.call(e,s,o)}},[r]=b.useState(()=>new eE(n));return r.setOptions(n),yp(()=>r._didMount(),[]),yp(()=>r._willUpdate()),r}function rE(e){return nE({observeElementRect:GP,observeElementOffset:JP,scrollToFn:ZP,...e})}const{Text:vp,Paragraph:sE}=ht,oE=({content:e,token:t,headingColor:n})=>l.jsx(Cr,{components:{p:({children:r})=>l.jsx(sE,{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(vp,{strong:!0,style:{fontSize:t.fontSizeHeading3,marginBottom:t.marginSM,display:"block",color:n},children:r}),h2:({children:r})=>l.jsx(vp,{strong:!0,style:{fontSize:t.fontSizeHeading4,marginBottom:t.marginSM,display:"block",color:n},children:r})},children:e}),bp=b.memo(oE),aE=e=>{if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null},iE=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=aE(r);return s?[{key:n,content:s}]:[]}):[],lE=({currentChat:e,message:t,systemPrompts:n})=>{var te;const[r,s]=b.useState(null),[o,a]=b.useState(null),[i,c]=b.useState(null),[d,f]=b.useState(!1),[m,g]=b.useState(!1),y=b.useMemo(()=>Ml.getInstance(),[]),x=b.useMemo(()=>tr.getInstance(),[]),S=t.role==="system"&&typeof t.content=="string"?t.content:"",_=t.role==="system"&&!t.id.startsWith("system-prompt-")&&S.trim().length>0;b.useEffect(()=>{t.role==="system"&&(a(null),c(null),g(!1))},[t.id,t.role,S]);const E=(e==null?void 0:e.id)??null,T=((te=e==null?void 0:e.config)==null?void 0:te.systemPromptId)??null,P=b.useMemo(()=>T?n.find(N=>N.id===T)??null:null,[T,n]),C=(P==null?void 0:P.content)??(r==null?void 0:r.content)??"",A=(P==null?void 0:P.description)??(r==null?void 0:r.description)??"",I=b.useRef(null);b.useEffect(()=>{s(null),I.current=null},[E,T]),b.useEffect(()=>{if(!T)return;const N=T;if(P!=null&&P.content)return;const O=`${E??"no-chat"}:${N}`;if(I.current===O)return;I.current=O;let Q=!1;return(async()=>{try{const z=await y.findPresetById(N);if(Q)return;const pe=z?{content:z.content,description:z.description}:null;s(Z=>!Z&&!pe||Z&&pe&&Z.content===pe.content&&Z.description===pe.description?Z:pe)}catch(z){console.error("Failed to load preset prompt:",z)}})(),()=>{Q=!0}},[E,T,y,P==null?void 0:P.content]);const L=b.useCallback(async()=>{var N;if(!d){f(!0);try{if(E)try{const O=await x.getSessionSystemPrompt(E);c(O);const Q=(N=O.effective_system_prompt)==null?void 0:N.trim();if(Q){a(Q),g(!0);return}}catch(O){console.warn("Failed to load backend prompt snapshot:",O)}if(_){c(null),a(S),g(!0);return}console.warn("Enhanced prompt snapshot unavailable; keeping base prompt view.")}catch(O){console.error("Failed to load enhanced prompt:",O)}finally{f(!1)}}},[x,E,_,d,S]),$=b.useMemo(()=>m&&o?o:C||A||(t.role==="system"?S:Pt.t("chat.systemPrompt.preparing")),[m,o,C,A,t.role,S]),F=b.useMemo(()=>iE(i),[i]);return{basePrompt:C,categoryDescription:A,enhancedPrompt:o,loadingEnhanced:d,loadEnhancedPrompt:L,promptSnapshot:i,promptToDisplay:$,showEnhanced:m,setShowEnhanced:g,snapshotSections:F,systemMessageContent:S}},{Text:Sp}=ht,{useToken:cE}=dt,uE=(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],dE=({currentChat:e,message:t})=>{const{token:n}=cE(),{t:r}=Ge(),s=ne(x=>x.systemPrompts),{basePrompt:o,loadingEnhanced:a,loadEnhancedPrompt:i,promptSnapshot:c,promptToDisplay:d,showEnhanced:f,setShowEnhanced:m,snapshotSections:g}=lE({currentChat:e,message:t,systemPrompts:s}),y=b.useCallback(async x=>{try{await Or(x)}catch(S){console.error("Failed to copy text:",S)}},[]);return l.jsx(sn,{style:{width:"100%",maxWidth:"100%",background:n.colorBgContainer,borderRadius:n.borderRadiusLG,boxShadow:"none"},children:l.jsxs(Ye,{direction:"vertical",size:n.marginSM,style:{width:"100%"},children:[l.jsxs(Pe,{justify:"space-between",align:"center",children:[l.jsx(Pe,{align:"center",gap:n.marginXS,children:l.jsx(Sp,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.title")})}),l.jsxs(Ye,{children:[o&&!f?l.jsx(je,{type:"text",size:"small",icon:l.jsx(Dd,{}),onClick:i,loading:a,children:r("chat.prompt.systemCard.viewEnhanced")}):null,o&&f?l.jsx(je,{type:"text",size:"small",onClick:()=>m(!1),children:r("chat.prompt.systemCard.viewBase")}):null,l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ir,{}),onClick:()=>y(d),children:r("chat.prompt.systemCard.copy")})]})]}),l.jsx(Pe,{vertical:!0,style:{maxHeight:f?400:300,overflowY:"auto",paddingRight:n.paddingXS},children:l.jsx(bp,{content:d,token:n,headingColor:n.colorPrimary})}),c&&g.length>0?l.jsxs(l.Fragment,{children:[l.jsx(Tl,{style:{margin:`${n.marginXS}px 0`}}),l.jsxs(Ye,{direction:"vertical",size:n.marginXS,style:{width:"100%"},children:[l.jsx(Sp,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.snapshotTitle")}),l.jsx(go,{defaultActiveKey:g.map(x=>x.key),items:g.map(x=>({key:x.key,label:uE(r,x.key),children:l.jsx(bp,{content:x.content,token:n,headingColor:n.colorPrimary})}))})]})]}):null]})})},vv=b.memo(dE);vv.displayName="SystemMessageCard";const bv=6048e5,fE=864e5,xp=Symbol.for("constructDateFrom");function es(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&xp in e?e[xp](t):e instanceof Date?new e.constructor(t):new Date(t)}function hr(e,t){return es(t||e,e)}let hE={};function oc(){return hE}function ii(e,t){var i,c,d,f;const n=oc(),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=hr(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 Ll(e,t){return ii(e,{...t,weekStartsOn:1})}function Sv(e,t){const n=hr(e,t==null?void 0:t.in),r=n.getFullYear(),s=es(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const o=Ll(s),a=es(n,0);a.setFullYear(r,0,4),a.setHours(0,0,0,0);const i=Ll(a);return n.getTime()>=o.getTime()?r+1:n.getTime()>=i.getTime()?r:r-1}function wp(e){const t=hr(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 pE(e,...t){const n=es.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function _p(e,t){const n=hr(e,t==null?void 0:t.in);return n.setHours(0,0,0,0),n}function mE(e,t,n){const[r,s]=pE(n==null?void 0:n.in,e,t),o=_p(r),a=_p(s),i=+o-wp(o),c=+a-wp(a);return Math.round((i-c)/fE)}function gE(e,t){const n=Sv(e,t),r=es(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Ll(r)}function yE(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function vE(e){return!(!yE(e)&&typeof e!="number"||isNaN(+hr(e)))}function bE(e,t){const n=hr(e,t==null?void 0:t.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const SE={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"}},xE=(e,t,n)=>{let r;const s=SE[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 Zc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const wE={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},_E={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},CE={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},kE={date:Zc({formats:wE,defaultWidth:"full"}),time:Zc({formats:_E,defaultWidth:"full"}),dateTime:Zc({formats:CE,defaultWidth:"full"})},TE={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},PE=(e,t,n,r)=>TE[e];function Ho(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 EE={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ME={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},AE={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"]},RE={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"]},jE={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"}},IE={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"}},OE=(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"},$E={ordinalNumber:OE,era:Ho({values:EE,defaultWidth:"wide"}),quarter:Ho({values:ME,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Ho({values:AE,defaultWidth:"wide"}),day:Ho({values:RE,defaultWidth:"wide"}),dayPeriod:Ho({values:jE,defaultWidth:"wide",formattingValues:IE,defaultFormattingWidth:"wide"})};function Yo(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)?DE(i,m=>m.test(a)):LE(i,m=>m.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 LE(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function DE(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function FE(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 NE=/^(\d+)(th|st|nd|rd)?/i,zE=/\d+/i,BE={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},WE={any:[/^b/i,/^(a|c)/i]},UE={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},qE={any:[/1/i,/2/i,/3/i,/4/i]},HE={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},YE={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]},XE={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},KE={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]},VE={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},GE={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}},JE={ordinalNumber:FE({matchPattern:NE,parsePattern:zE,valueCallback:e=>parseInt(e,10)}),era:Yo({matchPatterns:BE,defaultMatchWidth:"wide",parsePatterns:WE,defaultParseWidth:"any"}),quarter:Yo({matchPatterns:UE,defaultMatchWidth:"wide",parsePatterns:qE,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Yo({matchPatterns:HE,defaultMatchWidth:"wide",parsePatterns:YE,defaultParseWidth:"any"}),day:Yo({matchPatterns:XE,defaultMatchWidth:"wide",parsePatterns:KE,defaultParseWidth:"any"}),dayPeriod:Yo({matchPatterns:VE,defaultMatchWidth:"any",parsePatterns:GE,defaultParseWidth:"any"})},QE={code:"en-US",formatDistance:xE,formatLong:kE,formatRelative:PE,localize:$E,match:JE,options:{weekStartsOn:0,firstWeekContainsDate:1}};function ZE(e,t){const n=hr(e,t==null?void 0:t.in);return mE(n,bE(n))+1}function eM(e,t){const n=hr(e,t==null?void 0:t.in),r=+Ll(n)-+gE(n);return Math.round(r/bv)+1}function xv(e,t){var f,m,g,y;const n=hr(e,t==null?void 0:t.in),r=n.getFullYear(),s=oc(),o=(t==null?void 0:t.firstWeekContainsDate)??((m=(f=t==null?void 0:t.locale)==null?void 0:f.options)==null?void 0:m.firstWeekContainsDate)??s.firstWeekContainsDate??((y=(g=s.locale)==null?void 0:g.options)==null?void 0:y.firstWeekContainsDate)??1,a=es((t==null?void 0:t.in)||e,0);a.setFullYear(r+1,0,o),a.setHours(0,0,0,0);const i=ii(a,t),c=es((t==null?void 0:t.in)||e,0);c.setFullYear(r,0,o),c.setHours(0,0,0,0);const d=ii(c,t);return+n>=+i?r+1:+n>=+d?r:r-1}function tM(e,t){var i,c,d,f;const n=oc(),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=xv(e,t),o=es((t==null?void 0:t.in)||e,0);return o.setFullYear(s,0,r),o.setHours(0,0,0,0),ii(o,t)}function nM(e,t){const n=hr(e,t==null?void 0:t.in),r=+ii(n,t)-+tM(n,t);return Math.round(r/bv)+1}function zt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const qr={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return zt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):zt(n+1,2)},d(e,t){return zt(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 zt(e.getHours()%12||12,t.length)},H(e,t){return zt(e.getHours(),t.length)},m(e,t){return zt(e.getMinutes(),t.length)},s(e,t){return zt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return zt(s,t.length)}},Xs={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Cp={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 qr.y(e,t)},Y:function(e,t,n,r){const s=xv(e,r),o=s>0?s:1-s;if(t==="YY"){const a=o%100;return zt(a,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):zt(o,t.length)},R:function(e,t){const n=Sv(e);return zt(n,t.length)},u:function(e,t){const n=e.getFullYear();return zt(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 zt(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 zt(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 qr.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 zt(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=nM(e,r);return t==="wo"?n.ordinalNumber(s,{unit:"week"}):zt(s,t.length)},I:function(e,t,n){const r=eM(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):zt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):qr.d(e,t)},D:function(e,t,n){const r=ZE(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):zt(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 zt(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 zt(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 zt(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=Xs.noon:r===0?s=Xs.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=Xs.evening:r>=12?s=Xs.afternoon:r>=4?s=Xs.morning:s=Xs.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 qr.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):qr.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):zt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):zt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):qr.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):qr.s(e,t)},S:function(e,t){return qr.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Tp(r);case"XXXX":case"XX":return hs(r);case"XXXXX":case"XXX":default:return hs(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Tp(r);case"xxxx":case"xx":return hs(r);case"xxxxx":case"xxx":default:return hs(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+kp(r,":");case"OOOO":default:return"GMT"+hs(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+kp(r,":");case"zzzz":default:return"GMT"+hs(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return zt(r,t.length)},T:function(e,t,n){return zt(+e,t.length)}};function kp(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+zt(o,2)}function Tp(e,t){return e%60===0?(e>0?"-":"+")+zt(Math.abs(e)/60,2):hs(e,t)}function hs(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=zt(Math.trunc(r/60),2),o=zt(r%60,2);return n+s+t+o}const Pp=(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"})}},rM=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return Pp(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}}",Pp(r,t)).replace("{{time}}",wv(s,t))},sM={p:wv,P:rM},oM=/^D+$/,aM=/^Y+$/,iM=["D","DD","YY","YYYY"];function lM(e){return oM.test(e)}function cM(e){return aM.test(e)}function uM(e,t,n){const r=dM(e,t,n);if(console.warn(r),iM.includes(e))throw new RangeError(r)}function dM(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 fM=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,hM=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,pM=/^'([^]*?)'?$/,mM=/''/g,gM=/[a-zA-Z]/;function yM(e,t,n){var f,m,g,y;const r=oc(),s=r.locale??QE,o=r.firstWeekContainsDate??((m=(f=r.locale)==null?void 0:f.options)==null?void 0:m.firstWeekContainsDate)??1,a=r.weekStartsOn??((y=(g=r.locale)==null?void 0:g.options)==null?void 0:y.weekStartsOn)??0,i=hr(e,n==null?void 0:n.in);if(!vE(i))throw new RangeError("Invalid time value");let c=t.match(hM).map(x=>{const S=x[0];if(S==="p"||S==="P"){const _=sM[S];return _(x,s.formatLong)}return x}).join("").match(fM).map(x=>{if(x==="''")return{isToken:!1,value:"'"};const S=x[0];if(S==="'")return{isToken:!1,value:vM(x)};if(Cp[S])return{isToken:!0,value:x};if(S.match(gM))throw new RangeError("Format string contains an unescaped latin alphabet character `"+S+"`");return{isToken:!1,value:x}});s.localize.preprocessor&&(c=s.localize.preprocessor(i,c));const d={firstWeekContainsDate:o,weekStartsOn:a,locale:s};return c.map(x=>{if(!x.isToken)return x.value;const S=x.value;(cM(S)||lM(S))&&uM(S,t,String(e));const _=Cp[S[0]];return _(i,S,s.localize,d)}).join("")}function vM(e){const t=e.match(pM);return t?t[1].replace(mM,"'"):e}const{useToken:bM}=dt,{Text:Ki}=ht,SM=({images:e,className:t,style:n,maxHeight:r={single:400,multiple:200}})=>{const{token:s}=bM(),{t:o}=Ge();return!e||e.length===0?null:l.jsx(sn,{className:t,style:{marginBottom:s.marginMD,...n},styles:{body:{padding:0}},variant:"borderless",children:l.jsx(Pe,{wrap:"wrap",gap:s.marginSM,style:{width:"100%"},children:e.map(a=>l.jsxs(sn,{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(Bx,{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(Pe,{align:"center",justify:"center",gap:s.marginXS,style:{color:s.colorTextLightSolid},children:[l.jsx(Dd,{}),l.jsx(Ki,{style:{color:s.colorTextLightSolid},children:o("components.imageGrid.preview")})]})}}),l.jsxs(Pe,{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(Ki,{style:{color:s.colorTextLightSolid},strong:!0,children:a.name}),a.size&&l.jsxs(Ki,{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(go,{ghost:!0,size:"small",items:[{key:"ocr",label:o("components.imageGrid.ocr"),children:l.jsxs(l.Fragment,{children:[a.ocrError&&l.jsx(Ki,{type:"danger",children:a.ocrError}),a.ocrText&&l.jsx(ht.Paragraph,{style:{marginTop:a.ocrError?s.marginXS:0,marginBottom:0,whiteSpace:"pre-wrap"},children:a.ocrText})]})}]})})]},a.id))})})},{useToken:xM}=dt,{useBreakpoint:wM}=Vl,_M=({buttons:e,isVisible:t,className:n,style:r,position:s={bottom:"8px",right:"8px"}})=>{const{token:o}=xM(),a=wM(),i=()=>(a.xs,"small");return l.jsx(Pe,{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(wn,{title:c.title,children:l.jsx(je,{"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))})},CM=(e,t)=>({key:"copy","data-testid":"copy-message",icon:l.jsx(Ir,{}),title:t||Pt.t("chat.actions.copyMessage"),onClick:e}),kM=(e,t)=>({key:"reference",icon:l.jsx(ey,{}),title:t||Pt.t("chat.actions.referenceMessage"),onClick:e}),_v=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_result",TM=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_call",PM=e=>e.role==="assistant"&&"type"in e&&e.type==="workflow_result",EM=e=>e.role==="user"&&"type"in e&&e.type==="file_reference",MM=e=>e.role==="assistant"&&"type"in e&&e.type==="task_list",{Title:Ep,Text:Gn,Paragraph:Mp}=ht,{useToken:AM}=dt,RM=({plan:e,contextId:t,onExecute:n,onRefine:r,timestamp:s})=>{const{t:o}=Ge(),{token:a}=AM(),[i,c]=b.useState(!1),[d,f]=b.useState(""),m=()=>{d.trim()&&(r(d),f(""),c(!1))};return l.jsxs(sn,{style:{marginBottom:a.marginMD,borderColor:a.colorPrimary,borderWidth:2,backgroundColor:a.colorPrimaryBg},title:l.jsxs(Ye,{children:[l.jsx(Qa,{style:{color:a.colorPrimary}}),l.jsx(Gn,{strong:!0,style:{color:a.colorPrimary},children:o("components.plan.executionPlan")})]}),extra:s?l.jsx(Gn,{type:"secondary",style:{fontSize:a.fontSizeSM},children:s}):void 0,children:[l.jsxs(Pe,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Ep,{level:5,style:{marginBottom:a.marginXS},children:o("components.plan.goal")}),l.jsx(Mp,{style:{fontSize:15,marginBottom:0},children:e.goal})]}),l.jsxs(Pe,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Ep,{level:5,style:{marginBottom:a.marginMD},children:o("components.plan.steps")}),l.jsx(ty,{direction:"vertical",current:-1,items:e.steps.map(g=>({title:l.jsxs(Gn,{strong:!0,children:[o("components.plan.stepTitle",{number:g.step_number}),": ",g.action]}),description:l.jsxs(Pe,{vertical:!0,children:[l.jsxs(Mp,{style:{marginBottom:a.marginXS},children:[l.jsxs(Gn,{type:"secondary",children:[o("components.plan.reason"),":"]})," ",g.reason]}),l.jsxs(Ye,{wrap:!0,children:[l.jsxs(Gn,{type:"secondary",children:[l.jsx(Ld,{})," ",o("components.plan.tools"),":"]}),g.tools_needed.map((y,x)=>l.jsx(Je,{color:"processing",children:y},x))]}),l.jsx(Pe,{style:{marginTop:a.marginXS},children:l.jsxs(Gn,{type:"secondary",children:[l.jsx(As,{})," ",o("components.plan.estimated"),": ",g.estimated_time]})})]}),icon:l.jsx(Gn,{children:g.step_number})}))})]}),l.jsxs(Ye,{direction:"vertical",style:{width:"100%",marginBottom:a.marginLG},children:[l.jsxs(Pe,{align:"center",gap:a.marginXS,wrap:"wrap",children:[l.jsxs(Gn,{type:"secondary",children:[l.jsx(As,{})," ",o("components.plan.totalEstimatedTime")," "]}),l.jsx(Je,{color:"processing",children:e.estimated_total_time})]}),e.prerequisites&&e.prerequisites.length>0&&l.jsxs(Pe,{vertical:!0,children:[l.jsxs(Gn,{type:"secondary",children:[o("components.plan.prerequisites"),":"]}),l.jsx(jr,{size:"small",dataSource:e.prerequisites,renderItem:(g,y)=>l.jsx(jr.Item,{style:{padding:0},children:l.jsx(Gn,{children:g})},`${g}-${y}`)})]})]}),e.risks&&e.risks.length>0&&l.jsx(go,{ghost:!0,style:{marginBottom:a.marginLG},items:[{key:"risks",label:l.jsxs(Ye,{children:[l.jsx(Fd,{style:{color:a.colorWarning}}),l.jsx(Gn,{strong:!0,children:o("components.plan.potentialRisks",{count:e.risks.length})})]}),children:l.jsx(jr,{size:"small",dataSource:e.risks,renderItem:(g,y)=>l.jsx(jr.Item,{style:{padding:0},children:l.jsx(Gn,{children:g})},`${g}-${y}`)})}]}),l.jsx(Ye,{style:{width:"100%",justifyContent:"flex-end"},children:i?l.jsxs(l.Fragment,{children:[l.jsx(je,{onClick:()=>c(!1),children:o("common.cancel")}),l.jsx(je,{type:"primary",onClick:m,disabled:!d.trim(),children:o("components.plan.sendFeedback")})]}):l.jsxs(l.Fragment,{children:[l.jsx(je,{onClick:()=>c(!0),children:o("components.plan.refinePlan")}),l.jsx(je,{type:"primary",icon:l.jsx(Wx,{}),onClick:n,children:o("components.plan.executePlan")})]})}),i&&l.jsx(Pe,{vertical:!0,style:{marginTop:a.marginMD},children:l.jsx($s.TextArea,{value:d,onChange:g=>f(g.target.value),placeholder:o("components.plan.feedbackPlaceholder"),autoSize:{minRows:4,maxRows:10}})})]})},Cv=b.memo(RM);Cv.displayName="PlanMessageCard";const{Title:jM,Text:Ks,Paragraph:IM}=ht,{useToken:OM}=dt,$M=({question:e,contextId:t,onAnswer:n,disabled:r=!1,timestamp:s})=>{const{t:o}=Ge(),{token:a}=OM(),[i,c]=b.useState(e.default),[d,f]=b.useState(!1),m=async()=>{if(i){f(!0);try{await n(i)}catch(S){console.error("Failed to submit answer:",S)}finally{f(!1)}}},g=()=>{switch(e.severity){case"critical":return l.jsx(Gg,{style:{color:a.colorError}});case"major":return l.jsx(Fd,{style:{color:a.colorWarning}});case"minor":return l.jsx(Ux,{style:{color:a.colorInfo}});default:return l.jsx(Zg,{style:{color:a.colorPrimary}})}},y=()=>{switch(e.severity){case"critical":return a.colorErrorBg;case"major":return a.colorWarningBg;case"minor":return a.colorInfoBg;default:return a.colorPrimaryBg}},x=()=>{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(sn,{style:{marginBottom:a.marginMD,borderColor:x(),borderWidth:2,backgroundColor:y()},title:l.jsxs(Ye,{children:[g(),l.jsx(Ks,{strong:!0,style:{color:x()},children:o("components.question.agentQuestion")}),l.jsxs(Ks,{type:"secondary",style:{fontSize:12},children:["(",e.severity,")"]})]}),extra:s?l.jsx(Ks,{type:"secondary",style:{fontSize:a.fontSizeSM},children:s}):void 0,children:[l.jsx(Pe,{vertical:!0,style:{marginBottom:a.marginLG},children:l.jsx(jM,{level:5,style:{marginBottom:a.marginXS},children:e.question})}),e.context&&l.jsx(fr,{message:o("components.question.context"),description:e.context,type:"info",showIcon:!0,style:{marginBottom:a.marginLG}}),l.jsxs(Pe,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Ks,{strong:!0,style:{display:"block",marginBottom:a.marginSM},children:o("components.question.chooseOption")}),l.jsx(oh.Group,{value:i,onChange:S=>c(S.target.value),disabled:r||d,style:{width:"100%"},children:l.jsx(Ye,{direction:"vertical",style:{width:"100%"},children:e.options.map(S=>l.jsx(sn,{size:"small",hoverable:!r&&!d,style:{borderColor:i===S.value?a.colorPrimary:a.colorBorder,backgroundColor:i===S.value?a.colorPrimaryBg:a.colorBgContainer,cursor:r||d?"not-allowed":"pointer"},onClick:()=>!r&&!d&&c(S.value),children:l.jsx(oh,{value:S.value,style:{width:"100%"},children:l.jsxs(Pe,{vertical:!0,children:[l.jsxs(Pe,{align:"center",gap:a.marginXS,wrap:"wrap",children:[l.jsx(Ks,{strong:!0,children:S.label}),S.value===e.default&&l.jsx(Je,{color:"processing",style:{marginLeft:a.marginXS},children:o("components.question.recommended")})]}),l.jsx(IM,{type:"secondary",style:{marginTop:a.marginXXS,marginBottom:0},children:S.description})]})})},S.value))})})]}),e.allow_custom&&l.jsxs(Pe,{vertical:!0,style:{marginBottom:a.marginMD},children:[l.jsx(Ks,{type:"secondary",style:{fontSize:12},children:o("components.question.customAnswerHint")}),l.jsx($s.TextArea,{value:i&&!e.options.find(S=>S.value===i)?i:"",onChange:S=>c(S.target.value),placeholder:o("components.question.customAnswerPlaceholder"),disabled:r||d,autoSize:{minRows:3,maxRows:8},style:{marginTop:a.marginXS}})]}),l.jsx(Pe,{justify:"flex-end",children:l.jsx(je,{type:"primary",icon:l.jsx(Qa,{}),onClick:m,loading:d,disabled:r||!i,children:o("components.question.submitAnswer")})})]})},kv=b.memo($M);kv.displayName="QuestionMessageCard";const{Text:Ap}=ht,LM=({paths:e,displayText:t})=>{const{token:n}=dt.useToken(),r=t.replace(/@[^\s]+/g,"").trim();return l.jsxs(sn,{size:"small",styles:{body:{padding:`${n.paddingSM}px ${n.paddingMD}px`}},style:{maxWidth:"100%"},children:[l.jsx(Ye,{direction:"vertical",size:n.marginXXS,children:e.map((s,o)=>{const a=s.split("/").pop()||s,i=s.substring(0,s.lastIndexOf("/"))||"",c=!a.includes(".");return l.jsxs(Pe,{vertical:!0,children:[l.jsxs(Ye,{size:n.marginXS,align:"center",wrap:!0,children:[c?l.jsx(ah,{style:{color:n.colorWarning,fontSize:n.fontSizeLG}}):l.jsx(kl,{style:{color:n.colorPrimary,fontSize:n.fontSizeLG}}),l.jsx(Je,{color:c?"warning":"processing",style:{margin:0,fontFamily:n.fontFamilyCode,fontSize:n.fontSize},children:a})]}),i&&l.jsx(wn,{title:s,children:l.jsxs(Ye,{size:4,align:"center",style:{marginTop:4},children:[l.jsx(ah,{style:{color:n.colorTextTertiary,fontSize:n.fontSizeSM}}),l.jsx(Ap,{type:"secondary",style:{fontSize:n.fontSizeSM,fontFamily:n.fontFamilyCode,maxWidth:"400px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},copyable:{text:s},children:i})]})})]},o)})}),r&&l.jsx(Ap,{style:{fontSize:n.fontSize,color:n.colorText,marginTop:n.marginXS,paddingTop:n.marginXS,borderTop:`1px solid ${n.colorBorderSecondary}`},children:r})]})},Tv=b.memo(LM);Tv.displayName="FileReferenceCard";const DM=({taskList:e})=>{const{token:t}=dt.useToken(),{Text:n}=ht,{t:r}=Ge(),s=c=>{switch(c){case"pending":return l.jsx(Je,{icon:l.jsx(As,{}),color:"default",children:r("components.todoList.status.pending")});case"in_progress":return l.jsx(Je,{icon:l.jsx(co,{spin:!0}),color:"processing",children:r("components.todoList.status.inProgress")});case"completed":return l.jsx(Je,{icon:l.jsx(Qa,{}),color:"success",children:r("components.todoList.status.completed")});case"skipped":return l.jsx(Je,{icon:l.jsx(qx,{}),color:"default",children:r("components.todoList.status.skipped")});case"failed":return l.jsx(Je,{icon:l.jsx(Iu,{}),color:"error",children:r("components.todoList.status.failed")});default:return null}},o=()=>{switch(e.status){case"active":return l.jsx(Je,{color:"processing",children:r("components.todoList.listStatus.active")});case"completed":return l.jsx(Je,{color:"success",children:r("components.todoList.listStatus.completed")});case"abandoned":return l.jsx(Je,{color:"error",children:r("components.todoList.listStatus.abandoned")});default:return null}},a=ft.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=ft.useMemo(()=>e.items.find(c=>c.status==="in_progress"),[e.items]);return l.jsx(sn,{size:"small",styles:{body:{padding:t.paddingSM}},style:{borderRadius:t.borderRadiusLG},children:l.jsxs(Pe,{vertical:!0,gap:t.marginSM,children:[l.jsxs(Pe,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsxs(Ye,{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(Ye,{direction:"vertical",size:4,children:[l.jsx(ny,{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(jr,{size:"small",dataSource:e.items,renderItem:c=>{var f;const d=(i==null?void 0:i.id)===c.id;return l.jsx(jr.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(Pe,{vertical:!0,style:{width:"100%"},gap:4,children:[l.jsxs(Pe,{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:c.metadata.error}):null,c.status==="completed"&&c.summary?l.jsx(n,{type:"success",style:{fontSize:12},children:c.summary}):null]})})}}),l.jsxs(Pe,{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]})]})})},FM=100,ps=new Set;function NM(e){if(ps.has(e)&&ps.delete(e),ps.add(e),ps.size>FM){const t=ps.values().next().value;t&&ps.delete(t)}}function zM(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const BM=e=>{const{t}=Ge(),n=zM(e.chart),[r,s]=b.useState(()=>ps.has(n)),o=b.useRef(null);return b.useEffect(()=>{if(r)return;const a=o.current;if(!a)return;const i=new IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(NM(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(ft.Suspense,{fallback:l.jsx(ho,{size:"small",tip:t("components.mermaid.loadingDiagram")}),children:l.jsx(WM,{...e})}):l.jsx("div",{style:{minHeight:"200px"}})})},WM=e=>{const{t}=Ge(),[n,r]=b.useState(null);return b.useEffect(()=>{let s=!1;return en(()=>Promise.resolve().then(()=>mR),void 0,import.meta.url).then(o=>{s||r(()=>o.MermaidChart)}),()=>{s=!0}},[]),n?l.jsx(n,{...e}):l.jsx(ho,{size:"small",tip:t("components.mermaid.loadingDiagram")})},UM=ft.memo(BM),qM=({error:e,className:t,style:n,token:r,onFix:s,isFixing:o,fixError:a})=>{const{t:i}=Ge(),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(Fd,{})}),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(je,{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(Xg,{style:{marginRight:4}})," ",i("components.mermaid.checkConsoleHint")]})]})};var Zn=function(e,t){return Number(e.toFixed(t))},HM=function(e,t){return typeof e=="number"?e:t},Vt=function(e,t,n){n&&typeof n=="function"&&n(e,t)},YM=function(e){return-Math.cos(e*Math.PI)/2+.5},XM=function(e){return e},KM=function(e){return e*e},VM=function(e){return e*(2-e)},GM=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},JM=function(e){return e*e*e},QM=function(e){return--e*e*e+1},ZM=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},eA=function(e){return e*e*e*e},tA=function(e){return 1- --e*e*e*e},nA=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},rA=function(e){return e*e*e*e*e},sA=function(e){return 1+--e*e*e*e*e},oA=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},Pv={easeOut:YM,linear:XM,easeInQuad:KM,easeOutQuad:VM,easeInOutQuad:GM,easeInCubic:JM,easeOutCubic:QM,easeInOutCubic:ZM,easeInQuart:eA,easeOutQuart:tA,easeInOutQuart:nA,easeInQuint:rA,easeOutQuint:sA,easeInOutQuint:oA},Ev=function(e){typeof e=="number"&&cancelAnimationFrame(e)},dr=function(e){e.mounted&&(Ev(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function Mv(e,t,n,r){if(e.mounted){var s=new Date().getTime(),o=1;dr(e),e.animation=function(){if(!e.mounted)return Ev(e.animation);var a=new Date().getTime()-s,i=a/n,c=Pv[t],d=c(i);a>=n?(r(o),e.animation=null):e.animation&&(r(d),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function aA(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function rs(e,t,n,r){var s=aA(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,m=t.positionX-c,g=t.positionY-d;n===0?o(t.scale,t.positionX,t.positionY):Mv(e,r,n,function(y){var x=i+f*y,S=c+m*y,_=d+g*y;o(x,S,_)})}}function iA(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 lA=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,m=r-s-c,g=c;return{minPositionX:d,maxPositionX:f,minPositionY:m,maxPositionY:g}},lf=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=iA(n,r,t),a=o.wrapperWidth,i=o.wrapperHeight,c=o.newContentWidth,d=o.newDiffWidth,f=o.newContentHeight,m=o.newDiffHeight,g=lA(a,c,d,i,f,m,!!s);return g},od=function(e,t,n,r){return r?e<t?Zn(t,2):e>n?Zn(n,2):Zn(e,2):Zn(e,2)},Es=function(e,t){var n=lf(e,t);return e.bounds=n,n};function hi(e,t,n,r,s,o,a){var i=n.minPositionX,c=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,m=0,g=0;a&&(m=s,g=o);var y=od(e,i-m,d+m,r),x=od(t,c-g,f+g,r);return{x:y,y:x}}function ac(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 m=c-t*f,g=d-n*f,y=hi(m,g,s,o,0,0,null);return y}function pi(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 Rp=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=ic(o,n);return!d},jp=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,s=r.panning.disabled,o=t&&n&&!s;return!!o},cA=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}},uA=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 dA(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,m=f.maxPositionX,g=f.minPositionX,y=f.maxPositionY,x=f.minPositionY,S=n>m||n<g,_=r>y||r<x,E=n>m?d.offsetWidth:e.setup.minPositionX||0,T=r>y?d.offsetHeight:e.setup.minPositionY||0,P=ac(e,E,T,s,e.bounds,i||c),C=P.x,A=P.y;return{scale:s,positionX:S?C:n,positionY:_?A:r}}}function Av(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,m=c.positionY;if(!(a===null||i===null||t===f&&n===m)){var g=hi(t,n,i,o,r,s,a),y=g.x,x=g.y;e.setTransformState(d,y,x)}}var fA=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,m=n-r.y,g=a?c:f,y=i?d:m;return{x:g,y}},ts=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},hA=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},pA=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 mA(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,s=n.animationTime,o=n.sensitivity;return r?s*t*o:s}function Ip(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:od(e,o,a,s)}function gA(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function yA(e,t){var n=hA(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=gA(a,i),f=t.x-r.x,m=t.y-r.y,g=f/d,y=m/d,x=c-s,S=f*f+m*m,_=Math.sqrt(S)/x;e.velocity={velocityX:g,velocityY:y,total:_}}e.lastMousePosition=t,e.velocityTime=c}}function vA(e){var t=e.velocity,n=e.bounds,r=e.setup,s=e.wrapperComponent,o=pA(e);if(!(!o||!t||!n||!s)){var a=t.velocityX,i=t.velocityY,c=t.total,d=n.maxPositionX,f=n.minPositionX,m=n.maxPositionY,g=n.minPositionY,y=r.limitToBounds,x=r.alignmentAnimation,S=r.zoomAnimation,_=r.panning,E=_.lockAxisY,T=_.lockAxisX,P=S.animationType,C=x.sizeX,A=x.sizeY,I=x.velocityAlignmentTime,L=I,$=mA(e,c),F=Math.max($,L),te=ts(e,C),N=ts(e,A),O=te*s.offsetWidth/100,Q=N*s.offsetHeight/100,W=d+O,z=f-O,pe=m+Q,Z=g-Q,ce=e.transformState,ve=new Date().getTime();Mv(e,P,F,function(G){var he=e.transformState,_e=he.scale,ie=he.positionX,ue=he.positionY,me=new Date().getTime()-ve,ke=me/L,De=Pv[x.animationType],Fe=1-De(Math.min(1,ke)),j=1-G,se=ie+a*j,ge=ue+i*j,we=Ip(se,ce.positionX,ie,T,y,f,d,z,W,Fe),He=Ip(ge,ce.positionY,ue,E,y,g,m,Z,pe,Fe);(ie!==se||ue!==ge)&&e.setTransformState(_e,we,He)})}}function Op(e,t){var n=e.transformState.scale;dr(e),Es(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?uA(e,t):cA(e,t)}function cf(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,m=a||n<s||!i&&!c;if(!m){var g=dA(e);g&&rs(e,g,t??d,f)}}function $p(e,t,n){var r=e.startCoords,s=e.setup,o=s.alignmentAnimation,a=o.sizeX,i=o.sizeY;if(r){var c=fA(e,t,n),d=c.x,f=c.y,m=ts(e,a),g=ts(e,i);yA(e,{x:d,y:f}),Av(e,d,f,m,g)}}function bA(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,m=i<d||c<f,g=!t&&n&&(n==null?void 0:n.total)>.1&&m;g?vA(e):cf(e)}}function uf(e,t,n,r){var s=e.setup,o=s.minScale,a=s.maxScale,i=s.limitToBounds,c=pi(Zn(t,2),o,a,0,!1),d=Es(e,c),f=ac(e,n,r,c,d,i),m=f.x,g=f.y;return{scale:c,positionX:m,positionY:g}}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,m=c.animationType,g=d||r>=a;if((r>=1||i)&&cf(e),!(g||!s||!e.mounted)){var y=t||s.offsetWidth/2,x=n||s.offsetHeight/2,S=uf(e,a,y,x);S&&rs(e,S,f,m)}}var Qr=function(){return Qr=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},Qr.apply(this,arguments)};function Lp(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 Vi={scale:1,positionX:0,positionY:0},Xo={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}},ad={wrapperClass:"react-transform-wrapper",contentClass:"react-transform-component"},jv=function(e){var t,n,r,s;return{previousScale:(t=e.initialScale)!==null&&t!==void 0?t:Vi.scale,scale:(n=e.initialScale)!==null&&n!==void 0?n:Vi.scale,positionX:(r=e.initialPositionX)!==null&&r!==void 0?r:Vi.positionX,positionY:(s=e.initialPositionY)!==null&&s!==void 0?s:Vi.positionY}},Dp=function(e){var t=Qr({},Xo);return Object.keys(e).forEach(function(n){var r=typeof e[n]<"u",s=typeof Xo[n]<"u";if(s&&r){var o=Object.prototype.toString.call(Xo[n]),a=o==="[object Object]",i=o==="[object Array]";a?t[n]=Qr(Qr({},Xo[n]),e[n]):i?t[n]=Lp(Lp([],Xo[n],!0),e[n]):t[n]=e[n]}}),t},Iv=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 m=d?r*Math.exp(t*n):r+t*n,g=pi(Zn(m,3),i,a,f,!1);return g};function Ov(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,m=o.offsetHeight,g=(f/2-c)/i,y=(m/2-d)/i,x=Iv(e,t,n),S=uf(e,x,g,y);if(!S)return console.error("Error during zoom event. New transformation state was not calculated.");rs(e,S,r,s)}function $v(e,t,n,r){var s=e.setup,o=e.wrapperComponent,a=s.limitToBounds,i=jv(e.props),c=e.transformState,d=c.scale,f=c.positionX,m=c.positionY;if(o){var g=lf(e,i.scale),y=hi(i.positionX,i.positionY,g,a,0,0,o),x={scale:i.scale,positionX:y.x,positionY:y.y};d===i.scale&&f===i.positionX&&m===i.positionY||(r==null||r(),rs(e,x,t,n))}}function SA(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 xA(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(),m=t.getBoundingClientRect(),g=SA(t,r,s,o),y=g.x,x=g.y,S=m.width/o.scale,_=m.height/o.scale,E=r.offsetWidth/S,T=r.offsetHeight/_,P=pi(n||Math.min(E,T),c,d,0,!1),C=(f.width-S*P)/2,A=(f.height-_*P)/2,I=(f.left-y)*P+C,L=(f.top-x)*P+A,$=lf(e,P),F=hi(I,L,$,i,0,0,r),te=F.x,N=F.y;return{positionX:te,positionY:N,scale:P}}var wA=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Ov(e,1,t,n,r)}},_A=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Ov(e,-1,t,n,r)}},CA=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,m=e.contentComponent,g=e.setup.disabled;if(!(g||!f||!m)){var y={positionX:Number.isNaN(t)?i:t,positionY:Number.isNaN(n)?c:n,scale:Number.isNaN(r)?d:r};rs(e,y,s,o)}}},kA=function(e){return function(t,n){t===void 0&&(t=200),n===void 0&&(n="easeOut"),$v(e,t,n)}},TA=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=Lv(t||s.scale,o,a);rs(e,i,n,r)}}},PA=function(e){return function(t,n,r,s){r===void 0&&(r=600),s===void 0&&(s="easeOut"),dr(e);var o=e.wrapperComponent,a=typeof t=="string"?document.getElementById(t):t;if(o&&a&&o.contains(a)){var i=xA(e,a,n);rs(e,i,r,s)}}},id=function(e){return{instance:e,zoomIn:wA(e),zoomOut:_A(e),setTransform:CA(e),resetTransform:kA(e),centerView:TA(e),zoomToElement:PA(e)}},EA=function(e){return{instance:e,state:e.transformState}},qt=function(e){var t={};return Object.assign(t,EA(e)),Object.assign(t,id(e)),t},eu=!1;function tu(){try{var e={get passive(){return eu=!0,!1}};return e}catch{return eu=!1,eu}}var Gi=".".concat(ad.wrapperClass),ic=function(e,t){return t.some(function(n){return e.matches("".concat(Gi," ").concat(n,", ").concat(Gi," .").concat(n,", ").concat(Gi," ").concat(n," *, ").concat(Gi," .").concat(n," *"))})},ld=function(e){e&&clearTimeout(e)},MA=function(e,t,n){return"translate(".concat(e,"px, ").concat(t,"px) scale(").concat(n,")")},Lv=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 RA=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 m=ic(d,a);return!m},jA=function(e){return e?e.deltaY<0?1:-1:0};function IA(e,t){var n=jA(e),r=HM(t,n);return r}function Dv(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 OA=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,m=i.disablePadding,g=f.size,y=f.disabled;if(!a)throw new Error("Wrapper is not mounted");var x=o+t*n,S=r?!1:!y,_=pi(Zn(x,3),d,c,g,S&&!m);return _},$A=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},LA=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=ic(a,s);return!c},DA=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,s=n&&!t&&r;return!!s},FA=function(e,t,n){var r=n.getBoundingClientRect(),s=e.touches,o=Zn(s[0].clientX-r.left,5),a=Zn(s[0].clientY-r.top,5),i=Zn(s[1].clientX-r.left,5),c=Zn(s[1].clientY-r.top,5);return{x:(o+i)/2/t,y:(a+c)/2/t}},Fv=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))},NA=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 m=t/r,g=m*n;return pi(Zn(g,2),a,o,d,!f&&!c)},zA=160,BA=100,WA=function(e,t){var n=e.props,r=n.onWheelStart,s=n.onZoomStart;e.wheelStopEventTimer||(dr(e),Vt(qt(e),t,r),Vt(qt(e),t,s))},UA=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,m=a.zoomAnimation,g=a.wheel,y=a.disablePadding,x=a.smooth,S=m.size,_=m.disabled,E=g.step,T=g.smoothStep;if(!o)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var P=IA(t,null),C=x?T*Math.abs(t.deltaY):E,A=OA(e,P,C,!t.ctrlKey);if(c!==A){var I=Es(e,A),L=Dv(t,o,c),$=_||S===0||f||y,F=d&&$,te=ac(e,L.x,L.y,A,I,F),N=te.x,O=te.y;e.previousWheelEvent=t,e.setTransformState(A,N,O),Vt(qt(e),t,r),Vt(qt(e),t,s)}},qA=function(e,t){var n=e.props,r=n.onWheelStop,s=n.onZoomStop;ld(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&(Rv(e,t.x,t.y),e.wheelAnimationTimer=null)},BA);var o=$A(e,t);o&&(ld(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,Vt(qt(e),t,r),Vt(qt(e),t,s))},zA))},Nv=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}},HA=function(e,t){var n=Fv(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1;var r=Nv(t);e.pinchLastCenterX=r.x,e.pinchLastCenterY=r.y,dr(e)},YA=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,m=d.disabled,g=d.size;if(!(r===null||!n)){var y=FA(t,o,n);if(!(!Number.isFinite(y.x)||!Number.isFinite(y.y))){var x=Fv(t),S=NA(e,x),_=Nv(t),E=_.x-(e.pinchLastCenterX||0),T=_.y-(e.pinchLastCenterY||0);if(!(S===o&&E===0&&T===0)){e.pinchLastCenterX=_.x,e.pinchLastCenterY=_.y;var P=Es(e,S),C=m||g===0||c,A=i&&C,I=ac(e,y.x,y.y,S,P,A),L=I.x,$=I.y;e.pinchMidpoint=y,e.lastDistance=x;var F=f.sizeX,te=f.sizeY,N=ts(e,F),O=ts(e,te),Q=L+E,W=$+T,z=hi(Q,W,P,i,N,O,s),pe=z.x,Z=z.y;e.setTransformState(S,pe,Z)}}}},XA=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)},zv=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;ld(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,Vt(qt(e),t,n)},r)},KA=function(e,t){var n=e.props,r=n.onZoomStart,s=n.onZoom,o=e.setup.doubleClick,a=o.animationTime,i=o.animationType;Vt(qt(e),t,r),$v(e,a,i,function(){return Vt(qt(e),t,s)}),zv(e,t)};function VA(e,t){return e==="toggle"?t===1?1:-1:e==="zoomOut"?-1:1}function GA(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,m=f.disabled,g=f.mode,y=f.step,x=f.animationTime,S=f.animationType;if(!m&&!r){if(g==="reset")return KA(e,t);if(!o)return console.error("No ContentComponent found");var _=VA(g,e.transformState.scale),E=Iv(e,_,y);if(a!==E){Vt(qt(e),t,c);var T=Dv(t,o,a),P=uf(e,E,T.x,T.y);if(!P)return console.error("Error during zoom event. New transformation state was not calculated.");Vt(qt(e),t,d),rs(e,P,x,S),zv(e,t)}}}var JA=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 m=ic(c,i);return!m},QA=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,Es(n,n.transformState.scale),n.setup=Dp(r)},this.initializeWindowEvents=function(){var r,s,o=tu(),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=tu(),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),dr(n),(s=n.observer)===null||s===void 0||s.disconnect()},this.handleInitializeWrapperEvents=function(r){var s=tu();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,m=c;f<m.length;f++){var g=m[f];if(g.target===d)return!0}return!1};n.applyTransformation(),n.onInitCallbacks.forEach(function(c){c(qt(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 dr(n),Es(n,n.transformState.scale),cf(n,0)}),n.observer.observe(r),n.observer.observe(s)},this.onWheelZoom=function(r){var s=n.setup.disabled;if(!s){var o=RA(n,r);if(o){var a=n.isPressingKeys(n.setup.wheel.activationKeys);a&&(WA(n,r),UA(n,r),qA(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,m=d-r.deltaX,g=f-r.deltaY,y=i.lockAxisX?d:m,x=i.lockAxisY?f:g,S=n.setup.alignmentAnimation,_=S.sizeX,E=S.sizeY,T=ts(n,_),P=ts(n,E);y===d&&x===f||Av(n,y,x,T,P)}},this.onPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var a=Rp(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(),dr(n),Op(n,r),Vt(qt(n),r,o)))}}},this.onPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(!s){var a=jp(n);if(a){var i=n.isPressingKeys(n.setup.panning.activationKeys);i&&(r.preventDefault(),r.stopPropagation(),$p(n,r.clientX,r.clientY),Vt(qt(n),r,o))}}},this.onPanningStop=function(r){var s=n.props.onPanningStop;n.isPanning&&(bA(n),Vt(qt(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=LA(n,r);c&&(HA(n,r),dr(n),Vt(qt(n),r,a),Vt(qt(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=DA(n);c&&(r.preventDefault(),r.stopPropagation(),YA(n,r),Vt(qt(n),r,a),Vt(qt(n),r,i))}},this.onPinchStop=function(r){var s=n.props,o=s.onPinchingStop,a=s.onZoomStop;n.pinchStartScale&&(XA(n),Vt(qt(n),r,o),Vt(qt(n),r,a))},this.onTouchPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var a=Rp(n,r);if(a){var i=n.lastTouch&&+new Date-n.lastTouch<200&&r.touches.length===1;if(!i){n.lastTouch=+new Date,dr(n);var c=r.touches,d=c.length===1,f=c.length===2;d&&(dr(n),Op(n,r),Vt(qt(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=jp(n);if(!a)return;r.preventDefault(),r.stopPropagation();var i=r.touches[0];$p(n,i.clientX,i.clientY),Vt(qt(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=JA(n,r);o&&GA(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=qt(n);n.onChangeCallbacks.forEach(function(c){return c(i)}),Vt(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=Lv(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):MA(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 qt(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,Es(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(r,s),n.initializeWindowEvents(),n.isInitialized=!0;var o=qt(n);Vt(o,void 0,n.props.onInit)},this.props=t,this.setup=Dp(this.props),this.transformState=jv(this.props)}return e}(),df=ft.createContext(null),ZA=function(e,t){return typeof e=="function"?e(t):e},eR=ft.forwardRef(function(e,t){var n=b.useRef(new QA(e)).current,r=ZA(e.children,id(n));return b.useImperativeHandle(t,function(){return id(n)},[n]),b.useEffect(function(){n.update(e)},[n,e]),ft.createElement(df.Provider,{value:n},r)});ft.forwardRef(function(e,t){var n=b.useRef(null),r=b.useContext(df);return b.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]),ft.createElement("div",Qr({},e,{ref:AA([n,t])}))});function tR(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 nR=`.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
+ `,Fp={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};tR(nR);var rR=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,m=f===void 0?{}:f,g=b.useContext(df),y=g.init,x=g.cleanupWindowEvents,S=b.useRef(null),_=b.useRef(null);return b.useEffect(function(){var E=S.current,T=_.current;return E!==null&&T!==null&&y&&(y==null||y(E,T)),function(){x==null||x()}},[]),ft.createElement("div",Qr({},d,{ref:S,className:"".concat(ad.wrapperClass," ").concat(Fp.wrapper," ").concat(r),style:a}),ft.createElement("div",Qr({},m,{ref:_,className:"".concat(ad.contentClass," ").concat(Fp.content," ").concat(o),style:i}),t))};class sR{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,{save:o}=await en(async()=>{const{save:d}=await import("./index-BmjFP0ha.js");return{save:d}},__vite__mapDeps([12,13]),import.meta.url),{writeFile:a,writeTextFile:i}=await en(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:Bv(c,s),success:!0}}}class oR{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,o=Bv(s,s);if(typeof window>"u"||typeof document>"u")throw new Error("File save is unavailable in this environment");const a=lR(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 aR=new sR,iR=new oR,Bv=(e,t)=>e.split(/[/\\]/).pop()||t,lR=(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"}},cR=()=>nf()?aR:iR;class wr{static async saveFile(t){try{return await cR().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}`}}Rt(wr,"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 uR=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},dR=({svg:e,height:t,isLoading:n,initialScale:r,chartKey:s,className:o,style:a,token:i,containerRef:c})=>{const{t:d}=Ge(),{message:f}=Dn.useApp(),[m,g]=b.useState(!1),y=b.useCallback(async()=>{var S;if(!(!e||m)){g(!0);try{const _=uR(e),E=new TextEncoder().encode(_),T=s?`mermaid-${s.slice(0,8)}`:"mermaid-graph",P=wr.generateTimestampedFilename(T,"svg"),C=await wr.saveBinaryFile(E,wr.FILTERS.SVG,P);if(C.success){f.success(d("chat.messageActions.savedFile",{filename:C.filename}));return}if((S=C.error)!=null&&S.toLowerCase().includes("cancel"))return;f.error(C.error||d("chat.messageActions.exportFailed"))}catch(_){const E=_ instanceof Error?_.message:d("components.mermaid.exportFailed");f.error(E)}finally{g(!1)}}},[f,s,m,e,d]),x=n||!e||m;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(eR,{initialScale:r,minScale:.1,maxScale:10,centerOnInit:!0,limitToBounds:!1,wheel:{step:.1},panning:{disabled:!1},pinch:{disabled:!1},doubleClick:{disabled:!1,mode:"zoomIn",step:.5},children:({zoomIn:S,zoomOut:_,resetTransform:E})=>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(je,{size:"small",type:"text",onClick:()=>S(),style:{fontSize:12,padding:"2px 6px"},children:"+"}),l.jsx(je,{size:"small",type:"text",onClick:()=>_(),style:{fontSize:12,padding:"2px 6px"},children:"-"}),l.jsx(je,{size:"small",type:"text",onClick:()=>E(),style:{fontSize:10,padding:"2px 6px"},children:"⌂"}),l.jsx(wn,{title:d("components.mermaid.exportSvg"),children:l.jsx(je,{size:"small",type:"text",icon:l.jsx(fo,{}),"aria-label":d("components.mermaid.downloadChartAriaLabel"),disabled:x,loading:m,onClick:()=>{y()},style:{fontSize:11,padding:"2px 6px"}})})]}),l.jsx(rR,{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:e.replace(/<svg([^>]*)>/,'<svg$1 style="display: block; max-width: 100%; max-height: 100%;">')}})})]})})})]})};function fR(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const hR=(e,t)=>{const n=b.useMemo(()=>eC(e),[e]),r=b.useMemo(()=>fR(n),[n]),[s,o]=b.useState(()=>{const a=dl(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 b.useEffect(()=>{const a=dl(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]),b.useEffect(()=>{if(dl(r))return;let i=!1;return o(c=>({...c,isLoading:!0})),oC(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:pR}=dt,Dl=ft.memo(({chart:e,id:t,className:n,style:r,onFix:s})=>{const{token:o}=pR(),a=Vd(),[i,c]=b.useState(!1),[d,f]=b.useState(""),m=b.useRef(null),{renderState:g,chartKey:y}=hR(e,!0),{svg:x,height:S,svgWidth:_,error:E,isLoading:T}=g,C=(()=>{const I=a.defaultScale;return _>1200?I*.8:_>800?I*1:I*1.2})(),A=async()=>{if(!(!s||i)){c(!0),f("");try{await s(e,E)}catch(I){const L=I instanceof Error?I.message:String(I);f(L||"Failed to fix Mermaid diagram")}finally{c(!1)}}};return E?l.jsx(qM,{error:E,className:n,style:r,token:o,onFix:s?A:void 0,isFixing:i,fixError:d}):l.jsx(dR,{svg:x,height:S,isLoading:T,initialScale:C,chartKey:y,className:n,style:r,token:o,containerRef:m})});Dl.displayName="MermaidChart";const mR=Object.freeze(Object.defineProperty({__proto__:null,MermaidChart:Dl,default:Dl},Symbol.toStringTag,{value:"Module"})),li={'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%)"}};fn.registerLanguage("javascript",zg);fn.registerLanguage("js",zg);fn.registerLanguage("typescript",Bg);fn.registerLanguage("ts",Bg);fn.registerLanguage("python",Wg);fn.registerLanguage("py",Wg);fn.registerLanguage("json",hx);fn.registerLanguage("bash",Md);fn.registerLanguage("shell",Md);fn.registerLanguage("sh",Md);fn.registerLanguage("css",px);fn.registerLanguage("html",Ug);fn.registerLanguage("xml",Ug);fn.registerLanguage("sql",mx);fn.registerLanguage("yaml",qg);fn.registerLanguage("yml",qg);fn.registerLanguage("markdown",Hg);fn.registerLanguage("md",Hg);const gR=()=>li,yR=["javascript","js","typescript","ts","python","py","json","bash","shell","sh","css","html","xml","sql","yaml","yml","markdown","md"],vR=({language:e,codeString:t,token:n})=>{const{t:r}=Ge(),{message:s}=Dn.useApp(),[o,a]=b.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,m=async()=>{try{await Or(t),s.success(r("components.markdown.codeCopiedSuccess"))}catch(x){console.error("Copy failed:",x),s.error(r("components.markdown.copyFailed"))}},g=e.toLowerCase(),y=yR.includes(g);return l.jsxs(sn,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto"},onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:[l.jsx(fn,{style:gR(),language:y?g:"text",PreTag:"div",customStyle:{margin:`${i}px 0`,borderRadius:c,fontSize:d,maxWidth:"100%",paddingRight:"50px"},showLineNumbers:t.split(`
193
+ `).length>10,wrapLines:!0,wrapLongLines:!0,children:t}),o&&l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ir,{}),onClick:m,"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:x=>{const S=x.currentTarget;S.style.opacity="1"},onMouseLeave:x=>{const S=x.currentTarget;S.style.opacity="0.8"}})]})},bR=({codeString:e,token:t})=>{const{t:n}=Ge(),{message:r}=Dn.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(sn,{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(je,{type:"text",size:"small",icon:l.jsx(Ir,{}),"aria-label":n("components.markdown.copyCodeAriaLabel"),className:"fallback-copy-btn",onClick:async()=>{try{await Or(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}})]})},SR={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"},Wv=/^(\s*%%\{[\s\S]*?\}%%\s*)+/,xR=/^(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,wR=e=>e.replace(Wv,"").trimStart(),_R=(e,t)=>{const n=e.match(Wv);if(!n)return`${t}
194
+ ${e}`.trim();const r=n[0].trimEnd(),s=e.slice(n[0].length).trimStart();return s?`${r}
195
+ ${t}
196
+ ${s}`:`${r}
197
+ ${t}`},CR=(e,t)=>{const n=SR[e];if(!n)return null;const r=t.trim();if(!r)return"";if(e==="mermaid")return r;const s=wR(r);return xR.test(s)?r:_R(r,n)},Uv=(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=CR(o,t);if(a!==null){const i=a.trim();return i?s==="eager"?l.jsx(Dl,{chart:i,onFix:r}):l.jsx(UM,{chart:i,onFix:r}):(console.warn("Empty Mermaid chart content"),null)}return l.jsx(vR,{language:o,codeString:t,token:n})}catch(o){return console.warn("Syntax highlighting failed:",o),l.jsx(bR,{codeString:t,token:n})}},Np=(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)},qv=async e=>{const t=e.trim();if(!t)return;if(nf()){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)}Np(t,{allowLocationFallback:!1});return}Np(t)},{Text:zp}=ht,Ji=8,nu=4,Bp="4px 8px",kR="4px 8px",Hv=(e,t)=>({p:({children:n})=>l.jsx(zp,{style:{marginBottom:Ji,display:"block"},children:n}),ol:({children:n})=>l.jsx("ol",{style:{marginBottom:Ji,paddingLeft:20},children:n}),ul:({children:n})=>l.jsx("ul",{style:{marginBottom:Ji,paddingLeft:20},children:n}),li:({children:n})=>l.jsx("li",{style:{marginBottom:nu},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(zp,{code:!0,className:n,...o,children:r}):d.trim()?Uv(i,d,void 0,t==null?void 0:t.onFixMermaid,t==null?void 0:t.mermaidRenderMode):null},blockquote:({children:n})=>l.jsx(sn,{size:"small",styles:{body:{padding:kR}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${nu}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(),qv(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(sn,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${Ji}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:Bp,textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),td:({children:n})=>l.jsx("td",{style:{padding:Bp,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:nu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:n,checked:r,disabled:s})}),{Text:on}=ht,Wp=e=>{if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},TR=({content:e,toolName:t,status:n="success",timestamp:r,defaultCollapsed:s=!0,isLoading:o,errorMessage:a})=>{const{t:i}=Ge(),{token:c}=dt.useToken(),d=b.useMemo(()=>mo(e),[e]),f=b.useMemo(()=>typeof o=="boolean"?o:d.formattedText.trim().length===0,[d.formattedText,o]),m=b.useMemo(()=>gP(d.formattedText),[d.formattedText]),g=b.useMemo(()=>xo(e),[e]),y=b.useMemo(()=>fv(e),[e]),x=async()=>{try{const _=d.isJson?Ps(d.parsedJson):d.formattedText;await Or(_)}catch(_){console.error("[ToolResultCard] Failed to copy result:",_)}},S=b.useMemo(()=>{const _=e?e.slice(0,50).replace(/[^a-zA-Z0-9]/g,""):"empty";return`tool-result-${t}-${_}`},[t,e]);return l.jsx(go,{defaultActiveKey:s?[]:[S],style:{backgroundColor:c.colorBgContainer,borderColor:c.colorBorderSecondary,borderWidth:1,borderStyle:"solid",borderRadius:c.borderRadiusLG},items:[{key:S,label:l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:c.marginSM,width:"100%"},children:[l.jsx(Jg,{style:{color:c.colorPrimary,flexShrink:0}}),l.jsx(on,{strong:!0,style:{color:c.colorText,flexShrink:0},children:t}),l.jsx(on,{type:"secondary",ellipsis:!0,style:{flex:1,minWidth:0,fontSize:c.fontSizeSM},children:f?i("components.toolResult.waiting"):m}),l.jsx(Je,{color:mv(n),style:{flexShrink:0,margin:0},children:n})]}),children:l.jsxs(Ye,{direction:"vertical",style:{width:"100%"},size:c.marginSM,children:[r&&l.jsx(on,{type:"secondary",style:{fontSize:c.fontSizeSM},children:new Date(r).toLocaleString()}),a&&l.jsx(fr,{type:"error",message:i("components.toolResult.executionFailed"),description:a,showIcon:!0}),l.jsxs("div",{style:{position:"relative"},children:[l.jsx(wn,{title:i("components.toolResult.copyResult"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ir,{}),"aria-label":i("components.toolResult.copyResult"),onClick:_=>{_.stopPropagation(),x()},style:{position:"absolute",top:8,right:8,zIndex:1}})}),f?l.jsx(on,{type:"secondary",children:i("components.toolResult.waitingForResult")}):y?l.jsxs(Ye,{direction:"vertical",style:{width:"100%"},size:10,children:[l.jsxs(Ye,{wrap:!0,children:[l.jsx(Je,{color:y.action==="rebuild"?"gold":"blue",children:i(`components.toolResult.memory.action.${y.action}`)}),l.jsx(Je,{children:y.data.scope}),y.data.project_key?l.jsx(Je,{children:y.data.project_key}):null,l.jsx(Je,{color:"green",children:i("components.toolResult.memory.totalMemories",{count:y.data.total_memories})}),l.jsx(Je,{color:y.data.stale_candidate_count>0?"orange":"default",children:i("components.toolResult.memory.staleCandidates",{count:y.data.stale_candidate_count})})]}),l.jsxs("div",{children:[l.jsx(on,{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(y.data.by_type).map(([_,E])=>l.jsx(Je,{children:`${_}: ${E}`},`type-${_}`)),Object.entries(y.data.by_status).map(([_,E])=>l.jsx(Je,{color:"processing",children:`${_}: ${E}`},`status-${_}`))]})]}),l.jsx(Tl,{style:{margin:`${c.marginXS}px 0`}}),l.jsxs("div",{style:{display:"grid",gap:c.marginXS},children:[l.jsxs(on,{style:{fontSize:c.fontSizeSM},children:[l.jsx(on,{strong:!0,children:i("components.toolResult.memory.viewsLabel")})," ",y.data.view_files.length]}),l.jsxs(on,{style:{fontSize:c.fontSizeSM},children:[l.jsx(on,{strong:!0,children:i("components.toolResult.memory.indexesLabel")})," ",y.data.index_files.length]}),l.jsxs(on,{style:{fontSize:c.fontSizeSM},children:[l.jsx(on,{strong:!0,children:i("components.toolResult.memory.stateFilesLabel")})," ",y.data.state_files.length]}),y.data.last_reindex_at?l.jsxs(on,{style:{fontSize:c.fontSizeSM},children:[l.jsx(on,{strong:!0,children:i("components.toolResult.memory.lastReindexLabel")})," ",Wp(y.data.last_reindex_at)]}):null,y.data.last_dream_at?l.jsxs(on,{style:{fontSize:c.fontSizeSM},children:[l.jsx(on,{strong:!0,children:i("components.toolResult.memory.lastDreamLabel")})," ",Wp(y.data.last_dream_at)]}):null]}),y.data.view_files.length>0?l.jsxs("div",{children:[l.jsx(on,{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:y.data.view_files.map(_=>l.jsx(Je,{children:_},`view-${_}`))})]}):null,y.data.index_files.length>0?l.jsxs("div",{children:[l.jsx(on,{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:y.data.index_files.map(_=>l.jsx(Je,{children:_},`index-${_}`))})]}):null,y.data.state_files.length>0?l.jsxs("div",{children:[l.jsx(on,{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:y.data.state_files.map(_=>l.jsx(Je,{children:_},`state-${_}`))})]}):null,y.data.topic_paths.length>0?l.jsxs("div",{children:[l.jsx(on,{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:y.data.topic_paths.map(_=>l.jsx(Je,{children:_},`topic-${_}`))})]}):null,y.data.recent_ids.length>0?l.jsxs("div",{children:[l.jsx(on,{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:y.data.recent_ids.map(_=>l.jsx(Je,{color:"default",children:_},`recent-${_}`))})]}):null]}):g?l.jsx(ai,{payload:g,defaultViewMode:"sideBySide"}):d.isJson?l.jsx(Cl,{language:"json",style:li,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=b.memo(TR);Yv.displayName="ToolResultCard";function Xv(e,t){const n=So(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 PR=e=>Array.from(new Set(e.map(t=>nr(t)).filter(Boolean))).sort(),Kv=(e,t)=>{const n=nr(e),r=b.useMemo(()=>PR(t),[t]),s=b.useMemo(()=>Tr(o=>{const a={};return n&&r.forEach(i=>{const c=Zd(n,i);c&&(a[i]=o(tc(c)))}),a}),[n,r]);return LC(s,{store:ec})},Vv=(e,t,n)=>{var o;const r=nr(e);return(r?((o=t[r])==null?void 0:o.output)??"":"")||n||""},ER=(e,t)=>e==null?{isJson:!1,formattedText:""}:t==="json"?{isJson:!0,formattedText:typeof e=="string"?e:Ps(e,2)}:t==="text"?{isJson:!1,formattedText:typeof e=="string"?e:Ps(e,2)}:typeof e=="string"?mo(e):{isJson:!0,formattedText:Ps(e,2),parsedJson:e},Oa=({value:e,mode:t="auto",emptyDescription:n,className:r,height:s,maxHeight:o,compact:a=!1,scrollable:i=!0,backgroundColor:c})=>{const{token:d}=dt.useToken(),f=b.useMemo(()=>ER(e,t),[e,t]),m=f.formattedText??"";if(!m.trim())return n===void 0?null:l.jsx(Au,{description:n});const g=a?Math.max(d.fontSizeSM-1,11):d.fontSizeSM,y=["lotus-code-surface",r].filter(Boolean).join(" "),x={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:y,style:x,children:l.jsx(Cl,{language:"json",style:li,wrapLongLines:!0,customStyle:{margin:0,backgroundColor:"transparent",fontSize:g,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:m})}):l.jsx("div",{className:y,style:x,children:l.jsx("pre",{style:{margin:0,padding:a?d.paddingXS:d.paddingSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:g,whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:s?"100%":void 0,flex:s?1:void 0},children:m})})},{Text:Bn}=ht,MR=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,AR=({open:e,onClose:t,sessionId:n=null,call:r,metadata:s,initialTab:o="preview",result:a})=>{var te;const{t:i}=Ge(),{token:c}=dt.useToken(),d=Kv(n,[r.toolCallId]),f=Vv(r.toolCallId,d,r.streamingOutput),m=b.useMemo(()=>So(r.toolName),[r.toolName]),g=b.useMemo(()=>Xv(r.toolName,r.parameters),[r.toolName,r.parameters]),y=((te=a==null?void 0:a.result)==null?void 0:te.result)??"",x=b.useMemo(()=>y.trim()?xo(y):null,[y]),S=typeof(s==null?void 0:s.summary)=="string"&&s.summary.trim().length>0?s.summary.trim():null,_=b.useMemo(()=>Ps(r.parameters,2),[r.parameters]),E=async()=>{try{await Or(_)}catch(N){console.error("[ToolStepDetailDrawer] Failed to copy parameters:",N)}},T=b.useMemo(()=>f!=null&&f.trim()?{label:i("components.toolCall.liveOutput"),value:f,mode:"auto"}:!x&&y.trim()?{label:i("components.toolSteps.result"),value:y,mode:"auto"}:Object.keys(r.parameters).length>0?{label:i("components.toolSteps.parameters"),value:r.parameters,mode:"json"}:null,[r.parameters,x,f,y,i]),P=b.useMemo(()=>{const N=["path","file_path","command","pattern","query","limit"];return Object.entries(r.parameters).sort((W,z)=>{const pe=N.indexOf(W[0]),Z=N.indexOf(z[0]);return pe!==-1&&Z!==-1?pe-Z:pe!==-1?-1:Z!==-1?1:0}).slice(0,3)},[r.parameters]),C=!!(f!=null&&f.trim()),A=b.useMemo(()=>a?a.isError?l.jsx(Je,{color:"error",children:i("components.toolSteps.statusError")}):l.jsx(Je,{color:"success",children:i("components.toolSteps.statusFinish")}):C?l.jsx(Je,{color:"processing",children:i("components.toolSteps.statusProcess")}):l.jsx(Je,{color:"default",children:i("components.toolSteps.statusWait")}),[a,C,i]),I=(s==null?void 0:s.elapsed_ms)!=null?l.jsx(Je,{color:s.is_mutating?"orange":"green",children:MR(s.elapsed_ms)}):null,L=l.jsxs(Ye,{size:"small",children:[m?l.jsxs(l.Fragment,{children:[l.jsx(Je,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:8,fontWeight:700},children:"MCP"}),l.jsx(Bn,{strong:!0,children:m.toolName}),l.jsx(Bn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:l.jsx(Bn,{code:!0,style:{fontSize:c.fontSizeSM},children:m.serverId})})]}):l.jsx(Bn,{strong:!0,children:r.toolName}),A,I]}),$=x?o:o==="diff"?"preview":o,F=[{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(Bn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.intent")}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(Bn,{style:{fontSize:c.fontSizeSM},children:g})})]}),S?l.jsxs("div",{children:[l.jsx(Bn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.summary",{defaultValue:"Summary"})}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(Bn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:S})})]}):null,P.length>0&&l.jsxs("div",{children:[l.jsx(Bn,{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:P.map(([N,O])=>l.jsxs("li",{children:[l.jsx(Bn,{code:!0,style:{fontSize:c.fontSizeSM},children:N}),l.jsxs(Bn,{style:{fontSize:c.fontSizeSM},children:[": ",typeof O=="string"?O:JSON.stringify(O)]})]},N))})]})]}),l.jsx("div",{style:{marginTop:c.marginSM,display:"flex",flexDirection:"column",gap:c.marginXS,flex:1,minHeight:0},children:x?l.jsxs(l.Fragment,{children:[l.jsx(Bn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.fileChanges",{defaultValue:"File changes"})}),l.jsx(ai,{payload:x,defaultViewMode:"unified",maxHeight:340})]}):T?l.jsxs(l.Fragment,{children:[l.jsx(Bn,{strong:!0,style:{fontSize:c.fontSizeSM},children:T.label}),l.jsx(Oa,{value:T.value,mode:T.mode,height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})]}):l.jsx(Oa,{emptyDescription:i("components.toolSteps.noResult"),height:"100%",scrollable:!0})})]})},...x?[{key:"diff",label:i("components.toolSteps.diff",{defaultValue:"Diff"}),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsx(ai,{payload:x,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(wn,{title:i("components.toolCall.copyParameters"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ir,{}),"aria-label":i("components.toolCall.copyParameters"),onClick:E,style:{position:"absolute",top:0,right:0,zIndex:1}})}),l.jsx(Oa,{value:_,mode:"json",height:"100%",scrollable:!0})]})})},{key:"result",label:i("components.toolSteps.result"),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsx(Oa,{value:y,mode:"auto",height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})})}];return l.jsx(Gl,{placement:"right",width:960,open:e,onClose:t,title:L,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(Hx,{defaultActiveKey:$,items:F,style:{height:"100%"}},`${r.toolCallId}:${$}`)})})},{Text:Hr}=ht,RR=1760;function jR(e,t,n){return e?e.isError?{status:"error",icon:l.jsx(Iu,{})}:{status:"finish",icon:l.jsx(Qa,{})}:n==="error"?{status:"error",icon:l.jsx(Iu,{})}:n==="completed"?{status:"finish",icon:l.jsx(Qa,{})}:!!!(t!=null&&t.trim())&&n!=="running"?{status:"wait",icon:l.jsx(As,{})}:{status:"process",icon:l.jsx(co,{spin:!0})}}const Up=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,IR=({sessionId:e=null,toolCalls:t,metadata:n,tools:r,defaultExpanded:s=!1,hideHeader:o=!1})=>{const{t:a}=Ge(),{token:i}=dt.useToken(),[c,d]=b.useState(s),f=b.useMemo(()=>r&&r.length>0?r.map(W=>{const z=W.call.toolCalls[0];return{key:(z==null?void 0:z.toolCallId)||"unknown",toolName:(z==null?void 0:z.toolName)||"tool",parameters:(z==null?void 0:z.parameters)||{},streamingOutput:z==null?void 0:z.streamingOutput,info:{status:"wait",icon:l.jsx(As,{})},result:W.result,metadata:W.call.metadata??n}}):(t||[]).map(W=>({key:W.toolCallId,toolName:W.toolName,parameters:W.parameters,streamingOutput:W.streamingOutput,info:{status:"wait",icon:l.jsx(As,{})},result:void 0,metadata:n})),[r,t,n]),m=b.useMemo(()=>f.map(W=>W.key),[f]),g=Kv(e,m),y=b.useMemo(()=>f.map(W=>{const z=g[W.key],pe=Vv(W.key,g,W.streamingOutput);return{...W,streamingOutput:pe,info:jR(W.result,pe,z==null?void 0:z.status)}}),[f,g]),[x,S]=b.useState(!1),[_,E]=b.useState(null),[T,P]=b.useState("preview"),C=(W,z)=>{E(W),P(z??"preview"),S(!0)},A=()=>{S(!1)},I=b.useMemo(()=>{const W=y.findIndex(z=>z.info.status!=="finish");return W===-1?Math.max(y.length-1,0):W},[y]),L=y.some(W=>W.info.status==="error"),$=y.filter(W=>W.info.status==="finish").length,F=y.length,te=Up(n==null?void 0:n.elapsed_ms),N=b.useMemo(()=>{const W=[a("components.toolSteps.title"),`${$}/${F}`];return te&&W.push(te),W.join(" · ")},[a,$,F,te]),O=b.useMemo(()=>y.map(W=>{var Fe,j,se,ge,we,He,xt;const z=So(W.toolName),pe=Xv(W.toolName,W.parameters),Z=pe.length>60?pe.substring(0,60).trimEnd()+"…":pe,ce=((j=(Fe=W.result)==null?void 0:Fe.result)==null?void 0:j.result)??"",ve=ce?xo(ce):null,G=ce?af(ce):null,he=ve?dP(ve.diff.unified,{contextLines:2,maxLines:120,preserveLeadingMeta:!0}):null,_e=typeof((se=W.metadata)==null?void 0:se.summary)=="string"&&W.metadata.summary.trim().length>0?W.metadata.summary.trim():null,ie=ve?`${ve.operation}(${ve.file_path})`:null;let ue=null,me="text",ke=null;if(W.info.status==="process"&&((ge=W.streamingOutput)!=null&&ge.trim()))ue=W.streamingOutput.split(`
198
+ `).slice(-3).join(`
199
+ `),me=mo(W.streamingOutput).isJson?"auto":"text",ke="live";else if(!ve&&(W.info.status==="finish"||W.info.status==="error")&&((He=(we=W.result)==null?void 0:we.result)!=null&&He.result)){const ot=mo(W.result.result.result),et=ot.formattedText.trimEnd();et.length>0&&(ue=et.split(`
200
+ `).slice(0,3).join(`
201
+ `),me=ot.isJson?"json":"text",ke="result")}const De=W.info.status==="process"?a("components.toolSteps.running"):((xt=W.metadata)==null?void 0:xt.elapsed_ms)!=null?Up(W.metadata.elapsed_ms):void 0;return{key:W.key,title:l.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:i.marginXS},children:z?l.jsxs(l.Fragment,{children:[l.jsx(Je,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:6,fontWeight:700,fontSize:i.fontSizeSM-1,lineHeight:"18px"},children:"MCP"}),l.jsx(Hr,{strong:!0,style:{fontSize:i.fontSizeSM},children:z.toolName})]}):l.jsx(Hr,{strong:!0,style:{fontSize:i.fontSizeSM},children:W.toolName})}),subTitle:De?l.jsx(Hr,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:De}):void 0,description:l.jsxs("div",{style:{minWidth:0},children:[l.jsx(Hr,{ellipsis:!0,style:{fontSize:i.fontSizeSM,display:"block",maxWidth:"100%"},children:Z}),l.jsx("div",{style:{marginTop:i.marginXXS,display:"flex",gap:i.marginXS,alignItems:"center"},children:l.jsx(je,{type:"link",size:"small",icon:l.jsx(Dd,{}),style:{padding:0,height:"auto",fontSize:i.fontSizeSM},"data-testid":`tool-step-details-${W.key}`,onClick:()=>C(W,ve?"diff":"preview"),children:a("components.toolSteps.details")})}),_e&&!ve&&l.jsx(Hr,{type:"secondary",style:{display:"block",marginTop:i.marginXS,fontSize:i.fontSizeSM-1},children:_e}),ve&&G&&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-${W.key}`,children:l.jsxs("div",{style:{display:"grid",gap:i.marginXXS??2},children:[l.jsx(Hr,{strong:!0,style:{fontSize:i.fontSizeSM},ellipsis:{tooltip:ie},children:ie}),l.jsx(Hr,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:a("components.toolSteps.fileChangeStats",{added:G.added,removed:G.removed,defaultValue:`Added ${G.added} lines, removed ${G.removed} lines`})}),l.jsx(ai,{payload:ve,compact:!0,showHeader:!1,showViewToggle:!1,defaultViewMode:"unified",maxHeight:RR,unifiedLinesOverride:he??void 0}),l.jsx(je,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>C(W,"diff"),children:a("components.toolSteps.viewFullDiff",{defaultValue:"View full diff"})})]})}),ue&&l.jsxs("div",{style:{marginTop:i.marginXS},children:[l.jsx(Oa,{value:ue,mode:me,className:"lotus-tool-step-preview",compact:!0,maxHeight:72,scrollable:!1,backgroundColor:"transparent"}),l.jsx(je,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>C(W,ke==="result"?"result":"preview"),children:ke==="result"?a("components.toolSteps.viewFullResult",{defaultValue:"View full result"}):a("components.toolSteps.viewFullOutput")})]})]}),status:W.info.status,icon:W.info.icon}}),[y,i,a]),Q=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:Q,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(W=>!W),"data-testid":"tool-steps-header",children:[l.jsx("span",{style:{flexShrink:0},children:c?l.jsx(Ms,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}}):l.jsx(Zr,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}})}),l.jsxs(Hr,{strong:!0,style:{fontSize:i.fontSizeSM},children:["🛠 ",N]})]}),(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(ty,{direction:"vertical",size:"small",current:I,status:L?"error":"process",items:O})}),_&&l.jsx(AR,{open:x,onClose:A,sessionId:e,call:{toolCallId:_.key,toolName:_.toolName,parameters:_.parameters,streamingOutput:_.streamingOutput},metadata:_.metadata,initialTab:T,result:_.result})]})},ff=b.memo(IR);ff.displayName="ToolStepsCard";const{Text:ru}=ht,OR=({content:e,workflowName:t,parameters:n,status:r="success",timestamp:s,onRetry:o,isLoading:a,errorMessage:i})=>{const{t:c}=Ge(),{token:d}=dt.useToken(),[f,m]=b.useState(!1),g=b.useMemo(()=>mo(e),[e]),y=b.useMemo(()=>typeof a=="boolean"?a:g.formattedText.trim().length===0,[g.formattedText,a]),x=b.useMemo(()=>pP(g.formattedText),[g.formattedText]),S=g.isJson||x,_=!S||f,E=b.useMemo(()=>mP(g.formattedText),[g.formattedText]),T=b.useMemo(()=>{if(n==null)return null;if(typeof n=="string")return mo(n);try{return{isJson:!0,formattedText:JSON.stringify(n,null,2),parsedJson:n}}catch(A){return console.error("[WorkflowResultCard] Failed to stringify parameters:",A),{isJson:!1,formattedText:String(n)}}},[n]),P=async()=>{try{const A=g.isJson?Ps(g.parsedJson):g.formattedText;await Or(A)}catch(A){console.error("[WorkflowResultCard] Failed to copy content:",A)}},C=async()=>{if(T)try{const A=T.isJson?Ps(T.parsedJson):T.formattedText;await Or(A)}catch(A){console.error("[WorkflowResultCard] Failed to copy parameters:",A)}};return l.jsx(sn,{size:"small",variant:"outlined",style:{borderRadius:d.borderRadiusLG,borderColor:d.colorBorderSecondary,backgroundColor:d.colorBgContainer},styles:{body:{padding:d.paddingMD}},children:l.jsxs(Ye,{direction:"vertical",style:{width:"100%"},size:d.marginSM,children:[l.jsxs(Pe,{align:"center",justify:"space-between",children:[l.jsxs(Ye,{size:d.marginXS,align:"center",children:[l.jsx(Yx,{style:{color:d.colorWarning}}),l.jsx(ru,{strong:!0,children:c("components.workflowResult.userWorkflow")}),l.jsx(Je,{color:d.colorWarning,children:t}),l.jsx(Je,{color:mv(r),children:r})]}),l.jsxs(Ye,{size:"small",children:[l.jsx(wn,{title:c(f?"components.workflowResult.collapseResult":"components.workflowResult.expandResult"),children:S&&l.jsx(je,{type:"text",size:"small",icon:f?l.jsx(Xx,{}):l.jsx(Kx,{}),onClick:()=>m(A=>!A)})}),l.jsx(wn,{title:c("components.workflowResult.copyResult"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ir,{}),onClick:P,"aria-label":c("components.workflowResult.copyContent")})}),o&&l.jsx(wn,{title:c("components.workflowResult.retryWorkflow"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx($d,{}),onClick:o,"aria-label":c("components.workflowResult.retryWorkflow")})})]})]}),s&&l.jsx(ru,{type:"secondary",style:{fontSize:d.fontSizeSM},children:new Date(s).toLocaleString()}),l.jsx(Tl,{style:{margin:`${d.marginXS}px 0`}}),i&&l.jsx(fr,{type:"error",message:c("components.workflowResult.executionFailed"),description:i,showIcon:!0,style:{marginBottom:d.marginXS}}),l.jsx(Pe,{vertical:!0,style:{width:"100%"},children:y?l.jsx(ho,{tip:c("components.workflowResult.waitingForResult")}):g.isJson?l.jsx(Cl,{language:"json",style:li,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"auto":"hidden"},children:g.formattedText}):l.jsxs("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"visible":"hidden",marginBottom:0},children:[_?g.formattedText:E.preview,!_&&E.isTruncated&&`
202
+ …`]})}),T&&l.jsxs(Pe,{vertical:!0,style:{width:"100%"},children:[l.jsx(Tl,{style:{margin:`${d.marginXS}px 0`},children:l.jsxs(Ye,{size:"small",children:[l.jsx(ru,{strong:!0,children:c("common.parameters")}),l.jsx(wn,{title:c("components.workflowResult.copyParameters"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ir,{}),onClick:C,"aria-label":c("components.workflowResult.copyParameters")})})]})}),T.isJson?l.jsx(Cl,{language:"json",style:li,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:220,overflow:"auto"},children:T.formattedText}):l.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,marginBottom:0},children:T.formattedText})]})]})})},Gv=b.memo(OR);Gv.displayName="WorkflowResultCard";const $R=e=>Array.isArray(e)?e.map(t=>String(t??"")):[],LR=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s})=>JSON.stringify({sessionId:e??null,question:t??"",options:$R(n),allowCustom:r??!0,toolCallId:s??null}),{Text:su}=ht,DR=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s,conclusionMarkdown:o,markdownComponents:a,markdownPlugins:i,rehypePlugins:c})=>{const{t:d}=Ge(),[f,m]=b.useState(null),g=b.useMemo(()=>LR({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s}),[e,t,n,r,s]),y=f===g;return b.useEffect(()=>{if(typeof window>"u")return;const x=S=>{var T;const E=((T=S.detail)==null?void 0:T.sessionId)??null;!e||E!==e||m(g)};return window.addEventListener(ed,x),()=>{window.removeEventListener(ed,x)}},[e,g]),l.jsxs(Ye,{direction:"vertical",size:"middle",style:{width:"100%"},children:[o?l.jsx(Cr,{remarkPlugins:i,rehypePlugins:c,components:a,children:o}):null,l.jsxs("div",{children:[l.jsx(su,{strong:!0,children:d("components.questionDialog.questionLabel","Question")}),l.jsx("div",{style:{marginTop:8},children:l.jsx(Cr,{remarkPlugins:i,rehypePlugins:c,components:a,children:t})})]}),y?l.jsx(su,{type:"secondary",children:d("components.questionDialog.responseSubmittedContinue","Response submitted. Continuing...")}):l.jsx(su,{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:lr}=ht,FR=e=>{var o;if(!e)return{cleanText:e,hints:[]};const t=e.split(`
203
+ `),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]??"",m=So(f);n.push({type:"mcp",label:f,serverId:m==null?void 0:m.serverId,toolName:m==null?void 0:m.toolName});continue}const d=i.match(/^\[User explicitly selected skill:\s*(.+?)\s*\]$/);if(d){const f=d[1]??"",m=f.match(/\(ID:\s*([^)]+)\)\s*$/i),g=(o=m==null?void 0:m[1])==null?void 0:o.trim(),y=m?f.replace(/\(ID:\s*([^)]+)\)\s*$/i,"").trim():f;n.push({type:"skill",label:y||f,skillId:g});continue}r.push(a)}return{cleanText:r.join(`
204
+ `).trimStart(),hints:n}},NR=({sessionId:e,message:t,messageText:n,isUserToolCall:r,formatUserToolCall:s,markdownComponents:o,markdownPlugins:a,rehypePlugins:i})=>{var x;const{t:c}=Ge(),d=S=>(S??"").trim().toLowerCase()==="conclusion";if(_v(t)){const S=t.result.result??"",_=t.isError?S||c("components.toolResult.executionFailed"):void 0,E=!_&&S.trim().length===0;if(t.result.display_preference==="Hidden")return null;const T=(t.toolName??"").trim().toLowerCase(),P=T==="conclusion",C=cP(S),A=(T==="conclusion_with_options"||T==="exitplanmode"||T==="request_permissions")&&!t.isError&&C,I=T==="conclusion"?dv(S):null;return A&&C?l.jsx(DR,{sessionId:e,question:C.question,options:C.options,allowCustom:C.allow_custom,toolCallId:t.toolCallId,conclusionMarkdown:uP(C.conclusion),markdownComponents:o,markdownPlugins:a,rehypePlugins:i}):I?l.jsx(Ye,{direction:"vertical",style:{width:"100%"},size:"small",children:l.jsx(Cr,{remarkPlugins:a,rehypePlugins:i,components:o,children:I})}):l.jsx(Yv,{content:S,toolName:t.toolName,status:t.isError?"error":E?"warning":"success",timestamp:t.createdAt,defaultCollapsed:!P,isLoading:E,errorMessage:_})}if(PM(t)){const S=t.content??"",_=t.status==="error"?S||c("components.workflowResult.executionFailed"):void 0,E=!_&&S.trim().length===0;return l.jsx(Gv,{content:S,workflowName:t.workflowName,parameters:t.parameters,status:E?"warning":t.status??"success",timestamp:t.createdAt,isLoading:E,errorMessage:_})}if(TM(t)){const S=t.toolCalls.filter(_=>!d(_.toolName));return S.length===0?null:l.jsx(ff,{sessionId:e,toolCalls:S,metadata:t.metadata,defaultExpanded:!1})}if(t.isAuthError)return l.jsxs(Ye,{direction:"vertical",style:{width:"100%"},size:"middle",children:[l.jsx(fr,{message:c("chat.messageCard.authRequired"),description:l.jsx(Cr,{remarkPlugins:a,rehypePlugins:i,components:o,children:n}),type:"error",showIcon:!0}),l.jsx(je,{type:"primary",icon:l.jsx(Kl,{}),onClick:()=>{window.location.hash="/settings"},children:c("chat.messageCard.goToSettings")})]});const{cleanText:f,hints:m}=t.role==="user"?FR(n):{cleanText:n,hints:[]},g=t.role==="assistant"&&"type"in t&&t.type==="text"&&"metadata"in t&&typeof((x=t.metadata)==null?void 0:x.reasoning)=="string"?t.metadata.reasoning:"",y=g.trim().length>0;return t.role==="assistant"&&!n&&!y?l.jsx(lr,{italic:!0,children:c("chat.messageCard.assistantThinking")}):l.jsxs(Ye,{direction:"vertical",style:{width:"100%"},size:"small",children:[y?l.jsx(go,{size:"small",defaultActiveKey:["reasoning"],items:[{key:"reasoning",label:l.jsx(lr,{strong:!0,children:c("chat.messageCard.reasoning")}),children:l.jsx(Cr,{remarkPlugins:a,rehypePlugins:i,components:o,children:g})}]}):null,m.map((S,_)=>S.type==="mcp"?l.jsx(fr,{type:"info",showIcon:!1,message:l.jsxs(Ye,{wrap:!0,size:"small",children:[l.jsx(Je,{color:"purple",children:"MCP"}),l.jsx(lr,{strong:!0,children:c("chat.messageCard.selectedTool")}),S.serverId&&l.jsx(lr,{type:"secondary",children:l.jsx(lr,{code:!0,children:S.serverId})}),S.toolName&&l.jsx(lr,{type:"secondary",children:l.jsx(lr,{code:!0,children:S.toolName})})]}),style:{marginBottom:0}},`hint-mcp-${_}`):l.jsx(fr,{type:"success",showIcon:!1,message:l.jsxs(Ye,{wrap:!0,size:"small",children:[l.jsx(Je,{color:"success",children:"Skill"}),l.jsx(lr,{strong:!0,children:c("chat.messageCard.selected")}),S.label&&l.jsx(lr,{children:S.label}),S.skillId&&l.jsx(lr,{type:"secondary",children:l.jsx(lr,{code:!0,children:S.skillId})})]}),style:{marginBottom:0}},`hint-skill-${_}`)),f?l.jsx(Cr,{remarkPlugins:a,rehypePlugins:i,components:o,children:r?s(f):f}):null]})},zR=b.memo(NR),{Text:ou}=ht,BR=({role:e,formattedTimestamp:t,token:n})=>{const{t:r}=Ge(),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(Pe,{align:"center",justify:"space-between",gap:n.marginXS,style:{marginBottom:n.marginXS},children:[l.jsxs(Pe,{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(Pe,{vertical:!0,gap:0,children:[l.jsx(ou,{strong:!0,style:{fontSize:13,color:s?"var(--lotus-primary)":n.colorText,letterSpacing:"0.2px",lineHeight:1.1},children:i}),l.jsx(ou,{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(ou,{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})]})},hf=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},WR=e=>e==="text"||e==="plan"||e==="question"||e==="tool_call"||e==="tool_result",UR=(e,t)=>{if(t)return t;if("message_type"in e&&e.message_type){const n=e.message_type;if(WR(n))return n}if(e.role==="assistant"&&e.type==="text"){const n=typeof e.content=="string"?e.content:"";try{const r=hf(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"},qR=(e,t)=>{if(t!=="plan"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=hf(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},HR=(e,t)=>{if(t!=="question"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=hf(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},Jv=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"?dv(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""},YR=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}`},qp=e=>e.map(t=>({name:t.name,extensions:[...t.extensions]})),Hp=e=>e.trim().slice(0,64).replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-")||"message",XR={},KR='[data-mermaid-loading="true"]';class Qv{static async exportMessageText(t){const{format:n,content:r,sessionId:s=null,messageId:o=null,filenamePrefix:a}=t,i=a||["chat-message",s?Hp(s.slice(0,8)):null,o?Hp(o.slice(0,8)):null].filter(Boolean).join("-"),c=n==="markdown"?wr.generateTimestampedFilename(i,"md"):wr.generateTimestampedFilename(i,"pdf");if(n==="markdown"){const d=await wr.saveTextFile(r,qp(wr.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 wr.saveBinaryFile(d,qp(wr.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:Pt.t("chat.messageActions.exportFailed")}}}static async generatePdfFromText(t){if(typeof document>"u")throw new Error(Pt.t("chat.messageActions.pdfUnavailable"));const n=(await en(async()=>{const{default:y}=await import("./vendor-pdf-DHC4XUDH.js").then(x=>x.h);return{default:y}},__vite__mapDeps([15,4,3,2]),import.meta.url)).default,{jsPDF:r}=await en(async()=>{const{jsPDF:y}=await import("./vendor-pdf-DHC4XUDH.js").then(x=>x.j);return{jsPDF:y}},__vite__mapDeps([15,4,3,2]),import.meta.url),{createRoot:s}=await en(async()=>{const{createRoot:y}=await import("./main-CgrLoRFE.js").then(x=>x.c);return{createRoot:y}},__vite__mapDeps([5,4,3,2,1,6]),import.meta.url),{flushSync:o}=await en(async()=>{const{flushSync:y}=await import("./vendor-antd-CKNrd1kL.js").then(x=>x.R);return{flushSync:y}},__vite__mapDeps([3,2]),import.meta.url),a=Hv(XR,{mermaidRenderMode:"eager"}),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=Pt.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=`
205
+ .md-export { color: #111; }
206
+ .md-export h1 { font-size: 24px; margin: 0 0 16px; }
207
+ .md-export h2 { font-size: 18px; margin: 18px 0 12px; }
208
+ .md-export h3 { font-size: 16px; margin: 14px 0 10px; }
209
+ .md-export [data-mermaid-controls="true"] { display: none !important; }
210
+ `,d.appendChild(f);const m=document.createElement("div");m.className="md-export",d.appendChild(m),document.body.appendChild(d),document.body.appendChild(i);const g=s(m);o(()=>{g.render(ft.createElement(Cr,{remarkPlugins:[Rd,jd],rehypePlugins:[Ad],components:a},t||""))});try{await this.waitForExportRenderReady(d);const y=await this.renderCanvasWithFallback(n,d),x=new r({unit:"pt",format:"a4",orientation:"portrait"}),S=x.internal.pageSize.getWidth(),_=x.internal.pageSize.getHeight(),E=24,T=S-E*2,P=_-E*2,C=y.width/T,A=Math.max(1,Math.floor(P*C));let I=0,L=0;for(;I<y.height;){const F=this.computeSmartSliceHeight(y,I,A),te=Math.max(1,Math.min(F,y.height-I)),N=document.createElement("canvas");N.width=y.width,N.height=te;const O=N.getContext("2d");if(!O)throw new Error("PDF render failed (no canvas context)");O.fillStyle="#ffffff",O.fillRect(0,0,N.width,N.height),O.drawImage(y,0,I,y.width,te,0,0,y.width,te);const Q=N.toDataURL("image/jpeg",.92),W=te/C;L>0&&x.addPage(),x.addImage(Q,"JPEG",E,E,T,W),I+=te,L+=1}const $=x.output("arraybuffer");return new Uint8Array($)}finally{g.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(KR)){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 computeSmartSliceHeight(t,n,r){const s=t.height-n;if(s<=r)return s;const o=n+r,a=Math.max(1,Math.floor(r*.72)),i=Math.max(8,Math.floor(r*.12)),c=Math.max(n+a,o-i),d=Math.min(t.height-1,o+i),f=this.findWhitespaceBreakY(t,o,c,d);return f===null||f<=n?r:f-n}static findWhitespaceBreakY(t,n,r,s){if(r>s||t.width<=0)return null;try{const o=t.getContext("2d",{willReadFrequently:!0});if(!o||typeof o.getImageData!="function")return null;const a=s-r+1,i=o.getImageData(0,r,t.width,a).data,c=t.width*4,d=Math.max(1,Math.floor(t.width/320)),f=245,m=16,g=.03;let y=null,x=Number.POSITIVE_INFINITY,S=Number.POSITIVE_INFINITY;for(let _=0;_<a;_+=1){let E=0,T=0;const P=_*c;for(let $=0;$<t.width;$+=d){const F=P+$*4,te=i[F+3];if(T+=1,te<=m)continue;const N=i[F],O=i[F+1],Q=i[F+2];(N<f||O<f||Q<f)&&(E+=1)}if(T===0)continue;const C=E/T,A=r+_,I=Math.abs(A-n);(C<x||C===x&&I<S)&&(x=C,S=I,y=A)}return y===null||x>g?null:y}catch{return null}}}const VR=({messageText:e,messageId:t,currentSessionId:n,onDelete:r,onRestoreChat:s,onRestoreFilesAndChat:o,cardRef:a})=>{const{message:i}=Dn.useApp(),{t:c}=Ge(),[d,f]=b.useState(""),m=b.useCallback(async E=>{try{await Or(E)}catch(T){console.error("Failed to copy text:",T)}},[]),g=b.useCallback(E=>`> ${E.replace(/\n/g,`
211
+ > `)}`,[]),y=b.useCallback(()=>{if(!n)return;const E=g(d||e),T=new CustomEvent("reference-text",{detail:{text:E,sessionId:n}});window.dispatchEvent(T)},[g,n,e,d]),x=b.useCallback(async E=>{var C;const T=d||e;if(!T){i.warning(c("chat.messageActions.nothingToExport"));return}const P=await Qv.exportMessageText({format:E,content:T,sessionId:n??null,messageId:t??null});if(P.success)i.success(c("chat.messageActions.savedFile",{filename:P.filename}));else{if((C=P.error)!=null&&C.toLowerCase().includes("cancel"))return;i.error(P.error||c("chat.messageActions.exportFailed"))}},[i,n,t,e,d,c]),S=b.useCallback(E=>{E.preventDefault(),E.stopPropagation();const T=window.getSelection(),P=T?T.toString():"";P&&a.current&&T&&a.current.contains(T.anchorNode)?f(P):f("")},[a]);return{contextMenuItems:b.useMemo(()=>{const E=[...s&&o&&n&&t?[{key:"restore-chat",label:c("chat.messageActions.restoreChat"),icon:l.jsx(Vx,{}),onClick:()=>{s()}},{key:"restore-chat-files",label:c("chat.messageActions.restoreFilesAndChat"),icon:l.jsx(Gx,{}),onClick:()=>{o()}},{type:"divider"}]:[],{key:"copy",label:c("chat.messageActions.copy"),icon:l.jsx(Ir,{}),onClick:()=>{m(d||e)}},{key:"reference",label:c("chat.actions.referenceMessage"),icon:l.jsx(ey,{}),onClick:y},{type:"divider"},{key:"export-md",label:c("chat.messageActions.exportMarkdown"),icon:l.jsx(fo,{}),onClick:()=>x("markdown")},{key:"export-pdf",label:c("chat.messageActions.exportPdf"),icon:l.jsx(fo,{}),onClick:()=>x("pdf")}];return r&&t&&E.push({key:"delete",label:c("chat.messageActions.deleteMessage"),icon:l.jsx(Xl,{}),onClick:()=>r(t),danger:!0}),E},[m,x,t,e,r,s,o,y,d,n,c]),handleMouseUp:S,copyToClipboard:m,referenceMessage:y}},GR=({currentSessionId:e,updateSession:t,sendMessage:n})=>{const r=b.useCallback(async()=>{if(!e)return;const i=ne.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=b.useCallback(async a=>{if(a.trim())try{await n(a.trim())}catch(i){console.error("Failed to send plan refinement:",i)}},[n]),o=b.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 Qe(e,t,n,r,s){if(typeof t=="function"?e!==t||!0:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,n),n}function ae(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 Zv=function(){const{crypto:e}=globalThis;if(e!=null&&e.randomUUID)return Zv=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 cd(e){return typeof e=="object"&&e!==null&&("name"in e&&e.name==="AbortError"||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}const ud=e=>{if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){try{if(Object.prototype.toString.call(e)==="[object Error]"){const t=new Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return new Error(JSON.stringify(e))}catch{}}return new Error(e)};class Ze extends Error{}class _n extends Ze{constructor(t,n,r,s){super(`${_n.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 lc({message:r,cause:ud(n)});const o=n==null?void 0:n.error;return t===400?new eb(t,o,r,s):t===401?new tb(t,o,r,s):t===403?new nb(t,o,r,s):t===404?new rb(t,o,r,s):t===409?new sb(t,o,r,s):t===422?new ob(t,o,r,s):t===429?new ab(t,o,r,s):t>=500?new ib(t,o,r,s):new _n(t,o,r,s)}}class er extends _n{constructor({message:t}={}){super(void 0,void 0,t||"Request was aborted.",void 0)}}class lc extends _n{constructor({message:t,cause:n}){super(void 0,void 0,t||"Connection error.",void 0),n&&(this.cause=n)}}class pf extends lc{constructor({message:t}={}){super({message:t??"Request timed out."})}}class eb extends _n{}class tb extends _n{}class nb extends _n{}class rb extends _n{}class sb extends _n{}class ob extends _n{}class ab extends _n{}class ib extends _n{}class lb extends Ze{constructor(){super("Could not parse response content as the length limit was reached")}}class cb extends Ze{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class $a extends Error{constructor(t){super(t)}}const JR=/^[a-z][a-z0-9+.-]*:/i,QR=e=>JR.test(e);let Ln=e=>(Ln=Array.isArray,Ln(e)),Yp=Ln;function ZR(e){return typeof e!="object"?{}:e??{}}function ej(e){if(!e)return!0;for(const t in e)return!1;return!0}function tj(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function au(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}const nj=(e,t)=>{if(typeof t!="number"||!Number.isInteger(t))throw new Ze(`${e} must be an integer`);if(t<0)throw new Ze(`${e} must be a positive integer`);return t},rj=e=>{try{return JSON.parse(e)}catch{return}},mi=e=>new Promise(t=>setTimeout(t,e)),Qs="5.10.2",sj=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function oj(){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 aj=()=>{var n;const e=oj();if(e==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Qs,"X-Stainless-OS":Kp(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":Qs,"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":Qs,"X-Stainless-OS":Kp(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=ij();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Qs,"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":Qs,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function ij(){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",Kp=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 Vp;const lj=()=>Vp??(Vp=aj());function cj(){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 ub(...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 db(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return ub({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 fb(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 uj(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 dj=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)}),hb="RFC3986",pb=e=>String(e),Gp={RFC1738:e=>String(e).replace(/%20/g,"+"),RFC3986:pb},fj="RFC1738";let dd=(e,t)=>(dd=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),dd(e,t));const vr=(()=>{const e=[];for(let t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e})(),iu=1024,hj=(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+=iu){const c=o.length>=iu?o.slice(i,i+iu):o,d=[];for(let f=0;f<c.length;++f){let m=c.charCodeAt(f);if(m===45||m===46||m===95||m===126||m>=48&&m<=57||m>=65&&m<=90||m>=97&&m<=122||s===fj&&(m===40||m===41)){d[d.length]=c.charAt(f);continue}if(m<128){d[d.length]=vr[m];continue}if(m<2048){d[d.length]=vr[192|m>>6]+vr[128|m&63];continue}if(m<55296||m>=57344){d[d.length]=vr[224|m>>12]+vr[128|m>>6&63]+vr[128|m&63];continue}f+=1,m=65536+((m&1023)<<10|c.charCodeAt(f)&1023),d[d.length]=vr[240|m>>18]+vr[128|m>>12&63]+vr[128|m>>6&63]+vr[128|m&63]}a+=d.join("")}return a};function pj(e){return!e||typeof e!="object"?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function Jp(e,t){if(Ln(e)){const n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}const mb={brackets(e){return String(e)+"[]"},comma:"comma",indices(e,t){return String(e)+"["+t+"]"},repeat(e){return String(e)}},gb=function(e,t){Array.prototype.push.apply(e,Ln(t)?t:[t])};let Qp;const dn={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:hj,encodeValuesOnly:!1,format:hb,formatter:pb,indices:!1,serializeDate(e){return(Qp??(Qp=Function.prototype.call.bind(Date.prototype.toISOString)))(e)},skipNulls:!1,strictNullHandling:!1};function mj(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"}const lu={};function yb(e,t,n,r,s,o,a,i,c,d,f,m,g,y,x,S,_,E){let T=e,P=E,C=0,A=!1;for(;(P=P.get(lu))!==void 0&&!A;){const te=P.get(e);if(C+=1,typeof te<"u"){if(te===C)throw new RangeError("Cyclic object value");A=!0}typeof P.get(lu)>"u"&&(C=0)}if(typeof d=="function"?T=d(t,T):T instanceof Date?T=g==null?void 0:g(T):n==="comma"&&Ln(T)&&(T=Jp(T,function(te){return te instanceof Date?g==null?void 0:g(te):te})),T===null){if(o)return c&&!S?c(t,dn.encoder,_,"key",y):t;T=""}if(mj(T)||pj(T)){if(c){const te=S?t:c(t,dn.encoder,_,"key",y);return[(x==null?void 0:x(te))+"="+(x==null?void 0:x(c(T,dn.encoder,_,"value",y)))]}return[(x==null?void 0:x(t))+"="+(x==null?void 0:x(String(T)))]}const I=[];if(typeof T>"u")return I;let L;if(n==="comma"&&Ln(T))S&&c&&(T=Jp(T,c)),L=[{value:T.length>0?T.join(",")||null:void 0}];else if(Ln(d))L=d;else{const te=Object.keys(T);L=f?te.sort(f):te}const $=i?String(t).replace(/\./g,"%2E"):String(t),F=r&&Ln(T)&&T.length===1?$+"[]":$;if(s&&Ln(T)&&T.length===0)return F+"[]";for(let te=0;te<L.length;++te){const N=L[te],O=typeof N=="object"&&typeof N.value<"u"?N.value:T[N];if(a&&O===null)continue;const Q=m&&i?N.replace(/\./g,"%2E"):N,W=Ln(T)?typeof n=="function"?n(F,Q):F:F+(m?"."+Q:"["+Q+"]");E.set(e,C);const z=new WeakMap;z.set(lu,E),gb(I,yb(O,W,n,r,s,o,a,i,n==="comma"&&S&&Ln(T)?null:c,d,f,m,g,y,x,S,_,z))}return I}function gj(e=dn){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||dn.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=hb;if(typeof e.format<"u"){if(!dd(Gp,e.format))throw new TypeError("Unknown format option provided.");n=e.format}const r=Gp[n];let s=dn.filter;(typeof e.filter=="function"||Ln(e.filter))&&(s=e.filter);let o;if(e.arrayFormat&&e.arrayFormat in mb?o=e.arrayFormat:"indices"in e?o=e.indices?"indices":"repeat":o=dn.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:dn.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:dn.addQueryPrefix,allowDots:a,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:dn.allowEmptyArrays,arrayFormat:o,charset:t,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:dn.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?dn.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:dn.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:dn.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:dn.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:dn.encodeValuesOnly,filter:s,format:n,formatter:r,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:dn.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:dn.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:dn.strictNullHandling}}function yj(e,t={}){let n=e;const r=gj(t);let s,o;typeof r.filter=="function"?(o=r.filter,n=o("",n)):Ln(r.filter)&&(o=r.filter,s=o);const a=[];if(typeof n!="object"||n===null)return"";const i=mb[r.arrayFormat],c=i==="comma"&&r.commaRoundTrip;s||(s=Object.keys(n)),r.sort&&s.sort(r.sort);const d=new WeakMap;for(let g=0;g<s.length;++g){const y=s[g];r.skipNulls&&n[y]===null||gb(a,yb(n[y],y,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 m=r.addQueryPrefix===!0?"?":"";return r.charsetSentinel&&(r.charset==="iso-8859-1"?m+="utf8=%26%2310003%3B&":m+="utf8=%E2%9C%93&"),f.length>0?m+f:""}function vj(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 Zp;function mf(e){let t;return(Zp??(t=new globalThis.TextEncoder,Zp=t.encode.bind(t)))(e)}let em;function tm(e){let t;return(em??(t=new globalThis.TextDecoder,em=t.decode.bind(t)))(e)}var Wn,Un;class cc{constructor(){Wn.set(this,void 0),Un.set(this,void 0),Qe(this,Wn,new Uint8Array),Qe(this,Un,null)}decode(t){if(t==null)return[];const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?mf(t):t;Qe(this,Wn,vj([ae(this,Wn,"f"),n]));const r=[];let s;for(;(s=bj(ae(this,Wn,"f"),ae(this,Un,"f")))!=null;){if(s.carriage&&ae(this,Un,"f")==null){Qe(this,Un,s.index);continue}if(ae(this,Un,"f")!=null&&(s.index!==ae(this,Un,"f")+1||s.carriage)){r.push(tm(ae(this,Wn,"f").subarray(0,ae(this,Un,"f")-1))),Qe(this,Wn,ae(this,Wn,"f").subarray(ae(this,Un,"f"))),Qe(this,Un,null);continue}const o=ae(this,Un,"f")!==null?s.preceding-1:s.preceding,a=tm(ae(this,Wn,"f").subarray(0,o));r.push(a),Qe(this,Wn,ae(this,Wn,"f").subarray(s.index)),Qe(this,Un,null)}return r}flush(){return ae(this,Wn,"f").length?this.decode(`
212
+ `):[]}}Wn=new WeakMap,Un=new WeakMap;cc.NEWLINE_CHARS=new Set([`
213
+ `,"\r"]);cc.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function bj(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 Sj(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 Fl={off:0,error:200,warn:300,info:400,debug:500},nm=(e,t,n)=>{if(e){if(tj(Fl,e))return e;Sn(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Fl))}`)}};function La(){}function Qi(e,t,n){return!t||Fl[e]>Fl[n]?La:t[e].bind(t)}const xj={error:La,warn:La,info:La,debug:La};let rm=new WeakMap;function Sn(e){const t=e.logger,n=e.logLevel??"off";if(!t)return xj;const r=rm.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 rm.set(t,[n,s]),s}const ms=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 Ko;class kr{constructor(t,n,r){this.iterator=t,Ko.set(this,void 0),this.controller=n,Qe(this,Ko,r)}static fromSSEResponse(t,n,r){let s=!1;const o=r?Sn(r):console;async function*a(){if(s)throw new Ze("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let i=!1;try{for await(const c of wj(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 _n(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 _n(void 0,d.error,d.message,void 0);yield{event:c.event,data:d}}}i=!0}catch(c){if(cd(c))return;throw c}finally{i||n.abort()}}return new kr(a,n,r)}static fromReadableStream(t,n,r){let s=!1;async function*o(){const i=new cc,c=fb(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 Ze("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(cd(c))return;throw c}finally{i||n.abort()}}return new kr(a,n,r)}[(Ko=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 kr(()=>s(t),this.controller,ae(this,Ko,"f")),new kr(()=>s(n),this.controller,ae(this,Ko,"f"))]}toReadableStream(){const t=this;let n;return ub({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=mf(JSON.stringify(s)+`
214
+ `);r.enqueue(a)}catch(s){r.error(s)}},async cancel(){var r;await((r=n.return)==null?void 0:r.call(n))}})}}async function*wj(e,t){if(!e.body)throw t.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ze("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ze("Attempted to iterate over a response with no body");const n=new Cj,r=new cc,s=fb(e.body);for await(const o of _j(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*_j(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"?mf(n):n;let s=new Uint8Array(t.length+r.length);s.set(t),s.set(r,t.length),t=s;let o;for(;(o=Sj(t))!==-1;)yield t.slice(0,o),t=t.slice(o)}t.length>0&&(yield t)}class Cj{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(`
215
+ `),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]=kj(t,":");return s.startsWith(" ")&&(s=s.substring(1)),n==="event"?this.event=s:n==="data"&&this.data.push(s),null}}function kj(e,t){const n=e.indexOf(t);return n!==-1?[e.substring(0,n),t,e.substring(n+t.length)]:[e,"",""]}async function vb(e,t){const{response:n,requestLogID:r,retryOfRequestLogID:s,startTime:o}=t,a=await(async()=>{var m;if(t.options.stream)return Sn(e).debug("response",n.status,n.url,n.headers,n.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(n,t.controller,e):kr.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=(m=i==null?void 0:i.split(";")[0])==null?void 0:m.trim();if((c==null?void 0:c.includes("application/json"))||(c==null?void 0:c.endsWith("+json"))){const g=await n.json();return bb(g,n)}return await n.text()})();return Sn(e).debug(`[${r}] response parsed`,ms({retryOfRequestLogID:s,url:n.url,status:n.status,body:a,durationMs:Date.now()-o})),a}function bb(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 Da;class uc extends Promise{constructor(t,n,r=vb){super(s=>{s(null)}),this.responsePromise=n,this.parseResponse=r,Da.set(this,void 0),Qe(this,Da,t)}_thenUnwrap(t){return new uc(ae(this,Da,"f"),this.responsePromise,async(n,r)=>bb(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(ae(this,Da,"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)}}Da=new WeakMap;var Zi;class Sb{constructor(t,n,r,s){Zi.set(this,void 0),Qe(this,Zi,t),this.options=s,this.response=n,this.body=r}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const t=this.nextPageRequestOptions();if(!t)throw new Ze("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await ae(this,Zi,"f").requestAPIList(this.constructor,t)}async*iterPages(){let t=this;for(yield t;t.hasNextPage();)t=await t.getNextPage(),yield t}async*[(Zi=new WeakMap,Symbol.asyncIterator)](){for await(const t of this.iterPages())for(const n of t.getPaginatedItems())yield n}}class Tj extends uc{constructor(t,n,r){super(t,n,async(s,o)=>new r(s,o.response,await vb(s,o),o.options))}async*[Symbol.asyncIterator](){const t=await this;for await(const n of t)yield n}}class dc extends Sb{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 an extends Sb{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:{...ZR(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 Ka(e,t,n){return xb(),new File(e,t??"unknown_file",n)}function ml(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 wb=e=>e!=null&&typeof e=="object"&&typeof e[Symbol.asyncIterator]=="function",js=async(e,t)=>({...e,body:await Ej(e.body,t)}),sm=new WeakMap;function Pj(e){const t=typeof e=="function"?e:e.fetch,n=sm.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 sm.set(t,r),r}const Ej=async(e,t)=>{if(!await Pj(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])=>fd(n,r,s))),n},Mj=e=>e instanceof Blob&&"name"in e,fd=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,Ka([await n.blob()],ml(n)));else if(wb(n))e.append(t,Ka([await new Response(db(n)).blob()],ml(n)));else if(Mj(n))e.append(t,n,ml(n));else if(Array.isArray(n))await Promise.all(n.map(r=>fd(e,t+"[]",r)));else if(typeof n=="object")await Promise.all(Object.entries(n).map(([r,s])=>fd(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`)}},_b=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",Aj=e=>e!=null&&typeof e=="object"&&typeof e.name=="string"&&typeof e.lastModified=="number"&&_b(e),Rj=e=>e!=null&&typeof e=="object"&&typeof e.url=="string"&&typeof e.blob=="function";async function jj(e,t,n){if(xb(),e=await e,Aj(e))return e instanceof File?e:Ka([await e.arrayBuffer()],e.name);if(Rj(e)){const s=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),Ka(await hd(s),t,n)}const r=await hd(e);if(t||(t=ml(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 Ka(r,t,n)}async function hd(e){var n;let t=[];if(typeof e=="string"||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(_b(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(wb(e))for await(const r of e)t.push(...await hd(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}`:""}${Ij(e)}`)}return t}function Ij(e){return typeof e!="object"||e===null?"":`; props: [${Object.getOwnPropertyNames(e).map(n=>`"${n}"`).join(", ")}]`}class rt{constructor(t){this._client=t}}function Cb(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const om=Object.freeze(Object.create(null)),Oj=(e=Cb)=>function(n,...r){if(n.length===1)return n[0];let s=!1;const o=[],a=n.reduce((f,m,g)=>{var S;/[?#]/.test(m)&&(s=!0);const y=r[g];let x=(s?encodeURIComponent:e)(""+y);return g!==r.length&&(y==null||typeof y=="object"&&y.toString===((S=Object.getPrototypeOf(Object.getPrototypeOf(y.hasOwnProperty??om)??om))==null?void 0:S.toString))&&(x=y+"",o.push({start:f.length+m.length,length:x.length,error:`Value of type ${Object.prototype.toString.call(y).slice(8,-1)} is not a valid path parameter`})),f+m+(g===r.length?"":x)},""),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,m)=>f.start-m.start),o.length>0){let f=0;const m=o.reduce((g,y)=>{const x=" ".repeat(y.start-f),S="^".repeat(y.length);return f=y.start+y.length,g+x+S},"");throw new Ze(`Path parameters result in path with invalid segments:
216
+ ${o.map(g=>g.error).join(`
217
+ `)}
218
+ ${a}
219
+ ${m}`)}return a},Le=Oj(Cb);let kb=class extends rt{list(t,n={},r){return this._client.getAPIList(Le`/chat/completions/${t}/messages`,an,{query:n,...r})}};function $j(e){return typeof e.parse=="function"}const Nl=e=>(e==null?void 0:e.role)==="assistant",Tb=e=>(e==null?void 0:e.role)==="tool";var pd,gl,yl,Fa,Na,vl,za,Ar,Ba,zl,Bl,Zs,Pb;class gf{constructor(){pd.add(this),this.controller=new AbortController,gl.set(this,void 0),yl.set(this,()=>{}),Fa.set(this,()=>{}),Na.set(this,void 0),vl.set(this,()=>{}),za.set(this,()=>{}),Ar.set(this,{}),Ba.set(this,!1),zl.set(this,!1),Bl.set(this,!1),Zs.set(this,!1),Qe(this,gl,new Promise((t,n)=>{Qe(this,yl,t,"f"),Qe(this,Fa,n,"f")})),Qe(this,Na,new Promise((t,n)=>{Qe(this,vl,t,"f"),Qe(this,za,n,"f")})),ae(this,gl,"f").catch(()=>{}),ae(this,Na,"f").catch(()=>{})}_run(t){setTimeout(()=>{t().then(()=>{this._emitFinal(),this._emit("end")},ae(this,pd,"m",Pb).bind(this))},0)}_connected(){this.ended||(ae(this,yl,"f").call(this),this._emit("connect"))}get ended(){return ae(this,Ba,"f")}get errored(){return ae(this,zl,"f")}get aborted(){return ae(this,Bl,"f")}abort(){this.controller.abort()}on(t,n){return(ae(this,Ar,"f")[t]||(ae(this,Ar,"f")[t]=[])).push({listener:n}),this}off(t,n){const r=ae(this,Ar,"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(ae(this,Ar,"f")[t]||(ae(this,Ar,"f")[t]=[])).push({listener:n,once:!0}),this}emitted(t){return new Promise((n,r)=>{Qe(this,Zs,!0),t!=="error"&&this.once("error",r),this.once(t,n)})}async done(){Qe(this,Zs,!0),await ae(this,Na,"f")}_emit(t,...n){if(ae(this,Ba,"f"))return;t==="end"&&(Qe(this,Ba,!0),ae(this,vl,"f").call(this));const r=ae(this,Ar,"f")[t];if(r&&(ae(this,Ar,"f")[t]=r.filter(s=>!s.once),r.forEach(({listener:s})=>s(...n))),t==="abort"){const s=n[0];!ae(this,Zs,"f")&&!(r!=null&&r.length)&&Promise.reject(s),ae(this,Fa,"f").call(this,s),ae(this,za,"f").call(this,s),this._emit("end");return}if(t==="error"){const s=n[0];!ae(this,Zs,"f")&&!(r!=null&&r.length)&&Promise.reject(s),ae(this,Fa,"f").call(this,s),ae(this,za,"f").call(this,s),this._emit("end")}}_emitFinal(){}}gl=new WeakMap,yl=new WeakMap,Fa=new WeakMap,Na=new WeakMap,vl=new WeakMap,za=new WeakMap,Ar=new WeakMap,Ba=new WeakMap,zl=new WeakMap,Bl=new WeakMap,Zs=new WeakMap,pd=new WeakSet,Pb=function(t){if(Qe(this,zl,!0),t instanceof Error&&t.name==="AbortError"&&(t=new er),t instanceof er)return Qe(this,Bl,!0),this._emit("abort",t);if(t instanceof Ze)return this._emit("error",t);if(t instanceof Error){const n=new Ze(t.message);return n.cause=t,this._emit("error",n)}return this._emit("error",new Ze(String(t)))};function yf(e){return(e==null?void 0:e.$brand)==="auto-parseable-response-format"}function gi(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function Lj(e,t){return!t||!Eb(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}}))}:vf(e,t)}function vf(e,t){const n=e.choices.map(r=>{var s;if(r.finish_reason==="length")throw new lb;if(r.finish_reason==="content_filter")throw new cb;return{...r,message:{...r.message,...r.message.tool_calls?{tool_calls:((s=r.message.tool_calls)==null?void 0:s.map(o=>Fj(t,o)))??void 0}:void 0,parsed:r.message.content&&!r.message.refusal?Dj(t,r.message.content):null}}});return{...e,choices:n}}function Dj(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 Fj(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:gi(n)?n.$parseRaw(t.function.arguments):n!=null&&n.function.strict?JSON.parse(t.function.arguments):null}}}function Nj(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 gi(n)||(n==null?void 0:n.function.strict)||!1}function Eb(e){var t;return yf(e.response_format)?!0:((t=e.tools)==null?void 0:t.some(n=>gi(n)||n.type==="function"&&n.function.strict===!0))??!1}function zj(e){for(const t of e??[]){if(t.type!=="function")throw new Ze(`Currently only \`function\` tool types support auto-parsing; Received \`${t.type}\``);if(t.function.strict!==!0)throw new Ze(`The \`${t.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Rn,md,Wl,gd,yd,vd,Mb,Ab;const Bj=10;class Rb extends gf{constructor(){super(...arguments),Rn.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(t){var r;this._chatCompletions.push(t),this._emit("chatCompletion",t);const n=(r=t.choices[0])==null?void 0:r.message;return n&&this._addMessage(n),t}_addMessage(t,n=!0){if("content"in t||(t.content=null),this.messages.push(t),n){if(this._emit("message",t),Tb(t)&&t.content)this._emit("functionToolCallResult",t.content);else if(Nl(t)&&t.tool_calls)for(const r of t.tool_calls)r.type==="function"&&this._emit("functionToolCall",r.function)}}async finalChatCompletion(){await this.done();const t=this._chatCompletions[this._chatCompletions.length-1];if(!t)throw new Ze("stream ended without producing a ChatCompletion");return t}async finalContent(){return await this.done(),ae(this,Rn,"m",md).call(this)}async finalMessage(){return await this.done(),ae(this,Rn,"m",Wl).call(this)}async finalFunctionToolCall(){return await this.done(),ae(this,Rn,"m",gd).call(this)}async finalFunctionToolCallResult(){return await this.done(),ae(this,Rn,"m",yd).call(this)}async totalUsage(){return await this.done(),ae(this,Rn,"m",vd).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const t=this._chatCompletions[this._chatCompletions.length-1];t&&this._emit("finalChatCompletion",t);const n=ae(this,Rn,"m",Wl).call(this);n&&this._emit("finalMessage",n);const r=ae(this,Rn,"m",md).call(this);r&&this._emit("finalContent",r);const s=ae(this,Rn,"m",gd).call(this);s&&this._emit("finalFunctionToolCall",s);const o=ae(this,Rn,"m",yd).call(this);o!=null&&this._emit("finalFunctionToolCallResult",o),this._chatCompletions.some(a=>a.usage)&&this._emit("totalUsage",ae(this,Rn,"m",vd).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())),ae(this,Rn,"m",Mb).call(this,n);const o=await t.chat.completions.create({...n,stream:!1},{...r,signal:this.controller.signal});return this._connected(),this._addChatCompletion(vf(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 y,x,S;const s="tool",{tool_choice:o="auto",stream:a,...i}=n,c=typeof o!="string"&&((y=o==null?void 0:o.function)==null?void 0:y.name),{maxChatCompletions:d=Bj}=r||{},f=n.tools.map(_=>{if(gi(_)){if(!_.$callback)throw new Ze("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:_.$callback,name:_.function.name,description:_.function.description||"",parameters:_.function.parameters,parse:_.$parseRaw,strict:!0}}}return _}),m={};for(const _ of f)_.type==="function"&&(m[_.function.name||_.function.function.name]=_.function);const g="tools"in n?f.map(_=>_.type==="function"?{type:"function",function:{name:_.function.name||_.function.function.name,parameters:_.function.parameters,description:_.function.description,strict:_.function.strict}}:_):void 0;for(const _ of n.messages)this._addMessage(_,!1);for(let _=0;_<d;++_){const T=(x=(await this._createChatCompletion(t,{...i,tool_choice:o,tools:g,messages:[...this.messages]},r)).choices[0])==null?void 0:x.message;if(!T)throw new Ze("missing message in ChatCompletion response");if(!((S=T.tool_calls)!=null&&S.length))return;for(const P of T.tool_calls){if(P.type!=="function")continue;const C=P.id,{name:A,arguments:I}=P.function,L=m[A];if(L){if(c&&c!==A){const N=`Invalid tool_call: ${JSON.stringify(A)}. ${JSON.stringify(c)} requested. Please try again`;this._addMessage({role:s,tool_call_id:C,content:N});continue}}else{const N=`Invalid tool_call: ${JSON.stringify(A)}. Available options are: ${Object.keys(m).map(O=>JSON.stringify(O)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:C,content:N});continue}let $;try{$=$j(L)?await L.parse(I):I}catch(N){const O=N instanceof Error?N.message:String(N);this._addMessage({role:s,tool_call_id:C,content:O});continue}const F=await L.function($,this),te=ae(this,Rn,"m",Ab).call(this,F);if(this._addMessage({role:s,tool_call_id:C,content:te}),c)return}}}}Rn=new WeakSet,md=function(){return ae(this,Rn,"m",Wl).call(this).content??null},Wl=function(){let t=this.messages.length;for(;t-- >0;){const n=this.messages[t];if(Nl(n))return{...n,content:n.content??null,refusal:n.refusal??null}}throw new Ze("stream ended without producing a ChatCompletionMessage with role=assistant")},gd=function(){var t,n;for(let r=this.messages.length-1;r>=0;r--){const s=this.messages[r];if(Nl(s)&&((t=s==null?void 0:s.tool_calls)!=null&&t.length))return(n=s.tool_calls.at(-1))==null?void 0:n.function}},yd=function(){for(let t=this.messages.length-1;t>=0;t--){const n=this.messages[t];if(Tb(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}},vd=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},Mb=function(t){if(t.n!=null&&t.n>1)throw new Ze("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},Ab=function(t){return typeof t=="string"?t:t===void 0?"undefined":JSON.stringify(t)};class bf extends Rb{static runTools(t,n,r){const s=new bf,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),Nl(t)&&t.content&&this._emit("content",t.content)}}const jb=1,Ib=2,Ob=4,$b=8,Lb=16,Db=32,Fb=64,Nb=128,zb=256,Bb=Nb|zb,Wb=Lb|Db|Bb|Fb,Ub=jb|Ib|Wb,qb=Ob|$b,Wj=Ub|qb,mn={STR:jb,NUM:Ib,ARR:Ob,OBJ:$b,NULL:Lb,BOOL:Db,NAN:Fb,INFINITY:Nb,MINUS_INFINITY:zb,INF:Bb,SPECIAL:Wb,ATOM:Ub,COLLECTION:qb,ALL:Wj};class Uj extends Error{}class qj extends Error{}function Hj(e,t=mn.ALL){if(typeof e!="string")throw new TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw new Error(`${e} is empty`);return Yj(e.trim(),t)}const Yj=(e,t)=>{const n=e.length;let r=0;const s=g=>{throw new Uj(`${g} at position ${r}`)},o=g=>{throw new qj(`${g} at position ${r}`)},a=()=>(m(),r>=n&&s("Unexpected end of input"),e[r]==='"'?i():e[r]==="{"?c():e[r]==="["?d():e.substring(r,r+4)==="null"||mn.NULL&t&&n-r<4&&"null".startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)==="true"||mn.BOOL&t&&n-r<4&&"true".startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)==="false"||mn.BOOL&t&&n-r<5&&"false".startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)==="Infinity"||mn.INFINITY&t&&n-r<8&&"Infinity".startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)==="-Infinity"||mn.MINUS_INFINITY&t&&1<n-r&&n-r<9&&"-Infinity".startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)==="NaN"||mn.NAN&t&&n-r<3&&"NaN".startsWith(e.substring(r))?(r+=3,NaN):f()),i=()=>{const g=r;let y=!1;for(r++;r<n&&(e[r]!=='"'||y&&e[r-1]==="\\");)y=e[r]==="\\"?!y:!1,r++;if(e.charAt(r)=='"')try{return JSON.parse(e.substring(g,++r-Number(y)))}catch(x){o(String(x))}else if(mn.STR&t)try{return JSON.parse(e.substring(g,r-Number(y))+'"')}catch{return JSON.parse(e.substring(g,e.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},c=()=>{r++,m();const g={};try{for(;e[r]!=="}";){if(m(),r>=n&&mn.OBJ&t)return g;const y=i();m(),r++;try{const x=a();Object.defineProperty(g,y,{value:x,writable:!0,enumerable:!0,configurable:!0})}catch(x){if(mn.OBJ&t)return g;throw x}m(),e[r]===","&&r++}}catch{if(mn.OBJ&t)return g;s("Expected '}' at end of object")}return r++,g},d=()=>{r++;const g=[];try{for(;e[r]!=="]";)g.push(a()),m(),e[r]===","&&r++}catch{if(mn.ARR&t)return g;s("Expected ']' at end of array")}return r++,g},f=()=>{if(r===0){e==="-"&&mn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e)}catch(y){if(mn.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(y))}}const g=r;for(e[r]==="-"&&r++;e[r]&&!",]}".includes(e[r]);)r++;r==n&&!(mn.NUM&t)&&s("Unterminated number literal");try{return JSON.parse(e.substring(g,r))}catch{e.substring(g,r)==="-"&&mn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e.substring(g,e.lastIndexOf("e")))}catch(x){o(String(x))}}},m=()=>{for(;r<n&&`
220
+ \r `.includes(e[r]);)r++};return a()},am=e=>Hj(e,mn.ALL^mn.NUM);var un,Mr,Vs,Yr,cu,el,uu,du,fu,tl,hu,im;class ci extends Rb{constructor(t){super(),un.add(this),Mr.set(this,void 0),Vs.set(this,void 0),Yr.set(this,void 0),Qe(this,Mr,t),Qe(this,Vs,[])}get currentChatCompletionSnapshot(){return ae(this,Yr,"f")}static fromReadableStream(t){const n=new ci(null);return n._run(()=>n._fromReadableStream(t)),n}static createChatCompletion(t,n,r){const s=new ci(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())),ae(this,un,"m",cu).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)ae(this,un,"m",uu).call(this,i);if((a=o.controller.signal)!=null&&a.aborted)throw new er;return this._addChatCompletion(ae(this,un,"m",tl).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())),ae(this,un,"m",cu).call(this),this._connected();const s=kr.fromReadableStream(t,this.controller);let o;for await(const i of s)o&&o!==i.id&&this._addChatCompletion(ae(this,un,"m",tl).call(this)),ae(this,un,"m",uu).call(this,i),o=i.id;if((a=s.controller.signal)!=null&&a.aborted)throw new er;return this._addChatCompletion(ae(this,un,"m",tl).call(this))}[(Mr=new WeakMap,Vs=new WeakMap,Yr=new WeakMap,un=new WeakSet,cu=function(){this.ended||Qe(this,Yr,void 0)},el=function(n){let r=ae(this,Vs,"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},ae(this,Vs,"f")[n.index]=r,r)},uu=function(n){var s,o,a,i,c,d,f,m,g,y,x,S,_,E,T;if(this.ended)return;const r=ae(this,un,"m",im).call(this,n);this._emit("chunk",n,r);for(const P of n.choices){const C=r.choices[P.index];P.delta.content!=null&&((s=C.message)==null?void 0:s.role)==="assistant"&&((o=C.message)!=null&&o.content)&&(this._emit("content",P.delta.content,C.message.content),this._emit("content.delta",{delta:P.delta.content,snapshot:C.message.content,parsed:C.message.parsed})),P.delta.refusal!=null&&((a=C.message)==null?void 0:a.role)==="assistant"&&((i=C.message)!=null&&i.refusal)&&this._emit("refusal.delta",{delta:P.delta.refusal,snapshot:C.message.refusal}),((c=P.logprobs)==null?void 0:c.content)!=null&&((d=C.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(f=P.logprobs)==null?void 0:f.content,snapshot:((m=C.logprobs)==null?void 0:m.content)??[]}),((g=P.logprobs)==null?void 0:g.refusal)!=null&&((y=C.message)==null?void 0:y.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(x=P.logprobs)==null?void 0:x.refusal,snapshot:((S=C.logprobs)==null?void 0:S.refusal)??[]});const A=ae(this,un,"m",el).call(this,C);C.finish_reason&&(ae(this,un,"m",fu).call(this,C),A.current_tool_call_index!=null&&ae(this,un,"m",du).call(this,C,A.current_tool_call_index));for(const I of P.delta.tool_calls??[])A.current_tool_call_index!==I.index&&(ae(this,un,"m",fu).call(this,C),A.current_tool_call_index!=null&&ae(this,un,"m",du).call(this,C,A.current_tool_call_index)),A.current_tool_call_index=I.index;for(const I of P.delta.tool_calls??[]){const L=(_=C.message.tool_calls)==null?void 0:_[I.index];L!=null&&L.type&&((L==null?void 0:L.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(E=L.function)==null?void 0:E.name,index:I.index,arguments:L.function.arguments,parsed_arguments:L.function.parsed_arguments,arguments_delta:((T=I.function)==null?void 0:T.arguments)??""}):(L==null||L.type,void 0))}}},du=function(n,r){var a,i,c;if(ae(this,un,"m",el).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=ae(this,Mr,"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:gi(d)?d.$parseRaw(o.function.arguments):d!=null&&d.function.strict?JSON.parse(o.function.arguments):null})}else o.type},fu=function(n){var s,o;const r=ae(this,un,"m",el).call(this,n);if(n.message.content&&!r.content_done){r.content_done=!0;const a=ae(this,un,"m",hu).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}))},tl=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=ae(this,Yr,"f");if(!n)throw new Ze("request ended without sending any chunks");return Qe(this,Yr,void 0),Qe(this,Vs,[]),Xj(n,ae(this,Mr,"f"))},hu=function(){var r;const n=(r=ae(this,Mr,"f"))==null?void 0:r.response_format;return yf(n)?n:null},im=function(n){var r,s,o,a;let i=ae(this,Yr,"f");const{choices:c,...d}=n;i?Object.assign(i,d):i=Qe(this,Yr,{...d,choices:[]});for(const{delta:f,finish_reason:m,index:g,logprobs:y=null,...x}of n.choices){let S=i.choices[g];if(S||(S=i.choices[g]={finish_reason:m,index:g,message:{},logprobs:y,...x}),y)if(!S.logprobs)S.logprobs=Object.assign({},y);else{const{content:I,refusal:L,...$}=y;Object.assign(S.logprobs,$),I&&((r=S.logprobs).content??(r.content=[]),S.logprobs.content.push(...I)),L&&((s=S.logprobs).refusal??(s.refusal=[]),S.logprobs.refusal.push(...L))}if(m&&(S.finish_reason=m,ae(this,Mr,"f")&&Eb(ae(this,Mr,"f")))){if(m==="length")throw new lb;if(m==="content_filter")throw new cb}if(Object.assign(S,x),!f)continue;const{content:_,refusal:E,function_call:T,role:P,tool_calls:C,...A}=f;if(Object.assign(S.message,A),E&&(S.message.refusal=(S.message.refusal||"")+E),P&&(S.message.role=P),T&&(S.message.function_call?(T.name&&(S.message.function_call.name=T.name),T.arguments&&((o=S.message.function_call).arguments??(o.arguments=""),S.message.function_call.arguments+=T.arguments)):S.message.function_call=T),_&&(S.message.content=(S.message.content||"")+_,!S.message.refusal&&ae(this,un,"m",hu).call(this)&&(S.message.parsed=am(S.message.content))),C){S.message.tool_calls||(S.message.tool_calls=[]);for(const{index:I,id:L,type:$,function:F,...te}of C){const N=(a=S.message.tool_calls)[I]??(a[I]={});Object.assign(N,te),L&&(N.id=L),$&&(N.type=$),F&&(N.function??(N.function={name:F.name??"",arguments:""})),F!=null&&F.name&&(N.function.name=F.name),F!=null&&F.arguments&&(N.function.arguments+=F.arguments,Nj(ae(this,Mr,"f"),N)&&(N.function.parsed_arguments=am(N.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 kr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function Xj(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:m,logprobs:g,...y})=>{if(!f)throw new Ze(`missing finish_reason for choice ${m}`);const{content:x=null,function_call:S,tool_calls:_,...E}=d,T=d.role;if(!T)throw new Ze(`missing role for choice ${m}`);if(S){const{arguments:P,name:C}=S;if(P==null)throw new Ze(`missing function_call.arguments for choice ${m}`);if(!C)throw new Ze(`missing function_call.name for choice ${m}`);return{...y,message:{content:x,function_call:{arguments:P,name:C},role:T,refusal:d.refusal??null},finish_reason:f,index:m,logprobs:g}}return _?{...y,index:m,finish_reason:f,logprobs:g,message:{...E,role:T,content:x,refusal:d.refusal??null,tool_calls:_.map((P,C)=>{const{function:A,type:I,id:L,...$}=P,{arguments:F,name:te,...N}=A||{};if(L==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].id
221
+ ${nl(e)}`);if(I==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].type
222
+ ${nl(e)}`);if(te==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].function.name
223
+ ${nl(e)}`);if(F==null)throw new Ze(`missing choices[${m}].tool_calls[${C}].function.arguments
224
+ ${nl(e)}`);return{...$,id:L,type:I,function:{...N,name:te,arguments:F}}})}}:{...y,message:{...E,content:x,role:T,refusal:d.refusal??null},finish_reason:f,index:m,logprobs:g}}),created:s,model:o,object:"chat.completion",...a?{system_fingerprint:a}:{}};return Lj(c,t)}function nl(e){return JSON.stringify(e)}class Ul extends ci{static fromReadableStream(t){const n=new Ul(null);return n._run(()=>n._fromReadableStream(t)),n}static runTools(t,n,r){const s=new Ul(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 Sf=class extends rt{constructor(){super(...arguments),this.messages=new kb(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(Le`/chat/completions/${t}`,n)}update(t,n,r){return this._client.post(Le`/chat/completions/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/chat/completions",an,{query:t,...n})}delete(t,n){return this._client.delete(Le`/chat/completions/${t}`,n)}parse(t,n){return zj(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=>vf(r,t))}runTools(t,n){return t.stream?Ul.runTools(this._client,t,n):bf.runTools(this._client,t,n)}stream(t,n){return ci.createChatCompletion(this._client,t,n)}};Sf.Messages=kb;class xf extends rt{constructor(){super(...arguments),this.completions=new Sf(this._client)}}xf.Completions=Sf;const Hb=Symbol("brand.privateNullableHeaders");function*Kj(e){if(!e)return;if(Hb 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():Yp(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=Yp(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 Xe=e=>{const t=new Headers,n=new Set;for(const r of e){const s=new Set;for(const[o,a]of Kj(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{[Hb]:!0,values:t,nulls:n}};class Yb extends rt{create(t,n){return this._client.post("/audio/speech",{body:t,...n,headers:Xe([{Accept:"application/octet-stream"},n==null?void 0:n.headers]),__binaryResponse:!0})}}class Xb extends rt{create(t,n){return this._client.post("/audio/transcriptions",js({body:t,...n,stream:t.stream??!1,__metadata:{model:t.model}},this._client))}}class Kb extends rt{create(t,n){return this._client.post("/audio/translations",js({body:t,...n,__metadata:{model:t.model}},this._client))}}class yi extends rt{constructor(){super(...arguments),this.transcriptions=new Xb(this._client),this.translations=new Kb(this._client),this.speech=new Yb(this._client)}}yi.Transcriptions=Xb;yi.Translations=Kb;yi.Speech=Yb;class Vb extends rt{create(t,n){return this._client.post("/batches",{body:t,...n})}retrieve(t,n){return this._client.get(Le`/batches/${t}`,n)}list(t={},n){return this._client.getAPIList("/batches",an,{query:t,...n})}cancel(t,n){return this._client.post(Le`/batches/${t}/cancel`,n)}}class Gb extends rt{create(t,n){return this._client.post("/assistants",{body:t,...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Le`/assistants/${t}`,{...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Le`/assistants/${t}`,{body:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/assistants",an,{query:t,...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Le`/assistants/${t}`,{...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Jb extends rt{create(t,n){return this._client.post("/realtime/sessions",{body:t,...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Qb extends rt{create(t,n){return this._client.post("/realtime/transcription_sessions",{body:t,...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class fc extends rt{constructor(){super(...arguments),this.sessions=new Jb(this._client),this.transcriptionSessions=new Qb(this._client)}}fc.Sessions=Jb;fc.TranscriptionSessions=Qb;class Zb extends rt{create(t,n,r){return this._client.post(Le`/threads/${t}/messages`,{body:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(Le`/threads/${s}/messages/${t}`,{...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Le`/threads/${s}/messages/${t}`,{body:o,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Le`/threads/${t}/messages`,an,{query:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{thread_id:s}=n;return this._client.delete(Le`/threads/${s}/messages/${t}`,{...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class eS extends rt{retrieve(t,n,r){const{thread_id:s,run_id:o,...a}=n;return this._client.get(Le`/threads/${s}/runs/${o}/steps/${t}`,{query:a,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n,r){const{thread_id:s,...o}=n;return this._client.getAPIList(Le`/threads/${s}/runs/${t}/steps`,an,{query:o,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}const Vj=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 pu={};const Gs=e=>{var t,n,r,s;if(typeof globalThis.process<"u")return((t=pu==null?void 0:pu[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 xn,ks,bd,Sr,bl,ur,Ts,so,bs,ql,qn,Sl,xl,Va,Wa,Ua,lm,cm,um,dm,fm,hm,pm;class Ga extends gf{constructor(){super(...arguments),xn.add(this),bd.set(this,[]),Sr.set(this,{}),bl.set(this,{}),ur.set(this,void 0),Ts.set(this,void 0),so.set(this,void 0),bs.set(this,void 0),ql.set(this,void 0),qn.set(this,void 0),Sl.set(this,void 0),xl.set(this,void 0),Va.set(this,void 0)}[(bd=new WeakMap,Sr=new WeakMap,bl=new WeakMap,ur=new WeakMap,Ts=new WeakMap,so=new WeakMap,bs=new WeakMap,ql=new WeakMap,qn=new WeakMap,Sl=new WeakMap,xl=new WeakMap,Va=new WeakMap,xn=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 ks;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=kr.fromReadableStream(t,this.controller);for await(const a of s)ae(this,xn,"m",Wa).call(this,a);if((o=s.controller.signal)!=null&&o.aborted)throw new er;return this._addRun(ae(this,xn,"m",Ua).call(this))}toReadableStream(){return new kr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(t,n,r,s){const o=new ks;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)ae(this,xn,"m",Wa).call(this,d);if((c=i.controller.signal)!=null&&c.aborted)throw new er;return this._addRun(ae(this,xn,"m",Ua).call(this))}static createThreadAssistantStream(t,n,r){const s=new ks;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 ks;return o._run(()=>o._runAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}currentEvent(){return ae(this,Sl,"f")}currentRun(){return ae(this,xl,"f")}currentMessageSnapshot(){return ae(this,ur,"f")}currentRunStepSnapshot(){return ae(this,Va,"f")}async finalRunSteps(){return await this.done(),Object.values(ae(this,Sr,"f"))}async finalMessages(){return await this.done(),Object.values(ae(this,bl,"f"))}async finalRun(){if(await this.done(),!ae(this,Ts,"f"))throw Error("Final run was not received.");return ae(this,Ts,"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)ae(this,xn,"m",Wa).call(this,c);if((i=a.controller.signal)!=null&&i.aborted)throw new er;return this._addRun(ae(this,xn,"m",Ua).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)ae(this,xn,"m",Wa).call(this,d);if((c=i.controller.signal)!=null&&c.aborted)throw new er;return this._addRun(ae(this,xn,"m",Ua).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(au(o)&&au(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(!au(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)}}ks=Ga,Wa=function(t){if(!this.ended)switch(Qe(this,Sl,t),ae(this,xn,"m",um).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":ae(this,xn,"m",pm).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":ae(this,xn,"m",cm).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":ae(this,xn,"m",lm).call(this,t);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},Ua=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");if(!ae(this,Ts,"f"))throw Error("Final run has not been received");return ae(this,Ts,"f")},lm=function(t){const[n,r]=ae(this,xn,"m",fm).call(this,t,ae(this,ur,"f"));Qe(this,ur,n),ae(this,bl,"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!=ae(this,so,"f")){if(ae(this,bs,"f"))switch(ae(this,bs,"f").type){case"text":this._emit("textDone",ae(this,bs,"f").text,ae(this,ur,"f"));break;case"image_file":this._emit("imageFileDone",ae(this,bs,"f").image_file,ae(this,ur,"f"));break}Qe(this,so,s.index)}Qe(this,bs,n.content[s.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(ae(this,so,"f")!==void 0){const s=t.data.content[ae(this,so,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,ae(this,ur,"f"));break;case"text":this._emit("textDone",s.text,ae(this,ur,"f"));break}}ae(this,ur,"f")&&this._emit("messageDone",t.data),Qe(this,ur,void 0)}},cm=function(t){const n=ae(this,xn,"m",dm).call(this,t);switch(Qe(this,Va,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==ae(this,ql,"f")?this._emit("toolCallDelta",o,n.step_details.tool_calls[o.index]):(ae(this,qn,"f")&&this._emit("toolCallDone",ae(this,qn,"f")),Qe(this,ql,o.index),Qe(this,qn,n.step_details.tool_calls[o.index]),ae(this,qn,"f")&&this._emit("toolCallCreated",ae(this,qn,"f")));this._emit("runStepDelta",t.data.delta,n);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":Qe(this,Va,void 0),t.data.step_details.type=="tool_calls"&&ae(this,qn,"f")&&(this._emit("toolCallDone",ae(this,qn,"f")),Qe(this,qn,void 0)),this._emit("runStepDone",t.data,n);break}},um=function(t){ae(this,bd,"f").push(t),this._emit("event",t)},dm=function(t){switch(t.event){case"thread.run.step.created":return ae(this,Sr,"f")[t.data.id]=t.data,t.data;case"thread.run.step.delta":let n=ae(this,Sr,"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=ks.accumulateDelta(n,r.delta);ae(this,Sr,"f")[t.data.id]=s}return ae(this,Sr,"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":ae(this,Sr,"f")[t.data.id]=t.data;break}if(ae(this,Sr,"f")[t.data.id])return ae(this,Sr,"f")[t.data.id];throw new Error("No snapshot available")},fm=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]=ae(this,xn,"m",hm).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")},hm=function(t,n){return ks.accumulateDelta(n,t)},pm=function(t){switch(Qe(this,xl,t.data),t.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":Qe(this,Ts,t.data),ae(this,qn,"f")&&(this._emit("toolCallDone",ae(this,qn,"f")),Qe(this,qn,void 0));break}};let wf=class extends rt{constructor(){super(...arguments),this.steps=new eS(this._client)}create(t,n,r){const{include:s,...o}=n;return this._client.post(Le`/threads/${t}/runs`,{query:{include:s},body:o,...r,headers:Xe([{"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(Le`/threads/${s}/runs/${t}`,{...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Le`/threads/${s}/runs/${t}`,{body:o,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Le`/threads/${t}/runs`,an,{query:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{thread_id:s}=n;return this._client.post(Le`/threads/${s}/runs/${t}/cancel`,{...r,headers:Xe([{"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 Ga.createAssistantStream(t,this._client.beta.threads.runs,n,r)}async poll(t,n,r){var o;const s=Xe([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 mi(c);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return a}}}stream(t,n,r){return Ga.createAssistantStream(t,this._client.beta.threads.runs,n,r)}submitToolOutputs(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Le`/threads/${s}/runs/${t}/submit_tool_outputs`,{body:o,...r,headers:Xe([{"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 Ga.createToolAssistantStream(t,this._client.beta.threads.runs,n,r)}};wf.Steps=eS;class hc extends rt{constructor(){super(...arguments),this.runs=new wf(this._client),this.messages=new Zb(this._client)}create(t={},n){return this._client.post("/threads",{body:t,...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Le`/threads/${t}`,{...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Le`/threads/${t}`,{body:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n){return this._client.delete(Le`/threads/${t}`,{...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}createAndRun(t,n){return this._client.post("/threads/runs",{body:t,...n,headers:Xe([{"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 Ga.createThreadAssistantStream(t,this._client.beta.threads,n)}}hc.Runs=wf;hc.Messages=Zb;class vi extends rt{constructor(){super(...arguments),this.realtime=new fc(this._client),this.assistants=new Gb(this._client),this.threads=new hc(this._client)}}vi.Realtime=fc;vi.Assistants=Gb;vi.Threads=hc;class tS extends rt{create(t,n){return this._client.post("/completions",{body:t,...n,stream:t.stream??!1})}}let nS=class extends rt{retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Le`/containers/${s}/files/${t}/content`,{...r,headers:Xe([{Accept:"application/binary"},r==null?void 0:r.headers]),__binaryResponse:!0})}},_f=class extends rt{constructor(){super(...arguments),this.content=new nS(this._client)}create(t,n,r){return this._client.post(Le`/containers/${t}/files`,js({body:n,...r},this._client))}retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Le`/containers/${s}/files/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Le`/containers/${t}/files`,an,{query:n,...r})}delete(t,n,r){const{container_id:s}=n;return this._client.delete(Le`/containers/${s}/files/${t}`,{...r,headers:Xe([{Accept:"*/*"},r==null?void 0:r.headers])})}};_f.Content=nS;class Cf extends rt{constructor(){super(...arguments),this.files=new _f(this._client)}create(t,n){return this._client.post("/containers",{body:t,...n})}retrieve(t,n){return this._client.get(Le`/containers/${t}`,n)}list(t={},n){return this._client.getAPIList("/containers",an,{query:t,...n})}delete(t,n){return this._client.delete(Le`/containers/${t}`,{...n,headers:Xe([{Accept:"*/*"},n==null?void 0:n.headers])})}}Cf.Files=_f;class rS extends rt{create(t,n){const r=!!t.encoding_format;let s=r?t.encoding_format:"base64";r&&Sn(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:(Sn(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=Vj(c)}),a)))}}class sS extends rt{retrieve(t,n,r){const{eval_id:s,run_id:o}=n;return this._client.get(Le`/evals/${s}/runs/${o}/output_items/${t}`,r)}list(t,n,r){const{eval_id:s,...o}=n;return this._client.getAPIList(Le`/evals/${s}/runs/${t}/output_items`,an,{query:o,...r})}}class kf extends rt{constructor(){super(...arguments),this.outputItems=new sS(this._client)}create(t,n,r){return this._client.post(Le`/evals/${t}/runs`,{body:n,...r})}retrieve(t,n,r){const{eval_id:s}=n;return this._client.get(Le`/evals/${s}/runs/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Le`/evals/${t}/runs`,an,{query:n,...r})}delete(t,n,r){const{eval_id:s}=n;return this._client.delete(Le`/evals/${s}/runs/${t}`,r)}cancel(t,n,r){const{eval_id:s}=n;return this._client.post(Le`/evals/${s}/runs/${t}`,r)}}kf.OutputItems=sS;class Tf extends rt{constructor(){super(...arguments),this.runs=new kf(this._client)}create(t,n){return this._client.post("/evals",{body:t,...n})}retrieve(t,n){return this._client.get(Le`/evals/${t}`,n)}update(t,n,r){return this._client.post(Le`/evals/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/evals",an,{query:t,...n})}delete(t,n){return this._client.delete(Le`/evals/${t}`,n)}}Tf.Runs=kf;let oS=class extends rt{create(t,n){return this._client.post("/files",js({body:t,...n},this._client))}retrieve(t,n){return this._client.get(Le`/files/${t}`,n)}list(t={},n){return this._client.getAPIList("/files",an,{query:t,...n})}delete(t,n){return this._client.delete(Le`/files/${t}`,n)}content(t,n){return this._client.get(Le`/files/${t}/content`,{...n,headers:Xe([{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 mi(n),a=await this.retrieve(t),Date.now()-o>r)throw new pf({message:`Giving up on waiting for file ${t} to finish processing after ${r} milliseconds.`});return a}};class aS extends rt{}let iS=class extends rt{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 Pf extends rt{constructor(){super(...arguments),this.graders=new iS(this._client)}}Pf.Graders=iS;class lS extends rt{create(t,n,r){return this._client.getAPIList(Le`/fine_tuning/checkpoints/${t}/permissions`,dc,{body:n,method:"post",...r})}retrieve(t,n={},r){return this._client.get(Le`/fine_tuning/checkpoints/${t}/permissions`,{query:n,...r})}delete(t,n,r){const{fine_tuned_model_checkpoint:s}=n;return this._client.delete(Le`/fine_tuning/checkpoints/${s}/permissions/${t}`,r)}}let Ef=class extends rt{constructor(){super(...arguments),this.permissions=new lS(this._client)}};Ef.Permissions=lS;class cS extends rt{list(t,n={},r){return this._client.getAPIList(Le`/fine_tuning/jobs/${t}/checkpoints`,an,{query:n,...r})}}class Mf extends rt{constructor(){super(...arguments),this.checkpoints=new cS(this._client)}create(t,n){return this._client.post("/fine_tuning/jobs",{body:t,...n})}retrieve(t,n){return this._client.get(Le`/fine_tuning/jobs/${t}`,n)}list(t={},n){return this._client.getAPIList("/fine_tuning/jobs",an,{query:t,...n})}cancel(t,n){return this._client.post(Le`/fine_tuning/jobs/${t}/cancel`,n)}listEvents(t,n={},r){return this._client.getAPIList(Le`/fine_tuning/jobs/${t}/events`,an,{query:n,...r})}pause(t,n){return this._client.post(Le`/fine_tuning/jobs/${t}/pause`,n)}resume(t,n){return this._client.post(Le`/fine_tuning/jobs/${t}/resume`,n)}}Mf.Checkpoints=cS;class wo extends rt{constructor(){super(...arguments),this.methods=new aS(this._client),this.jobs=new Mf(this._client),this.checkpoints=new Ef(this._client),this.alpha=new Pf(this._client)}}wo.Methods=aS;wo.Jobs=Mf;wo.Checkpoints=Ef;wo.Alpha=Pf;class uS extends rt{}class Af extends rt{constructor(){super(...arguments),this.graderModels=new uS(this._client)}}Af.GraderModels=uS;class dS extends rt{createVariation(t,n){return this._client.post("/images/variations",js({body:t,...n},this._client))}edit(t,n){return this._client.post("/images/edits",js({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 fS extends rt{retrieve(t,n){return this._client.get(Le`/models/${t}`,n)}list(t){return this._client.getAPIList("/models",dc,t)}delete(t,n){return this._client.delete(Le`/models/${t}`,n)}}class hS extends rt{create(t,n){return this._client.post("/moderations",{body:t,...n})}}function Gj(e,t){return!t||!Qj(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)}:pS(e,t)}function pS(e,t){const n=e.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:t1(t,s)};if(s.type==="message"){const o=s.content.map(a=>a.type==="output_text"?{...a,parsed:Jj(t,a.text)}:a);return{...s,content:o}}return s}),r=Object.assign({},e,{output:n});return Object.getOwnPropertyDescriptor(e,"output_text")||Sd(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 Jj(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 Qj(e){var t;return!!yf((t=e.text)==null?void 0:t.format)}function Zj(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function e1(e,t){return e.find(n=>n.type==="function"&&n.name===t)}function t1(e,t){const n=e1(e.tools??[],t.name);return{...t,...t,parsed_arguments:Zj(n)?n.$parseRaw(t.arguments):n!=null&&n.strict?JSON.parse(t.arguments):null}}function Sd(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 Js,rl,Xr,sl,mm,gm,ym,vm;class Rf extends gf{constructor(t){super(),Js.add(this),rl.set(this,void 0),Xr.set(this,void 0),sl.set(this,void 0),Qe(this,rl,t)}static createResponse(t,n,r){const s=new Rf(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())),ae(this,Js,"m",mm).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)ae(this,Js,"m",gm).call(this,c,a);if((i=o.controller.signal)!=null&&i.aborted)throw new er;return ae(this,Js,"m",ym).call(this)}[(rl=new WeakMap,Xr=new WeakMap,sl=new WeakMap,Js=new WeakSet,mm=function(){this.ended||Qe(this,Xr,void 0)},gm=function(n,r){if(this.ended)return;const s=(a,i)=>{(r==null||i.sequence_number>r)&&this._emit(a,i)},o=ae(this,Js,"m",vm).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 Ze(`missing output at index ${n.output_index}`);if(a.type==="message"){const i=a.content[n.content_index];if(!i)throw new Ze(`missing content at index ${n.content_index}`);if(i.type!=="output_text")throw new Ze(`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 Ze(`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}},ym=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=ae(this,Xr,"f");if(!n)throw new Ze("request ended without sending any events");Qe(this,Xr,void 0);const r=n1(n,ae(this,rl,"f"));return Qe(this,sl,r),r},vm=function(n){let r=ae(this,Xr,"f");if(!r){if(n.type!=="response.created")throw new Ze(`When snapshot hasn't been set yet, expected 'response.created' event, got ${n.type}`);return r=Qe(this,Xr,n.response),r}switch(n.type){case"response.output_item.added":{r.output.push(n.item);break}case"response.content_part.added":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);s.type==="message"&&s.content.push(n.part);break}case"response.output_text.delta":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);if(s.type==="message"){const o=s.content[n.content_index];if(!o)throw new Ze(`missing content at index ${n.content_index}`);if(o.type!=="output_text")throw new Ze(`expected content to be 'output_text', got ${o.type}`);o.text+=n.delta}break}case"response.function_call_arguments.delta":{const s=r.output[n.output_index];if(!s)throw new Ze(`missing output at index ${n.output_index}`);s.type==="function_call"&&(s.arguments+=n.delta);break}case"response.completed":{Qe(this,Xr,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=ae(this,sl,"f");if(!t)throw new Ze("stream ended without producing a ChatCompletion");return t}}function n1(e,t){return Gj(e,t)}class mS extends rt{list(t,n={},r){return this._client.getAPIList(Le`/responses/${t}/input_items`,an,{query:n,...r})}}class jf extends rt{constructor(){super(...arguments),this.inputItems=new mS(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"&&Sd(r),r))}retrieve(t,n={},r){return this._client.get(Le`/responses/${t}`,{query:n,...r,stream:(n==null?void 0:n.stream)??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&Sd(s),s))}delete(t,n){return this._client.delete(Le`/responses/${t}`,{...n,headers:Xe([{Accept:"*/*"},n==null?void 0:n.headers])})}parse(t,n){return this._client.responses.create(t,n)._thenUnwrap(r=>pS(r,t))}stream(t,n){return Rf.createResponse(this._client,t,n)}cancel(t,n){return this._client.post(Le`/responses/${t}/cancel`,n)}}jf.InputItems=mS;class gS extends rt{create(t,n,r){return this._client.post(Le`/uploads/${t}/parts`,js({body:n,...r},this._client))}}class If extends rt{constructor(){super(...arguments),this.parts=new gS(this._client)}create(t,n){return this._client.post("/uploads",{body:t,...n})}cancel(t,n){return this._client.post(Le`/uploads/${t}/cancel`,n)}complete(t,n,r){return this._client.post(Le`/uploads/${t}/complete`,{body:n,...r})}}If.Parts=gS;const r1=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 yS extends rt{create(t,n,r){return this._client.post(Le`/vector_stores/${t}/file_batches`,{body:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Le`/vector_stores/${s}/file_batches/${t}`,{...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{vector_store_id:s}=n;return this._client.post(Le`/vector_stores/${s}/file_batches/${t}/cancel`,{...r,headers:Xe([{"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(Le`/vector_stores/${s}/file_batches/${t}/files`,an,{query:o,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async poll(t,n,r){var o;const s=Xe([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 mi(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(g){for(let y of g){const x=await i.files.create({file:y,purpose:"assistants"},s);d.push(x.id)}}const m=Array(a).fill(c).map(f);return await r1(m),await this.createAndPoll(t,{file_ids:d})}}class vS extends rt{create(t,n,r){return this._client.post(Le`/vector_stores/${t}/files`,{body:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Le`/vector_stores/${s}/files/${t}`,{...r,headers:Xe([{"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(Le`/vector_stores/${s}/files/${t}`,{body:o,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Le`/vector_stores/${t}/files`,an,{query:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{vector_store_id:s}=n;return this._client.delete(Le`/vector_stores/${s}/files/${t}`,{...r,headers:Xe([{"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=Xe([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 mi(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(Le`/vector_stores/${s}/files/${t}/content`,dc,{...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class pc extends rt{constructor(){super(...arguments),this.files=new vS(this._client),this.fileBatches=new yS(this._client)}create(t,n){return this._client.post("/vector_stores",{body:t,...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Le`/vector_stores/${t}`,{...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Le`/vector_stores/${t}`,{body:n,...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/vector_stores",an,{query:t,...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Le`/vector_stores/${t}`,{...n,headers:Xe([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}search(t,n,r){return this._client.getAPIList(Le`/vector_stores/${t}/search`,dc,{body:n,method:"post",...r,headers:Xe([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}pc.Files=vS;pc.FileBatches=yS;var eo,bS,wl;class SS extends rt{constructor(){super(...arguments),eo.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");ae(this,eo,"m",bS).call(this,r);const o=Xe([n]).values,a=ae(this,eo,"m",wl).call(this,o,"webhook-signature"),i=ae(this,eo,"m",wl).call(this,o,"webhook-timestamp"),c=ae(this,eo,"m",wl).call(this,o,"webhook-id"),d=parseInt(i,10);if(isNaN(d))throw new $a("Invalid webhook timestamp format");const f=Math.floor(Date.now()/1e3);if(f-d>s)throw new $a("Webhook timestamp is too old");if(d>f+s)throw new $a("Webhook timestamp is too new");const m=a.split(" ").map(S=>S.startsWith("v1,")?S.substring(3):S),g=r.startsWith("whsec_")?Buffer.from(r.replace("whsec_",""),"base64"):Buffer.from(r,"utf-8"),y=c?`${c}.${i}.${t}`:`${i}.${t}`,x=await crypto.subtle.importKey("raw",g,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(const S of m)try{const _=Buffer.from(S,"base64");if(await crypto.subtle.verify("HMAC",x,_,new TextEncoder().encode(y)))return}catch{continue}throw new $a("The given webhook signature does not match the expected signature")}}eo=new WeakSet,bS=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")},wl=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 xd,Of,_l,xS;class gt{constructor({baseURL:t=Gs("OPENAI_BASE_URL"),apiKey:n=Gs("OPENAI_API_KEY"),organization:r=Gs("OPENAI_ORG_ID")??null,project:s=Gs("OPENAI_PROJECT_ID")??null,webhookSecret:o=Gs("OPENAI_WEBHOOK_SECRET")??null,...a}={}){if(xd.add(this),_l.set(this,void 0),this.completions=new tS(this),this.chat=new xf(this),this.embeddings=new rS(this),this.files=new oS(this),this.images=new dS(this),this.audio=new yi(this),this.moderations=new hS(this),this.models=new fS(this),this.fineTuning=new wo(this),this.graders=new Af(this),this.vectorStores=new pc(this),this.webhooks=new SS(this),this.beta=new vi(this),this.batches=new Vb(this),this.uploads=new If(this),this.responses=new jf(this),this.evals=new Tf(this),this.containers=new Cf(this),n===void 0)throw new Ze("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const i={apiKey:n,organization:r,project:s,webhookSecret:o,...a,baseURL:t||"https://api.openai.com/v1"};if(!i.dangerouslyAllowBrowser&&sj())throw new Ze(`It looks like you're running in a browser-like environment.
225
+
226
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
227
+ If you understand the risks and have appropriate mitigations in place,
228
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
229
+
230
+ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
231
+
232
+ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
233
+ `);this.baseURL=i.baseURL,this.timeout=i.timeout??Of.DEFAULT_TIMEOUT,this.logger=i.logger??console;const c="warn";this.logLevel=c,this.logLevel=nm(i.logLevel,"ClientOptions.logLevel",this)??nm(Gs("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??cj(),Qe(this,_l,dj),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 Xe([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(t){return yj(t,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Qs}`}defaultIdempotencyKey(){return`stainless-node-retry-${Zv()}`}makeStatusError(t,n,r,s){return _n.generate(t,n,r,s)}buildURL(t,n,r){const s=!ae(this,xd,"m",xS).call(this)&&r||this.baseURL,o=QR(t)?new URL(t):new URL(s+(s.endsWith("/")&&t.startsWith("/")?t.slice(1):t)),a=this.defaultQuery();return ej(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 uc(this,this.makeRequest(t,n,void 0))}async makeRequest(t,n,r){var E,T;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}`,m=Date.now();if(Sn(this).debug(`[${d}] sending request`,ms({retryOfRequestLogID:r,method:s.method,url:i,options:s,headers:a.headers})),(E=s.signal)!=null&&E.aborted)throw new er;const g=new AbortController,y=await this.fetchWithTimeout(i,a,c,g).catch(ud),x=Date.now();if(y instanceof Error){const P=`retrying, ${n} attempts remaining`;if((T=s.signal)!=null&&T.aborted)throw new er;const C=cd(y)||/timed? ?out/i.test(String(y)+("cause"in y?String(y.cause):""));if(n)return Sn(this).info(`[${d}] connection ${C?"timed out":"failed"} - ${P}`),Sn(this).debug(`[${d}] connection ${C?"timed out":"failed"} (${P})`,ms({retryOfRequestLogID:r,url:i,durationMs:x-m,message:y.message})),this.retryRequest(s,n,r??d);throw Sn(this).info(`[${d}] connection ${C?"timed out":"failed"} - error; no more retries left`),Sn(this).debug(`[${d}] connection ${C?"timed out":"failed"} (error; no more retries left)`,ms({retryOfRequestLogID:r,url:i,durationMs:x-m,message:y.message})),C?new pf:new lc({cause:y})}const S=[...y.headers.entries()].filter(([P])=>P==="x-request-id").map(([P,C])=>", "+P+": "+JSON.stringify(C)).join(""),_=`[${d}${f}${S}] ${a.method} ${i} ${y.ok?"succeeded":"failed"} with status ${y.status} in ${x-m}ms`;if(!y.ok){const P=await this.shouldRetry(y);if(n&&P){const F=`retrying, ${n} attempts remaining`;return await uj(y.body),Sn(this).info(`${_} - ${F}`),Sn(this).debug(`[${d}] response error (${F})`,ms({retryOfRequestLogID:r,url:y.url,status:y.status,headers:y.headers,durationMs:x-m})),this.retryRequest(s,n,r??d,y.headers)}const C=P?"error; no more retries left":"error; not retryable";Sn(this).info(`${_} - ${C}`);const A=await y.text().catch(F=>ud(F).message),I=rj(A),L=I?void 0:A;throw Sn(this).debug(`[${d}] response error (${C})`,ms({retryOfRequestLogID:r,url:y.url,status:y.status,headers:y.headers,message:L,durationMs:Date.now()-m})),this.makeStatusError(y.status,I,L,y.headers)}return Sn(this).info(_),Sn(this).debug(`[${d}] response start`,ms({retryOfRequestLogID:r,url:y.url,status:y.status,headers:y.headers,durationMs:x-m})),{response:y,options:s,controller:g,requestLogID:d,retryOfRequestLogID:r,startTime:m}}getAPIList(t,n,r){return this.requestAPIList(n,{method:"get",path:t,...r})}requestAPIList(t,n){const r=this.makeRequest(n,null,void 0);return new Tj(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 mi(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&&nj("timeout",r.timeout),r.timeout=r.timeout??this.timeout;const{bodyHeaders:d,body:f}=this.buildBody({options:r}),m=await this.buildHeaders({options:t,method:s,bodyHeaders:d,retryCount:n});return{req:{method:s,headers:m,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&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=Xe([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))}:{},...lj(),"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=Xe([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:db(t)}:ae(this,_l,"f").call(this,{body:t,headers:r})}}Of=gt,_l=new WeakMap,xd=new WeakSet,xS=function(){return this.baseURL!=="https://api.openai.com/v1"};gt.OpenAI=Of;gt.DEFAULT_TIMEOUT=6e5;gt.OpenAIError=Ze;gt.APIError=_n;gt.APIConnectionError=lc;gt.APIConnectionTimeoutError=pf;gt.APIUserAbortError=er;gt.NotFoundError=rb;gt.ConflictError=sb;gt.RateLimitError=ab;gt.BadRequestError=eb;gt.AuthenticationError=tb;gt.InternalServerError=ib;gt.PermissionDeniedError=nb;gt.UnprocessableEntityError=ob;gt.InvalidWebhookSignatureError=$a;gt.toFile=jj;gt.Completions=tS;gt.Chat=xf;gt.Embeddings=rS;gt.Files=oS;gt.Images=dS;gt.Audio=yi;gt.Moderations=hS;gt.Models=fS;gt.FineTuning=wo;gt.Graders=Af;gt.VectorStores=pc;gt.Webhooks=SS;gt.Beta=vi;gt.Batches=Vb;gt.Uploads=If;gt.Responses=jf;gt.Evals=Tf;gt.Containers=Cf;let ol=null,mu=null;const s1=()=>{const e=yo().trim().replace(/\/+$/,"");if(e.endsWith("/openai/v1"))return e;const t="/v1";return`${e.endsWith(t)?e.slice(0,-t.length):e}/openai/v1`},o1=()=>{const e=s1();return ol?mu!==e&&(ol=new gt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),mu=e):(ol=new gt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),mu=e),ol},wS=e=>{const t=e.match(/```mermaid\s*([\s\S]*?)```/i);return t?t[1].trim():e.trim()},a1=(e,t,n)=>{const r=t.trim(),s=wS(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
234
+ ${s}
235
+ \`\`\``));return a?i:e.match(o)?e.replace(o,d=>a?d:(a=!0,`\`\`\`mermaid
236
+ ${s}
237
+ \`\`\``)):null},bm="_text",Hl=e=>!!(e&&e.role==="assistant"&&"type"in e&&e.type==="text"),Sm=(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(bm)){const o=e.slice(0,-bm.length);if(o&&n.some(a=>a.id===o))return o}return e},i1=(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},l1=e=>(e instanceof Error?e.message:String(e)).toLowerCase().includes("message not found"),c1=(e,t,n,r)=>{const s=e.find(o=>o.id===t);return Hl(s)?s:e.find(o=>Hl(o)&&(o.content===n||i1(o.content,r)))},u1=(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(`
238
+ `)},d1=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 o1().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:u1(e,n)}],temperature:0})).choices)==null?void 0:i[0])==null?void 0:c.message)==null?void 0:d.content)??"";return wS(a)},f1=(e,t)=>{const n=wT(),r=_T(),s=(r==null?void 0:r.model)??n;return b.useCallback(async(o,a)=>{const i=ne.getState(),c=t??i.currentSessionId,d=i.chats.find(T=>T.id===c);if(!c||!d)throw new Error("No active chat available");const f=d.messages.find(T=>T.id===e);if(!Hl(f))throw new Error("Mermaid fix is only available for assistant text messages");const m=await d1(o,s,a);if(!m)throw new Error("AI did not return a Mermaid fix");const g=a1(f.content,o,m);if(!g)throw new Error("Unable to locate Mermaid block to update");let y=Sm(e,f,d.messages);try{await oo.patchSessionMessage(c,y,{content:g})}catch(T){if(!l1(T))throw T;await i.loadChatHistory(c,{mode:"replace",retries:2,retryDelayMs:150,waitForAssistant:!0});const C=ne.getState().chats.find(I=>I.id===c);if(!C)throw T;const A=c1(C.messages,e,f.content,o);if(!A)throw T;y=Sm(A.id,A,C.messages),await oo.patchSessionMessage(c,y,{content:g})}const x=ne.getState(),S=x.chats.find(T=>T.id===c);if(!S)throw new Error("No active chat available");const _=new Set([e,y]),E=S.messages.map(T=>!_.has(T.id)||!Hl(T)?T:{...T,content:g});x.updateSession(c,{messages:E})},[e,t,s])},h1=e=>e.xs?"100%":e.sm?"95%":"800px",p1=[{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:"}],m1=({messageId:e,isVisible:t,onRetryWithVariation:n})=>{const{t:r}=Ge(),[s,o]=b.useState(null),[a,i]=b.useState(!1),c=b.useCallback(()=>{o(y=>y==="like"?null:"like"),i(!1)},[]),d=b.useCallback(()=>{o(y=>{const x=y==="dislike"?null:"dislike";return i(x==="dislike"),x})},[]),f=b.useCallback(y=>{n&&n(y.prefix)},[n]),g=["lotus-msg-feedback",t?"is-visible":"",s!==null?"has-rating":""].filter(Boolean).join(" ");return l.jsxs("div",{className:g,"data-message-id":e,children:[l.jsx(wn,{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(Jx,{}):l.jsx(Qx,{})})}),l.jsx(wn,{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(Zx,{}):l.jsx(ew,{})})}),a&&n&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"lotus-msg-feedback-sep"}),l.jsx("span",{className:"lotus-msg-feedback-retry",children:p1.map(y=>l.jsx(Je,{color:y.color,bordered:!1,className:"lotus-msg-feedback-retry-tag",onClick:()=>f(y),children:r(y.labelKey,y.fallbackLabel)},y.key))})]})]})},{useToken:g1}=dt,{useBreakpoint:y1}=Vl,v1="chat-send-message",b1=({sessionId:e,message:t,onDelete:n,messageType:r})=>{const{role:s,id:o}=t,{token:a}=g1(),i=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:c}=Ge(),{message:d}=Dn.useApp(),f=y1(),m=ne(ue=>ue.updateSession),g=ne(ue=>ue.loadChatHistory),y=ne(ue=>ue.refreshChats),x=b.useRef(null),[S,_]=b.useState(!1),E=ne(fi(e)),T=b.useCallback(ue=>typeof window>"u"?Promise.reject(new Error("window is unavailable")):new Promise((me,ke)=>{const De={content:ue,sessionId:e,handled:!1,resolve:me,reject:ke};window.dispatchEvent(new CustomEvent(v1,{detail:De})),De.handled||ke(new Error("No chat message dispatcher available"))}),[e]),P=b.useMemo(()=>{if(!t.createdAt)return null;const ue=new Date(t.createdAt);if(Number.isNaN(ue.getTime()))return null;try{return yM(ue,"MMM d, yyyy HH:mm")}catch{return ue.toLocaleString()}},[t.createdAt]),C=b.useMemo(()=>UR(t,r),[t,r]),A=b.useMemo(()=>qR(t,C),[t,C]),I=b.useMemo(()=>HR(t,C),[t,C]),L=b.useMemo(()=>Jv(t),[t]),$=f1(o,e),F=b.useCallback(async ue=>{var me;if(!e||!o){d.warning(c("chat.messageActions.cannotRestore"));return}try{const ke=await oo.restoreSessionState(e,{target_message_id:o,restore_files:ue});await g(e,{mode:"replace"}),await y();const De=((me=ke.file_errors)==null?void 0:me.length)??0;if(De>0){d.warning(c("chat.messageActions.restorePartial",{count:De}));return}ue?d.success(c("chat.messageActions.restoreFilesSuccess",{count:ke.messages_removed})):d.success(c("chat.messageActions.restoreSuccess",{count:ke.messages_removed}))}catch(ke){const De=ke instanceof Error?ke.message:c("chat.messageActions.restoreFailed");d.error(De)}},[d,e,g,o,y,c]),te=b.useCallback(()=>{F(!1)},[F]),N=b.useCallback(()=>{F(!0)},[F]),{contextMenuItems:O,handleMouseUp:Q,copyToClipboard:W,referenceMessage:z}=VR({messageText:L,messageId:o,currentSessionId:e,onDelete:n,onRestoreChat:te,onRestoreFilesAndChat:N,cardRef:x}),pe=b.useMemo(()=>s==="user"&&L.startsWith("/"),[s,L]),Z=b.useMemo(()=>Hv(void 0,{onFixMermaid:$}),[$]),ce=b.useMemo(()=>[Rd,jd],[]),ve=b.useMemo(()=>[Ad],[]),G=b.useMemo(()=>[CM(()=>W(L),c("chat.actions.copyMessage")),kM(z,c("chat.actions.referenceMessage"))],[L,W,z,c]),{handleExecutePlan:he,handleRefinePlan:_e,handleQuestionAnswer:ie}=GR({currentSessionId:e,updateSession:m,sendMessage:T});return C==="plan"&&A&&s==="assistant"?l.jsx(Cv,{plan:A,contextId:e||"",onExecute:he,onRefine:_e,timestamp:P??void 0}):C==="question"&&I&&s==="assistant"?l.jsx(kv,{question:I,contextId:e||"",onAnswer:ie,disabled:E||!1,timestamp:P??void 0}):MM(t)?l.jsx(DM,{taskList:t.taskList}):EM(t)?(Re("[MessageCard]","[MessageCard] Rendering FileReferenceCard for message:",t.id,"paths:",t.paths),l.jsx(Pe,{justify:"flex-end",style:{width:"100%"},children:l.jsx(Tv,{paths:t.paths,displayText:t.displayText,timestamp:P??void 0})})):l.jsxs(Pe,{vertical:!0,onContextMenu:ue=>Q(ue),style:{width:"100%"},children:[l.jsx(uo,{menu:{items:O},trigger:["contextMenu"],children:l.jsx(sn,{"data-testid":s==="assistant"?"assistant-message":"user-message",id:o?`message-${o}`:void 0,ref:x,style:{width:"100%",minWidth:"100%",maxWidth:h1(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:S?"var(--lotus-card-hover-shadow)":"var(--lotus-shadow-soft)",position:"relative",wordWrap:"break-word",overflowWrap:"break-word",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:S?"translateY(-2px) scale(1.002)":"none",overflow:"hidden"},styles:{body:{padding:a.paddingMD}},onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1),children:l.jsxs(Ye,{direction:"vertical",size:a.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(BR,{role:s,formattedTimestamp:P,token:a}),t.role==="user"&&t.images&&l.jsx(SM,{images:t.images}),l.jsx(Pe,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:l.jsx(zR,{sessionId:e,message:t,messageText:L,isUserToolCall:pe,formatUserToolCall:YR,markdownComponents:Z,markdownPlugins:ce,rehypePlugins:ve})}),l.jsx(_M,{isVisible:S,position:{bottom:a.paddingXS,right:a.paddingXS},buttons:G})]})})}),s==="assistant"&&C==="text"&&o&&l.jsx(m1,{messageId:o,isVisible:S})]})},_S=b.memo(b1,(e,t)=>e.message===t.message&&e.messageType===t.messageType&&e.onDelete===t.onDelete);_S.displayName="MessageCard";const S1=({key:e,atomFamily:t,store:n,emptyState:r})=>{const s=b.useMemo(()=>e?t(e):null,[t,e]),[o,a]=b.useState(()=>Il(n,t,e,r));return b.useEffect(()=>{if(a(Il(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},x1=e=>{const t=nr(e);return S1({key:t,atomFamily:bo,store:vo,emptyState:Zl})},{Text:Ja}=ht,{useToken:w1}=dt,qa=8,gu=4,_1=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"]),C1=(e,t)=>l.jsx(sn,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto",marginBottom:qa,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})})}),k1=e=>({p:({children:t})=>l.jsx(Ja,{style:{marginBottom:qa,display:"block"},children:t}),ol:({children:t})=>l.jsx("ol",{style:{marginBottom:qa,paddingLeft:20},children:t}),ul:({children:t})=>l.jsx("ul",{style:{marginBottom:qa,paddingLeft:20},children:t}),li:({children:t})=>l.jsx("li",{style:{marginBottom:gu},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(Ja,{code:!0,className:t,...s,children:n});if(!c.trim())return null;const d=a.toLowerCase();return _1.has(d)?C1(c,e):Uv(a,c,void 0,void 0)},pre:({children:t})=>l.jsx(l.Fragment,{children:t}),blockquote:({children:t})=>l.jsx(sn,{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:`${gu}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(),qv(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(sn,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${qa}px 0`},children:l.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:"1px solid var(--ant-color-border, #d9d9d9)"},children:t})}),thead:({children:t})=>l.jsx("thead",{style:{backgroundColor:"var(--ant-color-bg-container, #ffffff)"},children:t}),tbody:({children:t})=>l.jsx("tbody",{children:t}),tr:({children:t})=>l.jsx("tr",{style:{borderBottom:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),th:({children:t})=>l.jsx("th",{style:{padding:"4px 8px",textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),td:({children:t})=>l.jsx("td",{style:{padding:"4px 8px",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),input:({type:t,checked:n,disabled:r})=>t==="checkbox"?l.jsx("input",{type:"checkbox",checked:n,disabled:r,style:{marginRight:gu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:t,checked:n,disabled:r})}),CS=b.memo(({sessionId:e})=>{const{token:t}=w1(),n=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:r}=Ge(),s=`streaming-status-${e}`,o=x1(e),a=o.content,i=o.reasoningContent,[c,d]=b.useState(()=>Ut.getLatest(s)??"");b.useEffect(()=>{let x=null,S=null;const _=Ut.subscribeMessage(s,E=>{S=E,x===null&&(x=requestAnimationFrame(()=>{d(S??""),x=null}))});return()=>{_(),x!==null&&cancelAnimationFrame(x)}},[s]);const f=b.useMemo(()=>{const x=c.trim().toLowerCase();if(!x)return r("chat.messageCard.assistantThinking");if(x==="context_compacting")return r("chat.messageCard.assistantCompactingContext");if(x==="context_compaction_degraded")return r("chat.messageCard.assistantCompactingContextDegraded");if(x==="context_compaction_failed")return r("chat.messageCard.assistantCompactingContextFailed");if(x==="memory_updating")return r("chat.messageCard.assistantUpdatingMemory");if(x.startsWith("tool_running:")){const _=(x.slice(13).trim()||"tool").replace(/[_-]+/g," ");return r("chat.messageCard.assistantRunningTool",{tool:_})}return r("chat.messageCard.assistantThinking")},[c,r]),m=b.useMemo(()=>[Rd,jd],[]),g=b.useMemo(()=>[Ad],[]),y=b.useMemo(()=>k1(t),[t]);return l.jsx(sn,{"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(Ye,{direction:"vertical",size:t.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(Pe,{align:"baseline",justify:"space-between",gap:t.marginXS,children:l.jsx(Ja,{type:"secondary",strong:!0,style:{fontSize:t.fontSizeSM},children:r("chat.streaming.assistant")})}),l.jsxs(Pe,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:[i?l.jsx(go,{size:"small",defaultActiveKey:["reasoning"],style:{marginBottom:t.marginSM,background:t.colorBgContainer,borderColor:t.colorBorderSecondary},items:[{key:"reasoning",label:l.jsx(Ja,{strong:!0,children:r("chat.messageCard.reasoning")}),children:l.jsx(Cr,{remarkPlugins:m,rehypePlugins:g,components:y,children:i})}]}):null,!a||c?l.jsx(Ja,{italic:!0,className:"thinking-shimmer",children:f}):null,a?l.jsx(Cr,{remarkPlugins:m,rehypePlugins:g,components:y,children:a}):null,l.jsx("span",{className:"blinking-cursor",style:{display:"inline-block",marginLeft:"0.2em",color:t.colorText}})]})]})})});CS.displayName="StreamingMessageCard";const{Text:al}=ht,T1="chat-session-tool-collapse:",kS=(e,t)=>`${T1}${e}:${t}`,xm=(e,t)=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(kS(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}},P1=async(e,t,n)=>{if(typeof window>"u")return;await Hn.getInstance().saveToolSessionCollapse(e,t,n);try{window.localStorage.setItem(kS(e,t),JSON.stringify(n))}catch{}},E1="synthetic-tool-call:",M1=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(E1)&&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)},A1=e=>{const t=new Set;return e.forEach(n=>{M1(n).forEach(r=>t.add(r))}),Array.from(t)},R1=({tools:e,sessionId:t,defaultExpanded:n=!1,autoCollapseWhenStale:r=!1,onDeleteMessageIds:s})=>{const{t:o}=Ge(),{token:a}=dt.useToken(),i=b.useMemo(()=>{var L,$,F,te;const C=e[0],A=($=(L=C==null?void 0:C.call)==null?void 0:L.toolCalls)==null?void 0:$[0];return`${(C==null?void 0:C.callMessageId)||((F=C==null?void 0:C.call)==null?void 0:F.id)||(C==null?void 0:C.resultMessageId)||((te=C==null?void 0:C.result)==null?void 0:te.id)||"tool-message-missing"}:${(A==null?void 0:A.toolCallId)||"tool-call-missing"}`},[e]),[c,d]=b.useState(()=>{const C=xm(t,i);return C?C.isExpanded:n});b.useEffect(()=>{const C=xm(t,i);d(C?C.isExpanded:n),Hn.getInstance().loadToolSessionCollapse(t,i).then(I=>{I&&d(I.isExpanded)}).catch(()=>{})},[n,t,i]),b.useEffect(()=>{P1(t,i,{isExpanded:c,expandedTools:[]}).catch(()=>{})},[t,i,c]);const f=b.useRef(r);b.useEffect(()=>{!f.current&&r&&d(!1),f.current=r},[r]);const{completedCount:m,pendingCount:g,hasErrors:y}=b.useMemo(()=>{let C=0,A=0,I=!1;return e.forEach(L=>{L.result?(C++,L.result.isError&&(I=!0)):A++}),{completedCount:C,pendingCount:A,hasErrors:I}},[e]),x=b.useMemo(()=>g>0?{color:"processing",text:o("components.toolSession.completedProgress",{completed:m,total:e.length})}:y?{color:"warning",text:o("components.toolSession.completedWithErrors",{completed:m})}:{color:"success",text:o("components.toolSession.completedOnly",{completed:m})},[m,g,y,e.length,o]),S=b.useMemo(()=>{let C=0,A=0,I=0;return e.forEach(L=>{var te,N;const $=(N=(te=L.result)==null?void 0:te.result)==null?void 0:N.result;if(!$)return;const F=af($);F&&(C+=F.added,A+=F.removed,I+=1)}),{added:C,removed:A,changedTools:I}},[e]),_=b.useMemo(()=>{const C=e.map(L=>{var te,N;const $=(N=(te=L.call)==null?void 0:te.toolCalls)==null?void 0:N[0];if(!$)return null;const F=So($.toolName);return F?F.toolName:$.toolName||null}).filter(L=>!!L);if(C.length===0)return o("components.toolSession.title");if(C.length===1)return C[0];const A=C.filter((L,$)=>$===0||L!==C[$-1]),I=3;return A.length<=I?A.join(" → "):`${A.slice(0,I).join(" → ")} +${A.length-I}`},[e,o]),E=b.useMemo(()=>A1(e),[e]),T=l.jsx(ff,{sessionId:t,tools:e,defaultExpanded:!0,hideHeader:!0}),P={background:"transparent"};return l.jsxs("div",{style:P,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(Ld,{style:{color:a.colorPrimary}}),l.jsx(al,{strong:!0,style:{flex:1},children:_}),l.jsx(tw,{count:e.length,style:{backgroundColor:a.colorPrimary}}),S.changedTools>0&&l.jsxs(Ye,{size:4,style:{marginInlineStart:a.marginXS},children:[l.jsxs(al,{style:{color:a.colorSuccess,fontSize:a.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",S.added]}),l.jsxs(al,{style:{color:a.colorError,fontSize:a.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",S.removed]})]}),l.jsx(al,{type:"secondary",style:{fontSize:a.fontSizeSM},children:x.text}),s&&l.jsx(wn,{title:E.length>0?o("components.toolSession.deleteMessage"):o("components.toolSession.noPersistedMessage"),children:l.jsx(je,{type:"text",size:"small",danger:!0,icon:l.jsx(Xl,{}),"aria-label":o("components.toolSession.deleteMessage"),"data-testid":"delete-tool-session",disabled:E.length===0,onClick:C=>{C.preventDefault(),C.stopPropagation(),E.length!==0&&s(E)}})}),l.jsx("div",{style:{marginLeft:a.marginXS},children:c?l.jsx(Ms,{style:{color:a.colorTextSecondary}}):l.jsx(Zr,{style:{color:a.colorTextSecondary}})})]}),c&&T]})},TS=b.memo(R1);TS.displayName="ToolSessionCard";const{Content:j1}=to,{Text:wm}=ht,_m=120,I1=140,O1=220,$1=140,L1=72,Cm=68,D1=84,F1=720,N1=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};function km(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:e.message.id}function z1(e,t){const n=e[t];if(!n)return _m;if("type"in n){if(n.type==="compression_divider")return L1;if(n.type==="tool_session"){if(!(t===e.length-1))return Cm;const o=Cm+Math.min(n.tools.length,8)*D1;return Math.min(F1,o)}}const r="message"in n?n.message:void 0;return r?r.role==="system"?$1:r.role==="user"?I1:O1:_m}const B1=({currentChat:e,currentSessionId:t,convertRenderableEntry:n,handleDeleteMessage:r,handleDeleteToolMessages:s,handleMessagesScroll:o,hasSystemPrompt:a,messagesListRef:i,bottomAnchorRef:c,renderableMessages:d,rowGap:f,showMessagesView:m,screens:g,workflowDraftId:y,isThinking:x,padding:S,selectionMode:_,selectedMessageIds:E,selectableMessageIds:T,onToggleMessageSelection:P})=>{const{t:C}=Ge(),A=b.useRef(d);A.current=d;const I=b.useCallback(Q=>{const W=A.current[Q];return W?km(W):String(Q)},[]),L=b.useCallback(Q=>z1(A.current,Q),[]),$=rE({count:d.length,getScrollElement:()=>i.current,estimateSize:L,overscan:5,gap:f,getItemKey:I}),F=(Q,W)=>{if(!_)return null;const z=T.has(Q);return l.jsx(nw,{checked:E.has(Q),disabled:!z,onChange:()=>{z&&P(Q)},style:{marginTop:8,marginLeft:W==="flex-end"?8:0,marginRight:W==="flex-start"?8:0}})},te=(Q,W)=>{const z=n(Q),pe=W===void 0||W===d.length-1;if(z.type==="compression_divider"){const Z=N1(z.createdAt);return l.jsx("div",{role:"note","aria-label":C("chat.compression.timelineAria",{detail:z.label,time:Z,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:g.xs?"8px 10px":"10px 12px"},children:l.jsxs(Pe,{align:"center",justify:"space-between",gap:8,wrap:!0,children:[l.jsxs(Pe,{align:"center",gap:8,wrap:!0,children:[l.jsx(Je,{color:"gold",icon:l.jsx(ry,{}),children:C("chat.compression.tag","Context compressed")}),l.jsx(wm,{strong:!0,style:{fontSize:12},children:z.label})]}),l.jsx(wm,{type:"secondary",style:{fontSize:11},children:Z})]})})}return z.type==="tool_session"?l.jsx(Pe,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{id:`message-${z.id}`,style:{width:"100%",maxWidth:g.xs?"100%":"90%"},children:l.jsx(TS,{tools:z.tools,sessionId:z.sessionId,createdAt:z.createdAt,defaultExpanded:pe,autoCollapseWhenStale:!pe,onDeleteMessageIds:t?s:void 0})})}):z.message.role==="system"?l.jsxs(Pe,{align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[F(z.message.id,"flex-start"),l.jsx("div",{style:{flex:1,minWidth:0},children:l.jsx(vv,{currentChat:e,message:z.message})})]}):l.jsxs(Pe,{justify:z.align,align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[z.align==="flex-start"&&F(z.message.id,z.align),l.jsx("div",{style:{width:z.message.role==="user"?"85%":"100%",maxWidth:g.xs?"100%":"90%"},children:l.jsx(_S,{sessionId:t,message:z.message,messageType:z.messageType,onDelete:z.message.id===y?void 0:r})}),z.align==="flex-end"&&F(z.message.id,z.align)]})},N=(m||a)&&d.length>0,O=$.getVirtualItems();return l.jsx(j1,{role:"log","aria-live":"polite","aria-label":C("chat.view.chatMessagesAria"),className:`chat-view-messages-list ${m?"visible":"hidden"}`,style:{flex:1,minHeight:0,padding:S,overflowY:"auto",opacity:m?1:0,scrollbarWidth:"none",msOverflowStyle:"none"},ref:i,onScroll:o,children:l.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:f,width:"100%",minHeight:"100%"},children:[N&&l.jsx("div",{style:{position:"relative",width:"100%",height:$.getTotalSize()},children:O.map(Q=>{const W=d[Q.index];if(!W)return null;const z=km(W);return l.jsx("div",{"data-chat-entry-id":z,"data-index":Q.index,ref:$.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${Q.start}px)`},children:l.jsx("div",{className:"messageEnter",children:te(W,Q.index)})},Q.key)})}),x&&t&&l.jsx("div",{className:"streaming-card-enter",children:l.jsx(Pe,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{style:{width:"100%",maxWidth:g.xs?"100%":"90%"},children:l.jsx(CS,{sessionId:t})})})}),l.jsx("div",{ref:c,"data-chat-bottom-anchor":"true","aria-hidden":"true",style:{width:"100%",height:1,flexShrink:0}})]})})},W1={green:{backgroundColor:"rgba(82, 196, 26, 0.12)",borderColor:"rgba(82, 196, 26, 0.28)",color:"#389e0d"},blue:{backgroundColor:"rgba(22, 119, 255, 0.12)",borderColor:"rgba(22, 119, 255, 0.28)",color:"#1677ff"},purple:{backgroundColor:"rgba(114, 46, 209, 0.12)",borderColor:"rgba(114, 46, 209, 0.28)",color:"#722ed1"}},U1=({label:e,tone:t})=>{const n=W1[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})},q1=({usage:e,showDetails:t=!0,size:n="small",className:r=""})=>{const{t:s}=Ge(),o=gy(e),a=yy(e),i=x_(e),c=e.promptCachedToolOutputs??0,d=e.promptCachedToolTokensSaved??0,f=e.thinkingTokens??0,m=e.cacheReadInputTokens??0,g=c>0||d>0,y=f>0||m>0,x=P=>{const C=Math.round(P*10)/10;return Number.isInteger(C)?C.toFixed(0):C.toFixed(1)},S=()=>a>=90?"var(--lotus-chart-danger)":a>=70?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",_=[];d>0&&_.push({key:"prompt-saved",label:s("components.tokenUsage.promptSavedBadge",{value:Wc(d)}),tone:"green"}),m>0&&_.push({key:"cache-read",label:s("components.tokenUsage.cacheReadBadge",{value:Wc(m)}),tone:"blue"}),f>0&&_.push({key:"thinking",label:s("components.tokenUsage.thinkingBadge",{value:Wc(f)}),tone:"purple"});const E={marginTop:8,marginBottom:4,fontSize:11,fontWeight:700,color:"var(--lotus-metric-text-muted)"},T=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"),": ",zr(e.totalTokens)," /"," ",zr(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:E,children:s("components.tokenUsage.contextPrepared")}),l.jsxs("div",{children:[s("components.tokenUsage.system"),": ",zr(e.systemTokens)]}),e.summaryTokens>0&&l.jsxs("div",{children:[s("components.tokenUsage.summary"),": ",zr(e.summaryTokens)]}),l.jsxs("div",{children:[s("components.tokenUsage.messages"),": ",zr(e.windowTokens)]}),g?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:E,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"),":"," ",zr(d)]})]}):null,y?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:E,children:s("components.tokenUsage.providerResult")}),m>0&&l.jsxs("div",{children:[s("components.tokenUsage.cacheRead"),": ",zr(m)]}),f>0&&l.jsxs("div",{children:[s("components.tokenUsage.thinking"),": ",zr(f)]})]}):null]})]});return l.jsx(wn,{title:T,placement:"top",arrow:!0,children:l.jsxs(Ye,{className:`token-usage-display ${r}`,size:4,align:"center",style:{lineHeight:1},children:[l.jsx(ny,{type:"line",percent:Math.min(a,100),size:{height:n==="small"?6:8,width:80},strokeColor:S(),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:[x(a),"%"]}),_.map(P=>l.jsx(U1,{label:P.label,tone:P.tone},P.key))]})})},wd="chat_scroll_anchors_v1",PS="chat_scroll_anchor_v2:";function ES(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 H1(){try{const e=localStorage.getItem(wd);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object")return{};const n={};for(const[r,s]of Object.entries(t))ES(s)&&(n[r]=s);return n}catch{return{}}}function Y1(e){const t=H1(),n=t[e];if(!n)return null;Hn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),delete t[e];const s=Object.keys(t).length;try{s===0?localStorage.removeItem(wd):localStorage.setItem(wd,JSON.stringify(t))}catch{}return n}async function X1(e){if(typeof window>"u")return null;try{const n=await Hn.getInstance().loadScrollAnchor(e);if(n)return n}catch{}try{const t=localStorage.getItem(`${PS}${e}`);if(t){const n=JSON.parse(t);if(ES(n))return Hn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),n}}catch{}return Y1(e)}async function K1(e,t){if(!(typeof window>"u")){try{await Hn.getInstance().saveScrollAnchor(e,t)}catch(n){console.warn("[ScrollAnchor] IndexedDB save failed:",n)}try{localStorage.setItem(`${PS}${e}`,JSON.stringify(t))}catch{}}}const yu=1,V1=3,G1=2e3;function J1(e,t){const n=Math.max(0,e.scrollHeight-e.clientHeight);return Math.min(Math.max(0,t),n)}function Q1(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 m=n();if(!m){requestAnimationFrame(f);return}const g=t.getBoundingClientRect(),x=m.getBoundingClientRect().top-g.top,S=J1(t,t.scrollTop+(x-r));if(Math.abs(t.scrollTop-S)>yu)t.scrollTop=S,i=0;else{const E=Number.isFinite(d)?Math.abs(S-d)<=yu:!1,T=Math.abs(t.scrollTop-c)<=yu;i=E&&T?i+1:0}d=S,c=t.scrollTop;const _=performance.now()-a>G1;if(i>=V1||_){o();return}requestAnimationFrame(f)};requestAnimationFrame(f)})}const Z1=300,eI=.5;function tI(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 MS(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 Tm(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function nI(e,t){const n=Tm(e.createdAt);if(n!=null){let r=null,s=Number.POSITIVE_INFINITY;for(let o=0;o<t.length;o++){const a=Tm(MS(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 $f(e){return Array.from(e.querySelectorAll("[data-chat-entry-id]"))}function rI(e,t){const n=$f(e);for(const r of n)if(r.dataset.chatEntryId===t)return r;return null}function sI(e,t){const n=$f(e);if(n.length===0)return null;const r=Math.max(0,Math.min(n.length-1,t));return n[r]??null}function oI(e){const t=$f(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 aI(e){const{currentSessionId:t,messagesListRef:n,renderableMessages:r}=e,s=b.useRef(new Set),o=b.useRef(!1),a=b.useRef(0),i=b.useRef(null),c=b.useRef(null),d=b.useRef(!1);b.useEffect(()=>{const x=n.current;if(!x)return;const S=()=>{d.current=!0};return x.addEventListener("wheel",S,{passive:!0}),x.addEventListener("touchmove",S,{passive:!0}),x.addEventListener("pointerdown",S),()=>{x.removeEventListener("wheel",S),x.removeEventListener("touchmove",S),x.removeEventListener("pointerdown",S)}},[n]);const f=b.useMemo(()=>{const x=new Map;for(let S=0;S<r.length;S++){const _=tI(r[S]);_&&x.set(_,S)}return x},[r]),m=b.useCallback(()=>{const x=n.current;if(!x||r.length===0)return null;const S=oI(x);if(!S)return null;const _=S.dataset.chatEntryId;if(!_)return null;const E=x.getBoundingClientRect(),T=S.getBoundingClientRect(),P=f.get(_),C=typeof P=="number"?r[P]:void 0;return{v:1,anchorId:_,offsetPx:T.top-E.top,ts:Date.now(),indexHint:P,createdAt:C?MS(C):void 0}},[f,n,r]),g=b.useCallback(async x=>{if(o.current)return;const S=m();if(!S)return;const _=c.current;_&&_.anchorId===S.anchorId&&Math.abs(_.offsetPx-S.offsetPx)<=eI||(await K1(x,S),c.current=S)},[m]),y=b.useCallback(x=>{if(!t||o.current)return;i.current&&clearTimeout(i.current);const S=t;i.current=setTimeout(()=>{g(S).catch(()=>{})},Z1)},[t,g]);return b.useEffect(()=>{const x=t;return()=>{x&&(i.current&&(clearTimeout(i.current),i.current=null),g(x).catch(()=>{}))}},[t,g]),b.useLayoutEffect(()=>{if(!t)return;const x=n.current;if(!x||r.length===0||s.current.has(t))return;let S=!1;return X1(t).then(_=>{if(S||!_){S||s.current.add(t);return}const E=f.get(_.anchorId),T=typeof E=="number"?E:nI(_,r);if(T==null){s.current.add(t);return}i.current&&(clearTimeout(i.current),i.current=null);const P=++a.current;o.current=!0,d.current=!1,x.style.overflowAnchor="none";const C=()=>a.current!==P||d.current;Q1({scrollEl:x,getAnchorElement:()=>rI(x,_.anchorId)??sI(x,T),offsetPx:_.offsetPx,isCancelled:C}).finally(()=>{a.current===P&&(o.current=!1,s.current.add(t),x.style.overflowAnchor="",g(t).catch(()=>{}))})}),()=>{S=!0}},[t,f,r,r.length,n,g]),{handleScroll:y}}const Pm=2,Em=6,vu=150,iI="streaming-",lI="streaming-reasoning-",cI="streaming-status-",uI=e=>e.startsWith(iI)&&!e.startsWith(lI)&&!e.startsWith(cI),dI=({currentSessionId:e,isThinking:t,messagesListRef:n,bottomAnchorRef:r,renderableMessages:s})=>{const[o,a]=b.useState(!1),[i,c]=b.useState(!1),[d,f]=b.useState(!1),[m,g]=b.useState(0),y=b.useRef(!1),x=b.useRef(!1),S=b.useRef(!0),_=b.useRef(s.length),E=b.useRef(new Set),T=b.useRef(0),{handleScroll:P}=aI({currentSessionId:e,messagesListRef:n,renderableMessages:s}),C=b.useCallback(()=>{E.current.clear(),f(!1),g(0)},[]),A=b.useCallback(O=>{if(O<=0)return 0;const Q=E.current;if(Q.size===0)return O;let W=O;for(const z of Array.from(Q)){if(W<=0)break;Q.delete(z),W-=1}return W},[]),I=b.useCallback(()=>{const O=n.current;if(!O||s.length===0)return a(!1),c(!1),C(),null;const Q=Math.max(0,O.scrollHeight-O.scrollTop-O.clientHeight),W=Q<=vu,z=O.scrollTop<=vu;return a(!W),c(!z&&s.length>3),W&&(x.current=!0,C()),{atBottom:W,distanceFromBottom:Q}},[C,n,s.length]),L=b.useCallback(O=>{const Q=I();Q&&(Q.distanceFromBottom>vu?(y.current=!0,x.current=!1):Q.atBottom&&(y.current=!1,x.current=!0,C()),P(O))},[C,I,P]),$=b.useCallback(O=>{cancelAnimationFrame(T.current);const Q=n.current,W=r.current;if(!Q||!W||s.length===0)return;const z=(O==null?void 0:O.behavior)??"smooth";let pe=0,Z=Number.NaN;const ce=()=>{T.current=0,y.current=!1,x.current=!0,C(),I()},ve=()=>{const G=n.current,he=r.current;if(!G||!he)return;const _e=Math.max(0,G.scrollHeight-G.scrollTop-G.clientHeight),ie=he.getBoundingClientRect(),ue=G.getBoundingClientRect(),me=ie.top-ue.top,ke=!Number.isFinite(Z)||Math.abs(me-Z)>.5,De=_e>Pm||ke||pe===0;if(De&&he.scrollIntoView({block:"end",behavior:pe===0?z:"auto"}),Z=me,pe+=1,pe<Em&&De){T.current=requestAnimationFrame(ve);return}ce()};T.current=requestAnimationFrame(ve)},[r,C,n,I,s.length]),F=b.useCallback(()=>{if(!n.current)return;let Q=0;const W=()=>{I()},z=()=>{const pe=n.current;if(!pe)return;const Z=pe.scrollTop>Pm||Q===0;if(Z&&pe.scrollTo({top:0,behavior:"auto"}),Q+=1,Q<Em&&Z){requestAnimationFrame(z);return}W()};requestAnimationFrame(z)},[n,I]),te=b.useCallback(()=>{y.current=!1,x.current=!0,C()},[C]);b.useEffect(()=>{const O=Q=>{var _e,ie;const z=(_e=Q.detail)==null?void 0:_e.messageId;if(!z){console.error("No messageId provided for navigation");return}const pe=s.findIndex(ue=>"message"in ue&&ue.message?ue.message.id===z:"id"in ue?ue.id===z:!1);if(pe===-1){console.warn("Message not found for navigation:",z);return}const Z=s[pe],ce=Z&&"message"in Z?Z.message.id:Z&&"id"in Z?Z.id:z,ve=document.getElementById(`message-${ce}`),G=Array.from(((ie=n.current)==null?void 0:ie.querySelectorAll("[data-chat-entry-id]"))||[]),he=ve||G.find(ue=>ue.dataset.chatEntryId===ce);if(!he){console.warn("Message element not found for navigation:",z);return}he.scrollIntoView({behavior:"smooth",block:"center"}),he.classList.add("highlight-message"),setTimeout(()=>{he.classList.remove("highlight-message")},2e3)};return window.addEventListener("navigate-to-message",O),()=>{window.removeEventListener("navigate-to-message",O)}},[n,s]);const N=b.useRef(t);return b.useEffect(()=>{!N.current&&t&&(te(),$()),N.current=t},[t,te,$]),b.useEffect(()=>Ut.subscribe(O=>{var Q;if(O.sessionId===e){if(y.current){(((Q=O.content)==null?void 0:Q.trim())??"")&&uI(O.messageId)&&(E.current.has(O.messageId)||(E.current.add(O.messageId),g(z=>z+1)),f(!0)),I();return}if(!O.content){I();return}$()}}),[e,I,$]),b.useEffect(()=>{const O=s.length,Q=_.current,W=O>Q;if(O===0){C(),I(),_.current=O;return}if(S.current){I(),S.current=!1,_.current=O;return}if(W&&y.current){const z=A(O-Q);f(!0),z>0&&g(pe=>pe+z)}!y.current&&W?$():I(),_.current=O},[C,A,I,s.length,$]),b.useEffect(()=>{const O=n.current;if(!O||typeof ResizeObserver>"u")return;let Q=0,W=!1;const z=()=>{cancelAnimationFrame(Q);const ve=x.current;Q=requestAnimationFrame(()=>{if(W&&ve&&!y.current){$({behavior:"auto"});return}I()})},pe=new ResizeObserver(()=>{W=!0,z()});pe.observe(O);const Z=O.firstElementChild;Z instanceof HTMLElement&&pe.observe(Z);const ce=r.current;return ce instanceof HTMLElement&&pe.observe(ce),z(),()=>{cancelAnimationFrame(Q),pe.disconnect()}},[r,e,n,I,s.length,$]),b.useEffect(()=>{if(!n.current||s.length===0){I();return}I();let Q=0;const W=requestAnimationFrame(()=>{I(),Q=requestAnimationFrame(()=>{I()})});return()=>{cancelAnimationFrame(W),cancelAnimationFrame(Q)}},[n,s.length,e,I]),b.useEffect(()=>{S.current=!0,y.current=!1,x.current=!1,_.current=0,C()},[C,e]),{handleMessagesScroll:L,hasUnreadActivity:d,resetUserScroll:te,scrollToBottom:$,scrollToTop:F,showScrollToBottom:o,showScrollToTop:i,unreadCount:m}};function fI(e){return"type"in e&&e.type==="tool_session"}function hI(e){return"type"in e&&e.type==="compression_divider"}const Mm=e=>{const t=Date.parse(e||"");return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER},pI=e=>"type"in e?e.createdAt:e.message.createdAt,mI=e=>!("type"in e)&&e.message.role==="system";function gI(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_call"}function yI(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_result"}const Am=e=>(e??"").trim().toLowerCase()==="conclusion",vI=e=>{const t=(e??"").trim().toLowerCase();return t==="conclusion_with_options"||t==="exitplanmode"||t==="request_permissions"},bI=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"},SI=(e,t)=>{var n;return e.call.id||e.callMessageId||e.resultMessageId||((n=e.result)==null?void 0:n.id)||`tool-message-missing-${t}`},xI=(e,t)=>`tool-session-${SI(e,t)}:${bI(e)}`;function wI(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(gI(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(Am(c.toolName)){r.add(f);return}if(vI(c.toolName)){r.add(f);const x={...a,id:`${a.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]};t.push(x);return}const g={call:{...a,id:`${a.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]},callMessageId:a.id};s(f,g);const y=t[t.length-1];Array.isArray(y)?y.push(g):t.push([g])});continue}if(yI(a)){const i=a.toolCallId;if(i&&r.has(i)){r.delete(i),t.push(a);continue}if(Am(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}`,m={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},g=t[t.length-1];Array.isArray(g)?g.push(m):t.push([m])}continue}t.push(a)}return t}const _I=(e,t)=>{var i;const{t:n}=Ge(),r=b.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=b.useCallback(c=>!1,[]),o=b.useCallback(c=>{if(hI(c))return{type:"compression_divider",id:c.id,createdAt:c.createdAt,label:c.label};if(fI(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 m="type"in c.message?c.message.type:void 0;(m==="text"||m==="plan"||m==="question"||m==="tool_call"||m==="tool_result")&&(f=m)}return{type:"message",message:c.message,align:d,messageType:f}},[]),a=b.useMemo(()=>{var S;const c=t.filter(_=>{const E=_.role;return!(E!=="user"&&E!=="assistant"&&E!=="system"&&E!=="tool"||s(_))}),d=wI(c),f=[];d.forEach((_,E)=>{var C,A;if(Array.isArray(_)){const I=_[0];f.push({type:"tool_session",id:I?xI(I,E):`tool-session-unknown-${E}`,sessionId:(e==null?void 0:e.id)||"default",tools:_,createdAt:((C=I==null?void 0:I.call)==null?void 0:C.createdAt)||((A=I==null?void 0:I.result)==null?void 0:A.createdAt)||new Date().toISOString()});return}const T=_;let P;if(T.role==="assistant"&&"type"in T){const I="type"in T?T.type:void 0;(I==="text"||I==="plan"||I==="question"||I==="tool_call"||I==="tool_result")&&(P=I)}f.push({message:T,messageType:P})}),!c.some(_=>_.role==="system")&&r&&f.unshift({message:r});const g=((S=e==null?void 0:e.config)==null?void 0:S.compressionEvents)||[],y=f.findIndex(_=>!mI(_)),x=y===-1?f.length:y;for(const _ of g){const E={type:"compression_divider",id:`compression-divider-${_.id}`,createdAt:_.createdAt,label:n("chat.compression.timelineDetail",{count:_.messagesCompressed,defaultValue:"{{count}} messages archived"})},T=Mm(_.createdAt),P=f.findIndex((C,A)=>A>=x&&Mm(pI(C))>T);P===-1?f.push(E):f.splice(P,0,E)}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:CI}=ht,kI=({visible:e,selectionMode:t,selectedCount:n,totalCount:r,paddingTop:s,paddingRight:o,paddingBottom:a,paddingLeft:i,maxWidth:c,onToggleSelectionMode:d,onSelectAll:f,onClear:m,onExportMarkdown:g,onExportPdf:y,t:x})=>e?l.jsx("div",{style:{paddingTop:s,paddingRight:o,paddingBottom:a,paddingLeft:i,maxWidth:c,margin:"0 auto",width:"100%"},children:t?l.jsxs(Pe,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(CI,{type:"secondary",children:x("chat.selectionToolbar.selectedCount",{selected:n,total:r})}),l.jsxs(Ye,{size:8,wrap:!0,children:[l.jsx(je,{size:"small",onClick:f,children:x("chat.selectionToolbar.selectAll")}),l.jsx(je,{size:"small",onClick:m,children:x("chat.selectionToolbar.clear")}),l.jsx(je,{size:"small",icon:l.jsx(fo,{}),onClick:g,disabled:n===0,children:x("chat.selectionToolbar.exportMarkdown")}),l.jsx(je,{size:"small",type:"primary",icon:l.jsx(fo,{}),onClick:y,disabled:n===0,children:x("chat.selectionToolbar.exportPdf")}),l.jsx(je,{size:"small",icon:l.jsx(Os,{}),onClick:d,children:x("chat.selectionToolbar.done")})]})]}):l.jsx(Pe,{justify:"flex-end",children:l.jsx(wn,{title:x("chat.selectionToolbar.selectMessages"),children:l.jsx(je,{"aria-label":x("chat.selectionToolbar.selectMessages"),icon:l.jsx(sy,{}),size:"small",onClick:d})})})}):null,TI=({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(je,{"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(je,{"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]})}),PI=ft.lazy(()=>en(()=>import("./index-nKvapWnz.js"),__vite__mapDeps([16,1,2,3,4,5,6,17]),import.meta.url).then(e=>({default:e.ContextBar}))),EI=({sessionId:e,auxReady:t,maxWidth:n,paddingLeft:r,paddingRight:s,workspaceState:o,inspectorEligible:a,planMode:i,onRequestOpenInspector:c,t:d})=>{const{token:f}=dt.useToken();if(!e)return null;const m=i?l.jsx(wn,{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(Je,{color:"purple",icon:l.jsx(Kg,{}),style:{marginInlineEnd:0},children:d("chat.planMode.active",{defaultValue:"Plan mode"})})}):null,g=a&&o.inspectorTogglePlacement==="meta_strip"&&!!c,y=!!(m||o.isMultiPane||g);return l.jsxs(l.Fragment,{children:[t?l.jsx(ft.Suspense,{fallback:null,children:l.jsx(PI,{sessionId:e})}):null,y?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(Pe,{align:"center",justify:"space-between",gap:f.marginXS,wrap:!0,children:[l.jsxs(Pe,{align:"center",gap:f.marginXS,wrap:!0,children:[m,o.isMultiPane?l.jsx(Je,{color:"blue",style:{marginInlineEnd:0},children:d("chat.workspace.multiPane",{count:o.leafCount,defaultValue:"{{count}} panes"})}):null]}),g&&c?l.jsx(je,{size:"small",icon:l.jsx(Nd,{}),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]})},Lf=({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"}},MI=ft.lazy(()=>en(()=>import("./index-EX0mHOrI.js"),__vite__mapDeps([18,1,2,3,4,5,6,19]),import.meta.url).then(e=>({default:e.QuestionDialog}))),{useToken:AI}=dt,{useBreakpoint:RI}=Vl,jI=e=>{const{t}=Pt;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()},II=e=>e.map(({message:t,text:n},r)=>{const s=jI(t),o=AS(t.createdAt);return[`## ${r+1}. ${s} · ${o}`,"",n].join(`
239
+ `)}).join(`
240
+
241
+ ---
242
+
243
+ `),Rm=({sessionId:e,embedded:t=!1,paneCount:n=1,auxReady:r=!1,sessionDiffSummary:s=null,workspaceState:o,inspectorEligible:a=!1,onRequestOpenInspector:i})=>{var It,bt,Ht,_t,st;const c=n,{message:d}=Dn.useApp(),{t:f}=Ge(),m=ne(Te=>e??Te.currentSessionId),g=ne($r(m)),y=ne(Te=>Te.deleteMessage),x=ne(Te=>Te.loadChatHistory),S=ne(Te=>m?Te.tokenUsages[m]??null:null),_=ne(Te=>m?Te.truncationOccurred[m]??!1:!1),E=ne(Te=>m?Te.segmentsRemoved[m]??0:0),T=b.useMemo(()=>(g==null?void 0:g.messages)||[],[g]),P=ne(fi(m));b.useEffect(()=>{if(!m)return;const Te=ne.getState().chats.find(Oe=>Oe.id===m);Te&&Array.isArray(Te.messages)&&Te.messages.length>0||x(m)},[m,x]);const C=(g==null?void 0:g.messageCount)??0,A=((It=g==null?void 0:g.messages)==null?void 0:It.length)??0;b.useEffect(()=>{if(!m)return;C-A>0&&x(m,{mode:"monotonic"})},[m,C,A,x]);const I=P,L=b.useCallback(Te=>{if(Te.success)return null;switch(Te.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 Te.errorMessage||f("chat.messageActions.deleteFailed")}},[f]),$=b.useCallback(async(Te,Oe)=>{if(!m){const Et={success:!1,sessionId:"",messageId:Te,reason:"session_not_found"};return(Oe==null?void 0:Oe.notify)!==!1&&d.error(L(Et)),Et}const qe=await y(m,Te);return!qe.success&&(Oe==null?void 0:Oe.notify)!==!1&&d.error(L(qe)),qe},[m,y,d,L]),F=b.useCallback(async Te=>{const Oe=Array.from(new Set(Te.map(Jt=>Jt.trim()).filter(Boolean)));if(Oe.length===0)return;const Et=(await Promise.all(Oe.map(Jt=>$(Jt,{notify:!1})))).filter(Jt=>!Jt.success);if(Et.length!==0){if(Et.length===1){d.error(L(Et[0]));return}d.error(f("chat.messageActions.deleteBatchFailed",{failed:Et.length,total:Oe.length}))}},[$,d,L,f]),te=b.useRef(null),N=b.useRef(null),{token:O}=AI(),Q=RI(),W=Jl(),[z,pe]=b.useState(null),[Z,ce]=b.useState(!1),[ve,G]=b.useState(new Set),he=vt(Te=>Te.sidebar.collapsed),_e=r,ie=s,ue=()=>t||Q.xs||Q.sm?"100%":Q.md?"90%":Q.lg?"85%":"1024px",me=()=>{let Te;return t?Te=O.paddingSM:Q.xs?Te=O.paddingXS:Q.sm?Te=O.paddingSM:Te=O.padding,!t&&he&&!W?Te+18:Te},ke=b.useMemo(()=>o||Lf({isEmbedded:t,leafCount:c,isMobileViewport:W}),[t,W,c,o]);b.useEffect(()=>{pe(null),ce(!1),G(new Set)},[m]);const{systemPromptMessage:De,renderableMessages:Fe,convertRenderableEntry:j}=_I(g,T),se=T.length>0,ge=!!(z!=null&&z.content),we=!!De,He=!!m&&(se||ge),xt=0,ot=b.useMemo(()=>{if(!(z!=null&&z.content))return Fe;const Te={message:{id:z.id,role:"user",content:z.content,createdAt:z.createdAt},messageType:"text"};return[...Fe,Te]},[Fe,z]),et=b.useMemo(()=>{const Te=[];for(const Oe of ot){if(!("message"in Oe))continue;const qe=Jv(Oe.message).trim();qe&&Te.push({id:Oe.message.id,message:Oe.message,text:qe})}return Te},[ot]),$t=b.useMemo(()=>new Set(et.map(Te=>Te.id)),[et]);b.useEffect(()=>{G(Te=>{let Oe=!1;const qe=new Set;for(const Et of Te)$t.has(Et)?qe.add(Et):Oe=!0;return Oe?qe:Te})},[$t]);const Yt=b.useMemo(()=>et.filter(Te=>ve.has(Te.id)),[et,ve]),Lt=et.length>0,On=b.useCallback(Te=>{G(Oe=>{const qe=new Set(Oe);return qe.has(Te)?qe.delete(Te):qe.add(Te),qe})},[]),jt=b.useCallback(()=>{if(!Lt){d.warning(f("chat.view.noExportableMessages"));return}ce(!0)},[d,Lt,f]),Mn=b.useCallback(()=>{ce(!1),G(new Set)},[]),yt=b.useCallback(()=>{if(Z){Mn();return}jt()},[jt,Mn,Z]),Cn=b.useCallback(()=>{G(new Set(et.map(Te=>Te.id)))},[et]),yn=b.useCallback(()=>{G(new Set)},[]),Bt=b.useCallback(async Te=>{var Et;if(!m){d.warning(f("chat.view.noActiveChat"));return}if(Yt.length===0){d.warning(f("chat.view.selectAtLeastOneMessage"));return}const Oe=II(Yt),qe=await Qv.exportMessageText({format:Te,content:Oe,sessionId:m,filenamePrefix:`chat-messages-${Yt.length}`});if(qe.success){d.success(f("chat.view.exportSaved",{filename:qe.filename}));return}(Et=qe.error)!=null&&Et.toLowerCase().includes("cancel")||d.error(qe.error||f("chat.view.exportFailed"))},[d,m,Yt,f]);b.useEffect(()=>{if(typeof window>"u")return;const Te=Oe=>{var Jt;const Et=((Jt=Oe.detail)==null?void 0:Jt.sessionId)??null;!m||Et!==m||yt()};return window.addEventListener(Qu,Te),()=>{window.removeEventListener(Qu,Te)}},[m,yt]);const Qt=(bt=g==null?void 0:g.config)==null?void 0:bt.tokenUsage,hn=S||Qt||null,ye=(Ht=g==null?void 0:g.config)==null?void 0:Ht.truncationOccurred,Ue=_||ye||!1,$e=(_t=g==null?void 0:g.config)==null?void 0:_t.segmentsRemoved,Ke=E||$e||0,Xt=b.useMemo(()=>{var Oe;const Te=(Oe=g==null?void 0:g.config)==null?void 0:Oe.compressionEvents;return!Te||Te.length===0?null:Te.reduce((qe,Et)=>{const Jt=Date.parse(qe.createdAt),Yn=Date.parse(Et.createdAt);return Number.isFinite(Jt)?Number.isFinite(Yn)&&Yn>Jt?Et:qe:Et})},[(st=g==null?void 0:g.config)==null?void 0:st.compressionEvents]),Fn=O.marginMD,{handleMessagesScroll:tn,hasUnreadActivity:Ie,resetUserScroll:wt,scrollToBottom:B,scrollToTop:oe,showScrollToBottom:D,showScrollToTop:Ae,unreadCount:We}=dI({currentSessionId:m,isThinking:I,messagesListRef:te,bottomAnchorRef:N,renderableMessages:ot}),Ne=!!He&&Lt&&(!t||Z),it=Xt?l.jsx(wn,{title:f("chat.compression.tooltip",{count:Xt.messagesCompressed,time:AS(Xt.createdAt),defaultValue:"Latest compression at {{time}}: {{count}} messages archived"}),children:l.jsx(Je,{color:"gold",icon:l.jsx(ry,{}),style:{marginInlineEnd:0,whiteSpace:"nowrap"},children:f("chat.compression.archivedShort",{count:Xt.messagesCompressed,defaultValue:"{{count}} archived"})})}):null,pt=hn&&hn.budgetLimit>0?l.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:O.marginXS},children:[l.jsx(q1,{usage:hn,showDetails:!0,size:"small"}),Ue&&l.jsxs("span",{style:{fontSize:11,color:O.colorTextSecondary,whiteSpace:"nowrap"},children:["(",f("components.tokenUsage.truncatedBadge",{count:Ke,defaultValue:"{{count}} truncated"}),")"]}),it]}):it?l.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:O.marginXS},children:it}):null;return l.jsx(to,{role:"region","aria-label":f("chat.view.chatRegion","Chat conversation"),style:{flex:1,minHeight:0,height:"100%",background:O.colorBgContainer,position:"relative",overflow:"hidden"},children:l.jsxs(Pe,{vertical:!0,style:{flex:1,minHeight:0,height:"100%"},children:[l.jsx(EI,{sessionId:m,auxReady:_e,maxWidth:ue(),paddingLeft:me(),paddingRight:me(),workspaceState:ke,inspectorEligible:a,planMode:(g==null?void 0:g.planMode)??null,onRequestOpenInspector:i,t:f}),l.jsx(kI,{visible:Ne,selectionMode:Z,selectedCount:Yt.length,totalCount:et.length,paddingTop:O.paddingXS,paddingRight:me()+xt,paddingBottom:0,paddingLeft:me(),maxWidth:ue(),onToggleSelectionMode:yt,onSelectAll:Cn,onClear:yn,onExportMarkdown:()=>{Bt("markdown")},onExportPdf:()=>{Bt("pdf")},t:f}),l.jsx(B1,{currentChat:g,currentSessionId:m,convertRenderableEntry:j,handleDeleteMessage:$,handleDeleteToolMessages:F,handleMessagesScroll:tn,hasSystemPrompt:we,messagesListRef:te,bottomAnchorRef:N,renderableMessages:ot,rowGap:Fn,showMessagesView:!!He,screens:Q,workflowDraftId:z==null?void 0:z.id,isThinking:I,padding:me(),selectionMode:Z,selectedMessageIds:ve,selectableMessageIds:$t,onToggleMessageSelection:On}),l.jsxs("div",{className:"chat-bottom-stack","data-testid":"chat-bottom-stack",children:[l.jsx(TI,{visible:He,showScrollToTop:Ae,showScrollToBottom:D,hasUnreadActivity:Ie,unreadCount:We,onScrollToTop:oe,onScrollToBottom:B,onResetUserScroll:wt,t:f}),m&&_e&&l.jsx("div",{style:{paddingTop:O.paddingXS,paddingRight:me(),paddingBottom:0,paddingLeft:me(),maxWidth:ue(),margin:"0 auto",width:"100%"},children:l.jsx(ft.Suspense,{fallback:null,children:l.jsx(MI,{sessionId:m},m)})}),l.jsx(HP,{sessionId:m,isCenteredLayout:!He,maxWidth:He?ue():"100%",onWorkflowDraftChange:pe,showMessagesView:!!He,sessionDiffSummary:ie,contextUsageIndicator:pt,showSessionDiffCard:!1})]})]})})},_d="lotus_experience_mode_v1",$$=new Set(["skills","hooks","masking","env-vars","metrics","sessions","config"]);function jm(){try{const e=localStorage.getItem(_d);if(e==="simple"||e==="advanced")return e}catch{}return"advanced"}const RS=ns(e=>({mode:jm(),isAdvanced:jm()==="advanced",setMode:t=>{try{localStorage.setItem(_d,t)}catch{}e({mode:t,isAdvanced:t==="advanced"})},toggleMode:()=>e(t=>{const n=t.mode==="simple"?"advanced":"simple";try{localStorage.setItem(_d,n)}catch{}return{mode:n,isAdvanced:n==="advanced"}})})),OI=ft.lazy(()=>en(()=>import("./index-BIexw-RU.js"),__vite__mapDeps([20,1,2,3,21,4,5,6,22]),import.meta.url).then(e=>({default:e.SessionSummaryCard}))),$I=ft.lazy(()=>en(()=>import("./index-CpKeyar-.js"),__vite__mapDeps([23,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.TodoList}))),LI=ft.lazy(()=>en(()=>import("./SubAgentsPanel-1J9eU6HS.js"),__vite__mapDeps([24,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.SubAgentsPanel}))),{Title:DI,Text:Yl}=ht,FI=({sessionId:e})=>{var d,f;const{token:t}=dt.useToken(),n=ne($r(e)),r=ne(m=>m.setInputContent),s=((d=n==null?void 0:n.config)==null?void 0:d.goldConfig)??null,o=((f=(s==null?void 0:s.goal)??(s==null?void 0:s.evaluation_prompt))==null?void 0:f.trim())??"",a=(s==null?void 0:s.enabled)===!0,i=o.length>0;if(!n||!s||!i&&!a)return null;const c=()=>{const m=i?`/goal ${o}`:"/goal ";r(e,m),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Ol,{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 ${a?t.colorWarningBorder:t.colorBorderSecondary}`,background:a?t.colorWarningBg:t.colorFillQuaternary},children:l.jsxs(Pe,{vertical:!0,gap:4,style:{width:"100%",minWidth:0},children:[l.jsxs(Pe,{align:"center",justify:"space-between",gap:8,children:[l.jsxs(Pe,{align:"center",gap:6,style:{minWidth:0},children:[l.jsx(rw,{style:{color:a?t.colorWarning:t.colorTextSecondary}}),l.jsx(Yl,{strong:!0,style:{fontSize:12},children:"Goal"})]}),l.jsx(je,{size:"small",type:"text",onClick:c,style:{paddingInline:6},children:"Edit /goal"})]}),l.jsx(hl,{items:[a?"Enabled":"Disabled",s.auto_answer_enabled?"Auto-answer":null,s.auto_continue_enabled?"Auto-continue":null],block:!0}),l.jsx(Yl,{style:{fontSize:12,lineHeight:1.45,color:i?t.colorText:t.colorTextSecondary,whiteSpace:"pre-wrap"},children:i?o:"Use /goal <prompt> in the composer to set a session goal."})]})})},NI=({sessionId:e,auxReady:t,showMessagesView:n,shouldShowTaskPanel:r,hasSubAgents:s,sessionDiffSummary:o})=>{var m,g,y;const{token:a}=dt.useToken(),i=RS(x=>x.isAdvanced),c=ne($r(e)),d=!!((m=c==null?void 0:c.config)!=null&&m.goldConfig&&((((y=(g=c.config.goldConfig.goal??c.config.goldConfig.evaluation_prompt)==null?void 0:g.trim())==null?void 0:y.length)??0)>0||c.config.goldConfig.enabled===!0)),f=b.useMemo(()=>[{key:"goal",title:"Goal",showTitle:!1,visible:d,node:l.jsx(FI,{sessionId:e})},{key:"overview",title:"Overview",showTitle:!1,visible:i&&n,node:t?l.jsx(ft.Suspense,{fallback:null,children:l.jsx(OI,{sessionId:e,compact:!0})}):null},{key:"tasks",title:"Tasks",showTitle:!1,visible:r,node:t?l.jsx(ft.Suspense,{fallback:null,children:l.jsx($I,{sessionId:e,initialCollapsed:!1,compact:!0})}):null},{key:"agents",title:"Sub-agents",showTitle:!1,visible:s,node:t?l.jsx(ft.Suspense,{fallback:null,children:l.jsx(LI,{parentSessionId:e,compact:!0})}):null},{key:"diffs",title:"Diffs",showTitle:!1,visible:!!o,node:l.jsx(gv,{sessionDiffSummary:o,sessionId:e,compact:!0})}].filter(x=>x.visible),[t,d,s,i,o,e,r,n]);return f.length===0?l.jsx(Pe,{vertical:!0,align:"center",justify:"center",style:{minHeight:180,color:a.colorTextSecondary,padding:a.paddingLG,textAlign:"center"},children:l.jsx(Yl,{type:"secondary",children:"No session details available yet."})}):l.jsx(Pe,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:f.map((x,S)=>l.jsx("section",{style:{width:"100%",minWidth:0,paddingTop:S===0?0:6,borderTop:S===0?"none":`1px solid ${a.colorBorderSecondary}`},children:x.showTitle?l.jsxs(Pe,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsx(DI,{level:5,style:{margin:0,fontSize:a.fontSizeLG},children:x.title}),x.node]}):x.node},x.key))})},Im=({sessionId:e,auxReady:t,mode:n,open:r,onOpenChange:s,showMessagesView:o,shouldShowTaskPanel:a,hasSubAgents:i,sessionDiffSummary:c})=>{const{token:d}=dt.useToken(),f=vt(x=>x.inspector.widthPx),m=vt(x=>x.inspector.minWidthPx),g=vt(x=>x.inspector.maxWidthPx);if(!e)return null;const y=l.jsx(NI,{sessionId:e,auxReady:t,showMessagesView:o,shouldShowTaskPanel:a,hasSubAgents:i,sessionDiffSummary:c});return n==="drawer"?l.jsx(Gl,{title:"Inspector",placement:"right",open:r,onClose:()=>s(!1),width:f,children:y}):r?l.jsxs("aside",{"data-session-inspector-pane":!0,style:{width:"100%",minWidth:m,maxWidth:g,height:"100%",minHeight:0,borderLeft:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout,overflow:"auto"},children:[l.jsxs(Pe,{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(Pe,{align:"center",gap:d.marginXS,children:[l.jsx(Nd,{}),l.jsx(Yl,{strong:!0,children:"Inspector"})]}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(Os,{}),"aria-label":"Close inspector",onClick:()=>s(!1)})]}),l.jsx("div",{style:{padding:`6px ${d.paddingSM}px ${d.paddingSM}px`,minWidth:0},children:y})]}):null},zI=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>{var z,pe,Z;const s=n,o=Jl(),a=ne(ce=>e??ce.currentSessionId),i=ne($r(a)),c=b.useMemo(()=>(i==null?void 0:i.messages)||[],[i]),d=ne(ce=>ce.loadTaskList),f=RS(ce=>ce.isAdvanced),m=b.useMemo(()=>!a||!i?a:i.kind==="child"&&(i.parentSessionId||i.rootSessionId)||a,[i,a]),g=ne(ce=>m?!!ce.taskLists[m]:!1),y=ne(fi(a)),x=b.useMemo(()=>!a||!i?!1:!!(g||i.kind==="child"||y),[i,g,y,a]),S=ne(ce=>{if(!a)return!1;const ve=ti(a)(ce);return Object.keys(ve).length>0?!0:ce.chats.some(G=>G.kind==="child"&&G.parentSessionId===a)});b.useEffect(()=>{!m||g||x&&d(m).catch(ce=>{console.warn(`[SessionWorkspaceShell] Failed to load task list for ${m}:`,ce)})},[m,g,x,d]);const _=b.useMemo(()=>{var ie;if(!c||c.length===0)return null;const ce=new Map;let ve=0,G=0,he=0;for(const ue of c){if(!_v(ue))continue;const me=((ie=ue.result)==null?void 0:ie.result)??"",ke=xo(me),De=af(me);if(!ke||!De)continue;he+=1,ve+=De.added,G+=De.removed;const Fe=ce.get(ke.file_path);Fe?(Fe.added+=De.added,Fe.removed+=De.removed,Fe.diffChunks.push(ke.diff.unified),Fe.truncated=Fe.truncated||!!ke.diff.truncated,Fe.toolCount+=1,Fe.workspace=Fe.workspace??ke.workspace):ce.set(ke.file_path,{added:De.added,removed:De.removed,diffChunks:[ke.diff.unified],truncated:!!ke.diff.truncated,toolCount:1,workspace:ke.workspace})}if(ce.size===0)return null;const _e=Array.from(ce.entries()).map(([ue,me])=>({filePath:ue,added:me.added,removed:me.removed,unifiedDiff:me.diffChunks.join(`
244
+
245
+ `),truncated:me.truncated,toolCount:me.toolCount,workspace:me.workspace})).sort((ue,me)=>ue.filePath.localeCompare(me.filePath));return{totalAdded:ve,totalRemoved:G,files:_e,changedTools:he}},[c]),E=vt(ce=>ce.inspector.widthPx),T=vt(ce=>ce.inspector.minWidthPx),P=vt(ce=>ce.inspector.maxWidthPx),C=vt(ce=>ce.setInspectorWidthPx),A=c.length>0,I=!!((z=i==null?void 0:i.config)!=null&&z.goldConfig&&((((Z=(pe=i.config.goldConfig.evaluation_prompt)==null?void 0:pe.trim())==null?void 0:Z.length)??0)>0||i.config.goldConfig.enabled===!0)),L=b.useMemo(()=>r||Lf({isEmbedded:t,leafCount:s,isMobileViewport:o}),[t,o,s,r]),$=L.inspectorMode,F=!!(a&&(f&&A||I||x||S||_)),te=!!a&&($==="drawer"||F),[N,O]=b.useState(()=>$==="rail"),[Q,W]=b.useState(!1);return b.useEffect(()=>{O($==="rail"?F:!1)},[F,$,a]),b.useEffect(()=>{if(typeof requestIdleCallback=="function"){const ve=requestIdleCallback(()=>W(!0));return()=>cancelIdleCallback(ve)}const ce=window.setTimeout(()=>W(!0),300);return()=>window.clearTimeout(ce)},[]),b.useEffect(()=>{if(typeof window>"u"||!a)return;const ce=ve=>{var _e;(((_e=ve.detail)==null?void 0:_e.sessionId)??null)===a&&O(!0)};return window.addEventListener(Zu,ce),()=>{window.removeEventListener(Zu,ce)}},[a]),l.jsx("div",{"data-session-workspace-shell":!0,"data-inspector-mode":$,"data-multi-pane":L.isMultiPane?"true":"false","data-inspector-toggle-placement":L.inspectorTogglePlacement,style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Pe,{style:{flex:1,minHeight:0},children:te&&$==="rail"&&N?l.jsx(rf,{layout:"horizontal",sizesPx:[0,E],minFirstPx:320,minSecondPx:T,style:{flex:1,minHeight:0},handleSizePx:4,onResizeEnd:([,ce])=>{const ve=Math.max(T,Math.min(P,ce));C(ve)},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:Q,sessionDiffSummary:_,workspaceState:L,inspectorEligible:F,onRequestOpenInspector:()=>O(!0)})}),second:l.jsx(Im,{sessionId:a,auxReady:Q,mode:$,open:N,onOpenChange:O,showMessagesView:A,shouldShowTaskPanel:x,hasSubAgents:S,sessionDiffSummary:_})}):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:Q,sessionDiffSummary:_,workspaceState:L,inspectorEligible:F,onRequestOpenInspector:()=>O(!0)})}),te?l.jsx(Im,{sessionId:a,auxReady:Q,mode:$,open:N,onOpenChange:O,showMessagesView:A,shouldShowTaskPanel:x,hasSubAgents:S,sessionDiffSummary:_}):null]})})})},BI=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>l.jsx(zI,{sessionId:e,embedded:t,paneCount:n,workspaceState:r}),WI=ft.lazy(()=>en(()=>import("./index-CZufMAVA.js"),__vite__mapDeps([25,1,2,3,4,5,6,26]),import.meta.url).then(e=>({default:e.HomeDashboard}))),{useToken:UI}=dt,{Text:qI}=ht,HI=4,YI=({leafId:e})=>{var pe;const{token:t}=UI(),{t:n}=Ge(),r=vt(Z=>Z.tree),s=vt(Z=>Z.leafSessionIds),o=vt(Z=>Z.activeLeafId),a=vt(Z=>Z.setActiveLeafId),i=vt(Z=>Z.splitLeaf),c=vt(Z=>Z.closeLeaf),d=vt(Z=>Z.setLeafSessionId),f=ne(Z=>Z.selectSession),m=ne(Z=>Z.addChat),g=ne(Z=>Z.systemPrompts),y=ne(Z=>Z.lastSelectedPromptId),x=s[e]??null,S=ne($r(x)),_=b.useMemo(()=>Qn(r),[r]),E=_.length,T=Math.max(0,_.indexOf(e))+1,P=E<HI,C=oy("(max-width: 768px)"),A=b.useMemo(()=>Lf({isEmbedded:!0,leafCount:E,isMobileViewport:C}),[C,E]),I=A.isMultiPane,$=I||!!x,F=A.isMultiPane,te=o===e,N=((pe=S==null?void 0:S.title)==null?void 0:pe.trim())||n("chat.multiPane.selectSessionHint"),O=!C,Q=A.inspectorTogglePlacement==="pane_header"&&!!x,W=b.useCallback(Z=>{d(e,Z),a(e),f(Z)},[e,f,a,d]),z=b.useCallback(async()=>{var G,he;const Z=g.find(_e=>_e.id===y),ce=(Z==null?void 0:Z.id)||(g.length>0?((G=g.find(_e=>_e.id==="general_assistant"))==null?void 0:G.id)||g[0].id:""),ve=await m({title:n("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:ce,baseSystemPrompt:(Z==null?void 0:Z.content)||(g.length>0?((he=g.find(_e=>_e.id==="general_assistant"))==null?void 0:he.content)||g[0].content:""),lastUsedEnhancedPrompt:null}});d(e,ve),a(e)},[m,y,g,n,e,d,a]);return l.jsxs("div",{className:"chat-pane-shell",onMouseDownCapture:()=>{Jn("pane focus (mouse)",{leafId:e,sessionId:x,prevActiveLeafId:o}),a(e),x&&f(x)},onFocusCapture:()=>{Jn("pane focus (focus)",{leafId:e,sessionId:x,prevActiveLeafId:o}),a(e)},style:{height:"100%",minHeight:0,border:F?`1px solid ${te?t.colorPrimaryBorder:t.colorBorderSecondary}`:"none",borderRadius:F?t.borderRadiusLG:0,overflow:"hidden",background:t.colorBgContainer,position:"relative"},children:[O?l.jsx("div",{className:"chat-pane-shell__header",style:{padding:`${t.paddingXS}px ${t.paddingSM}px`,borderBottom:`1px solid ${t.colorBorderSecondary}`,background:F?t.colorBgElevated:t.colorBgContainer},children:l.jsxs(Pe,{align:"center",justify:"space-between",gap:t.marginSM,style:{minWidth:0},children:[l.jsxs(Pe,{align:"center",gap:t.marginXS,style:{minWidth:0,flex:1},children:[F?l.jsx(Je,{color:te?"blue":"default",style:{marginInlineEnd:0},children:n("chat.multiPane.paneLabel",{index:T,defaultValue:"Pane {{index}}"})}):null,l.jsx("div",{className:"chat-pane-shell__title",children:l.jsx(qI,{strong:!!x,type:x?void 0:"secondary",ellipsis:{tooltip:N},children:N})})]}),l.jsxs(Pe,{className:"chat-pane-shell__actions",align:"center",gap:4,children:[l.jsx(je,{size:"small",type:"text",icon:l.jsx(sw,{}),disabled:!P,title:n("chat.multiPane.splitHorizontal"),"aria-label":n("chat.multiPane.splitHorizontal"),onClick:Z=>{Z.preventDefault(),Z.stopPropagation(),Jn("pane split request",{leafId:e,layout:"horizontal"}),i(e,"horizontal");const ce=vt.getState(),ve=ce.leafSessionIds[ce.activeLeafId]??null;ve&&f(ve)}}),l.jsx(je,{size:"small",type:"text",icon:l.jsx(ow,{}),disabled:!P,title:n("chat.multiPane.splitVertical"),"aria-label":n("chat.multiPane.splitVertical"),onClick:Z=>{Z.preventDefault(),Z.stopPropagation(),Jn("pane split request",{leafId:e,layout:"vertical"}),i(e,"vertical");const ce=vt.getState(),ve=ce.leafSessionIds[ce.activeLeafId]??null;ve&&f(ve)}}),l.jsx(je,{size:"small",type:"text",icon:l.jsx(sy,{}),disabled:!x,title:n("chat.multiPane.selectMessagesToExport"),"aria-label":n("chat.multiPane.selectMessagesToExport"),onClick:Z=>{Z.preventDefault(),Z.stopPropagation(),x&&window.dispatchEvent(new CustomEvent(Qu,{detail:{sessionId:x}}))}}),Q?l.jsx(je,{size:"small",type:"text",icon:l.jsx(Nd,{}),title:n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),"aria-label":n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),onClick:Z=>{Z.preventDefault(),Z.stopPropagation(),x&&window.dispatchEvent(new CustomEvent(Zu,{detail:{sessionId:x}}))}}):null,l.jsx(je,{size:"small",type:"text",danger:!0,icon:l.jsx(Os,{}),disabled:!$,title:n("chat.multiPane.closePane"),"aria-label":n("chat.multiPane.closePane"),onClick:Z=>{Z.preventDefault(),Z.stopPropagation(),Jn("pane close request",{leafId:e}),I?c(e):d(e,null);const ce=vt.getState(),ve=ce.leafSessionIds[ce.activeLeafId]??null;f(ve)}})]})]})}):null,l.jsx("div",{className:"chat-pane-shell__content",children:x?l.jsx(ri,{name:"ChatView",children:l.jsx(BI,{sessionId:x,embedded:!0,paneCount:E,workspaceState:A})}):l.jsx(ri,{name:"HomeDashboard",children:l.jsx(ft.Suspense,{fallback:null,children:l.jsx(WI,{onOpenSession:W,onCreateSession:z})})})})]})},XI=({node:e})=>{const t=vt(r=>r.splitSizesPx[e.id]??null),n=vt(r=>r.setSplitSizesPx);return l.jsx(rf,{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(Cd,{node:e.children[0]}),second:l.jsx(Cd,{node:e.children[1]})})},Cd=({node:e})=>e.type==="leaf"?l.jsx(YI,{leafId:e.id}):l.jsx(XI,{node:e}),Om=()=>{const e=vt(f=>f.tree),t=vt(f=>f.leafSessionIds),n=vt(f=>f.activeLeafId),r=vt(f=>f.setActiveLeafId),s=vt(f=>f.setLeafSessionId),o=ne(f=>f.chats.map(m=>m.id).join(",")),a=b.useMemo(()=>new Set(o.split(",")),[o]),i=ne(f=>f.currentSessionId),c=b.useRef(!1),d=b.useMemo(()=>Qn(e),[e]);return b.useEffect(()=>{d.length!==0&&(d.includes(n)||r(d[0]))},[n,d,r]),b.useEffect(()=>{const f=new Set(Object.values(t).filter(Boolean));let m=!1;for(const g of f)if(!a.has(g)){m=!0;break}if(m)for(const[g,y]of Object.entries(t))y&&!a.has(y)&&s(g,null)},[a,t,s]),b.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(Cd,{node:e})})},KI=ft.lazy(()=>en(()=>import("./index-mh3nNjD-.js"),__vite__mapDeps([27,1,2,3,4,28,5,6,21,29]),import.meta.url).then(e=>({default:e.SystemSettingsPage}))),VI=ft.lazy(()=>en(()=>import("./index-BClD_Kuo.js"),__vite__mapDeps([30,1,2,3,4,5,6,31]),import.meta.url).then(e=>({default:e.CommandPalette}))),GI=ft.lazy(()=>en(()=>import("./FeatureGuide-WswLwoHO.js"),__vite__mapDeps([32,1,2,3,28]),import.meta.url).then(e=>({default:e.FeatureGuide}))),$m="bodhi_open_provider_on_entry",JI="__LOTUS_COMMAND_PALETTE_FORCE_OPEN__",QI=()=>(uk(),null),ZI=({themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r})=>{const s=Ya(O=>O.isOpen),o=Ya(O=>O.close),{t:a}=Ge(),{token:i}=dt.useToken(),c=Vd(),d=b.useMemo(()=>rv()==="macos",[]);b.useEffect(()=>{localStorage.getItem($m)==="true"&&(localStorage.removeItem($m),Ya.getState().open("chat","provider"))},[]),G0(),b.useEffect(()=>{Nh.clear(),zh()},[e]),b.useEffect(()=>{Nh.clear(),zh()},[c]);const f=vt(O=>O.sidebar.collapsed),m=vt(O=>O.sidebar.widthPx),g=vt(O=>O.sidebar.minWidthPx),y=vt(O=>O.sidebar.maxWidthPx),x=vt(O=>O.setSidebarCollapsed),S=vt(O=>O.setSidebarWidthPx),_=18,E=0,P=!s&&f&&d?44:E,C=0,A=88,I=10,L="none",$=Jl(),F="min(86vw, 360px)",[te,N]=b.useState(!1);return b.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Q=requestIdleCallback(()=>N(!0));return()=>cancelIdleCallback(Q)}const O=window.setTimeout(()=>N(!0),200);return()=>window.clearTimeout(O)},[]),b.useEffect(()=>{const O=Q=>{!((Q.metaKey||Q.ctrlKey)&&Q.key.toLowerCase()==="k")||te||(Q.preventDefault(),window[JI]=!0,N(!0))};return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[te]),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:O=>{O.currentTarget.style.top="8px",O.currentTarget.style.left="8px"},onBlur:O=>{O.currentTarget.style.top="-9999px",O.currentTarget.style.left="-9999px"},children:a("app.skipToContent","Skip to main content")}),te&&l.jsx(ft.Suspense,{fallback:null,children:l.jsx(VI,{})}),te&&l.jsx(ft.Suspense,{fallback:null,children:l.jsx(GI,{disabled:s})}),te&&l.jsx(QI,{}),l.jsx(to,{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:P,paddingLeft:E,paddingRight:E,paddingBottom:E,background:"transparent"},children:[s?l.jsx(to,{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:`${_}px 0 0 ${_}px`,border:L,overflow:"hidden"},children:l.jsx(ri,{name:"SystemSettings",children:l.jsx(ft.Suspense,{fallback:l.jsx("div",{style:{padding:24,color:"var(--ant-color-text-secondary)"},children:a("app.loading","Loading…")}),children:l.jsx(KI,{themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r,onBack:o})})})}):l.jsx(l.Fragment,{children:$?l.jsxs(l.Fragment,{children:[l.jsx(Gl,{placement:"left",closable:!1,onClose:()=>x(!0),open:!f,width:F,styles:{body:{padding:0,background:"var(--lotus-sidebar-bg)"}},children:l.jsx(Lh,{})}),l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{flex:1,height:"100%",minHeight:0,borderRadius:`${_}px`,border:L,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(to,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(Om,{})})})]}):l.jsx(rf,{layout:"horizontal",style:{flex:1,minHeight:0,height:"100%",background:"transparent"},sizesPx:[f?C:m,0],minFirstPx:f?C:g,minSecondPx:320,disabled:f,handleSizePx:f?0:2,onResizeEnd:([O])=>{if(f)return;const Q=Math.max(g,Math.min(y,O));S(Q)},first:l.jsx("div",{className:"lotus-shell-panel lotus-shell-sidebar",style:{height:"100%",minHeight:0,borderRadius:`${_}px 0 0 ${_}px`,border:L,overflow:"hidden",background:"var(--lotus-sidebar-bg)"},children:l.jsx(Lh,{})}),second:l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{height:"100%",minHeight:0,borderRadius:f?`${_}px`:`0 ${_}px ${_}px 0`,border:L,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(to,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(Om,{})})})})}),!s&&f?l.jsx(je,{"data-testid":"show-sidebar",type:"text",size:"small",icon:l.jsx(aw,{}),onClick:()=>x(!1),title:a("layout.showSidebar"),"aria-label":a("layout.showSidebar"),className:"lotus-toolbar-icon lotus-floating-sidebar-toggle",style:{position:"absolute",top:$?8:I,left:$?8:A,zIndex:40,width:36,height:36,borderRadius:12,border:`1px solid ${i.colorBorderSecondary}`,background:i.colorBgElevated,boxShadow:i.boxShadowSecondary}}):null]})})]})},eO="bodhi_open_provider_on_entry",{Title:Lm,Paragraph:Dm}=ht,tO=()=>{const{t:e}=Ge(),[t,n]=b.useState(!1),[r,s]=b.useState(null),[o,a]=b.useState(!1),i=async c=>{try{s(null),a(!0),await po.getInstance().markSetupComplete(),c&&localStorage.setItem(eO,"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(je,{"data-testid":"setup-restart",onClick:()=>window.location.reload(),children:e("setup.complete.restartMessage")})]}):l.jsx("div",{className:"setup-page",children:l.jsxs(sn,{className:"setup-page__card",children:[l.jsxs("div",{className:"setup-page__hero",children:[l.jsx("div",{className:"setup-page__hero-icon",children:l.jsx(ih,{})}),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(fr,{message:e("setup.welcome.providerHint"),type:"info",showIcon:!0,style:{marginBottom:16}}),l.jsx(fr,{message:e("setup.welcome.proxyHint"),type:"info",showIcon:!0,style:{marginBottom:24}}),r?l.jsx(fr,{message:r,type:"error",showIcon:!0,style:{marginBottom:16}}):null,l.jsxs("div",{className:"setup-page__actions",children:[l.jsx(je,{"data-testid":"setup-configure-provider",icon:l.jsx(Kl,{}),onClick:()=>void i(!0),loading:o,children:e("setup.button.configureProvider")}),l.jsx(je,{"data-testid":"setup-get-started",type:"primary",icon:l.jsx(ih,{}),onClick:()=>void i(!1),loading:o,children:e("setup.button.getStarted")})]})]})})},{Title:nO,Text:Fm}=ht,rO=({onVerified:e,verifyPassword:t})=>{const{t:n}=Ge(),[r,s]=b.useState(""),[o,a]=b.useState(null),[i,c]=b.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(m){const g=m instanceof Error?m.message:n("app.passwordGate.validation.verifyFailed");a(g)}finally{c(!1)}};return l.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:l.jsx(sn,{style:{width:"100%",maxWidth:480},children:l.jsxs(Ye,{direction:"vertical",size:20,style:{width:"100%"},children:[l.jsxs("div",{children:[l.jsx(nO,{level:3,style:{marginBottom:8},children:n("app.passwordGate.title")}),l.jsx(Fm,{type:"secondary",children:n("app.passwordGate.description")})]}),o?l.jsx(fr,{type:"error",showIcon:!0,message:o}):null,l.jsxs(Ye,{direction:"vertical",size:8,style:{width:"100%"},children:[l.jsx(Fm,{strong:!0,children:n("app.passwordGate.passwordLabel")}),l.jsx($s.Password,{value:r,autoFocus:!0,autoComplete:"current-password",onChange:f=>s(f.target.value),onPressEnter:()=>void d(),placeholder:n("app.passwordGate.passwordPlaceholder")})]}),l.jsx(je,{type:"primary",block:!0,loading:i,onClick:()=>void d(),children:n("app.passwordGate.submit")})]})})})};var Vo={},bu={exports:{}},Nm;function Gt(){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}(bu)),bu.exports}var Go={},zm;function sO(){if(zm)return Go;zm=1,Object.defineProperty(Go,"__esModule",{value:!0}),Go.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 Go.default=e,Go}var Jo={},Qo={},Zo={},Su={exports:{}},xu={exports:{}},wu={exports:{}},_u={exports:{}},Bm;function oO(){return Bm||(Bm=1,function(e){var t=Yg().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}(_u)),_u.exports}var Wm;function aO(){return Wm||(Wm=1,function(e){var t=Yg().default,n=oO();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}(wu)),wu.exports}var Um;function iO(){return Um||(Um=1,function(e){var t=aO();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}(xu)),xu.exports}var qm;function _o(){return qm||(qm=1,function(e){var t=iO();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}(Su)),Su.exports}var ea={},Hm;function Co(){return Hm||(Hm=1,Object.defineProperty(ea,"__esModule",{value:!0}),ea.commonLocale=void 0,ea.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}),ea}var Ym;function lO(){if(Ym)return Zo;Ym=1;var e=Gt().default;Object.defineProperty(Zo,"__esModule",{value:!0}),Zo.default=void 0;var t=e(_o()),n=Co(),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 Zo.default=r,Zo}var ta={},Xm;function jS(){if(Xm)return ta;Xm=1,Object.defineProperty(ta,"__esModule",{value:!0}),ta.default=void 0;const e={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};return ta.default=e,ta}var Km;function IS(){if(Km)return Qo;Km=1;var e=Gt().default;Object.defineProperty(Qo,"__esModule",{value:!0}),Qo.default=void 0;var t=e(lO()),n=e(jS());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 Qo.default=r,Qo}var Vm;function cO(){if(Vm)return Jo;Vm=1;var e=Gt().default;Object.defineProperty(Jo,"__esModule",{value:!0}),Jo.default=void 0;var t=e(IS());return Jo.default=t.default,Jo}var Gm;function uO(){if(Gm)return Vo;Gm=1;var e=Gt().default;Object.defineProperty(Vo,"__esModule",{value:!0}),Vo.default=void 0;var t=e(sO()),n=e(cO()),r=e(IS()),s=e(jS());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 Vo.default=a,Vo}var Cu,Jm;function dO(){return Jm||(Jm=1,Cu=uO()),Cu}var fO=dO();const hO=Is(fO);var na={},ra={},Qm;function pO(){if(Qm)return ra;Qm=1,Object.defineProperty(ra,"__esModule",{value:!0}),ra.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 ra.default=e,ra}var sa={},oa={},aa={},Zm;function mO(){if(Zm)return aa;Zm=1;var e=Gt().default;Object.defineProperty(aa,"__esModule",{value:!0}),aa.default=void 0;var t=e(_o()),n=Co(),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 aa.default=r,aa}var ia={},eg;function OS(){if(eg)return ia;eg=1,Object.defineProperty(ia,"__esModule",{value:!0}),ia.default=void 0;const e={placeholder:"Sélectionner l'heure",rangePlaceholder:["Heure de début","Heure de fin"]};return ia.default=e,ia}var tg;function $S(){if(tg)return oa;tg=1;var e=Gt().default;Object.defineProperty(oa,"__esModule",{value:!0}),oa.default=void 0;var t=e(mO()),n=e(OS());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 oa.default=r,oa}var ng;function gO(){if(ng)return sa;ng=1;var e=Gt().default;Object.defineProperty(sa,"__esModule",{value:!0}),sa.default=void 0;var t=e($S());return sa.default=t.default,sa}var rg;function yO(){if(rg)return na;rg=1;var e=Gt().default;Object.defineProperty(na,"__esModule",{value:!0}),na.default=void 0;var t=e(pO()),n=e(gO()),r=e($S()),s=e(OS());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 na.default=a,na}var ku,sg;function vO(){return sg||(sg=1,ku=yO()),ku}var bO=vO();const SO=Is(bO);var la={},ca={},og;function xO(){if(og)return ca;og=1,Object.defineProperty(ca,"__esModule",{value:!0}),ca.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 ca.default=e,ca}var ua={},da={},fa={},ag;function wO(){if(ag)return fa;ag=1;var e=Gt().default;Object.defineProperty(fa,"__esModule",{value:!0}),fa.default=void 0;var t=e(_o()),n=Co(),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 fa.default=r,fa}var ha={},ig;function LS(){if(ig)return ha;ig=1,Object.defineProperty(ha,"__esModule",{value:!0}),ha.default=void 0;const e={placeholder:"समय का चयन करें",rangePlaceholder:["आरंभिक समय","अंत समय"]};return ha.default=e,ha}var lg;function DS(){if(lg)return da;lg=1;var e=Gt().default;Object.defineProperty(da,"__esModule",{value:!0}),da.default=void 0;var t=e(wO()),n=e(LS());const r={lang:Object.assign({placeholder:"तारीख़ चुनें",yearPlaceholder:"वर्ष चुनें",quarterPlaceholder:"तिमाही चुनें",monthPlaceholder:"महीना चुनिए",weekPlaceholder:"सप्ताह चुनें",rangePlaceholder:["प्रारंभ तिथि","समाप्ति तिथि"],rangeYearPlaceholder:["आरंभिक वर्ष","अंत वर्ष"],rangeMonthPlaceholder:["आरंभिक महीना","अंत महीना"],rangeWeekPlaceholder:["आरंभिक सप्ताह","अंत सप्ताह"]},t.default),timePickerLocale:Object.assign({},n.default)};return da.default=r,da}var cg;function _O(){if(cg)return ua;cg=1;var e=Gt().default;Object.defineProperty(ua,"__esModule",{value:!0}),ua.default=void 0;var t=e(DS());return ua.default=t.default,ua}var ug;function CO(){if(ug)return la;ug=1;var e=Gt().default;Object.defineProperty(la,"__esModule",{value:!0}),la.default=void 0;var t=e(xO()),n=e(_O()),r=e(DS()),s=e(LS());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 la.default=a,la}var Tu,dg;function kO(){return dg||(dg=1,Tu=CO()),Tu}var TO=kO();const PO=Is(TO);var pa={},ma={},fg;function EO(){if(fg)return ma;fg=1,Object.defineProperty(ma,"__esModule",{value:!0}),ma.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 ma.default=e,ma}var ga={},ya={},va={},hg;function MO(){if(hg)return va;hg=1;var e=Gt().default;Object.defineProperty(va,"__esModule",{value:!0}),va.default=void 0;var t=e(_o()),n=Co(),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 va.default=r,va}var ba={},pg;function FS(){if(pg)return ba;pg=1,Object.defineProperty(ba,"__esModule",{value:!0}),ba.default=void 0;const e={placeholder:"時間を選択",rangePlaceholder:["開始時間","終了時間"]};return ba.default=e,ba}var mg;function NS(){if(mg)return ya;mg=1;var e=Gt().default;Object.defineProperty(ya,"__esModule",{value:!0}),ya.default=void 0;var t=e(MO()),n=e(FS());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 ya.default=r,ya}var gg;function AO(){if(gg)return ga;gg=1;var e=Gt().default;Object.defineProperty(ga,"__esModule",{value:!0}),ga.default=void 0;var t=e(NS());return ga.default=t.default,ga}var yg;function RO(){if(yg)return pa;yg=1;var e=Gt().default;Object.defineProperty(pa,"__esModule",{value:!0}),pa.default=void 0;var t=e(EO()),n=e(AO()),r=e(NS()),s=e(FS());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 pa.default=a,pa}var Pu,vg;function jO(){return vg||(vg=1,Pu=RO()),Pu}var IO=jO();const OO=Is(IO);var Sa={},xa={},bg;function $O(){if(bg)return xa;bg=1,Object.defineProperty(xa,"__esModule",{value:!0}),xa.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 xa.default=e,xa}var wa={},_a={},Ca={},Sg;function LO(){if(Sg)return Ca;Sg=1;var e=Gt().default;Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.default=void 0;var t=e(_o()),n=Co(),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 Ca.default=r,Ca}var ka={},xg;function zS(){if(xg)return ka;xg=1,Object.defineProperty(ka,"__esModule",{value:!0}),ka.default=void 0;const e={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};return ka.default=e,ka}var wg;function BS(){if(wg)return _a;wg=1;var e=Gt().default;Object.defineProperty(_a,"__esModule",{value:!0}),_a.default=void 0;var t=e(LO()),n=e(zS());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="确定",_a.default=r,_a}var _g;function DO(){if(_g)return wa;_g=1;var e=Gt().default;Object.defineProperty(wa,"__esModule",{value:!0}),wa.default=void 0;var t=e(BS());return wa.default=t.default,wa}var Cg;function FO(){if(Cg)return Sa;Cg=1;var e=Gt().default;Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.default=void 0;var t=e($O()),n=e(DO()),r=e(BS()),s=e(zS());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 Sa.default=a,Sa}var Eu,kg;function NO(){return kg||(kg=1,Eu=FO()),Eu}var zO=NO();const BO=Is(zO);var Ta={},Pa={},Tg;function WO(){if(Tg)return Pa;Tg=1,Object.defineProperty(Pa,"__esModule",{value:!0}),Pa.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 Pa.default=e,Pa}var Ea={},Ma={},Aa={},Pg;function UO(){if(Pg)return Aa;Pg=1;var e=Gt().default;Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.default=void 0;var t=e(_o()),n=Co(),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 Aa.default=r,Aa}var Ra={},Eg;function WS(){if(Eg)return Ra;Eg=1,Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.default=void 0;const e={placeholder:"請選擇時間"};return Ra.default=e,Ra}var Mg;function US(){if(Mg)return Ma;Mg=1;var e=Gt().default;Object.defineProperty(Ma,"__esModule",{value:!0}),Ma.default=void 0;var t=e(UO()),n=e(WS());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="確 定",Ma.default=r,Ma}var Ag;function qO(){if(Ag)return Ea;Ag=1;var e=Gt().default;Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.default=void 0;var t=e(US());return Ea.default=t.default,Ea}var Rg;function HO(){if(Rg)return Ta;Rg=1;var e=Gt().default;Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.default=void 0;var t=e(WO()),n=e(qO()),r=e(US()),s=e(WS());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 Ta.default=a,Ta}var Mu,jg;function YO(){return jg||(jg=1,Mu=HO()),Mu}var XO=YO();const KO=Is(XO),Ig=e=>{switch(e){case"zh-CN":return BO;case"zh-TW":return KO;case"fr-FR":return SO;case"ja-JP":return OO;case"hi-IN":return PO;default:return hO}},qS="lotus_vdi_safe_mode",Og=()=>{try{return localStorage.getItem(qS)==="true"}catch{return!1}},L$=e=>{try{localStorage.setItem(qS,e.toString())}catch(t){console.error("[vdiSafeMode] Failed to persist setting:",t)}};async function VO(){const e=Hn.getInstance();for(const t of Object.keys(localStorage))if(t.startsWith("chat-model-options-cache-v1:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&Array.isArray(s.options)&&(await e.saveModelOptionsCache(n,s.options,s.timestamp),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-diff-collapse:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&typeof s.isExpanded=="boolean"&&(await e.saveDiffCollapse(n,{isExpanded:s.isExpanded,expandedFiles:s.expandedFiles||[]}),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-tool-collapse:")){const n=t.split(":");if(n.length>=3){const r=n[1],s=n.slice(2).join(":");try{const o=localStorage.getItem(t);if(o){const 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")}const GO="copilot_ui_theme_v1",kd={colorPrimary:"#0d9488",colorPrimaryHover:"#14b8a6",colorPrimaryActive:"#0f766e",colorInfo:"#0d9488",colorLink:"#0d9488",colorLinkHover:"#14b8a6",colorLinkActive:"#0f766e",colorSuccess:"#10b981",colorWarning:"#f59e0b",colorError:"#ef4444",colorText:"#0f172a",colorTextSecondary:"#475569",colorTextTertiary:"#64748b",colorTextDisabled:"#94a3b8",colorTextLightSolid:"#ffffff",colorBorder:"#d1e3e0",colorBorderSecondary:"#e2f0ee",colorFill:"#f0fdfa",colorFillSecondary:"#f7fdfb",colorFillTertiary:"rgba(255, 255, 255, 0.82)",colorFillQuaternary:"transparent",colorBgLayout:"#f0fdfa",colorBgContainer:"rgba(255, 255, 255, 0.82)",colorBgElevated:"rgba(255, 255, 255, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.16)",colorPrimaryBg:"#f0fdfa",colorPrimaryBgHover:"#ccfbf1",colorPrimaryBorder:"#99f6e4",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 12px 36px rgba(15, 118, 110, 0.10), 0 6px 18px rgba(15, 23, 42, 0.06)",boxShadowSecondary:"0 20px 48px rgba(15, 118, 110, 0.12), 0 8px 24px rgba(15, 23, 42, 0.08)"},Td={colorPrimary:"#2dd4bf",colorPrimaryHover:"#5eead4",colorPrimaryActive:"#0d9488",colorInfo:"#2dd4bf",colorLink:"#2dd4bf",colorLinkHover:"#5eead4",colorLinkActive:"#0d9488",colorSuccess:"#34d399",colorWarning:"#fbbf24",colorError:"#f87171",colorText:"#e5edf8",colorTextSecondary:"#b7c4d6",colorTextTertiary:"#8d9bb0",colorTextDisabled:"#627085",colorBorder:"rgba(255, 255, 255, 0.10)",colorBorderSecondary:"rgba(255, 255, 255, 0.06)",colorFill:"#0c1a17",colorFillSecondary:"#091412",colorFillTertiary:"rgba(15, 23, 42, 0.74)",colorFillQuaternary:"transparent",colorBgLayout:"#070e0c",colorBgContainer:"rgba(11, 22, 18, 0.76)",colorBgElevated:"rgba(15, 30, 25, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.20)",colorPrimaryBg:"rgba(13, 148, 136, 0.14)",colorPrimaryBgHover:"rgba(13, 148, 136, 0.18)",colorPrimaryBorder:"rgba(45, 212, 191, 0.28)",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 16px 40px rgba(2, 6, 23, 0.42), 0 8px 20px rgba(15, 23, 42, 0.24)",boxShadowSecondary:"0 24px 56px rgba(2, 6, 23, 0.5), 0 10px 28px rgba(15, 23, 42, 0.28)"},Pd={Tag:{defaultBg:"rgba(13, 148, 136, 0.1)",defaultColor:"#0f766e"},Table:{bodySortBg:"rgba(13, 148, 136, 0.08)"}},Ed={Tag:{defaultBg:"rgba(45, 212, 191, 0.18)",defaultColor:"#ccfbf1"},Table:{bodySortBg:"rgba(45, 212, 191, 0.14)"}},$g={...kd,colorBgElevated:"#ffffff",colorBgSpotlight:"#0f172a",colorFillTertiary:"#f3f7f6"},Lg={...Td,colorBgElevated:"#0f1b18",colorBgSpotlight:"#22332f",colorFillTertiary:"#162622"},Dg={...Pd,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"}},Fg={...Ed,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 JO(){const{t:e}=Ge(),t=Pl(C=>C.themeMode),n=Pl(C=>C.setThemeMode),[r,s]=b.useState(()=>iw()),[o,a]=b.useState(()=>Og()),[i,c]=b.useState(null),[d,f]=b.useState(null),[m,g]=b.useState(0),[y,x]=b.useState(null),[S,_]=b.useState(!1);if(b.useEffect(()=>{localStorage.setItem(GO,t)},[t]),b.useEffect(()=>{localStorage.setItem(lw,r),cw(r)},[r]),b.useEffect(()=>{let C=!1;const A=Date.now(),I=async()=>{try{const L=po.getInstance(),$=await L.getAccessStatus();if(C)return;if(f(null),x($),$.requires_password&&!S){c(!1);return}const F=await L.getSetupStatus();if(C)return;c(F.is_complete)}catch(L){if(C)return;const $=Date.now()-A;if($>=2e4){const N=yo(),O=L instanceof Error&&L.message.trim()?L.message:"Unknown error";f(e("app.backendNotReachable",{baseUrl:N,message:O}));return}const te=Math.min(500+Math.floor($/2),2e3);setTimeout(()=>{C||I()},te)}};return I(),()=>{C=!0}},[S,m,e]),b.useEffect(()=>{document.body.setAttribute("data-theme",t)},[t]),b.useEffect(()=>{const C=()=>{const A=Og();a(A),document.body.setAttribute("data-vdi-safe",A?"true":"false");const I=document.getElementById("root");I&&I.setAttribute("data-vdi-safe",A?"true":"false")};return C(),window.addEventListener("storage",C),window.addEventListener("lotus-vdi-safe-mode-change",C),()=>{window.removeEventListener("storage",C),window.removeEventListener("lotus-vdi-safe-mode-change",C)}},[]),b.useEffect(()=>{var A;const C=(A=window.__TAURI_INTERNALS__)==null?void 0:A.invoke;typeof C=="function"&&C("set_window_theme",{theme:t}).catch(I=>{console.warn("[App] Failed to sync native window theme:",I)})},[t]),b.useEffect(()=>{i&&Hd().then(()=>Yd()).catch(C=>{console.error("[App] Bootstrap error:",C)})},[i]),b.useEffect(()=>{const C=Hn.getInstance();C.cleanupStaleData(30).catch(I=>{console.warn("[App] Failed to cleanup stale storage data:",I)});const A=setInterval(()=>{C.cleanupStaleData(30).catch(()=>{})},24*60*60*1e3);return()=>clearInterval(A)},[]),b.useEffect(()=>{const C=setTimeout(()=>{VO().catch(A=>{console.warn("[App] Storage migration failed:",A)})},5e3);return()=>clearTimeout(C)},[]),y!=null&&y.requires_password&&!S)return l.jsx(lh,{locale:Ig(r),theme:{token:t==="dark"?o?Lg:Td:o?$g:kd,algorithm:t==="dark"?dt.darkAlgorithm:dt.defaultAlgorithm,components:t==="dark"?o?Fg:Ed:o?Dg:Pd},children:l.jsx(Dn,{children:l.jsx(ri,{name:"PasswordGatePage",children:l.jsx(rO,{verifyPassword:async C=>{await po.getInstance().verifyAccessPassword(C)},onVerified:async()=>{_(!0),f(null),g(C=>C+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(je,{type:"primary",onClick:()=>{f(null),x(null),c(null),g(C=>C+1)},children:e("app.retry")})]}):l.jsx("div",{style:{padding:40,textAlign:"center"},children:e("app.loading")});const E=i?l.jsx(ZI,{themeMode:t,onThemeModeChange:n,locale:r,onLocaleChange:s}):l.jsx(tO,{}),T=t==="dark"?o?Lg:Td:o?$g:kd,P=t==="dark"?o?Fg:Ed:o?Dg:Pd;return l.jsx(lh,{locale:Ig(r),theme:{token:T,algorithm:t==="dark"?dt.darkAlgorithm:dt.defaultAlgorithm,components:P},children:l.jsx(Dn,{children:l.jsx(ri,{name:"App",children:l.jsx("div",{style:{position:"relative"},children:E})})})})}const D$=Object.freeze(Object.defineProperty({__proto__:null,default:JO},Symbol.toStringTag,{value:"Module"}));export{nf as $,$$ as A,Ve as B,ed as C,Za as D,qP as E,ef as F,S1 as G,sc as H,hl as I,rc as J,nc as K,ti as L,AT as M,Fy as N,tr as O,CT as P,Bu as Q,ys as R,Vd as S,v$ as T,b$ as U,C$ as V,Cw as W,po as X,ja as Y,Ps as Z,Zy as _,kt as a,S$ as a0,T$ as a1,s$ as a2,NT as a3,Th as a4,cT as a5,fT as a6,ov as a7,Og as a8,bT as a9,k$ as aa,_$ as ab,w$ as ac,x$ as ad,L$ as ae,o$ as af,y$ as ag,D$ as ah,Ha as b,Ya as c,Pl as d,vt as e,RS as f,Qn as g,io as h,Bd as i,iv as j,Nt as k,jy as l,LR as m,$r as n,F0 as o,Wc as p,zr as q,FT as r,fi as s,Xa as t,ne as u,tp as v,Re as w,So as x,li as y,Or as z};