@kafca/agentdock 0.1.18 → 0.1.19

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 (49) hide show
  1. package/dist/renderer/assets/{Badge-BIuWuNsC.js → Badge-DcFVSGwl.js} +1 -1
  2. package/dist/renderer/assets/Chat-CTy10fKR.js +2 -0
  3. package/dist/renderer/assets/{ChatMarkdown-C-BlK1yX.js → ChatMarkdown-C-ci0dQL.js} +4 -4
  4. package/dist/renderer/assets/{Config-DSqG53SF.js → Config-Bl5vuqBS.js} +1 -1
  5. package/dist/renderer/assets/{CronList-BP6eOFIl.js → CronList-BQOEXhHD.js} +1 -1
  6. package/dist/renderer/assets/{Dashboard-yNvLuZ9h.js → Dashboard-CauX4_SR.js} +2 -2
  7. package/dist/renderer/assets/{EmptyState-DrCleE-v.js → EmptyState-DVYGGFl9.js} +1 -1
  8. package/dist/renderer/assets/{KnowledgeDetail-DTpTUVcH.js → KnowledgeDetail-BlV8Twrx.js} +1 -1
  9. package/dist/renderer/assets/{KnowledgeHome-gN27MIm8.js → KnowledgeHome-vd6AO-Fn.js} +1 -1
  10. package/dist/renderer/assets/{Logs-DSEpn2aP.js → Logs-BrtF26F7.js} +1 -1
  11. package/dist/renderer/assets/{Modal-DRn2QI8p.js → Modal-D6ucs8W2.js} +1 -1
  12. package/dist/renderer/assets/{Page-DFPQdZab.js → Page-BdF9afpu.js} +1 -1
  13. package/dist/renderer/assets/{ProjectDetail-CPAlBCe1.js → ProjectDetail-RuoRHs1Q.js} +1 -1
  14. package/dist/renderer/assets/{ProjectList-D1YqnA_p.js → ProjectList-r9MXhUu7.js} +1 -1
  15. package/dist/renderer/assets/{Select-BOoDNxoe.js → Select-CEsAkZ5j.js} +1 -1
  16. package/dist/renderer/assets/SessionChat-DwnZpTVu.js +1 -0
  17. package/dist/renderer/assets/{SessionList-EwaQ7I9m.js → SessionList-C89Z6STB.js} +1 -1
  18. package/dist/renderer/assets/{ThreadChat-rmnoSpy7.js → ThreadChat-JB9GY3La.js} +5 -5
  19. package/dist/renderer/assets/{Workspace-CIoiGaPJ.js → Workspace-Cftl8zps.js} +1 -1
  20. package/dist/renderer/assets/{arrow-left-DLijH4Ma.js → arrow-left-DuiS0IaQ.js} +1 -1
  21. package/dist/renderer/assets/{book-open-C39iVsTl.js → book-open-B6l3y70b.js} +1 -1
  22. package/dist/renderer/assets/{check-CIzPQt9l.js → check-CfewkzaJ.js} +1 -1
  23. package/dist/renderer/assets/{circle-C22V7KHC.js → circle-qzty4gzl.js} +1 -1
  24. package/dist/renderer/assets/{desktop-SfDg5_P-.js → desktop-DTAjgvNs.js} +1 -1
  25. package/dist/renderer/assets/{funnel-Uqe7wSsV.js → funnel-CwjI0g4c.js} +1 -1
  26. package/dist/renderer/assets/{heart-BAV26w-r.js → heart-CVHUi-lA.js} +1 -1
  27. package/dist/renderer/assets/index-3CzgyQYB.css +11 -0
  28. package/dist/renderer/assets/{index-HCsfse2M.js → index-BbDTSo1y.js} +1 -1
  29. package/dist/renderer/assets/{index-bNsLuLje.js → index-tQ6A4Zff.js} +2 -2
  30. package/dist/renderer/assets/{pencil-DrFGidyy.js → pencil-BvQPZxH6.js} +1 -1
  31. package/dist/renderer/assets/{play-CUr5dfBa.js → play-hJkkCcS6.js} +1 -1
  32. package/dist/renderer/assets/{plug-CLHivmxo.js → plug-BGtbkjYJ.js} +1 -1
  33. package/dist/renderer/assets/{plus-B96DRLtO.js → plus-DrYsrZyx.js} +1 -1
  34. package/dist/renderer/assets/projects-DcNm9FDK.js +1 -0
  35. package/dist/renderer/assets/{save-BGOA2LdX.js → save-C8W3Wq2Z.js} +1 -1
  36. package/dist/renderer/assets/{search-bWm0yagY.js → search-BuSByDes.js} +1 -1
  37. package/dist/renderer/assets/{server-wa53brxF.js → server-B9wEMLdo.js} +1 -1
  38. package/dist/renderer/assets/{session-utils-7J-omgrc.js → session-utils-K8E4S3Qx.js} +1 -1
  39. package/dist/renderer/assets/{sessions-BIMMb8YC.js → sessions-B-QTvESY.js} +1 -1
  40. package/dist/renderer/assets/{shield-check-MBIcswd2.js → shield-check-C-oxstVp.js} +1 -1
  41. package/dist/renderer/assets/{trash-2-CEov4VLH.js → trash-2-BQpE15-6.js} +1 -1
  42. package/dist/renderer/assets/{user-B93Dje9X.js → user-CM4R9QVx.js} +1 -1
  43. package/dist/renderer/assets/{wifi-off-cCUI9WRl.js → wifi-off-CoaA7hVn.js} +1 -1
  44. package/dist/renderer/index.html +2 -2
  45. package/package.json +1 -1
  46. package/dist/renderer/assets/Chat-bI6xVd_L.js +0 -2
  47. package/dist/renderer/assets/SessionChat-BoqnI_Sb.js +0 -1
  48. package/dist/renderer/assets/index-CVrF_DwQ.css +0 -11
  49. package/dist/renderer/assets/projects-DC4slOOB.js +0 -1
@@ -1 +1 @@
1
- import{j as t,w as a}from"./index-bNsLuLje.js";const n={default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",success:"border-transparent bg-primary/10 text-primary dark:bg-primary/15 dark:text-primary",warning:"border-transparent bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-200",danger:"border-transparent bg-destructive/10 text-destructive dark:bg-destructive/20 dark:text-red-200",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground",info:"border-transparent bg-blue-100 text-blue-700 dark:bg-blue-500/15 dark:text-blue-200"};function s({children:r,variant:e="default"}){return t.jsx("span",{className:a("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",n[e]),children:r})}export{s as B};
1
+ import{j as t,w as a}from"./index-tQ6A4Zff.js";const n={default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",success:"border-transparent bg-primary/10 text-primary dark:bg-primary/15 dark:text-primary",warning:"border-transparent bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-200",danger:"border-transparent bg-destructive/10 text-destructive dark:bg-destructive/20 dark:text-red-200",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground",info:"border-transparent bg-blue-100 text-blue-700 dark:bg-blue-500/15 dark:text-blue-200"};function s({children:r,variant:e="default"}){return t.jsx("span",{className:a("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",n[e]),children:r})}export{s as B};
@@ -0,0 +1,2 @@
1
+ import{u as ze,t as Me,r,j as s,C as pe,I as ye,M as U,B as C,w as ee,R as De,T as Ae}from"./index-tQ6A4Zff.js";import{M as je}from"./Modal-D6ucs8W2.js";import{E as $}from"./EmptyState-DVYGGFl9.js";import{C as Le,A as Be}from"./ChatMarkdown-C-ci0dQL.js";import{l as Ke}from"./projects-DcNm9FDK.js";import{l as Ue,g as $e,s as qe,a as be,r as Fe,d as Oe}from"./sessions-B-QTvESY.js";import{s as We,a as we,b as w,L as P,t as He}from"./session-utils-K8E4S3Qx.js";import{S as Ve}from"./search-BuSByDes.js";import{P as Ge}from"./pencil-BvQPZxH6.js";import{T as Je}from"./trash-2-BQpE15-6.js";import{B as Qe,U as Xe}from"./user-CM4R9QVx.js";import"./index-BbDTSo1y.js";import"./check-CfewkzaJ.js";const Ye=1500,Ze=9e4;function es(a){return String(a||"").startsWith("web:")}function ss(a){return(a||[]).map((c,y)=>({id:`${c.timestamp||y}-${c.role}-${y}`,role:c.role==="user"?"user":"assistant",content:c.content,timestamp:c.timestamp,kind:c.kind}))}function ts(a){return a.map(c=>`${c.role}:${c.kind||"final"}:${c.timestamp||""}:${c.content}`).join(`
2
+ `)}function as(a){return a.filter(c=>c.role!=="user").length}function ns(a,c){var y;return(y=a.last_message)!=null&&y.content?a.last_message.content.replace(/\n/g," "):c("sessions.noMessages")}function ve(a){return(a instanceof Error?a.message:String(a||"")).trim().toLowerCase().includes("no active session found")}function rs(a,c){return(a instanceof Error?a.message:String(a||"")).trim().toLowerCase()?ve(a)?c("sessions.sessionUnavailable"):a instanceof Error?a.message:c("sessions.sendFailed"):c("sessions.sendFailed")}function js(){const{t:a}=ze(),[c,y]=Me(),[se,ke]=r.useState([]),[te,ae]=r.useState({}),[i,G]=r.useState(c.get("project")||""),[j,R]=r.useState([]),[n,h]=r.useState(null),[I,v]=r.useState([]),[J,ne]=r.useState(""),[T,Q]=r.useState(""),[Ne,re]=r.useState(!0),[Se,ie]=r.useState(!1),[Ce,le]=r.useState(!1),[X,oe]=r.useState(!1),[_,E]=r.useState("idle"),[ce,k]=r.useState(""),[z,q]=r.useState(null),[F,Y]=r.useState(""),[M,O]=r.useState(null),[de,W]=r.useState(null),me=r.useRef(null),x=r.useRef({project:"",sessionId:""}),H=r.useRef(null),V=r.useRef(null),b=c.get("project")||"",D=c.get("session")||"",ue=r.useMemo(()=>new Set(Object.values(te)),[te]),N=r.useMemo(()=>{const e=J.trim().toLowerCase();return e?j.filter(t=>We(t,e)):j},[J,j]),A=!!(n&&(n.live||ue.has(n.id))),_e=!!(i&&A&&T.trim()&&!X&&_!=="sending"&&_!=="activating"&&_!=="polling"),f=r.useCallback((e,t)=>{const l=new URLSearchParams;e&&l.set("project",e),t&&l.set("session",t),y(l,{replace:!0})},[y]),d=r.useCallback((e="idle")=>{H.current&&(window.clearTimeout(H.current),H.current=null),V.current=null,E(e)},[]),xe=r.useCallback(e=>{R(t=>{const l=t.some(o=>o.id===e.id)?t.map(o=>o.id===e.id?{...o,...e}:o):[...t,e];return we(l)})},[]),fe=r.useCallback(async()=>{re(!0);try{const{projects:e}=await Ke();ke(e||[])}finally{re(!1)}},[]),u=r.useCallback(async e=>{if(!e)return R([]),ae({}),[];ie(!0);try{const{sessions:t,active_keys:l}=await Ue(e),o=we((t||[]).filter(m=>!es(m.session_key)));return ae(l||{}),x.current.project===e&&R(o),o}finally{ie(!1)}},[]),S=r.useCallback(async(e,t,l)=>{if(!e||!t)return h(null),v([]),null;l!=null&&l.silent||le(!0);try{const o=await $e(e,t,200);return x.current.project!==e||x.current.sessionId!==t||(xe(o),h({id:o.id,project:e,sessionKey:o.session_key,name:o.name||w(o),live:o.live,isDraft:!1,detail:o}),v(ss(o.history)),k("")),o}catch(o){return x.current.project===e&&x.current.sessionId===t&&k(o instanceof Error?o.message:a("sessions.loadFailed")),null}finally{l!=null&&l.silent||le(!1)}},[xe,a]),Z=r.useCallback(e=>{V.current=e,H.current=window.setTimeout(async()=>{const t=V.current;if(!t)return;if(Date.now()-t.startedAt>=Ze){d("timed_out"),k(a("sessions.pollTimeout")),await u(t.project);return}const l=await S(t.project,t.sessionId,{silent:!0});if(!l||!V.current){d(),await u(t.project);return}if(x.current.project!==t.project||x.current.sessionId!==t.sessionId){d();return}const o=ts(l.history),m=as(l.history)>t.assistantCountBefore,g=m&&o===t.lastSignature?t.stableCount+1:0,K={...t,lastSignature:o,stableCount:g};if(m&&g>=2){d(),await u(t.project);return}E("polling"),Z(K)},Ye)},[S,u,d,a]),he=r.useCallback((e,t,l)=>{d(),E("polling"),Z({project:e,sessionId:t,assistantCountBefore:l,stableCount:0,lastSignature:"",startedAt:Date.now()})},[Z,d]),Ee=r.useCallback(async e=>{if(d(),G(e),ne(""),k(""),Q(""),!e){x.current={project:"",sessionId:""},h(null),v([]),R([]),f("");return}x.current={project:e,sessionId:""},h(null),v([]),f(e),await u(e)},[u,d,f]),L=r.useCallback(async e=>{if(e.isDraft||e.live||!e.id)return e;E("activating");try{await qe(e.project,{session_key:e.sessionKey,session_id:e.id}),await u(e.project);const t=await S(e.project,e.id,{silent:!0}),l={...e,live:(t==null?void 0:t.live)??!0,isDraft:!1,detail:t??e.detail,name:(t==null?void 0:t.name)||e.name};return h(l),l}finally{E("idle")}},[S,u]),B=r.useCallback(async(e,t)=>{d(),k(""),x.current={project:e,sessionId:t.id},G(e),f(e,t.id),h({id:t.id,project:e,sessionKey:t.session_key,name:w(t),live:t.live,isDraft:!1,detail:null});const l=await S(e,t.id);l&&!l.live&&await L({id:l.id,project:e,sessionKey:l.session_key,name:l.name||w(l),live:l.live,isDraft:!1,detail:l})},[L,S,d,f]),Pe=r.useCallback(async()=>{d(),i&&(await u(i),n!=null&&n.id&&(x.current={project:i,sessionId:n.id},await S(i,n.id)))},[n==null?void 0:n.id,S,u,i,d]),ge=r.useCallback(async()=>{if(!T.trim()||!i)return;if(!A){k(a("sessions.sessionUnavailable"));return}const e=T.trim(),t=`${crypto.randomUUID()}-user`,l={id:t,role:"user",content:e,timestamp:new Date().toISOString()};Q(""),oe(!0),E("sending"),k("");try{const o=n||N[0];if(!o)throw new Error(a("sessions.noAvailableChatTarget"));let m=n&&n.id===o.id?n:{id:o.id,project:i,sessionKey:"session_key"in o?o.session_key:o.sessionKey,name:"session_key"in o?w(o):o.name,live:o.live,isDraft:!1,detail:null};(!n||n.id!==m.id)&&(x.current={project:i,sessionId:m.id},f(i,m.id),h(m)),m=await L(m),v(p=>[...p,l]);try{await be(i,{session_key:m.sessionKey,message:e})}catch(p){if(!ve(p)||!m.id)throw p;m=await L({...m,live:!1}),await be(i,{session_key:m.sessionKey,message:e})}const g=m.id;if(!g)throw new Error(a("sessions.createFailed"));const K=I.filter(p=>p.role!=="user").length;x.current={project:i,sessionId:g},h(p=>p&&{...p,id:g,isDraft:!1}),f(i,g),he(i,g,K),await u(i)}catch(o){d(),v(g=>g.filter(K=>K.id!==t));const m=rs(o,a);k(m)}finally{oe(!1)}},[n,A,L,T,N,I,u,i,he,d,a,f]),Re=r.useCallback(async()=>{if(!(!z||!i||!F.trim())){W("rename");try{await Fe(i,z.id,{name:F.trim()});const t=(await u(i)).find(l=>l.id===z.id);t&&(n==null?void 0:n.id)===t.id&&h(l=>l&&{...l,name:w(t)}),q(null),Y("")}finally{W(null)}}},[n==null?void 0:n.id,u,F,z,i]),Ie=r.useCallback(async()=>{if(!(!M||!i)){W("delete");try{await Oe(i,M.id);const e=await u(i);(n==null?void 0:n.id)===M.id&&(d(),x.current={project:i,sessionId:""},h(null),v([]),f(i)),e.length===0&&v([]),O(null)}finally{W(null)}}},[n==null?void 0:n.id,M,u,i,d,f]);r.useEffect(()=>{fe()},[fe]),r.useEffect(()=>{b&&(i&&i===b||G(b))},[b,i]),r.useEffect(()=>{if(!i){R([]);return}x.current.project=i,u(i)},[u,i]),r.useEffect(()=>{!i||D||n!=null&&n.id||N.length===0||B(i,N[0])},[n==null?void 0:n.id,N,B,D,i]),r.useEffect(()=>{if(!b||!D||i!==b)return;const e=j.find(t=>t.id===D);if(!e){j.length>0&&f(b,j[0].id);return}(n==null?void 0:n.id)!==e.id&&B(b,e)},[n==null?void 0:n.id,B,b,D,i,j,f]),r.useEffect(()=>{var e;(e=me.current)==null||e.scrollIntoView({behavior:"smooth"})},[I]),r.useEffect(()=>()=>d(),[d]);const Te=(n==null?void 0:n.name)||a("sessions.activeChat");return s.jsxs("div",{className:"grid min-h-[calc(100vh-8rem)] grid-cols-1 gap-4 xl:grid-cols-[22rem_minmax(0,1fr)] animate-fade-in",children:[s.jsxs(pe,{className:"flex flex-col gap-4 p-4 xl:h-[calc(100vh-8rem)] xl:overflow-hidden",children:[s.jsx("div",{className:"flex items-center gap-3",children:s.jsxs("div",{className:"flex-1",children:[s.jsx("p",{className:"text-xs font-medium uppercase tracking-[0.2em] text-gray-400",children:a("sessions.selectProject")}),s.jsxs("select",{value:i,onChange:e=>void Ee(e.target.value),className:"mt-2 w-full rounded-xl border border-gray-300/90 bg-white/90 px-3 py-2 text-sm text-gray-900 transition-all focus:border-accent focus:outline-none focus:ring-2 focus:ring-accent/45 dark:border-white/[0.1] dark:bg-[rgba(0,0,0,0.45)] dark:text-white",children:[s.jsx("option",{value:"",children:a("sessions.allProjects")}),se.map(e=>s.jsx("option",{value:e.name,children:e.name},e.name))]})]})}),s.jsxs("div",{className:"relative",children:[s.jsx(ye,{value:J,onChange:e=>ne(e.target.value),placeholder:a("common.search"),className:"pl-9","aria-label":a("common.search")}),s.jsx(Ve,{size:16,className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"})]}),s.jsxs("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[s.jsxs("div",{className:"mb-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400",children:[s.jsx("span",{children:a("sessions.historyTitle")}),s.jsx("span",{children:N.length})]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto space-y-2 pr-1",children:Ne?s.jsx("div",{className:"flex h-32 items-center justify-center text-gray-400",children:s.jsx(P,{className:"animate-spin",size:18})}):i?Se&&j.length===0?s.jsx("div",{className:"flex h-32 items-center justify-center text-gray-400",children:s.jsx(P,{className:"animate-spin",size:18})}):j.length===0?s.jsx($,{message:a("sessions.noSessions"),icon:U}):N.length===0?s.jsx($,{message:a("sessions.noSessions"),icon:U}):N.map(e=>{const t=e.id===(n==null?void 0:n.id);return s.jsxs("div",{className:ee("rounded-2xl border p-3 transition-all",t?"border-accent/45 bg-accent/10 shadow-[0_0_20px_-12px_rgba(139,92,246,0.55)]":"border-gray-200/80 bg-white/70 hover:border-accent/30 dark:border-white/[0.08] dark:bg-white/[0.03]"),children:[s.jsxs("button",{type:"button",onClick:()=>void B(i,e),className:"w-full text-left","data-testid":"web-chat-session-open",children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"truncate text-sm font-medium text-gray-900 dark:text-white",children:w(e)}),e.live||ue.has(e.id)?s.jsx("span",{className:"rounded-full bg-violet-50 px-2 py-0.5 text-[10px] text-violet-600 dark:bg-violet-950/20 dark:text-violet-300",children:"live"}):s.jsx("span",{className:"rounded-full bg-gray-100 px-2 py-0.5 text-[10px] text-gray-400 dark:bg-white/[0.06] dark:text-gray-500",children:"history"})]}),s.jsx("p",{className:"mt-1 truncate text-xs text-gray-500 dark:text-gray-400",children:He(e.updated_at||e.created_at,a("sessions.justNow"))})]}),s.jsx("span",{className:"shrink-0 text-[10px] text-gray-400",children:e.history_count})]}),s.jsx("p",{className:"mt-2 line-clamp-2 text-xs text-gray-500 dark:text-gray-400",children:ns(e,a)})]}),s.jsxs("div",{className:"mt-3 flex items-center justify-end gap-1",children:[s.jsx(C,{size:"sm",variant:"ghost",onClick:()=>{q({id:e.id,name:w(e)}),Y(w(e))},"data-testid":"web-chat-session-rename",children:s.jsx(Ge,{size:14})}),s.jsx(C,{size:"sm",variant:"ghost",onClick:()=>O({id:e.id,name:w(e)}),"data-testid":"web-chat-session-delete",children:s.jsx(Je,{size:14})})]})]},e.id)}):s.jsx($,{message:a("sessions.projectRequired"),icon:U})})]})]}),s.jsxs(pe,{className:"flex min-h-[32rem] flex-col p-0 xl:h-[calc(100vh-8rem)]",children:[s.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-gray-200/80 px-5 py-4 dark:border-white/[0.08]",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"flex items-center gap-2",children:s.jsx("h2",{className:"truncate text-lg font-semibold text-gray-900 dark:text-white",children:Te})}),s.jsx("p",{className:"mt-1 truncate text-sm text-gray-500 dark:text-gray-400",children:n?n.project:a("sessions.sendHint")})]}),s.jsxs(C,{size:"sm",variant:"secondary",onClick:()=>void Pe(),"data-testid":"web-chat-refresh",children:[s.jsx(De,{size:14})," ",a("common.refresh")]})]}),s.jsx("div",{className:"flex-1 overflow-y-auto px-5 py-5",children:i?Ce?s.jsx("div",{className:"flex h-full items-center justify-center text-gray-400",children:s.jsx(P,{className:"animate-spin",size:22})}):I.length===0?s.jsx("div",{className:"flex h-full items-center justify-center",children:s.jsx($,{message:a(n?"sessions.noMessages":"sessions.sendHint"),icon:U})}):s.jsxs("div",{className:"space-y-5",children:[I.map(e=>{const t=e.role==="user";return s.jsxs("div",{className:ee("flex gap-3",t?"justify-end":"justify-start"),children:[!t&&s.jsx("div",{className:"mt-1 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-accent/10",children:s.jsx(Qe,{size:16,className:"text-accent"})}),s.jsx("div",{className:ee("max-w-[85%] rounded-2xl px-5 py-3.5 text-sm",t?"bg-accent text-white rounded-br-md":"border border-gray-200 bg-white text-gray-900 shadow-sm dark:border-white/[0.08] dark:bg-[rgba(0,0,0,0.42)] dark:text-gray-100 rounded-bl-md"),children:s.jsx(Le,{content:e.content,isUser:t})}),t&&s.jsx("div",{className:"mt-1 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gray-200 dark:bg-white/[0.08]",children:s.jsx(Xe,{size:16,className:"text-gray-500 dark:text-gray-300"})})]},e.id)}),s.jsx("div",{ref:me})]}):s.jsx("div",{className:"flex h-full items-center justify-center",children:s.jsx($,{message:a("sessions.emptySelection"),icon:U})})}),s.jsxs("div",{className:"border-t border-gray-200/80 px-5 py-4 dark:border-white/[0.08]",children:[ce&&s.jsx("div",{className:"mb-3 rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-600 dark:border-red-900/40 dark:bg-red-950/20 dark:text-red-300",children:ce}),_==="polling"&&s.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400",children:[s.jsx(P,{size:14,className:"animate-spin"}),s.jsx("span",{children:a("sessions.waitingForReply")})]}),_==="activating"&&s.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400",children:[s.jsx(P,{size:14,className:"animate-spin"}),s.jsx("span",{children:a("sessions.preparingChat")})]}),s.jsxs("div",{className:"relative",children:[s.jsx(Ae,{value:T,onChange:e=>Q(e.target.value),onKeyDown:e=>{e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),ge())},rows:3,placeholder:a(i?"sessions.messageInput":"sessions.projectRequired"),disabled:!i||!A||X||_==="polling"||_==="activating",className:"min-h-[104px] rounded-[24px] border-gray-200 bg-white px-4 pb-16 pt-3 text-[15px] leading-6 shadow-[0_12px_34px_rgba(15,23,42,0.08)] dark:border-white/[0.08] dark:bg-[rgba(0,0,0,0.42)] sm:min-h-[112px] sm:px-5 sm:pt-4","data-testid":"web-chat-input"}),s.jsx(C,{onClick:()=>void ge(),disabled:!_e,size:"icon","aria-label":a("sessions.send"),className:"absolute bottom-3 right-3 h-11 w-11 rounded-full bg-slate-900 px-0 text-white shadow-none hover:bg-slate-800 disabled:bg-slate-300 disabled:text-white disabled:opacity-100 dark:bg-slate-100 dark:text-slate-950 dark:hover:bg-white dark:disabled:bg-white/20 dark:disabled:text-white/55 sm:h-12 sm:w-12","data-testid":"web-chat-send",children:X?s.jsx(P,{size:18,className:"animate-spin"}):s.jsx(Be,{size:22,strokeWidth:2.2})})]}),!A&&n&&s.jsx("div",{className:"mt-3 rounded-xl border border-gray-200 bg-gray-50 px-4 py-3 text-sm text-gray-500 dark:border-white/[0.08] dark:bg-white/[0.03] dark:text-gray-400",children:a("sessions.notLiveHint")})]})]}),s.jsx(je,{open:!!z,onClose:()=>q(null),title:a("sessions.renameTitle"),children:s.jsxs("div",{className:"space-y-4",children:[s.jsx(ye,{value:F,onChange:e=>Y(e.target.value),placeholder:a("sessions.renamePlaceholder"),"data-testid":"web-chat-rename-input"}),s.jsxs("div",{className:"flex justify-end gap-2",children:[s.jsx(C,{variant:"secondary",onClick:()=>q(null),children:a("common.cancel")}),s.jsx(C,{onClick:()=>void Re(),loading:de==="rename","data-testid":"web-chat-rename-save",children:a("common.save")})]})]})}),s.jsx(je,{open:!!M,onClose:()=>O(null),title:a("sessions.deleteConfirmTitle"),children:s.jsxs("div",{className:"space-y-4",children:[s.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:a("sessions.deleteConfirmBody")}),s.jsxs("div",{className:"flex justify-end gap-2",children:[s.jsx(C,{variant:"secondary",onClick:()=>O(null),children:a("common.cancel")}),s.jsx(C,{variant:"danger",onClick:()=>void Ie(),loading:de==="delete","data-testid":"web-chat-delete-confirm",children:a("common.delete")})]})]})})]})}export{js as default};