@bigduu/lotus 2026.7.16 → 2026.7.17

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 (60) hide show
  1. package/dist/assets/{ChildApprovalDialog-D3JIzMHt.js → ChildApprovalDialog-Bn6zDSUn.js} +1 -1
  2. package/dist/assets/CommandPalette-C7M9VREB.js +1 -0
  3. package/dist/assets/{CommandSelector-D1iub2Xt.js → CommandSelector-DCF_eYFM.js} +1 -1
  4. package/dist/assets/{ContextBar-Dei3EKSF.js → ContextBar-1LDCx1UR.js} +1 -1
  5. package/dist/assets/{FilePreview-Xwi8sy95.js → FilePreview-C78F5eM1.js} +1 -1
  6. package/dist/assets/{FileReferenceSelector-DNssZZdw.js → FileReferenceSelector-CMthjAt5.js} +1 -1
  7. package/dist/assets/{HomeDashboard-D_ShmJs6.js → HomeDashboard-D0TwAR_x.js} +1 -1
  8. package/dist/assets/LedgerDrawer-DJn4WNaB.js +1 -0
  9. package/dist/assets/{MetricsService-SES7KJyi.js → MetricsService-BJjcr3PB.js} +56 -56
  10. package/dist/assets/{QuestionDialog--zPJkVTu.js → QuestionDialog-sR4lfOkz.js} +1 -1
  11. package/dist/assets/{SessionSummaryCard-82JEyQoC.js → SessionSummaryCard-CNuYpo8e.js} +1 -1
  12. package/dist/assets/{SubAgentsPanel-XyvlKHnm.js → SubAgentsPanel-XLs7Ffbu.js} +2 -2
  13. package/dist/assets/{SystemPromptSelector-CphUzY3v.js → SystemPromptSelector-Cqg7_foJ.js} +1 -1
  14. package/dist/assets/SystemSettingsPage-DOIZqoTl.js +22 -0
  15. package/dist/assets/{TodoList-Dt4AWMX-.js → TodoList-wgV1m9Hg.js} +1 -1
  16. package/dist/assets/{WorkspacePathModal-VY4m4JK9.js → WorkspacePathModal-BG03pOha.js} +1 -1
  17. package/dist/assets/{architectureDiagram-3BPJPVTR-Cp9JIEeN.js → architectureDiagram-3BPJPVTR-cOrZEDQt.js} +1 -1
  18. package/dist/assets/{blockDiagram-GPEHLZMM-BhuLXME4.js → blockDiagram-GPEHLZMM-BoWpE05L.js} +1 -1
  19. package/dist/assets/{c4Diagram-AAUBKEIU-BxLW463i.js → c4Diagram-AAUBKEIU-BLhKl4mi.js} +1 -1
  20. package/dist/assets/{chunk-4BX2VUAB-fUu_j-f3.js → chunk-4BX2VUAB-BV8TfHHk.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-DP4_eA6B.js → chunk-QZHKN3VN-BJ9jfaj9.js} +1 -1
  22. package/dist/assets/{classDiagram-v2-Q7XG4LA2-JMgl9Z4d.js → classDiagram-v2-Q7XG4LA2-SJYRgOmq.js} +1 -1
  23. package/dist/assets/{cose-bilkent-S5V4N54A-DT4i4YML.js → cose-bilkent-S5V4N54A-DabsZjVy.js} +1 -1
  24. package/dist/assets/{dagre-BM42HDAG-BlP5NLv_.js → dagre-BM42HDAG-CdRFQkvs.js} +1 -1
  25. package/dist/assets/{diagram-2AECGRRQ-M4BYZ-qm.js → diagram-2AECGRRQ-_TJO587u.js} +1 -1
  26. package/dist/assets/{diagram-5GNKFQAL-DTiD5qZV.js → diagram-5GNKFQAL-DwwF5Acg.js} +1 -1
  27. package/dist/assets/{diagram-KO2AKTUF-DZhoD6XO.js → diagram-KO2AKTUF-UxX_1WSV.js} +1 -1
  28. package/dist/assets/{diagram-LMA3HP47-DDpzYGGn.js → diagram-LMA3HP47-BsJLPvmF.js} +1 -1
  29. package/dist/assets/{diagram-OG6HWLK6-B87CUlQI.js → diagram-OG6HWLK6-BJfCFPK-.js} +1 -1
  30. package/dist/assets/{erDiagram-TEJ5UH35-Cz-x4_so.js → erDiagram-TEJ5UH35-B9Kte4_y.js} +1 -1
  31. package/dist/assets/{flowDiagram-I6XJVG4X-jDFiFkQq.js → flowDiagram-I6XJVG4X-CdPPJGVr.js} +1 -1
  32. package/dist/assets/{ganttDiagram-6RSMTGT7-D0AHxd18.js → ganttDiagram-6RSMTGT7-DsXLVmGZ.js} +2 -2
  33. package/dist/assets/{gitGraphDiagram-PVQCEYII-3BmdDCEY.js → gitGraphDiagram-PVQCEYII-m9gNRotf.js} +1 -1
  34. package/dist/assets/{index.es-DWpZqL6k.js → index.es-ATrdjl5_.js} +1 -1
  35. package/dist/assets/{ishikawaDiagram-YF4QCWOH-D6ppRlmA.js → ishikawaDiagram-YF4QCWOH-D4vyoTY2.js} +1 -1
  36. package/dist/assets/{journeyDiagram-JHISSGLW-ZyJZR_-r.js → journeyDiagram-JHISSGLW-weLPS96n.js} +3 -3
  37. package/dist/assets/{kanban-definition-UN3LZRKU-DJ6CZP3_.js → kanban-definition-UN3LZRKU-rzClh9Bn.js} +2 -2
  38. package/dist/assets/{main-Cdq9RMfb.js → main-Bm6Xue83.js} +5 -5
  39. package/dist/assets/{mindmap-definition-RKZ34NQL-hNSB7VDp.js → mindmap-definition-RKZ34NQL-DYNvg2Tz.js} +4 -4
  40. package/dist/assets/{pieDiagram-4H26LBE5-BBixvNPp.js → pieDiagram-4H26LBE5-CQwI5lgg.js} +1 -1
  41. package/dist/assets/{quadrantDiagram-W4KKPZXB-DKPxuW8n.js → quadrantDiagram-W4KKPZXB-CozxrzYe.js} +1 -1
  42. package/dist/assets/{requirementDiagram-4Y6WPE33-DbmLQ_-n.js → requirementDiagram-4Y6WPE33-D922r4PO.js} +1 -1
  43. package/dist/assets/{sankeyDiagram-5OEKKPKP-BqKf8A8K.js → sankeyDiagram-5OEKKPKP-Dr2P1wY4.js} +1 -1
  44. package/dist/assets/{sequenceDiagram-3UESZ5HK-BE84c0u2.js → sequenceDiagram-3UESZ5HK-BH0d3NK4.js} +1 -1
  45. package/dist/assets/{stateDiagram-AJRCARHV-WpFLuBbv.js → stateDiagram-AJRCARHV-Cf1L99UG.js} +1 -1
  46. package/dist/assets/{stateDiagram-v2-BHNVJYJU-Rf8xpY9g.js → stateDiagram-v2-BHNVJYJU-MhE03ChB.js} +1 -1
  47. package/dist/assets/{timeline-definition-PNZ67QCA-CfJ0MJZ4.js → timeline-definition-PNZ67QCA-DLL2fzZK.js} +1 -1
  48. package/dist/assets/{vendor-antd-IzIw5qDM.js → vendor-antd-CzrN6PM8.js} +83 -83
  49. package/dist/assets/{vendor-charts-D6swdFT7.js → vendor-charts-BRxq0LpH.js} +1 -1
  50. package/dist/assets/{vendor-markdown-Bz_2-zkk.js → vendor-markdown-BDStutVw.js} +1 -1
  51. package/dist/assets/{vendor-mermaid-RbHifJqM.js → vendor-mermaid-CztJpwsx.js} +4 -4
  52. package/dist/assets/{vendor-pdf-DwueuChS.js → vendor-pdf-dQDE-8w8.js} +4 -4
  53. package/dist/assets/{vennDiagram-CIIHVFJN-CgllcKU7.js → vennDiagram-CIIHVFJN-BhyFcZ8A.js} +1 -1
  54. package/dist/assets/{wardley-L42UT6IY-BCCJFoSi.js → wardley-L42UT6IY-COxgF6uh.js} +1 -1
  55. package/dist/assets/{wardleyDiagram-YWT4CUSO-D2cgKG7Q.js → wardleyDiagram-YWT4CUSO-DSke7W9T.js} +1 -1
  56. package/dist/assets/{xychartDiagram-2RQKCTM6-2dAPqL-k.js → xychartDiagram-2RQKCTM6-CBS-EC6J.js} +1 -1
  57. package/dist/index.html +4 -4
  58. package/package.json +1 -1
  59. package/dist/assets/CommandPalette-Cfw_1q71.js +0 -1
  60. package/dist/assets/SystemSettingsPage-DCPj52UZ.js +0 -22
@@ -1,18 +1,18 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SystemPromptSelector-CphUzY3v.js","./vendor-markdown-Bz_2-zkk.js","./vendor-i18n-Dm-c3D_C.js","./vendor-antd-IzIw5qDM.js","./vendor-mermaid-RbHifJqM.js","./main-Cdq9RMfb.js","./main-B6snAd4S.css","./FilePreview-Xwi8sy95.js","./CommandSelector-D1iub2Xt.js","./index-Bi-vGirQ.css","./WorkspacePathModal-VY4m4JK9.js","./FileReferenceSelector-DNssZZdw.js","./dist-js-BgoG8Mq6.js","./index-CmG-lq98.js","./vendor-pdf-DwueuChS.js","./ContextBar-Dei3EKSF.js","./index-3qkG_le_.css","./QuestionDialog--zPJkVTu.js","./QuestionDialog-8u7yjQhY.css","./ChildApprovalDialog-D3JIzMHt.js","./SessionSummaryCard-82JEyQoC.js","./index-D9ODTr93.css","./TodoList-Dt4AWMX-.js","./SubAgentsPanel-XyvlKHnm.js","./HomeDashboard-D_ShmJs6.js","./index-AIUPRSCn.css","./SystemSettingsPage-DCPj52UZ.js","./vendor-charts-D6swdFT7.js","./CommandPalette-Cfw_1q71.js","./index-CLYKYSO0.css"])))=>i.map(i=>d[i]);
2
- var bx=Object.defineProperty;var vx=(t,e,n)=>e in t?bx(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ie=(t,e,n)=>vx(t,typeof e!="symbol"?e+"":e,n);import{j as l,M as xr,S as en,a as Cy,t as ky,p as Ty,b as Sx,c as Jd,d as wx,m as Ey,s as xx,y as Py,e as My,h as zl,f as Qd,r as Zd,g as ef,i as Ay}from"./vendor-markdown-Bz_2-zkk.js";import{a as v,u as Xe,R as st,i as Et,c as _x,g as Os}from"./vendor-i18n-Dm-c3D_C.js";import{_ as Ft,bM as tf,bh as Cx,a4 as kx}from"./vendor-mermaid-RbHifJqM.js";import{t as lt,Z as Nh,J as Tx,af as Ex,au as po,aB as Ry,aC as Px,aD as fc,B as Ae,p as Mx,o as $s,ax as mo,aE as Ax,v as Ar,ao as Ls,aF as jy,E as Qu,j as We,F as Ce,$ as go,P as As,aG as Iy,ah as nf,ag as hc,l as fn,aH as Rx,aI as jx,T as ut,A as En,aa as xl,ak as Ix,an as Zu,aJ as Ox,aK as pc,aL as Oy,x as rf,aM as ed,aN as yo,aO as $x,aP as Lx,k as Bl,W as mc,a4 as $y,aQ as Dx,aR as Fx,y as bo,a9 as Nx,n as He,am as zx,a0 as sf,aS as Bx,H as Ly,u as rr,q as Ut,aT as gc,aU as Dy,ar as Wx,D as Ux,a2 as of,aV as Fy,aW as Hx,aX as qx,aY as Kx,N as Rs,aZ as Xx,a_ as Yx,a7 as af,a8 as Rr,av as Wl,a$ as xo,b0 as zi,b1 as Ny,b2 as zy,ad as lf,Y as ao,a5 as zh,b3 as Vx,w as Bh,a1 as By,b4 as _l,b5 as Wy,b6 as Gx,U as Jx,b7 as Qx,b8 as Zx,at as e_,b9 as t_,ba as n_,bb as r_,bc as s_,bd as o_,X as i_,be as ro,G as Uy,bf as a_,bg as Hy,ap as cf,Q as l_,bh as c_,bi as u_,aj as d_,bj as Wh,bk as Uh}from"./vendor-antd-IzIw5qDM.js";import{r as f_,A as h_,k as p_}from"./main-Cdq9RMfb.js";function qy(t){const[e,n]=v.useState(()=>typeof window<"u"?window.matchMedia(t).matches:!1);return v.useEffect(()=>{if(typeof window>"u")return;const r=window.matchMedia(t);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)}},[t]),e}function Zr(){return qy("(max-width: 768px)")}const m_=({chat:t,isSelected:e,compact:n=!1,onSelect:r,onDelete:s,onPin:o,onUnpin:i,onEdit:a,onGenerateTitle:c,onRunProjectDream:d,isGeneratingTitle:f,isRunningProjectDream:p,titleGenerationError:b})=>{const{t:m}=Xe(),[w,y]=v.useState(!1),[_,M]=v.useState(t.title),[C,T]=v.useState(!1),[k,P]=v.useState(!1),{token:A}=lt.useToken(),j=v.useCallback(ae=>{ae.stopPropagation(),a&&_.trim()&&a(t.id,_.trim()),y(!1)},[t.id,_,a]),$=v.useCallback(ae=>{ae.stopPropagation(),M(t.title),y(!1)},[t.title]),F=[{key:"pin",icon:t.pinned?l.jsx(Nh,{style:{color:A.colorWarning}}):l.jsx(Tx,{}),label:t.pinned?m("chat.actions.unpin"):m("chat.actions.pin"),onClick:({domEvent:ae})=>{ae.stopPropagation(),t.pinned?i(t.id):o(t.id)}},{key:"edit",icon:l.jsx(Ex,{}),label:m("chat.chatItem.edit"),onClick:({domEvent:ae})=>{ae.stopPropagation(),y(!0)}},...c?[{key:"generate-title",icon:f?l.jsx(po,{}):l.jsx(Ry,{style:b?{color:A.colorError}:void 0}),label:b||m("chat.actions.generateTitle"),disabled:f,onClick:({domEvent:ae})=>{ae.stopPropagation(),c(t.id)}}]:[],...d?[{key:"run-project-dream",icon:p?l.jsx(po,{}):l.jsx(Px,{}),label:m("chat.actions.runProjectDream"),disabled:p,onClick:({domEvent:ae})=>{ae.stopPropagation(),d(t.id)}}]:[],{type:"divider"},{key:"delete",icon:l.jsx(fc,{}),label:m("common.delete"),danger:!0,onClick:({domEvent:ae})=>{ae.stopPropagation(),s(t.id)}}],X={padding:n?"4px 8px":"5px 8px",borderRadius:A.borderRadiusSM,marginBottom:0,cursor:"pointer",transition:"background-color 0.2s ease, box-shadow 0.2s ease",backgroundColor:e?"var(--lotus-primary-soft)":C||k?"var(--lotus-item-hover-bg)":"transparent",border:"1px solid transparent",borderColor:"transparent",position:"relative",overflow:"visible",boxShadow:e?`inset 2px 0 0 ${A.colorPrimary}`:"none",minHeight:n?28:30},K={flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",fontSize:n?12:12.5,lineHeight:1.3,fontWeight:e?600:500,color:e?"var(--lotus-primary)":A.colorText},O={flex:1,fontSize:A.fontSizeSM,marginRight:A.marginSM},W=w?[l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Mx,{style:{color:A.colorSuccess}}),onClick:j,"aria-label":m("common.save")},"save"),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{style:{color:A.colorError}}),onClick:$,"aria-label":m("common.cancel")},"cancel")]:C||k?[l.jsx(mo,{menu:{items:F,className:"lotus-sidebar-actions-menu"},trigger:["click"],placement:"bottomRight",overlayClassName:"lotus-sidebar-actions-dropdown",open:k,onOpenChange:ae=>P(ae),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Ax,{}),"aria-label":m("common.moreActions","More actions"),onClick:ae=>ae.stopPropagation(),style:{color:A.colorTextSecondary,borderRadius:A.borderRadiusSM,background:"transparent",width:n?16:18,height:n?16:18,display:"flex",alignItems:"center",justifyContent:"center"}})},"more")]:[];return l.jsx(Ar.Item,{style:X,tabIndex:0,onClick:()=>!w&&r(t.id),onKeyDown:ae=>{ae.key==="Enter"&&!w?(ae.preventDefault(),r(t.id)):(ae.key==="Delete"||ae.key==="Backspace")&&!w&&(ae.metaKey||ae.ctrlKey)&&(ae.preventDefault(),s(t.id))},onMouseEnter:()=>T(!0),onMouseLeave:()=>{k||T(!1)},onFocus:()=>T(!0),onBlur:()=>{k||T(!1)},actions:W,"data-testid":"chat-item",role:"option","aria-selected":e,"aria-label":t.title||m("chat.sidebar.untitledChat"),children:l.jsx("div",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:w?l.jsx(Ls,{value:_,onChange:ae=>M(ae.target.value),onClick:ae=>ae.stopPropagation(),onPressEnter:ae=>{ae.preventDefault(),j(ae)},autoFocus:!0,style:O,variant:"borderless",size:"small"}):l.jsxs("div",{style:{...K,display:"flex",alignItems:"center",gap:n?4:A.marginXS,minWidth:0},children:[t.pinned&&l.jsx(Nh,{style:{color:A.colorWarning,fontSize:11,flexShrink:0}}),l.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.title}),t.kind==="child"?l.jsx("span",{style:{color:A.colorInfo,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap"},children:m("chat.chatItem.childTag")}):null,t.planMode?l.jsxs("span",{style:{color:A.colorPrimary,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:3},children:[l.jsx(jy,{}),m("chat.planMode.badge","Plan")]}):null]})})})},g_=(t,e)=>t.chat.id===e.chat.id&&t.chat.title===e.chat.title&&t.chat.pinned===e.chat.pinned&&t.chat.planMode===e.chat.planMode&&t.isSelected===e.isSelected&&t.compact===e.compact&&t.isGeneratingTitle===e.isGeneratingTitle&&t.isRunningProjectDream===e.isRunningProjectDream&&t.titleGenerationError===e.titleGenerationError,td=v.memo(m_,g_);td.displayName="ChatItem";const Hh=t=>({Today:0,Yesterday:1,"This Week":2,"This Month":3})[t]??4,y_=t=>{const e={},n=t.filter(s=>s.pinned);n.length>0&&(e.Pinned=n.sort((s,o)=>o.createdAt-s.createdAt));const r=t.filter(s=>!s.pinned&&!!s.createdByScheduleId);return r.length>0&&(e.Scheduled=r.sort((s,o)=>o.createdAt-s.createdAt)),t.filter(s=>!s.pinned&&!s.createdByScheduleId).forEach(s=>{const i=new Date(s.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});e[i]||(e[i]=[]),e[i].push(s)}),Object.keys(e).forEach(s=>{e[s].sort((o,i)=>i.createdAt-o.createdAt)}),e},b_=t=>{const e=n=>Array.isArray(n)?n.reduce((r,s)=>Math.max(r,s.createdAt),0):Object.values(n).reduce((r,s)=>{const o=s.reduce((i,a)=>Math.max(i,a.createdAt),0);return Math.max(r,o)},0);return Object.keys(t).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=t[n],o=t[r];if(!s||!o)return 0;const i=e(s),a=e(o);return i!==a?a-i:Hh(n)-Hh(r)})},v_=(t,e)=>t[e]?t[e].map(n=>n.id):[],Ky=(t,e)=>t[e]?t[e].length:0,S_=t=>t.createdByScheduleId?"Scheduled":new Date(t.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),qh=(t,e)=>{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"}[t];return r?e(r):t},w_=({groupedChatsByDate:t,childrenByRoot:e,expandedRootIds:n,onToggleRootExpanded:r,sortedDateKeys:s,expandedKeys:o,onCollapseChange:i,currentSessionId:a,onSelectChat:c,onDeleteChat:d,onDeleteByDate:f,onPinChat:p,onUnpinChat:b,onEditTitle:m,onGenerateTitle:w,onRunProjectDream:y,titleGenerationState:_,projectDreamState:M,token:C,hasActiveFilters:T,onClearFilters:k})=>{const{t:P}=Xe(),A=v.useMemo(()=>s.length?s.map($=>{const F=t[$],X=Ky(t,$);return{dateKey:$,dateGroup:F,totalChatsInDate:X}}):[],[t,s]);if(!s.length)return l.jsx(Qu,{image:Qu.PRESENTED_IMAGE_SIMPLE,description:l.jsxs(We,{direction:"vertical",size:4,align:"center",children:[l.jsx("span",{style:{color:C.colorTextSecondary},children:T?P("chat.sidebar.empty.noMatches","No matching sessions"):P("chat.sidebar.empty.noSessions")}),l.jsx("span",{style:{color:C.colorTextSecondary,fontSize:12},children:T?P("chat.sidebar.empty.filterHint","Try adjusting your search or filters"):P("chat.sidebar.empty.hint")}),T&&l.jsx(Ae,{size:"small",type:"link",onClick:k,children:P("chat.sidebar.empty.clearFilters","Clear filters")})]})});const j=new Set(o);return l.jsx("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:2},children:A.map(({dateKey:$,dateGroup:F,totalChatsInDate:X})=>{const K=j.has($);return l.jsxs("div",{style:{borderRadius:C.borderRadiusSM,background:"transparent",padding:0},children:[l.jsxs(Ce,{align:"center",justify:"space-between",style:{cursor:"pointer",padding:"4px 8px",borderRadius:C.borderRadiusSM,transition:"background-color 0.2s ease, color 0.2s ease",border:"1px solid transparent"},role:"button",tabIndex:0,"aria-expanded":K,"aria-label":`${qh($,P)} (${X})`,onKeyDown:O=>{if(O.key==="Enter"||O.key===" "){O.preventDefault();const W=new Set(j);W.has($)?W.delete($):W.add($),i(Array.from(W))}},onMouseEnter:O=>{O.currentTarget.style.background="var(--lotus-sidebar-item-hover-bg, rgba(204, 251, 241, 0.76))",O.currentTarget.style.borderColor="transparent";const W=O.currentTarget.querySelector(".chat-sidebar-date-group-delete");W&&(W.style.opacity="1")},onMouseLeave:O=>{O.currentTarget.style.background="transparent",O.currentTarget.style.borderColor="transparent";const W=O.currentTarget.querySelector(".chat-sidebar-date-group-delete");W&&(W.style.opacity="0")},onClick:()=>{const O=new Set(j);O.has($)?O.delete($):O.add($),i(Array.from(O))},className:"chat-sidebar-date-group-header",children:[l.jsxs(Ce,{align:"center",gap:"small",style:{minWidth:0},children:[K?l.jsx(go,{style:{fontSize:12,opacity:.6}}):l.jsx(As,{style:{fontSize:12,opacity:.6}}),l.jsxs("span",{style:{fontSize:10.5,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.3px",color:$==="Today"?"var(--lotus-primary)":C.colorTextSecondary,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[qh($,P)," (",X,")"]})]}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(fc,{}),className:"chat-sidebar-date-group-delete",style:{color:C.colorTextTertiary,opacity:0,transition:"opacity 0.2s ease"},onClick:O=>{O.stopPropagation(),f($)}})]}),K?l.jsx("div",{style:{marginTop:2},children:l.jsx(Ar,{itemLayout:"horizontal",dataSource:F,split:!1,renderItem:O=>{var W,ae,Y,ce,L,oe;return l.jsxs("div",{children:[l.jsxs(Ce,{align:"center",gap:6,style:{padding:"4px 8px"},children:[(W=e[O.id])!=null&&W.length?l.jsxs(Ae,{size:"small",type:"text",style:{padding:0,minWidth:18,height:18,display:"inline-flex",alignItems:"center",gap:2},"aria-label":n.has(O.id)?P("chat.sidebar.actions.collapseChildren"):P("chat.sidebar.actions.expandChildren"),onClick:Se=>{Se.preventDefault(),Se.stopPropagation(),r(O.id)},children:[l.jsx(Iy,{style:{fontSize:12,color:"var(--lotus-primary)",opacity:n.has(O.id)?1:.85}}),l.jsx("span",{style:{fontSize:9,fontWeight:600,lineHeight:1,color:"var(--lotus-primary)"},children:e[O.id].length})]}):l.jsx("div",{style:{width:18}}),l.jsx("div",{style:{flex:1,minWidth:0,marginLeft:-8},children:l.jsx(td,{chat:O,compact:!0,isSelected:O.id===a,onSelect:c,onDelete:d,onPin:p,onUnpin:b,onEdit:m,onGenerateTitle:w,onRunProjectDream:y,isGeneratingTitle:((ae=_[O.id])==null?void 0:ae.status)==="loading",isRunningProjectDream:((Y=M[O.id])==null?void 0:Y.status)==="loading",titleGenerationError:((ce=_[O.id])==null?void 0:ce.status)==="error"?(L=_[O.id])==null?void 0:L.error:void 0})})]}),n.has(O.id)&&(((oe=e[O.id])==null?void 0:oe.length)??0)>0?l.jsx("div",{style:{marginLeft:18,marginTop:1},children:l.jsx(Ar,{itemLayout:"horizontal",dataSource:e[O.id],split:!1,renderItem:Se=>{var J,te,he,de;return l.jsx("div",{style:{paddingLeft:8,borderLeft:`1px solid ${C.colorBorderSecondary}`,marginLeft:2},children:l.jsx(td,{chat:Se,compact:!0,isSelected:Se.id===a,onSelect:c,onDelete:d,onPin:p,onUnpin:b,onEdit:m,onGenerateTitle:w,onRunProjectDream:y,isGeneratingTitle:((J=_[Se.id])==null?void 0:J.status)==="loading",isRunningProjectDream:((te=M[Se.id])==null?void 0:te.status)==="loading",titleGenerationError:((he=_[Se.id])==null?void 0:he.status)==="error"?(de=_[Se.id])==null?void 0:de.error:void 0})},Se.id)}})}):null]},O.id)}})}):null]},$)})})},Kh=t=>{let e;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(e):d;if(!Object.is(p,e)){const b=e;e=f??(typeof p!="object"||p===null)?p:Object.assign({},e,p),n.forEach(m=>m(e,b))}},s=()=>e,a={setState:r,getState:s,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d))},c=e=t(r,s,a);return a},x_=t=>t?Kh(t):Kh,__=t=>t;function C_(t,e=__){const n=st.useSyncExternalStore(t.subscribe,()=>e(t.getState()),()=>e(t.getInitialState()));return st.useDebugValue(n),n}const Xh=t=>{const e=x_(t),n=r=>C_(e,r);return Object.assign(n,e),n},es=t=>t?Xh(t):Xh,Xy="copilot_ui_theme_v1";function k_(){var t;try{const e=localStorage.getItem(Xy);if(e==="light"||e==="dark")return e}catch{}return(t=window.matchMedia)!=null&&t.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}const Ul=es(t=>({themeMode:k_(),setThemeMode:e=>t({themeMode:e}),toggleTheme:()=>t(e=>({themeMode:e.themeMode==="dark"?"light":"dark"}))})),T_="2026.7.16",E_={version:T_},P_=E_.version,{Text:M_}=ut,A_=({collapsed:t,onNewChat:e,onOpenSettings:n,token:r})=>{const{t:s}=Xe(),o=Ul(f=>f.themeMode),i=Ul(f=>f.toggleTheme),a=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(Ce,{vertical:!0,gap:t?"small":10,style:{padding:t?10:12,background:"transparent",borderTop:`1px solid ${r.colorBorderSecondary}`},children:[l.jsx(Ae,{"data-testid":"new-chat","data-tour-id":"new-session",type:"primary",icon:l.jsx(nf,{}),onClick:e,block:!t,shape:"default",size:"small",title:a,"aria-label":a,className:"lotus-primary-cta",style:{...t?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:t?40:38,fontWeight:600},children:!t&&a}),l.jsxs(Ce,{gap:6,align:"center",children:[l.jsx(Ae,{"data-testid":"open-settings","data-tour-id":"open-settings",icon:l.jsx(hc,{}),onClick:n,block:!t,shape:"default",size:"small",title:c,"aria-label":c,className:"lotus-secondary-button",style:{...t?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:t?40:36,flex:t?void 0:1},children:!t&&c}),!t&&l.jsx(fn,{title:d,placement:"top",children:l.jsx(Ae,{"data-testid":"toggle-theme",type:"text",icon:o==="dark"?l.jsx(Rx,{}):l.jsx(jx,{}),onClick:i,"aria-label":d,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})]}),!t&&l.jsxs(M_,{type:"secondary","data-testid":"app-version-badge",style:{fontSize:11,textAlign:"center",userSelect:"text"},children:[s("settings.appTab.runningVersion","Running version"),": v",P_]})]})},Yh=t=>Symbol.iterator in t,Vh=t=>"entries"in t,Gh=(t,e)=>{const n=t instanceof Map?t:new Map(t.entries()),r=e instanceof Map?e:new Map(e.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},R_=(t,e)=>{const n=t[Symbol.iterator](),r=e[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 j_(t,e){return Object.is(t,e)?!0:typeof t!="object"||t===null||typeof e!="object"||e===null||Object.getPrototypeOf(t)!==Object.getPrototypeOf(e)?!1:Yh(t)&&Yh(e)?Vh(t)&&Vh(e)?Gh(t,e):R_(t,e):Gh({entries:()=>Object.entries(t)},{entries:()=>Object.entries(e)})}function ta(t){const e=st.useRef(void 0);return n=>{const r=t(n);return j_(e.current,r)?e.current:e.current=r}}const Yy=()=>!1,Vy=t=>{if(!Yy())return!1;try{return localStorage.getItem(t)==="1"}catch{return!1}},I_=()=>Vy("bodhi_debug_ui_layout"),Un=(t,e)=>{I_()&&console.log(`[ui-layout] ${t}`,e??"")},pe=(t,e,...n)=>{Yy()&&Vy("bodhi_debug_verbose")&&console.log(`${t} ${e}`,...n)},O_="bodhi_api_v2_ws",nd=()=>{try{const t=localStorage.getItem(O_);return t!=="0"&&t!=="false"}catch{return!0}},$_="bodhi_api_v2_msgpack",L_=()=>{try{return localStorage.getItem($_)==="1"}catch{return!1}};var nu={};const ru="copilot_backend_base_url",Gy="http://127.0.0.1:9562/v1",D_=9562,js=t=>t.trim().replace(/\/+$/,""),F_=()=>{const e=nu==null?void 0:nu.VITE_BACKEND_BASE_URL;return e?js(e):null},Ca=()=>{const t=globalThis.location;if(!t)return null;const e=typeof t.protocol=="string"?t.protocol:"",n=typeof t.hostname=="string"?t.hostname:"";return!e||!n?null:{protocol:e,hostname:n}},uf=t=>{const e=t.trim().toLowerCase();return e==="localhost"||e==="127.0.0.1"||e==="::1"},N_=(t=Ca())=>(t==null?void 0:t.protocol.toLowerCase())==="https:",z_=t=>{try{return new URL(js(t)).protocol.toLowerCase()==="http:"}catch{return!1}},B_=t=>{try{const e=new URL(js(t));return uf(e.hostname)}catch{return!1}},W_=(t=Ca())=>{if(!t)return null;const e=t.protocol.toLowerCase(),n=t.hostname.trim();return n?e==="https:"?js(`https://${n}/v1`):e==="http:"?js(`http://${n}/v1`):null:null},U_=(t,e=Ca())=>{if(!e)return!1;const n=e.hostname.trim();return n?N_(e)&&z_(t)?!0:uf(n)?!1:B_(t):!1},H_=(t=Ca())=>{if(!t)return null;const e=t.protocol.toLowerCase();if(e!=="http:"&&e!=="https:")return null;const n=t.hostname.trim();return n?e==="https:"?W_(t):uf(n)?Gy:js(`http://${n}:${D_}/v1`):null},q_=()=>{const t=F_();return t||(H_()??Gy)},Gr=()=>{const t=Ca(),e=localStorage.getItem(ru);if(e){const n=js(e);if(U_(n,t))console.warn("Ignoring stored backend override because it is incompatible with the current page origin:",n),localStorage.removeItem(ru);else try{return new URL(n),n}catch{console.warn("Invalid stored backend URL, using default:",n),localStorage.removeItem(ru)}}return q_()},K_=()=>{const t=Gr().trim().replace(/\/+$/,""),e=t.endsWith("/v1")?t.slice(0,-3):t,n=new URL(e),r=n.protocol.toLowerCase()==="https:"?"wss:":"ws:";return n.protocol=r,`${r}//${n.host}/v2/stream`};class da extends Error{constructor(e,n,r,s){super(e),this.status=n,this.statusText=r,this.body=s,this.name="ApiError"}}function oF(t){return t instanceof da}class Jy{constructor(e={}){Ie(this,"baseUrl");Ie(this,"defaultHeaders");this.baseUrl=e.baseUrl??this.resolveBaseUrl(),this.defaultHeaders=e.defaultHeaders??{"Content-Type":"application/json"}}resolveBaseUrl(){const e=Gr().trim().replace(/\/+$/,"");return e.endsWith("/v1")?e:`${e}/v1`}buildUrl(e){const n=e.replace(/^\/+/,"");return`${this.baseUrl}/${n}`}async handleResponse(e){var r,s,o;if(!e.ok){const i=await e.text().catch(()=>{});let a=e.statusText;if(i)try{const c=JSON.parse(i),d=typeof(c==null?void 0:c.error)=="object"?(r=c.error)==null?void 0:r.message:void 0;a=(typeof(c==null?void 0:c.error)=="string"?c.error:void 0)||(typeof d=="string"?d:void 0)||c.message||c.detail||e.statusText}catch{a=i||e.statusText}throw new da(a,e.status,e.statusText,i)}return e.status===204?void 0:(((o=(s=e.headers)==null?void 0:s.get)==null?void 0:o.call(s,"content-type"))||"").includes("application/json")?e.json():typeof e.text=="function"?await e.text():e.json()}delay(e){return new Promise(n=>setTimeout(n,e))}async fetchWithRetry(e,n,r=3){let s=null;for(let o=0;o<r;o++)try{const i=await fetch(e,n);if(i.status>=500&&o<r-1){const a=1e3*Math.pow(2,o);console.warn(`Request failed with ${i.status}, retrying in ${a}ms (attempt ${o+1}/${r})`),await this.delay(a);continue}return i}catch(i){if(s=i,o<r-1){const a=1e3*Math.pow(2,o);console.warn(`Network error: ${s.message}, retrying in ${a}ms (attempt ${o+1}/${r})`),await this.delay(a)}}throw s||new Error("Max retries exceeded")}async get(e,n){const r=this.buildUrl(e),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"GET",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async post(e,n,r){const s=this.buildUrl(e),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=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(a)}finally{clearTimeout(i)}}async put(e,n,r){const s=this.buildUrl(e),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=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(a)}finally{clearTimeout(i)}}async patch(e,n,r){const s=this.buildUrl(e),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=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(a)}finally{clearTimeout(i)}}async delete(e,n){const r=this.buildUrl(e),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"DELETE",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async request(e,n,r){const s=this.buildUrl(n),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=await this.fetchWithRetry(s,{...r,method:e,headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",signal:o.signal},3);return this.handleResponse(a)}finally{clearTimeout(i)}}async fetchRaw(e,n){const r=this.buildUrl(e),s=await fetch(r,{...n,headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include"});if(!s.ok)throw new da(`API request failed: ${s.statusText}`,s.status,s.statusText);return s}}const ze=new Jy,Je=new Jy({baseUrl:(()=>{let t=Gr().trim().replace(/\/+$/,"");return t.endsWith("/v1")&&(t=t.slice(0,-3)),`${t}/api/v1`})()});function X_(t){const e=t.length;let n=0,r=0;for(;r<e;){let s=t.charCodeAt(r++);if((s&4294967168)===0){n++;continue}else if((s&4294965248)===0)n+=2;else{if(s>=55296&&s<=56319&&r<e){const o=t.charCodeAt(r);(o&64512)===56320&&(++r,s=((s&1023)<<10)+(o&1023)+65536)}(s&4294901760)===0?n+=3:n+=4}}return n}function Y_(t,e,n){const r=t.length;let s=n,o=0;for(;o<r;){let i=t.charCodeAt(o++);if((i&4294967168)===0){e[s++]=i;continue}else if((i&4294965248)===0)e[s++]=i>>6&31|192;else{if(i>=55296&&i<=56319&&o<r){const a=t.charCodeAt(o);(a&64512)===56320&&(++o,i=((i&1023)<<10)+(a&1023)+65536)}(i&4294901760)===0?(e[s++]=i>>12&15|224,e[s++]=i>>6&63|128):(e[s++]=i>>18&7|240,e[s++]=i>>12&63|128,e[s++]=i>>6&63|128)}e[s++]=i&63|128}}const V_=new TextEncoder,G_=50;function J_(t,e,n){V_.encodeInto(t,e.subarray(n))}function Q_(t,e,n){t.length>G_?J_(t,e,n):Y_(t,e,n)}const Z_=4096;function Qy(t,e,n){let r=e;const s=r+n,o=[];let i="";for(;r<s;){const a=t[r++];if((a&128)===0)o.push(a);else if((a&224)===192){const c=t[r++]&63;o.push((a&31)<<6|c)}else if((a&240)===224){const c=t[r++]&63,d=t[r++]&63;o.push((a&31)<<12|c<<6|d)}else if((a&248)===240){const c=t[r++]&63,d=t[r++]&63,f=t[r++]&63;let p=(a&7)<<18|c<<12|d<<6|f;p>65535&&(p-=65536,o.push(p>>>10&1023|55296),p=56320|p&1023),o.push(p)}else o.push(a);o.length>=Z_&&(i+=String.fromCharCode(...o),o.length=0)}return o.length>0&&(i+=String.fromCharCode(...o)),i}const e0=new TextDecoder,t0=200;function n0(t,e,n){const r=t.subarray(e,e+n);return e0.decode(r)}function r0(t,e,n){return n>t0?n0(t,e,n):Qy(t,e,n)}class Za{constructor(e,n){Ie(this,"type");Ie(this,"data");this.type=e,this.data=n}}class Ln extends Error{constructor(e){super(e);const n=Object.create(Ln.prototype);Object.setPrototypeOf(this,n),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Ln.name})}}const Wo=4294967295;function s0(t,e,n){const r=n/4294967296,s=n;t.setUint32(e,r),t.setUint32(e+4,s)}function Zy(t,e,n){const r=Math.floor(n/4294967296),s=n;t.setUint32(e,r),t.setUint32(e+4,s)}function eb(t,e){const n=t.getInt32(e),r=t.getUint32(e+4);return n*4294967296+r}function o0(t,e){const n=t.getUint32(e),r=t.getUint32(e+4);return n*4294967296+r}const i0=-1,a0=4294967296-1,l0=17179869184-1;function c0({sec:t,nsec:e}){if(t>=0&&e>=0&&t<=l0)if(e===0&&t<=a0){const n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t),n}else{const n=t/4294967296,r=t&4294967295,s=new Uint8Array(8),o=new DataView(s.buffer);return o.setUint32(0,e<<2|n&3),o.setUint32(4,r),s}else{const n=new Uint8Array(12),r=new DataView(n.buffer);return r.setUint32(0,e),Zy(r,4,t),n}}function u0(t){const e=t.getTime(),n=Math.floor(e/1e3),r=(e-n*1e3)*1e6,s=Math.floor(r/1e9);return{sec:n+s,nsec:r-s*1e9}}function d0(t){if(t instanceof Date){const e=u0(t);return c0(e)}else return null}function f0(t){const e=new DataView(t.buffer,t.byteOffset,t.byteLength);switch(t.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{const n=e.getUint32(0),r=e.getUint32(4),s=(n&3)*4294967296+r,o=n>>>2;return{sec:s,nsec:o}}case 12:{const n=eb(e,4),r=e.getUint32(0);return{sec:n,nsec:r}}default:throw new Ln(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${t.length}`)}}function h0(t){const e=f0(t);return new Date(e.sec*1e3+e.nsec/1e6)}const p0={type:i0,encode:d0,decode:h0},dc=class dc{constructor(){Ie(this,"__brand");Ie(this,"builtInEncoders",[]);Ie(this,"builtInDecoders",[]);Ie(this,"encoders",[]);Ie(this,"decoders",[]);this.register(p0)}register({type:e,encode:n,decode:r}){if(e>=0)this.encoders[e]=n,this.decoders[e]=r;else{const s=-1-e;this.builtInEncoders[s]=n,this.builtInDecoders[s]=r}}tryToEncode(e,n){for(let r=0;r<this.builtInEncoders.length;r++){const s=this.builtInEncoders[r];if(s!=null){const o=s(e,n);if(o!=null){const i=-1-r;return new Za(i,o)}}}for(let r=0;r<this.encoders.length;r++){const s=this.encoders[r];if(s!=null){const o=s(e,n);if(o!=null){const i=r;return new Za(i,o)}}}return e instanceof Za?e:null}decode(e,n,r){const s=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return s?s(e,n,r):new Za(n,e)}};Ie(dc,"defaultCodec",new dc);let Hl=dc;function m0(t){return t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer}function rd(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):m0(t)?new Uint8Array(t):Uint8Array.from(t)}const g0=100,y0=2048;class df{constructor(e){Ie(this,"extensionCodec");Ie(this,"context");Ie(this,"useBigInt64");Ie(this,"maxDepth");Ie(this,"initialBufferSize");Ie(this,"sortKeys");Ie(this,"forceFloat32");Ie(this,"ignoreUndefined");Ie(this,"forceIntegerToFloat");Ie(this,"pos");Ie(this,"view");Ie(this,"bytes");Ie(this,"entered",!1);this.extensionCodec=(e==null?void 0:e.extensionCodec)??Hl.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.maxDepth=(e==null?void 0:e.maxDepth)??g0,this.initialBufferSize=(e==null?void 0:e.initialBufferSize)??y0,this.sortKeys=(e==null?void 0:e.sortKeys)??!1,this.forceFloat32=(e==null?void 0:e.forceFloat32)??!1,this.ignoreUndefined=(e==null?void 0:e.ignoreUndefined)??!1,this.forceIntegerToFloat=(e==null?void 0:e.forceIntegerToFloat)??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new df({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,n){if(n>this.maxDepth)throw new Error(`Too deep objects in depth ${n}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,n)}ensureBufferSizeToWrite(e){const n=this.pos+e;this.view.byteLength<n&&this.resizeBuffer(n*2)}resizeBuffer(e){const n=new ArrayBuffer(e),r=new Uint8Array(n),s=new DataView(n);r.set(this.bytes),this.view=s,this.bytes=r}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}encodeBigInt64(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){const r=X_(e);this.ensureBufferSizeToWrite(5+r),this.writeStringHeader(r),Q_(e,this.bytes,this.pos),this.pos+=r}encodeObject(e,n){const r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,n);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,n);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){const n=e.byteLength;if(n<256)this.writeU8(196),this.writeU8(n);else if(n<65536)this.writeU8(197),this.writeU16(n);else if(n<4294967296)this.writeU8(198),this.writeU32(n);else throw new Error(`Too large binary: ${n}`);const r=rd(e);this.writeU8a(r)}encodeArray(e,n){const r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw new Error(`Too large array: ${r}`);for(const s of e)this.doEncode(s,n+1)}countWithoutUndefined(e,n){let r=0;for(const s of n)e[s]!==void 0&&r++;return r}encodeMap(e,n){const r=Object.keys(e);this.sortKeys&&r.sort();const s=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(s<16)this.writeU8(128+s);else if(s<65536)this.writeU8(222),this.writeU16(s);else if(s<4294967296)this.writeU8(223),this.writeU32(s);else throw new Error(`Too large map object: ${s}`);for(const o of r){const i=e[o];this.ignoreUndefined&&i===void 0||(this.encodeString(o),this.doEncode(i,n+1))}}encodeExtension(e){if(typeof e.data=="function"){const r=e.data(this.pos+6),s=r.length;if(s>=4294967296)throw new Error(`Too large extension object: ${s}`);this.writeU8(201),this.writeU32(s),this.writeI8(e.type),this.writeU8a(r);return}const n=e.data.length;if(n===1)this.writeU8(212);else if(n===2)this.writeU8(213);else if(n===4)this.writeU8(214);else if(n===8)this.writeU8(215);else if(n===16)this.writeU8(216);else if(n<256)this.writeU8(199),this.writeU8(n);else if(n<65536)this.writeU8(200),this.writeU16(n);else if(n<4294967296)this.writeU8(201),this.writeU32(n);else throw new Error(`Too large extension object: ${n}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){const n=e.length;this.ensureBufferSizeToWrite(n),this.bytes.set(e,this.pos),this.pos+=n}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),s0(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),Zy(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}}function b0(t,e){return new df(e).encodeSharedRef(t)}function su(t){return`${t<0?"-":""}0x${Math.abs(t).toString(16).padStart(2,"0")}`}const v0=16,S0=16;class w0{constructor(e=v0,n=S0){Ie(this,"hit",0);Ie(this,"miss",0);Ie(this,"caches");Ie(this,"maxKeyLength");Ie(this,"maxLengthPerKey");this.maxKeyLength=e,this.maxLengthPerKey=n,this.caches=[];for(let r=0;r<this.maxKeyLength;r++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,n,r){const s=this.caches[r-1];e:for(const o of s){const i=o.bytes;for(let a=0;a<r;a++)if(i[a]!==e[n+a])continue e;return o.str}return null}store(e,n){const r=this.caches[e.length-1],s={bytes:e,str:n};r.length>=this.maxLengthPerKey?r[Math.random()*r.length|0]=s:r.push(s)}decode(e,n,r){const s=this.find(e,n,r);if(s!=null)return this.hit++,s;this.miss++;const o=Qy(e,n,r),i=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(i,o),o}}const sd="array",na="map_key",tb="map_value",x0=t=>{if(typeof t=="string"||typeof t=="number")return t;throw new Ln("The type of key must be string or number but "+typeof t)};class _0{constructor(){Ie(this,"stack",[]);Ie(this,"stackHeadPosition",-1)}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){const n=this.getUninitializedStateFromPool();n.type=sd,n.position=0,n.size=e,n.array=new Array(e)}pushMapState(e){const n=this.getUninitializedStateFromPool();n.type=na,n.readCount=0,n.size=e,n.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===sd){const r=e;r.size=0,r.array=void 0,r.position=0,r.type=void 0}if(e.type===na||e.type===tb){const r=e;r.size=0,r.map=void 0,r.readCount=0,r.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}const Uo=-1,ff=new DataView(new ArrayBuffer(0)),C0=new Uint8Array(ff.buffer);try{ff.getInt8(0)}catch(t){if(!(t instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}const Jh=new RangeError("Insufficient data"),k0=new w0;class hf{constructor(e){Ie(this,"extensionCodec");Ie(this,"context");Ie(this,"useBigInt64");Ie(this,"rawStrings");Ie(this,"maxStrLength");Ie(this,"maxBinLength");Ie(this,"maxArrayLength");Ie(this,"maxMapLength");Ie(this,"maxExtLength");Ie(this,"keyDecoder");Ie(this,"mapKeyConverter");Ie(this,"totalPos",0);Ie(this,"pos",0);Ie(this,"view",ff);Ie(this,"bytes",C0);Ie(this,"headByte",Uo);Ie(this,"stack",new _0);Ie(this,"entered",!1);this.extensionCodec=(e==null?void 0:e.extensionCodec)??Hl.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.rawStrings=(e==null?void 0:e.rawStrings)??!1,this.maxStrLength=(e==null?void 0:e.maxStrLength)??Wo,this.maxBinLength=(e==null?void 0:e.maxBinLength)??Wo,this.maxArrayLength=(e==null?void 0:e.maxArrayLength)??Wo,this.maxMapLength=(e==null?void 0:e.maxMapLength)??Wo,this.maxExtLength=(e==null?void 0:e.maxExtLength)??Wo,this.keyDecoder=(e==null?void 0:e.keyDecoder)!==void 0?e.keyDecoder:k0,this.mapKeyConverter=(e==null?void 0:e.mapKeyConverter)??x0}clone(){return new hf({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=Uo,this.stack.reset()}setBuffer(e){const n=rd(e);this.bytes=n,this.view=new DataView(n.buffer,n.byteOffset,n.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===Uo&&!this.hasRemaining(1))this.setBuffer(e);else{const n=this.bytes.subarray(this.pos),r=rd(e),s=new Uint8Array(n.length+r.length);s.set(n),s.set(r,n.length),this.setBuffer(s)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){const{view:n,pos:r}=this;return new RangeError(`Extra ${n.byteLength-r} of ${n.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);const n=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return n}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{for(this.entered=!0,this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let n=!1,r;for await(const a of e){if(n)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(a);try{r=this.doDecodeSync(),n=!0}catch(c){if(!(c instanceof RangeError))throw c}this.totalPos+=this.pos}if(n){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return r}const{headByte:s,pos:o,totalPos:i}=this;throw new RangeError(`Insufficient data in parsing ${su(s)} at ${i} (${o} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,n){if(this.entered){yield*this.clone().decodeMultiAsync(e,n);return}try{this.entered=!0;let r=n,s=-1;for await(const o of e){if(n&&s===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(o),r&&(s=this.readArraySize(),r=!1,this.complete());try{for(;yield this.doDecodeSync(),--s!==0;);}catch(i){if(!(i instanceof RangeError))throw i}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:for(;;){const e=this.readHeadByte();let n;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){const s=e-128;if(s!==0){this.pushMapState(s),this.complete();continue e}else n={}}else if(e<160){const s=e-144;if(s!==0){this.pushArrayState(s),this.complete();continue e}else n=[]}else{const s=e-160;n=this.decodeString(s,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)this.useBigInt64?n=this.readU64AsBigInt():n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)this.useBigInt64?n=this.readI64AsBigInt():n=this.readI64();else if(e===217){const s=this.lookU8();n=this.decodeString(s,1)}else if(e===218){const s=this.lookU16();n=this.decodeString(s,2)}else if(e===219){const s=this.lookU32();n=this.decodeString(s,4)}else if(e===220){const s=this.readU16();if(s!==0){this.pushArrayState(s),this.complete();continue e}else n=[]}else if(e===221){const s=this.readU32();if(s!==0){this.pushArrayState(s),this.complete();continue e}else n=[]}else if(e===222){const s=this.readU16();if(s!==0){this.pushMapState(s),this.complete();continue e}else n={}}else if(e===223){const s=this.readU32();if(s!==0){this.pushMapState(s),this.complete();continue e}else n={}}else if(e===196){const s=this.lookU8();n=this.decodeBinary(s,1)}else if(e===197){const s=this.lookU16();n=this.decodeBinary(s,2)}else if(e===198){const s=this.lookU32();n=this.decodeBinary(s,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){const s=this.lookU8();n=this.decodeExtension(s,1)}else if(e===200){const s=this.lookU16();n=this.decodeExtension(s,2)}else if(e===201){const s=this.lookU32();n=this.decodeExtension(s,4)}else throw new Ln(`Unrecognized type byte: ${su(e)}`);this.complete();const r=this.stack;for(;r.length>0;){const s=r.top();if(s.type===sd)if(s.array[s.position]=n,s.position++,s.position===s.size)n=s.array,r.release(s);else continue e;else if(s.type===na){if(n==="__proto__")throw new Ln("The key __proto__ is not allowed");s.key=this.mapKeyConverter(n),s.type=tb;continue e}else if(s.map[s.key]=n,s.readCount++,s.readCount===s.size)n=s.map,r.release(s);else{s.key=null,s.type=na;continue e}}return n}}readHeadByte(){return this.headByte===Uo&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=Uo}readArraySize(){const e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new Ln(`Unrecognized array type byte: ${su(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new Ln(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new Ln(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,n){return!this.rawStrings||this.stateIsMapKey()?this.decodeUtf8String(e,n):this.decodeBinary(e,n)}decodeUtf8String(e,n){var o;if(e>this.maxStrLength)throw new Ln(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+n+e)throw Jh;const r=this.pos+n;let s;return this.stateIsMapKey()&&((o=this.keyDecoder)!=null&&o.canBeCached(e))?s=this.keyDecoder.decode(this.bytes,r,e):s=r0(this.bytes,r,e),this.pos+=n+e,s}stateIsMapKey(){return this.stack.length>0?this.stack.top().type===na:!1}decodeBinary(e,n){if(e>this.maxBinLength)throw new Ln(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+n))throw Jh;const r=this.pos+n,s=this.bytes.subarray(r,r+e);return this.pos+=n+e,s}decodeExtension(e,n){if(e>this.maxExtLength)throw new Ln(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);const r=this.view.getInt8(this.pos+n),s=this.decodeBinary(e,n+1);return this.extensionCodec.decode(s,r,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){const e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){const e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){const e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){const e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){const e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){const e=o0(this.view,this.pos);return this.pos+=8,e}readI64(){const e=eb(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){const e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){const e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){const e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){const e=this.view.getFloat64(this.pos);return this.pos+=8,e}}function Qh(t,e){return new hf(e).decode(t)}const T0=15e3,E0=500,nb="bamboo.v2.msgpack",P0=3500,M0=15e3,A0=3;let zt=null,hs=!1,ra=0,lo=null,co=!1,yr=!1,fa=!1,Bi=null,Zs=0,uo=null;const ql=new Set;let bt=null;const ha=new Map,rb=t=>`agent.${t}`,pf=()=>bt!==null||ha.size>0,R0=()=>zt!==null&&zt.protocol===nb,Es=t=>{if(zt&&zt.readyState===WebSocket.OPEN)try{zt.send(R0()?b0(t):JSON.stringify(t))}catch(e){pe("[v2Stream]","send.error",{payload:t,error:e})}},j0=()=>{Es({type:"hello"}),bt&&Es({type:"subscribe",ch:"feed",since:bt.since});for(const t of ha.values())Es({type:"subscribe",ch:rb(t.sessionId)})},sb=()=>{lo&&(clearTimeout(lo),lo=null)},mf=()=>{uo&&(clearTimeout(uo),uo=null)},ob=t=>{if(t&&!yr){if(fa){const e=t;queueMicrotask(()=>{yr||fa&&e()});return}ql.add(t)}},el=t=>{if(fa||yr&&!(t!=null&&t.force))return;fa=!0,mf(),sb(),co=!0,ib(),hs=!1,pe("[v2Stream]","connect.failed_initial",{});const e=[...ql];ql.clear();for(const n of e)try{n()}catch(r){pe("[v2Stream]","connect.failed_initial.listener_error",{error:r})}},Zh=()=>{if(!pf()||co||lo)return;const t=Math.min(E0*2**ra,T0);ra+=1,pe("[v2Stream]","reconnect.schedule",{attempt:ra,delay:t}),lo=setTimeout(()=>{lo=null,gf()},t)},ib=()=>{if(zt){zt.onopen=null,zt.onmessage=null,zt.onerror=null,zt.onclose=null;try{zt.close()}catch{}zt=null}},ab=()=>{pf()||(co=!0,sb(),mf(),ib(),hs=!1,ra=0,yr=!1,fa=!1,Bi=null,Zs=0,ql.clear())},I0=t=>{try{if(typeof t=="string")return JSON.parse(t);if(t instanceof ArrayBuffer)return Qh(new Uint8Array(t));if(ArrayBuffer.isView(t)){const e=t;return Qh(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}pe("[v2Stream]","frame.unknown_data_type",{});return}catch(e){console.warn("Failed to parse v2 stream frame:",t,e);return}},O0=t=>{var s,o;if(!t||typeof t.ch!="string"){pe("[v2Stream]","frame.unknown",{});return}const{ch:e,control:n,event:r}=t;if(e==="feed"){if(!bt)return;if(n){n.type==="feed_reset"&&(pe("[v2Stream]","feed.reset",{}),bt.since=0,(o=(s=bt.handlers).onReset)==null||o.call(s));return}if(r===void 0){pe("[v2Stream]","feed.frame.no_event",{});return}const i=r;typeof i.seq=="number"&&i.seq>bt.since&&(bt.since=i.seq),bt.handlers.onChange(i);return}if(e.startsWith("agent.")){const i=ha.get(e);if(!i)return;if(n){n.type==="terminal"&&(pe("[v2Stream]","agent.terminal",{ch:e}),i.resolve());return}if(r===void 0){pe("[v2Stream]","agent.frame.no_event",{});return}try{i.dispatch(r,i.handlers)}catch(a){console.warn("Failed to dispatch v2 agent event:",r,a)}return}pe("[v2Stream]","frame.unknown_channel",{ch:e})},gf=()=>{var r,s,o,i;if(!pf()||zt&&(zt.readyState===WebSocket.OPEN||zt.readyState===WebSocket.CONNECTING)||hs)return;if(typeof WebSocket>"u"){pe("[v2Stream]","connect.no_websocket",{});return}hs=!0,co=!1;const t=K_();pe("[v2Stream]","connect",{url:t});const e=L_();let n;try{n=e?new WebSocket(t,[nb]):new WebSocket(t),e&&(n.binaryType="arraybuffer")}catch(a){if(hs=!1,pe("[v2Stream]","connect.error",{error:a}),!yr){(s=bt==null?void 0:(r=bt.handlers).onError)==null||s.call(r),queueMicrotask(()=>el());return}(i=bt==null?void 0:(o=bt.handlers).onError)==null||i.call(o),Zh();return}zt=n,!yr&&!uo&&(uo=setTimeout(()=>{uo=null,yr||(pe("[v2Stream]","connect.open_timeout",{}),el())},P0)),n.onopen=()=>{var a,c;hs=!1,ra=0,yr=!0,Bi=Date.now(),mf(),pe("[v2Stream]","open",{}),j0(),(c=bt==null?void 0:(a=bt.handlers).onOpen)==null||c.call(a)},n.onmessage=a=>{O0(I0(a.data))},n.onerror=()=>{var a,c;pe("[v2Stream]","error",{}),(c=bt==null?void 0:(a=bt.handlers).onError)==null||c.call(a)},n.onclose=()=>{var c,d,f,p,b,m;if(hs=!1,pe("[v2Stream]","close",{intentional:co,everOpened:yr}),zt===n&&(zt=null),co)return;if(!yr){(d=bt==null?void 0:(c=bt.handlers).onError)==null||d.call(c),el();return}const a=Bi===null?0:Date.now()-Bi;if(Bi=null,a>=M0)Zs=0;else if(Zs+=1,pe("[v2Stream]","close.short_lived",{openedFor:a,shortLivedCloses:Zs}),Zs>=A0){pe("[v2Stream]","close.short_lived.fallback",{shortLivedCloses:Zs}),(p=bt==null?void 0:(f=bt.handlers).onError)==null||p.call(f),el({force:!0});return}(m=bt==null?void 0:(b=bt.handlers).onError)==null||m.call(b),Zh()}},$0=(t,e,n)=>{bt={handlers:t,since:e>0?e:0},ob(n),zt&&zt.readyState===WebSocket.OPEN?Es({type:"subscribe",ch:"feed",since:bt.since}):gf();let r=!1;return{close(){r||(r=!0,bt=null,Es({type:"unsubscribe",ch:"feed"}),ab())}}},L0=(t,e,n,r)=>{const s=rb(t);let o=!1,i=()=>{};const a=new Promise(c=>{i=()=>{o||(o=!0,ha.delete(s),Es({type:"unsubscribe",ch:s}),ab(),c())}});return ha.set(s,{sessionId:t,handlers:e,dispatch:n,resolve:i}),ob(r),zt&&zt.readyState===WebSocket.OPEN?Es({type:"subscribe",ch:s}):gf(),{promise:a,close:i}},D0=t=>t?{client_message_count:t.client_message_count,client_last_message_id:t.client_last_message_id??null,client_has_pending_question:t.client_has_pending_question,client_pending_question_tool_call_id:t.client_pending_question_tool_call_id??null}:null,F0=t=>t?{need_sync:t.need_sync,reason:t.reason??null,server_message_count:t.server_message_count,server_last_message_id:t.server_last_message_id??null,has_pending_question:t.has_pending_question,pending_question_tool_call_id:t.pending_question_tool_call_id??null,has_pending_user_message:t.has_pending_user_message}:null,N0=t=>{var n;const e=t.messages[t.messages.length-1];return{session_id:t.session_id,messageCount:t.messages.length,lastMessageId:(e==null?void 0:e.id)??null,lastRole:(e==null?void 0:e.role)??null,compressionEvents:((n=t.compression_events)==null?void 0:n.length)??0}},z0=t=>({count:t.length,runningCount:t.filter(e=>e.is_running).length,sessions:t.slice(0,10).map(e=>({id:e.id,is_running:e.is_running,last_run_status:e.last_run_status??null,message_count:e.message_count,has_pending_question:e.has_pending_question??!1,running_child_count:e.running_child_count??0,updated_at:e.updated_at}))}),B0=t=>({count:t.sessions.length,sessions:t.sessions.map(e=>({session_id:e.session_id,run_id:e.run_id,round_count:e.round_count,last_event_at:e.last_event_at??null,last_tool_name:e.last_tool_name??null,last_tool_phase:e.last_tool_phase??null,criticalEventCount:e.last_critical_events.length,runningChildCount:e.running_child_session_ids.length}))}),tl=t=>({type:t.type,session_id:t.session_id??null,run_id:t.run_id??null,round_count:t.round_count??null,message:t.message??null,error:t.error??null,tool_call_id:t.tool_call_id??null}),bs=class bs{static getInstance(){return bs.instance||(bs.instance=new bs),bs.instance}async sendMessage(e){var r,s,o;pe("[AgentClient]","chat.request",{sessionId:e.session_id??null,model:e.model,modelRef:e.model_ref??null,provider:e.provider??null,messageLength:e.message.length,hasImages:(((r=e.images)==null?void 0:r.length)??0)>0,imageCount:((s=e.images)==null?void 0:s.length)??0,selectedSkillCount:((o=e.selected_skill_ids)==null?void 0:o.length)??0,workspacePath:e.workspace_path??null});const n=await Je.post("chat",e);return pe("[AgentClient]","chat.response",{requestedSessionId:e.session_id??null,sessionId:n.session_id,status:n.status}),n}async execute(e,n,r,s,o){const i={};n&&(i.model=n),r&&(i.reasoning_effort=r),s&&(i.client_sync=s),o&&(i.model_ref=o,i.provider=o.provider),pe("[AgentClient]","execute.request",{sessionId:e,model:i.model??null,reasoningEffort:i.reasoning_effort??null,modelRef:i.model_ref??null,provider:i.provider??null,clientSync:D0(i.client_sync)});const a=await Je.post(`execute/${e}`,i);return pe("[AgentClient]","execute.response",{sessionId:e,status:a.status,runId:a.run_id??null,eventsUrl:a.events_url,sync:F0(a.sync)}),a}async listSessions(){pe("[AgentClient]","sessions.list.request",{});const e=await Je.get("sessions");return pe("[AgentClient]","sessions.list.response",z0(e.sessions)),e}async getTaskList(e){const n=encodeURIComponent(e),r=await Je.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 getPendingQuestion(e){const n=encodeURIComponent(e);try{return await Je.get(`respond/${n}/pending`)}catch(r){return console.warn(`[AgentClient] getPendingQuestion failed for ${e}:`,r),{has_pending_question:!1}}}async createSession(e){return Je.post("sessions",e)}async patchSession(e,n){const r=encodeURIComponent(e);await Je.patch(`sessions/${r}`,n)}async regenerateSessionTitle(e){const n=encodeURIComponent(e);await Je.post(`sessions/${n}/regenerate-title`)}async getSessionSystemPrompt(e){const n=encodeURIComponent(e);return Je.get(`sessions/${n}/system-prompt`)}async clearSession(e){const n=encodeURIComponent(e);await Je.post(`sessions/${n}/clear`)}async runProjectDream(e){const n=encodeURIComponent(e);return Je.post(`sessions/${n}/project-dream/run`)}async truncateSessionMessages(e,n){const r=encodeURIComponent(e);return Je.post(`sessions/${r}/messages/truncate`,n)}async restoreSessionState(e,n){const r=encodeURIComponent(e);return Je.post(`sessions/${r}/restore`,n)}async patchSessionMessage(e,n,r){const s=encodeURIComponent(e),o=encodeURIComponent(n);await Je.patch(`sessions/${s}/messages/${o}`,r)}async deleteSessionMessage(e,n){const r=encodeURIComponent(e),s=encodeURIComponent(n);await Je.delete(`sessions/${r}/messages/${s}`)}async cleanupSessions(e,n){await Je.post("sessions/cleanup",{mode:e,keep_pinned:n})}async respondToChildApproval(e,n,r){return Je.post(`child-approval/${encodeURIComponent(e)}`,{request_id:n,approved:r})}async devResetSessions(){await Je.post("dev/reset")}async getRunningSessions(){pe("[AgentClient]","runs.active.request",{});const e=await Je.get("runs/active");return pe("[AgentClient]","runs.active.response",B0(e)),e}async listSchedules(){return Je.get("schedules")}async createSchedule(e){return Je.post("schedules",e)}async patchSchedule(e,n){const r=encodeURIComponent(e);return Je.patch(`schedules/${r}`,n)}async deleteSchedule(e){const n=encodeURIComponent(e);await Je.delete(`schedules/${n}`)}async runScheduleNow(e){const n=encodeURIComponent(e);await Je.post(`schedules/${n}/run`)}async listScheduleSessions(e){const n=encodeURIComponent(e);return Je.get(`schedules/${n}/sessions`)}async listScheduleRuns(e){const n=encodeURIComponent(e);return Je.get(`schedules/${n}/runs`)}async subscribeToEvents(e,n,r){const s=r==null?void 0:r.signal;if(pe("[AgentClient]","events.subscribe.request",{sessionId:e}),nd()){if(s!=null&&s.aborted){pe("[AgentClient]","events.subscribe.ws.aborted_before_connect",{sessionId:e});return}let o=!1;await new Promise((a,c)=>{let d=()=>{};const f=L0(e,n,(m,w)=>this.handleEvent(m,w),()=>{o=!0,pe("[AgentClient]","events.subscribe.ws.connect_failed_fallback",{sessionId:e}),d(),this.subscribeToEventsSse(e,n,s).then(a,c)}),{promise:p}=f;d=f.close;const b=()=>{pe("[AgentClient]","events.subscribe.ws.abort",{sessionId:e}),d()};s==null||s.addEventListener("abort",b,{once:!0}),p.then(()=>{s==null||s.removeEventListener("abort",b),o||a()}).catch(m=>{s==null||s.removeEventListener("abort",b),o||c(m)})});return}return this.subscribeToEventsSse(e,n,s)}subscribeToEventsSse(e,n,r){const s=Gr().trim().replace(/\/+$/,""),i=`${s.endsWith("/v1")?s.slice(0,-3):s}/api/v1/events/${encodeURIComponent(e)}`;return pe("[AgentClient]","events.subscribe.url",{sessionId:e,eventsUrl:i}),new Promise((a,c)=>{if(r!=null&&r.aborted){pe("[AgentClient]","events.subscribe.aborted_before_connect",{sessionId:e}),a();return}let d=!1,f=!1,p=null;const b=()=>{pe("[AgentClient]","events.subscribe.abort",{sessionId:e,terminalSeen:f}),w()},m=()=>{p&&(p.close(),p=null),r==null||r.removeEventListener("abort",b)},w=()=>{d||(d=!0,pe("[AgentClient]","events.subscribe.resolve",{sessionId:e,terminalSeen:f,aborted:(r==null?void 0:r.aborted)??!1}),m(),a())},y=_=>{d||(d=!0,pe("[AgentClient]","events.subscribe.reject",{sessionId:e,terminalSeen:f,aborted:(r==null?void 0:r.aborted)??!1,error:_}),m(),c(_))};r==null||r.addEventListener("abort",b,{once:!0});try{p=new EventSource(i,{withCredentials:!0})}catch(_){y(_);return}p.onopen=()=>{pe("[AgentClient]","events.subscribe.open",{sessionId:e})},p.onmessage=_=>{const M=_.data;if(M==="[DONE]"){f=!0,pe("[AgentClient]","events.subscribe.done",{sessionId:e}),w();return}if(M!=="[KEEPALIVE]")try{const C=JSON.parse(M);(C.type==="execution_started"||C.type==="complete"||C.type==="cancelled"||C.type==="error"||C.type==="runner_progress"||C.type==="need_clarification")&&pe("[AgentClient]","events.subscribe.event",{sessionId:e,...tl(C)}),this.handleEvent(C,n),(C.type==="complete"||C.type==="cancelled"||C.type==="error")&&(f=!0)}catch(C){console.warn("Failed to parse event:",M,C)}},p.onerror=()=>{if(pe("[AgentClient]","events.subscribe.error",{sessionId:e,terminalSeen:f,aborted:(r==null?void 0:r.aborted)??!1}),r!=null&&r.aborted||f){w();return}y(new Error(`EventSource connection failed for session ${e}`))}})}subscribeToAccountStream(e,n){if(nd()){let r=!1,s=null,o=()=>{};const i=$0(e,(n==null?void 0:n.since)??0,()=>{r||(pe("[AgentClient]","stream.subscribe.ws.connect_failed_fallback",{}),o(),s=this.subscribeAccountStreamSse(e,n))});return o=()=>i.close(),s===null&&(s=i),{close(){r||(r=!0,s==null||s.close())}}}return this.subscribeAccountStreamSse(e,n)}subscribeAccountStreamSse(e,n){const r=Gr().trim().replace(/\/+$/,""),s=r.endsWith("/v1")?r.slice(0,-3):r,o=n!=null&&n.since&&n.since>0?`?since=${n.since}`:"",i=`${s}/api/v1/stream${o}`;pe("[AgentClient]","stream.subscribe.url",{url:i});const a=new EventSource(i,{withCredentials:!0});return a.onopen=()=>{var c;pe("[AgentClient]","stream.subscribe.open",{}),(c=e.onOpen)==null||c.call(e)},a.onmessage=c=>{var f;const d=c.data;if(d!=="[KEEPALIVE]")try{const p=JSON.parse(d);if(p.type==="feed_reset"){pe("[AgentClient]","stream.subscribe.feed_reset",p),(f=e.onReset)==null||f.call(e);return}e.onChange(p)}catch(p){console.warn("Failed to parse change-feed event:",d,p)}},a.onerror=()=>{var c;pe("[AgentClient]","stream.subscribe.error",{}),(c=e.onError)==null||c.call(e)},a}handleEvent(e,n){var r,s,o,i,a,c,d,f,p,b,m,w,y,_,M,C,T,k,P,A,j,$,F,X,K,O,W,ae,Y,ce,L,oe,Se,J,te;switch(e.type){case"token":(r=n.onToken)==null||r.call(n,e.content||"");break;case"reasoning_token":(s=n.onReasoningToken)==null||s.call(n,e.content||"");break;case"tool_token":(o=n.onToolToken)==null||o.call(n,e.tool_call_id||"",e.content||"");break;case"tool_start":(i=n.onToolStart)==null||i.call(n,e.tool_call_id||"",e.tool_name||"",e.arguments||{});break;case"tool_complete":e.result&&((a=n.onToolComplete)==null||a.call(n,e.tool_call_id||"",e.result));break;case"tool_error":(c=n.onToolError)==null||c.call(n,e.tool_call_id||"",e.error||"");break;case"bash_completed":(d=n.onBashCompleted)==null||d.call(n,e.bash_id??"",e.command??"",e.exit_code??null,typeof e.status=="string"?e.status:"completed");break;case"task_list_updated":e.task_list&&((f=n.onTaskListUpdated)==null||f.call(n,e.task_list));break;case"task_list_item_progress":if(e.session_id&&e.item_id&&e.status&&e.tool_calls_count!==void 0&&e.version!==void 0){const he=e.status;if(!(he==="pending"||he==="in_progress"||he==="completed"||he==="blocked"))break;(p=n.onTaskListItemProgress)==null||p.call(n,{session_id:e.session_id,item_id:e.item_id,status:he,tool_calls_count:e.tool_calls_count,version:e.version})}break;case"task_list_completed":e.session_id&&e.total_rounds!==void 0&&e.total_tool_calls!==void 0&&((b=n.onTaskListCompleted)==null||b.call(n,e.session_id,e.total_rounds,e.total_tool_calls,e.completed_at));break;case"task_evaluation_started":e.session_id&&e.items_count!==void 0&&((m=n.onTaskEvaluationStarted)==null||m.call(n,e.session_id,e.items_count));break;case"task_evaluation_completed":e.session_id&&e.updates_count!==void 0&&e.reasoning&&((w=n.onTaskEvaluationCompleted)==null||w.call(n,e.session_id,e.updates_count,e.reasoning));break;case"token_budget_updated":e.usage&&"system_tokens"in e.usage&&((y=n.onTokenBudgetUpdated)==null||y.call(n,e.usage));break;case"context_compression_status":typeof e.phase=="string"&&typeof e.status=="string"&&((_=n.onContextCompressionStatus)==null||_.call(n,e.phase,e.status));break;case"tool_lifecycle":(M=n.onToolLifecycle)==null||M.call(n,e.tool_call_id||"",e.tool_name||"",e.phase||"",e.elapsed_ms,e.is_mutating,e.auto_approved,e.summary,e.error);break;case"context_summarized":e.summary_info&&((C=n.onContextSummarized)==null||C.call(n,e.summary_info));break;case"context_pressure_notification":typeof e.percent=="number"&&typeof e.level=="string"&&((T=n.onContextPressureNotification)==null||T.call(n,e.percent,e.level,e.message||""));break;case"sub_agent_started":e.parent_session_id&&e.child_session_id&&((k=n.onSubAgentStarted)==null||k.call(n,e.parent_session_id,e.child_session_id,e.title));break;case"sub_agent_event":e.parent_session_id&&e.child_session_id&&e.event&&((P=n.onSubAgentEvent)==null||P.call(n,e.parent_session_id,e.child_session_id,e.event));break;case"sub_agent_heartbeat":e.parent_session_id&&e.child_session_id&&e.timestamp&&((A=n.onSubAgentHeartbeat)==null||A.call(n,e.parent_session_id,e.child_session_id,e.timestamp));break;case"sub_agent_completed":e.parent_session_id&&e.child_session_id&&((j=n.onSubAgentCompleted)==null||j.call(n,e.parent_session_id,e.child_session_id,typeof e.status=="string"?e.status:"completed",e.error));break;case"child_approval_requested":e.child_session_id&&e.request_id&&(($=n.onChildApprovalRequested)==null||$.call(n,e.child_session_id,e.request_id,{toolName:e.tool_name,permission:e.permission,resource:e.resource}));break;case"execution_started":(F=n.onExecutionStarted)==null||F.call(n,e.run_id||"",e.started_at);break;case"runner_progress":e.session_id&&typeof e.round_count=="number"&&((X=n.onRunnerProgress)==null||X.call(n,e.session_id,e.round_count));break;case"need_clarification":(K=n.onNeedClarification)==null||K.call(n,e);break;case"notification":(O=n.onNotification)==null||O.call(n,e);break;case"session_title_updated":e.session_id&&typeof e.title=="string"&&typeof e.title_version=="number"&&(e.source==="auto"||e.source==="manual"||e.source==="fallback")&&typeof e.updated_at=="string"&&((W=n.onSessionTitleUpdated)==null||W.call(n,{type:"session_title_updated",session_id:e.session_id,title:e.title,title_version:e.title_version,source:e.source,updated_at:e.updated_at}));break;case"session_pinned_updated":e.session_id&&typeof e.pinned=="boolean"&&typeof e.updated_at=="string"&&((ae=n.onSessionPinnedUpdated)==null||ae.call(n,{type:"session_pinned_updated",session_id:e.session_id,pinned:e.pinned,updated_at:e.updated_at}));break;case"plan_mode_entered":(Y=n.onPlanModeEntered)==null||Y.call(n,e);break;case"plan_mode_exited":(ce=n.onPlanModeExited)==null||ce.call(n,e);break;case"plan_file_updated":(L=n.onPlanFileUpdated)==null||L.call(n,e);break;case"goal_status_changed":(oe=n.onGoalStatusChanged)==null||oe.call(n,e);break;case"complete":pe("[AgentClient]","events.dispatch.complete",tl(e)),(Se=n.onComplete)==null||Se.call(n,e.usage);break;case"cancelled":pe("[AgentClient]","events.dispatch.cancelled",tl(e)),(J=n.onCancelled)==null||J.call(n,e.message);break;case"error":pe("[AgentClient]","events.dispatch.error",tl(e)),(te=n.onError)==null||te.call(n,e.message||e.error||"Unknown error");break;default:console.warn("Unknown event type:",e)}}async stopGeneration(e){await Je.post(`stop/${e}`)}async deleteSession(e){const n=encodeURIComponent(e);await Je.delete(`sessions/${n}`)}async getHistory(e,n){pe("[AgentClient]","history.request",{sessionId:e,sinceMessageId:n});const r=n?`history/${e}?since_message_id=${encodeURIComponent(n)}`:`history/${e}`,s=await Je.get(r);return pe("[AgentClient]","history.response",N0(s)),s}async healthCheck(){try{return await Je.get("health"),!0}catch{return!1}}};Ie(bs,"instance");let Pn=bs;const _s=Pn.getInstance(),ep="provider",sa=es(t=>({isOpen:!1,origin:"chat",activeTabKey:ep,open:(e,n=ep)=>t({isOpen:!0,origin:e,activeTabKey:n}),close:()=>t({isOpen:!1}),setActiveTabKey:e=>t({activeTabKey:e})})),tp={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},pa=new Map,nl=t=>{const e=pa.get(t);return e?Object.fromEntries(Object.entries(e.stores).map(([n,r])=>[n,r.getState()])):{}},W0=(t,e,n)=>{if(t===void 0)return{type:"untracked",connection:e.connect(n)};const r=pa.get(n.name);if(r)return{type:"tracked",store:t,...r};const s={connection:e.connect(n),stores:{}};return pa.set(n.name,s),{type:"tracked",store:t,...s}},U0=(t,e)=>{if(e===void 0)return;const n=pa.get(t);n&&(delete n.stores[e],Object.keys(n.stores).length===0&&pa.delete(t))},H0=t=>{var e,n;if(!t)return;const r=t.split(`
3
- `),s=r.findIndex(i=>i.includes("api.setState"));if(s<0)return;const o=((e=r[s+1])==null?void 0:e.trim())||"";return(n=/.+ (.+) .+/.exec(o))==null?void 0:n[1]},q0=(t,e={})=>(n,r,s)=>{const{enabled:o,anonymousActionType:i,store:a,...c}=e;let d;try{d=(o??(tp?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!d)return t(n,r,s);const{connection:f,...p}=W0(a,d,c);let b=!0;s.setState=(y,_,M)=>{const C=n(y,_);if(!b)return C;const T=M===void 0?{type:i||H0(new Error().stack)||"anonymous"}:typeof M=="string"?{type:M}:M;return a===void 0?(f==null||f.send(T,r()),C):(f==null||f.send({...T,type:`${a}/${T.type}`},{...nl(c.name),[a]:s.getState()}),C)},s.devtools={cleanup:()=>{f&&typeof f.unsubscribe=="function"&&f.unsubscribe(),U0(c.name,a)}};const m=(...y)=>{const _=b;b=!1,n(...y),b=_},w=t(s.setState,r,s);if(p.type==="untracked"?f==null||f.init(w):(p.stores[p.store]=s,f==null||f.init(Object.fromEntries(Object.entries(p.stores).map(([y,_])=>[y,y===p.store?w:_.getState()])))),s.dispatchFromDevtools&&typeof s.dispatch=="function"){let y=!1;const _=s.dispatch;s.dispatch=(...M)=>{(tp?"production":void 0)!=="production"&&M[0].type==="__setState"&&!y&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),y=!0),_(...M)}}return f.subscribe(y=>{var _;switch(y.type){case"ACTION":if(typeof y.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return ou(y.payload,M=>{if(M.type==="__setState"){if(a===void 0){m(M.state);return}Object.keys(M.state).length!==1&&console.error(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SystemPromptSelector-Cqg7_foJ.js","./vendor-markdown-BDStutVw.js","./vendor-i18n-Dm-c3D_C.js","./vendor-antd-CzrN6PM8.js","./vendor-mermaid-CztJpwsx.js","./main-Bm6Xue83.js","./main-B6snAd4S.css","./FilePreview-C78F5eM1.js","./CommandSelector-DCF_eYFM.js","./index-Bi-vGirQ.css","./WorkspacePathModal-BG03pOha.js","./FileReferenceSelector-CMthjAt5.js","./dist-js-BgoG8Mq6.js","./index-CmG-lq98.js","./vendor-pdf-dQDE-8w8.js","./ContextBar-1LDCx1UR.js","./index-3qkG_le_.css","./QuestionDialog-sR4lfOkz.js","./QuestionDialog-8u7yjQhY.css","./ChildApprovalDialog-Bn6zDSUn.js","./SessionSummaryCard-CNuYpo8e.js","./index-D9ODTr93.css","./TodoList-wgV1m9Hg.js","./SubAgentsPanel-XLs7Ffbu.js","./HomeDashboard-D0TwAR_x.js","./index-AIUPRSCn.css","./SystemSettingsPage-DOIZqoTl.js","./vendor-charts-BRxq0LpH.js","./CommandPalette-C7M9VREB.js","./index-CLYKYSO0.css","./LedgerDrawer-DJn4WNaB.js"])))=>i.map(i=>d[i]);
2
+ var wx=Object.defineProperty;var xx=(t,e,n)=>e in t?wx(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ie=(t,e,n)=>xx(t,typeof e!="symbol"?e+"":e,n);import{j as l,M as xr,S as en,a as ky,t as Ty,p as Ey,b as _x,c as Jd,d as Cx,m as Py,s as kx,y as My,e as Ay,h as zl,f as Qd,r as Zd,g as ef,i as Ry}from"./vendor-markdown-BDStutVw.js";import{a as v,u as Xe,R as st,i as Et,c as Tx,g as Os}from"./vendor-i18n-Dm-c3D_C.js";import{_ as $t,bM as tf,bh as Ex,a4 as Px}from"./vendor-mermaid-CztJpwsx.js";import{t as lt,Z as Nh,J as Mx,af as Ax,av as po,aM as jy,aN as Rx,aO as fc,B as Ae,p as jx,o as $s,aI as mo,aP as Ix,v as Ar,ap as Ls,aQ as Iy,E as Qu,j as We,F as Ce,$ as go,P as As,aR as Oy,ah as nf,ag as hc,l as on,X as $y,al as Ox,aS as $x,aT as Lx,T as ut,A as En,aa as xl,ak as Dx,ao as Zu,az as Fx,aU as pc,aV as Ly,x as rf,aW as ed,aX as yo,aY as Nx,aZ as zx,k as Bl,W as mc,a4 as Dy,aD as Bx,a_ as Wx,y as bo,a9 as Ux,n as He,an as Hx,a0 as sf,a$ as qx,H as Fy,u as rr,q as Ut,ay as gc,b0 as Ny,as as Kx,D as Xx,a2 as of,b1 as zy,b2 as Yx,b3 as Vx,b4 as Gx,N as Rs,b5 as Jx,b6 as Qx,a7 as af,a8 as Rr,aw as Wl,b7 as _o,b8 as Bi,b9 as By,ba as Wy,ad as lf,Y as ao,a5 as zh,bb as Zx,w as Bh,a1 as Uy,bc as _l,bd as Hy,be as e_,U as t_,bf as n_,bg as r_,au as s_,aC as o_,bh as i_,bi as a_,bj as l_,bk as c_,bl as ro,G as qy,bm as u_,aG as Ky,aq as cf,Q as d_,bn as f_,bo as h_,aj as p_,bp as Wh,bq as Uh}from"./vendor-antd-CzrN6PM8.js";import{r as m_,A as g_,k as y_}from"./main-Bm6Xue83.js";function Xy(t){const[e,n]=v.useState(()=>typeof window<"u"?window.matchMedia(t).matches:!1);return v.useEffect(()=>{if(typeof window>"u")return;const r=window.matchMedia(t);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)}},[t]),e}function es(){return Xy("(max-width: 768px)")}const b_=({chat:t,isSelected:e,compact:n=!1,onSelect:r,onDelete:s,onPin:o,onUnpin:i,onEdit:a,onGenerateTitle:c,onRunProjectDream:d,isGeneratingTitle:f,isRunningProjectDream:p,titleGenerationError:y})=>{const{t:m}=Xe(),[w,b]=v.useState(!1),[_,M]=v.useState(t.title),[C,T]=v.useState(!1),[k,P]=v.useState(!1),{token:A}=lt.useToken(),j=v.useCallback(ae=>{ae.stopPropagation(),a&&_.trim()&&a(t.id,_.trim()),b(!1)},[t.id,_,a]),$=v.useCallback(ae=>{ae.stopPropagation(),M(t.title),b(!1)},[t.title]),F=[{key:"pin",icon:t.pinned?l.jsx(Nh,{style:{color:A.colorWarning}}):l.jsx(Mx,{}),label:t.pinned?m("chat.actions.unpin"):m("chat.actions.pin"),onClick:({domEvent:ae})=>{ae.stopPropagation(),t.pinned?i(t.id):o(t.id)}},{key:"edit",icon:l.jsx(Ax,{}),label:m("chat.chatItem.edit"),onClick:({domEvent:ae})=>{ae.stopPropagation(),b(!0)}},...c?[{key:"generate-title",icon:f?l.jsx(po,{}):l.jsx(jy,{style:y?{color:A.colorError}:void 0}),label:y||m("chat.actions.generateTitle"),disabled:f,onClick:({domEvent:ae})=>{ae.stopPropagation(),c(t.id)}}]:[],...d?[{key:"run-project-dream",icon:p?l.jsx(po,{}):l.jsx(Rx,{}),label:m("chat.actions.runProjectDream"),disabled:p,onClick:({domEvent:ae})=>{ae.stopPropagation(),d(t.id)}}]:[],{type:"divider"},{key:"delete",icon:l.jsx(fc,{}),label:m("common.delete"),danger:!0,onClick:({domEvent:ae})=>{ae.stopPropagation(),s(t.id)}}],X={padding:n?"4px 8px":"5px 8px",borderRadius:A.borderRadiusSM,marginBottom:0,cursor:"pointer",transition:"background-color 0.2s ease, box-shadow 0.2s ease",backgroundColor:e?"var(--lotus-primary-soft)":C||k?"var(--lotus-item-hover-bg)":"transparent",border:"1px solid transparent",borderColor:"transparent",position:"relative",overflow:"visible",boxShadow:e?`inset 2px 0 0 ${A.colorPrimary}`:"none",minHeight:n?28:30},K={flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",fontSize:n?12:12.5,lineHeight:1.3,fontWeight:e?600:500,color:e?"var(--lotus-primary)":A.colorText},O={flex:1,fontSize:A.fontSizeSM,marginRight:A.marginSM},W=w?[l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(jx,{style:{color:A.colorSuccess}}),onClick:j,"aria-label":m("common.save")},"save"),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{style:{color:A.colorError}}),onClick:$,"aria-label":m("common.cancel")},"cancel")]:C||k?[l.jsx(mo,{menu:{items:F,className:"lotus-sidebar-actions-menu"},trigger:["click"],placement:"bottomRight",overlayClassName:"lotus-sidebar-actions-dropdown",open:k,onOpenChange:ae=>P(ae),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Ix,{}),"aria-label":m("common.moreActions","More actions"),onClick:ae=>ae.stopPropagation(),style:{color:A.colorTextSecondary,borderRadius:A.borderRadiusSM,background:"transparent",width:n?16:18,height:n?16:18,display:"flex",alignItems:"center",justifyContent:"center"}})},"more")]:[];return l.jsx(Ar.Item,{style:X,tabIndex:0,onClick:()=>!w&&r(t.id),onKeyDown:ae=>{ae.key==="Enter"&&!w?(ae.preventDefault(),r(t.id)):(ae.key==="Delete"||ae.key==="Backspace")&&!w&&(ae.metaKey||ae.ctrlKey)&&(ae.preventDefault(),s(t.id))},onMouseEnter:()=>T(!0),onMouseLeave:()=>{k||T(!1)},onFocus:()=>T(!0),onBlur:()=>{k||T(!1)},actions:W,"data-testid":"chat-item",role:"option","aria-selected":e,"aria-label":t.title||m("chat.sidebar.untitledChat"),children:l.jsx("div",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:w?l.jsx(Ls,{value:_,onChange:ae=>M(ae.target.value),onClick:ae=>ae.stopPropagation(),onPressEnter:ae=>{ae.preventDefault(),j(ae)},autoFocus:!0,style:O,variant:"borderless",size:"small"}):l.jsxs("div",{style:{...K,display:"flex",alignItems:"center",gap:n?4:A.marginXS,minWidth:0},children:[t.pinned&&l.jsx(Nh,{style:{color:A.colorWarning,fontSize:11,flexShrink:0}}),l.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.title}),t.kind==="child"?l.jsx("span",{style:{color:A.colorInfo,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap"},children:m("chat.chatItem.childTag")}):null,t.planMode?l.jsxs("span",{style:{color:A.colorPrimary,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:3},children:[l.jsx(Iy,{}),m("chat.planMode.badge","Plan")]}):null]})})})},v_=(t,e)=>t.chat.id===e.chat.id&&t.chat.title===e.chat.title&&t.chat.pinned===e.chat.pinned&&t.chat.planMode===e.chat.planMode&&t.isSelected===e.isSelected&&t.compact===e.compact&&t.isGeneratingTitle===e.isGeneratingTitle&&t.isRunningProjectDream===e.isRunningProjectDream&&t.titleGenerationError===e.titleGenerationError,td=v.memo(b_,v_);td.displayName="ChatItem";const Hh=t=>({Today:0,Yesterday:1,"This Week":2,"This Month":3})[t]??4,S_=t=>{const e={},n=t.filter(s=>s.pinned);n.length>0&&(e.Pinned=n.sort((s,o)=>o.createdAt-s.createdAt));const r=t.filter(s=>!s.pinned&&!!s.createdByScheduleId);return r.length>0&&(e.Scheduled=r.sort((s,o)=>o.createdAt-s.createdAt)),t.filter(s=>!s.pinned&&!s.createdByScheduleId).forEach(s=>{const i=new Date(s.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});e[i]||(e[i]=[]),e[i].push(s)}),Object.keys(e).forEach(s=>{e[s].sort((o,i)=>i.createdAt-o.createdAt)}),e},w_=t=>{const e=n=>Array.isArray(n)?n.reduce((r,s)=>Math.max(r,s.createdAt),0):Object.values(n).reduce((r,s)=>{const o=s.reduce((i,a)=>Math.max(i,a.createdAt),0);return Math.max(r,o)},0);return Object.keys(t).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=t[n],o=t[r];if(!s||!o)return 0;const i=e(s),a=e(o);return i!==a?a-i:Hh(n)-Hh(r)})},x_=(t,e)=>t[e]?t[e].map(n=>n.id):[],Yy=(t,e)=>t[e]?t[e].length:0,__=t=>t.createdByScheduleId?"Scheduled":new Date(t.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),qh=(t,e)=>{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"}[t];return r?e(r):t},C_=({groupedChatsByDate:t,childrenByRoot:e,expandedRootIds:n,onToggleRootExpanded:r,sortedDateKeys:s,expandedKeys:o,onCollapseChange:i,currentSessionId:a,onSelectChat:c,onDeleteChat:d,onDeleteByDate:f,onPinChat:p,onUnpinChat:y,onEditTitle:m,onGenerateTitle:w,onRunProjectDream:b,titleGenerationState:_,projectDreamState:M,token:C,hasActiveFilters:T,onClearFilters:k})=>{const{t:P}=Xe(),A=v.useMemo(()=>s.length?s.map($=>{const F=t[$],X=Yy(t,$);return{dateKey:$,dateGroup:F,totalChatsInDate:X}}):[],[t,s]);if(!s.length)return l.jsx(Qu,{image:Qu.PRESENTED_IMAGE_SIMPLE,description:l.jsxs(We,{direction:"vertical",size:4,align:"center",children:[l.jsx("span",{style:{color:C.colorTextSecondary},children:T?P("chat.sidebar.empty.noMatches","No matching sessions"):P("chat.sidebar.empty.noSessions")}),l.jsx("span",{style:{color:C.colorTextSecondary,fontSize:12},children:T?P("chat.sidebar.empty.filterHint","Try adjusting your search or filters"):P("chat.sidebar.empty.hint")}),T&&l.jsx(Ae,{size:"small",type:"link",onClick:k,children:P("chat.sidebar.empty.clearFilters","Clear filters")})]})});const j=new Set(o);return l.jsx("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:2},children:A.map(({dateKey:$,dateGroup:F,totalChatsInDate:X})=>{const K=j.has($);return l.jsxs("div",{style:{borderRadius:C.borderRadiusSM,background:"transparent",padding:0},children:[l.jsxs(Ce,{align:"center",justify:"space-between",style:{cursor:"pointer",padding:"4px 8px",borderRadius:C.borderRadiusSM,transition:"background-color 0.2s ease, color 0.2s ease",border:"1px solid transparent"},role:"button",tabIndex:0,"aria-expanded":K,"aria-label":`${qh($,P)} (${X})`,onKeyDown:O=>{if(O.key==="Enter"||O.key===" "){O.preventDefault();const W=new Set(j);W.has($)?W.delete($):W.add($),i(Array.from(W))}},onMouseEnter:O=>{O.currentTarget.style.background="var(--lotus-sidebar-item-hover-bg, rgba(204, 251, 241, 0.76))",O.currentTarget.style.borderColor="transparent";const W=O.currentTarget.querySelector(".chat-sidebar-date-group-delete");W&&(W.style.opacity="1")},onMouseLeave:O=>{O.currentTarget.style.background="transparent",O.currentTarget.style.borderColor="transparent";const W=O.currentTarget.querySelector(".chat-sidebar-date-group-delete");W&&(W.style.opacity="0")},onClick:()=>{const O=new Set(j);O.has($)?O.delete($):O.add($),i(Array.from(O))},className:"chat-sidebar-date-group-header",children:[l.jsxs(Ce,{align:"center",gap:"small",style:{minWidth:0},children:[K?l.jsx(go,{style:{fontSize:12,opacity:.6}}):l.jsx(As,{style:{fontSize:12,opacity:.6}}),l.jsxs("span",{style:{fontSize:10.5,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.3px",color:$==="Today"?"var(--lotus-primary)":C.colorTextSecondary,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[qh($,P)," (",X,")"]})]}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(fc,{}),className:"chat-sidebar-date-group-delete",style:{color:C.colorTextTertiary,opacity:0,transition:"opacity 0.2s ease"},onClick:O=>{O.stopPropagation(),f($)}})]}),K?l.jsx("div",{style:{marginTop:2},children:l.jsx(Ar,{itemLayout:"horizontal",dataSource:F,split:!1,renderItem:O=>{var W,ae,Y,ce,L,oe;return l.jsxs("div",{children:[l.jsxs(Ce,{align:"center",gap:6,style:{padding:"4px 8px"},children:[(W=e[O.id])!=null&&W.length?l.jsxs(Ae,{size:"small",type:"text",style:{padding:0,minWidth:18,height:18,display:"inline-flex",alignItems:"center",gap:2},"aria-label":n.has(O.id)?P("chat.sidebar.actions.collapseChildren"):P("chat.sidebar.actions.expandChildren"),onClick:Se=>{Se.preventDefault(),Se.stopPropagation(),r(O.id)},children:[l.jsx(Oy,{style:{fontSize:12,color:"var(--lotus-primary)",opacity:n.has(O.id)?1:.85}}),l.jsx("span",{style:{fontSize:9,fontWeight:600,lineHeight:1,color:"var(--lotus-primary)"},children:e[O.id].length})]}):l.jsx("div",{style:{width:18}}),l.jsx("div",{style:{flex:1,minWidth:0,marginLeft:-8},children:l.jsx(td,{chat:O,compact:!0,isSelected:O.id===a,onSelect:c,onDelete:d,onPin:p,onUnpin:y,onEdit:m,onGenerateTitle:w,onRunProjectDream:b,isGeneratingTitle:((ae=_[O.id])==null?void 0:ae.status)==="loading",isRunningProjectDream:((Y=M[O.id])==null?void 0:Y.status)==="loading",titleGenerationError:((ce=_[O.id])==null?void 0:ce.status)==="error"?(L=_[O.id])==null?void 0:L.error:void 0})})]}),n.has(O.id)&&(((oe=e[O.id])==null?void 0:oe.length)??0)>0?l.jsx("div",{style:{marginLeft:18,marginTop:1},children:l.jsx(Ar,{itemLayout:"horizontal",dataSource:e[O.id],split:!1,renderItem:Se=>{var J,te,he,de;return l.jsx("div",{style:{paddingLeft:8,borderLeft:`1px solid ${C.colorBorderSecondary}`,marginLeft:2},children:l.jsx(td,{chat:Se,compact:!0,isSelected:Se.id===a,onSelect:c,onDelete:d,onPin:p,onUnpin:y,onEdit:m,onGenerateTitle:w,onRunProjectDream:b,isGeneratingTitle:((J=_[Se.id])==null?void 0:J.status)==="loading",isRunningProjectDream:((te=M[Se.id])==null?void 0:te.status)==="loading",titleGenerationError:((he=_[Se.id])==null?void 0:he.status)==="error"?(de=_[Se.id])==null?void 0:de.error:void 0})},Se.id)}})}):null]},O.id)}})}):null]},$)})})},Kh=t=>{let e;const n=new Set,r=(d,f)=>{const p=typeof d=="function"?d(e):d;if(!Object.is(p,e)){const y=e;e=f??(typeof p!="object"||p===null)?p:Object.assign({},e,p),n.forEach(m=>m(e,y))}},s=()=>e,a={setState:r,getState:s,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d))},c=e=t(r,s,a);return a},k_=t=>t?Kh(t):Kh,T_=t=>t;function E_(t,e=T_){const n=st.useSyncExternalStore(t.subscribe,()=>e(t.getState()),()=>e(t.getInitialState()));return st.useDebugValue(n),n}const Xh=t=>{const e=k_(t),n=r=>E_(e,r);return Object.assign(n,e),n},Ir=t=>t?Xh(t):Xh,Vy="copilot_ui_theme_v1";function P_(){var t;try{const e=localStorage.getItem(Vy);if(e==="light"||e==="dark")return e}catch{}return(t=window.matchMedia)!=null&&t.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}const Ul=Ir(t=>({themeMode:P_(),setThemeMode:e=>t({themeMode:e}),toggleTheme:()=>t(e=>({themeMode:e.themeMode==="dark"?"light":"dark"}))})),M_="agenda",Yh=Ir(t=>({isOpen:!1,view:M_,badgeCount:0,open:e=>t(n=>({isOpen:!0,view:e??n.view})),close:()=>t({isOpen:!1}),setView:e=>t({view:e}),setBadgeCount:e=>t({badgeCount:e})})),A_="2026.7.17",R_={version:A_},j_=R_.version,{Text:I_}=ut,O_=({collapsed:t,onNewChat:e,onOpenSettings:n,token:r})=>{const{t:s}=Xe(),o=Ul(m=>m.themeMode),i=Ul(m=>m.toggleTheme),a=Yh(m=>m.open),c=Yh(m=>m.badgeCount),d=s("chat.sidebar.newSession"),f=s("settings.page.title"),p=s("ledger.title"),y=o==="dark"?s("settings.app.lightMode","Light mode"):s("settings.app.darkMode","Dark mode");return l.jsxs(Ce,{vertical:!0,gap:t?"small":10,style:{padding:t?10:12,background:"transparent",borderTop:`1px solid ${r.colorBorderSecondary}`},children:[l.jsx(Ae,{"data-testid":"new-chat","data-tour-id":"new-session",type:"primary",icon:l.jsx(nf,{}),onClick:e,block:!t,shape:"default",size:"small",title:d,"aria-label":d,className:"lotus-primary-cta",style:{...t?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:t?40:38,fontWeight:600},children:!t&&d}),l.jsxs(Ce,{gap:6,align:"center",children:[l.jsx(Ae,{"data-testid":"open-settings","data-tour-id":"open-settings",icon:l.jsx(hc,{}),onClick:n,block:!t,shape:"default",size:"small",title:f,"aria-label":f,className:"lotus-secondary-button",style:{...t?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:t?40:36,flex:t?void 0:1},children:!t&&f}),!t&&l.jsx(on,{title:p,placement:"top",children:l.jsx($y,{count:c,size:"small",offset:[-4,4],children:l.jsx(Ae,{"data-testid":"open-agenda",type:"text",icon:l.jsx(Ox,{}),onClick:()=>a(),"aria-label":p,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})}),!t&&l.jsx(on,{title:y,placement:"top",children:l.jsx(Ae,{"data-testid":"toggle-theme",type:"text",icon:o==="dark"?l.jsx($x,{}):l.jsx(Lx,{}),onClick:i,"aria-label":y,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})]}),!t&&l.jsxs(I_,{type:"secondary","data-testid":"app-version-badge",style:{fontSize:11,textAlign:"center",userSelect:"text"},children:[s("settings.appTab.runningVersion","Running version"),": v",j_]})]})},Vh=t=>Symbol.iterator in t,Gh=t=>"entries"in t,Jh=(t,e)=>{const n=t instanceof Map?t:new Map(t.entries()),r=e instanceof Map?e:new Map(e.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},$_=(t,e)=>{const n=t[Symbol.iterator](),r=e[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 L_(t,e){return Object.is(t,e)?!0:typeof t!="object"||t===null||typeof e!="object"||e===null||Object.getPrototypeOf(t)!==Object.getPrototypeOf(e)?!1:Vh(t)&&Vh(e)?Gh(t)&&Gh(e)?Jh(t,e):$_(t,e):Jh({entries:()=>Object.entries(t)},{entries:()=>Object.entries(e)})}function na(t){const e=st.useRef(void 0);return n=>{const r=t(n);return L_(e.current,r)?e.current:e.current=r}}const Gy=()=>!1,Jy=t=>{if(!Gy())return!1;try{return localStorage.getItem(t)==="1"}catch{return!1}},D_=()=>Jy("bodhi_debug_ui_layout"),Un=(t,e)=>{D_()&&console.log(`[ui-layout] ${t}`,e??"")},pe=(t,e,...n)=>{Gy()&&Jy("bodhi_debug_verbose")&&console.log(`${t} ${e}`,...n)},F_="bodhi_api_v2_ws",nd=()=>{try{const t=localStorage.getItem(F_);return t!=="0"&&t!=="false"}catch{return!0}},N_="bodhi_api_v2_msgpack",z_=()=>{try{return localStorage.getItem(N_)==="1"}catch{return!1}};var nu={};const ru="copilot_backend_base_url",Qy="http://127.0.0.1:9562/v1",B_=9562,js=t=>t.trim().replace(/\/+$/,""),W_=()=>{const e=nu==null?void 0:nu.VITE_BACKEND_BASE_URL;return e?js(e):null},Ca=()=>{const t=globalThis.location;if(!t)return null;const e=typeof t.protocol=="string"?t.protocol:"",n=typeof t.hostname=="string"?t.hostname:"";return!e||!n?null:{protocol:e,hostname:n}},uf=t=>{const e=t.trim().toLowerCase();return e==="localhost"||e==="127.0.0.1"||e==="::1"},U_=(t=Ca())=>(t==null?void 0:t.protocol.toLowerCase())==="https:",H_=t=>{try{return new URL(js(t)).protocol.toLowerCase()==="http:"}catch{return!1}},q_=t=>{try{const e=new URL(js(t));return uf(e.hostname)}catch{return!1}},K_=(t=Ca())=>{if(!t)return null;const e=t.protocol.toLowerCase(),n=t.hostname.trim();return n?e==="https:"?js(`https://${n}/v1`):e==="http:"?js(`http://${n}/v1`):null:null},X_=(t,e=Ca())=>{if(!e)return!1;const n=e.hostname.trim();return n?U_(e)&&H_(t)?!0:uf(n)?!1:q_(t):!1},Y_=(t=Ca())=>{if(!t)return null;const e=t.protocol.toLowerCase();if(e!=="http:"&&e!=="https:")return null;const n=t.hostname.trim();return n?e==="https:"?K_(t):uf(n)?Qy:js(`http://${n}:${B_}/v1`):null},V_=()=>{const t=W_();return t||(Y_()??Qy)},Jr=()=>{const t=Ca(),e=localStorage.getItem(ru);if(e){const n=js(e);if(X_(n,t))console.warn("Ignoring stored backend override because it is incompatible with the current page origin:",n),localStorage.removeItem(ru);else try{return new URL(n),n}catch{console.warn("Invalid stored backend URL, using default:",n),localStorage.removeItem(ru)}}return V_()},G_=()=>{const t=Jr().trim().replace(/\/+$/,""),e=t.endsWith("/v1")?t.slice(0,-3):t,n=new URL(e),r=n.protocol.toLowerCase()==="https:"?"wss:":"ws:";return n.protocol=r,`${r}//${n.host}/v2/stream`};class vo extends Error{constructor(e,n,r,s){super(e),this.status=n,this.statusText=r,this.body=s,this.name="ApiError"}}function uF(t){return t instanceof vo}class Zy{constructor(e={}){Ie(this,"baseUrl");Ie(this,"defaultHeaders");this.baseUrl=e.baseUrl??this.resolveBaseUrl(),this.defaultHeaders=e.defaultHeaders??{"Content-Type":"application/json"}}resolveBaseUrl(){const e=Jr().trim().replace(/\/+$/,"");return e.endsWith("/v1")?e:`${e}/v1`}buildUrl(e){const n=e.replace(/^\/+/,"");return`${this.baseUrl}/${n}`}async handleResponse(e){var r,s,o;if(!e.ok){const i=await e.text().catch(()=>{});let a=e.statusText;if(i)try{const c=JSON.parse(i),d=typeof(c==null?void 0:c.error)=="object"?(r=c.error)==null?void 0:r.message:void 0;a=(typeof(c==null?void 0:c.error)=="string"?c.error:void 0)||(typeof d=="string"?d:void 0)||c.message||c.detail||e.statusText}catch{a=i||e.statusText}throw new vo(a,e.status,e.statusText,i)}return e.status===204?void 0:(((o=(s=e.headers)==null?void 0:s.get)==null?void 0:o.call(s,"content-type"))||"").includes("application/json")?e.json():typeof e.text=="function"?await e.text():e.json()}delay(e){return new Promise(n=>setTimeout(n,e))}async fetchWithRetry(e,n,r=3){let s=null;for(let o=0;o<r;o++)try{const i=await fetch(e,n);if(i.status>=500&&o<r-1){const a=1e3*Math.pow(2,o);console.warn(`Request failed with ${i.status}, retrying in ${a}ms (attempt ${o+1}/${r})`),await this.delay(a);continue}return i}catch(i){if(s=i,o<r-1){const a=1e3*Math.pow(2,o);console.warn(`Network error: ${s.message}, retrying in ${a}ms (attempt ${o+1}/${r})`),await this.delay(a)}}throw s||new Error("Max retries exceeded")}async get(e,n){const r=this.buildUrl(e),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"GET",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async post(e,n,r){const s=this.buildUrl(e),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=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(a)}finally{clearTimeout(i)}}async put(e,n,r){const s=this.buildUrl(e),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=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(a)}finally{clearTimeout(i)}}async patch(e,n,r){const s=this.buildUrl(e),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=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(a)}finally{clearTimeout(i)}}async delete(e,n){const r=this.buildUrl(e),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const i=await this.fetchWithRetry(r,{...n,method:"DELETE",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(i)}finally{clearTimeout(o)}}async request(e,n,r){const s=this.buildUrl(n),o=new AbortController,i=setTimeout(()=>o.abort(),3e4);try{const a=await this.fetchWithRetry(s,{...r,method:e,headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",signal:o.signal},3);return this.handleResponse(a)}finally{clearTimeout(i)}}async fetchRaw(e,n){const r=this.buildUrl(e),s=await fetch(r,{...n,headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include"});if(!s.ok)throw new vo(`API request failed: ${s.statusText}`,s.status,s.statusText);return s}}const ze=new Zy,Je=new Zy({baseUrl:(()=>{let t=Jr().trim().replace(/\/+$/,"");return t.endsWith("/v1")&&(t=t.slice(0,-3)),`${t}/api/v1`})()});function eb(t){return t instanceof vo}function dF(t){var e;return eb(t)?t.status===401?"Authentication failed. Please check your credentials.":t.status===403?"You don't have permission to perform this action.":t.status===404?"The requested resource was not found.":t.status>=500?(e=t.message)!=null&&e.trim()?t.message:"Server error. Please try again later.":t.message:t instanceof Error?t.message:"An unexpected error occurred"}function J_(t){const e=t.length;let n=0,r=0;for(;r<e;){let s=t.charCodeAt(r++);if((s&4294967168)===0){n++;continue}else if((s&4294965248)===0)n+=2;else{if(s>=55296&&s<=56319&&r<e){const o=t.charCodeAt(r);(o&64512)===56320&&(++r,s=((s&1023)<<10)+(o&1023)+65536)}(s&4294901760)===0?n+=3:n+=4}}return n}function Q_(t,e,n){const r=t.length;let s=n,o=0;for(;o<r;){let i=t.charCodeAt(o++);if((i&4294967168)===0){e[s++]=i;continue}else if((i&4294965248)===0)e[s++]=i>>6&31|192;else{if(i>=55296&&i<=56319&&o<r){const a=t.charCodeAt(o);(a&64512)===56320&&(++o,i=((i&1023)<<10)+(a&1023)+65536)}(i&4294901760)===0?(e[s++]=i>>12&15|224,e[s++]=i>>6&63|128):(e[s++]=i>>18&7|240,e[s++]=i>>12&63|128,e[s++]=i>>6&63|128)}e[s++]=i&63|128}}const Z_=new TextEncoder,e0=50;function t0(t,e,n){Z_.encodeInto(t,e.subarray(n))}function n0(t,e,n){t.length>e0?t0(t,e,n):Q_(t,e,n)}const r0=4096;function tb(t,e,n){let r=e;const s=r+n,o=[];let i="";for(;r<s;){const a=t[r++];if((a&128)===0)o.push(a);else if((a&224)===192){const c=t[r++]&63;o.push((a&31)<<6|c)}else if((a&240)===224){const c=t[r++]&63,d=t[r++]&63;o.push((a&31)<<12|c<<6|d)}else if((a&248)===240){const c=t[r++]&63,d=t[r++]&63,f=t[r++]&63;let p=(a&7)<<18|c<<12|d<<6|f;p>65535&&(p-=65536,o.push(p>>>10&1023|55296),p=56320|p&1023),o.push(p)}else o.push(a);o.length>=r0&&(i+=String.fromCharCode(...o),o.length=0)}return o.length>0&&(i+=String.fromCharCode(...o)),i}const s0=new TextDecoder,o0=200;function i0(t,e,n){const r=t.subarray(e,e+n);return s0.decode(r)}function a0(t,e,n){return n>o0?i0(t,e,n):tb(t,e,n)}class Za{constructor(e,n){Ie(this,"type");Ie(this,"data");this.type=e,this.data=n}}class Ln extends Error{constructor(e){super(e);const n=Object.create(Ln.prototype);Object.setPrototypeOf(this,n),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Ln.name})}}const Uo=4294967295;function l0(t,e,n){const r=n/4294967296,s=n;t.setUint32(e,r),t.setUint32(e+4,s)}function nb(t,e,n){const r=Math.floor(n/4294967296),s=n;t.setUint32(e,r),t.setUint32(e+4,s)}function rb(t,e){const n=t.getInt32(e),r=t.getUint32(e+4);return n*4294967296+r}function c0(t,e){const n=t.getUint32(e),r=t.getUint32(e+4);return n*4294967296+r}const u0=-1,d0=4294967296-1,f0=17179869184-1;function h0({sec:t,nsec:e}){if(t>=0&&e>=0&&t<=f0)if(e===0&&t<=d0){const n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t),n}else{const n=t/4294967296,r=t&4294967295,s=new Uint8Array(8),o=new DataView(s.buffer);return o.setUint32(0,e<<2|n&3),o.setUint32(4,r),s}else{const n=new Uint8Array(12),r=new DataView(n.buffer);return r.setUint32(0,e),nb(r,4,t),n}}function p0(t){const e=t.getTime(),n=Math.floor(e/1e3),r=(e-n*1e3)*1e6,s=Math.floor(r/1e9);return{sec:n+s,nsec:r-s*1e9}}function m0(t){if(t instanceof Date){const e=p0(t);return h0(e)}else return null}function g0(t){const e=new DataView(t.buffer,t.byteOffset,t.byteLength);switch(t.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{const n=e.getUint32(0),r=e.getUint32(4),s=(n&3)*4294967296+r,o=n>>>2;return{sec:s,nsec:o}}case 12:{const n=rb(e,4),r=e.getUint32(0);return{sec:n,nsec:r}}default:throw new Ln(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${t.length}`)}}function y0(t){const e=g0(t);return new Date(e.sec*1e3+e.nsec/1e6)}const b0={type:u0,encode:m0,decode:y0},dc=class dc{constructor(){Ie(this,"__brand");Ie(this,"builtInEncoders",[]);Ie(this,"builtInDecoders",[]);Ie(this,"encoders",[]);Ie(this,"decoders",[]);this.register(b0)}register({type:e,encode:n,decode:r}){if(e>=0)this.encoders[e]=n,this.decoders[e]=r;else{const s=-1-e;this.builtInEncoders[s]=n,this.builtInDecoders[s]=r}}tryToEncode(e,n){for(let r=0;r<this.builtInEncoders.length;r++){const s=this.builtInEncoders[r];if(s!=null){const o=s(e,n);if(o!=null){const i=-1-r;return new Za(i,o)}}}for(let r=0;r<this.encoders.length;r++){const s=this.encoders[r];if(s!=null){const o=s(e,n);if(o!=null){const i=r;return new Za(i,o)}}}return e instanceof Za?e:null}decode(e,n,r){const s=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return s?s(e,n,r):new Za(n,e)}};Ie(dc,"defaultCodec",new dc);let Hl=dc;function v0(t){return t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer}function rd(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):v0(t)?new Uint8Array(t):Uint8Array.from(t)}const S0=100,w0=2048;class df{constructor(e){Ie(this,"extensionCodec");Ie(this,"context");Ie(this,"useBigInt64");Ie(this,"maxDepth");Ie(this,"initialBufferSize");Ie(this,"sortKeys");Ie(this,"forceFloat32");Ie(this,"ignoreUndefined");Ie(this,"forceIntegerToFloat");Ie(this,"pos");Ie(this,"view");Ie(this,"bytes");Ie(this,"entered",!1);this.extensionCodec=(e==null?void 0:e.extensionCodec)??Hl.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.maxDepth=(e==null?void 0:e.maxDepth)??S0,this.initialBufferSize=(e==null?void 0:e.initialBufferSize)??w0,this.sortKeys=(e==null?void 0:e.sortKeys)??!1,this.forceFloat32=(e==null?void 0:e.forceFloat32)??!1,this.ignoreUndefined=(e==null?void 0:e.ignoreUndefined)??!1,this.forceIntegerToFloat=(e==null?void 0:e.forceIntegerToFloat)??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new df({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,n){if(n>this.maxDepth)throw new Error(`Too deep objects in depth ${n}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,n)}ensureBufferSizeToWrite(e){const n=this.pos+e;this.view.byteLength<n&&this.resizeBuffer(n*2)}resizeBuffer(e){const n=new ArrayBuffer(e),r=new Uint8Array(n),s=new DataView(n);r.set(this.bytes),this.view=s,this.bytes=r}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}encodeBigInt64(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){const r=J_(e);this.ensureBufferSizeToWrite(5+r),this.writeStringHeader(r),n0(e,this.bytes,this.pos),this.pos+=r}encodeObject(e,n){const r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,n);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,n);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){const n=e.byteLength;if(n<256)this.writeU8(196),this.writeU8(n);else if(n<65536)this.writeU8(197),this.writeU16(n);else if(n<4294967296)this.writeU8(198),this.writeU32(n);else throw new Error(`Too large binary: ${n}`);const r=rd(e);this.writeU8a(r)}encodeArray(e,n){const r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw new Error(`Too large array: ${r}`);for(const s of e)this.doEncode(s,n+1)}countWithoutUndefined(e,n){let r=0;for(const s of n)e[s]!==void 0&&r++;return r}encodeMap(e,n){const r=Object.keys(e);this.sortKeys&&r.sort();const s=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(s<16)this.writeU8(128+s);else if(s<65536)this.writeU8(222),this.writeU16(s);else if(s<4294967296)this.writeU8(223),this.writeU32(s);else throw new Error(`Too large map object: ${s}`);for(const o of r){const i=e[o];this.ignoreUndefined&&i===void 0||(this.encodeString(o),this.doEncode(i,n+1))}}encodeExtension(e){if(typeof e.data=="function"){const r=e.data(this.pos+6),s=r.length;if(s>=4294967296)throw new Error(`Too large extension object: ${s}`);this.writeU8(201),this.writeU32(s),this.writeI8(e.type),this.writeU8a(r);return}const n=e.data.length;if(n===1)this.writeU8(212);else if(n===2)this.writeU8(213);else if(n===4)this.writeU8(214);else if(n===8)this.writeU8(215);else if(n===16)this.writeU8(216);else if(n<256)this.writeU8(199),this.writeU8(n);else if(n<65536)this.writeU8(200),this.writeU16(n);else if(n<4294967296)this.writeU8(201),this.writeU32(n);else throw new Error(`Too large extension object: ${n}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){const n=e.length;this.ensureBufferSizeToWrite(n),this.bytes.set(e,this.pos),this.pos+=n}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),l0(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),nb(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}}function x0(t,e){return new df(e).encodeSharedRef(t)}function su(t){return`${t<0?"-":""}0x${Math.abs(t).toString(16).padStart(2,"0")}`}const _0=16,C0=16;class k0{constructor(e=_0,n=C0){Ie(this,"hit",0);Ie(this,"miss",0);Ie(this,"caches");Ie(this,"maxKeyLength");Ie(this,"maxLengthPerKey");this.maxKeyLength=e,this.maxLengthPerKey=n,this.caches=[];for(let r=0;r<this.maxKeyLength;r++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,n,r){const s=this.caches[r-1];e:for(const o of s){const i=o.bytes;for(let a=0;a<r;a++)if(i[a]!==e[n+a])continue e;return o.str}return null}store(e,n){const r=this.caches[e.length-1],s={bytes:e,str:n};r.length>=this.maxLengthPerKey?r[Math.random()*r.length|0]=s:r.push(s)}decode(e,n,r){const s=this.find(e,n,r);if(s!=null)return this.hit++,s;this.miss++;const o=tb(e,n,r),i=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(i,o),o}}const sd="array",ra="map_key",sb="map_value",T0=t=>{if(typeof t=="string"||typeof t=="number")return t;throw new Ln("The type of key must be string or number but "+typeof t)};class E0{constructor(){Ie(this,"stack",[]);Ie(this,"stackHeadPosition",-1)}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){const n=this.getUninitializedStateFromPool();n.type=sd,n.position=0,n.size=e,n.array=new Array(e)}pushMapState(e){const n=this.getUninitializedStateFromPool();n.type=ra,n.readCount=0,n.size=e,n.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===sd){const r=e;r.size=0,r.array=void 0,r.position=0,r.type=void 0}if(e.type===ra||e.type===sb){const r=e;r.size=0,r.map=void 0,r.readCount=0,r.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}const Ho=-1,ff=new DataView(new ArrayBuffer(0)),P0=new Uint8Array(ff.buffer);try{ff.getInt8(0)}catch(t){if(!(t instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}const Qh=new RangeError("Insufficient data"),M0=new k0;class hf{constructor(e){Ie(this,"extensionCodec");Ie(this,"context");Ie(this,"useBigInt64");Ie(this,"rawStrings");Ie(this,"maxStrLength");Ie(this,"maxBinLength");Ie(this,"maxArrayLength");Ie(this,"maxMapLength");Ie(this,"maxExtLength");Ie(this,"keyDecoder");Ie(this,"mapKeyConverter");Ie(this,"totalPos",0);Ie(this,"pos",0);Ie(this,"view",ff);Ie(this,"bytes",P0);Ie(this,"headByte",Ho);Ie(this,"stack",new E0);Ie(this,"entered",!1);this.extensionCodec=(e==null?void 0:e.extensionCodec)??Hl.defaultCodec,this.context=e==null?void 0:e.context,this.useBigInt64=(e==null?void 0:e.useBigInt64)??!1,this.rawStrings=(e==null?void 0:e.rawStrings)??!1,this.maxStrLength=(e==null?void 0:e.maxStrLength)??Uo,this.maxBinLength=(e==null?void 0:e.maxBinLength)??Uo,this.maxArrayLength=(e==null?void 0:e.maxArrayLength)??Uo,this.maxMapLength=(e==null?void 0:e.maxMapLength)??Uo,this.maxExtLength=(e==null?void 0:e.maxExtLength)??Uo,this.keyDecoder=(e==null?void 0:e.keyDecoder)!==void 0?e.keyDecoder:M0,this.mapKeyConverter=(e==null?void 0:e.mapKeyConverter)??T0}clone(){return new hf({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=Ho,this.stack.reset()}setBuffer(e){const n=rd(e);this.bytes=n,this.view=new DataView(n.buffer,n.byteOffset,n.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===Ho&&!this.hasRemaining(1))this.setBuffer(e);else{const n=this.bytes.subarray(this.pos),r=rd(e),s=new Uint8Array(n.length+r.length);s.set(n),s.set(r,n.length),this.setBuffer(s)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){const{view:n,pos:r}=this;return new RangeError(`Extra ${n.byteLength-r} of ${n.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);const n=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return n}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{for(this.entered=!0,this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let n=!1,r;for await(const a of e){if(n)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(a);try{r=this.doDecodeSync(),n=!0}catch(c){if(!(c instanceof RangeError))throw c}this.totalPos+=this.pos}if(n){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return r}const{headByte:s,pos:o,totalPos:i}=this;throw new RangeError(`Insufficient data in parsing ${su(s)} at ${i} (${o} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,n){if(this.entered){yield*this.clone().decodeMultiAsync(e,n);return}try{this.entered=!0;let r=n,s=-1;for await(const o of e){if(n&&s===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(o),r&&(s=this.readArraySize(),r=!1,this.complete());try{for(;yield this.doDecodeSync(),--s!==0;);}catch(i){if(!(i instanceof RangeError))throw i}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:for(;;){const e=this.readHeadByte();let n;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){const s=e-128;if(s!==0){this.pushMapState(s),this.complete();continue e}else n={}}else if(e<160){const s=e-144;if(s!==0){this.pushArrayState(s),this.complete();continue e}else n=[]}else{const s=e-160;n=this.decodeString(s,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)this.useBigInt64?n=this.readU64AsBigInt():n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)this.useBigInt64?n=this.readI64AsBigInt():n=this.readI64();else if(e===217){const s=this.lookU8();n=this.decodeString(s,1)}else if(e===218){const s=this.lookU16();n=this.decodeString(s,2)}else if(e===219){const s=this.lookU32();n=this.decodeString(s,4)}else if(e===220){const s=this.readU16();if(s!==0){this.pushArrayState(s),this.complete();continue e}else n=[]}else if(e===221){const s=this.readU32();if(s!==0){this.pushArrayState(s),this.complete();continue e}else n=[]}else if(e===222){const s=this.readU16();if(s!==0){this.pushMapState(s),this.complete();continue e}else n={}}else if(e===223){const s=this.readU32();if(s!==0){this.pushMapState(s),this.complete();continue e}else n={}}else if(e===196){const s=this.lookU8();n=this.decodeBinary(s,1)}else if(e===197){const s=this.lookU16();n=this.decodeBinary(s,2)}else if(e===198){const s=this.lookU32();n=this.decodeBinary(s,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){const s=this.lookU8();n=this.decodeExtension(s,1)}else if(e===200){const s=this.lookU16();n=this.decodeExtension(s,2)}else if(e===201){const s=this.lookU32();n=this.decodeExtension(s,4)}else throw new Ln(`Unrecognized type byte: ${su(e)}`);this.complete();const r=this.stack;for(;r.length>0;){const s=r.top();if(s.type===sd)if(s.array[s.position]=n,s.position++,s.position===s.size)n=s.array,r.release(s);else continue e;else if(s.type===ra){if(n==="__proto__")throw new Ln("The key __proto__ is not allowed");s.key=this.mapKeyConverter(n),s.type=sb;continue e}else if(s.map[s.key]=n,s.readCount++,s.readCount===s.size)n=s.map,r.release(s);else{s.key=null,s.type=ra;continue e}}return n}}readHeadByte(){return this.headByte===Ho&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=Ho}readArraySize(){const e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new Ln(`Unrecognized array type byte: ${su(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new Ln(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new Ln(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,n){return!this.rawStrings||this.stateIsMapKey()?this.decodeUtf8String(e,n):this.decodeBinary(e,n)}decodeUtf8String(e,n){var o;if(e>this.maxStrLength)throw new Ln(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+n+e)throw Qh;const r=this.pos+n;let s;return this.stateIsMapKey()&&((o=this.keyDecoder)!=null&&o.canBeCached(e))?s=this.keyDecoder.decode(this.bytes,r,e):s=a0(this.bytes,r,e),this.pos+=n+e,s}stateIsMapKey(){return this.stack.length>0?this.stack.top().type===ra:!1}decodeBinary(e,n){if(e>this.maxBinLength)throw new Ln(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+n))throw Qh;const r=this.pos+n,s=this.bytes.subarray(r,r+e);return this.pos+=n+e,s}decodeExtension(e,n){if(e>this.maxExtLength)throw new Ln(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);const r=this.view.getInt8(this.pos+n),s=this.decodeBinary(e,n+1);return this.extensionCodec.decode(s,r,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){const e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){const e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){const e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){const e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){const e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){const e=c0(this.view,this.pos);return this.pos+=8,e}readI64(){const e=rb(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){const e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){const e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){const e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){const e=this.view.getFloat64(this.pos);return this.pos+=8,e}}function Zh(t,e){return new hf(e).decode(t)}const A0=15e3,R0=500,ob="bamboo.v2.msgpack",j0=3500,I0=15e3,O0=3;let zt=null,hs=!1,sa=0,lo=null,co=!1,yr=!1,fa=!1,Wi=null,Zs=0,uo=null;const ql=new Set;let bt=null;const ha=new Map,ib=t=>`agent.${t}`,pf=()=>bt!==null||ha.size>0,$0=()=>zt!==null&&zt.protocol===ob,Es=t=>{if(zt&&zt.readyState===WebSocket.OPEN)try{zt.send($0()?x0(t):JSON.stringify(t))}catch(e){pe("[v2Stream]","send.error",{payload:t,error:e})}},L0=()=>{Es({type:"hello"}),bt&&Es({type:"subscribe",ch:"feed",since:bt.since});for(const t of ha.values())Es({type:"subscribe",ch:ib(t.sessionId)})},ab=()=>{lo&&(clearTimeout(lo),lo=null)},mf=()=>{uo&&(clearTimeout(uo),uo=null)},lb=t=>{if(t&&!yr){if(fa){const e=t;queueMicrotask(()=>{yr||fa&&e()});return}ql.add(t)}},el=t=>{if(fa||yr&&!(t!=null&&t.force))return;fa=!0,mf(),ab(),co=!0,cb(),hs=!1,pe("[v2Stream]","connect.failed_initial",{});const e=[...ql];ql.clear();for(const n of e)try{n()}catch(r){pe("[v2Stream]","connect.failed_initial.listener_error",{error:r})}},ep=()=>{if(!pf()||co||lo)return;const t=Math.min(R0*2**sa,A0);sa+=1,pe("[v2Stream]","reconnect.schedule",{attempt:sa,delay:t}),lo=setTimeout(()=>{lo=null,gf()},t)},cb=()=>{if(zt){zt.onopen=null,zt.onmessage=null,zt.onerror=null,zt.onclose=null;try{zt.close()}catch{}zt=null}},ub=()=>{pf()||(co=!0,ab(),mf(),cb(),hs=!1,sa=0,yr=!1,fa=!1,Wi=null,Zs=0,ql.clear())},D0=t=>{try{if(typeof t=="string")return JSON.parse(t);if(t instanceof ArrayBuffer)return Zh(new Uint8Array(t));if(ArrayBuffer.isView(t)){const e=t;return Zh(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}pe("[v2Stream]","frame.unknown_data_type",{});return}catch(e){console.warn("Failed to parse v2 stream frame:",t,e);return}},F0=t=>{var s,o;if(!t||typeof t.ch!="string"){pe("[v2Stream]","frame.unknown",{});return}const{ch:e,control:n,event:r}=t;if(e==="feed"){if(!bt)return;if(n){n.type==="feed_reset"&&(pe("[v2Stream]","feed.reset",{}),bt.since=0,(o=(s=bt.handlers).onReset)==null||o.call(s));return}if(r===void 0){pe("[v2Stream]","feed.frame.no_event",{});return}const i=r;typeof i.seq=="number"&&i.seq>bt.since&&(bt.since=i.seq),bt.handlers.onChange(i);return}if(e.startsWith("agent.")){const i=ha.get(e);if(!i)return;if(n){n.type==="terminal"&&(pe("[v2Stream]","agent.terminal",{ch:e}),i.resolve());return}if(r===void 0){pe("[v2Stream]","agent.frame.no_event",{});return}try{i.dispatch(r,i.handlers)}catch(a){console.warn("Failed to dispatch v2 agent event:",r,a)}return}pe("[v2Stream]","frame.unknown_channel",{ch:e})},gf=()=>{var r,s,o,i;if(!pf()||zt&&(zt.readyState===WebSocket.OPEN||zt.readyState===WebSocket.CONNECTING)||hs)return;if(typeof WebSocket>"u"){pe("[v2Stream]","connect.no_websocket",{});return}hs=!0,co=!1;const t=G_();pe("[v2Stream]","connect",{url:t});const e=z_();let n;try{n=e?new WebSocket(t,[ob]):new WebSocket(t),e&&(n.binaryType="arraybuffer")}catch(a){if(hs=!1,pe("[v2Stream]","connect.error",{error:a}),!yr){(s=bt==null?void 0:(r=bt.handlers).onError)==null||s.call(r),queueMicrotask(()=>el());return}(i=bt==null?void 0:(o=bt.handlers).onError)==null||i.call(o),ep();return}zt=n,!yr&&!uo&&(uo=setTimeout(()=>{uo=null,yr||(pe("[v2Stream]","connect.open_timeout",{}),el())},j0)),n.onopen=()=>{var a,c;hs=!1,sa=0,yr=!0,Wi=Date.now(),mf(),pe("[v2Stream]","open",{}),L0(),(c=bt==null?void 0:(a=bt.handlers).onOpen)==null||c.call(a)},n.onmessage=a=>{F0(D0(a.data))},n.onerror=()=>{var a,c;pe("[v2Stream]","error",{}),(c=bt==null?void 0:(a=bt.handlers).onError)==null||c.call(a)},n.onclose=()=>{var c,d,f,p,y,m;if(hs=!1,pe("[v2Stream]","close",{intentional:co,everOpened:yr}),zt===n&&(zt=null),co)return;if(!yr){(d=bt==null?void 0:(c=bt.handlers).onError)==null||d.call(c),el();return}const a=Wi===null?0:Date.now()-Wi;if(Wi=null,a>=I0)Zs=0;else if(Zs+=1,pe("[v2Stream]","close.short_lived",{openedFor:a,shortLivedCloses:Zs}),Zs>=O0){pe("[v2Stream]","close.short_lived.fallback",{shortLivedCloses:Zs}),(p=bt==null?void 0:(f=bt.handlers).onError)==null||p.call(f),el({force:!0});return}(m=bt==null?void 0:(y=bt.handlers).onError)==null||m.call(y),ep()}},N0=(t,e,n)=>{bt={handlers:t,since:e>0?e:0},lb(n),zt&&zt.readyState===WebSocket.OPEN?Es({type:"subscribe",ch:"feed",since:bt.since}):gf();let r=!1;return{close(){r||(r=!0,bt=null,Es({type:"unsubscribe",ch:"feed"}),ub())}}},z0=(t,e,n,r)=>{const s=ib(t);let o=!1,i=()=>{};const a=new Promise(c=>{i=()=>{o||(o=!0,ha.delete(s),Es({type:"unsubscribe",ch:s}),ub(),c())}});return ha.set(s,{sessionId:t,handlers:e,dispatch:n,resolve:i}),lb(r),zt&&zt.readyState===WebSocket.OPEN?Es({type:"subscribe",ch:s}):gf(),{promise:a,close:i}},B0=t=>t?{client_message_count:t.client_message_count,client_last_message_id:t.client_last_message_id??null,client_has_pending_question:t.client_has_pending_question,client_pending_question_tool_call_id:t.client_pending_question_tool_call_id??null}:null,W0=t=>t?{need_sync:t.need_sync,reason:t.reason??null,server_message_count:t.server_message_count,server_last_message_id:t.server_last_message_id??null,has_pending_question:t.has_pending_question,pending_question_tool_call_id:t.pending_question_tool_call_id??null,has_pending_user_message:t.has_pending_user_message}:null,U0=t=>{var n;const e=t.messages[t.messages.length-1];return{session_id:t.session_id,messageCount:t.messages.length,lastMessageId:(e==null?void 0:e.id)??null,lastRole:(e==null?void 0:e.role)??null,compressionEvents:((n=t.compression_events)==null?void 0:n.length)??0}},H0=t=>({count:t.length,runningCount:t.filter(e=>e.is_running).length,sessions:t.slice(0,10).map(e=>({id:e.id,is_running:e.is_running,last_run_status:e.last_run_status??null,message_count:e.message_count,has_pending_question:e.has_pending_question??!1,running_child_count:e.running_child_count??0,updated_at:e.updated_at}))}),q0=t=>({count:t.sessions.length,sessions:t.sessions.map(e=>({session_id:e.session_id,run_id:e.run_id,round_count:e.round_count,last_event_at:e.last_event_at??null,last_tool_name:e.last_tool_name??null,last_tool_phase:e.last_tool_phase??null,criticalEventCount:e.last_critical_events.length,runningChildCount:e.running_child_session_ids.length}))}),tl=t=>({type:t.type,session_id:t.session_id??null,run_id:t.run_id??null,round_count:t.round_count??null,message:t.message??null,error:t.error??null,tool_call_id:t.tool_call_id??null}),bs=class bs{static getInstance(){return bs.instance||(bs.instance=new bs),bs.instance}async sendMessage(e){var r,s,o;pe("[AgentClient]","chat.request",{sessionId:e.session_id??null,model:e.model,modelRef:e.model_ref??null,provider:e.provider??null,messageLength:e.message.length,hasImages:(((r=e.images)==null?void 0:r.length)??0)>0,imageCount:((s=e.images)==null?void 0:s.length)??0,selectedSkillCount:((o=e.selected_skill_ids)==null?void 0:o.length)??0,workspacePath:e.workspace_path??null});const n=await Je.post("chat",e);return pe("[AgentClient]","chat.response",{requestedSessionId:e.session_id??null,sessionId:n.session_id,status:n.status}),n}async execute(e,n,r,s,o){const i={};n&&(i.model=n),r&&(i.reasoning_effort=r),s&&(i.client_sync=s),o&&(i.model_ref=o,i.provider=o.provider),pe("[AgentClient]","execute.request",{sessionId:e,model:i.model??null,reasoningEffort:i.reasoning_effort??null,modelRef:i.model_ref??null,provider:i.provider??null,clientSync:B0(i.client_sync)});const a=await Je.post(`execute/${e}`,i);return pe("[AgentClient]","execute.response",{sessionId:e,status:a.status,runId:a.run_id??null,eventsUrl:a.events_url,sync:W0(a.sync)}),a}async listSessions(){pe("[AgentClient]","sessions.list.request",{});const e=await Je.get("sessions");return pe("[AgentClient]","sessions.list.response",H0(e.sessions)),e}async getTaskList(e){const n=encodeURIComponent(e),r=await Je.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 getPendingQuestion(e){const n=encodeURIComponent(e);try{return await Je.get(`respond/${n}/pending`)}catch(r){return console.warn(`[AgentClient] getPendingQuestion failed for ${e}:`,r),{has_pending_question:!1}}}async createSession(e){return Je.post("sessions",e)}async patchSession(e,n){const r=encodeURIComponent(e);await Je.patch(`sessions/${r}`,n)}async regenerateSessionTitle(e){const n=encodeURIComponent(e);await Je.post(`sessions/${n}/regenerate-title`)}async getSessionSystemPrompt(e){const n=encodeURIComponent(e);return Je.get(`sessions/${n}/system-prompt`)}async clearSession(e){const n=encodeURIComponent(e);await Je.post(`sessions/${n}/clear`)}async runProjectDream(e){const n=encodeURIComponent(e);return Je.post(`sessions/${n}/project-dream/run`)}async truncateSessionMessages(e,n){const r=encodeURIComponent(e);return Je.post(`sessions/${r}/messages/truncate`,n)}async restoreSessionState(e,n){const r=encodeURIComponent(e);return Je.post(`sessions/${r}/restore`,n)}async patchSessionMessage(e,n,r){const s=encodeURIComponent(e),o=encodeURIComponent(n);await Je.patch(`sessions/${s}/messages/${o}`,r)}async deleteSessionMessage(e,n){const r=encodeURIComponent(e),s=encodeURIComponent(n);await Je.delete(`sessions/${r}/messages/${s}`)}async cleanupSessions(e,n){await Je.post("sessions/cleanup",{mode:e,keep_pinned:n})}async respondToChildApproval(e,n,r){return Je.post(`child-approval/${encodeURIComponent(e)}`,{request_id:n,approved:r})}async devResetSessions(){try{await Je.post("dev/reset")}catch(e){throw eb(e)&&e.status===404?new Error("Dev reset is unavailable: this build does not have dev endpoints enabled."):e}}async getRunningSessions(){pe("[AgentClient]","runs.active.request",{});const e=await Je.get("runs/active");return pe("[AgentClient]","runs.active.response",q0(e)),e}async listSchedules(){return Je.get("schedules")}async createSchedule(e){return Je.post("schedules",e)}async patchSchedule(e,n){const r=encodeURIComponent(e);return Je.patch(`schedules/${r}`,n)}async deleteSchedule(e){const n=encodeURIComponent(e);await Je.delete(`schedules/${n}`)}async runScheduleNow(e){const n=encodeURIComponent(e);await Je.post(`schedules/${n}/run`)}async listScheduleSessions(e){const n=encodeURIComponent(e);return Je.get(`schedules/${n}/sessions`)}async listScheduleRuns(e){const n=encodeURIComponent(e);return Je.get(`schedules/${n}/runs`)}async subscribeToEvents(e,n,r){const s=r==null?void 0:r.signal;if(pe("[AgentClient]","events.subscribe.request",{sessionId:e}),nd()){if(s!=null&&s.aborted){pe("[AgentClient]","events.subscribe.ws.aborted_before_connect",{sessionId:e});return}let o=!1;await new Promise((a,c)=>{let d=()=>{};const f=z0(e,n,(m,w)=>this.handleEvent(m,w),()=>{o=!0,pe("[AgentClient]","events.subscribe.ws.connect_failed_fallback",{sessionId:e}),d(),this.subscribeToEventsSse(e,n,s).then(a,c)}),{promise:p}=f;d=f.close;const y=()=>{pe("[AgentClient]","events.subscribe.ws.abort",{sessionId:e}),d()};s==null||s.addEventListener("abort",y,{once:!0}),p.then(()=>{s==null||s.removeEventListener("abort",y),o||a()}).catch(m=>{s==null||s.removeEventListener("abort",y),o||c(m)})});return}return this.subscribeToEventsSse(e,n,s)}subscribeToEventsSse(e,n,r){const s=Jr().trim().replace(/\/+$/,""),i=`${s.endsWith("/v1")?s.slice(0,-3):s}/api/v1/events/${encodeURIComponent(e)}`;return pe("[AgentClient]","events.subscribe.url",{sessionId:e,eventsUrl:i}),new Promise((a,c)=>{if(r!=null&&r.aborted){pe("[AgentClient]","events.subscribe.aborted_before_connect",{sessionId:e}),a();return}let d=!1,f=!1,p=null;const y=()=>{pe("[AgentClient]","events.subscribe.abort",{sessionId:e,terminalSeen:f}),w()},m=()=>{p&&(p.close(),p=null),r==null||r.removeEventListener("abort",y)},w=()=>{d||(d=!0,pe("[AgentClient]","events.subscribe.resolve",{sessionId:e,terminalSeen:f,aborted:(r==null?void 0:r.aborted)??!1}),m(),a())},b=_=>{d||(d=!0,pe("[AgentClient]","events.subscribe.reject",{sessionId:e,terminalSeen:f,aborted:(r==null?void 0:r.aborted)??!1,error:_}),m(),c(_))};r==null||r.addEventListener("abort",y,{once:!0});try{p=new EventSource(i,{withCredentials:!0})}catch(_){b(_);return}p.onopen=()=>{pe("[AgentClient]","events.subscribe.open",{sessionId:e})},p.onmessage=_=>{const M=_.data;if(M==="[DONE]"){f=!0,pe("[AgentClient]","events.subscribe.done",{sessionId:e}),w();return}if(M!=="[KEEPALIVE]")try{const C=JSON.parse(M);(C.type==="execution_started"||C.type==="complete"||C.type==="cancelled"||C.type==="error"||C.type==="runner_progress"||C.type==="need_clarification")&&pe("[AgentClient]","events.subscribe.event",{sessionId:e,...tl(C)}),this.handleEvent(C,n),(C.type==="complete"||C.type==="cancelled"||C.type==="error")&&(f=!0)}catch(C){console.warn("Failed to parse event:",M,C)}},p.onerror=()=>{if(pe("[AgentClient]","events.subscribe.error",{sessionId:e,terminalSeen:f,aborted:(r==null?void 0:r.aborted)??!1}),r!=null&&r.aborted||f){w();return}b(new Error(`EventSource connection failed for session ${e}`))}})}subscribeToAccountStream(e,n){if(nd()){let r=!1,s=null,o=()=>{};const i=N0(e,(n==null?void 0:n.since)??0,()=>{r||(pe("[AgentClient]","stream.subscribe.ws.connect_failed_fallback",{}),o(),s=this.subscribeAccountStreamSse(e,n))});return o=()=>i.close(),s===null&&(s=i),{close(){r||(r=!0,s==null||s.close())}}}return this.subscribeAccountStreamSse(e,n)}subscribeAccountStreamSse(e,n){const r=Jr().trim().replace(/\/+$/,""),s=r.endsWith("/v1")?r.slice(0,-3):r,o=n!=null&&n.since&&n.since>0?`?since=${n.since}`:"",i=`${s}/api/v1/stream${o}`;pe("[AgentClient]","stream.subscribe.url",{url:i});const a=new EventSource(i,{withCredentials:!0});return a.onopen=()=>{var c;pe("[AgentClient]","stream.subscribe.open",{}),(c=e.onOpen)==null||c.call(e)},a.onmessage=c=>{var f;const d=c.data;if(d!=="[KEEPALIVE]")try{const p=JSON.parse(d);if(p.type==="feed_reset"){pe("[AgentClient]","stream.subscribe.feed_reset",p),(f=e.onReset)==null||f.call(e);return}e.onChange(p)}catch(p){console.warn("Failed to parse change-feed event:",d,p)}},a.onerror=()=>{var c;pe("[AgentClient]","stream.subscribe.error",{}),(c=e.onError)==null||c.call(e)},a}handleEvent(e,n){var r,s,o,i,a,c,d,f,p,y,m,w,b,_,M,C,T,k,P,A,j,$,F,X,K,O,W,ae,Y,ce,L,oe,Se,J,te;switch(e.type){case"token":(r=n.onToken)==null||r.call(n,e.content||"");break;case"reasoning_token":(s=n.onReasoningToken)==null||s.call(n,e.content||"");break;case"tool_token":(o=n.onToolToken)==null||o.call(n,e.tool_call_id||"",e.content||"");break;case"tool_start":(i=n.onToolStart)==null||i.call(n,e.tool_call_id||"",e.tool_name||"",e.arguments||{});break;case"tool_complete":e.result&&((a=n.onToolComplete)==null||a.call(n,e.tool_call_id||"",e.result));break;case"tool_error":(c=n.onToolError)==null||c.call(n,e.tool_call_id||"",e.error||"");break;case"bash_completed":(d=n.onBashCompleted)==null||d.call(n,e.bash_id??"",e.command??"",e.exit_code??null,typeof e.status=="string"?e.status:"completed");break;case"task_list_updated":e.task_list&&((f=n.onTaskListUpdated)==null||f.call(n,e.task_list));break;case"task_list_item_progress":if(e.session_id&&e.item_id&&e.status&&e.tool_calls_count!==void 0&&e.version!==void 0){const he=e.status;if(!(he==="pending"||he==="in_progress"||he==="completed"||he==="blocked"))break;(p=n.onTaskListItemProgress)==null||p.call(n,{session_id:e.session_id,item_id:e.item_id,status:he,tool_calls_count:e.tool_calls_count,version:e.version})}break;case"task_list_completed":e.session_id&&e.total_rounds!==void 0&&e.total_tool_calls!==void 0&&((y=n.onTaskListCompleted)==null||y.call(n,e.session_id,e.total_rounds,e.total_tool_calls,e.completed_at));break;case"task_evaluation_started":e.session_id&&e.items_count!==void 0&&((m=n.onTaskEvaluationStarted)==null||m.call(n,e.session_id,e.items_count));break;case"task_evaluation_completed":e.session_id&&e.updates_count!==void 0&&e.reasoning&&((w=n.onTaskEvaluationCompleted)==null||w.call(n,e.session_id,e.updates_count,e.reasoning));break;case"token_budget_updated":e.usage&&"system_tokens"in e.usage&&((b=n.onTokenBudgetUpdated)==null||b.call(n,e.usage));break;case"context_compression_status":typeof e.phase=="string"&&typeof e.status=="string"&&((_=n.onContextCompressionStatus)==null||_.call(n,e.phase,e.status));break;case"tool_lifecycle":(M=n.onToolLifecycle)==null||M.call(n,e.tool_call_id||"",e.tool_name||"",e.phase||"",e.elapsed_ms,e.is_mutating,e.auto_approved,e.summary,e.error);break;case"context_summarized":e.summary_info&&((C=n.onContextSummarized)==null||C.call(n,e.summary_info));break;case"context_pressure_notification":typeof e.percent=="number"&&typeof e.level=="string"&&((T=n.onContextPressureNotification)==null||T.call(n,e.percent,e.level,e.message||""));break;case"sub_agent_started":e.parent_session_id&&e.child_session_id&&((k=n.onSubAgentStarted)==null||k.call(n,e.parent_session_id,e.child_session_id,e.title));break;case"sub_agent_event":e.parent_session_id&&e.child_session_id&&e.event&&((P=n.onSubAgentEvent)==null||P.call(n,e.parent_session_id,e.child_session_id,e.event));break;case"sub_agent_heartbeat":e.parent_session_id&&e.child_session_id&&e.timestamp&&((A=n.onSubAgentHeartbeat)==null||A.call(n,e.parent_session_id,e.child_session_id,e.timestamp));break;case"sub_agent_completed":e.parent_session_id&&e.child_session_id&&((j=n.onSubAgentCompleted)==null||j.call(n,e.parent_session_id,e.child_session_id,typeof e.status=="string"?e.status:"completed",e.error));break;case"child_approval_requested":e.child_session_id&&e.request_id&&(($=n.onChildApprovalRequested)==null||$.call(n,e.child_session_id,e.request_id,{toolName:e.tool_name,permission:e.permission,resource:e.resource}));break;case"execution_started":(F=n.onExecutionStarted)==null||F.call(n,e.run_id||"",e.started_at);break;case"runner_progress":e.session_id&&typeof e.round_count=="number"&&((X=n.onRunnerProgress)==null||X.call(n,e.session_id,e.round_count));break;case"need_clarification":(K=n.onNeedClarification)==null||K.call(n,e);break;case"notification":(O=n.onNotification)==null||O.call(n,e);break;case"session_title_updated":e.session_id&&typeof e.title=="string"&&typeof e.title_version=="number"&&(e.source==="auto"||e.source==="manual"||e.source==="fallback")&&typeof e.updated_at=="string"&&((W=n.onSessionTitleUpdated)==null||W.call(n,{type:"session_title_updated",session_id:e.session_id,title:e.title,title_version:e.title_version,source:e.source,updated_at:e.updated_at}));break;case"session_pinned_updated":e.session_id&&typeof e.pinned=="boolean"&&typeof e.updated_at=="string"&&((ae=n.onSessionPinnedUpdated)==null||ae.call(n,{type:"session_pinned_updated",session_id:e.session_id,pinned:e.pinned,updated_at:e.updated_at}));break;case"plan_mode_entered":(Y=n.onPlanModeEntered)==null||Y.call(n,e);break;case"plan_mode_exited":(ce=n.onPlanModeExited)==null||ce.call(n,e);break;case"plan_file_updated":(L=n.onPlanFileUpdated)==null||L.call(n,e);break;case"goal_status_changed":(oe=n.onGoalStatusChanged)==null||oe.call(n,e);break;case"complete":pe("[AgentClient]","events.dispatch.complete",tl(e)),(Se=n.onComplete)==null||Se.call(n,e.usage);break;case"cancelled":pe("[AgentClient]","events.dispatch.cancelled",tl(e)),(J=n.onCancelled)==null||J.call(n,e.message);break;case"error":pe("[AgentClient]","events.dispatch.error",tl(e)),(te=n.onError)==null||te.call(n,e.message||e.error||"Unknown error");break;default:console.warn("Unknown event type:",e)}}async stopGeneration(e){await Je.post(`stop/${e}`)}async deleteSession(e){const n=encodeURIComponent(e);await Je.delete(`sessions/${n}`)}async getHistory(e,n){pe("[AgentClient]","history.request",{sessionId:e,sinceMessageId:n});const r=n?`history/${e}?since_message_id=${encodeURIComponent(n)}`:`history/${e}`,s=await Je.get(r);return pe("[AgentClient]","history.response",U0(s)),s}async healthCheck(){try{return await Je.get("health"),!0}catch{return!1}}};Ie(bs,"instance");let Pn=bs;const _s=Pn.getInstance(),tp="provider",oa=Ir(t=>({isOpen:!1,origin:"chat",activeTabKey:tp,open:(e,n=tp)=>t({isOpen:!0,origin:e,activeTabKey:n}),close:()=>t({isOpen:!1}),setActiveTabKey:e=>t({activeTabKey:e})})),np={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},pa=new Map,nl=t=>{const e=pa.get(t);return e?Object.fromEntries(Object.entries(e.stores).map(([n,r])=>[n,r.getState()])):{}},K0=(t,e,n)=>{if(t===void 0)return{type:"untracked",connection:e.connect(n)};const r=pa.get(n.name);if(r)return{type:"tracked",store:t,...r};const s={connection:e.connect(n),stores:{}};return pa.set(n.name,s),{type:"tracked",store:t,...s}},X0=(t,e)=>{if(e===void 0)return;const n=pa.get(t);n&&(delete n.stores[e],Object.keys(n.stores).length===0&&pa.delete(t))},Y0=t=>{var e,n;if(!t)return;const r=t.split(`
3
+ `),s=r.findIndex(i=>i.includes("api.setState"));if(s<0)return;const o=((e=r[s+1])==null?void 0:e.trim())||"";return(n=/.+ (.+) .+/.exec(o))==null?void 0:n[1]},V0=(t,e={})=>(n,r,s)=>{const{enabled:o,anonymousActionType:i,store:a,...c}=e;let d;try{d=(o??(np?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!d)return t(n,r,s);const{connection:f,...p}=K0(a,d,c);let y=!0;s.setState=(b,_,M)=>{const C=n(b,_);if(!y)return C;const T=M===void 0?{type:i||Y0(new Error().stack)||"anonymous"}:typeof M=="string"?{type:M}:M;return a===void 0?(f==null||f.send(T,r()),C):(f==null||f.send({...T,type:`${a}/${T.type}`},{...nl(c.name),[a]:s.getState()}),C)},s.devtools={cleanup:()=>{f&&typeof f.unsubscribe=="function"&&f.unsubscribe(),X0(c.name,a)}};const m=(...b)=>{const _=y;y=!1,n(...b),y=_},w=t(s.setState,r,s);if(p.type==="untracked"?f==null||f.init(w):(p.stores[p.store]=s,f==null||f.init(Object.fromEntries(Object.entries(p.stores).map(([b,_])=>[b,b===p.store?w:_.getState()])))),s.dispatchFromDevtools&&typeof s.dispatch=="function"){let b=!1;const _=s.dispatch;s.dispatch=(...M)=>{(np?"production":void 0)!=="production"&&M[0].type==="__setState"&&!b&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),b=!0),_(...M)}}return f.subscribe(b=>{var _;switch(b.type){case"ACTION":if(typeof b.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return ou(b.payload,M=>{if(M.type==="__setState"){if(a===void 0){m(M.state);return}Object.keys(M.state).length!==1&&console.error(`
4
4
  [zustand devtools middleware] Unsupported __setState action format.
5
5
  When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
6
6
  and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
7
- `);const C=M.state[a];if(C==null)return;JSON.stringify(s.getState())!==JSON.stringify(C)&&m(C);return}s.dispatchFromDevtools&&typeof s.dispatch=="function"&&s.dispatch(M)});case"DISPATCH":switch(y.payload.type){case"RESET":return m(w),a===void 0?f==null?void 0:f.init(s.getState()):f==null?void 0:f.init(nl(c.name));case"COMMIT":if(a===void 0){f==null||f.init(s.getState());return}return f==null?void 0:f.init(nl(c.name));case"ROLLBACK":return ou(y.state,M=>{if(a===void 0){m(M),f==null||f.init(s.getState());return}m(M[a]),f==null||f.init(nl(c.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return ou(y.state,M=>{if(a===void 0){m(M);return}JSON.stringify(s.getState())!==JSON.stringify(M[a])&&m(M[a])});case"IMPORT_STATE":{const{nextLiftedState:M}=y.payload,C=(_=M.computedStates.slice(-1)[0])==null?void 0:_.state;if(!C)return;m(a===void 0?C:C[a]),f==null||f.send(null,M);return}case"PAUSE_RECORDING":return b=!b}return}}),w},K0=q0,ou=(t,e)=>{let n;try{n=JSON.parse(t)}catch(r){console.error("[zustand devtools middleware] Could not parse the received json",r)}n!==void 0&&e(n)},X0=t=>(e,n,r)=>{const s=r.subscribe;return r.subscribe=(i,a,c)=>{let d=i;if(a){const f=(c==null?void 0:c.equalityFn)||Object.is;let p=i(r.getState());d=b=>{const m=i(b);if(!f(p,m)){const w=p;a(p=m,w)}},c!=null&&c.fireImmediately&&a(p,p)}return s(d)},t(e,n,r)},Y0=X0;function V0(t,e){let n;try{n=t()}catch{return}return{getItem:s=>{var o;const i=c=>c===null?null:JSON.parse(c,void 0),a=(o=n.getItem(s))!=null?o:null;return a instanceof Promise?a.then(i):i(a)},setItem:(s,o)=>n.setItem(s,JSON.stringify(o,void 0)),removeItem:s=>n.removeItem(s)}}const od=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return od(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return od(r)(n)}}}},G0=(t,e)=>(n,r,s)=>{let o={storage:V0(()=>localStorage),partialize:y=>y,version:0,merge:(y,_)=>({..._,...y}),...e},i=!1;const a=new Set,c=new Set;let d=o.storage;if(!d)return t((...y)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),n(...y)},r,s);const f=()=>{const y=o.partialize({...r()});return d.setItem(o.name,{state:y,version:o.version})},p=s.setState;s.setState=(y,_)=>{p(y,_),f()};const b=t((...y)=>{n(...y),f()},r,s);s.getInitialState=()=>b;let m;const w=()=>{var y,_;if(!d)return;i=!1,a.forEach(C=>{var T;return C((T=r())!=null?T:b)});const M=((_=o.onRehydrateStorage)==null?void 0:_.call(o,(y=r())!=null?y:b))||void 0;return od(d.getItem.bind(d))(o.name).then(C=>{if(C)if(typeof C.version=="number"&&C.version!==o.version){if(o.migrate){const T=o.migrate(C.state,C.version);return T instanceof Promise?T.then(k=>[!0,k]):[!0,T]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,C.state];return[!1,void 0]}).then(C=>{var T;const[k,P]=C;if(m=o.merge(P,(T=r())!=null?T:b),n(m,!0),k)return f()}).then(()=>{M==null||M(m,void 0),m=r(),i=!0,c.forEach(C=>C(m))}).catch(C=>{M==null||M(void 0,C)})};return s.persist={setOptions:y=>{o={...o,...y},y.storage&&(d=y.storage)},clearStorage:()=>{d==null||d.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>w(),hasHydrated:()=>i,onHydrate:y=>(a.add(y),()=>{a.delete(y)}),onFinishHydration:y=>(c.add(y),()=>{c.delete(y)})},o.skipHydration||w(),m||b},J0=G0;class Q0{async getProviderConfig(){return ze.get("/bamboo/settings/provider")}async saveProviderConfig(e){return ze.post("/bamboo/settings/provider",e)}async reloadConfig(){return ze.post("/bamboo/settings/reload")}async getPermissionAskRules(){return(await ze.get("/bamboo/permission/ask-rules")).rules}async updatePermissionAskRules(e){return(await ze.put("/bamboo/permission/ask-rules",{rules:e})).rules}async getCopilotAuthStatus(){return ze.post("/bamboo/copilot/auth/status")}async startCopilotAuth(){return ze.post("/bamboo/copilot/auth/start")}async completeCopilotAuth(e){return ze.post("/bamboo/copilot/auth/complete",e)}async authenticateCopilot(){return ze.post("/bamboo/copilot/authenticate")}async logoutCopilot(){return ze.post("/bamboo/copilot/logout")}async fetchProviderModels(e){return(await ze.post("/bamboo/settings/provider/models",{provider:e})).models}async getProviderCatalog(){return ze.get("/bamboo/provider-catalog")}async fetchCatalogModels(e){const n=e?{provider:e}:{};return ze.post("/bamboo/provider-catalog/fetch-models",n)}async getProviderInstances(){return ze.get("/bamboo/settings/provider-instances")}async createProviderInstance(e){return ze.post("/bamboo/settings/provider-instances",e)}async updateProviderInstance(e,n){return ze.put(`/bamboo/settings/provider-instances/${encodeURIComponent(e)}`,n)}async deleteProviderInstance(e){return ze.delete(`/bamboo/settings/provider-instances/${encodeURIComponent(e)}`)}async setDefaultProviderInstance(e){return ze.post("/bamboo/settings/provider-instances/default",{default_provider_instance_id:e})}async getEnvVars(){return ze.get("/bamboo/env-vars")}async upsertEnvVar(e){return ze.post("/bamboo/env-vars",e)}async deleteEnvVar(e){return ze.delete(`/bamboo/env-vars/${encodeURIComponent(e)}`)}async replaceEnvVars(e){return ze.post("/bamboo/env-vars/replace",{entries:e})}async listNodes(){return ze.get("/bamboo/settings/nodes")}async createNode(e){return ze.post("/bamboo/settings/nodes",e)}async updateNode(e,n){return ze.put(`/bamboo/settings/nodes/${encodeURIComponent(e)}`,n)}async deleteNode(e){await ze.delete(`/bamboo/settings/nodes/${encodeURIComponent(e)}`)}async createCluster(e){return ze.post("/bamboo/settings/clusters",e)}async updateCluster(e,n){return ze.put(`/bamboo/settings/clusters/${encodeURIComponent(e)}`,n)}async deleteCluster(e){return ze.delete(`/bamboo/settings/clusters/${encodeURIComponent(e)}`)}async nodeAction(e,n){return ze.post(`/bamboo/settings/nodes/${encodeURIComponent(e)}/${n}`,{})}async nodeStatus(e){return ze.get(`/bamboo/settings/nodes/${encodeURIComponent(e)}/status`)}async nodeLogs(e,n=200){return ze.get(`/bamboo/settings/nodes/${encodeURIComponent(e)}/logs?lines=${n}`)}}const Wi=new Q0,Z0=(t,e,n)=>{var o;if(!(t!=null&&t.models)||!e.trim())return[];const r=t.models.filter(i=>i.reference.provider===e);if(r.length>0)return r;const s=(o=n.find(i=>i.id===e))==null?void 0:o.type;return s?t.models.filter(i=>i.reference.provider===s):[]},yt=es((t,e)=>({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;t({isLoading:!0,error:null});try{const s=await Wi.getProviderConfig();if(!((r=(n=s.defaults)==null?void 0:n.chat)!=null&&r.model)&&s.provider&&s.providers){const o=s.provider,i=s.providers[o],a=i==null?void 0:i.model;a&&(s.defaults={chat:{provider:o,model:a}})}t({providerConfig:s,currentProvider:s.provider,isLoading:!1})}catch(s){console.error("Failed to load provider config:",s),t({error:s instanceof Error?s.message:"Failed to load provider config",isLoading:!1})}},loadProviderInstances:async()=>{var n,r,s,o;t({isLoading:!0,error:null});try{const i=await Wi.getProviderInstances(),a=i.instances??[],c=i.default_provider_instance_id??null,d={};for(const p of a)d[p.id]=p.config;const f={provider:c??"",defaults:i.defaults,providers:d,features:i.features};if(!((r=(n=f.defaults)==null?void 0:n.chat)!=null&&r.model)&&c){const p=d[c],b=p==null?void 0:p.model;b&&(f.defaults={chat:{provider:c,model:b}})}t({providerInstances:a,defaultProviderInstanceId:c,currentProvider:c??((o=(s=i.defaults)==null?void 0:s.chat)==null?void 0:o.provider)??"",providerConfig:f,isInstancesLoaded:!0,isLoading:!1})}catch(i){console.error("Failed to load provider instances:",i),t({error:i instanceof Error?i.message:"Failed to load provider instances",isLoading:!1,isInstancesLoaded:!1})}},setCurrentProvider:n=>{t({currentProvider:n})},updateProviderConfig:n=>{t(r=>({providerConfig:{...r.providerConfig,...n}}))},getActiveModel:()=>{var s,o,i;return((i=(o=(s=e().providerConfig.defaults)==null?void 0:s.chat)==null?void 0:o.model)==null?void 0:i.trim())||void 0},getFastModel:()=>{var s,o,i;const n=e();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},getVisionModel:()=>{var s,o,i;const n=e();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.vision)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},isProviderModelRefEnabled:()=>!0,setSelectedModelRef:n=>{t({selectedModelRef:n})},loadCatalog:async()=>{try{const n=await Wi.getProviderCatalog();t({catalog:n})}catch{}},fetchCatalogModels:async n=>{t({isCatalogFetching:!0});try{await Wi.fetchCatalogModels(n),await e().loadCatalog()}catch{}finally{t({isCatalogFetching:!1})}},getFastModelRef:()=>{var o,i,a,c;const n=e(),r=(o=n.providerConfig.defaults)==null?void 0:o.fast;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(a=n.providerConfig.defaults)==null?void 0:a.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getVisionModelRef:()=>{var o,i,a,c;const n=e(),r=(o=n.providerConfig.defaults)==null?void 0:o.vision;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(a=n.providerConfig.defaults)==null?void 0:a.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getModelsForProvider:n=>{const{catalog:r,providerInstances:s}=e();return Z0(r,n,s)},getProviderInstance:n=>e().providerInstances.find(r=>r.id===n),getProviderDisplayLabel:n=>{const r=e().providerInstances.find(s=>s.id===n);return r?r.label||r.type:n},getProviderType:n=>{const r=e().providerInstances.find(s=>s.id===n);return(r==null?void 0:r.type)??n}})),iF=Object.freeze(Object.defineProperty({__proto__:null,useProviderStore:yt},Symbol.toStringTag,{value:"Module"}));function lb(t){return t.type==="session_title_updated"||t.type==="session_pinned_updated"}function id(t,e){switch(t.type){case"session_title_updated":{typeof t.session_id=="string"&&typeof t.title=="string"&&typeof t.title_version=="number"&&e.applyServerTitle(t.session_id,t.title,t.title_version);break}case"session_pinned_updated":{typeof t.session_id=="string"&&typeof t.pinned=="boolean"&&typeof t.updated_at=="string"&&e.applyServerPinned(t.session_id,t.pinned,t.updated_at);break}}}function eC(t,e){const n=e.findIndex(r=>r.id===t.session_id);if(!(n<0))switch(t.type){case"session_title_updated":{if(typeof t.title!="string"||typeof t.title_version!="number")return;const r=t.title_version,s=e[n].titleVersion??0;if(r<=s)return;e[n]={...e[n],title:t.title,titleVersion:r};return}case"session_pinned_updated":{if(typeof t.pinned!="boolean"||typeof t.updated_at!="string")return;const r=new Date(t.updated_at).getTime(),s=new Date(e[n].updatedAt??0).getTime();if(r<s||e[n].pinned===t.pinned)return;e[n]={...e[n],pinned:t.pinned,updatedAt:t.updated_at};return}}}const tC=5e3,np=80,nC=16,Kr=(t,e)=>{},yf=t=>t!==void 0&&t!=="idle"&&t!=="completed"&&t!=="error"&&t!=="cancelled",rC=t=>t==="starting"||t==="running"||t==="streaming"||t==="running_tools"||t==="running_children"||t==="settling",sC=t=>t==="starting"||t==="running"||t==="streaming"||t==="running_tools"||t==="running_children",cb=t=>({sessionId:t,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,pendingChildApproval:null},children:{byId:{},runningCount:0},timestamps:{optimisticAt:null,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},error:null}),Gt=(t,e)=>t[e]??cb(e),_t=(t,e)=>[...t.length>=nC?t.slice(-15):t,e],oC=t=>t.length<=np?t:t.slice(t.length-np),iC=(t,e)=>t.length===e.length&&t.every((n,r)=>n===e[r]),aC=(t,e)=>t?t.question===e.question&&t.allowCustom===e.allowCustom&&t.toolCallId===e.toolCallId&&iC(t.options,e.options):!1,ub=(t,e,n)=>{const r=aC(t.interaction.pendingQuestion,e)?t.interaction.pendingQuestion:{...e,receivedAt:n};return t.phase==="waiting_user_answer"&&t.confidence==="live"&&r===t.interaction.pendingQuestion?t:{...t,phase:"waiting_user_answer",confidence:"live",interaction:{...t.interaction,pendingQuestion:r,respondMode:null},activeReasons:_t(t.activeReasons,"sse:need_clarification")}},lC=(t,e)=>t?t.childSessionId===e.childSessionId&&t.requestId===e.requestId&&t.toolName===e.toolName&&t.permission===e.permission&&t.resource===e.resource:!1,cC=(t,e,n)=>lC(t.interaction.pendingChildApproval,e)?t:{...t,interaction:{...t.interaction,pendingChildApproval:{...e,receivedAt:n}}},ka=new Set(["idle","completed","error","cancelled","settling","waiting_user_answer"]),Ds=t=>ka.has(t.phase)?t:t.children.runningCount>0?t.phase==="running_children"?t:{...t,phase:"running_children"}:t.stream.activeToolCalls.length>0?t.phase==="running_tools"?t:{...t,phase:"running_tools"}:t.stream.hasTokens?t.phase==="streaming"?t:{...t,phase:"streaming"}:t.phase==="running"?t:{...t,phase:"running"},Dt=(t,e,n)=>({...t,[e]:n}),uC=(t,e)=>{if(!(e in t))return t;const n={...t};return delete n[e],n},rp=(t,e,n)=>{const r=t.timestamps.firstTokenAt??n(),s={...t,confidence:"live",stream:{...t.stream,hasTokens:!0,tokenCount:t.stream.tokenCount+1},timestamps:{...t.timestamps,firstTokenAt:r},activeReasons:_t(t.activeReasons,e)};return Ds(s)},dC=(t,e)=>{if(t.stream.hasTokens&&t.timestamps.firstTokenAt!==null)return t;const n=t.timestamps.firstTokenAt??e(),r={...t,confidence:"live",stream:{...t.stream,hasTokens:!0,tokenCount:Math.max(1,t.stream.tokenCount)},timestamps:{...t.timestamps,firstTokenAt:n},activeReasons:_t(t.activeReasons,"sse:token")};return Ds(r)},fC=(t,e,n,r)=>{const o=t.stream.activeToolCalls.findIndex(a=>a.toolCallId===e)>=0?t.stream.activeToolCalls:[...t.stream.activeToolCalls,{toolCallId:e,toolName:n,startedAt:r}],i={...t,confidence:"live",stream:{...t.stream,activeToolCalls:o},activeReasons:_t(t.activeReasons,"sse:tool_start")};return Ds(i)},hC=(t,e,n)=>{const r=t.stream.activeToolCalls.findIndex(d=>d.toolCallId===e);if(r<0)return t;const s=t.stream.activeToolCalls[r],o=s.preview??"",i=oC(o+n),a={...s,preview:i},c=[...t.stream.activeToolCalls];return c[r]=a,{...t,stream:{...t.stream,activeToolCalls:c}}},pC=(t,e,n)=>{const r=t.stream.activeToolCalls.filter(o=>o.toolCallId!==e);if(r.length===t.stream.activeToolCalls.length)return t;const s={...t,stream:{...t.stream,activeToolCalls:r},activeReasons:_t(t.activeReasons,n)};return s.timestamps.terminalAt&&s.children.runningCount===0&&s.stream.activeToolCalls.length===0&&!ka.has(s.phase)?{...s,phase:"settling",timestamps:{...s.timestamps,settlingStartedAt:s.timestamps.settlingStartedAt??s.timestamps.terminalAt}}:Ds(s)},db=(t,e,n)=>{const r=t.children.byId[e],s=r!==void 0&&(r.status===void 0||r.status==="running"),o={...r,...n,status:n.status??(r==null?void 0:r.status)??"running"},a=(o.status===void 0||o.status==="running"?1:0)-(s?1:0),c={...t,confidence:"live",children:{byId:{...t.children.byId,[e]:o},runningCount:Math.max(0,t.children.runningCount+a)},activeReasons:_t(t.activeReasons,"sse:sub_agent_started")};return Ds(c)},ad=(t,e,n)=>{const r=t.children.byId[e],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 t;const i=o.status===void 0||o.status==="running";let a=0;r!==void 0&&(a=(i?1:0)-(s?1:0));const c=Math.max(0,t.children.runningCount+a),d={...t,children:{byId:{...t.children.byId,[e]:o},runningCount:c}};return d.timestamps.terminalAt&&d.children.runningCount===0&&d.stream.activeToolCalls.length===0&&!ka.has(d.phase)?{...d,phase:"settling",timestamps:{...d.timestamps,settlingStartedAt:d.timestamps.settlingStartedAt??d.timestamps.terminalAt},activeReasons:_t(d.activeReasons,"sse:sub_agent_completed")}:Ds(d)},mC=(t,e)=>{if(!(e in t.children.byId))return t;const n=t.children.byId[e],r=n.status===void 0||n.status==="running",s={...t.children.byId};delete s[e];const o={...t,children:{byId:s,runningCount:Math.max(0,t.children.runningCount-(r?1:0))}};return o.timestamps.terminalAt&&o.children.runningCount===0&&o.stream.activeToolCalls.length===0&&!ka.has(o.phase)?{...o,phase:"settling",timestamps:{...o.timestamps,settlingStartedAt:o.timestamps.settlingStartedAt??o.timestamps.terminalAt}}:Ds(o)},sp=(t,e,n)=>{switch(e.type){case"token":return rp(t,"sse:token",n);case"reasoning_token":return rp(t,"sse:token",n);case"tool_start":{const r=e.tool_call_id??"",s=e.tool_name??"";return r?fC(t,r,s,n()):t}case"tool_token":{const r=e.tool_call_id??"";return r?hC(t,r,e.content??""):t}case"tool_complete":case"tool_error":{const r=e.tool_call_id??"";return r?pC(t,r,"sse:tool_complete"):t}case"tool_lifecycle":return t;case"sub_agent_started":{const r=e.child_session_id??"";return r?db(t,r,{title:e.title,status:"running"}):t}case"sub_agent_event":case"sub_agent_heartbeat":{const r=e.child_session_id??"";if(!r)return t;const s={lastEventAt:e.timestamp??n()};return e.type==="sub_agent_heartbeat"&&(s.lastHeartbeatAt=e.timestamp??n()),ad(t,r,s)}case"sub_agent_completed":{const r=e.child_session_id??"";if(!r)return t;const s=typeof e.status=="string"?e.status:"completed";return ad(t,r,{status:s,error:e.error})}case"need_clarification":{const r={question:e.question??"",options:e.options??[],allowCustom:e.allow_custom??!1,toolCallId:e.tool_call_id??null};return ub(t,r,n())}case"execution_started":{const r=e.run_id;return r?t.phase!=="starting"&&t.phase!=="settling"?{...t,backendRunId:r,confidence:"live",activeReasons:_t(t.activeReasons,"sse:execution_started")}:{...t,phase:"running",confidence:"live",backendRunId:r,timestamps:{...t.timestamps,confirmedAt:n()},activeReasons:_t(t.activeReasons,"sse:execution_started")}:t}case"complete":{if(ka.has(t.phase))return t;const r=n();return{...t,phase:"settling",timestamps:{...t.timestamps,terminalAt:r,settlingStartedAt:t.timestamps.settlingStartedAt??r},activeReasons:_t(t.activeReasons,"sse:complete")}}case"cancelled":{const r=n();return{...t,phase:"cancelled",confidence:"terminal",timestamps:{...t.timestamps,terminalAt:r,settledAt:r},error:e.message?{message:e.message,source:"user_cancel",occurredAt:r}:null,activeReasons:_t(t.activeReasons,"sse:error")}}case"error":{const r=n();return{...t,phase:"error",confidence:"terminal",timestamps:{...t.timestamps,terminalAt:r},error:{message:e.message??e.error??"Unknown error",source:"sse",occurredAt:r},activeReasons:_t(t.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 t;default:return t}},gC=t=>t==="completed"||t==="error"||t==="cancelled",yC=(t,e,n)=>{const r=e.last_run_status,s=gC(r)?r:null,o=n(),i=e.has_pending_question===void 0?null:e.has_pending_question,a=e.running_child_count===void 0?null:e.running_child_count,c={...t,backend:{...t.backend,isRunning:e.is_running,lastRunStatus:s,lastRunError:e.last_run_error??null,syncedAt:o,hasPendingQuestion:i,runningChildCount:a},backendRunId:t.backendRunId};if(e.is_running)return t.phase==="idle"||t.phase==="completed"||t.phase==="error"||t.phase==="cancelled"?{...c,phase:"running",confidence:"summary",activeReasons:_t(c.activeReasons,"summary:is_running")}:t.phase==="starting"?{...c,phase:"running",confidence:"summary",timestamps:{...c.timestamps,confirmedAt:o},activeReasons:_t(c.activeReasons,"summary:is_running")}:c;if(Kr("summary.notRunning.evaluate",{sessionId:e.id,phase:t.phase,generation:t.generation,backendRunId:t.backendRunId,summaryIsRunning:e.is_running,optimisticAt:t.timestamps.optimisticAt}),new Set(["starting","running","streaming","running_tools","running_children","settling"]).has(t.phase)){if(s==="completed")return Kr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"completed",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:_t(c.activeReasons,"summary:terminal")};if(s==="error")return Kr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"error",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},error:{message:e.last_run_error??"Backend reported error",source:"summary",occurredAt:o},activeReasons:_t(c.activeReasons,"summary:terminal")};if(s==="cancelled")return Kr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"cancelled",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:_t(c.activeReasons,"summary:terminal")};if(t.timestamps.optimisticAt){const f=Date.parse(o)-Date.parse(t.timestamps.optimisticAt);if(Number.isFinite(f)&&f<tC)return Kr("summary.notRunning.keepOptimistic",{sessionId:e.id,phase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),c}return Kr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"idle",confidence:"summary",activeReasons:_t(c.activeReasons,"summary:terminal")}}return c},bC=()=>new Date().toISOString(),Kl=(t,e,n=bC)=>{switch(e.type){case"ensureSession":return e.sessionId in t?t:Dt(t,e.sessionId,cb(e.sessionId));case"markOptimisticStart":{const r=Gt(t,e.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:_t(r.activeReasons,"optimistic:send")};return Dt(t,e.sessionId,o)}case"markRespondStart":{const r=Gt(t,e.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:_t(r.activeReasons,"optimistic:respond")};return Dt(t,e.sessionId,o)}case"markRetryStart":{const r=Gt(t,e.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:_t(r.activeReasons,"optimistic:retry")};return Dt(t,e.sessionId,o)}case"markForceSubscribe":{const r=Gt(t,e.sessionId);if(yf(r.phase))return t;const s={...r,phase:"running",confidence:"optimistic",generation:r.generation+1,error:null,activeReasons:_t(r.activeReasons,"optimistic:openSession.forceSubscribe")};return Dt(t,e.sessionId,s)}case"markCancel":{const r=Gt(t,e.sessionId),s=n(),o={...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,settledAt:s},activeReasons:_t(r.activeReasons,"user:cancel")};return Dt(t,e.sessionId,o)}case"markSettleTimeout":{const r=Gt(t,e.sessionId);if(r.phase!=="starting"&&r.phase!=="settling")return t;const s={...r,phase:"idle",confidence:"optimistic",timestamps:{...r.timestamps,settledAt:n()},activeReasons:_t(r.activeReasons,"settle:timeout")};return Dt(t,e.sessionId,s)}case"markStreamStarted":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation)return t;const s=dC(r,n);return s===r?t:Dt(t,e.sessionId,s)}case"applyAgentEvent":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation)return Kr("drop.applyAgentEvent.generationMismatch",{sessionId:e.sessionId,actionGeneration:e.generation,entryGeneration:r.generation,eventType:e.event.type,phase:r.phase,backendRunId:r.backendRunId??null}),t;const s=sp(r,e.event,n);return s===r?t:Dt(t,e.sessionId,s)}case"applyExecutionStarted":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation)return Kr("drop.applyExecutionStarted.generationMismatch",{sessionId:e.sessionId,actionGeneration:e.generation,entryGeneration:r.generation,runId:e.runId,phase:r.phase,backendRunId:r.backendRunId??null}),t;if(r.phase!=="starting"&&r.phase!=="settling")return Dt(t,e.sessionId,{...r,backendRunId:e.runId,confidence:"live",activeReasons:_t(r.activeReasons,"sse:execution_started")});const s={...r,phase:"running",confidence:"live",backendRunId:e.runId,timestamps:{...r.timestamps,confirmedAt:n()},activeReasons:_t(r.activeReasons,"sse:execution_started")};return Dt(t,e.sessionId,s)}case"applySessionSummary":{const r=Gt(t,e.sessionId),s=yC(r,e.summary,n);return s===r?t:Dt(t,e.sessionId,s)}case"applyOneShotTerminal":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation||r.phase!=="idle"&&r.phase!=="starting")return t;const s=n();return e.payload.status==="completed"?Dt(t,e.sessionId,{...r,phase:"completed",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},activeReasons:_t(r.activeReasons,"sse:terminal_one_shot")}):e.payload.status==="cancelled"?Dt(t,e.sessionId,{...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:e.payload.message?{message:e.payload.message,source:"user_cancel",occurredAt:s}:null,activeReasons:_t(r.activeReasons,"sse:terminal_one_shot")}):Dt(t,e.sessionId,{...r,phase:"error",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:{message:e.payload.message??"Unknown error",source:"sse",occurredAt:s},activeReasons:_t(r.activeReasons,"sse:terminal_one_shot")})}case"beginSettle":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation||r.phase!=="running"&&r.phase!=="streaming"&&r.phase!=="running_tools"&&r.phase!=="running_children")return t;const s=n();return Dt(t,e.sessionId,{...r,phase:"settling",timestamps:{...r.timestamps,settlingStartedAt:s,terminalAt:r.timestamps.terminalAt??s}})}case"applyChildProgress":{const r=Gt(t,e.sessionId),o=!(e.childId in r.children.byId)?db(r,e.childId,e.patch):ad(r,e.childId,e.patch);return o===r?t:Dt(t,e.sessionId,o)}case"clearChildProgress":{const r=Gt(t,e.sessionId),s=mC(r,e.childId);return s===r?t:Dt(t,e.sessionId,s)}case"setPendingQuestion":{const r=Gt(t,e.sessionId),s=ub(r,e.payload,n());return s===r?t:Dt(t,e.sessionId,s)}case"clearPendingQuestion":{const r=Gt(t,e.sessionId);if(r.interaction.pendingQuestion===null&&r.interaction.respondMode===null)return t;const s={...r,interaction:{...r.interaction,pendingQuestion:null,respondMode:null}};return Dt(t,e.sessionId,s)}case"setPendingChildApproval":{const r=Gt(t,e.sessionId),s=cC(r,e.payload,n());return s===r?t:Dt(t,e.sessionId,s)}case"clearPendingChildApproval":{const r=Gt(t,e.sessionId);if(r.interaction.pendingChildApproval===null)return t;const s={...r,interaction:{...r.interaction,pendingChildApproval:null}};return Dt(t,e.sessionId,s)}case"resetSession":return uC(t,e.sessionId);case"applyRunningSnapshot":{let r=t;for(const s of e.sessions){const o=Gt(r,s.sessionId),i=o.generation+1;let a={...o,generation:i,backendRunId:s.runId,phase:"running",confidence:"live",timestamps:{...o.timestamps,confirmedAt:n()},activeReasons:_t(o.activeReasons,"sse:execution_started")};for(const c of s.criticalEvents)c.type!=="execution_started"&&(a=sp(a,c,n));r=Dt(r,s.sessionId,a)}return r}default:return t}},vC=()=>new Date().toISOString(),Wt=(t,e)=>{t(n=>{const r=Kl(n.executionBySession,e,vC);return r===n.executionBySession?n:{executionBySession:r}})},SC=(t,e)=>({executionBySession:{},ensureSession:n=>Wt(t,{type:"ensureSession",sessionId:n}),markOptimisticStart:n=>{const r=e().executionBySession[n],s=r?r.generation+1:1;return Wt(t,{type:"markOptimisticStart",sessionId:n}),s},markRespondStart:(n,r)=>{const s=e().executionBySession[n],o=s?s.generation+1:1;return Wt(t,{type:"markRespondStart",sessionId:n}),o},markRetryStart:n=>{const r=e().executionBySession[n],s=r?r.generation+1:1;return Wt(t,{type:"markRetryStart",sessionId:n}),s},markForceSubscribe:n=>Wt(t,{type:"markForceSubscribe",sessionId:n}),markCancel:n=>Wt(t,{type:"markCancel",sessionId:n}),markSettleTimeout:n=>Wt(t,{type:"markSettleTimeout",sessionId:n}),markStreamStarted:(n,r)=>Wt(t,{type:"markStreamStarted",sessionId:n,generation:r}),applyAgentEvent:(n,r,s)=>Wt(t,{type:"applyAgentEvent",sessionId:n,event:r,generation:s}),applyExecutionStarted:(n,r,s)=>Wt(t,{type:"applyExecutionStarted",sessionId:n,runId:r,generation:s}),applySessionSummary:(n,r)=>Wt(t,{type:"applySessionSummary",sessionId:n,summary:r}),applyOneShotTerminal:(n,r,s)=>Wt(t,{type:"applyOneShotTerminal",sessionId:n,generation:r,payload:s}),beginSettle:(n,r)=>Wt(t,{type:"beginSettle",sessionId:n,generation:r}),applyChildProgress:(n,r,s)=>Wt(t,{type:"applyChildProgress",sessionId:n,childId:r,patch:s}),clearChildProgress:(n,r)=>Wt(t,{type:"clearChildProgress",sessionId:n,childId:r}),setPendingQuestion:(n,r)=>Wt(t,{type:"setPendingQuestion",sessionId:n,payload:r}),clearPendingQuestion:n=>Wt(t,{type:"clearPendingQuestion",sessionId:n}),setPendingChildApproval:(n,r)=>Wt(t,{type:"setPendingChildApproval",sessionId:n,payload:r}),clearPendingChildApproval:n=>Wt(t,{type:"clearPendingChildApproval",sessionId:n}),resetSession:n=>Wt(t,{type:"resetSession",sessionId:n}),applyRunningSnapshot:n=>{const r=e(),s=n.map(o=>{const i=[];for(const a of o.criticalEvents){if(lb(a)){id(a,r);continue}i.push(a)}return{...o,criticalEvents:i}});Wt(t,{type:"applyRunningSnapshot",sessions:s})}}),wC="medium",xC=t=>t.sessionEffort??t.inputEffort??t.persistedEffort??t.providerDefault??wC,iu=t=>t==null?void 0:t.reasoning_effort,_C=(t,e,n)=>{if(!(e!=null&&e.trim()))return;const r=e.trim(),s=t.providers,o=n==null?void 0:n.find(c=>c.id===r),i=iu(o==null?void 0:o.config);if(i)return i;const a=iu(s[r]);if(a)return a;if(o)return iu(s[o.type])},fb=(t,e,n,r)=>{var o,i,a,c,d;const s=((o=e==null?void 0:e.provider)==null?void 0:o.trim())||((c=(a=(i=t.defaults)==null?void 0:i.chat)==null?void 0:a.provider)==null?void 0:c.trim())||(n==null?void 0:n.trim())||((d=t.provider)==null?void 0:d.trim());return _C(t,s,r)},CC=()=>({id:"general_assistant",name:"Bodhi",description:Et.t("chat.prompt.defaultDescription"),content:`You are Bodhi, a highly capable AI assistant.
7
+ `);const C=M.state[a];if(C==null)return;JSON.stringify(s.getState())!==JSON.stringify(C)&&m(C);return}s.dispatchFromDevtools&&typeof s.dispatch=="function"&&s.dispatch(M)});case"DISPATCH":switch(b.payload.type){case"RESET":return m(w),a===void 0?f==null?void 0:f.init(s.getState()):f==null?void 0:f.init(nl(c.name));case"COMMIT":if(a===void 0){f==null||f.init(s.getState());return}return f==null?void 0:f.init(nl(c.name));case"ROLLBACK":return ou(b.state,M=>{if(a===void 0){m(M),f==null||f.init(s.getState());return}m(M[a]),f==null||f.init(nl(c.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return ou(b.state,M=>{if(a===void 0){m(M);return}JSON.stringify(s.getState())!==JSON.stringify(M[a])&&m(M[a])});case"IMPORT_STATE":{const{nextLiftedState:M}=b.payload,C=(_=M.computedStates.slice(-1)[0])==null?void 0:_.state;if(!C)return;m(a===void 0?C:C[a]),f==null||f.send(null,M);return}case"PAUSE_RECORDING":return y=!y}return}}),w},G0=V0,ou=(t,e)=>{let n;try{n=JSON.parse(t)}catch(r){console.error("[zustand devtools middleware] Could not parse the received json",r)}n!==void 0&&e(n)},J0=t=>(e,n,r)=>{const s=r.subscribe;return r.subscribe=(i,a,c)=>{let d=i;if(a){const f=(c==null?void 0:c.equalityFn)||Object.is;let p=i(r.getState());d=y=>{const m=i(y);if(!f(p,m)){const w=p;a(p=m,w)}},c!=null&&c.fireImmediately&&a(p,p)}return s(d)},t(e,n,r)},Q0=J0;function Z0(t,e){let n;try{n=t()}catch{return}return{getItem:s=>{var o;const i=c=>c===null?null:JSON.parse(c,void 0),a=(o=n.getItem(s))!=null?o:null;return a instanceof Promise?a.then(i):i(a)},setItem:(s,o)=>n.setItem(s,JSON.stringify(o,void 0)),removeItem:s=>n.removeItem(s)}}const od=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return od(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return od(r)(n)}}}},eC=(t,e)=>(n,r,s)=>{let o={storage:Z0(()=>localStorage),partialize:b=>b,version:0,merge:(b,_)=>({..._,...b}),...e},i=!1;const a=new Set,c=new Set;let d=o.storage;if(!d)return t((...b)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),n(...b)},r,s);const f=()=>{const b=o.partialize({...r()});return d.setItem(o.name,{state:b,version:o.version})},p=s.setState;s.setState=(b,_)=>{p(b,_),f()};const y=t((...b)=>{n(...b),f()},r,s);s.getInitialState=()=>y;let m;const w=()=>{var b,_;if(!d)return;i=!1,a.forEach(C=>{var T;return C((T=r())!=null?T:y)});const M=((_=o.onRehydrateStorage)==null?void 0:_.call(o,(b=r())!=null?b:y))||void 0;return od(d.getItem.bind(d))(o.name).then(C=>{if(C)if(typeof C.version=="number"&&C.version!==o.version){if(o.migrate){const T=o.migrate(C.state,C.version);return T instanceof Promise?T.then(k=>[!0,k]):[!0,T]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,C.state];return[!1,void 0]}).then(C=>{var T;const[k,P]=C;if(m=o.merge(P,(T=r())!=null?T:y),n(m,!0),k)return f()}).then(()=>{M==null||M(m,void 0),m=r(),i=!0,c.forEach(C=>C(m))}).catch(C=>{M==null||M(void 0,C)})};return s.persist={setOptions:b=>{o={...o,...b},b.storage&&(d=b.storage)},clearStorage:()=>{d==null||d.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>w(),hasHydrated:()=>i,onHydrate:b=>(a.add(b),()=>{a.delete(b)}),onFinishHydration:b=>(c.add(b),()=>{c.delete(b)})},o.skipHydration||w(),m||y},tC=eC;class nC{async getProviderConfig(){return ze.get("/bamboo/settings/provider")}async saveProviderConfig(e){return ze.post("/bamboo/settings/provider",e)}async reloadConfig(){return ze.post("/bamboo/settings/reload")}async getPermissionAskRules(){return(await ze.get("/bamboo/permission/ask-rules")).rules}async updatePermissionAskRules(e){return(await ze.put("/bamboo/permission/ask-rules",{rules:e})).rules}async getCopilotAuthStatus(){return ze.post("/bamboo/copilot/auth/status")}async startCopilotAuth(){return ze.post("/bamboo/copilot/auth/start")}async completeCopilotAuth(e){return ze.post("/bamboo/copilot/auth/complete",e)}async authenticateCopilot(){return ze.post("/bamboo/copilot/authenticate")}async logoutCopilot(){return ze.post("/bamboo/copilot/logout")}async fetchProviderModels(e){return(await ze.post("/bamboo/settings/provider/models",{provider:e})).models}async getProviderCatalog(){return ze.get("/bamboo/provider-catalog")}async fetchCatalogModels(e){const n=e?{provider:e}:{};return ze.post("/bamboo/provider-catalog/fetch-models",n)}async getProviderInstances(){return ze.get("/bamboo/settings/provider-instances")}async createProviderInstance(e){return ze.post("/bamboo/settings/provider-instances",e)}async updateProviderInstance(e,n){return ze.put(`/bamboo/settings/provider-instances/${encodeURIComponent(e)}`,n)}async deleteProviderInstance(e){return ze.delete(`/bamboo/settings/provider-instances/${encodeURIComponent(e)}`)}async setDefaultProviderInstance(e){return ze.post("/bamboo/settings/provider-instances/default",{default_provider_instance_id:e})}async getEnvVars(){return ze.get("/bamboo/env-vars")}async upsertEnvVar(e){return ze.post("/bamboo/env-vars",e)}async deleteEnvVar(e){return ze.delete(`/bamboo/env-vars/${encodeURIComponent(e)}`)}async replaceEnvVars(e){return ze.post("/bamboo/env-vars/replace",{entries:e})}async listNodes(){return ze.get("/bamboo/settings/nodes")}async createNode(e){return ze.post("/bamboo/settings/nodes",e)}async updateNode(e,n){return ze.put(`/bamboo/settings/nodes/${encodeURIComponent(e)}`,n)}async deleteNode(e){await ze.delete(`/bamboo/settings/nodes/${encodeURIComponent(e)}`)}async createCluster(e){return ze.post("/bamboo/settings/clusters",e)}async updateCluster(e,n){return ze.put(`/bamboo/settings/clusters/${encodeURIComponent(e)}`,n)}async deleteCluster(e){return ze.delete(`/bamboo/settings/clusters/${encodeURIComponent(e)}`)}async nodeAction(e,n){return ze.post(`/bamboo/settings/nodes/${encodeURIComponent(e)}/${n}`,{})}async nodeStatus(e){return ze.get(`/bamboo/settings/nodes/${encodeURIComponent(e)}/status`)}async nodeLogs(e,n=200){return ze.get(`/bamboo/settings/nodes/${encodeURIComponent(e)}/logs?lines=${n}`)}}const Ui=new nC,rC=(t,e,n)=>{var o;if(!(t!=null&&t.models)||!e.trim())return[];const r=t.models.filter(i=>i.reference.provider===e);if(r.length>0)return r;const s=(o=n.find(i=>i.id===e))==null?void 0:o.type;return s?t.models.filter(i=>i.reference.provider===s):[]},yt=Ir((t,e)=>({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;t({isLoading:!0,error:null});try{const s=await Ui.getProviderConfig();if(!((r=(n=s.defaults)==null?void 0:n.chat)!=null&&r.model)&&s.provider&&s.providers){const o=s.provider,i=s.providers[o],a=i==null?void 0:i.model;a&&(s.defaults={chat:{provider:o,model:a}})}t({providerConfig:s,currentProvider:s.provider,isLoading:!1})}catch(s){console.error("Failed to load provider config:",s),t({error:s instanceof Error?s.message:"Failed to load provider config",isLoading:!1})}},loadProviderInstances:async()=>{var n,r,s,o;t({isLoading:!0,error:null});try{const i=await Ui.getProviderInstances(),a=i.instances??[],c=i.default_provider_instance_id??null,d={};for(const p of a)d[p.id]=p.config;const f={provider:c??"",defaults:i.defaults,providers:d,features:i.features};if(!((r=(n=f.defaults)==null?void 0:n.chat)!=null&&r.model)&&c){const p=d[c],y=p==null?void 0:p.model;y&&(f.defaults={chat:{provider:c,model:y}})}t({providerInstances:a,defaultProviderInstanceId:c,currentProvider:c??((o=(s=i.defaults)==null?void 0:s.chat)==null?void 0:o.provider)??"",providerConfig:f,isInstancesLoaded:!0,isLoading:!1})}catch(i){console.error("Failed to load provider instances:",i),t({error:i instanceof Error?i.message:"Failed to load provider instances",isLoading:!1,isInstancesLoaded:!1})}},setCurrentProvider:n=>{t({currentProvider:n})},updateProviderConfig:n=>{t(r=>({providerConfig:{...r.providerConfig,...n}}))},getActiveModel:()=>{var s,o,i;return((i=(o=(s=e().providerConfig.defaults)==null?void 0:s.chat)==null?void 0:o.model)==null?void 0:i.trim())||void 0},getFastModel:()=>{var s,o,i;const n=e();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},getVisionModel:()=>{var s,o,i;const n=e();return((i=(o=(s=n.providerConfig.defaults)==null?void 0:s.vision)==null?void 0:o.model)==null?void 0:i.trim())||n.getActiveModel()},isProviderModelRefEnabled:()=>!0,setSelectedModelRef:n=>{t({selectedModelRef:n})},loadCatalog:async()=>{try{const n=await Ui.getProviderCatalog();t({catalog:n})}catch{}},fetchCatalogModels:async n=>{t({isCatalogFetching:!0});try{await Ui.fetchCatalogModels(n),await e().loadCatalog()}catch{}finally{t({isCatalogFetching:!1})}},getFastModelRef:()=>{var o,i,a,c;const n=e(),r=(o=n.providerConfig.defaults)==null?void 0:o.fast;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(a=n.providerConfig.defaults)==null?void 0:a.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getVisionModelRef:()=>{var o,i,a,c;const n=e(),r=(o=n.providerConfig.defaults)==null?void 0:o.vision;if((i=r==null?void 0:r.model)!=null&&i.trim())return r;const s=(a=n.providerConfig.defaults)==null?void 0:a.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getModelsForProvider:n=>{const{catalog:r,providerInstances:s}=e();return rC(r,n,s)},getProviderInstance:n=>e().providerInstances.find(r=>r.id===n),getProviderDisplayLabel:n=>{const r=e().providerInstances.find(s=>s.id===n);return r?r.label||r.type:n},getProviderType:n=>{const r=e().providerInstances.find(s=>s.id===n);return(r==null?void 0:r.type)??n}})),fF=Object.freeze(Object.defineProperty({__proto__:null,useProviderStore:yt},Symbol.toStringTag,{value:"Module"}));function db(t){return t.type==="session_title_updated"||t.type==="session_pinned_updated"}function id(t,e){switch(t.type){case"session_title_updated":{typeof t.session_id=="string"&&typeof t.title=="string"&&typeof t.title_version=="number"&&e.applyServerTitle(t.session_id,t.title,t.title_version);break}case"session_pinned_updated":{typeof t.session_id=="string"&&typeof t.pinned=="boolean"&&typeof t.updated_at=="string"&&e.applyServerPinned(t.session_id,t.pinned,t.updated_at);break}}}function sC(t,e){const n=e.findIndex(r=>r.id===t.session_id);if(!(n<0))switch(t.type){case"session_title_updated":{if(typeof t.title!="string"||typeof t.title_version!="number")return;const r=t.title_version,s=e[n].titleVersion??0;if(r<=s)return;e[n]={...e[n],title:t.title,titleVersion:r};return}case"session_pinned_updated":{if(typeof t.pinned!="boolean"||typeof t.updated_at!="string")return;const r=new Date(t.updated_at).getTime(),s=new Date(e[n].updatedAt??0).getTime();if(r<s||e[n].pinned===t.pinned)return;e[n]={...e[n],pinned:t.pinned,updatedAt:t.updated_at};return}}}const oC=5e3,rp=80,iC=16,Xr=(t,e)=>{},yf=t=>t!==void 0&&t!=="idle"&&t!=="completed"&&t!=="error"&&t!=="cancelled",aC=t=>t==="starting"||t==="running"||t==="streaming"||t==="running_tools"||t==="running_children"||t==="settling",lC=t=>t==="starting"||t==="running"||t==="streaming"||t==="running_tools"||t==="running_children",fb=t=>({sessionId:t,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,pendingChildApproval:null},children:{byId:{},runningCount:0},timestamps:{optimisticAt:null,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},error:null}),Gt=(t,e)=>t[e]??fb(e),_t=(t,e)=>[...t.length>=iC?t.slice(-15):t,e],cC=t=>t.length<=rp?t:t.slice(t.length-rp),uC=(t,e)=>t.length===e.length&&t.every((n,r)=>n===e[r]),dC=(t,e)=>t?t.question===e.question&&t.allowCustom===e.allowCustom&&t.toolCallId===e.toolCallId&&uC(t.options,e.options):!1,hb=(t,e,n)=>{const r=dC(t.interaction.pendingQuestion,e)?t.interaction.pendingQuestion:{...e,receivedAt:n};return t.phase==="waiting_user_answer"&&t.confidence==="live"&&r===t.interaction.pendingQuestion?t:{...t,phase:"waiting_user_answer",confidence:"live",interaction:{...t.interaction,pendingQuestion:r,respondMode:null},activeReasons:_t(t.activeReasons,"sse:need_clarification")}},fC=(t,e)=>t?t.childSessionId===e.childSessionId&&t.requestId===e.requestId&&t.toolName===e.toolName&&t.permission===e.permission&&t.resource===e.resource:!1,hC=(t,e,n)=>fC(t.interaction.pendingChildApproval,e)?t:{...t,interaction:{...t.interaction,pendingChildApproval:{...e,receivedAt:n}}},ka=new Set(["idle","completed","error","cancelled","settling","waiting_user_answer"]),Ds=t=>ka.has(t.phase)?t:t.children.runningCount>0?t.phase==="running_children"?t:{...t,phase:"running_children"}:t.stream.activeToolCalls.length>0?t.phase==="running_tools"?t:{...t,phase:"running_tools"}:t.stream.hasTokens?t.phase==="streaming"?t:{...t,phase:"streaming"}:t.phase==="running"?t:{...t,phase:"running"},Ft=(t,e,n)=>({...t,[e]:n}),pC=(t,e)=>{if(!(e in t))return t;const n={...t};return delete n[e],n},sp=(t,e,n)=>{const r=t.timestamps.firstTokenAt??n(),s={...t,confidence:"live",stream:{...t.stream,hasTokens:!0,tokenCount:t.stream.tokenCount+1},timestamps:{...t.timestamps,firstTokenAt:r},activeReasons:_t(t.activeReasons,e)};return Ds(s)},mC=(t,e)=>{if(t.stream.hasTokens&&t.timestamps.firstTokenAt!==null)return t;const n=t.timestamps.firstTokenAt??e(),r={...t,confidence:"live",stream:{...t.stream,hasTokens:!0,tokenCount:Math.max(1,t.stream.tokenCount)},timestamps:{...t.timestamps,firstTokenAt:n},activeReasons:_t(t.activeReasons,"sse:token")};return Ds(r)},gC=(t,e,n,r)=>{const o=t.stream.activeToolCalls.findIndex(a=>a.toolCallId===e)>=0?t.stream.activeToolCalls:[...t.stream.activeToolCalls,{toolCallId:e,toolName:n,startedAt:r}],i={...t,confidence:"live",stream:{...t.stream,activeToolCalls:o},activeReasons:_t(t.activeReasons,"sse:tool_start")};return Ds(i)},yC=(t,e,n)=>{const r=t.stream.activeToolCalls.findIndex(d=>d.toolCallId===e);if(r<0)return t;const s=t.stream.activeToolCalls[r],o=s.preview??"",i=cC(o+n),a={...s,preview:i},c=[...t.stream.activeToolCalls];return c[r]=a,{...t,stream:{...t.stream,activeToolCalls:c}}},bC=(t,e,n)=>{const r=t.stream.activeToolCalls.filter(o=>o.toolCallId!==e);if(r.length===t.stream.activeToolCalls.length)return t;const s={...t,stream:{...t.stream,activeToolCalls:r},activeReasons:_t(t.activeReasons,n)};return s.timestamps.terminalAt&&s.children.runningCount===0&&s.stream.activeToolCalls.length===0&&!ka.has(s.phase)?{...s,phase:"settling",timestamps:{...s.timestamps,settlingStartedAt:s.timestamps.settlingStartedAt??s.timestamps.terminalAt}}:Ds(s)},pb=(t,e,n)=>{const r=t.children.byId[e],s=r!==void 0&&(r.status===void 0||r.status==="running"),o={...r,...n,status:n.status??(r==null?void 0:r.status)??"running"},a=(o.status===void 0||o.status==="running"?1:0)-(s?1:0),c={...t,confidence:"live",children:{byId:{...t.children.byId,[e]:o},runningCount:Math.max(0,t.children.runningCount+a)},activeReasons:_t(t.activeReasons,"sse:sub_agent_started")};return Ds(c)},ad=(t,e,n)=>{const r=t.children.byId[e],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 t;const i=o.status===void 0||o.status==="running";let a=0;r!==void 0&&(a=(i?1:0)-(s?1:0));const c=Math.max(0,t.children.runningCount+a),d={...t,children:{byId:{...t.children.byId,[e]:o},runningCount:c}};return d.timestamps.terminalAt&&d.children.runningCount===0&&d.stream.activeToolCalls.length===0&&!ka.has(d.phase)?{...d,phase:"settling",timestamps:{...d.timestamps,settlingStartedAt:d.timestamps.settlingStartedAt??d.timestamps.terminalAt},activeReasons:_t(d.activeReasons,"sse:sub_agent_completed")}:Ds(d)},vC=(t,e)=>{if(!(e in t.children.byId))return t;const n=t.children.byId[e],r=n.status===void 0||n.status==="running",s={...t.children.byId};delete s[e];const o={...t,children:{byId:s,runningCount:Math.max(0,t.children.runningCount-(r?1:0))}};return o.timestamps.terminalAt&&o.children.runningCount===0&&o.stream.activeToolCalls.length===0&&!ka.has(o.phase)?{...o,phase:"settling",timestamps:{...o.timestamps,settlingStartedAt:o.timestamps.settlingStartedAt??o.timestamps.terminalAt}}:Ds(o)},op=(t,e,n)=>{switch(e.type){case"token":return sp(t,"sse:token",n);case"reasoning_token":return sp(t,"sse:token",n);case"tool_start":{const r=e.tool_call_id??"",s=e.tool_name??"";return r?gC(t,r,s,n()):t}case"tool_token":{const r=e.tool_call_id??"";return r?yC(t,r,e.content??""):t}case"tool_complete":case"tool_error":{const r=e.tool_call_id??"";return r?bC(t,r,"sse:tool_complete"):t}case"tool_lifecycle":return t;case"sub_agent_started":{const r=e.child_session_id??"";return r?pb(t,r,{title:e.title,status:"running"}):t}case"sub_agent_event":case"sub_agent_heartbeat":{const r=e.child_session_id??"";if(!r)return t;const s={lastEventAt:e.timestamp??n()};return e.type==="sub_agent_heartbeat"&&(s.lastHeartbeatAt=e.timestamp??n()),ad(t,r,s)}case"sub_agent_completed":{const r=e.child_session_id??"";if(!r)return t;const s=typeof e.status=="string"?e.status:"completed";return ad(t,r,{status:s,error:e.error})}case"need_clarification":{const r={question:e.question??"",options:e.options??[],allowCustom:e.allow_custom??!1,toolCallId:e.tool_call_id??null};return hb(t,r,n())}case"execution_started":{const r=e.run_id;return r?t.phase!=="starting"&&t.phase!=="settling"?{...t,backendRunId:r,confidence:"live",activeReasons:_t(t.activeReasons,"sse:execution_started")}:{...t,phase:"running",confidence:"live",backendRunId:r,timestamps:{...t.timestamps,confirmedAt:n()},activeReasons:_t(t.activeReasons,"sse:execution_started")}:t}case"complete":{if(ka.has(t.phase))return t;const r=n();return{...t,phase:"settling",timestamps:{...t.timestamps,terminalAt:r,settlingStartedAt:t.timestamps.settlingStartedAt??r},activeReasons:_t(t.activeReasons,"sse:complete")}}case"cancelled":{const r=n();return{...t,phase:"cancelled",confidence:"terminal",timestamps:{...t.timestamps,terminalAt:r,settledAt:r},error:e.message?{message:e.message,source:"user_cancel",occurredAt:r}:null,activeReasons:_t(t.activeReasons,"sse:error")}}case"error":{const r=n();return{...t,phase:"error",confidence:"terminal",timestamps:{...t.timestamps,terminalAt:r},error:{message:e.message??e.error??"Unknown error",source:"sse",occurredAt:r},activeReasons:_t(t.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 t;default:return t}},SC=t=>t==="completed"||t==="error"||t==="cancelled",wC=(t,e,n)=>{const r=e.last_run_status,s=SC(r)?r:null,o=n(),i=e.has_pending_question===void 0?null:e.has_pending_question,a=e.running_child_count===void 0?null:e.running_child_count,c={...t,backend:{...t.backend,isRunning:e.is_running,lastRunStatus:s,lastRunError:e.last_run_error??null,syncedAt:o,hasPendingQuestion:i,runningChildCount:a},backendRunId:t.backendRunId};if(e.is_running)return t.phase==="idle"||t.phase==="completed"||t.phase==="error"||t.phase==="cancelled"?{...c,phase:"running",confidence:"summary",activeReasons:_t(c.activeReasons,"summary:is_running")}:t.phase==="starting"?{...c,phase:"running",confidence:"summary",timestamps:{...c.timestamps,confirmedAt:o},activeReasons:_t(c.activeReasons,"summary:is_running")}:c;if(Xr("summary.notRunning.evaluate",{sessionId:e.id,phase:t.phase,generation:t.generation,backendRunId:t.backendRunId,summaryIsRunning:e.is_running,optimisticAt:t.timestamps.optimisticAt}),new Set(["starting","running","streaming","running_tools","running_children","settling"]).has(t.phase)){if(s==="completed")return Xr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"completed",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:_t(c.activeReasons,"summary:terminal")};if(s==="error")return Xr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"error",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},error:{message:e.last_run_error??"Backend reported error",source:"summary",occurredAt:o},activeReasons:_t(c.activeReasons,"summary:terminal")};if(s==="cancelled")return Xr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"cancelled",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:_t(c.activeReasons,"summary:terminal")};if(t.timestamps.optimisticAt){const f=Date.parse(o)-Date.parse(t.timestamps.optimisticAt);if(Number.isFinite(f)&&f<oC)return Xr("summary.notRunning.keepOptimistic",{sessionId:e.id,phase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),c}return Xr("summary.notRunning.transition",{sessionId:e.id,fromPhase:t.phase,generation:t.generation,backendRunId:t.backendRunId}),{...c,phase:"idle",confidence:"summary",activeReasons:_t(c.activeReasons,"summary:terminal")}}return c},xC=()=>new Date().toISOString(),Kl=(t,e,n=xC)=>{switch(e.type){case"ensureSession":return e.sessionId in t?t:Ft(t,e.sessionId,fb(e.sessionId));case"markOptimisticStart":{const r=Gt(t,e.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:_t(r.activeReasons,"optimistic:send")};return Ft(t,e.sessionId,o)}case"markRespondStart":{const r=Gt(t,e.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:_t(r.activeReasons,"optimistic:respond")};return Ft(t,e.sessionId,o)}case"markRetryStart":{const r=Gt(t,e.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:_t(r.activeReasons,"optimistic:retry")};return Ft(t,e.sessionId,o)}case"markForceSubscribe":{const r=Gt(t,e.sessionId);if(yf(r.phase))return t;const s={...r,phase:"running",confidence:"optimistic",generation:r.generation+1,error:null,activeReasons:_t(r.activeReasons,"optimistic:openSession.forceSubscribe")};return Ft(t,e.sessionId,s)}case"markCancel":{const r=Gt(t,e.sessionId),s=n(),o={...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,settledAt:s},activeReasons:_t(r.activeReasons,"user:cancel")};return Ft(t,e.sessionId,o)}case"markSettleTimeout":{const r=Gt(t,e.sessionId);if(r.phase!=="starting"&&r.phase!=="settling")return t;const s={...r,phase:"idle",confidence:"optimistic",timestamps:{...r.timestamps,settledAt:n()},activeReasons:_t(r.activeReasons,"settle:timeout")};return Ft(t,e.sessionId,s)}case"markStreamStarted":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation)return t;const s=mC(r,n);return s===r?t:Ft(t,e.sessionId,s)}case"applyAgentEvent":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation)return Xr("drop.applyAgentEvent.generationMismatch",{sessionId:e.sessionId,actionGeneration:e.generation,entryGeneration:r.generation,eventType:e.event.type,phase:r.phase,backendRunId:r.backendRunId??null}),t;const s=op(r,e.event,n);return s===r?t:Ft(t,e.sessionId,s)}case"applyExecutionStarted":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation)return Xr("drop.applyExecutionStarted.generationMismatch",{sessionId:e.sessionId,actionGeneration:e.generation,entryGeneration:r.generation,runId:e.runId,phase:r.phase,backendRunId:r.backendRunId??null}),t;if(r.phase!=="starting"&&r.phase!=="settling")return Ft(t,e.sessionId,{...r,backendRunId:e.runId,confidence:"live",activeReasons:_t(r.activeReasons,"sse:execution_started")});const s={...r,phase:"running",confidence:"live",backendRunId:e.runId,timestamps:{...r.timestamps,confirmedAt:n()},activeReasons:_t(r.activeReasons,"sse:execution_started")};return Ft(t,e.sessionId,s)}case"applySessionSummary":{const r=Gt(t,e.sessionId),s=wC(r,e.summary,n);return s===r?t:Ft(t,e.sessionId,s)}case"applyOneShotTerminal":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation||r.phase!=="idle"&&r.phase!=="starting")return t;const s=n();return e.payload.status==="completed"?Ft(t,e.sessionId,{...r,phase:"completed",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},activeReasons:_t(r.activeReasons,"sse:terminal_one_shot")}):e.payload.status==="cancelled"?Ft(t,e.sessionId,{...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:e.payload.message?{message:e.payload.message,source:"user_cancel",occurredAt:s}:null,activeReasons:_t(r.activeReasons,"sse:terminal_one_shot")}):Ft(t,e.sessionId,{...r,phase:"error",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:{message:e.payload.message??"Unknown error",source:"sse",occurredAt:s},activeReasons:_t(r.activeReasons,"sse:terminal_one_shot")})}case"beginSettle":{const r=Gt(t,e.sessionId);if(e.generation!==r.generation||r.phase!=="running"&&r.phase!=="streaming"&&r.phase!=="running_tools"&&r.phase!=="running_children")return t;const s=n();return Ft(t,e.sessionId,{...r,phase:"settling",timestamps:{...r.timestamps,settlingStartedAt:s,terminalAt:r.timestamps.terminalAt??s}})}case"applyChildProgress":{const r=Gt(t,e.sessionId),o=!(e.childId in r.children.byId)?pb(r,e.childId,e.patch):ad(r,e.childId,e.patch);return o===r?t:Ft(t,e.sessionId,o)}case"clearChildProgress":{const r=Gt(t,e.sessionId),s=vC(r,e.childId);return s===r?t:Ft(t,e.sessionId,s)}case"setPendingQuestion":{const r=Gt(t,e.sessionId),s=hb(r,e.payload,n());return s===r?t:Ft(t,e.sessionId,s)}case"clearPendingQuestion":{const r=Gt(t,e.sessionId);if(r.interaction.pendingQuestion===null&&r.interaction.respondMode===null)return t;const s={...r,interaction:{...r.interaction,pendingQuestion:null,respondMode:null}};return Ft(t,e.sessionId,s)}case"setPendingChildApproval":{const r=Gt(t,e.sessionId),s=hC(r,e.payload,n());return s===r?t:Ft(t,e.sessionId,s)}case"clearPendingChildApproval":{const r=Gt(t,e.sessionId);if(r.interaction.pendingChildApproval===null)return t;const s={...r,interaction:{...r.interaction,pendingChildApproval:null}};return Ft(t,e.sessionId,s)}case"resetSession":return pC(t,e.sessionId);case"applyRunningSnapshot":{let r=t;for(const s of e.sessions){const o=Gt(r,s.sessionId),i=o.generation+1;let a={...o,generation:i,backendRunId:s.runId,phase:"running",confidence:"live",timestamps:{...o.timestamps,confirmedAt:n()},activeReasons:_t(o.activeReasons,"sse:execution_started")};for(const c of s.criticalEvents)c.type!=="execution_started"&&(a=op(a,c,n));r=Ft(r,s.sessionId,a)}return r}default:return t}},_C=()=>new Date().toISOString(),Wt=(t,e)=>{t(n=>{const r=Kl(n.executionBySession,e,_C);return r===n.executionBySession?n:{executionBySession:r}})},CC=(t,e)=>({executionBySession:{},ensureSession:n=>Wt(t,{type:"ensureSession",sessionId:n}),markOptimisticStart:n=>{const r=e().executionBySession[n],s=r?r.generation+1:1;return Wt(t,{type:"markOptimisticStart",sessionId:n}),s},markRespondStart:(n,r)=>{const s=e().executionBySession[n],o=s?s.generation+1:1;return Wt(t,{type:"markRespondStart",sessionId:n}),o},markRetryStart:n=>{const r=e().executionBySession[n],s=r?r.generation+1:1;return Wt(t,{type:"markRetryStart",sessionId:n}),s},markForceSubscribe:n=>Wt(t,{type:"markForceSubscribe",sessionId:n}),markCancel:n=>Wt(t,{type:"markCancel",sessionId:n}),markSettleTimeout:n=>Wt(t,{type:"markSettleTimeout",sessionId:n}),markStreamStarted:(n,r)=>Wt(t,{type:"markStreamStarted",sessionId:n,generation:r}),applyAgentEvent:(n,r,s)=>Wt(t,{type:"applyAgentEvent",sessionId:n,event:r,generation:s}),applyExecutionStarted:(n,r,s)=>Wt(t,{type:"applyExecutionStarted",sessionId:n,runId:r,generation:s}),applySessionSummary:(n,r)=>Wt(t,{type:"applySessionSummary",sessionId:n,summary:r}),applyOneShotTerminal:(n,r,s)=>Wt(t,{type:"applyOneShotTerminal",sessionId:n,generation:r,payload:s}),beginSettle:(n,r)=>Wt(t,{type:"beginSettle",sessionId:n,generation:r}),applyChildProgress:(n,r,s)=>Wt(t,{type:"applyChildProgress",sessionId:n,childId:r,patch:s}),clearChildProgress:(n,r)=>Wt(t,{type:"clearChildProgress",sessionId:n,childId:r}),setPendingQuestion:(n,r)=>Wt(t,{type:"setPendingQuestion",sessionId:n,payload:r}),clearPendingQuestion:n=>Wt(t,{type:"clearPendingQuestion",sessionId:n}),setPendingChildApproval:(n,r)=>Wt(t,{type:"setPendingChildApproval",sessionId:n,payload:r}),clearPendingChildApproval:n=>Wt(t,{type:"clearPendingChildApproval",sessionId:n}),resetSession:n=>Wt(t,{type:"resetSession",sessionId:n}),applyRunningSnapshot:n=>{const r=e(),s=n.map(o=>{const i=[];for(const a of o.criticalEvents){if(db(a)){id(a,r);continue}i.push(a)}return{...o,criticalEvents:i}});Wt(t,{type:"applyRunningSnapshot",sessions:s})}}),kC="medium",TC=t=>t.sessionEffort??t.inputEffort??t.persistedEffort??t.providerDefault??kC,iu=t=>t==null?void 0:t.reasoning_effort,EC=(t,e,n)=>{if(!(e!=null&&e.trim()))return;const r=e.trim(),s=t.providers,o=n==null?void 0:n.find(c=>c.id===r),i=iu(o==null?void 0:o.config);if(i)return i;const a=iu(s[r]);if(a)return a;if(o)return iu(s[o.type])},mb=(t,e,n,r)=>{var o,i,a,c,d;const s=((o=e==null?void 0:e.provider)==null?void 0:o.trim())||((c=(a=(i=t.defaults)==null?void 0:i.chat)==null?void 0:a.provider)==null?void 0:c.trim())||(n==null?void 0:n.trim())||((d=t.provider)==null?void 0:d.trim());return EC(t,s,r)},PC=()=>({id:"general_assistant",name:"Bodhi",description:Et.t("chat.prompt.defaultDescription"),content:`You are Bodhi, a highly capable AI assistant.
8
8
 
9
9
  You help users solve problems quickly and correctly. Be concise, practical, and proactive.
10
- If requirements are unclear, ask focused clarifying questions before proceeding.`,isDefault:!0}),Xl=()=>[CC()];function hb(t){if(!t)return;const e={systemTokens:t.system_tokens,summaryTokens:t.summary_tokens,windowTokens:t.window_tokens,totalTokens:t.total_tokens,budgetLimit:t.budget_limit};return typeof t.max_context_tokens=="number"&&t.max_context_tokens>0&&(e.maxContextTokens=t.max_context_tokens),typeof t.prompt_cached_tool_outputs=="number"&&(e.promptCachedToolOutputs=t.prompt_cached_tool_outputs),typeof t.prompt_cached_tool_tokens_saved=="number"&&(e.promptCachedToolTokensSaved=t.prompt_cached_tool_tokens_saved),typeof t.thinking_tokens=="number"&&(e.thinkingTokens=t.thinking_tokens),typeof t.cache_read_input_tokens=="number"&&(e.cacheReadInputTokens=t.cache_read_input_tokens),e}function pb(t){return typeof t.maxContextTokens=="number"&&t.maxContextTokens>0?t.maxContextTokens:t.budgetLimit>0?t.budgetLimit:0}function mb(t){const e=pb(t);return e===0?0:t.totalTokens/e*100}function kC(t){const e=mb(t);return e>=90?"error":e>=70?"warning":e>=50?"success":"default"}function Nr(t){return t.toLocaleString()}function au(t){const e=Math.abs(t),n=r=>r.replace(/\.0$/,"");if(e>=1e9){const r=e>=1e10?0:1;return`${n((t/1e9).toFixed(r))}B`}if(e>=1e6){const r=e>=1e7?0:1;return`${n((t/1e6).toFixed(r))}M`}if(e>=1e3){const r=e>=1e4?0:1;return`${n((t/1e3).toFixed(r))}K`}return`${t}`}const fo=Xl()[0],TC=(fo==null?void 0:fo.id)||"general_assistant";var _y;const gb=((_y=fo==null?void 0:fo.content)==null?void 0:_y.trim())||"",lu="tool",op=()=>{try{const t=globalThis.crypto;if(t!=null&&t.randomUUID)return t.randomUUID()}catch{}return`id_${Date.now()}_${Math.random().toString(16).slice(2)}`},EC=()=>{let t=Gr().trim().replace(/\/+$/,"");return t.endsWith("/v1")&&(t=t.slice(0,-3)),`${t}/api/v1`},yb=t=>{const e=t.trim();if(!e.startsWith("bamboo-attachment://"))return null;const n=e.slice(20),[r,s]=n.split("/",2);return!r||!s?null:{sessionId:r,attachmentId:s}},ip=t=>{const e=yb(t);return e?`${EC()}/sessions/${encodeURIComponent(e.sessionId)}/attachments/${encodeURIComponent(e.attachmentId)}`:t},ps=t=>{if(typeof t!="string")return;const e=t.trim();if(e&&e.toLowerCase()!=="unknown")return e},PC=t=>{const e=(t||"").trim();if(!e)return;const n=e.match(/tool policy blocked ['"`]([^'"`]+)['"`]/i);if(n!=null&&n[1])return ps(n[1]);try{const r=JSON.parse(e);if(typeof(r==null?void 0:r.tool_name)=="string")return ps(r.tool_name)}catch{}},ld=t=>{var r,s;const e=Number.isFinite(Date.parse(t.created_at))?Date.parse(t.created_at):Date.now(),n=hb(t.token_usage);return{id:t.id,kind:t.kind,parentSessionId:t.parent_session_id??null,rootSessionId:t.root_session_id,spawnDepth:t.spawn_depth,createdByScheduleId:t.created_by_schedule_id??null,isRunning:t.is_running,updatedAt:t.updated_at,lastActivityAt:t.last_activity_at,messageCount:t.message_count,hasAttachments:t.has_attachments,lastRunStatus:t.last_run_status,lastRunError:t.last_run_error,planMode:t.plan_mode??null,subagentType:t.subagent_type??null,lifecycle:t.lifecycle??null,residentName:t.resident_name??null,placement:t.placement??null,title:t.title||Et.t("chat.session.defaultTitle"),titleVersion:t.title_version??0,createdAt:e,pinned:t.pinned,messages:[],config:{systemPromptId:TC,baseSystemPrompt:gb,lastUsedEnhancedPrompt:null,model:t.model,model_ref:t.model_ref??null,reasoningEffort:t.reasoning_effort??null,bypassPermissions:t.bypass_permissions??!1,goldConfig:t.gold_config??null,tokenUsage:n,truncationOccurred:(r=t.token_usage)==null?void 0:r.truncation_occurred,segmentsRemoved:(s=t.token_usage)==null?void 0:s.segments_removed,compressionEvents:[]}}},MC=(t,e)=>{var o,i,a,c,d,f;const n=new Map,r=new Map;for(const p of e)p.role==="tool"&&p.tool_call_id&&p.metadata&&r.set(p.tool_call_id,p.metadata);const s=[];for(const p of e){const b=p.created_at||new Date().toISOString();if(p.role==="system"){const m={role:"system",id:p.id,createdAt:b,content:p.content||"",isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(m);continue}if(p.role==="user"){const m=new Map;for(const _ of p.image_ocr||[]){const M=(o=_.image_url)==null?void 0:o.trim();if(!M)continue;const T=(_.lines||[]).map(k=>((k==null?void 0:k.text)||"").trim()).filter(Boolean);m.set(M,{ocrText:T.length?T.join(`
11
- `):void 0,ocrError:_.error?String(_.error):void 0})}const w=[];for(const _ of p.content_parts||[]){if(_.type!=="image_url")continue;const M=((i=_.image_url)==null?void 0:i.url)||"";if(!M)continue;const C=ip(M),T=yb(M),k=m.get(M.trim());w.push({id:op(),url:C,ocrText:k==null?void 0:k.ocrText,ocrError:k==null?void 0:k.ocrError,name:T?`attachment-${T.attachmentId}`:"image",size:0,type:"image/*"})}const y={role:"user",id:p.id,createdAt:b,content:p.content||"",images:w.length?w:void 0,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(y);continue}if(p.role==="assistant"){const m=p.tool_calls||[];if(m.length>0){const _=(p.content||"").trim(),M=typeof p.reasoning=="string"&&p.reasoning.trim().length>0;if(_||M){const P=M?{reasoning:p.reasoning,backendMessageId:p.id}:{backendMessageId:p.id},A={role:"assistant",type:"text",id:`${p.id}_text`,createdAt:b,content:p.content||"",metadata:P,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(A)}for(const P of m)P.id&&n.set(P.id,ps((a=P.function)==null?void 0:a.name)||lu);const C=(c=m[0])==null?void 0:c.id,T=C?r.get(C):void 0,k={role:"assistant",type:"tool_call",id:p.id,createdAt:b,toolCalls:m.map(P=>{var A;return{toolCallId:P.id,toolName:ps((A=P.function)==null?void 0:A.name)||lu,parameters:(()=>{var j,$;try{return JSON.parse(((j=P.function)==null?void 0:j.arguments)||"{}")}catch{return{raw:(($=P.function)==null?void 0:$.arguments)||""}}})(),streamingOutput:""}}),...T?{metadata:T}:{},isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(k);continue}const w=typeof p.reasoning=="string"&&p.reasoning.trim().length>0?{reasoning:p.reasoning}:{},y={role:"assistant",type:"text",id:p.id,createdAt:b,content:p.content||"",metadata:w,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(y);continue}if(p.role==="tool"){const m=((d=p.tool_call_id)==null?void 0:d.trim())||`orphan-tool-call:${p.id}`,w=ps(n.get(m))||ps(p.tool_name)||ps(p.name)||PC(p.content)||lu,y=p.tool_success===!1||p.tool_success==null&&typeof p.content=="string"&&p.content.trimStart().startsWith("Error:"),_=[];for(const C of p.content_parts||[]){if(C.type!=="image_url")continue;const T=((f=C.image_url)==null?void 0:f.url)||"";T&&_.push({id:op(),url:ip(T),name:"screenshot",size:0,type:"image/*"})}const M={role:"assistant",type:"tool_result",id:p.id,createdAt:b,toolName:w,toolCallId:m,result:{tool_name:w,result:p.content||"",display_preference:"Default"},isError:y,images:_.length?_:void 0,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(M);continue}}return s},ap=t=>{if(typeof t!="string"||!t.trim())return null;const e=Date.parse(t);return Number.isFinite(e)?e:null},AC=(t,e)=>t===e?!0:!t||!e?t==null&&e==null:t.provider===e.provider&&t.model===e.model,RC=(t,e)=>t===e?!0:!t||!e?t==null&&e==null:t.systemTokens===e.systemTokens&&t.summaryTokens===e.summaryTokens&&t.windowTokens===e.windowTokens&&t.totalTokens===e.totalTokens&&(t.maxContextTokens??0)===(e.maxContextTokens??0)&&t.budgetLimit===e.budgetLimit&&(t.promptCachedToolOutputs??0)===(e.promptCachedToolOutputs??0)&&(t.promptCachedToolTokensSaved??0)===(e.promptCachedToolTokensSaved??0)&&(t.thinkingTokens??0)===(e.thinkingTokens??0)&&(t.cacheReadInputTokens??0)===(e.cacheReadInputTokens??0),jC=(t,e)=>{if(t===e)return!0;const n=t??[],r=e??[];return n.length!==r.length?!1:n.every((s,o)=>{const i=r[o];return!!i&&s.id===i.id&&s.createdAt===i.createdAt&&s.messagesCompressed===i.messagesCompressed&&s.segmentsRemoved===i.segmentsRemoved})},IC=(t,e)=>t===e?!0:!t||!e?t==null&&e==null:t.messageCount===e.messageCount&&t.lastMessageId===e.lastMessageId&&t.hasPendingQuestion===e.hasPendingQuestion&&t.pendingQuestionToolCallId===e.pendingQuestionToolCallId,OC=(t,e)=>t===e?!0:t.systemPromptId===e.systemPromptId&&t.baseSystemPrompt===e.baseSystemPrompt&&t.lastUsedEnhancedPrompt===e.lastUsedEnhancedPrompt&&t.agentRole===e.agentRole&&t.workspacePath===e.workspacePath&&t.model===e.model&&AC(t.model_ref,e.model_ref)&&t.reasoningEffort===e.reasoningEffort&&JSON.stringify(t.goldConfig??null)===JSON.stringify(e.goldConfig??null)&&JSON.stringify(t.goalState??null)===JSON.stringify(e.goalState??null)&&RC(t.tokenUsage,e.tokenUsage)&&t.truncationOccurred===e.truncationOccurred&&t.segmentsRemoved===e.segmentsRemoved&&jC(t.compressionEvents,e.compressionEvents)&&IC(t.syncCursor,e.syncCursor),$C=(t,e)=>{var n,r,s,o;return t.id===e.id&&t.kind===e.kind&&t.parentSessionId===e.parentSessionId&&t.rootSessionId===e.rootSessionId&&t.spawnDepth===e.spawnDepth&&t.createdByScheduleId===e.createdByScheduleId&&t.isRunning===e.isRunning&&t.updatedAt===e.updatedAt&&t.lastActivityAt===e.lastActivityAt&&t.messageCount===e.messageCount&&t.hasAttachments===e.hasAttachments&&t.lastRunStatus===e.lastRunStatus&&t.lastRunError===e.lastRunError&&t.planMode===e.planMode&&t.subagentType===e.subagentType&&((n=t.placement)==null?void 0:n.kind)===((r=e.placement)==null?void 0:r.kind)&&((s=t.placement)==null?void 0:s.host)===((o=e.placement)==null?void 0:o.host)&&t.title===e.title&&t.titleVersion===e.titleVersion&&t.createdAt===e.createdAt&&t.pinned===e.pinned&&t.messages===e.messages&&OC(t.config,e.config)},LC=Pn.getInstance(),DC=750,gt={inFlight:null,forcedPromise:null,timer:null,trailingPromise:null,trailingResolve:null,trailingReject:null};function bb(){const t={resolve:gt.trailingResolve,reject:gt.trailingReject};return gt.trailingPromise=null,gt.trailingResolve=null,gt.trailingReject=null,t}function lp(t,e){!e.resolve&&!e.reject||t.then(()=>{var n;return(n=e.resolve)==null?void 0:n.call(e)},n=>{var r;return(r=e.reject)==null?void 0:r.call(e,n)})}function FC(){return gt.timer&&(clearTimeout(gt.timer),gt.timer=null),bb()}function NC(t,e){const n=t.map(ld);e(r=>{let s=r.executionBySession;for(const c of t)s=Kl(s,{type:"applySessionSummary",sessionId:c.id,summary:c});const o=new Map(r.chats.map(c=>[c.id,c]));let i=r.chats.length!==n.length;const a=n.map((c,d)=>{var X,K,O,W;const f=o.get(c.id);if(!f)return i=!0,c;const p=ap(f.updatedAt),b=ap(c.updatedAt),m=p!==null&&b!==null&&p>b,w=f.config||{},y=c.config||{},_=Object.prototype.hasOwnProperty.call(w,"model"),M=Object.prototype.hasOwnProperty.call(w,"model_ref"),C=Object.prototype.hasOwnProperty.call(w,"reasoningEffort"),T=Object.prototype.hasOwnProperty.call(w,"goldConfig"),k=Math.max(f.messageCount??0,c.messageCount??0),P=c.titleVersion??0,A=f.titleVersion??0,j=P>A?{title:c.title,titleVersion:P}:{title:f.title,titleVersion:A},$={...w,...y,model:m&&_?w.model:y.model,model_ref:m&&M?w.model_ref:y.model_ref,reasoningEffort:m&&C?w.reasoningEffort:y.reasoningEffort,goldConfig:m&&T?w.goldConfig:y.goldConfig,bypassPermissions:Object.prototype.hasOwnProperty.call(w,"bypassPermissions")?w.bypassPermissions:y.bypassPermissions,compressionEvents:((X=f.config)==null?void 0:X.compressionEvents)??((K=c.config)==null?void 0:K.compressionEvents),syncCursor:((O=f.config)==null?void 0:O.syncCursor)??((W=c.config)==null?void 0:W.syncCursor)},F={...c,pinned:m?f.pinned:c.pinned,updatedAt:m?f.updatedAt:c.updatedAt,messages:f.messages,messageCount:k,planMode:c.planMode,config:$,...j};return $C(f,F)?(r.chats[d]!==f&&(i=!0),f):(i=!0,F)});return!i&&s===r.executionBySession?r:{...r,chats:i?a:r.chats,executionBySession:s}})}async function Cl(t){return gt.inFlight?(pe("[ChatSlice]","refreshChats.inFlight.reuse",{}),gt.inFlight):(pe("[ChatSlice]","refreshChats.start",{}),gt.inFlight=(async()=>{try{const e=await LC.listSessions();pe("[ChatSlice]","refreshChats.response",{count:e.sessions.length,runningCount:e.sessions.filter(n=>n.is_running).length}),NC(e.sessions,t)}catch(e){throw console.error("[ChatSlice] Failed to refresh sessions:",e),pe("[ChatSlice]","refreshChats.error",{error:e}),e}})().finally(()=>{pe("[ChatSlice]","refreshChats.finally",{}),gt.inFlight=null}),gt.inFlight)}function zC(t){return gt.forcedPromise?(pe("[ChatSlice]","refreshChatsNow.forced.reuse",{}),gt.forcedPromise):(pe("[ChatSlice]","refreshChatsNow.forced.start",{hasInflight:!!gt.inFlight}),gt.forcedPromise=(async()=>{gt.inFlight&&await gt.inFlight,await Cl(t)})().finally(()=>{pe("[ChatSlice]","refreshChatsNow.forced.finally",{}),gt.forcedPromise=null}),gt.forcedPromise)}const fr=Pn.getInstance(),cu=new Map,BC=300,WC=(t,e)=>({chats:[],currentSessionId:null,latestActiveSessionId:null,addChat:async n=>{var b,m,w,y,_,M,C,T,k,P,A,j,$,F;const r=(n.title||Et.t("chat.sidebar.newSession")).trim(),s=((m=(b=n.config)==null?void 0:b.baseSystemPrompt)==null?void 0:m.trim())||"",o=(w=yt.getState().getActiveModel())==null?void 0:w.trim(),i=((_=(y=n.config)==null?void 0:y.model)==null?void 0:_.trim())||o||void 0;let a,c;if(yt.getState().isProviderModelRefEnabled()){const X=(M=n.config)==null?void 0:M.model_ref;if((C=X==null?void 0:X.provider)!=null&&C.trim()&&((T=X==null?void 0:X.model)!=null&&T.trim()))a=X,c=X.provider;else{const K=(k=yt.getState().providerConfig.defaults)==null?void 0:k.chat;if((P=K==null?void 0:K.provider)!=null&&P.trim()&&((A=K==null?void 0:K.model)!=null&&A.trim()))a=K,c=K.provider;else{const O=yt.getState().getActiveModel();O&&(a={provider:yt.getState().currentProvider,model:O},c=yt.getState().currentProvider)}}}const d=((j=n.config)==null?void 0:j.reasoningEffort)??fb(yt.getState().providerConfig,a??null,c??null,yt.getState().providerInstances),f=await fr.createSession({title:r,system_prompt:s||void 0,model:i,model_ref:a,provider:c,reasoning_effort:d||void 0,gold_config:(($=n.config)==null?void 0:$.goldConfig)??void 0}),p={...ld(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||gb},messages:[]};return t(X=>{const K=[p,...X.chats.filter(O=>O.id!==p.id)];return{...X,chats:K,currentSessionId:p.id,latestActiveSessionId:p.id}}),p.id},selectSession:n=>{const r=e();r.currentSessionId===n&&r.latestActiveSessionId===n||t({currentSessionId:n,latestActiveSessionId:n})},deleteSession:async n=>{try{await fr.deleteSession(n)}catch(r){console.error(`[ChatSlice] Failed to delete backend session ${n}:`,r)}t(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)),i=r.currentSessionId&&s.has(r.currentSessionId)?null:r.currentSessionId,a=r.latestActiveSessionId&&s.has(r.latestActiveSessionId)?((c=o[0])==null?void 0:c.id)??null:r.latestActiveSessionId;return{...r,chats:o,currentSessionId:i,latestActiveSessionId:a}})},deleteSessions:async n=>{for(const r of n)await e().deleteSession(r)},updateSession:(n,r,s)=>{const o=!!r.config&&(Object.prototype.hasOwnProperty.call(r.config,"model")||Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")||Object.prototype.hasOwnProperty.call(r.config,"goldConfig")),i=typeof r.title=="string"||typeof r.pinned=="boolean",c=o||i?new Date().toISOString():void 0;t(f=>{const p=f.chats.map(b=>b.id===n?{...b,...r,...c?{updatedAt:c}:{}}:b);return{...f,chats:p}});const d={};if(typeof r.title=="string"&&(d.title=r.title),typeof r.pinned=="boolean"&&(d.pinned=r.pinned),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model")&&(d.model=r.config.model??null),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model_ref")&&yt.getState().isProviderModelRefEnabled()&&(d.model_ref=r.config.model_ref??null,r.config.model_ref&&(d.provider=r.config.model_ref.provider)),r.config&&Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")){const f=r.config.reasoningEffort;f?d.reasoning_effort=f:d.clear_reasoning_effort=!0}r.config&&Object.prototype.hasOwnProperty.call(r.config,"goldConfig")&&(d.gold_config=r.config.goldConfig??{enabled:!1,auto_answer_enabled:!1,auto_continue_enabled:!1}),!(s!=null&&s.skipBackendPatch)&&Object.keys(d).length>0&&fr.patchSession(n,d).catch(f=>{console.warn(`[ChatSlice] Failed to patch session ${n}:`,f)})},persistSessionTitle:async(n,r)=>{var o;const s=(o=e().chats.find(i=>i.id===n))==null?void 0:o.title;t(i=>({...i,chats:i.chats.map(a=>a.id===n?{...a,title:r,updatedAt:new Date().toISOString()}:a)}));try{await fr.patchSession(n,{title:r})}catch(i){throw typeof s=="string"&&t(a=>({...a,chats:a.chats.map(c=>c.id===n?{...c,title:s}:c)})),console.warn(`[ChatSlice] persistSessionTitle failed for ${n}:`,i),i}},applyServerTitle:(n,r,s)=>t(o=>{const i=o.chats.find(a=>a.id===n);return!i||s<=(i.titleVersion??0)?o:{...o,chats:o.chats.map(a=>a.id===n?{...a,title:r,titleVersion:s,updatedAt:new Date().toISOString()}:a)}}),applyServerPinned:(n,r,s)=>t(o=>{const i=o.chats.find(d=>d.id===n);if(!i)return o;const a=Date.parse(s),c=i.updatedAt?Date.parse(i.updatedAt):NaN;return Number.isFinite(a)&&Number.isFinite(c)&&a<c||i.pinned===r?o:{...o,chats:o.chats.map(d=>d.id===n?{...d,pinned:r,updatedAt:s}:d)}}),pinSession:n=>{e().updateSession(n,{pinned:!0})},unpinSession:n=>{e().updateSession(n,{pinned:!1})},setMessages:(n,r)=>{e().chats.find(o=>o.id===n)&&e().updateSession(n,{messages:r})},addMessage:async(n,r)=>{const s=e().chats.find(i=>i.id===n);if(!s)return;const o=[...s.messages,r];e().updateSession(n,{messages:o})},updateMessage:(n,r,s)=>{const o=e().chats.find(a=>a.id===n);if(!o)return;const i=o.messages.map(a=>{if(a.id!==r)return a;const c={...a};return Object.keys(s).forEach(d=>{Object.prototype.hasOwnProperty.call(c,d)&&(c[d]=s[d])}),c});e().updateSession(n,{messages:i})},deleteMessage:async(n,r)=>{const s=e().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 fr.deleteSessionMessage(n,r)}catch(o){return console.warn(`[ChatSlice] Failed to delete message ${r} from session ${n}:`,o),o instanceof da?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 t(o=>({...o,chats:o.chats.map(i=>i.id===n?{...i,messages:i.messages.filter(a=>a.id!==r)}:i)})),{success:!0,sessionId:n,messageId:r}},refreshChats:async()=>gt.inFlight?gt.inFlight:gt.timer?(gt.trailingPromise||(gt.trailingPromise=new Promise((n,r)=>{gt.trailingResolve=n,gt.trailingReject=r})),gt.trailingPromise):(gt.timer=setTimeout(()=>{if(gt.timer=null,gt.trailingPromise){const n=bb();lp(Cl(t),n)}},DC),Cl(t)),refreshChatsNow:async()=>{const n=FC();pe("[ChatSlice]","refreshChatsNow.start",{hadTrailingCallbacks:!!n,hasInflight:!!gt.inFlight});const r=gt.inFlight?zC(t):Cl(t);return lp(r,n),r},loadChats:async()=>{var i,a,c;pe("[ChatSlice]","loadChats.start",{});let n=await fr.listSessions();if(!n.sessions||n.sessions.length===0){const d=(i=yt.getState().getActiveModel())==null?void 0:i.trim(),f=(a=yt.getState().providerConfig.defaults)==null?void 0:a.chat;pe("[ChatSlice]","loadChats.createInitialSession",{defaultModel:d??null,defaultModelRef:f??null}),n={sessions:[(await fr.createSession({title:Et.t("chat.sidebar.newSession"),model:d,model_ref:f,provider:f==null?void 0:f.provider})).session]}}const r=n.sessions.map(ld),s=((c=r[0])==null?void 0:c.id)??null;pe("[ChatSlice]","loadChats.listResolved",{count:n.sessions.length,currentSessionId:s});let o=e().executionBySession;for(const d of n.sessions)o=Kl(o,{type:"applySessionSummary",sessionId:d.id,summary:d});try{const d=await fr.getRunningSessions();if(pe("[ChatSlice]","loadChats.runningSnapshot",{count:d.sessions.length}),d.sessions.length>0){const f=d.sessions.map(p=>{const b=[];for(const m of p.last_critical_events){if(lb(m)){eC(m,r);continue}b.push(m)}return{sessionId:p.session_id,runId:p.run_id,criticalEvents:b}});o=Kl(o,{type:"applyRunningSnapshot",sessions:f},()=>new Date().toISOString())}}catch(d){pe("[ChatSlice]","loadChats.runningSnapshot.error",{error:d})}t({chats:r,latestActiveSessionId:s,currentSessionId:s,executionBySession:o}),pe("[ChatSlice]","loadChats.applied",{currentSessionId:s,chatCount:r.length,executionSessionCount:Object.keys(o||{}).length}),s&&(pe("[ChatSlice]","loadChats.loadInitialHistory",{currentSessionId:s}),await e().loadChatHistory(s))},loadChatHistory:async(n,r)=>{var a,c,d,f,p,b,m,w,y,_,M,C;const s=(r==null?void 0:r.mode)??"replace",o=Math.max(0,(r==null?void 0:r.retries)??0),i=Math.max(0,(r==null?void 0:r.retryDelayMs)??0);pe("[ChatSlice]","loadChatHistory.start",{sessionId:n,mode:s,retries:o,retryDelayMs:i,waitForAssistant:(r==null?void 0:r.waitForAssistant)??!1});for(let T=0;T<=o;T+=1)try{const k=e().chats.find($=>$.id===n);if(!k){pe("[ChatSlice]","loadChatHistory.skipMissingChat",{sessionId:n,attempt:T});return}const P=await fr.getHistory(n);pe("[ChatSlice]","loadChatHistory.response",{sessionId:n,attempt:T,historyMessageCount:P.messages.length,localMessageCount:k.messages.length,localStoredMessageCount:k.messageCount??null,lastMessageId:((a=P.messages[P.messages.length-1])==null?void 0:a.id)??null,lastRole:((c=P.messages[P.messages.length-1])==null?void 0:c.role)??null});const A=(d=P.messages[P.messages.length-1])==null?void 0:d.role;if(r!=null&&r.waitForAssistant&&A==="user"&&T<o){const $=i>0?i*(T+1):200*(T+1);pe("[ChatSlice]","loadChatHistory.waitForAssistant.retry",{sessionId:n,attempt:T,delay:$}),await new Promise(F=>setTimeout(F,$));continue}const j=MC(n,P.messages);if(s==="monotonic"){const $=k.messages||[],F=$.length,X=j.length,K=(f=j[j.length-1])==null?void 0:f.role,O=(p=$[$.length-1])==null?void 0:p.role,W=$[$.length-1],ae=j[j.length-1],Y=W==null?void 0:W.id,ce=ae==null?void 0:ae.id;let L=!1;if(X>F?L=!0:X===F&&(L=O==="user"&&K!=="user"||typeof Y=="string"&&typeof ce=="string"&&Y!==ce),pe("[ChatSlice]","loadChatHistory.monotonicDecision",{sessionId:n,attempt:T,prevLen:F,nextLen:X,prevLastRole:O??null,nextLastRole:K??null,prevLastId:Y??null,nextLastId:ce??null,shouldReplace:L}),!L){e().updateSession(n,{messageCount:Math.max(k.messageCount??0,P.messages.length)}),pe("[ChatSlice]","loadChatHistory.monotonicSkip",{sessionId:n,attempt:T,localMessageCount:k.messages.length,serverMessageCount:P.messages.length});return}}e().updateSession(n,{messages:j,messageCount:P.messages.length,config:{...k.config||{},...P.gold_config!=null?{goldConfig:P.gold_config}:{},...P.goal_state!=null?{goalState:P.goal_state}:{},compressionEvents:(P.compression_events||[]).map($=>({id:$.id,createdAt:$.created_at,messagesCompressed:$.messages_compressed,segmentsRemoved:$.segments_removed})),syncCursor:{messageCount:P.messages.length,lastMessageId:((b=P.messages[P.messages.length-1])==null?void 0:b.id)??null,hasPendingQuestion:!!((w=(m=e().executionBySession)==null?void 0:m[n])!=null&&w.interaction.pendingQuestion),pendingQuestionToolCallId:((M=(_=(y=e().executionBySession)==null?void 0:y[n])==null?void 0:_.interaction.pendingQuestion)==null?void 0:M.toolCallId)??null}}}),pe("[ChatSlice]","loadChatHistory.applied",{sessionId:n,attempt:T,mode:s,messageCount:P.messages.length,lastMessageId:((C=P.messages[P.messages.length-1])==null?void 0:C.id)??null});return}catch(k){if(T>=o){console.warn(`[ChatSlice] Failed to load history for ${n}:`,k),pe("[ChatSlice]","loadChatHistory.error.final",{sessionId:n,attempt:T,retries:o,error:k});return}const P=i>0?i*(T+1):200*(T+1);pe("[ChatSlice]","loadChatHistory.error.retry",{sessionId:n,attempt:T,delay:P,error:k}),await new Promise(A=>setTimeout(A,P))}},reconcileOpenSession:(n,r)=>{if(!n||e().currentSessionId!==n)return;const s=cu.get(n);s&&clearTimeout(s),cu.set(n,setTimeout(()=>{cu.delete(n),e().currentSessionId===n&&(async()=>{pe("[ChatSlice]","reconcileOpenSession.start",{sessionId:n,reason:r??null}),await e().loadChatHistory(n,{mode:"monotonic",waitForAssistant:!0,retries:3,retryDelayMs:250});try{const o=await fr.getPendingQuestion(n);if(e().currentSessionId!==n)return;o.has_pending_question?e().setPendingQuestion(n,{question:o.question??"",options:o.options??[],allowCustom:o.allow_custom??!0,toolCallId:o.tool_call_id??null}):e().clearPendingQuestion(n)}catch(o){pe("[ChatSlice]","reconcileOpenSession.pendingError",{sessionId:n,error:o})}})()},BC))}});class cd extends Error{constructor(n="Proxy authentication required"){super(n);Ie(this,"code","proxy_auth_required");this.name="ProxyAuthRequiredError"}}const vs=class vs{constructor(){}static getInstance(){return vs.instance||(vs.instance=new vs),vs.instance}async getModels(e){var n,r;try{const s=await Wi.fetchCatalogModels(e),o=[];for(const a of s.fetched)if(a.models&&a.models.length>0)for(const c of a.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 da){if(s.status===428)throw new cd(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 cd(((r=o.error)==null?void 0:r.message)||s.message)}throw s}}};Ie(vs,"instance");let ud=vs;const vb=ud.getInstance(),UC=async t=>{var e;if(typeof navigator>"u"||!((e=navigator.clipboard)!=null&&e.writeText))throw new Error("navigator.clipboard.writeText is unavailable");await navigator.clipboard.writeText(t)},HC=t=>{if(typeof document>"u")throw new Error("document is unavailable");const e=document.createElement("textarea");e.value=t,e.setAttribute("readonly","true"),e.style.position="fixed",e.style.top="-9999px",e.style.left="-9999px",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select();const n=document.execCommand("copy");if(document.body.removeChild(e),!n)throw new Error("document.execCommand('copy') returned false")},jr=async t=>{try{await UC(t);return}catch(e){try{HC(t);return}catch(n){const r=e instanceof Error?e.message:String(e),s=n instanceof Error?n.message:String(n);throw new Error(`Clipboard copy failed: navigator(${r}); fallback(${s})`)}}};class qC{async copyToClipboard(e){await jr(e)}async getBambooConfig(){try{return await ze.get("bamboo/config")}catch(e){return console.error("Failed to fetch Bamboo config:",e),{}}}async getBambooTools(){try{return await ze.get("bamboo/tools")}catch(e){return console.error("Failed to fetch Bamboo tools:",e),{tools:[]}}}async getModelLimitDefaults(){try{return await ze.get("bamboo/model-limits/defaults")}catch(e){return console.error("Failed to fetch model limit defaults:",e),{model_limits:[]}}}async setBambooConfig(e){return ze.post("bamboo/config",e)}async validateBambooConfigPatch(e){return ze.post("bamboo/config/validate",e)}async setProxyAuth(e){return ze.post("bamboo/proxy-auth",e)}async getProxyAuthStatus(){try{return await ze.get("bamboo/proxy-auth/status")}catch(e){return console.error("Failed to fetch proxy auth status:",e),{configured:!1,username:null}}}async clearProxyAuth(){return ze.post("bamboo/proxy-auth",{username:"",password:""})}async resetBambooConfig(){return ze.post("bamboo/config/reset",{})}async saveWorkflow(e,n){return ze.post("bamboo/workflows",{name:e,content:n})}async deleteWorkflow(e){return ze.delete(`bamboo/workflows/${encodeURIComponent(e)}`)}async getKeywordMaskingConfig(){try{return await ze.get("bamboo/keyword-masking")}catch(e){return console.error("Failed to fetch keyword masking config:",e),{entries:[]}}}async updateKeywordMaskingConfig(e){return ze.post("bamboo/keyword-masking",e)}async validateKeywordEntries(e){return ze.post("bamboo/keyword-masking/validate",e)}async getSetupStatus(){return await ze.get("bamboo/setup/status")}async markSetupComplete(){return ze.post("bamboo/setup/complete",{})}async resetSetupStatus(){await ze.post("bamboo/setup/incomplete",{})}async getAccessStatus(){return ze.get("bamboo/access/status")}async verifyAccessPassword(e){return ze.post("bamboo/access/verify",{password:e})}async updateAccessPassword(e){return ze.post("bamboo/access/password",e)}}const Ss=class Ss extends qC{constructor(){super()}static getInstance(){return Ss.instance||(Ss.instance=new Ss),Ss.instance}getUtilityService(){return this}};Ie(Ss,"instance");let vo=Ss;const ms=vo.getInstance();let Ho=null,qo=null;const uu=(t,e)=>t instanceof Error&&t.message.trim()?t.message:e,dd=es((t,e)=>({config:null,proxyAuthStatus:null,isLoadingConfig:!1,isLoadingProxyAuthStatus:!1,lastLoadedAt:null,error:null,loadConfig:async({force:n=!1}={})=>{const r=e().config;if(!n&&r)return r;if(Ho)return Ho;Ho=(async()=>{t({isLoadingConfig:!0,error:null});try{const s=await ms.getBambooConfig()??{};return t({config:s,lastLoadedAt:Date.now(),error:null}),s}catch(s){const o=uu(s,"Failed to load Bamboo config");throw t({error:o}),s}finally{t({isLoadingConfig:!1})}})();try{return await Ho}finally{Ho=null}},saveConfig:async n=>{t({isLoadingConfig:!0,error:null,config:n});try{const r=await ms.setBambooConfig(n);return t({config:r,lastLoadedAt:Date.now(),error:null}),r}catch(r){const s=uu(r,"Failed to save Bamboo config");throw t({error:s}),r}finally{t({isLoadingConfig:!1})}},patchConfig:async n=>{const s={...await e().loadConfig()??{},...n??{}};return e().saveConfig(s)},loadProxyAuthStatus:async({force:n=!1}={})=>{const r=e().proxyAuthStatus;if(!n&&r)return r;if(qo)return qo;qo=(async()=>{t({isLoadingProxyAuthStatus:!0,error:null});try{const s=await ms.getProxyAuthStatus();return t({proxyAuthStatus:s,error:null}),s}catch(s){const o=uu(s,"Failed to load proxy auth status");throw t({error:o}),s}finally{t({isLoadingProxyAuthStatus:!1})}})();try{return await qo}finally{qo=null}},applyProxyAuth:async n=>{await ms.setProxyAuth(n),await e().loadProxyAuthStatus({force:!0})},clearProxyAuth:async()=>{await ms.clearProxyAuth(),await e().loadProxyAuthStatus({force:!0})}}));let Ko=null;const KC=(t,e)=>({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:null,configModel:void 0,setSelectedModel:n=>{t({selectedModel:n})},loadConfigModel:async()=>{try{const n=await dd.getState().loadConfig(),r=typeof(n==null?void 0:n.model)=="string"?n.model:void 0;r&&t({configModel:r})}catch(n){console.error("Failed to load model from config:",n)}},fetchModels:async()=>{if(Ko)return Ko;Ko=(async()=>{t({isLoadingModels:!0,modelsError:null});try{try{if(!(await ms.getSetupStatus()).is_complete){pe("[ModelSlice]","Setup not complete, skipping model fetch"),t({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 vb.getModels();t(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"}}),e().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 cd){t(s=>({...s,models:s.models,selectedModel:s.selectedModel,modelsError:r||"Proxy authentication required. Please configure proxy auth."}));return}t(s=>({...s,models:[],selectedModel:s.selectedModel,modelsError:r}))}finally{t({isLoadingModels:!1})}})();try{await Ko}finally{Ko=null}}}),XC=["system_prompt","system_prompt_selected_id"],du=t=>({id:t.id,name:t.name||t.id,content:t.content||"",description:t.description,isDefault:!!t.is_default}),Xr=class Xr{constructor(){Ie(this,"deprecatedKeysCleanupDone",!1)}static getInstance(){return Xr.instance||(Xr.instance=new Xr),Xr.instance.cleanupDeprecatedPromptStorageKeys(),Xr.instance}cleanupDeprecatedPromptStorageKeys(){if(!this.deprecatedKeysCleanupDone){this.deprecatedKeysCleanupDone=!0;try{for(const e of XC)localStorage.removeItem(e)}catch(e){console.warn("[SystemPromptService] Failed to cleanup deprecated prompt storage keys:",e)}}}async getSystemPromptPresets(){try{const e=await Je.get("prompt-presets"),r=(Array.isArray(e==null?void 0:e.prompts)?e.prompts:[]).filter(s=>s.id&&s.id.trim().length>0).map(du);if(r.length>0)return r}catch(e){console.error("Failed to load prompt presets from backend:",e)}return Xl()}async createSystemPromptPreset(e){var s;const n={name:e.name,content:e.content};(s=e.id)!=null&&s.trim()&&(n.id=e.id.trim()),e.description!==void 0&&(n.description=e.description);const r=await Je.post("prompt-presets",n);if(!(r!=null&&r.prompt))throw new Error("Backend did not return created prompt preset");return du(r.prompt)}async updateSystemPromptPreset(e){const n=encodeURIComponent(e.id),r={name:e.name,content:e.content,description:e.description},s=await Je.patch(`prompt-presets/${n}`,r);if(!(s!=null&&s.prompt))throw new Error("Backend did not return updated prompt preset");return du(s.prompt)}async deleteSystemPromptPreset(e){const n=encodeURIComponent(e);await Je.delete(`prompt-presets/${n}`)}async findPresetById(e){return(await this.getSystemPromptPresets()).find(r=>r.id===e)}async getCurrentSystemPromptContent(e){const n=await this.findPresetById(e);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)||""}};Ie(Xr,"instance");let Yl=Xr;const cp="copilot_last_selected_prompt_id",Sb="copilot_custom_system_prompts_v2",wb="copilot_custom_system_prompts_v2_migrated_to_backend",xb="general_assistant",bf=80,so=Yl.getInstance();let rl=null;function vf(t){const e=t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return e.length===0?`prompt_${Date.now()}_${Math.random().toString(36).substring(2,9)}`:e.slice(0,bf)}function _b(t){if(typeof t!="string")return null;const e=t.toLowerCase().trim().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"");return e?e.slice(0,bf):null}function Cb(t,e){if(!e.has(t))return t;let n=2;for(;;){const r=`_${n}`,o=`${t.slice(0,Math.max(0,bf-r.length))}${r}`;if(!e.has(o))return o;n+=1}}function kb(){try{const t=localStorage.getItem(Sb);if(!t)return[];const e=JSON.parse(t);if(!Array.isArray(e))return[];const n=new Set,r=[];for(const s of e){const o=typeof(s==null?void 0:s.name)=="string"?s.name.trim():"",i=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!o||!i)continue;const c=_b(s==null?void 0:s.id)||vf(o),d=Cb(c,n);d!==xb&&(n.add(d),r.push({id:d,name:o,content:i,description:typeof(s==null?void 0:s.description)=="string"&&s.description.trim()||void 0,isDefault:!!(s!=null&&s.isDefault)}))}return r}catch(t){return console.error("[promptSlice] Failed to read legacy custom prompts:",t),[]}}function Tb(){try{return localStorage.getItem(wb)==="1"}catch(t){return console.error("[promptSlice] Failed to read migration marker:",t),!1}}function up(){try{localStorage.setItem(wb,"1")}catch(t){console.error("[promptSlice] Failed to write migration marker:",t)}}function dp(){try{localStorage.removeItem(Sb)}catch(t){console.error("[promptSlice] Failed to clear legacy custom prompts:",t)}}async function YC(){var s,o;if(Tb())return;const t=kb();if(t.length===0){dp(),up();return}const e=await so.getSystemPromptPresets(),n=new Set(e.map(i=>i.id));let r=!1;for(const i of t){const a=(s=i.name)==null?void 0:s.trim(),c=(o=i.content)==null?void 0:o.trim();if(!a||!c||i.id===xb||i.isDefault)continue;const d=_b(i.id)||vf(a),f=Cb(d,n);try{const p=await so.createSystemPromptPreset({id:f,name:a,content:c,description:i.description});n.add(p.id)}catch(p){r=!0,console.error(`[promptSlice] Failed to migrate legacy prompt '${a}' to backend:`,p)}}r||(dp(),up())}async function VC(){rl||(rl=YC().finally(()=>{rl=null})),await rl}const GC=(t,e)=>({systemPrompts:[],lastSelectedPromptId:localStorage.getItem(cp)||null,loadSystemPrompts:async()=>{try{await VC()}catch(s){console.warn("[promptSlice] Legacy prompt migration skipped:",s)}let n=[];try{n=await so.getSystemPromptPresets()}catch(s){console.error("Failed to load system prompts from backend:",s)}let r=n.length?n:Xl();if(!Tb()){const s=kb();r=JC(r,s)}r.length===0&&(r=Xl()),t({systemPrompts:r})},addSystemPrompt:async n=>{try{await so.createSystemPromptPreset({id:vf(n.name),name:n.name,content:n.content,description:n.description}),await e().loadSystemPrompts()}catch(r){throw console.error("Failed to add system prompt:",r),r}},updateSystemPrompt:async n=>{try{await so.updateSystemPromptPreset(n),await e().loadSystemPrompts()}catch(r){throw console.error("Failed to update system prompt:",r),r}},deleteSystemPrompt:async n=>{try{await so.deleteSystemPromptPreset(n),await e().loadSystemPrompts()}catch(r){throw console.error("Failed to delete system prompt:",r),r}},setLastSelectedPromptId:n=>{t({lastSelectedPromptId:n});try{localStorage.setItem(cp,n)}catch(r){console.error("Failed to save last selected prompt ID to localStorage:",r)}}}),JC=(t,e)=>{const n=new Map;return t.forEach(r=>{n.set(r.id,r)}),e.forEach(r=>{n.set(r.id,r)}),Array.from(n.values())},QC=()=>({});class ZC{async listSkills(e,n){const r=new URLSearchParams;e!=null&&e.search&&r.append("search",e.search),e!=null&&e.includeDisabled&&r.append("include_disabled","true"),n&&r.append("refresh","true");const s=r.toString(),o=s?`skills?${s}`:"skills";return ze.get(o)}async getSkill(e){return ze.get(`skills/${e}`)}async getFilteredTools(e){const n=e?`?session_id=${encodeURIComponent(e)}`:"";return(await ze.get(`skills/filtered-tools${n}`)).tools??[]}}const fp=new ZC,ek=(t,e)=>({skills:[],isLoadingSkills:!1,skillsError:null,loadSkills:async(n,r)=>{t({isLoadingSkills:!0,skillsError:null});try{const s=await fp.listSkills(n,r);t({skills:s.skills,isLoadingSkills:!1})}catch(s){t({skillsError:s instanceof Error?s.message:Et.t("components.skillManager.loadFailed"),isLoadingSkills:!1})}},getSkill:async n=>{t({isLoadingSkills:!0,skillsError:null});try{const r=await fp.getSkill(n),s=e().skills,i=s.findIndex(a=>a.id===r.id)>=0?s.map(a=>a.id===r.id?r:a):[...s,r];t({skills:i,isLoadingSkills:!1})}catch(r){t({skillsError:r instanceof Error?r.message:Et.t("components.skillManager.getFailed"),isLoadingSkills:!1})}},clearSkillsError:()=>{t({skillsError:null})}}),tk=t=>({tokenUsages:{},truncationOccurred:{},segmentsRemoved:{},updateTokenUsage:(e,n)=>t(r=>({tokenUsages:{...r.tokenUsages,[e]:n}})),setTruncationInfo:(e,n,r)=>t(s=>({truncationOccurred:{...s.truncationOccurred,[e]:n},segmentsRemoved:{...s.segmentsRemoved,[e]:r}})),clearTokenUsage:e=>t(n=>{const{[e]:r,...s}=n.tokenUsages,{[e]:o,...i}=n.truncationOccurred,{[e]:a,...c}=n.segmentsRemoved;return{tokenUsages:s,truncationOccurred:i,segmentsRemoved:c}})}),nk=Pn.getInstance(),rk=(t,e)=>({taskLists:{},taskListVersions:{},activeItems:{},evaluationStates:{},setTaskList:(n,r)=>t(s=>({taskLists:{...s.taskLists,[n]:r},taskListVersions:{...s.taskListVersions,[n]:r.version||0}})),loadTaskList:async n=>{const r=await nk.getTaskList(n);return r?(e().setTaskList(r.session_id||n,r),r):null},updateTaskListDelta:(n,r)=>t(s=>{const o=s.taskListVersions[n]||0;if(r.version<=o)return s;const i=s.taskLists[n];if(!i)return s;const a=i.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]:{...i,items:a,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=>t(r=>{const{[n]:s,...o}=r.taskLists,{[n]:i,...a}=r.taskListVersions,{[n]:c,...d}=r.activeItems,{[n]:f,...p}=r.evaluationStates;return{taskLists:o,taskListVersions:a,activeItems:d,evaluationStates:p}}),getTaskListVersion:n=>e().taskListVersions[n]||0,setEvaluationState:(n,r)=>t(s=>({evaluationStates:{...s.evaluationStates,[n]:r}})),clearEvaluationState:n=>t(r=>{const{[n]:s,...o}=r.evaluationStates;return{evaluationStates:o}})});var kl={exports:{}},sk=kl.exports,hp;function ok(){return hp||(hp=1,function(t,e){((n,r)=>{t.exports=r()})(sk,function(){var n=function(u,h){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(g,S){g.__proto__=S}:function(g,S){for(var x in S)Object.prototype.hasOwnProperty.call(S,x)&&(g[x]=S[x])}))(u,h)},r=function(){return(r=Object.assign||function(u){for(var h,g=1,S=arguments.length;g<S;g++)for(var x in h=arguments[g])Object.prototype.hasOwnProperty.call(h,x)&&(u[x]=h[x]);return u}).apply(this,arguments)};function s(u,h,g){for(var S,x=0,E=h.length;x<E;x++)!S&&x in h||((S=S||Array.prototype.slice.call(h,0,x))[x]=h[x]);return u.concat(S||Array.prototype.slice.call(h))}var o=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:_x,i=Object.keys,a=Array.isArray;function c(u,h){return typeof h=="object"&&i(h).forEach(function(g){u[g]=h[g]}),u}typeof Promise>"u"||o.Promise||(o.Promise=Promise);var d=Object.getPrototypeOf,f={}.hasOwnProperty;function p(u,h){return f.call(u,h)}function b(u,h){typeof h=="function"&&(h=h(d(u))),(typeof Reflect>"u"?i:Reflect.ownKeys)(h).forEach(function(g){w(u,g,h[g])})}var m=Object.defineProperty;function w(u,h,g,S){m(u,h,c(g&&p(g,"get")&&typeof g.get=="function"?{get:g.get,set:g.set,configurable:!0}:{value:g,configurable:!0,writable:!0},S))}function y(u){return{from:function(h){return u.prototype=Object.create(h.prototype),w(u.prototype,"constructor",u),{extend:b.bind(null,u.prototype)}}}}var _=Object.getOwnPropertyDescriptor,M=[].slice;function C(u,h,g){return M.call(u,h,g)}function T(u,h){return h(u)}function k(u){if(!u)throw new Error("Assertion Failed")}function P(u){o.setImmediate?setImmediate(u):setTimeout(u,0)}function A(u,h){if(typeof h=="string"&&p(u,h))return u[h];if(!h)return u;if(typeof h!="string"){for(var g=[],S=0,x=h.length;S<x;++S){var E=A(u,h[S]);g.push(E)}return g}var R,I=h.indexOf(".");return I===-1||(R=u[h.substr(0,I)])==null?void 0:A(R,h.substr(I+1))}function j(u,h,g){if(u&&h!==void 0&&!("isFrozen"in Object&&Object.isFrozen(u)))if(typeof h!="string"&&"length"in h){k(typeof g!="string"&&"length"in g);for(var S=0,x=h.length;S<x;++S)j(u,h[S],g[S])}else{var E,R,I=h.indexOf(".");I!==-1?(E=h.substr(0,I),(I=h.substr(I+1))===""?g===void 0?a(u)&&!isNaN(parseInt(E))?u.splice(E,1):delete u[E]:u[E]=g:j(R=(R=u[E])&&p(u,E)?R:u[E]={},I,g)):g===void 0?a(u)&&!isNaN(parseInt(h))?u.splice(h,1):delete u[h]:u[h]=g}}function $(u){var h,g={};for(h in u)p(u,h)&&(g[h]=u[h]);return g}var F=[].concat;function X(u){return F.apply([],u)}var he="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(X([8,16,32,64].map(function(u){return["Int","Uint","Float"].map(function(h){return h+u+"Array"})}))).filter(function(u){return o[u]}),K=new Set(he.map(function(u){return o[u]})),O=null;function W(u){return O=new WeakMap,u=function h(g){if(!g||typeof g!="object")return g;var S=O.get(g);if(S)return S;if(a(g)){S=[],O.set(g,S);for(var x=0,E=g.length;x<E;++x)S.push(h(g[x]))}else if(K.has(g.constructor))S=g;else{var R,I=d(g);for(R in S=I===Object.prototype?{}:Object.create(I),O.set(g,S),g)p(g,R)&&(S[R]=h(g[R]))}return S}(u),O=null,u}var ae={}.toString;function Y(u){return ae.call(u).slice(8,-1)}var ce=typeof Symbol<"u"?Symbol.iterator:"@@iterator",L=typeof ce=="symbol"?function(u){var h;return u!=null&&(h=u[ce])&&h.apply(u)}:function(){return null};function oe(u,h){h=u.indexOf(h),0<=h&&u.splice(h,1)}var Se={};function J(u){var h,g,S,x;if(arguments.length===1){if(a(u))return u.slice();if(this===Se&&typeof u=="string")return[u];if(x=L(u))for(g=[];!(S=x.next()).done;)g.push(S.value);else{if(u==null)return[u];if(typeof(h=u.length)!="number")return[u];for(g=new Array(h);h--;)g[h]=u[h]}}else for(h=arguments.length,g=new Array(h);h--;)g[h]=arguments[h];return g}var te=typeof Symbol<"u"?function(u){return u[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},he=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Nt=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(he),de={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 me(u,h){this.name=u,this.message=h}function ge(u,h){return u+". Errors: "+Object.keys(h).map(function(g){return h[g].toString()}).filter(function(g,S,x){return x.indexOf(g)===S}).join(`
12
- `)}function le(u,h,g,S){this.failures=h,this.failedKeys=S,this.successCount=g,this.message=ge(u,h)}function ke(u,h){this.name="BulkError",this.failures=Object.keys(h).map(function(g){return h[g]}),this.failuresByPos=h,this.message=ge(u,this.failures)}y(me).from(Error).extend({toString:function(){return this.name+": "+this.message}}),y(le).from(me),y(ke).from(me);var je=Nt.reduce(function(u,h){return u[h]=h+"Error",u},{}),fe=me,ne=Nt.reduce(function(u,h){var g=h+"Error";function S(x,E){this.name=g,x?typeof x=="string"?(this.message="".concat(x).concat(E?`
13
- `+E:""),this.inner=E||null):typeof x=="object"&&(this.message="".concat(x.name," ").concat(x.message),this.inner=x):(this.message=de[h]||g,this.inner=null)}return y(S).from(fe),u[h]=S,u},{}),Q=(ne.Syntax=SyntaxError,ne.Type=TypeError,ne.Range=RangeError,he.reduce(function(u,h){return u[h+"Error"]=ne[h],u},{}));he=Nt.reduce(function(u,h){return["Syntax","Type","Range"].indexOf(h)===-1&&(u[h+"Error"]=ne[h]),u},{});function ie(){}function ye(u){return u}function $e(u,h){return u==null||u===ye?h:function(g){return h(u(g))}}function qe(u,h){return function(){u.apply(this,arguments),h.apply(this,arguments)}}function Ue(u,h){return u===ie?h:function(){var g=u.apply(this,arguments),S=(g!==void 0&&(arguments[0]=g),this.onsuccess),x=this.onerror,E=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return S&&(this.onsuccess=this.onsuccess?qe(S,this.onsuccess):S),x&&(this.onerror=this.onerror?qe(x,this.onerror):x),E!==void 0?E:g}}function rt(u,h){return u===ie?h:function(){u.apply(this,arguments);var g=this.onsuccess,S=this.onerror;this.onsuccess=this.onerror=null,h.apply(this,arguments),g&&(this.onsuccess=this.onsuccess?qe(g,this.onsuccess):g),S&&(this.onerror=this.onerror?qe(S,this.onerror):S)}}function ht(u,h){return u===ie?h:function(x){var S=u.apply(this,arguments),x=(c(x,S),this.onsuccess),E=this.onerror,R=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return x&&(this.onsuccess=this.onsuccess?qe(x,this.onsuccess):x),E&&(this.onerror=this.onerror?qe(E,this.onerror):E),S===void 0?R===void 0?void 0:R:c(S,R)}}function Ct(u,h){return u===ie?h:function(){return h.apply(this,arguments)!==!1&&u.apply(this,arguments)}}function vt(u,h){return u===ie?h:function(){var g=u.apply(this,arguments);if(g&&typeof g.then=="function"){for(var S=this,x=arguments.length,E=new Array(x);x--;)E[x]=arguments[x];return g.then(function(){return h.apply(S,E)})}return h.apply(this,arguments)}}he.ModifyError=le,he.DexieError=me,he.BulkError=ke;var Ve=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Ht(u){Ve=u}var ct={},pt=100,on=typeof Promise>"u"?[]:(Nt=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[on=crypto.subtle.digest("SHA-512",new Uint8Array([0])),d(on),Nt]:[Nt,d(Nt),Nt]),Nt=on[0],Hs=on[1],Hs=Hs&&Hs.then,Tt=Nt&&Nt.constructor,xn=!!on[2],an=function(u,h){Fn.push([u,h]),Be&&(queueMicrotask(rs),Be=!1)},be=!0,Be=!0,Le=[],Ge=[],Vt=ye,pn={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:ie,pgp:!1,env:{},finalize:ie},De=pn,Fn=[],qt=0,Lt=[];function Re(u){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var h=this._PSD=De;if(typeof u!="function"){if(u!==ct)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&ir(this,this._value)}else this._state=null,this._value=null,++h.ref,function g(S,x){try{x(function(E){if(S._state===null){if(E===S)throw new TypeError("A promise cannot be resolved with itself.");var R=S._lib&&Yn();E&&typeof E.then=="function"?g(S,function(I,N){E instanceof Re?E._then(I,N):E.then(I,N)}):(S._state=!0,S._value=E,Ir(S)),R&&Vn()}},ir.bind(null,S))}catch(E){ir(S,E)}}(this,u)}var Xn={get:function(){var u=De,h=lr;function g(S,x){var E=this,R=!u.global&&(u!==De||h!==lr),I=R&&!Gn(),N=new Re(function(Z,B){ar(E,new ns(Ao(S,u,R,I),Ao(x,u,R,I),Z,B,u))});return this._consoleTask&&(N._consoleTask=this._consoleTask),N}return g.prototype=ct,g},set:function(u){w(this,"then",u&&u.prototype===ct?Xn:{get:function(){return u},set:Xn.set})}};function ns(u,h,g,S,x){this.onFulfilled=typeof u=="function"?u:null,this.onRejected=typeof h=="function"?h:null,this.resolve=g,this.reject=S,this.psd=x}function ir(u,h){var g,S;Ge.push(h),u._state===null&&(g=u._lib&&Yn(),h=Vt(h),u._state=!1,u._value=h,S=u,Le.some(function(x){return x._value===S._value})||Le.push(S),Ir(u),g)&&Vn()}function Ir(u){var h=u._listeners;u._listeners=[];for(var g=0,S=h.length;g<S;++g)ar(u,h[g]);var x=u._PSD;--x.ref||x.finalize(),qt===0&&(++qt,an(function(){--qt==0&&Or()},[]))}function ar(u,h){if(u._state===null)u._listeners.push(h);else{var g=u._state?h.onFulfilled:h.onRejected;if(g===null)return(u._state?h.resolve:h.reject)(u._value);++h.psd.ref,++qt,an(Fs,[g,u,h])}}function Fs(u,h,g){try{var S,x=h._value;!h._state&&Ge.length&&(Ge=[]),S=Ve&&h._consoleTask?h._consoleTask.run(function(){return u(x)}):u(x),h._state||Ge.indexOf(x)!==-1||(E=>{for(var R=Le.length;R;)if(Le[--R]._value===E._value)return Le.splice(R,1)})(h),g.resolve(S)}catch(E){g.reject(E)}finally{--qt==0&&Or(),--g.psd.ref||g.psd.finalize()}}function rs(){ur(pn,function(){Yn()&&Vn()})}function Yn(){var u=be;return Be=be=!1,u}function Vn(){var u,h,g;do for(;0<Fn.length;)for(u=Fn,Fn=[],g=u.length,h=0;h<g;++h){var S=u[h];S[0].apply(null,S[1])}while(0<Fn.length);Be=be=!0}function Or(){for(var u=Le,h=(Le=[],u.forEach(function(S){S._PSD.onunhandled.call(null,S._value,S)}),Lt.slice(0)),g=h.length;g;)h[--g]()}function Nn(u){return new Re(ct,!1,u)}function Ee(u,h){var g=De;return function(){var S=Yn(),x=De;try{return Jn(g,!0),u.apply(this,arguments)}catch(E){h&&h(E)}finally{Jn(x,!1),S&&Vn()}}}b(Re.prototype,{then:Xn,_then:function(u,h){ar(this,new ns(null,null,u,h,De))},catch:function(u){var h,g;return arguments.length===1?this.then(null,u):(h=u,g=arguments[1],typeof h=="function"?this.then(null,function(S){return(S instanceof h?g:Nn)(S)}):this.then(null,function(S){return(S&&S.name===h?g:Nn)(S)}))},finally:function(u){return this.then(function(h){return Re.resolve(u()).then(function(){return h})},function(h){return Re.resolve(u()).then(function(){return Nn(h)})})},timeout:function(u,h){var g=this;return u<1/0?new Re(function(S,x){var E=setTimeout(function(){return x(new ne.Timeout(h))},u);g.then(S,x).finally(clearTimeout.bind(null,E))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&w(Re.prototype,Symbol.toStringTag,"Dexie.Promise"),pn.env=Mo(),b(Re,{all:function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h,g){u.length===0&&h([]);var S=u.length;u.forEach(function(x,E){return Re.resolve(x).then(function(R){u[E]=R,--S||h(u)},g)})})},resolve:function(u){return u instanceof Re?u:u&&typeof u.then=="function"?new Re(function(h,g){u.then(h,g)}):new Re(ct,!0,u)},reject:Nn,race:function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h,g){u.map(function(S){return Re.resolve(S).then(h,g)})})},PSD:{get:function(){return De},set:function(u){return De=u}},totalEchoes:{get:function(){return lr}},newPSD:cr,usePSD:ur,scheduler:{get:function(){return an},set:function(u){an=u}},rejectionMapper:{get:function(){return Vt},set:function(u){Vt=u}},follow:function(u,h){return new Re(function(g,S){return cr(function(x,E){var R=De;R.unhandleds=[],R.onunhandled=E,R.finalize=qe(function(){var I,N=this;I=function(){N.unhandleds.length===0?x():E(N.unhandleds[0])},Lt.push(function Z(){I(),Lt.splice(Lt.indexOf(Z),1)}),++qt,an(function(){--qt==0&&Or()},[])},R.finalize),u()},h,g,S)})}}),Tt&&(Tt.allSettled&&w(Re,"allSettled",function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h){u.length===0&&h([]);var g=u.length,S=new Array(g);u.forEach(function(x,E){return Re.resolve(x).then(function(R){return S[E]={status:"fulfilled",value:R}},function(R){return S[E]={status:"rejected",reason:R}}).then(function(){return--g||h(S)})})})}),Tt.any&&typeof AggregateError<"u"&&w(Re,"any",function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h,g){u.length===0&&g(new AggregateError([]));var S=u.length,x=new Array(S);u.forEach(function(E,R){return Re.resolve(E).then(function(I){return h(I)},function(I){x[R]=I,--S||g(new AggregateError(x))})})})}),Tt.withResolvers)&&(Re.withResolvers=Tt.withResolvers);var Ye={awaits:0,echoes:0,id:0},wt=0,Pt=[],Kt=0,lr=0,$a=0;function cr(u,R,g,S){var x=De,E=Object.create(x),R=(E.parent=x,E.ref=0,E.global=!1,E.id=++$a,pn.env,E.env=xn?{Promise:Re,PromiseProp:{value:Re,configurable:!0,writable:!0},all:Re.all,race:Re.race,allSettled:Re.allSettled,any:Re.any,resolve:Re.resolve,reject:Re.reject}:{},R&&c(E,R),++x.ref,E.finalize=function(){--this.parent.ref||this.parent.finalize()},ur(E,u,g,S));return E.ref===0&&E.finalize(),R}function $r(){return Ye.id||(Ye.id=++wt),++Ye.awaits,Ye.echoes+=pt,Ye.id}function Gn(){return!!Ye.awaits&&(--Ye.awaits==0&&(Ye.id=0),Ye.echoes=Ye.awaits*pt,!0)}function Ns(u){return Ye.echoes&&u&&u.constructor===Tt?($r(),u.then(function(h){return Gn(),h},function(h){return Gn(),It(h)})):u}function La(){var u=Pt[Pt.length-1];Pt.pop(),Jn(u,!1)}function Jn(u,h){var g,S,x=De;(h?!Ye.echoes||Kt++&&u===De:!Kt||--Kt&&u===De)||queueMicrotask(h?(function(E){++lr,Ye.echoes&&--Ye.echoes!=0||(Ye.echoes=Ye.awaits=Ye.id=0),Pt.push(De),Jn(E,!0)}).bind(null,u):La),u!==De&&(De=u,x===pn&&(pn.env=Mo()),xn)&&(g=pn.env.Promise,S=u.env,x.global||u.global)&&(Object.defineProperty(o,"Promise",S.PromiseProp),g.all=S.all,g.race=S.race,g.resolve=S.resolve,g.reject=S.reject,S.allSettled&&(g.allSettled=S.allSettled),S.any)&&(g.any=S.any)}function Mo(){var u=o.Promise;return xn?{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 ur(u,h,g,S,x){var E=De;try{return Jn(u,!0),h(g,S,x)}finally{Jn(E,!1)}}function Ao(u,h,g,S){return typeof u!="function"?u:function(){var x=De;g&&$r(),Jn(h,!0);try{return u.apply(this,arguments)}finally{Jn(x,!1),S&&queueMicrotask(Gn)}}}function zs(u){Promise===Tt&&Ye.echoes===0?Kt===0?u():enqueueNativeMicroTask(u):setTimeout(u,0)}(""+Hs).indexOf("[native code]")===-1&&($r=Gn=ie);var It=Re.reject,_e="￿",xt="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",tn="String expected.",ln="__dbnames",nn="readonly",Qn="readwrite";function mn(u,h){return u?h?function(){return u.apply(this,arguments)&&h.apply(this,arguments)}:u:h}var Mn={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function ss(u){return typeof u!="string"||/\./.test(u)?function(h){return h}:function(h){return h[u]===void 0&&u in h&&delete(h=W(h))[u],h}}function kr(){throw ne.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function ot(u,h){try{var g=Ro(u),S=Ro(h);if(g!==S)return g==="Array"?1:S==="Array"?-1:g==="binary"?1:S==="binary"?-1:g==="string"?1:S==="string"?-1:g==="Date"?1:S!=="Date"?NaN:-1;switch(g){case"number":case"Date":case"string":return h<u?1:u<h?-1:0;case"binary":for(var x=ph(u),E=ph(h),R=x.length,I=E.length,N=R<I?R:I,Z=0;Z<N;++Z)if(x[Z]!==E[Z])return x[Z]<E[Z]?-1:1;return R===I?0:R<I?-1:1;case"Array":for(var B=u,D=h,z=B.length,V=D.length,U=z<V?z:V,H=0;H<U;++H){var q=ot(B[H],D[H]);if(q!==0)return q}return z===V?0:z<V?-1:1}}catch{}return NaN}function Ro(u){var h=typeof u;return h=="object"&&(ArrayBuffer.isView(u)||(h=Y(u))==="ArrayBuffer")?"binary":h}function ph(u){return u instanceof Uint8Array?u:ArrayBuffer.isView(u)?new Uint8Array(u.buffer,u.byteOffset,u.byteLength):new Uint8Array(u)}function Da(u,h,g){var S=u.schema.yProps;return S?(h&&0<g.numFailures&&(h=h.filter(function(x,E){return!g.failures[E]})),Promise.all(S.map(function(x){return x=x.updatesTable,h?u.db.table(x).where("k").anyOf(h).delete():u.db.table(x).clear()})).then(function(){return g})):g}mh.prototype.execute=function(u){var h=this["@@propmod"];if(h.add!==void 0){var g=h.add;if(a(g))return s(s([],a(u)?u:[],!0),g).sort();if(typeof g=="number")return(Number(u)||0)+g;if(typeof g=="bigint")try{return BigInt(u)+g}catch{return BigInt(0)+g}throw new TypeError("Invalid term ".concat(g))}if(h.remove!==void 0){var S=h.remove;if(a(S))return a(u)?u.filter(function(x){return!S.includes(x)}).sort():[];if(typeof S=="number")return Number(u)-S;if(typeof S=="bigint")try{return BigInt(u)-S}catch{return BigInt(0)-S}throw new TypeError("Invalid subtrahend ".concat(S))}return g=(g=h.replacePrefix)==null?void 0:g[0],g&&typeof u=="string"&&u.startsWith(g)?h.replacePrefix[1]+u.substring(g.length):u};var jo=mh;function mh(u){this["@@propmod"]=u}function gh(u,h){for(var g=i(h),S=g.length,x=!1,E=0;E<S;++E){var R=g[E],I=h[R],N=A(u,R);I instanceof jo?(j(u,R,I.execute(N)),x=!0):N!==I&&(j(u,R,I),x=!0)}return x}Rt.prototype._trans=function(u,h,g){var S=this._tx||De.trans,x=this.name,E=Ve&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(u==="readonly"?"read":"write"," ").concat(this.name));function R(Z,B,D){if(D.schema[x])return h(D.idbtrans,D);throw new ne.NotFound("Table "+x+" not part of transaction")}var I=Yn();try{var N=S&&S.db._novip===this.db._novip?S===De.trans?S._promise(u,R,g):cr(function(){return S._promise(u,R,g)},{trans:S,transless:De.transless||De}):function Z(B,D,z,V){if(B.idbdb&&(B._state.openComplete||De.letThrough||B._vip)){var U=B._createTransaction(D,z,B._dbSchema);try{U.create(),B._state.PR1398_maxLoop=3}catch(H){return H.name===je.InvalidState&&B.isOpen()&&0<--B._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),B.close({disableAutoOpen:!1}),B.open().then(function(){return Z(B,D,z,V)})):It(H)}return U._promise(D,function(H,q){return cr(function(){return De.trans=U,V(H,q,U)})}).then(function(H){if(D==="readwrite")try{U.idbtrans.commit()}catch{}return D==="readonly"?H:U._completion.then(function(){return H})})}if(B._state.openComplete)return It(new ne.DatabaseClosed(B._state.dbOpenError));if(!B._state.isBeingOpened){if(!B._state.autoOpen)return It(new ne.DatabaseClosed);B.open().catch(ie)}return B._state.dbReadyPromise.then(function(){return Z(B,D,z,V)})}(this.db,u,[this.name],R);return E&&(N._consoleTask=E,N=N.catch(function(Z){return console.trace(Z),It(Z)})),N}finally{I&&Vn()}},Rt.prototype.get=function(u,h){var g=this;return u&&u.constructor===Object?this.where(u).first(h):u==null?It(new ne.Type("Invalid argument to Table.get()")):this._trans("readonly",function(S){return g.core.get({trans:S,key:u}).then(function(x){return g.hook.reading.fire(x)})}).then(h)},Rt.prototype.where=function(u){if(typeof u=="string")return new this.db.WhereClause(this,u);if(a(u))return new this.db.WhereClause(this,"[".concat(u.join("+"),"]"));var h=i(u);if(h.length===1)return this.where(h[0]).equals(u[h[0]]);var g=this.schema.indexes.concat(this.schema.primKey).filter(function(I){if(I.compound&&h.every(function(Z){return 0<=I.keyPath.indexOf(Z)})){for(var N=0;N<h.length;++N)if(h.indexOf(I.keyPath[N])===-1)return!1;return!0}return!1}).sort(function(I,N){return I.keyPath.length-N.keyPath.length})[0];if(g&&this.db._maxKey!==_e)return R=g.keyPath.slice(0,h.length),this.where(R).equals(R.map(function(I){return u[I]}));!g&&Ve&&console.warn("The query ".concat(JSON.stringify(u)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(h.join("+"),"]"));var S=this.schema.idxByName;function x(I,N){return ot(I,N)===0}var R=h.reduce(function(B,N){var Z=B[0],B=B[1],D=S[N],z=u[N];return[Z||D,Z||!D?mn(B,D&&D.multi?function(V){return V=A(V,N),a(V)&&V.some(function(U){return x(z,U)})}:function(V){return x(z,A(V,N))}):B]},[null,null]),E=R[0],R=R[1];return E?this.where(E.name).equals(u[E.keyPath]).filter(R):g?this.filter(R):this.where(h).equals("")},Rt.prototype.filter=function(u){return this.toCollection().and(u)},Rt.prototype.count=function(u){return this.toCollection().count(u)},Rt.prototype.offset=function(u){return this.toCollection().offset(u)},Rt.prototype.limit=function(u){return this.toCollection().limit(u)},Rt.prototype.each=function(u){return this.toCollection().each(u)},Rt.prototype.toArray=function(u){return this.toCollection().toArray(u)},Rt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Rt.prototype.orderBy=function(u){return new this.db.Collection(new this.db.WhereClause(this,a(u)?"[".concat(u.join("+"),"]"):u))},Rt.prototype.reverse=function(){return this.toCollection().reverse()},Rt.prototype.mapToClass=function(u){for(var h=this.db,g=this.name,S=((this.schema.mappedClass=u).prototype instanceof kr&&(u=(R=>{var I=B,N=R;if(typeof N!="function"&&N!==null)throw new TypeError("Class extends value "+String(N)+" is not a constructor or null");function Z(){this.constructor=I}function B(){return R!==null&&R.apply(this,arguments)||this}return n(I,N),I.prototype=N===null?Object.create(N):(Z.prototype=N.prototype,new Z),Object.defineProperty(B.prototype,"db",{get:function(){return h},enumerable:!1,configurable:!0}),B.prototype.table=function(){return g},B})(u)),new Set),x=u.prototype;x;x=d(x))Object.getOwnPropertyNames(x).forEach(function(R){return S.add(R)});function E(R){if(!R)return R;var I,N=Object.create(u.prototype);for(I in R)if(!S.has(I))try{N[I]=R[I]}catch{}return N}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=E,this.hook("reading",E),u},Rt.prototype.defineClass=function(){return this.mapToClass(function(u){c(this,u)})},Rt.prototype.add=function(u,h){var g=this,S=this.schema.primKey,x=S.auto,E=S.keyPath,R=u;return E&&x&&(R=ss(E)(u)),this._trans("readwrite",function(I){return g.core.mutate({trans:I,type:"add",keys:h!=null?[h]:null,values:[R]})}).then(function(I){return I.numFailures?Re.reject(I.failures[0]):I.lastResult}).then(function(I){if(E)try{j(u,E,I)}catch{}return I})},Rt.prototype.upsert=function(u,h){var g=this,S=this.schema.primKey.keyPath;return this._trans("readwrite",function(x){return g.core.get({trans:x,key:u}).then(function(E){var R=E??{};return gh(R,h),S&&j(R,S,u),g.core.mutate({trans:x,type:"put",values:[R],keys:[u],upsert:!0,updates:{keys:[u],changeSpecs:[h]}}).then(function(I){return I.numFailures?Re.reject(I.failures[0]):!!E})})})},Rt.prototype.update=function(u,h){return typeof u!="object"||a(u)?this.where(":id").equals(u).modify(h):(u=A(u,this.schema.primKey.keyPath))===void 0?It(new ne.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(u).modify(h)},Rt.prototype.put=function(u,h){var g=this,S=this.schema.primKey,x=S.auto,E=S.keyPath,R=u;return E&&x&&(R=ss(E)(u)),this._trans("readwrite",function(I){return g.core.mutate({trans:I,type:"put",values:[R],keys:h!=null?[h]:null})}).then(function(I){return I.numFailures?Re.reject(I.failures[0]):I.lastResult}).then(function(I){if(E)try{j(u,E,I)}catch{}return I})},Rt.prototype.delete=function(u){var h=this;return this._trans("readwrite",function(g){return h.core.mutate({trans:g,type:"delete",keys:[u]}).then(function(S){return Da(h,[u],S)}).then(function(S){return S.numFailures?Re.reject(S.failures[0]):void 0})})},Rt.prototype.clear=function(){var u=this;return this._trans("readwrite",function(h){return u.core.mutate({trans:h,type:"deleteRange",range:Mn}).then(function(g){return Da(u,null,g)})}).then(function(h){return h.numFailures?Re.reject(h.failures[0]):void 0})},Rt.prototype.bulkGet=function(u){var h=this;return this._trans("readonly",function(g){return h.core.getMany({keys:u,trans:g}).then(function(S){return S.map(function(x){return h.hook.reading.fire(x)})})})},Rt.prototype.bulkAdd=function(u,h,g){var S=this,x=Array.isArray(h)?h:void 0,E=(g=g||(x?void 0:h))?g.allKeys:void 0;return this._trans("readwrite",function(R){var I=S.schema.primKey,Z=I.auto,I=I.keyPath;if(I&&x)throw new ne.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(x&&x.length!==u.length)throw new ne.InvalidArgument("Arguments objects and keys must have the same length");var N=u.length,Z=I&&Z?u.map(ss(I)):u;return S.core.mutate({trans:R,type:"add",keys:x,values:Z,wantResults:E}).then(function(B){var D=B.numFailures,z=B.failures;if(D===0)return E?B.results:B.lastResult;throw new ke("".concat(S.name,".bulkAdd(): ").concat(D," of ").concat(N," operations failed"),z)})})},Rt.prototype.bulkPut=function(u,h,g){var S=this,x=Array.isArray(h)?h:void 0,E=(g=g||(x?void 0:h))?g.allKeys:void 0;return this._trans("readwrite",function(R){var I=S.schema.primKey,Z=I.auto,I=I.keyPath;if(I&&x)throw new ne.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(x&&x.length!==u.length)throw new ne.InvalidArgument("Arguments objects and keys must have the same length");var N=u.length,Z=I&&Z?u.map(ss(I)):u;return S.core.mutate({trans:R,type:"put",keys:x,values:Z,wantResults:E}).then(function(B){var D=B.numFailures,z=B.failures;if(D===0)return E?B.results:B.lastResult;throw new ke("".concat(S.name,".bulkPut(): ").concat(D," of ").concat(N," operations failed"),z)})})},Rt.prototype.bulkUpdate=function(u){var h=this,g=this.core,S=u.map(function(R){return R.key}),x=u.map(function(R){return R.changes}),E=[];return this._trans("readwrite",function(R){return g.getMany({trans:R,keys:S,cache:"clone"}).then(function(I){var N=[],Z=[],B=(u.forEach(function(D,z){var V=D.key,U=D.changes,H=I[z];if(H){for(var q=0,se=Object.keys(U);q<se.length;q++){var ee=se[q],ue=U[ee];if(ee===h.schema.primKey.keyPath){if(ot(ue,V)!==0)throw new ne.Constraint("Cannot update primary key in bulkUpdate()")}else j(H,ee,ue)}E.push(z),N.push(V),Z.push(H)}}),N.length);return g.mutate({trans:R,type:"put",keys:N,values:Z,updates:{keys:S,changeSpecs:x}}).then(function(D){var z=D.numFailures,V=D.failures;if(z===0)return B;for(var U=0,H=Object.keys(V);U<H.length;U++){var q,se=H[U],ee=E[Number(se)];ee!=null&&(q=V[se],delete V[se],V[ee]=q)}throw new ke("".concat(h.name,".bulkUpdate(): ").concat(z," of ").concat(B," operations failed"),V)})})})},Rt.prototype.bulkDelete=function(u){var h=this,g=u.length;return this._trans("readwrite",function(S){return h.core.mutate({trans:S,type:"delete",keys:u}).then(function(x){return Da(h,u,x)})}).then(function(S){var x=S.numFailures,E=S.failures;if(x===0)return S.lastResult;throw new ke("".concat(h.name,".bulkDelete(): ").concat(x," of ").concat(g," operations failed"),E)})};var yh=Rt;function Rt(){}function Io(u){function h(R,I){if(I){for(var N=arguments.length,Z=new Array(N-1);--N;)Z[N-1]=arguments[N];return g[R].subscribe.apply(null,Z),u}if(typeof R=="string")return g[R]}var g={};h.addEventType=E;for(var S=1,x=arguments.length;S<x;++S)E(arguments[S]);return h;function E(R,I,N){var Z,B;if(typeof R!="object")return I=I||Ct,B={subscribers:[],fire:N=N||ie,subscribe:function(D){B.subscribers.indexOf(D)===-1&&(B.subscribers.push(D),B.fire=I(B.fire,D))},unsubscribe:function(D){B.subscribers=B.subscribers.filter(function(z){return z!==D}),B.fire=B.subscribers.reduce(I,N)}},g[R]=h[R]=B;i(Z=R).forEach(function(D){var z=Z[D];if(a(z))E(D,Z[D][0],Z[D][1]);else{if(z!=="asap")throw new ne.InvalidArgument("Invalid event config");var V=E(D,ye,function(){for(var U=arguments.length,H=new Array(U);U--;)H[U]=arguments[U];V.subscribers.forEach(function(q){P(function(){q.apply(null,H)})})})}})}}function Oo(u,h){return y(h).from({prototype:u}),h}function Bs(u,h){return!(u.filter||u.algorithm||u.or)&&(h?u.justLimit:!u.replayFilter)}function jc(u,h){u.filter=mn(u.filter,h)}function Ic(u,h,g){var S=u.replayFilter;u.replayFilter=S?function(){return mn(S(),h())}:h,u.justLimit=g&&!S}function Fa(u,h){if(u.isPrimKey)return h.primaryKey;var g=h.getIndexByKeyPath(u.index);if(g)return g;throw new ne.Schema("KeyPath "+u.index+" on object store "+h.name+" is not indexed")}function bh(u,h,g){var S=Fa(u,h.schema);return h.openCursor({trans:g,values:!u.keysOnly,reverse:u.dir==="prev",unique:!!u.unique,query:{index:S,range:u.range}})}function Na(u,h,g,S){var x,E,R=u.replayFilter?mn(u.filter,u.replayFilter()):u.filter;return u.or?(x={},E=function(I,N,Z){var B,D;R&&!R(N,Z,function(z){return N.stop(z)},function(z){return N.fail(z)})||((D=""+(B=N.primaryKey))=="[object ArrayBuffer]"&&(D=""+new Uint8Array(B)),p(x,D))||(x[D]=!0,h(I,N,Z))},Promise.all([u.or._iterate(E,g),vh(bh(u,S,g),u.algorithm,E,!u.keysOnly&&u.valueMapper)])):vh(bh(u,S,g),mn(u.algorithm,R),h,!u.keysOnly&&u.valueMapper)}function vh(u,h,g,S){var x=Ee(S?function(E,R,I){return g(S(E),R,I)}:g);return u.then(function(E){if(E)return E.start(function(){var R=function(){return E.continue()};h&&!h(E,function(I){return R=I},function(I){E.stop(I),R=ie},function(I){E.fail(I),R=ie})||x(E.value,E,function(I){return R=I}),R()})})}St.prototype._read=function(u,h){var g=this._ctx;return g.error?g.table._trans(null,It.bind(null,g.error)):g.table._trans("readonly",u).then(h)},St.prototype._write=function(u){var h=this._ctx;return h.error?h.table._trans(null,It.bind(null,h.error)):h.table._trans("readwrite",u,"locked")},St.prototype._addAlgorithm=function(u){var h=this._ctx;h.algorithm=mn(h.algorithm,u)},St.prototype._iterate=function(u,h){return Na(this._ctx,u,h,this._ctx.table.core)},St.prototype.clone=function(u){var h=Object.create(this.constructor.prototype),g=Object.create(this._ctx);return u&&c(g,u),h._ctx=g,h},St.prototype.raw=function(){return this._ctx.valueMapper=null,this},St.prototype.each=function(u){var h=this._ctx;return this._read(function(g){return Na(h,u,g,h.table.core)})},St.prototype.count=function(u){var h=this;return this._read(function(g){var S,x=h._ctx,E=x.table.core;return Bs(x,!0)?E.count({trans:g,query:{index:Fa(x,E.schema),range:x.range}}).then(function(R){return Math.min(R,x.limit)}):(S=0,Na(x,function(){return++S,!1},g,E).then(function(){return S}))}).then(u)},St.prototype.sortBy=function(u,h){var g=u.split(".").reverse(),S=g[0],x=g.length-1;function E(N,Z){return Z?E(N[g[Z]],Z-1):N[S]}var R=this._ctx.dir==="next"?1:-1;function I(N,Z){return ot(E(N,x),E(Z,x))*R}return this.toArray(function(N){return N.sort(I)}).then(h)},St.prototype.toArray=function(u){var h=this;return this._read(function(g){var S,x,E,R=h._ctx;return Bs(R,!0)&&0<R.limit?(S=R.valueMapper,x=Fa(R,R.table.core.schema),R.table.core.query({trans:g,limit:R.limit,values:!0,direction:R.dir==="prev"?"prev":void 0,query:{index:x,range:R.range}}).then(function(I){return I=I.result,S?I.map(S):I})):(E=[],Na(R,function(I){return E.push(I)},g,R.table.core).then(function(){return E}))},u)},St.prototype.offset=function(u){var h=this._ctx;return u<=0||(h.offset+=u,Bs(h)?Ic(h,function(){var g=u;return function(S,x){return g===0||(g===1?--g:x(function(){S.advance(g),g=0}),!1)}}):Ic(h,function(){var g=u;return function(){return--g<0}})),this},St.prototype.limit=function(u){return this._ctx.limit=Math.min(this._ctx.limit,u),Ic(this._ctx,function(){var h=u;return function(g,S,x){return--h<=0&&S(x),0<=h}},!0),this},St.prototype.until=function(u,h){return jc(this._ctx,function(g,S,x){return!u(g.value)||(S(x),h)}),this},St.prototype.first=function(u){return this.limit(1).toArray(function(h){return h[0]}).then(u)},St.prototype.last=function(u){return this.reverse().first(u)},St.prototype.filter=function(u){var h;return jc(this._ctx,function(g){return u(g.value)}),(h=this._ctx).isMatch=mn(h.isMatch,u),this},St.prototype.and=function(u){return this.filter(u)},St.prototype.or=function(u){return new this.db.WhereClause(this._ctx.table,u,this)},St.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},St.prototype.desc=function(){return this.reverse()},St.prototype.eachKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(g,S){u(S.key,S)})},St.prototype.eachUniqueKey=function(u){return this._ctx.unique="unique",this.eachKey(u)},St.prototype.eachPrimaryKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(g,S){u(S.primaryKey,S)})},St.prototype.keys=function(u){var h=this._ctx,g=(h.keysOnly=!h.isMatch,[]);return this.each(function(S,x){g.push(x.key)}).then(function(){return g}).then(u)},St.prototype.primaryKeys=function(u){var h=this._ctx;if(Bs(h,!0)&&0<h.limit)return this._read(function(S){var x=Fa(h,h.table.core.schema);return h.table.core.query({trans:S,values:!1,limit:h.limit,direction:h.dir==="prev"?"prev":void 0,query:{index:x,range:h.range}})}).then(function(S){return S.result}).then(u);h.keysOnly=!h.isMatch;var g=[];return this.each(function(S,x){g.push(x.primaryKey)}).then(function(){return g}).then(u)},St.prototype.uniqueKeys=function(u){return this._ctx.unique="unique",this.keys(u)},St.prototype.firstKey=function(u){return this.limit(1).keys(function(h){return h[0]}).then(u)},St.prototype.lastKey=function(u){return this.reverse().firstKey(u)},St.prototype.distinct=function(){var u,h=this._ctx,h=h.index&&h.table.schema.idxByName[h.index];return h&&h.multi&&(u={},jc(this._ctx,function(S){var S=S.primaryKey.toString(),x=p(u,S);return u[S]=!0,!x})),this},St.prototype.modify=function(u){var h=this,g=this._ctx;return this._write(function(S){function x(H,q){var se=q.failures;z+=H-q.numFailures;for(var ee=0,ue=i(se);ee<ue.length;ee++){var ve=ue[ee];D.push(se[ve])}}var E=typeof u=="function"?u:function(H){return gh(H,u)},R=g.table.core,B=R.schema.primaryKey,I=B.outbound,N=B.extractKey,Z=200,B=h.db._options.modifyChunkSize,D=(B&&(Z=typeof B=="object"?B[R.name]||B["*"]||200:B),[]),z=0,V=[],U=u===Sh;return h.clone().primaryKeys().then(function(H){function q(ee){var ue=Math.min(Z,H.length-ee),ve=H.slice(ee,ee+ue);return(U?Promise.resolve([]):R.getMany({trans:S,keys:ve,cache:"immutable"})).then(function(xe){var Me=[],Te=[],Fe=I?[]:null,Pe=U?ve:[];if(!U)for(var Ne=0;Ne<ue;++Ne){var we=xe[Ne],et={value:W(we),primKey:H[ee+Ne]};E.call(et,et.value,et)!==!1&&(et.value==null?Pe.push(H[ee+Ne]):I||ot(N(we),N(et.value))===0?(Te.push(et.value),I&&Fe.push(H[ee+Ne])):(Pe.push(H[ee+Ne]),Me.push(et.value)))}return Promise.resolve(0<Me.length&&R.mutate({trans:S,type:"add",values:Me}).then(function(tt){for(var at in tt.failures)Pe.splice(parseInt(at),1);x(Me.length,tt)})).then(function(){return(0<Te.length||se&&typeof u=="object")&&R.mutate({trans:S,type:"put",keys:Fe,values:Te,criteria:se,changeSpec:typeof u!="function"&&u,isAdditionalChunk:0<ee}).then(function(tt){return x(Te.length,tt)})}).then(function(){return(0<Pe.length||se&&U)&&R.mutate({trans:S,type:"delete",keys:Pe,criteria:se,isAdditionalChunk:0<ee}).then(function(tt){return Da(g.table,Pe,tt)}).then(function(tt){return x(Pe.length,tt)})}).then(function(){return H.length>ee+ue&&q(ee+Z)})})}var se=Bs(g)&&g.limit===1/0&&(typeof u!="function"||U)&&{index:g.index,range:g.range};return q(0).then(function(){if(0<D.length)throw new le("Error modifying one or more objects",D,z,V);return H.length})})})},St.prototype.delete=function(){var u=this._ctx,h=u.range;return!Bs(u)||u.table.schema.yProps||!u.isPrimKey&&h.type!==3?this.modify(Sh):this._write(function(g){var S=u.table.core.schema.primaryKey,x=h;return u.table.core.count({trans:g,query:{index:S,range:x}}).then(function(E){return u.table.core.mutate({trans:g,type:"deleteRange",range:x}).then(function(N){var I=N.failures,N=N.numFailures;if(N)throw new le("Could not delete some values",Object.keys(I).map(function(Z){return I[Z]}),E-N);return E-N})})})};var Qw=St;function St(){}var Sh=function(u,h){return h.value=null};function Zw(u,h){return u<h?-1:u===h?0:1}function ex(u,h){return h<u?-1:u===h?0:1}function An(u,h,g){return u=u instanceof xh?new u.Collection(u):u,u._ctx.error=new(g||TypeError)(h),u}function Ws(u){return new u.Collection(u,function(){return wh("")}).limit(0)}function za(V,h,g,S){var x,E,R,I,N,Z,B,D=g.length;if(!g.every(function(H){return typeof H=="string"}))return An(V,tn);function z(H){x=H==="next"?function(se){return se.toUpperCase()}:function(se){return se.toLowerCase()},E=H==="next"?function(se){return se.toLowerCase()}:function(se){return se.toUpperCase()},R=H==="next"?Zw:ex;var q=g.map(function(se){return{lower:E(se),upper:x(se)}}).sort(function(se,ee){return R(se.lower,ee.lower)});I=q.map(function(se){return se.upper}),N=q.map(function(se){return se.lower}),B=(Z=H)==="next"?"":S}z("next");var V=new V.Collection(V,function(){return Lr(I[0],N[D-1]+S)}),U=(V._ondirectionchange=function(H){z(H)},0);return V._addAlgorithm(function(H,q,se){var ee=H.key;if(typeof ee=="string"){var ue=E(ee);if(h(ue,N,U))return!0;for(var ve=null,xe=U;xe<D;++xe){var Me=((Te,Fe,Pe,Ne,we,et)=>{for(var tt=Math.min(Te.length,Ne.length),at=-1,mt=0;mt<tt;++mt){var Rn=Fe[mt];if(Rn!==Ne[mt])return we(Te[mt],Pe[mt])<0?Te.substr(0,mt)+Pe[mt]+Pe.substr(mt+1):we(Te[mt],Ne[mt])<0?Te.substr(0,mt)+Ne[mt]+Pe.substr(mt+1):0<=at?Te.substr(0,at)+Fe[at]+Pe.substr(at+1):null;we(Te[mt],Rn)<0&&(at=mt)}return tt<Ne.length&&et==="next"?Te+Pe.substr(Te.length):tt<Te.length&&et==="prev"?Te.substr(0,Pe.length):at<0?null:Te.substr(0,at)+Ne[at]+Pe.substr(at+1)})(ee,ue,I[xe],N[xe],R,Z);Me===null&&ve===null?U=xe+1:(ve===null||0<R(ve,Me))&&(ve=Me)}q(ve!==null?function(){H.continue(ve+B)}:se)}return!1}),V}function Lr(u,h,g,S){return{type:2,lower:u,upper:h,lowerOpen:g,upperOpen:S}}function wh(u){return{type:1,lower:u,upper:u}}Object.defineProperty(rn.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),rn.prototype.between=function(u,h,g,S){g=g!==!1,S=S===!0;try{return 0<this._cmp(u,h)||this._cmp(u,h)===0&&(g||S)&&(!g||!S)?Ws(this):new this.Collection(this,function(){return Lr(u,h,!g,!S)})}catch{return An(this,xt)}},rn.prototype.equals=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return wh(u)})},rn.prototype.above=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Lr(u,void 0,!0)})},rn.prototype.aboveOrEqual=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Lr(u,void 0,!1)})},rn.prototype.below=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Lr(void 0,u,!1,!0)})},rn.prototype.belowOrEqual=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Lr(void 0,u)})},rn.prototype.startsWith=function(u){return typeof u!="string"?An(this,tn):this.between(u,u+_e,!0,!0)},rn.prototype.startsWithIgnoreCase=function(u){return u===""?this.startsWith(u):za(this,function(h,g){return h.indexOf(g[0])===0},[u],_e)},rn.prototype.equalsIgnoreCase=function(u){return za(this,function(h,g){return h===g[0]},[u],"")},rn.prototype.anyOfIgnoreCase=function(){var u=J.apply(Se,arguments);return u.length===0?Ws(this):za(this,function(h,g){return g.indexOf(h)!==-1},u,"")},rn.prototype.startsWithAnyOfIgnoreCase=function(){var u=J.apply(Se,arguments);return u.length===0?Ws(this):za(this,function(h,g){return g.some(function(S){return h.indexOf(S)===0})},u,_e)},rn.prototype.anyOf=function(){var u,h,g=this,S=J.apply(Se,arguments),x=this._cmp;try{S.sort(x)}catch{return An(this,xt)}return S.length===0?Ws(this):((u=new this.Collection(this,function(){return Lr(S[0],S[S.length-1])}))._ondirectionchange=function(E){x=E==="next"?g._ascending:g._descending,S.sort(x)},h=0,u._addAlgorithm(function(E,R,I){for(var N=E.key;0<x(N,S[h]);)if(++h===S.length)return R(I),!1;return x(N,S[h])===0||(R(function(){E.continue(S[h])}),!1)}),u)},rn.prototype.notEqual=function(u){return this.inAnyRange([[-1/0,u],[u,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},rn.prototype.noneOf=function(){var u=J.apply(Se,arguments);if(u.length===0)return new this.Collection(this);try{u.sort(this._ascending)}catch{return An(this,xt)}var h=u.reduce(function(g,S){return g?g.concat([[g[g.length-1][1],S]]):[[-1/0,S]]},null);return h.push([u[u.length-1],this.db._maxKey]),this.inAnyRange(h,{includeLowers:!1,includeUppers:!1})},rn.prototype.inAnyRange=function(u,se){var g=this,S=this._cmp,x=this._ascending,E=this._descending,R=this._min,I=this._max;if(u.length===0)return Ws(this);if(!u.every(function(ee){return ee[0]!==void 0&&ee[1]!==void 0&&x(ee[0],ee[1])<=0}))return An(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ne.InvalidArgument);var N=!se||se.includeLowers!==!1,Z=se&&se.includeUppers===!0,B,D=x;function z(ee,ue){return D(ee[0],ue[0])}try{(B=u.reduce(function(ee,ue){for(var ve=0,xe=ee.length;ve<xe;++ve){var Me=ee[ve];if(S(ue[0],Me[1])<0&&0<S(ue[1],Me[0])){Me[0]=R(Me[0],ue[0]),Me[1]=I(Me[1],ue[1]);break}}return ve===xe&&ee.push(ue),ee},[])).sort(z)}catch{return An(this,xt)}var V=0,U=Z?function(ee){return 0<x(ee,B[V][1])}:function(ee){return 0<=x(ee,B[V][1])},H=N?function(ee){return 0<E(ee,B[V][0])}:function(ee){return 0<=E(ee,B[V][0])},q=U,se=new this.Collection(this,function(){return Lr(B[0][0],B[B.length-1][1],!N,!Z)});return se._ondirectionchange=function(ee){D=ee==="next"?(q=U,x):(q=H,E),B.sort(z)},se._addAlgorithm(function(ee,ue,ve){for(var xe,Me=ee.key;q(Me);)if(++V===B.length)return ue(ve),!1;return!U(xe=Me)&&!H(xe)||(g._cmp(Me,B[V][1])===0||g._cmp(Me,B[V][0])===0||ue(function(){D===x?ee.continue(B[V][0]):ee.continue(B[V][1])}),!1)}),se},rn.prototype.startsWithAnyOf=function(){var u=J.apply(Se,arguments);return u.every(function(h){return typeof h=="string"})?u.length===0?Ws(this):this.inAnyRange(u.map(function(h){return[h,h+_e]})):An(this,"startsWithAnyOf() only works with strings")};var xh=rn;function rn(){}function Zn(u){return Ee(function(h){return $o(h),u(h.target.error),!1})}function $o(u){u.stopPropagation&&u.stopPropagation(),u.preventDefault&&u.preventDefault()}var Lo="storagemutated",Oc="x-storagemutated-1",Dr=Io(null,Lo),tx=(dr.prototype._lock=function(){return k(!De.global),++this._reculock,this._reculock!==1||De.global||(De.lockOwnerFor=this),this},dr.prototype._unlock=function(){if(k(!De.global),--this._reculock==0)for(De.global||(De.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var u=this._blockedFuncs.shift();try{ur(u[1],u[0])}catch{}}return this},dr.prototype._locked=function(){return this._reculock&&De.lockOwnerFor!==this},dr.prototype.create=function(u){var h=this;if(this.mode){var g=this.db.idbdb,S=this.db._state.dbOpenError;if(k(!this.idbtrans),!u&&!g)switch(S&&S.name){case"DatabaseClosedError":throw new ne.DatabaseClosed(S);case"MissingAPIError":throw new ne.MissingAPI(S.message,S);default:throw new ne.OpenFailed(S)}if(!this.active)throw new ne.TransactionInactive;k(this._completion._state===null),(u=this.idbtrans=u||(this.db.core||g).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=Ee(function(x){$o(x),h._reject(u.error)}),u.onabort=Ee(function(x){$o(x),h.active&&h._reject(new ne.Abort(u.error)),h.active=!1,h.on("abort").fire(x)}),u.oncomplete=Ee(function(){h.active=!1,h._resolve(),"mutatedParts"in u&&Dr.storagemutated.fire(u.mutatedParts)})}return this},dr.prototype._promise=function(u,h,g){var S,x=this;return u==="readwrite"&&this.mode!=="readwrite"?It(new ne.ReadOnly("Transaction is readonly")):this.active?this._locked()?new Re(function(E,R){x._blockedFuncs.push([function(){x._promise(u,h,g).then(E,R)},De])}):g?cr(function(){var E=new Re(function(R,I){x._lock();var N=h(R,I,x);N&&N.then&&N.then(R,I)});return E.finally(function(){return x._unlock()}),E._lib=!0,E}):((S=new Re(function(E,R){var I=h(E,R,x);I&&I.then&&I.then(E,R)}))._lib=!0,S):It(new ne.TransactionInactive)},dr.prototype._root=function(){return this.parent?this.parent._root():this},dr.prototype.waitFor=function(u){var h,g=this._root(),S=Re.resolve(u),x=(g._waitingFor?g._waitingFor=g._waitingFor.then(function(){return S}):(g._waitingFor=S,g._waitingQueue=[],h=g.idbtrans.objectStore(g.storeNames[0]),function E(){for(++g._spinCount;g._waitingQueue.length;)g._waitingQueue.shift()();g._waitingFor&&(h.get(-1/0).onsuccess=E)}()),g._waitingFor);return new Re(function(E,R){S.then(function(I){return g._waitingQueue.push(Ee(E.bind(null,I)))},function(I){return g._waitingQueue.push(Ee(R.bind(null,I)))}).finally(function(){g._waitingFor===x&&(g._waitingFor=null)})})},dr.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ne.Abort))},dr.prototype.table=function(u){var h=this._memoizedTables||(this._memoizedTables={});if(p(h,u))return h[u];var g=this.schema[u];if(g)return(g=new this.db.Table(u,g,this)).core=this.db.core.table(u),h[u]=g;throw new ne.NotFound("Table "+u+" not part of transaction")},dr);function dr(){}function $c(u,h,g,S,x,E,R,I){return{name:u,keyPath:h,unique:g,multi:S,auto:x,compound:E,src:(g&&!R?"&":"")+(S?"*":"")+(x?"++":"")+_h(h),type:I}}function _h(u){return typeof u=="string"?u:u?"["+[].join.call(u,"+")+"]":""}function Lc(u,h,g){return{name:u,primKey:h,indexes:g,mappedClass:null,idxByName:(S=function(x){return[x.name,x]},g.reduce(function(x,E,R){return E=S(E,R),E&&(x[E[0]]=E[1]),x},{}))};var S}var Do=function(u){try{return u.only([[]]),Do=function(){return[[]]},[[]]}catch{return Do=function(){return _e},_e}};function Dc(u){return u==null?function(){}:typeof u=="string"?(h=u).split(".").length===1?function(g){return g[h]}:function(g){return A(g,h)}:function(g){return A(g,u)};var h}function Ch(u){return[].slice.call(u)}var nx=0;function Fo(u){return u==null?":id":typeof u=="string"?u:"[".concat(u.join("+"),"]")}function rx(u,h,R){function S(q){if(q.type===3)return null;if(q.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var V=q.lower,U=q.upper,H=q.lowerOpen,q=q.upperOpen;return V===void 0?U===void 0?null:h.upperBound(U,!!q):U===void 0?h.lowerBound(V,!!H):h.bound(V,U,!!H,!!q)}function x(z){var V,U,H=z.name;return{name:H,schema:z,mutate:function(q){var se=q.trans,ee=q.type,ue=q.keys,ve=q.values,xe=q.range;return new Promise(function(Me,Te){Me=Ee(Me);var Fe=se.objectStore(H),Pe=Fe.keyPath==null,Ne=ee==="put"||ee==="add";if(!Ne&&ee!=="delete"&&ee!=="deleteRange")throw new Error("Invalid operation type: "+ee);var we,et=(ue||ve||{length:1}).length;if(ue&&ve&&ue.length!==ve.length)throw new Error("Given keys array must have same length as given values array.");if(et===0)return Me({numFailures:0,failures:{},results:[],lastResult:void 0});function tt(_n){++Rn,$o(_n)}var at=[],mt=[],Rn=0;if(ee==="deleteRange"){if(xe.type===4)return Me({numFailures:Rn,failures:mt,results:[],lastResult:void 0});xe.type===3?at.push(we=Fe.clear()):at.push(we=Fe.delete(S(xe)))}else{var Pe=Ne?Pe?[ve,ue]:[ve,null]:[ue,null],it=Pe[0],yn=Pe[1];if(Ne)for(var bn=0;bn<et;++bn)at.push(we=yn&&yn[bn]!==void 0?Fe[ee](it[bn],yn[bn]):Fe[ee](it[bn])),we.onerror=tt;else for(bn=0;bn<et;++bn)at.push(we=Fe[ee](it[bn])),we.onerror=tt}function Qa(_n){_n=_n.target.result,at.forEach(function(as,tu){return as.error!=null&&(mt[tu]=as.error)}),Me({numFailures:Rn,failures:mt,results:ee==="delete"?ue:at.map(function(as){return as.result}),lastResult:_n})}we.onerror=function(_n){tt(_n),Qa(_n)},we.onsuccess=Qa})},getMany:function(q){var se=q.trans,ee=q.keys;return new Promise(function(ue,ve){ue=Ee(ue);for(var xe,Me=se.objectStore(H),Te=ee.length,Fe=new Array(Te),Pe=0,Ne=0,we=function(at){at=at.target,Fe[at._pos]=at.result,++Ne===Pe&&ue(Fe)},et=Zn(ve),tt=0;tt<Te;++tt)ee[tt]!=null&&((xe=Me.get(ee[tt]))._pos=tt,xe.onsuccess=we,xe.onerror=et,++Pe);Pe===0&&ue(Fe)})},get:function(q){var se=q.trans,ee=q.key;return new Promise(function(ue,ve){ue=Ee(ue);var xe=se.objectStore(H).get(ee);xe.onsuccess=function(Me){return ue(Me.target.result)},xe.onerror=Zn(ve)})},query:(V=N,U=Z,function(q){return new Promise(function(se,ee){se=Ee(se);var ue,ve,xe,Me,et=q.trans,Te=q.values,Fe=q.limit,we=q.query,Pe=(Pe=q.direction)!=null?Pe:"next",Ne=Fe===1/0?void 0:Fe,tt=we.index,we=we.range,et=et.objectStore(H),et=tt.isPrimaryKey?et:et.index(tt.name),tt=S(we);if(Fe===0)return se({result:[]});U?(we={query:tt,count:Ne,direction:Pe},(ue=Te?et.getAll(we):et.getAllKeys(we)).onsuccess=function(at){return se({result:at.target.result})},ue.onerror=Zn(ee)):V&&Pe==="next"?((ue=Te?et.getAll(tt,Ne):et.getAllKeys(tt,Ne)).onsuccess=function(at){return se({result:at.target.result})},ue.onerror=Zn(ee)):(ve=0,xe=!Te&&"openKeyCursor"in et?et.openKeyCursor(tt,Pe):et.openCursor(tt,Pe),Me=[],xe.onsuccess=function(){var at=xe.result;return!at||(Me.push(Te?at.value:at.primaryKey),++ve===Fe)?se({result:Me}):void at.continue()},xe.onerror=Zn(ee))})}),openCursor:function(q){var se=q.trans,ee=q.values,ue=q.query,ve=q.reverse,xe=q.unique;return new Promise(function(Me,Te){Me=Ee(Me);var Ne=ue.index,Fe=ue.range,Pe=se.objectStore(H),Pe=Ne.isPrimaryKey?Pe:Pe.index(Ne.name),Ne=ve?xe?"prevunique":"prev":xe?"nextunique":"next",we=!ee&&"openKeyCursor"in Pe?Pe.openKeyCursor(S(Fe),Ne):Pe.openCursor(S(Fe),Ne);we.onerror=Zn(Te),we.onsuccess=Ee(function(et){var tt,at,mt,Rn,it=we.result;it?(it.___id=++nx,it.done=!1,tt=it.continue.bind(it),at=(at=it.continuePrimaryKey)&&at.bind(it),mt=it.advance.bind(it),Rn=function(){throw new Error("Cursor not stopped")},it.trans=se,it.stop=it.continue=it.continuePrimaryKey=it.advance=function(){throw new Error("Cursor not started")},it.fail=Ee(Te),it.next=function(){var yn=this,bn=1;return this.start(function(){return bn--?yn.continue():yn.stop()}).then(function(){return yn})},it.start=function(yn){function bn(){if(we.result)try{yn()}catch(_n){it.fail(_n)}else it.done=!0,it.start=function(){throw new Error("Cursor behind last entry")},it.stop()}var Qa=new Promise(function(_n,as){_n=Ee(_n),we.onerror=Zn(as),it.fail=as,it.stop=function(tu){it.stop=it.continue=it.continuePrimaryKey=it.advance=Rn,_n(tu)}});return we.onsuccess=Ee(function(_n){we.onsuccess=bn,bn()}),it.continue=tt,it.continuePrimaryKey=at,it.advance=mt,bn(),Qa},Me(it)):Me(null)},Te)})},count:function(q){var se=q.query,ee=q.trans,ue=se.index,ve=se.range;return new Promise(function(xe,Me){var Te=ee.objectStore(H),Te=ue.isPrimaryKey?Te:Te.index(ue.name),Fe=S(ve),Fe=Fe?Te.count(Fe):Te.count();Fe.onsuccess=Ee(function(Pe){return xe(Pe.target.result)}),Fe.onerror=Zn(Me)})}}}E=R,I=Ch((R=u).objectStoreNames),B=0<I.length?E.objectStore(I[0]):{};var E,R={schema:{name:R.name,tables:I.map(function(z){return E.objectStore(z)}).map(function(z){var V=z.keyPath,U=z.autoIncrement,q=a(V),H={},q={name:z.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:V==null,compound:q,keyPath:V,autoIncrement:U,unique:!0,extractKey:Dc(V)},indexes:Ch(z.indexNames).map(function(se){return z.index(se)}).map(function(ve){var xe=ve.name,ee=ve.unique,ue=ve.multiEntry,ve=ve.keyPath,xe={name:xe,compound:a(ve),keyPath:ve,unique:ee,multiEntry:ue,extractKey:Dc(ve)};return H[Fo(ve)]=xe}),getIndexByKeyPath:function(se){return H[Fo(se)]}};return H[":id"]=q.primaryKey,V!=null&&(H[Fo(V)]=q.primaryKey),q})},hasGetAll:0<I.length&&"getAll"in B&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in B},I=R.schema,N=R.hasGetAll,Z=R.hasIdb3Features,B=I.tables.map(x),D={};return B.forEach(function(z){return D[z.name]=z}),{stack:"dbcore",transaction:u.transaction.bind(u),table:function(z){if(D[z])return D[z];throw new Error("Table '".concat(z,"' not found"))},MIN_KEY:-1/0,MAX_KEY:Do(h),schema:I}}function sx(u,h,g,S){return g=g.IDBKeyRange,h=rx(h,g,S),{dbcore:u.dbcore.reduce(function(x,E){return E=E.create,r(r({},x),E(x))},h)}}function Ba(u,h){var g=h.db,g=sx(u._middlewares,g,u._deps,h);u.core=g.dbcore,u.tables.forEach(function(S){var x=S.name;u.core.schema.tables.some(function(E){return E.name===x})&&(S.core=u.core.table(x),u[x]instanceof u.Table)&&(u[x].core=S.core)})}function Wa(u,h,g,S){g.forEach(function(x){var E=S[x];h.forEach(function(R){var I=function N(Z,B){return _(Z,B)||(Z=d(Z))&&N(Z,B)}(R,x);(!I||"value"in I&&I.value===void 0)&&(R===u.Transaction.prototype||R instanceof u.Transaction?w(R,x,{get:function(){return this.table(x)},set:function(N){m(this,x,{value:N,writable:!0,configurable:!0,enumerable:!0})}}):R[x]=new u.Table(x,E))})})}function Fc(u,h){h.forEach(function(g){for(var S in g)g[S]instanceof u.Table&&delete g[S]})}function ox(u,h){return u._cfg.version-h._cfg.version}function ix(u,h,g,S){var x=u._dbSchema,E=(g.objectStoreNames.contains("$meta")&&!x.$meta&&(x.$meta=Lc("$meta",Th("")[0],[]),u._storeNames.push("$meta")),u._createTransaction("readwrite",u._storeNames,x)),R=(E.create(g),E._completion.catch(S),E._reject.bind(E)),I=De.transless||De;cr(function(){if(De.trans=E,De.transless=I,h!==0)return Ba(u,g),Z=h,((N=E).storeNames.includes("$meta")?N.table("$meta").get("version").then(function(B){return B??Z}):Re.resolve(Z)).then(function(q){var D=u,z=q,V=E,U=g,H=[],q=D._versions,se=D._dbSchema=Ha(0,D.idbdb,U);return(q=q.filter(function(ee){return ee._cfg.version>=z})).length===0?Re.resolve():(q.forEach(function(ee){H.push(function(){var ue,ve,xe,Me=se,Te=ee._cfg.dbschema,Fe=(qa(D,Me,U),qa(D,Te,U),se=D._dbSchema=Te,Nc(Me,Te)),Pe=(Fe.add.forEach(function(Ne){zc(U,Ne[0],Ne[1].primKey,Ne[1].indexes)}),Fe.change.forEach(function(Ne){if(Ne.recreate)throw new ne.Upgrade("Not yet support for changing primary key");var we=U.objectStore(Ne.name);Ne.add.forEach(function(et){return Ua(we,et)}),Ne.change.forEach(function(et){we.deleteIndex(et.name),Ua(we,et)}),Ne.del.forEach(function(et){return we.deleteIndex(et)})}),ee._cfg.contentUpgrade);if(Pe&&ee._cfg.version>z)return Ba(D,U),V._memoizedTables={},ue=$(Te),Fe.del.forEach(function(Ne){ue[Ne]=Me[Ne]}),Fc(D,[D.Transaction.prototype]),Wa(D,[D.Transaction.prototype],i(ue),ue),V.schema=ue,(ve=te(Pe))&&$r(),Te=Re.follow(function(){var Ne;(xe=Pe(V))&&ve&&(Ne=Gn.bind(null,null),xe.then(Ne,Ne))}),xe&&typeof xe.then=="function"?Re.resolve(xe):Te.then(function(){return xe})}),H.push(function(ue){var ve,xe,Me=ee._cfg.dbschema;ve=Me,xe=ue,[].slice.call(xe.db.objectStoreNames).forEach(function(Te){return ve[Te]==null&&xe.db.deleteObjectStore(Te)}),Fc(D,[D.Transaction.prototype]),Wa(D,[D.Transaction.prototype],D._storeNames,D._dbSchema),V.schema=D._dbSchema}),H.push(function(ue){D.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(D.idbdb.version/10)===ee._cfg.version?(D.idbdb.deleteObjectStore("$meta"),delete D._dbSchema.$meta,D._storeNames=D._storeNames.filter(function(ve){return ve!=="$meta"})):ue.objectStore("$meta").put(ee._cfg.version,"version"))})}),function ee(){return H.length?Re.resolve(H.shift()(V.idbtrans)).then(ee):Re.resolve()}().then(function(){kh(se,U)}))}).catch(R);var N,Z;i(x).forEach(function(B){zc(g,B,x[B].primKey,x[B].indexes)}),Ba(u,g),Re.follow(function(){return u.on.populate.fire(E)}).catch(R)})}function ax(u,h){kh(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 g=Ha(0,u.idbdb,h);qa(u,u._dbSchema,h);for(var S=0,x=Nc(g,u._dbSchema).change;S<x.length;S++){var E=(R=>{if(R.change.length||R.recreate)return console.warn("Unable to patch indexes of table ".concat(R.name," because it has changes on the type of index or primary key.")),{value:void 0};var I=h.objectStore(R.name);R.add.forEach(function(N){Ve&&console.debug("Dexie upgrade patch: Creating missing index ".concat(R.name,".").concat(N.src)),Ua(I,N)})})(x[S]);if(typeof E=="object")return E.value}}function Nc(u,h){var g,S={del:[],add:[],change:[]};for(g in u)h[g]||S.del.push(g);for(g in h){var x=u[g],E=h[g];if(x){var R={name:g,def:E,recreate:!1,del:[],add:[],change:[]};if(""+(x.primKey.keyPath||"")!=""+(E.primKey.keyPath||"")||x.primKey.auto!==E.primKey.auto)R.recreate=!0,S.change.push(R);else{var I=x.idxByName,N=E.idxByName,Z=void 0;for(Z in I)N[Z]||R.del.push(Z);for(Z in N){var B=I[Z],D=N[Z];B?B.src!==D.src&&R.change.push(D):R.add.push(D)}(0<R.del.length||0<R.add.length||0<R.change.length)&&S.change.push(R)}}else S.add.push([g,E])}return S}function zc(u,h,g,S){var x=u.db.createObjectStore(h,g.keyPath?{keyPath:g.keyPath,autoIncrement:g.auto}:{autoIncrement:g.auto});S.forEach(function(E){return Ua(x,E)})}function kh(u,h){i(u).forEach(function(g){h.db.objectStoreNames.contains(g)||(Ve&&console.debug("Dexie: Creating missing table",g),zc(h,g,u[g].primKey,u[g].indexes))})}function Ua(u,h){u.createIndex(h.name,h.keyPath,{unique:h.unique,multiEntry:h.multi})}function Ha(u,h,g){var S={};return C(h.objectStoreNames,0).forEach(function(x){for(var E=g.objectStore(x),R=$c(_h(Z=E.keyPath),Z||"",!0,!1,!!E.autoIncrement,Z&&typeof Z!="string",!0),I=[],N=0;N<E.indexNames.length;++N){var B=E.index(E.indexNames[N]),Z=B.keyPath,B=$c(B.name,Z,!!B.unique,!!B.multiEntry,!1,Z&&typeof Z!="string",!1);I.push(B)}S[x]=Lc(x,R,I)}),S}function qa(u,h,g){for(var S=g.db.objectStoreNames,x=0;x<S.length;++x){var E=S[x],R=g.objectStore(E);u._hasGetAll="getAll"in R;for(var I=0;I<R.indexNames.length;++I){var N,Z=R.indexNames[I],B=R.index(Z).keyPath,B=typeof B=="string"?B:"["+C(B).join("+")+"]";h[E]&&(N=h[E].idxByName[B])&&(N.name=Z,delete h[E].idxByName[B],h[E].idxByName[Z]=N)}}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 Th(u){return u.split(",").map(function(h,g){var x=h.split(":"),S=(S=x[1])==null?void 0:S.trim(),x=(h=x[0].trim()).replace(/([&*]|\+\+)/g,""),E=/^\[/.test(x)?x.match(/^\[(.*)\]$/)[1].split("+"):x;return $c(x,E||null,/\&/.test(h),/\*/.test(h),/\+\+/.test(h),a(E),g===0,S)})}Us.prototype._createTableSchema=Lc,Us.prototype._parseIndexSyntax=Th,Us.prototype._parseStoresSpec=function(u,h){var g=this;i(u).forEach(function(S){if(u[S]!==null){var x=g._parseIndexSyntax(u[S]),E=x.shift();if(!E)throw new ne.Schema("Invalid schema for table "+S+": "+u[S]);if(E.unique=!0,E.multi)throw new ne.Schema("Primary key cannot be multiEntry*");x.forEach(function(R){if(R.auto)throw new ne.Schema("Only primary key can be marked as autoIncrement (++)");if(!R.keyPath)throw new ne.Schema("Index must have a name and cannot be an empty string")}),E=g._createTableSchema(S,E,x),h[S]=E}})},Us.prototype.stores=function(g){var h=this.db,g=(this._cfg.storesSource=this._cfg.storesSource?c(this._cfg.storesSource,g):g,h._versions),S={},x={};return g.forEach(function(E){c(S,E._cfg.storesSource),x=E._cfg.dbschema={},E._parseStoresSpec(S,x)}),h._dbSchema=x,Fc(h,[h._allTables,h,h.Transaction.prototype]),Wa(h,[h._allTables,h,h.Transaction.prototype,this._cfg.tables],i(x),x),h._storeNames=i(x),this},Us.prototype.upgrade=function(u){return this._cfg.contentUpgrade=vt(this._cfg.contentUpgrade||ie,u),this};var lx=Us;function Us(){}var No=(()=>{var u,h,g;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(u=new Set,h=new FinalizationRegistry(function(S){u.delete(S)}),{toArray:function(){return Array.from(u).map(function(S){return S.deref()}).filter(function(S){return S!==void 0})},add:function(S){var x=new WeakRef(S._novip);u.add(x),h.register(S._novip,x,x),u.size>S._options.maxConnections&&(x=u.values().next().value,u.delete(x),h.unregister(x))},remove:function(S){if(S)for(var x=u.values(),E=x.next();!E.done;){var R=E.value;if(R.deref()===S._novip)return u.delete(R),void h.unregister(R);E=x.next()}}}):(g=[],{toArray:function(){return g},add:function(S){g.push(S._novip)},remove:function(S){S&&(S=g.indexOf(S._novip))!==-1&&g.splice(S,1)}})})();function Bc(u,h){var g=u._dbNamesDB;return g||(g=u._dbNamesDB=new Tr(ln,{addons:[],indexedDB:u,IDBKeyRange:h})).version(1).stores({dbnames:"name"}),g.table("dbnames")}function Wc(u){return u&&typeof u.databases=="function"}function Uc(u){return cr(function(){return De.letThrough=!0,u()})}function Hc(u){return!("from"in u)}var gn=function(u,h){var g;if(!this)return g=new gn,u&&"d"in u&&c(g,u),g;c(this,arguments.length?{d:1,from:u,to:1<arguments.length?h:u}:{d:0})};function zo(u,h,g){var S=ot(h,g);if(!isNaN(S)){if(0<S)throw RangeError();if(Hc(u))return c(u,{from:h,to:g,d:1});var S=u.l,x=u.r;if(ot(g,u.from)<0)return S?zo(S,h,g):u.l={from:h,to:g,d:1,l:null,r:null},Ph(u);if(0<ot(h,u.to))return x?zo(x,h,g):u.r={from:h,to:g,d:1,l:null,r:null},Ph(u);ot(h,u.from)<0&&(u.from=h,u.l=null,u.d=x?x.d+1:1),0<ot(g,u.to)&&(u.to=g,u.r=null,u.d=u.l?u.l.d+1:1),h=!u.r,S&&!u.l&&Bo(u,S),x&&h&&Bo(u,x)}}function Bo(u,h){Hc(h)||function g(S,x){var E=x.from,R=x.l,I=x.r;zo(S,E,x.to),R&&g(S,R),I&&g(S,I)}(u,h)}function Eh(u,h){var g=Ka(h),S=g.next();if(!S.done)for(var x=S.value,E=Ka(u),R=E.next(x.from),I=R.value;!S.done&&!R.done;){if(ot(I.from,x.to)<=0&&0<=ot(I.to,x.from))return!0;ot(x.from,I.from)<0?x=(S=g.next(I.from)).value:I=(R=E.next(x.from)).value}return!1}function Ka(u){var h=Hc(u)?null:{s:0,n:u};return{next:function(g){for(var S=0<arguments.length;h;)switch(h.s){case 0:if(h.s=1,S)for(;h.n.l&&ot(g,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,!S||ot(g,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 Ph(u){var h,g,S,x=(((x=u.r)==null?void 0:x.d)||0)-(((x=u.l)==null?void 0:x.d)||0),x=1<x?"r":x<-1?"l":"";x&&(h=x=="r"?"l":"r",g=r({},u),S=u[x],u.from=S.from,u.to=S.to,u[x]=S[x],g[x]=S[h],(u[h]=g).d=Mh(g)),u.d=Mh(u)}function Mh(g){var h=g.r,g=g.l;return(h?g?Math.max(h.d,g.d):h.d:g?g.d:0)+1}function Xa(u,h){return i(h).forEach(function(g){u[g]?Bo(u[g],h[g]):u[g]=function S(x){var E,R,I={};for(E in x)p(x,E)&&(R=x[E],I[E]=!R||typeof R!="object"||K.has(R.constructor)?R:S(R));return I}(h[g])}),u}function qc(u,h){return u.all||h.all||Object.keys(u).some(function(g){return h[g]&&Eh(h[g],u[g])})}b(gn.prototype,((Nt={add:function(u){return Bo(this,u),this},addKey:function(u){return zo(this,u,u),this},addKeys:function(u){var h=this;return u.forEach(function(g){return zo(h,g,g)}),this},hasKey:function(u){var h=Ka(this).next(u).value;return h&&ot(h.from,u)<=0&&0<=ot(h.to,u)}})[ce]=function(){return Ka(this)},Nt));var os={},Kc={},Xc=!1;function Ya(u){Xa(Kc,u),Xc||(Xc=!0,setTimeout(function(){Xc=!1,Yc(Kc,!(Kc={}))},0))}function Yc(u,h){h===void 0&&(h=!1);var g=new Set;if(u.all)for(var S=0,x=Object.values(os);S<x.length;S++)Ah(I=x[S],u,g,h);else for(var E in u){var R,I,E=/^idb\:\/\/(.*)\/(.*)\//.exec(E);E&&(R=E[1],E=E[2],I=os["idb://".concat(R,"/").concat(E)])&&Ah(I,u,g,h)}g.forEach(function(N){return N()})}function Ah(u,h,g,S){for(var x=[],E=0,R=Object.entries(u.queries.query);E<R.length;E++){for(var I=R[E],N=I[0],Z=[],B=0,D=I[1];B<D.length;B++){var z=D[B];qc(h,z.obsSet)?z.subscribers.forEach(function(q){return g.add(q)}):S&&Z.push(z)}S&&x.push([N,Z])}if(S)for(var V=0,U=x;V<U.length;V++){var H=U[V],N=H[0],Z=H[1];u.queries.query[N]=Z}}function cx(u){var h=u._state,g=u._deps.indexedDB;if(h.isBeingOpened||u.idbdb)return h.dbReadyPromise.then(function(){return h.dbOpenError?It(h.dbOpenError):u});h.isBeingOpened=!0,h.dbOpenError=null,h.openComplete=!1;var S=h.openCanceller,x=Math.round(10*u.verno),E=!1;function R(){if(h.openCanceller!==S)throw new ne.DatabaseClosed("db.open() was cancelled")}function I(){return new Re(function(z,V){if(R(),!g)throw new ne.MissingAPI;var U=u.name,H=h.autoSchema||!x?g.open(U):g.open(U,x);if(!H)throw new ne.MissingAPI;H.onerror=Zn(V),H.onblocked=Ee(u._fireOnBlocked),H.onupgradeneeded=Ee(function(q){var se;B=H.transaction,h.autoSchema&&!u._options.allowEmptyDB?(H.onerror=$o,B.abort(),H.result.close(),(se=g.deleteDatabase(U)).onsuccess=se.onerror=Ee(function(){V(new ne.NoSuchDatabase("Database ".concat(U," doesnt exist")))})):(B.onerror=Zn(V),se=q.oldVersion>Math.pow(2,62)?0:q.oldVersion,D=se<1,u.idbdb=H.result,E&&ax(u,B),ix(u,se/10,B,V))},V),H.onsuccess=Ee(function(){B=null;var q,se,ee,ue,ve,xe,Me=u.idbdb=H.result,Te=C(Me.objectStoreNames);if(0<Te.length)try{var Fe=Me.transaction((ve=Te).length===1?ve[0]:ve,"readonly");if(h.autoSchema)xe=Me,ue=Fe,(ee=u).verno=xe.version/10,ue=ee._dbSchema=Ha(0,xe,ue),ee._storeNames=C(xe.objectStoreNames,0),Wa(ee,[ee._allTables],i(ue),ue);else if(qa(u,u._dbSchema,Fe),se=Fe,((se=Nc(Ha(0,(q=u).idbdb,se),q._dbSchema)).add.length||se.change.some(function(Pe){return Pe.add.length||Pe.change.length}))&&!E)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(),x=Me.version+1,E=!0,z(I());Ba(u,Fe)}catch{}No.add(u),Me.onversionchange=Ee(function(Pe){h.vcFired=!0,u.on("versionchange").fire(Pe)}),Me.onclose=Ee(function(){u.close({disableAutoOpen:!1})}),D&&(Te=u._deps,ve=U,Wc(xe=Te.indexedDB)||ve===ln||Bc(xe,Te.IDBKeyRange).put({name:ve}).catch(ie)),z()},V)}).catch(function(z){switch(z==null?void 0:z.name){case"UnknownError":if(0<h.PR1398_maxLoop)return h.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),I();break;case"VersionError":if(0<x)return x=0,I()}return Re.reject(z)})}var N,Z=h.dbReadyResolve,B=null,D=!1;return Re.race([S,(typeof navigator>"u"?Re.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(z){function V(){return indexedDB.databases().finally(z)}N=setInterval(V,100),V()}).finally(function(){return clearInterval(N)}):Promise.resolve()).then(I)]).then(function(){return R(),h.onReadyBeingFired=[],Re.resolve(Uc(function(){return u.on.ready.fire(u.vip)})).then(function z(){var V;if(0<h.onReadyBeingFired.length)return V=h.onReadyBeingFired.reduce(vt,ie),h.onReadyBeingFired=[],Re.resolve(Uc(function(){return V(u.vip)})).then(z)})}).finally(function(){h.openCanceller===S&&(h.onReadyBeingFired=null,h.isBeingOpened=!1)}).catch(function(z){h.dbOpenError=z;try{B&&B.abort()}catch{}return S===h.openCanceller&&u._close(),It(z)}).finally(function(){h.openComplete=!0,Z()}).then(function(){var z;return D&&(z={},u.tables.forEach(function(V){V.schema.indexes.forEach(function(U){U.name&&(z["idb://".concat(u.name,"/").concat(V.name,"/").concat(U.name)]=new gn(-1/0,[[[]]]))}),z["idb://".concat(u.name,"/").concat(V.name,"/")]=z["idb://".concat(u.name,"/").concat(V.name,"/:dels")]=new gn(-1/0,[[[]]])}),Dr(Lo).fire(z),Yc(z,!0)),u})}function Vc(u){function h(E){return u.next(E)}var g=x(h),S=x(function(E){return u.throw(E)});function x(E){return function(I){var I=E(I),N=I.value;return I.done?N:N&&typeof N.then=="function"?N.then(g,S):a(N)?Promise.all(N).then(g,S):g(N)}}return x(h)()}function Va(u,h,g){for(var S=a(u)?u.slice():[u],x=0;x<g;++x)S.push(h);return S}var ux={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(u){return r(r({},u),{table:function(S){var g=u.table(S),S=g.schema,x={},E=[];function R(z,V,U){var ee=Fo(z),H=x[ee]=x[ee]||[],q=z==null?0:typeof z=="string"?1:z.length,se=0<V,ee=r(r({},U),{name:se?"".concat(ee,"(virtual-from:").concat(U.name,")"):U.name,lowLevelIndex:U,isVirtual:se,keyTail:V,keyLength:q,extractKey:Dc(z),unique:!se&&U.unique});return H.push(ee),ee.isPrimaryKey||E.push(ee),1<q&&R(q===2?z[0]:z.slice(0,q-1),V+1,U),H.sort(function(ue,ve){return ue.keyTail-ve.keyTail}),ee}var I=R(S.primaryKey.keyPath,0,S.primaryKey);x[":id"]=[I];for(var N=0,Z=S.indexes;N<Z.length;N++){var B=Z[N];R(B.keyPath,0,B)}function D(z){var V,U=z.query.index;return U.isVirtual?r(r({},z),{query:{index:U.lowLevelIndex,range:(V=z.query.range,U=U.keyTail,{type:V.type===1?2:V.type,lower:Va(V.lower,V.lowerOpen?u.MAX_KEY:u.MIN_KEY,U),lowerOpen:!0,upper:Va(V.upper,V.upperOpen?u.MIN_KEY:u.MAX_KEY,U),upperOpen:!0})}}):z}return r(r({},g),{schema:r(r({},S),{primaryKey:I,indexes:E,getIndexByKeyPath:function(z){return(z=x[Fo(z)])&&z[0]}}),count:function(z){return g.count(D(z))},query:function(z){return g.query(D(z))},openCursor:function(z){var V=z.query.index,U=V.keyTail,H=V.keyLength;return V.isVirtual?g.openCursor(D(z)).then(function(se){return se&&q(se)}):g.openCursor(z);function q(se){return Object.create(se,{continue:{value:function(ee){ee!=null?se.continue(Va(ee,z.reverse?u.MAX_KEY:u.MIN_KEY,U)):z.unique?se.continue(se.key.slice(0,H).concat(z.reverse?u.MIN_KEY:u.MAX_KEY,U)):se.continue()}},continuePrimaryKey:{value:function(ee,ue){se.continuePrimaryKey(Va(ee,u.MAX_KEY,U),ue)}},primaryKey:{get:function(){return se.primaryKey}},key:{get:function(){var ee=se.key;return H===1?ee[0]:ee.slice(0,H)}},value:{get:function(){return se.value}}})}}})}})}};function Gc(u,h,g,S){return g=g||{},S=S||"",i(u).forEach(function(x){var E,R,I;p(h,x)?(E=u[x],R=h[x],typeof E=="object"&&typeof R=="object"&&E&&R?(I=Y(E))!==Y(R)?g[S+x]=h[x]:I==="Object"?Gc(E,R,g,S+x+"."):E!==R&&(g[S+x]=h[x]):E!==R&&(g[S+x]=h[x])):g[S+x]=void 0}),i(h).forEach(function(x){p(u,x)||(g[S+x]=h[x])}),g}function Jc(u,h){return h.type==="delete"?h.keys:h.keys||h.values.map(u.extractKey)}var dx={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(u){return r(r({},u),{table:function(h){var g=u.table(h),S=g.schema.primaryKey;return r(r({},g),{mutate:function(x){var E=De.trans,R=E.table(h).hook,I=R.deleting,N=R.creating,Z=R.updating;switch(x.type){case"add":if(N.fire===ie)break;return E._promise("readwrite",function(){return B(x)},!0);case"put":if(N.fire===ie&&Z.fire===ie)break;return E._promise("readwrite",function(){return B(x)},!0);case"delete":if(I.fire===ie)break;return E._promise("readwrite",function(){return B(x)},!0);case"deleteRange":if(I.fire===ie)break;return E._promise("readwrite",function(){return function D(z,V,U){return g.query({trans:z,values:!1,query:{index:S,range:V},limit:U}).then(function(H){var q=H.result;return B({type:"delete",keys:q,trans:z}).then(function(se){return 0<se.numFailures?Promise.reject(se.failures[0]):q.length<U?{failures:[],numFailures:0,lastResult:void 0}:D(z,r(r({},V),{lower:q[q.length-1],lowerOpen:!0}),U)})})}(x.trans,x.range,1e4)},!0)}return g.mutate(x);function B(D){var z,V,U,H=De.trans,q=D.keys||Jc(S,D);if(q)return(D=D.type==="add"||D.type==="put"?r(r({},D),{keys:q}):r({},D)).type!=="delete"&&(D.values=s([],D.values)),D.keys&&(D.keys=s([],D.keys)),z=g,U=q,((V=D).type==="add"?Promise.resolve([]):z.getMany({trans:V.trans,keys:U,cache:"immutable"})).then(function(se){var ee=q.map(function(ue,ve){var xe,Me,Te,Fe=se[ve],Pe={onerror:null,onsuccess:null};return D.type==="delete"?I.fire.call(Pe,ue,Fe,H):D.type==="add"||Fe===void 0?(xe=N.fire.call(Pe,ue,D.values[ve],H),ue==null&&xe!=null&&(D.keys[ve]=ue=xe,S.outbound||j(D.values[ve],S.keyPath,ue))):(xe=Gc(Fe,D.values[ve]),(Me=Z.fire.call(Pe,xe,ue,Fe,H))&&(Te=D.values[ve],Object.keys(Me).forEach(function(Ne){p(Te,Ne)?Te[Ne]=Me[Ne]:j(Te,Ne,Me[Ne])}))),Pe});return g.mutate(D).then(function(ue){for(var ve=ue.failures,xe=ue.results,Me=ue.numFailures,ue=ue.lastResult,Te=0;Te<q.length;++Te){var Fe=(xe||q)[Te],Pe=ee[Te];Fe==null?Pe.onerror&&Pe.onerror(ve[Te]):Pe.onsuccess&&Pe.onsuccess(D.type==="put"&&se[Te]?D.values[Te]:Fe)}return{failures:ve,results:xe,numFailures:Me,lastResult:ue}}).catch(function(ue){return ee.forEach(function(ve){return ve.onerror&&ve.onerror(ue)}),Promise.reject(ue)})});throw new Error("Keys missing")}}})}})}};function Rh(u,h,g){try{if(!h||h.keys.length<u.length)return null;for(var S=[],x=0,E=0;x<h.keys.length&&E<u.length;++x)ot(h.keys[x],u[E])===0&&(S.push(g?W(h.values[x]):h.values[x]),++E);return S.length===u.length?S:null}catch{return null}}var fx={stack:"dbcore",level:-1,create:function(u){return{table:function(h){var g=u.table(h);return r(r({},g),{getMany:function(S){var x;return S.cache?(x=Rh(S.keys,S.trans._cache,S.cache==="clone"))?Re.resolve(x):g.getMany(S).then(function(E){return S.trans._cache={keys:S.keys,values:S.cache==="clone"?W(E):E},E}):g.getMany(S)},mutate:function(S){return S.type!=="add"&&(S.trans._cache=null),g.mutate(S)}})}}}};function jh(u,h){return u.trans.mode==="readonly"&&!!u.subscr&&!u.trans.explicit&&u.trans.db._options.cache!=="disabled"&&!h.schema.primaryKey.outbound}function Ih(u,h){switch(u){case"query":return h.values&&!h.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var hx={stack:"dbcore",level:0,name:"Observability",create:function(u){var h=u.schema.name,g=new gn(u.MIN_KEY,u.MAX_KEY);return r(r({},u),{transaction:function(S,x,E){if(De.subscr&&x!=="readonly")throw new ne.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(De.querier));return u.transaction(S,x,E)},table:function(S){function x(q){var H,q=q.query;return[H=q.index,new gn((H=(q=q.range).lower)!=null?H:u.MIN_KEY,(H=q.upper)!=null?H:u.MAX_KEY)]}var E=u.table(S),R=E.schema,I=R.primaryKey,N=R.indexes,Z=I.extractKey,B=I.outbound,D=I.autoIncrement&&N.filter(function(U){return U.compound&&U.keyPath.includes(I.keyPath)}),z=r(r({},E),{mutate:function(U){function H(we){return we="idb://".concat(h,"/").concat(S,"/").concat(we),ve[we]||(ve[we]=new gn)}var q,se,ee,ue=U.trans,ve=U.mutatedParts||(U.mutatedParts={}),xe=H(""),Me=H(":dels"),Te=U.type,Pe=U.type==="deleteRange"?[U.range]:U.type==="delete"?[U.keys]:U.values.length<50?[Jc(I,U).filter(function(we){return we}),U.values]:[],Fe=Pe[0],Pe=Pe[1],Ne=U.trans._cache;return a(Fe)?(xe.addKeys(Fe),(Te=Te==="delete"||Fe.length===Pe.length?Rh(Fe,Ne):null)||Me.addKeys(Fe),(Te||Pe)&&(q=H,se=Te,ee=Pe,R.indexes.forEach(function(we){var et=q(we.name||"");function tt(mt){return mt!=null?we.extractKey(mt):null}function at(mt){we.multiEntry&&a(mt)?mt.forEach(function(Rn){return et.addKey(Rn)}):et.addKey(mt)}(se||ee).forEach(function(mt,yn){var it=se&&tt(se[yn]),yn=ee&&tt(ee[yn]);ot(it,yn)!==0&&(it!=null&&at(it),yn!=null)&&at(yn)})}))):Fe?(Pe={from:(Ne=Fe.lower)!=null?Ne:u.MIN_KEY,to:(Te=Fe.upper)!=null?Te:u.MAX_KEY},Me.add(Pe),xe.add(Pe)):(xe.add(g),Me.add(g),R.indexes.forEach(function(we){return H(we.name).add(g)})),E.mutate(U).then(function(we){return!Fe||U.type!=="add"&&U.type!=="put"||(xe.addKeys(we.results),D&&D.forEach(function(et){for(var tt=U.values.map(function(it){return et.extractKey(it)}),at=et.keyPath.findIndex(function(it){return it===I.keyPath}),mt=0,Rn=we.results.length;mt<Rn;++mt)tt[mt][at]=we.results[mt];H(et.name).addKeys(tt)})),ue.mutatedParts=Xa(ue.mutatedParts||{},ve),we})}}),V={get:function(U){return[I,new gn(U.key)]},getMany:function(U){return[I,new gn().addKeys(U.keys)]},count:x,query:x,openCursor:x};return i(V).forEach(function(U){z[U]=function(H){var q=De.subscr,se=!!q,ee=jh(De,E)&&Ih(U,H)?H.obsSet={}:q;if(se){var ue,q=function(Pe){return Pe="idb://".concat(h,"/").concat(S,"/").concat(Pe),ee[Pe]||(ee[Pe]=new gn)},ve=q(""),xe=q(":dels"),se=V[U](H),Me=se[0],se=se[1];if((U==="query"&&Me.isPrimaryKey&&!H.values?xe:q(Me.name||"")).add(se),!Me.isPrimaryKey){if(U!=="count")return ue=U==="query"&&B&&H.values&&E.query(r(r({},H),{values:!1})),E[U].apply(this,arguments).then(function(Pe){if(U==="query"){if(B&&H.values)return ue.then(function(tt){return tt=tt.result,ve.addKeys(tt),Pe});var Ne=H.values?Pe.result.map(Z):Pe.result;(H.values?ve:xe).addKeys(Ne)}else{var we,et;if(U==="openCursor")return et=H.values,(we=Pe)&&Object.create(we,{key:{get:function(){return xe.addKey(we.primaryKey),we.key}},primaryKey:{get:function(){var tt=we.primaryKey;return xe.addKey(tt),tt}},value:{get:function(){return et&&ve.addKey(we.primaryKey),we.value}}})}return Pe});xe.add(g)}}return E[U].apply(this,arguments)}}),z}})}};function Oh(u,h,g){var S;return g.numFailures===0?h:h.type==="deleteRange"||(S=h.keys?h.keys.length:"values"in h&&h.values?h.values.length:1,g.numFailures===S)?null:(S=r({},h),a(S.keys)&&(S.keys=S.keys.filter(function(x,E){return!(E in g.failures)})),"values"in S&&a(S.values)&&(S.values=S.values.filter(function(x,E){return!(E in g.failures)})),S)}function Qc(u,h){return g=u,((S=h).lower===void 0||(S.lowerOpen?0<ot(g,S.lower):0<=ot(g,S.lower)))&&(g=u,(S=h).upper===void 0||(S.upperOpen?ot(g,S.upper)<0:ot(g,S.upper)<=0));var g,S}function $h(u,h,g,S,x,E){var R,I,N,Z,B,D,z;return!g||g.length===0||(R=h.query.index,I=R.multiEntry,N=h.query.range,Z=S.schema.primaryKey.extractKey,B=R.extractKey,D=(R.lowLevelIndex||R).extractKey,(S=g.reduce(function(V,U){var H=V,q=[];if(U.type==="add"||U.type==="put")for(var se=new gn,ee=U.values.length-1;0<=ee;--ee){var ue,ve=U.values[ee],xe=Z(ve);!se.hasKey(xe)&&(ue=B(ve),I&&a(ue)?ue.some(function(Ne){return Qc(Ne,N)}):Qc(ue,N))&&(se.addKey(xe),q.push(ve))}switch(U.type){case"add":var Me=new gn().addKeys(h.values?V.map(function(we){return Z(we)}):V),H=V.concat(h.values?q.filter(function(we){return we=Z(we),!Me.hasKey(we)&&(Me.addKey(we),!0)}):q.map(function(we){return Z(we)}).filter(function(we){return!Me.hasKey(we)&&(Me.addKey(we),!0)}));break;case"put":var Te=new gn().addKeys(U.values.map(function(we){return Z(we)}));H=V.filter(function(we){return!Te.hasKey(h.values?Z(we):we)}).concat(h.values?q:q.map(function(we){return Z(we)}));break;case"delete":var Fe=new gn().addKeys(U.keys);H=V.filter(function(we){return!Fe.hasKey(h.values?Z(we):we)});break;case"deleteRange":var Pe=U.range;H=V.filter(function(we){return!Qc(Z(we),Pe)})}return H},u))===u)?u:(z=function(V,U){return ot(D(V),D(U))||ot(Z(V),Z(U))},S.sort(h.direction==="prev"||h.direction==="prevunique"?function(V,U){return z(U,V)}:z),h.limit&&h.limit<1/0&&(S.length>h.limit?S.length=h.limit:u.length===h.limit&&S.length<h.limit&&(x.dirty=!0)),E?Object.freeze(S):S)}function Lh(u,h){return ot(u.lower,h.lower)===0&&ot(u.upper,h.upper)===0&&!!u.lowerOpen==!!h.lowerOpen&&!!u.upperOpen==!!h.upperOpen}function px(u,h){return((g,S,x,E)=>{if(g===void 0)return S!==void 0?-1:0;if(S===void 0)return 1;if((g=ot(g,S))===0){if(x&&E)return 0;if(x)return 1;if(E)return-1}return g})(u.lower,h.lower,u.lowerOpen,h.lowerOpen)<=0&&0<=((g,S,x,E)=>{if(g===void 0)return S!==void 0?1:0;if(S===void 0)return-1;if((g=ot(g,S))===0){if(x&&E)return 0;if(x)return-1;if(E)return 1}return g})(u.upper,h.upper,u.upperOpen,h.upperOpen)}function mx(u,h,g,S){u.subscribers.add(g),S.addEventListener("abort",function(){var x,E;u.subscribers.delete(g),u.subscribers.size===0&&(x=u,E=h,setTimeout(function(){x.subscribers.size===0&&oe(E,x)},3e3))})}var gx={stack:"dbcore",level:0,name:"Cache",create:function(u){var h=u.schema.name;return r(r({},u),{transaction:function(g,S,x){var E,R,I=u.transaction(g,S,x);return S==="readwrite"&&(x=(E=new AbortController).signal,I.addEventListener("abort",(R=function(N){return function(){if(E.abort(),S==="readwrite"){for(var Z=new Set,B=0,D=g;B<D.length;B++){var z=D[B],V=os["idb://".concat(h,"/").concat(z)];if(V){var U=u.table(z),H=V.optimisticOps.filter(function(we){return we.trans===I});if(I._explicit&&N&&I.mutatedParts)for(var q=0,se=Object.values(V.queries.query);q<se.length;q++)for(var ee=0,ue=(Me=se[q]).slice();ee<ue.length;ee++)qc((Te=ue[ee]).obsSet,I.mutatedParts)&&(oe(Me,Te),Te.subscribers.forEach(function(we){return Z.add(we)}));else if(0<H.length){V.optimisticOps=V.optimisticOps.filter(function(we){return we.trans!==I});for(var ve=0,xe=Object.values(V.queries.query);ve<xe.length;ve++)for(var Me,Te,Fe,Pe=0,Ne=(Me=xe[ve]).slice();Pe<Ne.length;Pe++)(Te=Ne[Pe]).res!=null&&I.mutatedParts&&(N&&!Te.dirty?(Fe=Object.isFrozen(Te.res),Fe=$h(Te.res,Te.req,H,U,Te,Fe),Te.dirty?(oe(Me,Te),Te.subscribers.forEach(function(we){return Z.add(we)})):Fe!==Te.res&&(Te.res=Fe,Te.promise=Re.resolve({result:Fe}))):(Te.dirty&&oe(Me,Te),Te.subscribers.forEach(function(we){return Z.add(we)})))}}}Z.forEach(function(we){return we()})}}})(!1),{signal:x}),I.addEventListener("error",R(!1),{signal:x}),I.addEventListener("complete",R(!0),{signal:x})),I},table:function(g){var S=u.table(g),x=S.schema.primaryKey;return r(r({},S),{mutate:function(E){var R,I=De.trans;return!x.outbound&&I.db._options.cache!=="disabled"&&!I.explicit&&I.idbtrans.mode==="readwrite"&&(R=os["idb://".concat(h,"/").concat(g)])?(I=S.mutate(E),E.type!=="add"&&E.type!=="put"||!(50<=E.values.length||Jc(x,E).some(function(N){return N==null}))?(R.optimisticOps.push(E),E.mutatedParts&&Ya(E.mutatedParts),I.then(function(N){0<N.numFailures&&(oe(R.optimisticOps,E),(N=Oh(0,E,N))&&R.optimisticOps.push(N),E.mutatedParts)&&Ya(E.mutatedParts)}),I.catch(function(){oe(R.optimisticOps,E),E.mutatedParts&&Ya(E.mutatedParts)})):I.then(function(N){var Z=Oh(0,r(r({},E),{values:E.values.map(function(B,D){var z;return N.failures[D]?B:(j(z=(z=x.keyPath)!=null&&z.includes(".")?W(B):r({},B),x.keyPath,N.results[D]),z)})}),N);R.optimisticOps.push(Z),queueMicrotask(function(){return E.mutatedParts&&Ya(E.mutatedParts)})}),I):S.mutate(E)},query:function(E){var R,I,N,Z,B,D,z;return jh(De,S)&&Ih("query",E)?(R=((N=De.trans)==null?void 0:N.db._options.cache)==="immutable",I=(N=De).requery,N=N.signal,D=((V,U,H,q)=>{var se=os["idb://".concat(V,"/").concat(U)];if(!se)return[];if(!(V=se.queries[H]))return[null,!1,se,null];var ee=V[(q.query?q.query.index.name:null)||""];if(!ee)return[null,!1,se,null];switch(H){case"query":var ue=(ve=q.direction)!=null?ve:"next",ve=ee.find(function(xe){var Me;return xe.req.limit===q.limit&&xe.req.values===q.values&&((Me=xe.req.direction)!=null?Me:"next")===ue&&Lh(xe.req.query.range,q.query.range)});return ve?[ve,!0,se,ee]:[ee.find(function(xe){var Me;return("limit"in xe.req?xe.req.limit:1/0)>=q.limit&&((Me=xe.req.direction)!=null?Me:"next")===ue&&(!q.values||xe.req.values)&&px(xe.req.query.range,q.query.range)}),!1,se,ee];case"count":return ve=ee.find(function(xe){return Lh(xe.req.query.range,q.query.range)}),[ve,!!ve,se,ee]}})(h,g,"query",E),z=D[0],Z=D[2],B=D[3],z&&D[1]?z.obsSet=E.obsSet:(D=S.query(E).then(function(V){var U=V.result;if(z&&(z.res=U),R){for(var H=0,q=U.length;H<q;++H)Object.freeze(U[H]);Object.freeze(U)}else V.result=W(U);return V}).catch(function(V){return B&&z&&oe(B,z),Promise.reject(V)}),z={obsSet:E.obsSet,promise:D,subscribers:new Set,type:"query",req:E,dirty:!1},B?B.push(z):(B=[z],(Z=Z||(os["idb://".concat(h,"/").concat(g)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[E.query.index.name||""]=B)),mx(z,B,I,N),z.promise.then(function(V){return{result:$h(V.result,E,Z==null?void 0:Z.optimisticOps,S,z,R)}})):S.query(E)}})}})}};function Ga(u,h){return new Proxy(u,{get:function(g,S,x){return S==="db"?h:Reflect.get(g,S,x)}})}Bt.prototype.version=function(u){if(isNaN(u)||u<.1)throw new ne.Type("Given version is not a positive number");if(u=Math.round(10*u)/10,this.idbdb||this._state.isBeingOpened)throw new ne.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,u);var h=this._versions,g=h.filter(function(S){return S._cfg.version===u})[0];return g||(g=new this.Version(u),h.push(g),h.sort(ox),g.stores({}),this._state.autoSchema=!1),g},Bt.prototype._whenReady=function(u){var h=this;return this.idbdb&&(this._state.openComplete||De.letThrough||this._vip)?u():new Re(function(g,S){if(h._state.openComplete)return S(new ne.DatabaseClosed(h._state.dbOpenError));if(!h._state.isBeingOpened){if(!h._state.autoOpen)return void S(new ne.DatabaseClosed);h.open().catch(ie)}h._state.dbReadyPromise.then(g,S)}).then(u)},Bt.prototype.use=function(x){var h=x.stack,g=x.create,S=x.level,x=x.name,E=(x&&this.unuse({stack:h,name:x}),this._middlewares[h]||(this._middlewares[h]=[]));return E.push({stack:h,create:g,level:S??10,name:x}),E.sort(function(R,I){return R.level-I.level}),this},Bt.prototype.unuse=function(u){var h=u.stack,g=u.name,S=u.create;return h&&this._middlewares[h]&&(this._middlewares[h]=this._middlewares[h].filter(function(x){return S?x.create!==S:!!g&&x.name!==g})),this},Bt.prototype.open=function(){var u=this;return ur(pn,function(){return cx(u)})},Bt.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var u=this._state;if(No.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}u.isBeingOpened||(u.dbReadyPromise=new Re(function(h){u.dbReadyResolve=h}),u.openCanceller=new Re(function(h,g){u.cancelOpen=g}))},Bt.prototype.close=function(h){var h=(h===void 0?{disableAutoOpen:!0}:h).disableAutoOpen,g=this._state;h?(g.isBeingOpened&&g.cancelOpen(new ne.DatabaseClosed),this._close(),g.autoOpen=!1,g.dbOpenError=new ne.DatabaseClosed):(this._close(),g.autoOpen=this._options.autoOpen||g.isBeingOpened,g.openComplete=!1,g.dbOpenError=null)},Bt.prototype.delete=function(u){var h=this,g=(u===void 0&&(u={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),S=this._state;return new Re(function(x,E){function R(){h.close(u);var I=h._deps.indexedDB.deleteDatabase(h.name);I.onsuccess=Ee(function(){var N,Z,B;N=h._deps,Z=h.name,Wc(B=N.indexedDB)||Z===ln||Bc(B,N.IDBKeyRange).delete(Z).catch(ie),x()}),I.onerror=Zn(E),I.onblocked=h._fireOnBlocked}if(g)throw new ne.InvalidArgument("Invalid closeOptions argument to db.delete()");S.isBeingOpened?S.dbReadyPromise.then(R):R()})},Bt.prototype.backendDB=function(){return this.idbdb},Bt.prototype.isOpen=function(){return this.idbdb!==null},Bt.prototype.hasBeenClosed=function(){var u=this._state.dbOpenError;return u&&u.name==="DatabaseClosed"},Bt.prototype.hasFailed=function(){return this._state.dbOpenError!==null},Bt.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(Bt.prototype,"tables",{get:function(){var u=this;return i(this._allTables).map(function(h){return u._allTables[h]})},enumerable:!1,configurable:!0}),Bt.prototype.transaction=function(){var u=(function(h,g,S){var x=arguments.length;if(x<2)throw new ne.InvalidArgument("Too few arguments");for(var E=new Array(x-1);--x;)E[x-1]=arguments[x];return S=E.pop(),[h,X(E),S]}).apply(this,arguments);return this._transaction.apply(this,u)},Bt.prototype._transaction=function(u,h,g){var S,x,E=this,R=De.trans,I=(R&&R.db===this&&u.indexOf("!")===-1||(R=null),u.indexOf("?")!==-1);u=u.replace("!","").replace("?","");try{if(x=h.map(function(Z){if(Z=Z instanceof E.Table?Z.name:Z,typeof Z!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return Z}),u=="r"||u===nn)S=nn;else{if(u!="rw"&&u!=Qn)throw new ne.InvalidArgument("Invalid transaction mode: "+u);S=Qn}if(R){if(R.mode===nn&&S===Qn){if(!I)throw new ne.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");R=null}R&&x.forEach(function(Z){if(R&&R.storeNames.indexOf(Z)===-1){if(!I)throw new ne.SubTransaction("Table "+Z+" not included in parent transaction.");R=null}}),I&&R&&!R.active&&(R=null)}}catch(Z){return R?R._promise(null,function(B,D){D(Z)}):It(Z)}var N=(function Z(B,D,z,V,U){return Re.resolve().then(function(){var ee=De.transless||De,H=B._createTransaction(D,z,B._dbSchema,V),ee=(H.explicit=!0,{trans:H,transless:ee});if(V)H.idbtrans=V.idbtrans;else try{H.create(),H.idbtrans._explicit=!0,B._state.PR1398_maxLoop=3}catch(ue){return ue.name===je.InvalidState&&B.isOpen()&&0<--B._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),B.close({disableAutoOpen:!1}),B.open().then(function(){return Z(B,D,z,null,U)})):It(ue)}var q,se=te(U),ee=(se&&$r(),Re.follow(function(){var ue;(q=U.call(H,H))&&(se?(ue=Gn.bind(null,null),q.then(ue,ue)):typeof q.next=="function"&&typeof q.throw=="function"&&(q=Vc(q)))},ee));return(q&&typeof q.then=="function"?Re.resolve(q).then(function(ue){return H.active?ue:It(new ne.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):ee.then(function(){return q})).then(function(ue){return V&&H._resolve(),H._completion.then(function(){return ue})}).catch(function(ue){return H._reject(ue),It(ue)})})}).bind(null,this,S,x,R,g);return R?R._promise(S,N,"lock"):De.trans?ur(De.transless,function(){return E._whenReady(N)}):this._whenReady(N)},Bt.prototype.table=function(u){if(p(this._allTables,u))return this._allTables[u];throw new ne.InvalidTable("Table ".concat(u," does not exist"))};var Tr=Bt;function Bt(u,h){var g,S,x,E,R,I=this,N=(this._middlewares={},this.verno=0,Bt.dependencies),N=(this._options=h=r({addons:Bt.addons,autoOpen:!0,indexedDB:N.indexedDB,IDBKeyRange:N.IDBKeyRange,cache:"cloned",maxConnections:1e3},h),this._deps={indexedDB:h.indexedDB,IDBKeyRange:h.IDBKeyRange},h.addons),Z=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ie,dbReadyPromise:null,cancelOpen:ie,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:h.autoOpen}),B=(Z.dbReadyPromise=new Re(function(D){Z.dbReadyResolve=D}),Z.openCanceller=new Re(function(D,z){Z.cancelOpen=z}),this._state=Z,this.name=u,this.on=Io(this,"populate","blocked","versionchange","close",{ready:[vt,ie]}),this.once=function(D,z){var V=function(){for(var U=[],H=0;H<arguments.length;H++)U[H]=arguments[H];I.on(D).unsubscribe(V),z.apply(I,U)};return I.on(D,V)},this.on.ready.subscribe=T(this.on.ready.subscribe,function(D){return function(z,V){Bt.vip(function(){var U,H=I._state;H.openComplete?(H.dbOpenError||Re.resolve().then(z),V&&D(z)):H.onReadyBeingFired?(H.onReadyBeingFired.push(z),V&&D(z)):(D(z),U=I,V||D(function q(){U.on.ready.unsubscribe(z),U.on.ready.unsubscribe(q)}))})}}),this.Collection=(g=this,Oo(Qw.prototype,function(q,H){this.db=g;var V=Mn,U=null;if(H)try{V=H()}catch(ee){U=ee}var H=q._ctx,q=H.table,se=q.hook.reading.fire;this._ctx={table:q,index:H.index,isPrimKey:!H.index||q.schema.primKey.keyPath&&H.index===q.schema.primKey.name,range:V,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:U,or:H.or,valueMapper:se!==ye?se:null}})),this.Table=(S=this,Oo(yh.prototype,function(D,z,V){this.db=S,this._tx=V,this.name=D,this.schema=z,this.hook=S._allTables[D]?S._allTables[D].hook:Io(null,{creating:[Ue,ie],reading:[$e,ye],updating:[ht,ie],deleting:[rt,ie]})})),this.Transaction=(x=this,Oo(tx.prototype,function(D,z,V,U,H){var q=this;D!=="readonly"&&z.forEach(function(se){se=(se=V[se])==null?void 0:se.yProps,se&&(z=z.concat(se.map(function(ee){return ee.updatesTable})))}),this.db=x,this.mode=D,this.storeNames=z,this.schema=V,this.chromeTransactionDurability=U,this.idbtrans=null,this.on=Io(this,"complete","error","abort"),this.parent=H||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Re(function(se,ee){q._resolve=se,q._reject=ee}),this._completion.then(function(){q.active=!1,q.on.complete.fire()},function(se){var ee=q.active;return q.active=!1,q.on.error.fire(se),q.parent?q.parent._reject(se):ee&&q.idbtrans&&q.idbtrans.abort(),It(se)})})),this.Version=(E=this,Oo(lx.prototype,function(D){this.db=E,this._cfg={version:D,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(R=this,Oo(xh.prototype,function(D,z,V){if(this.db=R,this._ctx={table:D,index:z===":id"?null:z,or:V},this._cmp=this._ascending=ot,this._descending=function(U,H){return ot(H,U)},this._max=function(U,H){return 0<ot(U,H)?U:H},this._min=function(U,H){return ot(U,H)<0?U:H},this._IDBKeyRange=R._deps.IDBKeyRange,!this._IDBKeyRange)throw new ne.MissingAPI})),this.on("versionchange",function(D){0<D.newVersion?console.warn("Another connection wants to upgrade database '".concat(I.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(I.name,"'. Closing db now to resume the delete request.")),I.close({disableAutoOpen:!1})}),this.on("blocked",function(D){!D.newVersion||D.newVersion<D.oldVersion?console.warn("Dexie.delete('".concat(I.name,"') was blocked")):console.warn("Upgrade '".concat(I.name,"' blocked by other connection holding version ").concat(D.oldVersion/10))}),this._maxKey=Do(h.IDBKeyRange),this._createTransaction=function(D,z,V,U){return new I.Transaction(D,z,V,I._options.chromeTransactionDurability,U)},this._fireOnBlocked=function(D){I.on("blocked").fire(D),No.toArray().filter(function(z){return z.name===I.name&&z!==I&&!z._state.vcFired}).map(function(z){return z.on("versionchange").fire(D)})},this.use(fx),this.use(gx),this.use(hx),this.use(ux),this.use(dx),new Proxy(this,{get:function(D,z,V){var U;return z==="_vip"||(z==="table"?function(H){return Ga(I.table(H),B)}:(U=Reflect.get(D,z,V))instanceof yh?Ga(U,B):z==="tables"?U.map(function(H){return Ga(H,B)}):z==="_createTransaction"?function(){return Ga(U.apply(this,arguments),B)}:U)}}));this.vip=B,N.forEach(function(D){return D(I)})}var Ja,Hs=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",yx=(Zc.prototype.subscribe=function(u,h,g){return this._subscribe(u&&typeof u!="function"?u:{next:u,error:h,complete:g})},Zc.prototype[Hs]=function(){return this},Zc);function Zc(u){this._subscribe=u}try{Ja={indexedDB:o.indexedDB||o.mozIndexedDB||o.webkitIndexedDB||o.msIndexedDB,IDBKeyRange:o.IDBKeyRange||o.webkitIDBKeyRange}}catch{Ja={indexedDB:null,IDBKeyRange:null}}function Dh(u){var h,g=!1,S=new yx(function(x){var E=te(u),R,I=!1,N={},Z={},B={get closed(){return I},unsubscribe:function(){I||(I=!0,R&&R.abort(),D&&Dr.storagemutated.unsubscribe(U))}},D=(x.start&&x.start(B),!1),z=function(){return zs(H)};function V(){return qc(Z,N)}var U=function(q){Xa(N,q),V()&&z()},H=function(){var q,se,ee;!I&&Ja.indexedDB&&(N={},q={},R&&R.abort(),R=new AbortController,ee=(ue=>{var ve=Yn();try{E&&$r();var xe=cr(u,ue);return xe=E?xe.finally(Gn):xe}finally{ve&&Vn()}})(se={subscr:q,signal:R.signal,requery:z,querier:u,trans:null}),D||(Dr(Lo,U),D=!0),Promise.resolve(ee).then(function(ue){g=!0,h=ue,I||se.signal.aborted||(V()||(Z=q,V())?z():(N={},zs(function(){return!I&&x.next&&x.next(ue)})))},function(ue){g=!1,["DatabaseClosedError","AbortError"].includes(ue==null?void 0:ue.name)||I||zs(function(){I||x.error&&x.error(ue)})}))};return setTimeout(z,0),B});return S.hasValue=function(){return g},S.getValue=function(){return h},S}var is=Tr;function eu(u){var h=Fr;try{Fr=!0,Dr.storagemutated.fire(u),Yc(u,!0)}finally{Fr=h}}b(is,r(r({},he),{delete:function(u){return new is(u,{addons:[]}).delete()},exists:function(u){return new is(u,{addons:[]}).open().then(function(h){return h.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(u){try{return h=is.dependencies,g=h.indexedDB,h=h.IDBKeyRange,(Wc(g)?Promise.resolve(g.databases()).then(function(S){return S.map(function(x){return x.name}).filter(function(x){return x!==ln})}):Bc(g,h).toCollection().primaryKeys()).then(u)}catch{return It(new ne.MissingAPI)}var h,g},defineClass:function(){return function(u){c(this,u)}},ignoreTransaction:function(u){return De.trans?ur(De.transless||pn,u):u()},vip:Uc,async:function(u){return function(){try{var h=Vc(u.apply(this,arguments));return h&&typeof h.then=="function"?h:Re.resolve(h)}catch(g){return It(g)}}},spawn:function(u,h,g){try{var S=Vc(u.apply(g,h||[]));return S&&typeof S.then=="function"?S:Re.resolve(S)}catch(x){return It(x)}},currentTransaction:{get:function(){return De.trans||null}},waitFor:function(u,h){return u=Re.resolve(typeof u=="function"?is.ignoreTransaction(u):u).timeout(h||6e4),De.trans?De.trans.waitFor(u):u},Promise:Re,debug:{get:function(){return Ve},set:function(u){Ht(u)}},derive:y,extend:c,props:b,override:T,Events:Io,on:Dr,liveQuery:Dh,extendObservabilitySet:Xa,getByKeyPath:A,setByKeyPath:j,delByKeyPath:function(u,h){typeof h=="string"?j(u,h,void 0):"length"in h&&[].map.call(h,function(g){j(u,g,void 0)})},shallowClone:$,deepClone:W,getObjectDiff:Gc,cmp:ot,asap:P,minKey:-1/0,addons:[],connections:{get:No.toArray},errnames:je,dependencies:Ja,cache:os,semVer:"4.4.2",version:"4.4.2".split(".").map(function(u){return parseInt(u)}).reduce(function(u,h,g){return u+h/Math.pow(10,2*g)})})),is.maxKey=Do(is.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Dr(Lo,function(u){Fr||(u=new CustomEvent(Oc,{detail:u}),Fr=!0,dispatchEvent(u),Fr=!1)}),addEventListener(Oc,function(u){u=u.detail,Fr||eu(u)}));var qs,Fr=!1,Fh=function(){};return typeof BroadcastChannel<"u"&&((Fh=function(){(qs=new BroadcastChannel(Oc)).onmessage=function(u){return u.data&&eu(u.data)}})(),typeof qs.unref=="function"&&qs.unref(),Dr(Lo,function(u){Fr||qs.postMessage(u)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(u){if(!Tr.disableBfCache&&u.persisted){Ve&&console.debug("Dexie: handling persisted pagehide"),qs!=null&&qs.close();for(var h=0,g=No.toArray();h<g.length;h++)g[h].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(u){!Tr.disableBfCache&&u.persisted&&(Ve&&console.debug("Dexie: handling persisted pageshow"),Fh(),eu({all:new gn(-1/0,[[]])}))})),Re.rejectionMapper=function(u,h){return!u||u instanceof me||u instanceof TypeError||u instanceof SyntaxError||!u.name||!Q[u.name]?u:(h=new Q[u.name](h||u.message,u),"stack"in u&&w(h,"stack",{get:function(){return this.inner.stack}}),h)},Ht(Ve),r(Tr,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Tr,Entity:kr,PropModification:jo,RangeSet:gn,add:function(u){return new jo({add:u})},cmp:ot,default:Tr,liveQuery:Dh,mergeRanges:Bo,rangesOverlap:Eh,remove:function(u){return new jo({remove:u})},replacePrefix:function(u,h){return new jo({replacePrefix:[u,h]})}}),{default:Tr}),Tr})}(kl)),kl.exports}var ik=ok();const fd=Os(ik),pp=Symbol.for("Dexie"),Vl=globalThis[pp]||(globalThis[pp]=fd);if(fd.semVer!==Vl.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${fd.semVer} and ${Vl.semVer}`);const{liveQuery:aF,mergeRanges:lF,rangesOverlap:cF,RangeSet:uF,cmp:dF,Entity:fF,PropModification:hF,replacePrefix:pF,add:mF,remove:gF,DexieYProvider:yF}=Vl;class ak extends Vl{constructor(){super("LotusStorage");Ie(this,"scrollAnchors");Ie(this,"toolSessionCollapses");Ie(this,"diffCollapses");Ie(this,"inputStates");Ie(this,"modelOptionsCaches");this.version(1).stores({scrollAnchors:"sessionId, ts",toolSessionCollapses:"id, sessionId, updatedAt",diffCollapses:"sessionId, updatedAt",inputStates:"sessionId, updatedAt",modelOptionsCaches:"provider, timestamp"})}}const lk=new ak,ws=class ws{constructor(){Ie(this,"db",lk)}static getInstance(){return ws.instance||(ws.instance=new ws),ws.instance}async saveScrollAnchor(e,n){try{await this.db.scrollAnchors.put({sessionId:e,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:${e}`,JSON.stringify(n))}catch{}}}async loadScrollAnchor(e){try{const n=await this.db.scrollAnchors.get(e);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:${e}`);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(e){try{await this.db.scrollAnchors.delete(e)}catch{}try{localStorage.removeItem(`chat_scroll_anchor_v2:${e}`)}catch{}}async saveToolSessionCollapse(e,n,r){try{await this.db.toolSessionCollapses.put({id:`${e}:${n}`,sessionId:e,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:${e}:${n}`,JSON.stringify(r))}catch{}}}async loadToolSessionCollapse(e,n){try{const r=await this.db.toolSessionCollapses.get(`${e}:${n}`);return r?{isExpanded:r.isExpanded,expandedTools:r.expandedTools}:null}catch{try{const r=localStorage.getItem(`chat-session-tool-collapse:${e}:${n}`);if(!r)return null;const s=JSON.parse(r);if(s&&typeof s.isExpanded=="boolean")return s}catch{}return null}}async saveDiffCollapse(e,n){try{await this.db.diffCollapses.put({sessionId:e,isExpanded:n.isExpanded,expandedFiles:n.expandedFiles,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveDiffCollapse failed",r);try{localStorage.setItem(`chat-session-diff-collapse:${e}`,JSON.stringify(n))}catch{}}}async loadDiffCollapse(e){try{const n=await this.db.diffCollapses.get(e);return n?{isExpanded:n.isExpanded,expandedFiles:n.expandedFiles}:null}catch{try{const n=localStorage.getItem(`chat-session-diff-collapse:${e}`);if(!n)return null;const r=JSON.parse(n);if(r&&typeof r.isExpanded=="boolean")return r}catch{}return null}}async saveInputReasoning(e,n){try{const r=await this.db.inputStates.get(e);await this.db.inputStates.put({sessionId:e,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[e]=n,localStorage.setItem("chat_input_reasoning_by_session_v1",JSON.stringify(o))}catch{}}}async loadInputReasoning(e){try{const n=await this.db.inputStates.get(e);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)[e]??null:null}catch{return null}}}async saveLastUsedReasoningEffort(e){try{await this.db.inputStates.put({sessionId:"__last_used__",reasoningEffort:e,updatedAt:Date.now()})}catch{try{localStorage.setItem("chat_input_reasoning_last_used_v1",e)}catch{}}}async loadLastUsedReasoningEffort(){try{const e=await this.db.inputStates.get("__last_used__");return(e==null?void 0:e.reasoningEffort)??null}catch{try{return localStorage.getItem("chat_input_reasoning_last_used_v1")}catch{return null}}}async saveModelOptionsCache(e,n,r){try{await this.db.modelOptionsCaches.put({provider:e,options:n,timestamp:r})}catch(s){console.warn("[StorageManager] saveModelOptionsCache failed",s);try{localStorage.setItem(`chat-model-options-cache-v1:${e}`,JSON.stringify({timestamp:r,options:n}))}catch{}}}async loadModelOptionsCache(e){try{const n=await this.db.modelOptionsCaches.get(e);return n?{options:n.options,timestamp:n.timestamp}:null}catch{try{const n=localStorage.getItem(`chat-model-options-cache-v1:${e}`);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(e){try{await Promise.all([this.db.scrollAnchors.delete(e),this.db.diffCollapses.delete(e),this.db.toolSessionCollapses.where("sessionId").equals(e).delete(),this.db.inputStates.delete(e)])}catch{}}async cleanupStaleData(e=30){const n=Date.now()-e*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[e,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:e,toolSessionCollapses:n,diffCollapses:r,inputStates:s,modelOptionsCaches:o}}catch{return{scrollAnchors:0,toolSessionCollapses:0,diffCollapses:0,inputStates:0,modelOptionsCaches:0}}}};Ie(ws,"instance");let Dn=ws;const Eb="chat_input_reasoning_by_session_v1",Pb="chat_input_reasoning_last_used_v1",mp={content:"",referenceText:null,attachments:[],reasoningEffort:"medium"},Sf=t=>t==="low"||t==="medium"||t==="high"||t==="xhigh"||t==="max",Mb=()=>{if(typeof window>"u")return{};try{const t=localStorage.getItem(Eb);if(!t)return{};const e=JSON.parse(t),n={};for(const[r,s]of Object.entries(e||{}))Sf(s)&&(n[r]=s);return n}catch{return{}}},ck=t=>{if(!(typeof window>"u"))try{localStorage.setItem(Eb,JSON.stringify(t))}catch{}},uk=()=>{if(!(typeof window>"u"))try{const t=localStorage.getItem(Pb);return Sf(t)?t:void 0}catch{return}},dk=t=>{if(!(typeof window>"u"))try{localStorage.setItem(Pb,t)}catch{}},Ab=t=>{const e=Mb();return Sf(e[t])?e[t]:uk()},Xo=t=>({...mp,reasoningEffort:Ab(t)??mp.reasoningEffort}),fk=(t,e)=>({inputStates:{},setInputContent:(n,r)=>t(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Xo(n),content:r}}})),setReferenceText:(n,r)=>t(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Xo(n),referenceText:r}}})),setAttachments:(n,r)=>t(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Xo(n),attachments:r}}})),setInputReasoningEffort:(n,r)=>{t(i=>({inputStates:{...i.inputStates,[n]:{...i.inputStates[n]||Xo(n),reasoningEffort:r}}}));const s=Mb();s[n]=r,ck(s),dk(r);const o=Dn.getInstance();o.saveInputReasoning(n,r).catch(()=>{}),o.saveLastUsedReasoningEffort(r).catch(()=>{})},clearInputState:n=>t(r=>{const{[n]:s,...o}=r.inputStates;return{inputStates:o}}),getInputState:n=>e().inputStates[n]||Xo(n)}),wf="lotus_account_feed_cursor_v1",hk=400;let gp=null,fu=null;const pk=()=>{try{const t=localStorage.getItem(wf),e=t?Number.parseInt(t,10):0;return Number.isFinite(e)&&e>0?e:0}catch{return 0}},mk=t=>{try{localStorage.setItem(wf,String(t))}catch{}},gk=()=>{try{localStorage.removeItem(wf)}catch{}},hu=()=>{fu||(fu=setTimeout(()=>{fu=null,G.getState().refreshSessionsIndex()},hk))},yk=new Set(["message_appended","task_list_updated","task_list_item_progress","task_list_completed","complete","cancelled","error","execution_started","need_clarification"]),bk=t=>{const{event:e}=t,n=G.getState(),r=t.session_id??e.session_id;switch(r&&r===n.currentSessionId&&yk.has(e.type)&&n.reconcileOpenSession(r,e.type),r&&r===n.currentSessionId&&e.type==="execution_started"&&!Wn(r)(n)&&n.refreshChatsNow(),e.type){case"session_title_updated":r&&typeof e.title=="string"&&n.applyServerTitle(r,e.title,e.title_version??0),hu();break;case"session_pinned_updated":r&&typeof e.pinned=="boolean"&&n.applyServerPinned(r,e.pinned,e.updated_at??t.ts),hu();break;case"session_created":case"session_deleted":case"session_cleared":case"message_appended":case"task_list_updated":case"task_list_item_progress":case"task_list_completed":case"complete":case"cancelled":case"error":case"execution_started":case"need_clarification":default:hu();break}},vk=()=>{if(gp)return;if(nd()){if(typeof WebSocket>"u")return}else if(typeof EventSource>"u")return;gp=Pn.getInstance().subscribeToAccountStream({onOpen:()=>{G.getState().setAgentAvailability(!0)},onError:()=>{G.getState().setAgentAvailability(!1)},onReset:()=>{gk(),G.getState().refreshSessionsIndex()},onChange:n=>{G.getState().setAgentAvailability(!0),mk(n.seq),bk(n)}},{since:pk()})},Sk="bamboo_proxy_auth",wk=()=>{try{const t=localStorage.getItem(Sk);if(!t)return null;const e=JSON.parse(t);if(!e||typeof e!="object")return null;const n=typeof e.username=="string"?e.username.trim():"",r=typeof e.password=="string"?e.password:"";return n?{username:n,password:r}:null}catch{return null}},Rb={byId:{},runningCount:0},xk=[],Sn=(t,e)=>e?t.executionBySession[e]??null:null,_k=t=>e=>Sn(e,t),Ck=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.phase)??"idle"},Ta=t=>e=>{const n=Sn(e,t);return yf(n==null?void 0:n.phase)},jb=t=>e=>{const n=Sn(e,t);return n?n.phase==="streaming"?!0:n.phase==="running_tools"&&n.stream.hasTokens:!1},kk=t=>e=>{const n=Sn(e,t);return n?n.phase==="waiting_user_answer"||n.interaction.pendingQuestion!==null||n.backend.hasPendingQuestion===!0:!1},Ib=t=>e=>{const n=Sn(e,t);return rC(n==null?void 0:n.phase)},Ob=t=>e=>{const n=Sn(e,t);return sC(n==null?void 0:n.phase)},Wn=t=>e=>{const n=Sn(e,t);return yf(n==null?void 0:n.phase)?(n==null?void 0:n.phase)!=="waiting_user_answer":!1},Tk=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.stream.activeToolCalls)??xk},So=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.interaction.pendingQuestion)??null},hd=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.interaction.pendingChildApproval)??null},Ek=t=>e=>{if(!t)return null;const n=So(t)(e);return n?{sessionId:t,question:n.question,options:n.options,allowCustom:n.allowCustom,toolCallId:n.toolCallId}:null},yc=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.children.byId)??Rb.byId},Pk=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.children)??Rb},Mt=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.generation)??0},Mk=Object.freeze({state:"idle",activeToolCalls:[],runningChildCount:0,hasQuestion:!1,hasError:!1,errorMessage:null,generation:0}),Ak=t=>e=>{var r;const n=Sn(e,t);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}:Mk},Rk=t=>e=>t.map(n=>({sessionId:n??"",entry:Sn(e,n)})),jk="auto",Ik="required",Ok=1e4,$k=15e3,Lk=Pn.getInstance();let yp=null,Yo=null,bp=null,Vo=null;const vp=new WeakMap,G=es()(K0(Y0((t,e,n)=>({...WC(t,e),...KC(t,e),...GC(t,e),...QC(),...ek(t,e),...tk(t),...rk(t,e),...fk(t,e),...SC(t,e),agentAvailability:null,setAgentAvailability:r=>{t({agentAvailability:r})},checkAgentAvailability:async()=>{if(Yo)return Yo;Yo=(async()=>{const r=await Lk.healthCheck();return e().agentAvailability!==r&&t({agentAvailability:r}),r})();try{return await Yo}finally{Yo=null}},startAgentHealthCheck:()=>{yp||(e().checkAgentAvailability(),yp=setInterval(()=>{e().checkAgentAvailability()},Ok))},refreshSessionsIndex:async()=>{if(Vo)return Vo;Vo=(async()=>{try{await e().refreshChats()}catch(r){console.warn("[AppStore] refreshChats failed:",r)}})();try{return await Vo}finally{Vo=null}},startSessionsIndexSync:()=>{bp||(e().refreshSessionsIndex(),bp=setInterval(()=>{e().refreshSessionsIndex()},$k))}})),{name:"AppStore"})),$b=t=>{const e=vp.get(t);if(e)return e;const n=new Map(t.map(r=>[r.id,r]));return vp.set(t,n),n},Cr=t=>e=>t?$b(e.chats).get(t)??null:null,Lb=t=>t.currentSessionId?$b(t.chats).get(t.currentSessionId)??null:null,Dk=t=>{var e;return((e=Lb(t))==null?void 0:e.messages)??[]},Sp=async()=>{const t=wk();if(!t)return!1;try{return await ms.setProxyAuth(t),!0}catch(e){return console.error("Failed to apply stored proxy auth during startup:",e),!1}},Fk=async()=>{try{const t=await dd.getState().loadConfig();if((typeof(t==null?void 0:t.proxy_auth_mode)=="string"?t.proxy_auth_mode:jk)!==Ik)return await Sp(),!1;const n=await dd.getState().loadProxyAuthStatus({force:!0});return n!=null&&n.configured||await Sp()?!1:(G.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(t){return console.error("Failed to evaluate startup proxy auth mode:",t),!1}};let wp=!1,Db=!1,sl=null;const xf=async(t=!1)=>{if(wp&&!t)return;if(wp=!0,vk(),G.getState().startAgentHealthCheck(),G.getState().startSessionsIndexSync(),!(typeof globalThis<"u"&&"__vitest_worker__"in globalThis))try{await yt.getState().loadProviderInstances(),yt.getState().isInstancesLoaded||await yt.getState().loadProviderConfig()}catch(n){console.error("[AppStore] Failed to bootstrap provider state:",n)}await G.getState().loadChats(),Db=!0},_f=async()=>{if(Db)return sl||(sl=(async()=>{try{await Fk()||await G.getState().fetchModels(),await G.getState().loadSystemPrompts()}catch(t){console.error("[AppStore] Deferred bootstrap failed:",t)}})(),sl)},Nk=async(t=!1)=>{await xf(t),_f().catch(e=>{console.error("[AppStore] Deferred bootstrap error:",e)})},bF=Object.freeze(Object.defineProperty({__proto__:null,bootstrapCritical:xf,bootstrapDeferred:_f,initializeStore:Nk,selectActiveToolCalls:Tk,selectCanCancel:Ob,selectChildren:yc,selectChildrenSnapshot:Pk,selectCurrentChat:Lb,selectCurrentMessages:Dk,selectExecutionByPane:Rk,selectExecutionPhase:Ck,selectExecutionState:_k,selectGeneration:Mt,selectIsAwaitingUser:kk,selectIsBusy:Ta,selectIsInputLocked:Ib,selectIsStreaming:jb,selectPendingChildApproval:hd,selectPendingQuestion:So,selectRailModel:Ak,selectRespondMode:Ek,selectSessionById:Cr,selectShouldObserve:Wn,useAppStore:G},Symbol.toStringTag,{value:"Module"})),Fb="copilot_ui_layout_v1",Cf={collapsed:!1,widthPx:260,collapsedWidthPx:72,minWidthPx:180,maxWidthPx:520},oa={widthPx:360,minWidthPx:300,maxWidthPx:560},Nb={v:2,sidebar:Cf,inspector:oa,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:null},splitSizesPx:{}},xp=t=>{const e=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`;return`${t}-${e}`},Hn=t=>t.type==="leaf"?[t.id]:[...Hn(t.children[0]),...Hn(t.children[1])],ma=t=>t.type==="leaf"?[]:[t.id,...ma(t.children[0]),...ma(t.children[1])],zk=(t,e)=>{for(const[n,r]of Object.entries(t))if(r===e)return n;return null},Bk=(t,e)=>{const n={},r=new Set;return t.forEach(s=>{const o=e[s]??null;if(!o||r.has(o)){n[s]=null;return}r.add(o),n[s]=o}),n},pd=(t,e,n,r,s)=>t.type==="leaf"?t.id!==e?t:{type:"split",id:r,layout:n,children:[t,{type:"leaf",id:s}]}:{...t,children:[pd(t.children[0],e,n,r,s),pd(t.children[1],e,n,r,s)]},md=(t,e)=>{if(t.type==="leaf")return t.id===e?{node:null,removed:!0}:{node:t,removed:!1};const n=md(t.children[0],e);if(n.removed)return n.node?{node:{...t,children:[n.node,t.children[1]]},removed:!0}:{node:t.children[1],removed:!0};const r=md(t.children[1],e);return r.removed?r.node?{node:{...t,children:[t.children[0],r.node]},removed:!0}:{node:t.children[0],removed:!0}:{node:t,removed:!1}},Wk=()=>{try{return localStorage.getItem(Fb)}catch(t){return console.warn("[uiLayoutStore] Failed to read persisted layout:",t),null}},Uk=t=>({v:2,sidebar:t.sidebar,inspector:t.inspector,tree:t.tree,activeLeafId:t.activeLeafId,leafSessionIds:t.leafSessionIds,splitSizesPx:t.splitSizesPx}),Hk=t=>{try{localStorage.setItem(Fb,JSON.stringify(t))}catch(e){console.warn("[uiLayoutStore] Failed to persist layout:",e)}},hr=t=>{const e=Uk(t);return Hk(e),e},qk=t=>{var m,w,y,_,M,C,T,k,P,A,j;const e={...Cf,...t.sidebar||{}},n={...oa},r=((m=t.view)==null?void 0:m.mode)??"single",s=((w=t.view)==null?void 0:w.twoDirection)??"horizontal",o={...((y=t.panes)==null?void 0:y.sessionIds)||{}},i=((_=t.panes)==null?void 0:_.activePaneId)??"lt",a={};if(r==="single")return{v:2,sidebar:e,inspector:n,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:o.lt??null},splitSizesPx:{}};if(r==="two"){const $="split-root",F=s,X=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"}]},K=F==="horizontal"?((M=t.split)==null?void 0:M.twoHorizontalPx)||((C=t.split)==null?void 0:C.columnsPx)||null:((T=t.split)==null?void 0:T.twoVerticalPx)||((k=t.split)==null?void 0:k.leftRowsPx)||null;K&&(a[$]=K);const O=Hn(X);return{v:2,sidebar:e,inspector:n,tree:X,activeLeafId:O.includes(i)?i:O[0],leafSessionIds:Object.fromEntries(O.map(W=>[W,o[W]??null])),splitSizesPx:a}}const c="split-root",d="split-left",f="split-right",p={type:"split",id:c,layout:"horizontal",children:[{type:"split",id:d,layout:"vertical",children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},{type:"split",id:f,layout:"vertical",children:[{type:"leaf",id:"rt"},{type:"leaf",id:"rb"}]}]};(P=t.split)!=null&&P.columnsPx&&(a[c]=t.split.columnsPx),(A=t.split)!=null&&A.leftRowsPx&&(a[d]=t.split.leftRowsPx),(j=t.split)!=null&&j.rightRowsPx&&(a[f]=t.split.rightRowsPx);const b=Hn(p);return{v:2,sidebar:e,inspector:n,tree:p,activeLeafId:b.includes(i)?i:b[0],leafSessionIds:Object.fromEntries(b.map($=>[$,o[$]??null])),splitSizesPx:a}},Kk=t=>{if(!t)return null;try{const e=JSON.parse(t);if(!e||typeof e!="object")return null;if(e.v===2){const n={...Cf,...e.sidebar||{}},r=oa.minWidthPx,s=oa.maxWidthPx,o=Number((e.inspector||{}).widthPx),a={widthPx:Math.max(r,Math.min(s,Number.isFinite(o)?o:oa.widthPx)),minWidthPx:r,maxWidthPx:s},c=e.tree||Nb.tree,d=Hn(c),f=ma(c),p={};d.forEach(y=>{var _;p[y]=typeof((_=e.leafSessionIds)==null?void 0:_[y])=="string"?e.leafSessionIds[y]:null});const b={};f.forEach(y=>{var M;const _=(M=e.splitSizesPx)==null?void 0:M[y];Array.isArray(_)&&_.length>=2&&(b[y]=[Number(_[0]),Number(_[1])])});const m=typeof e.activeLeafId=="string"&&d.includes(e.activeLeafId)?e.activeLeafId:d[0],w=Bk(d,p);return{v:2,sidebar:n,inspector:a,tree:c,activeLeafId:m,leafSessionIds:w,splitSizesPx:b}}return e.v===1?qk(e):null}catch{return null}},Xk=()=>Kk(Wk())??Nb,ft=es(t=>({...Xk(),setSidebarCollapsed:e=>{t(n=>n.sidebar.collapsed===e?n:hr({sidebar:{...n.sidebar,collapsed:e},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx}))},setSidebarWidthPx:e=>{t(n=>{const r=Math.max(n.sidebar.minWidthPx,Math.min(n.sidebar.maxWidthPx,e));return n.sidebar.widthPx===r?n:hr({sidebar:{...n.sidebar,widthPx:r},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setInspectorWidthPx:e=>{t(n=>{const r=Math.max(n.inspector.minWidthPx,Math.min(n.inspector.maxWidthPx,e));return n.inspector.widthPx===r?n:hr({sidebar:n.sidebar,inspector:{...n.inspector,widthPx:r},tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setActiveLeafId:e=>{t(n=>n.activeLeafId===e||!Hn(n.tree).includes(e)?n:(Un("setActiveLeafId",{from:n.activeLeafId,to:e}),hr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:e,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})))},setLeafSessionId:(e,n)=>{t(r=>{const s=Hn(r.tree);if(!s.includes(e)||(r.leafSessionIds[e]??null)===n)return r;const o=[];Un("setLeafSessionId",{leafId:e,fromSessionId:r.leafSessionIds[e]??null,toSessionId:n,mode:"unique_session_per_leaf"});const i={...r.leafSessionIds,[e]:n};if(n)for(const a of s)a!==e&&i[a]===n&&(i[a]=null,o.push(a));return o.length>0&&Un("setLeafSessionId dedupe",{sessionId:n,clearedLeafIds:o,assignedLeafId:e}),s.forEach(a=>{a in i||(i[a]=null)}),hr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:i,splitSizesPx:r.splitSizesPx})})},clearSessionFromAllLeaves:e=>{t(n=>{const r={...n.leafSessionIds};let s=!1;for(const[o,i]of Object.entries(r))i===e&&(r[o]=null,s=!0);return s?hr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:r,splitSizesPx:n.splitSizesPx}):n})},splitLeaf:(e,n)=>{t(r=>{const s=Hn(r.tree);if(!s.includes(e)||s.length>=4)return r;const o=xp("split"),i=xp("pane"),a=pd(r.tree,e,n,o,i),c={...r.leafSessionIds,[i]:null};return hr({sidebar:r.sidebar,inspector:r.inspector,tree:a,activeLeafId:i,leafSessionIds:c,splitSizesPx:r.splitSizesPx})})},closeLeaf:e=>{t(n=>{const r=Hn(n.tree);if(!r.includes(e)||r.length<=1)return n;const s=md(n.tree,e);if(!s.removed||!s.node)return n;const o=s.node,i=Hn(o),a=ma(o),c={};i.forEach(p=>{c[p]=n.leafSessionIds[p]??null});const d={};a.forEach(p=>{const b=n.splitSizesPx[p];b&&(d[p]=b)});const f=n.activeLeafId===e?i[0]:i.includes(n.activeLeafId)?n.activeLeafId:i[0];return hr({sidebar:n.sidebar,inspector:n.inspector,tree:o,activeLeafId:f,leafSessionIds:c,splitSizesPx:d})})},setSplitSizesPx:(e,n)=>{t(r=>{const s=r.splitSizesPx[e];return s&&s[0]===n[0]&&s[1]===n[1]?r:hr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:r.leafSessionIds,splitSizesPx:{...r.splitSizesPx,[e]:n}})})},pruneSplitSizes:()=>{t(e=>{const n=new Set(ma(e.tree)),r={};for(const[i,a]of Object.entries(e.splitSizesPx))n.has(i)&&(r[i]=a);const s=Object.keys(e.splitSizesPx),o=Object.keys(r);return s.length===o.length&&s.every(i=>i in r)?e:hr({sidebar:e.sidebar,inspector:e.inspector,tree:e.tree,activeLeafId:e.activeLeafId,leafSessionIds:e.leafSessionIds,splitSizesPx:r})})}})),Yk=async(t,e)=>{var i;const n=G.getState(),r=!n.chats.some(a=>a.id===t);if(e!=null&&e.forceRefreshIndex||r)try{await n.refreshChats()}catch(a){console.warn("[openSession] refreshChats failed:",a)}const s=G.getState().chats.find(a=>a.id===t);if(!s)return;if(e!=null&&e.forceLoadHistory||r||(((i=s.messages)==null?void 0:i.length)||0)===0&&(s.messageCount||0)>0)try{await n.loadChatHistory(t)}catch(a){console.warn("[openSession] loadChatHistory failed:",a)}if(e!=null&&e.forceSubscribe){n.markForceSubscribe(t);return}((e==null?void 0:e.subscribeIfRunning)??!0)&&s.isRunning&&n.markForceSubscribe(t)},Vk=(t,e)=>{const{activeLeafId:n,leafSessionIds:r,setLeafSessionId:s,setActiveLeafId:o}=ft.getState(),i=zk(r,t),a=r[n]??null;Un("openSession (input)",{activeLeafId:n,activeLeafSessionId:a,sessionId:t,existingLeafId:i}),i?i===n?Un("openSession (decision)",{action:"noop_already_active",leafId:n,sessionId:t}):(o(i),Un("openSession (decision)",{action:"focus_existing_leaf",leafId:i,sessionId:t})):(s(n,t),Un("openSession (decision)",{action:"assign_to_active_leaf",leafId:n,sessionId:t})),G.getState().selectSession(t),Yk(t,e)},zb=t=>t==="child"?"child":"root",Gk=t=>({id:t.id,title:t.title,kind:zb(t.kind),pinned:!!t.pinned,parentSessionId:t.parentSessionId||null,rootSessionId:t.rootSessionId||null,createdByScheduleId:t.createdByScheduleId||null,updatedAt:t.updatedAt||null,lastRunStatus:t.lastRunStatus||null,lastRunError:t.lastRunError||null,createdAt:t.createdAt,config:{systemPromptId:t.config.systemPromptId,workspacePath:t.config.workspacePath||null}}),Jk=(t,e)=>t.id===e.id&&t.title===e.title&&t.kind===zb(e.kind)&&t.pinned===!!e.pinned&&t.parentSessionId===(e.parentSessionId||null)&&t.rootSessionId===(e.rootSessionId||null)&&t.createdByScheduleId===(e.createdByScheduleId||null)&&t.updatedAt===(e.updatedAt||null)&&t.lastRunStatus===(e.lastRunStatus||null)&&t.lastRunError===(e.lastRunError||null)&&t.createdAt===e.createdAt&&t.config.systemPromptId===e.config.systemPromptId&&t.config.workspacePath===(e.config.workspacePath||null),Qk=(()=>{let t=null,e=[],n=new Map;return r=>{if(r===t)return e;const s=r.map(i=>{const a=n.get(i.id);return a&&Jk(a,i)?a:Gk(i)}),o=s.length===e.length&&s.every((i,a)=>i===e[a]);return t=r,n=new Map(s.map(i=>[i.id,i])),o?e:(e=s,s)}})(),Zk=t=>[t.title,t.id,t.kind||"root",t.config.workspacePath||"",t.config.systemPromptId||"",t.updatedAt||"",t.createdByScheduleId||"",t.lastRunStatus||"",t.lastRunError||""].join(" ").toLowerCase(),eT=t=>t.messages.filter(e=>e.role==="user"&&"content"in e).slice(0,3).map(e=>"content"in e?e.content:"").join(" ").toLowerCase(),pu=(t,e)=>{if(!e)return!0;const n=e.split(/\s+/).filter(Boolean),r=Zk(t);if(n.every(a=>r.includes(a)))return!0;const s=G.getState().chats.find(a=>a.id===t.id);if(!s)return!1;const o=eT(s),i=`${r} ${o}`;return n.every(a=>i.includes(a))},mu=(t,e,n)=>{switch(e){case"pinned":return!!t.pinned;case"running":return n(t.id);case"child":return t.kind==="child";case"all":default:return!0}},tT=()=>{const{t}=Xe(),{message:e}=En.useApp(),{chats:n,currentSessionId:r,deleteSession:s,deleteSessions:o,pinSession:i,unpinSession:a,updateSession:c,addChat:d,refreshChats:f,lastSelectedPromptId:p,systemPrompts:b}=G(ta(be=>({chats:Qk(be.chats),currentSessionId:be.currentSessionId,deleteSession:be.deleteSession,deleteSessions:be.deleteSessions,pinSession:be.pinSession,unpinSession:be.unpinSession,updateSession:be.updateSession,addChat:be.addChat,refreshChats:be.refreshChats,lastSelectedPromptId:be.lastSelectedPromptId,systemPrompts:be.systemPrompts}))),m=v.useCallback(be=>Ta(be)(G.getState()),[]),{sidebarCollapsed:w,setSidebarCollapsed:y,clearSessionFromAllLeaves:_}=ft(ta(be=>({sidebarCollapsed:be.sidebar.collapsed,setSidebarCollapsed:be.setSidebarCollapsed,clearSessionFromAllLeaves:be.clearSessionFromAllLeaves}))),M=v.useCallback(async(be,Be)=>{var Fn,qt;const Le=b.find(Lt=>Lt.id===p),Ge=(Le==null?void 0:Le.id)||(b.length>0?((Fn=b.find(Lt=>Lt.id==="general_assistant"))==null?void 0:Fn.id)||b[0].id:""),Vt={title:be||t("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:Ge,baseSystemPrompt:(Le==null?void 0:Le.content)||(b.length>0?((qt=b.find(Lt=>Lt.id==="general_assistant"))==null?void 0:qt.content)||b[0].content:""),lastUsedEnhancedPrompt:null},...Be},pn=await d(Vt),{activeLeafId:De}=ft.getState();ft.getState().setLeafSessionId(De,pn),ft.getState().setActiveLeafId(De)},[d,p,b,t]),[C,T]=v.useState(!1),[k,P]=v.useState(new Set(["Today"])),[A,j]=v.useState(""),[$,F]=v.useState("all"),[X,K]=v.useState({}),O=G(ta(be=>{const Be=be.currentSessionId;if(!Be)return null;const Le=be.chats.find(Ge=>Ge.id===Be);return Le?{id:Le.id,kind:Le.kind,parentSessionId:Le.parentSessionId||null,rootSessionId:Le.rootSessionId||null,pinned:!!Le.pinned,createdAt:Le.createdAt,createdByScheduleId:Le.createdByScheduleId||null}:null})),W=v.useMemo(()=>O?O.pinned?"Pinned":O.createdByScheduleId?"Scheduled":new Date(O.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):null,[O]),ae=v.useMemo(()=>{const be=new Set(k);return W&&be.add(W),Array.from(be)},[W,k]),Y=be=>{const Be=new Set(Array.isArray(be)?be:[be]);P(Le=>{if(Le.size!==Be.size)return Be;for(const Ge of Be)if(!Le.has(Ge))return Be;return Le})},ce=A.trim().toLowerCase(),L=ce.length>0||$!=="all",oe=v.useMemo(()=>[],[]),Se=v.useMemo(()=>({}),[]),J=v.useMemo(()=>({}),[]),te=v.useMemo(()=>[],[]),he=v.useMemo(()=>new Set,[]),de=v.useMemo(()=>w?oe:n.filter(be=>be.kind!=="child"),[n,w,oe]),me=v.useMemo(()=>{if(w)return Se;const be={};for(const Be of n){if(Be.kind!=="child")continue;const Le=Be.parentSessionId||Be.rootSessionId;Le&&(be[Le]||(be[Le]=[]),be[Le].push(Be))}return Object.keys(be).forEach(Be=>{be[Be].sort((Le,Ge)=>Le.pinned!==Ge.pinned?Le.pinned?-1:1:(Ge.createdAt??0)-(Le.createdAt??0))}),be},[n,w,Se]),ge=v.useMemo(()=>L?de.filter(be=>pu(be,ce)&&mu(be,$,m)?!0:(me[be.id]||[]).some(Ge=>pu(Ge,ce)&&mu(Ge,$,m))):de,[me,L,m,ce,de,$]),le=v.useMemo(()=>{if(!L)return me;const be={};for(const Be of ge){const Le=me[Be.id]||[];be[Be.id]=Le.filter(Ge=>pu(Ge,ce)&&mu(Ge,$,m))}return be},[me,ge,L,m,ce,$]),ke=v.useMemo(()=>w?J:y_(ge),[ge,w,J]),je=v.useMemo(()=>w?te:b_(ke),[ke,w,te]),fe=v.useCallback(be=>{i(be),P(Be=>{if(Be.has("Pinned"))return Be;const Le=new Set(Be);return Le.add("Pinned"),Le})},[i]),ne=v.useCallback(be=>{const Be=n.find(Ge=>Ge.id===be),Le=Be?S_({...Be}):null;a(be),Le&&P(Ge=>{if(Ge.has(Le))return Ge;const Vt=new Set(Ge);return Vt.add(Le),Vt})},[n,a]),Q=be=>{xl.confirm({title:t("chat.sidebar.delete.title"),content:t("chat.sidebar.delete.confirm"),okText:t("common.delete"),okType:"danger",cancelText:t("common.cancel"),onOk:()=>{_(be),s(be)}})},ie=sa(be=>be.open),ye=()=>{ie("chat")},$e=v.useCallback(be=>{j(be)},[]),qe=v.useCallback(be=>{F(be)},[]),Ue=v.useCallback(()=>{j(""),F("all")},[]),rt=(be,Be)=>{c(be,{title:Be})},ht=v.useCallback(async be=>{try{await Pn.getInstance().regenerateSessionTitle(be)}catch(Be){console.error("Failed to regenerate session title:",Be)}},[]),Ct=v.useCallback(async be=>{var Le;if(((Le=X[be])==null?void 0:Le.status)==="loading")return;K(Ge=>({...Ge,[be]:{status:"loading"}}));const Be=e.loading(t("chat.actions.runProjectDreamRunning"),0);try{const Ge=await Pn.getInstance().runProjectDream(be);Be(),Ge.dream_generated?e.success(t("chat.actions.runProjectDreamSuccess")):e.info(Ge.message||t("chat.actions.runProjectDreamNoChange"));try{await f()}catch(Vt){console.warn("Failed to refresh chats after project dream run:",Vt)}}catch(Ge){Be();const Vt=Ge instanceof Error&&Ge.message?Ge.message:t("chat.actions.runProjectDreamFailed");e.error(Vt),console.error("Failed to run project dream:",Ge)}finally{K(Ge=>({...Ge,[be]:{status:"idle"}}))}},[e,X,f,t]),vt=be=>{const Be=v_(ke,be),Le=Ky(ke,be);xl.confirm({title:t("chat.sidebar.deleteByDate.title",{date:be}),content:t("chat.sidebar.deleteByDate.confirm",{count:Le,date:be}),okText:t("common.delete"),okType:"danger",cancelText:t("common.cancel"),onOk:()=>{Be.forEach(Ge=>_(Ge)),o(Be)}})},Ve=()=>{T(!0)},Ht=()=>{T(!1)},ct=async be=>{try{await M(t("chat.sidebar.newSessionWithPrompt",{prompt:be.name}),{config:{systemPromptId:be.id,baseSystemPrompt:be.content,lastUsedEnhancedPrompt:null}}),T(!1)}catch(Be){console.error("Failed to create chat:",Be),xl.error({title:t("chat.sidebar.createFailedTitle"),content:Be instanceof Error?Be.message:t("chat.sidebar.createFailedUnknown")})}},pt=v.useCallback(be=>Vk(be),[]),[on,Nt]=v.useState(new Set),Tt=v.useMemo(()=>{if(w)return he;const be=new Set;for(const Be of Object.values(me))for(const Le of Be)if(Le.pinned){const Ge=Le.parentSessionId||Le.rootSessionId;Ge&&be.add(Ge)}return be},[me,w,he]),xn=v.useMemo(()=>{var Be;if(w)return he;const be=new Set(on);if((O==null?void 0:O.kind)==="child"){const Le=O.parentSessionId||O.rootSessionId;Le&&be.add(Le)}for(const Le of Tt)be.add(Le);if(L)for(const Le of ge)(((Be=le[Le.id])==null?void 0:Be.length)??0)>0&&be.add(Le.id);return be},[le,on,ge,L,Tt,O,w,he]),an=v.useCallback(be=>{Nt(Be=>{const Le=new Set(Be);return Le.has(be)?Le.delete(be):Le.add(be),Le})},[]);return{chats:ge,childrenByRoot:le,expandedRootIds:xn,toggleRootExpanded:an,collapsed:w,currentSessionId:r,expandedKeys:ae,groupedChatsByDate:ke,hasActiveFilters:L,handleCollapseChange:Y,handleDelete:Q,handleDeleteByDate:vt,handleEditTitle:rt,handleGenerateTitle:ht,handleNewChat:Ve,handleNewChatSelectorClose:Ht,handleOpenSettings:ye,handleRunProjectDream:Ct,handleSearchQueryChange:$e,handleStatusFilterChange:qe,handleClearFilters:Ue,handleSystemPromptSelect:ct,isNewChatSelectorOpen:C,pinSession:fe,projectDreamState:X,searchQuery:A,selectSession:pt,setCollapsed:y,sortedDateKeys:je,statusFilter:$,systemPrompts:b,titleGenerationState:{},unpinSession:ne}},nT=v.lazy(()=>Ft(()=>import("./SystemPromptSelector-CphUzY3v.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),{useBreakpoint:rT}=pc,{useToken:sT}=lt,_p=()=>{const{token:t}=sT(),{t:e}=Xe(),n=rT(),{childrenByRoot:r,expandedRootIds:s,toggleRootExpanded:o,collapsed:i,currentSessionId:a,expandedKeys:c,groupedChatsByDate:d,handleCollapseChange:f,handleDelete:p,handleDeleteByDate:b,handleEditTitle:m,handleGenerateTitle:w,handleNewChat:y,handleNewChatSelectorClose:_,handleOpenSettings:M,handleRunProjectDream:C,handleSearchQueryChange:T,handleStatusFilterChange:k,handleClearFilters:P,handleSystemPromptSelect:A,hasActiveFilters:j,isNewChatSelectorOpen:$,pinSession:F,projectDreamState:X,searchQuery:K,selectSession:O,setCollapsed:W,sortedDateKeys:ae,statusFilter:Y,systemPrompts:ce,titleGenerationState:L,unpinSession:oe}=tT(),{xs:Se,sm:J}=n;return v.useEffect(()=>{typeof Se!="boolean"||typeof J!="boolean"||Se===!1&&J===!1&&W(!0)},[J,Se,W]),i?null:l.jsxs("nav",{"data-tour-id":"sidebar","aria-label":e("chat.sidebar.title","Chat sidebar"),style:{width:"100%",height:"100%",background:"transparent",borderRight:`1px solid ${t.colorBorderSecondary}`,position:"relative",overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:[l.jsx(Ce,{justify:"flex-end",style:{flexShrink:0,padding:"8px 10px 0 10px",minHeight:34},children:l.jsx(Ae,{type:"text",icon:l.jsx(Ix,{}),onClick:()=>W(!0),size:n.xs?"small":"middle",className:"lotus-toolbar-icon","aria-label":e("chat.sidebar.collapse","Collapse sidebar")})}),l.jsxs(Ce,{vertical:!0,gap:6,style:{flexShrink:0,padding:"6px 10px 6px 10px"},children:[l.jsx(Ls,{allowClear:!0,value:K,onChange:te=>T(te.target.value),prefix:l.jsx(Zu,{style:{color:t.colorTextTertiary}}),placeholder:e("chat.sidebar.searchPlaceholder","Search sessions"),"aria-label":e("chat.sidebar.searchPlaceholder","Search sessions"),size:"small",style:{borderRadius:t.borderRadiusLG}}),l.jsx(Ox,{block:!0,size:n.xs?"middle":"small",value:Y,onChange:te=>k(te),options:[{label:e("chat.sidebar.filters.all","All"),value:"all"},{label:e("chat.sidebar.filters.pinned","Pinned"),value:"pinned"},{label:e("chat.sidebar.filters.running","Running"),value:"running"},{label:e("chat.sidebar.filters.child","Child"),value:"child"}]})]}),l.jsx(Ce,{vertical:!0,role:"list","aria-label":e("chat.sidebar.chatList","Chat list"),style:{flex:1,minHeight:0,overflowY:"auto",padding:"0 10px"},children:l.jsx(w_,{groupedChatsByDate:d,childrenByRoot:r,expandedRootIds:s,onToggleRootExpanded:o,sortedDateKeys:ae,expandedKeys:c,onCollapseChange:f,currentSessionId:a,onSelectChat:O,onDeleteChat:p,onDeleteByDate:b,onPinChat:F,onUnpinChat:oe,onEditTitle:m,onGenerateTitle:w,onRunProjectDream:C,titleGenerationState:L,projectDreamState:X,token:t,hasActiveFilters:j,onClearFilters:P})}),l.jsx(A_,{collapsed:!1,onNewChat:y,onOpenSettings:M,token:t}),l.jsx(v.Suspense,{fallback:null,children:l.jsx(nT,{open:$,onClose:_,onSelect:A,prompts:ce,title:e("chat.prompt.newSessionSelectorTitle"),showCancelButton:!0})})]})},{Text:Cp,Paragraph:oT}=ut;class ga extends v.Component{constructor(n){super(n);Ie(this,"handleReset",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){var o,i;const s=this.props.name??"ErrorBoundary";console.error(`[${s}] Uncaught error:`,n,r),(i=(o=this.props).onError)==null||i.call(o,n,r)}render(){if(!this.state.hasError)return this.props.children;const{fallback:n}=this.props,r=this.state.error;return typeof n=="function"?n(r,this.handleReset):n!==void 0?n:l.jsx(iT,{error:r,onReset:this.handleReset})}}const iT=({error:t,onReset:e})=>{const{token:n}=lt.useToken(),[r,s]=st.useState(!1),{t:o}=Xe();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(Oy,{style:{fontSize:36,color:n.colorWarning}}),l.jsx(Cp,{strong:!0,style:{fontSize:16},children:o("app.errorBoundary.title")}),l.jsx(Cp,{type:"secondary",style:{maxWidth:420},children:o("app.errorBoundary.description")}),l.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[l.jsx(Ae,{type:"primary",icon:l.jsx(rf,{}),onClick:e,"aria-label":o("app.errorBoundary.tryAgain"),children:o("app.errorBoundary.tryAgain")}),l.jsx(Ae,{type:"text",size:"small",onClick:()=>s(i=>!i),"aria-expanded":r,"aria-label":o("app.errorBoundary.showDetails"),children:o(r?"app.errorBoundary.hideDetails":"app.errorBoundary.showDetails")})]}),r&&l.jsxs(oT,{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:[t.message,t.stack?`
10
+ If requirements are unclear, ask focused clarifying questions before proceeding.`,isDefault:!0}),Xl=()=>[PC()];function gb(t){if(!t)return;const e={systemTokens:t.system_tokens,summaryTokens:t.summary_tokens,windowTokens:t.window_tokens,totalTokens:t.total_tokens,budgetLimit:t.budget_limit};return typeof t.max_context_tokens=="number"&&t.max_context_tokens>0&&(e.maxContextTokens=t.max_context_tokens),typeof t.prompt_cached_tool_outputs=="number"&&(e.promptCachedToolOutputs=t.prompt_cached_tool_outputs),typeof t.prompt_cached_tool_tokens_saved=="number"&&(e.promptCachedToolTokensSaved=t.prompt_cached_tool_tokens_saved),typeof t.thinking_tokens=="number"&&(e.thinkingTokens=t.thinking_tokens),typeof t.cache_read_input_tokens=="number"&&(e.cacheReadInputTokens=t.cache_read_input_tokens),e}function yb(t){return typeof t.maxContextTokens=="number"&&t.maxContextTokens>0?t.maxContextTokens:t.budgetLimit>0?t.budgetLimit:0}function bb(t){const e=yb(t);return e===0?0:t.totalTokens/e*100}function MC(t){const e=bb(t);return e>=90?"error":e>=70?"warning":e>=50?"success":"default"}function zr(t){return t.toLocaleString()}function au(t){const e=Math.abs(t),n=r=>r.replace(/\.0$/,"");if(e>=1e9){const r=e>=1e10?0:1;return`${n((t/1e9).toFixed(r))}B`}if(e>=1e6){const r=e>=1e7?0:1;return`${n((t/1e6).toFixed(r))}M`}if(e>=1e3){const r=e>=1e4?0:1;return`${n((t/1e3).toFixed(r))}K`}return`${t}`}const fo=Xl()[0],AC=(fo==null?void 0:fo.id)||"general_assistant";var Cy;const vb=((Cy=fo==null?void 0:fo.content)==null?void 0:Cy.trim())||"",lu="tool",ip=()=>{try{const t=globalThis.crypto;if(t!=null&&t.randomUUID)return t.randomUUID()}catch{}return`id_${Date.now()}_${Math.random().toString(16).slice(2)}`},RC=()=>{let t=Jr().trim().replace(/\/+$/,"");return t.endsWith("/v1")&&(t=t.slice(0,-3)),`${t}/api/v1`},Sb=t=>{const e=t.trim();if(!e.startsWith("bamboo-attachment://"))return null;const n=e.slice(20),[r,s]=n.split("/",2);return!r||!s?null:{sessionId:r,attachmentId:s}},ap=t=>{const e=Sb(t);return e?`${RC()}/sessions/${encodeURIComponent(e.sessionId)}/attachments/${encodeURIComponent(e.attachmentId)}`:t},ps=t=>{if(typeof t!="string")return;const e=t.trim();if(e&&e.toLowerCase()!=="unknown")return e},jC=t=>{const e=(t||"").trim();if(!e)return;const n=e.match(/tool policy blocked ['"`]([^'"`]+)['"`]/i);if(n!=null&&n[1])return ps(n[1]);try{const r=JSON.parse(e);if(typeof(r==null?void 0:r.tool_name)=="string")return ps(r.tool_name)}catch{}},ld=t=>{var r,s;const e=Number.isFinite(Date.parse(t.created_at))?Date.parse(t.created_at):Date.now(),n=gb(t.token_usage);return{id:t.id,kind:t.kind,parentSessionId:t.parent_session_id??null,rootSessionId:t.root_session_id,spawnDepth:t.spawn_depth,createdByScheduleId:t.created_by_schedule_id??null,isRunning:t.is_running,updatedAt:t.updated_at,lastActivityAt:t.last_activity_at,messageCount:t.message_count,hasAttachments:t.has_attachments,lastRunStatus:t.last_run_status,lastRunError:t.last_run_error,planMode:t.plan_mode??null,subagentType:t.subagent_type??null,lifecycle:t.lifecycle??null,residentName:t.resident_name??null,placement:t.placement??null,title:t.title||Et.t("chat.session.defaultTitle"),titleVersion:t.title_version??0,createdAt:e,pinned:t.pinned,messages:[],config:{systemPromptId:AC,baseSystemPrompt:vb,lastUsedEnhancedPrompt:null,model:t.model,model_ref:t.model_ref??null,reasoningEffort:t.reasoning_effort??null,bypassPermissions:t.bypass_permissions??!1,goldConfig:t.gold_config??null,tokenUsage:n,truncationOccurred:(r=t.token_usage)==null?void 0:r.truncation_occurred,segmentsRemoved:(s=t.token_usage)==null?void 0:s.segments_removed,compressionEvents:[]}}},IC=(t,e)=>{var o,i,a,c,d,f;const n=new Map,r=new Map;for(const p of e)p.role==="tool"&&p.tool_call_id&&p.metadata&&r.set(p.tool_call_id,p.metadata);const s=[];for(const p of e){const y=p.created_at||new Date().toISOString();if(p.role==="system"){const m={role:"system",id:p.id,createdAt:y,content:p.content||"",isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(m);continue}if(p.role==="user"){const m=new Map;for(const _ of p.image_ocr||[]){const M=(o=_.image_url)==null?void 0:o.trim();if(!M)continue;const T=(_.lines||[]).map(k=>((k==null?void 0:k.text)||"").trim()).filter(Boolean);m.set(M,{ocrText:T.length?T.join(`
11
+ `):void 0,ocrError:_.error?String(_.error):void 0})}const w=[];for(const _ of p.content_parts||[]){if(_.type!=="image_url")continue;const M=((i=_.image_url)==null?void 0:i.url)||"";if(!M)continue;const C=ap(M),T=Sb(M),k=m.get(M.trim());w.push({id:ip(),url:C,ocrText:k==null?void 0:k.ocrText,ocrError:k==null?void 0:k.ocrError,name:T?`attachment-${T.attachmentId}`:"image",size:0,type:"image/*"})}const b={role:"user",id:p.id,createdAt:y,content:p.content||"",images:w.length?w:void 0,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(b);continue}if(p.role==="assistant"){const m=p.tool_calls||[];if(m.length>0){const _=(p.content||"").trim(),M=typeof p.reasoning=="string"&&p.reasoning.trim().length>0;if(_||M){const P=M?{reasoning:p.reasoning,backendMessageId:p.id}:{backendMessageId:p.id},A={role:"assistant",type:"text",id:`${p.id}_text`,createdAt:y,content:p.content||"",metadata:P,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(A)}for(const P of m)P.id&&n.set(P.id,ps((a=P.function)==null?void 0:a.name)||lu);const C=(c=m[0])==null?void 0:c.id,T=C?r.get(C):void 0,k={role:"assistant",type:"tool_call",id:p.id,createdAt:y,toolCalls:m.map(P=>{var A;return{toolCallId:P.id,toolName:ps((A=P.function)==null?void 0:A.name)||lu,parameters:(()=>{var j,$;try{return JSON.parse(((j=P.function)==null?void 0:j.arguments)||"{}")}catch{return{raw:(($=P.function)==null?void 0:$.arguments)||""}}})(),streamingOutput:""}}),...T?{metadata:T}:{},isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(k);continue}const w=typeof p.reasoning=="string"&&p.reasoning.trim().length>0?{reasoning:p.reasoning}:{},b={role:"assistant",type:"text",id:p.id,createdAt:y,content:p.content||"",metadata:w,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(b);continue}if(p.role==="tool"){const m=((d=p.tool_call_id)==null?void 0:d.trim())||`orphan-tool-call:${p.id}`,w=ps(n.get(m))||ps(p.tool_name)||ps(p.name)||jC(p.content)||lu,b=p.tool_success===!1||p.tool_success==null&&typeof p.content=="string"&&p.content.trimStart().startsWith("Error:"),_=[];for(const C of p.content_parts||[]){if(C.type!=="image_url")continue;const T=((f=C.image_url)==null?void 0:f.url)||"";T&&_.push({id:ip(),url:ap(T),name:"screenshot",size:0,type:"image/*"})}const M={role:"assistant",type:"tool_result",id:p.id,createdAt:y,toolName:w,toolCallId:m,result:{tool_name:w,result:p.content||"",display_preference:"Default"},isError:b,images:_.length?_:void 0,isCompressed:!!p.compressed,compressedEventId:p.compressed_by_event_id};s.push(M);continue}}return s},lp=t=>{if(typeof t!="string"||!t.trim())return null;const e=Date.parse(t);return Number.isFinite(e)?e:null},OC=(t,e)=>t===e?!0:!t||!e?t==null&&e==null:t.provider===e.provider&&t.model===e.model,$C=(t,e)=>t===e?!0:!t||!e?t==null&&e==null:t.systemTokens===e.systemTokens&&t.summaryTokens===e.summaryTokens&&t.windowTokens===e.windowTokens&&t.totalTokens===e.totalTokens&&(t.maxContextTokens??0)===(e.maxContextTokens??0)&&t.budgetLimit===e.budgetLimit&&(t.promptCachedToolOutputs??0)===(e.promptCachedToolOutputs??0)&&(t.promptCachedToolTokensSaved??0)===(e.promptCachedToolTokensSaved??0)&&(t.thinkingTokens??0)===(e.thinkingTokens??0)&&(t.cacheReadInputTokens??0)===(e.cacheReadInputTokens??0),LC=(t,e)=>{if(t===e)return!0;const n=t??[],r=e??[];return n.length!==r.length?!1:n.every((s,o)=>{const i=r[o];return!!i&&s.id===i.id&&s.createdAt===i.createdAt&&s.messagesCompressed===i.messagesCompressed&&s.segmentsRemoved===i.segmentsRemoved})},DC=(t,e)=>t===e?!0:!t||!e?t==null&&e==null:t.messageCount===e.messageCount&&t.lastMessageId===e.lastMessageId&&t.hasPendingQuestion===e.hasPendingQuestion&&t.pendingQuestionToolCallId===e.pendingQuestionToolCallId,FC=(t,e)=>t===e?!0:t.systemPromptId===e.systemPromptId&&t.baseSystemPrompt===e.baseSystemPrompt&&t.lastUsedEnhancedPrompt===e.lastUsedEnhancedPrompt&&t.agentRole===e.agentRole&&t.workspacePath===e.workspacePath&&t.model===e.model&&OC(t.model_ref,e.model_ref)&&t.reasoningEffort===e.reasoningEffort&&JSON.stringify(t.goldConfig??null)===JSON.stringify(e.goldConfig??null)&&JSON.stringify(t.goalState??null)===JSON.stringify(e.goalState??null)&&$C(t.tokenUsage,e.tokenUsage)&&t.truncationOccurred===e.truncationOccurred&&t.segmentsRemoved===e.segmentsRemoved&&LC(t.compressionEvents,e.compressionEvents)&&DC(t.syncCursor,e.syncCursor),NC=(t,e)=>{var n,r,s,o;return t.id===e.id&&t.kind===e.kind&&t.parentSessionId===e.parentSessionId&&t.rootSessionId===e.rootSessionId&&t.spawnDepth===e.spawnDepth&&t.createdByScheduleId===e.createdByScheduleId&&t.isRunning===e.isRunning&&t.updatedAt===e.updatedAt&&t.lastActivityAt===e.lastActivityAt&&t.messageCount===e.messageCount&&t.hasAttachments===e.hasAttachments&&t.lastRunStatus===e.lastRunStatus&&t.lastRunError===e.lastRunError&&t.planMode===e.planMode&&t.subagentType===e.subagentType&&((n=t.placement)==null?void 0:n.kind)===((r=e.placement)==null?void 0:r.kind)&&((s=t.placement)==null?void 0:s.host)===((o=e.placement)==null?void 0:o.host)&&t.title===e.title&&t.titleVersion===e.titleVersion&&t.createdAt===e.createdAt&&t.pinned===e.pinned&&t.messages===e.messages&&FC(t.config,e.config)},zC=Pn.getInstance(),BC=750,gt={inFlight:null,forcedPromise:null,timer:null,trailingPromise:null,trailingResolve:null,trailingReject:null};function wb(){const t={resolve:gt.trailingResolve,reject:gt.trailingReject};return gt.trailingPromise=null,gt.trailingResolve=null,gt.trailingReject=null,t}function cp(t,e){!e.resolve&&!e.reject||t.then(()=>{var n;return(n=e.resolve)==null?void 0:n.call(e)},n=>{var r;return(r=e.reject)==null?void 0:r.call(e,n)})}function WC(){return gt.timer&&(clearTimeout(gt.timer),gt.timer=null),wb()}function UC(t,e){const n=t.map(ld);e(r=>{let s=r.executionBySession;for(const c of t)s=Kl(s,{type:"applySessionSummary",sessionId:c.id,summary:c});const o=new Map(r.chats.map(c=>[c.id,c]));let i=r.chats.length!==n.length;const a=n.map((c,d)=>{var X,K,O,W;const f=o.get(c.id);if(!f)return i=!0,c;const p=lp(f.updatedAt),y=lp(c.updatedAt),m=p!==null&&y!==null&&p>y,w=f.config||{},b=c.config||{},_=Object.prototype.hasOwnProperty.call(w,"model"),M=Object.prototype.hasOwnProperty.call(w,"model_ref"),C=Object.prototype.hasOwnProperty.call(w,"reasoningEffort"),T=Object.prototype.hasOwnProperty.call(w,"goldConfig"),k=Math.max(f.messageCount??0,c.messageCount??0),P=c.titleVersion??0,A=f.titleVersion??0,j=P>A?{title:c.title,titleVersion:P}:{title:f.title,titleVersion:A},$={...w,...b,model:m&&_?w.model:b.model,model_ref:m&&M?w.model_ref:b.model_ref,reasoningEffort:m&&C?w.reasoningEffort:b.reasoningEffort,goldConfig:m&&T?w.goldConfig:b.goldConfig,bypassPermissions:Object.prototype.hasOwnProperty.call(w,"bypassPermissions")?w.bypassPermissions:b.bypassPermissions,compressionEvents:((X=f.config)==null?void 0:X.compressionEvents)??((K=c.config)==null?void 0:K.compressionEvents),syncCursor:((O=f.config)==null?void 0:O.syncCursor)??((W=c.config)==null?void 0:W.syncCursor)},F={...c,pinned:m?f.pinned:c.pinned,updatedAt:m?f.updatedAt:c.updatedAt,messages:f.messages,messageCount:k,planMode:c.planMode,config:$,...j};return NC(f,F)?(r.chats[d]!==f&&(i=!0),f):(i=!0,F)});return!i&&s===r.executionBySession?r:{...r,chats:i?a:r.chats,executionBySession:s}})}async function Cl(t){return gt.inFlight?(pe("[ChatSlice]","refreshChats.inFlight.reuse",{}),gt.inFlight):(pe("[ChatSlice]","refreshChats.start",{}),gt.inFlight=(async()=>{try{const e=await zC.listSessions();pe("[ChatSlice]","refreshChats.response",{count:e.sessions.length,runningCount:e.sessions.filter(n=>n.is_running).length}),UC(e.sessions,t)}catch(e){throw console.error("[ChatSlice] Failed to refresh sessions:",e),pe("[ChatSlice]","refreshChats.error",{error:e}),e}})().finally(()=>{pe("[ChatSlice]","refreshChats.finally",{}),gt.inFlight=null}),gt.inFlight)}function HC(t){return gt.forcedPromise?(pe("[ChatSlice]","refreshChatsNow.forced.reuse",{}),gt.forcedPromise):(pe("[ChatSlice]","refreshChatsNow.forced.start",{hasInflight:!!gt.inFlight}),gt.forcedPromise=(async()=>{gt.inFlight&&await gt.inFlight,await Cl(t)})().finally(()=>{pe("[ChatSlice]","refreshChatsNow.forced.finally",{}),gt.forcedPromise=null}),gt.forcedPromise)}const fr=Pn.getInstance(),cu=new Map,qC=300,KC=(t,e)=>({chats:[],currentSessionId:null,latestActiveSessionId:null,addChat:async n=>{var y,m,w,b,_,M,C,T,k,P,A,j,$,F;const r=(n.title||Et.t("chat.sidebar.newSession")).trim(),s=((m=(y=n.config)==null?void 0:y.baseSystemPrompt)==null?void 0:m.trim())||"",o=(w=yt.getState().getActiveModel())==null?void 0:w.trim(),i=((_=(b=n.config)==null?void 0:b.model)==null?void 0:_.trim())||o||void 0;let a,c;if(yt.getState().isProviderModelRefEnabled()){const X=(M=n.config)==null?void 0:M.model_ref;if((C=X==null?void 0:X.provider)!=null&&C.trim()&&((T=X==null?void 0:X.model)!=null&&T.trim()))a=X,c=X.provider;else{const K=(k=yt.getState().providerConfig.defaults)==null?void 0:k.chat;if((P=K==null?void 0:K.provider)!=null&&P.trim()&&((A=K==null?void 0:K.model)!=null&&A.trim()))a=K,c=K.provider;else{const O=yt.getState().getActiveModel();O&&(a={provider:yt.getState().currentProvider,model:O},c=yt.getState().currentProvider)}}}const d=((j=n.config)==null?void 0:j.reasoningEffort)??mb(yt.getState().providerConfig,a??null,c??null,yt.getState().providerInstances),f=await fr.createSession({title:r,system_prompt:s||void 0,model:i,model_ref:a,provider:c,reasoning_effort:d||void 0,gold_config:(($=n.config)==null?void 0:$.goldConfig)??void 0}),p={...ld(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||vb},messages:[]};return t(X=>{const K=[p,...X.chats.filter(O=>O.id!==p.id)];return{...X,chats:K,currentSessionId:p.id,latestActiveSessionId:p.id}}),p.id},selectSession:n=>{const r=e();r.currentSessionId===n&&r.latestActiveSessionId===n||t({currentSessionId:n,latestActiveSessionId:n})},deleteSession:async n=>{try{await fr.deleteSession(n)}catch(r){console.error(`[ChatSlice] Failed to delete backend session ${n}:`,r)}t(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)),i=r.currentSessionId&&s.has(r.currentSessionId)?null:r.currentSessionId,a=r.latestActiveSessionId&&s.has(r.latestActiveSessionId)?((c=o[0])==null?void 0:c.id)??null:r.latestActiveSessionId;return{...r,chats:o,currentSessionId:i,latestActiveSessionId:a}})},deleteSessions:async n=>{for(const r of n)await e().deleteSession(r)},updateSession:(n,r,s)=>{const o=!!r.config&&(Object.prototype.hasOwnProperty.call(r.config,"model")||Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")||Object.prototype.hasOwnProperty.call(r.config,"goldConfig")),i=typeof r.title=="string"||typeof r.pinned=="boolean",c=o||i?new Date().toISOString():void 0;t(f=>{const p=f.chats.map(y=>y.id===n?{...y,...r,...c?{updatedAt:c}:{}}:y);return{...f,chats:p}});const d={};if(typeof r.title=="string"&&(d.title=r.title),typeof r.pinned=="boolean"&&(d.pinned=r.pinned),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model")&&(d.model=r.config.model??null),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model_ref")&&yt.getState().isProviderModelRefEnabled()&&(d.model_ref=r.config.model_ref??null,r.config.model_ref&&(d.provider=r.config.model_ref.provider)),r.config&&Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")){const f=r.config.reasoningEffort;f?d.reasoning_effort=f:d.clear_reasoning_effort=!0}r.config&&Object.prototype.hasOwnProperty.call(r.config,"goldConfig")&&(d.gold_config=r.config.goldConfig??{enabled:!1,auto_answer_enabled:!1,auto_continue_enabled:!1}),!(s!=null&&s.skipBackendPatch)&&Object.keys(d).length>0&&fr.patchSession(n,d).catch(f=>{console.warn(`[ChatSlice] Failed to patch session ${n}:`,f)})},persistSessionTitle:async(n,r)=>{var o;const s=(o=e().chats.find(i=>i.id===n))==null?void 0:o.title;t(i=>({...i,chats:i.chats.map(a=>a.id===n?{...a,title:r,updatedAt:new Date().toISOString()}:a)}));try{await fr.patchSession(n,{title:r})}catch(i){throw typeof s=="string"&&t(a=>({...a,chats:a.chats.map(c=>c.id===n?{...c,title:s}:c)})),console.warn(`[ChatSlice] persistSessionTitle failed for ${n}:`,i),i}},applyServerTitle:(n,r,s)=>t(o=>{const i=o.chats.find(a=>a.id===n);return!i||s<=(i.titleVersion??0)?o:{...o,chats:o.chats.map(a=>a.id===n?{...a,title:r,titleVersion:s,updatedAt:new Date().toISOString()}:a)}}),applyServerPinned:(n,r,s)=>t(o=>{const i=o.chats.find(d=>d.id===n);if(!i)return o;const a=Date.parse(s),c=i.updatedAt?Date.parse(i.updatedAt):NaN;return Number.isFinite(a)&&Number.isFinite(c)&&a<c||i.pinned===r?o:{...o,chats:o.chats.map(d=>d.id===n?{...d,pinned:r,updatedAt:s}:d)}}),pinSession:n=>{e().updateSession(n,{pinned:!0})},unpinSession:n=>{e().updateSession(n,{pinned:!1})},setMessages:(n,r)=>{e().chats.find(o=>o.id===n)&&e().updateSession(n,{messages:r})},addMessage:async(n,r)=>{const s=e().chats.find(i=>i.id===n);if(!s)return;const o=[...s.messages,r];e().updateSession(n,{messages:o})},updateMessage:(n,r,s)=>{const o=e().chats.find(a=>a.id===n);if(!o)return;const i=o.messages.map(a=>{if(a.id!==r)return a;const c={...a};return Object.keys(s).forEach(d=>{Object.prototype.hasOwnProperty.call(c,d)&&(c[d]=s[d])}),c});e().updateSession(n,{messages:i})},deleteMessage:async(n,r)=>{const s=e().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 fr.deleteSessionMessage(n,r)}catch(o){return console.warn(`[ChatSlice] Failed to delete message ${r} from session ${n}:`,o),o instanceof vo?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 t(o=>({...o,chats:o.chats.map(i=>i.id===n?{...i,messages:i.messages.filter(a=>a.id!==r)}:i)})),{success:!0,sessionId:n,messageId:r}},refreshChats:async()=>gt.inFlight?gt.inFlight:gt.timer?(gt.trailingPromise||(gt.trailingPromise=new Promise((n,r)=>{gt.trailingResolve=n,gt.trailingReject=r})),gt.trailingPromise):(gt.timer=setTimeout(()=>{if(gt.timer=null,gt.trailingPromise){const n=wb();cp(Cl(t),n)}},BC),Cl(t)),refreshChatsNow:async()=>{const n=WC();pe("[ChatSlice]","refreshChatsNow.start",{hadTrailingCallbacks:!!n,hasInflight:!!gt.inFlight});const r=gt.inFlight?HC(t):Cl(t);return cp(r,n),r},loadChats:async()=>{var i,a,c;pe("[ChatSlice]","loadChats.start",{});let n=await fr.listSessions();if(!n.sessions||n.sessions.length===0){const d=(i=yt.getState().getActiveModel())==null?void 0:i.trim(),f=(a=yt.getState().providerConfig.defaults)==null?void 0:a.chat;pe("[ChatSlice]","loadChats.createInitialSession",{defaultModel:d??null,defaultModelRef:f??null}),n={sessions:[(await fr.createSession({title:Et.t("chat.sidebar.newSession"),model:d,model_ref:f,provider:f==null?void 0:f.provider})).session]}}const r=n.sessions.map(ld),s=((c=r[0])==null?void 0:c.id)??null;pe("[ChatSlice]","loadChats.listResolved",{count:n.sessions.length,currentSessionId:s});let o=e().executionBySession;for(const d of n.sessions)o=Kl(o,{type:"applySessionSummary",sessionId:d.id,summary:d});try{const d=await fr.getRunningSessions();if(pe("[ChatSlice]","loadChats.runningSnapshot",{count:d.sessions.length}),d.sessions.length>0){const f=d.sessions.map(p=>{const y=[];for(const m of p.last_critical_events){if(db(m)){sC(m,r);continue}y.push(m)}return{sessionId:p.session_id,runId:p.run_id,criticalEvents:y}});o=Kl(o,{type:"applyRunningSnapshot",sessions:f},()=>new Date().toISOString())}}catch(d){pe("[ChatSlice]","loadChats.runningSnapshot.error",{error:d})}t({chats:r,latestActiveSessionId:s,currentSessionId:s,executionBySession:o}),pe("[ChatSlice]","loadChats.applied",{currentSessionId:s,chatCount:r.length,executionSessionCount:Object.keys(o||{}).length}),s&&(pe("[ChatSlice]","loadChats.loadInitialHistory",{currentSessionId:s}),await e().loadChatHistory(s))},loadChatHistory:async(n,r)=>{var a,c,d,f,p,y,m,w,b,_,M,C;const s=(r==null?void 0:r.mode)??"replace",o=Math.max(0,(r==null?void 0:r.retries)??0),i=Math.max(0,(r==null?void 0:r.retryDelayMs)??0);pe("[ChatSlice]","loadChatHistory.start",{sessionId:n,mode:s,retries:o,retryDelayMs:i,waitForAssistant:(r==null?void 0:r.waitForAssistant)??!1});for(let T=0;T<=o;T+=1)try{const k=e().chats.find($=>$.id===n);if(!k){pe("[ChatSlice]","loadChatHistory.skipMissingChat",{sessionId:n,attempt:T});return}const P=await fr.getHistory(n);pe("[ChatSlice]","loadChatHistory.response",{sessionId:n,attempt:T,historyMessageCount:P.messages.length,localMessageCount:k.messages.length,localStoredMessageCount:k.messageCount??null,lastMessageId:((a=P.messages[P.messages.length-1])==null?void 0:a.id)??null,lastRole:((c=P.messages[P.messages.length-1])==null?void 0:c.role)??null});const A=(d=P.messages[P.messages.length-1])==null?void 0:d.role;if(r!=null&&r.waitForAssistant&&A==="user"&&T<o){const $=i>0?i*(T+1):200*(T+1);pe("[ChatSlice]","loadChatHistory.waitForAssistant.retry",{sessionId:n,attempt:T,delay:$}),await new Promise(F=>setTimeout(F,$));continue}const j=IC(n,P.messages);if(s==="monotonic"){const $=k.messages||[],F=$.length,X=j.length,K=(f=j[j.length-1])==null?void 0:f.role,O=(p=$[$.length-1])==null?void 0:p.role,W=$[$.length-1],ae=j[j.length-1],Y=W==null?void 0:W.id,ce=ae==null?void 0:ae.id;let L=!1;if(X>F?L=!0:X===F&&(L=O==="user"&&K!=="user"||typeof Y=="string"&&typeof ce=="string"&&Y!==ce),pe("[ChatSlice]","loadChatHistory.monotonicDecision",{sessionId:n,attempt:T,prevLen:F,nextLen:X,prevLastRole:O??null,nextLastRole:K??null,prevLastId:Y??null,nextLastId:ce??null,shouldReplace:L}),!L){e().updateSession(n,{messageCount:Math.max(k.messageCount??0,P.messages.length)}),pe("[ChatSlice]","loadChatHistory.monotonicSkip",{sessionId:n,attempt:T,localMessageCount:k.messages.length,serverMessageCount:P.messages.length});return}}e().updateSession(n,{messages:j,messageCount:P.messages.length,config:{...k.config||{},...P.gold_config!=null?{goldConfig:P.gold_config}:{},...P.goal_state!=null?{goalState:P.goal_state}:{},compressionEvents:(P.compression_events||[]).map($=>({id:$.id,createdAt:$.created_at,messagesCompressed:$.messages_compressed,segmentsRemoved:$.segments_removed})),syncCursor:{messageCount:P.messages.length,lastMessageId:((y=P.messages[P.messages.length-1])==null?void 0:y.id)??null,hasPendingQuestion:!!((w=(m=e().executionBySession)==null?void 0:m[n])!=null&&w.interaction.pendingQuestion),pendingQuestionToolCallId:((M=(_=(b=e().executionBySession)==null?void 0:b[n])==null?void 0:_.interaction.pendingQuestion)==null?void 0:M.toolCallId)??null}}}),pe("[ChatSlice]","loadChatHistory.applied",{sessionId:n,attempt:T,mode:s,messageCount:P.messages.length,lastMessageId:((C=P.messages[P.messages.length-1])==null?void 0:C.id)??null});return}catch(k){if(T>=o){console.warn(`[ChatSlice] Failed to load history for ${n}:`,k),pe("[ChatSlice]","loadChatHistory.error.final",{sessionId:n,attempt:T,retries:o,error:k});return}const P=i>0?i*(T+1):200*(T+1);pe("[ChatSlice]","loadChatHistory.error.retry",{sessionId:n,attempt:T,delay:P,error:k}),await new Promise(A=>setTimeout(A,P))}},reconcileOpenSession:(n,r)=>{if(!n||e().currentSessionId!==n)return;const s=cu.get(n);s&&clearTimeout(s),cu.set(n,setTimeout(()=>{cu.delete(n),e().currentSessionId===n&&(async()=>{pe("[ChatSlice]","reconcileOpenSession.start",{sessionId:n,reason:r??null}),await e().loadChatHistory(n,{mode:"monotonic",waitForAssistant:!0,retries:3,retryDelayMs:250});try{const o=await fr.getPendingQuestion(n);if(e().currentSessionId!==n)return;o.has_pending_question?e().setPendingQuestion(n,{question:o.question??"",options:o.options??[],allowCustom:o.allow_custom??!0,toolCallId:o.tool_call_id??null}):e().clearPendingQuestion(n)}catch(o){pe("[ChatSlice]","reconcileOpenSession.pendingError",{sessionId:n,error:o})}})()},qC))}});class cd extends Error{constructor(n="Proxy authentication required"){super(n);Ie(this,"code","proxy_auth_required");this.name="ProxyAuthRequiredError"}}const vs=class vs{constructor(){}static getInstance(){return vs.instance||(vs.instance=new vs),vs.instance}async getModels(e){var n,r;try{const s=await Ui.fetchCatalogModels(e),o=[];for(const a of s.fetched)if(a.models&&a.models.length>0)for(const c of a.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 vo){if(s.status===428)throw new cd(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 cd(((r=o.error)==null?void 0:r.message)||s.message)}throw s}}};Ie(vs,"instance");let ud=vs;const xb=ud.getInstance(),XC=async t=>{var e;if(typeof navigator>"u"||!((e=navigator.clipboard)!=null&&e.writeText))throw new Error("navigator.clipboard.writeText is unavailable");await navigator.clipboard.writeText(t)},YC=t=>{if(typeof document>"u")throw new Error("document is unavailable");const e=document.createElement("textarea");e.value=t,e.setAttribute("readonly","true"),e.style.position="fixed",e.style.top="-9999px",e.style.left="-9999px",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select();const n=document.execCommand("copy");if(document.body.removeChild(e),!n)throw new Error("document.execCommand('copy') returned false")},jr=async t=>{try{await XC(t);return}catch(e){try{YC(t);return}catch(n){const r=e instanceof Error?e.message:String(e),s=n instanceof Error?n.message:String(n);throw new Error(`Clipboard copy failed: navigator(${r}); fallback(${s})`)}}};class VC{async copyToClipboard(e){await jr(e)}async getBambooConfig(){try{return await ze.get("bamboo/config")}catch(e){return console.error("Failed to fetch Bamboo config:",e),{}}}async getBambooTools(){try{return await ze.get("bamboo/tools")}catch(e){return console.error("Failed to fetch Bamboo tools:",e),{tools:[]}}}async getModelLimitDefaults(){try{return await ze.get("bamboo/model-limits/defaults")}catch(e){return console.error("Failed to fetch model limit defaults:",e),{model_limits:[]}}}async setBambooConfig(e){return ze.post("bamboo/config",e)}async validateBambooConfigPatch(e){return ze.post("bamboo/config/validate",e)}async setProxyAuth(e){return ze.post("bamboo/proxy-auth",e)}async getProxyAuthStatus(){try{return await ze.get("bamboo/proxy-auth/status")}catch(e){return console.error("Failed to fetch proxy auth status:",e),{configured:!1,username:null}}}async clearProxyAuth(){return ze.post("bamboo/proxy-auth",{username:"",password:""})}async resetBambooConfig(){return ze.post("bamboo/config/reset",{})}async saveWorkflow(e,n){return ze.post("bamboo/workflows",{name:e,content:n})}async deleteWorkflow(e){return ze.delete(`bamboo/workflows/${encodeURIComponent(e)}`)}async getKeywordMaskingConfig(){try{return await ze.get("bamboo/keyword-masking")}catch(e){return console.error("Failed to fetch keyword masking config:",e),{entries:[]}}}async updateKeywordMaskingConfig(e){return ze.post("bamboo/keyword-masking",e)}async validateKeywordEntries(e){return ze.post("bamboo/keyword-masking/validate",e)}async getSetupStatus(){return await ze.get("bamboo/setup/status")}async markSetupComplete(){return ze.post("bamboo/setup/complete",{})}async resetSetupStatus(){await ze.post("bamboo/setup/incomplete",{})}async getAccessStatus(){return ze.get("bamboo/access/status")}async verifyAccessPassword(e){return ze.post("bamboo/access/verify",{password:e})}async updateAccessPassword(e){return ze.post("bamboo/access/password",e)}}const Ss=class Ss extends VC{constructor(){super()}static getInstance(){return Ss.instance||(Ss.instance=new Ss),Ss.instance}getUtilityService(){return this}};Ie(Ss,"instance");let So=Ss;const ms=So.getInstance();let qo=null,Ko=null;const uu=(t,e)=>t instanceof Error&&t.message.trim()?t.message:e,dd=Ir((t,e)=>({config:null,proxyAuthStatus:null,isLoadingConfig:!1,isLoadingProxyAuthStatus:!1,lastLoadedAt:null,error:null,loadConfig:async({force:n=!1}={})=>{const r=e().config;if(!n&&r)return r;if(qo)return qo;qo=(async()=>{t({isLoadingConfig:!0,error:null});try{const s=await ms.getBambooConfig()??{};return t({config:s,lastLoadedAt:Date.now(),error:null}),s}catch(s){const o=uu(s,"Failed to load Bamboo config");throw t({error:o}),s}finally{t({isLoadingConfig:!1})}})();try{return await qo}finally{qo=null}},saveConfig:async n=>{t({isLoadingConfig:!0,error:null,config:n});try{const r=await ms.setBambooConfig(n);return t({config:r,lastLoadedAt:Date.now(),error:null}),r}catch(r){const s=uu(r,"Failed to save Bamboo config");throw t({error:s}),r}finally{t({isLoadingConfig:!1})}},patchConfig:async n=>{const s={...await e().loadConfig()??{},...n??{}};return e().saveConfig(s)},loadProxyAuthStatus:async({force:n=!1}={})=>{const r=e().proxyAuthStatus;if(!n&&r)return r;if(Ko)return Ko;Ko=(async()=>{t({isLoadingProxyAuthStatus:!0,error:null});try{const s=await ms.getProxyAuthStatus();return t({proxyAuthStatus:s,error:null}),s}catch(s){const o=uu(s,"Failed to load proxy auth status");throw t({error:o}),s}finally{t({isLoadingProxyAuthStatus:!1})}})();try{return await Ko}finally{Ko=null}},applyProxyAuth:async n=>{await ms.setProxyAuth(n),await e().loadProxyAuthStatus({force:!0})},clearProxyAuth:async()=>{await ms.clearProxyAuth(),await e().loadProxyAuthStatus({force:!0})}}));let Xo=null;const GC=(t,e)=>({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:null,configModel:void 0,setSelectedModel:n=>{t({selectedModel:n})},loadConfigModel:async()=>{try{const n=await dd.getState().loadConfig(),r=typeof(n==null?void 0:n.model)=="string"?n.model:void 0;r&&t({configModel:r})}catch(n){console.error("Failed to load model from config:",n)}},fetchModels:async()=>{if(Xo)return Xo;Xo=(async()=>{t({isLoadingModels:!0,modelsError:null});try{try{if(!(await ms.getSetupStatus()).is_complete){pe("[ModelSlice]","Setup not complete, skipping model fetch"),t({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 xb.getModels();t(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"}}),e().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 cd){t(s=>({...s,models:s.models,selectedModel:s.selectedModel,modelsError:r||"Proxy authentication required. Please configure proxy auth."}));return}t(s=>({...s,models:[],selectedModel:s.selectedModel,modelsError:r}))}finally{t({isLoadingModels:!1})}})();try{await Xo}finally{Xo=null}}}),JC=["system_prompt","system_prompt_selected_id"],du=t=>({id:t.id,name:t.name||t.id,content:t.content||"",description:t.description,isDefault:!!t.is_default}),Yr=class Yr{constructor(){Ie(this,"deprecatedKeysCleanupDone",!1)}static getInstance(){return Yr.instance||(Yr.instance=new Yr),Yr.instance.cleanupDeprecatedPromptStorageKeys(),Yr.instance}cleanupDeprecatedPromptStorageKeys(){if(!this.deprecatedKeysCleanupDone){this.deprecatedKeysCleanupDone=!0;try{for(const e of JC)localStorage.removeItem(e)}catch(e){console.warn("[SystemPromptService] Failed to cleanup deprecated prompt storage keys:",e)}}}async getSystemPromptPresets(){try{const e=await Je.get("prompt-presets"),r=(Array.isArray(e==null?void 0:e.prompts)?e.prompts:[]).filter(s=>s.id&&s.id.trim().length>0).map(du);if(r.length>0)return r}catch(e){console.error("Failed to load prompt presets from backend:",e)}return Xl()}async createSystemPromptPreset(e){var s;const n={name:e.name,content:e.content};(s=e.id)!=null&&s.trim()&&(n.id=e.id.trim()),e.description!==void 0&&(n.description=e.description);const r=await Je.post("prompt-presets",n);if(!(r!=null&&r.prompt))throw new Error("Backend did not return created prompt preset");return du(r.prompt)}async updateSystemPromptPreset(e){const n=encodeURIComponent(e.id),r={name:e.name,content:e.content,description:e.description},s=await Je.patch(`prompt-presets/${n}`,r);if(!(s!=null&&s.prompt))throw new Error("Backend did not return updated prompt preset");return du(s.prompt)}async deleteSystemPromptPreset(e){const n=encodeURIComponent(e);await Je.delete(`prompt-presets/${n}`)}async findPresetById(e){return(await this.getSystemPromptPresets()).find(r=>r.id===e)}async getCurrentSystemPromptContent(e){const n=await this.findPresetById(e);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)||""}};Ie(Yr,"instance");let Yl=Yr;const up="copilot_last_selected_prompt_id",_b="copilot_custom_system_prompts_v2",Cb="copilot_custom_system_prompts_v2_migrated_to_backend",kb="general_assistant",bf=80,so=Yl.getInstance();let rl=null;function vf(t){const e=t.toLowerCase().trim().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return e.length===0?`prompt_${Date.now()}_${Math.random().toString(36).substring(2,9)}`:e.slice(0,bf)}function Tb(t){if(typeof t!="string")return null;const e=t.toLowerCase().trim().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"");return e?e.slice(0,bf):null}function Eb(t,e){if(!e.has(t))return t;let n=2;for(;;){const r=`_${n}`,o=`${t.slice(0,Math.max(0,bf-r.length))}${r}`;if(!e.has(o))return o;n+=1}}function Pb(){try{const t=localStorage.getItem(_b);if(!t)return[];const e=JSON.parse(t);if(!Array.isArray(e))return[];const n=new Set,r=[];for(const s of e){const o=typeof(s==null?void 0:s.name)=="string"?s.name.trim():"",i=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!o||!i)continue;const c=Tb(s==null?void 0:s.id)||vf(o),d=Eb(c,n);d!==kb&&(n.add(d),r.push({id:d,name:o,content:i,description:typeof(s==null?void 0:s.description)=="string"&&s.description.trim()||void 0,isDefault:!!(s!=null&&s.isDefault)}))}return r}catch(t){return console.error("[promptSlice] Failed to read legacy custom prompts:",t),[]}}function Mb(){try{return localStorage.getItem(Cb)==="1"}catch(t){return console.error("[promptSlice] Failed to read migration marker:",t),!1}}function dp(){try{localStorage.setItem(Cb,"1")}catch(t){console.error("[promptSlice] Failed to write migration marker:",t)}}function fp(){try{localStorage.removeItem(_b)}catch(t){console.error("[promptSlice] Failed to clear legacy custom prompts:",t)}}async function QC(){var s,o;if(Mb())return;const t=Pb();if(t.length===0){fp(),dp();return}const e=await so.getSystemPromptPresets(),n=new Set(e.map(i=>i.id));let r=!1;for(const i of t){const a=(s=i.name)==null?void 0:s.trim(),c=(o=i.content)==null?void 0:o.trim();if(!a||!c||i.id===kb||i.isDefault)continue;const d=Tb(i.id)||vf(a),f=Eb(d,n);try{const p=await so.createSystemPromptPreset({id:f,name:a,content:c,description:i.description});n.add(p.id)}catch(p){r=!0,console.error(`[promptSlice] Failed to migrate legacy prompt '${a}' to backend:`,p)}}r||(fp(),dp())}async function ZC(){rl||(rl=QC().finally(()=>{rl=null})),await rl}const ek=(t,e)=>({systemPrompts:[],lastSelectedPromptId:localStorage.getItem(up)||null,loadSystemPrompts:async()=>{try{await ZC()}catch(s){console.warn("[promptSlice] Legacy prompt migration skipped:",s)}let n=[];try{n=await so.getSystemPromptPresets()}catch(s){console.error("Failed to load system prompts from backend:",s)}let r=n.length?n:Xl();if(!Mb()){const s=Pb();r=tk(r,s)}r.length===0&&(r=Xl()),t({systemPrompts:r})},addSystemPrompt:async n=>{try{await so.createSystemPromptPreset({id:vf(n.name),name:n.name,content:n.content,description:n.description}),await e().loadSystemPrompts()}catch(r){throw console.error("Failed to add system prompt:",r),r}},updateSystemPrompt:async n=>{try{await so.updateSystemPromptPreset(n),await e().loadSystemPrompts()}catch(r){throw console.error("Failed to update system prompt:",r),r}},deleteSystemPrompt:async n=>{try{await so.deleteSystemPromptPreset(n),await e().loadSystemPrompts()}catch(r){throw console.error("Failed to delete system prompt:",r),r}},setLastSelectedPromptId:n=>{t({lastSelectedPromptId:n});try{localStorage.setItem(up,n)}catch(r){console.error("Failed to save last selected prompt ID to localStorage:",r)}}}),tk=(t,e)=>{const n=new Map;return t.forEach(r=>{n.set(r.id,r)}),e.forEach(r=>{n.set(r.id,r)}),Array.from(n.values())},nk=()=>({});class rk{async listSkills(e,n){const r=new URLSearchParams;e!=null&&e.search&&r.append("search",e.search),e!=null&&e.includeDisabled&&r.append("include_disabled","true"),n&&r.append("refresh","true");const s=r.toString(),o=s?`skills?${s}`:"skills";return ze.get(o)}async getSkill(e){return ze.get(`skills/${e}`)}async getFilteredTools(e){const n=e?`?session_id=${encodeURIComponent(e)}`:"";return(await ze.get(`skills/filtered-tools${n}`)).tools??[]}}const hp=new rk,sk=(t,e)=>({skills:[],isLoadingSkills:!1,skillsError:null,loadSkills:async(n,r)=>{t({isLoadingSkills:!0,skillsError:null});try{const s=await hp.listSkills(n,r);t({skills:s.skills,isLoadingSkills:!1})}catch(s){t({skillsError:s instanceof Error?s.message:Et.t("components.skillManager.loadFailed"),isLoadingSkills:!1})}},getSkill:async n=>{t({isLoadingSkills:!0,skillsError:null});try{const r=await hp.getSkill(n),s=e().skills,i=s.findIndex(a=>a.id===r.id)>=0?s.map(a=>a.id===r.id?r:a):[...s,r];t({skills:i,isLoadingSkills:!1})}catch(r){t({skillsError:r instanceof Error?r.message:Et.t("components.skillManager.getFailed"),isLoadingSkills:!1})}},clearSkillsError:()=>{t({skillsError:null})}}),ok=t=>({tokenUsages:{},truncationOccurred:{},segmentsRemoved:{},updateTokenUsage:(e,n)=>t(r=>({tokenUsages:{...r.tokenUsages,[e]:n}})),setTruncationInfo:(e,n,r)=>t(s=>({truncationOccurred:{...s.truncationOccurred,[e]:n},segmentsRemoved:{...s.segmentsRemoved,[e]:r}})),clearTokenUsage:e=>t(n=>{const{[e]:r,...s}=n.tokenUsages,{[e]:o,...i}=n.truncationOccurred,{[e]:a,...c}=n.segmentsRemoved;return{tokenUsages:s,truncationOccurred:i,segmentsRemoved:c}})}),ik=Pn.getInstance(),ak=(t,e)=>({taskLists:{},taskListVersions:{},activeItems:{},evaluationStates:{},setTaskList:(n,r)=>t(s=>({taskLists:{...s.taskLists,[n]:r},taskListVersions:{...s.taskListVersions,[n]:r.version||0}})),loadTaskList:async n=>{const r=await ik.getTaskList(n);return r?(e().setTaskList(r.session_id||n,r),r):null},updateTaskListDelta:(n,r)=>t(s=>{const o=s.taskListVersions[n]||0;if(r.version<=o)return s;const i=s.taskLists[n];if(!i)return s;const a=i.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]:{...i,items:a,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=>t(r=>{const{[n]:s,...o}=r.taskLists,{[n]:i,...a}=r.taskListVersions,{[n]:c,...d}=r.activeItems,{[n]:f,...p}=r.evaluationStates;return{taskLists:o,taskListVersions:a,activeItems:d,evaluationStates:p}}),getTaskListVersion:n=>e().taskListVersions[n]||0,setEvaluationState:(n,r)=>t(s=>({evaluationStates:{...s.evaluationStates,[n]:r}})),clearEvaluationState:n=>t(r=>{const{[n]:s,...o}=r.evaluationStates;return{evaluationStates:o}})});var kl={exports:{}},lk=kl.exports,pp;function ck(){return pp||(pp=1,function(t,e){((n,r)=>{t.exports=r()})(lk,function(){var n=function(u,h){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(g,S){g.__proto__=S}:function(g,S){for(var x in S)Object.prototype.hasOwnProperty.call(S,x)&&(g[x]=S[x])}))(u,h)},r=function(){return(r=Object.assign||function(u){for(var h,g=1,S=arguments.length;g<S;g++)for(var x in h=arguments[g])Object.prototype.hasOwnProperty.call(h,x)&&(u[x]=h[x]);return u}).apply(this,arguments)};function s(u,h,g){for(var S,x=0,E=h.length;x<E;x++)!S&&x in h||((S=S||Array.prototype.slice.call(h,0,x))[x]=h[x]);return u.concat(S||Array.prototype.slice.call(h))}var o=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Tx,i=Object.keys,a=Array.isArray;function c(u,h){return typeof h=="object"&&i(h).forEach(function(g){u[g]=h[g]}),u}typeof Promise>"u"||o.Promise||(o.Promise=Promise);var d=Object.getPrototypeOf,f={}.hasOwnProperty;function p(u,h){return f.call(u,h)}function y(u,h){typeof h=="function"&&(h=h(d(u))),(typeof Reflect>"u"?i:Reflect.ownKeys)(h).forEach(function(g){w(u,g,h[g])})}var m=Object.defineProperty;function w(u,h,g,S){m(u,h,c(g&&p(g,"get")&&typeof g.get=="function"?{get:g.get,set:g.set,configurable:!0}:{value:g,configurable:!0,writable:!0},S))}function b(u){return{from:function(h){return u.prototype=Object.create(h.prototype),w(u.prototype,"constructor",u),{extend:y.bind(null,u.prototype)}}}}var _=Object.getOwnPropertyDescriptor,M=[].slice;function C(u,h,g){return M.call(u,h,g)}function T(u,h){return h(u)}function k(u){if(!u)throw new Error("Assertion Failed")}function P(u){o.setImmediate?setImmediate(u):setTimeout(u,0)}function A(u,h){if(typeof h=="string"&&p(u,h))return u[h];if(!h)return u;if(typeof h!="string"){for(var g=[],S=0,x=h.length;S<x;++S){var E=A(u,h[S]);g.push(E)}return g}var R,I=h.indexOf(".");return I===-1||(R=u[h.substr(0,I)])==null?void 0:A(R,h.substr(I+1))}function j(u,h,g){if(u&&h!==void 0&&!("isFrozen"in Object&&Object.isFrozen(u)))if(typeof h!="string"&&"length"in h){k(typeof g!="string"&&"length"in g);for(var S=0,x=h.length;S<x;++S)j(u,h[S],g[S])}else{var E,R,I=h.indexOf(".");I!==-1?(E=h.substr(0,I),(I=h.substr(I+1))===""?g===void 0?a(u)&&!isNaN(parseInt(E))?u.splice(E,1):delete u[E]:u[E]=g:j(R=(R=u[E])&&p(u,E)?R:u[E]={},I,g)):g===void 0?a(u)&&!isNaN(parseInt(h))?u.splice(h,1):delete u[h]:u[h]=g}}function $(u){var h,g={};for(h in u)p(u,h)&&(g[h]=u[h]);return g}var F=[].concat;function X(u){return F.apply([],u)}var he="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(X([8,16,32,64].map(function(u){return["Int","Uint","Float"].map(function(h){return h+u+"Array"})}))).filter(function(u){return o[u]}),K=new Set(he.map(function(u){return o[u]})),O=null;function W(u){return O=new WeakMap,u=function h(g){if(!g||typeof g!="object")return g;var S=O.get(g);if(S)return S;if(a(g)){S=[],O.set(g,S);for(var x=0,E=g.length;x<E;++x)S.push(h(g[x]))}else if(K.has(g.constructor))S=g;else{var R,I=d(g);for(R in S=I===Object.prototype?{}:Object.create(I),O.set(g,S),g)p(g,R)&&(S[R]=h(g[R]))}return S}(u),O=null,u}var ae={}.toString;function Y(u){return ae.call(u).slice(8,-1)}var ce=typeof Symbol<"u"?Symbol.iterator:"@@iterator",L=typeof ce=="symbol"?function(u){var h;return u!=null&&(h=u[ce])&&h.apply(u)}:function(){return null};function oe(u,h){h=u.indexOf(h),0<=h&&u.splice(h,1)}var Se={};function J(u){var h,g,S,x;if(arguments.length===1){if(a(u))return u.slice();if(this===Se&&typeof u=="string")return[u];if(x=L(u))for(g=[];!(S=x.next()).done;)g.push(S.value);else{if(u==null)return[u];if(typeof(h=u.length)!="number")return[u];for(g=new Array(h);h--;)g[h]=u[h]}}else for(h=arguments.length,g=new Array(h);h--;)g[h]=arguments[h];return g}var te=typeof Symbol<"u"?function(u){return u[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},he=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Nt=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(he),de={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 me(u,h){this.name=u,this.message=h}function ge(u,h){return u+". Errors: "+Object.keys(h).map(function(g){return h[g].toString()}).filter(function(g,S,x){return x.indexOf(g)===S}).join(`
12
+ `)}function le(u,h,g,S){this.failures=h,this.failedKeys=S,this.successCount=g,this.message=ge(u,h)}function ke(u,h){this.name="BulkError",this.failures=Object.keys(h).map(function(g){return h[g]}),this.failuresByPos=h,this.message=ge(u,this.failures)}b(me).from(Error).extend({toString:function(){return this.name+": "+this.message}}),b(le).from(me),b(ke).from(me);var je=Nt.reduce(function(u,h){return u[h]=h+"Error",u},{}),fe=me,ne=Nt.reduce(function(u,h){var g=h+"Error";function S(x,E){this.name=g,x?typeof x=="string"?(this.message="".concat(x).concat(E?`
13
+ `+E:""),this.inner=E||null):typeof x=="object"&&(this.message="".concat(x.name," ").concat(x.message),this.inner=x):(this.message=de[h]||g,this.inner=null)}return b(S).from(fe),u[h]=S,u},{}),Q=(ne.Syntax=SyntaxError,ne.Type=TypeError,ne.Range=RangeError,he.reduce(function(u,h){return u[h+"Error"]=ne[h],u},{}));he=Nt.reduce(function(u,h){return["Syntax","Type","Range"].indexOf(h)===-1&&(u[h+"Error"]=ne[h]),u},{});function ie(){}function ye(u){return u}function $e(u,h){return u==null||u===ye?h:function(g){return h(u(g))}}function qe(u,h){return function(){u.apply(this,arguments),h.apply(this,arguments)}}function Ue(u,h){return u===ie?h:function(){var g=u.apply(this,arguments),S=(g!==void 0&&(arguments[0]=g),this.onsuccess),x=this.onerror,E=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return S&&(this.onsuccess=this.onsuccess?qe(S,this.onsuccess):S),x&&(this.onerror=this.onerror?qe(x,this.onerror):x),E!==void 0?E:g}}function rt(u,h){return u===ie?h:function(){u.apply(this,arguments);var g=this.onsuccess,S=this.onerror;this.onsuccess=this.onerror=null,h.apply(this,arguments),g&&(this.onsuccess=this.onsuccess?qe(g,this.onsuccess):g),S&&(this.onerror=this.onerror?qe(S,this.onerror):S)}}function ht(u,h){return u===ie?h:function(x){var S=u.apply(this,arguments),x=(c(x,S),this.onsuccess),E=this.onerror,R=(this.onsuccess=null,this.onerror=null,h.apply(this,arguments));return x&&(this.onsuccess=this.onsuccess?qe(x,this.onsuccess):x),E&&(this.onerror=this.onerror?qe(E,this.onerror):E),S===void 0?R===void 0?void 0:R:c(S,R)}}function Ct(u,h){return u===ie?h:function(){return h.apply(this,arguments)!==!1&&u.apply(this,arguments)}}function vt(u,h){return u===ie?h:function(){var g=u.apply(this,arguments);if(g&&typeof g.then=="function"){for(var S=this,x=arguments.length,E=new Array(x);x--;)E[x]=arguments[x];return g.then(function(){return h.apply(S,E)})}return h.apply(this,arguments)}}he.ModifyError=le,he.DexieError=me,he.BulkError=ke;var Ve=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Ht(u){Ve=u}var ct={},pt=100,an=typeof Promise>"u"?[]:(Nt=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[an=crypto.subtle.digest("SHA-512",new Uint8Array([0])),d(an),Nt]:[Nt,d(Nt),Nt]),Nt=an[0],Hs=an[1],Hs=Hs&&Hs.then,Tt=Nt&&Nt.constructor,xn=!!an[2],ln=function(u,h){Fn.push([u,h]),Be&&(queueMicrotask(rs),Be=!1)},be=!0,Be=!0,Le=[],Ge=[],Vt=ye,pn={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:ie,pgp:!1,env:{},finalize:ie},De=pn,Fn=[],qt=0,Dt=[];function Re(u){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var h=this._PSD=De;if(typeof u!="function"){if(u!==ct)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&ir(this,this._value)}else this._state=null,this._value=null,++h.ref,function g(S,x){try{x(function(E){if(S._state===null){if(E===S)throw new TypeError("A promise cannot be resolved with itself.");var R=S._lib&&Yn();E&&typeof E.then=="function"?g(S,function(I,N){E instanceof Re?E._then(I,N):E.then(I,N)}):(S._state=!0,S._value=E,Or(S)),R&&Vn()}},ir.bind(null,S))}catch(E){ir(S,E)}}(this,u)}var Xn={get:function(){var u=De,h=lr;function g(S,x){var E=this,R=!u.global&&(u!==De||h!==lr),I=R&&!Gn(),N=new Re(function(Z,B){ar(E,new ns(Ro(S,u,R,I),Ro(x,u,R,I),Z,B,u))});return this._consoleTask&&(N._consoleTask=this._consoleTask),N}return g.prototype=ct,g},set:function(u){w(this,"then",u&&u.prototype===ct?Xn:{get:function(){return u},set:Xn.set})}};function ns(u,h,g,S,x){this.onFulfilled=typeof u=="function"?u:null,this.onRejected=typeof h=="function"?h:null,this.resolve=g,this.reject=S,this.psd=x}function ir(u,h){var g,S;Ge.push(h),u._state===null&&(g=u._lib&&Yn(),h=Vt(h),u._state=!1,u._value=h,S=u,Le.some(function(x){return x._value===S._value})||Le.push(S),Or(u),g)&&Vn()}function Or(u){var h=u._listeners;u._listeners=[];for(var g=0,S=h.length;g<S;++g)ar(u,h[g]);var x=u._PSD;--x.ref||x.finalize(),qt===0&&(++qt,ln(function(){--qt==0&&$r()},[]))}function ar(u,h){if(u._state===null)u._listeners.push(h);else{var g=u._state?h.onFulfilled:h.onRejected;if(g===null)return(u._state?h.resolve:h.reject)(u._value);++h.psd.ref,++qt,ln(Fs,[g,u,h])}}function Fs(u,h,g){try{var S,x=h._value;!h._state&&Ge.length&&(Ge=[]),S=Ve&&h._consoleTask?h._consoleTask.run(function(){return u(x)}):u(x),h._state||Ge.indexOf(x)!==-1||(E=>{for(var R=Le.length;R;)if(Le[--R]._value===E._value)return Le.splice(R,1)})(h),g.resolve(S)}catch(E){g.reject(E)}finally{--qt==0&&$r(),--g.psd.ref||g.psd.finalize()}}function rs(){ur(pn,function(){Yn()&&Vn()})}function Yn(){var u=be;return Be=be=!1,u}function Vn(){var u,h,g;do for(;0<Fn.length;)for(u=Fn,Fn=[],g=u.length,h=0;h<g;++h){var S=u[h];S[0].apply(null,S[1])}while(0<Fn.length);Be=be=!0}function $r(){for(var u=Le,h=(Le=[],u.forEach(function(S){S._PSD.onunhandled.call(null,S._value,S)}),Dt.slice(0)),g=h.length;g;)h[--g]()}function Nn(u){return new Re(ct,!1,u)}function Ee(u,h){var g=De;return function(){var S=Yn(),x=De;try{return Jn(g,!0),u.apply(this,arguments)}catch(E){h&&h(E)}finally{Jn(x,!1),S&&Vn()}}}y(Re.prototype,{then:Xn,_then:function(u,h){ar(this,new ns(null,null,u,h,De))},catch:function(u){var h,g;return arguments.length===1?this.then(null,u):(h=u,g=arguments[1],typeof h=="function"?this.then(null,function(S){return(S instanceof h?g:Nn)(S)}):this.then(null,function(S){return(S&&S.name===h?g:Nn)(S)}))},finally:function(u){return this.then(function(h){return Re.resolve(u()).then(function(){return h})},function(h){return Re.resolve(u()).then(function(){return Nn(h)})})},timeout:function(u,h){var g=this;return u<1/0?new Re(function(S,x){var E=setTimeout(function(){return x(new ne.Timeout(h))},u);g.then(S,x).finally(clearTimeout.bind(null,E))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&w(Re.prototype,Symbol.toStringTag,"Dexie.Promise"),pn.env=Ao(),y(Re,{all:function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h,g){u.length===0&&h([]);var S=u.length;u.forEach(function(x,E){return Re.resolve(x).then(function(R){u[E]=R,--S||h(u)},g)})})},resolve:function(u){return u instanceof Re?u:u&&typeof u.then=="function"?new Re(function(h,g){u.then(h,g)}):new Re(ct,!0,u)},reject:Nn,race:function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h,g){u.map(function(S){return Re.resolve(S).then(h,g)})})},PSD:{get:function(){return De},set:function(u){return De=u}},totalEchoes:{get:function(){return lr}},newPSD:cr,usePSD:ur,scheduler:{get:function(){return ln},set:function(u){ln=u}},rejectionMapper:{get:function(){return Vt},set:function(u){Vt=u}},follow:function(u,h){return new Re(function(g,S){return cr(function(x,E){var R=De;R.unhandleds=[],R.onunhandled=E,R.finalize=qe(function(){var I,N=this;I=function(){N.unhandleds.length===0?x():E(N.unhandleds[0])},Dt.push(function Z(){I(),Dt.splice(Dt.indexOf(Z),1)}),++qt,ln(function(){--qt==0&&$r()},[])},R.finalize),u()},h,g,S)})}}),Tt&&(Tt.allSettled&&w(Re,"allSettled",function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h){u.length===0&&h([]);var g=u.length,S=new Array(g);u.forEach(function(x,E){return Re.resolve(x).then(function(R){return S[E]={status:"fulfilled",value:R}},function(R){return S[E]={status:"rejected",reason:R}}).then(function(){return--g||h(S)})})})}),Tt.any&&typeof AggregateError<"u"&&w(Re,"any",function(){var u=J.apply(null,arguments).map(Ns);return new Re(function(h,g){u.length===0&&g(new AggregateError([]));var S=u.length,x=new Array(S);u.forEach(function(E,R){return Re.resolve(E).then(function(I){return h(I)},function(I){x[R]=I,--S||g(new AggregateError(x))})})})}),Tt.withResolvers)&&(Re.withResolvers=Tt.withResolvers);var Ye={awaits:0,echoes:0,id:0},wt=0,Pt=[],Kt=0,lr=0,$a=0;function cr(u,R,g,S){var x=De,E=Object.create(x),R=(E.parent=x,E.ref=0,E.global=!1,E.id=++$a,pn.env,E.env=xn?{Promise:Re,PromiseProp:{value:Re,configurable:!0,writable:!0},all:Re.all,race:Re.race,allSettled:Re.allSettled,any:Re.any,resolve:Re.resolve,reject:Re.reject}:{},R&&c(E,R),++x.ref,E.finalize=function(){--this.parent.ref||this.parent.finalize()},ur(E,u,g,S));return E.ref===0&&E.finalize(),R}function Lr(){return Ye.id||(Ye.id=++wt),++Ye.awaits,Ye.echoes+=pt,Ye.id}function Gn(){return!!Ye.awaits&&(--Ye.awaits==0&&(Ye.id=0),Ye.echoes=Ye.awaits*pt,!0)}function Ns(u){return Ye.echoes&&u&&u.constructor===Tt?(Lr(),u.then(function(h){return Gn(),h},function(h){return Gn(),It(h)})):u}function La(){var u=Pt[Pt.length-1];Pt.pop(),Jn(u,!1)}function Jn(u,h){var g,S,x=De;(h?!Ye.echoes||Kt++&&u===De:!Kt||--Kt&&u===De)||queueMicrotask(h?(function(E){++lr,Ye.echoes&&--Ye.echoes!=0||(Ye.echoes=Ye.awaits=Ye.id=0),Pt.push(De),Jn(E,!0)}).bind(null,u):La),u!==De&&(De=u,x===pn&&(pn.env=Ao()),xn)&&(g=pn.env.Promise,S=u.env,x.global||u.global)&&(Object.defineProperty(o,"Promise",S.PromiseProp),g.all=S.all,g.race=S.race,g.resolve=S.resolve,g.reject=S.reject,S.allSettled&&(g.allSettled=S.allSettled),S.any)&&(g.any=S.any)}function Ao(){var u=o.Promise;return xn?{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 ur(u,h,g,S,x){var E=De;try{return Jn(u,!0),h(g,S,x)}finally{Jn(E,!1)}}function Ro(u,h,g,S){return typeof u!="function"?u:function(){var x=De;g&&Lr(),Jn(h,!0);try{return u.apply(this,arguments)}finally{Jn(x,!1),S&&queueMicrotask(Gn)}}}function zs(u){Promise===Tt&&Ye.echoes===0?Kt===0?u():enqueueNativeMicroTask(u):setTimeout(u,0)}(""+Hs).indexOf("[native code]")===-1&&(Lr=Gn=ie);var It=Re.reject,_e="￿",xt="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",tn="String expected.",cn="__dbnames",nn="readonly",Qn="readwrite";function mn(u,h){return u?h?function(){return u.apply(this,arguments)&&h.apply(this,arguments)}:u:h}var Mn={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function ss(u){return typeof u!="string"||/\./.test(u)?function(h){return h}:function(h){return h[u]===void 0&&u in h&&delete(h=W(h))[u],h}}function kr(){throw ne.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function ot(u,h){try{var g=jo(u),S=jo(h);if(g!==S)return g==="Array"?1:S==="Array"?-1:g==="binary"?1:S==="binary"?-1:g==="string"?1:S==="string"?-1:g==="Date"?1:S!=="Date"?NaN:-1;switch(g){case"number":case"Date":case"string":return h<u?1:u<h?-1:0;case"binary":for(var x=ph(u),E=ph(h),R=x.length,I=E.length,N=R<I?R:I,Z=0;Z<N;++Z)if(x[Z]!==E[Z])return x[Z]<E[Z]?-1:1;return R===I?0:R<I?-1:1;case"Array":for(var B=u,D=h,z=B.length,V=D.length,U=z<V?z:V,H=0;H<U;++H){var q=ot(B[H],D[H]);if(q!==0)return q}return z===V?0:z<V?-1:1}}catch{}return NaN}function jo(u){var h=typeof u;return h=="object"&&(ArrayBuffer.isView(u)||(h=Y(u))==="ArrayBuffer")?"binary":h}function ph(u){return u instanceof Uint8Array?u:ArrayBuffer.isView(u)?new Uint8Array(u.buffer,u.byteOffset,u.byteLength):new Uint8Array(u)}function Da(u,h,g){var S=u.schema.yProps;return S?(h&&0<g.numFailures&&(h=h.filter(function(x,E){return!g.failures[E]})),Promise.all(S.map(function(x){return x=x.updatesTable,h?u.db.table(x).where("k").anyOf(h).delete():u.db.table(x).clear()})).then(function(){return g})):g}mh.prototype.execute=function(u){var h=this["@@propmod"];if(h.add!==void 0){var g=h.add;if(a(g))return s(s([],a(u)?u:[],!0),g).sort();if(typeof g=="number")return(Number(u)||0)+g;if(typeof g=="bigint")try{return BigInt(u)+g}catch{return BigInt(0)+g}throw new TypeError("Invalid term ".concat(g))}if(h.remove!==void 0){var S=h.remove;if(a(S))return a(u)?u.filter(function(x){return!S.includes(x)}).sort():[];if(typeof S=="number")return Number(u)-S;if(typeof S=="bigint")try{return BigInt(u)-S}catch{return BigInt(0)-S}throw new TypeError("Invalid subtrahend ".concat(S))}return g=(g=h.replacePrefix)==null?void 0:g[0],g&&typeof u=="string"&&u.startsWith(g)?h.replacePrefix[1]+u.substring(g.length):u};var Io=mh;function mh(u){this["@@propmod"]=u}function gh(u,h){for(var g=i(h),S=g.length,x=!1,E=0;E<S;++E){var R=g[E],I=h[R],N=A(u,R);I instanceof Io?(j(u,R,I.execute(N)),x=!0):N!==I&&(j(u,R,I),x=!0)}return x}Rt.prototype._trans=function(u,h,g){var S=this._tx||De.trans,x=this.name,E=Ve&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(u==="readonly"?"read":"write"," ").concat(this.name));function R(Z,B,D){if(D.schema[x])return h(D.idbtrans,D);throw new ne.NotFound("Table "+x+" not part of transaction")}var I=Yn();try{var N=S&&S.db._novip===this.db._novip?S===De.trans?S._promise(u,R,g):cr(function(){return S._promise(u,R,g)},{trans:S,transless:De.transless||De}):function Z(B,D,z,V){if(B.idbdb&&(B._state.openComplete||De.letThrough||B._vip)){var U=B._createTransaction(D,z,B._dbSchema);try{U.create(),B._state.PR1398_maxLoop=3}catch(H){return H.name===je.InvalidState&&B.isOpen()&&0<--B._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),B.close({disableAutoOpen:!1}),B.open().then(function(){return Z(B,D,z,V)})):It(H)}return U._promise(D,function(H,q){return cr(function(){return De.trans=U,V(H,q,U)})}).then(function(H){if(D==="readwrite")try{U.idbtrans.commit()}catch{}return D==="readonly"?H:U._completion.then(function(){return H})})}if(B._state.openComplete)return It(new ne.DatabaseClosed(B._state.dbOpenError));if(!B._state.isBeingOpened){if(!B._state.autoOpen)return It(new ne.DatabaseClosed);B.open().catch(ie)}return B._state.dbReadyPromise.then(function(){return Z(B,D,z,V)})}(this.db,u,[this.name],R);return E&&(N._consoleTask=E,N=N.catch(function(Z){return console.trace(Z),It(Z)})),N}finally{I&&Vn()}},Rt.prototype.get=function(u,h){var g=this;return u&&u.constructor===Object?this.where(u).first(h):u==null?It(new ne.Type("Invalid argument to Table.get()")):this._trans("readonly",function(S){return g.core.get({trans:S,key:u}).then(function(x){return g.hook.reading.fire(x)})}).then(h)},Rt.prototype.where=function(u){if(typeof u=="string")return new this.db.WhereClause(this,u);if(a(u))return new this.db.WhereClause(this,"[".concat(u.join("+"),"]"));var h=i(u);if(h.length===1)return this.where(h[0]).equals(u[h[0]]);var g=this.schema.indexes.concat(this.schema.primKey).filter(function(I){if(I.compound&&h.every(function(Z){return 0<=I.keyPath.indexOf(Z)})){for(var N=0;N<h.length;++N)if(h.indexOf(I.keyPath[N])===-1)return!1;return!0}return!1}).sort(function(I,N){return I.keyPath.length-N.keyPath.length})[0];if(g&&this.db._maxKey!==_e)return R=g.keyPath.slice(0,h.length),this.where(R).equals(R.map(function(I){return u[I]}));!g&&Ve&&console.warn("The query ".concat(JSON.stringify(u)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(h.join("+"),"]"));var S=this.schema.idxByName;function x(I,N){return ot(I,N)===0}var R=h.reduce(function(B,N){var Z=B[0],B=B[1],D=S[N],z=u[N];return[Z||D,Z||!D?mn(B,D&&D.multi?function(V){return V=A(V,N),a(V)&&V.some(function(U){return x(z,U)})}:function(V){return x(z,A(V,N))}):B]},[null,null]),E=R[0],R=R[1];return E?this.where(E.name).equals(u[E.keyPath]).filter(R):g?this.filter(R):this.where(h).equals("")},Rt.prototype.filter=function(u){return this.toCollection().and(u)},Rt.prototype.count=function(u){return this.toCollection().count(u)},Rt.prototype.offset=function(u){return this.toCollection().offset(u)},Rt.prototype.limit=function(u){return this.toCollection().limit(u)},Rt.prototype.each=function(u){return this.toCollection().each(u)},Rt.prototype.toArray=function(u){return this.toCollection().toArray(u)},Rt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Rt.prototype.orderBy=function(u){return new this.db.Collection(new this.db.WhereClause(this,a(u)?"[".concat(u.join("+"),"]"):u))},Rt.prototype.reverse=function(){return this.toCollection().reverse()},Rt.prototype.mapToClass=function(u){for(var h=this.db,g=this.name,S=((this.schema.mappedClass=u).prototype instanceof kr&&(u=(R=>{var I=B,N=R;if(typeof N!="function"&&N!==null)throw new TypeError("Class extends value "+String(N)+" is not a constructor or null");function Z(){this.constructor=I}function B(){return R!==null&&R.apply(this,arguments)||this}return n(I,N),I.prototype=N===null?Object.create(N):(Z.prototype=N.prototype,new Z),Object.defineProperty(B.prototype,"db",{get:function(){return h},enumerable:!1,configurable:!0}),B.prototype.table=function(){return g},B})(u)),new Set),x=u.prototype;x;x=d(x))Object.getOwnPropertyNames(x).forEach(function(R){return S.add(R)});function E(R){if(!R)return R;var I,N=Object.create(u.prototype);for(I in R)if(!S.has(I))try{N[I]=R[I]}catch{}return N}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=E,this.hook("reading",E),u},Rt.prototype.defineClass=function(){return this.mapToClass(function(u){c(this,u)})},Rt.prototype.add=function(u,h){var g=this,S=this.schema.primKey,x=S.auto,E=S.keyPath,R=u;return E&&x&&(R=ss(E)(u)),this._trans("readwrite",function(I){return g.core.mutate({trans:I,type:"add",keys:h!=null?[h]:null,values:[R]})}).then(function(I){return I.numFailures?Re.reject(I.failures[0]):I.lastResult}).then(function(I){if(E)try{j(u,E,I)}catch{}return I})},Rt.prototype.upsert=function(u,h){var g=this,S=this.schema.primKey.keyPath;return this._trans("readwrite",function(x){return g.core.get({trans:x,key:u}).then(function(E){var R=E??{};return gh(R,h),S&&j(R,S,u),g.core.mutate({trans:x,type:"put",values:[R],keys:[u],upsert:!0,updates:{keys:[u],changeSpecs:[h]}}).then(function(I){return I.numFailures?Re.reject(I.failures[0]):!!E})})})},Rt.prototype.update=function(u,h){return typeof u!="object"||a(u)?this.where(":id").equals(u).modify(h):(u=A(u,this.schema.primKey.keyPath))===void 0?It(new ne.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(u).modify(h)},Rt.prototype.put=function(u,h){var g=this,S=this.schema.primKey,x=S.auto,E=S.keyPath,R=u;return E&&x&&(R=ss(E)(u)),this._trans("readwrite",function(I){return g.core.mutate({trans:I,type:"put",values:[R],keys:h!=null?[h]:null})}).then(function(I){return I.numFailures?Re.reject(I.failures[0]):I.lastResult}).then(function(I){if(E)try{j(u,E,I)}catch{}return I})},Rt.prototype.delete=function(u){var h=this;return this._trans("readwrite",function(g){return h.core.mutate({trans:g,type:"delete",keys:[u]}).then(function(S){return Da(h,[u],S)}).then(function(S){return S.numFailures?Re.reject(S.failures[0]):void 0})})},Rt.prototype.clear=function(){var u=this;return this._trans("readwrite",function(h){return u.core.mutate({trans:h,type:"deleteRange",range:Mn}).then(function(g){return Da(u,null,g)})}).then(function(h){return h.numFailures?Re.reject(h.failures[0]):void 0})},Rt.prototype.bulkGet=function(u){var h=this;return this._trans("readonly",function(g){return h.core.getMany({keys:u,trans:g}).then(function(S){return S.map(function(x){return h.hook.reading.fire(x)})})})},Rt.prototype.bulkAdd=function(u,h,g){var S=this,x=Array.isArray(h)?h:void 0,E=(g=g||(x?void 0:h))?g.allKeys:void 0;return this._trans("readwrite",function(R){var I=S.schema.primKey,Z=I.auto,I=I.keyPath;if(I&&x)throw new ne.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(x&&x.length!==u.length)throw new ne.InvalidArgument("Arguments objects and keys must have the same length");var N=u.length,Z=I&&Z?u.map(ss(I)):u;return S.core.mutate({trans:R,type:"add",keys:x,values:Z,wantResults:E}).then(function(B){var D=B.numFailures,z=B.failures;if(D===0)return E?B.results:B.lastResult;throw new ke("".concat(S.name,".bulkAdd(): ").concat(D," of ").concat(N," operations failed"),z)})})},Rt.prototype.bulkPut=function(u,h,g){var S=this,x=Array.isArray(h)?h:void 0,E=(g=g||(x?void 0:h))?g.allKeys:void 0;return this._trans("readwrite",function(R){var I=S.schema.primKey,Z=I.auto,I=I.keyPath;if(I&&x)throw new ne.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(x&&x.length!==u.length)throw new ne.InvalidArgument("Arguments objects and keys must have the same length");var N=u.length,Z=I&&Z?u.map(ss(I)):u;return S.core.mutate({trans:R,type:"put",keys:x,values:Z,wantResults:E}).then(function(B){var D=B.numFailures,z=B.failures;if(D===0)return E?B.results:B.lastResult;throw new ke("".concat(S.name,".bulkPut(): ").concat(D," of ").concat(N," operations failed"),z)})})},Rt.prototype.bulkUpdate=function(u){var h=this,g=this.core,S=u.map(function(R){return R.key}),x=u.map(function(R){return R.changes}),E=[];return this._trans("readwrite",function(R){return g.getMany({trans:R,keys:S,cache:"clone"}).then(function(I){var N=[],Z=[],B=(u.forEach(function(D,z){var V=D.key,U=D.changes,H=I[z];if(H){for(var q=0,se=Object.keys(U);q<se.length;q++){var ee=se[q],ue=U[ee];if(ee===h.schema.primKey.keyPath){if(ot(ue,V)!==0)throw new ne.Constraint("Cannot update primary key in bulkUpdate()")}else j(H,ee,ue)}E.push(z),N.push(V),Z.push(H)}}),N.length);return g.mutate({trans:R,type:"put",keys:N,values:Z,updates:{keys:S,changeSpecs:x}}).then(function(D){var z=D.numFailures,V=D.failures;if(z===0)return B;for(var U=0,H=Object.keys(V);U<H.length;U++){var q,se=H[U],ee=E[Number(se)];ee!=null&&(q=V[se],delete V[se],V[ee]=q)}throw new ke("".concat(h.name,".bulkUpdate(): ").concat(z," of ").concat(B," operations failed"),V)})})})},Rt.prototype.bulkDelete=function(u){var h=this,g=u.length;return this._trans("readwrite",function(S){return h.core.mutate({trans:S,type:"delete",keys:u}).then(function(x){return Da(h,u,x)})}).then(function(S){var x=S.numFailures,E=S.failures;if(x===0)return S.lastResult;throw new ke("".concat(h.name,".bulkDelete(): ").concat(x," of ").concat(g," operations failed"),E)})};var yh=Rt;function Rt(){}function Oo(u){function h(R,I){if(I){for(var N=arguments.length,Z=new Array(N-1);--N;)Z[N-1]=arguments[N];return g[R].subscribe.apply(null,Z),u}if(typeof R=="string")return g[R]}var g={};h.addEventType=E;for(var S=1,x=arguments.length;S<x;++S)E(arguments[S]);return h;function E(R,I,N){var Z,B;if(typeof R!="object")return I=I||Ct,B={subscribers:[],fire:N=N||ie,subscribe:function(D){B.subscribers.indexOf(D)===-1&&(B.subscribers.push(D),B.fire=I(B.fire,D))},unsubscribe:function(D){B.subscribers=B.subscribers.filter(function(z){return z!==D}),B.fire=B.subscribers.reduce(I,N)}},g[R]=h[R]=B;i(Z=R).forEach(function(D){var z=Z[D];if(a(z))E(D,Z[D][0],Z[D][1]);else{if(z!=="asap")throw new ne.InvalidArgument("Invalid event config");var V=E(D,ye,function(){for(var U=arguments.length,H=new Array(U);U--;)H[U]=arguments[U];V.subscribers.forEach(function(q){P(function(){q.apply(null,H)})})})}})}}function $o(u,h){return b(h).from({prototype:u}),h}function Bs(u,h){return!(u.filter||u.algorithm||u.or)&&(h?u.justLimit:!u.replayFilter)}function jc(u,h){u.filter=mn(u.filter,h)}function Ic(u,h,g){var S=u.replayFilter;u.replayFilter=S?function(){return mn(S(),h())}:h,u.justLimit=g&&!S}function Fa(u,h){if(u.isPrimKey)return h.primaryKey;var g=h.getIndexByKeyPath(u.index);if(g)return g;throw new ne.Schema("KeyPath "+u.index+" on object store "+h.name+" is not indexed")}function bh(u,h,g){var S=Fa(u,h.schema);return h.openCursor({trans:g,values:!u.keysOnly,reverse:u.dir==="prev",unique:!!u.unique,query:{index:S,range:u.range}})}function Na(u,h,g,S){var x,E,R=u.replayFilter?mn(u.filter,u.replayFilter()):u.filter;return u.or?(x={},E=function(I,N,Z){var B,D;R&&!R(N,Z,function(z){return N.stop(z)},function(z){return N.fail(z)})||((D=""+(B=N.primaryKey))=="[object ArrayBuffer]"&&(D=""+new Uint8Array(B)),p(x,D))||(x[D]=!0,h(I,N,Z))},Promise.all([u.or._iterate(E,g),vh(bh(u,S,g),u.algorithm,E,!u.keysOnly&&u.valueMapper)])):vh(bh(u,S,g),mn(u.algorithm,R),h,!u.keysOnly&&u.valueMapper)}function vh(u,h,g,S){var x=Ee(S?function(E,R,I){return g(S(E),R,I)}:g);return u.then(function(E){if(E)return E.start(function(){var R=function(){return E.continue()};h&&!h(E,function(I){return R=I},function(I){E.stop(I),R=ie},function(I){E.fail(I),R=ie})||x(E.value,E,function(I){return R=I}),R()})})}St.prototype._read=function(u,h){var g=this._ctx;return g.error?g.table._trans(null,It.bind(null,g.error)):g.table._trans("readonly",u).then(h)},St.prototype._write=function(u){var h=this._ctx;return h.error?h.table._trans(null,It.bind(null,h.error)):h.table._trans("readwrite",u,"locked")},St.prototype._addAlgorithm=function(u){var h=this._ctx;h.algorithm=mn(h.algorithm,u)},St.prototype._iterate=function(u,h){return Na(this._ctx,u,h,this._ctx.table.core)},St.prototype.clone=function(u){var h=Object.create(this.constructor.prototype),g=Object.create(this._ctx);return u&&c(g,u),h._ctx=g,h},St.prototype.raw=function(){return this._ctx.valueMapper=null,this},St.prototype.each=function(u){var h=this._ctx;return this._read(function(g){return Na(h,u,g,h.table.core)})},St.prototype.count=function(u){var h=this;return this._read(function(g){var S,x=h._ctx,E=x.table.core;return Bs(x,!0)?E.count({trans:g,query:{index:Fa(x,E.schema),range:x.range}}).then(function(R){return Math.min(R,x.limit)}):(S=0,Na(x,function(){return++S,!1},g,E).then(function(){return S}))}).then(u)},St.prototype.sortBy=function(u,h){var g=u.split(".").reverse(),S=g[0],x=g.length-1;function E(N,Z){return Z?E(N[g[Z]],Z-1):N[S]}var R=this._ctx.dir==="next"?1:-1;function I(N,Z){return ot(E(N,x),E(Z,x))*R}return this.toArray(function(N){return N.sort(I)}).then(h)},St.prototype.toArray=function(u){var h=this;return this._read(function(g){var S,x,E,R=h._ctx;return Bs(R,!0)&&0<R.limit?(S=R.valueMapper,x=Fa(R,R.table.core.schema),R.table.core.query({trans:g,limit:R.limit,values:!0,direction:R.dir==="prev"?"prev":void 0,query:{index:x,range:R.range}}).then(function(I){return I=I.result,S?I.map(S):I})):(E=[],Na(R,function(I){return E.push(I)},g,R.table.core).then(function(){return E}))},u)},St.prototype.offset=function(u){var h=this._ctx;return u<=0||(h.offset+=u,Bs(h)?Ic(h,function(){var g=u;return function(S,x){return g===0||(g===1?--g:x(function(){S.advance(g),g=0}),!1)}}):Ic(h,function(){var g=u;return function(){return--g<0}})),this},St.prototype.limit=function(u){return this._ctx.limit=Math.min(this._ctx.limit,u),Ic(this._ctx,function(){var h=u;return function(g,S,x){return--h<=0&&S(x),0<=h}},!0),this},St.prototype.until=function(u,h){return jc(this._ctx,function(g,S,x){return!u(g.value)||(S(x),h)}),this},St.prototype.first=function(u){return this.limit(1).toArray(function(h){return h[0]}).then(u)},St.prototype.last=function(u){return this.reverse().first(u)},St.prototype.filter=function(u){var h;return jc(this._ctx,function(g){return u(g.value)}),(h=this._ctx).isMatch=mn(h.isMatch,u),this},St.prototype.and=function(u){return this.filter(u)},St.prototype.or=function(u){return new this.db.WhereClause(this._ctx.table,u,this)},St.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},St.prototype.desc=function(){return this.reverse()},St.prototype.eachKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(g,S){u(S.key,S)})},St.prototype.eachUniqueKey=function(u){return this._ctx.unique="unique",this.eachKey(u)},St.prototype.eachPrimaryKey=function(u){var h=this._ctx;return h.keysOnly=!h.isMatch,this.each(function(g,S){u(S.primaryKey,S)})},St.prototype.keys=function(u){var h=this._ctx,g=(h.keysOnly=!h.isMatch,[]);return this.each(function(S,x){g.push(x.key)}).then(function(){return g}).then(u)},St.prototype.primaryKeys=function(u){var h=this._ctx;if(Bs(h,!0)&&0<h.limit)return this._read(function(S){var x=Fa(h,h.table.core.schema);return h.table.core.query({trans:S,values:!1,limit:h.limit,direction:h.dir==="prev"?"prev":void 0,query:{index:x,range:h.range}})}).then(function(S){return S.result}).then(u);h.keysOnly=!h.isMatch;var g=[];return this.each(function(S,x){g.push(x.primaryKey)}).then(function(){return g}).then(u)},St.prototype.uniqueKeys=function(u){return this._ctx.unique="unique",this.keys(u)},St.prototype.firstKey=function(u){return this.limit(1).keys(function(h){return h[0]}).then(u)},St.prototype.lastKey=function(u){return this.reverse().firstKey(u)},St.prototype.distinct=function(){var u,h=this._ctx,h=h.index&&h.table.schema.idxByName[h.index];return h&&h.multi&&(u={},jc(this._ctx,function(S){var S=S.primaryKey.toString(),x=p(u,S);return u[S]=!0,!x})),this},St.prototype.modify=function(u){var h=this,g=this._ctx;return this._write(function(S){function x(H,q){var se=q.failures;z+=H-q.numFailures;for(var ee=0,ue=i(se);ee<ue.length;ee++){var ve=ue[ee];D.push(se[ve])}}var E=typeof u=="function"?u:function(H){return gh(H,u)},R=g.table.core,B=R.schema.primaryKey,I=B.outbound,N=B.extractKey,Z=200,B=h.db._options.modifyChunkSize,D=(B&&(Z=typeof B=="object"?B[R.name]||B["*"]||200:B),[]),z=0,V=[],U=u===Sh;return h.clone().primaryKeys().then(function(H){function q(ee){var ue=Math.min(Z,H.length-ee),ve=H.slice(ee,ee+ue);return(U?Promise.resolve([]):R.getMany({trans:S,keys:ve,cache:"immutable"})).then(function(xe){var Me=[],Te=[],Fe=I?[]:null,Pe=U?ve:[];if(!U)for(var Ne=0;Ne<ue;++Ne){var we=xe[Ne],et={value:W(we),primKey:H[ee+Ne]};E.call(et,et.value,et)!==!1&&(et.value==null?Pe.push(H[ee+Ne]):I||ot(N(we),N(et.value))===0?(Te.push(et.value),I&&Fe.push(H[ee+Ne])):(Pe.push(H[ee+Ne]),Me.push(et.value)))}return Promise.resolve(0<Me.length&&R.mutate({trans:S,type:"add",values:Me}).then(function(tt){for(var at in tt.failures)Pe.splice(parseInt(at),1);x(Me.length,tt)})).then(function(){return(0<Te.length||se&&typeof u=="object")&&R.mutate({trans:S,type:"put",keys:Fe,values:Te,criteria:se,changeSpec:typeof u!="function"&&u,isAdditionalChunk:0<ee}).then(function(tt){return x(Te.length,tt)})}).then(function(){return(0<Pe.length||se&&U)&&R.mutate({trans:S,type:"delete",keys:Pe,criteria:se,isAdditionalChunk:0<ee}).then(function(tt){return Da(g.table,Pe,tt)}).then(function(tt){return x(Pe.length,tt)})}).then(function(){return H.length>ee+ue&&q(ee+Z)})})}var se=Bs(g)&&g.limit===1/0&&(typeof u!="function"||U)&&{index:g.index,range:g.range};return q(0).then(function(){if(0<D.length)throw new le("Error modifying one or more objects",D,z,V);return H.length})})})},St.prototype.delete=function(){var u=this._ctx,h=u.range;return!Bs(u)||u.table.schema.yProps||!u.isPrimKey&&h.type!==3?this.modify(Sh):this._write(function(g){var S=u.table.core.schema.primaryKey,x=h;return u.table.core.count({trans:g,query:{index:S,range:x}}).then(function(E){return u.table.core.mutate({trans:g,type:"deleteRange",range:x}).then(function(N){var I=N.failures,N=N.numFailures;if(N)throw new le("Could not delete some values",Object.keys(I).map(function(Z){return I[Z]}),E-N);return E-N})})})};var tx=St;function St(){}var Sh=function(u,h){return h.value=null};function nx(u,h){return u<h?-1:u===h?0:1}function rx(u,h){return h<u?-1:u===h?0:1}function An(u,h,g){return u=u instanceof xh?new u.Collection(u):u,u._ctx.error=new(g||TypeError)(h),u}function Ws(u){return new u.Collection(u,function(){return wh("")}).limit(0)}function za(V,h,g,S){var x,E,R,I,N,Z,B,D=g.length;if(!g.every(function(H){return typeof H=="string"}))return An(V,tn);function z(H){x=H==="next"?function(se){return se.toUpperCase()}:function(se){return se.toLowerCase()},E=H==="next"?function(se){return se.toLowerCase()}:function(se){return se.toUpperCase()},R=H==="next"?nx:rx;var q=g.map(function(se){return{lower:E(se),upper:x(se)}}).sort(function(se,ee){return R(se.lower,ee.lower)});I=q.map(function(se){return se.upper}),N=q.map(function(se){return se.lower}),B=(Z=H)==="next"?"":S}z("next");var V=new V.Collection(V,function(){return Dr(I[0],N[D-1]+S)}),U=(V._ondirectionchange=function(H){z(H)},0);return V._addAlgorithm(function(H,q,se){var ee=H.key;if(typeof ee=="string"){var ue=E(ee);if(h(ue,N,U))return!0;for(var ve=null,xe=U;xe<D;++xe){var Me=((Te,Fe,Pe,Ne,we,et)=>{for(var tt=Math.min(Te.length,Ne.length),at=-1,mt=0;mt<tt;++mt){var Rn=Fe[mt];if(Rn!==Ne[mt])return we(Te[mt],Pe[mt])<0?Te.substr(0,mt)+Pe[mt]+Pe.substr(mt+1):we(Te[mt],Ne[mt])<0?Te.substr(0,mt)+Ne[mt]+Pe.substr(mt+1):0<=at?Te.substr(0,at)+Fe[at]+Pe.substr(at+1):null;we(Te[mt],Rn)<0&&(at=mt)}return tt<Ne.length&&et==="next"?Te+Pe.substr(Te.length):tt<Te.length&&et==="prev"?Te.substr(0,Pe.length):at<0?null:Te.substr(0,at)+Ne[at]+Pe.substr(at+1)})(ee,ue,I[xe],N[xe],R,Z);Me===null&&ve===null?U=xe+1:(ve===null||0<R(ve,Me))&&(ve=Me)}q(ve!==null?function(){H.continue(ve+B)}:se)}return!1}),V}function Dr(u,h,g,S){return{type:2,lower:u,upper:h,lowerOpen:g,upperOpen:S}}function wh(u){return{type:1,lower:u,upper:u}}Object.defineProperty(rn.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),rn.prototype.between=function(u,h,g,S){g=g!==!1,S=S===!0;try{return 0<this._cmp(u,h)||this._cmp(u,h)===0&&(g||S)&&(!g||!S)?Ws(this):new this.Collection(this,function(){return Dr(u,h,!g,!S)})}catch{return An(this,xt)}},rn.prototype.equals=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return wh(u)})},rn.prototype.above=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Dr(u,void 0,!0)})},rn.prototype.aboveOrEqual=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Dr(u,void 0,!1)})},rn.prototype.below=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Dr(void 0,u,!1,!0)})},rn.prototype.belowOrEqual=function(u){return u==null?An(this,xt):new this.Collection(this,function(){return Dr(void 0,u)})},rn.prototype.startsWith=function(u){return typeof u!="string"?An(this,tn):this.between(u,u+_e,!0,!0)},rn.prototype.startsWithIgnoreCase=function(u){return u===""?this.startsWith(u):za(this,function(h,g){return h.indexOf(g[0])===0},[u],_e)},rn.prototype.equalsIgnoreCase=function(u){return za(this,function(h,g){return h===g[0]},[u],"")},rn.prototype.anyOfIgnoreCase=function(){var u=J.apply(Se,arguments);return u.length===0?Ws(this):za(this,function(h,g){return g.indexOf(h)!==-1},u,"")},rn.prototype.startsWithAnyOfIgnoreCase=function(){var u=J.apply(Se,arguments);return u.length===0?Ws(this):za(this,function(h,g){return g.some(function(S){return h.indexOf(S)===0})},u,_e)},rn.prototype.anyOf=function(){var u,h,g=this,S=J.apply(Se,arguments),x=this._cmp;try{S.sort(x)}catch{return An(this,xt)}return S.length===0?Ws(this):((u=new this.Collection(this,function(){return Dr(S[0],S[S.length-1])}))._ondirectionchange=function(E){x=E==="next"?g._ascending:g._descending,S.sort(x)},h=0,u._addAlgorithm(function(E,R,I){for(var N=E.key;0<x(N,S[h]);)if(++h===S.length)return R(I),!1;return x(N,S[h])===0||(R(function(){E.continue(S[h])}),!1)}),u)},rn.prototype.notEqual=function(u){return this.inAnyRange([[-1/0,u],[u,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},rn.prototype.noneOf=function(){var u=J.apply(Se,arguments);if(u.length===0)return new this.Collection(this);try{u.sort(this._ascending)}catch{return An(this,xt)}var h=u.reduce(function(g,S){return g?g.concat([[g[g.length-1][1],S]]):[[-1/0,S]]},null);return h.push([u[u.length-1],this.db._maxKey]),this.inAnyRange(h,{includeLowers:!1,includeUppers:!1})},rn.prototype.inAnyRange=function(u,se){var g=this,S=this._cmp,x=this._ascending,E=this._descending,R=this._min,I=this._max;if(u.length===0)return Ws(this);if(!u.every(function(ee){return ee[0]!==void 0&&ee[1]!==void 0&&x(ee[0],ee[1])<=0}))return An(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ne.InvalidArgument);var N=!se||se.includeLowers!==!1,Z=se&&se.includeUppers===!0,B,D=x;function z(ee,ue){return D(ee[0],ue[0])}try{(B=u.reduce(function(ee,ue){for(var ve=0,xe=ee.length;ve<xe;++ve){var Me=ee[ve];if(S(ue[0],Me[1])<0&&0<S(ue[1],Me[0])){Me[0]=R(Me[0],ue[0]),Me[1]=I(Me[1],ue[1]);break}}return ve===xe&&ee.push(ue),ee},[])).sort(z)}catch{return An(this,xt)}var V=0,U=Z?function(ee){return 0<x(ee,B[V][1])}:function(ee){return 0<=x(ee,B[V][1])},H=N?function(ee){return 0<E(ee,B[V][0])}:function(ee){return 0<=E(ee,B[V][0])},q=U,se=new this.Collection(this,function(){return Dr(B[0][0],B[B.length-1][1],!N,!Z)});return se._ondirectionchange=function(ee){D=ee==="next"?(q=U,x):(q=H,E),B.sort(z)},se._addAlgorithm(function(ee,ue,ve){for(var xe,Me=ee.key;q(Me);)if(++V===B.length)return ue(ve),!1;return!U(xe=Me)&&!H(xe)||(g._cmp(Me,B[V][1])===0||g._cmp(Me,B[V][0])===0||ue(function(){D===x?ee.continue(B[V][0]):ee.continue(B[V][1])}),!1)}),se},rn.prototype.startsWithAnyOf=function(){var u=J.apply(Se,arguments);return u.every(function(h){return typeof h=="string"})?u.length===0?Ws(this):this.inAnyRange(u.map(function(h){return[h,h+_e]})):An(this,"startsWithAnyOf() only works with strings")};var xh=rn;function rn(){}function Zn(u){return Ee(function(h){return Lo(h),u(h.target.error),!1})}function Lo(u){u.stopPropagation&&u.stopPropagation(),u.preventDefault&&u.preventDefault()}var Do="storagemutated",Oc="x-storagemutated-1",Fr=Oo(null,Do),sx=(dr.prototype._lock=function(){return k(!De.global),++this._reculock,this._reculock!==1||De.global||(De.lockOwnerFor=this),this},dr.prototype._unlock=function(){if(k(!De.global),--this._reculock==0)for(De.global||(De.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var u=this._blockedFuncs.shift();try{ur(u[1],u[0])}catch{}}return this},dr.prototype._locked=function(){return this._reculock&&De.lockOwnerFor!==this},dr.prototype.create=function(u){var h=this;if(this.mode){var g=this.db.idbdb,S=this.db._state.dbOpenError;if(k(!this.idbtrans),!u&&!g)switch(S&&S.name){case"DatabaseClosedError":throw new ne.DatabaseClosed(S);case"MissingAPIError":throw new ne.MissingAPI(S.message,S);default:throw new ne.OpenFailed(S)}if(!this.active)throw new ne.TransactionInactive;k(this._completion._state===null),(u=this.idbtrans=u||(this.db.core||g).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=Ee(function(x){Lo(x),h._reject(u.error)}),u.onabort=Ee(function(x){Lo(x),h.active&&h._reject(new ne.Abort(u.error)),h.active=!1,h.on("abort").fire(x)}),u.oncomplete=Ee(function(){h.active=!1,h._resolve(),"mutatedParts"in u&&Fr.storagemutated.fire(u.mutatedParts)})}return this},dr.prototype._promise=function(u,h,g){var S,x=this;return u==="readwrite"&&this.mode!=="readwrite"?It(new ne.ReadOnly("Transaction is readonly")):this.active?this._locked()?new Re(function(E,R){x._blockedFuncs.push([function(){x._promise(u,h,g).then(E,R)},De])}):g?cr(function(){var E=new Re(function(R,I){x._lock();var N=h(R,I,x);N&&N.then&&N.then(R,I)});return E.finally(function(){return x._unlock()}),E._lib=!0,E}):((S=new Re(function(E,R){var I=h(E,R,x);I&&I.then&&I.then(E,R)}))._lib=!0,S):It(new ne.TransactionInactive)},dr.prototype._root=function(){return this.parent?this.parent._root():this},dr.prototype.waitFor=function(u){var h,g=this._root(),S=Re.resolve(u),x=(g._waitingFor?g._waitingFor=g._waitingFor.then(function(){return S}):(g._waitingFor=S,g._waitingQueue=[],h=g.idbtrans.objectStore(g.storeNames[0]),function E(){for(++g._spinCount;g._waitingQueue.length;)g._waitingQueue.shift()();g._waitingFor&&(h.get(-1/0).onsuccess=E)}()),g._waitingFor);return new Re(function(E,R){S.then(function(I){return g._waitingQueue.push(Ee(E.bind(null,I)))},function(I){return g._waitingQueue.push(Ee(R.bind(null,I)))}).finally(function(){g._waitingFor===x&&(g._waitingFor=null)})})},dr.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ne.Abort))},dr.prototype.table=function(u){var h=this._memoizedTables||(this._memoizedTables={});if(p(h,u))return h[u];var g=this.schema[u];if(g)return(g=new this.db.Table(u,g,this)).core=this.db.core.table(u),h[u]=g;throw new ne.NotFound("Table "+u+" not part of transaction")},dr);function dr(){}function $c(u,h,g,S,x,E,R,I){return{name:u,keyPath:h,unique:g,multi:S,auto:x,compound:E,src:(g&&!R?"&":"")+(S?"*":"")+(x?"++":"")+_h(h),type:I}}function _h(u){return typeof u=="string"?u:u?"["+[].join.call(u,"+")+"]":""}function Lc(u,h,g){return{name:u,primKey:h,indexes:g,mappedClass:null,idxByName:(S=function(x){return[x.name,x]},g.reduce(function(x,E,R){return E=S(E,R),E&&(x[E[0]]=E[1]),x},{}))};var S}var Fo=function(u){try{return u.only([[]]),Fo=function(){return[[]]},[[]]}catch{return Fo=function(){return _e},_e}};function Dc(u){return u==null?function(){}:typeof u=="string"?(h=u).split(".").length===1?function(g){return g[h]}:function(g){return A(g,h)}:function(g){return A(g,u)};var h}function Ch(u){return[].slice.call(u)}var ox=0;function No(u){return u==null?":id":typeof u=="string"?u:"[".concat(u.join("+"),"]")}function ix(u,h,R){function S(q){if(q.type===3)return null;if(q.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var V=q.lower,U=q.upper,H=q.lowerOpen,q=q.upperOpen;return V===void 0?U===void 0?null:h.upperBound(U,!!q):U===void 0?h.lowerBound(V,!!H):h.bound(V,U,!!H,!!q)}function x(z){var V,U,H=z.name;return{name:H,schema:z,mutate:function(q){var se=q.trans,ee=q.type,ue=q.keys,ve=q.values,xe=q.range;return new Promise(function(Me,Te){Me=Ee(Me);var Fe=se.objectStore(H),Pe=Fe.keyPath==null,Ne=ee==="put"||ee==="add";if(!Ne&&ee!=="delete"&&ee!=="deleteRange")throw new Error("Invalid operation type: "+ee);var we,et=(ue||ve||{length:1}).length;if(ue&&ve&&ue.length!==ve.length)throw new Error("Given keys array must have same length as given values array.");if(et===0)return Me({numFailures:0,failures:{},results:[],lastResult:void 0});function tt(_n){++Rn,Lo(_n)}var at=[],mt=[],Rn=0;if(ee==="deleteRange"){if(xe.type===4)return Me({numFailures:Rn,failures:mt,results:[],lastResult:void 0});xe.type===3?at.push(we=Fe.clear()):at.push(we=Fe.delete(S(xe)))}else{var Pe=Ne?Pe?[ve,ue]:[ve,null]:[ue,null],it=Pe[0],yn=Pe[1];if(Ne)for(var bn=0;bn<et;++bn)at.push(we=yn&&yn[bn]!==void 0?Fe[ee](it[bn],yn[bn]):Fe[ee](it[bn])),we.onerror=tt;else for(bn=0;bn<et;++bn)at.push(we=Fe[ee](it[bn])),we.onerror=tt}function Qa(_n){_n=_n.target.result,at.forEach(function(as,tu){return as.error!=null&&(mt[tu]=as.error)}),Me({numFailures:Rn,failures:mt,results:ee==="delete"?ue:at.map(function(as){return as.result}),lastResult:_n})}we.onerror=function(_n){tt(_n),Qa(_n)},we.onsuccess=Qa})},getMany:function(q){var se=q.trans,ee=q.keys;return new Promise(function(ue,ve){ue=Ee(ue);for(var xe,Me=se.objectStore(H),Te=ee.length,Fe=new Array(Te),Pe=0,Ne=0,we=function(at){at=at.target,Fe[at._pos]=at.result,++Ne===Pe&&ue(Fe)},et=Zn(ve),tt=0;tt<Te;++tt)ee[tt]!=null&&((xe=Me.get(ee[tt]))._pos=tt,xe.onsuccess=we,xe.onerror=et,++Pe);Pe===0&&ue(Fe)})},get:function(q){var se=q.trans,ee=q.key;return new Promise(function(ue,ve){ue=Ee(ue);var xe=se.objectStore(H).get(ee);xe.onsuccess=function(Me){return ue(Me.target.result)},xe.onerror=Zn(ve)})},query:(V=N,U=Z,function(q){return new Promise(function(se,ee){se=Ee(se);var ue,ve,xe,Me,et=q.trans,Te=q.values,Fe=q.limit,we=q.query,Pe=(Pe=q.direction)!=null?Pe:"next",Ne=Fe===1/0?void 0:Fe,tt=we.index,we=we.range,et=et.objectStore(H),et=tt.isPrimaryKey?et:et.index(tt.name),tt=S(we);if(Fe===0)return se({result:[]});U?(we={query:tt,count:Ne,direction:Pe},(ue=Te?et.getAll(we):et.getAllKeys(we)).onsuccess=function(at){return se({result:at.target.result})},ue.onerror=Zn(ee)):V&&Pe==="next"?((ue=Te?et.getAll(tt,Ne):et.getAllKeys(tt,Ne)).onsuccess=function(at){return se({result:at.target.result})},ue.onerror=Zn(ee)):(ve=0,xe=!Te&&"openKeyCursor"in et?et.openKeyCursor(tt,Pe):et.openCursor(tt,Pe),Me=[],xe.onsuccess=function(){var at=xe.result;return!at||(Me.push(Te?at.value:at.primaryKey),++ve===Fe)?se({result:Me}):void at.continue()},xe.onerror=Zn(ee))})}),openCursor:function(q){var se=q.trans,ee=q.values,ue=q.query,ve=q.reverse,xe=q.unique;return new Promise(function(Me,Te){Me=Ee(Me);var Ne=ue.index,Fe=ue.range,Pe=se.objectStore(H),Pe=Ne.isPrimaryKey?Pe:Pe.index(Ne.name),Ne=ve?xe?"prevunique":"prev":xe?"nextunique":"next",we=!ee&&"openKeyCursor"in Pe?Pe.openKeyCursor(S(Fe),Ne):Pe.openCursor(S(Fe),Ne);we.onerror=Zn(Te),we.onsuccess=Ee(function(et){var tt,at,mt,Rn,it=we.result;it?(it.___id=++ox,it.done=!1,tt=it.continue.bind(it),at=(at=it.continuePrimaryKey)&&at.bind(it),mt=it.advance.bind(it),Rn=function(){throw new Error("Cursor not stopped")},it.trans=se,it.stop=it.continue=it.continuePrimaryKey=it.advance=function(){throw new Error("Cursor not started")},it.fail=Ee(Te),it.next=function(){var yn=this,bn=1;return this.start(function(){return bn--?yn.continue():yn.stop()}).then(function(){return yn})},it.start=function(yn){function bn(){if(we.result)try{yn()}catch(_n){it.fail(_n)}else it.done=!0,it.start=function(){throw new Error("Cursor behind last entry")},it.stop()}var Qa=new Promise(function(_n,as){_n=Ee(_n),we.onerror=Zn(as),it.fail=as,it.stop=function(tu){it.stop=it.continue=it.continuePrimaryKey=it.advance=Rn,_n(tu)}});return we.onsuccess=Ee(function(_n){we.onsuccess=bn,bn()}),it.continue=tt,it.continuePrimaryKey=at,it.advance=mt,bn(),Qa},Me(it)):Me(null)},Te)})},count:function(q){var se=q.query,ee=q.trans,ue=se.index,ve=se.range;return new Promise(function(xe,Me){var Te=ee.objectStore(H),Te=ue.isPrimaryKey?Te:Te.index(ue.name),Fe=S(ve),Fe=Fe?Te.count(Fe):Te.count();Fe.onsuccess=Ee(function(Pe){return xe(Pe.target.result)}),Fe.onerror=Zn(Me)})}}}E=R,I=Ch((R=u).objectStoreNames),B=0<I.length?E.objectStore(I[0]):{};var E,R={schema:{name:R.name,tables:I.map(function(z){return E.objectStore(z)}).map(function(z){var V=z.keyPath,U=z.autoIncrement,q=a(V),H={},q={name:z.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:V==null,compound:q,keyPath:V,autoIncrement:U,unique:!0,extractKey:Dc(V)},indexes:Ch(z.indexNames).map(function(se){return z.index(se)}).map(function(ve){var xe=ve.name,ee=ve.unique,ue=ve.multiEntry,ve=ve.keyPath,xe={name:xe,compound:a(ve),keyPath:ve,unique:ee,multiEntry:ue,extractKey:Dc(ve)};return H[No(ve)]=xe}),getIndexByKeyPath:function(se){return H[No(se)]}};return H[":id"]=q.primaryKey,V!=null&&(H[No(V)]=q.primaryKey),q})},hasGetAll:0<I.length&&"getAll"in B&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in B},I=R.schema,N=R.hasGetAll,Z=R.hasIdb3Features,B=I.tables.map(x),D={};return B.forEach(function(z){return D[z.name]=z}),{stack:"dbcore",transaction:u.transaction.bind(u),table:function(z){if(D[z])return D[z];throw new Error("Table '".concat(z,"' not found"))},MIN_KEY:-1/0,MAX_KEY:Fo(h),schema:I}}function ax(u,h,g,S){return g=g.IDBKeyRange,h=ix(h,g,S),{dbcore:u.dbcore.reduce(function(x,E){return E=E.create,r(r({},x),E(x))},h)}}function Ba(u,h){var g=h.db,g=ax(u._middlewares,g,u._deps,h);u.core=g.dbcore,u.tables.forEach(function(S){var x=S.name;u.core.schema.tables.some(function(E){return E.name===x})&&(S.core=u.core.table(x),u[x]instanceof u.Table)&&(u[x].core=S.core)})}function Wa(u,h,g,S){g.forEach(function(x){var E=S[x];h.forEach(function(R){var I=function N(Z,B){return _(Z,B)||(Z=d(Z))&&N(Z,B)}(R,x);(!I||"value"in I&&I.value===void 0)&&(R===u.Transaction.prototype||R instanceof u.Transaction?w(R,x,{get:function(){return this.table(x)},set:function(N){m(this,x,{value:N,writable:!0,configurable:!0,enumerable:!0})}}):R[x]=new u.Table(x,E))})})}function Fc(u,h){h.forEach(function(g){for(var S in g)g[S]instanceof u.Table&&delete g[S]})}function lx(u,h){return u._cfg.version-h._cfg.version}function cx(u,h,g,S){var x=u._dbSchema,E=(g.objectStoreNames.contains("$meta")&&!x.$meta&&(x.$meta=Lc("$meta",Th("")[0],[]),u._storeNames.push("$meta")),u._createTransaction("readwrite",u._storeNames,x)),R=(E.create(g),E._completion.catch(S),E._reject.bind(E)),I=De.transless||De;cr(function(){if(De.trans=E,De.transless=I,h!==0)return Ba(u,g),Z=h,((N=E).storeNames.includes("$meta")?N.table("$meta").get("version").then(function(B){return B??Z}):Re.resolve(Z)).then(function(q){var D=u,z=q,V=E,U=g,H=[],q=D._versions,se=D._dbSchema=Ha(0,D.idbdb,U);return(q=q.filter(function(ee){return ee._cfg.version>=z})).length===0?Re.resolve():(q.forEach(function(ee){H.push(function(){var ue,ve,xe,Me=se,Te=ee._cfg.dbschema,Fe=(qa(D,Me,U),qa(D,Te,U),se=D._dbSchema=Te,Nc(Me,Te)),Pe=(Fe.add.forEach(function(Ne){zc(U,Ne[0],Ne[1].primKey,Ne[1].indexes)}),Fe.change.forEach(function(Ne){if(Ne.recreate)throw new ne.Upgrade("Not yet support for changing primary key");var we=U.objectStore(Ne.name);Ne.add.forEach(function(et){return Ua(we,et)}),Ne.change.forEach(function(et){we.deleteIndex(et.name),Ua(we,et)}),Ne.del.forEach(function(et){return we.deleteIndex(et)})}),ee._cfg.contentUpgrade);if(Pe&&ee._cfg.version>z)return Ba(D,U),V._memoizedTables={},ue=$(Te),Fe.del.forEach(function(Ne){ue[Ne]=Me[Ne]}),Fc(D,[D.Transaction.prototype]),Wa(D,[D.Transaction.prototype],i(ue),ue),V.schema=ue,(ve=te(Pe))&&Lr(),Te=Re.follow(function(){var Ne;(xe=Pe(V))&&ve&&(Ne=Gn.bind(null,null),xe.then(Ne,Ne))}),xe&&typeof xe.then=="function"?Re.resolve(xe):Te.then(function(){return xe})}),H.push(function(ue){var ve,xe,Me=ee._cfg.dbschema;ve=Me,xe=ue,[].slice.call(xe.db.objectStoreNames).forEach(function(Te){return ve[Te]==null&&xe.db.deleteObjectStore(Te)}),Fc(D,[D.Transaction.prototype]),Wa(D,[D.Transaction.prototype],D._storeNames,D._dbSchema),V.schema=D._dbSchema}),H.push(function(ue){D.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(D.idbdb.version/10)===ee._cfg.version?(D.idbdb.deleteObjectStore("$meta"),delete D._dbSchema.$meta,D._storeNames=D._storeNames.filter(function(ve){return ve!=="$meta"})):ue.objectStore("$meta").put(ee._cfg.version,"version"))})}),function ee(){return H.length?Re.resolve(H.shift()(V.idbtrans)).then(ee):Re.resolve()}().then(function(){kh(se,U)}))}).catch(R);var N,Z;i(x).forEach(function(B){zc(g,B,x[B].primKey,x[B].indexes)}),Ba(u,g),Re.follow(function(){return u.on.populate.fire(E)}).catch(R)})}function ux(u,h){kh(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 g=Ha(0,u.idbdb,h);qa(u,u._dbSchema,h);for(var S=0,x=Nc(g,u._dbSchema).change;S<x.length;S++){var E=(R=>{if(R.change.length||R.recreate)return console.warn("Unable to patch indexes of table ".concat(R.name," because it has changes on the type of index or primary key.")),{value:void 0};var I=h.objectStore(R.name);R.add.forEach(function(N){Ve&&console.debug("Dexie upgrade patch: Creating missing index ".concat(R.name,".").concat(N.src)),Ua(I,N)})})(x[S]);if(typeof E=="object")return E.value}}function Nc(u,h){var g,S={del:[],add:[],change:[]};for(g in u)h[g]||S.del.push(g);for(g in h){var x=u[g],E=h[g];if(x){var R={name:g,def:E,recreate:!1,del:[],add:[],change:[]};if(""+(x.primKey.keyPath||"")!=""+(E.primKey.keyPath||"")||x.primKey.auto!==E.primKey.auto)R.recreate=!0,S.change.push(R);else{var I=x.idxByName,N=E.idxByName,Z=void 0;for(Z in I)N[Z]||R.del.push(Z);for(Z in N){var B=I[Z],D=N[Z];B?B.src!==D.src&&R.change.push(D):R.add.push(D)}(0<R.del.length||0<R.add.length||0<R.change.length)&&S.change.push(R)}}else S.add.push([g,E])}return S}function zc(u,h,g,S){var x=u.db.createObjectStore(h,g.keyPath?{keyPath:g.keyPath,autoIncrement:g.auto}:{autoIncrement:g.auto});S.forEach(function(E){return Ua(x,E)})}function kh(u,h){i(u).forEach(function(g){h.db.objectStoreNames.contains(g)||(Ve&&console.debug("Dexie: Creating missing table",g),zc(h,g,u[g].primKey,u[g].indexes))})}function Ua(u,h){u.createIndex(h.name,h.keyPath,{unique:h.unique,multiEntry:h.multi})}function Ha(u,h,g){var S={};return C(h.objectStoreNames,0).forEach(function(x){for(var E=g.objectStore(x),R=$c(_h(Z=E.keyPath),Z||"",!0,!1,!!E.autoIncrement,Z&&typeof Z!="string",!0),I=[],N=0;N<E.indexNames.length;++N){var B=E.index(E.indexNames[N]),Z=B.keyPath,B=$c(B.name,Z,!!B.unique,!!B.multiEntry,!1,Z&&typeof Z!="string",!1);I.push(B)}S[x]=Lc(x,R,I)}),S}function qa(u,h,g){for(var S=g.db.objectStoreNames,x=0;x<S.length;++x){var E=S[x],R=g.objectStore(E);u._hasGetAll="getAll"in R;for(var I=0;I<R.indexNames.length;++I){var N,Z=R.indexNames[I],B=R.index(Z).keyPath,B=typeof B=="string"?B:"["+C(B).join("+")+"]";h[E]&&(N=h[E].idxByName[B])&&(N.name=Z,delete h[E].idxByName[B],h[E].idxByName[Z]=N)}}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 Th(u){return u.split(",").map(function(h,g){var x=h.split(":"),S=(S=x[1])==null?void 0:S.trim(),x=(h=x[0].trim()).replace(/([&*]|\+\+)/g,""),E=/^\[/.test(x)?x.match(/^\[(.*)\]$/)[1].split("+"):x;return $c(x,E||null,/\&/.test(h),/\*/.test(h),/\+\+/.test(h),a(E),g===0,S)})}Us.prototype._createTableSchema=Lc,Us.prototype._parseIndexSyntax=Th,Us.prototype._parseStoresSpec=function(u,h){var g=this;i(u).forEach(function(S){if(u[S]!==null){var x=g._parseIndexSyntax(u[S]),E=x.shift();if(!E)throw new ne.Schema("Invalid schema for table "+S+": "+u[S]);if(E.unique=!0,E.multi)throw new ne.Schema("Primary key cannot be multiEntry*");x.forEach(function(R){if(R.auto)throw new ne.Schema("Only primary key can be marked as autoIncrement (++)");if(!R.keyPath)throw new ne.Schema("Index must have a name and cannot be an empty string")}),E=g._createTableSchema(S,E,x),h[S]=E}})},Us.prototype.stores=function(g){var h=this.db,g=(this._cfg.storesSource=this._cfg.storesSource?c(this._cfg.storesSource,g):g,h._versions),S={},x={};return g.forEach(function(E){c(S,E._cfg.storesSource),x=E._cfg.dbschema={},E._parseStoresSpec(S,x)}),h._dbSchema=x,Fc(h,[h._allTables,h,h.Transaction.prototype]),Wa(h,[h._allTables,h,h.Transaction.prototype,this._cfg.tables],i(x),x),h._storeNames=i(x),this},Us.prototype.upgrade=function(u){return this._cfg.contentUpgrade=vt(this._cfg.contentUpgrade||ie,u),this};var dx=Us;function Us(){}var zo=(()=>{var u,h,g;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(u=new Set,h=new FinalizationRegistry(function(S){u.delete(S)}),{toArray:function(){return Array.from(u).map(function(S){return S.deref()}).filter(function(S){return S!==void 0})},add:function(S){var x=new WeakRef(S._novip);u.add(x),h.register(S._novip,x,x),u.size>S._options.maxConnections&&(x=u.values().next().value,u.delete(x),h.unregister(x))},remove:function(S){if(S)for(var x=u.values(),E=x.next();!E.done;){var R=E.value;if(R.deref()===S._novip)return u.delete(R),void h.unregister(R);E=x.next()}}}):(g=[],{toArray:function(){return g},add:function(S){g.push(S._novip)},remove:function(S){S&&(S=g.indexOf(S._novip))!==-1&&g.splice(S,1)}})})();function Bc(u,h){var g=u._dbNamesDB;return g||(g=u._dbNamesDB=new Tr(cn,{addons:[],indexedDB:u,IDBKeyRange:h})).version(1).stores({dbnames:"name"}),g.table("dbnames")}function Wc(u){return u&&typeof u.databases=="function"}function Uc(u){return cr(function(){return De.letThrough=!0,u()})}function Hc(u){return!("from"in u)}var gn=function(u,h){var g;if(!this)return g=new gn,u&&"d"in u&&c(g,u),g;c(this,arguments.length?{d:1,from:u,to:1<arguments.length?h:u}:{d:0})};function Bo(u,h,g){var S=ot(h,g);if(!isNaN(S)){if(0<S)throw RangeError();if(Hc(u))return c(u,{from:h,to:g,d:1});var S=u.l,x=u.r;if(ot(g,u.from)<0)return S?Bo(S,h,g):u.l={from:h,to:g,d:1,l:null,r:null},Ph(u);if(0<ot(h,u.to))return x?Bo(x,h,g):u.r={from:h,to:g,d:1,l:null,r:null},Ph(u);ot(h,u.from)<0&&(u.from=h,u.l=null,u.d=x?x.d+1:1),0<ot(g,u.to)&&(u.to=g,u.r=null,u.d=u.l?u.l.d+1:1),h=!u.r,S&&!u.l&&Wo(u,S),x&&h&&Wo(u,x)}}function Wo(u,h){Hc(h)||function g(S,x){var E=x.from,R=x.l,I=x.r;Bo(S,E,x.to),R&&g(S,R),I&&g(S,I)}(u,h)}function Eh(u,h){var g=Ka(h),S=g.next();if(!S.done)for(var x=S.value,E=Ka(u),R=E.next(x.from),I=R.value;!S.done&&!R.done;){if(ot(I.from,x.to)<=0&&0<=ot(I.to,x.from))return!0;ot(x.from,I.from)<0?x=(S=g.next(I.from)).value:I=(R=E.next(x.from)).value}return!1}function Ka(u){var h=Hc(u)?null:{s:0,n:u};return{next:function(g){for(var S=0<arguments.length;h;)switch(h.s){case 0:if(h.s=1,S)for(;h.n.l&&ot(g,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,!S||ot(g,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 Ph(u){var h,g,S,x=(((x=u.r)==null?void 0:x.d)||0)-(((x=u.l)==null?void 0:x.d)||0),x=1<x?"r":x<-1?"l":"";x&&(h=x=="r"?"l":"r",g=r({},u),S=u[x],u.from=S.from,u.to=S.to,u[x]=S[x],g[x]=S[h],(u[h]=g).d=Mh(g)),u.d=Mh(u)}function Mh(g){var h=g.r,g=g.l;return(h?g?Math.max(h.d,g.d):h.d:g?g.d:0)+1}function Xa(u,h){return i(h).forEach(function(g){u[g]?Wo(u[g],h[g]):u[g]=function S(x){var E,R,I={};for(E in x)p(x,E)&&(R=x[E],I[E]=!R||typeof R!="object"||K.has(R.constructor)?R:S(R));return I}(h[g])}),u}function qc(u,h){return u.all||h.all||Object.keys(u).some(function(g){return h[g]&&Eh(h[g],u[g])})}y(gn.prototype,((Nt={add:function(u){return Wo(this,u),this},addKey:function(u){return Bo(this,u,u),this},addKeys:function(u){var h=this;return u.forEach(function(g){return Bo(h,g,g)}),this},hasKey:function(u){var h=Ka(this).next(u).value;return h&&ot(h.from,u)<=0&&0<=ot(h.to,u)}})[ce]=function(){return Ka(this)},Nt));var os={},Kc={},Xc=!1;function Ya(u){Xa(Kc,u),Xc||(Xc=!0,setTimeout(function(){Xc=!1,Yc(Kc,!(Kc={}))},0))}function Yc(u,h){h===void 0&&(h=!1);var g=new Set;if(u.all)for(var S=0,x=Object.values(os);S<x.length;S++)Ah(I=x[S],u,g,h);else for(var E in u){var R,I,E=/^idb\:\/\/(.*)\/(.*)\//.exec(E);E&&(R=E[1],E=E[2],I=os["idb://".concat(R,"/").concat(E)])&&Ah(I,u,g,h)}g.forEach(function(N){return N()})}function Ah(u,h,g,S){for(var x=[],E=0,R=Object.entries(u.queries.query);E<R.length;E++){for(var I=R[E],N=I[0],Z=[],B=0,D=I[1];B<D.length;B++){var z=D[B];qc(h,z.obsSet)?z.subscribers.forEach(function(q){return g.add(q)}):S&&Z.push(z)}S&&x.push([N,Z])}if(S)for(var V=0,U=x;V<U.length;V++){var H=U[V],N=H[0],Z=H[1];u.queries.query[N]=Z}}function fx(u){var h=u._state,g=u._deps.indexedDB;if(h.isBeingOpened||u.idbdb)return h.dbReadyPromise.then(function(){return h.dbOpenError?It(h.dbOpenError):u});h.isBeingOpened=!0,h.dbOpenError=null,h.openComplete=!1;var S=h.openCanceller,x=Math.round(10*u.verno),E=!1;function R(){if(h.openCanceller!==S)throw new ne.DatabaseClosed("db.open() was cancelled")}function I(){return new Re(function(z,V){if(R(),!g)throw new ne.MissingAPI;var U=u.name,H=h.autoSchema||!x?g.open(U):g.open(U,x);if(!H)throw new ne.MissingAPI;H.onerror=Zn(V),H.onblocked=Ee(u._fireOnBlocked),H.onupgradeneeded=Ee(function(q){var se;B=H.transaction,h.autoSchema&&!u._options.allowEmptyDB?(H.onerror=Lo,B.abort(),H.result.close(),(se=g.deleteDatabase(U)).onsuccess=se.onerror=Ee(function(){V(new ne.NoSuchDatabase("Database ".concat(U," doesnt exist")))})):(B.onerror=Zn(V),se=q.oldVersion>Math.pow(2,62)?0:q.oldVersion,D=se<1,u.idbdb=H.result,E&&ux(u,B),cx(u,se/10,B,V))},V),H.onsuccess=Ee(function(){B=null;var q,se,ee,ue,ve,xe,Me=u.idbdb=H.result,Te=C(Me.objectStoreNames);if(0<Te.length)try{var Fe=Me.transaction((ve=Te).length===1?ve[0]:ve,"readonly");if(h.autoSchema)xe=Me,ue=Fe,(ee=u).verno=xe.version/10,ue=ee._dbSchema=Ha(0,xe,ue),ee._storeNames=C(xe.objectStoreNames,0),Wa(ee,[ee._allTables],i(ue),ue);else if(qa(u,u._dbSchema,Fe),se=Fe,((se=Nc(Ha(0,(q=u).idbdb,se),q._dbSchema)).add.length||se.change.some(function(Pe){return Pe.add.length||Pe.change.length}))&&!E)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(),x=Me.version+1,E=!0,z(I());Ba(u,Fe)}catch{}zo.add(u),Me.onversionchange=Ee(function(Pe){h.vcFired=!0,u.on("versionchange").fire(Pe)}),Me.onclose=Ee(function(){u.close({disableAutoOpen:!1})}),D&&(Te=u._deps,ve=U,Wc(xe=Te.indexedDB)||ve===cn||Bc(xe,Te.IDBKeyRange).put({name:ve}).catch(ie)),z()},V)}).catch(function(z){switch(z==null?void 0:z.name){case"UnknownError":if(0<h.PR1398_maxLoop)return h.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),I();break;case"VersionError":if(0<x)return x=0,I()}return Re.reject(z)})}var N,Z=h.dbReadyResolve,B=null,D=!1;return Re.race([S,(typeof navigator>"u"?Re.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(z){function V(){return indexedDB.databases().finally(z)}N=setInterval(V,100),V()}).finally(function(){return clearInterval(N)}):Promise.resolve()).then(I)]).then(function(){return R(),h.onReadyBeingFired=[],Re.resolve(Uc(function(){return u.on.ready.fire(u.vip)})).then(function z(){var V;if(0<h.onReadyBeingFired.length)return V=h.onReadyBeingFired.reduce(vt,ie),h.onReadyBeingFired=[],Re.resolve(Uc(function(){return V(u.vip)})).then(z)})}).finally(function(){h.openCanceller===S&&(h.onReadyBeingFired=null,h.isBeingOpened=!1)}).catch(function(z){h.dbOpenError=z;try{B&&B.abort()}catch{}return S===h.openCanceller&&u._close(),It(z)}).finally(function(){h.openComplete=!0,Z()}).then(function(){var z;return D&&(z={},u.tables.forEach(function(V){V.schema.indexes.forEach(function(U){U.name&&(z["idb://".concat(u.name,"/").concat(V.name,"/").concat(U.name)]=new gn(-1/0,[[[]]]))}),z["idb://".concat(u.name,"/").concat(V.name,"/")]=z["idb://".concat(u.name,"/").concat(V.name,"/:dels")]=new gn(-1/0,[[[]]])}),Fr(Do).fire(z),Yc(z,!0)),u})}function Vc(u){function h(E){return u.next(E)}var g=x(h),S=x(function(E){return u.throw(E)});function x(E){return function(I){var I=E(I),N=I.value;return I.done?N:N&&typeof N.then=="function"?N.then(g,S):a(N)?Promise.all(N).then(g,S):g(N)}}return x(h)()}function Va(u,h,g){for(var S=a(u)?u.slice():[u],x=0;x<g;++x)S.push(h);return S}var hx={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(u){return r(r({},u),{table:function(S){var g=u.table(S),S=g.schema,x={},E=[];function R(z,V,U){var ee=No(z),H=x[ee]=x[ee]||[],q=z==null?0:typeof z=="string"?1:z.length,se=0<V,ee=r(r({},U),{name:se?"".concat(ee,"(virtual-from:").concat(U.name,")"):U.name,lowLevelIndex:U,isVirtual:se,keyTail:V,keyLength:q,extractKey:Dc(z),unique:!se&&U.unique});return H.push(ee),ee.isPrimaryKey||E.push(ee),1<q&&R(q===2?z[0]:z.slice(0,q-1),V+1,U),H.sort(function(ue,ve){return ue.keyTail-ve.keyTail}),ee}var I=R(S.primaryKey.keyPath,0,S.primaryKey);x[":id"]=[I];for(var N=0,Z=S.indexes;N<Z.length;N++){var B=Z[N];R(B.keyPath,0,B)}function D(z){var V,U=z.query.index;return U.isVirtual?r(r({},z),{query:{index:U.lowLevelIndex,range:(V=z.query.range,U=U.keyTail,{type:V.type===1?2:V.type,lower:Va(V.lower,V.lowerOpen?u.MAX_KEY:u.MIN_KEY,U),lowerOpen:!0,upper:Va(V.upper,V.upperOpen?u.MIN_KEY:u.MAX_KEY,U),upperOpen:!0})}}):z}return r(r({},g),{schema:r(r({},S),{primaryKey:I,indexes:E,getIndexByKeyPath:function(z){return(z=x[No(z)])&&z[0]}}),count:function(z){return g.count(D(z))},query:function(z){return g.query(D(z))},openCursor:function(z){var V=z.query.index,U=V.keyTail,H=V.keyLength;return V.isVirtual?g.openCursor(D(z)).then(function(se){return se&&q(se)}):g.openCursor(z);function q(se){return Object.create(se,{continue:{value:function(ee){ee!=null?se.continue(Va(ee,z.reverse?u.MAX_KEY:u.MIN_KEY,U)):z.unique?se.continue(se.key.slice(0,H).concat(z.reverse?u.MIN_KEY:u.MAX_KEY,U)):se.continue()}},continuePrimaryKey:{value:function(ee,ue){se.continuePrimaryKey(Va(ee,u.MAX_KEY,U),ue)}},primaryKey:{get:function(){return se.primaryKey}},key:{get:function(){var ee=se.key;return H===1?ee[0]:ee.slice(0,H)}},value:{get:function(){return se.value}}})}}})}})}};function Gc(u,h,g,S){return g=g||{},S=S||"",i(u).forEach(function(x){var E,R,I;p(h,x)?(E=u[x],R=h[x],typeof E=="object"&&typeof R=="object"&&E&&R?(I=Y(E))!==Y(R)?g[S+x]=h[x]:I==="Object"?Gc(E,R,g,S+x+"."):E!==R&&(g[S+x]=h[x]):E!==R&&(g[S+x]=h[x])):g[S+x]=void 0}),i(h).forEach(function(x){p(u,x)||(g[S+x]=h[x])}),g}function Jc(u,h){return h.type==="delete"?h.keys:h.keys||h.values.map(u.extractKey)}var px={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(u){return r(r({},u),{table:function(h){var g=u.table(h),S=g.schema.primaryKey;return r(r({},g),{mutate:function(x){var E=De.trans,R=E.table(h).hook,I=R.deleting,N=R.creating,Z=R.updating;switch(x.type){case"add":if(N.fire===ie)break;return E._promise("readwrite",function(){return B(x)},!0);case"put":if(N.fire===ie&&Z.fire===ie)break;return E._promise("readwrite",function(){return B(x)},!0);case"delete":if(I.fire===ie)break;return E._promise("readwrite",function(){return B(x)},!0);case"deleteRange":if(I.fire===ie)break;return E._promise("readwrite",function(){return function D(z,V,U){return g.query({trans:z,values:!1,query:{index:S,range:V},limit:U}).then(function(H){var q=H.result;return B({type:"delete",keys:q,trans:z}).then(function(se){return 0<se.numFailures?Promise.reject(se.failures[0]):q.length<U?{failures:[],numFailures:0,lastResult:void 0}:D(z,r(r({},V),{lower:q[q.length-1],lowerOpen:!0}),U)})})}(x.trans,x.range,1e4)},!0)}return g.mutate(x);function B(D){var z,V,U,H=De.trans,q=D.keys||Jc(S,D);if(q)return(D=D.type==="add"||D.type==="put"?r(r({},D),{keys:q}):r({},D)).type!=="delete"&&(D.values=s([],D.values)),D.keys&&(D.keys=s([],D.keys)),z=g,U=q,((V=D).type==="add"?Promise.resolve([]):z.getMany({trans:V.trans,keys:U,cache:"immutable"})).then(function(se){var ee=q.map(function(ue,ve){var xe,Me,Te,Fe=se[ve],Pe={onerror:null,onsuccess:null};return D.type==="delete"?I.fire.call(Pe,ue,Fe,H):D.type==="add"||Fe===void 0?(xe=N.fire.call(Pe,ue,D.values[ve],H),ue==null&&xe!=null&&(D.keys[ve]=ue=xe,S.outbound||j(D.values[ve],S.keyPath,ue))):(xe=Gc(Fe,D.values[ve]),(Me=Z.fire.call(Pe,xe,ue,Fe,H))&&(Te=D.values[ve],Object.keys(Me).forEach(function(Ne){p(Te,Ne)?Te[Ne]=Me[Ne]:j(Te,Ne,Me[Ne])}))),Pe});return g.mutate(D).then(function(ue){for(var ve=ue.failures,xe=ue.results,Me=ue.numFailures,ue=ue.lastResult,Te=0;Te<q.length;++Te){var Fe=(xe||q)[Te],Pe=ee[Te];Fe==null?Pe.onerror&&Pe.onerror(ve[Te]):Pe.onsuccess&&Pe.onsuccess(D.type==="put"&&se[Te]?D.values[Te]:Fe)}return{failures:ve,results:xe,numFailures:Me,lastResult:ue}}).catch(function(ue){return ee.forEach(function(ve){return ve.onerror&&ve.onerror(ue)}),Promise.reject(ue)})});throw new Error("Keys missing")}}})}})}};function Rh(u,h,g){try{if(!h||h.keys.length<u.length)return null;for(var S=[],x=0,E=0;x<h.keys.length&&E<u.length;++x)ot(h.keys[x],u[E])===0&&(S.push(g?W(h.values[x]):h.values[x]),++E);return S.length===u.length?S:null}catch{return null}}var mx={stack:"dbcore",level:-1,create:function(u){return{table:function(h){var g=u.table(h);return r(r({},g),{getMany:function(S){var x;return S.cache?(x=Rh(S.keys,S.trans._cache,S.cache==="clone"))?Re.resolve(x):g.getMany(S).then(function(E){return S.trans._cache={keys:S.keys,values:S.cache==="clone"?W(E):E},E}):g.getMany(S)},mutate:function(S){return S.type!=="add"&&(S.trans._cache=null),g.mutate(S)}})}}}};function jh(u,h){return u.trans.mode==="readonly"&&!!u.subscr&&!u.trans.explicit&&u.trans.db._options.cache!=="disabled"&&!h.schema.primaryKey.outbound}function Ih(u,h){switch(u){case"query":return h.values&&!h.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var gx={stack:"dbcore",level:0,name:"Observability",create:function(u){var h=u.schema.name,g=new gn(u.MIN_KEY,u.MAX_KEY);return r(r({},u),{transaction:function(S,x,E){if(De.subscr&&x!=="readonly")throw new ne.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(De.querier));return u.transaction(S,x,E)},table:function(S){function x(q){var H,q=q.query;return[H=q.index,new gn((H=(q=q.range).lower)!=null?H:u.MIN_KEY,(H=q.upper)!=null?H:u.MAX_KEY)]}var E=u.table(S),R=E.schema,I=R.primaryKey,N=R.indexes,Z=I.extractKey,B=I.outbound,D=I.autoIncrement&&N.filter(function(U){return U.compound&&U.keyPath.includes(I.keyPath)}),z=r(r({},E),{mutate:function(U){function H(we){return we="idb://".concat(h,"/").concat(S,"/").concat(we),ve[we]||(ve[we]=new gn)}var q,se,ee,ue=U.trans,ve=U.mutatedParts||(U.mutatedParts={}),xe=H(""),Me=H(":dels"),Te=U.type,Pe=U.type==="deleteRange"?[U.range]:U.type==="delete"?[U.keys]:U.values.length<50?[Jc(I,U).filter(function(we){return we}),U.values]:[],Fe=Pe[0],Pe=Pe[1],Ne=U.trans._cache;return a(Fe)?(xe.addKeys(Fe),(Te=Te==="delete"||Fe.length===Pe.length?Rh(Fe,Ne):null)||Me.addKeys(Fe),(Te||Pe)&&(q=H,se=Te,ee=Pe,R.indexes.forEach(function(we){var et=q(we.name||"");function tt(mt){return mt!=null?we.extractKey(mt):null}function at(mt){we.multiEntry&&a(mt)?mt.forEach(function(Rn){return et.addKey(Rn)}):et.addKey(mt)}(se||ee).forEach(function(mt,yn){var it=se&&tt(se[yn]),yn=ee&&tt(ee[yn]);ot(it,yn)!==0&&(it!=null&&at(it),yn!=null)&&at(yn)})}))):Fe?(Pe={from:(Ne=Fe.lower)!=null?Ne:u.MIN_KEY,to:(Te=Fe.upper)!=null?Te:u.MAX_KEY},Me.add(Pe),xe.add(Pe)):(xe.add(g),Me.add(g),R.indexes.forEach(function(we){return H(we.name).add(g)})),E.mutate(U).then(function(we){return!Fe||U.type!=="add"&&U.type!=="put"||(xe.addKeys(we.results),D&&D.forEach(function(et){for(var tt=U.values.map(function(it){return et.extractKey(it)}),at=et.keyPath.findIndex(function(it){return it===I.keyPath}),mt=0,Rn=we.results.length;mt<Rn;++mt)tt[mt][at]=we.results[mt];H(et.name).addKeys(tt)})),ue.mutatedParts=Xa(ue.mutatedParts||{},ve),we})}}),V={get:function(U){return[I,new gn(U.key)]},getMany:function(U){return[I,new gn().addKeys(U.keys)]},count:x,query:x,openCursor:x};return i(V).forEach(function(U){z[U]=function(H){var q=De.subscr,se=!!q,ee=jh(De,E)&&Ih(U,H)?H.obsSet={}:q;if(se){var ue,q=function(Pe){return Pe="idb://".concat(h,"/").concat(S,"/").concat(Pe),ee[Pe]||(ee[Pe]=new gn)},ve=q(""),xe=q(":dels"),se=V[U](H),Me=se[0],se=se[1];if((U==="query"&&Me.isPrimaryKey&&!H.values?xe:q(Me.name||"")).add(se),!Me.isPrimaryKey){if(U!=="count")return ue=U==="query"&&B&&H.values&&E.query(r(r({},H),{values:!1})),E[U].apply(this,arguments).then(function(Pe){if(U==="query"){if(B&&H.values)return ue.then(function(tt){return tt=tt.result,ve.addKeys(tt),Pe});var Ne=H.values?Pe.result.map(Z):Pe.result;(H.values?ve:xe).addKeys(Ne)}else{var we,et;if(U==="openCursor")return et=H.values,(we=Pe)&&Object.create(we,{key:{get:function(){return xe.addKey(we.primaryKey),we.key}},primaryKey:{get:function(){var tt=we.primaryKey;return xe.addKey(tt),tt}},value:{get:function(){return et&&ve.addKey(we.primaryKey),we.value}}})}return Pe});xe.add(g)}}return E[U].apply(this,arguments)}}),z}})}};function Oh(u,h,g){var S;return g.numFailures===0?h:h.type==="deleteRange"||(S=h.keys?h.keys.length:"values"in h&&h.values?h.values.length:1,g.numFailures===S)?null:(S=r({},h),a(S.keys)&&(S.keys=S.keys.filter(function(x,E){return!(E in g.failures)})),"values"in S&&a(S.values)&&(S.values=S.values.filter(function(x,E){return!(E in g.failures)})),S)}function Qc(u,h){return g=u,((S=h).lower===void 0||(S.lowerOpen?0<ot(g,S.lower):0<=ot(g,S.lower)))&&(g=u,(S=h).upper===void 0||(S.upperOpen?ot(g,S.upper)<0:ot(g,S.upper)<=0));var g,S}function $h(u,h,g,S,x,E){var R,I,N,Z,B,D,z;return!g||g.length===0||(R=h.query.index,I=R.multiEntry,N=h.query.range,Z=S.schema.primaryKey.extractKey,B=R.extractKey,D=(R.lowLevelIndex||R).extractKey,(S=g.reduce(function(V,U){var H=V,q=[];if(U.type==="add"||U.type==="put")for(var se=new gn,ee=U.values.length-1;0<=ee;--ee){var ue,ve=U.values[ee],xe=Z(ve);!se.hasKey(xe)&&(ue=B(ve),I&&a(ue)?ue.some(function(Ne){return Qc(Ne,N)}):Qc(ue,N))&&(se.addKey(xe),q.push(ve))}switch(U.type){case"add":var Me=new gn().addKeys(h.values?V.map(function(we){return Z(we)}):V),H=V.concat(h.values?q.filter(function(we){return we=Z(we),!Me.hasKey(we)&&(Me.addKey(we),!0)}):q.map(function(we){return Z(we)}).filter(function(we){return!Me.hasKey(we)&&(Me.addKey(we),!0)}));break;case"put":var Te=new gn().addKeys(U.values.map(function(we){return Z(we)}));H=V.filter(function(we){return!Te.hasKey(h.values?Z(we):we)}).concat(h.values?q:q.map(function(we){return Z(we)}));break;case"delete":var Fe=new gn().addKeys(U.keys);H=V.filter(function(we){return!Fe.hasKey(h.values?Z(we):we)});break;case"deleteRange":var Pe=U.range;H=V.filter(function(we){return!Qc(Z(we),Pe)})}return H},u))===u)?u:(z=function(V,U){return ot(D(V),D(U))||ot(Z(V),Z(U))},S.sort(h.direction==="prev"||h.direction==="prevunique"?function(V,U){return z(U,V)}:z),h.limit&&h.limit<1/0&&(S.length>h.limit?S.length=h.limit:u.length===h.limit&&S.length<h.limit&&(x.dirty=!0)),E?Object.freeze(S):S)}function Lh(u,h){return ot(u.lower,h.lower)===0&&ot(u.upper,h.upper)===0&&!!u.lowerOpen==!!h.lowerOpen&&!!u.upperOpen==!!h.upperOpen}function yx(u,h){return((g,S,x,E)=>{if(g===void 0)return S!==void 0?-1:0;if(S===void 0)return 1;if((g=ot(g,S))===0){if(x&&E)return 0;if(x)return 1;if(E)return-1}return g})(u.lower,h.lower,u.lowerOpen,h.lowerOpen)<=0&&0<=((g,S,x,E)=>{if(g===void 0)return S!==void 0?1:0;if(S===void 0)return-1;if((g=ot(g,S))===0){if(x&&E)return 0;if(x)return-1;if(E)return 1}return g})(u.upper,h.upper,u.upperOpen,h.upperOpen)}function bx(u,h,g,S){u.subscribers.add(g),S.addEventListener("abort",function(){var x,E;u.subscribers.delete(g),u.subscribers.size===0&&(x=u,E=h,setTimeout(function(){x.subscribers.size===0&&oe(E,x)},3e3))})}var vx={stack:"dbcore",level:0,name:"Cache",create:function(u){var h=u.schema.name;return r(r({},u),{transaction:function(g,S,x){var E,R,I=u.transaction(g,S,x);return S==="readwrite"&&(x=(E=new AbortController).signal,I.addEventListener("abort",(R=function(N){return function(){if(E.abort(),S==="readwrite"){for(var Z=new Set,B=0,D=g;B<D.length;B++){var z=D[B],V=os["idb://".concat(h,"/").concat(z)];if(V){var U=u.table(z),H=V.optimisticOps.filter(function(we){return we.trans===I});if(I._explicit&&N&&I.mutatedParts)for(var q=0,se=Object.values(V.queries.query);q<se.length;q++)for(var ee=0,ue=(Me=se[q]).slice();ee<ue.length;ee++)qc((Te=ue[ee]).obsSet,I.mutatedParts)&&(oe(Me,Te),Te.subscribers.forEach(function(we){return Z.add(we)}));else if(0<H.length){V.optimisticOps=V.optimisticOps.filter(function(we){return we.trans!==I});for(var ve=0,xe=Object.values(V.queries.query);ve<xe.length;ve++)for(var Me,Te,Fe,Pe=0,Ne=(Me=xe[ve]).slice();Pe<Ne.length;Pe++)(Te=Ne[Pe]).res!=null&&I.mutatedParts&&(N&&!Te.dirty?(Fe=Object.isFrozen(Te.res),Fe=$h(Te.res,Te.req,H,U,Te,Fe),Te.dirty?(oe(Me,Te),Te.subscribers.forEach(function(we){return Z.add(we)})):Fe!==Te.res&&(Te.res=Fe,Te.promise=Re.resolve({result:Fe}))):(Te.dirty&&oe(Me,Te),Te.subscribers.forEach(function(we){return Z.add(we)})))}}}Z.forEach(function(we){return we()})}}})(!1),{signal:x}),I.addEventListener("error",R(!1),{signal:x}),I.addEventListener("complete",R(!0),{signal:x})),I},table:function(g){var S=u.table(g),x=S.schema.primaryKey;return r(r({},S),{mutate:function(E){var R,I=De.trans;return!x.outbound&&I.db._options.cache!=="disabled"&&!I.explicit&&I.idbtrans.mode==="readwrite"&&(R=os["idb://".concat(h,"/").concat(g)])?(I=S.mutate(E),E.type!=="add"&&E.type!=="put"||!(50<=E.values.length||Jc(x,E).some(function(N){return N==null}))?(R.optimisticOps.push(E),E.mutatedParts&&Ya(E.mutatedParts),I.then(function(N){0<N.numFailures&&(oe(R.optimisticOps,E),(N=Oh(0,E,N))&&R.optimisticOps.push(N),E.mutatedParts)&&Ya(E.mutatedParts)}),I.catch(function(){oe(R.optimisticOps,E),E.mutatedParts&&Ya(E.mutatedParts)})):I.then(function(N){var Z=Oh(0,r(r({},E),{values:E.values.map(function(B,D){var z;return N.failures[D]?B:(j(z=(z=x.keyPath)!=null&&z.includes(".")?W(B):r({},B),x.keyPath,N.results[D]),z)})}),N);R.optimisticOps.push(Z),queueMicrotask(function(){return E.mutatedParts&&Ya(E.mutatedParts)})}),I):S.mutate(E)},query:function(E){var R,I,N,Z,B,D,z;return jh(De,S)&&Ih("query",E)?(R=((N=De.trans)==null?void 0:N.db._options.cache)==="immutable",I=(N=De).requery,N=N.signal,D=((V,U,H,q)=>{var se=os["idb://".concat(V,"/").concat(U)];if(!se)return[];if(!(V=se.queries[H]))return[null,!1,se,null];var ee=V[(q.query?q.query.index.name:null)||""];if(!ee)return[null,!1,se,null];switch(H){case"query":var ue=(ve=q.direction)!=null?ve:"next",ve=ee.find(function(xe){var Me;return xe.req.limit===q.limit&&xe.req.values===q.values&&((Me=xe.req.direction)!=null?Me:"next")===ue&&Lh(xe.req.query.range,q.query.range)});return ve?[ve,!0,se,ee]:[ee.find(function(xe){var Me;return("limit"in xe.req?xe.req.limit:1/0)>=q.limit&&((Me=xe.req.direction)!=null?Me:"next")===ue&&(!q.values||xe.req.values)&&yx(xe.req.query.range,q.query.range)}),!1,se,ee];case"count":return ve=ee.find(function(xe){return Lh(xe.req.query.range,q.query.range)}),[ve,!!ve,se,ee]}})(h,g,"query",E),z=D[0],Z=D[2],B=D[3],z&&D[1]?z.obsSet=E.obsSet:(D=S.query(E).then(function(V){var U=V.result;if(z&&(z.res=U),R){for(var H=0,q=U.length;H<q;++H)Object.freeze(U[H]);Object.freeze(U)}else V.result=W(U);return V}).catch(function(V){return B&&z&&oe(B,z),Promise.reject(V)}),z={obsSet:E.obsSet,promise:D,subscribers:new Set,type:"query",req:E,dirty:!1},B?B.push(z):(B=[z],(Z=Z||(os["idb://".concat(h,"/").concat(g)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[E.query.index.name||""]=B)),bx(z,B,I,N),z.promise.then(function(V){return{result:$h(V.result,E,Z==null?void 0:Z.optimisticOps,S,z,R)}})):S.query(E)}})}})}};function Ga(u,h){return new Proxy(u,{get:function(g,S,x){return S==="db"?h:Reflect.get(g,S,x)}})}Bt.prototype.version=function(u){if(isNaN(u)||u<.1)throw new ne.Type("Given version is not a positive number");if(u=Math.round(10*u)/10,this.idbdb||this._state.isBeingOpened)throw new ne.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,u);var h=this._versions,g=h.filter(function(S){return S._cfg.version===u})[0];return g||(g=new this.Version(u),h.push(g),h.sort(lx),g.stores({}),this._state.autoSchema=!1),g},Bt.prototype._whenReady=function(u){var h=this;return this.idbdb&&(this._state.openComplete||De.letThrough||this._vip)?u():new Re(function(g,S){if(h._state.openComplete)return S(new ne.DatabaseClosed(h._state.dbOpenError));if(!h._state.isBeingOpened){if(!h._state.autoOpen)return void S(new ne.DatabaseClosed);h.open().catch(ie)}h._state.dbReadyPromise.then(g,S)}).then(u)},Bt.prototype.use=function(x){var h=x.stack,g=x.create,S=x.level,x=x.name,E=(x&&this.unuse({stack:h,name:x}),this._middlewares[h]||(this._middlewares[h]=[]));return E.push({stack:h,create:g,level:S??10,name:x}),E.sort(function(R,I){return R.level-I.level}),this},Bt.prototype.unuse=function(u){var h=u.stack,g=u.name,S=u.create;return h&&this._middlewares[h]&&(this._middlewares[h]=this._middlewares[h].filter(function(x){return S?x.create!==S:!!g&&x.name!==g})),this},Bt.prototype.open=function(){var u=this;return ur(pn,function(){return fx(u)})},Bt.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var u=this._state;if(zo.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}u.isBeingOpened||(u.dbReadyPromise=new Re(function(h){u.dbReadyResolve=h}),u.openCanceller=new Re(function(h,g){u.cancelOpen=g}))},Bt.prototype.close=function(h){var h=(h===void 0?{disableAutoOpen:!0}:h).disableAutoOpen,g=this._state;h?(g.isBeingOpened&&g.cancelOpen(new ne.DatabaseClosed),this._close(),g.autoOpen=!1,g.dbOpenError=new ne.DatabaseClosed):(this._close(),g.autoOpen=this._options.autoOpen||g.isBeingOpened,g.openComplete=!1,g.dbOpenError=null)},Bt.prototype.delete=function(u){var h=this,g=(u===void 0&&(u={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),S=this._state;return new Re(function(x,E){function R(){h.close(u);var I=h._deps.indexedDB.deleteDatabase(h.name);I.onsuccess=Ee(function(){var N,Z,B;N=h._deps,Z=h.name,Wc(B=N.indexedDB)||Z===cn||Bc(B,N.IDBKeyRange).delete(Z).catch(ie),x()}),I.onerror=Zn(E),I.onblocked=h._fireOnBlocked}if(g)throw new ne.InvalidArgument("Invalid closeOptions argument to db.delete()");S.isBeingOpened?S.dbReadyPromise.then(R):R()})},Bt.prototype.backendDB=function(){return this.idbdb},Bt.prototype.isOpen=function(){return this.idbdb!==null},Bt.prototype.hasBeenClosed=function(){var u=this._state.dbOpenError;return u&&u.name==="DatabaseClosed"},Bt.prototype.hasFailed=function(){return this._state.dbOpenError!==null},Bt.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(Bt.prototype,"tables",{get:function(){var u=this;return i(this._allTables).map(function(h){return u._allTables[h]})},enumerable:!1,configurable:!0}),Bt.prototype.transaction=function(){var u=(function(h,g,S){var x=arguments.length;if(x<2)throw new ne.InvalidArgument("Too few arguments");for(var E=new Array(x-1);--x;)E[x-1]=arguments[x];return S=E.pop(),[h,X(E),S]}).apply(this,arguments);return this._transaction.apply(this,u)},Bt.prototype._transaction=function(u,h,g){var S,x,E=this,R=De.trans,I=(R&&R.db===this&&u.indexOf("!")===-1||(R=null),u.indexOf("?")!==-1);u=u.replace("!","").replace("?","");try{if(x=h.map(function(Z){if(Z=Z instanceof E.Table?Z.name:Z,typeof Z!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return Z}),u=="r"||u===nn)S=nn;else{if(u!="rw"&&u!=Qn)throw new ne.InvalidArgument("Invalid transaction mode: "+u);S=Qn}if(R){if(R.mode===nn&&S===Qn){if(!I)throw new ne.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");R=null}R&&x.forEach(function(Z){if(R&&R.storeNames.indexOf(Z)===-1){if(!I)throw new ne.SubTransaction("Table "+Z+" not included in parent transaction.");R=null}}),I&&R&&!R.active&&(R=null)}}catch(Z){return R?R._promise(null,function(B,D){D(Z)}):It(Z)}var N=(function Z(B,D,z,V,U){return Re.resolve().then(function(){var ee=De.transless||De,H=B._createTransaction(D,z,B._dbSchema,V),ee=(H.explicit=!0,{trans:H,transless:ee});if(V)H.idbtrans=V.idbtrans;else try{H.create(),H.idbtrans._explicit=!0,B._state.PR1398_maxLoop=3}catch(ue){return ue.name===je.InvalidState&&B.isOpen()&&0<--B._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),B.close({disableAutoOpen:!1}),B.open().then(function(){return Z(B,D,z,null,U)})):It(ue)}var q,se=te(U),ee=(se&&Lr(),Re.follow(function(){var ue;(q=U.call(H,H))&&(se?(ue=Gn.bind(null,null),q.then(ue,ue)):typeof q.next=="function"&&typeof q.throw=="function"&&(q=Vc(q)))},ee));return(q&&typeof q.then=="function"?Re.resolve(q).then(function(ue){return H.active?ue:It(new ne.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):ee.then(function(){return q})).then(function(ue){return V&&H._resolve(),H._completion.then(function(){return ue})}).catch(function(ue){return H._reject(ue),It(ue)})})}).bind(null,this,S,x,R,g);return R?R._promise(S,N,"lock"):De.trans?ur(De.transless,function(){return E._whenReady(N)}):this._whenReady(N)},Bt.prototype.table=function(u){if(p(this._allTables,u))return this._allTables[u];throw new ne.InvalidTable("Table ".concat(u," does not exist"))};var Tr=Bt;function Bt(u,h){var g,S,x,E,R,I=this,N=(this._middlewares={},this.verno=0,Bt.dependencies),N=(this._options=h=r({addons:Bt.addons,autoOpen:!0,indexedDB:N.indexedDB,IDBKeyRange:N.IDBKeyRange,cache:"cloned",maxConnections:1e3},h),this._deps={indexedDB:h.indexedDB,IDBKeyRange:h.IDBKeyRange},h.addons),Z=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ie,dbReadyPromise:null,cancelOpen:ie,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:h.autoOpen}),B=(Z.dbReadyPromise=new Re(function(D){Z.dbReadyResolve=D}),Z.openCanceller=new Re(function(D,z){Z.cancelOpen=z}),this._state=Z,this.name=u,this.on=Oo(this,"populate","blocked","versionchange","close",{ready:[vt,ie]}),this.once=function(D,z){var V=function(){for(var U=[],H=0;H<arguments.length;H++)U[H]=arguments[H];I.on(D).unsubscribe(V),z.apply(I,U)};return I.on(D,V)},this.on.ready.subscribe=T(this.on.ready.subscribe,function(D){return function(z,V){Bt.vip(function(){var U,H=I._state;H.openComplete?(H.dbOpenError||Re.resolve().then(z),V&&D(z)):H.onReadyBeingFired?(H.onReadyBeingFired.push(z),V&&D(z)):(D(z),U=I,V||D(function q(){U.on.ready.unsubscribe(z),U.on.ready.unsubscribe(q)}))})}}),this.Collection=(g=this,$o(tx.prototype,function(q,H){this.db=g;var V=Mn,U=null;if(H)try{V=H()}catch(ee){U=ee}var H=q._ctx,q=H.table,se=q.hook.reading.fire;this._ctx={table:q,index:H.index,isPrimKey:!H.index||q.schema.primKey.keyPath&&H.index===q.schema.primKey.name,range:V,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:U,or:H.or,valueMapper:se!==ye?se:null}})),this.Table=(S=this,$o(yh.prototype,function(D,z,V){this.db=S,this._tx=V,this.name=D,this.schema=z,this.hook=S._allTables[D]?S._allTables[D].hook:Oo(null,{creating:[Ue,ie],reading:[$e,ye],updating:[ht,ie],deleting:[rt,ie]})})),this.Transaction=(x=this,$o(sx.prototype,function(D,z,V,U,H){var q=this;D!=="readonly"&&z.forEach(function(se){se=(se=V[se])==null?void 0:se.yProps,se&&(z=z.concat(se.map(function(ee){return ee.updatesTable})))}),this.db=x,this.mode=D,this.storeNames=z,this.schema=V,this.chromeTransactionDurability=U,this.idbtrans=null,this.on=Oo(this,"complete","error","abort"),this.parent=H||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Re(function(se,ee){q._resolve=se,q._reject=ee}),this._completion.then(function(){q.active=!1,q.on.complete.fire()},function(se){var ee=q.active;return q.active=!1,q.on.error.fire(se),q.parent?q.parent._reject(se):ee&&q.idbtrans&&q.idbtrans.abort(),It(se)})})),this.Version=(E=this,$o(dx.prototype,function(D){this.db=E,this._cfg={version:D,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(R=this,$o(xh.prototype,function(D,z,V){if(this.db=R,this._ctx={table:D,index:z===":id"?null:z,or:V},this._cmp=this._ascending=ot,this._descending=function(U,H){return ot(H,U)},this._max=function(U,H){return 0<ot(U,H)?U:H},this._min=function(U,H){return ot(U,H)<0?U:H},this._IDBKeyRange=R._deps.IDBKeyRange,!this._IDBKeyRange)throw new ne.MissingAPI})),this.on("versionchange",function(D){0<D.newVersion?console.warn("Another connection wants to upgrade database '".concat(I.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(I.name,"'. Closing db now to resume the delete request.")),I.close({disableAutoOpen:!1})}),this.on("blocked",function(D){!D.newVersion||D.newVersion<D.oldVersion?console.warn("Dexie.delete('".concat(I.name,"') was blocked")):console.warn("Upgrade '".concat(I.name,"' blocked by other connection holding version ").concat(D.oldVersion/10))}),this._maxKey=Fo(h.IDBKeyRange),this._createTransaction=function(D,z,V,U){return new I.Transaction(D,z,V,I._options.chromeTransactionDurability,U)},this._fireOnBlocked=function(D){I.on("blocked").fire(D),zo.toArray().filter(function(z){return z.name===I.name&&z!==I&&!z._state.vcFired}).map(function(z){return z.on("versionchange").fire(D)})},this.use(mx),this.use(vx),this.use(gx),this.use(hx),this.use(px),new Proxy(this,{get:function(D,z,V){var U;return z==="_vip"||(z==="table"?function(H){return Ga(I.table(H),B)}:(U=Reflect.get(D,z,V))instanceof yh?Ga(U,B):z==="tables"?U.map(function(H){return Ga(H,B)}):z==="_createTransaction"?function(){return Ga(U.apply(this,arguments),B)}:U)}}));this.vip=B,N.forEach(function(D){return D(I)})}var Ja,Hs=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",Sx=(Zc.prototype.subscribe=function(u,h,g){return this._subscribe(u&&typeof u!="function"?u:{next:u,error:h,complete:g})},Zc.prototype[Hs]=function(){return this},Zc);function Zc(u){this._subscribe=u}try{Ja={indexedDB:o.indexedDB||o.mozIndexedDB||o.webkitIndexedDB||o.msIndexedDB,IDBKeyRange:o.IDBKeyRange||o.webkitIDBKeyRange}}catch{Ja={indexedDB:null,IDBKeyRange:null}}function Dh(u){var h,g=!1,S=new Sx(function(x){var E=te(u),R,I=!1,N={},Z={},B={get closed(){return I},unsubscribe:function(){I||(I=!0,R&&R.abort(),D&&Fr.storagemutated.unsubscribe(U))}},D=(x.start&&x.start(B),!1),z=function(){return zs(H)};function V(){return qc(Z,N)}var U=function(q){Xa(N,q),V()&&z()},H=function(){var q,se,ee;!I&&Ja.indexedDB&&(N={},q={},R&&R.abort(),R=new AbortController,ee=(ue=>{var ve=Yn();try{E&&Lr();var xe=cr(u,ue);return xe=E?xe.finally(Gn):xe}finally{ve&&Vn()}})(se={subscr:q,signal:R.signal,requery:z,querier:u,trans:null}),D||(Fr(Do,U),D=!0),Promise.resolve(ee).then(function(ue){g=!0,h=ue,I||se.signal.aborted||(V()||(Z=q,V())?z():(N={},zs(function(){return!I&&x.next&&x.next(ue)})))},function(ue){g=!1,["DatabaseClosedError","AbortError"].includes(ue==null?void 0:ue.name)||I||zs(function(){I||x.error&&x.error(ue)})}))};return setTimeout(z,0),B});return S.hasValue=function(){return g},S.getValue=function(){return h},S}var is=Tr;function eu(u){var h=Nr;try{Nr=!0,Fr.storagemutated.fire(u),Yc(u,!0)}finally{Nr=h}}y(is,r(r({},he),{delete:function(u){return new is(u,{addons:[]}).delete()},exists:function(u){return new is(u,{addons:[]}).open().then(function(h){return h.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(u){try{return h=is.dependencies,g=h.indexedDB,h=h.IDBKeyRange,(Wc(g)?Promise.resolve(g.databases()).then(function(S){return S.map(function(x){return x.name}).filter(function(x){return x!==cn})}):Bc(g,h).toCollection().primaryKeys()).then(u)}catch{return It(new ne.MissingAPI)}var h,g},defineClass:function(){return function(u){c(this,u)}},ignoreTransaction:function(u){return De.trans?ur(De.transless||pn,u):u()},vip:Uc,async:function(u){return function(){try{var h=Vc(u.apply(this,arguments));return h&&typeof h.then=="function"?h:Re.resolve(h)}catch(g){return It(g)}}},spawn:function(u,h,g){try{var S=Vc(u.apply(g,h||[]));return S&&typeof S.then=="function"?S:Re.resolve(S)}catch(x){return It(x)}},currentTransaction:{get:function(){return De.trans||null}},waitFor:function(u,h){return u=Re.resolve(typeof u=="function"?is.ignoreTransaction(u):u).timeout(h||6e4),De.trans?De.trans.waitFor(u):u},Promise:Re,debug:{get:function(){return Ve},set:function(u){Ht(u)}},derive:b,extend:c,props:y,override:T,Events:Oo,on:Fr,liveQuery:Dh,extendObservabilitySet:Xa,getByKeyPath:A,setByKeyPath:j,delByKeyPath:function(u,h){typeof h=="string"?j(u,h,void 0):"length"in h&&[].map.call(h,function(g){j(u,g,void 0)})},shallowClone:$,deepClone:W,getObjectDiff:Gc,cmp:ot,asap:P,minKey:-1/0,addons:[],connections:{get:zo.toArray},errnames:je,dependencies:Ja,cache:os,semVer:"4.4.2",version:"4.4.2".split(".").map(function(u){return parseInt(u)}).reduce(function(u,h,g){return u+h/Math.pow(10,2*g)})})),is.maxKey=Fo(is.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Fr(Do,function(u){Nr||(u=new CustomEvent(Oc,{detail:u}),Nr=!0,dispatchEvent(u),Nr=!1)}),addEventListener(Oc,function(u){u=u.detail,Nr||eu(u)}));var qs,Nr=!1,Fh=function(){};return typeof BroadcastChannel<"u"&&((Fh=function(){(qs=new BroadcastChannel(Oc)).onmessage=function(u){return u.data&&eu(u.data)}})(),typeof qs.unref=="function"&&qs.unref(),Fr(Do,function(u){Nr||qs.postMessage(u)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(u){if(!Tr.disableBfCache&&u.persisted){Ve&&console.debug("Dexie: handling persisted pagehide"),qs!=null&&qs.close();for(var h=0,g=zo.toArray();h<g.length;h++)g[h].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(u){!Tr.disableBfCache&&u.persisted&&(Ve&&console.debug("Dexie: handling persisted pageshow"),Fh(),eu({all:new gn(-1/0,[[]])}))})),Re.rejectionMapper=function(u,h){return!u||u instanceof me||u instanceof TypeError||u instanceof SyntaxError||!u.name||!Q[u.name]?u:(h=new Q[u.name](h||u.message,u),"stack"in u&&w(h,"stack",{get:function(){return this.inner.stack}}),h)},Ht(Ve),r(Tr,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Tr,Entity:kr,PropModification:Io,RangeSet:gn,add:function(u){return new Io({add:u})},cmp:ot,default:Tr,liveQuery:Dh,mergeRanges:Wo,rangesOverlap:Eh,remove:function(u){return new Io({remove:u})},replacePrefix:function(u,h){return new Io({replacePrefix:[u,h]})}}),{default:Tr}),Tr})}(kl)),kl.exports}var uk=ck();const fd=Os(uk),mp=Symbol.for("Dexie"),Vl=globalThis[mp]||(globalThis[mp]=fd);if(fd.semVer!==Vl.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${fd.semVer} and ${Vl.semVer}`);const{liveQuery:hF,mergeRanges:pF,rangesOverlap:mF,RangeSet:gF,cmp:yF,Entity:bF,PropModification:vF,replacePrefix:SF,add:wF,remove:xF,DexieYProvider:_F}=Vl;class dk extends Vl{constructor(){super("LotusStorage");Ie(this,"scrollAnchors");Ie(this,"toolSessionCollapses");Ie(this,"diffCollapses");Ie(this,"inputStates");Ie(this,"modelOptionsCaches");this.version(1).stores({scrollAnchors:"sessionId, ts",toolSessionCollapses:"id, sessionId, updatedAt",diffCollapses:"sessionId, updatedAt",inputStates:"sessionId, updatedAt",modelOptionsCaches:"provider, timestamp"})}}const fk=new dk,ws=class ws{constructor(){Ie(this,"db",fk)}static getInstance(){return ws.instance||(ws.instance=new ws),ws.instance}async saveScrollAnchor(e,n){try{await this.db.scrollAnchors.put({sessionId:e,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:${e}`,JSON.stringify(n))}catch{}}}async loadScrollAnchor(e){try{const n=await this.db.scrollAnchors.get(e);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:${e}`);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(e){try{await this.db.scrollAnchors.delete(e)}catch{}try{localStorage.removeItem(`chat_scroll_anchor_v2:${e}`)}catch{}}async saveToolSessionCollapse(e,n,r){try{await this.db.toolSessionCollapses.put({id:`${e}:${n}`,sessionId:e,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:${e}:${n}`,JSON.stringify(r))}catch{}}}async loadToolSessionCollapse(e,n){try{const r=await this.db.toolSessionCollapses.get(`${e}:${n}`);return r?{isExpanded:r.isExpanded,expandedTools:r.expandedTools}:null}catch{try{const r=localStorage.getItem(`chat-session-tool-collapse:${e}:${n}`);if(!r)return null;const s=JSON.parse(r);if(s&&typeof s.isExpanded=="boolean")return s}catch{}return null}}async saveDiffCollapse(e,n){try{await this.db.diffCollapses.put({sessionId:e,isExpanded:n.isExpanded,expandedFiles:n.expandedFiles,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveDiffCollapse failed",r);try{localStorage.setItem(`chat-session-diff-collapse:${e}`,JSON.stringify(n))}catch{}}}async loadDiffCollapse(e){try{const n=await this.db.diffCollapses.get(e);return n?{isExpanded:n.isExpanded,expandedFiles:n.expandedFiles}:null}catch{try{const n=localStorage.getItem(`chat-session-diff-collapse:${e}`);if(!n)return null;const r=JSON.parse(n);if(r&&typeof r.isExpanded=="boolean")return r}catch{}return null}}async saveInputReasoning(e,n){try{const r=await this.db.inputStates.get(e);await this.db.inputStates.put({sessionId:e,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[e]=n,localStorage.setItem("chat_input_reasoning_by_session_v1",JSON.stringify(o))}catch{}}}async loadInputReasoning(e){try{const n=await this.db.inputStates.get(e);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)[e]??null:null}catch{return null}}}async saveLastUsedReasoningEffort(e){try{await this.db.inputStates.put({sessionId:"__last_used__",reasoningEffort:e,updatedAt:Date.now()})}catch{try{localStorage.setItem("chat_input_reasoning_last_used_v1",e)}catch{}}}async loadLastUsedReasoningEffort(){try{const e=await this.db.inputStates.get("__last_used__");return(e==null?void 0:e.reasoningEffort)??null}catch{try{return localStorage.getItem("chat_input_reasoning_last_used_v1")}catch{return null}}}async saveModelOptionsCache(e,n,r){try{await this.db.modelOptionsCaches.put({provider:e,options:n,timestamp:r})}catch(s){console.warn("[StorageManager] saveModelOptionsCache failed",s);try{localStorage.setItem(`chat-model-options-cache-v1:${e}`,JSON.stringify({timestamp:r,options:n}))}catch{}}}async loadModelOptionsCache(e){try{const n=await this.db.modelOptionsCaches.get(e);return n?{options:n.options,timestamp:n.timestamp}:null}catch{try{const n=localStorage.getItem(`chat-model-options-cache-v1:${e}`);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(e){try{await Promise.all([this.db.scrollAnchors.delete(e),this.db.diffCollapses.delete(e),this.db.toolSessionCollapses.where("sessionId").equals(e).delete(),this.db.inputStates.delete(e)])}catch{}}async cleanupStaleData(e=30){const n=Date.now()-e*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[e,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:e,toolSessionCollapses:n,diffCollapses:r,inputStates:s,modelOptionsCaches:o}}catch{return{scrollAnchors:0,toolSessionCollapses:0,diffCollapses:0,inputStates:0,modelOptionsCaches:0}}}};Ie(ws,"instance");let Dn=ws;const Ab="chat_input_reasoning_by_session_v1",Rb="chat_input_reasoning_last_used_v1",gp={content:"",referenceText:null,attachments:[],reasoningEffort:"medium"},Sf=t=>t==="low"||t==="medium"||t==="high"||t==="xhigh"||t==="max",jb=()=>{if(typeof window>"u")return{};try{const t=localStorage.getItem(Ab);if(!t)return{};const e=JSON.parse(t),n={};for(const[r,s]of Object.entries(e||{}))Sf(s)&&(n[r]=s);return n}catch{return{}}},hk=t=>{if(!(typeof window>"u"))try{localStorage.setItem(Ab,JSON.stringify(t))}catch{}},pk=()=>{if(!(typeof window>"u"))try{const t=localStorage.getItem(Rb);return Sf(t)?t:void 0}catch{return}},mk=t=>{if(!(typeof window>"u"))try{localStorage.setItem(Rb,t)}catch{}},Ib=t=>{const e=jb();return Sf(e[t])?e[t]:pk()},Yo=t=>({...gp,reasoningEffort:Ib(t)??gp.reasoningEffort}),gk=(t,e)=>({inputStates:{},setInputContent:(n,r)=>t(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Yo(n),content:r}}})),setReferenceText:(n,r)=>t(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Yo(n),referenceText:r}}})),setAttachments:(n,r)=>t(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Yo(n),attachments:r}}})),setInputReasoningEffort:(n,r)=>{t(i=>({inputStates:{...i.inputStates,[n]:{...i.inputStates[n]||Yo(n),reasoningEffort:r}}}));const s=jb();s[n]=r,hk(s),mk(r);const o=Dn.getInstance();o.saveInputReasoning(n,r).catch(()=>{}),o.saveLastUsedReasoningEffort(r).catch(()=>{})},clearInputState:n=>t(r=>{const{[n]:s,...o}=r.inputStates;return{inputStates:o}}),getInputState:n=>e().inputStates[n]||Yo(n)}),wf="lotus_account_feed_cursor_v1",yk=400;let yp=null,fu=null;const bk=()=>{try{const t=localStorage.getItem(wf),e=t?Number.parseInt(t,10):0;return Number.isFinite(e)&&e>0?e:0}catch{return 0}},vk=t=>{try{localStorage.setItem(wf,String(t))}catch{}},Sk=()=>{try{localStorage.removeItem(wf)}catch{}},hu=()=>{fu||(fu=setTimeout(()=>{fu=null,G.getState().refreshSessionsIndex()},yk))},wk=new Set(["message_appended","task_list_updated","task_list_item_progress","task_list_completed","complete","cancelled","error","execution_started","need_clarification"]),xk=t=>{const{event:e}=t,n=G.getState(),r=t.session_id??e.session_id;switch(r&&r===n.currentSessionId&&wk.has(e.type)&&n.reconcileOpenSession(r,e.type),r&&r===n.currentSessionId&&e.type==="execution_started"&&!Wn(r)(n)&&n.refreshChatsNow(),e.type){case"session_title_updated":r&&typeof e.title=="string"&&n.applyServerTitle(r,e.title,e.title_version??0),hu();break;case"session_pinned_updated":r&&typeof e.pinned=="boolean"&&n.applyServerPinned(r,e.pinned,e.updated_at??t.ts),hu();break;case"session_created":case"session_deleted":case"session_cleared":case"message_appended":case"task_list_updated":case"task_list_item_progress":case"task_list_completed":case"complete":case"cancelled":case"error":case"execution_started":case"need_clarification":default:hu();break}},_k=()=>{if(yp)return;if(nd()){if(typeof WebSocket>"u")return}else if(typeof EventSource>"u")return;yp=Pn.getInstance().subscribeToAccountStream({onOpen:()=>{G.getState().setAgentAvailability(!0)},onError:()=>{G.getState().setAgentAvailability(!1)},onReset:()=>{Sk(),G.getState().refreshSessionsIndex()},onChange:n=>{G.getState().setAgentAvailability(!0),vk(n.seq),xk(n)}},{since:bk()})},Ck="bamboo_proxy_auth",kk=()=>{try{const t=localStorage.getItem(Ck);if(!t)return null;const e=JSON.parse(t);if(!e||typeof e!="object")return null;const n=typeof e.username=="string"?e.username.trim():"",r=typeof e.password=="string"?e.password:"";return n?{username:n,password:r}:null}catch{return null}},Ob={byId:{},runningCount:0},Tk=[],Sn=(t,e)=>e?t.executionBySession[e]??null:null,Ek=t=>e=>Sn(e,t),Pk=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.phase)??"idle"},Ta=t=>e=>{const n=Sn(e,t);return yf(n==null?void 0:n.phase)},$b=t=>e=>{const n=Sn(e,t);return n?n.phase==="streaming"?!0:n.phase==="running_tools"&&n.stream.hasTokens:!1},Mk=t=>e=>{const n=Sn(e,t);return n?n.phase==="waiting_user_answer"||n.interaction.pendingQuestion!==null||n.backend.hasPendingQuestion===!0:!1},Lb=t=>e=>{const n=Sn(e,t);return aC(n==null?void 0:n.phase)},Db=t=>e=>{const n=Sn(e,t);return lC(n==null?void 0:n.phase)},Wn=t=>e=>{const n=Sn(e,t);return yf(n==null?void 0:n.phase)?(n==null?void 0:n.phase)!=="waiting_user_answer":!1},Ak=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.stream.activeToolCalls)??Tk},wo=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.interaction.pendingQuestion)??null},hd=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.interaction.pendingChildApproval)??null},Rk=t=>e=>{if(!t)return null;const n=wo(t)(e);return n?{sessionId:t,question:n.question,options:n.options,allowCustom:n.allowCustom,toolCallId:n.toolCallId}:null},yc=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.children.byId)??Ob.byId},jk=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.children)??Ob},Mt=t=>e=>{const n=Sn(e,t);return(n==null?void 0:n.generation)??0},Ik=Object.freeze({state:"idle",activeToolCalls:[],runningChildCount:0,hasQuestion:!1,hasError:!1,errorMessage:null,generation:0}),Ok=t=>e=>{var r;const n=Sn(e,t);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}:Ik},$k=t=>e=>t.map(n=>({sessionId:n??"",entry:Sn(e,n)})),Lk="auto",Dk="required",Fk=1e4,Nk=15e3,zk=Pn.getInstance();let bp=null,Vo=null,vp=null,Go=null;const Sp=new WeakMap,G=Ir()(G0(Q0((t,e,n)=>({...KC(t,e),...GC(t,e),...ek(t,e),...nk(),...sk(t,e),...ok(t),...ak(t,e),...gk(t,e),...CC(t,e),agentAvailability:null,setAgentAvailability:r=>{t({agentAvailability:r})},checkAgentAvailability:async()=>{if(Vo)return Vo;Vo=(async()=>{const r=await zk.healthCheck();return e().agentAvailability!==r&&t({agentAvailability:r}),r})();try{return await Vo}finally{Vo=null}},startAgentHealthCheck:()=>{bp||(e().checkAgentAvailability(),bp=setInterval(()=>{e().checkAgentAvailability()},Fk))},refreshSessionsIndex:async()=>{if(Go)return Go;Go=(async()=>{try{await e().refreshChats()}catch(r){console.warn("[AppStore] refreshChats failed:",r)}})();try{return await Go}finally{Go=null}},startSessionsIndexSync:()=>{vp||(e().refreshSessionsIndex(),vp=setInterval(()=>{e().refreshSessionsIndex()},Nk))}})),{name:"AppStore"})),Fb=t=>{const e=Sp.get(t);if(e)return e;const n=new Map(t.map(r=>[r.id,r]));return Sp.set(t,n),n},Cr=t=>e=>t?Fb(e.chats).get(t)??null:null,Nb=t=>t.currentSessionId?Fb(t.chats).get(t.currentSessionId)??null:null,Bk=t=>{var e;return((e=Nb(t))==null?void 0:e.messages)??[]},wp=async()=>{const t=kk();if(!t)return!1;try{return await ms.setProxyAuth(t),!0}catch(e){return console.error("Failed to apply stored proxy auth during startup:",e),!1}},Wk=async()=>{try{const t=await dd.getState().loadConfig();if((typeof(t==null?void 0:t.proxy_auth_mode)=="string"?t.proxy_auth_mode:Lk)!==Dk)return await wp(),!1;const n=await dd.getState().loadProxyAuthStatus({force:!0});return n!=null&&n.configured||await wp()?!1:(G.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(t){return console.error("Failed to evaluate startup proxy auth mode:",t),!1}};let xp=!1,zb=!1,sl=null;const xf=async(t=!1)=>{if(xp&&!t)return;if(xp=!0,_k(),G.getState().startAgentHealthCheck(),G.getState().startSessionsIndexSync(),!(typeof globalThis<"u"&&"__vitest_worker__"in globalThis))try{await yt.getState().loadProviderInstances(),yt.getState().isInstancesLoaded||await yt.getState().loadProviderConfig()}catch(n){console.error("[AppStore] Failed to bootstrap provider state:",n)}await G.getState().loadChats(),zb=!0},_f=async()=>{if(zb)return sl||(sl=(async()=>{try{await Wk()||await G.getState().fetchModels(),await G.getState().loadSystemPrompts()}catch(t){console.error("[AppStore] Deferred bootstrap failed:",t)}})(),sl)},Uk=async(t=!1)=>{await xf(t),_f().catch(e=>{console.error("[AppStore] Deferred bootstrap error:",e)})},CF=Object.freeze(Object.defineProperty({__proto__:null,bootstrapCritical:xf,bootstrapDeferred:_f,initializeStore:Uk,selectActiveToolCalls:Ak,selectCanCancel:Db,selectChildren:yc,selectChildrenSnapshot:jk,selectCurrentChat:Nb,selectCurrentMessages:Bk,selectExecutionByPane:$k,selectExecutionPhase:Pk,selectExecutionState:Ek,selectGeneration:Mt,selectIsAwaitingUser:Mk,selectIsBusy:Ta,selectIsInputLocked:Lb,selectIsStreaming:$b,selectPendingChildApproval:hd,selectPendingQuestion:wo,selectRailModel:Ok,selectRespondMode:Rk,selectSessionById:Cr,selectShouldObserve:Wn,useAppStore:G},Symbol.toStringTag,{value:"Module"})),Bb="copilot_ui_layout_v1",Cf={collapsed:!1,widthPx:260,collapsedWidthPx:72,minWidthPx:180,maxWidthPx:520},ia={widthPx:360,minWidthPx:300,maxWidthPx:560},Wb={v:2,sidebar:Cf,inspector:ia,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:null},splitSizesPx:{}},_p=t=>{const e=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`;return`${t}-${e}`},Hn=t=>t.type==="leaf"?[t.id]:[...Hn(t.children[0]),...Hn(t.children[1])],ma=t=>t.type==="leaf"?[]:[t.id,...ma(t.children[0]),...ma(t.children[1])],Hk=(t,e)=>{for(const[n,r]of Object.entries(t))if(r===e)return n;return null},qk=(t,e)=>{const n={},r=new Set;return t.forEach(s=>{const o=e[s]??null;if(!o||r.has(o)){n[s]=null;return}r.add(o),n[s]=o}),n},pd=(t,e,n,r,s)=>t.type==="leaf"?t.id!==e?t:{type:"split",id:r,layout:n,children:[t,{type:"leaf",id:s}]}:{...t,children:[pd(t.children[0],e,n,r,s),pd(t.children[1],e,n,r,s)]},md=(t,e)=>{if(t.type==="leaf")return t.id===e?{node:null,removed:!0}:{node:t,removed:!1};const n=md(t.children[0],e);if(n.removed)return n.node?{node:{...t,children:[n.node,t.children[1]]},removed:!0}:{node:t.children[1],removed:!0};const r=md(t.children[1],e);return r.removed?r.node?{node:{...t,children:[t.children[0],r.node]},removed:!0}:{node:t.children[0],removed:!0}:{node:t,removed:!1}},Kk=()=>{try{return localStorage.getItem(Bb)}catch(t){return console.warn("[uiLayoutStore] Failed to read persisted layout:",t),null}},Xk=t=>({v:2,sidebar:t.sidebar,inspector:t.inspector,tree:t.tree,activeLeafId:t.activeLeafId,leafSessionIds:t.leafSessionIds,splitSizesPx:t.splitSizesPx}),Yk=t=>{try{localStorage.setItem(Bb,JSON.stringify(t))}catch(e){console.warn("[uiLayoutStore] Failed to persist layout:",e)}},hr=t=>{const e=Xk(t);return Yk(e),e},Vk=t=>{var m,w,b,_,M,C,T,k,P,A,j;const e={...Cf,...t.sidebar||{}},n={...ia},r=((m=t.view)==null?void 0:m.mode)??"single",s=((w=t.view)==null?void 0:w.twoDirection)??"horizontal",o={...((b=t.panes)==null?void 0:b.sessionIds)||{}},i=((_=t.panes)==null?void 0:_.activePaneId)??"lt",a={};if(r==="single")return{v:2,sidebar:e,inspector:n,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:o.lt??null},splitSizesPx:{}};if(r==="two"){const $="split-root",F=s,X=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"}]},K=F==="horizontal"?((M=t.split)==null?void 0:M.twoHorizontalPx)||((C=t.split)==null?void 0:C.columnsPx)||null:((T=t.split)==null?void 0:T.twoVerticalPx)||((k=t.split)==null?void 0:k.leftRowsPx)||null;K&&(a[$]=K);const O=Hn(X);return{v:2,sidebar:e,inspector:n,tree:X,activeLeafId:O.includes(i)?i:O[0],leafSessionIds:Object.fromEntries(O.map(W=>[W,o[W]??null])),splitSizesPx:a}}const c="split-root",d="split-left",f="split-right",p={type:"split",id:c,layout:"horizontal",children:[{type:"split",id:d,layout:"vertical",children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},{type:"split",id:f,layout:"vertical",children:[{type:"leaf",id:"rt"},{type:"leaf",id:"rb"}]}]};(P=t.split)!=null&&P.columnsPx&&(a[c]=t.split.columnsPx),(A=t.split)!=null&&A.leftRowsPx&&(a[d]=t.split.leftRowsPx),(j=t.split)!=null&&j.rightRowsPx&&(a[f]=t.split.rightRowsPx);const y=Hn(p);return{v:2,sidebar:e,inspector:n,tree:p,activeLeafId:y.includes(i)?i:y[0],leafSessionIds:Object.fromEntries(y.map($=>[$,o[$]??null])),splitSizesPx:a}},Gk=t=>{if(!t)return null;try{const e=JSON.parse(t);if(!e||typeof e!="object")return null;if(e.v===2){const n={...Cf,...e.sidebar||{}},r=ia.minWidthPx,s=ia.maxWidthPx,o=Number((e.inspector||{}).widthPx),a={widthPx:Math.max(r,Math.min(s,Number.isFinite(o)?o:ia.widthPx)),minWidthPx:r,maxWidthPx:s},c=e.tree||Wb.tree,d=Hn(c),f=ma(c),p={};d.forEach(b=>{var _;p[b]=typeof((_=e.leafSessionIds)==null?void 0:_[b])=="string"?e.leafSessionIds[b]:null});const y={};f.forEach(b=>{var M;const _=(M=e.splitSizesPx)==null?void 0:M[b];Array.isArray(_)&&_.length>=2&&(y[b]=[Number(_[0]),Number(_[1])])});const m=typeof e.activeLeafId=="string"&&d.includes(e.activeLeafId)?e.activeLeafId:d[0],w=qk(d,p);return{v:2,sidebar:n,inspector:a,tree:c,activeLeafId:m,leafSessionIds:w,splitSizesPx:y}}return e.v===1?Vk(e):null}catch{return null}},Jk=()=>Gk(Kk())??Wb,ft=Ir(t=>({...Jk(),setSidebarCollapsed:e=>{t(n=>n.sidebar.collapsed===e?n:hr({sidebar:{...n.sidebar,collapsed:e},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx}))},setSidebarWidthPx:e=>{t(n=>{const r=Math.max(n.sidebar.minWidthPx,Math.min(n.sidebar.maxWidthPx,e));return n.sidebar.widthPx===r?n:hr({sidebar:{...n.sidebar,widthPx:r},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setInspectorWidthPx:e=>{t(n=>{const r=Math.max(n.inspector.minWidthPx,Math.min(n.inspector.maxWidthPx,e));return n.inspector.widthPx===r?n:hr({sidebar:n.sidebar,inspector:{...n.inspector,widthPx:r},tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setActiveLeafId:e=>{t(n=>n.activeLeafId===e||!Hn(n.tree).includes(e)?n:(Un("setActiveLeafId",{from:n.activeLeafId,to:e}),hr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:e,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})))},setLeafSessionId:(e,n)=>{t(r=>{const s=Hn(r.tree);if(!s.includes(e)||(r.leafSessionIds[e]??null)===n)return r;const o=[];Un("setLeafSessionId",{leafId:e,fromSessionId:r.leafSessionIds[e]??null,toSessionId:n,mode:"unique_session_per_leaf"});const i={...r.leafSessionIds,[e]:n};if(n)for(const a of s)a!==e&&i[a]===n&&(i[a]=null,o.push(a));return o.length>0&&Un("setLeafSessionId dedupe",{sessionId:n,clearedLeafIds:o,assignedLeafId:e}),s.forEach(a=>{a in i||(i[a]=null)}),hr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:i,splitSizesPx:r.splitSizesPx})})},clearSessionFromAllLeaves:e=>{t(n=>{const r={...n.leafSessionIds};let s=!1;for(const[o,i]of Object.entries(r))i===e&&(r[o]=null,s=!0);return s?hr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:r,splitSizesPx:n.splitSizesPx}):n})},splitLeaf:(e,n)=>{t(r=>{const s=Hn(r.tree);if(!s.includes(e)||s.length>=4)return r;const o=_p("split"),i=_p("pane"),a=pd(r.tree,e,n,o,i),c={...r.leafSessionIds,[i]:null};return hr({sidebar:r.sidebar,inspector:r.inspector,tree:a,activeLeafId:i,leafSessionIds:c,splitSizesPx:r.splitSizesPx})})},closeLeaf:e=>{t(n=>{const r=Hn(n.tree);if(!r.includes(e)||r.length<=1)return n;const s=md(n.tree,e);if(!s.removed||!s.node)return n;const o=s.node,i=Hn(o),a=ma(o),c={};i.forEach(p=>{c[p]=n.leafSessionIds[p]??null});const d={};a.forEach(p=>{const y=n.splitSizesPx[p];y&&(d[p]=y)});const f=n.activeLeafId===e?i[0]:i.includes(n.activeLeafId)?n.activeLeafId:i[0];return hr({sidebar:n.sidebar,inspector:n.inspector,tree:o,activeLeafId:f,leafSessionIds:c,splitSizesPx:d})})},setSplitSizesPx:(e,n)=>{t(r=>{const s=r.splitSizesPx[e];return s&&s[0]===n[0]&&s[1]===n[1]?r:hr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:r.leafSessionIds,splitSizesPx:{...r.splitSizesPx,[e]:n}})})},pruneSplitSizes:()=>{t(e=>{const n=new Set(ma(e.tree)),r={};for(const[i,a]of Object.entries(e.splitSizesPx))n.has(i)&&(r[i]=a);const s=Object.keys(e.splitSizesPx),o=Object.keys(r);return s.length===o.length&&s.every(i=>i in r)?e:hr({sidebar:e.sidebar,inspector:e.inspector,tree:e.tree,activeLeafId:e.activeLeafId,leafSessionIds:e.leafSessionIds,splitSizesPx:r})})}})),Qk=async(t,e)=>{var i;const n=G.getState(),r=!n.chats.some(a=>a.id===t);if(e!=null&&e.forceRefreshIndex||r)try{await n.refreshChats()}catch(a){console.warn("[openSession] refreshChats failed:",a)}const s=G.getState().chats.find(a=>a.id===t);if(!s)return;if(e!=null&&e.forceLoadHistory||r||(((i=s.messages)==null?void 0:i.length)||0)===0&&(s.messageCount||0)>0)try{await n.loadChatHistory(t)}catch(a){console.warn("[openSession] loadChatHistory failed:",a)}if(e!=null&&e.forceSubscribe){n.markForceSubscribe(t);return}((e==null?void 0:e.subscribeIfRunning)??!0)&&s.isRunning&&n.markForceSubscribe(t)},Zk=(t,e)=>{const{activeLeafId:n,leafSessionIds:r,setLeafSessionId:s,setActiveLeafId:o}=ft.getState(),i=Hk(r,t),a=r[n]??null;Un("openSession (input)",{activeLeafId:n,activeLeafSessionId:a,sessionId:t,existingLeafId:i}),i?i===n?Un("openSession (decision)",{action:"noop_already_active",leafId:n,sessionId:t}):(o(i),Un("openSession (decision)",{action:"focus_existing_leaf",leafId:i,sessionId:t})):(s(n,t),Un("openSession (decision)",{action:"assign_to_active_leaf",leafId:n,sessionId:t})),G.getState().selectSession(t),Qk(t,e)},Ub=t=>t==="child"?"child":"root",eT=t=>({id:t.id,title:t.title,kind:Ub(t.kind),pinned:!!t.pinned,parentSessionId:t.parentSessionId||null,rootSessionId:t.rootSessionId||null,createdByScheduleId:t.createdByScheduleId||null,updatedAt:t.updatedAt||null,lastRunStatus:t.lastRunStatus||null,lastRunError:t.lastRunError||null,createdAt:t.createdAt,config:{systemPromptId:t.config.systemPromptId,workspacePath:t.config.workspacePath||null}}),tT=(t,e)=>t.id===e.id&&t.title===e.title&&t.kind===Ub(e.kind)&&t.pinned===!!e.pinned&&t.parentSessionId===(e.parentSessionId||null)&&t.rootSessionId===(e.rootSessionId||null)&&t.createdByScheduleId===(e.createdByScheduleId||null)&&t.updatedAt===(e.updatedAt||null)&&t.lastRunStatus===(e.lastRunStatus||null)&&t.lastRunError===(e.lastRunError||null)&&t.createdAt===e.createdAt&&t.config.systemPromptId===e.config.systemPromptId&&t.config.workspacePath===(e.config.workspacePath||null),nT=(()=>{let t=null,e=[],n=new Map;return r=>{if(r===t)return e;const s=r.map(i=>{const a=n.get(i.id);return a&&tT(a,i)?a:eT(i)}),o=s.length===e.length&&s.every((i,a)=>i===e[a]);return t=r,n=new Map(s.map(i=>[i.id,i])),o?e:(e=s,s)}})(),rT=t=>[t.title,t.id,t.kind||"root",t.config.workspacePath||"",t.config.systemPromptId||"",t.updatedAt||"",t.createdByScheduleId||"",t.lastRunStatus||"",t.lastRunError||""].join(" ").toLowerCase(),sT=t=>t.messages.filter(e=>e.role==="user"&&"content"in e).slice(0,3).map(e=>"content"in e?e.content:"").join(" ").toLowerCase(),pu=(t,e)=>{if(!e)return!0;const n=e.split(/\s+/).filter(Boolean),r=rT(t);if(n.every(a=>r.includes(a)))return!0;const s=G.getState().chats.find(a=>a.id===t.id);if(!s)return!1;const o=sT(s),i=`${r} ${o}`;return n.every(a=>i.includes(a))},mu=(t,e,n)=>{switch(e){case"pinned":return!!t.pinned;case"running":return n(t.id);case"child":return t.kind==="child";case"all":default:return!0}},oT=()=>{const{t}=Xe(),{message:e}=En.useApp(),{chats:n,currentSessionId:r,deleteSession:s,deleteSessions:o,pinSession:i,unpinSession:a,updateSession:c,addChat:d,refreshChats:f,lastSelectedPromptId:p,systemPrompts:y}=G(na(be=>({chats:nT(be.chats),currentSessionId:be.currentSessionId,deleteSession:be.deleteSession,deleteSessions:be.deleteSessions,pinSession:be.pinSession,unpinSession:be.unpinSession,updateSession:be.updateSession,addChat:be.addChat,refreshChats:be.refreshChats,lastSelectedPromptId:be.lastSelectedPromptId,systemPrompts:be.systemPrompts}))),m=v.useCallback(be=>Ta(be)(G.getState()),[]),{sidebarCollapsed:w,setSidebarCollapsed:b,clearSessionFromAllLeaves:_}=ft(na(be=>({sidebarCollapsed:be.sidebar.collapsed,setSidebarCollapsed:be.setSidebarCollapsed,clearSessionFromAllLeaves:be.clearSessionFromAllLeaves}))),M=v.useCallback(async(be,Be)=>{var Fn,qt;const Le=y.find(Dt=>Dt.id===p),Ge=(Le==null?void 0:Le.id)||(y.length>0?((Fn=y.find(Dt=>Dt.id==="general_assistant"))==null?void 0:Fn.id)||y[0].id:""),Vt={title:be||t("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:Ge,baseSystemPrompt:(Le==null?void 0:Le.content)||(y.length>0?((qt=y.find(Dt=>Dt.id==="general_assistant"))==null?void 0:qt.content)||y[0].content:""),lastUsedEnhancedPrompt:null},...Be},pn=await d(Vt),{activeLeafId:De}=ft.getState();ft.getState().setLeafSessionId(De,pn),ft.getState().setActiveLeafId(De)},[d,p,y,t]),[C,T]=v.useState(!1),[k,P]=v.useState(new Set(["Today"])),[A,j]=v.useState(""),[$,F]=v.useState("all"),[X,K]=v.useState({}),O=G(na(be=>{const Be=be.currentSessionId;if(!Be)return null;const Le=be.chats.find(Ge=>Ge.id===Be);return Le?{id:Le.id,kind:Le.kind,parentSessionId:Le.parentSessionId||null,rootSessionId:Le.rootSessionId||null,pinned:!!Le.pinned,createdAt:Le.createdAt,createdByScheduleId:Le.createdByScheduleId||null}:null})),W=v.useMemo(()=>O?O.pinned?"Pinned":O.createdByScheduleId?"Scheduled":new Date(O.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):null,[O]),ae=v.useMemo(()=>{const be=new Set(k);return W&&be.add(W),Array.from(be)},[W,k]),Y=be=>{const Be=new Set(Array.isArray(be)?be:[be]);P(Le=>{if(Le.size!==Be.size)return Be;for(const Ge of Be)if(!Le.has(Ge))return Be;return Le})},ce=A.trim().toLowerCase(),L=ce.length>0||$!=="all",oe=v.useMemo(()=>[],[]),Se=v.useMemo(()=>({}),[]),J=v.useMemo(()=>({}),[]),te=v.useMemo(()=>[],[]),he=v.useMemo(()=>new Set,[]),de=v.useMemo(()=>w?oe:n.filter(be=>be.kind!=="child"),[n,w,oe]),me=v.useMemo(()=>{if(w)return Se;const be={};for(const Be of n){if(Be.kind!=="child")continue;const Le=Be.parentSessionId||Be.rootSessionId;Le&&(be[Le]||(be[Le]=[]),be[Le].push(Be))}return Object.keys(be).forEach(Be=>{be[Be].sort((Le,Ge)=>Le.pinned!==Ge.pinned?Le.pinned?-1:1:(Ge.createdAt??0)-(Le.createdAt??0))}),be},[n,w,Se]),ge=v.useMemo(()=>L?de.filter(be=>pu(be,ce)&&mu(be,$,m)?!0:(me[be.id]||[]).some(Ge=>pu(Ge,ce)&&mu(Ge,$,m))):de,[me,L,m,ce,de,$]),le=v.useMemo(()=>{if(!L)return me;const be={};for(const Be of ge){const Le=me[Be.id]||[];be[Be.id]=Le.filter(Ge=>pu(Ge,ce)&&mu(Ge,$,m))}return be},[me,ge,L,m,ce,$]),ke=v.useMemo(()=>w?J:S_(ge),[ge,w,J]),je=v.useMemo(()=>w?te:w_(ke),[ke,w,te]),fe=v.useCallback(be=>{i(be),P(Be=>{if(Be.has("Pinned"))return Be;const Le=new Set(Be);return Le.add("Pinned"),Le})},[i]),ne=v.useCallback(be=>{const Be=n.find(Ge=>Ge.id===be),Le=Be?__({...Be}):null;a(be),Le&&P(Ge=>{if(Ge.has(Le))return Ge;const Vt=new Set(Ge);return Vt.add(Le),Vt})},[n,a]),Q=be=>{xl.confirm({title:t("chat.sidebar.delete.title"),content:t("chat.sidebar.delete.confirm"),okText:t("common.delete"),okType:"danger",cancelText:t("common.cancel"),onOk:()=>{_(be),s(be)}})},ie=oa(be=>be.open),ye=()=>{ie("chat")},$e=v.useCallback(be=>{j(be)},[]),qe=v.useCallback(be=>{F(be)},[]),Ue=v.useCallback(()=>{j(""),F("all")},[]),rt=(be,Be)=>{c(be,{title:Be})},ht=v.useCallback(async be=>{try{await Pn.getInstance().regenerateSessionTitle(be)}catch(Be){console.error("Failed to regenerate session title:",Be)}},[]),Ct=v.useCallback(async be=>{var Le;if(((Le=X[be])==null?void 0:Le.status)==="loading")return;K(Ge=>({...Ge,[be]:{status:"loading"}}));const Be=e.loading(t("chat.actions.runProjectDreamRunning"),0);try{const Ge=await Pn.getInstance().runProjectDream(be);Be(),Ge.dream_generated?e.success(t("chat.actions.runProjectDreamSuccess")):e.info(Ge.message||t("chat.actions.runProjectDreamNoChange"));try{await f()}catch(Vt){console.warn("Failed to refresh chats after project dream run:",Vt)}}catch(Ge){Be();const Vt=Ge instanceof Error&&Ge.message?Ge.message:t("chat.actions.runProjectDreamFailed");e.error(Vt),console.error("Failed to run project dream:",Ge)}finally{K(Ge=>({...Ge,[be]:{status:"idle"}}))}},[e,X,f,t]),vt=be=>{const Be=x_(ke,be),Le=Yy(ke,be);xl.confirm({title:t("chat.sidebar.deleteByDate.title",{date:be}),content:t("chat.sidebar.deleteByDate.confirm",{count:Le,date:be}),okText:t("common.delete"),okType:"danger",cancelText:t("common.cancel"),onOk:()=>{Be.forEach(Ge=>_(Ge)),o(Be)}})},Ve=()=>{T(!0)},Ht=()=>{T(!1)},ct=async be=>{try{await M(t("chat.sidebar.newSessionWithPrompt",{prompt:be.name}),{config:{systemPromptId:be.id,baseSystemPrompt:be.content,lastUsedEnhancedPrompt:null}}),T(!1)}catch(Be){console.error("Failed to create chat:",Be),xl.error({title:t("chat.sidebar.createFailedTitle"),content:Be instanceof Error?Be.message:t("chat.sidebar.createFailedUnknown")})}},pt=v.useCallback(be=>Zk(be),[]),[an,Nt]=v.useState(new Set),Tt=v.useMemo(()=>{if(w)return he;const be=new Set;for(const Be of Object.values(me))for(const Le of Be)if(Le.pinned){const Ge=Le.parentSessionId||Le.rootSessionId;Ge&&be.add(Ge)}return be},[me,w,he]),xn=v.useMemo(()=>{var Be;if(w)return he;const be=new Set(an);if((O==null?void 0:O.kind)==="child"){const Le=O.parentSessionId||O.rootSessionId;Le&&be.add(Le)}for(const Le of Tt)be.add(Le);if(L)for(const Le of ge)(((Be=le[Le.id])==null?void 0:Be.length)??0)>0&&be.add(Le.id);return be},[le,an,ge,L,Tt,O,w,he]),ln=v.useCallback(be=>{Nt(Be=>{const Le=new Set(Be);return Le.has(be)?Le.delete(be):Le.add(be),Le})},[]);return{chats:ge,childrenByRoot:le,expandedRootIds:xn,toggleRootExpanded:ln,collapsed:w,currentSessionId:r,expandedKeys:ae,groupedChatsByDate:ke,hasActiveFilters:L,handleCollapseChange:Y,handleDelete:Q,handleDeleteByDate:vt,handleEditTitle:rt,handleGenerateTitle:ht,handleNewChat:Ve,handleNewChatSelectorClose:Ht,handleOpenSettings:ye,handleRunProjectDream:Ct,handleSearchQueryChange:$e,handleStatusFilterChange:qe,handleClearFilters:Ue,handleSystemPromptSelect:ct,isNewChatSelectorOpen:C,pinSession:fe,projectDreamState:X,searchQuery:A,selectSession:pt,setCollapsed:b,sortedDateKeys:je,statusFilter:$,systemPrompts:y,titleGenerationState:{},unpinSession:ne}},iT=v.lazy(()=>$t(()=>import("./SystemPromptSelector-Cqg7_foJ.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),{useBreakpoint:aT}=pc,{useToken:lT}=lt,Cp=()=>{const{token:t}=lT(),{t:e}=Xe(),n=aT(),{childrenByRoot:r,expandedRootIds:s,toggleRootExpanded:o,collapsed:i,currentSessionId:a,expandedKeys:c,groupedChatsByDate:d,handleCollapseChange:f,handleDelete:p,handleDeleteByDate:y,handleEditTitle:m,handleGenerateTitle:w,handleNewChat:b,handleNewChatSelectorClose:_,handleOpenSettings:M,handleRunProjectDream:C,handleSearchQueryChange:T,handleStatusFilterChange:k,handleClearFilters:P,handleSystemPromptSelect:A,hasActiveFilters:j,isNewChatSelectorOpen:$,pinSession:F,projectDreamState:X,searchQuery:K,selectSession:O,setCollapsed:W,sortedDateKeys:ae,statusFilter:Y,systemPrompts:ce,titleGenerationState:L,unpinSession:oe}=oT(),{xs:Se,sm:J}=n;return v.useEffect(()=>{typeof Se!="boolean"||typeof J!="boolean"||Se===!1&&J===!1&&W(!0)},[J,Se,W]),i?null:l.jsxs("nav",{"data-tour-id":"sidebar","aria-label":e("chat.sidebar.title","Chat sidebar"),style:{width:"100%",height:"100%",background:"transparent",borderRight:`1px solid ${t.colorBorderSecondary}`,position:"relative",overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:[l.jsx(Ce,{justify:"flex-end",style:{flexShrink:0,padding:"8px 10px 0 10px",minHeight:34},children:l.jsx(Ae,{type:"text",icon:l.jsx(Dx,{}),onClick:()=>W(!0),size:n.xs?"small":"middle",className:"lotus-toolbar-icon","aria-label":e("chat.sidebar.collapse","Collapse sidebar")})}),l.jsxs(Ce,{vertical:!0,gap:6,style:{flexShrink:0,padding:"6px 10px 6px 10px"},children:[l.jsx(Ls,{allowClear:!0,value:K,onChange:te=>T(te.target.value),prefix:l.jsx(Zu,{style:{color:t.colorTextTertiary}}),placeholder:e("chat.sidebar.searchPlaceholder","Search sessions"),"aria-label":e("chat.sidebar.searchPlaceholder","Search sessions"),size:"small",style:{borderRadius:t.borderRadiusLG}}),l.jsx(Fx,{block:!0,size:n.xs?"middle":"small",value:Y,onChange:te=>k(te),options:[{label:e("chat.sidebar.filters.all","All"),value:"all"},{label:e("chat.sidebar.filters.pinned","Pinned"),value:"pinned"},{label:e("chat.sidebar.filters.running","Running"),value:"running"},{label:e("chat.sidebar.filters.child","Child"),value:"child"}]})]}),l.jsx(Ce,{vertical:!0,role:"list","aria-label":e("chat.sidebar.chatList","Chat list"),style:{flex:1,minHeight:0,overflowY:"auto",padding:"0 10px"},children:l.jsx(C_,{groupedChatsByDate:d,childrenByRoot:r,expandedRootIds:s,onToggleRootExpanded:o,sortedDateKeys:ae,expandedKeys:c,onCollapseChange:f,currentSessionId:a,onSelectChat:O,onDeleteChat:p,onDeleteByDate:y,onPinChat:F,onUnpinChat:oe,onEditTitle:m,onGenerateTitle:w,onRunProjectDream:C,titleGenerationState:L,projectDreamState:X,token:t,hasActiveFilters:j,onClearFilters:P})}),l.jsx(O_,{collapsed:!1,onNewChat:b,onOpenSettings:M,token:t}),l.jsx(v.Suspense,{fallback:null,children:l.jsx(iT,{open:$,onClose:_,onSelect:A,prompts:ce,title:e("chat.prompt.newSessionSelectorTitle"),showCancelButton:!0})})]})},{Text:kp,Paragraph:cT}=ut;class ga extends v.Component{constructor(n){super(n);Ie(this,"handleReset",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){var o,i;const s=this.props.name??"ErrorBoundary";console.error(`[${s}] Uncaught error:`,n,r),(i=(o=this.props).onError)==null||i.call(o,n,r)}render(){if(!this.state.hasError)return this.props.children;const{fallback:n}=this.props,r=this.state.error;return typeof n=="function"?n(r,this.handleReset):n!==void 0?n:l.jsx(uT,{error:r,onReset:this.handleReset})}}const uT=({error:t,onReset:e})=>{const{token:n}=lt.useToken(),[r,s]=st.useState(!1),{t:o}=Xe();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(Ly,{style:{fontSize:36,color:n.colorWarning}}),l.jsx(kp,{strong:!0,style:{fontSize:16},children:o("app.errorBoundary.title")}),l.jsx(kp,{type:"secondary",style:{maxWidth:420},children:o("app.errorBoundary.description")}),l.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[l.jsx(Ae,{type:"primary",icon:l.jsx(rf,{}),onClick:e,"aria-label":o("app.errorBoundary.tryAgain"),children:o("app.errorBoundary.tryAgain")}),l.jsx(Ae,{type:"text",size:"small",onClick:()=>s(i=>!i),"aria-expanded":r,"aria-label":o("app.errorBoundary.showDetails"),children:o(r?"app.errorBoundary.hideDetails":"app.errorBoundary.showDetails")})]}),r&&l.jsxs(cT,{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:[t.message,t.stack?`
14
14
 
15
- ${t.stack}`:""]})]})},kp={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},kf=es()(J0(t=>({settings:kp,updateSettings:e=>t(n=>({settings:{...n.settings,...e}})),resetSettings:()=>t({settings:kp})}),{name:"mermaid-settings"})),Tf=()=>kf(e=>e.settings),vF=()=>kf(t=>t.updateSettings),SF=()=>kf(t=>t.resetSettings),aT=()=>{const{token:t}=lt.useToken(),e=Tf(),n=v.useRef("");v.useEffect(()=>{const r=lT(t.colorBgContainer),s=`${r}-${e.theme}-${JSON.stringify(e.themeVariables)}`;if(n.current===s)return;n.current=s;let o=e.theme;(e.theme==="default"||e.theme==="neutral")&&(o=r?"dark":e.theme),tf.initialize({startOnLoad:!1,theme:o,securityLevel:"strict",htmlLabels:!1,suppressErrorRendering:!0,fontSize:e.fontSize,themeVariables:Object.keys(e.themeVariables).length>0?e.themeVariables:void 0,flowchart:{useMaxWidth:e.useMaxWidth,htmlLabels:!1,curve:e.flowchartCurve,nodeSpacing:e.flowchartNodeSpacing,rankSpacing:e.flowchartRankSpacing},sequence:{useMaxWidth:e.useMaxWidth,diagramMarginX:10,diagramMarginY:10,actorMargin:e.sequenceActorMargin,width:e.sequenceWidth,height:e.sequenceHeight,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:e.sequenceMessageMargin,mirrorActors:!0,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1},gantt:{useMaxWidth:e.useMaxWidth,leftPadding:75,gridLineStartPadding:35,barHeight:e.ganttBarHeight,barGap:4,topPadding:e.ganttTopPadding},journey:{useMaxWidth:e.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center"},timeline:{useMaxWidth:e.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35},gitGraph:{useMaxWidth:e.useMaxWidth,showBranches:!0,showCommitLabel:!0},c4:{useMaxWidth:e.useMaxWidth,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10},sankey:{useMaxWidth:e.useMaxWidth},xyChart:{useMaxWidth:e.useMaxWidth},block:{useMaxWidth:e.useMaxWidth,padding:8}})},[t,e])};function lT(t){if(t.startsWith("#")){const n=t.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 e=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(e){const n=parseInt(e[1]),r=parseInt(e[2]),s=parseInt(e[3]);return(.299*n+.587*r+.114*s)/255<.5}return!1}tf.initialize({startOnLoad:!1,theme:"dark",securityLevel:"strict",htmlLabels:!1,suppressErrorRendering:!0});tf.parseError=function(t){console.warn("Mermaid parse error (handled gracefully):",t)};const Tp=new Map,cT=/^(\s*%%\{[\s\S]*?\}%%\s*)*\s*gantt\b/i,uT=t=>t.replace(/:/g,":").replace(/,/g,",").replace(/;/g,";").replace(/(/g,"(").replace(/)/g,")").replace(/-/g,"-"),dT=t=>(cT.test(t)?uT(t):t).replace(/\[([\s\S]*?)\]/g,(n,r)=>{const s=String(r),o=/\r?\n/.test(s),i=/[()]/.test(s),a=/@/.test(s);if(!o&&!i&&!a)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/>")),i&&!d&&(f=f.replace(/\(/g,"&#40;").replace(/\)/g,"&#41;")),a&&(f=f.replace(/@/g,"&#64;")),f===s?n:`[${f}]`}),fT=200,br=new Map,Tl=new Map;let gu=null;const hT=t=>{const n=new DOMParser().parseFromString(t,"image/svg+xml");return Array.from(n.querySelectorAll("rect")).reduce((s,o)=>{const i=Number(o.getAttribute("width"));return Number.isFinite(i)&&i<0?s+1:s},0)};async function pT(){gu||(gu=Ft(()=>import("./vendor-mermaid-RbHifJqM.js").then(e=>e.bP),__vite__mapDeps([4,3,2]),import.meta.url));const t=await gu;return t.default??t}function mT(t,e){if(br.has(t)&&br.delete(t),br.set(t,e),br.size>fT){const n=br.keys().next().value;n&&br.delete(n)}}function El(t){const e=br.get(t);return e?(br.delete(t),br.set(t,e),e):null}function Ep(){br.clear(),Tl.clear()}function gT(t,e){const n=El(t);if(n)return Promise.resolve(n);const r=Tl.get(t);if(r)return r;const s=(async()=>{var C,T;const o=await pT();await o.parse(e);const i=`mermaid-${t}`,a=document.createElement("div"),c=Math.max(1600,window.innerWidth||0,((C=document.documentElement)==null?void 0:C.clientWidth)||0);a.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(a);let d;try{d=await o.render(i,e,a)}finally{document.body.removeChild(a)}const f=typeof d=="object"&&"svg"in d?d.svg:String(d),p=hT(f);if(p>0)throw new Error(`Mermaid rendered invalid SVG (${p} rect widths < 0)`);const w=new DOMParser().parseFromString(f,"image/svg+xml").querySelector("svg");let y=800,_=300;if(w){const k=w.getAttribute("viewBox");if(k){const P=k.split(/\s+/).map(Number);P.length===4&&(y=P[2]||800,_=P[3]||300)}if(y===800&&_===300){const P=document.createElement("div");P.style.cssText="position:absolute;visibility:hidden;width:800px;",P.innerHTML=f,document.body.appendChild(P);const A=(T=P.querySelector("svg"))==null?void 0:T.getBoundingClientRect();A&&(y=A.width,_=A.height),document.body.removeChild(P)}}const M={svg:f,width:y,height:_};return mT(t,M),M})().finally(()=>{Tl.delete(t)});return Tl.set(t,s),s}const Ui=new Map,Pl=new Set,Ks=new Map,ho=new Map;let cs=null;const Bb=(t,e)=>{const n=Ui.get(t);n&&n.forEach(r=>r(e))},yu=()=>{if(cs=null,ho.size===0)return;const t=Array.from(ho.values());ho.clear(),t.forEach(e=>{Bb(e.messageId,e.content),Pl.forEach(n=>n(e))})},At={getLatest(t){return Ks.get(t)??null},subscribeMessage(t,e){let n=Ui.get(t);return n||(n=new Set,Ui.set(t,n)),n.add(e),Ks.has(t)&&e(Ks.get(t)??null),()=>{const r=Ui.get(t);r&&(r.delete(e),r.size===0&&Ui.delete(t))}},subscribe(t){return Pl.add(t),()=>{Pl.delete(t)}},publish(t){if(t.transient){ho.set(t.messageId,t),cs===null&&(cs=requestAnimationFrame(yu));return}t.content===null?Ks.delete(t.messageId):Ks.set(t.messageId,t.content),ho.set(t.messageId,t),cs===null&&(cs=requestAnimationFrame(yu))},clear(t,e){Ks.delete(e),ho.delete(e),Bb(e,null),Pl.forEach(n=>n({sessionId:t,messageId:e,content:null}))},forceFlush(){cs!==null&&(cancelAnimationFrame(cs),yu())}},Mr={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function Wb(t){return"init"in t}function gd(t){return typeof t.write=="function"}function yT(t){return!!t.onMount}function Pp(t){return"v"in t||"e"in t}function Gl(t){if("e"in t)throw t.e;if((Mr?"production":void 0)!=="production"&&!("v"in t))throw new Error("[Bug] atom state is not initialized");return t.v}function Jl(t){return typeof(t==null?void 0:t.then)=="function"}function Ub(t,e,n){if(!n.p.has(t)){n.p.add(t);const r=()=>n.p.delete(t);e.then(r,r)}}function Hb(t,e,n){const r=n.get(t),s=r==null?void 0:r.t,o=e.p;if(!(s!=null&&s.size))return o;if(!o.size)return s;const i=new Set(s);for(const a of o)i.add(a);return i}function bT(t){return!!t.INTERNAL_onInit}const vT=(t,e,n,...r)=>n.read(...r),ST=(t,e,n,...r)=>n.write(...r),wT=(t,e,n)=>n.INTERNAL_onInit(e),xT=(t,e,n,r)=>{var s;return(s=n.onMount)==null?void 0:s.call(n,r)},_T=(t,e,n)=>{var r;const s=t[0];let o=s.get(n);if(!o){const i=t[6],a=t[9];o={d:new Map,p:new Set,n:0},s.set(n,o),(r=i.i)==null||r.call(i,n),bT(n)&&a(t,e,n)}return o},CT=(t,e)=>{var n;const r=t[1],s=t[3],o=t[4],i=t[5],a=t[6],c=t[13];if(!a.f&&!s.size&&!o.size&&!i.size)return;const d=[],f=p=>{try{p()}catch(b){d.push(b)}};do{a.f&&f(a.f);const p=new Set;for(const b of s){const m=(n=r.get(b))==null?void 0:n.l;if(m)for(const w of m)p.add(w)}s.clear();for(const b of i)p.add(b);i.clear();for(const b of o)p.add(b);o.clear();for(const b of p)f(b);s.size&&c(t,e)}while(s.size||i.size||o.size);if(d.length)throw new AggregateError(d)},kT=(t,e)=>{const n=t[1],r=t[2],s=t[3],o=t[11],i=t[14],a=t[17];if(!s.size)return;const c=[],d=[],f=new WeakSet,p=new WeakSet,b=[],m=[];for(const w of s)b.push(w),m.push(o(t,e,w));for(;b.length;){const w=b.length-1,y=b[w],_=m[w];if(p.has(y)){b.pop(),m.pop();continue}if(f.has(y)){if(r.get(y)===_.n)c.push(y),d.push(_);else if((Mr?"production":void 0)!=="production"&&r.has(y))throw new Error("[Bug] invalidated atom exists");p.add(y),b.pop(),m.pop();continue}f.add(y);for(const M of Hb(y,_,n))f.has(M)||(b.push(M),m.push(o(t,e,M)))}for(let w=c.length-1;w>=0;--w){const y=c[w],_=d[w];let M=!1;for(const C of _.d.keys())if(C!==y&&s.has(C)){M=!0;break}M&&(r.set(y,_.n),i(t,e,y),a(t,e,y)),r.delete(y)}},yd=new WeakSet,TT=(t,e,n)=>{var r,s;const o=t[1],i=t[2],a=t[3],c=t[6],d=t[7],f=t[11],p=t[12],b=t[13],m=t[14],w=t[16],y=t[17],_=t[20],M=t[26],C=t[28],T=f(t,e,n),k=C[0];if(Pp(T)){if(o.has(n)&&i.get(n)!==T.n||T.m===k)return T.m=k,T;let Y=!1;for(const[ce,L]of T.d)if(m(t,e,ce).n!==L){Y=!0;break}if(!Y)return T.m=k,T}let P=!0;const A=new Set(T.d.keys()),j=()=>{for(const Y of A)T.d.delete(Y)},$=()=>{if(o.has(n)){const Y=!a.size;y(t,e,n),Y&&(b(t,e),p(t,e))}},F=Y=>{var ce;if(Y===n){const oe=f(t,e,Y);if(!Pp(oe))if(Wb(Y))_(t,e,Y,Y.init);else throw new Error("no atom init");return Gl(oe)}const L=m(t,e,Y);try{return Gl(L)}finally{A.delete(Y),T.d.set(Y,L.n),Jl(T.v)&&Ub(n,T.v,L),o.has(n)&&((ce=o.get(Y))==null||ce.t.add(n)),P||$()}};let X,K;const O={get signal(){return X||(X=new AbortController),X.signal},get setSelf(){return(Mr?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(Mr?"production":void 0)!=="production"&&!gd(n)&&console.warn("setSelf function cannot be used with read-only atom"),!K&&gd(n)&&(K=(...Y)=>{if((Mr?"production":void 0)!=="production"&&P&&console.warn("setSelf function cannot be called in sync"),!P)try{return w(t,e,n,Y)}finally{b(t,e),p(t,e)}}),K}},W=T.n,ae=i.get(n)===W;try{(Mr?"production":void 0)!=="production"&&yd.delete(e);const Y=d(t,e,n,F,O);if((Mr?"production":void 0)!=="production"&&yd.has(e)&&console.warn("Detected store mutation during atom read. This is not supported."),_(t,e,n,Y),Jl(Y)){M(t,e,Y,()=>X==null?void 0:X.abort());const ce=()=>{j(),$()};Y.then(ce,ce)}else j();return(r=c.r)==null||r.call(c,n),T.m=k,T}catch(Y){return delete T.v,T.e=Y,++T.n,T.m=k,T}finally{P=!1,T.n!==W&&ae&&(i.set(n,T.n),a.add(n),(s=c.c)==null||s.call(c,n))}},ET=(t,e,n)=>{const r=t[1],s=t[2],o=t[11],i=[n];for(;i.length;){const a=i.pop(),c=o(t,e,a);for(const d of Hb(a,c,r)){const f=o(t,e,d);s.get(d)!==f.n&&(s.set(d,f.n),i.push(d))}}},PT=(t,e,n,r)=>{const s=t[3],o=t[6],i=t[8],a=t[11],c=t[12],d=t[13],f=t[14],p=t[15],b=t[16],m=t[17],w=t[20],y=t[28];let _=!0;const M=T=>Gl(f(t,e,T)),C=(T,...k)=>{var P;const A=a(t,e,T);try{if(T===n){if(!Wb(T))throw new Error("atom not writable");(Mr?"production":void 0)!=="production"&&yd.add(e);const j=A.n,$=k[0];w(t,e,T,$),m(t,e,T),j!==A.n&&(++y[0],s.add(T),p(t,e,T),(P=o.c)==null||P.call(o,T));return}else return b(t,e,T,k)}finally{_||(d(t,e),c(t,e))}};try{return i(t,e,n,M,C,...r)}finally{_=!1}},MT=(t,e,n)=>{var r;const s=t[1],o=t[3],i=t[6],a=t[11],c=t[15],d=t[18],f=t[19],p=a(t,e,n),b=s.get(n);if(b&&p.d.size>0){for(const[m,w]of p.d)if(!b.d.has(m)){const y=a(t,e,m);d(t,e,m).t.add(n),b.d.add(m),w!==y.n&&(o.add(m),c(t,e,m),(r=i.c)==null||r.call(i,m))}for(const m of b.d)if(!p.d.has(m)){b.d.delete(m);const w=f(t,e,m);w==null||w.t.delete(n)}}},AT=(t,e,n)=>{var r;const s=t[1],o=t[4],i=t[6],a=t[10],c=t[11],d=t[12],f=t[13],p=t[14],b=t[16],m=t[18],w=c(t,e,n);let y=s.get(n);if(!y){p(t,e,n);for(const _ of w.d.keys())m(t,e,_).t.add(n);if(y={l:new Set,d:new Set(w.d.keys()),t:new Set},s.set(n,y),gd(n)&&yT(n)){const _=()=>{let M=!0;const C=(...T)=>{try{return b(t,e,n,T)}finally{M||(f(t,e),d(t,e))}};try{const T=a(t,e,n,C);T&&(y.u=()=>{M=!0;try{T()}finally{M=!1}})}finally{M=!1}};o.add(_)}(r=i.m)==null||r.call(i,n)}return y},RT=(t,e,n)=>{var r,s;const o=t[1],i=t[5],a=t[6],c=t[11],d=t[19],f=c(t,e,n);let p=o.get(n);if(!p||p.l.size)return p;let b=!1;for(const m of p.t)if((r=o.get(m))!=null&&r.d.has(n)){b=!0;break}if(!b){p.u&&i.add(p.u),p=void 0,o.delete(n);for(const m of f.d.keys()){const w=d(t,e,m);w==null||w.t.delete(n)}(s=a.u)==null||s.call(a,n);return}return p},jT=(t,e,n,r)=>{const s=t[11],o=t[27],i=s(t,e,n),a="v"in i,c=i.v;if(Jl(r))for(const d of i.d.keys())Ub(n,r,s(t,e,d));i.v=r,delete i.e,(!a||!Object.is(c,i.v))&&(++i.n,Jl(c)&&o(t,e,c))},IT=(t,e,n)=>{const r=t[14];return Gl(r(t,e,n))},OT=(t,e,n,...r)=>{const s=t[3],o=t[12],i=t[13],a=t[16],c=s.size;try{return a(t,e,n,r)}finally{s.size!==c&&(i(t,e),o(t,e))}},$T=(t,e,n,r)=>{const s=t[12],o=t[18],i=t[19],c=o(t,e,n).l;return c.add(r),s(t,e),()=>{c.delete(r),i(t,e,n),s(t,e)}},LT=(t,e,n,r)=>{const s=t[25];let o=s.get(n);if(!o){o=new Set,s.set(n,o);const i=()=>s.delete(n);n.then(i,i)}o.add(r)},DT=(t,e,n)=>{const s=t[25].get(n);s==null||s.forEach(o=>o())},qb=new WeakMap;function FT(t){const e=qb.get(t);if((Mr?"production":void 0)!=="production"&&!e)throw new Error("Store must be created by buildStore to read its building blocks");const n=e[24];return n?n(e,t):e}function NT(...t){const e={get(i){return r(n,e,i)},set(i,...a){return s(n,e,i,...a)},sub(i,a){return o(n,e,i,a)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},vT,ST,wT,xT,_T,CT,kT,TT,ET,PT,MT,AT,RT,jT,IT,OT,$T,void 0,new WeakMap,LT,DT,[0]].map((i,a)=>t[a]||i);qb.set(e,Object.freeze(n));const r=n[21],s=n[22],o=n[23];return e}const Kb={};let zT=0;function sr(t,e){const n=`atom${++zT}`,r={toString(){return(Kb?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof t=="function"?r.read=t:(r.init=t,r.read=BT,r.write=WT),e&&(r.write=e),r}function BT(t){return t(this)}function WT(t,e,n){return e(this,typeof n=="function"?n(t(this)):n)}function Xb(){return NT()}let Go;function UT(){return Go||(Go=Xb(),(Kb?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Go),globalThis.__JOTAI_DEFAULT_STORE__!==Go&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Go}const HT=v.createContext(void 0);function qT(t){const e=v.useContext(HT);return(t==null?void 0:t.store)||e||UT()}const bd=t=>typeof(t==null?void 0:t.then)=="function",vd=t=>{t.status||(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}))},KT=st.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(vd(t),t)}),bu=new WeakMap,Mp=(t,e,n)=>{const r=FT(t),s=r[26];let o=bu.get(e);return o||(o=new Promise((i,a)=>{let c=e;const d=b=>m=>{c===b&&i(m)},f=b=>m=>{c===b&&a(m)},p=()=>{try{const b=n();bd(b)?(bu.set(b,o),c=b,b.then(d(b),f(b)),s(r,t,b,p)):i(b)}catch(b){a(b)}};e.then(d(e),f(e)),s(r,t,e,p)}),bu.set(e,o)),o};function Ef(t,e){const{delay:n,unstable_promiseStatus:r=!st.use}=e||{},s=qT(e),[[o,i,a],c]=v.useReducer(f=>{const p=s.get(t);return Object.is(f[0],p)&&f[1]===s&&f[2]===t?f:[p,s,t]},void 0,()=>[s.get(t),s,t]);let d=o;if((i!==s||a!==t)&&(c(),d=s.get(t)),v.useEffect(()=>{const f=s.sub(t,()=>{if(r)try{const p=s.get(t);bd(p)&&vd(Mp(s,p,()=>s.get(t)))}catch{}if(typeof n=="number"){console.warn(`[DEPRECATED] delay option is deprecated and will be removed in v3.
15
+ ${t.stack}`:""]})]})},Tp={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},kf=Ir()(tC(t=>({settings:Tp,updateSettings:e=>t(n=>({settings:{...n.settings,...e}})),resetSettings:()=>t({settings:Tp})}),{name:"mermaid-settings"})),Tf=()=>kf(e=>e.settings),kF=()=>kf(t=>t.updateSettings),TF=()=>kf(t=>t.resetSettings),dT=()=>{const{token:t}=lt.useToken(),e=Tf(),n=v.useRef("");v.useEffect(()=>{const r=fT(t.colorBgContainer),s=`${r}-${e.theme}-${JSON.stringify(e.themeVariables)}`;if(n.current===s)return;n.current=s;let o=e.theme;(e.theme==="default"||e.theme==="neutral")&&(o=r?"dark":e.theme),tf.initialize({startOnLoad:!1,theme:o,securityLevel:"strict",htmlLabels:!1,suppressErrorRendering:!0,fontSize:e.fontSize,themeVariables:Object.keys(e.themeVariables).length>0?e.themeVariables:void 0,flowchart:{useMaxWidth:e.useMaxWidth,htmlLabels:!1,curve:e.flowchartCurve,nodeSpacing:e.flowchartNodeSpacing,rankSpacing:e.flowchartRankSpacing},sequence:{useMaxWidth:e.useMaxWidth,diagramMarginX:10,diagramMarginY:10,actorMargin:e.sequenceActorMargin,width:e.sequenceWidth,height:e.sequenceHeight,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:e.sequenceMessageMargin,mirrorActors:!0,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1},gantt:{useMaxWidth:e.useMaxWidth,leftPadding:75,gridLineStartPadding:35,barHeight:e.ganttBarHeight,barGap:4,topPadding:e.ganttTopPadding},journey:{useMaxWidth:e.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center"},timeline:{useMaxWidth:e.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35},gitGraph:{useMaxWidth:e.useMaxWidth,showBranches:!0,showCommitLabel:!0},c4:{useMaxWidth:e.useMaxWidth,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10},sankey:{useMaxWidth:e.useMaxWidth},xyChart:{useMaxWidth:e.useMaxWidth},block:{useMaxWidth:e.useMaxWidth,padding:8}})},[t,e])};function fT(t){if(t.startsWith("#")){const n=t.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 e=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(e){const n=parseInt(e[1]),r=parseInt(e[2]),s=parseInt(e[3]);return(.299*n+.587*r+.114*s)/255<.5}return!1}tf.initialize({startOnLoad:!1,theme:"dark",securityLevel:"strict",htmlLabels:!1,suppressErrorRendering:!0});tf.parseError=function(t){console.warn("Mermaid parse error (handled gracefully):",t)};const Ep=new Map,hT=/^(\s*%%\{[\s\S]*?\}%%\s*)*\s*gantt\b/i,pT=t=>t.replace(/:/g,":").replace(/,/g,",").replace(/;/g,";").replace(/(/g,"(").replace(/)/g,")").replace(/-/g,"-"),mT=t=>(hT.test(t)?pT(t):t).replace(/\[([\s\S]*?)\]/g,(n,r)=>{const s=String(r),o=/\r?\n/.test(s),i=/[()]/.test(s),a=/@/.test(s);if(!o&&!i&&!a)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/>")),i&&!d&&(f=f.replace(/\(/g,"&#40;").replace(/\)/g,"&#41;")),a&&(f=f.replace(/@/g,"&#64;")),f===s?n:`[${f}]`}),gT=200,br=new Map,Tl=new Map;let gu=null;const yT=t=>{const n=new DOMParser().parseFromString(t,"image/svg+xml");return Array.from(n.querySelectorAll("rect")).reduce((s,o)=>{const i=Number(o.getAttribute("width"));return Number.isFinite(i)&&i<0?s+1:s},0)};async function bT(){gu||(gu=$t(()=>import("./vendor-mermaid-CztJpwsx.js").then(e=>e.bP),__vite__mapDeps([4,3,2]),import.meta.url));const t=await gu;return t.default??t}function vT(t,e){if(br.has(t)&&br.delete(t),br.set(t,e),br.size>gT){const n=br.keys().next().value;n&&br.delete(n)}}function El(t){const e=br.get(t);return e?(br.delete(t),br.set(t,e),e):null}function Pp(){br.clear(),Tl.clear()}function ST(t,e){const n=El(t);if(n)return Promise.resolve(n);const r=Tl.get(t);if(r)return r;const s=(async()=>{var C,T;const o=await bT();await o.parse(e);const i=`mermaid-${t}`,a=document.createElement("div"),c=Math.max(1600,window.innerWidth||0,((C=document.documentElement)==null?void 0:C.clientWidth)||0);a.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(a);let d;try{d=await o.render(i,e,a)}finally{document.body.removeChild(a)}const f=typeof d=="object"&&"svg"in d?d.svg:String(d),p=yT(f);if(p>0)throw new Error(`Mermaid rendered invalid SVG (${p} rect widths < 0)`);const w=new DOMParser().parseFromString(f,"image/svg+xml").querySelector("svg");let b=800,_=300;if(w){const k=w.getAttribute("viewBox");if(k){const P=k.split(/\s+/).map(Number);P.length===4&&(b=P[2]||800,_=P[3]||300)}if(b===800&&_===300){const P=document.createElement("div");P.style.cssText="position:absolute;visibility:hidden;width:800px;",P.innerHTML=f,document.body.appendChild(P);const A=(T=P.querySelector("svg"))==null?void 0:T.getBoundingClientRect();A&&(b=A.width,_=A.height),document.body.removeChild(P)}}const M={svg:f,width:b,height:_};return vT(t,M),M})().finally(()=>{Tl.delete(t)});return Tl.set(t,s),s}const Hi=new Map,Pl=new Set,Ks=new Map,ho=new Map;let cs=null;const Hb=(t,e)=>{const n=Hi.get(t);n&&n.forEach(r=>r(e))},yu=()=>{if(cs=null,ho.size===0)return;const t=Array.from(ho.values());ho.clear(),t.forEach(e=>{Hb(e.messageId,e.content),Pl.forEach(n=>n(e))})},At={getLatest(t){return Ks.get(t)??null},subscribeMessage(t,e){let n=Hi.get(t);return n||(n=new Set,Hi.set(t,n)),n.add(e),Ks.has(t)&&e(Ks.get(t)??null),()=>{const r=Hi.get(t);r&&(r.delete(e),r.size===0&&Hi.delete(t))}},subscribe(t){return Pl.add(t),()=>{Pl.delete(t)}},publish(t){if(t.transient){ho.set(t.messageId,t),cs===null&&(cs=requestAnimationFrame(yu));return}t.content===null?Ks.delete(t.messageId):Ks.set(t.messageId,t.content),ho.set(t.messageId,t),cs===null&&(cs=requestAnimationFrame(yu))},clear(t,e){Ks.delete(e),ho.delete(e),Hb(e,null),Pl.forEach(n=>n({sessionId:t,messageId:e,content:null}))},forceFlush(){cs!==null&&(cancelAnimationFrame(cs),yu())}},Mr={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function qb(t){return"init"in t}function gd(t){return typeof t.write=="function"}function wT(t){return!!t.onMount}function Mp(t){return"v"in t||"e"in t}function Gl(t){if("e"in t)throw t.e;if((Mr?"production":void 0)!=="production"&&!("v"in t))throw new Error("[Bug] atom state is not initialized");return t.v}function Jl(t){return typeof(t==null?void 0:t.then)=="function"}function Kb(t,e,n){if(!n.p.has(t)){n.p.add(t);const r=()=>n.p.delete(t);e.then(r,r)}}function Xb(t,e,n){const r=n.get(t),s=r==null?void 0:r.t,o=e.p;if(!(s!=null&&s.size))return o;if(!o.size)return s;const i=new Set(s);for(const a of o)i.add(a);return i}function xT(t){return!!t.INTERNAL_onInit}const _T=(t,e,n,...r)=>n.read(...r),CT=(t,e,n,...r)=>n.write(...r),kT=(t,e,n)=>n.INTERNAL_onInit(e),TT=(t,e,n,r)=>{var s;return(s=n.onMount)==null?void 0:s.call(n,r)},ET=(t,e,n)=>{var r;const s=t[0];let o=s.get(n);if(!o){const i=t[6],a=t[9];o={d:new Map,p:new Set,n:0},s.set(n,o),(r=i.i)==null||r.call(i,n),xT(n)&&a(t,e,n)}return o},PT=(t,e)=>{var n;const r=t[1],s=t[3],o=t[4],i=t[5],a=t[6],c=t[13];if(!a.f&&!s.size&&!o.size&&!i.size)return;const d=[],f=p=>{try{p()}catch(y){d.push(y)}};do{a.f&&f(a.f);const p=new Set;for(const y of s){const m=(n=r.get(y))==null?void 0:n.l;if(m)for(const w of m)p.add(w)}s.clear();for(const y of i)p.add(y);i.clear();for(const y of o)p.add(y);o.clear();for(const y of p)f(y);s.size&&c(t,e)}while(s.size||i.size||o.size);if(d.length)throw new AggregateError(d)},MT=(t,e)=>{const n=t[1],r=t[2],s=t[3],o=t[11],i=t[14],a=t[17];if(!s.size)return;const c=[],d=[],f=new WeakSet,p=new WeakSet,y=[],m=[];for(const w of s)y.push(w),m.push(o(t,e,w));for(;y.length;){const w=y.length-1,b=y[w],_=m[w];if(p.has(b)){y.pop(),m.pop();continue}if(f.has(b)){if(r.get(b)===_.n)c.push(b),d.push(_);else if((Mr?"production":void 0)!=="production"&&r.has(b))throw new Error("[Bug] invalidated atom exists");p.add(b),y.pop(),m.pop();continue}f.add(b);for(const M of Xb(b,_,n))f.has(M)||(y.push(M),m.push(o(t,e,M)))}for(let w=c.length-1;w>=0;--w){const b=c[w],_=d[w];let M=!1;for(const C of _.d.keys())if(C!==b&&s.has(C)){M=!0;break}M&&(r.set(b,_.n),i(t,e,b),a(t,e,b)),r.delete(b)}},yd=new WeakSet,AT=(t,e,n)=>{var r,s;const o=t[1],i=t[2],a=t[3],c=t[6],d=t[7],f=t[11],p=t[12],y=t[13],m=t[14],w=t[16],b=t[17],_=t[20],M=t[26],C=t[28],T=f(t,e,n),k=C[0];if(Mp(T)){if(o.has(n)&&i.get(n)!==T.n||T.m===k)return T.m=k,T;let Y=!1;for(const[ce,L]of T.d)if(m(t,e,ce).n!==L){Y=!0;break}if(!Y)return T.m=k,T}let P=!0;const A=new Set(T.d.keys()),j=()=>{for(const Y of A)T.d.delete(Y)},$=()=>{if(o.has(n)){const Y=!a.size;b(t,e,n),Y&&(y(t,e),p(t,e))}},F=Y=>{var ce;if(Y===n){const oe=f(t,e,Y);if(!Mp(oe))if(qb(Y))_(t,e,Y,Y.init);else throw new Error("no atom init");return Gl(oe)}const L=m(t,e,Y);try{return Gl(L)}finally{A.delete(Y),T.d.set(Y,L.n),Jl(T.v)&&Kb(n,T.v,L),o.has(n)&&((ce=o.get(Y))==null||ce.t.add(n)),P||$()}};let X,K;const O={get signal(){return X||(X=new AbortController),X.signal},get setSelf(){return(Mr?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(Mr?"production":void 0)!=="production"&&!gd(n)&&console.warn("setSelf function cannot be used with read-only atom"),!K&&gd(n)&&(K=(...Y)=>{if((Mr?"production":void 0)!=="production"&&P&&console.warn("setSelf function cannot be called in sync"),!P)try{return w(t,e,n,Y)}finally{y(t,e),p(t,e)}}),K}},W=T.n,ae=i.get(n)===W;try{(Mr?"production":void 0)!=="production"&&yd.delete(e);const Y=d(t,e,n,F,O);if((Mr?"production":void 0)!=="production"&&yd.has(e)&&console.warn("Detected store mutation during atom read. This is not supported."),_(t,e,n,Y),Jl(Y)){M(t,e,Y,()=>X==null?void 0:X.abort());const ce=()=>{j(),$()};Y.then(ce,ce)}else j();return(r=c.r)==null||r.call(c,n),T.m=k,T}catch(Y){return delete T.v,T.e=Y,++T.n,T.m=k,T}finally{P=!1,T.n!==W&&ae&&(i.set(n,T.n),a.add(n),(s=c.c)==null||s.call(c,n))}},RT=(t,e,n)=>{const r=t[1],s=t[2],o=t[11],i=[n];for(;i.length;){const a=i.pop(),c=o(t,e,a);for(const d of Xb(a,c,r)){const f=o(t,e,d);s.get(d)!==f.n&&(s.set(d,f.n),i.push(d))}}},jT=(t,e,n,r)=>{const s=t[3],o=t[6],i=t[8],a=t[11],c=t[12],d=t[13],f=t[14],p=t[15],y=t[16],m=t[17],w=t[20],b=t[28];let _=!0;const M=T=>Gl(f(t,e,T)),C=(T,...k)=>{var P;const A=a(t,e,T);try{if(T===n){if(!qb(T))throw new Error("atom not writable");(Mr?"production":void 0)!=="production"&&yd.add(e);const j=A.n,$=k[0];w(t,e,T,$),m(t,e,T),j!==A.n&&(++b[0],s.add(T),p(t,e,T),(P=o.c)==null||P.call(o,T));return}else return y(t,e,T,k)}finally{_||(d(t,e),c(t,e))}};try{return i(t,e,n,M,C,...r)}finally{_=!1}},IT=(t,e,n)=>{var r;const s=t[1],o=t[3],i=t[6],a=t[11],c=t[15],d=t[18],f=t[19],p=a(t,e,n),y=s.get(n);if(y&&p.d.size>0){for(const[m,w]of p.d)if(!y.d.has(m)){const b=a(t,e,m);d(t,e,m).t.add(n),y.d.add(m),w!==b.n&&(o.add(m),c(t,e,m),(r=i.c)==null||r.call(i,m))}for(const m of y.d)if(!p.d.has(m)){y.d.delete(m);const w=f(t,e,m);w==null||w.t.delete(n)}}},OT=(t,e,n)=>{var r;const s=t[1],o=t[4],i=t[6],a=t[10],c=t[11],d=t[12],f=t[13],p=t[14],y=t[16],m=t[18],w=c(t,e,n);let b=s.get(n);if(!b){p(t,e,n);for(const _ of w.d.keys())m(t,e,_).t.add(n);if(b={l:new Set,d:new Set(w.d.keys()),t:new Set},s.set(n,b),gd(n)&&wT(n)){const _=()=>{let M=!0;const C=(...T)=>{try{return y(t,e,n,T)}finally{M||(f(t,e),d(t,e))}};try{const T=a(t,e,n,C);T&&(b.u=()=>{M=!0;try{T()}finally{M=!1}})}finally{M=!1}};o.add(_)}(r=i.m)==null||r.call(i,n)}return b},$T=(t,e,n)=>{var r,s;const o=t[1],i=t[5],a=t[6],c=t[11],d=t[19],f=c(t,e,n);let p=o.get(n);if(!p||p.l.size)return p;let y=!1;for(const m of p.t)if((r=o.get(m))!=null&&r.d.has(n)){y=!0;break}if(!y){p.u&&i.add(p.u),p=void 0,o.delete(n);for(const m of f.d.keys()){const w=d(t,e,m);w==null||w.t.delete(n)}(s=a.u)==null||s.call(a,n);return}return p},LT=(t,e,n,r)=>{const s=t[11],o=t[27],i=s(t,e,n),a="v"in i,c=i.v;if(Jl(r))for(const d of i.d.keys())Kb(n,r,s(t,e,d));i.v=r,delete i.e,(!a||!Object.is(c,i.v))&&(++i.n,Jl(c)&&o(t,e,c))},DT=(t,e,n)=>{const r=t[14];return Gl(r(t,e,n))},FT=(t,e,n,...r)=>{const s=t[3],o=t[12],i=t[13],a=t[16],c=s.size;try{return a(t,e,n,r)}finally{s.size!==c&&(i(t,e),o(t,e))}},NT=(t,e,n,r)=>{const s=t[12],o=t[18],i=t[19],c=o(t,e,n).l;return c.add(r),s(t,e),()=>{c.delete(r),i(t,e,n),s(t,e)}},zT=(t,e,n,r)=>{const s=t[25];let o=s.get(n);if(!o){o=new Set,s.set(n,o);const i=()=>s.delete(n);n.then(i,i)}o.add(r)},BT=(t,e,n)=>{const s=t[25].get(n);s==null||s.forEach(o=>o())},Yb=new WeakMap;function WT(t){const e=Yb.get(t);if((Mr?"production":void 0)!=="production"&&!e)throw new Error("Store must be created by buildStore to read its building blocks");const n=e[24];return n?n(e,t):e}function UT(...t){const e={get(i){return r(n,e,i)},set(i,...a){return s(n,e,i,...a)},sub(i,a){return o(n,e,i,a)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},_T,CT,kT,TT,ET,PT,MT,AT,RT,jT,IT,OT,$T,LT,DT,FT,NT,void 0,new WeakMap,zT,BT,[0]].map((i,a)=>t[a]||i);Yb.set(e,Object.freeze(n));const r=n[21],s=n[22],o=n[23];return e}const Vb={};let HT=0;function sr(t,e){const n=`atom${++HT}`,r={toString(){return(Vb?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof t=="function"?r.read=t:(r.init=t,r.read=qT,r.write=KT),e&&(r.write=e),r}function qT(t){return t(this)}function KT(t,e,n){return e(this,typeof n=="function"?n(t(this)):n)}function Gb(){return UT()}let Jo;function XT(){return Jo||(Jo=Gb(),(Vb?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=Jo),globalThis.__JOTAI_DEFAULT_STORE__!==Jo&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),Jo}const YT=v.createContext(void 0);function VT(t){const e=v.useContext(YT);return(t==null?void 0:t.store)||e||XT()}const bd=t=>typeof(t==null?void 0:t.then)=="function",vd=t=>{t.status||(t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}))},GT=st.use||(t=>{if(t.status==="pending")throw t;if(t.status==="fulfilled")return t.value;throw t.status==="rejected"?t.reason:(vd(t),t)}),bu=new WeakMap,Ap=(t,e,n)=>{const r=WT(t),s=r[26];let o=bu.get(e);return o||(o=new Promise((i,a)=>{let c=e;const d=y=>m=>{c===y&&i(m)},f=y=>m=>{c===y&&a(m)},p=()=>{try{const y=n();bd(y)?(bu.set(y,o),c=y,y.then(d(y),f(y)),s(r,t,y,p)):i(y)}catch(y){a(y)}};e.then(d(e),f(e)),s(r,t,e,p)}),bu.set(e,o)),o};function Ef(t,e){const{delay:n,unstable_promiseStatus:r=!st.use}=e||{},s=VT(e),[[o,i,a],c]=v.useReducer(f=>{const p=s.get(t);return Object.is(f[0],p)&&f[1]===s&&f[2]===t?f:[p,s,t]},void 0,()=>[s.get(t),s,t]);let d=o;if((i!==s||a!==t)&&(c(),d=s.get(t)),v.useEffect(()=>{const f=s.sub(t,()=>{if(r)try{const p=s.get(t);bd(p)&&vd(Ap(s,p,()=>s.get(t)))}catch{}if(typeof n=="number"){console.warn(`[DEPRECATED] delay option is deprecated and will be removed in v3.
16
16
 
17
17
  Migration guide:
18
18
 
@@ -33,11 +33,11 @@ function useAtomValueWithDelay<Value>(
33
33
  }, [store, atom, delay])
34
34
  return value
35
35
  }
36
- `),setTimeout(c,n);return}c()});return c(),f},[s,t,n,r]),v.useDebugValue(d),bd(d)){const f=Mp(s,d,()=>s.get(t));return r&&vd(f),KT(f)}return d}function XT(t,e){let n=null;const r=new Map,s=new Set;function o(a){let c;if(c=r.get(a),c!==void 0)if(n!=null&&n(c[1],a))o.remove(a);else return c[0];const d=t(a);return r.set(a,[d,Date.now()]),i("CREATE",a,d),d}function i(a,c,d){for(const f of s)f({type:a,param:c,atom:d})}return o.unstable_listen=a=>(s.add(a),()=>{s.delete(a)}),o.getParams=()=>r.keys(),o.remove=a=>{{if(!r.has(a))return;const[c]=r.get(a);r.delete(a),i("REMOVE",a,c)}},o.setShouldRemove=a=>{if(n=a,!!n)for(const[c,[d,f]]of r)n(f,c)&&(r.delete(c),i("REMOVE",c,d))},o}const wn=t=>(t??"").trim(),Yb=(...t)=>{const e=t.map(wn);return e.some(n=>!n)?"":e.join("::")},Sd=(t,e,n,r)=>n?t.get(e(n)):r,Vb=(t,e,n,r,s)=>{n&&(t.set(e(n),r),e.remove(n),s==null||s.delete(n))},YT=(t,e,n,r,s)=>{r&&Array.from(n).forEach(o=>{o.startsWith(r)&&Vb(t,e,o,s,n)})},bc=t=>{const e=Xb(),n=XT(s=>sr(t)),r=new Set;return{store:e,atomFamily:n,activeKeys:r,getState:s=>Sd(e,n,s,t),clearState:s=>Vb(e,n,s,t,r),clearStatesByPrefix:s=>YT(e,n,r,s,t)}},Gb={content:"",reasoningContent:"",updatedAt:0},vc=bc(Gb),Sc=vc.store,wc=vc.atomFamily,VT=sr(null,(t,e,n)=>{const r=wn(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=wc(r),i=t(o);e(o,{...i,content:i.content+s,updatedAt:Date.now()})}),GT=sr(null,(t,e,n)=>{const r=wn(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=wc(r),i=t(o);e(o,{...i,reasoningContent:i.reasoningContent+s,updatedAt:Date.now()})}),JT=sr(null,(t,e,n)=>{const r=wn(n.sessionId);if(!r)return;const s=wc(r),o=t(s);e(s,{content:n.patch.content??o.content,reasoningContent:n.patch.reasoningContent??o.reasoningContent,updatedAt:n.patch.updatedAt??Date.now()})}),QT=(t,e)=>{Sc.set(VT,{sessionId:t,chunk:e})},ZT=(t,e)=>{Sc.set(GT,{sessionId:t,chunk:e})},eE=(t,e)=>{Sc.set(JT,{sessionId:t,patch:e})},wd=t=>{vc.clearState(wn(t))},Ap=t=>vc.getState(wn(t)),tE={output:"",status:"idle",updatedAt:0},Ea=bc(tE),Pf=Ea.store,Mf=Ea.atomFamily,Af=(t,e)=>Yb(t,e),nE=sr(null,(t,e,n)=>{const r=Af(n.sessionId,n.toolCallId);if(!r)return;const s=n.chunk??"";if(!s)return;Ea.activeKeys.add(r);const o=Mf(r),i=t(o);e(o,{output:i.output+s,status:"running",updatedAt:Date.now()})}),rE=sr(null,(t,e,n)=>{const r=Af(n.sessionId,n.toolCallId);if(!r)return;Ea.activeKeys.add(r);const s=Mf(r),o=t(s);e(s,{...o,status:n.status,updatedAt:Date.now()})}),Rp=t=>{const e=wn(t);e&&Ea.clearStatesByPrefix(`${e}::`)},sE=(t,e,n)=>{Pf.set(nE,{sessionId:t,toolCallId:e,chunk:n})},vu=(t,e,n)=>{Pf.set(rE,{sessionId:t,toolCallId:e,status:n})},oE={outputPreview:"",updatedAt:0},_o=bc(oE),iE=_o.store,aE=_o.atomFamily,Rf=(t,e)=>Yb(t,e),lE=sr(null,(t,e,n)=>{const r=Rf(n.parentSessionId,n.childSessionId);if(!r)return;_o.activeKeys.add(r);const s=aE(r),o=t(s);e(s,{...o,outputPreview:n.outputPreview,updatedAt:Date.now()})}),Jb=(t,e,n)=>{iE.set(lE,{parentSessionId:t,childSessionId:e,outputPreview:n})},cE=(t,e)=>{_o.clearState(Rf(t,e))},jp=t=>{const e=wn(t);e&&_o.clearStatesByPrefix(`${e}::`)},uE=(t,e)=>_o.getState(Rf(t,e));function Cs(...t){}const dE=t=>{const e=t;return(e==null?void 0:e.name)==="AbortError"||(e==null?void 0:e.code)===20},Ip=220,Qb=t=>{const e=t.replace(/\s+/g," ").trim();return e.length<=Ip?e:`${e.slice(0,Ip)}...`},fE=t=>t==="pending"||t==="in_progress"||t==="completed"||t==="blocked",hE=new Set(["completed","error","cancelled","failed"]),pE=1500,mE=120,gE=8e3,yE=(t,e)=>{var n,r;return(r=(n=yc(t)(G.getState()))==null?void 0:n[e])==null?void 0:r.status},Op=t=>t?hE.has(t):!1,bE=(t,e,n,r)=>{const s=r==null?void 0:r.trim();return s?`${t}:${s}`:`${t}:stats:${e}:${n}`},ol=t=>{const e=t.trim().toLowerCase();return e==="memory_note"||e==="session_note"},vE=()=>{const t=Pn;return typeof t.getInstance=="function"?t.getInstance():new Pn},SE=t=>{if(typeof t.pre_permission_mode!="string"||typeof t.entered_at!="string")return null;const e=t.status;return e!=="exploring"&&e!=="designing"&&e!=="reviewing"&&e!=="finalizing"&&e!=="awaiting_approval"?null:{entered_at:t.entered_at,pre_permission_mode:t.pre_permission_mode,plan_file_path:t.plan_file_path??null,status:e}},xd=t=>{const e=(t??"").trim().toLowerCase();return e.includes("completion policy violation")&&e.includes("conclusion_with_options")},_d=t=>{const e=(t??"").trim(),n=e?`
36
+ `),setTimeout(c,n);return}c()});return c(),f},[s,t,n,r]),v.useDebugValue(d),bd(d)){const f=Ap(s,d,()=>s.get(t));return r&&vd(f),GT(f)}return d}function JT(t,e){let n=null;const r=new Map,s=new Set;function o(a){let c;if(c=r.get(a),c!==void 0)if(n!=null&&n(c[1],a))o.remove(a);else return c[0];const d=t(a);return r.set(a,[d,Date.now()]),i("CREATE",a,d),d}function i(a,c,d){for(const f of s)f({type:a,param:c,atom:d})}return o.unstable_listen=a=>(s.add(a),()=>{s.delete(a)}),o.getParams=()=>r.keys(),o.remove=a=>{{if(!r.has(a))return;const[c]=r.get(a);r.delete(a),i("REMOVE",a,c)}},o.setShouldRemove=a=>{if(n=a,!!n)for(const[c,[d,f]]of r)n(f,c)&&(r.delete(c),i("REMOVE",c,d))},o}const wn=t=>(t??"").trim(),Jb=(...t)=>{const e=t.map(wn);return e.some(n=>!n)?"":e.join("::")},Sd=(t,e,n,r)=>n?t.get(e(n)):r,Qb=(t,e,n,r,s)=>{n&&(t.set(e(n),r),e.remove(n),s==null||s.delete(n))},QT=(t,e,n,r,s)=>{r&&Array.from(n).forEach(o=>{o.startsWith(r)&&Qb(t,e,o,s,n)})},bc=t=>{const e=Gb(),n=JT(s=>sr(t)),r=new Set;return{store:e,atomFamily:n,activeKeys:r,getState:s=>Sd(e,n,s,t),clearState:s=>Qb(e,n,s,t,r),clearStatesByPrefix:s=>QT(e,n,r,s,t)}},Zb={content:"",reasoningContent:"",updatedAt:0},vc=bc(Zb),Sc=vc.store,wc=vc.atomFamily,ZT=sr(null,(t,e,n)=>{const r=wn(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=wc(r),i=t(o);e(o,{...i,content:i.content+s,updatedAt:Date.now()})}),eE=sr(null,(t,e,n)=>{const r=wn(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=wc(r),i=t(o);e(o,{...i,reasoningContent:i.reasoningContent+s,updatedAt:Date.now()})}),tE=sr(null,(t,e,n)=>{const r=wn(n.sessionId);if(!r)return;const s=wc(r),o=t(s);e(s,{content:n.patch.content??o.content,reasoningContent:n.patch.reasoningContent??o.reasoningContent,updatedAt:n.patch.updatedAt??Date.now()})}),nE=(t,e)=>{Sc.set(ZT,{sessionId:t,chunk:e})},rE=(t,e)=>{Sc.set(eE,{sessionId:t,chunk:e})},sE=(t,e)=>{Sc.set(tE,{sessionId:t,patch:e})},wd=t=>{vc.clearState(wn(t))},Rp=t=>vc.getState(wn(t)),oE={output:"",status:"idle",updatedAt:0},Ea=bc(oE),Pf=Ea.store,Mf=Ea.atomFamily,Af=(t,e)=>Jb(t,e),iE=sr(null,(t,e,n)=>{const r=Af(n.sessionId,n.toolCallId);if(!r)return;const s=n.chunk??"";if(!s)return;Ea.activeKeys.add(r);const o=Mf(r),i=t(o);e(o,{output:i.output+s,status:"running",updatedAt:Date.now()})}),aE=sr(null,(t,e,n)=>{const r=Af(n.sessionId,n.toolCallId);if(!r)return;Ea.activeKeys.add(r);const s=Mf(r),o=t(s);e(s,{...o,status:n.status,updatedAt:Date.now()})}),jp=t=>{const e=wn(t);e&&Ea.clearStatesByPrefix(`${e}::`)},lE=(t,e,n)=>{Pf.set(iE,{sessionId:t,toolCallId:e,chunk:n})},vu=(t,e,n)=>{Pf.set(aE,{sessionId:t,toolCallId:e,status:n})},cE={outputPreview:"",updatedAt:0},Co=bc(cE),uE=Co.store,dE=Co.atomFamily,Rf=(t,e)=>Jb(t,e),fE=sr(null,(t,e,n)=>{const r=Rf(n.parentSessionId,n.childSessionId);if(!r)return;Co.activeKeys.add(r);const s=dE(r),o=t(s);e(s,{...o,outputPreview:n.outputPreview,updatedAt:Date.now()})}),ev=(t,e,n)=>{uE.set(fE,{parentSessionId:t,childSessionId:e,outputPreview:n})},hE=(t,e)=>{Co.clearState(Rf(t,e))},Ip=t=>{const e=wn(t);e&&Co.clearStatesByPrefix(`${e}::`)},pE=(t,e)=>Co.getState(Rf(t,e));function Cs(...t){}const mE=t=>{const e=t;return(e==null?void 0:e.name)==="AbortError"||(e==null?void 0:e.code)===20},Op=220,tv=t=>{const e=t.replace(/\s+/g," ").trim();return e.length<=Op?e:`${e.slice(0,Op)}...`},gE=t=>t==="pending"||t==="in_progress"||t==="completed"||t==="blocked",yE=new Set(["completed","error","cancelled","failed"]),bE=1500,vE=120,SE=8e3,wE=(t,e)=>{var n,r;return(r=(n=yc(t)(G.getState()))==null?void 0:n[e])==null?void 0:r.status},$p=t=>t?yE.has(t):!1,xE=(t,e,n,r)=>{const s=r==null?void 0:r.trim();return s?`${t}:${s}`:`${t}:stats:${e}:${n}`},ol=t=>{const e=t.trim().toLowerCase();return e==="memory_note"||e==="session_note"},_E=()=>{const t=Pn;return typeof t.getInstance=="function"?t.getInstance():new Pn},CE=t=>{if(typeof t.pre_permission_mode!="string"||typeof t.entered_at!="string")return null;const e=t.status;return e!=="exploring"&&e!=="designing"&&e!=="reviewing"&&e!=="finalizing"&&e!=="awaiting_approval"?null:{entered_at:t.entered_at,pre_permission_mode:t.pre_permission_mode,plan_file_path:t.plan_file_path??null,status:e}},xd=t=>{const e=(t??"").trim().toLowerCase();return e.includes("completion policy violation")&&e.includes("conclusion_with_options")},_d=t=>{const e=(t??"").trim(),n=e?`
37
37
 
38
- Raw error: ${e}`:"";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},jf=()=>typeof window<"u"&&!!window.__TAURI_INTERNALS__;async function wE(){const t=window.__TAURI_INTERNALS__,e=t==null?void 0:t.invoke;if(typeof e!="function")return!0;try{return await e("is_main_window_focused")===!0}catch{return!0}}async function xE(t,e){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:t,body:e})}async function _E(t){if(!(!jf()||await wE()))try{await xE(t.title,t.body)}catch{}}function CE(t){switch(t){case"needs_clarification":return Et.t("app.notifications.clarification.title");case"needs_approval":return Et.t("app.notifications.toolApproval.genericTitle","Approval required");case"context_critical":return Et.t("app.notifications.contextPressure.title");case"subagent_completed":return Et.t("app.notifications.backgroundTask.completedTitle");default:return null}}const kE=null,If=bc(kE),Of=If.store,Ql=If.atomFamily,TE=t=>t==="killed"?"killed":t==="error"?"error":"completed",EE=sr(null,(t,e,n)=>{const r=wn(n.bashId);if(!r)return;const s=TE(n.status),o=t(Ql(r));o&&o.status===s&&o.exitCode===n.exitCode||(If.activeKeys.add(r),e(Ql(r),{status:s,exitCode:n.exitCode,updatedAt:Date.now()}))}),PE=(t,e,n)=>{Of.set(EE,{bashId:t,status:e,exitCode:n})},ME=t=>{const e=wn(t),n=v.useMemo(()=>sr(r=>e?r(Ql(e)):null),[e]);return Ef(n,{store:Of})},AE=t=>{const e=v.useMemo(()=>Array.from(new Set(t.map(r=>wn(r)).filter(Boolean))).sort(),[t]),n=v.useMemo(()=>sr(r=>{const s={};return e.forEach(o=>{s[o]=r(Ql(o))}),s}),[e]);return Ef(n,{store:Of})},RE=(t,e)=>{const n=wn(t);return n?e[n]??null:null},jE=250,$p=[1200,3e3],IE=new Set(["New Session","新建会话","新建會話","Nouvelle session","新しいセッション","नया सत्र"]),OE=t=>{const e=(t||"").trim();return!e||IE.has(e)?!0:e.startsWith("New Session - ")||e.startsWith("New Session with ")||e.startsWith("New session - ")||e.startsWith("New session with ")?e.replace(/^New Session - /,"").replace(/^New Session with /,"").replace(/^New session - /,"").replace(/^New session with /,"").trim().length>0:!1};function $E(t){const{sessionId:e,generation:n,setStreamingStatus:r}=t,{markStreamStartedOnce:s,streamingStateBySessionRef:o}=t.ctx;return{onToken:i=>{s(e,n);const a=o.current.get(e);a&&(r(null),a.content+=i,QT(a.sessionId,i),At.publish({sessionId:a.sessionId,messageId:a.messageId,content:i,transient:!0}))},onReasoningToken:i=>{s(e,n);const a=o.current.get(e);a&&(a.reasoningContent+=i,ZT(a.sessionId,i),At.publish({sessionId:a.sessionId,messageId:a.reasoningMessageId,content:i,transient:!0}))}}}function LE(t){const{sessionId:e,generation:n,setStreamingStatus:r}=t,{addMessage:s,applyAgentEvent:o,updateMessage:i,streamingStateBySessionRef:a,toolNamesByCallIdRef:c,toolCallMessageIdByCallIdRef:d}=t.ctx;return{onToolStart:(f,p,b)=>{var k,P;o(e,{type:"tool_start",tool_call_id:f,tool_name:p},n);const m=a.current.get(e),w=(m==null?void 0:m.content)||"",y=(m==null?void 0:m.reasoningContent)||"",_=w.trim().length>0,M=y.trim().length>0;if(_||M){const A=G.getState().chats.find(X=>X.id===e),j=(k=A==null?void 0:A.messages)==null?void 0:k[A.messages.length-1],$=typeof((P=j==null?void 0:j.metadata)==null?void 0:P.reasoning)=="string"?j.metadata.reasoning:"";(j==null?void 0:j.role)==="assistant"&&(j==null?void 0:j.type)==="text"&&typeof(j==null?void 0:j.content)=="string"&&j.content===w&&$===y||s(e,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:w,createdAt:new Date().toISOString(),metadata:{sessionId:e,model:"agent",...M?{reasoning:y}:{}}}),m&&(m.content="",m.reasoningContent="",eE(m.sessionId,{content:"",reasoningContent:""}),m.status&&(m.status="",At.clear(m.sessionId,m.statusMessageId)))}c.current.set(f,p);const C=p.trim().toLowerCase();ol(p)?r("memory_updating"):r(`tool_running:${C||"tool"}`);const T=crypto.randomUUID();d.current.set(f,T),s(e,{id:T,role:"assistant",type:"tool_call",toolCalls:[{toolCallId:f,toolName:p,parameters:b||{},streamingOutput:""}],metadata:{},createdAt:new Date().toISOString()})},onToolToken:(f,p)=>{var b;if(o(e,{type:"tool_token",tool_call_id:f,content:p},n),!c.current.has(f)){const m=G.getState().chats.find(y=>y.id===e),w=((b=m==null?void 0:m.messages)==null?void 0:b.slice().reverse().find(y=>"type"in y&&y.type==="tool_call"&&Array.isArray(y.toolCalls)&&y.toolCalls.some(_=>_.toolCallId===f)))??null;if(w&&"toolCalls"in w&&Array.isArray(w.toolCalls)){const y=w.toolCalls.find(_=>_.toolCallId===f);y&&(c.current.set(f,y.toolName),d.current.set(f,w.id))}}sE(e,f,p)},onToolComplete:(f,p)=>{o(e,{type:"tool_complete",tool_call_id:f},n);const b=c.current.get(f)||"unknown";vu(e,f,"completed"),c.current.delete(f),d.current.delete(f);const m=b.trim().toLowerCase(),w=a.current.get(e);(ol(b)?(w==null?void 0:w.status)==="memory_updating":!!(w!=null&&w.status&&w.status.includes(m)))&&r(null);const _=(p==null?void 0:p.display_preference)||"Default",M=((p==null?void 0:p.images)??[]).filter(C=>C==null?void 0:C.data).map(C=>({id:crypto.randomUUID(),url:`data:${C.mime_type||"image/png"};base64,${C.data}`,name:"screenshot",size:0,type:C.mime_type||"image/*"}));s(e,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:b,toolCallId:f,result:{tool_name:b,result:(p==null?void 0:p.result)??"",display_preference:_},isError:!(p!=null&&p.success),createdAt:new Date().toISOString(),...M.length?{images:M}:{}})},onToolError:(f,p)=>{o(e,{type:"tool_error",tool_call_id:f},n);const b=c.current.get(f)||"unknown";vu(e,f,"error"),c.current.delete(f),d.current.delete(f),r(null),s(e,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:b,toolCallId:f,result:{tool_name:b,result:p,display_preference:"Default"},isError:!0,createdAt:new Date().toISOString()})},onToolLifecycle:(f,p,b,m,w,y,_)=>{if(b==="begin"){const M=(p||"").trim().toLowerCase();ol(p||"")?r("memory_updating"):r(`tool_running:${M||"tool"}`)}if(b==="finished"||b==="error"||b==="cancelled"){vu(e,f,b==="finished"?"completed":"error");const M=d.current.get(f);if(M){const P=G.getState().chats.find($=>$.id===e),A=P==null?void 0:P.messages.find($=>$.id===M),j=A&&"metadata"in A?A.metadata??{}:{};i(e,M,{metadata:{...j,elapsed_ms:m,is_mutating:w,..._?{summary:_}:{}}})}const C=(p||"").trim().toLowerCase(),T=a.current.get(e);(ol(p||"")?(T==null?void 0:T.status)==="memory_updating":!!(T!=null&&T.status&&T.status.includes(C)))&&r(null)}}}}function DE(t){const{sessionId:e,setStreamingStatus:n}=t,{message:r,setTruncationInfo:s,updateSession:o,updateTokenUsage:i}=t.ctx;return{onContextCompressionStatus:(a,c)=>{if(c==="started"){n("context_compacting");return}if(c==="degraded_sections"){n("context_compaction_degraded");return}if(c==="failed"){n("context_compaction_failed");return}n(null)},onTokenBudgetUpdated:a=>{const c=hb(a);if(!c)return;i(e,c),s(e,a.truncation_occurred,a.segments_removed);const d=G.getState().chats.find(f=>f.id===e);d&&o(e,{config:{...d.config,tokenUsage:c,truncationOccurred:a.truncation_occurred,segmentsRemoved:a.segments_removed}})},onContextSummarized:a=>{n(null),r.info(Et.t("app.notifications.conversationSummarized",{messages:a.messages_summarized,tokens:a.tokens_saved.toLocaleString()}),5)},onContextPressureNotification:(a,c,d)=>{c==="critical"?r.error(d,6):r.warning(d,5)}}}function FE(t){const{message:e,setTaskList:n,updateTaskListDelta:r,setEvaluationState:s,ensureTaskListBaseline:o,shouldShowTaskListCompletedNotice:i}=t.ctx;return{onTaskListUpdated:a=>{a.session_id&&n(a.session_id,a)},onTaskListItemProgress:a=>{if(a.session_id){if(!G.getState().taskLists[a.session_id]){o(a.session_id);return}r(a.session_id,a)}},onTaskListCompleted:(a,c,d,f)=>{i(a,c,d,f)&&e.success(Et.t("app.notifications.allTasksCompleted",{rounds:c,toolCalls:d}),3)},onTaskEvaluationStarted:(a,c)=>{s(a,{isEvaluating:!0,reasoning:null,timestamp:Date.now()}),e.info(Et.t("app.notifications.evaluatingTasks",{count:c}),2)},onTaskEvaluationCompleted:(a,c,d)=>{const f=Qb(d);s(a,{isEvaluating:!1,reasoning:c>0?f:null,timestamp:Date.now()}),c>0?e.success(Et.t("app.notifications.evaluationCompleteUpdated",{count:c}),3):e.info(Et.t("app.notifications.evaluationCompleteNoUpdates"),2)}}}function NE(t){const{sessionId:e}=t,{refreshChatsNow:n,updateSession:r}=t.ctx;return{onSessionTitleUpdated:s=>{id(s,G.getState())},onSessionPinnedUpdated:s=>{id(s,G.getState())},onPlanModeEntered:s=>{const o=s.session_id||e,i=SE(s);if(!i){n();return}r(o,{planMode:i})},onPlanModeExited:s=>{const o=s.session_id||e;r(o,{planMode:null}),n()},onGoalStatusChanged:s=>{const o=s.session_id||e,i=s.goal_state??null,a=G.getState().chats.find(c=>c.id===o);if(!a){n();return}r(o,{config:{...a.config||{},goalState:i}})},onPlanFileUpdated:s=>{const o=s.session_id||e,i=G.getState().chats.find(c=>c.id===o),a=i==null?void 0:i.planMode;a?r(o,{planMode:{...a,plan_file_path:s.plan_file_path??a.plan_file_path??null,status:s.status==="exploring"||s.status==="designing"||s.status==="reviewing"||s.status==="finalizing"||s.status==="awaiting_approval"?s.status:a.status}}):n()}}}function zE(t){const{scheduleParentSettleCheck:e,sessionId:n}=t,{applyChildProgress:r,ensureTaskListBaseline:s,flushChildPreview:o,persistSessionTitle:i,refreshChatsNow:a,scheduleChildPreviewFlush:c,setEvaluationState:d,setPendingChildApproval:f,clearPendingChildApproval:p,setTaskList:b,updateTaskListDelta:m,backgroundChildrenByParentRef:w,lastChildHeartbeatAtRef:y,lastChildRoundCountRef:_,pendingChildPreviewRef:M}=t.ctx;return{onSubAgentStarted:(C,T,k)=>{const P=w.current.get(C)??{children:new Set,parentDone:!1},A=new Set(P.children);A.add(T),w.current.set(C,{children:A,parentDone:P.parentDone}),r(C,T,{title:k,status:"pending",lastEventAt:new Date().toISOString()}),k&&k.trim()&&i(T,k).catch(j=>{console.warn(`[useAgentEventSubscription] Failed to persist sub-agent title for ${T}:`,j)}),a()},onChildApprovalRequested:(C,T,k)=>{const P=hd(n)(G.getState());P&&P.requestId!==T&&console.warn(`[childHandlers] Overwriting a still-pending child approval (child=${P.childSessionId}, request=${P.requestId}) with a new one (child=${C}, request=${T}); the earlier child will no longer be prompted. See TODO #23 (single-slot vs FIFO queue).`),f(n,{childSessionId:C,requestId:T,toolName:k.toolName??null,permission:k.permission??null,resource:k.resource??null})},onSubAgentEvent:(C,T,k)=>{var A;if(k.type==="task_list_updated"&&k.task_list){const j=k.task_list.session_id||C;b(j,k.task_list);return}if(k.type==="task_list_item_progress"){const j=k.session_id||C;if(typeof k.item_id=="string"&&fE(k.status)&&typeof k.tool_calls_count=="number"&&typeof k.version=="number"){if(!G.getState().taskLists[j]){s(j);return}m(j,{session_id:j,item_id:k.item_id,status:k.status,tool_calls_count:k.tool_calls_count,version:k.version})}return}if(k.type==="task_evaluation_started"){const j=k.session_id||C;d(j,{isEvaluating:!0,reasoning:null,timestamp:Date.now()});return}if(k.type==="task_evaluation_completed"){const j=k.session_id||C,$=k.updates_count??0;d(j,{isEvaluating:!1,reasoning:$>0?Qb(k.reasoning??""):null,timestamp:Date.now()});return}const P=(A=yc(C)(G.getState()))==null?void 0:A[T];if(!Op(P==null?void 0:P.status)){if(k.type==="runner_progress"){const j=typeof k.round_count=="number"?k.round_count:P==null?void 0:P.roundCount,$=`${C}:${T}`;if(typeof j=="number"&&_.current.get($)===j)return;typeof j=="number"&&_.current.set($,j),r(C,T,{status:"running",roundCount:j,lastEventAt:new Date().toISOString()});return}if(k.type==="token"&&typeof k.content=="string"){const j=`${C}:${T}`,$=M.current.get(j),F=uE(C,T),K=((($==null?void 0:$.content)??F.outputPreview??(P==null?void 0:P.outputPreview)??"")+k.content).slice(-gE);Jb(C,T,K),c(C,T,K,new Date().toISOString())}else r(C,T,{status:"running",lastEventAt:new Date().toISOString()})}},onSubAgentHeartbeat:(C,T,k)=>{if(Op(yE(C,T)))return;const P=`${C}:${T}`,A=y.current.get(P)??0,j=Date.parse(k||"")||Date.now();j-A<pE||(y.current.set(P,j),r(C,T,{status:"running",lastHeartbeatAt:k}))},onSubAgentCompleted:(C,T,k,P)=>{const A=w.current.get(C)??{children:new Set,parentDone:!1},j=new Set(A.children);j.delete(T),w.current.set(C,{children:j,parentDone:A.parentDone});const $=hd(C)(G.getState());$&&$.childSessionId===T&&p(C),o(C,T),cE(C,T);const F=`${C}:${T}`;y.current.delete(F),_.current.delete(F),r(C,T,{status:k,error:P,lastEventAt:new Date().toISOString()}),A.parentDone&&j.size===0&&e(),a()}}}function BE(t,e){var je;const{addMessage:n,applyAgentEvent:r,updateMessage:s,refreshChatsNow:o,setPendingQuestion:i,clearPendingQuestion:a,cleanupChat:c,clearReconnect:d,clearParentSettleTimer:f,clearTitleRefreshRetry:p,restart:b,agentClientRef:m,parentSettleTimersRef:w,titleRefreshRetryTimersRef:y,subscriptionsBySessionRef:_,streamingStateBySessionRef:M,backgroundChildrenByParentRef:C,reconnectStateBySessionRef:T}=e,k=G.getState(),P=Mt(t)(k)??0,A=(je=k.executionBySession)==null?void 0:je[t];pe("[SSE]","startSubscription",{sessionId:t,generation:P,phase:(A==null?void 0:A.phase)??null,backendRunId:(A==null?void 0:A.backendRunId)??null,shouldObserve:Wn(t)(k)}),d(t),p(t);const j=new AbortController;_.current.set(t,{sessionId:t,controller:j,generation:P,streamEnded:!1});const $=`streaming-${t}`,F=`streaming-reasoning-${t}`,X=`streaming-status-${t}`,K=Ap(t),O=At.getLatest(X);M.current.set(t,{sessionId:t,messageId:$,content:K.content,reasoningMessageId:F,reasoningContent:K.reasoningContent,statusMessageId:X,status:O??""});const W=fe=>{const ne=M.current.get(t);if(!ne)return;const Q=(fe??"").trim();if(!Q){if(!ne.status)return;ne.status="",At.clear(ne.sessionId,ne.statusMessageId);return}ne.status!==Q&&(ne.status=Q,At.publish({sessionId:ne.sessionId,messageId:ne.statusMessageId,content:ne.status}))},ae=()=>{var qe;const fe=T.current.get(t),ne=(fe==null?void 0:fe.attempt)??0,Q=Math.min(5e3,250*Math.pow(2,ne)),ie=G.getState(),ye=(qe=ie.executionBySession)==null?void 0:qe[t];pe("[SSE]","scheduleReconnect",{sessionId:t,generation:P,attempt:ne,delayMs:Q,phase:(ye==null?void 0:ye.phase)??null,backendRunId:(ye==null?void 0:ye.backendRunId)??null,shouldObserve:Wn(t)(ie),terminalEventSeen:Y}),c(t,{clearDraft:!1});const $e=setTimeout(()=>{var vt,Ve,Ht,ct,pt;T.current.delete(t);const Ue=G.getState();if(!Wn(t)(Ue)){pe("[SSE]","scheduleReconnect.skipNotBusy",{sessionId:t,generation:P,phase:((Ve=(vt=Ue.executionBySession)==null?void 0:vt[t])==null?void 0:Ve.phase)??null,backendRunId:((ct=(Ht=Ue.executionBySession)==null?void 0:Ht[t])==null?void 0:ct.backendRunId)??null});return}const ht=Ue.chats.find(on=>on.id===t),Ct=(pt=ht==null?void 0:ht.id)==null?void 0:pt.trim();if(!Ct){pe("[SSE]","scheduleReconnect.skipMissingSession",{sessionId:t,generation:P});return}pe("[SSE]","scheduleReconnect.restart",{sessionId:Ct,generation:P}),b(Ct)},Q);T.current.set(t,{attempt:ne+1,timer:$e})};let Y=!1,ce=!1;const L=()=>{const fe=G.getState();if((Mt(t)(fe)??0)!==P||Wn(t)(fe))return!1;const Q=fe.chats.find(ie=>ie.id===t);return!Q||Q.isRunning?!1:OE(Q.title)&&(Q.titleVersion??0)===0},oe=()=>{if(!L()){p(t);return}const fe=y.current.get(t),ne=(fe==null?void 0:fe.attempt)??0;if(ne>=$p.length){p(t);return}p(t);const Q=$p[ne],ie=setTimeout(()=>{y.current.delete(t),(async()=>{if(!L()){p(t);return}try{await o()}catch(ye){console.warn(`[useAgentEventSubscription] Title refresh retry failed for session ${t}:`,ye)}finally{L()?oe():p(t)}})()},Q);y.current.set(t,{attempt:ne+1,timer:ie})},Se=()=>{const fe=_.current.get(t);!fe||fe.controller!==j||fe.streamEnded||(fe.streamEnded=!0,Cs("markStreamEnded",t,"generation:",fe.generation,"terminal:",Y))},J=()=>{const fe=C.current.get(t);return((fe==null?void 0:fe.children.size)??0)>0},te=()=>Y&&!J(),he=()=>{const fe=_.current.get(t);fe&&(At.clear(t,`streaming-${t}`),At.clear(t,`streaming-reasoning-${t}`),At.clear(t,`streaming-status-${t}`),wd(t),M.current.delete(fe.sessionId))},de=async()=>{f(t);try{await o()}catch($e){console.warn(`[useAgentEventSubscription] High-priority refresh failed while settling parent ${t}:`,$e)}const fe=C.current.get(t)??{children:new Set,parentDone:!1};if(!fe.parentDone||fe.children.size>0)return;const ne=_.current.get(t);if(ne&&(ne.controller!==j||ne.generation!==P))return;const ie=G.getState().chats.find($e=>$e.id===t);if(!!(ie!=null&&ie.isRunning)){p(t);return}L()?oe():p(t),c(t,{clearDraft:!0})},me=()=>{f(t);const fe=setTimeout(()=>{w.current.delete(t),de()},jE);w.current.set(t,fe)},ge=()=>{const fe=C.current.get(t)??{children:new Set},ne=new Set(fe.children);if(C.current.set(t,{children:ne,parentDone:!0}),ne.size===0){me();return}he()},le={ctx:e,sessionId:t,generation:P,setStreamingStatus:W,scheduleParentSettleCheck:me},ke=m.current;ke&&ke.subscribeToEvents(t,{...$E(le),...LE(le),...DE(le),...FE(le),...NE(le),...zE(le),onComplete:()=>{if(ce){Y=!0,W(null),At.forceFlush();return}Y=!0,r(t,{type:"complete"},P);const fe=j,ne=()=>{const Q=_.current.get(t);return Q!=null&&(Q.controller!==fe||Q.generation!==P)};(async()=>{var rt,ht,Ct;if(W(null),At.forceFlush(),a(t),ne())return;const Q=M.current.get(t),ie=Ap(t),ye=ie.content||(Q==null?void 0:Q.content)||"",$e=ie.reasoningContent||(Q==null?void 0:Q.reasoningContent)||"",qe=ye.trim().length>0,Ue=$e.trim().length>0;if(qe||Ue){const vt=G.getState().chats.find(pt=>pt.id===t),Ve=(rt=vt==null?void 0:vt.messages)==null?void 0:rt[vt.messages.length-1],Ht=typeof((ht=Ve==null?void 0:Ve.metadata)==null?void 0:ht.reasoning)=="string"?Ve.metadata.reasoning:"";(Ve==null?void 0:Ve.role)==="assistant"&&(Ve==null?void 0:Ve.type)==="text"&&typeof(Ve==null?void 0:Ve.content)=="string"&&Ve.content===ye&&Ht===$e||await n(t,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:ye,createdAt:new Date().toISOString(),metadata:{sessionId:t,model:"agent",...Ue?{reasoning:$e}:{}}})}if(!ne()&&(await G.getState().loadChatHistory(t,{mode:"monotonic",retries:4,retryDelayMs:200,waitForAssistant:!0}),!ne())){if(Ue){const vt=G.getState().chats.find(ct=>ct.id===t),Ve=[...(vt==null?void 0:vt.messages)||[]].reverse().find(ct=>(ct==null?void 0:ct.role)==="assistant"&&(ct==null?void 0:ct.type)==="text"),Ht=typeof((Ct=Ve==null?void 0:Ve.metadata)==null?void 0:Ct.reasoning)=="string"&&Ve.metadata.reasoning.trim().length>0;Ve!=null&&Ve.id&&!Ht&&s(t,Ve.id,{metadata:{...Ve.metadata||{},reasoning:$e}})}ne()||ge()}})().catch(Q=>{console.warn(`[useAgentEventSubscription] Completion finalization failed for session ${t}:`,Q),ne()||ge()})},onCancelled:async fe=>{Y=!0,r(t,{type:"cancelled",message:fe},P),W(null),a(t),ge()},onError:async fe=>{Y=!0,r(t,{type:"error",message:fe},P),W(null);try{const ne=xd(fe)?_d(fe):fe;await n(t,{id:`error-${Date.now()}`,role:"assistant",type:"text",content:`❌ **Error**: ${ne}`,createdAt:new Date().toISOString(),finishReason:"error"})}catch(ne){console.warn(`[useAgentEventSubscription] Failed to append error message for session ${t}:`,ne)}finally{ge()}},onNeedClarification:fe=>{const ne=fe.session_id||t;ne===t&&(ce=!0),Cs("event.needClarification",{sessionId:t,targetSessionId:ne,subscriptionGeneration:P,currentStoreGeneration:Mt(ne)(G.getState()),toolCallId:fe.tool_call_id??null,questionPreview:(fe.question||"").slice(0,120)}),i(ne,{question:fe.question||"",options:fe.options||[],allowCustom:fe.allow_custom??!0,toolCallId:fe.tool_call_id??null})},onNotification:fe=>{const ne=CE(fe.category)||fe.title||"";_E({title:ne,body:fe.body||""})},onBashCompleted:(fe,ne,Q,ie)=>{fe&&PE(fe,ie,Q)},onExecutionStarted:(fe,ne)=>{pe("[SSE]","event.executionStarted",{sessionId:t,generation:P,runId:fe}),Cs("event.executionStarted.compareGeneration",{sessionId:t,subscriptionGeneration:P,currentStoreGeneration:Mt(t)(G.getState()),runId:fe}),r(t,{type:"execution_started",run_id:fe},P)},onRunnerProgress:()=>{}},j).then(()=>{var Q,ie,ye,$e,qe,Ue,rt,ht;if(Se(),Cs("streamEnded",t,"generation:",P,"aborted:",j.signal.aborted,"terminal:",Y),pe("[SSE]","streamEnded",{sessionId:t,generation:P,aborted:j.signal.aborted,terminalEventSeen:Y,shouldSkipReconnectAfterTerminal:te(),phase:((ie=(Q=G.getState().executionBySession)==null?void 0:Q[t])==null?void 0:ie.phase)??null,backendRunId:(($e=(ye=G.getState().executionBySession)==null?void 0:ye[t])==null?void 0:$e.backendRunId)??null}),j.signal.aborted||te())return;const fe=_.current.get(t);if(fe&&(fe.controller!==j||fe.generation!==P))return;const ne=Wn(t)(G.getState());if(pe("[SSE]","streamEnded.busyCheck",{sessionId:t,generation:P,stillBusy:ne,phase:((Ue=(qe=G.getState().executionBySession)==null?void 0:qe[t])==null?void 0:Ue.phase)??null,backendRunId:((ht=(rt=G.getState().executionBySession)==null?void 0:rt[t])==null?void 0:ht.backendRunId)??null}),!ne){c(t,{clearDraft:!0});return}ae()}).catch(fe=>{var Q,ie,ye,$e,qe,Ue,rt,ht;if(Se(),pe("[SSE]","streamError",{sessionId:t,generation:P,aborted:j.signal.aborted,terminalEventSeen:Y,error:fe,phase:((ie=(Q=G.getState().executionBySession)==null?void 0:Q[t])==null?void 0:ie.phase)??null,backendRunId:(($e=(ye=G.getState().executionBySession)==null?void 0:ye[t])==null?void 0:$e.backendRunId)??null}),j.signal.aborted||te())return;const ne=Wn(t)(G.getState());if(pe("[SSE]","streamError.busyCheck",{sessionId:t,generation:P,stillBusy:ne,isAbortError:dE(fe),phase:((Ue=(qe=G.getState().executionBySession)==null?void 0:qe[t])==null?void 0:Ue.phase)??null,backendRunId:((ht=(rt=G.getState().executionBySession)==null?void 0:rt[t])==null?void 0:ht.backendRunId)??null}),!ne){c(t,{clearDraft:!0});return}ae()})}function WE(){const{message:t}=En.useApp(),{addMessage:e,applyAgentEvent:n,markStreamStarted:r,updateTokenUsage:s,setTruncationInfo:o,updateSession:i,updateMessage:a,setTaskList:c,loadTaskList:d,updateTaskListDelta:f,setEvaluationState:p,applyChildProgress:b,persistSessionTitle:m,refreshChatsNow:w,setPendingQuestion:y,clearPendingQuestion:_,setPendingChildApproval:M,clearPendingChildApproval:C}=G(ta(Q=>({addMessage:Q.addMessage,applyAgentEvent:Q.applyAgentEvent,markStreamStarted:Q.markStreamStarted,updateTokenUsage:Q.updateTokenUsage,setTruncationInfo:Q.setTruncationInfo,updateSession:Q.updateSession,updateMessage:Q.updateMessage,setTaskList:Q.setTaskList,loadTaskList:Q.loadTaskList,updateTaskListDelta:Q.updateTaskListDelta,setEvaluationState:Q.setEvaluationState,applyChildProgress:Q.applyChildProgress,persistSessionTitle:Q.persistSessionTitle,refreshChatsNow:Q.refreshChatsNow,setPendingQuestion:Q.setPendingQuestion,clearPendingQuestion:Q.clearPendingQuestion,setPendingChildApproval:Q.setPendingChildApproval,clearPendingChildApproval:Q.clearPendingChildApproval}))),T=v.useRef(null);T.current||(T.current=vE());const k=v.useRef(new Set),P=v.useRef(new Map),A=v.useRef(new Map),j=v.useRef(new Map),$=v.useRef(new Map),F=v.useRef(new Map),X=v.useRef(new Map),K=v.useRef(new Map),O=v.useRef(new Map),W=v.useRef(new Map),ae=v.useRef(new Map),Y=v.useRef(new Map),ce=v.useRef(new Map),L=v.useRef(new Set),oe=v.useRef(new Map),Se=v.useCallback(Q=>{const ie=oe.current.get(Q);ie!=null&&ie.timer&&clearTimeout(ie.timer),oe.current.delete(Q)},[]),J=v.useCallback(Q=>{const ie=P.current.get(Q);ie&&(clearTimeout(ie),P.current.delete(Q))},[]),te=v.useCallback(Q=>{const ie=A.current.get(Q);ie!=null&&ie.timer&&clearTimeout(ie.timer),A.current.delete(Q)},[]),he=v.useCallback((Q,ie)=>{var rt;const ye=G.getState(),$e=(rt=ye.executionBySession)==null?void 0:rt[Q];pe("[SSE]","cleanupChat",{sessionId:Q,opts:ie??null,generation:($e==null?void 0:$e.generation)??null,phase:($e==null?void 0:$e.phase)??null,backendRunId:($e==null?void 0:$e.backendRunId)??null,shouldObserve:Wn(Q)(ye)}),Se(Q),J(Q),ie!=null&&ie.clearTitleRetry&&te(Q),L.current.delete(Q),$.current.delete(Q);for(const[ht,Ct]of ae.current.entries())ht.startsWith(`${Q}:`)&&(Ct.timer&&clearTimeout(Ct.timer),ae.current.delete(ht));const qe=F.current.get(Q);if(!qe){ie!=null&&ie.clearDraft&&(At.clear(Q,`streaming-${Q}`),At.clear(Q,`streaming-reasoning-${Q}`),At.clear(Q,`streaming-status-${Q}`),wd(Q),Rp(Q),jp(Q));return}F.current.delete(Q),qe.controller.abort(),At.forceFlush();const Ue=X.current.get(qe.sessionId);Ue?(ie!=null&&ie.clearDraft&&(At.clear(Ue.sessionId,Ue.messageId),At.clear(Ue.sessionId,Ue.reasoningMessageId),At.clear(Ue.sessionId,Ue.statusMessageId)),X.current.delete(qe.sessionId)):ie!=null&&ie.clearDraft&&(At.clear(Q,`streaming-${Q}`),At.clear(Q,`streaming-reasoning-${Q}`),At.clear(Q,`streaming-status-${Q}`)),ie!=null&&ie.clearDraft&&(wd(Q),Rp(Q),jp(Q))},[J,Se,te]),de=v.useCallback((Q,ie)=>{const ye=`${Q}:${ie}`,$e=ae.current.get(ye);$e&&($e.timer&&clearTimeout($e.timer),ae.current.delete(ye),Jb(Q,ie,$e.content),b(Q,ie,{status:"running",outputPreview:$e.content,lastEventAt:$e.lastEventAt}))},[b]),me=v.useCallback((Q,ie,ye,$e)=>{const qe=`${Q}:${ie}`,Ue=ae.current.get(qe);Ue!=null&&Ue.timer&&clearTimeout(Ue.timer);const rt=setTimeout(()=>{de(Q,ie)},mE);ae.current.set(qe,{content:ye,lastEventAt:$e,timer:rt})},[de]),ge=v.useCallback(async Q=>{const ie=Q.trim();if(ie&&!k.current.has(ie)&&!G.getState().taskLists[ie]){k.current.add(ie);try{await d(ie)}catch(ye){console.warn(`[useAgentEventSubscription] Failed to recover task list baseline for ${ie}:`,ye)}finally{k.current.delete(ie)}}},[d]),le=v.useCallback((Q,ie,ye,$e)=>{var Ct,vt;const qe=bE(Q,ie,ye,$e);if(j.current.get(Q)===qe)return!1;const rt=(Ct=G.getState().executionBySession)==null?void 0:Ct[Q],ht=(rt==null?void 0:rt.phase)==="waiting_user_answer"||((vt=rt==null?void 0:rt.interaction)==null?void 0:vt.pendingQuestion)!=null;return j.current.set(Q,qe),!ht},[]),ke=v.useCallback((Q,ie)=>{$.current.get(Q)!==ie&&($.current.set(Q,ie),r(Q,ie))},[r]),je=v.useCallback(Q=>{BE(Q,{addMessage:e,applyAgentEvent:n,updateTokenUsage:s,setTruncationInfo:o,updateSession:i,updateMessage:a,setTaskList:c,updateTaskListDelta:f,setEvaluationState:p,applyChildProgress:b,persistSessionTitle:m,refreshChatsNow:w,setPendingQuestion:y,clearPendingQuestion:_,setPendingChildApproval:M,clearPendingChildApproval:C,message:t,cleanupChat:he,clearReconnect:Se,clearParentSettleTimer:J,clearTitleRefreshRetry:te,ensureTaskListBaseline:ge,shouldShowTaskListCompletedNotice:le,markStreamStartedOnce:ke,flushChildPreview:de,scheduleChildPreviewFlush:me,restart:je,agentClientRef:T,parentSettleTimersRef:P,titleRefreshRetryTimersRef:A,subscriptionsBySessionRef:F,streamingStateBySessionRef:X,backgroundChildrenByParentRef:K,lastChildHeartbeatAtRef:O,lastChildRoundCountRef:W,pendingChildPreviewRef:ae,toolNamesByCallIdRef:Y,toolCallMessageIdByCallIdRef:ce,reconnectStateBySessionRef:oe})},[e,he,J,_,C,Se,te,ge,t,le,m,w,p,y,M,n,ke,c,o,a,i,f,s,b,de,me]),fe=v.useCallback(Q=>{const ie=Q.trim();if(!ie)return;L.current.delete(ie);const ye=F.current.get(ie),$e=Mt(ie)(G.getState()),qe=ye&&ye.generation!==$e;if(Cs("ensureSubscription.check",{sessionId:ie,existingGeneration:(ye==null?void 0:ye.generation)??null,currentGeneration:$e,hasExisting:!!ye,aborted:(ye==null?void 0:ye.controller.signal.aborted)??null,streamEnded:(ye==null?void 0:ye.streamEnded)??null,generationMismatch:qe}),(ye==null?void 0:ye.sessionId)===ie&&!ye.controller.signal.aborted&&!ye.streamEnded&&!qe){Cs("skipExistingSubscription",ie,"generation:",ye.generation,"streamEnded:",ye.streamEnded);return}ye&&(Cs("restartStaleSubscription",ie,"generation:",ye.generation,"currentGeneration:",$e,"aborted:",ye.controller.signal.aborted,"streamEnded:",ye.streamEnded,"generationMismatch:",qe),he(ie,{clearDraft:!1})),je(ie)},[he,je]),ne=G(ta(Q=>Object.entries(Q.executionBySession).filter(([ie])=>Wn(ie)(Q)).map(([ie,ye])=>{const $e=ye.phase==="starting"?"starting":ye.phase==="settling"?"settling":"live";return`${ie}\0${ye.generation}\0${$e}`}).sort()));v.useEffect(()=>{const Q=ne.map(ye=>{const $e=ye.indexOf("\0");return $e>=0?ye.slice(0,$e):ye}),ie=new Set(Q);pe("[SSE]","effect.busySessions",{busySessionIds:Q}),Q.forEach(ye=>fe(ye));for(const ye of Array.from(F.current.keys()))ie.has(ye)||he(ye,{clearDraft:!0});for(const ye of Array.from(L.current))ie.has(ye)||L.current.delete(ye)},[ne,fe,he]),v.useEffect(()=>G.subscribe(Q=>Q.chats,()=>{if(L.current.size!==0)for(const Q of Array.from(L.current)){if(!Wn(Q)(G.getState())){L.current.delete(Q);continue}fe(Q)}}),[fe]),v.useEffect(()=>{let Q=!1;const ie=()=>{typeof document>"u"||document.visibilityState!=="visible"||(async()=>{try{await w()}catch(qe){pe("[SSE]","visibilityReconcile.refreshFailed",{error:qe})}if(Q)return;const ye=G.getState(),$e=ye.currentSessionId;$e&&ye.reconcileOpenSession($e,"visibility_regain");for(const qe of Array.from(F.current.keys()))Wn(qe)(G.getState())&&(he(qe,{clearDraft:!1}),fe(qe))})()};return document.addEventListener("visibilitychange",ie),()=>{Q=!0,document.removeEventListener("visibilitychange",ie)}},[w,fe,he]),v.useEffect(()=>{const Q=F.current;return()=>{const ie=Array.from(Q.keys());for(const ye of ie)he(ye,{clearDraft:!0,clearTitleRetry:!0})}},[he])}const zr=(t,e,n)=>Math.max(e,Math.min(n,t)),il=(t,e)=>e==="horizontal"?t.clientWidth:t.clientHeight,UE=(t,e,n,r,s)=>{const o=Math.max(0,Math.round(t)),i=Math.max(0,Math.round(e)),a=Math.max(0,Math.round(n));if(i+a>o)return{minFirst:0,maxFirst:o,appliedMinFirst:0,appliedMinSecond:0};const c=Math.min(Number.isFinite(r)?r:Number.POSITIVE_INFINITY,s&&s>0?o*s:Number.POSITIVE_INFINITY),d=o-a;let f=i;return Number.isFinite(c)&&(f=Math.max(f,Math.ceil(o-c))),f>d&&(f=Math.min(d,Math.max(i,Math.floor(o/2)))),{minFirst:f,maxFirst:d,appliedMinFirst:i,appliedMinSecond:a}},$f=({layout:t,first:e,second:n,sizesPx:r,defaultSplitRatio:s=.5,minFirstPx:o=0,minSecondPx:i=0,maxSecondPx:a,maxSecondFraction:c,handleSizePx:d=6,disabled:f=!1,onResizeEnd:p,style:b,className:m})=>{const w=v.useRef(null),y=v.useRef(null),[_,M]=v.useState(null),[C,T]=v.useState(0),[k,P]=v.useState(null),A=v.useMemo(()=>{if(!r)return null;const le=Number(r[0]);return Number.isFinite(le)?le:null},[r]),j=v.useMemo(()=>{if(!r)return null;const le=Number(r[1]);return Number.isFinite(le)?le:null},[r]),$=v.useMemo(()=>{if(!r)return null;const le=Number(r[0]),ke=Number(r[1]);if(!Number.isFinite(le)||!Number.isFinite(ke))return null;const je=le+ke;return je<=0||le<=0||ke<=0?null:zr(le/je,0,1)},[r]),F=v.useMemo(()=>A===null||j===null?null:j<=0?Math.max(0,A):null,[A,j]),X=v.useMemo(()=>A===null||j===null?null:j>0&&A<=0?j:null,[A,j]);v.useLayoutEffect(()=>{const le=w.current;le&&T(il(le,t))},[t]),v.useEffect(()=>{const le=w.current;if(!le)return;const ke=()=>{const je=il(le,t);T(fe=>fe===je?fe:je)};if(ke(),typeof ResizeObserver<"u"){const je=new ResizeObserver(ke);return je.observe(le),()=>je.disconnect()}return window.addEventListener("resize",ke),()=>window.removeEventListener("resize",ke)},[t]),v.useEffect(()=>{if($!==null){P($);return}P(le=>le??zr(s,.1,.9))},[s,$]);const K=v.useCallback(le=>UE(le,o,i,a,c),[o,i,a,c]),O=v.useMemo(()=>K(C),[K,C]),W=zr(s,.1,.9),ae=k??W,Y=C>0?Math.round(C*ae):null,ce=_??($!==null?Y:null)??F??(X!==null&&C>0?C-X:null)??Y??0,L=C>0?zr(ce,O.minFirst,O.maxFirst):Math.max(0,Math.round(ce)),oe=v.useCallback(le=>{if(f)return;const ke=w.current;if(!ke)return;le.preventDefault(),le.stopPropagation();const je=t==="horizontal"?le.clientX:le.clientY,fe=il(ke,t),ne=K(fe),Q=zr(L||Math.round(fe*W),ne.minFirst,ne.maxFirst);y.current={pointerId:le.pointerId,startPos:je,startFirstPx:Q,containerSize:fe};try{le.currentTarget.setPointerCapture(le.pointerId)}catch{}},[K,f,L,W,t]),Se=v.useCallback(le=>{const ke=y.current;if(!ke||le.pointerId!==ke.pointerId)return;le.preventDefault(),le.stopPropagation();const fe=(t==="horizontal"?le.clientX:le.clientY)-ke.startPos,ne=ke.containerSize,Q=K(ne),ie=zr(Math.round(ke.startFirstPx+fe),Q.minFirst,Q.maxFirst);M(ie)},[K,t]),J=v.useCallback(le=>{const ke=y.current;if(!ke||ke.pointerId!==le)return;const je=w.current,fe=je?il(je,t):ke.containerSize,ne=_??ke.startFirstPx,Q=K(fe),ie=zr(ne,Q.minFirst,Q.maxFirst),ye=Math.max(0,fe-ie);M(null),fe>0&&P(zr(ie/fe,0,1)),y.current=null,p==null||p([ie,ye])},[K,t,_,p]),te=v.useCallback(le=>{le.preventDefault(),le.stopPropagation(),J(le.pointerId)},[J]),he=v.useCallback(le=>{le.preventDefault(),le.stopPropagation(),J(le.pointerId)},[J]),de=t==="horizontal",me=f?"default":de?"col-resize":"row-resize",ge=Math.max(0,Math.round(d));return l.jsxs("div",{ref:w,className:m,style:{display:"flex",flexDirection:de?"row":"column",height:"100%",minHeight:0,minWidth:0,width:"100%",position:"relative",...b},children:[l.jsx("div",{style:{flex:`0 0 ${L}px`,minWidth:de?O.appliedMinFirst:0,minHeight:de?0:O.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:e})}),l.jsx("div",{style:{flex:"1 1 auto",minWidth:de?O.appliedMinSecond:0,minHeight:de?0:O.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})}),ge>0?l.jsx("div",{role:"separator","aria-orientation":de?"vertical":"horizontal",onPointerDown:oe,onPointerMove:Se,onPointerUp:te,onPointerCancel:he,style:{position:"absolute",top:de?0:`${L-ge/2}px`,left:de?`${L-ge/2}px`:0,width:de?`${ge}px`:"100%",height:de?"100%":`${ge}px`,cursor:me,touchAction:"none",background:"transparent",zIndex:5}}):null]})},Cd="chat-toggle-batch-export-selection",kd="chat-open-inspector",Zl="chat-focus-input",Td="chat-pending-question-resolved",ec=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp"],Lp=10*1024*1024,HE=2048,qE=2048,KE=.82,XE=512*1024,YE=t=>ec.includes(t.type)?t.size>Lp?{isValid:!1,error:`Image size too large: ${(t.size/1024/1024).toFixed(2)}MB. Maximum size: ${Lp/1024/1024}MB`}:{isValid:!0}:{isValid:!1,error:`Unsupported image type: ${t.type}. Supported types: ${ec.join(", ")}`},VE=t=>new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error("Failed to load image")),r.src=t}),Dp=t=>new Promise((e,n)=>{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?e(r.result):n(new Error("Failed to convert file to base64"))},r.onerror=()=>n(new Error("Failed to read file")),r.readAsDataURL(t)}),GE=t=>URL.createObjectURL(t),JE=(t,e,n,r)=>{let{width:s,height:o}=e;if(s>n||o>r){const a=s/o;s>o?(s=n,o=Math.round(s/a)):(o=r,s=Math.round(o*a))}t.width=s,t.height=o;const i=t.getContext("2d");i&&(i.fillStyle="#ffffff",i.fillRect(0,0,s,o),i.drawImage(e,0,0,s,o))},QE=async(t,e)=>{const n=await VE(t),r=document.createElement("canvas");return JE(r,n,HE,qE),tP(r,e)},ZE=async t=>{const e=YE(t);if(!e.isValid)throw new Error(e.error);const n=GE(t);try{let r;if(t.type==="image/gif"||t.size<XE)r=await Dp(t);else try{r=await QE(n,KE)}catch(o){console.warn("[imageUtils] Failed to re-encode image, using original:",o),r=await Dp(t)}const s=`img_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return{file:t,base64:r,preview:n,id:s,name:t.name,size:t.size,type:t.type}}catch(r){throw Zb(n),r}},eP=async t=>{const e=Array.from(t),n=[];for(const r of e)try{const s=await ZE(r);n.push(s)}catch(s){console.error(`Failed to process image ${r.name}:`,s)}return n},tP=(t,e=.8)=>t.toDataURL("image/jpeg",e),Zb=t=>{t.startsWith("blob:")&&URL.revokeObjectURL(t)},Fp=t=>{t.forEach(e=>Zb(e.preview))},nP=t=>{if(t===0)return"0 Bytes";const e=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(t)/Math.log(e));return parseFloat((t/Math.pow(e,r)).toFixed(2))+" "+n[r]},rP=t=>!t.files||t.files.length===0?!1:Array.from(t.files).some(e=>ec.includes(e.type)),sP=t=>t.files?Array.from(t.files).filter(e=>ec.includes(e.type)):[],{Text:oP,Title:iP}=ut,aP=({visible:t,images:e,currentIndex:n=0,onClose:r,onDownload:s})=>{const{token:o}=lt.useToken(),{t:i}=Xe(),[a,c]=v.useState(n);if(!e||e.length===0)return null;const d=e[a],f=()=>{if(s&&d)s(d);else{const m=document.createElement("a");m.href=d.base64,m.download=d.name,document.body.appendChild(m),m.click(),document.body.removeChild(m)}},p=()=>{c(m=>m>0?m-1:e.length-1)},b=()=>{c(m=>m<e.length-1?m+1:0)};return l.jsxs(xl,{open:t,onCancel:r,footer:null,width:"90vw",style:{top:20},styles:{body:{padding:0,height:"80vh",display:"flex",flexDirection:"column"}},closeIcon:l.jsx($s,{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(iP,{level:5,style:{margin:0},children:d.name}),l.jsxs(oP,{type:"secondary",style:{fontSize:o.fontSizeSM},children:[nP(d.size)," • ",d.type,e.length>1&&` • ${i("chat.imagePreview.counter",{current:a+1,total:e.length})}`]})]}),l.jsxs(We,{children:[e.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(Ae,{icon:l.jsx(ed,{}),onClick:p,disabled:e.length<=1}),l.jsx(Ae,{icon:l.jsx(As,{}),onClick:b,disabled:e.length<=1})]}),l.jsx(Ae,{icon:l.jsx(yo,{}),onClick:f,children:i("common.download")})]})]})}),l.jsxs("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center",background:o.colorBgLayout,position:"relative",overflow:"hidden"},children:[e.length===1?l.jsx("img",{src:d.preview,alt:d.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}}):l.jsx($x,{dots:!1,arrows:!0,infinite:!0,afterChange:c,style:{width:"100%",height:"100%"},children:e.map(m=>l.jsx("div",{children:l.jsx("div",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:l.jsx("img",{src:m.preview,alt:m.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}})})},m.id))}),e.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(Ae,{type:"primary",shape:"circle",icon:l.jsx(ed,{}),onClick:p,style:{position:"absolute",left:20,top:"50%",transform:"translateY(-50%)",zIndex:10}}),l.jsx(Ae,{type:"primary",shape:"circle",icon:l.jsx(As,{}),onClick:b,style:{position:"absolute",right:20,top:"50%",transform:"translateY(-50%)",zIndex:10}})]})]}),e.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:e.map((m,w)=>l.jsx("div",{style:{minWidth:60,height:60,border:w===a?`2px solid ${o.colorPrimary}`:`1px solid ${o.colorBorder}`,borderRadius:o.borderRadius,overflow:"hidden",cursor:"pointer",opacity:w===a?1:.7},onClick:()=>c(w),children:l.jsx("img",{src:m.preview,alt:m.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},m.id))})]})},Jo=t=>/\s/.test(t),lP=t=>{if(!t)return[{text:"",type:"text"}];const e=[],n=t.length;let r=0;for(;r<n;){const s=t[r],o=r>0?t[r-1]:"",i=s==="/"&&(r===0||Jo(o)),a=s==="@"&&(r===0||Jo(o));if(!i&&!a){let f=r;for(;r<n&&!((t[r]==="/"||t[r]==="@")&&(r===0||Jo(t[r-1])));)r+=1;e.push({text:t.slice(f,r),type:"text"});continue}let c=r+1;for(;c<n&&!Jo(t[c]);)c+=1;const d=t.slice(r,c);i?c===n||Jo(t[c])?e.push({text:d,type:"workflow"}):e.push({text:d,type:"text"}):a&&e.push({text:d,type:"file"}),r=c}return e.length>0?e:[{text:"",type:"text"}]},cP=/(\/)([a-zA-Z0-9_-]*)$/,uP=t=>{if(!t)return{command:null,isTriggerActive:!1,searchText:""};const e=t.match(cP);if(!e)return{command:null,isTriggerActive:!1,searchText:""};const n=e[2]||"",r=!n.includes(" ")&&e.index!==void 0;return{command:n||null,isTriggerActive:r,searchText:n}},dP=/@([a-zA-Z0-9._\-\/\\]*)$/,fP=t=>{if(!t)return{isTriggerActive:!1,searchText:"",tokenStart:null};const e=t.match(dP);if(!e||e.index===void 0)return{isTriggerActive:!1,searchText:"",tokenStart:null};const n=e[1]||"",r=e.index;return{isTriggerActive:!n.includes(" "),searchText:n,tokenStart:r}},hP=(t,e=80)=>{const[n,r]=v.useState(t);return v.useEffect(()=>{const s=window.setTimeout(()=>{r(t)},e);return()=>{window.clearTimeout(s)}},[t,e]),n},{Text:pP}=ut,mP=({visible:t,token:e})=>{const{t:n}=Xe();return t?l.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:e.colorPrimaryBg,borderRadius:e.borderRadius,zIndex:10,pointerEvents:"none"},children:l.jsxs(We,{direction:"vertical",align:"center",children:[l.jsx(Lx,{style:{fontSize:32,color:e.colorPrimary}}),l.jsx(pP,{style:{color:e.colorPrimary,fontWeight:500},children:n("chat.input.dropImagesHere")})]})}):null},{Text:Np}=ut,gP=({images:t,token:e,allowImages:n,onPreview:r,onClear:s})=>{const{t:o}=Xe();return!n||t.length===0?null:l.jsx("div",{style:{marginBottom:e.marginSM,padding:`${e.paddingXXS}px ${e.paddingXS}px`,borderRadius:999,border:`1px solid ${e.colorBorderSecondary}`,background:e.colorFillSecondary},children:l.jsxs(Ce,{align:"center",wrap:"wrap",gap:e.marginXS,children:[l.jsx(Np,{type:"secondary",style:{fontSize:e.fontSizeSM,minWidth:"fit-content"},children:t.length>1?o("chat.input.imageCountPlural",{count:t.length}):o("chat.input.imageCountSingular",{count:t.length})}),t.slice(0,3).map(i=>l.jsx("div",{style:{position:"relative",width:32,height:32,borderRadius:999,overflow:"hidden",border:`1px solid ${e.colorBorderSecondary}`,cursor:"pointer"},onClick:()=>r(i),children:l.jsx("img",{src:i.preview,alt:i.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},i.id)),t.length>3&&l.jsx(Np,{type:"secondary",style:{fontSize:e.fontSizeSM},children:o("chat.input.moreImages",{count:t.length-3})}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{}),onClick:s,style:{marginLeft:"auto",minWidth:"auto",padding:"0 4px",height:24},title:o("chat.input.clearAllImages")})]})})},{TextArea:yP}=Ls,bP=({value:t,placeholder:e,disabled:n,token:r,highlightSegments:s,textAreaRef:o,highlightOverlayRef:i,onChange:a,onKeyDown:c,onPaste:d,onScrollSync:f})=>{const p=Zr(),b=t.length>0&&s.some(M=>M.type!=="text"),m=p?16:r.fontSize,w="6px 4px",y=1.65,_=n?r.colorTextDisabled:r.colorText;return l.jsxs("div",{style:{position:"relative",flex:1},children:[b?l.jsxs("div",{ref:i,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,padding:w,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflow:"hidden",pointerEvents:"none",color:"transparent",fontSize:m,lineHeight:y,fontFamily:"inherit",fontWeight:400,letterSpacing:"normal",transform:"translate(0, 0)",zIndex:0},children:[s.map((M,C)=>{let T;return M.type==="workflow"?T={backgroundColor:r.colorPrimaryBg,color:"transparent",WebkitTextFillColor:"transparent",fontWeight:400,textDecoration:"underline",textDecorationStyle:"dotted",textDecorationColor:r.colorPrimary}:M.type==="file"&&(T={backgroundColor:r.colorSuccessBg,color:"transparent",WebkitTextFillColor:"transparent"}),l.jsx("span",{style:T,children:M.text},`segment-${C}`)}),t.endsWith(`
38
+ Raw error: ${e}`:"";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},jf=()=>typeof window<"u"&&!!window.__TAURI_INTERNALS__;async function kE(){const t=window.__TAURI_INTERNALS__,e=t==null?void 0:t.invoke;if(typeof e!="function")return!0;try{return await e("is_main_window_focused")===!0}catch{return!0}}async function TE(t,e){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:t,body:e})}async function EE(t){if(!(!jf()||await kE()))try{await TE(t.title,t.body)}catch{}}function PE(t){switch(t){case"needs_clarification":return Et.t("app.notifications.clarification.title");case"needs_approval":return Et.t("app.notifications.toolApproval.genericTitle","Approval required");case"context_critical":return Et.t("app.notifications.contextPressure.title");case"subagent_completed":return Et.t("app.notifications.backgroundTask.completedTitle");default:return null}}const ME=null,If=bc(ME),Of=If.store,Ql=If.atomFamily,AE=t=>t==="killed"?"killed":t==="error"?"error":"completed",RE=sr(null,(t,e,n)=>{const r=wn(n.bashId);if(!r)return;const s=AE(n.status),o=t(Ql(r));o&&o.status===s&&o.exitCode===n.exitCode||(If.activeKeys.add(r),e(Ql(r),{status:s,exitCode:n.exitCode,updatedAt:Date.now()}))}),jE=(t,e,n)=>{Of.set(RE,{bashId:t,status:e,exitCode:n})},IE=t=>{const e=wn(t),n=v.useMemo(()=>sr(r=>e?r(Ql(e)):null),[e]);return Ef(n,{store:Of})},OE=t=>{const e=v.useMemo(()=>Array.from(new Set(t.map(r=>wn(r)).filter(Boolean))).sort(),[t]),n=v.useMemo(()=>sr(r=>{const s={};return e.forEach(o=>{s[o]=r(Ql(o))}),s}),[e]);return Ef(n,{store:Of})},$E=(t,e)=>{const n=wn(t);return n?e[n]??null:null},LE=250,Lp=[1200,3e3],DE=new Set(["New Session","新建会话","新建會話","Nouvelle session","新しいセッション","नया सत्र"]),FE=t=>{const e=(t||"").trim();return!e||DE.has(e)?!0:e.startsWith("New Session - ")||e.startsWith("New Session with ")||e.startsWith("New session - ")||e.startsWith("New session with ")?e.replace(/^New Session - /,"").replace(/^New Session with /,"").replace(/^New session - /,"").replace(/^New session with /,"").trim().length>0:!1};function NE(t){const{sessionId:e,generation:n,setStreamingStatus:r}=t,{markStreamStartedOnce:s,streamingStateBySessionRef:o}=t.ctx;return{onToken:i=>{s(e,n);const a=o.current.get(e);a&&(r(null),a.content+=i,nE(a.sessionId,i),At.publish({sessionId:a.sessionId,messageId:a.messageId,content:i,transient:!0}))},onReasoningToken:i=>{s(e,n);const a=o.current.get(e);a&&(a.reasoningContent+=i,rE(a.sessionId,i),At.publish({sessionId:a.sessionId,messageId:a.reasoningMessageId,content:i,transient:!0}))}}}function zE(t){const{sessionId:e,generation:n,setStreamingStatus:r}=t,{addMessage:s,applyAgentEvent:o,updateMessage:i,streamingStateBySessionRef:a,toolNamesByCallIdRef:c,toolCallMessageIdByCallIdRef:d}=t.ctx;return{onToolStart:(f,p,y)=>{var k,P;o(e,{type:"tool_start",tool_call_id:f,tool_name:p},n);const m=a.current.get(e),w=(m==null?void 0:m.content)||"",b=(m==null?void 0:m.reasoningContent)||"",_=w.trim().length>0,M=b.trim().length>0;if(_||M){const A=G.getState().chats.find(X=>X.id===e),j=(k=A==null?void 0:A.messages)==null?void 0:k[A.messages.length-1],$=typeof((P=j==null?void 0:j.metadata)==null?void 0:P.reasoning)=="string"?j.metadata.reasoning:"";(j==null?void 0:j.role)==="assistant"&&(j==null?void 0:j.type)==="text"&&typeof(j==null?void 0:j.content)=="string"&&j.content===w&&$===b||s(e,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:w,createdAt:new Date().toISOString(),metadata:{sessionId:e,model:"agent",...M?{reasoning:b}:{}}}),m&&(m.content="",m.reasoningContent="",sE(m.sessionId,{content:"",reasoningContent:""}),m.status&&(m.status="",At.clear(m.sessionId,m.statusMessageId)))}c.current.set(f,p);const C=p.trim().toLowerCase();ol(p)?r("memory_updating"):r(`tool_running:${C||"tool"}`);const T=crypto.randomUUID();d.current.set(f,T),s(e,{id:T,role:"assistant",type:"tool_call",toolCalls:[{toolCallId:f,toolName:p,parameters:y||{},streamingOutput:""}],metadata:{},createdAt:new Date().toISOString()})},onToolToken:(f,p)=>{var y;if(o(e,{type:"tool_token",tool_call_id:f,content:p},n),!c.current.has(f)){const m=G.getState().chats.find(b=>b.id===e),w=((y=m==null?void 0:m.messages)==null?void 0:y.slice().reverse().find(b=>"type"in b&&b.type==="tool_call"&&Array.isArray(b.toolCalls)&&b.toolCalls.some(_=>_.toolCallId===f)))??null;if(w&&"toolCalls"in w&&Array.isArray(w.toolCalls)){const b=w.toolCalls.find(_=>_.toolCallId===f);b&&(c.current.set(f,b.toolName),d.current.set(f,w.id))}}lE(e,f,p)},onToolComplete:(f,p)=>{o(e,{type:"tool_complete",tool_call_id:f},n);const y=c.current.get(f)||"unknown";vu(e,f,"completed"),c.current.delete(f),d.current.delete(f);const m=y.trim().toLowerCase(),w=a.current.get(e);(ol(y)?(w==null?void 0:w.status)==="memory_updating":!!(w!=null&&w.status&&w.status.includes(m)))&&r(null);const _=(p==null?void 0:p.display_preference)||"Default",M=((p==null?void 0:p.images)??[]).filter(C=>C==null?void 0:C.data).map(C=>({id:crypto.randomUUID(),url:`data:${C.mime_type||"image/png"};base64,${C.data}`,name:"screenshot",size:0,type:C.mime_type||"image/*"}));s(e,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:y,toolCallId:f,result:{tool_name:y,result:(p==null?void 0:p.result)??"",display_preference:_},isError:!(p!=null&&p.success),createdAt:new Date().toISOString(),...M.length?{images:M}:{}})},onToolError:(f,p)=>{o(e,{type:"tool_error",tool_call_id:f},n);const y=c.current.get(f)||"unknown";vu(e,f,"error"),c.current.delete(f),d.current.delete(f),r(null),s(e,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:y,toolCallId:f,result:{tool_name:y,result:p,display_preference:"Default"},isError:!0,createdAt:new Date().toISOString()})},onToolLifecycle:(f,p,y,m,w,b,_)=>{if(y==="begin"){const M=(p||"").trim().toLowerCase();ol(p||"")?r("memory_updating"):r(`tool_running:${M||"tool"}`)}if(y==="finished"||y==="error"||y==="cancelled"){vu(e,f,y==="finished"?"completed":"error");const M=d.current.get(f);if(M){const P=G.getState().chats.find($=>$.id===e),A=P==null?void 0:P.messages.find($=>$.id===M),j=A&&"metadata"in A?A.metadata??{}:{};i(e,M,{metadata:{...j,elapsed_ms:m,is_mutating:w,..._?{summary:_}:{}}})}const C=(p||"").trim().toLowerCase(),T=a.current.get(e);(ol(p||"")?(T==null?void 0:T.status)==="memory_updating":!!(T!=null&&T.status&&T.status.includes(C)))&&r(null)}}}}function BE(t){const{sessionId:e,setStreamingStatus:n}=t,{message:r,setTruncationInfo:s,updateSession:o,updateTokenUsage:i}=t.ctx;return{onContextCompressionStatus:(a,c)=>{if(c==="started"){n("context_compacting");return}if(c==="degraded_sections"){n("context_compaction_degraded");return}if(c==="failed"){n("context_compaction_failed");return}n(null)},onTokenBudgetUpdated:a=>{const c=gb(a);if(!c)return;i(e,c),s(e,a.truncation_occurred,a.segments_removed);const d=G.getState().chats.find(f=>f.id===e);d&&o(e,{config:{...d.config,tokenUsage:c,truncationOccurred:a.truncation_occurred,segmentsRemoved:a.segments_removed}})},onContextSummarized:a=>{n(null),r.info(Et.t("app.notifications.conversationSummarized",{messages:a.messages_summarized,tokens:a.tokens_saved.toLocaleString()}),5)},onContextPressureNotification:(a,c,d)=>{c==="critical"?r.error(d,6):r.warning(d,5)}}}function WE(t){const{message:e,setTaskList:n,updateTaskListDelta:r,setEvaluationState:s,ensureTaskListBaseline:o,shouldShowTaskListCompletedNotice:i}=t.ctx;return{onTaskListUpdated:a=>{a.session_id&&n(a.session_id,a)},onTaskListItemProgress:a=>{if(a.session_id){if(!G.getState().taskLists[a.session_id]){o(a.session_id);return}r(a.session_id,a)}},onTaskListCompleted:(a,c,d,f)=>{i(a,c,d,f)&&e.success(Et.t("app.notifications.allTasksCompleted",{rounds:c,toolCalls:d}),3)},onTaskEvaluationStarted:(a,c)=>{s(a,{isEvaluating:!0,reasoning:null,timestamp:Date.now()}),e.info(Et.t("app.notifications.evaluatingTasks",{count:c}),2)},onTaskEvaluationCompleted:(a,c,d)=>{const f=tv(d);s(a,{isEvaluating:!1,reasoning:c>0?f:null,timestamp:Date.now()}),c>0?e.success(Et.t("app.notifications.evaluationCompleteUpdated",{count:c}),3):e.info(Et.t("app.notifications.evaluationCompleteNoUpdates"),2)}}}function UE(t){const{sessionId:e}=t,{refreshChatsNow:n,updateSession:r}=t.ctx;return{onSessionTitleUpdated:s=>{id(s,G.getState())},onSessionPinnedUpdated:s=>{id(s,G.getState())},onPlanModeEntered:s=>{const o=s.session_id||e,i=CE(s);if(!i){n();return}r(o,{planMode:i})},onPlanModeExited:s=>{const o=s.session_id||e;r(o,{planMode:null}),n()},onGoalStatusChanged:s=>{const o=s.session_id||e,i=s.goal_state??null,a=G.getState().chats.find(c=>c.id===o);if(!a){n();return}r(o,{config:{...a.config||{},goalState:i}})},onPlanFileUpdated:s=>{const o=s.session_id||e,i=G.getState().chats.find(c=>c.id===o),a=i==null?void 0:i.planMode;a?r(o,{planMode:{...a,plan_file_path:s.plan_file_path??a.plan_file_path??null,status:s.status==="exploring"||s.status==="designing"||s.status==="reviewing"||s.status==="finalizing"||s.status==="awaiting_approval"?s.status:a.status}}):n()}}}function HE(t){const{scheduleParentSettleCheck:e,sessionId:n}=t,{applyChildProgress:r,ensureTaskListBaseline:s,flushChildPreview:o,persistSessionTitle:i,refreshChatsNow:a,scheduleChildPreviewFlush:c,setEvaluationState:d,setPendingChildApproval:f,clearPendingChildApproval:p,setTaskList:y,updateTaskListDelta:m,backgroundChildrenByParentRef:w,lastChildHeartbeatAtRef:b,lastChildRoundCountRef:_,pendingChildPreviewRef:M}=t.ctx;return{onSubAgentStarted:(C,T,k)=>{const P=w.current.get(C)??{children:new Set,parentDone:!1},A=new Set(P.children);A.add(T),w.current.set(C,{children:A,parentDone:P.parentDone}),r(C,T,{title:k,status:"pending",lastEventAt:new Date().toISOString()}),k&&k.trim()&&i(T,k).catch(j=>{console.warn(`[useAgentEventSubscription] Failed to persist sub-agent title for ${T}:`,j)}),a()},onChildApprovalRequested:(C,T,k)=>{const P=hd(n)(G.getState());P&&P.requestId!==T&&console.warn(`[childHandlers] Overwriting a still-pending child approval (child=${P.childSessionId}, request=${P.requestId}) with a new one (child=${C}, request=${T}); the earlier child will no longer be prompted. See TODO #23 (single-slot vs FIFO queue).`),f(n,{childSessionId:C,requestId:T,toolName:k.toolName??null,permission:k.permission??null,resource:k.resource??null})},onSubAgentEvent:(C,T,k)=>{var A;if(k.type==="task_list_updated"&&k.task_list){const j=k.task_list.session_id||C;y(j,k.task_list);return}if(k.type==="task_list_item_progress"){const j=k.session_id||C;if(typeof k.item_id=="string"&&gE(k.status)&&typeof k.tool_calls_count=="number"&&typeof k.version=="number"){if(!G.getState().taskLists[j]){s(j);return}m(j,{session_id:j,item_id:k.item_id,status:k.status,tool_calls_count:k.tool_calls_count,version:k.version})}return}if(k.type==="task_evaluation_started"){const j=k.session_id||C;d(j,{isEvaluating:!0,reasoning:null,timestamp:Date.now()});return}if(k.type==="task_evaluation_completed"){const j=k.session_id||C,$=k.updates_count??0;d(j,{isEvaluating:!1,reasoning:$>0?tv(k.reasoning??""):null,timestamp:Date.now()});return}const P=(A=yc(C)(G.getState()))==null?void 0:A[T];if(!$p(P==null?void 0:P.status)){if(k.type==="runner_progress"){const j=typeof k.round_count=="number"?k.round_count:P==null?void 0:P.roundCount,$=`${C}:${T}`;if(typeof j=="number"&&_.current.get($)===j)return;typeof j=="number"&&_.current.set($,j),r(C,T,{status:"running",roundCount:j,lastEventAt:new Date().toISOString()});return}if(k.type==="token"&&typeof k.content=="string"){const j=`${C}:${T}`,$=M.current.get(j),F=pE(C,T),K=((($==null?void 0:$.content)??F.outputPreview??(P==null?void 0:P.outputPreview)??"")+k.content).slice(-SE);ev(C,T,K),c(C,T,K,new Date().toISOString())}else r(C,T,{status:"running",lastEventAt:new Date().toISOString()})}},onSubAgentHeartbeat:(C,T,k)=>{if($p(wE(C,T)))return;const P=`${C}:${T}`,A=b.current.get(P)??0,j=Date.parse(k||"")||Date.now();j-A<bE||(b.current.set(P,j),r(C,T,{status:"running",lastHeartbeatAt:k}))},onSubAgentCompleted:(C,T,k,P)=>{const A=w.current.get(C)??{children:new Set,parentDone:!1},j=new Set(A.children);j.delete(T),w.current.set(C,{children:j,parentDone:A.parentDone});const $=hd(C)(G.getState());$&&$.childSessionId===T&&p(C),o(C,T),hE(C,T);const F=`${C}:${T}`;b.current.delete(F),_.current.delete(F),r(C,T,{status:k,error:P,lastEventAt:new Date().toISOString()}),A.parentDone&&j.size===0&&e(),a()}}}function qE(t,e){var je;const{addMessage:n,applyAgentEvent:r,updateMessage:s,refreshChatsNow:o,setPendingQuestion:i,clearPendingQuestion:a,cleanupChat:c,clearReconnect:d,clearParentSettleTimer:f,clearTitleRefreshRetry:p,restart:y,agentClientRef:m,parentSettleTimersRef:w,titleRefreshRetryTimersRef:b,subscriptionsBySessionRef:_,streamingStateBySessionRef:M,backgroundChildrenByParentRef:C,reconnectStateBySessionRef:T}=e,k=G.getState(),P=Mt(t)(k)??0,A=(je=k.executionBySession)==null?void 0:je[t];pe("[SSE]","startSubscription",{sessionId:t,generation:P,phase:(A==null?void 0:A.phase)??null,backendRunId:(A==null?void 0:A.backendRunId)??null,shouldObserve:Wn(t)(k)}),d(t),p(t);const j=new AbortController;_.current.set(t,{sessionId:t,controller:j,generation:P,streamEnded:!1});const $=`streaming-${t}`,F=`streaming-reasoning-${t}`,X=`streaming-status-${t}`,K=Rp(t),O=At.getLatest(X);M.current.set(t,{sessionId:t,messageId:$,content:K.content,reasoningMessageId:F,reasoningContent:K.reasoningContent,statusMessageId:X,status:O??""});const W=fe=>{const ne=M.current.get(t);if(!ne)return;const Q=(fe??"").trim();if(!Q){if(!ne.status)return;ne.status="",At.clear(ne.sessionId,ne.statusMessageId);return}ne.status!==Q&&(ne.status=Q,At.publish({sessionId:ne.sessionId,messageId:ne.statusMessageId,content:ne.status}))},ae=()=>{var qe;const fe=T.current.get(t),ne=(fe==null?void 0:fe.attempt)??0,Q=Math.min(5e3,250*Math.pow(2,ne)),ie=G.getState(),ye=(qe=ie.executionBySession)==null?void 0:qe[t];pe("[SSE]","scheduleReconnect",{sessionId:t,generation:P,attempt:ne,delayMs:Q,phase:(ye==null?void 0:ye.phase)??null,backendRunId:(ye==null?void 0:ye.backendRunId)??null,shouldObserve:Wn(t)(ie),terminalEventSeen:Y}),c(t,{clearDraft:!1});const $e=setTimeout(()=>{var vt,Ve,Ht,ct,pt;T.current.delete(t);const Ue=G.getState();if(!Wn(t)(Ue)){pe("[SSE]","scheduleReconnect.skipNotBusy",{sessionId:t,generation:P,phase:((Ve=(vt=Ue.executionBySession)==null?void 0:vt[t])==null?void 0:Ve.phase)??null,backendRunId:((ct=(Ht=Ue.executionBySession)==null?void 0:Ht[t])==null?void 0:ct.backendRunId)??null});return}const ht=Ue.chats.find(an=>an.id===t),Ct=(pt=ht==null?void 0:ht.id)==null?void 0:pt.trim();if(!Ct){pe("[SSE]","scheduleReconnect.skipMissingSession",{sessionId:t,generation:P});return}pe("[SSE]","scheduleReconnect.restart",{sessionId:Ct,generation:P}),y(Ct)},Q);T.current.set(t,{attempt:ne+1,timer:$e})};let Y=!1,ce=!1;const L=()=>{const fe=G.getState();if((Mt(t)(fe)??0)!==P||Wn(t)(fe))return!1;const Q=fe.chats.find(ie=>ie.id===t);return!Q||Q.isRunning?!1:FE(Q.title)&&(Q.titleVersion??0)===0},oe=()=>{if(!L()){p(t);return}const fe=b.current.get(t),ne=(fe==null?void 0:fe.attempt)??0;if(ne>=Lp.length){p(t);return}p(t);const Q=Lp[ne],ie=setTimeout(()=>{b.current.delete(t),(async()=>{if(!L()){p(t);return}try{await o()}catch(ye){console.warn(`[useAgentEventSubscription] Title refresh retry failed for session ${t}:`,ye)}finally{L()?oe():p(t)}})()},Q);b.current.set(t,{attempt:ne+1,timer:ie})},Se=()=>{const fe=_.current.get(t);!fe||fe.controller!==j||fe.streamEnded||(fe.streamEnded=!0,Cs("markStreamEnded",t,"generation:",fe.generation,"terminal:",Y))},J=()=>{const fe=C.current.get(t);return((fe==null?void 0:fe.children.size)??0)>0},te=()=>Y&&!J(),he=()=>{const fe=_.current.get(t);fe&&(At.clear(t,`streaming-${t}`),At.clear(t,`streaming-reasoning-${t}`),At.clear(t,`streaming-status-${t}`),wd(t),M.current.delete(fe.sessionId))},de=async()=>{f(t);try{await o()}catch($e){console.warn(`[useAgentEventSubscription] High-priority refresh failed while settling parent ${t}:`,$e)}const fe=C.current.get(t)??{children:new Set,parentDone:!1};if(!fe.parentDone||fe.children.size>0)return;const ne=_.current.get(t);if(ne&&(ne.controller!==j||ne.generation!==P))return;const ie=G.getState().chats.find($e=>$e.id===t);if(!!(ie!=null&&ie.isRunning)){p(t);return}L()?oe():p(t),c(t,{clearDraft:!0})},me=()=>{f(t);const fe=setTimeout(()=>{w.current.delete(t),de()},LE);w.current.set(t,fe)},ge=()=>{const fe=C.current.get(t)??{children:new Set},ne=new Set(fe.children);if(C.current.set(t,{children:ne,parentDone:!0}),ne.size===0){me();return}he()},le={ctx:e,sessionId:t,generation:P,setStreamingStatus:W,scheduleParentSettleCheck:me},ke=m.current;ke&&ke.subscribeToEvents(t,{...NE(le),...zE(le),...BE(le),...WE(le),...UE(le),...HE(le),onComplete:()=>{if(ce){Y=!0,W(null),At.forceFlush();return}Y=!0,r(t,{type:"complete"},P);const fe=j,ne=()=>{const Q=_.current.get(t);return Q!=null&&(Q.controller!==fe||Q.generation!==P)};(async()=>{var rt,ht,Ct;if(W(null),At.forceFlush(),a(t),ne())return;const Q=M.current.get(t),ie=Rp(t),ye=ie.content||(Q==null?void 0:Q.content)||"",$e=ie.reasoningContent||(Q==null?void 0:Q.reasoningContent)||"",qe=ye.trim().length>0,Ue=$e.trim().length>0;if(qe||Ue){const vt=G.getState().chats.find(pt=>pt.id===t),Ve=(rt=vt==null?void 0:vt.messages)==null?void 0:rt[vt.messages.length-1],Ht=typeof((ht=Ve==null?void 0:Ve.metadata)==null?void 0:ht.reasoning)=="string"?Ve.metadata.reasoning:"";(Ve==null?void 0:Ve.role)==="assistant"&&(Ve==null?void 0:Ve.type)==="text"&&typeof(Ve==null?void 0:Ve.content)=="string"&&Ve.content===ye&&Ht===$e||await n(t,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:ye,createdAt:new Date().toISOString(),metadata:{sessionId:t,model:"agent",...Ue?{reasoning:$e}:{}}})}if(!ne()&&(await G.getState().loadChatHistory(t,{mode:"monotonic",retries:4,retryDelayMs:200,waitForAssistant:!0}),!ne())){if(Ue){const vt=G.getState().chats.find(ct=>ct.id===t),Ve=[...(vt==null?void 0:vt.messages)||[]].reverse().find(ct=>(ct==null?void 0:ct.role)==="assistant"&&(ct==null?void 0:ct.type)==="text"),Ht=typeof((Ct=Ve==null?void 0:Ve.metadata)==null?void 0:Ct.reasoning)=="string"&&Ve.metadata.reasoning.trim().length>0;Ve!=null&&Ve.id&&!Ht&&s(t,Ve.id,{metadata:{...Ve.metadata||{},reasoning:$e}})}ne()||ge()}})().catch(Q=>{console.warn(`[useAgentEventSubscription] Completion finalization failed for session ${t}:`,Q),ne()||ge()})},onCancelled:async fe=>{Y=!0,r(t,{type:"cancelled",message:fe},P),W(null),a(t),ge()},onError:async fe=>{Y=!0,r(t,{type:"error",message:fe},P),W(null);try{const ne=xd(fe)?_d(fe):fe;await n(t,{id:`error-${Date.now()}`,role:"assistant",type:"text",content:`❌ **Error**: ${ne}`,createdAt:new Date().toISOString(),finishReason:"error"})}catch(ne){console.warn(`[useAgentEventSubscription] Failed to append error message for session ${t}:`,ne)}finally{ge()}},onNeedClarification:fe=>{const ne=fe.session_id||t;ne===t&&(ce=!0),Cs("event.needClarification",{sessionId:t,targetSessionId:ne,subscriptionGeneration:P,currentStoreGeneration:Mt(ne)(G.getState()),toolCallId:fe.tool_call_id??null,questionPreview:(fe.question||"").slice(0,120)}),i(ne,{question:fe.question||"",options:fe.options||[],allowCustom:fe.allow_custom??!0,toolCallId:fe.tool_call_id??null})},onNotification:fe=>{const ne=PE(fe.category)||fe.title||"";EE({title:ne,body:fe.body||""})},onBashCompleted:(fe,ne,Q,ie)=>{fe&&jE(fe,ie,Q)},onExecutionStarted:(fe,ne)=>{pe("[SSE]","event.executionStarted",{sessionId:t,generation:P,runId:fe}),Cs("event.executionStarted.compareGeneration",{sessionId:t,subscriptionGeneration:P,currentStoreGeneration:Mt(t)(G.getState()),runId:fe}),r(t,{type:"execution_started",run_id:fe},P)},onRunnerProgress:()=>{}},j).then(()=>{var Q,ie,ye,$e,qe,Ue,rt,ht;if(Se(),Cs("streamEnded",t,"generation:",P,"aborted:",j.signal.aborted,"terminal:",Y),pe("[SSE]","streamEnded",{sessionId:t,generation:P,aborted:j.signal.aborted,terminalEventSeen:Y,shouldSkipReconnectAfterTerminal:te(),phase:((ie=(Q=G.getState().executionBySession)==null?void 0:Q[t])==null?void 0:ie.phase)??null,backendRunId:(($e=(ye=G.getState().executionBySession)==null?void 0:ye[t])==null?void 0:$e.backendRunId)??null}),j.signal.aborted||te())return;const fe=_.current.get(t);if(fe&&(fe.controller!==j||fe.generation!==P))return;const ne=Wn(t)(G.getState());if(pe("[SSE]","streamEnded.busyCheck",{sessionId:t,generation:P,stillBusy:ne,phase:((Ue=(qe=G.getState().executionBySession)==null?void 0:qe[t])==null?void 0:Ue.phase)??null,backendRunId:((ht=(rt=G.getState().executionBySession)==null?void 0:rt[t])==null?void 0:ht.backendRunId)??null}),!ne){c(t,{clearDraft:!0});return}ae()}).catch(fe=>{var Q,ie,ye,$e,qe,Ue,rt,ht;if(Se(),pe("[SSE]","streamError",{sessionId:t,generation:P,aborted:j.signal.aborted,terminalEventSeen:Y,error:fe,phase:((ie=(Q=G.getState().executionBySession)==null?void 0:Q[t])==null?void 0:ie.phase)??null,backendRunId:(($e=(ye=G.getState().executionBySession)==null?void 0:ye[t])==null?void 0:$e.backendRunId)??null}),j.signal.aborted||te())return;const ne=Wn(t)(G.getState());if(pe("[SSE]","streamError.busyCheck",{sessionId:t,generation:P,stillBusy:ne,isAbortError:mE(fe),phase:((Ue=(qe=G.getState().executionBySession)==null?void 0:qe[t])==null?void 0:Ue.phase)??null,backendRunId:((ht=(rt=G.getState().executionBySession)==null?void 0:rt[t])==null?void 0:ht.backendRunId)??null}),!ne){c(t,{clearDraft:!0});return}ae()})}function KE(){const{message:t}=En.useApp(),{addMessage:e,applyAgentEvent:n,markStreamStarted:r,updateTokenUsage:s,setTruncationInfo:o,updateSession:i,updateMessage:a,setTaskList:c,loadTaskList:d,updateTaskListDelta:f,setEvaluationState:p,applyChildProgress:y,persistSessionTitle:m,refreshChatsNow:w,setPendingQuestion:b,clearPendingQuestion:_,setPendingChildApproval:M,clearPendingChildApproval:C}=G(na(Q=>({addMessage:Q.addMessage,applyAgentEvent:Q.applyAgentEvent,markStreamStarted:Q.markStreamStarted,updateTokenUsage:Q.updateTokenUsage,setTruncationInfo:Q.setTruncationInfo,updateSession:Q.updateSession,updateMessage:Q.updateMessage,setTaskList:Q.setTaskList,loadTaskList:Q.loadTaskList,updateTaskListDelta:Q.updateTaskListDelta,setEvaluationState:Q.setEvaluationState,applyChildProgress:Q.applyChildProgress,persistSessionTitle:Q.persistSessionTitle,refreshChatsNow:Q.refreshChatsNow,setPendingQuestion:Q.setPendingQuestion,clearPendingQuestion:Q.clearPendingQuestion,setPendingChildApproval:Q.setPendingChildApproval,clearPendingChildApproval:Q.clearPendingChildApproval}))),T=v.useRef(null);T.current||(T.current=_E());const k=v.useRef(new Set),P=v.useRef(new Map),A=v.useRef(new Map),j=v.useRef(new Map),$=v.useRef(new Map),F=v.useRef(new Map),X=v.useRef(new Map),K=v.useRef(new Map),O=v.useRef(new Map),W=v.useRef(new Map),ae=v.useRef(new Map),Y=v.useRef(new Map),ce=v.useRef(new Map),L=v.useRef(new Set),oe=v.useRef(new Map),Se=v.useCallback(Q=>{const ie=oe.current.get(Q);ie!=null&&ie.timer&&clearTimeout(ie.timer),oe.current.delete(Q)},[]),J=v.useCallback(Q=>{const ie=P.current.get(Q);ie&&(clearTimeout(ie),P.current.delete(Q))},[]),te=v.useCallback(Q=>{const ie=A.current.get(Q);ie!=null&&ie.timer&&clearTimeout(ie.timer),A.current.delete(Q)},[]),he=v.useCallback((Q,ie)=>{var rt;const ye=G.getState(),$e=(rt=ye.executionBySession)==null?void 0:rt[Q];pe("[SSE]","cleanupChat",{sessionId:Q,opts:ie??null,generation:($e==null?void 0:$e.generation)??null,phase:($e==null?void 0:$e.phase)??null,backendRunId:($e==null?void 0:$e.backendRunId)??null,shouldObserve:Wn(Q)(ye)}),Se(Q),J(Q),ie!=null&&ie.clearTitleRetry&&te(Q),L.current.delete(Q),$.current.delete(Q);for(const[ht,Ct]of ae.current.entries())ht.startsWith(`${Q}:`)&&(Ct.timer&&clearTimeout(Ct.timer),ae.current.delete(ht));const qe=F.current.get(Q);if(!qe){ie!=null&&ie.clearDraft&&(At.clear(Q,`streaming-${Q}`),At.clear(Q,`streaming-reasoning-${Q}`),At.clear(Q,`streaming-status-${Q}`),wd(Q),jp(Q),Ip(Q));return}F.current.delete(Q),qe.controller.abort(),At.forceFlush();const Ue=X.current.get(qe.sessionId);Ue?(ie!=null&&ie.clearDraft&&(At.clear(Ue.sessionId,Ue.messageId),At.clear(Ue.sessionId,Ue.reasoningMessageId),At.clear(Ue.sessionId,Ue.statusMessageId)),X.current.delete(qe.sessionId)):ie!=null&&ie.clearDraft&&(At.clear(Q,`streaming-${Q}`),At.clear(Q,`streaming-reasoning-${Q}`),At.clear(Q,`streaming-status-${Q}`)),ie!=null&&ie.clearDraft&&(wd(Q),jp(Q),Ip(Q))},[J,Se,te]),de=v.useCallback((Q,ie)=>{const ye=`${Q}:${ie}`,$e=ae.current.get(ye);$e&&($e.timer&&clearTimeout($e.timer),ae.current.delete(ye),ev(Q,ie,$e.content),y(Q,ie,{status:"running",outputPreview:$e.content,lastEventAt:$e.lastEventAt}))},[y]),me=v.useCallback((Q,ie,ye,$e)=>{const qe=`${Q}:${ie}`,Ue=ae.current.get(qe);Ue!=null&&Ue.timer&&clearTimeout(Ue.timer);const rt=setTimeout(()=>{de(Q,ie)},vE);ae.current.set(qe,{content:ye,lastEventAt:$e,timer:rt})},[de]),ge=v.useCallback(async Q=>{const ie=Q.trim();if(ie&&!k.current.has(ie)&&!G.getState().taskLists[ie]){k.current.add(ie);try{await d(ie)}catch(ye){console.warn(`[useAgentEventSubscription] Failed to recover task list baseline for ${ie}:`,ye)}finally{k.current.delete(ie)}}},[d]),le=v.useCallback((Q,ie,ye,$e)=>{var Ct,vt;const qe=xE(Q,ie,ye,$e);if(j.current.get(Q)===qe)return!1;const rt=(Ct=G.getState().executionBySession)==null?void 0:Ct[Q],ht=(rt==null?void 0:rt.phase)==="waiting_user_answer"||((vt=rt==null?void 0:rt.interaction)==null?void 0:vt.pendingQuestion)!=null;return j.current.set(Q,qe),!ht},[]),ke=v.useCallback((Q,ie)=>{$.current.get(Q)!==ie&&($.current.set(Q,ie),r(Q,ie))},[r]),je=v.useCallback(Q=>{qE(Q,{addMessage:e,applyAgentEvent:n,updateTokenUsage:s,setTruncationInfo:o,updateSession:i,updateMessage:a,setTaskList:c,updateTaskListDelta:f,setEvaluationState:p,applyChildProgress:y,persistSessionTitle:m,refreshChatsNow:w,setPendingQuestion:b,clearPendingQuestion:_,setPendingChildApproval:M,clearPendingChildApproval:C,message:t,cleanupChat:he,clearReconnect:Se,clearParentSettleTimer:J,clearTitleRefreshRetry:te,ensureTaskListBaseline:ge,shouldShowTaskListCompletedNotice:le,markStreamStartedOnce:ke,flushChildPreview:de,scheduleChildPreviewFlush:me,restart:je,agentClientRef:T,parentSettleTimersRef:P,titleRefreshRetryTimersRef:A,subscriptionsBySessionRef:F,streamingStateBySessionRef:X,backgroundChildrenByParentRef:K,lastChildHeartbeatAtRef:O,lastChildRoundCountRef:W,pendingChildPreviewRef:ae,toolNamesByCallIdRef:Y,toolCallMessageIdByCallIdRef:ce,reconnectStateBySessionRef:oe})},[e,he,J,_,C,Se,te,ge,t,le,m,w,p,b,M,n,ke,c,o,a,i,f,s,y,de,me]),fe=v.useCallback(Q=>{const ie=Q.trim();if(!ie)return;L.current.delete(ie);const ye=F.current.get(ie),$e=Mt(ie)(G.getState()),qe=ye&&ye.generation!==$e;if(Cs("ensureSubscription.check",{sessionId:ie,existingGeneration:(ye==null?void 0:ye.generation)??null,currentGeneration:$e,hasExisting:!!ye,aborted:(ye==null?void 0:ye.controller.signal.aborted)??null,streamEnded:(ye==null?void 0:ye.streamEnded)??null,generationMismatch:qe}),(ye==null?void 0:ye.sessionId)===ie&&!ye.controller.signal.aborted&&!ye.streamEnded&&!qe){Cs("skipExistingSubscription",ie,"generation:",ye.generation,"streamEnded:",ye.streamEnded);return}ye&&(Cs("restartStaleSubscription",ie,"generation:",ye.generation,"currentGeneration:",$e,"aborted:",ye.controller.signal.aborted,"streamEnded:",ye.streamEnded,"generationMismatch:",qe),he(ie,{clearDraft:!1})),je(ie)},[he,je]),ne=G(na(Q=>Object.entries(Q.executionBySession).filter(([ie])=>Wn(ie)(Q)).map(([ie,ye])=>{const $e=ye.phase==="starting"?"starting":ye.phase==="settling"?"settling":"live";return`${ie}\0${ye.generation}\0${$e}`}).sort()));v.useEffect(()=>{const Q=ne.map(ye=>{const $e=ye.indexOf("\0");return $e>=0?ye.slice(0,$e):ye}),ie=new Set(Q);pe("[SSE]","effect.busySessions",{busySessionIds:Q}),Q.forEach(ye=>fe(ye));for(const ye of Array.from(F.current.keys()))ie.has(ye)||he(ye,{clearDraft:!0});for(const ye of Array.from(L.current))ie.has(ye)||L.current.delete(ye)},[ne,fe,he]),v.useEffect(()=>G.subscribe(Q=>Q.chats,()=>{if(L.current.size!==0)for(const Q of Array.from(L.current)){if(!Wn(Q)(G.getState())){L.current.delete(Q);continue}fe(Q)}}),[fe]),v.useEffect(()=>{let Q=!1;const ie=()=>{typeof document>"u"||document.visibilityState!=="visible"||(async()=>{try{await w()}catch(qe){pe("[SSE]","visibilityReconcile.refreshFailed",{error:qe})}if(Q)return;const ye=G.getState(),$e=ye.currentSessionId;$e&&ye.reconcileOpenSession($e,"visibility_regain");for(const qe of Array.from(F.current.keys()))Wn(qe)(G.getState())&&(he(qe,{clearDraft:!1}),fe(qe))})()};return document.addEventListener("visibilitychange",ie),()=>{Q=!0,document.removeEventListener("visibilitychange",ie)}},[w,fe,he]),v.useEffect(()=>{const Q=F.current;return()=>{const ie=Array.from(Q.keys());for(const ye of ie)he(ye,{clearDraft:!0,clearTitleRetry:!0})}},[he])}const Br=(t,e,n)=>Math.max(e,Math.min(n,t)),il=(t,e)=>e==="horizontal"?t.clientWidth:t.clientHeight,XE=(t,e,n,r,s)=>{const o=Math.max(0,Math.round(t)),i=Math.max(0,Math.round(e)),a=Math.max(0,Math.round(n));if(i+a>o)return{minFirst:0,maxFirst:o,appliedMinFirst:0,appliedMinSecond:0};const c=Math.min(Number.isFinite(r)?r:Number.POSITIVE_INFINITY,s&&s>0?o*s:Number.POSITIVE_INFINITY),d=o-a;let f=i;return Number.isFinite(c)&&(f=Math.max(f,Math.ceil(o-c))),f>d&&(f=Math.min(d,Math.max(i,Math.floor(o/2)))),{minFirst:f,maxFirst:d,appliedMinFirst:i,appliedMinSecond:a}},$f=({layout:t,first:e,second:n,sizesPx:r,defaultSplitRatio:s=.5,minFirstPx:o=0,minSecondPx:i=0,maxSecondPx:a,maxSecondFraction:c,handleSizePx:d=6,disabled:f=!1,onResizeEnd:p,style:y,className:m})=>{const w=v.useRef(null),b=v.useRef(null),[_,M]=v.useState(null),[C,T]=v.useState(0),[k,P]=v.useState(null),A=v.useMemo(()=>{if(!r)return null;const le=Number(r[0]);return Number.isFinite(le)?le:null},[r]),j=v.useMemo(()=>{if(!r)return null;const le=Number(r[1]);return Number.isFinite(le)?le:null},[r]),$=v.useMemo(()=>{if(!r)return null;const le=Number(r[0]),ke=Number(r[1]);if(!Number.isFinite(le)||!Number.isFinite(ke))return null;const je=le+ke;return je<=0||le<=0||ke<=0?null:Br(le/je,0,1)},[r]),F=v.useMemo(()=>A===null||j===null?null:j<=0?Math.max(0,A):null,[A,j]),X=v.useMemo(()=>A===null||j===null?null:j>0&&A<=0?j:null,[A,j]);v.useLayoutEffect(()=>{const le=w.current;le&&T(il(le,t))},[t]),v.useEffect(()=>{const le=w.current;if(!le)return;const ke=()=>{const je=il(le,t);T(fe=>fe===je?fe:je)};if(ke(),typeof ResizeObserver<"u"){const je=new ResizeObserver(ke);return je.observe(le),()=>je.disconnect()}return window.addEventListener("resize",ke),()=>window.removeEventListener("resize",ke)},[t]),v.useEffect(()=>{if($!==null){P($);return}P(le=>le??Br(s,.1,.9))},[s,$]);const K=v.useCallback(le=>XE(le,o,i,a,c),[o,i,a,c]),O=v.useMemo(()=>K(C),[K,C]),W=Br(s,.1,.9),ae=k??W,Y=C>0?Math.round(C*ae):null,ce=_??($!==null?Y:null)??F??(X!==null&&C>0?C-X:null)??Y??0,L=C>0?Br(ce,O.minFirst,O.maxFirst):Math.max(0,Math.round(ce)),oe=v.useCallback(le=>{if(f)return;const ke=w.current;if(!ke)return;le.preventDefault(),le.stopPropagation();const je=t==="horizontal"?le.clientX:le.clientY,fe=il(ke,t),ne=K(fe),Q=Br(L||Math.round(fe*W),ne.minFirst,ne.maxFirst);b.current={pointerId:le.pointerId,startPos:je,startFirstPx:Q,containerSize:fe};try{le.currentTarget.setPointerCapture(le.pointerId)}catch{}},[K,f,L,W,t]),Se=v.useCallback(le=>{const ke=b.current;if(!ke||le.pointerId!==ke.pointerId)return;le.preventDefault(),le.stopPropagation();const fe=(t==="horizontal"?le.clientX:le.clientY)-ke.startPos,ne=ke.containerSize,Q=K(ne),ie=Br(Math.round(ke.startFirstPx+fe),Q.minFirst,Q.maxFirst);M(ie)},[K,t]),J=v.useCallback(le=>{const ke=b.current;if(!ke||ke.pointerId!==le)return;const je=w.current,fe=je?il(je,t):ke.containerSize,ne=_??ke.startFirstPx,Q=K(fe),ie=Br(ne,Q.minFirst,Q.maxFirst),ye=Math.max(0,fe-ie);M(null),fe>0&&P(Br(ie/fe,0,1)),b.current=null,p==null||p([ie,ye])},[K,t,_,p]),te=v.useCallback(le=>{le.preventDefault(),le.stopPropagation(),J(le.pointerId)},[J]),he=v.useCallback(le=>{le.preventDefault(),le.stopPropagation(),J(le.pointerId)},[J]),de=t==="horizontal",me=f?"default":de?"col-resize":"row-resize",ge=Math.max(0,Math.round(d));return l.jsxs("div",{ref:w,className:m,style:{display:"flex",flexDirection:de?"row":"column",height:"100%",minHeight:0,minWidth:0,width:"100%",position:"relative",...y},children:[l.jsx("div",{style:{flex:`0 0 ${L}px`,minWidth:de?O.appliedMinFirst:0,minHeight:de?0:O.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:e})}),l.jsx("div",{style:{flex:"1 1 auto",minWidth:de?O.appliedMinSecond:0,minHeight:de?0:O.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})}),ge>0?l.jsx("div",{role:"separator","aria-orientation":de?"vertical":"horizontal",onPointerDown:oe,onPointerMove:Se,onPointerUp:te,onPointerCancel:he,style:{position:"absolute",top:de?0:`${L-ge/2}px`,left:de?`${L-ge/2}px`:0,width:de?`${ge}px`:"100%",height:de?"100%":`${ge}px`,cursor:me,touchAction:"none",background:"transparent",zIndex:5}}):null]})},Cd="chat-toggle-batch-export-selection",kd="chat-open-inspector",Zl="chat-focus-input",Td="chat-pending-question-resolved",ec=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp"],Dp=10*1024*1024,YE=2048,VE=2048,GE=.82,JE=512*1024,QE=t=>ec.includes(t.type)?t.size>Dp?{isValid:!1,error:`Image size too large: ${(t.size/1024/1024).toFixed(2)}MB. Maximum size: ${Dp/1024/1024}MB`}:{isValid:!0}:{isValid:!1,error:`Unsupported image type: ${t.type}. Supported types: ${ec.join(", ")}`},ZE=t=>new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error("Failed to load image")),r.src=t}),Fp=t=>new Promise((e,n)=>{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?e(r.result):n(new Error("Failed to convert file to base64"))},r.onerror=()=>n(new Error("Failed to read file")),r.readAsDataURL(t)}),eP=t=>URL.createObjectURL(t),tP=(t,e,n,r)=>{let{width:s,height:o}=e;if(s>n||o>r){const a=s/o;s>o?(s=n,o=Math.round(s/a)):(o=r,s=Math.round(o*a))}t.width=s,t.height=o;const i=t.getContext("2d");i&&(i.fillStyle="#ffffff",i.fillRect(0,0,s,o),i.drawImage(e,0,0,s,o))},nP=async(t,e)=>{const n=await ZE(t),r=document.createElement("canvas");return tP(r,n,YE,VE),oP(r,e)},rP=async t=>{const e=QE(t);if(!e.isValid)throw new Error(e.error);const n=eP(t);try{let r;if(t.type==="image/gif"||t.size<JE)r=await Fp(t);else try{r=await nP(n,GE)}catch(o){console.warn("[imageUtils] Failed to re-encode image, using original:",o),r=await Fp(t)}const s=`img_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return{file:t,base64:r,preview:n,id:s,name:t.name,size:t.size,type:t.type}}catch(r){throw nv(n),r}},sP=async t=>{const e=Array.from(t),n=[];for(const r of e)try{const s=await rP(r);n.push(s)}catch(s){console.error(`Failed to process image ${r.name}:`,s)}return n},oP=(t,e=.8)=>t.toDataURL("image/jpeg",e),nv=t=>{t.startsWith("blob:")&&URL.revokeObjectURL(t)},Np=t=>{t.forEach(e=>nv(e.preview))},iP=t=>{if(t===0)return"0 Bytes";const e=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(t)/Math.log(e));return parseFloat((t/Math.pow(e,r)).toFixed(2))+" "+n[r]},aP=t=>!t.files||t.files.length===0?!1:Array.from(t.files).some(e=>ec.includes(e.type)),lP=t=>t.files?Array.from(t.files).filter(e=>ec.includes(e.type)):[],{Text:cP,Title:uP}=ut,dP=({visible:t,images:e,currentIndex:n=0,onClose:r,onDownload:s})=>{const{token:o}=lt.useToken(),{t:i}=Xe(),[a,c]=v.useState(n);if(!e||e.length===0)return null;const d=e[a],f=()=>{if(s&&d)s(d);else{const m=document.createElement("a");m.href=d.base64,m.download=d.name,document.body.appendChild(m),m.click(),document.body.removeChild(m)}},p=()=>{c(m=>m>0?m-1:e.length-1)},y=()=>{c(m=>m<e.length-1?m+1:0)};return l.jsxs(xl,{open:t,onCancel:r,footer:null,width:"90vw",style:{top:20},styles:{body:{padding:0,height:"80vh",display:"flex",flexDirection:"column"}},closeIcon:l.jsx($s,{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(uP,{level:5,style:{margin:0},children:d.name}),l.jsxs(cP,{type:"secondary",style:{fontSize:o.fontSizeSM},children:[iP(d.size)," • ",d.type,e.length>1&&` • ${i("chat.imagePreview.counter",{current:a+1,total:e.length})}`]})]}),l.jsxs(We,{children:[e.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(Ae,{icon:l.jsx(ed,{}),onClick:p,disabled:e.length<=1}),l.jsx(Ae,{icon:l.jsx(As,{}),onClick:y,disabled:e.length<=1})]}),l.jsx(Ae,{icon:l.jsx(yo,{}),onClick:f,children:i("common.download")})]})]})}),l.jsxs("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center",background:o.colorBgLayout,position:"relative",overflow:"hidden"},children:[e.length===1?l.jsx("img",{src:d.preview,alt:d.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}}):l.jsx(Nx,{dots:!1,arrows:!0,infinite:!0,afterChange:c,style:{width:"100%",height:"100%"},children:e.map(m=>l.jsx("div",{children:l.jsx("div",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:l.jsx("img",{src:m.preview,alt:m.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}})})},m.id))}),e.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(Ae,{type:"primary",shape:"circle",icon:l.jsx(ed,{}),onClick:p,style:{position:"absolute",left:20,top:"50%",transform:"translateY(-50%)",zIndex:10}}),l.jsx(Ae,{type:"primary",shape:"circle",icon:l.jsx(As,{}),onClick:y,style:{position:"absolute",right:20,top:"50%",transform:"translateY(-50%)",zIndex:10}})]})]}),e.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:e.map((m,w)=>l.jsx("div",{style:{minWidth:60,height:60,border:w===a?`2px solid ${o.colorPrimary}`:`1px solid ${o.colorBorder}`,borderRadius:o.borderRadius,overflow:"hidden",cursor:"pointer",opacity:w===a?1:.7},onClick:()=>c(w),children:l.jsx("img",{src:m.preview,alt:m.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},m.id))})]})},Qo=t=>/\s/.test(t),fP=t=>{if(!t)return[{text:"",type:"text"}];const e=[],n=t.length;let r=0;for(;r<n;){const s=t[r],o=r>0?t[r-1]:"",i=s==="/"&&(r===0||Qo(o)),a=s==="@"&&(r===0||Qo(o));if(!i&&!a){let f=r;for(;r<n&&!((t[r]==="/"||t[r]==="@")&&(r===0||Qo(t[r-1])));)r+=1;e.push({text:t.slice(f,r),type:"text"});continue}let c=r+1;for(;c<n&&!Qo(t[c]);)c+=1;const d=t.slice(r,c);i?c===n||Qo(t[c])?e.push({text:d,type:"workflow"}):e.push({text:d,type:"text"}):a&&e.push({text:d,type:"file"}),r=c}return e.length>0?e:[{text:"",type:"text"}]},hP=/(\/)([a-zA-Z0-9_-]*)$/,pP=t=>{if(!t)return{command:null,isTriggerActive:!1,searchText:""};const e=t.match(hP);if(!e)return{command:null,isTriggerActive:!1,searchText:""};const n=e[2]||"",r=!n.includes(" ")&&e.index!==void 0;return{command:n||null,isTriggerActive:r,searchText:n}},mP=/@([a-zA-Z0-9._\-\/\\]*)$/,gP=t=>{if(!t)return{isTriggerActive:!1,searchText:"",tokenStart:null};const e=t.match(mP);if(!e||e.index===void 0)return{isTriggerActive:!1,searchText:"",tokenStart:null};const n=e[1]||"",r=e.index;return{isTriggerActive:!n.includes(" "),searchText:n,tokenStart:r}},yP=(t,e=80)=>{const[n,r]=v.useState(t);return v.useEffect(()=>{const s=window.setTimeout(()=>{r(t)},e);return()=>{window.clearTimeout(s)}},[t,e]),n},{Text:bP}=ut,vP=({visible:t,token:e})=>{const{t:n}=Xe();return t?l.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:e.colorPrimaryBg,borderRadius:e.borderRadius,zIndex:10,pointerEvents:"none"},children:l.jsxs(We,{direction:"vertical",align:"center",children:[l.jsx(zx,{style:{fontSize:32,color:e.colorPrimary}}),l.jsx(bP,{style:{color:e.colorPrimary,fontWeight:500},children:n("chat.input.dropImagesHere")})]})}):null},{Text:zp}=ut,SP=({images:t,token:e,allowImages:n,onPreview:r,onClear:s})=>{const{t:o}=Xe();return!n||t.length===0?null:l.jsx("div",{style:{marginBottom:e.marginSM,padding:`${e.paddingXXS}px ${e.paddingXS}px`,borderRadius:999,border:`1px solid ${e.colorBorderSecondary}`,background:e.colorFillSecondary},children:l.jsxs(Ce,{align:"center",wrap:"wrap",gap:e.marginXS,children:[l.jsx(zp,{type:"secondary",style:{fontSize:e.fontSizeSM,minWidth:"fit-content"},children:t.length>1?o("chat.input.imageCountPlural",{count:t.length}):o("chat.input.imageCountSingular",{count:t.length})}),t.slice(0,3).map(i=>l.jsx("div",{style:{position:"relative",width:32,height:32,borderRadius:999,overflow:"hidden",border:`1px solid ${e.colorBorderSecondary}`,cursor:"pointer"},onClick:()=>r(i),children:l.jsx("img",{src:i.preview,alt:i.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},i.id)),t.length>3&&l.jsx(zp,{type:"secondary",style:{fontSize:e.fontSizeSM},children:o("chat.input.moreImages",{count:t.length-3})}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{}),onClick:s,style:{marginLeft:"auto",minWidth:"auto",padding:"0 4px",height:24},title:o("chat.input.clearAllImages")})]})})},{TextArea:wP}=Ls,xP=({value:t,placeholder:e,disabled:n,token:r,highlightSegments:s,textAreaRef:o,highlightOverlayRef:i,onChange:a,onKeyDown:c,onPaste:d,onScrollSync:f})=>{const p=es(),y=t.length>0&&s.some(M=>M.type!=="text"),m=p?16:r.fontSize,w="6px 4px",b=1.65,_=n?r.colorTextDisabled:r.colorText;return l.jsxs("div",{style:{position:"relative",flex:1},children:[y?l.jsxs("div",{ref:i,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,padding:w,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflow:"hidden",pointerEvents:"none",color:"transparent",fontSize:m,lineHeight:b,fontFamily:"inherit",fontWeight:400,letterSpacing:"normal",transform:"translate(0, 0)",zIndex:0},children:[s.map((M,C)=>{let T;return M.type==="workflow"?T={backgroundColor:r.colorPrimaryBg,color:"transparent",WebkitTextFillColor:"transparent",fontWeight:400,textDecoration:"underline",textDecorationStyle:"dotted",textDecorationColor:r.colorPrimary}:M.type==="file"&&(T={backgroundColor:r.colorSuccessBg,color:"transparent",WebkitTextFillColor:"transparent"}),l.jsx("span",{style:T,children:M.text},`segment-${C}`)}),t.endsWith(`
39
39
  `)?`
40
- `:null]}):null,l.jsx(yP,{"data-testid":"chat-input",ref:o,value:t,onChange:M=>a(M.target.value),onKeyDown:c,onPaste:d,placeholder:e,disabled:n,autoSize:{minRows:p?1:3,maxRows:p?6:8},variant:"borderless",onScroll:f,className:"lotus-message-input-field",style:{resize:"none",flex:1,fontSize:m,padding:w,lineHeight:y,border:"none",outline:"none",background:"transparent",color:_,WebkitTextFillColor:_,caretColor:_,position:"relative",zIndex:1,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflowY:"auto"}})]})},vP=({allowImages:t,disabled:e,isInputLocked:n,token:r,fileInputRef:s,onFileInputChange:o,onFileReferenceButtonClick:i,extraControl:a})=>{const{t:c}=Xe();return l.jsxs(Ce,{align:"center",style:{minWidth:0,gap:0},children:[t&&l.jsxs(l.Fragment,{children:[l.jsx("input",{ref:s,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:o}),l.jsx(Ae,{type:"text",icon:l.jsx(nf,{}),onClick:()=>{var d;return(d=s.current)==null?void 0:d.click()},disabled:e||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")})]}),i&&l.jsx(Ae,{type:"text",icon:l.jsx(Bl,{}),onClick:i,disabled:e||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")}),a]})},SP=({allowRetry:t,hasMessages:e,isInputLocked:n,canCancel:r,disabled:s,onRetry:o,onCancel:i,onSubmit:a,value:c,images:d,isOverCharLimit:f,token:p,statusIndicator:b,submitButtonLabel:m})=>{const{t:w}=Xe(),y=!c.trim()&&d.length===0,_=r??n,M=n,C=n||s||!o,T=m??w("chat.actions.sendMessage");return l.jsxs(Ce,{align:"center",style:{flex:"0 0 auto",gap:p.marginXS},children:[b?l.jsx("span",{style:{flex:"0 0 auto"},children:b}):null,t&&e&&l.jsx(mo,{trigger:["click"],menu:{items:[{key:"regenerate",label:w("chat.actions.regenerate"),icon:l.jsx(rf,{})},{key:"error_retry",label:w("chat.actions.retryFailed"),icon:l.jsx($y,{})}],onClick:({key:k})=>o==null?void 0:o(k)},disabled:C,children:l.jsx(Ae,{"data-testid":"regenerate-button",type:"text",icon:l.jsx(mc,{spin:M}),disabled:C,title:w("chat.actions.retryOptions"),"aria-label":w("chat.actions.retryOptions"),size:"small",className:"lotus-secondary-button",style:{minWidth:38,padding:"0 8px",height:38,width:38,borderRadius:19,color:p.colorTextSecondary}})}),l.jsx(Ae,{"data-testid":_?"cancel-button":"send-button",type:"primary",icon:_?l.jsx(Dx,{}):l.jsx(Fx,{}),onClick:_?i:a,loading:_&&!i,disabled:_?!i||s:n||y||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:_?w("chat.actions.cancelRequest"):T,"aria-label":_?w("chat.actions.cancelRequest"):T})]})},{Text:zp}=ut,wP=({charCount:t,maxCharCount:e,isOverCharLimit:n,isNearCharLimit:r,isProcessingAttachments:s,token:o})=>{const{t:i}=Xe(),a=typeof e=="number"&&Number.isFinite(e)&&e>0;return!s&&!r&&!n?null:l.jsxs(l.Fragment,{children:[a&&l.jsx(Ce,{justify:"flex-end",style:{marginTop:o.marginXXS},children:l.jsxs(zp,{type:n?"danger":r?"warning":"secondary",style:{fontSize:o.fontSizeSM},children:[t.toLocaleString()," / ",e.toLocaleString()]})}),s&&l.jsxs(We,{size:"small",style:{marginTop:o.marginXS},children:[l.jsx(bo,{size:"small"}),l.jsx(zp,{type:"secondary",children:i("chat.input.processingFiles")})]})]})},xP=({onFiles:t,mode:e="images"})=>{const[n,r]=v.useState(!1),s=v.useCallback(a=>{var d,f;a.preventDefault(),a.stopPropagation(),(e==="images"?rP(a.dataTransfer):((f=(d=a.dataTransfer)==null?void 0:d.files)==null?void 0:f.length)>0)&&r(!0)},[e]),o=v.useCallback(a=>{a.preventDefault(),a.stopPropagation(),r(!1)},[]),i=v.useCallback(a=>{if(a.preventDefault(),a.stopPropagation(),r(!1),e==="images"){const d=sP(a.dataTransfer);d.length>0&&t(d);return}const c=Array.from(a.dataTransfer.files||[]);c.length>0&&t(c)},[e,t]);return{isDragOver:n,handleDragOver:s,handleDragLeave:o,handleDrop:i}},_P=t=>{const{message:e}=En.useApp(),[n,r]=v.useState([]),[s,o]=v.useState(!1),[i,a]=v.useState(0),c=v.useCallback(async b=>{if(t)try{const m=await eP(b);m.length>0&&(r(w=>[...w,...m]),e.success(`Added ${m.length} image(s)`))}catch(m){e.error(`Failed to process images: ${m}`)}},[t,e]),d=v.useCallback(b=>{const m=n.find(w=>w.id===b);m&&Fp([m]),r(w=>w.filter(y=>y.id!==b))},[n]),f=v.useCallback(b=>{const m=n.findIndex(w=>w.id===b.id);a(m>=0?m:0),o(!0)},[n]),p=v.useCallback(()=>{Fp(n),r([])},[n]);return{images:n,setImages:r,previewModalVisible:s,setPreviewModalVisible:o,previewImageIndex:i,handleImageFiles:c,handleRemoveImage:d,handleImagePreview:f,clearImages:p}},CP=({onImages:t,onAttachments:e,allowImages:n})=>({handlePaste:v.useCallback(s=>{if(!s.clipboardData)return;const o=Array.from(s.clipboardData.items),i=[],a=[];o.forEach(c=>{if(c.kind==="file"){const d=c.getAsFile();if(!d)return;d.type.startsWith("image/")?i.push(d):a.push(d)}}),i.length>0&&n&&(s.preventDefault(),t(i)),a.length>0&&e&&(s.preventDefault(),e(a))},[n,t,e])}),cn=[];for(let t=0;t<256;++t)cn.push((t+256).toString(16).slice(1));function kP(t,e=0){return(cn[t[e+0]]+cn[t[e+1]]+cn[t[e+2]]+cn[t[e+3]]+"-"+cn[t[e+4]]+cn[t[e+5]]+"-"+cn[t[e+6]]+cn[t[e+7]]+"-"+cn[t[e+8]]+cn[t[e+9]]+"-"+cn[t[e+10]]+cn[t[e+11]]+cn[t[e+12]]+cn[t[e+13]]+cn[t[e+14]]+cn[t[e+15]]).toLowerCase()}const TP=new Uint8Array(16);function EP(){return crypto.getRandomValues(TP)}function Bp(t,e,n){return crypto.randomUUID?crypto.randomUUID():PP(t)}function PP(t,e,n){var s;t=t||{};const r=t.random??((s=t.rng)==null?void 0:s.call(t))??EP();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,kP(r)}const MP=["text/","application/json","application/xml"],AP=[".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"],RP=200*1024,ev=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(2)} MB`,Wp=t=>{const e=t.toLowerCase();return AP.some(n=>e.endsWith(n))},jP=t=>!t.type&&Wp(t.name)?!0:MP.some(e=>t.type.startsWith(e))||Wp(t.name),IP=t=>new Promise((e,n)=>{const r=new FileReader;r.onerror=()=>n(r.error),r.onload=()=>e(r.result),r.readAsText(t)}),Up=async(t,e)=>{const n=RP,r=[],s=[];for(const o of t)try{if(jP(o)&&o.size<=n){const i=await IP(o);r.push({id:Bp(),file:o,name:o.name,size:o.size,type:o.type||"text/plain",kind:"text",content:i,preview:i.length>400?`${i.slice(0,400)}…`:i,lastModified:o.lastModified})}else r.push({id:Bp(),file:o,name:o.name,size:o.size,type:o.type||"application/octet-stream",kind:"binary",preview:`(${ev(o.size)}) Preview unavailable for this file type.`,lastModified:o.lastModified})}catch(i){console.error("[fileUtils] Failed to process file",o.name,i),s.push(`Failed to process ${o.name}: ${i.message}`)}return{processed:r,errors:s}},OP=t=>{const e=[],n=[];return t.forEach(r=>{r.type.startsWith("image/")?e.push(r):n.push(r)}),{images:e,others:n}},$P=t=>t.length===0?"":t.map(e=>{const n=`### File: ${e.name}`,r=`(_${ev(e.size)}_, ${e.type||"unknown"})`;return e.kind==="text"&&e.content?`${n}
40
+ `:null]}):null,l.jsx(wP,{"data-testid":"chat-input",ref:o,value:t,onChange:M=>a(M.target.value),onKeyDown:c,onPaste:d,placeholder:e,disabled:n,autoSize:{minRows:p?1:3,maxRows:p?6:8},variant:"borderless",onScroll:f,className:"lotus-message-input-field",style:{resize:"none",flex:1,fontSize:m,padding:w,lineHeight:b,border:"none",outline:"none",background:"transparent",color:_,WebkitTextFillColor:_,caretColor:_,position:"relative",zIndex:1,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflowY:"auto"}})]})},_P=({allowImages:t,disabled:e,isInputLocked:n,token:r,fileInputRef:s,onFileInputChange:o,onFileReferenceButtonClick:i,extraControl:a})=>{const{t:c}=Xe();return l.jsxs(Ce,{align:"center",style:{minWidth:0,gap:0},children:[t&&l.jsxs(l.Fragment,{children:[l.jsx("input",{ref:s,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:o}),l.jsx(Ae,{type:"text",icon:l.jsx(nf,{}),onClick:()=>{var d;return(d=s.current)==null?void 0:d.click()},disabled:e||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")})]}),i&&l.jsx(Ae,{type:"text",icon:l.jsx(Bl,{}),onClick:i,disabled:e||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")}),a]})},CP=({allowRetry:t,hasMessages:e,isInputLocked:n,canCancel:r,disabled:s,onRetry:o,onCancel:i,onSubmit:a,value:c,images:d,isOverCharLimit:f,token:p,statusIndicator:y,submitButtonLabel:m})=>{const{t:w}=Xe(),b=!c.trim()&&d.length===0,_=r??n,M=n,C=n||s||!o,T=m??w("chat.actions.sendMessage");return l.jsxs(Ce,{align:"center",style:{flex:"0 0 auto",gap:p.marginXS},children:[y?l.jsx("span",{style:{flex:"0 0 auto"},children:y}):null,t&&e&&l.jsx(mo,{trigger:["click"],menu:{items:[{key:"regenerate",label:w("chat.actions.regenerate"),icon:l.jsx(rf,{})},{key:"error_retry",label:w("chat.actions.retryFailed"),icon:l.jsx(Dy,{})}],onClick:({key:k})=>o==null?void 0:o(k)},disabled:C,children:l.jsx(Ae,{"data-testid":"regenerate-button",type:"text",icon:l.jsx(mc,{spin:M}),disabled:C,title:w("chat.actions.retryOptions"),"aria-label":w("chat.actions.retryOptions"),size:"small",className:"lotus-secondary-button",style:{minWidth:38,padding:"0 8px",height:38,width:38,borderRadius:19,color:p.colorTextSecondary}})}),l.jsx(Ae,{"data-testid":_?"cancel-button":"send-button",type:"primary",icon:_?l.jsx(Bx,{}):l.jsx(Wx,{}),onClick:_?i:a,loading:_&&!i,disabled:_?!i||s:n||b||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:_?w("chat.actions.cancelRequest"):T,"aria-label":_?w("chat.actions.cancelRequest"):T})]})},{Text:Bp}=ut,kP=({charCount:t,maxCharCount:e,isOverCharLimit:n,isNearCharLimit:r,isProcessingAttachments:s,token:o})=>{const{t:i}=Xe(),a=typeof e=="number"&&Number.isFinite(e)&&e>0;return!s&&!r&&!n?null:l.jsxs(l.Fragment,{children:[a&&l.jsx(Ce,{justify:"flex-end",style:{marginTop:o.marginXXS},children:l.jsxs(Bp,{type:n?"danger":r?"warning":"secondary",style:{fontSize:o.fontSizeSM},children:[t.toLocaleString()," / ",e.toLocaleString()]})}),s&&l.jsxs(We,{size:"small",style:{marginTop:o.marginXS},children:[l.jsx(bo,{size:"small"}),l.jsx(Bp,{type:"secondary",children:i("chat.input.processingFiles")})]})]})},TP=({onFiles:t,mode:e="images"})=>{const[n,r]=v.useState(!1),s=v.useCallback(a=>{var d,f;a.preventDefault(),a.stopPropagation(),(e==="images"?aP(a.dataTransfer):((f=(d=a.dataTransfer)==null?void 0:d.files)==null?void 0:f.length)>0)&&r(!0)},[e]),o=v.useCallback(a=>{a.preventDefault(),a.stopPropagation(),r(!1)},[]),i=v.useCallback(a=>{if(a.preventDefault(),a.stopPropagation(),r(!1),e==="images"){const d=lP(a.dataTransfer);d.length>0&&t(d);return}const c=Array.from(a.dataTransfer.files||[]);c.length>0&&t(c)},[e,t]);return{isDragOver:n,handleDragOver:s,handleDragLeave:o,handleDrop:i}},EP=t=>{const{message:e}=En.useApp(),[n,r]=v.useState([]),[s,o]=v.useState(!1),[i,a]=v.useState(0),c=v.useCallback(async y=>{if(t)try{const m=await sP(y);m.length>0&&(r(w=>[...w,...m]),e.success(`Added ${m.length} image(s)`))}catch(m){e.error(`Failed to process images: ${m}`)}},[t,e]),d=v.useCallback(y=>{const m=n.find(w=>w.id===y);m&&Np([m]),r(w=>w.filter(b=>b.id!==y))},[n]),f=v.useCallback(y=>{const m=n.findIndex(w=>w.id===y.id);a(m>=0?m:0),o(!0)},[n]),p=v.useCallback(()=>{Np(n),r([])},[n]);return{images:n,setImages:r,previewModalVisible:s,setPreviewModalVisible:o,previewImageIndex:i,handleImageFiles:c,handleRemoveImage:d,handleImagePreview:f,clearImages:p}},PP=({onImages:t,onAttachments:e,allowImages:n})=>({handlePaste:v.useCallback(s=>{if(!s.clipboardData)return;const o=Array.from(s.clipboardData.items),i=[],a=[];o.forEach(c=>{if(c.kind==="file"){const d=c.getAsFile();if(!d)return;d.type.startsWith("image/")?i.push(d):a.push(d)}}),i.length>0&&n&&(s.preventDefault(),t(i)),a.length>0&&e&&(s.preventDefault(),e(a))},[n,t,e])}),un=[];for(let t=0;t<256;++t)un.push((t+256).toString(16).slice(1));function MP(t,e=0){return(un[t[e+0]]+un[t[e+1]]+un[t[e+2]]+un[t[e+3]]+"-"+un[t[e+4]]+un[t[e+5]]+"-"+un[t[e+6]]+un[t[e+7]]+"-"+un[t[e+8]]+un[t[e+9]]+"-"+un[t[e+10]]+un[t[e+11]]+un[t[e+12]]+un[t[e+13]]+un[t[e+14]]+un[t[e+15]]).toLowerCase()}const AP=new Uint8Array(16);function RP(){return crypto.getRandomValues(AP)}function Wp(t,e,n){return crypto.randomUUID?crypto.randomUUID():jP(t)}function jP(t,e,n){var s;t=t||{};const r=t.random??((s=t.rng)==null?void 0:s.call(t))??RP();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,MP(r)}const IP=["text/","application/json","application/xml"],OP=[".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"],$P=200*1024,rv=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(2)} MB`,Up=t=>{const e=t.toLowerCase();return OP.some(n=>e.endsWith(n))},LP=t=>!t.type&&Up(t.name)?!0:IP.some(e=>t.type.startsWith(e))||Up(t.name),DP=t=>new Promise((e,n)=>{const r=new FileReader;r.onerror=()=>n(r.error),r.onload=()=>e(r.result),r.readAsText(t)}),Hp=async(t,e)=>{const n=$P,r=[],s=[];for(const o of t)try{if(LP(o)&&o.size<=n){const i=await DP(o);r.push({id:Wp(),file:o,name:o.name,size:o.size,type:o.type||"text/plain",kind:"text",content:i,preview:i.length>400?`${i.slice(0,400)}…`:i,lastModified:o.lastModified})}else r.push({id:Wp(),file:o,name:o.name,size:o.size,type:o.type||"application/octet-stream",kind:"binary",preview:`(${rv(o.size)}) Preview unavailable for this file type.`,lastModified:o.lastModified})}catch(i){console.error("[fileUtils] Failed to process file",o.name,i),s.push(`Failed to process ${o.name}: ${i.message}`)}return{processed:r,errors:s}},FP=t=>{const e=[],n=[];return t.forEach(r=>{r.type.startsWith("image/")?e.push(r):n.push(r)}),{images:e,others:n}},NP=t=>t.length===0?"":t.map(e=>{const n=`### File: ${e.name}`,r=`(_${rv(e.size)}_, ${e.type||"unknown"})`;return e.kind==="text"&&e.content?`${n}
41
41
  ${r}
42
42
 
43
43
  \`\`\`
@@ -47,7 +47,7 @@ ${r}
47
47
 
48
48
  > Preview unavailable for this file type.`}).join(`
49
49
 
50
- `),LP=({allowImages:t,onAttachmentsAdded:e,messageApi:n})=>{const[r,s]=v.useState(!1),{images:o,setImages:i,previewModalVisible:a,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:p,clearImages:b}=_P(t),m=v.useCallback(async k=>{if(!k||k.length===0)return;const{images:P,others:A}=OP(k);if(P.length>0&&await f(P),A.length>0&&e){s(!0);const{processed:j,errors:$}=await Up(A);j.length>0&&(e(j),n.success(Et.t("chat.input.filesAdded",{count:j.length}))),$.forEach(F=>n.error(F)),s(!1)}},[f,n,e]),{isDragOver:w,handleDragOver:y,handleDragLeave:_,handleDrop:M}=xP({onFiles:m,mode:"any"}),{handlePaste:C}=CP({onImages:f,onAttachments:e?async k=>{s(!0);const{processed:P,errors:A}=await Up(k);P.length>0&&(e(P),n.success(Et.t("chat.input.filesAttached",{count:P.length}))),A.forEach(j=>n.error(j)),s(!1)}:void 0,allowImages:t}),T=v.useCallback(k=>{const P=k.target.files;P&&P.length>0&&f(P),k.target.value=""},[f]);return{images:o,setImages:i,previewModalVisible:a,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:p,clearImages:b,isProcessingAttachments:r,isDragOver:w,handleDragOver:y,handleDragLeave:_,handleDrop:M,handlePaste:C,handleFileInputChange:T}},DP=({value:t,debouncedValue:e,onWorkflowCommandChange:n,onFileReferenceChange:r,onImagesChange:s,images:o,propImages:i,setImages:a,syncOverlayScroll:c})=>{v.useEffect(()=>{c()},[t,c]),v.useEffect(()=>{n&&n(uP(e))},[e,n]),v.useEffect(()=>{r&&r(fP(e))},[e,r]),v.useEffect(()=>{s&&s(o)},[o,s]),v.useEffect(()=>{i&&a(i)},[i,a])},FP=({value:t,images:e,isInputLocked:n,disabled:r,isWorkflowSelectorVisible:s,onChange:o,onSubmit:i,onRetry:a,onHistoryNavigate:c,validateMessage:d,isOverCharLimit:f,maxCharCount:p,messageApi:b,clearImages:m,textAreaRef:w})=>{const y=v.useCallback(()=>{const C=t.trim();if(!(!C&&e.length===0||n||r)){if(f){const T=typeof p=="number"?p.toLocaleString():"configured";b.error(Et.t("chat.input.charLimitExceeded",{max:T}));return}if(d){const T=d(C);if(!T.isValid){b.error(T.errorMessage||Et.t("chat.input.messageFormatInvalid"));return}}i(C,e.length>0?e:void 0),m()}},[m,r,e,f,n,p,b,i,d,t]),_=v.useCallback(C=>{if(c&&!r&&!n&&!C.shiftKey&&(C.key==="ArrowUp"||C.key==="ArrowDown")){const T=C.key==="ArrowUp"?"previous":"next",k=c(T,t);if(k!=null){C.preventDefault(),o(k),requestAnimationFrame(()=>{var A,j;const P=((j=(A=w.current)==null?void 0:A.resizableTextArea)==null?void 0:j.textArea)||null;if(P){const $=k.length;P.setSelectionRange($,$)}});return}}C.key==="Enter"&&!C.shiftKey&&!n&&!r&&!s&&(C.preventDefault(),y())},[r,y,n,s,o,c,w,t]),M=v.useCallback((C="regenerate")=>{n||r||!a||a(C)},[r,n,a]);return{handleKeyDown:_,handleSubmit:y,handleRetry:M}},NP=st.memo(({value:t,onChange:e,onSubmit:n,interaction:r,placeholder:s,disabled:o=!1,images:i,onImagesChange:a,allowImages:c=!0,isWorkflowSelectorVisible:d=!1,textAreaRef:f,statusIndicator:p,validateMessage:b,onAttachmentsAdded:m,onWorkflowCommandChange:w,onFileReferenceChange:y,onFileReferenceButtonClick:_,maxCharCount:M,leftControlsExtra:C,submitButtonLabel:T})=>{const{t:k}=Xe(),{isStreaming:P,isInputLocked:A=P,canCancel:j,hasMessages:$,allowRetry:F=!0,onRetry:X,onCancel:K,onHistoryNavigate:O}=r,W=v.useRef(null),ae=v.useRef(null),Y=f||ae,ce=v.useRef(null),{token:L}=lt.useToken(),oe=Zr(),Se=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",[J,te]=Nx.useMessage(),he=t.length,de=typeof M=="number"&&Number.isFinite(M)&&M>0,me=de?he>M:!1,ge=de?!me&&he>=M*.9:!1,{images:le,setImages:ke,previewModalVisible:je,setPreviewModalVisible:fe,previewImageIndex:ne,handleImagePreview:Q,clearImages:ie,isProcessingAttachments:ye,isDragOver:$e,handleDragOver:qe,handleDragLeave:Ue,handleDrop:rt,handlePaste:ht,handleFileInputChange:Ct}=LP({allowImages:c,onAttachmentsAdded:m,messageApi:J}),vt=hP(t,80),Ve=v.useMemo(()=>lP(t),[t]),Ht=v.useCallback(()=>{var be,Be;const Tt=(Be=(be=Y.current)==null?void 0:be.resizableTextArea)==null?void 0:Be.textArea;if(!Tt||!ce.current)return;const xn=Tt.scrollTop,an=Tt.scrollLeft;ce.current.style.transform=`translate(${-an}px, ${-xn}px)`},[Y]);DP({value:t,debouncedValue:vt,onWorkflowCommandChange:w,onFileReferenceChange:y,onImagesChange:a,images:le,propImages:i,setImages:ke,syncOverlayScroll:Ht});const{handleKeyDown:ct,handleSubmit:pt,handleRetry:on}=FP({value:t,images:le,isInputLocked:A,disabled:o,isWorkflowSelectorVisible:d,onChange:e,onSubmit:n,onRetry:X,onHistoryNavigate:O,validateMessage:b,isOverCharLimit:me,maxCharCount:M,messageApi:J,clearImages:ie,textAreaRef:Y}),Nt=s??k("chat.input.placeholder");return l.jsxs(l.Fragment,{children:[te,l.jsxs("div",{className:`message-input-container lotus-message-input-shell ${$e?"is-drag-over":""}`,role:"group","aria-label":k("chat.input.messageComposer","Message composer"),style:{position:"relative",border:`1px solid ${$e?"var(--lotus-input-border-active)":"var(--lotus-input-border)"}`,borderRadius:26,background:$e?"var(--lotus-input-bg-active)":"var(--lotus-input-bg)",backdropFilter:Se?"none":"blur(18px)",WebkitBackdropFilter:Se?"none":"blur(18px)",boxShadow:"var(--lotus-input-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",width:"100%",padding:oe?`${L.paddingXS}px`:`${L.paddingSM}px`,overflow:"hidden"},onDragOver:qe,onDragLeave:Ue,onDrop:rt,children:[l.jsx(gP,{images:le,token:L,allowImages:c,onPreview:Q,onClear:ie}),l.jsx(mP,{visible:$e,token:L}),l.jsxs(Ce,{vertical:!0,style:{gap:L.marginXS,minHeight:oe?0:132,width:"100%"},children:[l.jsx(bP,{value:t,placeholder:Nt,disabled:o,token:L,highlightSegments:Ve,textAreaRef:Y,highlightOverlayRef:ce,onChange:e,onKeyDown:ct,onPaste:ht,onScrollSync:Ht}),l.jsxs(Ce,{align:"center",justify:"space-between",gap:L.marginSM,wrap:"wrap",style:{rowGap:L.marginXS},children:[l.jsx(Ce,{align:"center",gap:L.marginXS,wrap:"wrap",style:{minWidth:0,flex:"1 1 260px"},children:l.jsx(vP,{allowImages:c,disabled:o,isInputLocked:A,token:L,fileInputRef:W,onFileInputChange:Ct,onFileReferenceButtonClick:_,extraControl:C})}),l.jsx(SP,{allowRetry:F,hasMessages:$,isStreaming:P,isInputLocked:A,canCancel:j,disabled:o,onRetry:on,onCancel:K,onSubmit:pt,value:t,images:le,isOverCharLimit:me,token:L,statusIndicator:p,submitButtonLabel:T})]})]})]}),l.jsx(wP,{charCount:he,maxCharCount:M,isOverCharLimit:me,isNearCharLimit:ge,isProcessingAttachments:ye,token:L}),c&&l.jsx(aP,{visible:je,images:le,currentIndex:ne,onClose:()=>fe(!1)})]})}),{Text:Hp}=ut,{useToken:zP}=lt,BP=({text:t,onClose:e})=>{const{token:n}=zP(),{t:r}=Xe(),o=(t.length>150?t.substring(0,147)+"...":t).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(We,{style:{width:"100%",justifyContent:"space-between",alignItems:"flex-start"},children:[l.jsxs("div",{style:{flex:1},children:[l.jsx(Hp,{style:{fontSize:n.fontSizeSM,color:n.colorPrimary},children:r("chat.input.referencing")}),l.jsx(Hp,{style:{fontSize:n.fontSizeSM,color:n.colorTextSecondary,marginLeft:n.marginSM},ellipsis:!0,children:o})]}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{}),onClick:e,style:{marginLeft:n.marginXS,color:n.colorTextSecondary,borderRadius:999}})]})})},tv="mermaid_enhancement_enabled",WP=()=>localStorage.getItem(tv)!=="false",wF=t=>{localStorage.setItem(tv,t.toString())},UP=()=>`
50
+ `),zP=({allowImages:t,onAttachmentsAdded:e,messageApi:n})=>{const[r,s]=v.useState(!1),{images:o,setImages:i,previewModalVisible:a,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:p,clearImages:y}=EP(t),m=v.useCallback(async k=>{if(!k||k.length===0)return;const{images:P,others:A}=FP(k);if(P.length>0&&await f(P),A.length>0&&e){s(!0);const{processed:j,errors:$}=await Hp(A);j.length>0&&(e(j),n.success(Et.t("chat.input.filesAdded",{count:j.length}))),$.forEach(F=>n.error(F)),s(!1)}},[f,n,e]),{isDragOver:w,handleDragOver:b,handleDragLeave:_,handleDrop:M}=TP({onFiles:m,mode:"any"}),{handlePaste:C}=PP({onImages:f,onAttachments:e?async k=>{s(!0);const{processed:P,errors:A}=await Hp(k);P.length>0&&(e(P),n.success(Et.t("chat.input.filesAttached",{count:P.length}))),A.forEach(j=>n.error(j)),s(!1)}:void 0,allowImages:t}),T=v.useCallback(k=>{const P=k.target.files;P&&P.length>0&&f(P),k.target.value=""},[f]);return{images:o,setImages:i,previewModalVisible:a,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:f,handleImagePreview:p,clearImages:y,isProcessingAttachments:r,isDragOver:w,handleDragOver:b,handleDragLeave:_,handleDrop:M,handlePaste:C,handleFileInputChange:T}},BP=({value:t,debouncedValue:e,onWorkflowCommandChange:n,onFileReferenceChange:r,onImagesChange:s,images:o,propImages:i,setImages:a,syncOverlayScroll:c})=>{v.useEffect(()=>{c()},[t,c]),v.useEffect(()=>{n&&n(pP(e))},[e,n]),v.useEffect(()=>{r&&r(gP(e))},[e,r]),v.useEffect(()=>{s&&s(o)},[o,s]),v.useEffect(()=>{i&&a(i)},[i,a])},WP=({value:t,images:e,isInputLocked:n,disabled:r,isWorkflowSelectorVisible:s,onChange:o,onSubmit:i,onRetry:a,onHistoryNavigate:c,validateMessage:d,isOverCharLimit:f,maxCharCount:p,messageApi:y,clearImages:m,textAreaRef:w})=>{const b=v.useCallback(()=>{const C=t.trim();if(!(!C&&e.length===0||n||r)){if(f){const T=typeof p=="number"?p.toLocaleString():"configured";y.error(Et.t("chat.input.charLimitExceeded",{max:T}));return}if(d){const T=d(C);if(!T.isValid){y.error(T.errorMessage||Et.t("chat.input.messageFormatInvalid"));return}}i(C,e.length>0?e:void 0),m()}},[m,r,e,f,n,p,y,i,d,t]),_=v.useCallback(C=>{if(c&&!r&&!n&&!C.shiftKey&&(C.key==="ArrowUp"||C.key==="ArrowDown")){const T=C.key==="ArrowUp"?"previous":"next",k=c(T,t);if(k!=null){C.preventDefault(),o(k),requestAnimationFrame(()=>{var A,j;const P=((j=(A=w.current)==null?void 0:A.resizableTextArea)==null?void 0:j.textArea)||null;if(P){const $=k.length;P.setSelectionRange($,$)}});return}}C.key==="Enter"&&!C.shiftKey&&!n&&!r&&!s&&(C.preventDefault(),b())},[r,b,n,s,o,c,w,t]),M=v.useCallback((C="regenerate")=>{n||r||!a||a(C)},[r,n,a]);return{handleKeyDown:_,handleSubmit:b,handleRetry:M}},UP=st.memo(({value:t,onChange:e,onSubmit:n,interaction:r,placeholder:s,disabled:o=!1,images:i,onImagesChange:a,allowImages:c=!0,isWorkflowSelectorVisible:d=!1,textAreaRef:f,statusIndicator:p,validateMessage:y,onAttachmentsAdded:m,onWorkflowCommandChange:w,onFileReferenceChange:b,onFileReferenceButtonClick:_,maxCharCount:M,leftControlsExtra:C,submitButtonLabel:T})=>{const{t:k}=Xe(),{isStreaming:P,isInputLocked:A=P,canCancel:j,hasMessages:$,allowRetry:F=!0,onRetry:X,onCancel:K,onHistoryNavigate:O}=r,W=v.useRef(null),ae=v.useRef(null),Y=f||ae,ce=v.useRef(null),{token:L}=lt.useToken(),oe=es(),Se=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",[J,te]=Ux.useMessage(),he=t.length,de=typeof M=="number"&&Number.isFinite(M)&&M>0,me=de?he>M:!1,ge=de?!me&&he>=M*.9:!1,{images:le,setImages:ke,previewModalVisible:je,setPreviewModalVisible:fe,previewImageIndex:ne,handleImagePreview:Q,clearImages:ie,isProcessingAttachments:ye,isDragOver:$e,handleDragOver:qe,handleDragLeave:Ue,handleDrop:rt,handlePaste:ht,handleFileInputChange:Ct}=zP({allowImages:c,onAttachmentsAdded:m,messageApi:J}),vt=yP(t,80),Ve=v.useMemo(()=>fP(t),[t]),Ht=v.useCallback(()=>{var be,Be;const Tt=(Be=(be=Y.current)==null?void 0:be.resizableTextArea)==null?void 0:Be.textArea;if(!Tt||!ce.current)return;const xn=Tt.scrollTop,ln=Tt.scrollLeft;ce.current.style.transform=`translate(${-ln}px, ${-xn}px)`},[Y]);BP({value:t,debouncedValue:vt,onWorkflowCommandChange:w,onFileReferenceChange:b,onImagesChange:a,images:le,propImages:i,setImages:ke,syncOverlayScroll:Ht});const{handleKeyDown:ct,handleSubmit:pt,handleRetry:an}=WP({value:t,images:le,isInputLocked:A,disabled:o,isWorkflowSelectorVisible:d,onChange:e,onSubmit:n,onRetry:X,onHistoryNavigate:O,validateMessage:y,isOverCharLimit:me,maxCharCount:M,messageApi:J,clearImages:ie,textAreaRef:Y}),Nt=s??k("chat.input.placeholder");return l.jsxs(l.Fragment,{children:[te,l.jsxs("div",{className:`message-input-container lotus-message-input-shell ${$e?"is-drag-over":""}`,role:"group","aria-label":k("chat.input.messageComposer","Message composer"),style:{position:"relative",border:`1px solid ${$e?"var(--lotus-input-border-active)":"var(--lotus-input-border)"}`,borderRadius:26,background:$e?"var(--lotus-input-bg-active)":"var(--lotus-input-bg)",backdropFilter:Se?"none":"blur(18px)",WebkitBackdropFilter:Se?"none":"blur(18px)",boxShadow:"var(--lotus-input-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",width:"100%",padding:oe?`${L.paddingXS}px`:`${L.paddingSM}px`,overflow:"hidden"},onDragOver:qe,onDragLeave:Ue,onDrop:rt,children:[l.jsx(SP,{images:le,token:L,allowImages:c,onPreview:Q,onClear:ie}),l.jsx(vP,{visible:$e,token:L}),l.jsxs(Ce,{vertical:!0,style:{gap:L.marginXS,minHeight:oe?0:132,width:"100%"},children:[l.jsx(xP,{value:t,placeholder:Nt,disabled:o,token:L,highlightSegments:Ve,textAreaRef:Y,highlightOverlayRef:ce,onChange:e,onKeyDown:ct,onPaste:ht,onScrollSync:Ht}),l.jsxs(Ce,{align:"center",justify:"space-between",gap:L.marginSM,wrap:"wrap",style:{rowGap:L.marginXS},children:[l.jsx(Ce,{align:"center",gap:L.marginXS,wrap:"wrap",style:{minWidth:0,flex:"1 1 260px"},children:l.jsx(_P,{allowImages:c,disabled:o,isInputLocked:A,token:L,fileInputRef:W,onFileInputChange:Ct,onFileReferenceButtonClick:_,extraControl:C})}),l.jsx(CP,{allowRetry:F,hasMessages:$,isStreaming:P,isInputLocked:A,canCancel:j,disabled:o,onRetry:an,onCancel:K,onSubmit:pt,value:t,images:le,isOverCharLimit:me,token:L,statusIndicator:p,submitButtonLabel:T})]})]})]}),l.jsx(kP,{charCount:he,maxCharCount:M,isOverCharLimit:me,isNearCharLimit:ge,isProcessingAttachments:ye,token:L}),c&&l.jsx(dP,{visible:je,images:le,currentIndex:ne,onClose:()=>fe(!1)})]})}),{Text:qp}=ut,{useToken:HP}=lt,qP=({text:t,onClose:e})=>{const{token:n}=HP(),{t:r}=Xe(),o=(t.length>150?t.substring(0,147)+"...":t).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(We,{style:{width:"100%",justifyContent:"space-between",alignItems:"flex-start"},children:[l.jsxs("div",{style:{flex:1},children:[l.jsx(qp,{style:{fontSize:n.fontSizeSM,color:n.colorPrimary},children:r("chat.input.referencing")}),l.jsx(qp,{style:{fontSize:n.fontSizeSM,color:n.colorTextSecondary,marginLeft:n.marginSM},ellipsis:!0,children:o})]}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{}),onClick:e,style:{marginLeft:n.marginXS,color:n.colorTextSecondary,borderRadius:999}})]})})},sv="mermaid_enhancement_enabled",KP=()=>localStorage.getItem(sv)!=="false",EF=t=>{localStorage.setItem(sv,t.toString())},XP=()=>`
51
51
 
52
52
  ## 📊 Visual Representation Guidelines
53
53
 
@@ -72,7 +72,7 @@ When explaining concepts, processes, relationships, or data structures, use Merm
72
72
  - Keep participant names simple (no spaces): \`participant UserService\`
73
73
  - Arrow syntax: \`-->\` (solid), \`-.->\` (dotted), \`==>\` (thick), \`-->|label|\` (labeled)
74
74
 
75
- Include relevant diagrams when discussing architecture, workflows, data flow, or relationships.`,Ed="task_enhancement_enabled",qp="todo_enhancement_enabled",HP=t=>t==="false",qP=()=>{let t=localStorage.getItem(Ed);if(t===null){const e=localStorage.getItem(qp);e!==null&&(t=e,localStorage.setItem(Ed,e),localStorage.removeItem(qp))}return!HP(t)},xF=t=>{localStorage.setItem(Ed,t.toString())},KP=()=>`
75
+ Include relevant diagrams when discussing architecture, workflows, data flow, or relationships.`,Ed="task_enhancement_enabled",Kp="todo_enhancement_enabled",YP=t=>t==="false",VP=()=>{let t=localStorage.getItem(Ed);if(t===null){const e=localStorage.getItem(Kp);e!==null&&(t=e,localStorage.setItem(Ed,e),localStorage.removeItem(Kp))}return!YP(t)},PF=t=>{localStorage.setItem(Ed,t.toString())},GP=()=>`
76
76
 
77
77
  ## Task Management Rules
78
78
 
@@ -84,9 +84,9 @@ When marking a task as completed, always fill in the \`summary\` field with a co
84
84
  Do not use Markdown checkbox lists as a substitute for Task.
85
85
  Skip Task only for simple one-step requests.
86
86
  Use SubAgent only when the user explicitly requests delegated/parallel sub-agent work.
87
- `,nv=()=>{if(typeof window<"u"&&"__TAURI__"in window){const t=(navigator.platform??"").toLowerCase();if(t.startsWith("win"))return"windows";if(t.startsWith("mac"))return"macos";if(t.startsWith("linux"))return"linux"}if(typeof navigator<"u"){const t=(navigator.userAgent??"").toLowerCase();if(t.includes("windows"))return"windows";if(t.includes("mac"))return"macos";if(t.includes("linux"))return"linux"}return"unknown"},XP=t=>{switch(t){case"windows":return"Windows";case"macos":return"macOS";case"linux":return"Linux";default:return"Unknown OS"}},YP=()=>{const t=nv(),n=`## 🖥️ Operating System Information
87
+ `,ov=()=>{if(typeof window<"u"&&"__TAURI__"in window){const t=(navigator.platform??"").toLowerCase();if(t.startsWith("win"))return"windows";if(t.startsWith("mac"))return"macos";if(t.startsWith("linux"))return"linux"}if(typeof navigator<"u"){const t=(navigator.userAgent??"").toLowerCase();if(t.includes("windows"))return"windows";if(t.includes("mac"))return"macos";if(t.includes("linux"))return"linux"}return"unknown"},JP=t=>{switch(t){case"windows":return"Windows";case"macos":return"macOS";case"linux":return"Linux";default:return"Unknown OS"}},QP=()=>{const t=ov(),n=`## 🖥️ Operating System Information
88
88
 
89
- You are running on **${XP(t)}**.`;return t==="windows"?n+`
89
+ You are running on **${JP(t)}**.`;return t==="windows"?n+`
90
90
 
91
91
  ### Windows-Specific Notes:
92
92
 
@@ -117,12 +117,12 @@ You are running on **${XP(t)}**.`;return t==="windows"?n+`
117
117
 
118
118
  - **File Paths**: Linux uses Unix-style paths with forward slashes (/)
119
119
  - **Home Directory**: The tilde (~) expands to /home/[username]
120
- - **Case Sensitivity**: Linux file systems are case-sensitive (File.txt and file.txt are different files)`:n},rv="copilot_conclusion_with_options_enhancement_enabled",sv=()=>localStorage.getItem(rv)==="true",_F=t=>{try{localStorage.setItem(rv,t.toString())}catch(e){console.error("[copilotConclusionWithOptionsEnhancement] Failed to persist setting:",e)}},VP=()=>"\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",CF=()=>["When this is enabled for Copilot sessions, the assistant must finish by asking for confirmation with the conclusion_with_options tool instead of ending with plain assistant text.","If the assistant tries to finish without calling conclusion_with_options, Bamboo stops the completion and returns a completion policy violation error.","Use this when you want enforced end-of-turn confirmation for Copilot sessions."].join(" "),ov="bamboo_system_prompt_enhancement",GP=()=>["## 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
- `),JP=t=>t.map(n=>n.trim()).filter(n=>n.length>0).join(`
120
+ - **Case Sensitivity**: Linux file systems are case-sensitive (File.txt and file.txt are different files)`:n},iv="copilot_conclusion_with_options_enhancement_enabled",av=()=>localStorage.getItem(iv)==="true",MF=t=>{try{localStorage.setItem(iv,t.toString())}catch(e){console.error("[copilotConclusionWithOptionsEnhancement] Failed to persist setting:",e)}},ZP=()=>"\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",AF=()=>["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(" "),lv="bamboo_system_prompt_enhancement",eM=()=>["## 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
+ `),tM=t=>t.map(n=>n.trim()).filter(n=>n.length>0).join(`
122
122
 
123
- `),QP=()=>{try{return localStorage.getItem(ov)??""}catch(t){return console.error("Failed to load system prompt enhancement:",t),""}},kF=t=>{try{const e=t.trim()?t:"";localStorage.setItem(ov,e)}catch(e){console.error("Failed to save system prompt enhancement:",e)}},ZP=t=>{const e=[];e.push(YP().trim()),e.push(GP().trim());const n=QP().trim();return n&&e.push(n),WP()&&e.push(UP().trim()),qP()&&e.push(KP().trim()),(t??"").trim().toLowerCase()==="copilot"&&sv()&&e.push(VP().trim()),e},eM=t=>JP(ZP(t));function Lf(t){const e=yt(s=>s.providerConfig),n=G(Cr(t??null));return v.useMemo(()=>{var c,d,f,p,b,m,w;const s=t?(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 i=t?(p=(f=n==null?void 0:n.config)==null?void 0:f.model)==null?void 0:p.trim():void 0;return i&&i!=="unknown"?i:((w=(m=(b=e.defaults)==null?void 0:b.chat)==null?void 0:m.model)==null?void 0:w.trim())||void 0},[n,e,t])}function tM(t){const e=Lf(t),n=yt(r=>r.providerConfig);return v.useMemo(()=>{var s,o,i;return((i=(o=(s=n.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||e},[n,e])}function iv(t){const e=yt(s=>s.isProviderModelRefEnabled),n=yt(s=>s.selectedModelRef),r=yt(s=>s.providerConfig.defaults);return v.useMemo(()=>{var s,o;return e()?t||n||((o=(s=r==null?void 0:r.chat)==null?void 0:s.model)!=null&&o.trim()?r.chat:null):null},[t,n,r,e])}function nM(){const t=yt(e=>e.getFastModelRef);return v.useMemo(()=>t(),[t])}const Su=(t,e,n,r,s)=>n?t.execute(e,void 0,n,r,s):t.execute(e,void 0,void 0,r,s);function rM(t){var Se;const{sessionId:e,addMessage:n,updateSession:r}=t,{modal:s,message:o}=En.useApp(),{t:i}=Xe(),a=v.useRef(null),c=v.useRef(null),d=v.useRef(""),f=v.useRef(new Pn),p=G(J=>J.agentAvailability),b=G(J=>J.setAgentAvailability),m=G(J=>J.checkAgentAvailability),w=G(J=>J.startAgentHealthCheck),y=G(J=>J.markOptimisticStart),_=G(J=>J.markRetryStart),M=G(J=>J.markSettleTimeout),C=G(J=>J.resetSession),T=G(J=>J.applyExecutionStarted),k=Lf(e),P=yt(J=>J.currentProvider),j=yt(J=>J.getProviderType)(P),$=G(J=>e&&J.chats.find(te=>te.id===e)||null),F=iv((Se=$==null?void 0:$.config)==null?void 0:Se.model_ref);v.useEffect(()=>{w()},[w]);const X=v.useCallback(()=>{var te;(te=a.current)==null||te.abort();const J=$==null?void 0:$.id;J&&f.current.stopGeneration(J).catch(he=>{console.error("[useMessageStreaming] Failed to stop generation:",he)})},[$==null?void 0:$.id]),K=v.useCallback(J=>{var ne;const te=G.getState(),de=(Array.isArray(te.chats)?te.chats:[]).find(Q=>Q.id===J),me=So(J)(te),ge=me?{sessionId:J,question:me.question,options:me.options,allowCustom:me.allowCustom,toolCallId:me.toolCallId}:null,le=(ne=de==null?void 0:de.config)==null?void 0:ne.syncCursor,ke=!!ge||!!(le!=null&&le.hasPendingQuestion),je=(ge==null?void 0:ge.toolCallId)??(le==null?void 0:le.pendingQuestionToolCallId)??null,fe={client_message_count:(le==null?void 0:le.messageCount)??(de==null?void 0:de.messageCount)??0,client_last_message_id:(le==null?void 0:le.lastMessageId)??null,client_has_pending_question:ke,client_pending_question_tool_call_id:je};return pe("[Streaming]","buildClientSync",{sessionId:J,generation:Mt(J)(te),syncCursor:le??null,messageCount:(de==null?void 0:de.messageCount)??null,respondMode:ge?{toolCallId:ge.toolCallId??null,question:ge.question}:null,clientSync:fe}),fe},[]),O=v.useCallback((J,te)=>{const he=te.sync;if(!he)return;const de=G.getState(),ge=(Array.isArray(de.chats)?de.chats:[]).find(le=>le.id===J);ge&&(pe("[Streaming]","applyExecuteSyncSnapshot",{sessionId:J,generation:Mt(J)(G.getState()),runId:te.run_id??null,sync:he}),r(J,{messageCount:he.server_message_count,config:{...ge.config||{},syncCursor:{messageCount:he.server_message_count,lastMessageId:he.server_last_message_id??null,hasPendingQuestion:he.has_pending_question,pendingQuestionToolCallId:he.pending_question_tool_call_id??null}}}))},[r]),W=v.useCallback(async J=>{try{return await Je.get(`respond/${J}/pending`)}catch(te){return console.warn(`[useMessageStreaming] Failed to fetch pending question for ${J}:`,te),{has_pending_question:!1}}},[]),ae=v.useCallback(async(J,te,he)=>{var je,fe;pe("[Streaming]","recoverAfterNeedSync.start",{sessionId:J,generation:Mt(J)(G.getState()),executeSync:te,reasoningEffort:he??null}),M(J),await G.getState().loadChatHistory(J,{mode:"replace"});const de=await W(J),me=G.getState().setPendingQuestion,ge=G.getState().clearPendingQuestion;if(de.has_pending_question){pe("[Streaming]","recoverAfterNeedSync.pendingQuestion",{sessionId:J,generation:Mt(J)(G.getState()),pending:de}),me(J,{question:de.question||"",options:de.options||[],allowCustom:de.allow_custom??!0,toolCallId:de.tool_call_id??null});const ne=G.getState().chats.find(Q=>Q.id===J);return ne&&r(J,{config:{...ne.config||{},syncCursor:{messageCount:ne.messageCount??ne.messages.length,lastMessageId:((fe=(je=ne.config)==null?void 0:je.syncCursor)==null?void 0:fe.lastMessageId)??null,hasPendingQuestion:!0,pendingQuestionToolCallId:de.tool_call_id??null}}}),null}if(ge(J),!((te==null?void 0:te.has_pending_user_message)??!1))return pe("[Streaming]","recoverAfterNeedSync.noPendingUserMessage",{sessionId:J,generation:Mt(J)(G.getState()),executeSync:te}),null;pe("[Streaming]","recoverAfterNeedSync.retryExecute",{sessionId:J,generation:Mt(J)(G.getState()),executeSync:te}),y(J),await new Promise(ne=>setTimeout(ne,0));const ke=await Su(f.current,J,he,K(J),F??void 0);return pe("[Streaming]","recoverAfterNeedSync.retryExecute.result",{sessionId:J,generation:Mt(J)(G.getState()),status:ke.status,runId:ke.run_id??null,sync:ke.sync??null}),O(J,ke),ke},[F,O,K,W,y,M,r]),Y=v.useCallback(async(J,te,he)=>{var le,ke;let de=te;pe("[Streaming]","handleExecuteResult.start",{sessionId:J,generation:Mt(J)(G.getState()),status:de.status,runId:de.run_id??null,sync:de.sync??null}),O(J,de);const me=2;let ge=0;for(;(le=de.sync)!=null&&le.need_sync&&ge<me;){pe("[Streaming]","handleExecuteResult.needSync",{sessionId:J,generation:Mt(J)(G.getState()),syncRecoveries:ge,sync:de.sync});const je=await ae(J,de.sync,he);if(ge+=1,!je){M(J);return}de=je,O(J,de)}if((ke=de.sync)!=null&&ke.need_sync){console.warn(`[useMessageStreaming] Execute remains out-of-sync after ${me} recovery attempt(s) for session ${J}.`,de.sync),M(J);return}if(["started","already_running"].includes(de.status)){if(de.run_id){const je=Mt(J)(G.getState());T(J,de.run_id,je)}return}if(de.status==="completed"){pe("[Streaming]","[Agent] Session already completed"),M(J);return}throw console.error("[Agent] Execute failed:",de.status),M(J),new Error(`Execute failed: ${de.status}`)},[O,ae,M,T]),ce=v.useCallback(async(J,te,he,de,me)=>{var le,ke,je;if(!k)throw new Error(i("chat.model.noModelSelected"));const ge=new AbortController;a.current=ge;try{const fe=eM(j).trim(),ne=j==="copilot"&&sv(),ie=(((le=$==null?void 0:$.config)==null?void 0:le.workspacePath)||"").trim().replace(/\/+$/,"").replace(/\\+$/,"");pe("[Streaming]","sendWithAgent.start",{sessionId:te,generation:Mt(te)(G.getState()),userMessageId:he.id,contentLength:J.length,imageCount:((ke=he.images)==null?void 0:ke.length)??0,reasoningEffort:de??null,selectedSkillCount:(me==null?void 0:me.length)??0,workspacePath:ie||null,activeModel:k,activeModelRef:F??null});const ye=await f.current.sendMessage({message:J,session_id:te,enhance_prompt:fe||void 0,copilot_conclusion_with_options_enhancement_enabled:ne,workspace_path:ie||void 0,selected_skill_ids:me&&me.length>0?me:void 0,images:(je=he.images)==null?void 0:je.filter(Ue=>!!Ue.base64).map(Ue=>({base64:Ue.base64,name:Ue.name,size:Ue.size,type:Ue.type})),model:k,...F?{model_ref:F,provider:F.provider}:{}});pe("[Streaming]","sendWithAgent.chatResponse",{sessionId:te,generation:Mt(te)(G.getState()),response:ye});const{session_id:$e}=ye;if($e!==te&&console.warn(`[useMessageStreaming] Backend returned unexpected session_id=${$e} for sessionId=${te}`),ye.goal_command){const Ue=ye.goal_command;if(pe("[Streaming]","sendWithAgent.goalCommand",{sessionId:te,action:Ue.action,shouldExecute:Ue.should_execute,hasGoldConfig:Ue.gold_config!=null}),Ue.gold_config!==void 0){const rt=G.getState().chats.find(ht=>ht.id===te);rt!=null&&rt.config&&G.getState().updateSession(te,{config:{...rt.config,goldConfig:Ue.gold_config??null}})}if(!Ue.should_execute){C(te),await G.getState().loadChatHistory(te,{mode:"replace"}),await G.getState().refreshChatsNow();return}await G.getState().loadChatHistory(te,{mode:"replace"})}pe("[Streaming]","sendWithAgent.loadHistory.beforeExecute",{sessionId:te,generation:Mt(te)(G.getState())});const qe=await Su(f.current,te,de,K(te),F??void 0);pe("[Streaming]","sendWithAgent.executeResponse",{sessionId:te,generation:Mt(te)(G.getState()),status:qe.status,runId:qe.run_id??null,sync:qe.sync??null}),await Y(te,qe,de)}catch(fe){throw pe("[Streaming]","sendWithAgent.error",{sessionId:te,generation:Mt(te)(G.getState()),error:fe}),fe}},[k,F,K,$,P,j,e,Y,C,i]),L=v.useCallback(async(J,te,he,de)=>{if(!$){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatSendContent")});return}if(!e){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdSendContent")});return}if(!k){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeSend")});return}let me=p;if(me===null&&(me=await m()),!me){o.error(i("chat.streaming.agentUnavailable"));return}if(!k){o.error(i("chat.streaming.modelConfigNotLoaded"));return}const ge=e,le=(te==null?void 0:te.map(je=>({id:je.id,base64:je.base64,name:je.name,size:je.size,type:je.type})))||[],ke={role:"user",content:J,id:crypto.randomUUID(),createdAt:new Date().toISOString(),images:le};pe("[Streaming]","sendMessage.localAdd.before",{sessionId:ge,generation:Mt(ge)(G.getState()),userMessageId:ke.id,contentLength:J.length,imageCount:le.length,reasoningEffort:he??null,selectedSkillCount:(de==null?void 0:de.length)??0}),await n(ge,ke),pe("[Streaming]","sendMessage.localAdd.after",{sessionId:ge,generation:Mt(ge)(G.getState()),userMessageId:ke.id}),y(ge),pe("[Streaming]","sendMessage.markOptimisticStart",{sessionId:ge,generation:Mt(ge)(G.getState())}),await new Promise(je=>setTimeout(je,0));try{pe("[Streaming]","[useChatStreaming] Using Agent Server"),await ce(J,ge,ke,he,de),pe("[Streaming]","sendMessage.completed",{sessionId:ge,generation:Mt(ge)(G.getState()),userMessageId:ke.id})}catch(je){if(c.current&&At.clear(ge,c.current),c.current=null,d.current="",je instanceof Error&&je.name==="AbortError")o.info(i("chat.streaming.requestCancelled"));else{console.error("[useChatStreaming] Failed to send message:",je);const fe=je instanceof Error?je.message:String(je??"");xd(fe)?o.error(_d(fe)):(o.error(i("chat.streaming.sendFailed")),b(!1))}pe("[Streaming]","sendMessage.error",{sessionId:ge,generation:Mt(ge)(G.getState()),error:je}),M(ge)}finally{pe("[Streaming]","sendMessage.finally",{sessionId:ge,generation:Mt(ge)(G.getState()),streamingMessageId:c.current}),a.current=null,c.current&&At.clear(ge,c.current),c.current=null,d.current=""}},[p,o,m,$,e,n,s,ce,b,k,i,y,M]),oe=v.useCallback(async(J,te="regenerate")=>{if(!$){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatRetryContent")});return}if(!e){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdRetryContent")});return}if(!k){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeRetry")});return}let he=p;if(he===null&&(he=await m()),!he){o.error(i("chat.streaming.agentUnavailable"));return}const de=e;c.current&&At.clear(de,c.current),c.current=null,d.current="";try{const me=te==="error_retry"?"error_retry":"after_last_user",ge=await f.current.truncateSessionMessages(de,{mode:me});(te==="regenerate"||(ge.messages_removed??0)>0)&&await G.getState().loadChatHistory(de,{mode:"replace"}),_(de);const le=await Su(f.current,de,J,K(de),F??void 0);await Y(de,le,J)}catch(me){console.error("[useMessageStreaming] Retry failed:",me);const ge=me instanceof Error?me.message:String(me??"");xd(ge)?o.error(_d(ge)):o.error(i("chat.streaming.retryFailed")),M(de)}finally{a.current=null}},[k,F,p,o,K,m,$,e,Y,s,i,_,M]);return{sendMessage:L,retryLastTurn:oe,cancel:X,agentAvailable:p}}const sM=t=>{const e=v.useRef(new Map),n=v.useRef(!1),[r,s]=v.useState(null);v.useEffect(()=>{s(null),n.current=!1},[t]);const o=v.useCallback(d=>{if(!t)return;const f=d.trim();if(!f)return;const p=e.current.get(t)??[];if(p[p.length-1]===f)return;const b=[...p,f].slice(-50);e.current.set(t,b),s(null),n.current=!1},[t]),i=v.useCallback((d,f)=>{if(!t)return{value:null,applied:!1};const p=e.current.get(t)??[];if(p.length===0)return{value:null,applied:!1};const b=f.trim();if(d==="previous"){if(b.length>0&&r===null)return{value:null,applied:!1};const w=r??p.length,y=Math.max(0,w-1);return y===r?{value:null,applied:!1}:(s(y),n.current=!0,{value:p[y]??null,applied:!0})}if(r===null)return{value:null,applied:!1};const m=r+1;return m>=p.length?(s(null),n.current=!0,{value:"",applied:!0}):(s(m),n.current=!0,{value:p[m]??null,applied:!0})},[t,r]),a=v.useCallback(()=>{if(n.current){n.current=!1;return}r!==null&&s(null)},[r]),c=v.useCallback(()=>{t&&(e.current.delete(t),s(null),n.current=!1)},[t]);return{recordEntry:o,navigate:i,acknowledgeManualInput:a,clearHistory:c}},oM=[{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:{}}],iM=t=>[...oM.filter(n=>!t.some(r=>r.name===n.name&&r.type===n.type)),...t],xs=class xs{constructor(){Ie(this,"cache",null);Ie(this,"cacheTime",0);Ie(this,"CACHE_TTL",3e4)}static getInstance(){return xs.instance||(xs.instance=new xs),xs.instance}async listCommands(e=!1){const n=Date.now();if(!e&&this.cache&&n-this.cacheTime<this.CACHE_TTL)return this.cache;try{const r=await ze.get("commands");if(!Array.isArray(r.commands))throw new Error("Invalid command list response");return this.cache=iM(r.commands),this.cacheTime=n,pe("[CommandService]","[CommandService] Loaded commands:",this.cache.length),this.cache}catch(r){throw console.error("[CommandService] Failed to list commands:",r),r}}async getCommand(e,n){try{return await ze.get(`commands/${e}/${n}`)}catch(r){throw console.error(`[CommandService] Failed to get command ${e}/${n}:`,r),r}}clearCache(){this.cache=null,this.cacheTime=0}};Ie(xs,"instance");let ia=xs;const Co=t=>{if(typeof t!="string"||!t.startsWith("mcp__"))return null;const e=t.slice(5),n=e.indexOf("__");if(n<=0)return null;const r=e.slice(0,n),s=e.slice(n+2);return!r||!s?null:{serverId:r,toolName:s}},aM=({setContent:t,onWorkflowDraftChange:e,acknowledgeManualInput:n,currentSessionId:r,textAreaRef:s,content:o})=>{const[i,a]=v.useState(!1),[c,d]=v.useState(""),[f,p]=v.useState(null);v.useEffect(()=>{p(null),e==null||e(null)},[r,e]);const b=v.useCallback((P,A)=>{const j=P.trimStart(),$=`/${A}`;if(!j.startsWith($))return!1;const F=j.charAt($.length);return!F||/\s/.test(F)},[]),m=v.useCallback(()=>{p(null),e==null||e(null)},[e]),w=v.useCallback((P,A)=>{if(!b(P,A.name))return;const j=`/${A.name}`,F=P.trim().slice(j.length).trim(),X=[A.content,F].filter(Boolean).join(`
123
+ `),nM=()=>{try{return localStorage.getItem(lv)??""}catch(t){return console.error("Failed to load system prompt enhancement:",t),""}},RF=t=>{try{const e=t.trim()?t:"";localStorage.setItem(lv,e)}catch(e){console.error("Failed to save system prompt enhancement:",e)}},rM=t=>{const e=[];e.push(QP().trim()),e.push(eM().trim());const n=nM().trim();return n&&e.push(n),KP()&&e.push(XP().trim()),VP()&&e.push(GP().trim()),(t??"").trim().toLowerCase()==="copilot"&&av()&&e.push(ZP().trim()),e},sM=t=>tM(rM(t));function Lf(t){const e=yt(s=>s.providerConfig),n=G(Cr(t??null));return v.useMemo(()=>{var c,d,f,p,y,m,w;const s=t?(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 i=t?(p=(f=n==null?void 0:n.config)==null?void 0:f.model)==null?void 0:p.trim():void 0;return i&&i!=="unknown"?i:((w=(m=(y=e.defaults)==null?void 0:y.chat)==null?void 0:m.model)==null?void 0:w.trim())||void 0},[n,e,t])}function oM(t){const e=Lf(t),n=yt(r=>r.providerConfig);return v.useMemo(()=>{var s,o,i;return((i=(o=(s=n.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:i.trim())||e},[n,e])}function cv(t){const e=yt(s=>s.isProviderModelRefEnabled),n=yt(s=>s.selectedModelRef),r=yt(s=>s.providerConfig.defaults);return v.useMemo(()=>{var s,o;return e()?t||n||((o=(s=r==null?void 0:r.chat)==null?void 0:s.model)!=null&&o.trim()?r.chat:null):null},[t,n,r,e])}function iM(){const t=yt(e=>e.getFastModelRef);return v.useMemo(()=>t(),[t])}const Su=(t,e,n,r,s)=>n?t.execute(e,void 0,n,r,s):t.execute(e,void 0,void 0,r,s);function aM(t){var Se;const{sessionId:e,addMessage:n,updateSession:r}=t,{modal:s,message:o}=En.useApp(),{t:i}=Xe(),a=v.useRef(null),c=v.useRef(null),d=v.useRef(""),f=v.useRef(new Pn),p=G(J=>J.agentAvailability),y=G(J=>J.setAgentAvailability),m=G(J=>J.checkAgentAvailability),w=G(J=>J.startAgentHealthCheck),b=G(J=>J.markOptimisticStart),_=G(J=>J.markRetryStart),M=G(J=>J.markSettleTimeout),C=G(J=>J.resetSession),T=G(J=>J.applyExecutionStarted),k=Lf(e),P=yt(J=>J.currentProvider),j=yt(J=>J.getProviderType)(P),$=G(J=>e&&J.chats.find(te=>te.id===e)||null),F=cv((Se=$==null?void 0:$.config)==null?void 0:Se.model_ref);v.useEffect(()=>{w()},[w]);const X=v.useCallback(()=>{var te;(te=a.current)==null||te.abort();const J=$==null?void 0:$.id;J&&f.current.stopGeneration(J).catch(he=>{console.error("[useMessageStreaming] Failed to stop generation:",he)})},[$==null?void 0:$.id]),K=v.useCallback(J=>{var ne;const te=G.getState(),de=(Array.isArray(te.chats)?te.chats:[]).find(Q=>Q.id===J),me=wo(J)(te),ge=me?{sessionId:J,question:me.question,options:me.options,allowCustom:me.allowCustom,toolCallId:me.toolCallId}:null,le=(ne=de==null?void 0:de.config)==null?void 0:ne.syncCursor,ke=!!ge||!!(le!=null&&le.hasPendingQuestion),je=(ge==null?void 0:ge.toolCallId)??(le==null?void 0:le.pendingQuestionToolCallId)??null,fe={client_message_count:(le==null?void 0:le.messageCount)??(de==null?void 0:de.messageCount)??0,client_last_message_id:(le==null?void 0:le.lastMessageId)??null,client_has_pending_question:ke,client_pending_question_tool_call_id:je};return pe("[Streaming]","buildClientSync",{sessionId:J,generation:Mt(J)(te),syncCursor:le??null,messageCount:(de==null?void 0:de.messageCount)??null,respondMode:ge?{toolCallId:ge.toolCallId??null,question:ge.question}:null,clientSync:fe}),fe},[]),O=v.useCallback((J,te)=>{const he=te.sync;if(!he)return;const de=G.getState(),ge=(Array.isArray(de.chats)?de.chats:[]).find(le=>le.id===J);ge&&(pe("[Streaming]","applyExecuteSyncSnapshot",{sessionId:J,generation:Mt(J)(G.getState()),runId:te.run_id??null,sync:he}),r(J,{messageCount:he.server_message_count,config:{...ge.config||{},syncCursor:{messageCount:he.server_message_count,lastMessageId:he.server_last_message_id??null,hasPendingQuestion:he.has_pending_question,pendingQuestionToolCallId:he.pending_question_tool_call_id??null}}}))},[r]),W=v.useCallback(async J=>{try{return await Je.get(`respond/${J}/pending`)}catch(te){return console.warn(`[useMessageStreaming] Failed to fetch pending question for ${J}:`,te),{has_pending_question:!1}}},[]),ae=v.useCallback(async(J,te,he)=>{var je,fe;pe("[Streaming]","recoverAfterNeedSync.start",{sessionId:J,generation:Mt(J)(G.getState()),executeSync:te,reasoningEffort:he??null}),M(J),await G.getState().loadChatHistory(J,{mode:"replace"});const de=await W(J),me=G.getState().setPendingQuestion,ge=G.getState().clearPendingQuestion;if(de.has_pending_question){pe("[Streaming]","recoverAfterNeedSync.pendingQuestion",{sessionId:J,generation:Mt(J)(G.getState()),pending:de}),me(J,{question:de.question||"",options:de.options||[],allowCustom:de.allow_custom??!0,toolCallId:de.tool_call_id??null});const ne=G.getState().chats.find(Q=>Q.id===J);return ne&&r(J,{config:{...ne.config||{},syncCursor:{messageCount:ne.messageCount??ne.messages.length,lastMessageId:((fe=(je=ne.config)==null?void 0:je.syncCursor)==null?void 0:fe.lastMessageId)??null,hasPendingQuestion:!0,pendingQuestionToolCallId:de.tool_call_id??null}}}),null}if(ge(J),!((te==null?void 0:te.has_pending_user_message)??!1))return pe("[Streaming]","recoverAfterNeedSync.noPendingUserMessage",{sessionId:J,generation:Mt(J)(G.getState()),executeSync:te}),null;pe("[Streaming]","recoverAfterNeedSync.retryExecute",{sessionId:J,generation:Mt(J)(G.getState()),executeSync:te}),b(J),await new Promise(ne=>setTimeout(ne,0));const ke=await Su(f.current,J,he,K(J),F??void 0);return pe("[Streaming]","recoverAfterNeedSync.retryExecute.result",{sessionId:J,generation:Mt(J)(G.getState()),status:ke.status,runId:ke.run_id??null,sync:ke.sync??null}),O(J,ke),ke},[F,O,K,W,b,M,r]),Y=v.useCallback(async(J,te,he)=>{var le,ke;let de=te;pe("[Streaming]","handleExecuteResult.start",{sessionId:J,generation:Mt(J)(G.getState()),status:de.status,runId:de.run_id??null,sync:de.sync??null}),O(J,de);const me=2;let ge=0;for(;(le=de.sync)!=null&&le.need_sync&&ge<me;){pe("[Streaming]","handleExecuteResult.needSync",{sessionId:J,generation:Mt(J)(G.getState()),syncRecoveries:ge,sync:de.sync});const je=await ae(J,de.sync,he);if(ge+=1,!je){M(J);return}de=je,O(J,de)}if((ke=de.sync)!=null&&ke.need_sync){console.warn(`[useMessageStreaming] Execute remains out-of-sync after ${me} recovery attempt(s) for session ${J}.`,de.sync),M(J);return}if(["started","already_running"].includes(de.status)){if(de.run_id){const je=Mt(J)(G.getState());T(J,de.run_id,je)}return}if(de.status==="completed"){pe("[Streaming]","[Agent] Session already completed"),M(J);return}throw console.error("[Agent] Execute failed:",de.status),M(J),new Error(`Execute failed: ${de.status}`)},[O,ae,M,T]),ce=v.useCallback(async(J,te,he,de,me)=>{var le,ke,je;if(!k)throw new Error(i("chat.model.noModelSelected"));const ge=new AbortController;a.current=ge;try{const fe=sM(j).trim(),ne=j==="copilot"&&av(),ie=(((le=$==null?void 0:$.config)==null?void 0:le.workspacePath)||"").trim().replace(/\/+$/,"").replace(/\\+$/,"");pe("[Streaming]","sendWithAgent.start",{sessionId:te,generation:Mt(te)(G.getState()),userMessageId:he.id,contentLength:J.length,imageCount:((ke=he.images)==null?void 0:ke.length)??0,reasoningEffort:de??null,selectedSkillCount:(me==null?void 0:me.length)??0,workspacePath:ie||null,activeModel:k,activeModelRef:F??null});const ye=await f.current.sendMessage({message:J,session_id:te,enhance_prompt:fe||void 0,copilot_conclusion_with_options_enhancement_enabled:ne,workspace_path:ie||void 0,selected_skill_ids:me&&me.length>0?me:void 0,images:(je=he.images)==null?void 0:je.filter(Ue=>!!Ue.base64).map(Ue=>({base64:Ue.base64,name:Ue.name,size:Ue.size,type:Ue.type})),model:k,...F?{model_ref:F,provider:F.provider}:{}});pe("[Streaming]","sendWithAgent.chatResponse",{sessionId:te,generation:Mt(te)(G.getState()),response:ye});const{session_id:$e}=ye;if($e!==te&&console.warn(`[useMessageStreaming] Backend returned unexpected session_id=${$e} for sessionId=${te}`),ye.goal_command){const Ue=ye.goal_command;if(pe("[Streaming]","sendWithAgent.goalCommand",{sessionId:te,action:Ue.action,shouldExecute:Ue.should_execute,hasGoldConfig:Ue.gold_config!=null}),Ue.gold_config!==void 0){const rt=G.getState().chats.find(ht=>ht.id===te);rt!=null&&rt.config&&G.getState().updateSession(te,{config:{...rt.config,goldConfig:Ue.gold_config??null}})}if(!Ue.should_execute){C(te),await G.getState().loadChatHistory(te,{mode:"replace"}),await G.getState().refreshChatsNow();return}await G.getState().loadChatHistory(te,{mode:"replace"})}pe("[Streaming]","sendWithAgent.loadHistory.beforeExecute",{sessionId:te,generation:Mt(te)(G.getState())});const qe=await Su(f.current,te,de,K(te),F??void 0);pe("[Streaming]","sendWithAgent.executeResponse",{sessionId:te,generation:Mt(te)(G.getState()),status:qe.status,runId:qe.run_id??null,sync:qe.sync??null}),await Y(te,qe,de)}catch(fe){throw pe("[Streaming]","sendWithAgent.error",{sessionId:te,generation:Mt(te)(G.getState()),error:fe}),fe}},[k,F,K,$,P,j,e,Y,C,i]),L=v.useCallback(async(J,te,he,de)=>{if(!$){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatSendContent")});return}if(!e){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdSendContent")});return}if(!k){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeSend")});return}let me=p;if(me===null&&(me=await m()),!me){o.error(i("chat.streaming.agentUnavailable"));return}if(!k){o.error(i("chat.streaming.modelConfigNotLoaded"));return}const ge=e,le=(te==null?void 0:te.map(je=>({id:je.id,base64:je.base64,name:je.name,size:je.size,type:je.type})))||[],ke={role:"user",content:J,id:crypto.randomUUID(),createdAt:new Date().toISOString(),images:le};pe("[Streaming]","sendMessage.localAdd.before",{sessionId:ge,generation:Mt(ge)(G.getState()),userMessageId:ke.id,contentLength:J.length,imageCount:le.length,reasoningEffort:he??null,selectedSkillCount:(de==null?void 0:de.length)??0}),await n(ge,ke),pe("[Streaming]","sendMessage.localAdd.after",{sessionId:ge,generation:Mt(ge)(G.getState()),userMessageId:ke.id}),b(ge),pe("[Streaming]","sendMessage.markOptimisticStart",{sessionId:ge,generation:Mt(ge)(G.getState())}),await new Promise(je=>setTimeout(je,0));try{pe("[Streaming]","[useChatStreaming] Using Agent Server"),await ce(J,ge,ke,he,de),pe("[Streaming]","sendMessage.completed",{sessionId:ge,generation:Mt(ge)(G.getState()),userMessageId:ke.id})}catch(je){if(c.current&&At.clear(ge,c.current),c.current=null,d.current="",je instanceof Error&&je.name==="AbortError")o.info(i("chat.streaming.requestCancelled"));else{console.error("[useChatStreaming] Failed to send message:",je);const fe=je instanceof Error?je.message:String(je??"");xd(fe)?o.error(_d(fe)):(o.error(i("chat.streaming.sendFailed")),y(!1))}pe("[Streaming]","sendMessage.error",{sessionId:ge,generation:Mt(ge)(G.getState()),error:je}),M(ge)}finally{pe("[Streaming]","sendMessage.finally",{sessionId:ge,generation:Mt(ge)(G.getState()),streamingMessageId:c.current}),a.current=null,c.current&&At.clear(ge,c.current),c.current=null,d.current=""}},[p,o,m,$,e,n,s,ce,y,k,i,b,M]),oe=v.useCallback(async(J,te="regenerate")=>{if(!$){s.info({title:i("chat.streaming.noActiveChatTitle"),content:i("chat.streaming.noActiveChatRetryContent")});return}if(!e){s.info({title:i("chat.streaming.noChatIdTitle"),content:i("chat.streaming.noChatIdRetryContent")});return}if(!k){s.error({title:i("chat.model.noModelSelected"),content:i("chat.model.selectModelBeforeRetry")});return}let he=p;if(he===null&&(he=await m()),!he){o.error(i("chat.streaming.agentUnavailable"));return}const de=e;c.current&&At.clear(de,c.current),c.current=null,d.current="";try{const me=te==="error_retry"?"error_retry":"after_last_user",ge=await f.current.truncateSessionMessages(de,{mode:me});(te==="regenerate"||(ge.messages_removed??0)>0)&&await G.getState().loadChatHistory(de,{mode:"replace"}),_(de);const le=await Su(f.current,de,J,K(de),F??void 0);await Y(de,le,J)}catch(me){console.error("[useMessageStreaming] Retry failed:",me);const ge=me instanceof Error?me.message:String(me??"");xd(ge)?o.error(_d(ge)):o.error(i("chat.streaming.retryFailed")),M(de)}finally{a.current=null}},[k,F,p,o,K,m,$,e,Y,s,i,_,M]);return{sendMessage:L,retryLastTurn:oe,cancel:X,agentAvailable:p}}const lM=t=>{const e=v.useRef(new Map),n=v.useRef(!1),[r,s]=v.useState(null);v.useEffect(()=>{s(null),n.current=!1},[t]);const o=v.useCallback(d=>{if(!t)return;const f=d.trim();if(!f)return;const p=e.current.get(t)??[];if(p[p.length-1]===f)return;const y=[...p,f].slice(-50);e.current.set(t,y),s(null),n.current=!1},[t]),i=v.useCallback((d,f)=>{if(!t)return{value:null,applied:!1};const p=e.current.get(t)??[];if(p.length===0)return{value:null,applied:!1};const y=f.trim();if(d==="previous"){if(y.length>0&&r===null)return{value:null,applied:!1};const w=r??p.length,b=Math.max(0,w-1);return b===r?{value:null,applied:!1}:(s(b),n.current=!0,{value:p[b]??null,applied:!0})}if(r===null)return{value:null,applied:!1};const m=r+1;return m>=p.length?(s(null),n.current=!0,{value:"",applied:!0}):(s(m),n.current=!0,{value:p[m]??null,applied:!0})},[t,r]),a=v.useCallback(()=>{if(n.current){n.current=!1;return}r!==null&&s(null)},[r]),c=v.useCallback(()=>{t&&(e.current.delete(t),s(null),n.current=!1)},[t]);return{recordEntry:o,navigate:i,acknowledgeManualInput:a,clearHistory:c}},cM=[{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:{}}],uM=t=>[...cM.filter(n=>!t.some(r=>r.name===n.name&&r.type===n.type)),...t],xs=class xs{constructor(){Ie(this,"cache",null);Ie(this,"cacheTime",0);Ie(this,"CACHE_TTL",3e4)}static getInstance(){return xs.instance||(xs.instance=new xs),xs.instance}async listCommands(e=!1){const n=Date.now();if(!e&&this.cache&&n-this.cacheTime<this.CACHE_TTL)return this.cache;try{const r=await ze.get("commands");if(!Array.isArray(r.commands))throw new Error("Invalid command list response");return this.cache=uM(r.commands),this.cacheTime=n,pe("[CommandService]","[CommandService] Loaded commands:",this.cache.length),this.cache}catch(r){throw console.error("[CommandService] Failed to list commands:",r),r}}async getCommand(e,n){try{return await ze.get(`commands/${e}/${n}`)}catch(r){throw console.error(`[CommandService] Failed to get command ${e}/${n}:`,r),r}}clearCache(){this.cache=null,this.cacheTime=0}};Ie(xs,"instance");let aa=xs;const ko=t=>{if(typeof t!="string"||!t.startsWith("mcp__"))return null;const e=t.slice(5),n=e.indexOf("__");if(n<=0)return null;const r=e.slice(0,n),s=e.slice(n+2);return!r||!s?null:{serverId:r,toolName:s}},dM=({setContent:t,onWorkflowDraftChange:e,acknowledgeManualInput:n,currentSessionId:r,textAreaRef:s,content:o})=>{const[i,a]=v.useState(!1),[c,d]=v.useState(""),[f,p]=v.useState(null);v.useEffect(()=>{p(null),e==null||e(null)},[r,e]);const y=v.useCallback((P,A)=>{const j=P.trimStart(),$=`/${A}`;if(!j.startsWith($))return!1;const F=j.charAt($.length);return!F||/\s/.test(F)},[]),m=v.useCallback(()=>{p(null),e==null||e(null)},[e]),w=v.useCallback((P,A)=>{if(!y(P,A.name))return;const j=`/${A.name}`,F=P.trim().slice(j.length).trim(),X=[A.content,F].filter(Boolean).join(`
124
124
 
125
- `);e==null||e({...A,content:X})},[b,e]),y=v.useCallback(P=>{n(),f&&!b(P,f.name)&&m(),f&&b(P,f.name)&&w(P,f),t(P)},[n,m,b,f,w,t]),_=v.useCallback(P=>{a(P.isTriggerActive),d(P.isTriggerActive?P.searchText:"")},[]),M=v.useCallback(async P=>{var Y,ce,L,oe,Se,J;a(!1);const j=(te=>{var me;if(te.type==="goal"||te.type!=="mcp")return te.name;const he=(me=te.metadata)==null?void 0:me.originalName;if(typeof he=="string"&&he.trim())return he.trim();const de=Co(te.name);return de!=null&&de.toolName?de.toolName:te.displayName||te.name})(P),$=(ce=(Y=s.current)==null?void 0:Y.resizableTextArea)==null?void 0:ce.textArea,F=($==null?void 0:$.selectionStart)??o.length;let X,K;const W=o.substring(0,F).match(/\/([a-zA-Z0-9_-]*)$/);if(W){const te=F-W[0].length,he=o.substring(0,te),de=o.substring(F);X=`${he}/${j} ${de}`,K=`${he}/${j} `.length}else if(o.trim()==="")X=`/${j} `,K=X.length;else{const te=o.substring(0,F),he=o.substring(F);X=`${te}/${j} ${he}`,K=`${te}/${j} `.length}if(t(X),setTimeout(()=>{$&&($.selectionStart=K,$.selectionEnd=K,$.focus())},0),P.type!=="workflow"){const te={id:`command-draft-${P.id}`,name:j,content:"",createdAt:new Date().toISOString(),type:P.type,displayName:P.displayName,mcpAlias:P.type==="mcp"?P.name:void 0,mcpServerId:P.type==="mcp"?(L=P.metadata)==null?void 0:L.serverId:void 0,mcpServerName:P.type==="mcp"?(oe=P.metadata)==null?void 0:oe.serverName:void 0,mcpOriginalName:P.type==="mcp"?(Se=P.metadata)==null?void 0:Se.originalName:void 0};p(te),e==null||e(te);return}const ae=ia.getInstance();try{const te=P.id.startsWith("workflow-")?P.id.slice(9):P.id,de=((J=(await ae.getCommand(P.type,te)).content)==null?void 0:J.trim())||"";if(de){const me={id:`command-draft-${P.id}`,name:P.name,content:de,createdAt:new Date().toISOString(),type:P.type,displayName:P.displayName};p(me),e==null||e(me)}else m()}catch(te){console.error(`[InputContainer] Failed to apply command '${P.name}':`,te),m()}},[m,e,t,o,s]),C=v.useCallback(async P=>{try{const $=(await ia.getInstance().listCommands()).find(F=>F.id===P.id&&F.type===P.type);if(!$){console.error(`[InputContainer] Command '${P.id}' of type '${P.type}' not found`),t(`/${P.name} `),m();return}await M($)}catch(A){console.error(`[InputContainer] Failed to select command '${P.name}':`,A),t(`/${P.name} `),m()}},[M,m,t]),T=v.useCallback(()=>{a(!1)},[]),k=v.useCallback(async P=>{a(!1);try{const $=(await ia.getInstance().listCommands()).find(F=>F.name===P);$?await M($):(console.error(`[InputContainer] Command '${P}' not found in auto-complete`),t(`/${P} `),m())}catch(A){console.error(`[InputContainer] Failed to load command '${P}' in auto-complete:`,A),t(`/${P} `),m()}},[M,m,t]);return{selectedCommand:f,showCommandSelector:i,commandSearchText:c,clearCommandDraft:m,matchesCommandToken:b,handleInputChange:y,handleCommandChange:_,handleCommandSelect:C,handleCommandSelectorCancel:T,handleAutoComplete:k,setShowCommandSelector:a}};class lM{constructor(e={}){Ie(this,"cache",null);Ie(this,"options");Ie(this,"validateWorkspacePath",this.validatePath.bind(this));Ie(this,"getRecentWorkspaces",this.getRecent.bind(this));Ie(this,"addRecentWorkspace",this.addRecent.bind(this));Ie(this,"removeRecentWorkspace",this.removeRecent.bind(this));Ie(this,"clearRecentWorkspaces",this.clearRecent.bind(this));Ie(this,"getWorkspaceSuggestions",this.getCombinedSuggestions.bind(this));Ie(this,"getHealthStatus",this.healthCheck.bind(this));this.options={maxRecentWorkspaces:e.maxRecentWorkspaces??10,cacheTimeoutMs:e.cacheTimeoutMs??5*60*1e3,requestTimeoutMs:e.requestTimeoutMs??1e4}}async validatePath(e){return ze.post("workspace/validate",{path:e})}async getRecent(){var e;if(this.isCacheValid())return this.cache.recentWorkspaces;try{const n=await ze.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),(e=this.cache)!=null&&e.recentWorkspaces)return this.cache.recentWorkspaces;throw n}}async addRecent(e,n){await ze.post("workspace/recent",{path:e,metadata:n}),this.invalidateCache()}async removeRecent(e){const r=(await this.getRecent()).filter(s=>s.path!==e);this.cache={recentWorkspaces:r,timestamp:Date.now()}}async clearRecent(){this.cache=null}async getPathSuggestions(){return ze.get("workspace/suggestions")}async browseFolder(e){return ze.post("workspace/browse-folder",{path:e})}async getCombinedSuggestions(){const[e,n]=await Promise.all([this.getPathSuggestions().catch(()=>({suggestions:[]})),this.getRecent().catch(()=>[])]),s=[...e.suggestions.map(i=>({path:i.path,is_valid:!0,workspace_name:i.name})),...n];return this.deduplicateByPath(s).sort((i,a)=>{const c=n.findIndex(f=>f.path===i.path),d=n.findIndex(f=>f.path===a.path);return c!==-1&&d!==-1?c-d:c!==-1?-1:d!==-1?1:(i.workspace_name||"").localeCompare(a.workspace_name||"")})}async healthCheck(){var n,r,s;const e=Date.now();try{await ze.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()-e}}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(e,n){return ze.post("workspace/files",{path:e,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(e){const n=new Set;return e.filter(r=>n.has(r.path)?!1:(n.add(r.path),!0))}}const cM=new lM,uM=({content:t,setContent:e,currentSessionId:n,currentChat:r,updateSession:s,messageApi:o})=>{const[i,a]=v.useState(new Map),[c,d]=v.useState([]),[f,p]=v.useState(!1),[b,m]=v.useState(""),[w,y]=v.useState(!1),[_,M]=v.useState(""),[C,T]=v.useState(!1),[k,P]=v.useState(null),[A,j]=v.useState(!1),$=v.useRef(null);v.useEffect(()=>{w&&M((r==null?void 0:r.config.workspacePath)??"")},[w,r==null?void 0:r.config.workspacePath]),v.useEffect(()=>{p(!1),m(""),d([]),a(new Map),$.current=(r==null?void 0:r.config.workspacePath)??null},[n,r==null?void 0:r.config.workspacePath]);const F=v.useCallback(async(ce,L)=>{T(!0),d([]),P(null);try{const oe=await cM.listWorkspaceFiles(L);d(oe),$.current=L}catch(oe){console.error("Failed to load workspace files:",oe),P(oe instanceof Error?oe.message:"Workspace file browsing is unavailable.")}finally{T(!1)}},[]),X=v.useCallback(ce=>{if(m(ce.searchText),!ce.isTriggerActive){p(!1);return}if(!n||!r){p(!1);return}const L=r.config.workspacePath;if(!L){M(""),y(!0),p(!1);return}p(!0),($.current!==L||c.length===0)&&F(n,L)},[r,n,F,c.length]),K=v.useCallback(ce=>{const L=t.lastIndexOf("@");let oe;L>=0&&t.substring(L).match(/^@[a-zA-Z0-9._\\-\\/\\\\]*$/)?oe=`${t.slice(0,L)}@${ce.name} `:oe=t.trim()?`${t.trim()} @${ce.name} `:`@${ce.name} `,e(oe),a(Se=>{const J=new Map(Se);return J.set(ce.name,ce),J}),p(!1),m("")},[t,e]),O=v.useCallback(()=>{p(!1)},[]),W=v.useCallback(()=>{if(!n||!r)return;const ce=r.config.workspacePath;if(!ce){M(""),y(!0),p(!1);return}m(""),p(!0),($.current!==ce||c.length===0)&&F(n,ce)},[r,n,F,c.length]),ae=v.useCallback(()=>{y(!1),M("")},[]),Y=v.useCallback(async ce=>{if(!r||!n)return;const L=ce.trim();if(!L){o.error(Et.t("chat.view.workspacePathEmpty"));return}j(!0);try{s(n,{config:{...r.config,workspacePath:L}}),y(!1),M(""),p(!1),P(null)}catch(oe){const Se=oe instanceof Error?oe.message:"Unable to save workspace path";o.error(Se)}finally{j(!1)}},[r,n,o,s]);return{fileReferences:i,setFileReferences:a,workspaceFiles:c,showFileSelector:f,setShowFileSelector:p,fileSearchText:b,isWorkspaceLoading:C,workspaceError:k,isWorkspaceModalVisible:w,workspacePathInput:_,isSavingWorkspace:A,setWorkspacePathInput:M,setIsWorkspaceModalVisible:y,handleFileReferenceChange:X,handleFileReferenceSelect:K,handleFileSelectorCancel:O,handleFileReferenceButtonClick:W,handleWorkspaceModalCancel:ae,handleWorkspaceModalSubmit:Y,fetchWorkspaceFiles:F}},dM=()=>{const[t,e]=v.useState([]),n=v.useCallback(o=>{e(i=>[...i,...o])},[]),r=v.useCallback(o=>{e(i=>i.filter(a=>a.id!==o))},[]),s=v.useCallback(()=>{e([])},[]);return{attachments:t,setAttachments:e,handleAttachmentsAdded:n,handleAttachmentRemove:r,handleClearAttachments:s}},Df="zenith.usedModels.v1";function ya(){if(typeof window>"u")return[];try{const t=window.localStorage.getItem(Df);if(!t)return[];const e=JSON.parse(t);return Array.isArray(e)?e.filter(n=>typeof n=="string"&&n.trim().length>0):[]}catch{return[]}}function TF(){return ya()}function fM(t){const e=typeof t=="string"?t.trim():"";if(!e||typeof window>"u")return ya();const n=ya().filter(s=>s!==e),r=[e,...n];try{window.localStorage.setItem(Df,JSON.stringify(r))}catch{}return r}function EF(t){const e=typeof t=="string"?t.trim():"";if(!e||typeof window>"u")return ya();const n=ya().filter(r=>r!==e);try{window.localStorage.setItem(Df,JSON.stringify(n))}catch{}return n}const hM=({attachments:t,referenceText:e,selectedWorkflow:n,matchesWorkflowToken:r,fileReferences:s,reasoningEffort:o,usedModelName:i,sendMessage:a,recordEntry:c,clearWorkflowDraft:d,setContent:f,setReferenceText:p,setAttachments:b,setFileReferences:m})=>({handleSubmit:v.useCallback(async(y,_)=>{const M=y.trim(),C=$P(t),T=(e==null?void 0:e.trim())??"";let k=M,P;if(n!=null&&n.content&&n.type==="workflow"){const j=`/${n.name}`;if(r(M,n.name)){const F=M.slice(j.length).trim();k=[n.content,F].filter(Boolean).join(`
125
+ `);e==null||e({...A,content:X})},[y,e]),b=v.useCallback(P=>{n(),f&&!y(P,f.name)&&m(),f&&y(P,f.name)&&w(P,f),t(P)},[n,m,y,f,w,t]),_=v.useCallback(P=>{a(P.isTriggerActive),d(P.isTriggerActive?P.searchText:"")},[]),M=v.useCallback(async P=>{var Y,ce,L,oe,Se,J;a(!1);const j=(te=>{var me;if(te.type==="goal"||te.type!=="mcp")return te.name;const he=(me=te.metadata)==null?void 0:me.originalName;if(typeof he=="string"&&he.trim())return he.trim();const de=ko(te.name);return de!=null&&de.toolName?de.toolName:te.displayName||te.name})(P),$=(ce=(Y=s.current)==null?void 0:Y.resizableTextArea)==null?void 0:ce.textArea,F=($==null?void 0:$.selectionStart)??o.length;let X,K;const W=o.substring(0,F).match(/\/([a-zA-Z0-9_-]*)$/);if(W){const te=F-W[0].length,he=o.substring(0,te),de=o.substring(F);X=`${he}/${j} ${de}`,K=`${he}/${j} `.length}else if(o.trim()==="")X=`/${j} `,K=X.length;else{const te=o.substring(0,F),he=o.substring(F);X=`${te}/${j} ${he}`,K=`${te}/${j} `.length}if(t(X),setTimeout(()=>{$&&($.selectionStart=K,$.selectionEnd=K,$.focus())},0),P.type!=="workflow"){const te={id:`command-draft-${P.id}`,name:j,content:"",createdAt:new Date().toISOString(),type:P.type,displayName:P.displayName,mcpAlias:P.type==="mcp"?P.name:void 0,mcpServerId:P.type==="mcp"?(L=P.metadata)==null?void 0:L.serverId:void 0,mcpServerName:P.type==="mcp"?(oe=P.metadata)==null?void 0:oe.serverName:void 0,mcpOriginalName:P.type==="mcp"?(Se=P.metadata)==null?void 0:Se.originalName:void 0};p(te),e==null||e(te);return}const ae=aa.getInstance();try{const te=P.id.startsWith("workflow-")?P.id.slice(9):P.id,de=((J=(await ae.getCommand(P.type,te)).content)==null?void 0:J.trim())||"";if(de){const me={id:`command-draft-${P.id}`,name:P.name,content:de,createdAt:new Date().toISOString(),type:P.type,displayName:P.displayName};p(me),e==null||e(me)}else m()}catch(te){console.error(`[InputContainer] Failed to apply command '${P.name}':`,te),m()}},[m,e,t,o,s]),C=v.useCallback(async P=>{try{const $=(await aa.getInstance().listCommands()).find(F=>F.id===P.id&&F.type===P.type);if(!$){console.error(`[InputContainer] Command '${P.id}' of type '${P.type}' not found`),t(`/${P.name} `),m();return}await M($)}catch(A){console.error(`[InputContainer] Failed to select command '${P.name}':`,A),t(`/${P.name} `),m()}},[M,m,t]),T=v.useCallback(()=>{a(!1)},[]),k=v.useCallback(async P=>{a(!1);try{const $=(await aa.getInstance().listCommands()).find(F=>F.name===P);$?await M($):(console.error(`[InputContainer] Command '${P}' not found in auto-complete`),t(`/${P} `),m())}catch(A){console.error(`[InputContainer] Failed to load command '${P}' in auto-complete:`,A),t(`/${P} `),m()}},[M,m,t]);return{selectedCommand:f,showCommandSelector:i,commandSearchText:c,clearCommandDraft:m,matchesCommandToken:y,handleInputChange:b,handleCommandChange:_,handleCommandSelect:C,handleCommandSelectorCancel:T,handleAutoComplete:k,setShowCommandSelector:a}};class fM{constructor(e={}){Ie(this,"cache",null);Ie(this,"options");Ie(this,"validateWorkspacePath",this.validatePath.bind(this));Ie(this,"getRecentWorkspaces",this.getRecent.bind(this));Ie(this,"addRecentWorkspace",this.addRecent.bind(this));Ie(this,"removeRecentWorkspace",this.removeRecent.bind(this));Ie(this,"clearRecentWorkspaces",this.clearRecent.bind(this));Ie(this,"getWorkspaceSuggestions",this.getCombinedSuggestions.bind(this));Ie(this,"getHealthStatus",this.healthCheck.bind(this));this.options={maxRecentWorkspaces:e.maxRecentWorkspaces??10,cacheTimeoutMs:e.cacheTimeoutMs??5*60*1e3,requestTimeoutMs:e.requestTimeoutMs??1e4}}async validatePath(e){return ze.post("workspace/validate",{path:e})}async getRecent(){var e;if(this.isCacheValid())return this.cache.recentWorkspaces;try{const n=await ze.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),(e=this.cache)!=null&&e.recentWorkspaces)return this.cache.recentWorkspaces;throw n}}async addRecent(e,n){await ze.post("workspace/recent",{path:e,metadata:n}),this.invalidateCache()}async removeRecent(e){const r=(await this.getRecent()).filter(s=>s.path!==e);this.cache={recentWorkspaces:r,timestamp:Date.now()}}async clearRecent(){this.cache=null}async getPathSuggestions(){return ze.get("workspace/suggestions")}async browseFolder(e){return ze.post("workspace/browse-folder",{path:e})}async getCombinedSuggestions(){const[e,n]=await Promise.all([this.getPathSuggestions().catch(()=>({suggestions:[]})),this.getRecent().catch(()=>[])]),s=[...e.suggestions.map(i=>({path:i.path,is_valid:!0,workspace_name:i.name})),...n];return this.deduplicateByPath(s).sort((i,a)=>{const c=n.findIndex(f=>f.path===i.path),d=n.findIndex(f=>f.path===a.path);return c!==-1&&d!==-1?c-d:c!==-1?-1:d!==-1?1:(i.workspace_name||"").localeCompare(a.workspace_name||"")})}async healthCheck(){var n,r,s;const e=Date.now();try{await ze.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()-e}}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(e,n){return ze.post("workspace/files",{path:e,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(e){const n=new Set;return e.filter(r=>n.has(r.path)?!1:(n.add(r.path),!0))}}const hM=new fM,pM=({content:t,setContent:e,currentSessionId:n,currentChat:r,updateSession:s,messageApi:o})=>{const[i,a]=v.useState(new Map),[c,d]=v.useState([]),[f,p]=v.useState(!1),[y,m]=v.useState(""),[w,b]=v.useState(!1),[_,M]=v.useState(""),[C,T]=v.useState(!1),[k,P]=v.useState(null),[A,j]=v.useState(!1),$=v.useRef(null);v.useEffect(()=>{w&&M((r==null?void 0:r.config.workspacePath)??"")},[w,r==null?void 0:r.config.workspacePath]),v.useEffect(()=>{p(!1),m(""),d([]),a(new Map),$.current=(r==null?void 0:r.config.workspacePath)??null},[n,r==null?void 0:r.config.workspacePath]);const F=v.useCallback(async(ce,L)=>{T(!0),d([]),P(null);try{const oe=await hM.listWorkspaceFiles(L);d(oe),$.current=L}catch(oe){console.error("Failed to load workspace files:",oe),P(oe instanceof Error?oe.message:"Workspace file browsing is unavailable.")}finally{T(!1)}},[]),X=v.useCallback(ce=>{if(m(ce.searchText),!ce.isTriggerActive){p(!1);return}if(!n||!r){p(!1);return}const L=r.config.workspacePath;if(!L){M(""),b(!0),p(!1);return}p(!0),($.current!==L||c.length===0)&&F(n,L)},[r,n,F,c.length]),K=v.useCallback(ce=>{const L=t.lastIndexOf("@");let oe;L>=0&&t.substring(L).match(/^@[a-zA-Z0-9._\\-\\/\\\\]*$/)?oe=`${t.slice(0,L)}@${ce.name} `:oe=t.trim()?`${t.trim()} @${ce.name} `:`@${ce.name} `,e(oe),a(Se=>{const J=new Map(Se);return J.set(ce.name,ce),J}),p(!1),m("")},[t,e]),O=v.useCallback(()=>{p(!1)},[]),W=v.useCallback(()=>{if(!n||!r)return;const ce=r.config.workspacePath;if(!ce){M(""),b(!0),p(!1);return}m(""),p(!0),($.current!==ce||c.length===0)&&F(n,ce)},[r,n,F,c.length]),ae=v.useCallback(()=>{b(!1),M("")},[]),Y=v.useCallback(async ce=>{if(!r||!n)return;const L=ce.trim();if(!L){o.error(Et.t("chat.view.workspacePathEmpty"));return}j(!0);try{s(n,{config:{...r.config,workspacePath:L}}),b(!1),M(""),p(!1),P(null)}catch(oe){const Se=oe instanceof Error?oe.message:"Unable to save workspace path";o.error(Se)}finally{j(!1)}},[r,n,o,s]);return{fileReferences:i,setFileReferences:a,workspaceFiles:c,showFileSelector:f,setShowFileSelector:p,fileSearchText:y,isWorkspaceLoading:C,workspaceError:k,isWorkspaceModalVisible:w,workspacePathInput:_,isSavingWorkspace:A,setWorkspacePathInput:M,setIsWorkspaceModalVisible:b,handleFileReferenceChange:X,handleFileReferenceSelect:K,handleFileSelectorCancel:O,handleFileReferenceButtonClick:W,handleWorkspaceModalCancel:ae,handleWorkspaceModalSubmit:Y,fetchWorkspaceFiles:F}},mM=()=>{const[t,e]=v.useState([]),n=v.useCallback(o=>{e(i=>[...i,...o])},[]),r=v.useCallback(o=>{e(i=>i.filter(a=>a.id!==o))},[]),s=v.useCallback(()=>{e([])},[]);return{attachments:t,setAttachments:e,handleAttachmentsAdded:n,handleAttachmentRemove:r,handleClearAttachments:s}},Df="zenith.usedModels.v1";function ya(){if(typeof window>"u")return[];try{const t=window.localStorage.getItem(Df);if(!t)return[];const e=JSON.parse(t);return Array.isArray(e)?e.filter(n=>typeof n=="string"&&n.trim().length>0):[]}catch{return[]}}function jF(){return ya()}function gM(t){const e=typeof t=="string"?t.trim():"";if(!e||typeof window>"u")return ya();const n=ya().filter(s=>s!==e),r=[e,...n];try{window.localStorage.setItem(Df,JSON.stringify(r))}catch{}return r}function IF(t){const e=typeof t=="string"?t.trim():"";if(!e||typeof window>"u")return ya();const n=ya().filter(r=>r!==e);try{window.localStorage.setItem(Df,JSON.stringify(n))}catch{}return n}const yM=({attachments:t,referenceText:e,selectedWorkflow:n,matchesWorkflowToken:r,fileReferences:s,reasoningEffort:o,usedModelName:i,sendMessage:a,recordEntry:c,clearWorkflowDraft:d,setContent:f,setReferenceText:p,setAttachments:y,setFileReferences:m})=>({handleSubmit:v.useCallback(async(b,_)=>{const M=b.trim(),C=NP(t),T=(e==null?void 0:e.trim())??"";let k=M,P;if(n!=null&&n.content&&n.type==="workflow"){const j=`/${n.name}`;if(r(M,n.name)){const F=M.slice(j.length).trim();k=[n.content,F].filter(Boolean).join(`
126
126
 
127
127
  `)}}else if((n==null?void 0:n.type)==="skill"){const j=`/${n.name}`;if(r(M,n.name)){const F=M.slice(j.length).trim();k=[`[User explicitly selected skill: ${n.displayName||n.name} (ID: ${n.name})]`,F].filter(Boolean).join(`
128
128
 
@@ -130,8 +130,8 @@ You are running on **${XP(t)}**.`;return t==="windows"?n+`
130
130
 
131
131
  `)}}if(!k&&!C&&(!_||_.length===0))return;const A=[T,k,C].filter(Boolean).join(`
132
132
 
133
- `);if(c(A),fM(i??G.getState().selectedModel),f(""),d(),s.size>0){const j=Array.from(A.matchAll(/@([^\\s]+)/g));if(j.length>0){const $=[];for(const F of j){const X=F[1],K=s.get(X);K&&$.push(K)}if($.length>0){const F=JSON.stringify({type:"file_reference",paths:$.map(X=>X.path),display_text:A});await a(F,_,o,P)}else await a(A,_,o,P)}else await a(A,_,o,P)}else await a(A,_,o,P);p(null),b([]),m(new Map)},[t,d,s,r,c,o,n,a,i,b,f,m,p,e])}),pM=({currentSessionId:t,currentChat:e,currentMessages:n,reasoningEffort:r,retryLastTurn:s,navigate:o})=>{const i=v.useCallback(async(c="regenerate")=>{if(!t||!e)return;const d=[...n];d.length===0||[...d].reverse().findIndex(p=>p.role==="user")===-1||await s(r,c)},[e,t,n,r,s]),a=v.useCallback((c,d)=>{const f=o(c,d);return f.applied?f.value:null},[o]);return{retryLastMessage:i,handleHistoryNavigate:a}},mM=({referenceText:t,isToolSpecificMode:e,isRestrictConversation:n,allowedTools:r,autoToolPrefix:s,t:o})=>o(t?"chat.input.placeholderWithReference":"chat.input.placeholderWithWorkflows");function gM({value:t,onChange:e,disabled:n,dataTestId:r,appearance:s="default"}){const{token:o}=lt.useToken(),i=yt(y=>y.catalog),a=yt(y=>y.getProviderDisplayLabel);v.useEffect(()=>{i||yt.getState().loadCatalog()},[i]);const c=v.useMemo(()=>{if(!(i!=null&&i.models))return[];const y={};for(const C of i.models){const T=C.reference.provider;y[T]||(y[T]={display:C.provider_display_name,models:[]}),y[T].models.push(C)}const _=[];return Object.keys(y).forEach((C,T)=>{const k=y[C];T>0&&_.push({type:"divider"}),_.push({type:"group",label:k.display,children:k.models.map(P=>({key:`${P.reference.provider}/${P.reference.model}`,label:l.jsxs(We,{size:4,children:[l.jsx("span",{children:P.display_name}),P.capabilities.supports_vision&&l.jsx(He,{color:"blue",style:{fontSize:10,lineHeight:"16px",padding:"0 3px"},children:"Vision"})]})}))})}),_},[i]),d=t?`${t.provider}/${t.model}`:void 0,f=t?a(t.provider):void 0,p=t?`${f||t.provider}/${t.model}`:Et.t("chat.model.selectModel"),b=v.useCallback(y=>{const[_,...M]=y.key.split("/"),C=M.join("/");_&&C&&e({provider:_,model:C})},[e]),m=s==="contrast"?{minWidth:220,width:"100%",justifyContent:"space-between",padding:"0 12px",height:36,borderRadius:o.borderRadiusLG,background:o.colorBgElevated,border:`1px solid ${o.colorBorder}`,boxShadow:"none"}:{minWidth:146,padding:"0 12px",height:36,borderRadius:18},w=s==="contrast"?{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,textAlign:"left"}:{maxWidth:150,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13};return l.jsx(We,{size:4,"data-tour-id":"model-picker",children:l.jsx(mo,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:d?[d]:[],items:c,style:{maxHeight:"50vh",overflowY:"auto"},onClick:b},disabled:n,children:l.jsx(Ae,{"data-testid":r,type:s==="contrast"?"default":"text",size:"small",block:s==="contrast",disabled:n,style:m,title:p,children:l.jsxs(We,{size:4,style:{width:"100%",justifyContent:"space-between"},children:[l.jsx("span",{style:w,children:p}),l.jsx(go,{style:{fontSize:10}})]})})})})}const Kp="chat-send-message",Xp="reference-text",yM="chat-model-options-cache-v1",av=24*60*60*1e3,bM=["low","medium","high","xhigh","max"],vM=[],SM=1024,wM=3,xM={copilot:"GitHub Copilot",openai:"OpenAI",anthropic:"Anthropic",gemini:"Google Gemini",bodhi:"Bodhi"},_M=[{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"}],CM=[{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"}],kM=[{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"}],TM=[{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4o-mini",label:"GPT-4o Mini"}],lv=t=>`${yM}:${t}`,EM=t=>{if(typeof window>"u")return null;try{const e=localStorage.getItem(lv(t));if(!e)return null;const n=JSON.parse(e);return!n||!Array.isArray(n.options)||Date.now()-n.timestamp>av?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}},PM=(t,e)=>{if(!(typeof window>"u"))try{const n={timestamp:Date.now(),options:e};localStorage.setItem(lv(t),JSON.stringify(n))}catch{}},MM=async t=>{const e=Dn.getInstance();try{const n=await e.loadModelOptionsCache(t);if(n)return Date.now()-n.timestamp>av?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string")}catch{}return EM(t)},AM=async(t,e)=>{const n=Dn.getInstance();try{await n.saveModelOptionsCache(t,e,Date.now())}catch{}PM(t,e)},RM=({resolvedProviderType:t,currentProvider:e,activeModel:n,getErrorMessage:r,redirectToProviderSettingsIfNeeded:s})=>{const[o,i]=v.useState([]),[a,c]=v.useState(!1),[d,f]=v.useState(null);v.useEffect(()=>{(async()=>{const y=await MM(t);i(y??[]),f(null)})()},[t]);const p=v.useMemo(()=>({openai:[..._M],anthropic:[...CM],gemini:[...kM],copilot:[...TM],bodhi:[]})[t]||[],[t]),b=v.useMemo(()=>{const _=[...o.length>0?o:p];return n&&!_.some(M=>M.value===n)&&_.unshift({value:n,label:n}),_},[o,p,n]),m=v.useCallback(async(y,_,M)=>{if(!(!(M!=null&&M.force)&&o.length>0))try{c(!0),f(null);const T=(_==="copilot"?await vb.getModels(y):p).map(k=>({value:typeof k=="string"?k:k.value,label:typeof k=="string"?k:k.label}));i(T),await AM(_,T)}catch(C){f(r(C))}finally{c(!1)}},[p,r,o.length]),w=v.useCallback(y=>{y&&(s()||a||o.length>0||m(e,t))},[e,t,m,a,o.length,s]);return{modelOptions:o,isModelOptionsLoading:a,modelOptionsError:d,resolvedModelOptions:b,handleModelDropdownVisibleChange:w}},Qo=(t,e)=>{},jM=({sessionId:t,reasoningEffort:e,activeModelRef:n,isFlagOn:r,messageApi:s,setContent:o,pendingQuestionToolCallId:i,t:a})=>{const c=G(y=>y.markRespondStart),d=G(y=>y.markSettleTimeout),f=G(y=>y.applyExecutionStarted),p=G(y=>y.clearPendingQuestion),b=v.useCallback(()=>{var _,M;if(!t)return null;const y=(_=G.getState().executionBySession)==null?void 0:_[t];return y?{phase:y.phase,generation:y.generation,backendRunId:y.backendRunId??null,backendIsRunning:y.backend.isRunning,hasPendingQuestion:y.interaction.pendingQuestion!=null,pendingQuestionToolCallId:((M=y.interaction.pendingQuestion)==null?void 0:M.toolCallId)??null,tokenCount:y.stream.tokenCount,hasTokens:y.stream.hasTokens,activeReasons:y.activeReasons}:null},[t]),m=v.useCallback(y=>y?!!So(y)(G.getState()):!1,[]);return{handleRespondSubmit:v.useCallback(async y=>{const _=y.trim();if(!_||!t)return;const C=So(t)(G.getState());if(C&&!C.allowCustom&&C.options.length>0&&!C.options.includes(_)){s.warning(a("components.questionDialog.selectOptionWarning"));return}Qo("input.respond:start",{trimmedLength:_.length,executionBefore:b()});const T=c(t,i??null);Qo("input.respond:afterMarkRespondStart",{executionAfterMarkRespondStart:b()}),await new Promise(k=>setTimeout(k,0));try{const k={response:_,reasoning_effort:e};r()&&n&&(k.model_ref=n,k.provider=n.provider);const P=await Je.post(`respond/${t}`,k);Qo("input.respond:response",{sessionId:t,result:P,executionAfterResponse:b()}),s.success(a("components.questionDialog.responseSubmittedContinue")),o(""),p(t),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Td,{detail:{sessionId:t}}));const A=P==null?void 0:P.auto_resume_status,j=P==null?void 0:P.run_id;Qo("input.respond:resumeDecision",{sessionId:t,resumeStatus:A,runId:j??null,newGeneration:T,executionBeforeResumeDecision:b()}),A==="started"||A==="already_running"?(f(t,j??"",T),Qo("input.respond:afterApplyExecutionStarted",{sessionId:t,resumeStatus:A,runId:j??null,newGeneration:T,executionAfterApplyExecutionStarted:b()})):(A==="error"||!A)&&(console.error("[InputContainer] Failed to auto-resume agent execution"),d(t))}catch(k){console.error("[InputContainer] Failed to submit respond:",k),s.error(k instanceof Error?k.message:a("components.questionDialog.submitFailed")),d(t)}},[t,e,n,r,s,o,p,c,d,f,b,i,a]),shouldUseRespondModeForSession:m}},IM=({sessionId:t,currentChat:e,updateSession:n,messageApi:r,recordEntry:s,clearCommandDraft:o,textAreaRef:i,setContent:a})=>{var y;const c=((y=e==null?void 0:e.config)==null?void 0:y.goldConfig)??null,d=(c==null?void 0:c.enabled)===!0,f=(c==null?void 0:c.goal)??(c==null?void 0:c.evaluation_prompt)??"",p=v.useCallback((_,M)=>({...c??{},enabled:_,auto_answer_enabled:_,auto_continue_enabled:_,goal:M.trim()||void 0,max_output_tokens:(c==null?void 0:c.max_output_tokens)??SM,max_auto_continuations:(c==null?void 0:c.max_auto_continuations)??wM}),[c]),b=v.useCallback(_=>{!t||!e||n(t,{config:{...e.config,goldConfig:_}})},[e,t,n]),m=v.useCallback(()=>{a(""),o(),requestAnimationFrame(()=>{var _;(_=i.current)==null||_.focus()})},[o,a,i]);return{handleGoalCommand:v.useCallback(async _=>{const M=_.trim();if(!/^\/goal(?:\s|$)/i.test(M))return!1;if(!t||!e)return r.warning("Create or select a session before using /goal."),!0;const C=M.replace(/^\/goal(?:\s+)?/i,"").trim(),T=C.toLowerCase();if(s(M),!C||T==="status"){const k=f.trim(),P=k.length>120?`${k.slice(0,120)}…`:k;return r.info(d?`Goal is enabled for this session${P?`: ${P}`:"."}`:"Goal is disabled for this session. Use /goal <prompt> to enable it."),m(),!0}if(["off","disable","disabled"].includes(T))return b(p(!1,f)),r.success("Goal disabled for this session."),m(),!0;if(["clear","reset"].includes(T))return b(p(!1,"")),r.success("Goal cleared for this session."),m(),!0;if(["on","enable","enabled"].includes(T)){const k=f.trim();return k?(b(p(!0,k)),r.success("Goal enabled for this session."),m(),!0):(r.warning("Usage: /goal <prompt> to enable Goal for this session."),!0)}return b(p(!0,C)),r.success("Goal enabled for this session."),m(),!0},[p,m,e,f,d,r,b,s,t])}},OM=v.lazy(()=>Ft(()=>import("./FilePreview-Xwi8sy95.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),$M=v.lazy(()=>Ft(()=>import("./CommandSelector-D1iub2Xt.js"),__vite__mapDeps([8,1,2,3,4,5,6,9]),import.meta.url)),LM=v.lazy(()=>Ft(()=>import("./WorkspacePathModal-VY4m4JK9.js"),__vite__mapDeps([10,1,2,3,5,4,6]),import.meta.url)),DM=v.lazy(()=>Ft(()=>import("./FileReferenceSelector-DNssZZdw.js"),__vite__mapDeps([11,1,2,3]),import.meta.url)),{useToken:FM}=lt,NM=({sessionId:t,onWorkflowDraftChange:e,statusIndicator:n})=>{var La,Jn,Mo,ur,Ao,zs,It;const{t:r}=Xe(),s=v.useRef(null),{token:o}=FM(),i=Zr(),a=sa(_e=>_e.open),c=G(_e=>t??_e.currentSessionId),d=G(_e=>_e.currentSessionId),f=G(Cr(c)),p=v.useMemo(()=>(f==null?void 0:f.messages)||[],[f==null?void 0:f.messages]),b=G(_e=>_e.addMessage),m=G(_e=>_e.updateSession),w=G(jb(c)),y=G(Ib(c)),M=G(Ob(c))||(f==null?void 0:f.isRunning)===!0&&y,C=G(So(c)),T=Lf(c),k=iv((La=f==null?void 0:f.config)==null?void 0:La.model_ref),P=yt(_e=>_e.isProviderModelRefEnabled),A=G(_e=>c?_e.inputStates[c]:void 0),j=G(_e=>_e.setInputContent),$=G(_e=>_e.setReferenceText),F=G(_e=>_e.setInputReasoningEffort),X=yt(_e=>_e.currentProvider),K=yt(_e=>_e.providerConfig),O=yt(_e=>_e.providerInstances),W=yt(_e=>_e.getProviderType),ae=v.useMemo(()=>W(X),[X,W]),[Y,ce]=v.useState(!1),L=(A==null?void 0:A.content)||"",oe=(A==null?void 0:A.referenceText)||null,Se=v.useMemo(()=>{var _e,xt;return fb(K,k,((xt=(_e=f==null?void 0:f.config)==null?void 0:_e.model_ref)==null?void 0:xt.provider)??X,O)},[k,(Mo=(Jn=f==null?void 0:f.config)==null?void 0:Jn.model_ref)==null?void 0:Mo.provider,K,X,O]),J=v.useMemo(()=>c?Ab(c):void 0,[c]),te=xC({sessionEffort:(ur=f==null?void 0:f.config)==null?void 0:ur.reasoningEffort,inputEffort:A==null?void 0:A.reasoningEffort,persistedEffort:J,providerDefault:Se}),he=v.useCallback(_e=>{c&&j(c,_e)},[c,j]),de=v.useCallback(_e=>{c&&$(c,_e)},[c,$]),me=v.useCallback(async _e=>{if(c&&(F(c,_e),!!f))try{await _s.patchSession(c,{reasoning_effort:_e}),m(c,{config:{...f.config,reasoningEffort:_e}},{skipBackendPatch:!0})}catch(xt){console.warn("[InputContainer] Failed to persist reasoning effort:",xt)}},[f,c,F,m]),ge=((Ao=f==null?void 0:f.config)==null?void 0:Ao.bypassPermissions)??!1,le=v.useCallback(async _e=>{if(!(!c||!f)){m(c,{config:{...f.config,bypassPermissions:_e}},{skipBackendPatch:!0});try{await _s.patchSession(c,{bypass_permissions:_e})}catch(xt){console.warn("[InputContainer] Failed to persist bypass permissions:",xt),m(c,{config:{...f.config,bypassPermissions:!_e}},{skipBackendPatch:!0})}}},[f,c,m]),{sendMessage:ke,retryLastTurn:je,cancel:fe}=rM({sessionId:c,addMessage:b,updateSession:m});v.useEffect(()=>{if(typeof window>"u")return;const _e=ln=>ln?c===ln:c!==null&&c===d,xt=ln=>{const nn=ln;if(!nn.detail||typeof nn.detail.text!="string")return;const Qn=typeof nn.detail.sessionId=="string"?nn.detail.sessionId:null;if(!_e(Qn))return;const mn=nn.detail.text.trim();mn&&(nn.detail.handled=!0,de(mn),requestAnimationFrame(()=>{var Mn;(Mn=s.current)==null||Mn.focus()}))},tn=ln=>{var mn;const nn=ln,Qn=typeof((mn=nn.detail)==null?void 0:mn.sessionId)=="string"?nn.detail.sessionId:null;_e(Qn)&&(nn.detail&&(nn.detail.handled=!0),requestAnimationFrame(()=>{var Mn;(Mn=s.current)==null||Mn.focus()}))};return window.addEventListener(Xp,xt),window.addEventListener(Zl,tn),()=>{window.removeEventListener(Xp,xt),window.removeEventListener(Zl,tn)}},[d,c,de]);const{message:ne}=En.useApp(),Q=!1,ie=!1,ye=vM,$e=void 0,{recordEntry:qe,navigate:Ue,acknowledgeManualInput:rt}=sM(c),{attachments:ht,setAttachments:Ct,handleAttachmentsAdded:vt,handleAttachmentRemove:Ve,handleClearAttachments:Ht}=dM(),ct=aM({setContent:he,onWorkflowDraftChange:e,acknowledgeManualInput:rt,currentSessionId:c,textAreaRef:s,content:L}),pt=uM({content:L,setContent:he,currentSessionId:c,currentChat:f,updateSession:m,messageApi:ne}),{setShowFileSelector:on}=pt;v.useEffect(()=>{ct.showCommandSelector&&on(!1)},[ct.showCommandSelector,on]);const{handleSubmit:Nt}=hM({attachments:ht,referenceText:oe,selectedWorkflow:ct.selectedCommand,matchesWorkflowToken:ct.matchesCommandToken,fileReferences:pt.fileReferences,reasoningEffort:te,usedModelName:(k==null?void 0:k.model)??((It=(zs=f==null?void 0:f.config)==null?void 0:zs.model_ref)==null?void 0:It.model),sendMessage:ke,recordEntry:qe,clearWorkflowDraft:ct.clearCommandDraft,setContent:he,setReferenceText:de,setAttachments:Ct,setFileReferences:pt.setFileReferences}),Tt=C?{sessionId:c??"",question:C.question,options:C.options,allowCustom:C.allowCustom,toolCallId:C.toolCallId}:null,xn=!!Tt,an=(Tt==null?void 0:Tt.options)||[],be=(Tt==null?void 0:Tt.allowCustom)??!0,{handleRespondSubmit:Be,shouldUseRespondModeForSession:Le}=jM({sessionId:c,reasoningEffort:te,activeModelRef:k,isFlagOn:P,messageApi:ne,setContent:he,pendingQuestionToolCallId:(Tt==null?void 0:Tt.toolCallId)??null,t:r});IM({sessionId:c,currentChat:f,updateSession:m,messageApi:ne,recordEntry:qe,clearCommandDraft:ct.clearCommandDraft,textAreaRef:s,setContent:he});const Ge=v.useCallback(async(_e,xt)=>{if(Le(c)){await Be(_e);return}await Nt(_e,xt)},[Be,Nt,c,Le]),Vt=v.useCallback(async(_e,xt)=>{await Ge(_e,xt)},[Ge]);v.useEffect(()=>{if(typeof window>"u")return;const _e=xt=>{var mn,Mn,ss;const tn=xt;if(!tn.detail)return;const ln=typeof tn.detail.sessionId=="string"?tn.detail.sessionId:null;if(!(ln?c===ln:c!==null&&c===d))return;tn.detail.handled=!0;const Qn=(mn=tn.detail)==null?void 0:mn.content;if(typeof Qn!="string"||Qn.trim().length===0){(ss=(Mn=tn.detail)==null?void 0:Mn.reject)==null||ss.call(Mn,new Error("External send message content is empty"));return}Ge(Qn,void 0).then(()=>{var kr,ot;(ot=(kr=tn.detail)==null?void 0:kr.resolve)==null||ot.call(kr)}).catch(kr=>{var ot,Ro;(Ro=(ot=tn.detail)==null?void 0:ot.reject)==null||Ro.call(ot,kr)})};return window.addEventListener(Kp,_e),()=>{window.removeEventListener(Kp,_e)}},[d,c,Ge]);const{retryLastMessage:pn,handleHistoryNavigate:De}=pM({currentSessionId:c,currentChat:f,currentMessages:p,reasoningEffort:te,retryLastTurn:je,navigate:Ue}),Fn=v.useCallback(()=>de(null),[de]),qt=v.useMemo(()=>K.providers[X],[K,X]),Lt=v.useMemo(()=>!qt||typeof qt!="object"?!1:ae==="copilot"?Object.keys(qt).length>0:"api_key"in qt?typeof qt.api_key=="string"&&qt.api_key.trim().length>0:!1,[ae,qt]),Re=v.useCallback(()=>Lt?!1:(a("chat"),ne.warning(r("chat.view.providerNotConfigured")),!0),[Lt,ne,a,r]),Xn=v.useCallback(_e=>_e instanceof Error&&_e.message.trim()?_e.message:r("chat.view.unknownError"),[r]),{isModelOptionsLoading:ns,modelOptionsError:ir,resolvedModelOptions:Ir,handleModelDropdownVisibleChange:ar}=RM({resolvedProviderType:ae,currentProvider:X,activeModel:T,getErrorMessage:Xn,redirectToProviderSettingsIfNeeded:Re}),Fs=v.useCallback(async _e=>{var xt,tn,ln;if(!(!_e||_e===T)&&!Y)try{if(Re())return;if(ce(!0),!c||!f){c&&m(c,{config:{systemPromptId:((xt=f==null?void 0:f.config)==null?void 0:xt.systemPromptId)||"default",baseSystemPrompt:((tn=f==null?void 0:f.config)==null?void 0:tn.baseSystemPrompt)||"",lastUsedEnhancedPrompt:((ln=f==null?void 0:f.config)==null?void 0:ln.lastUsedEnhancedPrompt)??null,...(f==null?void 0:f.config)||{},model:_e}});return}await _s.patchSession(c,{model:_e}),m(c,{config:{...f.config,model:_e}},{skipBackendPatch:!0}),ne.success(r("settings.providerTab.modelUpdated"))}catch(nn){ne.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xn(nn)}`)}finally{ce(!1)}},[T,f,Xn,Y,ne,Re,c,r,m]),rs=v.useCallback(async _e=>{if(!c||!(f!=null&&f.config)){yt.getState().setSelectedModelRef(_e);return}if(!Y)try{ce(!0),await _s.patchSession(c,{model:_e.model,model_ref:_e,provider:_e.provider}),yt.getState().setSelectedModelRef(_e),m(c,{config:{...f.config,model:_e.model,model_ref:_e}},{skipBackendPatch:!0}),ne.success(r("settings.providerTab.modelUpdated"))}catch(xt){ne.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xn(xt)}`)}finally{ce(!1)}},[f==null?void 0:f.config,Xn,Y,ne,c,r,m]),Yn=v.useMemo(()=>mM({referenceText:oe,isToolSpecificMode:Q,isRestrictConversation:ie,allowedTools:ye,autoToolPrefix:$e,t:r}),[oe,Q,ie,ye,$e,r]),Vn=xn&&be?r("chat.respond.customAnswerPlaceholder"):xn?r("components.questionDialog.selectOptionWarning"):Yn,Or=xn?r("chat.respond.submitToolResult","Submit tool result"):void 0,Nn=v.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]),Ee=v.useMemo(()=>Nn[te]??te,[te,Nn]),Ye=v.useMemo(()=>l.jsx(mo,{trigger:["click"],placement:"topLeft",disabled:!T||y,menu:{selectable:!0,selectedKeys:[te],items:bM.map(_e=>({key:_e,label:Nn[_e]})),onClick:({key:_e})=>{me(_e)}},children:l.jsx(Ae,{type:"text",size:"small",disabled:!T||w,style:{minWidth:i?74:88,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:te==="medium"?o.colorTextSecondary:o.colorPrimary},title:r("chat.input.reasoningTitle",{label:Ee}),children:l.jsxs(We,{size:6,children:[l.jsx(zx,{}),l.jsx("span",{children:Ee}),l.jsx(go,{style:{fontSize:10}})]})})}),[T,Ee,y,i,w,te,Nn,me,r,o.colorPrimary,o.colorTextSecondary]),wt=T||r(Lt?"chat.model.selectModel":"chat.model.configureProvider"),Pt=v.useMemo(()=>Ir.length>0?Ir.map(_e=>({key:_e.value,label:_e.label})):[{key:"__no_models__",label:ir||r("chat.model.noModelsAvailable"),disabled:!0}],[Ir,ir,r]),Kt=v.useMemo(()=>l.jsx(Ae,{type:"text",size:"small",disabled:w||Y,onClick:()=>{Lt||Re()},style:{minWidth:i?112:146,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:ir?o.colorError:o.colorTextSecondary},title:wt,children:l.jsxs(We,{size:6,children:[ns?l.jsx(po,{}):l.jsx(sf,{}),l.jsx("span",{style:{maxWidth:i?84:128,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:wt}),l.jsx(go,{style:{fontSize:10}})]})}),[w,Y,Lt,Re,i,ir,o.colorError,o.colorTextSecondary,wt,ns]),lr=v.useMemo(()=>P()?l.jsx(gM,{value:k,onChange:rs,disabled:w||Y}):Lt?l.jsx(mo,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:T?[T]:[],items:Pt,style:{maxHeight:"50vh",overflowY:"auto"},onClick:({key:_e})=>{_e!=="__no_models__"&&Fs(String(_e))}},onOpenChange:ar,disabled:y||Y,children:Kt}):Kt,[P,k,rs,w,Y,Lt,T,Pt,Fs,ar,y,Kt]),$a=v.useMemo(()=>l.jsx(Ae,{type:"text",size:"small",disabled:y,onClick:()=>le(!ge),"aria-pressed":ge,style:{minWidth:i?40:void 0,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:ge?o.colorError:o.colorTextSecondary},title:r(ge?"chat.input.bypassPermissions.onTitle":"chat.input.bypassPermissions.offTitle"),children:l.jsxs(We,{size:6,children:[ge?l.jsx(Bx,{}):l.jsx(Ly,{}),!i&&l.jsx("span",{children:r("chat.input.bypassPermissions.label")})]})}),[ge,y,i,le,r,o.colorError,o.colorTextSecondary]),cr=v.useMemo(()=>l.jsxs(We,{size:0,wrap:!0,children:[lr,Ye,$a]}),[lr,Ye,$a]),$r=v.useCallback(_e=>({isValid:!0}),[ie,$e,r]),Gn=v.useMemo(()=>p.some(_e=>_e.role==="user"),[p]),Ns=v.useMemo(()=>({isStreaming:w,isInputLocked:y,canCancel:M,hasMessages:Gn,allowRetry:!0,onRetry:pn,onCancel:fe,onHistoryNavigate:De}),[w,y,M,Gn,pn,fe,De]);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:[!T&&l.jsx(rr,{type:"warning",showIcon:!0,icon:l.jsx(hc,{}),message:r(Lt?"chat.model.noModelSelected":"chat.model.providerNotConfigured"),description:r(Lt?"chat.model.selectModelHint":"chat.model.configureProviderHint"),action:Lt?void 0:l.jsx(We,{children:l.jsx("a",{onClick:()=>a("chat"),children:r("chat.model.openSettings")})}),style:{marginBottom:o.marginSM}}),Q,oe&&l.jsx(BP,{text:oe,onClose:Fn}),ht.length>0&&l.jsx(v.Suspense,{fallback:l.jsx(bo,{size:"small"}),children:l.jsx(OM,{files:ht,onRemove:Ve,onClear:Ht})}),xn&&an.length>0&&l.jsx("div",{style:{marginBottom:o.marginSM},children:l.jsx(We,{wrap:!0,size:[8,8],children:an.map(_e=>l.jsx(Ae,{size:"small",onClick:()=>{Be(_e)},disabled:y,children:_e},_e))})}),l.jsx(NP,{value:L,onChange:ct.handleInputChange,onSubmit:Vt,placeholder:Vn,allowImages:!0,disabled:!T||xn&&!be&&an.length>0,statusIndicator:n,submitButtonLabel:Or,isWorkflowSelectorVisible:ct.showCommandSelector,textAreaRef:s,validateMessage:$r,onAttachmentsAdded:vt,onWorkflowCommandChange:ct.handleCommandChange,onFileReferenceChange:pt.handleFileReferenceChange,onFileReferenceButtonClick:pt.handleFileReferenceButtonClick,leftControlsExtra:cr,interaction:Ns}),l.jsx(v.Suspense,{fallback:null,children:l.jsx($M,{visible:ct.showCommandSelector,onSelect:ct.handleCommandSelect,onCancel:ct.handleCommandSelectorCancel,onAutoComplete:ct.handleAutoComplete,searchText:ct.commandSearchText})}),pt.showFileSelector&&l.jsx(v.Suspense,{fallback:l.jsx(bo,{size:"small"}),children:l.jsx(DM,{visible:pt.showFileSelector,files:pt.workspaceFiles,searchText:pt.fileSearchText,loading:pt.isWorkspaceLoading,error:pt.workspaceError,onSelect:pt.handleFileReferenceSelect,onCancel:pt.handleFileSelectorCancel,onChangeWorkspace:()=>{pt.setWorkspacePathInput((f==null?void 0:f.config.workspacePath)??""),pt.setIsWorkspaceModalVisible(!0)}})}),l.jsx(v.Suspense,{fallback:null,children:l.jsx(LM,{open:pt.isWorkspaceModalVisible,initialPath:pt.workspacePathInput,loading:pt.isSavingWorkspace,onSubmit:pt.handleWorkspaceModalSubmit,onCancel:pt.handleWorkspaceModalCancel})})]})},zM={maxLines:8,maxCharacters:500},Yr=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),mr=t=>typeof t=="string"?t:void 0,gs=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,Yp=t=>typeof t=="boolean"?t:void 0,Pa=t=>{if(!t)return null;const e=t.trim();if(!e.startsWith("{")||!e.endsWith("}"))return null;try{const n=JSON.parse(e);return Yr(n)?n:null}catch{return null}},cv=t=>/\\u[0-9a-fA-F]{4}|\\n|\\t|\\r/.test(t)?t.replace(/\\u([0-9a-fA-F]{4})/g,(e,n)=>String.fromCharCode(parseInt(n,16))).replace(/\\n/g,`
134
- `).replace(/\\t/g," ").replace(/\\r/g,"\r"):t,Sr=t=>Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>cv(e).trim()).filter(Boolean):[],Zt=t=>{if(typeof t!="string")return;const e=cv(t).trim();return e.length>0?e:void 0},BM=t=>{if(!Yr(t))return;const e=Zt(t.graph);if(e)return{title:Zt(t.title),graph:e}},WM=t=>{if(!Yr(t))return;const e=Zt(t.summary)??Zt(t.conclusion);if(e)return{title:Zt(t.title)||"Conclusion",summary:e,key_points:Sr(t.key_points),next_steps:Sr(t.next_steps),confidence:Zt(t.confidence),mermaid:BM(t.mermaid)}},UM=t=>{const e=Pa(t);if(!e)return null;const n=Zt(e.conclusion);return!n||e.type!=null&&e.type!=="conclusion"?null:{type:"conclusion",title:Zt(e.title)||"Conclusion",conclusion:n,key_points:Sr(e.key_points),next_steps:Sr(e.next_steps),confidence:Zt(e.confidence)}},HM=t=>{const e=Pa(t);if(!e)return null;const n=Zt(e.question);if(!n)return null;const r=Zt(e.status);return r&&r!=="awaiting_user_input"&&r!=="awaiting_permission_approval"?null:{question:n,options:Sr(e.options),allow_custom:typeof e.allow_custom=="boolean"?e.allow_custom:!0,conclusion:WM(e.conclusion)}},qM=t=>{const e=Pa(t);return Zt(e==null?void 0:e.status)==="awaiting_permission_approval"},uv=t=>{const e=Pa(t);if(!e)return null;const n=mr(e.bash_id),r=mr(e.command);return!n||e.status!=="running"||!r?null:{bashId:n,command:r}},KM=t=>{var n;if(!t)return null;const e=[`## ${t.title}`,t.summary];if(t.confidence&&e.push(`**Confidence:** ${t.confidence}`),t.key_points.length>0&&e.push(["**Key points**",...t.key_points.map(r=>`- ${r}`)].join(`
133
+ `);if(c(A),gM(i??G.getState().selectedModel),f(""),d(),s.size>0){const j=Array.from(A.matchAll(/@([^\\s]+)/g));if(j.length>0){const $=[];for(const F of j){const X=F[1],K=s.get(X);K&&$.push(K)}if($.length>0){const F=JSON.stringify({type:"file_reference",paths:$.map(X=>X.path),display_text:A});await a(F,_,o,P)}else await a(A,_,o,P)}else await a(A,_,o,P)}else await a(A,_,o,P);p(null),y([]),m(new Map)},[t,d,s,r,c,o,n,a,i,y,f,m,p,e])}),bM=({currentSessionId:t,currentChat:e,currentMessages:n,reasoningEffort:r,retryLastTurn:s,navigate:o})=>{const i=v.useCallback(async(c="regenerate")=>{if(!t||!e)return;const d=[...n];d.length===0||[...d].reverse().findIndex(p=>p.role==="user")===-1||await s(r,c)},[e,t,n,r,s]),a=v.useCallback((c,d)=>{const f=o(c,d);return f.applied?f.value:null},[o]);return{retryLastMessage:i,handleHistoryNavigate:a}},vM=({referenceText:t,isToolSpecificMode:e,isRestrictConversation:n,allowedTools:r,autoToolPrefix:s,t:o})=>o(t?"chat.input.placeholderWithReference":"chat.input.placeholderWithWorkflows");function SM({value:t,onChange:e,disabled:n,dataTestId:r,appearance:s="default"}){const{token:o}=lt.useToken(),i=yt(b=>b.catalog),a=yt(b=>b.getProviderDisplayLabel);v.useEffect(()=>{i||yt.getState().loadCatalog()},[i]);const c=v.useMemo(()=>{if(!(i!=null&&i.models))return[];const b={};for(const C of i.models){const T=C.reference.provider;b[T]||(b[T]={display:C.provider_display_name,models:[]}),b[T].models.push(C)}const _=[];return Object.keys(b).forEach((C,T)=>{const k=b[C];T>0&&_.push({type:"divider"}),_.push({type:"group",label:k.display,children:k.models.map(P=>({key:`${P.reference.provider}/${P.reference.model}`,label:l.jsxs(We,{size:4,children:[l.jsx("span",{children:P.display_name}),P.capabilities.supports_vision&&l.jsx(He,{color:"blue",style:{fontSize:10,lineHeight:"16px",padding:"0 3px"},children:"Vision"})]})}))})}),_},[i]),d=t?`${t.provider}/${t.model}`:void 0,f=t?a(t.provider):void 0,p=t?`${f||t.provider}/${t.model}`:Et.t("chat.model.selectModel"),y=v.useCallback(b=>{const[_,...M]=b.key.split("/"),C=M.join("/");_&&C&&e({provider:_,model:C})},[e]),m=s==="contrast"?{minWidth:220,width:"100%",justifyContent:"space-between",padding:"0 12px",height:36,borderRadius:o.borderRadiusLG,background:o.colorBgElevated,border:`1px solid ${o.colorBorder}`,boxShadow:"none"}:{minWidth:146,padding:"0 12px",height:36,borderRadius:18},w=s==="contrast"?{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,textAlign:"left"}:{maxWidth:150,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13};return l.jsx(We,{size:4,"data-tour-id":"model-picker",children:l.jsx(mo,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:d?[d]:[],items:c,style:{maxHeight:"50vh",overflowY:"auto"},onClick:y},disabled:n,children:l.jsx(Ae,{"data-testid":r,type:s==="contrast"?"default":"text",size:"small",block:s==="contrast",disabled:n,style:m,title:p,children:l.jsxs(We,{size:4,style:{width:"100%",justifyContent:"space-between"},children:[l.jsx("span",{style:w,children:p}),l.jsx(go,{style:{fontSize:10}})]})})})})}const Xp="chat-send-message",Yp="reference-text",wM="chat-model-options-cache-v1",uv=24*60*60*1e3,xM=["low","medium","high","xhigh","max"],_M=[],CM=1024,kM=3,TM={copilot:"GitHub Copilot",openai:"OpenAI",anthropic:"Anthropic",gemini:"Google Gemini",bodhi:"Bodhi"},EM=[{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"}],PM=[{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"}],MM=[{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"}],AM=[{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4o-mini",label:"GPT-4o Mini"}],dv=t=>`${wM}:${t}`,RM=t=>{if(typeof window>"u")return null;try{const e=localStorage.getItem(dv(t));if(!e)return null;const n=JSON.parse(e);return!n||!Array.isArray(n.options)||Date.now()-n.timestamp>uv?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}},jM=(t,e)=>{if(!(typeof window>"u"))try{const n={timestamp:Date.now(),options:e};localStorage.setItem(dv(t),JSON.stringify(n))}catch{}},IM=async t=>{const e=Dn.getInstance();try{const n=await e.loadModelOptionsCache(t);if(n)return Date.now()-n.timestamp>uv?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string")}catch{}return RM(t)},OM=async(t,e)=>{const n=Dn.getInstance();try{await n.saveModelOptionsCache(t,e,Date.now())}catch{}jM(t,e)},$M=({resolvedProviderType:t,currentProvider:e,activeModel:n,getErrorMessage:r,redirectToProviderSettingsIfNeeded:s})=>{const[o,i]=v.useState([]),[a,c]=v.useState(!1),[d,f]=v.useState(null);v.useEffect(()=>{(async()=>{const b=await IM(t);i(b??[]),f(null)})()},[t]);const p=v.useMemo(()=>({openai:[...EM],anthropic:[...PM],gemini:[...MM],copilot:[...AM],bodhi:[]})[t]||[],[t]),y=v.useMemo(()=>{const _=[...o.length>0?o:p];return n&&!_.some(M=>M.value===n)&&_.unshift({value:n,label:n}),_},[o,p,n]),m=v.useCallback(async(b,_,M)=>{if(!(!(M!=null&&M.force)&&o.length>0))try{c(!0),f(null);const T=(_==="copilot"?await xb.getModels(b):p).map(k=>({value:typeof k=="string"?k:k.value,label:typeof k=="string"?k:k.label}));i(T),await OM(_,T)}catch(C){f(r(C))}finally{c(!1)}},[p,r,o.length]),w=v.useCallback(b=>{b&&(s()||a||o.length>0||m(e,t))},[e,t,m,a,o.length,s]);return{modelOptions:o,isModelOptionsLoading:a,modelOptionsError:d,resolvedModelOptions:y,handleModelDropdownVisibleChange:w}},Zo=(t,e)=>{},LM=({sessionId:t,reasoningEffort:e,activeModelRef:n,isFlagOn:r,messageApi:s,setContent:o,pendingQuestionToolCallId:i,t:a})=>{const c=G(b=>b.markRespondStart),d=G(b=>b.markSettleTimeout),f=G(b=>b.applyExecutionStarted),p=G(b=>b.clearPendingQuestion),y=v.useCallback(()=>{var _,M;if(!t)return null;const b=(_=G.getState().executionBySession)==null?void 0:_[t];return b?{phase:b.phase,generation:b.generation,backendRunId:b.backendRunId??null,backendIsRunning:b.backend.isRunning,hasPendingQuestion:b.interaction.pendingQuestion!=null,pendingQuestionToolCallId:((M=b.interaction.pendingQuestion)==null?void 0:M.toolCallId)??null,tokenCount:b.stream.tokenCount,hasTokens:b.stream.hasTokens,activeReasons:b.activeReasons}:null},[t]),m=v.useCallback(b=>b?!!wo(b)(G.getState()):!1,[]);return{handleRespondSubmit:v.useCallback(async b=>{const _=b.trim();if(!_||!t)return;const C=wo(t)(G.getState());if(C&&!C.allowCustom&&C.options.length>0&&!C.options.includes(_)){s.warning(a("components.questionDialog.selectOptionWarning"));return}Zo("input.respond:start",{trimmedLength:_.length,executionBefore:y()});const T=c(t,i??null);Zo("input.respond:afterMarkRespondStart",{executionAfterMarkRespondStart:y()}),await new Promise(k=>setTimeout(k,0));try{const k={response:_,reasoning_effort:e};r()&&n&&(k.model_ref=n,k.provider=n.provider);const P=await Je.post(`respond/${t}`,k);Zo("input.respond:response",{sessionId:t,result:P,executionAfterResponse:y()}),s.success(a("components.questionDialog.responseSubmittedContinue")),o(""),p(t),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Td,{detail:{sessionId:t}}));const A=P==null?void 0:P.auto_resume_status,j=P==null?void 0:P.run_id;Zo("input.respond:resumeDecision",{sessionId:t,resumeStatus:A,runId:j??null,newGeneration:T,executionBeforeResumeDecision:y()}),A==="started"||A==="already_running"?(f(t,j??"",T),Zo("input.respond:afterApplyExecutionStarted",{sessionId:t,resumeStatus:A,runId:j??null,newGeneration:T,executionAfterApplyExecutionStarted:y()})):(A==="error"||!A)&&(console.error("[InputContainer] Failed to auto-resume agent execution"),d(t))}catch(k){console.error("[InputContainer] Failed to submit respond:",k),s.error(k instanceof Error?k.message:a("components.questionDialog.submitFailed")),d(t)}},[t,e,n,r,s,o,p,c,d,f,y,i,a]),shouldUseRespondModeForSession:m}},DM=({sessionId:t,currentChat:e,updateSession:n,messageApi:r,recordEntry:s,clearCommandDraft:o,textAreaRef:i,setContent:a})=>{var b;const c=((b=e==null?void 0:e.config)==null?void 0:b.goldConfig)??null,d=(c==null?void 0:c.enabled)===!0,f=(c==null?void 0:c.goal)??(c==null?void 0:c.evaluation_prompt)??"",p=v.useCallback((_,M)=>({...c??{},enabled:_,auto_answer_enabled:_,auto_continue_enabled:_,goal:M.trim()||void 0,max_output_tokens:(c==null?void 0:c.max_output_tokens)??CM,max_auto_continuations:(c==null?void 0:c.max_auto_continuations)??kM}),[c]),y=v.useCallback(_=>{!t||!e||n(t,{config:{...e.config,goldConfig:_}})},[e,t,n]),m=v.useCallback(()=>{a(""),o(),requestAnimationFrame(()=>{var _;(_=i.current)==null||_.focus()})},[o,a,i]);return{handleGoalCommand:v.useCallback(async _=>{const M=_.trim();if(!/^\/goal(?:\s|$)/i.test(M))return!1;if(!t||!e)return r.warning("Create or select a session before using /goal."),!0;const C=M.replace(/^\/goal(?:\s+)?/i,"").trim(),T=C.toLowerCase();if(s(M),!C||T==="status"){const k=f.trim(),P=k.length>120?`${k.slice(0,120)}…`:k;return r.info(d?`Goal is enabled for this session${P?`: ${P}`:"."}`:"Goal is disabled for this session. Use /goal <prompt> to enable it."),m(),!0}if(["off","disable","disabled"].includes(T))return y(p(!1,f)),r.success("Goal disabled for this session."),m(),!0;if(["clear","reset"].includes(T))return y(p(!1,"")),r.success("Goal cleared for this session."),m(),!0;if(["on","enable","enabled"].includes(T)){const k=f.trim();return k?(y(p(!0,k)),r.success("Goal enabled for this session."),m(),!0):(r.warning("Usage: /goal <prompt> to enable Goal for this session."),!0)}return y(p(!0,C)),r.success("Goal enabled for this session."),m(),!0},[p,m,e,f,d,r,y,s,t])}},FM=v.lazy(()=>$t(()=>import("./FilePreview-C78F5eM1.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),NM=v.lazy(()=>$t(()=>import("./CommandSelector-DCF_eYFM.js"),__vite__mapDeps([8,1,2,3,4,5,6,9]),import.meta.url)),zM=v.lazy(()=>$t(()=>import("./WorkspacePathModal-BG03pOha.js"),__vite__mapDeps([10,1,2,3,5,4,6]),import.meta.url)),BM=v.lazy(()=>$t(()=>import("./FileReferenceSelector-CMthjAt5.js"),__vite__mapDeps([11,1,2,3]),import.meta.url)),{useToken:WM}=lt,UM=({sessionId:t,onWorkflowDraftChange:e,statusIndicator:n})=>{var La,Jn,Ao,ur,Ro,zs,It;const{t:r}=Xe(),s=v.useRef(null),{token:o}=WM(),i=es(),a=oa(_e=>_e.open),c=G(_e=>t??_e.currentSessionId),d=G(_e=>_e.currentSessionId),f=G(Cr(c)),p=v.useMemo(()=>(f==null?void 0:f.messages)||[],[f==null?void 0:f.messages]),y=G(_e=>_e.addMessage),m=G(_e=>_e.updateSession),w=G($b(c)),b=G(Lb(c)),M=G(Db(c))||(f==null?void 0:f.isRunning)===!0&&b,C=G(wo(c)),T=Lf(c),k=cv((La=f==null?void 0:f.config)==null?void 0:La.model_ref),P=yt(_e=>_e.isProviderModelRefEnabled),A=G(_e=>c?_e.inputStates[c]:void 0),j=G(_e=>_e.setInputContent),$=G(_e=>_e.setReferenceText),F=G(_e=>_e.setInputReasoningEffort),X=yt(_e=>_e.currentProvider),K=yt(_e=>_e.providerConfig),O=yt(_e=>_e.providerInstances),W=yt(_e=>_e.getProviderType),ae=v.useMemo(()=>W(X),[X,W]),[Y,ce]=v.useState(!1),L=(A==null?void 0:A.content)||"",oe=(A==null?void 0:A.referenceText)||null,Se=v.useMemo(()=>{var _e,xt;return mb(K,k,((xt=(_e=f==null?void 0:f.config)==null?void 0:_e.model_ref)==null?void 0:xt.provider)??X,O)},[k,(Ao=(Jn=f==null?void 0:f.config)==null?void 0:Jn.model_ref)==null?void 0:Ao.provider,K,X,O]),J=v.useMemo(()=>c?Ib(c):void 0,[c]),te=TC({sessionEffort:(ur=f==null?void 0:f.config)==null?void 0:ur.reasoningEffort,inputEffort:A==null?void 0:A.reasoningEffort,persistedEffort:J,providerDefault:Se}),he=v.useCallback(_e=>{c&&j(c,_e)},[c,j]),de=v.useCallback(_e=>{c&&$(c,_e)},[c,$]),me=v.useCallback(async _e=>{if(c&&(F(c,_e),!!f))try{await _s.patchSession(c,{reasoning_effort:_e}),m(c,{config:{...f.config,reasoningEffort:_e}},{skipBackendPatch:!0})}catch(xt){console.warn("[InputContainer] Failed to persist reasoning effort:",xt)}},[f,c,F,m]),ge=((Ro=f==null?void 0:f.config)==null?void 0:Ro.bypassPermissions)??!1,le=v.useCallback(async _e=>{if(!(!c||!f)){m(c,{config:{...f.config,bypassPermissions:_e}},{skipBackendPatch:!0});try{await _s.patchSession(c,{bypass_permissions:_e})}catch(xt){console.warn("[InputContainer] Failed to persist bypass permissions:",xt),m(c,{config:{...f.config,bypassPermissions:!_e}},{skipBackendPatch:!0})}}},[f,c,m]),{sendMessage:ke,retryLastTurn:je,cancel:fe}=aM({sessionId:c,addMessage:y,updateSession:m});v.useEffect(()=>{if(typeof window>"u")return;const _e=cn=>cn?c===cn:c!==null&&c===d,xt=cn=>{const nn=cn;if(!nn.detail||typeof nn.detail.text!="string")return;const Qn=typeof nn.detail.sessionId=="string"?nn.detail.sessionId:null;if(!_e(Qn))return;const mn=nn.detail.text.trim();mn&&(nn.detail.handled=!0,de(mn),requestAnimationFrame(()=>{var Mn;(Mn=s.current)==null||Mn.focus()}))},tn=cn=>{var mn;const nn=cn,Qn=typeof((mn=nn.detail)==null?void 0:mn.sessionId)=="string"?nn.detail.sessionId:null;_e(Qn)&&(nn.detail&&(nn.detail.handled=!0),requestAnimationFrame(()=>{var Mn;(Mn=s.current)==null||Mn.focus()}))};return window.addEventListener(Yp,xt),window.addEventListener(Zl,tn),()=>{window.removeEventListener(Yp,xt),window.removeEventListener(Zl,tn)}},[d,c,de]);const{message:ne}=En.useApp(),Q=!1,ie=!1,ye=_M,$e=void 0,{recordEntry:qe,navigate:Ue,acknowledgeManualInput:rt}=lM(c),{attachments:ht,setAttachments:Ct,handleAttachmentsAdded:vt,handleAttachmentRemove:Ve,handleClearAttachments:Ht}=mM(),ct=dM({setContent:he,onWorkflowDraftChange:e,acknowledgeManualInput:rt,currentSessionId:c,textAreaRef:s,content:L}),pt=pM({content:L,setContent:he,currentSessionId:c,currentChat:f,updateSession:m,messageApi:ne}),{setShowFileSelector:an}=pt;v.useEffect(()=>{ct.showCommandSelector&&an(!1)},[ct.showCommandSelector,an]);const{handleSubmit:Nt}=yM({attachments:ht,referenceText:oe,selectedWorkflow:ct.selectedCommand,matchesWorkflowToken:ct.matchesCommandToken,fileReferences:pt.fileReferences,reasoningEffort:te,usedModelName:(k==null?void 0:k.model)??((It=(zs=f==null?void 0:f.config)==null?void 0:zs.model_ref)==null?void 0:It.model),sendMessage:ke,recordEntry:qe,clearWorkflowDraft:ct.clearCommandDraft,setContent:he,setReferenceText:de,setAttachments:Ct,setFileReferences:pt.setFileReferences}),Tt=C?{sessionId:c??"",question:C.question,options:C.options,allowCustom:C.allowCustom,toolCallId:C.toolCallId}:null,xn=!!Tt,ln=(Tt==null?void 0:Tt.options)||[],be=(Tt==null?void 0:Tt.allowCustom)??!0,{handleRespondSubmit:Be,shouldUseRespondModeForSession:Le}=LM({sessionId:c,reasoningEffort:te,activeModelRef:k,isFlagOn:P,messageApi:ne,setContent:he,pendingQuestionToolCallId:(Tt==null?void 0:Tt.toolCallId)??null,t:r});DM({sessionId:c,currentChat:f,updateSession:m,messageApi:ne,recordEntry:qe,clearCommandDraft:ct.clearCommandDraft,textAreaRef:s,setContent:he});const Ge=v.useCallback(async(_e,xt)=>{if(Le(c)){await Be(_e);return}await Nt(_e,xt)},[Be,Nt,c,Le]),Vt=v.useCallback(async(_e,xt)=>{await Ge(_e,xt)},[Ge]);v.useEffect(()=>{if(typeof window>"u")return;const _e=xt=>{var mn,Mn,ss;const tn=xt;if(!tn.detail)return;const cn=typeof tn.detail.sessionId=="string"?tn.detail.sessionId:null;if(!(cn?c===cn:c!==null&&c===d))return;tn.detail.handled=!0;const Qn=(mn=tn.detail)==null?void 0:mn.content;if(typeof Qn!="string"||Qn.trim().length===0){(ss=(Mn=tn.detail)==null?void 0:Mn.reject)==null||ss.call(Mn,new Error("External send message content is empty"));return}Ge(Qn,void 0).then(()=>{var kr,ot;(ot=(kr=tn.detail)==null?void 0:kr.resolve)==null||ot.call(kr)}).catch(kr=>{var ot,jo;(jo=(ot=tn.detail)==null?void 0:ot.reject)==null||jo.call(ot,kr)})};return window.addEventListener(Xp,_e),()=>{window.removeEventListener(Xp,_e)}},[d,c,Ge]);const{retryLastMessage:pn,handleHistoryNavigate:De}=bM({currentSessionId:c,currentChat:f,currentMessages:p,reasoningEffort:te,retryLastTurn:je,navigate:Ue}),Fn=v.useCallback(()=>de(null),[de]),qt=v.useMemo(()=>K.providers[X],[K,X]),Dt=v.useMemo(()=>!qt||typeof qt!="object"?!1:ae==="copilot"?Object.keys(qt).length>0:"api_key"in qt?typeof qt.api_key=="string"&&qt.api_key.trim().length>0:!1,[ae,qt]),Re=v.useCallback(()=>Dt?!1:(a("chat"),ne.warning(r("chat.view.providerNotConfigured")),!0),[Dt,ne,a,r]),Xn=v.useCallback(_e=>_e instanceof Error&&_e.message.trim()?_e.message:r("chat.view.unknownError"),[r]),{isModelOptionsLoading:ns,modelOptionsError:ir,resolvedModelOptions:Or,handleModelDropdownVisibleChange:ar}=$M({resolvedProviderType:ae,currentProvider:X,activeModel:T,getErrorMessage:Xn,redirectToProviderSettingsIfNeeded:Re}),Fs=v.useCallback(async _e=>{var xt,tn,cn;if(!(!_e||_e===T)&&!Y)try{if(Re())return;if(ce(!0),!c||!f){c&&m(c,{config:{systemPromptId:((xt=f==null?void 0:f.config)==null?void 0:xt.systemPromptId)||"default",baseSystemPrompt:((tn=f==null?void 0:f.config)==null?void 0:tn.baseSystemPrompt)||"",lastUsedEnhancedPrompt:((cn=f==null?void 0:f.config)==null?void 0:cn.lastUsedEnhancedPrompt)??null,...(f==null?void 0:f.config)||{},model:_e}});return}await _s.patchSession(c,{model:_e}),m(c,{config:{...f.config,model:_e}},{skipBackendPatch:!0}),ne.success(r("settings.providerTab.modelUpdated"))}catch(nn){ne.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xn(nn)}`)}finally{ce(!1)}},[T,f,Xn,Y,ne,Re,c,r,m]),rs=v.useCallback(async _e=>{if(!c||!(f!=null&&f.config)){yt.getState().setSelectedModelRef(_e);return}if(!Y)try{ce(!0),await _s.patchSession(c,{model:_e.model,model_ref:_e,provider:_e.provider}),yt.getState().setSelectedModelRef(_e),m(c,{config:{...f.config,model:_e.model,model_ref:_e}},{skipBackendPatch:!0}),ne.success(r("settings.providerTab.modelUpdated"))}catch(xt){ne.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${Xn(xt)}`)}finally{ce(!1)}},[f==null?void 0:f.config,Xn,Y,ne,c,r,m]),Yn=v.useMemo(()=>vM({referenceText:oe,isToolSpecificMode:Q,isRestrictConversation:ie,allowedTools:ye,autoToolPrefix:$e,t:r}),[oe,Q,ie,ye,$e,r]),Vn=xn&&be?r("chat.respond.customAnswerPlaceholder"):xn?r("components.questionDialog.selectOptionWarning"):Yn,$r=xn?r("chat.respond.submitToolResult","Submit tool result"):void 0,Nn=v.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]),Ee=v.useMemo(()=>Nn[te]??te,[te,Nn]),Ye=v.useMemo(()=>l.jsx(mo,{trigger:["click"],placement:"topLeft",disabled:!T||b,menu:{selectable:!0,selectedKeys:[te],items:xM.map(_e=>({key:_e,label:Nn[_e]})),onClick:({key:_e})=>{me(_e)}},children:l.jsx(Ae,{type:"text",size:"small",disabled:!T||w,style:{minWidth:i?74:88,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:te==="medium"?o.colorTextSecondary:o.colorPrimary},title:r("chat.input.reasoningTitle",{label:Ee}),children:l.jsxs(We,{size:6,children:[l.jsx(Hx,{}),l.jsx("span",{children:Ee}),l.jsx(go,{style:{fontSize:10}})]})})}),[T,Ee,b,i,w,te,Nn,me,r,o.colorPrimary,o.colorTextSecondary]),wt=T||r(Dt?"chat.model.selectModel":"chat.model.configureProvider"),Pt=v.useMemo(()=>Or.length>0?Or.map(_e=>({key:_e.value,label:_e.label})):[{key:"__no_models__",label:ir||r("chat.model.noModelsAvailable"),disabled:!0}],[Or,ir,r]),Kt=v.useMemo(()=>l.jsx(Ae,{type:"text",size:"small",disabled:w||Y,onClick:()=>{Dt||Re()},style:{minWidth:i?112:146,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:ir?o.colorError:o.colorTextSecondary},title:wt,children:l.jsxs(We,{size:6,children:[ns?l.jsx(po,{}):l.jsx(sf,{}),l.jsx("span",{style:{maxWidth:i?84:128,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:wt}),l.jsx(go,{style:{fontSize:10}})]})}),[w,Y,Dt,Re,i,ir,o.colorError,o.colorTextSecondary,wt,ns]),lr=v.useMemo(()=>P()?l.jsx(SM,{value:k,onChange:rs,disabled:w||Y}):Dt?l.jsx(mo,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:T?[T]:[],items:Pt,style:{maxHeight:"50vh",overflowY:"auto"},onClick:({key:_e})=>{_e!=="__no_models__"&&Fs(String(_e))}},onOpenChange:ar,disabled:b||Y,children:Kt}):Kt,[P,k,rs,w,Y,Dt,T,Pt,Fs,ar,b,Kt]),$a=v.useMemo(()=>l.jsx(Ae,{type:"text",size:"small",disabled:b,onClick:()=>le(!ge),"aria-pressed":ge,style:{minWidth:i?40:void 0,padding:i?"0 8px":"0 12px",height:36,borderRadius:18,color:ge?o.colorError:o.colorTextSecondary},title:r(ge?"chat.input.bypassPermissions.onTitle":"chat.input.bypassPermissions.offTitle"),children:l.jsxs(We,{size:6,children:[ge?l.jsx(qx,{}):l.jsx(Fy,{}),!i&&l.jsx("span",{children:r("chat.input.bypassPermissions.label")})]})}),[ge,b,i,le,r,o.colorError,o.colorTextSecondary]),cr=v.useMemo(()=>l.jsxs(We,{size:0,wrap:!0,children:[lr,Ye,$a]}),[lr,Ye,$a]),Lr=v.useCallback(_e=>({isValid:!0}),[ie,$e,r]),Gn=v.useMemo(()=>p.some(_e=>_e.role==="user"),[p]),Ns=v.useMemo(()=>({isStreaming:w,isInputLocked:b,canCancel:M,hasMessages:Gn,allowRetry:!0,onRetry:pn,onCancel:fe,onHistoryNavigate:De}),[w,b,M,Gn,pn,fe,De]);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:[!T&&l.jsx(rr,{type:"warning",showIcon:!0,icon:l.jsx(hc,{}),message:r(Dt?"chat.model.noModelSelected":"chat.model.providerNotConfigured"),description:r(Dt?"chat.model.selectModelHint":"chat.model.configureProviderHint"),action:Dt?void 0:l.jsx(We,{children:l.jsx("a",{onClick:()=>a("chat"),children:r("chat.model.openSettings")})}),style:{marginBottom:o.marginSM}}),Q,oe&&l.jsx(qP,{text:oe,onClose:Fn}),ht.length>0&&l.jsx(v.Suspense,{fallback:l.jsx(bo,{size:"small"}),children:l.jsx(FM,{files:ht,onRemove:Ve,onClear:Ht})}),xn&&ln.length>0&&l.jsx("div",{style:{marginBottom:o.marginSM},children:l.jsx(We,{wrap:!0,size:[8,8],children:ln.map(_e=>l.jsx(Ae,{size:"small",onClick:()=>{Be(_e)},disabled:b,children:_e},_e))})}),l.jsx(UP,{value:L,onChange:ct.handleInputChange,onSubmit:Vt,placeholder:Vn,allowImages:!0,disabled:!T||xn&&!be&&ln.length>0,statusIndicator:n,submitButtonLabel:$r,isWorkflowSelectorVisible:ct.showCommandSelector,textAreaRef:s,validateMessage:Lr,onAttachmentsAdded:vt,onWorkflowCommandChange:ct.handleCommandChange,onFileReferenceChange:pt.handleFileReferenceChange,onFileReferenceButtonClick:pt.handleFileReferenceButtonClick,leftControlsExtra:cr,interaction:Ns}),l.jsx(v.Suspense,{fallback:null,children:l.jsx(NM,{visible:ct.showCommandSelector,onSelect:ct.handleCommandSelect,onCancel:ct.handleCommandSelectorCancel,onAutoComplete:ct.handleAutoComplete,searchText:ct.commandSearchText})}),pt.showFileSelector&&l.jsx(v.Suspense,{fallback:l.jsx(bo,{size:"small"}),children:l.jsx(BM,{visible:pt.showFileSelector,files:pt.workspaceFiles,searchText:pt.fileSearchText,loading:pt.isWorkspaceLoading,error:pt.workspaceError,onSelect:pt.handleFileReferenceSelect,onCancel:pt.handleFileSelectorCancel,onChangeWorkspace:()=>{pt.setWorkspacePathInput((f==null?void 0:f.config.workspacePath)??""),pt.setIsWorkspaceModalVisible(!0)}})}),l.jsx(v.Suspense,{fallback:null,children:l.jsx(zM,{open:pt.isWorkspaceModalVisible,initialPath:pt.workspacePathInput,loading:pt.isSavingWorkspace,onSubmit:pt.handleWorkspaceModalSubmit,onCancel:pt.handleWorkspaceModalCancel})})]})},HM={maxLines:8,maxCharacters:500},Vr=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),mr=t=>typeof t=="string"?t:void 0,gs=t=>typeof t=="number"&&Number.isFinite(t)?t:void 0,Vp=t=>typeof t=="boolean"?t:void 0,Pa=t=>{if(!t)return null;const e=t.trim();if(!e.startsWith("{")||!e.endsWith("}"))return null;try{const n=JSON.parse(e);return Vr(n)?n:null}catch{return null}},fv=t=>/\\u[0-9a-fA-F]{4}|\\n|\\t|\\r/.test(t)?t.replace(/\\u([0-9a-fA-F]{4})/g,(e,n)=>String.fromCharCode(parseInt(n,16))).replace(/\\n/g,`
134
+ `).replace(/\\t/g," ").replace(/\\r/g,"\r"):t,Sr=t=>Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>fv(e).trim()).filter(Boolean):[],Zt=t=>{if(typeof t!="string")return;const e=fv(t).trim();return e.length>0?e:void 0},qM=t=>{if(!Vr(t))return;const e=Zt(t.graph);if(e)return{title:Zt(t.title),graph:e}},KM=t=>{if(!Vr(t))return;const e=Zt(t.summary)??Zt(t.conclusion);if(e)return{title:Zt(t.title)||"Conclusion",summary:e,key_points:Sr(t.key_points),next_steps:Sr(t.next_steps),confidence:Zt(t.confidence),mermaid:qM(t.mermaid)}},XM=t=>{const e=Pa(t);if(!e)return null;const n=Zt(e.conclusion);return!n||e.type!=null&&e.type!=="conclusion"?null:{type:"conclusion",title:Zt(e.title)||"Conclusion",conclusion:n,key_points:Sr(e.key_points),next_steps:Sr(e.next_steps),confidence:Zt(e.confidence)}},YM=t=>{const e=Pa(t);if(!e)return null;const n=Zt(e.question);if(!n)return null;const r=Zt(e.status);return r&&r!=="awaiting_user_input"&&r!=="awaiting_permission_approval"?null:{question:n,options:Sr(e.options),allow_custom:typeof e.allow_custom=="boolean"?e.allow_custom:!0,conclusion:KM(e.conclusion)}},VM=t=>{const e=Pa(t);return Zt(e==null?void 0:e.status)==="awaiting_permission_approval"},hv=t=>{const e=Pa(t);if(!e)return null;const n=mr(e.bash_id),r=mr(e.command);return!n||e.status!=="running"||!r?null:{bashId:n,command:r}},GM=t=>{var n;if(!t)return null;const e=[`## ${t.title}`,t.summary];if(t.confidence&&e.push(`**Confidence:** ${t.confidence}`),t.key_points.length>0&&e.push(["**Key points**",...t.key_points.map(r=>`- ${r}`)].join(`
135
135
  `)),t.next_steps.length>0&&e.push(["**Next steps**",...t.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
136
136
  `)),(n=t.mermaid)!=null&&n.graph){const r=t.mermaid.title?`**${t.mermaid.title}**
137
137
 
@@ -141,23 +141,23 @@ You are running on **${XP(t)}**.`;return t==="windows"?n+`
141
141
  ${t.mermaid.graph}
142
142
  \`\`\``)}return e.join(`
143
143
 
144
- `)},dv=t=>{const e=UM(t);if(!e)return null;const n=[`## ${e.title}`,e.conclusion];return e.confidence&&n.push(`**Confidence:** ${e.confidence}`),e.key_points.length>0&&n.push(["**Key points**",...e.key_points.map(r=>`- ${r}`)].join(`
144
+ `)},pv=t=>{const e=XM(t);if(!e)return null;const n=[`## ${e.title}`,e.conclusion];return e.confidence&&n.push(`**Confidence:** ${e.confidence}`),e.key_points.length>0&&n.push(["**Key points**",...e.key_points.map(r=>`- ${r}`)].join(`
145
145
  `)),e.next_steps.length>0&&n.push(["**Next steps**",...e.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
146
146
  `)),n.join(`
147
147
 
148
- `)},ko=t=>{if(!t)return null;const e=t.trim();if(!e.startsWith("{")||!e.endsWith("}"))return null;try{const n=JSON.parse(e);if(!Yr(n))return null;const r=mr(n.file_path),s=mr(n.operation),o=n.diff;if(!r||!s||!Yr(o))return null;const i=mr(o.unified);if(!i)return null;const a=n.checkpoint,c=Yr(a)?{created:Yp(a.created)??!1,id:mr(a.id),path:mr(a.path),size_bytes:gs(a.size_bytes),reason:mr(a.reason)}:void 0;return{operation:s,message:mr(n.message),file_path:r,workspace:mr(n.workspace),checkpoint:c,diff:{unified:i,old_line_count:gs(o.old_line_count),new_line_count:gs(o.new_line_count),added_lines:gs(o.added_lines),removed_lines:gs(o.removed_lines),truncated:Yp(o.truncated)}}}catch{return null}},fv=t=>{const e=Pa(t);if(!e)return null;const n=Zt(e.action);if(n!=="inspect"&&n!=="rebuild")return null;const r=e.data;if(!Yr(r))return null;const s=Zt(r.scope),o=gs(r.total_memories);if(!s||typeof o!="number")return null;const i=a=>Yr(a)?Object.fromEntries(Object.entries(a).filter(c=>typeof c[0]=="string"&&typeof c[1]=="number")):{};return{action:n,scope:Zt(e.scope),project_key:Zt(e.project_key),data:{scope:s,project_key:Zt(r.project_key),total_memories:o,by_type:i(r.by_type),by_status:i(r.by_status),recent_ids:Sr(r.recent_ids),view_files:Sr(r.view_files),index_files:Sr(r.index_files),state_files:Sr(r.state_files),stale_candidate_count:gs(r.stale_candidate_count)??0,last_reindex_at:Zt(r.last_reindex_at),last_dream_at:Zt(r.last_dream_at),topic_paths:Sr(r.topic_paths)}}},ba=t=>t.startsWith("-")&&!t.startsWith("---"),va=t=>t.startsWith("+")&&!t.startsWith("+++"),hv=t=>{const e=t.split(`
149
- `),n=[];let r=0;for(;r<e.length;){const s=e[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(ba(s)){const o=[];for(;r<e.length&&ba(e[r]??"");)o.push(e[r]??""),r+=1;const i=[];for(;r<e.length&&va(e[r]??"");)i.push(e[r]??""),r+=1;i.length>0?(o.forEach(a=>n.push({kind:"modified_remove",text:a})),i.forEach(a=>n.push({kind:"modified_add",text:a}))):o.forEach(a=>n.push({kind:"remove",text:a}));continue}if(va(s)){n.push({kind:"add",text:s}),r+=1;continue}n.push({kind:"context",text:s}),r+=1}return n},XM=(t,e)=>{var w;const n=hv(t);if(n.length===0)return n;const r=Math.max(0,e==null?void 0:e.contextLines),s=Math.max(1,e==null?void 0:e.maxLines),o=e==null?void 0:e.preserveLeadingMeta,i=new Set(["add","remove","modified_add","modified_remove"]),a=n.map((y,_)=>({line:y,index:_})).filter(({line:y})=>i.has(y.kind)).map(({index:y})=>y);if(a.length===0||n.length<=s)return n.slice(0,s);const c=[];for(let y=0;y<n.length&&((w=n[y])==null?void 0:w.kind)==="meta";y+=1)c.push(y);const d=(y,_)=>{const M=[];return _&&c.length>0&&M.push({start:c[0],end:c[c.length-1]}),a.forEach(C=>{M.push({start:Math.max(0,C-y),end:Math.min(n.length-1,C+y)})}),M.sort((C,T)=>C.start-T.start),M.reduce((C,T)=>{const k=C[C.length-1];return k?T.start<=k.end+1?(k.end=Math.max(k.end,T.end),C):(C.push({...T}),C):(C.push({...T}),C)},[])},f=y=>{const _=[];return y.forEach((M,C)=>{C>0&&_.push({kind:"gap",text:"⋯"});for(let T=M.start;T<=M.end;T+=1)_.push(n[T])}),_};let p=r,b=d(p,o),m=f(b);for(;m.length>s&&p>0;)p-=1,b=d(p,o),m=f(b);return m.length>s&&o&&(b=d(p,!1),m=f(b)),m.length>s?m.slice(0,s):m},YM=t=>{const e=t.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);return e?{oldStart:Number.parseInt(e[1],10),newStart:Number.parseInt(e[2],10)}:null},ls=t=>{if(!t)return"";const e=t[0];return e==="+"||e==="-"||e===" "?t.slice(1):t},Br=t=>t==null?null:t+1,VM=t=>{const e=t.split(`
150
- `),n=[];let r=null,s=null,o=0;for(;o<e.length;){const i=e[o]??"";if(i.startsWith("--- ")||i.startsWith("+++ ")){n.push({kind:"meta",text:i}),o+=1;continue}if(i.startsWith("@@")){const c=YM(i);c&&(r=c.oldStart,s=c.newStart),n.push({kind:"hunk",text:i}),o+=1;continue}if(ba(i)){const c=[];for(;o<e.length&&ba(e[o]??"");)c.push(e[o]??""),o+=1;const d=[];for(;o<e.length&&va(e[o]??"");)d.push(e[o]??""),o+=1;if(d.length>0){const f=Math.max(c.length,d.length);for(let p=0;p<f;p+=1){const b=c[p],m=d[p];if(b&&m){n.push({kind:"modified",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:ls(b),newText:ls(m)}),r=Br(r),s=Br(s);continue}if(b){n.push({kind:"remove",oldLineNumber:r??void 0,oldText:ls(b)}),r=Br(r);continue}m&&(n.push({kind:"add",newLineNumber:s??void 0,newText:ls(m)}),s=Br(s))}}else c.forEach(f=>{n.push({kind:"remove",oldLineNumber:r??void 0,oldText:ls(f)}),r=Br(r)});continue}if(va(i)){n.push({kind:"add",newLineNumber:s??void 0,newText:ls(i)}),s=Br(s),o+=1;continue}const a=ls(i);n.push({kind:"context",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:a,newText:a}),r=Br(r),s=Br(s),o+=1}return n},pv=t=>{let e=0,n=0;for(const r of t.split(`
151
- `)){if(va(r)){e+=1;continue}ba(r)&&(n+=1)}return{added:e,removed:n}},Ff=t=>{const e=ko(t);if(!e)return null;const n=pv(e.diff.unified);return{added:e.diff.added_lines??n.added,removed:e.diff.removed_lines??n.removed}},Pd=t=>{if(typeof t=="string")return t.replace(/\\n/g,`
152
- `).replace(/\\t/g," ");if(Array.isArray(t))return t.map(Pd);if(t!==null&&typeof t=="object"){const e={};for(const[n,r]of Object.entries(t))e[n]=Pd(r);return e}return t},wo=t=>{if(!t)return{isJson:!1,formattedText:""};const e=t.trim();if(!e)return{isJson:!1,formattedText:""};if(!(e.startsWith("{")&&e.endsWith("}"))&&!(e.startsWith("[")&&e.endsWith("]")))return{isJson:!1,formattedText:t};try{const n=JSON.parse(e);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=Pd(n);return{isJson:!0,formattedText:JSON.stringify(r,null,2),parsedJson:r}}catch{return{isJson:!1,formattedText:t}}},GM=(t,e={})=>{const n={...zM,...e};return t?t.split(/\r?\n/).length>n.maxLines?!0:t.length>n.maxCharacters:!1},JM=(t,e=320)=>t?t.length<=e?{preview:t,isTruncated:!1}:{preview:t.substring(0,e).trimEnd()+"…",isTruncated:!0}:{preview:"",isTruncated:!1},QM=t=>{if(!t)return"No content";const e=60,n=t.trim(),r=ko(n);if(r){const o=r.file_path.split(/[\\/]/).pop()||r.file_path,i=`${r.operation}: ${o}`;return i.length<=e?i:i.substring(0,e).trimEnd()+"…"}const s=fv(n);if(s){const o=s.data.project_key||s.data.scope,i=`Memory ${s.action}: ${o} (${s.data.total_memories})`;return i.length<=e?i:i.substring(0,e).trimEnd()+"…"}if(n.length<=e)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<=e?d:d.substring(0,e).trimEnd()+"…"}if(o.type==="conclusion"&&typeof o.conclusion=="string"&&o.conclusion.trim().length>0){const c=o.conclusion.trim();return c.length<=e?c:c.substring(0,e).trimEnd()+"…"}const i=["content","result","output","message","data"].find(c=>c in o&&typeof o[c]=="string");if(i){const c=o[i];return c.length<=e?c:c.substring(0,e).trimEnd()+"…"}if(Array.isArray(o))return`Array with ${o.length} items`;const a=Object.keys(o);return`Object with ${a.length} propert${a.length===1?"y":"ies"}`}}catch{}return n.substring(0,e).trimEnd()+"…"},mv=t=>{switch(t){case"success":return"green";case"error":return"red";case"warning":return"orange";default:return"blue"}},Ps=(t,e=2)=>{if(typeof t=="string")return t;try{return JSON.stringify(t,null,e)}catch(n){return console.error("[resultFormatters] Failed to stringify value:",n),String(t)}},{Text:vn}=ut,ZM=(t,e,n)=>{const r={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:n?11:e.fontSizeSM,lineHeight:n?1.35:1.5,padding:n?"0 4px":"0 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"};return t.kind==="add"?r.background=e.colorSuccessBg:t.kind==="remove"?r.background=e.colorErrorBg:t.kind==="modified_add"?(r.background=e.colorWarningBg,r.borderLeft=`3px solid ${e.colorSuccess}`):t.kind==="modified_remove"?(r.background=e.colorWarningBg,r.borderLeft=`3px solid ${e.colorError}`):t.kind==="hunk"?(r.background=e.colorFillSecondary,r.color=e.colorTextSecondary):t.kind==="meta"?(r.background=e.colorFillTertiary,r.color=e.colorTextSecondary):t.kind==="gap"&&(r.background=e.colorFillQuaternary,r.color=e.colorTextTertiary,r.textAlign="center",r.fontStyle="italic"),r},al=(t,e,n)=>{if(t==="remove"&&e==="old")return n.colorErrorBg;if(t==="add"&&e==="new")return n.colorSuccessBg;if(t==="modified")return e==="old"?n.colorErrorBg:n.colorSuccessBg},ll=(t,e,n)=>{if(t==="modified")return e==="old"?`3px solid ${n.colorError}`:`3px solid ${n.colorSuccess}`},Vp=t=>t==null?"":String(t),Sa=({payload:t,defaultViewMode:e="sideBySide",showHeader:n=!0,showViewToggle:r=!0,compact:s=!1,height:o,maxHeight:i=400,unifiedLinesOverride:a})=>{var T;const{t:c}=Xe(),{token:d}=lt.useToken(),[f,p]=v.useState(e),b=v.useMemo(()=>{const k=pv(t.diff.unified);return{added:t.diff.added_lines??k.added,removed:t.diff.removed_lines??k.removed}},[t]),m=v.useMemo(()=>a??hv(t.diff.unified),[t.diff.unified,a]),w=v.useMemo(()=>VM(t.diff.unified),[t.diff.unified]),y=o!==void 0,_={display:"flex",flexDirection:"column",gap:s?6:d.marginSM,minHeight:0,height:y?o:void 0},M={border:`1px solid ${d.colorBorderSecondary}`,borderRadius:s?6:d.borderRadiusSM,overflow:"auto",background:d.colorBgContainer,minHeight:0,flex:y?1:void 0,maxHeight:y?void 0:i},C=s?"small":"middle";return l.jsxs("div",{style:_,children:[n&&l.jsxs("div",{style:{display:"grid",gap:s?2:d.marginXS},children:[t.message?l.jsx(vn,{style:{fontSize:s?11:d.fontSizeSM},children:t.message}):null,l.jsxs(We,{size:s?2:8,wrap:!0,children:[l.jsxs(vn,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(vn,{strong:!0,children:[c("common.file"),":"]})," ",l.jsx(vn,{code:!0,children:t.file_path})]}),t.workspace?l.jsxs(vn,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(vn,{strong:!0,children:[c("common.workspace"),":"]})," ",l.jsx(vn,{code:!0,children:t.workspace})]}):null,l.jsxs(vn,{style:{color:d.colorSuccess,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",b.added]}),l.jsxs(vn,{style:{color:d.colorError,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",b.removed]})]}),(T=t.checkpoint)!=null&&T.created?l.jsxs(vn,{style:{fontSize:s?d.fontSizeSM-1:d.fontSizeSM},children:[l.jsxs(vn,{strong:!0,children:[c("components.toolResult.checkpoint"),":"]})," ",l.jsx(vn,{code:!0,children:t.checkpoint.path})]}):l.jsx(vn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.checkpointNone")})]}),r?l.jsxs(We,{size:s?2:8,wrap:!0,children:[l.jsx(Ae,{size:C,type:f==="sideBySide"?"primary":"default",onClick:()=>p("sideBySide"),children:c("components.toolResult.sideBySide",{defaultValue:"Side by side"})}),l.jsx(Ae,{size:C,type:f==="unified"?"primary":"default",onClick:()=>p("unified"),children:c("components.toolResult.unified",{defaultValue:"Unified"})})]}):null,l.jsx("div",{style:M,children:f==="unified"?m.length>0?m.map((k,P)=>l.jsx("pre",{style:ZM(k,d,s),children:k.text||" "},`${P}-${k.kind}`)):l.jsx(vn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})}):w.length>0?l.jsx("div",{children:w.map((k,P)=>{if(k.kind==="meta"||k.kind==="hunk")return l.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:s?11:d.fontSizeSM,lineHeight:s?1.4:1.5,padding:s?"0 4px":"1px 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",background:k.kind==="meta"?d.colorFillTertiary:d.colorFillSecondary,color:d.colorTextSecondary},children:k.text||" "},`meta-${P}`);const A=s?11:d.fontSizeSM,j=s?"0 4px":"0 8px",$=s?1.4:1.5,F={padding:j,lineHeight:$,textAlign:"right",color:d.colorTextTertiary,fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A,borderRight:`1px solid ${d.colorBorderSecondary}`,userSelect:"none"},X={padding:j,lineHeight:$,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A};return l.jsxs("div",{style:{display:"grid",gridTemplateColumns:s?"48px 1fr 48px 1fr":"64px 1fr 64px 1fr"},children:[l.jsx("div",{style:{...F,background:al(k.kind,"old",d),borderLeft:ll(k.kind,"old",d)},children:Vp(k.oldLineNumber)}),l.jsx("div",{style:{...X,background:al(k.kind,"old",d),borderRight:`1px solid ${d.colorBorderSecondary}`,borderLeft:ll(k.kind,"old",d)},children:k.oldText??" "}),l.jsx("div",{style:{...F,background:al(k.kind,"new",d),borderLeft:ll(k.kind,"new",d)},children:Vp(k.newLineNumber)}),l.jsx("div",{style:{...X,background:al(k.kind,"new",d),borderLeft:ll(k.kind,"new",d)},children:k.newText??" "})]},`side-${P}`)})}):l.jsx(vn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})})}),t.diff.truncated?l.jsx(vn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.diffTruncated")}):null]})},{Text:eA}=ut,tA=t=>t.filter(e=>e!=null&&e!==!1&&!(typeof e=="string"&&e.trim()==="")),nA=(t,e)=>t.flatMap((n,r)=>r===0?[l.jsx(st.Fragment,{children:n},`item-${r}`)]:[l.jsx(st.Fragment,{children:e},`sep-${r}`),l.jsx(st.Fragment,{children:n},`item-${r}`)]),Ml=({items:t,separator:e=" · ",nowrap:n=!1,block:r=!1,style:s,className:o,ellipsis:i,...a})=>{const c=tA(t);return c.length===0?null:l.jsx(eA,{type:"secondary",className:o,ellipsis:i,style:{fontSize:11,lineHeight:1.35,whiteSpace:n?"nowrap":void 0,display:r?"block":void 0,...s},...a,children:nA(c,e)})},{Text:kn}=ut,rA=220,sA=560,oA=420,Al=t=>t.split(/[\\/]/).pop()||t,iA=t=>{const e=t.replace(/\\/g,"/"),n=e.lastIndexOf("/");return n<=0?null:e.slice(0,n)},Gp=t=>t.added+t.removed,Md=t=>t.toLocaleString(),Jp=(t,e)=>`(+${Md(t)} / -${Md(e)})`,aA=t=>({operation:"session_diff_review",file_path:t.filePath,workspace:t.workspace,diff:{unified:t.unifiedDiff,added_lines:t.added,removed_lines:t.removed,truncated:t.truncated}}),Ad=(t,e)=>{const n=[...t];return e==="path"?(n.sort((r,s)=>r.filePath.localeCompare(s.filePath)),n):(n.sort((r,s)=>{const o=Gp(s)-Gp(r);return o!==0?o:r.filePath.localeCompare(s.filePath)}),n)},oo=({value:t,kind:e,compact:n=!1})=>{const{token:r}=lt.useToken(),s=e==="added";return l.jsxs(kn,{style:{color:s?r.colorSuccess:r.colorError,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"nowrap",fontSize:n?11:void 0},children:[s?"+":"-",Md(t)]})},Qp=({files:t,changedTools:e,totalAdded:n,totalRemoved:r,sortMode:s,selectedFilePath:o,compact:i=!1,onSortModeChange:a,onSelectFile:c})=>{const{token:d}=lt.useToken(),f=v.useMemo(()=>Ad(t,s),[t,s]),p=v.useMemo(()=>t.filter(y=>y.truncated).length,[t]),b=v.useMemo(()=>Ad(t,"magnitude")[0]??null,[t]),m=i?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},w=v.useMemo(()=>{const y=[];return b&&y.push(`Largest: ${Al(b.filePath)} ${Jp(b.added,b.removed)}`),p>0&&y.push(`${p} truncated preview${p>1?"s":""}`),y},[b,p]);return l.jsxs(Ce,{vertical:!0,gap:i?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{vertical:!0,gap:i?4:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"flex-start",justify:"space-between",gap:i?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(We,{size:i?6:d.marginXS,wrap:!0,children:[l.jsx(Dy,{style:{color:d.colorPrimary}}),l.jsx(kn,{strong:!0,style:i?{fontSize:12}:void 0,children:"Session diffs"}),i?null:l.jsx(kn,{type:"secondary",children:"Review changed files, then open one file at a time."})]}),l.jsxs(We,{size:i?2:4,wrap:!0,children:[i?l.jsx(Ml,{nowrap:!0,items:[`${t.length} files`,`${e} tools`]}):l.jsxs(l.Fragment,{children:[l.jsxs(He,{style:m,children:[t.length," files"]}),l.jsxs(He,{style:m,children:[e," tools"]})]}),l.jsx(oo,{value:n,kind:"added"}),l.jsx(oo,{value:r,kind:"removed"})]})]}),i?l.jsx(Ml,{block:!0,items:w}):l.jsxs(l.Fragment,{children:[b?l.jsxs(kn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:["Largest change: ",Al(b.filePath)," ",Jp(b.added,b.removed)]}):null,p>0?l.jsxs(kn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:[p," diff",p>1?"s":""," truncated in preview."]}):null]})]}),l.jsxs(Ce,{align:"center",justify:"space-between",gap:i?d.marginXS:d.marginSM,wrap:!0,children:[l.jsx(kn,{strong:!0,style:i?{fontSize:12}:void 0,children:i?"Files":"Changed files"}),t.length>1?l.jsxs(We,{size:i?4:8,wrap:!0,children:[l.jsx(Ae,{size:"small",type:s==="magnitude"?"primary":"default",onClick:()=>a("magnitude"),"data-testid":"session-diff-sort-magnitude",children:i?"Largest":"Largest changes"}),l.jsx(Ae,{size:"small",type:s==="path"?"primary":"default",onClick:()=>a("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:i?4:6,width:"100%",minWidth:0,maxHeight:i?oA:sA,overflowY:"auto",overflowX:"hidden"},children:f.map(y=>{const _=iA(y.filePath),M=o===y.filePath,C=i?[_,y.toolCount&&y.toolCount>1?`${y.toolCount} tool steps`:null]:[];return l.jsx("button",{type:"button","aria-pressed":M,"data-selected":M?"true":"false",onClick:()=>c(y.filePath),"data-testid":"session-diff-file-row","data-file-path":y.filePath,style:{width:"100%",minWidth:0,padding:i?"6px 8px":`${d.paddingSM}px`,borderRadius:d.borderRadiusSM,border:`1px solid ${M?d.colorPrimary:d.colorBorderSecondary}`,background:M?d.colorFillSecondary:d.colorFillTertiary,boxShadow:M?`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(Ce,{align:"flex-start",justify:"space-between",gap:i?d.marginXS:d.marginSM,style:{width:"100%"},children:[l.jsxs(Ce,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsxs(Ce,{align:"center",gap:d.marginXS,style:{minWidth:0},children:[l.jsx(As,{style:{color:M?d.colorPrimary:d.colorTextSecondary,flex:"0 0 auto"}}),l.jsx(kn,{strong:!0,ellipsis:{tooltip:y.filePath},style:{display:"block",flex:1,minWidth:0},children:Al(y.filePath)}),y.truncated?i?l.jsx(kn,{type:"secondary",style:{fontSize:11,flex:"0 0 auto"},children:"· trunc."}):l.jsx(He,{color:"warning",style:{...m,flex:"0 0 auto"},children:"Truncated"}):null]}),i?l.jsx(Ml,{block:!0,items:C,style:{minWidth:0,whiteSpace:"normal",wordBreak:"break-word"}}):l.jsxs(l.Fragment,{children:[_?l.jsx(kn,{type:"secondary",ellipsis:{tooltip:y.filePath},style:{display:"block",minWidth:0,fontSize:d.fontSizeSM},children:_}):null,y.toolCount&&y.toolCount>1?l.jsxs(kn,{type:"secondary",style:{fontSize:Math.max(d.fontSizeSM-1,11)},children:["Touched by ",y.toolCount," tool steps"]}):null]})]}),l.jsxs(Ce,{vertical:!0,align:"flex-end",gap:i?1:0,style:{flex:"0 0 auto"},children:[l.jsx(oo,{value:y.added,kind:"added",compact:i}),l.jsx(oo,{value:y.removed,kind:"removed",compact:i})]})]})},y.filePath)})})]})},lA=({file:t,currentPosition:e,totalFiles:n,canGoPrevious:r,canGoNext:s,compact:o=!1,onPrevious:i,onNext:a,onBack:c})=>{const{token:d}=lt.useToken(),f=v.useMemo(()=>aA(t),[t]);return l.jsxs(Ce,{vertical:!0,gap:o?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},"data-testid":"session-diff-detail-view",children:[l.jsxs(Ce,{align:"center",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(We,{size:o?4:8,wrap:!0,children:[l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Wx,{}),onClick:c,"data-testid":"session-diff-back",style:{paddingInline:0},children:"Back to files"}),l.jsxs(kn,{type:"secondary","data-testid":"session-diff-position",style:o?{fontSize:11}:void 0,children:["File ",e," of ",n]})]}),n>1?l.jsxs(We,{size:o?4:8,wrap:!0,children:[l.jsx(Ae,{size:"small",icon:l.jsx(ed,{}),onClick:i,disabled:!r,"data-testid":"session-diff-prev",children:"Previous"}),l.jsx(Ae,{size:"small",icon:l.jsx(As,{}),onClick:a,disabled:!s,"data-testid":"session-diff-next",children:"Next"})]}):null]}),l.jsxs(Ce,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"flex-start",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(Ce,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsx(kn,{strong:!0,ellipsis:{tooltip:t.filePath},style:{display:"block",minWidth:0},children:Al(t.filePath)}),l.jsx(kn,{type:"secondary",ellipsis:{tooltip:t.filePath},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:t.filePath}),t.workspace?l.jsx(kn,{type:"secondary",ellipsis:{tooltip:t.workspace},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:t.workspace}):null]}),l.jsxs(We,{size:o?2:4,wrap:!0,children:[t.truncated?l.jsx(He,{color:"warning",style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:o?"Trunc.":"Truncated"}):null,t.toolCount&&t.toolCount>1?l.jsxs(He,{style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:[t.toolCount," tools"]}):null,l.jsx(oo,{value:t.added,kind:"added",compact:o}),l.jsx(oo,{value:t.removed,kind:"removed",compact:o})]})]}),o?null:l.jsx(kn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:"Review this file in side-by-side or unified mode."})]}),l.jsx(Sa,{payload:f,defaultViewMode:"sideBySide",showHeader:!1,showViewToggle:!0,compact:o,maxHeight:o?"calc(100vh - 240px)":"calc(100vh - 280px)"})]})},gv=({sessionDiffSummary:t,sessionId:e,compact:n=!1})=>{const{token:r}=lt.useToken(),s=!!(t&&t.files.length>0),[o,i]=v.useState(s),[a,c]=v.useState(s),[d,f]=v.useState("magnitude"),[p,b]=v.useState(null);v.useEffect(()=>{if(s){i(!0);const C=window.setTimeout(()=>c(!0),0);return()=>window.clearTimeout(C)}c(!1);const M=window.setTimeout(()=>i(!1),rA);return()=>window.clearTimeout(M)},[s]),v.useEffect(()=>{f("magnitude"),b(null)},[e]);const m=v.useMemo(()=>(t==null?void 0:t.files)??[],[t]),w=v.useMemo(()=>Ad(m,d),[m,d]),y=v.useMemo(()=>w.findIndex(M=>M.filePath===p),[w,p]),_=y>=0?w[y]:null;return v.useEffect(()=>{p&&(m.some(M=>M.filePath===p)||b(null))},[m,p]),!o||!t?null:l.jsxs("div",{className:`active-tool-card-wrapper ${a?"visible":""}`,"aria-hidden":!a,"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(Qp,{files:m,changedTools:t.changedTools,totalAdded:t.totalAdded,totalRemoved:t.totalRemoved,sortMode:d,selectedFilePath:p,compact:n,onSortModeChange:f,onSelectFile:b}):l.jsx(Ut,{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(Qp,{files:m,changedTools:t.changedTools,totalAdded:t.totalAdded,totalRemoved:t.totalRemoved,sortMode:d,selectedFilePath:p,compact:n,onSortModeChange:f,onSelectFile:b})})}),l.jsx(gc,{title:"Diff details",placement:"right",open:!!_,onClose:()=>b(null),width:"min(1280px, calc(100vw - 24px))",styles:{body:{padding:n?r.paddingXS:r.paddingLG,minWidth:0}},destroyOnClose:!0,children:_?l.jsx(lA,{file:_,currentPosition:y+1,totalFiles:w.length,canGoPrevious:y>0,canGoNext:y>=0&&y<w.length-1,compact:n,onPrevious:()=>{y>0&&b(w[y-1].filePath)},onNext:()=>{y>=0&&y<w.length-1&&b(w[y+1].filePath)},onBack:()=>b(null)}):null})]})},cA=t=>{if(!t)return;const{activeLeafId:e,setLeafSessionId:n,setActiveLeafId:r}=ft.getState();n(e,t),r(e),G.getState().selectSession(t)},uA=["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(" "),dA=["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(" "),fA=["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(" "),hA=["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(" "),pA=["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(" "),mA=["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(" "),gA=["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(" "),yA=["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(" "),bA=["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(" "),vA=["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(" "),SA=["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(" "),wA=["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(" "),xA=["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(" "),_A=["development","debugging","analysis","documentation","operations"],CA={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"}},kA=(t,e)=>{const n=t.find(s=>s.id===e),r=t.find(s=>s.id==="general_assistant")||t[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)||""}},TA=({sessionId:t=null,embedded:e=!1,hideHeader:n=!1,layoutMode:r="default"})=>{var K;const{t:s}=Xe(),{token:o}=lt.useToken(),{message:i}=En.useApp(),a=G(O=>t??O.currentSessionId),c=G(Cr(a)),d=G(O=>O.addChat),f=G(O=>O.lastSelectedPromptId),p=G(O=>O.setInputContent),b=G(O=>O.systemPrompts),m=G(O=>O.chats),[w,y]=v.useState(null),[_,M]=v.useState(""),C=(c==null?void 0:c.config.workspacePath)??((K=m.find(O=>O.config.workspacePath))==null?void 0:K.config.workspacePath),T=v.useMemo(()=>[{id:"blank",icon:l.jsx(nf,{}),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(Ux,{}),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:uA,category:"development",recommendWorkspace:!0},{id:"implementFeature",icon:l.jsx(of,{}),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:fA,category:"development",recommendWorkspace:!0},{id:"refactor",icon:l.jsx(Dy,{}),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:gA,category:"development",recommendWorkspace:!0},{id:"bugInvestigation",icon:l.jsx(Oy,{}),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:dA,category:"debugging",recommendWorkspace:!0},{id:"explainError",icon:l.jsx(Fy,{}),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:pA,category:"debugging"},{id:"tokenUsage",icon:l.jsx(Hx,{}),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:xA,category:"debugging"},{id:"architectureReview",icon:l.jsx(Iy,{}),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:hA,category:"analysis",recommendWorkspace:!0},{id:"compareFiles",icon:l.jsx(qx,{}),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:mA,category:"analysis",recommendWorkspace:!0},{id:"releaseNotes",icon:l.jsx(Bl,{}),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:yA,category:"documentation",recommendWorkspace:!0},{id:"summarizeWork",icon:l.jsx(Kx,{}),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:bA,category:"documentation"},{id:"writeDocs",icon:l.jsx(Bl,{}),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:vA,category:"documentation",recommendWorkspace:!0},{id:"createSchedule",icon:l.jsx(Rs,{}),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:SA,category:"operations"},{id:"sessionReview",icon:l.jsx(Zu,{}),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:wA,category:"operations"}],[s]),k=_.trim().toLowerCase(),P=v.useMemo(()=>k?T.filter(O=>O.title.toLowerCase().includes(k)||O.description.toLowerCase().includes(k)):T,[k,T]),A=v.useMemo(()=>{const O={};for(const W of P)O[W.category]||(O[W.category]=[]),O[W.category].push(W);return O},[P]),j=v.useCallback(O=>{typeof window>"u"||window.setTimeout(()=>{window.dispatchEvent(new CustomEvent(Zl,{detail:{sessionId:O}}))},0)},[]),$=v.useCallback(async O=>{if(!w){y(O.id);try{const W=kA(b,f),ae=await d({title:O.sessionTitle,createdAt:Date.now(),messages:[],config:{systemPromptId:W.systemPromptId,baseSystemPrompt:O.baseSystemPrompt??W.baseSystemPrompt,lastUsedEnhancedPrompt:null,...C?{workspacePath:C}:{}}});cA(ae),O.prefill.trim().length>0&&p(ae,O.prefill),j(ae)}catch(W){console.error("[EmptyTaskLauncher] Failed to create session",W),i.error(W instanceof Error?W.message:s("chat.emptyLauncher.errors.createFailed","Failed to create session"))}finally{y(null)}}},[d,f,i,w,j,p,b,s,C]),F=v.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]),X=!!C;return l.jsxs("div",{className:`lotus-empty-task-launcher ${e?"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(ut.Title,{level:e?4:3,style:{margin:0},children:s("chat.emptyLauncher.title","Start with a task")}),l.jsx(ut.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(ut.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(Ls,{placeholder:s("chat.emptyLauncher.searchPlaceholder","Search templates..."),prefix:l.jsx(Zu,{style:{color:o.colorTextQuaternary}}),value:_,onChange:O=>M(O.target.value),allowClear:!0,size:"middle",variant:"filled"})}),l.jsxs("div",{className:"lotus-empty-task-launcher__categories",children:[_A.map(O=>{const W=A[O];if(!W||W.length===0)return null;const ae=CA[O];return l.jsxs("div",{className:"lotus-empty-task-launcher__category",children:[l.jsx(ut.Text,{type:"secondary",className:"lotus-empty-task-launcher__category-label",children:s(ae.titleKey,ae.fallback)}),l.jsx("div",{className:"lotus-empty-task-launcher__grid",children:W.map(Y=>{const ce=w===Y.id,L=Y.recommendWorkspace&&X;return l.jsxs("button",{type:"button",className:"lotus-empty-task-card",onClick:()=>{$(Y)},disabled:w!==null,"aria-busy":ce,"aria-label":Y.title,children:[l.jsx("div",{className:"lotus-empty-task-card__icon","aria-hidden":!0,children:ce?l.jsx(po,{}):Y.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:Y.title}),l.jsx(Xx,{className:"lotus-empty-task-card__arrow","aria-hidden":!0})]}),l.jsx("p",{className:"lotus-empty-task-card__description",children:Y.description}),L&&l.jsx("div",{className:"lotus-empty-task-card__badges",children:l.jsxs("span",{className:"lotus-empty-task-card__badge",title:C,children:["📂 ",s("chat.emptyLauncher.badges.workspace","workspace")]})})]})]},Y.id)})})]},O)}),P.length===0&&l.jsx("div",{className:"lotus-empty-task-launcher__no-results",children:l.jsx(ut.Text,{type:"secondary",children:s("chat.emptyLauncher.noResults","No templates match your search. Try a different keyword or start a blank session.")})})]})]})},EA=({sessionId:t,isCenteredLayout:e,maxWidth:n,onWorkflowDraftChange:r,showMessagesView:s,sessionDiffSummary:o,contextUsageIndicator:i,showSessionDiffCard:a=!0})=>l.jsx(Ce,{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&&a?l.jsx(gv,{sessionDiffSummary:o,sessionId:t}):null,!s&&t?l.jsx(TA,{sessionId:t}):null,l.jsx(NM,{sessionId:t,isCenteredLayout:e,onWorkflowDraftChange:r,statusIndicator:i})]})});function Xs(t,e,n){let r=n.initialDeps??[],s;function o(){var i,a,c,d;let f;n.key&&((i=n.debug)!=null&&i.call(n))&&(f=Date.now());const p=t();if(!(p.length!==r.length||p.some((w,y)=>r[y]!==w)))return s;r=p;let m;if(n.key&&((a=n.debug)!=null&&a.call(n))&&(m=Date.now()),s=e(...p),n.key&&((c=n.debug)!=null&&c.call(n))){const w=Math.round((Date.now()-f)*100)/100,y=Math.round((Date.now()-m)*100)/100,_=y/16,M=(C,T)=>{for(C=String(C);C.length<T;)C=" "+C;return C};console.info(`%c⏱ ${M(y,5)} /${M(w,5)} ms`,`
148
+ `)},To=t=>{if(!t)return null;const e=t.trim();if(!e.startsWith("{")||!e.endsWith("}"))return null;try{const n=JSON.parse(e);if(!Vr(n))return null;const r=mr(n.file_path),s=mr(n.operation),o=n.diff;if(!r||!s||!Vr(o))return null;const i=mr(o.unified);if(!i)return null;const a=n.checkpoint,c=Vr(a)?{created:Vp(a.created)??!1,id:mr(a.id),path:mr(a.path),size_bytes:gs(a.size_bytes),reason:mr(a.reason)}:void 0;return{operation:s,message:mr(n.message),file_path:r,workspace:mr(n.workspace),checkpoint:c,diff:{unified:i,old_line_count:gs(o.old_line_count),new_line_count:gs(o.new_line_count),added_lines:gs(o.added_lines),removed_lines:gs(o.removed_lines),truncated:Vp(o.truncated)}}}catch{return null}},mv=t=>{const e=Pa(t);if(!e)return null;const n=Zt(e.action);if(n!=="inspect"&&n!=="rebuild")return null;const r=e.data;if(!Vr(r))return null;const s=Zt(r.scope),o=gs(r.total_memories);if(!s||typeof o!="number")return null;const i=a=>Vr(a)?Object.fromEntries(Object.entries(a).filter(c=>typeof c[0]=="string"&&typeof c[1]=="number")):{};return{action:n,scope:Zt(e.scope),project_key:Zt(e.project_key),data:{scope:s,project_key:Zt(r.project_key),total_memories:o,by_type:i(r.by_type),by_status:i(r.by_status),recent_ids:Sr(r.recent_ids),view_files:Sr(r.view_files),index_files:Sr(r.index_files),state_files:Sr(r.state_files),stale_candidate_count:gs(r.stale_candidate_count)??0,last_reindex_at:Zt(r.last_reindex_at),last_dream_at:Zt(r.last_dream_at),topic_paths:Sr(r.topic_paths)}}},ba=t=>t.startsWith("-")&&!t.startsWith("---"),va=t=>t.startsWith("+")&&!t.startsWith("+++"),gv=t=>{const e=t.split(`
149
+ `),n=[];let r=0;for(;r<e.length;){const s=e[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(ba(s)){const o=[];for(;r<e.length&&ba(e[r]??"");)o.push(e[r]??""),r+=1;const i=[];for(;r<e.length&&va(e[r]??"");)i.push(e[r]??""),r+=1;i.length>0?(o.forEach(a=>n.push({kind:"modified_remove",text:a})),i.forEach(a=>n.push({kind:"modified_add",text:a}))):o.forEach(a=>n.push({kind:"remove",text:a}));continue}if(va(s)){n.push({kind:"add",text:s}),r+=1;continue}n.push({kind:"context",text:s}),r+=1}return n},JM=(t,e)=>{var w;const n=gv(t);if(n.length===0)return n;const r=Math.max(0,e==null?void 0:e.contextLines),s=Math.max(1,e==null?void 0:e.maxLines),o=e==null?void 0:e.preserveLeadingMeta,i=new Set(["add","remove","modified_add","modified_remove"]),a=n.map((b,_)=>({line:b,index:_})).filter(({line:b})=>i.has(b.kind)).map(({index:b})=>b);if(a.length===0||n.length<=s)return n.slice(0,s);const c=[];for(let b=0;b<n.length&&((w=n[b])==null?void 0:w.kind)==="meta";b+=1)c.push(b);const d=(b,_)=>{const M=[];return _&&c.length>0&&M.push({start:c[0],end:c[c.length-1]}),a.forEach(C=>{M.push({start:Math.max(0,C-b),end:Math.min(n.length-1,C+b)})}),M.sort((C,T)=>C.start-T.start),M.reduce((C,T)=>{const k=C[C.length-1];return k?T.start<=k.end+1?(k.end=Math.max(k.end,T.end),C):(C.push({...T}),C):(C.push({...T}),C)},[])},f=b=>{const _=[];return b.forEach((M,C)=>{C>0&&_.push({kind:"gap",text:"⋯"});for(let T=M.start;T<=M.end;T+=1)_.push(n[T])}),_};let p=r,y=d(p,o),m=f(y);for(;m.length>s&&p>0;)p-=1,y=d(p,o),m=f(y);return m.length>s&&o&&(y=d(p,!1),m=f(y)),m.length>s?m.slice(0,s):m},QM=t=>{const e=t.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);return e?{oldStart:Number.parseInt(e[1],10),newStart:Number.parseInt(e[2],10)}:null},ls=t=>{if(!t)return"";const e=t[0];return e==="+"||e==="-"||e===" "?t.slice(1):t},Wr=t=>t==null?null:t+1,ZM=t=>{const e=t.split(`
150
+ `),n=[];let r=null,s=null,o=0;for(;o<e.length;){const i=e[o]??"";if(i.startsWith("--- ")||i.startsWith("+++ ")){n.push({kind:"meta",text:i}),o+=1;continue}if(i.startsWith("@@")){const c=QM(i);c&&(r=c.oldStart,s=c.newStart),n.push({kind:"hunk",text:i}),o+=1;continue}if(ba(i)){const c=[];for(;o<e.length&&ba(e[o]??"");)c.push(e[o]??""),o+=1;const d=[];for(;o<e.length&&va(e[o]??"");)d.push(e[o]??""),o+=1;if(d.length>0){const f=Math.max(c.length,d.length);for(let p=0;p<f;p+=1){const y=c[p],m=d[p];if(y&&m){n.push({kind:"modified",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:ls(y),newText:ls(m)}),r=Wr(r),s=Wr(s);continue}if(y){n.push({kind:"remove",oldLineNumber:r??void 0,oldText:ls(y)}),r=Wr(r);continue}m&&(n.push({kind:"add",newLineNumber:s??void 0,newText:ls(m)}),s=Wr(s))}}else c.forEach(f=>{n.push({kind:"remove",oldLineNumber:r??void 0,oldText:ls(f)}),r=Wr(r)});continue}if(va(i)){n.push({kind:"add",newLineNumber:s??void 0,newText:ls(i)}),s=Wr(s),o+=1;continue}const a=ls(i);n.push({kind:"context",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:a,newText:a}),r=Wr(r),s=Wr(s),o+=1}return n},yv=t=>{let e=0,n=0;for(const r of t.split(`
151
+ `)){if(va(r)){e+=1;continue}ba(r)&&(n+=1)}return{added:e,removed:n}},Ff=t=>{const e=To(t);if(!e)return null;const n=yv(e.diff.unified);return{added:e.diff.added_lines??n.added,removed:e.diff.removed_lines??n.removed}},Pd=t=>{if(typeof t=="string")return t.replace(/\\n/g,`
152
+ `).replace(/\\t/g," ");if(Array.isArray(t))return t.map(Pd);if(t!==null&&typeof t=="object"){const e={};for(const[n,r]of Object.entries(t))e[n]=Pd(r);return e}return t},xo=t=>{if(!t)return{isJson:!1,formattedText:""};const e=t.trim();if(!e)return{isJson:!1,formattedText:""};if(!(e.startsWith("{")&&e.endsWith("}"))&&!(e.startsWith("[")&&e.endsWith("]")))return{isJson:!1,formattedText:t};try{const n=JSON.parse(e);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=Pd(n);return{isJson:!0,formattedText:JSON.stringify(r,null,2),parsedJson:r}}catch{return{isJson:!1,formattedText:t}}},eA=(t,e={})=>{const n={...HM,...e};return t?t.split(/\r?\n/).length>n.maxLines?!0:t.length>n.maxCharacters:!1},tA=(t,e=320)=>t?t.length<=e?{preview:t,isTruncated:!1}:{preview:t.substring(0,e).trimEnd()+"…",isTruncated:!0}:{preview:"",isTruncated:!1},nA=t=>{if(!t)return"No content";const e=60,n=t.trim(),r=To(n);if(r){const o=r.file_path.split(/[\\/]/).pop()||r.file_path,i=`${r.operation}: ${o}`;return i.length<=e?i:i.substring(0,e).trimEnd()+"…"}const s=mv(n);if(s){const o=s.data.project_key||s.data.scope,i=`Memory ${s.action}: ${o} (${s.data.total_memories})`;return i.length<=e?i:i.substring(0,e).trimEnd()+"…"}if(n.length<=e)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<=e?d:d.substring(0,e).trimEnd()+"…"}if(o.type==="conclusion"&&typeof o.conclusion=="string"&&o.conclusion.trim().length>0){const c=o.conclusion.trim();return c.length<=e?c:c.substring(0,e).trimEnd()+"…"}const i=["content","result","output","message","data"].find(c=>c in o&&typeof o[c]=="string");if(i){const c=o[i];return c.length<=e?c:c.substring(0,e).trimEnd()+"…"}if(Array.isArray(o))return`Array with ${o.length} items`;const a=Object.keys(o);return`Object with ${a.length} propert${a.length===1?"y":"ies"}`}}catch{}return n.substring(0,e).trimEnd()+"…"},bv=t=>{switch(t){case"success":return"green";case"error":return"red";case"warning":return"orange";default:return"blue"}},Ps=(t,e=2)=>{if(typeof t=="string")return t;try{return JSON.stringify(t,null,e)}catch(n){return console.error("[resultFormatters] Failed to stringify value:",n),String(t)}},{Text:vn}=ut,rA=(t,e,n)=>{const r={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:n?11:e.fontSizeSM,lineHeight:n?1.35:1.5,padding:n?"0 4px":"0 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"};return t.kind==="add"?r.background=e.colorSuccessBg:t.kind==="remove"?r.background=e.colorErrorBg:t.kind==="modified_add"?(r.background=e.colorWarningBg,r.borderLeft=`3px solid ${e.colorSuccess}`):t.kind==="modified_remove"?(r.background=e.colorWarningBg,r.borderLeft=`3px solid ${e.colorError}`):t.kind==="hunk"?(r.background=e.colorFillSecondary,r.color=e.colorTextSecondary):t.kind==="meta"?(r.background=e.colorFillTertiary,r.color=e.colorTextSecondary):t.kind==="gap"&&(r.background=e.colorFillQuaternary,r.color=e.colorTextTertiary,r.textAlign="center",r.fontStyle="italic"),r},al=(t,e,n)=>{if(t==="remove"&&e==="old")return n.colorErrorBg;if(t==="add"&&e==="new")return n.colorSuccessBg;if(t==="modified")return e==="old"?n.colorErrorBg:n.colorSuccessBg},ll=(t,e,n)=>{if(t==="modified")return e==="old"?`3px solid ${n.colorError}`:`3px solid ${n.colorSuccess}`},Gp=t=>t==null?"":String(t),Sa=({payload:t,defaultViewMode:e="sideBySide",showHeader:n=!0,showViewToggle:r=!0,compact:s=!1,height:o,maxHeight:i=400,unifiedLinesOverride:a})=>{var T;const{t:c}=Xe(),{token:d}=lt.useToken(),[f,p]=v.useState(e),y=v.useMemo(()=>{const k=yv(t.diff.unified);return{added:t.diff.added_lines??k.added,removed:t.diff.removed_lines??k.removed}},[t]),m=v.useMemo(()=>a??gv(t.diff.unified),[t.diff.unified,a]),w=v.useMemo(()=>ZM(t.diff.unified),[t.diff.unified]),b=o!==void 0,_={display:"flex",flexDirection:"column",gap:s?6:d.marginSM,minHeight:0,height:b?o:void 0},M={border:`1px solid ${d.colorBorderSecondary}`,borderRadius:s?6:d.borderRadiusSM,overflow:"auto",background:d.colorBgContainer,minHeight:0,flex:b?1:void 0,maxHeight:b?void 0:i},C=s?"small":"middle";return l.jsxs("div",{style:_,children:[n&&l.jsxs("div",{style:{display:"grid",gap:s?2:d.marginXS},children:[t.message?l.jsx(vn,{style:{fontSize:s?11:d.fontSizeSM},children:t.message}):null,l.jsxs(We,{size:s?2:8,wrap:!0,children:[l.jsxs(vn,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(vn,{strong:!0,children:[c("common.file"),":"]})," ",l.jsx(vn,{code:!0,children:t.file_path})]}),t.workspace?l.jsxs(vn,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(vn,{strong:!0,children:[c("common.workspace"),":"]})," ",l.jsx(vn,{code:!0,children:t.workspace})]}):null,l.jsxs(vn,{style:{color:d.colorSuccess,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",y.added]}),l.jsxs(vn,{style:{color:d.colorError,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",y.removed]})]}),(T=t.checkpoint)!=null&&T.created?l.jsxs(vn,{style:{fontSize:s?d.fontSizeSM-1:d.fontSizeSM},children:[l.jsxs(vn,{strong:!0,children:[c("components.toolResult.checkpoint"),":"]})," ",l.jsx(vn,{code:!0,children:t.checkpoint.path})]}):l.jsx(vn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.checkpointNone")})]}),r?l.jsxs(We,{size:s?2:8,wrap:!0,children:[l.jsx(Ae,{size:C,type:f==="sideBySide"?"primary":"default",onClick:()=>p("sideBySide"),children:c("components.toolResult.sideBySide",{defaultValue:"Side by side"})}),l.jsx(Ae,{size:C,type:f==="unified"?"primary":"default",onClick:()=>p("unified"),children:c("components.toolResult.unified",{defaultValue:"Unified"})})]}):null,l.jsx("div",{style:M,children:f==="unified"?m.length>0?m.map((k,P)=>l.jsx("pre",{style:rA(k,d,s),children:k.text||" "},`${P}-${k.kind}`)):l.jsx(vn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})}):w.length>0?l.jsx("div",{children:w.map((k,P)=>{if(k.kind==="meta"||k.kind==="hunk")return l.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:s?11:d.fontSizeSM,lineHeight:s?1.4:1.5,padding:s?"0 4px":"1px 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",background:k.kind==="meta"?d.colorFillTertiary:d.colorFillSecondary,color:d.colorTextSecondary},children:k.text||" "},`meta-${P}`);const A=s?11:d.fontSizeSM,j=s?"0 4px":"0 8px",$=s?1.4:1.5,F={padding:j,lineHeight:$,textAlign:"right",color:d.colorTextTertiary,fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A,borderRight:`1px solid ${d.colorBorderSecondary}`,userSelect:"none"},X={padding:j,lineHeight:$,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:A};return l.jsxs("div",{style:{display:"grid",gridTemplateColumns:s?"48px 1fr 48px 1fr":"64px 1fr 64px 1fr"},children:[l.jsx("div",{style:{...F,background:al(k.kind,"old",d),borderLeft:ll(k.kind,"old",d)},children:Gp(k.oldLineNumber)}),l.jsx("div",{style:{...X,background:al(k.kind,"old",d),borderRight:`1px solid ${d.colorBorderSecondary}`,borderLeft:ll(k.kind,"old",d)},children:k.oldText??" "}),l.jsx("div",{style:{...F,background:al(k.kind,"new",d),borderLeft:ll(k.kind,"new",d)},children:Gp(k.newLineNumber)}),l.jsx("div",{style:{...X,background:al(k.kind,"new",d),borderLeft:ll(k.kind,"new",d)},children:k.newText??" "})]},`side-${P}`)})}):l.jsx(vn,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})})}),t.diff.truncated?l.jsx(vn,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.diffTruncated")}):null]})},{Text:sA}=ut,oA=t=>t.filter(e=>e!=null&&e!==!1&&!(typeof e=="string"&&e.trim()==="")),iA=(t,e)=>t.flatMap((n,r)=>r===0?[l.jsx(st.Fragment,{children:n},`item-${r}`)]:[l.jsx(st.Fragment,{children:e},`sep-${r}`),l.jsx(st.Fragment,{children:n},`item-${r}`)]),Ml=({items:t,separator:e=" · ",nowrap:n=!1,block:r=!1,style:s,className:o,ellipsis:i,...a})=>{const c=oA(t);return c.length===0?null:l.jsx(sA,{type:"secondary",className:o,ellipsis:i,style:{fontSize:11,lineHeight:1.35,whiteSpace:n?"nowrap":void 0,display:r?"block":void 0,...s},...a,children:iA(c,e)})},{Text:kn}=ut,aA=220,lA=560,cA=420,Al=t=>t.split(/[\\/]/).pop()||t,uA=t=>{const e=t.replace(/\\/g,"/"),n=e.lastIndexOf("/");return n<=0?null:e.slice(0,n)},Jp=t=>t.added+t.removed,Md=t=>t.toLocaleString(),Qp=(t,e)=>`(+${Md(t)} / -${Md(e)})`,dA=t=>({operation:"session_diff_review",file_path:t.filePath,workspace:t.workspace,diff:{unified:t.unifiedDiff,added_lines:t.added,removed_lines:t.removed,truncated:t.truncated}}),Ad=(t,e)=>{const n=[...t];return e==="path"?(n.sort((r,s)=>r.filePath.localeCompare(s.filePath)),n):(n.sort((r,s)=>{const o=Jp(s)-Jp(r);return o!==0?o:r.filePath.localeCompare(s.filePath)}),n)},oo=({value:t,kind:e,compact:n=!1})=>{const{token:r}=lt.useToken(),s=e==="added";return l.jsxs(kn,{style:{color:s?r.colorSuccess:r.colorError,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"nowrap",fontSize:n?11:void 0},children:[s?"+":"-",Md(t)]})},Zp=({files:t,changedTools:e,totalAdded:n,totalRemoved:r,sortMode:s,selectedFilePath:o,compact:i=!1,onSortModeChange:a,onSelectFile:c})=>{const{token:d}=lt.useToken(),f=v.useMemo(()=>Ad(t,s),[t,s]),p=v.useMemo(()=>t.filter(b=>b.truncated).length,[t]),y=v.useMemo(()=>Ad(t,"magnitude")[0]??null,[t]),m=i?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},w=v.useMemo(()=>{const b=[];return y&&b.push(`Largest: ${Al(y.filePath)} ${Qp(y.added,y.removed)}`),p>0&&b.push(`${p} truncated preview${p>1?"s":""}`),b},[y,p]);return l.jsxs(Ce,{vertical:!0,gap:i?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{vertical:!0,gap:i?4:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"flex-start",justify:"space-between",gap:i?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(We,{size:i?6:d.marginXS,wrap:!0,children:[l.jsx(Ny,{style:{color:d.colorPrimary}}),l.jsx(kn,{strong:!0,style:i?{fontSize:12}:void 0,children:"Session diffs"}),i?null:l.jsx(kn,{type:"secondary",children:"Review changed files, then open one file at a time."})]}),l.jsxs(We,{size:i?2:4,wrap:!0,children:[i?l.jsx(Ml,{nowrap:!0,items:[`${t.length} files`,`${e} tools`]}):l.jsxs(l.Fragment,{children:[l.jsxs(He,{style:m,children:[t.length," files"]}),l.jsxs(He,{style:m,children:[e," tools"]})]}),l.jsx(oo,{value:n,kind:"added"}),l.jsx(oo,{value:r,kind:"removed"})]})]}),i?l.jsx(Ml,{block:!0,items:w}):l.jsxs(l.Fragment,{children:[y?l.jsxs(kn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:["Largest change: ",Al(y.filePath)," ",Qp(y.added,y.removed)]}):null,p>0?l.jsxs(kn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:[p," diff",p>1?"s":""," truncated in preview."]}):null]})]}),l.jsxs(Ce,{align:"center",justify:"space-between",gap:i?d.marginXS:d.marginSM,wrap:!0,children:[l.jsx(kn,{strong:!0,style:i?{fontSize:12}:void 0,children:i?"Files":"Changed files"}),t.length>1?l.jsxs(We,{size:i?4:8,wrap:!0,children:[l.jsx(Ae,{size:"small",type:s==="magnitude"?"primary":"default",onClick:()=>a("magnitude"),"data-testid":"session-diff-sort-magnitude",children:i?"Largest":"Largest changes"}),l.jsx(Ae,{size:"small",type:s==="path"?"primary":"default",onClick:()=>a("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:i?4:6,width:"100%",minWidth:0,maxHeight:i?cA:lA,overflowY:"auto",overflowX:"hidden"},children:f.map(b=>{const _=uA(b.filePath),M=o===b.filePath,C=i?[_,b.toolCount&&b.toolCount>1?`${b.toolCount} tool steps`:null]:[];return l.jsx("button",{type:"button","aria-pressed":M,"data-selected":M?"true":"false",onClick:()=>c(b.filePath),"data-testid":"session-diff-file-row","data-file-path":b.filePath,style:{width:"100%",minWidth:0,padding:i?"6px 8px":`${d.paddingSM}px`,borderRadius:d.borderRadiusSM,border:`1px solid ${M?d.colorPrimary:d.colorBorderSecondary}`,background:M?d.colorFillSecondary:d.colorFillTertiary,boxShadow:M?`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(Ce,{align:"flex-start",justify:"space-between",gap:i?d.marginXS:d.marginSM,style:{width:"100%"},children:[l.jsxs(Ce,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsxs(Ce,{align:"center",gap:d.marginXS,style:{minWidth:0},children:[l.jsx(As,{style:{color:M?d.colorPrimary:d.colorTextSecondary,flex:"0 0 auto"}}),l.jsx(kn,{strong:!0,ellipsis:{tooltip:b.filePath},style:{display:"block",flex:1,minWidth:0},children:Al(b.filePath)}),b.truncated?i?l.jsx(kn,{type:"secondary",style:{fontSize:11,flex:"0 0 auto"},children:"· trunc."}):l.jsx(He,{color:"warning",style:{...m,flex:"0 0 auto"},children:"Truncated"}):null]}),i?l.jsx(Ml,{block:!0,items:C,style:{minWidth:0,whiteSpace:"normal",wordBreak:"break-word"}}):l.jsxs(l.Fragment,{children:[_?l.jsx(kn,{type:"secondary",ellipsis:{tooltip:b.filePath},style:{display:"block",minWidth:0,fontSize:d.fontSizeSM},children:_}):null,b.toolCount&&b.toolCount>1?l.jsxs(kn,{type:"secondary",style:{fontSize:Math.max(d.fontSizeSM-1,11)},children:["Touched by ",b.toolCount," tool steps"]}):null]})]}),l.jsxs(Ce,{vertical:!0,align:"flex-end",gap:i?1:0,style:{flex:"0 0 auto"},children:[l.jsx(oo,{value:b.added,kind:"added",compact:i}),l.jsx(oo,{value:b.removed,kind:"removed",compact:i})]})]})},b.filePath)})})]})},fA=({file:t,currentPosition:e,totalFiles:n,canGoPrevious:r,canGoNext:s,compact:o=!1,onPrevious:i,onNext:a,onBack:c})=>{const{token:d}=lt.useToken(),f=v.useMemo(()=>dA(t),[t]);return l.jsxs(Ce,{vertical:!0,gap:o?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},"data-testid":"session-diff-detail-view",children:[l.jsxs(Ce,{align:"center",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(We,{size:o?4:8,wrap:!0,children:[l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Kx,{}),onClick:c,"data-testid":"session-diff-back",style:{paddingInline:0},children:"Back to files"}),l.jsxs(kn,{type:"secondary","data-testid":"session-diff-position",style:o?{fontSize:11}:void 0,children:["File ",e," of ",n]})]}),n>1?l.jsxs(We,{size:o?4:8,wrap:!0,children:[l.jsx(Ae,{size:"small",icon:l.jsx(ed,{}),onClick:i,disabled:!r,"data-testid":"session-diff-prev",children:"Previous"}),l.jsx(Ae,{size:"small",icon:l.jsx(As,{}),onClick:a,disabled:!s,"data-testid":"session-diff-next",children:"Next"})]}):null]}),l.jsxs(Ce,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"flex-start",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(Ce,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsx(kn,{strong:!0,ellipsis:{tooltip:t.filePath},style:{display:"block",minWidth:0},children:Al(t.filePath)}),l.jsx(kn,{type:"secondary",ellipsis:{tooltip:t.filePath},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:t.filePath}),t.workspace?l.jsx(kn,{type:"secondary",ellipsis:{tooltip:t.workspace},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:t.workspace}):null]}),l.jsxs(We,{size:o?2:4,wrap:!0,children:[t.truncated?l.jsx(He,{color:"warning",style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:o?"Trunc.":"Truncated"}):null,t.toolCount&&t.toolCount>1?l.jsxs(He,{style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:[t.toolCount," tools"]}):null,l.jsx(oo,{value:t.added,kind:"added",compact:o}),l.jsx(oo,{value:t.removed,kind:"removed",compact:o})]})]}),o?null:l.jsx(kn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:"Review this file in side-by-side or unified mode."})]}),l.jsx(Sa,{payload:f,defaultViewMode:"sideBySide",showHeader:!1,showViewToggle:!0,compact:o,maxHeight:o?"calc(100vh - 240px)":"calc(100vh - 280px)"})]})},vv=({sessionDiffSummary:t,sessionId:e,compact:n=!1})=>{const{token:r}=lt.useToken(),s=!!(t&&t.files.length>0),[o,i]=v.useState(s),[a,c]=v.useState(s),[d,f]=v.useState("magnitude"),[p,y]=v.useState(null);v.useEffect(()=>{if(s){i(!0);const C=window.setTimeout(()=>c(!0),0);return()=>window.clearTimeout(C)}c(!1);const M=window.setTimeout(()=>i(!1),aA);return()=>window.clearTimeout(M)},[s]),v.useEffect(()=>{f("magnitude"),y(null)},[e]);const m=v.useMemo(()=>(t==null?void 0:t.files)??[],[t]),w=v.useMemo(()=>Ad(m,d),[m,d]),b=v.useMemo(()=>w.findIndex(M=>M.filePath===p),[w,p]),_=b>=0?w[b]:null;return v.useEffect(()=>{p&&(m.some(M=>M.filePath===p)||y(null))},[m,p]),!o||!t?null:l.jsxs("div",{className:`active-tool-card-wrapper ${a?"visible":""}`,"aria-hidden":!a,"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(Zp,{files:m,changedTools:t.changedTools,totalAdded:t.totalAdded,totalRemoved:t.totalRemoved,sortMode:d,selectedFilePath:p,compact:n,onSortModeChange:f,onSelectFile:y}):l.jsx(Ut,{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(Zp,{files:m,changedTools:t.changedTools,totalAdded:t.totalAdded,totalRemoved:t.totalRemoved,sortMode:d,selectedFilePath:p,compact:n,onSortModeChange:f,onSelectFile:y})})}),l.jsx(gc,{title:"Diff details",placement:"right",open:!!_,onClose:()=>y(null),width:"min(1280px, calc(100vw - 24px))",styles:{body:{padding:n?r.paddingXS:r.paddingLG,minWidth:0}},destroyOnClose:!0,children:_?l.jsx(fA,{file:_,currentPosition:b+1,totalFiles:w.length,canGoPrevious:b>0,canGoNext:b>=0&&b<w.length-1,compact:n,onPrevious:()=>{b>0&&y(w[b-1].filePath)},onNext:()=>{b>=0&&b<w.length-1&&y(w[b+1].filePath)},onBack:()=>y(null)}):null})]})},hA=t=>{if(!t)return;const{activeLeafId:e,setLeafSessionId:n,setActiveLeafId:r}=ft.getState();n(e,t),r(e),G.getState().selectSession(t)},pA=["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(" "),mA=["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(" "),gA=["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(" "),yA=["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(" "),bA=["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(" "),vA=["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(" "),SA=["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(" "),wA=["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(" "),xA=["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(" "),_A=["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(" "),CA=["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(" "),kA=["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(" "),TA=["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(" "),EA=["development","debugging","analysis","documentation","operations"],PA={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"}},MA=(t,e)=>{const n=t.find(s=>s.id===e),r=t.find(s=>s.id==="general_assistant")||t[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)||""}},AA=({sessionId:t=null,embedded:e=!1,hideHeader:n=!1,layoutMode:r="default"})=>{var K;const{t:s}=Xe(),{token:o}=lt.useToken(),{message:i}=En.useApp(),a=G(O=>t??O.currentSessionId),c=G(Cr(a)),d=G(O=>O.addChat),f=G(O=>O.lastSelectedPromptId),p=G(O=>O.setInputContent),y=G(O=>O.systemPrompts),m=G(O=>O.chats),[w,b]=v.useState(null),[_,M]=v.useState(""),C=(c==null?void 0:c.config.workspacePath)??((K=m.find(O=>O.config.workspacePath))==null?void 0:K.config.workspacePath),T=v.useMemo(()=>[{id:"blank",icon:l.jsx(nf,{}),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(Xx,{}),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:pA,category:"development",recommendWorkspace:!0},{id:"implementFeature",icon:l.jsx(of,{}),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:gA,category:"development",recommendWorkspace:!0},{id:"refactor",icon:l.jsx(Ny,{}),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:SA,category:"development",recommendWorkspace:!0},{id:"bugInvestigation",icon:l.jsx(Ly,{}),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:mA,category:"debugging",recommendWorkspace:!0},{id:"explainError",icon:l.jsx(zy,{}),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:bA,category:"debugging"},{id:"tokenUsage",icon:l.jsx(Yx,{}),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:TA,category:"debugging"},{id:"architectureReview",icon:l.jsx(Oy,{}),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:yA,category:"analysis",recommendWorkspace:!0},{id:"compareFiles",icon:l.jsx(Vx,{}),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:vA,category:"analysis",recommendWorkspace:!0},{id:"releaseNotes",icon:l.jsx(Bl,{}),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:wA,category:"documentation",recommendWorkspace:!0},{id:"summarizeWork",icon:l.jsx(Gx,{}),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:xA,category:"documentation"},{id:"writeDocs",icon:l.jsx(Bl,{}),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:_A,category:"documentation",recommendWorkspace:!0},{id:"createSchedule",icon:l.jsx(Rs,{}),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:CA,category:"operations"},{id:"sessionReview",icon:l.jsx(Zu,{}),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:kA,category:"operations"}],[s]),k=_.trim().toLowerCase(),P=v.useMemo(()=>k?T.filter(O=>O.title.toLowerCase().includes(k)||O.description.toLowerCase().includes(k)):T,[k,T]),A=v.useMemo(()=>{const O={};for(const W of P)O[W.category]||(O[W.category]=[]),O[W.category].push(W);return O},[P]),j=v.useCallback(O=>{typeof window>"u"||window.setTimeout(()=>{window.dispatchEvent(new CustomEvent(Zl,{detail:{sessionId:O}}))},0)},[]),$=v.useCallback(async O=>{if(!w){b(O.id);try{const W=MA(y,f),ae=await d({title:O.sessionTitle,createdAt:Date.now(),messages:[],config:{systemPromptId:W.systemPromptId,baseSystemPrompt:O.baseSystemPrompt??W.baseSystemPrompt,lastUsedEnhancedPrompt:null,...C?{workspacePath:C}:{}}});hA(ae),O.prefill.trim().length>0&&p(ae,O.prefill),j(ae)}catch(W){console.error("[EmptyTaskLauncher] Failed to create session",W),i.error(W instanceof Error?W.message:s("chat.emptyLauncher.errors.createFailed","Failed to create session"))}finally{b(null)}}},[d,f,i,w,j,p,y,s,C]),F=v.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]),X=!!C;return l.jsxs("div",{className:`lotus-empty-task-launcher ${e?"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(ut.Title,{level:e?4:3,style:{margin:0},children:s("chat.emptyLauncher.title","Start with a task")}),l.jsx(ut.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(ut.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(Ls,{placeholder:s("chat.emptyLauncher.searchPlaceholder","Search templates..."),prefix:l.jsx(Zu,{style:{color:o.colorTextQuaternary}}),value:_,onChange:O=>M(O.target.value),allowClear:!0,size:"middle",variant:"filled"})}),l.jsxs("div",{className:"lotus-empty-task-launcher__categories",children:[EA.map(O=>{const W=A[O];if(!W||W.length===0)return null;const ae=PA[O];return l.jsxs("div",{className:"lotus-empty-task-launcher__category",children:[l.jsx(ut.Text,{type:"secondary",className:"lotus-empty-task-launcher__category-label",children:s(ae.titleKey,ae.fallback)}),l.jsx("div",{className:"lotus-empty-task-launcher__grid",children:W.map(Y=>{const ce=w===Y.id,L=Y.recommendWorkspace&&X;return l.jsxs("button",{type:"button",className:"lotus-empty-task-card",onClick:()=>{$(Y)},disabled:w!==null,"aria-busy":ce,"aria-label":Y.title,children:[l.jsx("div",{className:"lotus-empty-task-card__icon","aria-hidden":!0,children:ce?l.jsx(po,{}):Y.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:Y.title}),l.jsx(Jx,{className:"lotus-empty-task-card__arrow","aria-hidden":!0})]}),l.jsx("p",{className:"lotus-empty-task-card__description",children:Y.description}),L&&l.jsx("div",{className:"lotus-empty-task-card__badges",children:l.jsxs("span",{className:"lotus-empty-task-card__badge",title:C,children:["📂 ",s("chat.emptyLauncher.badges.workspace","workspace")]})})]})]},Y.id)})})]},O)}),P.length===0&&l.jsx("div",{className:"lotus-empty-task-launcher__no-results",children:l.jsx(ut.Text,{type:"secondary",children:s("chat.emptyLauncher.noResults","No templates match your search. Try a different keyword or start a blank session.")})})]})]})},RA=({sessionId:t,isCenteredLayout:e,maxWidth:n,onWorkflowDraftChange:r,showMessagesView:s,sessionDiffSummary:o,contextUsageIndicator:i,showSessionDiffCard:a=!0})=>l.jsx(Ce,{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&&a?l.jsx(vv,{sessionDiffSummary:o,sessionId:t}):null,!s&&t?l.jsx(AA,{sessionId:t}):null,l.jsx(UM,{sessionId:t,isCenteredLayout:e,onWorkflowDraftChange:r,statusIndicator:i})]})});function Xs(t,e,n){let r=n.initialDeps??[],s;function o(){var i,a,c,d;let f;n.key&&((i=n.debug)!=null&&i.call(n))&&(f=Date.now());const p=t();if(!(p.length!==r.length||p.some((w,b)=>r[b]!==w)))return s;r=p;let m;if(n.key&&((a=n.debug)!=null&&a.call(n))&&(m=Date.now()),s=e(...p),n.key&&((c=n.debug)!=null&&c.call(n))){const w=Math.round((Date.now()-f)*100)/100,b=Math.round((Date.now()-m)*100)/100,_=b/16,M=(C,T)=>{for(C=String(C);C.length<T;)C=" "+C;return C};console.info(`%c⏱ ${M(b,5)} /${M(w,5)} ms`,`
154
154
  font-size: .6rem;
155
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=i=>{r=i},o}function Zp(t,e){if(t===void 0)throw new Error("Unexpected undefined");return t}const PA=(t,e)=>Math.abs(t-e)<1.01,MA=(t,e,n)=>{let r;return function(...s){t.clearTimeout(r),r=t.setTimeout(()=>e.apply(this,s),n)}},em=t=>{const{offsetWidth:e,offsetHeight:n}=t;return{width:e,height:n}},AA=t=>t,RA=t=>{const e=Math.max(t.startIndex-t.overscan,0),n=Math.min(t.endIndex+t.overscan,t.count-1),r=[];for(let s=e;s<=n;s++)r.push(s);return r},jA=(t,e)=>{const n=t.scrollElement;if(!n)return;const r=t.targetWindow;if(!r)return;const s=i=>{const{width:a,height:c}=i;e({width:Math.round(a),height:Math.round(c)})};if(s(em(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(i=>{const a=()=>{const c=i[0];if(c!=null&&c.borderBoxSize){const d=c.borderBoxSize[0];if(d){s({width:d.inlineSize,height:d.blockSize});return}}s(em(n))};t.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},tm={passive:!0},nm=typeof window>"u"?!0:"onscrollend"in window,IA=(t,e)=>{const n=t.scrollElement;if(!n)return;const r=t.targetWindow;if(!r)return;let s=0;const o=t.options.useScrollendEvent&&nm?()=>{}:MA(r,()=>{e(s,!1)},t.options.isScrollingResetDelay),i=f=>()=>{const{horizontal:p,isRtl:b}=t.options;s=p?n.scrollLeft*(b&&-1||1):n.scrollTop,o(),e(s,f)},a=i(!0),c=i(!1);c(),n.addEventListener("scroll",a,tm);const d=t.options.useScrollendEvent&&nm;return d&&n.addEventListener("scrollend",c,tm),()=>{n.removeEventListener("scroll",a),d&&n.removeEventListener("scrollend",c)}},OA=(t,e,n)=>{if(e!=null&&e.borderBoxSize){const r=e.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return t[n.options.horizontal?"offsetWidth":"offsetHeight"]},$A=(t,{adjustments:e=0,behavior:n},r)=>{var s,o;const i=t+e;(o=(s=r.scrollElement)==null?void 0:s.scrollTo)==null||o.call(s,{[r.options.horizontal?"left":"top"]:i,behavior:n})};class LA{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(s=>{s.forEach(o=>{const i=()=>{this._measureElement(o.target,o)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var s;(s=r())==null||s.disconnect(),n=null},observe:s=>{var o;return(o=r())==null?void 0:o.observe(s,{box:"border-box"})},unobserve:s=>{var o;return(o=r())==null?void 0:o.unobserve(s)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,s])=>{typeof s>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:AA,rangeExtractor:RA,onChange:()=>{},measureElement:OA,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=Xs(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=o,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,r)=>{const s=new Map,o=new Map;for(let i=r-1;i>=0;i--){const a=n[i];if(s.has(a.lane))continue;const c=o.get(a.lane);if(c==null||a.end>c.end?o.set(a.lane,a):a.end<c.end&&s.set(a.lane,!0),s.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((i,a)=>i.end===a.end?i.index-a.index:i.end-a.end)[0]:void 0},this.getMeasurementOptions=Xs(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(n,r,s,o,i)=>(this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i}),{key:!1}),this.getMeasurements=Xs(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i},a)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(f=>{this.itemSizeCache.set(f.key,f.size)}));const c=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const d=this.measurementsCache.slice(0,c);for(let f=c;f<n;f++){const p=o(f),b=this.options.lanes===1?d[f-1]:this.getFurthestMeasurement(d,f),m=b?b.end+this.options.gap:r+s,w=a.get(p),y=typeof w=="number"?w:this.options.estimateSize(f),_=m+y,M=b?b.lane:f%this.options.lanes;d[f]={index:f,start:m,size:y,end:_,key:p,lane:M}}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Xs(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,s,o)=>this.range=n.length>0&&r>0?DA({measurements:n,outerSize:r,scrollOffset:s,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Xs(()=>{let n=null,r=null;const s=this.calculateRange();return s&&(n=s.startIndex,r=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,r]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,r]},(n,r,s,o,i)=>o===null||i===null?[]:n({startIndex:o,endIndex:i,overscan:r,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,s=n.getAttribute(r);return s?parseInt(s,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this._measureElement=(n,r)=>{const s=this.indexFromElement(n),o=this.measurementsCache[s];if(!o)return;const i=o.key,a=this.elementsCache.get(i);a!==n&&(a&&this.observer.unobserve(a),this.observer.observe(n),this.elementsCache.set(i,n)),n.isConnected&&this.resizeItem(s,this.options.measureElement(n,r,this))},this.resizeItem=(n,r)=>{const s=this.measurementsCache[n];if(!s)return;const o=this.itemSizeCache.get(s.key)??s.size,i=r-o;i!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,i,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=i,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(s.index),this.itemSizeCache=new Map(this.itemSizeCache.set(s.key,r)),this.notify(!1))},this.measureElement=n=>{if(!n){this.elementsCache.forEach((r,s)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(s))});return}this._measureElement(n,void 0)},this.getVirtualItems=Xs(()=>[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const s=[];for(let o=0,i=n.length;o<i;o++){const a=n[o],c=r[a];s.push(c)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return Zp(r[yv(0,r.length-1,s=>Zp(r[s]).start,n)])},this.getOffsetForAlignment=(n,r,s=0)=>{const o=this.getSize(),i=this.getScrollOffset();r==="auto"&&(r=n>=i+o?"end":"start"),r==="center"?n+=(s-o)/2:r==="end"&&(n-=o);const a=this.getTotalSize()+this.options.scrollMargin-o;return Math.max(Math.min(a,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const s=this.measurementsCache[n];if(!s)return;const o=this.getSize(),i=this.getScrollOffset();if(r==="auto")if(s.end>=i+o-this.options.scrollPaddingEnd)r="end";else if(s.start<=i+this.options.scrollPaddingStart)r="start";else return[i,r];const a=r==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,r,s.size),r]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(n,{align:r="start",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(n,r),{adjustments:void 0,behavior:s})},this.scrollToIndex=(n,{align:r="auto",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),n=Math.max(0,Math.min(n,this.options.count-1));let o=0;const i=10,a=d=>{if(!this.targetWindow)return;const f=this.getOffsetForIndex(n,d);if(!f){console.warn("Failed to get offset for index:",n);return}const[p,b]=f;this._scrollToOffset(p,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const m=this.getScrollOffset(),w=this.getOffsetForIndex(n,b);if(!w){console.warn("Failed to get offset for index:",n);return}PA(w[0],m)||c(b)})},c=d=>{this.targetWindow&&(o++,o<i?this.targetWindow.requestAnimationFrame(()=>a(d)):console.warn(`Failed to scroll to index ${n} after ${i} attempts.`))};a(r)},this.scrollBy=(n,{behavior:r}={})=>{r==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+n,{adjustments:void 0,behavior:r})},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let s;if(r.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((n=r[r.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let i=r.length-1;for(;i>=0&&o.some(a=>a===null);){const a=r[i];o[a.lane]===null&&(o[a.lane]=a.end),i--}s=Math.max(...o.filter(a=>a!==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(e)}}const yv=(t,e,n,r)=>{for(;t<=e;){const s=(t+e)/2|0,o=n(s);if(o<r)t=s+1;else if(o>r)e=s-1;else return s}return t>0?t-1:0};function DA({measurements:t,outerSize:e,scrollOffset:n,lanes:r}){const s=t.length-1,o=c=>t[c].start;if(t.length<=r)return{startIndex:0,endIndex:s};let i=yv(0,s,o,n),a=i;if(r===1)for(;a<s&&t[a].end<n+e;)a++;else if(r>1){const c=Array(r).fill(0);for(;a<s&&c.some(f=>f<n+e);){const f=t[a];c[f.lane]=f.end,a++}const d=Array(r).fill(n+e);for(;i>=0&&d.some(f=>f>=n);){const f=t[i];d[f.lane]=f.start,i--}i=Math.max(0,i-i%r),a=Math.min(s,a+(r-1-a%r))}return{startIndex:i,endIndex:a}}const rm=typeof document<"u"?v.useLayoutEffect:v.useEffect;function FA(t){const e=v.useReducer(()=>({}),{})[1],n={...t,onChange:(s,o)=>{var i;o?Yx.flushSync(e):e(),(i=t.onChange)==null||i.call(t,s,o)}},[r]=v.useState(()=>new LA(n));return r.setOptions(n),rm(()=>r._didMount(),[]),rm(()=>r._willUpdate()),r}function NA(t){return FA({observeElementRect:jA,observeElementOffset:IA,scrollToFn:$A,...t})}const{Text:sm,Paragraph:zA}=ut,BA=({content:t,token:e,headingColor:n})=>l.jsx(xr,{components:{p:({children:r})=>l.jsx(zA,{style:{marginBottom:e.marginSM},children:r}),ol:({children:r})=>l.jsx("ol",{style:{marginBottom:e.marginSM,paddingLeft:20},children:r}),ul:({children:r})=>l.jsx("ul",{style:{marginBottom:e.marginSM,paddingLeft:20},children:r}),li:({children:r})=>l.jsx("li",{style:{marginBottom:e.marginXS},children:r}),h1:({children:r})=>l.jsx(sm,{strong:!0,style:{fontSize:e.fontSizeHeading3,marginBottom:e.marginSM,display:"block",color:n},children:r}),h2:({children:r})=>l.jsx(sm,{strong:!0,style:{fontSize:e.fontSizeHeading4,marginBottom:e.marginSM,display:"block",color:n},children:r})},children:t}),om=v.memo(BA),WA=t=>{if(typeof t!="string")return null;const e=t.trim();return e.length>0?e:null},UA=t=>t?[["base",t.base_system_prompt],["enhancement",t.enhancement_prompt],["workspace",t.workspace_context],["instruction",t.instruction_context],["env",t.env_context],["skills",t.skill_context],["toolGuide",t.tool_guide_context],["dream",t.dream_notebook],["sessionMemory",t.session_memory_note],["externalMemory",t.external_memory],["taskList",t.task_list],["effective",t.effective_system_prompt]].flatMap(([n,r])=>{const s=WA(r);return s?[{key:n,content:s}]:[]}):[],HA=({currentChat:t,message:e,systemPrompts:n})=>{var X;const[r,s]=v.useState(null),[o,i]=v.useState(null),[a,c]=v.useState(null),[d,f]=v.useState(!1),[p,b]=v.useState(!1),m=v.useMemo(()=>Yl.getInstance(),[]),w=v.useMemo(()=>Pn.getInstance(),[]),y=e.role==="system"&&typeof e.content=="string"?e.content:"",_=e.role==="system"&&!e.id.startsWith("system-prompt-")&&y.trim().length>0;v.useEffect(()=>{e.role==="system"&&(i(null),c(null),b(!1))},[e.id,e.role,y]);const M=(t==null?void 0:t.id)??null,C=((X=t==null?void 0:t.config)==null?void 0:X.systemPromptId)??null,T=v.useMemo(()=>C?n.find(K=>K.id===C)??null:null,[C,n]),k=(T==null?void 0:T.content)??(r==null?void 0:r.content)??"",P=(T==null?void 0:T.description)??(r==null?void 0:r.description)??"",A=v.useRef(null);v.useEffect(()=>{s(null),A.current=null},[M,C]),v.useEffect(()=>{if(!C)return;const K=C;if(T!=null&&T.content)return;const O=`${M??"no-chat"}:${K}`;if(A.current===O)return;A.current=O;let W=!1;return(async()=>{try{const Y=await m.findPresetById(K);if(W)return;const ce=Y?{content:Y.content,description:Y.description}:null;s(L=>!L&&!ce||L&&ce&&L.content===ce.content&&L.description===ce.description?L:ce)}catch(Y){console.error("Failed to load preset prompt:",Y)}})(),()=>{W=!0}},[M,C,m,T==null?void 0:T.content]);const j=v.useCallback(async()=>{var K;if(!d){f(!0);try{if(M)try{const O=await w.getSessionSystemPrompt(M);c(O);const W=(K=O.effective_system_prompt)==null?void 0:K.trim();if(W){i(W),b(!0);return}}catch(O){console.warn("Failed to load backend prompt snapshot:",O)}if(_){c(null),i(y),b(!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)}}},[w,M,_,d,y]),$=v.useMemo(()=>p&&o?o:k||P||(e.role==="system"?y:Et.t("chat.systemPrompt.preparing")),[p,o,k,P,e.role,y]),F=v.useMemo(()=>UA(a),[a]);return{basePrompt:k,categoryDescription:P,enhancedPrompt:o,loadingEnhanced:d,loadEnhancedPrompt:j,promptSnapshot:a,promptToDisplay:$,showEnhanced:p,setShowEnhanced:b,snapshotSections:F,systemMessageContent:y}},{Text:im}=ut,{useToken:qA}=lt,KA=(t,e)=>({base:t("chat.prompt.systemCard.sections.base"),enhancement:t("chat.prompt.systemCard.sections.enhancement"),workspace:t("chat.prompt.systemCard.sections.workspace"),instruction:t("chat.prompt.systemCard.sections.instruction"),env:t("chat.prompt.systemCard.sections.env"),skills:t("chat.prompt.systemCard.sections.skills"),toolGuide:t("chat.prompt.systemCard.sections.toolGuide"),dream:t("chat.prompt.systemCard.sections.dream"),sessionMemory:t("chat.prompt.systemCard.sections.sessionMemory"),externalMemory:t("chat.prompt.systemCard.sections.externalMemory"),taskList:t("chat.prompt.systemCard.sections.taskList"),effective:t("chat.prompt.systemCard.sections.effective")})[e],XA=({currentChat:t,message:e})=>{const{token:n}=qA(),{t:r}=Xe(),s=G(w=>w.systemPrompts),{basePrompt:o,loadingEnhanced:i,loadEnhancedPrompt:a,promptSnapshot:c,promptToDisplay:d,showEnhanced:f,setShowEnhanced:p,snapshotSections:b}=HA({currentChat:t,message:e,systemPrompts:s}),m=v.useCallback(async w=>{try{await jr(w)}catch(y){console.error("Failed to copy text:",y)}},[]);return l.jsx(Ut,{style:{width:"100%",maxWidth:"100%",background:n.colorBgContainer,borderRadius:n.borderRadiusLG,boxShadow:"none"},children:l.jsxs(We,{direction:"vertical",size:n.marginSM,style:{width:"100%"},children:[l.jsxs(Ce,{justify:"space-between",align:"center",children:[l.jsx(Ce,{align:"center",gap:n.marginXS,children:l.jsx(im,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.title")})}),l.jsxs(We,{children:[o&&!f?l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(af,{}),onClick:a,loading:i,children:r("chat.prompt.systemCard.viewEnhanced")}):null,o&&f?l.jsx(Ae,{type:"text",size:"small",onClick:()=>p(!1),children:r("chat.prompt.systemCard.viewBase")}):null,l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:()=>m(d),children:r("chat.prompt.systemCard.copy")})]})]}),l.jsx(Ce,{vertical:!0,style:{maxHeight:f?400:300,overflowY:"auto",paddingRight:n.paddingXS},children:l.jsx(om,{content:d,token:n,headingColor:n.colorPrimary})}),c&&b.length>0?l.jsxs(l.Fragment,{children:[l.jsx(Wl,{style:{margin:`${n.marginXS}px 0`}}),l.jsxs(We,{direction:"vertical",size:n.marginXS,style:{width:"100%"},children:[l.jsx(im,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.snapshotTitle")}),l.jsx(xo,{defaultActiveKey:b.map(w=>w.key),items:b.map(w=>({key:w.key,label:KA(r,w.key),children:l.jsx(om,{content:w.content,token:n,headingColor:n.colorPrimary})}))})]})]}):null]})})},bv=v.memo(XA);bv.displayName="SystemMessageCard";const vv=6048e5,YA=864e5,am=Symbol.for("constructDateFrom");function Jr(t,e){return typeof t=="function"?t(e):t&&typeof t=="object"&&am in t?t[am](e):t instanceof Date?new t.constructor(e):new Date(e)}function or(t,e){return Jr(e||t,t)}let VA={};function xc(){return VA}function wa(t,e){var a,c,d,f;const n=xc(),r=(e==null?void 0:e.weekStartsOn)??((c=(a=e==null?void 0:e.locale)==null?void 0:a.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((f=(d=n.locale)==null?void 0:d.options)==null?void 0:f.weekStartsOn)??0,s=or(t,e==null?void 0:e.in),o=s.getDay(),i=(o<r?7:0)+o-r;return s.setDate(s.getDate()-i),s.setHours(0,0,0,0),s}function tc(t,e){return wa(t,{...e,weekStartsOn:1})}function Sv(t,e){const n=or(t,e==null?void 0:e.in),r=n.getFullYear(),s=Jr(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const o=tc(s),i=Jr(n,0);i.setFullYear(r,0,4),i.setHours(0,0,0,0);const a=tc(i);return n.getTime()>=o.getTime()?r+1:n.getTime()>=a.getTime()?r:r-1}function lm(t){const e=or(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function GA(t,...e){const n=Jr.bind(null,e.find(r=>typeof r=="object"));return e.map(n)}function cm(t,e){const n=or(t,e==null?void 0:e.in);return n.setHours(0,0,0,0),n}function JA(t,e,n){const[r,s]=GA(n==null?void 0:n.in,t,e),o=cm(r),i=cm(s),a=+o-lm(o),c=+i-lm(i);return Math.round((a-c)/YA)}function QA(t,e){const n=Sv(t,e),r=Jr(t,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),tc(r)}function ZA(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function e1(t){return!(!ZA(t)&&typeof t!="number"||isNaN(+or(t)))}function t1(t,e){const n=or(t,e==null?void 0:e.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const n1={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"}},r1=(t,e,n)=>{let r;const s=n1[t];return typeof s=="string"?r=s:e===1?r=s.one:r=s.other.replace("{{count}}",e.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function wu(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const s1={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},o1={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},i1={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},a1={date:wu({formats:s1,defaultWidth:"full"}),time:wu({formats:o1,defaultWidth:"full"}),dateTime:wu({formats:i1,defaultWidth:"full"})},l1={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},c1=(t,e,n,r)=>l1[t];function Zo(t){return(e,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let s;if(r==="formatting"&&t.formattingValues){const i=t.defaultFormattingWidth||t.defaultWidth,a=n!=null&&n.width?String(n.width):i;s=t.formattingValues[a]||t.formattingValues[i]}else{const i=t.defaultWidth,a=n!=null&&n.width?String(n.width):t.defaultWidth;s=t.values[a]||t.values[i]}const o=t.argumentCallback?t.argumentCallback(e):e;return s[o]}}const u1={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},d1={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},f1={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"]},h1={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"]},p1={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"}},m1={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"}},g1=(t,e)=>{const n=Number(t),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"},y1={ordinalNumber:g1,era:Zo({values:u1,defaultWidth:"wide"}),quarter:Zo({values:d1,defaultWidth:"wide",argumentCallback:t=>t-1}),month:Zo({values:f1,defaultWidth:"wide"}),day:Zo({values:h1,defaultWidth:"wide"}),dayPeriod:Zo({values:p1,defaultWidth:"wide",formattingValues:m1,defaultFormattingWidth:"wide"})};function ei(t){return(e,n={})=>{const r=n.width,s=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(s);if(!o)return null;const i=o[0],a=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(a)?v1(a,p=>p.test(i)):b1(a,p=>p.test(i));let d;d=t.valueCallback?t.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;const f=e.slice(i.length);return{value:d,rest:f}}}function b1(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n}function v1(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n}function S1(t){return(e,n={})=>{const r=e.match(t.matchPattern);if(!r)return null;const s=r[0],o=e.match(t.parsePattern);if(!o)return null;let i=t.valueCallback?t.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;const a=e.slice(s.length);return{value:i,rest:a}}}const w1=/^(\d+)(th|st|nd|rd)?/i,x1=/\d+/i,_1={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},C1={any:[/^b/i,/^(a|c)/i]},k1={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},T1={any:[/1/i,/2/i,/3/i,/4/i]},E1={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},P1={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]},M1={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},A1={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]},R1={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},j1={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}},I1={ordinalNumber:S1({matchPattern:w1,parsePattern:x1,valueCallback:t=>parseInt(t,10)}),era:ei({matchPatterns:_1,defaultMatchWidth:"wide",parsePatterns:C1,defaultParseWidth:"any"}),quarter:ei({matchPatterns:k1,defaultMatchWidth:"wide",parsePatterns:T1,defaultParseWidth:"any",valueCallback:t=>t+1}),month:ei({matchPatterns:E1,defaultMatchWidth:"wide",parsePatterns:P1,defaultParseWidth:"any"}),day:ei({matchPatterns:M1,defaultMatchWidth:"wide",parsePatterns:A1,defaultParseWidth:"any"}),dayPeriod:ei({matchPatterns:R1,defaultMatchWidth:"any",parsePatterns:j1,defaultParseWidth:"any"})},O1={code:"en-US",formatDistance:r1,formatLong:a1,formatRelative:c1,localize:y1,match:I1,options:{weekStartsOn:0,firstWeekContainsDate:1}};function $1(t,e){const n=or(t,e==null?void 0:e.in);return JA(n,t1(n))+1}function L1(t,e){const n=or(t,e==null?void 0:e.in),r=+tc(n)-+QA(n);return Math.round(r/vv)+1}function wv(t,e){var f,p,b,m;const n=or(t,e==null?void 0:e.in),r=n.getFullYear(),s=xc(),o=(e==null?void 0:e.firstWeekContainsDate)??((p=(f=e==null?void 0:e.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??s.firstWeekContainsDate??((m=(b=s.locale)==null?void 0:b.options)==null?void 0:m.firstWeekContainsDate)??1,i=Jr((e==null?void 0:e.in)||t,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const a=wa(i,e),c=Jr((e==null?void 0:e.in)||t,0);c.setFullYear(r,0,o),c.setHours(0,0,0,0);const d=wa(c,e);return+n>=+a?r+1:+n>=+d?r:r-1}function D1(t,e){var a,c,d,f;const n=xc(),r=(e==null?void 0:e.firstWeekContainsDate)??((c=(a=e==null?void 0:e.locale)==null?void 0:a.options)==null?void 0:c.firstWeekContainsDate)??n.firstWeekContainsDate??((f=(d=n.locale)==null?void 0:d.options)==null?void 0:f.firstWeekContainsDate)??1,s=wv(t,e),o=Jr((e==null?void 0:e.in)||t,0);return o.setFullYear(s,0,r),o.setHours(0,0,0,0),wa(o,e)}function F1(t,e){const n=or(t,e==null?void 0:e.in),r=+wa(n,e)-+D1(n,e);return Math.round(r/vv)+1}function kt(t,e){const n=t<0?"-":"",r=Math.abs(t).toString().padStart(e,"0");return n+r}const Wr={y(t,e){const n=t.getFullYear(),r=n>0?n:1-n;return kt(e==="yy"?r%100:r,e.length)},M(t,e){const n=t.getMonth();return e==="M"?String(n+1):kt(n+1,2)},d(t,e){return kt(t.getDate(),e.length)},a(t,e){const n=t.getHours()/12>=1?"pm":"am";switch(e){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(t,e){return kt(t.getHours()%12||12,e.length)},H(t,e){return kt(t.getHours(),e.length)},m(t,e){return kt(t.getMinutes(),e.length)},s(t,e){return kt(t.getSeconds(),e.length)},S(t,e){const n=e.length,r=t.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return kt(s,e.length)}},Ys={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},um={G:function(t,e,n){const r=t.getFullYear()>0?1:0;switch(e){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(t,e,n){if(e==="yo"){const r=t.getFullYear(),s=r>0?r:1-r;return n.ordinalNumber(s,{unit:"year"})}return Wr.y(t,e)},Y:function(t,e,n,r){const s=wv(t,r),o=s>0?s:1-s;if(e==="YY"){const i=o%100;return kt(i,2)}return e==="Yo"?n.ordinalNumber(o,{unit:"year"}):kt(o,e.length)},R:function(t,e){const n=Sv(t);return kt(n,e.length)},u:function(t,e){const n=t.getFullYear();return kt(n,e.length)},Q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return kt(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(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return kt(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(t,e,n){const r=t.getMonth();switch(e){case"M":case"MM":return Wr.M(t,e);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(t,e,n){const r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return kt(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(t,e,n,r){const s=F1(t,r);return e==="wo"?n.ordinalNumber(s,{unit:"week"}):kt(s,e.length)},I:function(t,e,n){const r=L1(t);return e==="Io"?n.ordinalNumber(r,{unit:"week"}):kt(r,e.length)},d:function(t,e,n){return e==="do"?n.ordinalNumber(t.getDate(),{unit:"date"}):Wr.d(t,e)},D:function(t,e,n){const r=$1(t);return e==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):kt(r,e.length)},E:function(t,e,n){const r=t.getDay();switch(e){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(t,e,n,r){const s=t.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return kt(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(t,e,n,r){const s=t.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return kt(o,e.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(t,e,n){const r=t.getDay(),s=r===0?7:r;switch(e){case"i":return String(s);case"ii":return kt(s,e.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(t,e,n){const s=t.getHours()/12>=1?"pm":"am";switch(e){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(t,e,n){const r=t.getHours();let s;switch(r===12?s=Ys.noon:r===0?s=Ys.midnight:s=r/12>=1?"pm":"am",e){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(t,e,n){const r=t.getHours();let s;switch(r>=17?s=Ys.evening:r>=12?s=Ys.afternoon:r>=4?s=Ys.morning:s=Ys.night,e){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(t,e,n){if(e==="ho"){let r=t.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Wr.h(t,e)},H:function(t,e,n){return e==="Ho"?n.ordinalNumber(t.getHours(),{unit:"hour"}):Wr.H(t,e)},K:function(t,e,n){const r=t.getHours()%12;return e==="Ko"?n.ordinalNumber(r,{unit:"hour"}):kt(r,e.length)},k:function(t,e,n){let r=t.getHours();return r===0&&(r=24),e==="ko"?n.ordinalNumber(r,{unit:"hour"}):kt(r,e.length)},m:function(t,e,n){return e==="mo"?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):Wr.m(t,e)},s:function(t,e,n){return e==="so"?n.ordinalNumber(t.getSeconds(),{unit:"second"}):Wr.s(t,e)},S:function(t,e){return Wr.S(t,e)},X:function(t,e,n){const r=t.getTimezoneOffset();if(r===0)return"Z";switch(e){case"X":return fm(r);case"XXXX":case"XX":return us(r);case"XXXXX":case"XXX":default:return us(r,":")}},x:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"x":return fm(r);case"xxxx":case"xx":return us(r);case"xxxxx":case"xxx":default:return us(r,":")}},O:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+dm(r,":");case"OOOO":default:return"GMT"+us(r,":")}},z:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+dm(r,":");case"zzzz":default:return"GMT"+us(r,":")}},t:function(t,e,n){const r=Math.trunc(+t/1e3);return kt(r,e.length)},T:function(t,e,n){return kt(+t,e.length)}};function dm(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),s=Math.trunc(r/60),o=r%60;return o===0?n+String(s):n+String(s)+e+kt(o,2)}function fm(t,e){return t%60===0?(t>0?"-":"+")+kt(Math.abs(t)/60,2):us(t,e)}function us(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),s=kt(Math.trunc(r/60),2),o=kt(r%60,2);return n+s+e+o}const hm=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},xv=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},N1=(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return hm(t,e);let o;switch(r){case"P":o=e.dateTime({width:"short"});break;case"PP":o=e.dateTime({width:"medium"});break;case"PPP":o=e.dateTime({width:"long"});break;case"PPPP":default:o=e.dateTime({width:"full"});break}return o.replace("{{date}}",hm(r,e)).replace("{{time}}",xv(s,e))},z1={p:xv,P:N1},B1=/^D+$/,W1=/^Y+$/,U1=["D","DD","YY","YYYY"];function H1(t){return B1.test(t)}function q1(t){return W1.test(t)}function K1(t,e,n){const r=X1(t,e,n);if(console.warn(r),U1.includes(t))throw new RangeError(r)}function X1(t,e,n){const r=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Y1=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,V1=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,G1=/^'([^]*?)'?$/,J1=/''/g,Q1=/[a-zA-Z]/;function Z1(t,e,n){var f,p,b,m;const r=xc(),s=r.locale??O1,o=r.firstWeekContainsDate??((p=(f=r.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??1,i=r.weekStartsOn??((m=(b=r.locale)==null?void 0:b.options)==null?void 0:m.weekStartsOn)??0,a=or(t,n==null?void 0:n.in);if(!e1(a))throw new RangeError("Invalid time value");let c=e.match(V1).map(w=>{const y=w[0];if(y==="p"||y==="P"){const _=z1[y];return _(w,s.formatLong)}return w}).join("").match(Y1).map(w=>{if(w==="''")return{isToken:!1,value:"'"};const y=w[0];if(y==="'")return{isToken:!1,value:eR(w)};if(um[y])return{isToken:!0,value:w};if(y.match(Q1))throw new RangeError("Format string contains an unescaped latin alphabet character `"+y+"`");return{isToken:!1,value:w}});s.localize.preprocessor&&(c=s.localize.preprocessor(a,c));const d={firstWeekContainsDate:o,weekStartsOn:i,locale:s};return c.map(w=>{if(!w.isToken)return w.value;const y=w.value;(q1(y)||H1(y))&&K1(y,e,String(t));const _=um[y[0]];return _(a,y,s.localize,d)}).join("")}function eR(t){const e=t.match(G1);return e?e[1].replace(J1,"'"):t}const{useToken:tR}=lt,{Text:cl}=ut,nR=({images:t,className:e,style:n,maxHeight:r={single:400,multiple:200}})=>{const{token:s}=tR(),{t:o}=Xe();return!t||t.length===0?null:l.jsx(Ut,{className:e,style:{marginBottom:s.marginMD,...n},styles:{body:{padding:0}},variant:"borderless",children:l.jsx(Ce,{wrap:"wrap",gap:s.marginSM,style:{width:"100%"},children:t.map(i=>l.jsxs(Ut,{size:"small",style:{flex:t.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(zi,{src:i.url||i.base64,alt:i.name,style:{width:"100%",height:"auto",maxHeight:t.length===1?r.single:r.multiple,objectFit:"cover"},preview:{mask:l.jsxs(Ce,{align:"center",justify:"center",gap:s.marginXS,style:{color:s.colorTextLightSolid},children:[l.jsx(af,{}),l.jsx(cl,{style:{color:s.colorTextLightSolid},children:o("components.imageGrid.preview")})]})}}),l.jsxs(Ce,{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(cl,{style:{color:s.colorTextLightSolid},strong:!0,children:i.name}),i.size&&l.jsxs(cl,{style:{fontSize:s.fontSizeSM*.85,opacity:.8,color:s.colorTextLightSolid},children:[(i.size/1024).toFixed(1)," KB",i.width&&i.height&&` • ${i.width}×${i.height}`]})]})]}),(i.ocrText||i.ocrError)&&l.jsx("div",{style:{padding:s.paddingSM},children:l.jsx(xo,{ghost:!0,size:"small",items:[{key:"ocr",label:o("components.imageGrid.ocr"),children:l.jsxs(l.Fragment,{children:[i.ocrError&&l.jsx(cl,{type:"danger",children:i.ocrError}),i.ocrText&&l.jsx(ut.Paragraph,{style:{marginTop:i.ocrError?s.marginXS:0,marginBottom:0,whiteSpace:"pre-wrap"},children:i.ocrText})]})}]})})]},i.id))})})},{useToken:rR}=lt,{useBreakpoint:sR}=pc,oR=({buttons:t,isVisible:e,className:n,style:r,position:s={bottom:"8px",right:"8px"}})=>{const{token:o}=rR(),i=sR(),a=()=>(i.xs,"small");return l.jsx(Ce,{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:e?1:0,transition:"opacity 0.2s ease",pointerEvents:e?"auto":"none",...r},children:t.map(c=>l.jsx(fn,{title:c.title,children:l.jsx(Ae,{"data-testid":c["data-testid"]||c.key,icon:c.icon,size:a(),type:"text",onClick:c.onClick,disabled:c.disabled,style:{background:o.colorBgElevated,borderRadius:o.borderRadiusSM}})},c.key))})},iR=(t,e)=>({key:"copy","data-testid":"copy-message",icon:l.jsx(Rr,{}),title:e||Et.t("chat.actions.copyMessage"),onClick:t}),aR=(t,e)=>({key:"reference",icon:l.jsx(Ny,{}),title:e||Et.t("chat.actions.referenceMessage"),onClick:t}),_v=t=>t.role==="assistant"&&"type"in t&&t.type==="tool_result",lR=t=>t.role==="assistant"&&"type"in t&&t.type==="tool_call",cR=t=>t.role==="assistant"&&"type"in t&&t.type==="workflow_result",uR=t=>t.role==="user"&&"type"in t&&t.type==="file_reference",dR=t=>t.role==="assistant"&&"type"in t&&t.type==="task_list",{Title:pm,Text:zn,Paragraph:mm}=ut,{useToken:fR}=lt,hR=({plan:t,contextId:e,onExecute:n,onRefine:r,timestamp:s})=>{const{t:o}=Xe(),{token:i}=fR(),[a,c]=v.useState(!1),[d,f]=v.useState(""),p=()=>{d.trim()&&(r(d),f(""),c(!1))};return l.jsxs(Ut,{style:{marginBottom:i.marginMD,borderColor:i.colorPrimary,borderWidth:2,backgroundColor:i.colorPrimaryBg},title:l.jsxs(We,{children:[l.jsx(ao,{style:{color:i.colorPrimary}}),l.jsx(zn,{strong:!0,style:{color:i.colorPrimary},children:o("components.plan.executionPlan")})]}),extra:s?l.jsx(zn,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:[l.jsx(pm,{level:5,style:{marginBottom:i.marginXS},children:o("components.plan.goal")}),l.jsx(mm,{style:{fontSize:15,marginBottom:0},children:t.goal})]}),l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:[l.jsx(pm,{level:5,style:{marginBottom:i.marginMD},children:o("components.plan.steps")}),l.jsx(zy,{direction:"vertical",current:-1,items:t.steps.map(b=>({title:l.jsxs(zn,{strong:!0,children:[o("components.plan.stepTitle",{number:b.step_number}),": ",b.action]}),description:l.jsxs(Ce,{vertical:!0,children:[l.jsxs(mm,{style:{marginBottom:i.marginXS},children:[l.jsxs(zn,{type:"secondary",children:[o("components.plan.reason"),":"]})," ",b.reason]}),l.jsxs(We,{wrap:!0,children:[l.jsxs(zn,{type:"secondary",children:[l.jsx(of,{})," ",o("components.plan.tools"),":"]}),b.tools_needed.map(m=>l.jsx(He,{color:"processing",children:m},m))]}),l.jsx(Ce,{style:{marginTop:i.marginXS},children:l.jsxs(zn,{type:"secondary",children:[l.jsx(Rs,{})," ",o("components.plan.estimated"),": ",b.estimated_time]})})]}),icon:l.jsx(zn,{children:b.step_number})}))})]}),l.jsxs(We,{direction:"vertical",style:{width:"100%",marginBottom:i.marginLG},children:[l.jsxs(Ce,{align:"center",gap:i.marginXS,wrap:"wrap",children:[l.jsxs(zn,{type:"secondary",children:[l.jsx(Rs,{})," ",o("components.plan.totalEstimatedTime")," "]}),l.jsx(He,{color:"processing",children:t.estimated_total_time})]}),t.prerequisites&&t.prerequisites.length>0&&l.jsxs(Ce,{vertical:!0,children:[l.jsxs(zn,{type:"secondary",children:[o("components.plan.prerequisites"),":"]}),l.jsx(Ar,{size:"small",dataSource:t.prerequisites,renderItem:(b,m)=>l.jsx(Ar.Item,{style:{padding:0},children:l.jsx(zn,{children:b})},`${b}-${m}`)})]})]}),t.risks&&t.risks.length>0&&l.jsx(xo,{ghost:!0,style:{marginBottom:i.marginLG},items:[{key:"risks",label:l.jsxs(We,{children:[l.jsx(lf,{style:{color:i.colorWarning}}),l.jsx(zn,{strong:!0,children:o("components.plan.potentialRisks",{count:t.risks.length})})]}),children:l.jsx(Ar,{size:"small",dataSource:t.risks,renderItem:(b,m)=>l.jsx(Ar.Item,{style:{padding:0},children:l.jsx(zn,{children:b})},`${b}-${m}`)})}]}),l.jsx(We,{style:{width:"100%",justifyContent:"flex-end"},children:a?l.jsxs(l.Fragment,{children:[l.jsx(Ae,{onClick:()=>c(!1),children:o("common.cancel")}),l.jsx(Ae,{type:"primary",onClick:p,disabled:!d.trim(),children:o("components.plan.sendFeedback")})]}):l.jsxs(l.Fragment,{children:[l.jsx(Ae,{onClick:()=>c(!0),children:o("components.plan.refinePlan")}),l.jsx(Ae,{type:"primary",icon:l.jsx(Ly,{}),onClick:n,children:o("components.plan.executePlan")})]})}),a&&l.jsx(Ce,{vertical:!0,style:{marginTop:i.marginMD},children:l.jsx(Ls.TextArea,{value:d,onChange:b=>f(b.target.value),placeholder:o("components.plan.feedbackPlaceholder"),autoSize:{minRows:4,maxRows:10}})})]})},Cv=v.memo(hR);Cv.displayName="PlanMessageCard";const{Title:pR,Text:Vs,Paragraph:mR}=ut,{useToken:gR}=lt,yR=({question:t,contextId:e,onAnswer:n,disabled:r=!1,timestamp:s})=>{const{t:o}=Xe(),{token:i}=gR(),[a,c]=v.useState(t.default),[d,f]=v.useState(!1),p=async()=>{if(a){f(!0);try{await n(a)}catch(y){console.error("Failed to submit answer:",y)}finally{f(!1)}}},b=()=>{switch(t.severity){case"critical":return l.jsx($y,{style:{color:i.colorError}});case"major":return l.jsx(lf,{style:{color:i.colorWarning}});case"minor":return l.jsx(Vx,{style:{color:i.colorInfo}});default:return l.jsx(Fy,{style:{color:i.colorPrimary}})}},m=()=>{switch(t.severity){case"critical":return i.colorErrorBg;case"major":return i.colorWarningBg;case"minor":return i.colorInfoBg;default:return i.colorPrimaryBg}},w=()=>{switch(t.severity){case"critical":return i.colorError;case"major":return i.colorWarning;case"minor":return i.colorInfo;default:return i.colorPrimary}};return l.jsxs(Ut,{style:{marginBottom:i.marginMD,borderColor:w(),borderWidth:2,backgroundColor:m()},title:l.jsxs(We,{children:[b(),l.jsx(Vs,{strong:!0,style:{color:w()},children:o("components.question.agentQuestion")}),l.jsxs(Vs,{type:"secondary",style:{fontSize:12},children:["(",t.severity,")"]})]}),extra:s?l.jsx(Vs,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[l.jsx(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:l.jsx(pR,{level:5,style:{marginBottom:i.marginXS},children:t.question})}),t.context&&l.jsx(rr,{message:o("components.question.context"),description:t.context,type:"info",showIcon:!0,style:{marginBottom:i.marginLG}}),l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:[l.jsx(Vs,{strong:!0,style:{display:"block",marginBottom:i.marginSM},children:o("components.question.chooseOption")}),l.jsx(zh.Group,{value:a,onChange:y=>c(y.target.value),disabled:r||d,style:{width:"100%"},children:l.jsx(We,{direction:"vertical",style:{width:"100%"},children:t.options.map(y=>l.jsx(Ut,{size:"small",hoverable:!r&&!d,style:{borderColor:a===y.value?i.colorPrimary:i.colorBorder,backgroundColor:a===y.value?i.colorPrimaryBg:i.colorBgContainer,cursor:r||d?"not-allowed":"pointer"},onClick:()=>!r&&!d&&c(y.value),children:l.jsx(zh,{value:y.value,style:{width:"100%"},children:l.jsxs(Ce,{vertical:!0,children:[l.jsxs(Ce,{align:"center",gap:i.marginXS,wrap:"wrap",children:[l.jsx(Vs,{strong:!0,children:y.label}),y.value===t.default&&l.jsx(He,{color:"processing",style:{marginLeft:i.marginXS},children:o("components.question.recommended")})]}),l.jsx(mR,{type:"secondary",style:{marginTop:i.marginXXS,marginBottom:0},children:y.description})]})})},y.value))})})]}),t.allow_custom&&l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginMD},children:[l.jsx(Vs,{type:"secondary",style:{fontSize:12},children:o("components.question.customAnswerHint")}),l.jsx(Ls.TextArea,{value:a&&!t.options.find(y=>y.value===a)?a:"",onChange:y=>c(y.target.value),placeholder:o("components.question.customAnswerPlaceholder"),disabled:r||d,autoSize:{minRows:3,maxRows:8},style:{marginTop:i.marginXS}})]}),l.jsx(Ce,{justify:"flex-end",children:l.jsx(Ae,{type:"primary",icon:l.jsx(ao,{}),onClick:p,loading:d,disabled:r||!a,children:o("components.question.submitAnswer")})})]})},kv=v.memo(yR);kv.displayName="QuestionMessageCard";const{Text:gm}=ut,bR=({paths:t,displayText:e})=>{const{token:n}=lt.useToken(),r=e.replace(/@[^\s]+/g,"").trim();return l.jsxs(Ut,{size:"small",styles:{body:{padding:`${n.paddingSM}px ${n.paddingMD}px`}},style:{maxWidth:"100%"},children:[l.jsx(We,{direction:"vertical",size:n.marginXXS,children:t.map(s=>{const o=s.split("/").pop()||s,i=s.substring(0,s.lastIndexOf("/"))||"",a=!o.includes(".");return l.jsxs(Ce,{vertical:!0,children:[l.jsxs(We,{size:n.marginXS,align:"center",wrap:!0,children:[a?l.jsx(Bh,{style:{color:n.colorWarning,fontSize:n.fontSizeLG}}):l.jsx(Bl,{style:{color:n.colorPrimary,fontSize:n.fontSizeLG}}),l.jsx(He,{color:a?"warning":"processing",style:{margin:0,fontFamily:n.fontFamilyCode,fontSize:n.fontSize},children:o})]}),i&&l.jsx(fn,{title:s,children:l.jsxs(We,{size:4,align:"center",style:{marginTop:4},children:[l.jsx(Bh,{style:{color:n.colorTextTertiary,fontSize:n.fontSizeSM}}),l.jsx(gm,{type:"secondary",style:{fontSize:n.fontSizeSM,fontFamily:n.fontFamilyCode,maxWidth:"400px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},copyable:{text:s},children:i})]})})]},s)})}),r&&l.jsx(gm,{style:{fontSize:n.fontSize,color:n.colorText,marginTop:n.marginXS,paddingTop:n.marginXS,borderTop:`1px solid ${n.colorBorderSecondary}`},children:r})]})},Tv=v.memo(bR);Tv.displayName="FileReferenceCard";const vR=({taskList:t})=>{const{token:e}=lt.useToken(),{Text:n}=ut,{t:r}=Xe(),s=c=>{switch(c){case"pending":return l.jsx(He,{icon:l.jsx(Rs,{}),color:"default",children:r("components.todoList.status.pending")});case"in_progress":return l.jsx(He,{icon:l.jsx(po,{spin:!0}),color:"processing",children:r("components.todoList.status.inProgress")});case"completed":return l.jsx(He,{icon:l.jsx(ao,{}),color:"success",children:r("components.todoList.status.completed")});case"skipped":return l.jsx(He,{icon:l.jsx(Wy,{}),color:"default",children:r("components.todoList.status.skipped")});case"failed":return l.jsx(He,{icon:l.jsx(_l,{}),color:"error",children:r("components.todoList.status.failed")});default:return null}},o=()=>{switch(t.status){case"active":return l.jsx(He,{color:"processing",children:r("components.todoList.listStatus.active")});case"completed":return l.jsx(He,{color:"success",children:r("components.todoList.listStatus.completed")});case"abandoned":return l.jsx(He,{color:"error",children:r("components.todoList.listStatus.abandoned")});default:return null}},i=st.useMemo(()=>{if(t.items.length===0)return 0;const c=t.items.filter(d=>d.status==="completed").length;return Math.round(c/t.items.length*100)},[t.items]),a=st.useMemo(()=>t.items.find(c=>c.status==="in_progress"),[t.items]);return l.jsx(Ut,{size:"small",styles:{body:{padding:e.paddingSM}},style:{borderRadius:e.borderRadiusLG},children:l.jsxs(Ce,{vertical:!0,gap:e.marginSM,children:[l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsxs(We,{direction:"vertical",size:2,children:[l.jsx(n,{strong:!0,children:t.title}),t.description?l.jsx(n,{type:"secondary",children:t.description}):null]}),o()]}),l.jsxs(We,{direction:"vertical",size:4,children:[l.jsx(By,{percent:i,status:t.status==="completed"?"success":t.status==="abandoned"?"exception":"active",showInfo:!0}),l.jsx(n,{type:"secondary",children:r("components.todoList.percentComplete",{percent:i})})]}),l.jsx(Ar,{size:"small",dataSource:t.items,renderItem:c=>{var f;const d=(a==null?void 0:a.id)===c.id;return l.jsx(Ar.Item,{style:{borderRadius:e.borderRadius,padding:e.paddingXS,background:d?e.colorPrimaryBg:"transparent",border:"1px solid",borderColor:d?e.colorPrimaryBorder:e.colorBorderSecondary},children:l.jsxs(Ce,{vertical:!0,style:{width:"100%"},gap:4,children:[l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(n,{children:c.description}),s(c.status)]}),c.status==="failed"&&((f=c.metadata)!=null&&f.error)?l.jsx(n,{type:"danger",style:{fontSize:12},children:String(c.metadata.error)}):null,c.status==="completed"&&c.summary?l.jsx(n,{type:"success",style:{fontSize:12},children:c.summary}):null]})})}}),l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.progressLabel",{completed:t.items.filter(c=>c.status==="completed").length,total:t.items.length})}),a?l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.currentLabel",{description:a.description})}):null]})]})})},SR=100,ds=new Set;function wR(t){if(ds.has(t)&&ds.delete(t),ds.add(t),ds.size>SR){const e=ds.values().next().value;e&&ds.delete(e)}}function xR(t){let e=2166136261;for(let n=0;n<t.length;n++)e=(e^t.charCodeAt(n))*16777619;return(e>>>0).toString(36)}const _R=t=>{const{t:e}=Xe(),n=xR(t.chart),[r,s]=v.useState(()=>ds.has(n)),o=v.useRef(null);return v.useEffect(()=>{if(r)return;const i=o.current;if(!i)return;const a=new IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(wR(n),s(!0),a.disconnect())},{rootMargin:"50px",threshold:.01});return a.observe(i),()=>a.disconnect()},[r,n]),l.jsx("div",{ref:o,style:{minHeight:r?"auto":"200px"},children:r?l.jsx(st.Suspense,{fallback:l.jsx(bo,{size:"small",tip:e("components.mermaid.loadingDiagram")}),children:l.jsx(CR,{...t})}):l.jsx("div",{style:{minHeight:"200px"}})})},CR=t=>{const{t:e}=Xe(),[n,r]=v.useState(null);return v.useEffect(()=>{let s=!1;return Ft(()=>Promise.resolve().then(()=>Gj),void 0,import.meta.url).then(o=>{s||r(()=>o.MermaidChart)}),()=>{s=!0}},[]),n?l.jsx(n,{...t}):l.jsx(bo,{size:"small",tip:e("components.mermaid.loadingDiagram")})},kR=st.memo(_R),TR=({error:t,className:e,style:n,token:r,onFix:s,isFixing:o,fixError:i})=>{const{t:a}=Xe(),c=t.split(`
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=i=>{r=i},o}function em(t,e){if(t===void 0)throw new Error("Unexpected undefined");return t}const jA=(t,e)=>Math.abs(t-e)<1.01,IA=(t,e,n)=>{let r;return function(...s){t.clearTimeout(r),r=t.setTimeout(()=>e.apply(this,s),n)}},tm=t=>{const{offsetWidth:e,offsetHeight:n}=t;return{width:e,height:n}},OA=t=>t,$A=t=>{const e=Math.max(t.startIndex-t.overscan,0),n=Math.min(t.endIndex+t.overscan,t.count-1),r=[];for(let s=e;s<=n;s++)r.push(s);return r},LA=(t,e)=>{const n=t.scrollElement;if(!n)return;const r=t.targetWindow;if(!r)return;const s=i=>{const{width:a,height:c}=i;e({width:Math.round(a),height:Math.round(c)})};if(s(tm(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(i=>{const a=()=>{const c=i[0];if(c!=null&&c.borderBoxSize){const d=c.borderBoxSize[0];if(d){s({width:d.inlineSize,height:d.blockSize});return}}s(tm(n))};t.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},nm={passive:!0},rm=typeof window>"u"?!0:"onscrollend"in window,DA=(t,e)=>{const n=t.scrollElement;if(!n)return;const r=t.targetWindow;if(!r)return;let s=0;const o=t.options.useScrollendEvent&&rm?()=>{}:IA(r,()=>{e(s,!1)},t.options.isScrollingResetDelay),i=f=>()=>{const{horizontal:p,isRtl:y}=t.options;s=p?n.scrollLeft*(y&&-1||1):n.scrollTop,o(),e(s,f)},a=i(!0),c=i(!1);c(),n.addEventListener("scroll",a,nm);const d=t.options.useScrollendEvent&&rm;return d&&n.addEventListener("scrollend",c,nm),()=>{n.removeEventListener("scroll",a),d&&n.removeEventListener("scrollend",c)}},FA=(t,e,n)=>{if(e!=null&&e.borderBoxSize){const r=e.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return t[n.options.horizontal?"offsetWidth":"offsetHeight"]},NA=(t,{adjustments:e=0,behavior:n},r)=>{var s,o;const i=t+e;(o=(s=r.scrollElement)==null?void 0:s.scrollTo)==null||o.call(s,{[r.options.horizontal?"left":"top"]:i,behavior:n})};class zA{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(s=>{s.forEach(o=>{const i=()=>{this._measureElement(o.target,o)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var s;(s=r())==null||s.disconnect(),n=null},observe:s=>{var o;return(o=r())==null?void 0:o.observe(s,{box:"border-box"})},unobserve:s=>{var o;return(o=r())==null?void 0:o.unobserve(s)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,s])=>{typeof s>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:OA,rangeExtractor:$A,onChange:()=>{},measureElement:FA,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=Xs(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=o,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,r)=>{const s=new Map,o=new Map;for(let i=r-1;i>=0;i--){const a=n[i];if(s.has(a.lane))continue;const c=o.get(a.lane);if(c==null||a.end>c.end?o.set(a.lane,a):a.end<c.end&&s.set(a.lane,!0),s.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((i,a)=>i.end===a.end?i.index-a.index:i.end-a.end)[0]:void 0},this.getMeasurementOptions=Xs(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(n,r,s,o,i)=>(this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i}),{key:!1}),this.getMeasurements=Xs(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:i},a)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(f=>{this.itemSizeCache.set(f.key,f.size)}));const c=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const d=this.measurementsCache.slice(0,c);for(let f=c;f<n;f++){const p=o(f),y=this.options.lanes===1?d[f-1]:this.getFurthestMeasurement(d,f),m=y?y.end+this.options.gap:r+s,w=a.get(p),b=typeof w=="number"?w:this.options.estimateSize(f),_=m+b,M=y?y.lane:f%this.options.lanes;d[f]={index:f,start:m,size:b,end:_,key:p,lane:M}}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Xs(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,s,o)=>this.range=n.length>0&&r>0?BA({measurements:n,outerSize:r,scrollOffset:s,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Xs(()=>{let n=null,r=null;const s=this.calculateRange();return s&&(n=s.startIndex,r=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,r]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,r]},(n,r,s,o,i)=>o===null||i===null?[]:n({startIndex:o,endIndex:i,overscan:r,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,s=n.getAttribute(r);return s?parseInt(s,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this._measureElement=(n,r)=>{const s=this.indexFromElement(n),o=this.measurementsCache[s];if(!o)return;const i=o.key,a=this.elementsCache.get(i);a!==n&&(a&&this.observer.unobserve(a),this.observer.observe(n),this.elementsCache.set(i,n)),n.isConnected&&this.resizeItem(s,this.options.measureElement(n,r,this))},this.resizeItem=(n,r)=>{const s=this.measurementsCache[n];if(!s)return;const o=this.itemSizeCache.get(s.key)??s.size,i=r-o;i!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,i,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=i,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(s.index),this.itemSizeCache=new Map(this.itemSizeCache.set(s.key,r)),this.notify(!1))},this.measureElement=n=>{if(!n){this.elementsCache.forEach((r,s)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(s))});return}this._measureElement(n,void 0)},this.getVirtualItems=Xs(()=>[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const s=[];for(let o=0,i=n.length;o<i;o++){const a=n[o],c=r[a];s.push(c)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return em(r[Sv(0,r.length-1,s=>em(r[s]).start,n)])},this.getOffsetForAlignment=(n,r,s=0)=>{const o=this.getSize(),i=this.getScrollOffset();r==="auto"&&(r=n>=i+o?"end":"start"),r==="center"?n+=(s-o)/2:r==="end"&&(n-=o);const a=this.getTotalSize()+this.options.scrollMargin-o;return Math.max(Math.min(a,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const s=this.measurementsCache[n];if(!s)return;const o=this.getSize(),i=this.getScrollOffset();if(r==="auto")if(s.end>=i+o-this.options.scrollPaddingEnd)r="end";else if(s.start<=i+this.options.scrollPaddingStart)r="start";else return[i,r];const a=r==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,r,s.size),r]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(n,{align:r="start",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(n,r),{adjustments:void 0,behavior:s})},this.scrollToIndex=(n,{align:r="auto",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),n=Math.max(0,Math.min(n,this.options.count-1));let o=0;const i=10,a=d=>{if(!this.targetWindow)return;const f=this.getOffsetForIndex(n,d);if(!f){console.warn("Failed to get offset for index:",n);return}const[p,y]=f;this._scrollToOffset(p,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const m=this.getScrollOffset(),w=this.getOffsetForIndex(n,y);if(!w){console.warn("Failed to get offset for index:",n);return}jA(w[0],m)||c(y)})},c=d=>{this.targetWindow&&(o++,o<i?this.targetWindow.requestAnimationFrame(()=>a(d)):console.warn(`Failed to scroll to index ${n} after ${i} attempts.`))};a(r)},this.scrollBy=(n,{behavior:r}={})=>{r==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+n,{adjustments:void 0,behavior:r})},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let s;if(r.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((n=r[r.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let i=r.length-1;for(;i>=0&&o.some(a=>a===null);){const a=r[i];o[a.lane]===null&&(o[a.lane]=a.end),i--}s=Math.max(...o.filter(a=>a!==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(e)}}const Sv=(t,e,n,r)=>{for(;t<=e;){const s=(t+e)/2|0,o=n(s);if(o<r)t=s+1;else if(o>r)e=s-1;else return s}return t>0?t-1:0};function BA({measurements:t,outerSize:e,scrollOffset:n,lanes:r}){const s=t.length-1,o=c=>t[c].start;if(t.length<=r)return{startIndex:0,endIndex:s};let i=Sv(0,s,o,n),a=i;if(r===1)for(;a<s&&t[a].end<n+e;)a++;else if(r>1){const c=Array(r).fill(0);for(;a<s&&c.some(f=>f<n+e);){const f=t[a];c[f.lane]=f.end,a++}const d=Array(r).fill(n+e);for(;i>=0&&d.some(f=>f>=n);){const f=t[i];d[f.lane]=f.start,i--}i=Math.max(0,i-i%r),a=Math.min(s,a+(r-1-a%r))}return{startIndex:i,endIndex:a}}const sm=typeof document<"u"?v.useLayoutEffect:v.useEffect;function WA(t){const e=v.useReducer(()=>({}),{})[1],n={...t,onChange:(s,o)=>{var i;o?Qx.flushSync(e):e(),(i=t.onChange)==null||i.call(t,s,o)}},[r]=v.useState(()=>new zA(n));return r.setOptions(n),sm(()=>r._didMount(),[]),sm(()=>r._willUpdate()),r}function UA(t){return WA({observeElementRect:LA,observeElementOffset:DA,scrollToFn:NA,...t})}const{Text:om,Paragraph:HA}=ut,qA=({content:t,token:e,headingColor:n})=>l.jsx(xr,{components:{p:({children:r})=>l.jsx(HA,{style:{marginBottom:e.marginSM},children:r}),ol:({children:r})=>l.jsx("ol",{style:{marginBottom:e.marginSM,paddingLeft:20},children:r}),ul:({children:r})=>l.jsx("ul",{style:{marginBottom:e.marginSM,paddingLeft:20},children:r}),li:({children:r})=>l.jsx("li",{style:{marginBottom:e.marginXS},children:r}),h1:({children:r})=>l.jsx(om,{strong:!0,style:{fontSize:e.fontSizeHeading3,marginBottom:e.marginSM,display:"block",color:n},children:r}),h2:({children:r})=>l.jsx(om,{strong:!0,style:{fontSize:e.fontSizeHeading4,marginBottom:e.marginSM,display:"block",color:n},children:r})},children:t}),im=v.memo(qA),KA=t=>{if(typeof t!="string")return null;const e=t.trim();return e.length>0?e:null},XA=t=>t?[["base",t.base_system_prompt],["enhancement",t.enhancement_prompt],["workspace",t.workspace_context],["instruction",t.instruction_context],["env",t.env_context],["skills",t.skill_context],["toolGuide",t.tool_guide_context],["dream",t.dream_notebook],["sessionMemory",t.session_memory_note],["externalMemory",t.external_memory],["taskList",t.task_list],["effective",t.effective_system_prompt]].flatMap(([n,r])=>{const s=KA(r);return s?[{key:n,content:s}]:[]}):[],YA=({currentChat:t,message:e,systemPrompts:n})=>{var X;const[r,s]=v.useState(null),[o,i]=v.useState(null),[a,c]=v.useState(null),[d,f]=v.useState(!1),[p,y]=v.useState(!1),m=v.useMemo(()=>Yl.getInstance(),[]),w=v.useMemo(()=>Pn.getInstance(),[]),b=e.role==="system"&&typeof e.content=="string"?e.content:"",_=e.role==="system"&&!e.id.startsWith("system-prompt-")&&b.trim().length>0;v.useEffect(()=>{e.role==="system"&&(i(null),c(null),y(!1))},[e.id,e.role,b]);const M=(t==null?void 0:t.id)??null,C=((X=t==null?void 0:t.config)==null?void 0:X.systemPromptId)??null,T=v.useMemo(()=>C?n.find(K=>K.id===C)??null:null,[C,n]),k=(T==null?void 0:T.content)??(r==null?void 0:r.content)??"",P=(T==null?void 0:T.description)??(r==null?void 0:r.description)??"",A=v.useRef(null);v.useEffect(()=>{s(null),A.current=null},[M,C]),v.useEffect(()=>{if(!C)return;const K=C;if(T!=null&&T.content)return;const O=`${M??"no-chat"}:${K}`;if(A.current===O)return;A.current=O;let W=!1;return(async()=>{try{const Y=await m.findPresetById(K);if(W)return;const ce=Y?{content:Y.content,description:Y.description}:null;s(L=>!L&&!ce||L&&ce&&L.content===ce.content&&L.description===ce.description?L:ce)}catch(Y){console.error("Failed to load preset prompt:",Y)}})(),()=>{W=!0}},[M,C,m,T==null?void 0:T.content]);const j=v.useCallback(async()=>{var K;if(!d){f(!0);try{if(M)try{const O=await w.getSessionSystemPrompt(M);c(O);const W=(K=O.effective_system_prompt)==null?void 0:K.trim();if(W){i(W),y(!0);return}}catch(O){console.warn("Failed to load backend prompt snapshot:",O)}if(_){c(null),i(b),y(!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)}}},[w,M,_,d,b]),$=v.useMemo(()=>p&&o?o:k||P||(e.role==="system"?b:Et.t("chat.systemPrompt.preparing")),[p,o,k,P,e.role,b]),F=v.useMemo(()=>XA(a),[a]);return{basePrompt:k,categoryDescription:P,enhancedPrompt:o,loadingEnhanced:d,loadEnhancedPrompt:j,promptSnapshot:a,promptToDisplay:$,showEnhanced:p,setShowEnhanced:y,snapshotSections:F,systemMessageContent:b}},{Text:am}=ut,{useToken:VA}=lt,GA=(t,e)=>({base:t("chat.prompt.systemCard.sections.base"),enhancement:t("chat.prompt.systemCard.sections.enhancement"),workspace:t("chat.prompt.systemCard.sections.workspace"),instruction:t("chat.prompt.systemCard.sections.instruction"),env:t("chat.prompt.systemCard.sections.env"),skills:t("chat.prompt.systemCard.sections.skills"),toolGuide:t("chat.prompt.systemCard.sections.toolGuide"),dream:t("chat.prompt.systemCard.sections.dream"),sessionMemory:t("chat.prompt.systemCard.sections.sessionMemory"),externalMemory:t("chat.prompt.systemCard.sections.externalMemory"),taskList:t("chat.prompt.systemCard.sections.taskList"),effective:t("chat.prompt.systemCard.sections.effective")})[e],JA=({currentChat:t,message:e})=>{const{token:n}=VA(),{t:r}=Xe(),s=G(w=>w.systemPrompts),{basePrompt:o,loadingEnhanced:i,loadEnhancedPrompt:a,promptSnapshot:c,promptToDisplay:d,showEnhanced:f,setShowEnhanced:p,snapshotSections:y}=YA({currentChat:t,message:e,systemPrompts:s}),m=v.useCallback(async w=>{try{await jr(w)}catch(b){console.error("Failed to copy text:",b)}},[]);return l.jsx(Ut,{style:{width:"100%",maxWidth:"100%",background:n.colorBgContainer,borderRadius:n.borderRadiusLG,boxShadow:"none"},children:l.jsxs(We,{direction:"vertical",size:n.marginSM,style:{width:"100%"},children:[l.jsxs(Ce,{justify:"space-between",align:"center",children:[l.jsx(Ce,{align:"center",gap:n.marginXS,children:l.jsx(am,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.title")})}),l.jsxs(We,{children:[o&&!f?l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(af,{}),onClick:a,loading:i,children:r("chat.prompt.systemCard.viewEnhanced")}):null,o&&f?l.jsx(Ae,{type:"text",size:"small",onClick:()=>p(!1),children:r("chat.prompt.systemCard.viewBase")}):null,l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:()=>m(d),children:r("chat.prompt.systemCard.copy")})]})]}),l.jsx(Ce,{vertical:!0,style:{maxHeight:f?400:300,overflowY:"auto",paddingRight:n.paddingXS},children:l.jsx(im,{content:d,token:n,headingColor:n.colorPrimary})}),c&&y.length>0?l.jsxs(l.Fragment,{children:[l.jsx(Wl,{style:{margin:`${n.marginXS}px 0`}}),l.jsxs(We,{direction:"vertical",size:n.marginXS,style:{width:"100%"},children:[l.jsx(am,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.snapshotTitle")}),l.jsx(_o,{defaultActiveKey:y.map(w=>w.key),items:y.map(w=>({key:w.key,label:GA(r,w.key),children:l.jsx(im,{content:w.content,token:n,headingColor:n.colorPrimary})}))})]})]}):null]})})},wv=v.memo(JA);wv.displayName="SystemMessageCard";const xv=6048e5,QA=864e5,lm=Symbol.for("constructDateFrom");function Qr(t,e){return typeof t=="function"?t(e):t&&typeof t=="object"&&lm in t?t[lm](e):t instanceof Date?new t.constructor(e):new Date(e)}function or(t,e){return Qr(e||t,t)}let ZA={};function xc(){return ZA}function wa(t,e){var a,c,d,f;const n=xc(),r=(e==null?void 0:e.weekStartsOn)??((c=(a=e==null?void 0:e.locale)==null?void 0:a.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((f=(d=n.locale)==null?void 0:d.options)==null?void 0:f.weekStartsOn)??0,s=or(t,e==null?void 0:e.in),o=s.getDay(),i=(o<r?7:0)+o-r;return s.setDate(s.getDate()-i),s.setHours(0,0,0,0),s}function tc(t,e){return wa(t,{...e,weekStartsOn:1})}function _v(t,e){const n=or(t,e==null?void 0:e.in),r=n.getFullYear(),s=Qr(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const o=tc(s),i=Qr(n,0);i.setFullYear(r,0,4),i.setHours(0,0,0,0);const a=tc(i);return n.getTime()>=o.getTime()?r+1:n.getTime()>=a.getTime()?r:r-1}function cm(t){const e=or(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function e1(t,...e){const n=Qr.bind(null,e.find(r=>typeof r=="object"));return e.map(n)}function um(t,e){const n=or(t,e==null?void 0:e.in);return n.setHours(0,0,0,0),n}function t1(t,e,n){const[r,s]=e1(n==null?void 0:n.in,t,e),o=um(r),i=um(s),a=+o-cm(o),c=+i-cm(i);return Math.round((a-c)/QA)}function n1(t,e){const n=_v(t,e),r=Qr(t,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),tc(r)}function r1(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function s1(t){return!(!r1(t)&&typeof t!="number"||isNaN(+or(t)))}function o1(t,e){const n=or(t,e==null?void 0:e.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const i1={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"}},a1=(t,e,n)=>{let r;const s=i1[t];return typeof s=="string"?r=s:e===1?r=s.one:r=s.other.replace("{{count}}",e.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function wu(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const l1={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},c1={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},u1={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},d1={date:wu({formats:l1,defaultWidth:"full"}),time:wu({formats:c1,defaultWidth:"full"}),dateTime:wu({formats:u1,defaultWidth:"full"})},f1={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},h1=(t,e,n,r)=>f1[t];function ei(t){return(e,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let s;if(r==="formatting"&&t.formattingValues){const i=t.defaultFormattingWidth||t.defaultWidth,a=n!=null&&n.width?String(n.width):i;s=t.formattingValues[a]||t.formattingValues[i]}else{const i=t.defaultWidth,a=n!=null&&n.width?String(n.width):t.defaultWidth;s=t.values[a]||t.values[i]}const o=t.argumentCallback?t.argumentCallback(e):e;return s[o]}}const p1={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},m1={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},g1={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"]},y1={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"]},b1={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"}},v1={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"}},S1=(t,e)=>{const n=Number(t),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"},w1={ordinalNumber:S1,era:ei({values:p1,defaultWidth:"wide"}),quarter:ei({values:m1,defaultWidth:"wide",argumentCallback:t=>t-1}),month:ei({values:g1,defaultWidth:"wide"}),day:ei({values:y1,defaultWidth:"wide"}),dayPeriod:ei({values:b1,defaultWidth:"wide",formattingValues:v1,defaultFormattingWidth:"wide"})};function ti(t){return(e,n={})=>{const r=n.width,s=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],o=e.match(s);if(!o)return null;const i=o[0],a=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],c=Array.isArray(a)?_1(a,p=>p.test(i)):x1(a,p=>p.test(i));let d;d=t.valueCallback?t.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;const f=e.slice(i.length);return{value:d,rest:f}}}function x1(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n}function _1(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n}function C1(t){return(e,n={})=>{const r=e.match(t.matchPattern);if(!r)return null;const s=r[0],o=e.match(t.parsePattern);if(!o)return null;let i=t.valueCallback?t.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;const a=e.slice(s.length);return{value:i,rest:a}}}const k1=/^(\d+)(th|st|nd|rd)?/i,T1=/\d+/i,E1={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},P1={any:[/^b/i,/^(a|c)/i]},M1={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},A1={any:[/1/i,/2/i,/3/i,/4/i]},R1={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},j1={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]},I1={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},O1={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]},$1={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},L1={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}},D1={ordinalNumber:C1({matchPattern:k1,parsePattern:T1,valueCallback:t=>parseInt(t,10)}),era:ti({matchPatterns:E1,defaultMatchWidth:"wide",parsePatterns:P1,defaultParseWidth:"any"}),quarter:ti({matchPatterns:M1,defaultMatchWidth:"wide",parsePatterns:A1,defaultParseWidth:"any",valueCallback:t=>t+1}),month:ti({matchPatterns:R1,defaultMatchWidth:"wide",parsePatterns:j1,defaultParseWidth:"any"}),day:ti({matchPatterns:I1,defaultMatchWidth:"wide",parsePatterns:O1,defaultParseWidth:"any"}),dayPeriod:ti({matchPatterns:$1,defaultMatchWidth:"any",parsePatterns:L1,defaultParseWidth:"any"})},F1={code:"en-US",formatDistance:a1,formatLong:d1,formatRelative:h1,localize:w1,match:D1,options:{weekStartsOn:0,firstWeekContainsDate:1}};function N1(t,e){const n=or(t,e==null?void 0:e.in);return t1(n,o1(n))+1}function z1(t,e){const n=or(t,e==null?void 0:e.in),r=+tc(n)-+n1(n);return Math.round(r/xv)+1}function Cv(t,e){var f,p,y,m;const n=or(t,e==null?void 0:e.in),r=n.getFullYear(),s=xc(),o=(e==null?void 0:e.firstWeekContainsDate)??((p=(f=e==null?void 0:e.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??s.firstWeekContainsDate??((m=(y=s.locale)==null?void 0:y.options)==null?void 0:m.firstWeekContainsDate)??1,i=Qr((e==null?void 0:e.in)||t,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const a=wa(i,e),c=Qr((e==null?void 0:e.in)||t,0);c.setFullYear(r,0,o),c.setHours(0,0,0,0);const d=wa(c,e);return+n>=+a?r+1:+n>=+d?r:r-1}function B1(t,e){var a,c,d,f;const n=xc(),r=(e==null?void 0:e.firstWeekContainsDate)??((c=(a=e==null?void 0:e.locale)==null?void 0:a.options)==null?void 0:c.firstWeekContainsDate)??n.firstWeekContainsDate??((f=(d=n.locale)==null?void 0:d.options)==null?void 0:f.firstWeekContainsDate)??1,s=Cv(t,e),o=Qr((e==null?void 0:e.in)||t,0);return o.setFullYear(s,0,r),o.setHours(0,0,0,0),wa(o,e)}function W1(t,e){const n=or(t,e==null?void 0:e.in),r=+wa(n,e)-+B1(n,e);return Math.round(r/xv)+1}function kt(t,e){const n=t<0?"-":"",r=Math.abs(t).toString().padStart(e,"0");return n+r}const Ur={y(t,e){const n=t.getFullYear(),r=n>0?n:1-n;return kt(e==="yy"?r%100:r,e.length)},M(t,e){const n=t.getMonth();return e==="M"?String(n+1):kt(n+1,2)},d(t,e){return kt(t.getDate(),e.length)},a(t,e){const n=t.getHours()/12>=1?"pm":"am";switch(e){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(t,e){return kt(t.getHours()%12||12,e.length)},H(t,e){return kt(t.getHours(),e.length)},m(t,e){return kt(t.getMinutes(),e.length)},s(t,e){return kt(t.getSeconds(),e.length)},S(t,e){const n=e.length,r=t.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return kt(s,e.length)}},Ys={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},dm={G:function(t,e,n){const r=t.getFullYear()>0?1:0;switch(e){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(t,e,n){if(e==="yo"){const r=t.getFullYear(),s=r>0?r:1-r;return n.ordinalNumber(s,{unit:"year"})}return Ur.y(t,e)},Y:function(t,e,n,r){const s=Cv(t,r),o=s>0?s:1-s;if(e==="YY"){const i=o%100;return kt(i,2)}return e==="Yo"?n.ordinalNumber(o,{unit:"year"}):kt(o,e.length)},R:function(t,e){const n=_v(t);return kt(n,e.length)},u:function(t,e){const n=t.getFullYear();return kt(n,e.length)},Q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return kt(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(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return kt(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(t,e,n){const r=t.getMonth();switch(e){case"M":case"MM":return Ur.M(t,e);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(t,e,n){const r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return kt(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(t,e,n,r){const s=W1(t,r);return e==="wo"?n.ordinalNumber(s,{unit:"week"}):kt(s,e.length)},I:function(t,e,n){const r=z1(t);return e==="Io"?n.ordinalNumber(r,{unit:"week"}):kt(r,e.length)},d:function(t,e,n){return e==="do"?n.ordinalNumber(t.getDate(),{unit:"date"}):Ur.d(t,e)},D:function(t,e,n){const r=N1(t);return e==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):kt(r,e.length)},E:function(t,e,n){const r=t.getDay();switch(e){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(t,e,n,r){const s=t.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return kt(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(t,e,n,r){const s=t.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return kt(o,e.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(t,e,n){const r=t.getDay(),s=r===0?7:r;switch(e){case"i":return String(s);case"ii":return kt(s,e.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(t,e,n){const s=t.getHours()/12>=1?"pm":"am";switch(e){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(t,e,n){const r=t.getHours();let s;switch(r===12?s=Ys.noon:r===0?s=Ys.midnight:s=r/12>=1?"pm":"am",e){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(t,e,n){const r=t.getHours();let s;switch(r>=17?s=Ys.evening:r>=12?s=Ys.afternoon:r>=4?s=Ys.morning:s=Ys.night,e){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(t,e,n){if(e==="ho"){let r=t.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Ur.h(t,e)},H:function(t,e,n){return e==="Ho"?n.ordinalNumber(t.getHours(),{unit:"hour"}):Ur.H(t,e)},K:function(t,e,n){const r=t.getHours()%12;return e==="Ko"?n.ordinalNumber(r,{unit:"hour"}):kt(r,e.length)},k:function(t,e,n){let r=t.getHours();return r===0&&(r=24),e==="ko"?n.ordinalNumber(r,{unit:"hour"}):kt(r,e.length)},m:function(t,e,n){return e==="mo"?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):Ur.m(t,e)},s:function(t,e,n){return e==="so"?n.ordinalNumber(t.getSeconds(),{unit:"second"}):Ur.s(t,e)},S:function(t,e){return Ur.S(t,e)},X:function(t,e,n){const r=t.getTimezoneOffset();if(r===0)return"Z";switch(e){case"X":return hm(r);case"XXXX":case"XX":return us(r);case"XXXXX":case"XXX":default:return us(r,":")}},x:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"x":return hm(r);case"xxxx":case"xx":return us(r);case"xxxxx":case"xxx":default:return us(r,":")}},O:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+fm(r,":");case"OOOO":default:return"GMT"+us(r,":")}},z:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+fm(r,":");case"zzzz":default:return"GMT"+us(r,":")}},t:function(t,e,n){const r=Math.trunc(+t/1e3);return kt(r,e.length)},T:function(t,e,n){return kt(+t,e.length)}};function fm(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),s=Math.trunc(r/60),o=r%60;return o===0?n+String(s):n+String(s)+e+kt(o,2)}function hm(t,e){return t%60===0?(t>0?"-":"+")+kt(Math.abs(t)/60,2):us(t,e)}function us(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),s=kt(Math.trunc(r/60),2),o=kt(r%60,2);return n+s+e+o}const pm=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},kv=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},U1=(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return pm(t,e);let o;switch(r){case"P":o=e.dateTime({width:"short"});break;case"PP":o=e.dateTime({width:"medium"});break;case"PPP":o=e.dateTime({width:"long"});break;case"PPPP":default:o=e.dateTime({width:"full"});break}return o.replace("{{date}}",pm(r,e)).replace("{{time}}",kv(s,e))},H1={p:kv,P:U1},q1=/^D+$/,K1=/^Y+$/,X1=["D","DD","YY","YYYY"];function Y1(t){return q1.test(t)}function V1(t){return K1.test(t)}function G1(t,e,n){const r=J1(t,e,n);if(console.warn(r),X1.includes(t))throw new RangeError(r)}function J1(t,e,n){const r=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Q1=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Z1=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,eR=/^'([^]*?)'?$/,tR=/''/g,nR=/[a-zA-Z]/;function rR(t,e,n){var f,p,y,m;const r=xc(),s=r.locale??F1,o=r.firstWeekContainsDate??((p=(f=r.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??1,i=r.weekStartsOn??((m=(y=r.locale)==null?void 0:y.options)==null?void 0:m.weekStartsOn)??0,a=or(t,n==null?void 0:n.in);if(!s1(a))throw new RangeError("Invalid time value");let c=e.match(Z1).map(w=>{const b=w[0];if(b==="p"||b==="P"){const _=H1[b];return _(w,s.formatLong)}return w}).join("").match(Q1).map(w=>{if(w==="''")return{isToken:!1,value:"'"};const b=w[0];if(b==="'")return{isToken:!1,value:sR(w)};if(dm[b])return{isToken:!0,value:w};if(b.match(nR))throw new RangeError("Format string contains an unescaped latin alphabet character `"+b+"`");return{isToken:!1,value:w}});s.localize.preprocessor&&(c=s.localize.preprocessor(a,c));const d={firstWeekContainsDate:o,weekStartsOn:i,locale:s};return c.map(w=>{if(!w.isToken)return w.value;const b=w.value;(V1(b)||Y1(b))&&G1(b,e,String(t));const _=dm[b[0]];return _(a,b,s.localize,d)}).join("")}function sR(t){const e=t.match(eR);return e?e[1].replace(tR,"'"):t}const{useToken:oR}=lt,{Text:cl}=ut,iR=({images:t,className:e,style:n,maxHeight:r={single:400,multiple:200}})=>{const{token:s}=oR(),{t:o}=Xe();return!t||t.length===0?null:l.jsx(Ut,{className:e,style:{marginBottom:s.marginMD,...n},styles:{body:{padding:0}},variant:"borderless",children:l.jsx(Ce,{wrap:"wrap",gap:s.marginSM,style:{width:"100%"},children:t.map(i=>l.jsxs(Ut,{size:"small",style:{flex:t.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(Bi,{src:i.url||i.base64,alt:i.name,style:{width:"100%",height:"auto",maxHeight:t.length===1?r.single:r.multiple,objectFit:"cover"},preview:{mask:l.jsxs(Ce,{align:"center",justify:"center",gap:s.marginXS,style:{color:s.colorTextLightSolid},children:[l.jsx(af,{}),l.jsx(cl,{style:{color:s.colorTextLightSolid},children:o("components.imageGrid.preview")})]})}}),l.jsxs(Ce,{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(cl,{style:{color:s.colorTextLightSolid},strong:!0,children:i.name}),i.size&&l.jsxs(cl,{style:{fontSize:s.fontSizeSM*.85,opacity:.8,color:s.colorTextLightSolid},children:[(i.size/1024).toFixed(1)," KB",i.width&&i.height&&` • ${i.width}×${i.height}`]})]})]}),(i.ocrText||i.ocrError)&&l.jsx("div",{style:{padding:s.paddingSM},children:l.jsx(_o,{ghost:!0,size:"small",items:[{key:"ocr",label:o("components.imageGrid.ocr"),children:l.jsxs(l.Fragment,{children:[i.ocrError&&l.jsx(cl,{type:"danger",children:i.ocrError}),i.ocrText&&l.jsx(ut.Paragraph,{style:{marginTop:i.ocrError?s.marginXS:0,marginBottom:0,whiteSpace:"pre-wrap"},children:i.ocrText})]})}]})})]},i.id))})})},{useToken:aR}=lt,{useBreakpoint:lR}=pc,cR=({buttons:t,isVisible:e,className:n,style:r,position:s={bottom:"8px",right:"8px"}})=>{const{token:o}=aR(),i=lR(),a=()=>(i.xs,"small");return l.jsx(Ce,{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:e?1:0,transition:"opacity 0.2s ease",pointerEvents:e?"auto":"none",...r},children:t.map(c=>l.jsx(on,{title:c.title,children:l.jsx(Ae,{"data-testid":c["data-testid"]||c.key,icon:c.icon,size:a(),type:"text",onClick:c.onClick,disabled:c.disabled,style:{background:o.colorBgElevated,borderRadius:o.borderRadiusSM}})},c.key))})},uR=(t,e)=>({key:"copy","data-testid":"copy-message",icon:l.jsx(Rr,{}),title:e||Et.t("chat.actions.copyMessage"),onClick:t}),dR=(t,e)=>({key:"reference",icon:l.jsx(By,{}),title:e||Et.t("chat.actions.referenceMessage"),onClick:t}),Tv=t=>t.role==="assistant"&&"type"in t&&t.type==="tool_result",fR=t=>t.role==="assistant"&&"type"in t&&t.type==="tool_call",hR=t=>t.role==="assistant"&&"type"in t&&t.type==="workflow_result",pR=t=>t.role==="user"&&"type"in t&&t.type==="file_reference",mR=t=>t.role==="assistant"&&"type"in t&&t.type==="task_list",{Title:mm,Text:zn,Paragraph:gm}=ut,{useToken:gR}=lt,yR=({plan:t,contextId:e,onExecute:n,onRefine:r,timestamp:s})=>{const{t:o}=Xe(),{token:i}=gR(),[a,c]=v.useState(!1),[d,f]=v.useState(""),p=()=>{d.trim()&&(r(d),f(""),c(!1))};return l.jsxs(Ut,{style:{marginBottom:i.marginMD,borderColor:i.colorPrimary,borderWidth:2,backgroundColor:i.colorPrimaryBg},title:l.jsxs(We,{children:[l.jsx(ao,{style:{color:i.colorPrimary}}),l.jsx(zn,{strong:!0,style:{color:i.colorPrimary},children:o("components.plan.executionPlan")})]}),extra:s?l.jsx(zn,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:[l.jsx(mm,{level:5,style:{marginBottom:i.marginXS},children:o("components.plan.goal")}),l.jsx(gm,{style:{fontSize:15,marginBottom:0},children:t.goal})]}),l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:[l.jsx(mm,{level:5,style:{marginBottom:i.marginMD},children:o("components.plan.steps")}),l.jsx(Wy,{direction:"vertical",current:-1,items:t.steps.map(y=>({title:l.jsxs(zn,{strong:!0,children:[o("components.plan.stepTitle",{number:y.step_number}),": ",y.action]}),description:l.jsxs(Ce,{vertical:!0,children:[l.jsxs(gm,{style:{marginBottom:i.marginXS},children:[l.jsxs(zn,{type:"secondary",children:[o("components.plan.reason"),":"]})," ",y.reason]}),l.jsxs(We,{wrap:!0,children:[l.jsxs(zn,{type:"secondary",children:[l.jsx(of,{})," ",o("components.plan.tools"),":"]}),y.tools_needed.map(m=>l.jsx(He,{color:"processing",children:m},m))]}),l.jsx(Ce,{style:{marginTop:i.marginXS},children:l.jsxs(zn,{type:"secondary",children:[l.jsx(Rs,{})," ",o("components.plan.estimated"),": ",y.estimated_time]})})]}),icon:l.jsx(zn,{children:y.step_number})}))})]}),l.jsxs(We,{direction:"vertical",style:{width:"100%",marginBottom:i.marginLG},children:[l.jsxs(Ce,{align:"center",gap:i.marginXS,wrap:"wrap",children:[l.jsxs(zn,{type:"secondary",children:[l.jsx(Rs,{})," ",o("components.plan.totalEstimatedTime")," "]}),l.jsx(He,{color:"processing",children:t.estimated_total_time})]}),t.prerequisites&&t.prerequisites.length>0&&l.jsxs(Ce,{vertical:!0,children:[l.jsxs(zn,{type:"secondary",children:[o("components.plan.prerequisites"),":"]}),l.jsx(Ar,{size:"small",dataSource:t.prerequisites,renderItem:(y,m)=>l.jsx(Ar.Item,{style:{padding:0},children:l.jsx(zn,{children:y})},`${y}-${m}`)})]})]}),t.risks&&t.risks.length>0&&l.jsx(_o,{ghost:!0,style:{marginBottom:i.marginLG},items:[{key:"risks",label:l.jsxs(We,{children:[l.jsx(lf,{style:{color:i.colorWarning}}),l.jsx(zn,{strong:!0,children:o("components.plan.potentialRisks",{count:t.risks.length})})]}),children:l.jsx(Ar,{size:"small",dataSource:t.risks,renderItem:(y,m)=>l.jsx(Ar.Item,{style:{padding:0},children:l.jsx(zn,{children:y})},`${y}-${m}`)})}]}),l.jsx(We,{style:{width:"100%",justifyContent:"flex-end"},children:a?l.jsxs(l.Fragment,{children:[l.jsx(Ae,{onClick:()=>c(!1),children:o("common.cancel")}),l.jsx(Ae,{type:"primary",onClick:p,disabled:!d.trim(),children:o("components.plan.sendFeedback")})]}):l.jsxs(l.Fragment,{children:[l.jsx(Ae,{onClick:()=>c(!0),children:o("components.plan.refinePlan")}),l.jsx(Ae,{type:"primary",icon:l.jsx(Fy,{}),onClick:n,children:o("components.plan.executePlan")})]})}),a&&l.jsx(Ce,{vertical:!0,style:{marginTop:i.marginMD},children:l.jsx(Ls.TextArea,{value:d,onChange:y=>f(y.target.value),placeholder:o("components.plan.feedbackPlaceholder"),autoSize:{minRows:4,maxRows:10}})})]})},Ev=v.memo(yR);Ev.displayName="PlanMessageCard";const{Title:bR,Text:Vs,Paragraph:vR}=ut,{useToken:SR}=lt,wR=({question:t,contextId:e,onAnswer:n,disabled:r=!1,timestamp:s})=>{const{t:o}=Xe(),{token:i}=SR(),[a,c]=v.useState(t.default),[d,f]=v.useState(!1),p=async()=>{if(a){f(!0);try{await n(a)}catch(b){console.error("Failed to submit answer:",b)}finally{f(!1)}}},y=()=>{switch(t.severity){case"critical":return l.jsx(Dy,{style:{color:i.colorError}});case"major":return l.jsx(lf,{style:{color:i.colorWarning}});case"minor":return l.jsx(Zx,{style:{color:i.colorInfo}});default:return l.jsx(zy,{style:{color:i.colorPrimary}})}},m=()=>{switch(t.severity){case"critical":return i.colorErrorBg;case"major":return i.colorWarningBg;case"minor":return i.colorInfoBg;default:return i.colorPrimaryBg}},w=()=>{switch(t.severity){case"critical":return i.colorError;case"major":return i.colorWarning;case"minor":return i.colorInfo;default:return i.colorPrimary}};return l.jsxs(Ut,{style:{marginBottom:i.marginMD,borderColor:w(),borderWidth:2,backgroundColor:m()},title:l.jsxs(We,{children:[y(),l.jsx(Vs,{strong:!0,style:{color:w()},children:o("components.question.agentQuestion")}),l.jsxs(Vs,{type:"secondary",style:{fontSize:12},children:["(",t.severity,")"]})]}),extra:s?l.jsx(Vs,{type:"secondary",style:{fontSize:i.fontSizeSM},children:s}):void 0,children:[l.jsx(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:l.jsx(bR,{level:5,style:{marginBottom:i.marginXS},children:t.question})}),t.context&&l.jsx(rr,{message:o("components.question.context"),description:t.context,type:"info",showIcon:!0,style:{marginBottom:i.marginLG}}),l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginLG},children:[l.jsx(Vs,{strong:!0,style:{display:"block",marginBottom:i.marginSM},children:o("components.question.chooseOption")}),l.jsx(zh.Group,{value:a,onChange:b=>c(b.target.value),disabled:r||d,style:{width:"100%"},children:l.jsx(We,{direction:"vertical",style:{width:"100%"},children:t.options.map(b=>l.jsx(Ut,{size:"small",hoverable:!r&&!d,style:{borderColor:a===b.value?i.colorPrimary:i.colorBorder,backgroundColor:a===b.value?i.colorPrimaryBg:i.colorBgContainer,cursor:r||d?"not-allowed":"pointer"},onClick:()=>!r&&!d&&c(b.value),children:l.jsx(zh,{value:b.value,style:{width:"100%"},children:l.jsxs(Ce,{vertical:!0,children:[l.jsxs(Ce,{align:"center",gap:i.marginXS,wrap:"wrap",children:[l.jsx(Vs,{strong:!0,children:b.label}),b.value===t.default&&l.jsx(He,{color:"processing",style:{marginLeft:i.marginXS},children:o("components.question.recommended")})]}),l.jsx(vR,{type:"secondary",style:{marginTop:i.marginXXS,marginBottom:0},children:b.description})]})})},b.value))})})]}),t.allow_custom&&l.jsxs(Ce,{vertical:!0,style:{marginBottom:i.marginMD},children:[l.jsx(Vs,{type:"secondary",style:{fontSize:12},children:o("components.question.customAnswerHint")}),l.jsx(Ls.TextArea,{value:a&&!t.options.find(b=>b.value===a)?a:"",onChange:b=>c(b.target.value),placeholder:o("components.question.customAnswerPlaceholder"),disabled:r||d,autoSize:{minRows:3,maxRows:8},style:{marginTop:i.marginXS}})]}),l.jsx(Ce,{justify:"flex-end",children:l.jsx(Ae,{type:"primary",icon:l.jsx(ao,{}),onClick:p,loading:d,disabled:r||!a,children:o("components.question.submitAnswer")})})]})},Pv=v.memo(wR);Pv.displayName="QuestionMessageCard";const{Text:ym}=ut,xR=({paths:t,displayText:e})=>{const{token:n}=lt.useToken(),r=e.replace(/@[^\s]+/g,"").trim();return l.jsxs(Ut,{size:"small",styles:{body:{padding:`${n.paddingSM}px ${n.paddingMD}px`}},style:{maxWidth:"100%"},children:[l.jsx(We,{direction:"vertical",size:n.marginXXS,children:t.map(s=>{const o=s.split("/").pop()||s,i=s.substring(0,s.lastIndexOf("/"))||"",a=!o.includes(".");return l.jsxs(Ce,{vertical:!0,children:[l.jsxs(We,{size:n.marginXS,align:"center",wrap:!0,children:[a?l.jsx(Bh,{style:{color:n.colorWarning,fontSize:n.fontSizeLG}}):l.jsx(Bl,{style:{color:n.colorPrimary,fontSize:n.fontSizeLG}}),l.jsx(He,{color:a?"warning":"processing",style:{margin:0,fontFamily:n.fontFamilyCode,fontSize:n.fontSize},children:o})]}),i&&l.jsx(on,{title:s,children:l.jsxs(We,{size:4,align:"center",style:{marginTop:4},children:[l.jsx(Bh,{style:{color:n.colorTextTertiary,fontSize:n.fontSizeSM}}),l.jsx(ym,{type:"secondary",style:{fontSize:n.fontSizeSM,fontFamily:n.fontFamilyCode,maxWidth:"400px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},copyable:{text:s},children:i})]})})]},s)})}),r&&l.jsx(ym,{style:{fontSize:n.fontSize,color:n.colorText,marginTop:n.marginXS,paddingTop:n.marginXS,borderTop:`1px solid ${n.colorBorderSecondary}`},children:r})]})},Mv=v.memo(xR);Mv.displayName="FileReferenceCard";const _R=({taskList:t})=>{const{token:e}=lt.useToken(),{Text:n}=ut,{t:r}=Xe(),s=c=>{switch(c){case"pending":return l.jsx(He,{icon:l.jsx(Rs,{}),color:"default",children:r("components.todoList.status.pending")});case"in_progress":return l.jsx(He,{icon:l.jsx(po,{spin:!0}),color:"processing",children:r("components.todoList.status.inProgress")});case"completed":return l.jsx(He,{icon:l.jsx(ao,{}),color:"success",children:r("components.todoList.status.completed")});case"skipped":return l.jsx(He,{icon:l.jsx(Hy,{}),color:"default",children:r("components.todoList.status.skipped")});case"failed":return l.jsx(He,{icon:l.jsx(_l,{}),color:"error",children:r("components.todoList.status.failed")});default:return null}},o=()=>{switch(t.status){case"active":return l.jsx(He,{color:"processing",children:r("components.todoList.listStatus.active")});case"completed":return l.jsx(He,{color:"success",children:r("components.todoList.listStatus.completed")});case"abandoned":return l.jsx(He,{color:"error",children:r("components.todoList.listStatus.abandoned")});default:return null}},i=st.useMemo(()=>{if(t.items.length===0)return 0;const c=t.items.filter(d=>d.status==="completed").length;return Math.round(c/t.items.length*100)},[t.items]),a=st.useMemo(()=>t.items.find(c=>c.status==="in_progress"),[t.items]);return l.jsx(Ut,{size:"small",styles:{body:{padding:e.paddingSM}},style:{borderRadius:e.borderRadiusLG},children:l.jsxs(Ce,{vertical:!0,gap:e.marginSM,children:[l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsxs(We,{direction:"vertical",size:2,children:[l.jsx(n,{strong:!0,children:t.title}),t.description?l.jsx(n,{type:"secondary",children:t.description}):null]}),o()]}),l.jsxs(We,{direction:"vertical",size:4,children:[l.jsx(Uy,{percent:i,status:t.status==="completed"?"success":t.status==="abandoned"?"exception":"active",showInfo:!0}),l.jsx(n,{type:"secondary",children:r("components.todoList.percentComplete",{percent:i})})]}),l.jsx(Ar,{size:"small",dataSource:t.items,renderItem:c=>{var f;const d=(a==null?void 0:a.id)===c.id;return l.jsx(Ar.Item,{style:{borderRadius:e.borderRadius,padding:e.paddingXS,background:d?e.colorPrimaryBg:"transparent",border:"1px solid",borderColor:d?e.colorPrimaryBorder:e.colorBorderSecondary},children:l.jsxs(Ce,{vertical:!0,style:{width:"100%"},gap:4,children:[l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(n,{children:c.description}),s(c.status)]}),c.status==="failed"&&((f=c.metadata)!=null&&f.error)?l.jsx(n,{type:"danger",style:{fontSize:12},children:String(c.metadata.error)}):null,c.status==="completed"&&c.summary?l.jsx(n,{type:"success",style:{fontSize:12},children:c.summary}):null]})})}}),l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.progressLabel",{completed:t.items.filter(c=>c.status==="completed").length,total:t.items.length})}),a?l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.currentLabel",{description:a.description})}):null]})]})})},CR=100,ds=new Set;function kR(t){if(ds.has(t)&&ds.delete(t),ds.add(t),ds.size>CR){const e=ds.values().next().value;e&&ds.delete(e)}}function TR(t){let e=2166136261;for(let n=0;n<t.length;n++)e=(e^t.charCodeAt(n))*16777619;return(e>>>0).toString(36)}const ER=t=>{const{t:e}=Xe(),n=TR(t.chart),[r,s]=v.useState(()=>ds.has(n)),o=v.useRef(null);return v.useEffect(()=>{if(r)return;const i=o.current;if(!i)return;const a=new IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(kR(n),s(!0),a.disconnect())},{rootMargin:"50px",threshold:.01});return a.observe(i),()=>a.disconnect()},[r,n]),l.jsx("div",{ref:o,style:{minHeight:r?"auto":"200px"},children:r?l.jsx(st.Suspense,{fallback:l.jsx(bo,{size:"small",tip:e("components.mermaid.loadingDiagram")}),children:l.jsx(PR,{...t})}):l.jsx("div",{style:{minHeight:"200px"}})})},PR=t=>{const{t:e}=Xe(),[n,r]=v.useState(null);return v.useEffect(()=>{let s=!1;return $t(()=>Promise.resolve().then(()=>eI),void 0,import.meta.url).then(o=>{s||r(()=>o.MermaidChart)}),()=>{s=!0}},[]),n?l.jsx(n,{...t}):l.jsx(bo,{size:"small",tip:e("components.mermaid.loadingDiagram")})},MR=st.memo(ER),AR=({error:t,className:e,style:n,token:r,onFix:s,isFixing:o,fixError:i})=>{const{t:a}=Xe(),c=t.split(`
157
157
 
158
158
  `);return l.jsxs("div",{className:e,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:`${a("components.mermaid.errorTitlePrefix")}: ${t}
159
159
 
160
- ${a("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(lf,{})}),l.jsx("span",{style:{fontWeight:600,color:r.colorError},children:a("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(Ae,{size:"small",type:"primary",onClick:s,loading:o,children:a("components.mermaid.fixMermaid")}),i&&l.jsx("span",{style:{color:r.colorError,fontSize:r.fontSizeSM,wordBreak:"break-word",flex:1},children:i})]}),l.jsxs("div",{style:{fontSize:r.fontSizeSM,color:r.colorTextSecondary,marginTop:r.marginXS,fontStyle:"italic"},children:[l.jsx(Ry,{style:{marginRight:4}})," ",a("components.mermaid.checkConsoleHint")]})]})};var qn=function(t,e){return Number(t.toFixed(e))},ER=function(t,e){return typeof t=="number"?t:e},Ot=function(t,e,n){n&&typeof n=="function"&&n(t,e)},PR=function(t){return-Math.cos(t*Math.PI)/2+.5},MR=function(t){return t},AR=function(t){return t*t},RR=function(t){return t*(2-t)},jR=function(t){return t<.5?2*t*t:-1+(4-2*t)*t},IR=function(t){return t*t*t},OR=function(t){return--t*t*t+1},$R=function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},LR=function(t){return t*t*t*t},DR=function(t){return 1- --t*t*t*t},FR=function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},NR=function(t){return t*t*t*t*t},zR=function(t){return 1+--t*t*t*t*t},BR=function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t},Ev={easeOut:PR,linear:MR,easeInQuad:AR,easeOutQuad:RR,easeInOutQuad:jR,easeInCubic:IR,easeOutCubic:OR,easeInOutCubic:$R,easeInQuart:LR,easeOutQuart:DR,easeInOutQuart:FR,easeInQuint:NR,easeOutQuint:zR,easeInOutQuint:BR},Pv=function(t){typeof t=="number"&&cancelAnimationFrame(t)},nr=function(t){t.mounted&&(Pv(t.animation),t.animate=!1,t.animation=null,t.velocity=null)};function Mv(t,e,n,r){if(t.mounted){var s=new Date().getTime(),o=1;nr(t),t.animation=function(){if(!t.mounted)return Pv(t.animation);var i=new Date().getTime()-s,a=i/n,c=Ev[e],d=c(a);i>=n?(r(o),t.animation=null):t.animation&&(r(d),requestAnimationFrame(t.animation))},requestAnimationFrame(t.animation)}}function WR(t){var e=t.scale,n=t.positionX,r=t.positionY;return!(Number.isNaN(e)||Number.isNaN(n)||Number.isNaN(r))}function ts(t,e,n,r){var s=WR(e);if(!(!t.mounted||!s)){var o=t.setTransformState,i=t.transformState,a=i.scale,c=i.positionX,d=i.positionY,f=e.scale-a,p=e.positionX-c,b=e.positionY-d;n===0?o(e.scale,e.positionX,e.positionY):Mv(t,r,n,function(m){var w=a+f*m,y=c+p*m,_=d+b*m;o(w,y,_)})}}function UR(t,e,n){var r=t.offsetWidth,s=t.offsetHeight,o=e.offsetWidth,i=e.offsetHeight,a=o*n,c=i*n,d=r-a,f=s-c;return{wrapperWidth:r,wrapperHeight:s,newContentWidth:a,newDiffWidth:d,newContentHeight:c,newDiffHeight:f}}var HR=function(t,e,n,r,s,o,i){var a=t>e?n*(i?1:.5):0,c=r>s?o*(i?1:.5):0,d=t-e-a,f=a,p=r-s-c,b=c;return{minPositionX:d,maxPositionX:f,minPositionY:p,maxPositionY:b}},Nf=function(t,e){var n=t.wrapperComponent,r=t.contentComponent,s=t.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var o=UR(n,r,e),i=o.wrapperWidth,a=o.wrapperHeight,c=o.newContentWidth,d=o.newDiffWidth,f=o.newContentHeight,p=o.newDiffHeight,b=HR(i,c,d,a,f,p,!!s);return b},Rd=function(t,e,n,r){return r?t<e?qn(e,2):t>n?qn(n,2):qn(t,2):qn(t,2)},Ms=function(t,e){var n=Nf(t,e);return t.bounds=n,n};function Ma(t,e,n,r,s,o,i){var a=n.minPositionX,c=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,p=0,b=0;i&&(p=s,b=o);var m=Rd(t,a-p,d+p,r),w=Rd(e,c-b,f+b,r);return{x:m,y:w}}function _c(t,e,n,r,s,o){var i=t.transformState,a=i.scale,c=i.positionX,d=i.positionY,f=r-a;if(typeof e!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:c,y:d};var p=c-e*f,b=d-n*f,m=Ma(p,b,s,o,0,0,null);return m}function Aa(t,e,n,r,s){var o=s?r:0,i=e-o;return!Number.isNaN(n)&&t>=n?n:!Number.isNaN(e)&&t<=i?i:t}var ym=function(t,e){var n=t.setup.panning.excluded,r=t.isInitialized,s=t.wrapperComponent,o=e.target,i="shadowRoot"in o&&"composedPath"in e,a=i?e.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&&a;if(!c)return!1;var d=Cc(o,n);return!d},bm=function(t){var e=t.isInitialized,n=t.isPanning,r=t.setup,s=r.panning.disabled,o=e&&n&&!s;return!!o},qR=function(t,e){var n=t.transformState,r=n.positionX,s=n.positionY;t.isPanning=!0;var o=e.clientX,i=e.clientY;t.startCoords={x:o-r,y:i-s}},KR=function(t,e){var n=e.touches,r=t.transformState,s=r.positionX,o=r.positionY;t.isPanning=!0;var i=n.length===1;if(i){var a=n[0].clientX,c=n[0].clientY;t.startCoords={x:a-s,y:c-o}}};function XR(t){var e=t.transformState,n=e.positionX,r=e.positionY,s=e.scale,o=t.setup,i=o.disabled,a=o.limitToBounds,c=o.centerZoomedOut,d=t.wrapperComponent;if(!(i||!d||!t.bounds)){var f=t.bounds,p=f.maxPositionX,b=f.minPositionX,m=f.maxPositionY,w=f.minPositionY,y=n>p||n<b,_=r>m||r<w,M=n>p?d.offsetWidth:t.setup.minPositionX||0,C=r>m?d.offsetHeight:t.setup.minPositionY||0,T=_c(t,M,C,s,t.bounds,a||c),k=T.x,P=T.y;return{scale:s,positionX:y?k:n,positionY:_?P:r}}}function Av(t,e,n,r,s){var o=t.setup.limitToBounds,i=t.wrapperComponent,a=t.bounds,c=t.transformState,d=c.scale,f=c.positionX,p=c.positionY;if(!(i===null||a===null||e===f&&n===p)){var b=Ma(e,n,a,o,r,s,i),m=b.x,w=b.y;t.setTransformState(d,m,w)}}var YR=function(t,e,n){var r=t.startCoords,s=t.transformState,o=t.setup.panning,i=o.lockAxisX,a=o.lockAxisY,c=s.positionX,d=s.positionY;if(!r)return{x:c,y:d};var f=e-r.x,p=n-r.y,b=i?c:f,m=a?d:p;return{x:b,y:m}},Qr=function(t,e){var n=t.setup,r=t.transformState,s=r.scale,o=n.minScale,i=n.disablePadding;return e>0&&s>=o&&!i?e:0},VR=function(t){var e=t.mounted,n=t.setup,r=n.disabled,s=n.velocityAnimation,o=t.transformState.scale,i=s.disabled,a=!i||o>1||!r||e;return!!a},GR=function(t){var e=t.mounted,n=t.velocity,r=t.bounds,s=t.setup,o=s.disabled,i=s.velocityAnimation,a=t.transformState.scale,c=i.disabled,d=!c||a>1||!o||e;return!(!d||!n||!r)};function JR(t,e){var n=t.setup.velocityAnimation,r=n.equalToMove,s=n.animationTime,o=n.sensitivity;return r?s*e*o:s}function vm(t,e,n,r,s,o,i,a,c,d){if(s){if(e>i&&n>i){var f=i+(t-i)*d;return f>c?c:f<i?i:f}if(e<o&&n<o){var f=o+(t-o)*d;return f<a?a:f>o?o:f}}return r?e:Rd(t,o,i,s)}function QR(t,e){var n=1;return e?Math.min(n,t.offsetWidth/window.innerWidth):n}function ZR(t,e){var n=VR(t);if(n){var r=t.lastMousePosition,s=t.velocityTime,o=t.setup,i=t.wrapperComponent,a=o.velocityAnimation.equalToMove,c=Date.now();if(r&&s&&i){var d=QR(i,a),f=e.x-r.x,p=e.y-r.y,b=f/d,m=p/d,w=c-s,y=f*f+p*p,_=Math.sqrt(y)/w;t.velocity={velocityX:b,velocityY:m,total:_}}t.lastMousePosition=e,t.velocityTime=c}}function ej(t){var e=t.velocity,n=t.bounds,r=t.setup,s=t.wrapperComponent,o=GR(t);if(!(!o||!e||!n||!s)){var i=e.velocityX,a=e.velocityY,c=e.total,d=n.maxPositionX,f=n.minPositionX,p=n.maxPositionY,b=n.minPositionY,m=r.limitToBounds,w=r.alignmentAnimation,y=r.zoomAnimation,_=r.panning,M=_.lockAxisY,C=_.lockAxisX,T=y.animationType,k=w.sizeX,P=w.sizeY,A=w.velocityAlignmentTime,j=A,$=JR(t,c),F=Math.max($,j),X=Qr(t,k),K=Qr(t,P),O=X*s.offsetWidth/100,W=K*s.offsetHeight/100,ae=d+O,Y=f-O,ce=p+W,L=b-W,oe=t.transformState,Se=new Date().getTime();Mv(t,T,F,function(J){var te=t.transformState,he=te.scale,de=te.positionX,me=te.positionY,ge=new Date().getTime()-Se,le=ge/j,ke=Ev[w.animationType],je=1-ke(Math.min(1,le)),fe=1-J,ne=de+i*fe,Q=me+a*fe,ie=vm(ne,oe.positionX,de,C,m,f,d,Y,ae,je),ye=vm(Q,oe.positionY,me,M,m,b,p,L,ce,je);(de!==ne||me!==Q)&&t.setTransformState(he,ie,ye)})}}function Sm(t,e){var n=t.transformState.scale;nr(t),Ms(t,n),window.TouchEvent!==void 0&&e instanceof TouchEvent?KR(t,e):qR(t,e)}function zf(t,e){var n=t.transformState.scale,r=t.setup,s=r.minScale,o=r.alignmentAnimation,i=o.disabled,a=o.sizeX,c=o.sizeY,d=o.animationTime,f=o.animationType,p=i||n<s||!a&&!c;if(!p){var b=XR(t);b&&ts(t,b,e??d,f)}}function wm(t,e,n){var r=t.startCoords,s=t.setup,o=s.alignmentAnimation,i=o.sizeX,a=o.sizeY;if(r){var c=YR(t,e,n),d=c.x,f=c.y,p=Qr(t,i),b=Qr(t,a);ZR(t,{x:d,y:f}),Av(t,d,f,p,b)}}function tj(t){if(t.isPanning){var e=t.setup.panning.velocityDisabled,n=t.velocity,r=t.wrapperComponent,s=t.contentComponent;t.isPanning=!1,t.animate=!1,t.animation=null;var o=r==null?void 0:r.getBoundingClientRect(),i=s==null?void 0:s.getBoundingClientRect(),a=(o==null?void 0:o.width)||0,c=(o==null?void 0:o.height)||0,d=(i==null?void 0:i.width)||0,f=(i==null?void 0:i.height)||0,p=a<d||c<f,b=!e&&n&&(n==null?void 0:n.total)>.1&&p;b?ej(t):zf(t)}}function Bf(t,e,n,r){var s=t.setup,o=s.minScale,i=s.maxScale,a=s.limitToBounds,c=Aa(qn(e,2),o,i,0,!1),d=Ms(t,c),f=_c(t,n,r,c,d,a),p=f.x,b=f.y;return{scale:c,positionX:p,positionY:b}}function Rv(t,e,n){var r=t.transformState.scale,s=t.wrapperComponent,o=t.setup,i=o.minScale,a=o.limitToBounds,c=o.zoomAnimation,d=c.disabled,f=c.animationTime,p=c.animationType,b=d||r>=i;if((r>=1||a)&&zf(t),!(b||!s||!t.mounted)){var m=e||s.offsetWidth/2,w=n||s.offsetHeight/2,y=Bf(t,i,m,w);y&&ts(t,y,f,p)}}var Vr=function(){return Vr=Object.assign||function(e){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)&&(e[o]=n[o])}return e},Vr.apply(this,arguments)};function xm(t,e,n){for(var r=0,s=e.length,o;r<s;r++)(o||!(r in e))&&(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}var ul={scale:1,positionX:0,positionY:0},ti={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}},jd={wrapperClass:"react-transform-wrapper",contentClass:"react-transform-component"},jv=function(t){var e,n,r,s;return{previousScale:(e=t.initialScale)!==null&&e!==void 0?e:ul.scale,scale:(n=t.initialScale)!==null&&n!==void 0?n:ul.scale,positionX:(r=t.initialPositionX)!==null&&r!==void 0?r:ul.positionX,positionY:(s=t.initialPositionY)!==null&&s!==void 0?s:ul.positionY}},_m=function(t){var e=Vr({},ti);return Object.keys(t).forEach(function(n){var r=typeof t[n]<"u",s=typeof ti[n]<"u";if(s&&r){var o=Object.prototype.toString.call(ti[n]),i=o==="[object Object]",a=o==="[object Array]";i?e[n]=Vr(Vr({},ti[n]),t[n]):a?e[n]=xm(xm([],ti[n],!0),t[n]):e[n]=t[n]}}),e},Iv=function(t,e,n){var r=t.transformState.scale,s=t.wrapperComponent,o=t.setup,i=o.maxScale,a=o.minScale,c=o.zoomAnimation,d=o.smooth,f=c.size;if(!s)throw new Error("Wrapper is not mounted");var p=d?r*Math.exp(e*n):r+e*n,b=Aa(qn(p,3),a,i,f,!1);return b};function Ov(t,e,n,r,s){var o=t.wrapperComponent,i=t.transformState,a=i.scale,c=i.positionX,d=i.positionY;if(!o)return console.error("No WrapperComponent found");var f=o.offsetWidth,p=o.offsetHeight,b=(f/2-c)/a,m=(p/2-d)/a,w=Iv(t,e,n),y=Bf(t,w,b,m);if(!y)return console.error("Error during zoom event. New transformation state was not calculated.");ts(t,y,r,s)}function $v(t,e,n,r){var s=t.setup,o=t.wrapperComponent,i=s.limitToBounds,a=jv(t.props),c=t.transformState,d=c.scale,f=c.positionX,p=c.positionY;if(o){var b=Nf(t,a.scale),m=Ma(a.positionX,a.positionY,b,i,0,0,o),w={scale:a.scale,positionX:m.x,positionY:m.y};d===a.scale&&f===a.positionX&&p===a.positionY||(r==null||r(),ts(t,w,e,n))}}function nj(t,e,n,r){var s=t.getBoundingClientRect(),o=e.getBoundingClientRect(),i=n.getBoundingClientRect(),a=o.x*r.scale,c=o.y*r.scale;return{x:(s.x-i.x+a)/r.scale,y:(s.y-i.y+c)/r.scale}}function rj(t,e,n){var r=t.wrapperComponent,s=t.contentComponent,o=t.transformState,i=t.setup,a=i.limitToBounds,c=i.minScale,d=i.maxScale;if(!r||!s)return o;var f=r.getBoundingClientRect(),p=e.getBoundingClientRect(),b=nj(e,r,s,o),m=b.x,w=b.y,y=p.width/o.scale,_=p.height/o.scale,M=r.offsetWidth/y,C=r.offsetHeight/_,T=Aa(n||Math.min(M,C),c,d,0,!1),k=(f.width-y*T)/2,P=(f.height-_*T)/2,A=(f.left-m)*T+k,j=(f.top-w)*T+P,$=Nf(t,T),F=Ma(A,j,$,a,0,0,r),X=F.x,K=F.y;return{positionX:X,positionY:K,scale:T}}var sj=function(t){return function(e,n,r){e===void 0&&(e=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Ov(t,1,e,n,r)}},oj=function(t){return function(e,n,r){e===void 0&&(e=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Ov(t,-1,e,n,r)}},ij=function(t){return function(e,n,r,s,o){s===void 0&&(s=300),o===void 0&&(o="easeOut");var i=t.transformState,a=i.positionX,c=i.positionY,d=i.scale,f=t.wrapperComponent,p=t.contentComponent,b=t.setup.disabled;if(!(b||!f||!p)){var m={positionX:Number.isNaN(e)?a:e,positionY:Number.isNaN(n)?c:n,scale:Number.isNaN(r)?d:r};ts(t,m,s,o)}}},aj=function(t){return function(e,n){e===void 0&&(e=200),n===void 0&&(n="easeOut"),$v(t,e,n)}},lj=function(t){return function(e,n,r){n===void 0&&(n=200),r===void 0&&(r="easeOut");var s=t.transformState,o=t.wrapperComponent,i=t.contentComponent;if(o&&i){var a=Lv(e||s.scale,o,i);ts(t,a,n,r)}}},cj=function(t){return function(e,n,r,s){r===void 0&&(r=600),s===void 0&&(s="easeOut"),nr(t);var o=t.wrapperComponent,i=typeof e=="string"?document.getElementById(e):e;if(o&&i&&o.contains(i)){var a=rj(t,i,n);ts(t,a,r,s)}}},Id=function(t){return{instance:t,zoomIn:sj(t),zoomOut:oj(t),setTransform:ij(t),resetTransform:aj(t),centerView:lj(t),zoomToElement:cj(t)}},uj=function(t){return{instance:t,state:t.transformState}},jt=function(t){var e={};return Object.assign(e,uj(t)),Object.assign(e,Id(t)),e},xu=!1;function _u(){try{var t={get passive(){return xu=!0,!1}};return t}catch{return xu=!1,xu}}var dl=".".concat(jd.wrapperClass),Cc=function(t,e){return e.some(function(n){return t.matches("".concat(dl," ").concat(n,", ").concat(dl," .").concat(n,", ").concat(dl," ").concat(n," *, ").concat(dl," .").concat(n," *"))})},Od=function(t){t&&clearTimeout(t)},dj=function(t,e,n){return"translate(".concat(t,"px, ").concat(e,"px) scale(").concat(n,")")},Lv=function(t,e,n){var r=n.offsetWidth*t,s=n.offsetHeight*t,o=(e.offsetWidth-r)/2,i=(e.offsetHeight-s)/2;return{scale:t,positionX:o,positionY:i}};function fj(t){return function(e){t.forEach(function(n){typeof n=="function"?n(e):n!=null&&(n.current=e)})}}var hj=function(t,e){var n=t.setup.wheel,r=n.disabled,s=n.wheelDisabled,o=n.touchPadDisabled,i=n.excluded,a=t.isInitialized,c=t.isPanning,d=e.target,f=a&&!c&&!r&&d;if(!f||s&&!e.ctrlKey||o&&e.ctrlKey)return!1;var p=Cc(d,i);return!p},pj=function(t){return t?t.deltaY<0?1:-1:0};function mj(t,e){var n=pj(t),r=ER(e,n);return r}function Dv(t,e,n){var r=e.getBoundingClientRect(),s=0,o=0;if("clientX"in t)s=(t.clientX-r.left)/n,o=(t.clientY-r.top)/n;else{var i=t.touches[0];s=(i.clientX-r.left)/n,o=(i.clientY-r.top)/n}return(Number.isNaN(s)||Number.isNaN(o))&&console.error("No mouse or touch offset found"),{x:s,y:o}}var gj=function(t,e,n,r,s){var o=t.transformState.scale,i=t.wrapperComponent,a=t.setup,c=a.maxScale,d=a.minScale,f=a.zoomAnimation,p=a.disablePadding,b=f.size,m=f.disabled;if(!i)throw new Error("Wrapper is not mounted");var w=o+e*n,y=r?!1:!m,_=Aa(qn(w,3),d,c,b,y&&!p);return _},yj=function(t,e){var n=t.previousWheelEvent,r=t.transformState.scale,s=t.setup,o=s.maxScale,i=s.minScale;return n?r<o||r>i||Math.sign(n.deltaY)!==Math.sign(e.deltaY)||n.deltaY>0&&n.deltaY<e.deltaY||n.deltaY<0&&n.deltaY>e.deltaY||Math.sign(n.deltaY)!==Math.sign(e.deltaY):!1},bj=function(t,e){var n=t.setup.pinch,r=n.disabled,s=n.excluded,o=t.isInitialized,i=e.target,a=o&&!r&&i;if(!a)return!1;var c=Cc(i,s);return!c},vj=function(t){var e=t.setup.pinch.disabled,n=t.isInitialized,r=t.pinchStartDistance,s=n&&!e&&r;return!!s},Sj=function(t,e,n){var r=n.getBoundingClientRect(),s=t.touches,o=qn(s[0].clientX-r.left,5),i=qn(s[0].clientY-r.top,5),a=qn(s[1].clientX-r.left,5),c=qn(s[1].clientY-r.top,5);return{x:(o+a)/2/e,y:(i+c)/2/e}},Fv=function(t){return Math.sqrt(Math.pow(t.touches[0].pageX-t.touches[1].pageX,2)+Math.pow(t.touches[0].pageY-t.touches[1].pageY,2))},wj=function(t,e){var n=t.pinchStartScale,r=t.pinchStartDistance,s=t.setup,o=s.maxScale,i=s.minScale,a=s.zoomAnimation,c=s.disablePadding,d=a.size,f=a.disabled;if(!n||r===null||!e)throw new Error("Pinch touches distance was not provided");if(e<0)return t.transformState.scale;var p=e/r,b=p*n;return Aa(qn(b,2),i,o,d,!f&&!c)},xj=160,_j=100,Cj=function(t,e){var n=t.props,r=n.onWheelStart,s=n.onZoomStart;t.wheelStopEventTimer||(nr(t),Ot(jt(t),e,r),Ot(jt(t),e,s))},kj=function(t,e){var n=t.props,r=n.onWheel,s=n.onZoom,o=t.contentComponent,i=t.setup,a=t.transformState,c=a.scale,d=i.limitToBounds,f=i.centerZoomedOut,p=i.zoomAnimation,b=i.wheel,m=i.disablePadding,w=i.smooth,y=p.size,_=p.disabled,M=b.step,C=b.smoothStep;if(!o)throw new Error("Component not mounted");e.preventDefault(),e.stopPropagation();var T=mj(e,null),k=w?C*Math.abs(e.deltaY):M,P=gj(t,T,k,!e.ctrlKey);if(c!==P){var A=Ms(t,P),j=Dv(e,o,c),$=_||y===0||f||m,F=d&&$,X=_c(t,j.x,j.y,P,A,F),K=X.x,O=X.y;t.previousWheelEvent=e,t.setTransformState(P,K,O),Ot(jt(t),e,r),Ot(jt(t),e,s)}},Tj=function(t,e){var n=t.props,r=n.onWheelStop,s=n.onZoomStop;Od(t.wheelAnimationTimer),t.wheelAnimationTimer=setTimeout(function(){t.mounted&&(Rv(t,e.x,e.y),t.wheelAnimationTimer=null)},_j);var o=yj(t,e);o&&(Od(t.wheelStopEventTimer),t.wheelStopEventTimer=setTimeout(function(){t.mounted&&(t.wheelStopEventTimer=null,Ot(jt(t),e,r),Ot(jt(t),e,s))},xj))},Nv=function(t){for(var e=0,n=0,r=0;r<2;r+=1)e+=t.touches[r].clientX,n+=t.touches[r].clientY;var s=e/2,o=n/2;return{x:s,y:o}},Ej=function(t,e){var n=Fv(e);t.pinchStartDistance=n,t.lastDistance=n,t.pinchStartScale=t.transformState.scale,t.isPanning=!1;var r=Nv(e);t.pinchLastCenterX=r.x,t.pinchLastCenterY=r.y,nr(t)},Pj=function(t,e){var n=t.contentComponent,r=t.pinchStartDistance,s=t.wrapperComponent,o=t.transformState.scale,i=t.setup,a=i.limitToBounds,c=i.centerZoomedOut,d=i.zoomAnimation,f=i.alignmentAnimation,p=d.disabled,b=d.size;if(!(r===null||!n)){var m=Sj(e,o,n);if(!(!Number.isFinite(m.x)||!Number.isFinite(m.y))){var w=Fv(e),y=wj(t,w),_=Nv(e),M=_.x-(t.pinchLastCenterX||0),C=_.y-(t.pinchLastCenterY||0);if(!(y===o&&M===0&&C===0)){t.pinchLastCenterX=_.x,t.pinchLastCenterY=_.y;var T=Ms(t,y),k=p||b===0||c,P=a&&k,A=_c(t,m.x,m.y,y,T,P),j=A.x,$=A.y;t.pinchMidpoint=m,t.lastDistance=w;var F=f.sizeX,X=f.sizeY,K=Qr(t,F),O=Qr(t,X),W=j+M,ae=$+C,Y=Ma(W,ae,T,a,K,O,s),ce=Y.x,L=Y.y;t.setTransformState(y,ce,L)}}}},Mj=function(t){var e=t.pinchMidpoint;t.velocity=null,t.lastDistance=null,t.pinchMidpoint=null,t.pinchStartScale=null,t.pinchStartDistance=null,Rv(t,e==null?void 0:e.x,e==null?void 0:e.y)},zv=function(t,e){var n=t.props.onZoomStop,r=t.setup.doubleClick.animationTime;Od(t.doubleClickStopEventTimer),t.doubleClickStopEventTimer=setTimeout(function(){t.doubleClickStopEventTimer=null,Ot(jt(t),e,n)},r)},Aj=function(t,e){var n=t.props,r=n.onZoomStart,s=n.onZoom,o=t.setup.doubleClick,i=o.animationTime,a=o.animationType;Ot(jt(t),e,r),$v(t,i,a,function(){return Ot(jt(t),e,s)}),zv(t,e)};function Rj(t,e){return t==="toggle"?e===1?1:-1:t==="zoomOut"?-1:1}function jj(t,e){var n=t.setup,r=t.doubleClickStopEventTimer,s=t.transformState,o=t.contentComponent,i=s.scale,a=t.props,c=a.onZoomStart,d=a.onZoom,f=n.doubleClick,p=f.disabled,b=f.mode,m=f.step,w=f.animationTime,y=f.animationType;if(!p&&!r){if(b==="reset")return Aj(t,e);if(!o)return console.error("No ContentComponent found");var _=Rj(b,t.transformState.scale),M=Iv(t,_,m);if(i!==M){Ot(jt(t),e,c);var C=Dv(e,o,i),T=Bf(t,M,C.x,C.y);if(!T)return console.error("Error during zoom event. New transformation state was not calculated.");Ot(jt(t),e,d),ts(t,T,w,y),zv(t,e)}}}var Ij=function(t,e){var n=t.isInitialized,r=t.setup,s=t.wrapperComponent,o=r.doubleClick,i=o.disabled,a=o.excluded,c=e.target,d=s==null?void 0:s.contains(c),f=n&&c&&d&&!i;if(!f)return!1;var p=Cc(c,a);return!p},Oj=function(){function t(e){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,Ms(n,n.transformState.scale),n.setup=_m(r)},this.initializeWindowEvents=function(){var r,s,o=_u(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,a=i==null?void 0:i.defaultView;(s=n.wrapperComponent)===null||s===void 0||s.addEventListener("wheel",n.onWheelPanning,o),a==null||a.addEventListener("mousedown",n.onPanningStart,o),a==null||a.addEventListener("mousemove",n.onPanning,o),a==null||a.addEventListener("mouseup",n.onPanningStop,o),i==null||i.addEventListener("mouseleave",n.clearPanning,o),a==null||a.addEventListener("keyup",n.setKeyUnPressed,o),a==null||a.addEventListener("keydown",n.setKeyPressed,o)},this.cleanupWindowEvents=function(){var r,s,o=_u(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,a=i==null?void 0:i.defaultView;a==null||a.removeEventListener("mousedown",n.onPanningStart,o),a==null||a.removeEventListener("mousemove",n.onPanning,o),a==null||a.removeEventListener("mouseup",n.onPanningStop,o),i==null||i.removeEventListener("mouseleave",n.clearPanning,o),a==null||a.removeEventListener("keyup",n.setKeyUnPressed,o),a==null||a.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),nr(n),(s=n.observer)===null||s===void 0||s.disconnect()},this.handleInitializeWrapperEvents=function(r){var s=_u();r.addEventListener("wheel",n.onWheelZoom,s),r.addEventListener("dblclick",n.onDoubleClick,s),r.addEventListener("touchstart",n.onTouchPanningStart,s),r.addEventListener("touchmove",n.onTouchPanning,s),r.addEventListener("touchend",n.onTouchPanningStop,s)},this.handleInitialize=function(r,s){var o=!1,i=n.setup.centerOnInit,a=function(c,d){for(var f=0,p=c;f<p.length;f++){var b=p[f];if(b.target===d)return!0}return!1};n.applyTransformation(),n.onInitCallbacks.forEach(function(c){c(jt(n))}),n.observer=new ResizeObserver(function(c){if(a(c,r)||a(c,s))if(i&&!o){var d=s.offsetWidth,f=s.offsetHeight;(d>0||f>0)&&(o=!0,n.setCenter())}else nr(n),Ms(n,n.transformState.scale),zf(n,0)}),n.observer.observe(r),n.observer.observe(s)},this.onWheelZoom=function(r){var s=n.setup.disabled;if(!s){var o=hj(n,r);if(o){var i=n.isPressingKeys(n.setup.wheel.activationKeys);i&&(Cj(n,r),kj(n,r),Tj(n,r))}}},this.onWheelPanning=function(r){var s=n.setup,o=s.disabled,i=s.wheel,a=s.panning;if(!(!n.wrapperComponent||!n.contentComponent||o||!i.wheelDisabled||a.disabled||!a.wheelPanning||r.ctrlKey)){r.preventDefault(),r.stopPropagation();var c=n.transformState,d=c.positionX,f=c.positionY,p=d-r.deltaX,b=f-r.deltaY,m=a.lockAxisX?d:p,w=a.lockAxisY?f:b,y=n.setup.alignmentAnimation,_=y.sizeX,M=y.sizeY,C=Qr(n,_),T=Qr(n,M);m===d&&w===f||Av(n,m,w,C,T)}},this.onPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=ym(n,r);if(i){var a=n.isPressingKeys(n.setup.panning.activationKeys);a&&(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(),nr(n),Sm(n,r),Ot(jt(n),r,o)))}}},this.onPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(!s){var i=bm(n);if(i){var a=n.isPressingKeys(n.setup.panning.activationKeys);a&&(r.preventDefault(),r.stopPropagation(),wm(n,r.clientX,r.clientY),Ot(jt(n),r,o))}}},this.onPanningStop=function(r){var s=n.props.onPanningStop;n.isPanning&&(tj(n),Ot(jt(n),r,s))},this.onPinchStart=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinchingStart,a=o.onZoomStart;if(!s){var c=bj(n,r);c&&(Ej(n,r),nr(n),Ot(jt(n),r,i),Ot(jt(n),r,a))}},this.onPinch=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinching,a=o.onZoom;if(!s){var c=vj(n);c&&(r.preventDefault(),r.stopPropagation(),Pj(n,r),Ot(jt(n),r,i),Ot(jt(n),r,a))}},this.onPinchStop=function(r){var s=n.props,o=s.onPinchingStop,i=s.onZoomStop;n.pinchStartScale&&(Mj(n),Ot(jt(n),r,o),Ot(jt(n),r,i))},this.onTouchPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=ym(n,r);if(i){var a=n.lastTouch&&+new Date-n.lastTouch<200&&r.touches.length===1;if(!a){n.lastTouch=+new Date,nr(n);var c=r.touches,d=c.length===1,f=c.length===2;d&&(nr(n),Sm(n,r),Ot(jt(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 i=bm(n);if(!i)return;r.preventDefault(),r.stopPropagation();var a=r.touches[0];wm(n,a.clientX,a.clientY),Ot(jt(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=Ij(n,r);o&&jj(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?!!r.find(function(s){return n.pressedKeys[s]}):!0},this.setTransformState=function(r,s,o){var i=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(s)&&!Number.isNaN(o)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=s,n.transformState.positionY=o,n.applyTransformation();var a=jt(n);n.onChangeCallbacks.forEach(function(c){return c(a)}),Ot(a,{scale:r,positionX:s,positionY:o},i)}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=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):dj(r,s,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,s=r.scale,o=r.positionX,i=r.positionY,a=n.handleTransformStyles(o,i,s);n.contentComponent.style.transform=a}},this.getContext=function(){return jt(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,Ms(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(r,s),n.initializeWindowEvents(),n.isInitialized=!0;var o=jt(n);Ot(o,void 0,n.props.onInit)},this.props=e,this.setup=_m(this.props),this.transformState=jv(this.props)}return t}(),Wf=st.createContext(null),$j=function(t,e){return typeof t=="function"?t(e):t},Lj=st.forwardRef(function(t,e){var n=v.useRef(new Oj(t)).current,r=$j(t.children,Id(n));return v.useImperativeHandle(e,function(){return Id(n)},[n]),v.useEffect(function(){n.update(t)},[n,t]),st.createElement(Wf.Provider,{value:n},r)});st.forwardRef(function(t,e){var n=v.useRef(null),r=v.useContext(Wf);return v.useEffect(function(){return r.onChange(function(s){if(n.current){var o=0,i=0;n.current.style.transform=r.handleTransformStyles(o,i,1/s.instance.transformState.scale)}})},[r]),st.createElement("div",Vr({},t,{ref:fj([n,e])}))});function Dj(t,e){e===void 0&&(e={});var n=e.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=t:s.appendChild(document.createTextNode(t))}}var Fj=`.transform-component-module_wrapper__SPB86 {
160
+ ${a("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(lf,{})}),l.jsx("span",{style:{fontWeight:600,color:r.colorError},children:a("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(Ae,{size:"small",type:"primary",onClick:s,loading:o,children:a("components.mermaid.fixMermaid")}),i&&l.jsx("span",{style:{color:r.colorError,fontSize:r.fontSizeSM,wordBreak:"break-word",flex:1},children:i})]}),l.jsxs("div",{style:{fontSize:r.fontSizeSM,color:r.colorTextSecondary,marginTop:r.marginXS,fontStyle:"italic"},children:[l.jsx(jy,{style:{marginRight:4}})," ",a("components.mermaid.checkConsoleHint")]})]})};var qn=function(t,e){return Number(t.toFixed(e))},RR=function(t,e){return typeof t=="number"?t:e},Ot=function(t,e,n){n&&typeof n=="function"&&n(t,e)},jR=function(t){return-Math.cos(t*Math.PI)/2+.5},IR=function(t){return t},OR=function(t){return t*t},$R=function(t){return t*(2-t)},LR=function(t){return t<.5?2*t*t:-1+(4-2*t)*t},DR=function(t){return t*t*t},FR=function(t){return--t*t*t+1},NR=function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},zR=function(t){return t*t*t*t},BR=function(t){return 1- --t*t*t*t},WR=function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},UR=function(t){return t*t*t*t*t},HR=function(t){return 1+--t*t*t*t*t},qR=function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t},Av={easeOut:jR,linear:IR,easeInQuad:OR,easeOutQuad:$R,easeInOutQuad:LR,easeInCubic:DR,easeOutCubic:FR,easeInOutCubic:NR,easeInQuart:zR,easeOutQuart:BR,easeInOutQuart:WR,easeInQuint:UR,easeOutQuint:HR,easeInOutQuint:qR},Rv=function(t){typeof t=="number"&&cancelAnimationFrame(t)},nr=function(t){t.mounted&&(Rv(t.animation),t.animate=!1,t.animation=null,t.velocity=null)};function jv(t,e,n,r){if(t.mounted){var s=new Date().getTime(),o=1;nr(t),t.animation=function(){if(!t.mounted)return Rv(t.animation);var i=new Date().getTime()-s,a=i/n,c=Av[e],d=c(a);i>=n?(r(o),t.animation=null):t.animation&&(r(d),requestAnimationFrame(t.animation))},requestAnimationFrame(t.animation)}}function KR(t){var e=t.scale,n=t.positionX,r=t.positionY;return!(Number.isNaN(e)||Number.isNaN(n)||Number.isNaN(r))}function ts(t,e,n,r){var s=KR(e);if(!(!t.mounted||!s)){var o=t.setTransformState,i=t.transformState,a=i.scale,c=i.positionX,d=i.positionY,f=e.scale-a,p=e.positionX-c,y=e.positionY-d;n===0?o(e.scale,e.positionX,e.positionY):jv(t,r,n,function(m){var w=a+f*m,b=c+p*m,_=d+y*m;o(w,b,_)})}}function XR(t,e,n){var r=t.offsetWidth,s=t.offsetHeight,o=e.offsetWidth,i=e.offsetHeight,a=o*n,c=i*n,d=r-a,f=s-c;return{wrapperWidth:r,wrapperHeight:s,newContentWidth:a,newDiffWidth:d,newContentHeight:c,newDiffHeight:f}}var YR=function(t,e,n,r,s,o,i){var a=t>e?n*(i?1:.5):0,c=r>s?o*(i?1:.5):0,d=t-e-a,f=a,p=r-s-c,y=c;return{minPositionX:d,maxPositionX:f,minPositionY:p,maxPositionY:y}},Nf=function(t,e){var n=t.wrapperComponent,r=t.contentComponent,s=t.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var o=XR(n,r,e),i=o.wrapperWidth,a=o.wrapperHeight,c=o.newContentWidth,d=o.newDiffWidth,f=o.newContentHeight,p=o.newDiffHeight,y=YR(i,c,d,a,f,p,!!s);return y},Rd=function(t,e,n,r){return r?t<e?qn(e,2):t>n?qn(n,2):qn(t,2):qn(t,2)},Ms=function(t,e){var n=Nf(t,e);return t.bounds=n,n};function Ma(t,e,n,r,s,o,i){var a=n.minPositionX,c=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,p=0,y=0;i&&(p=s,y=o);var m=Rd(t,a-p,d+p,r),w=Rd(e,c-y,f+y,r);return{x:m,y:w}}function _c(t,e,n,r,s,o){var i=t.transformState,a=i.scale,c=i.positionX,d=i.positionY,f=r-a;if(typeof e!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:c,y:d};var p=c-e*f,y=d-n*f,m=Ma(p,y,s,o,0,0,null);return m}function Aa(t,e,n,r,s){var o=s?r:0,i=e-o;return!Number.isNaN(n)&&t>=n?n:!Number.isNaN(e)&&t<=i?i:t}var bm=function(t,e){var n=t.setup.panning.excluded,r=t.isInitialized,s=t.wrapperComponent,o=e.target,i="shadowRoot"in o&&"composedPath"in e,a=i?e.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&&a;if(!c)return!1;var d=Cc(o,n);return!d},vm=function(t){var e=t.isInitialized,n=t.isPanning,r=t.setup,s=r.panning.disabled,o=e&&n&&!s;return!!o},VR=function(t,e){var n=t.transformState,r=n.positionX,s=n.positionY;t.isPanning=!0;var o=e.clientX,i=e.clientY;t.startCoords={x:o-r,y:i-s}},GR=function(t,e){var n=e.touches,r=t.transformState,s=r.positionX,o=r.positionY;t.isPanning=!0;var i=n.length===1;if(i){var a=n[0].clientX,c=n[0].clientY;t.startCoords={x:a-s,y:c-o}}};function JR(t){var e=t.transformState,n=e.positionX,r=e.positionY,s=e.scale,o=t.setup,i=o.disabled,a=o.limitToBounds,c=o.centerZoomedOut,d=t.wrapperComponent;if(!(i||!d||!t.bounds)){var f=t.bounds,p=f.maxPositionX,y=f.minPositionX,m=f.maxPositionY,w=f.minPositionY,b=n>p||n<y,_=r>m||r<w,M=n>p?d.offsetWidth:t.setup.minPositionX||0,C=r>m?d.offsetHeight:t.setup.minPositionY||0,T=_c(t,M,C,s,t.bounds,a||c),k=T.x,P=T.y;return{scale:s,positionX:b?k:n,positionY:_?P:r}}}function Iv(t,e,n,r,s){var o=t.setup.limitToBounds,i=t.wrapperComponent,a=t.bounds,c=t.transformState,d=c.scale,f=c.positionX,p=c.positionY;if(!(i===null||a===null||e===f&&n===p)){var y=Ma(e,n,a,o,r,s,i),m=y.x,w=y.y;t.setTransformState(d,m,w)}}var QR=function(t,e,n){var r=t.startCoords,s=t.transformState,o=t.setup.panning,i=o.lockAxisX,a=o.lockAxisY,c=s.positionX,d=s.positionY;if(!r)return{x:c,y:d};var f=e-r.x,p=n-r.y,y=i?c:f,m=a?d:p;return{x:y,y:m}},Zr=function(t,e){var n=t.setup,r=t.transformState,s=r.scale,o=n.minScale,i=n.disablePadding;return e>0&&s>=o&&!i?e:0},ZR=function(t){var e=t.mounted,n=t.setup,r=n.disabled,s=n.velocityAnimation,o=t.transformState.scale,i=s.disabled,a=!i||o>1||!r||e;return!!a},ej=function(t){var e=t.mounted,n=t.velocity,r=t.bounds,s=t.setup,o=s.disabled,i=s.velocityAnimation,a=t.transformState.scale,c=i.disabled,d=!c||a>1||!o||e;return!(!d||!n||!r)};function tj(t,e){var n=t.setup.velocityAnimation,r=n.equalToMove,s=n.animationTime,o=n.sensitivity;return r?s*e*o:s}function Sm(t,e,n,r,s,o,i,a,c,d){if(s){if(e>i&&n>i){var f=i+(t-i)*d;return f>c?c:f<i?i:f}if(e<o&&n<o){var f=o+(t-o)*d;return f<a?a:f>o?o:f}}return r?e:Rd(t,o,i,s)}function nj(t,e){var n=1;return e?Math.min(n,t.offsetWidth/window.innerWidth):n}function rj(t,e){var n=ZR(t);if(n){var r=t.lastMousePosition,s=t.velocityTime,o=t.setup,i=t.wrapperComponent,a=o.velocityAnimation.equalToMove,c=Date.now();if(r&&s&&i){var d=nj(i,a),f=e.x-r.x,p=e.y-r.y,y=f/d,m=p/d,w=c-s,b=f*f+p*p,_=Math.sqrt(b)/w;t.velocity={velocityX:y,velocityY:m,total:_}}t.lastMousePosition=e,t.velocityTime=c}}function sj(t){var e=t.velocity,n=t.bounds,r=t.setup,s=t.wrapperComponent,o=ej(t);if(!(!o||!e||!n||!s)){var i=e.velocityX,a=e.velocityY,c=e.total,d=n.maxPositionX,f=n.minPositionX,p=n.maxPositionY,y=n.minPositionY,m=r.limitToBounds,w=r.alignmentAnimation,b=r.zoomAnimation,_=r.panning,M=_.lockAxisY,C=_.lockAxisX,T=b.animationType,k=w.sizeX,P=w.sizeY,A=w.velocityAlignmentTime,j=A,$=tj(t,c),F=Math.max($,j),X=Zr(t,k),K=Zr(t,P),O=X*s.offsetWidth/100,W=K*s.offsetHeight/100,ae=d+O,Y=f-O,ce=p+W,L=y-W,oe=t.transformState,Se=new Date().getTime();jv(t,T,F,function(J){var te=t.transformState,he=te.scale,de=te.positionX,me=te.positionY,ge=new Date().getTime()-Se,le=ge/j,ke=Av[w.animationType],je=1-ke(Math.min(1,le)),fe=1-J,ne=de+i*fe,Q=me+a*fe,ie=Sm(ne,oe.positionX,de,C,m,f,d,Y,ae,je),ye=Sm(Q,oe.positionY,me,M,m,y,p,L,ce,je);(de!==ne||me!==Q)&&t.setTransformState(he,ie,ye)})}}function wm(t,e){var n=t.transformState.scale;nr(t),Ms(t,n),window.TouchEvent!==void 0&&e instanceof TouchEvent?GR(t,e):VR(t,e)}function zf(t,e){var n=t.transformState.scale,r=t.setup,s=r.minScale,o=r.alignmentAnimation,i=o.disabled,a=o.sizeX,c=o.sizeY,d=o.animationTime,f=o.animationType,p=i||n<s||!a&&!c;if(!p){var y=JR(t);y&&ts(t,y,e??d,f)}}function xm(t,e,n){var r=t.startCoords,s=t.setup,o=s.alignmentAnimation,i=o.sizeX,a=o.sizeY;if(r){var c=QR(t,e,n),d=c.x,f=c.y,p=Zr(t,i),y=Zr(t,a);rj(t,{x:d,y:f}),Iv(t,d,f,p,y)}}function oj(t){if(t.isPanning){var e=t.setup.panning.velocityDisabled,n=t.velocity,r=t.wrapperComponent,s=t.contentComponent;t.isPanning=!1,t.animate=!1,t.animation=null;var o=r==null?void 0:r.getBoundingClientRect(),i=s==null?void 0:s.getBoundingClientRect(),a=(o==null?void 0:o.width)||0,c=(o==null?void 0:o.height)||0,d=(i==null?void 0:i.width)||0,f=(i==null?void 0:i.height)||0,p=a<d||c<f,y=!e&&n&&(n==null?void 0:n.total)>.1&&p;y?sj(t):zf(t)}}function Bf(t,e,n,r){var s=t.setup,o=s.minScale,i=s.maxScale,a=s.limitToBounds,c=Aa(qn(e,2),o,i,0,!1),d=Ms(t,c),f=_c(t,n,r,c,d,a),p=f.x,y=f.y;return{scale:c,positionX:p,positionY:y}}function Ov(t,e,n){var r=t.transformState.scale,s=t.wrapperComponent,o=t.setup,i=o.minScale,a=o.limitToBounds,c=o.zoomAnimation,d=c.disabled,f=c.animationTime,p=c.animationType,y=d||r>=i;if((r>=1||a)&&zf(t),!(y||!s||!t.mounted)){var m=e||s.offsetWidth/2,w=n||s.offsetHeight/2,b=Bf(t,i,m,w);b&&ts(t,b,f,p)}}var Gr=function(){return Gr=Object.assign||function(e){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)&&(e[o]=n[o])}return e},Gr.apply(this,arguments)};function _m(t,e,n){for(var r=0,s=e.length,o;r<s;r++)(o||!(r in e))&&(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}var ul={scale:1,positionX:0,positionY:0},ni={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}},jd={wrapperClass:"react-transform-wrapper",contentClass:"react-transform-component"},$v=function(t){var e,n,r,s;return{previousScale:(e=t.initialScale)!==null&&e!==void 0?e:ul.scale,scale:(n=t.initialScale)!==null&&n!==void 0?n:ul.scale,positionX:(r=t.initialPositionX)!==null&&r!==void 0?r:ul.positionX,positionY:(s=t.initialPositionY)!==null&&s!==void 0?s:ul.positionY}},Cm=function(t){var e=Gr({},ni);return Object.keys(t).forEach(function(n){var r=typeof t[n]<"u",s=typeof ni[n]<"u";if(s&&r){var o=Object.prototype.toString.call(ni[n]),i=o==="[object Object]",a=o==="[object Array]";i?e[n]=Gr(Gr({},ni[n]),t[n]):a?e[n]=_m(_m([],ni[n],!0),t[n]):e[n]=t[n]}}),e},Lv=function(t,e,n){var r=t.transformState.scale,s=t.wrapperComponent,o=t.setup,i=o.maxScale,a=o.minScale,c=o.zoomAnimation,d=o.smooth,f=c.size;if(!s)throw new Error("Wrapper is not mounted");var p=d?r*Math.exp(e*n):r+e*n,y=Aa(qn(p,3),a,i,f,!1);return y};function Dv(t,e,n,r,s){var o=t.wrapperComponent,i=t.transformState,a=i.scale,c=i.positionX,d=i.positionY;if(!o)return console.error("No WrapperComponent found");var f=o.offsetWidth,p=o.offsetHeight,y=(f/2-c)/a,m=(p/2-d)/a,w=Lv(t,e,n),b=Bf(t,w,y,m);if(!b)return console.error("Error during zoom event. New transformation state was not calculated.");ts(t,b,r,s)}function Fv(t,e,n,r){var s=t.setup,o=t.wrapperComponent,i=s.limitToBounds,a=$v(t.props),c=t.transformState,d=c.scale,f=c.positionX,p=c.positionY;if(o){var y=Nf(t,a.scale),m=Ma(a.positionX,a.positionY,y,i,0,0,o),w={scale:a.scale,positionX:m.x,positionY:m.y};d===a.scale&&f===a.positionX&&p===a.positionY||(r==null||r(),ts(t,w,e,n))}}function ij(t,e,n,r){var s=t.getBoundingClientRect(),o=e.getBoundingClientRect(),i=n.getBoundingClientRect(),a=o.x*r.scale,c=o.y*r.scale;return{x:(s.x-i.x+a)/r.scale,y:(s.y-i.y+c)/r.scale}}function aj(t,e,n){var r=t.wrapperComponent,s=t.contentComponent,o=t.transformState,i=t.setup,a=i.limitToBounds,c=i.minScale,d=i.maxScale;if(!r||!s)return o;var f=r.getBoundingClientRect(),p=e.getBoundingClientRect(),y=ij(e,r,s,o),m=y.x,w=y.y,b=p.width/o.scale,_=p.height/o.scale,M=r.offsetWidth/b,C=r.offsetHeight/_,T=Aa(n||Math.min(M,C),c,d,0,!1),k=(f.width-b*T)/2,P=(f.height-_*T)/2,A=(f.left-m)*T+k,j=(f.top-w)*T+P,$=Nf(t,T),F=Ma(A,j,$,a,0,0,r),X=F.x,K=F.y;return{positionX:X,positionY:K,scale:T}}var lj=function(t){return function(e,n,r){e===void 0&&(e=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Dv(t,1,e,n,r)}},cj=function(t){return function(e,n,r){e===void 0&&(e=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Dv(t,-1,e,n,r)}},uj=function(t){return function(e,n,r,s,o){s===void 0&&(s=300),o===void 0&&(o="easeOut");var i=t.transformState,a=i.positionX,c=i.positionY,d=i.scale,f=t.wrapperComponent,p=t.contentComponent,y=t.setup.disabled;if(!(y||!f||!p)){var m={positionX:Number.isNaN(e)?a:e,positionY:Number.isNaN(n)?c:n,scale:Number.isNaN(r)?d:r};ts(t,m,s,o)}}},dj=function(t){return function(e,n){e===void 0&&(e=200),n===void 0&&(n="easeOut"),Fv(t,e,n)}},fj=function(t){return function(e,n,r){n===void 0&&(n=200),r===void 0&&(r="easeOut");var s=t.transformState,o=t.wrapperComponent,i=t.contentComponent;if(o&&i){var a=Nv(e||s.scale,o,i);ts(t,a,n,r)}}},hj=function(t){return function(e,n,r,s){r===void 0&&(r=600),s===void 0&&(s="easeOut"),nr(t);var o=t.wrapperComponent,i=typeof e=="string"?document.getElementById(e):e;if(o&&i&&o.contains(i)){var a=aj(t,i,n);ts(t,a,r,s)}}},Id=function(t){return{instance:t,zoomIn:lj(t),zoomOut:cj(t),setTransform:uj(t),resetTransform:dj(t),centerView:fj(t),zoomToElement:hj(t)}},pj=function(t){return{instance:t,state:t.transformState}},jt=function(t){var e={};return Object.assign(e,pj(t)),Object.assign(e,Id(t)),e},xu=!1;function _u(){try{var t={get passive(){return xu=!0,!1}};return t}catch{return xu=!1,xu}}var dl=".".concat(jd.wrapperClass),Cc=function(t,e){return e.some(function(n){return t.matches("".concat(dl," ").concat(n,", ").concat(dl," .").concat(n,", ").concat(dl," ").concat(n," *, ").concat(dl," .").concat(n," *"))})},Od=function(t){t&&clearTimeout(t)},mj=function(t,e,n){return"translate(".concat(t,"px, ").concat(e,"px) scale(").concat(n,")")},Nv=function(t,e,n){var r=n.offsetWidth*t,s=n.offsetHeight*t,o=(e.offsetWidth-r)/2,i=(e.offsetHeight-s)/2;return{scale:t,positionX:o,positionY:i}};function gj(t){return function(e){t.forEach(function(n){typeof n=="function"?n(e):n!=null&&(n.current=e)})}}var yj=function(t,e){var n=t.setup.wheel,r=n.disabled,s=n.wheelDisabled,o=n.touchPadDisabled,i=n.excluded,a=t.isInitialized,c=t.isPanning,d=e.target,f=a&&!c&&!r&&d;if(!f||s&&!e.ctrlKey||o&&e.ctrlKey)return!1;var p=Cc(d,i);return!p},bj=function(t){return t?t.deltaY<0?1:-1:0};function vj(t,e){var n=bj(t),r=RR(e,n);return r}function zv(t,e,n){var r=e.getBoundingClientRect(),s=0,o=0;if("clientX"in t)s=(t.clientX-r.left)/n,o=(t.clientY-r.top)/n;else{var i=t.touches[0];s=(i.clientX-r.left)/n,o=(i.clientY-r.top)/n}return(Number.isNaN(s)||Number.isNaN(o))&&console.error("No mouse or touch offset found"),{x:s,y:o}}var Sj=function(t,e,n,r,s){var o=t.transformState.scale,i=t.wrapperComponent,a=t.setup,c=a.maxScale,d=a.minScale,f=a.zoomAnimation,p=a.disablePadding,y=f.size,m=f.disabled;if(!i)throw new Error("Wrapper is not mounted");var w=o+e*n,b=r?!1:!m,_=Aa(qn(w,3),d,c,y,b&&!p);return _},wj=function(t,e){var n=t.previousWheelEvent,r=t.transformState.scale,s=t.setup,o=s.maxScale,i=s.minScale;return n?r<o||r>i||Math.sign(n.deltaY)!==Math.sign(e.deltaY)||n.deltaY>0&&n.deltaY<e.deltaY||n.deltaY<0&&n.deltaY>e.deltaY||Math.sign(n.deltaY)!==Math.sign(e.deltaY):!1},xj=function(t,e){var n=t.setup.pinch,r=n.disabled,s=n.excluded,o=t.isInitialized,i=e.target,a=o&&!r&&i;if(!a)return!1;var c=Cc(i,s);return!c},_j=function(t){var e=t.setup.pinch.disabled,n=t.isInitialized,r=t.pinchStartDistance,s=n&&!e&&r;return!!s},Cj=function(t,e,n){var r=n.getBoundingClientRect(),s=t.touches,o=qn(s[0].clientX-r.left,5),i=qn(s[0].clientY-r.top,5),a=qn(s[1].clientX-r.left,5),c=qn(s[1].clientY-r.top,5);return{x:(o+a)/2/e,y:(i+c)/2/e}},Bv=function(t){return Math.sqrt(Math.pow(t.touches[0].pageX-t.touches[1].pageX,2)+Math.pow(t.touches[0].pageY-t.touches[1].pageY,2))},kj=function(t,e){var n=t.pinchStartScale,r=t.pinchStartDistance,s=t.setup,o=s.maxScale,i=s.minScale,a=s.zoomAnimation,c=s.disablePadding,d=a.size,f=a.disabled;if(!n||r===null||!e)throw new Error("Pinch touches distance was not provided");if(e<0)return t.transformState.scale;var p=e/r,y=p*n;return Aa(qn(y,2),i,o,d,!f&&!c)},Tj=160,Ej=100,Pj=function(t,e){var n=t.props,r=n.onWheelStart,s=n.onZoomStart;t.wheelStopEventTimer||(nr(t),Ot(jt(t),e,r),Ot(jt(t),e,s))},Mj=function(t,e){var n=t.props,r=n.onWheel,s=n.onZoom,o=t.contentComponent,i=t.setup,a=t.transformState,c=a.scale,d=i.limitToBounds,f=i.centerZoomedOut,p=i.zoomAnimation,y=i.wheel,m=i.disablePadding,w=i.smooth,b=p.size,_=p.disabled,M=y.step,C=y.smoothStep;if(!o)throw new Error("Component not mounted");e.preventDefault(),e.stopPropagation();var T=vj(e,null),k=w?C*Math.abs(e.deltaY):M,P=Sj(t,T,k,!e.ctrlKey);if(c!==P){var A=Ms(t,P),j=zv(e,o,c),$=_||b===0||f||m,F=d&&$,X=_c(t,j.x,j.y,P,A,F),K=X.x,O=X.y;t.previousWheelEvent=e,t.setTransformState(P,K,O),Ot(jt(t),e,r),Ot(jt(t),e,s)}},Aj=function(t,e){var n=t.props,r=n.onWheelStop,s=n.onZoomStop;Od(t.wheelAnimationTimer),t.wheelAnimationTimer=setTimeout(function(){t.mounted&&(Ov(t,e.x,e.y),t.wheelAnimationTimer=null)},Ej);var o=wj(t,e);o&&(Od(t.wheelStopEventTimer),t.wheelStopEventTimer=setTimeout(function(){t.mounted&&(t.wheelStopEventTimer=null,Ot(jt(t),e,r),Ot(jt(t),e,s))},Tj))},Wv=function(t){for(var e=0,n=0,r=0;r<2;r+=1)e+=t.touches[r].clientX,n+=t.touches[r].clientY;var s=e/2,o=n/2;return{x:s,y:o}},Rj=function(t,e){var n=Bv(e);t.pinchStartDistance=n,t.lastDistance=n,t.pinchStartScale=t.transformState.scale,t.isPanning=!1;var r=Wv(e);t.pinchLastCenterX=r.x,t.pinchLastCenterY=r.y,nr(t)},jj=function(t,e){var n=t.contentComponent,r=t.pinchStartDistance,s=t.wrapperComponent,o=t.transformState.scale,i=t.setup,a=i.limitToBounds,c=i.centerZoomedOut,d=i.zoomAnimation,f=i.alignmentAnimation,p=d.disabled,y=d.size;if(!(r===null||!n)){var m=Cj(e,o,n);if(!(!Number.isFinite(m.x)||!Number.isFinite(m.y))){var w=Bv(e),b=kj(t,w),_=Wv(e),M=_.x-(t.pinchLastCenterX||0),C=_.y-(t.pinchLastCenterY||0);if(!(b===o&&M===0&&C===0)){t.pinchLastCenterX=_.x,t.pinchLastCenterY=_.y;var T=Ms(t,b),k=p||y===0||c,P=a&&k,A=_c(t,m.x,m.y,b,T,P),j=A.x,$=A.y;t.pinchMidpoint=m,t.lastDistance=w;var F=f.sizeX,X=f.sizeY,K=Zr(t,F),O=Zr(t,X),W=j+M,ae=$+C,Y=Ma(W,ae,T,a,K,O,s),ce=Y.x,L=Y.y;t.setTransformState(b,ce,L)}}}},Ij=function(t){var e=t.pinchMidpoint;t.velocity=null,t.lastDistance=null,t.pinchMidpoint=null,t.pinchStartScale=null,t.pinchStartDistance=null,Ov(t,e==null?void 0:e.x,e==null?void 0:e.y)},Uv=function(t,e){var n=t.props.onZoomStop,r=t.setup.doubleClick.animationTime;Od(t.doubleClickStopEventTimer),t.doubleClickStopEventTimer=setTimeout(function(){t.doubleClickStopEventTimer=null,Ot(jt(t),e,n)},r)},Oj=function(t,e){var n=t.props,r=n.onZoomStart,s=n.onZoom,o=t.setup.doubleClick,i=o.animationTime,a=o.animationType;Ot(jt(t),e,r),Fv(t,i,a,function(){return Ot(jt(t),e,s)}),Uv(t,e)};function $j(t,e){return t==="toggle"?e===1?1:-1:t==="zoomOut"?-1:1}function Lj(t,e){var n=t.setup,r=t.doubleClickStopEventTimer,s=t.transformState,o=t.contentComponent,i=s.scale,a=t.props,c=a.onZoomStart,d=a.onZoom,f=n.doubleClick,p=f.disabled,y=f.mode,m=f.step,w=f.animationTime,b=f.animationType;if(!p&&!r){if(y==="reset")return Oj(t,e);if(!o)return console.error("No ContentComponent found");var _=$j(y,t.transformState.scale),M=Lv(t,_,m);if(i!==M){Ot(jt(t),e,c);var C=zv(e,o,i),T=Bf(t,M,C.x,C.y);if(!T)return console.error("Error during zoom event. New transformation state was not calculated.");Ot(jt(t),e,d),ts(t,T,w,b),Uv(t,e)}}}var Dj=function(t,e){var n=t.isInitialized,r=t.setup,s=t.wrapperComponent,o=r.doubleClick,i=o.disabled,a=o.excluded,c=e.target,d=s==null?void 0:s.contains(c),f=n&&c&&d&&!i;if(!f)return!1;var p=Cc(c,a);return!p},Fj=function(){function t(e){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,Ms(n,n.transformState.scale),n.setup=Cm(r)},this.initializeWindowEvents=function(){var r,s,o=_u(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,a=i==null?void 0:i.defaultView;(s=n.wrapperComponent)===null||s===void 0||s.addEventListener("wheel",n.onWheelPanning,o),a==null||a.addEventListener("mousedown",n.onPanningStart,o),a==null||a.addEventListener("mousemove",n.onPanning,o),a==null||a.addEventListener("mouseup",n.onPanningStop,o),i==null||i.addEventListener("mouseleave",n.clearPanning,o),a==null||a.addEventListener("keyup",n.setKeyUnPressed,o),a==null||a.addEventListener("keydown",n.setKeyPressed,o)},this.cleanupWindowEvents=function(){var r,s,o=_u(),i=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,a=i==null?void 0:i.defaultView;a==null||a.removeEventListener("mousedown",n.onPanningStart,o),a==null||a.removeEventListener("mousemove",n.onPanning,o),a==null||a.removeEventListener("mouseup",n.onPanningStop,o),i==null||i.removeEventListener("mouseleave",n.clearPanning,o),a==null||a.removeEventListener("keyup",n.setKeyUnPressed,o),a==null||a.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),nr(n),(s=n.observer)===null||s===void 0||s.disconnect()},this.handleInitializeWrapperEvents=function(r){var s=_u();r.addEventListener("wheel",n.onWheelZoom,s),r.addEventListener("dblclick",n.onDoubleClick,s),r.addEventListener("touchstart",n.onTouchPanningStart,s),r.addEventListener("touchmove",n.onTouchPanning,s),r.addEventListener("touchend",n.onTouchPanningStop,s)},this.handleInitialize=function(r,s){var o=!1,i=n.setup.centerOnInit,a=function(c,d){for(var f=0,p=c;f<p.length;f++){var y=p[f];if(y.target===d)return!0}return!1};n.applyTransformation(),n.onInitCallbacks.forEach(function(c){c(jt(n))}),n.observer=new ResizeObserver(function(c){if(a(c,r)||a(c,s))if(i&&!o){var d=s.offsetWidth,f=s.offsetHeight;(d>0||f>0)&&(o=!0,n.setCenter())}else nr(n),Ms(n,n.transformState.scale),zf(n,0)}),n.observer.observe(r),n.observer.observe(s)},this.onWheelZoom=function(r){var s=n.setup.disabled;if(!s){var o=yj(n,r);if(o){var i=n.isPressingKeys(n.setup.wheel.activationKeys);i&&(Pj(n,r),Mj(n,r),Aj(n,r))}}},this.onWheelPanning=function(r){var s=n.setup,o=s.disabled,i=s.wheel,a=s.panning;if(!(!n.wrapperComponent||!n.contentComponent||o||!i.wheelDisabled||a.disabled||!a.wheelPanning||r.ctrlKey)){r.preventDefault(),r.stopPropagation();var c=n.transformState,d=c.positionX,f=c.positionY,p=d-r.deltaX,y=f-r.deltaY,m=a.lockAxisX?d:p,w=a.lockAxisY?f:y,b=n.setup.alignmentAnimation,_=b.sizeX,M=b.sizeY,C=Zr(n,_),T=Zr(n,M);m===d&&w===f||Iv(n,m,w,C,T)}},this.onPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=bm(n,r);if(i){var a=n.isPressingKeys(n.setup.panning.activationKeys);a&&(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(),nr(n),wm(n,r),Ot(jt(n),r,o)))}}},this.onPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(!s){var i=vm(n);if(i){var a=n.isPressingKeys(n.setup.panning.activationKeys);a&&(r.preventDefault(),r.stopPropagation(),xm(n,r.clientX,r.clientY),Ot(jt(n),r,o))}}},this.onPanningStop=function(r){var s=n.props.onPanningStop;n.isPanning&&(oj(n),Ot(jt(n),r,s))},this.onPinchStart=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinchingStart,a=o.onZoomStart;if(!s){var c=xj(n,r);c&&(Rj(n,r),nr(n),Ot(jt(n),r,i),Ot(jt(n),r,a))}},this.onPinch=function(r){var s=n.setup.disabled,o=n.props,i=o.onPinching,a=o.onZoom;if(!s){var c=_j(n);c&&(r.preventDefault(),r.stopPropagation(),jj(n,r),Ot(jt(n),r,i),Ot(jt(n),r,a))}},this.onPinchStop=function(r){var s=n.props,o=s.onPinchingStop,i=s.onZoomStop;n.pinchStartScale&&(Ij(n),Ot(jt(n),r,o),Ot(jt(n),r,i))},this.onTouchPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var i=bm(n,r);if(i){var a=n.lastTouch&&+new Date-n.lastTouch<200&&r.touches.length===1;if(!a){n.lastTouch=+new Date,nr(n);var c=r.touches,d=c.length===1,f=c.length===2;d&&(nr(n),wm(n,r),Ot(jt(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 i=vm(n);if(!i)return;r.preventDefault(),r.stopPropagation();var a=r.touches[0];xm(n,a.clientX,a.clientY),Ot(jt(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=Dj(n,r);o&&Lj(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?!!r.find(function(s){return n.pressedKeys[s]}):!0},this.setTransformState=function(r,s,o){var i=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(s)&&!Number.isNaN(o)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=s,n.transformState.positionY=o,n.applyTransformation();var a=jt(n);n.onChangeCallbacks.forEach(function(c){return c(a)}),Ot(a,{scale:r,positionX:s,positionY:o},i)}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=Nv(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):mj(r,s,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,s=r.scale,o=r.positionX,i=r.positionY,a=n.handleTransformStyles(o,i,s);n.contentComponent.style.transform=a}},this.getContext=function(){return jt(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,Ms(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(r,s),n.initializeWindowEvents(),n.isInitialized=!0;var o=jt(n);Ot(o,void 0,n.props.onInit)},this.props=e,this.setup=Cm(this.props),this.transformState=$v(this.props)}return t}(),Wf=st.createContext(null),Nj=function(t,e){return typeof t=="function"?t(e):t},zj=st.forwardRef(function(t,e){var n=v.useRef(new Fj(t)).current,r=Nj(t.children,Id(n));return v.useImperativeHandle(e,function(){return Id(n)},[n]),v.useEffect(function(){n.update(t)},[n,t]),st.createElement(Wf.Provider,{value:n},r)});st.forwardRef(function(t,e){var n=v.useRef(null),r=v.useContext(Wf);return v.useEffect(function(){return r.onChange(function(s){if(n.current){var o=0,i=0;n.current.style.transform=r.handleTransformStyles(o,i,1/s.instance.transformState.scale)}})},[r]),st.createElement("div",Gr({},t,{ref:gj([n,e])}))});function Bj(t,e){e===void 0&&(e={});var n=e.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=t:s.appendChild(document.createTextNode(t))}}var Wj=`.transform-component-module_wrapper__SPB86 {
161
161
  position: relative;
162
162
  width: -moz-fit-content;
163
163
  width: fit-content;
@@ -188,42 +188,42 @@ ${a("components.mermaid.checkConsoleHint")}`,children:[l.jsxs("div",{style:{disp
188
188
  .transform-component-module_content__FBWxo img {
189
189
  pointer-events: none;
190
190
  }
191
- `,Cm={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};Dj(Fj);var Nj=function(t){var e=t.children,n=t.wrapperClass,r=n===void 0?"":n,s=t.contentClass,o=s===void 0?"":s,i=t.wrapperStyle,a=t.contentStyle,c=t.wrapperProps,d=c===void 0?{}:c,f=t.contentProps,p=f===void 0?{}:f,b=v.useContext(Wf),m=b.init,w=b.cleanupWindowEvents,y=v.useRef(null),_=v.useRef(null);return v.useEffect(function(){var M=y.current,C=_.current;return M!==null&&C!==null&&m&&(m==null||m(M,C)),function(){w==null||w()}},[]),st.createElement("div",Vr({},d,{ref:y,className:"".concat(jd.wrapperClass," ").concat(Cm.wrapper," ").concat(r),style:i}),st.createElement("div",Vr({},p,{ref:_,className:"".concat(jd.contentClass," ").concat(Cm.content," ").concat(o),style:a}),e))};class zj{async saveFile(e){const{content:n,filters:r,defaultPath:s}=e,{save:o}=await Ft(async()=>{const{save:d}=await import("./index-CmG-lq98.js").then(f=>f.a);return{save:d}},[],import.meta.url),{writeFile:i,writeTextFile:a}=await Ft(async()=>{const{writeFile:d,writeTextFile:f}=await import("./dist-js-BgoG8Mq6.js");return{writeFile:d,writeTextFile:f}},__vite__mapDeps([12,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 a(c,n):await i(c,n),{filename:Bv(c,s),success:!0}}}class Bj{async saveFile(e){const{content:n,filters:r,defaultPath:s}=e,o=Bv(s,s);if(typeof window>"u"||typeof document>"u")throw new Error("File save is unavailable in this environment");const i=Hj(r,n),a=typeof n=="string"?new Blob([n],{type:`${i};charset=utf-8`}):new Blob([n],{type:i}),c=URL.createObjectURL(a);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 Wj=new zj,Uj=new Bj,Bv=(t,e)=>t.split(/[/\\]/).pop()||e,Hj=(t,e)=>{var r,s,o;switch(((o=(s=(r=t[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 e=="string"?"text/plain":"application/octet-stream"}},qj=()=>jf()?Wj:Uj;class vr{static async saveFile(e){try{return await qj().saveFile(e)}catch(n){return{filename:"",success:!1,error:n instanceof Error?n.message:"Unknown error occurred"}}}static async saveTextFile(e,n,r){return this.saveFile({content:e,filters:n,defaultPath:r})}static async saveBinaryFile(e,n,r){return this.saveFile({content:e,filters:n,defaultPath:r})}static generateTimestampedFilename(e,n){const r=new Date().toISOString().slice(0,19).replace(/:/g,"-");return`${e}-${r}.${n}`}}Ie(vr,"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 Wv=t=>Cx.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["style"],ADD_ATTR:["dominant-baseline"]}),Kj=t=>{const r=new DOMParser().parseFromString(t,"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)}`):t},Xj=({svg:t,height:e,isLoading:n,initialScale:r,chartKey:s,className:o,style:i,token:a,containerRef:c})=>{const{t:d}=Xe(),{message:f}=En.useApp(),[p,b]=v.useState(!1),m=v.useMemo(()=>t?Wv(t).replace(/<svg([^>]*)>/,'<svg$1 style="display: block; max-width: 100%; max-height: 100%;">'):"",[t]),w=v.useCallback(async()=>{var _;if(!(!t||p)){b(!0);try{const M=Kj(t),C=new TextEncoder().encode(M),T=s?`mermaid-${s.slice(0,8)}`:"mermaid-graph",k=vr.generateTimestampedFilename(T,"svg"),P=await vr.saveBinaryFile(C,vr.FILTERS.SVG,k);if(P.success){f.success(d("chat.messageActions.savedFile",{filename:P.filename}));return}if((_=P.error)!=null&&_.toLowerCase().includes("cancel"))return;f.error(P.error||d("chat.messageActions.exportFailed"))}catch(M){const C=M instanceof Error?M.message:d("components.mermaid.exportFailed");f.error(C)}finally{b(!1)}}},[f,s,p,t,d]),y=n||!t||p;return l.jsxs("div",{ref:c,"data-mermaid-loading":n?"true":"false",className:o,style:{textAlign:"center",margin:`${a.marginXS}px 0`,padding:a.padding,background:a.colorBgContainer,borderRadius:a.borderRadiusSM,border:`1px solid ${a.colorBorder}`,overflow:"hidden",height:`${Math.min(e,800)}px`,minHeight:"300px",maxHeight:"80vh",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",willChange:"auto",contain:"layout style paint",...i},children:[n&&l.jsx("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:a.colorTextSecondary,fontSize:a.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(Lj,{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:_,zoomOut:M,resetTransform:C})=>l.jsxs(l.Fragment,{children:[l.jsxs("div",{"data-mermaid-controls":"true",style:{position:"absolute",top:8,right:8,zIndex:10,display:"flex",flexDirection:"column",gap:4,background:a.colorBgContainer,borderRadius:a.borderRadiusSM,border:`1px solid ${a.colorBorder}`,padding:4,boxShadow:a.boxShadowSecondary},children:[l.jsx(Ae,{size:"small",type:"text",onClick:()=>_(),style:{fontSize:12,padding:"2px 6px"},children:"+"}),l.jsx(Ae,{size:"small",type:"text",onClick:()=>M(),style:{fontSize:12,padding:"2px 6px"},children:"-"}),l.jsx(Ae,{size:"small",type:"text",onClick:()=>C(),style:{fontSize:10,padding:"2px 6px"},children:"⌂"}),l.jsx(fn,{title:d("components.mermaid.exportSvg"),children:l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(yo,{}),"aria-label":d("components.mermaid.downloadChartAriaLabel"),disabled:y,loading:p,onClick:()=>{w()},style:{fontSize:11,padding:"2px 6px"}})})]}),l.jsx(Nj,{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:m}})})]})})})]})};function Yj(t){let e=2166136261;for(let n=0;n<t.length;n++)e=(e^t.charCodeAt(n))*16777619;return(e>>>0).toString(36)}const Uv=(t,e)=>{const n=v.useMemo(()=>dT(t),[t]),r=v.useMemo(()=>Yj(n),[n]),[s,o]=v.useState(()=>{const i=El(r);return i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:e}});return v.useEffect(()=>{const i=El(r);o(i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:!1})},[r]),v.useEffect(()=>{if(El(r))return;let a=!1;return o(c=>({...c,isLoading:!0})),gT(r,n).then(c=>{a||o({svg:c.svg,height:c.height+80,svgWidth:c.width,svgHeight:c.height,error:"",isLoading:!1})}).catch(c=>{if(!a){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}))}}),()=>{a=!0}},[r,n,e]),{renderState:s,chartKey:r}},{useToken:Vj}=lt,nc=st.memo(({chart:t,id:e,className:n,style:r,onFix:s})=>{const{token:o}=Vj(),i=Tf(),[a,c]=v.useState(!1),[d,f]=v.useState(""),p=v.useRef(null),{renderState:b,chartKey:m}=Uv(t,!0),{svg:w,height:y,svgWidth:_,error:M,isLoading:C}=b,k=(()=>{const A=i.defaultScale;return _>1200?A*.8:_>800?A*1:A*1.2})(),P=async()=>{if(!(!s||a)){c(!0),f("");try{await s(t,M)}catch(A){const j=A instanceof Error?A.message:String(A);f(j||"Failed to fix Mermaid diagram")}finally{c(!1)}}};return M?l.jsx(TR,{error:M,className:n,style:r,token:o,onFix:s?P:void 0,isFixing:a,fixError:d}):l.jsx(Xj,{svg:w,height:y,isLoading:C,initialScale:k,chartKey:m,className:n,style:r,token:o,containerRef:p})});nc.displayName="MermaidChart";const Gj=Object.freeze(Object.defineProperty({__proto__:null,MermaidChart:nc,default:nc},Symbol.toStringTag,{value:"Module"})),Jj=t=>{const n=new DOMParser().parseFromString(t,"image/svg+xml").querySelector("svg");if(!n)return{width:0,height:0,markup:t};let r=0,s=0;const o=n.getAttribute("viewBox");if(o){const i=o.split(/[\s,]+/).map(Number);i.length===4&&i.every(a=>Number.isFinite(a))&&(r=i[2],s=i[3])}return r||(r=parseFloat(n.getAttribute("width")||"")||0),s||(s=parseFloat(n.getAttribute("height")||"")||0),r&&s&&(n.setAttribute("width",String(r)),n.setAttribute("height",String(s)),n.style.maxWidth="none"),n.getAttribute("xmlns")||n.setAttribute("xmlns","http://www.w3.org/2000/svg"),{width:r,height:s,markup:new XMLSerializer().serializeToString(n)}},Qj=t=>new Promise(e=>{const n=new Image;n.onload=()=>e(n),n.onerror=()=>e(null),n.src=t}),Zj=async(t,e=3)=>{if(typeof document>"u"||!t)return null;const{width:n,height:r,markup:s}=Jj(t);if(!n||!r)return null;const o=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`,i=await Qj(o);if(!i)return null;const a=document.createElement("canvas");a.width=Math.max(1,Math.round(n*e)),a.height=Math.max(1,Math.round(r*e));const c=a.getContext("2d");if(!c)return null;c.fillStyle="#ffffff",c.fillRect(0,0,a.width,a.height),c.drawImage(i,0,0,a.width,a.height);try{return{url:a.toDataURL("image/png"),width:n,height:r}}catch{return null}},eI=({chart:t,scale:e=3})=>{const{renderState:n}=Uv(t,!0),{svg:r,error:s}=n,[o,i]=v.useState(null),[a,c]=v.useState(!1);v.useEffect(()=>{let f=!1;if(i(null),c(!1),!!r)return Zj(r,e).then(p=>{f||(p?i({url:p.url,width:p.width}):c(!0))}),()=>{f=!0}},[r,e]);const d=!s&&!o&&!a;return s?l.jsx("pre",{"data-mermaid-loading":"false",style:{border:"1px solid #d9d9d9",borderRadius:8,padding:12,background:"#fafafa",color:"#1f1f1f",whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12},children:`Mermaid render failed: ${s}
191
+ `,km={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};Bj(Wj);var Uj=function(t){var e=t.children,n=t.wrapperClass,r=n===void 0?"":n,s=t.contentClass,o=s===void 0?"":s,i=t.wrapperStyle,a=t.contentStyle,c=t.wrapperProps,d=c===void 0?{}:c,f=t.contentProps,p=f===void 0?{}:f,y=v.useContext(Wf),m=y.init,w=y.cleanupWindowEvents,b=v.useRef(null),_=v.useRef(null);return v.useEffect(function(){var M=b.current,C=_.current;return M!==null&&C!==null&&m&&(m==null||m(M,C)),function(){w==null||w()}},[]),st.createElement("div",Gr({},d,{ref:b,className:"".concat(jd.wrapperClass," ").concat(km.wrapper," ").concat(r),style:i}),st.createElement("div",Gr({},p,{ref:_,className:"".concat(jd.contentClass," ").concat(km.content," ").concat(o),style:a}),e))};class Hj{async saveFile(e){const{content:n,filters:r,defaultPath:s}=e,{save:o}=await $t(async()=>{const{save:d}=await import("./index-CmG-lq98.js").then(f=>f.a);return{save:d}},[],import.meta.url),{writeFile:i,writeTextFile:a}=await $t(async()=>{const{writeFile:d,writeTextFile:f}=await import("./dist-js-BgoG8Mq6.js");return{writeFile:d,writeTextFile:f}},__vite__mapDeps([12,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 a(c,n):await i(c,n),{filename:Hv(c,s),success:!0}}}class qj{async saveFile(e){const{content:n,filters:r,defaultPath:s}=e,o=Hv(s,s);if(typeof window>"u"||typeof document>"u")throw new Error("File save is unavailable in this environment");const i=Yj(r,n),a=typeof n=="string"?new Blob([n],{type:`${i};charset=utf-8`}):new Blob([n],{type:i}),c=URL.createObjectURL(a);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 Kj=new Hj,Xj=new qj,Hv=(t,e)=>t.split(/[/\\]/).pop()||e,Yj=(t,e)=>{var r,s,o;switch(((o=(s=(r=t[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 e=="string"?"text/plain":"application/octet-stream"}},Vj=()=>jf()?Kj:Xj;class vr{static async saveFile(e){try{return await Vj().saveFile(e)}catch(n){return{filename:"",success:!1,error:n instanceof Error?n.message:"Unknown error occurred"}}}static async saveTextFile(e,n,r){return this.saveFile({content:e,filters:n,defaultPath:r})}static async saveBinaryFile(e,n,r){return this.saveFile({content:e,filters:n,defaultPath:r})}static generateTimestampedFilename(e,n){const r=new Date().toISOString().slice(0,19).replace(/:/g,"-");return`${e}-${r}.${n}`}}Ie(vr,"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 qv=t=>Ex.sanitize(t,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["style"],ADD_ATTR:["dominant-baseline"]}),Gj=t=>{const r=new DOMParser().parseFromString(t,"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)}`):t},Jj=({svg:t,height:e,isLoading:n,initialScale:r,chartKey:s,className:o,style:i,token:a,containerRef:c})=>{const{t:d}=Xe(),{message:f}=En.useApp(),[p,y]=v.useState(!1),m=v.useMemo(()=>t?qv(t).replace(/<svg([^>]*)>/,'<svg$1 style="display: block; max-width: 100%; max-height: 100%;">'):"",[t]),w=v.useCallback(async()=>{var _;if(!(!t||p)){y(!0);try{const M=Gj(t),C=new TextEncoder().encode(M),T=s?`mermaid-${s.slice(0,8)}`:"mermaid-graph",k=vr.generateTimestampedFilename(T,"svg"),P=await vr.saveBinaryFile(C,vr.FILTERS.SVG,k);if(P.success){f.success(d("chat.messageActions.savedFile",{filename:P.filename}));return}if((_=P.error)!=null&&_.toLowerCase().includes("cancel"))return;f.error(P.error||d("chat.messageActions.exportFailed"))}catch(M){const C=M instanceof Error?M.message:d("components.mermaid.exportFailed");f.error(C)}finally{y(!1)}}},[f,s,p,t,d]),b=n||!t||p;return l.jsxs("div",{ref:c,"data-mermaid-loading":n?"true":"false",className:o,style:{textAlign:"center",margin:`${a.marginXS}px 0`,padding:a.padding,background:a.colorBgContainer,borderRadius:a.borderRadiusSM,border:`1px solid ${a.colorBorder}`,overflow:"hidden",height:`${Math.min(e,800)}px`,minHeight:"300px",maxHeight:"80vh",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",willChange:"auto",contain:"layout style paint",...i},children:[n&&l.jsx("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:a.colorTextSecondary,fontSize:a.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(zj,{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:_,zoomOut:M,resetTransform:C})=>l.jsxs(l.Fragment,{children:[l.jsxs("div",{"data-mermaid-controls":"true",style:{position:"absolute",top:8,right:8,zIndex:10,display:"flex",flexDirection:"column",gap:4,background:a.colorBgContainer,borderRadius:a.borderRadiusSM,border:`1px solid ${a.colorBorder}`,padding:4,boxShadow:a.boxShadowSecondary},children:[l.jsx(Ae,{size:"small",type:"text",onClick:()=>_(),style:{fontSize:12,padding:"2px 6px"},children:"+"}),l.jsx(Ae,{size:"small",type:"text",onClick:()=>M(),style:{fontSize:12,padding:"2px 6px"},children:"-"}),l.jsx(Ae,{size:"small",type:"text",onClick:()=>C(),style:{fontSize:10,padding:"2px 6px"},children:"⌂"}),l.jsx(on,{title:d("components.mermaid.exportSvg"),children:l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(yo,{}),"aria-label":d("components.mermaid.downloadChartAriaLabel"),disabled:b,loading:p,onClick:()=>{w()},style:{fontSize:11,padding:"2px 6px"}})})]}),l.jsx(Uj,{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:m}})})]})})})]})};function Qj(t){let e=2166136261;for(let n=0;n<t.length;n++)e=(e^t.charCodeAt(n))*16777619;return(e>>>0).toString(36)}const Kv=(t,e)=>{const n=v.useMemo(()=>mT(t),[t]),r=v.useMemo(()=>Qj(n),[n]),[s,o]=v.useState(()=>{const i=El(r);return i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:e}});return v.useEffect(()=>{const i=El(r);o(i?{svg:i.svg,height:i.height+80,svgWidth:i.width,svgHeight:i.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:!1})},[r]),v.useEffect(()=>{if(El(r))return;let a=!1;return o(c=>({...c,isLoading:!0})),ST(r,n).then(c=>{a||o({svg:c.svg,height:c.height+80,svgWidth:c.width,svgHeight:c.height,error:"",isLoading:!1})}).catch(c=>{if(!a){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}))}}),()=>{a=!0}},[r,n,e]),{renderState:s,chartKey:r}},{useToken:Zj}=lt,nc=st.memo(({chart:t,id:e,className:n,style:r,onFix:s})=>{const{token:o}=Zj(),i=Tf(),[a,c]=v.useState(!1),[d,f]=v.useState(""),p=v.useRef(null),{renderState:y,chartKey:m}=Kv(t,!0),{svg:w,height:b,svgWidth:_,error:M,isLoading:C}=y,k=(()=>{const A=i.defaultScale;return _>1200?A*.8:_>800?A*1:A*1.2})(),P=async()=>{if(!(!s||a)){c(!0),f("");try{await s(t,M)}catch(A){const j=A instanceof Error?A.message:String(A);f(j||"Failed to fix Mermaid diagram")}finally{c(!1)}}};return M?l.jsx(AR,{error:M,className:n,style:r,token:o,onFix:s?P:void 0,isFixing:a,fixError:d}):l.jsx(Jj,{svg:w,height:b,isLoading:C,initialScale:k,chartKey:m,className:n,style:r,token:o,containerRef:p})});nc.displayName="MermaidChart";const eI=Object.freeze(Object.defineProperty({__proto__:null,MermaidChart:nc,default:nc},Symbol.toStringTag,{value:"Module"})),tI=t=>{const n=new DOMParser().parseFromString(t,"image/svg+xml").querySelector("svg");if(!n)return{width:0,height:0,markup:t};let r=0,s=0;const o=n.getAttribute("viewBox");if(o){const i=o.split(/[\s,]+/).map(Number);i.length===4&&i.every(a=>Number.isFinite(a))&&(r=i[2],s=i[3])}return r||(r=parseFloat(n.getAttribute("width")||"")||0),s||(s=parseFloat(n.getAttribute("height")||"")||0),r&&s&&(n.setAttribute("width",String(r)),n.setAttribute("height",String(s)),n.style.maxWidth="none"),n.getAttribute("xmlns")||n.setAttribute("xmlns","http://www.w3.org/2000/svg"),{width:r,height:s,markup:new XMLSerializer().serializeToString(n)}},nI=t=>new Promise(e=>{const n=new Image;n.onload=()=>e(n),n.onerror=()=>e(null),n.src=t}),rI=async(t,e=3)=>{if(typeof document>"u"||!t)return null;const{width:n,height:r,markup:s}=tI(t);if(!n||!r)return null;const o=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`,i=await nI(o);if(!i)return null;const a=document.createElement("canvas");a.width=Math.max(1,Math.round(n*e)),a.height=Math.max(1,Math.round(r*e));const c=a.getContext("2d");if(!c)return null;c.fillStyle="#ffffff",c.fillRect(0,0,a.width,a.height),c.drawImage(i,0,0,a.width,a.height);try{return{url:a.toDataURL("image/png"),width:n,height:r}}catch{return null}},sI=({chart:t,scale:e=3})=>{const{renderState:n}=Kv(t,!0),{svg:r,error:s}=n,[o,i]=v.useState(null),[a,c]=v.useState(!1);v.useEffect(()=>{let f=!1;if(i(null),c(!1),!!r)return rI(r,e).then(p=>{f||(p?i({url:p.url,width:p.width}):c(!0))}),()=>{f=!0}},[r,e]);const d=!s&&!o&&!a;return s?l.jsx("pre",{"data-mermaid-loading":"false",style:{border:"1px solid #d9d9d9",borderRadius:8,padding:12,background:"#fafafa",color:"#1f1f1f",whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12},children:`Mermaid render failed: ${s}
193
193
 
194
- ${t}`}):o?l.jsx("div",{"data-mermaid-loading":"false",style:{margin:"8px 0"},children:l.jsx("img",{src:o.url,alt:"Mermaid diagram",style:{width:o.width,maxWidth:"100%",height:"auto",display:"block"}})}):a&&r?l.jsx("div",{"data-mermaid-loading":"false",style:{margin:"8px 0"},dangerouslySetInnerHTML:{__html:Wv(r)}}):l.jsx("div",{"data-mermaid-loading":d?"true":"false",style:{minHeight:24}})},xa={'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%)"}};en.registerLanguage("javascript",Cy);en.registerLanguage("js",Cy);en.registerLanguage("typescript",ky);en.registerLanguage("ts",ky);en.registerLanguage("python",Ty);en.registerLanguage("py",Ty);en.registerLanguage("json",Sx);en.registerLanguage("bash",Jd);en.registerLanguage("shell",Jd);en.registerLanguage("sh",Jd);en.registerLanguage("css",wx);en.registerLanguage("html",Ey);en.registerLanguage("xml",Ey);en.registerLanguage("sql",xx);en.registerLanguage("yaml",Py);en.registerLanguage("yml",Py);en.registerLanguage("markdown",My);en.registerLanguage("md",My);const tI=()=>xa,nI=["javascript","js","typescript","ts","python","py","json","bash","shell","sh","css","html","xml","sql","yaml","yml","markdown","md"],rI=({language:t,codeString:e,token:n})=>{const{t:r}=Xe(),{message:s}=En.useApp(),[o,i]=v.useState(!1),a=(n==null?void 0:n.marginXS)??8,c=(n==null?void 0:n.borderRadiusSM)??4,d=(n==null?void 0:n.fontSizeSM)??12,f=(n==null?void 0:n.paddingSM)??8,p=async()=>{try{await jr(e),s.success(r("components.markdown.codeCopiedSuccess"))}catch(w){console.error("Copy failed:",w),s.error(r("components.markdown.copyFailed"))}},b=t.toLowerCase(),m=nI.includes(b);return l.jsxs(Ut,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto"},onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[l.jsx(en,{style:tI(),language:m?b:"text",PreTag:"div",customStyle:{margin:`${a}px 0`,borderRadius:c,fontSize:d,maxWidth:"100%",paddingRight:"50px"},showLineNumbers:e.split(`
195
- `).length>10,wrapLines:!0,wrapLongLines:!0,children:e}),o&&l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:p,"aria-label":r("components.markdown.copyCodeAriaLabel"),style:{position:"absolute",top:f,right:f,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:c,opacity:.8,transition:"opacity 0.2s",zIndex:10},onMouseEnter:w=>{const y=w.currentTarget;y.style.opacity="1"},onMouseLeave:w=>{const y=w.currentTarget;y.style.opacity="0.8"}})]})},sI=({codeString:t,token:e})=>{const{t:n}=Xe(),{message:r}=En.useApp(),s=(e==null?void 0:e.marginXS)??8,o=(e==null?void 0:e.borderRadiusSM)??4,i=(e==null?void 0:e.fontSizeSM)??12,a=(e==null?void 0:e.paddingSM)??8,c=(e==null?void 0:e.padding)??16;return l.jsxs(Ut,{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:i,paddingRight:"50px",margin:0},children:l.jsx("code",{style:{color:"var(--ant-color-text, #333)"},children:t})}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),"aria-label":n("components.markdown.copyCodeAriaLabel"),className:"fallback-copy-btn",onClick:async()=>{try{await jr(t),r.success(n("components.markdown.codeCopiedSuccess"))}catch(d){console.error("Copy failed:",d),r.error(n("components.markdown.copyFailed"))}},style:{position:"absolute",top:a,right:a,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}})]})},oI={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"},Hv=/^(\s*%%\{[\s\S]*?\}%%\s*)+/,iI=/^(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,aI=t=>t.replace(Hv,"").trimStart(),lI=(t,e)=>{const n=t.match(Hv);if(!n)return`${e}
194
+ ${t}`}):o?l.jsx("div",{"data-mermaid-loading":"false",style:{margin:"8px 0"},children:l.jsx("img",{src:o.url,alt:"Mermaid diagram",style:{width:o.width,maxWidth:"100%",height:"auto",display:"block"}})}):a&&r?l.jsx("div",{"data-mermaid-loading":"false",style:{margin:"8px 0"},dangerouslySetInnerHTML:{__html:qv(r)}}):l.jsx("div",{"data-mermaid-loading":d?"true":"false",style:{minHeight:24}})},xa={'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%)"}};en.registerLanguage("javascript",ky);en.registerLanguage("js",ky);en.registerLanguage("typescript",Ty);en.registerLanguage("ts",Ty);en.registerLanguage("python",Ey);en.registerLanguage("py",Ey);en.registerLanguage("json",_x);en.registerLanguage("bash",Jd);en.registerLanguage("shell",Jd);en.registerLanguage("sh",Jd);en.registerLanguage("css",Cx);en.registerLanguage("html",Py);en.registerLanguage("xml",Py);en.registerLanguage("sql",kx);en.registerLanguage("yaml",My);en.registerLanguage("yml",My);en.registerLanguage("markdown",Ay);en.registerLanguage("md",Ay);const oI=()=>xa,iI=["javascript","js","typescript","ts","python","py","json","bash","shell","sh","css","html","xml","sql","yaml","yml","markdown","md"],aI=({language:t,codeString:e,token:n})=>{const{t:r}=Xe(),{message:s}=En.useApp(),[o,i]=v.useState(!1),a=(n==null?void 0:n.marginXS)??8,c=(n==null?void 0:n.borderRadiusSM)??4,d=(n==null?void 0:n.fontSizeSM)??12,f=(n==null?void 0:n.paddingSM)??8,p=async()=>{try{await jr(e),s.success(r("components.markdown.codeCopiedSuccess"))}catch(w){console.error("Copy failed:",w),s.error(r("components.markdown.copyFailed"))}},y=t.toLowerCase(),m=iI.includes(y);return l.jsxs(Ut,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto"},onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[l.jsx(en,{style:oI(),language:m?y:"text",PreTag:"div",customStyle:{margin:`${a}px 0`,borderRadius:c,fontSize:d,maxWidth:"100%",paddingRight:"50px"},showLineNumbers:e.split(`
195
+ `).length>10,wrapLines:!0,wrapLongLines:!0,children:e}),o&&l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:p,"aria-label":r("components.markdown.copyCodeAriaLabel"),style:{position:"absolute",top:f,right:f,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:c,opacity:.8,transition:"opacity 0.2s",zIndex:10},onMouseEnter:w=>{const b=w.currentTarget;b.style.opacity="1"},onMouseLeave:w=>{const b=w.currentTarget;b.style.opacity="0.8"}})]})},lI=({codeString:t,token:e})=>{const{t:n}=Xe(),{message:r}=En.useApp(),s=(e==null?void 0:e.marginXS)??8,o=(e==null?void 0:e.borderRadiusSM)??4,i=(e==null?void 0:e.fontSizeSM)??12,a=(e==null?void 0:e.paddingSM)??8,c=(e==null?void 0:e.padding)??16;return l.jsxs(Ut,{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:i,paddingRight:"50px",margin:0},children:l.jsx("code",{style:{color:"var(--ant-color-text, #333)"},children:t})}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),"aria-label":n("components.markdown.copyCodeAriaLabel"),className:"fallback-copy-btn",onClick:async()=>{try{await jr(t),r.success(n("components.markdown.codeCopiedSuccess"))}catch(d){console.error("Copy failed:",d),r.error(n("components.markdown.copyFailed"))}},style:{position:"absolute",top:a,right:a,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}})]})},cI={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"},Xv=/^(\s*%%\{[\s\S]*?\}%%\s*)+/,uI=/^(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,dI=t=>t.replace(Xv,"").trimStart(),fI=(t,e)=>{const n=t.match(Xv);if(!n)return`${e}
196
196
  ${t}`.trim();const r=n[0].trimEnd(),s=t.slice(n[0].length).trimStart();return s?`${r}
197
197
  ${e}
198
198
  ${s}`:`${r}
199
- ${e}`},cI=(t,e)=>{const n=oI[t];if(!n)return null;const r=e.trim();if(!r)return"";if(t==="mermaid")return r;const s=aI(r);return iI.test(s)?r:lI(r,n)},qv=(t,e,n,r,s="lazy")=>{try{if(!e||typeof e!="string")return console.warn("Invalid codeString provided to renderCodeBlock:",e),null;const o=t.toLowerCase().trim(),i=cI(o,e);if(i!==null){const a=i.trim();return a?s==="static"?l.jsx(eI,{chart:a}):s==="eager"?l.jsx(nc,{chart:a,onFix:r}):l.jsx(kR,{chart:a,onFix:r}):(console.warn("Empty Mermaid chart content"),null)}return l.jsx(rI,{language:o,codeString:e,token:n})}catch(o){return console.warn("Syntax highlighting failed:",o),l.jsx(sI,{codeString:e,token:n})}},km=(t,e)=>{if(typeof window>"u")return;const n=window.open(t,"_blank","noopener,noreferrer");if(n){n.opener=null;return}((e==null?void 0:e.allowLocationFallback)??!0)&&window.location.assign(t)},Kv=async t=>{const e=t.trim();if(!e)return;if(jf()){const r=window.__TAURI_INTERNALS__,s=r==null?void 0:r.invoke;if(typeof s=="function")try{await s("plugin:shell|open",{path:e});return}catch(o){console.warn("[openExternalLink] Failed to open via Tauri shell plugin, falling back to browser open.",o)}km(e,{allowLocationFallback:!1});return}km(e)},{Text:Tm}=ut,fl=8,Cu=4,Em="4px 8px",uI="4px 8px",Xv=(t,e)=>({p:({children:n})=>l.jsx(Tm,{style:{marginBottom:fl,display:"block"},children:n}),ol:({children:n})=>l.jsx("ol",{style:{marginBottom:fl,paddingLeft:20},children:n}),ul:({children:n})=>l.jsx("ul",{style:{marginBottom:fl,paddingLeft:20},children:n}),li:({children:n})=>l.jsx("li",{style:{marginBottom:Cu},children:n}),code({className:n,children:r,inline:s,...o}){const i=/language-([^\s]+)/i.exec(n||""),a=i?i[1]:"",c=s??(!i&&!n),d=r?String(r).replace(/\n$/,""):"";return c?l.jsx(Tm,{code:!0,className:n,...o,children:r}):d.trim()?qv(a,d,void 0,e==null?void 0:e.onFixMermaid,e==null?void 0:e.mermaidRenderMode):null},blockquote:({children:n})=>l.jsx(Ut,{size:"small",styles:{body:{padding:uI}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${Cu}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(),Kv(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(Ut,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${fl}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:Em,textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),td:({children:n})=>l.jsx("td",{style:{padding:Em,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:Cu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:n,checked:r,disabled:s})}),{Text:Xt}=ut,Pm=t=>{if(!t)return;const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()},dI=({content:t,toolName:e,status:n="success",timestamp:r,defaultCollapsed:s=!0,isLoading:o,errorMessage:i})=>{const{t:a}=Xe(),{token:c}=lt.useToken(),d=v.useMemo(()=>wo(t),[t]),f=v.useMemo(()=>typeof o=="boolean"?o:d.formattedText.trim().length===0,[d.formattedText,o]),p=v.useMemo(()=>QM(d.formattedText),[d.formattedText]),b=v.useMemo(()=>ko(t),[t]),m=v.useMemo(()=>fv(t),[t]),w=v.useMemo(()=>uv(t),[t]),y=ME(w==null?void 0:w.bashId),_=v.useMemo(()=>{if(!w)return null;if(!y)return l.jsx(He,{color:"warning",icon:l.jsx(mc,{spin:!0}),style:{flexShrink:0,margin:0},children:a("components.toolSteps.runningInBackground")});if(y.status==="completed"&&(y.exitCode===0||y.exitCode==null))return l.jsx(He,{color:"success",style:{flexShrink:0,margin:0},children:`${a("components.toolSteps.backgroundCompleted")} · exit ${y.exitCode??0}`});if(y.status==="killed")return l.jsx(He,{style:{flexShrink:0,margin:0},children:a("components.toolSteps.backgroundKilled")});const k=y.exitCode!=null?` · exit ${y.exitCode}`:"";return l.jsx(He,{color:"error",style:{flexShrink:0,margin:0},children:`${a("components.toolSteps.backgroundFailed")}${k}`})},[w,y,a]),M=async()=>{try{const T=d.isJson?Ps(d.parsedJson):d.formattedText;await jr(T)}catch(T){console.error("[ToolResultCard] Failed to copy result:",T)}},C=v.useMemo(()=>{const T=t?t.slice(0,50).replace(/[^a-zA-Z0-9]/g,""):"empty";return`tool-result-${e}-${T}`},[e,t]);return l.jsx(xo,{defaultActiveKey:s?[]:[C],style:{backgroundColor:c.colorBgContainer,borderColor:c.colorBorderSecondary,borderWidth:1,borderStyle:"solid",borderRadius:c.borderRadiusLG},items:[{key:C,label:l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:c.marginSM,width:"100%"},children:[l.jsx(sf,{style:{color:c.colorPrimary,flexShrink:0}}),l.jsx(Xt,{strong:!0,style:{color:c.colorText,flexShrink:0},children:e}),l.jsx(Xt,{type:"secondary",ellipsis:!0,style:{flex:1,minWidth:0,fontSize:c.fontSizeSM},children:f?a("components.toolResult.waiting"):p}),_??l.jsx(He,{color:mv(n),style:{flexShrink:0,margin:0},children:n})]}),children:l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:c.marginSM,children:[r&&l.jsx(Xt,{type:"secondary",style:{fontSize:c.fontSizeSM},children:new Date(r).toLocaleString()}),i&&l.jsx(rr,{type:"error",message:a("components.toolResult.executionFailed"),description:i,showIcon:!0}),l.jsxs("div",{style:{position:"relative"},children:[l.jsx(fn,{title:a("components.toolResult.copyResult"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),"aria-label":a("components.toolResult.copyResult"),onClick:T=>{T.stopPropagation(),M()},style:{position:"absolute",top:8,right:8,zIndex:1}})}),f?l.jsx(Xt,{type:"secondary",children:a("components.toolResult.waitingForResult")}):m?l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:10,children:[l.jsxs(We,{wrap:!0,children:[l.jsx(He,{color:m.action==="rebuild"?"gold":"blue",children:a(`components.toolResult.memory.action.${m.action}`)}),l.jsx(He,{children:m.data.scope}),m.data.project_key?l.jsx(He,{children:m.data.project_key}):null,l.jsx(He,{color:"green",children:a("components.toolResult.memory.totalMemories",{count:m.data.total_memories})}),l.jsx(He,{color:m.data.stale_candidate_count>0?"orange":"default",children:a("components.toolResult.memory.staleCandidates",{count:m.data.stale_candidate_count})})]}),l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.coverage")}),l.jsxs("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:[Object.entries(m.data.by_type).map(([T,k])=>l.jsx(He,{children:`${T}: ${k}`},`type-${T}`)),Object.entries(m.data.by_status).map(([T,k])=>l.jsx(He,{color:"processing",children:`${T}: ${k}`},`status-${T}`))]})]}),l.jsx(Wl,{style:{margin:`${c.marginXS}px 0`}}),l.jsxs("div",{style:{display:"grid",gap:c.marginXS},children:[l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.viewsLabel")})," ",m.data.view_files.length]}),l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.indexesLabel")})," ",m.data.index_files.length]}),l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.stateFilesLabel")})," ",m.data.state_files.length]}),m.data.last_reindex_at?l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.lastReindexLabel")})," ",Pm(m.data.last_reindex_at)]}):null,m.data.last_dream_at?l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.lastDreamLabel")})," ",Pm(m.data.last_dream_at)]}):null]}),m.data.view_files.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.viewFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.view_files.map(T=>l.jsx(He,{children:T},`view-${T}`))})]}):null,m.data.index_files.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.indexFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.index_files.map(T=>l.jsx(He,{children:T},`index-${T}`))})]}):null,m.data.state_files.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.stateFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.state_files.map(T=>l.jsx(He,{children:T},`state-${T}`))})]}):null,m.data.topic_paths.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.topicPaths")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.topic_paths.map(T=>l.jsx(He,{children:T},`topic-${T}`))})]}):null,m.data.recent_ids.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.recentMemories")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.recent_ids.map(T=>l.jsx(He,{color:"default",children:T},`recent-${T}`))})]}):null]}):b?l.jsx(Sa,{payload:b,defaultViewMode:"sideBySide"}):d.isJson?l.jsx(zl,{language:"json",style:xa,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=v.memo(dI);Yv.displayName="ToolResultCard";function Vv(t,e){const n=Co(t);if(n)return`MCP ${n.serverId}: ${n.toolName}`;const r=(i,a)=>{const c=typeof i=="string"?i:String(i??"");return!c||c.length<=a?c:c.substring(0,a).trimEnd()+"…"},s={file_read:i=>`Reading: ${r(i.path||i.file_path||"file",40)}`,file_write:i=>`Writing to: ${r(i.path||i.file_path||"file",35)}`,file_edit:i=>`Editing: ${r(i.path||i.file_path||"file",40)}`,bash:i=>`Executing: ${r(i.command,40)}`,grep:i=>`Searching: "${r(i.pattern,30)}"`,glob:i=>`Finding files: "${i.pattern}"`,conclusion:i=>`Presenting conclusion: "${r(i.conclusion||i.title||"",30)}"`,read:i=>`Reading: ${i.file_path||"file"}`,write:i=>`Writing: ${i.file_path||"file"}`,edit:i=>`Editing: ${i.file_path||"file"}`,search:i=>`Searching: "${r(i.query||i.pattern,30)}"`,default:()=>`Calling ${t}`};return(s[t]||s.default)(e)}const fI=t=>Array.from(new Set(t.map(e=>wn(e)).filter(Boolean))).sort(),Gv=(t,e)=>{const n=wn(t),r=v.useMemo(()=>fI(e),[e]),s=v.useMemo(()=>sr(o=>{const i={};return n&&r.forEach(a=>{const c=Af(n,a);c&&(i[a]=o(Mf(c)))}),i}),[n,r]);return Ef(s,{store:Pf})},Jv=(t,e,n)=>{var o;const r=wn(t);return(r?((o=e[r])==null?void 0:o.output)??"":"")||n||""},hI=(t,e)=>t==null?{isJson:!1,formattedText:""}:e==="json"?{isJson:!0,formattedText:typeof t=="string"?t:Ps(t,2)}:e==="text"?{isJson:!1,formattedText:typeof t=="string"?t:Ps(t,2)}:typeof t=="string"?wo(t):{isJson:!0,formattedText:Ps(t,2),parsedJson:t},Hi=({value:t,mode:e="auto",emptyDescription:n,className:r,height:s,maxHeight:o,compact:i=!1,scrollable:a=!0,backgroundColor:c})=>{const{token:d}=lt.useToken(),f=v.useMemo(()=>hI(t,e),[t,e]),p=f.formattedText??"";if(!p.trim())return n===void 0?null:l.jsx(Qu,{description:n});const b=i?Math.max(d.fontSizeSM-1,11):d.fontSizeSM,m=["lotus-code-surface",r].filter(Boolean).join(" "),w={backgroundColor:c??(i?d.colorFillTertiary:d.colorBgContainer),borderRadius:d.borderRadiusSM,height:s,maxHeight:o,minHeight:0,display:"flex",flexDirection:"column",overflow:a?"auto":"hidden"};return f.isJson?l.jsx("div",{className:m,style:w,children:l.jsx(zl,{language:"json",style:xa,wrapLongLines:!0,customStyle:{margin:0,backgroundColor:"transparent",fontSize:b,padding:i?d.paddingXS:d.paddingSM,minHeight:s?"100%":void 0,flex:s?1:void 0},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:p})}):l.jsx("div",{className:m,style:w,children:l.jsx("pre",{style:{margin:0,padding:i?d.paddingXS:d.paddingSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:b,whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:s?"100%":void 0,flex:s?1:void 0},children:p})})},{Text:jn}=ut,pI=t=>t==null?"":t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,mI=({open:t,onClose:e,sessionId:n=null,call:r,metadata:s,initialTab:o="preview",result:i})=>{var X;const{t:a}=Xe(),{token:c}=lt.useToken(),d=Gv(n,[r.toolCallId]),f=Jv(r.toolCallId,d,r.streamingOutput),p=v.useMemo(()=>Co(r.toolName),[r.toolName]),b=v.useMemo(()=>Vv(r.toolName,r.parameters),[r.toolName,r.parameters]),m=((X=i==null?void 0:i.result)==null?void 0:X.result)??"",w=v.useMemo(()=>m.trim()?ko(m):null,[m]),y=typeof(s==null?void 0:s.summary)=="string"&&s.summary.trim().length>0?s.summary.trim():null,_=v.useMemo(()=>Ps(r.parameters,2),[r.parameters]),M=async()=>{try{await jr(_)}catch(K){console.error("[ToolStepDetailDrawer] Failed to copy parameters:",K)}},C=v.useMemo(()=>f!=null&&f.trim()?{label:a("components.toolCall.liveOutput"),value:f,mode:"auto"}:!w&&m.trim()?{label:a("components.toolSteps.result"),value:m,mode:"auto"}:Object.keys(r.parameters).length>0?{label:a("components.toolSteps.parameters"),value:r.parameters,mode:"json"}:null,[r.parameters,w,f,m,a]),T=v.useMemo(()=>{const K=["path","file_path","command","pattern","query","limit"];return Object.entries(r.parameters).sort((ae,Y)=>{const ce=K.indexOf(ae[0]),L=K.indexOf(Y[0]);return ce!==-1&&L!==-1?ce-L:ce!==-1?-1:L!==-1?1:0}).slice(0,3)},[r.parameters]),k=!!(f!=null&&f.trim()),P=v.useMemo(()=>i?i.isError?l.jsx(He,{color:"error",children:a("components.toolSteps.statusError")}):l.jsx(He,{color:"success",children:a("components.toolSteps.statusFinish")}):k?l.jsx(He,{color:"processing",children:a("components.toolSteps.statusProcess")}):l.jsx(He,{color:"default",children:a("components.toolSteps.statusWait")}),[i,k,a]),A=(s==null?void 0:s.elapsed_ms)!=null?l.jsx(He,{color:s.is_mutating?"orange":"green",children:pI(s.elapsed_ms)}):null,j=l.jsxs(We,{size:"small",children:[p?l.jsxs(l.Fragment,{children:[l.jsx(He,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:8,fontWeight:700},children:"MCP"}),l.jsx(jn,{strong:!0,children:p.toolName}),l.jsx(jn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:l.jsx(jn,{code:!0,style:{fontSize:c.fontSizeSM},children:p.serverId})})]}):l.jsx(jn,{strong:!0,children:r.toolName}),P,A]}),$=w?o:o==="diff"?"preview":o,F=[{key:"preview",label:a("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(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.intent")}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(jn,{style:{fontSize:c.fontSizeSM},children:b})})]}),y?l.jsxs("div",{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.summary",{defaultValue:"Summary"})}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(jn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:y})})]}):null,T.length>0&&l.jsxs("div",{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.keyParameters")}),l.jsx("ul",{style:{margin:`${c.marginXS}px 0 0`,paddingLeft:c.paddingLG,fontSize:c.fontSizeSM},children:T.map(([K,O])=>l.jsxs("li",{children:[l.jsx(jn,{code:!0,style:{fontSize:c.fontSizeSM},children:K}),l.jsxs(jn,{style:{fontSize:c.fontSizeSM},children:[": ",typeof O=="string"?O:JSON.stringify(O)]})]},K))})]})]}),l.jsxs("div",{style:{marginTop:c.marginSM,display:"flex",flexDirection:"column",gap:c.marginXS,flex:1,minHeight:0},children:[i!=null&&i.images&&i.images.length>0?l.jsx("div",{style:{flexShrink:0,marginBottom:c.marginXS},children:l.jsx(zi.PreviewGroup,{children:l.jsx(We,{size:c.marginXS,wrap:!0,children:i.images.map(K=>l.jsx(zi,{src:K.url,alt:K.name,style:{maxHeight:360,maxWidth:"100%",objectFit:"contain",borderRadius:c.borderRadius,border:`1px solid ${c.colorBorderSecondary}`}},K.id))})})}):null,w?l.jsxs(l.Fragment,{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.fileChanges",{defaultValue:"File changes"})}),l.jsx(Sa,{payload:w,defaultViewMode:"unified",maxHeight:340})]}):C?l.jsxs(l.Fragment,{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:C.label}),l.jsx(Hi,{value:C.value,mode:C.mode,height:"100%",scrollable:!0,emptyDescription:a("components.toolSteps.noResult")})]}):l.jsx(Hi,{emptyDescription:a("components.toolSteps.noResult"),height:"100%",scrollable:!0})]})]})},...w?[{key:"diff",label:a("components.toolSteps.diff",{defaultValue:"Diff"}),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsx(Sa,{payload:w,defaultViewMode:"sideBySide",height:"100%"})})}]:[],{key:"parameters",label:a("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(fn,{title:a("components.toolCall.copyParameters"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),"aria-label":a("components.toolCall.copyParameters"),onClick:M,style:{position:"absolute",top:0,right:0,zIndex:1}})}),l.jsx(Hi,{value:_,mode:"json",height:"100%",scrollable:!0})]})})},{key:"result",label:a("components.toolSteps.result"),children:l.jsxs("div",{className:"lotus-tool-step-drawer-pane",children:[i!=null&&i.images&&i.images.length>0?l.jsx("div",{style:{flexShrink:0,marginBottom:c.marginSM},children:l.jsx(zi.PreviewGroup,{children:l.jsx(We,{size:c.marginXS,wrap:!0,children:i.images.map(K=>l.jsx(zi,{src:K.url,alt:K.name,style:{maxHeight:480,maxWidth:"100%",objectFit:"contain",borderRadius:c.borderRadius,border:`1px solid ${c.colorBorderSecondary}`}},K.id))})})}):null,l.jsx(Hi,{value:m,mode:"auto",height:"100%",scrollable:!0,emptyDescription:a("components.toolSteps.noResult")})]})}];return l.jsx(gc,{placement:"right",width:960,open:t,onClose:e,title:j,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(Gx,{defaultActiveKey:$,items:F,style:{height:"100%"}},`${r.toolCallId}:${$}`)})})},{Text:Ur}=ut,gI=1760,Qv=t=>t.status==="completed"&&(t.exitCode===0||t.exitCode==null);function yI(t,e,n,r){if(r){const{done:o}=r;return o?Qv(o)?{status:"finish",icon:l.jsx(ao,{})}:o.status==="killed"?{status:"finish",icon:l.jsx(Wy,{})}:{status:"error",icon:l.jsx(_l,{})}:{status:"process",icon:l.jsx(mc,{spin:!0})}}return t?t.isError?{status:"error",icon:l.jsx(_l,{})}:{status:"finish",icon:l.jsx(ao,{})}:n==="error"?{status:"error",icon:l.jsx(_l,{})}:n==="completed"?{status:"finish",icon:l.jsx(ao,{})}:!!!(e!=null&&e.trim())&&n!=="running"?{status:"wait",icon:l.jsx(Rs,{})}:{status:"process",icon:l.jsx(po,{spin:!0})}}function bI(t,e){if(!t.backgroundBash)return null;const n=t.backgroundDone??null;if(!n)return l.jsx(He,{color:"warning",icon:l.jsx(mc,{spin:!0}),style:{margin:0},children:e("components.toolSteps.runningInBackground")});if(Qv(n))return l.jsx(He,{color:"success",style:{margin:0},children:`${e("components.toolSteps.backgroundCompleted")} · exit ${n.exitCode??0}`});if(n.status==="killed")return l.jsx(He,{style:{margin:0},children:e("components.toolSteps.backgroundKilled")});const r=n.exitCode!=null?` · exit ${n.exitCode}`:"";return l.jsx(He,{color:"error",style:{margin:0},children:`${e("components.toolSteps.backgroundFailed")}${r}`})}const Mm=t=>t==null?"":t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,vI=({sessionId:t=null,toolCalls:e,metadata:n,tools:r,defaultExpanded:s=!1,hideHeader:o=!1})=>{const{t:i}=Xe(),{token:a}=lt.useToken(),[c,d]=v.useState(s),f=v.useMemo(()=>r&&r.length>0?r.map(L=>{const oe=L.call.toolCalls[0];return{key:(oe==null?void 0:oe.toolCallId)||"unknown",toolName:(oe==null?void 0:oe.toolName)||"tool",parameters:(oe==null?void 0:oe.parameters)||{},streamingOutput:oe==null?void 0:oe.streamingOutput,info:{status:"wait",icon:l.jsx(Rs,{})},result:L.result,metadata:L.call.metadata??n}}):(e||[]).map(L=>({key:L.toolCallId,toolName:L.toolName,parameters:L.parameters,streamingOutput:L.streamingOutput,info:{status:"wait",icon:l.jsx(Rs,{})},result:void 0,metadata:n})),[r,e,n]),p=v.useMemo(()=>f.map(L=>L.key),[f]),b=Gv(t,p),m=v.useMemo(()=>{const L={};return f.forEach(oe=>{var J,te;const Se=((te=(J=oe.result)==null?void 0:J.result)==null?void 0:te.result)??"";L[oe.key]=Se?uv(Se):null}),L},[f]),w=v.useMemo(()=>Object.values(m).filter(L=>L!=null).map(L=>L.bashId),[m]),y=AE(w),_=v.useMemo(()=>f.map(L=>{const oe=b[L.key],Se=Jv(L.key,b,L.streamingOutput),J=m[L.key]??null,te=J?RE(J.bashId,y):null;return{...L,streamingOutput:Se,backgroundBash:J,backgroundDone:te,info:yI(L.result,Se,oe==null?void 0:oe.status,J?{done:te}:void 0)}}),[f,b,m,y]),[M,C]=v.useState(!1),[T,k]=v.useState(null),[P,A]=v.useState("preview"),j=(L,oe)=>{k(L),A(oe??"preview"),C(!0)},$=()=>{C(!1)},F=v.useMemo(()=>{const L=_.findIndex(oe=>oe.info.status!=="finish");return L===-1?Math.max(_.length-1,0):L},[_]),X=_.some(L=>L.info.status==="error"),K=_.filter(L=>L.info.status==="finish").length,O=_.length,W=Mm(n==null?void 0:n.elapsed_ms),ae=v.useMemo(()=>{const L=[i("components.toolSteps.title"),`${K}/${O}`];return W&&L.push(W),L.join(" · ")},[i,K,O,W]),Y=v.useMemo(()=>_.map(L=>{var ye,$e,qe,Ue,rt,ht,Ct;const oe=Co(L.toolName),Se=Vv(L.toolName,L.parameters),J=Se.length>60?Se.substring(0,60).trimEnd()+"…":Se,te=(($e=(ye=L.result)==null?void 0:ye.result)==null?void 0:$e.result)??"",he=te?ko(te):null,de=te?Ff(te):null,me=he?XM(he.diff.unified,{contextLines:2,maxLines:120,preserveLeadingMeta:!0}):null,ge=typeof((qe=L.metadata)==null?void 0:qe.summary)=="string"&&L.metadata.summary.trim().length>0?L.metadata.summary.trim():null,le=he?`${he.operation}(${he.file_path})`:null;let ke=null,je="text",fe=null;if(L.info.status==="process"&&((Ue=L.streamingOutput)!=null&&Ue.trim()))ke=L.streamingOutput.split(`
199
+ ${e}`},hI=(t,e)=>{const n=cI[t];if(!n)return null;const r=e.trim();if(!r)return"";if(t==="mermaid")return r;const s=dI(r);return uI.test(s)?r:fI(r,n)},Yv=(t,e,n,r,s="lazy")=>{try{if(!e||typeof e!="string")return console.warn("Invalid codeString provided to renderCodeBlock:",e),null;const o=t.toLowerCase().trim(),i=hI(o,e);if(i!==null){const a=i.trim();return a?s==="static"?l.jsx(sI,{chart:a}):s==="eager"?l.jsx(nc,{chart:a,onFix:r}):l.jsx(MR,{chart:a,onFix:r}):(console.warn("Empty Mermaid chart content"),null)}return l.jsx(aI,{language:o,codeString:e,token:n})}catch(o){return console.warn("Syntax highlighting failed:",o),l.jsx(lI,{codeString:e,token:n})}},Tm=(t,e)=>{if(typeof window>"u")return;const n=window.open(t,"_blank","noopener,noreferrer");if(n){n.opener=null;return}((e==null?void 0:e.allowLocationFallback)??!0)&&window.location.assign(t)},Vv=async t=>{const e=t.trim();if(!e)return;if(jf()){const r=window.__TAURI_INTERNALS__,s=r==null?void 0:r.invoke;if(typeof s=="function")try{await s("plugin:shell|open",{path:e});return}catch(o){console.warn("[openExternalLink] Failed to open via Tauri shell plugin, falling back to browser open.",o)}Tm(e,{allowLocationFallback:!1});return}Tm(e)},{Text:Em}=ut,fl=8,Cu=4,Pm="4px 8px",pI="4px 8px",Gv=(t,e)=>({p:({children:n})=>l.jsx(Em,{style:{marginBottom:fl,display:"block"},children:n}),ol:({children:n})=>l.jsx("ol",{style:{marginBottom:fl,paddingLeft:20},children:n}),ul:({children:n})=>l.jsx("ul",{style:{marginBottom:fl,paddingLeft:20},children:n}),li:({children:n})=>l.jsx("li",{style:{marginBottom:Cu},children:n}),code({className:n,children:r,inline:s,...o}){const i=/language-([^\s]+)/i.exec(n||""),a=i?i[1]:"",c=s??(!i&&!n),d=r?String(r).replace(/\n$/,""):"";return c?l.jsx(Em,{code:!0,className:n,...o,children:r}):d.trim()?Yv(a,d,void 0,e==null?void 0:e.onFixMermaid,e==null?void 0:e.mermaidRenderMode):null},blockquote:({children:n})=>l.jsx(Ut,{size:"small",styles:{body:{padding:pI}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${Cu}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(),Vv(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(Ut,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${fl}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:Pm,textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),td:({children:n})=>l.jsx("td",{style:{padding:Pm,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:Cu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:n,checked:r,disabled:s})}),{Text:Xt}=ut,Mm=t=>{if(!t)return;const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()},mI=({content:t,toolName:e,status:n="success",timestamp:r,defaultCollapsed:s=!0,isLoading:o,errorMessage:i})=>{const{t:a}=Xe(),{token:c}=lt.useToken(),d=v.useMemo(()=>xo(t),[t]),f=v.useMemo(()=>typeof o=="boolean"?o:d.formattedText.trim().length===0,[d.formattedText,o]),p=v.useMemo(()=>nA(d.formattedText),[d.formattedText]),y=v.useMemo(()=>To(t),[t]),m=v.useMemo(()=>mv(t),[t]),w=v.useMemo(()=>hv(t),[t]),b=IE(w==null?void 0:w.bashId),_=v.useMemo(()=>{if(!w)return null;if(!b)return l.jsx(He,{color:"warning",icon:l.jsx(mc,{spin:!0}),style:{flexShrink:0,margin:0},children:a("components.toolSteps.runningInBackground")});if(b.status==="completed"&&(b.exitCode===0||b.exitCode==null))return l.jsx(He,{color:"success",style:{flexShrink:0,margin:0},children:`${a("components.toolSteps.backgroundCompleted")} · exit ${b.exitCode??0}`});if(b.status==="killed")return l.jsx(He,{style:{flexShrink:0,margin:0},children:a("components.toolSteps.backgroundKilled")});const k=b.exitCode!=null?` · exit ${b.exitCode}`:"";return l.jsx(He,{color:"error",style:{flexShrink:0,margin:0},children:`${a("components.toolSteps.backgroundFailed")}${k}`})},[w,b,a]),M=async()=>{try{const T=d.isJson?Ps(d.parsedJson):d.formattedText;await jr(T)}catch(T){console.error("[ToolResultCard] Failed to copy result:",T)}},C=v.useMemo(()=>{const T=t?t.slice(0,50).replace(/[^a-zA-Z0-9]/g,""):"empty";return`tool-result-${e}-${T}`},[e,t]);return l.jsx(_o,{defaultActiveKey:s?[]:[C],style:{backgroundColor:c.colorBgContainer,borderColor:c.colorBorderSecondary,borderWidth:1,borderStyle:"solid",borderRadius:c.borderRadiusLG},items:[{key:C,label:l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:c.marginSM,width:"100%"},children:[l.jsx(sf,{style:{color:c.colorPrimary,flexShrink:0}}),l.jsx(Xt,{strong:!0,style:{color:c.colorText,flexShrink:0},children:e}),l.jsx(Xt,{type:"secondary",ellipsis:!0,style:{flex:1,minWidth:0,fontSize:c.fontSizeSM},children:f?a("components.toolResult.waiting"):p}),_??l.jsx(He,{color:bv(n),style:{flexShrink:0,margin:0},children:n})]}),children:l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:c.marginSM,children:[r&&l.jsx(Xt,{type:"secondary",style:{fontSize:c.fontSizeSM},children:new Date(r).toLocaleString()}),i&&l.jsx(rr,{type:"error",message:a("components.toolResult.executionFailed"),description:i,showIcon:!0}),l.jsxs("div",{style:{position:"relative"},children:[l.jsx(on,{title:a("components.toolResult.copyResult"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),"aria-label":a("components.toolResult.copyResult"),onClick:T=>{T.stopPropagation(),M()},style:{position:"absolute",top:8,right:8,zIndex:1}})}),f?l.jsx(Xt,{type:"secondary",children:a("components.toolResult.waitingForResult")}):m?l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:10,children:[l.jsxs(We,{wrap:!0,children:[l.jsx(He,{color:m.action==="rebuild"?"gold":"blue",children:a(`components.toolResult.memory.action.${m.action}`)}),l.jsx(He,{children:m.data.scope}),m.data.project_key?l.jsx(He,{children:m.data.project_key}):null,l.jsx(He,{color:"green",children:a("components.toolResult.memory.totalMemories",{count:m.data.total_memories})}),l.jsx(He,{color:m.data.stale_candidate_count>0?"orange":"default",children:a("components.toolResult.memory.staleCandidates",{count:m.data.stale_candidate_count})})]}),l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.coverage")}),l.jsxs("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:[Object.entries(m.data.by_type).map(([T,k])=>l.jsx(He,{children:`${T}: ${k}`},`type-${T}`)),Object.entries(m.data.by_status).map(([T,k])=>l.jsx(He,{color:"processing",children:`${T}: ${k}`},`status-${T}`))]})]}),l.jsx(Wl,{style:{margin:`${c.marginXS}px 0`}}),l.jsxs("div",{style:{display:"grid",gap:c.marginXS},children:[l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.viewsLabel")})," ",m.data.view_files.length]}),l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.indexesLabel")})," ",m.data.index_files.length]}),l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.stateFilesLabel")})," ",m.data.state_files.length]}),m.data.last_reindex_at?l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.lastReindexLabel")})," ",Mm(m.data.last_reindex_at)]}):null,m.data.last_dream_at?l.jsxs(Xt,{style:{fontSize:c.fontSizeSM},children:[l.jsx(Xt,{strong:!0,children:a("components.toolResult.memory.lastDreamLabel")})," ",Mm(m.data.last_dream_at)]}):null]}),m.data.view_files.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.viewFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.view_files.map(T=>l.jsx(He,{children:T},`view-${T}`))})]}):null,m.data.index_files.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.indexFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.index_files.map(T=>l.jsx(He,{children:T},`index-${T}`))})]}):null,m.data.state_files.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.stateFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.state_files.map(T=>l.jsx(He,{children:T},`state-${T}`))})]}):null,m.data.topic_paths.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.topicPaths")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.topic_paths.map(T=>l.jsx(He,{children:T},`topic-${T}`))})]}):null,m.data.recent_ids.length>0?l.jsxs("div",{children:[l.jsx(Xt,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolResult.memory.recentMemories")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:m.data.recent_ids.map(T=>l.jsx(He,{color:"default",children:T},`recent-${T}`))})]}):null]}):y?l.jsx(Sa,{payload:y,defaultViewMode:"sideBySide"}):d.isJson?l.jsx(zl,{language:"json",style:xa,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})]})]})}]})},Jv=v.memo(mI);Jv.displayName="ToolResultCard";function Qv(t,e){const n=ko(t);if(n)return`MCP ${n.serverId}: ${n.toolName}`;const r=(i,a)=>{const c=typeof i=="string"?i:String(i??"");return!c||c.length<=a?c:c.substring(0,a).trimEnd()+"…"},s={file_read:i=>`Reading: ${r(i.path||i.file_path||"file",40)}`,file_write:i=>`Writing to: ${r(i.path||i.file_path||"file",35)}`,file_edit:i=>`Editing: ${r(i.path||i.file_path||"file",40)}`,bash:i=>`Executing: ${r(i.command,40)}`,grep:i=>`Searching: "${r(i.pattern,30)}"`,glob:i=>`Finding files: "${i.pattern}"`,conclusion:i=>`Presenting conclusion: "${r(i.conclusion||i.title||"",30)}"`,read:i=>`Reading: ${i.file_path||"file"}`,write:i=>`Writing: ${i.file_path||"file"}`,edit:i=>`Editing: ${i.file_path||"file"}`,search:i=>`Searching: "${r(i.query||i.pattern,30)}"`,default:()=>`Calling ${t}`};return(s[t]||s.default)(e)}const gI=t=>Array.from(new Set(t.map(e=>wn(e)).filter(Boolean))).sort(),Zv=(t,e)=>{const n=wn(t),r=v.useMemo(()=>gI(e),[e]),s=v.useMemo(()=>sr(o=>{const i={};return n&&r.forEach(a=>{const c=Af(n,a);c&&(i[a]=o(Mf(c)))}),i}),[n,r]);return Ef(s,{store:Pf})},eS=(t,e,n)=>{var o;const r=wn(t);return(r?((o=e[r])==null?void 0:o.output)??"":"")||n||""},yI=(t,e)=>t==null?{isJson:!1,formattedText:""}:e==="json"?{isJson:!0,formattedText:typeof t=="string"?t:Ps(t,2)}:e==="text"?{isJson:!1,formattedText:typeof t=="string"?t:Ps(t,2)}:typeof t=="string"?xo(t):{isJson:!0,formattedText:Ps(t,2),parsedJson:t},qi=({value:t,mode:e="auto",emptyDescription:n,className:r,height:s,maxHeight:o,compact:i=!1,scrollable:a=!0,backgroundColor:c})=>{const{token:d}=lt.useToken(),f=v.useMemo(()=>yI(t,e),[t,e]),p=f.formattedText??"";if(!p.trim())return n===void 0?null:l.jsx(Qu,{description:n});const y=i?Math.max(d.fontSizeSM-1,11):d.fontSizeSM,m=["lotus-code-surface",r].filter(Boolean).join(" "),w={backgroundColor:c??(i?d.colorFillTertiary:d.colorBgContainer),borderRadius:d.borderRadiusSM,height:s,maxHeight:o,minHeight:0,display:"flex",flexDirection:"column",overflow:a?"auto":"hidden"};return f.isJson?l.jsx("div",{className:m,style:w,children:l.jsx(zl,{language:"json",style:xa,wrapLongLines:!0,customStyle:{margin:0,backgroundColor:"transparent",fontSize:y,padding:i?d.paddingXS:d.paddingSM,minHeight:s?"100%":void 0,flex:s?1:void 0},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:p})}):l.jsx("div",{className:m,style:w,children:l.jsx("pre",{style:{margin:0,padding:i?d.paddingXS:d.paddingSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:y,whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:s?"100%":void 0,flex:s?1:void 0},children:p})})},{Text:jn}=ut,bI=t=>t==null?"":t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,vI=({open:t,onClose:e,sessionId:n=null,call:r,metadata:s,initialTab:o="preview",result:i})=>{var X;const{t:a}=Xe(),{token:c}=lt.useToken(),d=Zv(n,[r.toolCallId]),f=eS(r.toolCallId,d,r.streamingOutput),p=v.useMemo(()=>ko(r.toolName),[r.toolName]),y=v.useMemo(()=>Qv(r.toolName,r.parameters),[r.toolName,r.parameters]),m=((X=i==null?void 0:i.result)==null?void 0:X.result)??"",w=v.useMemo(()=>m.trim()?To(m):null,[m]),b=typeof(s==null?void 0:s.summary)=="string"&&s.summary.trim().length>0?s.summary.trim():null,_=v.useMemo(()=>Ps(r.parameters,2),[r.parameters]),M=async()=>{try{await jr(_)}catch(K){console.error("[ToolStepDetailDrawer] Failed to copy parameters:",K)}},C=v.useMemo(()=>f!=null&&f.trim()?{label:a("components.toolCall.liveOutput"),value:f,mode:"auto"}:!w&&m.trim()?{label:a("components.toolSteps.result"),value:m,mode:"auto"}:Object.keys(r.parameters).length>0?{label:a("components.toolSteps.parameters"),value:r.parameters,mode:"json"}:null,[r.parameters,w,f,m,a]),T=v.useMemo(()=>{const K=["path","file_path","command","pattern","query","limit"];return Object.entries(r.parameters).sort((ae,Y)=>{const ce=K.indexOf(ae[0]),L=K.indexOf(Y[0]);return ce!==-1&&L!==-1?ce-L:ce!==-1?-1:L!==-1?1:0}).slice(0,3)},[r.parameters]),k=!!(f!=null&&f.trim()),P=v.useMemo(()=>i?i.isError?l.jsx(He,{color:"error",children:a("components.toolSteps.statusError")}):l.jsx(He,{color:"success",children:a("components.toolSteps.statusFinish")}):k?l.jsx(He,{color:"processing",children:a("components.toolSteps.statusProcess")}):l.jsx(He,{color:"default",children:a("components.toolSteps.statusWait")}),[i,k,a]),A=(s==null?void 0:s.elapsed_ms)!=null?l.jsx(He,{color:s.is_mutating?"orange":"green",children:bI(s.elapsed_ms)}):null,j=l.jsxs(We,{size:"small",children:[p?l.jsxs(l.Fragment,{children:[l.jsx(He,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:8,fontWeight:700},children:"MCP"}),l.jsx(jn,{strong:!0,children:p.toolName}),l.jsx(jn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:l.jsx(jn,{code:!0,style:{fontSize:c.fontSizeSM},children:p.serverId})})]}):l.jsx(jn,{strong:!0,children:r.toolName}),P,A]}),$=w?o:o==="diff"?"preview":o,F=[{key:"preview",label:a("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(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.intent")}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(jn,{style:{fontSize:c.fontSizeSM},children:y})})]}),b?l.jsxs("div",{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.summary",{defaultValue:"Summary"})}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(jn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:b})})]}):null,T.length>0&&l.jsxs("div",{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.keyParameters")}),l.jsx("ul",{style:{margin:`${c.marginXS}px 0 0`,paddingLeft:c.paddingLG,fontSize:c.fontSizeSM},children:T.map(([K,O])=>l.jsxs("li",{children:[l.jsx(jn,{code:!0,style:{fontSize:c.fontSizeSM},children:K}),l.jsxs(jn,{style:{fontSize:c.fontSizeSM},children:[": ",typeof O=="string"?O:JSON.stringify(O)]})]},K))})]})]}),l.jsxs("div",{style:{marginTop:c.marginSM,display:"flex",flexDirection:"column",gap:c.marginXS,flex:1,minHeight:0},children:[i!=null&&i.images&&i.images.length>0?l.jsx("div",{style:{flexShrink:0,marginBottom:c.marginXS},children:l.jsx(Bi.PreviewGroup,{children:l.jsx(We,{size:c.marginXS,wrap:!0,children:i.images.map(K=>l.jsx(Bi,{src:K.url,alt:K.name,style:{maxHeight:360,maxWidth:"100%",objectFit:"contain",borderRadius:c.borderRadius,border:`1px solid ${c.colorBorderSecondary}`}},K.id))})})}):null,w?l.jsxs(l.Fragment,{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:a("components.toolSteps.fileChanges",{defaultValue:"File changes"})}),l.jsx(Sa,{payload:w,defaultViewMode:"unified",maxHeight:340})]}):C?l.jsxs(l.Fragment,{children:[l.jsx(jn,{strong:!0,style:{fontSize:c.fontSizeSM},children:C.label}),l.jsx(qi,{value:C.value,mode:C.mode,height:"100%",scrollable:!0,emptyDescription:a("components.toolSteps.noResult")})]}):l.jsx(qi,{emptyDescription:a("components.toolSteps.noResult"),height:"100%",scrollable:!0})]})]})},...w?[{key:"diff",label:a("components.toolSteps.diff",{defaultValue:"Diff"}),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsx(Sa,{payload:w,defaultViewMode:"sideBySide",height:"100%"})})}]:[],{key:"parameters",label:a("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(on,{title:a("components.toolCall.copyParameters"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),"aria-label":a("components.toolCall.copyParameters"),onClick:M,style:{position:"absolute",top:0,right:0,zIndex:1}})}),l.jsx(qi,{value:_,mode:"json",height:"100%",scrollable:!0})]})})},{key:"result",label:a("components.toolSteps.result"),children:l.jsxs("div",{className:"lotus-tool-step-drawer-pane",children:[i!=null&&i.images&&i.images.length>0?l.jsx("div",{style:{flexShrink:0,marginBottom:c.marginSM},children:l.jsx(Bi.PreviewGroup,{children:l.jsx(We,{size:c.marginXS,wrap:!0,children:i.images.map(K=>l.jsx(Bi,{src:K.url,alt:K.name,style:{maxHeight:480,maxWidth:"100%",objectFit:"contain",borderRadius:c.borderRadius,border:`1px solid ${c.colorBorderSecondary}`}},K.id))})})}):null,l.jsx(qi,{value:m,mode:"auto",height:"100%",scrollable:!0,emptyDescription:a("components.toolSteps.noResult")})]})}];return l.jsx(gc,{placement:"right",width:960,open:t,onClose:e,title:j,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(e_,{defaultActiveKey:$,items:F,style:{height:"100%"}},`${r.toolCallId}:${$}`)})})},{Text:Hr}=ut,SI=1760,tS=t=>t.status==="completed"&&(t.exitCode===0||t.exitCode==null);function wI(t,e,n,r){if(r){const{done:o}=r;return o?tS(o)?{status:"finish",icon:l.jsx(ao,{})}:o.status==="killed"?{status:"finish",icon:l.jsx(Hy,{})}:{status:"error",icon:l.jsx(_l,{})}:{status:"process",icon:l.jsx(mc,{spin:!0})}}return t?t.isError?{status:"error",icon:l.jsx(_l,{})}:{status:"finish",icon:l.jsx(ao,{})}:n==="error"?{status:"error",icon:l.jsx(_l,{})}:n==="completed"?{status:"finish",icon:l.jsx(ao,{})}:!!!(e!=null&&e.trim())&&n!=="running"?{status:"wait",icon:l.jsx(Rs,{})}:{status:"process",icon:l.jsx(po,{spin:!0})}}function xI(t,e){if(!t.backgroundBash)return null;const n=t.backgroundDone??null;if(!n)return l.jsx(He,{color:"warning",icon:l.jsx(mc,{spin:!0}),style:{margin:0},children:e("components.toolSteps.runningInBackground")});if(tS(n))return l.jsx(He,{color:"success",style:{margin:0},children:`${e("components.toolSteps.backgroundCompleted")} · exit ${n.exitCode??0}`});if(n.status==="killed")return l.jsx(He,{style:{margin:0},children:e("components.toolSteps.backgroundKilled")});const r=n.exitCode!=null?` · exit ${n.exitCode}`:"";return l.jsx(He,{color:"error",style:{margin:0},children:`${e("components.toolSteps.backgroundFailed")}${r}`})}const Am=t=>t==null?"":t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`,_I=({sessionId:t=null,toolCalls:e,metadata:n,tools:r,defaultExpanded:s=!1,hideHeader:o=!1})=>{const{t:i}=Xe(),{token:a}=lt.useToken(),[c,d]=v.useState(s),f=v.useMemo(()=>r&&r.length>0?r.map(L=>{const oe=L.call.toolCalls[0];return{key:(oe==null?void 0:oe.toolCallId)||"unknown",toolName:(oe==null?void 0:oe.toolName)||"tool",parameters:(oe==null?void 0:oe.parameters)||{},streamingOutput:oe==null?void 0:oe.streamingOutput,info:{status:"wait",icon:l.jsx(Rs,{})},result:L.result,metadata:L.call.metadata??n}}):(e||[]).map(L=>({key:L.toolCallId,toolName:L.toolName,parameters:L.parameters,streamingOutput:L.streamingOutput,info:{status:"wait",icon:l.jsx(Rs,{})},result:void 0,metadata:n})),[r,e,n]),p=v.useMemo(()=>f.map(L=>L.key),[f]),y=Zv(t,p),m=v.useMemo(()=>{const L={};return f.forEach(oe=>{var J,te;const Se=((te=(J=oe.result)==null?void 0:J.result)==null?void 0:te.result)??"";L[oe.key]=Se?hv(Se):null}),L},[f]),w=v.useMemo(()=>Object.values(m).filter(L=>L!=null).map(L=>L.bashId),[m]),b=OE(w),_=v.useMemo(()=>f.map(L=>{const oe=y[L.key],Se=eS(L.key,y,L.streamingOutput),J=m[L.key]??null,te=J?$E(J.bashId,b):null;return{...L,streamingOutput:Se,backgroundBash:J,backgroundDone:te,info:wI(L.result,Se,oe==null?void 0:oe.status,J?{done:te}:void 0)}}),[f,y,m,b]),[M,C]=v.useState(!1),[T,k]=v.useState(null),[P,A]=v.useState("preview"),j=(L,oe)=>{k(L),A(oe??"preview"),C(!0)},$=()=>{C(!1)},F=v.useMemo(()=>{const L=_.findIndex(oe=>oe.info.status!=="finish");return L===-1?Math.max(_.length-1,0):L},[_]),X=_.some(L=>L.info.status==="error"),K=_.filter(L=>L.info.status==="finish").length,O=_.length,W=Am(n==null?void 0:n.elapsed_ms),ae=v.useMemo(()=>{const L=[i("components.toolSteps.title"),`${K}/${O}`];return W&&L.push(W),L.join(" · ")},[i,K,O,W]),Y=v.useMemo(()=>_.map(L=>{var ye,$e,qe,Ue,rt,ht,Ct;const oe=ko(L.toolName),Se=Qv(L.toolName,L.parameters),J=Se.length>60?Se.substring(0,60).trimEnd()+"…":Se,te=(($e=(ye=L.result)==null?void 0:ye.result)==null?void 0:$e.result)??"",he=te?To(te):null,de=te?Ff(te):null,me=he?JM(he.diff.unified,{contextLines:2,maxLines:120,preserveLeadingMeta:!0}):null,ge=typeof((qe=L.metadata)==null?void 0:qe.summary)=="string"&&L.metadata.summary.trim().length>0?L.metadata.summary.trim():null,le=he?`${he.operation}(${he.file_path})`:null;let ke=null,je="text",fe=null;if(L.info.status==="process"&&((Ue=L.streamingOutput)!=null&&Ue.trim()))ke=L.streamingOutput.split(`
200
200
  `).slice(-3).join(`
201
- `),je=wo(L.streamingOutput).isJson?"auto":"text",fe="live";else if(!he&&!L.backgroundBash&&(L.info.status==="finish"||L.info.status==="error")&&((ht=(rt=L.result)==null?void 0:rt.result)!=null&&ht.result)){const vt=wo(L.result.result.result),Ve=vt.formattedText.trimEnd();Ve.length>0&&(ke=Ve.split(`
201
+ `),je=xo(L.streamingOutput).isJson?"auto":"text",fe="live";else if(!he&&!L.backgroundBash&&(L.info.status==="finish"||L.info.status==="error")&&((ht=(rt=L.result)==null?void 0:rt.result)!=null&&ht.result)){const vt=xo(L.result.result.result),Ve=vt.formattedText.trimEnd();Ve.length>0&&(ke=Ve.split(`
202
202
  `).slice(0,3).join(`
203
- `),je=vt.isJson?"json":"text",fe="result")}const ne=bI(L,i),Q=L.backgroundBash?void 0:L.info.status==="process"?i("components.toolSteps.running"):((Ct=L.metadata)==null?void 0:Ct.elapsed_ms)!=null?Mm(L.metadata.elapsed_ms):void 0,ie=Q||ne?l.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:a.marginXS},children:[Q?l.jsx(Ur,{type:"secondary",style:{fontSize:a.fontSizeSM-1},children:Q}):null,ne]}):void 0;return{key:L.key,title:l.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:a.marginXS},children:oe?l.jsxs(l.Fragment,{children:[l.jsx(He,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:6,fontWeight:700,fontSize:a.fontSizeSM-1,lineHeight:"18px"},children:"MCP"}),l.jsx(Ur,{strong:!0,style:{fontSize:a.fontSizeSM},children:oe.toolName})]}):l.jsx(Ur,{strong:!0,style:{fontSize:a.fontSizeSM},children:L.toolName})}),subTitle:ie,description:l.jsxs("div",{style:{minWidth:0},children:[l.jsx(Ur,{ellipsis:!0,style:{fontSize:a.fontSizeSM,display:"block",maxWidth:"100%"},children:J}),l.jsx("div",{style:{marginTop:a.marginXXS,display:"flex",gap:a.marginXS,alignItems:"center"},children:l.jsx(Ae,{type:"link",size:"small",icon:l.jsx(af,{}),style:{padding:0,height:"auto",fontSize:a.fontSizeSM},"data-testid":`tool-step-details-${L.key}`,onClick:()=>j(L,he?"diff":"preview"),children:i("components.toolSteps.details")})}),ge&&!he&&l.jsx(Ur,{type:"secondary",style:{display:"block",marginTop:a.marginXS,fontSize:a.fontSizeSM-1},children:ge}),he&&de&&l.jsx("div",{style:{marginTop:a.marginXS,padding:a.paddingXS,borderRadius:a.borderRadiusSM,background:a.colorFillTertiary,border:`1px solid ${a.colorBorderSecondary}`},"data-testid":`tool-step-file-change-${L.key}`,children:l.jsxs("div",{style:{display:"grid",gap:a.marginXXS??2},children:[l.jsx(Ur,{strong:!0,style:{fontSize:a.fontSizeSM},ellipsis:{tooltip:le},children:le}),l.jsx(Ur,{type:"secondary",style:{fontSize:a.fontSizeSM-1},children:i("components.toolSteps.fileChangeStats",{added:de.added,removed:de.removed,defaultValue:`Added ${de.added} lines, removed ${de.removed} lines`})}),l.jsx(Sa,{payload:he,compact:!0,showHeader:!1,showViewToggle:!1,defaultViewMode:"unified",maxHeight:gI,unifiedLinesOverride:me??void 0}),l.jsx(Ae,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:a.fontSizeSM-1},onClick:()=>j(L,"diff"),children:i("components.toolSteps.viewFullDiff",{defaultValue:"View full diff"})})]})}),ke&&l.jsxs("div",{style:{marginTop:a.marginXS},children:[l.jsx(Hi,{value:ke,mode:je,className:"lotus-tool-step-preview",compact:!0,maxHeight:72,scrollable:!1,backgroundColor:"transparent"}),l.jsx(Ae,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:a.fontSizeSM-1},onClick:()=>j(L,fe==="result"?"result":"preview"),children:fe==="result"?i("components.toolSteps.viewFullResult",{defaultValue:"View full result"}):i("components.toolSteps.viewFullOutput")})]})]}),status:L.info.status,icon:L.info.icon}}),[_,a,i]),ce=o?{background:"transparent"}:{background:"var(--lotus-tool-card-bg)",borderColor:"var(--lotus-tool-card-border)",borderWidth:1,borderStyle:"solid",borderRadius:a.borderRadiusLG,overflow:"hidden"};return l.jsxs("div",{className:"lotus-tool-steps",style:ce,children:[!o&&l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:a.marginSM,padding:`${a.paddingSM}px ${a.paddingSM}px`,cursor:"pointer",userSelect:"none"},onClick:()=>d(L=>!L),"data-testid":"tool-steps-header",children:[l.jsx("span",{style:{flexShrink:0},children:c?l.jsx(go,{style:{color:a.colorTextSecondary,fontSize:a.fontSizeSM}}):l.jsx(As,{style:{color:a.colorTextSecondary,fontSize:a.fontSizeSM}})}),l.jsxs(Ur,{strong:!0,style:{fontSize:a.fontSizeSM},children:["🛠 ",ae]})]}),(o||c)&&l.jsx("div",{style:{padding:o?`${a.paddingXS}px 0 0 0`:`${a.paddingXS}px ${a.paddingSM}px ${a.paddingSM}px`},children:l.jsx(zy,{direction:"vertical",size:"small",current:F,status:X?"error":"process",items:Y})}),T&&l.jsx(mI,{open:M,onClose:$,sessionId:t,call:{toolCallId:T.key,toolName:T.toolName,parameters:T.parameters,streamingOutput:T.streamingOutput},metadata:T.metadata,initialTab:P,result:T.result})]})},Uf=v.memo(vI);Uf.displayName="ToolStepsCard";const{Text:ku}=ut,SI=({content:t,workflowName:e,parameters:n,status:r="success",timestamp:s,onRetry:o,isLoading:i,errorMessage:a})=>{const{t:c}=Xe(),{token:d}=lt.useToken(),[f,p]=v.useState(!1),b=v.useMemo(()=>wo(t),[t]),m=v.useMemo(()=>typeof i=="boolean"?i:b.formattedText.trim().length===0,[b.formattedText,i]),w=v.useMemo(()=>GM(b.formattedText),[b.formattedText]),y=b.isJson||w,_=!y||f,M=v.useMemo(()=>JM(b.formattedText),[b.formattedText]),C=v.useMemo(()=>{if(n==null)return null;if(typeof n=="string")return wo(n);try{return{isJson:!0,formattedText:JSON.stringify(n,null,2),parsedJson:n}}catch(P){return console.error("[WorkflowResultCard] Failed to stringify parameters:",P),{isJson:!1,formattedText:String(n)}}},[n]),T=async()=>{try{const P=b.isJson?Ps(b.parsedJson):b.formattedText;await jr(P)}catch(P){console.error("[WorkflowResultCard] Failed to copy content:",P)}},k=async()=>{if(C)try{const P=C.isJson?Ps(C.parsedJson):C.formattedText;await jr(P)}catch(P){console.error("[WorkflowResultCard] Failed to copy parameters:",P)}};return l.jsx(Ut,{size:"small",variant:"outlined",style:{borderRadius:d.borderRadiusLG,borderColor:d.colorBorderSecondary,backgroundColor:d.colorBgContainer},styles:{body:{padding:d.paddingMD}},children:l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:d.marginSM,children:[l.jsxs(Ce,{align:"center",justify:"space-between",children:[l.jsxs(We,{size:d.marginXS,align:"center",children:[l.jsx(Jx,{style:{color:d.colorWarning}}),l.jsx(ku,{strong:!0,children:c("components.workflowResult.userWorkflow")}),l.jsx(He,{color:d.colorWarning,children:e}),l.jsx(He,{color:mv(r),children:r})]}),l.jsxs(We,{size:"small",children:[l.jsx(fn,{title:c(f?"components.workflowResult.collapseResult":"components.workflowResult.expandResult"),children:y&&l.jsx(Ae,{type:"text",size:"small",icon:f?l.jsx(Qx,{}):l.jsx(Zx,{}),onClick:()=>p(P=>!P)})}),l.jsx(fn,{title:c("components.workflowResult.copyResult"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:T,"aria-label":c("components.workflowResult.copyContent")})}),o&&l.jsx(fn,{title:c("components.workflowResult.retryWorkflow"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(rf,{}),onClick:o,"aria-label":c("components.workflowResult.retryWorkflow")})})]})]}),s&&l.jsx(ku,{type:"secondary",style:{fontSize:d.fontSizeSM},children:new Date(s).toLocaleString()}),l.jsx(Wl,{style:{margin:`${d.marginXS}px 0`}}),a&&l.jsx(rr,{type:"error",message:c("components.workflowResult.executionFailed"),description:a,showIcon:!0,style:{marginBottom:d.marginXS}}),l.jsx(Ce,{vertical:!0,style:{width:"100%"},children:m?l.jsx(bo,{tip:c("components.workflowResult.waitingForResult")}):b.isJson?l.jsx(zl,{language:"json",style:xa,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"auto":"hidden"},children:b.formattedText}):l.jsxs("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"visible":"hidden",marginBottom:0},children:[_?b.formattedText:M.preview,!_&&M.isTruncated&&`
204
- …`]})}),C&&l.jsxs(Ce,{vertical:!0,style:{width:"100%"},children:[l.jsx(Wl,{style:{margin:`${d.marginXS}px 0`},children:l.jsxs(We,{size:"small",children:[l.jsx(ku,{strong:!0,children:c("common.parameters")}),l.jsx(fn,{title:c("components.workflowResult.copyParameters"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:k,"aria-label":c("components.workflowResult.copyParameters")})})]})}),C.isJson?l.jsx(zl,{language:"json",style:xa,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:220,overflow:"auto"},children:C.formattedText}):l.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,marginBottom:0},children:C.formattedText})]})]})})},Zv=v.memo(SI);Zv.displayName="WorkflowResultCard";const wI=t=>Array.isArray(t)?t.map(e=>String(e??"")):[],xI=({sessionId:t,question:e,options:n,allowCustom:r,toolCallId:s})=>JSON.stringify({sessionId:t??null,question:e??"",options:wI(n),allowCustom:r??!0,toolCallId:s??null}),{Text:Tu}=ut,_I=({sessionId:t,question:e,options:n,allowCustom:r,toolCallId:s,conclusionMarkdown:o,markdownComponents:i,markdownPlugins:a,rehypePlugins:c})=>{const{t:d}=Xe(),[f,p]=v.useState(null),b=v.useMemo(()=>xI({sessionId:t,question:e,options:n,allowCustom:r,toolCallId:s}),[t,e,n,r,s]),m=f===b;return v.useEffect(()=>{if(typeof window>"u")return;const w=y=>{var C;const M=((C=y.detail)==null?void 0:C.sessionId)??null;!t||M!==t||p(b)};return window.addEventListener(Td,w),()=>{window.removeEventListener(Td,w)}},[t,b]),l.jsxs(We,{direction:"vertical",size:"middle",style:{width:"100%"},children:[o?l.jsx(xr,{remarkPlugins:a,rehypePlugins:c,components:i,children:o}):null,l.jsxs("div",{children:[l.jsx(Tu,{strong:!0,children:d("components.questionDialog.questionLabel","Question")}),l.jsx("div",{style:{marginTop:8},children:l.jsx(xr,{remarkPlugins:a,rehypePlugins:c,components:i,children:e})})]}),m?l.jsx(Tu,{type:"secondary",children:d("components.questionDialog.responseSubmittedContinue","Response submitted. Continuing...")}):l.jsx(Tu,{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:er}=ut,CI=t=>{var o;if(!t)return{cleanText:t,hints:[]};const e=t.split(`
205
- `),n=[],r=[];for(const i of e){const a=i.trim(),c=a.match(/^\[User explicitly selected MCP tool:\s*(.+?)\s*\]$/);if(c){const f=c[1]??"",p=Co(f);n.push({type:"mcp",label:f,serverId:p==null?void 0:p.serverId,toolName:p==null?void 0:p.toolName});continue}const d=a.match(/^\[User explicitly selected skill:\s*(.+?)\s*\]$/);if(d){const f=d[1]??"",p=f.match(/\(ID:\s*([^)]+)\)\s*$/i),b=(o=p==null?void 0:p[1])==null?void 0:o.trim(),m=p?f.replace(/\(ID:\s*([^)]+)\)\s*$/i,"").trim():f;n.push({type:"skill",label:m||f,skillId:b});continue}r.push(i)}return{cleanText:r.join(`
206
- `).trimStart(),hints:n}},kI=({sessionId:t,message:e,messageText:n,isUserToolCall:r,formatUserToolCall:s,markdownComponents:o,markdownPlugins:i,rehypePlugins:a})=>{var w;const{t:c}=Xe(),d=y=>(y??"").trim().toLowerCase()==="conclusion";if(_v(e)){const y=e.result.result??"",_=e.isError?y||c("components.toolResult.executionFailed"):void 0,M=!_&&y.trim().length===0;if(e.result.display_preference==="Hidden")return null;const C=(e.toolName??"").trim().toLowerCase(),T=C==="conclusion",k=HM(y),P=(C==="conclusion_with_options"||C==="exitplanmode"||C==="request_permissions"||qM(y))&&!e.isError&&k,A=C==="conclusion"?dv(y):null;return P&&k?l.jsx(_I,{sessionId:t,question:k.question,options:k.options,allowCustom:k.allow_custom,toolCallId:e.toolCallId,conclusionMarkdown:KM(k.conclusion),markdownComponents:o,markdownPlugins:i,rehypePlugins:a}):A?l.jsx(We,{direction:"vertical",style:{width:"100%"},size:"small",children:l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:A})}):l.jsx(Yv,{content:y,toolName:e.toolName,status:e.isError?"error":M?"warning":"success",timestamp:e.createdAt,defaultCollapsed:!T,isLoading:M,errorMessage:_})}if(cR(e)){const y=e.content??"",_=e.status==="error"?y||c("components.workflowResult.executionFailed"):void 0,M=!_&&y.trim().length===0;return l.jsx(Zv,{content:y,workflowName:e.workflowName,parameters:e.parameters,status:M?"warning":e.status??"success",timestamp:e.createdAt,isLoading:M,errorMessage:_})}if(lR(e)){const y=e.toolCalls.filter(_=>!d(_.toolName));return y.length===0?null:l.jsx(Uf,{sessionId:t,toolCalls:y,metadata:e.metadata,defaultExpanded:!1})}if(e.isAuthError)return l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:"middle",children:[l.jsx(rr,{message:c("chat.messageCard.authRequired"),description:l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:n}),type:"error",showIcon:!0}),l.jsx(Ae,{type:"primary",icon:l.jsx(hc,{}),onClick:()=>{window.location.hash="/settings"},children:c("chat.messageCard.goToSettings")})]});const{cleanText:f,hints:p}=e.role==="user"?CI(n):{cleanText:n,hints:[]},b=e.role==="assistant"&&"type"in e&&e.type==="text"&&"metadata"in e&&typeof((w=e.metadata)==null?void 0:w.reasoning)=="string"?e.metadata.reasoning:"",m=b.trim().length>0;return e.role==="assistant"&&!n&&!m?l.jsx(er,{italic:!0,children:c("chat.messageCard.assistantThinking")}):l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:"small",children:[m?l.jsx(xo,{size:"small",defaultActiveKey:["reasoning"],items:[{key:"reasoning",label:l.jsx(er,{strong:!0,children:c("chat.messageCard.reasoning")}),children:l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:b})}]}):null,p.map((y,_)=>y.type==="mcp"?l.jsx(rr,{type:"info",showIcon:!1,message:l.jsxs(We,{wrap:!0,size:"small",children:[l.jsx(He,{color:"purple",children:"MCP"}),l.jsx(er,{strong:!0,children:c("chat.messageCard.selectedTool")}),y.serverId&&l.jsx(er,{type:"secondary",children:l.jsx(er,{code:!0,children:y.serverId})}),y.toolName&&l.jsx(er,{type:"secondary",children:l.jsx(er,{code:!0,children:y.toolName})})]}),style:{marginBottom:0}},`hint-mcp-${_}`):l.jsx(rr,{type:"success",showIcon:!1,message:l.jsxs(We,{wrap:!0,size:"small",children:[l.jsx(He,{color:"success",children:"Skill"}),l.jsx(er,{strong:!0,children:c("chat.messageCard.selected")}),y.label&&l.jsx(er,{children:y.label}),y.skillId&&l.jsx(er,{type:"secondary",children:l.jsx(er,{code:!0,children:y.skillId})})]}),style:{marginBottom:0}},`hint-skill-${_}`)),f?l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:r?s(f):f}):null]})},TI=v.memo(kI),{Text:Eu}=ut,EI=({role:t,formattedTimestamp:e,token:n})=>{const{t:r}=Xe(),s=t==="user",o=t==="assistant",i=t==="system",a=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):t.slice(0,1).toUpperCase();return l.jsxs(Ce,{align:"center",justify:"space-between",gap:n.marginXS,style:{marginBottom:n.marginXS},children:[l.jsxs(Ce,{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(Ce,{vertical:!0,gap:0,children:[l.jsx(Eu,{strong:!0,style:{fontSize:13,color:s?"var(--lotus-primary)":n.colorText,letterSpacing:"0.2px",lineHeight:1.1},children:a}),l.jsx(Eu,{type:"secondary",style:{fontSize:11,lineHeight:1.1},children:r(s?"chat.view.subTitleUser":o?"chat.view.roleAssistant":i?"chat.view.roleSystem":"chat.view.roleDefault")})]})]}),e&&l.jsx(Eu,{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:e})]})},Hf=t=>{if(t.includes("```json")){const e=t.indexOf("```json")+7,n=t.indexOf("```",e);if(n>e)return t.substring(e,n).trim()}else if(t.includes("{")){const e=t.indexOf("{"),n=t.lastIndexOf("}");if(n>e)return t.substring(e,n+1).trim()}return null},PI=t=>t==="text"||t==="plan"||t==="question"||t==="tool_call"||t==="tool_result",MI=(t,e)=>{if(e)return e;if("message_type"in t&&t.message_type){const n=t.message_type;if(PI(n))return n}if(t.role==="assistant"&&t.type==="text"){const n=typeof t.content=="string"?t.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"},AI=(t,e)=>{if(e!=="plan"||t.role!=="assistant"||t.type!=="text")return null;const n=t.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},RI=(t,e)=>{if(e!=="question"||t.role!=="assistant"||t.type!=="text")return null;const n=t.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},eS=t=>{if(t.role==="system")return typeof t.content=="string"?t.content:"";if(t.role==="user")return"type"in t&&t.type==="file_reference"?"":typeof t.content=="string"?t.content:"";if(t.role==="assistant"){if(t.type==="text")return typeof t.content=="string"?t.content:"";if(t.type==="tool_result")return(t.toolName??"").trim().toLowerCase()==="conclusion"?dv(t.result.result)??t.result.result:`Tool ${t.toolName} Result: ${t.result.result}`;if(t.type==="tool_call")return`Requesting to call ${t.toolCalls.map(e=>e.toolName).join(", ")}`;if(t.type==="workflow_result")return t.content}return""},jI=t=>{if(!t.startsWith("/"))return t;const e=t.split(" "),n=e[0].substring(1),r=e.slice(1).join(" ");if(n.startsWith("mcp__")){const o=n.slice(5),i=o.indexOf("__");if(i>0){const a=o.slice(0,i),c=o.slice(i+2);if(a&&c)return`🔌 MCP ${a}/${c}: ${r}`}}return`🔧 ${n.replace(/_/g," ").replace(/\b\w/g,o=>o.toUpperCase())}: ${r}`},II=1.4;function OI(t,e){const n=t.getBoundingClientRect();if(!n.height)return[];const r=e.height/n.height,s=t.clientWidth-48,o=[];return t.querySelectorAll("[data-mermaid-loading] img").forEach(a=>{const c=a.naturalWidth,d=a.naturalHeight;if(!c||!d)return;const f=c/d,p=parseFloat(a.style.width)||c;if(f<=II||p<=s)return;const b=a.getBoundingClientRect(),m=Math.max(0,Math.floor((b.top-n.top)*r)),w=Math.min(e.height,Math.ceil((b.bottom-n.top)*r));w>m&&o.push({topPx:m,bottomPx:w,src:a.src,ratio:f})}),o.sort((a,c)=>a.topPx-c.topPx),o}function Am(t,e,n,r,s,o){if(r-n<1)return;let i=n;for(;i<r;){const a=r-i;let c;if(a<=o.sliceHeightPx)c=a;else{const b=LI(e,i,o.sliceHeightPx);c=Math.max(1,Math.min(b,a))}const d=document.createElement("canvas");d.width=e.width,d.height=c;const f=d.getContext("2d");if(!f)throw new Error("PDF render failed (no canvas context)");f.fillStyle="#ffffff",f.fillRect(0,0,d.width,d.height),f.drawImage(e,0,i,e.width,c,0,0,e.width,c);const p=d.toDataURL("image/jpeg",.92);s(),t.addImage(p,"JPEG",o.marginPt,o.marginPt,o.contentWidthPt,c/o.pxPerPt),i+=c}}function $I(t,e,n,r){r();const s=t.internal.pageSize.getWidth()-n*2,o=t.internal.pageSize.getHeight()-n*2;let i=s,a=s/e.ratio;a>o&&(a=o,i=o*e.ratio);const c=n+(s-i)/2,d=n+(o-a)/2;t.addImage(e.src,"PNG",c,d,i,a)}function LI(t,e,n){const r=t.height-e;if(r<=n)return r;const s=e+n,o=Math.max(1,Math.floor(n*.72)),i=Math.max(8,Math.floor(n*.12)),a=Math.max(e+o,s-i),c=Math.min(t.height-1,s+i),d=DI(t,s,a,c);return d===null||d<=e?n:d-e}function DI(t,e,n,r){if(n>r||t.width<=0)return null;try{const s=t.getContext("2d",{willReadFrequently:!0});if(!s||typeof s.getImageData!="function")return null;const o=r-n+1,i=s.getImageData(0,n,t.width,o).data,a=t.width*4,c=Math.max(1,Math.floor(t.width/320)),d=245,f=16,p=.03;let b=null,m=Number.POSITIVE_INFINITY,w=Number.POSITIVE_INFINITY;for(let y=0;y<o;y+=1){let _=0,M=0;const C=y*a;for(let j=0;j<t.width;j+=c){const $=C+j*4,F=i[$+3];if(M+=1,F<=f)continue;const X=i[$],K=i[$+1],O=i[$+2];(X<d||K<d||O<d)&&(_+=1)}if(M===0)continue;const T=_/M,k=n+y,P=Math.abs(k-e);(T<m||T===m&&P<w)&&(m=T,w=P,b=k)}return b===null||m>p?null:b}catch{return null}}const Rm=t=>t.map(e=>({name:e.name,extensions:[...e.extensions]})),jm=t=>t.trim().slice(0,64).replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-")||"message",FI={},NI='[data-mermaid-loading="true"]';class tS{static async exportMessageText(e){const{format:n,content:r,sessionId:s=null,messageId:o=null,filenamePrefix:i}=e,a=i||["chat-message",s?jm(s.slice(0,8)):null,o?jm(o.slice(0,8)):null].filter(Boolean).join("-"),c=n==="markdown"?vr.generateTimestampedFilename(a,"md"):vr.generateTimestampedFilename(a,"pdf");if(n==="markdown"){const d=await vr.saveTextFile(r,Rm(vr.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 vr.saveBinaryFile(d,Rm(vr.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:Et.t("chat.messageActions.exportFailed")}}}static async generatePdfFromText(e){if(typeof document>"u")throw new Error(Et.t("chat.messageActions.pdfUnavailable"));const n=(await Ft(async()=>{const{default:m}=await import("./vendor-pdf-DwueuChS.js").then(w=>w.h);return{default:m}},__vite__mapDeps([14,4,3,2]),import.meta.url)).default,{jsPDF:r}=await Ft(async()=>{const{jsPDF:m}=await import("./vendor-pdf-DwueuChS.js").then(w=>w.j);return{jsPDF:m}},__vite__mapDeps([14,4,3,2]),import.meta.url),{createRoot:s}=await Ft(async()=>{const{createRoot:m}=await import("./main-Cdq9RMfb.js").then(w=>w.c);return{createRoot:m}},__vite__mapDeps([5,4,3,2,1,6]),import.meta.url),{flushSync:o}=await Ft(async()=>{const{flushSync:m}=await import("./vendor-antd-IzIw5qDM.js").then(w=>w.R);return{flushSync:m}},__vite__mapDeps([3,2]),import.meta.url),i=Xv(FI,{mermaidRenderMode:"static"}),a=document.createElement("div");a.style.position="fixed",a.style.left="0",a.style.top="0",a.style.right="0",a.style.bottom="0",a.style.zIndex="2147483647",a.style.background="rgba(0,0,0,0.15)",a.style.display="flex",a.style.alignItems="center",a.style.justifyContent="center",a.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",a.style.fontSize="14px",a.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=Et.t("chat.messageActions.exportingPdf"),a.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=`
203
+ `),je=vt.isJson?"json":"text",fe="result")}const ne=xI(L,i),Q=L.backgroundBash?void 0:L.info.status==="process"?i("components.toolSteps.running"):((Ct=L.metadata)==null?void 0:Ct.elapsed_ms)!=null?Am(L.metadata.elapsed_ms):void 0,ie=Q||ne?l.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:a.marginXS},children:[Q?l.jsx(Hr,{type:"secondary",style:{fontSize:a.fontSizeSM-1},children:Q}):null,ne]}):void 0;return{key:L.key,title:l.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:a.marginXS},children:oe?l.jsxs(l.Fragment,{children:[l.jsx(He,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:6,fontWeight:700,fontSize:a.fontSizeSM-1,lineHeight:"18px"},children:"MCP"}),l.jsx(Hr,{strong:!0,style:{fontSize:a.fontSizeSM},children:oe.toolName})]}):l.jsx(Hr,{strong:!0,style:{fontSize:a.fontSizeSM},children:L.toolName})}),subTitle:ie,description:l.jsxs("div",{style:{minWidth:0},children:[l.jsx(Hr,{ellipsis:!0,style:{fontSize:a.fontSizeSM,display:"block",maxWidth:"100%"},children:J}),l.jsx("div",{style:{marginTop:a.marginXXS,display:"flex",gap:a.marginXS,alignItems:"center"},children:l.jsx(Ae,{type:"link",size:"small",icon:l.jsx(af,{}),style:{padding:0,height:"auto",fontSize:a.fontSizeSM},"data-testid":`tool-step-details-${L.key}`,onClick:()=>j(L,he?"diff":"preview"),children:i("components.toolSteps.details")})}),ge&&!he&&l.jsx(Hr,{type:"secondary",style:{display:"block",marginTop:a.marginXS,fontSize:a.fontSizeSM-1},children:ge}),he&&de&&l.jsx("div",{style:{marginTop:a.marginXS,padding:a.paddingXS,borderRadius:a.borderRadiusSM,background:a.colorFillTertiary,border:`1px solid ${a.colorBorderSecondary}`},"data-testid":`tool-step-file-change-${L.key}`,children:l.jsxs("div",{style:{display:"grid",gap:a.marginXXS??2},children:[l.jsx(Hr,{strong:!0,style:{fontSize:a.fontSizeSM},ellipsis:{tooltip:le},children:le}),l.jsx(Hr,{type:"secondary",style:{fontSize:a.fontSizeSM-1},children:i("components.toolSteps.fileChangeStats",{added:de.added,removed:de.removed,defaultValue:`Added ${de.added} lines, removed ${de.removed} lines`})}),l.jsx(Sa,{payload:he,compact:!0,showHeader:!1,showViewToggle:!1,defaultViewMode:"unified",maxHeight:SI,unifiedLinesOverride:me??void 0}),l.jsx(Ae,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:a.fontSizeSM-1},onClick:()=>j(L,"diff"),children:i("components.toolSteps.viewFullDiff",{defaultValue:"View full diff"})})]})}),ke&&l.jsxs("div",{style:{marginTop:a.marginXS},children:[l.jsx(qi,{value:ke,mode:je,className:"lotus-tool-step-preview",compact:!0,maxHeight:72,scrollable:!1,backgroundColor:"transparent"}),l.jsx(Ae,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:a.fontSizeSM-1},onClick:()=>j(L,fe==="result"?"result":"preview"),children:fe==="result"?i("components.toolSteps.viewFullResult",{defaultValue:"View full result"}):i("components.toolSteps.viewFullOutput")})]})]}),status:L.info.status,icon:L.info.icon}}),[_,a,i]),ce=o?{background:"transparent"}:{background:"var(--lotus-tool-card-bg)",borderColor:"var(--lotus-tool-card-border)",borderWidth:1,borderStyle:"solid",borderRadius:a.borderRadiusLG,overflow:"hidden"};return l.jsxs("div",{className:"lotus-tool-steps",style:ce,children:[!o&&l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:a.marginSM,padding:`${a.paddingSM}px ${a.paddingSM}px`,cursor:"pointer",userSelect:"none"},onClick:()=>d(L=>!L),"data-testid":"tool-steps-header",children:[l.jsx("span",{style:{flexShrink:0},children:c?l.jsx(go,{style:{color:a.colorTextSecondary,fontSize:a.fontSizeSM}}):l.jsx(As,{style:{color:a.colorTextSecondary,fontSize:a.fontSizeSM}})}),l.jsxs(Hr,{strong:!0,style:{fontSize:a.fontSizeSM},children:["🛠 ",ae]})]}),(o||c)&&l.jsx("div",{style:{padding:o?`${a.paddingXS}px 0 0 0`:`${a.paddingXS}px ${a.paddingSM}px ${a.paddingSM}px`},children:l.jsx(Wy,{direction:"vertical",size:"small",current:F,status:X?"error":"process",items:Y})}),T&&l.jsx(vI,{open:M,onClose:$,sessionId:t,call:{toolCallId:T.key,toolName:T.toolName,parameters:T.parameters,streamingOutput:T.streamingOutput},metadata:T.metadata,initialTab:P,result:T.result})]})},Uf=v.memo(_I);Uf.displayName="ToolStepsCard";const{Text:ku}=ut,CI=({content:t,workflowName:e,parameters:n,status:r="success",timestamp:s,onRetry:o,isLoading:i,errorMessage:a})=>{const{t:c}=Xe(),{token:d}=lt.useToken(),[f,p]=v.useState(!1),y=v.useMemo(()=>xo(t),[t]),m=v.useMemo(()=>typeof i=="boolean"?i:y.formattedText.trim().length===0,[y.formattedText,i]),w=v.useMemo(()=>eA(y.formattedText),[y.formattedText]),b=y.isJson||w,_=!b||f,M=v.useMemo(()=>tA(y.formattedText),[y.formattedText]),C=v.useMemo(()=>{if(n==null)return null;if(typeof n=="string")return xo(n);try{return{isJson:!0,formattedText:JSON.stringify(n,null,2),parsedJson:n}}catch(P){return console.error("[WorkflowResultCard] Failed to stringify parameters:",P),{isJson:!1,formattedText:String(n)}}},[n]),T=async()=>{try{const P=y.isJson?Ps(y.parsedJson):y.formattedText;await jr(P)}catch(P){console.error("[WorkflowResultCard] Failed to copy content:",P)}},k=async()=>{if(C)try{const P=C.isJson?Ps(C.parsedJson):C.formattedText;await jr(P)}catch(P){console.error("[WorkflowResultCard] Failed to copy parameters:",P)}};return l.jsx(Ut,{size:"small",variant:"outlined",style:{borderRadius:d.borderRadiusLG,borderColor:d.colorBorderSecondary,backgroundColor:d.colorBgContainer},styles:{body:{padding:d.paddingMD}},children:l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:d.marginSM,children:[l.jsxs(Ce,{align:"center",justify:"space-between",children:[l.jsxs(We,{size:d.marginXS,align:"center",children:[l.jsx(t_,{style:{color:d.colorWarning}}),l.jsx(ku,{strong:!0,children:c("components.workflowResult.userWorkflow")}),l.jsx(He,{color:d.colorWarning,children:e}),l.jsx(He,{color:bv(r),children:r})]}),l.jsxs(We,{size:"small",children:[l.jsx(on,{title:c(f?"components.workflowResult.collapseResult":"components.workflowResult.expandResult"),children:b&&l.jsx(Ae,{type:"text",size:"small",icon:f?l.jsx(n_,{}):l.jsx(r_,{}),onClick:()=>p(P=>!P)})}),l.jsx(on,{title:c("components.workflowResult.copyResult"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:T,"aria-label":c("components.workflowResult.copyContent")})}),o&&l.jsx(on,{title:c("components.workflowResult.retryWorkflow"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(rf,{}),onClick:o,"aria-label":c("components.workflowResult.retryWorkflow")})})]})]}),s&&l.jsx(ku,{type:"secondary",style:{fontSize:d.fontSizeSM},children:new Date(s).toLocaleString()}),l.jsx(Wl,{style:{margin:`${d.marginXS}px 0`}}),a&&l.jsx(rr,{type:"error",message:c("components.workflowResult.executionFailed"),description:a,showIcon:!0,style:{marginBottom:d.marginXS}}),l.jsx(Ce,{vertical:!0,style:{width:"100%"},children:m?l.jsx(bo,{tip:c("components.workflowResult.waitingForResult")}):y.isJson?l.jsx(zl,{language:"json",style:xa,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"auto":"hidden"},children:y.formattedText}):l.jsxs("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"visible":"hidden",marginBottom:0},children:[_?y.formattedText:M.preview,!_&&M.isTruncated&&`
204
+ …`]})}),C&&l.jsxs(Ce,{vertical:!0,style:{width:"100%"},children:[l.jsx(Wl,{style:{margin:`${d.marginXS}px 0`},children:l.jsxs(We,{size:"small",children:[l.jsx(ku,{strong:!0,children:c("common.parameters")}),l.jsx(on,{title:c("components.workflowResult.copyParameters"),children:l.jsx(Ae,{type:"text",size:"small",icon:l.jsx(Rr,{}),onClick:k,"aria-label":c("components.workflowResult.copyParameters")})})]})}),C.isJson?l.jsx(zl,{language:"json",style:xa,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:220,overflow:"auto"},children:C.formattedText}):l.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,marginBottom:0},children:C.formattedText})]})]})})},nS=v.memo(CI);nS.displayName="WorkflowResultCard";const kI=t=>Array.isArray(t)?t.map(e=>String(e??"")):[],TI=({sessionId:t,question:e,options:n,allowCustom:r,toolCallId:s})=>JSON.stringify({sessionId:t??null,question:e??"",options:kI(n),allowCustom:r??!0,toolCallId:s??null}),{Text:Tu}=ut,EI=({sessionId:t,question:e,options:n,allowCustom:r,toolCallId:s,conclusionMarkdown:o,markdownComponents:i,markdownPlugins:a,rehypePlugins:c})=>{const{t:d}=Xe(),[f,p]=v.useState(null),y=v.useMemo(()=>TI({sessionId:t,question:e,options:n,allowCustom:r,toolCallId:s}),[t,e,n,r,s]),m=f===y;return v.useEffect(()=>{if(typeof window>"u")return;const w=b=>{var C;const M=((C=b.detail)==null?void 0:C.sessionId)??null;!t||M!==t||p(y)};return window.addEventListener(Td,w),()=>{window.removeEventListener(Td,w)}},[t,y]),l.jsxs(We,{direction:"vertical",size:"middle",style:{width:"100%"},children:[o?l.jsx(xr,{remarkPlugins:a,rehypePlugins:c,components:i,children:o}):null,l.jsxs("div",{children:[l.jsx(Tu,{strong:!0,children:d("components.questionDialog.questionLabel","Question")}),l.jsx("div",{style:{marginTop:8},children:l.jsx(xr,{remarkPlugins:a,rehypePlugins:c,components:i,children:e})})]}),m?l.jsx(Tu,{type:"secondary",children:d("components.questionDialog.responseSubmittedContinue","Response submitted. Continuing...")}):l.jsx(Tu,{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:er}=ut,PI=t=>{var o;if(!t)return{cleanText:t,hints:[]};const e=t.split(`
205
+ `),n=[],r=[];for(const i of e){const a=i.trim(),c=a.match(/^\[User explicitly selected MCP tool:\s*(.+?)\s*\]$/);if(c){const f=c[1]??"",p=ko(f);n.push({type:"mcp",label:f,serverId:p==null?void 0:p.serverId,toolName:p==null?void 0:p.toolName});continue}const d=a.match(/^\[User explicitly selected skill:\s*(.+?)\s*\]$/);if(d){const f=d[1]??"",p=f.match(/\(ID:\s*([^)]+)\)\s*$/i),y=(o=p==null?void 0:p[1])==null?void 0:o.trim(),m=p?f.replace(/\(ID:\s*([^)]+)\)\s*$/i,"").trim():f;n.push({type:"skill",label:m||f,skillId:y});continue}r.push(i)}return{cleanText:r.join(`
206
+ `).trimStart(),hints:n}},MI=({sessionId:t,message:e,messageText:n,isUserToolCall:r,formatUserToolCall:s,markdownComponents:o,markdownPlugins:i,rehypePlugins:a})=>{var w;const{t:c}=Xe(),d=b=>(b??"").trim().toLowerCase()==="conclusion";if(Tv(e)){const b=e.result.result??"",_=e.isError?b||c("components.toolResult.executionFailed"):void 0,M=!_&&b.trim().length===0;if(e.result.display_preference==="Hidden")return null;const C=(e.toolName??"").trim().toLowerCase(),T=C==="conclusion",k=YM(b),P=(C==="conclusion_with_options"||C==="exitplanmode"||C==="request_permissions"||VM(b))&&!e.isError&&k,A=C==="conclusion"?pv(b):null;return P&&k?l.jsx(EI,{sessionId:t,question:k.question,options:k.options,allowCustom:k.allow_custom,toolCallId:e.toolCallId,conclusionMarkdown:GM(k.conclusion),markdownComponents:o,markdownPlugins:i,rehypePlugins:a}):A?l.jsx(We,{direction:"vertical",style:{width:"100%"},size:"small",children:l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:A})}):l.jsx(Jv,{content:b,toolName:e.toolName,status:e.isError?"error":M?"warning":"success",timestamp:e.createdAt,defaultCollapsed:!T,isLoading:M,errorMessage:_})}if(hR(e)){const b=e.content??"",_=e.status==="error"?b||c("components.workflowResult.executionFailed"):void 0,M=!_&&b.trim().length===0;return l.jsx(nS,{content:b,workflowName:e.workflowName,parameters:e.parameters,status:M?"warning":e.status??"success",timestamp:e.createdAt,isLoading:M,errorMessage:_})}if(fR(e)){const b=e.toolCalls.filter(_=>!d(_.toolName));return b.length===0?null:l.jsx(Uf,{sessionId:t,toolCalls:b,metadata:e.metadata,defaultExpanded:!1})}if(e.isAuthError)return l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:"middle",children:[l.jsx(rr,{message:c("chat.messageCard.authRequired"),description:l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:n}),type:"error",showIcon:!0}),l.jsx(Ae,{type:"primary",icon:l.jsx(hc,{}),onClick:()=>{window.location.hash="/settings"},children:c("chat.messageCard.goToSettings")})]});const{cleanText:f,hints:p}=e.role==="user"?PI(n):{cleanText:n,hints:[]},y=e.role==="assistant"&&"type"in e&&e.type==="text"&&"metadata"in e&&typeof((w=e.metadata)==null?void 0:w.reasoning)=="string"?e.metadata.reasoning:"",m=y.trim().length>0;return e.role==="assistant"&&!n&&!m?l.jsx(er,{italic:!0,children:c("chat.messageCard.assistantThinking")}):l.jsxs(We,{direction:"vertical",style:{width:"100%"},size:"small",children:[m?l.jsx(_o,{size:"small",defaultActiveKey:["reasoning"],items:[{key:"reasoning",label:l.jsx(er,{strong:!0,children:c("chat.messageCard.reasoning")}),children:l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:y})}]}):null,p.map((b,_)=>b.type==="mcp"?l.jsx(rr,{type:"info",showIcon:!1,message:l.jsxs(We,{wrap:!0,size:"small",children:[l.jsx(He,{color:"purple",children:"MCP"}),l.jsx(er,{strong:!0,children:c("chat.messageCard.selectedTool")}),b.serverId&&l.jsx(er,{type:"secondary",children:l.jsx(er,{code:!0,children:b.serverId})}),b.toolName&&l.jsx(er,{type:"secondary",children:l.jsx(er,{code:!0,children:b.toolName})})]}),style:{marginBottom:0}},`hint-mcp-${_}`):l.jsx(rr,{type:"success",showIcon:!1,message:l.jsxs(We,{wrap:!0,size:"small",children:[l.jsx(He,{color:"success",children:"Skill"}),l.jsx(er,{strong:!0,children:c("chat.messageCard.selected")}),b.label&&l.jsx(er,{children:b.label}),b.skillId&&l.jsx(er,{type:"secondary",children:l.jsx(er,{code:!0,children:b.skillId})})]}),style:{marginBottom:0}},`hint-skill-${_}`)),f?l.jsx(xr,{remarkPlugins:i,rehypePlugins:a,components:o,children:r?s(f):f}):null]})},AI=v.memo(MI),{Text:Eu}=ut,RI=({role:t,formattedTimestamp:e,token:n})=>{const{t:r}=Xe(),s=t==="user",o=t==="assistant",i=t==="system",a=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):t.slice(0,1).toUpperCase();return l.jsxs(Ce,{align:"center",justify:"space-between",gap:n.marginXS,style:{marginBottom:n.marginXS},children:[l.jsxs(Ce,{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(Ce,{vertical:!0,gap:0,children:[l.jsx(Eu,{strong:!0,style:{fontSize:13,color:s?"var(--lotus-primary)":n.colorText,letterSpacing:"0.2px",lineHeight:1.1},children:a}),l.jsx(Eu,{type:"secondary",style:{fontSize:11,lineHeight:1.1},children:r(s?"chat.view.subTitleUser":o?"chat.view.roleAssistant":i?"chat.view.roleSystem":"chat.view.roleDefault")})]})]}),e&&l.jsx(Eu,{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:e})]})},Hf=t=>{if(t.includes("```json")){const e=t.indexOf("```json")+7,n=t.indexOf("```",e);if(n>e)return t.substring(e,n).trim()}else if(t.includes("{")){const e=t.indexOf("{"),n=t.lastIndexOf("}");if(n>e)return t.substring(e,n+1).trim()}return null},jI=t=>t==="text"||t==="plan"||t==="question"||t==="tool_call"||t==="tool_result",II=(t,e)=>{if(e)return e;if("message_type"in t&&t.message_type){const n=t.message_type;if(jI(n))return n}if(t.role==="assistant"&&t.type==="text"){const n=typeof t.content=="string"?t.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"},OI=(t,e)=>{if(e!=="plan"||t.role!=="assistant"||t.type!=="text")return null;const n=t.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},$I=(t,e)=>{if(e!=="question"||t.role!=="assistant"||t.type!=="text")return null;const n=t.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},rS=t=>{if(t.role==="system")return typeof t.content=="string"?t.content:"";if(t.role==="user")return"type"in t&&t.type==="file_reference"?"":typeof t.content=="string"?t.content:"";if(t.role==="assistant"){if(t.type==="text")return typeof t.content=="string"?t.content:"";if(t.type==="tool_result")return(t.toolName??"").trim().toLowerCase()==="conclusion"?pv(t.result.result)??t.result.result:`Tool ${t.toolName} Result: ${t.result.result}`;if(t.type==="tool_call")return`Requesting to call ${t.toolCalls.map(e=>e.toolName).join(", ")}`;if(t.type==="workflow_result")return t.content}return""},LI=t=>{if(!t.startsWith("/"))return t;const e=t.split(" "),n=e[0].substring(1),r=e.slice(1).join(" ");if(n.startsWith("mcp__")){const o=n.slice(5),i=o.indexOf("__");if(i>0){const a=o.slice(0,i),c=o.slice(i+2);if(a&&c)return`🔌 MCP ${a}/${c}: ${r}`}}return`🔧 ${n.replace(/_/g," ").replace(/\b\w/g,o=>o.toUpperCase())}: ${r}`},DI=1.4;function FI(t,e){const n=t.getBoundingClientRect();if(!n.height)return[];const r=e.height/n.height,s=t.clientWidth-48,o=[];return t.querySelectorAll("[data-mermaid-loading] img").forEach(a=>{const c=a.naturalWidth,d=a.naturalHeight;if(!c||!d)return;const f=c/d,p=parseFloat(a.style.width)||c;if(f<=DI||p<=s)return;const y=a.getBoundingClientRect(),m=Math.max(0,Math.floor((y.top-n.top)*r)),w=Math.min(e.height,Math.ceil((y.bottom-n.top)*r));w>m&&o.push({topPx:m,bottomPx:w,src:a.src,ratio:f})}),o.sort((a,c)=>a.topPx-c.topPx),o}function Rm(t,e,n,r,s,o){if(r-n<1)return;let i=n;for(;i<r;){const a=r-i;let c;if(a<=o.sliceHeightPx)c=a;else{const y=zI(e,i,o.sliceHeightPx);c=Math.max(1,Math.min(y,a))}const d=document.createElement("canvas");d.width=e.width,d.height=c;const f=d.getContext("2d");if(!f)throw new Error("PDF render failed (no canvas context)");f.fillStyle="#ffffff",f.fillRect(0,0,d.width,d.height),f.drawImage(e,0,i,e.width,c,0,0,e.width,c);const p=d.toDataURL("image/jpeg",.92);s(),t.addImage(p,"JPEG",o.marginPt,o.marginPt,o.contentWidthPt,c/o.pxPerPt),i+=c}}function NI(t,e,n,r){r();const s=t.internal.pageSize.getWidth()-n*2,o=t.internal.pageSize.getHeight()-n*2;let i=s,a=s/e.ratio;a>o&&(a=o,i=o*e.ratio);const c=n+(s-i)/2,d=n+(o-a)/2;t.addImage(e.src,"PNG",c,d,i,a)}function zI(t,e,n){const r=t.height-e;if(r<=n)return r;const s=e+n,o=Math.max(1,Math.floor(n*.72)),i=Math.max(8,Math.floor(n*.12)),a=Math.max(e+o,s-i),c=Math.min(t.height-1,s+i),d=BI(t,s,a,c);return d===null||d<=e?n:d-e}function BI(t,e,n,r){if(n>r||t.width<=0)return null;try{const s=t.getContext("2d",{willReadFrequently:!0});if(!s||typeof s.getImageData!="function")return null;const o=r-n+1,i=s.getImageData(0,n,t.width,o).data,a=t.width*4,c=Math.max(1,Math.floor(t.width/320)),d=245,f=16,p=.03;let y=null,m=Number.POSITIVE_INFINITY,w=Number.POSITIVE_INFINITY;for(let b=0;b<o;b+=1){let _=0,M=0;const C=b*a;for(let j=0;j<t.width;j+=c){const $=C+j*4,F=i[$+3];if(M+=1,F<=f)continue;const X=i[$],K=i[$+1],O=i[$+2];(X<d||K<d||O<d)&&(_+=1)}if(M===0)continue;const T=_/M,k=n+b,P=Math.abs(k-e);(T<m||T===m&&P<w)&&(m=T,w=P,y=k)}return y===null||m>p?null:y}catch{return null}}const jm=t=>t.map(e=>({name:e.name,extensions:[...e.extensions]})),Im=t=>t.trim().slice(0,64).replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-")||"message",WI={},UI='[data-mermaid-loading="true"]';class sS{static async exportMessageText(e){const{format:n,content:r,sessionId:s=null,messageId:o=null,filenamePrefix:i}=e,a=i||["chat-message",s?Im(s.slice(0,8)):null,o?Im(o.slice(0,8)):null].filter(Boolean).join("-"),c=n==="markdown"?vr.generateTimestampedFilename(a,"md"):vr.generateTimestampedFilename(a,"pdf");if(n==="markdown"){const d=await vr.saveTextFile(r,jm(vr.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 vr.saveBinaryFile(d,jm(vr.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:Et.t("chat.messageActions.exportFailed")}}}static async generatePdfFromText(e){if(typeof document>"u")throw new Error(Et.t("chat.messageActions.pdfUnavailable"));const n=(await $t(async()=>{const{default:m}=await import("./vendor-pdf-dQDE-8w8.js").then(w=>w.h);return{default:m}},__vite__mapDeps([14,4,3,2]),import.meta.url)).default,{jsPDF:r}=await $t(async()=>{const{jsPDF:m}=await import("./vendor-pdf-dQDE-8w8.js").then(w=>w.j);return{jsPDF:m}},__vite__mapDeps([14,4,3,2]),import.meta.url),{createRoot:s}=await $t(async()=>{const{createRoot:m}=await import("./main-Bm6Xue83.js").then(w=>w.c);return{createRoot:m}},__vite__mapDeps([5,4,3,2,1,6]),import.meta.url),{flushSync:o}=await $t(async()=>{const{flushSync:m}=await import("./vendor-antd-CzrN6PM8.js").then(w=>w.R);return{flushSync:m}},__vite__mapDeps([3,2]),import.meta.url),i=Gv(WI,{mermaidRenderMode:"static"}),a=document.createElement("div");a.style.position="fixed",a.style.left="0",a.style.top="0",a.style.right="0",a.style.bottom="0",a.style.zIndex="2147483647",a.style.background="rgba(0,0,0,0.15)",a.style.display="flex",a.style.alignItems="center",a.style.justifyContent="center",a.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",a.style.fontSize="14px",a.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=Et.t("chat.messageActions.exportingPdf"),a.appendChild(c);const d=document.createElement("div");d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.zIndex="2147483646",d.style.pointerEvents="none",d.style.width="794px",d.style.background="#fff",d.style.color="#111",d.style.padding="24px",d.style.boxSizing="border-box",d.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",d.style.fontSize="14px",d.style.lineHeight="1.35";const f=document.createElement("style");f.textContent=`
207
207
  .md-export { color: #111; }
208
208
  .md-export h1 { font-size: 24px; margin: 0 0 16px; }
209
209
  .md-export h2 { font-size: 18px; margin: 18px 0 12px; }
210
210
  .md-export h3 { font-size: 16px; margin: 14px 0 10px; }
211
211
  .md-export [data-mermaid-controls="true"] { display: none !important; }
212
- `,d.appendChild(f);const p=document.createElement("div");p.className="md-export",d.appendChild(p),document.body.appendChild(d),document.body.appendChild(a);const b=s(p);o(()=>{b.render(st.createElement(xr,{remarkPlugins:[Zd,ef],rehypePlugins:[Qd],components:i},e||""))});try{await this.waitForExportRenderReady(d),await this.awaitMermaidImagesDecoded(d);const m=await this.renderCanvasWithFallback(n,d),w=new r({unit:"pt",format:"a4",orientation:"portrait"}),y=24,_=w.internal.pageSize.getWidth()-y*2,M=w.internal.pageSize.getHeight()-y*2,C=m.width/_,T={marginPt:y,contentWidthPt:_,pxPerPt:C,sliceHeightPx:Math.max(1,Math.floor(M*C))};let k=0;const P=()=>{w.addPage("a4","portrait"),k+=1},A=()=>{w.addPage("a4","landscape"),k+=1},j=OI(d,m);let $=0;for(const X of j)Am(w,m,$,X.topPx,P,T),$I(w,X,y,A),$=X.bottomPx;Am(w,m,$,m.height,P,T),k>0&&w.deletePage(1);const F=w.output("arraybuffer");return new Uint8Array(F)}finally{b.unmount(),a.remove(),d.remove()}}static async waitForExportRenderReady(e){var s,o,i;await new Promise(a=>requestAnimationFrame(()=>requestAnimationFrame(()=>a()))),await((i=(o=(s=document.fonts)==null?void 0:s.ready)==null?void 0:o.catch)==null?void 0:i.call(o,()=>{}));const n=Date.now(),r=6e3;for(;Date.now()-n<r;){if(!e.querySelector(NI)){await new Promise(c=>requestAnimationFrame(()=>c()));return}await new Promise(c=>setTimeout(c,50))}}static async renderCanvasWithFallback(e,n){const r={backgroundColor:"#ffffff",scale:2,useCORS:!0,allowTaint:!0};try{const o=await e(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 e(n,{...r,foreignObjectRendering:!1});if(!s.width||!s.height)throw new Error("PDF render failed (empty canvas)");return s}static async awaitMermaidImagesDecoded(e){const n=Array.from(e.querySelectorAll("[data-mermaid-loading] img"));await Promise.all(n.map(async r=>{if(!(r.complete&&r.naturalWidth))try{await r.decode()}catch{}}))}}const zI=({messageText:t,messageId:e,currentSessionId:n,onDelete:r,onRestoreChat:s,onRestoreFilesAndChat:o,cardRef:i})=>{const{message:a}=En.useApp(),{t:c}=Xe(),[d,f]=v.useState(""),p=v.useCallback(async M=>{try{await jr(M)}catch(C){console.error("Failed to copy text:",C)}},[]),b=v.useCallback(M=>`> ${M.replace(/\n/g,`
213
- > `)}`,[]),m=v.useCallback(()=>{if(!n)return;const M=b(d||t),C=new CustomEvent("reference-text",{detail:{text:M,sessionId:n}});window.dispatchEvent(C)},[b,n,t,d]),w=v.useCallback(async M=>{var k;const C=d||t;if(!C){a.warning(c("chat.messageActions.nothingToExport"));return}const T=await tS.exportMessageText({format:M,content:C,sessionId:n??null,messageId:e??null});if(T.success)a.success(c("chat.messageActions.savedFile",{filename:T.filename}));else{if((k=T.error)!=null&&k.toLowerCase().includes("cancel"))return;a.error(T.error||c("chat.messageActions.exportFailed"))}},[a,n,e,t,d,c]),y=v.useCallback(M=>{M.preventDefault(),M.stopPropagation();const C=window.getSelection(),T=C?C.toString():"";T&&i.current&&C&&i.current.contains(C.anchorNode)?f(T):f("")},[i]);return{contextMenuItems:v.useMemo(()=>{const M=[...s&&o&&n&&e?[{key:"restore-chat",label:c("chat.messageActions.restoreChat"),icon:l.jsx(e_,{}),onClick:()=>{s()}},{key:"restore-chat-files",label:c("chat.messageActions.restoreFilesAndChat"),icon:l.jsx(t_,{}),onClick:()=>{o()}},{type:"divider"}]:[],{key:"copy",label:c("chat.messageActions.copy"),icon:l.jsx(Rr,{}),onClick:()=>{p(d||t)}},{key:"reference",label:c("chat.actions.referenceMessage"),icon:l.jsx(Ny,{}),onClick:m},{type:"divider"},{key:"export-md",label:c("chat.messageActions.exportMarkdown"),icon:l.jsx(yo,{}),onClick:()=>w("markdown")},{key:"export-pdf",label:c("chat.messageActions.exportPdf"),icon:l.jsx(yo,{}),onClick:()=>w("pdf")}];return r&&e&&M.push({key:"delete",label:c("chat.messageActions.deleteMessage"),icon:l.jsx(fc,{}),onClick:()=>r(e),danger:!0}),M},[p,w,e,t,r,s,o,m,d,n,c]),handleMouseUp:y,copyToClipboard:p,referenceMessage:m}},BI=({currentSessionId:t,updateSession:e,sendMessage:n})=>{const r=v.useCallback(async()=>{if(!t)return;const a=G.getState().chats.find(c=>c.id===t);if(a)try{e(t,{config:{...a.config,agentRole:"actor"}})}catch(c){console.error("Failed to switch to Actor role:",c)}},[t,e]),s=v.useCallback(async i=>{if(i.trim())try{await n(i.trim())}catch(a){console.error("Failed to send plan refinement:",a)}},[n]),o=v.useCallback(async i=>{if(i)try{await n(i)}catch(a){throw console.error("Failed to send answer:",a),a}},[n]);return{handleExecutePlan:r,handleRefinePlan:s,handleQuestionAnswer:o}};function Qe(t,e,n,r,s){if(typeof e=="function"?t!==e||!0:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}function re(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)}let nS=function(){const{crypto:t}=globalThis;if(t!=null&&t.randomUUID)return nS=t.randomUUID.bind(t),t.randomUUID();const e=new Uint8Array(1),n=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,r=>(+r^n()&15>>+r/4).toString(16))};function $d(t){return typeof t=="object"&&t!==null&&("name"in t&&t.name==="AbortError"||"message"in t&&String(t.message).includes("FetchRequestCanceledException"))}const Ld=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null){try{if(Object.prototype.toString.call(t)==="[object Error]"){const e=new Error(t.message,t.cause?{cause:t.cause}:{});return t.stack&&(e.stack=t.stack),t.cause&&!e.cause&&(e.cause=t.cause),t.name&&(e.name=t.name),e}}catch{}try{return new Error(JSON.stringify(t))}catch{}}return new Error(t)};class Ze extends Error{}class hn extends Ze{constructor(e,n,r,s){super(`${hn.makeMessage(e,n,r)}`),this.status=e,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(e,n,r){const s=n!=null&&n.message?typeof n.message=="string"?n.message:JSON.stringify(n.message):n?JSON.stringify(n):r;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,n,r,s){if(!e||!s)return new kc({message:r,cause:Ld(n)});const o=n==null?void 0:n.error;return e===400?new rS(e,o,r,s):e===401?new sS(e,o,r,s):e===403?new oS(e,o,r,s):e===404?new iS(e,o,r,s):e===409?new aS(e,o,r,s):e===422?new lS(e,o,r,s):e===429?new cS(e,o,r,s):e>=500?new uS(e,o,r,s):new hn(e,o,r,s)}}class Kn extends hn{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class kc extends hn{constructor({message:e,cause:n}){super(void 0,void 0,e||"Connection error.",void 0),n&&(this.cause=n)}}class qf extends kc{constructor({message:e}={}){super({message:e??"Request timed out."})}}class rS extends hn{}class sS extends hn{}class oS extends hn{}class iS extends hn{}class aS extends hn{}class lS extends hn{}class cS extends hn{}class uS extends hn{}class dS extends Ze{constructor(){super("Could not parse response content as the length limit was reached")}}class fS extends Ze{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class qi extends Error{constructor(e){super(e)}}const WI=/^[a-z][a-z0-9+.-]*:/i,UI=t=>WI.test(t);let Tn=t=>(Tn=Array.isArray,Tn(t)),Im=Tn;function HI(t){return typeof t!="object"?{}:t??{}}function qI(t){if(!t)return!0;for(const e in t)return!1;return!0}function KI(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Pu(t){return t!=null&&typeof t=="object"&&!Array.isArray(t)}const XI=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new Ze(`${t} must be an integer`);if(e<0)throw new Ze(`${t} must be a positive integer`);return e},YI=t=>{try{return JSON.parse(t)}catch{return}},Ra=t=>new Promise(e=>setTimeout(e,t)),eo="5.10.2",VI=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function GI(){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 JI=()=>{var n;const t=GI();if(t==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":$m(Deno.build.os),"X-Stainless-Arch":Om(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":eo,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(t==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":$m(globalThis.process.platform??"unknown"),"X-Stainless-Arch":Om(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const e=QI();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function QI(){if(typeof navigator>"u"||!navigator)return null;const t=[{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:e,pattern:n}of t){const r=n.exec(navigator.userAgent);if(r){const s=r[1]||0,o=r[2]||0,i=r[3]||0;return{browser:e,version:`${s}.${o}.${i}`}}}return null}const Om=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",$m=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown");let Lm;const ZI=()=>Lm??(Lm=JI());function eO(){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 hS(...t){const e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...t)}function pS(t){let e=Symbol.asyncIterator in t?t[Symbol.asyncIterator]():t[Symbol.iterator]();return hS({start(){},async pull(n){const{done:r,value:s}=await e.next();r?n.close():n.enqueue(s)},async cancel(){var n;await((n=e.return)==null?void 0:n.call(e))}})}function mS(t){if(t[Symbol.asyncIterator])return t;const e=t.getReader();return{async next(){try{const n=await e.read();return n!=null&&n.done&&e.releaseLock(),n}catch(n){throw e.releaseLock(),n}},async return(){const n=e.cancel();return e.releaseLock(),await n,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function tO(t){var r,s;if(t===null||typeof t!="object")return;if(t[Symbol.asyncIterator]){await((s=(r=t[Symbol.asyncIterator]()).return)==null?void 0:s.call(r));return}const e=t.getReader(),n=e.cancel();e.releaseLock(),await n}const nO=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)}),gS="RFC3986",yS=t=>String(t),Dm={RFC1738:t=>String(t).replace(/%20/g,"+"),RFC3986:yS},rO="RFC1738";let Dd=(t,e)=>(Dd=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),Dd(t,e));const pr=(()=>{const t=[];for(let e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})(),Mu=1024,sO=(t,e,n,r,s)=>{if(t.length===0)return t;let o=t;if(typeof t=="symbol"?o=Symbol.prototype.toString.call(t):typeof t!="string"&&(o=String(t)),n==="iso-8859-1")return escape(o).replace(/%u[0-9a-f]{4}/gi,function(a){return"%26%23"+parseInt(a.slice(2),16)+"%3B"});let i="";for(let a=0;a<o.length;a+=Mu){const c=o.length>=Mu?o.slice(a,a+Mu):o,d=[];for(let f=0;f<c.length;++f){let p=c.charCodeAt(f);if(p===45||p===46||p===95||p===126||p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===rO&&(p===40||p===41)){d[d.length]=c.charAt(f);continue}if(p<128){d[d.length]=pr[p];continue}if(p<2048){d[d.length]=pr[192|p>>6]+pr[128|p&63];continue}if(p<55296||p>=57344){d[d.length]=pr[224|p>>12]+pr[128|p>>6&63]+pr[128|p&63];continue}f+=1,p=65536+((p&1023)<<10|c.charCodeAt(f)&1023),d[d.length]=pr[240|p>>18]+pr[128|p>>12&63]+pr[128|p>>6&63]+pr[128|p&63]}i+=d.join("")}return i};function oO(t){return!t||typeof t!="object"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))}function Fm(t,e){if(Tn(t)){const n=[];for(let r=0;r<t.length;r+=1)n.push(e(t[r]));return n}return e(t)}const bS={brackets(t){return String(t)+"[]"},comma:"comma",indices(t,e){return String(t)+"["+e+"]"},repeat(t){return String(t)}},vS=function(t,e){Array.prototype.push.apply(t,Tn(e)?e:[e])};let Nm;const Qt={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:sO,encodeValuesOnly:!1,format:gS,formatter:yS,indices:!1,serializeDate(t){return(Nm??(Nm=Function.prototype.call.bind(Date.prototype.toISOString)))(t)},skipNulls:!1,strictNullHandling:!1};function iO(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||typeof t=="symbol"||typeof t=="bigint"}const Au={};function SS(t,e,n,r,s,o,i,a,c,d,f,p,b,m,w,y,_,M){let C=t,T=M,k=0,P=!1;for(;(T=T.get(Au))!==void 0&&!P;){const X=T.get(t);if(k+=1,typeof X<"u"){if(X===k)throw new RangeError("Cyclic object value");P=!0}typeof T.get(Au)>"u"&&(k=0)}if(typeof d=="function"?C=d(e,C):C instanceof Date?C=b==null?void 0:b(C):n==="comma"&&Tn(C)&&(C=Fm(C,function(X){return X instanceof Date?b==null?void 0:b(X):X})),C===null){if(o)return c&&!y?c(e,Qt.encoder,_,"key",m):e;C=""}if(iO(C)||oO(C)){if(c){const X=y?e:c(e,Qt.encoder,_,"key",m);return[(w==null?void 0:w(X))+"="+(w==null?void 0:w(c(C,Qt.encoder,_,"value",m)))]}return[(w==null?void 0:w(e))+"="+(w==null?void 0:w(String(C)))]}const A=[];if(typeof C>"u")return A;let j;if(n==="comma"&&Tn(C))y&&c&&(C=Fm(C,c)),j=[{value:C.length>0?C.join(",")||null:void 0}];else if(Tn(d))j=d;else{const X=Object.keys(C);j=f?X.sort(f):X}const $=a?String(e).replace(/\./g,"%2E"):String(e),F=r&&Tn(C)&&C.length===1?$+"[]":$;if(s&&Tn(C)&&C.length===0)return F+"[]";for(let X=0;X<j.length;++X){const K=j[X],O=typeof K=="object"&&typeof K.value<"u"?K.value:C[K];if(i&&O===null)continue;const W=p&&a?K.replace(/\./g,"%2E"):K,ae=Tn(C)?typeof n=="function"?n(F,W):F:F+(p?"."+W:"["+W+"]");M.set(t,k);const Y=new WeakMap;Y.set(Au,M),vS(A,SS(O,ae,n,r,s,o,i,a,n==="comma"&&y&&Tn(C)?null:c,d,f,p,b,m,w,y,_,Y))}return A}function aO(t=Qt){if(typeof t.allowEmptyArrays<"u"&&typeof t.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof t.encodeDotInKeys<"u"&&typeof t.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(t.encoder!==null&&typeof t.encoder<"u"&&typeof t.encoder!="function")throw new TypeError("Encoder has to be a function.");const e=t.charset||Qt.charset;if(typeof t.charset<"u"&&t.charset!=="utf-8"&&t.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let n=gS;if(typeof t.format<"u"){if(!Dd(Dm,t.format))throw new TypeError("Unknown format option provided.");n=t.format}const r=Dm[n];let s=Qt.filter;(typeof t.filter=="function"||Tn(t.filter))&&(s=t.filter);let o;if(t.arrayFormat&&t.arrayFormat in bS?o=t.arrayFormat:"indices"in t?o=t.indices?"indices":"repeat":o=Qt.arrayFormat,"commaRoundTrip"in t&&typeof t.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");const i=typeof t.allowDots>"u"?t.encodeDotInKeys?!0:Qt.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:Qt.addQueryPrefix,allowDots:i,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Qt.allowEmptyArrays,arrayFormat:o,charset:e,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Qt.charsetSentinel,commaRoundTrip:!!t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?Qt.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:Qt.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:Qt.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:Qt.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:Qt.encodeValuesOnly,filter:s,format:n,formatter:r,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:Qt.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:Qt.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Qt.strictNullHandling}}function lO(t,e={}){let n=t;const r=aO(e);let s,o;typeof r.filter=="function"?(o=r.filter,n=o("",n)):Tn(r.filter)&&(o=r.filter,s=o);const i=[];if(typeof n!="object"||n===null)return"";const a=bS[r.arrayFormat],c=a==="comma"&&r.commaRoundTrip;s||(s=Object.keys(n)),r.sort&&s.sort(r.sort);const d=new WeakMap;for(let b=0;b<s.length;++b){const m=s[b];r.skipNulls&&n[m]===null||vS(i,SS(n[m],m,a,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=i.join(r.delimiter);let p=r.addQueryPrefix===!0?"?":"";return r.charsetSentinel&&(r.charset==="iso-8859-1"?p+="utf8=%26%2310003%3B&":p+="utf8=%E2%9C%93&"),f.length>0?p+f:""}function cO(t){let e=0;for(const s of t)e+=s.length;const n=new Uint8Array(e);let r=0;for(const s of t)n.set(s,r),r+=s.length;return n}let zm;function Kf(t){let e;return(zm??(e=new globalThis.TextEncoder,zm=e.encode.bind(e)))(t)}let Bm;function Wm(t){let e;return(Bm??(e=new globalThis.TextDecoder,Bm=e.decode.bind(e)))(t)}var In,On;class Tc{constructor(){In.set(this,void 0),On.set(this,void 0),Qe(this,In,new Uint8Array),Qe(this,On,null)}decode(e){if(e==null)return[];const n=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?Kf(e):e;Qe(this,In,cO([re(this,In,"f"),n]));const r=[];let s;for(;(s=uO(re(this,In,"f"),re(this,On,"f")))!=null;){if(s.carriage&&re(this,On,"f")==null){Qe(this,On,s.index);continue}if(re(this,On,"f")!=null&&(s.index!==re(this,On,"f")+1||s.carriage)){r.push(Wm(re(this,In,"f").subarray(0,re(this,On,"f")-1))),Qe(this,In,re(this,In,"f").subarray(re(this,On,"f"))),Qe(this,On,null);continue}const o=re(this,On,"f")!==null?s.preceding-1:s.preceding,i=Wm(re(this,In,"f").subarray(0,o));r.push(i),Qe(this,In,re(this,In,"f").subarray(s.index)),Qe(this,On,null)}return r}flush(){return re(this,In,"f").length?this.decode(`
212
+ `,d.appendChild(f);const p=document.createElement("div");p.className="md-export",d.appendChild(p),document.body.appendChild(d),document.body.appendChild(a);const y=s(p);o(()=>{y.render(st.createElement(xr,{remarkPlugins:[Zd,ef],rehypePlugins:[Qd],components:i},e||""))});try{await this.waitForExportRenderReady(d),await this.awaitMermaidImagesDecoded(d);const m=await this.renderCanvasWithFallback(n,d),w=new r({unit:"pt",format:"a4",orientation:"portrait"}),b=24,_=w.internal.pageSize.getWidth()-b*2,M=w.internal.pageSize.getHeight()-b*2,C=m.width/_,T={marginPt:b,contentWidthPt:_,pxPerPt:C,sliceHeightPx:Math.max(1,Math.floor(M*C))};let k=0;const P=()=>{w.addPage("a4","portrait"),k+=1},A=()=>{w.addPage("a4","landscape"),k+=1},j=FI(d,m);let $=0;for(const X of j)Rm(w,m,$,X.topPx,P,T),NI(w,X,b,A),$=X.bottomPx;Rm(w,m,$,m.height,P,T),k>0&&w.deletePage(1);const F=w.output("arraybuffer");return new Uint8Array(F)}finally{y.unmount(),a.remove(),d.remove()}}static async waitForExportRenderReady(e){var s,o,i;await new Promise(a=>requestAnimationFrame(()=>requestAnimationFrame(()=>a()))),await((i=(o=(s=document.fonts)==null?void 0:s.ready)==null?void 0:o.catch)==null?void 0:i.call(o,()=>{}));const n=Date.now(),r=6e3;for(;Date.now()-n<r;){if(!e.querySelector(UI)){await new Promise(c=>requestAnimationFrame(()=>c()));return}await new Promise(c=>setTimeout(c,50))}}static async renderCanvasWithFallback(e,n){const r={backgroundColor:"#ffffff",scale:2,useCORS:!0,allowTaint:!0};try{const o=await e(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 e(n,{...r,foreignObjectRendering:!1});if(!s.width||!s.height)throw new Error("PDF render failed (empty canvas)");return s}static async awaitMermaidImagesDecoded(e){const n=Array.from(e.querySelectorAll("[data-mermaid-loading] img"));await Promise.all(n.map(async r=>{if(!(r.complete&&r.naturalWidth))try{await r.decode()}catch{}}))}}const HI=({messageText:t,messageId:e,currentSessionId:n,onDelete:r,onRestoreChat:s,onRestoreFilesAndChat:o,cardRef:i})=>{const{message:a}=En.useApp(),{t:c}=Xe(),[d,f]=v.useState(""),p=v.useCallback(async M=>{try{await jr(M)}catch(C){console.error("Failed to copy text:",C)}},[]),y=v.useCallback(M=>`> ${M.replace(/\n/g,`
213
+ > `)}`,[]),m=v.useCallback(()=>{if(!n)return;const M=y(d||t),C=new CustomEvent("reference-text",{detail:{text:M,sessionId:n}});window.dispatchEvent(C)},[y,n,t,d]),w=v.useCallback(async M=>{var k;const C=d||t;if(!C){a.warning(c("chat.messageActions.nothingToExport"));return}const T=await sS.exportMessageText({format:M,content:C,sessionId:n??null,messageId:e??null});if(T.success)a.success(c("chat.messageActions.savedFile",{filename:T.filename}));else{if((k=T.error)!=null&&k.toLowerCase().includes("cancel"))return;a.error(T.error||c("chat.messageActions.exportFailed"))}},[a,n,e,t,d,c]),b=v.useCallback(M=>{M.preventDefault(),M.stopPropagation();const C=window.getSelection(),T=C?C.toString():"";T&&i.current&&C&&i.current.contains(C.anchorNode)?f(T):f("")},[i]);return{contextMenuItems:v.useMemo(()=>{const M=[...s&&o&&n&&e?[{key:"restore-chat",label:c("chat.messageActions.restoreChat"),icon:l.jsx(s_,{}),onClick:()=>{s()}},{key:"restore-chat-files",label:c("chat.messageActions.restoreFilesAndChat"),icon:l.jsx(o_,{}),onClick:()=>{o()}},{type:"divider"}]:[],{key:"copy",label:c("chat.messageActions.copy"),icon:l.jsx(Rr,{}),onClick:()=>{p(d||t)}},{key:"reference",label:c("chat.actions.referenceMessage"),icon:l.jsx(By,{}),onClick:m},{type:"divider"},{key:"export-md",label:c("chat.messageActions.exportMarkdown"),icon:l.jsx(yo,{}),onClick:()=>w("markdown")},{key:"export-pdf",label:c("chat.messageActions.exportPdf"),icon:l.jsx(yo,{}),onClick:()=>w("pdf")}];return r&&e&&M.push({key:"delete",label:c("chat.messageActions.deleteMessage"),icon:l.jsx(fc,{}),onClick:()=>r(e),danger:!0}),M},[p,w,e,t,r,s,o,m,d,n,c]),handleMouseUp:b,copyToClipboard:p,referenceMessage:m}},qI=({currentSessionId:t,updateSession:e,sendMessage:n})=>{const r=v.useCallback(async()=>{if(!t)return;const a=G.getState().chats.find(c=>c.id===t);if(a)try{e(t,{config:{...a.config,agentRole:"actor"}})}catch(c){console.error("Failed to switch to Actor role:",c)}},[t,e]),s=v.useCallback(async i=>{if(i.trim())try{await n(i.trim())}catch(a){console.error("Failed to send plan refinement:",a)}},[n]),o=v.useCallback(async i=>{if(i)try{await n(i)}catch(a){throw console.error("Failed to send answer:",a),a}},[n]);return{handleExecutePlan:r,handleRefinePlan:s,handleQuestionAnswer:o}};function Qe(t,e,n,r,s){if(typeof e=="function"?t!==e||!0:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}function re(t,e,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(t):r?r.value:e.get(t)}let oS=function(){const{crypto:t}=globalThis;if(t!=null&&t.randomUUID)return oS=t.randomUUID.bind(t),t.randomUUID();const e=new Uint8Array(1),n=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,r=>(+r^n()&15>>+r/4).toString(16))};function $d(t){return typeof t=="object"&&t!==null&&("name"in t&&t.name==="AbortError"||"message"in t&&String(t.message).includes("FetchRequestCanceledException"))}const Ld=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null){try{if(Object.prototype.toString.call(t)==="[object Error]"){const e=new Error(t.message,t.cause?{cause:t.cause}:{});return t.stack&&(e.stack=t.stack),t.cause&&!e.cause&&(e.cause=t.cause),t.name&&(e.name=t.name),e}}catch{}try{return new Error(JSON.stringify(t))}catch{}}return new Error(t)};class Ze extends Error{}class hn extends Ze{constructor(e,n,r,s){super(`${hn.makeMessage(e,n,r)}`),this.status=e,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(e,n,r){const s=n!=null&&n.message?typeof n.message=="string"?n.message:JSON.stringify(n.message):n?JSON.stringify(n):r;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,n,r,s){if(!e||!s)return new kc({message:r,cause:Ld(n)});const o=n==null?void 0:n.error;return e===400?new iS(e,o,r,s):e===401?new aS(e,o,r,s):e===403?new lS(e,o,r,s):e===404?new cS(e,o,r,s):e===409?new uS(e,o,r,s):e===422?new dS(e,o,r,s):e===429?new fS(e,o,r,s):e>=500?new hS(e,o,r,s):new hn(e,o,r,s)}}class Kn extends hn{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class kc extends hn{constructor({message:e,cause:n}){super(void 0,void 0,e||"Connection error.",void 0),n&&(this.cause=n)}}class qf extends kc{constructor({message:e}={}){super({message:e??"Request timed out."})}}class iS extends hn{}class aS extends hn{}class lS extends hn{}class cS extends hn{}class uS extends hn{}class dS extends hn{}class fS extends hn{}class hS extends hn{}class pS extends Ze{constructor(){super("Could not parse response content as the length limit was reached")}}class mS extends Ze{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class Ki extends Error{constructor(e){super(e)}}const KI=/^[a-z][a-z0-9+.-]*:/i,XI=t=>KI.test(t);let Tn=t=>(Tn=Array.isArray,Tn(t)),Om=Tn;function YI(t){return typeof t!="object"?{}:t??{}}function VI(t){if(!t)return!0;for(const e in t)return!1;return!0}function GI(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Pu(t){return t!=null&&typeof t=="object"&&!Array.isArray(t)}const JI=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new Ze(`${t} must be an integer`);if(e<0)throw new Ze(`${t} must be a positive integer`);return e},QI=t=>{try{return JSON.parse(t)}catch{return}},Ra=t=>new Promise(e=>setTimeout(e,t)),eo="5.10.2",ZI=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function eO(){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 tO=()=>{var n;const t=eO();if(t==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":Lm(Deno.build.os),"X-Stainless-Arch":$m(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":eo,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(t==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":Lm(globalThis.process.platform??"unknown"),"X-Stainless-Arch":$m(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const e=nO();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":eo,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function nO(){if(typeof navigator>"u"||!navigator)return null;const t=[{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:e,pattern:n}of t){const r=n.exec(navigator.userAgent);if(r){const s=r[1]||0,o=r[2]||0,i=r[3]||0;return{browser:e,version:`${s}.${o}.${i}`}}}return null}const $m=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",Lm=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown");let Dm;const rO=()=>Dm??(Dm=tO());function sO(){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 gS(...t){const e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...t)}function yS(t){let e=Symbol.asyncIterator in t?t[Symbol.asyncIterator]():t[Symbol.iterator]();return gS({start(){},async pull(n){const{done:r,value:s}=await e.next();r?n.close():n.enqueue(s)},async cancel(){var n;await((n=e.return)==null?void 0:n.call(e))}})}function bS(t){if(t[Symbol.asyncIterator])return t;const e=t.getReader();return{async next(){try{const n=await e.read();return n!=null&&n.done&&e.releaseLock(),n}catch(n){throw e.releaseLock(),n}},async return(){const n=e.cancel();return e.releaseLock(),await n,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function oO(t){var r,s;if(t===null||typeof t!="object")return;if(t[Symbol.asyncIterator]){await((s=(r=t[Symbol.asyncIterator]()).return)==null?void 0:s.call(r));return}const e=t.getReader(),n=e.cancel();e.releaseLock(),await n}const iO=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)}),vS="RFC3986",SS=t=>String(t),Fm={RFC1738:t=>String(t).replace(/%20/g,"+"),RFC3986:SS},aO="RFC1738";let Dd=(t,e)=>(Dd=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),Dd(t,e));const pr=(()=>{const t=[];for(let e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})(),Mu=1024,lO=(t,e,n,r,s)=>{if(t.length===0)return t;let o=t;if(typeof t=="symbol"?o=Symbol.prototype.toString.call(t):typeof t!="string"&&(o=String(t)),n==="iso-8859-1")return escape(o).replace(/%u[0-9a-f]{4}/gi,function(a){return"%26%23"+parseInt(a.slice(2),16)+"%3B"});let i="";for(let a=0;a<o.length;a+=Mu){const c=o.length>=Mu?o.slice(a,a+Mu):o,d=[];for(let f=0;f<c.length;++f){let p=c.charCodeAt(f);if(p===45||p===46||p===95||p===126||p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===aO&&(p===40||p===41)){d[d.length]=c.charAt(f);continue}if(p<128){d[d.length]=pr[p];continue}if(p<2048){d[d.length]=pr[192|p>>6]+pr[128|p&63];continue}if(p<55296||p>=57344){d[d.length]=pr[224|p>>12]+pr[128|p>>6&63]+pr[128|p&63];continue}f+=1,p=65536+((p&1023)<<10|c.charCodeAt(f)&1023),d[d.length]=pr[240|p>>18]+pr[128|p>>12&63]+pr[128|p>>6&63]+pr[128|p&63]}i+=d.join("")}return i};function cO(t){return!t||typeof t!="object"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))}function Nm(t,e){if(Tn(t)){const n=[];for(let r=0;r<t.length;r+=1)n.push(e(t[r]));return n}return e(t)}const wS={brackets(t){return String(t)+"[]"},comma:"comma",indices(t,e){return String(t)+"["+e+"]"},repeat(t){return String(t)}},xS=function(t,e){Array.prototype.push.apply(t,Tn(e)?e:[e])};let zm;const Qt={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:lO,encodeValuesOnly:!1,format:vS,formatter:SS,indices:!1,serializeDate(t){return(zm??(zm=Function.prototype.call.bind(Date.prototype.toISOString)))(t)},skipNulls:!1,strictNullHandling:!1};function uO(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||typeof t=="symbol"||typeof t=="bigint"}const Au={};function _S(t,e,n,r,s,o,i,a,c,d,f,p,y,m,w,b,_,M){let C=t,T=M,k=0,P=!1;for(;(T=T.get(Au))!==void 0&&!P;){const X=T.get(t);if(k+=1,typeof X<"u"){if(X===k)throw new RangeError("Cyclic object value");P=!0}typeof T.get(Au)>"u"&&(k=0)}if(typeof d=="function"?C=d(e,C):C instanceof Date?C=y==null?void 0:y(C):n==="comma"&&Tn(C)&&(C=Nm(C,function(X){return X instanceof Date?y==null?void 0:y(X):X})),C===null){if(o)return c&&!b?c(e,Qt.encoder,_,"key",m):e;C=""}if(uO(C)||cO(C)){if(c){const X=b?e:c(e,Qt.encoder,_,"key",m);return[(w==null?void 0:w(X))+"="+(w==null?void 0:w(c(C,Qt.encoder,_,"value",m)))]}return[(w==null?void 0:w(e))+"="+(w==null?void 0:w(String(C)))]}const A=[];if(typeof C>"u")return A;let j;if(n==="comma"&&Tn(C))b&&c&&(C=Nm(C,c)),j=[{value:C.length>0?C.join(",")||null:void 0}];else if(Tn(d))j=d;else{const X=Object.keys(C);j=f?X.sort(f):X}const $=a?String(e).replace(/\./g,"%2E"):String(e),F=r&&Tn(C)&&C.length===1?$+"[]":$;if(s&&Tn(C)&&C.length===0)return F+"[]";for(let X=0;X<j.length;++X){const K=j[X],O=typeof K=="object"&&typeof K.value<"u"?K.value:C[K];if(i&&O===null)continue;const W=p&&a?K.replace(/\./g,"%2E"):K,ae=Tn(C)?typeof n=="function"?n(F,W):F:F+(p?"."+W:"["+W+"]");M.set(t,k);const Y=new WeakMap;Y.set(Au,M),xS(A,_S(O,ae,n,r,s,o,i,a,n==="comma"&&b&&Tn(C)?null:c,d,f,p,y,m,w,b,_,Y))}return A}function dO(t=Qt){if(typeof t.allowEmptyArrays<"u"&&typeof t.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof t.encodeDotInKeys<"u"&&typeof t.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(t.encoder!==null&&typeof t.encoder<"u"&&typeof t.encoder!="function")throw new TypeError("Encoder has to be a function.");const e=t.charset||Qt.charset;if(typeof t.charset<"u"&&t.charset!=="utf-8"&&t.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let n=vS;if(typeof t.format<"u"){if(!Dd(Fm,t.format))throw new TypeError("Unknown format option provided.");n=t.format}const r=Fm[n];let s=Qt.filter;(typeof t.filter=="function"||Tn(t.filter))&&(s=t.filter);let o;if(t.arrayFormat&&t.arrayFormat in wS?o=t.arrayFormat:"indices"in t?o=t.indices?"indices":"repeat":o=Qt.arrayFormat,"commaRoundTrip"in t&&typeof t.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");const i=typeof t.allowDots>"u"?t.encodeDotInKeys?!0:Qt.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:Qt.addQueryPrefix,allowDots:i,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:Qt.allowEmptyArrays,arrayFormat:o,charset:e,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:Qt.charsetSentinel,commaRoundTrip:!!t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?Qt.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:Qt.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:Qt.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:Qt.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:Qt.encodeValuesOnly,filter:s,format:n,formatter:r,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:Qt.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:Qt.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:Qt.strictNullHandling}}function fO(t,e={}){let n=t;const r=dO(e);let s,o;typeof r.filter=="function"?(o=r.filter,n=o("",n)):Tn(r.filter)&&(o=r.filter,s=o);const i=[];if(typeof n!="object"||n===null)return"";const a=wS[r.arrayFormat],c=a==="comma"&&r.commaRoundTrip;s||(s=Object.keys(n)),r.sort&&s.sort(r.sort);const d=new WeakMap;for(let y=0;y<s.length;++y){const m=s[y];r.skipNulls&&n[m]===null||xS(i,_S(n[m],m,a,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=i.join(r.delimiter);let p=r.addQueryPrefix===!0?"?":"";return r.charsetSentinel&&(r.charset==="iso-8859-1"?p+="utf8=%26%2310003%3B&":p+="utf8=%E2%9C%93&"),f.length>0?p+f:""}function hO(t){let e=0;for(const s of t)e+=s.length;const n=new Uint8Array(e);let r=0;for(const s of t)n.set(s,r),r+=s.length;return n}let Bm;function Kf(t){let e;return(Bm??(e=new globalThis.TextEncoder,Bm=e.encode.bind(e)))(t)}let Wm;function Um(t){let e;return(Wm??(e=new globalThis.TextDecoder,Wm=e.decode.bind(e)))(t)}var In,On;class Tc{constructor(){In.set(this,void 0),On.set(this,void 0),Qe(this,In,new Uint8Array),Qe(this,On,null)}decode(e){if(e==null)return[];const n=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?Kf(e):e;Qe(this,In,hO([re(this,In,"f"),n]));const r=[];let s;for(;(s=pO(re(this,In,"f"),re(this,On,"f")))!=null;){if(s.carriage&&re(this,On,"f")==null){Qe(this,On,s.index);continue}if(re(this,On,"f")!=null&&(s.index!==re(this,On,"f")+1||s.carriage)){r.push(Um(re(this,In,"f").subarray(0,re(this,On,"f")-1))),Qe(this,In,re(this,In,"f").subarray(re(this,On,"f"))),Qe(this,On,null);continue}const o=re(this,On,"f")!==null?s.preceding-1:s.preceding,i=Um(re(this,In,"f").subarray(0,o));r.push(i),Qe(this,In,re(this,In,"f").subarray(s.index)),Qe(this,On,null)}return r}flush(){return re(this,In,"f").length?this.decode(`
214
214
  `):[]}}In=new WeakMap,On=new WeakMap;Tc.NEWLINE_CHARS=new Set([`
215
- `,"\r"]);Tc.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function uO(t,e){for(let s=e??0;s<t.length;s++){if(t[s]===10)return{preceding:s,index:s+1,carriage:!1};if(t[s]===13)return{preceding:s,index:s+1,carriage:!0}}return null}function dO(t){for(let r=0;r<t.length-1;r++){if(t[r]===10&&t[r+1]===10||t[r]===13&&t[r+1]===13)return r+2;if(t[r]===13&&t[r+1]===10&&r+3<t.length&&t[r+2]===13&&t[r+3]===10)return r+4}return-1}const rc={off:0,error:200,warn:300,info:400,debug:500},Um=(t,e,n)=>{if(t){if(KI(rc,t))return t;un(n).warn(`${e} was set to ${JSON.stringify(t)}, expected one of ${JSON.stringify(Object.keys(rc))}`)}};function Ki(){}function hl(t,e,n){return!e||rc[t]>rc[n]?Ki:e[t].bind(e)}const fO={error:Ki,warn:Ki,info:Ki,debug:Ki};let Hm=new WeakMap;function un(t){const e=t.logger,n=t.logLevel??"off";if(!e)return fO;const r=Hm.get(e);if(r&&r[0]===n)return r[1];const s={error:hl("error",e,n),warn:hl("warn",e,n),info:hl("info",e,n),debug:hl("debug",e,n)};return Hm.set(e,[n,s]),s}const fs=t=>(t.options&&(t.options={...t.options},delete t.options.headers),t.headers&&(t.headers=Object.fromEntries((t.headers instanceof Headers?[...t.headers]:Object.entries(t.headers)).map(([e,n])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":n]))),"retryOfRequestLogID"in t&&(t.retryOfRequestLogID&&(t.retryOf=t.retryOfRequestLogID),delete t.retryOfRequestLogID),t);var ni;class _r{constructor(e,n,r){this.iterator=e,ni.set(this,void 0),this.controller=n,Qe(this,ni,r)}static fromSSEResponse(e,n,r){let s=!1;const o=r?un(r):console;async function*i(){if(s)throw new Ze("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(const c of hO(e,n))if(!a){if(c.data.startsWith("[DONE]")){a=!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 hn(void 0,d.error,void 0,e.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 hn(void 0,d.error,d.message,void 0);yield{event:c.event,data:d}}}a=!0}catch(c){if($d(c))return;throw c}finally{a||n.abort()}}return new _r(i,n,r)}static fromReadableStream(e,n,r){let s=!1;async function*o(){const a=new Tc,c=mS(e);for await(const d of c)for(const f of a.decode(d))yield f;for(const d of a.flush())yield d}async function*i(){if(s)throw new Ze("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(const c of o())a||c&&(yield JSON.parse(c));a=!0}catch(c){if($d(c))return;throw c}finally{a||n.abort()}}return new _r(i,n,r)}[(ni=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){const e=[],n=[],r=this.iterator(),s=o=>({next:()=>{if(o.length===0){const i=r.next();e.push(i),n.push(i)}return o.shift()}});return[new _r(()=>s(e),this.controller,re(this,ni,"f")),new _r(()=>s(n),this.controller,re(this,ni,"f"))]}toReadableStream(){const e=this;let n;return hS({async start(){n=e[Symbol.asyncIterator]()},async pull(r){try{const{value:s,done:o}=await n.next();if(o)return r.close();const i=Kf(JSON.stringify(s)+`
216
- `);r.enqueue(i)}catch(s){r.error(s)}},async cancel(){var r;await((r=n.return)==null?void 0:r.call(n))}})}}async function*hO(t,e){if(!t.body)throw e.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 mO,r=new Tc,s=mS(t.body);for await(const o of pO(s))for(const i of r.decode(o)){const a=n.decode(i);a&&(yield a)}for(const o of r.flush()){const i=n.decode(o);i&&(yield i)}}async function*pO(t){let e=new Uint8Array;for await(const n of t){if(n==null)continue;const r=n instanceof ArrayBuffer?new Uint8Array(n):typeof n=="string"?Kf(n):n;let s=new Uint8Array(e.length+r.length);s.set(e),s.set(r,e.length),e=s;let o;for(;(o=dO(e))!==-1;)yield e.slice(0,o),e=e.slice(o)}e.length>0&&(yield e)}class mO{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;const o={event:this.event,data:this.data.join(`
217
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],o}if(this.chunks.push(e),e.startsWith(":"))return null;let[n,r,s]=gO(e,":");return s.startsWith(" ")&&(s=s.substring(1)),n==="event"?this.event=s:n==="data"&&this.data.push(s),null}}function gO(t,e){const n=t.indexOf(e);return n!==-1?[t.substring(0,n),e,t.substring(n+e.length)]:[t,"",""]}async function wS(t,e){const{response:n,requestLogID:r,retryOfRequestLogID:s,startTime:o}=e,i=await(async()=>{var p;if(e.options.stream)return un(t).debug("response",n.status,n.url,n.headers,n.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(n,e.controller,t):_r.fromSSEResponse(n,e.controller,t);if(n.status===204)return null;if(e.options.__binaryResponse)return n;const a=n.headers.get("content-type"),c=(p=a==null?void 0:a.split(";")[0])==null?void 0:p.trim();if((c==null?void 0:c.includes("application/json"))||(c==null?void 0:c.endsWith("+json"))){const b=await n.json();return xS(b,n)}return await n.text()})();return un(t).debug(`[${r}] response parsed`,fs({retryOfRequestLogID:s,url:n.url,status:n.status,body:i,durationMs:Date.now()-o})),i}function xS(t,e){return!t||typeof t!="object"||Array.isArray(t)?t:Object.defineProperty(t,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Xi;class Ec extends Promise{constructor(e,n,r=wS){super(s=>{s(null)}),this.responsePromise=n,this.parseResponse=r,Xi.set(this,void 0),Qe(this,Xi,e)}_thenUnwrap(e){return new Ec(re(this,Xi,"f"),this.responsePromise,async(n,r)=>xS(e(await this.parseResponse(n,r),r),r.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){const[e,n]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:n,request_id:n.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(re(this,Xi,"f"),e))),this.parsedPromise}then(e,n){return this.parse().then(e,n)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}Xi=new WeakMap;var pl;class _S{constructor(e,n,r,s){pl.set(this,void 0),Qe(this,pl,e),this.options=s,this.response=n,this.body=r}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const e=this.nextPageRequestOptions();if(!e)throw new Ze("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await re(this,pl,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(pl=new WeakMap,Symbol.asyncIterator)](){for await(const e of this.iterPages())for(const n of e.getPaginatedItems())yield n}}class yO extends Ec{constructor(e,n,r){super(e,n,async(s,o)=>new r(s,o.response,await wS(s,o),o.options))}async*[Symbol.asyncIterator](){const e=await this;for await(const n of e)yield n}}class Pc extends _S{constructor(e,n,r,s){super(e,n,r,s),this.data=r.data||[],this.object=r.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class Yt extends _S{constructor(e,n,r,s){super(e,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 e=this.getPaginatedItems(),n=(r=e[e.length-1])==null?void 0:r.id;return n?{...this.options,query:{...HI(this.options.query),after:n}}:null}}const CS=()=>{var t;if(typeof File>"u"){const{process:e}=globalThis,n=typeof((t=e==null?void 0:e.versions)==null?void 0:t.node)=="string"&&parseInt(e.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 aa(t,e,n){return CS(),new File(t,e??"unknown_file",n)}function Rl(t){return(typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"").split(/[\\/]/).pop()||void 0}const kS=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function",Is=async(t,e)=>({...t,body:await vO(t.body,e)}),qm=new WeakMap;function bO(t){const e=typeof t=="function"?t:t.fetch,n=qm.get(e);if(n)return n;const r=(async()=>{try{const s="Response"in e?e.Response:(await e("data:,")).constructor,o=new FormData;return o.toString()!==await new s(o).text()}catch{return!0}})();return qm.set(e,r),r}const vO=async(t,e)=>{if(!await bO(e))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(t||{}).map(([r,s])=>Fd(n,r,s))),n},SO=t=>t instanceof Blob&&"name"in t,Fd=async(t,e,n)=>{if(n!==void 0){if(n==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")t.append(e,String(n));else if(n instanceof Response)t.append(e,aa([await n.blob()],Rl(n)));else if(kS(n))t.append(e,aa([await new Response(pS(n)).blob()],Rl(n)));else if(SO(n))t.append(e,n,Rl(n));else if(Array.isArray(n))await Promise.all(n.map(r=>Fd(t,e+"[]",r)));else if(typeof n=="object")await Promise.all(Object.entries(n).map(([r,s])=>Fd(t,`${e}[${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`)}},TS=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",wO=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&TS(t),xO=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function _O(t,e,n){if(CS(),t=await t,wO(t))return t instanceof File?t:aa([await t.arrayBuffer()],t.name);if(xO(t)){const s=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),aa(await Nd(s),e,n)}const r=await Nd(t);if(e||(e=Rl(t)),!(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 aa(r,e,n)}async function Nd(t){var n;let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(TS(t))e.push(t instanceof Blob?t:await t.arrayBuffer());else if(kS(t))for await(const r of t)e.push(...await Nd(r));else{const r=(n=t==null?void 0:t.constructor)==null?void 0:n.name;throw new Error(`Unexpected data type: ${typeof t}${r?`; constructor: ${r}`:""}${CO(t)}`)}return e}function CO(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(n=>`"${n}"`).join(", ")}]`}class nt{constructor(e){this._client=e}}function ES(t){return t.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const Km=Object.freeze(Object.create(null)),kO=(t=ES)=>function(n,...r){if(n.length===1)return n[0];let s=!1;const o=[],i=n.reduce((f,p,b)=>{var y;/[?#]/.test(p)&&(s=!0);const m=r[b];let w=(s?encodeURIComponent:t)(""+m);return b!==r.length&&(m==null||typeof m=="object"&&m.toString===((y=Object.getPrototypeOf(Object.getPrototypeOf(m.hasOwnProperty??Km)??Km))==null?void 0:y.toString))&&(w=m+"",o.push({start:f.length+p.length,length:w.length,error:`Value of type ${Object.prototype.toString.call(m).slice(8,-1)} is not a valid path parameter`})),f+p+(b===r.length?"":w)},""),a=i.split(/[?#]/,1)[0],c=new RegExp("(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)","gi");let d;for(;(d=c.exec(a))!==null;)o.push({start:d.index,length:d[0].length,error:`Value "${d[0]}" can't be safely passed as a path parameter`});if(o.sort((f,p)=>f.start-p.start),o.length>0){let f=0;const p=o.reduce((b,m)=>{const w=" ".repeat(m.start-f),y="^".repeat(m.length);return f=m.start+m.length,b+w+y},"");throw new Ze(`Path parameters result in path with invalid segments:
218
- ${o.map(b=>b.error).join(`
215
+ `,"\r"]);Tc.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function pO(t,e){for(let s=e??0;s<t.length;s++){if(t[s]===10)return{preceding:s,index:s+1,carriage:!1};if(t[s]===13)return{preceding:s,index:s+1,carriage:!0}}return null}function mO(t){for(let r=0;r<t.length-1;r++){if(t[r]===10&&t[r+1]===10||t[r]===13&&t[r+1]===13)return r+2;if(t[r]===13&&t[r+1]===10&&r+3<t.length&&t[r+2]===13&&t[r+3]===10)return r+4}return-1}const rc={off:0,error:200,warn:300,info:400,debug:500},Hm=(t,e,n)=>{if(t){if(GI(rc,t))return t;dn(n).warn(`${e} was set to ${JSON.stringify(t)}, expected one of ${JSON.stringify(Object.keys(rc))}`)}};function Xi(){}function hl(t,e,n){return!e||rc[t]>rc[n]?Xi:e[t].bind(e)}const gO={error:Xi,warn:Xi,info:Xi,debug:Xi};let qm=new WeakMap;function dn(t){const e=t.logger,n=t.logLevel??"off";if(!e)return gO;const r=qm.get(e);if(r&&r[0]===n)return r[1];const s={error:hl("error",e,n),warn:hl("warn",e,n),info:hl("info",e,n),debug:hl("debug",e,n)};return qm.set(e,[n,s]),s}const fs=t=>(t.options&&(t.options={...t.options},delete t.options.headers),t.headers&&(t.headers=Object.fromEntries((t.headers instanceof Headers?[...t.headers]:Object.entries(t.headers)).map(([e,n])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":n]))),"retryOfRequestLogID"in t&&(t.retryOfRequestLogID&&(t.retryOf=t.retryOfRequestLogID),delete t.retryOfRequestLogID),t);var ri;class _r{constructor(e,n,r){this.iterator=e,ri.set(this,void 0),this.controller=n,Qe(this,ri,r)}static fromSSEResponse(e,n,r){let s=!1;const o=r?dn(r):console;async function*i(){if(s)throw new Ze("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(const c of yO(e,n))if(!a){if(c.data.startsWith("[DONE]")){a=!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 hn(void 0,d.error,void 0,e.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 hn(void 0,d.error,d.message,void 0);yield{event:c.event,data:d}}}a=!0}catch(c){if($d(c))return;throw c}finally{a||n.abort()}}return new _r(i,n,r)}static fromReadableStream(e,n,r){let s=!1;async function*o(){const a=new Tc,c=bS(e);for await(const d of c)for(const f of a.decode(d))yield f;for(const d of a.flush())yield d}async function*i(){if(s)throw new Ze("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(const c of o())a||c&&(yield JSON.parse(c));a=!0}catch(c){if($d(c))return;throw c}finally{a||n.abort()}}return new _r(i,n,r)}[(ri=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){const e=[],n=[],r=this.iterator(),s=o=>({next:()=>{if(o.length===0){const i=r.next();e.push(i),n.push(i)}return o.shift()}});return[new _r(()=>s(e),this.controller,re(this,ri,"f")),new _r(()=>s(n),this.controller,re(this,ri,"f"))]}toReadableStream(){const e=this;let n;return gS({async start(){n=e[Symbol.asyncIterator]()},async pull(r){try{const{value:s,done:o}=await n.next();if(o)return r.close();const i=Kf(JSON.stringify(s)+`
216
+ `);r.enqueue(i)}catch(s){r.error(s)}},async cancel(){var r;await((r=n.return)==null?void 0:r.call(n))}})}}async function*yO(t,e){if(!t.body)throw e.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 vO,r=new Tc,s=bS(t.body);for await(const o of bO(s))for(const i of r.decode(o)){const a=n.decode(i);a&&(yield a)}for(const o of r.flush()){const i=n.decode(o);i&&(yield i)}}async function*bO(t){let e=new Uint8Array;for await(const n of t){if(n==null)continue;const r=n instanceof ArrayBuffer?new Uint8Array(n):typeof n=="string"?Kf(n):n;let s=new Uint8Array(e.length+r.length);s.set(e),s.set(r,e.length),e=s;let o;for(;(o=mO(e))!==-1;)yield e.slice(0,o),e=e.slice(o)}e.length>0&&(yield e)}class vO{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;const o={event:this.event,data:this.data.join(`
217
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],o}if(this.chunks.push(e),e.startsWith(":"))return null;let[n,r,s]=SO(e,":");return s.startsWith(" ")&&(s=s.substring(1)),n==="event"?this.event=s:n==="data"&&this.data.push(s),null}}function SO(t,e){const n=t.indexOf(e);return n!==-1?[t.substring(0,n),e,t.substring(n+e.length)]:[t,"",""]}async function CS(t,e){const{response:n,requestLogID:r,retryOfRequestLogID:s,startTime:o}=e,i=await(async()=>{var p;if(e.options.stream)return dn(t).debug("response",n.status,n.url,n.headers,n.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(n,e.controller,t):_r.fromSSEResponse(n,e.controller,t);if(n.status===204)return null;if(e.options.__binaryResponse)return n;const a=n.headers.get("content-type"),c=(p=a==null?void 0:a.split(";")[0])==null?void 0:p.trim();if((c==null?void 0:c.includes("application/json"))||(c==null?void 0:c.endsWith("+json"))){const y=await n.json();return kS(y,n)}return await n.text()})();return dn(t).debug(`[${r}] response parsed`,fs({retryOfRequestLogID:s,url:n.url,status:n.status,body:i,durationMs:Date.now()-o})),i}function kS(t,e){return!t||typeof t!="object"||Array.isArray(t)?t:Object.defineProperty(t,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Yi;class Ec extends Promise{constructor(e,n,r=CS){super(s=>{s(null)}),this.responsePromise=n,this.parseResponse=r,Yi.set(this,void 0),Qe(this,Yi,e)}_thenUnwrap(e){return new Ec(re(this,Yi,"f"),this.responsePromise,async(n,r)=>kS(e(await this.parseResponse(n,r),r),r.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){const[e,n]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:n,request_id:n.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(re(this,Yi,"f"),e))),this.parsedPromise}then(e,n){return this.parse().then(e,n)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}Yi=new WeakMap;var pl;class TS{constructor(e,n,r,s){pl.set(this,void 0),Qe(this,pl,e),this.options=s,this.response=n,this.body=r}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const e=this.nextPageRequestOptions();if(!e)throw new Ze("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await re(this,pl,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(pl=new WeakMap,Symbol.asyncIterator)](){for await(const e of this.iterPages())for(const n of e.getPaginatedItems())yield n}}class wO extends Ec{constructor(e,n,r){super(e,n,async(s,o)=>new r(s,o.response,await CS(s,o),o.options))}async*[Symbol.asyncIterator](){const e=await this;for await(const n of e)yield n}}class Pc extends TS{constructor(e,n,r,s){super(e,n,r,s),this.data=r.data||[],this.object=r.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class Yt extends TS{constructor(e,n,r,s){super(e,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 e=this.getPaginatedItems(),n=(r=e[e.length-1])==null?void 0:r.id;return n?{...this.options,query:{...YI(this.options.query),after:n}}:null}}const ES=()=>{var t;if(typeof File>"u"){const{process:e}=globalThis,n=typeof((t=e==null?void 0:e.versions)==null?void 0:t.node)=="string"&&parseInt(e.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 la(t,e,n){return ES(),new File(t,e??"unknown_file",n)}function Rl(t){return(typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"").split(/[\\/]/).pop()||void 0}const PS=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function",Is=async(t,e)=>({...t,body:await _O(t.body,e)}),Km=new WeakMap;function xO(t){const e=typeof t=="function"?t:t.fetch,n=Km.get(e);if(n)return n;const r=(async()=>{try{const s="Response"in e?e.Response:(await e("data:,")).constructor,o=new FormData;return o.toString()!==await new s(o).text()}catch{return!0}})();return Km.set(e,r),r}const _O=async(t,e)=>{if(!await xO(e))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(t||{}).map(([r,s])=>Fd(n,r,s))),n},CO=t=>t instanceof Blob&&"name"in t,Fd=async(t,e,n)=>{if(n!==void 0){if(n==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")t.append(e,String(n));else if(n instanceof Response)t.append(e,la([await n.blob()],Rl(n)));else if(PS(n))t.append(e,la([await new Response(yS(n)).blob()],Rl(n)));else if(CO(n))t.append(e,n,Rl(n));else if(Array.isArray(n))await Promise.all(n.map(r=>Fd(t,e+"[]",r)));else if(typeof n=="object")await Promise.all(Object.entries(n).map(([r,s])=>Fd(t,`${e}[${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`)}},MS=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",kO=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&MS(t),TO=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function EO(t,e,n){if(ES(),t=await t,kO(t))return t instanceof File?t:la([await t.arrayBuffer()],t.name);if(TO(t)){const s=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),la(await Nd(s),e,n)}const r=await Nd(t);if(e||(e=Rl(t)),!(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 la(r,e,n)}async function Nd(t){var n;let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(MS(t))e.push(t instanceof Blob?t:await t.arrayBuffer());else if(PS(t))for await(const r of t)e.push(...await Nd(r));else{const r=(n=t==null?void 0:t.constructor)==null?void 0:n.name;throw new Error(`Unexpected data type: ${typeof t}${r?`; constructor: ${r}`:""}${PO(t)}`)}return e}function PO(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(n=>`"${n}"`).join(", ")}]`}class nt{constructor(e){this._client=e}}function AS(t){return t.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const Xm=Object.freeze(Object.create(null)),MO=(t=AS)=>function(n,...r){if(n.length===1)return n[0];let s=!1;const o=[],i=n.reduce((f,p,y)=>{var b;/[?#]/.test(p)&&(s=!0);const m=r[y];let w=(s?encodeURIComponent:t)(""+m);return y!==r.length&&(m==null||typeof m=="object"&&m.toString===((b=Object.getPrototypeOf(Object.getPrototypeOf(m.hasOwnProperty??Xm)??Xm))==null?void 0:b.toString))&&(w=m+"",o.push({start:f.length+p.length,length:w.length,error:`Value of type ${Object.prototype.toString.call(m).slice(8,-1)} is not a valid path parameter`})),f+p+(y===r.length?"":w)},""),a=i.split(/[?#]/,1)[0],c=new RegExp("(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)","gi");let d;for(;(d=c.exec(a))!==null;)o.push({start:d.index,length:d[0].length,error:`Value "${d[0]}" can't be safely passed as a path parameter`});if(o.sort((f,p)=>f.start-p.start),o.length>0){let f=0;const p=o.reduce((y,m)=>{const w=" ".repeat(m.start-f),b="^".repeat(m.length);return f=m.start+m.length,y+w+b},"");throw new Ze(`Path parameters result in path with invalid segments:
218
+ ${o.map(y=>y.error).join(`
219
219
  `)}
220
220
  ${i}
221
- ${p}`)}return i},Oe=kO(ES);let PS=class extends nt{list(e,n={},r){return this._client.getAPIList(Oe`/chat/completions/${e}/messages`,Yt,{query:n,...r})}};function TO(t){return typeof t.parse=="function"}const sc=t=>(t==null?void 0:t.role)==="assistant",MS=t=>(t==null?void 0:t.role)==="tool";var zd,jl,Il,Yi,Vi,Ol,Gi,Pr,Ji,oc,ic,to,AS;class Xf{constructor(){zd.add(this),this.controller=new AbortController,jl.set(this,void 0),Il.set(this,()=>{}),Yi.set(this,()=>{}),Vi.set(this,void 0),Ol.set(this,()=>{}),Gi.set(this,()=>{}),Pr.set(this,{}),Ji.set(this,!1),oc.set(this,!1),ic.set(this,!1),to.set(this,!1),Qe(this,jl,new Promise((e,n)=>{Qe(this,Il,e,"f"),Qe(this,Yi,n,"f")})),Qe(this,Vi,new Promise((e,n)=>{Qe(this,Ol,e,"f"),Qe(this,Gi,n,"f")})),re(this,jl,"f").catch(()=>{}),re(this,Vi,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},re(this,zd,"m",AS).bind(this))},0)}_connected(){this.ended||(re(this,Il,"f").call(this),this._emit("connect"))}get ended(){return re(this,Ji,"f")}get errored(){return re(this,oc,"f")}get aborted(){return re(this,ic,"f")}abort(){this.controller.abort()}on(e,n){return(re(this,Pr,"f")[e]||(re(this,Pr,"f")[e]=[])).push({listener:n}),this}off(e,n){const r=re(this,Pr,"f")[e];if(!r)return this;const s=r.findIndex(o=>o.listener===n);return s>=0&&r.splice(s,1),this}once(e,n){return(re(this,Pr,"f")[e]||(re(this,Pr,"f")[e]=[])).push({listener:n,once:!0}),this}emitted(e){return new Promise((n,r)=>{Qe(this,to,!0),e!=="error"&&this.once("error",r),this.once(e,n)})}async done(){Qe(this,to,!0),await re(this,Vi,"f")}_emit(e,...n){if(re(this,Ji,"f"))return;e==="end"&&(Qe(this,Ji,!0),re(this,Ol,"f").call(this));const r=re(this,Pr,"f")[e];if(r&&(re(this,Pr,"f")[e]=r.filter(s=>!s.once),r.forEach(({listener:s})=>s(...n))),e==="abort"){const s=n[0];!re(this,to,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,Yi,"f").call(this,s),re(this,Gi,"f").call(this,s),this._emit("end");return}if(e==="error"){const s=n[0];!re(this,to,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,Yi,"f").call(this,s),re(this,Gi,"f").call(this,s),this._emit("end")}}_emitFinal(){}}jl=new WeakMap,Il=new WeakMap,Yi=new WeakMap,Vi=new WeakMap,Ol=new WeakMap,Gi=new WeakMap,Pr=new WeakMap,Ji=new WeakMap,oc=new WeakMap,ic=new WeakMap,to=new WeakMap,zd=new WeakSet,AS=function(e){if(Qe(this,oc,!0),e instanceof Error&&e.name==="AbortError"&&(e=new Kn),e instanceof Kn)return Qe(this,ic,!0),this._emit("abort",e);if(e instanceof Ze)return this._emit("error",e);if(e instanceof Error){const n=new Ze(e.message);return n.cause=e,this._emit("error",n)}return this._emit("error",new Ze(String(e)))};function Yf(t){return(t==null?void 0:t.$brand)==="auto-parseable-response-format"}function ja(t){return(t==null?void 0:t.$brand)==="auto-parseable-tool"}function EO(t,e){return!e||!RS(e)?{...t,choices:t.choices.map(n=>({...n,message:{...n.message,parsed:null,...n.message.tool_calls?{tool_calls:n.message.tool_calls}:void 0}}))}:Vf(t,e)}function Vf(t,e){const n=t.choices.map(r=>{var s;if(r.finish_reason==="length")throw new dS;if(r.finish_reason==="content_filter")throw new fS;return{...r,message:{...r.message,...r.message.tool_calls?{tool_calls:((s=r.message.tool_calls)==null?void 0:s.map(o=>MO(e,o)))??void 0}:void 0,parsed:r.message.content&&!r.message.refusal?PO(e,r.message.content):null}}});return{...t,choices:n}}function PO(t,e){var n,r;return((n=t.response_format)==null?void 0:n.type)!=="json_schema"?null:((r=t.response_format)==null?void 0:r.type)==="json_schema"?"$parseRaw"in t.response_format?t.response_format.$parseRaw(e):JSON.parse(e):null}function MO(t,e){var r;const n=(r=t.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===e.function.name});return{...e,function:{...e.function,parsed_arguments:ja(n)?n.$parseRaw(e.function.arguments):n!=null&&n.function.strict?JSON.parse(e.function.arguments):null}}}function AO(t,e){var r;if(!t)return!1;const n=(r=t.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===e.function.name});return ja(n)||(n==null?void 0:n.function.strict)||!1}function RS(t){var e;return Yf(t.response_format)?!0:((e=t.tools)==null?void 0:e.some(n=>ja(n)||n.type==="function"&&n.function.strict===!0))??!1}function RO(t){for(const e of t??[]){if(e.type!=="function")throw new Ze(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new Ze(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Cn,Bd,ac,Wd,Ud,Hd,jS,IS;const jO=10;class OS extends Xf{constructor(){super(...arguments),Cn.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){var r;this._chatCompletions.push(e),this._emit("chatCompletion",e);const n=(r=e.choices[0])==null?void 0:r.message;return n&&this._addMessage(n),e}_addMessage(e,n=!0){if("content"in e||(e.content=null),this.messages.push(e),n){if(this._emit("message",e),MS(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(sc(e)&&e.tool_calls)for(const r of e.tool_calls)r.type==="function"&&this._emit("functionToolCall",r.function)}}async finalChatCompletion(){await this.done();const e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new Ze("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),re(this,Cn,"m",Bd).call(this)}async finalMessage(){return await this.done(),re(this,Cn,"m",ac).call(this)}async finalFunctionToolCall(){return await this.done(),re(this,Cn,"m",Wd).call(this)}async finalFunctionToolCallResult(){return await this.done(),re(this,Cn,"m",Ud).call(this)}async totalUsage(){return await this.done(),re(this,Cn,"m",Hd).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);const n=re(this,Cn,"m",ac).call(this);n&&this._emit("finalMessage",n);const r=re(this,Cn,"m",Bd).call(this);r&&this._emit("finalContent",r);const s=re(this,Cn,"m",Wd).call(this);s&&this._emit("finalFunctionToolCall",s);const o=re(this,Cn,"m",Ud).call(this);o!=null&&this._emit("finalFunctionToolCallResult",o),this._chatCompletions.some(i=>i.usage)&&this._emit("totalUsage",re(this,Cn,"m",Hd).call(this))}async _createChatCompletion(e,n,r){const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Cn,"m",jS).call(this,n);const o=await e.chat.completions.create({...n,stream:!1},{...r,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Vf(o,n))}async _runChatCompletion(e,n,r){for(const s of n.messages)this._addMessage(s,!1);return await this._createChatCompletion(e,n,r)}async _runTools(e,n,r){var m,w,y;const s="tool",{tool_choice:o="auto",stream:i,...a}=n,c=typeof o!="string"&&((m=o==null?void 0:o.function)==null?void 0:m.name),{maxChatCompletions:d=jO}=r||{},f=n.tools.map(_=>{if(ja(_)){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 _}),p={};for(const _ of f)_.type==="function"&&(p[_.function.name||_.function.function.name]=_.function);const b="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 C=(w=(await this._createChatCompletion(e,{...a,tool_choice:o,tools:b,messages:[...this.messages]},r)).choices[0])==null?void 0:w.message;if(!C)throw new Ze("missing message in ChatCompletion response");if(!((y=C.tool_calls)!=null&&y.length))return;for(const T of C.tool_calls){if(T.type!=="function")continue;const k=T.id,{name:P,arguments:A}=T.function,j=p[P];if(j){if(c&&c!==P){const K=`Invalid tool_call: ${JSON.stringify(P)}. ${JSON.stringify(c)} requested. Please try again`;this._addMessage({role:s,tool_call_id:k,content:K});continue}}else{const K=`Invalid tool_call: ${JSON.stringify(P)}. Available options are: ${Object.keys(p).map(O=>JSON.stringify(O)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:k,content:K});continue}let $;try{$=TO(j)?await j.parse(A):A}catch(K){const O=K instanceof Error?K.message:String(K);this._addMessage({role:s,tool_call_id:k,content:O});continue}const F=await j.function($,this),X=re(this,Cn,"m",IS).call(this,F);if(this._addMessage({role:s,tool_call_id:k,content:X}),c)return}}}}Cn=new WeakSet,Bd=function(){return re(this,Cn,"m",ac).call(this).content??null},ac=function(){let e=this.messages.length;for(;e-- >0;){const n=this.messages[e];if(sc(n))return{...n,content:n.content??null,refusal:n.refusal??null}}throw new Ze("stream ended without producing a ChatCompletionMessage with role=assistant")},Wd=function(){var e,n;for(let r=this.messages.length-1;r>=0;r--){const s=this.messages[r];if(sc(s)&&((e=s==null?void 0:s.tool_calls)!=null&&e.length))return(n=s.tool_calls.at(-1))==null?void 0:n.function}},Ud=function(){for(let e=this.messages.length-1;e>=0;e--){const n=this.messages[e];if(MS(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}},Hd=function(){const e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:n}of this._chatCompletions)n&&(e.completion_tokens+=n.completion_tokens,e.prompt_tokens+=n.prompt_tokens,e.total_tokens+=n.total_tokens);return e},jS=function(e){if(e.n!=null&&e.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.")},IS=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};class Gf extends OS{static runTools(e,n,r){const s=new Gf,o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,n,o)),s}_addMessage(e,n=!0){super._addMessage(e,n),sc(e)&&e.content&&this._emit("content",e.content)}}const $S=1,LS=2,DS=4,FS=8,NS=16,zS=32,BS=64,WS=128,US=256,HS=WS|US,qS=NS|zS|HS|BS,KS=$S|LS|qS,XS=DS|FS,IO=KS|XS,sn={STR:$S,NUM:LS,ARR:DS,OBJ:FS,NULL:NS,BOOL:zS,NAN:BS,INFINITY:WS,MINUS_INFINITY:US,INF:HS,SPECIAL:qS,ATOM:KS,COLLECTION:XS,ALL:IO};class OO extends Error{}class $O extends Error{}function LO(t,e=sn.ALL){if(typeof t!="string")throw new TypeError(`expecting str, got ${typeof t}`);if(!t.trim())throw new Error(`${t} is empty`);return DO(t.trim(),e)}const DO=(t,e)=>{const n=t.length;let r=0;const s=b=>{throw new OO(`${b} at position ${r}`)},o=b=>{throw new $O(`${b} at position ${r}`)},i=()=>(p(),r>=n&&s("Unexpected end of input"),t[r]==='"'?a():t[r]==="{"?c():t[r]==="["?d():t.substring(r,r+4)==="null"||sn.NULL&e&&n-r<4&&"null".startsWith(t.substring(r))?(r+=4,null):t.substring(r,r+4)==="true"||sn.BOOL&e&&n-r<4&&"true".startsWith(t.substring(r))?(r+=4,!0):t.substring(r,r+5)==="false"||sn.BOOL&e&&n-r<5&&"false".startsWith(t.substring(r))?(r+=5,!1):t.substring(r,r+8)==="Infinity"||sn.INFINITY&e&&n-r<8&&"Infinity".startsWith(t.substring(r))?(r+=8,1/0):t.substring(r,r+9)==="-Infinity"||sn.MINUS_INFINITY&e&&1<n-r&&n-r<9&&"-Infinity".startsWith(t.substring(r))?(r+=9,-1/0):t.substring(r,r+3)==="NaN"||sn.NAN&e&&n-r<3&&"NaN".startsWith(t.substring(r))?(r+=3,NaN):f()),a=()=>{const b=r;let m=!1;for(r++;r<n&&(t[r]!=='"'||m&&t[r-1]==="\\");)m=t[r]==="\\"?!m:!1,r++;if(t.charAt(r)=='"')try{return JSON.parse(t.substring(b,++r-Number(m)))}catch(w){o(String(w))}else if(sn.STR&e)try{return JSON.parse(t.substring(b,r-Number(m))+'"')}catch{return JSON.parse(t.substring(b,t.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},c=()=>{r++,p();const b={};try{for(;t[r]!=="}";){if(p(),r>=n&&sn.OBJ&e)return b;const m=a();p(),r++;try{const w=i();Object.defineProperty(b,m,{value:w,writable:!0,enumerable:!0,configurable:!0})}catch(w){if(sn.OBJ&e)return b;throw w}p(),t[r]===","&&r++}}catch{if(sn.OBJ&e)return b;s("Expected '}' at end of object")}return r++,b},d=()=>{r++;const b=[];try{for(;t[r]!=="]";)b.push(i()),p(),t[r]===","&&r++}catch{if(sn.ARR&e)return b;s("Expected ']' at end of array")}return r++,b},f=()=>{if(r===0){t==="-"&&sn.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(t)}catch(m){if(sn.NUM&e)try{return t[t.length-1]==="."?JSON.parse(t.substring(0,t.lastIndexOf("."))):JSON.parse(t.substring(0,t.lastIndexOf("e")))}catch{}o(String(m))}}const b=r;for(t[r]==="-"&&r++;t[r]&&!",]}".includes(t[r]);)r++;r==n&&!(sn.NUM&e)&&s("Unterminated number literal");try{return JSON.parse(t.substring(b,r))}catch{t.substring(b,r)==="-"&&sn.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(t.substring(b,t.lastIndexOf("e")))}catch(w){o(String(w))}}},p=()=>{for(;r<n&&`
222
- \r `.includes(t[r]);)r++};return i()},Xm=t=>LO(t,sn.ALL^sn.NUM);var Jt,Er,Gs,Hr,Ru,ml,ju,Iu,Ou,gl,$u,Ym;class _a extends OS{constructor(e){super(),Jt.add(this),Er.set(this,void 0),Gs.set(this,void 0),Hr.set(this,void 0),Qe(this,Er,e),Qe(this,Gs,[])}get currentChatCompletionSnapshot(){return re(this,Hr,"f")}static fromReadableStream(e){const n=new _a(null);return n._run(()=>n._fromReadableStream(e)),n}static createChatCompletion(e,n,r){const s=new _a(n);return s._run(()=>s._runChatCompletion(e,{...n,stream:!0},{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createChatCompletion(e,n,r){var i;super._createChatCompletion;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Jt,"m",Ru).call(this);const o=await e.chat.completions.create({...n,stream:!0},{...r,signal:this.controller.signal});this._connected();for await(const a of o)re(this,Jt,"m",ju).call(this,a);if((i=o.controller.signal)!=null&&i.aborted)throw new Kn;return this._addChatCompletion(re(this,Jt,"m",gl).call(this))}async _fromReadableStream(e,n){var i;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),re(this,Jt,"m",Ru).call(this),this._connected();const s=_r.fromReadableStream(e,this.controller);let o;for await(const a of s)o&&o!==a.id&&this._addChatCompletion(re(this,Jt,"m",gl).call(this)),re(this,Jt,"m",ju).call(this,a),o=a.id;if((i=s.controller.signal)!=null&&i.aborted)throw new Kn;return this._addChatCompletion(re(this,Jt,"m",gl).call(this))}[(Er=new WeakMap,Gs=new WeakMap,Hr=new WeakMap,Jt=new WeakSet,Ru=function(){this.ended||Qe(this,Hr,void 0)},ml=function(n){let r=re(this,Gs,"f")[n.index];return r||(r={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},re(this,Gs,"f")[n.index]=r,r)},ju=function(n){var s,o,i,a,c,d,f,p,b,m,w,y,_,M,C;if(this.ended)return;const r=re(this,Jt,"m",Ym).call(this,n);this._emit("chunk",n,r);for(const T of n.choices){const k=r.choices[T.index];T.delta.content!=null&&((s=k.message)==null?void 0:s.role)==="assistant"&&((o=k.message)!=null&&o.content)&&(this._emit("content",T.delta.content,k.message.content),this._emit("content.delta",{delta:T.delta.content,snapshot:k.message.content,parsed:k.message.parsed})),T.delta.refusal!=null&&((i=k.message)==null?void 0:i.role)==="assistant"&&((a=k.message)!=null&&a.refusal)&&this._emit("refusal.delta",{delta:T.delta.refusal,snapshot:k.message.refusal}),((c=T.logprobs)==null?void 0:c.content)!=null&&((d=k.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(f=T.logprobs)==null?void 0:f.content,snapshot:((p=k.logprobs)==null?void 0:p.content)??[]}),((b=T.logprobs)==null?void 0:b.refusal)!=null&&((m=k.message)==null?void 0:m.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(w=T.logprobs)==null?void 0:w.refusal,snapshot:((y=k.logprobs)==null?void 0:y.refusal)??[]});const P=re(this,Jt,"m",ml).call(this,k);k.finish_reason&&(re(this,Jt,"m",Ou).call(this,k),P.current_tool_call_index!=null&&re(this,Jt,"m",Iu).call(this,k,P.current_tool_call_index));for(const A of T.delta.tool_calls??[])P.current_tool_call_index!==A.index&&(re(this,Jt,"m",Ou).call(this,k),P.current_tool_call_index!=null&&re(this,Jt,"m",Iu).call(this,k,P.current_tool_call_index)),P.current_tool_call_index=A.index;for(const A of T.delta.tool_calls??[]){const j=(_=k.message.tool_calls)==null?void 0:_[A.index];j!=null&&j.type&&((j==null?void 0:j.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(M=j.function)==null?void 0:M.name,index:A.index,arguments:j.function.arguments,parsed_arguments:j.function.parsed_arguments,arguments_delta:((C=A.function)==null?void 0:C.arguments)??""}):(j==null||j.type,void 0))}}},Iu=function(n,r){var i,a,c;if(re(this,Jt,"m",ml).call(this,n).done_tool_calls.has(r))return;const o=(i=n.message.tool_calls)==null?void 0:i[r];if(!o)throw new Error("no tool call snapshot");if(!o.type)throw new Error("tool call snapshot missing `type`");if(o.type==="function"){const d=(c=(a=re(this,Er,"f"))==null?void 0:a.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:ja(d)?d.$parseRaw(o.function.arguments):d!=null&&d.function.strict?JSON.parse(o.function.arguments):null})}else o.type},Ou=function(n){var s,o;const r=re(this,Jt,"m",ml).call(this,n);if(n.message.content&&!r.content_done){r.content_done=!0;const i=re(this,Jt,"m",$u).call(this);this._emit("content.done",{content:n.message.content,parsed:i?i.$parseRaw(n.message.content):null})}n.message.refusal&&!r.refusal_done&&(r.refusal_done=!0,this._emit("refusal.done",{refusal:n.message.refusal})),(s=n.logprobs)!=null&&s.content&&!r.logprobs_content_done&&(r.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:n.logprobs.content})),(o=n.logprobs)!=null&&o.refusal&&!r.logprobs_refusal_done&&(r.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:n.logprobs.refusal}))},gl=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=re(this,Hr,"f");if(!n)throw new Ze("request ended without sending any chunks");return Qe(this,Hr,void 0),Qe(this,Gs,[]),FO(n,re(this,Er,"f"))},$u=function(){var r;const n=(r=re(this,Er,"f"))==null?void 0:r.response_format;return Yf(n)?n:null},Ym=function(n){var r,s,o,i;let a=re(this,Hr,"f");const{choices:c,...d}=n;a?Object.assign(a,d):a=Qe(this,Hr,{...d,choices:[]});for(const{delta:f,finish_reason:p,index:b,logprobs:m=null,...w}of n.choices){let y=a.choices[b];if(y||(y=a.choices[b]={finish_reason:p,index:b,message:{},logprobs:m,...w}),m)if(!y.logprobs)y.logprobs=Object.assign({},m);else{const{content:A,refusal:j,...$}=m;Object.assign(y.logprobs,$),A&&((r=y.logprobs).content??(r.content=[]),y.logprobs.content.push(...A)),j&&((s=y.logprobs).refusal??(s.refusal=[]),y.logprobs.refusal.push(...j))}if(p&&(y.finish_reason=p,re(this,Er,"f")&&RS(re(this,Er,"f")))){if(p==="length")throw new dS;if(p==="content_filter")throw new fS}if(Object.assign(y,w),!f)continue;const{content:_,refusal:M,function_call:C,role:T,tool_calls:k,...P}=f;if(Object.assign(y.message,P),M&&(y.message.refusal=(y.message.refusal||"")+M),T&&(y.message.role=T),C&&(y.message.function_call?(C.name&&(y.message.function_call.name=C.name),C.arguments&&((o=y.message.function_call).arguments??(o.arguments=""),y.message.function_call.arguments+=C.arguments)):y.message.function_call=C),_&&(y.message.content=(y.message.content||"")+_,!y.message.refusal&&re(this,Jt,"m",$u).call(this)&&(y.message.parsed=Xm(y.message.content))),k){y.message.tool_calls||(y.message.tool_calls=[]);for(const{index:A,id:j,type:$,function:F,...X}of k){const K=(i=y.message.tool_calls)[A]??(i[A]={});Object.assign(K,X),j&&(K.id=j),$&&(K.type=$),F&&(K.function??(K.function={name:F.name??"",arguments:""})),F!=null&&F.name&&(K.function.name=F.name),F!=null&&F.arguments&&(K.function.arguments+=F.arguments,AO(re(this,Er,"f"),K)&&(K.function.parsed_arguments=Xm(K.function.arguments)))}}}return a},Symbol.asyncIterator)](){const e=[],n=[];let r=!1;return this.on("chunk",s=>{const o=n.shift();o?o.resolve(s):e.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()=>e.length?{value:e.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new _r(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function FO(t,e){const{id:n,choices:r,created:s,model:o,system_fingerprint:i,...a}=t,c={...a,id:n,choices:r.map(({message:d,finish_reason:f,index:p,logprobs:b,...m})=>{if(!f)throw new Ze(`missing finish_reason for choice ${p}`);const{content:w=null,function_call:y,tool_calls:_,...M}=d,C=d.role;if(!C)throw new Ze(`missing role for choice ${p}`);if(y){const{arguments:T,name:k}=y;if(T==null)throw new Ze(`missing function_call.arguments for choice ${p}`);if(!k)throw new Ze(`missing function_call.name for choice ${p}`);return{...m,message:{content:w,function_call:{arguments:T,name:k},role:C,refusal:d.refusal??null},finish_reason:f,index:p,logprobs:b}}return _?{...m,index:p,finish_reason:f,logprobs:b,message:{...M,role:C,content:w,refusal:d.refusal??null,tool_calls:_.map((T,k)=>{const{function:P,type:A,id:j,...$}=T,{arguments:F,name:X,...K}=P||{};if(j==null)throw new Ze(`missing choices[${p}].tool_calls[${k}].id
221
+ ${p}`)}return i},Oe=MO(AS);let RS=class extends nt{list(e,n={},r){return this._client.getAPIList(Oe`/chat/completions/${e}/messages`,Yt,{query:n,...r})}};function AO(t){return typeof t.parse=="function"}const sc=t=>(t==null?void 0:t.role)==="assistant",jS=t=>(t==null?void 0:t.role)==="tool";var zd,jl,Il,Vi,Gi,Ol,Ji,Pr,Qi,oc,ic,to,IS;class Xf{constructor(){zd.add(this),this.controller=new AbortController,jl.set(this,void 0),Il.set(this,()=>{}),Vi.set(this,()=>{}),Gi.set(this,void 0),Ol.set(this,()=>{}),Ji.set(this,()=>{}),Pr.set(this,{}),Qi.set(this,!1),oc.set(this,!1),ic.set(this,!1),to.set(this,!1),Qe(this,jl,new Promise((e,n)=>{Qe(this,Il,e,"f"),Qe(this,Vi,n,"f")})),Qe(this,Gi,new Promise((e,n)=>{Qe(this,Ol,e,"f"),Qe(this,Ji,n,"f")})),re(this,jl,"f").catch(()=>{}),re(this,Gi,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},re(this,zd,"m",IS).bind(this))},0)}_connected(){this.ended||(re(this,Il,"f").call(this),this._emit("connect"))}get ended(){return re(this,Qi,"f")}get errored(){return re(this,oc,"f")}get aborted(){return re(this,ic,"f")}abort(){this.controller.abort()}on(e,n){return(re(this,Pr,"f")[e]||(re(this,Pr,"f")[e]=[])).push({listener:n}),this}off(e,n){const r=re(this,Pr,"f")[e];if(!r)return this;const s=r.findIndex(o=>o.listener===n);return s>=0&&r.splice(s,1),this}once(e,n){return(re(this,Pr,"f")[e]||(re(this,Pr,"f")[e]=[])).push({listener:n,once:!0}),this}emitted(e){return new Promise((n,r)=>{Qe(this,to,!0),e!=="error"&&this.once("error",r),this.once(e,n)})}async done(){Qe(this,to,!0),await re(this,Gi,"f")}_emit(e,...n){if(re(this,Qi,"f"))return;e==="end"&&(Qe(this,Qi,!0),re(this,Ol,"f").call(this));const r=re(this,Pr,"f")[e];if(r&&(re(this,Pr,"f")[e]=r.filter(s=>!s.once),r.forEach(({listener:s})=>s(...n))),e==="abort"){const s=n[0];!re(this,to,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,Vi,"f").call(this,s),re(this,Ji,"f").call(this,s),this._emit("end");return}if(e==="error"){const s=n[0];!re(this,to,"f")&&!(r!=null&&r.length)&&Promise.reject(s),re(this,Vi,"f").call(this,s),re(this,Ji,"f").call(this,s),this._emit("end")}}_emitFinal(){}}jl=new WeakMap,Il=new WeakMap,Vi=new WeakMap,Gi=new WeakMap,Ol=new WeakMap,Ji=new WeakMap,Pr=new WeakMap,Qi=new WeakMap,oc=new WeakMap,ic=new WeakMap,to=new WeakMap,zd=new WeakSet,IS=function(e){if(Qe(this,oc,!0),e instanceof Error&&e.name==="AbortError"&&(e=new Kn),e instanceof Kn)return Qe(this,ic,!0),this._emit("abort",e);if(e instanceof Ze)return this._emit("error",e);if(e instanceof Error){const n=new Ze(e.message);return n.cause=e,this._emit("error",n)}return this._emit("error",new Ze(String(e)))};function Yf(t){return(t==null?void 0:t.$brand)==="auto-parseable-response-format"}function ja(t){return(t==null?void 0:t.$brand)==="auto-parseable-tool"}function RO(t,e){return!e||!OS(e)?{...t,choices:t.choices.map(n=>({...n,message:{...n.message,parsed:null,...n.message.tool_calls?{tool_calls:n.message.tool_calls}:void 0}}))}:Vf(t,e)}function Vf(t,e){const n=t.choices.map(r=>{var s;if(r.finish_reason==="length")throw new pS;if(r.finish_reason==="content_filter")throw new mS;return{...r,message:{...r.message,...r.message.tool_calls?{tool_calls:((s=r.message.tool_calls)==null?void 0:s.map(o=>IO(e,o)))??void 0}:void 0,parsed:r.message.content&&!r.message.refusal?jO(e,r.message.content):null}}});return{...t,choices:n}}function jO(t,e){var n,r;return((n=t.response_format)==null?void 0:n.type)!=="json_schema"?null:((r=t.response_format)==null?void 0:r.type)==="json_schema"?"$parseRaw"in t.response_format?t.response_format.$parseRaw(e):JSON.parse(e):null}function IO(t,e){var r;const n=(r=t.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===e.function.name});return{...e,function:{...e.function,parsed_arguments:ja(n)?n.$parseRaw(e.function.arguments):n!=null&&n.function.strict?JSON.parse(e.function.arguments):null}}}function OO(t,e){var r;if(!t)return!1;const n=(r=t.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===e.function.name});return ja(n)||(n==null?void 0:n.function.strict)||!1}function OS(t){var e;return Yf(t.response_format)?!0:((e=t.tools)==null?void 0:e.some(n=>ja(n)||n.type==="function"&&n.function.strict===!0))??!1}function $O(t){for(const e of t??[]){if(e.type!=="function")throw new Ze(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new Ze(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Cn,Bd,ac,Wd,Ud,Hd,$S,LS;const LO=10;class DS extends Xf{constructor(){super(...arguments),Cn.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){var r;this._chatCompletions.push(e),this._emit("chatCompletion",e);const n=(r=e.choices[0])==null?void 0:r.message;return n&&this._addMessage(n),e}_addMessage(e,n=!0){if("content"in e||(e.content=null),this.messages.push(e),n){if(this._emit("message",e),jS(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(sc(e)&&e.tool_calls)for(const r of e.tool_calls)r.type==="function"&&this._emit("functionToolCall",r.function)}}async finalChatCompletion(){await this.done();const e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new Ze("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),re(this,Cn,"m",Bd).call(this)}async finalMessage(){return await this.done(),re(this,Cn,"m",ac).call(this)}async finalFunctionToolCall(){return await this.done(),re(this,Cn,"m",Wd).call(this)}async finalFunctionToolCallResult(){return await this.done(),re(this,Cn,"m",Ud).call(this)}async totalUsage(){return await this.done(),re(this,Cn,"m",Hd).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);const n=re(this,Cn,"m",ac).call(this);n&&this._emit("finalMessage",n);const r=re(this,Cn,"m",Bd).call(this);r&&this._emit("finalContent",r);const s=re(this,Cn,"m",Wd).call(this);s&&this._emit("finalFunctionToolCall",s);const o=re(this,Cn,"m",Ud).call(this);o!=null&&this._emit("finalFunctionToolCallResult",o),this._chatCompletions.some(i=>i.usage)&&this._emit("totalUsage",re(this,Cn,"m",Hd).call(this))}async _createChatCompletion(e,n,r){const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Cn,"m",$S).call(this,n);const o=await e.chat.completions.create({...n,stream:!1},{...r,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Vf(o,n))}async _runChatCompletion(e,n,r){for(const s of n.messages)this._addMessage(s,!1);return await this._createChatCompletion(e,n,r)}async _runTools(e,n,r){var m,w,b;const s="tool",{tool_choice:o="auto",stream:i,...a}=n,c=typeof o!="string"&&((m=o==null?void 0:o.function)==null?void 0:m.name),{maxChatCompletions:d=LO}=r||{},f=n.tools.map(_=>{if(ja(_)){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 _}),p={};for(const _ of f)_.type==="function"&&(p[_.function.name||_.function.function.name]=_.function);const y="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 C=(w=(await this._createChatCompletion(e,{...a,tool_choice:o,tools:y,messages:[...this.messages]},r)).choices[0])==null?void 0:w.message;if(!C)throw new Ze("missing message in ChatCompletion response");if(!((b=C.tool_calls)!=null&&b.length))return;for(const T of C.tool_calls){if(T.type!=="function")continue;const k=T.id,{name:P,arguments:A}=T.function,j=p[P];if(j){if(c&&c!==P){const K=`Invalid tool_call: ${JSON.stringify(P)}. ${JSON.stringify(c)} requested. Please try again`;this._addMessage({role:s,tool_call_id:k,content:K});continue}}else{const K=`Invalid tool_call: ${JSON.stringify(P)}. Available options are: ${Object.keys(p).map(O=>JSON.stringify(O)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:k,content:K});continue}let $;try{$=AO(j)?await j.parse(A):A}catch(K){const O=K instanceof Error?K.message:String(K);this._addMessage({role:s,tool_call_id:k,content:O});continue}const F=await j.function($,this),X=re(this,Cn,"m",LS).call(this,F);if(this._addMessage({role:s,tool_call_id:k,content:X}),c)return}}}}Cn=new WeakSet,Bd=function(){return re(this,Cn,"m",ac).call(this).content??null},ac=function(){let e=this.messages.length;for(;e-- >0;){const n=this.messages[e];if(sc(n))return{...n,content:n.content??null,refusal:n.refusal??null}}throw new Ze("stream ended without producing a ChatCompletionMessage with role=assistant")},Wd=function(){var e,n;for(let r=this.messages.length-1;r>=0;r--){const s=this.messages[r];if(sc(s)&&((e=s==null?void 0:s.tool_calls)!=null&&e.length))return(n=s.tool_calls.at(-1))==null?void 0:n.function}},Ud=function(){for(let e=this.messages.length-1;e>=0;e--){const n=this.messages[e];if(jS(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}},Hd=function(){const e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:n}of this._chatCompletions)n&&(e.completion_tokens+=n.completion_tokens,e.prompt_tokens+=n.prompt_tokens,e.total_tokens+=n.total_tokens);return e},$S=function(e){if(e.n!=null&&e.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.")},LS=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};class Gf extends DS{static runTools(e,n,r){const s=new Gf,o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,n,o)),s}_addMessage(e,n=!0){super._addMessage(e,n),sc(e)&&e.content&&this._emit("content",e.content)}}const FS=1,NS=2,zS=4,BS=8,WS=16,US=32,HS=64,qS=128,KS=256,XS=qS|KS,YS=WS|US|XS|HS,VS=FS|NS|YS,GS=zS|BS,DO=VS|GS,sn={STR:FS,NUM:NS,ARR:zS,OBJ:BS,NULL:WS,BOOL:US,NAN:HS,INFINITY:qS,MINUS_INFINITY:KS,INF:XS,SPECIAL:YS,ATOM:VS,COLLECTION:GS,ALL:DO};class FO extends Error{}class NO extends Error{}function zO(t,e=sn.ALL){if(typeof t!="string")throw new TypeError(`expecting str, got ${typeof t}`);if(!t.trim())throw new Error(`${t} is empty`);return BO(t.trim(),e)}const BO=(t,e)=>{const n=t.length;let r=0;const s=y=>{throw new FO(`${y} at position ${r}`)},o=y=>{throw new NO(`${y} at position ${r}`)},i=()=>(p(),r>=n&&s("Unexpected end of input"),t[r]==='"'?a():t[r]==="{"?c():t[r]==="["?d():t.substring(r,r+4)==="null"||sn.NULL&e&&n-r<4&&"null".startsWith(t.substring(r))?(r+=4,null):t.substring(r,r+4)==="true"||sn.BOOL&e&&n-r<4&&"true".startsWith(t.substring(r))?(r+=4,!0):t.substring(r,r+5)==="false"||sn.BOOL&e&&n-r<5&&"false".startsWith(t.substring(r))?(r+=5,!1):t.substring(r,r+8)==="Infinity"||sn.INFINITY&e&&n-r<8&&"Infinity".startsWith(t.substring(r))?(r+=8,1/0):t.substring(r,r+9)==="-Infinity"||sn.MINUS_INFINITY&e&&1<n-r&&n-r<9&&"-Infinity".startsWith(t.substring(r))?(r+=9,-1/0):t.substring(r,r+3)==="NaN"||sn.NAN&e&&n-r<3&&"NaN".startsWith(t.substring(r))?(r+=3,NaN):f()),a=()=>{const y=r;let m=!1;for(r++;r<n&&(t[r]!=='"'||m&&t[r-1]==="\\");)m=t[r]==="\\"?!m:!1,r++;if(t.charAt(r)=='"')try{return JSON.parse(t.substring(y,++r-Number(m)))}catch(w){o(String(w))}else if(sn.STR&e)try{return JSON.parse(t.substring(y,r-Number(m))+'"')}catch{return JSON.parse(t.substring(y,t.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},c=()=>{r++,p();const y={};try{for(;t[r]!=="}";){if(p(),r>=n&&sn.OBJ&e)return y;const m=a();p(),r++;try{const w=i();Object.defineProperty(y,m,{value:w,writable:!0,enumerable:!0,configurable:!0})}catch(w){if(sn.OBJ&e)return y;throw w}p(),t[r]===","&&r++}}catch{if(sn.OBJ&e)return y;s("Expected '}' at end of object")}return r++,y},d=()=>{r++;const y=[];try{for(;t[r]!=="]";)y.push(i()),p(),t[r]===","&&r++}catch{if(sn.ARR&e)return y;s("Expected ']' at end of array")}return r++,y},f=()=>{if(r===0){t==="-"&&sn.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(t)}catch(m){if(sn.NUM&e)try{return t[t.length-1]==="."?JSON.parse(t.substring(0,t.lastIndexOf("."))):JSON.parse(t.substring(0,t.lastIndexOf("e")))}catch{}o(String(m))}}const y=r;for(t[r]==="-"&&r++;t[r]&&!",]}".includes(t[r]);)r++;r==n&&!(sn.NUM&e)&&s("Unterminated number literal");try{return JSON.parse(t.substring(y,r))}catch{t.substring(y,r)==="-"&&sn.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(t.substring(y,t.lastIndexOf("e")))}catch(w){o(String(w))}}},p=()=>{for(;r<n&&`
222
+ \r `.includes(t[r]);)r++};return i()},Ym=t=>zO(t,sn.ALL^sn.NUM);var Jt,Er,Gs,qr,Ru,ml,ju,Iu,Ou,gl,$u,Vm;class _a extends DS{constructor(e){super(),Jt.add(this),Er.set(this,void 0),Gs.set(this,void 0),qr.set(this,void 0),Qe(this,Er,e),Qe(this,Gs,[])}get currentChatCompletionSnapshot(){return re(this,qr,"f")}static fromReadableStream(e){const n=new _a(null);return n._run(()=>n._fromReadableStream(e)),n}static createChatCompletion(e,n,r){const s=new _a(n);return s._run(()=>s._runChatCompletion(e,{...n,stream:!0},{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createChatCompletion(e,n,r){var i;super._createChatCompletion;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Jt,"m",Ru).call(this);const o=await e.chat.completions.create({...n,stream:!0},{...r,signal:this.controller.signal});this._connected();for await(const a of o)re(this,Jt,"m",ju).call(this,a);if((i=o.controller.signal)!=null&&i.aborted)throw new Kn;return this._addChatCompletion(re(this,Jt,"m",gl).call(this))}async _fromReadableStream(e,n){var i;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),re(this,Jt,"m",Ru).call(this),this._connected();const s=_r.fromReadableStream(e,this.controller);let o;for await(const a of s)o&&o!==a.id&&this._addChatCompletion(re(this,Jt,"m",gl).call(this)),re(this,Jt,"m",ju).call(this,a),o=a.id;if((i=s.controller.signal)!=null&&i.aborted)throw new Kn;return this._addChatCompletion(re(this,Jt,"m",gl).call(this))}[(Er=new WeakMap,Gs=new WeakMap,qr=new WeakMap,Jt=new WeakSet,Ru=function(){this.ended||Qe(this,qr,void 0)},ml=function(n){let r=re(this,Gs,"f")[n.index];return r||(r={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},re(this,Gs,"f")[n.index]=r,r)},ju=function(n){var s,o,i,a,c,d,f,p,y,m,w,b,_,M,C;if(this.ended)return;const r=re(this,Jt,"m",Vm).call(this,n);this._emit("chunk",n,r);for(const T of n.choices){const k=r.choices[T.index];T.delta.content!=null&&((s=k.message)==null?void 0:s.role)==="assistant"&&((o=k.message)!=null&&o.content)&&(this._emit("content",T.delta.content,k.message.content),this._emit("content.delta",{delta:T.delta.content,snapshot:k.message.content,parsed:k.message.parsed})),T.delta.refusal!=null&&((i=k.message)==null?void 0:i.role)==="assistant"&&((a=k.message)!=null&&a.refusal)&&this._emit("refusal.delta",{delta:T.delta.refusal,snapshot:k.message.refusal}),((c=T.logprobs)==null?void 0:c.content)!=null&&((d=k.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(f=T.logprobs)==null?void 0:f.content,snapshot:((p=k.logprobs)==null?void 0:p.content)??[]}),((y=T.logprobs)==null?void 0:y.refusal)!=null&&((m=k.message)==null?void 0:m.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(w=T.logprobs)==null?void 0:w.refusal,snapshot:((b=k.logprobs)==null?void 0:b.refusal)??[]});const P=re(this,Jt,"m",ml).call(this,k);k.finish_reason&&(re(this,Jt,"m",Ou).call(this,k),P.current_tool_call_index!=null&&re(this,Jt,"m",Iu).call(this,k,P.current_tool_call_index));for(const A of T.delta.tool_calls??[])P.current_tool_call_index!==A.index&&(re(this,Jt,"m",Ou).call(this,k),P.current_tool_call_index!=null&&re(this,Jt,"m",Iu).call(this,k,P.current_tool_call_index)),P.current_tool_call_index=A.index;for(const A of T.delta.tool_calls??[]){const j=(_=k.message.tool_calls)==null?void 0:_[A.index];j!=null&&j.type&&((j==null?void 0:j.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(M=j.function)==null?void 0:M.name,index:A.index,arguments:j.function.arguments,parsed_arguments:j.function.parsed_arguments,arguments_delta:((C=A.function)==null?void 0:C.arguments)??""}):(j==null||j.type,void 0))}}},Iu=function(n,r){var i,a,c;if(re(this,Jt,"m",ml).call(this,n).done_tool_calls.has(r))return;const o=(i=n.message.tool_calls)==null?void 0:i[r];if(!o)throw new Error("no tool call snapshot");if(!o.type)throw new Error("tool call snapshot missing `type`");if(o.type==="function"){const d=(c=(a=re(this,Er,"f"))==null?void 0:a.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:ja(d)?d.$parseRaw(o.function.arguments):d!=null&&d.function.strict?JSON.parse(o.function.arguments):null})}else o.type},Ou=function(n){var s,o;const r=re(this,Jt,"m",ml).call(this,n);if(n.message.content&&!r.content_done){r.content_done=!0;const i=re(this,Jt,"m",$u).call(this);this._emit("content.done",{content:n.message.content,parsed:i?i.$parseRaw(n.message.content):null})}n.message.refusal&&!r.refusal_done&&(r.refusal_done=!0,this._emit("refusal.done",{refusal:n.message.refusal})),(s=n.logprobs)!=null&&s.content&&!r.logprobs_content_done&&(r.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:n.logprobs.content})),(o=n.logprobs)!=null&&o.refusal&&!r.logprobs_refusal_done&&(r.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:n.logprobs.refusal}))},gl=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=re(this,qr,"f");if(!n)throw new Ze("request ended without sending any chunks");return Qe(this,qr,void 0),Qe(this,Gs,[]),WO(n,re(this,Er,"f"))},$u=function(){var r;const n=(r=re(this,Er,"f"))==null?void 0:r.response_format;return Yf(n)?n:null},Vm=function(n){var r,s,o,i;let a=re(this,qr,"f");const{choices:c,...d}=n;a?Object.assign(a,d):a=Qe(this,qr,{...d,choices:[]});for(const{delta:f,finish_reason:p,index:y,logprobs:m=null,...w}of n.choices){let b=a.choices[y];if(b||(b=a.choices[y]={finish_reason:p,index:y,message:{},logprobs:m,...w}),m)if(!b.logprobs)b.logprobs=Object.assign({},m);else{const{content:A,refusal:j,...$}=m;Object.assign(b.logprobs,$),A&&((r=b.logprobs).content??(r.content=[]),b.logprobs.content.push(...A)),j&&((s=b.logprobs).refusal??(s.refusal=[]),b.logprobs.refusal.push(...j))}if(p&&(b.finish_reason=p,re(this,Er,"f")&&OS(re(this,Er,"f")))){if(p==="length")throw new pS;if(p==="content_filter")throw new mS}if(Object.assign(b,w),!f)continue;const{content:_,refusal:M,function_call:C,role:T,tool_calls:k,...P}=f;if(Object.assign(b.message,P),M&&(b.message.refusal=(b.message.refusal||"")+M),T&&(b.message.role=T),C&&(b.message.function_call?(C.name&&(b.message.function_call.name=C.name),C.arguments&&((o=b.message.function_call).arguments??(o.arguments=""),b.message.function_call.arguments+=C.arguments)):b.message.function_call=C),_&&(b.message.content=(b.message.content||"")+_,!b.message.refusal&&re(this,Jt,"m",$u).call(this)&&(b.message.parsed=Ym(b.message.content))),k){b.message.tool_calls||(b.message.tool_calls=[]);for(const{index:A,id:j,type:$,function:F,...X}of k){const K=(i=b.message.tool_calls)[A]??(i[A]={});Object.assign(K,X),j&&(K.id=j),$&&(K.type=$),F&&(K.function??(K.function={name:F.name??"",arguments:""})),F!=null&&F.name&&(K.function.name=F.name),F!=null&&F.arguments&&(K.function.arguments+=F.arguments,OO(re(this,Er,"f"),K)&&(K.function.parsed_arguments=Ym(K.function.arguments)))}}}return a},Symbol.asyncIterator)](){const e=[],n=[];let r=!1;return this.on("chunk",s=>{const o=n.shift();o?o.resolve(s):e.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()=>e.length?{value:e.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new _r(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function WO(t,e){const{id:n,choices:r,created:s,model:o,system_fingerprint:i,...a}=t,c={...a,id:n,choices:r.map(({message:d,finish_reason:f,index:p,logprobs:y,...m})=>{if(!f)throw new Ze(`missing finish_reason for choice ${p}`);const{content:w=null,function_call:b,tool_calls:_,...M}=d,C=d.role;if(!C)throw new Ze(`missing role for choice ${p}`);if(b){const{arguments:T,name:k}=b;if(T==null)throw new Ze(`missing function_call.arguments for choice ${p}`);if(!k)throw new Ze(`missing function_call.name for choice ${p}`);return{...m,message:{content:w,function_call:{arguments:T,name:k},role:C,refusal:d.refusal??null},finish_reason:f,index:p,logprobs:y}}return _?{...m,index:p,finish_reason:f,logprobs:y,message:{...M,role:C,content:w,refusal:d.refusal??null,tool_calls:_.map((T,k)=>{const{function:P,type:A,id:j,...$}=T,{arguments:F,name:X,...K}=P||{};if(j==null)throw new Ze(`missing choices[${p}].tool_calls[${k}].id
223
223
  ${yl(t)}`);if(A==null)throw new Ze(`missing choices[${p}].tool_calls[${k}].type
224
224
  ${yl(t)}`);if(X==null)throw new Ze(`missing choices[${p}].tool_calls[${k}].function.name
225
225
  ${yl(t)}`);if(F==null)throw new Ze(`missing choices[${p}].tool_calls[${k}].function.arguments
226
- ${yl(t)}`);return{...$,id:j,type:A,function:{...K,name:X,arguments:F}}})}}:{...m,message:{...M,content:w,role:C,refusal:d.refusal??null},finish_reason:f,index:p,logprobs:b}}),created:s,model:o,object:"chat.completion",...i?{system_fingerprint:i}:{}};return EO(c,e)}function yl(t){return JSON.stringify(t)}class lc extends _a{static fromReadableStream(e){const n=new lc(null);return n._run(()=>n._fromReadableStream(e)),n}static runTools(e,n,r){const s=new lc(n),o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,n,o)),s}}let Jf=class extends nt{constructor(){super(...arguments),this.messages=new PS(this._client)}create(e,n){return this._client.post("/chat/completions",{body:e,...n,stream:e.stream??!1})}retrieve(e,n){return this._client.get(Oe`/chat/completions/${e}`,n)}update(e,n,r){return this._client.post(Oe`/chat/completions/${e}`,{body:n,...r})}list(e={},n){return this._client.getAPIList("/chat/completions",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/chat/completions/${e}`,n)}parse(e,n){return RO(e.tools),this._client.chat.completions.create(e,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(r=>Vf(r,e))}runTools(e,n){return e.stream?lc.runTools(this._client,e,n):Gf.runTools(this._client,e,n)}stream(e,n){return _a.createChatCompletion(this._client,e,n)}};Jf.Messages=PS;class Qf extends nt{constructor(){super(...arguments),this.completions=new Jf(this._client)}}Qf.Completions=Jf;const YS=Symbol("brand.privateNullableHeaders");function*NO(t){if(!t)return;if(YS in t){const{values:r,nulls:s}=t;yield*r.entries();for(const o of s)yield[o,null];return}let e=!1,n;t instanceof Headers?n=t.entries():Im(t)?n=t:(e=!0,n=Object.entries(t??{}));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=Im(r[1])?r[1]:[r[1]];let i=!1;for(const a of o)a!==void 0&&(e&&!i&&(i=!0,yield[s,null]),yield[s,a])}}const Ke=t=>{const e=new Headers,n=new Set;for(const r of t){const s=new Set;for(const[o,i]of NO(r)){const a=o.toLowerCase();s.has(a)||(e.delete(o),s.add(a)),i===null?(e.delete(o),n.add(a)):(e.append(o,i),n.delete(a))}}return{[YS]:!0,values:e,nulls:n}};class VS extends nt{create(e,n){return this._client.post("/audio/speech",{body:e,...n,headers:Ke([{Accept:"application/octet-stream"},n==null?void 0:n.headers]),__binaryResponse:!0})}}class GS extends nt{create(e,n){return this._client.post("/audio/transcriptions",Is({body:e,...n,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}}class JS extends nt{create(e,n){return this._client.post("/audio/translations",Is({body:e,...n,__metadata:{model:e.model}},this._client))}}class Ia extends nt{constructor(){super(...arguments),this.transcriptions=new GS(this._client),this.translations=new JS(this._client),this.speech=new VS(this._client)}}Ia.Transcriptions=GS;Ia.Translations=JS;Ia.Speech=VS;class QS extends nt{create(e,n){return this._client.post("/batches",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/batches/${e}`,n)}list(e={},n){return this._client.getAPIList("/batches",Yt,{query:e,...n})}cancel(e,n){return this._client.post(Oe`/batches/${e}/cancel`,n)}}class ZS extends nt{create(e,n){return this._client.post("/assistants",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,n){return this._client.get(Oe`/assistants/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,n,r){return this._client.post(Oe`/assistants/${e}`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e={},n){return this._client.getAPIList("/assistants",Yt,{query:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,n){return this._client.delete(Oe`/assistants/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class ew extends nt{create(e,n){return this._client.post("/realtime/sessions",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class tw extends nt{create(e,n){return this._client.post("/realtime/transcription_sessions",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Mc extends nt{constructor(){super(...arguments),this.sessions=new ew(this._client),this.transcriptionSessions=new tw(this._client)}}Mc.Sessions=ew;Mc.TranscriptionSessions=tw;class nw extends nt{create(e,n,r){return this._client.post(Oe`/threads/${e}/messages`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(e,n,r){const{thread_id:s}=n;return this._client.get(Oe`/threads/${s}/messages/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(e,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/messages/${e}`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n={},r){return this._client.getAPIList(Oe`/threads/${e}/messages`,Yt,{query:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(e,n,r){const{thread_id:s}=n;return this._client.delete(Oe`/threads/${s}/messages/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class rw extends nt{retrieve(e,n,r){const{thread_id:s,run_id:o,...i}=n;return this._client.get(Oe`/threads/${s}/runs/${o}/steps/${e}`,{query:i,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n,r){const{thread_id:s,...o}=n;return this._client.getAPIList(Oe`/threads/${s}/runs/${e}/steps`,Yt,{query:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}const zO=t=>{if(typeof Buffer<"u"){const e=Buffer.from(t,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{const e=atob(t),n=e.length,r=new Uint8Array(n);for(let s=0;s<n;s++)r[s]=e.charCodeAt(s);return Array.from(new Float32Array(r.buffer))}};var Lu={};const Js=t=>{var e,n,r,s;if(typeof globalThis.process<"u")return((e=Lu==null?void 0:Lu[t])==null?void 0:e.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,t))==null?void 0:s.trim()};var dn,ks,qd,gr,$l,tr,Ts,io,ys,cc,$n,Ll,Dl,la,Qi,Zi,Vm,Gm,Jm,Qm,Zm,eg,tg;class ca extends Xf{constructor(){super(...arguments),dn.add(this),qd.set(this,[]),gr.set(this,{}),$l.set(this,{}),tr.set(this,void 0),Ts.set(this,void 0),io.set(this,void 0),ys.set(this,void 0),cc.set(this,void 0),$n.set(this,void 0),Ll.set(this,void 0),Dl.set(this,void 0),la.set(this,void 0)}[(qd=new WeakMap,gr=new WeakMap,$l=new WeakMap,tr=new WeakMap,Ts=new WeakMap,io=new WeakMap,ys=new WeakMap,cc=new WeakMap,$n=new WeakMap,Ll=new WeakMap,Dl=new WeakMap,la=new WeakMap,dn=new WeakSet,Symbol.asyncIterator)](){const e=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):e.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()=>e.length?{value:e.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){const n=new ks;return n._run(()=>n._fromReadableStream(e)),n}async _fromReadableStream(e,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=_r.fromReadableStream(e,this.controller);for await(const i of s)re(this,dn,"m",Qi).call(this,i);if((o=s.controller.signal)!=null&&o.aborted)throw new Kn;return this._addRun(re(this,dn,"m",Zi).call(this))}toReadableStream(){return new _r(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,n,r,s){const o=new ks;return o._run(()=>o._runToolAssistantStream(e,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}async _createToolAssistantStream(e,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 i={...r,stream:!0},a=await e.submitToolOutputs(n,i,{...s,signal:this.controller.signal});this._connected();for await(const d of a)re(this,dn,"m",Qi).call(this,d);if((c=a.controller.signal)!=null&&c.aborted)throw new Kn;return this._addRun(re(this,dn,"m",Zi).call(this))}static createThreadAssistantStream(e,n,r){const s=new ks;return s._run(()=>s._threadAssistantStream(e,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(e,n,r,s){const o=new ks;return o._run(()=>o._runAssistantStream(e,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}currentEvent(){return re(this,Ll,"f")}currentRun(){return re(this,Dl,"f")}currentMessageSnapshot(){return re(this,tr,"f")}currentRunStepSnapshot(){return re(this,la,"f")}async finalRunSteps(){return await this.done(),Object.values(re(this,gr,"f"))}async finalMessages(){return await this.done(),Object.values(re(this,$l,"f"))}async finalRun(){if(await this.done(),!re(this,Ts,"f"))throw Error("Final run was not received.");return re(this,Ts,"f")}async _createThreadAssistantStream(e,n,r){var a;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));const o={...n,stream:!0},i=await e.createAndRun(o,{...r,signal:this.controller.signal});this._connected();for await(const c of i)re(this,dn,"m",Qi).call(this,c);if((a=i.controller.signal)!=null&&a.aborted)throw new Kn;return this._addRun(re(this,dn,"m",Zi).call(this))}async _createAssistantStream(e,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 i={...r,stream:!0},a=await e.create(n,i,{...s,signal:this.controller.signal});this._connected();for await(const d of a)re(this,dn,"m",Qi).call(this,d);if((c=a.controller.signal)!=null&&c.aborted)throw new Kn;return this._addRun(re(this,dn,"m",Zi).call(this))}static accumulateDelta(e,n){for(const[r,s]of Object.entries(n)){if(!e.hasOwnProperty(r)){e[r]=s;continue}let o=e[r];if(o==null){e[r]=s;continue}if(r==="index"||r==="type"){e[r]=s;continue}if(typeof o=="string"&&typeof s=="string")o+=s;else if(typeof o=="number"&&typeof s=="number")o+=s;else if(Pu(o)&&Pu(s))o=this.accumulateDelta(o,s);else if(Array.isArray(o)&&Array.isArray(s)){if(o.every(i=>typeof i=="string"||typeof i=="number")){o.push(...s);continue}for(const i of s){if(!Pu(i))throw new Error(`Expected array delta entry to be an object but got: ${i}`);const a=i.index;if(a==null)throw console.error(i),new Error("Expected array delta entry to have an `index` property");if(typeof a!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${a}`);const c=o[a];c==null?o.push(i):o[a]=this.accumulateDelta(c,i)}continue}else throw Error(`Unhandled record type: ${r}, deltaValue: ${s}, accValue: ${o}`);e[r]=o}return e}_addRun(e){return e}async _threadAssistantStream(e,n,r){return await this._createThreadAssistantStream(n,e,r)}async _runAssistantStream(e,n,r,s){return await this._createAssistantStream(n,e,r,s)}async _runToolAssistantStream(e,n,r,s){return await this._createToolAssistantStream(n,e,r,s)}}ks=ca,Qi=function(e){if(!this.ended)switch(Qe(this,Ll,e),re(this,dn,"m",Jm).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":re(this,dn,"m",tg).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":re(this,dn,"m",Gm).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":re(this,dn,"m",Vm).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},Zi=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");if(!re(this,Ts,"f"))throw Error("Final run has not been received");return re(this,Ts,"f")},Vm=function(e){const[n,r]=re(this,dn,"m",Zm).call(this,e,re(this,tr,"f"));Qe(this,tr,n),re(this,$l,"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(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,n),e.data.delta.content)for(const s of e.data.delta.content){if(s.type=="text"&&s.text){let o=s.text,i=n.content[s.index];if(i&&i.type=="text")this._emit("textDelta",o,i.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=re(this,io,"f")){if(re(this,ys,"f"))switch(re(this,ys,"f").type){case"text":this._emit("textDone",re(this,ys,"f").text,re(this,tr,"f"));break;case"image_file":this._emit("imageFileDone",re(this,ys,"f").image_file,re(this,tr,"f"));break}Qe(this,io,s.index)}Qe(this,ys,n.content[s.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(re(this,io,"f")!==void 0){const s=e.data.content[re(this,io,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,re(this,tr,"f"));break;case"text":this._emit("textDone",s.text,re(this,tr,"f"));break}}re(this,tr,"f")&&this._emit("messageDone",e.data),Qe(this,tr,void 0)}},Gm=function(e){const n=re(this,dn,"m",Qm).call(this,e);switch(Qe(this,la,n),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":const r=e.data.delta;if(r.step_details&&r.step_details.type=="tool_calls"&&r.step_details.tool_calls&&n.step_details.type=="tool_calls")for(const o of r.step_details.tool_calls)o.index==re(this,cc,"f")?this._emit("toolCallDelta",o,n.step_details.tool_calls[o.index]):(re(this,$n,"f")&&this._emit("toolCallDone",re(this,$n,"f")),Qe(this,cc,o.index),Qe(this,$n,n.step_details.tool_calls[o.index]),re(this,$n,"f")&&this._emit("toolCallCreated",re(this,$n,"f")));this._emit("runStepDelta",e.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,la,void 0),e.data.step_details.type=="tool_calls"&&re(this,$n,"f")&&(this._emit("toolCallDone",re(this,$n,"f")),Qe(this,$n,void 0)),this._emit("runStepDone",e.data,n);break}},Jm=function(e){re(this,qd,"f").push(e),this._emit("event",e)},Qm=function(e){switch(e.event){case"thread.run.step.created":return re(this,gr,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let n=re(this,gr,"f")[e.data.id];if(!n)throw Error("Received a RunStepDelta before creation of a snapshot");let r=e.data;if(r.delta){const s=ks.accumulateDelta(n,r.delta);re(this,gr,"f")[e.data.id]=s}return re(this,gr,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":re(this,gr,"f")[e.data.id]=e.data;break}if(re(this,gr,"f")[e.data.id])return re(this,gr,"f")[e.data.id];throw new Error("No snapshot available")},Zm=function(e,n){let r=[];switch(e.event){case"thread.message.created":return[e.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=e.data;if(s.delta.content)for(const o of s.delta.content)if(o.index in n.content){let i=n.content[o.index];n.content[o.index]=re(this,dn,"m",eg).call(this,o,i)}else n.content[o.index]=o,r.push(o);return[n,r];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(n)return[n,r];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},eg=function(e,n){return ks.accumulateDelta(n,e)},tg=function(e){switch(Qe(this,Dl,e.data),e.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,e.data),re(this,$n,"f")&&(this._emit("toolCallDone",re(this,$n,"f")),Qe(this,$n,void 0));break}};let Zf=class extends nt{constructor(){super(...arguments),this.steps=new rw(this._client)}create(e,n,r){const{include:s,...o}=n;return this._client.post(Oe`/threads/${e}/runs`,{query:{include:s},body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}retrieve(e,n,r){const{thread_id:s}=n;return this._client.get(Oe`/threads/${s}/runs/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(e,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/runs/${e}`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n={},r){return this._client.getAPIList(Oe`/threads/${e}/runs`,Yt,{query:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(e,n,r){const{thread_id:s}=n;return this._client.post(Oe`/threads/${s}/runs/${e}/cancel`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(e,n,r){const s=await this.create(e,n,r);return await this.poll(s.id,{thread_id:e},r)}createAndStream(e,n,r){return ca.createAssistantStream(e,this._client.beta.threads.runs,n,r)}async poll(e,n,r){var o;const s=Ke([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:a}=await this.retrieve(e,n,{...r,headers:{...r==null?void 0:r.headers,...s}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=a.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await Ra(c);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,n,r){return ca.createAssistantStream(e,this._client.beta.threads.runs,n,r)}submitToolOutputs(e,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/runs/${e}/submit_tool_outputs`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}async submitToolOutputsAndPoll(e,n,r){const s=await this.submitToolOutputs(e,n,r);return await this.poll(s.id,n,r)}submitToolOutputsStream(e,n,r){return ca.createToolAssistantStream(e,this._client.beta.threads.runs,n,r)}};Zf.Steps=rw;class Ac extends nt{constructor(){super(...arguments),this.runs=new Zf(this._client),this.messages=new nw(this._client)}create(e={},n){return this._client.post("/threads",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,n){return this._client.get(Oe`/threads/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,n,r){return this._client.post(Oe`/threads/${e}`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(e,n){return this._client.delete(Oe`/threads/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}createAndRun(e,n){return this._client.post("/threads/runs",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:e.stream??!1})}async createAndRunPoll(e,n){const r=await this.createAndRun(e,n);return await this.runs.poll(r.id,{thread_id:r.thread_id},n)}createAndRunStream(e,n){return ca.createThreadAssistantStream(e,this._client.beta.threads,n)}}Ac.Runs=Zf;Ac.Messages=nw;class Oa extends nt{constructor(){super(...arguments),this.realtime=new Mc(this._client),this.assistants=new ZS(this._client),this.threads=new Ac(this._client)}}Oa.Realtime=Mc;Oa.Assistants=ZS;Oa.Threads=Ac;class sw extends nt{create(e,n){return this._client.post("/completions",{body:e,...n,stream:e.stream??!1})}}let ow=class extends nt{retrieve(e,n,r){const{container_id:s}=n;return this._client.get(Oe`/containers/${s}/files/${e}/content`,{...r,headers:Ke([{Accept:"application/binary"},r==null?void 0:r.headers]),__binaryResponse:!0})}},eh=class extends nt{constructor(){super(...arguments),this.content=new ow(this._client)}create(e,n,r){return this._client.post(Oe`/containers/${e}/files`,Is({body:n,...r},this._client))}retrieve(e,n,r){const{container_id:s}=n;return this._client.get(Oe`/containers/${s}/files/${e}`,r)}list(e,n={},r){return this._client.getAPIList(Oe`/containers/${e}/files`,Yt,{query:n,...r})}delete(e,n,r){const{container_id:s}=n;return this._client.delete(Oe`/containers/${s}/files/${e}`,{...r,headers:Ke([{Accept:"*/*"},r==null?void 0:r.headers])})}};eh.Content=ow;class th extends nt{constructor(){super(...arguments),this.files=new eh(this._client)}create(e,n){return this._client.post("/containers",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/containers/${e}`,n)}list(e={},n){return this._client.getAPIList("/containers",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/containers/${e}`,{...n,headers:Ke([{Accept:"*/*"},n==null?void 0:n.headers])})}}th.Files=eh;class iw extends nt{create(e,n){const r=!!e.encoding_format;let s=r?e.encoding_format:"base64";r&&un(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);const o=this._client.post("/embeddings",{body:{...e,encoding_format:s},...n});return r?o:(un(this._client).debug("embeddings/decoding base64 embeddings from base64"),o._thenUnwrap(i=>(i&&i.data&&i.data.forEach(a=>{const c=a.embedding;a.embedding=zO(c)}),i)))}}class aw extends nt{retrieve(e,n,r){const{eval_id:s,run_id:o}=n;return this._client.get(Oe`/evals/${s}/runs/${o}/output_items/${e}`,r)}list(e,n,r){const{eval_id:s,...o}=n;return this._client.getAPIList(Oe`/evals/${s}/runs/${e}/output_items`,Yt,{query:o,...r})}}class nh extends nt{constructor(){super(...arguments),this.outputItems=new aw(this._client)}create(e,n,r){return this._client.post(Oe`/evals/${e}/runs`,{body:n,...r})}retrieve(e,n,r){const{eval_id:s}=n;return this._client.get(Oe`/evals/${s}/runs/${e}`,r)}list(e,n={},r){return this._client.getAPIList(Oe`/evals/${e}/runs`,Yt,{query:n,...r})}delete(e,n,r){const{eval_id:s}=n;return this._client.delete(Oe`/evals/${s}/runs/${e}`,r)}cancel(e,n,r){const{eval_id:s}=n;return this._client.post(Oe`/evals/${s}/runs/${e}`,r)}}nh.OutputItems=aw;class rh extends nt{constructor(){super(...arguments),this.runs=new nh(this._client)}create(e,n){return this._client.post("/evals",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/evals/${e}`,n)}update(e,n,r){return this._client.post(Oe`/evals/${e}`,{body:n,...r})}list(e={},n){return this._client.getAPIList("/evals",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/evals/${e}`,n)}}rh.Runs=nh;let lw=class extends nt{create(e,n){return this._client.post("/files",Is({body:e,...n},this._client))}retrieve(e,n){return this._client.get(Oe`/files/${e}`,n)}list(e={},n){return this._client.getAPIList("/files",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/files/${e}`,n)}content(e,n){return this._client.get(Oe`/files/${e}/content`,{...n,headers:Ke([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:n=5e3,maxWait:r=30*60*1e3}={}){const s=new Set(["processed","error","deleted"]),o=Date.now();let i=await this.retrieve(e);for(;!i.status||!s.has(i.status);)if(await Ra(n),i=await this.retrieve(e),Date.now()-o>r)throw new qf({message:`Giving up on waiting for file ${e} to finish processing after ${r} milliseconds.`});return i}};class cw extends nt{}let uw=class extends nt{run(e,n){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...n})}validate(e,n){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...n})}};class sh extends nt{constructor(){super(...arguments),this.graders=new uw(this._client)}}sh.Graders=uw;class dw extends nt{create(e,n,r){return this._client.getAPIList(Oe`/fine_tuning/checkpoints/${e}/permissions`,Pc,{body:n,method:"post",...r})}retrieve(e,n={},r){return this._client.get(Oe`/fine_tuning/checkpoints/${e}/permissions`,{query:n,...r})}delete(e,n,r){const{fine_tuned_model_checkpoint:s}=n;return this._client.delete(Oe`/fine_tuning/checkpoints/${s}/permissions/${e}`,r)}}let oh=class extends nt{constructor(){super(...arguments),this.permissions=new dw(this._client)}};oh.Permissions=dw;class fw extends nt{list(e,n={},r){return this._client.getAPIList(Oe`/fine_tuning/jobs/${e}/checkpoints`,Yt,{query:n,...r})}}class ih extends nt{constructor(){super(...arguments),this.checkpoints=new fw(this._client)}create(e,n){return this._client.post("/fine_tuning/jobs",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/fine_tuning/jobs/${e}`,n)}list(e={},n){return this._client.getAPIList("/fine_tuning/jobs",Yt,{query:e,...n})}cancel(e,n){return this._client.post(Oe`/fine_tuning/jobs/${e}/cancel`,n)}listEvents(e,n={},r){return this._client.getAPIList(Oe`/fine_tuning/jobs/${e}/events`,Yt,{query:n,...r})}pause(e,n){return this._client.post(Oe`/fine_tuning/jobs/${e}/pause`,n)}resume(e,n){return this._client.post(Oe`/fine_tuning/jobs/${e}/resume`,n)}}ih.Checkpoints=fw;class To extends nt{constructor(){super(...arguments),this.methods=new cw(this._client),this.jobs=new ih(this._client),this.checkpoints=new oh(this._client),this.alpha=new sh(this._client)}}To.Methods=cw;To.Jobs=ih;To.Checkpoints=oh;To.Alpha=sh;class hw extends nt{}class ah extends nt{constructor(){super(...arguments),this.graderModels=new hw(this._client)}}ah.GraderModels=hw;class pw extends nt{createVariation(e,n){return this._client.post("/images/variations",Is({body:e,...n},this._client))}edit(e,n){return this._client.post("/images/edits",Is({body:e,...n,stream:e.stream??!1},this._client))}generate(e,n){return this._client.post("/images/generations",{body:e,...n,stream:e.stream??!1})}}class mw extends nt{retrieve(e,n){return this._client.get(Oe`/models/${e}`,n)}list(e){return this._client.getAPIList("/models",Pc,e)}delete(e,n){return this._client.delete(Oe`/models/${e}`,n)}}class gw extends nt{create(e,n){return this._client.post("/moderations",{body:e,...n})}}function BO(t,e){return!e||!UO(e)?{...t,output_parsed:null,output:t.output.map(n=>n.type==="function_call"?{...n,parsed_arguments:null}:n.type==="message"?{...n,content:n.content.map(r=>({...r,parsed:null}))}:n)}:yw(t,e)}function yw(t,e){const n=t.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:KO(e,s)};if(s.type==="message"){const o=s.content.map(i=>i.type==="output_text"?{...i,parsed:WO(e,i.text)}:i);return{...s,content:o}}return s}),r=Object.assign({},t,{output:n});return Object.getOwnPropertyDescriptor(t,"output_text")||Kd(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 WO(t,e){var n,r,s,o;return((r=(n=t.text)==null?void 0:n.format)==null?void 0:r.type)!=="json_schema"?null:"$parseRaw"in((s=t.text)==null?void 0:s.format)?((o=t.text)==null?void 0:o.format).$parseRaw(e):JSON.parse(e)}function UO(t){var e;return!!Yf((e=t.text)==null?void 0:e.format)}function HO(t){return(t==null?void 0:t.$brand)==="auto-parseable-tool"}function qO(t,e){return t.find(n=>n.type==="function"&&n.name===e)}function KO(t,e){const n=qO(t.tools??[],e.name);return{...e,...e,parsed_arguments:HO(n)?n.$parseRaw(e.arguments):n!=null&&n.strict?JSON.parse(e.arguments):null}}function Kd(t){const e=[];for(const n of t.output)if(n.type==="message")for(const r of n.content)r.type==="output_text"&&e.push(r.text);t.output_text=e.join("")}var Qs,bl,qr,vl,ng,rg,sg,og;class lh extends Xf{constructor(e){super(),Qs.add(this),bl.set(this,void 0),qr.set(this,void 0),vl.set(this,void 0),Qe(this,bl,e)}static createResponse(e,n,r){const s=new lh(n);return s._run(()=>s._createOrRetrieveResponse(e,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(e,n,r){var a;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Qs,"m",ng).call(this);let o,i=null;"response_id"in n?(o=await e.responses.retrieve(n.response_id,{stream:!0},{...r,signal:this.controller.signal,stream:!0}),i=n.starting_after??null):o=await e.responses.create({...n,stream:!0},{...r,signal:this.controller.signal}),this._connected();for await(const c of o)re(this,Qs,"m",rg).call(this,c,i);if((a=o.controller.signal)!=null&&a.aborted)throw new Kn;return re(this,Qs,"m",sg).call(this)}[(bl=new WeakMap,qr=new WeakMap,vl=new WeakMap,Qs=new WeakSet,ng=function(){this.ended||Qe(this,qr,void 0)},rg=function(n,r){if(this.ended)return;const s=(i,a)=>{(r==null||a.sequence_number>r)&&this._emit(i,a)},o=re(this,Qs,"m",og).call(this,n);switch(s("event",n),n.type){case"response.output_text.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);if(i.type==="message"){const a=i.content[n.content_index];if(!a)throw new Ze(`missing content at index ${n.content_index}`);if(a.type!=="output_text")throw new Ze(`expected content to be 'output_text', got ${a.type}`);s("response.output_text.delta",{...n,snapshot:a.text})}break}case"response.function_call_arguments.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);i.type==="function_call"&&s("response.function_call_arguments.delta",{...n,snapshot:i.arguments});break}default:s(n.type,n);break}},sg=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=re(this,qr,"f");if(!n)throw new Ze("request ended without sending any events");Qe(this,qr,void 0);const r=XO(n,re(this,bl,"f"));return Qe(this,vl,r),r},og=function(n){let r=re(this,qr,"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,qr,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,qr,n.response);break}}return r},Symbol.asyncIterator)](){const e=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):e.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()=>e.length?{value:e.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const e=re(this,vl,"f");if(!e)throw new Ze("stream ended without producing a ChatCompletion");return e}}function XO(t,e){return BO(t,e)}class bw extends nt{list(e,n={},r){return this._client.getAPIList(Oe`/responses/${e}/input_items`,Yt,{query:n,...r})}}class ch extends nt{constructor(){super(...arguments),this.inputItems=new bw(this._client)}create(e,n){return this._client.post("/responses",{body:e,...n,stream:e.stream??!1})._thenUnwrap(r=>("object"in r&&r.object==="response"&&Kd(r),r))}retrieve(e,n={},r){return this._client.get(Oe`/responses/${e}`,{query:n,...r,stream:(n==null?void 0:n.stream)??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&Kd(s),s))}delete(e,n){return this._client.delete(Oe`/responses/${e}`,{...n,headers:Ke([{Accept:"*/*"},n==null?void 0:n.headers])})}parse(e,n){return this._client.responses.create(e,n)._thenUnwrap(r=>yw(r,e))}stream(e,n){return lh.createResponse(this._client,e,n)}cancel(e,n){return this._client.post(Oe`/responses/${e}/cancel`,n)}}ch.InputItems=bw;class vw extends nt{create(e,n,r){return this._client.post(Oe`/uploads/${e}/parts`,Is({body:n,...r},this._client))}}class uh extends nt{constructor(){super(...arguments),this.parts=new vw(this._client)}create(e,n){return this._client.post("/uploads",{body:e,...n})}cancel(e,n){return this._client.post(Oe`/uploads/${e}/cancel`,n)}complete(e,n,r){return this._client.post(Oe`/uploads/${e}/complete`,{body:n,...r})}}uh.Parts=vw;const YO=async t=>{const e=await Promise.allSettled(t),n=e.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 e)s.status==="fulfilled"&&r.push(s.value);return r};class Sw extends nt{create(e,n,r){return this._client.post(Oe`/vector_stores/${e}/file_batches`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(e,n,r){const{vector_store_id:s}=n;return this._client.get(Oe`/vector_stores/${s}/file_batches/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(e,n,r){const{vector_store_id:s}=n;return this._client.post(Oe`/vector_stores/${s}/file_batches/${e}/cancel`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(e,n,r){const s=await this.create(e,n);return await this.poll(e,s.id,r)}listFiles(e,n,r){const{vector_store_id:s,...o}=n;return this._client.getAPIList(Oe`/vector_stores/${s}/file_batches/${e}/files`,Yt,{query:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async poll(e,n,r){var o;const s=Ke([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:a}=await this.retrieve(n,{vector_store_id:e},{...r,headers:s}).withResponse();switch(i.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=a.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await Ra(c);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:n,fileIds:r=[]},s){if(n==null||n.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const o=(s==null?void 0:s.maxConcurrency)??5,i=Math.min(o,n.length),a=this._client,c=n.values(),d=[...r];async function f(b){for(let m of b){const w=await a.files.create({file:m,purpose:"assistants"},s);d.push(w.id)}}const p=Array(i).fill(c).map(f);return await YO(p),await this.createAndPoll(e,{file_ids:d})}}class ww extends nt{create(e,n,r){return this._client.post(Oe`/vector_stores/${e}/files`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(e,n,r){const{vector_store_id:s}=n;return this._client.get(Oe`/vector_stores/${s}/files/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(e,n,r){const{vector_store_id:s,...o}=n;return this._client.post(Oe`/vector_stores/${s}/files/${e}`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n={},r){return this._client.getAPIList(Oe`/vector_stores/${e}/files`,Yt,{query:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(e,n,r){const{vector_store_id:s}=n;return this._client.delete(Oe`/vector_stores/${s}/files/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(e,n,r){const s=await this.create(e,n,r);return await this.poll(e,s.id,r)}async poll(e,n,r){var o;const s=Ke([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const i=await this.retrieve(n,{vector_store_id:e},{...r,headers:s}).withResponse(),a=i.data;switch(a.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=i.response.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await Ra(c);break;case"failed":case"completed":return a}}}async upload(e,n,r){const s=await this._client.files.create({file:n,purpose:"assistants"},r);return this.create(e,{file_id:s.id},r)}async uploadAndPoll(e,n,r){const s=await this.upload(e,n,r);return await this.poll(e,s.id,r)}content(e,n,r){const{vector_store_id:s}=n;return this._client.getAPIList(Oe`/vector_stores/${s}/files/${e}/content`,Pc,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class Rc extends nt{constructor(){super(...arguments),this.files=new ww(this._client),this.fileBatches=new Sw(this._client)}create(e,n){return this._client.post("/vector_stores",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,n){return this._client.get(Oe`/vector_stores/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,n,r){return this._client.post(Oe`/vector_stores/${e}`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e={},n){return this._client.getAPIList("/vector_stores",Yt,{query:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,n){return this._client.delete(Oe`/vector_stores/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}search(e,n,r){return this._client.getAPIList(Oe`/vector_stores/${e}/search`,Pc,{body:n,method:"post",...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}Rc.Files=ww;Rc.FileBatches=Sw;var no,xw,Fl;class _w extends nt{constructor(){super(...arguments),no.add(this)}async unwrap(e,n,r=this._client.webhookSecret,s=300){return await this.verifySignature(e,n,r,s),JSON.parse(e)}async verifySignature(e,n,r=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");re(this,no,"m",xw).call(this,r);const o=Ke([n]).values,i=re(this,no,"m",Fl).call(this,o,"webhook-signature"),a=re(this,no,"m",Fl).call(this,o,"webhook-timestamp"),c=re(this,no,"m",Fl).call(this,o,"webhook-id"),d=parseInt(a,10);if(isNaN(d))throw new qi("Invalid webhook timestamp format");const f=Math.floor(Date.now()/1e3);if(f-d>s)throw new qi("Webhook timestamp is too old");if(d>f+s)throw new qi("Webhook timestamp is too new");const p=i.split(" ").map(y=>y.startsWith("v1,")?y.substring(3):y),b=r.startsWith("whsec_")?Buffer.from(r.replace("whsec_",""),"base64"):Buffer.from(r,"utf-8"),m=c?`${c}.${a}.${e}`:`${a}.${e}`,w=await crypto.subtle.importKey("raw",b,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(const y of p)try{const _=Buffer.from(y,"base64");if(await crypto.subtle.verify("HMAC",w,_,new TextEncoder().encode(m)))return}catch{continue}throw new qi("The given webhook signature does not match the expected signature")}}no=new WeakSet,xw=function(e){if(typeof e!="string"||e.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")},Fl=function(e,n){if(!e)throw new Error("Headers are required");const r=e.get(n);if(r==null)throw new Error(`Missing required header: ${n}`);return r};var Xd,dh,Nl,Cw;class dt{constructor({baseURL:e=Js("OPENAI_BASE_URL"),apiKey:n=Js("OPENAI_API_KEY"),organization:r=Js("OPENAI_ORG_ID")??null,project:s=Js("OPENAI_PROJECT_ID")??null,webhookSecret:o=Js("OPENAI_WEBHOOK_SECRET")??null,...i}={}){if(Xd.add(this),Nl.set(this,void 0),this.completions=new sw(this),this.chat=new Qf(this),this.embeddings=new iw(this),this.files=new lw(this),this.images=new pw(this),this.audio=new Ia(this),this.moderations=new gw(this),this.models=new mw(this),this.fineTuning=new To(this),this.graders=new ah(this),this.vectorStores=new Rc(this),this.webhooks=new _w(this),this.beta=new Oa(this),this.batches=new QS(this),this.uploads=new uh(this),this.responses=new ch(this),this.evals=new rh(this),this.containers=new th(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 a={apiKey:n,organization:r,project:s,webhookSecret:o,...i,baseURL:e||"https://api.openai.com/v1"};if(!a.dangerouslyAllowBrowser&&VI())throw new Ze(`It looks like you're running in a browser-like environment.
226
+ ${yl(t)}`);return{...$,id:j,type:A,function:{...K,name:X,arguments:F}}})}}:{...m,message:{...M,content:w,role:C,refusal:d.refusal??null},finish_reason:f,index:p,logprobs:y}}),created:s,model:o,object:"chat.completion",...i?{system_fingerprint:i}:{}};return RO(c,e)}function yl(t){return JSON.stringify(t)}class lc extends _a{static fromReadableStream(e){const n=new lc(null);return n._run(()=>n._fromReadableStream(e)),n}static runTools(e,n,r){const s=new lc(n),o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,n,o)),s}}let Jf=class extends nt{constructor(){super(...arguments),this.messages=new RS(this._client)}create(e,n){return this._client.post("/chat/completions",{body:e,...n,stream:e.stream??!1})}retrieve(e,n){return this._client.get(Oe`/chat/completions/${e}`,n)}update(e,n,r){return this._client.post(Oe`/chat/completions/${e}`,{body:n,...r})}list(e={},n){return this._client.getAPIList("/chat/completions",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/chat/completions/${e}`,n)}parse(e,n){return $O(e.tools),this._client.chat.completions.create(e,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(r=>Vf(r,e))}runTools(e,n){return e.stream?lc.runTools(this._client,e,n):Gf.runTools(this._client,e,n)}stream(e,n){return _a.createChatCompletion(this._client,e,n)}};Jf.Messages=RS;class Qf extends nt{constructor(){super(...arguments),this.completions=new Jf(this._client)}}Qf.Completions=Jf;const JS=Symbol("brand.privateNullableHeaders");function*UO(t){if(!t)return;if(JS in t){const{values:r,nulls:s}=t;yield*r.entries();for(const o of s)yield[o,null];return}let e=!1,n;t instanceof Headers?n=t.entries():Om(t)?n=t:(e=!0,n=Object.entries(t??{}));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=Om(r[1])?r[1]:[r[1]];let i=!1;for(const a of o)a!==void 0&&(e&&!i&&(i=!0,yield[s,null]),yield[s,a])}}const Ke=t=>{const e=new Headers,n=new Set;for(const r of t){const s=new Set;for(const[o,i]of UO(r)){const a=o.toLowerCase();s.has(a)||(e.delete(o),s.add(a)),i===null?(e.delete(o),n.add(a)):(e.append(o,i),n.delete(a))}}return{[JS]:!0,values:e,nulls:n}};class QS extends nt{create(e,n){return this._client.post("/audio/speech",{body:e,...n,headers:Ke([{Accept:"application/octet-stream"},n==null?void 0:n.headers]),__binaryResponse:!0})}}class ZS extends nt{create(e,n){return this._client.post("/audio/transcriptions",Is({body:e,...n,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}}class ew extends nt{create(e,n){return this._client.post("/audio/translations",Is({body:e,...n,__metadata:{model:e.model}},this._client))}}class Ia extends nt{constructor(){super(...arguments),this.transcriptions=new ZS(this._client),this.translations=new ew(this._client),this.speech=new QS(this._client)}}Ia.Transcriptions=ZS;Ia.Translations=ew;Ia.Speech=QS;class tw extends nt{create(e,n){return this._client.post("/batches",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/batches/${e}`,n)}list(e={},n){return this._client.getAPIList("/batches",Yt,{query:e,...n})}cancel(e,n){return this._client.post(Oe`/batches/${e}/cancel`,n)}}class nw extends nt{create(e,n){return this._client.post("/assistants",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,n){return this._client.get(Oe`/assistants/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,n,r){return this._client.post(Oe`/assistants/${e}`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e={},n){return this._client.getAPIList("/assistants",Yt,{query:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,n){return this._client.delete(Oe`/assistants/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class rw extends nt{create(e,n){return this._client.post("/realtime/sessions",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class sw extends nt{create(e,n){return this._client.post("/realtime/transcription_sessions",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Mc extends nt{constructor(){super(...arguments),this.sessions=new rw(this._client),this.transcriptionSessions=new sw(this._client)}}Mc.Sessions=rw;Mc.TranscriptionSessions=sw;class ow extends nt{create(e,n,r){return this._client.post(Oe`/threads/${e}/messages`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(e,n,r){const{thread_id:s}=n;return this._client.get(Oe`/threads/${s}/messages/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(e,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/messages/${e}`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n={},r){return this._client.getAPIList(Oe`/threads/${e}/messages`,Yt,{query:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(e,n,r){const{thread_id:s}=n;return this._client.delete(Oe`/threads/${s}/messages/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class iw extends nt{retrieve(e,n,r){const{thread_id:s,run_id:o,...i}=n;return this._client.get(Oe`/threads/${s}/runs/${o}/steps/${e}`,{query:i,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n,r){const{thread_id:s,...o}=n;return this._client.getAPIList(Oe`/threads/${s}/runs/${e}/steps`,Yt,{query:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}const HO=t=>{if(typeof Buffer<"u"){const e=Buffer.from(t,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{const e=atob(t),n=e.length,r=new Uint8Array(n);for(let s=0;s<n;s++)r[s]=e.charCodeAt(s);return Array.from(new Float32Array(r.buffer))}};var Lu={};const Js=t=>{var e,n,r,s;if(typeof globalThis.process<"u")return((e=Lu==null?void 0:Lu[t])==null?void 0:e.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,t))==null?void 0:s.trim()};var fn,ks,qd,gr,$l,tr,Ts,io,ys,cc,$n,Ll,Dl,ca,Zi,ea,Gm,Jm,Qm,Zm,eg,tg,ng;class ua extends Xf{constructor(){super(...arguments),fn.add(this),qd.set(this,[]),gr.set(this,{}),$l.set(this,{}),tr.set(this,void 0),Ts.set(this,void 0),io.set(this,void 0),ys.set(this,void 0),cc.set(this,void 0),$n.set(this,void 0),Ll.set(this,void 0),Dl.set(this,void 0),ca.set(this,void 0)}[(qd=new WeakMap,gr=new WeakMap,$l=new WeakMap,tr=new WeakMap,Ts=new WeakMap,io=new WeakMap,ys=new WeakMap,cc=new WeakMap,$n=new WeakMap,Ll=new WeakMap,Dl=new WeakMap,ca=new WeakMap,fn=new WeakSet,Symbol.asyncIterator)](){const e=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):e.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()=>e.length?{value:e.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){const n=new ks;return n._run(()=>n._fromReadableStream(e)),n}async _fromReadableStream(e,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=_r.fromReadableStream(e,this.controller);for await(const i of s)re(this,fn,"m",Zi).call(this,i);if((o=s.controller.signal)!=null&&o.aborted)throw new Kn;return this._addRun(re(this,fn,"m",ea).call(this))}toReadableStream(){return new _r(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,n,r,s){const o=new ks;return o._run(()=>o._runToolAssistantStream(e,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}async _createToolAssistantStream(e,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 i={...r,stream:!0},a=await e.submitToolOutputs(n,i,{...s,signal:this.controller.signal});this._connected();for await(const d of a)re(this,fn,"m",Zi).call(this,d);if((c=a.controller.signal)!=null&&c.aborted)throw new Kn;return this._addRun(re(this,fn,"m",ea).call(this))}static createThreadAssistantStream(e,n,r){const s=new ks;return s._run(()=>s._threadAssistantStream(e,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(e,n,r,s){const o=new ks;return o._run(()=>o._runAssistantStream(e,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}currentEvent(){return re(this,Ll,"f")}currentRun(){return re(this,Dl,"f")}currentMessageSnapshot(){return re(this,tr,"f")}currentRunStepSnapshot(){return re(this,ca,"f")}async finalRunSteps(){return await this.done(),Object.values(re(this,gr,"f"))}async finalMessages(){return await this.done(),Object.values(re(this,$l,"f"))}async finalRun(){if(await this.done(),!re(this,Ts,"f"))throw Error("Final run was not received.");return re(this,Ts,"f")}async _createThreadAssistantStream(e,n,r){var a;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));const o={...n,stream:!0},i=await e.createAndRun(o,{...r,signal:this.controller.signal});this._connected();for await(const c of i)re(this,fn,"m",Zi).call(this,c);if((a=i.controller.signal)!=null&&a.aborted)throw new Kn;return this._addRun(re(this,fn,"m",ea).call(this))}async _createAssistantStream(e,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 i={...r,stream:!0},a=await e.create(n,i,{...s,signal:this.controller.signal});this._connected();for await(const d of a)re(this,fn,"m",Zi).call(this,d);if((c=a.controller.signal)!=null&&c.aborted)throw new Kn;return this._addRun(re(this,fn,"m",ea).call(this))}static accumulateDelta(e,n){for(const[r,s]of Object.entries(n)){if(!e.hasOwnProperty(r)){e[r]=s;continue}let o=e[r];if(o==null){e[r]=s;continue}if(r==="index"||r==="type"){e[r]=s;continue}if(typeof o=="string"&&typeof s=="string")o+=s;else if(typeof o=="number"&&typeof s=="number")o+=s;else if(Pu(o)&&Pu(s))o=this.accumulateDelta(o,s);else if(Array.isArray(o)&&Array.isArray(s)){if(o.every(i=>typeof i=="string"||typeof i=="number")){o.push(...s);continue}for(const i of s){if(!Pu(i))throw new Error(`Expected array delta entry to be an object but got: ${i}`);const a=i.index;if(a==null)throw console.error(i),new Error("Expected array delta entry to have an `index` property");if(typeof a!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${a}`);const c=o[a];c==null?o.push(i):o[a]=this.accumulateDelta(c,i)}continue}else throw Error(`Unhandled record type: ${r}, deltaValue: ${s}, accValue: ${o}`);e[r]=o}return e}_addRun(e){return e}async _threadAssistantStream(e,n,r){return await this._createThreadAssistantStream(n,e,r)}async _runAssistantStream(e,n,r,s){return await this._createAssistantStream(n,e,r,s)}async _runToolAssistantStream(e,n,r,s){return await this._createToolAssistantStream(n,e,r,s)}}ks=ua,Zi=function(e){if(!this.ended)switch(Qe(this,Ll,e),re(this,fn,"m",Qm).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":re(this,fn,"m",ng).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":re(this,fn,"m",Jm).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":re(this,fn,"m",Gm).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},ea=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");if(!re(this,Ts,"f"))throw Error("Final run has not been received");return re(this,Ts,"f")},Gm=function(e){const[n,r]=re(this,fn,"m",eg).call(this,e,re(this,tr,"f"));Qe(this,tr,n),re(this,$l,"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(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,n),e.data.delta.content)for(const s of e.data.delta.content){if(s.type=="text"&&s.text){let o=s.text,i=n.content[s.index];if(i&&i.type=="text")this._emit("textDelta",o,i.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=re(this,io,"f")){if(re(this,ys,"f"))switch(re(this,ys,"f").type){case"text":this._emit("textDone",re(this,ys,"f").text,re(this,tr,"f"));break;case"image_file":this._emit("imageFileDone",re(this,ys,"f").image_file,re(this,tr,"f"));break}Qe(this,io,s.index)}Qe(this,ys,n.content[s.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(re(this,io,"f")!==void 0){const s=e.data.content[re(this,io,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,re(this,tr,"f"));break;case"text":this._emit("textDone",s.text,re(this,tr,"f"));break}}re(this,tr,"f")&&this._emit("messageDone",e.data),Qe(this,tr,void 0)}},Jm=function(e){const n=re(this,fn,"m",Zm).call(this,e);switch(Qe(this,ca,n),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":const r=e.data.delta;if(r.step_details&&r.step_details.type=="tool_calls"&&r.step_details.tool_calls&&n.step_details.type=="tool_calls")for(const o of r.step_details.tool_calls)o.index==re(this,cc,"f")?this._emit("toolCallDelta",o,n.step_details.tool_calls[o.index]):(re(this,$n,"f")&&this._emit("toolCallDone",re(this,$n,"f")),Qe(this,cc,o.index),Qe(this,$n,n.step_details.tool_calls[o.index]),re(this,$n,"f")&&this._emit("toolCallCreated",re(this,$n,"f")));this._emit("runStepDelta",e.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,ca,void 0),e.data.step_details.type=="tool_calls"&&re(this,$n,"f")&&(this._emit("toolCallDone",re(this,$n,"f")),Qe(this,$n,void 0)),this._emit("runStepDone",e.data,n);break}},Qm=function(e){re(this,qd,"f").push(e),this._emit("event",e)},Zm=function(e){switch(e.event){case"thread.run.step.created":return re(this,gr,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let n=re(this,gr,"f")[e.data.id];if(!n)throw Error("Received a RunStepDelta before creation of a snapshot");let r=e.data;if(r.delta){const s=ks.accumulateDelta(n,r.delta);re(this,gr,"f")[e.data.id]=s}return re(this,gr,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":re(this,gr,"f")[e.data.id]=e.data;break}if(re(this,gr,"f")[e.data.id])return re(this,gr,"f")[e.data.id];throw new Error("No snapshot available")},eg=function(e,n){let r=[];switch(e.event){case"thread.message.created":return[e.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=e.data;if(s.delta.content)for(const o of s.delta.content)if(o.index in n.content){let i=n.content[o.index];n.content[o.index]=re(this,fn,"m",tg).call(this,o,i)}else n.content[o.index]=o,r.push(o);return[n,r];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(n)return[n,r];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},tg=function(e,n){return ks.accumulateDelta(n,e)},ng=function(e){switch(Qe(this,Dl,e.data),e.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,e.data),re(this,$n,"f")&&(this._emit("toolCallDone",re(this,$n,"f")),Qe(this,$n,void 0));break}};let Zf=class extends nt{constructor(){super(...arguments),this.steps=new iw(this._client)}create(e,n,r){const{include:s,...o}=n;return this._client.post(Oe`/threads/${e}/runs`,{query:{include:s},body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}retrieve(e,n,r){const{thread_id:s}=n;return this._client.get(Oe`/threads/${s}/runs/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(e,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/runs/${e}`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n={},r){return this._client.getAPIList(Oe`/threads/${e}/runs`,Yt,{query:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(e,n,r){const{thread_id:s}=n;return this._client.post(Oe`/threads/${s}/runs/${e}/cancel`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(e,n,r){const s=await this.create(e,n,r);return await this.poll(s.id,{thread_id:e},r)}createAndStream(e,n,r){return ua.createAssistantStream(e,this._client.beta.threads.runs,n,r)}async poll(e,n,r){var o;const s=Ke([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:a}=await this.retrieve(e,n,{...r,headers:{...r==null?void 0:r.headers,...s}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=a.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await Ra(c);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,n,r){return ua.createAssistantStream(e,this._client.beta.threads.runs,n,r)}submitToolOutputs(e,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/runs/${e}/submit_tool_outputs`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}async submitToolOutputsAndPoll(e,n,r){const s=await this.submitToolOutputs(e,n,r);return await this.poll(s.id,n,r)}submitToolOutputsStream(e,n,r){return ua.createToolAssistantStream(e,this._client.beta.threads.runs,n,r)}};Zf.Steps=iw;class Ac extends nt{constructor(){super(...arguments),this.runs=new Zf(this._client),this.messages=new ow(this._client)}create(e={},n){return this._client.post("/threads",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,n){return this._client.get(Oe`/threads/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,n,r){return this._client.post(Oe`/threads/${e}`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(e,n){return this._client.delete(Oe`/threads/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}createAndRun(e,n){return this._client.post("/threads/runs",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:e.stream??!1})}async createAndRunPoll(e,n){const r=await this.createAndRun(e,n);return await this.runs.poll(r.id,{thread_id:r.thread_id},n)}createAndRunStream(e,n){return ua.createThreadAssistantStream(e,this._client.beta.threads,n)}}Ac.Runs=Zf;Ac.Messages=ow;class Oa extends nt{constructor(){super(...arguments),this.realtime=new Mc(this._client),this.assistants=new nw(this._client),this.threads=new Ac(this._client)}}Oa.Realtime=Mc;Oa.Assistants=nw;Oa.Threads=Ac;class aw extends nt{create(e,n){return this._client.post("/completions",{body:e,...n,stream:e.stream??!1})}}let lw=class extends nt{retrieve(e,n,r){const{container_id:s}=n;return this._client.get(Oe`/containers/${s}/files/${e}/content`,{...r,headers:Ke([{Accept:"application/binary"},r==null?void 0:r.headers]),__binaryResponse:!0})}},eh=class extends nt{constructor(){super(...arguments),this.content=new lw(this._client)}create(e,n,r){return this._client.post(Oe`/containers/${e}/files`,Is({body:n,...r},this._client))}retrieve(e,n,r){const{container_id:s}=n;return this._client.get(Oe`/containers/${s}/files/${e}`,r)}list(e,n={},r){return this._client.getAPIList(Oe`/containers/${e}/files`,Yt,{query:n,...r})}delete(e,n,r){const{container_id:s}=n;return this._client.delete(Oe`/containers/${s}/files/${e}`,{...r,headers:Ke([{Accept:"*/*"},r==null?void 0:r.headers])})}};eh.Content=lw;class th extends nt{constructor(){super(...arguments),this.files=new eh(this._client)}create(e,n){return this._client.post("/containers",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/containers/${e}`,n)}list(e={},n){return this._client.getAPIList("/containers",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/containers/${e}`,{...n,headers:Ke([{Accept:"*/*"},n==null?void 0:n.headers])})}}th.Files=eh;class cw extends nt{create(e,n){const r=!!e.encoding_format;let s=r?e.encoding_format:"base64";r&&dn(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);const o=this._client.post("/embeddings",{body:{...e,encoding_format:s},...n});return r?o:(dn(this._client).debug("embeddings/decoding base64 embeddings from base64"),o._thenUnwrap(i=>(i&&i.data&&i.data.forEach(a=>{const c=a.embedding;a.embedding=HO(c)}),i)))}}class uw extends nt{retrieve(e,n,r){const{eval_id:s,run_id:o}=n;return this._client.get(Oe`/evals/${s}/runs/${o}/output_items/${e}`,r)}list(e,n,r){const{eval_id:s,...o}=n;return this._client.getAPIList(Oe`/evals/${s}/runs/${e}/output_items`,Yt,{query:o,...r})}}class nh extends nt{constructor(){super(...arguments),this.outputItems=new uw(this._client)}create(e,n,r){return this._client.post(Oe`/evals/${e}/runs`,{body:n,...r})}retrieve(e,n,r){const{eval_id:s}=n;return this._client.get(Oe`/evals/${s}/runs/${e}`,r)}list(e,n={},r){return this._client.getAPIList(Oe`/evals/${e}/runs`,Yt,{query:n,...r})}delete(e,n,r){const{eval_id:s}=n;return this._client.delete(Oe`/evals/${s}/runs/${e}`,r)}cancel(e,n,r){const{eval_id:s}=n;return this._client.post(Oe`/evals/${s}/runs/${e}`,r)}}nh.OutputItems=uw;class rh extends nt{constructor(){super(...arguments),this.runs=new nh(this._client)}create(e,n){return this._client.post("/evals",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/evals/${e}`,n)}update(e,n,r){return this._client.post(Oe`/evals/${e}`,{body:n,...r})}list(e={},n){return this._client.getAPIList("/evals",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/evals/${e}`,n)}}rh.Runs=nh;let dw=class extends nt{create(e,n){return this._client.post("/files",Is({body:e,...n},this._client))}retrieve(e,n){return this._client.get(Oe`/files/${e}`,n)}list(e={},n){return this._client.getAPIList("/files",Yt,{query:e,...n})}delete(e,n){return this._client.delete(Oe`/files/${e}`,n)}content(e,n){return this._client.get(Oe`/files/${e}/content`,{...n,headers:Ke([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:n=5e3,maxWait:r=30*60*1e3}={}){const s=new Set(["processed","error","deleted"]),o=Date.now();let i=await this.retrieve(e);for(;!i.status||!s.has(i.status);)if(await Ra(n),i=await this.retrieve(e),Date.now()-o>r)throw new qf({message:`Giving up on waiting for file ${e} to finish processing after ${r} milliseconds.`});return i}};class fw extends nt{}let hw=class extends nt{run(e,n){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...n})}validate(e,n){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...n})}};class sh extends nt{constructor(){super(...arguments),this.graders=new hw(this._client)}}sh.Graders=hw;class pw extends nt{create(e,n,r){return this._client.getAPIList(Oe`/fine_tuning/checkpoints/${e}/permissions`,Pc,{body:n,method:"post",...r})}retrieve(e,n={},r){return this._client.get(Oe`/fine_tuning/checkpoints/${e}/permissions`,{query:n,...r})}delete(e,n,r){const{fine_tuned_model_checkpoint:s}=n;return this._client.delete(Oe`/fine_tuning/checkpoints/${s}/permissions/${e}`,r)}}let oh=class extends nt{constructor(){super(...arguments),this.permissions=new pw(this._client)}};oh.Permissions=pw;class mw extends nt{list(e,n={},r){return this._client.getAPIList(Oe`/fine_tuning/jobs/${e}/checkpoints`,Yt,{query:n,...r})}}class ih extends nt{constructor(){super(...arguments),this.checkpoints=new mw(this._client)}create(e,n){return this._client.post("/fine_tuning/jobs",{body:e,...n})}retrieve(e,n){return this._client.get(Oe`/fine_tuning/jobs/${e}`,n)}list(e={},n){return this._client.getAPIList("/fine_tuning/jobs",Yt,{query:e,...n})}cancel(e,n){return this._client.post(Oe`/fine_tuning/jobs/${e}/cancel`,n)}listEvents(e,n={},r){return this._client.getAPIList(Oe`/fine_tuning/jobs/${e}/events`,Yt,{query:n,...r})}pause(e,n){return this._client.post(Oe`/fine_tuning/jobs/${e}/pause`,n)}resume(e,n){return this._client.post(Oe`/fine_tuning/jobs/${e}/resume`,n)}}ih.Checkpoints=mw;class Eo extends nt{constructor(){super(...arguments),this.methods=new fw(this._client),this.jobs=new ih(this._client),this.checkpoints=new oh(this._client),this.alpha=new sh(this._client)}}Eo.Methods=fw;Eo.Jobs=ih;Eo.Checkpoints=oh;Eo.Alpha=sh;class gw extends nt{}class ah extends nt{constructor(){super(...arguments),this.graderModels=new gw(this._client)}}ah.GraderModels=gw;class yw extends nt{createVariation(e,n){return this._client.post("/images/variations",Is({body:e,...n},this._client))}edit(e,n){return this._client.post("/images/edits",Is({body:e,...n,stream:e.stream??!1},this._client))}generate(e,n){return this._client.post("/images/generations",{body:e,...n,stream:e.stream??!1})}}class bw extends nt{retrieve(e,n){return this._client.get(Oe`/models/${e}`,n)}list(e){return this._client.getAPIList("/models",Pc,e)}delete(e,n){return this._client.delete(Oe`/models/${e}`,n)}}class vw extends nt{create(e,n){return this._client.post("/moderations",{body:e,...n})}}function qO(t,e){return!e||!XO(e)?{...t,output_parsed:null,output:t.output.map(n=>n.type==="function_call"?{...n,parsed_arguments:null}:n.type==="message"?{...n,content:n.content.map(r=>({...r,parsed:null}))}:n)}:Sw(t,e)}function Sw(t,e){const n=t.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:GO(e,s)};if(s.type==="message"){const o=s.content.map(i=>i.type==="output_text"?{...i,parsed:KO(e,i.text)}:i);return{...s,content:o}}return s}),r=Object.assign({},t,{output:n});return Object.getOwnPropertyDescriptor(t,"output_text")||Kd(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 KO(t,e){var n,r,s,o;return((r=(n=t.text)==null?void 0:n.format)==null?void 0:r.type)!=="json_schema"?null:"$parseRaw"in((s=t.text)==null?void 0:s.format)?((o=t.text)==null?void 0:o.format).$parseRaw(e):JSON.parse(e)}function XO(t){var e;return!!Yf((e=t.text)==null?void 0:e.format)}function YO(t){return(t==null?void 0:t.$brand)==="auto-parseable-tool"}function VO(t,e){return t.find(n=>n.type==="function"&&n.name===e)}function GO(t,e){const n=VO(t.tools??[],e.name);return{...e,...e,parsed_arguments:YO(n)?n.$parseRaw(e.arguments):n!=null&&n.strict?JSON.parse(e.arguments):null}}function Kd(t){const e=[];for(const n of t.output)if(n.type==="message")for(const r of n.content)r.type==="output_text"&&e.push(r.text);t.output_text=e.join("")}var Qs,bl,Kr,vl,rg,sg,og,ig;class lh extends Xf{constructor(e){super(),Qs.add(this),bl.set(this,void 0),Kr.set(this,void 0),vl.set(this,void 0),Qe(this,bl,e)}static createResponse(e,n,r){const s=new lh(n);return s._run(()=>s._createOrRetrieveResponse(e,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(e,n,r){var a;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),re(this,Qs,"m",rg).call(this);let o,i=null;"response_id"in n?(o=await e.responses.retrieve(n.response_id,{stream:!0},{...r,signal:this.controller.signal,stream:!0}),i=n.starting_after??null):o=await e.responses.create({...n,stream:!0},{...r,signal:this.controller.signal}),this._connected();for await(const c of o)re(this,Qs,"m",sg).call(this,c,i);if((a=o.controller.signal)!=null&&a.aborted)throw new Kn;return re(this,Qs,"m",og).call(this)}[(bl=new WeakMap,Kr=new WeakMap,vl=new WeakMap,Qs=new WeakSet,rg=function(){this.ended||Qe(this,Kr,void 0)},sg=function(n,r){if(this.ended)return;const s=(i,a)=>{(r==null||a.sequence_number>r)&&this._emit(i,a)},o=re(this,Qs,"m",ig).call(this,n);switch(s("event",n),n.type){case"response.output_text.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);if(i.type==="message"){const a=i.content[n.content_index];if(!a)throw new Ze(`missing content at index ${n.content_index}`);if(a.type!=="output_text")throw new Ze(`expected content to be 'output_text', got ${a.type}`);s("response.output_text.delta",{...n,snapshot:a.text})}break}case"response.function_call_arguments.delta":{const i=o.output[n.output_index];if(!i)throw new Ze(`missing output at index ${n.output_index}`);i.type==="function_call"&&s("response.function_call_arguments.delta",{...n,snapshot:i.arguments});break}default:s(n.type,n);break}},og=function(){if(this.ended)throw new Ze("stream has ended, this shouldn't happen");const n=re(this,Kr,"f");if(!n)throw new Ze("request ended without sending any events");Qe(this,Kr,void 0);const r=JO(n,re(this,bl,"f"));return Qe(this,vl,r),r},ig=function(n){let r=re(this,Kr,"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,Kr,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,Kr,n.response);break}}return r},Symbol.asyncIterator)](){const e=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):e.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()=>e.length?{value:e.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,i)=>n.push({resolve:o,reject:i})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const e=re(this,vl,"f");if(!e)throw new Ze("stream ended without producing a ChatCompletion");return e}}function JO(t,e){return qO(t,e)}class ww extends nt{list(e,n={},r){return this._client.getAPIList(Oe`/responses/${e}/input_items`,Yt,{query:n,...r})}}class ch extends nt{constructor(){super(...arguments),this.inputItems=new ww(this._client)}create(e,n){return this._client.post("/responses",{body:e,...n,stream:e.stream??!1})._thenUnwrap(r=>("object"in r&&r.object==="response"&&Kd(r),r))}retrieve(e,n={},r){return this._client.get(Oe`/responses/${e}`,{query:n,...r,stream:(n==null?void 0:n.stream)??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&Kd(s),s))}delete(e,n){return this._client.delete(Oe`/responses/${e}`,{...n,headers:Ke([{Accept:"*/*"},n==null?void 0:n.headers])})}parse(e,n){return this._client.responses.create(e,n)._thenUnwrap(r=>Sw(r,e))}stream(e,n){return lh.createResponse(this._client,e,n)}cancel(e,n){return this._client.post(Oe`/responses/${e}/cancel`,n)}}ch.InputItems=ww;class xw extends nt{create(e,n,r){return this._client.post(Oe`/uploads/${e}/parts`,Is({body:n,...r},this._client))}}class uh extends nt{constructor(){super(...arguments),this.parts=new xw(this._client)}create(e,n){return this._client.post("/uploads",{body:e,...n})}cancel(e,n){return this._client.post(Oe`/uploads/${e}/cancel`,n)}complete(e,n,r){return this._client.post(Oe`/uploads/${e}/complete`,{body:n,...r})}}uh.Parts=xw;const QO=async t=>{const e=await Promise.allSettled(t),n=e.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 e)s.status==="fulfilled"&&r.push(s.value);return r};class _w extends nt{create(e,n,r){return this._client.post(Oe`/vector_stores/${e}/file_batches`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(e,n,r){const{vector_store_id:s}=n;return this._client.get(Oe`/vector_stores/${s}/file_batches/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(e,n,r){const{vector_store_id:s}=n;return this._client.post(Oe`/vector_stores/${s}/file_batches/${e}/cancel`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(e,n,r){const s=await this.create(e,n);return await this.poll(e,s.id,r)}listFiles(e,n,r){const{vector_store_id:s,...o}=n;return this._client.getAPIList(Oe`/vector_stores/${s}/file_batches/${e}/files`,Yt,{query:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async poll(e,n,r){var o;const s=Ke([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:i,response:a}=await this.retrieve(n,{vector_store_id:e},{...r,headers:s}).withResponse();switch(i.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=a.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await Ra(c);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:n,fileIds:r=[]},s){if(n==null||n.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const o=(s==null?void 0:s.maxConcurrency)??5,i=Math.min(o,n.length),a=this._client,c=n.values(),d=[...r];async function f(y){for(let m of y){const w=await a.files.create({file:m,purpose:"assistants"},s);d.push(w.id)}}const p=Array(i).fill(c).map(f);return await QO(p),await this.createAndPoll(e,{file_ids:d})}}class Cw extends nt{create(e,n,r){return this._client.post(Oe`/vector_stores/${e}/files`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(e,n,r){const{vector_store_id:s}=n;return this._client.get(Oe`/vector_stores/${s}/files/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(e,n,r){const{vector_store_id:s,...o}=n;return this._client.post(Oe`/vector_stores/${s}/files/${e}`,{body:o,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e,n={},r){return this._client.getAPIList(Oe`/vector_stores/${e}/files`,Yt,{query:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(e,n,r){const{vector_store_id:s}=n;return this._client.delete(Oe`/vector_stores/${s}/files/${e}`,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(e,n,r){const s=await this.create(e,n,r);return await this.poll(e,s.id,r)}async poll(e,n,r){var o;const s=Ke([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const i=await this.retrieve(n,{vector_store_id:e},{...r,headers:s}).withResponse(),a=i.data;switch(a.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=i.response.headers.get("openai-poll-after-ms");if(d){const f=parseInt(d);isNaN(f)||(c=f)}}await Ra(c);break;case"failed":case"completed":return a}}}async upload(e,n,r){const s=await this._client.files.create({file:n,purpose:"assistants"},r);return this.create(e,{file_id:s.id},r)}async uploadAndPoll(e,n,r){const s=await this.upload(e,n,r);return await this.poll(e,s.id,r)}content(e,n,r){const{vector_store_id:s}=n;return this._client.getAPIList(Oe`/vector_stores/${s}/files/${e}/content`,Pc,{...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class Rc extends nt{constructor(){super(...arguments),this.files=new Cw(this._client),this.fileBatches=new _w(this._client)}create(e,n){return this._client.post("/vector_stores",{body:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,n){return this._client.get(Oe`/vector_stores/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,n,r){return this._client.post(Oe`/vector_stores/${e}`,{body:n,...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(e={},n){return this._client.getAPIList("/vector_stores",Yt,{query:e,...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,n){return this._client.delete(Oe`/vector_stores/${e}`,{...n,headers:Ke([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}search(e,n,r){return this._client.getAPIList(Oe`/vector_stores/${e}/search`,Pc,{body:n,method:"post",...r,headers:Ke([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}Rc.Files=Cw;Rc.FileBatches=_w;var no,kw,Fl;class Tw extends nt{constructor(){super(...arguments),no.add(this)}async unwrap(e,n,r=this._client.webhookSecret,s=300){return await this.verifySignature(e,n,r,s),JSON.parse(e)}async verifySignature(e,n,r=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");re(this,no,"m",kw).call(this,r);const o=Ke([n]).values,i=re(this,no,"m",Fl).call(this,o,"webhook-signature"),a=re(this,no,"m",Fl).call(this,o,"webhook-timestamp"),c=re(this,no,"m",Fl).call(this,o,"webhook-id"),d=parseInt(a,10);if(isNaN(d))throw new Ki("Invalid webhook timestamp format");const f=Math.floor(Date.now()/1e3);if(f-d>s)throw new Ki("Webhook timestamp is too old");if(d>f+s)throw new Ki("Webhook timestamp is too new");const p=i.split(" ").map(b=>b.startsWith("v1,")?b.substring(3):b),y=r.startsWith("whsec_")?Buffer.from(r.replace("whsec_",""),"base64"):Buffer.from(r,"utf-8"),m=c?`${c}.${a}.${e}`:`${a}.${e}`,w=await crypto.subtle.importKey("raw",y,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(const b of p)try{const _=Buffer.from(b,"base64");if(await crypto.subtle.verify("HMAC",w,_,new TextEncoder().encode(m)))return}catch{continue}throw new Ki("The given webhook signature does not match the expected signature")}}no=new WeakSet,kw=function(e){if(typeof e!="string"||e.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")},Fl=function(e,n){if(!e)throw new Error("Headers are required");const r=e.get(n);if(r==null)throw new Error(`Missing required header: ${n}`);return r};var Xd,dh,Nl,Ew;class dt{constructor({baseURL:e=Js("OPENAI_BASE_URL"),apiKey:n=Js("OPENAI_API_KEY"),organization:r=Js("OPENAI_ORG_ID")??null,project:s=Js("OPENAI_PROJECT_ID")??null,webhookSecret:o=Js("OPENAI_WEBHOOK_SECRET")??null,...i}={}){if(Xd.add(this),Nl.set(this,void 0),this.completions=new aw(this),this.chat=new Qf(this),this.embeddings=new cw(this),this.files=new dw(this),this.images=new yw(this),this.audio=new Ia(this),this.moderations=new vw(this),this.models=new bw(this),this.fineTuning=new Eo(this),this.graders=new ah(this),this.vectorStores=new Rc(this),this.webhooks=new Tw(this),this.beta=new Oa(this),this.batches=new tw(this),this.uploads=new uh(this),this.responses=new ch(this),this.evals=new rh(this),this.containers=new th(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 a={apiKey:n,organization:r,project:s,webhookSecret:o,...i,baseURL:e||"https://api.openai.com/v1"};if(!a.dangerouslyAllowBrowser&&ZI())throw new Ze(`It looks like you're running in a browser-like environment.
227
227
 
228
228
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
229
229
  If you understand the risks and have appropriate mitigations in place,
@@ -232,19 +232,19 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
232
232
  new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
233
233
 
234
234
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
235
- `);this.baseURL=a.baseURL,this.timeout=a.timeout??dh.DEFAULT_TIMEOUT,this.logger=a.logger??console;const c="warn";this.logLevel=c,this.logLevel=Um(a.logLevel,"ClientOptions.logLevel",this)??Um(Js("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??eO(),Qe(this,Nl,nO),this._options=a,this.apiKey=n,this.organization=r,this.project=s,this.webhookSecret=o}withOptions(e){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,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:n}){}async authHeaders(e){return Ke([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return lO(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${eo}`}defaultIdempotencyKey(){return`stainless-node-retry-${nS()}`}makeStatusError(e,n,r,s){return hn.generate(e,n,r,s)}buildURL(e,n,r){const s=!re(this,Xd,"m",Cw).call(this)&&r||this.baseURL,o=UI(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),i=this.defaultQuery();return qI(i)||(n={...i,...n}),typeof n=="object"&&n&&!Array.isArray(n)&&(o.search=this.stringifyQuery(n)),o.toString()}async prepareOptions(e){}async prepareRequest(e,{url:n,options:r}){}get(e,n){return this.methodRequest("get",e,n)}post(e,n){return this.methodRequest("post",e,n)}patch(e,n){return this.methodRequest("patch",e,n)}put(e,n){return this.methodRequest("put",e,n)}delete(e,n){return this.methodRequest("delete",e,n)}methodRequest(e,n,r){return this.request(Promise.resolve(r).then(s=>({method:e,path:n,...s})))}request(e,n=null){return new Ec(this,this.makeRequest(e,n,void 0))}async makeRequest(e,n,r){var M,C;const s=await e,o=s.maxRetries??this.maxRetries;n==null&&(n=o),await this.prepareOptions(s);const{req:i,url:a,timeout:c}=await this.buildRequest(s,{retryCount:o-n});await this.prepareRequest(i,{url:a,options:s});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),f=r===void 0?"":`, retryOf: ${r}`,p=Date.now();if(un(this).debug(`[${d}] sending request`,fs({retryOfRequestLogID:r,method:s.method,url:a,options:s,headers:i.headers})),(M=s.signal)!=null&&M.aborted)throw new Kn;const b=new AbortController,m=await this.fetchWithTimeout(a,i,c,b).catch(Ld),w=Date.now();if(m instanceof Error){const T=`retrying, ${n} attempts remaining`;if((C=s.signal)!=null&&C.aborted)throw new Kn;const k=$d(m)||/timed? ?out/i.test(String(m)+("cause"in m?String(m.cause):""));if(n)return un(this).info(`[${d}] connection ${k?"timed out":"failed"} - ${T}`),un(this).debug(`[${d}] connection ${k?"timed out":"failed"} (${T})`,fs({retryOfRequestLogID:r,url:a,durationMs:w-p,message:m.message})),this.retryRequest(s,n,r??d);throw un(this).info(`[${d}] connection ${k?"timed out":"failed"} - error; no more retries left`),un(this).debug(`[${d}] connection ${k?"timed out":"failed"} (error; no more retries left)`,fs({retryOfRequestLogID:r,url:a,durationMs:w-p,message:m.message})),k?new qf:new kc({cause:m})}const y=[...m.headers.entries()].filter(([T])=>T==="x-request-id").map(([T,k])=>", "+T+": "+JSON.stringify(k)).join(""),_=`[${d}${f}${y}] ${i.method} ${a} ${m.ok?"succeeded":"failed"} with status ${m.status} in ${w-p}ms`;if(!m.ok){const T=await this.shouldRetry(m);if(n&&T){const F=`retrying, ${n} attempts remaining`;return await tO(m.body),un(this).info(`${_} - ${F}`),un(this).debug(`[${d}] response error (${F})`,fs({retryOfRequestLogID:r,url:m.url,status:m.status,headers:m.headers,durationMs:w-p})),this.retryRequest(s,n,r??d,m.headers)}const k=T?"error; no more retries left":"error; not retryable";un(this).info(`${_} - ${k}`);const P=await m.text().catch(F=>Ld(F).message),A=YI(P),j=A?void 0:P;throw un(this).debug(`[${d}] response error (${k})`,fs({retryOfRequestLogID:r,url:m.url,status:m.status,headers:m.headers,message:j,durationMs:Date.now()-p})),this.makeStatusError(m.status,A,j,m.headers)}return un(this).info(_),un(this).debug(`[${d}] response start`,fs({retryOfRequestLogID:r,url:m.url,status:m.status,headers:m.headers,durationMs:w-p})),{response:m,options:s,controller:b,requestLogID:d,retryOfRequestLogID:r,startTime:p}}getAPIList(e,n,r){return this.requestAPIList(n,{method:"get",path:e,...r})}requestAPIList(e,n){const r=this.makeRequest(n,null,void 0);return new yO(this,r,e)}async fetchWithTimeout(e,n,r,s){const{signal:o,method:i,...a}=n||{};o&&o.addEventListener("abort",()=>s.abort());const c=setTimeout(()=>s.abort(),r),d=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,f={signal:s.signal,...d?{duplex:"half"}:{},method:"GET",...a};i&&(f.method=i.toUpperCase());try{return await this.fetch.call(void 0,e,f)}finally{clearTimeout(c)}}async shouldRetry(e){const n=e.headers.get("x-should-retry");return n==="true"?!0:n==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,n,r,s){let o;const i=s==null?void 0:s.get("retry-after-ms");if(i){const c=parseFloat(i);Number.isNaN(c)||(o=c)}const a=s==null?void 0:s.get("retry-after");if(a&&!o){const c=parseFloat(a);Number.isNaN(c)?o=Date.parse(a)-Date.now():o=c*1e3}if(!(o&&0<=o&&o<60*1e3)){const c=e.maxRetries??this.maxRetries;o=this.calculateDefaultRetryTimeoutMillis(n,c)}return await Ra(o),this.makeRequest(e,n-1,r)}calculateDefaultRetryTimeoutMillis(e,n){const o=n-e,i=Math.min(.5*Math.pow(2,o),8),a=1-Math.random()*.25;return i*a*1e3}async buildRequest(e,{retryCount:n=0}={}){const r={...e},{method:s,path:o,query:i,defaultBaseURL:a}=r,c=this.buildURL(o,i,a);"timeout"in r&&XI("timeout",r.timeout),r.timeout=r.timeout??this.timeout;const{bodyHeaders:d,body:f}=this.buildBody({options:r}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:d,retryCount:n});return{req:{method:s,headers:p,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&f instanceof globalThis.ReadableStream&&{duplex:"half"},...f&&{body:f},...this.fetchOptions??{},...r.fetchOptions??{}},url:c,timeout:r.timeout}}async buildHeaders({options:e,method:n,bodyHeaders:r,retryCount:s}){let o={};this.idempotencyHeader&&n!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),o[this.idempotencyHeader]=e.idempotencyKey);const i=Ke([o,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...ZI(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,r,e.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:e,headers:n}}){if(!e)return{bodyHeaders:void 0,body:void 0};const r=Ke([n]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&r.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:pS(e)}:re(this,Nl,"f").call(this,{body:e,headers:r})}}dh=dt,Nl=new WeakMap,Xd=new WeakSet,Cw=function(){return this.baseURL!=="https://api.openai.com/v1"};dt.OpenAI=dh;dt.DEFAULT_TIMEOUT=6e5;dt.OpenAIError=Ze;dt.APIError=hn;dt.APIConnectionError=kc;dt.APIConnectionTimeoutError=qf;dt.APIUserAbortError=Kn;dt.NotFoundError=iS;dt.ConflictError=aS;dt.RateLimitError=cS;dt.BadRequestError=rS;dt.AuthenticationError=sS;dt.InternalServerError=uS;dt.PermissionDeniedError=oS;dt.UnprocessableEntityError=lS;dt.InvalidWebhookSignatureError=qi;dt.toFile=_O;dt.Completions=sw;dt.Chat=Qf;dt.Embeddings=iw;dt.Files=lw;dt.Images=pw;dt.Audio=Ia;dt.Moderations=gw;dt.Models=mw;dt.FineTuning=To;dt.Graders=ah;dt.VectorStores=Rc;dt.Webhooks=_w;dt.Beta=Oa;dt.Batches=QS;dt.Uploads=uh;dt.Responses=ch;dt.Evals=rh;dt.Containers=th;let Sl=null,Du=null;const VO=()=>{const t=Gr().trim().replace(/\/+$/,"");if(t.endsWith("/openai/v1"))return t;const e="/v1";return`${t.endsWith(e)?t.slice(0,-e.length):t}/openai/v1`},GO=()=>{const t=VO();return Sl?Du!==t&&(Sl=new dt({apiKey:"local",baseURL:t,dangerouslyAllowBrowser:!0}),Du=t):(Sl=new dt({apiKey:"local",baseURL:t,dangerouslyAllowBrowser:!0}),Du=t),Sl},kw=t=>{const e=t.match(/```mermaid\s*([\s\S]*?)```/i);return e?e[1].trim():t.trim()},JO=(t,e,n)=>{const r=e.trim(),s=kw(n),o=/```mermaid\s*([\s\S]*?)```/gi;let i=!1;const a=t.replace(o,(d,f)=>i||f.trim()!==r?d:(i=!0,`\`\`\`mermaid
235
+ `);this.baseURL=a.baseURL,this.timeout=a.timeout??dh.DEFAULT_TIMEOUT,this.logger=a.logger??console;const c="warn";this.logLevel=c,this.logLevel=Hm(a.logLevel,"ClientOptions.logLevel",this)??Hm(Js("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??sO(),Qe(this,Nl,iO),this._options=a,this.apiKey=n,this.organization=r,this.project=s,this.webhookSecret=o}withOptions(e){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,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:n}){}async authHeaders(e){return Ke([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return fO(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${eo}`}defaultIdempotencyKey(){return`stainless-node-retry-${oS()}`}makeStatusError(e,n,r,s){return hn.generate(e,n,r,s)}buildURL(e,n,r){const s=!re(this,Xd,"m",Ew).call(this)&&r||this.baseURL,o=XI(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),i=this.defaultQuery();return VI(i)||(n={...i,...n}),typeof n=="object"&&n&&!Array.isArray(n)&&(o.search=this.stringifyQuery(n)),o.toString()}async prepareOptions(e){}async prepareRequest(e,{url:n,options:r}){}get(e,n){return this.methodRequest("get",e,n)}post(e,n){return this.methodRequest("post",e,n)}patch(e,n){return this.methodRequest("patch",e,n)}put(e,n){return this.methodRequest("put",e,n)}delete(e,n){return this.methodRequest("delete",e,n)}methodRequest(e,n,r){return this.request(Promise.resolve(r).then(s=>({method:e,path:n,...s})))}request(e,n=null){return new Ec(this,this.makeRequest(e,n,void 0))}async makeRequest(e,n,r){var M,C;const s=await e,o=s.maxRetries??this.maxRetries;n==null&&(n=o),await this.prepareOptions(s);const{req:i,url:a,timeout:c}=await this.buildRequest(s,{retryCount:o-n});await this.prepareRequest(i,{url:a,options:s});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),f=r===void 0?"":`, retryOf: ${r}`,p=Date.now();if(dn(this).debug(`[${d}] sending request`,fs({retryOfRequestLogID:r,method:s.method,url:a,options:s,headers:i.headers})),(M=s.signal)!=null&&M.aborted)throw new Kn;const y=new AbortController,m=await this.fetchWithTimeout(a,i,c,y).catch(Ld),w=Date.now();if(m instanceof Error){const T=`retrying, ${n} attempts remaining`;if((C=s.signal)!=null&&C.aborted)throw new Kn;const k=$d(m)||/timed? ?out/i.test(String(m)+("cause"in m?String(m.cause):""));if(n)return dn(this).info(`[${d}] connection ${k?"timed out":"failed"} - ${T}`),dn(this).debug(`[${d}] connection ${k?"timed out":"failed"} (${T})`,fs({retryOfRequestLogID:r,url:a,durationMs:w-p,message:m.message})),this.retryRequest(s,n,r??d);throw dn(this).info(`[${d}] connection ${k?"timed out":"failed"} - error; no more retries left`),dn(this).debug(`[${d}] connection ${k?"timed out":"failed"} (error; no more retries left)`,fs({retryOfRequestLogID:r,url:a,durationMs:w-p,message:m.message})),k?new qf:new kc({cause:m})}const b=[...m.headers.entries()].filter(([T])=>T==="x-request-id").map(([T,k])=>", "+T+": "+JSON.stringify(k)).join(""),_=`[${d}${f}${b}] ${i.method} ${a} ${m.ok?"succeeded":"failed"} with status ${m.status} in ${w-p}ms`;if(!m.ok){const T=await this.shouldRetry(m);if(n&&T){const F=`retrying, ${n} attempts remaining`;return await oO(m.body),dn(this).info(`${_} - ${F}`),dn(this).debug(`[${d}] response error (${F})`,fs({retryOfRequestLogID:r,url:m.url,status:m.status,headers:m.headers,durationMs:w-p})),this.retryRequest(s,n,r??d,m.headers)}const k=T?"error; no more retries left":"error; not retryable";dn(this).info(`${_} - ${k}`);const P=await m.text().catch(F=>Ld(F).message),A=QI(P),j=A?void 0:P;throw dn(this).debug(`[${d}] response error (${k})`,fs({retryOfRequestLogID:r,url:m.url,status:m.status,headers:m.headers,message:j,durationMs:Date.now()-p})),this.makeStatusError(m.status,A,j,m.headers)}return dn(this).info(_),dn(this).debug(`[${d}] response start`,fs({retryOfRequestLogID:r,url:m.url,status:m.status,headers:m.headers,durationMs:w-p})),{response:m,options:s,controller:y,requestLogID:d,retryOfRequestLogID:r,startTime:p}}getAPIList(e,n,r){return this.requestAPIList(n,{method:"get",path:e,...r})}requestAPIList(e,n){const r=this.makeRequest(n,null,void 0);return new wO(this,r,e)}async fetchWithTimeout(e,n,r,s){const{signal:o,method:i,...a}=n||{};o&&o.addEventListener("abort",()=>s.abort());const c=setTimeout(()=>s.abort(),r),d=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,f={signal:s.signal,...d?{duplex:"half"}:{},method:"GET",...a};i&&(f.method=i.toUpperCase());try{return await this.fetch.call(void 0,e,f)}finally{clearTimeout(c)}}async shouldRetry(e){const n=e.headers.get("x-should-retry");return n==="true"?!0:n==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,n,r,s){let o;const i=s==null?void 0:s.get("retry-after-ms");if(i){const c=parseFloat(i);Number.isNaN(c)||(o=c)}const a=s==null?void 0:s.get("retry-after");if(a&&!o){const c=parseFloat(a);Number.isNaN(c)?o=Date.parse(a)-Date.now():o=c*1e3}if(!(o&&0<=o&&o<60*1e3)){const c=e.maxRetries??this.maxRetries;o=this.calculateDefaultRetryTimeoutMillis(n,c)}return await Ra(o),this.makeRequest(e,n-1,r)}calculateDefaultRetryTimeoutMillis(e,n){const o=n-e,i=Math.min(.5*Math.pow(2,o),8),a=1-Math.random()*.25;return i*a*1e3}async buildRequest(e,{retryCount:n=0}={}){const r={...e},{method:s,path:o,query:i,defaultBaseURL:a}=r,c=this.buildURL(o,i,a);"timeout"in r&&JI("timeout",r.timeout),r.timeout=r.timeout??this.timeout;const{bodyHeaders:d,body:f}=this.buildBody({options:r}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:d,retryCount:n});return{req:{method:s,headers:p,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&f instanceof globalThis.ReadableStream&&{duplex:"half"},...f&&{body:f},...this.fetchOptions??{},...r.fetchOptions??{}},url:c,timeout:r.timeout}}async buildHeaders({options:e,method:n,bodyHeaders:r,retryCount:s}){let o={};this.idempotencyHeader&&n!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),o[this.idempotencyHeader]=e.idempotencyKey);const i=Ke([o,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...rO(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,r,e.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:e,headers:n}}){if(!e)return{bodyHeaders:void 0,body:void 0};const r=Ke([n]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&r.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:yS(e)}:re(this,Nl,"f").call(this,{body:e,headers:r})}}dh=dt,Nl=new WeakMap,Xd=new WeakSet,Ew=function(){return this.baseURL!=="https://api.openai.com/v1"};dt.OpenAI=dh;dt.DEFAULT_TIMEOUT=6e5;dt.OpenAIError=Ze;dt.APIError=hn;dt.APIConnectionError=kc;dt.APIConnectionTimeoutError=qf;dt.APIUserAbortError=Kn;dt.NotFoundError=cS;dt.ConflictError=uS;dt.RateLimitError=fS;dt.BadRequestError=iS;dt.AuthenticationError=aS;dt.InternalServerError=hS;dt.PermissionDeniedError=lS;dt.UnprocessableEntityError=dS;dt.InvalidWebhookSignatureError=Ki;dt.toFile=EO;dt.Completions=aw;dt.Chat=Qf;dt.Embeddings=cw;dt.Files=dw;dt.Images=yw;dt.Audio=Ia;dt.Moderations=vw;dt.Models=bw;dt.FineTuning=Eo;dt.Graders=ah;dt.VectorStores=Rc;dt.Webhooks=Tw;dt.Beta=Oa;dt.Batches=tw;dt.Uploads=uh;dt.Responses=ch;dt.Evals=rh;dt.Containers=th;let Sl=null,Du=null;const ZO=()=>{const t=Jr().trim().replace(/\/+$/,"");if(t.endsWith("/openai/v1"))return t;const e="/v1";return`${t.endsWith(e)?t.slice(0,-e.length):t}/openai/v1`},e$=()=>{const t=ZO();return Sl?Du!==t&&(Sl=new dt({apiKey:"local",baseURL:t,dangerouslyAllowBrowser:!0}),Du=t):(Sl=new dt({apiKey:"local",baseURL:t,dangerouslyAllowBrowser:!0}),Du=t),Sl},Pw=t=>{const e=t.match(/```mermaid\s*([\s\S]*?)```/i);return e?e[1].trim():t.trim()},t$=(t,e,n)=>{const r=e.trim(),s=Pw(n),o=/```mermaid\s*([\s\S]*?)```/gi;let i=!1;const a=t.replace(o,(d,f)=>i||f.trim()!==r?d:(i=!0,`\`\`\`mermaid
236
236
  ${s}
237
237
  \`\`\``));return i?a:t.match(o)?t.replace(o,d=>i?d:(i=!0,`\`\`\`mermaid
238
238
  ${s}
239
- \`\`\``)):null},ig="_text",uc=t=>!!(t&&t.role==="assistant"&&"type"in t&&t.type==="text"),ag=(t,e,n)=>{var s;const r=typeof((s=e.metadata)==null?void 0:s.backendMessageId)=="string"?e.metadata.backendMessageId.trim():"";if(r)return r;if(t.endsWith(ig)){const o=t.slice(0,-ig.length);if(o&&n.some(i=>i.id===o))return o}return t},QO=(t,e)=>{const n=e.trim();if(!n)return!1;const r=t.matchAll(/```mermaid\s*([\s\S]*?)```/gi);for(const s of r)if((s[1]||"").trim()===n)return!0;return!1},ZO=t=>(t instanceof Error?t.message:String(t)).toLowerCase().includes("message not found"),e$=(t,e,n,r)=>{const s=t.find(o=>o.id===e);return uc(s)?s:t.find(o=>uc(o)&&(o.content===n||QO(o.content,r)))},t$=(t,e)=>{const n=(e??"").trim(),r=["Original Mermaid code:","```mermaid",t.trim(),"```"];return n&&r.push("","Mermaid parser/render error:",n),r.push("","Please fix the Mermaid syntax while preserving the original meaning and labels."),r.join(`
240
- `)},n$=async(t,e,n)=>{var a,c,d;const r=e==null?void 0:e.trim();if(!r)throw new Error("No model configured. Please select a default model in Provider Settings.");const i=((d=(c=(a=(await GO().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:t$(t,n)}],temperature:0})).choices)==null?void 0:a[0])==null?void 0:c.message)==null?void 0:d.content)??"";return kw(i)},r$=(t,e)=>{const n=tM(),r=nM(),s=(r==null?void 0:r.model)??n;return v.useCallback(async(o,i)=>{const a=G.getState(),c=e??a.currentSessionId,d=a.chats.find(C=>C.id===c);if(!c||!d)throw new Error("No active chat available");const f=d.messages.find(C=>C.id===t);if(!uc(f))throw new Error("Mermaid fix is only available for assistant text messages");const p=await n$(o,s,i);if(!p)throw new Error("AI did not return a Mermaid fix");const b=JO(f.content,o,p);if(!b)throw new Error("Unable to locate Mermaid block to update");let m=ag(t,f,d.messages);try{await _s.patchSessionMessage(c,m,{content:b})}catch(C){if(!ZO(C))throw C;await a.loadChatHistory(c,{mode:"replace",retries:2,retryDelayMs:150,waitForAssistant:!0});const k=G.getState().chats.find(A=>A.id===c);if(!k)throw C;const P=e$(k.messages,t,f.content,o);if(!P)throw C;m=ag(P.id,P,k.messages),await _s.patchSessionMessage(c,m,{content:b})}const w=G.getState(),y=w.chats.find(C=>C.id===c);if(!y)throw new Error("No active chat available");const _=new Set([t,m]),M=y.messages.map(C=>!_.has(C.id)||!uc(C)?C:{...C,content:b});w.updateSession(c,{messages:M})},[t,e,s])},s$=t=>t.xs?"100%":t.sm?"95%":"800px",o$=[{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:"}],i$=({messageId:t,isVisible:e,onRetryWithVariation:n})=>{const{t:r}=Xe(),[s,o]=v.useState(null),[i,a]=v.useState(!1),c=v.useCallback(()=>{o(m=>m==="like"?null:"like"),a(!1)},[]),d=v.useCallback(()=>{o(m=>{const w=m==="dislike"?null:"dislike";return a(w==="dislike"),w})},[]),f=v.useCallback(m=>{n&&n(m.prefix)},[n]),b=["lotus-msg-feedback",e?"is-visible":"",s!==null?"has-rating":""].filter(Boolean).join(" ");return l.jsxs("div",{className:b,"data-message-id":t,children:[l.jsx(fn,{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(n_,{}):l.jsx(r_,{})})}),l.jsx(fn,{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(s_,{}):l.jsx(o_,{})})}),i&&n&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"lotus-msg-feedback-sep"}),l.jsx("span",{className:"lotus-msg-feedback-retry",children:o$.map(m=>l.jsx(He,{color:m.color,bordered:!1,className:"lotus-msg-feedback-retry-tag",onClick:()=>f(m),children:r(m.labelKey,m.fallbackLabel)},m.key))})]})]})},{useToken:a$}=lt,{useBreakpoint:l$}=pc,c$="chat-send-message",u$=({sessionId:t,message:e,onDelete:n,messageType:r})=>{const{role:s,id:o}=e,{token:i}=a$(),a=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:c}=Xe(),{message:d}=En.useApp(),f=l$(),p=G(me=>me.updateSession),b=G(me=>me.loadChatHistory),m=G(me=>me.refreshChats),w=v.useRef(null),[y,_]=v.useState(!1),M=G(Ta(t)),C=v.useCallback(me=>typeof window>"u"?Promise.reject(new Error("window is unavailable")):new Promise((ge,le)=>{const ke={content:me,sessionId:t,handled:!1,resolve:ge,reject:le};window.dispatchEvent(new CustomEvent(c$,{detail:ke})),ke.handled||le(new Error("No chat message dispatcher available"))}),[t]),T=v.useMemo(()=>{if(!e.createdAt)return null;const me=new Date(e.createdAt);if(Number.isNaN(me.getTime()))return null;try{return Z1(me,"MMM d, yyyy HH:mm")}catch{return me.toLocaleString()}},[e.createdAt]),k=v.useMemo(()=>MI(e,r),[e,r]),P=v.useMemo(()=>AI(e,k),[e,k]),A=v.useMemo(()=>RI(e,k),[e,k]),j=v.useMemo(()=>eS(e),[e]),$=r$(o,t),F=v.useCallback(async me=>{var ge;if(!t||!o){d.warning(c("chat.messageActions.cannotRestore"));return}try{const le=await _s.restoreSessionState(t,{target_message_id:o,restore_files:me});await b(t,{mode:"replace"}),await m();const ke=((ge=le.file_errors)==null?void 0:ge.length)??0;if(ke>0){d.warning(c("chat.messageActions.restorePartial",{count:ke}));return}me?d.success(c("chat.messageActions.restoreFilesSuccess",{count:le.messages_removed})):d.success(c("chat.messageActions.restoreSuccess",{count:le.messages_removed}))}catch(le){const ke=le instanceof Error?le.message:c("chat.messageActions.restoreFailed");d.error(ke)}},[d,t,b,o,m,c]),X=v.useCallback(()=>{F(!1)},[F]),K=v.useCallback(()=>{F(!0)},[F]),{contextMenuItems:O,handleMouseUp:W,copyToClipboard:ae,referenceMessage:Y}=zI({messageText:j,messageId:o,currentSessionId:t,onDelete:n,onRestoreChat:X,onRestoreFilesAndChat:K,cardRef:w}),ce=v.useMemo(()=>s==="user"&&j.startsWith("/"),[s,j]),L=v.useMemo(()=>Xv(void 0,{onFixMermaid:$}),[$]),oe=v.useMemo(()=>[Zd,ef],[]),Se=v.useMemo(()=>[Qd],[]),J=v.useMemo(()=>[iR(()=>ae(j),c("chat.actions.copyMessage")),aR(Y,c("chat.actions.referenceMessage"))],[j,ae,Y,c]),{handleExecutePlan:te,handleRefinePlan:he,handleQuestionAnswer:de}=BI({currentSessionId:t,updateSession:p,sendMessage:C});return k==="plan"&&P&&s==="assistant"?l.jsx(Cv,{plan:P,contextId:t||"",onExecute:te,onRefine:he,timestamp:T??void 0}):k==="question"&&A&&s==="assistant"?l.jsx(kv,{question:A,contextId:t||"",onAnswer:de,disabled:M||!1,timestamp:T??void 0}):dR(e)?l.jsx(vR,{taskList:e.taskList}):uR(e)?(pe("[MessageCard]","[MessageCard] Rendering FileReferenceCard for message:",e.id,"paths:",e.paths),l.jsx(Ce,{justify:"flex-end",style:{width:"100%"},children:l.jsx(Tv,{paths:e.paths,displayText:e.displayText,timestamp:T??void 0})})):l.jsxs(Ce,{vertical:!0,onContextMenu:me=>W(me),style:{width:"100%"},children:[l.jsx(mo,{menu:{items:O},trigger:["contextMenu"],children:l.jsx(Ut,{"data-testid":s==="assistant"?"assistant-message":"user-message",id:o?`message-${o}`:void 0,ref:w,style:{width:"100%",minWidth:"100%",maxWidth:s$(f),margin:"0 auto",background:s==="user"?"var(--lotus-message-user-bg)":s==="assistant"?"var(--lotus-message-assistant-bg)":i.colorBgContainer,backdropFilter:a?"none":"blur(14px)",WebkitBackdropFilter:a?"none":"blur(14px)",border:s==="user"?"1px solid var(--lotus-message-user-border)":"1px solid var(--lotus-glass-border-subtle)",borderRadius:i.borderRadiusLG,boxShadow:y?"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:y?"translateY(-2px) scale(1.002)":"none",overflow:"hidden"},styles:{body:{padding:i.paddingMD}},onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1),children:l.jsxs(We,{direction:"vertical",size:i.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(EI,{role:s,formattedTimestamp:T,token:i}),e.role==="user"&&e.images&&l.jsx(nR,{images:e.images}),l.jsx(Ce,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:l.jsx(TI,{sessionId:t,message:e,messageText:j,isUserToolCall:ce,formatUserToolCall:jI,markdownComponents:L,markdownPlugins:oe,rehypePlugins:Se})}),l.jsx(oR,{isVisible:y,position:{bottom:i.paddingXS,right:i.paddingXS},buttons:J})]})})}),s==="assistant"&&k==="text"&&o&&l.jsx(i$,{messageId:o,isVisible:y})]})},Tw=v.memo(u$,(t,e)=>t.message===e.message&&t.messageType===e.messageType&&t.onDelete===e.onDelete&&t.sessionId===e.sessionId);Tw.displayName="MessageCard";const d$=({key:t,atomFamily:e,store:n,emptyState:r})=>{const s=v.useMemo(()=>t?e(t):null,[e,t]),[o,i]=v.useState(()=>Sd(n,e,t,r));return v.useEffect(()=>{if(i(Sd(n,e,t,r)),!s||!t)return;let a=null,c=n.get(s);const d=n.sub(s,()=>{c=n.get(s),a===null&&(a=requestAnimationFrame(()=>{i(c),a=null}))});return()=>{d(),a!==null&&cancelAnimationFrame(a)}},[e,r,t,s,n]),o},f$=t=>{const e=wn(t);return d$({key:e,atomFamily:wc,store:Sc,emptyState:Gb})},{Text:ua}=ut,{useToken:h$}=lt,ea=8,Fu=4,p$=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"]),m$=(t,e)=>l.jsx(Ut,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto",marginBottom:ea,background:e.colorBgContainer,borderColor:e.colorBorder},children:l.jsx("pre",{style:{margin:0,padding:e.paddingSM,background:e.colorBgContainer,color:e.colorText,borderRadius:e.borderRadiusSM,fontSize:e.fontSizeSM,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l.jsx("code",{style:{color:e.colorText},children:t})})}),g$=t=>({p:({children:e})=>l.jsx(ua,{style:{marginBottom:ea,display:"block"},children:e}),ol:({children:e})=>l.jsx("ol",{style:{marginBottom:ea,paddingLeft:20},children:e}),ul:({children:e})=>l.jsx("ul",{style:{marginBottom:ea,paddingLeft:20},children:e}),li:({children:e})=>l.jsx("li",{style:{marginBottom:Fu},children:e}),code({className:e,children:n,inline:r,...s}){const o=/language-([^\s]+)/i.exec(e||""),i=o?o[1]:"",a=r??(!o&&!e),c=n?String(n).replace(/\n$/,""):"";if(a)return l.jsx(ua,{code:!0,className:e,...s,children:n});if(!c.trim())return null;const d=i.toLowerCase();return p$.has(d)?m$(c,t):qv(i,c,void 0,void 0)},pre:({children:e})=>l.jsx(l.Fragment,{children:e}),blockquote:({children:e})=>l.jsx(Ut,{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:`${Fu}px 0`,color:"var(--ant-color-text-secondary, #64748b)",fontStyle:"italic"},children:e}),a:({children:e,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(),Kv(r)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:e}):l.jsx(l.Fragment,{children:e})},table:({children:e})=>l.jsx(Ut,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${ea}px 0`},children:l.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:`1px solid ${t.colorBorder}`},children:e})}),thead:({children:e})=>l.jsx("thead",{style:{backgroundColor:t.colorFillTertiary,color:t.colorText},children:e}),tbody:({children:e})=>l.jsx("tbody",{children:e}),tr:({children:e})=>l.jsx("tr",{style:{borderBottom:`1px solid ${t.colorBorderSecondary}`},children:e}),th:({children:e})=>l.jsx("th",{style:{padding:"4px 8px",textAlign:"left",fontWeight:"bold",color:t.colorText,borderRight:`1px solid ${t.colorBorder}`},children:e}),td:({children:e})=>l.jsx("td",{style:{padding:"4px 8px",borderRight:`1px solid ${t.colorBorder}`},children:e}),input:({type:e,checked:n,disabled:r})=>e==="checkbox"?l.jsx("input",{type:"checkbox",checked:n,disabled:r,style:{marginRight:Fu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:e,checked:n,disabled:r})}),Ew=v.memo(({sessionId:t})=>{const{token:e}=h$(),n=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:r}=Xe(),s=`streaming-status-${t}`,o=f$(t),i=o.content,a=o.reasoningContent,[c,d]=v.useState(()=>At.getLatest(s)??"");v.useEffect(()=>{let w=null,y=null;const _=At.subscribeMessage(s,M=>{y=M,w===null&&(w=requestAnimationFrame(()=>{d(y??""),w=null}))});return()=>{_(),w!==null&&cancelAnimationFrame(w)}},[s]);const f=v.useMemo(()=>{const w=c.trim().toLowerCase();if(!w)return r("chat.messageCard.assistantThinking");if(w==="context_compacting")return r("chat.messageCard.assistantCompactingContext");if(w==="context_compaction_degraded")return r("chat.messageCard.assistantCompactingContextDegraded");if(w==="context_compaction_failed")return r("chat.messageCard.assistantCompactingContextFailed");if(w==="memory_updating")return r("chat.messageCard.assistantUpdatingMemory");if(w.startsWith("tool_running:")){const _=(w.slice(13).trim()||"tool").replace(/[_-]+/g," ");return r("chat.messageCard.assistantRunningTool",{tool:_})}return r("chat.messageCard.assistantThinking")},[c,r]),p=v.useMemo(()=>[Zd,ef],[]),b=v.useMemo(()=>[Qd],[]),m=v.useMemo(()=>g$(e),[e]);return l.jsx(Ut,{"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:e.borderRadiusLG,boxShadow:"none",position:"relative",wordWrap:"break-word",overflowWrap:"break-word"},children:l.jsxs(We,{direction:"vertical",size:e.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(Ce,{align:"baseline",justify:"space-between",gap:e.marginXS,children:l.jsx(ua,{type:"secondary",strong:!0,style:{fontSize:e.fontSizeSM},children:r("chat.streaming.assistant")})}),l.jsxs(Ce,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:[a?l.jsx(xo,{size:"small",defaultActiveKey:["reasoning"],style:{marginBottom:e.marginSM,background:e.colorBgContainer,borderColor:e.colorBorderSecondary},items:[{key:"reasoning",label:l.jsx(ua,{strong:!0,children:r("chat.messageCard.reasoning")}),children:l.jsx(xr,{remarkPlugins:p,rehypePlugins:b,components:m,children:a})}]}):null,!i||c?l.jsx(ua,{italic:!0,className:"thinking-shimmer",children:f}):null,i?l.jsx(xr,{remarkPlugins:p,rehypePlugins:b,components:m,children:i}):null,l.jsx("span",{className:"blinking-cursor",style:{display:"inline-block",marginLeft:"0.2em",color:e.colorText}})]})]})})});Ew.displayName="StreamingMessageCard";const{Text:wl}=ut,y$="chat-session-tool-collapse:",Pw=(t,e)=>`${y$}${t}:${e}`,lg=(t,e)=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(Pw(t,e));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}},b$=async(t,e,n)=>{if(typeof window>"u")return;await Dn.getInstance().saveToolSessionCollapse(t,e,n);try{window.localStorage.setItem(Pw(t,e),JSON.stringify(n))}catch{}},v$="synthetic-tool-call:",S$=t=>{var n,r,s,o;const e=new Set;return(n=t.callMessageId)!=null&&n.trim()?e.add(t.callMessageId.trim()):t.call.id&&!t.call.id.includes(":")&&!t.call.id.startsWith(v$)&&e.add(t.call.id),(r=t.resultMessageId)!=null&&r.trim()?e.add(t.resultMessageId.trim()):(o=(s=t.result)==null?void 0:s.id)!=null&&o.trim()&&e.add(t.result.id.trim()),Array.from(e)},w$=t=>{const e=new Set;return t.forEach(n=>{S$(n).forEach(r=>e.add(r))}),Array.from(e)},x$=({tools:t,sessionId:e,defaultExpanded:n=!1,autoCollapseWhenStale:r=!1,onDeleteMessageIds:s})=>{const{t:o}=Xe(),{token:i}=lt.useToken(),a=v.useMemo(()=>{var j,$,F,X;const k=t[0],P=($=(j=k==null?void 0:k.call)==null?void 0:j.toolCalls)==null?void 0:$[0];return`${(k==null?void 0:k.callMessageId)||((F=k==null?void 0:k.call)==null?void 0:F.id)||(k==null?void 0:k.resultMessageId)||((X=k==null?void 0:k.result)==null?void 0:X.id)||"tool-message-missing"}:${(P==null?void 0:P.toolCallId)||"tool-call-missing"}`},[t]),[c,d]=v.useState(()=>{const k=lg(e,a);return k?k.isExpanded:n});v.useEffect(()=>{const k=lg(e,a);d(k?k.isExpanded:n),Dn.getInstance().loadToolSessionCollapse(e,a).then(A=>{A&&d(A.isExpanded)}).catch(()=>{})},[n,e,a]),v.useEffect(()=>{b$(e,a,{isExpanded:c,expandedTools:[]}).catch(()=>{})},[e,a,c]);const f=v.useRef(r);v.useEffect(()=>{!f.current&&r&&d(!1),f.current=r},[r]);const{completedCount:p,pendingCount:b,hasErrors:m}=v.useMemo(()=>{let k=0,P=0,A=!1;return t.forEach(j=>{j.result?(k++,j.result.isError&&(A=!0)):P++}),{completedCount:k,pendingCount:P,hasErrors:A}},[t]),w=v.useMemo(()=>b>0?{color:"processing",text:o("components.toolSession.completedProgress",{completed:p,total:t.length})}:m?{color:"warning",text:o("components.toolSession.completedWithErrors",{completed:p})}:{color:"success",text:o("components.toolSession.completedOnly",{completed:p})},[p,b,m,t.length,o]),y=v.useMemo(()=>{let k=0,P=0,A=0;return t.forEach(j=>{var X,K;const $=(K=(X=j.result)==null?void 0:X.result)==null?void 0:K.result;if(!$)return;const F=Ff($);F&&(k+=F.added,P+=F.removed,A+=1)}),{added:k,removed:P,changedTools:A}},[t]),_=v.useMemo(()=>{const k=t.map(j=>{var X,K;const $=(K=(X=j.call)==null?void 0:X.toolCalls)==null?void 0:K[0];if(!$)return null;const F=Co($.toolName);return F?F.toolName:$.toolName||null}).filter(j=>!!j);if(k.length===0)return o("components.toolSession.title");if(k.length===1)return k[0];const P=k.filter((j,$)=>$===0||j!==k[$-1]),A=3;return P.length<=A?P.join(" → "):`${P.slice(0,A).join(" → ")} +${P.length-A}`},[t,o]),M=v.useMemo(()=>w$(t),[t]),C=l.jsx(Uf,{sessionId:e,tools:t,defaultExpanded:!0,hideHeader:!0}),T={background:"transparent"};return l.jsxs("div",{style:T,children:[l.jsxs("div",{style:{padding:`${i.paddingXS}px 0`,backgroundColor:"transparent",borderBottom:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:i.marginSM,transition:"border-color 240ms ease, background-color 240ms ease"},onClick:()=>d(!c),"data-testid":"tool-session-card-header",children:[l.jsx(of,{style:{color:i.colorPrimary}}),l.jsx(wl,{strong:!0,style:{flex:1},children:_}),l.jsx(i_,{count:t.length,style:{backgroundColor:i.colorPrimary}}),y.changedTools>0&&l.jsxs(We,{size:4,style:{marginInlineStart:i.marginXS},children:[l.jsxs(wl,{style:{color:i.colorSuccess,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",y.added]}),l.jsxs(wl,{style:{color:i.colorError,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",y.removed]})]}),l.jsx(wl,{type:"secondary",style:{fontSize:i.fontSizeSM},children:w.text}),s&&l.jsx(fn,{title:M.length>0?o("components.toolSession.deleteMessage"):o("components.toolSession.noPersistedMessage"),children:l.jsx(Ae,{type:"text",size:"small",danger:!0,icon:l.jsx(fc,{}),"aria-label":o("components.toolSession.deleteMessage"),"data-testid":"delete-tool-session",disabled:M.length===0,onClick:k=>{k.preventDefault(),k.stopPropagation(),M.length!==0&&s(M)}})}),l.jsx("div",{style:{marginLeft:i.marginXS},children:c?l.jsx(go,{style:{color:i.colorTextSecondary}}):l.jsx(As,{style:{color:i.colorTextSecondary}})})]}),c&&C]})},Mw=v.memo(x$);Mw.displayName="ToolSessionCard";const{Content:_$}=ro,{Text:cg}=ut,ug=120,C$=140,k$=220,T$=140,E$=72,dg=68,P$=84,M$=720,A$=t=>{const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};function fg(t){return"type"in t&&(t.type==="tool_session"||t.type==="compression_divider")?t.id:t.message.id}function R$(t,e){const n=t[e];if(!n)return ug;if("type"in n){if(n.type==="compression_divider")return E$;if(n.type==="tool_session"){if(!(e===t.length-1))return dg;const o=dg+Math.min(n.tools.length,8)*P$;return Math.min(M$,o)}}const r="message"in n?n.message:void 0;return r?r.role==="system"?T$:r.role==="user"?C$:k$:ug}const j$=({currentChat:t,currentSessionId:e,convertRenderableEntry:n,handleDeleteMessage:r,handleDeleteToolMessages:s,handleMessagesScroll:o,hasSystemPrompt:i,messagesListRef:a,bottomAnchorRef:c,renderableMessages:d,rowGap:f,showMessagesView:p,screens:b,workflowDraftId:m,isThinking:w,padding:y,selectionMode:_,selectedMessageIds:M,selectableMessageIds:C,onToggleMessageSelection:T})=>{const{t:k}=Xe(),P=v.useRef(d);P.current=d;const A=v.useCallback(W=>{const ae=P.current[W];return ae?fg(ae):String(W)},[]),j=v.useCallback(W=>R$(P.current,W),[]),$=NA({count:d.length,getScrollElement:()=>a.current,estimateSize:j,overscan:5,gap:f,getItemKey:A}),F=(W,ae)=>{if(!_)return null;const Y=C.has(W);return l.jsx(a_,{checked:M.has(W),disabled:!Y,onChange:()=>{Y&&T(W)},style:{marginTop:8,marginLeft:ae==="flex-end"?8:0,marginRight:ae==="flex-start"?8:0}})},X=(W,ae)=>{const Y=n(W),ce=ae===void 0||ae===d.length-1;if(Y.type==="compression_divider"){const L=A$(Y.createdAt);return l.jsx("div",{role:"note","aria-label":k("chat.compression.timelineAria",{detail:Y.label,time:L,defaultValue:"{{detail}} at {{time}}"}),style:{margin:"6px 0 10px 0",borderRadius:10,border:"1px solid rgba(250, 173, 20, 0.45)",background:"rgba(250, 173, 20, 0.12)",padding:b.xs?"8px 10px":"10px 12px"},children:l.jsxs(Ce,{align:"center",justify:"space-between",gap:8,wrap:!0,children:[l.jsxs(Ce,{align:"center",gap:8,wrap:!0,children:[l.jsx(He,{color:"gold",icon:l.jsx(Uy,{}),children:k("chat.compression.tag","Context compressed")}),l.jsx(cg,{strong:!0,style:{fontSize:12},children:Y.label})]}),l.jsx(cg,{type:"secondary",style:{fontSize:11},children:L})]})})}return Y.type==="tool_session"?l.jsx(Ce,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{id:`message-${Y.id}`,style:{width:"100%",maxWidth:b.xs?"100%":"90%"},children:l.jsx(Mw,{tools:Y.tools,sessionId:Y.sessionId,createdAt:Y.createdAt,defaultExpanded:ce,autoCollapseWhenStale:!ce,onDeleteMessageIds:e?s:void 0})})}):Y.message.role==="system"?l.jsxs(Ce,{align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[F(Y.message.id,"flex-start"),l.jsx("div",{style:{flex:1,minWidth:0},children:l.jsx(bv,{currentChat:t,message:Y.message})})]}):l.jsxs(Ce,{justify:Y.align,align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[Y.align==="flex-start"&&F(Y.message.id,Y.align),l.jsx("div",{style:{width:Y.message.role==="user"?"85%":"100%",maxWidth:b.xs?"100%":"90%"},children:l.jsx(Tw,{sessionId:e,message:Y.message,messageType:Y.messageType,onDelete:Y.message.id===m?void 0:r})}),Y.align==="flex-end"&&F(Y.message.id,Y.align)]})},K=(p||i)&&d.length>0,O=$.getVirtualItems();return l.jsx(_$,{role:"log","aria-live":"polite","aria-label":k("chat.view.chatMessagesAria"),className:`chat-view-messages-list ${p?"visible":"hidden"}`,style:{flex:1,minHeight:0,padding:y,overflowY:"auto",opacity:p?1:0,scrollbarWidth:"none",msOverflowStyle:"none"},ref:a,onScroll:o,children:l.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:f,width:"100%",minHeight:"100%"},children:[K&&l.jsx("div",{style:{position:"relative",width:"100%",height:$.getTotalSize()},children:O.map(W=>{const ae=d[W.index];if(!ae)return null;const Y=fg(ae);return l.jsx("div",{"data-chat-entry-id":Y,"data-index":W.index,ref:$.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${W.start}px)`},children:l.jsx("div",{className:"messageEnter",children:X(ae,W.index)})},W.key)})}),w&&e&&l.jsx("div",{className:"streaming-card-enter",children:l.jsx(Ce,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{style:{width:"100%",maxWidth:b.xs?"100%":"90%"},children:l.jsx(Ew,{sessionId:e})})})}),l.jsx("div",{ref:c,"data-chat-bottom-anchor":"true","aria-hidden":"true",style:{width:"100%",height:1,flexShrink:0}})]})})},I$=st.memo(j$),O$={green:{backgroundColor:"color-mix(in srgb, var(--lotus-success) 14%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-success) 30%, transparent)",color:"var(--lotus-success)"},blue:{backgroundColor:"color-mix(in srgb, var(--lotus-accent-secondary) 14%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-accent-secondary) 30%, transparent)",color:"var(--lotus-accent-secondary)"},purple:{backgroundColor:"color-mix(in srgb, var(--lotus-gold) 16%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-gold) 32%, transparent)",color:"var(--lotus-gold)"}},$$=({label:t,tone:e})=>{const n=O$[e];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:t})},L$=({usage:t,showDetails:e=!0,size:n="small",className:r=""})=>{const{t:s}=Xe(),o=pb(t),i=mb(t),a=kC(t),c=t.promptCachedToolOutputs??0,d=t.promptCachedToolTokensSaved??0,f=t.thinkingTokens??0,p=t.cacheReadInputTokens??0,b=c>0||d>0,m=f>0||p>0,w=T=>{const k=Math.round(T*10)/10;return Number.isInteger(k)?k.toFixed(0):k.toFixed(1)},y=()=>i>=90?"var(--lotus-chart-danger)":i>=70?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",_=[];d>0&&_.push({key:"prompt-saved",label:s("components.tokenUsage.promptSavedBadge",{value:au(d)}),tone:"green"}),p>0&&_.push({key:"cache-read",label:s("components.tokenUsage.cacheReadBadge",{value:au(p)}),tone:"blue"}),f>0&&_.push({key:"thinking",label:s("components.tokenUsage.thinkingBadge",{value:au(f)}),tone:"purple"});const M={marginTop:8,marginBottom:4,fontSize:11,fontWeight:700,color:"var(--lotus-metric-text-muted)"},C=l.jsxs("div",{style:{minWidth:220,color:"var(--lotus-metric-text-strong)"},children:[l.jsx("div",{style:{marginBottom:4,fontWeight:"bold"},children:s("components.tokenUsage.title")}),l.jsxs("div",{style:{fontSize:12},children:[s("components.tokenUsage.contextWindow"),": ",Nr(t.totalTokens)," /"," ",Nr(o)," ",s("components.tokenUsage.tokens")]}),l.jsx("div",{style:{fontSize:12,color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.usedPercent",{value:i.toFixed(1)})}),e&&l.jsxs("div",{style:{marginTop:6,borderTop:"1px solid var(--lotus-metric-tooltip-border)",paddingTop:6,fontSize:11},children:[l.jsx("div",{style:M,children:s("components.tokenUsage.contextPrepared")}),l.jsxs("div",{children:[s("components.tokenUsage.system"),": ",Nr(t.systemTokens)]}),t.summaryTokens>0&&l.jsxs("div",{children:[s("components.tokenUsage.summary"),": ",Nr(t.summaryTokens)]}),l.jsxs("div",{children:[s("components.tokenUsage.messages"),": ",Nr(t.windowTokens)]}),b?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:M,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"),":"," ",Nr(d)]})]}):null,m?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:M,children:s("components.tokenUsage.providerResult")}),p>0&&l.jsxs("div",{children:[s("components.tokenUsage.cacheRead"),": ",Nr(p)]}),f>0&&l.jsxs("div",{children:[s("components.tokenUsage.thinking"),": ",Nr(f)]})]}):null]})]});return l.jsx(fn,{title:C,placement:"top",arrow:!0,color:"var(--lotus-metric-tooltip-bg)",children:l.jsxs(We,{className:`token-usage-display ${r}`,size:4,align:"center",style:{lineHeight:1},children:[l.jsx(By,{type:"line",percent:Math.min(i,100),size:{height:n==="small"?6:8,width:80},strokeColor:y(),showInfo:!1,style:{margin:0,lineHeight:1}}),l.jsxs("span",{style:{fontSize:n==="small"?11:12,color:a==="error"?"var(--lotus-chart-danger)":a==="warning"?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",whiteSpace:"nowrap",fontWeight:600},children:[w(i),"%"]}),_.map(T=>l.jsx($$,{label:T.label,tone:T.tone},T.key))]})})},Yd="chat_scroll_anchors_v1",Aw="chat_scroll_anchor_v2:";function Rw(t){if(!t||typeof t!="object")return!1;const e=t;return e.v===1&&typeof e.anchorId=="string"&&typeof e.offsetPx=="number"&&typeof e.ts=="number"}function D$(){try{const t=localStorage.getItem(Yd);if(!t)return{};const e=JSON.parse(t);if(!e||typeof e!="object")return{};const n={};for(const[r,s]of Object.entries(e))Rw(s)&&(n[r]=s);return n}catch{return{}}}function F$(t){const e=D$(),n=e[t];if(!n)return null;Dn.getInstance().saveScrollAnchor(t,n).catch(()=>{}),delete e[t];const s=Object.keys(e).length;try{s===0?localStorage.removeItem(Yd):localStorage.setItem(Yd,JSON.stringify(e))}catch{}return n}async function N$(t){if(typeof window>"u")return null;try{const n=await Dn.getInstance().loadScrollAnchor(t);if(n)return n}catch{}try{const e=localStorage.getItem(`${Aw}${t}`);if(e){const n=JSON.parse(e);if(Rw(n))return Dn.getInstance().saveScrollAnchor(t,n).catch(()=>{}),n}}catch{}return F$(t)}async function z$(t,e){if(!(typeof window>"u")){try{await Dn.getInstance().saveScrollAnchor(t,e)}catch(n){console.warn("[ScrollAnchor] IndexedDB save failed:",n)}try{localStorage.setItem(`${Aw}${t}`,JSON.stringify(e))}catch{}}}const Nu=1,B$=3,W$=2e3;function U$(t,e){const n=Math.max(0,t.scrollHeight-t.clientHeight);return Math.min(Math.max(0,e),n)}function H$(t){const{scrollEl:e,getAnchorElement:n,offsetPx:r,isCancelled:s}=t;return new Promise(o=>{const i=performance.now();let a=0,c=-1,d=Number.NaN;const f=()=>{if(s()){o();return}const p=n();if(!p){requestAnimationFrame(f);return}const b=e.getBoundingClientRect(),w=p.getBoundingClientRect().top-b.top,y=U$(e,e.scrollTop+(w-r));if(Math.abs(e.scrollTop-y)>Nu)e.scrollTop=y,a=0;else{const M=Number.isFinite(d)?Math.abs(y-d)<=Nu:!1,C=Math.abs(e.scrollTop-c)<=Nu;a=M&&C?a+1:0}d=y,c=e.scrollTop;const _=performance.now()-i>W$;if(a>=B$||_){o();return}requestAnimationFrame(f)};requestAnimationFrame(f)})}const q$=300,K$=.5;function X$(t){return"type"in t&&(t.type==="tool_session"||t.type==="compression_divider")?t.id:"message"in t&&t.message?t.message.id:null}function jw(t){if("type"in t&&(t.type==="tool_session"||t.type==="compression_divider"))return t.createdAt;if("message"in t&&t.message)return t.message.createdAt}function hg(t){if(!t)return null;const e=Date.parse(t);return Number.isFinite(e)?e:null}function Y$(t,e){const n=hg(t.createdAt);if(n!=null){let r=null,s=Number.POSITIVE_INFINITY;for(let o=0;o<e.length;o++){const i=hg(jw(e[o]));if(i==null)continue;const a=Math.abs(i-n);a<s&&(s=a,r=o)}if(r!=null)return r}if(typeof t.indexHint=="number"){const r=Math.max(0,Math.min(e.length-1,t.indexHint));return Number.isFinite(r)?r:null}return null}function fh(t){return Array.from(t.querySelectorAll("[data-chat-entry-id]"))}function V$(t,e){const n=fh(t);for(const r of n)if(r.dataset.chatEntryId===e)return r;return null}function G$(t,e){const n=fh(t);if(n.length===0)return null;const r=Math.max(0,Math.min(n.length-1,e));return n[r]??null}function J$(t){const e=fh(t);if(e.length===0)return null;const n=t.getBoundingClientRect().top;for(const r of e)if(r.getBoundingClientRect().bottom>n)return r;return e[e.length-1]??null}function Q$(t){const{currentSessionId:e,messagesListRef:n,renderableMessages:r}=t,s=v.useRef(new Set),o=v.useRef(!1),i=v.useRef(0),a=v.useRef(null),c=v.useRef(null),d=v.useRef(!1);v.useEffect(()=>{const w=n.current;if(!w)return;const y=()=>{d.current=!0};return w.addEventListener("wheel",y,{passive:!0}),w.addEventListener("touchmove",y,{passive:!0}),w.addEventListener("pointerdown",y),()=>{w.removeEventListener("wheel",y),w.removeEventListener("touchmove",y),w.removeEventListener("pointerdown",y)}},[n]);const f=v.useMemo(()=>{const w=new Map;for(let y=0;y<r.length;y++){const _=X$(r[y]);_&&w.set(_,y)}return w},[r]),p=v.useCallback(()=>{const w=n.current;if(!w||r.length===0)return null;const y=J$(w);if(!y)return null;const _=y.dataset.chatEntryId;if(!_)return null;const M=w.getBoundingClientRect(),C=y.getBoundingClientRect(),T=f.get(_),k=typeof T=="number"?r[T]:void 0;return{v:1,anchorId:_,offsetPx:C.top-M.top,ts:Date.now(),indexHint:T,createdAt:k?jw(k):void 0}},[f,n,r]),b=v.useCallback(async w=>{if(o.current)return;const y=p();if(!y)return;const _=c.current;_&&_.anchorId===y.anchorId&&Math.abs(_.offsetPx-y.offsetPx)<=K$||(await z$(w,y),c.current=y)},[p]),m=v.useCallback(w=>{if(!e||o.current)return;a.current&&clearTimeout(a.current);const y=e;a.current=setTimeout(()=>{b(y).catch(()=>{})},q$)},[e,b]);return v.useEffect(()=>{const w=e;return()=>{w&&(a.current&&(clearTimeout(a.current),a.current=null),b(w).catch(()=>{}))}},[e,b]),v.useLayoutEffect(()=>{if(!e)return;const w=n.current;if(!w||r.length===0||s.current.has(e))return;let y=!1;return N$(e).then(_=>{if(y||!_){y||s.current.add(e);return}const M=f.get(_.anchorId),C=typeof M=="number"?M:Y$(_,r);if(C==null){s.current.add(e);return}a.current&&(clearTimeout(a.current),a.current=null);const T=++i.current;o.current=!0,d.current=!1,w.style.overflowAnchor="none";const k=()=>i.current!==T||d.current;H$({scrollEl:w,getAnchorElement:()=>V$(w,_.anchorId)??G$(w,C),offsetPx:_.offsetPx,isCancelled:k}).finally(()=>{i.current===T&&(o.current=!1,s.current.add(e),w.style.overflowAnchor="",b(e).catch(()=>{}))})}),()=>{y=!0}},[e,f,r,r.length,n,b]),{handleScroll:m}}const pg=2,mg=6,zu=150,Z$="streaming-",eL="streaming-reasoning-",tL="streaming-status-",nL=t=>t.startsWith(Z$)&&!t.startsWith(eL)&&!t.startsWith(tL),rL=({currentSessionId:t,isThinking:e,messagesListRef:n,bottomAnchorRef:r,renderableMessages:s})=>{const[o,i]=v.useState(!1),[a,c]=v.useState(!1),[d,f]=v.useState(!1),[p,b]=v.useState(0),m=v.useRef(!1),w=v.useRef(!1),y=v.useRef(!0),_=v.useRef(s.length),M=v.useRef(new Set),C=v.useRef(0),{handleScroll:T}=Q$({currentSessionId:t,messagesListRef:n,renderableMessages:s}),k=v.useCallback(()=>{M.current.clear(),f(!1),b(0)},[]),P=v.useCallback(O=>{if(O<=0)return 0;const W=M.current;if(W.size===0)return O;let ae=O;for(const Y of Array.from(W)){if(ae<=0)break;W.delete(Y),ae-=1}return ae},[]),A=v.useCallback(()=>{const O=n.current;if(!O||s.length===0)return i(!1),c(!1),k(),null;const W=Math.max(0,O.scrollHeight-O.scrollTop-O.clientHeight),ae=W<=zu,Y=O.scrollTop<=zu;return i(!ae),c(!Y&&s.length>3),ae&&(w.current=!0,k()),{atBottom:ae,distanceFromBottom:W}},[k,n,s.length]),j=v.useCallback(O=>{const W=A();W&&(W.distanceFromBottom>zu?(m.current=!0,w.current=!1):W.atBottom&&(m.current=!1,w.current=!0,k()),T(O))},[k,A,T]),$=v.useCallback(O=>{cancelAnimationFrame(C.current);const W=n.current,ae=r.current;if(!W||!ae||s.length===0)return;const Y=(O==null?void 0:O.behavior)??"smooth";let ce=0,L=Number.NaN;const oe=()=>{C.current=0,m.current=!1,w.current=!0,k(),A()},Se=()=>{const J=n.current,te=r.current;if(!J||!te)return;const he=Math.max(0,J.scrollHeight-J.scrollTop-J.clientHeight),de=te.getBoundingClientRect(),me=J.getBoundingClientRect(),ge=de.top-me.top,le=!Number.isFinite(L)||Math.abs(ge-L)>.5,ke=he>pg||le||ce===0;if(ke&&te.scrollIntoView({block:"end",behavior:ce===0?Y:"auto"}),L=ge,ce+=1,ce<mg&&ke){C.current=requestAnimationFrame(Se);return}oe()};C.current=requestAnimationFrame(Se)},[r,k,n,A,s.length]),F=v.useCallback(()=>{if(!n.current)return;let W=0;const ae=()=>{A()},Y=()=>{const ce=n.current;if(!ce)return;const L=ce.scrollTop>pg||W===0;if(L&&ce.scrollTo({top:0,behavior:"auto"}),W+=1,W<mg&&L){requestAnimationFrame(Y);return}ae()};requestAnimationFrame(Y)},[n,A]),X=v.useCallback(()=>{m.current=!1,w.current=!0,k()},[k]);v.useEffect(()=>{const O=W=>{var he,de;const Y=(he=W.detail)==null?void 0:he.messageId;if(!Y){console.error("No messageId provided for navigation");return}const ce=s.findIndex(me=>"message"in me&&me.message?me.message.id===Y:"id"in me?me.id===Y:!1);if(ce===-1){console.warn("Message not found for navigation:",Y);return}const L=s[ce],oe=L&&"message"in L?L.message.id:L&&"id"in L?L.id:Y,Se=document.getElementById(`message-${oe}`),J=Array.from(((de=n.current)==null?void 0:de.querySelectorAll("[data-chat-entry-id]"))||[]),te=Se||J.find(me=>me.dataset.chatEntryId===oe);if(!te){console.warn("Message element not found for navigation:",Y);return}te.scrollIntoView({behavior:"smooth",block:"center"}),te.classList.add("highlight-message"),setTimeout(()=>{te.classList.remove("highlight-message")},2e3)};return window.addEventListener("navigate-to-message",O),()=>{window.removeEventListener("navigate-to-message",O)}},[n,s]);const K=v.useRef(e);return v.useEffect(()=>{!K.current&&e&&(X(),$()),K.current=e},[e,X,$]),v.useEffect(()=>At.subscribe(O=>{var W;if(O.sessionId===t){if(m.current){(((W=O.content)==null?void 0:W.trim())??"")&&nL(O.messageId)&&(M.current.has(O.messageId)||(M.current.add(O.messageId),b(Y=>Y+1)),f(!0)),A();return}if(!O.content){A();return}$()}}),[t,A,$]),v.useEffect(()=>{const O=s.length,W=_.current,ae=O>W;if(O===0){k(),A(),_.current=O;return}if(y.current){A(),y.current=!1,_.current=O;return}if(ae&&m.current){const Y=P(O-W);f(!0),Y>0&&b(ce=>ce+Y)}!m.current&&ae?$():A(),_.current=O},[k,P,A,s.length,$]),v.useEffect(()=>{const O=n.current;if(!O||typeof ResizeObserver>"u")return;let W=0,ae=!1;const Y=()=>{cancelAnimationFrame(W);const Se=w.current;W=requestAnimationFrame(()=>{if(ae&&Se&&!m.current){$({behavior:"auto"});return}A()})},ce=new ResizeObserver(()=>{ae=!0,Y()});ce.observe(O);const L=O.firstElementChild;L instanceof HTMLElement&&ce.observe(L);const oe=r.current;return oe instanceof HTMLElement&&ce.observe(oe),Y(),()=>{cancelAnimationFrame(W),ce.disconnect()}},[r,t,n,A,s.length,$]),v.useEffect(()=>{if(!n.current||s.length===0){A();return}A();let W=0;const ae=requestAnimationFrame(()=>{A(),W=requestAnimationFrame(()=>{A()})});return()=>{cancelAnimationFrame(ae),cancelAnimationFrame(W)}},[n,s.length,t,A]),v.useEffect(()=>{y.current=!0,m.current=!1,w.current=!1,_.current=0,k()},[k,t]),{handleMessagesScroll:j,hasUnreadActivity:d,resetUserScroll:X,scrollToBottom:$,scrollToTop:F,showScrollToBottom:o,showScrollToTop:a,unreadCount:p}};function sL(t){return"type"in t&&t.type==="tool_session"}function oL(t){return"type"in t&&t.type==="compression_divider"}const gg=t=>{const e=Date.parse(t||"");return Number.isFinite(e)?e:Number.MAX_SAFE_INTEGER},iL=t=>"type"in t?t.createdAt:t.message.createdAt,aL=t=>!("type"in t)&&t.message.role==="system";function lL(t){return t.role==="assistant"&&"type"in t&&t.type==="tool_call"}function cL(t){return t.role==="assistant"&&"type"in t&&t.type==="tool_result"}const yg=t=>(t??"").trim().toLowerCase()==="conclusion",uL=t=>{const e=(t??"").trim().toLowerCase();return e==="conclusion_with_options"||e==="exitplanmode"||e==="request_permissions"},dL=t=>{var e,n,r;return((n=(e=t.call.toolCalls)==null?void 0:e[0])==null?void 0:n.toolCallId)||((r=t.result)==null?void 0:r.toolCallId)||"tool-call-missing"},fL=(t,e)=>{var n;return t.call.id||t.callMessageId||t.resultMessageId||((n=t.result)==null?void 0:n.id)||`tool-message-missing-${e}`},hL=(t,e)=>`tool-session-${fL(t,e)}:${dL(t)}`;function pL(t){const e=[],n=new Map,r=new Set,s=(i,a)=>{const c=n.get(i)||[];c.push(a),n.set(i,c)},o=i=>{const a=n.get(i);if(!a||a.length===0)return;let c;for(;a.length>0&&!c;){const d=a.shift();d&&!d.result&&(c=d)}return a.length===0?n.delete(i):n.set(i,a),c};for(const i of t){if(lL(i)){const a=i.toolCalls||[];if(a.length===0){e.push(i);continue}a.forEach((c,d)=>{const f=c.toolCallId||`${i.id}-${d}`;if(yg(c.toolName)){r.add(f);return}if(uL(c.toolName)){r.add(f);const w={...i,id:`${i.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]};e.push(w);return}const b={call:{...i,id:`${i.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]},callMessageId:i.id};s(f,b);const m=e[e.length-1];Array.isArray(m)?m.push(b):e.push([b])});continue}if(cL(i)){const a=i.toolCallId;if(a&&r.has(a)){r.delete(a),e.push(i);continue}if(yg(i.toolName)){e.push(i);continue}const c=a?o(a):void 0;if(c)c.result=i,c.resultMessageId=i.id;else{const d=a||`orphan-tool-call:${i.id}`,p={call:{role:"assistant",type:"tool_call",id:`synthetic-tool-call:${i.id}`,createdAt:i.createdAt,toolCalls:[{toolCallId:d,toolName:(i.toolName||"").trim()||"tool",parameters:{},streamingOutput:""}],isCompressed:i.isCompressed,compressedEventId:i.compressedEventId},result:i,resultMessageId:i.id},b=e[e.length-1];Array.isArray(b)?b.push(p):e.push([p])}continue}e.push(i)}return e}const mL=(t,e)=>{var a;const{t:n}=Xe(),r=v.useMemo(()=>{var d;const c=e.find(f=>f.role==="system");return c||((d=t==null?void 0:t.config)!=null&&d.baseSystemPrompt?{id:`system-prompt-${t.id}`,role:"system",content:t.config.baseSystemPrompt,createdAt:new Date(t.createdAt).toISOString()}:null)},[t,e]),s=v.useCallback(c=>!1,[]),o=v.useCallback(c=>{if(oL(c))return{type:"compression_divider",id:c.id,createdAt:c.createdAt,label:c.label};if(sL(c))return{type:"tool_session",id:c.id,sessionId:c.sessionId,tools:c.tools,createdAt:c.createdAt};const d=c.message.role==="user"?"flex-end":"flex-start";let f=c.messageType;if(!f&&c.message.role==="assistant"&&"type"in c.message){const p="type"in c.message?c.message.type:void 0;(p==="text"||p==="plan"||p==="question"||p==="tool_call"||p==="tool_result")&&(f=p)}return{type:"message",message:c.message,align:d,messageType:f}},[]),i=v.useMemo(()=>{var y;const c=e.filter(_=>{const M=_.role;return!(M!=="user"&&M!=="assistant"&&M!=="system"&&M!=="tool"||s(_))}),d=pL(c),f=[];d.forEach((_,M)=>{var k,P;if(Array.isArray(_)){const A=_[0];f.push({type:"tool_session",id:A?hL(A,M):`tool-session-unknown-${M}`,sessionId:(t==null?void 0:t.id)||"default",tools:_,createdAt:((k=A==null?void 0:A.call)==null?void 0:k.createdAt)||((P=A==null?void 0:A.result)==null?void 0:P.createdAt)||new Date().toISOString()});return}const C=_;let T;if(C.role==="assistant"&&"type"in C){const A="type"in C?C.type:void 0;(A==="text"||A==="plan"||A==="question"||A==="tool_call"||A==="tool_result")&&(T=A)}f.push({message:C,messageType:T})}),!c.some(_=>_.role==="system")&&r&&f.unshift({message:r});const b=((y=t==null?void 0:t.config)==null?void 0:y.compressionEvents)||[],m=f.findIndex(_=>!aL(_)),w=m===-1?f.length:m;for(const _ of b){const M={type:"compression_divider",id:`compression-divider-${_.id}`,createdAt:_.createdAt,label:n("chat.compression.timelineDetail",{count:_.messagesCompressed,defaultValue:"{{count}} messages archived"})},C=gg(_.createdAt),T=f.findIndex((k,P)=>P>=w&&gg(iL(k))>C);T===-1?f.push(M):f.splice(T,0,M)}return f},[(a=t==null?void 0:t.config)==null?void 0:a.compressionEvents,t==null?void 0:t.id,e,s,r,n]);return{systemPromptMessage:r,renderableMessages:i,convertRenderableEntry:o}},{Text:gL}=ut,yL=({visible:t,selectionMode:e,selectedCount:n,totalCount:r,paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:a,maxWidth:c,onToggleSelectionMode:d,onSelectAll:f,onClear:p,onExportMarkdown:b,onExportPdf:m,t:w})=>t?l.jsx("div",{style:{paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:a,maxWidth:c,margin:"0 auto",width:"100%"},children:e?l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(gL,{type:"secondary",children:w("chat.selectionToolbar.selectedCount",{selected:n,total:r})}),l.jsxs(We,{size:8,wrap:!0,children:[l.jsx(Ae,{size:"small",onClick:f,children:w("chat.selectionToolbar.selectAll")}),l.jsx(Ae,{size:"small",onClick:p,children:w("chat.selectionToolbar.clear")}),l.jsx(Ae,{size:"small",icon:l.jsx(yo,{}),onClick:b,disabled:n===0,children:w("chat.selectionToolbar.exportMarkdown")}),l.jsx(Ae,{size:"small",type:"primary",icon:l.jsx(yo,{}),onClick:m,disabled:n===0,children:w("chat.selectionToolbar.exportPdf")}),l.jsx(Ae,{size:"small",icon:l.jsx($s,{}),onClick:d,children:w("chat.selectionToolbar.done")})]})]}):l.jsx(Ce,{justify:"flex-end",children:l.jsx(fn,{title:w("chat.selectionToolbar.selectMessages"),children:l.jsx(Ae,{"aria-label":w("chat.selectionToolbar.selectMessages"),icon:l.jsx(Hy,{}),size:"small",onClick:d})})})}):null,bL=({visible:t,showScrollToTop:e,showScrollToBottom:n,hasUnreadActivity:r,unreadCount:s,onScrollToTop:o,onScrollToBottom:i,onResetUserScroll:a,t:c})=>!t||!e&&!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:[e?l.jsx(Ae,{"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(Ae,{"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:()=>{a(),i()},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]})}),vL=st.lazy(()=>Ft(()=>import("./ContextBar-Dei3EKSF.js"),__vite__mapDeps([15,1,2,3,5,4,6,16]),import.meta.url).then(t=>({default:t.ContextBar}))),SL=({sessionId:t,auxReady:e,maxWidth:n,paddingLeft:r,paddingRight:s,workspaceState:o,inspectorEligible:i,planMode:a,onRequestOpenInspector:c,t:d})=>{const{token:f}=lt.useToken();if(!t)return null;const p=a?l.jsx(fn,{title:d("chat.planMode.tooltip",{status:a.status,mode:a.pre_permission_mode,defaultValue:"Plan mode active · phase: {{status}} · previous mode: {{mode}}"}),children:l.jsx(He,{color:"purple",icon:l.jsx(jy,{}),style:{marginInlineEnd:0},children:d("chat.planMode.active",{defaultValue:"Plan mode"})})}):null,b=i&&o.inspectorTogglePlacement==="meta_strip"&&!!c,m=!!(p||o.isMultiPane||b);return l.jsxs(l.Fragment,{children:[e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(vL,{sessionId:t})}):null,m?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(Ce,{align:"center",justify:"space-between",gap:f.marginXS,wrap:!0,children:[l.jsxs(Ce,{align:"center",gap:f.marginXS,wrap:!0,children:[p,o.isMultiPane?l.jsx(He,{color:"blue",style:{marginInlineEnd:0},children:d("chat.workspace.multiPane",{count:o.leafCount,defaultValue:"{{count}} panes"})}):null]}),b&&c?l.jsx(Ae,{size:"small",icon:l.jsx(cf,{}),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]})},hh=({isEmbedded:t,leafCount:e,isMobileViewport:n})=>{const r=Number.isFinite(e)&&e>0?Math.floor(e):1,s=r>1;return{isEmbedded:t,leafCount:r,isMultiPane:s,isMobileViewport:n,inspectorMode:n||s?"drawer":"rail",inspectorTogglePlacement:s&&!n?"pane_header":"meta_strip"}},wL=st.lazy(()=>Ft(()=>import("./QuestionDialog--zPJkVTu.js"),__vite__mapDeps([17,1,2,3,4,5,6,18]),import.meta.url).then(t=>({default:t.QuestionDialog}))),xL=st.lazy(()=>Ft(()=>import("./ChildApprovalDialog-D3JIzMHt.js"),__vite__mapDeps([19,1,2,3,4,5,6,18]),import.meta.url).then(t=>({default:t.ChildApprovalDialog}))),{useToken:_L}=lt,{useBreakpoint:CL}=pc,kL=t=>{const{t:e}=Et;return t.role==="user"?e("chat.view.roleUser"):t.role==="assistant"?e("chat.view.roleAssistant"):t.role==="system"?e("chat.view.roleSystem"):e("chat.view.roleDefault")},Iw=t=>{const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()},TL=t=>t.map(({message:e,text:n},r)=>{const s=kL(e),o=Iw(e.createdAt);return[`## ${r+1}. ${s} · ${o}`,"",n].join(`
239
+ \`\`\``)):null},ag="_text",uc=t=>!!(t&&t.role==="assistant"&&"type"in t&&t.type==="text"),lg=(t,e,n)=>{var s;const r=typeof((s=e.metadata)==null?void 0:s.backendMessageId)=="string"?e.metadata.backendMessageId.trim():"";if(r)return r;if(t.endsWith(ag)){const o=t.slice(0,-ag.length);if(o&&n.some(i=>i.id===o))return o}return t},n$=(t,e)=>{const n=e.trim();if(!n)return!1;const r=t.matchAll(/```mermaid\s*([\s\S]*?)```/gi);for(const s of r)if((s[1]||"").trim()===n)return!0;return!1},r$=t=>(t instanceof Error?t.message:String(t)).toLowerCase().includes("message not found"),s$=(t,e,n,r)=>{const s=t.find(o=>o.id===e);return uc(s)?s:t.find(o=>uc(o)&&(o.content===n||n$(o.content,r)))},o$=(t,e)=>{const n=(e??"").trim(),r=["Original Mermaid code:","```mermaid",t.trim(),"```"];return n&&r.push("","Mermaid parser/render error:",n),r.push("","Please fix the Mermaid syntax while preserving the original meaning and labels."),r.join(`
240
+ `)},i$=async(t,e,n)=>{var a,c,d;const r=e==null?void 0:e.trim();if(!r)throw new Error("No model configured. Please select a default model in Provider Settings.");const i=((d=(c=(a=(await e$().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:o$(t,n)}],temperature:0})).choices)==null?void 0:a[0])==null?void 0:c.message)==null?void 0:d.content)??"";return Pw(i)},a$=(t,e)=>{const n=oM(),r=iM(),s=(r==null?void 0:r.model)??n;return v.useCallback(async(o,i)=>{const a=G.getState(),c=e??a.currentSessionId,d=a.chats.find(C=>C.id===c);if(!c||!d)throw new Error("No active chat available");const f=d.messages.find(C=>C.id===t);if(!uc(f))throw new Error("Mermaid fix is only available for assistant text messages");const p=await i$(o,s,i);if(!p)throw new Error("AI did not return a Mermaid fix");const y=t$(f.content,o,p);if(!y)throw new Error("Unable to locate Mermaid block to update");let m=lg(t,f,d.messages);try{await _s.patchSessionMessage(c,m,{content:y})}catch(C){if(!r$(C))throw C;await a.loadChatHistory(c,{mode:"replace",retries:2,retryDelayMs:150,waitForAssistant:!0});const k=G.getState().chats.find(A=>A.id===c);if(!k)throw C;const P=s$(k.messages,t,f.content,o);if(!P)throw C;m=lg(P.id,P,k.messages),await _s.patchSessionMessage(c,m,{content:y})}const w=G.getState(),b=w.chats.find(C=>C.id===c);if(!b)throw new Error("No active chat available");const _=new Set([t,m]),M=b.messages.map(C=>!_.has(C.id)||!uc(C)?C:{...C,content:y});w.updateSession(c,{messages:M})},[t,e,s])},l$=t=>t.xs?"100%":t.sm?"95%":"800px",c$=[{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:"}],u$=({messageId:t,isVisible:e,onRetryWithVariation:n})=>{const{t:r}=Xe(),[s,o]=v.useState(null),[i,a]=v.useState(!1),c=v.useCallback(()=>{o(m=>m==="like"?null:"like"),a(!1)},[]),d=v.useCallback(()=>{o(m=>{const w=m==="dislike"?null:"dislike";return a(w==="dislike"),w})},[]),f=v.useCallback(m=>{n&&n(m.prefix)},[n]),y=["lotus-msg-feedback",e?"is-visible":"",s!==null?"has-rating":""].filter(Boolean).join(" ");return l.jsxs("div",{className:y,"data-message-id":t,children:[l.jsx(on,{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(i_,{}):l.jsx(a_,{})})}),l.jsx(on,{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(l_,{}):l.jsx(c_,{})})}),i&&n&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"lotus-msg-feedback-sep"}),l.jsx("span",{className:"lotus-msg-feedback-retry",children:c$.map(m=>l.jsx(He,{color:m.color,bordered:!1,className:"lotus-msg-feedback-retry-tag",onClick:()=>f(m),children:r(m.labelKey,m.fallbackLabel)},m.key))})]})]})},{useToken:d$}=lt,{useBreakpoint:f$}=pc,h$="chat-send-message",p$=({sessionId:t,message:e,onDelete:n,messageType:r})=>{const{role:s,id:o}=e,{token:i}=d$(),a=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:c}=Xe(),{message:d}=En.useApp(),f=f$(),p=G(me=>me.updateSession),y=G(me=>me.loadChatHistory),m=G(me=>me.refreshChats),w=v.useRef(null),[b,_]=v.useState(!1),M=G(Ta(t)),C=v.useCallback(me=>typeof window>"u"?Promise.reject(new Error("window is unavailable")):new Promise((ge,le)=>{const ke={content:me,sessionId:t,handled:!1,resolve:ge,reject:le};window.dispatchEvent(new CustomEvent(h$,{detail:ke})),ke.handled||le(new Error("No chat message dispatcher available"))}),[t]),T=v.useMemo(()=>{if(!e.createdAt)return null;const me=new Date(e.createdAt);if(Number.isNaN(me.getTime()))return null;try{return rR(me,"MMM d, yyyy HH:mm")}catch{return me.toLocaleString()}},[e.createdAt]),k=v.useMemo(()=>II(e,r),[e,r]),P=v.useMemo(()=>OI(e,k),[e,k]),A=v.useMemo(()=>$I(e,k),[e,k]),j=v.useMemo(()=>rS(e),[e]),$=a$(o,t),F=v.useCallback(async me=>{var ge;if(!t||!o){d.warning(c("chat.messageActions.cannotRestore"));return}try{const le=await _s.restoreSessionState(t,{target_message_id:o,restore_files:me});await y(t,{mode:"replace"}),await m();const ke=((ge=le.file_errors)==null?void 0:ge.length)??0;if(ke>0){d.warning(c("chat.messageActions.restorePartial",{count:ke}));return}me?d.success(c("chat.messageActions.restoreFilesSuccess",{count:le.messages_removed})):d.success(c("chat.messageActions.restoreSuccess",{count:le.messages_removed}))}catch(le){const ke=le instanceof Error?le.message:c("chat.messageActions.restoreFailed");d.error(ke)}},[d,t,y,o,m,c]),X=v.useCallback(()=>{F(!1)},[F]),K=v.useCallback(()=>{F(!0)},[F]),{contextMenuItems:O,handleMouseUp:W,copyToClipboard:ae,referenceMessage:Y}=HI({messageText:j,messageId:o,currentSessionId:t,onDelete:n,onRestoreChat:X,onRestoreFilesAndChat:K,cardRef:w}),ce=v.useMemo(()=>s==="user"&&j.startsWith("/"),[s,j]),L=v.useMemo(()=>Gv(void 0,{onFixMermaid:$}),[$]),oe=v.useMemo(()=>[Zd,ef],[]),Se=v.useMemo(()=>[Qd],[]),J=v.useMemo(()=>[uR(()=>ae(j),c("chat.actions.copyMessage")),dR(Y,c("chat.actions.referenceMessage"))],[j,ae,Y,c]),{handleExecutePlan:te,handleRefinePlan:he,handleQuestionAnswer:de}=qI({currentSessionId:t,updateSession:p,sendMessage:C});return k==="plan"&&P&&s==="assistant"?l.jsx(Ev,{plan:P,contextId:t||"",onExecute:te,onRefine:he,timestamp:T??void 0}):k==="question"&&A&&s==="assistant"?l.jsx(Pv,{question:A,contextId:t||"",onAnswer:de,disabled:M||!1,timestamp:T??void 0}):mR(e)?l.jsx(_R,{taskList:e.taskList}):pR(e)?(pe("[MessageCard]","[MessageCard] Rendering FileReferenceCard for message:",e.id,"paths:",e.paths),l.jsx(Ce,{justify:"flex-end",style:{width:"100%"},children:l.jsx(Mv,{paths:e.paths,displayText:e.displayText,timestamp:T??void 0})})):l.jsxs(Ce,{vertical:!0,onContextMenu:me=>W(me),style:{width:"100%"},children:[l.jsx(mo,{menu:{items:O},trigger:["contextMenu"],children:l.jsx(Ut,{"data-testid":s==="assistant"?"assistant-message":"user-message",id:o?`message-${o}`:void 0,ref:w,style:{width:"100%",minWidth:"100%",maxWidth:l$(f),margin:"0 auto",background:s==="user"?"var(--lotus-message-user-bg)":s==="assistant"?"var(--lotus-message-assistant-bg)":i.colorBgContainer,backdropFilter:a?"none":"blur(14px)",WebkitBackdropFilter:a?"none":"blur(14px)",border:s==="user"?"1px solid var(--lotus-message-user-border)":"1px solid var(--lotus-glass-border-subtle)",borderRadius:i.borderRadiusLG,boxShadow:b?"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:b?"translateY(-2px) scale(1.002)":"none",overflow:"hidden"},styles:{body:{padding:i.paddingMD}},onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1),children:l.jsxs(We,{direction:"vertical",size:i.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(RI,{role:s,formattedTimestamp:T,token:i}),e.role==="user"&&e.images&&l.jsx(iR,{images:e.images}),l.jsx(Ce,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:l.jsx(AI,{sessionId:t,message:e,messageText:j,isUserToolCall:ce,formatUserToolCall:LI,markdownComponents:L,markdownPlugins:oe,rehypePlugins:Se})}),l.jsx(cR,{isVisible:b,position:{bottom:i.paddingXS,right:i.paddingXS},buttons:J})]})})}),s==="assistant"&&k==="text"&&o&&l.jsx(u$,{messageId:o,isVisible:b})]})},Mw=v.memo(p$,(t,e)=>t.message===e.message&&t.messageType===e.messageType&&t.onDelete===e.onDelete&&t.sessionId===e.sessionId);Mw.displayName="MessageCard";const m$=({key:t,atomFamily:e,store:n,emptyState:r})=>{const s=v.useMemo(()=>t?e(t):null,[e,t]),[o,i]=v.useState(()=>Sd(n,e,t,r));return v.useEffect(()=>{if(i(Sd(n,e,t,r)),!s||!t)return;let a=null,c=n.get(s);const d=n.sub(s,()=>{c=n.get(s),a===null&&(a=requestAnimationFrame(()=>{i(c),a=null}))});return()=>{d(),a!==null&&cancelAnimationFrame(a)}},[e,r,t,s,n]),o},g$=t=>{const e=wn(t);return m$({key:e,atomFamily:wc,store:Sc,emptyState:Zb})},{Text:da}=ut,{useToken:y$}=lt,ta=8,Fu=4,b$=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"]),v$=(t,e)=>l.jsx(Ut,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto",marginBottom:ta,background:e.colorBgContainer,borderColor:e.colorBorder},children:l.jsx("pre",{style:{margin:0,padding:e.paddingSM,background:e.colorBgContainer,color:e.colorText,borderRadius:e.borderRadiusSM,fontSize:e.fontSizeSM,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l.jsx("code",{style:{color:e.colorText},children:t})})}),S$=t=>({p:({children:e})=>l.jsx(da,{style:{marginBottom:ta,display:"block"},children:e}),ol:({children:e})=>l.jsx("ol",{style:{marginBottom:ta,paddingLeft:20},children:e}),ul:({children:e})=>l.jsx("ul",{style:{marginBottom:ta,paddingLeft:20},children:e}),li:({children:e})=>l.jsx("li",{style:{marginBottom:Fu},children:e}),code({className:e,children:n,inline:r,...s}){const o=/language-([^\s]+)/i.exec(e||""),i=o?o[1]:"",a=r??(!o&&!e),c=n?String(n).replace(/\n$/,""):"";if(a)return l.jsx(da,{code:!0,className:e,...s,children:n});if(!c.trim())return null;const d=i.toLowerCase();return b$.has(d)?v$(c,t):Yv(i,c,void 0,void 0)},pre:({children:e})=>l.jsx(l.Fragment,{children:e}),blockquote:({children:e})=>l.jsx(Ut,{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:`${Fu}px 0`,color:"var(--ant-color-text-secondary, #64748b)",fontStyle:"italic"},children:e}),a:({children:e,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(),Vv(r)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:e}):l.jsx(l.Fragment,{children:e})},table:({children:e})=>l.jsx(Ut,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${ta}px 0`},children:l.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:`1px solid ${t.colorBorder}`},children:e})}),thead:({children:e})=>l.jsx("thead",{style:{backgroundColor:t.colorFillTertiary,color:t.colorText},children:e}),tbody:({children:e})=>l.jsx("tbody",{children:e}),tr:({children:e})=>l.jsx("tr",{style:{borderBottom:`1px solid ${t.colorBorderSecondary}`},children:e}),th:({children:e})=>l.jsx("th",{style:{padding:"4px 8px",textAlign:"left",fontWeight:"bold",color:t.colorText,borderRight:`1px solid ${t.colorBorder}`},children:e}),td:({children:e})=>l.jsx("td",{style:{padding:"4px 8px",borderRight:`1px solid ${t.colorBorder}`},children:e}),input:({type:e,checked:n,disabled:r})=>e==="checkbox"?l.jsx("input",{type:"checkbox",checked:n,disabled:r,style:{marginRight:Fu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:e,checked:n,disabled:r})}),Aw=v.memo(({sessionId:t})=>{const{token:e}=y$(),n=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:r}=Xe(),s=`streaming-status-${t}`,o=g$(t),i=o.content,a=o.reasoningContent,[c,d]=v.useState(()=>At.getLatest(s)??"");v.useEffect(()=>{let w=null,b=null;const _=At.subscribeMessage(s,M=>{b=M,w===null&&(w=requestAnimationFrame(()=>{d(b??""),w=null}))});return()=>{_(),w!==null&&cancelAnimationFrame(w)}},[s]);const f=v.useMemo(()=>{const w=c.trim().toLowerCase();if(!w)return r("chat.messageCard.assistantThinking");if(w==="context_compacting")return r("chat.messageCard.assistantCompactingContext");if(w==="context_compaction_degraded")return r("chat.messageCard.assistantCompactingContextDegraded");if(w==="context_compaction_failed")return r("chat.messageCard.assistantCompactingContextFailed");if(w==="memory_updating")return r("chat.messageCard.assistantUpdatingMemory");if(w.startsWith("tool_running:")){const _=(w.slice(13).trim()||"tool").replace(/[_-]+/g," ");return r("chat.messageCard.assistantRunningTool",{tool:_})}return r("chat.messageCard.assistantThinking")},[c,r]),p=v.useMemo(()=>[Zd,ef],[]),y=v.useMemo(()=>[Qd],[]),m=v.useMemo(()=>S$(e),[e]);return l.jsx(Ut,{"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:e.borderRadiusLG,boxShadow:"none",position:"relative",wordWrap:"break-word",overflowWrap:"break-word"},children:l.jsxs(We,{direction:"vertical",size:e.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(Ce,{align:"baseline",justify:"space-between",gap:e.marginXS,children:l.jsx(da,{type:"secondary",strong:!0,style:{fontSize:e.fontSizeSM},children:r("chat.streaming.assistant")})}),l.jsxs(Ce,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:[a?l.jsx(_o,{size:"small",defaultActiveKey:["reasoning"],style:{marginBottom:e.marginSM,background:e.colorBgContainer,borderColor:e.colorBorderSecondary},items:[{key:"reasoning",label:l.jsx(da,{strong:!0,children:r("chat.messageCard.reasoning")}),children:l.jsx(xr,{remarkPlugins:p,rehypePlugins:y,components:m,children:a})}]}):null,!i||c?l.jsx(da,{italic:!0,className:"thinking-shimmer",children:f}):null,i?l.jsx(xr,{remarkPlugins:p,rehypePlugins:y,components:m,children:i}):null,l.jsx("span",{className:"blinking-cursor",style:{display:"inline-block",marginLeft:"0.2em",color:e.colorText}})]})]})})});Aw.displayName="StreamingMessageCard";const{Text:wl}=ut,w$="chat-session-tool-collapse:",Rw=(t,e)=>`${w$}${t}:${e}`,cg=(t,e)=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(Rw(t,e));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}},x$=async(t,e,n)=>{if(typeof window>"u")return;await Dn.getInstance().saveToolSessionCollapse(t,e,n);try{window.localStorage.setItem(Rw(t,e),JSON.stringify(n))}catch{}},_$="synthetic-tool-call:",C$=t=>{var n,r,s,o;const e=new Set;return(n=t.callMessageId)!=null&&n.trim()?e.add(t.callMessageId.trim()):t.call.id&&!t.call.id.includes(":")&&!t.call.id.startsWith(_$)&&e.add(t.call.id),(r=t.resultMessageId)!=null&&r.trim()?e.add(t.resultMessageId.trim()):(o=(s=t.result)==null?void 0:s.id)!=null&&o.trim()&&e.add(t.result.id.trim()),Array.from(e)},k$=t=>{const e=new Set;return t.forEach(n=>{C$(n).forEach(r=>e.add(r))}),Array.from(e)},T$=({tools:t,sessionId:e,defaultExpanded:n=!1,autoCollapseWhenStale:r=!1,onDeleteMessageIds:s})=>{const{t:o}=Xe(),{token:i}=lt.useToken(),a=v.useMemo(()=>{var j,$,F,X;const k=t[0],P=($=(j=k==null?void 0:k.call)==null?void 0:j.toolCalls)==null?void 0:$[0];return`${(k==null?void 0:k.callMessageId)||((F=k==null?void 0:k.call)==null?void 0:F.id)||(k==null?void 0:k.resultMessageId)||((X=k==null?void 0:k.result)==null?void 0:X.id)||"tool-message-missing"}:${(P==null?void 0:P.toolCallId)||"tool-call-missing"}`},[t]),[c,d]=v.useState(()=>{const k=cg(e,a);return k?k.isExpanded:n});v.useEffect(()=>{const k=cg(e,a);d(k?k.isExpanded:n),Dn.getInstance().loadToolSessionCollapse(e,a).then(A=>{A&&d(A.isExpanded)}).catch(()=>{})},[n,e,a]),v.useEffect(()=>{x$(e,a,{isExpanded:c,expandedTools:[]}).catch(()=>{})},[e,a,c]);const f=v.useRef(r);v.useEffect(()=>{!f.current&&r&&d(!1),f.current=r},[r]);const{completedCount:p,pendingCount:y,hasErrors:m}=v.useMemo(()=>{let k=0,P=0,A=!1;return t.forEach(j=>{j.result?(k++,j.result.isError&&(A=!0)):P++}),{completedCount:k,pendingCount:P,hasErrors:A}},[t]),w=v.useMemo(()=>y>0?{color:"processing",text:o("components.toolSession.completedProgress",{completed:p,total:t.length})}:m?{color:"warning",text:o("components.toolSession.completedWithErrors",{completed:p})}:{color:"success",text:o("components.toolSession.completedOnly",{completed:p})},[p,y,m,t.length,o]),b=v.useMemo(()=>{let k=0,P=0,A=0;return t.forEach(j=>{var X,K;const $=(K=(X=j.result)==null?void 0:X.result)==null?void 0:K.result;if(!$)return;const F=Ff($);F&&(k+=F.added,P+=F.removed,A+=1)}),{added:k,removed:P,changedTools:A}},[t]),_=v.useMemo(()=>{const k=t.map(j=>{var X,K;const $=(K=(X=j.call)==null?void 0:X.toolCalls)==null?void 0:K[0];if(!$)return null;const F=ko($.toolName);return F?F.toolName:$.toolName||null}).filter(j=>!!j);if(k.length===0)return o("components.toolSession.title");if(k.length===1)return k[0];const P=k.filter((j,$)=>$===0||j!==k[$-1]),A=3;return P.length<=A?P.join(" → "):`${P.slice(0,A).join(" → ")} +${P.length-A}`},[t,o]),M=v.useMemo(()=>k$(t),[t]),C=l.jsx(Uf,{sessionId:e,tools:t,defaultExpanded:!0,hideHeader:!0}),T={background:"transparent"};return l.jsxs("div",{style:T,children:[l.jsxs("div",{style:{padding:`${i.paddingXS}px 0`,backgroundColor:"transparent",borderBottom:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:i.marginSM,transition:"border-color 240ms ease, background-color 240ms ease"},onClick:()=>d(!c),"data-testid":"tool-session-card-header",children:[l.jsx(of,{style:{color:i.colorPrimary}}),l.jsx(wl,{strong:!0,style:{flex:1},children:_}),l.jsx($y,{count:t.length,style:{backgroundColor:i.colorPrimary}}),b.changedTools>0&&l.jsxs(We,{size:4,style:{marginInlineStart:i.marginXS},children:[l.jsxs(wl,{style:{color:i.colorSuccess,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",b.added]}),l.jsxs(wl,{style:{color:i.colorError,fontSize:i.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",b.removed]})]}),l.jsx(wl,{type:"secondary",style:{fontSize:i.fontSizeSM},children:w.text}),s&&l.jsx(on,{title:M.length>0?o("components.toolSession.deleteMessage"):o("components.toolSession.noPersistedMessage"),children:l.jsx(Ae,{type:"text",size:"small",danger:!0,icon:l.jsx(fc,{}),"aria-label":o("components.toolSession.deleteMessage"),"data-testid":"delete-tool-session",disabled:M.length===0,onClick:k=>{k.preventDefault(),k.stopPropagation(),M.length!==0&&s(M)}})}),l.jsx("div",{style:{marginLeft:i.marginXS},children:c?l.jsx(go,{style:{color:i.colorTextSecondary}}):l.jsx(As,{style:{color:i.colorTextSecondary}})})]}),c&&C]})},jw=v.memo(T$);jw.displayName="ToolSessionCard";const{Content:E$}=ro,{Text:ug}=ut,dg=120,P$=140,M$=220,A$=140,R$=72,fg=68,j$=84,I$=720,O$=t=>{const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};function hg(t){return"type"in t&&(t.type==="tool_session"||t.type==="compression_divider")?t.id:t.message.id}function $$(t,e){const n=t[e];if(!n)return dg;if("type"in n){if(n.type==="compression_divider")return R$;if(n.type==="tool_session"){if(!(e===t.length-1))return fg;const o=fg+Math.min(n.tools.length,8)*j$;return Math.min(I$,o)}}const r="message"in n?n.message:void 0;return r?r.role==="system"?A$:r.role==="user"?P$:M$:dg}const L$=({currentChat:t,currentSessionId:e,convertRenderableEntry:n,handleDeleteMessage:r,handleDeleteToolMessages:s,handleMessagesScroll:o,hasSystemPrompt:i,messagesListRef:a,bottomAnchorRef:c,renderableMessages:d,rowGap:f,showMessagesView:p,screens:y,workflowDraftId:m,isThinking:w,padding:b,selectionMode:_,selectedMessageIds:M,selectableMessageIds:C,onToggleMessageSelection:T})=>{const{t:k}=Xe(),P=v.useRef(d);P.current=d;const A=v.useCallback(W=>{const ae=P.current[W];return ae?hg(ae):String(W)},[]),j=v.useCallback(W=>$$(P.current,W),[]),$=UA({count:d.length,getScrollElement:()=>a.current,estimateSize:j,overscan:5,gap:f,getItemKey:A}),F=(W,ae)=>{if(!_)return null;const Y=C.has(W);return l.jsx(u_,{checked:M.has(W),disabled:!Y,onChange:()=>{Y&&T(W)},style:{marginTop:8,marginLeft:ae==="flex-end"?8:0,marginRight:ae==="flex-start"?8:0}})},X=(W,ae)=>{const Y=n(W),ce=ae===void 0||ae===d.length-1;if(Y.type==="compression_divider"){const L=O$(Y.createdAt);return l.jsx("div",{role:"note","aria-label":k("chat.compression.timelineAria",{detail:Y.label,time:L,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:y.xs?"8px 10px":"10px 12px"},children:l.jsxs(Ce,{align:"center",justify:"space-between",gap:8,wrap:!0,children:[l.jsxs(Ce,{align:"center",gap:8,wrap:!0,children:[l.jsx(He,{color:"gold",icon:l.jsx(qy,{}),children:k("chat.compression.tag","Context compressed")}),l.jsx(ug,{strong:!0,style:{fontSize:12},children:Y.label})]}),l.jsx(ug,{type:"secondary",style:{fontSize:11},children:L})]})})}return Y.type==="tool_session"?l.jsx(Ce,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{id:`message-${Y.id}`,style:{width:"100%",maxWidth:y.xs?"100%":"90%"},children:l.jsx(jw,{tools:Y.tools,sessionId:Y.sessionId,createdAt:Y.createdAt,defaultExpanded:ce,autoCollapseWhenStale:!ce,onDeleteMessageIds:e?s:void 0})})}):Y.message.role==="system"?l.jsxs(Ce,{align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[F(Y.message.id,"flex-start"),l.jsx("div",{style:{flex:1,minWidth:0},children:l.jsx(wv,{currentChat:t,message:Y.message})})]}):l.jsxs(Ce,{justify:Y.align,align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[Y.align==="flex-start"&&F(Y.message.id,Y.align),l.jsx("div",{style:{width:Y.message.role==="user"?"85%":"100%",maxWidth:y.xs?"100%":"90%"},children:l.jsx(Mw,{sessionId:e,message:Y.message,messageType:Y.messageType,onDelete:Y.message.id===m?void 0:r})}),Y.align==="flex-end"&&F(Y.message.id,Y.align)]})},K=(p||i)&&d.length>0,O=$.getVirtualItems();return l.jsx(E$,{role:"log","aria-live":"polite","aria-label":k("chat.view.chatMessagesAria"),className:`chat-view-messages-list ${p?"visible":"hidden"}`,style:{flex:1,minHeight:0,padding:b,overflowY:"auto",opacity:p?1:0,scrollbarWidth:"none",msOverflowStyle:"none"},ref:a,onScroll:o,children:l.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:f,width:"100%",minHeight:"100%"},children:[K&&l.jsx("div",{style:{position:"relative",width:"100%",height:$.getTotalSize()},children:O.map(W=>{const ae=d[W.index];if(!ae)return null;const Y=hg(ae);return l.jsx("div",{"data-chat-entry-id":Y,"data-index":W.index,ref:$.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${W.start}px)`},children:l.jsx("div",{className:"messageEnter",children:X(ae,W.index)})},W.key)})}),w&&e&&l.jsx("div",{className:"streaming-card-enter",children:l.jsx(Ce,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{style:{width:"100%",maxWidth:y.xs?"100%":"90%"},children:l.jsx(Aw,{sessionId:e})})})}),l.jsx("div",{ref:c,"data-chat-bottom-anchor":"true","aria-hidden":"true",style:{width:"100%",height:1,flexShrink:0}})]})})},D$=st.memo(L$),F$={green:{backgroundColor:"color-mix(in srgb, var(--lotus-success) 14%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-success) 30%, transparent)",color:"var(--lotus-success)"},blue:{backgroundColor:"color-mix(in srgb, var(--lotus-accent-secondary) 14%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-accent-secondary) 30%, transparent)",color:"var(--lotus-accent-secondary)"},purple:{backgroundColor:"color-mix(in srgb, var(--lotus-gold) 16%, transparent)",borderColor:"color-mix(in srgb, var(--lotus-gold) 32%, transparent)",color:"var(--lotus-gold)"}},N$=({label:t,tone:e})=>{const n=F$[e];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:t})},z$=({usage:t,showDetails:e=!0,size:n="small",className:r=""})=>{const{t:s}=Xe(),o=yb(t),i=bb(t),a=MC(t),c=t.promptCachedToolOutputs??0,d=t.promptCachedToolTokensSaved??0,f=t.thinkingTokens??0,p=t.cacheReadInputTokens??0,y=c>0||d>0,m=f>0||p>0,w=T=>{const k=Math.round(T*10)/10;return Number.isInteger(k)?k.toFixed(0):k.toFixed(1)},b=()=>i>=90?"var(--lotus-chart-danger)":i>=70?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",_=[];d>0&&_.push({key:"prompt-saved",label:s("components.tokenUsage.promptSavedBadge",{value:au(d)}),tone:"green"}),p>0&&_.push({key:"cache-read",label:s("components.tokenUsage.cacheReadBadge",{value:au(p)}),tone:"blue"}),f>0&&_.push({key:"thinking",label:s("components.tokenUsage.thinkingBadge",{value:au(f)}),tone:"purple"});const M={marginTop:8,marginBottom:4,fontSize:11,fontWeight:700,color:"var(--lotus-metric-text-muted)"},C=l.jsxs("div",{style:{minWidth:220,color:"var(--lotus-metric-text-strong)"},children:[l.jsx("div",{style:{marginBottom:4,fontWeight:"bold"},children:s("components.tokenUsage.title")}),l.jsxs("div",{style:{fontSize:12},children:[s("components.tokenUsage.contextWindow"),": ",zr(t.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:i.toFixed(1)})}),e&&l.jsxs("div",{style:{marginTop:6,borderTop:"1px solid var(--lotus-metric-tooltip-border)",paddingTop:6,fontSize:11},children:[l.jsx("div",{style:M,children:s("components.tokenUsage.contextPrepared")}),l.jsxs("div",{children:[s("components.tokenUsage.system"),": ",zr(t.systemTokens)]}),t.summaryTokens>0&&l.jsxs("div",{children:[s("components.tokenUsage.summary"),": ",zr(t.summaryTokens)]}),l.jsxs("div",{children:[s("components.tokenUsage.messages"),": ",zr(t.windowTokens)]}),y?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:M,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,m?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:M,children:s("components.tokenUsage.providerResult")}),p>0&&l.jsxs("div",{children:[s("components.tokenUsage.cacheRead"),": ",zr(p)]}),f>0&&l.jsxs("div",{children:[s("components.tokenUsage.thinking"),": ",zr(f)]})]}):null]})]});return l.jsx(on,{title:C,placement:"top",arrow:!0,color:"var(--lotus-metric-tooltip-bg)",children:l.jsxs(We,{className:`token-usage-display ${r}`,size:4,align:"center",style:{lineHeight:1},children:[l.jsx(Uy,{type:"line",percent:Math.min(i,100),size:{height:n==="small"?6:8,width:80},strokeColor:b(),showInfo:!1,style:{margin:0,lineHeight:1}}),l.jsxs("span",{style:{fontSize:n==="small"?11:12,color:a==="error"?"var(--lotus-chart-danger)":a==="warning"?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",whiteSpace:"nowrap",fontWeight:600},children:[w(i),"%"]}),_.map(T=>l.jsx(N$,{label:T.label,tone:T.tone},T.key))]})})},Yd="chat_scroll_anchors_v1",Iw="chat_scroll_anchor_v2:";function Ow(t){if(!t||typeof t!="object")return!1;const e=t;return e.v===1&&typeof e.anchorId=="string"&&typeof e.offsetPx=="number"&&typeof e.ts=="number"}function B$(){try{const t=localStorage.getItem(Yd);if(!t)return{};const e=JSON.parse(t);if(!e||typeof e!="object")return{};const n={};for(const[r,s]of Object.entries(e))Ow(s)&&(n[r]=s);return n}catch{return{}}}function W$(t){const e=B$(),n=e[t];if(!n)return null;Dn.getInstance().saveScrollAnchor(t,n).catch(()=>{}),delete e[t];const s=Object.keys(e).length;try{s===0?localStorage.removeItem(Yd):localStorage.setItem(Yd,JSON.stringify(e))}catch{}return n}async function U$(t){if(typeof window>"u")return null;try{const n=await Dn.getInstance().loadScrollAnchor(t);if(n)return n}catch{}try{const e=localStorage.getItem(`${Iw}${t}`);if(e){const n=JSON.parse(e);if(Ow(n))return Dn.getInstance().saveScrollAnchor(t,n).catch(()=>{}),n}}catch{}return W$(t)}async function H$(t,e){if(!(typeof window>"u")){try{await Dn.getInstance().saveScrollAnchor(t,e)}catch(n){console.warn("[ScrollAnchor] IndexedDB save failed:",n)}try{localStorage.setItem(`${Iw}${t}`,JSON.stringify(e))}catch{}}}const Nu=1,q$=3,K$=2e3;function X$(t,e){const n=Math.max(0,t.scrollHeight-t.clientHeight);return Math.min(Math.max(0,e),n)}function Y$(t){const{scrollEl:e,getAnchorElement:n,offsetPx:r,isCancelled:s}=t;return new Promise(o=>{const i=performance.now();let a=0,c=-1,d=Number.NaN;const f=()=>{if(s()){o();return}const p=n();if(!p){requestAnimationFrame(f);return}const y=e.getBoundingClientRect(),w=p.getBoundingClientRect().top-y.top,b=X$(e,e.scrollTop+(w-r));if(Math.abs(e.scrollTop-b)>Nu)e.scrollTop=b,a=0;else{const M=Number.isFinite(d)?Math.abs(b-d)<=Nu:!1,C=Math.abs(e.scrollTop-c)<=Nu;a=M&&C?a+1:0}d=b,c=e.scrollTop;const _=performance.now()-i>K$;if(a>=q$||_){o();return}requestAnimationFrame(f)};requestAnimationFrame(f)})}const V$=300,G$=.5;function J$(t){return"type"in t&&(t.type==="tool_session"||t.type==="compression_divider")?t.id:"message"in t&&t.message?t.message.id:null}function $w(t){if("type"in t&&(t.type==="tool_session"||t.type==="compression_divider"))return t.createdAt;if("message"in t&&t.message)return t.message.createdAt}function pg(t){if(!t)return null;const e=Date.parse(t);return Number.isFinite(e)?e:null}function Q$(t,e){const n=pg(t.createdAt);if(n!=null){let r=null,s=Number.POSITIVE_INFINITY;for(let o=0;o<e.length;o++){const i=pg($w(e[o]));if(i==null)continue;const a=Math.abs(i-n);a<s&&(s=a,r=o)}if(r!=null)return r}if(typeof t.indexHint=="number"){const r=Math.max(0,Math.min(e.length-1,t.indexHint));return Number.isFinite(r)?r:null}return null}function fh(t){return Array.from(t.querySelectorAll("[data-chat-entry-id]"))}function Z$(t,e){const n=fh(t);for(const r of n)if(r.dataset.chatEntryId===e)return r;return null}function eL(t,e){const n=fh(t);if(n.length===0)return null;const r=Math.max(0,Math.min(n.length-1,e));return n[r]??null}function tL(t){const e=fh(t);if(e.length===0)return null;const n=t.getBoundingClientRect().top;for(const r of e)if(r.getBoundingClientRect().bottom>n)return r;return e[e.length-1]??null}function nL(t){const{currentSessionId:e,messagesListRef:n,renderableMessages:r}=t,s=v.useRef(new Set),o=v.useRef(!1),i=v.useRef(0),a=v.useRef(null),c=v.useRef(null),d=v.useRef(!1);v.useEffect(()=>{const w=n.current;if(!w)return;const b=()=>{d.current=!0};return w.addEventListener("wheel",b,{passive:!0}),w.addEventListener("touchmove",b,{passive:!0}),w.addEventListener("pointerdown",b),()=>{w.removeEventListener("wheel",b),w.removeEventListener("touchmove",b),w.removeEventListener("pointerdown",b)}},[n]);const f=v.useMemo(()=>{const w=new Map;for(let b=0;b<r.length;b++){const _=J$(r[b]);_&&w.set(_,b)}return w},[r]),p=v.useCallback(()=>{const w=n.current;if(!w||r.length===0)return null;const b=tL(w);if(!b)return null;const _=b.dataset.chatEntryId;if(!_)return null;const M=w.getBoundingClientRect(),C=b.getBoundingClientRect(),T=f.get(_),k=typeof T=="number"?r[T]:void 0;return{v:1,anchorId:_,offsetPx:C.top-M.top,ts:Date.now(),indexHint:T,createdAt:k?$w(k):void 0}},[f,n,r]),y=v.useCallback(async w=>{if(o.current)return;const b=p();if(!b)return;const _=c.current;_&&_.anchorId===b.anchorId&&Math.abs(_.offsetPx-b.offsetPx)<=G$||(await H$(w,b),c.current=b)},[p]),m=v.useCallback(w=>{if(!e||o.current)return;a.current&&clearTimeout(a.current);const b=e;a.current=setTimeout(()=>{y(b).catch(()=>{})},V$)},[e,y]);return v.useEffect(()=>{const w=e;return()=>{w&&(a.current&&(clearTimeout(a.current),a.current=null),y(w).catch(()=>{}))}},[e,y]),v.useLayoutEffect(()=>{if(!e)return;const w=n.current;if(!w||r.length===0||s.current.has(e))return;let b=!1;return U$(e).then(_=>{if(b||!_){b||s.current.add(e);return}const M=f.get(_.anchorId),C=typeof M=="number"?M:Q$(_,r);if(C==null){s.current.add(e);return}a.current&&(clearTimeout(a.current),a.current=null);const T=++i.current;o.current=!0,d.current=!1,w.style.overflowAnchor="none";const k=()=>i.current!==T||d.current;Y$({scrollEl:w,getAnchorElement:()=>Z$(w,_.anchorId)??eL(w,C),offsetPx:_.offsetPx,isCancelled:k}).finally(()=>{i.current===T&&(o.current=!1,s.current.add(e),w.style.overflowAnchor="",y(e).catch(()=>{}))})}),()=>{b=!0}},[e,f,r,r.length,n,y]),{handleScroll:m}}const mg=2,gg=6,zu=150,rL="streaming-",sL="streaming-reasoning-",oL="streaming-status-",iL=t=>t.startsWith(rL)&&!t.startsWith(sL)&&!t.startsWith(oL),aL=({currentSessionId:t,isThinking:e,messagesListRef:n,bottomAnchorRef:r,renderableMessages:s})=>{const[o,i]=v.useState(!1),[a,c]=v.useState(!1),[d,f]=v.useState(!1),[p,y]=v.useState(0),m=v.useRef(!1),w=v.useRef(!1),b=v.useRef(!0),_=v.useRef(s.length),M=v.useRef(new Set),C=v.useRef(0),{handleScroll:T}=nL({currentSessionId:t,messagesListRef:n,renderableMessages:s}),k=v.useCallback(()=>{M.current.clear(),f(!1),y(0)},[]),P=v.useCallback(O=>{if(O<=0)return 0;const W=M.current;if(W.size===0)return O;let ae=O;for(const Y of Array.from(W)){if(ae<=0)break;W.delete(Y),ae-=1}return ae},[]),A=v.useCallback(()=>{const O=n.current;if(!O||s.length===0)return i(!1),c(!1),k(),null;const W=Math.max(0,O.scrollHeight-O.scrollTop-O.clientHeight),ae=W<=zu,Y=O.scrollTop<=zu;return i(!ae),c(!Y&&s.length>3),ae&&(w.current=!0,k()),{atBottom:ae,distanceFromBottom:W}},[k,n,s.length]),j=v.useCallback(O=>{const W=A();W&&(W.distanceFromBottom>zu?(m.current=!0,w.current=!1):W.atBottom&&(m.current=!1,w.current=!0,k()),T(O))},[k,A,T]),$=v.useCallback(O=>{cancelAnimationFrame(C.current);const W=n.current,ae=r.current;if(!W||!ae||s.length===0)return;const Y=(O==null?void 0:O.behavior)??"smooth";let ce=0,L=Number.NaN;const oe=()=>{C.current=0,m.current=!1,w.current=!0,k(),A()},Se=()=>{const J=n.current,te=r.current;if(!J||!te)return;const he=Math.max(0,J.scrollHeight-J.scrollTop-J.clientHeight),de=te.getBoundingClientRect(),me=J.getBoundingClientRect(),ge=de.top-me.top,le=!Number.isFinite(L)||Math.abs(ge-L)>.5,ke=he>mg||le||ce===0;if(ke&&te.scrollIntoView({block:"end",behavior:ce===0?Y:"auto"}),L=ge,ce+=1,ce<gg&&ke){C.current=requestAnimationFrame(Se);return}oe()};C.current=requestAnimationFrame(Se)},[r,k,n,A,s.length]),F=v.useCallback(()=>{if(!n.current)return;let W=0;const ae=()=>{A()},Y=()=>{const ce=n.current;if(!ce)return;const L=ce.scrollTop>mg||W===0;if(L&&ce.scrollTo({top:0,behavior:"auto"}),W+=1,W<gg&&L){requestAnimationFrame(Y);return}ae()};requestAnimationFrame(Y)},[n,A]),X=v.useCallback(()=>{m.current=!1,w.current=!0,k()},[k]);v.useEffect(()=>{const O=W=>{var he,de;const Y=(he=W.detail)==null?void 0:he.messageId;if(!Y){console.error("No messageId provided for navigation");return}const ce=s.findIndex(me=>"message"in me&&me.message?me.message.id===Y:"id"in me?me.id===Y:!1);if(ce===-1){console.warn("Message not found for navigation:",Y);return}const L=s[ce],oe=L&&"message"in L?L.message.id:L&&"id"in L?L.id:Y,Se=document.getElementById(`message-${oe}`),J=Array.from(((de=n.current)==null?void 0:de.querySelectorAll("[data-chat-entry-id]"))||[]),te=Se||J.find(me=>me.dataset.chatEntryId===oe);if(!te){console.warn("Message element not found for navigation:",Y);return}te.scrollIntoView({behavior:"smooth",block:"center"}),te.classList.add("highlight-message"),setTimeout(()=>{te.classList.remove("highlight-message")},2e3)};return window.addEventListener("navigate-to-message",O),()=>{window.removeEventListener("navigate-to-message",O)}},[n,s]);const K=v.useRef(e);return v.useEffect(()=>{!K.current&&e&&(X(),$()),K.current=e},[e,X,$]),v.useEffect(()=>At.subscribe(O=>{var W;if(O.sessionId===t){if(m.current){(((W=O.content)==null?void 0:W.trim())??"")&&iL(O.messageId)&&(M.current.has(O.messageId)||(M.current.add(O.messageId),y(Y=>Y+1)),f(!0)),A();return}if(!O.content){A();return}$()}}),[t,A,$]),v.useEffect(()=>{const O=s.length,W=_.current,ae=O>W;if(O===0){k(),A(),_.current=O;return}if(b.current){A(),b.current=!1,_.current=O;return}if(ae&&m.current){const Y=P(O-W);f(!0),Y>0&&y(ce=>ce+Y)}!m.current&&ae?$():A(),_.current=O},[k,P,A,s.length,$]),v.useEffect(()=>{const O=n.current;if(!O||typeof ResizeObserver>"u")return;let W=0,ae=!1;const Y=()=>{cancelAnimationFrame(W);const Se=w.current;W=requestAnimationFrame(()=>{if(ae&&Se&&!m.current){$({behavior:"auto"});return}A()})},ce=new ResizeObserver(()=>{ae=!0,Y()});ce.observe(O);const L=O.firstElementChild;L instanceof HTMLElement&&ce.observe(L);const oe=r.current;return oe instanceof HTMLElement&&ce.observe(oe),Y(),()=>{cancelAnimationFrame(W),ce.disconnect()}},[r,t,n,A,s.length,$]),v.useEffect(()=>{if(!n.current||s.length===0){A();return}A();let W=0;const ae=requestAnimationFrame(()=>{A(),W=requestAnimationFrame(()=>{A()})});return()=>{cancelAnimationFrame(ae),cancelAnimationFrame(W)}},[n,s.length,t,A]),v.useEffect(()=>{b.current=!0,m.current=!1,w.current=!1,_.current=0,k()},[k,t]),{handleMessagesScroll:j,hasUnreadActivity:d,resetUserScroll:X,scrollToBottom:$,scrollToTop:F,showScrollToBottom:o,showScrollToTop:a,unreadCount:p}};function lL(t){return"type"in t&&t.type==="tool_session"}function cL(t){return"type"in t&&t.type==="compression_divider"}const yg=t=>{const e=Date.parse(t||"");return Number.isFinite(e)?e:Number.MAX_SAFE_INTEGER},uL=t=>"type"in t?t.createdAt:t.message.createdAt,dL=t=>!("type"in t)&&t.message.role==="system";function fL(t){return t.role==="assistant"&&"type"in t&&t.type==="tool_call"}function hL(t){return t.role==="assistant"&&"type"in t&&t.type==="tool_result"}const bg=t=>(t??"").trim().toLowerCase()==="conclusion",pL=t=>{const e=(t??"").trim().toLowerCase();return e==="conclusion_with_options"||e==="exitplanmode"||e==="request_permissions"},mL=t=>{var e,n,r;return((n=(e=t.call.toolCalls)==null?void 0:e[0])==null?void 0:n.toolCallId)||((r=t.result)==null?void 0:r.toolCallId)||"tool-call-missing"},gL=(t,e)=>{var n;return t.call.id||t.callMessageId||t.resultMessageId||((n=t.result)==null?void 0:n.id)||`tool-message-missing-${e}`},yL=(t,e)=>`tool-session-${gL(t,e)}:${mL(t)}`;function bL(t){const e=[],n=new Map,r=new Set,s=(i,a)=>{const c=n.get(i)||[];c.push(a),n.set(i,c)},o=i=>{const a=n.get(i);if(!a||a.length===0)return;let c;for(;a.length>0&&!c;){const d=a.shift();d&&!d.result&&(c=d)}return a.length===0?n.delete(i):n.set(i,a),c};for(const i of t){if(fL(i)){const a=i.toolCalls||[];if(a.length===0){e.push(i);continue}a.forEach((c,d)=>{const f=c.toolCallId||`${i.id}-${d}`;if(bg(c.toolName)){r.add(f);return}if(pL(c.toolName)){r.add(f);const w={...i,id:`${i.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]};e.push(w);return}const y={call:{...i,id:`${i.id}:tool-call:${d}:${f}`,toolCalls:[{...c,toolCallId:f}]},callMessageId:i.id};s(f,y);const m=e[e.length-1];Array.isArray(m)?m.push(y):e.push([y])});continue}if(hL(i)){const a=i.toolCallId;if(a&&r.has(a)){r.delete(a),e.push(i);continue}if(bg(i.toolName)){e.push(i);continue}const c=a?o(a):void 0;if(c)c.result=i,c.resultMessageId=i.id;else{const d=a||`orphan-tool-call:${i.id}`,p={call:{role:"assistant",type:"tool_call",id:`synthetic-tool-call:${i.id}`,createdAt:i.createdAt,toolCalls:[{toolCallId:d,toolName:(i.toolName||"").trim()||"tool",parameters:{},streamingOutput:""}],isCompressed:i.isCompressed,compressedEventId:i.compressedEventId},result:i,resultMessageId:i.id},y=e[e.length-1];Array.isArray(y)?y.push(p):e.push([p])}continue}e.push(i)}return e}const vL=(t,e)=>{var a;const{t:n}=Xe(),r=v.useMemo(()=>{var d;const c=e.find(f=>f.role==="system");return c||((d=t==null?void 0:t.config)!=null&&d.baseSystemPrompt?{id:`system-prompt-${t.id}`,role:"system",content:t.config.baseSystemPrompt,createdAt:new Date(t.createdAt).toISOString()}:null)},[t,e]),s=v.useCallback(c=>!1,[]),o=v.useCallback(c=>{if(cL(c))return{type:"compression_divider",id:c.id,createdAt:c.createdAt,label:c.label};if(lL(c))return{type:"tool_session",id:c.id,sessionId:c.sessionId,tools:c.tools,createdAt:c.createdAt};const d=c.message.role==="user"?"flex-end":"flex-start";let f=c.messageType;if(!f&&c.message.role==="assistant"&&"type"in c.message){const p="type"in c.message?c.message.type:void 0;(p==="text"||p==="plan"||p==="question"||p==="tool_call"||p==="tool_result")&&(f=p)}return{type:"message",message:c.message,align:d,messageType:f}},[]),i=v.useMemo(()=>{var b;const c=e.filter(_=>{const M=_.role;return!(M!=="user"&&M!=="assistant"&&M!=="system"&&M!=="tool"||s(_))}),d=bL(c),f=[];d.forEach((_,M)=>{var k,P;if(Array.isArray(_)){const A=_[0];f.push({type:"tool_session",id:A?yL(A,M):`tool-session-unknown-${M}`,sessionId:(t==null?void 0:t.id)||"default",tools:_,createdAt:((k=A==null?void 0:A.call)==null?void 0:k.createdAt)||((P=A==null?void 0:A.result)==null?void 0:P.createdAt)||new Date().toISOString()});return}const C=_;let T;if(C.role==="assistant"&&"type"in C){const A="type"in C?C.type:void 0;(A==="text"||A==="plan"||A==="question"||A==="tool_call"||A==="tool_result")&&(T=A)}f.push({message:C,messageType:T})}),!c.some(_=>_.role==="system")&&r&&f.unshift({message:r});const y=((b=t==null?void 0:t.config)==null?void 0:b.compressionEvents)||[],m=f.findIndex(_=>!dL(_)),w=m===-1?f.length:m;for(const _ of y){const M={type:"compression_divider",id:`compression-divider-${_.id}`,createdAt:_.createdAt,label:n("chat.compression.timelineDetail",{count:_.messagesCompressed,defaultValue:"{{count}} messages archived"})},C=yg(_.createdAt),T=f.findIndex((k,P)=>P>=w&&yg(uL(k))>C);T===-1?f.push(M):f.splice(T,0,M)}return f},[(a=t==null?void 0:t.config)==null?void 0:a.compressionEvents,t==null?void 0:t.id,e,s,r,n]);return{systemPromptMessage:r,renderableMessages:i,convertRenderableEntry:o}},{Text:SL}=ut,wL=({visible:t,selectionMode:e,selectedCount:n,totalCount:r,paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:a,maxWidth:c,onToggleSelectionMode:d,onSelectAll:f,onClear:p,onExportMarkdown:y,onExportPdf:m,t:w})=>t?l.jsx("div",{style:{paddingTop:s,paddingRight:o,paddingBottom:i,paddingLeft:a,maxWidth:c,margin:"0 auto",width:"100%"},children:e?l.jsxs(Ce,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(SL,{type:"secondary",children:w("chat.selectionToolbar.selectedCount",{selected:n,total:r})}),l.jsxs(We,{size:8,wrap:!0,children:[l.jsx(Ae,{size:"small",onClick:f,children:w("chat.selectionToolbar.selectAll")}),l.jsx(Ae,{size:"small",onClick:p,children:w("chat.selectionToolbar.clear")}),l.jsx(Ae,{size:"small",icon:l.jsx(yo,{}),onClick:y,disabled:n===0,children:w("chat.selectionToolbar.exportMarkdown")}),l.jsx(Ae,{size:"small",type:"primary",icon:l.jsx(yo,{}),onClick:m,disabled:n===0,children:w("chat.selectionToolbar.exportPdf")}),l.jsx(Ae,{size:"small",icon:l.jsx($s,{}),onClick:d,children:w("chat.selectionToolbar.done")})]})]}):l.jsx(Ce,{justify:"flex-end",children:l.jsx(on,{title:w("chat.selectionToolbar.selectMessages"),children:l.jsx(Ae,{"aria-label":w("chat.selectionToolbar.selectMessages"),icon:l.jsx(Ky,{}),size:"small",onClick:d})})})}):null,xL=({visible:t,showScrollToTop:e,showScrollToBottom:n,hasUnreadActivity:r,unreadCount:s,onScrollToTop:o,onScrollToBottom:i,onResetUserScroll:a,t:c})=>!t||!e&&!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:[e?l.jsx(Ae,{"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(Ae,{"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:()=>{a(),i()},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]})}),_L=st.lazy(()=>$t(()=>import("./ContextBar-1LDCx1UR.js"),__vite__mapDeps([15,1,2,3,5,4,6,16]),import.meta.url).then(t=>({default:t.ContextBar}))),CL=({sessionId:t,auxReady:e,maxWidth:n,paddingLeft:r,paddingRight:s,workspaceState:o,inspectorEligible:i,planMode:a,onRequestOpenInspector:c,t:d})=>{const{token:f}=lt.useToken();if(!t)return null;const p=a?l.jsx(on,{title:d("chat.planMode.tooltip",{status:a.status,mode:a.pre_permission_mode,defaultValue:"Plan mode active · phase: {{status}} · previous mode: {{mode}}"}),children:l.jsx(He,{color:"purple",icon:l.jsx(Iy,{}),style:{marginInlineEnd:0},children:d("chat.planMode.active",{defaultValue:"Plan mode"})})}):null,y=i&&o.inspectorTogglePlacement==="meta_strip"&&!!c,m=!!(p||o.isMultiPane||y);return l.jsxs(l.Fragment,{children:[e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(_L,{sessionId:t})}):null,m?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(Ce,{align:"center",justify:"space-between",gap:f.marginXS,wrap:!0,children:[l.jsxs(Ce,{align:"center",gap:f.marginXS,wrap:!0,children:[p,o.isMultiPane?l.jsx(He,{color:"blue",style:{marginInlineEnd:0},children:d("chat.workspace.multiPane",{count:o.leafCount,defaultValue:"{{count}} panes"})}):null]}),y&&c?l.jsx(Ae,{size:"small",icon:l.jsx(cf,{}),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]})},hh=({isEmbedded:t,leafCount:e,isMobileViewport:n})=>{const r=Number.isFinite(e)&&e>0?Math.floor(e):1,s=r>1;return{isEmbedded:t,leafCount:r,isMultiPane:s,isMobileViewport:n,inspectorMode:n||s?"drawer":"rail",inspectorTogglePlacement:s&&!n?"pane_header":"meta_strip"}},kL=st.lazy(()=>$t(()=>import("./QuestionDialog-sR4lfOkz.js"),__vite__mapDeps([17,1,2,3,4,5,6,18]),import.meta.url).then(t=>({default:t.QuestionDialog}))),TL=st.lazy(()=>$t(()=>import("./ChildApprovalDialog-Bn6zDSUn.js"),__vite__mapDeps([19,1,2,3,4,5,6,18]),import.meta.url).then(t=>({default:t.ChildApprovalDialog}))),{useToken:EL}=lt,{useBreakpoint:PL}=pc,ML=t=>{const{t:e}=Et;return t.role==="user"?e("chat.view.roleUser"):t.role==="assistant"?e("chat.view.roleAssistant"):t.role==="system"?e("chat.view.roleSystem"):e("chat.view.roleDefault")},Lw=t=>{const e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()},AL=t=>t.map(({message:e,text:n},r)=>{const s=ML(e),o=Lw(e.createdAt);return[`## ${r+1}. ${s} · ${o}`,"",n].join(`
241
241
  `)}).join(`
242
242
 
243
243
  ---
244
244
 
245
- `),bg=({sessionId:t,embedded:e=!1,paneCount:n=1,auxReady:r=!1,sessionDiffSummary:s=null,workspaceState:o,inspectorEligible:i=!1,onRequestOpenInspector:a})=>{var rs,Yn,Vn,Or,Nn;const c=n,{message:d}=En.useApp(),{t:f}=Xe(),p=G(Ee=>t??Ee.currentSessionId),b=G(Cr(p)),m=G(Ee=>Ee.deleteMessage),w=G(Ee=>Ee.loadChatHistory),y=G(Ee=>p?Ee.tokenUsages[p]??null:null),_=G(Ee=>p?Ee.truncationOccurred[p]??!1:!1),M=G(Ee=>p?Ee.segmentsRemoved[p]??0:0),C=v.useMemo(()=>(b==null?void 0:b.messages)||[],[b]),T=G(Ta(p));v.useEffect(()=>{if(!p)return;const Ee=G.getState().chats.find(Ye=>Ye.id===p);Ee&&Array.isArray(Ee.messages)&&Ee.messages.length>0||w(p)},[p,w]);const k=(b==null?void 0:b.messageCount)??0,P=((rs=b==null?void 0:b.messages)==null?void 0:rs.length)??0;v.useEffect(()=>{if(!p)return;k-P>0&&w(p,{mode:"monotonic"})},[p,k,P,w]);const A=T,j=v.useCallback(Ee=>{if(Ee.success)return null;switch(Ee.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 Ee.errorMessage||f("chat.messageActions.deleteFailed")}},[f]),$=v.useCallback(async(Ee,Ye)=>{if(!p){const Pt={success:!1,sessionId:"",messageId:Ee,reason:"session_not_found"};return(Ye==null?void 0:Ye.notify)!==!1&&d.error(j(Pt)),Pt}const wt=await m(p,Ee);return!wt.success&&(Ye==null?void 0:Ye.notify)!==!1&&d.error(j(wt)),wt},[p,m,d,j]),F=v.useCallback(async Ee=>{const Ye=Array.from(new Set(Ee.map(Kt=>Kt.trim()).filter(Boolean)));if(Ye.length===0)return;const Pt=(await Promise.all(Ye.map(Kt=>$(Kt,{notify:!1})))).filter(Kt=>!Kt.success);if(Pt.length!==0){if(Pt.length===1){d.error(j(Pt[0]));return}d.error(f("chat.messageActions.deleteBatchFailed",{failed:Pt.length,total:Ye.length}))}},[$,d,j,f]),X=v.useRef(null),K=v.useRef(null),{token:O}=_L(),W=CL(),ae=v.useMemo(()=>({xs:W.xs}),[W.xs]),Y=Zr(),[ce,L]=v.useState(null),[oe,Se]=v.useState(!1),[J,te]=v.useState(new Set),he=ft(Ee=>Ee.sidebar.collapsed),de=r,me=s,ge=()=>e||W.xs||W.sm?"100%":W.md?"90%":W.lg?"85%":"1024px",le=()=>{let Ee;return e?Ee=O.paddingSM:W.xs?Ee=O.paddingXS:W.sm?Ee=O.paddingSM:Ee=O.padding,!e&&he&&!Y?Ee+18:Ee},ke=v.useMemo(()=>o||hh({isEmbedded:e,leafCount:c,isMobileViewport:Y}),[e,Y,c,o]);v.useEffect(()=>{L(null),Se(!1),te(new Set)},[p]);const{systemPromptMessage:je,renderableMessages:fe,convertRenderableEntry:ne}=mL(b,C),Q=C.length>0,ie=!!(ce!=null&&ce.content),ye=!!je,$e=!!p&&(Q||ie),qe=0,Ue=v.useMemo(()=>{if(!(ce!=null&&ce.content))return fe;const Ee={message:{id:ce.id,role:"user",content:ce.content,createdAt:ce.createdAt},messageType:"text"};return[...fe,Ee]},[fe,ce]),rt=v.useMemo(()=>{const Ee=[];for(const Ye of Ue){if(!("message"in Ye))continue;const wt=eS(Ye.message).trim();wt&&Ee.push({id:Ye.message.id,message:Ye.message,text:wt})}return Ee},[Ue]),ht=v.useMemo(()=>new Set(rt.map(Ee=>Ee.id)),[rt]);v.useEffect(()=>{te(Ee=>{let Ye=!1;const wt=new Set;for(const Pt of Ee)ht.has(Pt)?wt.add(Pt):Ye=!0;return Ye?wt:Ee})},[ht]);const Ct=v.useMemo(()=>rt.filter(Ee=>J.has(Ee.id)),[rt,J]),vt=rt.length>0,Ve=v.useCallback(Ee=>{te(Ye=>{const wt=new Set(Ye);return wt.has(Ee)?wt.delete(Ee):wt.add(Ee),wt})},[]),Ht=v.useCallback(()=>{if(!vt){d.warning(f("chat.view.noExportableMessages"));return}Se(!0)},[d,vt,f]),ct=v.useCallback(()=>{Se(!1),te(new Set)},[]),pt=v.useCallback(()=>{if(oe){ct();return}Ht()},[Ht,ct,oe]),on=v.useCallback(()=>{te(new Set(rt.map(Ee=>Ee.id)))},[rt]),Nt=v.useCallback(()=>{te(new Set)},[]),Tt=v.useCallback(async Ee=>{var Pt;if(!p){d.warning(f("chat.view.noActiveChat"));return}if(Ct.length===0){d.warning(f("chat.view.selectAtLeastOneMessage"));return}const Ye=TL(Ct),wt=await tS.exportMessageText({format:Ee,content:Ye,sessionId:p,filenamePrefix:`chat-messages-${Ct.length}`});if(wt.success){d.success(f("chat.view.exportSaved",{filename:wt.filename}));return}(Pt=wt.error)!=null&&Pt.toLowerCase().includes("cancel")||d.error(wt.error||f("chat.view.exportFailed"))},[d,p,Ct,f]);v.useEffect(()=>{if(typeof window>"u")return;const Ee=Ye=>{var Kt;const Pt=((Kt=Ye.detail)==null?void 0:Kt.sessionId)??null;!p||Pt!==p||pt()};return window.addEventListener(Cd,Ee),()=>{window.removeEventListener(Cd,Ee)}},[p,pt]);const xn=(Yn=b==null?void 0:b.config)==null?void 0:Yn.tokenUsage,an=y||xn||null,be=(Vn=b==null?void 0:b.config)==null?void 0:Vn.truncationOccurred,Be=_||be||!1,Le=(Or=b==null?void 0:b.config)==null?void 0:Or.segmentsRemoved,Ge=M||Le||0,Vt=v.useMemo(()=>{var Ye;const Ee=(Ye=b==null?void 0:b.config)==null?void 0:Ye.compressionEvents;return!Ee||Ee.length===0?null:Ee.reduce((wt,Pt)=>{const Kt=Date.parse(wt.createdAt),lr=Date.parse(Pt.createdAt);return Number.isFinite(Kt)?Number.isFinite(lr)&&lr>Kt?Pt:wt:Pt})},[(Nn=b==null?void 0:b.config)==null?void 0:Nn.compressionEvents]),pn=O.marginMD,{handleMessagesScroll:De,hasUnreadActivity:Fn,resetUserScroll:qt,scrollToBottom:Lt,scrollToTop:Re,showScrollToBottom:Xn,showScrollToTop:ns,unreadCount:ir}=rL({currentSessionId:p,isThinking:A,messagesListRef:X,bottomAnchorRef:K,renderableMessages:Ue}),Ir=!!$e&&vt&&(!e||oe),ar=Vt?l.jsx(fn,{title:f("chat.compression.tooltip",{count:Vt.messagesCompressed,time:Iw(Vt.createdAt),defaultValue:"Latest compression at {{time}}: {{count}} messages archived"}),children:l.jsx(He,{color:"gold",icon:l.jsx(Uy,{}),style:{marginInlineEnd:0,whiteSpace:"nowrap"},children:f("chat.compression.archivedShort",{count:Vt.messagesCompressed,defaultValue:"{{count}} archived"})})}):null,Fs=an&&an.budgetLimit>0?l.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:O.marginXS},children:[l.jsx(L$,{usage:an,showDetails:!0,size:"small"}),Be&&l.jsxs("span",{style:{fontSize:11,color:O.colorTextSecondary,whiteSpace:"nowrap"},children:["(",f("components.tokenUsage.truncatedBadge",{count:Ge,defaultValue:"{{count}} truncated"}),")"]}),ar]}):ar?l.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:O.marginXS},children:ar}):null;return l.jsx(ro,{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(Ce,{vertical:!0,style:{flex:1,minHeight:0,height:"100%"},children:[l.jsx(SL,{sessionId:p,auxReady:de,maxWidth:ge(),paddingLeft:le(),paddingRight:le(),workspaceState:ke,inspectorEligible:i,planMode:(b==null?void 0:b.planMode)??null,onRequestOpenInspector:a,t:f}),l.jsx(yL,{visible:Ir,selectionMode:oe,selectedCount:Ct.length,totalCount:rt.length,paddingTop:O.paddingXS,paddingRight:le()+qe,paddingBottom:0,paddingLeft:le(),maxWidth:ge(),onToggleSelectionMode:pt,onSelectAll:on,onClear:Nt,onExportMarkdown:()=>{Tt("markdown")},onExportPdf:()=>{Tt("pdf")},t:f}),l.jsx(I$,{currentChat:b,currentSessionId:p,convertRenderableEntry:ne,handleDeleteMessage:$,handleDeleteToolMessages:F,handleMessagesScroll:De,hasSystemPrompt:ye,messagesListRef:X,bottomAnchorRef:K,renderableMessages:Ue,rowGap:pn,showMessagesView:!!$e,screens:ae,workflowDraftId:ce==null?void 0:ce.id,isThinking:A,padding:le(),selectionMode:oe,selectedMessageIds:J,selectableMessageIds:ht,onToggleMessageSelection:Ve}),l.jsxs("div",{className:`chat-bottom-stack ${$e?"":"is-empty-centered"}`,"data-testid":"chat-bottom-stack",children:[l.jsx(bL,{visible:$e,showScrollToTop:ns,showScrollToBottom:Xn,hasUnreadActivity:Fn,unreadCount:ir,onScrollToTop:Re,onScrollToBottom:Lt,onResetUserScroll:qt,t:f}),p&&de&&l.jsxs("div",{style:{paddingTop:O.paddingXS,paddingRight:le(),paddingBottom:0,paddingLeft:le(),maxWidth:ge(),margin:"0 auto",width:"100%"},children:[l.jsx(st.Suspense,{fallback:null,children:l.jsx(wL,{sessionId:p},p)}),l.jsx(st.Suspense,{fallback:null,children:l.jsx(xL,{sessionId:p},`child-approval-${p}`)})]}),l.jsx(EA,{sessionId:p,isCenteredLayout:!$e,maxWidth:$e?ge():"100%",onWorkflowDraftChange:L,showMessagesView:!!$e,sessionDiffSummary:me,contextUsageIndicator:Fs,showSessionDiffCard:!1})]})]})})},Vd="lotus_experience_mode_v1",LF=new Set(["skills","hooks","masking","env-vars","clusters","metrics","sessions","config"]);function vg(){try{const t=localStorage.getItem(Vd);if(t==="simple"||t==="advanced")return t}catch{}return"advanced"}const Ow=es(t=>({mode:vg(),isAdvanced:vg()==="advanced",setMode:e=>{try{localStorage.setItem(Vd,e)}catch{}t({mode:e,isAdvanced:e==="advanced"})},toggleMode:()=>t(e=>{const n=e.mode==="simple"?"advanced":"simple";try{localStorage.setItem(Vd,n)}catch{}return{mode:n,isAdvanced:n==="advanced"}})})),EL={low:"Low",medium:"Medium",high:"High",xhigh:"Extra high",max:"Max"},PL=st.lazy(()=>Ft(()=>import("./SessionSummaryCard-82JEyQoC.js"),__vite__mapDeps([20,1,2,3,4,5,6,21]),import.meta.url).then(t=>({default:t.SessionSummaryCard}))),ML=st.lazy(()=>Ft(()=>import("./TodoList-Dt4AWMX-.js"),__vite__mapDeps([22,1,2,3,4,5,6]),import.meta.url).then(t=>({default:t.TodoList}))),AL=st.lazy(()=>Ft(()=>import("./SubAgentsPanel-XyvlKHnm.js"),__vite__mapDeps([23,1,2,3,5,4,6]),import.meta.url).then(t=>({default:t.SubAgentsPanel}))),{Title:RL,Text:wr}=ut,Sg={active:{label:"Active",color:"processing"},complete:{label:"Complete",color:"success"},blocked:{label:"Blocked",color:"error"},need_input:{label:"Needs input",color:"warning"},budget_limited:{label:"Budget limited",color:"warning"}},jL=({sessionId:t})=>{var p,b,m,w,y,_,M;const{token:e}=lt.useToken(),n=G(Cr(t)),r=G(C=>C.setInputContent),s=((p=n==null?void 0:n.config)==null?void 0:p.goldConfig)??null,o=((b=n==null?void 0:n.config)==null?void 0:b.goalState)??null,i=((m=(s==null?void 0:s.goal)??(s==null?void 0:s.evaluation_prompt))==null?void 0:m.trim())??"",a=(s==null?void 0:s.enabled)===!0,c=i.length>0,d=((w=o==null?void 0:o.eval_history)==null?void 0:w[o.eval_history.length-1])??null;if(!n||!s||!c&&!a)return null;const f=()=>{const C=c?`/goal ${i}`:"/goal ";r(t,C),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Zl,{detail:{sessionId:t}}))};return l.jsx("div",{"data-testid":"session-goal-card",style:{padding:`${e.paddingXXS}px ${e.paddingXS}px`,borderRadius:e.borderRadiusLG,border:`1px solid ${a?e.colorWarningBorder:e.colorBorderSecondary}`,background:a?e.colorWarningBg:e.colorFillQuaternary},children:l.jsxs(Ce,{vertical:!0,gap:4,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"center",justify:"space-between",gap:8,children:[l.jsxs(Ce,{align:"center",gap:6,style:{minWidth:0},children:[l.jsx(l_,{style:{color:a?e.colorWarning:e.colorTextSecondary}}),l.jsx(wr,{strong:!0,style:{fontSize:12},children:"Goal"})]}),l.jsx(Ae,{size:"small",type:"text",onClick:f,style:{paddingInline:6},children:"Edit /goal"})]}),l.jsx(Ml,{items:[a?"Enabled":"Disabled",s.auto_answer_enabled?"Auto-answer":null,s.auto_continue_enabled?"Auto-continue":null],block:!0}),l.jsx(wr,{style:{fontSize:12,lineHeight:1.45,color:c?e.colorText:e.colorTextSecondary,whiteSpace:"pre-wrap"},children:c?i:"Use /goal <prompt> in the composer to set a session goal."}),o?l.jsxs(Ce,{vertical:!0,gap:4,style:{marginTop:2},children:[l.jsxs(Ce,{align:"center",gap:6,wrap:"wrap",children:[l.jsx(He,{color:((y=Sg[o.status])==null?void 0:y.color)??"default",style:{marginInlineEnd:0},children:((_=Sg[o.status])==null?void 0:_.label)??o.status}),o.continuation_count>0?l.jsxs(wr,{type:"secondary",style:{fontSize:11},children:[o.continuation_count," continuation",o.continuation_count===1?"":"s"]}):null,(M=o.eval_history)!=null&&M.length?l.jsxs(wr,{type:"secondary",style:{fontSize:11},children:[o.eval_history.length," double-check",o.eval_history.length===1?"":"s"]}):null]}),d?l.jsx(wr,{type:"secondary",style:{fontSize:11,lineHeight:1.4,whiteSpace:"pre-wrap"},children:`Last check [${d.checkpoint}] ${d.decision}/${d.confidence}: ${d.reasoning}`}):null]}):null]})})},IL=({sessionId:t})=>{var m,w;const{token:e}=lt.useToken(),{t:n}=Xe(),r=G(Cr(t)),s=yt(y=>y.providerInstances),o=r==null?void 0:r.config,i=((m=o==null?void 0:o.model_ref)==null?void 0:m.model)??(o==null?void 0:o.model)??null,a=((w=o==null?void 0:o.model_ref)==null?void 0:w.provider)??null,c=v.useMemo(()=>{if(!a)return null;const y=s.find(_=>_.id===a);return y?y.label||y.id:xM[a]??a},[a,s]);if(!r||!i)return null;const d=(o==null?void 0:o.reasoningEffort)??null,f=d?EL[d]??d:"Provider default",p=(o==null?void 0:o.agentRole)??null,b=[{label:"Model",value:i},...c?[{label:"Provider",value:c}]:[],{label:"Reasoning",value:f,muted:!d},...p?[{label:"Role",value:p}]:[]];return l.jsx("div",{"data-testid":"session-config-card",style:{padding:`${e.paddingXXS}px ${e.paddingXS}px`,borderRadius:e.borderRadiusLG,border:`1px solid ${e.colorBorderSecondary}`,background:e.colorFillQuaternary},children:l.jsxs(Ce,{vertical:!0,gap:4,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"center",gap:6,style:{minWidth:0},children:[l.jsx(sf,{style:{color:e.colorTextSecondary}}),l.jsx(wr,{strong:!0,style:{fontSize:12},children:n("inspector.configuration","Configuration")})]}),l.jsx(Ce,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:b.map(y=>l.jsxs(Ce,{align:"center",justify:"space-between",gap:8,children:[l.jsx(wr,{type:"secondary",style:{fontSize:12,flexShrink:0},children:y.label}),l.jsx(wr,{style:{fontSize:12,textAlign:"right",color:y.muted?e.colorTextTertiary:e.colorText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:y.value,children:y.value})]},y.label))})]})})},OL=({sessionId:t,auxReady:e,showMessagesView:n,shouldShowTaskPanel:r,hasSubAgents:s,sessionDiffSummary:o})=>{var b,m,w,y,_,M;const{token:i}=lt.useToken(),a=Ow(C=>C.isAdvanced),c=G(Cr(t)),d=!!((b=c==null?void 0:c.config)!=null&&b.goldConfig&&((((w=(m=c.config.goldConfig.goal??c.config.goldConfig.evaluation_prompt)==null?void 0:m.trim())==null?void 0:w.length)??0)>0||c.config.goldConfig.enabled===!0)),f=!!((_=(y=c==null?void 0:c.config)==null?void 0:y.model_ref)!=null&&_.model||(M=c==null?void 0:c.config)!=null&&M.model),p=v.useMemo(()=>[{key:"goal",title:"Goal",showTitle:!1,visible:d,node:l.jsx(jL,{sessionId:t})},{key:"config",title:"Configuration",showTitle:!1,visible:f,node:l.jsx(IL,{sessionId:t})},{key:"overview",title:"Overview",showTitle:!1,visible:a&&n,node:e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(PL,{sessionId:t,compact:!0})}):null},{key:"tasks",title:"Tasks",showTitle:!1,visible:r,node:e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(ML,{sessionId:t,initialCollapsed:!1,compact:!0})}):null},{key:"agents",title:"Sub-agents",showTitle:!1,visible:s,node:e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(AL,{parentSessionId:t,compact:!0})}):null},{key:"diffs",title:"Diffs",showTitle:!1,visible:!!o,node:l.jsx(gv,{sessionDiffSummary:o,sessionId:t,compact:!0})}].filter(C=>C.visible),[e,f,d,s,a,o,t,r,n]);return p.length===0?l.jsx(Ce,{vertical:!0,align:"center",justify:"center",style:{minHeight:180,color:i.colorTextSecondary,padding:i.paddingLG,textAlign:"center"},children:l.jsx(wr,{type:"secondary",children:"No session details available yet."})}):l.jsx(Ce,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:p.map((C,T)=>l.jsx("section",{style:{width:"100%",minWidth:0,paddingTop:T===0?0:6,borderTop:T===0?"none":`1px solid ${i.colorBorderSecondary}`},children:C.showTitle?l.jsxs(Ce,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsx(RL,{level:5,style:{margin:0,fontSize:i.fontSizeLG},children:C.title}),C.node]}):C.node},C.key))})},wg=({sessionId:t,auxReady:e,mode:n,open:r,onOpenChange:s,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:a,sessionDiffSummary:c})=>{const{token:d}=lt.useToken(),{t:f}=Xe(),p=Zr(),b=ft(_=>_.inspector.widthPx),m=ft(_=>_.inspector.minWidthPx),w=ft(_=>_.inspector.maxWidthPx);if(!t)return null;const y=l.jsx(OL,{sessionId:t,auxReady:e,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:a,sessionDiffSummary:c});return n==="drawer"?l.jsx(gc,{title:f("inspector.title","Inspector"),placement:p?"bottom":"right",open:r,onClose:()=>s(!1),width:p?void 0:b,height:p?"85vh":void 0,styles:p?{content:{borderTopLeftRadius:16,borderTopRightRadius:16}}:void 0,children:y}):r?l.jsxs("aside",{"data-session-inspector-pane":!0,style:{width:"100%",minWidth:m,maxWidth:w,height:"100%",minHeight:0,borderLeft:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout,overflow:"auto"},children:[l.jsxs(Ce,{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(Ce,{align:"center",gap:d.marginXS,children:[l.jsx(cf,{}),l.jsx(wr,{strong:!0,children:f("inspector.title","Inspector")})]}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{}),"aria-label":"Close inspector",onClick:()=>s(!1)})]}),l.jsx("div",{style:{padding:`6px ${d.paddingSM}px ${d.paddingSM}px`,minWidth:0},children:y})]}):null},$L=({sessionId:t,embedded:e=!1,paneCount:n=1,workspaceState:r})=>{var Y,ce,L;const s=n,o=Zr(),i=G(oe=>t??oe.currentSessionId),a=G(Cr(i)),c=v.useMemo(()=>(a==null?void 0:a.messages)||[],[a]),d=G(oe=>oe.loadTaskList),f=Ow(oe=>oe.isAdvanced),p=v.useMemo(()=>!i||!a?i:a.kind==="child"&&(a.parentSessionId||a.rootSessionId)||i,[a,i]),b=G(oe=>p?!!oe.taskLists[p]:!1),m=G(Ta(i)),w=v.useMemo(()=>!i||!a?!1:!!(b||a.kind==="child"||m),[a,b,m,i]),y=G(oe=>{if(!i)return!1;const Se=yc(i)(oe);return Object.keys(Se).length>0?!0:oe.chats.some(J=>J.kind==="child"&&J.parentSessionId===i)});v.useEffect(()=>{!p||b||w&&d(p).catch(oe=>{console.warn(`[SessionWorkspaceShell] Failed to load task list for ${p}:`,oe)})},[p,b,w,d]);const _=v.useMemo(()=>{var de;if(!c||c.length===0)return null;const oe=new Map;let Se=0,J=0,te=0;for(const me of c){if(!_v(me))continue;const ge=((de=me.result)==null?void 0:de.result)??"",le=ko(ge),ke=Ff(ge);if(!le||!ke)continue;te+=1,Se+=ke.added,J+=ke.removed;const je=oe.get(le.file_path);je?(je.added+=ke.added,je.removed+=ke.removed,je.diffChunks.push(le.diff.unified),je.truncated=je.truncated||!!le.diff.truncated,je.toolCount+=1,je.workspace=je.workspace??le.workspace):oe.set(le.file_path,{added:ke.added,removed:ke.removed,diffChunks:[le.diff.unified],truncated:!!le.diff.truncated,toolCount:1,workspace:le.workspace})}if(oe.size===0)return null;const he=Array.from(oe.entries()).map(([me,ge])=>({filePath:me,added:ge.added,removed:ge.removed,unifiedDiff:ge.diffChunks.join(`
245
+ `),vg=({sessionId:t,embedded:e=!1,paneCount:n=1,auxReady:r=!1,sessionDiffSummary:s=null,workspaceState:o,inspectorEligible:i=!1,onRequestOpenInspector:a})=>{var rs,Yn,Vn,$r,Nn;const c=n,{message:d}=En.useApp(),{t:f}=Xe(),p=G(Ee=>t??Ee.currentSessionId),y=G(Cr(p)),m=G(Ee=>Ee.deleteMessage),w=G(Ee=>Ee.loadChatHistory),b=G(Ee=>p?Ee.tokenUsages[p]??null:null),_=G(Ee=>p?Ee.truncationOccurred[p]??!1:!1),M=G(Ee=>p?Ee.segmentsRemoved[p]??0:0),C=v.useMemo(()=>(y==null?void 0:y.messages)||[],[y]),T=G(Ta(p));v.useEffect(()=>{if(!p)return;const Ee=G.getState().chats.find(Ye=>Ye.id===p);Ee&&Array.isArray(Ee.messages)&&Ee.messages.length>0||w(p)},[p,w]);const k=(y==null?void 0:y.messageCount)??0,P=((rs=y==null?void 0:y.messages)==null?void 0:rs.length)??0;v.useEffect(()=>{if(!p)return;k-P>0&&w(p,{mode:"monotonic"})},[p,k,P,w]);const A=T,j=v.useCallback(Ee=>{if(Ee.success)return null;switch(Ee.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 Ee.errorMessage||f("chat.messageActions.deleteFailed")}},[f]),$=v.useCallback(async(Ee,Ye)=>{if(!p){const Pt={success:!1,sessionId:"",messageId:Ee,reason:"session_not_found"};return(Ye==null?void 0:Ye.notify)!==!1&&d.error(j(Pt)),Pt}const wt=await m(p,Ee);return!wt.success&&(Ye==null?void 0:Ye.notify)!==!1&&d.error(j(wt)),wt},[p,m,d,j]),F=v.useCallback(async Ee=>{const Ye=Array.from(new Set(Ee.map(Kt=>Kt.trim()).filter(Boolean)));if(Ye.length===0)return;const Pt=(await Promise.all(Ye.map(Kt=>$(Kt,{notify:!1})))).filter(Kt=>!Kt.success);if(Pt.length!==0){if(Pt.length===1){d.error(j(Pt[0]));return}d.error(f("chat.messageActions.deleteBatchFailed",{failed:Pt.length,total:Ye.length}))}},[$,d,j,f]),X=v.useRef(null),K=v.useRef(null),{token:O}=EL(),W=PL(),ae=v.useMemo(()=>({xs:W.xs}),[W.xs]),Y=es(),[ce,L]=v.useState(null),[oe,Se]=v.useState(!1),[J,te]=v.useState(new Set),he=ft(Ee=>Ee.sidebar.collapsed),de=r,me=s,ge=()=>e||W.xs||W.sm?"100%":W.md?"90%":W.lg?"85%":"1024px",le=()=>{let Ee;return e?Ee=O.paddingSM:W.xs?Ee=O.paddingXS:W.sm?Ee=O.paddingSM:Ee=O.padding,!e&&he&&!Y?Ee+18:Ee},ke=v.useMemo(()=>o||hh({isEmbedded:e,leafCount:c,isMobileViewport:Y}),[e,Y,c,o]);v.useEffect(()=>{L(null),Se(!1),te(new Set)},[p]);const{systemPromptMessage:je,renderableMessages:fe,convertRenderableEntry:ne}=vL(y,C),Q=C.length>0,ie=!!(ce!=null&&ce.content),ye=!!je,$e=!!p&&(Q||ie),qe=0,Ue=v.useMemo(()=>{if(!(ce!=null&&ce.content))return fe;const Ee={message:{id:ce.id,role:"user",content:ce.content,createdAt:ce.createdAt},messageType:"text"};return[...fe,Ee]},[fe,ce]),rt=v.useMemo(()=>{const Ee=[];for(const Ye of Ue){if(!("message"in Ye))continue;const wt=rS(Ye.message).trim();wt&&Ee.push({id:Ye.message.id,message:Ye.message,text:wt})}return Ee},[Ue]),ht=v.useMemo(()=>new Set(rt.map(Ee=>Ee.id)),[rt]);v.useEffect(()=>{te(Ee=>{let Ye=!1;const wt=new Set;for(const Pt of Ee)ht.has(Pt)?wt.add(Pt):Ye=!0;return Ye?wt:Ee})},[ht]);const Ct=v.useMemo(()=>rt.filter(Ee=>J.has(Ee.id)),[rt,J]),vt=rt.length>0,Ve=v.useCallback(Ee=>{te(Ye=>{const wt=new Set(Ye);return wt.has(Ee)?wt.delete(Ee):wt.add(Ee),wt})},[]),Ht=v.useCallback(()=>{if(!vt){d.warning(f("chat.view.noExportableMessages"));return}Se(!0)},[d,vt,f]),ct=v.useCallback(()=>{Se(!1),te(new Set)},[]),pt=v.useCallback(()=>{if(oe){ct();return}Ht()},[Ht,ct,oe]),an=v.useCallback(()=>{te(new Set(rt.map(Ee=>Ee.id)))},[rt]),Nt=v.useCallback(()=>{te(new Set)},[]),Tt=v.useCallback(async Ee=>{var Pt;if(!p){d.warning(f("chat.view.noActiveChat"));return}if(Ct.length===0){d.warning(f("chat.view.selectAtLeastOneMessage"));return}const Ye=AL(Ct),wt=await sS.exportMessageText({format:Ee,content:Ye,sessionId:p,filenamePrefix:`chat-messages-${Ct.length}`});if(wt.success){d.success(f("chat.view.exportSaved",{filename:wt.filename}));return}(Pt=wt.error)!=null&&Pt.toLowerCase().includes("cancel")||d.error(wt.error||f("chat.view.exportFailed"))},[d,p,Ct,f]);v.useEffect(()=>{if(typeof window>"u")return;const Ee=Ye=>{var Kt;const Pt=((Kt=Ye.detail)==null?void 0:Kt.sessionId)??null;!p||Pt!==p||pt()};return window.addEventListener(Cd,Ee),()=>{window.removeEventListener(Cd,Ee)}},[p,pt]);const xn=(Yn=y==null?void 0:y.config)==null?void 0:Yn.tokenUsage,ln=b||xn||null,be=(Vn=y==null?void 0:y.config)==null?void 0:Vn.truncationOccurred,Be=_||be||!1,Le=($r=y==null?void 0:y.config)==null?void 0:$r.segmentsRemoved,Ge=M||Le||0,Vt=v.useMemo(()=>{var Ye;const Ee=(Ye=y==null?void 0:y.config)==null?void 0:Ye.compressionEvents;return!Ee||Ee.length===0?null:Ee.reduce((wt,Pt)=>{const Kt=Date.parse(wt.createdAt),lr=Date.parse(Pt.createdAt);return Number.isFinite(Kt)?Number.isFinite(lr)&&lr>Kt?Pt:wt:Pt})},[(Nn=y==null?void 0:y.config)==null?void 0:Nn.compressionEvents]),pn=O.marginMD,{handleMessagesScroll:De,hasUnreadActivity:Fn,resetUserScroll:qt,scrollToBottom:Dt,scrollToTop:Re,showScrollToBottom:Xn,showScrollToTop:ns,unreadCount:ir}=aL({currentSessionId:p,isThinking:A,messagesListRef:X,bottomAnchorRef:K,renderableMessages:Ue}),Or=!!$e&&vt&&(!e||oe),ar=Vt?l.jsx(on,{title:f("chat.compression.tooltip",{count:Vt.messagesCompressed,time:Lw(Vt.createdAt),defaultValue:"Latest compression at {{time}}: {{count}} messages archived"}),children:l.jsx(He,{color:"gold",icon:l.jsx(qy,{}),style:{marginInlineEnd:0,whiteSpace:"nowrap"},children:f("chat.compression.archivedShort",{count:Vt.messagesCompressed,defaultValue:"{{count}} archived"})})}):null,Fs=ln&&ln.budgetLimit>0?l.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:O.marginXS},children:[l.jsx(z$,{usage:ln,showDetails:!0,size:"small"}),Be&&l.jsxs("span",{style:{fontSize:11,color:O.colorTextSecondary,whiteSpace:"nowrap"},children:["(",f("components.tokenUsage.truncatedBadge",{count:Ge,defaultValue:"{{count}} truncated"}),")"]}),ar]}):ar?l.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:O.marginXS},children:ar}):null;return l.jsx(ro,{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(Ce,{vertical:!0,style:{flex:1,minHeight:0,height:"100%"},children:[l.jsx(CL,{sessionId:p,auxReady:de,maxWidth:ge(),paddingLeft:le(),paddingRight:le(),workspaceState:ke,inspectorEligible:i,planMode:(y==null?void 0:y.planMode)??null,onRequestOpenInspector:a,t:f}),l.jsx(wL,{visible:Or,selectionMode:oe,selectedCount:Ct.length,totalCount:rt.length,paddingTop:O.paddingXS,paddingRight:le()+qe,paddingBottom:0,paddingLeft:le(),maxWidth:ge(),onToggleSelectionMode:pt,onSelectAll:an,onClear:Nt,onExportMarkdown:()=>{Tt("markdown")},onExportPdf:()=>{Tt("pdf")},t:f}),l.jsx(D$,{currentChat:y,currentSessionId:p,convertRenderableEntry:ne,handleDeleteMessage:$,handleDeleteToolMessages:F,handleMessagesScroll:De,hasSystemPrompt:ye,messagesListRef:X,bottomAnchorRef:K,renderableMessages:Ue,rowGap:pn,showMessagesView:!!$e,screens:ae,workflowDraftId:ce==null?void 0:ce.id,isThinking:A,padding:le(),selectionMode:oe,selectedMessageIds:J,selectableMessageIds:ht,onToggleMessageSelection:Ve}),l.jsxs("div",{className:`chat-bottom-stack ${$e?"":"is-empty-centered"}`,"data-testid":"chat-bottom-stack",children:[l.jsx(xL,{visible:$e,showScrollToTop:ns,showScrollToBottom:Xn,hasUnreadActivity:Fn,unreadCount:ir,onScrollToTop:Re,onScrollToBottom:Dt,onResetUserScroll:qt,t:f}),p&&de&&l.jsxs("div",{style:{paddingTop:O.paddingXS,paddingRight:le(),paddingBottom:0,paddingLeft:le(),maxWidth:ge(),margin:"0 auto",width:"100%"},children:[l.jsx(st.Suspense,{fallback:null,children:l.jsx(kL,{sessionId:p},p)}),l.jsx(st.Suspense,{fallback:null,children:l.jsx(TL,{sessionId:p},`child-approval-${p}`)})]}),l.jsx(RA,{sessionId:p,isCenteredLayout:!$e,maxWidth:$e?ge():"100%",onWorkflowDraftChange:L,showMessagesView:!!$e,sessionDiffSummary:me,contextUsageIndicator:Fs,showSessionDiffCard:!1})]})]})})},Vd="lotus_experience_mode_v1",WF=new Set(["skills","hooks","masking","env-vars","clusters","metrics","sessions","config"]);function Sg(){try{const t=localStorage.getItem(Vd);if(t==="simple"||t==="advanced")return t}catch{}return"advanced"}const Dw=Ir(t=>({mode:Sg(),isAdvanced:Sg()==="advanced",setMode:e=>{try{localStorage.setItem(Vd,e)}catch{}t({mode:e,isAdvanced:e==="advanced"})},toggleMode:()=>t(e=>{const n=e.mode==="simple"?"advanced":"simple";try{localStorage.setItem(Vd,n)}catch{}return{mode:n,isAdvanced:n==="advanced"}})})),RL={low:"Low",medium:"Medium",high:"High",xhigh:"Extra high",max:"Max"},jL=st.lazy(()=>$t(()=>import("./SessionSummaryCard-CNuYpo8e.js"),__vite__mapDeps([20,1,2,3,4,5,6,21]),import.meta.url).then(t=>({default:t.SessionSummaryCard}))),IL=st.lazy(()=>$t(()=>import("./TodoList-wgV1m9Hg.js"),__vite__mapDeps([22,1,2,3,4,5,6]),import.meta.url).then(t=>({default:t.TodoList}))),OL=st.lazy(()=>$t(()=>import("./SubAgentsPanel-XLs7Ffbu.js"),__vite__mapDeps([23,1,2,3,5,4,6]),import.meta.url).then(t=>({default:t.SubAgentsPanel}))),{Title:$L,Text:wr}=ut,wg={active:{label:"Active",color:"processing"},complete:{label:"Complete",color:"success"},blocked:{label:"Blocked",color:"error"},need_input:{label:"Needs input",color:"warning"},budget_limited:{label:"Budget limited",color:"warning"}},LL=({sessionId:t})=>{var p,y,m,w,b,_,M;const{token:e}=lt.useToken(),n=G(Cr(t)),r=G(C=>C.setInputContent),s=((p=n==null?void 0:n.config)==null?void 0:p.goldConfig)??null,o=((y=n==null?void 0:n.config)==null?void 0:y.goalState)??null,i=((m=(s==null?void 0:s.goal)??(s==null?void 0:s.evaluation_prompt))==null?void 0:m.trim())??"",a=(s==null?void 0:s.enabled)===!0,c=i.length>0,d=((w=o==null?void 0:o.eval_history)==null?void 0:w[o.eval_history.length-1])??null;if(!n||!s||!c&&!a)return null;const f=()=>{const C=c?`/goal ${i}`:"/goal ";r(t,C),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Zl,{detail:{sessionId:t}}))};return l.jsx("div",{"data-testid":"session-goal-card",style:{padding:`${e.paddingXXS}px ${e.paddingXS}px`,borderRadius:e.borderRadiusLG,border:`1px solid ${a?e.colorWarningBorder:e.colorBorderSecondary}`,background:a?e.colorWarningBg:e.colorFillQuaternary},children:l.jsxs(Ce,{vertical:!0,gap:4,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"center",justify:"space-between",gap:8,children:[l.jsxs(Ce,{align:"center",gap:6,style:{minWidth:0},children:[l.jsx(d_,{style:{color:a?e.colorWarning:e.colorTextSecondary}}),l.jsx(wr,{strong:!0,style:{fontSize:12},children:"Goal"})]}),l.jsx(Ae,{size:"small",type:"text",onClick:f,style:{paddingInline:6},children:"Edit /goal"})]}),l.jsx(Ml,{items:[a?"Enabled":"Disabled",s.auto_answer_enabled?"Auto-answer":null,s.auto_continue_enabled?"Auto-continue":null],block:!0}),l.jsx(wr,{style:{fontSize:12,lineHeight:1.45,color:c?e.colorText:e.colorTextSecondary,whiteSpace:"pre-wrap"},children:c?i:"Use /goal <prompt> in the composer to set a session goal."}),o?l.jsxs(Ce,{vertical:!0,gap:4,style:{marginTop:2},children:[l.jsxs(Ce,{align:"center",gap:6,wrap:"wrap",children:[l.jsx(He,{color:((b=wg[o.status])==null?void 0:b.color)??"default",style:{marginInlineEnd:0},children:((_=wg[o.status])==null?void 0:_.label)??o.status}),o.continuation_count>0?l.jsxs(wr,{type:"secondary",style:{fontSize:11},children:[o.continuation_count," continuation",o.continuation_count===1?"":"s"]}):null,(M=o.eval_history)!=null&&M.length?l.jsxs(wr,{type:"secondary",style:{fontSize:11},children:[o.eval_history.length," double-check",o.eval_history.length===1?"":"s"]}):null]}),d?l.jsx(wr,{type:"secondary",style:{fontSize:11,lineHeight:1.4,whiteSpace:"pre-wrap"},children:`Last check [${d.checkpoint}] ${d.decision}/${d.confidence}: ${d.reasoning}`}):null]}):null]})})},DL=({sessionId:t})=>{var m,w;const{token:e}=lt.useToken(),{t:n}=Xe(),r=G(Cr(t)),s=yt(b=>b.providerInstances),o=r==null?void 0:r.config,i=((m=o==null?void 0:o.model_ref)==null?void 0:m.model)??(o==null?void 0:o.model)??null,a=((w=o==null?void 0:o.model_ref)==null?void 0:w.provider)??null,c=v.useMemo(()=>{if(!a)return null;const b=s.find(_=>_.id===a);return b?b.label||b.id:TM[a]??a},[a,s]);if(!r||!i)return null;const d=(o==null?void 0:o.reasoningEffort)??null,f=d?RL[d]??d:"Provider default",p=(o==null?void 0:o.agentRole)??null,y=[{label:"Model",value:i},...c?[{label:"Provider",value:c}]:[],{label:"Reasoning",value:f,muted:!d},...p?[{label:"Role",value:p}]:[]];return l.jsx("div",{"data-testid":"session-config-card",style:{padding:`${e.paddingXXS}px ${e.paddingXS}px`,borderRadius:e.borderRadiusLG,border:`1px solid ${e.colorBorderSecondary}`,background:e.colorFillQuaternary},children:l.jsxs(Ce,{vertical:!0,gap:4,style:{width:"100%",minWidth:0},children:[l.jsxs(Ce,{align:"center",gap:6,style:{minWidth:0},children:[l.jsx(sf,{style:{color:e.colorTextSecondary}}),l.jsx(wr,{strong:!0,style:{fontSize:12},children:n("inspector.configuration","Configuration")})]}),l.jsx(Ce,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:y.map(b=>l.jsxs(Ce,{align:"center",justify:"space-between",gap:8,children:[l.jsx(wr,{type:"secondary",style:{fontSize:12,flexShrink:0},children:b.label}),l.jsx(wr,{style:{fontSize:12,textAlign:"right",color:b.muted?e.colorTextTertiary:e.colorText,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:b.value,children:b.value})]},b.label))})]})})},FL=({sessionId:t,auxReady:e,showMessagesView:n,shouldShowTaskPanel:r,hasSubAgents:s,sessionDiffSummary:o})=>{var y,m,w,b,_,M;const{token:i}=lt.useToken(),a=Dw(C=>C.isAdvanced),c=G(Cr(t)),d=!!((y=c==null?void 0:c.config)!=null&&y.goldConfig&&((((w=(m=c.config.goldConfig.goal??c.config.goldConfig.evaluation_prompt)==null?void 0:m.trim())==null?void 0:w.length)??0)>0||c.config.goldConfig.enabled===!0)),f=!!((_=(b=c==null?void 0:c.config)==null?void 0:b.model_ref)!=null&&_.model||(M=c==null?void 0:c.config)!=null&&M.model),p=v.useMemo(()=>[{key:"goal",title:"Goal",showTitle:!1,visible:d,node:l.jsx(LL,{sessionId:t})},{key:"config",title:"Configuration",showTitle:!1,visible:f,node:l.jsx(DL,{sessionId:t})},{key:"overview",title:"Overview",showTitle:!1,visible:a&&n,node:e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(jL,{sessionId:t,compact:!0})}):null},{key:"tasks",title:"Tasks",showTitle:!1,visible:r,node:e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(IL,{sessionId:t,initialCollapsed:!1,compact:!0})}):null},{key:"agents",title:"Sub-agents",showTitle:!1,visible:s,node:e?l.jsx(st.Suspense,{fallback:null,children:l.jsx(OL,{parentSessionId:t,compact:!0})}):null},{key:"diffs",title:"Diffs",showTitle:!1,visible:!!o,node:l.jsx(vv,{sessionDiffSummary:o,sessionId:t,compact:!0})}].filter(C=>C.visible),[e,f,d,s,a,o,t,r,n]);return p.length===0?l.jsx(Ce,{vertical:!0,align:"center",justify:"center",style:{minHeight:180,color:i.colorTextSecondary,padding:i.paddingLG,textAlign:"center"},children:l.jsx(wr,{type:"secondary",children:"No session details available yet."})}):l.jsx(Ce,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:p.map((C,T)=>l.jsx("section",{style:{width:"100%",minWidth:0,paddingTop:T===0?0:6,borderTop:T===0?"none":`1px solid ${i.colorBorderSecondary}`},children:C.showTitle?l.jsxs(Ce,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsx($L,{level:5,style:{margin:0,fontSize:i.fontSizeLG},children:C.title}),C.node]}):C.node},C.key))})},xg=({sessionId:t,auxReady:e,mode:n,open:r,onOpenChange:s,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:a,sessionDiffSummary:c})=>{const{token:d}=lt.useToken(),{t:f}=Xe(),p=es(),y=ft(_=>_.inspector.widthPx),m=ft(_=>_.inspector.minWidthPx),w=ft(_=>_.inspector.maxWidthPx);if(!t)return null;const b=l.jsx(FL,{sessionId:t,auxReady:e,showMessagesView:o,shouldShowTaskPanel:i,hasSubAgents:a,sessionDiffSummary:c});return n==="drawer"?l.jsx(gc,{title:f("inspector.title","Inspector"),placement:p?"bottom":"right",open:r,onClose:()=>s(!1),width:p?void 0:y,height:p?"85vh":void 0,styles:p?{content:{borderTopLeftRadius:16,borderTopRightRadius:16}}:void 0,children:b}):r?l.jsxs("aside",{"data-session-inspector-pane":!0,style:{width:"100%",minWidth:m,maxWidth:w,height:"100%",minHeight:0,borderLeft:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout,overflow:"auto"},children:[l.jsxs(Ce,{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(Ce,{align:"center",gap:d.marginXS,children:[l.jsx(cf,{}),l.jsx(wr,{strong:!0,children:f("inspector.title","Inspector")})]}),l.jsx(Ae,{type:"text",size:"small",icon:l.jsx($s,{}),"aria-label":"Close inspector",onClick:()=>s(!1)})]}),l.jsx("div",{style:{padding:`6px ${d.paddingSM}px ${d.paddingSM}px`,minWidth:0},children:b})]}):null},NL=({sessionId:t,embedded:e=!1,paneCount:n=1,workspaceState:r})=>{var Y,ce,L;const s=n,o=es(),i=G(oe=>t??oe.currentSessionId),a=G(Cr(i)),c=v.useMemo(()=>(a==null?void 0:a.messages)||[],[a]),d=G(oe=>oe.loadTaskList),f=Dw(oe=>oe.isAdvanced),p=v.useMemo(()=>!i||!a?i:a.kind==="child"&&(a.parentSessionId||a.rootSessionId)||i,[a,i]),y=G(oe=>p?!!oe.taskLists[p]:!1),m=G(Ta(i)),w=v.useMemo(()=>!i||!a?!1:!!(y||a.kind==="child"||m),[a,y,m,i]),b=G(oe=>{if(!i)return!1;const Se=yc(i)(oe);return Object.keys(Se).length>0?!0:oe.chats.some(J=>J.kind==="child"&&J.parentSessionId===i)});v.useEffect(()=>{!p||y||w&&d(p).catch(oe=>{console.warn(`[SessionWorkspaceShell] Failed to load task list for ${p}:`,oe)})},[p,y,w,d]);const _=v.useMemo(()=>{var de;if(!c||c.length===0)return null;const oe=new Map;let Se=0,J=0,te=0;for(const me of c){if(!Tv(me))continue;const ge=((de=me.result)==null?void 0:de.result)??"",le=To(ge),ke=Ff(ge);if(!le||!ke)continue;te+=1,Se+=ke.added,J+=ke.removed;const je=oe.get(le.file_path);je?(je.added+=ke.added,je.removed+=ke.removed,je.diffChunks.push(le.diff.unified),je.truncated=je.truncated||!!le.diff.truncated,je.toolCount+=1,je.workspace=je.workspace??le.workspace):oe.set(le.file_path,{added:ke.added,removed:ke.removed,diffChunks:[le.diff.unified],truncated:!!le.diff.truncated,toolCount:1,workspace:le.workspace})}if(oe.size===0)return null;const he=Array.from(oe.entries()).map(([me,ge])=>({filePath:me,added:ge.added,removed:ge.removed,unifiedDiff:ge.diffChunks.join(`
246
246
 
247
- `),truncated:ge.truncated,toolCount:ge.toolCount,workspace:ge.workspace})).sort((me,ge)=>me.filePath.localeCompare(ge.filePath));return{totalAdded:Se,totalRemoved:J,files:he,changedTools:te}},[c]),M=ft(oe=>oe.inspector.widthPx),C=ft(oe=>oe.inspector.minWidthPx),T=ft(oe=>oe.inspector.maxWidthPx),k=ft(oe=>oe.setInspectorWidthPx),P=c.length>0,A=!!((Y=a==null?void 0:a.config)!=null&&Y.goldConfig&&((((L=(ce=a.config.goldConfig.evaluation_prompt)==null?void 0:ce.trim())==null?void 0:L.length)??0)>0||a.config.goldConfig.enabled===!0)),j=v.useMemo(()=>r||hh({isEmbedded:e,leafCount:s,isMobileViewport:o}),[e,o,s,r]),$=j.inspectorMode,F=!!(i&&(f&&P||A||w||y||_)),X=!!i&&($==="drawer"||F),[K,O]=v.useState(()=>$==="rail"),[W,ae]=v.useState(!1);return v.useEffect(()=>{O($==="rail"?F:!1)},[F,$,i]),v.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Se=requestIdleCallback(()=>ae(!0));return()=>cancelIdleCallback(Se)}const oe=window.setTimeout(()=>ae(!0),300);return()=>window.clearTimeout(oe)},[]),v.useEffect(()=>{if(typeof window>"u"||!i)return;const oe=Se=>{var he;(((he=Se.detail)==null?void 0:he.sessionId)??null)===i&&O(!0)};return window.addEventListener(kd,oe),()=>{window.removeEventListener(kd,oe)}},[i]),l.jsx("div",{"data-session-workspace-shell":!0,"data-inspector-mode":$,"data-multi-pane":j.isMultiPane?"true":"false","data-inspector-toggle-placement":j.inspectorTogglePlacement,style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Ce,{style:{flex:1,minHeight:0},children:X&&$==="rail"&&K?l.jsx($f,{layout:"horizontal",sizesPx:[0,M],minFirstPx:360,minSecondPx:C,maxSecondPx:T,maxSecondFraction:.4,style:{flex:1,minHeight:0},handleSizePx:4,onResizeEnd:([,oe])=>{const Se=Math.max(C,Math.min(T,oe));k(Se)},first:l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(bg,{sessionId:i,embedded:e,paneCount:s,auxReady:W,sessionDiffSummary:_,workspaceState:j,inspectorEligible:F,onRequestOpenInspector:()=>O(!0)})}),second:l.jsx(wg,{sessionId:i,auxReady:W,mode:$,open:K,onOpenChange:O,showMessagesView:P,shouldShowTaskPanel:w,hasSubAgents:y,sessionDiffSummary:_})}):l.jsxs(l.Fragment,{children:[l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(bg,{sessionId:i,embedded:e,paneCount:s,auxReady:W,sessionDiffSummary:_,workspaceState:j,inspectorEligible:F,onRequestOpenInspector:()=>O(!0)})}),X?l.jsx(wg,{sessionId:i,auxReady:W,mode:$,open:K,onOpenChange:O,showMessagesView:P,shouldShowTaskPanel:w,hasSubAgents:y,sessionDiffSummary:_}):null]})})})},LL=({sessionId:t,embedded:e=!1,paneCount:n=1,workspaceState:r})=>l.jsx($L,{sessionId:t,embedded:e,paneCount:n,workspaceState:r}),DL=st.lazy(()=>Ft(()=>import("./HomeDashboard-D_ShmJs6.js"),__vite__mapDeps([24,1,2,3,4,5,6,25]),import.meta.url).then(t=>({default:t.HomeDashboard}))),{useToken:FL}=lt,{Text:NL}=ut,zL=4,BL=({leafId:t})=>{var ce;const{token:e}=FL(),{t:n}=Xe(),r=ft(L=>L.tree),s=ft(L=>L.leafSessionIds),o=ft(L=>L.activeLeafId),i=ft(L=>L.setActiveLeafId),a=ft(L=>L.splitLeaf),c=ft(L=>L.closeLeaf),d=ft(L=>L.setLeafSessionId),f=G(L=>L.selectSession),p=G(L=>L.addChat),b=G(L=>L.systemPrompts),m=G(L=>L.lastSelectedPromptId),w=s[t]??null,y=G(Cr(w)),_=v.useMemo(()=>Hn(r),[r]),M=_.length,C=Math.max(0,_.indexOf(t))+1,T=M<zL,k=qy("(max-width: 768px)"),P=v.useMemo(()=>hh({isEmbedded:!0,leafCount:M,isMobileViewport:k}),[k,M]),A=P.isMultiPane,$=A||!!w,F=P.isMultiPane,X=o===t,K=((ce=y==null?void 0:y.title)==null?void 0:ce.trim())||n("chat.multiPane.selectSessionHint"),O=!k,W=P.inspectorTogglePlacement==="pane_header"&&!!w,ae=v.useCallback(L=>{d(t,L),i(t),f(L)},[t,f,i,d]),Y=v.useCallback(async()=>{var J,te;const L=b.find(he=>he.id===m),oe=(L==null?void 0:L.id)||(b.length>0?((J=b.find(he=>he.id==="general_assistant"))==null?void 0:J.id)||b[0].id:""),Se=await p({title:n("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:oe,baseSystemPrompt:(L==null?void 0:L.content)||(b.length>0?((te=b.find(he=>he.id==="general_assistant"))==null?void 0:te.content)||b[0].content:""),lastUsedEnhancedPrompt:null}});d(t,Se),i(t)},[p,m,b,n,t,d,i]);return l.jsxs("div",{className:"chat-pane-shell",onMouseDownCapture:()=>{Un("pane focus (mouse)",{leafId:t,sessionId:w,prevActiveLeafId:o}),i(t),w&&f(w)},onFocusCapture:()=>{Un("pane focus (focus)",{leafId:t,sessionId:w,prevActiveLeafId:o}),i(t)},style:{height:"100%",minHeight:0,border:F?`1px solid ${X?e.colorPrimaryBorder:e.colorBorderSecondary}`:"none",borderRadius:F?e.borderRadiusLG:0,overflow:"hidden",background:e.colorBgContainer,position:"relative"},children:[O?l.jsx("div",{className:"chat-pane-shell__header",style:{padding:`${e.paddingXS}px ${e.paddingSM}px`,borderBottom:`1px solid ${e.colorBorderSecondary}`,background:F?e.colorBgElevated:e.colorBgContainer},children:l.jsxs(Ce,{align:"center",justify:"space-between",gap:e.marginSM,style:{minWidth:0},children:[l.jsxs(Ce,{align:"center",gap:e.marginXS,style:{minWidth:0,flex:1},children:[F?l.jsx(He,{color:X?"blue":"default",style:{marginInlineEnd:0},children:n("chat.multiPane.paneLabel",{index:C,defaultValue:"Pane {{index}}"})}):null,l.jsx("div",{className:"chat-pane-shell__title",children:l.jsx(NL,{strong:!!w,type:w?void 0:"secondary",ellipsis:{tooltip:K},children:K})})]}),l.jsxs(Ce,{className:"chat-pane-shell__actions",align:"center",gap:4,children:[l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(c_,{}),disabled:!T,title:n("chat.multiPane.splitHorizontal"),"aria-label":n("chat.multiPane.splitHorizontal"),onClick:L=>{L.preventDefault(),L.stopPropagation(),Un("pane split request",{leafId:t,layout:"horizontal"}),a(t,"horizontal");const oe=ft.getState(),Se=oe.leafSessionIds[oe.activeLeafId]??null;Se&&f(Se)}}),l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(u_,{}),disabled:!T,title:n("chat.multiPane.splitVertical"),"aria-label":n("chat.multiPane.splitVertical"),onClick:L=>{L.preventDefault(),L.stopPropagation(),Un("pane split request",{leafId:t,layout:"vertical"}),a(t,"vertical");const oe=ft.getState(),Se=oe.leafSessionIds[oe.activeLeafId]??null;Se&&f(Se)}}),l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(Hy,{}),disabled:!w,title:n("chat.multiPane.selectMessagesToExport"),"aria-label":n("chat.multiPane.selectMessagesToExport"),onClick:L=>{L.preventDefault(),L.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(Cd,{detail:{sessionId:w}}))}}),W?l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(cf,{}),title:n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),"aria-label":n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),onClick:L=>{L.preventDefault(),L.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(kd,{detail:{sessionId:w}}))}}):null,l.jsx(Ae,{size:"small",type:"text",danger:!0,icon:l.jsx($s,{}),disabled:!$,title:n("chat.multiPane.closePane"),"aria-label":n("chat.multiPane.closePane"),onClick:L=>{L.preventDefault(),L.stopPropagation(),Un("pane close request",{leafId:t}),A?c(t):d(t,null);const oe=ft.getState(),Se=oe.leafSessionIds[oe.activeLeafId]??null;f(Se)}})]})]})}):null,l.jsx("div",{className:"chat-pane-shell__content",children:w?l.jsx(ga,{name:"ChatView",children:l.jsx(LL,{sessionId:w,embedded:!0,paneCount:M,workspaceState:P})}):l.jsx(ga,{name:"HomeDashboard",children:l.jsx(st.Suspense,{fallback:null,children:l.jsx(DL,{onOpenSession:ae,onCreateSession:Y})})})})]})},WL=({node:t})=>{const e=ft(r=>r.splitSizesPx[t.id]??null),n=ft(r=>r.setSplitSizesPx);return l.jsx($f,{layout:t.layout,sizesPx:e,defaultSplitRatio:.5,minFirstPx:240,minSecondPx:240,style:{height:"100%",minHeight:0},onResizeEnd:r=>{n(t.id,r)},first:l.jsx(Gd,{node:t.children[0]}),second:l.jsx(Gd,{node:t.children[1]})})},Gd=({node:t})=>t.type==="leaf"?l.jsx(BL,{leafId:t.id}):l.jsx(WL,{node:t}),xg=()=>{const t=ft(f=>f.tree),e=ft(f=>f.leafSessionIds),n=ft(f=>f.activeLeafId),r=ft(f=>f.setActiveLeafId),s=ft(f=>f.setLeafSessionId),o=G(f=>f.chats.map(p=>p.id).join(",")),i=v.useMemo(()=>new Set(o.split(",")),[o]),a=G(f=>f.currentSessionId),c=v.useRef(!1),d=v.useMemo(()=>Hn(t),[t]);return v.useEffect(()=>{d.length!==0&&(d.includes(n)||r(d[0]))},[n,d,r]),v.useEffect(()=>{const f=new Set(Object.values(e).filter(Boolean));let p=!1;for(const b of f)if(!i.has(b)){p=!0;break}if(p)for(const[b,m]of Object.entries(e))m&&!i.has(m)&&s(b,null)},[i,e,s]),v.useEffect(()=>{if(!a||c.current)return;if(!Object.values(e).some(Boolean)){s(n,a),c.current=!0;return}c.current=!0},[n,a,e,s]),l.jsx("div",{style:{height:"100%",minHeight:0,padding:0},children:l.jsx(Gd,{node:t})})},UL=st.lazy(()=>Ft(()=>import("./SystemSettingsPage-DCPj52UZ.js"),__vite__mapDeps([26,1,2,3,4,5,6,27]),import.meta.url).then(t=>({default:t.SystemSettingsPage}))),HL=st.lazy(()=>Ft(()=>import("./CommandPalette-Cfw_1q71.js"),__vite__mapDeps([28,1,2,3,4,5,6,29]),import.meta.url).then(t=>({default:t.CommandPalette}))),qL=st.lazy(()=>Ft(()=>import("./main-Cdq9RMfb.js").then(t=>t.F),__vite__mapDeps([5,4,3,2,1,6]),import.meta.url).then(t=>({default:t.FeatureGuide}))),_g="bodhi_open_provider_on_entry",KL="__LOTUS_COMMAND_PALETTE_FORCE_OPEN__",XL=()=>(WE(),null),YL=({themeMode:t,onThemeModeChange:e,locale:n,onLocaleChange:r})=>{const s=sa(O=>O.isOpen),o=sa(O=>O.close),{t:i}=Xe(),{token:a}=lt.useToken(),c=Tf(),d=v.useMemo(()=>nv()==="macos",[]);v.useEffect(()=>{localStorage.getItem(_g)==="true"&&(localStorage.removeItem(_g),sa.getState().open("chat","provider"))},[]),aT(),v.useEffect(()=>{Tp.clear(),Ep()},[t]),v.useEffect(()=>{Tp.clear(),Ep()},[c]);const f=ft(O=>O.sidebar.collapsed),p=ft(O=>O.sidebar.widthPx),b=ft(O=>O.sidebar.minWidthPx),m=ft(O=>O.sidebar.maxWidthPx),w=ft(O=>O.setSidebarCollapsed),y=ft(O=>O.setSidebarWidthPx),_=18,M=0,T=!s&&f&&d?44:M,k=0,P=88,A=10,j="none",$=Zr(),F="min(94vw, 460px)",[X,K]=v.useState(!1);return v.useEffect(()=>{if(typeof requestIdleCallback=="function"){const W=requestIdleCallback(()=>K(!0));return()=>cancelIdleCallback(W)}const O=window.setTimeout(()=>K(!0),200);return()=>window.clearTimeout(O)},[]),v.useEffect(()=>{const O=W=>{!((W.metaKey||W.ctrlKey)&&W.key.toLowerCase()==="k")||X||(W.preventDefault(),window[KL]=!0,K(!0))};return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[X]),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:i("app.skipToContent","Skip to main content")}),X&&l.jsx(st.Suspense,{fallback:null,children:l.jsx(HL,{})}),X&&l.jsx(st.Suspense,{fallback:null,children:l.jsx(qL,{disabled:s})}),X&&l.jsx(XL,{}),l.jsx(ro,{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:T,paddingLeft:M,paddingRight:M,paddingBottom:M,background:"transparent"},children:[s?l.jsx(ro,{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:j,overflow:"hidden"},children:l.jsx(ga,{name:"SystemSettings",children:l.jsx(st.Suspense,{fallback:l.jsx("div",{style:{padding:24,color:"var(--ant-color-text-secondary)"},children:i("app.loading","Loading…")}),children:l.jsx(UL,{themeMode:t,onThemeModeChange:e,locale:n,onLocaleChange:r,onBack:o})})})}):l.jsx(l.Fragment,{children:$?l.jsxs(l.Fragment,{children:[l.jsx(gc,{placement:"left",closable:!1,onClose:()=>w(!0),open:!f,width:F,styles:{body:{padding:0,background:"var(--lotus-sidebar-bg)"}},children:l.jsx(_p,{})}),l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{flex:1,height:"100%",minHeight:0,borderRadius:`${_}px`,border:j,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(ro,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(xg,{})})})]}):l.jsx($f,{layout:"horizontal",style:{flex:1,minHeight:0,height:"100%",background:"transparent"},sizesPx:[f?k:p,0],minFirstPx:f?k:b,minSecondPx:320,disabled:f,handleSizePx:f?0:2,onResizeEnd:([O])=>{if(f)return;const W=Math.max(b,Math.min(m,O));y(W)},first:l.jsx("div",{className:"lotus-shell-panel lotus-shell-sidebar",style:{height:"100%",minHeight:0,borderRadius:`${_}px 0 0 ${_}px`,border:j,overflow:"hidden",background:"var(--lotus-sidebar-bg)"},children:l.jsx(_p,{})}),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:j,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(ro,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(xg,{})})})})}),!s&&f?l.jsx(Ae,{"data-testid":"show-sidebar",type:"text",size:"small",icon:l.jsx(d_,{}),onClick:()=>w(!1),title:i("layout.showSidebar"),"aria-label":i("layout.showSidebar"),className:"lotus-toolbar-icon lotus-floating-sidebar-toggle",style:{position:"absolute",top:$?8:A,left:$?8:P,zIndex:40,width:36,height:36,borderRadius:12,border:`1px solid ${a.colorBorderSecondary}`,background:a.colorBgElevated,boxShadow:a.boxShadowSecondary}}):null]})})]})},VL="bodhi_open_provider_on_entry",{Title:Cg,Paragraph:kg}=ut,GL=()=>{const{t}=Xe(),[e,n]=v.useState(!1),[r,s]=v.useState(null),[o,i]=v.useState(!1),a=async c=>{try{s(null),i(!0),await vo.getInstance().markSetupComplete(),c&&localStorage.setItem(VL,"true"),n(!0)}catch(d){console.error("Failed to complete setup:",d),s(t("setup.error.completeFailed"))}finally{i(!1)}};return e?l.jsxs("div",{"data-testid":"setup-complete",className:"setup-complete",children:[l.jsx(Cg,{level:2,children:t("setup.complete.title")}),l.jsx(kg,{children:t("setup.complete.restartMessage")}),l.jsx(Ae,{"data-testid":"setup-restart",onClick:()=>window.location.reload(),children:t("setup.complete.restartMessage")})]}):l.jsx("div",{className:"setup-page",children:l.jsxs(Ut,{className:"setup-page__card",children:[l.jsxs("div",{className:"setup-page__hero",children:[l.jsx("div",{className:"setup-page__hero-icon",children:l.jsx(Wh,{})}),l.jsx(Cg,{level:2,style:{marginTop:0},children:t("setup.welcome.heading")}),l.jsx(kg,{type:"secondary",children:t("setup.welcome.description")})]}),l.jsx(rr,{message:t("setup.welcome.providerHint"),type:"info",showIcon:!0,style:{marginBottom:16}}),l.jsx(rr,{message:t("setup.welcome.proxyHint"),type:"info",showIcon:!0,style:{marginBottom:24}}),r?l.jsx(rr,{message:r,type:"error",showIcon:!0,style:{marginBottom:16}}):null,l.jsxs("div",{className:"setup-page__actions",children:[l.jsx(Ae,{"data-testid":"setup-configure-provider",icon:l.jsx(hc,{}),onClick:()=>void a(!0),loading:o,children:t("setup.button.configureProvider")}),l.jsx(Ae,{"data-testid":"setup-get-started",type:"primary",icon:l.jsx(Wh,{}),onClick:()=>void a(!1),loading:o,children:t("setup.button.getStarted")})]})]})})},{Title:JL,Text:Tg}=ut,QL=({onVerified:t,verifyPassword:e})=>{const{t:n}=Xe(),[r,s]=v.useState(""),[o,i]=v.useState(null),[a,c]=v.useState(!1),d=async()=>{const f=r.trim();if(!f){i(n("app.passwordGate.validation.required"));return}c(!0),i(null);try{await e(f),await t(),s("")}catch(p){const b=p instanceof Error?p.message:n("app.passwordGate.validation.verifyFailed");i(b)}finally{c(!1)}};return l.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:l.jsx(Ut,{style:{width:"100%",maxWidth:480},children:l.jsxs(We,{direction:"vertical",size:20,style:{width:"100%"},children:[l.jsxs("div",{children:[l.jsx(JL,{level:3,style:{marginBottom:8},children:n("app.passwordGate.title")}),l.jsx(Tg,{type:"secondary",children:n("app.passwordGate.description")})]}),o?l.jsx(rr,{type:"error",showIcon:!0,message:o}):null,l.jsxs(We,{direction:"vertical",size:8,style:{width:"100%"},children:[l.jsx(Tg,{strong:!0,children:n("app.passwordGate.passwordLabel")}),l.jsx(Ls.Password,{value:r,autoFocus:!0,autoComplete:"current-password",onChange:f=>s(f.target.value),onPressEnter:()=>void d(),placeholder:n("app.passwordGate.passwordPlaceholder")})]}),l.jsx(Ae,{type:"primary",block:!0,loading:a,onClick:()=>void d(),children:n("app.passwordGate.submit")})]})})})};var ri={},Bu={exports:{}},Eg;function $t(){return Eg||(Eg=1,function(t){function e(n){return n&&n.__esModule?n:{default:n}}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports}(Bu)),Bu.exports}var si={},Pg;function ZL(){if(Pg)return si;Pg=1,Object.defineProperty(si,"__esModule",{value:!0}),si.default=void 0;var t={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 si.default=t,si}var oi={},ii={},ai={},Wu={exports:{}},Uu={exports:{}},Hu={exports:{}},qu={exports:{}},Mg;function eD(){return Mg||(Mg=1,function(t){var e=Ay().default;function n(r,s){if(e(r)!="object"||!r)return r;var o=r[Symbol.toPrimitive];if(o!==void 0){var i=o.call(r,s||"default");if(e(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(r)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}(qu)),qu.exports}var Ag;function tD(){return Ag||(Ag=1,function(t){var e=Ay().default,n=eD();function r(s){var o=n(s,"string");return e(o)=="symbol"?o:o+""}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(Hu)),Hu.exports}var Rg;function nD(){return Rg||(Rg=1,function(t){var e=tD();function n(r,s,o){return(s=e(s))in r?Object.defineProperty(r,s,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[s]=o,r}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}(Uu)),Uu.exports}var jg;function Eo(){return jg||(jg=1,function(t){var e=nD();function n(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(s);o&&(a=a.filter(function(c){return Object.getOwnPropertyDescriptor(s,c).enumerable})),i.push.apply(i,a)}return i}function r(s){for(var o=1;o<arguments.length;o++){var i=arguments[o]!=null?arguments[o]:{};o%2?n(Object(i),!0).forEach(function(a){e(s,a,i[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach(function(a){Object.defineProperty(s,a,Object.getOwnPropertyDescriptor(i,a))})}return s}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(Wu)),Wu.exports}var li={},Ig;function Po(){return Ig||(Ig=1,Object.defineProperty(li,"__esModule",{value:!0}),li.commonLocale=void 0,li.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}),li}var Og;function rD(){if(Og)return ai;Og=1;var t=$t().default;Object.defineProperty(ai,"__esModule",{value:!0}),ai.default=void 0;var e=t(Eo()),n=Po(),r=(0,e.default)((0,e.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 ai.default=r,ai}var ci={},$g;function $w(){if($g)return ci;$g=1,Object.defineProperty(ci,"__esModule",{value:!0}),ci.default=void 0;const t={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};return ci.default=t,ci}var Lg;function Lw(){if(Lg)return ii;Lg=1;var t=$t().default;Object.defineProperty(ii,"__esModule",{value:!0}),ii.default=void 0;var e=t(rD()),n=t($w());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"]},e.default),timePickerLocale:Object.assign({},n.default)};return ii.default=r,ii}var Dg;function sD(){if(Dg)return oi;Dg=1;var t=$t().default;Object.defineProperty(oi,"__esModule",{value:!0}),oi.default=void 0;var e=t(Lw());return oi.default=e.default,oi}var Fg;function oD(){if(Fg)return ri;Fg=1;var t=$t().default;Object.defineProperty(ri,"__esModule",{value:!0}),ri.default=void 0;var e=t(ZL()),n=t(sD()),r=t(Lw()),s=t($w());const o="${label} is not a valid ${type}",i={locale:"en",Pagination:e.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 ri.default=i,ri}var Ku,Ng;function iD(){return Ng||(Ng=1,Ku=oD()),Ku}var aD=iD();const lD=Os(aD);var ui={},di={},zg;function cD(){if(zg)return di;zg=1,Object.defineProperty(di,"__esModule",{value:!0}),di.default=void 0;var t={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 di.default=t,di}var fi={},hi={},pi={},Bg;function uD(){if(Bg)return pi;Bg=1;var t=$t().default;Object.defineProperty(pi,"__esModule",{value:!0}),pi.default=void 0;var e=t(Eo()),n=Po(),r=(0,e.default)((0,e.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 pi.default=r,pi}var mi={},Wg;function Dw(){if(Wg)return mi;Wg=1,Object.defineProperty(mi,"__esModule",{value:!0}),mi.default=void 0;const t={placeholder:"Sélectionner l'heure",rangePlaceholder:["Heure de début","Heure de fin"]};return mi.default=t,mi}var Ug;function Fw(){if(Ug)return hi;Ug=1;var t=$t().default;Object.defineProperty(hi,"__esModule",{value:!0}),hi.default=void 0;var e=t(uD()),n=t(Dw());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"]},e.default),timePickerLocale:Object.assign({},n.default)};return hi.default=r,hi}var Hg;function dD(){if(Hg)return fi;Hg=1;var t=$t().default;Object.defineProperty(fi,"__esModule",{value:!0}),fi.default=void 0;var e=t(Fw());return fi.default=e.default,fi}var qg;function fD(){if(qg)return ui;qg=1;var t=$t().default;Object.defineProperty(ui,"__esModule",{value:!0}),ui.default=void 0;var e=t(cD()),n=t(dD()),r=t(Fw()),s=t(Dw());const o="La valeur du champ ${label} n'est pas valide pour le type ${type}",i={locale:"fr",Pagination:e.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 ui.default=i,ui}var Xu,Kg;function hD(){return Kg||(Kg=1,Xu=fD()),Xu}var pD=hD();const mD=Os(pD);var gi={},yi={},Xg;function gD(){if(Xg)return yi;Xg=1,Object.defineProperty(yi,"__esModule",{value:!0}),yi.default=void 0;var t={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 yi.default=t,yi}var bi={},vi={},Si={},Yg;function yD(){if(Yg)return Si;Yg=1;var t=$t().default;Object.defineProperty(Si,"__esModule",{value:!0}),Si.default=void 0;var e=t(Eo()),n=Po(),r=(0,e.default)((0,e.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 Si.default=r,Si}var wi={},Vg;function Nw(){if(Vg)return wi;Vg=1,Object.defineProperty(wi,"__esModule",{value:!0}),wi.default=void 0;const t={placeholder:"समय का चयन करें",rangePlaceholder:["आरंभिक समय","अंत समय"]};return wi.default=t,wi}var Gg;function zw(){if(Gg)return vi;Gg=1;var t=$t().default;Object.defineProperty(vi,"__esModule",{value:!0}),vi.default=void 0;var e=t(yD()),n=t(Nw());const r={lang:Object.assign({placeholder:"तारीख़ चुनें",yearPlaceholder:"वर्ष चुनें",quarterPlaceholder:"तिमाही चुनें",monthPlaceholder:"महीना चुनिए",weekPlaceholder:"सप्ताह चुनें",rangePlaceholder:["प्रारंभ तिथि","समाप्ति तिथि"],rangeYearPlaceholder:["आरंभिक वर्ष","अंत वर्ष"],rangeMonthPlaceholder:["आरंभिक महीना","अंत महीना"],rangeWeekPlaceholder:["आरंभिक सप्ताह","अंत सप्ताह"]},e.default),timePickerLocale:Object.assign({},n.default)};return vi.default=r,vi}var Jg;function bD(){if(Jg)return bi;Jg=1;var t=$t().default;Object.defineProperty(bi,"__esModule",{value:!0}),bi.default=void 0;var e=t(zw());return bi.default=e.default,bi}var Qg;function vD(){if(Qg)return gi;Qg=1;var t=$t().default;Object.defineProperty(gi,"__esModule",{value:!0}),gi.default=void 0;var e=t(gD()),n=t(bD()),r=t(zw()),s=t(Nw());const o="${label} मान्य ${type} नहीं है",i={locale:"hi",Pagination:e.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 gi.default=i,gi}var Yu,Zg;function SD(){return Zg||(Zg=1,Yu=vD()),Yu}var wD=SD();const xD=Os(wD);var xi={},_i={},ey;function _D(){if(ey)return _i;ey=1,Object.defineProperty(_i,"__esModule",{value:!0}),_i.default=void 0;var t={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 _i.default=t,_i}var Ci={},ki={},Ti={},ty;function CD(){if(ty)return Ti;ty=1;var t=$t().default;Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.default=void 0;var e=t(Eo()),n=Po(),r=(0,e.default)((0,e.default)({},n.commonLocale),{},{locale:"ja_JP",today:"今日",now:"現在時刻",backToToday:"今日に戻る",ok:"確定",timeSelect:"時間を選択",dateSelect:"日時を選択",weekSelect:"週を選択",clear:"クリア",week:"週",month:"月",year:"年",previousMonth:"前月 (ページアップキー)",nextMonth:"翌月 (ページダウンキー)",monthSelect:"月を選択",yearSelect:"年を選択",decadeSelect:"年代を選択",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"前年 (Controlを押しながら左キー)",nextYear:"翌年 (Controlを押しながら右キー)",previousDecade:"前の年代",nextDecade:"次の年代",previousCentury:"前の世紀",nextCentury:"次の世紀",monthBeforeYear:!1});return Ti.default=r,Ti}var Ei={},ny;function Bw(){if(ny)return Ei;ny=1,Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.default=void 0;const t={placeholder:"時間を選択",rangePlaceholder:["開始時間","終了時間"]};return Ei.default=t,Ei}var ry;function Ww(){if(ry)return ki;ry=1;var t=$t().default;Object.defineProperty(ki,"__esModule",{value:!0}),ki.default=void 0;var e=t(CD()),n=t(Bw());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月"]},e.default),timePickerLocale:Object.assign({},n.default)};return ki.default=r,ki}var sy;function kD(){if(sy)return Ci;sy=1;var t=$t().default;Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.default=void 0;var e=t(Ww());return Ci.default=e.default,Ci}var oy;function TD(){if(oy)return xi;oy=1;var t=$t().default;Object.defineProperty(xi,"__esModule",{value:!0}),xi.default=void 0;var e=t(_D()),n=t(kD()),r=t(Ww()),s=t(Bw());const o="${label}は有効な${type}ではありません",i={locale:"ja",Pagination:e.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 xi.default=i,xi}var Vu,iy;function ED(){return iy||(iy=1,Vu=TD()),Vu}var PD=ED();const MD=Os(PD);var Pi={},Mi={},ay;function AD(){if(ay)return Mi;ay=1,Object.defineProperty(Mi,"__esModule",{value:!0}),Mi.default=void 0;var t={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 Mi.default=t,Mi}var Ai={},Ri={},ji={},ly;function RD(){if(ly)return ji;ly=1;var t=$t().default;Object.defineProperty(ji,"__esModule",{value:!0}),ji.default=void 0;var e=t(Eo()),n=Po(),r=(0,e.default)((0,e.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 ji.default=r,ji}var Ii={},cy;function Uw(){if(cy)return Ii;cy=1,Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.default=void 0;const t={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};return Ii.default=t,Ii}var uy;function Hw(){if(uy)return Ri;uy=1;var t=$t().default;Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.default=void 0;var e=t(RD()),n=t(Uw());const r={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},e.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="确定",Ri.default=r,Ri}var dy;function jD(){if(dy)return Ai;dy=1;var t=$t().default;Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.default=void 0;var e=t(Hw());return Ai.default=e.default,Ai}var fy;function ID(){if(fy)return Pi;fy=1;var t=$t().default;Object.defineProperty(Pi,"__esModule",{value:!0}),Pi.default=void 0;var e=t(AD()),n=t(jD()),r=t(Hw()),s=t(Uw());const o="${label}不是一个有效的${type}",i={locale:"zh-cn",Pagination:e.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 Pi.default=i,Pi}var Gu,hy;function OD(){return hy||(hy=1,Gu=ID()),Gu}var $D=OD();const LD=Os($D);var Oi={},$i={},py;function DD(){if(py)return $i;py=1,Object.defineProperty($i,"__esModule",{value:!0}),$i.default=void 0;var t={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 $i.default=t,$i}var Li={},Di={},Fi={},my;function FD(){if(my)return Fi;my=1;var t=$t().default;Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.default=void 0;var e=t(Eo()),n=Po(),r=(0,e.default)((0,e.default)({},n.commonLocale),{},{locale:"zh_TW",today:"今天",now:"此刻",backToToday:"返回今天",ok:"確定",timeSelect:"選擇時間",dateSelect:"選擇日期",weekSelect:"選擇周",clear:"清除",week:"週",month:"月",year:"年",previousMonth:"上個月 (翻頁上鍵)",nextMonth:"下個月 (翻頁下鍵)",monthSelect:"選擇月份",yearSelect:"選擇年份",decadeSelect:"選擇年代",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"上一年 (Control鍵加左方向鍵)",nextYear:"下一年 (Control鍵加右方向鍵)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世紀",nextCentury:"下一世紀",cellDateFormat:"D",monthBeforeYear:!1});return Fi.default=r,Fi}var Ni={},gy;function qw(){if(gy)return Ni;gy=1,Object.defineProperty(Ni,"__esModule",{value:!0}),Ni.default=void 0;const t={placeholder:"請選擇時間"};return Ni.default=t,Ni}var yy;function Kw(){if(yy)return Di;yy=1;var t=$t().default;Object.defineProperty(Di,"__esModule",{value:!0}),Di.default=void 0;var e=t(FD()),n=t(qw());const r={lang:Object.assign({placeholder:"請選擇日期",yearPlaceholder:"請選擇年份",quarterPlaceholder:"請選擇季度",monthPlaceholder:"請選擇月份",weekPlaceholder:"請選擇周",rangePlaceholder:["開始日期","結束日期"],rangeYearPlaceholder:["開始年份","結束年份"],rangeMonthPlaceholder:["開始月份","結束月份"],rangeQuarterPlaceholder:["開始季度","結束季度"],rangeWeekPlaceholder:["開始周","結束周"]},e.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="確 定",Di.default=r,Di}var by;function ND(){if(by)return Li;by=1;var t=$t().default;Object.defineProperty(Li,"__esModule",{value:!0}),Li.default=void 0;var e=t(Kw());return Li.default=e.default,Li}var vy;function zD(){if(vy)return Oi;vy=1;var t=$t().default;Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.default=void 0;var e=t(DD()),n=t(ND()),r=t(Kw()),s=t(qw());const o="${label}不是一個有效的${type}",i={locale:"zh-tw",Pagination:e.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 Oi.default=i,Oi}var Ju,Sy;function BD(){return Sy||(Sy=1,Ju=zD()),Ju}var WD=BD();const UD=Os(WD),wy=t=>{switch(t){case"zh-CN":return LD;case"zh-TW":return UD;case"fr-FR":return mD;case"ja-JP":return MD;case"hi-IN":return xD;default:return lD}},Xw="lotus_vdi_safe_mode",xy=()=>{try{return localStorage.getItem(Xw)==="true"}catch{return!1}},DF=t=>{try{localStorage.setItem(Xw,t.toString())}catch(e){console.error("[vdiSafeMode] Failed to persist setting:",e)}},Yw={colorPrimary:"#157f6b",colorPrimaryHover:"#1b9a82",colorPrimaryActive:"#0f5f51",colorInfo:"#2b6e8f",colorLink:"#157f6b",colorLinkHover:"#1b9a82",colorLinkActive:"#0f5f51",colorSuccess:"#2e9e6f",colorWarning:"#c08a2e",colorError:"#d24b3c",colorText:"#0f172a",colorTextSecondary:"#475569",colorTextTertiary:"#64748b",colorTextDisabled:"#94a3b8",colorTextLightSolid:"#ffffff",colorBorder:"#d1e3e0",colorBorderSecondary:"#e2f0ee",colorFill:"#f0fdfa",colorFillSecondary:"#f7fdfb",colorFillTertiary:"rgba(255, 255, 255, 0.82)",colorFillQuaternary:"transparent",colorBgLayout:"#eef5f1",colorBgContainer:"rgba(255, 255, 255, 0.82)",colorBgElevated:"rgba(255, 255, 255, 0.9)",colorBgSpotlight:"rgba(21, 127, 107, 0.16)",colorPrimaryBg:"#e6f1ec",colorPrimaryBgHover:"#cfe6dd",colorPrimaryBorder:"#9fd0c1",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 12px 36px rgba(15, 118, 110, 0.10), 0 6px 18px rgba(15, 23, 42, 0.06)",boxShadowSecondary:"0 20px 48px rgba(15, 118, 110, 0.12), 0 8px 24px rgba(15, 23, 42, 0.08)"},Vw={colorPrimary:"#46c2a0",colorPrimaryHover:"#6ad7b8",colorPrimaryActive:"#2e9e7f",colorInfo:"#5aa9cf",colorLink:"#46c2a0",colorLinkHover:"#6ad7b8",colorLinkActive:"#2e9e7f",colorSuccess:"#4cc08c",colorWarning:"#dcae4c",colorError:"#ef6a5c",colorText:"#e5edf8",colorTextSecondary:"#b7c4d6",colorTextTertiary:"#8d9bb0",colorTextDisabled:"#627085",colorBorder:"rgba(255, 255, 255, 0.10)",colorBorderSecondary:"rgba(255, 255, 255, 0.06)",colorFill:"#0c1a17",colorFillSecondary:"#091412",colorFillTertiary:"rgba(15, 23, 42, 0.74)",colorFillQuaternary:"transparent",colorBgLayout:"#070f0d",colorBgContainer:"rgba(11, 23, 20, 0.76)",colorBgElevated:"rgba(15, 31, 27, 0.9)",colorBgSpotlight:"rgba(21, 127, 107, 0.22)",colorPrimaryBg:"rgba(21, 127, 107, 0.16)",colorPrimaryBgHover:"rgba(21, 127, 107, 0.22)",colorPrimaryBorder:"rgba(70, 194, 160, 0.30)",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 16px 40px rgba(2, 6, 23, 0.42), 0 8px 20px rgba(15, 23, 42, 0.24)",boxShadowSecondary:"0 24px 56px rgba(2, 6, 23, 0.5), 0 10px 28px rgba(15, 23, 42, 0.28)"},Gw={Tag:{defaultBg:"rgba(21, 127, 107, 0.10)",defaultColor:"#0f5f51"},Table:{bodySortBg:"rgba(21, 127, 107, 0.08)"}},Jw={Tag:{defaultBg:"rgba(70, 194, 160, 0.18)",defaultColor:"#c8efe2"},Table:{bodySortBg:"rgba(70, 194, 160, 0.14)"}},HD={...Yw,colorBgElevated:"#ffffff",colorBgSpotlight:"#0f172a",colorFillTertiary:"#f3f7f6"},qD={...Vw,colorBgElevated:"#0f1b18",colorBgSpotlight:"#22332f",colorFillTertiary:"#162622"},KD={...Gw,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"}},XD={...Jw,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"}},YD={fontSize:13,controlHeight:30,sizeStep:3.5,sizeUnit:3.5,paddingContentHorizontal:12,paddingContentVertical:8};function VD(t,e,n=!1){const r=t==="dark"?e?qD:Vw:e?HD:Yw,s=n?{...r,...YD}:r,o=t==="dark"?e?XD:Jw:e?KD:Gw,i=t==="dark"?lt.darkAlgorithm:lt.defaultAlgorithm;return{token:s,components:o,algorithm:i}}async function GD(){const t=Dn.getInstance();for(const e of Object.keys(localStorage))if(e.startsWith("chat-model-options-cache-v1:")){const n=e.split(":")[1];try{const r=localStorage.getItem(e);if(r){const s=JSON.parse(r);s&&Array.isArray(s.options)&&(await t.saveModelOptionsCache(n,s.options,s.timestamp),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}for(const e of Object.keys(localStorage))if(e.startsWith("chat-session-diff-collapse:")){const n=e.split(":")[1];try{const r=localStorage.getItem(e);if(r){const s=JSON.parse(r);s&&typeof s.isExpanded=="boolean"&&(await t.saveDiffCollapse(n,{isExpanded:s.isExpanded,expandedFiles:s.expandedFiles||[]}),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}for(const e of Object.keys(localStorage))if(e.startsWith("chat-session-tool-collapse:")){const n=e.split(":");if(n.length>=3){const r=n[1],s=n.slice(2).join(":");try{const o=localStorage.getItem(e);if(o){const i=JSON.parse(o);i&&typeof i.isExpanded=="boolean"&&(await t.saveToolSessionCollapse(r,s,{isExpanded:i.isExpanded,expandedTools:i.expandedTools||[]}),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}}try{const e=localStorage.getItem("chat_input_reasoning_by_session_v1");if(e){const n=JSON.parse(e);for(const[r,s]of Object.entries(n))typeof s=="string"&&await t.saveInputReasoning(r,s);localStorage.removeItem("chat_input_reasoning_by_session_v1")}}catch{localStorage.removeItem("chat_input_reasoning_by_session_v1")}try{const e=localStorage.getItem("chat_input_reasoning_last_used_v1");e&&typeof e=="string"&&(await t.saveLastUsedReasoningEffort(e),localStorage.removeItem("chat_input_reasoning_last_used_v1"))}catch{localStorage.removeItem("chat_input_reasoning_last_used_v1")}for(const e of Object.keys(localStorage))if(e.startsWith("chat_scroll_anchor_v2:")){const n=e.split(":")[1];try{const r=localStorage.getItem(e);if(r){const s=JSON.parse(r);s&&s.v===1&&typeof s.anchorId=="string"&&(await t.saveScrollAnchor(n,s),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}localStorage.removeItem("chat_scroll_anchors_v1")}function JD(){const{t}=Xe(),e=Ul(A=>A.themeMode),n=Ul(A=>A.setThemeMode),r=Zr(),[s,o]=v.useState(()=>f_()),[i,a]=v.useState(()=>xy()),[c,d]=v.useState(null),[f,p]=v.useState(null),[b,m]=v.useState(0),[w,y]=v.useState(null),[_,M]=v.useState(!1);v.useEffect(()=>{localStorage.setItem(Xy,e)},[e]),v.useEffect(()=>{localStorage.setItem(h_,s),p_(s)},[s]),v.useEffect(()=>{let A=!1;const j=Date.now(),$=async()=>{try{const F=vo.getInstance(),X=await F.getAccessStatus();if(A)return;if(p(null),y(X),X.requires_password&&!_){d(!1);return}const K=await F.getSetupStatus();if(A)return;d(K.is_complete)}catch(F){if(A)return;const X=Date.now()-j;if(X>=2e4){const W=Gr(),ae=F instanceof Error&&F.message.trim()?F.message:"Unknown error";p(t("app.backendNotReachable",{baseUrl:W,message:ae}));return}const O=Math.min(500+Math.floor(X/2),2e3);setTimeout(()=>{A||$()},O)}};return $(),()=>{A=!0}},[_,b,t]),v.useEffect(()=>{document.body.setAttribute("data-theme",e)},[e]),v.useEffect(()=>{const A=()=>{const j=xy();a(j),document.body.setAttribute("data-vdi-safe",j?"true":"false");const $=document.getElementById("root");$&&$.setAttribute("data-vdi-safe",j?"true":"false")};return A(),window.addEventListener("storage",A),window.addEventListener("lotus-vdi-safe-mode-change",A),()=>{window.removeEventListener("storage",A),window.removeEventListener("lotus-vdi-safe-mode-change",A)}},[]),v.useEffect(()=>{var j;const A=(j=window.__TAURI_INTERNALS__)==null?void 0:j.invoke;typeof A=="function"&&A("set_window_theme",{theme:e}).catch($=>{console.warn("[App] Failed to sync native window theme:",$)})},[e]),v.useEffect(()=>{c&&xf().then(()=>_f()).catch(A=>{console.error("[App] Bootstrap error:",A)})},[c]),v.useEffect(()=>{const A=Dn.getInstance();A.cleanupStaleData(30).catch($=>{console.warn("[App] Failed to cleanup stale storage data:",$)});const j=setInterval(()=>{A.cleanupStaleData(30).catch(()=>{})},24*60*60*1e3);return()=>clearInterval(j)},[]),v.useEffect(()=>{const A=setTimeout(()=>{GD().catch(j=>{console.warn("[App] Storage migration failed:",j)})},5e3);return()=>clearTimeout(A)},[]);const{token:C,components:T,algorithm:k}=VD(e,i,r);if(w!=null&&w.requires_password&&!_)return l.jsx(Uh,{locale:wy(s),theme:{token:C,algorithm:k,components:T},children:l.jsx(En,{children:l.jsx(ga,{name:"PasswordGatePage",children:l.jsx(QL,{verifyPassword:async A=>{await vo.getInstance().verifyAccessPassword(A)},onVerified:async()=>{M(!0),p(null),m(A=>A+1)}})})})});if(c===null)return f?l.jsxs("div",{style:{padding:40,textAlign:"center"},children:[l.jsx("div",{style:{marginBottom:12},children:f}),l.jsx(Ae,{type:"primary",onClick:()=>{p(null),y(null),d(null),m(A=>A+1)},children:t("app.retry")})]}):l.jsx("div",{style:{padding:40,textAlign:"center"},children:t("app.loading")});const P=c?l.jsx(YL,{themeMode:e,onThemeModeChange:n,locale:s,onLocaleChange:o}):l.jsx(GL,{});return l.jsx(Uh,{locale:wy(s),theme:{token:C,algorithm:k,components:T},children:l.jsx(En,{children:l.jsx(ga,{name:"App",children:l.jsx("div",{style:{position:"relative"},children:P})})})})}const FF=Object.freeze(Object.defineProperty({__proto__:null,default:JD},Symbol.toStringTag,{value:"Module"}));var NF=kx(()=>`
247
+ `),truncated:ge.truncated,toolCount:ge.toolCount,workspace:ge.workspace})).sort((me,ge)=>me.filePath.localeCompare(ge.filePath));return{totalAdded:Se,totalRemoved:J,files:he,changedTools:te}},[c]),M=ft(oe=>oe.inspector.widthPx),C=ft(oe=>oe.inspector.minWidthPx),T=ft(oe=>oe.inspector.maxWidthPx),k=ft(oe=>oe.setInspectorWidthPx),P=c.length>0,A=!!((Y=a==null?void 0:a.config)!=null&&Y.goldConfig&&((((L=(ce=a.config.goldConfig.evaluation_prompt)==null?void 0:ce.trim())==null?void 0:L.length)??0)>0||a.config.goldConfig.enabled===!0)),j=v.useMemo(()=>r||hh({isEmbedded:e,leafCount:s,isMobileViewport:o}),[e,o,s,r]),$=j.inspectorMode,F=!!(i&&(f&&P||A||w||b||_)),X=!!i&&($==="drawer"||F),[K,O]=v.useState(()=>$==="rail"),[W,ae]=v.useState(!1);return v.useEffect(()=>{O($==="rail"?F:!1)},[F,$,i]),v.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Se=requestIdleCallback(()=>ae(!0));return()=>cancelIdleCallback(Se)}const oe=window.setTimeout(()=>ae(!0),300);return()=>window.clearTimeout(oe)},[]),v.useEffect(()=>{if(typeof window>"u"||!i)return;const oe=Se=>{var he;(((he=Se.detail)==null?void 0:he.sessionId)??null)===i&&O(!0)};return window.addEventListener(kd,oe),()=>{window.removeEventListener(kd,oe)}},[i]),l.jsx("div",{"data-session-workspace-shell":!0,"data-inspector-mode":$,"data-multi-pane":j.isMultiPane?"true":"false","data-inspector-toggle-placement":j.inspectorTogglePlacement,style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Ce,{style:{flex:1,minHeight:0},children:X&&$==="rail"&&K?l.jsx($f,{layout:"horizontal",sizesPx:[0,M],minFirstPx:360,minSecondPx:C,maxSecondPx:T,maxSecondFraction:.4,style:{flex:1,minHeight:0},handleSizePx:4,onResizeEnd:([,oe])=>{const Se=Math.max(C,Math.min(T,oe));k(Se)},first:l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(vg,{sessionId:i,embedded:e,paneCount:s,auxReady:W,sessionDiffSummary:_,workspaceState:j,inspectorEligible:F,onRequestOpenInspector:()=>O(!0)})}),second:l.jsx(xg,{sessionId:i,auxReady:W,mode:$,open:K,onOpenChange:O,showMessagesView:P,shouldShowTaskPanel:w,hasSubAgents:b,sessionDiffSummary:_})}):l.jsxs(l.Fragment,{children:[l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(vg,{sessionId:i,embedded:e,paneCount:s,auxReady:W,sessionDiffSummary:_,workspaceState:j,inspectorEligible:F,onRequestOpenInspector:()=>O(!0)})}),X?l.jsx(xg,{sessionId:i,auxReady:W,mode:$,open:K,onOpenChange:O,showMessagesView:P,shouldShowTaskPanel:w,hasSubAgents:b,sessionDiffSummary:_}):null]})})})},zL=({sessionId:t,embedded:e=!1,paneCount:n=1,workspaceState:r})=>l.jsx(NL,{sessionId:t,embedded:e,paneCount:n,workspaceState:r}),BL=st.lazy(()=>$t(()=>import("./HomeDashboard-D0TwAR_x.js"),__vite__mapDeps([24,1,2,3,4,5,6,25]),import.meta.url).then(t=>({default:t.HomeDashboard}))),{useToken:WL}=lt,{Text:UL}=ut,HL=4,qL=({leafId:t})=>{var ce;const{token:e}=WL(),{t:n}=Xe(),r=ft(L=>L.tree),s=ft(L=>L.leafSessionIds),o=ft(L=>L.activeLeafId),i=ft(L=>L.setActiveLeafId),a=ft(L=>L.splitLeaf),c=ft(L=>L.closeLeaf),d=ft(L=>L.setLeafSessionId),f=G(L=>L.selectSession),p=G(L=>L.addChat),y=G(L=>L.systemPrompts),m=G(L=>L.lastSelectedPromptId),w=s[t]??null,b=G(Cr(w)),_=v.useMemo(()=>Hn(r),[r]),M=_.length,C=Math.max(0,_.indexOf(t))+1,T=M<HL,k=Xy("(max-width: 768px)"),P=v.useMemo(()=>hh({isEmbedded:!0,leafCount:M,isMobileViewport:k}),[k,M]),A=P.isMultiPane,$=A||!!w,F=P.isMultiPane,X=o===t,K=((ce=b==null?void 0:b.title)==null?void 0:ce.trim())||n("chat.multiPane.selectSessionHint"),O=!k,W=P.inspectorTogglePlacement==="pane_header"&&!!w,ae=v.useCallback(L=>{d(t,L),i(t),f(L)},[t,f,i,d]),Y=v.useCallback(async()=>{var J,te;const L=y.find(he=>he.id===m),oe=(L==null?void 0:L.id)||(y.length>0?((J=y.find(he=>he.id==="general_assistant"))==null?void 0:J.id)||y[0].id:""),Se=await p({title:n("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:oe,baseSystemPrompt:(L==null?void 0:L.content)||(y.length>0?((te=y.find(he=>he.id==="general_assistant"))==null?void 0:te.content)||y[0].content:""),lastUsedEnhancedPrompt:null}});d(t,Se),i(t)},[p,m,y,n,t,d,i]);return l.jsxs("div",{className:"chat-pane-shell",onMouseDownCapture:()=>{Un("pane focus (mouse)",{leafId:t,sessionId:w,prevActiveLeafId:o}),i(t),w&&f(w)},onFocusCapture:()=>{Un("pane focus (focus)",{leafId:t,sessionId:w,prevActiveLeafId:o}),i(t)},style:{height:"100%",minHeight:0,border:F?`1px solid ${X?e.colorPrimaryBorder:e.colorBorderSecondary}`:"none",borderRadius:F?e.borderRadiusLG:0,overflow:"hidden",background:e.colorBgContainer,position:"relative"},children:[O?l.jsx("div",{className:"chat-pane-shell__header",style:{padding:`${e.paddingXS}px ${e.paddingSM}px`,borderBottom:`1px solid ${e.colorBorderSecondary}`,background:F?e.colorBgElevated:e.colorBgContainer},children:l.jsxs(Ce,{align:"center",justify:"space-between",gap:e.marginSM,style:{minWidth:0},children:[l.jsxs(Ce,{align:"center",gap:e.marginXS,style:{minWidth:0,flex:1},children:[F?l.jsx(He,{color:X?"blue":"default",style:{marginInlineEnd:0},children:n("chat.multiPane.paneLabel",{index:C,defaultValue:"Pane {{index}}"})}):null,l.jsx("div",{className:"chat-pane-shell__title",children:l.jsx(UL,{strong:!!w,type:w?void 0:"secondary",ellipsis:{tooltip:K},children:K})})]}),l.jsxs(Ce,{className:"chat-pane-shell__actions",align:"center",gap:4,children:[l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(f_,{}),disabled:!T,title:n("chat.multiPane.splitHorizontal"),"aria-label":n("chat.multiPane.splitHorizontal"),onClick:L=>{L.preventDefault(),L.stopPropagation(),Un("pane split request",{leafId:t,layout:"horizontal"}),a(t,"horizontal");const oe=ft.getState(),Se=oe.leafSessionIds[oe.activeLeafId]??null;Se&&f(Se)}}),l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(h_,{}),disabled:!T,title:n("chat.multiPane.splitVertical"),"aria-label":n("chat.multiPane.splitVertical"),onClick:L=>{L.preventDefault(),L.stopPropagation(),Un("pane split request",{leafId:t,layout:"vertical"}),a(t,"vertical");const oe=ft.getState(),Se=oe.leafSessionIds[oe.activeLeafId]??null;Se&&f(Se)}}),l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(Ky,{}),disabled:!w,title:n("chat.multiPane.selectMessagesToExport"),"aria-label":n("chat.multiPane.selectMessagesToExport"),onClick:L=>{L.preventDefault(),L.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(Cd,{detail:{sessionId:w}}))}}),W?l.jsx(Ae,{size:"small",type:"text",icon:l.jsx(cf,{}),title:n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),"aria-label":n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),onClick:L=>{L.preventDefault(),L.stopPropagation(),w&&window.dispatchEvent(new CustomEvent(kd,{detail:{sessionId:w}}))}}):null,l.jsx(Ae,{size:"small",type:"text",danger:!0,icon:l.jsx($s,{}),disabled:!$,title:n("chat.multiPane.closePane"),"aria-label":n("chat.multiPane.closePane"),onClick:L=>{L.preventDefault(),L.stopPropagation(),Un("pane close request",{leafId:t}),A?c(t):d(t,null);const oe=ft.getState(),Se=oe.leafSessionIds[oe.activeLeafId]??null;f(Se)}})]})]})}):null,l.jsx("div",{className:"chat-pane-shell__content",children:w?l.jsx(ga,{name:"ChatView",children:l.jsx(zL,{sessionId:w,embedded:!0,paneCount:M,workspaceState:P})}):l.jsx(ga,{name:"HomeDashboard",children:l.jsx(st.Suspense,{fallback:null,children:l.jsx(BL,{onOpenSession:ae,onCreateSession:Y})})})})]})},KL=({node:t})=>{const e=ft(r=>r.splitSizesPx[t.id]??null),n=ft(r=>r.setSplitSizesPx);return l.jsx($f,{layout:t.layout,sizesPx:e,defaultSplitRatio:.5,minFirstPx:240,minSecondPx:240,style:{height:"100%",minHeight:0},onResizeEnd:r=>{n(t.id,r)},first:l.jsx(Gd,{node:t.children[0]}),second:l.jsx(Gd,{node:t.children[1]})})},Gd=({node:t})=>t.type==="leaf"?l.jsx(qL,{leafId:t.id}):l.jsx(KL,{node:t}),_g=()=>{const t=ft(f=>f.tree),e=ft(f=>f.leafSessionIds),n=ft(f=>f.activeLeafId),r=ft(f=>f.setActiveLeafId),s=ft(f=>f.setLeafSessionId),o=G(f=>f.chats.map(p=>p.id).join(",")),i=v.useMemo(()=>new Set(o.split(",")),[o]),a=G(f=>f.currentSessionId),c=v.useRef(!1),d=v.useMemo(()=>Hn(t),[t]);return v.useEffect(()=>{d.length!==0&&(d.includes(n)||r(d[0]))},[n,d,r]),v.useEffect(()=>{const f=new Set(Object.values(e).filter(Boolean));let p=!1;for(const y of f)if(!i.has(y)){p=!0;break}if(p)for(const[y,m]of Object.entries(e))m&&!i.has(m)&&s(y,null)},[i,e,s]),v.useEffect(()=>{if(!a||c.current)return;if(!Object.values(e).some(Boolean)){s(n,a),c.current=!0;return}c.current=!0},[n,a,e,s]),l.jsx("div",{style:{height:"100%",minHeight:0,padding:0},children:l.jsx(Gd,{node:t})})},XL=st.lazy(()=>$t(()=>import("./SystemSettingsPage-DOIZqoTl.js"),__vite__mapDeps([26,1,2,3,4,5,6,27]),import.meta.url).then(t=>({default:t.SystemSettingsPage}))),YL=st.lazy(()=>$t(()=>import("./CommandPalette-C7M9VREB.js"),__vite__mapDeps([28,1,2,3,4,5,6,29]),import.meta.url).then(t=>({default:t.CommandPalette}))),VL=st.lazy(()=>$t(()=>import("./main-Bm6Xue83.js").then(t=>t.F),__vite__mapDeps([5,4,3,2,1,6]),import.meta.url).then(t=>({default:t.FeatureGuide}))),GL=st.lazy(()=>$t(()=>import("./LedgerDrawer-DJn4WNaB.js"),__vite__mapDeps([30,1,2,3,4,5,6]),import.meta.url).then(t=>({default:t.LedgerDrawer}))),Cg="bodhi_open_provider_on_entry",JL="__LOTUS_COMMAND_PALETTE_FORCE_OPEN__",QL=()=>(KE(),null),ZL=({themeMode:t,onThemeModeChange:e,locale:n,onLocaleChange:r})=>{const s=oa(O=>O.isOpen),o=oa(O=>O.close),{t:i}=Xe(),{token:a}=lt.useToken(),c=Tf(),d=v.useMemo(()=>ov()==="macos",[]);v.useEffect(()=>{localStorage.getItem(Cg)==="true"&&(localStorage.removeItem(Cg),oa.getState().open("chat","provider"))},[]),dT(),v.useEffect(()=>{Ep.clear(),Pp()},[t]),v.useEffect(()=>{Ep.clear(),Pp()},[c]);const f=ft(O=>O.sidebar.collapsed),p=ft(O=>O.sidebar.widthPx),y=ft(O=>O.sidebar.minWidthPx),m=ft(O=>O.sidebar.maxWidthPx),w=ft(O=>O.setSidebarCollapsed),b=ft(O=>O.setSidebarWidthPx),_=18,M=0,T=!s&&f&&d?44:M,k=0,P=88,A=10,j="none",$=es(),F="min(94vw, 460px)",[X,K]=v.useState(!1);return v.useEffect(()=>{if(typeof requestIdleCallback=="function"){const W=requestIdleCallback(()=>K(!0));return()=>cancelIdleCallback(W)}const O=window.setTimeout(()=>K(!0),200);return()=>window.clearTimeout(O)},[]),v.useEffect(()=>{const O=W=>{!((W.metaKey||W.ctrlKey)&&W.key.toLowerCase()==="k")||X||(W.preventDefault(),window[JL]=!0,K(!0))};return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[X]),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:i("app.skipToContent","Skip to main content")}),X&&l.jsx(st.Suspense,{fallback:null,children:l.jsx(YL,{})}),X&&l.jsx(st.Suspense,{fallback:null,children:l.jsx(VL,{disabled:s})}),X&&l.jsx(st.Suspense,{fallback:null,children:l.jsx(GL,{})}),X&&l.jsx(QL,{}),l.jsx(ro,{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:T,paddingLeft:M,paddingRight:M,paddingBottom:M,background:"transparent"},children:[s?l.jsx(ro,{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:j,overflow:"hidden"},children:l.jsx(ga,{name:"SystemSettings",children:l.jsx(st.Suspense,{fallback:l.jsx("div",{style:{padding:24,color:"var(--ant-color-text-secondary)"},children:i("app.loading","Loading…")}),children:l.jsx(XL,{themeMode:t,onThemeModeChange:e,locale:n,onLocaleChange:r,onBack:o})})})}):l.jsx(l.Fragment,{children:$?l.jsxs(l.Fragment,{children:[l.jsx(gc,{placement:"left",closable:!1,onClose:()=>w(!0),open:!f,width:F,styles:{body:{padding:0,background:"var(--lotus-sidebar-bg)"}},children:l.jsx(Cp,{})}),l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{flex:1,height:"100%",minHeight:0,borderRadius:`${_}px`,border:j,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(ro,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(_g,{})})})]}):l.jsx($f,{layout:"horizontal",style:{flex:1,minHeight:0,height:"100%",background:"transparent"},sizesPx:[f?k:p,0],minFirstPx:f?k:y,minSecondPx:320,disabled:f,handleSizePx:f?0:2,onResizeEnd:([O])=>{if(f)return;const W=Math.max(y,Math.min(m,O));b(W)},first:l.jsx("div",{className:"lotus-shell-panel lotus-shell-sidebar",style:{height:"100%",minHeight:0,borderRadius:`${_}px 0 0 ${_}px`,border:j,overflow:"hidden",background:"var(--lotus-sidebar-bg)"},children:l.jsx(Cp,{})}),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:j,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(ro,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(_g,{})})})})}),!s&&f?l.jsx(Ae,{"data-testid":"show-sidebar",type:"text",size:"small",icon:l.jsx(p_,{}),onClick:()=>w(!1),title:i("layout.showSidebar"),"aria-label":i("layout.showSidebar"),className:"lotus-toolbar-icon lotus-floating-sidebar-toggle",style:{position:"absolute",top:$?8:A,left:$?8:P,zIndex:40,width:36,height:36,borderRadius:12,border:`1px solid ${a.colorBorderSecondary}`,background:a.colorBgElevated,boxShadow:a.boxShadowSecondary}}):null]})})]})},eD="bodhi_open_provider_on_entry",{Title:kg,Paragraph:Tg}=ut,tD=()=>{const{t}=Xe(),[e,n]=v.useState(!1),[r,s]=v.useState(null),[o,i]=v.useState(!1),a=async c=>{try{s(null),i(!0),await So.getInstance().markSetupComplete(),c&&localStorage.setItem(eD,"true"),n(!0)}catch(d){console.error("Failed to complete setup:",d),s(t("setup.error.completeFailed"))}finally{i(!1)}};return e?l.jsxs("div",{"data-testid":"setup-complete",className:"setup-complete",children:[l.jsx(kg,{level:2,children:t("setup.complete.title")}),l.jsx(Tg,{children:t("setup.complete.restartMessage")}),l.jsx(Ae,{"data-testid":"setup-restart",onClick:()=>window.location.reload(),children:t("setup.complete.restartMessage")})]}):l.jsx("div",{className:"setup-page",children:l.jsxs(Ut,{className:"setup-page__card",children:[l.jsxs("div",{className:"setup-page__hero",children:[l.jsx("div",{className:"setup-page__hero-icon",children:l.jsx(Wh,{})}),l.jsx(kg,{level:2,style:{marginTop:0},children:t("setup.welcome.heading")}),l.jsx(Tg,{type:"secondary",children:t("setup.welcome.description")})]}),l.jsx(rr,{message:t("setup.welcome.providerHint"),type:"info",showIcon:!0,style:{marginBottom:16}}),l.jsx(rr,{message:t("setup.welcome.proxyHint"),type:"info",showIcon:!0,style:{marginBottom:24}}),r?l.jsx(rr,{message:r,type:"error",showIcon:!0,style:{marginBottom:16}}):null,l.jsxs("div",{className:"setup-page__actions",children:[l.jsx(Ae,{"data-testid":"setup-configure-provider",icon:l.jsx(hc,{}),onClick:()=>void a(!0),loading:o,children:t("setup.button.configureProvider")}),l.jsx(Ae,{"data-testid":"setup-get-started",type:"primary",icon:l.jsx(Wh,{}),onClick:()=>void a(!1),loading:o,children:t("setup.button.getStarted")})]})]})})},{Title:nD,Text:Eg}=ut,rD=({onVerified:t,verifyPassword:e})=>{const{t:n}=Xe(),[r,s]=v.useState(""),[o,i]=v.useState(null),[a,c]=v.useState(!1),d=async()=>{const f=r.trim();if(!f){i(n("app.passwordGate.validation.required"));return}c(!0),i(null);try{await e(f),await t(),s("")}catch(p){const y=p instanceof Error?p.message:n("app.passwordGate.validation.verifyFailed");i(y)}finally{c(!1)}};return l.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:l.jsx(Ut,{style:{width:"100%",maxWidth:480},children:l.jsxs(We,{direction:"vertical",size:20,style:{width:"100%"},children:[l.jsxs("div",{children:[l.jsx(nD,{level:3,style:{marginBottom:8},children:n("app.passwordGate.title")}),l.jsx(Eg,{type:"secondary",children:n("app.passwordGate.description")})]}),o?l.jsx(rr,{type:"error",showIcon:!0,message:o}):null,l.jsxs(We,{direction:"vertical",size:8,style:{width:"100%"},children:[l.jsx(Eg,{strong:!0,children:n("app.passwordGate.passwordLabel")}),l.jsx(Ls.Password,{value:r,autoFocus:!0,autoComplete:"current-password",onChange:f=>s(f.target.value),onPressEnter:()=>void d(),placeholder:n("app.passwordGate.passwordPlaceholder")})]}),l.jsx(Ae,{type:"primary",block:!0,loading:a,onClick:()=>void d(),children:n("app.passwordGate.submit")})]})})})};var si={},Bu={exports:{}},Pg;function Lt(){return Pg||(Pg=1,function(t){function e(n){return n&&n.__esModule?n:{default:n}}t.exports=e,t.exports.__esModule=!0,t.exports.default=t.exports}(Bu)),Bu.exports}var oi={},Mg;function sD(){if(Mg)return oi;Mg=1,Object.defineProperty(oi,"__esModule",{value:!0}),oi.default=void 0;var t={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 oi.default=t,oi}var ii={},ai={},li={},Wu={exports:{}},Uu={exports:{}},Hu={exports:{}},qu={exports:{}},Ag;function oD(){return Ag||(Ag=1,function(t){var e=Ry().default;function n(r,s){if(e(r)!="object"||!r)return r;var o=r[Symbol.toPrimitive];if(o!==void 0){var i=o.call(r,s||"default");if(e(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(r)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}(qu)),qu.exports}var Rg;function iD(){return Rg||(Rg=1,function(t){var e=Ry().default,n=oD();function r(s){var o=n(s,"string");return e(o)=="symbol"?o:o+""}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(Hu)),Hu.exports}var jg;function aD(){return jg||(jg=1,function(t){var e=iD();function n(r,s,o){return(s=e(s))in r?Object.defineProperty(r,s,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[s]=o,r}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}(Uu)),Uu.exports}var Ig;function Po(){return Ig||(Ig=1,function(t){var e=aD();function n(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(s);o&&(a=a.filter(function(c){return Object.getOwnPropertyDescriptor(s,c).enumerable})),i.push.apply(i,a)}return i}function r(s){for(var o=1;o<arguments.length;o++){var i=arguments[o]!=null?arguments[o]:{};o%2?n(Object(i),!0).forEach(function(a){e(s,a,i[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach(function(a){Object.defineProperty(s,a,Object.getOwnPropertyDescriptor(i,a))})}return s}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}(Wu)),Wu.exports}var ci={},Og;function Mo(){return Og||(Og=1,Object.defineProperty(ci,"__esModule",{value:!0}),ci.commonLocale=void 0,ci.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}),ci}var $g;function lD(){if($g)return li;$g=1;var t=Lt().default;Object.defineProperty(li,"__esModule",{value:!0}),li.default=void 0;var e=t(Po()),n=Mo(),r=(0,e.default)((0,e.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 li.default=r,li}var ui={},Lg;function Fw(){if(Lg)return ui;Lg=1,Object.defineProperty(ui,"__esModule",{value:!0}),ui.default=void 0;const t={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};return ui.default=t,ui}var Dg;function Nw(){if(Dg)return ai;Dg=1;var t=Lt().default;Object.defineProperty(ai,"__esModule",{value:!0}),ai.default=void 0;var e=t(lD()),n=t(Fw());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"]},e.default),timePickerLocale:Object.assign({},n.default)};return ai.default=r,ai}var Fg;function cD(){if(Fg)return ii;Fg=1;var t=Lt().default;Object.defineProperty(ii,"__esModule",{value:!0}),ii.default=void 0;var e=t(Nw());return ii.default=e.default,ii}var Ng;function uD(){if(Ng)return si;Ng=1;var t=Lt().default;Object.defineProperty(si,"__esModule",{value:!0}),si.default=void 0;var e=t(sD()),n=t(cD()),r=t(Nw()),s=t(Fw());const o="${label} is not a valid ${type}",i={locale:"en",Pagination:e.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 si.default=i,si}var Ku,zg;function dD(){return zg||(zg=1,Ku=uD()),Ku}var fD=dD();const hD=Os(fD);var di={},fi={},Bg;function pD(){if(Bg)return fi;Bg=1,Object.defineProperty(fi,"__esModule",{value:!0}),fi.default=void 0;var t={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 fi.default=t,fi}var hi={},pi={},mi={},Wg;function mD(){if(Wg)return mi;Wg=1;var t=Lt().default;Object.defineProperty(mi,"__esModule",{value:!0}),mi.default=void 0;var e=t(Po()),n=Mo(),r=(0,e.default)((0,e.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 mi.default=r,mi}var gi={},Ug;function zw(){if(Ug)return gi;Ug=1,Object.defineProperty(gi,"__esModule",{value:!0}),gi.default=void 0;const t={placeholder:"Sélectionner l'heure",rangePlaceholder:["Heure de début","Heure de fin"]};return gi.default=t,gi}var Hg;function Bw(){if(Hg)return pi;Hg=1;var t=Lt().default;Object.defineProperty(pi,"__esModule",{value:!0}),pi.default=void 0;var e=t(mD()),n=t(zw());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"]},e.default),timePickerLocale:Object.assign({},n.default)};return pi.default=r,pi}var qg;function gD(){if(qg)return hi;qg=1;var t=Lt().default;Object.defineProperty(hi,"__esModule",{value:!0}),hi.default=void 0;var e=t(Bw());return hi.default=e.default,hi}var Kg;function yD(){if(Kg)return di;Kg=1;var t=Lt().default;Object.defineProperty(di,"__esModule",{value:!0}),di.default=void 0;var e=t(pD()),n=t(gD()),r=t(Bw()),s=t(zw());const o="La valeur du champ ${label} n'est pas valide pour le type ${type}",i={locale:"fr",Pagination:e.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 di.default=i,di}var Xu,Xg;function bD(){return Xg||(Xg=1,Xu=yD()),Xu}var vD=bD();const SD=Os(vD);var yi={},bi={},Yg;function wD(){if(Yg)return bi;Yg=1,Object.defineProperty(bi,"__esModule",{value:!0}),bi.default=void 0;var t={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 bi.default=t,bi}var vi={},Si={},wi={},Vg;function xD(){if(Vg)return wi;Vg=1;var t=Lt().default;Object.defineProperty(wi,"__esModule",{value:!0}),wi.default=void 0;var e=t(Po()),n=Mo(),r=(0,e.default)((0,e.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 wi.default=r,wi}var xi={},Gg;function Ww(){if(Gg)return xi;Gg=1,Object.defineProperty(xi,"__esModule",{value:!0}),xi.default=void 0;const t={placeholder:"समय का चयन करें",rangePlaceholder:["आरंभिक समय","अंत समय"]};return xi.default=t,xi}var Jg;function Uw(){if(Jg)return Si;Jg=1;var t=Lt().default;Object.defineProperty(Si,"__esModule",{value:!0}),Si.default=void 0;var e=t(xD()),n=t(Ww());const r={lang:Object.assign({placeholder:"तारीख़ चुनें",yearPlaceholder:"वर्ष चुनें",quarterPlaceholder:"तिमाही चुनें",monthPlaceholder:"महीना चुनिए",weekPlaceholder:"सप्ताह चुनें",rangePlaceholder:["प्रारंभ तिथि","समाप्ति तिथि"],rangeYearPlaceholder:["आरंभिक वर्ष","अंत वर्ष"],rangeMonthPlaceholder:["आरंभिक महीना","अंत महीना"],rangeWeekPlaceholder:["आरंभिक सप्ताह","अंत सप्ताह"]},e.default),timePickerLocale:Object.assign({},n.default)};return Si.default=r,Si}var Qg;function _D(){if(Qg)return vi;Qg=1;var t=Lt().default;Object.defineProperty(vi,"__esModule",{value:!0}),vi.default=void 0;var e=t(Uw());return vi.default=e.default,vi}var Zg;function CD(){if(Zg)return yi;Zg=1;var t=Lt().default;Object.defineProperty(yi,"__esModule",{value:!0}),yi.default=void 0;var e=t(wD()),n=t(_D()),r=t(Uw()),s=t(Ww());const o="${label} मान्य ${type} नहीं है",i={locale:"hi",Pagination:e.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 yi.default=i,yi}var Yu,ey;function kD(){return ey||(ey=1,Yu=CD()),Yu}var TD=kD();const ED=Os(TD);var _i={},Ci={},ty;function PD(){if(ty)return Ci;ty=1,Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.default=void 0;var t={items_per_page:"件 / ページ",jump_to:"移動",jump_to_confirm:"確認する",page:"ページ",prev_page:"前のページ",next_page:"次のページ",prev_5:"前 5ページ",next_5:"次 5ページ",prev_3:"前 3ページ",next_3:"次 3ページ",page_size:"ページサイズ"};return Ci.default=t,Ci}var ki={},Ti={},Ei={},ny;function MD(){if(ny)return Ei;ny=1;var t=Lt().default;Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.default=void 0;var e=t(Po()),n=Mo(),r=(0,e.default)((0,e.default)({},n.commonLocale),{},{locale:"ja_JP",today:"今日",now:"現在時刻",backToToday:"今日に戻る",ok:"確定",timeSelect:"時間を選択",dateSelect:"日時を選択",weekSelect:"週を選択",clear:"クリア",week:"週",month:"月",year:"年",previousMonth:"前月 (ページアップキー)",nextMonth:"翌月 (ページダウンキー)",monthSelect:"月を選択",yearSelect:"年を選択",decadeSelect:"年代を選択",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"前年 (Controlを押しながら左キー)",nextYear:"翌年 (Controlを押しながら右キー)",previousDecade:"前の年代",nextDecade:"次の年代",previousCentury:"前の世紀",nextCentury:"次の世紀",monthBeforeYear:!1});return Ei.default=r,Ei}var Pi={},ry;function Hw(){if(ry)return Pi;ry=1,Object.defineProperty(Pi,"__esModule",{value:!0}),Pi.default=void 0;const t={placeholder:"時間を選択",rangePlaceholder:["開始時間","終了時間"]};return Pi.default=t,Pi}var sy;function qw(){if(sy)return Ti;sy=1;var t=Lt().default;Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.default=void 0;var e=t(MD()),n=t(Hw());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月"]},e.default),timePickerLocale:Object.assign({},n.default)};return Ti.default=r,Ti}var oy;function AD(){if(oy)return ki;oy=1;var t=Lt().default;Object.defineProperty(ki,"__esModule",{value:!0}),ki.default=void 0;var e=t(qw());return ki.default=e.default,ki}var iy;function RD(){if(iy)return _i;iy=1;var t=Lt().default;Object.defineProperty(_i,"__esModule",{value:!0}),_i.default=void 0;var e=t(PD()),n=t(AD()),r=t(qw()),s=t(Hw());const o="${label}は有効な${type}ではありません",i={locale:"ja",Pagination:e.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 _i.default=i,_i}var Vu,ay;function jD(){return ay||(ay=1,Vu=RD()),Vu}var ID=jD();const OD=Os(ID);var Mi={},Ai={},ly;function $D(){if(ly)return Ai;ly=1,Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.default=void 0;var t={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 Ai.default=t,Ai}var Ri={},ji={},Ii={},cy;function LD(){if(cy)return Ii;cy=1;var t=Lt().default;Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.default=void 0;var e=t(Po()),n=Mo(),r=(0,e.default)((0,e.default)({},n.commonLocale),{},{locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",week:"周",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪",yearFormat:"YYYY年",cellDateFormat:"D",monthBeforeYear:!1});return Ii.default=r,Ii}var Oi={},uy;function Kw(){if(uy)return Oi;uy=1,Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.default=void 0;const t={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};return Oi.default=t,Oi}var dy;function Xw(){if(dy)return ji;dy=1;var t=Lt().default;Object.defineProperty(ji,"__esModule",{value:!0}),ji.default=void 0;var e=t(LD()),n=t(Kw());const r={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},e.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="确定",ji.default=r,ji}var fy;function DD(){if(fy)return Ri;fy=1;var t=Lt().default;Object.defineProperty(Ri,"__esModule",{value:!0}),Ri.default=void 0;var e=t(Xw());return Ri.default=e.default,Ri}var hy;function FD(){if(hy)return Mi;hy=1;var t=Lt().default;Object.defineProperty(Mi,"__esModule",{value:!0}),Mi.default=void 0;var e=t($D()),n=t(DD()),r=t(Xw()),s=t(Kw());const o="${label}不是一个有效的${type}",i={locale:"zh-cn",Pagination:e.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 Mi.default=i,Mi}var Gu,py;function ND(){return py||(py=1,Gu=FD()),Gu}var zD=ND();const BD=Os(zD);var $i={},Li={},my;function WD(){if(my)return Li;my=1,Object.defineProperty(Li,"__esModule",{value:!0}),Li.default=void 0;var t={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 Li.default=t,Li}var Di={},Fi={},Ni={},gy;function UD(){if(gy)return Ni;gy=1;var t=Lt().default;Object.defineProperty(Ni,"__esModule",{value:!0}),Ni.default=void 0;var e=t(Po()),n=Mo(),r=(0,e.default)((0,e.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 Ni.default=r,Ni}var zi={},yy;function Yw(){if(yy)return zi;yy=1,Object.defineProperty(zi,"__esModule",{value:!0}),zi.default=void 0;const t={placeholder:"請選擇時間"};return zi.default=t,zi}var by;function Vw(){if(by)return Fi;by=1;var t=Lt().default;Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.default=void 0;var e=t(UD()),n=t(Yw());const r={lang:Object.assign({placeholder:"請選擇日期",yearPlaceholder:"請選擇年份",quarterPlaceholder:"請選擇季度",monthPlaceholder:"請選擇月份",weekPlaceholder:"請選擇周",rangePlaceholder:["開始日期","結束日期"],rangeYearPlaceholder:["開始年份","結束年份"],rangeMonthPlaceholder:["開始月份","結束月份"],rangeQuarterPlaceholder:["開始季度","結束季度"],rangeWeekPlaceholder:["開始周","結束周"]},e.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="確 定",Fi.default=r,Fi}var vy;function HD(){if(vy)return Di;vy=1;var t=Lt().default;Object.defineProperty(Di,"__esModule",{value:!0}),Di.default=void 0;var e=t(Vw());return Di.default=e.default,Di}var Sy;function qD(){if(Sy)return $i;Sy=1;var t=Lt().default;Object.defineProperty($i,"__esModule",{value:!0}),$i.default=void 0;var e=t(WD()),n=t(HD()),r=t(Vw()),s=t(Yw());const o="${label}不是一個有效的${type}",i={locale:"zh-tw",Pagination:e.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 $i.default=i,$i}var Ju,wy;function KD(){return wy||(wy=1,Ju=qD()),Ju}var XD=KD();const YD=Os(XD),xy=t=>{switch(t){case"zh-CN":return BD;case"zh-TW":return YD;case"fr-FR":return SD;case"ja-JP":return OD;case"hi-IN":return ED;default:return hD}},Gw="lotus_vdi_safe_mode",_y=()=>{try{return localStorage.getItem(Gw)==="true"}catch{return!1}},UF=t=>{try{localStorage.setItem(Gw,t.toString())}catch(e){console.error("[vdiSafeMode] Failed to persist setting:",e)}},Jw={colorPrimary:"#157f6b",colorPrimaryHover:"#1b9a82",colorPrimaryActive:"#0f5f51",colorInfo:"#2b6e8f",colorLink:"#157f6b",colorLinkHover:"#1b9a82",colorLinkActive:"#0f5f51",colorSuccess:"#2e9e6f",colorWarning:"#c08a2e",colorError:"#d24b3c",colorText:"#0f172a",colorTextSecondary:"#475569",colorTextTertiary:"#64748b",colorTextDisabled:"#94a3b8",colorTextLightSolid:"#ffffff",colorBorder:"#d1e3e0",colorBorderSecondary:"#e2f0ee",colorFill:"#f0fdfa",colorFillSecondary:"#f7fdfb",colorFillTertiary:"rgba(255, 255, 255, 0.82)",colorFillQuaternary:"transparent",colorBgLayout:"#eef5f1",colorBgContainer:"rgba(255, 255, 255, 0.82)",colorBgElevated:"rgba(255, 255, 255, 0.9)",colorBgSpotlight:"rgba(21, 127, 107, 0.16)",colorPrimaryBg:"#e6f1ec",colorPrimaryBgHover:"#cfe6dd",colorPrimaryBorder:"#9fd0c1",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 12px 36px rgba(15, 118, 110, 0.10), 0 6px 18px rgba(15, 23, 42, 0.06)",boxShadowSecondary:"0 20px 48px rgba(15, 118, 110, 0.12), 0 8px 24px rgba(15, 23, 42, 0.08)"},Qw={colorPrimary:"#46c2a0",colorPrimaryHover:"#6ad7b8",colorPrimaryActive:"#2e9e7f",colorInfo:"#5aa9cf",colorLink:"#46c2a0",colorLinkHover:"#6ad7b8",colorLinkActive:"#2e9e7f",colorSuccess:"#4cc08c",colorWarning:"#dcae4c",colorError:"#ef6a5c",colorText:"#e5edf8",colorTextSecondary:"#b7c4d6",colorTextTertiary:"#8d9bb0",colorTextDisabled:"#627085",colorBorder:"rgba(255, 255, 255, 0.10)",colorBorderSecondary:"rgba(255, 255, 255, 0.06)",colorFill:"#0c1a17",colorFillSecondary:"#091412",colorFillTertiary:"rgba(15, 23, 42, 0.74)",colorFillQuaternary:"transparent",colorBgLayout:"#070f0d",colorBgContainer:"rgba(11, 23, 20, 0.76)",colorBgElevated:"rgba(15, 31, 27, 0.9)",colorBgSpotlight:"rgba(21, 127, 107, 0.22)",colorPrimaryBg:"rgba(21, 127, 107, 0.16)",colorPrimaryBgHover:"rgba(21, 127, 107, 0.22)",colorPrimaryBorder:"rgba(70, 194, 160, 0.30)",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 16px 40px rgba(2, 6, 23, 0.42), 0 8px 20px rgba(15, 23, 42, 0.24)",boxShadowSecondary:"0 24px 56px rgba(2, 6, 23, 0.5), 0 10px 28px rgba(15, 23, 42, 0.28)"},Zw={Tag:{defaultBg:"rgba(21, 127, 107, 0.10)",defaultColor:"#0f5f51"},Table:{bodySortBg:"rgba(21, 127, 107, 0.08)"}},ex={Tag:{defaultBg:"rgba(70, 194, 160, 0.18)",defaultColor:"#c8efe2"},Table:{bodySortBg:"rgba(70, 194, 160, 0.14)"}},VD={...Jw,colorBgElevated:"#ffffff",colorBgSpotlight:"#0f172a",colorFillTertiary:"#f3f7f6"},GD={...Qw,colorBgElevated:"#0f1b18",colorBgSpotlight:"#22332f",colorFillTertiary:"#162622"},JD={...Zw,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"}},QD={...ex,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"}},ZD={fontSize:13,controlHeight:30,sizeStep:3.5,sizeUnit:3.5,paddingContentHorizontal:12,paddingContentVertical:8};function eF(t,e,n=!1){const r=t==="dark"?e?GD:Qw:e?VD:Jw,s=n?{...r,...ZD}:r,o=t==="dark"?e?QD:ex:e?JD:Zw,i=t==="dark"?lt.darkAlgorithm:lt.defaultAlgorithm;return{token:s,components:o,algorithm:i}}async function tF(){const t=Dn.getInstance();for(const e of Object.keys(localStorage))if(e.startsWith("chat-model-options-cache-v1:")){const n=e.split(":")[1];try{const r=localStorage.getItem(e);if(r){const s=JSON.parse(r);s&&Array.isArray(s.options)&&(await t.saveModelOptionsCache(n,s.options,s.timestamp),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}for(const e of Object.keys(localStorage))if(e.startsWith("chat-session-diff-collapse:")){const n=e.split(":")[1];try{const r=localStorage.getItem(e);if(r){const s=JSON.parse(r);s&&typeof s.isExpanded=="boolean"&&(await t.saveDiffCollapse(n,{isExpanded:s.isExpanded,expandedFiles:s.expandedFiles||[]}),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}for(const e of Object.keys(localStorage))if(e.startsWith("chat-session-tool-collapse:")){const n=e.split(":");if(n.length>=3){const r=n[1],s=n.slice(2).join(":");try{const o=localStorage.getItem(e);if(o){const i=JSON.parse(o);i&&typeof i.isExpanded=="boolean"&&(await t.saveToolSessionCollapse(r,s,{isExpanded:i.isExpanded,expandedTools:i.expandedTools||[]}),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}}try{const e=localStorage.getItem("chat_input_reasoning_by_session_v1");if(e){const n=JSON.parse(e);for(const[r,s]of Object.entries(n))typeof s=="string"&&await t.saveInputReasoning(r,s);localStorage.removeItem("chat_input_reasoning_by_session_v1")}}catch{localStorage.removeItem("chat_input_reasoning_by_session_v1")}try{const e=localStorage.getItem("chat_input_reasoning_last_used_v1");e&&typeof e=="string"&&(await t.saveLastUsedReasoningEffort(e),localStorage.removeItem("chat_input_reasoning_last_used_v1"))}catch{localStorage.removeItem("chat_input_reasoning_last_used_v1")}for(const e of Object.keys(localStorage))if(e.startsWith("chat_scroll_anchor_v2:")){const n=e.split(":")[1];try{const r=localStorage.getItem(e);if(r){const s=JSON.parse(r);s&&s.v===1&&typeof s.anchorId=="string"&&(await t.saveScrollAnchor(n,s),localStorage.removeItem(e))}}catch{localStorage.removeItem(e)}}localStorage.removeItem("chat_scroll_anchors_v1")}function nF(){const{t}=Xe(),e=Ul(A=>A.themeMode),n=Ul(A=>A.setThemeMode),r=es(),[s,o]=v.useState(()=>m_()),[i,a]=v.useState(()=>_y()),[c,d]=v.useState(null),[f,p]=v.useState(null),[y,m]=v.useState(0),[w,b]=v.useState(null),[_,M]=v.useState(!1);v.useEffect(()=>{localStorage.setItem(Vy,e)},[e]),v.useEffect(()=>{localStorage.setItem(g_,s),y_(s)},[s]),v.useEffect(()=>{let A=!1;const j=Date.now(),$=async()=>{try{const F=So.getInstance(),X=await F.getAccessStatus();if(A)return;if(p(null),b(X),X.requires_password&&!_){d(!1);return}const K=await F.getSetupStatus();if(A)return;d(K.is_complete)}catch(F){if(A)return;const X=Date.now()-j;if(X>=2e4){const W=Jr(),ae=F instanceof Error&&F.message.trim()?F.message:"Unknown error";p(t("app.backendNotReachable",{baseUrl:W,message:ae}));return}const O=Math.min(500+Math.floor(X/2),2e3);setTimeout(()=>{A||$()},O)}};return $(),()=>{A=!0}},[_,y,t]),v.useEffect(()=>{document.body.setAttribute("data-theme",e)},[e]),v.useEffect(()=>{const A=()=>{const j=_y();a(j),document.body.setAttribute("data-vdi-safe",j?"true":"false");const $=document.getElementById("root");$&&$.setAttribute("data-vdi-safe",j?"true":"false")};return A(),window.addEventListener("storage",A),window.addEventListener("lotus-vdi-safe-mode-change",A),()=>{window.removeEventListener("storage",A),window.removeEventListener("lotus-vdi-safe-mode-change",A)}},[]),v.useEffect(()=>{var j;const A=(j=window.__TAURI_INTERNALS__)==null?void 0:j.invoke;typeof A=="function"&&A("set_window_theme",{theme:e}).catch($=>{console.warn("[App] Failed to sync native window theme:",$)})},[e]),v.useEffect(()=>{c&&xf().then(()=>_f()).catch(A=>{console.error("[App] Bootstrap error:",A)})},[c]),v.useEffect(()=>{const A=Dn.getInstance();A.cleanupStaleData(30).catch($=>{console.warn("[App] Failed to cleanup stale storage data:",$)});const j=setInterval(()=>{A.cleanupStaleData(30).catch(()=>{})},24*60*60*1e3);return()=>clearInterval(j)},[]),v.useEffect(()=>{const A=setTimeout(()=>{tF().catch(j=>{console.warn("[App] Storage migration failed:",j)})},5e3);return()=>clearTimeout(A)},[]);const{token:C,components:T,algorithm:k}=eF(e,i,r);if(w!=null&&w.requires_password&&!_)return l.jsx(Uh,{locale:xy(s),theme:{token:C,algorithm:k,components:T},children:l.jsx(En,{children:l.jsx(ga,{name:"PasswordGatePage",children:l.jsx(rD,{verifyPassword:async A=>{await So.getInstance().verifyAccessPassword(A)},onVerified:async()=>{M(!0),p(null),m(A=>A+1)}})})})});if(c===null)return f?l.jsxs("div",{style:{padding:40,textAlign:"center"},children:[l.jsx("div",{style:{marginBottom:12},children:f}),l.jsx(Ae,{type:"primary",onClick:()=>{p(null),b(null),d(null),m(A=>A+1)},children:t("app.retry")})]}):l.jsx("div",{style:{padding:40,textAlign:"center"},children:t("app.loading")});const P=c?l.jsx(ZL,{themeMode:e,onThemeModeChange:n,locale:s,onLocaleChange:o}):l.jsx(tD,{});return l.jsx(Uh,{locale:xy(s),theme:{token:C,algorithm:k,components:T},children:l.jsx(En,{children:l.jsx(ga,{name:"App",children:l.jsx("div",{style:{position:"relative"},children:P})})})})}const HF=Object.freeze(Object.defineProperty({__proto__:null,default:nF},Symbol.toStringTag,{value:"Module"}));var qF=Px(()=>`
248
248
  /* Font Awesome icon styling - consolidated */
249
249
  .label-icon {
250
250
  display: inline-block;
@@ -258,4 +258,4 @@ ${s}
258
258
  stroke: revert;
259
259
  stroke-width: revert;
260
260
  }
261
- `,"getIconStyles");const Bn=t=>{const e=new URLSearchParams;Object.entries(t).forEach(([r,s])=>{s===void 0||s===""||e.set(r,String(s))});const n=e.toString();return n?`?${n}`:""};class QD{async getSummary(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate});return Je.get(`metrics/summary${n}`)}async getByModel(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate});return Je.get(`metrics/by-model${n}`)}async getSessions(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,model:e.model,limit:e.limit});return Je.get(`metrics/sessions${n}`)}async getSessionDetail(e){try{return await Je.get(`metrics/sessions/${encodeURIComponent(e)}`)}catch(n){if(n instanceof Error&&n.message.includes("not found"))return null;throw n}}async getUsageBreakdown(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,model:e.model});return Je.get(`metrics/usage-breakdown${n}`)}async getDaily(e={}){const n=Bn({days:e.days,end_date:e.endDate,granularity:e.granularity});return Je.get(`metrics/daily${n}`)}async getForwardSummary(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,endpoint:e.endpoint,model:e.model,limit:e.limit});return Je.get(`metrics/forward/summary${n}`)}async getForwardByEndpoint(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,endpoint:e.endpoint,model:e.model,limit:e.limit});return Je.get(`metrics/forward/by-endpoint${n}`)}async getForwardRequests(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,endpoint:e.endpoint,model:e.model,limit:e.limit});return Je.get(`metrics/forward/requests${n}`)}async getMemorySummary(e={}){const n=Bn({scope:e.scope,project_key:e.projectKey,days:e.days,end_date:e.endDate});return Je.get(`metrics/memory/summary${n}`)}async getMemoryTimeline(e={}){const n=Bn({scope:e.scope,project_key:e.projectKey,days:e.days,end_date:e.endDate,granularity:e.granularity});return Je.get(`metrics/memory/timeline${n}`)}async getUnifiedSummary(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate});return Je.get(`metrics/v2/summary${n}`)}async getUnifiedTimeline(e={}){const n=Bn({days:e.days,end_date:e.endDate,granularity:e.granularity});return Je.get(`metrics/v2/timeline${n}`)}}const zF=new QD;export{vF as $,Ow as A,LF as B,ia as C,Hn as D,TA as E,Vk as F,yf as G,cM as H,Ml as I,ze as J,NF as K,Bp as L,da as M,Rf as N,d$ as O,aE as P,iE as Q,oE as R,uE as S,gE as T,yc as U,Lb as V,Pn as W,rM as X,dd as Y,ms as Z,Tf as _,_s as a,SF as a0,CF as a1,P_ as a2,vo as a3,Wi as a4,Ps as a5,jf as a6,xM as a7,gM as a8,fp as a9,TF as aa,EF as ab,WP as ac,qP as ad,sv as ae,xy as af,QP as ag,kF as ah,_F as ai,xF as aj,wF as ak,DF as al,iF as am,bF as an,FF as ao,Cr as b,au as c,Ta as d,pe as e,Nr as f,jr as g,ta as h,oF as i,So as j,iv as k,yt as l,zF as m,Ab as n,xa as o,Co as p,xC as q,fb as r,hd as s,Je as t,G as u,xI as v,Td as w,sa as x,Ul as y,ft as z};
261
+ `,"getIconStyles");const Bn=t=>{const e=new URLSearchParams;Object.entries(t).forEach(([r,s])=>{s===void 0||s===""||e.set(r,String(s))});const n=e.toString();return n?`?${n}`:""};class rF{async getSummary(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate});return Je.get(`metrics/summary${n}`)}async getByModel(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate});return Je.get(`metrics/by-model${n}`)}async getSessions(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,model:e.model,limit:e.limit});return Je.get(`metrics/sessions${n}`)}async getSessionDetail(e){try{return await Je.get(`metrics/sessions/${encodeURIComponent(e)}`)}catch(n){if(n instanceof Error&&n.message.includes("not found"))return null;throw n}}async getUsageBreakdown(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,model:e.model});return Je.get(`metrics/usage-breakdown${n}`)}async getDaily(e={}){const n=Bn({days:e.days,end_date:e.endDate,granularity:e.granularity});return Je.get(`metrics/daily${n}`)}async getForwardSummary(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,endpoint:e.endpoint,model:e.model,limit:e.limit});return Je.get(`metrics/forward/summary${n}`)}async getForwardByEndpoint(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,endpoint:e.endpoint,model:e.model,limit:e.limit});return Je.get(`metrics/forward/by-endpoint${n}`)}async getForwardRequests(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate,endpoint:e.endpoint,model:e.model,limit:e.limit});return Je.get(`metrics/forward/requests${n}`)}async getMemorySummary(e={}){const n=Bn({scope:e.scope,project_key:e.projectKey,days:e.days,end_date:e.endDate});return Je.get(`metrics/memory/summary${n}`)}async getMemoryTimeline(e={}){const n=Bn({scope:e.scope,project_key:e.projectKey,days:e.days,end_date:e.endDate,granularity:e.granularity});return Je.get(`metrics/memory/timeline${n}`)}async getUnifiedSummary(e={}){const n=Bn({start_date:e.startDate,end_date:e.endDate});return Je.get(`metrics/v2/summary${n}`)}async getUnifiedTimeline(e={}){const n=Bn({days:e.days,end_date:e.endDate,granularity:e.granularity});return Je.get(`metrics/v2/timeline${n}`)}}const KF=new rF;export{Pn as $,Dw as A,WF as B,aa as C,Yh as D,AA as E,Hn as F,Zk as G,yf as H,Ml as I,hM as J,ze as K,e1 as L,um as M,rR as N,es as O,qF as P,Wp as Q,vo as R,Rf as S,m$ as T,dE as U,uE as V,cE as W,pE as X,SE as Y,yc as Z,Nb as _,_s as a,aM as a0,dd as a1,ms as a2,Tf as a3,kF as a4,TF as a5,AF as a6,j_ as a7,So as a8,Ui as a9,eb as aa,Ps as ab,dF as ac,jf as ad,TM as ae,SM as af,hp as ag,jF as ah,IF as ai,KP as aj,VP as ak,av as al,_y as am,nM as an,RF as ao,MF as ap,PF as aq,EF as ar,UF as as,fF as at,CF as au,HF as av,Cr as b,au as c,Ta as d,pe as e,zr as f,jr as g,na as h,uF as i,wo as j,cv as k,yt as l,KF as m,Ib as n,xa as o,ko as p,TC as q,mb as r,hd as s,Je as t,G as u,TI as v,Td as w,oa as x,Ul as y,ft as z};