@bigduu/lotus 2026.5.19 → 2026.5.29

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 (113) hide show
  1. package/dist/assets/App-CSoVc5kq.js +245 -0
  2. package/dist/assets/{FeatureGuide-BlFyQEho.js → FeatureGuide-BEvoRR9h.js} +1 -1
  3. package/dist/assets/{MetricsService-CIUJS8Ow.js → MetricsService-C3SA5O-z.js} +1 -1
  4. package/dist/assets/SubAgentsPanel-DankG8co.js +1 -0
  5. package/dist/assets/architectureDiagram-3BPJPVTR-BxRN2904.js +36 -0
  6. package/dist/assets/blockDiagram-GPEHLZMM-BUdOFKXS.js +132 -0
  7. package/dist/assets/{c4Diagram-AHTNJAMY-CBv5o-M1.js → c4Diagram-AAUBKEIU-R7VM_jb2.js} +1 -1
  8. package/dist/assets/{chunk-EDXVE4YY-KspsFgAM.js → chunk-2J33WTMH-C1T3QgQd.js} +1 -1
  9. package/dist/assets/{chunk-4BX2VUAB-CxLevY_l.js → chunk-4BX2VUAB-25Fo2TVO.js} +1 -1
  10. package/dist/assets/{chunk-55IACEB6-CyMcswjM.js → chunk-55IACEB6-BGyfC2jK.js} +1 -1
  11. package/dist/assets/chunk-727SXJPM-RKlR8ckj.js +206 -0
  12. package/dist/assets/chunk-AQP2D5EJ-C55Msx4c.js +231 -0
  13. package/dist/assets/{chunk-FMBD7UC4-BH440Lco.js → chunk-FMBD7UC4-h0twIch2.js} +1 -1
  14. package/dist/assets/{chunk-YZCP3GAM-D1Ua-1JA.js → chunk-ND2GUHAM-DyslQZ1W.js} +1 -1
  15. package/dist/assets/{chunk-QZHKN3VN-CYjk1VsY.js → chunk-QZHKN3VN-Dqthq7BH.js} +1 -1
  16. package/dist/assets/classDiagram-4FO5ZUOK-CnyHN3Oj.js +1 -0
  17. package/dist/assets/classDiagram-v2-Q7XG4LA2-CnyHN3Oj.js +1 -0
  18. package/dist/assets/{cose-bilkent-S5V4N54A-DBcT_Wx0.js → cose-bilkent-S5V4N54A-CkpcGEHo.js} +1 -1
  19. package/dist/assets/dagre-BM42HDAG-C3J21rxW.js +4 -0
  20. package/dist/assets/diagram-2AECGRRQ-C61YsAB8.js +43 -0
  21. package/dist/assets/diagram-5GNKFQAL-Caw10HFd.js +10 -0
  22. package/dist/assets/diagram-KO2AKTUF-CYt9RoUh.js +3 -0
  23. package/dist/assets/diagram-LMA3HP47-B5C2a2_L.js +24 -0
  24. package/dist/assets/diagram-OG6HWLK6-fEaxrU7x.js +24 -0
  25. package/dist/assets/en-US-DCV88PnO.js +3 -0
  26. package/dist/assets/{erDiagram-SMLLAGMA-5BQBJx-k.js → erDiagram-TEJ5UH35-GSKZF-im.js} +1 -1
  27. package/dist/assets/{flowDiagram-DWJPFMVM-CBv8eO1S.js → flowDiagram-I6XJVG4X-DuSuzMpf.js} +1 -1
  28. package/dist/assets/{ganttDiagram-T4ZO3ILL-CkWwjmoY.js → ganttDiagram-6RSMTGT7-Cu_jEY-M.js} +4 -4
  29. package/dist/assets/gitGraphDiagram-PVQCEYII-zECKggi3.js +106 -0
  30. package/dist/assets/graph-BlwPajkw.js +1 -0
  31. package/dist/assets/{index-DNsNCcgt.css → index-3qkG_le_.css} +1 -1
  32. package/dist/assets/index-4NqkovnM.js +1 -0
  33. package/dist/assets/{index-BekDgOIT.js → index-6wyG_o5U.js} +2 -2
  34. package/dist/assets/index-BC8EjiMM.js +1 -0
  35. package/dist/assets/index-BZvX5d4s.js +1 -0
  36. package/dist/assets/{index-Bcpx4-c6.js → index-BdFrXiGe.js} +1 -1
  37. package/dist/assets/index-BfAjm2cg.js +1 -0
  38. package/dist/assets/index-CJdw34gN.js +1 -0
  39. package/dist/assets/index-CQnpSDCR.js +22 -0
  40. package/dist/assets/{index-DdEEn03o.js → index-Cej2Q9Bg.js} +1 -1
  41. package/dist/assets/index-CrnJlXzG.js +1 -0
  42. package/dist/assets/index-Czl6lcNT.js +1 -0
  43. package/dist/assets/index-DMAgXK8O.js +1 -0
  44. package/dist/assets/{index-CWDkpwMB.js → index-hdos2Xoy.js} +1 -1
  45. package/dist/assets/{index.es-usLOUMSp.js → index.es-DXC3ul5Q.js} +1 -1
  46. package/dist/assets/infoDiagram-5YYISTIA-ajMB2Qxa.js +2 -0
  47. package/dist/assets/{ishikawaDiagram-UXIWVN3A-zTI5fHSR.js → ishikawaDiagram-YF4QCWOH-DQEp0c9W.js} +1 -1
  48. package/dist/assets/{journeyDiagram-VCZTEJTY-DINdIE0t.js → journeyDiagram-JHISSGLW-D7FItFb_.js} +1 -1
  49. package/dist/assets/{kanban-definition-6JOO6SKY-BWZUu9_H.js → kanban-definition-UN3LZRKU-CgKt-G01.js} +4 -4
  50. package/dist/assets/layout-Boy8vhSP.js +1 -0
  51. package/dist/assets/{main-Bx_fLxV8.js → main-DfVgHWQe.js} +3 -3
  52. package/dist/assets/mindmap-definition-RKZ34NQL-CuKXTTe2.js +96 -0
  53. package/dist/assets/{pieDiagram-DEJITSTG-wmUFaxVG.js → pieDiagram-4H26LBE5-JkCQLkjB.js} +3 -3
  54. package/dist/assets/quadrantDiagram-W4KKPZXB-C3dmbPVz.js +7 -0
  55. package/dist/assets/{requirementDiagram-MS252O5E-4eb0TnXV.js → requirementDiagram-4Y6WPE33-t3HhKU2z.js} +1 -1
  56. package/dist/assets/sankeyDiagram-5OEKKPKP-D8h7Gi4_.js +40 -0
  57. package/dist/assets/sequenceDiagram-3UESZ5HK-BYJgkHcz.js +162 -0
  58. package/dist/assets/stateDiagram-AJRCARHV-CSKaC8Rl.js +1 -0
  59. package/dist/assets/stateDiagram-v2-BHNVJYJU-BbOS1eq2.js +1 -0
  60. package/dist/assets/{timeline-definition-GMOUNBTQ-CMjl6c48.js → timeline-definition-PNZ67QCA-DLdfICX3.js} +1 -1
  61. package/dist/assets/{vendor-antd-C8lKwvI6.js → vendor-antd-rbjGKamc.js} +84 -84
  62. package/dist/assets/{vendor-charts-bhMup2Pu.js → vendor-charts-DtVw-oR1.js} +1 -1
  63. package/dist/assets/{vendor-i18n-BNURlJ23.js → vendor-i18n-Dm-c3D_C.js} +3 -3
  64. package/dist/assets/{vendor-markdown-DZuK0SxV.js → vendor-markdown-D6K7N9C9.js} +1 -1
  65. package/dist/assets/vendor-mermaid-B4BbwE4a.js +308 -0
  66. package/dist/assets/{vendor-pdf-DB-djSmA.js → vendor-pdf-iqXtbvvh.js} +4 -4
  67. package/dist/assets/{vennDiagram-DHZGUBPP-CJuHv1C-.js → vennDiagram-CIIHVFJN-I4nowEuq.js} +1 -1
  68. package/dist/assets/wardley-L42UT6IY-CvpejOzB.js +173 -0
  69. package/dist/assets/wardleyDiagram-YWT4CUSO-Bp8K5VuA.js +78 -0
  70. package/dist/assets/{xychartDiagram-5P7HB3ND-DnywOWSH.js → xychartDiagram-2RQKCTM6-BXOi8G-8.js} +1 -1
  71. package/dist/assets/zh-CN-CXhj-AJU.js +3 -0
  72. package/dist/index.html +5 -5
  73. package/package.json +3 -1
  74. package/dist/assets/App-BxL0EdPR.js +0 -224
  75. package/dist/assets/SubAgentsPanel-ByOD_VrF.js +0 -1
  76. package/dist/assets/_baseUniq-Rkm-pzcz.js +0 -1
  77. package/dist/assets/architectureDiagram-Q4EWVU46-Dr89vzdU.js +0 -36
  78. package/dist/assets/blockDiagram-DXYQGD6D-TGOxvREa.js +0 -132
  79. package/dist/assets/chunk-4TB4RGXK-CZ85N7UX.js +0 -206
  80. package/dist/assets/chunk-OYMX7WX6-D5KuKqj-.js +0 -231
  81. package/dist/assets/classDiagram-6PBFFD2Q-D76pdmuK.js +0 -1
  82. package/dist/assets/classDiagram-v2-HSJHXN6E-D76pdmuK.js +0 -1
  83. package/dist/assets/clone-L6_2PEie.js +0 -1
  84. package/dist/assets/dagre-KV5264BT-DXZkFF5A.js +0 -4
  85. package/dist/assets/diagram-5BDNPKRD-BsQPI1ko.js +0 -10
  86. package/dist/assets/diagram-G4DWMVQ6-BO9UfQRh.js +0 -24
  87. package/dist/assets/diagram-MMDJMWI5-DkWy2py4.js +0 -43
  88. package/dist/assets/diagram-TYMM5635-DkuaI_3A.js +0 -24
  89. package/dist/assets/en-US-CnZu52UQ.js +0 -3
  90. package/dist/assets/gitGraphDiagram-UUTBAWPF-Cq7iSNVm.js +0 -106
  91. package/dist/assets/graph-DP71R45G.js +0 -1
  92. package/dist/assets/index-BBEDlZ5R.js +0 -1
  93. package/dist/assets/index-C8TiuUqm.js +0 -1
  94. package/dist/assets/index-CAQ3YTCz.js +0 -1
  95. package/dist/assets/index-Cj2Jmnr0.js +0 -1
  96. package/dist/assets/index-DNvloxwu.js +0 -1
  97. package/dist/assets/index-DPgfFTH0.js +0 -1
  98. package/dist/assets/index-Dggksxfu.js +0 -1
  99. package/dist/assets/index-GpWoYh67.js +0 -1
  100. package/dist/assets/index-JLScRSdR.js +0 -21
  101. package/dist/assets/infoDiagram-42DDH7IO-Cs719lD3.js +0 -2
  102. package/dist/assets/layout-QZEMSKRD.js +0 -1
  103. package/dist/assets/min-BB314uX0.js +0 -1
  104. package/dist/assets/mindmap-definition-QFDTVHPH-GgqTvonx.js +0 -96
  105. package/dist/assets/quadrantDiagram-34T5L4WZ-Bt7Nxjyo.js +0 -7
  106. package/dist/assets/sankeyDiagram-XADWPNL6-H6jXqw4X.js +0 -10
  107. package/dist/assets/sequenceDiagram-FGHM5R23-DgqfEZPw.js +0 -157
  108. package/dist/assets/stateDiagram-FHFEXIEX-CZrwRbTi.js +0 -1
  109. package/dist/assets/stateDiagram-v2-QKLJ7IA2-CwhUMrAy.js +0 -1
  110. package/dist/assets/vendor-mermaid-C1Gk9PtT.js +0 -309
  111. package/dist/assets/wardley-RL74JXVD-3f0MBifK.js +0 -162
  112. package/dist/assets/wardleyDiagram-NUSXRM2D-DsfJX8FP.js +0 -20
  113. package/dist/assets/zh-CN-NcKxgANL.js +0 -3
@@ -0,0 +1,245 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BfAjm2cg.js","./vendor-markdown-D6K7N9C9.js","./vendor-i18n-Dm-c3D_C.js","./vendor-antd-rbjGKamc.js","./vendor-mermaid-B4BbwE4a.js","./main-DfVgHWQe.js","./main-B6snAd4S.css","./index-BdFrXiGe.js","./index-BC8EjiMM.js","./index-Bi-vGirQ.css","./index-4NqkovnM.js","./index-CJdw34gN.js","./index-BmjFP0ha.js","./core-Cfh-QHsP.js","./index-_XI0Qq6F.js","./vendor-pdf-iqXtbvvh.js","./index-CrnJlXzG.js","./index-3qkG_le_.css","./index-6wyG_o5U.js","./index-B6OABT-M.css","./index-BZvX5d4s.js","./MetricsService-C3SA5O-z.js","./index-D9ODTr93.css","./index-hdos2Xoy.js","./SubAgentsPanel-DankG8co.js","./index-Cej2Q9Bg.js","./index-AIUPRSCn.css","./index-CQnpSDCR.js","./onboardingStorage-BVcEpmTy.js","./vendor-charts-DtVw-oR1.js","./index-DMAgXK8O.js","./index-CLYKYSO0.css","./FeatureGuide-BEvoRR9h.js"])))=>i.map(i=>d[i]);
2
+ var dx=Object.defineProperty;var fx=(e,t,n)=>t in e?dx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Et=(e,t,n)=>fx(e,typeof t!="symbol"?t+"":t,n);import{j as l,M as xr,S as un,a as Ng,t as zg,p as Bg,b as hx,c as Td,d as px,m as Wg,s as mx,y as Ug,e as qg,h as bl,f as Pd,r as Ed,g as Md,i as Hg}from"./vendor-markdown-D6K7N9C9.js";import{a as b,u as Ge,R as dt,i as Ct,c as gx,g as Ms}from"./vendor-i18n-Dm-c3D_C.js";import{_ as Jt,bN as Ad}from"./vendor-mermaid-B4BbwE4a.js";import{t as ut,u as rh,v as yx,$ as vx,aA as oo,b6 as Yg,b7 as bx,a1 as zl,N as je,ax as Sx,O as As,au as ao,b8 as xx,z as Rr,a3 as Rs,b9 as Kg,Q as Tu,j as He,F as Ee,x as ks,w as Jr,Z as Rd,a4 as Bl,q as Sn,ba as wx,bb as _x,l as ft,X as Dn,a2 as rl,a7 as Cx,ab as Pu,bc as kx,bd as Wl,be as Xg,V as jd,bf as Eu,bg as io,bh as Tx,bi as Px,J as Sl,n as Ex,H as Vg,bj as Mx,bk as Ax,W as lo,ar as Rx,o as Ze,a9 as jx,y as Gg,A as cr,G as en,bl as Ul,bm as Jg,aw as Ix,aj as Ox,D as Id,aM as Qg,bn as $x,bo as Lx,bp as Dx,bq as Fx,I as Ts,br as Nx,bs as zx,ap as Od,aq as jr,aB as xl,aL as fo,bt as Bx,bu as Zg,bv as ey,ak as $d,ae as Wx,p as Va,ag as sh,aI as Ux,U as oh,P as ty,b2 as Mu,aS as qx,aD as Hx,an as Yx,bw as Kx,bx as Xx,az as Vx,aN as Gx,by as Jx,bz as Qx,bA as Zx,bB as ew,B as tw,b4 as Js,am as ny,bC as nw,bD as ry,ac as Ld,bE as rw,bF as sw,a6 as ow,bG as ah,bH as ih}from"./vendor-antd-rbjGKamc.js";import{r as aw,A as iw,a as lw}from"./main-DfVgHWQe.js";function sy(e){const[t,n]=b.useState(()=>typeof window<"u"?window.matchMedia(e).matches:!1);return b.useEffect(()=>{if(typeof window>"u")return;const r=window.matchMedia(e);n(r.matches);const s=o=>{n(o.matches)};return r.addEventListener?r.addEventListener("change",s):r.addListener(s),()=>{r.removeEventListener?r.removeEventListener("change",s):r.removeListener(s)}},[e]),t}function ql(){return sy("(max-width: 768px)")}const cw=({chat:e,isSelected:t,compact:n=!1,onSelect:r,onDelete:s,onPin:o,onUnpin:a,onEdit:i,onGenerateTitle:c,onRunProjectDream:d,isGeneratingTitle:h,isRunningProjectDream:m,titleGenerationError:g})=>{const{t:y}=Ge(),[x,S]=b.useState(!1),[_,E]=b.useState(e.title),[T,P]=b.useState(!1),[C,A]=b.useState(!1),{token:I}=ut.useToken(),O=b.useCallback(D=>{D.stopPropagation(),i&&_.trim()&&i(e.id,_.trim()),S(!1)},[e.id,_,i]),$=b.useCallback(D=>{D.stopPropagation(),E(e.title),S(!1)},[e.title]),B=[{key:"pin",icon:e.pinned?l.jsx(rh,{style:{color:I.colorWarning}}):l.jsx(yx,{}),label:e.pinned?y("chat.actions.unpin"):y("chat.actions.pin"),onClick:({domEvent:D})=>{D.stopPropagation(),e.pinned?a(e.id):o(e.id)}},{key:"edit",icon:l.jsx(vx,{}),label:y("chat.chatItem.edit"),onClick:({domEvent:D})=>{D.stopPropagation(),S(!0)}},...c?[{key:"generate-title",icon:h?l.jsx(oo,{}):l.jsx(Yg,{style:g?{color:I.colorError}:void 0}),label:g||y("chat.actions.generateTitle"),disabled:h,onClick:({domEvent:D})=>{D.stopPropagation(),c(e.id)}}]:[],...d?[{key:"run-project-dream",icon:m?l.jsx(oo,{}):l.jsx(bx,{}),label:y("chat.actions.runProjectDream"),disabled:m,onClick:({domEvent:D})=>{D.stopPropagation(),d(e.id)}}]:[],{type:"divider"},{key:"delete",icon:l.jsx(zl,{}),label:y("common.delete"),danger:!0,onClick:({domEvent:D})=>{D.stopPropagation(),s(e.id)}}],te={padding:n?"4px 8px":"5px 8px",borderRadius:I.borderRadiusSM,marginBottom:0,cursor:"pointer",transition:"background-color 0.2s ease, box-shadow 0.2s ease",backgroundColor:t?"var(--lotus-primary-soft)":T||C?"var(--lotus-item-hover-bg)":"transparent",border:"1px solid transparent",borderColor:"transparent",position:"relative",overflow:"visible",boxShadow:t?`inset 2px 0 0 ${I.colorPrimary}`:"none",minHeight:n?28:30},H={flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",fontSize:n?12:12.5,lineHeight:1.3,fontWeight:t?600:500,color:t?"var(--lotus-primary)":I.colorText},L={flex:1,fontSize:I.fontSizeSM,marginRight:I.marginSM},Z=x?[l.jsx(je,{type:"text",size:"small",icon:l.jsx(Sx,{style:{color:I.colorSuccess}}),onClick:O,"aria-label":y("common.save")},"save"),l.jsx(je,{type:"text",size:"small",icon:l.jsx(As,{style:{color:I.colorError}}),onClick:$,"aria-label":y("common.cancel")},"cancel")]:T||C?[l.jsx(ao,{menu:{items:B,className:"lotus-sidebar-actions-menu"},trigger:["click"],placement:"bottomRight",overlayClassName:"lotus-sidebar-actions-dropdown",open:C,onOpenChange:D=>A(D),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(xx,{}),"aria-label":y("common.moreActions","More actions"),onClick:D=>D.stopPropagation(),style:{color:I.colorTextSecondary,borderRadius:I.borderRadiusSM,background:"transparent",width:n?16:18,height:n?16:18,display:"flex",alignItems:"center",justifyContent:"center"}})},"more")]:[];return l.jsx(Rr.Item,{style:te,tabIndex:0,onClick:()=>!x&&r(e.id),onKeyDown:D=>{D.key==="Enter"&&!x?(D.preventDefault(),r(e.id)):(D.key==="Delete"||D.key==="Backspace")&&!x&&D.metaKey&&(D.preventDefault(),s(e.id))},onMouseEnter:()=>P(!0),onMouseLeave:()=>{C||P(!1)},onFocus:()=>P(!0),onBlur:()=>{C||P(!1)},actions:Z,"data-testid":"chat-item",role:"option","aria-selected":t,"aria-label":e.title||y("chat.sidebar.untitledChat"),children:l.jsx("div",{style:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:x?l.jsx(Rs,{value:_,onChange:D=>E(D.target.value),onClick:D=>D.stopPropagation(),onPressEnter:D=>{D.preventDefault(),O(D)},autoFocus:!0,style:L,variant:"borderless",size:"small"}):l.jsxs("div",{style:{...H,display:"flex",alignItems:"center",gap:n?4:I.marginXS,minWidth:0},children:[e.pinned&&l.jsx(rh,{style:{color:I.colorWarning,fontSize:11,flexShrink:0}}),l.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),e.kind==="child"?l.jsx("span",{style:{color:I.colorInfo,fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap"},children:y("chat.chatItem.childTag")}):null,e.planMode?l.jsxs("span",{style:{color:"#722ed1",fontSize:n?10:11,lineHeight:1.2,flexShrink:0,whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:3},children:[l.jsx(Kg,{}),y("chat.planMode.badge","Plan")]}):null]})})})},uw=(e,t)=>e.chat.id===t.chat.id&&e.chat.title===t.chat.title&&e.chat.pinned===t.chat.pinned&&e.chat.planMode===t.chat.planMode&&e.isSelected===t.isSelected&&e.compact===t.compact&&e.isGeneratingTitle===t.isGeneratingTitle&&e.isRunningProjectDream===t.isRunningProjectDream&&e.titleGenerationError===t.titleGenerationError,Au=b.memo(cw,uw);Au.displayName="ChatItem";const lh=e=>({Today:0,Yesterday:1,"This Week":2,"This Month":3})[e]??4,dw=e=>{const t={},n=e.filter(s=>s.pinned);n.length>0&&(t.Pinned=n.sort((s,o)=>o.createdAt-s.createdAt));const r=e.filter(s=>!s.pinned&&!!s.createdByScheduleId);return r.length>0&&(t.Scheduled=r.sort((s,o)=>o.createdAt-s.createdAt)),e.filter(s=>!s.pinned&&!s.createdByScheduleId).forEach(s=>{const a=new Date(s.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});t[a]||(t[a]=[]),t[a].push(s)}),Object.keys(t).forEach(s=>{t[s].sort((o,a)=>a.createdAt-o.createdAt)}),t},fw=e=>{const t=n=>Array.isArray(n)?n.reduce((r,s)=>Math.max(r,s.createdAt),0):Object.values(n).reduce((r,s)=>{const o=s.reduce((a,i)=>Math.max(a,i.createdAt),0);return Math.max(r,o)},0);return Object.keys(e).sort((n,r)=>{if(n==="Pinned")return-1;if(r==="Pinned")return 1;if(n==="Scheduled")return-1;if(r==="Scheduled")return 1;const s=e[n],o=e[r];if(!s||!o)return 0;const a=t(s),i=t(o);return a!==i?i-a:lh(n)-lh(r)})},hw=(e,t)=>e[t]?e[t].map(n=>n.id):[],oy=(e,t)=>e[t]?e[t].length:0,pw=e=>e.createdByScheduleId?"Scheduled":new Date(e.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),ch=(e,t)=>{const r={Today:"chat.sidebar.dateGroups.today",Yesterday:"chat.sidebar.dateGroups.yesterday","This Week":"chat.sidebar.dateGroups.thisWeek","This Month":"chat.sidebar.dateGroups.thisMonth",Pinned:"chat.sidebar.dateGroups.pinned",Scheduled:"chat.sidebar.dateGroups.scheduled"}[e];return r?t(r):e},mw=({groupedChatsByDate:e,childrenByRoot:t,expandedRootIds:n,onToggleRootExpanded:r,sortedDateKeys:s,expandedKeys:o,onCollapseChange:a,currentSessionId:i,onSelectChat:c,onDeleteChat:d,onDeleteByDate:h,onPinChat:m,onUnpinChat:g,onEditTitle:y,onGenerateTitle:x,onRunProjectDream:S,titleGenerationState:_,projectDreamState:E,token:T,hasActiveFilters:P})=>{const{t:C}=Ge(),A=b.useMemo(()=>s.length?s.map(O=>{const $=e[O],B=oy(e,O);return{dateKey:O,dateGroup:$,totalChatsInDate:B}}):[],[e,s]);if(!s.length)return l.jsx(Tu,{image:Tu.PRESENTED_IMAGE_SIMPLE,description:l.jsxs(He,{direction:"vertical",size:4,align:"center",children:[l.jsx("span",{style:{color:T.colorTextSecondary},children:P?C("chat.sidebar.empty.noMatches","No matching sessions"):C("chat.sidebar.empty.noSessions")}),l.jsx("span",{style:{color:T.colorTextSecondary,fontSize:12},children:P?C("chat.sidebar.empty.filterHint","Try adjusting your search or filters"):C("chat.sidebar.empty.hint")}),P&&l.jsx(je,{size:"small",type:"link",onClick:()=>{var $;const O=document.querySelector('[data-testid="sidebar-search-input"] input, .lotus-sidebar-search input');if(O){const B=($=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))==null?void 0:$.set;B==null||B.call(O,""),O.dispatchEvent(new Event("input",{bubbles:!0}))}},children:C("chat.sidebar.empty.clearFilters","Clear filters")})]})});const I=new Set(o);return l.jsx("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:2},children:A.map(({dateKey:O,dateGroup:$,totalChatsInDate:B})=>{const te=I.has(O);return l.jsxs("div",{style:{borderRadius:T.borderRadiusSM,background:"transparent",padding:0},children:[l.jsxs(Ee,{align:"center",justify:"space-between",style:{cursor:"pointer",padding:"4px 8px",borderRadius:T.borderRadiusSM,transition:"background-color 0.2s ease, color 0.2s ease",border:"1px solid transparent"},role:"button",tabIndex:0,"aria-expanded":te,"aria-label":`${ch(O,C)} (${B})`,onKeyDown:H=>{if(H.key==="Enter"||H.key===" "){H.preventDefault();const L=new Set(I);L.has(O)?L.delete(O):L.add(O),a(Array.from(L))}},onMouseEnter:H=>{H.currentTarget.style.background="var(--lotus-sidebar-item-hover-bg, rgba(204, 251, 241, 0.76))",H.currentTarget.style.borderColor="transparent";const L=H.currentTarget.querySelector(".chat-sidebar-date-group-delete");L&&(L.style.opacity="1")},onMouseLeave:H=>{H.currentTarget.style.background="transparent",H.currentTarget.style.borderColor="transparent";const L=H.currentTarget.querySelector(".chat-sidebar-date-group-delete");L&&(L.style.opacity="0")},onClick:()=>{const H=new Set(I);H.has(O)?H.delete(O):H.add(O),a(Array.from(H))},className:"chat-sidebar-date-group-header",children:[l.jsxs(Ee,{align:"center",gap:"small",style:{minWidth:0},children:[te?l.jsx(ks,{style:{fontSize:12,opacity:.6}}):l.jsx(Jr,{style:{fontSize:12,opacity:.6}}),l.jsxs("span",{style:{fontSize:10.5,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.3px",color:O==="Today"?"var(--lotus-primary)":T.colorTextSecondary,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[ch(O,C)," (",B,")"]})]}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(zl,{}),className:"chat-sidebar-date-group-delete",style:{color:T.colorTextTertiary,opacity:0,transition:"opacity 0.2s ease"},onClick:H=>{H.stopPropagation(),h(O)}})]}),te?l.jsx("div",{style:{marginTop:2},children:l.jsx(Rr,{itemLayout:"horizontal",dataSource:$,split:!1,renderItem:H=>{var L,Z,D,F,de,Q;return l.jsxs("div",{children:[l.jsxs(Ee,{align:"center",gap:6,style:{padding:"4px 8px"},children:[(L=t[H.id])!=null&&L.length?l.jsx(je,{size:"small",type:"text",style:{padding:0,width:18,minWidth:18,height:18},"aria-label":n.has(H.id)?C("chat.sidebar.actions.collapseChildren"):C("chat.sidebar.actions.expandChildren"),onClick:ge=>{ge.preventDefault(),ge.stopPropagation(),r(H.id)},children:n.has(H.id)?l.jsx(ks,{style:{fontSize:12}}):l.jsx(Jr,{style:{fontSize:12}})}):l.jsx("div",{style:{width:18}}),l.jsx("div",{style:{flex:1,minWidth:0,marginLeft:-8},children:l.jsx(Au,{chat:H,compact:!0,isSelected:H.id===i,onSelect:c,onDelete:d,onPin:m,onUnpin:g,onEdit:y,onGenerateTitle:x,onRunProjectDream:S,isGeneratingTitle:((Z=_[H.id])==null?void 0:Z.status)==="loading",isRunningProjectDream:((D=E[H.id])==null?void 0:D.status)==="loading",titleGenerationError:((F=_[H.id])==null?void 0:F.status)==="error"?(de=_[H.id])==null?void 0:de.error:void 0})})]}),n.has(H.id)&&(((Q=t[H.id])==null?void 0:Q.length)??0)>0?l.jsx("div",{style:{marginLeft:18,marginTop:1},children:l.jsx(Rr,{itemLayout:"horizontal",dataSource:t[H.id],split:!1,renderItem:ge=>{var G,ce,ve,ue;return l.jsx("div",{style:{paddingLeft:8,borderLeft:`1px solid ${T.colorBorderSecondary}`,marginLeft:2},children:l.jsx(Au,{chat:ge,compact:!0,isSelected:ge.id===i,onSelect:c,onDelete:d,onPin:m,onUnpin:g,onEdit:y,onGenerateTitle:x,onRunProjectDream:S,isGeneratingTitle:((G=_[ge.id])==null?void 0:G.status)==="loading",isRunningProjectDream:((ce=E[ge.id])==null?void 0:ce.status)==="loading",titleGenerationError:((ve=_[ge.id])==null?void 0:ve.status)==="error"?(ue=_[ge.id])==null?void 0:ue.error:void 0})},ge.id)}})}):null]},H.id)}})}):null]},O)})})},uh=e=>{let t;const n=new Set,r=(d,h)=>{const m=typeof d=="function"?d(t):d;if(!Object.is(m,t)){const g=t;t=h??(typeof m!="object"||m===null)?m:Object.assign({},t,m),n.forEach(y=>y(t,g))}},s=()=>t,i={setState:r,getState:s,getInitialState:()=>c,subscribe:d=>(n.add(d),()=>n.delete(d))},c=t=e(r,s,i);return i},gw=e=>e?uh(e):uh,yw=e=>e;function vw(e,t=yw){const n=dt.useSyncExternalStore(e.subscribe,()=>t(e.getState()),()=>t(e.getInitialState()));return dt.useDebugValue(n),n}const dh=e=>{const t=gw(e),n=r=>vw(t,r);return Object.assign(n,t),n},es=e=>e?dh(e):dh,bw="copilot_ui_theme_v1";function Sw(){var e;try{const t=localStorage.getItem(bw);if(t==="light"||t==="dark")return t}catch{}return(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}const wl=es(e=>({themeMode:Sw(),setThemeMode:t=>e({themeMode:t}),toggleTheme:()=>e(t=>({themeMode:t.themeMode==="dark"?"light":"dark"}))})),xw="2026.5.29",ww={version:xw},_w=ww.version,{Text:Cw}=ft,kw=({collapsed:e,onNewChat:t,onOpenSettings:n,token:r})=>{const{t:s}=Ge(),o=wl(h=>h.themeMode),a=wl(h=>h.toggleTheme),i=s("chat.sidebar.newSession"),c=s("settings.page.title"),d=o==="dark"?s("settings.app.lightMode","Light mode"):s("settings.app.darkMode","Dark mode");return l.jsxs(Ee,{vertical:!0,gap:e?"small":10,style:{padding:e?10:12,background:"transparent",borderTop:`1px solid ${r.colorBorderSecondary}`},children:[l.jsx(je,{"data-testid":"new-chat","data-tour-id":"new-session",type:"primary",icon:l.jsx(Rd,{}),onClick:t,block:!e,shape:"default",size:"small",title:i,"aria-label":i,className:"lotus-primary-cta",style:{...e?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:e?40:38,fontWeight:600},children:!e&&i}),l.jsxs(Ee,{gap:6,align:"center",children:[l.jsx(je,{"data-testid":"open-settings","data-tour-id":"open-settings",icon:l.jsx(Bl,{}),onClick:n,block:!e,shape:"default",size:"small",title:c,"aria-label":c,className:"lotus-secondary-button",style:{...e?{width:"40px",height:"40px",margin:"0 auto"}:{},borderRadius:r.borderRadiusLG,minHeight:e?40:36,flex:e?void 0:1},children:!e&&c}),!e&&l.jsx(Sn,{title:d,placement:"top",children:l.jsx(je,{"data-testid":"toggle-theme",type:"text",icon:o==="dark"?l.jsx(wx,{}):l.jsx(_x,{}),onClick:a,"aria-label":d,className:"lotus-toolbar-icon",style:{width:36,height:36,borderRadius:r.borderRadiusLG,flexShrink:0}})})]}),!e&&l.jsxs(Cw,{type:"secondary","data-testid":"app-version-badge",style:{fontSize:11,textAlign:"center",userSelect:"text"},children:[s("settings.appTab.runningVersion","Running version"),": v",_w]})]})},fh=e=>Symbol.iterator in e,hh=e=>"entries"in e,ph=(e,t)=>{const n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(const[s,o]of n)if(!Object.is(o,r.get(s)))return!1;return!0},Tw=(e,t)=>{const n=e[Symbol.iterator](),r=t[Symbol.iterator]();let s=n.next(),o=r.next();for(;!s.done&&!o.done;){if(!Object.is(s.value,o.value))return!1;s=n.next(),o=r.next()}return!!s.done&&!!o.done};function Pw(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:fh(e)&&fh(t)?hh(e)&&hh(t)?ph(e,t):Tw(e,t):ph({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function Wa(e){const t=dt.useRef(void 0);return n=>{const r=e(n);return Pw(t.current,r)?t.current:t.current=r}}const ay=()=>!1,iy=e=>{if(!ay())return!1;try{return localStorage.getItem(e)==="1"}catch{return!1}},Ew=()=>iy("bodhi_debug_ui_layout"),Gn=(e,t)=>{Ew()&&console.log(`[ui-layout] ${e}`,t??"")},Re=(e,t,...n)=>{ay()&&iy("bodhi_debug_verbose")&&console.log(`${e} ${t}`,...n)};var Oc={};const $c="copilot_backend_base_url",ly="http://127.0.0.1:9562/v1",Mw=9562,Ps=e=>e.trim().replace(/\/+$/,""),Aw=()=>{const t=Oc==null?void 0:Oc.VITE_BACKEND_BASE_URL;return t?Ps(t):null},ii=()=>{const e=globalThis.location;if(!e)return null;const t=typeof e.protocol=="string"?e.protocol:"",n=typeof e.hostname=="string"?e.hostname:"";return!t||!n?null:{protocol:t,hostname:n}},Dd=e=>{const t=e.trim().toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="::1"},Rw=(e=ii())=>(e==null?void 0:e.protocol.toLowerCase())==="https:",jw=e=>{try{return new URL(Ps(e)).protocol.toLowerCase()==="http:"}catch{return!1}},Iw=e=>{try{const t=new URL(Ps(e));return Dd(t.hostname)}catch{return!1}},Ow=(e=ii())=>{if(!e)return null;const t=e.protocol.toLowerCase(),n=e.hostname.trim();return n?t==="https:"?Ps(`https://${n}/v1`):t==="http:"?Ps(`http://${n}/v1`):null:null},$w=(e,t=ii())=>{if(!t)return!1;const n=t.hostname.trim();return n?Rw(t)&&jw(e)?!0:Dd(n)?!1:Iw(e):!1},Lw=(e=ii())=>{if(!e)return null;const t=e.protocol.toLowerCase();if(t!=="http:"&&t!=="https:")return null;const n=e.hostname.trim();return n?t==="https:"?Ow(e):Dd(n)?ly:Ps(`http://${n}:${Mw}/v1`):null},Dw=()=>{const e=Aw();return e||(Lw()??ly)},ho=()=>{const e=ii(),t=localStorage.getItem($c);if(t){const n=Ps(t);if($w(n,e))console.warn("Ignoring stored backend override because it is incompatible with the current page origin:",n),localStorage.removeItem($c);else try{return new URL(n),n}catch{console.warn("Invalid stored backend URL, using default:",n),localStorage.removeItem($c)}}return Dw()};class Ga extends Error{constructor(t,n,r,s){super(t),this.status=n,this.statusText=r,this.body=s,this.name="ApiError"}}function QO(e){return e instanceof Ga}class cy{constructor(t={}){Et(this,"baseUrl");Et(this,"defaultHeaders");this.baseUrl=t.baseUrl??this.resolveBaseUrl(),this.defaultHeaders=t.defaultHeaders??{"Content-Type":"application/json"}}resolveBaseUrl(){const t=ho().trim().replace(/\/+$/,"");return t.endsWith("/v1")?t:`${t}/v1`}buildUrl(t){const n=t.replace(/^\/+/,"");return`${this.baseUrl}/${n}`}async handleResponse(t){var r,s,o;if(!t.ok){const a=await t.text().catch(()=>{});let i=t.statusText;if(a)try{const c=JSON.parse(a),d=typeof(c==null?void 0:c.error)=="object"?(r=c.error)==null?void 0:r.message:void 0;i=(typeof(c==null?void 0:c.error)=="string"?c.error:void 0)||(typeof d=="string"?d:void 0)||c.message||c.detail||t.statusText}catch{i=a||t.statusText}throw new Ga(i,t.status,t.statusText,a)}return t.status===204?void 0:(((o=(s=t.headers)==null?void 0:s.get)==null?void 0:o.call(s,"content-type"))||"").includes("application/json")?t.json():typeof t.text=="function"?await t.text():t.json()}delay(t){return new Promise(n=>setTimeout(n,t))}async fetchWithRetry(t,n,r=3){let s=null;for(let o=0;o<r;o++)try{const a=await fetch(t,n);if(a.status>=500&&o<r-1){const i=1e3*Math.pow(2,o);console.warn(`Request failed with ${a.status}, retrying in ${i}ms (attempt ${o+1}/${r})`),await this.delay(i);continue}return a}catch(a){if(s=a,o<r-1){const i=1e3*Math.pow(2,o);console.warn(`Network error: ${s.message}, retrying in ${i}ms (attempt ${o+1}/${r})`),await this.delay(i)}}throw s||new Error("Max retries exceeded")}async get(t,n){const r=this.buildUrl(t),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const a=await this.fetchWithRetry(r,{...n,method:"GET",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(a)}finally{clearTimeout(o)}}async post(t,n,r){const s=this.buildUrl(t),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=await this.fetchWithRetry(s,{...r,method:"POST",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(i)}finally{clearTimeout(a)}}async put(t,n,r){const s=this.buildUrl(t),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=await this.fetchWithRetry(s,{...r,method:"PUT",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(i)}finally{clearTimeout(a)}}async patch(t,n,r){const s=this.buildUrl(t),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=await this.fetchWithRetry(s,{...r,method:"PATCH",headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",body:n?JSON.stringify(n):void 0,signal:o.signal},3);return this.handleResponse(i)}finally{clearTimeout(a)}}async delete(t,n){const r=this.buildUrl(t),s=new AbortController,o=setTimeout(()=>s.abort(),3e4);try{const a=await this.fetchWithRetry(r,{...n,method:"DELETE",headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include",signal:s.signal},3);return this.handleResponse(a)}finally{clearTimeout(o)}}async request(t,n,r){const s=this.buildUrl(n),o=new AbortController,a=setTimeout(()=>o.abort(),3e4);try{const i=await this.fetchWithRetry(s,{...r,method:t,headers:{...this.defaultHeaders,...r==null?void 0:r.headers},credentials:"include",signal:o.signal},3);return this.handleResponse(i)}finally{clearTimeout(a)}}async fetchRaw(t,n){const r=this.buildUrl(t),s=await fetch(r,{...n,headers:{...this.defaultHeaders,...n==null?void 0:n.headers},credentials:"include"});if(!s.ok)throw new Ga(`API request failed: ${s.statusText}`,s.status,s.statusText);return s}}const Ve=new cy,xt=new cy({baseUrl:(()=>{let e=ho().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`})()}),Fw=e=>e?{client_message_count:e.client_message_count,client_last_message_id:e.client_last_message_id??null,client_has_pending_question:e.client_has_pending_question,client_pending_question_tool_call_id:e.client_pending_question_tool_call_id??null}:null,Nw=e=>e?{need_sync:e.need_sync,reason:e.reason??null,server_message_count:e.server_message_count,server_last_message_id:e.server_last_message_id??null,has_pending_question:e.has_pending_question,pending_question_tool_call_id:e.pending_question_tool_call_id??null,has_pending_user_message:e.has_pending_user_message}:null,zw=e=>{var n;const t=e.messages[e.messages.length-1];return{session_id:e.session_id,messageCount:e.messages.length,lastMessageId:(t==null?void 0:t.id)??null,lastRole:(t==null?void 0:t.role)??null,compressionEvents:((n=e.compression_events)==null?void 0:n.length)??0}},Bw=e=>({count:e.length,runningCount:e.filter(t=>t.is_running).length,sessions:e.slice(0,10).map(t=>({id:t.id,is_running:t.is_running,last_run_status:t.last_run_status??null,message_count:t.message_count,has_pending_question:t.has_pending_question??!1,running_child_count:t.running_child_count??0,updated_at:t.updated_at}))}),Ww=e=>({count:e.sessions.length,sessions:e.sessions.map(t=>({session_id:t.session_id,run_id:t.run_id,round_count:t.round_count,last_event_at:t.last_event_at??null,last_tool_name:t.last_tool_name??null,last_tool_phase:t.last_tool_phase??null,criticalEventCount:t.last_critical_events.length,runningChildCount:t.running_child_session_ids.length}))}),ji=e=>({type:e.type,session_id:e.session_id??null,run_id:e.run_id??null,round_count:e.round_count??null,message:e.message??null,error:e.error??null,tool_call_id:e.tool_call_id??null}),gs=class gs{static getInstance(){return gs.instance||(gs.instance=new gs),gs.instance}async sendMessage(t){var r,s,o;Re("[AgentClient]","chat.request",{sessionId:t.session_id??null,model:t.model,modelRef:t.model_ref??null,provider:t.provider??null,messageLength:t.message.length,hasImages:(((r=t.images)==null?void 0:r.length)??0)>0,imageCount:((s=t.images)==null?void 0:s.length)??0,selectedSkillCount:((o=t.selected_skill_ids)==null?void 0:o.length)??0,workspacePath:t.workspace_path??null});const n=await xt.post("chat",t);return Re("[AgentClient]","chat.response",{requestedSessionId:t.session_id??null,sessionId:n.session_id,status:n.status}),n}async execute(t,n,r,s,o){const a={};n&&(a.model=n),r&&(a.reasoning_effort=r),s&&(a.client_sync=s),o&&(a.model_ref=o,a.provider=o.provider),Re("[AgentClient]","execute.request",{sessionId:t,model:a.model??null,reasoningEffort:a.reasoning_effort??null,modelRef:a.model_ref??null,provider:a.provider??null,clientSync:Fw(a.client_sync)});const i=await xt.post(`execute/${t}`,a);return Re("[AgentClient]","execute.response",{sessionId:t,status:i.status,runId:i.run_id??null,eventsUrl:i.events_url,sync:Nw(i.sync)}),i}async listSessions(){Re("[AgentClient]","sessions.list.request",{});const t=await xt.get("sessions");return Re("[AgentClient]","sessions.list.response",Bw(t.sessions)),t}async getTaskList(t){const n=encodeURIComponent(t),r=await xt.get(`task/${n}`);if(!(typeof r.title=="string"||r.items.length>0))return null;const o=new Date().toISOString();return{session_id:r.session_id,title:r.title??"Task List",items:r.items,created_at:o,updated_at:o}}async createSession(t){return xt.post("sessions",t)}async patchSession(t,n){const r=encodeURIComponent(t);await xt.patch(`sessions/${r}`,n)}async regenerateSessionTitle(t){const n=encodeURIComponent(t);await xt.post(`sessions/${n}/regenerate-title`)}async getSessionSystemPrompt(t){const n=encodeURIComponent(t);return xt.get(`sessions/${n}/system-prompt`)}async clearSession(t){const n=encodeURIComponent(t);await xt.post(`sessions/${n}/clear`)}async runProjectDream(t){const n=encodeURIComponent(t);return xt.post(`sessions/${n}/project-dream/run`)}async truncateSessionMessages(t,n){const r=encodeURIComponent(t);return xt.post(`sessions/${r}/messages/truncate`,n)}async restoreSessionState(t,n){const r=encodeURIComponent(t);return xt.post(`sessions/${r}/restore`,n)}async patchSessionMessage(t,n,r){const s=encodeURIComponent(t),o=encodeURIComponent(n);await xt.patch(`sessions/${s}/messages/${o}`,r)}async deleteSessionMessage(t,n){const r=encodeURIComponent(t),s=encodeURIComponent(n);await xt.delete(`sessions/${r}/messages/${s}`)}async cleanupSessions(t,n){await xt.post("sessions/cleanup",{mode:t,keep_pinned:n})}async devResetSessions(){await xt.post("dev/reset")}async getRunningSessions(){Re("[AgentClient]","runs.active.request",{});const t=await xt.get("runs/active");return Re("[AgentClient]","runs.active.response",Ww(t)),t}async listSchedules(){return xt.get("schedules")}async createSchedule(t){return xt.post("schedules",t)}async patchSchedule(t,n){const r=encodeURIComponent(t);return xt.patch(`schedules/${r}`,n)}async deleteSchedule(t){const n=encodeURIComponent(t);await xt.delete(`schedules/${n}`)}async runScheduleNow(t){const n=encodeURIComponent(t);await xt.post(`schedules/${n}/run`)}async listScheduleSessions(t){const n=encodeURIComponent(t);return xt.get(`schedules/${n}/sessions`)}async listScheduleRuns(t){const n=encodeURIComponent(t);return xt.get(`schedules/${n}/runs`)}async subscribeToEvents(t,n,r){const s=r==null?void 0:r.signal;Re("[AgentClient]","events.subscribe.request",{sessionId:t});const o=ho().trim().replace(/\/+$/,""),i=`${o.endsWith("/v1")?o.slice(0,-3):o}/api/v1/events/${encodeURIComponent(t)}`;return Re("[AgentClient]","events.subscribe.url",{sessionId:t,eventsUrl:i}),await new Promise((c,d)=>{if(s!=null&&s.aborted){Re("[AgentClient]","events.subscribe.aborted_before_connect",{sessionId:t}),c();return}let h=!1,m=!1,g=null;const y=()=>{Re("[AgentClient]","events.subscribe.abort",{sessionId:t,terminalSeen:m}),S()},x=()=>{g&&(g.close(),g=null),s==null||s.removeEventListener("abort",y)},S=()=>{h||(h=!0,Re("[AgentClient]","events.subscribe.resolve",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),x(),c())},_=E=>{h||(h=!0,Re("[AgentClient]","events.subscribe.reject",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1,error:E}),x(),d(E))};s==null||s.addEventListener("abort",y,{once:!0});try{g=new EventSource(i,{withCredentials:!0})}catch(E){_(E);return}g.onopen=()=>{Re("[AgentClient]","events.subscribe.open",{sessionId:t})},g.onmessage=E=>{const T=E.data;if(T==="[DONE]"){m=!0,Re("[AgentClient]","events.subscribe.done",{sessionId:t}),S();return}if(T!=="[KEEPALIVE]")try{const P=JSON.parse(T);(P.type==="execution_started"||P.type==="complete"||P.type==="cancelled"||P.type==="error"||P.type==="runner_progress"||P.type==="need_clarification")&&Re("[AgentClient]","events.subscribe.event",{sessionId:t,...ji(P)}),this.handleEvent(P,n),(P.type==="complete"||P.type==="cancelled"||P.type==="error")&&(m=!0)}catch(P){console.warn("Failed to parse event:",T,P)}},g.onerror=()=>{if(Re("[AgentClient]","events.subscribe.error",{sessionId:t,terminalSeen:m,aborted:(s==null?void 0:s.aborted)??!1}),s!=null&&s.aborted||m){S();return}_(new Error(`EventSource connection failed for session ${t}`))}})}handleEvent(t,n){var r,s,o,a,i,c,d,h,m,g,y,x,S,_,E,T,P,C,A,I,O,$,B,te,H,L,Z,D,F,de,Q;switch(t.type){case"token":(r=n.onToken)==null||r.call(n,t.content||"");break;case"reasoning_token":(s=n.onReasoningToken)==null||s.call(n,t.content||"");break;case"tool_token":(o=n.onToolToken)==null||o.call(n,t.tool_call_id||"",t.content||"");break;case"tool_start":(a=n.onToolStart)==null||a.call(n,t.tool_call_id||"",t.tool_name||"",t.arguments||{});break;case"tool_complete":t.result&&((i=n.onToolComplete)==null||i.call(n,t.tool_call_id||"",t.result));break;case"tool_error":(c=n.onToolError)==null||c.call(n,t.tool_call_id||"",t.error||"");break;case"task_list_updated":t.task_list&&((d=n.onTaskListUpdated)==null||d.call(n,t.task_list));break;case"task_list_item_progress":if(t.session_id&&t.item_id&&t.status&&t.tool_calls_count!==void 0&&t.version!==void 0){const ge=t.status;if(!(ge==="pending"||ge==="in_progress"||ge==="completed"||ge==="blocked"))break;(h=n.onTaskListItemProgress)==null||h.call(n,{session_id:t.session_id,item_id:t.item_id,status:ge,tool_calls_count:t.tool_calls_count,version:t.version})}break;case"task_list_completed":t.session_id&&t.total_rounds!==void 0&&t.total_tool_calls!==void 0&&((m=n.onTaskListCompleted)==null||m.call(n,t.session_id,t.total_rounds,t.total_tool_calls,t.completed_at));break;case"task_evaluation_started":t.session_id&&t.items_count!==void 0&&((g=n.onTaskEvaluationStarted)==null||g.call(n,t.session_id,t.items_count));break;case"task_evaluation_completed":t.session_id&&t.updates_count!==void 0&&t.reasoning&&((y=n.onTaskEvaluationCompleted)==null||y.call(n,t.session_id,t.updates_count,t.reasoning));break;case"token_budget_updated":t.usage&&"system_tokens"in t.usage&&((x=n.onTokenBudgetUpdated)==null||x.call(n,t.usage));break;case"context_compression_status":typeof t.phase=="string"&&typeof t.status=="string"&&((S=n.onContextCompressionStatus)==null||S.call(n,t.phase,t.status));break;case"tool_lifecycle":(_=n.onToolLifecycle)==null||_.call(n,t.tool_call_id||"",t.tool_name||"",t.phase||"",t.elapsed_ms,t.is_mutating,t.auto_approved,t.summary,t.error);break;case"context_summarized":t.summary_info&&((E=n.onContextSummarized)==null||E.call(n,t.summary_info));break;case"context_pressure_notification":typeof t.percent=="number"&&typeof t.level=="string"&&((T=n.onContextPressureNotification)==null||T.call(n,t.percent,t.level,t.message||""));break;case"sub_agent_started":t.parent_session_id&&t.child_session_id&&((P=n.onSubAgentStarted)==null||P.call(n,t.parent_session_id,t.child_session_id,t.title));break;case"sub_agent_event":t.parent_session_id&&t.child_session_id&&t.event&&((C=n.onSubAgentEvent)==null||C.call(n,t.parent_session_id,t.child_session_id,t.event));break;case"sub_agent_heartbeat":t.parent_session_id&&t.child_session_id&&t.timestamp&&((A=n.onSubAgentHeartbeat)==null||A.call(n,t.parent_session_id,t.child_session_id,t.timestamp));break;case"sub_agent_completed":t.parent_session_id&&t.child_session_id&&((I=n.onSubAgentCompleted)==null||I.call(n,t.parent_session_id,t.child_session_id,typeof t.status=="string"?t.status:"completed",t.error));break;case"execution_started":(O=n.onExecutionStarted)==null||O.call(n,t.run_id||"",t.started_at);break;case"runner_progress":t.session_id&&typeof t.round_count=="number"&&(($=n.onRunnerProgress)==null||$.call(n,t.session_id,t.round_count));break;case"need_clarification":(B=n.onNeedClarification)==null||B.call(n,t);break;case"session_title_updated":t.session_id&&typeof t.title=="string"&&typeof t.title_version=="number"&&(t.source==="auto"||t.source==="manual"||t.source==="fallback")&&typeof t.updated_at=="string"&&((te=n.onSessionTitleUpdated)==null||te.call(n,{type:"session_title_updated",session_id:t.session_id,title:t.title,title_version:t.title_version,source:t.source,updated_at:t.updated_at}));break;case"session_pinned_updated":t.session_id&&typeof t.pinned=="boolean"&&typeof t.updated_at=="string"&&((H=n.onSessionPinnedUpdated)==null||H.call(n,{type:"session_pinned_updated",session_id:t.session_id,pinned:t.pinned,updated_at:t.updated_at}));break;case"plan_mode_entered":(L=n.onPlanModeEntered)==null||L.call(n,t);break;case"plan_mode_exited":(Z=n.onPlanModeExited)==null||Z.call(n,t);break;case"plan_file_updated":(D=n.onPlanFileUpdated)==null||D.call(n,t);break;case"complete":Re("[AgentClient]","events.dispatch.complete",ji(t)),(F=n.onComplete)==null||F.call(n,t.usage);break;case"cancelled":Re("[AgentClient]","events.dispatch.cancelled",ji(t)),(de=n.onCancelled)==null||de.call(n,t.message);break;case"error":Re("[AgentClient]","events.dispatch.error",ji(t)),(Q=n.onError)==null||Q.call(n,t.message||t.error||"Unknown error");break;default:console.warn("Unknown event type:",t)}}async stopGeneration(t){await xt.post(`stop/${t}`)}async deleteSession(t){const n=encodeURIComponent(t);await xt.delete(`sessions/${n}`)}async getHistory(t){Re("[AgentClient]","history.request",{sessionId:t});const n=await xt.get(`history/${t}`);return Re("[AgentClient]","history.response",zw(n)),n}async healthCheck(){try{return await xt.get("health"),!0}catch{return!1}}};Et(gs,"instance");let er=gs;const to=er.getInstance(),mh="provider",Ua=es(e=>({isOpen:!1,origin:"chat",activeTabKey:mh,open:(t,n=mh)=>e({isOpen:!0,origin:t,activeTabKey:n}),close:()=>e({isOpen:!1}),setActiveTabKey:t=>e({activeTabKey:t})})),gh={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},Ja=new Map,Ii=e=>{const t=Ja.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([n,r])=>[n,r.getState()])):{}},Uw=(e,t,n)=>{if(e===void 0)return{type:"untracked",connection:t.connect(n)};const r=Ja.get(n.name);if(r)return{type:"tracked",store:e,...r};const s={connection:t.connect(n),stores:{}};return Ja.set(n.name,s),{type:"tracked",store:e,...s}},qw=(e,t)=>{if(t===void 0)return;const n=Ja.get(e);n&&(delete n.stores[t],Object.keys(n.stores).length===0&&Ja.delete(e))},Hw=e=>{var t,n;if(!e)return;const r=e.split(`
3
+ `),s=r.findIndex(a=>a.includes("api.setState"));if(s<0)return;const o=((t=r[s+1])==null?void 0:t.trim())||"";return(n=/.+ (.+) .+/.exec(o))==null?void 0:n[1]},Yw=(e,t={})=>(n,r,s)=>{const{enabled:o,anonymousActionType:a,store:i,...c}=t;let d;try{d=(o??(gh?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!d)return e(n,r,s);const{connection:h,...m}=Uw(i,d,c);let g=!0;s.setState=(S,_,E)=>{const T=n(S,_);if(!g)return T;const P=E===void 0?{type:a||Hw(new Error().stack)||"anonymous"}:typeof E=="string"?{type:E}:E;return i===void 0?(h==null||h.send(P,r()),T):(h==null||h.send({...P,type:`${i}/${P.type}`},{...Ii(c.name),[i]:s.getState()}),T)},s.devtools={cleanup:()=>{h&&typeof h.unsubscribe=="function"&&h.unsubscribe(),qw(c.name,i)}};const y=(...S)=>{const _=g;g=!1,n(...S),g=_},x=e(s.setState,r,s);if(m.type==="untracked"?h==null||h.init(x):(m.stores[m.store]=s,h==null||h.init(Object.fromEntries(Object.entries(m.stores).map(([S,_])=>[S,S===m.store?x:_.getState()])))),s.dispatchFromDevtools&&typeof s.dispatch=="function"){let S=!1;const _=s.dispatch;s.dispatch=(...E)=>{(gh?"production":void 0)!=="production"&&E[0].type==="__setState"&&!S&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),S=!0),_(...E)}}return h.subscribe(S=>{var _;switch(S.type){case"ACTION":if(typeof S.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return Lc(S.payload,E=>{if(E.type==="__setState"){if(i===void 0){y(E.state);return}Object.keys(E.state).length!==1&&console.error(`
4
+ [zustand devtools middleware] Unsupported __setState action format.
5
+ When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
6
+ and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
7
+ `);const T=E.state[i];if(T==null)return;JSON.stringify(s.getState())!==JSON.stringify(T)&&y(T);return}s.dispatchFromDevtools&&typeof s.dispatch=="function"&&s.dispatch(E)});case"DISPATCH":switch(S.payload.type){case"RESET":return y(x),i===void 0?h==null?void 0:h.init(s.getState()):h==null?void 0:h.init(Ii(c.name));case"COMMIT":if(i===void 0){h==null||h.init(s.getState());return}return h==null?void 0:h.init(Ii(c.name));case"ROLLBACK":return Lc(S.state,E=>{if(i===void 0){y(E),h==null||h.init(s.getState());return}y(E[i]),h==null||h.init(Ii(c.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return Lc(S.state,E=>{if(i===void 0){y(E);return}JSON.stringify(s.getState())!==JSON.stringify(E[i])&&y(E[i])});case"IMPORT_STATE":{const{nextLiftedState:E}=S.payload,T=(_=E.computedStates.slice(-1)[0])==null?void 0:_.state;if(!T)return;y(i===void 0?T:T[i]),h==null||h.send(null,E);return}case"PAUSE_RECORDING":return g=!g}return}}),x},Kw=Yw,Lc=(e,t)=>{let n;try{n=JSON.parse(e)}catch(r){console.error("[zustand devtools middleware] Could not parse the received json",r)}n!==void 0&&t(n)},Xw=e=>(t,n,r)=>{const s=r.subscribe;return r.subscribe=(a,i,c)=>{let d=a;if(i){const h=(c==null?void 0:c.equalityFn)||Object.is;let m=a(r.getState());d=g=>{const y=a(g);if(!h(m,y)){const x=m;i(m=y,x)}},c!=null&&c.fireImmediately&&i(m,m)}return s(d)},e(t,n,r)},Vw=Xw;function Gw(e,t){let n;try{n=e()}catch{return}return{getItem:s=>{var o;const a=c=>c===null?null:JSON.parse(c,void 0),i=(o=n.getItem(s))!=null?o:null;return i instanceof Promise?i.then(a):a(i)},setItem:(s,o)=>n.setItem(s,JSON.stringify(o,void 0)),removeItem:s=>n.removeItem(s)}}const Ru=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(r){return Ru(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return Ru(r)(n)}}}},Jw=(e,t)=>(n,r,s)=>{let o={storage:Gw(()=>localStorage),partialize:S=>S,version:0,merge:(S,_)=>({..._,...S}),...t},a=!1;const i=new Set,c=new Set;let d=o.storage;if(!d)return e((...S)=>{console.warn(`[zustand persist middleware] Unable to update item '${o.name}', the given storage is currently unavailable.`),n(...S)},r,s);const h=()=>{const S=o.partialize({...r()});return d.setItem(o.name,{state:S,version:o.version})},m=s.setState;s.setState=(S,_)=>{m(S,_),h()};const g=e((...S)=>{n(...S),h()},r,s);s.getInitialState=()=>g;let y;const x=()=>{var S,_;if(!d)return;a=!1,i.forEach(T=>{var P;return T((P=r())!=null?P:g)});const E=((_=o.onRehydrateStorage)==null?void 0:_.call(o,(S=r())!=null?S:g))||void 0;return Ru(d.getItem.bind(d))(o.name).then(T=>{if(T)if(typeof T.version=="number"&&T.version!==o.version){if(o.migrate){const P=o.migrate(T.state,T.version);return P instanceof Promise?P.then(C=>[!0,C]):[!0,P]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,T.state];return[!1,void 0]}).then(T=>{var P;const[C,A]=T;if(y=o.merge(A,(P=r())!=null?P:g),n(y,!0),C)return h()}).then(()=>{E==null||E(y,void 0),y=r(),a=!0,c.forEach(T=>T(y))}).catch(T=>{E==null||E(void 0,T)})};return s.persist={setOptions:S=>{o={...o,...S},S.storage&&(d=S.storage)},clearStorage:()=>{d==null||d.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>x(),hasHydrated:()=>a,onHydrate:S=>(i.add(S),()=>{i.delete(S)}),onFinishHydration:S=>(c.add(S),()=>{c.delete(S)})},o.skipHydration||x(),y||g},Qw=Jw,Zw=()=>({id:"general_assistant",name:"Bodhi",description:Ct.t("chat.prompt.defaultDescription"),content:`You are Bodhi, a highly capable AI assistant.
8
+
9
+ You help users solve problems quickly and correctly. Be concise, practical, and proactive.
10
+ If requirements are unclear, ask focused clarifying questions before proceeding.`,isDefault:!0}),_l=()=>[Zw()];class e_{async getProviderConfig(){return Ve.get("/bamboo/settings/provider")}async saveProviderConfig(t){return Ve.post("/bamboo/settings/provider",t)}async reloadConfig(){return Ve.post("/bamboo/settings/reload")}async getCopilotAuthStatus(){return Ve.post("/bamboo/copilot/auth/status")}async startCopilotAuth(){return Ve.post("/bamboo/copilot/auth/start")}async completeCopilotAuth(t){return Ve.post("/bamboo/copilot/auth/complete",t)}async authenticateCopilot(){return Ve.post("/bamboo/copilot/authenticate")}async logoutCopilot(){return Ve.post("/bamboo/copilot/logout")}async fetchProviderModels(t){return(await Ve.post("/bamboo/settings/provider/models",{provider:t})).models}async getProviderCatalog(){return Ve.get("/bamboo/provider-catalog")}async fetchCatalogModels(t){const n=t?{provider:t}:{};return Ve.post("/bamboo/provider-catalog/fetch-models",n)}async getProviderInstances(){return Ve.get("/bamboo/settings/provider-instances")}async createProviderInstance(t){return Ve.post("/bamboo/settings/provider-instances",t)}async updateProviderInstance(t,n){return Ve.put(`/bamboo/settings/provider-instances/${encodeURIComponent(t)}`,n)}async deleteProviderInstance(t){return Ve.delete(`/bamboo/settings/provider-instances/${encodeURIComponent(t)}`)}async setDefaultProviderInstance(t){return Ve.post("/bamboo/settings/provider-instances/default",{default_provider_instance_id:t})}async getEnvVars(){return Ve.get("/bamboo/env-vars")}async upsertEnvVar(t){return Ve.post("/bamboo/env-vars",t)}async deleteEnvVar(t){return Ve.delete(`/bamboo/env-vars/${encodeURIComponent(t)}`)}async replaceEnvVars(t){return Ve.post("/bamboo/env-vars/replace",{entries:t})}}const Ma=new e_,t_=(e,t,n)=>{var o;if(!(e!=null&&e.models)||!t.trim())return[];const r=e.models.filter(a=>a.reference.provider===t);if(r.length>0)return r;const s=(o=n.find(a=>a.id===t))==null?void 0:o.type;return s?e.models.filter(a=>a.reference.provider===s):[]},It=es((e,t)=>({currentProvider:"copilot",providerConfig:{provider:"copilot",defaults:void 0,providers:{}},providerInstances:[],defaultProviderInstanceId:null,isInstancesLoaded:!1,isLoading:!1,error:null,selectedModelRef:null,catalog:null,isCatalogFetching:!1,loadProviderConfig:async()=>{var n,r;e({isLoading:!0,error:null});try{const s=await Ma.getProviderConfig();if(!((r=(n=s.defaults)==null?void 0:n.chat)!=null&&r.model)&&s.provider&&s.providers){const o=s.provider,a=s.providers[o],i=a==null?void 0:a.model;i&&(s.defaults={chat:{provider:o,model:i}})}e({providerConfig:s,currentProvider:s.provider,isLoading:!1})}catch(s){console.error("Failed to load provider config:",s),e({error:s instanceof Error?s.message:"Failed to load provider config",isLoading:!1})}},loadProviderInstances:async()=>{var n,r,s,o;e({isLoading:!0,error:null});try{const a=await Ma.getProviderInstances(),i=a.instances??[],c=a.default_provider_instance_id??null,d={};for(const m of i)d[m.id]=m.config;const h={provider:c??"",defaults:a.defaults,providers:d,features:a.features};if(!((r=(n=h.defaults)==null?void 0:n.chat)!=null&&r.model)&&c){const m=d[c],g=m==null?void 0:m.model;g&&(h.defaults={chat:{provider:c,model:g}})}e({providerInstances:i,defaultProviderInstanceId:c,currentProvider:c??((o=(s=a.defaults)==null?void 0:s.chat)==null?void 0:o.provider)??"",providerConfig:h,isInstancesLoaded:!0,isLoading:!1})}catch(a){console.error("Failed to load provider instances:",a),e({error:a instanceof Error?a.message:"Failed to load provider instances",isLoading:!1,isInstancesLoaded:!1})}},setCurrentProvider:n=>{e({currentProvider:n})},updateProviderConfig:n=>{e(r=>({providerConfig:{...r.providerConfig,...n}}))},getActiveModel:()=>{var s,o,a;return((a=(o=(s=t().providerConfig.defaults)==null?void 0:s.chat)==null?void 0:o.model)==null?void 0:a.trim())||void 0},getFastModel:()=>{var s,o,a;const n=t();return((a=(o=(s=n.providerConfig.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:a.trim())||n.getActiveModel()},getVisionModel:()=>{var s,o,a;const n=t();return((a=(o=(s=n.providerConfig.defaults)==null?void 0:s.vision)==null?void 0:o.model)==null?void 0:a.trim())||n.getActiveModel()},isProviderModelRefEnabled:()=>!0,setSelectedModelRef:n=>{e({selectedModelRef:n})},loadCatalog:async()=>{try{const n=await Ma.getProviderCatalog();e({catalog:n})}catch{}},fetchCatalogModels:async n=>{e({isCatalogFetching:!0});try{await Ma.fetchCatalogModels(n),await t().loadCatalog()}catch{}finally{e({isCatalogFetching:!1})}},getFastModelRef:()=>{var o,a,i,c;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.fast;if((a=r==null?void 0:r.model)!=null&&a.trim())return r;const s=(i=n.providerConfig.defaults)==null?void 0:i.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getVisionModelRef:()=>{var o,a,i,c;const n=t(),r=(o=n.providerConfig.defaults)==null?void 0:o.vision;if((a=r==null?void 0:r.model)!=null&&a.trim())return r;const s=(i=n.providerConfig.defaults)==null?void 0:i.chat;return(c=s==null?void 0:s.model)!=null&&c.trim()?s:null},getModelsForProvider:n=>{const{catalog:r,providerInstances:s}=t();return t_(r,n,s)},getProviderInstance:n=>t().providerInstances.find(r=>r.id===n),getProviderDisplayLabel:n=>{const r=t().providerInstances.find(s=>s.id===n);return r?r.label||r.type:n},getProviderType:n=>{const r=t().providerInstances.find(s=>s.id===n);return(r==null?void 0:r.type)??n}})),ZO=Object.freeze(Object.defineProperty({__proto__:null,useProviderStore:It},Symbol.toStringTag,{value:"Module"}));function uy(e){return e.type==="session_title_updated"||e.type==="session_pinned_updated"}function ju(e,t){switch(e.type){case"session_title_updated":{typeof e.session_id=="string"&&typeof e.title=="string"&&typeof e.title_version=="number"&&t.applyServerTitle(e.session_id,e.title,e.title_version);break}case"session_pinned_updated":{typeof e.session_id=="string"&&typeof e.pinned=="boolean"&&typeof e.updated_at=="string"&&t.applyServerPinned(e.session_id,e.pinned,e.updated_at);break}}}function n_(e,t){const n=t.findIndex(r=>r.id===e.session_id);if(!(n<0))switch(e.type){case"session_title_updated":{if(typeof e.title!="string"||typeof e.title_version!="number")return;const r=e.title_version,s=t[n].titleVersion??0;if(r<=s)return;t[n]={...t[n],title:e.title,titleVersion:r};return}case"session_pinned_updated":{if(typeof e.pinned!="boolean"||typeof e.updated_at!="string")return;const r=new Date(e.updated_at).getTime(),s=new Date(t[n].updatedAt??0).getTime();if(r<s||t[n].pinned===e.pinned)return;t[n]={...t[n],pinned:e.pinned,updatedAt:e.updated_at};return}}}const r_=5e3,yh=80,s_=16,Yr=(e,t)=>{},Fd=e=>e!==void 0&&e!=="idle"&&e!=="completed"&&e!=="error"&&e!=="cancelled",o_=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children"||e==="settling",a_=e=>e==="starting"||e==="running"||e==="streaming"||e==="running_tools"||e==="running_children",dy=e=>({sessionId:e,phase:"idle",confidence:"optimistic",activeReasons:[],generation:0,backendRunId:null,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},backend:{isRunning:!1,lastRunStatus:null,lastRunError:null,syncedAt:null,hasPendingQuestion:null,runningChildCount:null},interaction:{pendingQuestion:null,respondMode:null},children:{byId:{},runningCount:0},timestamps:{optimisticAt:null,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},error:null}),gn=(e,t)=>e[t]??dy(t),jt=(e,t)=>[...e.length>=s_?e.slice(-15):e,t],i_=e=>e.length<=yh?e:e.slice(e.length-yh),l_=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]),c_=(e,t)=>e?e.question===t.question&&e.allowCustom===t.allowCustom&&e.toolCallId===t.toolCallId&&l_(e.options,t.options):!1,fy=(e,t,n)=>{const r=c_(e.interaction.pendingQuestion,t)?e.interaction.pendingQuestion:{...t,receivedAt:n};return e.phase==="waiting_user_answer"&&e.confidence==="live"&&r===e.interaction.pendingQuestion?e:{...e,phase:"waiting_user_answer",confidence:"live",interaction:{...e.interaction,pendingQuestion:r,respondMode:null},activeReasons:jt(e.activeReasons,"sse:need_clarification")}},Hl=new Set(["idle","completed","error","cancelled","settling","waiting_user_answer"]),js=e=>Hl.has(e.phase)?e:e.children.runningCount>0?e.phase==="running_children"?e:{...e,phase:"running_children"}:e.stream.activeToolCalls.length>0?e.phase==="running_tools"?e:{...e,phase:"running_tools"}:e.stream.hasTokens?e.phase==="streaming"?e:{...e,phase:"streaming"}:e.phase==="running"?e:{...e,phase:"running"},Zt=(e,t,n)=>({...e,[t]:n}),u_=(e,t)=>{if(!(t in e))return e;const n={...e};return delete n[t],n},vh=(e,t,n)=>{const r=e.timestamps.firstTokenAt??n(),s={...e,confidence:"live",stream:{...e.stream,hasTokens:!0,tokenCount:e.stream.tokenCount+1},timestamps:{...e.timestamps,firstTokenAt:r},activeReasons:jt(e.activeReasons,t)};return js(s)},d_=(e,t)=>{if(e.stream.hasTokens&&e.timestamps.firstTokenAt!==null)return e;const n=e.timestamps.firstTokenAt??t(),r={...e,confidence:"live",stream:{...e.stream,hasTokens:!0,tokenCount:Math.max(1,e.stream.tokenCount)},timestamps:{...e.timestamps,firstTokenAt:n},activeReasons:jt(e.activeReasons,"sse:token")};return js(r)},f_=(e,t,n,r)=>{const o=e.stream.activeToolCalls.findIndex(i=>i.toolCallId===t)>=0?e.stream.activeToolCalls:[...e.stream.activeToolCalls,{toolCallId:t,toolName:n,startedAt:r}],a={...e,confidence:"live",stream:{...e.stream,activeToolCalls:o},activeReasons:jt(e.activeReasons,"sse:tool_start")};return js(a)},h_=(e,t,n)=>{const r=e.stream.activeToolCalls.findIndex(d=>d.toolCallId===t);if(r<0)return e;const s=e.stream.activeToolCalls[r],o=s.preview??"",a=i_(o+n),i={...s,preview:a},c=[...e.stream.activeToolCalls];return c[r]=i,{...e,stream:{...e.stream,activeToolCalls:c}}},p_=(e,t,n)=>{const r=e.stream.activeToolCalls.filter(o=>o.toolCallId!==t);if(r.length===e.stream.activeToolCalls.length)return e;const s={...e,stream:{...e.stream,activeToolCalls:r},activeReasons:jt(e.activeReasons,n)};return s.timestamps.terminalAt&&s.children.runningCount===0&&s.stream.activeToolCalls.length===0&&!Hl.has(s.phase)?{...s,phase:"settling",timestamps:{...s.timestamps,settlingStartedAt:s.timestamps.settlingStartedAt??s.timestamps.terminalAt}}:js(s)},hy=(e,t,n)=>{const r=e.children.byId[t],s=r!==void 0&&(r.status===void 0||r.status==="running"),o={...r,...n,status:n.status??(r==null?void 0:r.status)??"running"},i=(o.status===void 0||o.status==="running"?1:0)-(s?1:0),c={...e,confidence:"live",children:{byId:{...e.children.byId,[t]:o},runningCount:Math.max(0,e.children.runningCount+i)},activeReasons:jt(e.activeReasons,"sse:sub_agent_started")};return js(c)},Iu=(e,t,n)=>{const r=e.children.byId[t],s=r===void 0||r.status===void 0||r.status==="running",o={...r,...n};if(r!==void 0&&r.title===o.title&&r.status===o.status&&r.error===o.error&&r.lastHeartbeatAt===o.lastHeartbeatAt&&r.lastEventAt===o.lastEventAt&&r.outputPreview===o.outputPreview&&r.roundCount===o.roundCount)return e;const a=o.status===void 0||o.status==="running";let i=0;r!==void 0&&(i=(a?1:0)-(s?1:0));const c=Math.max(0,e.children.runningCount+i),d={...e,children:{byId:{...e.children.byId,[t]:o},runningCount:c}};return d.timestamps.terminalAt&&d.children.runningCount===0&&d.stream.activeToolCalls.length===0&&!Hl.has(d.phase)?{...d,phase:"settling",timestamps:{...d.timestamps,settlingStartedAt:d.timestamps.settlingStartedAt??d.timestamps.terminalAt},activeReasons:jt(d.activeReasons,"sse:sub_agent_completed")}:js(d)},m_=(e,t)=>{if(!(t in e.children.byId))return e;const n=e.children.byId[t],r=n.status===void 0||n.status==="running",s={...e.children.byId};delete s[t];const o={...e,children:{byId:s,runningCount:Math.max(0,e.children.runningCount-(r?1:0))}};return o.timestamps.terminalAt&&o.children.runningCount===0&&o.stream.activeToolCalls.length===0&&!Hl.has(o.phase)?{...o,phase:"settling",timestamps:{...o.timestamps,settlingStartedAt:o.timestamps.settlingStartedAt??o.timestamps.terminalAt}}:js(o)},bh=(e,t,n)=>{switch(t.type){case"token":return vh(e,"sse:token",n);case"reasoning_token":return vh(e,"sse:token",n);case"tool_start":{const r=t.tool_call_id??"",s=t.tool_name??"";return r?f_(e,r,s,n()):e}case"tool_token":{const r=t.tool_call_id??"";return r?h_(e,r,t.content??""):e}case"tool_complete":case"tool_error":{const r=t.tool_call_id??"";return r?p_(e,r,"sse:tool_complete"):e}case"tool_lifecycle":return e;case"sub_agent_started":{const r=t.child_session_id??"";return r?hy(e,r,{title:t.title,status:"running"}):e}case"sub_agent_event":case"sub_agent_heartbeat":{const r=t.child_session_id??"";if(!r)return e;const s={lastEventAt:t.timestamp??n()};return t.type==="sub_agent_heartbeat"&&(s.lastHeartbeatAt=t.timestamp??n()),Iu(e,r,s)}case"sub_agent_completed":{const r=t.child_session_id??"";if(!r)return e;const s=typeof t.status=="string"?t.status:"completed";return Iu(e,r,{status:s,error:t.error})}case"need_clarification":{const r={question:t.question??"",options:t.options??[],allowCustom:t.allow_custom??!1,toolCallId:t.tool_call_id??null};return fy(e,r,n())}case"execution_started":{const r=t.run_id;return r?e.phase!=="starting"&&e.phase!=="settling"?{...e,backendRunId:r,confidence:"live",activeReasons:jt(e.activeReasons,"sse:execution_started")}:{...e,phase:"running",confidence:"live",backendRunId:r,timestamps:{...e.timestamps,confirmedAt:n()},activeReasons:jt(e.activeReasons,"sse:execution_started")}:e}case"complete":{const r=n();return{...e,phase:"settling",timestamps:{...e.timestamps,terminalAt:r,settlingStartedAt:e.timestamps.settlingStartedAt??r},activeReasons:jt(e.activeReasons,"sse:complete")}}case"cancelled":{const r=n();return{...e,phase:"cancelled",confidence:"terminal",timestamps:{...e.timestamps,terminalAt:r,settledAt:r},error:t.message?{message:t.message,source:"user_cancel",occurredAt:r}:null,activeReasons:jt(e.activeReasons,"sse:error")}}case"error":{const r=n();return{...e,phase:"error",confidence:"terminal",timestamps:{...e.timestamps,terminalAt:r},error:{message:t.message??t.error??"Unknown error",source:"sse",occurredAt:r},activeReasons:jt(e.activeReasons,"sse:error")}}case"task_list_updated":case"task_list_item_progress":case"task_list_completed":case"task_evaluation_started":case"task_evaluation_completed":case"token_budget_updated":case"context_compression_status":case"context_summarized":case"context_pressure_notification":return e;default:return e}},g_=e=>e==="completed"||e==="error"||e==="cancelled",y_=(e,t,n)=>{const r=t.last_run_status,s=g_(r)?r:null,o=n(),a=t.has_pending_question===void 0?null:t.has_pending_question,i=t.running_child_count===void 0?null:t.running_child_count,c={...e,backend:{...e.backend,isRunning:t.is_running,lastRunStatus:s,lastRunError:t.last_run_error??null,syncedAt:o,hasPendingQuestion:a,runningChildCount:i},backendRunId:e.backendRunId};if(t.is_running)return e.phase==="idle"||e.phase==="completed"||e.phase==="error"||e.phase==="cancelled"?{...c,phase:"running",confidence:"summary",activeReasons:jt(c.activeReasons,"summary:is_running")}:e.phase==="starting"?{...c,phase:"running",confidence:"summary",timestamps:{...c.timestamps,confirmedAt:o},activeReasons:jt(c.activeReasons,"summary:is_running")}:c;if(Yr("summary.notRunning.evaluate",{sessionId:t.id,phase:e.phase,generation:e.generation,backendRunId:e.backendRunId,summaryIsRunning:t.is_running,optimisticAt:e.timestamps.optimisticAt}),new Set(["starting","running","streaming","running_tools","running_children","settling"]).has(e.phase)){if(s==="completed")return Yr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"completed",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:jt(c.activeReasons,"summary:terminal")};if(s==="error")return Yr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"error",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},error:{message:t.last_run_error??"Backend reported error",source:"summary",occurredAt:o},activeReasons:jt(c.activeReasons,"summary:terminal")};if(s==="cancelled")return Yr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"cancelled",confidence:"terminal",timestamps:{...c.timestamps,settledAt:o},activeReasons:jt(c.activeReasons,"summary:terminal")};if(e.timestamps.optimisticAt){const h=Date.parse(o)-Date.parse(e.timestamps.optimisticAt);if(Number.isFinite(h)&&h<r_)return Yr("summary.notRunning.keepOptimistic",{sessionId:t.id,phase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),c}return Yr("summary.notRunning.transition",{sessionId:t.id,fromPhase:e.phase,generation:e.generation,backendRunId:e.backendRunId}),{...c,phase:"idle",confidence:"summary",activeReasons:jt(c.activeReasons,"summary:terminal")}}return c},v_=()=>new Date().toISOString(),Gt=(e,t,n=v_)=>{switch(t.type){case"ensureSession":return t.sessionId in e?e:Zt(e,t.sessionId,dy(t.sessionId));case"markOptimisticStart":{const r=gn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},interaction:{...r.interaction,respondMode:null},error:null,timestamps:{optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:send")};return Zt(e,t.sessionId,o)}case"markRespondStart":{const r=gn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},interaction:{...r.interaction,pendingQuestion:null,respondMode:null},error:null,timestamps:{...r.timestamps,optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:respond")};return Zt(e,t.sessionId,o)}case"markRetryStart":{const r=gn(e,t.sessionId),s=n(),o={...r,phase:"starting",confidence:"optimistic",generation:r.generation+1,stream:{hasTokens:!1,tokenCount:0,activeToolCalls:[],lastStatusHint:null},error:null,timestamps:{...r.timestamps,optimisticAt:s,confirmedAt:null,firstTokenAt:null,terminalAt:null,settlingStartedAt:null,settledAt:null},activeReasons:jt(r.activeReasons,"optimistic:retry")};return Zt(e,t.sessionId,o)}case"markForceSubscribe":{const r=gn(e,t.sessionId);if(Fd(r.phase))return e;const s={...r,phase:"running",confidence:"optimistic",generation:r.generation+1,error:null,activeReasons:jt(r.activeReasons,"optimistic:openSession.forceSubscribe")};return Zt(e,t.sessionId,s)}case"markCancel":{const r=gn(e,t.sessionId),s=n(),o={...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,settledAt:s},activeReasons:jt(r.activeReasons,"user:cancel")};return Zt(e,t.sessionId,o)}case"markSettleTimeout":{const r=gn(e,t.sessionId);if(r.phase!=="starting"&&r.phase!=="settling")return e;const s={...r,phase:"idle",confidence:"optimistic",timestamps:{...r.timestamps,settledAt:n()},activeReasons:jt(r.activeReasons,"settle:timeout")};return Zt(e,t.sessionId,s)}case"markStreamStarted":{const r=gn(e,t.sessionId);if(t.generation!==r.generation)return e;const s=d_(r,n);return s===r?e:Zt(e,t.sessionId,s)}case"applyAgentEvent":{const r=gn(e,t.sessionId);if(t.generation!==r.generation)return Yr("drop.applyAgentEvent.generationMismatch",{sessionId:t.sessionId,actionGeneration:t.generation,entryGeneration:r.generation,eventType:t.event.type,phase:r.phase,backendRunId:r.backendRunId??null}),e;const s=bh(r,t.event,n);return s===r?e:Zt(e,t.sessionId,s)}case"applyExecutionStarted":{const r=gn(e,t.sessionId);if(t.generation!==r.generation)return Yr("drop.applyExecutionStarted.generationMismatch",{sessionId:t.sessionId,actionGeneration:t.generation,entryGeneration:r.generation,runId:t.runId,phase:r.phase,backendRunId:r.backendRunId??null}),e;if(r.phase!=="starting"&&r.phase!=="settling")return Zt(e,t.sessionId,{...r,backendRunId:t.runId,confidence:"live",activeReasons:jt(r.activeReasons,"sse:execution_started")});const s={...r,phase:"running",confidence:"live",backendRunId:t.runId,timestamps:{...r.timestamps,confirmedAt:n()},activeReasons:jt(r.activeReasons,"sse:execution_started")};return Zt(e,t.sessionId,s)}case"applySessionSummary":{const r=gn(e,t.sessionId),s=y_(r,t.summary,n);return s===r?e:Zt(e,t.sessionId,s)}case"applyOneShotTerminal":{const r=gn(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="idle"&&r.phase!=="starting")return e;const s=n();return t.payload.status==="completed"?Zt(e,t.sessionId,{...r,phase:"completed",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")}):t.payload.status==="cancelled"?Zt(e,t.sessionId,{...r,phase:"cancelled",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:t.payload.message?{message:t.payload.message,source:"user_cancel",occurredAt:s}:null,activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")}):Zt(e,t.sessionId,{...r,phase:"error",confidence:"terminal",timestamps:{...r.timestamps,terminalAt:s,settledAt:s},error:{message:t.payload.message??"Unknown error",source:"sse",occurredAt:s},activeReasons:jt(r.activeReasons,"sse:terminal_one_shot")})}case"beginSettle":{const r=gn(e,t.sessionId);if(t.generation!==r.generation||r.phase!=="running"&&r.phase!=="streaming"&&r.phase!=="running_tools"&&r.phase!=="running_children")return e;const s=n();return Zt(e,t.sessionId,{...r,phase:"settling",timestamps:{...r.timestamps,settlingStartedAt:s,terminalAt:r.timestamps.terminalAt??s}})}case"applyChildProgress":{const r=gn(e,t.sessionId),o=!(t.childId in r.children.byId)?hy(r,t.childId,t.patch):Iu(r,t.childId,t.patch);return o===r?e:Zt(e,t.sessionId,o)}case"clearChildProgress":{const r=gn(e,t.sessionId),s=m_(r,t.childId);return s===r?e:Zt(e,t.sessionId,s)}case"setPendingQuestion":{const r=gn(e,t.sessionId),s=fy(r,t.payload,n());return s===r?e:Zt(e,t.sessionId,s)}case"clearPendingQuestion":{const r=gn(e,t.sessionId);if(r.interaction.pendingQuestion===null&&r.interaction.respondMode===null)return e;const s={...r,interaction:{...r.interaction,pendingQuestion:null,respondMode:null}};return Zt(e,t.sessionId,s)}case"resetSession":return u_(e,t.sessionId);case"applyRunningSnapshot":{let r=e;for(const s of t.sessions){const o=gn(r,s.sessionId),a=o.generation+1;let i={...o,generation:a,backendRunId:s.runId,phase:"running",confidence:"live",timestamps:{...o.timestamps,confirmedAt:n()},activeReasons:jt(o.activeReasons,"sse:execution_started")};for(const c of s.criticalEvents)c.type!=="execution_started"&&(i=bh(i,c,n));r=Zt(r,s.sessionId,i)}return r}default:return e}},an=()=>new Date().toISOString(),b_=(e,t)=>({executionBySession:{},ensureSession:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"ensureSession",sessionId:n},an);return s===r.executionBySession?r:{executionBySession:s}})},markOptimisticStart:n=>{let r=0;return e(s=>{const o=s.executionBySession[n];r=o?o.generation+1:1;const i=Gt(s.executionBySession,{type:"markOptimisticStart",sessionId:n},an);return i===s.executionBySession?s:{executionBySession:i}}),r},markRespondStart:(n,r)=>{let s=0;return e(o=>{const a=o.executionBySession[n];s=a?a.generation+1:1;const c=Gt(o.executionBySession,{type:"markRespondStart",sessionId:n},an);return c===o.executionBySession?o:{executionBySession:c}}),s},markRetryStart:n=>{let r=0;return e(s=>{const o=s.executionBySession[n];r=o?o.generation+1:1;const i=Gt(s.executionBySession,{type:"markRetryStart",sessionId:n},an);return i===s.executionBySession?s:{executionBySession:i}}),r},markForceSubscribe:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markForceSubscribe",sessionId:n},an);return s===r.executionBySession?r:{executionBySession:s}})},markCancel:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markCancel",sessionId:n},an);return s===r.executionBySession?r:{executionBySession:s}})},markSettleTimeout:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"markSettleTimeout",sessionId:n},an);return s===r.executionBySession?r:{executionBySession:s}})},markStreamStarted:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"markStreamStarted",sessionId:n,generation:r},an);return o===s.executionBySession?s:{executionBySession:o}})},applyAgentEvent:(n,r,s)=>{e(o=>{const a=Gt(o.executionBySession,{type:"applyAgentEvent",sessionId:n,event:r,generation:s},an);return a===o.executionBySession?o:{executionBySession:a}})},applyExecutionStarted:(n,r,s)=>{e(o=>{const a=Gt(o.executionBySession,{type:"applyExecutionStarted",sessionId:n,runId:r,generation:s},an);return a===o.executionBySession?o:{executionBySession:a}})},applySessionSummary:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"applySessionSummary",sessionId:n,summary:r},an);return o===s.executionBySession?s:{executionBySession:o}})},applyOneShotTerminal:(n,r,s)=>{e(o=>{const a=Gt(o.executionBySession,{type:"applyOneShotTerminal",sessionId:n,generation:r,payload:s},an);return a===o.executionBySession?o:{executionBySession:a}})},beginSettle:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"beginSettle",sessionId:n,generation:r},an);return o===s.executionBySession?s:{executionBySession:o}})},applyChildProgress:(n,r,s)=>{e(o=>{const a=Gt(o.executionBySession,{type:"applyChildProgress",sessionId:n,childId:r,patch:s},an);return a===o.executionBySession?o:{executionBySession:a}})},clearChildProgress:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"clearChildProgress",sessionId:n,childId:r},an);return o===s.executionBySession?s:{executionBySession:o}})},setPendingQuestion:(n,r)=>{e(s=>{const o=Gt(s.executionBySession,{type:"setPendingQuestion",sessionId:n,payload:r},an);return o===s.executionBySession?s:{executionBySession:o}})},clearPendingQuestion:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"clearPendingQuestion",sessionId:n},an);return s===r.executionBySession?r:{executionBySession:s}})},resetSession:n=>{e(r=>{const s=Gt(r.executionBySession,{type:"resetSession",sessionId:n},an);return s===r.executionBySession?r:{executionBySession:s}})},applyRunningSnapshot:n=>{const r=t(),s=n.map(o=>{const a=[];for(const i of o.criticalEvents){if(uy(i)){ju(i,r);continue}a.push(i)}return{...o,criticalEvents:a}});e(o=>{const a=Gt(o.executionBySession,{type:"applyRunningSnapshot",sessions:s},an);return a===o.executionBySession?o:{executionBySession:a}})}});function py(e){if(!e)return;const t={systemTokens:e.system_tokens,summaryTokens:e.summary_tokens,windowTokens:e.window_tokens,totalTokens:e.total_tokens,budgetLimit:e.budget_limit};return typeof e.max_context_tokens=="number"&&e.max_context_tokens>0&&(t.maxContextTokens=e.max_context_tokens),typeof e.prompt_cached_tool_outputs=="number"&&(t.promptCachedToolOutputs=e.prompt_cached_tool_outputs),typeof e.prompt_cached_tool_tokens_saved=="number"&&(t.promptCachedToolTokensSaved=e.prompt_cached_tool_tokens_saved),typeof e.thinking_tokens=="number"&&(t.thinkingTokens=e.thinking_tokens),typeof e.cache_read_input_tokens=="number"&&(t.cacheReadInputTokens=e.cache_read_input_tokens),t}function my(e){return typeof e.maxContextTokens=="number"&&e.maxContextTokens>0?e.maxContextTokens:e.budgetLimit>0?e.budgetLimit:0}function gy(e){const t=my(e);return t===0?0:e.totalTokens/t*100}function S_(e){const t=gy(e);return t>=90?"error":t>=70?"warning":t>=50?"success":"default"}function Fr(e){return e.toLocaleString()}function Dc(e){const t=Math.abs(e),n=r=>r.replace(/\.0$/,"");if(t>=1e9){const r=t>=1e10?0:1;return`${n((e/1e9).toFixed(r))}B`}if(t>=1e6){const r=t>=1e7?0:1;return`${n((e/1e6).toFixed(r))}M`}if(t>=1e3){const r=t>=1e4?0:1;return`${n((e/1e3).toFixed(r))}K`}return`${e}`}const gr=er.getInstance(),no=_l()[0],x_=(no==null?void 0:no.id)||"general_assistant";var Fg;const yy=((Fg=no==null?void 0:no.content)==null?void 0:Fg.trim())||"",Fc="tool",Sh=e=>{if(typeof e!="string"||!e.trim())return null;const t=Date.parse(e);return Number.isFinite(t)?t:null},w_=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.provider===t.provider&&e.model===t.model,__=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.systemTokens===t.systemTokens&&e.summaryTokens===t.summaryTokens&&e.windowTokens===t.windowTokens&&e.totalTokens===t.totalTokens&&(e.maxContextTokens??0)===(t.maxContextTokens??0)&&e.budgetLimit===t.budgetLimit&&(e.promptCachedToolOutputs??0)===(t.promptCachedToolOutputs??0)&&(e.promptCachedToolTokensSaved??0)===(t.promptCachedToolTokensSaved??0)&&(e.thinkingTokens??0)===(t.thinkingTokens??0)&&(e.cacheReadInputTokens??0)===(t.cacheReadInputTokens??0),C_=(e,t)=>{if(e===t)return!0;const n=e??[],r=t??[];return n.length!==r.length?!1:n.every((s,o)=>{const a=r[o];return!!a&&s.id===a.id&&s.createdAt===a.createdAt&&s.messagesCompressed===a.messagesCompressed&&s.segmentsRemoved===a.segmentsRemoved})},k_=(e,t)=>e===t?!0:!e||!t?e==null&&t==null:e.messageCount===t.messageCount&&e.lastMessageId===t.lastMessageId&&e.hasPendingQuestion===t.hasPendingQuestion&&e.pendingQuestionToolCallId===t.pendingQuestionToolCallId,T_=(e,t)=>e===t?!0:e.systemPromptId===t.systemPromptId&&e.baseSystemPrompt===t.baseSystemPrompt&&e.lastUsedEnhancedPrompt===t.lastUsedEnhancedPrompt&&e.agentRole===t.agentRole&&e.workspacePath===t.workspacePath&&e.model===t.model&&w_(e.model_ref,t.model_ref)&&e.reasoningEffort===t.reasoningEffort&&__(e.tokenUsage,t.tokenUsage)&&e.truncationOccurred===t.truncationOccurred&&e.segmentsRemoved===t.segmentsRemoved&&C_(e.compressionEvents,t.compressionEvents)&&k_(e.syncCursor,t.syncCursor),P_=(e,t)=>e.id===t.id&&e.kind===t.kind&&e.parentSessionId===t.parentSessionId&&e.rootSessionId===t.rootSessionId&&e.spawnDepth===t.spawnDepth&&e.createdByScheduleId===t.createdByScheduleId&&e.isRunning===t.isRunning&&e.updatedAt===t.updatedAt&&e.lastActivityAt===t.lastActivityAt&&e.messageCount===t.messageCount&&e.hasAttachments===t.hasAttachments&&e.lastRunStatus===t.lastRunStatus&&e.lastRunError===t.lastRunError&&e.planMode===t.planMode&&e.subagentType===t.subagentType&&e.title===t.title&&e.titleVersion===t.titleVersion&&e.createdAt===t.createdAt&&e.pinned===t.pinned&&e.messages===t.messages&&T_(e.config,t.config),E_=()=>{try{const e=globalThis.crypto;if(e!=null&&e.randomUUID)return e.randomUUID()}catch{}return`id_${Date.now()}_${Math.random().toString(16).slice(2)}`},M_=()=>{let e=ho().trim().replace(/\/+$/,"");return e.endsWith("/v1")&&(e=e.slice(0,-3)),`${e}/api/v1`},vy=e=>{const t=e.trim();if(!t.startsWith("bamboo-attachment://"))return null;const n=t.slice(20),[r,s]=n.split("/",2);return!r||!s?null:{sessionId:r,attachmentId:s}},A_=e=>{const t=vy(e);return t?`${M_()}/sessions/${encodeURIComponent(t.sessionId)}/attachments/${encodeURIComponent(t.attachmentId)}`:e},fs=e=>{if(typeof e!="string")return;const t=e.trim();if(t&&t.toLowerCase()!=="unknown")return t},R_=e=>{const t=(e||"").trim();if(!t)return;const n=t.match(/tool policy blocked ['"`]([^'"`]+)['"`]/i);if(n!=null&&n[1])return fs(n[1]);try{const r=JSON.parse(t);if(typeof(r==null?void 0:r.tool_name)=="string")return fs(r.tool_name)}catch{}},Ou=e=>{var r,s;const t=Number.isFinite(Date.parse(e.created_at))?Date.parse(e.created_at):Date.now(),n=py(e.token_usage);return{id:e.id,kind:e.kind,parentSessionId:e.parent_session_id??null,rootSessionId:e.root_session_id,spawnDepth:e.spawn_depth,createdByScheduleId:e.created_by_schedule_id??null,isRunning:e.is_running,updatedAt:e.updated_at,lastActivityAt:e.last_activity_at,messageCount:e.message_count,hasAttachments:e.has_attachments,lastRunStatus:e.last_run_status,lastRunError:e.last_run_error,planMode:e.plan_mode??null,subagentType:e.subagent_type??null,title:e.title||Ct.t("chat.session.defaultTitle"),titleVersion:e.title_version??0,createdAt:t,pinned:e.pinned,messages:[],config:{systemPromptId:x_,baseSystemPrompt:yy,lastUsedEnhancedPrompt:null,model:e.model,model_ref:e.model_ref??null,reasoningEffort:e.reasoning_effort??null,tokenUsage:n,truncationOccurred:(r=e.token_usage)==null?void 0:r.truncation_occurred,segmentsRemoved:(s=e.token_usage)==null?void 0:s.segments_removed,compressionEvents:[]}}},j_=(e,t)=>{var o,a,i,c,d;const n=new Map,r=new Map;for(const h of t)h.role==="tool"&&h.tool_call_id&&h.metadata&&r.set(h.tool_call_id,h.metadata);const s=[];for(const h of t){const m=h.created_at||new Date().toISOString();if(h.role==="system"){const g={role:"system",id:h.id,createdAt:m,content:h.content||"",isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(g);continue}if(h.role==="user"){const g=new Map;for(const S of h.image_ocr||[]){const _=(o=S.image_url)==null?void 0:o.trim();if(!_)continue;const T=(S.lines||[]).map(P=>((P==null?void 0:P.text)||"").trim()).filter(Boolean);g.set(_,{ocrText:T.length?T.join(`
11
+ `):void 0,ocrError:S.error?String(S.error):void 0})}const y=[];for(const S of h.content_parts||[]){if(S.type!=="image_url")continue;const _=((a=S.image_url)==null?void 0:a.url)||"";if(!_)continue;const E=A_(_),T=vy(_),P=g.get(_.trim());y.push({id:E_(),url:E,ocrText:P==null?void 0:P.ocrText,ocrError:P==null?void 0:P.ocrError,name:T?`attachment-${T.attachmentId}`:"image",size:0,type:"image/*"})}const x={role:"user",id:h.id,createdAt:m,content:h.content||"",images:y.length?y:void 0,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(x);continue}if(h.role==="assistant"){const g=h.tool_calls||[];if(g.length>0){const S=(h.content||"").trim(),_=typeof h.reasoning=="string"&&h.reasoning.trim().length>0;if(S||_){const C=_?{reasoning:h.reasoning,backendMessageId:h.id}:{backendMessageId:h.id},A={role:"assistant",type:"text",id:`${h.id}_text`,createdAt:m,content:h.content||"",metadata:C,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(A)}for(const C of g)C.id&&n.set(C.id,fs((i=C.function)==null?void 0:i.name)||Fc);const E=(c=g[0])==null?void 0:c.id,T=E?r.get(E):void 0,P={role:"assistant",type:"tool_call",id:h.id,createdAt:m,toolCalls:g.map(C=>{var A;return{toolCallId:C.id,toolName:fs((A=C.function)==null?void 0:A.name)||Fc,parameters:(()=>{var I,O;try{return JSON.parse(((I=C.function)==null?void 0:I.arguments)||"{}")}catch{return{raw:((O=C.function)==null?void 0:O.arguments)||""}}})(),streamingOutput:""}}),...T?{metadata:T}:{},isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(P);continue}const y=typeof h.reasoning=="string"&&h.reasoning.trim().length>0?{reasoning:h.reasoning}:{},x={role:"assistant",type:"text",id:h.id,createdAt:m,content:h.content||"",metadata:y,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(x);continue}if(h.role==="tool"){const g=((d=h.tool_call_id)==null?void 0:d.trim())||`orphan-tool-call:${h.id}`,y=fs(n.get(g))||fs(h.tool_name)||fs(h.name)||R_(h.content)||Fc,x=h.tool_success===!1||h.tool_success==null&&typeof h.content=="string"&&h.content.trimStart().startsWith("Error:"),S={role:"assistant",type:"tool_result",id:h.id,createdAt:m,toolName:y,toolCallId:g,result:{tool_name:y,result:h.content||"",display_preference:"Default"},isError:x,isCompressed:!!h.compressed,compressedEventId:h.compressed_by_event_id};s.push(S);continue}}return s},I_=750,wt={inFlight:null,forcedPromise:null,timer:null,trailingPromise:null,trailingResolve:null,trailingReject:null};function by(){const e={resolve:wt.trailingResolve,reject:wt.trailingReject};return wt.trailingPromise=null,wt.trailingResolve=null,wt.trailingReject=null,e}function xh(e,t){!t.resolve&&!t.reject||e.then(()=>{var n;return(n=t.resolve)==null?void 0:n.call(t)},n=>{var r;return(r=t.reject)==null?void 0:r.call(t,n)})}function O_(){return wt.timer&&(clearTimeout(wt.timer),wt.timer=null),by()}function $_(e,t){const n=e.map(Ou);t(r=>{let s=r.executionBySession;for(const c of e)s=Gt(s,{type:"applySessionSummary",sessionId:c.id,summary:c});const o=new Map(r.chats.map(c=>[c.id,c]));let a=r.chats.length!==n.length;const i=n.map((c,d)=>{var B,te,H,L;const h=o.get(c.id);if(!h)return a=!0,c;const m=Sh(h.updatedAt),g=Sh(c.updatedAt),y=m!==null&&g!==null&&m>g,x=h.config||{},S=c.config||{},_=Object.prototype.hasOwnProperty.call(x,"model"),E=Object.prototype.hasOwnProperty.call(x,"model_ref"),T=Object.prototype.hasOwnProperty.call(x,"reasoningEffort"),P=Math.max(h.messageCount??0,c.messageCount??0),C=c.titleVersion??0,A=h.titleVersion??0,I=C>A?{title:c.title,titleVersion:C}:{title:h.title,titleVersion:A},O={...x,...S,model:y&&_?x.model:S.model,model_ref:y&&E?x.model_ref:S.model_ref,reasoningEffort:y&&T?x.reasoningEffort:S.reasoningEffort,compressionEvents:((B=h.config)==null?void 0:B.compressionEvents)??((te=c.config)==null?void 0:te.compressionEvents),syncCursor:((H=h.config)==null?void 0:H.syncCursor)??((L=c.config)==null?void 0:L.syncCursor)},$={...c,pinned:y?h.pinned:c.pinned,updatedAt:y?h.updatedAt:c.updatedAt,messages:h.messages,messageCount:P,planMode:c.planMode,config:O,...I};return P_(h,$)?(r.chats[d]!==h&&(a=!0),h):(a=!0,$)});return!a&&s===r.executionBySession?r:{...r,chats:a?i:r.chats,executionBySession:s}})}async function sl(e){return wt.inFlight?(Re("[ChatSlice]","refreshChats.inFlight.reuse",{}),wt.inFlight):(Re("[ChatSlice]","refreshChats.start",{}),wt.inFlight=(async()=>{try{const t=await gr.listSessions();Re("[ChatSlice]","refreshChats.response",{count:t.sessions.length,runningCount:t.sessions.filter(n=>n.is_running).length}),$_(t.sessions,e)}catch(t){throw console.error("[ChatSlice] Failed to refresh sessions:",t),Re("[ChatSlice]","refreshChats.error",{error:t}),t}})().finally(()=>{Re("[ChatSlice]","refreshChats.finally",{}),wt.inFlight=null}),wt.inFlight)}function L_(e){return wt.forcedPromise?(Re("[ChatSlice]","refreshChatsNow.forced.reuse",{}),wt.forcedPromise):(Re("[ChatSlice]","refreshChatsNow.forced.start",{hasInflight:!!wt.inFlight}),wt.forcedPromise=(async()=>{wt.inFlight&&await wt.inFlight,await sl(e)})().finally(()=>{Re("[ChatSlice]","refreshChatsNow.forced.finally",{}),wt.forcedPromise=null}),wt.forcedPromise)}const D_=(e,t)=>({chats:[],currentSessionId:null,latestActiveSessionId:null,addChat:async n=>{var g,y,x,S,_,E,T,P,C,A,I,O;const r=(n.title||Ct.t("chat.sidebar.newSession")).trim(),s=((y=(g=n.config)==null?void 0:g.baseSystemPrompt)==null?void 0:y.trim())||"",o=(x=It.getState().getActiveModel())==null?void 0:x.trim(),a=((_=(S=n.config)==null?void 0:S.model)==null?void 0:_.trim())||o||void 0,i=((E=n.config)==null?void 0:E.reasoningEffort)??void 0;let c,d;if(It.getState().isProviderModelRefEnabled()){const $=(T=n.config)==null?void 0:T.model_ref;if((P=$==null?void 0:$.provider)!=null&&P.trim()&&((C=$==null?void 0:$.model)!=null&&C.trim()))c=$,d=$.provider;else{const B=(A=It.getState().providerConfig.defaults)==null?void 0:A.chat;if((I=B==null?void 0:B.provider)!=null&&I.trim()&&((O=B==null?void 0:B.model)!=null&&O.trim()))c=B,d=B.provider;else{const te=It.getState().getActiveModel();te&&(c={provider:It.getState().currentProvider,model:te},d=It.getState().currentProvider)}}}const h=await gr.createSession({title:r,system_prompt:s||void 0,model:a,model_ref:c,provider:d,reasoning_effort:i||void 0}),m={...Ou(h.session),title:r,config:{...n.config,model:h.session.model,model_ref:h.session.model_ref??null,reasoningEffort:h.session.reasoning_effort??null,baseSystemPrompt:s||yy},messages:[]};return e($=>{const B=[m,...$.chats.filter(te=>te.id!==m.id)];return{...$,chats:B,currentSessionId:m.id,latestActiveSessionId:m.id}}),m.id},selectSession:n=>{const r=t();r.currentSessionId===n&&r.latestActiveSessionId===n||e({currentSessionId:n,latestActiveSessionId:n})},deleteSession:async n=>{try{await gr.deleteSession(n)}catch(r){console.error(`[ChatSlice] Failed to delete backend session ${n}:`,r)}e(r=>{var c;const s=new Set;for(const d of r.chats)d.id===n&&s.add(d.id),d.rootSessionId===n&&s.add(d.id);const o=r.chats.filter(d=>!s.has(d.id)),a=r.currentSessionId&&s.has(r.currentSessionId)?null:r.currentSessionId,i=r.latestActiveSessionId&&s.has(r.latestActiveSessionId)?((c=o[0])==null?void 0:c.id)??null:r.latestActiveSessionId;return{...r,chats:o,currentSessionId:a,latestActiveSessionId:i}})},deleteSessions:async n=>{for(const r of n)await t().deleteSession(r)},updateSession:(n,r)=>{const s=!!r.config&&(Object.prototype.hasOwnProperty.call(r.config,"model")||Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")),o=typeof r.title=="string"||typeof r.pinned=="boolean",i=s||o?new Date().toISOString():void 0;e(d=>{const h=d.chats.map(m=>m.id===n?{...m,...r,...i?{updatedAt:i}:{}}:m);return{...d,chats:h}});const c={};if(typeof r.title=="string"&&(c.title=r.title),typeof r.pinned=="boolean"&&(c.pinned=r.pinned),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model")&&(c.model=r.config.model??null),r.config&&Object.prototype.hasOwnProperty.call(r.config,"model_ref")&&It.getState().isProviderModelRefEnabled()&&(c.model_ref=r.config.model_ref??null,r.config.model_ref&&(c.provider=r.config.model_ref.provider)),r.config&&Object.prototype.hasOwnProperty.call(r.config,"reasoningEffort")){const d=r.config.reasoningEffort;d?c.reasoning_effort=d:c.clear_reasoning_effort=!0}Object.keys(c).length>0&&gr.patchSession(n,c).catch(d=>{console.warn(`[ChatSlice] Failed to patch session ${n}:`,d)})},persistSessionTitle:async(n,r)=>{var o;const s=(o=t().chats.find(a=>a.id===n))==null?void 0:o.title;e(a=>({...a,chats:a.chats.map(i=>i.id===n?{...i,title:r,updatedAt:new Date().toISOString()}:i)}));try{await gr.patchSession(n,{title:r})}catch(a){throw typeof s=="string"&&e(i=>({...i,chats:i.chats.map(c=>c.id===n?{...c,title:s}:c)})),console.warn(`[ChatSlice] persistSessionTitle failed for ${n}:`,a),a}},applyServerTitle:(n,r,s)=>e(o=>{const a=o.chats.find(i=>i.id===n);return!a||s<=(a.titleVersion??0)?o:{...o,chats:o.chats.map(i=>i.id===n?{...i,title:r,titleVersion:s,updatedAt:new Date().toISOString()}:i)}}),applyServerPinned:(n,r,s)=>e(o=>{const a=o.chats.find(d=>d.id===n);if(!a)return o;const i=Date.parse(s),c=a.updatedAt?Date.parse(a.updatedAt):NaN;return Number.isFinite(i)&&Number.isFinite(c)&&i<c||a.pinned===r?o:{...o,chats:o.chats.map(d=>d.id===n?{...d,pinned:r,updatedAt:s}:d)}}),pinSession:n=>{t().updateSession(n,{pinned:!0})},unpinSession:n=>{t().updateSession(n,{pinned:!1})},setMessages:(n,r)=>{t().chats.find(o=>o.id===n)&&t().updateSession(n,{messages:r})},addMessage:async(n,r)=>{const s=t().chats.find(a=>a.id===n);if(!s)return;const o=[...s.messages,r];t().updateSession(n,{messages:o})},updateMessage:(n,r,s)=>{const o=t().chats.find(i=>i.id===n);if(!o)return;const a=o.messages.map(i=>{if(i.id!==r)return i;const c={...i};return Object.keys(s).forEach(d=>{Object.prototype.hasOwnProperty.call(c,d)&&(c[d]=s[d])}),c});t().updateSession(n,{messages:a})},deleteMessage:async(n,r)=>{const s=t().chats.find(o=>o.id===n);if(!s)return{success:!1,sessionId:n,messageId:r,reason:"session_not_found"};if(!s.messages.some(o=>o.id===r))return{success:!1,sessionId:n,messageId:r,reason:"message_not_found"};try{await gr.deleteSessionMessage(n,r)}catch(o){return console.warn(`[ChatSlice] Failed to delete message ${r} from session ${n}:`,o),o instanceof Ga?o.status===404?{success:!1,sessionId:n,messageId:r,reason:"backend_not_found",statusCode:o.status,errorMessage:o.message}:o.status===409?{success:!1,sessionId:n,messageId:r,reason:"session_running",statusCode:o.status,errorMessage:o.message}:{success:!1,sessionId:n,messageId:r,reason:"backend_error",statusCode:o.status,errorMessage:o.message}:{success:!1,sessionId:n,messageId:r,reason:"backend_error",errorMessage:o instanceof Error?o.message:void 0}}return e(o=>({...o,chats:o.chats.map(a=>a.id===n?{...a,messages:a.messages.filter(i=>i.id!==r)}:a)})),{success:!0,sessionId:n,messageId:r}},refreshChats:async()=>wt.inFlight?wt.inFlight:wt.timer?(wt.trailingPromise||(wt.trailingPromise=new Promise((n,r)=>{wt.trailingResolve=n,wt.trailingReject=r})),wt.trailingPromise):(wt.timer=setTimeout(()=>{if(wt.timer=null,wt.trailingPromise){const n=by();xh(sl(e),n)}},I_),sl(e)),refreshChatsNow:async()=>{const n=O_();Re("[ChatSlice]","refreshChatsNow.start",{hadTrailingCallbacks:!!n,hasInflight:!!wt.inFlight});const r=wt.inFlight?L_(e):sl(e);return xh(r,n),r},loadChats:async()=>{var a,i,c;Re("[ChatSlice]","loadChats.start",{});let n=await gr.listSessions();if(!n.sessions||n.sessions.length===0){const d=(a=It.getState().getActiveModel())==null?void 0:a.trim(),h=(i=It.getState().providerConfig.defaults)==null?void 0:i.chat;Re("[ChatSlice]","loadChats.createInitialSession",{defaultModel:d??null,defaultModelRef:h??null}),n={sessions:[(await gr.createSession({title:Ct.t("chat.sidebar.newSession"),model:d,model_ref:h,provider:h==null?void 0:h.provider})).session]}}const r=n.sessions.map(Ou),s=((c=r[0])==null?void 0:c.id)??null;Re("[ChatSlice]","loadChats.listResolved",{count:n.sessions.length,currentSessionId:s});let o=t().executionBySession;for(const d of n.sessions)o=Gt(o,{type:"applySessionSummary",sessionId:d.id,summary:d});try{const d=await gr.getRunningSessions();if(Re("[ChatSlice]","loadChats.runningSnapshot",{count:d.sessions.length}),d.sessions.length>0){const h=d.sessions.map(m=>{const g=[];for(const y of m.last_critical_events){if(uy(y)){n_(y,r);continue}g.push(y)}return{sessionId:m.session_id,runId:m.run_id,criticalEvents:g}});o=Gt(o,{type:"applyRunningSnapshot",sessions:h},()=>new Date().toISOString())}}catch(d){Re("[ChatSlice]","loadChats.runningSnapshot.error",{error:d})}e({chats:r,latestActiveSessionId:s,currentSessionId:s,executionBySession:o}),Re("[ChatSlice]","loadChats.applied",{currentSessionId:s,chatCount:r.length,executionSessionCount:Object.keys(o||{}).length}),s&&(Re("[ChatSlice]","loadChats.loadInitialHistory",{currentSessionId:s}),await t().loadChatHistory(s))},loadChatHistory:async(n,r)=>{var i,c,d,h,m,g,y,x,S,_,E,T;const s=(r==null?void 0:r.mode)??"replace",o=Math.max(0,(r==null?void 0:r.retries)??0),a=Math.max(0,(r==null?void 0:r.retryDelayMs)??0);Re("[ChatSlice]","loadChatHistory.start",{sessionId:n,mode:s,retries:o,retryDelayMs:a,waitForAssistant:(r==null?void 0:r.waitForAssistant)??!1});for(let P=0;P<=o;P+=1)try{const C=t().chats.find($=>$.id===n);if(!C){Re("[ChatSlice]","loadChatHistory.skipMissingChat",{sessionId:n,attempt:P});return}const A=await gr.getHistory(n);Re("[ChatSlice]","loadChatHistory.response",{sessionId:n,attempt:P,historyMessageCount:A.messages.length,localMessageCount:C.messages.length,localStoredMessageCount:C.messageCount??null,lastMessageId:((i=A.messages[A.messages.length-1])==null?void 0:i.id)??null,lastRole:((c=A.messages[A.messages.length-1])==null?void 0:c.role)??null});const I=(d=A.messages[A.messages.length-1])==null?void 0:d.role;if(r!=null&&r.waitForAssistant&&I==="user"&&P<o){const $=a>0?a*(P+1):200*(P+1);Re("[ChatSlice]","loadChatHistory.waitForAssistant.retry",{sessionId:n,attempt:P,delay:$}),await new Promise(B=>setTimeout(B,$));continue}const O=j_(n,A.messages);if(s==="monotonic"){const $=C.messages||[],B=$.length,te=O.length,H=(h=O[O.length-1])==null?void 0:h.role,L=(m=$[$.length-1])==null?void 0:m.role,Z=$[$.length-1],D=O[O.length-1],F=Z==null?void 0:Z.id,de=D==null?void 0:D.id;let Q=!1;if(te>B?Q=!0:te===B&&(Q=L==="user"&&H!=="user"||typeof F=="string"&&typeof de=="string"&&F!==de),Re("[ChatSlice]","loadChatHistory.monotonicDecision",{sessionId:n,attempt:P,prevLen:B,nextLen:te,prevLastRole:L??null,nextLastRole:H??null,prevLastId:F??null,nextLastId:de??null,shouldReplace:Q}),!Q){t().updateSession(n,{messageCount:Math.max(C.messageCount??0,A.messages.length)}),Re("[ChatSlice]","loadChatHistory.monotonicSkip",{sessionId:n,attempt:P,localMessageCount:C.messages.length,serverMessageCount:A.messages.length});return}}t().updateSession(n,{messages:O,messageCount:A.messages.length,config:{...C.config||{},compressionEvents:(A.compression_events||[]).map($=>({id:$.id,createdAt:$.created_at,messagesCompressed:$.messages_compressed,segmentsRemoved:$.segments_removed})),syncCursor:{messageCount:A.messages.length,lastMessageId:((g=A.messages[A.messages.length-1])==null?void 0:g.id)??null,hasPendingQuestion:!!((x=(y=t().executionBySession)==null?void 0:y[n])!=null&&x.interaction.pendingQuestion),pendingQuestionToolCallId:((E=(_=(S=t().executionBySession)==null?void 0:S[n])==null?void 0:_.interaction.pendingQuestion)==null?void 0:E.toolCallId)??null}}}),Re("[ChatSlice]","loadChatHistory.applied",{sessionId:n,attempt:P,mode:s,messageCount:A.messages.length,lastMessageId:((T=A.messages[A.messages.length-1])==null?void 0:T.id)??null});return}catch(C){if(P>=o){console.warn(`[ChatSlice] Failed to load history for ${n}:`,C),Re("[ChatSlice]","loadChatHistory.error.final",{sessionId:n,attempt:P,retries:o,error:C});return}const A=a>0?a*(P+1):200*(P+1);Re("[ChatSlice]","loadChatHistory.error.retry",{sessionId:n,attempt:P,delay:A,error:C}),await new Promise(I=>setTimeout(I,A))}}});class $u extends Error{constructor(n="Proxy authentication required"){super(n);Et(this,"code","proxy_auth_required");this.name="ProxyAuthRequiredError"}}const ys=class ys{constructor(){}static getInstance(){return ys.instance||(ys.instance=new ys),ys.instance}async getModels(t){var n,r;try{const s=await Ma.fetchCatalogModels(t),o=[];for(const i of s.fetched)if(i.models&&i.models.length>0)for(const c of i.models)c.reference&&c.reference.model&&o.push(c.reference.model);return[...new Set(o)].sort()}catch(s){if(console.error("Failed to fetch models from Provider Catalog:",s),s instanceof Ga){if(s.status===428)throw new $u(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 $u(((r=o.error)==null?void 0:r.message)||s.message)}throw s}}};Et(ys,"instance");let Lu=ys;const Sy=Lu.getInstance(),F_=async e=>{var t;if(typeof navigator>"u"||!((t=navigator.clipboard)!=null&&t.writeText))throw new Error("navigator.clipboard.writeText is unavailable");await navigator.clipboard.writeText(e)},N_=e=>{if(typeof document>"u")throw new Error("document is unavailable");const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();const n=document.execCommand("copy");if(document.body.removeChild(t),!n)throw new Error("document.execCommand('copy') returned false")},Ir=async e=>{try{await F_(e);return}catch(t){try{N_(e);return}catch(n){const r=t instanceof Error?t.message:String(t),s=n instanceof Error?n.message:String(n);throw new Error(`Clipboard copy failed: navigator(${r}); fallback(${s})`)}}};class z_{async copyToClipboard(t){await Ir(t)}async getBambooConfig(){try{return await Ve.get("bamboo/config")}catch(t){return console.error("Failed to fetch Bamboo config:",t),{}}}async getBambooTools(){try{return await Ve.get("bamboo/tools")}catch(t){return console.error("Failed to fetch Bamboo tools:",t),{tools:[]}}}async getModelLimitDefaults(){try{return await Ve.get("bamboo/model-limits/defaults")}catch(t){return console.error("Failed to fetch model limit defaults:",t),{model_limits:[]}}}async setBambooConfig(t){return Ve.post("bamboo/config",t)}async validateBambooConfigPatch(t){return Ve.post("bamboo/config/validate",t)}async setProxyAuth(t){return Ve.post("bamboo/proxy-auth",t)}async getProxyAuthStatus(){try{return await Ve.get("bamboo/proxy-auth/status")}catch(t){return console.error("Failed to fetch proxy auth status:",t),{configured:!1,username:null}}}async clearProxyAuth(){return Ve.post("bamboo/proxy-auth",{username:"",password:""})}async resetBambooConfig(){return Ve.post("bamboo/config/reset",{})}async saveWorkflow(t,n){return Ve.post("bamboo/workflows",{name:t,content:n})}async deleteWorkflow(t){return Ve.delete(`bamboo/workflows/${encodeURIComponent(t)}`)}async getKeywordMaskingConfig(){try{return await Ve.get("bamboo/keyword-masking")}catch(t){return console.error("Failed to fetch keyword masking config:",t),{entries:[]}}}async updateKeywordMaskingConfig(t){return Ve.post("bamboo/keyword-masking",t)}async validateKeywordEntries(t){return Ve.post("bamboo/keyword-masking/validate",t)}async getSetupStatus(){return await Ve.get("bamboo/setup/status")}async markSetupComplete(){return Ve.post("bamboo/setup/complete",{})}async resetSetupStatus(){await Ve.post("bamboo/setup/incomplete",{})}async getAccessStatus(){return Ve.get("bamboo/access/status")}async verifyAccessPassword(t){return Ve.post("bamboo/access/verify",{password:t})}async updateAccessPassword(t){return Ve.post("bamboo/access/password",t)}}const vs=class vs{constructor(){Et(this,"httpUtilityService",new z_)}static getInstance(){return vs.instance||(vs.instance=new vs),vs.instance}getUtilityService(){return{copyToClipboard:t=>this.httpUtilityService.copyToClipboard(t),getBambooConfig:()=>this.httpUtilityService.getBambooConfig(),getBambooTools:()=>this.httpUtilityService.getBambooTools(),getModelLimitDefaults:()=>this.httpUtilityService.getModelLimitDefaults(),setBambooConfig:t=>this.httpUtilityService.setBambooConfig(t),validateBambooConfigPatch:t=>this.httpUtilityService.validateBambooConfigPatch(t),setProxyAuth:t=>this.httpUtilityService.setProxyAuth(t),getProxyAuthStatus:()=>this.httpUtilityService.getProxyAuthStatus(),clearProxyAuth:()=>this.httpUtilityService.clearProxyAuth(),resetBambooConfig:()=>this.httpUtilityService.resetBambooConfig(),resetSetupStatus:()=>this.httpUtilityService.resetSetupStatus(),saveWorkflow:(t,n)=>this.httpUtilityService.saveWorkflow(t,n),deleteWorkflow:t=>this.httpUtilityService.deleteWorkflow(t),getKeywordMaskingConfig:()=>this.httpUtilityService.getKeywordMaskingConfig(),updateKeywordMaskingConfig:t=>this.httpUtilityService.updateKeywordMaskingConfig(t),validateKeywordEntries:t=>this.httpUtilityService.validateKeywordEntries(t),getSetupStatus:()=>this.httpUtilityService.getSetupStatus(),markSetupComplete:()=>this.httpUtilityService.markSetupComplete(),getAccessStatus:()=>this.httpUtilityService.getAccessStatus(),verifyAccessPassword:t=>this.httpUtilityService.verifyAccessPassword(t),updateAccessPassword:t=>this.httpUtilityService.updateAccessPassword(t)}}async copyToClipboard(t){return this.getUtilityService().copyToClipboard(t)}async getBambooConfig(){return this.getUtilityService().getBambooConfig()}async getBambooTools(){return this.getUtilityService().getBambooTools()}async getModelLimitDefaults(){return this.getUtilityService().getModelLimitDefaults()}async setBambooConfig(t){return this.getUtilityService().setBambooConfig(t)}async validateBambooConfigPatch(t){return this.getUtilityService().validateBambooConfigPatch(t)}async setProxyAuth(t){return this.getUtilityService().setProxyAuth(t)}async getProxyAuthStatus(){return this.getUtilityService().getProxyAuthStatus()}async clearProxyAuth(){return this.getUtilityService().clearProxyAuth()}async resetBambooConfig(){return this.getUtilityService().resetBambooConfig()}async resetSetupStatus(){return this.getUtilityService().resetSetupStatus()}async saveWorkflow(t,n){return this.getUtilityService().saveWorkflow(t,n)}async deleteWorkflow(t){return this.getUtilityService().deleteWorkflow(t)}async getKeywordMaskingConfig(){return this.getUtilityService().getKeywordMaskingConfig()}async updateKeywordMaskingConfig(t){return this.getUtilityService().updateKeywordMaskingConfig(t)}async validateKeywordEntries(t){return this.getUtilityService().validateKeywordEntries(t)}async getSetupStatus(){return this.getUtilityService().getSetupStatus()}async markSetupComplete(){return this.getUtilityService().markSetupComplete()}async getAccessStatus(){return this.getUtilityService().getAccessStatus()}async verifyAccessPassword(t){return this.getUtilityService().verifyAccessPassword(t)}async updateAccessPassword(t){return this.getUtilityService().updateAccessPassword(t)}};Et(vs,"instance");let co=vs;const hs=co.getInstance();let Io=null,Oo=null;const Nc=(e,t)=>e instanceof Error&&e.message.trim()?e.message:t,Du=es((e,t)=>({config:null,proxyAuthStatus:null,isLoadingConfig:!1,isLoadingProxyAuthStatus:!1,lastLoadedAt:null,error:null,loadConfig:async({force:n=!1}={})=>{const r=t().config;if(!n&&r)return r;if(Io)return Io;Io=(async()=>{e({isLoadingConfig:!0,error:null});try{const s=await hs.getBambooConfig()??{};return e({config:s,lastLoadedAt:Date.now(),error:null}),s}catch(s){const o=Nc(s,"Failed to load Bamboo config");throw e({error:o}),s}finally{e({isLoadingConfig:!1})}})();try{return await Io}finally{Io=null}},saveConfig:async n=>{e({isLoadingConfig:!0,error:null,config:n});try{const r=await hs.setBambooConfig(n);return e({config:r,lastLoadedAt:Date.now(),error:null}),r}catch(r){const s=Nc(r,"Failed to save Bamboo config");throw e({error:s}),r}finally{e({isLoadingConfig:!1})}},patchConfig:async n=>{const s={...await t().loadConfig()??{},...n??{}};return t().saveConfig(s)},loadProxyAuthStatus:async({force:n=!1}={})=>{const r=t().proxyAuthStatus;if(!n&&r)return r;if(Oo)return Oo;Oo=(async()=>{e({isLoadingProxyAuthStatus:!0,error:null});try{const s=await hs.getProxyAuthStatus();return e({proxyAuthStatus:s,error:null}),s}catch(s){const o=Nc(s,"Failed to load proxy auth status");throw e({error:o}),s}finally{e({isLoadingProxyAuthStatus:!1})}})();try{return await Oo}finally{Oo=null}},applyProxyAuth:async n=>{await hs.setProxyAuth(n),await t().loadProxyAuthStatus({force:!0})},clearProxyAuth:async()=>{await hs.clearProxyAuth(),await t().loadProxyAuthStatus({force:!0})}}));let $o=null;const B_=(e,t)=>({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:null,configModel:void 0,setSelectedModel:n=>{e({selectedModel:n})},loadConfigModel:async()=>{try{const n=await Du.getState().loadConfig(),r=typeof(n==null?void 0:n.model)=="string"?n.model:void 0;r&&e({configModel:r})}catch(n){console.error("Failed to load model from config:",n)}},fetchModels:async()=>{if($o)return $o;$o=(async()=>{e({isLoadingModels:!0,modelsError:null});try{try{if(!(await hs.getSetupStatus()).is_complete){Re("[ModelSlice]","Setup not complete, skipping model fetch"),e({models:[],selectedModel:void 0,isLoadingModels:!1,modelsError:"Complete setup to access all models"});return}}catch(r){console.error("Failed to check setup status:",r)}const n=await Sy.getModels();e(r=>{const s=r.selectedModel;let o=r.selectedModel;return s&&n.includes(s)||(n.length>0?o=n[0]:o=void 0),{...r,models:n,selectedModel:o,modelsError:n.length>0?null:"No available model options"}}),t().models.length===0&&console.warn("No models available from service")}catch(n){const r=n instanceof Error?n.message:String(n);if(console.error("Failed to fetch models:",n),n instanceof $u){e(s=>({...s,models:s.models,selectedModel:s.selectedModel,modelsError:r||"Proxy authentication required. Please configure proxy auth."}));return}e(s=>({...s,models:[],selectedModel:s.selectedModel,modelsError:r}))}finally{e({isLoadingModels:!1})}})();try{await $o}finally{$o=null}}}),W_=["system_prompt","system_prompt_selected_id"],zc=e=>({id:e.id,name:e.name||e.id,content:e.content||"",description:e.description,isDefault:!!e.is_default}),Xr=class Xr{constructor(){Et(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 t of W_)localStorage.removeItem(t)}catch(t){console.warn("[SystemPromptService] Failed to cleanup deprecated prompt storage keys:",t)}}}async getSystemPromptPresets(){try{const t=await xt.get("prompt-presets"),r=(Array.isArray(t==null?void 0:t.prompts)?t.prompts:[]).filter(s=>s.id&&s.id.trim().length>0).map(zc);if(r.length>0)return r}catch(t){console.error("Failed to load prompt presets from backend:",t)}return _l()}async createSystemPromptPreset(t){var s;const n={name:t.name,content:t.content};(s=t.id)!=null&&s.trim()&&(n.id=t.id.trim()),t.description!==void 0&&(n.description=t.description);const r=await xt.post("prompt-presets",n);if(!(r!=null&&r.prompt))throw new Error("Backend did not return created prompt preset");return zc(r.prompt)}async updateSystemPromptPreset(t){const n=encodeURIComponent(t.id),r={name:t.name,content:t.content,description:t.description},s=await xt.patch(`prompt-presets/${n}`,r);if(!(s!=null&&s.prompt))throw new Error("Backend did not return updated prompt preset");return zc(s.prompt)}async deleteSystemPromptPreset(t){const n=encodeURIComponent(t);await xt.delete(`prompt-presets/${n}`)}async findPresetById(t){return(await this.getSystemPromptPresets()).find(r=>r.id===t)}async getCurrentSystemPromptContent(t){const n=await this.findPresetById(t);if(n)return n.content;const r=await this.getSystemPromptPresets(),s=r.find(o=>o.isDefault)||r[0];return(s==null?void 0:s.content)||""}};Et(Xr,"instance");let Cl=Xr;const wh="copilot_last_selected_prompt_id",xy="copilot_custom_system_prompts_v2",wy="copilot_custom_system_prompts_v2_migrated_to_backend",_y="general_assistant",Nd=80,Qs=Cl.getInstance();let Oi=null;function zd(e){const t=e.toLowerCase().trim().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return t.length===0?`prompt_${Date.now()}_${Math.random().toString(36).substring(2,9)}`:t.slice(0,Nd)}function Cy(e){if(typeof e!="string")return null;const t=e.toLowerCase().trim().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"");return t?t.slice(0,Nd):null}function ky(e,t){if(!t.has(e))return e;let n=2;for(;;){const r=`_${n}`,o=`${e.slice(0,Math.max(0,Nd-r.length))}${r}`;if(!t.has(o))return o;n+=1}}function Ty(){try{const e=localStorage.getItem(xy);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const n=new Set,r=[];for(const s of t){const o=typeof(s==null?void 0:s.name)=="string"?s.name.trim():"",a=typeof(s==null?void 0:s.content)=="string"?s.content.trim():"";if(!o||!a)continue;const c=Cy(s==null?void 0:s.id)||zd(o),d=ky(c,n);d!==_y&&(n.add(d),r.push({id:d,name:o,content:a,description:typeof(s==null?void 0:s.description)=="string"&&s.description.trim()||void 0,isDefault:!!(s!=null&&s.isDefault)}))}return r}catch(e){return console.error("[promptSlice] Failed to read legacy custom prompts:",e),[]}}function Py(){try{return localStorage.getItem(wy)==="1"}catch(e){return console.error("[promptSlice] Failed to read migration marker:",e),!1}}function _h(){try{localStorage.setItem(wy,"1")}catch(e){console.error("[promptSlice] Failed to write migration marker:",e)}}function Ch(){try{localStorage.removeItem(xy)}catch(e){console.error("[promptSlice] Failed to clear legacy custom prompts:",e)}}async function U_(){var s,o;if(Py())return;const e=Ty();if(e.length===0){Ch(),_h();return}const t=await Qs.getSystemPromptPresets(),n=new Set(t.map(a=>a.id));let r=!1;for(const a of e){const i=(s=a.name)==null?void 0:s.trim(),c=(o=a.content)==null?void 0:o.trim();if(!i||!c||a.id===_y||a.isDefault)continue;const d=Cy(a.id)||zd(i),h=ky(d,n);try{const m=await Qs.createSystemPromptPreset({id:h,name:i,content:c,description:a.description});n.add(m.id)}catch(m){r=!0,console.error(`[promptSlice] Failed to migrate legacy prompt '${i}' to backend:`,m)}}r||(Ch(),_h())}async function q_(){Oi||(Oi=U_().finally(()=>{Oi=null})),await Oi}const H_=(e,t)=>({systemPrompts:[],lastSelectedPromptId:localStorage.getItem(wh)||null,loadSystemPrompts:async()=>{try{await q_()}catch(s){console.warn("[promptSlice] Legacy prompt migration skipped:",s)}let n=[];try{n=await Qs.getSystemPromptPresets()}catch(s){console.error("Failed to load system prompts from backend:",s)}let r=n.length?n:_l();if(!Py()){const s=Ty();r=Y_(r,s)}r.length===0&&(r=_l()),e({systemPrompts:r})},addSystemPrompt:async n=>{try{await Qs.createSystemPromptPreset({id:zd(n.name),name:n.name,content:n.content,description:n.description}),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to add system prompt:",r),r}},updateSystemPrompt:async n=>{try{await Qs.updateSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to update system prompt:",r),r}},deleteSystemPrompt:async n=>{try{await Qs.deleteSystemPromptPreset(n),await t().loadSystemPrompts()}catch(r){throw console.error("Failed to delete system prompt:",r),r}},setLastSelectedPromptId:n=>{e({lastSelectedPromptId:n});try{localStorage.setItem(wh,n)}catch(r){console.error("Failed to save last selected prompt ID to localStorage:",r)}}}),Y_=(e,t)=>{const n=new Map;return e.forEach(r=>{n.set(r.id,r)}),t.forEach(r=>{n.set(r.id,r)}),Array.from(n.values())},K_=()=>({});class X_{async listSkills(t,n){const r=new URLSearchParams;t!=null&&t.search&&r.append("search",t.search),t!=null&&t.includeDisabled&&r.append("include_disabled","true"),n&&r.append("refresh","true");const s=r.toString(),o=s?`skills?${s}`:"skills";return Ve.get(o)}async getSkill(t){return Ve.get(`skills/${t}`)}async getFilteredTools(t){const n=t?`?session_id=${encodeURIComponent(t)}`:"";return(await Ve.get(`skills/filtered-tools${n}`)).tools??[]}}const kh=new X_,V_=(e,t)=>({skills:[],isLoadingSkills:!1,skillsError:null,loadSkills:async(n,r)=>{e({isLoadingSkills:!0,skillsError:null});try{const s=await kh.listSkills(n,r);e({skills:s.skills,isLoadingSkills:!1})}catch(s){e({skillsError:s instanceof Error?s.message:Ct.t("components.skillManager.loadFailed"),isLoadingSkills:!1})}},getSkill:async n=>{e({isLoadingSkills:!0,skillsError:null});try{const r=await kh.getSkill(n),s=t().skills,a=s.findIndex(i=>i.id===r.id)>=0?s.map(i=>i.id===r.id?r:i):[...s,r];e({skills:a,isLoadingSkills:!1})}catch(r){e({skillsError:r instanceof Error?r.message:Ct.t("components.skillManager.getFailed"),isLoadingSkills:!1})}},clearSkillsError:()=>{e({skillsError:null})}}),G_=e=>({tokenUsages:{},truncationOccurred:{},segmentsRemoved:{},updateTokenUsage:(t,n)=>e(r=>({tokenUsages:{...r.tokenUsages,[t]:n}})),setTruncationInfo:(t,n,r)=>e(s=>({truncationOccurred:{...s.truncationOccurred,[t]:n},segmentsRemoved:{...s.segmentsRemoved,[t]:r}})),clearTokenUsage:t=>e(n=>{const{[t]:r,...s}=n.tokenUsages,{[t]:o,...a}=n.truncationOccurred,{[t]:i,...c}=n.segmentsRemoved;return{tokenUsages:s,truncationOccurred:a,segmentsRemoved:c}})}),J_=er.getInstance(),Q_=(e,t)=>({taskLists:{},taskListVersions:{},activeItems:{},evaluationStates:{},setTaskList:(n,r)=>e(s=>({taskLists:{...s.taskLists,[n]:r},taskListVersions:{...s.taskListVersions,[n]:r.version||0}})),loadTaskList:async n=>{const r=await J_.getTaskList(n);return r?(t().setTaskList(r.session_id||n,r),r):null},updateTaskListDelta:(n,r)=>e(s=>{const o=s.taskListVersions[n]||0;if(r.version<=o)return s;const a=s.taskLists[n];if(!a)return s;const i=a.items.map(c=>c.id===r.item_id?{...c,status:r.status,tool_calls_count:r.tool_calls_count}:c);return{taskLists:{...s.taskLists,[n]:{...a,items:i,updated_at:new Date().toISOString()}},taskListVersions:{...s.taskListVersions,[n]:r.version},activeItems:{...s.activeItems,[n]:r.status==="in_progress"?r.item_id:null}}}),clearTaskList:n=>e(r=>{const{[n]:s,...o}=r.taskLists,{[n]:a,...i}=r.taskListVersions,{[n]:c,...d}=r.activeItems,{[n]:h,...m}=r.evaluationStates;return{taskLists:o,taskListVersions:i,activeItems:d,evaluationStates:m}}),getTaskListVersion:n=>t().taskListVersions[n]||0,setEvaluationState:(n,r)=>e(s=>({evaluationStates:{...s.evaluationStates,[n]:r}})),clearEvaluationState:n=>e(r=>{const{[n]:s,...o}=r.evaluationStates;return{evaluationStates:o}})});var ol={exports:{}},Z_=ol.exports,Th;function e0(){return Th||(Th=1,function(e,t){((n,r)=>{e.exports=r()})(Z_,function(){var n=function(u,f){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(p,v){p.__proto__=v}:function(p,v){for(var w in v)Object.prototype.hasOwnProperty.call(v,w)&&(p[w]=v[w])}))(u,f)},r=function(){return(r=Object.assign||function(u){for(var f,p=1,v=arguments.length;p<v;p++)for(var w in f=arguments[p])Object.prototype.hasOwnProperty.call(f,w)&&(u[w]=f[w]);return u}).apply(this,arguments)};function s(u,f,p){for(var v,w=0,k=f.length;w<k;w++)!v&&w in f||((v=v||Array.prototype.slice.call(f,0,w))[w]=f[w]);return u.concat(v||Array.prototype.slice.call(f))}var o=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:gx,a=Object.keys,i=Array.isArray;function c(u,f){return typeof f=="object"&&a(f).forEach(function(p){u[p]=f[p]}),u}typeof Promise>"u"||o.Promise||(o.Promise=Promise);var d=Object.getPrototypeOf,h={}.hasOwnProperty;function m(u,f){return h.call(u,f)}function g(u,f){typeof f=="function"&&(f=f(d(u))),(typeof Reflect>"u"?a:Reflect.ownKeys)(f).forEach(function(p){x(u,p,f[p])})}var y=Object.defineProperty;function x(u,f,p,v){y(u,f,c(p&&m(p,"get")&&typeof p.get=="function"?{get:p.get,set:p.set,configurable:!0}:{value:p,configurable:!0,writable:!0},v))}function S(u){return{from:function(f){return u.prototype=Object.create(f.prototype),x(u.prototype,"constructor",u),{extend:g.bind(null,u.prototype)}}}}var _=Object.getOwnPropertyDescriptor,E=[].slice;function T(u,f,p){return E.call(u,f,p)}function P(u,f){return f(u)}function C(u){if(!u)throw new Error("Assertion Failed")}function A(u){o.setImmediate?setImmediate(u):setTimeout(u,0)}function I(u,f){if(typeof f=="string"&&m(u,f))return u[f];if(!f)return u;if(typeof f!="string"){for(var p=[],v=0,w=f.length;v<w;++v){var k=I(u,f[v]);p.push(k)}return p}var M,R=f.indexOf(".");return R===-1||(M=u[f.substr(0,R)])==null?void 0:I(M,f.substr(R+1))}function O(u,f,p){if(u&&f!==void 0&&!("isFrozen"in Object&&Object.isFrozen(u)))if(typeof f!="string"&&"length"in f){C(typeof p!="string"&&"length"in p);for(var v=0,w=f.length;v<w;++v)O(u,f[v],p[v])}else{var k,M,R=f.indexOf(".");R!==-1?(k=f.substr(0,R),(R=f.substr(R+1))===""?p===void 0?i(u)&&!isNaN(parseInt(k))?u.splice(k,1):delete u[k]:u[k]=p:O(M=(M=u[k])&&m(u,k)?M:u[k]={},R,p)):p===void 0?i(u)&&!isNaN(parseInt(f))?u.splice(f,1):delete u[f]:u[f]=p}}function $(u){var f,p={};for(f in u)m(u,f)&&(p[f]=u[f]);return p}var B=[].concat;function te(u){return B.apply([],u)}var ue="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(te([8,16,32,64].map(function(u){return["Int","Uint","Float"].map(function(f){return f+u+"Array"})}))).filter(function(u){return o[u]}),H=new Set(ue.map(function(u){return o[u]})),L=null;function Z(u){return L=new WeakMap,u=function f(p){if(!p||typeof p!="object")return p;var v=L.get(p);if(v)return v;if(i(p)){v=[],L.set(p,v);for(var w=0,k=p.length;w<k;++w)v.push(f(p[w]))}else if(H.has(p.constructor))v=p;else{var M,R=d(p);for(M in v=R===Object.prototype?{}:Object.create(R),L.set(p,v),p)m(p,M)&&(v[M]=f(p[M]))}return v}(u),L=null,u}var D={}.toString;function F(u){return D.call(u).slice(8,-1)}var de=typeof Symbol<"u"?Symbol.iterator:"@@iterator",Q=typeof de=="symbol"?function(u){var f;return u!=null&&(f=u[de])&&f.apply(u)}:function(){return null};function ge(u,f){f=u.indexOf(f),0<=f&&u.splice(f,1)}var G={};function ce(u){var f,p,v,w;if(arguments.length===1){if(i(u))return u.slice();if(this===G&&typeof u=="string")return[u];if(w=Q(u))for(p=[];!(v=w.next()).done;)p.push(v.value);else{if(u==null)return[u];if(typeof(f=u.length)!="number")return[u];for(p=new Array(f);f--;)p[f]=u[f]}}else for(f=arguments.length,p=new Array(f);f--;)p[f]=arguments[f];return p}var ve=typeof Symbol<"u"?function(u){return u[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},ue=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Ot=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(ue),he={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function le(u,f){this.name=u,this.message=f}function we(u,f){return u+". Errors: "+Object.keys(f).map(function(p){return f[p].toString()}).filter(function(p,v,w){return w.indexOf(p)===v}).join(`
12
+ `)}function Le(u,f,p,v){this.failures=f,this.failedKeys=v,this.successCount=p,this.message=we(u,f)}function Ie(u,f){this.name="BulkError",this.failures=Object.keys(f).map(function(p){return f[p]}),this.failuresByPos=f,this.message=we(u,this.failures)}S(le).from(Error).extend({toString:function(){return this.name+": "+this.message}}),S(Le).from(le),S(Ie).from(le);var Je=Ot.reduce(function(u,f){return u[f]=f+"Error",u},{}),j=le,ie=Ot.reduce(function(u,f){var p=f+"Error";function v(w,k){this.name=p,w?typeof w=="string"?(this.message="".concat(w).concat(k?`
13
+ `+k:""),this.inner=k||null):typeof w=="object"&&(this.message="".concat(w.name," ").concat(w.message),this.inner=w):(this.message=he[f]||p,this.inner=null)}return S(v).from(j),u[f]=v,u},{}),me=(ie.Syntax=SyntaxError,ie.Type=TypeError,ie.Range=RangeError,ue.reduce(function(u,f){return u[f+"Error"]=ie[f],u},{}));ue=Ot.reduce(function(u,f){return["Syntax","Type","Range"].indexOf(f)===-1&&(u[f+"Error"]=ie[f]),u},{});function Me(){}function Ue(u){return u}function St(u,f){return u==null||u===Ue?f:function(p){return f(u(p))}}function ot(u,f){return function(){u.apply(this,arguments),f.apply(this,arguments)}}function Ft(u,f){return u===Me?f:function(){var p=u.apply(this,arguments),v=(p!==void 0&&(arguments[0]=p),this.onsuccess),w=this.onerror,k=(this.onsuccess=null,this.onerror=null,f.apply(this,arguments));return v&&(this.onsuccess=this.onsuccess?ot(v,this.onsuccess):v),w&&(this.onerror=this.onerror?ot(w,this.onerror):w),k!==void 0?k:p}}function Vt(u,f){return u===Me?f:function(){u.apply(this,arguments);var p=this.onsuccess,v=this.onerror;this.onsuccess=this.onerror=null,f.apply(this,arguments),p&&(this.onsuccess=this.onsuccess?ot(p,this.onsuccess):p),v&&(this.onerror=this.onerror?ot(v,this.onerror):v)}}function At(u,f){return u===Me?f:function(w){var v=u.apply(this,arguments),w=(c(w,v),this.onsuccess),k=this.onerror,M=(this.onsuccess=null,this.onerror=null,f.apply(this,arguments));return w&&(this.onsuccess=this.onsuccess?ot(w,this.onsuccess):w),k&&(this.onerror=this.onerror?ot(k,this.onerror):k),v===void 0?M===void 0?void 0:M:c(v,M)}}function Mt(u,f){return u===Me?f:function(){return f.apply(this,arguments)!==!1&&u.apply(this,arguments)}}function wn(u,f){return u===Me?f:function(){var p=u.apply(this,arguments);if(p&&typeof p.then=="function"){for(var v=this,w=arguments.length,k=new Array(w);w--;)k[w]=arguments[w];return p.then(function(){return f.apply(v,k)})}return f.apply(this,arguments)}}ue.ModifyError=Le,ue.DexieError=le,ue.BulkError=Ie;var kt=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function _n(u){kt=u}var pn={},On=100,Mn=typeof Promise>"u"?[]:(Ot=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[Mn=crypto.subtle.digest("SHA-512",new Uint8Array([0])),d(Mn),Ot]:[Ot,d(Ot),Ot]),Ot=Mn[0],Ns=Mn[1],Ns=Ns&&Ns.then,tn=Ot&&Ot.constructor,Cn=!!Mn[2],ye=function(u,f){mn.push([u,f]),Te&&(queueMicrotask(lt),Te=!1)},We=!0,Te=!0,Fe=[],qt=[],$n=Ue,yt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:Me,pgp:!1,env:{},finalize:Me},De=yt,mn=[],N=0,re=[];function W(u){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var f=this._PSD=De;if(typeof u!="function"){if(u!==pn)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Ne(this,this._value)}else this._state=null,this._value=null,++f.ref,function p(v,w){try{w(function(k){if(v._state===null){if(k===v)throw new TypeError("A promise cannot be resolved with itself.");var M=v._lib&&Rt();k&&typeof k.then=="function"?p(v,function(R,U){k instanceof W?k._then(R,U):k.then(R,U)}):(v._state=!0,v._value=k,at(v)),M&&ht()}},Ne.bind(null,v))}catch(k){Ne(v,k)}}(this,u)}var Ae={get:function(){var u=De,f=Os;function p(v,w){var k=this,M=!u.global&&(u!==De||f!==Os),R=M&&!nr(),U=new W(function(ee,Y){vt(k,new qe(gi(v,u,M,R),gi(w,u,M,R),ee,Y,u))});return this._consoleTask&&(U._consoleTask=this._consoleTask),U}return p.prototype=pn,p},set:function(u){x(this,"then",u&&u.prototype===pn?Ae:{get:function(){return u},set:Ae.set})}};function qe(u,f,p,v,w){this.onFulfilled=typeof u=="function"?u:null,this.onRejected=typeof f=="function"?f:null,this.resolve=p,this.reject=v,this.psd=w}function Ne(u,f){var p,v;qt.push(f),u._state===null&&(p=u._lib&&Rt(),f=$n(f),u._state=!1,u._value=f,v=u,Fe.some(function(w){return w._value===v._value})||Fe.push(v),at(u),p)&&ht()}function at(u){var f=u._listeners;u._listeners=[];for(var p=0,v=f.length;p<v;++p)vt(u,f[p]);var w=u._PSD;--w.ref||w.finalize(),N===0&&(++N,ye(function(){--N==0&&Qe()},[]))}function vt(u,f){if(u._state===null)u._listeners.push(f);else{var p=u._state?f.onFulfilled:f.onRejected;if(p===null)return(u._state?f.resolve:f.reject)(u._value);++f.psd.ref,++N,ye(Tt,[p,u,f])}}function Tt(u,f,p){try{var v,w=f._value;!f._state&&qt.length&&(qt=[]),v=kt&&f._consoleTask?f._consoleTask.run(function(){return u(w)}):u(w),f._state||qt.indexOf(w)!==-1||(k=>{for(var M=Fe.length;M;)if(Fe[--M]._value===k._value)return Fe.splice(M,1)})(f),p.resolve(v)}catch(k){p.reject(k)}finally{--N==0&&Qe(),--p.psd.ref||p.psd.finalize()}}function lt(){kr(yt,function(){Rt()&&ht()})}function Rt(){var u=We;return Te=We=!1,u}function ht(){var u,f,p;do for(;0<mn.length;)for(u=mn,mn=[],p=u.length,f=0;f<p;++f){var v=u[f];v[0].apply(null,v[1])}while(0<mn.length);Te=We=!0}function Qe(){for(var u=Fe,f=(Fe=[],u.forEach(function(v){v._PSD.onunhandled.call(null,v._value,v)}),re.slice(0)),p=f.length;p;)f[--p]()}function _e(u){return new W(pn,!1,u)}function $e(u,f){var p=De;return function(){var v=Rt(),w=De;try{return Kn(p,!0),u.apply(this,arguments)}catch(k){f&&f(k)}finally{Kn(w,!1),v&&ht()}}}g(W.prototype,{then:Ae,_then:function(u,f){vt(this,new qe(null,null,u,f,De))},catch:function(u){var f,p;return arguments.length===1?this.then(null,u):(f=u,p=arguments[1],typeof f=="function"?this.then(null,function(v){return(v instanceof f?p:_e)(v)}):this.then(null,function(v){return(v&&v.name===f?p:_e)(v)}))},finally:function(u){return this.then(function(f){return W.resolve(u()).then(function(){return f})},function(f){return W.resolve(u()).then(function(){return _e(f)})})},timeout:function(u,f){var p=this;return u<1/0?new W(function(v,w){var k=setTimeout(function(){return w(new ie.Timeout(f))},u);p.then(v,w).finally(clearTimeout.bind(null,k))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&x(W.prototype,Symbol.toStringTag,"Dexie.Promise"),yt.env=xo(),g(W,{all:function(){var u=ce.apply(null,arguments).map(Or);return new W(function(f,p){u.length===0&&f([]);var v=u.length;u.forEach(function(w,k){return W.resolve(w).then(function(M){u[k]=M,--v||f(u)},p)})})},resolve:function(u){return u instanceof W?u:u&&typeof u.then=="function"?new W(function(f,p){u.then(f,p)}):new W(pn,!0,u)},reject:_e,race:function(){var u=ce.apply(null,arguments).map(Or);return new W(function(f,p){u.map(function(v){return W.resolve(v).then(f,p)})})},PSD:{get:function(){return De},set:function(u){return De=u}},totalEchoes:{get:function(){return Os}},newPSD:Fn,usePSD:kr,scheduler:{get:function(){return ye},set:function(u){ye=u}},rejectionMapper:{get:function(){return $n},set:function(u){$n=u}},follow:function(u,f){return new W(function(p,v){return Fn(function(w,k){var M=De;M.unhandleds=[],M.onunhandled=k,M.finalize=ot(function(){var R,U=this;R=function(){U.unhandleds.length===0?w():k(U.unhandleds[0])},re.push(function ee(){R(),re.splice(re.indexOf(ee),1)}),++N,ye(function(){--N==0&&Qe()},[])},M.finalize),u()},f,p,v)})}}),tn&&(tn.allSettled&&x(W,"allSettled",function(){var u=ce.apply(null,arguments).map(Or);return new W(function(f){u.length===0&&f([]);var p=u.length,v=new Array(p);u.forEach(function(w,k){return W.resolve(w).then(function(M){return v[k]={status:"fulfilled",value:M}},function(M){return v[k]={status:"rejected",reason:M}}).then(function(){return--p||f(v)})})})}),tn.any&&typeof AggregateError<"u"&&x(W,"any",function(){var u=ce.apply(null,arguments).map(Or);return new W(function(f,p){u.length===0&&p(new AggregateError([]));var v=u.length,w=new Array(v);u.forEach(function(k,M){return W.resolve(k).then(function(R){return f(R)},function(R){w[M]=R,--v||p(new AggregateError(w))})})})}),tn.withResolvers)&&(W.withResolvers=tn.withResolvers);var Ke={awaits:0,echoes:0,id:0},Lt=0,on=[],Cr=0,Os=0,cc=0;function Fn(u,M,p,v){var w=De,k=Object.create(w),M=(k.parent=w,k.ref=0,k.global=!1,k.id=++cc,yt.env,k.env=Cn?{Promise:W,PromiseProp:{value:W,configurable:!0,writable:!0},all:W.all,race:W.race,allSettled:W.allSettled,any:W.any,resolve:W.resolve,reject:W.reject}:{},M&&c(k,M),++w.ref,k.finalize=function(){--this.parent.ref||this.parent.finalize()},kr(k,u,p,v));return k.ref===0&&k.finalize(),M}function dr(){return Ke.id||(Ke.id=++Lt),++Ke.awaits,Ke.echoes+=On,Ke.id}function nr(){return!!Ke.awaits&&(--Ke.awaits==0&&(Ke.id=0),Ke.echoes=Ke.awaits*On,!0)}function Or(u){return Ke.echoes&&u&&u.constructor===tn?(dr(),u.then(function(f){return nr(),f},function(f){return nr(),Kt(f)})):u}function mi(){var u=on[on.length-1];on.pop(),Kn(u,!1)}function Kn(u,f){var p,v,w=De;(f?!Ke.echoes||Cr++&&u===De:!Cr||--Cr&&u===De)||queueMicrotask(f?(function(k){++Os,Ke.echoes&&--Ke.echoes!=0||(Ke.echoes=Ke.awaits=Ke.id=0),on.push(De),Kn(k,!0)}).bind(null,u):mi),u!==De&&(De=u,w===yt&&(yt.env=xo()),Cn)&&(p=yt.env.Promise,v=u.env,w.global||u.global)&&(Object.defineProperty(o,"Promise",v.PromiseProp),p.all=v.all,p.race=v.race,p.resolve=v.resolve,p.reject=v.reject,v.allSettled&&(p.allSettled=v.allSettled),v.any)&&(p.any=v.any)}function xo(){var u=o.Promise;return Cn?{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 kr(u,f,p,v,w){var k=De;try{return Kn(u,!0),f(p,v,w)}finally{Kn(k,!1)}}function gi(u,f,p,v){return typeof u!="function"?u:function(){var w=De;p&&dr(),Kn(f,!0);try{return u.apply(this,arguments)}finally{Kn(w,!1),v&&queueMicrotask(nr)}}}function $s(u){Promise===tn&&Ke.echoes===0?Cr===0?u():enqueueNativeMicroTask(u):setTimeout(u,0)}(""+Ns).indexOf("[native code]")===-1&&(dr=nr=Me);var Kt=W.reject,fr="￿",Xn="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",wo="String expected.",ns="__dbnames",pe="readonly",pt="readwrite";function _t(u,f){return u?f?function(){return u.apply(this,arguments)&&f.apply(this,arguments)}:u:f}var Xt={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Bt(u){return typeof u!="string"||/\./.test(u)?function(f){return f}:function(f){return f[u]===void 0&&u in f&&delete(f=Z(f))[u],f}}function Nt(){throw ie.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function Xe(u,f){try{var p=nn(u),v=nn(f);if(p!==v)return p==="Array"?1:v==="Array"?-1:p==="binary"?1:v==="binary"?-1:p==="string"?1:v==="string"?-1:p==="Date"?1:v!=="Date"?NaN:-1;switch(p){case"number":case"Date":case"string":return f<u?1:u<f?-1:0;case"binary":for(var w=Tr(u),k=Tr(f),M=w.length,R=k.length,U=M<R?M:R,ee=0;ee<U;++ee)if(w[ee]!==k[ee])return w[ee]<k[ee]?-1:1;return M===R?0:M<R?-1:1;case"Array":for(var Y=u,z=f,q=Y.length,J=z.length,K=q<J?q:J,X=0;X<K;++X){var V=Xe(Y[X],z[X]);if(V!==0)return V}return q===J?0:q<J?-1:1}}catch{}return NaN}function nn(u){var f=typeof u;return f=="object"&&(ArrayBuffer.isView(u)||(f=F(u))==="ArrayBuffer")?"binary":f}function Tr(u){return u instanceof Uint8Array?u:ArrayBuffer.isView(u)?new Uint8Array(u.buffer,u.byteOffset,u.byteLength):new Uint8Array(u)}function rr(u,f,p){var v=u.schema.yProps;return v?(f&&0<p.numFailures&&(f=f.filter(function(w,k){return!p.failures[k]})),Promise.all(v.map(function(w){return w=w.updatesTable,f?u.db.table(w).where("k").anyOf(f).delete():u.db.table(w).clear()})).then(function(){return p})):p}_o.prototype.execute=function(u){var f=this["@@propmod"];if(f.add!==void 0){var p=f.add;if(i(p))return s(s([],i(u)?u:[],!0),p).sort();if(typeof p=="number")return(Number(u)||0)+p;if(typeof p=="bigint")try{return BigInt(u)+p}catch{return BigInt(0)+p}throw new TypeError("Invalid term ".concat(p))}if(f.remove!==void 0){var v=f.remove;if(i(v))return i(u)?u.filter(function(w){return!v.includes(w)}).sort():[];if(typeof v=="number")return Number(u)-v;if(typeof v=="bigint")try{return BigInt(u)-v}catch{return BigInt(0)-v}throw new TypeError("Invalid subtrahend ".concat(v))}return p=(p=f.replacePrefix)==null?void 0:p[0],p&&typeof u=="string"&&u.startsWith(p)?f.replacePrefix[1]+u.substring(p.length):u};var Nn=_o;function _o(u){this["@@propmod"]=u}function Of(u,f){for(var p=a(f),v=p.length,w=!1,k=0;k<v;++k){var M=p[k],R=f[M],U=I(u,M);R instanceof Nn?(O(u,M,R.execute(U)),w=!0):U!==R&&(O(u,M,R),w=!0)}return w}Wt.prototype._trans=function(u,f,p){var v=this._tx||De.trans,w=this.name,k=kt&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(u==="readonly"?"read":"write"," ").concat(this.name));function M(ee,Y,z){if(z.schema[w])return f(z.idbtrans,z);throw new ie.NotFound("Table "+w+" not part of transaction")}var R=Rt();try{var U=v&&v.db._novip===this.db._novip?v===De.trans?v._promise(u,M,p):Fn(function(){return v._promise(u,M,p)},{trans:v,transless:De.transless||De}):function ee(Y,z,q,J){if(Y.idbdb&&(Y._state.openComplete||De.letThrough||Y._vip)){var K=Y._createTransaction(z,q,Y._dbSchema);try{K.create(),Y._state.PR1398_maxLoop=3}catch(X){return X.name===Je.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,z,q,J)})):Kt(X)}return K._promise(z,function(X,V){return Fn(function(){return De.trans=K,J(X,V,K)})}).then(function(X){if(z==="readwrite")try{K.idbtrans.commit()}catch{}return z==="readonly"?X:K._completion.then(function(){return X})})}if(Y._state.openComplete)return Kt(new ie.DatabaseClosed(Y._state.dbOpenError));if(!Y._state.isBeingOpened){if(!Y._state.autoOpen)return Kt(new ie.DatabaseClosed);Y.open().catch(Me)}return Y._state.dbReadyPromise.then(function(){return ee(Y,z,q,J)})}(this.db,u,[this.name],M);return k&&(U._consoleTask=k,U=U.catch(function(ee){return console.trace(ee),Kt(ee)})),U}finally{R&&ht()}},Wt.prototype.get=function(u,f){var p=this;return u&&u.constructor===Object?this.where(u).first(f):u==null?Kt(new ie.Type("Invalid argument to Table.get()")):this._trans("readonly",function(v){return p.core.get({trans:v,key:u}).then(function(w){return p.hook.reading.fire(w)})}).then(f)},Wt.prototype.where=function(u){if(typeof u=="string")return new this.db.WhereClause(this,u);if(i(u))return new this.db.WhereClause(this,"[".concat(u.join("+"),"]"));var f=a(u);if(f.length===1)return this.where(f[0]).equals(u[f[0]]);var p=this.schema.indexes.concat(this.schema.primKey).filter(function(R){if(R.compound&&f.every(function(ee){return 0<=R.keyPath.indexOf(ee)})){for(var U=0;U<f.length;++U)if(f.indexOf(R.keyPath[U])===-1)return!1;return!0}return!1}).sort(function(R,U){return R.keyPath.length-U.keyPath.length})[0];if(p&&this.db._maxKey!==fr)return M=p.keyPath.slice(0,f.length),this.where(M).equals(M.map(function(R){return u[R]}));!p&&kt&&console.warn("The query ".concat(JSON.stringify(u)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(f.join("+"),"]"));var v=this.schema.idxByName;function w(R,U){return Xe(R,U)===0}var M=f.reduce(function(Y,U){var ee=Y[0],Y=Y[1],z=v[U],q=u[U];return[ee||z,ee||!z?_t(Y,z&&z.multi?function(J){return J=I(J,U),i(J)&&J.some(function(K){return w(q,K)})}:function(J){return w(q,I(J,U))}):Y]},[null,null]),k=M[0],M=M[1];return k?this.where(k.name).equals(u[k.keyPath]).filter(M):p?this.filter(M):this.where(f).equals("")},Wt.prototype.filter=function(u){return this.toCollection().and(u)},Wt.prototype.count=function(u){return this.toCollection().count(u)},Wt.prototype.offset=function(u){return this.toCollection().offset(u)},Wt.prototype.limit=function(u){return this.toCollection().limit(u)},Wt.prototype.each=function(u){return this.toCollection().each(u)},Wt.prototype.toArray=function(u){return this.toCollection().toArray(u)},Wt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Wt.prototype.orderBy=function(u){return new this.db.Collection(new this.db.WhereClause(this,i(u)?"[".concat(u.join("+"),"]"):u))},Wt.prototype.reverse=function(){return this.toCollection().reverse()},Wt.prototype.mapToClass=function(u){for(var f=this.db,p=this.name,v=((this.schema.mappedClass=u).prototype instanceof Nt&&(u=(M=>{var R=Y,U=M;if(typeof U!="function"&&U!==null)throw new TypeError("Class extends value "+String(U)+" is not a constructor or null");function ee(){this.constructor=R}function Y(){return M!==null&&M.apply(this,arguments)||this}return n(R,U),R.prototype=U===null?Object.create(U):(ee.prototype=U.prototype,new ee),Object.defineProperty(Y.prototype,"db",{get:function(){return f},enumerable:!1,configurable:!0}),Y.prototype.table=function(){return p},Y})(u)),new Set),w=u.prototype;w;w=d(w))Object.getOwnPropertyNames(w).forEach(function(M){return v.add(M)});function k(M){if(!M)return M;var R,U=Object.create(u.prototype);for(R in M)if(!v.has(R))try{U[R]=M[R]}catch{}return U}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=k,this.hook("reading",k),u},Wt.prototype.defineClass=function(){return this.mapToClass(function(u){c(this,u)})},Wt.prototype.add=function(u,f){var p=this,v=this.schema.primKey,w=v.auto,k=v.keyPath,M=u;return k&&w&&(M=Bt(k)(u)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"add",keys:f!=null?[f]:null,values:[M]})}).then(function(R){return R.numFailures?W.reject(R.failures[0]):R.lastResult}).then(function(R){if(k)try{O(u,k,R)}catch{}return R})},Wt.prototype.upsert=function(u,f){var p=this,v=this.schema.primKey.keyPath;return this._trans("readwrite",function(w){return p.core.get({trans:w,key:u}).then(function(k){var M=k??{};return Of(M,f),v&&O(M,v,u),p.core.mutate({trans:w,type:"put",values:[M],keys:[u],upsert:!0,updates:{keys:[u],changeSpecs:[f]}}).then(function(R){return R.numFailures?W.reject(R.failures[0]):!!k})})})},Wt.prototype.update=function(u,f){return typeof u!="object"||i(u)?this.where(":id").equals(u).modify(f):(u=I(u,this.schema.primKey.keyPath))===void 0?Kt(new ie.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(u).modify(f)},Wt.prototype.put=function(u,f){var p=this,v=this.schema.primKey,w=v.auto,k=v.keyPath,M=u;return k&&w&&(M=Bt(k)(u)),this._trans("readwrite",function(R){return p.core.mutate({trans:R,type:"put",values:[M],keys:f!=null?[f]:null})}).then(function(R){return R.numFailures?W.reject(R.failures[0]):R.lastResult}).then(function(R){if(k)try{O(u,k,R)}catch{}return R})},Wt.prototype.delete=function(u){var f=this;return this._trans("readwrite",function(p){return f.core.mutate({trans:p,type:"delete",keys:[u]}).then(function(v){return rr(f,[u],v)}).then(function(v){return v.numFailures?W.reject(v.failures[0]):void 0})})},Wt.prototype.clear=function(){var u=this;return this._trans("readwrite",function(f){return u.core.mutate({trans:f,type:"deleteRange",range:Xt}).then(function(p){return rr(u,null,p)})}).then(function(f){return f.numFailures?W.reject(f.failures[0]):void 0})},Wt.prototype.bulkGet=function(u){var f=this;return this._trans("readonly",function(p){return f.core.getMany({keys:u,trans:p}).then(function(v){return v.map(function(w){return f.hook.reading.fire(w)})})})},Wt.prototype.bulkAdd=function(u,f,p){var v=this,w=Array.isArray(f)?f:void 0,k=(p=p||(w?void 0:f))?p.allKeys:void 0;return this._trans("readwrite",function(M){var R=v.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&w)throw new ie.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(w&&w.length!==u.length)throw new ie.InvalidArgument("Arguments objects and keys must have the same length");var U=u.length,ee=R&&ee?u.map(Bt(R)):u;return v.core.mutate({trans:M,type:"add",keys:w,values:ee,wantResults:k}).then(function(Y){var z=Y.numFailures,q=Y.failures;if(z===0)return k?Y.results:Y.lastResult;throw new Ie("".concat(v.name,".bulkAdd(): ").concat(z," of ").concat(U," operations failed"),q)})})},Wt.prototype.bulkPut=function(u,f,p){var v=this,w=Array.isArray(f)?f:void 0,k=(p=p||(w?void 0:f))?p.allKeys:void 0;return this._trans("readwrite",function(M){var R=v.schema.primKey,ee=R.auto,R=R.keyPath;if(R&&w)throw new ie.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(w&&w.length!==u.length)throw new ie.InvalidArgument("Arguments objects and keys must have the same length");var U=u.length,ee=R&&ee?u.map(Bt(R)):u;return v.core.mutate({trans:M,type:"put",keys:w,values:ee,wantResults:k}).then(function(Y){var z=Y.numFailures,q=Y.failures;if(z===0)return k?Y.results:Y.lastResult;throw new Ie("".concat(v.name,".bulkPut(): ").concat(z," of ").concat(U," operations failed"),q)})})},Wt.prototype.bulkUpdate=function(u){var f=this,p=this.core,v=u.map(function(M){return M.key}),w=u.map(function(M){return M.changes}),k=[];return this._trans("readwrite",function(M){return p.getMany({trans:M,keys:v,cache:"clone"}).then(function(R){var U=[],ee=[],Y=(u.forEach(function(z,q){var J=z.key,K=z.changes,X=R[q];if(X){for(var V=0,oe=Object.keys(K);V<oe.length;V++){var ne=oe[V],fe=K[ne];if(ne===f.schema.primKey.keyPath){if(Xe(fe,J)!==0)throw new ie.Constraint("Cannot update primary key in bulkUpdate()")}else O(X,ne,fe)}k.push(q),U.push(J),ee.push(X)}}),U.length);return p.mutate({trans:M,type:"put",keys:U,values:ee,updates:{keys:v,changeSpecs:w}}).then(function(z){var q=z.numFailures,J=z.failures;if(q===0)return Y;for(var K=0,X=Object.keys(J);K<X.length;K++){var V,oe=X[K],ne=k[Number(oe)];ne!=null&&(V=J[oe],delete J[oe],J[ne]=V)}throw new Ie("".concat(f.name,".bulkUpdate(): ").concat(q," of ").concat(Y," operations failed"),J)})})})},Wt.prototype.bulkDelete=function(u){var f=this,p=u.length;return this._trans("readwrite",function(v){return f.core.mutate({trans:v,type:"delete",keys:u}).then(function(w){return rr(f,u,w)})}).then(function(v){var w=v.numFailures,k=v.failures;if(w===0)return v.lastResult;throw new Ie("".concat(f.name,".bulkDelete(): ").concat(w," of ").concat(p," operations failed"),k)})};var $f=Wt;function Wt(){}function Co(u){function f(M,R){if(R){for(var U=arguments.length,ee=new Array(U-1);--U;)ee[U-1]=arguments[U];return p[M].subscribe.apply(null,ee),u}if(typeof M=="string")return p[M]}var p={};f.addEventType=k;for(var v=1,w=arguments.length;v<w;++v)k(arguments[v]);return f;function k(M,R,U){var ee,Y;if(typeof M!="object")return R=R||Mt,Y={subscribers:[],fire:U=U||Me,subscribe:function(z){Y.subscribers.indexOf(z)===-1&&(Y.subscribers.push(z),Y.fire=R(Y.fire,z))},unsubscribe:function(z){Y.subscribers=Y.subscribers.filter(function(q){return q!==z}),Y.fire=Y.subscribers.reduce(R,U)}},p[M]=f[M]=Y;a(ee=M).forEach(function(z){var q=ee[z];if(i(q))k(z,ee[z][0],ee[z][1]);else{if(q!=="asap")throw new ie.InvalidArgument("Invalid event config");var J=k(z,Ue,function(){for(var K=arguments.length,X=new Array(K);K--;)X[K]=arguments[K];J.subscribers.forEach(function(V){A(function(){V.apply(null,X)})})})}})}}function ko(u,f){return S(f).from({prototype:u}),f}function Ls(u,f){return!(u.filter||u.algorithm||u.or)&&(f?u.justLimit:!u.replayFilter)}function uc(u,f){u.filter=_t(u.filter,f)}function dc(u,f,p){var v=u.replayFilter;u.replayFilter=v?function(){return _t(v(),f())}:f,u.justLimit=p&&!v}function yi(u,f){if(u.isPrimKey)return f.primaryKey;var p=f.getIndexByKeyPath(u.index);if(p)return p;throw new ie.Schema("KeyPath "+u.index+" on object store "+f.name+" is not indexed")}function Lf(u,f,p){var v=yi(u,f.schema);return f.openCursor({trans:p,values:!u.keysOnly,reverse:u.dir==="prev",unique:!!u.unique,query:{index:v,range:u.range}})}function vi(u,f,p,v){var w,k,M=u.replayFilter?_t(u.filter,u.replayFilter()):u.filter;return u.or?(w={},k=function(R,U,ee){var Y,z;M&&!M(U,ee,function(q){return U.stop(q)},function(q){return U.fail(q)})||((z=""+(Y=U.primaryKey))=="[object ArrayBuffer]"&&(z=""+new Uint8Array(Y)),m(w,z))||(w[z]=!0,f(R,U,ee))},Promise.all([u.or._iterate(k,p),Df(Lf(u,v,p),u.algorithm,k,!u.keysOnly&&u.valueMapper)])):Df(Lf(u,v,p),_t(u.algorithm,M),f,!u.keysOnly&&u.valueMapper)}function Df(u,f,p,v){var w=$e(v?function(k,M,R){return p(v(k),M,R)}:p);return u.then(function(k){if(k)return k.start(function(){var M=function(){return k.continue()};f&&!f(k,function(R){return M=R},function(R){k.stop(R),M=Me},function(R){k.fail(R),M=Me})||w(k.value,k,function(R){return M=R}),M()})})}Pt.prototype._read=function(u,f){var p=this._ctx;return p.error?p.table._trans(null,Kt.bind(null,p.error)):p.table._trans("readonly",u).then(f)},Pt.prototype._write=function(u){var f=this._ctx;return f.error?f.table._trans(null,Kt.bind(null,f.error)):f.table._trans("readwrite",u,"locked")},Pt.prototype._addAlgorithm=function(u){var f=this._ctx;f.algorithm=_t(f.algorithm,u)},Pt.prototype._iterate=function(u,f){return vi(this._ctx,u,f,this._ctx.table.core)},Pt.prototype.clone=function(u){var f=Object.create(this.constructor.prototype),p=Object.create(this._ctx);return u&&c(p,u),f._ctx=p,f},Pt.prototype.raw=function(){return this._ctx.valueMapper=null,this},Pt.prototype.each=function(u){var f=this._ctx;return this._read(function(p){return vi(f,u,p,f.table.core)})},Pt.prototype.count=function(u){var f=this;return this._read(function(p){var v,w=f._ctx,k=w.table.core;return Ls(w,!0)?k.count({trans:p,query:{index:yi(w,k.schema),range:w.range}}).then(function(M){return Math.min(M,w.limit)}):(v=0,vi(w,function(){return++v,!1},p,k).then(function(){return v}))}).then(u)},Pt.prototype.sortBy=function(u,f){var p=u.split(".").reverse(),v=p[0],w=p.length-1;function k(U,ee){return ee?k(U[p[ee]],ee-1):U[v]}var M=this._ctx.dir==="next"?1:-1;function R(U,ee){return Xe(k(U,w),k(ee,w))*M}return this.toArray(function(U){return U.sort(R)}).then(f)},Pt.prototype.toArray=function(u){var f=this;return this._read(function(p){var v,w,k,M=f._ctx;return Ls(M,!0)&&0<M.limit?(v=M.valueMapper,w=yi(M,M.table.core.schema),M.table.core.query({trans:p,limit:M.limit,values:!0,direction:M.dir==="prev"?"prev":void 0,query:{index:w,range:M.range}}).then(function(R){return R=R.result,v?R.map(v):R})):(k=[],vi(M,function(R){return k.push(R)},p,M.table.core).then(function(){return k}))},u)},Pt.prototype.offset=function(u){var f=this._ctx;return u<=0||(f.offset+=u,Ls(f)?dc(f,function(){var p=u;return function(v,w){return p===0||(p===1?--p:w(function(){v.advance(p),p=0}),!1)}}):dc(f,function(){var p=u;return function(){return--p<0}})),this},Pt.prototype.limit=function(u){return this._ctx.limit=Math.min(this._ctx.limit,u),dc(this._ctx,function(){var f=u;return function(p,v,w){return--f<=0&&v(w),0<=f}},!0),this},Pt.prototype.until=function(u,f){return uc(this._ctx,function(p,v,w){return!u(p.value)||(v(w),f)}),this},Pt.prototype.first=function(u){return this.limit(1).toArray(function(f){return f[0]}).then(u)},Pt.prototype.last=function(u){return this.reverse().first(u)},Pt.prototype.filter=function(u){var f;return uc(this._ctx,function(p){return u(p.value)}),(f=this._ctx).isMatch=_t(f.isMatch,u),this},Pt.prototype.and=function(u){return this.filter(u)},Pt.prototype.or=function(u){return new this.db.WhereClause(this._ctx.table,u,this)},Pt.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},Pt.prototype.desc=function(){return this.reverse()},Pt.prototype.eachKey=function(u){var f=this._ctx;return f.keysOnly=!f.isMatch,this.each(function(p,v){u(v.key,v)})},Pt.prototype.eachUniqueKey=function(u){return this._ctx.unique="unique",this.eachKey(u)},Pt.prototype.eachPrimaryKey=function(u){var f=this._ctx;return f.keysOnly=!f.isMatch,this.each(function(p,v){u(v.primaryKey,v)})},Pt.prototype.keys=function(u){var f=this._ctx,p=(f.keysOnly=!f.isMatch,[]);return this.each(function(v,w){p.push(w.key)}).then(function(){return p}).then(u)},Pt.prototype.primaryKeys=function(u){var f=this._ctx;if(Ls(f,!0)&&0<f.limit)return this._read(function(v){var w=yi(f,f.table.core.schema);return f.table.core.query({trans:v,values:!1,limit:f.limit,direction:f.dir==="prev"?"prev":void 0,query:{index:w,range:f.range}})}).then(function(v){return v.result}).then(u);f.keysOnly=!f.isMatch;var p=[];return this.each(function(v,w){p.push(w.primaryKey)}).then(function(){return p}).then(u)},Pt.prototype.uniqueKeys=function(u){return this._ctx.unique="unique",this.keys(u)},Pt.prototype.firstKey=function(u){return this.limit(1).keys(function(f){return f[0]}).then(u)},Pt.prototype.lastKey=function(u){return this.reverse().firstKey(u)},Pt.prototype.distinct=function(){var u,f=this._ctx,f=f.index&&f.table.schema.idxByName[f.index];return f&&f.multi&&(u={},uc(this._ctx,function(v){var v=v.primaryKey.toString(),w=m(u,v);return u[v]=!0,!w})),this},Pt.prototype.modify=function(u){var f=this,p=this._ctx;return this._write(function(v){function w(X,V){var oe=V.failures;q+=X-V.numFailures;for(var ne=0,fe=a(oe);ne<fe.length;ne++){var be=fe[ne];z.push(oe[be])}}var k=typeof u=="function"?u:function(X){return Of(X,u)},M=p.table.core,Y=M.schema.primaryKey,R=Y.outbound,U=Y.extractKey,ee=200,Y=f.db._options.modifyChunkSize,z=(Y&&(ee=typeof Y=="object"?Y[M.name]||Y["*"]||200:Y),[]),q=0,J=[],K=u===Ff;return f.clone().primaryKeys().then(function(X){function V(ne){var fe=Math.min(ee,X.length-ne),be=X.slice(ne,ne+fe);return(K?Promise.resolve([]):M.getMany({trans:v,keys:be,cache:"immutable"})).then(function(xe){var Pe=[],Ce=[],ze=R?[]:null,ke=K?be:[];if(!K)for(var Be=0;Be<fe;++Be){var Se=xe[Be],nt={value:Z(Se),primKey:X[ne+Be]};k.call(nt,nt.value,nt)!==!1&&(nt.value==null?ke.push(X[ne+Be]):R||Xe(U(Se),U(nt.value))===0?(Ce.push(nt.value),R&&ze.push(X[ne+Be])):(ke.push(X[ne+Be]),Pe.push(nt.value)))}return Promise.resolve(0<Pe.length&&M.mutate({trans:v,type:"add",values:Pe}).then(function(rt){for(var ct in rt.failures)ke.splice(parseInt(ct),1);w(Pe.length,rt)})).then(function(){return(0<Ce.length||oe&&typeof u=="object")&&M.mutate({trans:v,type:"put",keys:ze,values:Ce,criteria:oe,changeSpec:typeof u!="function"&&u,isAdditionalChunk:0<ne}).then(function(rt){return w(Ce.length,rt)})}).then(function(){return(0<ke.length||oe&&K)&&M.mutate({trans:v,type:"delete",keys:ke,criteria:oe,isAdditionalChunk:0<ne}).then(function(rt){return rr(p.table,ke,rt)}).then(function(rt){return w(ke.length,rt)})}).then(function(){return X.length>ne+fe&&V(ne+ee)})})}var oe=Ls(p)&&p.limit===1/0&&(typeof u!="function"||K)&&{index:p.index,range:p.range};return V(0).then(function(){if(0<z.length)throw new Le("Error modifying one or more objects",z,q,J);return X.length})})})},Pt.prototype.delete=function(){var u=this._ctx,f=u.range;return!Ls(u)||u.table.schema.yProps||!u.isPrimKey&&f.type!==3?this.modify(Ff):this._write(function(p){var v=u.table.core.schema.primaryKey,w=f;return u.table.core.count({trans:p,query:{index:v,range:w}}).then(function(k){return u.table.core.mutate({trans:p,type:"deleteRange",range:w}).then(function(U){var R=U.failures,U=U.numFailures;if(U)throw new Le("Could not delete some values",Object.keys(R).map(function(ee){return R[ee]}),k-U);return k-U})})})};var HS=Pt;function Pt(){}var Ff=function(u,f){return f.value=null};function YS(u,f){return u<f?-1:u===f?0:1}function KS(u,f){return f<u?-1:u===f?0:1}function zn(u,f,p){return u=u instanceof zf?new u.Collection(u):u,u._ctx.error=new(p||TypeError)(f),u}function Ds(u){return new u.Collection(u,function(){return Nf("")}).limit(0)}function bi(J,f,p,v){var w,k,M,R,U,ee,Y,z=p.length;if(!p.every(function(X){return typeof X=="string"}))return zn(J,wo);function q(X){w=X==="next"?function(oe){return oe.toUpperCase()}:function(oe){return oe.toLowerCase()},k=X==="next"?function(oe){return oe.toLowerCase()}:function(oe){return oe.toUpperCase()},M=X==="next"?YS:KS;var V=p.map(function(oe){return{lower:k(oe),upper:w(oe)}}).sort(function(oe,ne){return M(oe.lower,ne.lower)});R=V.map(function(oe){return oe.upper}),U=V.map(function(oe){return oe.lower}),Y=(ee=X)==="next"?"":v}q("next");var J=new J.Collection(J,function(){return $r(R[0],U[z-1]+v)}),K=(J._ondirectionchange=function(X){q(X)},0);return J._addAlgorithm(function(X,V,oe){var ne=X.key;if(typeof ne=="string"){var fe=k(ne);if(f(fe,U,K))return!0;for(var be=null,xe=K;xe<z;++xe){var Pe=((Ce,ze,ke,Be,Se,nt)=>{for(var rt=Math.min(Ce.length,Be.length),ct=-1,bt=0;bt<rt;++bt){var Bn=ze[bt];if(Bn!==Be[bt])return Se(Ce[bt],ke[bt])<0?Ce.substr(0,bt)+ke[bt]+ke.substr(bt+1):Se(Ce[bt],Be[bt])<0?Ce.substr(0,bt)+Be[bt]+ke.substr(bt+1):0<=ct?Ce.substr(0,ct)+ze[ct]+ke.substr(ct+1):null;Se(Ce[bt],Bn)<0&&(ct=bt)}return rt<Be.length&&nt==="next"?Ce+ke.substr(Ce.length):rt<Ce.length&&nt==="prev"?Ce.substr(0,ke.length):ct<0?null:Ce.substr(0,ct)+Be[ct]+ke.substr(ct+1)})(ne,fe,R[xe],U[xe],M,ee);Pe===null&&be===null?K=xe+1:(be===null||0<M(be,Pe))&&(be=Pe)}V(be!==null?function(){X.continue(be+Y)}:oe)}return!1}),J}function $r(u,f,p,v){return{type:2,lower:u,upper:f,lowerOpen:p,upperOpen:v}}function Nf(u){return{type:1,lower:u,upper:u}}Object.defineProperty(dn.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),dn.prototype.between=function(u,f,p,v){p=p!==!1,v=v===!0;try{return 0<this._cmp(u,f)||this._cmp(u,f)===0&&(p||v)&&(!p||!v)?Ds(this):new this.Collection(this,function(){return $r(u,f,!p,!v)})}catch{return zn(this,Xn)}},dn.prototype.equals=function(u){return u==null?zn(this,Xn):new this.Collection(this,function(){return Nf(u)})},dn.prototype.above=function(u){return u==null?zn(this,Xn):new this.Collection(this,function(){return $r(u,void 0,!0)})},dn.prototype.aboveOrEqual=function(u){return u==null?zn(this,Xn):new this.Collection(this,function(){return $r(u,void 0,!1)})},dn.prototype.below=function(u){return u==null?zn(this,Xn):new this.Collection(this,function(){return $r(void 0,u,!1,!0)})},dn.prototype.belowOrEqual=function(u){return u==null?zn(this,Xn):new this.Collection(this,function(){return $r(void 0,u)})},dn.prototype.startsWith=function(u){return typeof u!="string"?zn(this,wo):this.between(u,u+fr,!0,!0)},dn.prototype.startsWithIgnoreCase=function(u){return u===""?this.startsWith(u):bi(this,function(f,p){return f.indexOf(p[0])===0},[u],fr)},dn.prototype.equalsIgnoreCase=function(u){return bi(this,function(f,p){return f===p[0]},[u],"")},dn.prototype.anyOfIgnoreCase=function(){var u=ce.apply(G,arguments);return u.length===0?Ds(this):bi(this,function(f,p){return p.indexOf(f)!==-1},u,"")},dn.prototype.startsWithAnyOfIgnoreCase=function(){var u=ce.apply(G,arguments);return u.length===0?Ds(this):bi(this,function(f,p){return p.some(function(v){return f.indexOf(v)===0})},u,fr)},dn.prototype.anyOf=function(){var u,f,p=this,v=ce.apply(G,arguments),w=this._cmp;try{v.sort(w)}catch{return zn(this,Xn)}return v.length===0?Ds(this):((u=new this.Collection(this,function(){return $r(v[0],v[v.length-1])}))._ondirectionchange=function(k){w=k==="next"?p._ascending:p._descending,v.sort(w)},f=0,u._addAlgorithm(function(k,M,R){for(var U=k.key;0<w(U,v[f]);)if(++f===v.length)return M(R),!1;return w(U,v[f])===0||(M(function(){k.continue(v[f])}),!1)}),u)},dn.prototype.notEqual=function(u){return this.inAnyRange([[-1/0,u],[u,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},dn.prototype.noneOf=function(){var u=ce.apply(G,arguments);if(u.length===0)return new this.Collection(this);try{u.sort(this._ascending)}catch{return zn(this,Xn)}var f=u.reduce(function(p,v){return p?p.concat([[p[p.length-1][1],v]]):[[-1/0,v]]},null);return f.push([u[u.length-1],this.db._maxKey]),this.inAnyRange(f,{includeLowers:!1,includeUppers:!1})},dn.prototype.inAnyRange=function(u,oe){var p=this,v=this._cmp,w=this._ascending,k=this._descending,M=this._min,R=this._max;if(u.length===0)return Ds(this);if(!u.every(function(ne){return ne[0]!==void 0&&ne[1]!==void 0&&w(ne[0],ne[1])<=0}))return zn(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ie.InvalidArgument);var U=!oe||oe.includeLowers!==!1,ee=oe&&oe.includeUppers===!0,Y,z=w;function q(ne,fe){return z(ne[0],fe[0])}try{(Y=u.reduce(function(ne,fe){for(var be=0,xe=ne.length;be<xe;++be){var Pe=ne[be];if(v(fe[0],Pe[1])<0&&0<v(fe[1],Pe[0])){Pe[0]=M(Pe[0],fe[0]),Pe[1]=R(Pe[1],fe[1]);break}}return be===xe&&ne.push(fe),ne},[])).sort(q)}catch{return zn(this,Xn)}var J=0,K=ee?function(ne){return 0<w(ne,Y[J][1])}:function(ne){return 0<=w(ne,Y[J][1])},X=U?function(ne){return 0<k(ne,Y[J][0])}:function(ne){return 0<=k(ne,Y[J][0])},V=K,oe=new this.Collection(this,function(){return $r(Y[0][0],Y[Y.length-1][1],!U,!ee)});return oe._ondirectionchange=function(ne){z=ne==="next"?(V=K,w):(V=X,k),Y.sort(q)},oe._addAlgorithm(function(ne,fe,be){for(var xe,Pe=ne.key;V(Pe);)if(++J===Y.length)return fe(be),!1;return!K(xe=Pe)&&!X(xe)||(p._cmp(Pe,Y[J][1])===0||p._cmp(Pe,Y[J][0])===0||fe(function(){z===w?ne.continue(Y[J][0]):ne.continue(Y[J][1])}),!1)}),oe},dn.prototype.startsWithAnyOf=function(){var u=ce.apply(G,arguments);return u.every(function(f){return typeof f=="string"})?u.length===0?Ds(this):this.inAnyRange(u.map(function(f){return[f,f+fr]})):zn(this,"startsWithAnyOf() only works with strings")};var zf=dn;function dn(){}function sr(u){return $e(function(f){return To(f),u(f.target.error),!1})}function To(u){u.stopPropagation&&u.stopPropagation(),u.preventDefault&&u.preventDefault()}var Po="storagemutated",fc="x-storagemutated-1",Lr=Co(null,Po),XS=(hr.prototype._lock=function(){return C(!De.global),++this._reculock,this._reculock!==1||De.global||(De.lockOwnerFor=this),this},hr.prototype._unlock=function(){if(C(!De.global),--this._reculock==0)for(De.global||(De.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var u=this._blockedFuncs.shift();try{kr(u[1],u[0])}catch{}}return this},hr.prototype._locked=function(){return this._reculock&&De.lockOwnerFor!==this},hr.prototype.create=function(u){var f=this;if(this.mode){var p=this.db.idbdb,v=this.db._state.dbOpenError;if(C(!this.idbtrans),!u&&!p)switch(v&&v.name){case"DatabaseClosedError":throw new ie.DatabaseClosed(v);case"MissingAPIError":throw new ie.MissingAPI(v.message,v);default:throw new ie.OpenFailed(v)}if(!this.active)throw new ie.TransactionInactive;C(this._completion._state===null),(u=this.idbtrans=u||(this.db.core||p).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=$e(function(w){To(w),f._reject(u.error)}),u.onabort=$e(function(w){To(w),f.active&&f._reject(new ie.Abort(u.error)),f.active=!1,f.on("abort").fire(w)}),u.oncomplete=$e(function(){f.active=!1,f._resolve(),"mutatedParts"in u&&Lr.storagemutated.fire(u.mutatedParts)})}return this},hr.prototype._promise=function(u,f,p){var v,w=this;return u==="readwrite"&&this.mode!=="readwrite"?Kt(new ie.ReadOnly("Transaction is readonly")):this.active?this._locked()?new W(function(k,M){w._blockedFuncs.push([function(){w._promise(u,f,p).then(k,M)},De])}):p?Fn(function(){var k=new W(function(M,R){w._lock();var U=f(M,R,w);U&&U.then&&U.then(M,R)});return k.finally(function(){return w._unlock()}),k._lib=!0,k}):((v=new W(function(k,M){var R=f(k,M,w);R&&R.then&&R.then(k,M)}))._lib=!0,v):Kt(new ie.TransactionInactive)},hr.prototype._root=function(){return this.parent?this.parent._root():this},hr.prototype.waitFor=function(u){var f,p=this._root(),v=W.resolve(u),w=(p._waitingFor?p._waitingFor=p._waitingFor.then(function(){return v}):(p._waitingFor=v,p._waitingQueue=[],f=p.idbtrans.objectStore(p.storeNames[0]),function k(){for(++p._spinCount;p._waitingQueue.length;)p._waitingQueue.shift()();p._waitingFor&&(f.get(-1/0).onsuccess=k)}()),p._waitingFor);return new W(function(k,M){v.then(function(R){return p._waitingQueue.push($e(k.bind(null,R)))},function(R){return p._waitingQueue.push($e(M.bind(null,R)))}).finally(function(){p._waitingFor===w&&(p._waitingFor=null)})})},hr.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ie.Abort))},hr.prototype.table=function(u){var f=this._memoizedTables||(this._memoizedTables={});if(m(f,u))return f[u];var p=this.schema[u];if(p)return(p=new this.db.Table(u,p,this)).core=this.db.core.table(u),f[u]=p;throw new ie.NotFound("Table "+u+" not part of transaction")},hr);function hr(){}function hc(u,f,p,v,w,k,M,R){return{name:u,keyPath:f,unique:p,multi:v,auto:w,compound:k,src:(p&&!M?"&":"")+(v?"*":"")+(w?"++":"")+Bf(f),type:R}}function Bf(u){return typeof u=="string"?u:u?"["+[].join.call(u,"+")+"]":""}function pc(u,f,p){return{name:u,primKey:f,indexes:p,mappedClass:null,idxByName:(v=function(w){return[w.name,w]},p.reduce(function(w,k,M){return k=v(k,M),k&&(w[k[0]]=k[1]),w},{}))};var v}var Eo=function(u){try{return u.only([[]]),Eo=function(){return[[]]},[[]]}catch{return Eo=function(){return fr},fr}};function mc(u){return u==null?function(){}:typeof u=="string"?(f=u).split(".").length===1?function(p){return p[f]}:function(p){return I(p,f)}:function(p){return I(p,u)};var f}function Wf(u){return[].slice.call(u)}var VS=0;function Mo(u){return u==null?":id":typeof u=="string"?u:"[".concat(u.join("+"),"]")}function GS(u,f,M){function v(V){if(V.type===3)return null;if(V.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var J=V.lower,K=V.upper,X=V.lowerOpen,V=V.upperOpen;return J===void 0?K===void 0?null:f.upperBound(K,!!V):K===void 0?f.lowerBound(J,!!X):f.bound(J,K,!!X,!!V)}function w(q){var J,K,X=q.name;return{name:X,schema:q,mutate:function(V){var oe=V.trans,ne=V.type,fe=V.keys,be=V.values,xe=V.range;return new Promise(function(Pe,Ce){Pe=$e(Pe);var ze=oe.objectStore(X),ke=ze.keyPath==null,Be=ne==="put"||ne==="add";if(!Be&&ne!=="delete"&&ne!=="deleteRange")throw new Error("Invalid operation type: "+ne);var Se,nt=(fe||be||{length:1}).length;if(fe&&be&&fe.length!==be.length)throw new Error("Given keys array must have same length as given values array.");if(nt===0)return Pe({numFailures:0,failures:{},results:[],lastResult:void 0});function rt(An){++Bn,To(An)}var ct=[],bt=[],Bn=0;if(ne==="deleteRange"){if(xe.type===4)return Pe({numFailures:Bn,failures:bt,results:[],lastResult:void 0});xe.type===3?ct.push(Se=ze.clear()):ct.push(Se=ze.delete(v(xe)))}else{var ke=Be?ke?[be,fe]:[be,null]:[fe,null],it=ke[0],Tn=ke[1];if(Be)for(var Pn=0;Pn<nt;++Pn)ct.push(Se=Tn&&Tn[Pn]!==void 0?ze[ne](it[Pn],Tn[Pn]):ze[ne](it[Pn])),Se.onerror=rt;else for(Pn=0;Pn<nt;++Pn)ct.push(Se=ze[ne](it[Pn])),Se.onerror=rt}function Ri(An){An=An.target.result,ct.forEach(function(os,Ic){return os.error!=null&&(bt[Ic]=os.error)}),Pe({numFailures:Bn,failures:bt,results:ne==="delete"?fe:ct.map(function(os){return os.result}),lastResult:An})}Se.onerror=function(An){rt(An),Ri(An)},Se.onsuccess=Ri})},getMany:function(V){var oe=V.trans,ne=V.keys;return new Promise(function(fe,be){fe=$e(fe);for(var xe,Pe=oe.objectStore(X),Ce=ne.length,ze=new Array(Ce),ke=0,Be=0,Se=function(ct){ct=ct.target,ze[ct._pos]=ct.result,++Be===ke&&fe(ze)},nt=sr(be),rt=0;rt<Ce;++rt)ne[rt]!=null&&((xe=Pe.get(ne[rt]))._pos=rt,xe.onsuccess=Se,xe.onerror=nt,++ke);ke===0&&fe(ze)})},get:function(V){var oe=V.trans,ne=V.key;return new Promise(function(fe,be){fe=$e(fe);var xe=oe.objectStore(X).get(ne);xe.onsuccess=function(Pe){return fe(Pe.target.result)},xe.onerror=sr(be)})},query:(J=U,K=ee,function(V){return new Promise(function(oe,ne){oe=$e(oe);var fe,be,xe,Pe,nt=V.trans,Ce=V.values,ze=V.limit,Se=V.query,ke=(ke=V.direction)!=null?ke:"next",Be=ze===1/0?void 0:ze,rt=Se.index,Se=Se.range,nt=nt.objectStore(X),nt=rt.isPrimaryKey?nt:nt.index(rt.name),rt=v(Se);if(ze===0)return oe({result:[]});K?(Se={query:rt,count:Be,direction:ke},(fe=Ce?nt.getAll(Se):nt.getAllKeys(Se)).onsuccess=function(ct){return oe({result:ct.target.result})},fe.onerror=sr(ne)):J&&ke==="next"?((fe=Ce?nt.getAll(rt,Be):nt.getAllKeys(rt,Be)).onsuccess=function(ct){return oe({result:ct.target.result})},fe.onerror=sr(ne)):(be=0,xe=!Ce&&"openKeyCursor"in nt?nt.openKeyCursor(rt,ke):nt.openCursor(rt,ke),Pe=[],xe.onsuccess=function(){var ct=xe.result;return!ct||(Pe.push(Ce?ct.value:ct.primaryKey),++be===ze)?oe({result:Pe}):void ct.continue()},xe.onerror=sr(ne))})}),openCursor:function(V){var oe=V.trans,ne=V.values,fe=V.query,be=V.reverse,xe=V.unique;return new Promise(function(Pe,Ce){Pe=$e(Pe);var Be=fe.index,ze=fe.range,ke=oe.objectStore(X),ke=Be.isPrimaryKey?ke:ke.index(Be.name),Be=be?xe?"prevunique":"prev":xe?"nextunique":"next",Se=!ne&&"openKeyCursor"in ke?ke.openKeyCursor(v(ze),Be):ke.openCursor(v(ze),Be);Se.onerror=sr(Ce),Se.onsuccess=$e(function(nt){var rt,ct,bt,Bn,it=Se.result;it?(it.___id=++VS,it.done=!1,rt=it.continue.bind(it),ct=(ct=it.continuePrimaryKey)&&ct.bind(it),bt=it.advance.bind(it),Bn=function(){throw new Error("Cursor not stopped")},it.trans=oe,it.stop=it.continue=it.continuePrimaryKey=it.advance=function(){throw new Error("Cursor not started")},it.fail=$e(Ce),it.next=function(){var Tn=this,Pn=1;return this.start(function(){return Pn--?Tn.continue():Tn.stop()}).then(function(){return Tn})},it.start=function(Tn){function Pn(){if(Se.result)try{Tn()}catch(An){it.fail(An)}else it.done=!0,it.start=function(){throw new Error("Cursor behind last entry")},it.stop()}var Ri=new Promise(function(An,os){An=$e(An),Se.onerror=sr(os),it.fail=os,it.stop=function(Ic){it.stop=it.continue=it.continuePrimaryKey=it.advance=Bn,An(Ic)}});return Se.onsuccess=$e(function(An){Se.onsuccess=Pn,Pn()}),it.continue=rt,it.continuePrimaryKey=ct,it.advance=bt,Pn(),Ri},Pe(it)):Pe(null)},Ce)})},count:function(V){var oe=V.query,ne=V.trans,fe=oe.index,be=oe.range;return new Promise(function(xe,Pe){var Ce=ne.objectStore(X),Ce=fe.isPrimaryKey?Ce:Ce.index(fe.name),ze=v(be),ze=ze?Ce.count(ze):Ce.count();ze.onsuccess=$e(function(ke){return xe(ke.target.result)}),ze.onerror=sr(Pe)})}}}k=M,R=Wf((M=u).objectStoreNames),Y=0<R.length?k.objectStore(R[0]):{};var k,M={schema:{name:M.name,tables:R.map(function(q){return k.objectStore(q)}).map(function(q){var J=q.keyPath,K=q.autoIncrement,V=i(J),X={},V={name:q.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:J==null,compound:V,keyPath:J,autoIncrement:K,unique:!0,extractKey:mc(J)},indexes:Wf(q.indexNames).map(function(oe){return q.index(oe)}).map(function(be){var xe=be.name,ne=be.unique,fe=be.multiEntry,be=be.keyPath,xe={name:xe,compound:i(be),keyPath:be,unique:ne,multiEntry:fe,extractKey:mc(be)};return X[Mo(be)]=xe}),getIndexByKeyPath:function(oe){return X[Mo(oe)]}};return X[":id"]=V.primaryKey,J!=null&&(X[Mo(J)]=V.primaryKey),V})},hasGetAll:0<R.length&&"getAll"in Y&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in Y},R=M.schema,U=M.hasGetAll,ee=M.hasIdb3Features,Y=R.tables.map(w),z={};return Y.forEach(function(q){return z[q.name]=q}),{stack:"dbcore",transaction:u.transaction.bind(u),table:function(q){if(z[q])return z[q];throw new Error("Table '".concat(q,"' not found"))},MIN_KEY:-1/0,MAX_KEY:Eo(f),schema:R}}function JS(u,f,p,v){return p=p.IDBKeyRange,f=GS(f,p,v),{dbcore:u.dbcore.reduce(function(w,k){return k=k.create,r(r({},w),k(w))},f)}}function Si(u,f){var p=f.db,p=JS(u._middlewares,p,u._deps,f);u.core=p.dbcore,u.tables.forEach(function(v){var w=v.name;u.core.schema.tables.some(function(k){return k.name===w})&&(v.core=u.core.table(w),u[w]instanceof u.Table)&&(u[w].core=v.core)})}function xi(u,f,p,v){p.forEach(function(w){var k=v[w];f.forEach(function(M){var R=function U(ee,Y){return _(ee,Y)||(ee=d(ee))&&U(ee,Y)}(M,w);(!R||"value"in R&&R.value===void 0)&&(M===u.Transaction.prototype||M instanceof u.Transaction?x(M,w,{get:function(){return this.table(w)},set:function(U){y(this,w,{value:U,writable:!0,configurable:!0,enumerable:!0})}}):M[w]=new u.Table(w,k))})})}function gc(u,f){f.forEach(function(p){for(var v in p)p[v]instanceof u.Table&&delete p[v]})}function QS(u,f){return u._cfg.version-f._cfg.version}function ZS(u,f,p,v){var w=u._dbSchema,k=(p.objectStoreNames.contains("$meta")&&!w.$meta&&(w.$meta=pc("$meta",qf("")[0],[]),u._storeNames.push("$meta")),u._createTransaction("readwrite",u._storeNames,w)),M=(k.create(p),k._completion.catch(v),k._reject.bind(k)),R=De.transless||De;Fn(function(){if(De.trans=k,De.transless=R,f!==0)return Si(u,p),ee=f,((U=k).storeNames.includes("$meta")?U.table("$meta").get("version").then(function(Y){return Y??ee}):W.resolve(ee)).then(function(V){var z=u,q=V,J=k,K=p,X=[],V=z._versions,oe=z._dbSchema=_i(0,z.idbdb,K);return(V=V.filter(function(ne){return ne._cfg.version>=q})).length===0?W.resolve():(V.forEach(function(ne){X.push(function(){var fe,be,xe,Pe=oe,Ce=ne._cfg.dbschema,ze=(Ci(z,Pe,K),Ci(z,Ce,K),oe=z._dbSchema=Ce,yc(Pe,Ce)),ke=(ze.add.forEach(function(Be){vc(K,Be[0],Be[1].primKey,Be[1].indexes)}),ze.change.forEach(function(Be){if(Be.recreate)throw new ie.Upgrade("Not yet support for changing primary key");var Se=K.objectStore(Be.name);Be.add.forEach(function(nt){return wi(Se,nt)}),Be.change.forEach(function(nt){Se.deleteIndex(nt.name),wi(Se,nt)}),Be.del.forEach(function(nt){return Se.deleteIndex(nt)})}),ne._cfg.contentUpgrade);if(ke&&ne._cfg.version>q)return Si(z,K),J._memoizedTables={},fe=$(Ce),ze.del.forEach(function(Be){fe[Be]=Pe[Be]}),gc(z,[z.Transaction.prototype]),xi(z,[z.Transaction.prototype],a(fe),fe),J.schema=fe,(be=ve(ke))&&dr(),Ce=W.follow(function(){var Be;(xe=ke(J))&&be&&(Be=nr.bind(null,null),xe.then(Be,Be))}),xe&&typeof xe.then=="function"?W.resolve(xe):Ce.then(function(){return xe})}),X.push(function(fe){var be,xe,Pe=ne._cfg.dbschema;be=Pe,xe=fe,[].slice.call(xe.db.objectStoreNames).forEach(function(Ce){return be[Ce]==null&&xe.db.deleteObjectStore(Ce)}),gc(z,[z.Transaction.prototype]),xi(z,[z.Transaction.prototype],z._storeNames,z._dbSchema),J.schema=z._dbSchema}),X.push(function(fe){z.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(z.idbdb.version/10)===ne._cfg.version?(z.idbdb.deleteObjectStore("$meta"),delete z._dbSchema.$meta,z._storeNames=z._storeNames.filter(function(be){return be!=="$meta"})):fe.objectStore("$meta").put(ne._cfg.version,"version"))})}),function ne(){return X.length?W.resolve(X.shift()(J.idbtrans)).then(ne):W.resolve()}().then(function(){Uf(oe,K)}))}).catch(M);var U,ee;a(w).forEach(function(Y){vc(p,Y,w[Y].primKey,w[Y].indexes)}),Si(u,p),W.follow(function(){return u.on.populate.fire(k)}).catch(M)})}function ex(u,f){Uf(u._dbSchema,f),f.db.version%10!=0||f.objectStoreNames.contains("$meta")||f.db.createObjectStore("$meta").add(Math.ceil(f.db.version/10-1),"version");var p=_i(0,u.idbdb,f);Ci(u,u._dbSchema,f);for(var v=0,w=yc(p,u._dbSchema).change;v<w.length;v++){var k=(M=>{if(M.change.length||M.recreate)return console.warn("Unable to patch indexes of table ".concat(M.name," because it has changes on the type of index or primary key.")),{value:void 0};var R=f.objectStore(M.name);M.add.forEach(function(U){kt&&console.debug("Dexie upgrade patch: Creating missing index ".concat(M.name,".").concat(U.src)),wi(R,U)})})(w[v]);if(typeof k=="object")return k.value}}function yc(u,f){var p,v={del:[],add:[],change:[]};for(p in u)f[p]||v.del.push(p);for(p in f){var w=u[p],k=f[p];if(w){var M={name:p,def:k,recreate:!1,del:[],add:[],change:[]};if(""+(w.primKey.keyPath||"")!=""+(k.primKey.keyPath||"")||w.primKey.auto!==k.primKey.auto)M.recreate=!0,v.change.push(M);else{var R=w.idxByName,U=k.idxByName,ee=void 0;for(ee in R)U[ee]||M.del.push(ee);for(ee in U){var Y=R[ee],z=U[ee];Y?Y.src!==z.src&&M.change.push(z):M.add.push(z)}(0<M.del.length||0<M.add.length||0<M.change.length)&&v.change.push(M)}}else v.add.push([p,k])}return v}function vc(u,f,p,v){var w=u.db.createObjectStore(f,p.keyPath?{keyPath:p.keyPath,autoIncrement:p.auto}:{autoIncrement:p.auto});v.forEach(function(k){return wi(w,k)})}function Uf(u,f){a(u).forEach(function(p){f.db.objectStoreNames.contains(p)||(kt&&console.debug("Dexie: Creating missing table",p),vc(f,p,u[p].primKey,u[p].indexes))})}function wi(u,f){u.createIndex(f.name,f.keyPath,{unique:f.unique,multiEntry:f.multi})}function _i(u,f,p){var v={};return T(f.objectStoreNames,0).forEach(function(w){for(var k=p.objectStore(w),M=hc(Bf(ee=k.keyPath),ee||"",!0,!1,!!k.autoIncrement,ee&&typeof ee!="string",!0),R=[],U=0;U<k.indexNames.length;++U){var Y=k.index(k.indexNames[U]),ee=Y.keyPath,Y=hc(Y.name,ee,!!Y.unique,!!Y.multiEntry,!1,ee&&typeof ee!="string",!1);R.push(Y)}v[w]=pc(w,M,R)}),v}function Ci(u,f,p){for(var v=p.db.objectStoreNames,w=0;w<v.length;++w){var k=v[w],M=p.objectStore(k);u._hasGetAll="getAll"in M;for(var R=0;R<M.indexNames.length;++R){var U,ee=M.indexNames[R],Y=M.index(ee).keyPath,Y=typeof Y=="string"?Y:"["+T(Y).join("+")+"]";f[k]&&(U=f[k].idxByName[Y])&&(U.name=ee,delete f[k].idxByName[Y],f[k].idxByName[ee]=U)}}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 qf(u){return u.split(",").map(function(f,p){var w=f.split(":"),v=(v=w[1])==null?void 0:v.trim(),w=(f=w[0].trim()).replace(/([&*]|\+\+)/g,""),k=/^\[/.test(w)?w.match(/^\[(.*)\]$/)[1].split("+"):w;return hc(w,k||null,/\&/.test(f),/\*/.test(f),/\+\+/.test(f),i(k),p===0,v)})}Fs.prototype._createTableSchema=pc,Fs.prototype._parseIndexSyntax=qf,Fs.prototype._parseStoresSpec=function(u,f){var p=this;a(u).forEach(function(v){if(u[v]!==null){var w=p._parseIndexSyntax(u[v]),k=w.shift();if(!k)throw new ie.Schema("Invalid schema for table "+v+": "+u[v]);if(k.unique=!0,k.multi)throw new ie.Schema("Primary key cannot be multiEntry*");w.forEach(function(M){if(M.auto)throw new ie.Schema("Only primary key can be marked as autoIncrement (++)");if(!M.keyPath)throw new ie.Schema("Index must have a name and cannot be an empty string")}),k=p._createTableSchema(v,k,w),f[v]=k}})},Fs.prototype.stores=function(p){var f=this.db,p=(this._cfg.storesSource=this._cfg.storesSource?c(this._cfg.storesSource,p):p,f._versions),v={},w={};return p.forEach(function(k){c(v,k._cfg.storesSource),w=k._cfg.dbschema={},k._parseStoresSpec(v,w)}),f._dbSchema=w,gc(f,[f._allTables,f,f.Transaction.prototype]),xi(f,[f._allTables,f,f.Transaction.prototype,this._cfg.tables],a(w),w),f._storeNames=a(w),this},Fs.prototype.upgrade=function(u){return this._cfg.contentUpgrade=wn(this._cfg.contentUpgrade||Me,u),this};var tx=Fs;function Fs(){}var Ao=(()=>{var u,f,p;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(u=new Set,f=new FinalizationRegistry(function(v){u.delete(v)}),{toArray:function(){return Array.from(u).map(function(v){return v.deref()}).filter(function(v){return v!==void 0})},add:function(v){var w=new WeakRef(v._novip);u.add(w),f.register(v._novip,w,w),u.size>v._options.maxConnections&&(w=u.values().next().value,u.delete(w),f.unregister(w))},remove:function(v){if(v)for(var w=u.values(),k=w.next();!k.done;){var M=k.value;if(M.deref()===v._novip)return u.delete(M),void f.unregister(M);k=w.next()}}}):(p=[],{toArray:function(){return p},add:function(v){p.push(v._novip)},remove:function(v){v&&(v=p.indexOf(v._novip))!==-1&&p.splice(v,1)}})})();function bc(u,f){var p=u._dbNamesDB;return p||(p=u._dbNamesDB=new Pr(ns,{addons:[],indexedDB:u,IDBKeyRange:f})).version(1).stores({dbnames:"name"}),p.table("dbnames")}function Sc(u){return u&&typeof u.databases=="function"}function xc(u){return Fn(function(){return De.letThrough=!0,u()})}function wc(u){return!("from"in u)}var kn=function(u,f){var p;if(!this)return p=new kn,u&&"d"in u&&c(p,u),p;c(this,arguments.length?{d:1,from:u,to:1<arguments.length?f:u}:{d:0})};function Ro(u,f,p){var v=Xe(f,p);if(!isNaN(v)){if(0<v)throw RangeError();if(wc(u))return c(u,{from:f,to:p,d:1});var v=u.l,w=u.r;if(Xe(p,u.from)<0)return v?Ro(v,f,p):u.l={from:f,to:p,d:1,l:null,r:null},Yf(u);if(0<Xe(f,u.to))return w?Ro(w,f,p):u.r={from:f,to:p,d:1,l:null,r:null},Yf(u);Xe(f,u.from)<0&&(u.from=f,u.l=null,u.d=w?w.d+1:1),0<Xe(p,u.to)&&(u.to=p,u.r=null,u.d=u.l?u.l.d+1:1),f=!u.r,v&&!u.l&&jo(u,v),w&&f&&jo(u,w)}}function jo(u,f){wc(f)||function p(v,w){var k=w.from,M=w.l,R=w.r;Ro(v,k,w.to),M&&p(v,M),R&&p(v,R)}(u,f)}function Hf(u,f){var p=ki(f),v=p.next();if(!v.done)for(var w=v.value,k=ki(u),M=k.next(w.from),R=M.value;!v.done&&!M.done;){if(Xe(R.from,w.to)<=0&&0<=Xe(R.to,w.from))return!0;Xe(w.from,R.from)<0?w=(v=p.next(R.from)).value:R=(M=k.next(w.from)).value}return!1}function ki(u){var f=wc(u)?null:{s:0,n:u};return{next:function(p){for(var v=0<arguments.length;f;)switch(f.s){case 0:if(f.s=1,v)for(;f.n.l&&Xe(p,f.n.from)<0;)f={up:f,n:f.n.l,s:1};else for(;f.n.l;)f={up:f,n:f.n.l,s:1};case 1:if(f.s=2,!v||Xe(p,f.n.to)<=0)return{value:f.n,done:!1};case 2:if(f.n.r){f.s=3,f={up:f,n:f.n.r,s:0};continue}case 3:f=f.up}return{done:!0}}}}function Yf(u){var f,p,v,w=(((w=u.r)==null?void 0:w.d)||0)-(((w=u.l)==null?void 0:w.d)||0),w=1<w?"r":w<-1?"l":"";w&&(f=w=="r"?"l":"r",p=r({},u),v=u[w],u.from=v.from,u.to=v.to,u[w]=v[w],p[w]=v[f],(u[f]=p).d=Kf(p)),u.d=Kf(u)}function Kf(p){var f=p.r,p=p.l;return(f?p?Math.max(f.d,p.d):f.d:p?p.d:0)+1}function Ti(u,f){return a(f).forEach(function(p){u[p]?jo(u[p],f[p]):u[p]=function v(w){var k,M,R={};for(k in w)m(w,k)&&(M=w[k],R[k]=!M||typeof M!="object"||H.has(M.constructor)?M:v(M));return R}(f[p])}),u}function _c(u,f){return u.all||f.all||Object.keys(u).some(function(p){return f[p]&&Hf(f[p],u[p])})}g(kn.prototype,((Ot={add:function(u){return jo(this,u),this},addKey:function(u){return Ro(this,u,u),this},addKeys:function(u){var f=this;return u.forEach(function(p){return Ro(f,p,p)}),this},hasKey:function(u){var f=ki(this).next(u).value;return f&&Xe(f.from,u)<=0&&0<=Xe(f.to,u)}})[de]=function(){return ki(this)},Ot));var rs={},Cc={},kc=!1;function Pi(u){Ti(Cc,u),kc||(kc=!0,setTimeout(function(){kc=!1,Tc(Cc,!(Cc={}))},0))}function Tc(u,f){f===void 0&&(f=!1);var p=new Set;if(u.all)for(var v=0,w=Object.values(rs);v<w.length;v++)Xf(R=w[v],u,p,f);else for(var k in u){var M,R,k=/^idb\:\/\/(.*)\/(.*)\//.exec(k);k&&(M=k[1],k=k[2],R=rs["idb://".concat(M,"/").concat(k)])&&Xf(R,u,p,f)}p.forEach(function(U){return U()})}function Xf(u,f,p,v){for(var w=[],k=0,M=Object.entries(u.queries.query);k<M.length;k++){for(var R=M[k],U=R[0],ee=[],Y=0,z=R[1];Y<z.length;Y++){var q=z[Y];_c(f,q.obsSet)?q.subscribers.forEach(function(V){return p.add(V)}):v&&ee.push(q)}v&&w.push([U,ee])}if(v)for(var J=0,K=w;J<K.length;J++){var X=K[J],U=X[0],ee=X[1];u.queries.query[U]=ee}}function nx(u){var f=u._state,p=u._deps.indexedDB;if(f.isBeingOpened||u.idbdb)return f.dbReadyPromise.then(function(){return f.dbOpenError?Kt(f.dbOpenError):u});f.isBeingOpened=!0,f.dbOpenError=null,f.openComplete=!1;var v=f.openCanceller,w=Math.round(10*u.verno),k=!1;function M(){if(f.openCanceller!==v)throw new ie.DatabaseClosed("db.open() was cancelled")}function R(){return new W(function(q,J){if(M(),!p)throw new ie.MissingAPI;var K=u.name,X=f.autoSchema||!w?p.open(K):p.open(K,w);if(!X)throw new ie.MissingAPI;X.onerror=sr(J),X.onblocked=$e(u._fireOnBlocked),X.onupgradeneeded=$e(function(V){var oe;Y=X.transaction,f.autoSchema&&!u._options.allowEmptyDB?(X.onerror=To,Y.abort(),X.result.close(),(oe=p.deleteDatabase(K)).onsuccess=oe.onerror=$e(function(){J(new ie.NoSuchDatabase("Database ".concat(K," doesnt exist")))})):(Y.onerror=sr(J),oe=V.oldVersion>Math.pow(2,62)?0:V.oldVersion,z=oe<1,u.idbdb=X.result,k&&ex(u,Y),ZS(u,oe/10,Y,J))},J),X.onsuccess=$e(function(){Y=null;var V,oe,ne,fe,be,xe,Pe=u.idbdb=X.result,Ce=T(Pe.objectStoreNames);if(0<Ce.length)try{var ze=Pe.transaction((be=Ce).length===1?be[0]:be,"readonly");if(f.autoSchema)xe=Pe,fe=ze,(ne=u).verno=xe.version/10,fe=ne._dbSchema=_i(0,xe,fe),ne._storeNames=T(xe.objectStoreNames,0),xi(ne,[ne._allTables],a(fe),fe);else if(Ci(u,u._dbSchema,ze),oe=ze,((oe=yc(_i(0,(V=u).idbdb,oe),V._dbSchema)).add.length||oe.change.some(function(ke){return ke.add.length||ke.change.length}))&&!k)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),Pe.close(),w=Pe.version+1,k=!0,q(R());Si(u,ze)}catch{}Ao.add(u),Pe.onversionchange=$e(function(ke){f.vcFired=!0,u.on("versionchange").fire(ke)}),Pe.onclose=$e(function(){u.close({disableAutoOpen:!1})}),z&&(Ce=u._deps,be=K,Sc(xe=Ce.indexedDB)||be===ns||bc(xe,Ce.IDBKeyRange).put({name:be}).catch(Me)),q()},J)}).catch(function(q){switch(q==null?void 0:q.name){case"UnknownError":if(0<f.PR1398_maxLoop)return f.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),R();break;case"VersionError":if(0<w)return w=0,R()}return W.reject(q)})}var U,ee=f.dbReadyResolve,Y=null,z=!1;return W.race([v,(typeof navigator>"u"?W.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(q){function J(){return indexedDB.databases().finally(q)}U=setInterval(J,100),J()}).finally(function(){return clearInterval(U)}):Promise.resolve()).then(R)]).then(function(){return M(),f.onReadyBeingFired=[],W.resolve(xc(function(){return u.on.ready.fire(u.vip)})).then(function q(){var J;if(0<f.onReadyBeingFired.length)return J=f.onReadyBeingFired.reduce(wn,Me),f.onReadyBeingFired=[],W.resolve(xc(function(){return J(u.vip)})).then(q)})}).finally(function(){f.openCanceller===v&&(f.onReadyBeingFired=null,f.isBeingOpened=!1)}).catch(function(q){f.dbOpenError=q;try{Y&&Y.abort()}catch{}return v===f.openCanceller&&u._close(),Kt(q)}).finally(function(){f.openComplete=!0,ee()}).then(function(){var q;return z&&(q={},u.tables.forEach(function(J){J.schema.indexes.forEach(function(K){K.name&&(q["idb://".concat(u.name,"/").concat(J.name,"/").concat(K.name)]=new kn(-1/0,[[[]]]))}),q["idb://".concat(u.name,"/").concat(J.name,"/")]=q["idb://".concat(u.name,"/").concat(J.name,"/:dels")]=new kn(-1/0,[[[]]])}),Lr(Po).fire(q),Tc(q,!0)),u})}function Pc(u){function f(k){return u.next(k)}var p=w(f),v=w(function(k){return u.throw(k)});function w(k){return function(R){var R=k(R),U=R.value;return R.done?U:U&&typeof U.then=="function"?U.then(p,v):i(U)?Promise.all(U).then(p,v):p(U)}}return w(f)()}function Ei(u,f,p){for(var v=i(u)?u.slice():[u],w=0;w<p;++w)v.push(f);return v}var rx={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(u){return r(r({},u),{table:function(v){var p=u.table(v),v=p.schema,w={},k=[];function M(q,J,K){var ne=Mo(q),X=w[ne]=w[ne]||[],V=q==null?0:typeof q=="string"?1:q.length,oe=0<J,ne=r(r({},K),{name:oe?"".concat(ne,"(virtual-from:").concat(K.name,")"):K.name,lowLevelIndex:K,isVirtual:oe,keyTail:J,keyLength:V,extractKey:mc(q),unique:!oe&&K.unique});return X.push(ne),ne.isPrimaryKey||k.push(ne),1<V&&M(V===2?q[0]:q.slice(0,V-1),J+1,K),X.sort(function(fe,be){return fe.keyTail-be.keyTail}),ne}var R=M(v.primaryKey.keyPath,0,v.primaryKey);w[":id"]=[R];for(var U=0,ee=v.indexes;U<ee.length;U++){var Y=ee[U];M(Y.keyPath,0,Y)}function z(q){var J,K=q.query.index;return K.isVirtual?r(r({},q),{query:{index:K.lowLevelIndex,range:(J=q.query.range,K=K.keyTail,{type:J.type===1?2:J.type,lower:Ei(J.lower,J.lowerOpen?u.MAX_KEY:u.MIN_KEY,K),lowerOpen:!0,upper:Ei(J.upper,J.upperOpen?u.MIN_KEY:u.MAX_KEY,K),upperOpen:!0})}}):q}return r(r({},p),{schema:r(r({},v),{primaryKey:R,indexes:k,getIndexByKeyPath:function(q){return(q=w[Mo(q)])&&q[0]}}),count:function(q){return p.count(z(q))},query:function(q){return p.query(z(q))},openCursor:function(q){var J=q.query.index,K=J.keyTail,X=J.keyLength;return J.isVirtual?p.openCursor(z(q)).then(function(oe){return oe&&V(oe)}):p.openCursor(q);function V(oe){return Object.create(oe,{continue:{value:function(ne){ne!=null?oe.continue(Ei(ne,q.reverse?u.MAX_KEY:u.MIN_KEY,K)):q.unique?oe.continue(oe.key.slice(0,X).concat(q.reverse?u.MIN_KEY:u.MAX_KEY,K)):oe.continue()}},continuePrimaryKey:{value:function(ne,fe){oe.continuePrimaryKey(Ei(ne,u.MAX_KEY,K),fe)}},primaryKey:{get:function(){return oe.primaryKey}},key:{get:function(){var ne=oe.key;return X===1?ne[0]:ne.slice(0,X)}},value:{get:function(){return oe.value}}})}}})}})}};function Ec(u,f,p,v){return p=p||{},v=v||"",a(u).forEach(function(w){var k,M,R;m(f,w)?(k=u[w],M=f[w],typeof k=="object"&&typeof M=="object"&&k&&M?(R=F(k))!==F(M)?p[v+w]=f[w]:R==="Object"?Ec(k,M,p,v+w+"."):k!==M&&(p[v+w]=f[w]):k!==M&&(p[v+w]=f[w])):p[v+w]=void 0}),a(f).forEach(function(w){m(u,w)||(p[v+w]=f[w])}),p}function Mc(u,f){return f.type==="delete"?f.keys:f.keys||f.values.map(u.extractKey)}var sx={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(u){return r(r({},u),{table:function(f){var p=u.table(f),v=p.schema.primaryKey;return r(r({},p),{mutate:function(w){var k=De.trans,M=k.table(f).hook,R=M.deleting,U=M.creating,ee=M.updating;switch(w.type){case"add":if(U.fire===Me)break;return k._promise("readwrite",function(){return Y(w)},!0);case"put":if(U.fire===Me&&ee.fire===Me)break;return k._promise("readwrite",function(){return Y(w)},!0);case"delete":if(R.fire===Me)break;return k._promise("readwrite",function(){return Y(w)},!0);case"deleteRange":if(R.fire===Me)break;return k._promise("readwrite",function(){return function z(q,J,K){return p.query({trans:q,values:!1,query:{index:v,range:J},limit:K}).then(function(X){var V=X.result;return Y({type:"delete",keys:V,trans:q}).then(function(oe){return 0<oe.numFailures?Promise.reject(oe.failures[0]):V.length<K?{failures:[],numFailures:0,lastResult:void 0}:z(q,r(r({},J),{lower:V[V.length-1],lowerOpen:!0}),K)})})}(w.trans,w.range,1e4)},!0)}return p.mutate(w);function Y(z){var q,J,K,X=De.trans,V=z.keys||Mc(v,z);if(V)return(z=z.type==="add"||z.type==="put"?r(r({},z),{keys:V}):r({},z)).type!=="delete"&&(z.values=s([],z.values)),z.keys&&(z.keys=s([],z.keys)),q=p,K=V,((J=z).type==="add"?Promise.resolve([]):q.getMany({trans:J.trans,keys:K,cache:"immutable"})).then(function(oe){var ne=V.map(function(fe,be){var xe,Pe,Ce,ze=oe[be],ke={onerror:null,onsuccess:null};return z.type==="delete"?R.fire.call(ke,fe,ze,X):z.type==="add"||ze===void 0?(xe=U.fire.call(ke,fe,z.values[be],X),fe==null&&xe!=null&&(z.keys[be]=fe=xe,v.outbound||O(z.values[be],v.keyPath,fe))):(xe=Ec(ze,z.values[be]),(Pe=ee.fire.call(ke,xe,fe,ze,X))&&(Ce=z.values[be],Object.keys(Pe).forEach(function(Be){m(Ce,Be)?Ce[Be]=Pe[Be]:O(Ce,Be,Pe[Be])}))),ke});return p.mutate(z).then(function(fe){for(var be=fe.failures,xe=fe.results,Pe=fe.numFailures,fe=fe.lastResult,Ce=0;Ce<V.length;++Ce){var ze=(xe||V)[Ce],ke=ne[Ce];ze==null?ke.onerror&&ke.onerror(be[Ce]):ke.onsuccess&&ke.onsuccess(z.type==="put"&&oe[Ce]?z.values[Ce]:ze)}return{failures:be,results:xe,numFailures:Pe,lastResult:fe}}).catch(function(fe){return ne.forEach(function(be){return be.onerror&&be.onerror(fe)}),Promise.reject(fe)})});throw new Error("Keys missing")}}})}})}};function Vf(u,f,p){try{if(!f||f.keys.length<u.length)return null;for(var v=[],w=0,k=0;w<f.keys.length&&k<u.length;++w)Xe(f.keys[w],u[k])===0&&(v.push(p?Z(f.values[w]):f.values[w]),++k);return v.length===u.length?v:null}catch{return null}}var ox={stack:"dbcore",level:-1,create:function(u){return{table:function(f){var p=u.table(f);return r(r({},p),{getMany:function(v){var w;return v.cache?(w=Vf(v.keys,v.trans._cache,v.cache==="clone"))?W.resolve(w):p.getMany(v).then(function(k){return v.trans._cache={keys:v.keys,values:v.cache==="clone"?Z(k):k},k}):p.getMany(v)},mutate:function(v){return v.type!=="add"&&(v.trans._cache=null),p.mutate(v)}})}}}};function Gf(u,f){return u.trans.mode==="readonly"&&!!u.subscr&&!u.trans.explicit&&u.trans.db._options.cache!=="disabled"&&!f.schema.primaryKey.outbound}function Jf(u,f){switch(u){case"query":return f.values&&!f.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var ax={stack:"dbcore",level:0,name:"Observability",create:function(u){var f=u.schema.name,p=new kn(u.MIN_KEY,u.MAX_KEY);return r(r({},u),{transaction:function(v,w,k){if(De.subscr&&w!=="readonly")throw new ie.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(De.querier));return u.transaction(v,w,k)},table:function(v){function w(V){var X,V=V.query;return[X=V.index,new kn((X=(V=V.range).lower)!=null?X:u.MIN_KEY,(X=V.upper)!=null?X:u.MAX_KEY)]}var k=u.table(v),M=k.schema,R=M.primaryKey,U=M.indexes,ee=R.extractKey,Y=R.outbound,z=R.autoIncrement&&U.filter(function(K){return K.compound&&K.keyPath.includes(R.keyPath)}),q=r(r({},k),{mutate:function(K){function X(Se){return Se="idb://".concat(f,"/").concat(v,"/").concat(Se),be[Se]||(be[Se]=new kn)}var V,oe,ne,fe=K.trans,be=K.mutatedParts||(K.mutatedParts={}),xe=X(""),Pe=X(":dels"),Ce=K.type,ke=K.type==="deleteRange"?[K.range]:K.type==="delete"?[K.keys]:K.values.length<50?[Mc(R,K).filter(function(Se){return Se}),K.values]:[],ze=ke[0],ke=ke[1],Be=K.trans._cache;return i(ze)?(xe.addKeys(ze),(Ce=Ce==="delete"||ze.length===ke.length?Vf(ze,Be):null)||Pe.addKeys(ze),(Ce||ke)&&(V=X,oe=Ce,ne=ke,M.indexes.forEach(function(Se){var nt=V(Se.name||"");function rt(bt){return bt!=null?Se.extractKey(bt):null}function ct(bt){Se.multiEntry&&i(bt)?bt.forEach(function(Bn){return nt.addKey(Bn)}):nt.addKey(bt)}(oe||ne).forEach(function(bt,Tn){var it=oe&&rt(oe[Tn]),Tn=ne&&rt(ne[Tn]);Xe(it,Tn)!==0&&(it!=null&&ct(it),Tn!=null)&&ct(Tn)})}))):ze?(ke={from:(Be=ze.lower)!=null?Be:u.MIN_KEY,to:(Ce=ze.upper)!=null?Ce:u.MAX_KEY},Pe.add(ke),xe.add(ke)):(xe.add(p),Pe.add(p),M.indexes.forEach(function(Se){return X(Se.name).add(p)})),k.mutate(K).then(function(Se){return!ze||K.type!=="add"&&K.type!=="put"||(xe.addKeys(Se.results),z&&z.forEach(function(nt){for(var rt=K.values.map(function(it){return nt.extractKey(it)}),ct=nt.keyPath.findIndex(function(it){return it===R.keyPath}),bt=0,Bn=Se.results.length;bt<Bn;++bt)rt[bt][ct]=Se.results[bt];X(nt.name).addKeys(rt)})),fe.mutatedParts=Ti(fe.mutatedParts||{},be),Se})}}),J={get:function(K){return[R,new kn(K.key)]},getMany:function(K){return[R,new kn().addKeys(K.keys)]},count:w,query:w,openCursor:w};return a(J).forEach(function(K){q[K]=function(X){var V=De.subscr,oe=!!V,ne=Gf(De,k)&&Jf(K,X)?X.obsSet={}:V;if(oe){var fe,V=function(ke){return ke="idb://".concat(f,"/").concat(v,"/").concat(ke),ne[ke]||(ne[ke]=new kn)},be=V(""),xe=V(":dels"),oe=J[K](X),Pe=oe[0],oe=oe[1];if((K==="query"&&Pe.isPrimaryKey&&!X.values?xe:V(Pe.name||"")).add(oe),!Pe.isPrimaryKey){if(K!=="count")return fe=K==="query"&&Y&&X.values&&k.query(r(r({},X),{values:!1})),k[K].apply(this,arguments).then(function(ke){if(K==="query"){if(Y&&X.values)return fe.then(function(rt){return rt=rt.result,be.addKeys(rt),ke});var Be=X.values?ke.result.map(ee):ke.result;(X.values?be:xe).addKeys(Be)}else{var Se,nt;if(K==="openCursor")return nt=X.values,(Se=ke)&&Object.create(Se,{key:{get:function(){return xe.addKey(Se.primaryKey),Se.key}},primaryKey:{get:function(){var rt=Se.primaryKey;return xe.addKey(rt),rt}},value:{get:function(){return nt&&be.addKey(Se.primaryKey),Se.value}}})}return ke});xe.add(p)}}return k[K].apply(this,arguments)}}),q}})}};function Qf(u,f,p){var v;return p.numFailures===0?f:f.type==="deleteRange"||(v=f.keys?f.keys.length:"values"in f&&f.values?f.values.length:1,p.numFailures===v)?null:(v=r({},f),i(v.keys)&&(v.keys=v.keys.filter(function(w,k){return!(k in p.failures)})),"values"in v&&i(v.values)&&(v.values=v.values.filter(function(w,k){return!(k in p.failures)})),v)}function Ac(u,f){return p=u,((v=f).lower===void 0||(v.lowerOpen?0<Xe(p,v.lower):0<=Xe(p,v.lower)))&&(p=u,(v=f).upper===void 0||(v.upperOpen?Xe(p,v.upper)<0:Xe(p,v.upper)<=0));var p,v}function Zf(u,f,p,v,w,k){var M,R,U,ee,Y,z,q;return!p||p.length===0||(M=f.query.index,R=M.multiEntry,U=f.query.range,ee=v.schema.primaryKey.extractKey,Y=M.extractKey,z=(M.lowLevelIndex||M).extractKey,(v=p.reduce(function(J,K){var X=J,V=[];if(K.type==="add"||K.type==="put")for(var oe=new kn,ne=K.values.length-1;0<=ne;--ne){var fe,be=K.values[ne],xe=ee(be);!oe.hasKey(xe)&&(fe=Y(be),R&&i(fe)?fe.some(function(Be){return Ac(Be,U)}):Ac(fe,U))&&(oe.addKey(xe),V.push(be))}switch(K.type){case"add":var Pe=new kn().addKeys(f.values?J.map(function(Se){return ee(Se)}):J),X=J.concat(f.values?V.filter(function(Se){return Se=ee(Se),!Pe.hasKey(Se)&&(Pe.addKey(Se),!0)}):V.map(function(Se){return ee(Se)}).filter(function(Se){return!Pe.hasKey(Se)&&(Pe.addKey(Se),!0)}));break;case"put":var Ce=new kn().addKeys(K.values.map(function(Se){return ee(Se)}));X=J.filter(function(Se){return!Ce.hasKey(f.values?ee(Se):Se)}).concat(f.values?V:V.map(function(Se){return ee(Se)}));break;case"delete":var ze=new kn().addKeys(K.keys);X=J.filter(function(Se){return!ze.hasKey(f.values?ee(Se):Se)});break;case"deleteRange":var ke=K.range;X=J.filter(function(Se){return!Ac(ee(Se),ke)})}return X},u))===u)?u:(q=function(J,K){return Xe(z(J),z(K))||Xe(ee(J),ee(K))},v.sort(f.direction==="prev"||f.direction==="prevunique"?function(J,K){return q(K,J)}:q),f.limit&&f.limit<1/0&&(v.length>f.limit?v.length=f.limit:u.length===f.limit&&v.length<f.limit&&(w.dirty=!0)),k?Object.freeze(v):v)}function eh(u,f){return Xe(u.lower,f.lower)===0&&Xe(u.upper,f.upper)===0&&!!u.lowerOpen==!!f.lowerOpen&&!!u.upperOpen==!!f.upperOpen}function ix(u,f){return((p,v,w,k)=>{if(p===void 0)return v!==void 0?-1:0;if(v===void 0)return 1;if((p=Xe(p,v))===0){if(w&&k)return 0;if(w)return 1;if(k)return-1}return p})(u.lower,f.lower,u.lowerOpen,f.lowerOpen)<=0&&0<=((p,v,w,k)=>{if(p===void 0)return v!==void 0?1:0;if(v===void 0)return-1;if((p=Xe(p,v))===0){if(w&&k)return 0;if(w)return-1;if(k)return 1}return p})(u.upper,f.upper,u.upperOpen,f.upperOpen)}function lx(u,f,p,v){u.subscribers.add(p),v.addEventListener("abort",function(){var w,k;u.subscribers.delete(p),u.subscribers.size===0&&(w=u,k=f,setTimeout(function(){w.subscribers.size===0&&ge(k,w)},3e3))})}var cx={stack:"dbcore",level:0,name:"Cache",create:function(u){var f=u.schema.name;return r(r({},u),{transaction:function(p,v,w){var k,M,R=u.transaction(p,v,w);return v==="readwrite"&&(w=(k=new AbortController).signal,R.addEventListener("abort",(M=function(U){return function(){if(k.abort(),v==="readwrite"){for(var ee=new Set,Y=0,z=p;Y<z.length;Y++){var q=z[Y],J=rs["idb://".concat(f,"/").concat(q)];if(J){var K=u.table(q),X=J.optimisticOps.filter(function(Se){return Se.trans===R});if(R._explicit&&U&&R.mutatedParts)for(var V=0,oe=Object.values(J.queries.query);V<oe.length;V++)for(var ne=0,fe=(Pe=oe[V]).slice();ne<fe.length;ne++)_c((Ce=fe[ne]).obsSet,R.mutatedParts)&&(ge(Pe,Ce),Ce.subscribers.forEach(function(Se){return ee.add(Se)}));else if(0<X.length){J.optimisticOps=J.optimisticOps.filter(function(Se){return Se.trans!==R});for(var be=0,xe=Object.values(J.queries.query);be<xe.length;be++)for(var Pe,Ce,ze,ke=0,Be=(Pe=xe[be]).slice();ke<Be.length;ke++)(Ce=Be[ke]).res!=null&&R.mutatedParts&&(U&&!Ce.dirty?(ze=Object.isFrozen(Ce.res),ze=Zf(Ce.res,Ce.req,X,K,Ce,ze),Ce.dirty?(ge(Pe,Ce),Ce.subscribers.forEach(function(Se){return ee.add(Se)})):ze!==Ce.res&&(Ce.res=ze,Ce.promise=W.resolve({result:ze}))):(Ce.dirty&&ge(Pe,Ce),Ce.subscribers.forEach(function(Se){return ee.add(Se)})))}}}ee.forEach(function(Se){return Se()})}}})(!1),{signal:w}),R.addEventListener("error",M(!1),{signal:w}),R.addEventListener("complete",M(!0),{signal:w})),R},table:function(p){var v=u.table(p),w=v.schema.primaryKey;return r(r({},v),{mutate:function(k){var M,R=De.trans;return!w.outbound&&R.db._options.cache!=="disabled"&&!R.explicit&&R.idbtrans.mode==="readwrite"&&(M=rs["idb://".concat(f,"/").concat(p)])?(R=v.mutate(k),k.type!=="add"&&k.type!=="put"||!(50<=k.values.length||Mc(w,k).some(function(U){return U==null}))?(M.optimisticOps.push(k),k.mutatedParts&&Pi(k.mutatedParts),R.then(function(U){0<U.numFailures&&(ge(M.optimisticOps,k),(U=Qf(0,k,U))&&M.optimisticOps.push(U),k.mutatedParts)&&Pi(k.mutatedParts)}),R.catch(function(){ge(M.optimisticOps,k),k.mutatedParts&&Pi(k.mutatedParts)})):R.then(function(U){var ee=Qf(0,r(r({},k),{values:k.values.map(function(Y,z){var q;return U.failures[z]?Y:(O(q=(q=w.keyPath)!=null&&q.includes(".")?Z(Y):r({},Y),w.keyPath,U.results[z]),q)})}),U);M.optimisticOps.push(ee),queueMicrotask(function(){return k.mutatedParts&&Pi(k.mutatedParts)})}),R):v.mutate(k)},query:function(k){var M,R,U,ee,Y,z,q;return Gf(De,v)&&Jf("query",k)?(M=((U=De.trans)==null?void 0:U.db._options.cache)==="immutable",R=(U=De).requery,U=U.signal,z=((J,K,X,V)=>{var oe=rs["idb://".concat(J,"/").concat(K)];if(!oe)return[];if(!(J=oe.queries[X]))return[null,!1,oe,null];var ne=J[(V.query?V.query.index.name:null)||""];if(!ne)return[null,!1,oe,null];switch(X){case"query":var fe=(be=V.direction)!=null?be:"next",be=ne.find(function(xe){var Pe;return xe.req.limit===V.limit&&xe.req.values===V.values&&((Pe=xe.req.direction)!=null?Pe:"next")===fe&&eh(xe.req.query.range,V.query.range)});return be?[be,!0,oe,ne]:[ne.find(function(xe){var Pe;return("limit"in xe.req?xe.req.limit:1/0)>=V.limit&&((Pe=xe.req.direction)!=null?Pe:"next")===fe&&(!V.values||xe.req.values)&&ix(xe.req.query.range,V.query.range)}),!1,oe,ne];case"count":return be=ne.find(function(xe){return eh(xe.req.query.range,V.query.range)}),[be,!!be,oe,ne]}})(f,p,"query",k),q=z[0],ee=z[2],Y=z[3],q&&z[1]?q.obsSet=k.obsSet:(z=v.query(k).then(function(J){var K=J.result;if(q&&(q.res=K),M){for(var X=0,V=K.length;X<V;++X)Object.freeze(K[X]);Object.freeze(K)}else J.result=Z(K);return J}).catch(function(J){return Y&&q&&ge(Y,q),Promise.reject(J)}),q={obsSet:k.obsSet,promise:z,subscribers:new Set,type:"query",req:k,dirty:!1},Y?Y.push(q):(Y=[q],(ee=ee||(rs["idb://".concat(f,"/").concat(p)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[k.query.index.name||""]=Y)),lx(q,Y,R,U),q.promise.then(function(J){return{result:Zf(J.result,k,ee==null?void 0:ee.optimisticOps,v,q,M)}})):v.query(k)}})}})}};function Mi(u,f){return new Proxy(u,{get:function(p,v,w){return v==="db"?f:Reflect.get(p,v,w)}})}Qt.prototype.version=function(u){if(isNaN(u)||u<.1)throw new ie.Type("Given version is not a positive number");if(u=Math.round(10*u)/10,this.idbdb||this._state.isBeingOpened)throw new ie.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,u);var f=this._versions,p=f.filter(function(v){return v._cfg.version===u})[0];return p||(p=new this.Version(u),f.push(p),f.sort(QS),p.stores({}),this._state.autoSchema=!1),p},Qt.prototype._whenReady=function(u){var f=this;return this.idbdb&&(this._state.openComplete||De.letThrough||this._vip)?u():new W(function(p,v){if(f._state.openComplete)return v(new ie.DatabaseClosed(f._state.dbOpenError));if(!f._state.isBeingOpened){if(!f._state.autoOpen)return void v(new ie.DatabaseClosed);f.open().catch(Me)}f._state.dbReadyPromise.then(p,v)}).then(u)},Qt.prototype.use=function(w){var f=w.stack,p=w.create,v=w.level,w=w.name,k=(w&&this.unuse({stack:f,name:w}),this._middlewares[f]||(this._middlewares[f]=[]));return k.push({stack:f,create:p,level:v??10,name:w}),k.sort(function(M,R){return M.level-R.level}),this},Qt.prototype.unuse=function(u){var f=u.stack,p=u.name,v=u.create;return f&&this._middlewares[f]&&(this._middlewares[f]=this._middlewares[f].filter(function(w){return v?w.create!==v:!!p&&w.name!==p})),this},Qt.prototype.open=function(){var u=this;return kr(yt,function(){return nx(u)})},Qt.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var u=this._state;if(Ao.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}u.isBeingOpened||(u.dbReadyPromise=new W(function(f){u.dbReadyResolve=f}),u.openCanceller=new W(function(f,p){u.cancelOpen=p}))},Qt.prototype.close=function(f){var f=(f===void 0?{disableAutoOpen:!0}:f).disableAutoOpen,p=this._state;f?(p.isBeingOpened&&p.cancelOpen(new ie.DatabaseClosed),this._close(),p.autoOpen=!1,p.dbOpenError=new ie.DatabaseClosed):(this._close(),p.autoOpen=this._options.autoOpen||p.isBeingOpened,p.openComplete=!1,p.dbOpenError=null)},Qt.prototype.delete=function(u){var f=this,p=(u===void 0&&(u={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),v=this._state;return new W(function(w,k){function M(){f.close(u);var R=f._deps.indexedDB.deleteDatabase(f.name);R.onsuccess=$e(function(){var U,ee,Y;U=f._deps,ee=f.name,Sc(Y=U.indexedDB)||ee===ns||bc(Y,U.IDBKeyRange).delete(ee).catch(Me),w()}),R.onerror=sr(k),R.onblocked=f._fireOnBlocked}if(p)throw new ie.InvalidArgument("Invalid closeOptions argument to db.delete()");v.isBeingOpened?v.dbReadyPromise.then(M):M()})},Qt.prototype.backendDB=function(){return this.idbdb},Qt.prototype.isOpen=function(){return this.idbdb!==null},Qt.prototype.hasBeenClosed=function(){var u=this._state.dbOpenError;return u&&u.name==="DatabaseClosed"},Qt.prototype.hasFailed=function(){return this._state.dbOpenError!==null},Qt.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(Qt.prototype,"tables",{get:function(){var u=this;return a(this._allTables).map(function(f){return u._allTables[f]})},enumerable:!1,configurable:!0}),Qt.prototype.transaction=function(){var u=(function(f,p,v){var w=arguments.length;if(w<2)throw new ie.InvalidArgument("Too few arguments");for(var k=new Array(w-1);--w;)k[w-1]=arguments[w];return v=k.pop(),[f,te(k),v]}).apply(this,arguments);return this._transaction.apply(this,u)},Qt.prototype._transaction=function(u,f,p){var v,w,k=this,M=De.trans,R=(M&&M.db===this&&u.indexOf("!")===-1||(M=null),u.indexOf("?")!==-1);u=u.replace("!","").replace("?","");try{if(w=f.map(function(ee){if(ee=ee instanceof k.Table?ee.name:ee,typeof ee!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return ee}),u=="r"||u===pe)v=pe;else{if(u!="rw"&&u!=pt)throw new ie.InvalidArgument("Invalid transaction mode: "+u);v=pt}if(M){if(M.mode===pe&&v===pt){if(!R)throw new ie.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");M=null}M&&w.forEach(function(ee){if(M&&M.storeNames.indexOf(ee)===-1){if(!R)throw new ie.SubTransaction("Table "+ee+" not included in parent transaction.");M=null}}),R&&M&&!M.active&&(M=null)}}catch(ee){return M?M._promise(null,function(Y,z){z(ee)}):Kt(ee)}var U=(function ee(Y,z,q,J,K){return W.resolve().then(function(){var ne=De.transless||De,X=Y._createTransaction(z,q,Y._dbSchema,J),ne=(X.explicit=!0,{trans:X,transless:ne});if(J)X.idbtrans=J.idbtrans;else try{X.create(),X.idbtrans._explicit=!0,Y._state.PR1398_maxLoop=3}catch(fe){return fe.name===Je.InvalidState&&Y.isOpen()&&0<--Y._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),Y.close({disableAutoOpen:!1}),Y.open().then(function(){return ee(Y,z,q,null,K)})):Kt(fe)}var V,oe=ve(K),ne=(oe&&dr(),W.follow(function(){var fe;(V=K.call(X,X))&&(oe?(fe=nr.bind(null,null),V.then(fe,fe)):typeof V.next=="function"&&typeof V.throw=="function"&&(V=Pc(V)))},ne));return(V&&typeof V.then=="function"?W.resolve(V).then(function(fe){return X.active?fe:Kt(new ie.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):ne.then(function(){return V})).then(function(fe){return J&&X._resolve(),X._completion.then(function(){return fe})}).catch(function(fe){return X._reject(fe),Kt(fe)})})}).bind(null,this,v,w,M,p);return M?M._promise(v,U,"lock"):De.trans?kr(De.transless,function(){return k._whenReady(U)}):this._whenReady(U)},Qt.prototype.table=function(u){if(m(this._allTables,u))return this._allTables[u];throw new ie.InvalidTable("Table ".concat(u," does not exist"))};var Pr=Qt;function Qt(u,f){var p,v,w,k,M,R=this,U=(this._middlewares={},this.verno=0,Qt.dependencies),U=(this._options=f=r({addons:Qt.addons,autoOpen:!0,indexedDB:U.indexedDB,IDBKeyRange:U.IDBKeyRange,cache:"cloned",maxConnections:1e3},f),this._deps={indexedDB:f.indexedDB,IDBKeyRange:f.IDBKeyRange},f.addons),ee=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:Me,dbReadyPromise:null,cancelOpen:Me,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:f.autoOpen}),Y=(ee.dbReadyPromise=new W(function(z){ee.dbReadyResolve=z}),ee.openCanceller=new W(function(z,q){ee.cancelOpen=q}),this._state=ee,this.name=u,this.on=Co(this,"populate","blocked","versionchange","close",{ready:[wn,Me]}),this.once=function(z,q){var J=function(){for(var K=[],X=0;X<arguments.length;X++)K[X]=arguments[X];R.on(z).unsubscribe(J),q.apply(R,K)};return R.on(z,J)},this.on.ready.subscribe=P(this.on.ready.subscribe,function(z){return function(q,J){Qt.vip(function(){var K,X=R._state;X.openComplete?(X.dbOpenError||W.resolve().then(q),J&&z(q)):X.onReadyBeingFired?(X.onReadyBeingFired.push(q),J&&z(q)):(z(q),K=R,J||z(function V(){K.on.ready.unsubscribe(q),K.on.ready.unsubscribe(V)}))})}}),this.Collection=(p=this,ko(HS.prototype,function(V,X){this.db=p;var J=Xt,K=null;if(X)try{J=X()}catch(ne){K=ne}var X=V._ctx,V=X.table,oe=V.hook.reading.fire;this._ctx={table:V,index:X.index,isPrimKey:!X.index||V.schema.primKey.keyPath&&X.index===V.schema.primKey.name,range:J,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:K,or:X.or,valueMapper:oe!==Ue?oe:null}})),this.Table=(v=this,ko($f.prototype,function(z,q,J){this.db=v,this._tx=J,this.name=z,this.schema=q,this.hook=v._allTables[z]?v._allTables[z].hook:Co(null,{creating:[Ft,Me],reading:[St,Ue],updating:[At,Me],deleting:[Vt,Me]})})),this.Transaction=(w=this,ko(XS.prototype,function(z,q,J,K,X){var V=this;z!=="readonly"&&q.forEach(function(oe){oe=(oe=J[oe])==null?void 0:oe.yProps,oe&&(q=q.concat(oe.map(function(ne){return ne.updatesTable})))}),this.db=w,this.mode=z,this.storeNames=q,this.schema=J,this.chromeTransactionDurability=K,this.idbtrans=null,this.on=Co(this,"complete","error","abort"),this.parent=X||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new W(function(oe,ne){V._resolve=oe,V._reject=ne}),this._completion.then(function(){V.active=!1,V.on.complete.fire()},function(oe){var ne=V.active;return V.active=!1,V.on.error.fire(oe),V.parent?V.parent._reject(oe):ne&&V.idbtrans&&V.idbtrans.abort(),Kt(oe)})})),this.Version=(k=this,ko(tx.prototype,function(z){this.db=k,this._cfg={version:z,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(M=this,ko(zf.prototype,function(z,q,J){if(this.db=M,this._ctx={table:z,index:q===":id"?null:q,or:J},this._cmp=this._ascending=Xe,this._descending=function(K,X){return Xe(X,K)},this._max=function(K,X){return 0<Xe(K,X)?K:X},this._min=function(K,X){return Xe(K,X)<0?K:X},this._IDBKeyRange=M._deps.IDBKeyRange,!this._IDBKeyRange)throw new ie.MissingAPI})),this.on("versionchange",function(z){0<z.newVersion?console.warn("Another connection wants to upgrade database '".concat(R.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(R.name,"'. Closing db now to resume the delete request.")),R.close({disableAutoOpen:!1})}),this.on("blocked",function(z){!z.newVersion||z.newVersion<z.oldVersion?console.warn("Dexie.delete('".concat(R.name,"') was blocked")):console.warn("Upgrade '".concat(R.name,"' blocked by other connection holding version ").concat(z.oldVersion/10))}),this._maxKey=Eo(f.IDBKeyRange),this._createTransaction=function(z,q,J,K){return new R.Transaction(z,q,J,R._options.chromeTransactionDurability,K)},this._fireOnBlocked=function(z){R.on("blocked").fire(z),Ao.toArray().filter(function(q){return q.name===R.name&&q!==R&&!q._state.vcFired}).map(function(q){return q.on("versionchange").fire(z)})},this.use(ox),this.use(cx),this.use(ax),this.use(rx),this.use(sx),new Proxy(this,{get:function(z,q,J){var K;return q==="_vip"||(q==="table"?function(X){return Mi(R.table(X),Y)}:(K=Reflect.get(z,q,J))instanceof $f?Mi(K,Y):q==="tables"?K.map(function(X){return Mi(X,Y)}):q==="_createTransaction"?function(){return Mi(K.apply(this,arguments),Y)}:K)}}));this.vip=Y,U.forEach(function(z){return z(R)})}var Ai,Ns=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",ux=(Rc.prototype.subscribe=function(u,f,p){return this._subscribe(u&&typeof u!="function"?u:{next:u,error:f,complete:p})},Rc.prototype[Ns]=function(){return this},Rc);function Rc(u){this._subscribe=u}try{Ai={indexedDB:o.indexedDB||o.mozIndexedDB||o.webkitIndexedDB||o.msIndexedDB,IDBKeyRange:o.IDBKeyRange||o.webkitIDBKeyRange}}catch{Ai={indexedDB:null,IDBKeyRange:null}}function th(u){var f,p=!1,v=new ux(function(w){var k=ve(u),M,R=!1,U={},ee={},Y={get closed(){return R},unsubscribe:function(){R||(R=!0,M&&M.abort(),z&&Lr.storagemutated.unsubscribe(K))}},z=(w.start&&w.start(Y),!1),q=function(){return $s(X)};function J(){return _c(ee,U)}var K=function(V){Ti(U,V),J()&&q()},X=function(){var V,oe,ne;!R&&Ai.indexedDB&&(U={},V={},M&&M.abort(),M=new AbortController,ne=(fe=>{var be=Rt();try{k&&dr();var xe=Fn(u,fe);return xe=k?xe.finally(nr):xe}finally{be&&ht()}})(oe={subscr:V,signal:M.signal,requery:q,querier:u,trans:null}),z||(Lr(Po,K),z=!0),Promise.resolve(ne).then(function(fe){p=!0,f=fe,R||oe.signal.aborted||(J()||(ee=V,J())?q():(U={},$s(function(){return!R&&w.next&&w.next(fe)})))},function(fe){p=!1,["DatabaseClosedError","AbortError"].includes(fe==null?void 0:fe.name)||R||$s(function(){R||w.error&&w.error(fe)})}))};return setTimeout(q,0),Y});return v.hasValue=function(){return p},v.getValue=function(){return f},v}var ss=Pr;function jc(u){var f=Dr;try{Dr=!0,Lr.storagemutated.fire(u),Tc(u,!0)}finally{Dr=f}}g(ss,r(r({},ue),{delete:function(u){return new ss(u,{addons:[]}).delete()},exists:function(u){return new ss(u,{addons:[]}).open().then(function(f){return f.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(u){try{return f=ss.dependencies,p=f.indexedDB,f=f.IDBKeyRange,(Sc(p)?Promise.resolve(p.databases()).then(function(v){return v.map(function(w){return w.name}).filter(function(w){return w!==ns})}):bc(p,f).toCollection().primaryKeys()).then(u)}catch{return Kt(new ie.MissingAPI)}var f,p},defineClass:function(){return function(u){c(this,u)}},ignoreTransaction:function(u){return De.trans?kr(De.transless||yt,u):u()},vip:xc,async:function(u){return function(){try{var f=Pc(u.apply(this,arguments));return f&&typeof f.then=="function"?f:W.resolve(f)}catch(p){return Kt(p)}}},spawn:function(u,f,p){try{var v=Pc(u.apply(p,f||[]));return v&&typeof v.then=="function"?v:W.resolve(v)}catch(w){return Kt(w)}},currentTransaction:{get:function(){return De.trans||null}},waitFor:function(u,f){return u=W.resolve(typeof u=="function"?ss.ignoreTransaction(u):u).timeout(f||6e4),De.trans?De.trans.waitFor(u):u},Promise:W,debug:{get:function(){return kt},set:function(u){_n(u)}},derive:S,extend:c,props:g,override:P,Events:Co,on:Lr,liveQuery:th,extendObservabilitySet:Ti,getByKeyPath:I,setByKeyPath:O,delByKeyPath:function(u,f){typeof f=="string"?O(u,f,void 0):"length"in f&&[].map.call(f,function(p){O(u,p,void 0)})},shallowClone:$,deepClone:Z,getObjectDiff:Ec,cmp:Xe,asap:A,minKey:-1/0,addons:[],connections:{get:Ao.toArray},errnames:Je,dependencies:Ai,cache:rs,semVer:"4.4.2",version:"4.4.2".split(".").map(function(u){return parseInt(u)}).reduce(function(u,f,p){return u+f/Math.pow(10,2*p)})})),ss.maxKey=Eo(ss.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Lr(Po,function(u){Dr||(u=new CustomEvent(fc,{detail:u}),Dr=!0,dispatchEvent(u),Dr=!1)}),addEventListener(fc,function(u){u=u.detail,Dr||jc(u)}));var zs,Dr=!1,nh=function(){};return typeof BroadcastChannel<"u"&&((nh=function(){(zs=new BroadcastChannel(fc)).onmessage=function(u){return u.data&&jc(u.data)}})(),typeof zs.unref=="function"&&zs.unref(),Lr(Po,function(u){Dr||zs.postMessage(u)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(u){if(!Pr.disableBfCache&&u.persisted){kt&&console.debug("Dexie: handling persisted pagehide"),zs!=null&&zs.close();for(var f=0,p=Ao.toArray();f<p.length;f++)p[f].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(u){!Pr.disableBfCache&&u.persisted&&(kt&&console.debug("Dexie: handling persisted pageshow"),nh(),jc({all:new kn(-1/0,[[]])}))})),W.rejectionMapper=function(u,f){return!u||u instanceof le||u instanceof TypeError||u instanceof SyntaxError||!u.name||!me[u.name]?u:(f=new me[u.name](f||u.message,u),"stack"in u&&x(f,"stack",{get:function(){return this.inner.stack}}),f)},_n(kt),r(Pr,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Pr,Entity:Nt,PropModification:Nn,RangeSet:kn,add:function(u){return new Nn({add:u})},cmp:Xe,default:Pr,liveQuery:th,mergeRanges:jo,rangesOverlap:Hf,remove:function(u){return new Nn({remove:u})},replacePrefix:function(u,f){return new Nn({replacePrefix:[u,f]})}}),{default:Pr}),Pr})}(ol)),ol.exports}var t0=e0();const Fu=Ms(t0),Ph=Symbol.for("Dexie"),kl=globalThis[Ph]||(globalThis[Ph]=Fu);if(Fu.semVer!==kl.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${Fu.semVer} and ${kl.semVer}`);const{liveQuery:e$,mergeRanges:t$,rangesOverlap:n$,RangeSet:r$,cmp:s$,Entity:o$,PropModification:a$,replacePrefix:i$,add:l$,remove:c$,DexieYProvider:u$}=kl;class n0 extends kl{constructor(){super("LotusStorage");Et(this,"scrollAnchors");Et(this,"toolSessionCollapses");Et(this,"diffCollapses");Et(this,"inputStates");Et(this,"modelOptionsCaches");this.version(1).stores({scrollAnchors:"sessionId, ts",toolSessionCollapses:"id, sessionId, updatedAt",diffCollapses:"sessionId, updatedAt",inputStates:"sessionId, updatedAt",modelOptionsCaches:"provider, timestamp"})}}const r0=new n0,bs=class bs{constructor(){Et(this,"db",r0)}static getInstance(){return bs.instance||(bs.instance=new bs),bs.instance}async saveScrollAnchor(t,n){try{await this.db.scrollAnchors.put({sessionId:t,anchorId:n.anchorId,offsetPx:n.offsetPx,ts:n.ts,indexHint:n.indexHint,createdAt:n.createdAt})}catch(r){console.warn("[StorageManager] IndexedDB save failed, falling back to localStorage",r);try{localStorage.setItem(`chat_scroll_anchor_v2:${t}`,JSON.stringify(n))}catch{}}}async loadScrollAnchor(t){try{const n=await this.db.scrollAnchors.get(t);return n?{v:1,anchorId:n.anchorId,offsetPx:n.offsetPx,ts:n.ts,indexHint:n.indexHint,createdAt:n.createdAt}:null}catch{try{const n=localStorage.getItem(`chat_scroll_anchor_v2:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&r.v===1&&typeof r.anchorId=="string")return r}catch{}return null}}async clearScrollAnchor(t){try{await this.db.scrollAnchors.delete(t)}catch{}try{localStorage.removeItem(`chat_scroll_anchor_v2:${t}`)}catch{}}async saveToolSessionCollapse(t,n,r){try{await this.db.toolSessionCollapses.put({id:`${t}:${n}`,sessionId:t,toolSessionId:n,isExpanded:r.isExpanded,expandedTools:r.expandedTools,updatedAt:Date.now()})}catch(s){console.warn("[StorageManager] saveToolSessionCollapse failed",s);try{localStorage.setItem(`chat-session-tool-collapse:${t}:${n}`,JSON.stringify(r))}catch{}}}async loadToolSessionCollapse(t,n){try{const r=await this.db.toolSessionCollapses.get(`${t}:${n}`);return r?{isExpanded:r.isExpanded,expandedTools:r.expandedTools}:null}catch{try{const r=localStorage.getItem(`chat-session-tool-collapse:${t}:${n}`);if(!r)return null;const s=JSON.parse(r);if(s&&typeof s.isExpanded=="boolean")return s}catch{}return null}}async saveDiffCollapse(t,n){try{await this.db.diffCollapses.put({sessionId:t,isExpanded:n.isExpanded,expandedFiles:n.expandedFiles,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveDiffCollapse failed",r);try{localStorage.setItem(`chat-session-diff-collapse:${t}`,JSON.stringify(n))}catch{}}}async loadDiffCollapse(t){try{const n=await this.db.diffCollapses.get(t);return n?{isExpanded:n.isExpanded,expandedFiles:n.expandedFiles}:null}catch{try{const n=localStorage.getItem(`chat-session-diff-collapse:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&typeof r.isExpanded=="boolean")return r}catch{}return null}}async saveInputReasoning(t,n){try{const r=await this.db.inputStates.get(t);await this.db.inputStates.put({sessionId:t,reasoningEffort:n,content:r==null?void 0:r.content,referenceText:r==null?void 0:r.referenceText,updatedAt:Date.now()})}catch(r){console.warn("[StorageManager] saveInputReasoning failed",r);try{const s=localStorage.getItem("chat_input_reasoning_by_session_v1"),o=s?JSON.parse(s):{};o[t]=n,localStorage.setItem("chat_input_reasoning_by_session_v1",JSON.stringify(o))}catch{}}}async loadInputReasoning(t){try{const n=await this.db.inputStates.get(t);return(n==null?void 0:n.reasoningEffort)??null}catch{try{const n=localStorage.getItem("chat_input_reasoning_by_session_v1");return n?JSON.parse(n)[t]??null:null}catch{return null}}}async saveLastUsedReasoningEffort(t){try{await this.db.inputStates.put({sessionId:"__last_used__",reasoningEffort:t,updatedAt:Date.now()})}catch{try{localStorage.setItem("chat_input_reasoning_last_used_v1",t)}catch{}}}async loadLastUsedReasoningEffort(){try{const t=await this.db.inputStates.get("__last_used__");return(t==null?void 0:t.reasoningEffort)??null}catch{try{return localStorage.getItem("chat_input_reasoning_last_used_v1")}catch{return null}}}async saveModelOptionsCache(t,n,r){try{await this.db.modelOptionsCaches.put({provider:t,options:n,timestamp:r})}catch(s){console.warn("[StorageManager] saveModelOptionsCache failed",s);try{localStorage.setItem(`chat-model-options-cache-v1:${t}`,JSON.stringify({timestamp:r,options:n}))}catch{}}}async loadModelOptionsCache(t){try{const n=await this.db.modelOptionsCaches.get(t);return n?{options:n.options,timestamp:n.timestamp}:null}catch{try{const n=localStorage.getItem(`chat-model-options-cache-v1:${t}`);if(!n)return null;const r=JSON.parse(n);if(r&&Array.isArray(r.options))return{options:r.options,timestamp:r.timestamp}}catch{}return null}}async clearSessionData(t){try{await Promise.all([this.db.scrollAnchors.delete(t),this.db.diffCollapses.delete(t),this.db.toolSessionCollapses.where("sessionId").equals(t).delete(),this.db.inputStates.delete(t)])}catch{}}async cleanupStaleData(t=30){const n=Date.now()-t*24*60*60*1e3;try{await Promise.all([this.db.scrollAnchors.where("ts").below(n).delete(),this.db.toolSessionCollapses.where("updatedAt").below(n).delete(),this.db.diffCollapses.where("updatedAt").below(n).delete(),this.db.inputStates.where("updatedAt").below(n).delete(),this.db.modelOptionsCaches.where("timestamp").below(n).delete()])}catch{}}async getStats(){try{const[t,n,r,s,o]=await Promise.all([this.db.scrollAnchors.count(),this.db.toolSessionCollapses.count(),this.db.diffCollapses.count(),this.db.inputStates.count(),this.db.modelOptionsCaches.count()]);return{scrollAnchors:t,toolSessionCollapses:n,diffCollapses:r,inputStates:s,modelOptionsCaches:o}}catch{return{scrollAnchors:0,toolSessionCollapses:0,diffCollapses:0,inputStates:0,modelOptionsCaches:0}}}};Et(bs,"instance");let Yn=bs;const Ey="chat_input_reasoning_by_session_v1",My="chat_input_reasoning_last_used_v1",Eh={content:"",referenceText:null,attachments:[],reasoningEffort:"medium"},Bd=e=>e==="low"||e==="medium"||e==="high"||e==="xhigh"||e==="max",Ay=()=>{if(typeof window>"u")return{};try{const e=localStorage.getItem(Ey);if(!e)return{};const t=JSON.parse(e),n={};for(const[r,s]of Object.entries(t||{}))Bd(s)&&(n[r]=s);return n}catch{return{}}},s0=e=>{if(!(typeof window>"u"))try{localStorage.setItem(Ey,JSON.stringify(e))}catch{}},o0=()=>{if(!(typeof window>"u"))try{const e=localStorage.getItem(My);return Bd(e)?e:void 0}catch{return}},a0=e=>{if(!(typeof window>"u"))try{localStorage.setItem(My,e)}catch{}},Ry=e=>{const t=Ay();return Bd(t[e])?t[e]:o0()},Lo=e=>({...Eh,reasoningEffort:Ry(e)??Eh.reasoningEffort}),i0=(e,t)=>({inputStates:{},setInputContent:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Lo(n),content:r}}})),setReferenceText:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Lo(n),referenceText:r}}})),setAttachments:(n,r)=>e(s=>({inputStates:{...s.inputStates,[n]:{...s.inputStates[n]||Lo(n),attachments:r}}})),setInputReasoningEffort:(n,r)=>{e(a=>({inputStates:{...a.inputStates,[n]:{...a.inputStates[n]||Lo(n),reasoningEffort:r}}}));const s=Ay();s[n]=r,s0(s),a0(r);const o=Yn.getInstance();o.saveInputReasoning(n,r).catch(()=>{}),o.saveLastUsedReasoningEffort(r).catch(()=>{})},clearInputState:n=>e(r=>{const{[n]:s,...o}=r.inputStates;return{inputStates:o}}),getInputState:n=>t().inputStates[n]||Lo(n)}),l0="bamboo_proxy_auth",c0=()=>{try{const e=localStorage.getItem(l0);if(!e)return null;const t=JSON.parse(e);if(!t||typeof t!="object")return null;const n=typeof t.username=="string"?t.username.trim():"",r=typeof t.password=="string"?t.password:"";return n?{username:n,password:r}:null}catch{return null}},jy={byId:{},runningCount:0},u0=[],In=(e,t)=>t?e.executionBySession[t]??null:null,d0=e=>t=>In(t,e),f0=e=>t=>{const n=In(t,e);return(n==null?void 0:n.phase)??"idle"},li=e=>t=>{const n=In(t,e);return Fd(n==null?void 0:n.phase)},Iy=e=>t=>{const n=In(t,e);return n?n.phase==="streaming"?!0:n.phase==="running_tools"&&n.stream.hasTokens:!1},h0=e=>t=>{const n=In(t,e);return n?n.phase==="waiting_user_answer"||n.interaction.pendingQuestion!==null||n.backend.hasPendingQuestion===!0:!1},Oy=e=>t=>{const n=In(t,e);return o_(n==null?void 0:n.phase)},$y=e=>t=>{const n=In(t,e);return a_(n==null?void 0:n.phase)},ar=e=>t=>{const n=In(t,e);return Fd(n==null?void 0:n.phase)?(n==null?void 0:n.phase)!=="waiting_user_answer":!1},p0=e=>t=>{const n=In(t,e);return(n==null?void 0:n.stream.activeToolCalls)??u0},ro=e=>t=>{const n=In(t,e);return(n==null?void 0:n.interaction.pendingQuestion)??null},m0=e=>t=>{if(!e)return null;const n=ro(e)(t);return n?{sessionId:e,question:n.question,options:n.options,allowCustom:n.allowCustom,toolCallId:n.toolCallId}:null},Qa=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children.byId)??jy.byId},g0=e=>t=>{const n=In(t,e);return(n==null?void 0:n.children)??jy},Dt=e=>t=>{const n=In(t,e);return(n==null?void 0:n.generation)??0},y0=Object.freeze({state:"idle",activeToolCalls:[],runningChildCount:0,hasQuestion:!1,hasError:!1,errorMessage:null,generation:0}),v0=e=>t=>{var r;const n=In(t,e);return n?{state:n.phase,activeToolCalls:n.stream.activeToolCalls,runningChildCount:n.children.runningCount,hasQuestion:n.interaction.pendingQuestion!==null,hasError:n.error!==null,errorMessage:((r=n.error)==null?void 0:r.message)??null,generation:n.generation}:y0},b0=e=>t=>e.map(n=>({sessionId:n??"",entry:In(t,n)})),S0="auto",x0="required",w0=1e4,_0=15e3,C0=er.getInstance();let Mh=null,Do=null,Ah=null,Fo=null;const Rh=new WeakMap,ae=es()(Kw(Vw((e,t,n)=>({...D_(e,t),...B_(e,t),...H_(e,t),...K_(),...V_(e,t),...G_(e),...Q_(e,t),...i0(e,t),...b_(e,t),agentAvailability:null,setAgentAvailability:r=>{e({agentAvailability:r})},checkAgentAvailability:async()=>{if(Do)return Do;Do=(async()=>{const r=await C0.healthCheck();return t().agentAvailability!==r&&e({agentAvailability:r}),r})();try{return await Do}finally{Do=null}},startAgentHealthCheck:()=>{Mh||(t().checkAgentAvailability(),Mh=setInterval(()=>{t().checkAgentAvailability()},w0))},refreshSessionsIndex:async()=>{if(Fo)return Fo;Fo=(async()=>{try{await t().refreshChats()}catch(r){console.warn("[AppStore] refreshChats failed:",r)}})();try{return await Fo}finally{Fo=null}},startSessionsIndexSync:()=>{Ah||(t().refreshSessionsIndex(),Ah=setInterval(()=>{t().refreshSessionsIndex()},_0))}})),{name:"AppStore"})),Ly=e=>{const t=Rh.get(e);if(t)return t;const n=new Map(e.map(r=>[r.id,r]));return Rh.set(e,n),n},Is=e=>t=>e?Ly(t.chats).get(e)??null:null,Dy=e=>e.currentSessionId?Ly(e.chats).get(e.currentSessionId)??null:null,k0=e=>{var t;return((t=Dy(e))==null?void 0:t.messages)??[]},jh=async()=>{const e=c0();if(!e)return!1;try{return await hs.setProxyAuth(e),!0}catch(t){return console.error("Failed to apply stored proxy auth during startup:",t),!1}},T0=async()=>{try{const e=await Du.getState().loadConfig();if((typeof(e==null?void 0:e.proxy_auth_mode)=="string"?e.proxy_auth_mode:S0)!==x0)return await jh(),!1;const n=await Du.getState().loadProxyAuthStatus({force:!0});return n!=null&&n.configured||await jh()?!1:(ae.setState(s=>({...s,models:[],selectedModel:void 0,modelsError:"Proxy auth mode is set to required. Please configure proxy username/password and apply it.",isLoadingModels:!1})),!0)}catch(e){return console.error("Failed to evaluate startup proxy auth mode:",e),!1}};let Ih=!1,Fy=!1,$i=null;const Wd=async(e=!1)=>{if(Ih&&!e)return;if(Ih=!0,ae.getState().startAgentHealthCheck(),ae.getState().startSessionsIndexSync(),!(typeof globalThis<"u"&&"__vitest_worker__"in globalThis))try{await It.getState().loadProviderInstances(),It.getState().isInstancesLoaded||await It.getState().loadProviderConfig()}catch(n){console.error("[AppStore] Failed to bootstrap provider state:",n)}await ae.getState().loadChats(),Fy=!0},Ud=async()=>{if(Fy)return $i||($i=(async()=>{try{await T0()||await ae.getState().fetchModels(),await ae.getState().loadSystemPrompts()}catch(e){console.error("[AppStore] Deferred bootstrap failed:",e)}})(),$i)},P0=async(e=!1)=>{await Wd(e),Ud().catch(t=>{console.error("[AppStore] Deferred bootstrap error:",t)})},d$=Object.freeze(Object.defineProperty({__proto__:null,bootstrapCritical:Wd,bootstrapDeferred:Ud,initializeStore:P0,selectActiveToolCalls:p0,selectCanCancel:$y,selectChildren:Qa,selectChildrenSnapshot:g0,selectCurrentChat:Dy,selectCurrentMessages:k0,selectExecutionByPane:b0,selectExecutionPhase:f0,selectExecutionState:d0,selectGeneration:Dt,selectIsAwaitingUser:h0,selectIsBusy:li,selectIsInputLocked:Oy,selectIsStreaming:Iy,selectPendingQuestion:ro,selectRailModel:v0,selectRespondMode:m0,selectSessionById:Is,selectShouldObserve:ar,useAppStore:ae},Symbol.toStringTag,{value:"Module"})),Li={THEME:"copilot_ui_theme_v1",LAYOUT:"copilot_ui_layout_v1"};class E0{getTheme(){try{return localStorage.getItem(Li.THEME)}catch(t){return console.error("Failed to get theme:",t),null}}setTheme(t){try{localStorage.setItem(Li.THEME,t)}catch(n){console.error("Failed to set theme:",n)}}getLayout(){try{return localStorage.getItem(Li.LAYOUT)}catch(t){return console.error("Failed to get layout:",t),null}}setLayout(t){try{localStorage.setItem(Li.LAYOUT,t)}catch(n){console.error("Failed to set layout:",n)}}getStorageStats(){let t=0;for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);if(r&&r.startsWith("copilot_ui_")){const s=localStorage.getItem(r);t+=(r.length+((s==null?void 0:s.length)||0))*2}}return{estimatedSize:`${(t/1024).toFixed(1)} KB`}}}const Ny=new E0,qd={collapsed:!1,widthPx:260,collapsedWidthPx:72,minWidthPx:180,maxWidthPx:520},Kr={widthPx:520,minWidthPx:420,maxWidthPx:840},zy={v:2,sidebar:qd,inspector:Kr,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:null},splitSizesPx:{}},Oh=e=>{const t=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`;return`${e}-${t}`},Jn=e=>e.type==="leaf"?[e.id]:[...Jn(e.children[0]),...Jn(e.children[1])],Za=e=>e.type==="leaf"?[]:[e.id,...Za(e.children[0]),...Za(e.children[1])],M0=(e,t)=>{for(const[n,r]of Object.entries(e))if(r===t)return n;return null},A0=(e,t)=>{const n={},r=new Set;return e.forEach(s=>{const o=t[s]??null;if(!o||r.has(o)){n[s]=null;return}r.add(o),n[s]=o}),n},Nu=(e,t,n,r,s)=>e.type==="leaf"?e.id!==t?e:{type:"split",id:r,layout:n,children:[e,{type:"leaf",id:s}]}:{...e,children:[Nu(e.children[0],t,n,r,s),Nu(e.children[1],t,n,r,s)]},zu=(e,t)=>{if(e.type==="leaf")return e.id===t?{node:null,removed:!0}:{node:e,removed:!1};const n=zu(e.children[0],t);if(n.removed)return n.node?{node:{...e,children:[n.node,e.children[1]]},removed:!0}:{node:e.children[1],removed:!0};const r=zu(e.children[1],t);return r.removed?r.node?{node:{...e,children:[e.children[0],r.node]},removed:!0}:{node:e.children[0],removed:!0}:{node:e,removed:!1}},R0=e=>({v:2,sidebar:e.sidebar,inspector:e.inspector,tree:e.tree,activeLeafId:e.activeLeafId,leafSessionIds:e.leafSessionIds,splitSizesPx:e.splitSizesPx}),j0=e=>{try{Ny.setLayout(JSON.stringify(e))}catch(t){console.warn("[uiLayoutStore] Failed to persist layout:",t)}},pr=e=>{const t=R0(e);return j0(t),t},I0=e=>{var y,x,S,_,E,T,P,C,A,I,O;const t={...qd,...e.sidebar||{}},n={...Kr},r=((y=e.view)==null?void 0:y.mode)??"single",s=((x=e.view)==null?void 0:x.twoDirection)??"horizontal",o={...((S=e.panes)==null?void 0:S.sessionIds)||{}},a=((_=e.panes)==null?void 0:_.activePaneId)??"lt",i={};if(r==="single")return{v:2,sidebar:t,inspector:n,tree:{type:"leaf",id:"lt"},activeLeafId:"lt",leafSessionIds:{lt:o.lt??null},splitSizesPx:{}};if(r==="two"){const $="split-root",B=s,te=B==="horizontal"?{type:"split",id:$,layout:B,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"rt"}]}:{type:"split",id:$,layout:B,children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},H=B==="horizontal"?((E=e.split)==null?void 0:E.twoHorizontalPx)||((T=e.split)==null?void 0:T.columnsPx)||null:((P=e.split)==null?void 0:P.twoVerticalPx)||((C=e.split)==null?void 0:C.leftRowsPx)||null;H&&(i[$]=H);const L=Jn(te);return{v:2,sidebar:t,inspector:n,tree:te,activeLeafId:L.includes(a)?a:L[0],leafSessionIds:Object.fromEntries(L.map(Z=>[Z,o[Z]??null])),splitSizesPx:i}}const c="split-root",d="split-left",h="split-right",m={type:"split",id:c,layout:"horizontal",children:[{type:"split",id:d,layout:"vertical",children:[{type:"leaf",id:"lt"},{type:"leaf",id:"lb"}]},{type:"split",id:h,layout:"vertical",children:[{type:"leaf",id:"rt"},{type:"leaf",id:"rb"}]}]};(A=e.split)!=null&&A.columnsPx&&(i[c]=e.split.columnsPx),(I=e.split)!=null&&I.leftRowsPx&&(i[d]=e.split.leftRowsPx),(O=e.split)!=null&&O.rightRowsPx&&(i[h]=e.split.rightRowsPx);const g=Jn(m);return{v:2,sidebar:t,inspector:n,tree:m,activeLeafId:g.includes(a)?a:g[0],leafSessionIds:Object.fromEntries(g.map($=>[$,o[$]??null])),splitSizesPx:i}},O0=e=>{if(!e)return null;try{const t=JSON.parse(e);if(!t||typeof t!="object")return null;if(t.v===2){const n={...qd,...t.sidebar||{}},r=t.inspector||{},s={...Kr,...r},o=Math.max(Kr.minWidthPx,Number.isFinite(s.minWidthPx)?s.minWidthPx:Kr.minWidthPx),a=Math.max(o,Math.max(Kr.maxWidthPx,Number.isFinite(s.maxWidthPx)?s.maxWidthPx:Kr.maxWidthPx)),c={widthPx:Math.max(o,Math.min(a,Number.isFinite(s.widthPx)?s.widthPx:Kr.widthPx)),minWidthPx:o,maxWidthPx:a},d=t.tree||zy.tree,h=Jn(d),m=Za(d),g={};h.forEach(_=>{var E;g[_]=typeof((E=t.leafSessionIds)==null?void 0:E[_])=="string"?t.leafSessionIds[_]:null});const y={};m.forEach(_=>{var T;const E=(T=t.splitSizesPx)==null?void 0:T[_];Array.isArray(E)&&E.length>=2&&(y[_]=[Number(E[0]),Number(E[1])])});const x=typeof t.activeLeafId=="string"&&h.includes(t.activeLeafId)?t.activeLeafId:h[0],S=A0(h,g);return{v:2,sidebar:n,inspector:c,tree:d,activeLeafId:x,leafSessionIds:S,splitSizesPx:y}}return t.v===1?I0(t):null}catch{return null}},$0=()=>O0(Ny.getLayout())??zy,gt=es(e=>({...$0(),setSidebarCollapsed:t=>{e(n=>n.sidebar.collapsed===t?n:pr({sidebar:{...n.sidebar,collapsed:t},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx}))},setSidebarWidthPx:t=>{e(n=>{const r=Math.max(n.sidebar.minWidthPx,Math.min(n.sidebar.maxWidthPx,t));return n.sidebar.widthPx===r?n:pr({sidebar:{...n.sidebar,widthPx:r},inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setInspectorWidthPx:t=>{e(n=>{const r=Math.max(n.inspector.minWidthPx,Math.min(n.inspector.maxWidthPx,t));return n.inspector.widthPx===r?n:pr({sidebar:n.sidebar,inspector:{...n.inspector,widthPx:r},tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})})},setActiveLeafId:t=>{e(n=>n.activeLeafId===t||!Jn(n.tree).includes(t)?n:(Gn("setActiveLeafId",{from:n.activeLeafId,to:t}),pr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:t,leafSessionIds:n.leafSessionIds,splitSizesPx:n.splitSizesPx})))},setLeafSessionId:(t,n)=>{e(r=>{const s=Jn(r.tree);if(!s.includes(t)||(r.leafSessionIds[t]??null)===n)return r;const o=[];Gn("setLeafSessionId",{leafId:t,fromSessionId:r.leafSessionIds[t]??null,toSessionId:n,mode:"unique_session_per_leaf"});const a={...r.leafSessionIds,[t]:n};if(n)for(const i of s)i!==t&&a[i]===n&&(a[i]=null,o.push(i));return o.length>0&&Gn("setLeafSessionId dedupe",{sessionId:n,clearedLeafIds:o,assignedLeafId:t}),s.forEach(i=>{i in a||(a[i]=null)}),pr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:a,splitSizesPx:r.splitSizesPx})})},clearSessionFromAllLeaves:t=>{e(n=>{const r={...n.leafSessionIds};let s=!1;for(const[o,a]of Object.entries(r))a===t&&(r[o]=null,s=!0);return s?pr({sidebar:n.sidebar,inspector:n.inspector,tree:n.tree,activeLeafId:n.activeLeafId,leafSessionIds:r,splitSizesPx:n.splitSizesPx}):n})},splitLeaf:(t,n)=>{e(r=>{const s=Jn(r.tree);if(!s.includes(t)||s.length>=4)return r;const o=Oh("split"),a=Oh("pane"),i=Nu(r.tree,t,n,o,a),c={...r.leafSessionIds,[a]:null};return pr({sidebar:r.sidebar,inspector:r.inspector,tree:i,activeLeafId:a,leafSessionIds:c,splitSizesPx:r.splitSizesPx})})},closeLeaf:t=>{e(n=>{const r=Jn(n.tree);if(!r.includes(t)||r.length<=1)return n;const s=zu(n.tree,t);if(!s.removed||!s.node)return n;const o=s.node,a=Jn(o),i=Za(o),c={};a.forEach(m=>{c[m]=n.leafSessionIds[m]??null});const d={};i.forEach(m=>{const g=n.splitSizesPx[m];g&&(d[m]=g)});const h=n.activeLeafId===t?a[0]:a.includes(n.activeLeafId)?n.activeLeafId:a[0];return pr({sidebar:n.sidebar,inspector:n.inspector,tree:o,activeLeafId:h,leafSessionIds:c,splitSizesPx:d})})},setSplitSizesPx:(t,n)=>{e(r=>{const s=r.splitSizesPx[t];return s&&s[0]===n[0]&&s[1]===n[1]?r:pr({sidebar:r.sidebar,inspector:r.inspector,tree:r.tree,activeLeafId:r.activeLeafId,leafSessionIds:r.leafSessionIds,splitSizesPx:{...r.splitSizesPx,[t]:n}})})},pruneSplitSizes:()=>{e(t=>{const n=new Set(Za(t.tree)),r={};for(const[a,i]of Object.entries(t.splitSizesPx))n.has(a)&&(r[a]=i);const s=Object.keys(t.splitSizesPx),o=Object.keys(r);return s.length===o.length&&s.every(a=>a in r)?t:pr({sidebar:t.sidebar,inspector:t.inspector,tree:t.tree,activeLeafId:t.activeLeafId,leafSessionIds:t.leafSessionIds,splitSizesPx:r})})}})),L0=async(e,t)=>{var a;const n=ae.getState(),r=!n.chats.some(i=>i.id===e);if(t!=null&&t.forceRefreshIndex||r)try{await n.refreshChats()}catch(i){console.warn("[openSession] refreshChats failed:",i)}const s=ae.getState().chats.find(i=>i.id===e);if(!s)return;if(t!=null&&t.forceLoadHistory||r||(((a=s.messages)==null?void 0:a.length)||0)===0&&(s.messageCount||0)>0)try{await n.loadChatHistory(e)}catch(i){console.warn("[openSession] loadChatHistory failed:",i)}if(t!=null&&t.forceSubscribe){n.markForceSubscribe(e);return}((t==null?void 0:t.subscribeIfRunning)??!0)&&s.isRunning&&n.markForceSubscribe(e)},D0=(e,t)=>{const{activeLeafId:n,leafSessionIds:r,setLeafSessionId:s,setActiveLeafId:o}=gt.getState(),a=M0(r,e),i=r[n]??null;Gn("openSession (input)",{activeLeafId:n,activeLeafSessionId:i,sessionId:e,existingLeafId:a}),a?a===n?Gn("openSession (decision)",{action:"noop_already_active",leafId:n,sessionId:e}):(o(a),Gn("openSession (decision)",{action:"focus_existing_leaf",leafId:a,sessionId:e})):(s(n,e),Gn("openSession (decision)",{action:"assign_to_active_leaf",leafId:n,sessionId:e})),ae.getState().selectSession(e),L0(e,t)},By=e=>e==="child"?"child":"root",F0=e=>({id:e.id,title:e.title,kind:By(e.kind),pinned:!!e.pinned,parentSessionId:e.parentSessionId||null,rootSessionId:e.rootSessionId||null,createdByScheduleId:e.createdByScheduleId||null,updatedAt:e.updatedAt||null,lastRunStatus:e.lastRunStatus||null,lastRunError:e.lastRunError||null,createdAt:e.createdAt,config:{systemPromptId:e.config.systemPromptId,workspacePath:e.config.workspacePath||null}}),N0=(e,t)=>e.id===t.id&&e.title===t.title&&e.kind===By(t.kind)&&e.pinned===!!t.pinned&&e.parentSessionId===(t.parentSessionId||null)&&e.rootSessionId===(t.rootSessionId||null)&&e.createdByScheduleId===(t.createdByScheduleId||null)&&e.updatedAt===(t.updatedAt||null)&&e.lastRunStatus===(t.lastRunStatus||null)&&e.lastRunError===(t.lastRunError||null)&&e.createdAt===t.createdAt&&e.config.systemPromptId===t.config.systemPromptId&&e.config.workspacePath===(t.config.workspacePath||null),z0=(()=>{let e=null,t=[],n=new Map;return r=>{if(r===e)return t;const s=r.map(a=>{const i=n.get(a.id);return i&&N0(i,a)?i:F0(a)}),o=s.length===t.length&&s.every((a,i)=>a===t[i]);return e=r,n=new Map(s.map(a=>[a.id,a])),o?t:(t=s,s)}})(),B0=e=>[e.title,e.id,e.kind||"root",e.config.workspacePath||"",e.config.systemPromptId||"",e.updatedAt||"",e.createdByScheduleId||"",e.lastRunStatus||"",e.lastRunError||""].join(" ").toLowerCase(),W0=e=>e.messages.filter(t=>t.role==="user"&&"content"in t).slice(0,3).map(t=>"content"in t?t.content:"").join(" ").toLowerCase(),Bc=(e,t)=>{if(!t)return!0;const n=t.split(/\s+/).filter(Boolean),r=B0(e);if(n.every(i=>r.includes(i)))return!0;const s=ae.getState().chats.find(i=>i.id===e.id);if(!s)return!1;const o=W0(s),a=`${r} ${o}`;return n.every(i=>a.includes(i))},Wc=(e,t,n)=>{switch(t){case"pinned":return!!e.pinned;case"running":return n(e.id);case"child":return e.kind==="child";case"all":default:return!0}},U0=()=>{const{t:e}=Ge(),{message:t}=Dn.useApp(),{chats:n,currentSessionId:r,deleteSession:s,deleteSessions:o,pinSession:a,unpinSession:i,updateSession:c,addChat:d,refreshChats:h,lastSelectedPromptId:m,systemPrompts:g}=ae(Wa(ye=>({chats:z0(ye.chats),currentSessionId:ye.currentSessionId,deleteSession:ye.deleteSession,deleteSessions:ye.deleteSessions,pinSession:ye.pinSession,unpinSession:ye.unpinSession,updateSession:ye.updateSession,addChat:ye.addChat,refreshChats:ye.refreshChats,lastSelectedPromptId:ye.lastSelectedPromptId,systemPrompts:ye.systemPrompts}))),y=b.useCallback(ye=>li(ye)(ae.getState()),[]),{sidebarCollapsed:x,setSidebarCollapsed:S,clearSessionFromAllLeaves:_}=gt(Wa(ye=>({sidebarCollapsed:ye.sidebar.collapsed,setSidebarCollapsed:ye.setSidebarCollapsed,clearSessionFromAllLeaves:ye.clearSessionFromAllLeaves}))),E=b.useCallback(async(ye,We)=>{var De,mn;const Te=g.find(N=>N.id===m),Fe=(Te==null?void 0:Te.id)||(g.length>0?((De=g.find(N=>N.id==="general_assistant"))==null?void 0:De.id)||g[0].id:""),qt={title:ye||e("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:Fe,baseSystemPrompt:(Te==null?void 0:Te.content)||(g.length>0?((mn=g.find(N=>N.id==="general_assistant"))==null?void 0:mn.content)||g[0].content:""),lastUsedEnhancedPrompt:null},...We},$n=await d(qt),{activeLeafId:yt}=gt.getState();gt.getState().setLeafSessionId(yt,$n),gt.getState().setActiveLeafId(yt)},[d,m,g,e]),[T,P]=b.useState(!1),[C,A]=b.useState(new Set(["Today"])),[I,O]=b.useState(""),[$,B]=b.useState("all"),[te,H]=b.useState({}),L=ae(Wa(ye=>{const We=ye.currentSessionId;if(!We)return null;const Te=ye.chats.find(Fe=>Fe.id===We);return Te?{id:Te.id,kind:Te.kind,parentSessionId:Te.parentSessionId||null,rootSessionId:Te.rootSessionId||null,pinned:!!Te.pinned,createdAt:Te.createdAt,createdByScheduleId:Te.createdByScheduleId||null}:null})),Z=b.useMemo(()=>L?L.pinned?"Pinned":L.createdByScheduleId?"Scheduled":new Date(L.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):null,[L]),D=b.useMemo(()=>{const ye=new Set(C);return Z&&ye.add(Z),Array.from(ye)},[Z,C]),F=ye=>{const We=new Set(Array.isArray(ye)?ye:[ye]);A(Te=>{if(Te.size!==We.size)return We;for(const Fe of We)if(!Te.has(Fe))return We;return Te})},de=I.trim().toLowerCase(),Q=de.length>0||$!=="all",ge=b.useMemo(()=>[],[]),G=b.useMemo(()=>({}),[]),ce=b.useMemo(()=>({}),[]),ve=b.useMemo(()=>[],[]),ue=b.useMemo(()=>new Set,[]),he=b.useMemo(()=>x?ge:n.filter(ye=>ye.kind!=="child"),[n,x,ge]),le=b.useMemo(()=>{if(x)return G;const ye={};for(const We of n){if(We.kind!=="child")continue;const Te=We.parentSessionId||We.rootSessionId;Te&&(ye[Te]||(ye[Te]=[]),ye[Te].push(We))}return Object.keys(ye).forEach(We=>{ye[We].sort((Te,Fe)=>{if(Te.pinned!==Fe.pinned)return Te.pinned?-1:1;const qt=Date.parse(Te.updatedAt||"")||Te.createdAt||0;return(Date.parse(Fe.updatedAt||"")||Fe.createdAt||0)-qt})}),ye},[n,x,G]),we=b.useMemo(()=>Q?he.filter(ye=>Bc(ye,de)&&Wc(ye,$,y)?!0:(le[ye.id]||[]).some(Fe=>Bc(Fe,de)&&Wc(Fe,$,y))):he,[le,Q,y,de,he,$]),Le=b.useMemo(()=>{if(!Q)return le;const ye={};for(const We of we){const Te=le[We.id]||[];ye[We.id]=Te.filter(Fe=>Bc(Fe,de)&&Wc(Fe,$,y))}return ye},[le,we,Q,y,de,$]),Ie=b.useMemo(()=>x?ce:dw(we),[we,x,ce]),Je=b.useMemo(()=>x?ve:fw(Ie),[Ie,x,ve]),j=b.useCallback(ye=>{a(ye),A(We=>{if(We.has("Pinned"))return We;const Te=new Set(We);return Te.add("Pinned"),Te})},[a]),ie=b.useCallback(ye=>{const We=n.find(Fe=>Fe.id===ye),Te=We?pw({...We}):null;i(ye),Te&&A(Fe=>{if(Fe.has(Te))return Fe;const qt=new Set(Fe);return qt.add(Te),qt})},[n,i]),me=ye=>{rl.confirm({title:e("chat.sidebar.delete.title"),content:e("chat.sidebar.delete.confirm"),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{_(ye),s(ye)}})},Me=Ua(ye=>ye.open),Ue=()=>{Me("chat")},St=b.useCallback(ye=>{O(ye)},[]),ot=b.useCallback(ye=>{B(ye)},[]),Ft=(ye,We)=>{c(ye,{title:We})},Vt=b.useCallback(async ye=>{try{await er.getInstance().regenerateSessionTitle(ye)}catch(We){console.error("Failed to regenerate session title:",We)}},[]),At=b.useCallback(async ye=>{var Te;if(((Te=te[ye])==null?void 0:Te.status)==="loading")return;H(Fe=>({...Fe,[ye]:{status:"loading"}}));const We=t.loading(e("chat.actions.runProjectDreamRunning"),0);try{const Fe=await er.getInstance().runProjectDream(ye);We(),Fe.dream_generated?t.success(e("chat.actions.runProjectDreamSuccess")):t.info(Fe.message||e("chat.actions.runProjectDreamNoChange"));try{await h()}catch(qt){console.warn("Failed to refresh chats after project dream run:",qt)}}catch(Fe){We();const qt=Fe instanceof Error&&Fe.message?Fe.message:e("chat.actions.runProjectDreamFailed");t.error(qt),console.error("Failed to run project dream:",Fe)}finally{H(Fe=>({...Fe,[ye]:{status:"idle"}}))}},[t,te,h,e]),Mt=ye=>{const We=hw(Ie,ye),Te=oy(Ie,ye);rl.confirm({title:e("chat.sidebar.deleteByDate.title",{date:ye}),content:e("chat.sidebar.deleteByDate.confirm",{count:Te,date:ye}),okText:e("common.delete"),okType:"danger",cancelText:e("common.cancel"),onOk:()=>{We.forEach(Fe=>_(Fe)),o(We)}})},wn=()=>{P(!0)},kt=()=>{P(!1)},_n=async ye=>{try{await E(e("chat.sidebar.newSessionWithPrompt",{prompt:ye.name}),{config:{systemPromptId:ye.id,baseSystemPrompt:ye.content,lastUsedEnhancedPrompt:null}}),P(!1)}catch(We){console.error("Failed to create chat:",We),rl.error({title:e("chat.sidebar.createFailedTitle"),content:We instanceof Error?We.message:e("chat.sidebar.createFailedUnknown")})}},pn=b.useCallback(ye=>D0(ye),[]),[On,Mn]=b.useState(new Set),Ot=b.useMemo(()=>{if(x)return ue;const ye=new Set;for(const We of Object.values(le))for(const Te of We)if(Te.pinned){const Fe=Te.parentSessionId||Te.rootSessionId;Fe&&ye.add(Fe)}return ye},[le,x,ue]),tn=b.useMemo(()=>{var We;if(x)return ue;const ye=new Set(On);if((L==null?void 0:L.kind)==="child"){const Te=L.parentSessionId||L.rootSessionId;Te&&ye.add(Te)}for(const Te of Ot)ye.add(Te);if(Q)for(const Te of we)(((We=Le[Te.id])==null?void 0:We.length)??0)>0&&ye.add(Te.id);return ye},[Le,On,we,Q,Ot,L,x,ue]),Cn=b.useCallback(ye=>{Mn(We=>{const Te=new Set(We);return Te.has(ye)?Te.delete(ye):Te.add(ye),Te})},[]);return{chats:we,childrenByRoot:Le,expandedRootIds:tn,toggleRootExpanded:Cn,collapsed:x,currentSessionId:r,expandedKeys:D,groupedChatsByDate:Ie,hasActiveFilters:Q,handleCollapseChange:F,handleDelete:me,handleDeleteByDate:Mt,handleEditTitle:Ft,handleGenerateTitle:Vt,handleNewChat:wn,handleNewChatSelectorClose:kt,handleOpenSettings:Ue,handleRunProjectDream:At,handleSearchQueryChange:St,handleStatusFilterChange:ot,handleSystemPromptSelect:_n,isNewChatSelectorOpen:T,pinSession:j,projectDreamState:te,searchQuery:I,selectSession:pn,setCollapsed:S,sortedDateKeys:Je,statusFilter:$,systemPrompts:g,titleGenerationState:{},unpinSession:ie}},q0=b.lazy(()=>Jt(()=>import("./index-BfAjm2cg.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url)),{useBreakpoint:H0}=Wl,{useToken:Y0}=ut,$h=()=>{const{token:e}=Y0(),{t}=Ge(),n=H0(),{childrenByRoot:r,expandedRootIds:s,toggleRootExpanded:o,collapsed:a,currentSessionId:i,expandedKeys:c,groupedChatsByDate:d,handleCollapseChange:h,handleDelete:m,handleDeleteByDate:g,handleEditTitle:y,handleGenerateTitle:x,handleNewChat:S,handleNewChatSelectorClose:_,handleOpenSettings:E,handleRunProjectDream:T,handleSearchQueryChange:P,handleStatusFilterChange:C,handleSystemPromptSelect:A,hasActiveFilters:I,isNewChatSelectorOpen:O,pinSession:$,projectDreamState:B,searchQuery:te,selectSession:H,setCollapsed:L,sortedDateKeys:Z,statusFilter:D,systemPrompts:F,titleGenerationState:de,unpinSession:Q}=U0(),{xs:ge,sm:G}=n;return b.useEffect(()=>{typeof ge!="boolean"||typeof G!="boolean"||ge===!1&&G===!1&&L(!0)},[G,ge,L]),a?null:l.jsxs("nav",{"data-tour-id":"sidebar","aria-label":t("chat.sidebar.title","Chat sidebar"),style:{width:"100%",height:"100%",background:"transparent",borderRight:`1px solid ${e.colorBorderSecondary}`,position:"relative",overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:[l.jsx(Ee,{justify:"flex-end",style:{flexShrink:0,padding:"8px 10px 0 10px",minHeight:34},children:l.jsx(je,{type:"text",icon:l.jsx(Cx,{}),onClick:()=>L(!0),size:n.xs?"small":"middle",className:"lotus-toolbar-icon","aria-label":t("chat.sidebar.collapse","Collapse sidebar")})}),l.jsxs(Ee,{vertical:!0,gap:6,style:{flexShrink:0,padding:"6px 10px 6px 10px"},children:[l.jsx(Rs,{allowClear:!0,value:te,onChange:ce=>P(ce.target.value),prefix:l.jsx(Pu,{style:{color:e.colorTextTertiary}}),placeholder:t("chat.sidebar.searchPlaceholder","Search sessions"),"aria-label":t("chat.sidebar.searchPlaceholder","Search sessions"),size:"small",style:{borderRadius:e.borderRadiusLG}}),l.jsx(kx,{block:!0,size:n.xs?"middle":"small",value:D,onChange:ce=>C(ce),options:[{label:t("chat.sidebar.filters.all","All"),value:"all"},{label:t("chat.sidebar.filters.pinned","Pinned"),value:"pinned"},{label:t("chat.sidebar.filters.running","Running"),value:"running"},{label:t("chat.sidebar.filters.child","Child"),value:"child"}]})]}),l.jsx(Ee,{vertical:!0,role:"list","aria-label":t("chat.sidebar.chatList","Chat list"),style:{flex:1,minHeight:0,overflowY:"auto",padding:"0 10px"},children:l.jsx(mw,{groupedChatsByDate:d,childrenByRoot:r,expandedRootIds:s,onToggleRootExpanded:o,sortedDateKeys:Z,expandedKeys:c,onCollapseChange:h,currentSessionId:i,onSelectChat:H,onDeleteChat:m,onDeleteByDate:g,onPinChat:$,onUnpinChat:Q,onEditTitle:y,onGenerateTitle:x,onRunProjectDream:T,titleGenerationState:de,projectDreamState:B,token:e,hasActiveFilters:I})}),l.jsx(kw,{collapsed:!1,onNewChat:S,onOpenSettings:E,token:e}),l.jsx(b.Suspense,{fallback:null,children:l.jsx(q0,{open:O,onClose:_,onSelect:A,prompts:F,title:t("chat.prompt.newSessionSelectorTitle"),showCancelButton:!0})})]})},{Text:Lh,Paragraph:K0}=ft;class ei extends b.Component{constructor(n){super(n);Et(this,"handleReset",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,r){var o,a;const s=this.props.name??"ErrorBoundary";console.error(`[${s}] Uncaught error:`,n,r),(a=(o=this.props).onError)==null||a.call(o,n,r)}render(){if(!this.state.hasError)return this.props.children;const{fallback:n}=this.props,r=this.state.error;return typeof n=="function"?n(r,this.handleReset):n!==void 0?n:l.jsx(X0,{error:r,onReset:this.handleReset})}}const X0=({error:e,onReset:t})=>{const{token:n}=ut.useToken(),[r,s]=dt.useState(!1),{t:o}=Ge();return l.jsxs("div",{role:"alert",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,padding:n.paddingLG,minHeight:200,textAlign:"center"},children:[l.jsx(Xg,{style:{fontSize:36,color:n.colorWarning}}),l.jsx(Lh,{strong:!0,style:{fontSize:16},children:o("app.errorBoundary.title")}),l.jsx(Lh,{type:"secondary",style:{maxWidth:420},children:o("app.errorBoundary.description")}),l.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[l.jsx(je,{type:"primary",icon:l.jsx(jd,{}),onClick:t,"aria-label":o("app.errorBoundary.tryAgain"),children:o("app.errorBoundary.tryAgain")}),l.jsx(je,{type:"text",size:"small",onClick:()=>s(a=>!a),"aria-expanded":r,"aria-label":o("app.errorBoundary.showDetails"),children:o(r?"app.errorBoundary.hideDetails":"app.errorBoundary.showDetails")})]}),r&&l.jsxs(K0,{code:!0,copyable:!0,style:{maxWidth:560,maxHeight:200,overflow:"auto",fontSize:12,textAlign:"left",marginTop:8,background:n.colorFillTertiary,padding:n.paddingSM,borderRadius:n.borderRadius},children:[e.message,e.stack?`
14
+
15
+ ${e.stack}`:""]})]})},Dh={theme:"default",themeVariables:{},fontSize:16,defaultScale:1,useMaxWidth:!0,flowchartNodeSpacing:50,flowchartRankSpacing:50,flowchartCurve:"basis",sequenceActorMargin:50,sequenceMessageMargin:35,sequenceWidth:150,sequenceHeight:65,ganttBarHeight:20,ganttTopPadding:50},Hd=es()(Qw(e=>({settings:Dh,updateSettings:t=>e(n=>({settings:{...n.settings,...t}})),resetSettings:()=>e({settings:Dh})}),{name:"mermaid-settings"})),Yd=()=>Hd(t=>t.settings),f$=()=>Hd(e=>e.updateSettings),h$=()=>Hd(e=>e.resetSettings),V0=()=>{const{token:e}=ut.useToken(),t=Yd(),n=b.useRef("");b.useEffect(()=>{const r=G0(e.colorBgContainer),s=`${r}-${t.theme}-${JSON.stringify(t.themeVariables)}`;if(n.current===s)return;n.current=s;let o=t.theme;(t.theme==="default"||t.theme==="neutral")&&(o=r?"dark":t.theme),Ad.initialize({startOnLoad:!1,theme:o,securityLevel:"loose",suppressErrorRendering:!0,fontSize:t.fontSize,themeVariables:Object.keys(t.themeVariables).length>0?t.themeVariables:void 0,flowchart:{useMaxWidth:t.useMaxWidth,htmlLabels:!0,curve:t.flowchartCurve,nodeSpacing:t.flowchartNodeSpacing,rankSpacing:t.flowchartRankSpacing},sequence:{useMaxWidth:t.useMaxWidth,diagramMarginX:10,diagramMarginY:10,actorMargin:t.sequenceActorMargin,width:t.sequenceWidth,height:t.sequenceHeight,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:t.sequenceMessageMargin,mirrorActors:!0,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1},gantt:{useMaxWidth:t.useMaxWidth,leftPadding:75,gridLineStartPadding:35,barHeight:t.ganttBarHeight,barGap:4,topPadding:t.ganttTopPadding},journey:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center"},timeline:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35},gitGraph:{useMaxWidth:t.useMaxWidth,showBranches:!0,showCommitLabel:!0},c4:{useMaxWidth:t.useMaxWidth,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10},sankey:{useMaxWidth:t.useMaxWidth},xyChart:{useMaxWidth:t.useMaxWidth},block:{useMaxWidth:t.useMaxWidth,padding:8}})},[e,t])};function G0(e){if(e.startsWith("#")){const n=e.slice(1),r=parseInt(n.substr(0,2),16),s=parseInt(n.substr(2,2),16),o=parseInt(n.substr(4,2),16);return(.299*r+.587*s+.114*o)/255<.5}const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(t){const n=parseInt(t[1]),r=parseInt(t[2]),s=parseInt(t[3]);return(.299*n+.587*r+.114*s)/255<.5}return!1}Ad.initialize({startOnLoad:!1,theme:"dark",securityLevel:"loose",suppressErrorRendering:!0});Ad.parseError=function(e){console.warn("Mermaid parse error (handled gracefully):",e)};const Fh=new Map,J0=/^(\s*%%\{[\s\S]*?\}%%\s*)*\s*gantt\b/i,Q0=e=>e.replace(/:/g,":").replace(/,/g,",").replace(/;/g,";").replace(/(/g,"(").replace(/)/g,")").replace(/-/g,"-"),Z0=e=>(J0.test(e)?Q0(e):e).replace(/\[([\s\S]*?)\]/g,(n,r)=>{const s=String(r),o=/\r?\n/.test(s),a=/[()]/.test(s),i=/@/.test(s);if(!o&&!a&&!i)return n;const c=s.trim(),d=c.startsWith("(")&&c.endsWith(")")&&c.length>=2;let h=s;return o&&(h=h.replace(/\r?\n/g,"<br/>")),a&&!d&&(h=h.replace(/\(/g,"&#40;").replace(/\)/g,"&#41;")),i&&(h=h.replace(/@/g,"&#64;")),h===s?n:`[${h}]`}),eC=200,vr=new Map,al=new Map;let Uc=null;const tC=e=>{const n=new DOMParser().parseFromString(e,"image/svg+xml");return Array.from(n.querySelectorAll("rect")).reduce((s,o)=>{const a=Number(o.getAttribute("width"));return Number.isFinite(a)&&a<0?s+1:s},0)};async function nC(){Uc||(Uc=Jt(()=>import("./vendor-mermaid-B4BbwE4a.js").then(t=>t.bP),__vite__mapDeps([4,3,2]),import.meta.url));const e=await Uc;return e.default??e}function rC(e,t){if(vr.has(e)&&vr.delete(e),vr.set(e,t),vr.size>eC){const n=vr.keys().next().value;n&&vr.delete(n)}}function il(e){const t=vr.get(e);return t?(vr.delete(e),vr.set(e,t),t):null}function Nh(){vr.clear(),al.clear()}function sC(e,t){const n=il(e);if(n)return Promise.resolve(n);const r=al.get(e);if(r)return r;const s=(async()=>{var T,P;const o=await nC();await o.parse(t);const a=`mermaid-${e}`,i=document.createElement("div"),c=Math.max(1600,window.innerWidth||0,((T=document.documentElement)==null?void 0:T.clientWidth)||0);i.style.cssText=["position:absolute","left:-9999px","top:-9999px",`width:${c}px`,`min-width:${c}px`,"visibility:hidden","pointer-events:none","overflow:visible"].join(";"),document.body.appendChild(i);let d;try{d=await o.render(a,t,i)}finally{document.body.removeChild(i)}const h=typeof d=="object"&&"svg"in d?d.svg:String(d),m=tC(h);if(m>0)throw new Error(`Mermaid rendered invalid SVG (${m} rect widths < 0)`);const x=new DOMParser().parseFromString(h,"image/svg+xml").querySelector("svg");let S=800,_=300;if(x){const C=x.getAttribute("viewBox");if(C){const A=C.split(/\s+/).map(Number);A.length===4&&(S=A[2]||800,_=A[3]||300)}if(S===800&&_===300){const A=document.createElement("div");A.style.cssText="position:absolute;visibility:hidden;width:800px;",A.innerHTML=h,document.body.appendChild(A);const I=(P=A.querySelector("svg"))==null?void 0:P.getBoundingClientRect();I&&(S=I.width,_=I.height),document.body.removeChild(A)}}const E={svg:h,width:S,height:_};return rC(e,E),E})().finally(()=>{al.delete(e)});return al.set(e,s),s}const Aa=new Map,ll=new Set,Bs=new Map,so=new Map;let ls=null;const Wy=(e,t)=>{const n=Aa.get(e);n&&n.forEach(r=>r(t))},qc=()=>{if(ls=null,so.size===0)return;const e=Array.from(so.values());so.clear(),e.forEach(t=>{Wy(t.messageId,t.content),ll.forEach(n=>n(t))})},zt={getLatest(e){return Bs.get(e)??null},subscribeMessage(e,t){let n=Aa.get(e);return n||(n=new Set,Aa.set(e,n)),n.add(t),Bs.has(e)&&t(Bs.get(e)??null),()=>{const r=Aa.get(e);r&&(r.delete(t),r.size===0&&Aa.delete(e))}},subscribe(e){return ll.add(e),()=>{ll.delete(e)}},publish(e){if(e.transient){so.set(e.messageId,e),ls===null&&(ls=requestAnimationFrame(qc));return}e.content===null?Bs.delete(e.messageId):Bs.set(e.messageId,e.content),so.set(e.messageId,e),ls===null&&(ls=requestAnimationFrame(qc))},clear(e,t){Bs.delete(t),so.delete(t),Wy(t,null),ll.forEach(n=>n({sessionId:e,messageId:t,content:null}))},forceFlush(){ls!==null&&(cancelAnimationFrame(ls),qc())}},Ar={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function Uy(e){return"init"in e}function Bu(e){return typeof e.write=="function"}function oC(e){return!!e.onMount}function zh(e){return"v"in e||"e"in e}function Tl(e){if("e"in e)throw e.e;if((Ar?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}function Pl(e){return typeof(e==null?void 0:e.then)=="function"}function qy(e,t,n){if(!n.p.has(e)){n.p.add(e);const r=()=>n.p.delete(e);t.then(r,r)}}function Hy(e,t,n){const r=n.get(e),s=r==null?void 0:r.t,o=t.p;if(!(s!=null&&s.size))return o;if(!o.size)return s;const a=new Set(s);for(const i of o)a.add(i);return a}function aC(e){return!!e.INTERNAL_onInit}const iC=(e,t,n,...r)=>n.read(...r),lC=(e,t,n,...r)=>n.write(...r),cC=(e,t,n)=>n.INTERNAL_onInit(t),uC=(e,t,n,r)=>{var s;return(s=n.onMount)==null?void 0:s.call(n,r)},dC=(e,t,n)=>{var r;const s=e[0];let o=s.get(n);if(!o){const a=e[6],i=e[9];o={d:new Map,p:new Set,n:0},s.set(n,o),(r=a.i)==null||r.call(a,n),aC(n)&&i(e,t,n)}return o},fC=(e,t)=>{var n;const r=e[1],s=e[3],o=e[4],a=e[5],i=e[6],c=e[13];if(!i.f&&!s.size&&!o.size&&!a.size)return;const d=[],h=m=>{try{m()}catch(g){d.push(g)}};do{i.f&&h(i.f);const m=new Set;for(const g of s){const y=(n=r.get(g))==null?void 0:n.l;if(y)for(const x of y)m.add(x)}s.clear();for(const g of a)m.add(g);a.clear();for(const g of o)m.add(g);o.clear();for(const g of m)h(g);s.size&&c(e,t)}while(s.size||a.size||o.size);if(d.length)throw new AggregateError(d)},hC=(e,t)=>{const n=e[1],r=e[2],s=e[3],o=e[11],a=e[14],i=e[17];if(!s.size)return;const c=[],d=[],h=new WeakSet,m=new WeakSet,g=[],y=[];for(const x of s)g.push(x),y.push(o(e,t,x));for(;g.length;){const x=g.length-1,S=g[x],_=y[x];if(m.has(S)){g.pop(),y.pop();continue}if(h.has(S)){if(r.get(S)===_.n)c.push(S),d.push(_);else if((Ar?"production":void 0)!=="production"&&r.has(S))throw new Error("[Bug] invalidated atom exists");m.add(S),g.pop(),y.pop();continue}h.add(S);for(const E of Hy(S,_,n))h.has(E)||(g.push(E),y.push(o(e,t,E)))}for(let x=c.length-1;x>=0;--x){const S=c[x],_=d[x];let E=!1;for(const T of _.d.keys())if(T!==S&&s.has(T)){E=!0;break}E&&(r.set(S,_.n),a(e,t,S),i(e,t,S)),r.delete(S)}},Wu=new WeakSet,pC=(e,t,n)=>{var r,s;const o=e[1],a=e[2],i=e[3],c=e[6],d=e[7],h=e[11],m=e[12],g=e[13],y=e[14],x=e[16],S=e[17],_=e[20],E=e[26],T=e[28],P=h(e,t,n),C=T[0];if(zh(P)){if(o.has(n)&&a.get(n)!==P.n||P.m===C)return P.m=C,P;let F=!1;for(const[de,Q]of P.d)if(y(e,t,de).n!==Q){F=!0;break}if(!F)return P.m=C,P}let A=!0;const I=new Set(P.d.keys()),O=()=>{for(const F of I)P.d.delete(F)},$=()=>{if(o.has(n)){const F=!i.size;S(e,t,n),F&&(g(e,t),m(e,t))}},B=F=>{var de;if(F===n){const ge=h(e,t,F);if(!zh(ge))if(Uy(F))_(e,t,F,F.init);else throw new Error("no atom init");return Tl(ge)}const Q=y(e,t,F);try{return Tl(Q)}finally{I.delete(F),P.d.set(F,Q.n),Pl(P.v)&&qy(n,P.v,Q),o.has(n)&&((de=o.get(F))==null||de.t.add(n)),A||$()}};let te,H;const L={get signal(){return te||(te=new AbortController),te.signal},get setSelf(){return(Ar?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(Ar?"production":void 0)!=="production"&&!Bu(n)&&console.warn("setSelf function cannot be used with read-only atom"),!H&&Bu(n)&&(H=(...F)=>{if((Ar?"production":void 0)!=="production"&&A&&console.warn("setSelf function cannot be called in sync"),!A)try{return x(e,t,n,F)}finally{g(e,t),m(e,t)}}),H}},Z=P.n,D=a.get(n)===Z;try{(Ar?"production":void 0)!=="production"&&Wu.delete(t);const F=d(e,t,n,B,L);if((Ar?"production":void 0)!=="production"&&Wu.has(t)&&console.warn("Detected store mutation during atom read. This is not supported."),_(e,t,n,F),Pl(F)){E(e,t,F,()=>te==null?void 0:te.abort());const de=()=>{O(),$()};F.then(de,de)}else O();return(r=c.r)==null||r.call(c,n),P.m=C,P}catch(F){return delete P.v,P.e=F,++P.n,P.m=C,P}finally{A=!1,P.n!==Z&&D&&(a.set(n,P.n),i.add(n),(s=c.c)==null||s.call(c,n))}},mC=(e,t,n)=>{const r=e[1],s=e[2],o=e[11],a=[n];for(;a.length;){const i=a.pop(),c=o(e,t,i);for(const d of Hy(i,c,r)){const h=o(e,t,d);s.get(d)!==h.n&&(s.set(d,h.n),a.push(d))}}},gC=(e,t,n,r)=>{const s=e[3],o=e[6],a=e[8],i=e[11],c=e[12],d=e[13],h=e[14],m=e[15],g=e[16],y=e[17],x=e[20],S=e[28];let _=!0;const E=P=>Tl(h(e,t,P)),T=(P,...C)=>{var A;const I=i(e,t,P);try{if(P===n){if(!Uy(P))throw new Error("atom not writable");(Ar?"production":void 0)!=="production"&&Wu.add(t);const O=I.n,$=C[0];x(e,t,P,$),y(e,t,P),O!==I.n&&(++S[0],s.add(P),m(e,t,P),(A=o.c)==null||A.call(o,P));return}else return g(e,t,P,C)}finally{_||(d(e,t),c(e,t))}};try{return a(e,t,n,E,T,...r)}finally{_=!1}},yC=(e,t,n)=>{var r;const s=e[1],o=e[3],a=e[6],i=e[11],c=e[15],d=e[18],h=e[19],m=i(e,t,n),g=s.get(n);if(g&&m.d.size>0){for(const[y,x]of m.d)if(!g.d.has(y)){const S=i(e,t,y);d(e,t,y).t.add(n),g.d.add(y),x!==S.n&&(o.add(y),c(e,t,y),(r=a.c)==null||r.call(a,y))}for(const y of g.d)if(!m.d.has(y)){g.d.delete(y);const x=h(e,t,y);x==null||x.t.delete(n)}}},vC=(e,t,n)=>{var r;const s=e[1],o=e[4],a=e[6],i=e[10],c=e[11],d=e[12],h=e[13],m=e[14],g=e[16],y=e[18],x=c(e,t,n);let S=s.get(n);if(!S){m(e,t,n);for(const _ of x.d.keys())y(e,t,_).t.add(n);if(S={l:new Set,d:new Set(x.d.keys()),t:new Set},s.set(n,S),Bu(n)&&oC(n)){const _=()=>{let E=!0;const T=(...P)=>{try{return g(e,t,n,P)}finally{E||(h(e,t),d(e,t))}};try{const P=i(e,t,n,T);P&&(S.u=()=>{E=!0;try{P()}finally{E=!1}})}finally{E=!1}};o.add(_)}(r=a.m)==null||r.call(a,n)}return S},bC=(e,t,n)=>{var r,s;const o=e[1],a=e[5],i=e[6],c=e[11],d=e[19],h=c(e,t,n);let m=o.get(n);if(!m||m.l.size)return m;let g=!1;for(const y of m.t)if((r=o.get(y))!=null&&r.d.has(n)){g=!0;break}if(!g){m.u&&a.add(m.u),m=void 0,o.delete(n);for(const y of h.d.keys()){const x=d(e,t,y);x==null||x.t.delete(n)}(s=i.u)==null||s.call(i,n);return}return m},SC=(e,t,n,r)=>{const s=e[11],o=e[27],a=s(e,t,n),i="v"in a,c=a.v;if(Pl(r))for(const d of a.d.keys())qy(n,r,s(e,t,d));a.v=r,delete a.e,(!i||!Object.is(c,a.v))&&(++a.n,Pl(c)&&o(e,t,c))},xC=(e,t,n)=>{const r=e[14];return Tl(r(e,t,n))},wC=(e,t,n,...r)=>{const s=e[3],o=e[12],a=e[13],i=e[16],c=s.size;try{return i(e,t,n,r)}finally{s.size!==c&&(a(e,t),o(e,t))}},_C=(e,t,n,r)=>{const s=e[12],o=e[18],a=e[19],c=o(e,t,n).l;return c.add(r),s(e,t),()=>{c.delete(r),a(e,t,n),s(e,t)}},CC=(e,t,n,r)=>{const s=e[25];let o=s.get(n);if(!o){o=new Set,s.set(n,o);const a=()=>s.delete(n);n.then(a,a)}o.add(r)},kC=(e,t,n)=>{const s=e[25].get(n);s==null||s.forEach(o=>o())},Yy=new WeakMap;function TC(e){const t=Yy.get(e);if((Ar?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");const n=t[24];return n?n(t,e):t}function PC(...e){const t={get(a){return r(n,t,a)},set(a,...i){return s(n,t,a,...i)},sub(a,i){return o(n,t,a,i)}},n=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},iC,lC,cC,uC,dC,fC,hC,pC,mC,gC,yC,vC,bC,SC,xC,wC,_C,void 0,new WeakMap,CC,kC,[0]].map((a,i)=>e[i]||a);Yy.set(t,Object.freeze(n));const r=n[21],s=n[22],o=n[23];return t}const Ky={};let EC=0;function _r(e,t){const n=`atom${++EC}`,r={toString(){return(Ky?"production":void 0)!=="production"&&this.debugLabel?n+":"+this.debugLabel:n}};return typeof e=="function"?r.read=e:(r.init=e,r.read=MC,r.write=AC),t&&(r.write=t),r}function MC(e){return e(this)}function AC(e,t,n){return t(this,typeof n=="function"?n(e(this)):n)}function Yl(){return PC()}let No;function RC(){return No||(No=Yl(),(Ky?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=No),globalThis.__JOTAI_DEFAULT_STORE__!==No&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),No}const jC=b.createContext(void 0);function IC(e){const t=b.useContext(jC);return(e==null?void 0:e.store)||t||RC()}const Uu=e=>typeof(e==null?void 0:e.then)=="function",qu=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},OC=dt.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(qu(e),e)}),Hc=new WeakMap,Bh=(e,t,n)=>{const r=TC(e),s=r[26];let o=Hc.get(t);return o||(o=new Promise((a,i)=>{let c=t;const d=g=>y=>{c===g&&a(y)},h=g=>y=>{c===g&&i(y)},m=()=>{try{const g=n();Uu(g)?(Hc.set(g,o),c=g,g.then(d(g),h(g)),s(r,e,g,m)):a(g)}catch(g){i(g)}};t.then(d(t),h(t)),s(r,e,t,m)}),Hc.set(t,o)),o};function $C(e,t){const{delay:n,unstable_promiseStatus:r=!dt.use}=t||{},s=IC(t),[[o,a,i],c]=b.useReducer(h=>{const m=s.get(e);return Object.is(h[0],m)&&h[1]===s&&h[2]===e?h:[m,s,e]},void 0,()=>[s.get(e),s,e]);let d=o;if((a!==s||i!==e)&&(c(),d=s.get(e)),b.useEffect(()=>{const h=s.sub(e,()=>{if(r)try{const m=s.get(e);Uu(m)&&qu(Bh(s,m,()=>s.get(e)))}catch{}if(typeof n=="number"){console.warn(`[DEPRECATED] delay option is deprecated and will be removed in v3.
16
+
17
+ Migration guide:
18
+
19
+ Create a custom hook like the following.
20
+
21
+ function useAtomValueWithDelay<Value>(
22
+ atom: Atom<Value>,
23
+ options: { delay: number },
24
+ ): Value {
25
+ const { delay } = options
26
+ const store = useStore(options)
27
+ const [value, setValue] = useState(() => store.get(atom))
28
+ useEffect(() => {
29
+ const unsub = store.sub(atom, () => {
30
+ setTimeout(() => setValue(store.get(atom)), delay)
31
+ })
32
+ return unsub
33
+ }, [store, atom, delay])
34
+ return value
35
+ }
36
+ `),setTimeout(c,n);return}c()});return c(),h},[s,e,n,r]),b.useDebugValue(d),Uu(d)){const h=Bh(s,d,()=>s.get(e));return r&&qu(h),OC(h)}return d}function Kd(e,t){let n=null;const r=new Map,s=new Set;function o(i){let c;if(c=r.get(i),c!==void 0)if(n!=null&&n(c[1],i))o.remove(i);else return c[0];const d=e(i);return r.set(i,[d,Date.now()]),a("CREATE",i,d),d}function a(i,c,d){for(const h of s)h({type:i,param:c,atom:d})}return o.unstable_listen=i=>(s.add(i),()=>{s.delete(i)}),o.getParams=()=>r.keys(),o.remove=i=>{{if(!r.has(i))return;const[c]=r.get(i);r.delete(i),a("REMOVE",i,c)}},o.setShouldRemove=i=>{if(n=i,!!n)for(const[c,[d,h]]of r)n(h,c)&&(r.delete(c),a("REMOVE",c,d))},o}const tr=e=>(e??"").trim(),Xy=(...e)=>{const t=e.map(tr);return t.some(n=>!n)?"":t.join("::")},El=(e,t,n,r)=>n?e.get(t(n)):r,Xd=(e,t,n,r,s)=>{n&&(e.set(t(n),r),t.remove(n),s==null||s.delete(n))},Vy=(e,t,n,r,s)=>{r&&Array.from(n).forEach(o=>{o.startsWith(r)&&Xd(e,t,o,s,n)})},Kl={content:"",reasoningContent:"",updatedAt:0},po=Yl(),mo=Kd(e=>_r(Kl)),LC=_r(null,(e,t,n)=>{const r=tr(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=mo(r),a=e(o);t(o,{...a,content:a.content+s,updatedAt:Date.now()})}),DC=_r(null,(e,t,n)=>{const r=tr(n.sessionId),s=n.chunk??"";if(!r||!s)return;const o=mo(r),a=e(o);t(o,{...a,reasoningContent:a.reasoningContent+s,updatedAt:Date.now()})}),FC=_r(null,(e,t,n)=>{const r=tr(n.sessionId);if(!r)return;const s=mo(r),o=e(s);t(s,{content:n.patch.content??o.content,reasoningContent:n.patch.reasoningContent??o.reasoningContent,updatedAt:n.patch.updatedAt??Date.now()})}),NC=(e,t)=>{po.set(LC,{sessionId:e,chunk:t})},zC=(e,t)=>{po.set(DC,{sessionId:e,chunk:t})},BC=(e,t)=>{po.set(FC,{sessionId:e,patch:t})},Yc=e=>{Xd(po,mo,tr(e),Kl)},Wh=e=>El(po,mo,tr(e),Kl),Gy={output:"",status:"idle",updatedAt:0},Vd=new Set,Xl=Yl(),Gd=(e,t)=>Xy(e,t),Vl=Kd(e=>_r(Gy)),WC=_r(null,(e,t,n)=>{const r=Gd(n.sessionId,n.toolCallId);if(!r)return;const s=n.chunk??"";if(!s)return;Vd.add(r);const o=Vl(r),a=e(o);t(o,{output:a.output+s,status:"running",updatedAt:Date.now()})}),UC=_r(null,(e,t,n)=>{const r=Gd(n.sessionId,n.toolCallId);if(!r)return;Vd.add(r);const s=Vl(r),o=e(s);t(s,{...o,status:n.status,updatedAt:Date.now()})}),Uh=e=>{const t=tr(e);t&&Vy(Xl,Vl,Vd,`${t}::`,Gy)},qC=(e,t,n)=>{Xl.set(WC,{sessionId:e,toolCallId:t,chunk:n})},Kc=(e,t,n)=>{Xl.set(UC,{sessionId:e,toolCallId:t,status:n})},Gl={outputPreview:"",updatedAt:0},Jl=Yl(),Jd=(e,t)=>Xy(e,t),Qd=new Set,Ql=Kd(e=>_r(Gl)),HC=_r(null,(e,t,n)=>{const r=Jd(n.parentSessionId,n.childSessionId);if(!r)return;Qd.add(r);const s=Ql(r),o=e(s);t(s,{...o,outputPreview:n.outputPreview,updatedAt:Date.now()})}),qh=(e,t,n)=>{Jl.set(HC,{parentSessionId:e,childSessionId:t,outputPreview:n})},YC=(e,t)=>{Xd(Jl,Ql,Jd(e,t),Gl,Qd)},Hh=e=>{const t=tr(e);t&&Vy(Jl,Ql,Qd,`${t}::`,Gl)},KC=(e,t)=>El(Jl,Ql,Jd(e,t),Gl),Hu=e=>{const t=(e??"").trim().toLowerCase();return t.includes("completion policy violation")&&t.includes("conclusion_with_options")},Yu=e=>{const t=(e??"").trim(),n=t?`
37
+
38
+ Raw error: ${t}`:"";return["Bamboo stopped this completion because Copilot conclusion_with_options confirmation is enabled for this session.","The assistant tried to finish with plain text instead of calling conclusion_with_options.","Next steps: retry the request, shorten or clarify the prompt, or temporarily disable the Copilot conclusion_with_options enhancement for this session if you do not want enforced confirmation."].join(" ")+n},Zd=()=>typeof window<"u"&&!!window.__TAURI_INTERNALS__,Jy="bodhi_notification_prefs",Di={enabled:!0,onClarification:!0,onToolApproval:!0,onContextPressure:!0,onSubAgentComplete:!1};function Qy(){if(typeof localStorage>"u")return Di;try{const e=localStorage.getItem(Jy);if(!e)return Di;const t=JSON.parse(e);return{...Di,...t}}catch{return Di}}function p$(e){if(typeof localStorage>"u")return;const n={...Qy(),...e};localStorage.setItem(Jy,JSON.stringify(n))}function XC(e){const t=Qy();if(!t.enabled)return!1;switch(e){case"clarification":return t.onClarification;case"tool_approval":return t.onToolApproval;case"context_pressure":return t.onContextPressure;case"subagent_completed":return t.onSubAgentComplete;default:return!0}}const Ku=new Set,VC=3e4;function GC(e){const t=[e.sessionId??"global",e.eventType];return e.eventId&&t.push(e.eventId),t.join("::")}function JC(e){setTimeout(()=>{Ku.delete(e)},VC)}async function QC(){const e=window.__TAURI_INTERNALS__,t=e==null?void 0:e.invoke;if(typeof t!="function")return!0;try{return await t("is_main_window_focused")===!0}catch{return!0}}async function ZC(e,t){const n=window.__TAURI_INTERNALS__,r=n==null?void 0:n.invoke;if(typeof r!="function")throw new Error("Tauri invoke not available");await r("show_desktop_notification",{title:e,body:t})}async function Fi(e){if(!Zd()||await QC()||!XC(e.eventType))return;const n=GC(e);if(!Ku.has(n))try{await ZC(e.title,e.body),Ku.add(n),JC(n)}catch{}}function as(...e){}const ek=e=>{const t=e;return(t==null?void 0:t.name)==="AbortError"||(t==null?void 0:t.code)===20},Yh=220,Kh=e=>{const t=e.replace(/\s+/g," ").trim();return t.length<=Yh?t:`${t.slice(0,Yh)}...`},tk=e=>e==="pending"||e==="in_progress"||e==="completed"||e==="blocked",nk=new Set(["completed","error","cancelled","failed"]),rk=1500,sk=120,ok=(e,t)=>{var n,r;return(r=(n=Qa(e)(ae.getState()))==null?void 0:n[t])==null?void 0:r.status},Xh=e=>e?nk.has(e):!1,ak=(e,t,n,r)=>{const s=r==null?void 0:r.trim();return s?`${e}:${s}`:`${e}:stats:${t}:${n}`},Ni=e=>{const t=e.trim().toLowerCase();return t==="memory_note"||t==="session_note"},ik=()=>{const e=er;return typeof e.getInstance=="function"?e.getInstance():new er},lk=e=>{if(typeof e.pre_permission_mode!="string"||typeof e.entered_at!="string")return null;const t=e.status;return t!=="exploring"&&t!=="designing"&&t!=="reviewing"&&t!=="finalizing"&&t!=="awaiting_approval"?null:{entered_at:e.entered_at,pre_permission_mode:e.pre_permission_mode,plan_file_path:e.plan_file_path??null,status:t}};function ck(){const{message:e}=Dn.useApp(),{addMessage:t,applyAgentEvent:n,markStreamStarted:r,updateTokenUsage:s,setTruncationInfo:o,updateSession:a,updateMessage:i,setTaskList:c,loadTaskList:d,updateTaskListDelta:h,setEvaluationState:m,applyChildProgress:g,persistSessionTitle:y,refreshChatsNow:x,setPendingQuestion:S,clearPendingQuestion:_}=ae(Wa(j=>({addMessage:j.addMessage,applyAgentEvent:j.applyAgentEvent,markStreamStarted:j.markStreamStarted,updateTokenUsage:j.updateTokenUsage,setTruncationInfo:j.setTruncationInfo,updateSession:j.updateSession,updateMessage:j.updateMessage,setTaskList:j.setTaskList,loadTaskList:j.loadTaskList,updateTaskListDelta:j.updateTaskListDelta,setEvaluationState:j.setEvaluationState,applyChildProgress:j.applyChildProgress,persistSessionTitle:j.persistSessionTitle,refreshChatsNow:j.refreshChatsNow,setPendingQuestion:j.setPendingQuestion,clearPendingQuestion:j.clearPendingQuestion}))),E=b.useRef(null);E.current||(E.current=ik());const T=b.useRef(new Set),P=b.useRef(new Map),C=b.useRef(new Map),A=b.useRef(new Map),I=b.useRef(new Map),O=b.useRef(new Map),$=b.useRef(new Map),B=b.useRef(new Map),te=b.useRef(new Map),H=b.useRef(new Map),L=b.useRef(new Map),Z=b.useRef(new Map),D=b.useRef(new Map),F=b.useRef(new Set),de=b.useRef(new Map),Q=b.useCallback(j=>{const ie=de.current.get(j);ie!=null&&ie.timer&&clearTimeout(ie.timer),de.current.delete(j)},[]),ge=b.useCallback(j=>{const ie=P.current.get(j);ie&&(clearTimeout(ie),P.current.delete(j))},[]),G=b.useCallback(j=>{const ie=C.current.get(j);ie!=null&&ie.timer&&clearTimeout(ie.timer),C.current.delete(j)},[]),ce=b.useCallback((j,ie)=>{var ot;const me=ae.getState(),Me=(ot=me.executionBySession)==null?void 0:ot[j];Re("[SSE]","cleanupChat",{sessionId:j,opts:ie??null,generation:(Me==null?void 0:Me.generation)??null,phase:(Me==null?void 0:Me.phase)??null,backendRunId:(Me==null?void 0:Me.backendRunId)??null,shouldObserve:ar(j)(me)}),Q(j),ge(j),ie!=null&&ie.clearTitleRetry&&G(j),F.current.delete(j),I.current.delete(j);for(const[Ft,Vt]of L.current.entries())Ft.startsWith(`${j}:`)&&(Vt.timer&&clearTimeout(Vt.timer),L.current.delete(Ft));const Ue=O.current.get(j);if(!Ue){ie!=null&&ie.clearDraft&&(zt.clear(j,`streaming-${j}`),zt.clear(j,`streaming-reasoning-${j}`),zt.clear(j,`streaming-status-${j}`),Yc(j),Uh(j),Hh(j));return}O.current.delete(j),Ue.controller.abort(),zt.forceFlush();const St=$.current.get(Ue.sessionId);St?(ie!=null&&ie.clearDraft&&(zt.clear(St.sessionId,St.messageId),zt.clear(St.sessionId,St.reasoningMessageId),zt.clear(St.sessionId,St.statusMessageId)),$.current.delete(Ue.sessionId)):ie!=null&&ie.clearDraft&&(zt.clear(j,`streaming-${j}`),zt.clear(j,`streaming-reasoning-${j}`),zt.clear(j,`streaming-status-${j}`)),ie!=null&&ie.clearDraft&&(Yc(j),Uh(j),Hh(j))},[ge,Q,G]),ve=b.useCallback((j,ie)=>{const me=`${j}:${ie}`,Me=L.current.get(me);Me&&(Me.timer&&clearTimeout(Me.timer),L.current.delete(me),qh(j,ie,Me.content),g(j,ie,{status:"running",outputPreview:Me.content,lastEventAt:Me.lastEventAt}))},[g]),ue=b.useCallback((j,ie,me,Me)=>{const Ue=`${j}:${ie}`,St=L.current.get(Ue);St!=null&&St.timer&&clearTimeout(St.timer);const ot=setTimeout(()=>{ve(j,ie)},sk);L.current.set(Ue,{content:me,lastEventAt:Me,timer:ot})},[ve]),he=b.useCallback(async j=>{const ie=j.trim();if(ie&&!T.current.has(ie)&&!ae.getState().taskLists[ie]){T.current.add(ie);try{await d(ie)}catch(me){console.warn(`[useAgentEventSubscription] Failed to recover task list baseline for ${ie}:`,me)}finally{T.current.delete(ie)}}},[d]),le=b.useCallback((j,ie,me,Me)=>{var Vt,At;const Ue=ak(j,ie,me,Me);if(A.current.get(j)===Ue)return!1;const ot=(Vt=ae.getState().executionBySession)==null?void 0:Vt[j],Ft=(ot==null?void 0:ot.phase)==="waiting_user_answer"||((At=ot==null?void 0:ot.interaction)==null?void 0:At.pendingQuestion)!=null;return A.current.set(j,Ue),!Ft},[]),we=b.useCallback((j,ie)=>{I.current.get(j)!==ie&&(I.current.set(j,ie),r(j,ie))},[r]),Le=b.useCallback(j=>{var mn;const ie=ae.getState(),me=Dt(j)(ie)??0,Me=(mn=ie.executionBySession)==null?void 0:mn[j];Re("[SSE]","startSubscription",{sessionId:j,generation:me,phase:(Me==null?void 0:Me.phase)??null,backendRunId:(Me==null?void 0:Me.backendRunId)??null,shouldObserve:ar(j)(ie)}),Q(j),G(j);const Ue=new AbortController;O.current.set(j,{sessionId:j,controller:Ue,generation:me,streamEnded:!1});const St=`streaming-${j}`,ot=`streaming-reasoning-${j}`,Ft=`streaming-status-${j}`,Vt=Wh(j),At=zt.getLatest(Ft);$.current.set(j,{sessionId:j,messageId:St,content:Vt.content,reasoningMessageId:ot,reasoningContent:Vt.reasoningContent,statusMessageId:Ft,status:At??""});const Mt=N=>{const re=$.current.get(j);if(!re)return;const W=(N??"").trim();if(!W){if(!re.status)return;re.status="",zt.clear(re.sessionId,re.statusMessageId);return}re.status!==W&&(re.status=W,zt.publish({sessionId:re.sessionId,messageId:re.statusMessageId,content:re.status}))},wn=()=>{var at;const N=de.current.get(j),re=(N==null?void 0:N.attempt)??0,W=Math.min(5e3,250*Math.pow(2,re)),Ae=ae.getState(),qe=(at=Ae.executionBySession)==null?void 0:at[j];Re("[SSE]","scheduleReconnect",{sessionId:j,generation:me,attempt:re,delayMs:W,phase:(qe==null?void 0:qe.phase)??null,backendRunId:(qe==null?void 0:qe.backendRunId)??null,shouldObserve:ar(j)(Ae),terminalEventSeen:kt}),ce(j,{clearDraft:!1});const Ne=setTimeout(()=>{var ht,Qe,_e,$e,Ke;de.current.delete(j);const vt=ae.getState();if(!ar(j)(vt)){Re("[SSE]","scheduleReconnect.skipNotBusy",{sessionId:j,generation:me,phase:((Qe=(ht=vt.executionBySession)==null?void 0:ht[j])==null?void 0:Qe.phase)??null,backendRunId:(($e=(_e=vt.executionBySession)==null?void 0:_e[j])==null?void 0:$e.backendRunId)??null});return}const lt=vt.chats.find(Lt=>Lt.id===j),Rt=(Ke=lt==null?void 0:lt.id)==null?void 0:Ke.trim();if(!Rt){Re("[SSE]","scheduleReconnect.skipMissingSession",{sessionId:j,generation:me});return}Re("[SSE]","scheduleReconnect.restart",{sessionId:Rt,generation:me}),Le(Rt)},W);de.current.set(j,{attempt:re+1,timer:Ne})};let kt=!1,_n=!1;const pn=250,On=[1200,3e3],Mn=new Set(["New Session","新建会话","新建會話","Nouvelle session","新しいセッション","नया सत्र"]),Ot=N=>{const re=(N||"").trim();return!re||Mn.has(re)?!0:re.startsWith("New Session - ")||re.startsWith("New Session with ")||re.startsWith("New session - ")||re.startsWith("New session with ")?re.replace(/^New Session - /,"").replace(/^New Session with /,"").replace(/^New session - /,"").replace(/^New session with /,"").trim().length>0:!1},tn=()=>{const N=ae.getState();if((Dt(j)(N)??0)!==me||ar(j)(N))return!1;const W=N.chats.find(Ae=>Ae.id===j);return!W||W.isRunning?!1:Ot(W.title)&&(W.titleVersion??0)===0},Cn=()=>{if(!tn()){G(j);return}const N=C.current.get(j),re=(N==null?void 0:N.attempt)??0;if(re>=On.length){G(j);return}G(j);const W=On[re],Ae=setTimeout(()=>{C.current.delete(j),(async()=>{if(!tn()){G(j);return}try{await x()}catch(qe){console.warn(`[useAgentEventSubscription] Title refresh retry failed for session ${j}:`,qe)}finally{tn()?Cn():G(j)}})()},W);C.current.set(j,{attempt:re+1,timer:Ae})},ye=()=>{const N=O.current.get(j);!N||N.controller!==Ue||N.streamEnded||(N.streamEnded=!0,as("markStreamEnded",j,"generation:",N.generation,"terminal:",kt))},We=()=>{const N=B.current.get(j);return((N==null?void 0:N.children.size)??0)>0},Te=()=>kt&&!We(),Fe=()=>{const N=O.current.get(j);N&&(zt.clear(j,`streaming-${j}`),zt.clear(j,`streaming-reasoning-${j}`),zt.clear(j,`streaming-status-${j}`),Yc(j),$.current.delete(N.sessionId))},qt=async()=>{ge(j);try{await x()}catch(Ne){console.warn(`[useAgentEventSubscription] High-priority refresh failed while settling parent ${j}:`,Ne)}const N=B.current.get(j)??{children:new Set,parentDone:!1};if(!N.parentDone||N.children.size>0)return;const re=O.current.get(j);if(re&&(re.controller!==Ue||re.generation!==me))return;const Ae=ae.getState().chats.find(Ne=>Ne.id===j);if(!!(Ae!=null&&Ae.isRunning)){G(j);return}tn()?Cn():G(j),ce(j,{clearDraft:!0})},$n=()=>{ge(j);const N=setTimeout(()=>{P.current.delete(j),qt()},pn);P.current.set(j,N)},yt=()=>{const N=B.current.get(j)??{children:new Set},re=new Set(N.children);if(B.current.set(j,{children:re,parentDone:!0}),re.size===0){$n();return}Fe()},De=E.current;De&&De.subscribeToEvents(j,{onToken:N=>{we(j,me);const re=$.current.get(j);re&&(Mt(null),re.content+=N,NC(re.sessionId,N),zt.publish({sessionId:re.sessionId,messageId:re.messageId,content:N,transient:!0}))},onReasoningToken:N=>{we(j,me);const re=$.current.get(j);re&&(re.reasoningContent+=N,zC(re.sessionId,N),zt.publish({sessionId:re.sessionId,messageId:re.reasoningMessageId,content:N,transient:!0}))},onToolStart:(N,re,W)=>{var Rt,ht;n(j,{type:"tool_start",tool_call_id:N,tool_name:re},me);const Ae=$.current.get(j),qe=(Ae==null?void 0:Ae.content)||"",Ne=(Ae==null?void 0:Ae.reasoningContent)||"",at=qe.trim().length>0,vt=Ne.trim().length>0;if(at||vt){const Qe=ae.getState().chats.find(Lt=>Lt.id===j),_e=(Rt=Qe==null?void 0:Qe.messages)==null?void 0:Rt[Qe.messages.length-1],$e=typeof((ht=_e==null?void 0:_e.metadata)==null?void 0:ht.reasoning)=="string"?_e.metadata.reasoning:"";(_e==null?void 0:_e.role)==="assistant"&&(_e==null?void 0:_e.type)==="text"&&typeof(_e==null?void 0:_e.content)=="string"&&_e.content===qe&&$e===Ne||t(j,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:qe,createdAt:new Date().toISOString(),metadata:{sessionId:j,model:"agent",...vt?{reasoning:Ne}:{}}}),Ae&&(Ae.content="",Ae.reasoningContent="",BC(Ae.sessionId,{content:"",reasoningContent:""}),Ae.status&&(Ae.status="",zt.clear(Ae.sessionId,Ae.statusMessageId)))}Z.current.set(N,re);const Tt=re.trim().toLowerCase();Ni(re)?Mt("memory_updating"):Mt(`tool_running:${Tt||"tool"}`);const lt=crypto.randomUUID();D.current.set(N,lt),t(j,{id:lt,role:"assistant",type:"tool_call",toolCalls:[{toolCallId:N,toolName:re,parameters:W||{},streamingOutput:""}],metadata:{},createdAt:new Date().toISOString()})},onToolToken:(N,re)=>{var W;if(n(j,{type:"tool_token",tool_call_id:N,content:re},me),!Z.current.has(N)){const Ae=ae.getState().chats.find(Ne=>Ne.id===j),qe=((W=Ae==null?void 0:Ae.messages)==null?void 0:W.slice().reverse().find(Ne=>"type"in Ne&&Ne.type==="tool_call"&&Array.isArray(Ne.toolCalls)&&Ne.toolCalls.some(at=>at.toolCallId===N)))??null;if(qe&&"toolCalls"in qe&&Array.isArray(qe.toolCalls)){const Ne=qe.toolCalls.find(at=>at.toolCallId===N);Ne&&(Z.current.set(N,Ne.toolName),D.current.set(N,qe.id))}}qC(j,N,re)},onToolComplete:(N,re)=>{n(j,{type:"tool_complete",tool_call_id:N},me);const W=Z.current.get(N)||"unknown";Kc(j,N,"completed"),Z.current.delete(N),D.current.delete(N);const Ae=W.trim().toLowerCase(),qe=$.current.get(j);(Ni(W)?(qe==null?void 0:qe.status)==="memory_updating":!!(qe!=null&&qe.status&&qe.status.includes(Ae)))&&Mt(null);const at=(re==null?void 0:re.display_preference)||"Default";t(j,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:W,toolCallId:N,result:{tool_name:W,result:(re==null?void 0:re.result)??"",display_preference:at},isError:!(re!=null&&re.success),createdAt:new Date().toISOString()})},onToolError:(N,re)=>{n(j,{type:"tool_error",tool_call_id:N},me);const W=Z.current.get(N)||"unknown";Kc(j,N,"error"),Z.current.delete(N),D.current.delete(N),Mt(null),t(j,{id:crypto.randomUUID(),role:"assistant",type:"tool_result",toolName:W,toolCallId:N,result:{tool_name:W,result:re,display_preference:"Default"},isError:!0,createdAt:new Date().toISOString()})},onToolLifecycle:(N,re,W,Ae,qe,Ne,at)=>{if(W==="begin"){const vt=(re||"").trim().toLowerCase();Ni(re||"")?Mt("memory_updating"):Mt(`tool_running:${vt||"tool"}`),Ne===!1&&Fi({title:Ct.t("app.notifications.toolApproval.title",{tool:re||Ct.t("app.notifications.toolApproval.unknownTool")}),body:Ct.t("app.notifications.toolApproval.body",{tool:re||""}),sessionId:j,eventType:"tool_approval",eventId:N})}if(W==="finished"||W==="error"||W==="cancelled"){Kc(j,N,W==="finished"?"completed":"error");const vt=D.current.get(N);if(vt){const ht=ae.getState().chats.find($e=>$e.id===j),Qe=ht==null?void 0:ht.messages.find($e=>$e.id===vt),_e=Qe&&"metadata"in Qe?Qe.metadata??{}:{};i(j,vt,{metadata:{..._e,elapsed_ms:Ae,is_mutating:qe,...at?{summary:at}:{}}})}const Tt=(re||"").trim().toLowerCase(),lt=$.current.get(j);(Ni(re||"")?(lt==null?void 0:lt.status)==="memory_updating":!!(lt!=null&&lt.status&&lt.status.includes(Tt)))&&Mt(null)}},onContextCompressionStatus:(N,re)=>{if(re==="started"){Mt("context_compacting");return}if(re==="degraded_sections"){Mt("context_compaction_degraded");return}if(re==="failed"){Mt("context_compaction_failed");return}Mt(null)},onTokenBudgetUpdated:N=>{const re=py(N);if(!re)return;s(j,re),o(j,N.truncation_occurred,N.segments_removed);const W=ae.getState().chats.find(Ae=>Ae.id===j);W&&a(j,{config:{...W.config,tokenUsage:re,truncationOccurred:N.truncation_occurred,segmentsRemoved:N.segments_removed}})},onContextSummarized:N=>{Mt(null),e.info(Ct.t("app.notifications.conversationSummarized",{messages:N.messages_summarized,tokens:N.tokens_saved.toLocaleString()}),5)},onContextPressureNotification:(N,re,W)=>{re==="critical"?(e.error(W,6),Fi({title:Ct.t("app.notifications.contextPressure.title"),body:W,sessionId:j,eventType:"context_pressure"})):e.warning(W,5)},onTaskListUpdated:N=>{N.session_id&&c(N.session_id,N)},onTaskListItemProgress:N=>{if(N.session_id){if(!ae.getState().taskLists[N.session_id]){he(N.session_id);return}h(N.session_id,N)}},onTaskListCompleted:(N,re,W,Ae)=>{le(N,re,W,Ae)&&e.success(Ct.t("app.notifications.allTasksCompleted",{rounds:re,toolCalls:W}),3)},onTaskEvaluationStarted:(N,re)=>{m(N,{isEvaluating:!0,reasoning:null,timestamp:Date.now()}),e.info(Ct.t("app.notifications.evaluatingTasks",{count:re}),2)},onTaskEvaluationCompleted:(N,re,W)=>{const Ae=Kh(W);m(N,{isEvaluating:!1,reasoning:re>0?Ae:null,timestamp:Date.now()}),re>0?e.success(Ct.t("app.notifications.evaluationCompleteUpdated",{count:re}),3):e.info(Ct.t("app.notifications.evaluationCompleteNoUpdates"),2)},onComplete:()=>{if(_n){kt=!0,Mt(null),zt.forceFlush();return}kt=!0,n(j,{type:"complete"},me);const N=Ue,re=()=>{const W=O.current.get(j);return W!=null&&(W.controller!==N||W.generation!==me)};(async()=>{var Tt,lt,Rt;if(Mt(null),zt.forceFlush(),_(j),re())return;const W=$.current.get(j),Ae=Wh(j),qe=Ae.content||(W==null?void 0:W.content)||"",Ne=Ae.reasoningContent||(W==null?void 0:W.reasoningContent)||"",at=qe.trim().length>0,vt=Ne.trim().length>0;if(at||vt){const ht=ae.getState().chats.find(Ke=>Ke.id===j),Qe=(Tt=ht==null?void 0:ht.messages)==null?void 0:Tt[ht.messages.length-1],_e=typeof((lt=Qe==null?void 0:Qe.metadata)==null?void 0:lt.reasoning)=="string"?Qe.metadata.reasoning:"";(Qe==null?void 0:Qe.role)==="assistant"&&(Qe==null?void 0:Qe.type)==="text"&&typeof(Qe==null?void 0:Qe.content)=="string"&&Qe.content===qe&&_e===Ne||await t(j,{id:`assistant-${Date.now()}`,role:"assistant",type:"text",content:qe,createdAt:new Date().toISOString(),metadata:{sessionId:j,model:"agent",...vt?{reasoning:Ne}:{}}})}if(!re()&&(await ae.getState().loadChatHistory(j,{mode:"monotonic",retries:4,retryDelayMs:200,waitForAssistant:!0}),!re())){if(vt){const ht=ae.getState().chats.find($e=>$e.id===j),Qe=[...(ht==null?void 0:ht.messages)||[]].reverse().find($e=>($e==null?void 0:$e.role)==="assistant"&&($e==null?void 0:$e.type)==="text"),_e=typeof((Rt=Qe==null?void 0:Qe.metadata)==null?void 0:Rt.reasoning)=="string"&&Qe.metadata.reasoning.trim().length>0;Qe!=null&&Qe.id&&!_e&&i(j,Qe.id,{metadata:{...Qe.metadata||{},reasoning:Ne}})}re()||yt()}})().catch(W=>{console.warn(`[useAgentEventSubscription] Completion finalization failed for session ${j}:`,W),re()||yt()})},onCancelled:async N=>{kt=!0,n(j,{type:"cancelled",message:N},me),Mt(null),_(j),yt()},onError:async N=>{kt=!0,n(j,{type:"error",message:N},me),Mt(null);try{const re=Hu(N)?Yu(N):N;await t(j,{id:`error-${Date.now()}`,role:"assistant",type:"text",content:`❌ **Error**: ${re}`,createdAt:new Date().toISOString(),finishReason:"error"})}catch(re){console.warn(`[useAgentEventSubscription] Failed to append error message for session ${j}:`,re)}finally{yt()}},onSessionTitleUpdated:N=>{ju(N,ae.getState())},onSessionPinnedUpdated:N=>{ju(N,ae.getState())},onPlanModeEntered:N=>{const re=N.session_id||j,W=lk(N);if(!W){x();return}a(re,{planMode:W})},onPlanModeExited:N=>{const re=N.session_id||j;a(re,{planMode:null}),x()},onPlanFileUpdated:N=>{const re=N.session_id||j,W=ae.getState().chats.find(qe=>qe.id===re),Ae=W==null?void 0:W.planMode;Ae?a(re,{planMode:{...Ae,plan_file_path:N.plan_file_path??Ae.plan_file_path??null,status:N.status==="exploring"||N.status==="designing"||N.status==="reviewing"||N.status==="finalizing"||N.status==="awaiting_approval"?N.status:Ae.status}}):x()},onSubAgentStarted:(N,re,W)=>{const Ae=B.current.get(N)??{children:new Set,parentDone:!1},qe=new Set(Ae.children);qe.add(re),B.current.set(N,{children:qe,parentDone:Ae.parentDone}),g(N,re,{title:W,status:"pending",lastEventAt:new Date().toISOString()}),W&&W.trim()&&y(re,W).catch(Ne=>{console.warn(`[useAgentEventSubscription] Failed to persist sub-agent title for ${re}:`,Ne)}),x()},onSubAgentEvent:(N,re,W)=>{var qe;if(W.type==="task_list_updated"&&W.task_list){const Ne=W.task_list.session_id||N;c(Ne,W.task_list);return}if(W.type==="task_list_item_progress"){const Ne=W.session_id||N;if(typeof W.item_id=="string"&&tk(W.status)&&typeof W.tool_calls_count=="number"&&typeof W.version=="number"){if(!ae.getState().taskLists[Ne]){he(Ne);return}h(Ne,{session_id:Ne,item_id:W.item_id,status:W.status,tool_calls_count:W.tool_calls_count,version:W.version})}return}if(W.type==="task_evaluation_started"){const Ne=W.session_id||N;m(Ne,{isEvaluating:!0,reasoning:null,timestamp:Date.now()});return}if(W.type==="task_evaluation_completed"){const Ne=W.session_id||N,at=W.updates_count??0;m(Ne,{isEvaluating:!1,reasoning:at>0?Kh(W.reasoning??""):null,timestamp:Date.now()});return}const Ae=(qe=Qa(N)(ae.getState()))==null?void 0:qe[re];if(!Xh(Ae==null?void 0:Ae.status)){if(W.type==="runner_progress"){const Ne=typeof W.round_count=="number"?W.round_count:Ae==null?void 0:Ae.roundCount,at=`${N}:${re}`;if(typeof Ne=="number"&&H.current.get(at)===Ne)return;typeof Ne=="number"&&H.current.set(at,Ne),g(N,re,{status:"running",roundCount:Ne,lastEventAt:new Date().toISOString()});return}if(W.type==="token"&&typeof W.content=="string"){const Ne=`${N}:${re}`,at=L.current.get(Ne),vt=KC(N,re),lt=(((at==null?void 0:at.content)??vt.outputPreview??(Ae==null?void 0:Ae.outputPreview)??"")+W.content).slice(-2e3);qh(N,re,lt),ue(N,re,lt,new Date().toISOString())}else g(N,re,{status:"running",lastEventAt:new Date().toISOString()})}},onSubAgentHeartbeat:(N,re,W)=>{if(Xh(ok(N,re)))return;const Ae=`${N}:${re}`,qe=te.current.get(Ae)??0,Ne=Date.parse(W||"")||Date.now();Ne-qe<rk||(te.current.set(Ae,Ne),g(N,re,{status:"running",lastHeartbeatAt:W}))},onSubAgentCompleted:(N,re,W,Ae)=>{var vt;const qe=B.current.get(N)??{children:new Set,parentDone:!1},Ne=new Set(qe.children);Ne.delete(re),B.current.set(N,{children:Ne,parentDone:qe.parentDone}),ve(N,re),YC(N,re);const at=`${N}:${re}`;if(te.current.delete(at),H.current.delete(at),g(N,re,{status:W,error:Ae,lastEventAt:new Date().toISOString()}),W==="completed"){const Tt=(vt=Qa(N)(ae.getState()))==null?void 0:vt[re];Fi({title:Ct.t("app.notifications.backgroundTask.completedTitle"),body:Tt!=null&&Tt.title?Ct.t("app.notifications.backgroundTask.completedBody",{title:Tt.title}):Ct.t("app.notifications.backgroundTask.completedFallback"),sessionId:N,eventType:"subagent_completed",eventId:re})}qe.parentDone&&Ne.size===0&&$n(),x()},onNeedClarification:N=>{const re=N.session_id||j;re===j&&(_n=!0),as("event.needClarification",{sessionId:j,targetSessionId:re,subscriptionGeneration:me,currentStoreGeneration:Dt(re)(ae.getState()),toolCallId:N.tool_call_id??null,questionPreview:(N.question||"").slice(0,120)}),S(re,{question:N.question||"",options:N.options||[],allowCustom:N.allow_custom??!0,toolCallId:N.tool_call_id??null});const W=N.question||"",Ae=W.length>80?`${W.slice(0,80)}...`:W;Fi({title:Ct.t("app.notifications.clarification.title"),body:Ae||Ct.t("app.notifications.clarification.fallbackBody"),sessionId:re,eventType:"clarification",eventId:N.tool_call_id??void 0})},onExecutionStarted:(N,re)=>{Re("[SSE]","event.executionStarted",{sessionId:j,generation:me,runId:N}),as("event.executionStarted.compareGeneration",{sessionId:j,subscriptionGeneration:me,currentStoreGeneration:Dt(j)(ae.getState()),runId:N}),n(j,{type:"execution_started",run_id:N},me)},onRunnerProgress:()=>{}},Ue).then(()=>{var W,Ae,qe,Ne,at,vt,Tt,lt;if(ye(),as("streamEnded",j,"generation:",me,"aborted:",Ue.signal.aborted,"terminal:",kt),Re("[SSE]","streamEnded",{sessionId:j,generation:me,aborted:Ue.signal.aborted,terminalEventSeen:kt,shouldSkipReconnectAfterTerminal:Te(),phase:((Ae=(W=ae.getState().executionBySession)==null?void 0:W[j])==null?void 0:Ae.phase)??null,backendRunId:((Ne=(qe=ae.getState().executionBySession)==null?void 0:qe[j])==null?void 0:Ne.backendRunId)??null}),Ue.signal.aborted||Te())return;const N=O.current.get(j);if(N&&(N.controller!==Ue||N.generation!==me))return;const re=ar(j)(ae.getState());if(Re("[SSE]","streamEnded.busyCheck",{sessionId:j,generation:me,stillBusy:re,phase:((vt=(at=ae.getState().executionBySession)==null?void 0:at[j])==null?void 0:vt.phase)??null,backendRunId:((lt=(Tt=ae.getState().executionBySession)==null?void 0:Tt[j])==null?void 0:lt.backendRunId)??null}),!re){ce(j,{clearDraft:!0});return}wn()}).catch(N=>{var Ae,qe,Ne,at,vt,Tt,lt,Rt;if(ye(),Re("[SSE]","streamError",{sessionId:j,generation:me,aborted:Ue.signal.aborted,terminalEventSeen:kt,error:N,phase:((qe=(Ae=ae.getState().executionBySession)==null?void 0:Ae[j])==null?void 0:qe.phase)??null,backendRunId:((at=(Ne=ae.getState().executionBySession)==null?void 0:Ne[j])==null?void 0:at.backendRunId)??null}),Ue.signal.aborted)return;if(ek(N)){if(Te())return;const ht=ar(j)(ae.getState());if(Re("[SSE]","streamError.abortError.busyCheck",{sessionId:j,generation:me,stillBusy:ht,phase:((Tt=(vt=ae.getState().executionBySession)==null?void 0:vt[j])==null?void 0:Tt.phase)??null,backendRunId:((Rt=(lt=ae.getState().executionBySession)==null?void 0:lt[j])==null?void 0:Rt.backendRunId)??null}),!ht){ce(j,{clearDraft:!0});return}wn();return}if(Te())return;console.error("[useAgentEventSubscription] Subscription error:",N),ce(j,{clearDraft:!0});const re=Dt(j)(ae.getState()),W=ar(j)(ae.getState());re===me&&W&&n(j,{type:"error",message:String(N)},me)})},[t,ce,ge,_,Q,G,he,e,le,y,x,m,S,n,we,c,o,i,a,h,s,g,ve,ue]),Ie=b.useCallback(j=>{const ie=j.trim();if(!ie)return;F.current.delete(ie);const me=O.current.get(ie),Me=Dt(ie)(ae.getState()),Ue=me&&me.generation!==Me;if(as("ensureSubscription.check",{sessionId:ie,existingGeneration:(me==null?void 0:me.generation)??null,currentGeneration:Me,hasExisting:!!me,aborted:(me==null?void 0:me.controller.signal.aborted)??null,streamEnded:(me==null?void 0:me.streamEnded)??null,generationMismatch:Ue}),(me==null?void 0:me.sessionId)===ie&&!me.controller.signal.aborted&&!me.streamEnded&&!Ue){as("skipExistingSubscription",ie,"generation:",me.generation,"streamEnded:",me.streamEnded);return}me&&(as("restartStaleSubscription",ie,"generation:",me.generation,"currentGeneration:",Me,"aborted:",me.controller.signal.aborted,"streamEnded:",me.streamEnded,"generationMismatch:",Ue),ce(ie,{clearDraft:!1})),Le(ie)},[ce,Le]),Je=ae(Wa(j=>Object.entries(j.executionBySession).filter(([ie])=>ar(ie)(j)).map(([ie,me])=>{const Me=me.phase==="starting"?"starting":me.phase==="settling"?"settling":"live";return`${ie}\0${me.generation}\0${Me}`}).sort()));b.useEffect(()=>{const j=Je.map(me=>{const Me=me.indexOf("\0");return Me>=0?me.slice(0,Me):me}),ie=new Set(j);Re("[SSE]","effect.busySessions",{busySessionIds:j}),j.forEach(me=>Ie(me));for(const me of Array.from(O.current.keys()))ie.has(me)||ce(me,{clearDraft:!0});for(const me of Array.from(F.current))ie.has(me)||F.current.delete(me)},[Je,Ie,ce]),b.useEffect(()=>ae.subscribe(j=>j.chats,()=>{if(F.current.size!==0)for(const j of Array.from(F.current)){if(!ar(j)(ae.getState())){F.current.delete(j);continue}Ie(j)}}),[Ie]),b.useEffect(()=>{const j=O.current;return()=>{const ie=Array.from(j.keys());for(const me of ie)ce(me,{clearDraft:!0,clearTitleRetry:!0})}},[ce])}const Nr=(e,t,n)=>Math.max(t,Math.min(n,e)),zi=(e,t)=>t==="horizontal"?e.clientWidth:e.clientHeight,Bi=(e,t,n)=>{const r=Math.max(0,Math.round(e)),s=Math.max(0,Math.round(t)),o=Math.max(0,Math.round(n));return s+o>r?{minFirst:0,maxFirst:r,appliedMinFirst:0,appliedMinSecond:0}:{minFirst:s,maxFirst:r-o,appliedMinFirst:s,appliedMinSecond:o}},ef=({layout:e,first:t,second:n,sizesPx:r,defaultSplitRatio:s=.5,minFirstPx:o=0,minSecondPx:a=0,handleSizePx:i=6,disabled:c=!1,onResizeEnd:d,style:h,className:m})=>{const g=b.useRef(null),y=b.useRef(null),[x,S]=b.useState(null),[_,E]=b.useState(0),[T,P]=b.useState(null),C=b.useMemo(()=>{if(!r)return null;const he=Number(r[0]);return Number.isFinite(he)?he:null},[r]),A=b.useMemo(()=>{if(!r)return null;const he=Number(r[1]);return Number.isFinite(he)?he:null},[r]),I=b.useMemo(()=>{if(!r)return null;const he=Number(r[0]),le=Number(r[1]);if(!Number.isFinite(he)||!Number.isFinite(le))return null;const we=he+le;return we<=0||he<=0||le<=0?null:Nr(he/we,0,1)},[r]),O=b.useMemo(()=>C===null||A===null?null:A<=0?Math.max(0,C):null,[C,A]),$=b.useMemo(()=>C===null||A===null?null:A>0&&C<=0?A:null,[C,A]);b.useLayoutEffect(()=>{const he=g.current;he&&E(zi(he,e))},[e]),b.useEffect(()=>{const he=g.current;if(!he)return;const le=()=>{const we=zi(he,e);E(Le=>Le===we?Le:we)};if(le(),typeof ResizeObserver<"u"){const we=new ResizeObserver(le);return we.observe(he),()=>we.disconnect()}return window.addEventListener("resize",le),()=>window.removeEventListener("resize",le)},[e]),b.useEffect(()=>{if(I!==null){P(I);return}P(he=>he??Nr(s,.1,.9))},[s,I]);const B=b.useMemo(()=>Bi(_,o,a),[_,o,a]),te=Nr(s,.1,.9),H=T??te,L=_>0?Math.round(_*H):null,Z=x??(I!==null?L:null)??O??($!==null&&_>0?_-$:null)??L??0,D=_>0?Nr(Z,B.minFirst,B.maxFirst):Math.max(0,Math.round(Z)),F=b.useCallback(he=>{if(c)return;const le=g.current;if(!le)return;he.preventDefault(),he.stopPropagation();const we=e==="horizontal"?he.clientX:he.clientY,Le=zi(le,e),Ie=Bi(Le,o,a),Je=Nr(D||Math.round(Le*te),Ie.minFirst,Ie.maxFirst);y.current={pointerId:he.pointerId,startPos:we,startFirstPx:Je,containerSize:Le};try{he.currentTarget.setPointerCapture(he.pointerId)}catch{}},[c,D,te,e,o,a]),de=b.useCallback(he=>{const le=y.current;if(!le||he.pointerId!==le.pointerId)return;he.preventDefault(),he.stopPropagation();const Le=(e==="horizontal"?he.clientX:he.clientY)-le.startPos,Ie=le.containerSize,Je=Bi(Ie,o,a),j=Nr(Math.round(le.startFirstPx+Le),Je.minFirst,Je.maxFirst);S(j)},[e,o,a]),Q=b.useCallback(he=>{const le=y.current;if(!le||le.pointerId!==he)return;const we=g.current,Le=we?zi(we,e):le.containerSize,Ie=x??le.startFirstPx,Je=Bi(Le,o,a),j=Nr(Ie,Je.minFirst,Je.maxFirst),ie=Math.max(0,Le-j);S(null),Le>0&&P(Nr(j/Le,0,1)),y.current=null,d==null||d([j,ie])},[e,x,o,a,d]),ge=b.useCallback(he=>{he.preventDefault(),he.stopPropagation(),Q(he.pointerId)},[Q]),G=b.useCallback(he=>{he.preventDefault(),he.stopPropagation(),Q(he.pointerId)},[Q]),ce=e==="horizontal",ve=c?"default":ce?"col-resize":"row-resize",ue=Math.max(0,Math.round(i));return l.jsxs("div",{ref:g,className:m,style:{display:"flex",flexDirection:ce?"row":"column",height:"100%",minHeight:0,minWidth:0,width:"100%",position:"relative",...h},children:[l.jsx("div",{style:{flex:`0 0 ${D}px`,minWidth:ce?B.appliedMinFirst:0,minHeight:ce?0:B.appliedMinFirst,overflow:"hidden",display:"flex"},children:l.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:t})}),l.jsx("div",{style:{flex:"1 1 auto",minWidth:ce?B.appliedMinSecond:0,minHeight:ce?0:B.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})}),ue>0?l.jsx("div",{role:"separator","aria-orientation":ce?"vertical":"horizontal",onPointerDown:F,onPointerMove:de,onPointerUp:ge,onPointerCancel:G,style:{position:"absolute",top:ce?0:`${D-ue/2}px`,left:ce?`${D-ue/2}px`:0,width:ce?`${ue}px`:"100%",height:ce?"100%":`${ue}px`,cursor:ve,touchAction:"none",background:"transparent",zIndex:5}}):null]})},Xu="chat-toggle-batch-export-selection",Vu="chat-open-inspector",Gu="chat-focus-input",Ju="chat-pending-question-resolved",Ml=["image/jpeg","image/jpg","image/png","image/gif","image/webp","image/bmp"],Vh=10*1024*1024,uk=2048,dk=2048,fk=.82,hk=512*1024,pk=e=>Ml.includes(e.type)?e.size>Vh?{isValid:!1,error:`Image size too large: ${(e.size/1024/1024).toFixed(2)}MB. Maximum size: ${Vh/1024/1024}MB`}:{isValid:!0}:{isValid:!1,error:`Unsupported image type: ${e.type}. Supported types: ${Ml.join(", ")}`},mk=e=>new Promise((t,n)=>{const r=new Image;r.onload=()=>t(r),r.onerror=()=>n(new Error("Failed to load image")),r.src=e}),Gh=e=>new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{typeof r.result=="string"?t(r.result):n(new Error("Failed to convert file to base64"))},r.onerror=()=>n(new Error("Failed to read file")),r.readAsDataURL(e)}),gk=e=>URL.createObjectURL(e),yk=(e,t,n,r)=>{let{width:s,height:o}=t;if(s>n||o>r){const i=s/o;s>o?(s=n,o=Math.round(s/i)):(o=r,s=Math.round(o*i))}e.width=s,e.height=o;const a=e.getContext("2d");a&&(a.fillStyle="#ffffff",a.fillRect(0,0,s,o),a.drawImage(t,0,0,s,o))},vk=async(e,t)=>{const n=await mk(e),r=document.createElement("canvas");return yk(r,n,uk,dk),xk(r,t)},bk=async e=>{const t=pk(e);if(!t.isValid)throw new Error(t.error);const n=gk(e);try{let r;if(e.type==="image/gif"||e.size<hk)r=await Gh(e);else try{r=await vk(n,fk)}catch(o){console.warn("[imageUtils] Failed to re-encode image, using original:",o),r=await Gh(e)}const s=`img_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;return{file:e,base64:r,preview:n,id:s,name:e.name,size:e.size,type:e.type}}catch(r){throw Zy(n),r}},Sk=async e=>{const t=Array.from(e),n=[];for(const r of t)try{const s=await bk(r);n.push(s)}catch(s){console.error(`Failed to process image ${r.name}:`,s)}return n},xk=(e,t=.8)=>e.toDataURL("image/jpeg",t),Zy=e=>{e.startsWith("blob:")&&URL.revokeObjectURL(e)},Jh=e=>{e.forEach(t=>Zy(t.preview))},wk=e=>{if(e===0)return"0 Bytes";const t=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,r)).toFixed(2))+" "+n[r]},_k=e=>!e.files||e.files.length===0?!1:Array.from(e.files).some(t=>Ml.includes(t.type)),Ck=e=>e.files?Array.from(e.files).filter(t=>Ml.includes(t.type)):[],{Text:kk,Title:Tk}=ft,Pk=({visible:e,images:t,currentIndex:n=0,onClose:r,onDownload:s})=>{const{token:o}=ut.useToken(),{t:a}=Ge(),[i,c]=b.useState(n);if(!t||t.length===0)return null;const d=t[i],h=()=>{if(s&&d)s(d);else{const y=document.createElement("a");y.href=d.base64,y.download=d.name,document.body.appendChild(y),y.click(),document.body.removeChild(y)}},m=()=>{c(y=>y>0?y-1:t.length-1)},g=()=>{c(y=>y<t.length-1?y+1:0)};return l.jsxs(rl,{open:e,onCancel:r,footer:null,width:"90vw",style:{top:20},styles:{body:{padding:0,height:"80vh",display:"flex",flexDirection:"column"}},closeIcon:l.jsx(As,{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(Tk,{level:5,style:{margin:0},children:d.name}),l.jsxs(kk,{type:"secondary",style:{fontSize:o.fontSizeSM},children:[wk(d.size)," • ",d.type,t.length>1&&` • ${a("chat.imagePreview.counter",{current:i+1,total:t.length})}`]})]}),l.jsxs(He,{children:[t.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(je,{icon:l.jsx(Eu,{}),onClick:m,disabled:t.length<=1}),l.jsx(je,{icon:l.jsx(Jr,{}),onClick:g,disabled:t.length<=1})]}),l.jsx(je,{icon:l.jsx(io,{}),onClick:h,children:a("common.download")})]})]})}),l.jsxs("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center",background:o.colorBgLayout,position:"relative",overflow:"hidden"},children:[t.length===1?l.jsx("img",{src:d.preview,alt:d.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}}):l.jsx(Tx,{dots:!1,arrows:!0,infinite:!0,afterChange:c,style:{width:"100%",height:"100%"},children:t.map(y=>l.jsx("div",{children:l.jsx("div",{style:{height:"70vh",display:"flex",justifyContent:"center",alignItems:"center"},children:l.jsx("img",{src:y.preview,alt:y.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"}})})},y.id))}),t.length>1&&l.jsxs(l.Fragment,{children:[l.jsx(je,{type:"primary",shape:"circle",icon:l.jsx(Eu,{}),onClick:m,style:{position:"absolute",left:20,top:"50%",transform:"translateY(-50%)",zIndex:10}}),l.jsx(je,{type:"primary",shape:"circle",icon:l.jsx(Jr,{}),onClick:g,style:{position:"absolute",right:20,top:"50%",transform:"translateY(-50%)",zIndex:10}})]})]}),t.length>1&&l.jsx("div",{style:{padding:o.paddingSM,borderTop:`1px solid ${o.colorBorder}`,background:o.colorBgContainer,display:"flex",gap:o.marginXS,overflowX:"auto",maxHeight:80},children:t.map((y,x)=>l.jsx("div",{style:{minWidth:60,height:60,border:x===i?`2px solid ${o.colorPrimary}`:`1px solid ${o.colorBorder}`,borderRadius:o.borderRadius,overflow:"hidden",cursor:"pointer",opacity:x===i?1:.7},onClick:()=>c(x),children:l.jsx("img",{src:y.preview,alt:y.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},y.id))})]})},zo=e=>/\s/.test(e),Ek=e=>{if(!e)return[{text:"",type:"text"}];const t=[],n=e.length;let r=0;for(;r<n;){const s=e[r],o=r>0?e[r-1]:"",a=s==="/"&&(r===0||zo(o)),i=s==="@"&&(r===0||zo(o));if(!a&&!i){let h=r;for(;r<n&&!((e[r]==="/"||e[r]==="@")&&(r===0||zo(e[r-1])));)r+=1;t.push({text:e.slice(h,r),type:"text"});continue}let c=r+1;for(;c<n&&!zo(e[c]);)c+=1;const d=e.slice(r,c);a?c===n||zo(e[c])?t.push({text:d,type:"workflow"}):t.push({text:d,type:"text"}):i&&t.push({text:d,type:"file"}),r=c}return t.length>0?t:[{text:"",type:"text"}]},Mk=/(\/)([a-zA-Z0-9_-]*)$/,Ak=e=>{if(!e)return{command:null,isTriggerActive:!1,searchText:""};const t=e.match(Mk);if(!t)return{command:null,isTriggerActive:!1,searchText:""};const n=t[2]||"",r=!n.includes(" ")&&t.index!==void 0;return{command:n||null,isTriggerActive:r,searchText:n}},Rk=/@([a-zA-Z0-9._\-\/\\]*)$/,jk=e=>{if(!e)return{isTriggerActive:!1,searchText:"",tokenStart:null};const t=e.match(Rk);if(!t||t.index===void 0)return{isTriggerActive:!1,searchText:"",tokenStart:null};const n=t[1]||"",r=t.index;return{isTriggerActive:!n.includes(" "),searchText:n,tokenStart:r}},Ik=(e,t=80)=>{const[n,r]=b.useState(e);return b.useEffect(()=>{const s=window.setTimeout(()=>{r(e)},t);return()=>{window.clearTimeout(s)}},[e,t]),n},{Text:Ok}=ft,$k=({visible:e,token:t})=>{const{t:n}=Ge();return e?l.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:t.colorPrimaryBg,borderRadius:t.borderRadius,zIndex:10,pointerEvents:"none"},children:l.jsxs(He,{direction:"vertical",align:"center",children:[l.jsx(Px,{style:{fontSize:32,color:t.colorPrimary}}),l.jsx(Ok,{style:{color:t.colorPrimary,fontWeight:500},children:n("chat.input.dropImagesHere")})]})}):null},{Text:Qh}=ft,Lk=({images:e,token:t,allowImages:n,onPreview:r,onClear:s})=>{const{t:o}=Ge();return!n||e.length===0?null:l.jsx("div",{style:{marginBottom:t.marginSM,padding:`${t.paddingXXS}px ${t.paddingXS}px`,borderRadius:999,border:`1px solid ${t.colorBorderSecondary}`,background:t.colorFillSecondary},children:l.jsxs(Ee,{align:"center",wrap:"wrap",gap:t.marginXS,children:[l.jsx(Qh,{type:"secondary",style:{fontSize:t.fontSizeSM,minWidth:"fit-content"},children:e.length>1?o("chat.input.imageCountPlural",{count:e.length}):o("chat.input.imageCountSingular",{count:e.length})}),e.slice(0,3).map(a=>l.jsx("div",{style:{position:"relative",width:32,height:32,borderRadius:999,overflow:"hidden",border:`1px solid ${t.colorBorderSecondary}`,cursor:"pointer"},onClick:()=>r(a),children:l.jsx("img",{src:a.preview,alt:a.name,style:{width:"100%",height:"100%",objectFit:"cover"}})},a.id)),e.length>3&&l.jsx(Qh,{type:"secondary",style:{fontSize:t.fontSizeSM},children:o("chat.input.moreImages",{count:e.length-3})}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(As,{}),onClick:s,style:{marginLeft:"auto",minWidth:"auto",padding:"0 4px",height:24},title:o("chat.input.clearAllImages")})]})})},{TextArea:Dk}=Rs,Fk=({value:e,placeholder:t,disabled:n,token:r,highlightSegments:s,textAreaRef:o,highlightOverlayRef:a,onChange:i,onKeyDown:c,onPaste:d,onScrollSync:h})=>{const m=e.length>0&&s.some(S=>S.type!=="text"),g="6px 4px",y=1.65,x=n?r.colorTextDisabled:r.colorText;return l.jsxs("div",{style:{position:"relative",flex:1},children:[m?l.jsxs("div",{ref:a,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,right:0,bottom:0,padding:g,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflow:"hidden",pointerEvents:"none",color:"transparent",fontSize:r.fontSize,lineHeight:y,fontFamily:"inherit",fontWeight:400,letterSpacing:"normal",transform:"translate(0, 0)",zIndex:0},children:[s.map((S,_)=>{let E;return S.type==="workflow"?E={backgroundColor:r.colorPrimaryBg,color:"transparent",WebkitTextFillColor:"transparent",fontWeight:400,textDecoration:"underline",textDecorationStyle:"dotted",textDecorationColor:r.colorPrimary}:S.type==="file"&&(E={backgroundColor:r.colorSuccessBg,color:"transparent",WebkitTextFillColor:"transparent"}),l.jsx("span",{style:E,children:S.text},`segment-${_}`)}),e.endsWith(`
39
+ `)?`
40
+ `:null]}):null,l.jsx(Dk,{"data-testid":"chat-input",ref:o,value:e,onChange:S=>i(S.target.value),onKeyDown:c,onPaste:d,placeholder:t,disabled:n,autoSize:{minRows:3,maxRows:8},variant:"borderless",onScroll:h,className:"lotus-message-input-field",style:{resize:"none",flex:1,fontSize:r.fontSize,padding:g,lineHeight:y,border:"none",outline:"none",background:"transparent",color:x,WebkitTextFillColor:x,caretColor:x,position:"relative",zIndex:1,whiteSpace:"pre-wrap",wordBreak:"break-word",overflowWrap:"anywhere",overflowY:"auto"}})]})},Nk=({allowImages:e,disabled:t,isInputLocked:n,token:r,fileInputRef:s,onFileInputChange:o,onFileReferenceButtonClick:a,extraControl:i})=>{const{t:c}=Ge();return l.jsxs(Ee,{align:"center",style:{minWidth:0,gap:0},children:[e&&l.jsxs(l.Fragment,{children:[l.jsx("input",{ref:s,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:o}),l.jsx(je,{type:"text",icon:l.jsx(Rd,{}),onClick:()=>{var d;return(d=s.current)==null?void 0:d.click()},disabled:t||n,size:"small",style:{minWidth:36,padding:"0 8px",height:36,borderRadius:18,color:r.colorTextSecondary},title:c("chat.input.addAttachments"),"aria-label":c("chat.input.addAttachments")})]}),a&&l.jsx(je,{type:"text",icon:l.jsx(Sl,{}),onClick:a,disabled:t||n,size:"small",style:{minWidth:36,padding:"0 8px",height:36,borderRadius:18,color:r.colorTextSecondary},title:c("chat.input.referenceWorkspaceFiles"),"aria-label":c("chat.input.referenceWorkspaceFiles")}),i]})},zk=({allowRetry:e,hasMessages:t,isInputLocked:n,canCancel:r,disabled:s,onRetry:o,onCancel:a,onSubmit:i,value:c,images:d,isOverCharLimit:h,token:m,statusIndicator:g,submitButtonLabel:y})=>{const{t:x}=Ge(),S=!c.trim()&&d.length===0,_=r??n,E=n,T=n||s||!o,P=y??x("chat.actions.sendMessage");return l.jsxs(Ee,{align:"center",style:{flex:"0 0 auto",gap:m.marginXS},children:[g?l.jsx("span",{style:{flex:"0 0 auto"},children:g}):null,e&&t&&l.jsx(ao,{trigger:["click"],menu:{items:[{key:"regenerate",label:x("chat.actions.regenerate"),icon:l.jsx(jd,{})},{key:"error_retry",label:x("chat.actions.retryFailed"),icon:l.jsx(Vg,{})}],onClick:({key:C})=>o==null?void 0:o(C)},disabled:T,children:l.jsx(je,{"data-testid":"regenerate-button",type:"text",icon:l.jsx(Ex,{spin:E}),disabled:T,title:x("chat.actions.retryOptions"),"aria-label":x("chat.actions.retryOptions"),size:"small",className:"lotus-secondary-button",style:{minWidth:38,padding:"0 8px",height:38,width:38,borderRadius:19,color:m.colorTextSecondary}})}),l.jsx(je,{"data-testid":_?"cancel-button":"send-button",type:"primary",icon:_?l.jsx(Mx,{}):l.jsx(Ax,{}),onClick:_?a:i,loading:_&&!a,disabled:_?!a||s:n||S||s||h,size:"small",danger:_,className:_?"message-input-send-button":"message-input-send-button lotus-primary-cta",style:{minWidth:50,padding:0,height:50,width:50,borderRadius:25,display:"inline-flex",alignItems:"center",justifyContent:"center",background:_?void 0:"linear-gradient(135deg, var(--lotus-primary) 0%, var(--lotus-accent-secondary) 100%)",border:_?void 0:"none",boxShadow:_?void 0:"var(--lotus-send-btn-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:"scale(1)"},title:_?x("chat.actions.cancelRequest"):P,"aria-label":_?x("chat.actions.cancelRequest"):P})]})},{Text:Zh}=ft,Bk=({charCount:e,maxCharCount:t,isOverCharLimit:n,isNearCharLimit:r,isProcessingAttachments:s,token:o})=>{const{t:a}=Ge(),i=typeof t=="number"&&Number.isFinite(t)&&t>0;return!s&&!r&&!n?null:l.jsxs(l.Fragment,{children:[i&&l.jsx(Ee,{justify:"flex-end",style:{marginTop:o.marginXXS},children:l.jsxs(Zh,{type:n?"danger":r?"warning":"secondary",style:{fontSize:o.fontSizeSM},children:[e.toLocaleString()," / ",t.toLocaleString()]})}),s&&l.jsxs(He,{size:"small",style:{marginTop:o.marginXS},children:[l.jsx(lo,{size:"small"}),l.jsx(Zh,{type:"secondary",children:a("chat.input.processingFiles")})]})]})},Wk=({onFiles:e,mode:t="images"})=>{const[n,r]=b.useState(!1),s=b.useCallback(i=>{var d,h;i.preventDefault(),i.stopPropagation(),(t==="images"?_k(i.dataTransfer):((h=(d=i.dataTransfer)==null?void 0:d.files)==null?void 0:h.length)>0)&&r(!0)},[t]),o=b.useCallback(i=>{i.preventDefault(),i.stopPropagation(),r(!1)},[]),a=b.useCallback(i=>{if(i.preventDefault(),i.stopPropagation(),r(!1),t==="images"){const d=Ck(i.dataTransfer);d.length>0&&e(d);return}const c=Array.from(i.dataTransfer.files||[]);c.length>0&&e(c)},[t,e]);return{isDragOver:n,handleDragOver:s,handleDragLeave:o,handleDrop:a}},Uk=e=>{const{message:t}=Dn.useApp(),[n,r]=b.useState([]),[s,o]=b.useState(!1),[a,i]=b.useState(0),c=b.useCallback(async g=>{if(e)try{const y=await Sk(g);y.length>0&&(r(x=>[...x,...y]),t.success(`Added ${y.length} image(s)`))}catch(y){t.error(`Failed to process images: ${y}`)}},[e,t]),d=b.useCallback(g=>{const y=n.find(x=>x.id===g);y&&Jh([y]),r(x=>x.filter(S=>S.id!==g))},[n]),h=b.useCallback(g=>{const y=n.findIndex(x=>x.id===g.id);i(y>=0?y:0),o(!0)},[n]),m=b.useCallback(()=>{Jh(n),r([])},[n]);return{images:n,setImages:r,previewModalVisible:s,setPreviewModalVisible:o,previewImageIndex:a,handleImageFiles:c,handleRemoveImage:d,handleImagePreview:h,clearImages:m}},qk=({onImages:e,onAttachments:t,allowImages:n})=>({handlePaste:b.useCallback(s=>{if(!s.clipboardData)return;const o=Array.from(s.clipboardData.items),a=[],i=[];o.forEach(c=>{if(c.kind==="file"){const d=c.getAsFile();if(!d)return;d.type.startsWith("image/")?a.push(d):i.push(d)}}),a.length>0&&n&&(s.preventDefault(),e(a)),i.length>0&&t&&(s.preventDefault(),t(i))},[n,e,t])}),yn=[];for(let e=0;e<256;++e)yn.push((e+256).toString(16).slice(1));function Hk(e,t=0){return(yn[e[t+0]]+yn[e[t+1]]+yn[e[t+2]]+yn[e[t+3]]+"-"+yn[e[t+4]]+yn[e[t+5]]+"-"+yn[e[t+6]]+yn[e[t+7]]+"-"+yn[e[t+8]]+yn[e[t+9]]+"-"+yn[e[t+10]]+yn[e[t+11]]+yn[e[t+12]]+yn[e[t+13]]+yn[e[t+14]]+yn[e[t+15]]).toLowerCase()}const Yk=new Uint8Array(16);function Kk(){return crypto.getRandomValues(Yk)}function ep(e,t,n){return crypto.randomUUID?crypto.randomUUID():Xk(e)}function Xk(e,t,n){var s;e=e||{};const r=e.random??((s=e.rng)==null?void 0:s.call(e))??Kk();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,Hk(r)}const Vk=["text/","application/json","application/xml"],Gk=[".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"],Jk=200*1024,ev=e=>e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`,tp=e=>{const t=e.toLowerCase();return Gk.some(n=>t.endsWith(n))},Qk=e=>!e.type&&tp(e.name)?!0:Vk.some(t=>e.type.startsWith(t))||tp(e.name),Zk=e=>new Promise((t,n)=>{const r=new FileReader;r.onerror=()=>n(r.error),r.onload=()=>t(r.result),r.readAsText(e)}),np=async(e,t)=>{const n=Jk,r=[],s=[];for(const o of e)try{if(Qk(o)&&o.size<=n){const a=await Zk(o);r.push({id:ep(),file:o,name:o.name,size:o.size,type:o.type||"text/plain",kind:"text",content:a,preview:a.length>400?`${a.slice(0,400)}…`:a,lastModified:o.lastModified})}else r.push({id:ep(),file:o,name:o.name,size:o.size,type:o.type||"application/octet-stream",kind:"binary",preview:`(${ev(o.size)}) Preview unavailable for this file type.`,lastModified:o.lastModified})}catch(a){console.error("[fileUtils] Failed to process file",o.name,a),s.push(`Failed to process ${o.name}: ${a.message}`)}return{processed:r,errors:s}},eT=e=>{const t=[],n=[];return e.forEach(r=>{r.type.startsWith("image/")?t.push(r):n.push(r)}),{images:t,others:n}},tT=e=>e.length===0?"":e.map(t=>{const n=`### File: ${t.name}`,r=`(_${ev(t.size)}_, ${t.type||"unknown"})`;return t.kind==="text"&&t.content?`${n}
41
+ ${r}
42
+
43
+ \`\`\`
44
+ ${t.content}
45
+ \`\`\``:`${n}
46
+ ${r}
47
+
48
+ > Preview unavailable for this file type.`}).join(`
49
+
50
+ `),nT=({allowImages:e,onAttachmentsAdded:t,messageApi:n})=>{const[r,s]=b.useState(!1),{images:o,setImages:a,previewModalVisible:i,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:h,handleImagePreview:m,clearImages:g}=Uk(e),y=b.useCallback(async C=>{if(!C||C.length===0)return;const{images:A,others:I}=eT(C);if(A.length>0&&await h(A),I.length>0&&t){s(!0);const{processed:O,errors:$}=await np(I);O.length>0&&(t(O),n.success(Ct.t("chat.input.filesAdded",{count:O.length}))),$.forEach(B=>n.error(B)),s(!1)}},[h,n,t]),{isDragOver:x,handleDragOver:S,handleDragLeave:_,handleDrop:E}=Wk({onFiles:y,mode:"any"}),{handlePaste:T}=qk({onImages:h,onAttachments:t?async C=>{s(!0);const{processed:A,errors:I}=await np(C);A.length>0&&(t(A),n.success(Ct.t("chat.input.filesAttached",{count:A.length}))),I.forEach(O=>n.error(O)),s(!1)}:void 0,allowImages:e}),P=b.useCallback(C=>{const A=C.target.files;A&&A.length>0&&h(A),C.target.value=""},[h]);return{images:o,setImages:a,previewModalVisible:i,setPreviewModalVisible:c,previewImageIndex:d,handleImageFiles:h,handleImagePreview:m,clearImages:g,isProcessingAttachments:r,isDragOver:x,handleDragOver:S,handleDragLeave:_,handleDrop:E,handlePaste:T,handleFileInputChange:P}},rT=({value:e,debouncedValue:t,onWorkflowCommandChange:n,onFileReferenceChange:r,onImagesChange:s,images:o,propImages:a,setImages:i,syncOverlayScroll:c})=>{b.useEffect(()=>{c()},[e,c]),b.useEffect(()=>{n&&n(Ak(t))},[t,n]),b.useEffect(()=>{r&&r(jk(t))},[t,r]),b.useEffect(()=>{s&&s(o)},[o,s]),b.useEffect(()=>{a&&i(a)},[a,i])},sT=({value:e,images:t,isInputLocked:n,disabled:r,isWorkflowSelectorVisible:s,onChange:o,onSubmit:a,onRetry:i,onHistoryNavigate:c,validateMessage:d,isOverCharLimit:h,maxCharCount:m,messageApi:g,clearImages:y,textAreaRef:x})=>{const S=b.useCallback(()=>{const T=e.trim();if(!(!T&&t.length===0||n||r)){if(h){const P=typeof m=="number"?m.toLocaleString():"configured";g.error(Ct.t("chat.input.charLimitExceeded",{max:P}));return}if(d){const P=d(T);if(!P.isValid){g.error(P.errorMessage||Ct.t("chat.input.messageFormatInvalid"));return}}a(T,t.length>0?t:void 0),y()}},[y,r,t,h,n,m,g,a,d,e]),_=b.useCallback(T=>{if(c&&!r&&!n&&!T.shiftKey&&(T.key==="ArrowUp"||T.key==="ArrowDown")){const P=T.key==="ArrowUp"?"previous":"next",C=c(P,e);if(C!=null){T.preventDefault(),o(C),requestAnimationFrame(()=>{var I,O;const A=((O=(I=x.current)==null?void 0:I.resizableTextArea)==null?void 0:O.textArea)||null;if(A){const $=C.length;A.setSelectionRange($,$)}});return}}T.key==="Enter"&&!T.shiftKey&&!n&&!r&&!s&&(T.preventDefault(),S())},[r,S,n,s,o,c,x,e]),E=b.useCallback((T="regenerate")=>{n||r||!i||i(T)},[r,n,i]);return{handleKeyDown:_,handleSubmit:S,handleRetry:E}},oT=dt.memo(({value:e,onChange:t,onSubmit:n,interaction:r,placeholder:s,disabled:o=!1,images:a,onImagesChange:i,allowImages:c=!0,isWorkflowSelectorVisible:d=!1,textAreaRef:h,statusIndicator:m,validateMessage:g,onAttachmentsAdded:y,onWorkflowCommandChange:x,onFileReferenceChange:S,onFileReferenceButtonClick:_,maxCharCount:E,leftControlsExtra:T,submitButtonLabel:P})=>{const{t:C}=Ge(),{isStreaming:A,isInputLocked:I=A,canCancel:O,hasMessages:$,allowRetry:B=!0,onRetry:te,onCancel:H,onHistoryNavigate:L}=r,Z=b.useRef(null),D=b.useRef(null),F=h||D,de=b.useRef(null),{token:Q}=ut.useToken(),ge=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",[G,ce]=Rx.useMessage(),ve=e.length,ue=typeof E=="number"&&Number.isFinite(E)&&E>0,he=ue?ve>E:!1,le=ue?!he&&ve>=E*.9:!1,{images:we,setImages:Le,previewModalVisible:Ie,setPreviewModalVisible:Je,previewImageIndex:j,handleImagePreview:ie,clearImages:me,isProcessingAttachments:Me,isDragOver:Ue,handleDragOver:St,handleDragLeave:ot,handleDrop:Ft,handlePaste:Vt,handleFileInputChange:At}=nT({allowImages:c,onAttachmentsAdded:y,messageApi:G}),Mt=Ik(e,80),wn=b.useMemo(()=>Ek(e),[e]),kt=b.useCallback(()=>{var ye,We;const Ot=(We=(ye=F.current)==null?void 0:ye.resizableTextArea)==null?void 0:We.textArea;if(!Ot||!de.current)return;const tn=Ot.scrollTop,Cn=Ot.scrollLeft;de.current.style.transform=`translate(${-Cn}px, ${-tn}px)`},[F]);rT({value:e,debouncedValue:Mt,onWorkflowCommandChange:x,onFileReferenceChange:S,onImagesChange:i,images:we,propImages:a,setImages:Le,syncOverlayScroll:kt});const{handleKeyDown:_n,handleSubmit:pn,handleRetry:On}=sT({value:e,images:we,isInputLocked:I,disabled:o,isWorkflowSelectorVisible:d,onChange:t,onSubmit:n,onRetry:te,onHistoryNavigate:L,validateMessage:g,isOverCharLimit:he,maxCharCount:E,messageApi:G,clearImages:me,textAreaRef:F}),Mn=s??C("chat.input.placeholder");return l.jsxs(l.Fragment,{children:[ce,l.jsxs("div",{className:`message-input-container lotus-message-input-shell ${Ue?"is-drag-over":""}`,role:"group","aria-label":C("chat.input.messageComposer","Message composer"),style:{position:"relative",border:`1px solid ${Ue?"var(--lotus-input-border-active)":"var(--lotus-input-border)"}`,borderRadius:26,background:Ue?"var(--lotus-input-bg-active)":"var(--lotus-input-bg)",backdropFilter:ge?"none":"blur(18px)",WebkitBackdropFilter:ge?"none":"blur(18px)",boxShadow:"var(--lotus-input-shadow)",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",width:"100%",padding:`${Q.paddingSM}px`,overflow:"hidden"},onDragOver:St,onDragLeave:ot,onDrop:Ft,children:[l.jsx(Lk,{images:we,token:Q,allowImages:c,onPreview:ie,onClear:me}),l.jsx($k,{visible:Ue,token:Q}),l.jsxs(Ee,{vertical:!0,style:{gap:Q.marginXS,minHeight:132,width:"100%"},children:[l.jsx(Fk,{value:e,placeholder:Mn,disabled:o,token:Q,highlightSegments:wn,textAreaRef:F,highlightOverlayRef:de,onChange:t,onKeyDown:_n,onPaste:Vt,onScrollSync:kt}),l.jsxs(Ee,{align:"center",justify:"space-between",gap:Q.marginSM,wrap:"wrap",style:{rowGap:Q.marginXS},children:[l.jsx(Ee,{align:"center",gap:Q.marginXS,wrap:"wrap",style:{minWidth:0,flex:"1 1 260px"},children:l.jsx(Nk,{allowImages:c,disabled:o,isInputLocked:I,token:Q,fileInputRef:Z,onFileInputChange:At,onFileReferenceButtonClick:_,extraControl:T})}),l.jsx(zk,{allowRetry:B,hasMessages:$,isStreaming:A,isInputLocked:I,canCancel:O,disabled:o,onRetry:On,onCancel:H,onSubmit:pn,value:e,images:we,isOverCharLimit:he,token:Q,statusIndicator:m,submitButtonLabel:P})]})]})]}),l.jsx(Bk,{charCount:ve,maxCharCount:E,isOverCharLimit:he,isNearCharLimit:le,isProcessingAttachments:Me,token:Q}),c&&l.jsx(Pk,{visible:Ie,images:we,currentIndex:j,onClose:()=>Je(!1)})]})}),{Text:rp}=ft,{useToken:aT}=ut,iT=({text:e,onClose:t})=>{const{token:n}=aT(),{t:r}=Ge(),o=(e.length>150?e.substring(0,147)+"...":e).replace(/^> |^>/gm,"");return l.jsx("div",{style:{marginBottom:n.marginSM,background:n.colorFillSecondary,borderRadius:999,border:`1px solid ${n.colorBorderSecondary}`,padding:`${n.paddingXXS}px ${n.paddingSM}px`},children:l.jsxs(He,{style:{width:"100%",justifyContent:"space-between",alignItems:"flex-start"},children:[l.jsxs("div",{style:{flex:1},children:[l.jsx(rp,{style:{fontSize:n.fontSizeSM,color:n.colorPrimary},children:r("chat.input.referencing")}),l.jsx(rp,{style:{fontSize:n.fontSizeSM,color:n.colorTextSecondary,marginLeft:n.marginSM},ellipsis:!0,children:o})]}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(As,{}),onClick:t,style:{marginLeft:n.marginXS,color:n.colorTextSecondary,borderRadius:999}})]})})},tv="mermaid_enhancement_enabled",lT=()=>localStorage.getItem(tv)!=="false",m$=e=>{localStorage.setItem(tv,e.toString())},cT=()=>`
51
+
52
+ ## 📊 Visual Representation Guidelines
53
+
54
+ When explaining concepts, processes, relationships, or data structures, use Mermaid diagrams to enhance understanding. Choose appropriate diagram types:
55
+
56
+ - **Flowcharts** (graph TD/LR) - processes, workflows, decision trees
57
+ - **Sequence Diagrams** - API interactions, communication flows
58
+ - **Class Diagrams** - object relationships, data models
59
+ - **State Diagrams** - state machines, status flows
60
+ - **Gantt Charts** - project timelines
61
+ - **ER Diagrams** - database schemas
62
+ - **Git Graphs** - version control workflows
63
+
64
+ **Syntax Notes:**
65
+ - Mermaid diagram definitions MUST be inside a fenced code block (never inline). Example:
66
+ \`\`\`mermaid
67
+ graph TD
68
+ A --> B
69
+ \`\`\`
70
+ - Avoid nested brackets: use \`A[Text]\` or \`A(Text)\`, NOT \`A[Text()]\`
71
+ - Use HTML entities for special chars: &#35; for #, &#59; for ;, &#34; for quotes
72
+ - Keep participant names simple (no spaces): \`participant UserService\`
73
+ - Arrow syntax: \`-->\` (solid), \`-.->\` (dotted), \`==>\` (thick), \`-->|label|\` (labeled)
74
+
75
+ Include relevant diagrams when discussing architecture, workflows, data flow, or relationships.`,Qu="task_enhancement_enabled",sp="todo_enhancement_enabled",uT=e=>e==="false",dT=()=>{let e=localStorage.getItem(Qu);if(e===null){const t=localStorage.getItem(sp);t!==null&&(e=t,localStorage.setItem(Qu,t),localStorage.removeItem(sp))}return!uT(e)},g$=e=>{localStorage.setItem(Qu,e.toString())},fT=()=>`
76
+
77
+ ## Task Management Rules
78
+
79
+ Use the Task tool for non-trivial or multi-step tasks.
80
+ Task updates are shared across the current root session and all child sessions.
81
+ Keep exactly one item in \`in_progress\` state whenever possible.
82
+ Update Task immediately when a step starts or completes; do not batch status updates.
83
+ When marking a task as completed, always fill in the \`summary\` field with a concise description of what was accomplished.
84
+ Do not use Markdown checkbox lists as a substitute for Task.
85
+ Skip Task only for simple one-step requests.
86
+ Use SubAgent only when the user explicitly requests delegated/parallel sub-agent work.
87
+ `,nv=()=>{if(typeof window<"u"&&"__TAURI__"in window){const e=(navigator.platform??"").toLowerCase();if(e.startsWith("win"))return"windows";if(e.startsWith("mac"))return"macos";if(e.startsWith("linux"))return"linux"}if(typeof navigator<"u"){const e=(navigator.userAgent??"").toLowerCase();if(e.includes("windows"))return"windows";if(e.includes("mac"))return"macos";if(e.includes("linux"))return"linux"}return"unknown"},hT=e=>{switch(e){case"windows":return"Windows";case"macos":return"macOS";case"linux":return"Linux";default:return"Unknown OS"}},pT=()=>{const e=nv(),n=`## 🖥️ Operating System Information
88
+
89
+ You are running on **${hT(e)}**.`;return e==="windows"?n+`
90
+
91
+ ### Windows-Specific Notes:
92
+
93
+ - **Configuration Directory**: Application configuration and data are stored in the user's home directory at \`.bamboo\` (e.g., \`C:\\Users\\[Username]\\.bamboo\`)
94
+ - Note: When accessing this directory programmatically, use the expanded path rather than the ~ shorthand
95
+
96
+ - **Home Directory Paths with Tilde (~)**: On Windows, a leading tilde (~) in file paths is NOT automatically expanded to the user's home directory by most Windows-native APIs and tools. When you encounter paths starting with ~, ~/, or ~\\, you MUST replace them with the Windows absolute path before using them.
97
+ - Example: \`~/Documents/file.txt\` should be expanded to \`C:\\Users\\[Username]\\Documents\\file.txt\`
98
+ - Use tools to get the actual home directory path when needed
99
+ - Note: This applies to leading tilde only. Windows short paths like \`C:\\PROGRA~1\\\` are valid and should NOT be modified
100
+ - Some Windows shells (PowerShell, Git Bash, WSL) may support ~ in specific contexts, but Windows-native paths/APIs generally do not
101
+
102
+ - **Path Separators**: Windows uses backslashes (\\) as path separators, but forward slashes (/) are also accepted in most contexts
103
+ - **Case Insensitivity**: Windows file paths are case-insensitive (file.txt and FILE.TXT refer to the same file)
104
+ - **Drive Letters**: Windows paths typically start with a drive letter (C:\\, D:\\, etc.)`:e==="macos"?n+`
105
+
106
+ ### macOS-Specific Notes:
107
+
108
+ - **Configuration Directory**: Application configuration and data are stored in \`~/.bamboo\` (expands to \`/Users/[Username]/.bamboo\`)
109
+
110
+ - **File Paths**: macOS uses Unix-style paths with forward slashes (/)
111
+ - **Home Directory**: The tilde (~) expands to /Users/[Username]
112
+ - **Case Sensitivity**: macOS file system may be case-sensitive or case-insensitive depending on format (APFS is case-insensitive by default)`:e==="linux"?n+`
113
+
114
+ ### Linux-Specific Notes:
115
+
116
+ - **Configuration Directory**: Application configuration and data are stored in \`~/.bamboo\` (expands to \`/home/[username]/.bamboo\`)
117
+
118
+ - **File Paths**: Linux uses Unix-style paths with forward slashes (/)
119
+ - **Home Directory**: The tilde (~) expands to /home/[username]
120
+ - **Case Sensitivity**: Linux file systems are case-sensitive (File.txt and file.txt are different files)`:n},rv="copilot_conclusion_with_options_enhancement_enabled",sv=()=>localStorage.getItem(rv)==="true",y$=e=>{try{localStorage.setItem(rv,e.toString())}catch(t){console.error("[copilotConclusionWithOptionsEnhancement] Failed to persist setting:",t)}},mT=()=>"\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",v$=()=>["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",gT=()=>["## 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
+ `),yT=e=>e.map(n=>n.trim()).filter(n=>n.length>0).join(`
122
+
123
+ `),vT=()=>{try{return localStorage.getItem(ov)??""}catch(e){return console.error("Failed to load system prompt enhancement:",e),""}},b$=e=>{try{const t=e.trim()?e:"";localStorage.setItem(ov,t)}catch(t){console.error("Failed to save system prompt enhancement:",t)}},bT=e=>{const t=[];t.push(pT().trim()),t.push(gT().trim());const n=vT().trim();return n&&t.push(n),lT()&&t.push(cT().trim()),dT()&&t.push(fT().trim()),(e??"").trim().toLowerCase()==="copilot"&&sv()&&t.push(mT().trim()),t},ST=e=>yT(bT(e));function tf(e){const t=It(s=>s.providerConfig),n=ae(Is(e??null));return b.useMemo(()=>{var c,d,h,m,g,y,x;const s=e?(c=n==null?void 0:n.config)==null?void 0:c.model_ref:void 0,o=(d=s==null?void 0:s.model)==null?void 0:d.trim();if(o)return o;const a=e?(m=(h=n==null?void 0:n.config)==null?void 0:h.model)==null?void 0:m.trim():void 0;return a&&a!=="unknown"?a:((x=(y=(g=t.defaults)==null?void 0:g.chat)==null?void 0:y.model)==null?void 0:x.trim())||void 0},[n,t,e])}function xT(e){const t=tf(e),n=It(r=>r.providerConfig);return b.useMemo(()=>{var s,o,a;return((a=(o=(s=n.defaults)==null?void 0:s.fast)==null?void 0:o.model)==null?void 0:a.trim())||t},[n,t])}function av(e){const t=It(s=>s.isProviderModelRefEnabled),n=It(s=>s.selectedModelRef),r=It(s=>s.providerConfig.defaults);return b.useMemo(()=>{var s,o;return t()?e||n||((o=(s=r==null?void 0:r.chat)==null?void 0:s.model)!=null&&o.trim()?r.chat:null):null},[e,n,r,t])}function wT(){const e=It(t=>t.getFastModelRef);return b.useMemo(()=>e(),[e])}function _T(e){var ge;const{sessionId:t,addMessage:n,updateSession:r}=e,{modal:s,message:o}=Dn.useApp(),{t:a}=Ge(),i=b.useRef(null),c=b.useRef(null),d=b.useRef(""),h=b.useRef(new er),m=ae(G=>G.agentAvailability),g=ae(G=>G.setAgentAvailability),y=ae(G=>G.checkAgentAvailability),x=ae(G=>G.startAgentHealthCheck),S=ae(G=>G.markOptimisticStart),_=ae(G=>G.markRetryStart),E=ae(G=>G.markSettleTimeout),T=ae(G=>G.applyExecutionStarted),P=tf(t),C=It(G=>G.currentProvider),I=It(G=>G.getProviderType)(C),O=ae(G=>t&&G.chats.find(ce=>ce.id===t)||null),$=av((ge=O==null?void 0:O.config)==null?void 0:ge.model_ref);b.useEffect(()=>{x()},[x]);const B=b.useCallback(()=>{var ce;(ce=i.current)==null||ce.abort();const G=O==null?void 0:O.id;G&&h.current.stopGeneration(G).catch(ve=>{console.error("[useMessageStreaming] Failed to stop generation:",ve)})},[O==null?void 0:O.id]),te=b.useCallback(G=>{var j;const ce=ae.getState(),ue=(Array.isArray(ce.chats)?ce.chats:[]).find(ie=>ie.id===G),he=ro(G)(ce),le=he?{sessionId:G,question:he.question,options:he.options,allowCustom:he.allowCustom,toolCallId:he.toolCallId}:null,we=(j=ue==null?void 0:ue.config)==null?void 0:j.syncCursor,Le=!!le||!!(we!=null&&we.hasPendingQuestion),Ie=(le==null?void 0:le.toolCallId)??(we==null?void 0:we.pendingQuestionToolCallId)??null,Je={client_message_count:(we==null?void 0:we.messageCount)??(ue==null?void 0:ue.messageCount)??0,client_last_message_id:(we==null?void 0:we.lastMessageId)??null,client_has_pending_question:Le,client_pending_question_tool_call_id:Ie};return Re("[Streaming]","buildClientSync",{sessionId:G,generation:Dt(G)(ce),syncCursor:we??null,messageCount:(ue==null?void 0:ue.messageCount)??null,respondMode:le?{toolCallId:le.toolCallId??null,question:le.question}:null,clientSync:Je}),Je},[]),H=b.useCallback((G,ce)=>{const ve=ce.sync;if(!ve)return;const ue=ae.getState(),le=(Array.isArray(ue.chats)?ue.chats:[]).find(we=>we.id===G);le&&(Re("[Streaming]","applyExecuteSyncSnapshot",{sessionId:G,generation:Dt(G)(ae.getState()),runId:ce.run_id??null,sync:ve}),r(G,{messageCount:ve.server_message_count,config:{...le.config||{},syncCursor:{messageCount:ve.server_message_count,lastMessageId:ve.server_last_message_id??null,hasPendingQuestion:ve.has_pending_question,pendingQuestionToolCallId:ve.pending_question_tool_call_id??null}}}))},[r]),L=b.useCallback(async G=>{try{return await xt.get(`respond/${G}/pending`)}catch(ce){return console.warn(`[useMessageStreaming] Failed to fetch pending question for ${G}:`,ce),{has_pending_question:!1}}},[]),Z=b.useCallback(async(G,ce,ve)=>{var Ie,Je;Re("[Streaming]","recoverAfterNeedSync.start",{sessionId:G,generation:Dt(G)(ae.getState()),executeSync:ce,reasoningEffort:ve??null}),E(G),await ae.getState().loadChatHistory(G,{mode:"replace"});const ue=await L(G),he=ae.getState().setPendingQuestion,le=ae.getState().clearPendingQuestion;if(ue.has_pending_question){Re("[Streaming]","recoverAfterNeedSync.pendingQuestion",{sessionId:G,generation:Dt(G)(ae.getState()),pending:ue}),he(G,{question:ue.question||"",options:ue.options||[],allowCustom:ue.allow_custom??!0,toolCallId:ue.tool_call_id??null});const j=ae.getState().chats.find(ie=>ie.id===G);return j&&r(G,{config:{...j.config||{},syncCursor:{messageCount:j.messageCount??j.messages.length,lastMessageId:((Je=(Ie=j.config)==null?void 0:Ie.syncCursor)==null?void 0:Je.lastMessageId)??null,hasPendingQuestion:!0,pendingQuestionToolCallId:ue.tool_call_id??null}}}),null}if(le(G),!((ce==null?void 0:ce.has_pending_user_message)??!1))return Re("[Streaming]","recoverAfterNeedSync.noPendingUserMessage",{sessionId:G,generation:Dt(G)(ae.getState()),executeSync:ce}),null;Re("[Streaming]","recoverAfterNeedSync.retryExecute",{sessionId:G,generation:Dt(G)(ae.getState()),executeSync:ce}),S(G),await new Promise(j=>setTimeout(j,0));const Le=ve?await h.current.execute(G,void 0,ve,te(G),$??void 0):await h.current.execute(G,void 0,void 0,te(G),$??void 0);return Re("[Streaming]","recoverAfterNeedSync.retryExecute.result",{sessionId:G,generation:Dt(G)(ae.getState()),status:Le.status,runId:Le.run_id??null,sync:Le.sync??null}),H(G,Le),Le},[$,H,te,L,S,E,r]),D=b.useCallback(async(G,ce,ve)=>{var we,Le;let ue=ce;Re("[Streaming]","handleExecuteResult.start",{sessionId:G,generation:Dt(G)(ae.getState()),status:ue.status,runId:ue.run_id??null,sync:ue.sync??null}),H(G,ue);const he=2;let le=0;for(;(we=ue.sync)!=null&&we.need_sync&&le<he;){Re("[Streaming]","handleExecuteResult.needSync",{sessionId:G,generation:Dt(G)(ae.getState()),syncRecoveries:le,sync:ue.sync});const Ie=await Z(G,ue.sync,ve);if(le+=1,!Ie){E(G);return}ue=Ie,H(G,ue)}if((Le=ue.sync)!=null&&Le.need_sync){console.warn(`[useMessageStreaming] Execute remains out-of-sync after ${he} recovery attempt(s) for session ${G}.`,ue.sync),E(G);return}if(["started","already_running"].includes(ue.status)){if(ue.run_id){const Ie=Dt(G)(ae.getState());T(G,ue.run_id,Ie)}return}if(ue.status==="completed"){Re("[Streaming]","[Agent] Session already completed"),E(G);return}throw console.error("[Agent] Execute failed:",ue.status),E(G),new Error(`Execute failed: ${ue.status}`)},[H,Z,E,T]),F=b.useCallback(async(G,ce,ve,ue,he)=>{var we,Le,Ie;if(!P)throw new Error(a("chat.model.noModelSelected"));const le=new AbortController;i.current=le;try{const Je=ST(I).trim(),j=I==="copilot"&&sv(),me=(((we=O==null?void 0:O.config)==null?void 0:we.workspacePath)||"").trim().replace(/\/+$/,"").replace(/\\+$/,"");Re("[Streaming]","sendWithAgent.start",{sessionId:ce,generation:Dt(ce)(ae.getState()),userMessageId:ve.id,contentLength:G.length,imageCount:((Le=ve.images)==null?void 0:Le.length)??0,reasoningEffort:ue??null,selectedSkillCount:(he==null?void 0:he.length)??0,workspacePath:me||null,activeModel:P,activeModelRef:$??null});const Me=await h.current.sendMessage({message:G,session_id:ce,enhance_prompt:Je||void 0,copilot_conclusion_with_options_enhancement_enabled:j,workspace_path:me||void 0,selected_skill_ids:he&&he.length>0?he:void 0,images:(Ie=ve.images)==null?void 0:Ie.filter(ot=>!!ot.base64).map(ot=>({base64:ot.base64,name:ot.name,size:ot.size,type:ot.type})),model:P,...$?{model_ref:$,provider:$.provider}:{}});Re("[Streaming]","sendWithAgent.chatResponse",{sessionId:ce,generation:Dt(ce)(ae.getState()),response:Me});const{session_id:Ue}=Me;Ue!==ce&&console.warn(`[useMessageStreaming] Backend returned unexpected session_id=${Ue} for sessionId=${ce}`),Re("[Streaming]","sendWithAgent.loadHistory.beforeExecute",{sessionId:ce,generation:Dt(ce)(ae.getState())});const St=ue?await h.current.execute(ce,void 0,ue,te(ce),$??void 0):await h.current.execute(ce,void 0,void 0,te(ce),$??void 0);Re("[Streaming]","sendWithAgent.executeResponse",{sessionId:ce,generation:Dt(ce)(ae.getState()),status:St.status,runId:St.run_id??null,sync:St.sync??null}),await D(ce,St,ue)}catch(Je){throw Re("[Streaming]","sendWithAgent.error",{sessionId:ce,generation:Dt(ce)(ae.getState()),error:Je}),Je}},[P,$,te,O,C,I,t,D,a]),de=b.useCallback(async(G,ce,ve,ue)=>{if(!O){s.info({title:a("chat.streaming.noActiveChatTitle"),content:a("chat.streaming.noActiveChatSendContent")});return}if(!t){s.info({title:a("chat.streaming.noChatIdTitle"),content:a("chat.streaming.noChatIdSendContent")});return}if(!P){s.error({title:a("chat.model.noModelSelected"),content:a("chat.model.selectModelBeforeSend")});return}let he=m;if(he===null&&(he=await y()),!he){o.error(a("chat.streaming.agentUnavailable"));return}if(!P){o.error(a("chat.streaming.modelConfigNotLoaded"));return}const le=t,we=(ce==null?void 0:ce.map(Ie=>({id:Ie.id,base64:Ie.base64,name:Ie.name,size:Ie.size,type:Ie.type})))||[],Le={role:"user",content:G,id:crypto.randomUUID(),createdAt:new Date().toISOString(),images:we};Re("[Streaming]","sendMessage.localAdd.before",{sessionId:le,generation:Dt(le)(ae.getState()),userMessageId:Le.id,contentLength:G.length,imageCount:we.length,reasoningEffort:ve??null,selectedSkillCount:(ue==null?void 0:ue.length)??0}),await n(le,Le),Re("[Streaming]","sendMessage.localAdd.after",{sessionId:le,generation:Dt(le)(ae.getState()),userMessageId:Le.id}),S(le),Re("[Streaming]","sendMessage.markOptimisticStart",{sessionId:le,generation:Dt(le)(ae.getState())}),await new Promise(Ie=>setTimeout(Ie,0));try{Re("[Streaming]","[useChatStreaming] Using Agent Server"),await F(G,le,Le,ve,ue),Re("[Streaming]","sendMessage.completed",{sessionId:le,generation:Dt(le)(ae.getState()),userMessageId:Le.id})}catch(Ie){if(c.current&&zt.clear(le,c.current),c.current=null,d.current="",Ie instanceof Error&&Ie.name==="AbortError")o.info(a("chat.streaming.requestCancelled"));else{console.error("[useChatStreaming] Failed to send message:",Ie);const Je=Ie instanceof Error?Ie.message:String(Ie??"");Hu(Je)?o.error(Yu(Je)):(o.error(a("chat.streaming.sendFailed")),g(!1))}Re("[Streaming]","sendMessage.error",{sessionId:le,generation:Dt(le)(ae.getState()),error:Ie}),E(le)}finally{Re("[Streaming]","sendMessage.finally",{sessionId:le,generation:Dt(le)(ae.getState()),streamingMessageId:c.current}),i.current=null,c.current&&zt.clear(le,c.current),c.current=null,d.current=""}},[m,o,y,O,t,n,s,F,g,P,a,S,E]),Q=b.useCallback(async(G,ce="regenerate")=>{if(!O){s.info({title:a("chat.streaming.noActiveChatTitle"),content:a("chat.streaming.noActiveChatRetryContent")});return}if(!t){s.info({title:a("chat.streaming.noChatIdTitle"),content:a("chat.streaming.noChatIdRetryContent")});return}if(!P){s.error({title:a("chat.model.noModelSelected"),content:a("chat.model.selectModelBeforeRetry")});return}let ve=m;if(ve===null&&(ve=await y()),!ve){o.error(a("chat.streaming.agentUnavailable"));return}const ue=t;c.current&&zt.clear(ue,c.current),c.current=null,d.current="";try{const he=ce==="error_retry"?"error_retry":"after_last_user",le=await h.current.truncateSessionMessages(ue,{mode:he});(ce==="regenerate"||(le.messages_removed??0)>0)&&await ae.getState().loadChatHistory(ue,{mode:"replace"}),_(ue);const we=G?await h.current.execute(ue,void 0,G,te(ue),$??void 0):await h.current.execute(ue,void 0,void 0,te(ue),$??void 0);await D(ue,we,G)}catch(he){console.error("[useMessageStreaming] Retry failed:",he);const le=he instanceof Error?he.message:String(he??"");Hu(le)?o.error(Yu(le)):o.error(a("chat.streaming.retryFailed")),E(ue)}finally{i.current=null}},[P,$,m,o,te,y,O,t,D,s,a,_,E]);return{sendMessage:de,retryLastTurn:Q,cancel:B,agentAvailable:m}}const CT=e=>{const t=b.useRef(new Map),n=b.useRef(!1),[r,s]=b.useState(null);b.useEffect(()=>{s(null),n.current=!1},[e]);const o=b.useCallback(d=>{if(!e)return;const h=d.trim();if(!h)return;const m=t.current.get(e)??[];if(m[m.length-1]===h)return;const g=[...m,h].slice(-50);t.current.set(e,g),s(null),n.current=!1},[e]),a=b.useCallback((d,h)=>{if(!e)return{value:null,applied:!1};const m=t.current.get(e)??[];if(m.length===0)return{value:null,applied:!1};const g=h.trim();if(d==="previous"){if(g.length>0&&r===null)return{value:null,applied:!1};const x=r??m.length,S=Math.max(0,x-1);return S===r?{value:null,applied:!1}:(s(S),n.current=!0,{value:m[S]??null,applied:!0})}if(r===null)return{value:null,applied:!1};const y=r+1;return y>=m.length?(s(null),n.current=!0,{value:"",applied:!0}):(s(y),n.current=!0,{value:m[y]??null,applied:!0})},[e,r]),i=b.useCallback(()=>{if(n.current){n.current=!1;return}r!==null&&s(null)},[r]),c=b.useCallback(()=>{e&&(t.current.delete(e),s(null),n.current=!1)},[e]);return{recordEntry:o,navigate:a,acknowledgeManualInput:i,clearHistory:c}},Ss=class Ss{constructor(){Et(this,"cache",null);Et(this,"cacheTime",0);Et(this,"CACHE_TTL",3e4)}static getInstance(){return Ss.instance||(Ss.instance=new Ss),Ss.instance}async listCommands(t=!1){const n=Date.now();if(!t&&this.cache&&n-this.cacheTime<this.CACHE_TTL)return this.cache;try{const r=await Ve.get("commands");if(!Array.isArray(r.commands))throw new Error("Invalid command list response");return this.cache=r.commands,this.cacheTime=n,Re("[CommandService]","[CommandService] Loaded commands:",this.cache.length),this.cache}catch(r){throw console.error("[CommandService] Failed to list commands:",r),r}}async getCommand(t,n){try{return await Ve.get(`commands/${t}/${n}`)}catch(r){throw console.error(`[CommandService] Failed to get command ${t}/${n}:`,r),r}}clearCache(){this.cache=null,this.cacheTime=0}};Et(Ss,"instance");let qa=Ss;const go=e=>{if(typeof e!="string"||!e.startsWith("mcp__"))return null;const t=e.slice(5),n=t.indexOf("__");if(n<=0)return null;const r=t.slice(0,n),s=t.slice(n+2);return!r||!s?null:{serverId:r,toolName:s}},kT=({setContent:e,onWorkflowDraftChange:t,acknowledgeManualInput:n,currentSessionId:r,textAreaRef:s,content:o})=>{const[a,i]=b.useState(!1),[c,d]=b.useState(""),[h,m]=b.useState(null);b.useEffect(()=>{m(null),t==null||t(null)},[r,t]);const g=b.useCallback((A,I)=>{const O=A.trimStart(),$=`/${I}`;if(!O.startsWith($))return!1;const B=O.charAt($.length);return!B||/\s/.test(B)},[]),y=b.useCallback(()=>{m(null),t==null||t(null)},[t]),x=b.useCallback((A,I)=>{if(!g(A,I.name))return;const O=`/${I.name}`,B=A.trim().slice(O.length).trim(),te=[I.content,B].filter(Boolean).join(`
124
+
125
+ `);t==null||t({...I,content:te})},[g,t]),S=b.useCallback(A=>{n(),h&&!g(A,h.name)&&y(),h&&g(A,h.name)&&x(A,h),e(A)},[n,y,g,h,x,e]),_=b.useCallback(A=>{i(A.isTriggerActive),d(A.isTriggerActive?A.searchText:"")},[]),E=b.useCallback(async A=>{var F,de,Q,ge,G,ce;i(!1);const O=(ve=>{var le;if(ve.type!=="mcp")return ve.name;const ue=(le=ve.metadata)==null?void 0:le.originalName;if(typeof ue=="string"&&ue.trim())return ue.trim();const he=go(ve.name);return he!=null&&he.toolName?he.toolName:ve.displayName||ve.name})(A),$=(de=(F=s.current)==null?void 0:F.resizableTextArea)==null?void 0:de.textArea,B=($==null?void 0:$.selectionStart)??o.length;let te,H;const Z=o.substring(0,B).match(/\/([a-zA-Z0-9_-]*)$/);if(Z){const ve=B-Z[0].length,ue=o.substring(0,ve),he=o.substring(B);te=`${ue}/${O} ${he}`,H=`${ue}/${O} `.length}else if(o.trim()==="")te=`/${O} `,H=te.length;else{const ve=o.substring(0,B),ue=o.substring(B);te=`${ve}/${O} ${ue}`,H=`${ve}/${O} `.length}if(e(te),setTimeout(()=>{$&&($.selectionStart=H,$.selectionEnd=H,$.focus())},0),A.type!=="workflow"){const ve={id:`command-draft-${A.id}`,name:O,content:"",createdAt:new Date().toISOString(),type:A.type,displayName:A.displayName,mcpAlias:A.type==="mcp"?A.name:void 0,mcpServerId:A.type==="mcp"?(Q=A.metadata)==null?void 0:Q.serverId:void 0,mcpServerName:A.type==="mcp"?(ge=A.metadata)==null?void 0:ge.serverName:void 0,mcpOriginalName:A.type==="mcp"?(G=A.metadata)==null?void 0:G.originalName:void 0};m(ve),t==null||t(ve);return}const D=qa.getInstance();try{const ve=A.id.startsWith("workflow-")?A.id.slice(9):A.id,he=((ce=(await D.getCommand(A.type,ve)).content)==null?void 0:ce.trim())||"";if(he){const le={id:`command-draft-${A.id}`,name:A.name,content:he,createdAt:new Date().toISOString(),type:A.type,displayName:A.displayName};m(le),t==null||t(le)}else y()}catch(ve){console.error(`[InputContainer] Failed to apply command '${A.name}':`,ve),y()}},[y,t,e,o,s]),T=b.useCallback(async A=>{try{const $=(await qa.getInstance().listCommands()).find(B=>B.id===A.id&&B.type===A.type);if(!$){console.error(`[InputContainer] Command '${A.id}' of type '${A.type}' not found`),e(`/${A.name} `),y();return}await E($)}catch(I){console.error(`[InputContainer] Failed to select command '${A.name}':`,I),e(`/${A.name} `),y()}},[E,y,e]),P=b.useCallback(()=>{i(!1)},[]),C=b.useCallback(async A=>{i(!1);try{const $=(await qa.getInstance().listCommands()).find(B=>B.name===A);$?await E($):(console.error(`[InputContainer] Command '${A}' not found in auto-complete`),e(`/${A} `),y())}catch(I){console.error(`[InputContainer] Failed to load command '${A}' in auto-complete:`,I),e(`/${A} `),y()}},[E,y,e]);return{selectedCommand:h,showCommandSelector:a,commandSearchText:c,clearCommandDraft:y,matchesCommandToken:g,handleInputChange:S,handleCommandChange:_,handleCommandSelect:T,handleCommandSelectorCancel:P,handleAutoComplete:C,setShowCommandSelector:i}};class TT{constructor(t={}){Et(this,"cache",null);Et(this,"options");Et(this,"validateWorkspacePath",this.validatePath.bind(this));Et(this,"getRecentWorkspaces",this.getRecent.bind(this));Et(this,"addRecentWorkspace",this.addRecent.bind(this));Et(this,"removeRecentWorkspace",this.removeRecent.bind(this));Et(this,"clearRecentWorkspaces",this.clearRecent.bind(this));Et(this,"getWorkspaceSuggestions",this.getCombinedSuggestions.bind(this));Et(this,"getHealthStatus",this.healthCheck.bind(this));this.options={maxRecentWorkspaces:t.maxRecentWorkspaces??10,cacheTimeoutMs:t.cacheTimeoutMs??5*60*1e3,requestTimeoutMs:t.requestTimeoutMs??1e4}}async validatePath(t){return Ve.post("workspace/validate",{path:t})}async getRecent(){var t;if(this.isCacheValid())return this.cache.recentWorkspaces;try{const n=await Ve.get("workspace/recent",{signal:AbortSignal.timeout(this.options.requestTimeoutMs)});return this.cache={recentWorkspaces:n,timestamp:Date.now()},n}catch(n){if(console.error("Failed to get recent workspaces:",n),(t=this.cache)!=null&&t.recentWorkspaces)return this.cache.recentWorkspaces;throw n}}async addRecent(t,n){await Ve.post("workspace/recent",{path:t,metadata:n}),this.invalidateCache()}async removeRecent(t){const r=(await this.getRecent()).filter(s=>s.path!==t);this.cache={recentWorkspaces:r,timestamp:Date.now()}}async clearRecent(){this.cache=null}async getPathSuggestions(){return Ve.get("workspace/suggestions")}async browseFolder(t){return Ve.post("workspace/browse-folder",{path:t})}async getCombinedSuggestions(){const[t,n]=await Promise.all([this.getPathSuggestions().catch(()=>({suggestions:[]})),this.getRecent().catch(()=>[])]),s=[...t.suggestions.map(a=>({path:a.path,is_valid:!0,workspace_name:a.name})),...n];return this.deduplicateByPath(s).sort((a,i)=>{const c=n.findIndex(h=>h.path===a.path),d=n.findIndex(h=>h.path===i.path);return c!==-1&&d!==-1?c-d:c!==-1?-1:d!==-1?1:(a.workspace_name||"").localeCompare(i.workspace_name||"")})}async healthCheck(){var n,r,s;const t=Date.now();try{await Ve.get("workspace/recent",{signal:AbortSignal.timeout(2e3)});const o=((n=this.cache)==null?void 0:n.recentWorkspaces)||await this.getRecent();return{available:!0,cacheValid:this.isCacheValid(),recentCount:o.length,latency:Date.now()-t}}catch(o){return{available:!1,cacheValid:this.isCacheValid(),recentCount:((s=(r=this.cache)==null?void 0:r.recentWorkspaces)==null?void 0:s.length)||0,error:o instanceof Error?o.message:"Unknown error"}}}async listWorkspaceFiles(t,n){return Ve.post("workspace/files",{path:t,max_depth:(n==null?void 0:n.max_depth)??3,max_entries:(n==null?void 0:n.max_entries)??500,include_hidden:(n==null?void 0:n.include_hidden)??!1})}isCacheValid(){return this.cache?!(Date.now()-this.cache.timestamp>this.options.cacheTimeoutMs):!1}invalidateCache(){this.cache=null}deduplicateByPath(t){const n=new Set;return t.filter(r=>n.has(r.path)?!1:(n.add(r.path),!0))}}const PT=new TT,ET=({content:e,setContent:t,currentSessionId:n,currentChat:r,updateSession:s,messageApi:o})=>{const[a,i]=b.useState(new Map),[c,d]=b.useState([]),[h,m]=b.useState(!1),[g,y]=b.useState(""),[x,S]=b.useState(!1),[_,E]=b.useState(""),[T,P]=b.useState(!1),[C,A]=b.useState(null),[I,O]=b.useState(!1),$=b.useRef(null);b.useEffect(()=>{x&&E((r==null?void 0:r.config.workspacePath)??"")},[x,r==null?void 0:r.config.workspacePath]),b.useEffect(()=>{m(!1),y(""),d([]),i(new Map),$.current=(r==null?void 0:r.config.workspacePath)??null},[n,r==null?void 0:r.config.workspacePath]);const B=b.useCallback(async(de,Q)=>{P(!0),d([]),A(null);try{const ge=await PT.listWorkspaceFiles(Q);d(ge),$.current=Q}catch(ge){console.error("Failed to load workspace files:",ge),A(ge instanceof Error?ge.message:"Workspace file browsing is unavailable.")}finally{P(!1)}},[]),te=b.useCallback(de=>{if(y(de.searchText),!de.isTriggerActive){m(!1);return}if(!n||!r){m(!1);return}const Q=r.config.workspacePath;if(!Q){E(""),S(!0),m(!1);return}m(!0),($.current!==Q||c.length===0)&&B(n,Q)},[r,n,B,c.length]),H=b.useCallback(de=>{const Q=e.lastIndexOf("@");let ge;Q>=0&&e.substring(Q).match(/^@[a-zA-Z0-9._\\-\\/\\\\]*$/)?ge=`${e.slice(0,Q)}@${de.name} `:ge=e.trim()?`${e.trim()} @${de.name} `:`@${de.name} `,t(ge),i(G=>{const ce=new Map(G);return ce.set(de.name,de),ce}),m(!1),y("")},[e,t]),L=b.useCallback(()=>{m(!1)},[]),Z=b.useCallback(()=>{if(!n||!r)return;const de=r.config.workspacePath;if(!de){E(""),S(!0),m(!1);return}y(""),m(!0),($.current!==de||c.length===0)&&B(n,de)},[r,n,B,c.length]),D=b.useCallback(()=>{S(!1),E("")},[]),F=b.useCallback(async de=>{if(!r||!n)return;const Q=de.trim();if(!Q){o.error(Ct.t("chat.view.workspacePathEmpty"));return}O(!0);try{s(n,{config:{...r.config,workspacePath:Q}}),S(!1),E(""),m(!1),A(null)}catch(ge){const G=ge instanceof Error?ge.message:"Unable to save workspace path";o.error(G)}finally{O(!1)}},[r,n,o,s]);return{fileReferences:a,setFileReferences:i,workspaceFiles:c,showFileSelector:h,setShowFileSelector:m,fileSearchText:g,isWorkspaceLoading:T,workspaceError:C,isWorkspaceModalVisible:x,workspacePathInput:_,isSavingWorkspace:I,setWorkspacePathInput:E,setIsWorkspaceModalVisible:S,handleFileReferenceChange:te,handleFileReferenceSelect:H,handleFileSelectorCancel:L,handleFileReferenceButtonClick:Z,handleWorkspaceModalCancel:D,handleWorkspaceModalSubmit:F,fetchWorkspaceFiles:B}},MT=()=>{const[e,t]=b.useState([]),n=b.useCallback(o=>{t(a=>[...a,...o])},[]),r=b.useCallback(o=>{t(a=>a.filter(i=>i.id!==o))},[]),s=b.useCallback(()=>{t([])},[]);return{attachments:e,setAttachments:t,handleAttachmentsAdded:n,handleAttachmentRemove:r,handleClearAttachments:s}},AT=({attachments:e,referenceText:t,selectedWorkflow:n,matchesWorkflowToken:r,fileReferences:s,reasoningEffort:o,sendMessage:a,recordEntry:i,clearWorkflowDraft:c,setContent:d,setReferenceText:h,setAttachments:m,setFileReferences:g})=>({handleSubmit:b.useCallback(async(x,S)=>{const _=x.trim(),E=tT(e),T=(t==null?void 0:t.trim())??"";let P=_,C;if(n!=null&&n.content&&n.type==="workflow"){const I=`/${n.name}`;if(r(_,n.name)){const $=_.slice(I.length).trim();P=[n.content,$].filter(Boolean).join(`
126
+
127
+ `)}}else if((n==null?void 0:n.type)==="skill"){const I=`/${n.name}`;if(r(_,n.name)){const $=_.slice(I.length).trim();P=[`[User explicitly selected skill: ${n.displayName||n.name} (ID: ${n.name})]`,$].filter(Boolean).join(`
128
+
129
+ `),C=[n.name]}}else if((n==null?void 0:n.type)==="mcp"){const I=`/${n.name}`;if(r(_,n.name)){const $=_.slice(I.length).trim();P=[`[User explicitly selected MCP tool: ${n.mcpAlias||n.displayName||n.name}]`,$].filter(Boolean).join(`
130
+
131
+ `)}}if(!P&&!E&&(!S||S.length===0))return;const A=[T,P,E].filter(Boolean).join(`
132
+
133
+ `);if(i(A),d(""),c(),s.size>0){const I=Array.from(A.matchAll(/@([^\\s]+)/g));if(I.length>0){const O=[];for(const $ of I){const B=$[1],te=s.get(B);te&&O.push(te)}if(O.length>0){const $=JSON.stringify({type:"file_reference",paths:O.map(B=>B.path),display_text:A});await a($,S,o,C)}else await a(A,S,o,C)}else await a(A,S,o,C)}else await a(A,S,o,C);h(null),m([]),g(new Map)},[e,c,s,r,i,o,n,a,m,d,g,h,t])}),RT=({currentSessionId:e,currentChat:t,currentMessages:n,reasoningEffort:r,retryLastTurn:s,navigate:o})=>{const a=b.useCallback(async(c="regenerate")=>{if(!e||!t)return;const d=[...n];d.length===0||[...d].reverse().findIndex(m=>m.role==="user")===-1||await s(r,c)},[t,e,n,r,s]),i=b.useCallback((c,d)=>{const h=o(c,d);return h.applied?h.value:null},[o]);return{retryLastMessage:a,handleHistoryNavigate:i}},jT=({referenceText:e,isToolSpecificMode:t,isRestrictConversation:n,allowedTools:r,autoToolPrefix:s,t:o})=>o(e?"chat.input.placeholderWithReference":"chat.input.placeholderWithWorkflows"),IT=new Set(["openai","anthropic","gemini","copilot","bodhi"]),OT=(e,t)=>{if(!(t!=null&&t.trim()))return;const n=t.trim();if(IT.has(n)){const a=e.providers[n];return a==null?void 0:a.reasoning_effort}const s=e.providers[n];return s==null?void 0:s.reasoning_effort},$T=(e,t,n)=>{var s,o,a,i,c;const r=((s=t==null?void 0:t.provider)==null?void 0:s.trim())||((i=(a=(o=e.defaults)==null?void 0:o.chat)==null?void 0:a.provider)==null?void 0:i.trim())||(n==null?void 0:n.trim())||((c=e.provider)==null?void 0:c.trim());return OT(e,r)};function LT({value:e,onChange:t,disabled:n,dataTestId:r,appearance:s="default"}){const{token:o}=ut.useToken(),a=It(S=>S.catalog),i=It(S=>S.getProviderDisplayLabel);b.useEffect(()=>{a||It.getState().loadCatalog()},[a]);const c=b.useMemo(()=>{if(!(a!=null&&a.models))return[];const S={};for(const T of a.models){const P=T.reference.provider;S[P]||(S[P]={display:T.provider_display_name,models:[]}),S[P].models.push(T)}const _=[];return Object.keys(S).forEach((T,P)=>{const C=S[T];P>0&&_.push({type:"divider"}),_.push({type:"group",label:C.display,children:C.models.map(A=>({key:`${A.reference.provider}/${A.reference.model}`,label:l.jsxs(He,{size:4,children:[l.jsx("span",{children:A.display_name}),A.capabilities.supports_vision&&l.jsx(Ze,{color:"blue",style:{fontSize:10,lineHeight:"16px",padding:"0 3px"},children:"Vision"})]})}))})}),_},[a]),d=e?`${e.provider}/${e.model}`:void 0,h=e?i(e.provider):void 0,m=e?`${h||e.provider}/${e.model}`:Ct.t("chat.model.selectModel"),g=b.useCallback(S=>{const[_,...E]=S.key.split("/"),T=E.join("/");_&&T&&t({provider:_,model:T})},[t]),y=s==="contrast"?{minWidth:220,width:"100%",justifyContent:"space-between",padding:"0 12px",height:36,borderRadius:o.borderRadiusLG,background:o.colorBgElevated,border:`1px solid ${o.colorBorder}`,boxShadow:"none"}:{minWidth:146,padding:"0 12px",height:36,borderRadius:18},x=s==="contrast"?{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,textAlign:"left"}:{maxWidth:150,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13};return l.jsx(He,{size:4,"data-tour-id":"model-picker",children:l.jsx(ao,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:d?[d]:[],items:c,style:{maxHeight:"50vh",overflowY:"auto"},onClick:g},disabled:n,children:l.jsx(je,{"data-testid":r,type:s==="contrast"?"default":"text",size:"small",block:s==="contrast",disabled:n,style:y,title:m,children:l.jsxs(He,{size:4,style:{width:"100%",justifyContent:"space-between"},children:[l.jsx("span",{style:x,children:m}),l.jsx(ks,{style:{fontSize:10}})]})})})})}const S$={copilot:"GitHub Copilot",openai:"OpenAI",anthropic:"Anthropic",gemini:"Google Gemini",bodhi:"Bodhi"},DT=[{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"}],FT=[{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"}],NT=[{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"}],zT=[{value:"gpt-4o",label:"GPT-4o"},{value:"gpt-4o-mini",label:"GPT-4o Mini"}],BT=b.lazy(()=>Jt(()=>import("./index-BdFrXiGe.js"),__vite__mapDeps([7,1,2,3]),import.meta.url)),WT=b.lazy(()=>Jt(()=>import("./index-BC8EjiMM.js"),__vite__mapDeps([8,1,2,3,4,5,6,9]),import.meta.url)),UT=b.lazy(()=>Jt(()=>import("./index-4NqkovnM.js"),__vite__mapDeps([10,1,2,3,5,4,6]),import.meta.url)),qT=b.lazy(()=>Jt(()=>import("./index-CJdw34gN.js"),__vite__mapDeps([11,1,2,3]),import.meta.url)),{useToken:HT}=ut,op="chat-send-message",ap="reference-text",YT="chat-model-options-cache-v1",iv=24*60*60*1e3,KT=["low","medium","high","xhigh","max"],XT=[],Bo=(e,t)=>{},lv=e=>`${YT}:${e}`,VT=e=>{if(typeof window>"u")return null;try{const t=localStorage.getItem(lv(e));if(!t)return null;const n=JSON.parse(t);return!n||!Array.isArray(n.options)||Date.now()-n.timestamp>iv?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string").map(r=>({value:r.value,label:r.label}))}catch{return null}},GT=(e,t)=>{if(!(typeof window>"u"))try{const n={timestamp:Date.now(),options:t};localStorage.setItem(lv(e),JSON.stringify(n))}catch{}},JT=async e=>{const t=Yn.getInstance();try{const n=await t.loadModelOptionsCache(e);if(n)return Date.now()-n.timestamp>iv?null:n.options.filter(r=>r&&typeof r.value=="string"&&r.value.trim().length>0&&typeof r.label=="string")}catch{}return VT(e)},QT=async(e,t)=>{const n=Yn.getInstance();try{await n.saveModelOptionsCache(e,t,Date.now())}catch{}GT(e,t)},ZT=({sessionId:e,onWorkflowDraftChange:t,statusIndicator:n})=>{var fr,Xn,wo,ns;const{t:r}=Ge(),s=b.useRef(null),{token:o}=HT(),a=ql(),i=Ua(pe=>pe.open),c=ae(pe=>e??pe.currentSessionId),d=ae(pe=>pe.currentSessionId),h=ae(Is(c)),m=b.useMemo(()=>(h==null?void 0:h.messages)||[],[h==null?void 0:h.messages]),g=ae(pe=>pe.addMessage),y=ae(pe=>pe.updateSession),x=ae(Iy(c)),S=ae(Oy(c)),E=ae($y(c))||(h==null?void 0:h.isRunning)===!0&&S,T=ae(pe=>pe.markRespondStart),P=ae(pe=>pe.markSettleTimeout),C=ae(pe=>pe.applyExecutionStarted),A=ae(ro(c)),I=ae(pe=>pe.clearPendingQuestion),O=b.useCallback(()=>{var pt,_t;if(!c)return null;const pe=(pt=ae.getState().executionBySession)==null?void 0:pt[c];return pe?{phase:pe.phase,generation:pe.generation,backendRunId:pe.backendRunId??null,backendIsRunning:pe.backend.isRunning,hasPendingQuestion:pe.interaction.pendingQuestion!=null,pendingQuestionToolCallId:((_t=pe.interaction.pendingQuestion)==null?void 0:_t.toolCallId)??null,tokenCount:pe.stream.tokenCount,hasTokens:pe.stream.hasTokens,activeReasons:pe.activeReasons}:null},[c]),$=tf(c),B=av((fr=h==null?void 0:h.config)==null?void 0:fr.model_ref),te=It(pe=>pe.isProviderModelRefEnabled),H=ae(pe=>c?pe.inputStates[c]:void 0),L=ae(pe=>pe.setInputContent),Z=ae(pe=>pe.setReferenceText),D=ae(pe=>pe.setInputReasoningEffort),F=It(pe=>pe.currentProvider),de=It(pe=>pe.providerConfig),Q=It(pe=>pe.getProviderType),ge=b.useMemo(()=>Q(F),[F,Q]),[G,ce]=b.useState([]),[ve,ue]=b.useState(!1),[he,le]=b.useState(null),[we,Le]=b.useState(!1),Ie=(H==null?void 0:H.content)||"",Je=(H==null?void 0:H.referenceText)||null,j=b.useMemo(()=>{var pe,pt;return $T(de,B,((pt=(pe=h==null?void 0:h.config)==null?void 0:pe.model_ref)==null?void 0:pt.provider)??F)},[B,(wo=(Xn=h==null?void 0:h.config)==null?void 0:Xn.model_ref)==null?void 0:wo.provider,de,F]),ie=b.useMemo(()=>c?Ry(c):void 0,[c]),me=((ns=h==null?void 0:h.config)==null?void 0:ns.reasoningEffort)??(H==null?void 0:H.reasoningEffort)??ie??j??"medium",Me=b.useCallback(pe=>{c&&L(c,pe)},[c,L]),Ue=b.useCallback(pe=>{c&&Z(c,pe)},[c,Z]),St=b.useCallback(async pe=>{if(c&&(D(c,pe),!!h))try{await to.patchSession(c,{reasoning_effort:pe}),y(c,{config:{...h.config,reasoningEffort:pe}})}catch(pt){console.warn("[InputContainer] Failed to persist reasoning effort:",pt)}},[h,c,D,y]),{sendMessage:ot,retryLastTurn:Ft,cancel:Vt}=_T({sessionId:c,addMessage:g,updateSession:y});b.useEffect(()=>{if(typeof window>"u")return;const pe=Xt=>Xt?c===Xt:c!==null&&c===d,pt=Xt=>{const Bt=Xt;if(!Bt.detail||typeof Bt.detail.text!="string")return;const Nt=typeof Bt.detail.sessionId=="string"?Bt.detail.sessionId:null;if(!pe(Nt))return;const Xe=Bt.detail.text.trim();Xe&&(Bt.detail.handled=!0,Ue(Xe),requestAnimationFrame(()=>{var nn;(nn=s.current)==null||nn.focus()}))},_t=Xt=>{var Xe;const Bt=Xt,Nt=typeof((Xe=Bt.detail)==null?void 0:Xe.sessionId)=="string"?Bt.detail.sessionId:null;pe(Nt)&&(Bt.detail&&(Bt.detail.handled=!0),requestAnimationFrame(()=>{var nn;(nn=s.current)==null||nn.focus()}))};return window.addEventListener(ap,pt),window.addEventListener(Gu,_t),()=>{window.removeEventListener(ap,pt),window.removeEventListener(Gu,_t)}},[d,c,Ue]);const{message:At}=Dn.useApp(),Mt=!1,wn=!1,kt=XT,_n=void 0,{recordEntry:pn,navigate:On,acknowledgeManualInput:Mn}=CT(c),{attachments:Ot,setAttachments:tn,handleAttachmentsAdded:Cn,handleAttachmentRemove:ye,handleClearAttachments:We}=MT(),Te=kT({setContent:Me,onWorkflowDraftChange:t,acknowledgeManualInput:Mn,currentSessionId:c,textAreaRef:s,content:Ie}),Fe=ET({content:Ie,setContent:Me,currentSessionId:c,currentChat:h,updateSession:y,messageApi:At}),{setShowFileSelector:qt}=Fe;b.useEffect(()=>{Te.showCommandSelector&&qt(!1)},[Te.showCommandSelector,qt]);const{handleSubmit:$n}=AT({attachments:Ot,referenceText:Je,selectedWorkflow:Te.selectedCommand,matchesWorkflowToken:Te.matchesCommandToken,fileReferences:Fe.fileReferences,reasoningEffort:me,sendMessage:ot,recordEntry:pn,clearWorkflowDraft:Te.clearCommandDraft,setContent:Me,setReferenceText:Ue,setAttachments:tn,setFileReferences:Fe.setFileReferences}),yt=A?{sessionId:c??"",question:A.question,options:A.options,allowCustom:A.allowCustom,toolCallId:A.toolCallId}:null,De=!!yt,mn=(yt==null?void 0:yt.options)||[],N=(yt==null?void 0:yt.allowCustom)??!0,re=b.useCallback(pe=>pe?!!ro(pe)(ae.getState()):!1,[]),W=b.useCallback(async pe=>{const pt=pe.trim();if(!pt||!c)return;const Xt=ro(c)(ae.getState());if(Xt&&!Xt.allowCustom&&Xt.options.length>0&&!Xt.options.includes(pt)){At.warning(r("components.questionDialog.selectOptionWarning"));return}Bo("input.respond:start",{trimmedLength:pt.length,pendingQuestionToolCallId:(yt==null?void 0:yt.toolCallId)??null,executionBefore:O()});const Bt=T(c,(yt==null?void 0:yt.toolCallId)??null);Bo("input.respond:afterMarkRespondStart",{executionAfterMarkRespondStart:O()}),await new Promise(Nt=>setTimeout(Nt,0));try{const Nt={response:pt,reasoning_effort:me};te()&&B&&(Nt.model_ref=B,Nt.provider=B.provider);const Xe=await xt.post(`respond/${c}`,Nt);Bo("input.respond:response",{sessionId:c,result:Xe,executionAfterResponse:O()}),At.success(r("components.questionDialog.responseSubmittedContinue")),Me(""),I(c),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Ju,{detail:{sessionId:c}}));const nn=Xe==null?void 0:Xe.auto_resume_status,Tr=Xe==null?void 0:Xe.run_id;Bo("input.respond:resumeDecision",{sessionId:c,resumeStatus:nn,runId:Tr??null,newGeneration:Bt,executionBeforeResumeDecision:O()}),nn==="started"||nn==="already_running"?(C(c,Tr??"",Bt),Bo("input.respond:afterApplyExecutionStarted",{sessionId:c,resumeStatus:nn,runId:Tr??null,newGeneration:Bt,executionAfterApplyExecutionStarted:O()})):(nn==="error"||!nn)&&(console.error("[InputContainer] Failed to auto-resume agent execution"),P(c))}catch(Nt){console.error("[InputContainer] Failed to submit respond:",Nt),At.error(Nt instanceof Error?Nt.message:r("components.questionDialog.submitFailed")),P(c)}},[c,me,B,te,At,Me,I,T,P,C,O,yt==null?void 0:yt.toolCallId,r]),Ae=b.useCallback(async(pe,pt)=>{if(re(c)){await W(pe);return}await $n(pe,pt)},[c,re,W,$n]),qe=b.useCallback(async(pe,pt)=>{await Ae(pe,pt)},[Ae]);b.useEffect(()=>{if(typeof window>"u")return;const pe=pt=>{var Xe,nn,Tr;const _t=pt;if(!_t.detail)return;const Xt=typeof _t.detail.sessionId=="string"?_t.detail.sessionId:null;if(!(Xt?c===Xt:c!==null&&c===d))return;_t.detail.handled=!0;const Nt=(Xe=_t.detail)==null?void 0:Xe.content;if(typeof Nt!="string"||Nt.trim().length===0){(Tr=(nn=_t.detail)==null?void 0:nn.reject)==null||Tr.call(nn,new Error("External send message content is empty"));return}Ae(Nt,void 0).then(()=>{var rr,Nn;(Nn=(rr=_t.detail)==null?void 0:rr.resolve)==null||Nn.call(rr)}).catch(rr=>{var Nn,_o;(_o=(Nn=_t.detail)==null?void 0:Nn.reject)==null||_o.call(Nn,rr)})};return window.addEventListener(op,pe),()=>{window.removeEventListener(op,pe)}},[d,c,Ae]);const{retryLastMessage:Ne,handleHistoryNavigate:at}=RT({currentSessionId:c,currentChat:h,currentMessages:m,reasoningEffort:me,retryLastTurn:Ft,navigate:On}),vt=b.useCallback(()=>Ue(null),[Ue]),Tt=b.useMemo(()=>de.providers[F],[de,F]),lt=b.useMemo(()=>!Tt||typeof Tt!="object"?!1:ge==="copilot"?Object.keys(Tt).length>0:"api_key"in Tt?typeof Tt.api_key=="string"&&Tt.api_key.trim().length>0:!1,[ge,Tt]),Rt=b.useCallback(()=>lt?!1:(i("chat"),At.warning(r("chat.view.providerNotConfigured")),!0),[lt,At,i,r]);b.useEffect(()=>{(async()=>{const pe=await JT(ge);ce(pe??[]),le(null)})()},[ge]);const ht=b.useCallback(pe=>pe instanceof Error&&pe.message.trim()?pe.message:r("chat.view.unknownError"),[r]),Qe=b.useMemo(()=>({openai:[...DT],anthropic:[...FT],gemini:[...NT],copilot:[...zT],bodhi:[]})[ge]||[],[ge]),_e=b.useMemo(()=>{const pt=[...G.length>0?G:Qe];return $&&!pt.some(_t=>_t.value===$)&&pt.unshift({value:$,label:$}),pt},[G,Qe,$]),$e=b.useCallback(async(pe,pt,_t)=>{if(!(!(_t!=null&&_t.force)&&G.length>0))try{ue(!0),le(null);const Bt=(pt==="copilot"?await Sy.getModels(pe):Qe).map(Nt=>({value:typeof Nt=="string"?Nt:Nt.value,label:typeof Nt=="string"?Nt:Nt.label}));ce(Bt),await QT(pt,Bt)}catch(Xt){le(ht(Xt))}finally{ue(!1)}},[Qe,ht,G.length]),Ke=b.useCallback(pe=>{pe&&(Rt()||ve||G.length>0||$e(F,ge))},[F,ge,$e,ve,G.length,Rt]),Lt=b.useCallback(async pe=>{var pt,_t,Xt;if(!(!pe||pe===$)&&!we)try{if(Rt())return;if(Le(!0),!c||!h){c&&y(c,{config:{systemPromptId:((pt=h==null?void 0:h.config)==null?void 0:pt.systemPromptId)||"default",baseSystemPrompt:((_t=h==null?void 0:h.config)==null?void 0:_t.baseSystemPrompt)||"",lastUsedEnhancedPrompt:((Xt=h==null?void 0:h.config)==null?void 0:Xt.lastUsedEnhancedPrompt)??null,...(h==null?void 0:h.config)||{},model:pe}});return}await to.patchSession(c,{model:pe}),y(c,{config:{...h.config,model:pe}}),At.success(r("settings.providerTab.modelUpdated"))}catch(Bt){At.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${ht(Bt)}`)}finally{Le(!1)}},[$,h,ht,we,At,Rt,c,r,y]),on=b.useCallback(async pe=>{if(!c||!(h!=null&&h.config)){It.getState().setSelectedModelRef(pe);return}if(!we)try{Le(!0),await to.patchSession(c,{model:pe.model,model_ref:pe,provider:pe.provider}),It.getState().setSelectedModelRef(pe),y(c,{config:{...h.config,model:pe.model,model_ref:pe}}),At.success(r("settings.providerTab.modelUpdated"))}catch(pt){At.error(`${r("settings.providerTab.updateModelErrorPrefix")}: ${ht(pt)}`)}finally{Le(!1)}},[h==null?void 0:h.config,ht,we,At,c,r,y]),Cr=b.useMemo(()=>jT({referenceText:Je,isToolSpecificMode:Mt,isRestrictConversation:wn,allowedTools:kt,autoToolPrefix:_n,t:r}),[Je,Mt,wn,kt,_n,r]),Os=De&&N?r("chat.respond.customAnswerPlaceholder"):De?r("components.questionDialog.selectOptionWarning"):Cr,cc=De?r("chat.respond.submitToolResult","Submit tool result"):void 0,Fn=b.useMemo(()=>({low:r("chat.input.reasoning.low"),medium:r("chat.input.reasoning.medium"),high:r("chat.input.reasoning.high"),xhigh:r("chat.input.reasoning.xhigh"),max:r("chat.input.reasoning.max")}),[r]),dr=b.useMemo(()=>Fn[me]??me,[me,Fn]),nr=b.useMemo(()=>l.jsx(ao,{trigger:["click"],placement:"topLeft",disabled:!$||S,menu:{selectable:!0,selectedKeys:[me],items:KT.map(pe=>({key:pe,label:Fn[pe]})),onClick:({key:pe})=>{St(pe)}},children:l.jsx(je,{type:"text",size:"small",disabled:!$||x,style:{minWidth:a?74:88,padding:a?"0 8px":"0 12px",height:36,borderRadius:18,color:me==="medium"?o.colorTextSecondary:o.colorPrimary},title:r("chat.input.reasoningTitle",{label:dr}),children:l.jsxs(He,{size:6,children:[l.jsx(jx,{}),l.jsx("span",{children:dr}),l.jsx(ks,{style:{fontSize:10}})]})})}),[$,dr,S,a,x,me,Fn,St,r,o.colorPrimary,o.colorTextSecondary]),Or=$||r(lt?"chat.model.selectModel":"chat.model.configureProvider"),mi=b.useMemo(()=>_e.length>0?_e.map(pe=>({key:pe.value,label:pe.label})):[{key:"__no_models__",label:he||r("chat.model.noModelsAvailable"),disabled:!0}],[_e,he,r]),Kn=b.useMemo(()=>l.jsx(je,{type:"text",size:"small",disabled:x||we,onClick:()=>{lt||Rt()},style:{minWidth:a?112:146,padding:a?"0 8px":"0 12px",height:36,borderRadius:18,color:he?o.colorError:o.colorTextSecondary},title:Or,children:l.jsxs(He,{size:6,children:[ve?l.jsx(oo,{}):l.jsx(Gg,{}),l.jsx("span",{style:{maxWidth:a?84:128,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Or}),l.jsx(ks,{style:{fontSize:10}})]})}),[x,we,lt,Rt,a,he,o.colorError,o.colorTextSecondary,Or,ve]),xo=b.useMemo(()=>te()?l.jsx(LT,{value:B,onChange:on,disabled:x||we}):lt?l.jsx(ao,{trigger:["click"],placement:"topLeft",menu:{selectable:!0,selectedKeys:$?[$]:[],items:mi,style:{maxHeight:"50vh",overflowY:"auto"},onClick:({key:pe})=>{pe!=="__no_models__"&&Lt(String(pe))}},onOpenChange:Ke,disabled:S||we,children:Kn}):Kn,[te,B,on,x,we,lt,$,mi,Lt,Ke,S,Kn]),kr=b.useMemo(()=>l.jsxs(He,{size:0,wrap:!0,children:[xo,nr]}),[xo,nr]),gi=b.useCallback(pe=>({isValid:!0}),[wn,_n,r]),$s=b.useMemo(()=>m.some(pe=>pe.role==="user"),[m]),Kt=b.useMemo(()=>({isStreaming:x,isInputLocked:S,canCancel:E,hasMessages:$s,allowRetry:!0,onRetry:Ne,onCancel:Vt,onHistoryNavigate:at}),[x,S,E,$s,Ne,Vt,at]);return l.jsxs("div",{style:{padding:`${o.paddingXXS}px ${o.paddingXS}px`,background:"transparent",borderTop:"none",boxShadow:"none",width:"100%",position:"relative",overflow:"visible"},children:[!$&&l.jsx(cr,{type:"warning",showIcon:!0,icon:l.jsx(Bl,{}),message:r(lt?"chat.model.noModelSelected":"chat.model.providerNotConfigured"),description:r(lt?"chat.model.selectModelHint":"chat.model.configureProviderHint"),action:lt?void 0:l.jsx(He,{children:l.jsx("a",{onClick:()=>i("chat"),children:r("chat.model.openSettings")})}),style:{marginBottom:o.marginSM}}),Mt,Je&&l.jsx(iT,{text:Je,onClose:vt}),Ot.length>0&&l.jsx(b.Suspense,{fallback:l.jsx(lo,{size:"small"}),children:l.jsx(BT,{files:Ot,onRemove:ye,onClear:We})}),De&&mn.length>0&&l.jsx("div",{style:{marginBottom:o.marginSM},children:l.jsx(He,{wrap:!0,size:[8,8],children:mn.map(pe=>l.jsx(je,{size:"small",onClick:()=>{W(pe)},disabled:S,children:pe},pe))})}),l.jsx(oT,{value:Ie,onChange:Te.handleInputChange,onSubmit:qe,placeholder:Os,allowImages:!0,disabled:!$||De&&!N&&mn.length>0,statusIndicator:n,submitButtonLabel:cc,isWorkflowSelectorVisible:Te.showCommandSelector,textAreaRef:s,validateMessage:gi,onAttachmentsAdded:Cn,onWorkflowCommandChange:Te.handleCommandChange,onFileReferenceChange:Fe.handleFileReferenceChange,onFileReferenceButtonClick:Fe.handleFileReferenceButtonClick,leftControlsExtra:kr,interaction:Kt}),l.jsx(b.Suspense,{fallback:null,children:l.jsx(WT,{visible:Te.showCommandSelector,onSelect:Te.handleCommandSelect,onCancel:Te.handleCommandSelectorCancel,onAutoComplete:Te.handleAutoComplete,searchText:Te.commandSearchText})}),Fe.showFileSelector&&l.jsx(b.Suspense,{fallback:l.jsx(lo,{size:"small"}),children:l.jsx(qT,{visible:Fe.showFileSelector,files:Fe.workspaceFiles,searchText:Fe.fileSearchText,loading:Fe.isWorkspaceLoading,error:Fe.workspaceError,onSelect:Fe.handleFileReferenceSelect,onCancel:Fe.handleFileSelectorCancel,onChangeWorkspace:()=>{Fe.setWorkspacePathInput((h==null?void 0:h.config.workspacePath)??""),Fe.setIsWorkspaceModalVisible(!0)}})}),l.jsx(b.Suspense,{fallback:null,children:l.jsx(UT,{open:Fe.isWorkspaceModalVisible,initialPath:Fe.workspacePathInput,loading:Fe.isSavingWorkspace,onSubmit:Fe.handleWorkspaceModalSubmit,onCancel:Fe.handleWorkspaceModalCancel})})]})},eP={maxLines:8,maxCharacters:500},Vr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),zr=e=>typeof e=="string"?e:void 0,ps=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,ip=e=>typeof e=="boolean"?e:void 0,nf=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);return Vr(n)?n:null}catch{return null}},cv=e=>/\\u[0-9a-fA-F]{4}|\\n|\\t|\\r/.test(e)?e.replace(/\\u([0-9a-fA-F]{4})/g,(t,n)=>String.fromCharCode(parseInt(n,16))).replace(/\\n/g,`
134
+ `).replace(/\\t/g," ").replace(/\\r/g,"\r"):e,Sr=e=>Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>cv(t).trim()).filter(Boolean):[],hn=e=>{if(typeof e!="string")return;const t=cv(e).trim();return t.length>0?t:void 0},tP=e=>{if(!Vr(e))return;const t=hn(e.graph);if(t)return{title:hn(e.title),graph:t}},nP=e=>{if(!Vr(e))return;const t=hn(e.summary)??hn(e.conclusion);if(t)return{title:hn(e.title)||"Conclusion",summary:t,key_points:Sr(e.key_points),next_steps:Sr(e.next_steps),confidence:hn(e.confidence),mermaid:tP(e.mermaid)}},rP=e=>{const t=nf(e);if(!t)return null;const n=hn(t.conclusion);return!n||t.type!=null&&t.type!=="conclusion"?null:{type:"conclusion",title:hn(t.title)||"Conclusion",conclusion:n,key_points:Sr(t.key_points),next_steps:Sr(t.next_steps),confidence:hn(t.confidence)}},sP=e=>{const t=nf(e);if(!t)return null;const n=hn(t.question);if(!n)return null;const r=hn(t.status);return r&&r!=="awaiting_user_input"&&r!=="awaiting_permission_approval"?null:{question:n,options:Sr(t.options),allow_custom:typeof t.allow_custom=="boolean"?t.allow_custom:!0,conclusion:nP(t.conclusion)}},oP=e=>{var n;if(!e)return null;const t=[`## ${e.title}`,e.summary];if(e.confidence&&t.push(`**Confidence:** ${e.confidence}`),e.key_points.length>0&&t.push(["**Key points**",...e.key_points.map(r=>`- ${r}`)].join(`
135
+ `)),e.next_steps.length>0&&t.push(["**Next steps**",...e.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
136
+ `)),(n=e.mermaid)!=null&&n.graph){const r=e.mermaid.title?`**${e.mermaid.title}**
137
+
138
+ `:`**Flow**
139
+
140
+ `;t.push(`${r}\`\`\`mermaid
141
+ ${e.mermaid.graph}
142
+ \`\`\``)}return t.join(`
143
+
144
+ `)},uv=e=>{const t=rP(e);if(!t)return null;const n=[`## ${t.title}`,t.conclusion];return t.confidence&&n.push(`**Confidence:** ${t.confidence}`),t.key_points.length>0&&n.push(["**Key points**",...t.key_points.map(r=>`- ${r}`)].join(`
145
+ `)),t.next_steps.length>0&&n.push(["**Next steps**",...t.next_steps.map((r,s)=>`${s+1}. ${r}`)].join(`
146
+ `)),n.join(`
147
+
148
+ `)},yo=e=>{if(!e)return null;const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return null;try{const n=JSON.parse(t);if(!Vr(n))return null;const r=zr(n.file_path),s=zr(n.operation),o=n.diff;if(!r||!s||!Vr(o))return null;const a=zr(o.unified);if(!a)return null;const i=n.checkpoint,c=Vr(i)?{created:ip(i.created)??!1,id:zr(i.id),path:zr(i.path),size_bytes:ps(i.size_bytes),reason:zr(i.reason)}:void 0;return{operation:s,message:zr(n.message),file_path:r,workspace:zr(n.workspace),checkpoint:c,diff:{unified:a,old_line_count:ps(o.old_line_count),new_line_count:ps(o.new_line_count),added_lines:ps(o.added_lines),removed_lines:ps(o.removed_lines),truncated:ip(o.truncated)}}}catch{return null}},dv=e=>{const t=nf(e);if(!t)return null;const n=hn(t.action);if(n!=="inspect"&&n!=="rebuild")return null;const r=t.data;if(!Vr(r))return null;const s=hn(r.scope),o=ps(r.total_memories);if(!s||typeof o!="number")return null;const a=i=>Vr(i)?Object.fromEntries(Object.entries(i).filter(c=>typeof c[0]=="string"&&typeof c[1]=="number")):{};return{action:n,scope:hn(t.scope),project_key:hn(t.project_key),data:{scope:s,project_key:hn(r.project_key),total_memories:o,by_type:a(r.by_type),by_status:a(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:ps(r.stale_candidate_count)??0,last_reindex_at:hn(r.last_reindex_at),last_dream_at:hn(r.last_dream_at),topic_paths:Sr(r.topic_paths)}}},ti=e=>e.startsWith("-")&&!e.startsWith("---"),ni=e=>e.startsWith("+")&&!e.startsWith("+++"),fv=e=>{const t=e.split(`
149
+ `),n=[];let r=0;for(;r<t.length;){const s=t[r]??"";if(s.startsWith("--- ")||s.startsWith("+++ ")){n.push({kind:"meta",text:s}),r+=1;continue}if(s.startsWith("@@")){n.push({kind:"hunk",text:s}),r+=1;continue}if(ti(s)){const o=[];for(;r<t.length&&ti(t[r]??"");)o.push(t[r]??""),r+=1;const a=[];for(;r<t.length&&ni(t[r]??"");)a.push(t[r]??""),r+=1;a.length>0?(o.forEach(i=>n.push({kind:"modified_remove",text:i})),a.forEach(i=>n.push({kind:"modified_add",text:i}))):o.forEach(i=>n.push({kind:"remove",text:i}));continue}if(ni(s)){n.push({kind:"add",text:s}),r+=1;continue}n.push({kind:"context",text:s}),r+=1}return n},aP=(e,t)=>{var x;const n=fv(e);if(n.length===0)return n;const r=Math.max(0,t==null?void 0:t.contextLines),s=Math.max(1,t==null?void 0:t.maxLines),o=t==null?void 0:t.preserveLeadingMeta,a=new Set(["add","remove","modified_add","modified_remove"]),i=n.map((S,_)=>({line:S,index:_})).filter(({line:S})=>a.has(S.kind)).map(({index:S})=>S);if(i.length===0||n.length<=s)return n.slice(0,s);const c=[];for(let S=0;S<n.length&&((x=n[S])==null?void 0:x.kind)==="meta";S+=1)c.push(S);const d=(S,_)=>{const E=[];return _&&c.length>0&&E.push({start:c[0],end:c[c.length-1]}),i.forEach(T=>{E.push({start:Math.max(0,T-S),end:Math.min(n.length-1,T+S)})}),E.sort((T,P)=>T.start-P.start),E.reduce((T,P)=>{const C=T[T.length-1];return C?P.start<=C.end+1?(C.end=Math.max(C.end,P.end),T):(T.push({...P}),T):(T.push({...P}),T)},[])},h=S=>{const _=[];return S.forEach((E,T)=>{T>0&&_.push({kind:"gap",text:"⋯"});for(let P=E.start;P<=E.end;P+=1)_.push(n[P])}),_};let m=r,g=d(m,o),y=h(g);for(;y.length>s&&m>0;)m-=1,g=d(m,o),y=h(g);return y.length>s&&o&&(g=d(m,!1),y=h(g)),y.length>s?y.slice(0,s):y},iP=e=>{const t=e.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);return t?{oldStart:Number.parseInt(t[1],10),newStart:Number.parseInt(t[2],10)}:null},is=e=>{if(!e)return"";const t=e[0];return t==="+"||t==="-"||t===" "?e.slice(1):e},Br=e=>e==null?null:e+1,lP=e=>{const t=e.split(`
150
+ `),n=[];let r=null,s=null,o=0;for(;o<t.length;){const a=t[o]??"";if(a.startsWith("--- ")||a.startsWith("+++ ")){n.push({kind:"meta",text:a}),o+=1;continue}if(a.startsWith("@@")){const c=iP(a);c&&(r=c.oldStart,s=c.newStart),n.push({kind:"hunk",text:a}),o+=1;continue}if(ti(a)){const c=[];for(;o<t.length&&ti(t[o]??"");)c.push(t[o]??""),o+=1;const d=[];for(;o<t.length&&ni(t[o]??"");)d.push(t[o]??""),o+=1;if(d.length>0){const h=Math.max(c.length,d.length);for(let m=0;m<h;m+=1){const g=c[m],y=d[m];if(g&&y){n.push({kind:"modified",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:is(g),newText:is(y)}),r=Br(r),s=Br(s);continue}if(g){n.push({kind:"remove",oldLineNumber:r??void 0,oldText:is(g)}),r=Br(r);continue}y&&(n.push({kind:"add",newLineNumber:s??void 0,newText:is(y)}),s=Br(s))}}else c.forEach(h=>{n.push({kind:"remove",oldLineNumber:r??void 0,oldText:is(h)}),r=Br(r)});continue}if(ni(a)){n.push({kind:"add",newLineNumber:s??void 0,newText:is(a)}),s=Br(s),o+=1;continue}const i=is(a);n.push({kind:"context",oldLineNumber:r??void 0,newLineNumber:s??void 0,oldText:i,newText:i}),r=Br(r),s=Br(s),o+=1}return n},hv=e=>{let t=0,n=0;for(const r of e.split(`
151
+ `)){if(ni(r)){t+=1;continue}ti(r)&&(n+=1)}return{added:t,removed:n}},rf=e=>{const t=yo(e);if(!t)return null;const n=hv(t.diff.unified);return{added:t.diff.added_lines??n.added,removed:t.diff.removed_lines??n.removed}},Zu=e=>{if(typeof e=="string")return e.replace(/\\n/g,`
152
+ `).replace(/\\t/g," ");if(Array.isArray(e))return e.map(Zu);if(e!==null&&typeof e=="object"){const t={};for(const[n,r]of Object.entries(e))t[n]=Zu(r);return t}return e},uo=e=>{if(!e)return{isJson:!1,formattedText:""};const t=e.trim();if(!t)return{isJson:!1,formattedText:""};if(!(t.startsWith("{")&&t.endsWith("}"))&&!(t.startsWith("[")&&t.endsWith("]")))return{isJson:!1,formattedText:e};try{const n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n)&&Object.keys(n).length===1){const s=Object.keys(n)[0];if((s==="content"||s==="result"||s==="output")&&typeof n[s]=="string")return{isJson:!1,formattedText:n[s].replace(/\\n/g,`
153
+ `).replace(/\\t/g," "),parsedJson:n}}const r=Zu(n);return{isJson:!0,formattedText:JSON.stringify(r,null,2),parsedJson:r}}catch{return{isJson:!1,formattedText:e}}},cP=(e,t={})=>{const n={...eP,...t};return e?e.split(/\r?\n/).length>n.maxLines?!0:e.length>n.maxCharacters:!1},uP=(e,t=320)=>e?e.length<=t?{preview:e,isTruncated:!1}:{preview:e.substring(0,t).trimEnd()+"…",isTruncated:!0}:{preview:"",isTruncated:!1},dP=e=>{if(!e)return"No content";const t=60,n=e.trim(),r=yo(n);if(r){const o=r.file_path.split(/[\\/]/).pop()||r.file_path,a=`${r.operation}: ${o}`;return a.length<=t?a:a.substring(0,t).trimEnd()+"…"}const s=dv(n);if(s){const o=s.data.project_key||s.data.scope,a=`Memory ${s.action}: ${o} (${s.data.total_memories})`;return a.length<=t?a:a.substring(0,t).trimEnd()+"…"}if(n.length<=t)return n;if(n.startsWith("{")||n.startsWith("["))try{const o=JSON.parse(n);if(typeof o=="object"&&o!==null){if(o.type==="mermaid"&&typeof o.chart=="string"&&o.chart.trim().length>0){const d=`Diagram: ${typeof o.title=="string"&&o.title.trim().length>0?o.title.trim():"Mermaid diagram"}`;return d.length<=t?d:d.substring(0,t).trimEnd()+"…"}if(o.type==="conclusion"&&typeof o.conclusion=="string"&&o.conclusion.trim().length>0){const c=o.conclusion.trim();return c.length<=t?c:c.substring(0,t).trimEnd()+"…"}const a=["content","result","output","message","data"].find(c=>c in o&&typeof o[c]=="string");if(a){const c=o[a];return c.length<=t?c:c.substring(0,t).trimEnd()+"…"}if(Array.isArray(o))return`Array with ${o.length} items`;const i=Object.keys(o);return`Object with ${i.length} propert${i.length===1?"y":"ies"}`}}catch{}return n.substring(0,t).trimEnd()+"…"},pv=e=>{switch(e){case"success":return"green";case"error":return"red";case"warning":return"orange";default:return"blue"}},_s=(e,t=2)=>{if(typeof e=="string")return e;try{return JSON.stringify(e,null,t)}catch(n){return console.error("[resultFormatters] Failed to stringify value:",n),String(e)}},{Text:En}=ft,fP=(e,t,n)=>{const r={margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:n?11:t.fontSizeSM,lineHeight:n?1.35:1.5,padding:n?"0 4px":"0 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"};return e.kind==="add"?r.background=t.colorSuccessBg:e.kind==="remove"?r.background=t.colorErrorBg:e.kind==="modified_add"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorSuccess}`):e.kind==="modified_remove"?(r.background=t.colorWarningBg,r.borderLeft=`3px solid ${t.colorError}`):e.kind==="hunk"?(r.background=t.colorFillSecondary,r.color=t.colorTextSecondary):e.kind==="meta"?(r.background=t.colorFillTertiary,r.color=t.colorTextSecondary):e.kind==="gap"&&(r.background=t.colorFillQuaternary,r.color=t.colorTextTertiary,r.textAlign="center",r.fontStyle="italic"),r},Wi=(e,t,n)=>{if(e==="remove"&&t==="old")return n.colorErrorBg;if(e==="add"&&t==="new")return n.colorSuccessBg;if(e==="modified")return t==="old"?n.colorErrorBg:n.colorSuccessBg},Ui=(e,t,n)=>{if(e==="modified")return t==="old"?`3px solid ${n.colorError}`:`3px solid ${n.colorSuccess}`},lp=e=>e==null?"":String(e),ri=({payload:e,defaultViewMode:t="sideBySide",showHeader:n=!0,showViewToggle:r=!0,compact:s=!1,height:o,maxHeight:a=400,unifiedLinesOverride:i})=>{var P;const{t:c}=Ge(),{token:d}=ut.useToken(),[h,m]=b.useState(t),g=b.useMemo(()=>{const C=hv(e.diff.unified);return{added:e.diff.added_lines??C.added,removed:e.diff.removed_lines??C.removed}},[e]),y=b.useMemo(()=>i??fv(e.diff.unified),[e.diff.unified,i]),x=b.useMemo(()=>lP(e.diff.unified),[e.diff.unified]),S=o!==void 0,_={display:"flex",flexDirection:"column",gap:s?6:d.marginSM,minHeight:0,height:S?o:void 0},E={border:`1px solid ${d.colorBorderSecondary}`,borderRadius:s?6:d.borderRadiusSM,overflow:"auto",background:d.colorBgContainer,minHeight:0,flex:S?1:void 0,maxHeight:S?void 0:a},T=s?"small":"middle";return l.jsxs("div",{style:_,children:[n&&l.jsxs("div",{style:{display:"grid",gap:s?2:d.marginXS},children:[e.message?l.jsx(En,{style:{fontSize:s?11:d.fontSizeSM},children:e.message}):null,l.jsxs(He,{size:s?2:8,wrap:!0,children:[l.jsxs(En,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(En,{strong:!0,children:[c("common.file"),":"]})," ",l.jsx(En,{code:!0,children:e.file_path})]}),e.workspace?l.jsxs(En,{style:{fontSize:s?11:d.fontSizeSM},children:[l.jsxs(En,{strong:!0,children:[c("common.workspace"),":"]})," ",l.jsx(En,{code:!0,children:e.workspace})]}):null,l.jsxs(En,{style:{color:d.colorSuccess,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",g.added]}),l.jsxs(En,{style:{color:d.colorError,fontSize:s?11:d.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",g.removed]})]}),(P=e.checkpoint)!=null&&P.created?l.jsxs(En,{style:{fontSize:s?d.fontSizeSM-1:d.fontSizeSM},children:[l.jsxs(En,{strong:!0,children:[c("components.toolResult.checkpoint"),":"]})," ",l.jsx(En,{code:!0,children:e.checkpoint.path})]}):l.jsx(En,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.checkpointNone")})]}),r?l.jsxs(He,{size:s?2:8,wrap:!0,children:[l.jsx(je,{size:T,type:h==="sideBySide"?"primary":"default",onClick:()=>m("sideBySide"),children:c("components.toolResult.sideBySide",{defaultValue:"Side by side"})}),l.jsx(je,{size:T,type:h==="unified"?"primary":"default",onClick:()=>m("unified"),children:c("components.toolResult.unified",{defaultValue:"Unified"})})]}):null,l.jsx("div",{style:E,children:h==="unified"?y.length>0?y.map((C,A)=>l.jsx("pre",{style:fP(C,d,s),children:C.text||" "},`${A}-${C.kind}`)):l.jsx(En,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})}):x.length>0?l.jsx("div",{children:x.map((C,A)=>{if(C.kind==="meta"||C.kind==="hunk")return l.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:s?11:d.fontSizeSM,lineHeight:s?1.35:1.5,padding:s?"2px 4px":"4px 8px",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",background:C.kind==="meta"?d.colorFillTertiary:d.colorFillSecondary,color:d.colorTextSecondary,borderBottom:`1px solid ${d.colorBorderSecondary}`},children:C.text||" "},`meta-${A}`);const I=s?11:d.fontSizeSM,O=s?"2px 4px":"4px 8px",$={padding:O,textAlign:"right",color:d.colorTextTertiary,fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:I,borderRight:`1px solid ${d.colorBorderSecondary}`,userSelect:"none"},B={padding:O,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",fontSize:I};return l.jsxs("div",{style:{display:"grid",gridTemplateColumns:s?"48px 1fr 48px 1fr":"64px 1fr 64px 1fr",borderBottom:`1px solid ${d.colorBorderSecondary}`},children:[l.jsx("div",{style:{...$,background:Wi(C.kind,"old",d),borderLeft:Ui(C.kind,"old",d)},children:lp(C.oldLineNumber)}),l.jsx("div",{style:{...B,background:Wi(C.kind,"old",d),borderRight:`1px solid ${d.colorBorderSecondary}`,borderLeft:Ui(C.kind,"old",d)},children:C.oldText??" "}),l.jsx("div",{style:{...$,background:Wi(C.kind,"new",d),borderLeft:Ui(C.kind,"new",d)},children:lp(C.newLineNumber)}),l.jsx("div",{style:{...B,background:Wi(C.kind,"new",d),borderLeft:Ui(C.kind,"new",d)},children:C.newText??" "})]},`side-${A}`)})}):l.jsx(En,{type:"secondary",style:{display:"block",padding:s?"4px":"8px",fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.noDiffPreview",{defaultValue:"No diff preview available."})})}),e.diff.truncated?l.jsx(En,{type:"secondary",style:{fontSize:s?11:d.fontSizeSM},children:c("components.toolResult.diffTruncated")}):null]})},{Text:hP}=ft,pP=e=>e.filter(t=>t!=null&&t!==!1&&!(typeof t=="string"&&t.trim()==="")),mP=(e,t)=>e.flatMap((n,r)=>r===0?[l.jsx(dt.Fragment,{children:n},`item-${r}`)]:[l.jsx(dt.Fragment,{children:t},`sep-${r}`),l.jsx(dt.Fragment,{children:n},`item-${r}`)]),Xc=({items:e,separator:t=" · ",nowrap:n=!1,block:r=!1,style:s,className:o,ellipsis:a,...i})=>{const c=pP(e);return c.length===0?null:l.jsx(hP,{type:"secondary",className:o,ellipsis:a,style:{fontSize:11,lineHeight:1.35,whiteSpace:n?"nowrap":void 0,display:r?"block":void 0,...s},...i,children:mP(c,t)})},{Text:jn}=ft,gP=220,yP=560,vP=420,cl=e=>e.split(/[\\/]/).pop()||e,bP=e=>{const t=e.replace(/\\/g,"/"),n=t.lastIndexOf("/");return n<=0?null:t.slice(0,n)},cp=e=>e.added+e.removed,ed=e=>e.toLocaleString(),up=(e,t)=>`(+${ed(e)} / -${ed(t)})`,SP=e=>({operation:"session_diff_review",file_path:e.filePath,workspace:e.workspace,diff:{unified:e.unifiedDiff,added_lines:e.added,removed_lines:e.removed,truncated:e.truncated}}),td=(e,t)=>{const n=[...e];return t==="path"?(n.sort((r,s)=>r.filePath.localeCompare(s.filePath)),n):(n.sort((r,s)=>{const o=cp(s)-cp(r);return o!==0?o:r.filePath.localeCompare(s.filePath)}),n)},Zs=({value:e,kind:t,compact:n=!1})=>{const{token:r}=ut.useToken(),s=t==="added";return l.jsxs(jn,{style:{color:s?r.colorSuccess:r.colorError,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"nowrap",fontSize:n?11:void 0},children:[s?"+":"-",ed(e)]})},dp=({files:e,changedTools:t,totalAdded:n,totalRemoved:r,sortMode:s,selectedFilePath:o,compact:a=!1,onSortModeChange:i,onSelectFile:c})=>{const{token:d}=ut.useToken(),h=b.useMemo(()=>td(e,s),[e,s]),m=b.useMemo(()=>e.filter(S=>S.truncated).length,[e]),g=b.useMemo(()=>td(e,"magnitude")[0]??null,[e]),y=a?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},x=b.useMemo(()=>{const S=[];return g&&S.push(`Largest: ${cl(g.filePath)} ${up(g.added,g.removed)}`),m>0&&S.push(`${m} truncated preview${m>1?"s":""}`),S},[g,m]);return l.jsxs(Ee,{vertical:!0,gap:a?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},children:[l.jsxs(Ee,{vertical:!0,gap:a?4:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Ee,{align:"flex-start",justify:"space-between",gap:a?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(He,{size:a?6:d.marginXS,wrap:!0,children:[l.jsx(Jg,{style:{color:d.colorPrimary}}),l.jsx(jn,{strong:!0,style:a?{fontSize:12}:void 0,children:"Session diffs"}),a?null:l.jsx(jn,{type:"secondary",children:"Review changed files, then open one file at a time."})]}),l.jsxs(He,{size:a?2:4,wrap:!0,children:[a?l.jsx(Xc,{nowrap:!0,items:[`${e.length} files`,`${t} tools`]}):l.jsxs(l.Fragment,{children:[l.jsxs(Ze,{style:y,children:[e.length," files"]}),l.jsxs(Ze,{style:y,children:[t," tools"]})]}),l.jsx(Zs,{value:n,kind:"added"}),l.jsx(Zs,{value:r,kind:"removed"})]})]}),a?l.jsx(Xc,{block:!0,items:x}):l.jsxs(l.Fragment,{children:[g?l.jsxs(jn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:["Largest change: ",cl(g.filePath)," ",up(g.added,g.removed)]}):null,m>0?l.jsxs(jn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:[m," diff",m>1?"s":""," truncated in preview."]}):null]})]}),l.jsxs(Ee,{align:"center",justify:"space-between",gap:a?d.marginXS:d.marginSM,wrap:!0,children:[l.jsx(jn,{strong:!0,style:a?{fontSize:12}:void 0,children:a?"Files":"Changed files"}),e.length>1?l.jsxs(He,{size:a?4:8,wrap:!0,children:[l.jsx(je,{size:"small",type:s==="magnitude"?"primary":"default",onClick:()=>i("magnitude"),"data-testid":"session-diff-sort-magnitude",children:a?"Largest":"Largest changes"}),l.jsx(je,{size:"small",type:s==="path"?"primary":"default",onClick:()=>i("path"),"data-testid":"session-diff-sort-path",children:"Path"})]}):null]}),l.jsx("div",{"data-testid":"session-diff-file-list",style:{display:"grid",gridTemplateColumns:"1fr",gap:a?4:6,width:"100%",minWidth:0,maxHeight:a?vP:yP,overflowY:"auto",overflowX:"hidden"},children:h.map(S=>{const _=bP(S.filePath),E=o===S.filePath,T=a?[_,S.toolCount&&S.toolCount>1?`${S.toolCount} tool steps`:null]:[];return l.jsx("button",{type:"button","aria-pressed":E,"data-selected":E?"true":"false",onClick:()=>c(S.filePath),"data-testid":"session-diff-file-row","data-file-path":S.filePath,style:{width:"100%",minWidth:0,padding:a?"6px 8px":`${d.paddingSM}px`,borderRadius:d.borderRadiusSM,border:`1px solid ${E?d.colorPrimary:d.colorBorderSecondary}`,background:E?d.colorFillSecondary:d.colorFillTertiary,boxShadow:E?`inset 0 0 0 1px ${d.colorPrimary}`:"none",cursor:"pointer",textAlign:"left",transition:"border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease"},children:l.jsxs(Ee,{align:"flex-start",justify:"space-between",gap:a?d.marginXS:d.marginSM,style:{width:"100%"},children:[l.jsxs(Ee,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsxs(Ee,{align:"center",gap:d.marginXS,style:{minWidth:0},children:[l.jsx(Jr,{style:{color:E?d.colorPrimary:d.colorTextSecondary,flex:"0 0 auto"}}),l.jsx(jn,{strong:!0,ellipsis:{tooltip:S.filePath},style:{display:"block",flex:1,minWidth:0},children:cl(S.filePath)}),S.truncated?a?l.jsx(jn,{type:"secondary",style:{fontSize:11,flex:"0 0 auto"},children:"· trunc."}):l.jsx(Ze,{color:"warning",style:{...y,flex:"0 0 auto"},children:"Truncated"}):null]}),a?l.jsx(Xc,{block:!0,items:T,style:{minWidth:0,whiteSpace:"normal",wordBreak:"break-word"}}):l.jsxs(l.Fragment,{children:[_?l.jsx(jn,{type:"secondary",ellipsis:{tooltip:S.filePath},style:{display:"block",minWidth:0,fontSize:d.fontSizeSM},children:_}):null,S.toolCount&&S.toolCount>1?l.jsxs(jn,{type:"secondary",style:{fontSize:Math.max(d.fontSizeSM-1,11)},children:["Touched by ",S.toolCount," tool steps"]}):null]})]}),l.jsxs(Ee,{vertical:!0,align:"flex-end",gap:a?1:0,style:{flex:"0 0 auto"},children:[l.jsx(Zs,{value:S.added,kind:"added",compact:a}),l.jsx(Zs,{value:S.removed,kind:"removed",compact:a})]})]})},S.filePath)})})]})},xP=({file:e,currentPosition:t,totalFiles:n,canGoPrevious:r,canGoNext:s,compact:o=!1,onPrevious:a,onNext:i,onBack:c})=>{const{token:d}=ut.useToken(),h=b.useMemo(()=>SP(e),[e]);return l.jsxs(Ee,{vertical:!0,gap:o?d.marginXS:d.marginSM,style:{width:"100%",minWidth:0},"data-testid":"session-diff-detail-view",children:[l.jsxs(Ee,{align:"center",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(He,{size:o?4:8,wrap:!0,children:[l.jsx(je,{type:"text",size:"small",icon:l.jsx(Ix,{}),onClick:c,"data-testid":"session-diff-back",style:{paddingInline:0},children:"Back to files"}),l.jsxs(jn,{type:"secondary","data-testid":"session-diff-position",style:o?{fontSize:11}:void 0,children:["File ",t," of ",n]})]}),n>1?l.jsxs(He,{size:o?4:8,wrap:!0,children:[l.jsx(je,{size:"small",icon:l.jsx(Eu,{}),onClick:a,disabled:!r,"data-testid":"session-diff-prev",children:"Previous"}),l.jsx(je,{size:"small",icon:l.jsx(Jr,{}),onClick:i,disabled:!s,"data-testid":"session-diff-next",children:"Next"})]}):null]}),l.jsxs(Ee,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsxs(Ee,{align:"flex-start",justify:"space-between",gap:o?d.marginXS:d.marginSM,wrap:!0,children:[l.jsxs(Ee,{vertical:!0,gap:2,style:{flex:1,minWidth:0},children:[l.jsx(jn,{strong:!0,ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0},children:cl(e.filePath)}),l.jsx(jn,{type:"secondary",ellipsis:{tooltip:e.filePath},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.filePath}),e.workspace?l.jsx(jn,{type:"secondary",ellipsis:{tooltip:e.workspace},style:{display:"block",minWidth:0,fontSize:o?11:d.fontSizeSM},children:e.workspace}):null]}),l.jsxs(He,{size:o?2:4,wrap:!0,children:[e.truncated?l.jsx(Ze,{color:"warning",style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:o?"Trunc.":"Truncated"}):null,e.toolCount&&e.toolCount>1?l.jsxs(Ze,{style:o?{marginInlineEnd:0,fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0},children:[e.toolCount," tools"]}):null,l.jsx(Zs,{value:e.added,kind:"added",compact:o}),l.jsx(Zs,{value:e.removed,kind:"removed",compact:o})]})]}),o?null:l.jsx(jn,{type:"secondary",style:{fontSize:d.fontSizeSM},children:"Review this file in side-by-side or unified mode."})]}),l.jsx(ri,{payload:h,defaultViewMode:"sideBySide",showHeader:!1,showViewToggle:!0,compact:o,maxHeight:o?"calc(100vh - 240px)":"calc(100vh - 280px)"})]})},mv=({sessionDiffSummary:e,sessionId:t,compact:n=!1})=>{const{token:r}=ut.useToken(),s=!!(e&&e.files.length>0),[o,a]=b.useState(s),[i,c]=b.useState(s),[d,h]=b.useState("magnitude"),[m,g]=b.useState(null);b.useEffect(()=>{if(s){a(!0);const T=window.setTimeout(()=>c(!0),0);return()=>window.clearTimeout(T)}c(!1);const E=window.setTimeout(()=>a(!1),gP);return()=>window.clearTimeout(E)},[s]),b.useEffect(()=>{h("magnitude"),g(null)},[t]);const y=b.useMemo(()=>(e==null?void 0:e.files)??[],[e]),x=b.useMemo(()=>td(y,d),[y,d]),S=b.useMemo(()=>x.findIndex(E=>E.filePath===m),[x,m]),_=S>=0?x[S]:null;return b.useEffect(()=>{m&&(y.some(E=>E.filePath===m)||g(null))},[y,m]),!o||!e?null:l.jsxs("div",{className:`active-tool-card-wrapper ${i?"visible":""}`,"aria-hidden":!i,"data-testid":"session-diff-card",style:{width:"100%",minWidth:0},children:[l.jsx("div",{style:n?{width:"100%",minWidth:0,padding:"2px 0 0"}:{width:"100%",minWidth:0},children:n?l.jsx(dp,{files:y,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:m,compact:n,onSortModeChange:h,onSelectFile:g}):l.jsx(en,{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(dp,{files:y,changedTools:e.changedTools,totalAdded:e.totalAdded,totalRemoved:e.totalRemoved,sortMode:d,selectedFilePath:m,compact:n,onSortModeChange:h,onSelectFile:g})})}),l.jsx(Ul,{title:"Diff details",placement:"right",open:!!_,onClose:()=>g(null),width:"min(1280px, calc(100vw - 24px))",styles:{body:{padding:n?r.paddingXS:r.paddingLG,minWidth:0}},destroyOnClose:!0,children:_?l.jsx(xP,{file:_,currentPosition:S+1,totalFiles:x.length,canGoPrevious:S>0,canGoNext:S>=0&&S<x.length-1,compact:n,onPrevious:()=>{S>0&&g(x[S-1].filePath)},onNext:()=>{S>=0&&S<x.length-1&&g(x[S+1].filePath)},onBack:()=>g(null)}):null})]})},wP=e=>{if(!e)return;const{activeLeafId:t,setLeafSessionId:n,setActiveLeafId:r}=gt.getState();n(t,e),r(t),ae.getState().selectSession(e)},_P=["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(" "),CP=["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(" "),kP=["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(" "),TP=["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(" "),PP=["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(" "),EP=["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(" "),MP=["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(" "),AP=["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(" "),RP=["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(" "),jP=["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(" "),IP=["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(" "),OP=["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(" "),$P=["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(" "),LP=["development","debugging","analysis","documentation","operations"],DP={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"}},FP=(e,t)=>{const n=e.find(s=>s.id===t),r=e.find(s=>s.id==="general_assistant")||e[0];return{systemPromptId:(n==null?void 0:n.id)||(r==null?void 0:r.id)||"",baseSystemPrompt:(n==null?void 0:n.content)||(r==null?void 0:r.content)||""}},NP=({sessionId:e=null,embedded:t=!1,hideHeader:n=!1,layoutMode:r="default"})=>{var H;const{t:s}=Ge(),{token:o}=ut.useToken(),{message:a}=Dn.useApp(),i=ae(L=>e??L.currentSessionId),c=ae(Is(i)),d=ae(L=>L.addChat),h=ae(L=>L.lastSelectedPromptId),m=ae(L=>L.setInputContent),g=ae(L=>L.systemPrompts),y=ae(L=>L.chats),[x,S]=b.useState(null),[_,E]=b.useState(""),T=(c==null?void 0:c.config.workspacePath)??((H=y.find(L=>L.config.workspacePath))==null?void 0:H.config.workspacePath),P=b.useMemo(()=>[{id:"blank",icon:l.jsx(Rd,{}),title:s("chat.emptyLauncher.actions.blank.title","Blank session"),description:s("chat.emptyLauncher.actions.blank.description","Start from scratch with the default assistant and an empty composer."),sessionTitle:s("chat.emptyLauncher.actions.blank.sessionTitle","New Session"),prefill:s("chat.emptyLauncher.actions.blank.prefill",""),category:"development"},{id:"codeReview",icon:l.jsx(Ox,{}),title:s("chat.emptyLauncher.actions.codeReview.title","Code review"),description:s("chat.emptyLauncher.actions.codeReview.description","Open a review-focused session with an editable review brief."),sessionTitle:s("chat.emptyLauncher.actions.codeReview.sessionTitle","Code Review"),prefill:s("chat.emptyLauncher.actions.codeReview.prefill","Review the relevant code changes in this workspace or repository. Start with the overall scope, then list risks, notable diffs, and the most important fixes."),baseSystemPrompt:_P,category:"development",recommendWorkspace:!0},{id:"implementFeature",icon:l.jsx(Id,{}),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:kP,category:"development",recommendWorkspace:!0},{id:"refactor",icon:l.jsx(Jg,{}),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:MP,category:"development",recommendWorkspace:!0},{id:"bugInvestigation",icon:l.jsx(Xg,{}),title:s("chat.emptyLauncher.actions.bugInvestigation.title","Bug investigation"),description:s("chat.emptyLauncher.actions.bugInvestigation.description","Diagnose issues by analyzing code, logs, and runtime behavior."),sessionTitle:s("chat.emptyLauncher.actions.bugInvestigation.sessionTitle","Bug Investigation"),prefill:s("chat.emptyLauncher.actions.bugInvestigation.prefill","Help me investigate a bug. I'll describe the symptoms and share relevant code or logs. Trace the root cause and suggest targeted fixes."),baseSystemPrompt:CP,category:"debugging",recommendWorkspace:!0},{id:"explainError",icon:l.jsx(Qg,{}),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:PP,category:"debugging"},{id:"tokenUsage",icon:l.jsx($x,{}),title:s("chat.emptyLauncher.actions.tokenUsage.title","Token usage investigation"),description:s("chat.emptyLauncher.actions.tokenUsage.description","Diagnose context growth, truncation risk, and token budget pressure."),sessionTitle:s("chat.emptyLauncher.actions.tokenUsage.sessionTitle","Token Usage Investigation"),prefill:s("chat.emptyLauncher.actions.tokenUsage.prefill","Help me investigate token usage, context growth, and truncation risk for this session or workflow. Summarize the likely drivers and recommend concrete next fixes."),baseSystemPrompt:$P,category:"debugging"},{id:"architectureReview",icon:l.jsx(Lx,{}),title:s("chat.emptyLauncher.actions.architectureReview.title","Read repo architecture"),description:s("chat.emptyLauncher.actions.architectureReview.description","Analyze repository structure, modules, and architectural patterns."),sessionTitle:s("chat.emptyLauncher.actions.architectureReview.sessionTitle","Architecture Review"),prefill:s("chat.emptyLauncher.actions.architectureReview.prefill","Analyze the architecture of this repository. Map the key modules, data flow, abstractions, and dependency patterns. Identify strengths and potential improvements."),baseSystemPrompt:TP,category:"analysis",recommendWorkspace:!0},{id:"compareFiles",icon:l.jsx(Dx,{}),title:s("chat.emptyLauncher.actions.compareFiles.title","Compare files"),description:s("chat.emptyLauncher.actions.compareFiles.description","Diff and understand differences between files or code sections."),sessionTitle:s("chat.emptyLauncher.actions.compareFiles.sessionTitle","Compare Files"),prefill:s("chat.emptyLauncher.actions.compareFiles.prefill","Compare the following files or code sections. Highlight key differences, their implications, and any potential risks."),baseSystemPrompt:EP,category:"analysis",recommendWorkspace:!0},{id:"releaseNotes",icon:l.jsx(Sl,{}),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:AP,category:"documentation",recommendWorkspace:!0},{id:"summarizeWork",icon:l.jsx(Fx,{}),title:s("chat.emptyLauncher.actions.summarizeWork.title","Summarize work"),description:s("chat.emptyLauncher.actions.summarizeWork.description","Create a work summary for standups or weekly status reports."),sessionTitle:s("chat.emptyLauncher.actions.summarizeWork.sessionTitle","Work Summary"),prefill:s("chat.emptyLauncher.actions.summarizeWork.prefill","Help me summarize my recent work for a status update. Pull key accomplishments, blockers, and next steps."),baseSystemPrompt:RP,category:"documentation"},{id:"writeDocs",icon:l.jsx(Sl,{}),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:jP,category:"documentation",recommendWorkspace:!0},{id:"createSchedule",icon:l.jsx(Ts,{}),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:IP,category:"operations"},{id:"sessionReview",icon:l.jsx(Pu,{}),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:OP,category:"operations"}],[s]),C=_.trim().toLowerCase(),A=b.useMemo(()=>C?P.filter(L=>L.title.toLowerCase().includes(C)||L.description.toLowerCase().includes(C)):P,[C,P]),I=b.useMemo(()=>{const L={};for(const Z of A)L[Z.category]||(L[Z.category]=[]),L[Z.category].push(Z);return L},[A]),O=b.useCallback(L=>{typeof window>"u"||window.setTimeout(()=>{window.dispatchEvent(new CustomEvent(Gu,{detail:{sessionId:L}}))},0)},[]),$=b.useCallback(async L=>{if(!x){S(L.id);try{const Z=FP(g,h),D=await d({title:L.sessionTitle,createdAt:Date.now(),messages:[],config:{systemPromptId:Z.systemPromptId,baseSystemPrompt:L.baseSystemPrompt??Z.baseSystemPrompt,lastUsedEnhancedPrompt:null,...T?{workspacePath:T}:{}}});wP(D),L.prefill.trim().length>0&&m(D,L.prefill),O(D)}catch(Z){console.error("[EmptyTaskLauncher] Failed to create session",Z),a.error(Z instanceof Error?Z.message:s("chat.emptyLauncher.errors.createFailed","Failed to create session"))}finally{S(null)}}},[d,h,a,x,O,m,g,s,T]),B=b.useMemo(()=>({"--lotus-empty-launcher-border":o.colorBorderSecondary,"--lotus-empty-launcher-border-hover":o.colorPrimaryBorder,"--lotus-empty-launcher-bg":o.colorBgElevated,"--lotus-empty-launcher-icon-bg":o.colorPrimaryBg,"--lotus-empty-launcher-icon-color":o.colorPrimary,"--lotus-empty-launcher-text":o.colorText,"--lotus-empty-launcher-text-secondary":o.colorTextSecondary,"--lotus-empty-launcher-shadow":o.boxShadowSecondary,"--lotus-empty-launcher-shadow-hover":o.boxShadow,"--lotus-empty-launcher-category-border":o.colorBorderSecondary,"--lotus-empty-launcher-search-bg":o.colorBgContainer,"--lotus-empty-launcher-badge-bg":o.colorPrimaryBg,"--lotus-empty-launcher-badge-text":o.colorPrimary}),[o]),te=!!T;return l.jsxs("div",{className:`lotus-empty-task-launcher ${t?"is-embedded":""} ${n?"is-headerless":""} ${r==="staggered"?"is-staggered":""}`,style:B,children:[!n&&l.jsxs("div",{className:"lotus-empty-task-launcher__header",children:[l.jsx(ft.Title,{level:t?4:3,style:{margin:0},children:s("chat.emptyLauncher.title","Start with a task")}),l.jsx(ft.Paragraph,{type:"secondary",className:"lotus-empty-task-launcher__subtitle",children:s("chat.emptyLauncher.subtitle","Create a focused session in this pane and prefill the first message before you send it.")}),l.jsx(ft.Text,{type:"secondary",className:"lotus-empty-task-launcher__hint",children:s("chat.emptyLauncher.hint","Nothing is sent automatically — you can edit the prompt first.")})]}),l.jsx("div",{className:"lotus-empty-task-launcher__search",children:l.jsx(Rs,{placeholder:s("chat.emptyLauncher.searchPlaceholder","Search templates..."),prefix:l.jsx(Pu,{style:{color:o.colorTextQuaternary}}),value:_,onChange:L=>E(L.target.value),allowClear:!0,size:"middle",variant:"filled"})}),l.jsxs("div",{className:"lotus-empty-task-launcher__categories",children:[LP.map(L=>{const Z=I[L];if(!Z||Z.length===0)return null;const D=DP[L];return l.jsxs("div",{className:"lotus-empty-task-launcher__category",children:[l.jsx(ft.Text,{type:"secondary",className:"lotus-empty-task-launcher__category-label",children:s(D.titleKey,D.fallback)}),l.jsx("div",{className:"lotus-empty-task-launcher__grid",children:Z.map(F=>{const de=x===F.id,Q=F.recommendWorkspace&&te;return l.jsxs("button",{type:"button",className:"lotus-empty-task-card",onClick:()=>{$(F)},disabled:x!==null,"aria-busy":de,"aria-label":F.title,children:[l.jsx("div",{className:"lotus-empty-task-card__icon","aria-hidden":!0,children:de?l.jsx(oo,{}):F.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:F.title}),l.jsx(Nx,{className:"lotus-empty-task-card__arrow","aria-hidden":!0})]}),l.jsx("p",{className:"lotus-empty-task-card__description",children:F.description}),Q&&l.jsx("div",{className:"lotus-empty-task-card__badges",children:l.jsxs("span",{className:"lotus-empty-task-card__badge",title:T,children:["📂 ",s("chat.emptyLauncher.badges.workspace","workspace")]})})]})]},F.id)})})]},L)}),A.length===0&&l.jsx("div",{className:"lotus-empty-task-launcher__no-results",children:l.jsx(ft.Text,{type:"secondary",children:s("chat.emptyLauncher.noResults","No templates match your search. Try a different keyword or start a blank session.")})})]})]})},zP=({sessionId:e,isCenteredLayout:t,maxWidth:n,onWorkflowDraftChange:r,showMessagesView:s,sessionDiffSummary:o,contextUsageIndicator:a,showSessionDiffCard:i=!0})=>l.jsx(Ee,{justify:"center",className:`chat-view-input-container-wrapper ${s?"messages-view":"centered-view"}`,children:l.jsxs("div",{style:{width:"100%",maxWidth:s?n:"min(100%, 920px)",margin:s?"0 auto":void 0,position:"relative",paddingBottom:s?12:0,display:"flex",flexDirection:"column",gap:s?0:24},children:[s&&i?l.jsx(mv,{sessionDiffSummary:o,sessionId:e}):null,!s&&e?l.jsx(NP,{sessionId:e}):null,l.jsx(ZT,{sessionId:e,isCenteredLayout:t,onWorkflowDraftChange:r,statusIndicator:a})]})});function Ws(e,t,n){let r=n.initialDeps??[],s;function o(){var a,i,c,d;let h;n.key&&((a=n.debug)!=null&&a.call(n))&&(h=Date.now());const m=e();if(!(m.length!==r.length||m.some((x,S)=>r[S]!==x)))return s;r=m;let y;if(n.key&&((i=n.debug)!=null&&i.call(n))&&(y=Date.now()),s=t(...m),n.key&&((c=n.debug)!=null&&c.call(n))){const x=Math.round((Date.now()-h)*100)/100,S=Math.round((Date.now()-y)*100)/100,_=S/16,E=(T,P)=>{for(T=String(T);T.length<P;)T=" "+T;return T};console.info(`%c⏱ ${E(S,5)} /${E(x,5)} ms`,`
154
+ font-size: .6rem;
155
+ font-weight: bold;
156
+ color: hsl(${Math.max(0,Math.min(120-120*_,120))}deg 100% 31%);`,n==null?void 0:n.key)}return(d=n==null?void 0:n.onChange)==null||d.call(n,s),s}return o.updateDeps=a=>{r=a},o}function fp(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const BP=(e,t)=>Math.abs(e-t)<1.01,WP=(e,t,n)=>{let r;return function(...s){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,s),n)}},hp=e=>{const{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},UP=e=>e,qP=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let s=t;s<=n;s++)r.push(s);return r},HP=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const s=a=>{const{width:i,height:c}=a;t({width:Math.round(i),height:Math.round(c)})};if(s(hp(n)),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(a=>{const i=()=>{const c=a[0];if(c!=null&&c.borderBoxSize){const d=c.borderBoxSize[0];if(d){s({width:d.inlineSize,height:d.blockSize});return}}s(hp(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},pp={passive:!0},mp=typeof window>"u"?!0:"onscrollend"in window,YP=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let s=0;const o=e.options.useScrollendEvent&&mp?()=>{}:WP(r,()=>{t(s,!1)},e.options.isScrollingResetDelay),a=h=>()=>{const{horizontal:m,isRtl:g}=e.options;s=m?n.scrollLeft*(g&&-1||1):n.scrollTop,o(),t(s,h)},i=a(!0),c=a(!1);c(),n.addEventListener("scroll",i,pp);const d=e.options.useScrollendEvent&&mp;return d&&n.addEventListener("scrollend",c,pp),()=>{n.removeEventListener("scroll",i),d&&n.removeEventListener("scrollend",c)}},KP=(e,t,n)=>{if(t!=null&&t.borderBoxSize){const r=t.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},XP=(e,{adjustments:t=0,behavior:n},r)=>{var s,o;const a=e+t;(o=(s=r.scrollElement)==null?void 0:s.scrollTo)==null||o.call(s,{[r.options.horizontal?"left":"top"]:a,behavior:n})};class VP{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(s=>{s.forEach(o=>{const a=()=>{this._measureElement(o.target,o)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()})}));return{disconnect:()=>{var s;(s=r())==null||s.disconnect(),n=null},observe:s=>{var o;return(o=r())==null?void 0:o.observe(s,{box:"border-box"})},unobserve:s=>{var o;return(o=r())==null?void 0:o.unobserve(s)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,s])=>{typeof s>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:UP,rangeExtractor:qP,onChange:()=>{},measureElement:KP,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=Ws(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=o,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,r)=>{const s=new Map,o=new Map;for(let a=r-1;a>=0;a--){const i=n[a];if(s.has(i.lane))continue;const c=o.get(i.lane);if(c==null||i.end>c.end?o.set(i.lane,i):i.end<c.end&&s.set(i.lane,!0),s.size===this.options.lanes)break}return o.size===this.options.lanes?Array.from(o.values()).sort((a,i)=>a.end===i.end?a.index-i.index:a.end-i.end)[0]:void 0},this.getMeasurementOptions=Ws(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(n,r,s,o,a)=>(this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:a}),{key:!1}),this.getMeasurements=Ws(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:s,getItemKey:o,enabled:a},i)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(h=>{this.itemSizeCache.set(h.key,h.size)}));const c=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const d=this.measurementsCache.slice(0,c);for(let h=c;h<n;h++){const m=o(h),g=this.options.lanes===1?d[h-1]:this.getFurthestMeasurement(d,h),y=g?g.end+this.options.gap:r+s,x=i.get(m),S=typeof x=="number"?x:this.options.estimateSize(h),_=y+S,E=g?g.lane:h%this.options.lanes;d[h]={index:h,start:y,size:S,end:_,key:m,lane:E}}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Ws(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(n,r,s,o)=>this.range=n.length>0&&r>0?GP({measurements:n,outerSize:r,scrollOffset:s,lanes:o}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Ws(()=>{let n=null,r=null;const s=this.calculateRange();return s&&(n=s.startIndex,r=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,n,r]),[this.options.rangeExtractor,this.options.overscan,this.options.count,n,r]},(n,r,s,o,a)=>o===null||a===null?[]:n({startIndex:o,endIndex:a,overscan:r,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,s=n.getAttribute(r);return s?parseInt(s,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this._measureElement=(n,r)=>{const s=this.indexFromElement(n),o=this.measurementsCache[s];if(!o)return;const a=o.key,i=this.elementsCache.get(a);i!==n&&(i&&this.observer.unobserve(i),this.observer.observe(n),this.elementsCache.set(a,n)),n.isConnected&&this.resizeItem(s,this.options.measureElement(n,r,this))},this.resizeItem=(n,r)=>{const s=this.measurementsCache[n];if(!s)return;const o=this.itemSizeCache.get(s.key)??s.size,a=r-o;a!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(s,a,this):s.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=a,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(s.index),this.itemSizeCache=new Map(this.itemSizeCache.set(s.key,r)),this.notify(!1))},this.measureElement=n=>{if(!n){this.elementsCache.forEach((r,s)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(s))});return}this._measureElement(n,void 0)},this.getVirtualItems=Ws(()=>[this.getVirtualIndexes(),this.getMeasurements()],(n,r)=>{const s=[];for(let o=0,a=n.length;o<a;o++){const i=n[o],c=r[i];s.push(c)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return fp(r[gv(0,r.length-1,s=>fp(r[s]).start,n)])},this.getOffsetForAlignment=(n,r,s=0)=>{const o=this.getSize(),a=this.getScrollOffset();r==="auto"&&(r=n>=a+o?"end":"start"),r==="center"?n+=(s-o)/2:r==="end"&&(n-=o);const i=this.getTotalSize()+this.options.scrollMargin-o;return Math.max(Math.min(i,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const s=this.measurementsCache[n];if(!s)return;const o=this.getSize(),a=this.getScrollOffset();if(r==="auto")if(s.end>=a+o-this.options.scrollPaddingEnd)r="end";else if(s.start<=a+this.options.scrollPaddingStart)r="start";else return[a,r];const i=r==="end"?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,r,s.size),r]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(n,{align:r="start",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(n,r),{adjustments:void 0,behavior:s})},this.scrollToIndex=(n,{align:r="auto",behavior:s}={})=>{s==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),n=Math.max(0,Math.min(n,this.options.count-1));let o=0;const a=10,i=d=>{if(!this.targetWindow)return;const h=this.getOffsetForIndex(n,d);if(!h){console.warn("Failed to get offset for index:",n);return}const[m,g]=h;this._scrollToOffset(m,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{const y=this.getScrollOffset(),x=this.getOffsetForIndex(n,g);if(!x){console.warn("Failed to get offset for index:",n);return}BP(x[0],y)||c(g)})},c=d=>{this.targetWindow&&(o++,o<a?this.targetWindow.requestAnimationFrame(()=>i(d)):console.warn(`Failed to scroll to index ${n} after ${a} attempts.`))};i(r)},this.scrollBy=(n,{behavior:r}={})=>{r==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+n,{adjustments:void 0,behavior:r})},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let s;if(r.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((n=r[r.length-1])==null?void 0:n.end)??0;else{const o=Array(this.options.lanes).fill(null);let a=r.length-1;for(;a>=0&&o.some(i=>i===null);){const i=r[a];o[i.lane]===null&&(o[i.lane]=i.end),a--}s=Math.max(...o.filter(i=>i!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:r,behavior:s})=>{this.options.scrollToFn(n,{behavior:s,adjustments:r},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(t)}}const gv=(e,t,n,r)=>{for(;e<=t;){const s=(e+t)/2|0,o=n(s);if(o<r)e=s+1;else if(o>r)t=s-1;else return s}return e>0?e-1:0};function GP({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const s=e.length-1,o=c=>e[c].start;if(e.length<=r)return{startIndex:0,endIndex:s};let a=gv(0,s,o,n),i=a;if(r===1)for(;i<s&&e[i].end<n+t;)i++;else if(r>1){const c=Array(r).fill(0);for(;i<s&&c.some(h=>h<n+t);){const h=e[i];c[h.lane]=h.end,i++}const d=Array(r).fill(n+t);for(;a>=0&&d.some(h=>h>=n);){const h=e[a];d[h.lane]=h.start,a--}a=Math.max(0,a-a%r),i=Math.min(s,i+(r-1-i%r))}return{startIndex:a,endIndex:i}}const gp=typeof document<"u"?b.useLayoutEffect:b.useEffect;function JP(e){const t=b.useReducer(()=>({}),{})[1],n={...e,onChange:(s,o)=>{var a;o?zx.flushSync(t):t(),(a=e.onChange)==null||a.call(e,s,o)}},[r]=b.useState(()=>new VP(n));return r.setOptions(n),gp(()=>r._didMount(),[]),gp(()=>r._willUpdate()),r}function QP(e){return JP({observeElementRect:HP,observeElementOffset:YP,scrollToFn:XP,...e})}const{Text:yp,Paragraph:ZP}=ft,eE=({content:e,token:t,headingColor:n})=>l.jsx(xr,{components:{p:({children:r})=>l.jsx(ZP,{style:{marginBottom:t.marginSM},children:r}),ol:({children:r})=>l.jsx("ol",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),ul:({children:r})=>l.jsx("ul",{style:{marginBottom:t.marginSM,paddingLeft:20},children:r}),li:({children:r})=>l.jsx("li",{style:{marginBottom:t.marginXS},children:r}),h1:({children:r})=>l.jsx(yp,{strong:!0,style:{fontSize:t.fontSizeHeading3,marginBottom:t.marginSM,display:"block",color:n},children:r}),h2:({children:r})=>l.jsx(yp,{strong:!0,style:{fontSize:t.fontSizeHeading4,marginBottom:t.marginSM,display:"block",color:n},children:r})},children:e}),vp=b.memo(eE),tE=e=>{if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null},nE=e=>e?[["base",e.base_system_prompt],["enhancement",e.enhancement_prompt],["workspace",e.workspace_context],["instruction",e.instruction_context],["env",e.env_context],["skills",e.skill_context],["toolGuide",e.tool_guide_context],["dream",e.dream_notebook],["sessionMemory",e.session_memory_note],["externalMemory",e.external_memory],["taskList",e.task_list],["effective",e.effective_system_prompt]].flatMap(([n,r])=>{const s=tE(r);return s?[{key:n,content:s}]:[]}):[],rE=({currentChat:e,message:t,systemPrompts:n})=>{var te;const[r,s]=b.useState(null),[o,a]=b.useState(null),[i,c]=b.useState(null),[d,h]=b.useState(!1),[m,g]=b.useState(!1),y=b.useMemo(()=>Cl.getInstance(),[]),x=b.useMemo(()=>er.getInstance(),[]),S=t.role==="system"&&typeof t.content=="string"?t.content:"",_=t.role==="system"&&!t.id.startsWith("system-prompt-")&&S.trim().length>0;b.useEffect(()=>{t.role==="system"&&(a(null),c(null),g(!1))},[t.id,t.role,S]);const E=(e==null?void 0:e.id)??null,T=((te=e==null?void 0:e.config)==null?void 0:te.systemPromptId)??null,P=b.useMemo(()=>T?n.find(H=>H.id===T)??null:null,[T,n]),C=(P==null?void 0:P.content)??(r==null?void 0:r.content)??"",A=(P==null?void 0:P.description)??(r==null?void 0:r.description)??"",I=b.useRef(null);b.useEffect(()=>{s(null),I.current=null},[E,T]),b.useEffect(()=>{if(!T)return;const H=T;if(P!=null&&P.content)return;const L=`${E??"no-chat"}:${H}`;if(I.current===L)return;I.current=L;let Z=!1;return(async()=>{try{const F=await y.findPresetById(H);if(Z)return;const de=F?{content:F.content,description:F.description}:null;s(Q=>!Q&&!de||Q&&de&&Q.content===de.content&&Q.description===de.description?Q:de)}catch(F){console.error("Failed to load preset prompt:",F)}})(),()=>{Z=!0}},[E,T,y,P==null?void 0:P.content]);const O=b.useCallback(async()=>{var H;if(!d){h(!0);try{if(E)try{const L=await x.getSessionSystemPrompt(E);c(L);const Z=(H=L.effective_system_prompt)==null?void 0:H.trim();if(Z){a(Z),g(!0);return}}catch(L){console.warn("Failed to load backend prompt snapshot:",L)}if(_){c(null),a(S),g(!0);return}console.warn("Enhanced prompt snapshot unavailable; keeping base prompt view.")}catch(L){console.error("Failed to load enhanced prompt:",L)}finally{h(!1)}}},[x,E,_,d,S]),$=b.useMemo(()=>m&&o?o:C||A||(t.role==="system"?S:Ct.t("chat.systemPrompt.preparing")),[m,o,C,A,t.role,S]),B=b.useMemo(()=>nE(i),[i]);return{basePrompt:C,categoryDescription:A,enhancedPrompt:o,loadingEnhanced:d,loadEnhancedPrompt:O,promptSnapshot:i,promptToDisplay:$,showEnhanced:m,setShowEnhanced:g,snapshotSections:B,systemMessageContent:S}},{Text:bp}=ft,{useToken:sE}=ut,oE=(e,t)=>({base:e("chat.prompt.systemCard.sections.base"),enhancement:e("chat.prompt.systemCard.sections.enhancement"),workspace:e("chat.prompt.systemCard.sections.workspace"),instruction:e("chat.prompt.systemCard.sections.instruction"),env:e("chat.prompt.systemCard.sections.env"),skills:e("chat.prompt.systemCard.sections.skills"),toolGuide:e("chat.prompt.systemCard.sections.toolGuide"),dream:e("chat.prompt.systemCard.sections.dream"),sessionMemory:e("chat.prompt.systemCard.sections.sessionMemory"),externalMemory:e("chat.prompt.systemCard.sections.externalMemory"),taskList:e("chat.prompt.systemCard.sections.taskList"),effective:e("chat.prompt.systemCard.sections.effective")})[t],aE=({currentChat:e,message:t})=>{const{token:n}=sE(),{t:r}=Ge(),s=ae(x=>x.systemPrompts),{basePrompt:o,loadingEnhanced:a,loadEnhancedPrompt:i,promptSnapshot:c,promptToDisplay:d,showEnhanced:h,setShowEnhanced:m,snapshotSections:g}=rE({currentChat:e,message:t,systemPrompts:s}),y=b.useCallback(async x=>{try{await Ir(x)}catch(S){console.error("Failed to copy text:",S)}},[]);return l.jsx(en,{style:{width:"100%",maxWidth:"100%",background:n.colorBgContainer,borderRadius:n.borderRadiusLG,boxShadow:"none"},children:l.jsxs(He,{direction:"vertical",size:n.marginSM,style:{width:"100%"},children:[l.jsxs(Ee,{justify:"space-between",align:"center",children:[l.jsx(Ee,{align:"center",gap:n.marginXS,children:l.jsx(bp,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.title")})}),l.jsxs(He,{children:[o&&!h?l.jsx(je,{type:"text",size:"small",icon:l.jsx(Od,{}),onClick:i,loading:a,children:r("chat.prompt.systemCard.viewEnhanced")}):null,o&&h?l.jsx(je,{type:"text",size:"small",onClick:()=>m(!1),children:r("chat.prompt.systemCard.viewBase")}):null,l.jsx(je,{type:"text",size:"small",icon:l.jsx(jr,{}),onClick:()=>y(d),children:r("chat.prompt.systemCard.copy")})]})]}),l.jsx(Ee,{vertical:!0,style:{maxHeight:h?400:300,overflowY:"auto",paddingRight:n.paddingXS},children:l.jsx(vp,{content:d,token:n,headingColor:n.colorPrimary})}),c&&g.length>0?l.jsxs(l.Fragment,{children:[l.jsx(xl,{style:{margin:`${n.marginXS}px 0`}}),l.jsxs(He,{direction:"vertical",size:n.marginXS,style:{width:"100%"},children:[l.jsx(bp,{type:"secondary",strong:!0,style:{fontSize:n.fontSizeSM},children:r("chat.prompt.systemCard.snapshotTitle")}),l.jsx(fo,{defaultActiveKey:g.map(x=>x.key),items:g.map(x=>({key:x.key,label:oE(r,x.key),children:l.jsx(vp,{content:x.content,token:n,headingColor:n.colorPrimary})}))})]})]}):null]})})},yv=b.memo(aE);yv.displayName="SystemMessageCard";const vv=6048e5,iE=864e5,Sp=Symbol.for("constructDateFrom");function Qr(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Sp in e?e[Sp](t):e instanceof Date?new e.constructor(t):new Date(t)}function ur(e,t){return Qr(t||e,e)}let lE={};function Zl(){return lE}function si(e,t){var i,c,d,h;const n=Zl(),r=(t==null?void 0:t.weekStartsOn)??((c=(i=t==null?void 0:t.locale)==null?void 0:i.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((h=(d=n.locale)==null?void 0:d.options)==null?void 0:h.weekStartsOn)??0,s=ur(e,t==null?void 0:t.in),o=s.getDay(),a=(o<r?7:0)+o-r;return s.setDate(s.getDate()-a),s.setHours(0,0,0,0),s}function Al(e,t){return si(e,{...t,weekStartsOn:1})}function bv(e,t){const n=ur(e,t==null?void 0:t.in),r=n.getFullYear(),s=Qr(n,0);s.setFullYear(r+1,0,4),s.setHours(0,0,0,0);const o=Al(s),a=Qr(n,0);a.setFullYear(r,0,4),a.setHours(0,0,0,0);const i=Al(a);return n.getTime()>=o.getTime()?r+1:n.getTime()>=i.getTime()?r:r-1}function xp(e){const t=ur(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function cE(e,...t){const n=Qr.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function wp(e,t){const n=ur(e,t==null?void 0:t.in);return n.setHours(0,0,0,0),n}function uE(e,t,n){const[r,s]=cE(n==null?void 0:n.in,e,t),o=wp(r),a=wp(s),i=+o-xp(o),c=+a-xp(a);return Math.round((i-c)/iE)}function dE(e,t){const n=bv(e,t),r=Qr(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Al(r)}function fE(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function hE(e){return!(!fE(e)&&typeof e!="number"||isNaN(+ur(e)))}function pE(e,t){const n=ur(e,t==null?void 0:t.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const mE={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"}},gE=(e,t,n)=>{let r;const s=mE[e];return typeof s=="string"?r=s:t===1?r=s.one:r=s.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Vc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const yE={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},vE={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},bE={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},SE={date:Vc({formats:yE,defaultWidth:"full"}),time:Vc({formats:vE,defaultWidth:"full"}),dateTime:Vc({formats:bE,defaultWidth:"full"})},xE={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},wE=(e,t,n,r)=>xE[e];function Wo(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let s;if(r==="formatting"&&e.formattingValues){const a=e.defaultFormattingWidth||e.defaultWidth,i=n!=null&&n.width?String(n.width):a;s=e.formattingValues[i]||e.formattingValues[a]}else{const a=e.defaultWidth,i=n!=null&&n.width?String(n.width):e.defaultWidth;s=e.values[i]||e.values[a]}const o=e.argumentCallback?e.argumentCallback(t):t;return s[o]}}const _E={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},CE={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},kE={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"]},TE={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"]},PE={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"}},EE={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"}},ME=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},AE={ordinalNumber:ME,era:Wo({values:_E,defaultWidth:"wide"}),quarter:Wo({values:CE,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Wo({values:kE,defaultWidth:"wide"}),day:Wo({values:TE,defaultWidth:"wide"}),dayPeriod:Wo({values:PE,defaultWidth:"wide",formattingValues:EE,defaultFormattingWidth:"wide"})};function Uo(e){return(t,n={})=>{const r=n.width,s=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(s);if(!o)return null;const a=o[0],i=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(i)?jE(i,m=>m.test(a)):RE(i,m=>m.test(a));let d;d=e.valueCallback?e.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;const h=t.slice(a.length);return{value:d,rest:h}}}function RE(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function jE(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function IE(e){return(t,n={})=>{const r=t.match(e.matchPattern);if(!r)return null;const s=r[0],o=t.match(e.parsePattern);if(!o)return null;let a=e.valueCallback?e.valueCallback(o[0]):o[0];a=n.valueCallback?n.valueCallback(a):a;const i=t.slice(s.length);return{value:a,rest:i}}}const OE=/^(\d+)(th|st|nd|rd)?/i,$E=/\d+/i,LE={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},DE={any:[/^b/i,/^(a|c)/i]},FE={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},NE={any:[/1/i,/2/i,/3/i,/4/i]},zE={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},BE={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]},WE={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},UE={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]},qE={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},HE={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}},YE={ordinalNumber:IE({matchPattern:OE,parsePattern:$E,valueCallback:e=>parseInt(e,10)}),era:Uo({matchPatterns:LE,defaultMatchWidth:"wide",parsePatterns:DE,defaultParseWidth:"any"}),quarter:Uo({matchPatterns:FE,defaultMatchWidth:"wide",parsePatterns:NE,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Uo({matchPatterns:zE,defaultMatchWidth:"wide",parsePatterns:BE,defaultParseWidth:"any"}),day:Uo({matchPatterns:WE,defaultMatchWidth:"wide",parsePatterns:UE,defaultParseWidth:"any"}),dayPeriod:Uo({matchPatterns:qE,defaultMatchWidth:"any",parsePatterns:HE,defaultParseWidth:"any"})},KE={code:"en-US",formatDistance:gE,formatLong:SE,formatRelative:wE,localize:AE,match:YE,options:{weekStartsOn:0,firstWeekContainsDate:1}};function XE(e,t){const n=ur(e,t==null?void 0:t.in);return uE(n,pE(n))+1}function VE(e,t){const n=ur(e,t==null?void 0:t.in),r=+Al(n)-+dE(n);return Math.round(r/vv)+1}function Sv(e,t){var h,m,g,y;const n=ur(e,t==null?void 0:t.in),r=n.getFullYear(),s=Zl(),o=(t==null?void 0:t.firstWeekContainsDate)??((m=(h=t==null?void 0:t.locale)==null?void 0:h.options)==null?void 0:m.firstWeekContainsDate)??s.firstWeekContainsDate??((y=(g=s.locale)==null?void 0:g.options)==null?void 0:y.firstWeekContainsDate)??1,a=Qr((t==null?void 0:t.in)||e,0);a.setFullYear(r+1,0,o),a.setHours(0,0,0,0);const i=si(a,t),c=Qr((t==null?void 0:t.in)||e,0);c.setFullYear(r,0,o),c.setHours(0,0,0,0);const d=si(c,t);return+n>=+i?r+1:+n>=+d?r:r-1}function GE(e,t){var i,c,d,h;const n=Zl(),r=(t==null?void 0:t.firstWeekContainsDate)??((c=(i=t==null?void 0:t.locale)==null?void 0:i.options)==null?void 0:c.firstWeekContainsDate)??n.firstWeekContainsDate??((h=(d=n.locale)==null?void 0:d.options)==null?void 0:h.firstWeekContainsDate)??1,s=Sv(e,t),o=Qr((t==null?void 0:t.in)||e,0);return o.setFullYear(s,0,r),o.setHours(0,0,0,0),si(o,t)}function JE(e,t){const n=ur(e,t==null?void 0:t.in),r=+si(n,t)-+GE(n,t);return Math.round(r/vv)+1}function $t(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Wr={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return $t(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):$t(n+1,2)},d(e,t){return $t(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return $t(e.getHours()%12||12,t.length)},H(e,t){return $t(e.getHours(),t.length)},m(e,t){return $t(e.getMinutes(),t.length)},s(e,t){return $t(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),s=Math.trunc(r*Math.pow(10,n-3));return $t(s,t.length)}},Us={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},_p={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),s=r>0?r:1-r;return n.ordinalNumber(s,{unit:"year"})}return Wr.y(e,t)},Y:function(e,t,n,r){const s=Sv(e,r),o=s>0?s:1-s;if(t==="YY"){const a=o%100;return $t(a,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):$t(o,t.length)},R:function(e,t){const n=bv(e);return $t(n,t.length)},u:function(e,t){const n=e.getFullYear();return $t(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return $t(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return $t(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Wr.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return $t(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const s=JE(e,r);return t==="wo"?n.ordinalNumber(s,{unit:"week"}):$t(s,t.length)},I:function(e,t,n){const r=VE(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):$t(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Wr.d(e,t)},D:function(e,t,n){const r=XE(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):$t(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const s=e.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return $t(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(s,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(s,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(s,{width:"short",context:"formatting"});case"eeee":default:return n.day(s,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const s=e.getDay(),o=(s-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return $t(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(s,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(s,{width:"narrow",context:"standalone"});case"cccccc":return n.day(s,{width:"short",context:"standalone"});case"cccc":default:return n.day(s,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),s=r===0?7:r;switch(t){case"i":return String(s);case"ii":return $t(s,t.length);case"io":return n.ordinalNumber(s,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const s=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let s;switch(r===12?s=Us.noon:r===0?s=Us.midnight:s=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let s;switch(r>=17?s=Us.evening:r>=12?s=Us.afternoon:r>=4?s=Us.morning:s=Us.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(s,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(s,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(s,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Wr.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Wr.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):$t(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):$t(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Wr.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Wr.s(e,t)},S:function(e,t){return Wr.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return kp(r);case"XXXX":case"XX":return cs(r);case"XXXXX":case"XXX":default:return cs(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return kp(r);case"xxxx":case"xx":return cs(r);case"xxxxx":case"xxx":default:return cs(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Cp(r,":");case"OOOO":default:return"GMT"+cs(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Cp(r,":");case"zzzz":default:return"GMT"+cs(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return $t(r,t.length)},T:function(e,t,n){return $t(+e,t.length)}};function Cp(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=Math.trunc(r/60),o=r%60;return o===0?n+String(s):n+String(s)+t+$t(o,2)}function kp(e,t){return e%60===0?(e>0?"-":"+")+$t(Math.abs(e)/60,2):cs(e,t)}function cs(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),s=$t(Math.trunc(r/60),2),o=$t(r%60,2);return n+s+t+o}const Tp=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},xv=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},QE=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],s=n[2];if(!s)return Tp(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",Tp(r,t)).replace("{{time}}",xv(s,t))},ZE={p:xv,P:QE},eM=/^D+$/,tM=/^Y+$/,nM=["D","DD","YY","YYYY"];function rM(e){return eM.test(e)}function sM(e){return tM.test(e)}function oM(e,t,n){const r=aM(e,t,n);if(console.warn(r),nM.includes(e))throw new RangeError(r)}function aM(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const iM=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,lM=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,cM=/^'([^]*?)'?$/,uM=/''/g,dM=/[a-zA-Z]/;function fM(e,t,n){var h,m,g,y;const r=Zl(),s=r.locale??KE,o=r.firstWeekContainsDate??((m=(h=r.locale)==null?void 0:h.options)==null?void 0:m.firstWeekContainsDate)??1,a=r.weekStartsOn??((y=(g=r.locale)==null?void 0:g.options)==null?void 0:y.weekStartsOn)??0,i=ur(e,n==null?void 0:n.in);if(!hE(i))throw new RangeError("Invalid time value");let c=t.match(lM).map(x=>{const S=x[0];if(S==="p"||S==="P"){const _=ZE[S];return _(x,s.formatLong)}return x}).join("").match(iM).map(x=>{if(x==="''")return{isToken:!1,value:"'"};const S=x[0];if(S==="'")return{isToken:!1,value:hM(x)};if(_p[S])return{isToken:!0,value:x};if(S.match(dM))throw new RangeError("Format string contains an unescaped latin alphabet character `"+S+"`");return{isToken:!1,value:x}});s.localize.preprocessor&&(c=s.localize.preprocessor(i,c));const d={firstWeekContainsDate:o,weekStartsOn:a,locale:s};return c.map(x=>{if(!x.isToken)return x.value;const S=x.value;(sM(S)||rM(S))&&oM(S,t,String(e));const _=_p[S[0]];return _(i,S,s.localize,d)}).join("")}function hM(e){const t=e.match(cM);return t?t[1].replace(uM,"'"):e}const{useToken:pM}=ut,{Text:qi}=ft,mM=({images:e,className:t,style:n,maxHeight:r={single:400,multiple:200}})=>{const{token:s}=pM(),{t:o}=Ge();return!e||e.length===0?null:l.jsx(en,{className:t,style:{marginBottom:s.marginMD,...n},styles:{body:{padding:0}},variant:"borderless",children:l.jsx(Ee,{wrap:"wrap",gap:s.marginSM,style:{width:"100%"},children:e.map(a=>l.jsxs(en,{size:"small",style:{flex:e.length===1?"1 1 100%":"1 1 200px",overflow:"hidden",borderRadius:s.borderRadius,border:`1px solid ${s.colorBorderSecondary}`,backgroundColor:s.colorBgLayout},styles:{body:{padding:0}},children:[l.jsxs("div",{style:{position:"relative"},children:[l.jsx(Bx,{src:a.url||a.base64,alt:a.name,style:{width:"100%",height:"auto",maxHeight:e.length===1?r.single:r.multiple,objectFit:"cover"},preview:{mask:l.jsxs(Ee,{align:"center",justify:"center",gap:s.marginXS,style:{color:s.colorTextLightSolid},children:[l.jsx(Od,{}),l.jsx(qi,{style:{color:s.colorTextLightSolid},children:o("components.imageGrid.preview")})]})}}),l.jsxs(Ee,{vertical:!0,style:{position:"absolute",bottom:0,left:0,right:0,background:"linear-gradient(transparent, rgba(0,0,0,0.7))",color:s.colorTextLightSolid,padding:`${s.paddingXS}px ${s.paddingSM}px`,fontSize:s.fontSizeSM},children:[l.jsx(qi,{style:{color:s.colorTextLightSolid},strong:!0,children:a.name}),a.size&&l.jsxs(qi,{style:{fontSize:s.fontSizeSM*.85,opacity:.8,color:s.colorTextLightSolid},children:[(a.size/1024).toFixed(1)," KB",a.width&&a.height&&` • ${a.width}×${a.height}`]})]})]}),(a.ocrText||a.ocrError)&&l.jsx("div",{style:{padding:s.paddingSM},children:l.jsx(fo,{ghost:!0,size:"small",items:[{key:"ocr",label:o("components.imageGrid.ocr"),children:l.jsxs(l.Fragment,{children:[a.ocrError&&l.jsx(qi,{type:"danger",children:a.ocrError}),a.ocrText&&l.jsx(ft.Paragraph,{style:{marginTop:a.ocrError?s.marginXS:0,marginBottom:0,whiteSpace:"pre-wrap"},children:a.ocrText})]})}]})})]},a.id))})})},{useToken:gM}=ut,{useBreakpoint:yM}=Wl,vM=({buttons:e,isVisible:t,className:n,style:r,position:s={bottom:"8px",right:"8px"}})=>{const{token:o}=gM(),a=yM(),i=()=>(a.xs,"small");return l.jsx(Ee,{justify:"flex-end",gap:o.marginXS,className:n,style:{marginTop:o.marginXS,position:"absolute",bottom:s.bottom,right:s.right,top:s.top,left:s.left,background:"transparent",zIndex:1,opacity:t?1:0,transition:"opacity 0.2s ease",pointerEvents:t?"auto":"none",...r},children:e.map(c=>l.jsx(Sn,{title:c.title,children:l.jsx(je,{"data-testid":c["data-testid"]||c.key,icon:c.icon,size:i(),type:"text",onClick:c.onClick,disabled:c.disabled,style:{background:o.colorBgElevated,borderRadius:o.borderRadiusSM}})},c.key))})},bM=(e,t)=>({key:"copy","data-testid":"copy-message",icon:l.jsx(jr,{}),title:t||Ct.t("chat.actions.copyMessage"),onClick:e}),SM=(e,t)=>({key:"reference",icon:l.jsx(Zg,{}),title:t||Ct.t("chat.actions.referenceMessage"),onClick:e}),wv=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_result",xM=e=>e.role==="assistant"&&"type"in e&&e.type==="tool_call",wM=e=>e.role==="assistant"&&"type"in e&&e.type==="workflow_result",_M=e=>e.role==="user"&&"type"in e&&e.type==="file_reference",CM=e=>e.role==="assistant"&&"type"in e&&e.type==="task_list",{Title:Pp,Text:Vn,Paragraph:Ep}=ft,{useToken:kM}=ut,TM=({plan:e,contextId:t,onExecute:n,onRefine:r,timestamp:s})=>{const{t:o}=Ge(),{token:a}=kM(),[i,c]=b.useState(!1),[d,h]=b.useState(""),m=()=>{d.trim()&&(r(d),h(""),c(!1))};return l.jsxs(en,{style:{marginBottom:a.marginMD,borderColor:a.colorPrimary,borderWidth:2,backgroundColor:a.colorPrimaryBg},title:l.jsxs(He,{children:[l.jsx(Va,{style:{color:a.colorPrimary}}),l.jsx(Vn,{strong:!0,style:{color:a.colorPrimary},children:o("components.plan.executionPlan")})]}),extra:s?l.jsx(Vn,{type:"secondary",style:{fontSize:a.fontSizeSM},children:s}):void 0,children:[l.jsxs(Ee,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Pp,{level:5,style:{marginBottom:a.marginXS},children:o("components.plan.goal")}),l.jsx(Ep,{style:{fontSize:15,marginBottom:0},children:e.goal})]}),l.jsxs(Ee,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(Pp,{level:5,style:{marginBottom:a.marginMD},children:o("components.plan.steps")}),l.jsx(ey,{direction:"vertical",current:-1,items:e.steps.map(g=>({title:l.jsxs(Vn,{strong:!0,children:[o("components.plan.stepTitle",{number:g.step_number}),": ",g.action]}),description:l.jsxs(Ee,{vertical:!0,children:[l.jsxs(Ep,{style:{marginBottom:a.marginXS},children:[l.jsxs(Vn,{type:"secondary",children:[o("components.plan.reason"),":"]})," ",g.reason]}),l.jsxs(He,{wrap:!0,children:[l.jsxs(Vn,{type:"secondary",children:[l.jsx(Id,{})," ",o("components.plan.tools"),":"]}),g.tools_needed.map((y,x)=>l.jsx(Ze,{color:"processing",children:y},x))]}),l.jsx(Ee,{style:{marginTop:a.marginXS},children:l.jsxs(Vn,{type:"secondary",children:[l.jsx(Ts,{})," ",o("components.plan.estimated"),": ",g.estimated_time]})})]}),icon:l.jsx(Vn,{children:g.step_number})}))})]}),l.jsxs(He,{direction:"vertical",style:{width:"100%",marginBottom:a.marginLG},children:[l.jsxs(Ee,{align:"center",gap:a.marginXS,wrap:"wrap",children:[l.jsxs(Vn,{type:"secondary",children:[l.jsx(Ts,{})," ",o("components.plan.totalEstimatedTime")," "]}),l.jsx(Ze,{color:"processing",children:e.estimated_total_time})]}),e.prerequisites&&e.prerequisites.length>0&&l.jsxs(Ee,{vertical:!0,children:[l.jsxs(Vn,{type:"secondary",children:[o("components.plan.prerequisites"),":"]}),l.jsx(Rr,{size:"small",dataSource:e.prerequisites,renderItem:(g,y)=>l.jsx(Rr.Item,{style:{padding:0},children:l.jsx(Vn,{children:g})},`${g}-${y}`)})]})]}),e.risks&&e.risks.length>0&&l.jsx(fo,{ghost:!0,style:{marginBottom:a.marginLG},items:[{key:"risks",label:l.jsxs(He,{children:[l.jsx($d,{style:{color:a.colorWarning}}),l.jsx(Vn,{strong:!0,children:o("components.plan.potentialRisks",{count:e.risks.length})})]}),children:l.jsx(Rr,{size:"small",dataSource:e.risks,renderItem:(g,y)=>l.jsx(Rr.Item,{style:{padding:0},children:l.jsx(Vn,{children:g})},`${g}-${y}`)})}]}),l.jsx(He,{style:{width:"100%",justifyContent:"flex-end"},children:i?l.jsxs(l.Fragment,{children:[l.jsx(je,{onClick:()=>c(!1),children:o("common.cancel")}),l.jsx(je,{type:"primary",onClick:m,disabled:!d.trim(),children:o("components.plan.sendFeedback")})]}):l.jsxs(l.Fragment,{children:[l.jsx(je,{onClick:()=>c(!0),children:o("components.plan.refinePlan")}),l.jsx(je,{type:"primary",icon:l.jsx(Wx,{}),onClick:n,children:o("components.plan.executePlan")})]})}),i&&l.jsx(Ee,{vertical:!0,style:{marginTop:a.marginMD},children:l.jsx(Rs.TextArea,{value:d,onChange:g=>h(g.target.value),placeholder:o("components.plan.feedbackPlaceholder"),autoSize:{minRows:4,maxRows:10}})})]})},_v=b.memo(TM);_v.displayName="PlanMessageCard";const{Title:PM,Text:qs,Paragraph:EM}=ft,{useToken:MM}=ut,AM=({question:e,contextId:t,onAnswer:n,disabled:r=!1,timestamp:s})=>{const{t:o}=Ge(),{token:a}=MM(),[i,c]=b.useState(e.default),[d,h]=b.useState(!1),m=async()=>{if(i){h(!0);try{await n(i)}catch(S){console.error("Failed to submit answer:",S)}finally{h(!1)}}},g=()=>{switch(e.severity){case"critical":return l.jsx(Vg,{style:{color:a.colorError}});case"major":return l.jsx($d,{style:{color:a.colorWarning}});case"minor":return l.jsx(Ux,{style:{color:a.colorInfo}});default:return l.jsx(Qg,{style:{color:a.colorPrimary}})}},y=()=>{switch(e.severity){case"critical":return a.colorErrorBg;case"major":return a.colorWarningBg;case"minor":return a.colorInfoBg;default:return a.colorPrimaryBg}},x=()=>{switch(e.severity){case"critical":return a.colorError;case"major":return a.colorWarning;case"minor":return a.colorInfo;default:return a.colorPrimary}};return l.jsxs(en,{style:{marginBottom:a.marginMD,borderColor:x(),borderWidth:2,backgroundColor:y()},title:l.jsxs(He,{children:[g(),l.jsx(qs,{strong:!0,style:{color:x()},children:o("components.question.agentQuestion")}),l.jsxs(qs,{type:"secondary",style:{fontSize:12},children:["(",e.severity,")"]})]}),extra:s?l.jsx(qs,{type:"secondary",style:{fontSize:a.fontSizeSM},children:s}):void 0,children:[l.jsx(Ee,{vertical:!0,style:{marginBottom:a.marginLG},children:l.jsx(PM,{level:5,style:{marginBottom:a.marginXS},children:e.question})}),e.context&&l.jsx(cr,{message:o("components.question.context"),description:e.context,type:"info",showIcon:!0,style:{marginBottom:a.marginLG}}),l.jsxs(Ee,{vertical:!0,style:{marginBottom:a.marginLG},children:[l.jsx(qs,{strong:!0,style:{display:"block",marginBottom:a.marginSM},children:o("components.question.chooseOption")}),l.jsx(sh.Group,{value:i,onChange:S=>c(S.target.value),disabled:r||d,style:{width:"100%"},children:l.jsx(He,{direction:"vertical",style:{width:"100%"},children:e.options.map(S=>l.jsx(en,{size:"small",hoverable:!r&&!d,style:{borderColor:i===S.value?a.colorPrimary:a.colorBorder,backgroundColor:i===S.value?a.colorPrimaryBg:a.colorBgContainer,cursor:r||d?"not-allowed":"pointer"},onClick:()=>!r&&!d&&c(S.value),children:l.jsx(sh,{value:S.value,style:{width:"100%"},children:l.jsxs(Ee,{vertical:!0,children:[l.jsxs(Ee,{align:"center",gap:a.marginXS,wrap:"wrap",children:[l.jsx(qs,{strong:!0,children:S.label}),S.value===e.default&&l.jsx(Ze,{color:"processing",style:{marginLeft:a.marginXS},children:o("components.question.recommended")})]}),l.jsx(EM,{type:"secondary",style:{marginTop:a.marginXXS,marginBottom:0},children:S.description})]})})},S.value))})})]}),e.allow_custom&&l.jsxs(Ee,{vertical:!0,style:{marginBottom:a.marginMD},children:[l.jsx(qs,{type:"secondary",style:{fontSize:12},children:o("components.question.customAnswerHint")}),l.jsx(Rs.TextArea,{value:i&&!e.options.find(S=>S.value===i)?i:"",onChange:S=>c(S.target.value),placeholder:o("components.question.customAnswerPlaceholder"),disabled:r||d,autoSize:{minRows:3,maxRows:8},style:{marginTop:a.marginXS}})]}),l.jsx(Ee,{justify:"flex-end",children:l.jsx(je,{type:"primary",icon:l.jsx(Va,{}),onClick:m,loading:d,disabled:r||!i,children:o("components.question.submitAnswer")})})]})},Cv=b.memo(AM);Cv.displayName="QuestionMessageCard";const{Text:Mp}=ft,RM=({paths:e,displayText:t})=>{const{token:n}=ut.useToken(),r=t.replace(/@[^\s]+/g,"").trim();return l.jsxs(en,{size:"small",styles:{body:{padding:`${n.paddingSM}px ${n.paddingMD}px`}},style:{maxWidth:"100%"},children:[l.jsx(He,{direction:"vertical",size:n.marginXXS,children:e.map((s,o)=>{const a=s.split("/").pop()||s,i=s.substring(0,s.lastIndexOf("/"))||"",c=!a.includes(".");return l.jsxs(Ee,{vertical:!0,children:[l.jsxs(He,{size:n.marginXS,align:"center",wrap:!0,children:[c?l.jsx(oh,{style:{color:n.colorWarning,fontSize:n.fontSizeLG}}):l.jsx(Sl,{style:{color:n.colorPrimary,fontSize:n.fontSizeLG}}),l.jsx(Ze,{color:c?"warning":"processing",style:{margin:0,fontFamily:n.fontFamilyCode,fontSize:n.fontSize},children:a})]}),i&&l.jsx(Sn,{title:s,children:l.jsxs(He,{size:4,align:"center",style:{marginTop:4},children:[l.jsx(oh,{style:{color:n.colorTextTertiary,fontSize:n.fontSizeSM}}),l.jsx(Mp,{type:"secondary",style:{fontSize:n.fontSizeSM,fontFamily:n.fontFamilyCode,maxWidth:"400px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},copyable:{text:s},children:i})]})})]},o)})}),r&&l.jsx(Mp,{style:{fontSize:n.fontSize,color:n.colorText,marginTop:n.marginXS,paddingTop:n.marginXS,borderTop:`1px solid ${n.colorBorderSecondary}`},children:r})]})},kv=b.memo(RM);kv.displayName="FileReferenceCard";const jM=({taskList:e})=>{const{token:t}=ut.useToken(),{Text:n}=ft,{t:r}=Ge(),s=c=>{switch(c){case"pending":return l.jsx(Ze,{icon:l.jsx(Ts,{}),color:"default",children:r("components.todoList.status.pending")});case"in_progress":return l.jsx(Ze,{icon:l.jsx(oo,{spin:!0}),color:"processing",children:r("components.todoList.status.inProgress")});case"completed":return l.jsx(Ze,{icon:l.jsx(Va,{}),color:"success",children:r("components.todoList.status.completed")});case"skipped":return l.jsx(Ze,{icon:l.jsx(qx,{}),color:"default",children:r("components.todoList.status.skipped")});case"failed":return l.jsx(Ze,{icon:l.jsx(Mu,{}),color:"error",children:r("components.todoList.status.failed")});default:return null}},o=()=>{switch(e.status){case"active":return l.jsx(Ze,{color:"processing",children:r("components.todoList.listStatus.active")});case"completed":return l.jsx(Ze,{color:"success",children:r("components.todoList.listStatus.completed")});case"abandoned":return l.jsx(Ze,{color:"error",children:r("components.todoList.listStatus.abandoned")});default:return null}},a=dt.useMemo(()=>{if(e.items.length===0)return 0;const c=e.items.filter(d=>d.status==="completed").length;return Math.round(c/e.items.length*100)},[e.items]),i=dt.useMemo(()=>e.items.find(c=>c.status==="in_progress"),[e.items]);return l.jsx(en,{size:"small",styles:{body:{padding:t.paddingSM}},style:{borderRadius:t.borderRadiusLG},children:l.jsxs(Ee,{vertical:!0,gap:t.marginSM,children:[l.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsxs(He,{direction:"vertical",size:2,children:[l.jsx(n,{strong:!0,children:e.title}),e.description?l.jsx(n,{type:"secondary",children:e.description}):null]}),o()]}),l.jsxs(He,{direction:"vertical",size:4,children:[l.jsx(ty,{percent:a,status:e.status==="completed"?"success":e.status==="abandoned"?"exception":"active",showInfo:!0}),l.jsx(n,{type:"secondary",children:r("components.todoList.percentComplete",{percent:a})})]}),l.jsx(Rr,{size:"small",dataSource:e.items,renderItem:c=>{var h;const d=(i==null?void 0:i.id)===c.id;return l.jsx(Rr.Item,{style:{borderRadius:t.borderRadius,padding:t.paddingXS,background:d?t.colorPrimaryBg:"transparent",border:"1px solid",borderColor:d?t.colorPrimaryBorder:t.colorBorderSecondary},children:l.jsxs(Ee,{vertical:!0,style:{width:"100%"},gap:4,children:[l.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(n,{children:c.description}),s(c.status)]}),c.status==="failed"&&((h=c.metadata)!=null&&h.error)?l.jsx(n,{type:"danger",style:{fontSize:12},children:c.metadata.error}):null,c.status==="completed"&&c.summary?l.jsx(n,{type:"success",style:{fontSize:12},children:c.summary}):null]})})}}),l.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:"small",children:[l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.progressLabel",{completed:e.items.filter(c=>c.status==="completed").length,total:e.items.length})}),i?l.jsx(n,{type:"secondary",style:{fontSize:12},children:r("components.todoList.currentLabel",{description:i.description})}):null]})]})})},IM=100,us=new Set;function OM(e){if(us.has(e)&&us.delete(e),us.add(e),us.size>IM){const t=us.values().next().value;t&&us.delete(t)}}function $M(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const LM=e=>{const{t}=Ge(),n=$M(e.chart),[r,s]=b.useState(()=>us.has(n)),o=b.useRef(null);return b.useEffect(()=>{if(r)return;const a=o.current;if(!a)return;const i=new IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(OM(n),s(!0),i.disconnect())},{rootMargin:"50px",threshold:.01});return i.observe(a),()=>i.disconnect()},[r,n]),l.jsx("div",{ref:o,style:{minHeight:r?"auto":"200px"},children:r?l.jsx(dt.Suspense,{fallback:l.jsx(lo,{size:"small",tip:t("components.mermaid.loadingDiagram")}),children:l.jsx(DM,{...e})}):l.jsx("div",{style:{minHeight:"200px"}})})},DM=e=>{const{t}=Ge(),[n,r]=b.useState(null);return b.useEffect(()=>{let s=!1;return Jt(()=>Promise.resolve().then(()=>uR),void 0,import.meta.url).then(o=>{s||r(()=>o.MermaidChart)}),()=>{s=!0}},[]),n?l.jsx(n,{...e}):l.jsx(lo,{size:"small",tip:t("components.mermaid.loadingDiagram")})},FM=dt.memo(LM),NM=({error:e,className:t,style:n,token:r,onFix:s,isFixing:o,fixError:a})=>{const{t:i}=Ge(),c=e.split(`
157
+
158
+ `);return l.jsxs("div",{className:t,style:{color:r.colorError,padding:`${r.paddingXS}px ${r.paddingSM}px`,fontSize:r.fontSizeSM,background:r.colorErrorBg,borderRadius:r.borderRadiusSM,border:`1px solid ${r.colorErrorBorder}`,margin:`${r.marginXS}px 0`,minHeight:"60px",maxHeight:"120px",display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"flex-start",overflow:"auto",position:"relative",maxWidth:"100%",boxSizing:"border-box",...n},title:`${i("components.mermaid.errorTitlePrefix")}: ${e}
159
+
160
+ ${i("components.mermaid.checkConsoleHint")}`,children:[l.jsxs("div",{style:{display:"flex",alignItems:"center",marginBottom:r.marginXXS},children:[l.jsx("span",{style:{marginRight:r.marginXS,fontSize:"14px",flexShrink:0,lineHeight:1},children:l.jsx($d,{})}),l.jsx("span",{style:{fontWeight:600,color:r.colorError},children:i("components.mermaid.diagramError")})]}),l.jsx("div",{style:{fontSize:r.fontSizeSM,lineHeight:1.4,wordBreak:"break-word",flex:1,width:"100%"},children:c.map((d,h)=>l.jsx("div",{style:{marginBottom:h<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},`${h}-${d.substring(0,12)}`))}),s&&l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:r.marginXS,marginTop:r.marginXS,width:"100%"},children:[l.jsx(je,{size:"small",type:"primary",onClick:s,loading:o,children:i("components.mermaid.fixMermaid")}),a&&l.jsx("span",{style:{color:r.colorError,fontSize:r.fontSizeSM,wordBreak:"break-word",flex:1},children:a})]}),l.jsxs("div",{style:{fontSize:r.fontSizeSM,color:r.colorTextSecondary,marginTop:r.marginXS,fontStyle:"italic"},children:[l.jsx(Yg,{style:{marginRight:4}})," ",i("components.mermaid.checkConsoleHint")]})]})};var Qn=function(e,t){return Number(e.toFixed(t))},zM=function(e,t){return typeof e=="number"?e:t},Ht=function(e,t,n){n&&typeof n=="function"&&n(e,t)},BM=function(e){return-Math.cos(e*Math.PI)/2+.5},WM=function(e){return e},UM=function(e){return e*e},qM=function(e){return e*(2-e)},HM=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},YM=function(e){return e*e*e},KM=function(e){return--e*e*e+1},XM=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},VM=function(e){return e*e*e*e},GM=function(e){return 1- --e*e*e*e},JM=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},QM=function(e){return e*e*e*e*e},ZM=function(e){return 1+--e*e*e*e*e},eA=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},Tv={easeOut:BM,linear:WM,easeInQuad:UM,easeOutQuad:qM,easeInOutQuad:HM,easeInCubic:YM,easeOutCubic:KM,easeInOutCubic:XM,easeInQuart:VM,easeOutQuart:GM,easeInOutQuart:JM,easeInQuint:QM,easeOutQuint:ZM,easeInOutQuint:eA},Pv=function(e){typeof e=="number"&&cancelAnimationFrame(e)},lr=function(e){e.mounted&&(Pv(e.animation),e.animate=!1,e.animation=null,e.velocity=null)};function Ev(e,t,n,r){if(e.mounted){var s=new Date().getTime(),o=1;lr(e),e.animation=function(){if(!e.mounted)return Pv(e.animation);var a=new Date().getTime()-s,i=a/n,c=Tv[t],d=c(i);a>=n?(r(o),e.animation=null):e.animation&&(r(d),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function tA(e){var t=e.scale,n=e.positionX,r=e.positionY;return!(Number.isNaN(t)||Number.isNaN(n)||Number.isNaN(r))}function ts(e,t,n,r){var s=tA(t);if(!(!e.mounted||!s)){var o=e.setTransformState,a=e.transformState,i=a.scale,c=a.positionX,d=a.positionY,h=t.scale-i,m=t.positionX-c,g=t.positionY-d;n===0?o(t.scale,t.positionX,t.positionY):Ev(e,r,n,function(y){var x=i+h*y,S=c+m*y,_=d+g*y;o(x,S,_)})}}function nA(e,t,n){var r=e.offsetWidth,s=e.offsetHeight,o=t.offsetWidth,a=t.offsetHeight,i=o*n,c=a*n,d=r-i,h=s-c;return{wrapperWidth:r,wrapperHeight:s,newContentWidth:i,newDiffWidth:d,newContentHeight:c,newDiffHeight:h}}var rA=function(e,t,n,r,s,o,a){var i=e>t?n*(a?1:.5):0,c=r>s?o*(a?1:.5):0,d=e-t-i,h=i,m=r-s-c,g=c;return{minPositionX:d,maxPositionX:h,minPositionY:m,maxPositionY:g}},sf=function(e,t){var n=e.wrapperComponent,r=e.contentComponent,s=e.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var o=nA(n,r,t),a=o.wrapperWidth,i=o.wrapperHeight,c=o.newContentWidth,d=o.newDiffWidth,h=o.newContentHeight,m=o.newDiffHeight,g=rA(a,c,d,i,h,m,!!s);return g},nd=function(e,t,n,r){return r?e<t?Qn(t,2):e>n?Qn(n,2):Qn(e,2):Qn(e,2)},Cs=function(e,t){var n=sf(e,t);return e.bounds=n,n};function ci(e,t,n,r,s,o,a){var i=n.minPositionX,c=n.minPositionY,d=n.maxPositionX,h=n.maxPositionY,m=0,g=0;a&&(m=s,g=o);var y=nd(e,i-m,d+m,r),x=nd(t,c-g,h+g,r);return{x:y,y:x}}function ec(e,t,n,r,s,o){var a=e.transformState,i=a.scale,c=a.positionX,d=a.positionY,h=r-i;if(typeof t!="number"||typeof n!="number")return console.error("Mouse X and Y position were not provided!"),{x:c,y:d};var m=c-t*h,g=d-n*h,y=ci(m,g,s,o,0,0,null);return y}function ui(e,t,n,r,s){var o=s?r:0,a=t-o;return!Number.isNaN(n)&&e>=n?n:!Number.isNaN(t)&&e<=a?a:e}var Ap=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,s=e.wrapperComponent,o=t.target,a="shadowRoot"in o&&"composedPath"in t,i=a?t.composedPath().some(function(h){return h instanceof Element?s==null?void 0:s.contains(h):!1}):s==null?void 0:s.contains(o),c=r&&o&&i;if(!c)return!1;var d=tc(o,n);return!d},Rp=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup,s=r.panning.disabled,o=t&&n&&!s;return!!o},sA=function(e,t){var n=e.transformState,r=n.positionX,s=n.positionY;e.isPanning=!0;var o=t.clientX,a=t.clientY;e.startCoords={x:o-r,y:a-s}},oA=function(e,t){var n=t.touches,r=e.transformState,s=r.positionX,o=r.positionY;e.isPanning=!0;var a=n.length===1;if(a){var i=n[0].clientX,c=n[0].clientY;e.startCoords={x:i-s,y:c-o}}};function aA(e){var t=e.transformState,n=t.positionX,r=t.positionY,s=t.scale,o=e.setup,a=o.disabled,i=o.limitToBounds,c=o.centerZoomedOut,d=e.wrapperComponent;if(!(a||!d||!e.bounds)){var h=e.bounds,m=h.maxPositionX,g=h.minPositionX,y=h.maxPositionY,x=h.minPositionY,S=n>m||n<g,_=r>y||r<x,E=n>m?d.offsetWidth:e.setup.minPositionX||0,T=r>y?d.offsetHeight:e.setup.minPositionY||0,P=ec(e,E,T,s,e.bounds,i||c),C=P.x,A=P.y;return{scale:s,positionX:S?C:n,positionY:_?A:r}}}function Mv(e,t,n,r,s){var o=e.setup.limitToBounds,a=e.wrapperComponent,i=e.bounds,c=e.transformState,d=c.scale,h=c.positionX,m=c.positionY;if(!(a===null||i===null||t===h&&n===m)){var g=ci(t,n,i,o,r,s,a),y=g.x,x=g.y;e.setTransformState(d,y,x)}}var iA=function(e,t,n){var r=e.startCoords,s=e.transformState,o=e.setup.panning,a=o.lockAxisX,i=o.lockAxisY,c=s.positionX,d=s.positionY;if(!r)return{x:c,y:d};var h=t-r.x,m=n-r.y,g=a?c:h,y=i?d:m;return{x:g,y}},Zr=function(e,t){var n=e.setup,r=e.transformState,s=r.scale,o=n.minScale,a=n.disablePadding;return t>0&&s>=o&&!a?t:0},lA=function(e){var t=e.mounted,n=e.setup,r=n.disabled,s=n.velocityAnimation,o=e.transformState.scale,a=s.disabled,i=!a||o>1||!r||t;return!!i},cA=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,s=e.setup,o=s.disabled,a=s.velocityAnimation,i=e.transformState.scale,c=a.disabled,d=!c||i>1||!o||t;return!(!d||!n||!r)};function uA(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,s=n.animationTime,o=n.sensitivity;return r?s*t*o:s}function jp(e,t,n,r,s,o,a,i,c,d){if(s){if(t>a&&n>a){var h=a+(e-a)*d;return h>c?c:h<a?a:h}if(t<o&&n<o){var h=o+(e-o)*d;return h<i?i:h>o?o:h}}return r?t:nd(e,o,a,s)}function dA(e,t){var n=1;return t?Math.min(n,e.offsetWidth/window.innerWidth):n}function fA(e,t){var n=lA(e);if(n){var r=e.lastMousePosition,s=e.velocityTime,o=e.setup,a=e.wrapperComponent,i=o.velocityAnimation.equalToMove,c=Date.now();if(r&&s&&a){var d=dA(a,i),h=t.x-r.x,m=t.y-r.y,g=h/d,y=m/d,x=c-s,S=h*h+m*m,_=Math.sqrt(S)/x;e.velocity={velocityX:g,velocityY:y,total:_}}e.lastMousePosition=t,e.velocityTime=c}}function hA(e){var t=e.velocity,n=e.bounds,r=e.setup,s=e.wrapperComponent,o=cA(e);if(!(!o||!t||!n||!s)){var a=t.velocityX,i=t.velocityY,c=t.total,d=n.maxPositionX,h=n.minPositionX,m=n.maxPositionY,g=n.minPositionY,y=r.limitToBounds,x=r.alignmentAnimation,S=r.zoomAnimation,_=r.panning,E=_.lockAxisY,T=_.lockAxisX,P=S.animationType,C=x.sizeX,A=x.sizeY,I=x.velocityAlignmentTime,O=I,$=uA(e,c),B=Math.max($,O),te=Zr(e,C),H=Zr(e,A),L=te*s.offsetWidth/100,Z=H*s.offsetHeight/100,D=d+L,F=h-L,de=m+Z,Q=g-Z,ge=e.transformState,G=new Date().getTime();Ev(e,P,B,function(ce){var ve=e.transformState,ue=ve.scale,he=ve.positionX,le=ve.positionY,we=new Date().getTime()-G,Le=we/O,Ie=Tv[x.animationType],Je=1-Ie(Math.min(1,Le)),j=1-ce,ie=he+a*j,me=le+i*j,Me=jp(ie,ge.positionX,he,T,y,h,d,F,D,Je),Ue=jp(me,ge.positionY,le,E,y,g,m,Q,de,Je);(he!==ie||le!==me)&&e.setTransformState(ue,Me,Ue)})}}function Ip(e,t){var n=e.transformState.scale;lr(e),Cs(e,n),window.TouchEvent!==void 0&&t instanceof TouchEvent?oA(e,t):sA(e,t)}function of(e,t){var n=e.transformState.scale,r=e.setup,s=r.minScale,o=r.alignmentAnimation,a=o.disabled,i=o.sizeX,c=o.sizeY,d=o.animationTime,h=o.animationType,m=a||n<s||!i&&!c;if(!m){var g=aA(e);g&&ts(e,g,t??d,h)}}function Op(e,t,n){var r=e.startCoords,s=e.setup,o=s.alignmentAnimation,a=o.sizeX,i=o.sizeY;if(r){var c=iA(e,t,n),d=c.x,h=c.y,m=Zr(e,a),g=Zr(e,i);fA(e,{x:d,y:h}),Mv(e,d,h,m,g)}}function pA(e){if(e.isPanning){var t=e.setup.panning.velocityDisabled,n=e.velocity,r=e.wrapperComponent,s=e.contentComponent;e.isPanning=!1,e.animate=!1,e.animation=null;var o=r==null?void 0:r.getBoundingClientRect(),a=s==null?void 0:s.getBoundingClientRect(),i=(o==null?void 0:o.width)||0,c=(o==null?void 0:o.height)||0,d=(a==null?void 0:a.width)||0,h=(a==null?void 0:a.height)||0,m=i<d||c<h,g=!t&&n&&(n==null?void 0:n.total)>.1&&m;g?hA(e):of(e)}}function af(e,t,n,r){var s=e.setup,o=s.minScale,a=s.maxScale,i=s.limitToBounds,c=ui(Qn(t,2),o,a,0,!1),d=Cs(e,c),h=ec(e,n,r,c,d,i),m=h.x,g=h.y;return{scale:c,positionX:m,positionY:g}}function Av(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,a=o.minScale,i=o.limitToBounds,c=o.zoomAnimation,d=c.disabled,h=c.animationTime,m=c.animationType,g=d||r>=a;if((r>=1||i)&&of(e),!(g||!s||!e.mounted)){var y=t||s.offsetWidth/2,x=n||s.offsetHeight/2,S=af(e,a,y,x);S&&ts(e,S,h,m)}}var Gr=function(){return Gr=Object.assign||function(t){for(var n,r=1,s=arguments.length;r<s;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},Gr.apply(this,arguments)};function $p(e,t,n){for(var r=0,s=t.length,o;r<s;r++)(o||!(r in t))&&(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}var Hi={scale:1,positionX:0,positionY:0},qo={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}},rd={wrapperClass:"react-transform-wrapper",contentClass:"react-transform-component"},Rv=function(e){var t,n,r,s;return{previousScale:(t=e.initialScale)!==null&&t!==void 0?t:Hi.scale,scale:(n=e.initialScale)!==null&&n!==void 0?n:Hi.scale,positionX:(r=e.initialPositionX)!==null&&r!==void 0?r:Hi.positionX,positionY:(s=e.initialPositionY)!==null&&s!==void 0?s:Hi.positionY}},Lp=function(e){var t=Gr({},qo);return Object.keys(e).forEach(function(n){var r=typeof e[n]<"u",s=typeof qo[n]<"u";if(s&&r){var o=Object.prototype.toString.call(qo[n]),a=o==="[object Object]",i=o==="[object Array]";a?t[n]=Gr(Gr({},qo[n]),e[n]):i?t[n]=$p($p([],qo[n],!0),e[n]):t[n]=e[n]}}),t},jv=function(e,t,n){var r=e.transformState.scale,s=e.wrapperComponent,o=e.setup,a=o.maxScale,i=o.minScale,c=o.zoomAnimation,d=o.smooth,h=c.size;if(!s)throw new Error("Wrapper is not mounted");var m=d?r*Math.exp(t*n):r+t*n,g=ui(Qn(m,3),i,a,h,!1);return g};function Iv(e,t,n,r,s){var o=e.wrapperComponent,a=e.transformState,i=a.scale,c=a.positionX,d=a.positionY;if(!o)return console.error("No WrapperComponent found");var h=o.offsetWidth,m=o.offsetHeight,g=(h/2-c)/i,y=(m/2-d)/i,x=jv(e,t,n),S=af(e,x,g,y);if(!S)return console.error("Error during zoom event. New transformation state was not calculated.");ts(e,S,r,s)}function Ov(e,t,n,r){var s=e.setup,o=e.wrapperComponent,a=s.limitToBounds,i=Rv(e.props),c=e.transformState,d=c.scale,h=c.positionX,m=c.positionY;if(o){var g=sf(e,i.scale),y=ci(i.positionX,i.positionY,g,a,0,0,o),x={scale:i.scale,positionX:y.x,positionY:y.y};d===i.scale&&h===i.positionX&&m===i.positionY||(r==null||r(),ts(e,x,t,n))}}function mA(e,t,n,r){var s=e.getBoundingClientRect(),o=t.getBoundingClientRect(),a=n.getBoundingClientRect(),i=o.x*r.scale,c=o.y*r.scale;return{x:(s.x-a.x+i)/r.scale,y:(s.y-a.y+c)/r.scale}}function gA(e,t,n){var r=e.wrapperComponent,s=e.contentComponent,o=e.transformState,a=e.setup,i=a.limitToBounds,c=a.minScale,d=a.maxScale;if(!r||!s)return o;var h=r.getBoundingClientRect(),m=t.getBoundingClientRect(),g=mA(t,r,s,o),y=g.x,x=g.y,S=m.width/o.scale,_=m.height/o.scale,E=r.offsetWidth/S,T=r.offsetHeight/_,P=ui(n||Math.min(E,T),c,d,0,!1),C=(h.width-S*P)/2,A=(h.height-_*P)/2,I=(h.left-y)*P+C,O=(h.top-x)*P+A,$=sf(e,P),B=ci(I,O,$,i,0,0,r),te=B.x,H=B.y;return{positionX:te,positionY:H,scale:P}}var yA=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Iv(e,1,t,n,r)}},vA=function(e){return function(t,n,r){t===void 0&&(t=.5),n===void 0&&(n=300),r===void 0&&(r="easeOut"),Iv(e,-1,t,n,r)}},bA=function(e){return function(t,n,r,s,o){s===void 0&&(s=300),o===void 0&&(o="easeOut");var a=e.transformState,i=a.positionX,c=a.positionY,d=a.scale,h=e.wrapperComponent,m=e.contentComponent,g=e.setup.disabled;if(!(g||!h||!m)){var y={positionX:Number.isNaN(t)?i:t,positionY:Number.isNaN(n)?c:n,scale:Number.isNaN(r)?d:r};ts(e,y,s,o)}}},SA=function(e){return function(t,n){t===void 0&&(t=200),n===void 0&&(n="easeOut"),Ov(e,t,n)}},xA=function(e){return function(t,n,r){n===void 0&&(n=200),r===void 0&&(r="easeOut");var s=e.transformState,o=e.wrapperComponent,a=e.contentComponent;if(o&&a){var i=$v(t||s.scale,o,a);ts(e,i,n,r)}}},wA=function(e){return function(t,n,r,s){r===void 0&&(r=600),s===void 0&&(s="easeOut"),lr(e);var o=e.wrapperComponent,a=typeof t=="string"?document.getElementById(t):t;if(o&&a&&o.contains(a)){var i=gA(e,a,n);ts(e,i,r,s)}}},sd=function(e){return{instance:e,zoomIn:yA(e),zoomOut:vA(e),setTransform:bA(e),resetTransform:SA(e),centerView:xA(e),zoomToElement:wA(e)}},_A=function(e){return{instance:e,state:e.transformState}},Ut=function(e){var t={};return Object.assign(t,_A(e)),Object.assign(t,sd(e)),t},Gc=!1;function Jc(){try{var e={get passive(){return Gc=!0,!1}};return e}catch{return Gc=!1,Gc}}var Yi=".".concat(rd.wrapperClass),tc=function(e,t){return t.some(function(n){return e.matches("".concat(Yi," ").concat(n,", ").concat(Yi," .").concat(n,", ").concat(Yi," ").concat(n," *, ").concat(Yi," .").concat(n," *"))})},od=function(e){e&&clearTimeout(e)},CA=function(e,t,n){return"translate(".concat(e,"px, ").concat(t,"px) scale(").concat(n,")")},$v=function(e,t,n){var r=n.offsetWidth*e,s=n.offsetHeight*e,o=(t.offsetWidth-r)/2,a=(t.offsetHeight-s)/2;return{scale:e,positionX:o,positionY:a}};function kA(e){return function(t){e.forEach(function(n){typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var TA=function(e,t){var n=e.setup.wheel,r=n.disabled,s=n.wheelDisabled,o=n.touchPadDisabled,a=n.excluded,i=e.isInitialized,c=e.isPanning,d=t.target,h=i&&!c&&!r&&d;if(!h||s&&!t.ctrlKey||o&&t.ctrlKey)return!1;var m=tc(d,a);return!m},PA=function(e){return e?e.deltaY<0?1:-1:0};function EA(e,t){var n=PA(e),r=zM(t,n);return r}function Lv(e,t,n){var r=t.getBoundingClientRect(),s=0,o=0;if("clientX"in e)s=(e.clientX-r.left)/n,o=(e.clientY-r.top)/n;else{var a=e.touches[0];s=(a.clientX-r.left)/n,o=(a.clientY-r.top)/n}return(Number.isNaN(s)||Number.isNaN(o))&&console.error("No mouse or touch offset found"),{x:s,y:o}}var MA=function(e,t,n,r,s){var o=e.transformState.scale,a=e.wrapperComponent,i=e.setup,c=i.maxScale,d=i.minScale,h=i.zoomAnimation,m=i.disablePadding,g=h.size,y=h.disabled;if(!a)throw new Error("Wrapper is not mounted");var x=o+t*n,S=r?!1:!y,_=ui(Qn(x,3),d,c,g,S&&!m);return _},AA=function(e,t){var n=e.previousWheelEvent,r=e.transformState.scale,s=e.setup,o=s.maxScale,a=s.minScale;return n?r<o||r>a||Math.sign(n.deltaY)!==Math.sign(t.deltaY)||n.deltaY>0&&n.deltaY<t.deltaY||n.deltaY<0&&n.deltaY>t.deltaY||Math.sign(n.deltaY)!==Math.sign(t.deltaY):!1},RA=function(e,t){var n=e.setup.pinch,r=n.disabled,s=n.excluded,o=e.isInitialized,a=t.target,i=o&&!r&&a;if(!i)return!1;var c=tc(a,s);return!c},jA=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance,s=n&&!t&&r;return!!s},IA=function(e,t,n){var r=n.getBoundingClientRect(),s=e.touches,o=Qn(s[0].clientX-r.left,5),a=Qn(s[0].clientY-r.top,5),i=Qn(s[1].clientX-r.left,5),c=Qn(s[1].clientY-r.top,5);return{x:(o+i)/2/t,y:(a+c)/2/t}},Dv=function(e){return Math.sqrt(Math.pow(e.touches[0].pageX-e.touches[1].pageX,2)+Math.pow(e.touches[0].pageY-e.touches[1].pageY,2))},OA=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,s=e.setup,o=s.maxScale,a=s.minScale,i=s.zoomAnimation,c=s.disablePadding,d=i.size,h=i.disabled;if(!n||r===null||!t)throw new Error("Pinch touches distance was not provided");if(t<0)return e.transformState.scale;var m=t/r,g=m*n;return ui(Qn(g,2),a,o,d,!h&&!c)},$A=160,LA=100,DA=function(e,t){var n=e.props,r=n.onWheelStart,s=n.onZoomStart;e.wheelStopEventTimer||(lr(e),Ht(Ut(e),t,r),Ht(Ut(e),t,s))},FA=function(e,t){var n=e.props,r=n.onWheel,s=n.onZoom,o=e.contentComponent,a=e.setup,i=e.transformState,c=i.scale,d=a.limitToBounds,h=a.centerZoomedOut,m=a.zoomAnimation,g=a.wheel,y=a.disablePadding,x=a.smooth,S=m.size,_=m.disabled,E=g.step,T=g.smoothStep;if(!o)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var P=EA(t,null),C=x?T*Math.abs(t.deltaY):E,A=MA(e,P,C,!t.ctrlKey);if(c!==A){var I=Cs(e,A),O=Lv(t,o,c),$=_||S===0||h||y,B=d&&$,te=ec(e,O.x,O.y,A,I,B),H=te.x,L=te.y;e.previousWheelEvent=t,e.setTransformState(A,H,L),Ht(Ut(e),t,r),Ht(Ut(e),t,s)}},NA=function(e,t){var n=e.props,r=n.onWheelStop,s=n.onZoomStop;od(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout(function(){e.mounted&&(Av(e,t.x,t.y),e.wheelAnimationTimer=null)},LA);var o=AA(e,t);o&&(od(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout(function(){e.mounted&&(e.wheelStopEventTimer=null,Ht(Ut(e),t,r),Ht(Ut(e),t,s))},$A))},Fv=function(e){for(var t=0,n=0,r=0;r<2;r+=1)t+=e.touches[r].clientX,n+=e.touches[r].clientY;var s=t/2,o=n/2;return{x:s,y:o}},zA=function(e,t){var n=Dv(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1;var r=Fv(t);e.pinchLastCenterX=r.x,e.pinchLastCenterY=r.y,lr(e)},BA=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,s=e.wrapperComponent,o=e.transformState.scale,a=e.setup,i=a.limitToBounds,c=a.centerZoomedOut,d=a.zoomAnimation,h=a.alignmentAnimation,m=d.disabled,g=d.size;if(!(r===null||!n)){var y=IA(t,o,n);if(!(!Number.isFinite(y.x)||!Number.isFinite(y.y))){var x=Dv(t),S=OA(e,x),_=Fv(t),E=_.x-(e.pinchLastCenterX||0),T=_.y-(e.pinchLastCenterY||0);if(!(S===o&&E===0&&T===0)){e.pinchLastCenterX=_.x,e.pinchLastCenterY=_.y;var P=Cs(e,S),C=m||g===0||c,A=i&&C,I=ec(e,y.x,y.y,S,P,A),O=I.x,$=I.y;e.pinchMidpoint=y,e.lastDistance=x;var B=h.sizeX,te=h.sizeY,H=Zr(e,B),L=Zr(e,te),Z=O+E,D=$+T,F=ci(Z,D,P,i,H,L,s),de=F.x,Q=F.y;e.setTransformState(S,de,Q)}}}},WA=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,Av(e,t==null?void 0:t.x,t==null?void 0:t.y)},Nv=function(e,t){var n=e.props.onZoomStop,r=e.setup.doubleClick.animationTime;od(e.doubleClickStopEventTimer),e.doubleClickStopEventTimer=setTimeout(function(){e.doubleClickStopEventTimer=null,Ht(Ut(e),t,n)},r)},UA=function(e,t){var n=e.props,r=n.onZoomStart,s=n.onZoom,o=e.setup.doubleClick,a=o.animationTime,i=o.animationType;Ht(Ut(e),t,r),Ov(e,a,i,function(){return Ht(Ut(e),t,s)}),Nv(e,t)};function qA(e,t){return e==="toggle"?t===1?1:-1:e==="zoomOut"?-1:1}function HA(e,t){var n=e.setup,r=e.doubleClickStopEventTimer,s=e.transformState,o=e.contentComponent,a=s.scale,i=e.props,c=i.onZoomStart,d=i.onZoom,h=n.doubleClick,m=h.disabled,g=h.mode,y=h.step,x=h.animationTime,S=h.animationType;if(!m&&!r){if(g==="reset")return UA(e,t);if(!o)return console.error("No ContentComponent found");var _=qA(g,e.transformState.scale),E=jv(e,_,y);if(a!==E){Ht(Ut(e),t,c);var T=Lv(t,o,a),P=af(e,E,T.x,T.y);if(!P)return console.error("Error during zoom event. New transformation state was not calculated.");Ht(Ut(e),t,d),ts(e,P,x,S),Nv(e,t)}}}var YA=function(e,t){var n=e.isInitialized,r=e.setup,s=e.wrapperComponent,o=r.doubleClick,a=o.disabled,i=o.excluded,c=t.target,d=s==null?void 0:s.contains(c),h=n&&c&&d&&!a;if(!h)return!1;var m=tc(c,i);return!m},KA=function(){function e(t){var n=this;this.mounted=!0,this.pinchLastCenterX=null,this.pinchLastCenterY=null,this.onChangeCallbacks=new Set,this.onInitCallbacks=new Set,this.wrapperComponent=null,this.contentComponent=null,this.isInitialized=!1,this.bounds=null,this.previousWheelEvent=null,this.wheelStopEventTimer=null,this.wheelAnimationTimer=null,this.isPanning=!1,this.isWheelPanning=!1,this.startCoords=null,this.lastTouch=null,this.distance=null,this.lastDistance=null,this.pinchStartDistance=null,this.pinchStartScale=null,this.pinchMidpoint=null,this.doubleClickStopEventTimer=null,this.velocity=null,this.velocityTime=null,this.lastMousePosition=null,this.animate=!1,this.animation=null,this.maxBounds=null,this.pressedKeys={},this.mount=function(){n.initializeWindowEvents()},this.unmount=function(){n.cleanupWindowEvents()},this.update=function(r){n.props=r,Cs(n,n.transformState.scale),n.setup=Lp(r)},this.initializeWindowEvents=function(){var r,s,o=Jc(),a=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,i=a==null?void 0:a.defaultView;(s=n.wrapperComponent)===null||s===void 0||s.addEventListener("wheel",n.onWheelPanning,o),i==null||i.addEventListener("mousedown",n.onPanningStart,o),i==null||i.addEventListener("mousemove",n.onPanning,o),i==null||i.addEventListener("mouseup",n.onPanningStop,o),a==null||a.addEventListener("mouseleave",n.clearPanning,o),i==null||i.addEventListener("keyup",n.setKeyUnPressed,o),i==null||i.addEventListener("keydown",n.setKeyPressed,o)},this.cleanupWindowEvents=function(){var r,s,o=Jc(),a=(r=n.wrapperComponent)===null||r===void 0?void 0:r.ownerDocument,i=a==null?void 0:a.defaultView;i==null||i.removeEventListener("mousedown",n.onPanningStart,o),i==null||i.removeEventListener("mousemove",n.onPanning,o),i==null||i.removeEventListener("mouseup",n.onPanningStop,o),a==null||a.removeEventListener("mouseleave",n.clearPanning,o),i==null||i.removeEventListener("keyup",n.setKeyUnPressed,o),i==null||i.removeEventListener("keydown",n.setKeyPressed,o),document.removeEventListener("mouseleave",n.clearPanning,o),lr(n),(s=n.observer)===null||s===void 0||s.disconnect()},this.handleInitializeWrapperEvents=function(r){var s=Jc();r.addEventListener("wheel",n.onWheelZoom,s),r.addEventListener("dblclick",n.onDoubleClick,s),r.addEventListener("touchstart",n.onTouchPanningStart,s),r.addEventListener("touchmove",n.onTouchPanning,s),r.addEventListener("touchend",n.onTouchPanningStop,s)},this.handleInitialize=function(r,s){var o=!1,a=n.setup.centerOnInit,i=function(c,d){for(var h=0,m=c;h<m.length;h++){var g=m[h];if(g.target===d)return!0}return!1};n.applyTransformation(),n.onInitCallbacks.forEach(function(c){c(Ut(n))}),n.observer=new ResizeObserver(function(c){if(i(c,r)||i(c,s))if(a&&!o){var d=s.offsetWidth,h=s.offsetHeight;(d>0||h>0)&&(o=!0,n.setCenter())}else lr(n),Cs(n,n.transformState.scale),of(n,0)}),n.observer.observe(r),n.observer.observe(s)},this.onWheelZoom=function(r){var s=n.setup.disabled;if(!s){var o=TA(n,r);if(o){var a=n.isPressingKeys(n.setup.wheel.activationKeys);a&&(DA(n,r),FA(n,r),NA(n,r))}}},this.onWheelPanning=function(r){var s=n.setup,o=s.disabled,a=s.wheel,i=s.panning;if(!(!n.wrapperComponent||!n.contentComponent||o||!a.wheelDisabled||i.disabled||!i.wheelPanning||r.ctrlKey)){r.preventDefault(),r.stopPropagation();var c=n.transformState,d=c.positionX,h=c.positionY,m=d-r.deltaX,g=h-r.deltaY,y=i.lockAxisX?d:m,x=i.lockAxisY?h:g,S=n.setup.alignmentAnimation,_=S.sizeX,E=S.sizeY,T=Zr(n,_),P=Zr(n,E);y===d&&x===h||Mv(n,y,x,T,P)}},this.onPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var a=Ap(n,r);if(a){var i=n.isPressingKeys(n.setup.panning.activationKeys);i&&(r.button===0&&!n.setup.panning.allowLeftClickPan||r.button===1&&!n.setup.panning.allowMiddleClickPan||r.button===2&&!n.setup.panning.allowRightClickPan||(r.preventDefault(),r.stopPropagation(),lr(n),Ip(n,r),Ht(Ut(n),r,o)))}}},this.onPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(!s){var a=Rp(n);if(a){var i=n.isPressingKeys(n.setup.panning.activationKeys);i&&(r.preventDefault(),r.stopPropagation(),Op(n,r.clientX,r.clientY),Ht(Ut(n),r,o))}}},this.onPanningStop=function(r){var s=n.props.onPanningStop;n.isPanning&&(pA(n),Ht(Ut(n),r,s))},this.onPinchStart=function(r){var s=n.setup.disabled,o=n.props,a=o.onPinchingStart,i=o.onZoomStart;if(!s){var c=RA(n,r);c&&(zA(n,r),lr(n),Ht(Ut(n),r,a),Ht(Ut(n),r,i))}},this.onPinch=function(r){var s=n.setup.disabled,o=n.props,a=o.onPinching,i=o.onZoom;if(!s){var c=jA(n);c&&(r.preventDefault(),r.stopPropagation(),BA(n,r),Ht(Ut(n),r,a),Ht(Ut(n),r,i))}},this.onPinchStop=function(r){var s=n.props,o=s.onPinchingStop,a=s.onZoomStop;n.pinchStartScale&&(WA(n),Ht(Ut(n),r,o),Ht(Ut(n),r,a))},this.onTouchPanningStart=function(r){var s=n.setup.disabled,o=n.props.onPanningStart;if(!s){var a=Ap(n,r);if(a){var i=n.lastTouch&&+new Date-n.lastTouch<200&&r.touches.length===1;if(!i){n.lastTouch=+new Date,lr(n);var c=r.touches,d=c.length===1,h=c.length===2;d&&(lr(n),Ip(n,r),Ht(Ut(n),r,o)),h&&n.onPinchStart(r)}}}},this.onTouchPanning=function(r){var s=n.setup.disabled,o=n.props.onPanning;if(n.isPanning&&r.touches.length===1){if(s)return;var a=Rp(n);if(!a)return;r.preventDefault(),r.stopPropagation();var i=r.touches[0];Op(n,i.clientX,i.clientY),Ht(Ut(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=YA(n,r);o&&HA(n,r)}},this.clearPanning=function(r){n.isPanning&&n.onPanningStop(r)},this.setKeyPressed=function(r){n.pressedKeys[r.key]=!0},this.setKeyUnPressed=function(r){n.pressedKeys[r.key]=!1},this.isPressingKeys=function(r){return r.length?!!r.find(function(s){return n.pressedKeys[s]}):!0},this.setTransformState=function(r,s,o){var a=n.props.onTransformed;if(!Number.isNaN(r)&&!Number.isNaN(s)&&!Number.isNaN(o)){r!==n.transformState.scale&&(n.transformState.previousScale=n.transformState.scale,n.transformState.scale=r),n.transformState.positionX=s,n.transformState.positionY=o,n.applyTransformation();var i=Ut(n);n.onChangeCallbacks.forEach(function(c){return c(i)}),Ht(i,{scale:r,positionX:s,positionY:o},a)}else console.error("Detected NaN set state values")},this.setCenter=function(){if(n.wrapperComponent&&n.contentComponent){var r=$v(n.transformState.scale,n.wrapperComponent,n.contentComponent);n.setTransformState(r.scale,r.positionX,r.positionY)}},this.handleTransformStyles=function(r,s,o){return n.props.customTransform?n.props.customTransform(r,s,o):CA(r,s,o)},this.applyTransformation=function(){if(!(!n.mounted||!n.contentComponent)){var r=n.transformState,s=r.scale,o=r.positionX,a=r.positionY,i=n.handleTransformStyles(o,a,s);n.contentComponent.style.transform=i}},this.getContext=function(){return Ut(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,Cs(n,n.transformState.scale),n.handleInitializeWrapperEvents(r),n.handleInitialize(r,s),n.initializeWindowEvents(),n.isInitialized=!0;var o=Ut(n);Ht(o,void 0,n.props.onInit)},this.props=t,this.setup=Lp(this.props),this.transformState=Rv(this.props)}return e}(),lf=dt.createContext(null),XA=function(e,t){return typeof e=="function"?e(t):e},VA=dt.forwardRef(function(e,t){var n=b.useRef(new KA(e)).current,r=XA(e.children,sd(n));return b.useImperativeHandle(t,function(){return sd(n)},[n]),b.useEffect(function(){n.update(e)},[n,e]),dt.createElement(lf.Provider,{value:n},r)});dt.forwardRef(function(e,t){var n=b.useRef(null),r=b.useContext(lf);return b.useEffect(function(){return r.onChange(function(s){if(n.current){var o=0,a=0;n.current.style.transform=r.handleTransformStyles(o,a,1/s.instance.transformState.scale)}})},[r]),dt.createElement("div",Gr({},e,{ref:kA([n,t])}))});function GA(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",n==="top"&&r.firstChild?r.insertBefore(s,r.firstChild):r.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}var JA=`.transform-component-module_wrapper__SPB86 {
161
+ position: relative;
162
+ width: -moz-fit-content;
163
+ width: fit-content;
164
+ height: -moz-fit-content;
165
+ height: fit-content;
166
+ overflow: hidden;
167
+ -webkit-touch-callout: none; /* iOS Safari */
168
+ -webkit-user-select: none; /* Safari */
169
+ -khtml-user-select: none; /* Konqueror HTML */
170
+ -moz-user-select: none; /* Firefox */
171
+ -ms-user-select: none; /* Internet Explorer/Edge */
172
+ user-select: none;
173
+ margin: 0;
174
+ padding: 0;
175
+ transform: translate3d(0, 0, 0);
176
+ }
177
+ .transform-component-module_content__FBWxo {
178
+ display: flex;
179
+ flex-wrap: wrap;
180
+ width: -moz-fit-content;
181
+ width: fit-content;
182
+ height: -moz-fit-content;
183
+ height: fit-content;
184
+ margin: 0;
185
+ padding: 0;
186
+ transform-origin: 0% 0%;
187
+ }
188
+ .transform-component-module_content__FBWxo img {
189
+ pointer-events: none;
190
+ }
191
+ `,Dp={wrapper:"transform-component-module_wrapper__SPB86",content:"transform-component-module_content__FBWxo"};GA(JA);var QA=function(e){var t=e.children,n=e.wrapperClass,r=n===void 0?"":n,s=e.contentClass,o=s===void 0?"":s,a=e.wrapperStyle,i=e.contentStyle,c=e.wrapperProps,d=c===void 0?{}:c,h=e.contentProps,m=h===void 0?{}:h,g=b.useContext(lf),y=g.init,x=g.cleanupWindowEvents,S=b.useRef(null),_=b.useRef(null);return b.useEffect(function(){var E=S.current,T=_.current;return E!==null&&T!==null&&y&&(y==null||y(E,T)),function(){x==null||x()}},[]),dt.createElement("div",Gr({},d,{ref:S,className:"".concat(rd.wrapperClass," ").concat(Dp.wrapper," ").concat(r),style:a}),dt.createElement("div",Gr({},m,{ref:_,className:"".concat(rd.contentClass," ").concat(Dp.content," ").concat(o),style:i}),t))};class ZA{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,{save:o}=await Jt(async()=>{const{save:d}=await import("./index-BmjFP0ha.js");return{save:d}},__vite__mapDeps([12,13]),import.meta.url),{writeFile:a,writeTextFile:i}=await Jt(async()=>{const{writeFile:d,writeTextFile:h}=await import("./index-_XI0Qq6F.js");return{writeFile:d,writeTextFile:h}},__vite__mapDeps([14,13]),import.meta.url),c=await o({filters:r.map(d=>({name:d.name,extensions:[...d.extensions]})),defaultPath:s});if(!c)throw new Error("User cancelled save operation");return typeof n=="string"?await i(c,n):await a(c,n),{filename:zv(c,s),success:!0}}}class eR{async saveFile(t){const{content:n,filters:r,defaultPath:s}=t,o=zv(s,s);if(typeof window>"u"||typeof document>"u")throw new Error("File save is unavailable in this environment");const a=rR(r,n),i=typeof n=="string"?new Blob([n],{type:`${a};charset=utf-8`}):new Blob([n],{type:a}),c=URL.createObjectURL(i);try{const d=document.createElement("a");d.href=c,d.download=o,d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d)}finally{URL.revokeObjectURL(c)}return{filename:o,success:!0}}}const tR=new ZA,nR=new eR,zv=(e,t)=>e.split(/[/\\]/).pop()||t,rR=(e,t)=>{var r,s,o;switch(((o=(s=(r=e[0])==null?void 0:r.extensions)==null?void 0:s[0])==null?void 0:o.toLowerCase())||""){case"md":return"text/markdown";case"txt":return"text/plain";case"json":return"application/json";case"pdf":return"application/pdf";case"svg":return"image/svg+xml";case"png":return"image/png";case"jpg":case"jpeg":return"image/jpeg";default:return typeof t=="string"?"text/plain":"application/octet-stream"}},sR=()=>Zd()?tR:nR;class br{static async saveFile(t){try{return await sR().saveFile(t)}catch(n){return{filename:"",success:!1,error:n instanceof Error?n.message:"Unknown error occurred"}}}static async saveTextFile(t,n,r){return this.saveFile({content:t,filters:n,defaultPath:r})}static async saveBinaryFile(t,n,r){return this.saveFile({content:t,filters:n,defaultPath:r})}static generateTimestampedFilename(t,n){const r=new Date().toISOString().slice(0,19).replace(/:/g,"-");return`${t}-${r}.${n}`}}Et(br,"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 oR=e=>{const r=new DOMParser().parseFromString(e,"image/svg+xml").querySelector("svg");return r?(r.getAttribute("xmlns")||r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r.getAttribute("xmlns:xlink")||r.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),`<?xml version="1.0" encoding="UTF-8"?>
192
+ ${new XMLSerializer().serializeToString(r)}`):e},aR=({svg:e,height:t,isLoading:n,initialScale:r,chartKey:s,className:o,style:a,token:i,containerRef:c})=>{const{t:d}=Ge(),{message:h}=Dn.useApp(),[m,g]=b.useState(!1),y=b.useCallback(async()=>{var S;if(!(!e||m)){g(!0);try{const _=oR(e),E=new TextEncoder().encode(_),T=s?`mermaid-${s.slice(0,8)}`:"mermaid-graph",P=br.generateTimestampedFilename(T,"svg"),C=await br.saveBinaryFile(E,br.FILTERS.SVG,P);if(C.success){h.success(d("chat.messageActions.savedFile",{filename:C.filename}));return}if((S=C.error)!=null&&S.toLowerCase().includes("cancel"))return;h.error(C.error||d("chat.messageActions.exportFailed"))}catch(_){const E=_ instanceof Error?_.message:d("components.mermaid.exportFailed");h.error(E)}finally{g(!1)}}},[h,s,m,e,d]),x=n||!e||m;return l.jsxs("div",{ref:c,"data-mermaid-loading":n?"true":"false",className:o,style:{textAlign:"center",margin:`${i.marginXS}px 0`,padding:i.padding,background:i.colorBgContainer,borderRadius:i.borderRadiusSM,border:`1px solid ${i.colorBorder}`,overflow:"hidden",height:`${Math.min(t,800)}px`,minHeight:"300px",maxHeight:"80vh",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",willChange:"auto",contain:"layout style paint",...a},children:[n&&l.jsx("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:i.colorTextSecondary,fontSize:i.fontSizeSM,zIndex:2},children:d("components.mermaid.renderingDiagram")}),l.jsx("div",{style:{width:"100%",height:"100%",opacity:n?0:1,position:"relative"},children:l.jsx(VA,{initialScale:r,minScale:.1,maxScale:10,centerOnInit:!0,limitToBounds:!1,wheel:{step:.1},panning:{disabled:!1},pinch:{disabled:!1},doubleClick:{disabled:!1,mode:"zoomIn",step:.5},children:({zoomIn:S,zoomOut:_,resetTransform:E})=>l.jsxs(l.Fragment,{children:[l.jsxs("div",{"data-mermaid-controls":"true",style:{position:"absolute",top:8,right:8,zIndex:10,display:"flex",flexDirection:"column",gap:4,background:i.colorBgContainer,borderRadius:i.borderRadiusSM,border:`1px solid ${i.colorBorder}`,padding:4,boxShadow:i.boxShadowSecondary},children:[l.jsx(je,{size:"small",type:"text",onClick:()=>S(),style:{fontSize:12,padding:"2px 6px"},children:"+"}),l.jsx(je,{size:"small",type:"text",onClick:()=>_(),style:{fontSize:12,padding:"2px 6px"},children:"-"}),l.jsx(je,{size:"small",type:"text",onClick:()=>E(),style:{fontSize:10,padding:"2px 6px"},children:"⌂"}),l.jsx(Sn,{title:d("components.mermaid.exportSvg"),children:l.jsx(je,{size:"small",type:"text",icon:l.jsx(io,{}),"aria-label":d("components.mermaid.downloadChartAriaLabel"),disabled:x,loading:m,onClick:()=>{y()},style:{fontSize:11,padding:"2px 6px"}})})]}),l.jsx(QA,{wrapperStyle:{width:"100%",height:"100%"},contentStyle:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:l.jsx("div",{style:{display:"inline-block",lineHeight:0},dangerouslySetInnerHTML:{__html:e.replace(/<svg([^>]*)>/,'<svg$1 style="display: block; max-width: 100%; max-height: 100%;">')}})})]})})})]})};function iR(e){let t=2166136261;for(let n=0;n<e.length;n++)t=(t^e.charCodeAt(n))*16777619;return(t>>>0).toString(36)}const lR=(e,t)=>{const n=b.useMemo(()=>Z0(e),[e]),r=b.useMemo(()=>iR(n),[n]),[s,o]=b.useState(()=>{const a=il(r);return a?{svg:a.svg,height:a.height+80,svgWidth:a.width,svgHeight:a.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:t}});return b.useEffect(()=>{const a=il(r);o(a?{svg:a.svg,height:a.height+80,svgWidth:a.width,svgHeight:a.height,error:"",isLoading:!1}:{svg:"",height:200,svgWidth:800,svgHeight:200,error:"",isLoading:!1})},[r]),b.useEffect(()=>{if(il(r))return;let i=!1;return o(c=>({...c,isLoading:!0})),sC(r,n).then(c=>{i||o({svg:c.svg,height:c.height+80,svgWidth:c.width,svgHeight:c.height,error:"",isLoading:!1})}).catch(c=>{if(!i){console.error("[MermaidState] Render error:",c);const d=c instanceof Error?c.message:String(c);o(h=>({...h,error:d||"Failed to render Mermaid diagram",isLoading:!1}))}}),()=>{i=!0}},[r,n,t]),{renderState:s,chartKey:r}},{useToken:cR}=ut,Rl=dt.memo(({chart:e,id:t,className:n,style:r,onFix:s})=>{const{token:o}=cR(),a=Yd(),[i,c]=b.useState(!1),[d,h]=b.useState(""),m=b.useRef(null),{renderState:g,chartKey:y}=lR(e,!0),{svg:x,height:S,svgWidth:_,error:E,isLoading:T}=g,C=(()=>{const I=a.defaultScale;return _>1200?I*.8:_>800?I*1:I*1.2})(),A=async()=>{if(!(!s||i)){c(!0),h("");try{await s(e,E)}catch(I){const O=I instanceof Error?I.message:String(I);h(O||"Failed to fix Mermaid diagram")}finally{c(!1)}}};return E?l.jsx(NM,{error:E,className:n,style:r,token:o,onFix:s?A:void 0,isFixing:i,fixError:d}):l.jsx(aR,{svg:x,height:S,isLoading:T,initialScale:C,chartKey:y,className:n,style:r,token:o,containerRef:m})});Rl.displayName="MermaidChart";const uR=Object.freeze(Object.defineProperty({__proto__:null,MermaidChart:Rl,default:Rl},Symbol.toStringTag,{value:"Module"})),oi={'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%)"}};un.registerLanguage("javascript",Ng);un.registerLanguage("js",Ng);un.registerLanguage("typescript",zg);un.registerLanguage("ts",zg);un.registerLanguage("python",Bg);un.registerLanguage("py",Bg);un.registerLanguage("json",hx);un.registerLanguage("bash",Td);un.registerLanguage("shell",Td);un.registerLanguage("sh",Td);un.registerLanguage("css",px);un.registerLanguage("html",Wg);un.registerLanguage("xml",Wg);un.registerLanguage("sql",mx);un.registerLanguage("yaml",Ug);un.registerLanguage("yml",Ug);un.registerLanguage("markdown",qg);un.registerLanguage("md",qg);const dR=()=>oi,fR=["javascript","js","typescript","ts","python","py","json","bash","shell","sh","css","html","xml","sql","yaml","yml","markdown","md"],hR=({language:e,codeString:t,token:n})=>{const{t:r}=Ge(),{message:s}=Dn.useApp(),[o,a]=b.useState(!1),i=(n==null?void 0:n.marginXS)??8,c=(n==null?void 0:n.borderRadiusSM)??4,d=(n==null?void 0:n.fontSizeSM)??12,h=(n==null?void 0:n.paddingSM)??8,m=async()=>{try{await Ir(t),s.success(r("components.markdown.codeCopiedSuccess"))}catch(x){console.error("Copy failed:",x),s.error(r("components.markdown.copyFailed"))}},g=e.toLowerCase(),y=fR.includes(g);return l.jsxs(en,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto"},onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),children:[l.jsx(un,{style:dR(),language:y?g:"text",PreTag:"div",customStyle:{margin:`${i}px 0`,borderRadius:c,fontSize:d,maxWidth:"100%",paddingRight:"50px"},showLineNumbers:t.split(`
193
+ `).length>10,wrapLines:!0,wrapLongLines:!0,children:t}),o&&l.jsx(je,{type:"text",size:"small",icon:l.jsx(jr,{}),onClick:m,"aria-label":r("components.markdown.copyCodeAriaLabel"),style:{position:"absolute",top:h,right:h,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:c,opacity:.8,transition:"opacity 0.2s",zIndex:10},onMouseEnter:x=>{const S=x.currentTarget;S.style.opacity="1"},onMouseLeave:x=>{const S=x.currentTarget;S.style.opacity="0.8"}})]})},pR=({codeString:e,token:t})=>{const{t:n}=Ge(),{message:r}=Dn.useApp(),s=(t==null?void 0:t.marginXS)??8,o=(t==null?void 0:t.borderRadiusSM)??4,a=(t==null?void 0:t.fontSizeSM)??12,i=(t==null?void 0:t.paddingSM)??8,c=(t==null?void 0:t.padding)??16;return l.jsxs(en,{size:"small",styles:{body:{padding:0}},style:{position:"relative",margin:`${s}px 0`},onMouseEnter:d=>{const h=d.currentTarget.querySelector(".fallback-copy-btn");h&&(h.style.display="block")},onMouseLeave:d=>{const h=d.currentTarget.querySelector(".fallback-copy-btn");h&&(h.style.display="none")},children:[l.jsx("pre",{style:{backgroundColor:"var(--ant-color-bg-container, #ffffff)",border:"1px solid var(--ant-color-border, #d9d9d9)",padding:c,borderRadius:o,overflow:"auto",fontSize:a,paddingRight:"50px",margin:0},children:l.jsx("code",{style:{color:"var(--ant-color-text, #333)"},children:e})}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(jr,{}),"aria-label":n("components.markdown.copyCodeAriaLabel"),className:"fallback-copy-btn",onClick:async()=>{try{await Ir(e),r.success(n("components.markdown.codeCopiedSuccess"))}catch(d){console.error("Copy failed:",d),r.error(n("components.markdown.copyFailed"))}},style:{position:"absolute",top:i,right:i,backgroundColor:"var(--lotus-code-copy-btn-bg, rgba(0, 0, 0, 0.6))",color:"var(--lotus-code-copy-btn-color, white)",border:"none",borderRadius:o,display:"none",zIndex:10}})]})},mR={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"},Bv=/^(\s*%%\{[\s\S]*?\}%%\s*)+/,gR=/^(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,yR=e=>e.replace(Bv,"").trimStart(),vR=(e,t)=>{const n=e.match(Bv);if(!n)return`${t}
194
+ ${e}`.trim();const r=n[0].trimEnd(),s=e.slice(n[0].length).trimStart();return s?`${r}
195
+ ${t}
196
+ ${s}`:`${r}
197
+ ${t}`},bR=(e,t)=>{const n=mR[e];if(!n)return null;const r=t.trim();if(!r)return"";if(e==="mermaid")return r;const s=yR(r);return gR.test(s)?r:vR(r,n)},Wv=(e,t,n,r,s="lazy")=>{try{if(!t||typeof t!="string")return console.warn("Invalid codeString provided to renderCodeBlock:",t),null;const o=e.toLowerCase().trim(),a=bR(o,t);if(a!==null){const i=a.trim();return i?s==="eager"?l.jsx(Rl,{chart:i,onFix:r}):l.jsx(FM,{chart:i,onFix:r}):(console.warn("Empty Mermaid chart content"),null)}return l.jsx(hR,{language:o,codeString:t,token:n})}catch(o){return console.warn("Syntax highlighting failed:",o),l.jsx(pR,{codeString:t,token:n})}},Fp=(e,t)=>{if(typeof window>"u")return;const n=window.open(e,"_blank","noopener,noreferrer");if(n){n.opener=null;return}((t==null?void 0:t.allowLocationFallback)??!0)&&window.location.assign(e)},Uv=async e=>{const t=e.trim();if(!t)return;if(Zd()){const r=window.__TAURI_INTERNALS__,s=r==null?void 0:r.invoke;if(typeof s=="function")try{await s("plugin:shell|open",{path:t});return}catch(o){console.warn("[openExternalLink] Failed to open via Tauri shell plugin, falling back to browser open.",o)}Fp(t,{allowLocationFallback:!1});return}Fp(t)},{Text:Np}=ft,Ki=8,Qc=4,zp="4px 8px",SR="4px 8px",qv=(e,t)=>({p:({children:n})=>l.jsx(Np,{style:{marginBottom:Ki,display:"block"},children:n}),ol:({children:n})=>l.jsx("ol",{style:{marginBottom:Ki,paddingLeft:20},children:n}),ul:({children:n})=>l.jsx("ul",{style:{marginBottom:Ki,paddingLeft:20},children:n}),li:({children:n})=>l.jsx("li",{style:{marginBottom:Qc},children:n}),code({className:n,children:r,inline:s,...o}){const a=/language-([^\s]+)/i.exec(n||""),i=a?a[1]:"",c=s??(!a&&!n),d=r?String(r).replace(/\n$/,""):"";return c?l.jsx(Np,{code:!0,className:n,...o,children:r}):d.trim()?Wv(i,d,void 0,t==null?void 0:t.onFixMermaid,t==null?void 0:t.mermaidRenderMode):null},blockquote:({children:n})=>l.jsx(en,{size:"small",styles:{body:{padding:SR}},style:{borderLeft:"3px solid var(--ant-color-primary, #0d9488)",background:"var(--ant-color-primary-bg, rgba(13, 148, 136, 0.08))",margin:`${Qc}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(),Uv(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(en,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${Ki}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:zp,textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:n}),td:({children:n})=>l.jsx("td",{style:{padding:zp,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:Qc,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:n,checked:r,disabled:s})}),{Text:rn}=ft,Bp=e=>{if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},xR=({content:e,toolName:t,status:n="success",timestamp:r,defaultCollapsed:s=!0,isLoading:o,errorMessage:a})=>{const{t:i}=Ge(),{token:c}=ut.useToken(),d=b.useMemo(()=>uo(e),[e]),h=b.useMemo(()=>typeof o=="boolean"?o:d.formattedText.trim().length===0,[d.formattedText,o]),m=b.useMemo(()=>dP(d.formattedText),[d.formattedText]),g=b.useMemo(()=>yo(e),[e]),y=b.useMemo(()=>dv(e),[e]),x=async()=>{try{const _=d.isJson?_s(d.parsedJson):d.formattedText;await Ir(_)}catch(_){console.error("[ToolResultCard] Failed to copy result:",_)}},S=b.useMemo(()=>{const _=e?e.slice(0,50).replace(/[^a-zA-Z0-9]/g,""):"empty";return`tool-result-${t}-${_}`},[t,e]);return l.jsx(fo,{defaultActiveKey:s?[]:[S],style:{backgroundColor:c.colorBgContainer,borderColor:c.colorBorderSecondary,borderWidth:1,borderStyle:"solid",borderRadius:c.borderRadiusLG},items:[{key:S,label:l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:c.marginSM,width:"100%"},children:[l.jsx(Gg,{style:{color:c.colorPrimary,flexShrink:0}}),l.jsx(rn,{strong:!0,style:{color:c.colorText,flexShrink:0},children:t}),l.jsx(rn,{type:"secondary",ellipsis:!0,style:{flex:1,minWidth:0,fontSize:c.fontSizeSM},children:h?i("components.toolResult.waiting"):m}),l.jsx(Ze,{color:pv(n),style:{flexShrink:0,margin:0},children:n})]}),children:l.jsxs(He,{direction:"vertical",style:{width:"100%"},size:c.marginSM,children:[r&&l.jsx(rn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:new Date(r).toLocaleString()}),a&&l.jsx(cr,{type:"error",message:i("components.toolResult.executionFailed"),description:a,showIcon:!0}),l.jsxs("div",{style:{position:"relative"},children:[l.jsx(Sn,{title:i("components.toolResult.copyResult"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(jr,{}),"aria-label":i("components.toolResult.copyResult"),onClick:_=>{_.stopPropagation(),x()},style:{position:"absolute",top:8,right:8,zIndex:1}})}),h?l.jsx(rn,{type:"secondary",children:i("components.toolResult.waitingForResult")}):y?l.jsxs(He,{direction:"vertical",style:{width:"100%"},size:10,children:[l.jsxs(He,{wrap:!0,children:[l.jsx(Ze,{color:y.action==="rebuild"?"gold":"blue",children:i(`components.toolResult.memory.action.${y.action}`)}),l.jsx(Ze,{children:y.data.scope}),y.data.project_key?l.jsx(Ze,{children:y.data.project_key}):null,l.jsx(Ze,{color:"green",children:i("components.toolResult.memory.totalMemories",{count:y.data.total_memories})}),l.jsx(Ze,{color:y.data.stale_candidate_count>0?"orange":"default",children:i("components.toolResult.memory.staleCandidates",{count:y.data.stale_candidate_count})})]}),l.jsxs("div",{children:[l.jsx(rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.coverage")}),l.jsxs("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:[Object.entries(y.data.by_type).map(([_,E])=>l.jsx(Ze,{children:`${_}: ${E}`},`type-${_}`)),Object.entries(y.data.by_status).map(([_,E])=>l.jsx(Ze,{color:"processing",children:`${_}: ${E}`},`status-${_}`))]})]}),l.jsx(xl,{style:{margin:`${c.marginXS}px 0`}}),l.jsxs("div",{style:{display:"grid",gap:c.marginXS},children:[l.jsxs(rn,{style:{fontSize:c.fontSizeSM},children:[l.jsx(rn,{strong:!0,children:i("components.toolResult.memory.viewsLabel")})," ",y.data.view_files.length]}),l.jsxs(rn,{style:{fontSize:c.fontSizeSM},children:[l.jsx(rn,{strong:!0,children:i("components.toolResult.memory.indexesLabel")})," ",y.data.index_files.length]}),l.jsxs(rn,{style:{fontSize:c.fontSizeSM},children:[l.jsx(rn,{strong:!0,children:i("components.toolResult.memory.stateFilesLabel")})," ",y.data.state_files.length]}),y.data.last_reindex_at?l.jsxs(rn,{style:{fontSize:c.fontSizeSM},children:[l.jsx(rn,{strong:!0,children:i("components.toolResult.memory.lastReindexLabel")})," ",Bp(y.data.last_reindex_at)]}):null,y.data.last_dream_at?l.jsxs(rn,{style:{fontSize:c.fontSizeSM},children:[l.jsx(rn,{strong:!0,children:i("components.toolResult.memory.lastDreamLabel")})," ",Bp(y.data.last_dream_at)]}):null]}),y.data.view_files.length>0?l.jsxs("div",{children:[l.jsx(rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.viewFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:y.data.view_files.map(_=>l.jsx(Ze,{children:_},`view-${_}`))})]}):null,y.data.index_files.length>0?l.jsxs("div",{children:[l.jsx(rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.indexFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:y.data.index_files.map(_=>l.jsx(Ze,{children:_},`index-${_}`))})]}):null,y.data.state_files.length>0?l.jsxs("div",{children:[l.jsx(rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.stateFiles")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:y.data.state_files.map(_=>l.jsx(Ze,{children:_},`state-${_}`))})]}):null,y.data.topic_paths.length>0?l.jsxs("div",{children:[l.jsx(rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.topicPaths")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:y.data.topic_paths.map(_=>l.jsx(Ze,{children:_},`topic-${_}`))})]}):null,y.data.recent_ids.length>0?l.jsxs("div",{children:[l.jsx(rn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolResult.memory.recentMemories")}),l.jsx("div",{style:{marginTop:c.marginXS,display:"flex",flexWrap:"wrap",gap:c.marginXS},children:y.data.recent_ids.map(_=>l.jsx(Ze,{color:"default",children:_},`recent-${_}`))})]}):null]}):g?l.jsx(ri,{payload:g,defaultViewMode:"sideBySide"}):d.isJson?l.jsx(bl,{language:"json",style:oi,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})]})]})}]})},Hv=b.memo(xR);Hv.displayName="ToolResultCard";function Yv(e,t){const n=go(e);if(n)return`MCP ${n.serverId}: ${n.toolName}`;const r=(a,i)=>{const c=typeof a=="string"?a:String(a??"");return!c||c.length<=i?c:c.substring(0,i).trimEnd()+"…"},s={file_read:a=>`Reading: ${r(a.path||a.file_path||"file",40)}`,file_write:a=>`Writing to: ${r(a.path||a.file_path||"file",35)}`,file_edit:a=>`Editing: ${r(a.path||a.file_path||"file",40)}`,bash:a=>`Executing: ${r(a.command,40)}`,grep:a=>`Searching: "${r(a.pattern,30)}"`,glob:a=>`Finding files: "${a.pattern}"`,conclusion:a=>`Presenting conclusion: "${r(a.conclusion||a.title||"",30)}"`,read:a=>`Reading: ${a.file_path||"file"}`,write:a=>`Writing: ${a.file_path||"file"}`,edit:a=>`Editing: ${a.file_path||"file"}`,search:a=>`Searching: "${r(a.query||a.pattern,30)}"`,default:()=>`Calling ${e}`};return(s[e]||s.default)(t)}const wR=e=>Array.from(new Set(e.map(t=>tr(t)).filter(Boolean))).sort(),Kv=(e,t)=>{const n=tr(e),r=b.useMemo(()=>wR(t),[t]),s=b.useMemo(()=>_r(o=>{const a={};return n&&r.forEach(i=>{const c=Gd(n,i);c&&(a[i]=o(Vl(c)))}),a}),[n,r]);return $C(s,{store:Xl})},Xv=(e,t,n)=>{var o;const r=tr(e);return(r?((o=t[r])==null?void 0:o.output)??"":"")||n||""},_R=(e,t)=>e==null?{isJson:!1,formattedText:""}:t==="json"?{isJson:!0,formattedText:typeof e=="string"?e:_s(e,2)}:t==="text"?{isJson:!1,formattedText:typeof e=="string"?e:_s(e,2)}:typeof e=="string"?uo(e):{isJson:!0,formattedText:_s(e,2),parsedJson:e},Ra=({value:e,mode:t="auto",emptyDescription:n,className:r,height:s,maxHeight:o,compact:a=!1,scrollable:i=!0,backgroundColor:c})=>{const{token:d}=ut.useToken(),h=b.useMemo(()=>_R(e,t),[e,t]),m=h.formattedText??"";if(!m.trim())return n===void 0?null:l.jsx(Tu,{description:n});const g=a?Math.max(d.fontSizeSM-1,11):d.fontSizeSM,y=["lotus-code-surface",r].filter(Boolean).join(" "),x={backgroundColor:c??(a?d.colorFillTertiary:d.colorBgContainer),borderRadius:d.borderRadiusSM,height:s,maxHeight:o,minHeight:0,display:"flex",flexDirection:"column",overflow:i?"auto":"hidden"};return h.isJson?l.jsx("div",{className:y,style:x,children:l.jsx(bl,{language:"json",style:oi,wrapLongLines:!0,customStyle:{margin:0,backgroundColor:"transparent",fontSize:g,padding:a?d.paddingXS:d.paddingSM,minHeight:s?"100%":void 0,flex:s?1:void 0},codeTagProps:{style:{whiteSpace:"pre-wrap",wordBreak:"break-word"}},children:m})}):l.jsx("div",{className:y,style:x,children:l.jsx("pre",{style:{margin:0,padding:a?d.paddingXS:d.paddingSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:g,whiteSpace:"pre-wrap",wordBreak:"break-word",minHeight:s?"100%":void 0,flex:s?1:void 0},children:m})})},{Text:Wn}=ft,CR=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,kR=({open:e,onClose:t,sessionId:n=null,call:r,metadata:s,initialTab:o="preview",result:a})=>{var te;const{t:i}=Ge(),{token:c}=ut.useToken(),d=Kv(n,[r.toolCallId]),h=Xv(r.toolCallId,d,r.streamingOutput),m=b.useMemo(()=>go(r.toolName),[r.toolName]),g=b.useMemo(()=>Yv(r.toolName,r.parameters),[r.toolName,r.parameters]),y=((te=a==null?void 0:a.result)==null?void 0:te.result)??"",x=b.useMemo(()=>y.trim()?yo(y):null,[y]),S=typeof(s==null?void 0:s.summary)=="string"&&s.summary.trim().length>0?s.summary.trim():null,_=b.useMemo(()=>_s(r.parameters,2),[r.parameters]),E=async()=>{try{await Ir(_)}catch(H){console.error("[ToolStepDetailDrawer] Failed to copy parameters:",H)}},T=b.useMemo(()=>h!=null&&h.trim()?{label:i("components.toolCall.liveOutput"),value:h,mode:"auto"}:!x&&y.trim()?{label:i("components.toolSteps.result"),value:y,mode:"auto"}:Object.keys(r.parameters).length>0?{label:i("components.toolSteps.parameters"),value:r.parameters,mode:"json"}:null,[r.parameters,x,h,y,i]),P=b.useMemo(()=>{const H=["path","file_path","command","pattern","query","limit"];return Object.entries(r.parameters).sort((D,F)=>{const de=H.indexOf(D[0]),Q=H.indexOf(F[0]);return de!==-1&&Q!==-1?de-Q:de!==-1?-1:Q!==-1?1:0}).slice(0,3)},[r.parameters]),C=!!(h!=null&&h.trim()),A=b.useMemo(()=>a?a.isError?l.jsx(Ze,{color:"error",children:i("components.toolSteps.statusError")}):l.jsx(Ze,{color:"success",children:i("components.toolSteps.statusFinish")}):C?l.jsx(Ze,{color:"processing",children:i("components.toolSteps.statusProcess")}):l.jsx(Ze,{color:"default",children:i("components.toolSteps.statusWait")}),[a,C,i]),I=(s==null?void 0:s.elapsed_ms)!=null?l.jsx(Ze,{color:s.is_mutating?"orange":"green",children:CR(s.elapsed_ms)}):null,O=l.jsxs(He,{size:"small",children:[m?l.jsxs(l.Fragment,{children:[l.jsx(Ze,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:8,fontWeight:700},children:"MCP"}),l.jsx(Wn,{strong:!0,children:m.toolName}),l.jsx(Wn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:l.jsx(Wn,{code:!0,style:{fontSize:c.fontSizeSM},children:m.serverId})})]}):l.jsx(Wn,{strong:!0,children:r.toolName}),A,I]}),$=x?o:o==="diff"?"preview":o,B=[{key:"preview",label:i("components.toolSteps.preview"),children:l.jsxs("div",{className:"lotus-tool-step-drawer-pane",children:[l.jsxs("div",{style:{display:"grid",gap:c.marginSM,flexShrink:0},children:[l.jsxs("div",{children:[l.jsx(Wn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.intent")}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(Wn,{style:{fontSize:c.fontSizeSM},children:g})})]}),S?l.jsxs("div",{children:[l.jsx(Wn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.summary",{defaultValue:"Summary"})}),l.jsx("div",{style:{marginTop:c.marginXS},children:l.jsx(Wn,{type:"secondary",style:{fontSize:c.fontSizeSM},children:S})})]}):null,P.length>0&&l.jsxs("div",{children:[l.jsx(Wn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.keyParameters")}),l.jsx("ul",{style:{margin:`${c.marginXS}px 0 0`,paddingLeft:c.paddingLG,fontSize:c.fontSizeSM},children:P.map(([H,L])=>l.jsxs("li",{children:[l.jsx(Wn,{code:!0,style:{fontSize:c.fontSizeSM},children:H}),l.jsxs(Wn,{style:{fontSize:c.fontSizeSM},children:[": ",typeof L=="string"?L:JSON.stringify(L)]})]},H))})]})]}),l.jsx("div",{style:{marginTop:c.marginSM,display:"flex",flexDirection:"column",gap:c.marginXS,flex:1,minHeight:0},children:x?l.jsxs(l.Fragment,{children:[l.jsx(Wn,{strong:!0,style:{fontSize:c.fontSizeSM},children:i("components.toolSteps.fileChanges",{defaultValue:"File changes"})}),l.jsx(ri,{payload:x,defaultViewMode:"unified",maxHeight:340})]}):T?l.jsxs(l.Fragment,{children:[l.jsx(Wn,{strong:!0,style:{fontSize:c.fontSizeSM},children:T.label}),l.jsx(Ra,{value:T.value,mode:T.mode,height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})]}):l.jsx(Ra,{emptyDescription:i("components.toolSteps.noResult"),height:"100%",scrollable:!0})})]})},...x?[{key:"diff",label:i("components.toolSteps.diff",{defaultValue:"Diff"}),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsx(ri,{payload:x,defaultViewMode:"sideBySide",height:"100%"})})}]:[],{key:"parameters",label:i("components.toolSteps.parameters"),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsxs("div",{style:{position:"relative",flex:1,minHeight:0},children:[l.jsx(Sn,{title:i("components.toolCall.copyParameters"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(jr,{}),"aria-label":i("components.toolCall.copyParameters"),onClick:E,style:{position:"absolute",top:0,right:0,zIndex:1}})}),l.jsx(Ra,{value:_,mode:"json",height:"100%",scrollable:!0})]})})},{key:"result",label:i("components.toolSteps.result"),children:l.jsx("div",{className:"lotus-tool-step-drawer-pane",children:l.jsx(Ra,{value:y,mode:"auto",height:"100%",scrollable:!0,emptyDescription:i("components.toolSteps.noResult")})})}];return l.jsx(Ul,{placement:"right",width:960,open:e,onClose:t,title:O,destroyOnClose:!0,styles:{body:{paddingTop:0,display:"flex",flexDirection:"column",minHeight:0,overflow:"hidden"}},children:l.jsx("div",{className:"lotus-tool-step-drawer-tabs",children:l.jsx(Hx,{defaultActiveKey:$,items:B,style:{height:"100%"}},`${r.toolCallId}:${$}`)})})},{Text:Ur}=ft,TR=1760;function PR(e,t,n){return e?e.isError?{status:"error",icon:l.jsx(Mu,{})}:{status:"finish",icon:l.jsx(Va,{})}:n==="error"?{status:"error",icon:l.jsx(Mu,{})}:n==="completed"?{status:"finish",icon:l.jsx(Va,{})}:!!!(t!=null&&t.trim())&&n!=="running"?{status:"wait",icon:l.jsx(Ts,{})}:{status:"process",icon:l.jsx(oo,{spin:!0})}}const Wp=e=>e==null?"":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`,ER=({sessionId:e=null,toolCalls:t,metadata:n,tools:r,defaultExpanded:s=!1,hideHeader:o=!1})=>{const{t:a}=Ge(),{token:i}=ut.useToken(),[c,d]=b.useState(s),h=b.useMemo(()=>r&&r.length>0?r.map(D=>{const F=D.call.toolCalls[0];return{key:(F==null?void 0:F.toolCallId)||"unknown",toolName:(F==null?void 0:F.toolName)||"tool",parameters:(F==null?void 0:F.parameters)||{},streamingOutput:F==null?void 0:F.streamingOutput,info:{status:"wait",icon:l.jsx(Ts,{})},result:D.result,metadata:D.call.metadata??n}}):(t||[]).map(D=>({key:D.toolCallId,toolName:D.toolName,parameters:D.parameters,streamingOutput:D.streamingOutput,info:{status:"wait",icon:l.jsx(Ts,{})},result:void 0,metadata:n})),[r,t,n]),m=b.useMemo(()=>h.map(D=>D.key),[h]),g=Kv(e,m),y=b.useMemo(()=>h.map(D=>{const F=g[D.key],de=Xv(D.key,g,D.streamingOutput);return{...D,streamingOutput:de,info:PR(D.result,de,F==null?void 0:F.status)}}),[h,g]),[x,S]=b.useState(!1),[_,E]=b.useState(null),[T,P]=b.useState("preview"),C=(D,F)=>{E(D),P(F??"preview"),S(!0)},A=()=>{S(!1)},I=b.useMemo(()=>{const D=y.findIndex(F=>F.info.status!=="finish");return D===-1?Math.max(y.length-1,0):D},[y]),O=y.some(D=>D.info.status==="error"),$=y.filter(D=>D.info.status==="finish").length,B=y.length,te=Wp(n==null?void 0:n.elapsed_ms),H=b.useMemo(()=>{const D=[a("components.toolSteps.title"),`${$}/${B}`];return te&&D.push(te),D.join(" · ")},[a,$,B,te]),L=b.useMemo(()=>y.map(D=>{var Je,j,ie,me,Me,Ue,St;const F=go(D.toolName),de=Yv(D.toolName,D.parameters),Q=de.length>60?de.substring(0,60).trimEnd()+"…":de,ge=((j=(Je=D.result)==null?void 0:Je.result)==null?void 0:j.result)??"",G=ge?yo(ge):null,ce=ge?rf(ge):null,ve=G?aP(G.diff.unified,{contextLines:2,maxLines:120,preserveLeadingMeta:!0}):null,ue=typeof((ie=D.metadata)==null?void 0:ie.summary)=="string"&&D.metadata.summary.trim().length>0?D.metadata.summary.trim():null,he=G?`${G.operation}(${G.file_path})`:null;let le=null,we="text",Le=null;if(D.info.status==="process"&&((me=D.streamingOutput)!=null&&me.trim()))le=D.streamingOutput.split(`
198
+ `).slice(-3).join(`
199
+ `),we=uo(D.streamingOutput).isJson?"auto":"text",Le="live";else if(!G&&(D.info.status==="finish"||D.info.status==="error")&&((Ue=(Me=D.result)==null?void 0:Me.result)!=null&&Ue.result)){const ot=uo(D.result.result.result),Ft=ot.formattedText.trimEnd();Ft.length>0&&(le=Ft.split(`
200
+ `).slice(0,3).join(`
201
+ `),we=ot.isJson?"json":"text",Le="result")}const Ie=D.info.status==="process"?a("components.toolSteps.running"):((St=D.metadata)==null?void 0:St.elapsed_ms)!=null?Wp(D.metadata.elapsed_ms):void 0;return{key:D.key,title:l.jsx("span",{style:{display:"inline-flex",alignItems:"center",gap:i.marginXS},children:F?l.jsxs(l.Fragment,{children:[l.jsx(Ze,{color:"purple",style:{marginInlineEnd:0,borderRadius:999,paddingInline:6,fontWeight:700,fontSize:i.fontSizeSM-1,lineHeight:"18px"},children:"MCP"}),l.jsx(Ur,{strong:!0,style:{fontSize:i.fontSizeSM},children:F.toolName})]}):l.jsx(Ur,{strong:!0,style:{fontSize:i.fontSizeSM},children:D.toolName})}),subTitle:Ie?l.jsx(Ur,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:Ie}):void 0,description:l.jsxs("div",{style:{minWidth:0},children:[l.jsx(Ur,{ellipsis:!0,style:{fontSize:i.fontSizeSM,display:"block",maxWidth:"100%"},children:Q}),l.jsx("div",{style:{marginTop:i.marginXXS,display:"flex",gap:i.marginXS,alignItems:"center"},children:l.jsx(je,{type:"link",size:"small",icon:l.jsx(Od,{}),style:{padding:0,height:"auto",fontSize:i.fontSizeSM},"data-testid":`tool-step-details-${D.key}`,onClick:()=>C(D,G?"diff":"preview"),children:a("components.toolSteps.details")})}),ue&&!G&&l.jsx(Ur,{type:"secondary",style:{display:"block",marginTop:i.marginXS,fontSize:i.fontSizeSM-1},children:ue}),G&&ce&&l.jsx("div",{style:{marginTop:i.marginXS,padding:i.paddingXS,borderRadius:i.borderRadiusSM,background:i.colorFillTertiary,border:`1px solid ${i.colorBorderSecondary}`},"data-testid":`tool-step-file-change-${D.key}`,children:l.jsxs("div",{style:{display:"grid",gap:i.marginXXS??2},children:[l.jsx(Ur,{strong:!0,style:{fontSize:i.fontSizeSM},ellipsis:{tooltip:he},children:he}),l.jsx(Ur,{type:"secondary",style:{fontSize:i.fontSizeSM-1},children:a("components.toolSteps.fileChangeStats",{added:ce.added,removed:ce.removed,defaultValue:`Added ${ce.added} lines, removed ${ce.removed} lines`})}),l.jsx(ri,{payload:G,compact:!0,showHeader:!1,showViewToggle:!1,defaultViewMode:"unified",maxHeight:TR,unifiedLinesOverride:ve??void 0}),l.jsx(je,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>C(D,"diff"),children:a("components.toolSteps.viewFullDiff",{defaultValue:"View full diff"})})]})}),le&&l.jsxs("div",{style:{marginTop:i.marginXS},children:[l.jsx(Ra,{value:le,mode:we,className:"lotus-tool-step-preview",compact:!0,maxHeight:72,scrollable:!1,backgroundColor:"transparent"}),l.jsx(je,{type:"link",size:"small",style:{padding:0,height:"auto",fontSize:i.fontSizeSM-1},onClick:()=>C(D,Le==="result"?"result":"preview"),children:Le==="result"?a("components.toolSteps.viewFullResult",{defaultValue:"View full result"}):a("components.toolSteps.viewFullOutput")})]})]}),status:D.info.status,icon:D.info.icon}}),[y,i,a]),Z=o?{background:"transparent"}:{background:"var(--lotus-tool-card-bg)",borderColor:"var(--lotus-tool-card-border)",borderWidth:1,borderStyle:"solid",borderRadius:i.borderRadiusLG,overflow:"hidden"};return l.jsxs("div",{className:"lotus-tool-steps",style:Z,children:[!o&&l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:i.marginSM,padding:`${i.paddingSM}px ${i.paddingSM}px`,cursor:"pointer",userSelect:"none"},onClick:()=>d(D=>!D),"data-testid":"tool-steps-header",children:[l.jsx("span",{style:{flexShrink:0},children:c?l.jsx(ks,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}}):l.jsx(Jr,{style:{color:i.colorTextSecondary,fontSize:i.fontSizeSM}})}),l.jsxs(Ur,{strong:!0,style:{fontSize:i.fontSizeSM},children:["🛠 ",H]})]}),(o||c)&&l.jsx("div",{style:{padding:o?`${i.paddingXS}px 0 0 0`:`${i.paddingXS}px ${i.paddingSM}px ${i.paddingSM}px`},children:l.jsx(ey,{direction:"vertical",size:"small",current:I,status:O?"error":"process",items:L})}),_&&l.jsx(kR,{open:x,onClose:A,sessionId:e,call:{toolCallId:_.key,toolName:_.toolName,parameters:_.parameters,streamingOutput:_.streamingOutput},metadata:_.metadata,initialTab:T,result:_.result})]})},cf=b.memo(ER);cf.displayName="ToolStepsCard";const{Text:Zc}=ft,MR=({content:e,workflowName:t,parameters:n,status:r="success",timestamp:s,onRetry:o,isLoading:a,errorMessage:i})=>{const{t:c}=Ge(),{token:d}=ut.useToken(),[h,m]=b.useState(!1),g=b.useMemo(()=>uo(e),[e]),y=b.useMemo(()=>typeof a=="boolean"?a:g.formattedText.trim().length===0,[g.formattedText,a]),x=b.useMemo(()=>cP(g.formattedText),[g.formattedText]),S=g.isJson||x,_=!S||h,E=b.useMemo(()=>uP(g.formattedText),[g.formattedText]),T=b.useMemo(()=>{if(n==null)return null;if(typeof n=="string")return uo(n);try{return{isJson:!0,formattedText:JSON.stringify(n,null,2),parsedJson:n}}catch(A){return console.error("[WorkflowResultCard] Failed to stringify parameters:",A),{isJson:!1,formattedText:String(n)}}},[n]),P=async()=>{try{const A=g.isJson?_s(g.parsedJson):g.formattedText;await Ir(A)}catch(A){console.error("[WorkflowResultCard] Failed to copy content:",A)}},C=async()=>{if(T)try{const A=T.isJson?_s(T.parsedJson):T.formattedText;await Ir(A)}catch(A){console.error("[WorkflowResultCard] Failed to copy parameters:",A)}};return l.jsx(en,{size:"small",variant:"outlined",style:{borderRadius:d.borderRadiusLG,borderColor:d.colorBorderSecondary,backgroundColor:d.colorBgContainer},styles:{body:{padding:d.paddingMD}},children:l.jsxs(He,{direction:"vertical",style:{width:"100%"},size:d.marginSM,children:[l.jsxs(Ee,{align:"center",justify:"space-between",children:[l.jsxs(He,{size:d.marginXS,align:"center",children:[l.jsx(Yx,{style:{color:d.colorWarning}}),l.jsx(Zc,{strong:!0,children:c("components.workflowResult.userWorkflow")}),l.jsx(Ze,{color:d.colorWarning,children:t}),l.jsx(Ze,{color:pv(r),children:r})]}),l.jsxs(He,{size:"small",children:[l.jsx(Sn,{title:c(h?"components.workflowResult.collapseResult":"components.workflowResult.expandResult"),children:S&&l.jsx(je,{type:"text",size:"small",icon:h?l.jsx(Kx,{}):l.jsx(Xx,{}),onClick:()=>m(A=>!A)})}),l.jsx(Sn,{title:c("components.workflowResult.copyResult"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(jr,{}),onClick:P,"aria-label":c("components.workflowResult.copyContent")})}),o&&l.jsx(Sn,{title:c("components.workflowResult.retryWorkflow"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(jd,{}),onClick:o,"aria-label":c("components.workflowResult.retryWorkflow")})})]})]}),s&&l.jsx(Zc,{type:"secondary",style:{fontSize:d.fontSizeSM},children:new Date(s).toLocaleString()}),l.jsx(xl,{style:{margin:`${d.marginXS}px 0`}}),i&&l.jsx(cr,{type:"error",message:c("components.workflowResult.executionFailed"),description:i,showIcon:!0,style:{marginBottom:d.marginXS}}),l.jsx(Ee,{vertical:!0,style:{width:"100%"},children:y?l.jsx(lo,{tip:c("components.workflowResult.waitingForResult")}):g.isJson?l.jsx(bl,{language:"json",style:oi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"auto":"hidden"},children:g.formattedText}):l.jsxs("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,maxHeight:_?"none":280,overflow:_?"visible":"hidden",marginBottom:0},children:[_?g.formattedText:E.preview,!_&&E.isTruncated&&`
202
+ …`]})}),T&&l.jsxs(Ee,{vertical:!0,style:{width:"100%"},children:[l.jsx(xl,{style:{margin:`${d.marginXS}px 0`},children:l.jsxs(He,{size:"small",children:[l.jsx(Zc,{strong:!0,children:c("common.parameters")}),l.jsx(Sn,{title:c("components.workflowResult.copyParameters"),children:l.jsx(je,{type:"text",size:"small",icon:l.jsx(jr,{}),onClick:C,"aria-label":c("components.workflowResult.copyParameters")})})]})}),T.isJson?l.jsx(bl,{language:"json",style:oi,wrapLongLines:!0,customStyle:{margin:0,borderRadius:d.borderRadiusSM,backgroundColor:d.colorBgContainer,fontSize:d.fontSizeSM,maxHeight:220,overflow:"auto"},children:T.formattedText}):l.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:d.fontSizeSM,marginBottom:0},children:T.formattedText})]})]})})},Vv=b.memo(MR);Vv.displayName="WorkflowResultCard";const AR=e=>Array.isArray(e)?e.map(t=>String(t??"")):[],RR=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s})=>JSON.stringify({sessionId:e??null,question:t??"",options:AR(n),allowCustom:r??!0,toolCallId:s??null}),{Text:eu}=ft,jR=({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s,conclusionMarkdown:o,markdownComponents:a,markdownPlugins:i,rehypePlugins:c})=>{const{t:d}=Ge(),[h,m]=b.useState(null),g=b.useMemo(()=>RR({sessionId:e,question:t,options:n,allowCustom:r,toolCallId:s}),[e,t,n,r,s]),y=h===g;return b.useEffect(()=>{if(typeof window>"u")return;const x=S=>{var T;const E=((T=S.detail)==null?void 0:T.sessionId)??null;!e||E!==e||m(g)};return window.addEventListener(Ju,x),()=>{window.removeEventListener(Ju,x)}},[e,g]),l.jsxs(He,{direction:"vertical",size:"middle",style:{width:"100%"},children:[o?l.jsx(xr,{remarkPlugins:i,rehypePlugins:c,components:a,children:o}):null,l.jsxs("div",{children:[l.jsx(eu,{strong:!0,children:d("components.questionDialog.questionLabel","Question")}),l.jsx("div",{style:{marginTop:8},children:l.jsx(xr,{remarkPlugins:i,rehypePlugins:c,components:a,children:t})})]}),y?l.jsx(eu,{type:"secondary",children:d("components.questionDialog.responseSubmittedContinue","Response submitted. Continuing...")}):l.jsx(eu,{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:or}=ft,IR=e=>{var o;if(!e)return{cleanText:e,hints:[]};const t=e.split(`
203
+ `),n=[],r=[];for(const a of t){const i=a.trim(),c=i.match(/^\[User explicitly selected MCP tool:\s*(.+?)\s*\]$/);if(c){const h=c[1]??"",m=go(h);n.push({type:"mcp",label:h,serverId:m==null?void 0:m.serverId,toolName:m==null?void 0:m.toolName});continue}const d=i.match(/^\[User explicitly selected skill:\s*(.+?)\s*\]$/);if(d){const h=d[1]??"",m=h.match(/\(ID:\s*([^)]+)\)\s*$/i),g=(o=m==null?void 0:m[1])==null?void 0:o.trim(),y=m?h.replace(/\(ID:\s*([^)]+)\)\s*$/i,"").trim():h;n.push({type:"skill",label:y||h,skillId:g});continue}r.push(a)}return{cleanText:r.join(`
204
+ `).trimStart(),hints:n}},OR=({sessionId:e,message:t,messageText:n,isUserToolCall:r,formatUserToolCall:s,markdownComponents:o,markdownPlugins:a,rehypePlugins:i})=>{var x;const{t:c}=Ge(),d=S=>(S??"").trim().toLowerCase()==="conclusion";if(wv(t)){const S=t.result.result??"",_=t.isError?S||c("components.toolResult.executionFailed"):void 0,E=!_&&S.trim().length===0;if(t.result.display_preference==="Hidden")return null;const T=(t.toolName??"").trim().toLowerCase(),P=T==="conclusion",C=sP(S),A=(T==="conclusion_with_options"||T==="exitplanmode"||T==="request_permissions")&&!t.isError&&C,I=T==="conclusion"?uv(S):null;return A&&C?l.jsx(jR,{sessionId:e,question:C.question,options:C.options,allowCustom:C.allow_custom,toolCallId:t.toolCallId,conclusionMarkdown:oP(C.conclusion),markdownComponents:o,markdownPlugins:a,rehypePlugins:i}):I?l.jsx(He,{direction:"vertical",style:{width:"100%"},size:"small",children:l.jsx(xr,{remarkPlugins:a,rehypePlugins:i,components:o,children:I})}):l.jsx(Hv,{content:S,toolName:t.toolName,status:t.isError?"error":E?"warning":"success",timestamp:t.createdAt,defaultCollapsed:!P,isLoading:E,errorMessage:_})}if(wM(t)){const S=t.content??"",_=t.status==="error"?S||c("components.workflowResult.executionFailed"):void 0,E=!_&&S.trim().length===0;return l.jsx(Vv,{content:S,workflowName:t.workflowName,parameters:t.parameters,status:E?"warning":t.status??"success",timestamp:t.createdAt,isLoading:E,errorMessage:_})}if(xM(t)){const S=t.toolCalls.filter(_=>!d(_.toolName));return S.length===0?null:l.jsx(cf,{sessionId:e,toolCalls:S,metadata:t.metadata,defaultExpanded:!1})}if(t.isAuthError)return l.jsxs(He,{direction:"vertical",style:{width:"100%"},size:"middle",children:[l.jsx(cr,{message:c("chat.messageCard.authRequired"),description:l.jsx(xr,{remarkPlugins:a,rehypePlugins:i,components:o,children:n}),type:"error",showIcon:!0}),l.jsx(je,{type:"primary",icon:l.jsx(Bl,{}),onClick:()=>{window.location.hash="/settings"},children:c("chat.messageCard.goToSettings")})]});const{cleanText:h,hints:m}=t.role==="user"?IR(n):{cleanText:n,hints:[]},g=t.role==="assistant"&&"type"in t&&t.type==="text"&&"metadata"in t&&typeof((x=t.metadata)==null?void 0:x.reasoning)=="string"?t.metadata.reasoning:"",y=g.trim().length>0;return t.role==="assistant"&&!n&&!y?l.jsx(or,{italic:!0,children:c("chat.messageCard.assistantThinking")}):l.jsxs(He,{direction:"vertical",style:{width:"100%"},size:"small",children:[y?l.jsx(fo,{size:"small",defaultActiveKey:["reasoning"],items:[{key:"reasoning",label:l.jsx(or,{strong:!0,children:c("chat.messageCard.reasoning")}),children:l.jsx(xr,{remarkPlugins:a,rehypePlugins:i,components:o,children:g})}]}):null,m.map((S,_)=>S.type==="mcp"?l.jsx(cr,{type:"info",showIcon:!1,message:l.jsxs(He,{wrap:!0,size:"small",children:[l.jsx(Ze,{color:"purple",children:"MCP"}),l.jsx(or,{strong:!0,children:c("chat.messageCard.selectedTool")}),S.serverId&&l.jsx(or,{type:"secondary",children:l.jsx(or,{code:!0,children:S.serverId})}),S.toolName&&l.jsx(or,{type:"secondary",children:l.jsx(or,{code:!0,children:S.toolName})})]}),style:{marginBottom:0}},`hint-mcp-${_}`):l.jsx(cr,{type:"success",showIcon:!1,message:l.jsxs(He,{wrap:!0,size:"small",children:[l.jsx(Ze,{color:"success",children:"Skill"}),l.jsx(or,{strong:!0,children:c("chat.messageCard.selected")}),S.label&&l.jsx(or,{children:S.label}),S.skillId&&l.jsx(or,{type:"secondary",children:l.jsx(or,{code:!0,children:S.skillId})})]}),style:{marginBottom:0}},`hint-skill-${_}`)),h?l.jsx(xr,{remarkPlugins:a,rehypePlugins:i,components:o,children:r?s(h):h}):null]})},$R=b.memo(OR),{Text:tu}=ft,LR=({role:e,formattedTimestamp:t,token:n})=>{const{t:r}=Ge(),s=e==="user",o=e==="assistant",a=e==="system",i=r(s?"chat.view.roleUser":o?"chat.view.brandName":"chat.view.roleDefault"),c=s?r("chat.view.roleUser").slice(0,1):o?r("chat.view.brandName").slice(0,1):e.slice(0,1).toUpperCase();return l.jsxs(Ee,{align:"center",justify:"space-between",gap:n.marginXS,style:{marginBottom:n.marginXS},children:[l.jsxs(Ee,{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(Ee,{vertical:!0,gap:0,children:[l.jsx(tu,{strong:!0,style:{fontSize:13,color:s?"var(--lotus-primary)":n.colorText,letterSpacing:"0.2px",lineHeight:1.1},children:i}),l.jsx(tu,{type:"secondary",style:{fontSize:11,lineHeight:1.1},children:r(s?"chat.view.subTitleUser":o?"chat.view.roleAssistant":a?"chat.view.roleSystem":"chat.view.roleDefault")})]})]}),t&&l.jsx(tu,{type:"secondary",style:{fontSize:11,whiteSpace:"nowrap",opacity:.92,padding:"4px 8px",borderRadius:999,background:"var(--lotus-timestamp-bg)",border:"1px solid var(--lotus-timestamp-border)"},children:t})]})},uf=e=>{if(e.includes("```json")){const t=e.indexOf("```json")+7,n=e.indexOf("```",t);if(n>t)return e.substring(t,n).trim()}else if(e.includes("{")){const t=e.indexOf("{"),n=e.lastIndexOf("}");if(n>t)return e.substring(t,n+1).trim()}return null},DR=e=>e==="text"||e==="plan"||e==="question"||e==="tool_call"||e==="tool_result",FR=(e,t)=>{if(t)return t;if("message_type"in e&&e.message_type){const n=e.message_type;if(DR(n))return n}if(e.role==="assistant"&&e.type==="text"){const n=typeof e.content=="string"?e.content:"";try{const r=uf(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"},NR=(e,t)=>{if(t!=="plan"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=uf(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},zR=(e,t)=>{if(t!=="question"||e.role!=="assistant"||e.type!=="text")return null;const n=e.content??"";try{const r=uf(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},Gv=e=>{if(e.role==="system")return typeof e.content=="string"?e.content:"";if(e.role==="user")return"type"in e&&e.type==="file_reference"?"":typeof e.content=="string"?e.content:"";if(e.role==="assistant"){if(e.type==="text")return typeof e.content=="string"?e.content:"";if(e.type==="tool_result")return(e.toolName??"").trim().toLowerCase()==="conclusion"?uv(e.result.result)??e.result.result:`Tool ${e.toolName} Result: ${e.result.result}`;if(e.type==="tool_call")return`Requesting to call ${e.toolCalls.map(t=>t.toolName).join(", ")}`;if(e.type==="workflow_result")return e.content}return""},BR=e=>{if(!e.startsWith("/"))return e;const t=e.split(" "),n=t[0].substring(1),r=t.slice(1).join(" ");if(n.startsWith("mcp__")){const o=n.slice(5),a=o.indexOf("__");if(a>0){const i=o.slice(0,a),c=o.slice(a+2);if(i&&c)return`🔌 MCP ${i}/${c}: ${r}`}}return`🔧 ${n.replace(/_/g," ").replace(/\b\w/g,o=>o.toUpperCase())}: ${r}`},Up=e=>e.map(t=>({name:t.name,extensions:[...t.extensions]})),qp=e=>e.trim().slice(0,64).replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-")||"message",WR={},UR='[data-mermaid-loading="true"]';class Jv{static async exportMessageText(t){const{format:n,content:r,sessionId:s=null,messageId:o=null,filenamePrefix:a}=t,i=a||["chat-message",s?qp(s.slice(0,8)):null,o?qp(o.slice(0,8)):null].filter(Boolean).join("-"),c=n==="markdown"?br.generateTimestampedFilename(i,"md"):br.generateTimestampedFilename(i,"pdf");if(n==="markdown"){const d=await br.saveTextFile(r,Up(br.FILTERS.MARKDOWN),c);return d.success?{success:!0,filename:d.filename}:{success:!1,error:d.error}}try{const d=await this.generatePdfFromText(r),h=await br.saveBinaryFile(d,Up(br.FILTERS.PDF),c);return h.success?{success:!0,filename:h.filename}:{success:!1,error:h.error}}catch(d){return{success:!1,error:d instanceof Error?d.message:Ct.t("chat.messageActions.exportFailed")}}}static async generatePdfFromText(t){if(typeof document>"u")throw new Error(Ct.t("chat.messageActions.pdfUnavailable"));const n=(await Jt(async()=>{const{default:y}=await import("./vendor-pdf-iqXtbvvh.js").then(x=>x.h);return{default:y}},__vite__mapDeps([15,4,3,2]),import.meta.url)).default,{jsPDF:r}=await Jt(async()=>{const{jsPDF:y}=await import("./vendor-pdf-iqXtbvvh.js").then(x=>x.j);return{jsPDF:y}},__vite__mapDeps([15,4,3,2]),import.meta.url),{createRoot:s}=await Jt(async()=>{const{createRoot:y}=await import("./main-DfVgHWQe.js").then(x=>x.c);return{createRoot:y}},__vite__mapDeps([5,4,3,2,1,6]),import.meta.url),{flushSync:o}=await Jt(async()=>{const{flushSync:y}=await import("./vendor-antd-rbjGKamc.js").then(x=>x.R);return{flushSync:y}},__vite__mapDeps([3,2]),import.meta.url),a=qv(WR,{mermaidRenderMode:"eager"}),i=document.createElement("div");i.style.position="fixed",i.style.left="0",i.style.top="0",i.style.right="0",i.style.bottom="0",i.style.zIndex="2147483647",i.style.background="rgba(0,0,0,0.15)",i.style.display="flex",i.style.alignItems="center",i.style.justifyContent="center",i.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",i.style.fontSize="14px",i.style.color="#111";const c=document.createElement("div");c.style.background="#fff",c.style.border="1px solid rgba(0,0,0,0.12)",c.style.borderRadius="10px",c.style.padding="12px 14px",c.style.boxShadow="0 8px 24px rgba(0,0,0,0.12)",c.textContent=Ct.t("chat.messageActions.exportingPdf"),i.appendChild(c);const d=document.createElement("div");d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.zIndex="2147483646",d.style.pointerEvents="none",d.style.width="794px",d.style.background="#fff",d.style.color="#111",d.style.padding="24px",d.style.boxSizing="border-box",d.style.fontFamily="system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif",d.style.fontSize="14px",d.style.lineHeight="1.35";const h=document.createElement("style");h.textContent=`
205
+ .md-export { color: #111; }
206
+ .md-export h1 { font-size: 24px; margin: 0 0 16px; }
207
+ .md-export h2 { font-size: 18px; margin: 18px 0 12px; }
208
+ .md-export h3 { font-size: 16px; margin: 14px 0 10px; }
209
+ .md-export [data-mermaid-controls="true"] { display: none !important; }
210
+ `,d.appendChild(h);const m=document.createElement("div");m.className="md-export",d.appendChild(m),document.body.appendChild(d),document.body.appendChild(i);const g=s(m);o(()=>{g.render(dt.createElement(xr,{remarkPlugins:[Ed,Md],rehypePlugins:[Pd],components:a},t||""))});try{await this.waitForExportRenderReady(d);const y=await this.renderCanvasWithFallback(n,d),x=new r({unit:"pt",format:"a4",orientation:"portrait"}),S=x.internal.pageSize.getWidth(),_=x.internal.pageSize.getHeight(),E=24,T=S-E*2,P=_-E*2,C=y.width/T,A=Math.max(1,Math.floor(P*C));let I=0,O=0;for(;I<y.height;){const B=this.computeSmartSliceHeight(y,I,A),te=Math.max(1,Math.min(B,y.height-I)),H=document.createElement("canvas");H.width=y.width,H.height=te;const L=H.getContext("2d");if(!L)throw new Error("PDF render failed (no canvas context)");L.fillStyle="#ffffff",L.fillRect(0,0,H.width,H.height),L.drawImage(y,0,I,y.width,te,0,0,y.width,te);const Z=H.toDataURL("image/jpeg",.92),D=te/C;O>0&&x.addPage(),x.addImage(Z,"JPEG",E,E,T,D),I+=te,O+=1}const $=x.output("arraybuffer");return new Uint8Array($)}finally{g.unmount(),i.remove(),d.remove()}}static async waitForExportRenderReady(t){var s,o,a;await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(()=>i()))),await((a=(o=(s=document.fonts)==null?void 0:s.ready)==null?void 0:o.catch)==null?void 0:a.call(o,()=>{}));const n=Date.now(),r=6e3;for(;Date.now()-n<r;){if(!t.querySelector(UR)){await new Promise(c=>requestAnimationFrame(()=>c()));return}await new Promise(c=>setTimeout(c,50))}}static async renderCanvasWithFallback(t,n){const r={backgroundColor:"#ffffff",scale:2,useCORS:!0,allowTaint:!0};try{const o=await t(n,{...r,foreignObjectRendering:!0});if(o.width&&o.height)return o}catch(o){console.warn("PDF capture with foreignObjectRendering=true failed:",o)}const s=await t(n,{...r,foreignObjectRendering:!1});if(!s.width||!s.height)throw new Error("PDF render failed (empty canvas)");return s}static computeSmartSliceHeight(t,n,r){const s=t.height-n;if(s<=r)return s;const o=n+r,a=Math.max(1,Math.floor(r*.72)),i=Math.max(8,Math.floor(r*.12)),c=Math.max(n+a,o-i),d=Math.min(t.height-1,o+i),h=this.findWhitespaceBreakY(t,o,c,d);return h===null||h<=n?r:h-n}static findWhitespaceBreakY(t,n,r,s){if(r>s||t.width<=0)return null;try{const o=t.getContext("2d",{willReadFrequently:!0});if(!o||typeof o.getImageData!="function")return null;const a=s-r+1,i=o.getImageData(0,r,t.width,a).data,c=t.width*4,d=Math.max(1,Math.floor(t.width/320)),h=245,m=16,g=.03;let y=null,x=Number.POSITIVE_INFINITY,S=Number.POSITIVE_INFINITY;for(let _=0;_<a;_+=1){let E=0,T=0;const P=_*c;for(let $=0;$<t.width;$+=d){const B=P+$*4,te=i[B+3];if(T+=1,te<=m)continue;const H=i[B],L=i[B+1],Z=i[B+2];(H<h||L<h||Z<h)&&(E+=1)}if(T===0)continue;const C=E/T,A=r+_,I=Math.abs(A-n);(C<x||C===x&&I<S)&&(x=C,S=I,y=A)}return y===null||x>g?null:y}catch{return null}}}const qR=({messageText:e,messageId:t,currentSessionId:n,onDelete:r,onRestoreChat:s,onRestoreFilesAndChat:o,cardRef:a})=>{const{message:i}=Dn.useApp(),{t:c}=Ge(),[d,h]=b.useState(""),m=b.useCallback(async E=>{try{await Ir(E)}catch(T){console.error("Failed to copy text:",T)}},[]),g=b.useCallback(E=>`> ${E.replace(/\n/g,`
211
+ > `)}`,[]),y=b.useCallback(()=>{if(!n)return;const E=g(d||e),T=new CustomEvent("reference-text",{detail:{text:E,sessionId:n}});window.dispatchEvent(T)},[g,n,e,d]),x=b.useCallback(async E=>{var C;const T=d||e;if(!T){i.warning(c("chat.messageActions.nothingToExport"));return}const P=await Jv.exportMessageText({format:E,content:T,sessionId:n??null,messageId:t??null});if(P.success)i.success(c("chat.messageActions.savedFile",{filename:P.filename}));else{if((C=P.error)!=null&&C.toLowerCase().includes("cancel"))return;i.error(P.error||c("chat.messageActions.exportFailed"))}},[i,n,t,e,d,c]),S=b.useCallback(E=>{E.preventDefault(),E.stopPropagation();const T=window.getSelection(),P=T?T.toString():"";P&&a.current&&T&&a.current.contains(T.anchorNode)?h(P):h("")},[a]);return{contextMenuItems:b.useMemo(()=>{const E=[...s&&o&&n&&t?[{key:"restore-chat",label:c("chat.messageActions.restoreChat"),icon:l.jsx(Vx,{}),onClick:()=>{s()}},{key:"restore-chat-files",label:c("chat.messageActions.restoreFilesAndChat"),icon:l.jsx(Gx,{}),onClick:()=>{o()}},{type:"divider"}]:[],{key:"copy",label:c("chat.messageActions.copy"),icon:l.jsx(jr,{}),onClick:()=>{m(d||e)}},{key:"reference",label:c("chat.actions.referenceMessage"),icon:l.jsx(Zg,{}),onClick:y},{type:"divider"},{key:"export-md",label:c("chat.messageActions.exportMarkdown"),icon:l.jsx(io,{}),onClick:()=>x("markdown")},{key:"export-pdf",label:c("chat.messageActions.exportPdf"),icon:l.jsx(io,{}),onClick:()=>x("pdf")}];return r&&t&&E.push({key:"delete",label:c("chat.messageActions.deleteMessage"),icon:l.jsx(zl,{}),onClick:()=>r(t),danger:!0}),E},[m,x,t,e,r,s,o,y,d,n,c]),handleMouseUp:S,copyToClipboard:m,referenceMessage:y}},HR=({currentSessionId:e,updateSession:t,sendMessage:n})=>{const r=b.useCallback(async()=>{if(!e)return;const i=ae.getState().chats.find(c=>c.id===e);if(i)try{t(e,{config:{...i.config,agentRole:"actor"}})}catch(c){console.error("Failed to switch to Actor role:",c)}},[e,t]),s=b.useCallback(async a=>{if(a.trim())try{await n(a.trim())}catch(i){console.error("Failed to send plan refinement:",i)}},[n]),o=b.useCallback(async a=>{if(a)try{await n(a)}catch(i){throw console.error("Failed to send answer:",i),i}},[n]);return{handleExecutePlan:r,handleRefinePlan:s,handleQuestionAnswer:o}};function et(e,t,n,r,s){if(typeof t=="function"?e!==t||!0:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,n),n}function se(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}let Qv=function(){const{crypto:e}=globalThis;if(e!=null&&e.randomUUID)return Qv=e.randomUUID.bind(e),e.randomUUID();const t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,r=>(+r^n()&15>>+r/4).toString(16))};function ad(e){return typeof e=="object"&&e!==null&&("name"in e&&e.name==="AbortError"||"message"in e&&String(e.message).includes("FetchRequestCanceledException"))}const id=e=>{if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){try{if(Object.prototype.toString.call(e)==="[object Error]"){const t=new Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return new Error(JSON.stringify(e))}catch{}}return new Error(e)};class tt extends Error{}class xn extends tt{constructor(t,n,r,s){super(`${xn.makeMessage(t,n,r)}`),this.status=t,this.headers=s,this.requestID=s==null?void 0:s.get("x-request-id"),this.error=n;const o=n;this.code=o==null?void 0:o.code,this.param=o==null?void 0:o.param,this.type=o==null?void 0:o.type}static makeMessage(t,n,r){const s=n!=null&&n.message?typeof n.message=="string"?n.message:JSON.stringify(n.message):n?JSON.stringify(n):r;return t&&s?`${t} ${s}`:t?`${t} status code (no body)`:s||"(no status code or body)"}static generate(t,n,r,s){if(!t||!s)return new nc({message:r,cause:id(n)});const o=n==null?void 0:n.error;return t===400?new Zv(t,o,r,s):t===401?new eb(t,o,r,s):t===403?new tb(t,o,r,s):t===404?new nb(t,o,r,s):t===409?new rb(t,o,r,s):t===422?new sb(t,o,r,s):t===429?new ob(t,o,r,s):t>=500?new ab(t,o,r,s):new xn(t,o,r,s)}}class Zn extends xn{constructor({message:t}={}){super(void 0,void 0,t||"Request was aborted.",void 0)}}class nc extends xn{constructor({message:t,cause:n}){super(void 0,void 0,t||"Connection error.",void 0),n&&(this.cause=n)}}class df extends nc{constructor({message:t}={}){super({message:t??"Request timed out."})}}class Zv extends xn{}class eb extends xn{}class tb extends xn{}class nb extends xn{}class rb extends xn{}class sb extends xn{}class ob extends xn{}class ab extends xn{}class ib extends tt{constructor(){super("Could not parse response content as the length limit was reached")}}class lb extends tt{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class ja extends Error{constructor(t){super(t)}}const YR=/^[a-z][a-z0-9+.-]*:/i,KR=e=>YR.test(e);let Ln=e=>(Ln=Array.isArray,Ln(e)),Hp=Ln;function XR(e){return typeof e!="object"?{}:e??{}}function VR(e){if(!e)return!0;for(const t in e)return!1;return!0}function GR(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function nu(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}const JR=(e,t)=>{if(typeof t!="number"||!Number.isInteger(t))throw new tt(`${e} must be an integer`);if(t<0)throw new tt(`${e} must be a positive integer`);return t},QR=e=>{try{return JSON.parse(e)}catch{return}},di=e=>new Promise(t=>setTimeout(t,e)),Xs="5.10.2",ZR=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function ej(){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 tj=()=>{var n;const e=ej();if(e==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Xs,"X-Stainless-OS":Kp(Deno.build.os),"X-Stainless-Arch":Yp(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":Xs,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(e==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Xs,"X-Stainless-OS":Kp(globalThis.process.platform??"unknown"),"X-Stainless-Arch":Yp(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const t=nj();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Xs,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Xs,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function nj(){if(typeof navigator>"u"||!navigator)return null;const e=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(const{key:t,pattern:n}of e){const r=n.exec(navigator.userAgent);if(r){const s=r[1]||0,o=r[2]||0,a=r[3]||0;return{browser:t,version:`${s}.${o}.${a}`}}}return null}const Yp=e=>e==="x32"?"x32":e==="x86_64"||e==="x64"?"x64":e==="arm"?"arm":e==="aarch64"||e==="arm64"?"arm64":e?`other:${e}`:"unknown",Kp=e=>(e=e.toLowerCase(),e.includes("ios")?"iOS":e==="android"?"Android":e==="darwin"?"MacOS":e==="win32"?"Windows":e==="freebsd"?"FreeBSD":e==="openbsd"?"OpenBSD":e==="linux"?"Linux":e?`Other:${e}`:"Unknown");let Xp;const rj=()=>Xp??(Xp=tj());function sj(){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 cb(...e){const t=globalThis.ReadableStream;if(typeof t>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function ub(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return cb({start(){},async pull(n){const{done:r,value:s}=await t.next();r?n.close():n.enqueue(s)},async cancel(){var n;await((n=t.return)==null?void 0:n.call(t))}})}function db(e){if(e[Symbol.asyncIterator])return e;const t=e.getReader();return{async next(){try{const n=await t.read();return n!=null&&n.done&&t.releaseLock(),n}catch(n){throw t.releaseLock(),n}},async return(){const n=t.cancel();return t.releaseLock(),await n,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function oj(e){var r,s;if(e===null||typeof e!="object")return;if(e[Symbol.asyncIterator]){await((s=(r=e[Symbol.asyncIterator]()).return)==null?void 0:s.call(r));return}const t=e.getReader(),n=t.cancel();t.releaseLock(),await n}const aj=({headers:e,body:t})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(t)}),fb="RFC3986",hb=e=>String(e),Vp={RFC1738:e=>String(e).replace(/%20/g,"+"),RFC3986:hb},ij="RFC1738";let ld=(e,t)=>(ld=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),ld(e,t));const mr=(()=>{const e=[];for(let t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e})(),ru=1024,lj=(e,t,n,r,s)=>{if(e.length===0)return e;let o=e;if(typeof e=="symbol"?o=Symbol.prototype.toString.call(e):typeof e!="string"&&(o=String(e)),n==="iso-8859-1")return escape(o).replace(/%u[0-9a-f]{4}/gi,function(i){return"%26%23"+parseInt(i.slice(2),16)+"%3B"});let a="";for(let i=0;i<o.length;i+=ru){const c=o.length>=ru?o.slice(i,i+ru):o,d=[];for(let h=0;h<c.length;++h){let m=c.charCodeAt(h);if(m===45||m===46||m===95||m===126||m>=48&&m<=57||m>=65&&m<=90||m>=97&&m<=122||s===ij&&(m===40||m===41)){d[d.length]=c.charAt(h);continue}if(m<128){d[d.length]=mr[m];continue}if(m<2048){d[d.length]=mr[192|m>>6]+mr[128|m&63];continue}if(m<55296||m>=57344){d[d.length]=mr[224|m>>12]+mr[128|m>>6&63]+mr[128|m&63];continue}h+=1,m=65536+((m&1023)<<10|c.charCodeAt(h)&1023),d[d.length]=mr[240|m>>18]+mr[128|m>>12&63]+mr[128|m>>6&63]+mr[128|m&63]}a+=d.join("")}return a};function cj(e){return!e||typeof e!="object"?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function Gp(e,t){if(Ln(e)){const n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}const pb={brackets(e){return String(e)+"[]"},comma:"comma",indices(e,t){return String(e)+"["+t+"]"},repeat(e){return String(e)}},mb=function(e,t){Array.prototype.push.apply(e,Ln(t)?t:[t])};let Jp;const cn={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:lj,encodeValuesOnly:!1,format:fb,formatter:hb,indices:!1,serializeDate(e){return(Jp??(Jp=Function.prototype.call.bind(Date.prototype.toISOString)))(e)},skipNulls:!1,strictNullHandling:!1};function uj(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"}const su={};function gb(e,t,n,r,s,o,a,i,c,d,h,m,g,y,x,S,_,E){let T=e,P=E,C=0,A=!1;for(;(P=P.get(su))!==void 0&&!A;){const te=P.get(e);if(C+=1,typeof te<"u"){if(te===C)throw new RangeError("Cyclic object value");A=!0}typeof P.get(su)>"u"&&(C=0)}if(typeof d=="function"?T=d(t,T):T instanceof Date?T=g==null?void 0:g(T):n==="comma"&&Ln(T)&&(T=Gp(T,function(te){return te instanceof Date?g==null?void 0:g(te):te})),T===null){if(o)return c&&!S?c(t,cn.encoder,_,"key",y):t;T=""}if(uj(T)||cj(T)){if(c){const te=S?t:c(t,cn.encoder,_,"key",y);return[(x==null?void 0:x(te))+"="+(x==null?void 0:x(c(T,cn.encoder,_,"value",y)))]}return[(x==null?void 0:x(t))+"="+(x==null?void 0:x(String(T)))]}const I=[];if(typeof T>"u")return I;let O;if(n==="comma"&&Ln(T))S&&c&&(T=Gp(T,c)),O=[{value:T.length>0?T.join(",")||null:void 0}];else if(Ln(d))O=d;else{const te=Object.keys(T);O=h?te.sort(h):te}const $=i?String(t).replace(/\./g,"%2E"):String(t),B=r&&Ln(T)&&T.length===1?$+"[]":$;if(s&&Ln(T)&&T.length===0)return B+"[]";for(let te=0;te<O.length;++te){const H=O[te],L=typeof H=="object"&&typeof H.value<"u"?H.value:T[H];if(a&&L===null)continue;const Z=m&&i?H.replace(/\./g,"%2E"):H,D=Ln(T)?typeof n=="function"?n(B,Z):B:B+(m?"."+Z:"["+Z+"]");E.set(e,C);const F=new WeakMap;F.set(su,E),mb(I,gb(L,D,n,r,s,o,a,i,n==="comma"&&S&&Ln(T)?null:c,d,h,m,g,y,x,S,_,F))}return I}function dj(e=cn){if(typeof e.allowEmptyArrays<"u"&&typeof e.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof e.encodeDotInKeys<"u"&&typeof e.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(e.encoder!==null&&typeof e.encoder<"u"&&typeof e.encoder!="function")throw new TypeError("Encoder has to be a function.");const t=e.charset||cn.charset;if(typeof e.charset<"u"&&e.charset!=="utf-8"&&e.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let n=fb;if(typeof e.format<"u"){if(!ld(Vp,e.format))throw new TypeError("Unknown format option provided.");n=e.format}const r=Vp[n];let s=cn.filter;(typeof e.filter=="function"||Ln(e.filter))&&(s=e.filter);let o;if(e.arrayFormat&&e.arrayFormat in pb?o=e.arrayFormat:"indices"in e?o=e.indices?"indices":"repeat":o=cn.arrayFormat,"commaRoundTrip"in e&&typeof e.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");const a=typeof e.allowDots>"u"?e.encodeDotInKeys?!0:cn.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:cn.addQueryPrefix,allowDots:a,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:cn.allowEmptyArrays,arrayFormat:o,charset:t,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:cn.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?cn.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:cn.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:cn.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:cn.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:cn.encodeValuesOnly,filter:s,format:n,formatter:r,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:cn.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:cn.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:cn.strictNullHandling}}function fj(e,t={}){let n=e;const r=dj(t);let s,o;typeof r.filter=="function"?(o=r.filter,n=o("",n)):Ln(r.filter)&&(o=r.filter,s=o);const a=[];if(typeof n!="object"||n===null)return"";const i=pb[r.arrayFormat],c=i==="comma"&&r.commaRoundTrip;s||(s=Object.keys(n)),r.sort&&s.sort(r.sort);const d=new WeakMap;for(let g=0;g<s.length;++g){const y=s[g];r.skipNulls&&n[y]===null||mb(a,gb(n[y],y,i,c,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,d))}const h=a.join(r.delimiter);let m=r.addQueryPrefix===!0?"?":"";return r.charsetSentinel&&(r.charset==="iso-8859-1"?m+="utf8=%26%2310003%3B&":m+="utf8=%E2%9C%93&"),h.length>0?m+h:""}function hj(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let r=0;for(const s of e)n.set(s,r),r+=s.length;return n}let Qp;function ff(e){let t;return(Qp??(t=new globalThis.TextEncoder,Qp=t.encode.bind(t)))(e)}let Zp;function em(e){let t;return(Zp??(t=new globalThis.TextDecoder,Zp=t.decode.bind(t)))(e)}var Un,qn;class rc{constructor(){Un.set(this,void 0),qn.set(this,void 0),et(this,Un,new Uint8Array),et(this,qn,null)}decode(t){if(t==null)return[];const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?ff(t):t;et(this,Un,hj([se(this,Un,"f"),n]));const r=[];let s;for(;(s=pj(se(this,Un,"f"),se(this,qn,"f")))!=null;){if(s.carriage&&se(this,qn,"f")==null){et(this,qn,s.index);continue}if(se(this,qn,"f")!=null&&(s.index!==se(this,qn,"f")+1||s.carriage)){r.push(em(se(this,Un,"f").subarray(0,se(this,qn,"f")-1))),et(this,Un,se(this,Un,"f").subarray(se(this,qn,"f"))),et(this,qn,null);continue}const o=se(this,qn,"f")!==null?s.preceding-1:s.preceding,a=em(se(this,Un,"f").subarray(0,o));r.push(a),et(this,Un,se(this,Un,"f").subarray(s.index)),et(this,qn,null)}return r}flush(){return se(this,Un,"f").length?this.decode(`
212
+ `):[]}}Un=new WeakMap,qn=new WeakMap;rc.NEWLINE_CHARS=new Set([`
213
+ `,"\r"]);rc.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function pj(e,t){for(let s=t??0;s<e.length;s++){if(e[s]===10)return{preceding:s,index:s+1,carriage:!1};if(e[s]===13)return{preceding:s,index:s+1,carriage:!0}}return null}function mj(e){for(let r=0;r<e.length-1;r++){if(e[r]===10&&e[r+1]===10||e[r]===13&&e[r+1]===13)return r+2;if(e[r]===13&&e[r+1]===10&&r+3<e.length&&e[r+2]===13&&e[r+3]===10)return r+4}return-1}const jl={off:0,error:200,warn:300,info:400,debug:500},tm=(e,t,n)=>{if(e){if(GR(jl,e))return e;vn(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(jl))}`)}};function Ia(){}function Xi(e,t,n){return!t||jl[e]>jl[n]?Ia:t[e].bind(t)}const gj={error:Ia,warn:Ia,info:Ia,debug:Ia};let nm=new WeakMap;function vn(e){const t=e.logger,n=e.logLevel??"off";if(!t)return gj;const r=nm.get(t);if(r&&r[0]===n)return r[1];const s={error:Xi("error",t,n),warn:Xi("warn",t,n),info:Xi("info",t,n),debug:Xi("debug",t,n)};return nm.set(t,[n,s]),s}const ds=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([t,n])=>[t,t.toLowerCase()==="authorization"||t.toLowerCase()==="cookie"||t.toLowerCase()==="set-cookie"?"***":n]))),"retryOfRequestLogID"in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e);var Ho;class wr{constructor(t,n,r){this.iterator=t,Ho.set(this,void 0),this.controller=n,et(this,Ho,r)}static fromSSEResponse(t,n,r){let s=!1;const o=r?vn(r):console;async function*a(){if(s)throw new tt("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let i=!1;try{for await(const c of yj(t,n))if(!i){if(c.data.startsWith("[DONE]")){i=!0;continue}if(c.event===null||c.event.startsWith("response.")||c.event.startsWith("image_edit.")||c.event.startsWith("image_generation.")||c.event.startsWith("transcript.")){let d;try{d=JSON.parse(c.data)}catch(h){throw o.error("Could not parse message into JSON:",c.data),o.error("From chunk:",c.raw),h}if(d&&d.error)throw new xn(void 0,d.error,void 0,t.headers);yield d}else{let d;try{d=JSON.parse(c.data)}catch(h){throw console.error("Could not parse message into JSON:",c.data),console.error("From chunk:",c.raw),h}if(c.event=="error")throw new xn(void 0,d.error,d.message,void 0);yield{event:c.event,data:d}}}i=!0}catch(c){if(ad(c))return;throw c}finally{i||n.abort()}}return new wr(a,n,r)}static fromReadableStream(t,n,r){let s=!1;async function*o(){const i=new rc,c=db(t);for await(const d of c)for(const h of i.decode(d))yield h;for(const d of i.flush())yield d}async function*a(){if(s)throw new tt("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let i=!1;try{for await(const c of o())i||c&&(yield JSON.parse(c));i=!0}catch(c){if(ad(c))return;throw c}finally{i||n.abort()}}return new wr(a,n,r)}[(Ho=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){const t=[],n=[],r=this.iterator(),s=o=>({next:()=>{if(o.length===0){const a=r.next();t.push(a),n.push(a)}return o.shift()}});return[new wr(()=>s(t),this.controller,se(this,Ho,"f")),new wr(()=>s(n),this.controller,se(this,Ho,"f"))]}toReadableStream(){const t=this;let n;return cb({async start(){n=t[Symbol.asyncIterator]()},async pull(r){try{const{value:s,done:o}=await n.next();if(o)return r.close();const a=ff(JSON.stringify(s)+`
214
+ `);r.enqueue(a)}catch(s){r.error(s)}},async cancel(){var r;await((r=n.return)==null?void 0:r.call(n))}})}}async function*yj(e,t){if(!e.body)throw t.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new tt("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 tt("Attempted to iterate over a response with no body");const n=new bj,r=new rc,s=db(e.body);for await(const o of vj(s))for(const a of r.decode(o)){const i=n.decode(a);i&&(yield i)}for(const o of r.flush()){const a=n.decode(o);a&&(yield a)}}async function*vj(e){let t=new Uint8Array;for await(const n of e){if(n==null)continue;const r=n instanceof ArrayBuffer?new Uint8Array(n):typeof n=="string"?ff(n):n;let s=new Uint8Array(t.length+r.length);s.set(t),s.set(r,t.length),t=s;let o;for(;(o=mj(t))!==-1;)yield t.slice(0,o),t=t.slice(o)}t.length>0&&(yield t)}class bj{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(t){if(t.endsWith("\r")&&(t=t.substring(0,t.length-1)),!t){if(!this.event&&!this.data.length)return null;const o={event:this.event,data:this.data.join(`
215
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],o}if(this.chunks.push(t),t.startsWith(":"))return null;let[n,r,s]=Sj(t,":");return s.startsWith(" ")&&(s=s.substring(1)),n==="event"?this.event=s:n==="data"&&this.data.push(s),null}}function Sj(e,t){const n=e.indexOf(t);return n!==-1?[e.substring(0,n),t,e.substring(n+t.length)]:[e,"",""]}async function yb(e,t){const{response:n,requestLogID:r,retryOfRequestLogID:s,startTime:o}=t,a=await(async()=>{var m;if(t.options.stream)return vn(e).debug("response",n.status,n.url,n.headers,n.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(n,t.controller,e):wr.fromSSEResponse(n,t.controller,e);if(n.status===204)return null;if(t.options.__binaryResponse)return n;const i=n.headers.get("content-type"),c=(m=i==null?void 0:i.split(";")[0])==null?void 0:m.trim();if((c==null?void 0:c.includes("application/json"))||(c==null?void 0:c.endsWith("+json"))){const g=await n.json();return vb(g,n)}return await n.text()})();return vn(e).debug(`[${r}] response parsed`,ds({retryOfRequestLogID:s,url:n.url,status:n.status,body:a,durationMs:Date.now()-o})),a}function vb(e,t){return!e||typeof e!="object"||Array.isArray(e)?e:Object.defineProperty(e,"_request_id",{value:t.headers.get("x-request-id"),enumerable:!1})}var Oa;class sc extends Promise{constructor(t,n,r=yb){super(s=>{s(null)}),this.responsePromise=n,this.parseResponse=r,Oa.set(this,void 0),et(this,Oa,t)}_thenUnwrap(t){return new sc(se(this,Oa,"f"),this.responsePromise,async(n,r)=>vb(t(await this.parseResponse(n,r),r),r.response))}asResponse(){return this.responsePromise.then(t=>t.response)}async withResponse(){const[t,n]=await Promise.all([this.parse(),this.asResponse()]);return{data:t,response:n,request_id:n.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(t=>this.parseResponse(se(this,Oa,"f"),t))),this.parsedPromise}then(t,n){return this.parse().then(t,n)}catch(t){return this.parse().catch(t)}finally(t){return this.parse().finally(t)}}Oa=new WeakMap;var Vi;class bb{constructor(t,n,r,s){Vi.set(this,void 0),et(this,Vi,t),this.options=s,this.response=n,this.body=r}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const t=this.nextPageRequestOptions();if(!t)throw new tt("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await se(this,Vi,"f").requestAPIList(this.constructor,t)}async*iterPages(){let t=this;for(yield t;t.hasNextPage();)t=await t.getNextPage(),yield t}async*[(Vi=new WeakMap,Symbol.asyncIterator)](){for await(const t of this.iterPages())for(const n of t.getPaginatedItems())yield n}}class xj extends sc{constructor(t,n,r){super(t,n,async(s,o)=>new r(s,o.response,await yb(s,o),o.options))}async*[Symbol.asyncIterator](){const t=await this;for await(const n of t)yield n}}class oc extends bb{constructor(t,n,r,s){super(t,n,r,s),this.data=r.data||[],this.object=r.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class sn extends bb{constructor(t,n,r,s){super(t,n,r,s),this.data=r.data||[],this.has_more=r.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){var r;const t=this.getPaginatedItems(),n=(r=t[t.length-1])==null?void 0:r.id;return n?{...this.options,query:{...XR(this.options.query),after:n}}:null}}const Sb=()=>{var e;if(typeof File>"u"){const{process:t}=globalThis,n=typeof((e=t==null?void 0:t.versions)==null?void 0:e.node)=="string"&&parseInt(t.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(n?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Ha(e,t,n){return Sb(),new File(e,t??"unknown_file",n)}function ul(e){return(typeof e=="object"&&e!==null&&("name"in e&&e.name&&String(e.name)||"url"in e&&e.url&&String(e.url)||"filename"in e&&e.filename&&String(e.filename)||"path"in e&&e.path&&String(e.path))||"").split(/[\\/]/).pop()||void 0}const xb=e=>e!=null&&typeof e=="object"&&typeof e[Symbol.asyncIterator]=="function",Es=async(e,t)=>({...e,body:await _j(e.body,t)}),rm=new WeakMap;function wj(e){const t=typeof e=="function"?e:e.fetch,n=rm.get(t);if(n)return n;const r=(async()=>{try{const s="Response"in t?t.Response:(await t("data:,")).constructor,o=new FormData;return o.toString()!==await new s(o).text()}catch{return!0}})();return rm.set(t,r),r}const _j=async(e,t)=>{if(!await wj(t))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");const n=new FormData;return await Promise.all(Object.entries(e||{}).map(([r,s])=>cd(n,r,s))),n},Cj=e=>e instanceof Blob&&"name"in e,cd=async(e,t,n)=>{if(n!==void 0){if(n==null)throw new TypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")e.append(t,String(n));else if(n instanceof Response)e.append(t,Ha([await n.blob()],ul(n)));else if(xb(n))e.append(t,Ha([await new Response(ub(n)).blob()],ul(n)));else if(Cj(n))e.append(t,n,ul(n));else if(Array.isArray(n))await Promise.all(n.map(r=>cd(e,t+"[]",r)));else if(typeof n=="object")await Promise.all(Object.entries(n).map(([r,s])=>cd(e,`${t}[${r}]`,s)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${n} instead`)}},wb=e=>e!=null&&typeof e=="object"&&typeof e.size=="number"&&typeof e.type=="string"&&typeof e.text=="function"&&typeof e.slice=="function"&&typeof e.arrayBuffer=="function",kj=e=>e!=null&&typeof e=="object"&&typeof e.name=="string"&&typeof e.lastModified=="number"&&wb(e),Tj=e=>e!=null&&typeof e=="object"&&typeof e.url=="string"&&typeof e.blob=="function";async function Pj(e,t,n){if(Sb(),e=await e,kj(e))return e instanceof File?e:Ha([await e.arrayBuffer()],e.name);if(Tj(e)){const s=await e.blob();return t||(t=new URL(e.url).pathname.split(/[\\/]/).pop()),Ha(await ud(s),t,n)}const r=await ud(e);if(t||(t=ul(e)),!(n!=null&&n.type)){const s=r.find(o=>typeof o=="object"&&"type"in o&&o.type);typeof s=="string"&&(n={...n,type:s})}return Ha(r,t,n)}async function ud(e){var n;let t=[];if(typeof e=="string"||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)t.push(e);else if(wb(e))t.push(e instanceof Blob?e:await e.arrayBuffer());else if(xb(e))for await(const r of e)t.push(...await ud(r));else{const r=(n=e==null?void 0:e.constructor)==null?void 0:n.name;throw new Error(`Unexpected data type: ${typeof e}${r?`; constructor: ${r}`:""}${Ej(e)}`)}return t}function Ej(e){return typeof e!="object"||e===null?"":`; props: [${Object.getOwnPropertyNames(e).map(n=>`"${n}"`).join(", ")}]`}class st{constructor(t){this._client=t}}function _b(e){return e.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const sm=Object.freeze(Object.create(null)),Mj=(e=_b)=>function(n,...r){if(n.length===1)return n[0];let s=!1;const o=[],a=n.reduce((h,m,g)=>{var S;/[?#]/.test(m)&&(s=!0);const y=r[g];let x=(s?encodeURIComponent:e)(""+y);return g!==r.length&&(y==null||typeof y=="object"&&y.toString===((S=Object.getPrototypeOf(Object.getPrototypeOf(y.hasOwnProperty??sm)??sm))==null?void 0:S.toString))&&(x=y+"",o.push({start:h.length+m.length,length:x.length,error:`Value of type ${Object.prototype.toString.call(y).slice(8,-1)} is not a valid path parameter`})),h+m+(g===r.length?"":x)},""),i=a.split(/[?#]/,1)[0],c=new RegExp("(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)","gi");let d;for(;(d=c.exec(i))!==null;)o.push({start:d.index,length:d[0].length,error:`Value "${d[0]}" can't be safely passed as a path parameter`});if(o.sort((h,m)=>h.start-m.start),o.length>0){let h=0;const m=o.reduce((g,y)=>{const x=" ".repeat(y.start-h),S="^".repeat(y.length);return h=y.start+y.length,g+x+S},"");throw new tt(`Path parameters result in path with invalid segments:
216
+ ${o.map(g=>g.error).join(`
217
+ `)}
218
+ ${a}
219
+ ${m}`)}return a},Oe=Mj(_b);let Cb=class extends st{list(t,n={},r){return this._client.getAPIList(Oe`/chat/completions/${t}/messages`,sn,{query:n,...r})}};function Aj(e){return typeof e.parse=="function"}const Il=e=>(e==null?void 0:e.role)==="assistant",kb=e=>(e==null?void 0:e.role)==="tool";var dd,dl,fl,$a,La,hl,Da,Mr,Fa,Ol,$l,Vs,Tb;class hf{constructor(){dd.add(this),this.controller=new AbortController,dl.set(this,void 0),fl.set(this,()=>{}),$a.set(this,()=>{}),La.set(this,void 0),hl.set(this,()=>{}),Da.set(this,()=>{}),Mr.set(this,{}),Fa.set(this,!1),Ol.set(this,!1),$l.set(this,!1),Vs.set(this,!1),et(this,dl,new Promise((t,n)=>{et(this,fl,t,"f"),et(this,$a,n,"f")})),et(this,La,new Promise((t,n)=>{et(this,hl,t,"f"),et(this,Da,n,"f")})),se(this,dl,"f").catch(()=>{}),se(this,La,"f").catch(()=>{})}_run(t){setTimeout(()=>{t().then(()=>{this._emitFinal(),this._emit("end")},se(this,dd,"m",Tb).bind(this))},0)}_connected(){this.ended||(se(this,fl,"f").call(this),this._emit("connect"))}get ended(){return se(this,Fa,"f")}get errored(){return se(this,Ol,"f")}get aborted(){return se(this,$l,"f")}abort(){this.controller.abort()}on(t,n){return(se(this,Mr,"f")[t]||(se(this,Mr,"f")[t]=[])).push({listener:n}),this}off(t,n){const r=se(this,Mr,"f")[t];if(!r)return this;const s=r.findIndex(o=>o.listener===n);return s>=0&&r.splice(s,1),this}once(t,n){return(se(this,Mr,"f")[t]||(se(this,Mr,"f")[t]=[])).push({listener:n,once:!0}),this}emitted(t){return new Promise((n,r)=>{et(this,Vs,!0),t!=="error"&&this.once("error",r),this.once(t,n)})}async done(){et(this,Vs,!0),await se(this,La,"f")}_emit(t,...n){if(se(this,Fa,"f"))return;t==="end"&&(et(this,Fa,!0),se(this,hl,"f").call(this));const r=se(this,Mr,"f")[t];if(r&&(se(this,Mr,"f")[t]=r.filter(s=>!s.once),r.forEach(({listener:s})=>s(...n))),t==="abort"){const s=n[0];!se(this,Vs,"f")&&!(r!=null&&r.length)&&Promise.reject(s),se(this,$a,"f").call(this,s),se(this,Da,"f").call(this,s),this._emit("end");return}if(t==="error"){const s=n[0];!se(this,Vs,"f")&&!(r!=null&&r.length)&&Promise.reject(s),se(this,$a,"f").call(this,s),se(this,Da,"f").call(this,s),this._emit("end")}}_emitFinal(){}}dl=new WeakMap,fl=new WeakMap,$a=new WeakMap,La=new WeakMap,hl=new WeakMap,Da=new WeakMap,Mr=new WeakMap,Fa=new WeakMap,Ol=new WeakMap,$l=new WeakMap,Vs=new WeakMap,dd=new WeakSet,Tb=function(t){if(et(this,Ol,!0),t instanceof Error&&t.name==="AbortError"&&(t=new Zn),t instanceof Zn)return et(this,$l,!0),this._emit("abort",t);if(t instanceof tt)return this._emit("error",t);if(t instanceof Error){const n=new tt(t.message);return n.cause=t,this._emit("error",n)}return this._emit("error",new tt(String(t)))};function pf(e){return(e==null?void 0:e.$brand)==="auto-parseable-response-format"}function fi(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function Rj(e,t){return!t||!Pb(t)?{...e,choices:e.choices.map(n=>({...n,message:{...n.message,parsed:null,...n.message.tool_calls?{tool_calls:n.message.tool_calls}:void 0}}))}:mf(e,t)}function mf(e,t){const n=e.choices.map(r=>{var s;if(r.finish_reason==="length")throw new ib;if(r.finish_reason==="content_filter")throw new lb;return{...r,message:{...r.message,...r.message.tool_calls?{tool_calls:((s=r.message.tool_calls)==null?void 0:s.map(o=>Ij(t,o)))??void 0}:void 0,parsed:r.message.content&&!r.message.refusal?jj(t,r.message.content):null}}});return{...e,choices:n}}function jj(e,t){var n,r;return((n=e.response_format)==null?void 0:n.type)!=="json_schema"?null:((r=e.response_format)==null?void 0:r.type)==="json_schema"?"$parseRaw"in e.response_format?e.response_format.$parseRaw(t):JSON.parse(t):null}function Ij(e,t){var r;const n=(r=e.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===t.function.name});return{...t,function:{...t.function,parsed_arguments:fi(n)?n.$parseRaw(t.function.arguments):n!=null&&n.function.strict?JSON.parse(t.function.arguments):null}}}function Oj(e,t){var r;if(!e)return!1;const n=(r=e.tools)==null?void 0:r.find(s=>{var o;return((o=s.function)==null?void 0:o.name)===t.function.name});return fi(n)||(n==null?void 0:n.function.strict)||!1}function Pb(e){var t;return pf(e.response_format)?!0:((t=e.tools)==null?void 0:t.some(n=>fi(n)||n.type==="function"&&n.function.strict===!0))??!1}function $j(e){for(const t of e??[]){if(t.type!=="function")throw new tt(`Currently only \`function\` tool types support auto-parsing; Received \`${t.type}\``);if(t.function.strict!==!0)throw new tt(`The \`${t.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Rn,fd,Ll,hd,pd,md,Eb,Mb;const Lj=10;class Ab extends hf{constructor(){super(...arguments),Rn.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(t){var r;this._chatCompletions.push(t),this._emit("chatCompletion",t);const n=(r=t.choices[0])==null?void 0:r.message;return n&&this._addMessage(n),t}_addMessage(t,n=!0){if("content"in t||(t.content=null),this.messages.push(t),n){if(this._emit("message",t),kb(t)&&t.content)this._emit("functionToolCallResult",t.content);else if(Il(t)&&t.tool_calls)for(const r of t.tool_calls)r.type==="function"&&this._emit("functionToolCall",r.function)}}async finalChatCompletion(){await this.done();const t=this._chatCompletions[this._chatCompletions.length-1];if(!t)throw new tt("stream ended without producing a ChatCompletion");return t}async finalContent(){return await this.done(),se(this,Rn,"m",fd).call(this)}async finalMessage(){return await this.done(),se(this,Rn,"m",Ll).call(this)}async finalFunctionToolCall(){return await this.done(),se(this,Rn,"m",hd).call(this)}async finalFunctionToolCallResult(){return await this.done(),se(this,Rn,"m",pd).call(this)}async totalUsage(){return await this.done(),se(this,Rn,"m",md).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const t=this._chatCompletions[this._chatCompletions.length-1];t&&this._emit("finalChatCompletion",t);const n=se(this,Rn,"m",Ll).call(this);n&&this._emit("finalMessage",n);const r=se(this,Rn,"m",fd).call(this);r&&this._emit("finalContent",r);const s=se(this,Rn,"m",hd).call(this);s&&this._emit("finalFunctionToolCall",s);const o=se(this,Rn,"m",pd).call(this);o!=null&&this._emit("finalFunctionToolCallResult",o),this._chatCompletions.some(a=>a.usage)&&this._emit("totalUsage",se(this,Rn,"m",md).call(this))}async _createChatCompletion(t,n,r){const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),se(this,Rn,"m",Eb).call(this,n);const o=await t.chat.completions.create({...n,stream:!1},{...r,signal:this.controller.signal});return this._connected(),this._addChatCompletion(mf(o,n))}async _runChatCompletion(t,n,r){for(const s of n.messages)this._addMessage(s,!1);return await this._createChatCompletion(t,n,r)}async _runTools(t,n,r){var y,x,S;const s="tool",{tool_choice:o="auto",stream:a,...i}=n,c=typeof o!="string"&&((y=o==null?void 0:o.function)==null?void 0:y.name),{maxChatCompletions:d=Lj}=r||{},h=n.tools.map(_=>{if(fi(_)){if(!_.$callback)throw new tt("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:_.$callback,name:_.function.name,description:_.function.description||"",parameters:_.function.parameters,parse:_.$parseRaw,strict:!0}}}return _}),m={};for(const _ of h)_.type==="function"&&(m[_.function.name||_.function.function.name]=_.function);const g="tools"in n?h.map(_=>_.type==="function"?{type:"function",function:{name:_.function.name||_.function.function.name,parameters:_.function.parameters,description:_.function.description,strict:_.function.strict}}:_):void 0;for(const _ of n.messages)this._addMessage(_,!1);for(let _=0;_<d;++_){const T=(x=(await this._createChatCompletion(t,{...i,tool_choice:o,tools:g,messages:[...this.messages]},r)).choices[0])==null?void 0:x.message;if(!T)throw new tt("missing message in ChatCompletion response");if(!((S=T.tool_calls)!=null&&S.length))return;for(const P of T.tool_calls){if(P.type!=="function")continue;const C=P.id,{name:A,arguments:I}=P.function,O=m[A];if(O){if(c&&c!==A){const H=`Invalid tool_call: ${JSON.stringify(A)}. ${JSON.stringify(c)} requested. Please try again`;this._addMessage({role:s,tool_call_id:C,content:H});continue}}else{const H=`Invalid tool_call: ${JSON.stringify(A)}. Available options are: ${Object.keys(m).map(L=>JSON.stringify(L)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:C,content:H});continue}let $;try{$=Aj(O)?await O.parse(I):I}catch(H){const L=H instanceof Error?H.message:String(H);this._addMessage({role:s,tool_call_id:C,content:L});continue}const B=await O.function($,this),te=se(this,Rn,"m",Mb).call(this,B);if(this._addMessage({role:s,tool_call_id:C,content:te}),c)return}}}}Rn=new WeakSet,fd=function(){return se(this,Rn,"m",Ll).call(this).content??null},Ll=function(){let t=this.messages.length;for(;t-- >0;){const n=this.messages[t];if(Il(n))return{...n,content:n.content??null,refusal:n.refusal??null}}throw new tt("stream ended without producing a ChatCompletionMessage with role=assistant")},hd=function(){var t,n;for(let r=this.messages.length-1;r>=0;r--){const s=this.messages[r];if(Il(s)&&((t=s==null?void 0:s.tool_calls)!=null&&t.length))return(n=s.tool_calls.at(-1))==null?void 0:n.function}},pd=function(){for(let t=this.messages.length-1;t>=0;t--){const n=this.messages[t];if(kb(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}},md=function(){const t={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:n}of this._chatCompletions)n&&(t.completion_tokens+=n.completion_tokens,t.prompt_tokens+=n.prompt_tokens,t.total_tokens+=n.total_tokens);return t},Eb=function(t){if(t.n!=null&&t.n>1)throw new tt("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},Mb=function(t){return typeof t=="string"?t:t===void 0?"undefined":JSON.stringify(t)};class gf extends Ab{static runTools(t,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(t,n,o)),s}_addMessage(t,n=!0){super._addMessage(t,n),Il(t)&&t.content&&this._emit("content",t.content)}}const Rb=1,jb=2,Ib=4,Ob=8,$b=16,Lb=32,Db=64,Fb=128,Nb=256,zb=Fb|Nb,Bb=$b|Lb|zb|Db,Wb=Rb|jb|Bb,Ub=Ib|Ob,Dj=Wb|Ub,fn={STR:Rb,NUM:jb,ARR:Ib,OBJ:Ob,NULL:$b,BOOL:Lb,NAN:Db,INFINITY:Fb,MINUS_INFINITY:Nb,INF:zb,SPECIAL:Bb,ATOM:Wb,COLLECTION:Ub,ALL:Dj};class Fj extends Error{}class Nj extends Error{}function zj(e,t=fn.ALL){if(typeof e!="string")throw new TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw new Error(`${e} is empty`);return Bj(e.trim(),t)}const Bj=(e,t)=>{const n=e.length;let r=0;const s=g=>{throw new Fj(`${g} at position ${r}`)},o=g=>{throw new Nj(`${g} at position ${r}`)},a=()=>(m(),r>=n&&s("Unexpected end of input"),e[r]==='"'?i():e[r]==="{"?c():e[r]==="["?d():e.substring(r,r+4)==="null"||fn.NULL&t&&n-r<4&&"null".startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)==="true"||fn.BOOL&t&&n-r<4&&"true".startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)==="false"||fn.BOOL&t&&n-r<5&&"false".startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)==="Infinity"||fn.INFINITY&t&&n-r<8&&"Infinity".startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)==="-Infinity"||fn.MINUS_INFINITY&t&&1<n-r&&n-r<9&&"-Infinity".startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)==="NaN"||fn.NAN&t&&n-r<3&&"NaN".startsWith(e.substring(r))?(r+=3,NaN):h()),i=()=>{const g=r;let y=!1;for(r++;r<n&&(e[r]!=='"'||y&&e[r-1]==="\\");)y=e[r]==="\\"?!y:!1,r++;if(e.charAt(r)=='"')try{return JSON.parse(e.substring(g,++r-Number(y)))}catch(x){o(String(x))}else if(fn.STR&t)try{return JSON.parse(e.substring(g,r-Number(y))+'"')}catch{return JSON.parse(e.substring(g,e.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},c=()=>{r++,m();const g={};try{for(;e[r]!=="}";){if(m(),r>=n&&fn.OBJ&t)return g;const y=i();m(),r++;try{const x=a();Object.defineProperty(g,y,{value:x,writable:!0,enumerable:!0,configurable:!0})}catch(x){if(fn.OBJ&t)return g;throw x}m(),e[r]===","&&r++}}catch{if(fn.OBJ&t)return g;s("Expected '}' at end of object")}return r++,g},d=()=>{r++;const g=[];try{for(;e[r]!=="]";)g.push(a()),m(),e[r]===","&&r++}catch{if(fn.ARR&t)return g;s("Expected ']' at end of array")}return r++,g},h=()=>{if(r===0){e==="-"&&fn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e)}catch(y){if(fn.NUM&t)try{return e[e.length-1]==="."?JSON.parse(e.substring(0,e.lastIndexOf("."))):JSON.parse(e.substring(0,e.lastIndexOf("e")))}catch{}o(String(y))}}const g=r;for(e[r]==="-"&&r++;e[r]&&!",]}".includes(e[r]);)r++;r==n&&!(fn.NUM&t)&&s("Unterminated number literal");try{return JSON.parse(e.substring(g,r))}catch{e.substring(g,r)==="-"&&fn.NUM&t&&s("Not sure what '-' is");try{return JSON.parse(e.substring(g,e.lastIndexOf("e")))}catch(x){o(String(x))}}},m=()=>{for(;r<n&&`
220
+ \r `.includes(e[r]);)r++};return a()},om=e=>zj(e,fn.ALL^fn.NUM);var ln,Er,Hs,qr,ou,Gi,au,iu,lu,Ji,cu,am;class ai extends Ab{constructor(t){super(),ln.add(this),Er.set(this,void 0),Hs.set(this,void 0),qr.set(this,void 0),et(this,Er,t),et(this,Hs,[])}get currentChatCompletionSnapshot(){return se(this,qr,"f")}static fromReadableStream(t){const n=new ai(null);return n._run(()=>n._fromReadableStream(t)),n}static createChatCompletion(t,n,r){const s=new ai(n);return s._run(()=>s._runChatCompletion(t,{...n,stream:!0},{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createChatCompletion(t,n,r){var a;super._createChatCompletion;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),se(this,ln,"m",ou).call(this);const o=await t.chat.completions.create({...n,stream:!0},{...r,signal:this.controller.signal});this._connected();for await(const i of o)se(this,ln,"m",au).call(this,i);if((a=o.controller.signal)!=null&&a.aborted)throw new Zn;return this._addChatCompletion(se(this,ln,"m",Ji).call(this))}async _fromReadableStream(t,n){var a;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),se(this,ln,"m",ou).call(this),this._connected();const s=wr.fromReadableStream(t,this.controller);let o;for await(const i of s)o&&o!==i.id&&this._addChatCompletion(se(this,ln,"m",Ji).call(this)),se(this,ln,"m",au).call(this,i),o=i.id;if((a=s.controller.signal)!=null&&a.aborted)throw new Zn;return this._addChatCompletion(se(this,ln,"m",Ji).call(this))}[(Er=new WeakMap,Hs=new WeakMap,qr=new WeakMap,ln=new WeakSet,ou=function(){this.ended||et(this,qr,void 0)},Gi=function(n){let r=se(this,Hs,"f")[n.index];return r||(r={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},se(this,Hs,"f")[n.index]=r,r)},au=function(n){var s,o,a,i,c,d,h,m,g,y,x,S,_,E,T;if(this.ended)return;const r=se(this,ln,"m",am).call(this,n);this._emit("chunk",n,r);for(const P of n.choices){const C=r.choices[P.index];P.delta.content!=null&&((s=C.message)==null?void 0:s.role)==="assistant"&&((o=C.message)!=null&&o.content)&&(this._emit("content",P.delta.content,C.message.content),this._emit("content.delta",{delta:P.delta.content,snapshot:C.message.content,parsed:C.message.parsed})),P.delta.refusal!=null&&((a=C.message)==null?void 0:a.role)==="assistant"&&((i=C.message)!=null&&i.refusal)&&this._emit("refusal.delta",{delta:P.delta.refusal,snapshot:C.message.refusal}),((c=P.logprobs)==null?void 0:c.content)!=null&&((d=C.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(h=P.logprobs)==null?void 0:h.content,snapshot:((m=C.logprobs)==null?void 0:m.content)??[]}),((g=P.logprobs)==null?void 0:g.refusal)!=null&&((y=C.message)==null?void 0:y.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(x=P.logprobs)==null?void 0:x.refusal,snapshot:((S=C.logprobs)==null?void 0:S.refusal)??[]});const A=se(this,ln,"m",Gi).call(this,C);C.finish_reason&&(se(this,ln,"m",lu).call(this,C),A.current_tool_call_index!=null&&se(this,ln,"m",iu).call(this,C,A.current_tool_call_index));for(const I of P.delta.tool_calls??[])A.current_tool_call_index!==I.index&&(se(this,ln,"m",lu).call(this,C),A.current_tool_call_index!=null&&se(this,ln,"m",iu).call(this,C,A.current_tool_call_index)),A.current_tool_call_index=I.index;for(const I of P.delta.tool_calls??[]){const O=(_=C.message.tool_calls)==null?void 0:_[I.index];O!=null&&O.type&&((O==null?void 0:O.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(E=O.function)==null?void 0:E.name,index:I.index,arguments:O.function.arguments,parsed_arguments:O.function.parsed_arguments,arguments_delta:((T=I.function)==null?void 0:T.arguments)??""}):(O==null||O.type,void 0))}}},iu=function(n,r){var a,i,c;if(se(this,ln,"m",Gi).call(this,n).done_tool_calls.has(r))return;const o=(a=n.message.tool_calls)==null?void 0:a[r];if(!o)throw new Error("no tool call snapshot");if(!o.type)throw new Error("tool call snapshot missing `type`");if(o.type==="function"){const d=(c=(i=se(this,Er,"f"))==null?void 0:i.tools)==null?void 0:c.find(h=>h.type==="function"&&h.function.name===o.function.name);this._emit("tool_calls.function.arguments.done",{name:o.function.name,index:r,arguments:o.function.arguments,parsed_arguments:fi(d)?d.$parseRaw(o.function.arguments):d!=null&&d.function.strict?JSON.parse(o.function.arguments):null})}else o.type},lu=function(n){var s,o;const r=se(this,ln,"m",Gi).call(this,n);if(n.message.content&&!r.content_done){r.content_done=!0;const a=se(this,ln,"m",cu).call(this);this._emit("content.done",{content:n.message.content,parsed:a?a.$parseRaw(n.message.content):null})}n.message.refusal&&!r.refusal_done&&(r.refusal_done=!0,this._emit("refusal.done",{refusal:n.message.refusal})),(s=n.logprobs)!=null&&s.content&&!r.logprobs_content_done&&(r.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:n.logprobs.content})),(o=n.logprobs)!=null&&o.refusal&&!r.logprobs_refusal_done&&(r.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:n.logprobs.refusal}))},Ji=function(){if(this.ended)throw new tt("stream has ended, this shouldn't happen");const n=se(this,qr,"f");if(!n)throw new tt("request ended without sending any chunks");return et(this,qr,void 0),et(this,Hs,[]),Wj(n,se(this,Er,"f"))},cu=function(){var r;const n=(r=se(this,Er,"f"))==null?void 0:r.response_format;return pf(n)?n:null},am=function(n){var r,s,o,a;let i=se(this,qr,"f");const{choices:c,...d}=n;i?Object.assign(i,d):i=et(this,qr,{...d,choices:[]});for(const{delta:h,finish_reason:m,index:g,logprobs:y=null,...x}of n.choices){let S=i.choices[g];if(S||(S=i.choices[g]={finish_reason:m,index:g,message:{},logprobs:y,...x}),y)if(!S.logprobs)S.logprobs=Object.assign({},y);else{const{content:I,refusal:O,...$}=y;Object.assign(S.logprobs,$),I&&((r=S.logprobs).content??(r.content=[]),S.logprobs.content.push(...I)),O&&((s=S.logprobs).refusal??(s.refusal=[]),S.logprobs.refusal.push(...O))}if(m&&(S.finish_reason=m,se(this,Er,"f")&&Pb(se(this,Er,"f")))){if(m==="length")throw new ib;if(m==="content_filter")throw new lb}if(Object.assign(S,x),!h)continue;const{content:_,refusal:E,function_call:T,role:P,tool_calls:C,...A}=h;if(Object.assign(S.message,A),E&&(S.message.refusal=(S.message.refusal||"")+E),P&&(S.message.role=P),T&&(S.message.function_call?(T.name&&(S.message.function_call.name=T.name),T.arguments&&((o=S.message.function_call).arguments??(o.arguments=""),S.message.function_call.arguments+=T.arguments)):S.message.function_call=T),_&&(S.message.content=(S.message.content||"")+_,!S.message.refusal&&se(this,ln,"m",cu).call(this)&&(S.message.parsed=om(S.message.content))),C){S.message.tool_calls||(S.message.tool_calls=[]);for(const{index:I,id:O,type:$,function:B,...te}of C){const H=(a=S.message.tool_calls)[I]??(a[I]={});Object.assign(H,te),O&&(H.id=O),$&&(H.type=$),B&&(H.function??(H.function={name:B.name??"",arguments:""})),B!=null&&B.name&&(H.function.name=B.name),B!=null&&B.arguments&&(H.function.arguments+=B.arguments,Oj(se(this,Er,"f"),H)&&(H.function.parsed_arguments=om(H.function.arguments)))}}}return i},Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("chunk",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,a)=>n.push({resolve:o,reject:a})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new wr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function Wj(e,t){const{id:n,choices:r,created:s,model:o,system_fingerprint:a,...i}=e,c={...i,id:n,choices:r.map(({message:d,finish_reason:h,index:m,logprobs:g,...y})=>{if(!h)throw new tt(`missing finish_reason for choice ${m}`);const{content:x=null,function_call:S,tool_calls:_,...E}=d,T=d.role;if(!T)throw new tt(`missing role for choice ${m}`);if(S){const{arguments:P,name:C}=S;if(P==null)throw new tt(`missing function_call.arguments for choice ${m}`);if(!C)throw new tt(`missing function_call.name for choice ${m}`);return{...y,message:{content:x,function_call:{arguments:P,name:C},role:T,refusal:d.refusal??null},finish_reason:h,index:m,logprobs:g}}return _?{...y,index:m,finish_reason:h,logprobs:g,message:{...E,role:T,content:x,refusal:d.refusal??null,tool_calls:_.map((P,C)=>{const{function:A,type:I,id:O,...$}=P,{arguments:B,name:te,...H}=A||{};if(O==null)throw new tt(`missing choices[${m}].tool_calls[${C}].id
221
+ ${Qi(e)}`);if(I==null)throw new tt(`missing choices[${m}].tool_calls[${C}].type
222
+ ${Qi(e)}`);if(te==null)throw new tt(`missing choices[${m}].tool_calls[${C}].function.name
223
+ ${Qi(e)}`);if(B==null)throw new tt(`missing choices[${m}].tool_calls[${C}].function.arguments
224
+ ${Qi(e)}`);return{...$,id:O,type:I,function:{...H,name:te,arguments:B}}})}}:{...y,message:{...E,content:x,role:T,refusal:d.refusal??null},finish_reason:h,index:m,logprobs:g}}),created:s,model:o,object:"chat.completion",...a?{system_fingerprint:a}:{}};return Rj(c,t)}function Qi(e){return JSON.stringify(e)}class Dl extends ai{static fromReadableStream(t){const n=new Dl(null);return n._run(()=>n._fromReadableStream(t)),n}static runTools(t,n,r){const s=new Dl(n),o={...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(t,n,o)),s}}let yf=class extends st{constructor(){super(...arguments),this.messages=new Cb(this._client)}create(t,n){return this._client.post("/chat/completions",{body:t,...n,stream:t.stream??!1})}retrieve(t,n){return this._client.get(Oe`/chat/completions/${t}`,n)}update(t,n,r){return this._client.post(Oe`/chat/completions/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/chat/completions",sn,{query:t,...n})}delete(t,n){return this._client.delete(Oe`/chat/completions/${t}`,n)}parse(t,n){return $j(t.tools),this._client.chat.completions.create(t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(r=>mf(r,t))}runTools(t,n){return t.stream?Dl.runTools(this._client,t,n):gf.runTools(this._client,t,n)}stream(t,n){return ai.createChatCompletion(this._client,t,n)}};yf.Messages=Cb;class vf extends st{constructor(){super(...arguments),this.completions=new yf(this._client)}}vf.Completions=yf;const qb=Symbol("brand.privateNullableHeaders");function*Uj(e){if(!e)return;if(qb in e){const{values:r,nulls:s}=e;yield*r.entries();for(const o of s)yield[o,null];return}let t=!1,n;e instanceof Headers?n=e.entries():Hp(e)?n=e:(t=!0,n=Object.entries(e??{}));for(let r of n){const s=r[0];if(typeof s!="string")throw new TypeError("expected header name to be a string");const o=Hp(r[1])?r[1]:[r[1]];let a=!1;for(const i of o)i!==void 0&&(t&&!a&&(a=!0,yield[s,null]),yield[s,i])}}const Ye=e=>{const t=new Headers,n=new Set;for(const r of e){const s=new Set;for(const[o,a]of Uj(r)){const i=o.toLowerCase();s.has(i)||(t.delete(o),s.add(i)),a===null?(t.delete(o),n.add(i)):(t.append(o,a),n.delete(i))}}return{[qb]:!0,values:t,nulls:n}};class Hb extends st{create(t,n){return this._client.post("/audio/speech",{body:t,...n,headers:Ye([{Accept:"application/octet-stream"},n==null?void 0:n.headers]),__binaryResponse:!0})}}class Yb extends st{create(t,n){return this._client.post("/audio/transcriptions",Es({body:t,...n,stream:t.stream??!1,__metadata:{model:t.model}},this._client))}}class Kb extends st{create(t,n){return this._client.post("/audio/translations",Es({body:t,...n,__metadata:{model:t.model}},this._client))}}class hi extends st{constructor(){super(...arguments),this.transcriptions=new Yb(this._client),this.translations=new Kb(this._client),this.speech=new Hb(this._client)}}hi.Transcriptions=Yb;hi.Translations=Kb;hi.Speech=Hb;class Xb extends st{create(t,n){return this._client.post("/batches",{body:t,...n})}retrieve(t,n){return this._client.get(Oe`/batches/${t}`,n)}list(t={},n){return this._client.getAPIList("/batches",sn,{query:t,...n})}cancel(t,n){return this._client.post(Oe`/batches/${t}/cancel`,n)}}class Vb extends st{create(t,n){return this._client.post("/assistants",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Oe`/assistants/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Oe`/assistants/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/assistants",sn,{query:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Oe`/assistants/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Gb extends st{create(t,n){return this._client.post("/realtime/sessions",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Jb extends st{create(t,n){return this._client.post("/realtime/transcription_sessions",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class ac extends st{constructor(){super(...arguments),this.sessions=new Gb(this._client),this.transcriptionSessions=new Jb(this._client)}}ac.Sessions=Gb;ac.TranscriptionSessions=Jb;class Qb extends st{create(t,n,r){return this._client.post(Oe`/threads/${t}/messages`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(Oe`/threads/${s}/messages/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/messages/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Oe`/threads/${t}/messages`,sn,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{thread_id:s}=n;return this._client.delete(Oe`/threads/${s}/messages/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class Zb extends st{retrieve(t,n,r){const{thread_id:s,run_id:o,...a}=n;return this._client.get(Oe`/threads/${s}/runs/${o}/steps/${t}`,{query:a,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n,r){const{thread_id:s,...o}=n;return this._client.getAPIList(Oe`/threads/${s}/runs/${t}/steps`,sn,{query:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}const qj=e=>{if(typeof Buffer<"u"){const t=Buffer.from(e,"base64");return Array.from(new Float32Array(t.buffer,t.byteOffset,t.length/Float32Array.BYTES_PER_ELEMENT))}else{const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s<n;s++)r[s]=t.charCodeAt(s);return Array.from(new Float32Array(r.buffer))}};var uu={};const Ys=e=>{var t,n,r,s;if(typeof globalThis.process<"u")return((t=uu==null?void 0:uu[e])==null?void 0:t.trim())??void 0;if(typeof globalThis.Deno<"u")return(s=(r=(n=globalThis.Deno.env)==null?void 0:n.get)==null?void 0:r.call(n,e))==null?void 0:s.trim()};var bn,xs,gd,yr,pl,ir,ws,eo,ms,Fl,Hn,ml,gl,Ya,Na,za,im,lm,cm,um,dm,fm,hm;class Ka extends hf{constructor(){super(...arguments),bn.add(this),gd.set(this,[]),yr.set(this,{}),pl.set(this,{}),ir.set(this,void 0),ws.set(this,void 0),eo.set(this,void 0),ms.set(this,void 0),Fl.set(this,void 0),Hn.set(this,void 0),ml.set(this,void 0),gl.set(this,void 0),Ya.set(this,void 0)}[(gd=new WeakMap,yr=new WeakMap,pl=new WeakMap,ir=new WeakMap,ws=new WeakMap,eo=new WeakMap,ms=new WeakMap,Fl=new WeakMap,Hn=new WeakMap,ml=new WeakMap,gl=new WeakMap,Ya=new WeakMap,bn=new WeakSet,Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,a)=>n.push({resolve:o,reject:a})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(t){const n=new xs;return n._run(()=>n._fromReadableStream(t)),n}async _fromReadableStream(t,n){var o;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),this._connected();const s=wr.fromReadableStream(t,this.controller);for await(const a of s)se(this,bn,"m",Na).call(this,a);if((o=s.controller.signal)!=null&&o.aborted)throw new Zn;return this._addRun(se(this,bn,"m",za).call(this))}toReadableStream(){return new wr(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(t,n,r,s){const o=new xs;return o._run(()=>o._runToolAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}async _createToolAssistantStream(t,n,r,s){var c;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const a={...r,stream:!0},i=await t.submitToolOutputs(n,a,{...s,signal:this.controller.signal});this._connected();for await(const d of i)se(this,bn,"m",Na).call(this,d);if((c=i.controller.signal)!=null&&c.aborted)throw new Zn;return this._addRun(se(this,bn,"m",za).call(this))}static createThreadAssistantStream(t,n,r){const s=new xs;return s._run(()=>s._threadAssistantStream(t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(t,n,r,s){const o=new xs;return o._run(()=>o._runAssistantStream(t,n,r,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"stream"}})),o}currentEvent(){return se(this,ml,"f")}currentRun(){return se(this,gl,"f")}currentMessageSnapshot(){return se(this,ir,"f")}currentRunStepSnapshot(){return se(this,Ya,"f")}async finalRunSteps(){return await this.done(),Object.values(se(this,yr,"f"))}async finalMessages(){return await this.done(),Object.values(se(this,pl,"f"))}async finalRun(){if(await this.done(),!se(this,ws,"f"))throw Error("Final run was not received.");return se(this,ws,"f")}async _createThreadAssistantStream(t,n,r){var i;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));const o={...n,stream:!0},a=await t.createAndRun(o,{...r,signal:this.controller.signal});this._connected();for await(const c of a)se(this,bn,"m",Na).call(this,c);if((i=a.controller.signal)!=null&&i.aborted)throw new Zn;return this._addRun(se(this,bn,"m",za).call(this))}async _createAssistantStream(t,n,r,s){var c;const o=s==null?void 0:s.signal;o&&(o.aborted&&this.controller.abort(),o.addEventListener("abort",()=>this.controller.abort()));const a={...r,stream:!0},i=await t.create(n,a,{...s,signal:this.controller.signal});this._connected();for await(const d of i)se(this,bn,"m",Na).call(this,d);if((c=i.controller.signal)!=null&&c.aborted)throw new Zn;return this._addRun(se(this,bn,"m",za).call(this))}static accumulateDelta(t,n){for(const[r,s]of Object.entries(n)){if(!t.hasOwnProperty(r)){t[r]=s;continue}let o=t[r];if(o==null){t[r]=s;continue}if(r==="index"||r==="type"){t[r]=s;continue}if(typeof o=="string"&&typeof s=="string")o+=s;else if(typeof o=="number"&&typeof s=="number")o+=s;else if(nu(o)&&nu(s))o=this.accumulateDelta(o,s);else if(Array.isArray(o)&&Array.isArray(s)){if(o.every(a=>typeof a=="string"||typeof a=="number")){o.push(...s);continue}for(const a of s){if(!nu(a))throw new Error(`Expected array delta entry to be an object but got: ${a}`);const i=a.index;if(i==null)throw console.error(a),new Error("Expected array delta entry to have an `index` property");if(typeof i!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${i}`);const c=o[i];c==null?o.push(a):o[i]=this.accumulateDelta(c,a)}continue}else throw Error(`Unhandled record type: ${r}, deltaValue: ${s}, accValue: ${o}`);t[r]=o}return t}_addRun(t){return t}async _threadAssistantStream(t,n,r){return await this._createThreadAssistantStream(n,t,r)}async _runAssistantStream(t,n,r,s){return await this._createAssistantStream(n,t,r,s)}async _runToolAssistantStream(t,n,r,s){return await this._createToolAssistantStream(n,t,r,s)}}xs=Ka,Na=function(t){if(!this.ended)switch(et(this,ml,t),se(this,bn,"m",cm).call(this,t),t.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":se(this,bn,"m",hm).call(this,t);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":se(this,bn,"m",lm).call(this,t);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":se(this,bn,"m",im).call(this,t);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},za=function(){if(this.ended)throw new tt("stream has ended, this shouldn't happen");if(!se(this,ws,"f"))throw Error("Final run has not been received");return se(this,ws,"f")},im=function(t){const[n,r]=se(this,bn,"m",dm).call(this,t,se(this,ir,"f"));et(this,ir,n),se(this,pl,"f")[n.id]=n;for(const s of r){const o=n.content[s.index];(o==null?void 0:o.type)=="text"&&this._emit("textCreated",o.text)}switch(t.event){case"thread.message.created":this._emit("messageCreated",t.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",t.data.delta,n),t.data.delta.content)for(const s of t.data.delta.content){if(s.type=="text"&&s.text){let o=s.text,a=n.content[s.index];if(a&&a.type=="text")this._emit("textDelta",o,a.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=se(this,eo,"f")){if(se(this,ms,"f"))switch(se(this,ms,"f").type){case"text":this._emit("textDone",se(this,ms,"f").text,se(this,ir,"f"));break;case"image_file":this._emit("imageFileDone",se(this,ms,"f").image_file,se(this,ir,"f"));break}et(this,eo,s.index)}et(this,ms,n.content[s.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(se(this,eo,"f")!==void 0){const s=t.data.content[se(this,eo,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,se(this,ir,"f"));break;case"text":this._emit("textDone",s.text,se(this,ir,"f"));break}}se(this,ir,"f")&&this._emit("messageDone",t.data),et(this,ir,void 0)}},lm=function(t){const n=se(this,bn,"m",um).call(this,t);switch(et(this,Ya,n),t.event){case"thread.run.step.created":this._emit("runStepCreated",t.data);break;case"thread.run.step.delta":const r=t.data.delta;if(r.step_details&&r.step_details.type=="tool_calls"&&r.step_details.tool_calls&&n.step_details.type=="tool_calls")for(const o of r.step_details.tool_calls)o.index==se(this,Fl,"f")?this._emit("toolCallDelta",o,n.step_details.tool_calls[o.index]):(se(this,Hn,"f")&&this._emit("toolCallDone",se(this,Hn,"f")),et(this,Fl,o.index),et(this,Hn,n.step_details.tool_calls[o.index]),se(this,Hn,"f")&&this._emit("toolCallCreated",se(this,Hn,"f")));this._emit("runStepDelta",t.data.delta,n);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":et(this,Ya,void 0),t.data.step_details.type=="tool_calls"&&se(this,Hn,"f")&&(this._emit("toolCallDone",se(this,Hn,"f")),et(this,Hn,void 0)),this._emit("runStepDone",t.data,n);break}},cm=function(t){se(this,gd,"f").push(t),this._emit("event",t)},um=function(t){switch(t.event){case"thread.run.step.created":return se(this,yr,"f")[t.data.id]=t.data,t.data;case"thread.run.step.delta":let n=se(this,yr,"f")[t.data.id];if(!n)throw Error("Received a RunStepDelta before creation of a snapshot");let r=t.data;if(r.delta){const s=xs.accumulateDelta(n,r.delta);se(this,yr,"f")[t.data.id]=s}return se(this,yr,"f")[t.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":se(this,yr,"f")[t.data.id]=t.data;break}if(se(this,yr,"f")[t.data.id])return se(this,yr,"f")[t.data.id];throw new Error("No snapshot available")},dm=function(t,n){let r=[];switch(t.event){case"thread.message.created":return[t.data,r];case"thread.message.delta":if(!n)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let s=t.data;if(s.delta.content)for(const o of s.delta.content)if(o.index in n.content){let a=n.content[o.index];n.content[o.index]=se(this,bn,"m",fm).call(this,o,a)}else n.content[o.index]=o,r.push(o);return[n,r];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(n)return[n,r];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},fm=function(t,n){return xs.accumulateDelta(n,t)},hm=function(t){switch(et(this,gl,t.data),t.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":et(this,ws,t.data),se(this,Hn,"f")&&(this._emit("toolCallDone",se(this,Hn,"f")),et(this,Hn,void 0));break}};let bf=class extends st{constructor(){super(...arguments),this.steps=new Zb(this._client)}create(t,n,r){const{include:s,...o}=n;return this._client.post(Oe`/threads/${t}/runs`,{query:{include:s},body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}retrieve(t,n,r){const{thread_id:s}=n;return this._client.get(Oe`/threads/${s}/runs/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/runs/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Oe`/threads/${t}/runs`,sn,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{thread_id:s}=n;return this._client.post(Oe`/threads/${s}/runs/${t}/cancel`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n,r);return await this.poll(s.id,{thread_id:t},r)}createAndStream(t,n,r){return Ka.createAssistantStream(t,this._client.beta.threads.runs,n,r)}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:a,response:i}=await this.retrieve(t,n,{...r,headers:{...r==null?void 0:r.headers,...s}}).withResponse();switch(a.status){case"queued":case"in_progress":case"cancelling":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=i.headers.get("openai-poll-after-ms");if(d){const h=parseInt(d);isNaN(h)||(c=h)}}await di(c);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return a}}}stream(t,n,r){return Ka.createAssistantStream(t,this._client.beta.threads.runs,n,r)}submitToolOutputs(t,n,r){const{thread_id:s,...o}=n;return this._client.post(Oe`/threads/${s}/runs/${t}/submit_tool_outputs`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers]),stream:n.stream??!1})}async submitToolOutputsAndPoll(t,n,r){const s=await this.submitToolOutputs(t,n,r);return await this.poll(s.id,n,r)}submitToolOutputsStream(t,n,r){return Ka.createToolAssistantStream(t,this._client.beta.threads.runs,n,r)}};bf.Steps=Zb;class ic extends st{constructor(){super(...arguments),this.runs=new bf(this._client),this.messages=new Qb(this._client)}create(t={},n){return this._client.post("/threads",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Oe`/threads/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Oe`/threads/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n){return this._client.delete(Oe`/threads/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}createAndRun(t,n){return this._client.post("/threads/runs",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}async createAndRunPoll(t,n){const r=await this.createAndRun(t,n);return await this.runs.poll(r.id,{thread_id:r.thread_id},n)}createAndRunStream(t,n){return Ka.createThreadAssistantStream(t,this._client.beta.threads,n)}}ic.Runs=bf;ic.Messages=Qb;class pi extends st{constructor(){super(...arguments),this.realtime=new ac(this._client),this.assistants=new Vb(this._client),this.threads=new ic(this._client)}}pi.Realtime=ac;pi.Assistants=Vb;pi.Threads=ic;class eS extends st{create(t,n){return this._client.post("/completions",{body:t,...n,stream:t.stream??!1})}}let tS=class extends st{retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Oe`/containers/${s}/files/${t}/content`,{...r,headers:Ye([{Accept:"application/binary"},r==null?void 0:r.headers]),__binaryResponse:!0})}},Sf=class extends st{constructor(){super(...arguments),this.content=new tS(this._client)}create(t,n,r){return this._client.post(Oe`/containers/${t}/files`,Es({body:n,...r},this._client))}retrieve(t,n,r){const{container_id:s}=n;return this._client.get(Oe`/containers/${s}/files/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Oe`/containers/${t}/files`,sn,{query:n,...r})}delete(t,n,r){const{container_id:s}=n;return this._client.delete(Oe`/containers/${s}/files/${t}`,{...r,headers:Ye([{Accept:"*/*"},r==null?void 0:r.headers])})}};Sf.Content=tS;class xf extends st{constructor(){super(...arguments),this.files=new Sf(this._client)}create(t,n){return this._client.post("/containers",{body:t,...n})}retrieve(t,n){return this._client.get(Oe`/containers/${t}`,n)}list(t={},n){return this._client.getAPIList("/containers",sn,{query:t,...n})}delete(t,n){return this._client.delete(Oe`/containers/${t}`,{...n,headers:Ye([{Accept:"*/*"},n==null?void 0:n.headers])})}}xf.Files=Sf;class nS extends st{create(t,n){const r=!!t.encoding_format;let s=r?t.encoding_format:"base64";r&&vn(this._client).debug("embeddings/user defined encoding_format:",t.encoding_format);const o=this._client.post("/embeddings",{body:{...t,encoding_format:s},...n});return r?o:(vn(this._client).debug("embeddings/decoding base64 embeddings from base64"),o._thenUnwrap(a=>(a&&a.data&&a.data.forEach(i=>{const c=i.embedding;i.embedding=qj(c)}),a)))}}class rS extends st{retrieve(t,n,r){const{eval_id:s,run_id:o}=n;return this._client.get(Oe`/evals/${s}/runs/${o}/output_items/${t}`,r)}list(t,n,r){const{eval_id:s,...o}=n;return this._client.getAPIList(Oe`/evals/${s}/runs/${t}/output_items`,sn,{query:o,...r})}}class wf extends st{constructor(){super(...arguments),this.outputItems=new rS(this._client)}create(t,n,r){return this._client.post(Oe`/evals/${t}/runs`,{body:n,...r})}retrieve(t,n,r){const{eval_id:s}=n;return this._client.get(Oe`/evals/${s}/runs/${t}`,r)}list(t,n={},r){return this._client.getAPIList(Oe`/evals/${t}/runs`,sn,{query:n,...r})}delete(t,n,r){const{eval_id:s}=n;return this._client.delete(Oe`/evals/${s}/runs/${t}`,r)}cancel(t,n,r){const{eval_id:s}=n;return this._client.post(Oe`/evals/${s}/runs/${t}`,r)}}wf.OutputItems=rS;class _f extends st{constructor(){super(...arguments),this.runs=new wf(this._client)}create(t,n){return this._client.post("/evals",{body:t,...n})}retrieve(t,n){return this._client.get(Oe`/evals/${t}`,n)}update(t,n,r){return this._client.post(Oe`/evals/${t}`,{body:n,...r})}list(t={},n){return this._client.getAPIList("/evals",sn,{query:t,...n})}delete(t,n){return this._client.delete(Oe`/evals/${t}`,n)}}_f.Runs=wf;let sS=class extends st{create(t,n){return this._client.post("/files",Es({body:t,...n},this._client))}retrieve(t,n){return this._client.get(Oe`/files/${t}`,n)}list(t={},n){return this._client.getAPIList("/files",sn,{query:t,...n})}delete(t,n){return this._client.delete(Oe`/files/${t}`,n)}content(t,n){return this._client.get(Oe`/files/${t}/content`,{...n,headers:Ye([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}async waitForProcessing(t,{pollInterval:n=5e3,maxWait:r=30*60*1e3}={}){const s=new Set(["processed","error","deleted"]),o=Date.now();let a=await this.retrieve(t);for(;!a.status||!s.has(a.status);)if(await di(n),a=await this.retrieve(t),Date.now()-o>r)throw new df({message:`Giving up on waiting for file ${t} to finish processing after ${r} milliseconds.`});return a}};class oS extends st{}let aS=class extends st{run(t,n){return this._client.post("/fine_tuning/alpha/graders/run",{body:t,...n})}validate(t,n){return this._client.post("/fine_tuning/alpha/graders/validate",{body:t,...n})}};class Cf extends st{constructor(){super(...arguments),this.graders=new aS(this._client)}}Cf.Graders=aS;class iS extends st{create(t,n,r){return this._client.getAPIList(Oe`/fine_tuning/checkpoints/${t}/permissions`,oc,{body:n,method:"post",...r})}retrieve(t,n={},r){return this._client.get(Oe`/fine_tuning/checkpoints/${t}/permissions`,{query:n,...r})}delete(t,n,r){const{fine_tuned_model_checkpoint:s}=n;return this._client.delete(Oe`/fine_tuning/checkpoints/${s}/permissions/${t}`,r)}}let kf=class extends st{constructor(){super(...arguments),this.permissions=new iS(this._client)}};kf.Permissions=iS;class lS extends st{list(t,n={},r){return this._client.getAPIList(Oe`/fine_tuning/jobs/${t}/checkpoints`,sn,{query:n,...r})}}class Tf extends st{constructor(){super(...arguments),this.checkpoints=new lS(this._client)}create(t,n){return this._client.post("/fine_tuning/jobs",{body:t,...n})}retrieve(t,n){return this._client.get(Oe`/fine_tuning/jobs/${t}`,n)}list(t={},n){return this._client.getAPIList("/fine_tuning/jobs",sn,{query:t,...n})}cancel(t,n){return this._client.post(Oe`/fine_tuning/jobs/${t}/cancel`,n)}listEvents(t,n={},r){return this._client.getAPIList(Oe`/fine_tuning/jobs/${t}/events`,sn,{query:n,...r})}pause(t,n){return this._client.post(Oe`/fine_tuning/jobs/${t}/pause`,n)}resume(t,n){return this._client.post(Oe`/fine_tuning/jobs/${t}/resume`,n)}}Tf.Checkpoints=lS;class vo extends st{constructor(){super(...arguments),this.methods=new oS(this._client),this.jobs=new Tf(this._client),this.checkpoints=new kf(this._client),this.alpha=new Cf(this._client)}}vo.Methods=oS;vo.Jobs=Tf;vo.Checkpoints=kf;vo.Alpha=Cf;class cS extends st{}class Pf extends st{constructor(){super(...arguments),this.graderModels=new cS(this._client)}}Pf.GraderModels=cS;class uS extends st{createVariation(t,n){return this._client.post("/images/variations",Es({body:t,...n},this._client))}edit(t,n){return this._client.post("/images/edits",Es({body:t,...n,stream:t.stream??!1},this._client))}generate(t,n){return this._client.post("/images/generations",{body:t,...n,stream:t.stream??!1})}}class dS extends st{retrieve(t,n){return this._client.get(Oe`/models/${t}`,n)}list(t){return this._client.getAPIList("/models",oc,t)}delete(t,n){return this._client.delete(Oe`/models/${t}`,n)}}class fS extends st{create(t,n){return this._client.post("/moderations",{body:t,...n})}}function Hj(e,t){return!t||!Kj(t)?{...e,output_parsed:null,output:e.output.map(n=>n.type==="function_call"?{...n,parsed_arguments:null}:n.type==="message"?{...n,content:n.content.map(r=>({...r,parsed:null}))}:n)}:hS(e,t)}function hS(e,t){const n=e.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:Gj(t,s)};if(s.type==="message"){const o=s.content.map(a=>a.type==="output_text"?{...a,parsed:Yj(t,a.text)}:a);return{...s,content:o}}return s}),r=Object.assign({},e,{output:n});return Object.getOwnPropertyDescriptor(e,"output_text")||yd(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 Yj(e,t){var n,r,s,o;return((r=(n=e.text)==null?void 0:n.format)==null?void 0:r.type)!=="json_schema"?null:"$parseRaw"in((s=e.text)==null?void 0:s.format)?((o=e.text)==null?void 0:o.format).$parseRaw(t):JSON.parse(t)}function Kj(e){var t;return!!pf((t=e.text)==null?void 0:t.format)}function Xj(e){return(e==null?void 0:e.$brand)==="auto-parseable-tool"}function Vj(e,t){return e.find(n=>n.type==="function"&&n.name===t)}function Gj(e,t){const n=Vj(e.tools??[],t.name);return{...t,...t,parsed_arguments:Xj(n)?n.$parseRaw(t.arguments):n!=null&&n.strict?JSON.parse(t.arguments):null}}function yd(e){const t=[];for(const n of e.output)if(n.type==="message")for(const r of n.content)r.type==="output_text"&&t.push(r.text);e.output_text=t.join("")}var Ks,Zi,Hr,el,pm,mm,gm,ym;class Ef extends hf{constructor(t){super(),Ks.add(this),Zi.set(this,void 0),Hr.set(this,void 0),el.set(this,void 0),et(this,Zi,t)}static createResponse(t,n,r){const s=new Ef(n);return s._run(()=>s._createOrRetrieveResponse(t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(t,n,r){var i;const s=r==null?void 0:r.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),se(this,Ks,"m",pm).call(this);let o,a=null;"response_id"in n?(o=await t.responses.retrieve(n.response_id,{stream:!0},{...r,signal:this.controller.signal,stream:!0}),a=n.starting_after??null):o=await t.responses.create({...n,stream:!0},{...r,signal:this.controller.signal}),this._connected();for await(const c of o)se(this,Ks,"m",mm).call(this,c,a);if((i=o.controller.signal)!=null&&i.aborted)throw new Zn;return se(this,Ks,"m",gm).call(this)}[(Zi=new WeakMap,Hr=new WeakMap,el=new WeakMap,Ks=new WeakSet,pm=function(){this.ended||et(this,Hr,void 0)},mm=function(n,r){if(this.ended)return;const s=(a,i)=>{(r==null||i.sequence_number>r)&&this._emit(a,i)},o=se(this,Ks,"m",ym).call(this,n);switch(s("event",n),n.type){case"response.output_text.delta":{const a=o.output[n.output_index];if(!a)throw new tt(`missing output at index ${n.output_index}`);if(a.type==="message"){const i=a.content[n.content_index];if(!i)throw new tt(`missing content at index ${n.content_index}`);if(i.type!=="output_text")throw new tt(`expected content to be 'output_text', got ${i.type}`);s("response.output_text.delta",{...n,snapshot:i.text})}break}case"response.function_call_arguments.delta":{const a=o.output[n.output_index];if(!a)throw new tt(`missing output at index ${n.output_index}`);a.type==="function_call"&&s("response.function_call_arguments.delta",{...n,snapshot:a.arguments});break}default:s(n.type,n);break}},gm=function(){if(this.ended)throw new tt("stream has ended, this shouldn't happen");const n=se(this,Hr,"f");if(!n)throw new tt("request ended without sending any events");et(this,Hr,void 0);const r=Jj(n,se(this,Zi,"f"));return et(this,el,r),r},ym=function(n){let r=se(this,Hr,"f");if(!r){if(n.type!=="response.created")throw new tt(`When snapshot hasn't been set yet, expected 'response.created' event, got ${n.type}`);return r=et(this,Hr,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 tt(`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 tt(`missing output at index ${n.output_index}`);if(s.type==="message"){const o=s.content[n.content_index];if(!o)throw new tt(`missing content at index ${n.content_index}`);if(o.type!=="output_text")throw new tt(`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 tt(`missing output at index ${n.output_index}`);s.type==="function_call"&&(s.arguments+=n.delta);break}case"response.completed":{et(this,Hr,n.response);break}}return r},Symbol.asyncIterator)](){const t=[],n=[];let r=!1;return this.on("event",s=>{const o=n.shift();o?o.resolve(s):t.push(s)}),this.on("end",()=>{r=!0;for(const s of n)s.resolve(void 0);n.length=0}),this.on("abort",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),this.on("error",s=>{r=!0;for(const o of n)o.reject(s);n.length=0}),{next:async()=>t.length?{value:t.shift(),done:!1}:r?{value:void 0,done:!0}:new Promise((o,a)=>n.push({resolve:o,reject:a})).then(o=>o?{value:o,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const t=se(this,el,"f");if(!t)throw new tt("stream ended without producing a ChatCompletion");return t}}function Jj(e,t){return Hj(e,t)}class pS extends st{list(t,n={},r){return this._client.getAPIList(Oe`/responses/${t}/input_items`,sn,{query:n,...r})}}class Mf extends st{constructor(){super(...arguments),this.inputItems=new pS(this._client)}create(t,n){return this._client.post("/responses",{body:t,...n,stream:t.stream??!1})._thenUnwrap(r=>("object"in r&&r.object==="response"&&yd(r),r))}retrieve(t,n={},r){return this._client.get(Oe`/responses/${t}`,{query:n,...r,stream:(n==null?void 0:n.stream)??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&yd(s),s))}delete(t,n){return this._client.delete(Oe`/responses/${t}`,{...n,headers:Ye([{Accept:"*/*"},n==null?void 0:n.headers])})}parse(t,n){return this._client.responses.create(t,n)._thenUnwrap(r=>hS(r,t))}stream(t,n){return Ef.createResponse(this._client,t,n)}cancel(t,n){return this._client.post(Oe`/responses/${t}/cancel`,n)}}Mf.InputItems=pS;class mS extends st{create(t,n,r){return this._client.post(Oe`/uploads/${t}/parts`,Es({body:n,...r},this._client))}}class Af extends st{constructor(){super(...arguments),this.parts=new mS(this._client)}create(t,n){return this._client.post("/uploads",{body:t,...n})}cancel(t,n){return this._client.post(Oe`/uploads/${t}/cancel`,n)}complete(t,n,r){return this._client.post(Oe`/uploads/${t}/complete`,{body:n,...r})}}Af.Parts=mS;const Qj=async e=>{const t=await Promise.allSettled(e),n=t.filter(s=>s.status==="rejected");if(n.length){for(const s of n)console.error(s.reason);throw new Error(`${n.length} promise(s) failed - see the above errors`)}const r=[];for(const s of t)s.status==="fulfilled"&&r.push(s.value);return r};class gS extends st{create(t,n,r){return this._client.post(Oe`/vector_stores/${t}/file_batches`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Oe`/vector_stores/${s}/file_batches/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}cancel(t,n,r){const{vector_store_id:s}=n;return this._client.post(Oe`/vector_stores/${s}/file_batches/${t}/cancel`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n);return await this.poll(t,s.id,r)}listFiles(t,n,r){const{vector_store_id:s,...o}=n;return this._client.getAPIList(Oe`/vector_stores/${s}/file_batches/${t}/files`,sn,{query:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const{data:a,response:i}=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse();switch(a.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=i.headers.get("openai-poll-after-ms");if(d){const h=parseInt(d);isNaN(h)||(c=h)}}await di(c);break;case"failed":case"cancelled":case"completed":return a}}}async uploadAndPoll(t,{files:n,fileIds:r=[]},s){if(n==null||n.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const o=(s==null?void 0:s.maxConcurrency)??5,a=Math.min(o,n.length),i=this._client,c=n.values(),d=[...r];async function h(g){for(let y of g){const x=await i.files.create({file:y,purpose:"assistants"},s);d.push(x.id)}}const m=Array(a).fill(c).map(h);return await Qj(m),await this.createAndPoll(t,{file_ids:d})}}class yS extends st{create(t,n,r){return this._client.post(Oe`/vector_stores/${t}/files`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}retrieve(t,n,r){const{vector_store_id:s}=n;return this._client.get(Oe`/vector_stores/${s}/files/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}update(t,n,r){const{vector_store_id:s,...o}=n;return this._client.post(Oe`/vector_stores/${s}/files/${t}`,{body:o,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t,n={},r){return this._client.getAPIList(Oe`/vector_stores/${t}/files`,sn,{query:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}delete(t,n,r){const{vector_store_id:s}=n;return this._client.delete(Oe`/vector_stores/${s}/files/${t}`,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}async createAndPoll(t,n,r){const s=await this.create(t,n,r);return await this.poll(t,s.id,r)}async poll(t,n,r){var o;const s=Ye([r==null?void 0:r.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((o=r==null?void 0:r.pollIntervalMs)==null?void 0:o.toString())??void 0}]);for(;;){const a=await this.retrieve(n,{vector_store_id:t},{...r,headers:s}).withResponse(),i=a.data;switch(i.status){case"in_progress":let c=5e3;if(r!=null&&r.pollIntervalMs)c=r.pollIntervalMs;else{const d=a.response.headers.get("openai-poll-after-ms");if(d){const h=parseInt(d);isNaN(h)||(c=h)}}await di(c);break;case"failed":case"completed":return i}}}async upload(t,n,r){const s=await this._client.files.create({file:n,purpose:"assistants"},r);return this.create(t,{file_id:s.id},r)}async uploadAndPoll(t,n,r){const s=await this.upload(t,n,r);return await this.poll(t,s.id,r)}content(t,n,r){const{vector_store_id:s}=n;return this._client.getAPIList(Oe`/vector_stores/${s}/files/${t}/content`,oc,{...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}class lc extends st{constructor(){super(...arguments),this.files=new yS(this._client),this.fileBatches=new gS(this._client)}create(t,n){return this._client.post("/vector_stores",{body:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(t,n){return this._client.get(Oe`/vector_stores/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(t,n,r){return this._client.post(Oe`/vector_stores/${t}`,{body:n,...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}list(t={},n){return this._client.getAPIList("/vector_stores",sn,{query:t,...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(t,n){return this._client.delete(Oe`/vector_stores/${t}`,{...n,headers:Ye([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}search(t,n,r){return this._client.getAPIList(Oe`/vector_stores/${t}/search`,oc,{body:n,method:"post",...r,headers:Ye([{"OpenAI-Beta":"assistants=v2"},r==null?void 0:r.headers])})}}lc.Files=yS;lc.FileBatches=gS;var Gs,vS,yl;class bS extends st{constructor(){super(...arguments),Gs.add(this)}async unwrap(t,n,r=this._client.webhookSecret,s=300){return await this.verifySignature(t,n,r,s),JSON.parse(t)}async verifySignature(t,n,r=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");se(this,Gs,"m",vS).call(this,r);const o=Ye([n]).values,a=se(this,Gs,"m",yl).call(this,o,"webhook-signature"),i=se(this,Gs,"m",yl).call(this,o,"webhook-timestamp"),c=se(this,Gs,"m",yl).call(this,o,"webhook-id"),d=parseInt(i,10);if(isNaN(d))throw new ja("Invalid webhook timestamp format");const h=Math.floor(Date.now()/1e3);if(h-d>s)throw new ja("Webhook timestamp is too old");if(d>h+s)throw new ja("Webhook timestamp is too new");const m=a.split(" ").map(S=>S.startsWith("v1,")?S.substring(3):S),g=r.startsWith("whsec_")?Buffer.from(r.replace("whsec_",""),"base64"):Buffer.from(r,"utf-8"),y=c?`${c}.${i}.${t}`:`${i}.${t}`,x=await crypto.subtle.importKey("raw",g,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(const S of m)try{const _=Buffer.from(S,"base64");if(await crypto.subtle.verify("HMAC",x,_,new TextEncoder().encode(y)))return}catch{continue}throw new ja("The given webhook signature does not match the expected signature")}}Gs=new WeakSet,vS=function(t){if(typeof t!="string"||t.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},yl=function(t,n){if(!t)throw new Error("Headers are required");const r=t.get(n);if(r==null)throw new Error(`Missing required header: ${n}`);return r};var vd,Rf,vl,SS;class mt{constructor({baseURL:t=Ys("OPENAI_BASE_URL"),apiKey:n=Ys("OPENAI_API_KEY"),organization:r=Ys("OPENAI_ORG_ID")??null,project:s=Ys("OPENAI_PROJECT_ID")??null,webhookSecret:o=Ys("OPENAI_WEBHOOK_SECRET")??null,...a}={}){if(vd.add(this),vl.set(this,void 0),this.completions=new eS(this),this.chat=new vf(this),this.embeddings=new nS(this),this.files=new sS(this),this.images=new uS(this),this.audio=new hi(this),this.moderations=new fS(this),this.models=new dS(this),this.fineTuning=new vo(this),this.graders=new Pf(this),this.vectorStores=new lc(this),this.webhooks=new bS(this),this.beta=new pi(this),this.batches=new Xb(this),this.uploads=new Af(this),this.responses=new Mf(this),this.evals=new _f(this),this.containers=new xf(this),n===void 0)throw new tt("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const i={apiKey:n,organization:r,project:s,webhookSecret:o,...a,baseURL:t||"https://api.openai.com/v1"};if(!i.dangerouslyAllowBrowser&&ZR())throw new tt(`It looks like you're running in a browser-like environment.
225
+
226
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
227
+ If you understand the risks and have appropriate mitigations in place,
228
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
229
+
230
+ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
231
+
232
+ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
233
+ `);this.baseURL=i.baseURL,this.timeout=i.timeout??Rf.DEFAULT_TIMEOUT,this.logger=i.logger??console;const c="warn";this.logLevel=c,this.logLevel=tm(i.logLevel,"ClientOptions.logLevel",this)??tm(Ys("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??sj(),et(this,vl,aj),this._options=i,this.apiKey=n,this.organization=r,this.project=s,this.webhookSecret=o}withOptions(t){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...t})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:t,nulls:n}){}async authHeaders(t){return Ye([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(t){return fj(t,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Xs}`}defaultIdempotencyKey(){return`stainless-node-retry-${Qv()}`}makeStatusError(t,n,r,s){return xn.generate(t,n,r,s)}buildURL(t,n,r){const s=!se(this,vd,"m",SS).call(this)&&r||this.baseURL,o=KR(t)?new URL(t):new URL(s+(s.endsWith("/")&&t.startsWith("/")?t.slice(1):t)),a=this.defaultQuery();return VR(a)||(n={...a,...n}),typeof n=="object"&&n&&!Array.isArray(n)&&(o.search=this.stringifyQuery(n)),o.toString()}async prepareOptions(t){}async prepareRequest(t,{url:n,options:r}){}get(t,n){return this.methodRequest("get",t,n)}post(t,n){return this.methodRequest("post",t,n)}patch(t,n){return this.methodRequest("patch",t,n)}put(t,n){return this.methodRequest("put",t,n)}delete(t,n){return this.methodRequest("delete",t,n)}methodRequest(t,n,r){return this.request(Promise.resolve(r).then(s=>({method:t,path:n,...s})))}request(t,n=null){return new sc(this,this.makeRequest(t,n,void 0))}async makeRequest(t,n,r){var E,T;const s=await t,o=s.maxRetries??this.maxRetries;n==null&&(n=o),await this.prepareOptions(s);const{req:a,url:i,timeout:c}=await this.buildRequest(s,{retryCount:o-n});await this.prepareRequest(a,{url:i,options:s});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),h=r===void 0?"":`, retryOf: ${r}`,m=Date.now();if(vn(this).debug(`[${d}] sending request`,ds({retryOfRequestLogID:r,method:s.method,url:i,options:s,headers:a.headers})),(E=s.signal)!=null&&E.aborted)throw new Zn;const g=new AbortController,y=await this.fetchWithTimeout(i,a,c,g).catch(id),x=Date.now();if(y instanceof Error){const P=`retrying, ${n} attempts remaining`;if((T=s.signal)!=null&&T.aborted)throw new Zn;const C=ad(y)||/timed? ?out/i.test(String(y)+("cause"in y?String(y.cause):""));if(n)return vn(this).info(`[${d}] connection ${C?"timed out":"failed"} - ${P}`),vn(this).debug(`[${d}] connection ${C?"timed out":"failed"} (${P})`,ds({retryOfRequestLogID:r,url:i,durationMs:x-m,message:y.message})),this.retryRequest(s,n,r??d);throw vn(this).info(`[${d}] connection ${C?"timed out":"failed"} - error; no more retries left`),vn(this).debug(`[${d}] connection ${C?"timed out":"failed"} (error; no more retries left)`,ds({retryOfRequestLogID:r,url:i,durationMs:x-m,message:y.message})),C?new df:new nc({cause:y})}const S=[...y.headers.entries()].filter(([P])=>P==="x-request-id").map(([P,C])=>", "+P+": "+JSON.stringify(C)).join(""),_=`[${d}${h}${S}] ${a.method} ${i} ${y.ok?"succeeded":"failed"} with status ${y.status} in ${x-m}ms`;if(!y.ok){const P=await this.shouldRetry(y);if(n&&P){const B=`retrying, ${n} attempts remaining`;return await oj(y.body),vn(this).info(`${_} - ${B}`),vn(this).debug(`[${d}] response error (${B})`,ds({retryOfRequestLogID:r,url:y.url,status:y.status,headers:y.headers,durationMs:x-m})),this.retryRequest(s,n,r??d,y.headers)}const C=P?"error; no more retries left":"error; not retryable";vn(this).info(`${_} - ${C}`);const A=await y.text().catch(B=>id(B).message),I=QR(A),O=I?void 0:A;throw vn(this).debug(`[${d}] response error (${C})`,ds({retryOfRequestLogID:r,url:y.url,status:y.status,headers:y.headers,message:O,durationMs:Date.now()-m})),this.makeStatusError(y.status,I,O,y.headers)}return vn(this).info(_),vn(this).debug(`[${d}] response start`,ds({retryOfRequestLogID:r,url:y.url,status:y.status,headers:y.headers,durationMs:x-m})),{response:y,options:s,controller:g,requestLogID:d,retryOfRequestLogID:r,startTime:m}}getAPIList(t,n,r){return this.requestAPIList(n,{method:"get",path:t,...r})}requestAPIList(t,n){const r=this.makeRequest(n,null,void 0);return new xj(this,r,t)}async fetchWithTimeout(t,n,r,s){const{signal:o,method:a,...i}=n||{};o&&o.addEventListener("abort",()=>s.abort());const c=setTimeout(()=>s.abort(),r),d=globalThis.ReadableStream&&i.body instanceof globalThis.ReadableStream||typeof i.body=="object"&&i.body!==null&&Symbol.asyncIterator in i.body,h={signal:s.signal,...d?{duplex:"half"}:{},method:"GET",...i};a&&(h.method=a.toUpperCase());try{return await this.fetch.call(void 0,t,h)}finally{clearTimeout(c)}}async shouldRetry(t){const n=t.headers.get("x-should-retry");return n==="true"?!0:n==="false"?!1:t.status===408||t.status===409||t.status===429||t.status>=500}async retryRequest(t,n,r,s){let o;const a=s==null?void 0:s.get("retry-after-ms");if(a){const c=parseFloat(a);Number.isNaN(c)||(o=c)}const i=s==null?void 0:s.get("retry-after");if(i&&!o){const c=parseFloat(i);Number.isNaN(c)?o=Date.parse(i)-Date.now():o=c*1e3}if(!(o&&0<=o&&o<60*1e3)){const c=t.maxRetries??this.maxRetries;o=this.calculateDefaultRetryTimeoutMillis(n,c)}return await di(o),this.makeRequest(t,n-1,r)}calculateDefaultRetryTimeoutMillis(t,n){const o=n-t,a=Math.min(.5*Math.pow(2,o),8),i=1-Math.random()*.25;return a*i*1e3}async buildRequest(t,{retryCount:n=0}={}){const r={...t},{method:s,path:o,query:a,defaultBaseURL:i}=r,c=this.buildURL(o,a,i);"timeout"in r&&JR("timeout",r.timeout),r.timeout=r.timeout??this.timeout;const{bodyHeaders:d,body:h}=this.buildBody({options:r}),m=await this.buildHeaders({options:t,method:s,bodyHeaders:d,retryCount:n});return{req:{method:s,headers:m,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&h instanceof globalThis.ReadableStream&&{duplex:"half"},...h&&{body:h},...this.fetchOptions??{},...r.fetchOptions??{}},url:c,timeout:r.timeout}}async buildHeaders({options:t,method:n,bodyHeaders:r,retryCount:s}){let o={};this.idempotencyHeader&&n!=="get"&&(t.idempotencyKey||(t.idempotencyKey=this.defaultIdempotencyKey()),o[this.idempotencyHeader]=t.idempotencyKey);const a=Ye([o,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...t.timeout?{"X-Stainless-Timeout":String(Math.trunc(t.timeout/1e3))}:{},...rj(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(t),this._options.defaultHeaders,r,t.headers]);return this.validateHeaders(a),a.values}buildBody({options:{body:t,headers:n}}){if(!t)return{bodyHeaders:void 0,body:void 0};const r=Ye([n]);return ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DataView||typeof t=="string"&&r.values.has("content-type")||t instanceof Blob||t instanceof FormData||t instanceof URLSearchParams||globalThis.ReadableStream&&t instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:t}:typeof t=="object"&&(Symbol.asyncIterator in t||Symbol.iterator in t&&"next"in t&&typeof t.next=="function")?{bodyHeaders:void 0,body:ub(t)}:se(this,vl,"f").call(this,{body:t,headers:r})}}Rf=mt,vl=new WeakMap,vd=new WeakSet,SS=function(){return this.baseURL!=="https://api.openai.com/v1"};mt.OpenAI=Rf;mt.DEFAULT_TIMEOUT=6e5;mt.OpenAIError=tt;mt.APIError=xn;mt.APIConnectionError=nc;mt.APIConnectionTimeoutError=df;mt.APIUserAbortError=Zn;mt.NotFoundError=nb;mt.ConflictError=rb;mt.RateLimitError=ob;mt.BadRequestError=Zv;mt.AuthenticationError=eb;mt.InternalServerError=ab;mt.PermissionDeniedError=tb;mt.UnprocessableEntityError=sb;mt.InvalidWebhookSignatureError=ja;mt.toFile=Pj;mt.Completions=eS;mt.Chat=vf;mt.Embeddings=nS;mt.Files=sS;mt.Images=uS;mt.Audio=hi;mt.Moderations=fS;mt.Models=dS;mt.FineTuning=vo;mt.Graders=Pf;mt.VectorStores=lc;mt.Webhooks=bS;mt.Beta=pi;mt.Batches=Xb;mt.Uploads=Af;mt.Responses=Mf;mt.Evals=_f;mt.Containers=xf;let tl=null,du=null;const Zj=()=>{const e=ho().trim().replace(/\/+$/,"");if(e.endsWith("/openai/v1"))return e;const t="/v1";return`${e.endsWith(t)?e.slice(0,-t.length):e}/openai/v1`},e1=()=>{const e=Zj();return tl?du!==e&&(tl=new mt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),du=e):(tl=new mt({apiKey:"local",baseURL:e,dangerouslyAllowBrowser:!0}),du=e),tl},xS=e=>{const t=e.match(/```mermaid\s*([\s\S]*?)```/i);return t?t[1].trim():e.trim()},t1=(e,t,n)=>{const r=t.trim(),s=xS(n),o=/```mermaid\s*([\s\S]*?)```/gi;let a=!1;const i=e.replace(o,(d,h)=>a||h.trim()!==r?d:(a=!0,`\`\`\`mermaid
234
+ ${s}
235
+ \`\`\``));return a?i:e.match(o)?e.replace(o,d=>a?d:(a=!0,`\`\`\`mermaid
236
+ ${s}
237
+ \`\`\``)):null},vm="_text",Nl=e=>!!(e&&e.role==="assistant"&&"type"in e&&e.type==="text"),bm=(e,t,n)=>{var s;const r=typeof((s=t.metadata)==null?void 0:s.backendMessageId)=="string"?t.metadata.backendMessageId.trim():"";if(r)return r;if(e.endsWith(vm)){const o=e.slice(0,-vm.length);if(o&&n.some(a=>a.id===o))return o}return e},n1=(e,t)=>{const n=t.trim();if(!n)return!1;const r=e.matchAll(/```mermaid\s*([\s\S]*?)```/gi);for(const s of r)if((s[1]||"").trim()===n)return!0;return!1},r1=e=>(e instanceof Error?e.message:String(e)).toLowerCase().includes("message not found"),s1=(e,t,n,r)=>{const s=e.find(o=>o.id===t);return Nl(s)?s:e.find(o=>Nl(o)&&(o.content===n||n1(o.content,r)))},o1=(e,t)=>{const n=(t??"").trim(),r=["Original Mermaid code:","```mermaid",e.trim(),"```"];return n&&r.push("","Mermaid parser/render error:",n),r.push("","Please fix the Mermaid syntax while preserving the original meaning and labels."),r.join(`
238
+ `)},a1=async(e,t,n)=>{var i,c,d;const r=t==null?void 0:t.trim();if(!r)throw new Error("No model configured. Please select a default model in Provider Settings.");const a=((d=(c=(i=(await e1().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:o1(e,n)}],temperature:0})).choices)==null?void 0:i[0])==null?void 0:c.message)==null?void 0:d.content)??"";return xS(a)},i1=(e,t)=>{const n=xT(),r=wT(),s=(r==null?void 0:r.model)??n;return b.useCallback(async(o,a)=>{const i=ae.getState(),c=t??i.currentSessionId,d=i.chats.find(T=>T.id===c);if(!c||!d)throw new Error("No active chat available");const h=d.messages.find(T=>T.id===e);if(!Nl(h))throw new Error("Mermaid fix is only available for assistant text messages");const m=await a1(o,s,a);if(!m)throw new Error("AI did not return a Mermaid fix");const g=t1(h.content,o,m);if(!g)throw new Error("Unable to locate Mermaid block to update");let y=bm(e,h,d.messages);try{await to.patchSessionMessage(c,y,{content:g})}catch(T){if(!r1(T))throw T;await i.loadChatHistory(c,{mode:"replace",retries:2,retryDelayMs:150,waitForAssistant:!0});const C=ae.getState().chats.find(I=>I.id===c);if(!C)throw T;const A=s1(C.messages,e,h.content,o);if(!A)throw T;y=bm(A.id,A,C.messages),await to.patchSessionMessage(c,y,{content:g})}const x=ae.getState(),S=x.chats.find(T=>T.id===c);if(!S)throw new Error("No active chat available");const _=new Set([e,y]),E=S.messages.map(T=>!_.has(T.id)||!Nl(T)?T:{...T,content:g});x.updateSession(c,{messages:E})},[e,t,s])},l1=e=>e.xs?"100%":e.sm?"95%":"800px",c1=[{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:"}],u1=({messageId:e,isVisible:t,onRetryWithVariation:n})=>{const{t:r}=Ge(),[s,o]=b.useState(null),[a,i]=b.useState(!1),c=b.useCallback(()=>{o(y=>y==="like"?null:"like"),i(!1)},[]),d=b.useCallback(()=>{o(y=>{const x=y==="dislike"?null:"dislike";return i(x==="dislike"),x})},[]),h=b.useCallback(y=>{n&&n(y.prefix)},[n]),g=["lotus-msg-feedback",t?"is-visible":"",s!==null?"has-rating":""].filter(Boolean).join(" ");return l.jsxs("div",{className:g,"data-message-id":e,children:[l.jsx(Sn,{title:r("feedback.helpful","Helpful"),children:l.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="like"?"is-liked":""}`,onClick:c,"aria-label":r("feedback.helpful","Helpful"),children:s==="like"?l.jsx(Jx,{}):l.jsx(Qx,{})})}),l.jsx(Sn,{title:r("feedback.notHelpful","Not helpful"),children:l.jsx("button",{type:"button",className:`lotus-msg-feedback-btn ${s==="dislike"?"is-disliked":""}`,onClick:d,"aria-label":r("feedback.notHelpful","Not helpful"),children:s==="dislike"?l.jsx(Zx,{}):l.jsx(ew,{})})}),a&&n&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"lotus-msg-feedback-sep"}),l.jsx("span",{className:"lotus-msg-feedback-retry",children:c1.map(y=>l.jsx(Ze,{color:y.color,bordered:!1,className:"lotus-msg-feedback-retry-tag",onClick:()=>h(y),children:r(y.labelKey,y.fallbackLabel)},y.key))})]})]})},{useToken:d1}=ut,{useBreakpoint:f1}=Wl,h1="chat-send-message",p1=({sessionId:e,message:t,onDelete:n,messageType:r})=>{const{role:s,id:o}=t,{token:a}=d1(),i=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:c}=Ge(),{message:d}=Dn.useApp(),h=f1(),m=ae(le=>le.updateSession),g=ae(le=>le.loadChatHistory),y=ae(le=>le.refreshChats),x=b.useRef(null),[S,_]=b.useState(!1),E=ae(li(e)),T=b.useCallback(le=>typeof window>"u"?Promise.reject(new Error("window is unavailable")):new Promise((we,Le)=>{const Ie={content:le,sessionId:e,handled:!1,resolve:we,reject:Le};window.dispatchEvent(new CustomEvent(h1,{detail:Ie})),Ie.handled||Le(new Error("No chat message dispatcher available"))}),[e]),P=b.useMemo(()=>{if(!t.createdAt)return null;const le=new Date(t.createdAt);if(Number.isNaN(le.getTime()))return null;try{return fM(le,"MMM d, yyyy HH:mm")}catch{return le.toLocaleString()}},[t.createdAt]),C=b.useMemo(()=>FR(t,r),[t,r]),A=b.useMemo(()=>NR(t,C),[t,C]),I=b.useMemo(()=>zR(t,C),[t,C]),O=b.useMemo(()=>Gv(t),[t]),$=i1(o,e),B=b.useCallback(async le=>{var we;if(!e||!o){d.warning(c("chat.messageActions.cannotRestore"));return}try{const Le=await to.restoreSessionState(e,{target_message_id:o,restore_files:le});await g(e,{mode:"replace"}),await y();const Ie=((we=Le.file_errors)==null?void 0:we.length)??0;if(Ie>0){d.warning(c("chat.messageActions.restorePartial",{count:Ie}));return}le?d.success(c("chat.messageActions.restoreFilesSuccess",{count:Le.messages_removed})):d.success(c("chat.messageActions.restoreSuccess",{count:Le.messages_removed}))}catch(Le){const Ie=Le instanceof Error?Le.message:c("chat.messageActions.restoreFailed");d.error(Ie)}},[d,e,g,o,y,c]),te=b.useCallback(()=>{B(!1)},[B]),H=b.useCallback(()=>{B(!0)},[B]),{contextMenuItems:L,handleMouseUp:Z,copyToClipboard:D,referenceMessage:F}=qR({messageText:O,messageId:o,currentSessionId:e,onDelete:n,onRestoreChat:te,onRestoreFilesAndChat:H,cardRef:x}),de=b.useMemo(()=>s==="user"&&O.startsWith("/"),[s,O]),Q=b.useMemo(()=>qv(void 0,{onFixMermaid:$}),[$]),ge=b.useMemo(()=>[Ed,Md],[]),G=b.useMemo(()=>[Pd],[]),ce=b.useMemo(()=>[bM(()=>D(O),c("chat.actions.copyMessage")),SM(F,c("chat.actions.referenceMessage"))],[O,D,F,c]),{handleExecutePlan:ve,handleRefinePlan:ue,handleQuestionAnswer:he}=HR({currentSessionId:e,updateSession:m,sendMessage:T});return C==="plan"&&A&&s==="assistant"?l.jsx(_v,{plan:A,contextId:e||"",onExecute:ve,onRefine:ue,timestamp:P??void 0}):C==="question"&&I&&s==="assistant"?l.jsx(Cv,{question:I,contextId:e||"",onAnswer:he,disabled:E||!1,timestamp:P??void 0}):CM(t)?l.jsx(jM,{taskList:t.taskList}):_M(t)?(Re("[MessageCard]","[MessageCard] Rendering FileReferenceCard for message:",t.id,"paths:",t.paths),l.jsx(Ee,{justify:"flex-end",style:{width:"100%"},children:l.jsx(kv,{paths:t.paths,displayText:t.displayText,timestamp:P??void 0})})):l.jsxs(Ee,{vertical:!0,onContextMenu:le=>Z(le),style:{width:"100%"},children:[l.jsx(ao,{menu:{items:L},trigger:["contextMenu"],children:l.jsx(en,{"data-testid":s==="assistant"?"assistant-message":"user-message",id:o?`message-${o}`:void 0,ref:x,style:{width:"100%",minWidth:"100%",maxWidth:l1(h),margin:"0 auto",background:s==="user"?"var(--lotus-message-user-bg)":s==="assistant"?"var(--lotus-message-assistant-bg)":a.colorBgContainer,backdropFilter:i?"none":"blur(14px)",WebkitBackdropFilter:i?"none":"blur(14px)",border:s==="user"?"1px solid var(--lotus-message-user-border)":"1px solid var(--lotus-glass-border-subtle)",borderRadius:a.borderRadiusLG,boxShadow:S?"var(--lotus-card-hover-shadow)":"var(--lotus-shadow-soft)",position:"relative",wordWrap:"break-word",overflowWrap:"break-word",transition:"all 0.26s cubic-bezier(0.16, 1, 0.3, 1)",transform:S?"translateY(-2px) scale(1.002)":"none",overflow:"hidden"},styles:{body:{padding:a.paddingMD}},onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1),children:l.jsxs(He,{direction:"vertical",size:a.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(LR,{role:s,formattedTimestamp:P,token:a}),t.role==="user"&&t.images&&l.jsx(mM,{images:t.images}),l.jsx(Ee,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:l.jsx($R,{sessionId:e,message:t,messageText:O,isUserToolCall:de,formatUserToolCall:BR,markdownComponents:Q,markdownPlugins:ge,rehypePlugins:G})}),l.jsx(vM,{isVisible:S,position:{bottom:a.paddingXS,right:a.paddingXS},buttons:ce})]})})}),s==="assistant"&&C==="text"&&o&&l.jsx(u1,{messageId:o,isVisible:S})]})},wS=b.memo(p1,(e,t)=>e.message===t.message&&e.messageType===t.messageType&&e.onDelete===t.onDelete);wS.displayName="MessageCard";const m1=({key:e,atomFamily:t,store:n,emptyState:r})=>{const s=b.useMemo(()=>e?t(e):null,[t,e]),[o,a]=b.useState(()=>El(n,t,e,r));return b.useEffect(()=>{if(a(El(n,t,e,r)),!s||!e)return;let i=null,c=n.get(s);const d=n.sub(s,()=>{c=n.get(s),i===null&&(i=requestAnimationFrame(()=>{a(c),i=null}))});return()=>{d(),i!==null&&cancelAnimationFrame(i)}},[t,r,e,s,n]),o},g1=e=>{const t=tr(e);return m1({key:t,atomFamily:mo,store:po,emptyState:Kl})},{Text:Xa}=ft,{useToken:y1}=ut,Ba=8,fu=4,v1=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"]),b1=(e,t)=>l.jsx(en,{size:"small",styles:{body:{padding:0}},style:{position:"relative",maxWidth:"100%",overflow:"auto",marginBottom:Ba,background:t.colorBgContainer,borderColor:t.colorBorder},children:l.jsx("pre",{style:{margin:0,padding:t.paddingSM,background:t.colorBgContainer,color:t.colorText,borderRadius:t.borderRadiusSM,fontSize:t.fontSizeSM,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:l.jsx("code",{style:{color:t.colorText},children:e})})}),S1=e=>({p:({children:t})=>l.jsx(Xa,{style:{marginBottom:Ba,display:"block"},children:t}),ol:({children:t})=>l.jsx("ol",{style:{marginBottom:Ba,paddingLeft:20},children:t}),ul:({children:t})=>l.jsx("ul",{style:{marginBottom:Ba,paddingLeft:20},children:t}),li:({children:t})=>l.jsx("li",{style:{marginBottom:fu},children:t}),code({className:t,children:n,inline:r,...s}){const o=/language-([^\s]+)/i.exec(t||""),a=o?o[1]:"",i=r??(!o&&!t),c=n?String(n).replace(/\n$/,""):"";if(i)return l.jsx(Xa,{code:!0,className:t,...s,children:n});if(!c.trim())return null;const d=a.toLowerCase();return v1.has(d)?b1(c,e):Wv(a,c,void 0,void 0)},pre:({children:t})=>l.jsx(l.Fragment,{children:t}),blockquote:({children:t})=>l.jsx(en,{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:t}),a:({children:t,href:n})=>{const r=typeof n=="string"?n.trim():"";return r?l.jsx("a",{href:r,target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),Uv(r)},style:{color:"var(--ant-color-link, #0d9488)",textDecoration:"underline",overflowWrap:"anywhere"},children:t}):l.jsx(l.Fragment,{children:t})},table:({children:t})=>l.jsx(en,{size:"small",styles:{body:{padding:0}},style:{overflow:"auto",margin:`${Ba}px 0`},children:l.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:"1px solid var(--ant-color-border, #d9d9d9)"},children:t})}),thead:({children:t})=>l.jsx("thead",{style:{backgroundColor:"var(--ant-color-bg-container, #ffffff)"},children:t}),tbody:({children:t})=>l.jsx("tbody",{children:t}),tr:({children:t})=>l.jsx("tr",{style:{borderBottom:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),th:({children:t})=>l.jsx("th",{style:{padding:"4px 8px",textAlign:"left",fontWeight:"bold",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),td:({children:t})=>l.jsx("td",{style:{padding:"4px 8px",borderRight:"1px solid var(--ant-color-border, #d9d9d9)"},children:t}),input:({type:t,checked:n,disabled:r})=>t==="checkbox"?l.jsx("input",{type:"checkbox",checked:n,disabled:r,style:{marginRight:fu,accentColor:"var(--ant-color-primary, #0d9488)"},readOnly:!0}):l.jsx("input",{type:t,checked:n,disabled:r})}),_S=b.memo(({sessionId:e})=>{const{token:t}=y1(),n=typeof document<"u"&&document.body.getAttribute("data-vdi-safe")==="true",{t:r}=Ge(),s=`streaming-status-${e}`,o=g1(e),a=o.content,i=o.reasoningContent,[c,d]=b.useState(()=>zt.getLatest(s)??"");b.useEffect(()=>{let x=null,S=null;const _=zt.subscribeMessage(s,E=>{S=E,x===null&&(x=requestAnimationFrame(()=>{d(S??""),x=null}))});return()=>{_(),x!==null&&cancelAnimationFrame(x)}},[s]);const h=b.useMemo(()=>{const x=c.trim().toLowerCase();if(!x)return r("chat.messageCard.assistantThinking");if(x==="context_compacting")return r("chat.messageCard.assistantCompactingContext");if(x==="context_compaction_degraded")return r("chat.messageCard.assistantCompactingContextDegraded");if(x==="context_compaction_failed")return r("chat.messageCard.assistantCompactingContextFailed");if(x==="memory_updating")return r("chat.messageCard.assistantUpdatingMemory");if(x.startsWith("tool_running:")){const _=(x.slice(13).trim()||"tool").replace(/[_-]+/g," ");return r("chat.messageCard.assistantRunningTool",{tool:_})}return r("chat.messageCard.assistantThinking")},[c,r]),m=b.useMemo(()=>[Ed,Md],[]),g=b.useMemo(()=>[Pd],[]),y=b.useMemo(()=>S1(t),[t]);return l.jsx(en,{"data-testid":"streaming-indicator",role:"status","aria-live":"polite","aria-busy":!0,"aria-label":r("chat.view.aiRespondingAria"),style:{width:"100%",minWidth:"100%",maxWidth:"800px",margin:"0 auto",background:"var(--lotus-message-streaming-bg)",backdropFilter:n?"none":"blur(14px)",WebkitBackdropFilter:n?"none":"blur(14px)",borderRadius:t.borderRadiusLG,boxShadow:"none",position:"relative",wordWrap:"break-word",overflowWrap:"break-word"},children:l.jsxs(He,{direction:"vertical",size:t.marginXS,style:{width:"100%",maxWidth:"100%"},children:[l.jsx(Ee,{align:"baseline",justify:"space-between",gap:t.marginXS,children:l.jsx(Xa,{type:"secondary",strong:!0,style:{fontSize:t.fontSizeSM},children:r("chat.streaming.assistant")})}),l.jsxs(Ee,{vertical:!0,style:{width:"100%",maxWidth:"100%"},children:[i?l.jsx(fo,{size:"small",defaultActiveKey:["reasoning"],style:{marginBottom:t.marginSM,background:t.colorBgContainer,borderColor:t.colorBorderSecondary},items:[{key:"reasoning",label:l.jsx(Xa,{strong:!0,children:r("chat.messageCard.reasoning")}),children:l.jsx(xr,{remarkPlugins:m,rehypePlugins:g,components:y,children:i})}]}):null,!a||c?l.jsx(Xa,{italic:!0,className:"thinking-shimmer",children:h}):null,a?l.jsx(xr,{remarkPlugins:m,rehypePlugins:g,components:y,children:a}):null,l.jsx("span",{className:"blinking-cursor",style:{display:"inline-block",marginLeft:"0.2em",color:t.colorText}})]})]})})});_S.displayName="StreamingMessageCard";const{Text:nl}=ft,x1="chat-session-tool-collapse:",CS=(e,t)=>`${x1}${e}:${t}`,Sm=(e,t)=>{if(typeof window>"u")return null;try{const n=window.localStorage.getItem(CS(e,t));if(!n)return null;const r=JSON.parse(n);return!r||typeof r!="object"?null:{isExpanded:"isExpanded"in r&&typeof r.isExpanded=="boolean"?r.isExpanded:!0,expandedTools:[]}}catch{return null}},w1=async(e,t,n)=>{if(typeof window>"u")return;await Yn.getInstance().saveToolSessionCollapse(e,t,n);try{window.localStorage.setItem(CS(e,t),JSON.stringify(n))}catch{}},_1="synthetic-tool-call:",C1=e=>{var n,r,s,o;const t=new Set;return(n=e.callMessageId)!=null&&n.trim()?t.add(e.callMessageId.trim()):e.call.id&&!e.call.id.includes(":")&&!e.call.id.startsWith(_1)&&t.add(e.call.id),(r=e.resultMessageId)!=null&&r.trim()?t.add(e.resultMessageId.trim()):(o=(s=e.result)==null?void 0:s.id)!=null&&o.trim()&&t.add(e.result.id.trim()),Array.from(t)},k1=e=>{const t=new Set;return e.forEach(n=>{C1(n).forEach(r=>t.add(r))}),Array.from(t)},T1=({tools:e,sessionId:t,defaultExpanded:n=!1,autoCollapseWhenStale:r=!1,onDeleteMessageIds:s})=>{const{t:o}=Ge(),{token:a}=ut.useToken(),i=b.useMemo(()=>{var O,$,B,te;const C=e[0],A=($=(O=C==null?void 0:C.call)==null?void 0:O.toolCalls)==null?void 0:$[0];return`${(C==null?void 0:C.callMessageId)||((B=C==null?void 0:C.call)==null?void 0:B.id)||(C==null?void 0:C.resultMessageId)||((te=C==null?void 0:C.result)==null?void 0:te.id)||"tool-message-missing"}:${(A==null?void 0:A.toolCallId)||"tool-call-missing"}`},[e]),[c,d]=b.useState(()=>{const C=Sm(t,i);return C?C.isExpanded:n});b.useEffect(()=>{const C=Sm(t,i);d(C?C.isExpanded:n),Yn.getInstance().loadToolSessionCollapse(t,i).then(I=>{I&&d(I.isExpanded)}).catch(()=>{})},[n,t,i]),b.useEffect(()=>{w1(t,i,{isExpanded:c,expandedTools:[]}).catch(()=>{})},[t,i,c]);const h=b.useRef(r);b.useEffect(()=>{!h.current&&r&&d(!1),h.current=r},[r]);const{completedCount:m,pendingCount:g,hasErrors:y}=b.useMemo(()=>{let C=0,A=0,I=!1;return e.forEach(O=>{O.result?(C++,O.result.isError&&(I=!0)):A++}),{completedCount:C,pendingCount:A,hasErrors:I}},[e]),x=b.useMemo(()=>g>0?{color:"processing",text:o("components.toolSession.completedProgress",{completed:m,total:e.length})}:y?{color:"warning",text:o("components.toolSession.completedWithErrors",{completed:m})}:{color:"success",text:o("components.toolSession.completedOnly",{completed:m})},[m,g,y,e.length,o]),S=b.useMemo(()=>{let C=0,A=0,I=0;return e.forEach(O=>{var te,H;const $=(H=(te=O.result)==null?void 0:te.result)==null?void 0:H.result;if(!$)return;const B=rf($);B&&(C+=B.added,A+=B.removed,I+=1)}),{added:C,removed:A,changedTools:I}},[e]),_=b.useMemo(()=>{const C=e.map(O=>{var te,H;const $=(H=(te=O.call)==null?void 0:te.toolCalls)==null?void 0:H[0];if(!$)return null;const B=go($.toolName);return B?B.toolName:$.toolName||null}).filter(O=>!!O);if(C.length===0)return o("components.toolSession.title");if(C.length===1)return C[0];const A=C.filter((O,$)=>$===0||O!==C[$-1]),I=3;return A.length<=I?A.join(" → "):`${A.slice(0,I).join(" → ")} +${A.length-I}`},[e,o]),E=b.useMemo(()=>k1(e),[e]),T=l.jsx(cf,{sessionId:t,tools:e,defaultExpanded:!0,hideHeader:!0}),P={background:"transparent"};return l.jsxs("div",{style:P,children:[l.jsxs("div",{style:{padding:`${a.paddingXS}px 0`,backgroundColor:"transparent",borderBottom:"none",cursor:"pointer",display:"flex",alignItems:"center",gap:a.marginSM,transition:"border-color 240ms ease, background-color 240ms ease"},onClick:()=>d(!c),"data-testid":"tool-session-card-header",children:[l.jsx(Id,{style:{color:a.colorPrimary}}),l.jsx(nl,{strong:!0,style:{flex:1},children:_}),l.jsx(tw,{count:e.length,style:{backgroundColor:a.colorPrimary}}),S.changedTools>0&&l.jsxs(He,{size:4,style:{marginInlineStart:a.marginXS},children:[l.jsxs(nl,{style:{color:a.colorSuccess,fontSize:a.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["+",S.added]}),l.jsxs(nl,{style:{color:a.colorError,fontSize:a.fontSizeSM,fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:["-",S.removed]})]}),l.jsx(nl,{type:"secondary",style:{fontSize:a.fontSizeSM},children:x.text}),s&&l.jsx(Sn,{title:E.length>0?o("components.toolSession.deleteMessage"):o("components.toolSession.noPersistedMessage"),children:l.jsx(je,{type:"text",size:"small",danger:!0,icon:l.jsx(zl,{}),"aria-label":o("components.toolSession.deleteMessage"),"data-testid":"delete-tool-session",disabled:E.length===0,onClick:C=>{C.preventDefault(),C.stopPropagation(),E.length!==0&&s(E)}})}),l.jsx("div",{style:{marginLeft:a.marginXS},children:c?l.jsx(ks,{style:{color:a.colorTextSecondary}}):l.jsx(Jr,{style:{color:a.colorTextSecondary}})})]}),c&&T]})},kS=b.memo(T1);kS.displayName="ToolSessionCard";const{Content:P1}=Js,{Text:xm}=ft,wm=120,E1=140,M1=220,A1=140,R1=72,_m=68,j1=84,I1=720,O1=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})};function Cm(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:e.message.id}function $1(e,t){const n=e[t];if(!n)return wm;if("type"in n){if(n.type==="compression_divider")return R1;if(n.type==="tool_session"){if(!(t===e.length-1))return _m;const o=_m+Math.min(n.tools.length,8)*j1;return Math.min(I1,o)}}const r="message"in n?n.message:void 0;return r?r.role==="system"?A1:r.role==="user"?E1:M1:wm}const L1=({currentChat:e,currentSessionId:t,convertRenderableEntry:n,handleDeleteMessage:r,handleDeleteToolMessages:s,handleMessagesScroll:o,hasSystemPrompt:a,messagesListRef:i,bottomAnchorRef:c,renderableMessages:d,rowGap:h,showMessagesView:m,screens:g,workflowDraftId:y,isThinking:x,padding:S,selectionMode:_,selectedMessageIds:E,selectableMessageIds:T,onToggleMessageSelection:P})=>{const{t:C}=Ge(),A=b.useRef(d);A.current=d;const I=b.useCallback(Z=>{const D=A.current[Z];return D?Cm(D):String(Z)},[]),O=b.useCallback(Z=>$1(A.current,Z),[]),$=QP({count:d.length,getScrollElement:()=>i.current,estimateSize:O,overscan:5,gap:h,getItemKey:I}),B=(Z,D)=>{if(!_)return null;const F=T.has(Z);return l.jsx(nw,{checked:E.has(Z),disabled:!F,onChange:()=>{F&&P(Z)},style:{marginTop:8,marginLeft:D==="flex-end"?8:0,marginRight:D==="flex-start"?8:0}})},te=(Z,D)=>{const F=n(Z),de=D===void 0||D===d.length-1;if(F.type==="compression_divider"){const Q=O1(F.createdAt);return l.jsx("div",{role:"note","aria-label":C("chat.compression.timelineAria",{detail:F.label,time:Q,defaultValue:"{{detail}} at {{time}}"}),style:{margin:"6px 0 10px 0",borderRadius:10,border:"1px solid rgba(250, 173, 20, 0.45)",background:"rgba(250, 173, 20, 0.12)",padding:g.xs?"8px 10px":"10px 12px"},children:l.jsxs(Ee,{align:"center",justify:"space-between",gap:8,wrap:!0,children:[l.jsxs(Ee,{align:"center",gap:8,wrap:!0,children:[l.jsx(Ze,{color:"gold",icon:l.jsx(ny,{}),children:C("chat.compression.tag","Context compressed")}),l.jsx(xm,{strong:!0,style:{fontSize:12},children:F.label})]}),l.jsx(xm,{type:"secondary",style:{fontSize:11},children:Q})]})})}return F.type==="tool_session"?l.jsx(Ee,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{id:`message-${F.id}`,style:{width:"100%",maxWidth:g.xs?"100%":"90%"},children:l.jsx(kS,{tools:F.tools,sessionId:F.sessionId,createdAt:F.createdAt,defaultExpanded:de,autoCollapseWhenStale:!de,onDeleteMessageIds:t?s:void 0})})}):F.message.role==="system"?l.jsxs(Ee,{align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[B(F.message.id,"flex-start"),l.jsx("div",{style:{flex:1,minWidth:0},children:l.jsx(yv,{currentChat:e,message:F.message})})]}):l.jsxs(Ee,{justify:F.align,align:"flex-start",style:{width:"100%",maxWidth:"100%"},children:[F.align==="flex-start"&&B(F.message.id,F.align),l.jsx("div",{style:{width:F.message.role==="user"?"85%":"100%",maxWidth:g.xs?"100%":"90%"},children:l.jsx(wS,{sessionId:t,message:F.message,messageType:F.messageType,onDelete:F.message.id===y?void 0:r})}),F.align==="flex-end"&&B(F.message.id,F.align)]})},H=(m||a)&&d.length>0,L=$.getVirtualItems();return l.jsx(P1,{role:"log","aria-live":"polite","aria-label":C("chat.view.chatMessagesAria"),className:`chat-view-messages-list ${m?"visible":"hidden"}`,style:{flex:1,minHeight:0,padding:S,overflowY:"auto",opacity:m?1:0,scrollbarWidth:"none",msOverflowStyle:"none"},ref:i,onScroll:o,children:l.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:h,width:"100%",minHeight:"100%"},children:[H&&l.jsx("div",{style:{position:"relative",width:"100%",height:$.getTotalSize()},children:L.map(Z=>{const D=d[Z.index];if(!D)return null;const F=Cm(D);return l.jsx("div",{"data-chat-entry-id":F,"data-index":Z.index,ref:$.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${Z.start}px)`},children:l.jsx("div",{className:"messageEnter",children:te(D,Z.index)})},Z.key)})}),x&&t&&l.jsx("div",{className:"streaming-card-enter",children:l.jsx(Ee,{justify:"flex-start",style:{width:"100%",maxWidth:"100%"},children:l.jsx("div",{style:{width:"100%",maxWidth:g.xs?"100%":"90%"},children:l.jsx(_S,{sessionId:t})})})}),l.jsx("div",{ref:c,"data-chat-bottom-anchor":"true","aria-hidden":"true",style:{width:"100%",height:1,flexShrink:0}})]})})},D1={green:{backgroundColor:"rgba(82, 196, 26, 0.12)",borderColor:"rgba(82, 196, 26, 0.28)",color:"#389e0d"},blue:{backgroundColor:"rgba(22, 119, 255, 0.12)",borderColor:"rgba(22, 119, 255, 0.28)",color:"#1677ff"},purple:{backgroundColor:"rgba(114, 46, 209, 0.12)",borderColor:"rgba(114, 46, 209, 0.28)",color:"#722ed1"}},F1=({label:e,tone:t})=>{const n=D1[t];return l.jsx("span",{style:{display:"inline-flex",alignItems:"center",padding:"1px 6px",borderRadius:999,fontSize:10,lineHeight:1.4,fontWeight:600,whiteSpace:"nowrap",backgroundColor:n.backgroundColor,border:`1px solid ${n.borderColor}`,color:n.color},children:e})},N1=({usage:e,showDetails:t=!0,size:n="small",className:r=""})=>{const{t:s}=Ge(),o=my(e),a=gy(e),i=S_(e),c=e.promptCachedToolOutputs??0,d=e.promptCachedToolTokensSaved??0,h=e.thinkingTokens??0,m=e.cacheReadInputTokens??0,g=c>0||d>0,y=h>0||m>0,x=P=>{const C=Math.round(P*10)/10;return Number.isInteger(C)?C.toFixed(0):C.toFixed(1)},S=()=>a>=90?"var(--lotus-chart-danger)":a>=70?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",_=[];d>0&&_.push({key:"prompt-saved",label:s("components.tokenUsage.promptSavedBadge",{value:Dc(d)}),tone:"green"}),m>0&&_.push({key:"cache-read",label:s("components.tokenUsage.cacheReadBadge",{value:Dc(m)}),tone:"blue"}),h>0&&_.push({key:"thinking",label:s("components.tokenUsage.thinkingBadge",{value:Dc(h)}),tone:"purple"});const E={marginTop:8,marginBottom:4,fontSize:11,fontWeight:700,color:"var(--lotus-metric-text-muted)"},T=l.jsxs("div",{style:{minWidth:220,color:"var(--lotus-metric-text-strong)"},children:[l.jsx("div",{style:{marginBottom:4,fontWeight:"bold"},children:s("components.tokenUsage.title")}),l.jsxs("div",{style:{fontSize:12},children:[s("components.tokenUsage.contextWindow"),": ",Fr(e.totalTokens)," /"," ",Fr(o)," ",s("components.tokenUsage.tokens")]}),l.jsx("div",{style:{fontSize:12,color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.usedPercent",{value:a.toFixed(1)})}),t&&l.jsxs("div",{style:{marginTop:6,borderTop:"1px solid var(--lotus-metric-tooltip-border)",paddingTop:6,fontSize:11},children:[l.jsx("div",{style:E,children:s("components.tokenUsage.contextPrepared")}),l.jsxs("div",{children:[s("components.tokenUsage.system"),": ",Fr(e.systemTokens)]}),e.summaryTokens>0&&l.jsxs("div",{children:[s("components.tokenUsage.summary"),": ",Fr(e.summaryTokens)]}),l.jsxs("div",{children:[s("components.tokenUsage.messages"),": ",Fr(e.windowTokens)]}),g?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:E,children:s("components.tokenUsage.promptCacheTitle")}),c>0&&l.jsx("div",{style:{color:"var(--lotus-metric-text-muted)"},children:s("components.tokenUsage.cachedToolOutputs",{count:c})}),d>0&&l.jsxs("div",{style:{color:"var(--lotus-metric-text-muted)"},children:[s("components.tokenUsage.promptSaved"),":"," ",Fr(d)]})]}):null,y?l.jsxs(l.Fragment,{children:[l.jsx("div",{style:E,children:s("components.tokenUsage.providerResult")}),m>0&&l.jsxs("div",{children:[s("components.tokenUsage.cacheRead"),": ",Fr(m)]}),h>0&&l.jsxs("div",{children:[s("components.tokenUsage.thinking"),": ",Fr(h)]})]}):null]})]});return l.jsx(Sn,{title:T,placement:"top",arrow:!0,children:l.jsxs(He,{className:`token-usage-display ${r}`,size:4,align:"center",style:{lineHeight:1},children:[l.jsx(ty,{type:"line",percent:Math.min(a,100),size:{height:n==="small"?6:8,width:80},strokeColor:S(),showInfo:!1,style:{margin:0,lineHeight:1}}),l.jsxs("span",{style:{fontSize:n==="small"?11:12,color:i==="error"?"var(--lotus-chart-danger)":i==="warning"?"var(--lotus-chart-accent)":"var(--lotus-chart-secondary)",whiteSpace:"nowrap",fontWeight:600},children:[x(a),"%"]}),_.map(P=>l.jsx(F1,{label:P.label,tone:P.tone},P.key))]})})},bd="chat_scroll_anchors_v1",TS="chat_scroll_anchor_v2:";function PS(e){if(!e||typeof e!="object")return!1;const t=e;return t.v===1&&typeof t.anchorId=="string"&&typeof t.offsetPx=="number"&&typeof t.ts=="number"}function z1(){try{const e=localStorage.getItem(bd);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object")return{};const n={};for(const[r,s]of Object.entries(t))PS(s)&&(n[r]=s);return n}catch{return{}}}function B1(e){const t=z1(),n=t[e];if(!n)return null;Yn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),delete t[e];const s=Object.keys(t).length;try{s===0?localStorage.removeItem(bd):localStorage.setItem(bd,JSON.stringify(t))}catch{}return n}async function W1(e){if(typeof window>"u")return null;try{const n=await Yn.getInstance().loadScrollAnchor(e);if(n)return n}catch{}try{const t=localStorage.getItem(`${TS}${e}`);if(t){const n=JSON.parse(t);if(PS(n))return Yn.getInstance().saveScrollAnchor(e,n).catch(()=>{}),n}}catch{}return B1(e)}async function U1(e,t){if(!(typeof window>"u")){try{await Yn.getInstance().saveScrollAnchor(e,t)}catch(n){console.warn("[ScrollAnchor] IndexedDB save failed:",n)}try{localStorage.setItem(`${TS}${e}`,JSON.stringify(t))}catch{}}}const hu=1,q1=3,H1=2e3;function Y1(e,t){const n=Math.max(0,e.scrollHeight-e.clientHeight);return Math.min(Math.max(0,t),n)}function K1(e){const{scrollEl:t,getAnchorElement:n,offsetPx:r,isCancelled:s}=e;return new Promise(o=>{const a=performance.now();let i=0,c=-1,d=Number.NaN;const h=()=>{if(s()){o();return}const m=n();if(!m){requestAnimationFrame(h);return}const g=t.getBoundingClientRect(),x=m.getBoundingClientRect().top-g.top,S=Y1(t,t.scrollTop+(x-r));if(Math.abs(t.scrollTop-S)>hu)t.scrollTop=S,i=0;else{const E=Number.isFinite(d)?Math.abs(S-d)<=hu:!1,T=Math.abs(t.scrollTop-c)<=hu;i=E&&T?i+1:0}d=S,c=t.scrollTop;const _=performance.now()-a>H1;if(i>=q1||_){o();return}requestAnimationFrame(h)};requestAnimationFrame(h)})}const X1=300,V1=.5;function G1(e){return"type"in e&&(e.type==="tool_session"||e.type==="compression_divider")?e.id:"message"in e&&e.message?e.message.id:null}function ES(e){if("type"in e&&(e.type==="tool_session"||e.type==="compression_divider"))return e.createdAt;if("message"in e&&e.message)return e.message.createdAt}function km(e){if(!e)return null;const t=Date.parse(e);return Number.isFinite(t)?t:null}function J1(e,t){const n=km(e.createdAt);if(n!=null){let r=null,s=Number.POSITIVE_INFINITY;for(let o=0;o<t.length;o++){const a=km(ES(t[o]));if(a==null)continue;const i=Math.abs(a-n);i<s&&(s=i,r=o)}if(r!=null)return r}if(typeof e.indexHint=="number"){const r=Math.max(0,Math.min(t.length-1,e.indexHint));return Number.isFinite(r)?r:null}return null}function jf(e){return Array.from(e.querySelectorAll("[data-chat-entry-id]"))}function Q1(e,t){const n=jf(e);for(const r of n)if(r.dataset.chatEntryId===t)return r;return null}function Z1(e,t){const n=jf(e);if(n.length===0)return null;const r=Math.max(0,Math.min(n.length-1,t));return n[r]??null}function eI(e){const t=jf(e);if(t.length===0)return null;const n=e.getBoundingClientRect().top;for(const r of t)if(r.getBoundingClientRect().bottom>n)return r;return t[t.length-1]??null}function tI(e){const{currentSessionId:t,messagesListRef:n,renderableMessages:r}=e,s=b.useRef(new Set),o=b.useRef(!1),a=b.useRef(0),i=b.useRef(null),c=b.useRef(null),d=b.useRef(!1);b.useEffect(()=>{const x=n.current;if(!x)return;const S=()=>{d.current=!0};return x.addEventListener("wheel",S,{passive:!0}),x.addEventListener("touchmove",S,{passive:!0}),x.addEventListener("pointerdown",S),()=>{x.removeEventListener("wheel",S),x.removeEventListener("touchmove",S),x.removeEventListener("pointerdown",S)}},[n]);const h=b.useMemo(()=>{const x=new Map;for(let S=0;S<r.length;S++){const _=G1(r[S]);_&&x.set(_,S)}return x},[r]),m=b.useCallback(()=>{const x=n.current;if(!x||r.length===0)return null;const S=eI(x);if(!S)return null;const _=S.dataset.chatEntryId;if(!_)return null;const E=x.getBoundingClientRect(),T=S.getBoundingClientRect(),P=h.get(_),C=typeof P=="number"?r[P]:void 0;return{v:1,anchorId:_,offsetPx:T.top-E.top,ts:Date.now(),indexHint:P,createdAt:C?ES(C):void 0}},[h,n,r]),g=b.useCallback(async x=>{if(o.current)return;const S=m();if(!S)return;const _=c.current;_&&_.anchorId===S.anchorId&&Math.abs(_.offsetPx-S.offsetPx)<=V1||(await U1(x,S),c.current=S)},[m]),y=b.useCallback(x=>{if(!t||o.current)return;i.current&&clearTimeout(i.current);const S=t;i.current=setTimeout(()=>{g(S).catch(()=>{})},X1)},[t,g]);return b.useEffect(()=>{const x=t;return()=>{x&&(i.current&&(clearTimeout(i.current),i.current=null),g(x).catch(()=>{}))}},[t,g]),b.useLayoutEffect(()=>{if(!t)return;const x=n.current;if(!x||r.length===0||s.current.has(t))return;let S=!1;return W1(t).then(_=>{if(S||!_){S||s.current.add(t);return}const E=h.get(_.anchorId),T=typeof E=="number"?E:J1(_,r);if(T==null){s.current.add(t);return}i.current&&(clearTimeout(i.current),i.current=null);const P=++a.current;o.current=!0,d.current=!1,x.style.overflowAnchor="none";const C=()=>a.current!==P||d.current;K1({scrollEl:x,getAnchorElement:()=>Q1(x,_.anchorId)??Z1(x,T),offsetPx:_.offsetPx,isCancelled:C}).finally(()=>{a.current===P&&(o.current=!1,s.current.add(t),x.style.overflowAnchor="",g(t).catch(()=>{}))})}),()=>{S=!0}},[t,h,r,r.length,n,g]),{handleScroll:y}}const Tm=2,Pm=6,pu=150,nI="streaming-",rI="streaming-reasoning-",sI="streaming-status-",oI=e=>e.startsWith(nI)&&!e.startsWith(rI)&&!e.startsWith(sI),aI=({currentSessionId:e,isThinking:t,messagesListRef:n,bottomAnchorRef:r,renderableMessages:s})=>{const[o,a]=b.useState(!1),[i,c]=b.useState(!1),[d,h]=b.useState(!1),[m,g]=b.useState(0),y=b.useRef(!1),x=b.useRef(!1),S=b.useRef(!0),_=b.useRef(s.length),E=b.useRef(new Set),T=b.useRef(0),{handleScroll:P}=tI({currentSessionId:e,messagesListRef:n,renderableMessages:s}),C=b.useCallback(()=>{E.current.clear(),h(!1),g(0)},[]),A=b.useCallback(L=>{if(L<=0)return 0;const Z=E.current;if(Z.size===0)return L;let D=L;for(const F of Array.from(Z)){if(D<=0)break;Z.delete(F),D-=1}return D},[]),I=b.useCallback(()=>{const L=n.current;if(!L||s.length===0)return a(!1),c(!1),C(),null;const Z=Math.max(0,L.scrollHeight-L.scrollTop-L.clientHeight),D=Z<=pu,F=L.scrollTop<=pu;return a(!D),c(!F&&s.length>3),D&&(x.current=!0,C()),{atBottom:D,distanceFromBottom:Z}},[C,n,s.length]),O=b.useCallback(L=>{const Z=I();Z&&(Z.distanceFromBottom>pu?(y.current=!0,x.current=!1):Z.atBottom&&(y.current=!1,x.current=!0,C()),P(L))},[C,I,P]),$=b.useCallback(L=>{cancelAnimationFrame(T.current);const Z=n.current,D=r.current;if(!Z||!D||s.length===0)return;const F=(L==null?void 0:L.behavior)??"smooth";let de=0,Q=Number.NaN;const ge=()=>{T.current=0,y.current=!1,x.current=!0,C(),I()},G=()=>{const ce=n.current,ve=r.current;if(!ce||!ve)return;const ue=Math.max(0,ce.scrollHeight-ce.scrollTop-ce.clientHeight),he=ve.getBoundingClientRect(),le=ce.getBoundingClientRect(),we=he.top-le.top,Le=!Number.isFinite(Q)||Math.abs(we-Q)>.5,Ie=ue>Tm||Le||de===0;if(Ie&&ve.scrollIntoView({block:"end",behavior:de===0?F:"auto"}),Q=we,de+=1,de<Pm&&Ie){T.current=requestAnimationFrame(G);return}ge()};T.current=requestAnimationFrame(G)},[r,C,n,I,s.length]),B=b.useCallback(()=>{if(!n.current)return;let Z=0;const D=()=>{I()},F=()=>{const de=n.current;if(!de)return;const Q=de.scrollTop>Tm||Z===0;if(Q&&de.scrollTo({top:0,behavior:"auto"}),Z+=1,Z<Pm&&Q){requestAnimationFrame(F);return}D()};requestAnimationFrame(F)},[n,I]),te=b.useCallback(()=>{y.current=!1,x.current=!0,C()},[C]);b.useEffect(()=>{const L=Z=>{var ue,he;const F=(ue=Z.detail)==null?void 0:ue.messageId;if(!F){console.error("No messageId provided for navigation");return}const de=s.findIndex(le=>"message"in le&&le.message?le.message.id===F:"id"in le?le.id===F:!1);if(de===-1){console.warn("Message not found for navigation:",F);return}const Q=s[de],ge=Q&&"message"in Q?Q.message.id:Q&&"id"in Q?Q.id:F,G=document.getElementById(`message-${ge}`),ce=Array.from(((he=n.current)==null?void 0:he.querySelectorAll("[data-chat-entry-id]"))||[]),ve=G||ce.find(le=>le.dataset.chatEntryId===ge);if(!ve){console.warn("Message element not found for navigation:",F);return}ve.scrollIntoView({behavior:"smooth",block:"center"}),ve.classList.add("highlight-message"),setTimeout(()=>{ve.classList.remove("highlight-message")},2e3)};return window.addEventListener("navigate-to-message",L),()=>{window.removeEventListener("navigate-to-message",L)}},[n,s]);const H=b.useRef(t);return b.useEffect(()=>{!H.current&&t&&(te(),$()),H.current=t},[t,te,$]),b.useEffect(()=>zt.subscribe(L=>{var Z;if(L.sessionId===e){if(y.current){(((Z=L.content)==null?void 0:Z.trim())??"")&&oI(L.messageId)&&(E.current.has(L.messageId)||(E.current.add(L.messageId),g(F=>F+1)),h(!0)),I();return}if(!L.content){I();return}$()}}),[e,I,$]),b.useEffect(()=>{const L=s.length,Z=_.current,D=L>Z;if(L===0){C(),I(),_.current=L;return}if(S.current){I(),S.current=!1,_.current=L;return}if(D&&y.current){const F=A(L-Z);h(!0),F>0&&g(de=>de+F)}!y.current&&D?$():I(),_.current=L},[C,A,I,s.length,$]),b.useEffect(()=>{const L=n.current;if(!L||typeof ResizeObserver>"u")return;let Z=0,D=!1;const F=()=>{cancelAnimationFrame(Z);const G=x.current;Z=requestAnimationFrame(()=>{if(D&&G&&!y.current){$({behavior:"auto"});return}I()})},de=new ResizeObserver(()=>{D=!0,F()});de.observe(L);const Q=L.firstElementChild;Q instanceof HTMLElement&&de.observe(Q);const ge=r.current;return ge instanceof HTMLElement&&de.observe(ge),F(),()=>{cancelAnimationFrame(Z),de.disconnect()}},[r,e,n,I,s.length,$]),b.useEffect(()=>{if(!n.current||s.length===0){I();return}I();let Z=0;const D=requestAnimationFrame(()=>{I(),Z=requestAnimationFrame(()=>{I()})});return()=>{cancelAnimationFrame(D),cancelAnimationFrame(Z)}},[n,s.length,e,I]),b.useEffect(()=>{S.current=!0,y.current=!1,x.current=!1,_.current=0,C()},[C,e]),{handleMessagesScroll:O,hasUnreadActivity:d,resetUserScroll:te,scrollToBottom:$,scrollToTop:B,showScrollToBottom:o,showScrollToTop:i,unreadCount:m}};function iI(e){return"type"in e&&e.type==="tool_session"}function lI(e){return"type"in e&&e.type==="compression_divider"}const Em=e=>{const t=Date.parse(e||"");return Number.isFinite(t)?t:Number.MAX_SAFE_INTEGER},cI=e=>"type"in e?e.createdAt:e.message.createdAt,uI=e=>!("type"in e)&&e.message.role==="system";function dI(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_call"}function fI(e){return e.role==="assistant"&&"type"in e&&e.type==="tool_result"}const Mm=e=>(e??"").trim().toLowerCase()==="conclusion",hI=e=>{const t=(e??"").trim().toLowerCase();return t==="conclusion_with_options"||t==="exitplanmode"||t==="request_permissions"},pI=e=>{var t,n,r;return((n=(t=e.call.toolCalls)==null?void 0:t[0])==null?void 0:n.toolCallId)||((r=e.result)==null?void 0:r.toolCallId)||"tool-call-missing"},mI=(e,t)=>{var n;return e.call.id||e.callMessageId||e.resultMessageId||((n=e.result)==null?void 0:n.id)||`tool-message-missing-${t}`},gI=(e,t)=>`tool-session-${mI(e,t)}:${pI(e)}`;function yI(e){const t=[],n=new Map,r=new Set,s=(a,i)=>{const c=n.get(a)||[];c.push(i),n.set(a,c)},o=a=>{const i=n.get(a);if(!i||i.length===0)return;let c;for(;i.length>0&&!c;){const d=i.shift();d&&!d.result&&(c=d)}return i.length===0?n.delete(a):n.set(a,i),c};for(const a of e){if(dI(a)){const i=a.toolCalls||[];if(i.length===0){t.push(a);continue}i.forEach((c,d)=>{const h=c.toolCallId||`${a.id}-${d}`;if(Mm(c.toolName)){r.add(h);return}if(hI(c.toolName)){r.add(h);const x={...a,id:`${a.id}:tool-call:${d}:${h}`,toolCalls:[{...c,toolCallId:h}]};t.push(x);return}const g={call:{...a,id:`${a.id}:tool-call:${d}:${h}`,toolCalls:[{...c,toolCallId:h}]},callMessageId:a.id};s(h,g);const y=t[t.length-1];Array.isArray(y)?y.push(g):t.push([g])});continue}if(fI(a)){const i=a.toolCallId;if(i&&r.has(i)){r.delete(i),t.push(a);continue}if(Mm(a.toolName)){t.push(a);continue}const c=i?o(i):void 0;if(c)c.result=a,c.resultMessageId=a.id;else{const d=i||`orphan-tool-call:${a.id}`,m={call:{role:"assistant",type:"tool_call",id:`synthetic-tool-call:${a.id}`,createdAt:a.createdAt,toolCalls:[{toolCallId:d,toolName:(a.toolName||"").trim()||"tool",parameters:{},streamingOutput:""}],isCompressed:a.isCompressed,compressedEventId:a.compressedEventId},result:a,resultMessageId:a.id},g=t[t.length-1];Array.isArray(g)?g.push(m):t.push([m])}continue}t.push(a)}return t}const vI=(e,t)=>{var i;const{t:n}=Ge(),r=b.useMemo(()=>{var d;const c=t.find(h=>h.role==="system");return c||((d=e==null?void 0:e.config)!=null&&d.baseSystemPrompt?{id:`system-prompt-${e.id}`,role:"system",content:e.config.baseSystemPrompt,createdAt:new Date(e.createdAt).toISOString()}:null)},[e,t]),s=b.useCallback(c=>!1,[]),o=b.useCallback(c=>{if(lI(c))return{type:"compression_divider",id:c.id,createdAt:c.createdAt,label:c.label};if(iI(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 h=c.messageType;if(!h&&c.message.role==="assistant"&&"type"in c.message){const m="type"in c.message?c.message.type:void 0;(m==="text"||m==="plan"||m==="question"||m==="tool_call"||m==="tool_result")&&(h=m)}return{type:"message",message:c.message,align:d,messageType:h}},[]),a=b.useMemo(()=>{var S;const c=t.filter(_=>{const E=_.role;return!(E!=="user"&&E!=="assistant"&&E!=="system"&&E!=="tool"||s(_))}),d=yI(c),h=[];d.forEach((_,E)=>{var C,A;if(Array.isArray(_)){const I=_[0];h.push({type:"tool_session",id:I?gI(I,E):`tool-session-unknown-${E}`,sessionId:(e==null?void 0:e.id)||"default",tools:_,createdAt:((C=I==null?void 0:I.call)==null?void 0:C.createdAt)||((A=I==null?void 0:I.result)==null?void 0:A.createdAt)||new Date().toISOString()});return}const T=_;let P;if(T.role==="assistant"&&"type"in T){const I="type"in T?T.type:void 0;(I==="text"||I==="plan"||I==="question"||I==="tool_call"||I==="tool_result")&&(P=I)}h.push({message:T,messageType:P})}),!c.some(_=>_.role==="system")&&r&&h.unshift({message:r});const g=((S=e==null?void 0:e.config)==null?void 0:S.compressionEvents)||[],y=h.findIndex(_=>!uI(_)),x=y===-1?h.length:y;for(const _ of g){const E={type:"compression_divider",id:`compression-divider-${_.id}`,createdAt:_.createdAt,label:n("chat.compression.timelineDetail",{count:_.messagesCompressed,defaultValue:"{{count}} messages archived"})},T=Em(_.createdAt),P=h.findIndex((C,A)=>A>=x&&Em(cI(C))>T);P===-1?h.push(E):h.splice(P,0,E)}return h},[(i=e==null?void 0:e.config)==null?void 0:i.compressionEvents,e==null?void 0:e.id,t,s,r,n]);return{systemPromptMessage:r,renderableMessages:a,convertRenderableEntry:o}},{Text:bI}=ft,SI=({visible:e,selectionMode:t,selectedCount:n,totalCount:r,paddingTop:s,paddingRight:o,paddingBottom:a,paddingLeft:i,maxWidth:c,onToggleSelectionMode:d,onSelectAll:h,onClear:m,onExportMarkdown:g,onExportPdf:y,t:x})=>e?l.jsx("div",{style:{paddingTop:s,paddingRight:o,paddingBottom:a,paddingLeft:i,maxWidth:c,margin:"0 auto",width:"100%"},children:t?l.jsxs(Ee,{align:"center",justify:"space-between",wrap:"wrap",gap:8,children:[l.jsx(bI,{type:"secondary",children:x("chat.selectionToolbar.selectedCount",{selected:n,total:r})}),l.jsxs(He,{size:8,wrap:!0,children:[l.jsx(je,{size:"small",onClick:h,children:x("chat.selectionToolbar.selectAll")}),l.jsx(je,{size:"small",onClick:m,children:x("chat.selectionToolbar.clear")}),l.jsx(je,{size:"small",icon:l.jsx(io,{}),onClick:g,disabled:n===0,children:x("chat.selectionToolbar.exportMarkdown")}),l.jsx(je,{size:"small",type:"primary",icon:l.jsx(io,{}),onClick:y,disabled:n===0,children:x("chat.selectionToolbar.exportPdf")}),l.jsx(je,{size:"small",icon:l.jsx(As,{}),onClick:d,children:x("chat.selectionToolbar.done")})]})]}):l.jsx(Ee,{justify:"flex-end",children:l.jsx(Sn,{title:x("chat.selectionToolbar.selectMessages"),children:l.jsx(je,{"aria-label":x("chat.selectionToolbar.selectMessages"),icon:l.jsx(ry,{}),size:"small",onClick:d})})})}):null,xI=({visible:e,showScrollToTop:t,showScrollToBottom:n,hasUnreadActivity:r,unreadCount:s,onScrollToTop:o,onScrollToBottom:a,onResetUserScroll:i,t:c})=>!e||!t&&!n?null:l.jsx("div",{className:"chat-scroll-capsule-wrapper","data-testid":"chat-scroll-capsule-wrapper",children:l.jsxs("div",{className:"chat-scroll-capsule","data-testid":"chat-scroll-capsule",children:[t?l.jsx(je,{"data-testid":"chat-scroll-top-button",className:"chat-scroll-capsule__button",type:"text",icon:l.jsx("span",{"aria-hidden":"true",children:"↑"}),size:"small",onClick:o,children:c("chat.scroll.jumpToTop",{defaultValue:"Jump to top"})}):null,n?l.jsxs("span",{style:{display:"inline-flex"},children:[l.jsx("span",{style:{display:"inline-flex"},children:l.jsx(je,{"data-testid":"chat-scroll-bottom-button",className:`chat-scroll-capsule__button ${r?"chat-scroll-capsule__button--active":""}`,type:r?"primary":"text",icon:l.jsx("span",{"aria-hidden":"true",children:"↓"}),size:"small",onClick:()=>{i(),a()},children:r?c("chat.scroll.newMessagesWithCount",{count:s,defaultValue:s>0?"{{count}} new messages":"New messages"}):c("chat.scroll.backToLatest",{defaultValue:"Back to latest"})})}),r&&s>0?l.jsx("span",{className:"chat-scroll-capsule__count","data-testid":"chat-scroll-unread-count",children:s}):null]}):null]})}),wI=dt.lazy(()=>Jt(()=>import("./index-CrnJlXzG.js"),__vite__mapDeps([16,1,2,3,4,5,6,17]),import.meta.url).then(e=>({default:e.ContextBar}))),_I=({sessionId:e,auxReady:t,maxWidth:n,paddingLeft:r,paddingRight:s,workspaceState:o,inspectorEligible:a,planMode:i,onRequestOpenInspector:c,t:d})=>{const{token:h}=ut.useToken();if(!e)return null;const m=i?l.jsx(Sn,{title:d("chat.planMode.tooltip",{status:i.status,mode:i.pre_permission_mode,defaultValue:"Plan mode active · phase: {{status}} · previous mode: {{mode}}"}),children:l.jsx(Ze,{color:"purple",icon:l.jsx(Kg,{}),style:{marginInlineEnd:0},children:d("chat.planMode.active",{defaultValue:"Plan mode"})})}):null,g=a&&o.inspectorTogglePlacement==="meta_strip"&&!!c,y=!!(m||o.isMultiPane||g);return l.jsxs(l.Fragment,{children:[t?l.jsx(dt.Suspense,{fallback:null,children:l.jsx(wI,{sessionId:e})}):null,y?l.jsx("div",{"data-conversation-meta-strip":!0,"data-inspector-toggle-placement":o.inspectorTogglePlacement,style:{paddingTop:h.paddingXS,paddingRight:s,paddingBottom:0,paddingLeft:r,maxWidth:n,margin:"0 auto",width:"100%"},children:l.jsxs(Ee,{align:"center",justify:"space-between",gap:h.marginXS,wrap:!0,children:[l.jsxs(Ee,{align:"center",gap:h.marginXS,wrap:!0,children:[m,o.isMultiPane?l.jsx(Ze,{color:"blue",style:{marginInlineEnd:0},children:d("chat.workspace.multiPane",{count:o.leafCount,defaultValue:"{{count}} panes"})}):null]}),g&&c?l.jsx(je,{size:"small",icon:l.jsx(Ld,{}),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]})},If=({isEmbedded:e,leafCount:t,isMobileViewport:n})=>{const r=Number.isFinite(t)&&t>0?Math.floor(t):1,s=r>1;return{isEmbedded:e,leafCount:r,isMultiPane:s,isMobileViewport:n,inspectorMode:n||s?"drawer":"rail",inspectorTogglePlacement:s&&!n?"pane_header":"meta_strip"}},CI=dt.lazy(()=>Jt(()=>import("./index-6wyG_o5U.js"),__vite__mapDeps([18,1,2,3,4,5,6,19]),import.meta.url).then(e=>({default:e.QuestionDialog}))),{useToken:kI}=ut,{useBreakpoint:TI}=Wl,PI=e=>{const{t}=Ct;return e.role==="user"?t("chat.view.roleUser"):e.role==="assistant"?t("chat.view.roleAssistant"):e.role==="system"?t("chat.view.roleSystem"):t("chat.view.roleDefault")},MS=e=>{const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},EI=e=>e.map(({message:t,text:n},r)=>{const s=PI(t),o=MS(t.createdAt);return[`## ${r+1}. ${s} · ${o}`,"",n].join(`
239
+ `)}).join(`
240
+
241
+ ---
242
+
243
+ `),Am=({sessionId:e,embedded:t=!1,paneCount:n=1,auxReady:r=!1,sessionDiffSummary:s=null,workspaceState:o,inspectorEligible:a=!1,onRequestOpenInspector:i})=>{var Tt,lt,Rt,ht,Qe;const c=n,{message:d}=Dn.useApp(),{t:h}=Ge(),m=ae(_e=>e??_e.currentSessionId),g=ae(Is(m)),y=ae(_e=>_e.deleteMessage),x=ae(_e=>_e.loadChatHistory),S=ae(_e=>m?_e.tokenUsages[m]??null:null),_=ae(_e=>m?_e.truncationOccurred[m]??!1:!1),E=ae(_e=>m?_e.segmentsRemoved[m]??0:0),T=b.useMemo(()=>(g==null?void 0:g.messages)||[],[g]),P=ae(li(m));b.useEffect(()=>{if(!m)return;const _e=ae.getState().chats.find($e=>$e.id===m);_e&&Array.isArray(_e.messages)&&_e.messages.length>0||x(m)},[m,x]);const C=(g==null?void 0:g.messageCount)??0,A=((Tt=g==null?void 0:g.messages)==null?void 0:Tt.length)??0;b.useEffect(()=>{if(!m)return;C-A>0&&x(m,{mode:"monotonic"})},[m,C,A,x]);const I=P,O=b.useCallback(_e=>{if(_e.success)return null;switch(_e.reason){case"session_not_found":case"message_not_found":case"backend_not_found":return h("chat.messageActions.deleteNotFound");case"session_running":return h("chat.messageActions.deleteConflict");default:return _e.errorMessage||h("chat.messageActions.deleteFailed")}},[h]),$=b.useCallback(async(_e,$e)=>{if(!m){const Lt={success:!1,sessionId:"",messageId:_e,reason:"session_not_found"};return($e==null?void 0:$e.notify)!==!1&&d.error(O(Lt)),Lt}const Ke=await y(m,_e);return!Ke.success&&($e==null?void 0:$e.notify)!==!1&&d.error(O(Ke)),Ke},[m,y,d,O]),B=b.useCallback(async _e=>{const $e=Array.from(new Set(_e.map(on=>on.trim()).filter(Boolean)));if($e.length===0)return;const Lt=(await Promise.all($e.map(on=>$(on,{notify:!1})))).filter(on=>!on.success);if(Lt.length!==0){if(Lt.length===1){d.error(O(Lt[0]));return}d.error(h("chat.messageActions.deleteBatchFailed",{failed:Lt.length,total:$e.length}))}},[$,d,O,h]),te=b.useRef(null),H=b.useRef(null),{token:L}=kI(),Z=TI(),D=ql(),[F,de]=b.useState(null),[Q,ge]=b.useState(!1),[G,ce]=b.useState(new Set),ve=gt(_e=>_e.sidebar.collapsed),ue=r,he=s,le=()=>t||Z.xs||Z.sm?"100%":Z.md?"90%":Z.lg?"85%":"1024px",we=()=>{let _e;return t?_e=L.paddingSM:Z.xs?_e=L.paddingXS:Z.sm?_e=L.paddingSM:_e=L.padding,!t&&ve&&!D?_e+18:_e},Le=b.useMemo(()=>o||If({isEmbedded:t,leafCount:c,isMobileViewport:D}),[t,D,c,o]);b.useEffect(()=>{de(null),ge(!1),ce(new Set)},[m]);const{systemPromptMessage:Ie,renderableMessages:Je,convertRenderableEntry:j}=vI(g,T),ie=T.length>0,me=!!(F!=null&&F.content),Me=!!Ie,Ue=!!m&&(ie||me),St=0,ot=b.useMemo(()=>{if(!(F!=null&&F.content))return Je;const _e={message:{id:F.id,role:"user",content:F.content,createdAt:F.createdAt},messageType:"text"};return[...Je,_e]},[Je,F]),Ft=b.useMemo(()=>{const _e=[];for(const $e of ot){if(!("message"in $e))continue;const Ke=Gv($e.message).trim();Ke&&_e.push({id:$e.message.id,message:$e.message,text:Ke})}return _e},[ot]),Vt=b.useMemo(()=>new Set(Ft.map(_e=>_e.id)),[Ft]);b.useEffect(()=>{ce(_e=>{let $e=!1;const Ke=new Set;for(const Lt of _e)Vt.has(Lt)?Ke.add(Lt):$e=!0;return $e?Ke:_e})},[Vt]);const At=b.useMemo(()=>Ft.filter(_e=>G.has(_e.id)),[Ft,G]),Mt=Ft.length>0,wn=b.useCallback(_e=>{ce($e=>{const Ke=new Set($e);return Ke.has(_e)?Ke.delete(_e):Ke.add(_e),Ke})},[]),kt=b.useCallback(()=>{if(!Mt){d.warning(h("chat.view.noExportableMessages"));return}ge(!0)},[d,Mt,h]),_n=b.useCallback(()=>{ge(!1),ce(new Set)},[]),pn=b.useCallback(()=>{if(Q){_n();return}kt()},[kt,_n,Q]),On=b.useCallback(()=>{ce(new Set(Ft.map(_e=>_e.id)))},[Ft]),Mn=b.useCallback(()=>{ce(new Set)},[]),Ot=b.useCallback(async _e=>{var Lt;if(!m){d.warning(h("chat.view.noActiveChat"));return}if(At.length===0){d.warning(h("chat.view.selectAtLeastOneMessage"));return}const $e=EI(At),Ke=await Jv.exportMessageText({format:_e,content:$e,sessionId:m,filenamePrefix:`chat-messages-${At.length}`});if(Ke.success){d.success(h("chat.view.exportSaved",{filename:Ke.filename}));return}(Lt=Ke.error)!=null&&Lt.toLowerCase().includes("cancel")||d.error(Ke.error||h("chat.view.exportFailed"))},[d,m,At,h]);b.useEffect(()=>{if(typeof window>"u")return;const _e=$e=>{var on;const Lt=((on=$e.detail)==null?void 0:on.sessionId)??null;!m||Lt!==m||pn()};return window.addEventListener(Xu,_e),()=>{window.removeEventListener(Xu,_e)}},[m,pn]);const tn=(lt=g==null?void 0:g.config)==null?void 0:lt.tokenUsage,Cn=S||tn||null,ye=(Rt=g==null?void 0:g.config)==null?void 0:Rt.truncationOccurred,We=_||ye||!1,Te=(ht=g==null?void 0:g.config)==null?void 0:ht.segmentsRemoved,Fe=E||Te||0,qt=b.useMemo(()=>{var $e;const _e=($e=g==null?void 0:g.config)==null?void 0:$e.compressionEvents;return!_e||_e.length===0?null:_e.reduce((Ke,Lt)=>{const on=Date.parse(Ke.createdAt),Cr=Date.parse(Lt.createdAt);return Number.isFinite(on)?Number.isFinite(Cr)&&Cr>on?Lt:Ke:Lt})},[(Qe=g==null?void 0:g.config)==null?void 0:Qe.compressionEvents]),$n=L.marginMD,{handleMessagesScroll:yt,hasUnreadActivity:De,resetUserScroll:mn,scrollToBottom:N,scrollToTop:re,showScrollToBottom:W,showScrollToTop:Ae,unreadCount:qe}=aI({currentSessionId:m,isThinking:I,messagesListRef:te,bottomAnchorRef:H,renderableMessages:ot}),Ne=!!Ue&&Mt&&(!t||Q),at=qt?l.jsx(Sn,{title:h("chat.compression.tooltip",{count:qt.messagesCompressed,time:MS(qt.createdAt),defaultValue:"Latest compression at {{time}}: {{count}} messages archived"}),children:l.jsx(Ze,{color:"gold",icon:l.jsx(ny,{}),style:{marginInlineEnd:0,whiteSpace:"nowrap"},children:h("chat.compression.archivedShort",{count:qt.messagesCompressed,defaultValue:"{{count}} archived"})})}):null,vt=Cn&&Cn.budgetLimit>0?l.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:L.marginXS},children:[l.jsx(N1,{usage:Cn,showDetails:!0,size:"small"}),We&&l.jsxs("span",{style:{fontSize:11,color:L.colorTextSecondary,whiteSpace:"nowrap"},children:["(",h("components.tokenUsage.truncatedBadge",{count:Fe,defaultValue:"{{count}} truncated"}),")"]}),at]}):at?l.jsx("div",{style:{display:"inline-flex",alignItems:"center",gap:L.marginXS},children:at}):null;return l.jsx(Js,{role:"region","aria-label":h("chat.view.chatRegion","Chat conversation"),style:{flex:1,minHeight:0,height:"100%",background:L.colorBgContainer,position:"relative",overflow:"hidden"},children:l.jsxs(Ee,{vertical:!0,style:{flex:1,minHeight:0,height:"100%"},children:[l.jsx(_I,{sessionId:m,auxReady:ue,maxWidth:le(),paddingLeft:we(),paddingRight:we(),workspaceState:Le,inspectorEligible:a,planMode:(g==null?void 0:g.planMode)??null,onRequestOpenInspector:i,t:h}),l.jsx(SI,{visible:Ne,selectionMode:Q,selectedCount:At.length,totalCount:Ft.length,paddingTop:L.paddingXS,paddingRight:we()+St,paddingBottom:0,paddingLeft:we(),maxWidth:le(),onToggleSelectionMode:pn,onSelectAll:On,onClear:Mn,onExportMarkdown:()=>{Ot("markdown")},onExportPdf:()=>{Ot("pdf")},t:h}),l.jsx(L1,{currentChat:g,currentSessionId:m,convertRenderableEntry:j,handleDeleteMessage:$,handleDeleteToolMessages:B,handleMessagesScroll:yt,hasSystemPrompt:Me,messagesListRef:te,bottomAnchorRef:H,renderableMessages:ot,rowGap:$n,showMessagesView:!!Ue,screens:Z,workflowDraftId:F==null?void 0:F.id,isThinking:I,padding:we(),selectionMode:Q,selectedMessageIds:G,selectableMessageIds:Vt,onToggleMessageSelection:wn}),l.jsxs("div",{className:"chat-bottom-stack","data-testid":"chat-bottom-stack",children:[l.jsx(xI,{visible:Ue,showScrollToTop:Ae,showScrollToBottom:W,hasUnreadActivity:De,unreadCount:qe,onScrollToTop:re,onScrollToBottom:N,onResetUserScroll:mn,t:h}),m&&ue&&l.jsx("div",{style:{paddingTop:L.paddingXS,paddingRight:we(),paddingBottom:0,paddingLeft:we(),maxWidth:le(),margin:"0 auto",width:"100%"},children:l.jsx(dt.Suspense,{fallback:null,children:l.jsx(CI,{sessionId:m},m)})}),l.jsx(zP,{sessionId:m,isCenteredLayout:!Ue,maxWidth:Ue?le():"100%",onWorkflowDraftChange:de,showMessagesView:!!Ue,sessionDiffSummary:he,contextUsageIndicator:vt,showSessionDiffCard:!1})]})]})})},Sd="lotus_experience_mode_v1",M$=new Set(["skills","hooks","masking","env-vars","metrics","sessions","config"]);function Rm(){try{const e=localStorage.getItem(Sd);if(e==="simple"||e==="advanced")return e}catch{}return"advanced"}const AS=es(e=>({mode:Rm(),isAdvanced:Rm()==="advanced",setMode:t=>{try{localStorage.setItem(Sd,t)}catch{}e({mode:t,isAdvanced:t==="advanced"})},toggleMode:()=>e(t=>{const n=t.mode==="simple"?"advanced":"simple";try{localStorage.setItem(Sd,n)}catch{}return{mode:n,isAdvanced:n==="advanced"}})})),MI=dt.lazy(()=>Jt(()=>import("./index-BZvX5d4s.js"),__vite__mapDeps([20,1,2,3,21,4,5,6,22]),import.meta.url).then(e=>({default:e.SessionSummaryCard}))),AI=dt.lazy(()=>Jt(()=>import("./index-hdos2Xoy.js"),__vite__mapDeps([23,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.TodoList}))),RI=dt.lazy(()=>Jt(()=>import("./SubAgentsPanel-DankG8co.js"),__vite__mapDeps([24,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.SubAgentsPanel}))),{Title:jI,Text:RS}=ft,II=({sessionId:e,auxReady:t,showMessagesView:n,shouldShowTaskPanel:r,hasSubAgents:s,sessionDiffSummary:o})=>{const{token:a}=ut.useToken(),i=AS(d=>d.isAdvanced),c=b.useMemo(()=>[{key:"overview",title:"Overview",showTitle:!1,visible:i&&n,node:t?l.jsx(dt.Suspense,{fallback:null,children:l.jsx(MI,{sessionId:e,compact:!0})}):null},{key:"tasks",title:"Tasks",showTitle:!1,visible:r,node:t?l.jsx(dt.Suspense,{fallback:null,children:l.jsx(AI,{sessionId:e,initialCollapsed:!1,compact:!0})}):null},{key:"agents",title:"Sub-agents",showTitle:!1,visible:s,node:t?l.jsx(dt.Suspense,{fallback:null,children:l.jsx(RI,{parentSessionId:e,compact:!0})}):null},{key:"diffs",title:"Diffs",showTitle:!1,visible:!!o,node:l.jsx(mv,{sessionDiffSummary:o,sessionId:e,compact:!0})}].filter(d=>d.visible),[t,s,i,o,e,r,n]);return c.length===0?l.jsx(Ee,{vertical:!0,align:"center",justify:"center",style:{minHeight:180,color:a.colorTextSecondary,padding:a.paddingLG,textAlign:"center"},children:l.jsx(RS,{type:"secondary",children:"No session details available yet."})}):l.jsx(Ee,{vertical:!0,gap:2,style:{width:"100%",minWidth:0},children:c.map((d,h)=>l.jsx("section",{style:{width:"100%",minWidth:0,paddingTop:h===0?0:6,borderTop:h===0?"none":`1px solid ${a.colorBorderSecondary}`},children:d.showTitle?l.jsxs(Ee,{vertical:!0,gap:6,style:{width:"100%",minWidth:0},children:[l.jsx(jI,{level:5,style:{margin:0,fontSize:a.fontSizeLG},children:d.title}),d.node]}):d.node},d.key))})},jm=({sessionId:e,auxReady:t,mode:n,open:r,onOpenChange:s,showMessagesView:o,shouldShowTaskPanel:a,hasSubAgents:i,sessionDiffSummary:c})=>{const{token:d}=ut.useToken(),h=gt(x=>x.inspector.widthPx),m=gt(x=>x.inspector.minWidthPx),g=gt(x=>x.inspector.maxWidthPx);if(!e)return null;const y=l.jsx(II,{sessionId:e,auxReady:t,showMessagesView:o,shouldShowTaskPanel:a,hasSubAgents:i,sessionDiffSummary:c});return n==="drawer"?l.jsx(Ul,{title:"Inspector",placement:"right",open:r,onClose:()=>s(!1),width:h,children:y}):r?l.jsxs("aside",{"data-session-inspector-pane":!0,style:{width:"100%",minWidth:m,maxWidth:g,height:"100%",minHeight:0,borderLeft:`1px solid ${d.colorBorderSecondary}`,background:d.colorBgLayout,overflow:"auto"},children:[l.jsxs(Ee,{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(Ee,{align:"center",gap:d.marginXS,children:[l.jsx(Ld,{}),l.jsx(RS,{strong:!0,children:"Inspector"})]}),l.jsx(je,{type:"text",size:"small",icon:l.jsx(As,{}),"aria-label":"Close inspector",onClick:()=>s(!1)})]}),l.jsx("div",{style:{padding:`6px ${d.paddingSM}px ${d.paddingSM}px`,minWidth:0},children:y})]}):null},OI=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>{const s=n,o=ql(),a=ae(D=>e??D.currentSessionId),i=ae(Is(a)),c=b.useMemo(()=>(i==null?void 0:i.messages)||[],[i]),d=ae(D=>D.loadTaskList),h=AS(D=>D.isAdvanced),m=b.useMemo(()=>!a||!i?a:i.kind==="child"&&(i.parentSessionId||i.rootSessionId)||a,[i,a]),g=ae(D=>m?!!D.taskLists[m]:!1),y=ae(li(a)),x=b.useMemo(()=>!a||!i?!1:!!(g||i.kind==="child"||y),[i,g,y,a]),S=ae(D=>{if(!a)return!1;const F=Qa(a)(D);return Object.keys(F).length>0?!0:D.chats.some(de=>de.kind==="child"&&de.parentSessionId===a)});b.useEffect(()=>{!m||g||x&&d(m).catch(D=>{console.warn(`[SessionWorkspaceShell] Failed to load task list for ${m}:`,D)})},[m,g,x,d]);const _=b.useMemo(()=>{var G;if(!c||c.length===0)return null;const D=new Map;let F=0,de=0,Q=0;for(const ce of c){if(!wv(ce))continue;const ve=((G=ce.result)==null?void 0:G.result)??"",ue=yo(ve),he=rf(ve);if(!ue||!he)continue;Q+=1,F+=he.added,de+=he.removed;const le=D.get(ue.file_path);le?(le.added+=he.added,le.removed+=he.removed,le.diffChunks.push(ue.diff.unified),le.truncated=le.truncated||!!ue.diff.truncated,le.toolCount+=1,le.workspace=le.workspace??ue.workspace):D.set(ue.file_path,{added:he.added,removed:he.removed,diffChunks:[ue.diff.unified],truncated:!!ue.diff.truncated,toolCount:1,workspace:ue.workspace})}if(D.size===0)return null;const ge=Array.from(D.entries()).map(([ce,ve])=>({filePath:ce,added:ve.added,removed:ve.removed,unifiedDiff:ve.diffChunks.join(`
244
+
245
+ `),truncated:ve.truncated,toolCount:ve.toolCount,workspace:ve.workspace})).sort((ce,ve)=>ce.filePath.localeCompare(ve.filePath));return{totalAdded:F,totalRemoved:de,files:ge,changedTools:Q}},[c]),E=gt(D=>D.inspector.widthPx),T=gt(D=>D.inspector.minWidthPx),P=gt(D=>D.inspector.maxWidthPx),C=gt(D=>D.setInspectorWidthPx),A=c.length>0,I=b.useMemo(()=>r||If({isEmbedded:t,leafCount:s,isMobileViewport:o}),[t,o,s,r]),O=I.inspectorMode,$=!!(a&&(h&&A||x||S||_)),B=!!a&&(O==="drawer"||$),[te,H]=b.useState(()=>O==="rail"),[L,Z]=b.useState(!1);return b.useEffect(()=>{H(O==="rail"?$:!1)},[$,O,a]),b.useEffect(()=>{if(typeof requestIdleCallback=="function"){const F=requestIdleCallback(()=>Z(!0));return()=>cancelIdleCallback(F)}const D=window.setTimeout(()=>Z(!0),300);return()=>window.clearTimeout(D)},[]),b.useEffect(()=>{if(typeof window>"u"||!a)return;const D=F=>{var ge;(((ge=F.detail)==null?void 0:ge.sessionId)??null)===a&&H(!0)};return window.addEventListener(Vu,D),()=>{window.removeEventListener(Vu,D)}},[a]),l.jsx("div",{"data-session-workspace-shell":!0,"data-inspector-mode":O,"data-multi-pane":I.isMultiPane?"true":"false","data-inspector-toggle-placement":I.inspectorTogglePlacement,style:{height:"100%",minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Ee,{style:{flex:1,minHeight:0},children:B&&O==="rail"&&te?l.jsx(ef,{layout:"horizontal",sizesPx:[0,E],minFirstPx:320,minSecondPx:T,style:{flex:1,minHeight:0},handleSizePx:4,onResizeEnd:([,D])=>{const F=Math.max(T,Math.min(P,D));C(F)},first:l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Am,{sessionId:a,embedded:t,paneCount:s,auxReady:L,sessionDiffSummary:_,workspaceState:I,inspectorEligible:$,onRequestOpenInspector:()=>H(!0)})}),second:l.jsx(jm,{sessionId:a,auxReady:L,mode:O,open:te,onOpenChange:H,showMessagesView:A,shouldShowTaskPanel:x,hasSubAgents:S,sessionDiffSummary:_})}):l.jsxs(l.Fragment,{children:[l.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:l.jsx(Am,{sessionId:a,embedded:t,paneCount:s,auxReady:L,sessionDiffSummary:_,workspaceState:I,inspectorEligible:$,onRequestOpenInspector:()=>H(!0)})}),B?l.jsx(jm,{sessionId:a,auxReady:L,mode:O,open:te,onOpenChange:H,showMessagesView:A,shouldShowTaskPanel:x,hasSubAgents:S,sessionDiffSummary:_}):null]})})})},$I=({sessionId:e,embedded:t=!1,paneCount:n=1,workspaceState:r})=>l.jsx(OI,{sessionId:e,embedded:t,paneCount:n,workspaceState:r}),LI=dt.lazy(()=>Jt(()=>import("./index-Cej2Q9Bg.js"),__vite__mapDeps([25,1,2,3,4,5,6,26]),import.meta.url).then(e=>({default:e.HomeDashboard}))),{useToken:DI}=ut,{Text:FI}=ft,NI=4,zI=({leafId:e})=>{var de;const{token:t}=DI(),{t:n}=Ge(),r=gt(Q=>Q.tree),s=gt(Q=>Q.leafSessionIds),o=gt(Q=>Q.activeLeafId),a=gt(Q=>Q.setActiveLeafId),i=gt(Q=>Q.splitLeaf),c=gt(Q=>Q.closeLeaf),d=gt(Q=>Q.setLeafSessionId),h=ae(Q=>Q.selectSession),m=ae(Q=>Q.addChat),g=ae(Q=>Q.systemPrompts),y=ae(Q=>Q.lastSelectedPromptId),x=s[e]??null,S=ae(Is(x)),_=b.useMemo(()=>Jn(r),[r]),E=_.length,T=Math.max(0,_.indexOf(e))+1,P=E<NI,C=sy("(max-width: 768px)"),A=b.useMemo(()=>If({isEmbedded:!0,leafCount:E,isMobileViewport:C}),[C,E]),I=A.isMultiPane,$=I||!!x,B=A.isMultiPane,te=o===e,H=((de=S==null?void 0:S.title)==null?void 0:de.trim())||n("chat.multiPane.selectSessionHint"),L=!C,Z=A.inspectorTogglePlacement==="pane_header"&&!!x,D=b.useCallback(Q=>{d(e,Q),a(e),h(Q)},[e,h,a,d]),F=b.useCallback(async()=>{var ce,ve;const Q=g.find(ue=>ue.id===y),ge=(Q==null?void 0:Q.id)||(g.length>0?((ce=g.find(ue=>ue.id==="general_assistant"))==null?void 0:ce.id)||g[0].id:""),G=await m({title:n("chat.sidebar.newSession"),createdAt:Date.now(),messages:[],config:{systemPromptId:ge,baseSystemPrompt:(Q==null?void 0:Q.content)||(g.length>0?((ve=g.find(ue=>ue.id==="general_assistant"))==null?void 0:ve.content)||g[0].content:""),lastUsedEnhancedPrompt:null}});d(e,G),a(e)},[m,y,g,n,e,d,a]);return l.jsxs("div",{className:"chat-pane-shell",onMouseDownCapture:()=>{Gn("pane focus (mouse)",{leafId:e,sessionId:x,prevActiveLeafId:o}),a(e),x&&h(x)},onFocusCapture:()=>{Gn("pane focus (focus)",{leafId:e,sessionId:x,prevActiveLeafId:o}),a(e)},style:{height:"100%",minHeight:0,border:B?`1px solid ${te?t.colorPrimaryBorder:t.colorBorderSecondary}`:"none",borderRadius:B?t.borderRadiusLG:0,overflow:"hidden",background:t.colorBgContainer,position:"relative"},children:[L?l.jsx("div",{className:"chat-pane-shell__header",style:{padding:`${t.paddingXS}px ${t.paddingSM}px`,borderBottom:`1px solid ${t.colorBorderSecondary}`,background:B?t.colorBgElevated:t.colorBgContainer},children:l.jsxs(Ee,{align:"center",justify:"space-between",gap:t.marginSM,style:{minWidth:0},children:[l.jsxs(Ee,{align:"center",gap:t.marginXS,style:{minWidth:0,flex:1},children:[B?l.jsx(Ze,{color:te?"blue":"default",style:{marginInlineEnd:0},children:n("chat.multiPane.paneLabel",{index:T,defaultValue:"Pane {{index}}"})}):null,l.jsx("div",{className:"chat-pane-shell__title",children:l.jsx(FI,{strong:!!x,type:x?void 0:"secondary",ellipsis:{tooltip:H},children:H})})]}),l.jsxs(Ee,{className:"chat-pane-shell__actions",align:"center",gap:4,children:[l.jsx(je,{size:"small",type:"text",icon:l.jsx(rw,{}),disabled:!P,title:n("chat.multiPane.splitHorizontal"),"aria-label":n("chat.multiPane.splitHorizontal"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),Gn("pane split request",{leafId:e,layout:"horizontal"}),i(e,"horizontal");const ge=gt.getState(),G=ge.leafSessionIds[ge.activeLeafId]??null;G&&h(G)}}),l.jsx(je,{size:"small",type:"text",icon:l.jsx(sw,{}),disabled:!P,title:n("chat.multiPane.splitVertical"),"aria-label":n("chat.multiPane.splitVertical"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),Gn("pane split request",{leafId:e,layout:"vertical"}),i(e,"vertical");const ge=gt.getState(),G=ge.leafSessionIds[ge.activeLeafId]??null;G&&h(G)}}),l.jsx(je,{size:"small",type:"text",icon:l.jsx(ry,{}),disabled:!x,title:n("chat.multiPane.selectMessagesToExport"),"aria-label":n("chat.multiPane.selectMessagesToExport"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),x&&window.dispatchEvent(new CustomEvent(Xu,{detail:{sessionId:x}}))}}),Z?l.jsx(je,{size:"small",type:"text",icon:l.jsx(Ld,{}),title:n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),"aria-label":n("chat.workspace.openInspector",{defaultValue:"Open inspector"}),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),x&&window.dispatchEvent(new CustomEvent(Vu,{detail:{sessionId:x}}))}}):null,l.jsx(je,{size:"small",type:"text",danger:!0,icon:l.jsx(As,{}),disabled:!$,title:n("chat.multiPane.closePane"),"aria-label":n("chat.multiPane.closePane"),onClick:Q=>{Q.preventDefault(),Q.stopPropagation(),Gn("pane close request",{leafId:e}),I?c(e):d(e,null);const ge=gt.getState(),G=ge.leafSessionIds[ge.activeLeafId]??null;h(G)}})]})]})}):null,l.jsx("div",{className:"chat-pane-shell__content",children:x?l.jsx(ei,{name:"ChatView",children:l.jsx($I,{sessionId:x,embedded:!0,paneCount:E,workspaceState:A})}):l.jsx(ei,{name:"HomeDashboard",children:l.jsx(dt.Suspense,{fallback:null,children:l.jsx(LI,{onOpenSession:D,onCreateSession:F})})})})]})},BI=({node:e})=>{const t=gt(r=>r.splitSizesPx[e.id]??null),n=gt(r=>r.setSplitSizesPx);return l.jsx(ef,{layout:e.layout,sizesPx:t,defaultSplitRatio:.5,minFirstPx:240,minSecondPx:240,style:{height:"100%",minHeight:0},onResizeEnd:r=>{n(e.id,r)},first:l.jsx(xd,{node:e.children[0]}),second:l.jsx(xd,{node:e.children[1]})})},xd=({node:e})=>e.type==="leaf"?l.jsx(zI,{leafId:e.id}):l.jsx(BI,{node:e}),Im=()=>{const e=gt(h=>h.tree),t=gt(h=>h.leafSessionIds),n=gt(h=>h.activeLeafId),r=gt(h=>h.setActiveLeafId),s=gt(h=>h.setLeafSessionId),o=ae(h=>h.chats.map(m=>m.id).join(",")),a=b.useMemo(()=>new Set(o.split(",")),[o]),i=ae(h=>h.currentSessionId),c=b.useRef(!1),d=b.useMemo(()=>Jn(e),[e]);return b.useEffect(()=>{d.length!==0&&(d.includes(n)||r(d[0]))},[n,d,r]),b.useEffect(()=>{const h=new Set(Object.values(t).filter(Boolean));let m=!1;for(const g of h)if(!a.has(g)){m=!0;break}if(m)for(const[g,y]of Object.entries(t))y&&!a.has(y)&&s(g,null)},[a,t,s]),b.useEffect(()=>{if(!i||c.current)return;if(!Object.values(t).some(Boolean)){s(n,i),c.current=!0;return}c.current=!0},[n,i,t,s]),l.jsx("div",{style:{height:"100%",minHeight:0,padding:0},children:l.jsx(xd,{node:e})})},WI=dt.lazy(()=>Jt(()=>import("./index-CQnpSDCR.js"),__vite__mapDeps([27,1,2,3,4,28,5,6,21,29]),import.meta.url).then(e=>({default:e.SystemSettingsPage}))),UI=dt.lazy(()=>Jt(()=>import("./index-DMAgXK8O.js"),__vite__mapDeps([30,1,2,3,4,5,6,31]),import.meta.url).then(e=>({default:e.CommandPalette}))),qI=dt.lazy(()=>Jt(()=>import("./FeatureGuide-BEvoRR9h.js"),__vite__mapDeps([32,1,2,3,28]),import.meta.url).then(e=>({default:e.FeatureGuide}))),Om="bodhi_open_provider_on_entry",HI="__LOTUS_COMMAND_PALETTE_FORCE_OPEN__",YI=()=>(ck(),null),KI=({themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r})=>{const s=Ua(L=>L.isOpen),o=Ua(L=>L.close),{t:a}=Ge(),{token:i}=ut.useToken(),c=Yd(),d=b.useMemo(()=>nv()==="macos",[]);b.useEffect(()=>{localStorage.getItem(Om)==="true"&&(localStorage.removeItem(Om),Ua.getState().open("chat","provider"))},[]),V0(),b.useEffect(()=>{Fh.clear(),Nh()},[e]),b.useEffect(()=>{Fh.clear(),Nh()},[c]);const h=gt(L=>L.sidebar.collapsed),m=gt(L=>L.sidebar.widthPx),g=gt(L=>L.sidebar.minWidthPx),y=gt(L=>L.sidebar.maxWidthPx),x=gt(L=>L.setSidebarCollapsed),S=gt(L=>L.setSidebarWidthPx),_=18,E=0,P=!s&&h&&d?44:E,C=0,A=88,I=10,O="none",$=ql(),B="min(86vw, 360px)",[te,H]=b.useState(!1);return b.useEffect(()=>{if(typeof requestIdleCallback=="function"){const Z=requestIdleCallback(()=>H(!0));return()=>cancelIdleCallback(Z)}const L=window.setTimeout(()=>H(!0),200);return()=>window.clearTimeout(L)},[]),b.useEffect(()=>{const L=Z=>{!((Z.metaKey||Z.ctrlKey)&&Z.key.toLowerCase()==="k")||te||(Z.preventDefault(),window[HI]=!0,H(!0))};return window.addEventListener("keydown",L),()=>window.removeEventListener("keydown",L)},[te]),l.jsxs(l.Fragment,{children:[l.jsx("a",{href:"#lotus-main-content",className:"lotus-skip-link",style:{position:"absolute",top:-9999,left:-9999,zIndex:1e4,padding:"8px 16px",background:"var(--lotus-main-surface, #fff)",color:"var(--ant-color-primary, #0d9488)",borderRadius:8,fontWeight:600,textDecoration:"none"},onFocus:L=>{L.currentTarget.style.top="8px",L.currentTarget.style.left="8px"},onBlur:L=>{L.currentTarget.style.top="-9999px",L.currentTarget.style.left="-9999px"},children:a("app.skipToContent","Skip to main content")}),te&&l.jsx(dt.Suspense,{fallback:null,children:l.jsx(UI,{})}),te&&l.jsx(dt.Suspense,{fallback:null,children:l.jsx(qI,{disabled:s})}),te&&l.jsx(YI,{}),l.jsx(Js,{style:{minHeight:"100vh",height:"100vh",overflow:"hidden",background:"transparent",display:"flex",flexDirection:"row",position:"relative"},children:l.jsxs("div",{style:{display:"flex",flex:1,minHeight:0,height:"100%",width:"100%",boxSizing:"border-box",paddingTop:P,paddingLeft:E,paddingRight:E,paddingBottom:E,background:"transparent"},children:[s?l.jsx(Js,{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:O,overflow:"hidden"},children:l.jsx(ei,{name:"SystemSettings",children:l.jsx(dt.Suspense,{fallback:l.jsx("div",{style:{padding:24,color:"var(--ant-color-text-secondary)"},children:a("app.loading","Loading…")}),children:l.jsx(WI,{themeMode:e,onThemeModeChange:t,locale:n,onLocaleChange:r,onBack:o})})})}):l.jsx(l.Fragment,{children:$?l.jsxs(l.Fragment,{children:[l.jsx(Ul,{placement:"left",closable:!1,onClose:()=>x(!0),open:!h,width:B,styles:{body:{padding:0,background:"var(--lotus-sidebar-bg)"}},children:l.jsx($h,{})}),l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{flex:1,height:"100%",minHeight:0,borderRadius:`${_}px`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(Js,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(Im,{})})})]}):l.jsx(ef,{layout:"horizontal",style:{flex:1,minHeight:0,height:"100%",background:"transparent"},sizesPx:[h?C:m,0],minFirstPx:h?C:g,minSecondPx:320,disabled:h,handleSizePx:h?0:2,onResizeEnd:([L])=>{if(h)return;const Z=Math.max(g,Math.min(y,L));S(Z)},first:l.jsx("div",{className:"lotus-shell-panel lotus-shell-sidebar",style:{height:"100%",minHeight:0,borderRadius:`${_}px 0 0 ${_}px`,border:O,overflow:"hidden",background:"var(--lotus-sidebar-bg)"},children:l.jsx($h,{})}),second:l.jsx("main",{id:"lotus-main-content",className:"lotus-shell-panel lotus-shell-main",style:{height:"100%",minHeight:0,borderRadius:h?`${_}px`:`0 ${_}px ${_}px 0`,border:O,overflow:"hidden",background:"var(--lotus-main-surface)",boxShadow:"var(--lotus-shadow-shell)"},children:l.jsx(Js,{style:{display:"flex",flexDirection:"column",background:"transparent",minHeight:0,height:"100%"},children:l.jsx(Im,{})})})})}),!s&&h?l.jsx(je,{"data-testid":"show-sidebar",type:"text",size:"small",icon:l.jsx(ow,{}),onClick:()=>x(!1),title:a("layout.showSidebar"),"aria-label":a("layout.showSidebar"),className:"lotus-toolbar-icon lotus-floating-sidebar-toggle",style:{position:"absolute",top:$?8:I,left:$?8:A,zIndex:40,width:36,height:36,borderRadius:12,border:`1px solid ${i.colorBorderSecondary}`,background:i.colorBgElevated,boxShadow:i.boxShadowSecondary}}):null]})})]})},XI="bodhi_open_provider_on_entry",{Title:$m,Paragraph:Lm}=ft,VI=()=>{const{t:e}=Ge(),[t,n]=b.useState(!1),[r,s]=b.useState(null),[o,a]=b.useState(!1),i=async c=>{try{s(null),a(!0),await co.getInstance().markSetupComplete(),c&&localStorage.setItem(XI,"true"),n(!0)}catch(d){console.error("Failed to complete setup:",d),s(e("setup.error.completeFailed"))}finally{a(!1)}};return t?l.jsxs("div",{"data-testid":"setup-complete",className:"setup-complete",children:[l.jsx($m,{level:2,children:e("setup.complete.title")}),l.jsx(Lm,{children:e("setup.complete.restartMessage")}),l.jsx(je,{"data-testid":"setup-restart",onClick:()=>window.location.reload(),children:e("setup.complete.restartMessage")})]}):l.jsx("div",{className:"setup-page",children:l.jsxs(en,{className:"setup-page__card",children:[l.jsxs("div",{className:"setup-page__hero",children:[l.jsx("div",{className:"setup-page__hero-icon",children:l.jsx(ah,{})}),l.jsx($m,{level:2,style:{marginTop:0},children:e("setup.welcome.heading")}),l.jsx(Lm,{type:"secondary",children:e("setup.welcome.description")})]}),l.jsx(cr,{message:e("setup.welcome.providerHint"),type:"info",showIcon:!0,style:{marginBottom:16}}),l.jsx(cr,{message:e("setup.welcome.proxyHint"),type:"info",showIcon:!0,style:{marginBottom:24}}),r?l.jsx(cr,{message:r,type:"error",showIcon:!0,style:{marginBottom:16}}):null,l.jsxs("div",{className:"setup-page__actions",children:[l.jsx(je,{"data-testid":"setup-configure-provider",icon:l.jsx(Bl,{}),onClick:()=>void i(!0),loading:o,children:e("setup.button.configureProvider")}),l.jsx(je,{"data-testid":"setup-get-started",type:"primary",icon:l.jsx(ah,{}),onClick:()=>void i(!1),loading:o,children:e("setup.button.getStarted")})]})]})})},{Title:GI,Text:Dm}=ft,JI=({onVerified:e,verifyPassword:t})=>{const{t:n}=Ge(),[r,s]=b.useState(""),[o,a]=b.useState(null),[i,c]=b.useState(!1),d=async()=>{const h=r.trim();if(!h){a(n("app.passwordGate.validation.required"));return}c(!0),a(null);try{await t(h),await e(),s("")}catch(m){const g=m instanceof Error?m.message:n("app.passwordGate.validation.verifyFailed");a(g)}finally{c(!1)}};return l.jsx("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:l.jsx(en,{style:{width:"100%",maxWidth:480},children:l.jsxs(He,{direction:"vertical",size:20,style:{width:"100%"},children:[l.jsxs("div",{children:[l.jsx(GI,{level:3,style:{marginBottom:8},children:n("app.passwordGate.title")}),l.jsx(Dm,{type:"secondary",children:n("app.passwordGate.description")})]}),o?l.jsx(cr,{type:"error",showIcon:!0,message:o}):null,l.jsxs(He,{direction:"vertical",size:8,style:{width:"100%"},children:[l.jsx(Dm,{strong:!0,children:n("app.passwordGate.passwordLabel")}),l.jsx(Rs.Password,{value:r,autoFocus:!0,autoComplete:"current-password",onChange:h=>s(h.target.value),onPressEnter:()=>void d(),placeholder:n("app.passwordGate.passwordPlaceholder")})]}),l.jsx(je,{type:"primary",block:!0,loading:i,onClick:()=>void d(),children:n("app.passwordGate.submit")})]})})})};var Yo={},mu={exports:{}},Fm;function Yt(){return Fm||(Fm=1,function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(mu)),mu.exports}var Ko={},Nm;function QI(){if(Nm)return Ko;Nm=1,Object.defineProperty(Ko,"__esModule",{value:!0}),Ko.default=void 0;var e={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"};return Ko.default=e,Ko}var Xo={},Vo={},Go={},gu={exports:{}},yu={exports:{}},vu={exports:{}},bu={exports:{}},zm;function ZI(){return zm||(zm=1,function(e){var t=Hg().default;function n(r,s){if(t(r)!="object"||!r)return r;var o=r[Symbol.toPrimitive];if(o!==void 0){var a=o.call(r,s||"default");if(t(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(r)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(bu)),bu.exports}var Bm;function eO(){return Bm||(Bm=1,function(e){var t=Hg().default,n=ZI();function r(s){var o=n(s,"string");return t(o)=="symbol"?o:o+""}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(vu)),vu.exports}var Wm;function tO(){return Wm||(Wm=1,function(e){var t=eO();function n(r,s,o){return(s=t(s))in r?Object.defineProperty(r,s,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[s]=o,r}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports}(yu)),yu.exports}var Um;function bo(){return Um||(Um=1,function(e){var t=tO();function n(s,o){var a=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);o&&(i=i.filter(function(c){return Object.getOwnPropertyDescriptor(s,c).enumerable})),a.push.apply(a,i)}return a}function r(s){for(var o=1;o<arguments.length;o++){var a=arguments[o]!=null?arguments[o]:{};o%2?n(Object(a),!0).forEach(function(i){t(s,i,a[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach(function(i){Object.defineProperty(s,i,Object.getOwnPropertyDescriptor(a,i))})}return s}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports}(gu)),gu.exports}var Jo={},qm;function So(){return qm||(qm=1,Object.defineProperty(Jo,"__esModule",{value:!0}),Jo.commonLocale=void 0,Jo.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}),Jo}var Hm;function nO(){if(Hm)return Go;Hm=1;var e=Yt().default;Object.defineProperty(Go,"__esModule",{value:!0}),Go.default=void 0;var t=e(bo()),n=So(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"OK",clear:"Clear",week:"Week",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"});return Go.default=r,Go}var Qo={},Ym;function jS(){if(Ym)return Qo;Ym=1,Object.defineProperty(Qo,"__esModule",{value:!0}),Qo.default=void 0;const e={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};return Qo.default=e,Qo}var Km;function IS(){if(Km)return Vo;Km=1;var e=Yt().default;Object.defineProperty(Vo,"__esModule",{value:!0}),Vo.default=void 0;var t=e(nO()),n=e(jS());const r={lang:Object.assign({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},t.default),timePickerLocale:Object.assign({},n.default)};return Vo.default=r,Vo}var Xm;function rO(){if(Xm)return Xo;Xm=1;var e=Yt().default;Object.defineProperty(Xo,"__esModule",{value:!0}),Xo.default=void 0;var t=e(IS());return Xo.default=t.default,Xo}var Vm;function sO(){if(Vm)return Yo;Vm=1;var e=Yt().default;Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.default=void 0;var t=e(QI()),n=e(rO()),r=e(IS()),s=e(jS());const o="${label} is not a valid ${type}",a={locale:"en",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckAll:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",deselectAll:"Deselect all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand",collapse:"Collapse"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"},ColorPicker:{presetEmpty:"Empty",transparent:"Transparent",singleColor:"Single",gradientColor:"Gradient"}};return Yo.default=a,Yo}var Su,Gm;function oO(){return Gm||(Gm=1,Su=sO()),Su}var aO=oO();const iO=Ms(aO);var Zo={},ea={},Jm;function lO(){if(Jm)return ea;Jm=1,Object.defineProperty(ea,"__esModule",{value:!0}),ea.default=void 0;var e={items_per_page:"/ page",jump_to:"Aller à",jump_to_confirm:"confirmer",page:"Page",prev_page:"Page précédente",next_page:"Page suivante",prev_5:"5 Pages précédentes",next_5:"5 Pages suivantes",prev_3:"3 Pages précédentes",next_3:"3 Pages suivantes",page_size:"taille de la page"};return ea.default=e,ea}var ta={},na={},ra={},Qm;function cO(){if(Qm)return ra;Qm=1;var e=Yt().default;Object.defineProperty(ra,"__esModule",{value:!0}),ra.default=void 0;var t=e(bo()),n=So(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"fr_FR",today:"Aujourd'hui",now:"Maintenant",backToToday:"Aujourd'hui",ok:"OK",clear:"Rétablir",week:"Semaine",month:"Mois",year:"Année",timeSelect:"Sélectionner l'heure",dateSelect:"Sélectionner la date",monthSelect:"Choisissez un mois",yearSelect:"Choisissez une année",decadeSelect:"Choisissez une décennie",dateFormat:"DD/MM/YYYY",dayFormat:"DD",dateTimeFormat:"DD/MM/YYYY HH:mm:ss",previousMonth:"Mois précédent (PageUp)",nextMonth:"Mois suivant (PageDown)",previousYear:"Année précédente (Ctrl + gauche)",nextYear:"Année prochaine (Ctrl + droite)",previousDecade:"Décennie précédente",nextDecade:"Décennie suivante",previousCentury:"Siècle précédent",nextCentury:"Siècle suivant"});return ra.default=r,ra}var sa={},Zm;function OS(){if(Zm)return sa;Zm=1,Object.defineProperty(sa,"__esModule",{value:!0}),sa.default=void 0;const e={placeholder:"Sélectionner l'heure",rangePlaceholder:["Heure de début","Heure de fin"]};return sa.default=e,sa}var eg;function $S(){if(eg)return na;eg=1;var e=Yt().default;Object.defineProperty(na,"__esModule",{value:!0}),na.default=void 0;var t=e(cO()),n=e(OS());const r={lang:Object.assign({placeholder:"Sélectionner une date",yearPlaceholder:"Sélectionner une année",quarterPlaceholder:"Sélectionner un trimestre",monthPlaceholder:"Sélectionner un mois",weekPlaceholder:"Sélectionner une semaine",rangePlaceholder:["Date de début","Date de fin"],rangeYearPlaceholder:["Année de début","Année de fin"],rangeMonthPlaceholder:["Mois de début","Mois de fin"],rangeWeekPlaceholder:["Semaine de début","Semaine de fin"]},t.default),timePickerLocale:Object.assign({},n.default)};return na.default=r,na}var tg;function uO(){if(tg)return ta;tg=1;var e=Yt().default;Object.defineProperty(ta,"__esModule",{value:!0}),ta.default=void 0;var t=e($S());return ta.default=t.default,ta}var ng;function dO(){if(ng)return Zo;ng=1;var e=Yt().default;Object.defineProperty(Zo,"__esModule",{value:!0}),Zo.default=void 0;var t=e(lO()),n=e(uO()),r=e($S()),s=e(OS());const o="La valeur du champ ${label} n'est pas valide pour le type ${type}",a={locale:"fr",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,Table:{filterTitle:"Filtrer",filterConfirm:"OK",filterReset:"Réinitialiser",filterEmptyText:"Aucun filtre",filterCheckAll:"Tout sélectionner",filterSearchPlaceholder:"Chercher dans les filtres",emptyText:"Aucune donnée",selectAll:"Sélectionner la page actuelle",selectInvert:"Inverser la sélection de la page actuelle",selectNone:"Désélectionner toutes les données",selectionAll:"Sélectionner toutes les données",sortTitle:"Trier",expand:"Développer la ligne",collapse:"Réduire la ligne",triggerDesc:"Trier par ordre décroissant",triggerAsc:"Trier par ordre croissant",cancelSort:"Annuler le tri"},Tour:{Next:"Étape suivante",Previous:"Étape précédente",Finish:"Fin de la visite guidée"},Modal:{okText:"OK",cancelText:"Annuler",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Annuler"},Transfer:{titles:["",""],searchPlaceholder:"Rechercher",itemUnit:"élément",itemsUnit:"éléments",remove:"Désélectionner",selectCurrent:"Sélectionner la page actuelle",removeCurrent:"Désélectionner la page actuelle",selectAll:"Sélectionner toutes les données",removeAll:"Désélectionner toutes les données",selectInvert:"Inverser la sélection de la page actuelle"},Upload:{uploading:"Téléchargement...",removeFile:"Effacer le fichier",uploadError:"Erreur de téléchargement",previewFile:"Fichier de prévisualisation",downloadFile:"Télécharger un fichier"},Empty:{description:"Aucune donnée"},Icon:{icon:"icône"},Text:{edit:"Éditer",copy:"Copier",copied:"Copie effectuée",expand:"Développer"},Form:{optional:"(optionnel)",defaultValidateMessages:{default:"Erreur de validation pour le champ ${label}",required:"Le champ ${label} est obligatoire",enum:"La valeur du champ ${label} doit être parmi [${enum}]",whitespace:"La valeur du champ ${label} ne peut pas être vide",date:{format:"La valeur du champ ${label} n'est pas au format date",parse:"La valeur du champ ${label} ne peut pas être convertie vers une date",invalid:"La valeur du champ ${label} n'est pas une date valide"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"La taille du champ ${label} doit être de ${len} caractères",min:"La taille du champ ${label} doit être au minimum de ${min} caractères",max:"La taille du champ ${label} doit être au maximum de ${max} caractères",range:"La taille du champ ${label} doit être entre ${min} et ${max} caractères"},number:{len:"La valeur du champ ${label} doit être égale à ${len}",min:"La valeur du champ ${label} doit être plus grande que ${min}",max:"La valeur du champ ${label} doit être plus petit que ${max}",range:"La valeur du champ ${label} doit être entre ${min} et ${max}"},array:{len:"La taille du tableau ${label} doit être de ${len}",min:"La taille du tableau ${label} doit être au minimum de ${min}",max:"La taille du tableau ${label} doit être au maximum de ${max}",range:"La taille du tableau ${label} doit être entre ${min}-${max}"},pattern:{mismatch:"La valeur du champ ${label} ne correspond pas au modèle ${pattern}"}}},Image:{preview:"Aperçu"}};return Zo.default=a,Zo}var xu,rg;function fO(){return rg||(rg=1,xu=dO()),xu}var hO=fO();const pO=Ms(hO);var oa={},aa={},sg;function mO(){if(sg)return aa;sg=1,Object.defineProperty(aa,"__esModule",{value:!0}),aa.default=void 0;var e={items_per_page:"/ पृष्ठ",jump_to:"इस पर चलें",jump_to_confirm:"पुष्टि करें",page:"",prev_page:"पिछला पृष्ठ",next_page:"अगला पृष्ठ",prev_5:"पिछले 5 पृष्ठ",next_5:"अगले 5 पृष्ठ",prev_3:"पिछले 3 पृष्ठ",next_3:"अगले 3 पेज",page_size:"Page Size"};return aa.default=e,aa}var ia={},la={},ca={},og;function gO(){if(og)return ca;og=1;var e=Yt().default;Object.defineProperty(ca,"__esModule",{value:!0}),ca.default=void 0;var t=e(bo()),n=So(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"hi_IN",today:"आज",now:"अभी",backToToday:"आज तक",ok:"ठीक",clear:"स्पष्ट",week:"सप्ताह",month:"महीना",year:"साल",timeSelect:"समय का चयन करें",dateSelect:"तारीख़ चुनें",weekSelect:"एक सप्ताह चुनें",monthSelect:"एक महीना चुनें",yearSelect:"एक वर्ष चुनें",decadeSelect:"एक दशक चुनें",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"पिछला महीना (पेजअप)",nextMonth:"अगले महीने (पेजडाउन)",previousYear:"पिछले साल (Ctrl + बाएं)",nextYear:"अगले साल (Ctrl + दाहिना)",previousDecade:"पिछला दशक",nextDecade:"अगले दशक",previousCentury:"पीछ्ली शताब्दी",nextCentury:"अगली सदी"});return ca.default=r,ca}var ua={},ag;function LS(){if(ag)return ua;ag=1,Object.defineProperty(ua,"__esModule",{value:!0}),ua.default=void 0;const e={placeholder:"समय का चयन करें",rangePlaceholder:["आरंभिक समय","अंत समय"]};return ua.default=e,ua}var ig;function DS(){if(ig)return la;ig=1;var e=Yt().default;Object.defineProperty(la,"__esModule",{value:!0}),la.default=void 0;var t=e(gO()),n=e(LS());const r={lang:Object.assign({placeholder:"तारीख़ चुनें",yearPlaceholder:"वर्ष चुनें",quarterPlaceholder:"तिमाही चुनें",monthPlaceholder:"महीना चुनिए",weekPlaceholder:"सप्ताह चुनें",rangePlaceholder:["प्रारंभ तिथि","समाप्ति तिथि"],rangeYearPlaceholder:["आरंभिक वर्ष","अंत वर्ष"],rangeMonthPlaceholder:["आरंभिक महीना","अंत महीना"],rangeWeekPlaceholder:["आरंभिक सप्ताह","अंत सप्ताह"]},t.default),timePickerLocale:Object.assign({},n.default)};return la.default=r,la}var lg;function yO(){if(lg)return ia;lg=1;var e=Yt().default;Object.defineProperty(ia,"__esModule",{value:!0}),ia.default=void 0;var t=e(DS());return ia.default=t.default,ia}var cg;function vO(){if(cg)return oa;cg=1;var e=Yt().default;Object.defineProperty(oa,"__esModule",{value:!0}),oa.default=void 0;var t=e(mO()),n=e(yO()),r=e(DS()),s=e(LS());const o="${label} मान्य ${type} नहीं है",a={locale:"hi",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"कृपया चुनें"},Table:{filterTitle:"सूची बंद करें",filterConfirm:"अच्छी तरह से",filterReset:"रीसेट",filterEmptyText:"कोई फ़िल्टर नहीं",emptyText:"कोई जानकारी नहीं",selectAll:"वर्तमान पृष्ठ का चयन करें",selectInvert:"वर्तमान पृष्ठ घुमाएं",selectNone:"सभी डेटा साफ़ करें",selectionAll:"सभी डेटा का चयन करें",sortTitle:"द्वारा क्रमबद्ध करें",expand:"पंक्ति का विस्तार करें",collapse:"पंक्ति संक्षिप्त करें",triggerDesc:"अवरोही क्रमित करने के लिए क्लिक करें",triggerAsc:"आरोही क्रमित करने के लिए क्लिक करें",cancelSort:"छँटाई रद्द करने के लिए क्लिक करें"},Modal:{okText:"अच्छी तरह से",cancelText:"रद्द करना",justOkText:"अच्छी तरह से"},Popconfirm:{okText:"अच्छी तरह से",cancelText:"रद्द करना"},Transfer:{titles:["",""],searchPlaceholder:"यहां खोजें",itemUnit:"तत्त्व",itemsUnit:"विषय-वस्तु",remove:"हटाए",selectCurrent:"वर्तमान पृष्ठ का चयन करें",removeCurrent:"वर्तमान पृष्ठ हटाएं",selectAll:"सभी डेटा का चयन करें",removeAll:"सभी डेटा हटाएं",selectInvert:"वर्तमान पृष्ठ को उल्टा करें"},Upload:{uploading:"अपलोड हो रहा...",removeFile:"फ़ाइल निकालें",uploadError:"अपलोड में त्रुटि",previewFile:"फ़ाइल पूर्वावलोकन",downloadFile:"फ़ाइल डाउनलोड करें"},Empty:{description:"कोई आकड़ा उपलब्ध नहीं है"},Icon:{icon:"आइकन"},Text:{edit:"संपादित करें",copy:"प्रतिलिपि",copied:"कॉपी किया गया",expand:"विस्तार"},Form:{optional:"(ऐच्छिक)",defaultValidateMessages:{default:"${label} के लिए फील्ड सत्यापन त्रुटि",required:"कृपया ${label} दर्ज करें",enum:"${label} [${enum}] में से एक होना चाहिए",whitespace:"${label} एक खाली अक्षर नहीं हो सकता",date:{format:"${label} तिथि प्रारूप अमान्य है",parse:"${label} को तारीख में नहीं बदला जा सकता",invalid:"${label} एक अमान्य तिथि है"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label} ${len} अक्षर का होना चाहिए",min:"${label} कम से कम ${min} वर्णों का होना चाहिए",max:"${label} अधिकतम ${max} वर्णों का होना चाहिए",range:"${label} ${min}-${max} वर्णों के बीच होना चाहिए"},number:{len:"${label} ${len} के बराबर होना चाहिए",min:"${label} कम से कम ${min} होना चाहिए",max:"${label} अधिकतम ${max} होना चाहिए",range:"${label} ${min}-${max} के बीच होना चाहिए"},array:{len:"${len} ${label} होना चाहिए",min:"कम से कम ${min} ${label}",max:"ज्यादा से ज्यादा ${max} ${label}",range:"${label} की राशि ${min}-${max} के बीच होनी चाहिए"},pattern:{mismatch:"${label} ${pattern} पैटर्न से मेल नहीं खाता"}}},Image:{preview:"पूर्वावलोकन"}};return oa.default=a,oa}var wu,ug;function bO(){return ug||(ug=1,wu=vO()),wu}var SO=bO();const xO=Ms(SO);var da={},fa={},dg;function wO(){if(dg)return fa;dg=1,Object.defineProperty(fa,"__esModule",{value:!0}),fa.default=void 0;var e={items_per_page:"件 / ページ",jump_to:"移動",jump_to_confirm:"確認する",page:"ページ",prev_page:"前のページ",next_page:"次のページ",prev_5:"前 5ページ",next_5:"次 5ページ",prev_3:"前 3ページ",next_3:"次 3ページ",page_size:"ページサイズ"};return fa.default=e,fa}var ha={},pa={},ma={},fg;function _O(){if(fg)return ma;fg=1;var e=Yt().default;Object.defineProperty(ma,"__esModule",{value:!0}),ma.default=void 0;var t=e(bo()),n=So(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"ja_JP",today:"今日",now:"現在時刻",backToToday:"今日に戻る",ok:"確定",timeSelect:"時間を選択",dateSelect:"日時を選択",weekSelect:"週を選択",clear:"クリア",week:"週",month:"月",year:"年",previousMonth:"前月 (ページアップキー)",nextMonth:"翌月 (ページダウンキー)",monthSelect:"月を選択",yearSelect:"年を選択",decadeSelect:"年代を選択",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"前年 (Controlを押しながら左キー)",nextYear:"翌年 (Controlを押しながら右キー)",previousDecade:"前の年代",nextDecade:"次の年代",previousCentury:"前の世紀",nextCentury:"次の世紀",monthBeforeYear:!1});return ma.default=r,ma}var ga={},hg;function FS(){if(hg)return ga;hg=1,Object.defineProperty(ga,"__esModule",{value:!0}),ga.default=void 0;const e={placeholder:"時間を選択",rangePlaceholder:["開始時間","終了時間"]};return ga.default=e,ga}var pg;function NS(){if(pg)return pa;pg=1;var e=Yt().default;Object.defineProperty(pa,"__esModule",{value:!0}),pa.default=void 0;var t=e(_O()),n=e(FS());const r={lang:Object.assign({placeholder:"日付を選択",yearPlaceholder:"年を選択",quarterPlaceholder:"四半期を選択",monthPlaceholder:"月を選択",weekPlaceholder:"週を選択",rangePlaceholder:["開始日付","終了日付"],rangeYearPlaceholder:["開始年","終了年"],rangeMonthPlaceholder:["開始月","終了月"],rangeQuarterPlaceholder:["開始四半期","終了四半期"],rangeWeekPlaceholder:["開始週","終了週"],shortWeekDays:["日","月","火","水","木","金","土"],shortMonths:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},t.default),timePickerLocale:Object.assign({},n.default)};return pa.default=r,pa}var mg;function CO(){if(mg)return ha;mg=1;var e=Yt().default;Object.defineProperty(ha,"__esModule",{value:!0}),ha.default=void 0;var t=e(NS());return ha.default=t.default,ha}var gg;function kO(){if(gg)return da;gg=1;var e=Yt().default;Object.defineProperty(da,"__esModule",{value:!0}),da.default=void 0;var t=e(wO()),n=e(CO()),r=e(NS()),s=e(FS());const o="${label}は有効な${type}ではありません",a={locale:"ja",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"選んでください"},Table:{filterTitle:"フィルター",filterConfirm:"OK",filterReset:"リセット",filterEmptyText:"フィルターなし",filterCheckAll:"すべてを選択",filterSearchPlaceholder:"フィルターで検索",emptyText:"データなし",selectAll:"ページ単位で選択",selectInvert:"ページ単位で反転",selectNone:"クリア",selectionAll:"すべてを選択",sortTitle:"ソート",expand:"展開する",collapse:"折り畳む",triggerDesc:"クリックで降順にソート",triggerAsc:"クリックで昇順にソート",cancelSort:"ソートをキャンセル"},Tour:{Next:"次",Previous:"前の",Finish:"仕上げる"},Modal:{okText:"OK",cancelText:"キャンセル",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"キャンセル"},Transfer:{titles:["",""],searchPlaceholder:"ここを検索",itemUnit:"アイテム",itemsUnit:"アイテム",remove:"削除",selectCurrent:"現在のページを選択",removeCurrent:"現在のページを削除",selectAll:"ページ単位で選択",deselectAll:"すべてのデータの選択を解除する",removeAll:"ページ単位で削除",selectInvert:"ページ単位で反転"},Upload:{uploading:"アップロード中...",removeFile:"ファイルを削除",uploadError:"アップロードエラー",previewFile:"ファイルをプレビュー",downloadFile:"ダウンロードファイル"},Empty:{description:"データがありません"},Icon:{icon:"アイコン"},Text:{edit:"編集",copy:"コピー",copied:"コピーされました",expand:"拡大する",collapse:"崩壊"},Form:{optional:"(オプション)",defaultValidateMessages:{default:"${label}のフィールド検証エラー",required:"${label}を入力してください",enum:"${label}は[${enum}]のいずれかである必要があります",whitespace:"${label}は空白文字にすることはできません",date:{format:"${label}の日付形式は不正です",parse:"${label}は日付に変換できません",invalid:"${label}は不正な日付です"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}は${len}文字である必要があります",min:"${label}は${min}文字以上である必要があります",max:"${label}は${max}文字以下である必要があります",range:"${label}は${min}-${max}文字の範囲である必要があります"},number:{len:"${label}は${len}と等しい必要があります",min:"${label}の最小値は${min}です",max:"${label}の最大値は${max}です",range:"${label}は${min}-${max}の範囲である必要があります"},array:{len:"${label}は${len}である必要があります",min:"${label}の最小は${min}です",max:"${label}の最大は${max}です",range:"${label}の合計は${min}-${max}の範囲である必要があります"},pattern:{mismatch:"${label}はパターン${pattern}と一致しません"}}},Image:{preview:"プレビュー"},QRCode:{expired:"QRコードの有効期限が切れました",refresh:"リフレッシュ",scanned:"スキャン済み"},ColorPicker:{presetEmpty:"空の",transparent:"透明",singleColor:"単色",gradientColor:"グラデーション"}};return da.default=a,da}var _u,yg;function TO(){return yg||(yg=1,_u=kO()),_u}var PO=TO();const EO=Ms(PO);var ya={},va={},vg;function MO(){if(vg)return va;vg=1,Object.defineProperty(va,"__esModule",{value:!0}),va.default=void 0;var e={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页",page_size:"页码"};return va.default=e,va}var ba={},Sa={},xa={},bg;function AO(){if(bg)return xa;bg=1;var e=Yt().default;Object.defineProperty(xa,"__esModule",{value:!0}),xa.default=void 0;var t=e(bo()),n=So(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",week:"周",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪",yearFormat:"YYYY年",cellDateFormat:"D",monthBeforeYear:!1});return xa.default=r,xa}var wa={},Sg;function zS(){if(Sg)return wa;Sg=1,Object.defineProperty(wa,"__esModule",{value:!0}),wa.default=void 0;const e={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};return wa.default=e,wa}var xg;function BS(){if(xg)return Sa;xg=1;var e=Yt().default;Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.default=void 0;var t=e(AO()),n=e(zS());const r={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},t.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="确定",Sa.default=r,Sa}var wg;function RO(){if(wg)return ba;wg=1;var e=Yt().default;Object.defineProperty(ba,"__esModule",{value:!0}),ba.default=void 0;var t=e(BS());return ba.default=t.default,ba}var _g;function jO(){if(_g)return ya;_g=1;var e=Yt().default;Object.defineProperty(ya,"__esModule",{value:!0}),ya.default=void 0;var t=e(MO()),n=e(RO()),r=e(BS()),s=e(zS());const o="${label}不是一个有效的${type}",a={locale:"zh-cn",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"请选择"},Table:{filterTitle:"筛选",filterConfirm:"确定",filterReset:"重置",filterEmptyText:"无筛选项",filterCheckAll:"全选",filterSearchPlaceholder:"在筛选项中搜索",emptyText:"暂无数据",selectAll:"全选当页",selectInvert:"反选当页",selectNone:"清空所有",selectionAll:"全选所有",sortTitle:"排序",expand:"展开行",collapse:"关闭行",triggerDesc:"点击降序",triggerAsc:"点击升序",cancelSort:"取消排序"},Modal:{okText:"确定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"结束导览"},Popconfirm:{cancelText:"取消",okText:"确定"},Transfer:{titles:["",""],searchPlaceholder:"请输入搜索内容",itemUnit:"项",itemsUnit:"项",remove:"删除",selectCurrent:"全选当页",removeCurrent:"删除当页",selectAll:"全选所有",deselectAll:"取消全选",removeAll:"删除全部",selectInvert:"反选当页"},Upload:{uploading:"文件上传中",removeFile:"删除文件",uploadError:"上传错误",previewFile:"预览文件",downloadFile:"下载文件"},Empty:{description:"暂无数据"},Icon:{icon:"图标"},Text:{edit:"编辑",copy:"复制",copied:"复制成功",expand:"展开",collapse:"收起"},Form:{optional:"(可选)",defaultValidateMessages:{default:"字段验证错误${label}",required:"请输入${label}",enum:"${label}必须是其中一个[${enum}]",whitespace:"${label}不能为空字符",date:{format:"${label}日期格式无效",parse:"${label}不能转换为日期",invalid:"${label}是一个无效日期"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}须为${len}个字符",min:"${label}最少${min}个字符",max:"${label}最多${max}个字符",range:"${label}须在${min}-${max}字符之间"},number:{len:"${label}必须等于${len}",min:"${label}最小值为${min}",max:"${label}最大值为${max}",range:"${label}须在${min}-${max}之间"},array:{len:"须为${len}个${label}",min:"最少${min}个${label}",max:"最多${max}个${label}",range:"${label}数量须在${min}-${max}之间"},pattern:{mismatch:"${label}与模式不匹配${pattern}"}}},Image:{preview:"预览"},QRCode:{expired:"二维码过期",refresh:"点击刷新",scanned:"已扫描"},ColorPicker:{presetEmpty:"暂无",transparent:"无色",singleColor:"单色",gradientColor:"渐变色"}};return ya.default=a,ya}var Cu,Cg;function IO(){return Cg||(Cg=1,Cu=jO()),Cu}var OO=IO();const $O=Ms(OO);var _a={},Ca={},kg;function LO(){if(kg)return Ca;kg=1,Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.default=void 0;var e={items_per_page:"條/頁",jump_to:"跳至",jump_to_confirm:"確定",page:"頁",prev_page:"上一頁",next_page:"下一頁",prev_5:"向前 5 頁",next_5:"向後 5 頁",prev_3:"向前 3 頁",next_3:"向後 3 頁",page_size:"頁碼"};return Ca.default=e,Ca}var ka={},Ta={},Pa={},Tg;function DO(){if(Tg)return Pa;Tg=1;var e=Yt().default;Object.defineProperty(Pa,"__esModule",{value:!0}),Pa.default=void 0;var t=e(bo()),n=So(),r=(0,t.default)((0,t.default)({},n.commonLocale),{},{locale:"zh_TW",today:"今天",now:"此刻",backToToday:"返回今天",ok:"確定",timeSelect:"選擇時間",dateSelect:"選擇日期",weekSelect:"選擇周",clear:"清除",week:"週",month:"月",year:"年",previousMonth:"上個月 (翻頁上鍵)",nextMonth:"下個月 (翻頁下鍵)",monthSelect:"選擇月份",yearSelect:"選擇年份",decadeSelect:"選擇年代",yearFormat:"YYYY年",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH時mm分ss秒",previousYear:"上一年 (Control鍵加左方向鍵)",nextYear:"下一年 (Control鍵加右方向鍵)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世紀",nextCentury:"下一世紀",cellDateFormat:"D",monthBeforeYear:!1});return Pa.default=r,Pa}var Ea={},Pg;function WS(){if(Pg)return Ea;Pg=1,Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.default=void 0;const e={placeholder:"請選擇時間"};return Ea.default=e,Ea}var Eg;function US(){if(Eg)return Ta;Eg=1;var e=Yt().default;Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.default=void 0;var t=e(DO()),n=e(WS());const r={lang:Object.assign({placeholder:"請選擇日期",yearPlaceholder:"請選擇年份",quarterPlaceholder:"請選擇季度",monthPlaceholder:"請選擇月份",weekPlaceholder:"請選擇周",rangePlaceholder:["開始日期","結束日期"],rangeYearPlaceholder:["開始年份","結束年份"],rangeMonthPlaceholder:["開始月份","結束月份"],rangeQuarterPlaceholder:["開始季度","結束季度"],rangeWeekPlaceholder:["開始周","結束周"]},t.default),timePickerLocale:Object.assign({},n.default)};return r.lang.ok="確 定",Ta.default=r,Ta}var Mg;function FO(){if(Mg)return ka;Mg=1;var e=Yt().default;Object.defineProperty(ka,"__esModule",{value:!0}),ka.default=void 0;var t=e(US());return ka.default=t.default,ka}var Ag;function NO(){if(Ag)return _a;Ag=1;var e=Yt().default;Object.defineProperty(_a,"__esModule",{value:!0}),_a.default=void 0;var t=e(LO()),n=e(FO()),r=e(US()),s=e(WS());const o="${label}不是一個有效的${type}",a={locale:"zh-tw",Pagination:t.default,DatePicker:r.default,TimePicker:s.default,Calendar:n.default,global:{placeholder:"請選擇"},Table:{filterTitle:"篩選器",filterConfirm:"確定",filterReset:"重置",filterEmptyText:"無篩選項",filterCheckAll:"全選",filterSearchPlaceholder:"在篩選項中搜尋",emptyText:"暫無數據",selectAll:"全部選取",selectInvert:"反向選取",selectNone:"清空所有",selectionAll:"全選所有",sortTitle:"排序",expand:"展開行",collapse:"關閉行",triggerDesc:"點擊降序",triggerAsc:"點擊升序",cancelSort:"取消排序"},Modal:{okText:"確定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"結束導覽"},Popconfirm:{okText:"確定",cancelText:"取消"},Transfer:{titles:["",""],searchPlaceholder:"搜尋資料",itemUnit:"項目",itemsUnit:"項目",remove:"删除",selectCurrent:"全選當頁",removeCurrent:"删除當頁",selectAll:"全選所有",removeAll:"删除全部",selectInvert:"反選當頁"},Upload:{uploading:"正在上傳...",removeFile:"刪除檔案",uploadError:"上傳失敗",previewFile:"檔案預覽",downloadFile:"下载文件"},Empty:{description:"無此資料"},Icon:{icon:"圖標"},Text:{edit:"編輯",copy:"複製",copied:"複製成功",expand:"展開",collapse:"收起"},Form:{optional:"(可選)",defaultValidateMessages:{default:"字段驗證錯誤${label}",required:"請輸入${label}",enum:"${label}必須是其中一個[${enum}]",whitespace:"${label}不能為空字符",date:{format:"${label}日期格式無效",parse:"${label}不能轉換為日期",invalid:"${label}是一個無效日期"},types:{string:o,method:o,array:o,object:o,number:o,date:o,boolean:o,integer:o,float:o,regexp:o,email:o,url:o,hex:o},string:{len:"${label}須為${len}個字符",min:"${label}最少${min}個字符",max:"${label}最多${max}個字符",range:"${label}須在${min}-${max}字符之間"},number:{len:"${label}必須等於${len}",min:"${label}最小值為${min}",max:"${label}最大值為${max}",range:"${label}須在${min}-${max}之間"},array:{len:"須為${len}個${label}",min:"最少${min}個${label}",max:"最多${max}個${label}",range:"${label}數量須在${min}-${max}之間"},pattern:{mismatch:"${label}與模式不匹配${pattern}"}}},Image:{preview:"預覽"},QRCode:{expired:"二維碼過期",refresh:"點擊刷新",scanned:"已掃描"},ColorPicker:{presetEmpty:"暫無",transparent:"透明",singleColor:"單色",gradientColor:"漸變色"}};return _a.default=a,_a}var ku,Rg;function zO(){return Rg||(Rg=1,ku=NO()),ku}var BO=zO();const WO=Ms(BO),jg=e=>{switch(e){case"zh-CN":return $O;case"zh-TW":return WO;case"fr-FR":return pO;case"ja-JP":return EO;case"hi-IN":return xO;default:return iO}},qS="lotus_vdi_safe_mode",Ig=()=>{try{return localStorage.getItem(qS)==="true"}catch{return!1}},A$=e=>{try{localStorage.setItem(qS,e.toString())}catch(t){console.error("[vdiSafeMode] Failed to persist setting:",t)}};async function UO(){const e=Yn.getInstance();for(const t of Object.keys(localStorage))if(t.startsWith("chat-model-options-cache-v1:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&Array.isArray(s.options)&&(await e.saveModelOptionsCache(n,s.options,s.timestamp),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-diff-collapse:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&typeof s.isExpanded=="boolean"&&(await e.saveDiffCollapse(n,{isExpanded:s.isExpanded,expandedFiles:s.expandedFiles||[]}),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}for(const t of Object.keys(localStorage))if(t.startsWith("chat-session-tool-collapse:")){const n=t.split(":");if(n.length>=3){const r=n[1],s=n.slice(2).join(":");try{const o=localStorage.getItem(t);if(o){const a=JSON.parse(o);a&&typeof a.isExpanded=="boolean"&&(await e.saveToolSessionCollapse(r,s,{isExpanded:a.isExpanded,expandedTools:a.expandedTools||[]}),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}}try{const t=localStorage.getItem("chat_input_reasoning_by_session_v1");if(t){const n=JSON.parse(t);for(const[r,s]of Object.entries(n))typeof s=="string"&&await e.saveInputReasoning(r,s);localStorage.removeItem("chat_input_reasoning_by_session_v1")}}catch{localStorage.removeItem("chat_input_reasoning_by_session_v1")}try{const t=localStorage.getItem("chat_input_reasoning_last_used_v1");t&&typeof t=="string"&&(await e.saveLastUsedReasoningEffort(t),localStorage.removeItem("chat_input_reasoning_last_used_v1"))}catch{localStorage.removeItem("chat_input_reasoning_last_used_v1")}for(const t of Object.keys(localStorage))if(t.startsWith("chat_scroll_anchor_v2:")){const n=t.split(":")[1];try{const r=localStorage.getItem(t);if(r){const s=JSON.parse(r);s&&s.v===1&&typeof s.anchorId=="string"&&(await e.saveScrollAnchor(n,s),localStorage.removeItem(t))}}catch{localStorage.removeItem(t)}}localStorage.removeItem("chat_scroll_anchors_v1")}const qO="copilot_ui_theme_v1",wd={colorPrimary:"#0d9488",colorPrimaryHover:"#14b8a6",colorPrimaryActive:"#0f766e",colorInfo:"#0d9488",colorLink:"#0d9488",colorLinkHover:"#14b8a6",colorLinkActive:"#0f766e",colorSuccess:"#10b981",colorWarning:"#f59e0b",colorError:"#ef4444",colorText:"#0f172a",colorTextSecondary:"#475569",colorTextTertiary:"#64748b",colorTextDisabled:"#94a3b8",colorTextLightSolid:"#ffffff",colorBorder:"#d1e3e0",colorBorderSecondary:"#e2f0ee",colorFill:"#f0fdfa",colorFillSecondary:"#f7fdfb",colorFillTertiary:"rgba(255, 255, 255, 0.82)",colorFillQuaternary:"transparent",colorBgLayout:"#f0fdfa",colorBgContainer:"rgba(255, 255, 255, 0.82)",colorBgElevated:"rgba(255, 255, 255, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.16)",colorPrimaryBg:"#f0fdfa",colorPrimaryBgHover:"#ccfbf1",colorPrimaryBorder:"#99f6e4",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 12px 36px rgba(15, 118, 110, 0.10), 0 6px 18px rgba(15, 23, 42, 0.06)",boxShadowSecondary:"0 20px 48px rgba(15, 118, 110, 0.12), 0 8px 24px rgba(15, 23, 42, 0.08)"},_d={colorPrimary:"#2dd4bf",colorPrimaryHover:"#5eead4",colorPrimaryActive:"#0d9488",colorInfo:"#2dd4bf",colorLink:"#2dd4bf",colorLinkHover:"#5eead4",colorLinkActive:"#0d9488",colorSuccess:"#34d399",colorWarning:"#fbbf24",colorError:"#f87171",colorText:"#e5edf8",colorTextSecondary:"#b7c4d6",colorTextTertiary:"#8d9bb0",colorTextDisabled:"#627085",colorBorder:"rgba(255, 255, 255, 0.10)",colorBorderSecondary:"rgba(255, 255, 255, 0.06)",colorFill:"#0c1a17",colorFillSecondary:"#091412",colorFillTertiary:"rgba(15, 23, 42, 0.74)",colorFillQuaternary:"transparent",colorBgLayout:"#070e0c",colorBgContainer:"rgba(11, 22, 18, 0.76)",colorBgElevated:"rgba(15, 30, 25, 0.9)",colorBgSpotlight:"rgba(13, 148, 136, 0.20)",colorPrimaryBg:"rgba(13, 148, 136, 0.14)",colorPrimaryBgHover:"rgba(13, 148, 136, 0.18)",colorPrimaryBorder:"rgba(45, 212, 191, 0.28)",borderRadius:10,borderRadiusLG:18,borderRadiusSM:10,boxShadow:"0 16px 40px rgba(2, 6, 23, 0.42), 0 8px 20px rgba(15, 23, 42, 0.24)",boxShadowSecondary:"0 24px 56px rgba(2, 6, 23, 0.5), 0 10px 28px rgba(15, 23, 42, 0.28)"},Cd={Tag:{defaultBg:"rgba(13, 148, 136, 0.1)",defaultColor:"#0f766e"},Table:{bodySortBg:"rgba(13, 148, 136, 0.08)"}},kd={Tag:{defaultBg:"rgba(45, 212, 191, 0.18)",defaultColor:"#ccfbf1"},Table:{bodySortBg:"rgba(45, 212, 191, 0.14)"}},Og={...wd,colorBgElevated:"#ffffff",colorBgSpotlight:"#0f172a",colorFillTertiary:"#f3f7f6"},$g={..._d,colorBgElevated:"#0f1b18",colorBgSpotlight:"#22332f",colorFillTertiary:"#162622"},Lg={...Cd,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"}},Dg={...kd,Menu:{popupBg:"#0f1b18",darkPopupBg:"#0f1b18",itemBg:"transparent",itemHoverBg:"#162622",itemActiveBg:"#162622",itemSelectedBg:"#12332d",subMenuItemBg:"#0f1b18",dangerItemActiveBg:"#3a161c",dangerItemSelectedBg:"#3a161c"},Select:{selectorBg:"#0f1b18",clearBg:"#0f1b18",optionActiveBg:"#162622",optionSelectedBg:"#12332d"},Modal:{contentBg:"#0f1b18",headerBg:"#0f1b18",footerBg:"#0f1b18"}};function HO(){const{t:e}=Ge(),t=wl(C=>C.themeMode),n=wl(C=>C.setThemeMode),[r,s]=b.useState(()=>aw()),[o,a]=b.useState(()=>Ig()),[i,c]=b.useState(null),[d,h]=b.useState(null),[m,g]=b.useState(0),[y,x]=b.useState(null),[S,_]=b.useState(!1);if(b.useEffect(()=>{localStorage.setItem(qO,t)},[t]),b.useEffect(()=>{localStorage.setItem(iw,r),lw(r)},[r]),b.useEffect(()=>{let C=!1;const A=Date.now(),I=async()=>{try{const O=co.getInstance(),$=await O.getAccessStatus();if(C)return;if(h(null),x($),$.requires_password&&!S){c(!1);return}const B=await O.getSetupStatus();if(C)return;c(B.is_complete)}catch(O){if(C)return;const $=Date.now()-A;if($>=2e4){const H=ho(),L=O instanceof Error&&O.message.trim()?O.message:"Unknown error";h(e("app.backendNotReachable",{baseUrl:H,message:L}));return}const te=Math.min(500+Math.floor($/2),2e3);setTimeout(()=>{C||I()},te)}};return I(),()=>{C=!0}},[S,m,e]),b.useEffect(()=>{document.body.setAttribute("data-theme",t)},[t]),b.useEffect(()=>{const C=()=>{const A=Ig();a(A),document.body.setAttribute("data-vdi-safe",A?"true":"false");const I=document.getElementById("root");I&&I.setAttribute("data-vdi-safe",A?"true":"false")};return C(),window.addEventListener("storage",C),window.addEventListener("lotus-vdi-safe-mode-change",C),()=>{window.removeEventListener("storage",C),window.removeEventListener("lotus-vdi-safe-mode-change",C)}},[]),b.useEffect(()=>{var A;const C=(A=window.__TAURI_INTERNALS__)==null?void 0:A.invoke;typeof C=="function"&&C("set_window_theme",{theme:t}).catch(I=>{console.warn("[App] Failed to sync native window theme:",I)})},[t]),b.useEffect(()=>{i&&Wd().then(()=>Ud()).catch(C=>{console.error("[App] Bootstrap error:",C)})},[i]),b.useEffect(()=>{const C=Yn.getInstance();C.cleanupStaleData(30).catch(I=>{console.warn("[App] Failed to cleanup stale storage data:",I)});const A=setInterval(()=>{C.cleanupStaleData(30).catch(()=>{})},24*60*60*1e3);return()=>clearInterval(A)},[]),b.useEffect(()=>{const C=setTimeout(()=>{UO().catch(A=>{console.warn("[App] Storage migration failed:",A)})},5e3);return()=>clearTimeout(C)},[]),y!=null&&y.requires_password&&!S)return l.jsx(ih,{locale:jg(r),theme:{token:t==="dark"?o?$g:_d:o?Og:wd,algorithm:t==="dark"?ut.darkAlgorithm:ut.defaultAlgorithm,components:t==="dark"?o?Dg:kd:o?Lg:Cd},children:l.jsx(Dn,{children:l.jsx(ei,{name:"PasswordGatePage",children:l.jsx(JI,{verifyPassword:async C=>{await co.getInstance().verifyAccessPassword(C)},onVerified:async()=>{_(!0),h(null),g(C=>C+1)}})})})});if(i===null)return d?l.jsxs("div",{style:{padding:40,textAlign:"center"},children:[l.jsx("div",{style:{marginBottom:12},children:d}),l.jsx(je,{type:"primary",onClick:()=>{h(null),x(null),c(null),g(C=>C+1)},children:e("app.retry")})]}):l.jsx("div",{style:{padding:40,textAlign:"center"},children:e("app.loading")});const E=i?l.jsx(KI,{themeMode:t,onThemeModeChange:n,locale:r,onLocaleChange:s}):l.jsx(VI,{}),T=t==="dark"?o?$g:_d:o?Og:wd,P=t==="dark"?o?Dg:kd:o?Lg:Cd;return l.jsx(ih,{locale:jg(r),theme:{token:T,algorithm:t==="dark"?ut.darkAlgorithm:ut.defaultAlgorithm,components:P},children:l.jsx(Dn,{children:l.jsx(ei,{name:"App",children:l.jsx("div",{style:{position:"relative"},children:E})})})})}const R$=Object.freeze(Object.defineProperty({__proto__:null,default:HO},Symbol.toStringTag,{value:"Module"}));export{Zd as $,M$ as A,Ve as B,Ju as C,Ga as D,NP as E,Jd as F,m1 as G,Ql as H,Xc as I,Jl as J,Gl as K,Qa as L,PT as M,Dy as N,er as O,_T as P,Du as Q,hs as R,Yd as S,f$ as T,h$ as U,v$ as V,_w as W,co as X,Ma as Y,_s as Z,Qy as _,xt as a,p$ as a0,S$ as a1,QO as a2,LT as a3,kh as a4,lT as a5,dT as a6,sv as a7,Ig as a8,vT as a9,b$ as aa,y$ as ab,g$ as ac,m$ as ad,A$ as ae,ZO as af,d$ as ag,R$ as ah,Wa as b,Ua as c,wl as d,gt as e,AS as f,Jn as g,ro as h,Fd as i,av as j,It as k,Ry as l,RR as m,Is as n,D0 as o,Dc as p,Fr as q,$T as r,li as s,qa as t,ae as u,ep as v,Re as w,go as x,oi as y,Ir as z};