@bigduu/lotus 2026.7.12 → 2026.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/assets/{ChildApprovalDialog-B_n6Ybdv.js → ChildApprovalDialog-B8LV5Brg.js} +1 -1
  2. package/dist/assets/{CommandPalette-DjzI2pTn.js → CommandPalette-Bv7nlRLt.js} +1 -1
  3. package/dist/assets/{CommandSelector-BekiEqh5.js → CommandSelector-C3ulsDEO.js} +1 -1
  4. package/dist/assets/{ContextBar-CnIYvaBh.js → ContextBar-BZbSoylh.js} +1 -1
  5. package/dist/assets/{HomeDashboard-oH5yd1vb.js → HomeDashboard-CgF7UUMa.js} +1 -1
  6. package/dist/assets/{MetricsService-C89VqmCU.js → MetricsService-D9UHnvd2.js} +9 -9
  7. package/dist/assets/{QuestionDialog-BGmc5T2Q.js → QuestionDialog--OHAcOEw.js} +1 -1
  8. package/dist/assets/{SessionSummaryCard-CkJ4Ogvy.js → SessionSummaryCard-k8eqS5lA.js} +1 -1
  9. package/dist/assets/{SubAgentsPanel-CAeEPWG3.js → SubAgentsPanel-DrzlO9tS.js} +1 -1
  10. package/dist/assets/{SystemPromptSelector-D2ootx2k.js → SystemPromptSelector-Cgw6oRAS.js} +1 -1
  11. package/dist/assets/SystemSettingsPage-CBDYfyHt.js +22 -0
  12. package/dist/assets/{TodoList-T6kky_4B.js → TodoList-Bf7mCaiV.js} +1 -1
  13. package/dist/assets/{WorkspacePathModal-CUjPDoc_.js → WorkspacePathModal-BAca14jc.js} +1 -1
  14. package/dist/assets/{architectureDiagram-3BPJPVTR-DLK1gMqj.js → architectureDiagram-3BPJPVTR-Cc0X2SOX.js} +1 -1
  15. package/dist/assets/{blockDiagram-GPEHLZMM-C0NrEsKt.js → blockDiagram-GPEHLZMM-C0KHavBI.js} +1 -1
  16. package/dist/assets/{c4Diagram-AAUBKEIU-EMtKW39L.js → c4Diagram-AAUBKEIU-CUf6i_A7.js} +1 -1
  17. package/dist/assets/{chunk-4BX2VUAB-C3d--VIN.js → chunk-4BX2VUAB-BJh4D-bi.js} +1 -1
  18. package/dist/assets/{chunk-QZHKN3VN-Dk0mCz9-.js → chunk-QZHKN3VN-BPX3Wbyh.js} +1 -1
  19. package/dist/assets/{classDiagram-v2-Q7XG4LA2-CWS9sLNc.js → classDiagram-v2-Q7XG4LA2-BJbnmQ0y.js} +1 -1
  20. package/dist/assets/{cose-bilkent-S5V4N54A-BmOdcRKt.js → cose-bilkent-S5V4N54A-zbmmH2SQ.js} +1 -1
  21. package/dist/assets/{dagre-BM42HDAG-D-bUMkRu.js → dagre-BM42HDAG-D2ARftVi.js} +1 -1
  22. package/dist/assets/{diagram-2AECGRRQ-DqDRXgPN.js → diagram-2AECGRRQ-DS_VIDcC.js} +1 -1
  23. package/dist/assets/{diagram-5GNKFQAL-b5E-6nFQ.js → diagram-5GNKFQAL-DdKodxQe.js} +1 -1
  24. package/dist/assets/{diagram-KO2AKTUF-DdY7JK_0.js → diagram-KO2AKTUF-DyYogOtU.js} +1 -1
  25. package/dist/assets/{diagram-LMA3HP47-DgatY2IG.js → diagram-LMA3HP47-CRsDsyq7.js} +1 -1
  26. package/dist/assets/{diagram-OG6HWLK6-24xCofgD.js → diagram-OG6HWLK6-B8vR2DMt.js} +1 -1
  27. package/dist/assets/{erDiagram-TEJ5UH35-D0Gey1BE.js → erDiagram-TEJ5UH35-Bli7r7qi.js} +1 -1
  28. package/dist/assets/{flowDiagram-I6XJVG4X-B6U9ME1L.js → flowDiagram-I6XJVG4X-CYBm2UVK.js} +1 -1
  29. package/dist/assets/{ganttDiagram-6RSMTGT7-DilFRMw7.js → ganttDiagram-6RSMTGT7-C1M6PTcZ.js} +1 -1
  30. package/dist/assets/{gitGraphDiagram-PVQCEYII-DaVyEvTc.js → gitGraphDiagram-PVQCEYII-CfzDNeeT.js} +1 -1
  31. package/dist/assets/{ishikawaDiagram-YF4QCWOH-BGdlijUg.js → ishikawaDiagram-YF4QCWOH-CXNXjWYv.js} +1 -1
  32. package/dist/assets/{journeyDiagram-JHISSGLW-CWLMxmKi.js → journeyDiagram-JHISSGLW-k2I2en9e.js} +1 -1
  33. package/dist/assets/{kanban-definition-UN3LZRKU-D_a7lScw.js → kanban-definition-UN3LZRKU-fBzcWVq1.js} +1 -1
  34. package/dist/assets/{main-C8a7IHwC.js → main-CMBp6TFR.js} +7 -7
  35. package/dist/assets/{mindmap-definition-RKZ34NQL-BasBmfec.js → mindmap-definition-RKZ34NQL-C0aMOvXZ.js} +1 -1
  36. package/dist/assets/{pieDiagram-4H26LBE5-S4w4FbtF.js → pieDiagram-4H26LBE5-3JdASr15.js} +1 -1
  37. package/dist/assets/{quadrantDiagram-W4KKPZXB-91BUCW0p.js → quadrantDiagram-W4KKPZXB-DjWz9ih0.js} +1 -1
  38. package/dist/assets/{requirementDiagram-4Y6WPE33-BWvY5mIA.js → requirementDiagram-4Y6WPE33-Cuya5SaT.js} +1 -1
  39. package/dist/assets/{sankeyDiagram-5OEKKPKP-OiIZ5WXk.js → sankeyDiagram-5OEKKPKP-DYfSOmpL.js} +1 -1
  40. package/dist/assets/{sequenceDiagram-3UESZ5HK-CT1uCTgf.js → sequenceDiagram-3UESZ5HK-B5UJcnmP.js} +1 -1
  41. package/dist/assets/{stateDiagram-AJRCARHV--aI5VQEx.js → stateDiagram-AJRCARHV-DZXWrQl1.js} +1 -1
  42. package/dist/assets/{stateDiagram-v2-BHNVJYJU-DSpEO8P2.js → stateDiagram-v2-BHNVJYJU-DVbPbZiG.js} +1 -1
  43. package/dist/assets/{timeline-definition-PNZ67QCA-CPj-ecmC.js → timeline-definition-PNZ67QCA-B40Lgfp8.js} +1 -1
  44. package/dist/assets/{vendor-charts-CoZ00Nsw.js → vendor-charts-CNLSFcom.js} +1 -1
  45. package/dist/assets/{vendor-mermaid-BYH4D4XO.js → vendor-mermaid-GjPwPGd2.js} +3 -3
  46. package/dist/assets/{vendor-pdf-t-TK5evW.js → vendor-pdf-B2zC5nd1.js} +3 -3
  47. package/dist/assets/{vennDiagram-CIIHVFJN-Bs7RWHXR.js → vennDiagram-CIIHVFJN-CZvfEIkq.js} +1 -1
  48. package/dist/assets/{wardley-L42UT6IY-DZQ4GuLZ.js → wardley-L42UT6IY-BiXJ6t8a.js} +1 -1
  49. package/dist/assets/{wardleyDiagram-YWT4CUSO-BpCITa50.js → wardleyDiagram-YWT4CUSO-D49vkhGv.js} +1 -1
  50. package/dist/assets/{xychartDiagram-2RQKCTM6-BVY9sNsk.js → xychartDiagram-2RQKCTM6-DPMEuY_W.js} +1 -1
  51. package/dist/index.html +2 -2
  52. package/package.json +1 -1
  53. package/dist/assets/SystemSettingsPage-Cj-26_Nm.js +0 -22
@@ -1,4 +1,4 @@
1
- import{j as i}from"./vendor-markdown-Bz_2-zkk.js";import{R as ye,u as ve,a as r}from"./vendor-i18n-Dm-c3D_C.js";import{u as T,h as xe,j as qe,k as Ee,l as j,r as he,n as Ce,q as Se,d as Re,t as Y,v as A,w as L}from"./MetricsService-C89VqmCU.js";/* empty css */import{A as we,T as ke,B as Z,$ as be,ae as Te,a5 as F,j as ee,af as je,t as De}from"./vendor-antd-IzIw5qDM.js";import"./vendor-mermaid-BYH4D4XO.js";import"./main-C8a7IHwC.js";const a={questionCard:"qd-questionCard",questionHeader:"qd-questionHeader",headerLeft:"qd-headerLeft",questionIcon:"qd-questionIcon",questionText:"qd-questionText",collapseBtn:"qd-collapseBtn",questionBody:"qd-questionBody",optionsGroup:"qd-optionsGroup",optionItem:"qd-optionItem",customHint:"qd-customHint",questionFooter:"qd-questionFooter"},{Text:D}=ke,{useToken:Ne}=De,Be=n=>{const f=(n||"").replace(/\\r\\n/g,`
1
+ import{j as i}from"./vendor-markdown-Bz_2-zkk.js";import{R as ye,u as ve,a as r}from"./vendor-i18n-Dm-c3D_C.js";import{u as T,h as xe,j as qe,k as Ee,l as j,r as he,n as Ce,q as Se,d as Re,t as Y,v as A,w as L}from"./MetricsService-D9UHnvd2.js";/* empty css */import{A as we,T as ke,B as Z,$ as be,ae as Te,a5 as F,j as ee,af as je,t as De}from"./vendor-antd-IzIw5qDM.js";import"./vendor-mermaid-GjPwPGd2.js";import"./main-CMBp6TFR.js";const a={questionCard:"qd-questionCard",questionHeader:"qd-questionHeader",headerLeft:"qd-headerLeft",questionIcon:"qd-questionIcon",questionText:"qd-questionText",collapseBtn:"qd-collapseBtn",questionBody:"qd-questionBody",optionsGroup:"qd-optionsGroup",optionItem:"qd-optionItem",customHint:"qd-customHint",questionFooter:"qd-questionFooter"},{Text:D}=ke,{useToken:Ne}=De,Be=n=>{const f=(n||"").replace(/\\r\\n/g,`
2
2
  `).replace(/\\n/g,`
3
3
  `).replace(/\r\n?/g,`
4
4
  `).trim();return f?f.includes(`
@@ -1 +1 @@
1
- import{j as s}from"./vendor-markdown-Bz_2-zkk.js";import{u as M,a as N}from"./vendor-i18n-Dm-c3D_C.js";import{u as b,b as I,m as w,c as A,f as T,I as B}from"./MetricsService-C89VqmCU.js";import{t as W,ab as D,O as $,ac as R,k as _,l as v,D as k,$ as F,ad as L,N as O,n as z}from"./vendor-antd-IzIw5qDM.js";import"./vendor-mermaid-BYH4D4XO.js";import"./main-C8a7IHwC.js";const S=new Map,P=new Set(["Write","Edit","apply_patch","NotebookEdit"]),H=l=>{const n=l.match(/(?:file_path|Wrote file|Edited file)[:\s]*["']?([^\s"',]+)/i);if(n){const o=n[1];return o.split("/").pop()||o}return null},K=(l,n)=>{const o=n-l;if(o<0)return"";const e=Math.floor(o/1e3);if(e<60)return`${e}s`;const i=Math.floor(e/60);return i<60?`${i}m ${e%60}s`:`${Math.floor(i/60)}h ${i%60}m`},U=l=>{var p,j;let n=0,o=0,e=0,i=0,y=!1,x=0,d="";const h=new Set;let u=0,t=0;for(const a of l){const c=a.createdAt?new Date(a.createdAt).getTime():0;if(c>0&&(u===0||c<u)&&(u=c),c>t&&(t=c),a.isCompressed){y=!0,x++;continue}if(a.role==="user"&&!("type"in a&&a.type==="file_reference")&&n++,a.role==="assistant"){if("type"in a&&a.type==="tool_call"&&(e+=((p=a.toolCalls)==null?void 0:p.length)??0),"type"in a&&a.type==="tool_result"){const m=a;if(m.isError&&i++,P.has(m.toolName)){const f=H(((j=m.result)==null?void 0:j.result)??"");f&&h.add(f)}}if("type"in a&&a.type==="text"){o++;const m=a.content||"";m.length>0&&m.length>30&&(d=m.slice(0,300))}}}return{messageCount:l.length,userMessageCount:n,assistantMessageCount:o,toolCallCount:e,toolErrorCount:i,fileChanges:Array.from(h).slice(0,10),lastAssistantExcerpt:d,hasCompression:y,compressionCount:x,duration:u>0&&t>u?K(u,t):""}},Y=({sessionId:l,compact:n=!1})=>{const{t:o}=M(),{token:e}=W.useToken(),[i,y]=N.useState(!1),[x,d]=N.useState(()=>S.get(l)),h=b(I(l)),u=h==null?void 0:h.messages,t=N.useMemo(()=>!u||u.length===0?null:U(u),[u]);if(N.useEffect(()=>{let r=!1;const g=S.get(l);return g!==void 0?(d(g),()=>{r=!0}):(d(void 0),w.getSessionDetail(l).then(C=>{if(r)return;const E=(C==null?void 0:C.session)??null;S.set(l,E),d(E)},()=>{r||(S.set(l,null),d(null))}),()=>{r=!0})},[l]),!t||t.messageCount<3)return null;const p=t.fileChanges.length>0,j=t.lastAssistantExcerpt.length>0,a=n&&p?t.fileChanges:[],c=x==null?void 0:x.total_token_usage,m=c?A(c.total_tokens):null,f=c?s.jsxs("div",{style:{minWidth:180},children:[s.jsx("div",{style:{fontWeight:600,marginBottom:4},children:o("sessionSummary.totalTokens","Total tokens")}),s.jsxs("div",{children:[o("sessionSummary.promptTokens","Prompt"),":"," ",T(c.prompt_tokens)]}),s.jsxs("div",{children:[o("sessionSummary.completionTokens","Completion"),":"," ",T(c.completion_tokens)]}),s.jsxs("div",{children:[o("sessionSummary.totalTokens","Total tokens"),":"," ",T(c.total_tokens)]})]}):null;return s.jsxs("div",{className:`lotus-session-summary ${n?"lotus-session-summary--compact":""}`,style:{borderColor:e.colorBorderSecondary,background:`${e.colorBgElevated}`},children:[s.jsxs("div",{className:"lotus-session-summary-header",onClick:()=>y(r=>!r),role:"button",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),y(g=>!g))},"aria-expanded":i,children:[s.jsx("span",{className:"lotus-session-summary-header-icon",style:{color:e.colorPrimary},children:s.jsx(D,{})}),s.jsx("span",{className:"lotus-session-summary-header-title",style:{color:e.colorText},children:o("sessionSummary.title","Session Summary")}),!i&&s.jsxs("span",{className:"lotus-session-summary-stats",children:[s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx($,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.messageCount})]}),t.toolCallCount>0&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(R,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.toolCallCount})]}),p&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(_,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.fileChanges.length})]}),m&&s.jsx(v,{title:f,children:s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(k,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:m})]})})]}),s.jsx("span",{className:`lotus-session-summary-toggle ${i?"is-expanded":""}`,style:{color:e.colorTextTertiary},children:s.jsx(F,{})})]}),i&&s.jsxs("div",{className:"lotus-session-summary-body",children:[s.jsxs("div",{className:"lotus-session-summary-stats",children:[s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx($,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.messageCount})," ",o("sessionSummary.messages","messages")]})]}),s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx("span",{className:"lotus-session-summary-stat-icon",children:"👤"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.userMessageCount})," ",o("sessionSummary.userTurns","user")]})]}),s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx("span",{className:"lotus-session-summary-stat-icon",children:"🤖"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.assistantMessageCount})," ",o("sessionSummary.assistantTurns","assistant")]})]}),t.toolCallCount>0&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(R,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.toolCallCount})," ",o("sessionSummary.toolCalls","tool calls")]})]}),t.toolErrorCount>0&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:"#ff4d4f"},children:[s.jsx(L,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.toolErrorCount})," ",o("sessionSummary.errors","errors")]})]}),t.duration&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(O,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{children:t.duration})]}),t.hasCompression&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(k,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.compressionCount})," ",o("sessionSummary.compressions","compressions")]})]}),m&&s.jsx(v,{title:f,children:s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(k,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:m})," ",o("sessionSummary.totalTokens","total tokens")]})]})})]}),p&&s.jsxs("div",{children:[s.jsx("div",{style:{fontSize:n?10:11,fontWeight:600,color:e.colorTextSecondary,marginBottom:n?2:4,textTransform:"uppercase",letterSpacing:.3},children:o("sessionSummary.filesChanged","Files Changed")}),n?s.jsx(B,{items:a,style:{lineHeight:1.4,wordBreak:"break-word",whiteSpace:"normal"}}):s.jsx("div",{className:"lotus-session-summary-files",children:t.fileChanges.map(r=>s.jsx(v,{title:r,children:s.jsxs(z,{bordered:!1,className:"lotus-session-summary-file-tag",children:[s.jsx(_,{style:{marginRight:4}}),r]})},r))})]}),j&&s.jsxs("div",{children:[s.jsx("div",{style:{fontSize:n?10:11,fontWeight:600,color:e.colorTextSecondary,marginBottom:n?2:4,textTransform:"uppercase",letterSpacing:.3},children:o("sessionSummary.lastResponse","Latest Response")}),s.jsx("div",{className:"lotus-session-summary-conclusion",style:{color:e.colorTextSecondary},children:t.lastAssistantExcerpt})]})]})]})};export{Y as SessionSummaryCard,Y as default};
1
+ import{j as s}from"./vendor-markdown-Bz_2-zkk.js";import{u as M,a as N}from"./vendor-i18n-Dm-c3D_C.js";import{u as b,b as I,m as w,c as A,f as T,I as B}from"./MetricsService-D9UHnvd2.js";import{t as W,ab as D,O as $,ac as R,k as _,l as v,D as k,$ as F,ad as L,N as O,n as z}from"./vendor-antd-IzIw5qDM.js";import"./vendor-mermaid-GjPwPGd2.js";import"./main-CMBp6TFR.js";const S=new Map,P=new Set(["Write","Edit","apply_patch","NotebookEdit"]),H=l=>{const n=l.match(/(?:file_path|Wrote file|Edited file)[:\s]*["']?([^\s"',]+)/i);if(n){const o=n[1];return o.split("/").pop()||o}return null},K=(l,n)=>{const o=n-l;if(o<0)return"";const e=Math.floor(o/1e3);if(e<60)return`${e}s`;const i=Math.floor(e/60);return i<60?`${i}m ${e%60}s`:`${Math.floor(i/60)}h ${i%60}m`},U=l=>{var p,j;let n=0,o=0,e=0,i=0,y=!1,x=0,d="";const h=new Set;let u=0,t=0;for(const a of l){const c=a.createdAt?new Date(a.createdAt).getTime():0;if(c>0&&(u===0||c<u)&&(u=c),c>t&&(t=c),a.isCompressed){y=!0,x++;continue}if(a.role==="user"&&!("type"in a&&a.type==="file_reference")&&n++,a.role==="assistant"){if("type"in a&&a.type==="tool_call"&&(e+=((p=a.toolCalls)==null?void 0:p.length)??0),"type"in a&&a.type==="tool_result"){const m=a;if(m.isError&&i++,P.has(m.toolName)){const f=H(((j=m.result)==null?void 0:j.result)??"");f&&h.add(f)}}if("type"in a&&a.type==="text"){o++;const m=a.content||"";m.length>0&&m.length>30&&(d=m.slice(0,300))}}}return{messageCount:l.length,userMessageCount:n,assistantMessageCount:o,toolCallCount:e,toolErrorCount:i,fileChanges:Array.from(h).slice(0,10),lastAssistantExcerpt:d,hasCompression:y,compressionCount:x,duration:u>0&&t>u?K(u,t):""}},Y=({sessionId:l,compact:n=!1})=>{const{t:o}=M(),{token:e}=W.useToken(),[i,y]=N.useState(!1),[x,d]=N.useState(()=>S.get(l)),h=b(I(l)),u=h==null?void 0:h.messages,t=N.useMemo(()=>!u||u.length===0?null:U(u),[u]);if(N.useEffect(()=>{let r=!1;const g=S.get(l);return g!==void 0?(d(g),()=>{r=!0}):(d(void 0),w.getSessionDetail(l).then(C=>{if(r)return;const E=(C==null?void 0:C.session)??null;S.set(l,E),d(E)},()=>{r||(S.set(l,null),d(null))}),()=>{r=!0})},[l]),!t||t.messageCount<3)return null;const p=t.fileChanges.length>0,j=t.lastAssistantExcerpt.length>0,a=n&&p?t.fileChanges:[],c=x==null?void 0:x.total_token_usage,m=c?A(c.total_tokens):null,f=c?s.jsxs("div",{style:{minWidth:180},children:[s.jsx("div",{style:{fontWeight:600,marginBottom:4},children:o("sessionSummary.totalTokens","Total tokens")}),s.jsxs("div",{children:[o("sessionSummary.promptTokens","Prompt"),":"," ",T(c.prompt_tokens)]}),s.jsxs("div",{children:[o("sessionSummary.completionTokens","Completion"),":"," ",T(c.completion_tokens)]}),s.jsxs("div",{children:[o("sessionSummary.totalTokens","Total tokens"),":"," ",T(c.total_tokens)]})]}):null;return s.jsxs("div",{className:`lotus-session-summary ${n?"lotus-session-summary--compact":""}`,style:{borderColor:e.colorBorderSecondary,background:`${e.colorBgElevated}`},children:[s.jsxs("div",{className:"lotus-session-summary-header",onClick:()=>y(r=>!r),role:"button",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),y(g=>!g))},"aria-expanded":i,children:[s.jsx("span",{className:"lotus-session-summary-header-icon",style:{color:e.colorPrimary},children:s.jsx(D,{})}),s.jsx("span",{className:"lotus-session-summary-header-title",style:{color:e.colorText},children:o("sessionSummary.title","Session Summary")}),!i&&s.jsxs("span",{className:"lotus-session-summary-stats",children:[s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx($,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.messageCount})]}),t.toolCallCount>0&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(R,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.toolCallCount})]}),p&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(_,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.fileChanges.length})]}),m&&s.jsx(v,{title:f,children:s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(k,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{className:"lotus-session-summary-stat-value",children:m})]})})]}),s.jsx("span",{className:`lotus-session-summary-toggle ${i?"is-expanded":""}`,style:{color:e.colorTextTertiary},children:s.jsx(F,{})})]}),i&&s.jsxs("div",{className:"lotus-session-summary-body",children:[s.jsxs("div",{className:"lotus-session-summary-stats",children:[s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx($,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.messageCount})," ",o("sessionSummary.messages","messages")]})]}),s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx("span",{className:"lotus-session-summary-stat-icon",children:"👤"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.userMessageCount})," ",o("sessionSummary.userTurns","user")]})]}),s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx("span",{className:"lotus-session-summary-stat-icon",children:"🤖"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.assistantMessageCount})," ",o("sessionSummary.assistantTurns","assistant")]})]}),t.toolCallCount>0&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(R,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.toolCallCount})," ",o("sessionSummary.toolCalls","tool calls")]})]}),t.toolErrorCount>0&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:"#ff4d4f"},children:[s.jsx(L,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.toolErrorCount})," ",o("sessionSummary.errors","errors")]})]}),t.duration&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(O,{className:"lotus-session-summary-stat-icon"}),s.jsx("span",{children:t.duration})]}),t.hasCompression&&s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(k,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:t.compressionCount})," ",o("sessionSummary.compressions","compressions")]})]}),m&&s.jsx(v,{title:f,children:s.jsxs("span",{className:"lotus-session-summary-stat",style:{color:e.colorTextSecondary},children:[s.jsx(k,{className:"lotus-session-summary-stat-icon"}),s.jsxs("span",{children:[s.jsx("span",{className:"lotus-session-summary-stat-value",children:m})," ",o("sessionSummary.totalTokens","total tokens")]})]})})]}),p&&s.jsxs("div",{children:[s.jsx("div",{style:{fontSize:n?10:11,fontWeight:600,color:e.colorTextSecondary,marginBottom:n?2:4,textTransform:"uppercase",letterSpacing:.3},children:o("sessionSummary.filesChanged","Files Changed")}),n?s.jsx(B,{items:a,style:{lineHeight:1.4,wordBreak:"break-word",whiteSpace:"normal"}}):s.jsx("div",{className:"lotus-session-summary-files",children:t.fileChanges.map(r=>s.jsx(v,{title:r,children:s.jsxs(z,{bordered:!1,className:"lotus-session-summary-file-tag",children:[s.jsx(_,{style:{marginRight:4}}),r]})},r))})]}),j&&s.jsxs("div",{children:[s.jsx("div",{style:{fontSize:n?10:11,fontWeight:600,color:e.colorTextSecondary,marginBottom:n?2:4,textTransform:"uppercase",letterSpacing:.3},children:o("sessionSummary.lastResponse","Latest Response")}),s.jsx("div",{className:"lotus-session-summary-conclusion",style:{color:e.colorTextSecondary},children:t.lastAssistantExcerpt})]})]})]})};export{Y as SessionSummaryCard,Y as default};
@@ -1,3 +1,3 @@
1
- var Fe=Object.defineProperty;var Be=(t,e,l)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l;var pe=(t,e,l)=>Be(t,typeof e!="symbol"?e+"":e,l);import{j as r}from"./vendor-markdown-Bz_2-zkk.js";import{a as u,u as Y}from"./vendor-i18n-Dm-c3D_C.js";import{e as B,J as Te,M as Xe,N as ze,O as De,P as We,Q as Le,R as Ne,S as Ue,a as fe,T as me,I as Q,u as R,U as Ge,F as qe}from"./MetricsService-C89VqmCU.js";import{n as L,F as I,B as _,aw as Ke,aa as Ye,T as ee,t as te,ax as Je,A as Ve,$ as ye,ae as Se,q as Qe}from"./vendor-antd-IzIw5qDM.js";import{M as Ce}from"./main-C8a7IHwC.js";import"./vendor-mermaid-BYH4D4XO.js";const O=class O{static getInstance(){return O.instance||(O.instance=new O),O.instance}parseUserCommand(e){B("[ToolService]",`[ToolService] parseUserCommand: Parsing content: "${e}"`);const l=e.trim();if(!l.startsWith("/"))return B("[ToolService]",'[ToolService] parseUserCommand: Content does not start with "/", not a tool command.'),null;const n=l.indexOf(" ");let o,a;if(n===-1?(o=l.substring(1),a=""):(o=l.substring(1,n),a=l.substring(n+1).trim()),o){const g={tool_name:o,user_description:a};return B("[ToolService]","[ToolService] parseUserCommand: Successfully parsed command:",g),g}return B("[ToolService]","[ToolService] parseUserCommand: Failed to parse tool name from content."),null}parseAIResponseToToolCall(e){return this.parseUserCommand(e)}async executeTool(e){B("[ToolService]","[ToolService] executeTool: Attempting to execute tool via HTTP with request:",e);try{const l=await Te.post("tools/execute",e),n=JSON.parse(l.result);if(!n||typeof n!="object"||typeof n.success!="boolean"||typeof n.result!="string")throw new Error("Tool execution returned a malformed result");const o=n;return B("[ToolService]","[ToolService] executeTool: Parsed structured result:",o),o}catch(l){throw console.error("[ToolService] executeTool: HTTP tool execution failed:",l),l instanceof Xe?new Error(`Workflow execution failed: ${l.message}`):l}}};pe(O,"instance");let Z=O;const J=new Z;class Ze{async listProfiles(){return Te.get("subagent_profiles")}}const et=new Ze,tt=[];function nt(t={}){const{enabled:e=!0,refreshKey:l}=t,[n,o]=u.useState(null),[a,g]=u.useState(!1),[p,y]=u.useState(null),C=u.useCallback(async()=>{g(!0);try{const f=await et.listProfiles();o(f),y(null)}catch(f){y(f instanceof Error?f:new Error(String(f)))}finally{g(!1)}},[]);u.useEffect(()=>{e&&C()},[e,C,l]);const x=u.useMemo(()=>{const f=new Map;if(n!=null&&n.profiles)for(const v of n.profiles)f.set(v.id,v);return f},[n]);return{profiles:(n==null?void 0:n.profiles)??tt,fallbackId:(n==null?void 0:n.fallback_id)??null,loading:a,error:p,refresh:C,byId:x}}const je=(t,e)=>{const l=ze(t,e);return De({key:l,atomFamily:We,store:Le,emptyState:Ne})},st=(t,e)=>t.outputPreview||e||"",be=(t,e,l)=>{var C,x,f,v,m;const n=t==null?void 0:t.trim();if(!n)return null;const o=e.get(n),a=((C=o==null?void 0:o.display_name)==null?void 0:C.trim())||n,g=(f=(x=o==null?void 0:o.ui)==null?void 0:x.icon)==null?void 0:f.trim(),p=((m=(v=o==null?void 0:o.ui)==null?void 0:v.color)==null?void 0:m.trim())||void 0;return(l==null?void 0:l.compact)??!1?r.jsx("span",{"data-testid":`sub-agent-role-tag-${n}`,style:{color:p||"inherit",lineHeight:"inherit",whiteSpace:"nowrap"},children:g?`${g} ${a}`:a}):r.jsx(L,{color:p,style:{marginInlineEnd:0,flex:"0 0 auto"},"data-testid":`sub-agent-role-tag-${n}`,children:g?`${g} ${a}`:a})},rt={preview:"",connecting:!1};function lt(t,e,l){const[n,o]=u.useState(""),[a,g]=u.useState(!1),p=u.useRef(""),y=u.useRef(null);return u.useEffect(()=>{if(!l||!e)return;let C=!1;const x=new AbortController,f=Ue(t,e).outputPreview??"";p.current=f,o(f),g(!0);const v=()=>{y.current=null,C||o(p.current)},m=()=>{y.current==null&&(y.current=setTimeout(v,80))},h=j=>{p.current=(p.current+j).slice(-me),m()};return f||(async()=>{try{const j=await fe.getHistory(e);if(C||p.current)return;const P=j.messages.filter(A=>A.role==="assistant"&&A.content).map(A=>A.content).join(`
1
+ var Fe=Object.defineProperty;var Be=(t,e,l)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l;var pe=(t,e,l)=>Be(t,typeof e!="symbol"?e+"":e,l);import{j as r}from"./vendor-markdown-Bz_2-zkk.js";import{a as u,u as Y}from"./vendor-i18n-Dm-c3D_C.js";import{e as B,J as Te,M as Xe,N as ze,O as De,P as We,Q as Le,R as Ne,S as Ue,a as fe,T as me,I as Q,u as R,U as Ge,F as qe}from"./MetricsService-D9UHnvd2.js";import{n as L,F as I,B as _,aw as Ke,aa as Ye,T as ee,t as te,ax as Je,A as Ve,$ as ye,ae as Se,q as Qe}from"./vendor-antd-IzIw5qDM.js";import{M as Ce}from"./main-CMBp6TFR.js";import"./vendor-mermaid-GjPwPGd2.js";const O=class O{static getInstance(){return O.instance||(O.instance=new O),O.instance}parseUserCommand(e){B("[ToolService]",`[ToolService] parseUserCommand: Parsing content: "${e}"`);const l=e.trim();if(!l.startsWith("/"))return B("[ToolService]",'[ToolService] parseUserCommand: Content does not start with "/", not a tool command.'),null;const n=l.indexOf(" ");let o,a;if(n===-1?(o=l.substring(1),a=""):(o=l.substring(1,n),a=l.substring(n+1).trim()),o){const g={tool_name:o,user_description:a};return B("[ToolService]","[ToolService] parseUserCommand: Successfully parsed command:",g),g}return B("[ToolService]","[ToolService] parseUserCommand: Failed to parse tool name from content."),null}parseAIResponseToToolCall(e){return this.parseUserCommand(e)}async executeTool(e){B("[ToolService]","[ToolService] executeTool: Attempting to execute tool via HTTP with request:",e);try{const l=await Te.post("tools/execute",e),n=JSON.parse(l.result);if(!n||typeof n!="object"||typeof n.success!="boolean"||typeof n.result!="string")throw new Error("Tool execution returned a malformed result");const o=n;return B("[ToolService]","[ToolService] executeTool: Parsed structured result:",o),o}catch(l){throw console.error("[ToolService] executeTool: HTTP tool execution failed:",l),l instanceof Xe?new Error(`Workflow execution failed: ${l.message}`):l}}};pe(O,"instance");let Z=O;const J=new Z;class Ze{async listProfiles(){return Te.get("subagent_profiles")}}const et=new Ze,tt=[];function nt(t={}){const{enabled:e=!0,refreshKey:l}=t,[n,o]=u.useState(null),[a,g]=u.useState(!1),[p,y]=u.useState(null),C=u.useCallback(async()=>{g(!0);try{const f=await et.listProfiles();o(f),y(null)}catch(f){y(f instanceof Error?f:new Error(String(f)))}finally{g(!1)}},[]);u.useEffect(()=>{e&&C()},[e,C,l]);const x=u.useMemo(()=>{const f=new Map;if(n!=null&&n.profiles)for(const v of n.profiles)f.set(v.id,v);return f},[n]);return{profiles:(n==null?void 0:n.profiles)??tt,fallbackId:(n==null?void 0:n.fallback_id)??null,loading:a,error:p,refresh:C,byId:x}}const je=(t,e)=>{const l=ze(t,e);return De({key:l,atomFamily:We,store:Le,emptyState:Ne})},st=(t,e)=>t.outputPreview||e||"",be=(t,e,l)=>{var C,x,f,v,m;const n=t==null?void 0:t.trim();if(!n)return null;const o=e.get(n),a=((C=o==null?void 0:o.display_name)==null?void 0:C.trim())||n,g=(f=(x=o==null?void 0:o.ui)==null?void 0:x.icon)==null?void 0:f.trim(),p=((m=(v=o==null?void 0:o.ui)==null?void 0:v.color)==null?void 0:m.trim())||void 0;return(l==null?void 0:l.compact)??!1?r.jsx("span",{"data-testid":`sub-agent-role-tag-${n}`,style:{color:p||"inherit",lineHeight:"inherit",whiteSpace:"nowrap"},children:g?`${g} ${a}`:a}):r.jsx(L,{color:p,style:{marginInlineEnd:0,flex:"0 0 auto"},"data-testid":`sub-agent-role-tag-${n}`,children:g?`${g} ${a}`:a})},rt={preview:"",connecting:!1};function lt(t,e,l){const[n,o]=u.useState(""),[a,g]=u.useState(!1),p=u.useRef(""),y=u.useRef(null);return u.useEffect(()=>{if(!l||!e)return;let C=!1;const x=new AbortController,f=Ue(t,e).outputPreview??"";p.current=f,o(f),g(!0);const v=()=>{y.current=null,C||o(p.current)},m=()=>{y.current==null&&(y.current=setTimeout(v,80))},h=j=>{p.current=(p.current+j).slice(-me),m()};return f||(async()=>{try{const j=await fe.getHistory(e);if(C||p.current)return;const P=j.messages.filter(A=>A.role==="assistant"&&A.content).map(A=>A.content).join(`
2
2
 
3
3
  `).slice(-me);P&&(p.current=P,o(P))}catch{}})(),fe.subscribeToEvents(e,{onToken:j=>h(j)},x).catch(()=>{}).finally(()=>{C||g(!1)}),()=>{C=!0,x.abort(),y.current!=null&&(clearTimeout(y.current),y.current=null)}},[l,t,e]),l?{preview:n,connecting:a}:rt}const{Text:ot}=ee,{useToken:Ee}=te,we=u.memo(function({preview:e,maxHeight:l}){const n=u.useRef(null),{token:o}=Ee();return u.useEffect(()=>{const a=n.current;a&&(a.scrollTop=a.scrollHeight)},[e]),r.jsx("div",{ref:n,style:{maxHeight:l,overflowY:"auto",overflowX:"hidden",fontFamily:"monospace",fontSize:o.fontSizeSM,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",color:o.colorTextSecondary},children:e})}),xe=({parentSessionId:t,childSessionId:e,childTitle:l,status:n,onOpenChild:o,children:a})=>{const{t:g}=Y(),{token:p}=Ee(),[y,C]=u.useState(!1),[x,f]=u.useState(!1),v=je(t,e),h=lt(t,e,y||x).preview||v.outputPreview,j=n==="running"?"processing":n==="completed"?"success":n==="error"||n==="failed"?"error":n==="cancelled"?"warning":"default",P=n==="running"?g("chat.subAgents.statusRunning"):n==="completed"?g("chat.subAgents.statusCompleted"):n==="pending"?g("chat.subAgents.statusPending"):n==="cancelled"?g("chat.subAgents.statusCancelled"):n==="error"||n==="failed"?g("chat.subAgents.statusFailed"):n??"",A=()=>{C(!1),f(!0)},T=()=>{f(!1),o(e)},w=r.jsxs("div",{children:[r.jsx(I,{justify:"flex-end",style:{marginBottom:p.marginXS},children:r.jsx(_,{size:"small",type:"link",onClick:A,children:g("chat.subAgents.previewExpand")})}),r.jsx(we,{preview:h,maxHeight:320})]});return r.jsxs(r.Fragment,{children:[r.jsx(Ke,{trigger:"hover",mouseEnterDelay:.3,open:y&&!x,onOpenChange:C,content:w,overlayInnerStyle:{width:420},children:a}),r.jsx(Ye,{open:x,mask:!1,width:640,onCancel:()=>f(!1),title:r.jsxs(I,{align:"center",gap:p.marginXS,children:[r.jsx(ot,{strong:!0,ellipsis:!0,style:{minWidth:0},children:l||g("chat.subAgents.fallbackTitle")}),n?r.jsx(L,{color:j,style:{flex:"0 0 auto"},children:P}):null]}),footer:r.jsxs(I,{justify:"flex-end",gap:p.marginSM,children:[r.jsx(_,{onClick:()=>f(!1),children:g("chat.subAgents.previewClose")}),r.jsx(_,{type:"primary",onClick:T,children:g("chat.subAgents.previewOpenSession")})]}),children:r.jsx(we,{preview:h,maxHeight:"60vh"})})]})},{Text:D}=ee,{useToken:it}=te,at=t=>{const e=(t||"").trim().toLowerCase();return e?e==="started"||e==="already_running"?"running":e==="success"||e==="done"?"completed":e==="canceled"?"cancelled":e==="queued"||e==="created"?"pending":e:"pending"},ct=u.memo(({parentSessionId:t,item:e,index:l,compact:n,isRetrying:o,isContinuing:a,isDeleting:g,subagentProfilesById:p,onOpenChild:y,onContinueChild:C,onRetryChild:x,onTogglePin:f,onDeleteChild:v})=>{const{token:m}=it(),{t:h}=Y(),j=je(t,e.childSessionId),P=st(j,e.outputPreview),A=n?{marginInlineEnd:0,flex:"0 0 auto",fontSize:10,lineHeight:"16px",paddingInline:6}:{marginInlineEnd:0,flex:"0 0 auto"},T=n?{paddingInline:0,height:22}:void 0,w=at(e.status),X=w==="running",M=o||a||g,N=["running","completed","cancelled","error","failed"].includes(w),z=b=>b==="running"?h("chat.subAgents.statusRunning"):b==="completed"?h("chat.subAgents.statusCompleted"):b==="pending"?h("chat.subAgents.statusPending"):b==="cancelled"?h("chat.subAgents.statusCancelled"):b==="error"||b==="failed"?h("chat.subAgents.statusFailed"):b,k=b=>b==="running"?m.colorPrimary:b==="completed"?m.colorSuccess:b==="error"||b==="failed"?m.colorError:b==="cancelled"?m.colorWarning:m.colorTextSecondary;return r.jsxs(I,{vertical:!0,gap:n?6:m.marginSM,className:n?void 0:"lotus-settings-list-item",style:{width:"100%",minWidth:0,padding:n?"6px 0":m.paddingSM,borderRadius:n?0:m.borderRadiusSM,borderTop:n&&l>0?`1px solid ${m.colorBorderSecondary}`:void 0,background:n?"transparent":void 0},children:[r.jsxs(I,{vertical:!0,style:{width:"100%",minWidth:0},children:[r.jsxs(I,{align:"center",gap:m.marginXS,wrap:!0,style:{width:"100%",minWidth:0},children:[r.jsx(D,{strong:!0,ellipsis:!0,style:{minWidth:0,flex:"1 1 180px",fontSize:n?13:void 0},children:(e.lifecycle==="resident"?e.residentName:null)||e.title||h("chat.subAgents.fallbackTitle")}),n?r.jsx(Q,{nowrap:!0,items:[r.jsx("span",{style:{color:k(w)},children:z(w)}),e.pinned?h("chat.subAgents.pinned"):null,e.lifecycle==="resident"?h("chat.subAgents.residentBadge"):null,be(e.subagentType,p,{compact:!0}),e.placement?r.jsx(Ce,{placement:e.placement,compact:!0}):null]}):r.jsxs(r.Fragment,{children:[r.jsx(L,{color:w==="running"?"processing":w==="completed"?"success":w==="error"||w==="failed"?"error":w==="cancelled"?"warning":"default",style:A,children:z(w)}),e.pinned?r.jsx(L,{color:"warning",style:A,children:h("chat.subAgents.pinned")}):null,e.lifecycle==="resident"?r.jsx(L,{color:"purple",style:A,children:h("chat.subAgents.residentBadge")}):null,be(e.subagentType,p),e.placement?r.jsx(Ce,{placement:e.placement,compact:!0}):null]})]}),n?r.jsx(Q,{block:!0,items:[e.childSessionId.slice(0,8),e.updatedAt,e.lastHeartbeatAt?`${h("chat.subAgents.heartbeat")}: ${e.lastHeartbeatAt}`:null,typeof e.roundCount=="number"?`${h("chat.subAgents.round")} ${e.roundCount+1}`:null]}):r.jsxs(D,{type:"secondary",style:{display:"block",minWidth:0,fontSize:12,marginTop:2},children:[e.childSessionId.slice(0,8),e.updatedAt?` • ${e.updatedAt}`:"",e.lastHeartbeatAt?` • ${h("chat.subAgents.heartbeat")}: ${e.lastHeartbeatAt}`:"",typeof e.roundCount=="number"?` • ${h("chat.subAgents.round")} ${e.roundCount+1}`:""]}),P?r.jsx(xe,{parentSessionId:t,childSessionId:e.childSessionId,childTitle:e.title,status:w,onOpenChild:y,children:r.jsx(D,{type:"secondary",style:{display:"block",minWidth:0,marginTop:n?4:m.marginXS,fontSize:n?11:13,lineHeight:n?1.35:void 0},ellipsis:!0,children:P})}):N?r.jsx(xe,{parentSessionId:t,childSessionId:e.childSessionId,childTitle:e.title,status:w,onOpenChild:y,children:r.jsx(D,{type:"secondary",italic:!0,style:{display:"block",minWidth:0,marginTop:n?4:m.marginXS,fontSize:n?11:12,lineHeight:n?1.35:void 0,opacity:.65,cursor:"pointer"},children:h("chat.subAgents.previewHint")})}):null,e.error?r.jsx(D,{type:"danger",style:{display:"block",minWidth:0,marginTop:n?4:m.marginXS,fontSize:n?11:void 0,lineHeight:n?1.35:void 0},children:e.error}):null]}),r.jsxs(I,{gap:n?4:8,wrap:!0,style:{width:"100%",minWidth:0,paddingTop:n?2:0},children:[r.jsx(_,{size:"small",type:n?"text":"default",style:T,disabled:M,onClick:()=>y(e.childSessionId),children:h("chat.subAgents.open")}),r.jsx(_,{size:"small",type:n?"text":"default",style:T,loading:a,disabled:g||o,"data-testid":`sub-agent-continue-${e.childSessionId}`,onClick:()=>C(e.childSessionId),children:h("chat.subAgents.continue")}),r.jsx(Je,{trigger:["click"],menu:{items:[{key:"regenerate",label:h("chat.actions.regenerate")},{key:"error_retry",label:h("chat.actions.retryFailed")}],onClick:({key:b})=>{x(e.childSessionId,b)}},disabled:g||X||a,children:r.jsx(_,{size:"small",type:n?"text":"default",style:T,loading:o,disabled:g||X||a,"data-testid":`sub-agent-retry-${e.childSessionId}`,children:h("chat.subAgents.retry")})}),typeof e.pinned=="boolean"?r.jsx(_,{size:"small",type:n?"text":"default",style:T,disabled:M,onClick:()=>f(e.childSessionId,e.pinned),children:e.pinned?h("chat.actions.unpin"):h("chat.actions.pin")}):null,r.jsx(_,{danger:!0,type:n?"text":"default",style:T,size:"small",loading:g,disabled:o,"data-testid":`sub-agent-delete-${e.childSessionId}`,onClick:()=>v(e.childSessionId),children:h("common.delete")})]})]})},(t,e)=>t.parentSessionId===e.parentSessionId&&t.item===e.item&&t.index===e.index&&t.compact===e.compact&&t.isRetrying===e.isRetrying&&t.isContinuing===e.isContinuing&&t.isDeleting===e.isDeleting&&t.subagentProfilesById===e.subagentProfilesById&&t.onOpenChild===e.onOpenChild&&t.onContinueChild===e.onContinueChild&&t.onRetryChild===e.onRetryChild&&t.onTogglePin===e.onTogglePin&&t.onDeleteChild===e.onDeleteChild),{Text:W}=ee,{useToken:Pe}=te,ut="chat-session-sub-agents-collapsed:",dt=3,gt=600,K=t=>{const e=(t||"").trim().toLowerCase();return e?e==="started"||e==="already_running"?"running":e==="success"||e==="done"?"completed":e==="canceled"?"cancelled":e==="queued"||e==="created"?"pending":e:"pending"},ht=(t,e)=>{if(e&&e.trim())return e;if(t.isRunning)return"running";if(t.lastRunStatus&&t.lastRunStatus.trim())return t.lastRunStatus;const l=t.messageCount??0;return l>2?"completed":(l>0,"pending")},pt=new Set(["running","pending"]),ft=t=>pt.has(K(t)),V=(t,e)=>{const l=(e.createdAt??0)-(t.createdAt??0);return l!==0?l:t.childSessionId.localeCompare(e.childSessionId)},ke=t=>`${ut}${t}`,Ae=t=>{if(typeof window>"u")return!1;try{const e=window.localStorage.getItem(ke(t));return e==="1"?!0:e==="0"?!1:null}catch{return null}},mt=(t,e)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(ke(t),e?"1":"0")}catch{}},ve=(t,e)=>{var l,n,o,a;return t.childSessionId===e.childSessionId&&t.title===e.title&&t.status===e.status&&t.error===e.error&&t.lastHeartbeatAt===e.lastHeartbeatAt&&t.lastEventAt===e.lastEventAt&&t.outputPreview===e.outputPreview&&t.pinned===e.pinned&&t.updatedAt===e.updatedAt&&t.createdAt===e.createdAt&&t.isRunning===e.isRunning&&t.messageCount===e.messageCount&&t.lastRunStatus===e.lastRunStatus&&t.lastRunError===e.lastRunError&&t.subagentType===e.subagentType&&t.roundCount===e.roundCount&&t.lifecycle===e.lifecycle&&t.residentName===e.residentName&&((l=t.placement)==null?void 0:l.kind)===((n=e.placement)==null?void 0:n.kind)&&((o=t.placement)==null?void 0:o.host)===((a=e.placement)==null?void 0:a.host)},Tt=({parentSessionId:t,compact:e=!1})=>{const{t:l}=Y(),{token:n}=Pe(),{message:o}=Ve.useApp(),[a,g]=u.useState(()=>Ae(t)??!1),[p,y]=u.useState(null),[C,x]=u.useState(null),[f,v]=u.useState(null),[m,h]=u.useState(!1),j=R(s=>Ge(t)(s)),P=R(s=>s.chats),A=R(s=>s.loadChatHistory),T=R(s=>s.refreshChats),w=R(s=>s.markOptimisticStart),X=R(s=>s.markRetryStart),M=R(s=>s.markSettleTimeout),N=R(s=>s.pinSession),z=R(s=>s.unpinSession),k=R(s=>s.applyChildProgress),b=R(s=>s.clearChildProgress),{byId:Re}=nt(),ne=u.useRef(new Map),se=u.useMemo(()=>Object.entries(j).map(([s,c])=>({childSessionId:s,...c})),[j]),re=u.useMemo(()=>P.filter(s=>s.kind==="child"&&s.parentSessionId===t).sort((s,c)=>(c.createdAt??0)-(s.createdAt??0)),[P,t]),$=u.useMemo(()=>{const s=new Map(se.map(i=>[i.childSessionId,i])),c=ne.current,S=[];for(const i of re){const d=s.get(i.id),E={childSessionId:i.id,title:i.title||(d==null?void 0:d.title),status:K(ht(i,d==null?void 0:d.status)),error:(d==null?void 0:d.error)||i.lastRunError,lastHeartbeatAt:d==null?void 0:d.lastHeartbeatAt,lastEventAt:d==null?void 0:d.lastEventAt,outputPreview:d==null?void 0:d.outputPreview,roundCount:d==null?void 0:d.roundCount,pinned:i.pinned,updatedAt:i.updatedAt,createdAt:i.createdAt,isRunning:i.isRunning,messageCount:i.messageCount,lastRunStatus:i.lastRunStatus,lastRunError:i.lastRunError,subagentType:i.subagentType??null,lifecycle:i.lifecycle??null,residentName:i.residentName??null,placement:i.placement??null},H=c.get(i.id);S.push(H&&ve(H,E)?H:E),s.delete(i.id)}for(const i of s.values()){const d={childSessionId:i.childSessionId,title:i.title,status:K(i.status),error:i.error,lastHeartbeatAt:i.lastHeartbeatAt,lastEventAt:i.lastEventAt,outputPreview:i.outputPreview,roundCount:i.roundCount,createdAt:Date.now()},E=c.get(i.childSessionId);S.push(E&&ve(E,d)?E:d)}return ne.current=new Map(S.map(i=>[i.childSessionId,i])),S},[re,se]),{residentItems:U,activeItems:G,completedItems:F}=u.useMemo(()=>{const s=[],c=[],S=[];for(const i of $)i.lifecycle==="resident"?s.push(i):ft(i.status)?c.push(i):S.push(i);return s.sort(V),c.sort(V),S.sort(V),{residentItems:s,activeItems:c,completedItems:S}},[$]);u.useEffect(()=>{g(Ae(t)??!1)},[t]);const _e=u.useCallback(()=>{g(s=>{const c=!s;return mt(t,c),c})},[t]),le=u.useCallback(s=>s instanceof Error&&s.message.trim()?s.message:l("chat.subAgents.runChildFailed"),[l]),oe=u.useCallback(async(s,c="regenerate")=>{y(s),k(t,s,{status:"running",error:void 0,lastEventAt:new Date().toISOString()}),X(s);try{const S=await J.executeTool({tool_name:"SubAgent",session_id:t,parameters:[{name:"action",value:"run"},{name:"child_session_id",value:s},{name:"reset_to_last_user",value:c==="error_retry"?"false":"true"}]});if(!S.success)throw new Error(S.result||"Failed to run sub-agent");k(t,s,{status:"running",error:void 0,lastEventAt:new Date().toISOString()}),await A(s,{mode:"replace"}),await T()}catch(S){M(s),k(t,s,{status:"error",error:le(S),lastEventAt:new Date().toISOString()})}finally{y(S=>S===s?null:S)}},[A,t,T,X,M,le,k]),ie=u.useCallback(async s=>{const c=typeof window<"u"?window.prompt.bind(window):null;if(!c)return;const S=c("Send a follow-up message to this sub-agent:","Continue from where you left off.");if(S===null)return;const i=S.trim();if(!i){k(t,s,{status:"error",error:"Follow-up message cannot be empty.",lastEventAt:new Date().toISOString()});return}x(s),k(t,s,{status:"running",error:void 0,lastEventAt:new Date().toISOString()}),w(s);try{const d=await J.executeTool({tool_name:"SubAgent",session_id:t,parameters:[{name:"action",value:"send_message"},{name:"child_session_id",value:s},{name:"message",value:i},{name:"auto_run",value:"true"}]});if(!d.success)throw new Error(d.result||"Follow-up failed");let E="running";try{const H=JSON.parse(d.result);H.status==="message_delivered_live"?(E="running",o.success(l("chat.subAgents.steeredLive"))):H.status==="message_queued"?(E="pending",o.info(l("chat.subAgents.queuedNextTurn"))):H.status==="pending"&&(E="pending")}catch{E="running"}k(t,s,{status:E,error:void 0,lastEventAt:new Date().toISOString()}),await T()}catch(d){M(s),k(t,s,{status:"error",error:d instanceof Error&&d.message.trim()?d.message:l("chat.subAgents.continueChildFailed"),lastEventAt:new Date().toISOString()})}finally{x(d=>d===s?null:d)}},[t,T,w,M,k,l,o]),ae=u.useCallback(async s=>{v(s);try{const c=await J.executeTool({tool_name:"SubAgent",session_id:t,parameters:[{name:"action",value:"delete"},{name:"child_session_id",value:s}]});if(!c.success)throw new Error(c.result||"Failed to delete sub-agent");b(t,s),await T()}finally{v(c=>c===s?null:c)}},[b,t,T]),Ie=u.useCallback(s=>{qe(s),A(s)},[A]),$e=u.useCallback(s=>{ie(s)},[ie]),Me=u.useCallback((s,c)=>{oe(s,c)},[oe]),He=u.useCallback((s,c)=>{c?z(s):N(s)},[N,z]),Oe=u.useCallback(s=>{ae(s)},[ae]);if($.length===0)return null;const ce=r.jsxs(W,{strong:!0,children:[l("chat.subAgents.title")," ",r.jsx(W,{type:"secondary",children:G.length>0?l("chat.subAgents.headerCount",{active:G.length,total:$.length}):`(${$.length})`})]}),ue=r.jsx(_,{type:"text",size:"small",icon:a?r.jsx(ye,{}):r.jsx(Se,{}),onClick:_e,"data-testid":"sub-agents-toggle",style:e?{paddingInline:4}:void 0,children:l(a?"chat.subAgents.expand":"chat.subAgents.collapse")}),q=(s,c)=>r.jsx(ct,{parentSessionId:t,item:s,index:c,compact:e,isRetrying:p===s.childSessionId,isContinuing:C===s.childSessionId,isDeleting:f===s.childSessionId,subagentProfilesById:Re,onOpenChild:Ie,onContinueChild:$e,onRetryChild:Me,onTogglePin:He,onDeleteChild:Oe},s.childSessionId),de=F.length<=dt,ge=a?r.jsx(W,{type:"secondary","data-testid":"sub-agents-collapsed-hint",children:l("chat.subAgents.hiddenHint",{count:$.length})}):r.jsxs(I,{vertical:!0,gap:e?n.marginXS:n.marginSM,"data-testid":"sub-agents-list",style:{width:"100%",minWidth:0,maxHeight:`${gt}px`,overflowY:"auto",overflowX:"hidden",paddingRight:e?0:n.paddingXS},children:[U.length>0?r.jsxs(r.Fragment,{children:[r.jsx(W,{type:"secondary","data-testid":"sub-agents-resident-label",style:{fontSize:12,opacity:.75},children:l("chat.subAgents.residentGroup",{count:U.length})}),U.map((s,c)=>q(s,c))]}):null,G.length>0?G.map((s,c)=>q(s,c)):U.length===0&&F.length>0&&!de?r.jsx(W,{type:"secondary","data-testid":"sub-agents-no-active",children:l("chat.subAgents.noActive")}):null,F.length>0?de?F.map((s,c)=>q(s,c)):r.jsxs(r.Fragment,{children:[r.jsx(_,{type:"text",size:"small","data-testid":"sub-agents-completed-toggle",icon:m?r.jsx(Se,{}):r.jsx(ye,{}),onClick:()=>h(s=>!s),style:{alignSelf:"flex-start",paddingInline:4,color:n.colorTextSecondary},children:l("chat.subAgents.completedGroup",{count:F.length})}),m?F.map((s,c)=>q(s,c)):null]}):null]}),he=!a&&$.length>1?r.jsx(yt,{items:$}):null;return e?r.jsxs("section",{"data-testid":"sub-agents-panel",style:{width:"100%",minWidth:0,marginBottom:n.marginXS,overflow:"hidden"},children:[r.jsxs(I,{align:"center",justify:"space-between",gap:n.marginXS,style:{padding:`${n.paddingXXS??2}px 0 ${n.paddingXS}px`,borderBottom:`1px solid ${n.colorBorderSecondary}`},children:[r.jsx("div",{style:{flex:1,minWidth:0},children:ce}),r.jsx("div",{style:{flex:"0 0 auto"},children:ue})]}),r.jsxs("div",{style:{padding:`${n.paddingXS}px 0 0`},children:[ge,he]})]}):r.jsxs(Qe,{size:"small",className:"lotus-settings-card",style:{marginBottom:n.marginMD},"data-testid":"sub-agents-panel",title:ce,extra:ue,children:[ge,he]})},yt=({items:t})=>{const{token:e}=Pe(),{t:l}=Y(),n=t.reduce((a,g)=>{const p=K(g.status);return p==="completed"?a.completed++:p==="running"?a.running++:p==="error"||p==="failed"?a.error++:p==="cancelled"?a.cancelled++:a.pending++,a},{completed:0,running:0,error:0,pending:0,cancelled:0}),o=[];return n.completed>0&&o.push(l("chat.subAgents.summaryCompleted",{count:n.completed})),n.running>0&&o.push(l("chat.subAgents.summaryRunning",{count:n.running})),n.pending>0&&o.push(l("chat.subAgents.summaryPending",{count:n.pending})),n.cancelled>0&&o.push(`${n.cancelled} ${l("chat.subAgents.statusCancelled")}`),n.error>0&&o.push(l("chat.subAgents.summaryFailed",{count:n.error})),o.length===0?null:r.jsx(Q,{block:!0,items:o,style:{marginTop:e.marginXS}})};export{Tt as SubAgentsPanel};
@@ -1 +1 @@
1
- import{j as t,M as E,r as F,h as H}from"./vendor-markdown-Bz_2-zkk.js";import{i as I,u as R,a as p}from"./vendor-i18n-Dm-c3D_C.js";import{j as y,B as L,q as X,T,v as A,a5 as Y,n as f,a6 as q,a7 as O,a8 as J,a9 as K,aa as N,E as Q,a2 as U,t as V}from"./vendor-antd-IzIw5qDM.js";import{o as W,u as z,g as Z}from"./MetricsService-C89VqmCU.js";import"./vendor-mermaid-BYH4D4XO.js";import"./main-C8a7IHwC.js";const _=({buttons:r,className:e,style:g,size:l="middle",align:a="right"})=>{const h={className:e,style:{width:"100%",justifyContent:a==="left"?"flex-start":a==="center"?"center":"flex-end",...g}};return t.jsx(y,{...h,children:r.map(n=>t.jsx(L,{type:n.type||"default",disabled:n.disabled,loading:n.loading,danger:n.danger,onClick:n.onClick,size:l,icon:n.icon,children:n.text},n.key))})},k=(r,e)=>({key:"cancel",text:e||I.t("common.cancel"),type:"default",onClick:r}),ee=(r,e)=>({key:"ok",text:(e==null?void 0:e.text)||I.t("common.ok"),type:"primary",disabled:e==null?void 0:e.disabled,loading:e==null?void 0:e.loading,onClick:r}),{Text:b,Paragraph:te}=T,re=({content:r,token:e,showGradient:g,onClick:l})=>t.jsx(X,{size:"small",style:{marginLeft:e.marginLG,marginTop:e.marginXS,backgroundColor:e.colorBgLayout,borderColor:e.colorBorderSecondary},styles:{body:{padding:e.paddingMD}},onClick:l,children:t.jsxs("div",{style:{maxHeight:"60vh",overflowY:"auto",position:"relative",paddingRight:e.paddingXS},children:[t.jsx(E,{remarkPlugins:[F],components:{p:({children:a})=>t.jsx(te,{style:{marginBottom:e.marginSM},children:a}),ol:({children:a})=>t.jsx("ol",{style:{marginBottom:e.marginSM,paddingLeft:e.paddingLG},children:a}),ul:({children:a})=>t.jsx("ul",{style:{marginBottom:e.marginSM,paddingLeft:e.paddingLG},children:a}),li:({children:a})=>t.jsx("li",{style:{marginBottom:e.marginXS},children:a}),h1:({children:a})=>t.jsx(b,{strong:!0,style:{fontSize:e.fontSizeHeading3,marginBottom:e.marginSM,display:"block"},children:a}),h2:({children:a})=>t.jsx(b,{strong:!0,style:{fontSize:e.fontSizeHeading4,marginBottom:e.marginSM,display:"block"},children:a}),code:({inline:a,className:h,children:n,...i})=>{const o=/language-(\w+)/.exec(h||"");return a?t.jsx("code",{className:h,style:{backgroundColor:e.colorFillTertiary,padding:"0 4px",borderRadius:e.borderRadiusSM,fontSize:e.fontSizeSM},...i,children:n}):t.jsx(H,{style:W,language:(o==null?void 0:o[1])||"text",PreTag:"div",wrapLongLines:!0,children:String(n).replace(/\n$/,"")})}},children:r||"No content available."}),g?t.jsx("div",{style:{position:"sticky",bottom:0,height:48,background:`linear-gradient(180deg, transparent, ${e.colorBgLayout})`,pointerEvents:"none",marginTop:-48}}):null]})}),{Text:v,Paragraph:se}=T,ae=({prompt:r,token:e,isSelected:g,isExpanded:l,onSelect:a,onToggleExpand:h,onCopy:n})=>{const{t:i}=R(),o=r.content||"",{nonEmptyLineCount:j,wordCount:u,characterCount:P,showGradient:x}=p.useMemo(()=>{const S=(o?o.split(/\r?\n/):[]).filter(w=>w.trim().length>0).length,C=o.trim()?o.trim().split(/\s+/).filter(Boolean).length:0,m=o.length;return{nonEmptyLineCount:S,wordCount:C,characterCount:m,showGradient:!l&&m>600}},[o,l]);return t.jsx(A.Item,{style:{cursor:"pointer",padding:e.paddingMD,borderRadius:e.borderRadius,border:g?`2px solid ${e.colorPrimary}`:`1px solid ${e.colorBorderSecondary}`,marginBottom:e.marginXS,backgroundColor:g?e.colorPrimaryBg:e.colorBgContainer,transition:"all 0.2s ease"},onClick:()=>a(r.id),children:t.jsxs(y,{direction:"vertical",style:{width:"100%"},size:e.marginSM,children:[t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",width:"100%",gap:e.marginSM},children:[t.jsxs(y,{align:"start",children:[t.jsx(Y,{checked:g,onChange:()=>a(r.id),onClick:c=>c.stopPropagation()}),t.jsxs("div",{children:[t.jsx(v,{strong:!0,children:r.name||r.id}),t.jsx("div",{children:t.jsx(v,{code:!0,style:{fontSize:e.fontSizeSM,color:e.colorTextSecondary},children:r.id})})]}),r.isDefault?t.jsx(f,{color:"warning",children:i("chat.systemPromptSelector.defaultTag")}):null]}),t.jsxs(y,{size:"small",children:[t.jsx(L,{type:"text",size:"small",icon:l?t.jsx(q,{}):t.jsx(O,{}),onClick:c=>{c.stopPropagation(),h(r.id)},children:i(l?"chat.systemPromptSelector.hide":"chat.systemPromptSelector.preview")}),t.jsx(L,{type:"text",size:"small",icon:t.jsx(J,{}),onClick:c=>n(c,r),children:i("chat.systemPromptSelector.copy")})]})]}),r.description?t.jsx(v,{type:"secondary",style:{marginLeft:e.marginLG,fontSize:e.fontSizeSM},children:r.description}):null,t.jsxs(y,{size:"small",wrap:!0,style:{marginLeft:e.marginLG},children:[t.jsx(f,{color:"processing",children:i("chat.systemPromptSelector.lines",{count:j})}),t.jsx(f,{color:"purple",children:i("chat.systemPromptSelector.words",{count:u})}),t.jsx(f,{color:"success",children:i("chat.systemPromptSelector.chars",{count:P})})]}),l?t.jsx(re,{content:o,token:e,showGradient:x,onClick:c=>c.stopPropagation()}):t.jsx(se,{type:"secondary",ellipsis:{rows:3},style:{marginLeft:e.marginLG,marginBottom:0,color:e.colorTextSecondary},children:o||i("chat.systemPromptSelector.noContent")})]})},r.id)},{Text:ne}=T,{useToken:ie}=V,he=({open:r,onClose:e,onSelect:g,prompts:l,title:a,showCancelButton:h=!0})=>{const{t:n}=R(),{token:i}=ie(),[o,j]=K.useMessage(),u=z(s=>s.lastSelectedPromptId),P=z(s=>s.setLastSelectedPromptId),[x,c]=p.useState(null),[S,C]=p.useState(null),m=p.useMemo(()=>l.filter(s=>s.id&&s.id.trim()!==""),[l]),w=async(s,d)=>{s.stopPropagation();const M=d.content??"";try{await Z(M),o.success(n("success.promptCopied",{name:d.name}))}catch(D){console.error("[SystemPromptSelector] Failed to copy prompt:",D),o.error(n("error.copyPromptFailed"))}},G=a??n("chat.prompt.selectorTitle");p.useEffect(()=>{if(r){const s=m.find(M=>M.isDefault),d=u||(s==null?void 0:s.id)||(m.length>0?m[0].id:null);c(d)}},[r,u,m.length]);const $=s=>{c(s.id),P(s.id),g(s),e()},B=()=>{e()};return t.jsxs(t.Fragment,{children:[j,t.jsxs(N,{title:t.jsxs(y,{children:[t.jsx(U,{}),G]}),open:r,onCancel:B,width:700,footer:t.jsx(_,{buttons:[...h?[k(B)]:[],ee(()=>{const s=m.find(d=>d.id===x);s&&$(s)},{text:n("chat.prompt.createButton"),disabled:!x})]}),styles:{body:{maxHeight:"70vh",overflowY:"auto",padding:i.paddingMD}},children:[t.jsx("div",{style:{marginBottom:i.marginMD},children:t.jsx(ne,{type:"secondary",style:{fontSize:i.fontSizeSM},children:n("chat.prompt.helperText")})}),m.length===0?t.jsx(Q,{description:n("chat.prompt.emptyDescription"),style:{margin:i.marginLG}}):t.jsx("div",{children:m.map(s=>t.jsx(ae,{prompt:s,token:i,isSelected:x===s.id,isExpanded:S===s.id,onSelect:d=>c(d),onToggleExpand:d=>C(S===d?null:d),onCopy:w},s.id))})]})]})};export{he as default};
1
+ import{j as t,M as E,r as F,h as H}from"./vendor-markdown-Bz_2-zkk.js";import{i as I,u as R,a as p}from"./vendor-i18n-Dm-c3D_C.js";import{j as y,B as L,q as X,T,v as A,a5 as Y,n as f,a6 as q,a7 as O,a8 as J,a9 as K,aa as N,E as Q,a2 as U,t as V}from"./vendor-antd-IzIw5qDM.js";import{o as W,u as z,g as Z}from"./MetricsService-D9UHnvd2.js";import"./vendor-mermaid-GjPwPGd2.js";import"./main-CMBp6TFR.js";const _=({buttons:r,className:e,style:g,size:l="middle",align:a="right"})=>{const h={className:e,style:{width:"100%",justifyContent:a==="left"?"flex-start":a==="center"?"center":"flex-end",...g}};return t.jsx(y,{...h,children:r.map(n=>t.jsx(L,{type:n.type||"default",disabled:n.disabled,loading:n.loading,danger:n.danger,onClick:n.onClick,size:l,icon:n.icon,children:n.text},n.key))})},k=(r,e)=>({key:"cancel",text:e||I.t("common.cancel"),type:"default",onClick:r}),ee=(r,e)=>({key:"ok",text:(e==null?void 0:e.text)||I.t("common.ok"),type:"primary",disabled:e==null?void 0:e.disabled,loading:e==null?void 0:e.loading,onClick:r}),{Text:b,Paragraph:te}=T,re=({content:r,token:e,showGradient:g,onClick:l})=>t.jsx(X,{size:"small",style:{marginLeft:e.marginLG,marginTop:e.marginXS,backgroundColor:e.colorBgLayout,borderColor:e.colorBorderSecondary},styles:{body:{padding:e.paddingMD}},onClick:l,children:t.jsxs("div",{style:{maxHeight:"60vh",overflowY:"auto",position:"relative",paddingRight:e.paddingXS},children:[t.jsx(E,{remarkPlugins:[F],components:{p:({children:a})=>t.jsx(te,{style:{marginBottom:e.marginSM},children:a}),ol:({children:a})=>t.jsx("ol",{style:{marginBottom:e.marginSM,paddingLeft:e.paddingLG},children:a}),ul:({children:a})=>t.jsx("ul",{style:{marginBottom:e.marginSM,paddingLeft:e.paddingLG},children:a}),li:({children:a})=>t.jsx("li",{style:{marginBottom:e.marginXS},children:a}),h1:({children:a})=>t.jsx(b,{strong:!0,style:{fontSize:e.fontSizeHeading3,marginBottom:e.marginSM,display:"block"},children:a}),h2:({children:a})=>t.jsx(b,{strong:!0,style:{fontSize:e.fontSizeHeading4,marginBottom:e.marginSM,display:"block"},children:a}),code:({inline:a,className:h,children:n,...i})=>{const o=/language-(\w+)/.exec(h||"");return a?t.jsx("code",{className:h,style:{backgroundColor:e.colorFillTertiary,padding:"0 4px",borderRadius:e.borderRadiusSM,fontSize:e.fontSizeSM},...i,children:n}):t.jsx(H,{style:W,language:(o==null?void 0:o[1])||"text",PreTag:"div",wrapLongLines:!0,children:String(n).replace(/\n$/,"")})}},children:r||"No content available."}),g?t.jsx("div",{style:{position:"sticky",bottom:0,height:48,background:`linear-gradient(180deg, transparent, ${e.colorBgLayout})`,pointerEvents:"none",marginTop:-48}}):null]})}),{Text:v,Paragraph:se}=T,ae=({prompt:r,token:e,isSelected:g,isExpanded:l,onSelect:a,onToggleExpand:h,onCopy:n})=>{const{t:i}=R(),o=r.content||"",{nonEmptyLineCount:j,wordCount:u,characterCount:P,showGradient:x}=p.useMemo(()=>{const S=(o?o.split(/\r?\n/):[]).filter(w=>w.trim().length>0).length,C=o.trim()?o.trim().split(/\s+/).filter(Boolean).length:0,m=o.length;return{nonEmptyLineCount:S,wordCount:C,characterCount:m,showGradient:!l&&m>600}},[o,l]);return t.jsx(A.Item,{style:{cursor:"pointer",padding:e.paddingMD,borderRadius:e.borderRadius,border:g?`2px solid ${e.colorPrimary}`:`1px solid ${e.colorBorderSecondary}`,marginBottom:e.marginXS,backgroundColor:g?e.colorPrimaryBg:e.colorBgContainer,transition:"all 0.2s ease"},onClick:()=>a(r.id),children:t.jsxs(y,{direction:"vertical",style:{width:"100%"},size:e.marginSM,children:[t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",width:"100%",gap:e.marginSM},children:[t.jsxs(y,{align:"start",children:[t.jsx(Y,{checked:g,onChange:()=>a(r.id),onClick:c=>c.stopPropagation()}),t.jsxs("div",{children:[t.jsx(v,{strong:!0,children:r.name||r.id}),t.jsx("div",{children:t.jsx(v,{code:!0,style:{fontSize:e.fontSizeSM,color:e.colorTextSecondary},children:r.id})})]}),r.isDefault?t.jsx(f,{color:"warning",children:i("chat.systemPromptSelector.defaultTag")}):null]}),t.jsxs(y,{size:"small",children:[t.jsx(L,{type:"text",size:"small",icon:l?t.jsx(q,{}):t.jsx(O,{}),onClick:c=>{c.stopPropagation(),h(r.id)},children:i(l?"chat.systemPromptSelector.hide":"chat.systemPromptSelector.preview")}),t.jsx(L,{type:"text",size:"small",icon:t.jsx(J,{}),onClick:c=>n(c,r),children:i("chat.systemPromptSelector.copy")})]})]}),r.description?t.jsx(v,{type:"secondary",style:{marginLeft:e.marginLG,fontSize:e.fontSizeSM},children:r.description}):null,t.jsxs(y,{size:"small",wrap:!0,style:{marginLeft:e.marginLG},children:[t.jsx(f,{color:"processing",children:i("chat.systemPromptSelector.lines",{count:j})}),t.jsx(f,{color:"purple",children:i("chat.systemPromptSelector.words",{count:u})}),t.jsx(f,{color:"success",children:i("chat.systemPromptSelector.chars",{count:P})})]}),l?t.jsx(re,{content:o,token:e,showGradient:x,onClick:c=>c.stopPropagation()}):t.jsx(se,{type:"secondary",ellipsis:{rows:3},style:{marginLeft:e.marginLG,marginBottom:0,color:e.colorTextSecondary},children:o||i("chat.systemPromptSelector.noContent")})]})},r.id)},{Text:ne}=T,{useToken:ie}=V,he=({open:r,onClose:e,onSelect:g,prompts:l,title:a,showCancelButton:h=!0})=>{const{t:n}=R(),{token:i}=ie(),[o,j]=K.useMessage(),u=z(s=>s.lastSelectedPromptId),P=z(s=>s.setLastSelectedPromptId),[x,c]=p.useState(null),[S,C]=p.useState(null),m=p.useMemo(()=>l.filter(s=>s.id&&s.id.trim()!==""),[l]),w=async(s,d)=>{s.stopPropagation();const M=d.content??"";try{await Z(M),o.success(n("success.promptCopied",{name:d.name}))}catch(D){console.error("[SystemPromptSelector] Failed to copy prompt:",D),o.error(n("error.copyPromptFailed"))}},G=a??n("chat.prompt.selectorTitle");p.useEffect(()=>{if(r){const s=m.find(M=>M.isDefault),d=u||(s==null?void 0:s.id)||(m.length>0?m[0].id:null);c(d)}},[r,u,m.length]);const $=s=>{c(s.id),P(s.id),g(s),e()},B=()=>{e()};return t.jsxs(t.Fragment,{children:[j,t.jsxs(N,{title:t.jsxs(y,{children:[t.jsx(U,{}),G]}),open:r,onCancel:B,width:700,footer:t.jsx(_,{buttons:[...h?[k(B)]:[],ee(()=>{const s=m.find(d=>d.id===x);s&&$(s)},{text:n("chat.prompt.createButton"),disabled:!x})]}),styles:{body:{maxHeight:"70vh",overflowY:"auto",padding:i.paddingMD}},children:[t.jsx("div",{style:{marginBottom:i.marginMD},children:t.jsx(ne,{type:"secondary",style:{fontSize:i.fontSizeSM},children:n("chat.prompt.helperText")})}),m.length===0?t.jsx(Q,{description:n("chat.prompt.emptyDescription"),style:{margin:i.marginLG}}):t.jsx("div",{children:m.map(s=>t.jsx(ae,{prompt:s,token:i,isSelected:x===s.id,isExpanded:S===s.id,onSelect:d=>c(d),onToggleExpand:d=>C(S===d?null:d),onCopy:w},s.id))})]})]})};export{he as default};