octo-vec 2.0.0 → 2.0.2
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.
- package/dashboard/dist/assets/{browser-CrmWAuFF.js → browser-ZmDDNd9E.js} +1 -1
- package/dashboard/dist/assets/{cssMode-BVwUrHkK.js → cssMode-D7YcInzo.js} +1 -1
- package/dashboard/dist/assets/{freemarker2-xxtKOP4I.js → freemarker2-DRWssgHR.js} +1 -1
- package/dashboard/dist/assets/{handlebars-DvpxaE6b.js → handlebars-D99ct7vW.js} +1 -1
- package/dashboard/dist/assets/{html-B_f4H1Jb.js → html-qTYwv-ai.js} +1 -1
- package/dashboard/dist/assets/{htmlMode-BicOZthH.js → htmlMode-CElPHLt2.js} +1 -1
- package/dashboard/dist/assets/{index-6wk0E4b_.js → index-BPr6EoMb.js} +4 -4
- package/dashboard/dist/assets/{javascript-BE3CghW_.js → javascript-BMmCYjig.js} +1 -1
- package/dashboard/dist/assets/{jsonMode-BWGm6m6i.js → jsonMode-BizbeRX9.js} +1 -1
- package/dashboard/dist/assets/{liquid-C5EBcTGp.js → liquid-CA6H5Hc2.js} +1 -1
- package/dashboard/dist/assets/{lspLanguageFeatures-B5GoUM0e.js → lspLanguageFeatures-CwDpV0FG.js} +1 -1
- package/dashboard/dist/assets/{mdx-TVCS8lEV.js → mdx-Cxzk8Wsz.js} +1 -1
- package/dashboard/dist/assets/{python-CIAgLh8R.js → python-CPm0olXw.js} +1 -1
- package/dashboard/dist/assets/{razor-DHsAS_YZ.js → razor-DYm1Q1wt.js} +1 -1
- package/dashboard/dist/assets/{tsMode-DSshzMnQ.js → tsMode-BmLhfcSD.js} +1 -1
- package/dashboard/dist/assets/{typescript-BecVVNsH.js → typescript-CioGs6Wz.js} +1 -1
- package/dashboard/dist/assets/{xml-BBvQJZFx.js → xml-DElkVcOE.js} +1 -1
- package/dashboard/dist/assets/{yaml-D7G_0_Bl.js → yaml-DOgzoLoQ.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dist/atp/agentRuntime.d.ts.map +1 -1
- package/dist/atp/agentRuntime.js +9 -2
- package/dist/atp/agentRuntime.js.map +1 -1
- package/dist/atp/database.d.ts +2 -0
- package/dist/atp/database.d.ts.map +1 -1
- package/dist/atp/database.js +12 -0
- package/dist/atp/database.js.map +1 -1
- package/dist/atp/inboxLoop.d.ts.map +1 -1
- package/dist/atp/inboxLoop.js +5 -1
- package/dist/atp/inboxLoop.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-D7YcInzo.js","assets/lspLanguageFeatures-CwDpV0FG.js","assets/htmlMode-CElPHLt2.js","assets/jsonMode-BizbeRX9.js","assets/javascript-BMmCYjig.js","assets/typescript-CioGs6Wz.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var vke=Object.defineProperty;var bke=(n,e,t)=>e in n?vke(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Vs=(n,e,t)=>bke(n,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(s){if(s.ep)return;s.ep=!0;const r=t(s);fetch(s.href,r)}})();function vY(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var kB={exports:{}},eL={},LB={exports:{}},fn={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react.production.min.js
|
|
@@ -610,7 +610,7 @@ Error generating stack: `+P.message+`
|
|
|
610
610
|
`;Aw(t,o),ZL({agentId:t,type:"tool_start",content:s,toolName:e.toolName,toolArgs:e.toolArgs});break}case"tool_end":{const o=e.toolResult?` ${e.isError?"x":"ok"} ${e.toolResult.substring(0,200)}
|
|
611
611
|
`:` ${e.isError?"x error":"ok done"}
|
|
612
612
|
`;Aw(t,o),ZL({agentId:t,type:"tool_end",content:s,toolName:e.toolName,toolResult:e.toolResult,isError:e.isError});break}case"thinking_start":{UR[t]=!0,Aw(t,"[thinking] ");break}case"thinking":{if(!UR[t])break;Aw(t,s),Pne(t,"thinking",s);break}case"thinking_end":{UR[t]=!1,Aw(t,`
|
|
613
|
-
`);break}case"agent_start":{f1={...f1,[t]:""},UY=f1,Mw={...Mw,[t]:!0},dH=Mw;break}case"agent_end":{UR[t]=!1,Mw={...Mw,[t]:!1},dH=Mw,ZL({agentId:t,type:"agent_end",content:""});break}case"todo_update":{const o=r.todos,a=r.taskId;if(o&&a){$B={...$B,[t]:{taskId:a,todos:o}},nge=$B;const l=o.filter(c=>c.status==="completed").length;ZL({agentId:t,type:"todo_update",content:`[${a}] ${l}/${o.length} completed`})}break}default:break}uH()}catch{}}function QRe(){const n=new EventSource(dh("/api/stream"));n.onopen=()=>{cH=!0,uH()},n.onerror=()=>{cH=!1,uH()},n.onmessage=e=>{XRe(e.data)}}QRe();function P0(){const n=z.useSyncExternalStore(oL,()=>UY),e=z.useSyncExternalStore(oL,()=>$Y),t=z.useSyncExternalStore(oL,()=>cH),i=z.useSyncExternalStore(oL,()=>dH),s=z.useSyncExternalStore(oL,()=>nge);return{tokens:n,activity:e,connected:t,activeAgents:i,agentTodos:s}}function cx({value:n,onChange:e,options:t,placeholder:i="Select...",alignRight:s=!0}){var c;const[r,o]=z.useState(!1),a=z.useRef(null),l=t.find(d=>d.value===n);return z.useEffect(()=>{if(!r)return;function d(h){a.current&&!a.current.contains(h.target)&&o(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[r]),_.jsxs("div",{ref:a,style:{position:"relative",display:"inline-flex"},children:[_.jsxs("button",{onClick:()=>o(d=>!d),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 10px 5px 10px",borderRadius:8,border:r?"1px solid var(--accent)":"1px solid var(--border)",background:"var(--bg-tertiary)",color:l&&l.value!==((c=t[0])==null?void 0:c.value)?"var(--text-primary)":"var(--text-muted)",fontSize:12,fontWeight:500,fontFamily:"inherit",cursor:"pointer",outline:"none",transition:"border-color 0.12s",whiteSpace:"nowrap"},children:[l!=null&&l.iconUrl?_.jsx("img",{src:l.iconUrl,alt:"",style:{width:14,height:14,flexShrink:0,borderRadius:2}}):l!=null&&l.dot?_.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:l.dot,flexShrink:0}}):null,_.jsx("span",{children:(l==null?void 0:l.label)??i}),_.jsx(Ic,{size:12,style:{color:"var(--text-muted)",flexShrink:0,transform:r?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.18s ease"}})]}),r&&_.jsx("div",{style:{position:"absolute",top:"calc(100% + 4px)",...s?{right:0}:{left:0},minWidth:"100%",maxHeight:220,overflowY:"auto",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"var(--shadow-lg)",zIndex:50,padding:4,animation:"fade-in 0.1s ease-out"},children:t.map(d=>{const h=d.value===n;return _.jsxs("button",{onClick:()=>{e(d.value),o(!1)},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderRadius:6,border:"none",background:h?"var(--bg-hover)":"transparent",color:h?"var(--text-primary)":"var(--text-secondary)",fontSize:12,fontWeight:h?500:400,fontFamily:"inherit",cursor:"pointer",textAlign:"left",whiteSpace:"nowrap",transition:"background 0.06s"},onMouseEnter:u=>{u.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:u=>{h||(u.currentTarget.style.background="transparent")},children:[d.iconUrl?_.jsx("img",{src:d.iconUrl,alt:"",style:{width:14,height:14,flexShrink:0,borderRadius:2}}):d.dot?_.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:d.dot,flexShrink:0}}):null,_.jsx("span",{style:{flex:1},children:d.label}),h&&_.jsx("span",{style:{fontSize:11,color:"var(--accent)",flexShrink:0},children:"✓"})]},d.value)})})]})}const JRe=[{status:"todo",label:"Todo",color:"var(--text-muted)"},{status:"in_progress",label:"In Progress",color:"var(--blue)"},{status:"completed",label:"Done",color:"var(--green)"},{status:"failed",label:"Failed",color:"var(--red)"},{status:"cancelled",label:"Cancelled",color:"var(--text-muted)"}];function eNe(n){const e=Math.floor((Date.now()-new Date(n).getTime())/6e4);if(e<1)return"now";if(e<60)return`${e}m`;const t=Math.floor(e/60);return t<24?`${t}h`:`${Math.floor(t/24)}d`}function tNe({task:n,employees:e,streaming:t}){const[i,s]=z.useState(!1),r=e.find(a=>a.agent_key===n.agent_id),o=(r==null?void 0:r.color)||"var(--text-muted)";return _.jsxs("div",{className:"vec-card task-card fade-in",onClick:()=>s(a=>!a),style:{padding:"8px 10px",marginBottom:4},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:5,marginBottom:4},children:[_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace"},children:n.task_id}),_.jsx("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-muted)"},children:eNe(n.updated_at)})]}),_.jsx("div",{className:i?"md-content":"md-content md-clamp",style:{marginBottom:6},children:_.jsx(lH,{children:n.description})}),i&&n.result&&_.jsx("div",{className:"md-content md-result",style:{marginBottom:6},children:_.jsx(lH,{children:n.result})}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:5},children:[_.jsx("div",{style:{width:16,height:16,borderRadius:4,background:o,opacity:.85,display:"flex",alignItems:"center",justifyContent:"center",fontSize:8,fontWeight:700,color:"#fff",flexShrink:0},children:r?r.name.charAt(0):n.agent_id.charAt(0).toUpperCase()}),_.jsx("span",{style:{fontSize:10.5,color:"var(--text-muted)",fontWeight:500},children:r?r.name.split(" ")[0]:n.agent_id}),t&&n.status==="in_progress"&&_.jsx("span",{style:{fontSize:9,color:"var(--blue)",fontWeight:500,marginLeft:"auto"},children:"working…"})]})]})}function iNe(){const{data:n}=Ks("/api/tasks",3e3),{employees:e}=Wu(),{activeAgents:t}=P0(),[i,s]=z.useState("all"),r=n??[],o=e??[],a=i==="all"?r:r.filter(u=>u.agent_id===i),l=Array.from(new Set(r.map(u=>u.agent_id))),c=z.useMemo(()=>[{value:"all",label:"All agents"},...l.map(u=>{const f=o.find(g=>g.agent_key===u);return{value:u,label:f?f.name:u,dot:((f==null?void 0:f.color)??"").replace("var(--","").replace(")","")}})],[l,o]),h=a.length>0?130:void 0;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"center",gap:12},children:[_.jsxs("div",{children:[_.jsx("h1",{className:"page-title",children:"Kanban"}),_.jsxs("div",{className:"page-subtitle",children:[r.length," tasks"]})]}),_.jsx("div",{style:{marginLeft:"auto"},children:_.jsx(cx,{value:i,onChange:s,options:c,placeholder:"All agents"})})]}),_.jsx("div",{style:{flex:1,minHeight:0,overflowX:"auto",overflowY:"hidden",padding:"12px 20px",display:"flex",gap:10,alignItems:"flex-start"},children:JRe.map(u=>{const f=a.filter(g=>g.status===u.status);return _.jsxs("div",{style:{flex:1,minWidth:200,minHeight:h,maxHeight:"100%",display:"flex",flexDirection:"column",background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:u.color,flexShrink:0,opacity:.8}}),_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)",flex:1},children:u.label}),_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 5px",borderRadius:4},children:f.length})]}),_.jsx("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:"8px 8px 4px"},children:f.length===0?_.jsx("div",{style:{textAlign:"center",color:"var(--text-muted)",fontSize:11,padding:"20px 0"},children:"No tasks"}):f.map(g=>_.jsx(tNe,{task:g,employees:o,streaming:t[g.agent_id]??!1},g.task_id))})]},u.status)})})]})}function nNe(){const{data:n,lastRefresh:e}=Ks("/api/tasks",3e3),{data:t}=Ks("/api/events",3e3),{employees:i}=Wu(),{tokens:s,connected:r,activeAgents:o}=P0(),a=n??[],l=t??[],c=i??[],d=[{label:"Total",value:a.length,color:"var(--text-primary)"},{label:"In Progress",value:a.filter(u=>u.status==="in_progress").length,color:"var(--blue)"},{label:"Completed",value:a.filter(u=>u.status==="completed").length,color:"var(--green)"},{label:"Failed",value:a.filter(u=>u.status==="failed").length,color:"var(--red)"}],h=Object.keys(o).filter(u=>o[u]);return _.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"20px 24px"},children:[_.jsxs("div",{className:"page-header",style:{padding:"0 0 16px"},children:[_.jsx("h1",{className:"page-title",children:"Overview"}),_.jsxs("div",{className:"page-subtitle",children:[r?"Live":"Polling",e&&_.jsxs("span",{children:[" · ",e.toLocaleTimeString()]})]})]}),_.jsx("div",{style:{display:"flex",gap:8,marginBottom:20},children:d.map(u=>_.jsxs("div",{style:{flex:1,padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:u.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:u.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:u.label})]},u.label))}),h.length>0&&_.jsxs("div",{style:{marginBottom:20},children:[_.jsx("div",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Live"}),_.jsx("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:h.map((u,f)=>_.jsxs("div",{style:{padding:"10px 14px",borderBottom:f<h.length-1?"1px solid var(--border)":"none"},children:[_.jsx("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:3},children:_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:u})}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s[u].slice(-120)})]},u))})]}),_.jsxs("div",{style:{marginBottom:20},children:[_.jsx("div",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Team"}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:c.map(u=>{const f=o[u.agent_key]??!1;return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 10px",borderRadius:6,background:"var(--bg-card)",border:"1px solid var(--border)",fontSize:12},children:[_.jsx("span",{style:{fontWeight:500,color:f?"var(--text-primary)":"var(--text-muted)"},children:u.name.split(" ")[0]}),_.jsx("span",{style:{color:"var(--text-muted)",fontSize:11},children:u.role})]},u.employee_id)})})]}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Recent Events"}),_.jsx("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:l.length===0?_.jsx("div",{style:{padding:14,fontSize:12,color:"var(--text-muted)"},children:"No events yet"}):l.slice(0,8).map((u,f)=>_.jsxs("div",{style:{display:"flex",gap:10,padding:"8px 14px",alignItems:"baseline",borderBottom:f<Math.min(7,l.length-1)?"1px solid var(--border)":"none"},children:[_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace",whiteSpace:"nowrap",minWidth:60},children:new Date(u.timestamp).toLocaleTimeString()}),_.jsx("span",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",minWidth:28},children:u.agent_id}),_.jsx("span",{style:{fontSize:12,color:"var(--text-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:u.message})]},f))})]})]})}const sNe={task_created:"var(--blue)",task_in_progress:"var(--yellow)",task_completed:"var(--green)",task_failed:"var(--red)",agent_thinking:"var(--purple)",agent_tool_call:"var(--orange)",message_sent:"var(--blue)"};function rNe(){const{data:n,lastRefresh:e}=Ks("/api/events",2e3),[t,i]=z.useState("all"),s=n??[],r=["all",...Array.from(new Set(s.map(a=>a.agent_id).filter(Boolean)))],o=t==="all"?s:s.filter(a=>a.agent_id===t);return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"center",gap:10},children:[_.jsxs("div",{children:[_.jsx("h1",{className:"page-title",children:"Events"}),_.jsxs("div",{className:"page-subtitle",children:[o.length," events",e&&_.jsxs("span",{children:[" · ",e.toLocaleTimeString()]})]})]}),_.jsx("div",{style:{marginLeft:"auto",display:"flex",gap:2},children:r.map(a=>_.jsx("button",{className:`filter-tab${t===a?" active":""}`,onClick:()=>i(a),children:a==="all"?"All":a},a))})]}),_.jsx("div",{style:{flex:1,overflowY:"auto"},children:o.length===0?_.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"var(--text-muted)",fontSize:13},children:"No events"}):o.map((a,l)=>{const c=sNe[a.event_type]??"var(--text-muted)";return _.jsxs("div",{className:"fade-in",style:{display:"flex",gap:10,padding:"7px 24px",alignItems:"baseline",borderBottom:"1px solid var(--border)"},children:[_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace",whiteSpace:"nowrap",minWidth:60},children:new Date(a.timestamp).toLocaleTimeString()}),_.jsx("span",{style:{width:5,height:5,borderRadius:"50%",background:c,flexShrink:0}}),_.jsx("span",{style:{fontSize:11,fontWeight:500,color:c,minWidth:90,whiteSpace:"nowrap"},children:a.event_type.replace(/_/g," ")}),a.agent_id&&_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500,minWidth:28},children:a.agent_id}),_.jsx("span",{style:{fontSize:12,color:"var(--text-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:a.message})]},l)})})]})}function qB(n){const e=n.split(" ");return e.length>=2?(e[0][0]+e[e.length-1][0]).toUpperCase():n.slice(0,2).toUpperCase()}function oNe(){const{employees:n}=Wu(),e=z.useMemo(()=>n??[],[n]),[t,i]=z.useState("pm"),[s,r]=z.useState(!1),{data:o,lastRefresh:a}=Ks(`/api/inbox/${t}`,3e3),l=o??[],c=e.find(u=>u.agent_key===t),d=(c==null?void 0:c.name)??t,h=(c==null?void 0:c.color)??"var(--text-muted)";return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:16},children:[_.jsxs("div",{children:[_.jsx("div",{className:"page-title",children:"Snoop"}),_.jsxs("div",{className:"page-subtitle",children:[l.length," message",l.length!==1?"s":""," in inbox",a&&_.jsxs("span",{children:[" · ",a.toLocaleTimeString()]})]})]}),_.jsxs("div",{style:{position:"relative"},children:[_.jsxs("button",{onClick:()=>r(u=>!u),style:{display:"flex",alignItems:"center",gap:8,padding:"7px 14px",borderRadius:20,border:"1px solid var(--border)",background:"var(--bg-tertiary)",cursor:"pointer",fontFamily:"inherit",fontSize:12,fontWeight:500,color:"var(--text-primary)",transition:"border-color 0.08s"},children:[_.jsx("div",{style:{width:22,height:22,borderRadius:6,background:h,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:9,fontWeight:600,color:"#fff"},children:(c==null?void 0:c.initials)??qB(d)}),_.jsx("span",{children:d}),_.jsx(Ic,{size:13,style:{color:"var(--text-muted)",transform:s?"rotate(180deg)":"none",transition:"transform 0.15s"}})]}),s&&_.jsxs(_.Fragment,{children:[_.jsx("div",{style:{position:"fixed",inset:0,zIndex:50},onClick:()=>r(!1)}),_.jsx("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:51,background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,padding:4,width:220,maxHeight:320,overflowY:"auto",boxShadow:"var(--shadow-lg)"},children:e.map(u=>{const f=u.agent_key===t;return _.jsxs("button",{onClick:()=>{i(u.agent_key),r(!1)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 10px",border:"none",borderRadius:7,background:f?"var(--bg-hover)":"transparent",color:f?"var(--text-primary)":"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit",fontSize:12,fontWeight:f?500:400,textAlign:"left",transition:"background 0.06s"},onMouseEnter:g=>{f||(g.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:g=>{f||(g.currentTarget.style.background="transparent")},children:[_.jsx("div",{style:{width:24,height:24,borderRadius:6,flexShrink:0,background:u.color??"var(--text-muted)",opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,color:"#fff"},children:u.initials??qB(u.name)}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12},children:u.name}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)"},children:["@",u.agent_key]})]})]},u.agent_key)})})]})]})]}),_.jsx("div",{style:{flex:1,overflowY:"auto",padding:"4px 24px 20px"},children:l.length===0?_.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:8,color:"var(--text-muted)"},children:[_.jsx(nDe,{size:32,style:{opacity:.4}}),_.jsx("span",{style:{fontSize:13},children:"Inbox empty"})]}):l.map((u,f)=>{const g=u.message??u.text??JSON.stringify(u),m=u.from_agent??u.sender??"system",b=u.to_agent??"pm",w=u.priority??"normal",S=u.timestamp,x=w==="priority"?"var(--red)":w==="high"?"var(--yellow)":"var(--text-muted)",C=e.find(L=>L.agent_key===m);return _.jsxs("div",{style:{padding:"12px 0",borderBottom:f<l.length-1?"1px solid var(--border)":"none",display:"flex",gap:10,alignItems:"flex-start"},children:[_.jsx("div",{style:{width:28,height:28,borderRadius:7,flexShrink:0,background:(C==null?void 0:C.color)??"var(--text-muted)",opacity:.85,display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,color:"#fff"},children:C?C.initials??qB(C.name):m.slice(0,2).toUpperCase()}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",marginBottom:4,flexWrap:"wrap"},children:[_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:(C==null?void 0:C.name)??m}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"→"}),_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--accent)"},children:b}),u.task_id&&_.jsx("span",{style:{fontSize:10,fontFamily:"monospace",color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 5px",borderRadius:3},children:u.task_id}),_.jsx("span",{style:{marginLeft:"auto",fontSize:10,color:x,fontWeight:500},children:w}),S&&_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)"},children:new Date(S).toLocaleTimeString()})]}),_.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",lineHeight:1.55,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:g})]})]},f)})})]})}function sge({title:n,message:e,confirmLabel:t="Confirm",cancelLabel:i="Cancel",destructive:s=!1,onConfirm:r,onCancel:o}){return _.jsx("div",{onClick:o,style:{position:"fixed",inset:0,zIndex:9999,background:"rgba(0,0,0,0.5)",backdropFilter:"blur(8px)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsxs("div",{onClick:a=>a.stopPropagation(),style:{width:380,borderRadius:16,background:"var(--bg-card)",border:"1px solid var(--border)",boxShadow:"var(--shadow-lg, 0 20px 60px rgba(0,0,0,0.4))",padding:"24px",animation:"fadeIn 0.15s ease"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:12},children:[_.jsx("div",{style:{width:36,height:36,borderRadius:10,flexShrink:0,background:s?"color-mix(in srgb, var(--red) 12%, transparent)":"color-mix(in srgb, var(--accent) 12%, transparent)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx(XW,{size:18,style:{color:s?"var(--red)":"var(--orange)"}})}),_.jsx("div",{style:{fontSize:15,fontWeight:600,color:"var(--text-primary)"},children:n})]}),_.jsx("div",{style:{fontSize:13,color:"var(--text-muted)",lineHeight:1.5,marginBottom:20,paddingLeft:48},children:e}),_.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[_.jsx("button",{onClick:o,style:{padding:"8px 16px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-secondary)",cursor:"pointer",fontSize:13,fontWeight:500,fontFamily:"inherit"},children:i}),_.jsx("button",{onClick:r,style:{padding:"8px 16px",borderRadius:8,border:"none",background:s?"var(--red)":"var(--accent)",color:"#fff",cursor:"pointer",fontSize:13,fontWeight:600,fontFamily:"inherit"},children:t})]})]})})}const AA={"Project Manager":"var(--purple)","Senior Developer":"var(--blue)","Business Analyst":"var(--green)","QA Engineer":"var(--yellow)","Security Engineer":"var(--red)","DevOps Engineer":"var(--orange)","Technical Writer":"var(--purple)","Solutions Architect":"var(--blue)","Research Specialist":"var(--green)","Frontend Developer":"var(--blue)","Backend Developer":"var(--orange)","Mobile Developer":"var(--purple)","Data Engineer":"var(--green)","Database Administrator":"var(--blue)","ML/AI Engineer":"var(--green)","Site Reliability Engineer":"var(--orange)","Product Owner":"var(--blue)","UI/UX Designer":"var(--purple)","Scrum Master":"var(--purple)","Data Analyst":"var(--green)","Release Manager":"var(--green)","Compliance Officer":"var(--red)","Support Engineer":"var(--yellow)"},One={"Project Manager":ufe,"Senior Developer":bLe,"Business Analyst":Xke,"QA Engineer":qke,"Security Engineer":bfe,"DevOps Engineer":DLe,"Technical Writer":X3,"Solutions Architect":kLe,"Research Specialist":VLe,"Frontend Developer":LY,"Backend Developer":EY,"Mobile Developer":TA,"Data Engineer":EA,"Database Administrator":EA,"ML/AI Engineer":jke,"Site Reliability Engineer":Bke,"Product Owner":mLe,"UI/UX Designer":DY,"Scrum Master":u1,"Data Analyst":Jke,"Release Manager":HDe,"Compliance Officer":UDe,"Support Engineer":eDe},fH=new Set(["message_agent","read_inbox"]),aNe=[{label:"Messaging",match:n=>n.includes("message")||n.includes("inbox")},{label:"Memory",match:n=>n.includes("memory")||n.includes("stm")||n.includes("ltm")||n.includes("sltm")},{label:"Tasks",match:n=>n.includes("task")||n.includes("assign")||n.includes("start")},{label:"Files",match:n=>n.includes("read")||n.includes("write")||n.includes("edit")||n.includes("file")||n.includes("find")||n.includes("grep")||n.includes("ls")},{label:"Shell",match:n=>n.includes("bash")||n.includes("shell")||n.includes("exec")},{label:"Directory",match:n=>n.includes("director")||n.includes("employee")||n.includes("lookup")},{label:"Utils",match:n=>n.includes("date")||n.includes("time")||n.includes("search")}],Pw="cubic-bezier(0.16, 1, 0.3, 1)",Ow="0.44s";function Fne(n){const e=n.split(" ");return e.length>=2?(e[0][0]+e[e.length-1][0]).toUpperCase():n.slice(0,2).toUpperCase()}function rge(n){const e=new Set,t=[];for(const s of aNe){const r=n.filter(o=>!e.has(o)&&s.match(o));r.length&&(r.forEach(o=>e.add(o)),t.push({label:s.label,tools:r}))}const i=n.filter(s=>!e.has(s));return i.length&&t.push({label:"Other",tools:i}),t}function Bne({runtime:n}){return n?n.enabled?n.status==="paused"?_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"2px 7px",borderRadius:4,background:"var(--yellow-bg, rgba(245,158,11,0.1))",color:"var(--yellow)",border:"1px solid var(--yellow)"},children:"PAUSED"}):null:_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"2px 7px",borderRadius:4,background:"var(--bg-tertiary)",color:"var(--text-muted)",border:"1px solid var(--border)"},children:"DISABLED"}):null}const lNe={Engineering:"var(--blue)",Management:"var(--purple)","Quality Assurance":"var(--yellow)",Security:"var(--red)",Operations:"var(--orange)",Research:"var(--green)",Documentation:"var(--purple)",Design:"var(--purple)",Data:"var(--green)",Support:"var(--yellow)"};function cNe(n){return lNe[n]??"var(--accent)"}function dNe({templates:n,onHire:e,onClose:t}){const[i,s]=z.useState(""),[r,o]=z.useState(""),[a,l]=z.useState(!1),[c,d]=z.useState(""),[h,u]=z.useState(""),f=n.filter(C=>!C.mandatory),g=z.useMemo(()=>{if(!h.trim())return f;const C=h.toLowerCase();return f.filter(L=>L.role.toLowerCase().includes(C)||L.department.toLowerCase().includes(C)||L.default_skills.some(E=>E.toLowerCase().includes(C)))},[f,h]),m=z.useMemo(()=>{const C=new Map;for(const L of g){const E=C.get(L.department)??[];E.push(L),C.set(L.department,E)}return[...C.entries()]},[g]),b=f.find(C=>C.id===i);async function w(){if(!(!i||!r.trim())){l(!0),d("");try{await e(i,r.trim()),t()}catch(C){d(C.message??String(C))}finally{l(!1)}}}const S=b?One[b.role]:null,x=b?AA[b.role]??"var(--accent)":"var(--accent)";return _.jsxs(_.Fragment,{children:[_.jsx("div",{onClick:t,style:{position:"fixed",inset:0,zIndex:100,background:"rgba(0,0,0,0.6)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"}}),_.jsxs("div",{style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:101,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:14,padding:0,width:880,maxWidth:"94vw",height:540,maxHeight:"85vh",display:"flex",flexDirection:"column",boxShadow:"0 20px 60px rgba(0,0,0,0.45)",overflow:"hidden"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 20px 12px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[_.jsx("div",{style:{width:30,height:30,borderRadius:8,background:"var(--accent-subtle)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx(IM,{size:14,style:{color:"var(--accent)"}})}),_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Hire New Agent"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[f.length," roles available"]})]}),_.jsx("button",{onClick:t,style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-tertiary)",color:"var(--text-muted)",cursor:"pointer",padding:0},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="var(--bg-tertiary)",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(Pr,{size:13})})]}),_.jsxs("div",{style:{flex:1,display:"flex",overflow:"hidden",minHeight:0},children:[_.jsxs("div",{style:{width:320,flexShrink:0,display:"flex",flexDirection:"column",borderRight:"1px solid var(--border)",overflow:"hidden"},children:[_.jsx("div",{style:{padding:"10px 14px 6px",flexShrink:0},children:_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:8,padding:"6px 10px"},children:[_.jsx(Rh,{size:13,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("input",{value:h,onChange:C=>u(C.target.value),placeholder:"Search roles...",style:{border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontSize:12,width:"100%",fontFamily:"inherit",padding:0}}),h&&_.jsx("button",{onClick:()=>u(""),style:{display:"flex",alignItems:"center",justifyContent:"center",width:14,height:14,border:"none",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",borderRadius:3,padding:0,flexShrink:0},children:_.jsx(Pr,{size:9})})]})}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"6px 14px 12px"},children:[m.map(([C,L])=>{const E=cNe(C);return _.jsxs("div",{style:{marginBottom:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:5,padding:"0 4px"},children:[_.jsx(y_,{size:10,style:{color:E,opacity:.7}}),_.jsx("span",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:C}),_.jsx("div",{style:{flex:1,height:1,background:"var(--border)",marginLeft:4}})]}),L.map(I=>{const R=i===I.id,M=AA[I.role]??E,A=One[I.role];return _.jsxs("button",{onClick:()=>s(I.id),style:{width:"100%",fontSize:12,padding:"8px 12px",borderRadius:8,cursor:"pointer",border:"1px solid",fontFamily:"inherit",fontWeight:500,borderColor:R?"var(--accent)":"transparent",background:R?"var(--accent-subtle)":"transparent",color:R?"var(--accent)":"var(--text-secondary)",transition:"all 0.1s",display:"flex",alignItems:"center",gap:10,textAlign:"left",marginBottom:2},onMouseEnter:H=>{R||(H.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:H=>{R||(H.currentTarget.style.background=R?"var(--accent-subtle)":"transparent")},children:[A?_.jsx(A,{size:16,style:{color:R?"var(--accent)":M,flexShrink:0}}):_.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:R?"var(--accent)":M,flexShrink:0}}),I.role]},I.id)})]},C)}),g.length===0&&_.jsx("div",{style:{padding:20,textAlign:"center",color:"var(--text-muted)",fontSize:12},children:h?`No roles matching "${h}"`:"No additional roles available."})]})]}),_.jsx("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},children:b?_.jsxs(_.Fragment,{children:[_.jsx("div",{style:{padding:"18px 24px 14px",flexShrink:0,borderBottom:"1px solid var(--border)"},children:_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[_.jsx("div",{style:{width:40,height:40,borderRadius:10,background:x,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center"},children:S?_.jsx(S,{size:20,style:{color:"#fff"}}):_.jsx(IM,{size:18,style:{color:"#fff"}})}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:16,fontWeight:600,color:"var(--text-primary)"},children:b.role}),_.jsxs("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:1},children:[b.department," · ",b.category==="pm"?"Management":"Specialist"]})]})]})}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px"},children:[_.jsxs("div",{style:{marginBottom:20},children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:8},children:"Job Description"}),_.jsx("div",{style:{fontSize:13,lineHeight:1.6,color:"var(--text-secondary)"},children:b.description||"No description available."})]}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:8},children:"Default Skills"}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:b.default_skills.map(C=>_.jsx("span",{style:{fontSize:11,fontWeight:500,padding:"4px 10px",borderRadius:6,background:"var(--bg-tertiary)",color:"var(--text-secondary)",border:"1px solid var(--border)"},children:C},C))})]})]}),_.jsxs("div",{style:{padding:"14px 24px 16px",borderTop:"1px solid var(--border)",flexShrink:0,background:"var(--bg-secondary)"},children:[_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsx("input",{value:r,onChange:C=>o(C.target.value),onKeyDown:C=>C.key==="Enter"&&w(),placeholder:"Enter agent name...",style:{flex:1,fontSize:13,padding:"9px 14px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-card)",color:"var(--text-primary)",fontFamily:"inherit",outline:"none",boxSizing:"border-box"},onFocus:C=>{C.currentTarget.style.borderColor="var(--accent)"},onBlur:C=>{C.currentTarget.style.borderColor="var(--border)"}}),_.jsxs("button",{onClick:w,disabled:a||!r.trim(),style:{fontSize:12,padding:"9px 22px",borderRadius:8,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",fontWeight:600,flexShrink:0,opacity:a||!r.trim()?.4:1,display:"flex",alignItems:"center",gap:6},children:[_.jsx(IM,{size:13}),a?"Hiring...":"Hire Agent"]})]}),c&&_.jsx("div",{style:{fontSize:11,color:"var(--red)",marginTop:8,padding:"6px 10px",background:"var(--red-bg)",borderRadius:6,border:"1px solid rgba(232,100,90,0.15)"},children:c})]})]}):_.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",gap:12,padding:40},children:[_.jsx(ufe,{size:32,style:{opacity:.3}}),_.jsx("div",{style:{fontSize:14,fontWeight:500},children:"Select a role"}),_.jsx("div",{style:{fontSize:12,textAlign:"center",maxWidth:240,lineHeight:1.5},children:"Choose a role from the list to see the job description and hire a new agent."})]})})]})]})]})}function hNe({agentId:n}){var S;const{data:e}=Ks("/api/model-config",1e4),[t,i]=z.useState(!1),[s,r]=z.useState(""),[o,a]=z.useState(""),[l,c]=z.useState(!1),d=((e==null?void 0:e.providers)??[]).filter(x=>x.configured),h=(e==null?void 0:e.config.agentModels[n])??null,u=e==null?void 0:e.config.primary,f=h??u;z.useEffect(()=>{h?(r(h.provider),a(h.model)):u&&(r(u.provider),a(u.model))},[h==null?void 0:h.provider,h==null?void 0:h.model,u==null?void 0:u.provider,u==null?void 0:u.model]);const g=d.find(x=>x.id===s),m=(g==null?void 0:g.models)??[];async function b(){i(!0);try{await tn("/api/agent-model",{agent_id:n,provider:s,model:o})}catch(x){console.error(x)}finally{i(!1),c(!1)}}async function w(){i(!0);try{await tn("/api/agent-model",{agent_id:n})}catch(x){console.error(x)}finally{i(!1),c(!1)}}return e?_.jsxs("div",{style:{marginBottom:18},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx(DA,{size:13,style:{color:"var(--purple)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Model"}),h&&_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:"color-mix(in srgb, var(--purple) 12%, transparent)",color:"var(--purple)"},children:"OVERRIDE"})]}),!l&&_.jsx("button",{onClick:()=>c(!0),style:{fontSize:11,fontWeight:500,padding:"4px 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-tertiary)",color:"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit"},children:"Change"})]}),l?_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px",borderRadius:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)"},children:[_.jsx(cx,{value:s,onChange:x=>{r(x),a("")},options:d.map(x=>({value:x.id,label:x.name,iconUrl:x.iconUrl})),placeholder:"Provider...",alignRight:!1}),_.jsx(cx,{value:o,onChange:a,options:m.map(x=>({value:x,label:x})),placeholder:`Select model (${m.length})...`,alignRight:!1}),_.jsx("button",{onClick:b,disabled:t||!o,style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,border:"none",flexShrink:0,background:o?"var(--accent)":"var(--bg-tertiary)",color:o?"#fff":"var(--text-muted)",cursor:o?"pointer":"default",padding:0},children:_.jsx(Mc,{size:13})}),h&&_.jsx("button",{onClick:w,disabled:t,title:"Reset to primary",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,flexShrink:0,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",padding:0},children:_.jsx(Pr,{size:12})}),_.jsx("button",{onClick:()=>c(!1),style:{fontSize:11,padding:"5px 10px",borderRadius:6,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontFamily:"inherit",flexShrink:0},children:"Cancel"})]}):_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 12px",borderRadius:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)"},children:[(()=>{const x=d.find(C=>C.id===(f==null?void 0:f.provider));return x?_.jsx("img",{src:x.iconUrl,alt:x.name,style:{width:20,height:20,flexShrink:0,borderRadius:3},onError:C=>{C.target.style.display="none"}}):_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",flexShrink:0,background:"var(--green)"}})})(),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:((S=d.find(x=>x.id===(f==null?void 0:f.provider)))==null?void 0:S.name)??(f==null?void 0:f.provider)??"—"}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"monospace"},children:(f==null?void 0:f.model)??"Not configured"})]}),!h&&_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:"var(--bg-card)",color:"var(--text-muted)",border:"1px solid var(--border)"},children:"PRIMARY"})]})]}):null}function uNe({profile:n}){const[e,t]=z.useState(()=>new Set(n.enabled_tools)),[i,s]=z.useState(!1),r=JSON.stringify([...e].sort())!==JSON.stringify([...n.enabled_tools].sort());function o(d){fH.has(d)||t(h=>{const u=new Set(h);return u.has(d)?u.delete(d):u.add(d),u})}async function a(){s(!0);try{await tn("/api/agent-config",{agent_id:n.agent_id,tools:Array.from(e)})}catch(d){console.error(d)}finally{s(!1)}}const l=rge(n.all_tools),c=n.all_tools.filter(d=>e.has(d)).length;return _.jsxs("div",{children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:14},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Tools"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"2px 8px",borderRadius:5,fontFamily:"monospace"},children:[c,"/",n.all_tools.length]})]}),r&&_.jsx("button",{onClick:a,disabled:i,style:{fontSize:11,fontWeight:500,padding:"4px 14px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",opacity:i?.5:1},children:i?"Saving...":"Save changes"})]}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(210px, 1fr))",gap:10},children:l.map(d=>_.jsxs("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsx("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"7px 12px 5px",background:"var(--bg-tertiary)",borderBottom:"1px solid var(--border)"},children:d.label}),d.tools.map((h,u)=>{const f=e.has(h),g=fH.has(h);return _.jsxs("div",{className:`tool-row${g?" locked":""}`,onClick:()=>o(h),style:{borderBottom:u<d.tools.length-1?"1px solid var(--border)":"none",height:32},children:[_.jsx("span",{style:{flex:1,fontSize:11,fontFamily:"monospace",color:f?"var(--text-primary)":"var(--text-muted)"},children:h}),g?_.jsx(gDe,{size:9,style:{color:"var(--text-muted)",flexShrink:0}}):_.jsx("div",{style:{width:28,height:16,borderRadius:8,flexShrink:0,background:f?"var(--green)":"var(--bg-tertiary)",border:f?"none":"1px solid var(--border)",position:"relative",transition:"background 0.15s",cursor:"pointer"},children:_.jsx("div",{style:{width:12,height:12,borderRadius:"50%",background:f?"#fff":"var(--text-muted)",position:"absolute",top:2,left:f?14:2,transition:"left 0.15s, background 0.15s"}})})]},h)})]},d.label))})]})}function fNe({profile:n}){const[e,t]=z.useState(()=>new Set(n.enabled_mcp_servers)),[i,s]=z.useState(!1),r=JSON.stringify([...e].sort())!==JSON.stringify([...n.enabled_mcp_servers].sort());if(!n.all_mcp_servers||n.all_mcp_servers.length===0)return null;function o(l){t(c=>{const d=new Set(c);return d.has(l)?d.delete(l):d.add(l),d})}async function a(){s(!0);try{await tn("/api/agent-mcp",{agent_id:n.agent_id,servers:Array.from(e)})}catch(l){console.error(l)}finally{s(!1)}}return _.jsxs("div",{style:{marginTop:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:14},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"MCP Servers"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"2px 8px",borderRadius:5,fontFamily:"monospace"},children:[e.size,"/",n.all_mcp_servers.length]})]}),r&&_.jsx("button",{onClick:a,disabled:i,style:{fontSize:11,fontWeight:500,padding:"4px 14px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",opacity:i?.5:1},children:i?"Saving...":"Save changes"})]}),_.jsxs("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsx("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"7px 12px 5px",background:"var(--bg-tertiary)",borderBottom:"1px solid var(--border)"},children:"Connected Servers"}),n.all_mcp_servers.map((l,c)=>{const d=e.has(l);return _.jsxs("div",{className:"tool-row",onClick:()=>o(l),style:{borderBottom:c<n.all_mcp_servers.length-1?"1px solid var(--border)":"none",height:36},children:[_.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8},children:[_.jsx(DA,{size:12,style:{color:d?"var(--accent)":"var(--text-muted)",flexShrink:0}}),_.jsx("span",{style:{fontSize:12,fontFamily:"monospace",color:d?"var(--text-primary)":"var(--text-muted)"},children:l})]}),_.jsx("div",{style:{width:28,height:16,borderRadius:8,flexShrink:0,background:d?"var(--green)":"var(--bg-tertiary)",border:d?"none":"1px solid var(--border)",position:"relative",transition:"background 0.15s",cursor:"pointer"},children:_.jsx("div",{style:{width:12,height:12,borderRadius:"50%",background:d?"#fff":"var(--text-muted)",position:"absolute",top:2,left:d?14:2,transition:"left 0.15s, background 0.15s"}})})]},l)})]})]})}function gNe({profile:n}){const[e,t]=z.useState(()=>new Set(n.approval_required_tools??[])),[i,s]=z.useState(!1),r=n.approval_required_tools??[],o=JSON.stringify([...e].sort())!==JSON.stringify([...r].sort()),a=new Set(n.enabled_tools),l=n.all_tools.filter(u=>a.has(u)&&!fH.has(u));if(l.length===0)return null;function c(u){t(f=>{const g=new Set(f);return g.has(u)?g.delete(u):g.add(u),g})}async function d(){s(!0);try{await tn("/api/agent-approval-config",{agent_id:n.agent_id,tools:Array.from(e)})}catch(u){console.error(u)}finally{s(!1)}}const h=rge(l);return _.jsxs("div",{style:{marginTop:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:14},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx(bfe,{size:14,style:{color:"var(--orange)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Action Required"}),e.size>0&&_.jsxs("span",{style:{fontSize:11,color:"var(--orange)",background:"rgba(245,158,11,0.1)",padding:"2px 8px",borderRadius:5,fontFamily:"monospace"},children:[e.size," gated"]})]}),o&&_.jsx("button",{onClick:d,disabled:i,style:{fontSize:11,fontWeight:500,padding:"4px 14px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",opacity:i?.5:1},children:i?"Saving...":"Save changes"})]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.5,marginBottom:12,padding:"8px 12px",background:"rgba(245,158,11,0.05)",borderRadius:8,border:"1px solid rgba(245,158,11,0.12)"},children:"Tools marked here will pause and wait for your approval before the agent can execute them. The agent cannot proceed until you approve or deny from the dashboard."}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(210px, 1fr))",gap:10},children:h.map(u=>_.jsxs("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsx("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"7px 12px 5px",background:"var(--bg-tertiary)",borderBottom:"1px solid var(--border)"},children:u.label}),u.tools.map((f,g)=>{const m=e.has(f);return _.jsxs("div",{className:"tool-row",onClick:()=>c(f),style:{borderBottom:g<u.tools.length-1?"1px solid var(--border)":"none",height:32},children:[_.jsx("span",{style:{flex:1,fontSize:11,fontFamily:"monospace",color:m?"var(--orange)":"var(--text-muted)",fontWeight:m?600:400},children:f}),_.jsx("div",{style:{width:28,height:16,borderRadius:8,flexShrink:0,background:m?"var(--orange)":"var(--bg-tertiary)",border:m?"none":"1px solid var(--border)",position:"relative",transition:"background 0.15s",cursor:"pointer"},children:_.jsx("div",{style:{width:12,height:12,borderRadius:"50%",background:m?"#fff":"var(--text-muted)",position:"absolute",top:2,left:m?14:2,transition:"left 0.15s, background 0.15s"}})})]},f)})]},u.label))})]})}function pNe(){const{employees:n,refresh:e}=Wu(),{data:t}=Ks("/api/tasks",5e3),{data:i,refresh:s}=Ks("/api/company",15e3),{data:r,refresh:o}=Ks("/api/agents/runtime",4e3),{data:a}=Ks("/api/role-templates",3e4),{tokens:l,activeAgents:c}=P0(),[d,h]=z.useState(""),[u,f]=z.useState("grid"),[g,m]=z.useState({}),[b,w]=z.useState(!1),[S,x]=z.useState(null),[C,L]=z.useState(null),[E,I]=z.useState(null),[R,M]=z.useState("idle"),A=z.useRef(null),H=z.useRef(new Map),[F,B]=z.useState(!1),[j,V]=z.useState(""),[X,K]=z.useState(!1),Q=z.useRef(null),te=n??[],W=t??[],Z=(i==null?void 0:i.agents)??[],oe=(r==null?void 0:r.agents)??[],$=(a==null?void 0:a.templates)??[],be=R==="entered",Le=z.useMemo(()=>{const It=new Map;for(const $t of oe)It.set($t.agent_id,$t);return It},[oe]),Ve=z.useMemo(()=>{if(!d.trim())return te;const It=d.toLowerCase();return te.filter($t=>$t.name.toLowerCase().includes(It)||$t.role.toLowerCase().includes(It)||$t.agent_key.toLowerCase().includes(It))},[te,d]),Ye=z.useMemo(()=>{const It=new Map;for(const Ti of Ve){const Wn=Ti.department??"Other";It.has(Wn)||It.set(Wn,[]),It.get(Wn).push(Ti)}const $t=["Management","Product","Engineering","Analysis","Design","Documentation","Governance"];return[...It.entries()].sort(([Ti],[Wn])=>{const xi=$t.indexOf(Ti),Qt=$t.indexOf(Wn);return xi!==-1&&Qt!==-1?xi-Qt:xi!==-1?-1:Qt!==-1?1:Ti.localeCompare(Wn)})},[Ve]),ft=z.useCallback(It=>{const $t=H.current.get(It),Ti=A.current;if(!$t||!Ti)return;const Wn=$t.getBoundingClientRect(),xi=Ti.getBoundingClientRect();I({top:Wn.top-xi.top,left:Wn.left-xi.left,width:Wn.width,height:Wn.height,rootW:xi.width,rootH:xi.height}),L(It),B(!1),M("measure"),requestAnimationFrame(()=>{requestAnimationFrame(()=>M("entered"))})},[]),re=z.useCallback(()=>{M("exiting"),setTimeout(()=>{L(null),I(null),M("idle")},450)},[]);async function Se(It,$t){m(Ti=>({...Ti,[It]:"toggle"}));try{await tn(`/api/agents/${It}/toggle`,{enabled:$t}),o(),e()}catch(Ti){console.error(Ti)}finally{m(Ti=>({...Ti,[It]:null}))}}async function We(It){x(null),m($t=>({...$t,[It]:"remove"}));try{await yY(`/api/agents/${It}`),o(),e()}catch($t){console.error($t)}finally{m($t=>({...$t,[It]:null}))}}async function Be(It,$t){await tn("/api/agents",{template:It,name:$t}),o(),e()}function Te(It){const $t=It.agent_key,Ti=AA[It.role]??"var(--text-muted)",Wn=c[$t]??!1,xi=Le.get($t),Qt=W.filter(Dt=>Dt.agent_id===$t),Is=Qt.filter(Dt=>Dt.status==="in_progress").length,ae=Qt.filter(Dt=>Dt.status==="completed").length,ke=Qt.filter(Dt=>Dt.status==="todo").length,Ue=l[$t]??"",Pt=(xi==null?void 0:xi.template)==="pm";return _.jsxs("div",{ref:Dt=>{Dt&&H.current.set($t,Dt)},onClick:()=>ft($t),className:"card-hover",style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,padding:14,cursor:"pointer",transition:"border-color 0.12s, box-shadow 0.12s",position:"relative",display:"flex",flexDirection:"column",gap:10,opacity:xi&&!xi.enabled?.55:1},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[_.jsxs("div",{style:{position:"relative",flexShrink:0},children:[_.jsx("div",{style:{width:36,height:36,borderRadius:9,background:Ti,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,fontWeight:600,color:"#fff"},children:It.initials??Fne(It.name)}),Wn&&_.jsx("div",{style:{position:"absolute",bottom:-1,right:-1,width:9,height:9,borderRadius:"50%",background:"var(--green)",border:"2px solid var(--bg-card)"}})]}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:It.name}),_.jsx(Bne,{runtime:xi})]}),_.jsx("div",{style:{fontSize:11,color:Ti,fontWeight:500,marginTop:1},children:It.role})]}),_.jsxs("span",{style:{fontSize:10,fontFamily:"monospace",color:"var(--text-muted)",flexShrink:0},children:["@",$t]})]}),Qt.length>0&&_.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[Is>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:500,color:"var(--blue)",background:"var(--blue-bg, rgba(17,88,199,0.1))",padding:"2px 7px",borderRadius:4},children:[Is," active"]}),ke>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:500,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"2px 7px",borderRadius:4},children:[ke," pending"]}),ae>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:500,color:"var(--green)",background:"var(--green-bg, rgba(16,185,129,0.1))",padding:"2px 7px",borderRadius:4},children:[ae," done"]})]}),Ue&&_.jsx("div",{style:{fontSize:10.5,fontFamily:"monospace",color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:"var(--bg-tertiary)",padding:"4px 8px",borderRadius:5},children:Ue.length>120?Ue.slice(-120):Ue}),xi&&!Pt&&_.jsxs("div",{style:{display:"flex",gap:4,marginTop:"auto"},onClick:Dt=>Dt.stopPropagation(),children:[_.jsxs("button",{onClick:()=>Se($t,!xi.enabled),disabled:g[$t]==="toggle",title:xi.enabled?"Disable":"Enable",style:{display:"flex",alignItems:"center",gap:3,fontSize:10,fontWeight:600,padding:"3px 8px",borderRadius:5,border:"1px solid",cursor:"pointer",fontFamily:"inherit",borderColor:xi.enabled?"var(--green)":"var(--border)",background:xi.enabled?"var(--green-bg, rgba(16,185,129,0.1))":"var(--bg-tertiary)",color:xi.enabled?"var(--green)":"var(--text-muted)",opacity:g[$t]==="toggle"?.5:1},children:[_.jsx(Qie,{size:10}),xi.enabled?"On":"Off"]}),_.jsx("button",{onClick:()=>x($t),disabled:g[$t]==="remove",title:"Remove",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:5,padding:0,marginLeft:"auto",border:"1px solid var(--border)",cursor:"pointer",background:"transparent",color:"var(--text-muted)",opacity:g[$t]==="remove"?.5:1,transition:"color 0.08s, border-color 0.08s"},onMouseEnter:Dt=>{Dt.currentTarget.style.borderColor="var(--red)",Dt.currentTarget.style.color="var(--red)"},onMouseLeave:Dt=>{Dt.currentTarget.style.borderColor="var(--border)",Dt.currentTarget.style.color="var(--text-muted)"},children:_.jsx(vp,{size:10})})]})]},$t)}const Et=C?te.find(It=>It.agent_key===C):null,_t=C?Z.find(It=>It.agent_id===C):null,Si=Et?AA[Et.role]??"var(--text-muted)":"var(--text-muted)",bi=C?W.filter(It=>It.agent_id===C):[],ns=C?Le.get(C):void 0;return _.jsxs("div",{ref:A,style:{position:"relative",display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:16},children:[_.jsxs("div",{children:[_.jsx("div",{className:"page-title",children:"Directory"}),_.jsx("div",{className:"page-subtitle",children:Ve.length===te.length?`${te.length} employees`:`${Ve.length} of ${te.length} employees`})]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{display:"flex",borderRadius:8,overflow:"hidden",border:"1px solid var(--border)",flexShrink:0},children:[["grid",hDe,"Grid"],["department",y_,"Dept"]].map(([It,$t,Ti])=>_.jsxs("button",{onClick:()=>f(It),title:`${Ti} view`,style:{display:"flex",alignItems:"center",gap:4,fontSize:11,fontWeight:500,padding:"5px 10px",border:"none",cursor:"pointer",fontFamily:"inherit",background:u===It?"var(--accent)":"transparent",color:u===It?"#fff":"var(--text-muted)",transition:"all 0.08s"},children:[_.jsx($t,{size:12}),Ti]},It))}),_.jsxs("button",{onClick:()=>w(!0),style:{display:"flex",alignItems:"center",gap:6,fontSize:12,fontWeight:600,padding:"7px 14px",borderRadius:20,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",flexShrink:0,transition:"opacity 0.08s"},onMouseEnter:It=>{It.currentTarget.style.opacity="0.85"},onMouseLeave:It=>{It.currentTarget.style.opacity="1"},children:[_.jsx(IM,{size:13}),"Hire"]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:20,padding:"6px 14px",flexShrink:0},children:[_.jsx(Rh,{size:14,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("input",{value:d,onChange:It=>h(It.target.value),placeholder:"Search...",style:{border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontSize:12.5,width:180,fontFamily:"inherit",padding:0}}),d&&_.jsx("button",{onClick:()=>h(""),style:{display:"flex",alignItems:"center",justifyContent:"center",width:14,height:14,border:"none",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",borderRadius:3,padding:0,flexShrink:0},children:_.jsx(Pr,{size:9})})]})]})]}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"4px 24px 20px"},children:[u==="department"?_.jsx("div",{children:Ye.map(([It,$t])=>_.jsxs("div",{style:{marginBottom:24},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10,paddingBottom:6,borderBottom:"1px solid var(--border)"},children:[_.jsx(y_,{size:14,style:{color:"var(--text-muted)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:700,color:"var(--text-primary)",letterSpacing:"0.01em"},children:It}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5,fontFamily:"monospace"},children:$t.length})]}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:$t.map(Ti=>Te(Ti))})]},It))}):_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:Ve.map(It=>Te(It))}),Ve.length===0&&te.length>0&&_.jsxs("div",{style:{textAlign:"center",padding:"48px 24px",color:"var(--text-muted)",fontSize:13},children:["No employees matching “",d,"”"]})]}),C&&E&&_.jsx("div",{style:{position:"absolute",inset:0,zIndex:19,background:"var(--bg-card)",opacity:be?1:0,transition:R==="measure"?"none":"opacity 0.3s ease",pointerEvents:"none"}}),C&&E&&Et&&(()=>{const It=bi.filter(Qt=>Qt.status==="in_progress").length,$t=bi.filter(Qt=>Qt.status==="completed").length,Ti=bi.filter(Qt=>Qt.status==="todo").length,Wn=c[C]??!1,xi=(ns==null?void 0:ns.template)==="pm";return _.jsx("div",{style:{position:"absolute",zIndex:20,top:be?0:E.top,left:be?0:E.left,width:be?E.rootW:E.width,height:be?E.rootH:E.height,background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:be?0:8,overflow:"hidden",boxShadow:be?"none":"var(--shadow-lg)",transition:R==="measure"?"none":`top ${Ow} ${Pw}, left ${Ow} ${Pw}, width ${Ow} ${Pw}, height ${Ow} ${Pw}, border-radius ${Ow} ${Pw}, box-shadow ${Ow} ${Pw}`},children:_.jsxs("div",{style:{opacity:be?1:0,transition:be?"opacity 0.22s ease-in 0.2s":"opacity 0.1s ease-out",height:"100%",display:"flex",flexDirection:"column",overflow:"hidden"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"16px 24px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx("button",{onClick:re,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,border:"none",borderRadius:8,background:"var(--bg-tertiary)",color:"var(--text-secondary)",cursor:"pointer",flexShrink:0,padding:0,transition:"background 0.08s, color 0.08s"},onMouseEnter:Qt=>{Qt.currentTarget.style.background="var(--bg-hover)",Qt.currentTarget.style.color="var(--text-primary)"},onMouseLeave:Qt=>{Qt.currentTarget.style.background="var(--bg-tertiary)",Qt.currentTarget.style.color="var(--text-secondary)"},children:_.jsx(nLe,{size:16})}),_.jsxs("div",{style:{position:"relative",flexShrink:0},children:[_.jsx("div",{style:{width:40,height:40,borderRadius:11,background:Si,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:600,color:"#fff"},children:Fne(Et.name)}),Wn&&_.jsx("div",{style:{position:"absolute",bottom:-1,right:-1,width:10,height:10,borderRadius:"50%",background:"var(--green)",border:"2px solid var(--bg-card)"}})]}),_.jsxs("div",{style:{flex:1},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[F?_.jsxs("form",{onSubmit:async Qt=>{Qt.preventDefault();const Is=j.trim();if(!Is||Is===Et.name){B(!1);return}K(!0);try{await Tke(`/api/agents/${C}`,{name:Is}),o(),s()}catch{}K(!1),B(!1)},style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("input",{ref:Q,value:j,onChange:Qt=>V(Qt.target.value),onBlur:()=>{X||B(!1)},onKeyDown:Qt=>{Qt.key==="Escape"&&B(!1)},autoFocus:!0,style:{fontSize:16,fontWeight:600,color:"var(--text-primary)",background:"var(--bg-tertiary)",border:"1px solid var(--accent)",borderRadius:6,padding:"2px 8px",fontFamily:"inherit",outline:"none",width:200}}),_.jsx("button",{type:"submit",disabled:X,style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",padding:0},children:_.jsx(Mc,{size:14})})]}):_.jsxs(_.Fragment,{children:[_.jsx("span",{style:{fontSize:16,fontWeight:600,color:"var(--text-primary)"},children:Et.name}),_.jsx("button",{onClick:()=>{V(Et.name),B(!0)},title:"Rename agent",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",padding:0,transition:"background 0.08s, color 0.08s"},onMouseEnter:Qt=>{Qt.currentTarget.style.background="var(--bg-hover)",Qt.currentTarget.style.color="var(--text-primary)"},onMouseLeave:Qt=>{Qt.currentTarget.style.background="transparent",Qt.currentTarget.style.color="var(--text-muted)"},children:_.jsx(_fe,{size:13})})]}),_.jsx(Bne,{runtime:ns})]}),_.jsxs("div",{style:{fontSize:12,color:Si,fontWeight:500,marginTop:1},children:[Et.role," · @",C]})]}),ns&&!xi&&_.jsxs("div",{style:{display:"flex",gap:6,flexShrink:0,marginRight:8},children:[_.jsxs("button",{onClick:()=>Se(C,!ns.enabled),disabled:g[C]==="toggle",title:ns.enabled?"Disable agent":"Enable agent",style:{display:"flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,padding:"5px 12px",borderRadius:6,border:"1px solid",cursor:"pointer",fontFamily:"inherit",borderColor:ns.enabled?"var(--green)":"var(--border)",background:ns.enabled?"var(--green-bg, rgba(16,185,129,0.1))":"var(--bg-tertiary)",color:ns.enabled?"var(--green)":"var(--text-muted)",opacity:g[C]==="toggle"?.5:1},children:[_.jsx(Qie,{size:11}),ns.enabled?"On":"Off"]}),_.jsx("button",{onClick:()=>{x(C),re()},disabled:g[C]==="remove",title:"Remove agent",style:{display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,borderRadius:6,padding:0,border:"1px solid var(--border)",cursor:"pointer",background:"transparent",color:"var(--text-muted)",opacity:g[C]==="remove"?.5:1},onMouseEnter:Qt=>{Qt.currentTarget.style.borderColor="var(--red)",Qt.currentTarget.style.color="var(--red)",Qt.currentTarget.style.background="var(--red-bg, rgba(239,68,68,0.1))"},onMouseLeave:Qt=>{Qt.currentTarget.style.borderColor="var(--border)",Qt.currentTarget.style.color="var(--text-muted)",Qt.currentTarget.style.background="transparent"},children:_.jsx(vp,{size:12})})]}),bi.length>0&&_.jsxs("div",{style:{display:"flex",gap:6,flexShrink:0},children:[It>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,color:"var(--blue)",background:"var(--blue-bg)",padding:"3px 10px",borderRadius:5},children:[It," active"]}),Ti>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"3px 10px",borderRadius:5},children:[Ti," pending"]}),$t>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,color:"var(--green)",background:"var(--green-bg)",padding:"3px 10px",borderRadius:5},children:[$t," done"]})]})]}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"20px 24px 28px"},children:[_.jsx(hNe,{agentId:C}),_t&&_.jsx(uNe,{profile:_t},C),_t&&_.jsx(fNe,{profile:_t},`mcp-${C}`),_t&&_.jsx(gNe,{profile:_t},`approval-${C}`)]})]})})})(),b&&_.jsx(dNe,{templates:$,onHire:Be,onClose:()=>w(!1)}),S&&_.jsx(sge,{title:"Remove Agent",message:`Remove agent @${S}? This will delete them from the roster and cannot be undone.`,confirmLabel:"Remove",destructive:!0,onConfirm:()=>We(S),onCancel:()=>x(null)})]})}function Wne(n,e){const t=String(n);if(typeof e!="string")throw new TypeError("Expected character");let i=0,s=t.indexOf(e);for(;s!==-1;)i++,s=t.indexOf(e,s+e.length);return i}function mNe(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function _Ne(n,e,t){const s=tF((t||{}).ignore||[]),r=vNe(e);let o=-1;for(;++o<r.length;)tge(n,"text",a);function a(c,d){let h=-1,u;for(;++h<d.length;){const f=d[h],g=u?u.children:void 0;if(s(f,g?g.indexOf(f):void 0,u))return;u=f}if(u)return l(c,d)}function l(c,d){const h=d[d.length-1],u=r[o][0],f=r[o][1];let g=0;const b=h.children.indexOf(c);let w=!1,S=[];u.lastIndex=0;let x=u.exec(c.value);for(;x;){const C=x.index,L={index:x.index,input:x.input,stack:[...d,c]};let E=f(...x,L);if(typeof E=="string"&&(E=E.length>0?{type:"text",value:E}:void 0),E===!1?u.lastIndex=C+1:(g!==C&&S.push({type:"text",value:c.value.slice(g,C)}),Array.isArray(E)?S.push(...E):E&&S.push(E),g=C+x[0].length,w=!0),!u.global)break;x=u.exec(c.value)}return w?(g<c.value.length&&S.push({type:"text",value:c.value.slice(g)}),h.children.splice(b,1,...S)):S=[c],b+S.length}}function vNe(n){const e=[];if(!Array.isArray(n))throw new TypeError("Expected find and replace tuple or list of tuples");const t=!n[0]||Array.isArray(n[0])?n:[n];let i=-1;for(;++i<t.length;){const s=t[i];e.push([bNe(s[0]),yNe(s[1])])}return e}function bNe(n){return typeof n=="string"?new RegExp(mNe(n),"g"):n}function yNe(n){return typeof n=="function"?n:function(){return n}}const KB="phrasing",GB=["autolink","link","image","label"];function wNe(){return{transforms:[ENe],enter:{literalAutolink:SNe,literalAutolinkEmail:YB,literalAutolinkHttp:YB,literalAutolinkWww:YB},exit:{literalAutolink:DNe,literalAutolinkEmail:LNe,literalAutolinkHttp:xNe,literalAutolinkWww:kNe}}}function CNe(){return{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:KB,notInConstruct:GB},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:KB,notInConstruct:GB},{character:":",before:"[ps]",after:"\\/",inConstruct:KB,notInConstruct:GB}]}}function SNe(n){this.enter({type:"link",title:null,url:"",children:[]},n)}function YB(n){this.config.enter.autolinkProtocol.call(this,n)}function xNe(n){this.config.exit.autolinkProtocol.call(this,n)}function kNe(n){this.config.exit.data.call(this,n);const e=this.stack[this.stack.length-1];e.type,e.url="http://"+this.sliceSerialize(n)}function LNe(n){this.config.exit.autolinkEmail.call(this,n)}function DNe(n){this.exit(n)}function ENe(n){_Ne(n,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,INe],[new RegExp("(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)","gu"),TNe]],{ignore:["link","linkReference"]})}function INe(n,e,t,i,s){let r="";if(!oge(s)||(/^w/i.test(e)&&(t=e+t,e="",r="http://"),!RNe(t)))return!1;const o=NNe(t+i);if(!o[0])return!1;const a={type:"link",title:null,url:r+e+o[0],children:[{type:"text",value:e+o[0]}]};return o[1]?[a,{type:"text",value:o[1]}]:a}function TNe(n,e,t,i){return!oge(i,!0)||/[-\d_]$/.test(t)?!1:{type:"link",title:null,url:"mailto:"+e+"@"+t,children:[{type:"text",value:e+"@"+t}]}}function RNe(n){const e=n.split(".");return!(e.length<2||e[e.length-1]&&(/_/.test(e[e.length-1])||!/[a-zA-Z\d]/.test(e[e.length-1]))||e[e.length-2]&&(/_/.test(e[e.length-2])||!/[a-zA-Z\d]/.test(e[e.length-2])))}function NNe(n){const e=/[!"&'),.:;<>?\]}]+$/.exec(n);if(!e)return[n,void 0];n=n.slice(0,e.index);let t=e[0],i=t.indexOf(")");const s=Wne(n,"(");let r=Wne(n,")");for(;i!==-1&&s>r;)n+=t.slice(0,i+1),t=t.slice(i+1),i=t.indexOf(")"),r++;return[n,t]}function oge(n,e){const t=n.input.charCodeAt(n.index-1);return(n.index===0||Yy(t)||Q3(t))&&(!e||t!==47)}age.peek=VNe;function MNe(){this.buffer()}function ANe(n){this.enter({type:"footnoteReference",identifier:"",label:""},n)}function PNe(){this.buffer()}function ONe(n){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},n)}function FNe(n){const e=this.resume(),t=this.stack[this.stack.length-1];t.type,t.identifier=Su(this.sliceSerialize(n)).toLowerCase(),t.label=e}function BNe(n){this.exit(n)}function WNe(n){const e=this.resume(),t=this.stack[this.stack.length-1];t.type,t.identifier=Su(this.sliceSerialize(n)).toLowerCase(),t.label=e}function HNe(n){this.exit(n)}function VNe(){return"["}function age(n,e,t,i){const s=t.createTracker(i);let r=s.move("[^");const o=t.enter("footnoteReference"),a=t.enter("reference");return r+=s.move(t.safe(t.associationId(n),{after:"]",before:r})),a(),o(),r+=s.move("]"),r}function zNe(){return{enter:{gfmFootnoteCallString:MNe,gfmFootnoteCall:ANe,gfmFootnoteDefinitionLabelString:PNe,gfmFootnoteDefinition:ONe},exit:{gfmFootnoteCallString:FNe,gfmFootnoteCall:BNe,gfmFootnoteDefinitionLabelString:WNe,gfmFootnoteDefinition:HNe}}}function jNe(n){let e=!1;return n&&n.firstLineBlank&&(e=!0),{handlers:{footnoteDefinition:t,footnoteReference:age},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function t(i,s,r,o){const a=r.createTracker(o);let l=a.move("[^");const c=r.enter("footnoteDefinition"),d=r.enter("label");return l+=a.move(r.safe(r.associationId(i),{before:l,after:"]"})),d(),l+=a.move("]:"),i.children&&i.children.length>0&&(a.shift(4),l+=a.move((e?`
|
|
613
|
+
`);break}case"agent_start":{f1={...f1,[t]:""},UY=f1,Mw={...Mw,[t]:!0},dH=Mw;break}case"agent_end":{UR[t]=!1,Mw={...Mw,[t]:!1},dH=Mw,ZL({agentId:t,type:"agent_end",content:""});break}case"todo_update":{const o=r.todos,a=r.taskId;if(o&&a){$B={...$B,[t]:{taskId:a,todos:o}},nge=$B;const l=o.filter(c=>c.status==="completed").length;ZL({agentId:t,type:"todo_update",content:`[${a}] ${l}/${o.length} completed`})}break}default:break}uH()}catch{}}function QRe(){const n=new EventSource(dh("/api/stream"));n.onopen=()=>{cH=!0,uH()},n.onerror=()=>{cH=!1,uH()},n.onmessage=e=>{XRe(e.data)}}QRe();function P0(){const n=z.useSyncExternalStore(oL,()=>UY),e=z.useSyncExternalStore(oL,()=>$Y),t=z.useSyncExternalStore(oL,()=>cH),i=z.useSyncExternalStore(oL,()=>dH),s=z.useSyncExternalStore(oL,()=>nge);return{tokens:n,activity:e,connected:t,activeAgents:i,agentTodos:s}}function cx({value:n,onChange:e,options:t,placeholder:i="Select...",alignRight:s=!0}){var c;const[r,o]=z.useState(!1),a=z.useRef(null),l=t.find(d=>d.value===n);return z.useEffect(()=>{if(!r)return;function d(h){a.current&&!a.current.contains(h.target)&&o(!1)}return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[r]),_.jsxs("div",{ref:a,style:{position:"relative",display:"inline-flex"},children:[_.jsxs("button",{onClick:()=>o(d=>!d),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 10px 5px 10px",borderRadius:8,border:r?"1px solid var(--accent)":"1px solid var(--border)",background:"var(--bg-tertiary)",color:l&&l.value!==((c=t[0])==null?void 0:c.value)?"var(--text-primary)":"var(--text-muted)",fontSize:12,fontWeight:500,fontFamily:"inherit",cursor:"pointer",outline:"none",transition:"border-color 0.12s",whiteSpace:"nowrap"},children:[l!=null&&l.iconUrl?_.jsx("img",{src:l.iconUrl,alt:"",style:{width:14,height:14,flexShrink:0,borderRadius:2}}):l!=null&&l.dot?_.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:l.dot,flexShrink:0}}):null,_.jsx("span",{children:(l==null?void 0:l.label)??i}),_.jsx(Ic,{size:12,style:{color:"var(--text-muted)",flexShrink:0,transform:r?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.18s ease"}})]}),r&&_.jsx("div",{style:{position:"absolute",top:"calc(100% + 4px)",...s?{right:0}:{left:0},minWidth:"100%",maxHeight:220,overflowY:"auto",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"var(--shadow-lg)",zIndex:50,padding:4,animation:"fade-in 0.1s ease-out"},children:t.map(d=>{const h=d.value===n;return _.jsxs("button",{onClick:()=>{e(d.value),o(!1)},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderRadius:6,border:"none",background:h?"var(--bg-hover)":"transparent",color:h?"var(--text-primary)":"var(--text-secondary)",fontSize:12,fontWeight:h?500:400,fontFamily:"inherit",cursor:"pointer",textAlign:"left",whiteSpace:"nowrap",transition:"background 0.06s"},onMouseEnter:u=>{u.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:u=>{h||(u.currentTarget.style.background="transparent")},children:[d.iconUrl?_.jsx("img",{src:d.iconUrl,alt:"",style:{width:14,height:14,flexShrink:0,borderRadius:2}}):d.dot?_.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:d.dot,flexShrink:0}}):null,_.jsx("span",{style:{flex:1},children:d.label}),h&&_.jsx("span",{style:{fontSize:11,color:"var(--accent)",flexShrink:0},children:"✓"})]},d.value)})})]})}const JRe=[{status:"todo",label:"Todo",color:"var(--text-muted)"},{status:"in_progress",label:"In Progress",color:"var(--blue)"},{status:"completed",label:"Done",color:"var(--green)"},{status:"failed",label:"Failed",color:"var(--red)"},{status:"cancelled",label:"Cancelled",color:"var(--text-muted)"}];function eNe(n){const e=Math.floor((Date.now()-new Date(n).getTime())/6e4);if(e<1)return"now";if(e<60)return`${e}m`;const t=Math.floor(e/60);return t<24?`${t}h`:`${Math.floor(t/24)}d`}function tNe({task:n,employees:e,streaming:t}){const[i,s]=z.useState(!1),r=e.find(a=>a.agent_key===n.agent_id),o=(r==null?void 0:r.color)||"var(--text-muted)";return _.jsxs("div",{className:"vec-card task-card fade-in",onClick:()=>s(a=>!a),style:{padding:"8px 10px",marginBottom:4},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:5,marginBottom:4},children:[_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace"},children:n.task_id}),_.jsx("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-muted)"},children:eNe(n.updated_at)})]}),_.jsx("div",{className:i?"md-content":"md-content md-clamp",style:{marginBottom:6},children:_.jsx(lH,{children:n.description})}),i&&n.result&&_.jsx("div",{className:"md-content md-result",style:{marginBottom:6},children:_.jsx(lH,{children:n.result})}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:5},children:[_.jsx("div",{style:{width:16,height:16,borderRadius:4,background:o,opacity:.85,display:"flex",alignItems:"center",justifyContent:"center",fontSize:8,fontWeight:700,color:"#fff",flexShrink:0},children:r?r.name.charAt(0):n.agent_id.charAt(0).toUpperCase()}),_.jsx("span",{style:{fontSize:10.5,color:"var(--text-muted)",fontWeight:500},children:r?r.name.split(" ")[0]:n.agent_id}),t&&n.status==="in_progress"&&_.jsx("span",{style:{fontSize:9,color:"var(--blue)",fontWeight:500,marginLeft:"auto"},children:"working…"})]})]})}function iNe(){const{data:n}=Ks("/api/tasks",3e3),{employees:e}=Wu(),{activeAgents:t}=P0(),[i,s]=z.useState("all"),r=n??[],o=e??[],a=i==="all"?r:r.filter(u=>u.agent_id===i),l=Array.from(new Set(r.map(u=>u.agent_id))),c=z.useMemo(()=>[{value:"all",label:"All agents"},...l.map(u=>{const f=o.find(g=>g.agent_key===u);return{value:u,label:f?f.name:u,dot:((f==null?void 0:f.color)??"").replace("var(--","").replace(")","")}})],[l,o]),h=a.length>0?130:void 0;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"center",gap:12},children:[_.jsxs("div",{children:[_.jsx("h1",{className:"page-title",children:"Kanban"}),_.jsxs("div",{className:"page-subtitle",children:[r.length," tasks"]})]}),_.jsx("div",{style:{marginLeft:"auto"},children:_.jsx(cx,{value:i,onChange:s,options:c,placeholder:"All agents"})})]}),_.jsx("div",{style:{flex:1,minHeight:0,overflowX:"auto",overflowY:"hidden",padding:"12px 20px",display:"flex",gap:10,alignItems:"flex-start"},children:JRe.map(u=>{const f=a.filter(g=>g.status===u.status);return _.jsxs("div",{style:{flex:1,minWidth:200,minHeight:h,maxHeight:"100%",display:"flex",flexDirection:"column",background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:u.color,flexShrink:0,opacity:.8}}),_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)",flex:1},children:u.label}),_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 5px",borderRadius:4},children:f.length})]}),_.jsx("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:"8px 8px 4px"},children:f.length===0?_.jsx("div",{style:{textAlign:"center",color:"var(--text-muted)",fontSize:11,padding:"20px 0"},children:"No tasks"}):f.map(g=>_.jsx(tNe,{task:g,employees:o,streaming:t[g.agent_id]??!1},g.task_id))})]},u.status)})})]})}function nNe(){const{data:n,lastRefresh:e}=Ks("/api/tasks",3e3),{data:t}=Ks("/api/events",3e3),{employees:i}=Wu(),{tokens:s,connected:r,activeAgents:o}=P0(),a=n??[],l=t??[],c=i??[],d=[{label:"Total",value:a.length,color:"var(--text-primary)"},{label:"In Progress",value:a.filter(u=>u.status==="in_progress").length,color:"var(--blue)"},{label:"Completed",value:a.filter(u=>u.status==="completed").length,color:"var(--green)"},{label:"Failed",value:a.filter(u=>u.status==="failed").length,color:"var(--red)"}],h=Object.keys(o).filter(u=>o[u]);return _.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"20px 24px"},children:[_.jsxs("div",{className:"page-header",style:{padding:"0 0 16px"},children:[_.jsx("h1",{className:"page-title",children:"Overview"}),_.jsxs("div",{className:"page-subtitle",children:[r?"Live":"Polling",e&&_.jsxs("span",{children:[" · ",e.toLocaleTimeString()]})]})]}),_.jsx("div",{style:{display:"flex",gap:8,marginBottom:20},children:d.map(u=>_.jsxs("div",{style:{flex:1,padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:u.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:u.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:u.label})]},u.label))}),h.length>0&&_.jsxs("div",{style:{marginBottom:20},children:[_.jsx("div",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Live"}),_.jsx("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:h.map((u,f)=>_.jsxs("div",{style:{padding:"10px 14px",borderBottom:f<h.length-1?"1px solid var(--border)":"none"},children:[_.jsx("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:3},children:_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:u})}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s[u].slice(-120)})]},u))})]}),_.jsxs("div",{style:{marginBottom:20},children:[_.jsx("div",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Team"}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:c.map(u=>{const f=o[u.agent_key]??!1;return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 10px",borderRadius:6,background:"var(--bg-card)",border:"1px solid var(--border)",fontSize:12},children:[_.jsx("span",{style:{fontWeight:500,color:f?"var(--text-primary)":"var(--text-muted)"},children:u.name.split(" ")[0]}),_.jsx("span",{style:{color:"var(--text-muted)",fontSize:11},children:u.role})]},u.employee_id)})})]}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Recent Events"}),_.jsx("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:l.length===0?_.jsx("div",{style:{padding:14,fontSize:12,color:"var(--text-muted)"},children:"No events yet"}):l.slice(0,8).map((u,f)=>_.jsxs("div",{style:{display:"flex",gap:10,padding:"8px 14px",alignItems:"baseline",borderBottom:f<Math.min(7,l.length-1)?"1px solid var(--border)":"none"},children:[_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace",whiteSpace:"nowrap",minWidth:60},children:new Date(u.timestamp).toLocaleTimeString()}),_.jsx("span",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",minWidth:28},children:u.agent_id}),_.jsx("span",{style:{fontSize:12,color:"var(--text-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:u.message})]},f))})]})]})}const sNe={task_created:"var(--blue)",task_in_progress:"var(--yellow)",task_completed:"var(--green)",task_failed:"var(--red)",agent_thinking:"var(--purple)",agent_tool_call:"var(--orange)",message_sent:"var(--blue)"};function rNe(){const{data:n,lastRefresh:e}=Ks("/api/events",2e3),[t,i]=z.useState("all"),s=n??[],r=["all",...Array.from(new Set(s.map(a=>a.agent_id).filter(Boolean)))],o=t==="all"?s:s.filter(a=>a.agent_id===t);return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"center",gap:10},children:[_.jsxs("div",{children:[_.jsx("h1",{className:"page-title",children:"Events"}),_.jsxs("div",{className:"page-subtitle",children:[o.length," events",e&&_.jsxs("span",{children:[" · ",e.toLocaleTimeString()]})]})]}),_.jsx("div",{style:{marginLeft:"auto",display:"flex",gap:2},children:r.map(a=>_.jsx("button",{className:`filter-tab${t===a?" active":""}`,onClick:()=>i(a),children:a==="all"?"All":a},a))})]}),_.jsx("div",{style:{flex:1,overflowY:"auto"},children:o.length===0?_.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"var(--text-muted)",fontSize:13},children:"No events"}):o.map((a,l)=>{const c=sNe[a.event_type]??"var(--text-muted)";return _.jsxs("div",{className:"fade-in",style:{display:"flex",gap:10,padding:"7px 24px",alignItems:"baseline",borderBottom:"1px solid var(--border)"},children:[_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace",whiteSpace:"nowrap",minWidth:60},children:new Date(a.timestamp).toLocaleTimeString()}),_.jsx("span",{style:{width:5,height:5,borderRadius:"50%",background:c,flexShrink:0}}),_.jsx("span",{style:{fontSize:11,fontWeight:500,color:c,minWidth:90,whiteSpace:"nowrap"},children:a.event_type.replace(/_/g," ")}),a.agent_id&&_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500,minWidth:28},children:a.agent_id}),_.jsx("span",{style:{fontSize:12,color:"var(--text-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:a.message})]},l)})})]})}function qB(n){const e=n.split(" ");return e.length>=2?(e[0][0]+e[e.length-1][0]).toUpperCase():n.slice(0,2).toUpperCase()}function oNe(){const{employees:n}=Wu(),e=z.useMemo(()=>n??[],[n]),[t,i]=z.useState("pm"),[s,r]=z.useState(!1),{data:o,lastRefresh:a}=Ks(`/api/inbox/${t}`,3e3),l=o??[],c=e.find(u=>u.agent_key===t),d=(c==null?void 0:c.name)??t,h=(c==null?void 0:c.color)??"var(--text-muted)";return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:16},children:[_.jsxs("div",{children:[_.jsx("div",{className:"page-title",children:"Snoop"}),_.jsxs("div",{className:"page-subtitle",children:[l.length," message",l.length!==1?"s":""," in inbox",a&&_.jsxs("span",{children:[" · ",a.toLocaleTimeString()]})]})]}),_.jsxs("div",{style:{position:"relative"},children:[_.jsxs("button",{onClick:()=>r(u=>!u),style:{display:"flex",alignItems:"center",gap:8,padding:"7px 14px",borderRadius:20,border:"1px solid var(--border)",background:"var(--bg-tertiary)",cursor:"pointer",fontFamily:"inherit",fontSize:12,fontWeight:500,color:"var(--text-primary)",transition:"border-color 0.08s"},children:[_.jsx("div",{style:{width:22,height:22,borderRadius:6,background:h,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:9,fontWeight:600,color:"#fff"},children:(c==null?void 0:c.initials)??qB(d)}),_.jsx("span",{children:d}),_.jsx(Ic,{size:13,style:{color:"var(--text-muted)",transform:s?"rotate(180deg)":"none",transition:"transform 0.15s"}})]}),s&&_.jsxs(_.Fragment,{children:[_.jsx("div",{style:{position:"fixed",inset:0,zIndex:50},onClick:()=>r(!1)}),_.jsx("div",{style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:51,background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,padding:4,width:220,maxHeight:320,overflowY:"auto",boxShadow:"var(--shadow-lg)"},children:e.map(u=>{const f=u.agent_key===t;return _.jsxs("button",{onClick:()=>{i(u.agent_key),r(!1)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 10px",border:"none",borderRadius:7,background:f?"var(--bg-hover)":"transparent",color:f?"var(--text-primary)":"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit",fontSize:12,fontWeight:f?500:400,textAlign:"left",transition:"background 0.06s"},onMouseEnter:g=>{f||(g.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:g=>{f||(g.currentTarget.style.background="transparent")},children:[_.jsx("div",{style:{width:24,height:24,borderRadius:6,flexShrink:0,background:u.color??"var(--text-muted)",opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,color:"#fff"},children:u.initials??qB(u.name)}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12},children:u.name}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)"},children:["@",u.agent_key]})]})]},u.agent_key)})})]})]})]}),_.jsx("div",{style:{flex:1,overflowY:"auto",padding:"4px 24px 20px"},children:l.length===0?_.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:8,color:"var(--text-muted)"},children:[_.jsx(nDe,{size:32,style:{opacity:.4}}),_.jsx("span",{style:{fontSize:13},children:"Inbox empty"})]}):l.map((u,f)=>{const g=u.message??u.text??JSON.stringify(u),m=u.from_agent??u.sender??"system",b=u.to_agent??"pm",w=u.priority??"normal",S=u.timestamp,x=w==="priority"?"var(--red)":w==="high"?"var(--yellow)":"var(--text-muted)",C=e.find(L=>L.agent_key===m);return _.jsxs("div",{style:{padding:"12px 0",borderBottom:f<l.length-1?"1px solid var(--border)":"none",display:"flex",gap:10,alignItems:"flex-start"},children:[_.jsx("div",{style:{width:28,height:28,borderRadius:7,flexShrink:0,background:(C==null?void 0:C.color)??"var(--text-muted)",opacity:.85,display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:600,color:"#fff"},children:C?C.initials??qB(C.name):m.slice(0,2).toUpperCase()}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",marginBottom:4,flexWrap:"wrap"},children:[_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:(C==null?void 0:C.name)??m}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"→"}),_.jsx("span",{style:{fontSize:12,fontWeight:500,color:"var(--accent)"},children:b}),u.task_id&&_.jsx("span",{style:{fontSize:10,fontFamily:"monospace",color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 5px",borderRadius:3},children:u.task_id}),_.jsx("span",{style:{marginLeft:"auto",fontSize:10,color:x,fontWeight:500},children:w}),S&&_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)"},children:new Date(S).toLocaleTimeString()})]}),_.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",lineHeight:1.55,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:g})]})]},f)})})]})}function sge({title:n,message:e,confirmLabel:t="Confirm",cancelLabel:i="Cancel",destructive:s=!1,onConfirm:r,onCancel:o}){return _.jsx("div",{onClick:o,style:{position:"fixed",inset:0,zIndex:9999,background:"rgba(0,0,0,0.5)",backdropFilter:"blur(8px)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsxs("div",{onClick:a=>a.stopPropagation(),style:{width:380,borderRadius:16,background:"var(--bg-card)",border:"1px solid var(--border)",boxShadow:"var(--shadow-lg, 0 20px 60px rgba(0,0,0,0.4))",padding:"24px",animation:"fadeIn 0.15s ease"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:12},children:[_.jsx("div",{style:{width:36,height:36,borderRadius:10,flexShrink:0,background:s?"color-mix(in srgb, var(--red) 12%, transparent)":"color-mix(in srgb, var(--accent) 12%, transparent)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx(XW,{size:18,style:{color:s?"var(--red)":"var(--orange)"}})}),_.jsx("div",{style:{fontSize:15,fontWeight:600,color:"var(--text-primary)"},children:n})]}),_.jsx("div",{style:{fontSize:13,color:"var(--text-muted)",lineHeight:1.5,marginBottom:20,paddingLeft:48},children:e}),_.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[_.jsx("button",{onClick:o,style:{padding:"8px 16px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-secondary)",cursor:"pointer",fontSize:13,fontWeight:500,fontFamily:"inherit"},children:i}),_.jsx("button",{onClick:r,style:{padding:"8px 16px",borderRadius:8,border:"none",background:s?"var(--red)":"var(--accent)",color:"#fff",cursor:"pointer",fontSize:13,fontWeight:600,fontFamily:"inherit"},children:t})]})]})})}const AA={"Project Manager":"var(--purple)","Senior Developer":"var(--blue)","Business Analyst":"var(--green)","QA Engineer":"var(--yellow)","Security Engineer":"var(--red)","DevOps Engineer":"var(--orange)","Technical Writer":"var(--purple)","Solutions Architect":"var(--blue)","Research Specialist":"var(--green)","Frontend Developer":"var(--blue)","Backend Developer":"var(--orange)","Mobile Developer":"var(--purple)","Data Engineer":"var(--green)","Database Administrator":"var(--blue)","ML/AI Engineer":"var(--green)","Site Reliability Engineer":"var(--orange)","Product Owner":"var(--blue)","UI/UX Designer":"var(--purple)","Scrum Master":"var(--purple)","Data Analyst":"var(--green)","Release Manager":"var(--green)","Compliance Officer":"var(--red)","Support Engineer":"var(--yellow)"},One={"Project Manager":ufe,"Senior Developer":bLe,"Business Analyst":Xke,"QA Engineer":qke,"Security Engineer":bfe,"DevOps Engineer":DLe,"Technical Writer":X3,"Solutions Architect":kLe,"Research Specialist":VLe,"Frontend Developer":LY,"Backend Developer":EY,"Mobile Developer":TA,"Data Engineer":EA,"Database Administrator":EA,"ML/AI Engineer":jke,"Site Reliability Engineer":Bke,"Product Owner":mLe,"UI/UX Designer":DY,"Scrum Master":u1,"Data Analyst":Jke,"Release Manager":HDe,"Compliance Officer":UDe,"Support Engineer":eDe},fH=new Set(["message_agent","read_inbox"]),aNe=[{label:"Messaging",match:n=>n.includes("message")||n.includes("inbox")},{label:"Memory",match:n=>n.includes("memory")||n.includes("stm")||n.includes("ltm")||n.includes("sltm")},{label:"Tasks",match:n=>n.includes("task")||n.includes("assign")||n.includes("start")},{label:"Files",match:n=>n.includes("read")||n.includes("write")||n.includes("edit")||n.includes("file")||n.includes("find")||n.includes("grep")||n.includes("ls")},{label:"Shell",match:n=>n.includes("bash")||n.includes("shell")||n.includes("exec")},{label:"Directory",match:n=>n.includes("director")||n.includes("employee")||n.includes("lookup")},{label:"Utils",match:n=>n.includes("date")||n.includes("time")||n.includes("search")}],Pw="cubic-bezier(0.16, 1, 0.3, 1)",Ow="0.44s";function Fne(n){const e=n.split(" ");return e.length>=2?(e[0][0]+e[e.length-1][0]).toUpperCase():n.slice(0,2).toUpperCase()}function rge(n){const e=new Set,t=[];for(const s of aNe){const r=n.filter(o=>!e.has(o)&&s.match(o));r.length&&(r.forEach(o=>e.add(o)),t.push({label:s.label,tools:r}))}const i=n.filter(s=>!e.has(s));return i.length&&t.push({label:"Other",tools:i}),t}function Bne({runtime:n}){return n?n.enabled?n.status==="paused"?_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"2px 7px",borderRadius:4,background:"var(--yellow-bg, rgba(245,158,11,0.1))",color:"var(--yellow)",border:"1px solid var(--yellow)"},children:"PAUSED"}):null:_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"2px 7px",borderRadius:4,background:"var(--bg-tertiary)",color:"var(--text-muted)",border:"1px solid var(--border)"},children:"DISABLED"}):null}const lNe={Engineering:"var(--blue)",Management:"var(--purple)","Quality Assurance":"var(--yellow)",Security:"var(--red)",Operations:"var(--orange)",Research:"var(--green)",Documentation:"var(--purple)",Design:"var(--purple)",Data:"var(--green)",Support:"var(--yellow)"};function cNe(n){return lNe[n]??"var(--accent)"}function dNe({templates:n,onHire:e,onClose:t}){const[i,s]=z.useState(""),[r,o]=z.useState(""),[a,l]=z.useState(!1),[c,d]=z.useState(""),[h,u]=z.useState(""),f=n.filter(C=>!C.mandatory),g=z.useMemo(()=>{if(!h.trim())return f;const C=h.toLowerCase();return f.filter(L=>L.role.toLowerCase().includes(C)||L.department.toLowerCase().includes(C)||L.default_skills.some(E=>E.toLowerCase().includes(C)))},[f,h]),m=z.useMemo(()=>{const C=new Map;for(const L of g){const E=C.get(L.department)??[];E.push(L),C.set(L.department,E)}return[...C.entries()]},[g]),b=f.find(C=>C.id===i);async function w(){if(!(!i||!r.trim())){l(!0),d("");try{await e(i,r.trim()),t()}catch(C){d(C.message??String(C))}finally{l(!1)}}}const S=b?One[b.role]:null,x=b?AA[b.role]??"var(--accent)":"var(--accent)";return _.jsxs(_.Fragment,{children:[_.jsx("div",{onClick:t,style:{position:"fixed",inset:0,zIndex:100,background:"rgba(0,0,0,0.6)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"}}),_.jsxs("div",{style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:101,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:14,padding:0,width:880,maxWidth:"94vw",height:540,maxHeight:"85vh",display:"flex",flexDirection:"column",boxShadow:"0 20px 60px rgba(0,0,0,0.45)",overflow:"hidden"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 20px 12px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[_.jsx("div",{style:{width:30,height:30,borderRadius:8,background:"var(--accent-subtle)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx(IM,{size:14,style:{color:"var(--accent)"}})}),_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Hire New Agent"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[f.length," roles available"]})]}),_.jsx("button",{onClick:t,style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-tertiary)",color:"var(--text-muted)",cursor:"pointer",padding:0},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="var(--bg-tertiary)",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(Pr,{size:13})})]}),_.jsxs("div",{style:{flex:1,display:"flex",overflow:"hidden",minHeight:0},children:[_.jsxs("div",{style:{width:320,flexShrink:0,display:"flex",flexDirection:"column",borderRight:"1px solid var(--border)",overflow:"hidden"},children:[_.jsx("div",{style:{padding:"10px 14px 6px",flexShrink:0},children:_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:8,padding:"6px 10px"},children:[_.jsx(Rh,{size:13,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("input",{value:h,onChange:C=>u(C.target.value),placeholder:"Search roles...",style:{border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontSize:12,width:"100%",fontFamily:"inherit",padding:0}}),h&&_.jsx("button",{onClick:()=>u(""),style:{display:"flex",alignItems:"center",justifyContent:"center",width:14,height:14,border:"none",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",borderRadius:3,padding:0,flexShrink:0},children:_.jsx(Pr,{size:9})})]})}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"6px 14px 12px"},children:[m.map(([C,L])=>{const E=cNe(C);return _.jsxs("div",{style:{marginBottom:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:5,padding:"0 4px"},children:[_.jsx(y_,{size:10,style:{color:E,opacity:.7}}),_.jsx("span",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:C}),_.jsx("div",{style:{flex:1,height:1,background:"var(--border)",marginLeft:4}})]}),L.map(I=>{const R=i===I.id,M=AA[I.role]??E,A=One[I.role];return _.jsxs("button",{onClick:()=>s(I.id),style:{width:"100%",fontSize:12,padding:"8px 12px",borderRadius:8,cursor:"pointer",border:"1px solid",fontFamily:"inherit",fontWeight:500,borderColor:R?"var(--accent)":"transparent",background:R?"var(--accent-subtle)":"transparent",color:R?"var(--accent)":"var(--text-secondary)",transition:"all 0.1s",display:"flex",alignItems:"center",gap:10,textAlign:"left",marginBottom:2},onMouseEnter:H=>{R||(H.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:H=>{R||(H.currentTarget.style.background=R?"var(--accent-subtle)":"transparent")},children:[A?_.jsx(A,{size:16,style:{color:R?"var(--accent)":M,flexShrink:0}}):_.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:R?"var(--accent)":M,flexShrink:0}}),I.role]},I.id)})]},C)}),g.length===0&&_.jsx("div",{style:{padding:20,textAlign:"center",color:"var(--text-muted)",fontSize:12},children:h?`No roles matching "${h}"`:"No additional roles available."})]})]}),_.jsx("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},children:b?_.jsxs(_.Fragment,{children:[_.jsx("div",{style:{padding:"18px 24px 14px",flexShrink:0,borderBottom:"1px solid var(--border)"},children:_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[_.jsx("div",{style:{width:40,height:40,borderRadius:10,background:x,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center"},children:S?_.jsx(S,{size:20,style:{color:"#fff"}}):_.jsx(IM,{size:18,style:{color:"#fff"}})}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:16,fontWeight:600,color:"var(--text-primary)"},children:b.role}),_.jsxs("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:1},children:[b.department," · ",b.category==="pm"?"Management":"Specialist"]})]})]})}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px"},children:[_.jsxs("div",{style:{marginBottom:20},children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:8},children:"Job Description"}),_.jsx("div",{style:{fontSize:13,lineHeight:1.6,color:"var(--text-secondary)"},children:b.description||"No description available."})]}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:8},children:"Default Skills"}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:b.default_skills.map(C=>_.jsx("span",{style:{fontSize:11,fontWeight:500,padding:"4px 10px",borderRadius:6,background:"var(--bg-tertiary)",color:"var(--text-secondary)",border:"1px solid var(--border)"},children:C},C))})]})]}),_.jsxs("div",{style:{padding:"14px 24px 16px",borderTop:"1px solid var(--border)",flexShrink:0,background:"var(--bg-secondary)"},children:[_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsx("input",{value:r,onChange:C=>o(C.target.value),onKeyDown:C=>C.key==="Enter"&&w(),placeholder:"Enter agent name...",style:{flex:1,fontSize:13,padding:"9px 14px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-card)",color:"var(--text-primary)",fontFamily:"inherit",outline:"none",boxSizing:"border-box"},onFocus:C=>{C.currentTarget.style.borderColor="var(--accent)"},onBlur:C=>{C.currentTarget.style.borderColor="var(--border)"}}),_.jsxs("button",{onClick:w,disabled:a||!r.trim(),style:{fontSize:12,padding:"9px 22px",borderRadius:8,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",fontWeight:600,flexShrink:0,opacity:a||!r.trim()?.4:1,display:"flex",alignItems:"center",gap:6},children:[_.jsx(IM,{size:13}),a?"Hiring...":"Hire Agent"]})]}),c&&_.jsx("div",{style:{fontSize:11,color:"var(--red)",marginTop:8,padding:"6px 10px",background:"var(--red-bg)",borderRadius:6,border:"1px solid rgba(232,100,90,0.15)"},children:c})]})]}):_.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",gap:12,padding:40},children:[_.jsx(ufe,{size:32,style:{opacity:.3}}),_.jsx("div",{style:{fontSize:14,fontWeight:500},children:"Select a role"}),_.jsx("div",{style:{fontSize:12,textAlign:"center",maxWidth:240,lineHeight:1.5},children:"Choose a role from the list to see the job description and hire a new agent."})]})})]})]})]})}function hNe({agentId:n}){var S;const{data:e}=Ks("/api/model-config",1e4),[t,i]=z.useState(!1),[s,r]=z.useState(""),[o,a]=z.useState(""),[l,c]=z.useState(!1),d=((e==null?void 0:e.providers)??[]).filter(x=>x.configured),h=(e==null?void 0:e.config.agentModels[n])??null,u=e==null?void 0:e.config.primary,f=h??u;z.useEffect(()=>{h?(r(h.provider),a(h.model)):u&&(r(u.provider),a(u.model))},[h==null?void 0:h.provider,h==null?void 0:h.model,u==null?void 0:u.provider,u==null?void 0:u.model]);const g=d.find(x=>x.id===s),m=(g==null?void 0:g.models)??[];async function b(){i(!0);try{await tn("/api/agent-model",{agent_id:n,provider:s,model:o})}catch(x){console.error(x)}finally{i(!1),c(!1)}}async function w(){i(!0);try{await tn("/api/agent-model",{agent_id:n})}catch(x){console.error(x)}finally{i(!1),c(!1)}}return e?_.jsxs("div",{style:{marginBottom:18},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx(DA,{size:13,style:{color:"var(--purple)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Model"}),h&&_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:"color-mix(in srgb, var(--purple) 12%, transparent)",color:"var(--purple)"},children:"OVERRIDE"})]}),!l&&_.jsx("button",{onClick:()=>c(!0),style:{fontSize:11,fontWeight:500,padding:"4px 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-tertiary)",color:"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit"},children:"Change"})]}),l?_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px",borderRadius:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)"},children:[_.jsx(cx,{value:s,onChange:x=>{r(x),a("")},options:d.map(x=>({value:x.id,label:x.name,iconUrl:x.iconUrl})),placeholder:"Provider...",alignRight:!1}),_.jsx(cx,{value:o,onChange:a,options:m.map(x=>({value:x,label:x})),placeholder:`Select model (${m.length})...`,alignRight:!1}),_.jsx("button",{onClick:b,disabled:t||!o,style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,border:"none",flexShrink:0,background:o?"var(--accent)":"var(--bg-tertiary)",color:o?"#fff":"var(--text-muted)",cursor:o?"pointer":"default",padding:0},children:_.jsx(Mc,{size:13})}),h&&_.jsx("button",{onClick:w,disabled:t,title:"Reset to primary",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,flexShrink:0,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",padding:0},children:_.jsx(Pr,{size:12})}),_.jsx("button",{onClick:()=>c(!1),style:{fontSize:11,padding:"5px 10px",borderRadius:6,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontFamily:"inherit",flexShrink:0},children:"Cancel"})]}):_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 12px",borderRadius:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)"},children:[(()=>{const x=d.find(C=>C.id===(f==null?void 0:f.provider));return x?_.jsx("img",{src:x.iconUrl,alt:x.name,style:{width:20,height:20,flexShrink:0,borderRadius:3},onError:C=>{C.target.style.display="none"}}):_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",flexShrink:0,background:"var(--green)"}})})(),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:((S=d.find(x=>x.id===(f==null?void 0:f.provider)))==null?void 0:S.name)??(f==null?void 0:f.provider)??"—"}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"monospace"},children:(f==null?void 0:f.model)??"Not configured"})]}),!h&&_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:"var(--bg-card)",color:"var(--text-muted)",border:"1px solid var(--border)"},children:"PRIMARY"})]})]}):null}function uNe({profile:n}){const[e,t]=z.useState(()=>new Set(n.enabled_tools)),[i,s]=z.useState(!1),r=JSON.stringify([...e].sort())!==JSON.stringify([...n.enabled_tools].sort());function o(d){fH.has(d)||t(h=>{const u=new Set(h);return u.has(d)?u.delete(d):u.add(d),u})}async function a(){s(!0);try{await tn("/api/agent-config",{agent_id:n.agent_id,tools:Array.from(e)})}catch(d){console.error(d)}finally{s(!1)}}const l=rge(n.all_tools),c=n.all_tools.filter(d=>e.has(d)).length;return _.jsxs("div",{children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:14},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Tools"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"2px 8px",borderRadius:5,fontFamily:"monospace"},children:[c,"/",n.all_tools.length]})]}),r&&_.jsx("button",{onClick:a,disabled:i,style:{fontSize:11,fontWeight:500,padding:"4px 14px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",opacity:i?.5:1},children:i?"Saving...":"Save changes"})]}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(210px, 1fr))",gap:10},children:l.map(d=>_.jsxs("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsx("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"7px 12px 5px",background:"var(--bg-tertiary)",borderBottom:"1px solid var(--border)"},children:d.label}),d.tools.map((h,u)=>{const f=e.has(h),g=fH.has(h);return _.jsxs("div",{className:`tool-row${g?" locked":""}`,onClick:()=>o(h),style:{borderBottom:u<d.tools.length-1?"1px solid var(--border)":"none",height:32},children:[_.jsx("span",{style:{flex:1,fontSize:11,fontFamily:"monospace",color:f?"var(--text-primary)":"var(--text-muted)"},children:h}),g?_.jsx(gDe,{size:9,style:{color:"var(--text-muted)",flexShrink:0}}):_.jsx("div",{style:{width:28,height:16,borderRadius:8,flexShrink:0,background:f?"var(--green)":"var(--bg-tertiary)",border:f?"none":"1px solid var(--border)",position:"relative",transition:"background 0.15s",cursor:"pointer"},children:_.jsx("div",{style:{width:12,height:12,borderRadius:"50%",background:f?"#fff":"var(--text-muted)",position:"absolute",top:2,left:f?14:2,transition:"left 0.15s, background 0.15s"}})})]},h)})]},d.label))})]})}function fNe({profile:n}){const[e,t]=z.useState(()=>new Set(n.enabled_mcp_servers)),[i,s]=z.useState(!1),r=JSON.stringify([...e].sort())!==JSON.stringify([...n.enabled_mcp_servers].sort());if(!n.all_mcp_servers||n.all_mcp_servers.length===0)return null;function o(l){t(c=>{const d=new Set(c);return d.has(l)?d.delete(l):d.add(l),d})}async function a(){s(!0);try{await tn("/api/agent-mcp",{agent_id:n.agent_id,servers:Array.from(e)})}catch(l){console.error(l)}finally{s(!1)}}return _.jsxs("div",{style:{marginTop:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:14},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"MCP Servers"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"2px 8px",borderRadius:5,fontFamily:"monospace"},children:[e.size,"/",n.all_mcp_servers.length]})]}),r&&_.jsx("button",{onClick:a,disabled:i,style:{fontSize:11,fontWeight:500,padding:"4px 14px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",opacity:i?.5:1},children:i?"Saving...":"Save changes"})]}),_.jsxs("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsx("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"7px 12px 5px",background:"var(--bg-tertiary)",borderBottom:"1px solid var(--border)"},children:"Connected Servers"}),n.all_mcp_servers.map((l,c)=>{const d=e.has(l);return _.jsxs("div",{className:"tool-row",onClick:()=>o(l),style:{borderBottom:c<n.all_mcp_servers.length-1?"1px solid var(--border)":"none",height:36},children:[_.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8},children:[_.jsx(DA,{size:12,style:{color:d?"var(--accent)":"var(--text-muted)",flexShrink:0}}),_.jsx("span",{style:{fontSize:12,fontFamily:"monospace",color:d?"var(--text-primary)":"var(--text-muted)"},children:l})]}),_.jsx("div",{style:{width:28,height:16,borderRadius:8,flexShrink:0,background:d?"var(--green)":"var(--bg-tertiary)",border:d?"none":"1px solid var(--border)",position:"relative",transition:"background 0.15s",cursor:"pointer"},children:_.jsx("div",{style:{width:12,height:12,borderRadius:"50%",background:d?"#fff":"var(--text-muted)",position:"absolute",top:2,left:d?14:2,transition:"left 0.15s, background 0.15s"}})})]},l)})]})]})}function gNe({profile:n}){const[e,t]=z.useState(()=>new Set(n.approval_required_tools??[])),[i,s]=z.useState(!1),r=n.approval_required_tools??[],o=JSON.stringify([...e].sort())!==JSON.stringify([...r].sort()),a=new Set(n.enabled_tools),l=n.all_tools.filter(u=>a.has(u)&&!fH.has(u));if(l.length===0)return null;function c(u){t(f=>{const g=new Set(f);return g.has(u)?g.delete(u):g.add(u),g})}async function d(){s(!0);try{await tn("/api/agent-approval-config",{agent_id:n.agent_id,tools:Array.from(e)})}catch(u){console.error(u)}finally{s(!1)}}const h=rge(l);return _.jsxs("div",{style:{marginTop:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:14},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx(bfe,{size:14,style:{color:"var(--orange)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Action Required"}),e.size>0&&_.jsxs("span",{style:{fontSize:11,color:"var(--orange)",background:"rgba(245,158,11,0.1)",padding:"2px 8px",borderRadius:5,fontFamily:"monospace"},children:[e.size," gated"]})]}),o&&_.jsx("button",{onClick:d,disabled:i,style:{fontSize:11,fontWeight:500,padding:"4px 14px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",opacity:i?.5:1},children:i?"Saving...":"Save changes"})]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.5,marginBottom:12,padding:"8px 12px",background:"rgba(245,158,11,0.05)",borderRadius:8,border:"1px solid rgba(245,158,11,0.12)"},children:"Tools marked here will pause and wait for your approval before the agent can execute them. The agent cannot proceed until you approve or deny from the dashboard."}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(210px, 1fr))",gap:10},children:h.map(u=>_.jsxs("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[_.jsx("div",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"7px 12px 5px",background:"var(--bg-tertiary)",borderBottom:"1px solid var(--border)"},children:u.label}),u.tools.map((f,g)=>{const m=e.has(f);return _.jsxs("div",{className:"tool-row",onClick:()=>c(f),style:{borderBottom:g<u.tools.length-1?"1px solid var(--border)":"none",height:32},children:[_.jsx("span",{style:{flex:1,fontSize:11,fontFamily:"monospace",color:m?"var(--orange)":"var(--text-muted)",fontWeight:m?600:400},children:f}),_.jsx("div",{style:{width:28,height:16,borderRadius:8,flexShrink:0,background:m?"var(--orange)":"var(--bg-tertiary)",border:m?"none":"1px solid var(--border)",position:"relative",transition:"background 0.15s",cursor:"pointer"},children:_.jsx("div",{style:{width:12,height:12,borderRadius:"50%",background:m?"#fff":"var(--text-muted)",position:"absolute",top:2,left:m?14:2,transition:"left 0.15s, background 0.15s"}})})]},f)})]},u.label))})]})}function pNe(){const{employees:n,refresh:e}=Wu(),{data:t}=Ks("/api/tasks",5e3),{data:i,refresh:s}=Ks("/api/company",15e3),{data:r,refresh:o}=Ks("/api/agents/runtime",4e3),{data:a}=Ks("/api/role-templates",3e4),{tokens:l,activeAgents:c}=P0(),[d,h]=z.useState(""),[u,f]=z.useState("grid"),[g,m]=z.useState({}),[b,w]=z.useState(!1),[S,x]=z.useState(null),[C,L]=z.useState(null),[E,I]=z.useState(null),[R,M]=z.useState("idle"),A=z.useRef(null),H=z.useRef(new Map),[F,B]=z.useState(!1),[j,V]=z.useState(""),[X,K]=z.useState(!1),Q=z.useRef(null),te=n??[],W=t??[],Z=(i==null?void 0:i.agents)??[],oe=(r==null?void 0:r.agents)??[],$=(a==null?void 0:a.templates)??[],be=R==="entered",Le=z.useMemo(()=>{const It=new Map;for(const $t of oe)It.set($t.agent_id,$t);return It},[oe]),Ve=z.useMemo(()=>{if(!d.trim())return te;const It=d.toLowerCase();return te.filter($t=>$t.name.toLowerCase().includes(It)||$t.role.toLowerCase().includes(It)||$t.agent_key.toLowerCase().includes(It))},[te,d]),Ye=z.useMemo(()=>{const It=new Map;for(const Ti of Ve){const Wn=Ti.department??"Other";It.has(Wn)||It.set(Wn,[]),It.get(Wn).push(Ti)}const $t=["Management","Product","Engineering","Analysis","Design","Documentation","Governance"];return[...It.entries()].sort(([Ti],[Wn])=>{const xi=$t.indexOf(Ti),Qt=$t.indexOf(Wn);return xi!==-1&&Qt!==-1?xi-Qt:xi!==-1?-1:Qt!==-1?1:Ti.localeCompare(Wn)})},[Ve]),ft=z.useCallback(It=>{const $t=H.current.get(It),Ti=A.current;if(!$t||!Ti)return;const Wn=$t.getBoundingClientRect(),xi=Ti.getBoundingClientRect();I({top:Wn.top-xi.top,left:Wn.left-xi.left,width:Wn.width,height:Wn.height,rootW:xi.width,rootH:xi.height}),L(It),B(!1),M("measure"),requestAnimationFrame(()=>{requestAnimationFrame(()=>M("entered"))})},[]),re=z.useCallback(()=>{M("exiting"),setTimeout(()=>{L(null),I(null),M("idle")},450)},[]);async function Se(It,$t){m(Ti=>({...Ti,[It]:"toggle"}));try{await tn(`/api/agents/${It}/toggle`,{enabled:$t}),o(),e(),s()}catch(Ti){console.error(Ti)}finally{m(Ti=>({...Ti,[It]:null}))}}async function We(It){x(null),C===It&&re(),m($t=>({...$t,[It]:"remove"}));try{await yY(`/api/agents/${It}`),o(),e(),s()}catch($t){console.error($t)}finally{m($t=>({...$t,[It]:null}))}}async function Be(It,$t){await tn("/api/agents",{template:It,name:$t}),o(),e(),s()}function Te(It){const $t=It.agent_key,Ti=AA[It.role]??"var(--text-muted)",Wn=c[$t]??!1,xi=Le.get($t),Qt=W.filter(Dt=>Dt.agent_id===$t),Is=Qt.filter(Dt=>Dt.status==="in_progress").length,ae=Qt.filter(Dt=>Dt.status==="completed").length,ke=Qt.filter(Dt=>Dt.status==="todo").length,Ue=l[$t]??"",Pt=(xi==null?void 0:xi.template)==="pm";return _.jsxs("div",{ref:Dt=>{Dt&&H.current.set($t,Dt)},onClick:()=>ft($t),className:"card-hover",style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,padding:14,cursor:"pointer",transition:"border-color 0.12s, box-shadow 0.12s",position:"relative",display:"flex",flexDirection:"column",gap:10,opacity:xi&&!xi.enabled?.55:1},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[_.jsxs("div",{style:{position:"relative",flexShrink:0},children:[_.jsx("div",{style:{width:36,height:36,borderRadius:9,background:Ti,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,fontWeight:600,color:"#fff"},children:It.initials??Fne(It.name)}),Wn&&_.jsx("div",{style:{position:"absolute",bottom:-1,right:-1,width:9,height:9,borderRadius:"50%",background:"var(--green)",border:"2px solid var(--bg-card)"}})]}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:It.name}),_.jsx(Bne,{runtime:xi})]}),_.jsx("div",{style:{fontSize:11,color:Ti,fontWeight:500,marginTop:1},children:It.role})]}),_.jsxs("span",{style:{fontSize:10,fontFamily:"monospace",color:"var(--text-muted)",flexShrink:0},children:["@",$t]})]}),Qt.length>0&&_.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[Is>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:500,color:"var(--blue)",background:"var(--blue-bg, rgba(17,88,199,0.1))",padding:"2px 7px",borderRadius:4},children:[Is," active"]}),ke>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:500,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"2px 7px",borderRadius:4},children:[ke," pending"]}),ae>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:500,color:"var(--green)",background:"var(--green-bg, rgba(16,185,129,0.1))",padding:"2px 7px",borderRadius:4},children:[ae," done"]})]}),Ue&&_.jsx("div",{style:{fontSize:10.5,fontFamily:"monospace",color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:"var(--bg-tertiary)",padding:"4px 8px",borderRadius:5},children:Ue.length>120?Ue.slice(-120):Ue}),xi&&!Pt&&_.jsxs("div",{style:{display:"flex",gap:4,marginTop:"auto"},onClick:Dt=>Dt.stopPropagation(),children:[_.jsxs("button",{onClick:()=>Se($t,!xi.enabled),disabled:g[$t]==="toggle",title:xi.enabled?"Disable":"Enable",style:{display:"flex",alignItems:"center",gap:3,fontSize:10,fontWeight:600,padding:"3px 8px",borderRadius:5,border:"1px solid",cursor:"pointer",fontFamily:"inherit",borderColor:xi.enabled?"var(--green)":"var(--border)",background:xi.enabled?"var(--green-bg, rgba(16,185,129,0.1))":"var(--bg-tertiary)",color:xi.enabled?"var(--green)":"var(--text-muted)",opacity:g[$t]==="toggle"?.5:1},children:[_.jsx(Qie,{size:10}),xi.enabled?"On":"Off"]}),_.jsx("button",{onClick:()=>x($t),disabled:g[$t]==="remove",title:"Remove",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:5,padding:0,marginLeft:"auto",border:"1px solid var(--border)",cursor:"pointer",background:"transparent",color:"var(--text-muted)",opacity:g[$t]==="remove"?.5:1,transition:"color 0.08s, border-color 0.08s"},onMouseEnter:Dt=>{Dt.currentTarget.style.borderColor="var(--red)",Dt.currentTarget.style.color="var(--red)"},onMouseLeave:Dt=>{Dt.currentTarget.style.borderColor="var(--border)",Dt.currentTarget.style.color="var(--text-muted)"},children:_.jsx(vp,{size:10})})]})]},$t)}const Et=C?te.find(It=>It.agent_key===C):null,_t=C?Z.find(It=>It.agent_id===C):null,Si=Et?AA[Et.role]??"var(--text-muted)":"var(--text-muted)",bi=C?W.filter(It=>It.agent_id===C):[],ns=C?Le.get(C):void 0;return _.jsxs("div",{ref:A,style:{position:"relative",display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:16},children:[_.jsxs("div",{children:[_.jsx("div",{className:"page-title",children:"Directory"}),_.jsx("div",{className:"page-subtitle",children:Ve.length===te.length?`${te.length} employees`:`${Ve.length} of ${te.length} employees`})]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{display:"flex",borderRadius:8,overflow:"hidden",border:"1px solid var(--border)",flexShrink:0},children:[["grid",hDe,"Grid"],["department",y_,"Dept"]].map(([It,$t,Ti])=>_.jsxs("button",{onClick:()=>f(It),title:`${Ti} view`,style:{display:"flex",alignItems:"center",gap:4,fontSize:11,fontWeight:500,padding:"5px 10px",border:"none",cursor:"pointer",fontFamily:"inherit",background:u===It?"var(--accent)":"transparent",color:u===It?"#fff":"var(--text-muted)",transition:"all 0.08s"},children:[_.jsx($t,{size:12}),Ti]},It))}),_.jsxs("button",{onClick:()=>w(!0),style:{display:"flex",alignItems:"center",gap:6,fontSize:12,fontWeight:600,padding:"7px 14px",borderRadius:20,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",flexShrink:0,transition:"opacity 0.08s"},onMouseEnter:It=>{It.currentTarget.style.opacity="0.85"},onMouseLeave:It=>{It.currentTarget.style.opacity="1"},children:[_.jsx(IM,{size:13}),"Hire"]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:20,padding:"6px 14px",flexShrink:0},children:[_.jsx(Rh,{size:14,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("input",{value:d,onChange:It=>h(It.target.value),placeholder:"Search...",style:{border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontSize:12.5,width:180,fontFamily:"inherit",padding:0}}),d&&_.jsx("button",{onClick:()=>h(""),style:{display:"flex",alignItems:"center",justifyContent:"center",width:14,height:14,border:"none",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",borderRadius:3,padding:0,flexShrink:0},children:_.jsx(Pr,{size:9})})]})]})]}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"4px 24px 20px"},children:[u==="department"?_.jsx("div",{children:Ye.map(([It,$t])=>_.jsxs("div",{style:{marginBottom:24},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10,paddingBottom:6,borderBottom:"1px solid var(--border)"},children:[_.jsx(y_,{size:14,style:{color:"var(--text-muted)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:700,color:"var(--text-primary)",letterSpacing:"0.01em"},children:It}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5,fontFamily:"monospace"},children:$t.length})]}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:$t.map(Ti=>Te(Ti))})]},It))}):_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:Ve.map(It=>Te(It))}),Ve.length===0&&te.length>0&&_.jsxs("div",{style:{textAlign:"center",padding:"48px 24px",color:"var(--text-muted)",fontSize:13},children:["No employees matching “",d,"”"]})]}),C&&E&&_.jsx("div",{style:{position:"absolute",inset:0,zIndex:19,background:"var(--bg-card)",opacity:be?1:0,transition:R==="measure"?"none":"opacity 0.3s ease",pointerEvents:"none"}}),C&&E&&Et&&(()=>{const It=bi.filter(Qt=>Qt.status==="in_progress").length,$t=bi.filter(Qt=>Qt.status==="completed").length,Ti=bi.filter(Qt=>Qt.status==="todo").length,Wn=c[C]??!1,xi=(ns==null?void 0:ns.template)==="pm";return _.jsx("div",{style:{position:"absolute",zIndex:20,top:be?0:E.top,left:be?0:E.left,width:be?E.rootW:E.width,height:be?E.rootH:E.height,background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:be?0:8,overflow:"hidden",boxShadow:be?"none":"var(--shadow-lg)",transition:R==="measure"?"none":`top ${Ow} ${Pw}, left ${Ow} ${Pw}, width ${Ow} ${Pw}, height ${Ow} ${Pw}, border-radius ${Ow} ${Pw}, box-shadow ${Ow} ${Pw}`},children:_.jsxs("div",{style:{opacity:be?1:0,transition:be?"opacity 0.22s ease-in 0.2s":"opacity 0.1s ease-out",height:"100%",display:"flex",flexDirection:"column",overflow:"hidden"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"16px 24px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx("button",{onClick:re,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,border:"none",borderRadius:8,background:"var(--bg-tertiary)",color:"var(--text-secondary)",cursor:"pointer",flexShrink:0,padding:0,transition:"background 0.08s, color 0.08s"},onMouseEnter:Qt=>{Qt.currentTarget.style.background="var(--bg-hover)",Qt.currentTarget.style.color="var(--text-primary)"},onMouseLeave:Qt=>{Qt.currentTarget.style.background="var(--bg-tertiary)",Qt.currentTarget.style.color="var(--text-secondary)"},children:_.jsx(nLe,{size:16})}),_.jsxs("div",{style:{position:"relative",flexShrink:0},children:[_.jsx("div",{style:{width:40,height:40,borderRadius:11,background:Si,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:600,color:"#fff"},children:Fne(Et.name)}),Wn&&_.jsx("div",{style:{position:"absolute",bottom:-1,right:-1,width:10,height:10,borderRadius:"50%",background:"var(--green)",border:"2px solid var(--bg-card)"}})]}),_.jsxs("div",{style:{flex:1},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[F?_.jsxs("form",{onSubmit:async Qt=>{Qt.preventDefault();const Is=j.trim();if(!Is||Is===Et.name){B(!1);return}K(!0);try{await Tke(`/api/agents/${C}`,{name:Is}),o(),e(),s()}catch{}K(!1),B(!1)},style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("input",{ref:Q,value:j,onChange:Qt=>V(Qt.target.value),onBlur:()=>{X||B(!1)},onKeyDown:Qt=>{Qt.key==="Escape"&&B(!1)},autoFocus:!0,style:{fontSize:16,fontWeight:600,color:"var(--text-primary)",background:"var(--bg-tertiary)",border:"1px solid var(--accent)",borderRadius:6,padding:"2px 8px",fontFamily:"inherit",outline:"none",width:200}}),_.jsx("button",{type:"submit",disabled:X,style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",padding:0},children:_.jsx(Mc,{size:14})})]}):_.jsxs(_.Fragment,{children:[_.jsx("span",{style:{fontSize:16,fontWeight:600,color:"var(--text-primary)"},children:Et.name}),_.jsx("button",{onClick:()=>{V(Et.name),B(!0)},title:"Rename agent",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",padding:0,transition:"background 0.08s, color 0.08s"},onMouseEnter:Qt=>{Qt.currentTarget.style.background="var(--bg-hover)",Qt.currentTarget.style.color="var(--text-primary)"},onMouseLeave:Qt=>{Qt.currentTarget.style.background="transparent",Qt.currentTarget.style.color="var(--text-muted)"},children:_.jsx(_fe,{size:13})})]}),_.jsx(Bne,{runtime:ns})]}),_.jsxs("div",{style:{fontSize:12,color:Si,fontWeight:500,marginTop:1},children:[Et.role," · @",C]})]}),ns&&!xi&&_.jsxs("div",{style:{display:"flex",gap:6,flexShrink:0,marginRight:8},children:[_.jsxs("button",{onClick:()=>Se(C,!ns.enabled),disabled:g[C]==="toggle",title:ns.enabled?"Disable agent":"Enable agent",style:{display:"flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,padding:"5px 12px",borderRadius:6,border:"1px solid",cursor:"pointer",fontFamily:"inherit",borderColor:ns.enabled?"var(--green)":"var(--border)",background:ns.enabled?"var(--green-bg, rgba(16,185,129,0.1))":"var(--bg-tertiary)",color:ns.enabled?"var(--green)":"var(--text-muted)",opacity:g[C]==="toggle"?.5:1},children:[_.jsx(Qie,{size:11}),ns.enabled?"On":"Off"]}),_.jsx("button",{onClick:()=>{x(C),re()},disabled:g[C]==="remove",title:"Remove agent",style:{display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,borderRadius:6,padding:0,border:"1px solid var(--border)",cursor:"pointer",background:"transparent",color:"var(--text-muted)",opacity:g[C]==="remove"?.5:1},onMouseEnter:Qt=>{Qt.currentTarget.style.borderColor="var(--red)",Qt.currentTarget.style.color="var(--red)",Qt.currentTarget.style.background="var(--red-bg, rgba(239,68,68,0.1))"},onMouseLeave:Qt=>{Qt.currentTarget.style.borderColor="var(--border)",Qt.currentTarget.style.color="var(--text-muted)",Qt.currentTarget.style.background="transparent"},children:_.jsx(vp,{size:12})})]}),bi.length>0&&_.jsxs("div",{style:{display:"flex",gap:6,flexShrink:0},children:[It>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,color:"var(--blue)",background:"var(--blue-bg)",padding:"3px 10px",borderRadius:5},children:[It," active"]}),Ti>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"3px 10px",borderRadius:5},children:[Ti," pending"]}),$t>0&&_.jsxs("span",{style:{fontSize:11,fontWeight:500,color:"var(--green)",background:"var(--green-bg)",padding:"3px 10px",borderRadius:5},children:[$t," done"]})]})]}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"20px 24px 28px"},children:[_.jsx(hNe,{agentId:C}),_t&&_.jsx(uNe,{profile:_t},C),_t&&_.jsx(fNe,{profile:_t},`mcp-${C}`),_t&&_.jsx(gNe,{profile:_t},`approval-${C}`)]})]})})})(),b&&_.jsx(dNe,{templates:$,onHire:Be,onClose:()=>w(!1)}),S&&_.jsx(sge,{title:"Remove Agent",message:`Remove agent @${S}? This will delete them from the roster and cannot be undone.`,confirmLabel:"Remove",destructive:!0,onConfirm:()=>We(S),onCancel:()=>x(null)})]})}function Wne(n,e){const t=String(n);if(typeof e!="string")throw new TypeError("Expected character");let i=0,s=t.indexOf(e);for(;s!==-1;)i++,s=t.indexOf(e,s+e.length);return i}function mNe(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function _Ne(n,e,t){const s=tF((t||{}).ignore||[]),r=vNe(e);let o=-1;for(;++o<r.length;)tge(n,"text",a);function a(c,d){let h=-1,u;for(;++h<d.length;){const f=d[h],g=u?u.children:void 0;if(s(f,g?g.indexOf(f):void 0,u))return;u=f}if(u)return l(c,d)}function l(c,d){const h=d[d.length-1],u=r[o][0],f=r[o][1];let g=0;const b=h.children.indexOf(c);let w=!1,S=[];u.lastIndex=0;let x=u.exec(c.value);for(;x;){const C=x.index,L={index:x.index,input:x.input,stack:[...d,c]};let E=f(...x,L);if(typeof E=="string"&&(E=E.length>0?{type:"text",value:E}:void 0),E===!1?u.lastIndex=C+1:(g!==C&&S.push({type:"text",value:c.value.slice(g,C)}),Array.isArray(E)?S.push(...E):E&&S.push(E),g=C+x[0].length,w=!0),!u.global)break;x=u.exec(c.value)}return w?(g<c.value.length&&S.push({type:"text",value:c.value.slice(g)}),h.children.splice(b,1,...S)):S=[c],b+S.length}}function vNe(n){const e=[];if(!Array.isArray(n))throw new TypeError("Expected find and replace tuple or list of tuples");const t=!n[0]||Array.isArray(n[0])?n:[n];let i=-1;for(;++i<t.length;){const s=t[i];e.push([bNe(s[0]),yNe(s[1])])}return e}function bNe(n){return typeof n=="string"?new RegExp(mNe(n),"g"):n}function yNe(n){return typeof n=="function"?n:function(){return n}}const KB="phrasing",GB=["autolink","link","image","label"];function wNe(){return{transforms:[ENe],enter:{literalAutolink:SNe,literalAutolinkEmail:YB,literalAutolinkHttp:YB,literalAutolinkWww:YB},exit:{literalAutolink:DNe,literalAutolinkEmail:LNe,literalAutolinkHttp:xNe,literalAutolinkWww:kNe}}}function CNe(){return{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:KB,notInConstruct:GB},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:KB,notInConstruct:GB},{character:":",before:"[ps]",after:"\\/",inConstruct:KB,notInConstruct:GB}]}}function SNe(n){this.enter({type:"link",title:null,url:"",children:[]},n)}function YB(n){this.config.enter.autolinkProtocol.call(this,n)}function xNe(n){this.config.exit.autolinkProtocol.call(this,n)}function kNe(n){this.config.exit.data.call(this,n);const e=this.stack[this.stack.length-1];e.type,e.url="http://"+this.sliceSerialize(n)}function LNe(n){this.config.exit.autolinkEmail.call(this,n)}function DNe(n){this.exit(n)}function ENe(n){_Ne(n,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,INe],[new RegExp("(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)","gu"),TNe]],{ignore:["link","linkReference"]})}function INe(n,e,t,i,s){let r="";if(!oge(s)||(/^w/i.test(e)&&(t=e+t,e="",r="http://"),!RNe(t)))return!1;const o=NNe(t+i);if(!o[0])return!1;const a={type:"link",title:null,url:r+e+o[0],children:[{type:"text",value:e+o[0]}]};return o[1]?[a,{type:"text",value:o[1]}]:a}function TNe(n,e,t,i){return!oge(i,!0)||/[-\d_]$/.test(t)?!1:{type:"link",title:null,url:"mailto:"+e+"@"+t,children:[{type:"text",value:e+"@"+t}]}}function RNe(n){const e=n.split(".");return!(e.length<2||e[e.length-1]&&(/_/.test(e[e.length-1])||!/[a-zA-Z\d]/.test(e[e.length-1]))||e[e.length-2]&&(/_/.test(e[e.length-2])||!/[a-zA-Z\d]/.test(e[e.length-2])))}function NNe(n){const e=/[!"&'),.:;<>?\]}]+$/.exec(n);if(!e)return[n,void 0];n=n.slice(0,e.index);let t=e[0],i=t.indexOf(")");const s=Wne(n,"(");let r=Wne(n,")");for(;i!==-1&&s>r;)n+=t.slice(0,i+1),t=t.slice(i+1),i=t.indexOf(")"),r++;return[n,t]}function oge(n,e){const t=n.input.charCodeAt(n.index-1);return(n.index===0||Yy(t)||Q3(t))&&(!e||t!==47)}age.peek=VNe;function MNe(){this.buffer()}function ANe(n){this.enter({type:"footnoteReference",identifier:"",label:""},n)}function PNe(){this.buffer()}function ONe(n){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},n)}function FNe(n){const e=this.resume(),t=this.stack[this.stack.length-1];t.type,t.identifier=Su(this.sliceSerialize(n)).toLowerCase(),t.label=e}function BNe(n){this.exit(n)}function WNe(n){const e=this.resume(),t=this.stack[this.stack.length-1];t.type,t.identifier=Su(this.sliceSerialize(n)).toLowerCase(),t.label=e}function HNe(n){this.exit(n)}function VNe(){return"["}function age(n,e,t,i){const s=t.createTracker(i);let r=s.move("[^");const o=t.enter("footnoteReference"),a=t.enter("reference");return r+=s.move(t.safe(t.associationId(n),{after:"]",before:r})),a(),o(),r+=s.move("]"),r}function zNe(){return{enter:{gfmFootnoteCallString:MNe,gfmFootnoteCall:ANe,gfmFootnoteDefinitionLabelString:PNe,gfmFootnoteDefinition:ONe},exit:{gfmFootnoteCallString:FNe,gfmFootnoteCall:BNe,gfmFootnoteDefinitionLabelString:WNe,gfmFootnoteDefinition:HNe}}}function jNe(n){let e=!1;return n&&n.firstLineBlank&&(e=!0),{handlers:{footnoteDefinition:t,footnoteReference:age},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function t(i,s,r,o){const a=r.createTracker(o);let l=a.move("[^");const c=r.enter("footnoteDefinition"),d=r.enter("label");return l+=a.move(r.safe(r.associationId(i),{before:l,after:"]"})),d(),l+=a.move("]:"),i.children&&i.children.length>0&&(a.shift(4),l+=a.move((e?`
|
|
614
614
|
`:" ")+r.indentLines(r.containerFlow(i,a.current()),e?lge:UNe))),c(),l}}function UNe(n,e,t){return e===0?n:lge(n,e,t)}function lge(n,e,t){return(t?"":" ")+n}const $Ne=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];cge.peek=ZNe;function qNe(){return{canContainEols:["delete"],enter:{strikethrough:GNe},exit:{strikethrough:YNe}}}function KNe(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:$Ne}],handlers:{delete:cge}}}function GNe(n){this.enter({type:"delete",children:[]},n)}function YNe(n){this.exit(n)}function cge(n,e,t,i){const s=t.createTracker(i),r=t.enter("strikethrough");let o=s.move("~~");return o+=t.containerPhrasing(n,{...s.current(),before:o,after:"~"}),o+=s.move("~~"),r(),o}function ZNe(){return"~"}function XNe(n){return n.length}function QNe(n,e){const t=e||{},i=(t.align||[]).concat(),s=t.stringLength||XNe,r=[],o=[],a=[],l=[];let c=0,d=-1;for(;++d<n.length;){const m=[],b=[];let w=-1;for(n[d].length>c&&(c=n[d].length);++w<n[d].length;){const S=JNe(n[d][w]);if(t.alignDelimiters!==!1){const x=s(S);b[w]=x,(l[w]===void 0||x>l[w])&&(l[w]=x)}m.push(S)}o[d]=m,a[d]=b}let h=-1;if(typeof i=="object"&&"length"in i)for(;++h<c;)r[h]=Hne(i[h]);else{const m=Hne(i);for(;++h<c;)r[h]=m}h=-1;const u=[],f=[];for(;++h<c;){const m=r[h];let b="",w="";m===99?(b=":",w=":"):m===108?b=":":m===114&&(w=":");let S=t.alignDelimiters===!1?1:Math.max(1,l[h]-b.length-w.length);const x=b+"-".repeat(S)+w;t.alignDelimiters!==!1&&(S=b.length+S+w.length,S>l[h]&&(l[h]=S),f[h]=S),u[h]=x}o.splice(1,0,u),a.splice(1,0,f),d=-1;const g=[];for(;++d<o.length;){const m=o[d],b=a[d];h=-1;const w=[];for(;++h<c;){const S=m[h]||"";let x="",C="";if(t.alignDelimiters!==!1){const L=l[h]-(b[h]||0),E=r[h];E===114?x=" ".repeat(L):E===99?L%2?(x=" ".repeat(L/2+.5),C=" ".repeat(L/2-.5)):(x=" ".repeat(L/2),C=x):C=" ".repeat(L)}t.delimiterStart!==!1&&!h&&w.push("|"),t.padding!==!1&&!(t.alignDelimiters===!1&&S==="")&&(t.delimiterStart!==!1||h)&&w.push(" "),t.alignDelimiters!==!1&&w.push(x),w.push(S),t.alignDelimiters!==!1&&w.push(C),t.padding!==!1&&w.push(" "),(t.delimiterEnd!==!1||h!==c-1)&&w.push("|")}g.push(t.delimiterEnd===!1?w.join("").replace(/ +$/,""):w.join(""))}return g.join(`
|
|
615
615
|
`)}function JNe(n){return n==null?"":String(n)}function Hne(n){const e=typeof n=="string"?n.codePointAt(0):0;return e===67||e===99?99:e===76||e===108?108:e===82||e===114?114:0}function eMe(n,e,t,i){const s=t.enter("blockquote"),r=t.createTracker(i);r.move("> "),r.shift(2);const o=t.indentLines(t.containerFlow(n,r.current()),tMe);return s(),o}function tMe(n,e,t){return">"+(t?"":" ")+n}function iMe(n,e){return Vne(n,e.inConstruct,!0)&&!Vne(n,e.notInConstruct,!1)}function Vne(n,e,t){if(typeof e=="string"&&(e=[e]),!e||e.length===0)return t;let i=-1;for(;++i<e.length;)if(n.includes(e[i]))return!0;return!1}function zne(n,e,t,i){let s=-1;for(;++s<t.unsafe.length;)if(t.unsafe[s].character===`
|
|
616
616
|
`&&iMe(t.stack,t.unsafe[s]))return/[ \t]/.test(i.before)?"":" ";return`\\
|
|
@@ -628,7 +628,7 @@ Error generating stack: `+P.message+`
|
|
|
628
628
|
`))}function l(f,g,m,b){const w=m.enter("tableCell"),S=m.enter("phrasing"),x=m.containerPhrasing(f,{...b,before:r,after:r});return S(),w(),x}function c(f,g){return QNe(f,{align:g,alignDelimiters:i,padding:t,stringLength:s})}function d(f,g,m){const b=f.children;let w=-1;const S=[],x=g.enter("table");for(;++w<b.length;)S[w]=h(b[w],g,m);return x(),S}function h(f,g,m){const b=f.children;let w=-1;const S=[],x=g.enter("tableRow");for(;++w<b.length;)S[w]=l(b[w],f,g,m);return x(),S}function u(f,g,m){let b=yge.inlineCode(f,g,m);return m.stack.includes("tableCell")&&(b=b.replace(/\|/g,"\\$&")),b}}function WMe(){return{exit:{taskListCheckValueChecked:Une,taskListCheckValueUnchecked:Une,paragraph:VMe}}}function HMe(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:zMe}}}function Une(n){const e=this.stack[this.stack.length-2];e.type,e.checked=n.type==="taskListCheckValueChecked"}function VMe(n){const e=this.stack[this.stack.length-2];if(e&&e.type==="listItem"&&typeof e.checked=="boolean"){const t=this.stack[this.stack.length-1];t.type;const i=t.children[0];if(i&&i.type==="text"){const s=e.children;let r=-1,o;for(;++r<s.length;){const a=s[r];if(a.type==="paragraph"){o=a;break}}o===t&&(i.value=i.value.slice(1),i.value.length===0?t.children.shift():t.position&&i.position&&typeof i.position.start.offset=="number"&&(i.position.start.column++,i.position.start.offset++,t.position.start=Object.assign({},i.position.start)))}}this.exit(n)}function zMe(n,e,t,i){const s=n.children[0],r=typeof n.checked=="boolean"&&s&&s.type==="paragraph",o="["+(n.checked?"x":" ")+"] ",a=t.createTracker(i);r&&a.move(o);let l=yge.listItem(n,e,t,{...i,...a.current()});return r&&(l=l.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,c)),l;function c(d){return d+o}}function jMe(){return[wNe(),zNe(),qNe(),NMe(),WMe()]}function UMe(n){return{extensions:[CNe(),jNe(n),KNe(),BMe(n),HMe()]}}const $Me={tokenize:XMe,partial:!0},wge={tokenize:QMe,partial:!0},Cge={tokenize:JMe,partial:!0},Sge={tokenize:eAe,partial:!0},qMe={tokenize:tAe,partial:!0},xge={name:"wwwAutolink",tokenize:YMe,previous:Lge},kge={name:"protocolAutolink",tokenize:ZMe,previous:Dge},hm={name:"emailAutolink",tokenize:GMe,previous:Ege},cg={};function KMe(){return{text:cg}}let ob=48;for(;ob<123;)cg[ob]=hm,ob++,ob===58?ob=65:ob===91&&(ob=97);cg[43]=hm;cg[45]=hm;cg[46]=hm;cg[95]=hm;cg[72]=[hm,kge];cg[104]=[hm,kge];cg[87]=[hm,xge];cg[119]=[hm,xge];function GMe(n,e,t){const i=this;let s,r;return o;function o(h){return!gH(h)||!Ege.call(i,i.previous)||GY(i.events)?t(h):(n.enter("literalAutolink"),n.enter("literalAutolinkEmail"),a(h))}function a(h){return gH(h)?(n.consume(h),a):h===64?(n.consume(h),l):t(h)}function l(h){return h===46?n.check(qMe,d,c)(h):h===45||h===95||sl(h)?(r=!0,n.consume(h),l):d(h)}function c(h){return n.consume(h),s=!0,l}function d(h){return r&&s&&Nl(i.previous)?(n.exit("literalAutolinkEmail"),n.exit("literalAutolink"),e(h)):t(h)}}function YMe(n,e,t){const i=this;return s;function s(o){return o!==87&&o!==119||!Lge.call(i,i.previous)||GY(i.events)?t(o):(n.enter("literalAutolink"),n.enter("literalAutolinkWww"),n.check($Me,n.attempt(wge,n.attempt(Cge,r),t),t)(o))}function r(o){return n.exit("literalAutolinkWww"),n.exit("literalAutolink"),e(o)}}function ZMe(n,e,t){const i=this;let s="",r=!1;return o;function o(h){return(h===72||h===104)&&Dge.call(i,i.previous)&&!GY(i.events)?(n.enter("literalAutolink"),n.enter("literalAutolinkHttp"),s+=String.fromCodePoint(h),n.consume(h),a):t(h)}function a(h){if(Nl(h)&&s.length<5)return s+=String.fromCodePoint(h),n.consume(h),a;if(h===58){const u=s.toLowerCase();if(u==="http"||u==="https")return n.consume(h),l}return t(h)}function l(h){return h===47?(n.consume(h),r?c:(r=!0,l)):t(h)}function c(h){return h===null||RA(h)||Ps(h)||Yy(h)||Q3(h)?t(h):n.attempt(wge,n.attempt(Cge,d),t)(h)}function d(h){return n.exit("literalAutolinkHttp"),n.exit("literalAutolink"),e(h)}}function XMe(n,e,t){let i=0;return s;function s(o){return(o===87||o===119)&&i<3?(i++,n.consume(o),s):o===46&&i===3?(n.consume(o),r):t(o)}function r(o){return o===null?t(o):e(o)}}function QMe(n,e,t){let i,s,r;return o;function o(c){return c===46||c===95?n.check(Sge,l,a)(c):c===null||Ps(c)||Yy(c)||c!==45&&Q3(c)?l(c):(r=!0,n.consume(c),o)}function a(c){return c===95?i=!0:(s=i,i=void 0),n.consume(c),o}function l(c){return s||i||!r?t(c):e(c)}}function JMe(n,e){let t=0,i=0;return s;function s(o){return o===40?(t++,n.consume(o),s):o===41&&i<t?r(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?n.check(Sge,e,r)(o):o===null||Ps(o)||Yy(o)?e(o):(n.consume(o),s)}function r(o){return o===41&&i++,n.consume(o),s}}function eAe(n,e,t){return i;function i(a){return a===33||a===34||a===39||a===41||a===42||a===44||a===46||a===58||a===59||a===63||a===95||a===126?(n.consume(a),i):a===38?(n.consume(a),r):a===93?(n.consume(a),s):a===60||a===null||Ps(a)||Yy(a)?e(a):t(a)}function s(a){return a===null||a===40||a===91||Ps(a)||Yy(a)?e(a):i(a)}function r(a){return Nl(a)?o(a):t(a)}function o(a){return a===59?(n.consume(a),i):Nl(a)?(n.consume(a),o):t(a)}}function tAe(n,e,t){return i;function i(r){return n.consume(r),s}function s(r){return sl(r)?t(r):e(r)}}function Lge(n){return n===null||n===40||n===42||n===95||n===91||n===93||n===126||Ps(n)}function Dge(n){return!Nl(n)}function Ege(n){return!(n===47||gH(n))}function gH(n){return n===43||n===45||n===46||n===95||sl(n)}function GY(n){let e=n.length,t=!1;for(;e--;){const i=n[e][1];if((i.type==="labelLink"||i.type==="labelImage")&&!i._balanced){t=!0;break}if(i._gfmAutolinkLiteralWalkedInto){t=!1;break}}return n.length>0&&!t&&(n[n.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),t}const iAe={tokenize:dAe,partial:!0};function nAe(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:aAe,continuation:{tokenize:lAe},exit:cAe}},text:{91:{name:"gfmFootnoteCall",tokenize:oAe},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:sAe,resolveTo:rAe}}}}function sAe(n,e,t){const i=this;let s=i.events.length;const r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o;for(;s--;){const l=i.events[s][1];if(l.type==="labelImage"){o=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return a;function a(l){if(!o||!o._balanced)return t(l);const c=Su(i.sliceSerialize({start:o.end,end:i.now()}));return c.codePointAt(0)!==94||!r.includes(c.slice(1))?t(l):(n.enter("gfmFootnoteCallLabelMarker"),n.consume(l),n.exit("gfmFootnoteCallLabelMarker"),e(l))}}function rAe(n,e){let t=n.length;for(;t--;)if(n[t][1].type==="labelImage"&&n[t][0]==="enter"){n[t][1];break}n[t+1][1].type="data",n[t+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},n[t+3][1].start),end:Object.assign({},n[n.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},n[t+3][1].end),end:Object.assign({},n[t+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const r={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},n[n.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},r.start),end:Object.assign({},r.end)},a=[n[t+1],n[t+2],["enter",i,e],n[t+3],n[t+4],["enter",s,e],["exit",s,e],["enter",r,e],["enter",o,e],["exit",o,e],["exit",r,e],n[n.length-2],n[n.length-1],["exit",i,e]];return n.splice(t,n.length-t+1,...a),n}function oAe(n,e,t){const i=this,s=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let r=0,o;return a;function a(h){return n.enter("gfmFootnoteCall"),n.enter("gfmFootnoteCallLabelMarker"),n.consume(h),n.exit("gfmFootnoteCallLabelMarker"),l}function l(h){return h!==94?t(h):(n.enter("gfmFootnoteCallMarker"),n.consume(h),n.exit("gfmFootnoteCallMarker"),n.enter("gfmFootnoteCallString"),n.enter("chunkString").contentType="string",c)}function c(h){if(r>999||h===93&&!o||h===null||h===91||Ps(h))return t(h);if(h===93){n.exit("chunkString");const u=n.exit("gfmFootnoteCallString");return s.includes(Su(i.sliceSerialize(u)))?(n.enter("gfmFootnoteCallLabelMarker"),n.consume(h),n.exit("gfmFootnoteCallLabelMarker"),n.exit("gfmFootnoteCall"),e):t(h)}return Ps(h)||(o=!0),r++,n.consume(h),h===92?d:c}function d(h){return h===91||h===92||h===93?(n.consume(h),r++,c):c(h)}}function aAe(n,e,t){const i=this,s=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let r,o=0,a;return l;function l(g){return n.enter("gfmFootnoteDefinition")._container=!0,n.enter("gfmFootnoteDefinitionLabel"),n.enter("gfmFootnoteDefinitionLabelMarker"),n.consume(g),n.exit("gfmFootnoteDefinitionLabelMarker"),c}function c(g){return g===94?(n.enter("gfmFootnoteDefinitionMarker"),n.consume(g),n.exit("gfmFootnoteDefinitionMarker"),n.enter("gfmFootnoteDefinitionLabelString"),n.enter("chunkString").contentType="string",d):t(g)}function d(g){if(o>999||g===93&&!a||g===null||g===91||Ps(g))return t(g);if(g===93){n.exit("chunkString");const m=n.exit("gfmFootnoteDefinitionLabelString");return r=Su(i.sliceSerialize(m)),n.enter("gfmFootnoteDefinitionLabelMarker"),n.consume(g),n.exit("gfmFootnoteDefinitionLabelMarker"),n.exit("gfmFootnoteDefinitionLabel"),u}return Ps(g)||(a=!0),o++,n.consume(g),g===92?h:d}function h(g){return g===91||g===92||g===93?(n.consume(g),o++,d):d(g)}function u(g){return g===58?(n.enter("definitionMarker"),n.consume(g),n.exit("definitionMarker"),s.includes(r)||s.push(r),An(n,f,"gfmFootnoteDefinitionWhitespace")):t(g)}function f(g){return e(g)}}function lAe(n,e,t){return n.check($2,e,n.attempt(iAe,e,t))}function cAe(n){n.exit("gfmFootnoteDefinition")}function dAe(n,e,t){const i=this;return An(n,s,"gfmFootnoteDefinitionIndent",5);function s(r){const o=i.events[i.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?e(r):t(r)}}function hAe(n){let t=(n||{}).singleTilde;const i={name:"strikethrough",tokenize:r,resolveAll:s};return t==null&&(t=!0),{text:{126:i},insideSpan:{null:[i]},attentionMarkers:{null:[126]}};function s(o,a){let l=-1;for(;++l<o.length;)if(o[l][0]==="enter"&&o[l][1].type==="strikethroughSequenceTemporary"&&o[l][1]._close){let c=l;for(;c--;)if(o[c][0]==="exit"&&o[c][1].type==="strikethroughSequenceTemporary"&&o[c][1]._open&&o[l][1].end.offset-o[l][1].start.offset===o[c][1].end.offset-o[c][1].start.offset){o[l][1].type="strikethroughSequence",o[c][1].type="strikethroughSequence";const d={type:"strikethrough",start:Object.assign({},o[c][1].start),end:Object.assign({},o[l][1].end)},h={type:"strikethroughText",start:Object.assign({},o[c][1].end),end:Object.assign({},o[l][1].start)},u=[["enter",d,a],["enter",o[c][1],a],["exit",o[c][1],a],["enter",h,a]],f=a.parser.constructs.insideSpan.null;f&&Id(u,u.length,0,J3(f,o.slice(c+1,l),a)),Id(u,u.length,0,[["exit",h,a],["enter",o[l][1],a],["exit",o[l][1],a],["exit",d,a]]),Id(o,c-1,l-c+3,u),l=c+u.length-2;break}}for(l=-1;++l<o.length;)o[l][1].type==="strikethroughSequenceTemporary"&&(o[l][1].type="data");return o}function r(o,a,l){const c=this.previous,d=this.events;let h=0;return u;function u(g){return c===126&&d[d.length-1][1].type!=="characterEscape"?l(g):(o.enter("strikethroughSequenceTemporary"),f(g))}function f(g){const m=lx(c);if(g===126)return h>1?l(g):(o.consume(g),h++,f);if(h<2&&!t)return l(g);const b=o.exit("strikethroughSequenceTemporary"),w=lx(g);return b._open=!w||w===2&&!!m,b._close=!m||m===2&&!!w,a(g)}}}class uAe{constructor(){this.map=[]}add(e,t,i){fAe(this,e,t,i)}consume(e){if(this.map.sort(function(r,o){return r[0]-o[0]}),this.map.length===0)return;let t=this.map.length;const i=[];for(;t>0;)t-=1,i.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];i.push(e.slice()),e.length=0;let s=i.pop();for(;s;){for(const r of s)e.push(r);s=i.pop()}this.map.length=0}}function fAe(n,e,t,i){let s=0;if(!(t===0&&i.length===0)){for(;s<n.map.length;){if(n.map[s][0]===e){n.map[s][1]+=t,n.map[s][2].push(...i);return}s+=1}n.map.push([e,t,i])}}function gAe(n,e){let t=!1;const i=[];for(;e<n.length;){const s=n[e];if(t){if(s[0]==="enter")s[1].type==="tableContent"&&i.push(n[e+1][1].type==="tableDelimiterMarker"?"left":"none");else if(s[1].type==="tableContent"){if(n[e-1][1].type==="tableDelimiterMarker"){const r=i.length-1;i[r]=i[r]==="left"?"center":"right"}}else if(s[1].type==="tableDelimiterRow")break}else s[0]==="enter"&&s[1].type==="tableDelimiterRow"&&(t=!0);e+=1}return i}function pAe(){return{flow:{null:{name:"table",tokenize:mAe,resolveAll:_Ae}}}}function mAe(n,e,t){const i=this;let s=0,r=0,o;return a;function a(A){let H=i.events.length-1;for(;H>-1;){const j=i.events[H][1].type;if(j==="lineEnding"||j==="linePrefix")H--;else break}const F=H>-1?i.events[H][1].type:null,B=F==="tableHead"||F==="tableRow"?E:l;return B===E&&i.parser.lazy[i.now().line]?t(A):B(A)}function l(A){return n.enter("tableHead"),n.enter("tableRow"),c(A)}function c(A){return A===124||(o=!0,r+=1),d(A)}function d(A){return A===null?t(A):_i(A)?r>1?(r=0,i.interrupt=!0,n.exit("tableRow"),n.enter("lineEnding"),n.consume(A),n.exit("lineEnding"),f):t(A):_n(A)?An(n,d,"whitespace")(A):(r+=1,o&&(o=!1,s+=1),A===124?(n.enter("tableCellDivider"),n.consume(A),n.exit("tableCellDivider"),o=!0,d):(n.enter("data"),h(A)))}function h(A){return A===null||A===124||Ps(A)?(n.exit("data"),d(A)):(n.consume(A),A===92?u:h)}function u(A){return A===92||A===124?(n.consume(A),h):h(A)}function f(A){return i.interrupt=!1,i.parser.lazy[i.now().line]?t(A):(n.enter("tableDelimiterRow"),o=!1,_n(A)?An(n,g,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):g(A))}function g(A){return A===45||A===58?b(A):A===124?(o=!0,n.enter("tableCellDivider"),n.consume(A),n.exit("tableCellDivider"),m):L(A)}function m(A){return _n(A)?An(n,b,"whitespace")(A):b(A)}function b(A){return A===58?(r+=1,o=!0,n.enter("tableDelimiterMarker"),n.consume(A),n.exit("tableDelimiterMarker"),w):A===45?(r+=1,w(A)):A===null||_i(A)?C(A):L(A)}function w(A){return A===45?(n.enter("tableDelimiterFiller"),S(A)):L(A)}function S(A){return A===45?(n.consume(A),S):A===58?(o=!0,n.exit("tableDelimiterFiller"),n.enter("tableDelimiterMarker"),n.consume(A),n.exit("tableDelimiterMarker"),x):(n.exit("tableDelimiterFiller"),x(A))}function x(A){return _n(A)?An(n,C,"whitespace")(A):C(A)}function C(A){return A===124?g(A):A===null||_i(A)?!o||s!==r?L(A):(n.exit("tableDelimiterRow"),n.exit("tableHead"),e(A)):L(A)}function L(A){return t(A)}function E(A){return n.enter("tableRow"),I(A)}function I(A){return A===124?(n.enter("tableCellDivider"),n.consume(A),n.exit("tableCellDivider"),I):A===null||_i(A)?(n.exit("tableRow"),e(A)):_n(A)?An(n,I,"whitespace")(A):(n.enter("data"),R(A))}function R(A){return A===null||A===124||Ps(A)?(n.exit("data"),I(A)):(n.consume(A),A===92?M:R)}function M(A){return A===92||A===124?(n.consume(A),R):R(A)}}function _Ae(n,e){let t=-1,i=!0,s=0,r=[0,0,0,0],o=[0,0,0,0],a=!1,l=0,c,d,h;const u=new uAe;for(;++t<n.length;){const f=n[t],g=f[1];f[0]==="enter"?g.type==="tableHead"?(a=!1,l!==0&&($ne(u,e,l,c,d),d=void 0,l=0),c={type:"table",start:Object.assign({},g.start),end:Object.assign({},g.end)},u.add(t,0,[["enter",c,e]])):g.type==="tableRow"||g.type==="tableDelimiterRow"?(i=!0,h=void 0,r=[0,0,0,0],o=[0,t+1,0,0],a&&(a=!1,d={type:"tableBody",start:Object.assign({},g.start),end:Object.assign({},g.end)},u.add(t,0,[["enter",d,e]])),s=g.type==="tableDelimiterRow"?2:d?3:1):s&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")?(i=!1,o[2]===0&&(r[1]!==0&&(o[0]=o[1],h=$R(u,e,r,s,void 0,h),r=[0,0,0,0]),o[2]=t)):g.type==="tableCellDivider"&&(i?i=!1:(r[1]!==0&&(o[0]=o[1],h=$R(u,e,r,s,void 0,h)),r=o,o=[r[1],t,0,0])):g.type==="tableHead"?(a=!0,l=t):g.type==="tableRow"||g.type==="tableDelimiterRow"?(l=t,r[1]!==0?(o[0]=o[1],h=$R(u,e,r,s,t,h)):o[1]!==0&&(h=$R(u,e,o,s,t,h)),s=0):s&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")&&(o[3]=t)}for(l!==0&&$ne(u,e,l,c,d),u.consume(e.events),t=-1;++t<e.events.length;){const f=e.events[t];f[0]==="enter"&&f[1].type==="table"&&(f[1]._align=gAe(e.events,t))}return n}function $R(n,e,t,i,s,r){const o=i===1?"tableHeader":i===2?"tableDelimiter":"tableData",a="tableContent";t[0]!==0&&(r.end=Object.assign({},fC(e.events,t[0])),n.add(t[0],0,[["exit",r,e]]));const l=fC(e.events,t[1]);if(r={type:o,start:Object.assign({},l),end:Object.assign({},l)},n.add(t[1],0,[["enter",r,e]]),t[2]!==0){const c=fC(e.events,t[2]),d=fC(e.events,t[3]),h={type:a,start:Object.assign({},c),end:Object.assign({},d)};if(n.add(t[2],0,[["enter",h,e]]),i!==2){const u=e.events[t[2]],f=e.events[t[3]];if(u[1].end=Object.assign({},f[1].end),u[1].type="chunkText",u[1].contentType="text",t[3]>t[2]+1){const g=t[2]+1,m=t[3]-t[2]-1;n.add(g,m,[])}}n.add(t[3]+1,0,[["exit",h,e]])}return s!==void 0&&(r.end=Object.assign({},fC(e.events,s)),n.add(s,0,[["exit",r,e]]),r=void 0),r}function $ne(n,e,t,i,s){const r=[],o=fC(e.events,t);s&&(s.end=Object.assign({},o),r.push(["exit",s,e])),i.end=Object.assign({},o),r.push(["exit",i,e]),n.add(t+1,0,r)}function fC(n,e){const t=n[e],i=t[0]==="enter"?"start":"end";return t[1][i]}const vAe={name:"tasklistCheck",tokenize:yAe};function bAe(){return{text:{91:vAe}}}function yAe(n,e,t){const i=this;return s;function s(l){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?t(l):(n.enter("taskListCheck"),n.enter("taskListCheckMarker"),n.consume(l),n.exit("taskListCheckMarker"),r)}function r(l){return Ps(l)?(n.enter("taskListCheckValueUnchecked"),n.consume(l),n.exit("taskListCheckValueUnchecked"),o):l===88||l===120?(n.enter("taskListCheckValueChecked"),n.consume(l),n.exit("taskListCheckValueChecked"),o):t(l)}function o(l){return l===93?(n.enter("taskListCheckMarker"),n.consume(l),n.exit("taskListCheckMarker"),n.exit("taskListCheck"),a):t(l)}function a(l){return _i(l)?e(l):_n(l)?n.check({tokenize:wAe},e,t)(l):t(l)}}function wAe(n,e,t){return An(n,i,"whitespace");function i(s){return s===null?t(s):e(s)}}function CAe(n){return Ofe([KMe(),nAe(),hAe(n),pAe(),bAe()])}const SAe={};function xAe(n){const e=this,t=n||SAe,i=e.data(),s=i.micromarkExtensions||(i.micromarkExtensions=[]),r=i.fromMarkdownExtensions||(i.fromMarkdownExtensions=[]),o=i.toMarkdownExtensions||(i.toMarkdownExtensions=[]);s.push(CAe(t)),r.push(jMe()),o.push(UMe(t))}const XB=["SUNSET_COMPLETE","SUNRISE_","NO_ACTION_REQUIRED","MEMORY_UPDATED","JOURNAL_"],qne=["#6366f1","#f43f5e","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#ef4444"];function RM(n){return n.split(" ").map(e=>e[0]).join("").toUpperCase().slice(0,2)}function kAe(n){const e=new Date(n),t=new Date;return e.toDateString()===t.toDateString()?e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):e.toLocaleDateString([],{month:"short",day:"numeric"})+" "+e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function LAe({perAgentUnread:n={},onAgentRead:e}){const[t,i]=z.useState(()=>sessionStorage.getItem("chat_selected_agent")??""),s=z.useCallback(ae=>{sessionStorage.setItem("chat_selected_agent",ae),i(ae)},[]),[r,o]=z.useState(null),[a,l]=z.useState(""),[c,d]=z.useState(!1),[h,u]=z.useState(!1),[f,g]=z.useState(""),[m,b]=z.useState(""),[w,S]=z.useState("agents"),{data:x,refresh:C}=Ks("/api/agent-groups",5e3),[L,E]=z.useState(!1),I=z.useRef(null),R=z.useRef(null),M=z.useRef(null),{data:A,refresh:H}=Ks("/api/chat-log",2e3),{employees:F}=Wu(),{activeAgents:B}=P0(),{data:j,refresh:V}=Ks("/api/approvals",2e3),[X,K]=z.useState(null),Q=z.useMemo(()=>{const ae=new Map;for(const ke of j??[]){const Ue=ae.get(ke.agentId)??[];Ue.push(ke),ae.set(ke.agentId,Ue)}return ae},[j]);async function te(ae,ke){K(ae);try{await tn("/api/approve",{id:ae,approved:ke}),V()}catch(Ue){console.error(Ue)}finally{K(null)}}const W=z.useMemo(()=>(F??[]).filter(ke=>ke.agent_key!=="user"),[F]),Z=z.useMemo(()=>{let ae=W;if(m.trim()){const Pt=m.toLowerCase();ae=ae.filter(Dt=>Dt.name.toLowerCase().includes(Pt)||Dt.role.toLowerCase().includes(Pt)||Dt.agent_key.toLowerCase().includes(Pt))}const ke=A??[],Ue=new Map;for(const Pt of ke){if(XB.some(Ri=>(Pt.message??"").trim().startsWith(Ri)))continue;const Dt=Pt.from==="user"?Pt.to:Pt.from,Ei=new Date(Pt.timestamp).getTime();(!Ue.has(Dt)||Ei>Ue.get(Dt))&&Ue.set(Dt,Ei)}return[...ae].sort((Pt,Dt)=>{const Ei=Ue.get(Pt.agent_key)??0;return(Ue.get(Dt.agent_key)??0)-Ei})},[W,m,A]);z.useEffect(()=>{!t&&Z.length>0&&s(Z[0].agent_key)},[Z,t]),z.useEffect(()=>{t&&(e==null||e(t))},[t,e]);const oe=x??[],$=r?oe.find(ae=>ae.id===r)??null:null,be=$!==null;function Le(ae){s(ae),o(null),e==null||e(ae)}function Ve(ae){o(ae)}const Ye=W.find(ae=>ae.agent_key===t),ft=(Ye==null?void 0:Ye.name)??t,re=(Ye==null?void 0:Ye.role)??"",Se=(Ye==null?void 0:Ye.color)||"var(--text-muted)",We=(Ye==null?void 0:Ye.initials)||(Ye?RM(Ye.name):t.slice(0,2).toUpperCase()),Be=(A??[]).filter(ae=>{if(be){if(ae.group_id!==$.id)return!1}else if(!(ae.from==="user"&&ae.to===t)&&!(ae.from===t&&ae.to==="user"))return!1;return!XB.some(ke=>(ae.message??"").trim().startsWith(ke))}),Te=z.useMemo(()=>{if(!f.trim())return Be;const ae=f.toLowerCase();return Be.filter(ke=>ke.message.toLowerCase().includes(ae))},[Be,f]),Et=h?Te:Be,_t=z.useCallback(ae=>(A??[]).filter(ke=>!(ke.from===ae&&ke.to==="user")&&!(ke.from==="user"&&ke.to===ae)?!1:!XB.some(Ue=>(ke.message??"").trim().startsWith(Ue))).slice(-1)[0],[A]);z.useEffect(()=>{var ae;(ae=I.current)==null||ae.scrollIntoView({behavior:"smooth"})},[Be.length,t,r]),z.useEffect(()=>{var ae;h&&((ae=M.current)==null||ae.focus())},[h]);async function Si(){var ke;const ae=a.trim();if(!(!ae||c)){d(!0),l("");try{be?await tn("/api/send-group-message",{group_id:$.id,message:ae}):await tn("/api/send-message",{to:t,message:ae}),await H()}catch{l(ae)}finally{d(!1),(ke=R.current)==null||ke.focus()}}}const bi=be?$.members.some(ae=>B[ae]):B[t]??!1;async function ns(ae,ke,Ue){var Pt;try{const Dt=await tn("/api/agent-groups",{name:ae,members:ke,color:Ue});E(!1),await C(),(Pt=Dt==null?void 0:Dt.group)!=null&&Pt.id&&Ve(Dt.group.id)}catch{}}async function It(ae){try{await yY(`/api/agent-groups/${ae}`),await C(),r===ae&&(o(null),s("pm"))}catch{}}function $t(ae){return W.find(ke=>ke.agent_key===ae)}const Ti=be?$.name:ft,Wn=be?`${$.members.length} members${bi?" — someone is typing...":""}`:bi?"typing...":re,xi=be?$.color:Se,Qt=be?$.name.slice(0,2).toUpperCase():We,Is=be?`Message ${$.name}...`:`Message ${ft.split(" ")[0]}...`;return _.jsxs("div",{style:{display:"flex",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{style:{width:270,flexShrink:0,borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column"},children:[_.jsxs("div",{className:"page-header",style:{paddingBottom:8},children:[_.jsx("div",{className:"page-title",children:"Chat"}),_.jsx("div",{className:"page-subtitle",children:"Direct messages with agents"})]}),_.jsx("div",{style:{display:"flex",gap:0,padding:"0 12px 8px",borderBottom:"1px solid var(--border)"},children:["agents","groups"].map(ae=>_.jsx("button",{onClick:()=>S(ae),style:{flex:1,padding:"6px 0",border:"none",background:"transparent",cursor:"pointer",fontFamily:"inherit",fontSize:12,fontWeight:w===ae?600:400,color:w===ae?"var(--accent)":"var(--text-muted)",borderBottom:w===ae?"2px solid var(--accent)":"2px solid transparent",transition:"all 0.15s"},children:ae==="agents"?"Agents":"Groups"},ae))}),w==="agents"&&_.jsxs(_.Fragment,{children:[_.jsx("div",{style:{padding:"8px 12px 4px"},children:_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:18,padding:"5px 12px"},children:[_.jsx(Rh,{size:13,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("input",{value:m,onChange:ae=>b(ae.target.value),placeholder:"Search agents...",style:{flex:1,border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontSize:12,fontFamily:"inherit"}}),m&&_.jsx("button",{onClick:()=>b(""),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",display:"flex",padding:0},children:_.jsx(Pr,{size:11})})]})}),_.jsx("div",{style:{flex:1,overflowY:"auto",padding:"4px 10px 10px"},children:Z.length===0?_.jsxs("div",{style:{padding:16,textAlign:"center",fontSize:12,color:"var(--text-muted)"},children:['No agents match "',m,'"']}):Z.map(ae=>{const ke=!be&&t===ae.agent_key,Ue=_t(ae.agent_key),Pt=B[ae.agent_key]??!1,Dt=ae.color||"var(--text-muted)",Ei=ae.initials||RM(ae.name),Ri=n[ae.agent_key]??0,fi=(Q.get(ae.agent_key)??[]).length>0;return _.jsxs("button",{onClick:()=>Le(ae.agent_key),style:{width:"100%",display:"flex",alignItems:"center",gap:12,padding:"10px 12px",border:"none",borderRadius:10,background:ke?"var(--bg-hover)":"transparent",cursor:"pointer",textAlign:"left",fontFamily:"inherit",transition:"background 0.08s",marginBottom:2},onMouseEnter:nn=>{ke||(nn.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:nn=>{ke||(nn.currentTarget.style.background="transparent")},children:[_.jsxs("div",{style:{position:"relative",flexShrink:0},children:[_.jsx("div",{style:{width:36,height:36,borderRadius:10,background:Dt,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:600,color:"#fff"},children:Ei}),fi&&_.jsx("span",{style:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:5,background:"var(--orange)",border:"2px solid var(--bg-primary)",boxShadow:"0 0 4px rgba(245,158,11,0.5)"}})]}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:6},children:[_.jsx("span",{style:{fontSize:13,fontWeight:ke?600:500,color:"var(--text-primary)"},children:ae.name.split(" ")[0]}),_.jsxs("span",{style:{display:"flex",alignItems:"center",gap:5,flexShrink:0},children:[Ue&&_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)"},children:kAe(Ue.timestamp)}),Ri>0&&_.jsx("span",{style:{minWidth:16,height:16,borderRadius:8,background:Dt,color:"#fff",fontSize:9,fontWeight:700,lineHeight:"16px",textAlign:"center",padding:"0 4px"},children:Ri>99?"99+":Ri})]})]}),_.jsx("div",{style:{fontSize:12,color:Pt?"var(--green)":"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1},children:Pt?"typing...":Ue?`${Ue.from==="user"?"You: ":""}${Ue.message.slice(0,36)}`:ae.role})]})]},ae.agent_key)})})]}),w==="groups"&&_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"8px 10px 10px",display:"flex",flexDirection:"column",gap:4},children:[_.jsxs("button",{onClick:()=>E(!0),style:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px",border:"1px dashed var(--border)",borderRadius:10,background:"transparent",cursor:"pointer",fontFamily:"inherit",color:"var(--text-muted)",fontSize:13,width:"100%",transition:"all 0.1s"},onMouseEnter:ae=>{ae.currentTarget.style.borderColor="var(--accent)",ae.currentTarget.style.color="var(--accent)"},onMouseLeave:ae=>{ae.currentTarget.style.borderColor="var(--border)",ae.currentTarget.style.color="var(--text-muted)"},children:[_.jsx(yd,{size:16}),"New Group"]}),oe.length===0&&_.jsx("div",{style:{padding:"24px 12px",textAlign:"center",fontSize:12,color:"var(--text-muted)"},children:"No groups yet. Create one to broadcast messages to multiple agents."}),oe.map(ae=>{const ke=r===ae.id;return _.jsxs("button",{onClick:()=>Ve(ae.id),style:{width:"100%",display:"flex",alignItems:"center",gap:12,padding:"10px 12px",border:"none",borderRadius:10,background:ke?"var(--bg-hover)":"transparent",cursor:"pointer",textAlign:"left",fontFamily:"inherit",transition:"background 0.08s"},onMouseEnter:Ue=>{ke||(Ue.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:Ue=>{ke||(Ue.currentTarget.style.background="transparent")},children:[_.jsx("div",{style:{width:36,height:36,borderRadius:10,background:ae.color,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,color:"#fff",flexShrink:0},children:_.jsx(u1,{size:16})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:13,fontWeight:ke?600:500,color:"var(--text-primary)"},children:ae.name}),_.jsxs("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:1},children:[ae.members.length," member",ae.members.length!==1?"s":""]})]}),_.jsx("button",{onClick:Ue=>{Ue.stopPropagation(),It(ae.id)},style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex",borderRadius:6,transition:"color 0.1s"},onMouseEnter:Ue=>{Ue.currentTarget.style.color="var(--red, #ef4444)"},onMouseLeave:Ue=>{Ue.currentTarget.style.color="var(--text-muted)"},title:"Delete group",children:_.jsx(vp,{size:13})})]},ae.id)})]})]}),_.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"14px 24px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:12,flexShrink:0},children:[be?_.jsxs(_.Fragment,{children:[_.jsx("div",{style:{width:32,height:32,borderRadius:9,background:xi,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff"},children:_.jsx(u1,{size:15})}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:Ti}),_.jsxs("div",{style:{fontSize:12,color:bi?"var(--green)":"var(--text-muted)",display:"flex",alignItems:"center",gap:6},children:[Wn,_.jsxs("span",{style:{display:"flex",marginLeft:4},children:[$.members.slice(0,5).map((ae,ke)=>{const Ue=$t(ae);return _.jsx("span",{title:(Ue==null?void 0:Ue.name)??ae,style:{width:18,height:18,borderRadius:5,background:(Ue==null?void 0:Ue.color)||"var(--text-muted)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:8,fontWeight:700,color:"#fff",marginLeft:ke===0?0:-5,border:"1.5px solid var(--bg-primary)",zIndex:5-ke},children:(Ue==null?void 0:Ue.initials)||ae.slice(0,2).toUpperCase()},ae)}),$.members.length>5&&_.jsxs("span",{style:{width:18,height:18,borderRadius:5,background:"var(--bg-hover)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:8,fontWeight:600,color:"var(--text-muted)",marginLeft:-5,border:"1.5px solid var(--bg-primary)"},children:["+",$.members.length-5]})]})]})]})]}):_.jsxs(_.Fragment,{children:[_.jsx("div",{style:{width:32,height:32,borderRadius:9,background:Se,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:600,color:"#fff"},children:We}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:ft}),_.jsx("div",{style:{fontSize:12,color:bi?"var(--green)":"var(--text-muted)"},children:bi?"typing...":re})]})]}),_.jsx("button",{onClick:()=>{u(!h),g("")},style:{background:h?"var(--bg-hover)":"transparent",border:"none",borderRadius:8,padding:6,cursor:"pointer",color:"var(--text-muted)",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.1s"},title:"Search messages",children:h?_.jsx(Pr,{size:16}):_.jsx(Rh,{size:16})})]}),h&&_.jsxs("div",{style:{padding:"8px 24px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx("input",{ref:M,type:"text",value:f,onChange:ae=>g(ae.target.value),placeholder:"Search messages...",style:{width:"100%",padding:"6px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none"},onKeyDown:ae=>{ae.key==="Escape"&&(u(!1),g(""))}}),f&&_.jsxs("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:[Te.length," result",Te.length!==1?"s":""]})]}),(()=>{const ae=be?$.members.flatMap(ke=>Q.get(ke)??[]):Q.get(t)??[];return ae.length===0?null:_.jsx("div",{style:{padding:"8px 24px",borderBottom:"1px solid var(--border)",background:"rgba(245,158,11,0.06)",flexShrink:0},children:ae.map(ke=>{var Ue;return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"4px 0"},children:[_.jsx(vfe,{size:14,style:{color:"var(--orange)",flexShrink:0}}),_.jsxs("span",{style:{flex:1,fontSize:12,color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[_.jsx("span",{style:{fontFamily:"monospace",fontWeight:600,color:"var(--orange)"},children:((Ue=ke.context)==null?void 0:Ue.toolName)||ke.title}),_.jsx("span",{style:{color:"var(--text-muted)",marginLeft:8},children:"requires approval"})]}),_.jsx("button",{onClick:()=>te(ke.id,!0),disabled:X===ke.id,title:"Allow",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,border:"none",padding:0,background:"rgba(61,214,140,0.15)",color:"var(--green)",cursor:"pointer",opacity:X===ke.id?.5:1},children:_.jsx(Mc,{size:13})}),_.jsx("button",{onClick:()=>te(ke.id,!1),disabled:X===ke.id,title:"Deny",style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,borderRadius:6,border:"none",padding:0,background:"rgba(239,68,68,0.12)",color:"var(--red, #ef4444)",cursor:"pointer",opacity:X===ke.id?.5:1},children:_.jsx(Pr,{size:13})})]},ke.id)})})})(),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"20px 24px",display:"flex",flexDirection:"column",gap:4},children:[Et.length===0?_.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",gap:8},children:[_.jsx("div",{style:{width:48,height:48,borderRadius:14,background:xi,opacity:.15,display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx("div",{style:{width:48,height:48,borderRadius:14,background:xi,opacity:.6,display:"flex",alignItems:"center",justifyContent:"center",fontSize:16,fontWeight:700,color:"#fff"},children:be?_.jsx(u1,{size:20}):Qt})}),_.jsx("div",{style:{fontSize:14,fontWeight:500,color:"var(--text-primary)",marginTop:4},children:Ti}),_.jsx("div",{style:{fontSize:13,color:"var(--text-muted)"},children:h&&f?"No matching messages":be?"Send a message to broadcast to all members":"Send a message to start the conversation"})]}):_.jsxs(_.Fragment,{children:[Et.map((ae,ke)=>{var xn;const Ue=ae.from==="user",Pt=Et[ke-1],Dt=ke===0||new Date(ae.timestamp).toDateString()!==new Date((Pt==null?void 0:Pt.timestamp)??0).toDateString(),Ei=Pt&&Pt.from===ae.from,Ri=Ue?null:$t(ae.from),fi=Ue?"var(--accent)":(Ri==null?void 0:Ri.color)||"var(--text-muted)",nn=Ue?"":(Ri==null?void 0:Ri.initials)||RM((Ri==null?void 0:Ri.name)||ae.from),gs=Ue?"":((xn=Ri==null?void 0:Ri.name)==null?void 0:xn.split(" ")[0])||ae.from,an=f.trim()?EAe(ae.message,f):ae.message;return _.jsxs("div",{children:[Dt&&_.jsx("div",{style:{textAlign:"center",margin:"16px 0 12px"},children:_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"3px 12px",borderRadius:6,fontWeight:500},children:new Date(ae.timestamp).toDateString()===new Date().toDateString()?"Today":new Date(ae.timestamp).toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})})}),_.jsxs("div",{style:{display:"flex",justifyContent:Ue?"flex-end":"flex-start",marginTop:Ei?2:10,alignItems:"flex-end",gap:8},children:[!Ue&&be&&_.jsx("div",{style:{width:28,flexShrink:0},children:!Ei&&_.jsx("div",{style:{width:28,height:28,borderRadius:8,background:fi,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:9,fontWeight:700,color:"#fff"},children:nn})}),_.jsxs("div",{style:{maxWidth:"65%",display:"flex",flexDirection:"column",alignItems:Ue?"flex-end":"flex-start"},children:[be&&!Ue&&!Ei&&_.jsx("div",{style:{fontSize:11,fontWeight:600,color:fi,marginBottom:2,paddingInline:4},children:gs}),_.jsxs("div",{className:Ue?void 0:"md-content",style:{padding:"8px 14px 6px",borderRadius:Ue?"14px 14px 4px 14px":"14px 14px 14px 4px",background:Ue?"var(--chat-user-bubble, var(--accent))":"var(--chat-agent-bubble, var(--bg-tertiary))",color:Ue?"var(--chat-user-text, #fff)":"var(--chat-agent-text, var(--text-primary))",fontSize:13,lineHeight:1.55,wordBreak:"break-word"},children:[Ue?an:_.jsx(lH,{remarkPlugins:[xAe],components:{a:({href:ys,children:So})=>_.jsx("a",{href:ys,target:"_blank",rel:"noopener noreferrer",children:So})},children:ae.message}),_.jsx("div",{style:{fontSize:10,lineHeight:1,color:Ue?"var(--chat-ts-user, rgba(255,255,255,0.6))":"var(--chat-ts-agent, var(--text-muted))",textAlign:"right",marginTop:4},children:new Date(ae.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]})]})]})]},ae.id??ke)}),bi&&!h&&_.jsxs("div",{style:{display:"flex",alignItems:"flex-end",gap:8,marginTop:10},children:[_.jsx("div",{style:{width:28,height:28,borderRadius:8,background:xi,opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:9,fontWeight:700,color:"#fff"},children:be?_.jsx(u1,{size:12}):We}),_.jsx("div",{style:{padding:"10px 16px",borderRadius:"14px 14px 14px 4px",background:"var(--bg-tertiary)",display:"flex",gap:4,alignItems:"center"},children:[0,1,2].map(ae=>_.jsx("span",{style:{width:5,height:5,borderRadius:"50%",background:"var(--text-muted)",animation:`pulse-dot 1.2s ease-in-out ${ae*.2}s infinite`}},ae))})]})]}),_.jsx("div",{ref:I})]}),_.jsx("div",{style:{padding:"12px 24px 16px",flexShrink:0},children:_.jsxs("div",{style:{display:"flex",alignItems:"flex-end",gap:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:24,padding:"6px 6px 6px 18px"},children:[_.jsx("textarea",{ref:R,value:a,onChange:ae=>l(ae.target.value),onKeyDown:ae=>{ae.key==="Enter"&&!ae.shiftKey&&(ae.preventDefault(),Si())},placeholder:Is,rows:1,style:{flex:1,border:"none",outline:"none",resize:"none",background:"transparent",color:"var(--text-primary)",fontSize:14,lineHeight:1.5,fontFamily:"inherit",maxHeight:120,overflowY:"auto",padding:"4px 0"},onInput:ae=>{const ke=ae.currentTarget;ke.style.height="auto",ke.style.height=Math.min(ke.scrollHeight,120)+"px"}}),_.jsx("button",{onClick:()=>void Si(),disabled:!a.trim()||c,style:{width:34,height:34,borderRadius:"50%",border:"none",background:a.trim()&&!c?"var(--accent)":"var(--bg-hover)",color:a.trim()&&!c?"#fff":"var(--text-muted)",cursor:a.trim()&&!c?"pointer":"default",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:"background 0.15s"},children:_.jsx(hfe,{size:16,strokeWidth:2.5})})]})})]}),L&&_.jsx(DAe,{agents:W,onClose:()=>E(!1),onCreate:ns})]})}function DAe({agents:n,onClose:e,onCreate:t}){const[i,s]=z.useState(""),[r,o]=z.useState(new Set),[a,l]=z.useState(qne[0]),[c,d]=z.useState(""),h=z.useMemo(()=>{if(!c.trim())return n;const g=c.toLowerCase();return n.filter(m=>m.name.toLowerCase().includes(g)||m.role.toLowerCase().includes(g))},[n,c]);function u(g){o(m=>{const b=new Set(m);return b.has(g)?b.delete(g):b.add(g),b})}function f(){!i.trim()||r.size===0||t(i.trim(),Array.from(r),a)}return _.jsx("div",{style:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.5)",backdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e,children:_.jsxs("div",{style:{background:"var(--bg-primary)",borderRadius:16,width:420,maxHeight:"80vh",display:"flex",flexDirection:"column",border:"1px solid var(--border)",boxShadow:"0 20px 60px rgba(0,0,0,0.3)"},onClick:g=>g.stopPropagation(),children:[_.jsxs("div",{style:{padding:"20px 24px 16px",borderBottom:"1px solid var(--border)"},children:[_.jsx("div",{style:{fontSize:16,fontWeight:600,color:"var(--text-primary)"},children:"Create Group"}),_.jsx("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:2},children:"Broadcast messages to multiple agents at once"})]}),_.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"16px 24px"},children:[_.jsxs("div",{style:{marginBottom:16},children:[_.jsx("label",{style:{fontSize:12,fontWeight:500,color:"var(--text-muted)",display:"block",marginBottom:6},children:"Group name"}),_.jsx("input",{value:i,onChange:g=>s(g.target.value),placeholder:"e.g. Backend Team",autoFocus:!0,style:{width:"100%",padding:"8px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}})]}),_.jsxs("div",{style:{marginBottom:16},children:[_.jsx("label",{style:{fontSize:12,fontWeight:500,color:"var(--text-muted)",display:"block",marginBottom:6},children:"Color"}),_.jsx("div",{style:{display:"flex",gap:6},children:qne.map(g=>_.jsx("button",{onClick:()=>l(g),style:{width:24,height:24,borderRadius:6,border:"none",background:g,cursor:"pointer",outline:a===g?"2px solid var(--text-primary)":"none",outlineOffset:2,display:"flex",alignItems:"center",justifyContent:"center"},children:a===g&&_.jsx(Mc,{size:12,color:"#fff",strokeWidth:3})},g))})]}),_.jsxs("div",{style:{marginBottom:8},children:[_.jsxs("label",{style:{fontSize:12,fontWeight:500,color:"var(--text-muted)",display:"block",marginBottom:6},children:["Members (",r.size," selected)"]}),_.jsx("input",{value:c,onChange:g=>d(g.target.value),placeholder:"Search agents...",style:{width:"100%",padding:"6px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:12,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}})]}),_.jsx("div",{style:{maxHeight:240,overflowY:"auto",border:"1px solid var(--border)",borderRadius:8},children:h.map(g=>{const m=r.has(g.agent_key),b=g.initials||RM(g.name);return _.jsxs("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",cursor:"pointer",borderBottom:"1px solid var(--border)",background:m?"var(--bg-hover)":"transparent",transition:"background 0.08s"},children:[_.jsx("input",{type:"checkbox",checked:m,onChange:()=>u(g.agent_key),style:{accentColor:"var(--accent)"}}),_.jsx("div",{style:{width:26,height:26,borderRadius:7,background:g.color||"var(--text-muted)",opacity:.9,display:"flex",alignItems:"center",justifyContent:"center",fontSize:9,fontWeight:700,color:"#fff",flexShrink:0},children:b}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:13,fontWeight:500,color:"var(--text-primary)"},children:g.name}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)"},children:g.role})]})]},g.agent_key)})})]}),_.jsxs("div",{style:{padding:"16px 24px",borderTop:"1px solid var(--border)",display:"flex",justifyContent:"flex-end",gap:8},children:[_.jsx("button",{onClick:e,style:{padding:"8px 16px",border:"1px solid var(--border)",borderRadius:8,background:"transparent",color:"var(--text-primary)",cursor:"pointer",fontSize:13,fontFamily:"inherit"},children:"Cancel"}),_.jsx("button",{onClick:f,disabled:!i.trim()||r.size===0,style:{padding:"8px 20px",border:"none",borderRadius:8,background:i.trim()&&r.size>0?"var(--accent)":"var(--bg-hover)",color:i.trim()&&r.size>0?"#fff":"var(--text-muted)",cursor:i.trim()&&r.size>0?"pointer":"default",fontSize:13,fontWeight:600,fontFamily:"inherit",transition:"background 0.15s"},children:"Create Group"})]})]})})}function EAe(n,e){if(!e.trim())return n;const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=n.split(new RegExp(`(${t})`,"gi"));return i.length===1?n:_.jsx(_.Fragment,{children:i.map((s,r)=>s.toLowerCase()===e.toLowerCase()?_.jsx("mark",{style:{background:"var(--yellow, #fbbf24)",color:"#000",borderRadius:2,padding:"0 1px"},children:s},r):s)})}function IAe(n){const e=n.split(" ");return e.length>=2?(e[0][0]+e[e.length-1][0]).toUpperCase():n.slice(0,2).toUpperCase()}function TAe(n,e,t,i){return n.map((s,r)=>{const o=2*Math.PI*r/n.length-Math.PI/2;return{key:s.agent_key,name:s.name.split(" ")[0],initials:IAe(s.name),x:e+i*Math.cos(o),y:t+i*Math.sin(o)}})}function RAe(n){const e=new Map;for(const t of n){const i=`${t.from}->${t.to}`,s=new Date(t.ts).getTime(),r=e.get(i);r?(r.lastActivity=Math.max(r.lastActivity,s),r.count++):e.set(i,{from:t.from,to:t.to,lastActivity:s,count:1})}return Array.from(e.values())}function NAe(n){const e=1-n;return 1-e*e*e}function Fw(n){return getComputedStyle(document.documentElement).getPropertyValue(n).trim()}function Bw(n){const e=n.match(/^#([0-9a-f]{6})$/i);if(e){const i=e[1];return[parseInt(i.slice(0,2),16),parseInt(i.slice(2,4),16),parseInt(i.slice(4,6),16)]}const t=n.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);return t?[+t[1],+t[2],+t[3]]:null}function Qo(n,e){return`rgba(${n[0]},${n[1]},${n[2]},${e})`}function Kne(){const n=Bw(Fw("--bg-tertiary"))??[30,30,30],e=Bw(Fw("--text-primary"))??[220,220,220],t=Bw(Fw("--text-muted"))??[140,140,140],i=Bw(Fw("--blue"))??Bw(Fw("--accent"))??[100,160,220],s=Bw(Fw("--border"))??[60,60,60];return{bg:n,text:e,muted:t,accent:i,border:s}}const QB={display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,border:"1px solid var(--border)",background:"var(--bg-card)",color:"var(--text-muted)",cursor:"pointer",padding:0,fontFamily:"inherit",transition:"background 0.15s, color 0.15s"};function MAe(){const n=z.useRef(null),e=z.useRef(null),t=z.useRef(0),i=z.useRef([]),s=z.useRef([]),r=z.useRef(new Set),o=z.useRef(1),a=z.useRef(Kne()),{activeAgents:l}=P0(),{employees:c}=Wu(),{data:d}=Ks("/api/message-flow",3e3),h=c??[],u=d??[];z.useEffect(()=>{r.current=new Set(Object.keys(l).filter(w=>l[w]))},[l]),z.useEffect(()=>{s.current=RAe(u)},[u]),z.useEffect(()=>{const w=setInterval(()=>{a.current=Kne()},2e3);return()=>clearInterval(w)},[]);const f=z.useCallback(()=>{const w=n.current,S=e.current;if(!w||!S)return;const x=S.getBoundingClientRect(),C=window.devicePixelRatio||1;w.width=x.width*C,w.height=x.height*C,w.style.width=`${x.width}px`,w.style.height=`${x.height}px`;const L=x.width/2,E=x.height/2-10,I=Math.min(x.width/2,x.height/2)*.38;i.current=TAe(h,L,E,I)},[h]);z.useEffect(()=>{f();const w=new ResizeObserver(()=>f());return e.current&&w.observe(e.current),()=>w.disconnect()},[f]),z.useEffect(()=>{const w=n.current;if(!w)return;function S(x){x.preventDefault();const C=x.deltaY>0?.92:1.08;o.current=Math.max(.3,Math.min(4,o.current*C))}return w.addEventListener("wheel",S,{passive:!1}),()=>w.removeEventListener("wheel",S)},[]);const g=z.useCallback(()=>{o.current=Math.min(4,o.current*1.3)},[]),m=z.useCallback(()=>{o.current=Math.max(.3,o.current/1.3)},[]),b=z.useCallback(()=>{o.current=1},[]);return z.useEffect(()=>{const w=n.current;if(!w)return;function S(){const x=w.getContext("2d");if(!x)return;const C=window.devicePixelRatio||1,L=w.width/C,E=w.height/C,I=a.current;x.save(),x.scale(C,C),x.clearRect(0,0,L,E);const R=o.current;x.translate(L/2,E/2),x.scale(R,R),x.translate(-L/2,-E/2);const M=Date.now(),A=i.current,H=s.current,F=new Map(A.map(K=>[K.key,K])),B=r.current,j=22,V=2e4,X=new Set;for(const K of H)X.add(`${K.from}:${K.to}`);for(let K=0;K<A.length;K++)for(let Q=K+1;Q<A.length;Q++){const te=A[K],W=A[Q],Z=X.has(`${te.key}:${W.key}`)||X.has(`${W.key}:${te.key}`),oe=(te.x+W.x)/2,$=(te.y+W.y)/2,be=W.x-te.x,Le=W.y-te.y,Ve=Math.sqrt(be*be+Le*Le),Ye=-Le/Ve,ft=be/Ve,re=Ve*(Z?.04:.02);x.beginPath(),x.moveTo(te.x,te.y),x.quadraticCurveTo(oe+Ye*re,$+ft*re,W.x,W.y),x.strokeStyle=Z?Qo(I.muted,.12):Qo(I.border,.08),x.lineWidth=Z?1.2:.5,x.stroke()}for(const K of H){const Q=M-K.lastActivity;if(Q>=V)continue;const te=F.get(K.from),W=F.get(K.to);if(!te||!W)continue;const Z=Math.max(0,1-Q/V),oe=(M-K.lastActivity)%1800/1800,$=NAe(oe),be=W.x-te.x,Le=W.y-te.y,Ve=Math.sqrt(be*be+Le*Le),Ye=-Le/Ve,ft=be/Ve,re=Ve*.04,Se=(te.x+W.x)/2+Ye*re,We=(te.y+W.y)/2+ft*re,Be=$,Te=(1-Be)*(1-Be)*te.x+2*(1-Be)*Be*Se+Be*Be*W.x,Et=(1-Be)*(1-Be)*te.y+2*(1-Be)*Be*We+Be*Be*W.y,_t=Z*(1-oe*.3),Si=x.createRadialGradient(Te,Et,0,Te,Et,18);Si.addColorStop(0,Qo(I.accent,.25*_t)),Si.addColorStop(.5,Qo(I.accent,.06*_t)),Si.addColorStop(1,Qo(I.accent,0)),x.beginPath(),x.arc(Te,Et,18,0,Math.PI*2),x.fillStyle=Si,x.fill(),x.beginPath(),x.arc(Te,Et,2.5,0,Math.PI*2),x.fillStyle=Qo(I.text,.8*_t),x.fill(),x.save(),x.beginPath(),x.moveTo(te.x,te.y),x.quadraticCurveTo(Se,We,Te,Et),x.strokeStyle=Qo(I.accent,.12*_t),x.lineWidth=2,x.stroke(),x.restore()}for(const K of A){const Q=B.has(K.key);if(Q){const te=.5+.5*Math.sin(M/400),W=j+10+4*te,Z=x.createRadialGradient(K.x,K.y,j*.5,K.x,K.y,W);Z.addColorStop(0,Qo(I.accent,.12+.08*te)),Z.addColorStop(.6,Qo(I.accent,.04+.03*te)),Z.addColorStop(1,Qo(I.accent,0)),x.beginPath(),x.arc(K.x,K.y,W,0,Math.PI*2),x.fillStyle=Z,x.fill(),x.beginPath(),x.arc(K.x,K.y,j,0,Math.PI*2),x.fillStyle=Qo(I.bg,.95),x.fill(),x.beginPath(),x.arc(K.x,K.y,j,0,Math.PI*2),x.strokeStyle=Qo(I.accent,.4+.2*te),x.lineWidth=1.5,x.stroke()}else x.beginPath(),x.arc(K.x,K.y,j,0,Math.PI*2),x.fillStyle=Qo(I.muted,.06),x.fill(),x.beginPath(),x.arc(K.x,K.y,j,0,Math.PI*2),x.strokeStyle=Qo(I.border,.3),x.lineWidth=1,x.stroke();x.font="500 11px 'Inter', sans-serif",x.textAlign="center",x.textBaseline="middle",x.fillStyle=Q?Qo(I.text,.85):Qo(I.muted,.4),x.fillText(K.initials,K.x,K.y),x.font="400 10px 'Inter', sans-serif",x.fillStyle=Q?Qo(I.text,.6):Qo(I.muted,.25),x.fillText(K.name,K.x,K.y+j+12)}x.restore(),t.current=requestAnimationFrame(S)}return t.current=requestAnimationFrame(S),()=>cancelAnimationFrame(t.current)},[]),_.jsxs("div",{ref:e,style:{flex:1,position:"relative",overflow:"hidden"},children:[_.jsx("canvas",{ref:n,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"}}),_.jsxs("div",{style:{position:"absolute",top:12,right:12,display:"flex",borderRadius:9,overflow:"hidden",border:"1px solid var(--border)",boxShadow:"var(--shadow)",zIndex:10},children:[_.jsx("button",{onClick:m,title:"Zoom out",style:{...QB,borderRadius:0,border:"none",borderRight:"1px solid var(--border)"},onMouseEnter:w=>{w.currentTarget.style.background="var(--bg-hover)",w.currentTarget.style.color="var(--text-primary)"},onMouseLeave:w=>{w.currentTarget.style.background="var(--bg-card)",w.currentTarget.style.color="var(--text-muted)"},children:_.jsx(wfe,{size:14})}),_.jsx("button",{onClick:b,title:"Fit to view",style:{...QB,borderRadius:0,border:"none",borderRight:"1px solid var(--border)"},onMouseEnter:w=>{w.currentTarget.style.background="var(--bg-hover)",w.currentTarget.style.color="var(--text-primary)"},onMouseLeave:w=>{w.currentTarget.style.background="var(--bg-card)",w.currentTarget.style.color="var(--text-muted)"},children:_.jsx(mDe,{size:14})}),_.jsx("button",{onClick:g,title:"Zoom in",style:{...QB,borderRadius:0,border:"none"},onMouseEnter:w=>{w.currentTarget.style.background="var(--bg-hover)",w.currentTarget.style.color="var(--text-primary)"},onMouseLeave:w=>{w.currentTarget.style.background="var(--bg-card)",w.currentTarget.style.color="var(--text-muted)"},children:_.jsx(yfe,{size:14})})]})]})}function AAe(n){return new Date(n).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function PAe(n,e){for(let t=n.length-1;t>=0;t--)if(n[t].agentId===e)return n[t];return null}function OAe({entry:n,isLast:e,color:t}){const i=n.type==="tool_start",s=n.type==="tool_end",r=n.type==="text",o=n.type==="thinking",a=n.type==="agent_end";let l="",c="";if(i){if(l=n.toolName??"tool",n.toolArgs){const g=Object.entries(n.toolArgs);g.length>0&&(c=g.map(([m,b])=>{const w=typeof b=="string"?b:JSON.stringify(b);return`${m}: ${w&&w.length>50?w.slice(0,47)+"...":w}`}).join(", "))}}else s?(l=`${n.toolName??"tool"} ${n.isError?"failed":"done"}`,n.toolResult&&(c=n.toolResult.length>120?n.toolResult.slice(0,117)+"...":n.toolResult)):r?(l="output",c=n.content.length>200?n.content.slice(0,197)+"...":n.content):o?(l="thinking",c=n.content.length>120?n.content.slice(0,117)+"...":n.content):a&&(l="finished");const d=i?8:a?7:5,h=s?n.isError?"var(--red)":"var(--green)":a?"var(--text-muted)":t,u=i?`2px solid ${t}`:"none",f=i?"transparent":h;return _.jsxs("div",{style:{display:"flex",gap:0,minHeight:24},children:[_.jsxs("div",{style:{width:24,display:"flex",flexDirection:"column",alignItems:"center",flexShrink:0},children:[_.jsx("div",{style:{width:d,height:d,borderRadius:"50%",background:f,border:u,marginTop:5,flexShrink:0,boxShadow:i||r?`0 0 5px ${t}`:"none"}}),!e&&_.jsx("div",{style:{width:1,flex:1,minHeight:6,background:"var(--border)"}})]}),_.jsxs("div",{style:{flex:1,paddingBottom:4,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"baseline",gap:5,flexWrap:"wrap"},children:[_.jsx("span",{style:{fontSize:11,fontWeight:500,color:s&&n.isError?"var(--red)":"var(--text-primary)"},children:l}),_.jsx("span",{style:{fontSize:9,color:"var(--text-muted)",marginLeft:"auto",flexShrink:0},children:AAe(n.timestamp)})]}),c&&_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)",lineHeight:1.4,marginTop:1,fontFamily:r||o?"inherit":"'Cascadia Code', 'Fira Code', monospace",whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:48,overflow:"hidden"},children:c})]})]})}function FAe({name:n,role:e,items:t,active:i,color:s,agentKey:r,todos:o,taskId:a,pendingApprovals:l,onApprovalAction:c}){const d=z.useRef(null),[h,u]=z.useState(""),[f,g]=z.useState(!1),[m,b]=z.useState(null),[w,S]=z.useState(null);async function x(E,I){S(E);try{await tn("/api/approve",{id:E,approved:I}),c()}catch(R){console.error(R)}finally{S(null)}}z.useEffect(()=>{d.current&&(d.current.scrollTop=d.current.scrollHeight)},[t.length]);async function C(){const E=h.trim();if(E){b("steer");try{await tn("/api/steer",{agent_id:r,message:E}),u(""),g(!1)}catch(I){console.error(I)}finally{b(null)}}}async function L(){b("interrupt");try{await tn("/api/interrupt",{agent_id:r,reason:"Interrupted via dashboard"})}catch(E){console.error(E)}finally{b(null)}}return _.jsxs("div",{style:{background:"var(--bg-card)",border:l.length>0?"1px solid var(--orange)":"1px solid var(--border)",borderRadius:8,display:"flex",flexDirection:"column",overflow:"hidden",minHeight:160,maxHeight:360,boxShadow:l.length>0?"0 0 8px rgba(245,158,11,0.15)":"none"},children:[_.jsxs("div",{style:{padding:"7px 12px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[_.jsx("div",{style:{width:7,height:7,borderRadius:"50%",background:i?s:"var(--text-muted)",opacity:i?1:.3,boxShadow:i?`0 0 6px ${s}`:"none"}}),_.jsx("span",{style:{fontSize:12,fontWeight:600,color:s},children:n}),_.jsx("span",{style:{fontSize:10,color:"var(--text-muted)"},children:e}),_.jsx("span",{style:{marginLeft:"auto",fontSize:9,fontWeight:500,color:l.length>0?"var(--orange)":i?"var(--blue)":"var(--text-muted)"},children:l.length>0?"awaiting approval":i?"streaming":"idle"}),i&&_.jsxs(_.Fragment,{children:[_.jsx("button",{onClick:()=>g(!f),title:"Steer agent",style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:5,border:"none",padding:0,background:f?"var(--blue-bg)":"transparent",color:f?"var(--blue)":"var(--text-muted)",cursor:"pointer",transition:"all 0.1s"},children:_.jsx(CDe,{size:11})}),_.jsx("button",{onClick:L,disabled:m==="interrupt",title:"Interrupt agent",style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:5,border:"none",padding:0,background:"transparent",color:"var(--text-muted)",cursor:"pointer",transition:"all 0.1s",opacity:m==="interrupt"?.5:1},onMouseEnter:E=>{E.currentTarget.style.color="var(--red)",E.currentTarget.style.background="var(--red-bg)"},onMouseLeave:E=>{E.currentTarget.style.color="var(--text-muted)",E.currentTarget.style.background="transparent"},children:_.jsx(uLe,{size:11})})]})]}),f&&_.jsxs("div",{style:{display:"flex",gap:6,padding:"6px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx("input",{value:h,onChange:E=>u(E.target.value),onKeyDown:E=>E.key==="Enter"&&C(),placeholder:"Steer message...",autoFocus:!0,style:{flex:1,fontSize:11,padding:"5px 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-tertiary)",color:"var(--text-primary)",fontFamily:"inherit",outline:"none"}}),_.jsx("button",{onClick:C,disabled:m==="steer"||!h.trim(),style:{fontSize:11,padding:"5px 10px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",fontFamily:"inherit",fontWeight:500,opacity:m==="steer"||!h.trim()?.5:1},children:"Send"})]}),l.length>0&&_.jsx("div",{style:{padding:"6px 10px",borderBottom:"1px solid var(--border)",background:"var(--orange-bg)",flexShrink:0},children:l.map(E=>{var I;return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"3px 0"},children:[_.jsx(vfe,{size:12,style:{color:"var(--orange)",flexShrink:0}}),_.jsx("span",{style:{flex:1,fontSize:11,color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:_.jsx("span",{style:{fontFamily:"monospace",fontWeight:600,color:"var(--orange)"},children:((I=E.context)==null?void 0:I.toolName)||E.title})}),_.jsx("button",{onClick:()=>x(E.id,!0),disabled:w===E.id,title:"Allow",style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:5,border:"none",padding:0,background:"rgba(61,214,140,0.15)",color:"var(--green)",cursor:"pointer",opacity:w===E.id?.5:1},children:_.jsx(Mc,{size:12})}),_.jsx("button",{onClick:()=>x(E.id,!1),disabled:w===E.id,title:"Deny",style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:5,border:"none",padding:0,background:"rgba(240,68,68,0.1)",color:"var(--red)",cursor:"pointer",opacity:w===E.id?.5:1},children:_.jsx(Pr,{size:12})})]},E.id)})}),o.length>0&&_.jsxs("div",{style:{padding:"6px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-secondary)",flexShrink:0},children:[_.jsxs("div",{style:{fontSize:9,fontWeight:600,color:"var(--text-muted)",marginBottom:4,textTransform:"uppercase",letterSpacing:.5,display:"flex",justifyContent:"space-between"},children:[_.jsxs("span",{children:[o.filter(E=>E.status==="completed").length,"/",o.length," done"]}),a&&_.jsx("span",{style:{opacity:.6},children:a})]}),o.map(E=>_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"1.5px 0",opacity:E.status==="completed"?.5:1},children:[_.jsx("span",{style:{fontSize:10,lineHeight:1,flexShrink:0,color:E.status==="completed"?"var(--green)":E.status==="in_progress"?s:"var(--text-muted)"},children:E.status==="completed"?"✓":E.status==="in_progress"?"►":"○"}),_.jsx("span",{style:{fontSize:10.5,color:"var(--text-primary)",lineHeight:1.3,textDecoration:E.status==="completed"?"line-through":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:E.content})]},E.id))]}),_.jsx("div",{ref:d,style:{flex:1,overflowY:"auto",padding:"8px 10px 6px",background:"var(--bg-tertiary)"},children:t.length===0&&o.length===0?_.jsx("div",{style:{color:"var(--text-muted)",fontSize:11,padding:"12px 0",textAlign:"center"},children:"No activity yet"}):t.length===0?null:t.map((E,I)=>_.jsx(OAe,{entry:E,isLast:I===t.length-1,color:s},E.id))})]})}function BAe({activity:n,activeAgents:e,agents:t,agentTodos:i}){const{data:s,refresh:r}=Ks("/api/approvals",2e3),o=n.filter(d=>d.type==="text"||d.type==="tool_start"||d.type==="tool_end"||d.type==="thinking"||d.type==="agent_end"),a=new Map;for(const d of o){const h=a.get(d.agentId)??[];h.push(d),a.set(d.agentId,h)}const l=new Map;for(const d of s??[]){const h=l.get(d.agentId)??[];h.push(d),l.set(d.agentId,h)}const c=[...t].sort((d,h)=>{const u=l.has(d.agent_key)?2:0,f=l.has(h.agent_key)?2:0;if(u!==f)return f-u;const g=e[d.agent_key]?1:0,m=e[h.agent_key]?1:0;if(g!==m)return m-g;const b=a.has(d.agent_key)?1:0;return(a.has(h.agent_key)?1:0)-b});return _.jsx("div",{style:{flex:1,overflowY:"auto",padding:"12px 20px 60px",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(340px, 1fr))",gap:10,alignContent:"start"},children:c.map(d=>{var h,u;return _.jsx(FAe,{name:d.name.split(" ")[0],role:d.role,items:a.get(d.agent_key)??[],active:e[d.agent_key]??!1,color:d.color||"var(--text-muted)",agentKey:d.agent_key,todos:((h=i[d.agent_key])==null?void 0:h.todos)??[],taskId:(u=i[d.agent_key])==null?void 0:u.taskId,pendingApprovals:l.get(d.agent_key)??[],onApprovalAction:r},d.agent_key)})})}const DD={w:72,h:36},gd={cols:12,rows:8};function Ea(n,e){const t=gd.rows*DD.w/2+60,i=60+gf;return{x:t+(n-e)*DD.w/2,y:i+(n+e)*DD.h/2}}const gf=80,Ige=(gd.cols+gd.rows)*DD.w/2+140,Tge=(gd.cols+gd.rows)*DD.h/2+180+gf,aL=[{col:1,row:1},{col:2,row:1},{col:1,row:3},{col:2,row:3},{col:5,row:1},{col:6,row:1},{col:7,row:1},{col:5,row:2},{col:6,row:2},{col:7,row:2},{col:9,row:1},{col:10,row:1},{col:9,row:3},{col:10,row:3},{col:5,row:4},{col:6,row:4}],pH={col:0,row:6},Gne=[{col:3,row:0},{col:8,row:0},{col:11,row:0},{col:0,row:4},{col:11,row:4},{col:3,row:6},{col:8,row:6}];function WAe(){const n=Ea(0,0),e=Ea(gd.cols,0),t=Ea(gd.cols,gd.rows),i=Ea(0,gd.rows),s=`${n.x},${n.y} ${e.x},${e.y} ${t.x},${t.y} ${i.x},${i.y}`,r=[];for(let c=0;c<=gd.rows;c++){const d=Ea(0,c),h=Ea(gd.cols,c);r.push(_.jsx("line",{x1:d.x,y1:d.y,x2:h.x,y2:h.y},`r${c}`))}for(let c=0;c<=gd.cols;c++){const d=Ea(c,0),h=Ea(c,gd.rows);r.push(_.jsx("line",{x1:d.x,y1:d.y,x2:h.x,y2:h.y},`c${c}`))}const o=Ea(0,7),a=Ea(0,5.8),l=56;return _.jsxs("svg",{style:{position:"absolute",inset:0,width:Ige,height:Tge,pointerEvents:"none"},children:[_.jsx("polygon",{points:`${n.x},${n.y} ${i.x},${i.y} ${i.x},${i.y-gf} ${n.x},${n.y-gf}`,fill:"#7A7570"}),_.jsx("polygon",{points:`${a.x},${a.y} ${o.x},${o.y} ${o.x},${o.y-l} ${a.x},${a.y-l}`,fill:"#2A2520"}),_.jsx("polygon",{points:`${n.x},${n.y} ${e.x},${e.y} ${e.x},${e.y-gf} ${n.x},${n.y-gf}`,fill:"#908A84"}),_.jsx("line",{x1:n.x,y1:n.y-gf,x2:i.x,y2:i.y-gf,stroke:"#B0A8A0",strokeWidth:"2"}),_.jsx("line",{x1:n.x,y1:n.y-gf,x2:e.x,y2:e.y-gf,stroke:"#C0B8B0",strokeWidth:"2"}),_.jsx("line",{x1:n.x,y1:n.y,x2:i.x,y2:i.y,stroke:"rgba(0,0,0,0.15)",strokeWidth:"1"}),_.jsx("line",{x1:n.x,y1:n.y,x2:e.x,y2:e.y,stroke:"rgba(0,0,0,0.15)",strokeWidth:"1"}),_.jsx("polygon",{points:s,fill:"#C8B89A"}),_.jsx("polygon",{points:s,fill:"none",stroke:"rgba(0,0,0,0.1)",strokeWidth:"1"}),_.jsx("g",{stroke:"rgba(0,0,0,0.07)",strokeWidth:"0.5",children:r})]})}function HAe({col:n,row:e,occupied:t}){const{x:i,y:s}=Ea(n,e),r=56,o=28,a=10,l=t?"#A0906C":"#888880",c=t?"#7A6C52":"#666660",d=t?"#8F8170":"#777770",h=20,u=14,f=6,g=r/2-h/2+3,m=t?"rgba(100,180,255,0.35)":"#1A1A1A";return _.jsx("div",{style:{position:"absolute",left:i-r/2,top:s-o/2-u-f,width:r,height:o+a+u+f,pointerEvents:"none",zIndex:Math.floor(s)},children:_.jsxs("svg",{width:r,height:o+a+u+f,style:{display:"block",overflow:"visible"},children:[_.jsx("ellipse",{cx:r/2,cy:o+a+u+f-2,rx:r/3,ry:4,fill:"rgba(0,0,0,0.1)"}),_.jsx("polygon",{points:`${r/2},${u+f} ${r},${o/2+u+f} ${r/2},${o+u+f} 0,${o/2+u+f}`,fill:l,stroke:"rgba(0,0,0,0.12)",strokeWidth:"0.5"}),_.jsx("polygon",{points:`0,${o/2+u+f} ${r/2},${o+u+f} ${r/2},${o+a+u+f} 0,${o/2+a+u+f}`,fill:c}),_.jsx("polygon",{points:`${r},${o/2+u+f} ${r/2},${o+u+f} ${r/2},${o+a+u+f} ${r},${o/2+a+u+f}`,fill:d}),_.jsx("rect",{x:r/2-2+3,y:u,width:4,height:f,fill:"#3A3A3A",rx:1}),_.jsx("ellipse",{cx:r/2+3,cy:u+f-1,rx:6,ry:2,fill:"#3A3A3A"}),_.jsx("rect",{x:g,y:0,width:h,height:u,rx:1,fill:"#2A2A2A"}),_.jsx("rect",{x:g+1.5,y:1.5,width:h-3,height:u-3,rx:.5,fill:m,className:t?"iso-monitor-active":void 0}),t&&_.jsx("line",{x1:g+2,y1:2,x2:g+h-2,y2:2,stroke:"rgba(150,200,255,0.5)",strokeWidth:"0.5"})]})})}const Yne=["#3D2B1F","#8B4513","#F4C542","#CC3333","#555555","#1A1A1A"];function VAe(n){let e=0;for(let t=0;t<n.length;t++)e=(e<<5)-e+n.charCodeAt(t)|0;return Yne[Math.abs(e)%Yne.length]}function zAe({color:n,walking:e,agentKey:t}){const i=VAe(t);return _.jsx("div",{className:e?"iso-walking":void 0,style:{width:22,height:38,position:"relative"},children:_.jsxs("svg",{width:22,height:38,style:{display:"block",overflow:"visible"},children:[_.jsx("ellipse",{cx:11,cy:36,rx:8,ry:3,fill:"rgba(0,0,0,0.15)"}),_.jsx("rect",{className:e?"iso-leg-l":void 0,x:5,y:27,width:4,height:9,rx:1,fill:"#3A3A4E",style:{transformOrigin:"7px 27px"}}),_.jsx("rect",{className:e?"iso-leg-r":void 0,x:13,y:27,width:4,height:9,rx:1,fill:"#3A3A4E",style:{transformOrigin:"15px 27px"}}),_.jsx("rect",{x:3,y:17,width:16,height:11,rx:2,fill:n}),_.jsx("rect",{className:e?"iso-arm-l":void 0,x:0,y:18,width:3,height:9,rx:1,fill:n,opacity:.85,style:{transformOrigin:"1.5px 18px"}}),_.jsx("rect",{className:e?"iso-arm-r":void 0,x:19,y:18,width:3,height:9,rx:1,fill:n,opacity:.85,style:{transformOrigin:"20.5px 18px"}}),_.jsx("rect",{x:9,y:14,width:4,height:4,fill:"#F0C8A0"}),_.jsx("rect",{x:5,y:5,width:12,height:11,rx:3,fill:"#F0C8A0"}),_.jsx("rect",{x:5,y:4,width:12,height:5,rx:2,fill:i}),_.jsx("rect",{x:8,y:9,width:1.5,height:1.5,rx:.5,fill:"#2A2A2A"}),_.jsx("rect",{x:12.5,y:9,width:1.5,height:1.5,rx:.5,fill:"#2A2A2A"})]})})}function jAe({employee:n,col:e,row:t,walking:i,active:s,bubbleText:r,isToolUse:o}){const{x:a,y:l}=Ea(e,t),c=n.color||"var(--text-muted)";return _.jsxs("div",{style:{position:"absolute",left:a-11,top:l-50,transition:"left 2.5s ease-in-out, top 2.5s ease-in-out",zIndex:Math.floor(l)+1,display:"flex",flexDirection:"column",alignItems:"center"},children:[s&&_.jsx("div",{style:{position:"absolute",bottom:"calc(100% + 4px)",left:"50%",transform:"translateX(-50%)",animation:"iso-bubble-in 0.2s ease-out forwards",maxWidth:130,minWidth:40,background:"var(--bg-card)",border:"1px solid var(--border)",borderLeft:`3px solid ${c}`,borderRadius:"6px 6px 6px 2px",padding:"3px 6px",fontSize:9,lineHeight:"1.3",color:"var(--text-secondary)",fontFamily:o?"monospace":"inherit",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxShadow:"0 2px 6px rgba(0,0,0,0.2)",pointerEvents:"none"},children:r?r.slice(-50).replace(/\n/g," "):_.jsxs("span",{style:{display:"inline-flex",gap:2},children:[_.jsx("span",{className:"office-typing-dot"}),_.jsx("span",{className:"office-typing-dot"}),_.jsx("span",{className:"office-typing-dot"})]})}),_.jsx(zAe,{color:c,walking:i,agentKey:n.agent_key}),_.jsxs("div",{style:{marginTop:3,background:"rgba(0,0,0,0.75)",borderRadius:10,padding:"1px 6px",display:"flex",alignItems:"center",gap:3,border:"1px solid rgba(255,255,255,0.08)"},children:[_.jsx("div",{style:{width:5,height:5,borderRadius:"50%",background:s?c:"rgba(255,255,255,0.25)",boxShadow:s?`0 0 4px ${c}`:"none"}}),_.jsx("span",{style:{fontSize:8,fontWeight:700,color:"#fff",letterSpacing:"0.02em",whiteSpace:"nowrap"},children:n.name.split(" ")[0]})]})]})}function UAe({col:n,row:e}){const{x:t,y:i}=Ea(n+.35,e+.55),s=22,r=11,o=5,a=14;return _.jsx("div",{style:{position:"absolute",left:t-s/2,top:i-a-r/2,width:s,height:a+r+o,pointerEvents:"none",zIndex:Math.floor(i)-1},children:_.jsxs("svg",{width:s,height:a+r+o,style:{display:"block"},children:[_.jsx("line",{x1:3,y1:a+r,x2:3,y2:a+r+o,stroke:"#888890",strokeWidth:1.5}),_.jsx("line",{x1:s-3,y1:a+r,x2:s-3,y2:a+r+o,stroke:"#888890",strokeWidth:1.5}),_.jsx("line",{x1:s/2-4,y1:a+r+1,x2:s/2-4,y2:a+r+o,stroke:"#888890",strokeWidth:1}),_.jsx("line",{x1:s/2+4,y1:a+r+1,x2:s/2+4,y2:a+r+o,stroke:"#888890",strokeWidth:1}),_.jsx("polygon",{points:`${s/2},${a} ${s},${a+r/2} ${s/2},${a+r} 0,${a+r/2}`,fill:"#4A4A5A"}),_.jsx("polygon",{points:`0,${a+r/2} ${s/2},${a+r} ${s/2},${a+r+3} 0,${a+r/2+3}`,fill:"#38383E"}),_.jsx("polygon",{points:`${s},${a+r/2} ${s/2},${a+r} ${s/2},${a+r+3} ${s},${a+r/2+3}`,fill:"#424248"}),_.jsx("rect",{x:2,y:0,width:s-4,height:a,rx:2,fill:"#3A3A44"}),_.jsx("rect",{x:3,y:1,width:s-6,height:a-2,rx:1,fill:"#44444E"})]})})}function $Ae(){const{x:n,y:e}=Ea(pH.col,pH.row),t=20,i=10,s=20;return _.jsx("div",{style:{position:"absolute",left:n-t/2,top:e-s-i/2,width:t,height:i+s+8,pointerEvents:"none",zIndex:Math.floor(e)},children:_.jsxs("svg",{width:t,height:i+s+8,style:{display:"block",overflow:"visible"},children:[_.jsx("circle",{cx:10,cy:-2,r:2,fill:"rgba(255,255,255,0.2)",className:"iso-steam"}),_.jsx("circle",{cx:14,cy:-5,r:1.5,fill:"rgba(255,255,255,0.15)",className:"iso-steam-2"}),_.jsx("polygon",{points:`${t/2},0 ${t},${i/2} ${t/2},${i} 0,${i/2}`,fill:"#5A5A5A"}),_.jsx("polygon",{points:`0,${i/2} ${t/2},${i} ${t/2},${i+s} 0,${i/2+s}`,fill:"#404040"}),_.jsx("polygon",{points:`${t},${i/2} ${t/2},${i} ${t/2},${i+s} ${t},${i/2+s}`,fill:"#4A4A4A"}),_.jsx("rect",{x:t/2+2,y:i/2+3,width:6,height:4,rx:.5,fill:"rgba(0,150,255,0.3)"}),_.jsx("rect",{x:t/2-2,y:i+s-3,width:4,height:3,fill:"#333",rx:.5})]})})}function JB({col:n,row:e}){const{x:t,y:i}=Ea(n,e);return _.jsx("div",{style:{position:"absolute",left:t-10,top:i-28,width:20,height:32,pointerEvents:"none",zIndex:Math.floor(i)},children:_.jsxs("svg",{width:20,height:32,style:{display:"block"},children:[_.jsx("polygon",{points:"5,22 15,22 14,28 6,28",fill:"#8B6914"}),_.jsx("polygon",{points:"4,20 16,20 15,22 5,22",fill:"#A07818"}),_.jsx("ellipse",{cx:10,cy:12,rx:8,ry:7,fill:"#2D6A3F"}),_.jsx("ellipse",{cx:7,cy:8,rx:5,ry:5,fill:"#3D8A50"}),_.jsx("ellipse",{cx:14,cy:10,rx:5,ry:4,fill:"#1F4D2E"}),_.jsx("ellipse",{cx:10,cy:5,rx:4,ry:4,fill:"#4CA060"})]})})}function qAe({col:n,row:e}){const{x:t,y:i}=Ea(n,e),s=44,r=22,o=8,a=[];for(let l=0;l<8;l++){const c=l/8*Math.PI*2-Math.PI/2;a.push(`${s+s*Math.cos(c)},${r+r*Math.sin(c)}`)}return _.jsx("div",{style:{position:"absolute",left:t-s,top:i-r,width:s*2,height:r*2+o,pointerEvents:"none",zIndex:Math.floor(i)},children:_.jsxs("svg",{width:s*2,height:r*2+o,style:{display:"block"},children:[_.jsx("ellipse",{cx:s,cy:r*2+o-2,rx:s-4,ry:6,fill:"rgba(0,0,0,0.08)"}),_.jsx("path",{d:`M ${s-s*Math.cos(Math.PI/8)},${r+r*Math.sin(Math.PI/8)}
|
|
629
629
|
L ${s-s*Math.cos(Math.PI/8)},${r+r*Math.sin(Math.PI/8)+o}
|
|
630
630
|
Q ${s},${r*2+o+4} ${s+s*Math.cos(Math.PI/8)},${r+r*Math.sin(Math.PI/8)+o}
|
|
631
|
-
L ${s+s*Math.cos(Math.PI/8)},${r+r*Math.sin(Math.PI/8)} Z`,fill:"#6B5940"}),_.jsx("polygon",{points:a.join(" "),fill:"#8B7355",stroke:"rgba(0,0,0,0.1)",strokeWidth:"0.5"})]})})}function KAe({col:n,row:e}){const{x:t,y:i}=Ea(n,e),s=52,r=26,o=8,a=14;return _.jsx("div",{style:{position:"absolute",left:t-s/2,top:i-a-r/2,width:s,height:a+r+o,pointerEvents:"none",zIndex:Math.floor(i)},children:_.jsxs("svg",{width:s,height:a+r+o,style:{display:"block"},children:[_.jsx("polygon",{points:`${s/2},0 ${s},${r/2} ${s},${r/2+a} ${s/2},${a} 0,${r/2+a} 0,${r/2}`,fill:"#374151"}),_.jsx("polygon",{points:`${s/2},1 ${s-1},${r/2} ${s-1},${r/2+a-1} ${s/2},${a-1} 1,${r/2+a-1} 1,${r/2}`,fill:"#4A5568"}),_.jsx("polygon",{points:`${s/2},${a} ${s},${r/2+a} ${s/2},${r+a} 0,${r/2+a}`,fill:"#5A6A7E"}),_.jsx("polygon",{points:`0,${r/2+a} ${s/2},${r+a} ${s/2},${r+a+o} 0,${r/2+a+o}`,fill:"#3E4C5E"}),_.jsx("polygon",{points:`${s},${r/2+a} ${s/2},${r+a} ${s/2},${r+a+o} ${s},${r/2+a+o}`,fill:"#4A5A6E"})]})})}function GAe({agents:n,activeAgents:e,tokens:t,activity:i}){const s=z.useMemo(()=>{const C=new Map;return n.forEach((L,E)=>C.set(L.agent_key,E%aL.length)),C},[n]),[r,o]=z.useState(new Map);z.useEffect(()=>{const C=new Map;n.forEach(L=>{const E=aL[s.get(L.agent_key)??0];C.set(L.agent_key,{col:E.col,row:E.row,walking:!1})}),o(C)},[n,s]),z.useEffect(()=>{const C=setInterval(()=>{o(L=>{const E=new Map(L);for(const[I,R]of E){const M=s.get(I)??0,A=aL[M];if(e[I]){R.col!==A.col||R.row!==A.row?E.set(I,{col:A.col,row:A.row,walking:!0}):R.walking&&E.set(I,{...R,walking:!1});continue}if(R.walking)E.set(I,{...R,walking:!1});else if(Math.random()<.2){const H=Math.random(),F=H<.1?pH:H<.5?Gne[Math.floor(Math.random()*Gne.length)]:A;E.set(I,{col:F.col,row:F.row,walking:!0})}}return E})},4e3);return()=>clearInterval(C)},[e,s]);const[a,l]=z.useState(1),[c,d]=z.useState({x:0,y:0}),h=z.useRef(!1),u=z.useRef({x:0,y:0,panX:0,panY:0}),f=z.useRef(null),g=C=>Math.min(3,Math.max(.3,C)),m=z.useCallback(C=>{C.preventDefault();const L=C.deltaY>0?-.1:.1;l(E=>g(E+L))},[]),b=z.useCallback(C=>{var L,E;C.button===0&&(h.current=!0,u.current={x:C.clientX,y:C.clientY,panX:c.x,panY:c.y},(E=(L=C.target).setPointerCapture)==null||E.call(L,C.pointerId))},[c]),w=z.useCallback(C=>{h.current&&d({x:u.current.panX+(C.clientX-u.current.x),y:u.current.panY+(C.clientY-u.current.y)})},[]),S=z.useCallback(()=>{h.current=!1},[]),x=z.useCallback(()=>{l(1),d({x:0,y:0})},[]);return _.jsxs("div",{ref:f,onWheel:m,onPointerDown:b,onPointerMove:w,onPointerUp:S,onPointerLeave:S,style:{flex:1,overflow:"hidden",position:"relative",cursor:h.current?"grabbing":"grab"},children:[_.jsxs("div",{style:{position:"absolute",top:12,right:12,zIndex:20,display:"flex",flexDirection:"column",gap:2,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:8,padding:3,boxShadow:"0 2px 8px rgba(0,0,0,0.2)"},children:[_.jsx("button",{onClick:()=>l(C=>g(C+.15)),title:"Zoom in",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(yfe,{size:14})}),_.jsxs("div",{style:{fontSize:9,textAlign:"center",color:"var(--text-muted)",padding:"1px 0"},children:[Math.round(a*100),"%"]}),_.jsx("button",{onClick:()=>l(C=>g(C-.15)),title:"Zoom out",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(wfe,{size:14})}),_.jsx("button",{onClick:x,title:"Reset view",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(w_,{size:14})})]}),_.jsxs("div",{style:{position:"relative",width:Ige,height:Tge,transform:`translate(${c.x}px, ${c.y}px) scale(${a})`,transformOrigin:"center center",transition:h.current?"none":"transform 0.15s ease-out",margin:"20px auto"},children:[_.jsx(WAe,{}),_.jsx(JB,{col:4,row:0}),_.jsx(JB,{col:11,row:2.5}),_.jsx(JB,{col:0,row:5}),_.jsx(qAe,{col:9,row:5.5}),_.jsx(KAe,{col:2,row:6.5}),_.jsx($Ae,{}),aL.map((C,L)=>{const E=n.some(I=>{const R=r.get(I.agent_key);return R&&R.col===C.col&&R.row===C.row});return _.jsx(HAe,{col:C.col,row:C.row,occupied:E},`d${L}`)}),aL.map((C,L)=>_.jsx(UAe,{col:C.col,row:C.row},`c${L}`)),n.map(C=>{const L=r.get(C.agent_key);if(!L)return null;const E=e[C.agent_key]??!1;let I="",R=!1;if(E){const M=PAe(i,C.agent_key);(M==null?void 0:M.type)==="tool_start"?(I=M.toolName??"tool",R=!0):I=t[C.agent_key]??""}return _.jsx(jAe,{employee:C,col:L.col,row:L.row,walking:L.walking,active:E,bubbleText:I,isToolUse:R},C.agent_key)})]})]})}const YAe=[{id:"live",label:"Live",icon:_.jsx(LY,{size:14})},{id:"network",label:"Network",icon:_.jsx(wEe,{size:14})},{id:"office",label:"Office",icon:_.jsx(y_,{size:14})}];function ZAe({mode:n,setMode:e}){return _.jsx("div",{style:{position:"absolute",bottom:16,left:"50%",transform:"translateX(-50%)",display:"flex",gap:2,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:10,padding:3,zIndex:10,boxShadow:"0 4px 16px rgba(0,0,0,0.25)"},children:YAe.map(t=>{const i=n===t.id;return _.jsxs("button",{onClick:()=>e(t.id),style:{display:"flex",alignItems:"center",gap:5,padding:"5px 12px",borderRadius:8,border:"none",background:i?"var(--bg-hover)":"transparent",color:i?"var(--text-primary)":"var(--text-muted)",fontSize:11,fontWeight:i?500:400,cursor:"pointer",fontFamily:"inherit",transition:"background 0.08s, color 0.08s"},children:[t.icon,t.label]},t.id)})})}function XAe(){const[n,e]=z.useState("live"),{tokens:t,activity:i,connected:s,activeAgents:r,agentTodos:o}=P0(),{employees:a}=Wu(),{data:l}=Ks("/api/message-flow",3e3),c=a??[],d=l??[],h=Object.keys(r).filter(f=>r[f]).length,u=c.length>0?c:Object.keys(t).map(f=>({employee_id:f,name:f,role:"",agent_key:f,status:"available"}));return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},children:[_.jsxs("div",{className:"page-header",children:[_.jsx("h1",{className:"page-title",children:"Live"}),_.jsxs("div",{className:"page-subtitle",children:[s?"Connected":"Disconnected"," · ",h," active"]})]}),n==="live"&&_.jsx(BAe,{activity:i,activeAgents:r,agents:u,agentTodos:o}),n==="network"&&_.jsx(MAe,{}),n==="office"&&_.jsx(GAe,{agents:u,activeAgents:r,tokens:t,activity:i,flow:d}),_.jsx(ZAe,{mode:n,setMode:e})]})}function Ng(n){return n.toLocaleString("en-US")}function Zne(n){return"$"+n.toLocaleString("en-US",{minimumFractionDigits:4,maximumFractionDigits:4})}function xC(n){const e=n>0&&n<1?4:2;return"$"+n.toLocaleString("en-US",{minimumFractionDigits:e,maximumFractionDigits:e})}function Xne(n){const e=Date.now()-new Date(n).getTime(),t=Math.floor(e/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;const i=Math.floor(t/60);return i<24?`${i}h ${t%60}m ago`:`${Math.floor(i/24)}d ago`}function QAe(n,e){return e?"var(--red)":n>=.8?"var(--orange)":n>=.5?"var(--yellow)":"var(--green)"}const Qne="1fr 120px 80px 110px 110px 90px 90px",qR=["Management","Product","Engineering","Analysis","Design","Documentation","Governance"];function JAe(n,e){return e==="none"?()=>0:(t,i)=>{const s=n==="lastActivity"?new Date(t.lastActivity).getTime()-new Date(i.lastActivity).getTime():t[n]-i[n];return e==="asc"?s:-s}}function ePe({on:n,onToggle:e}){return _.jsx("button",{onClick:e,style:{width:36,height:20,borderRadius:10,border:"none",cursor:"pointer",background:n?"var(--green)":"var(--bg-hover)",position:"relative",transition:"background 0.15s",flexShrink:0},children:_.jsx("span",{style:{position:"absolute",top:3,left:n?19:3,width:14,height:14,borderRadius:7,background:"#fff",transition:"left 0.15s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}})})}function Jne({value:n,onChange:e,placeholder:t,wide:i}){const[s,r]=z.useState(n!=null?n.toString():"");return z.useEffect(()=>r(n!=null?n.toString():""),[n]),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[_.jsx("span",{style:{fontSize:13,color:"var(--text-muted)",fontWeight:600},children:"$"}),_.jsx("input",{value:s,onChange:o=>r(o.target.value),onBlur:()=>{const o=parseFloat(s);e(isNaN(o)||o<=0?void 0:o)},placeholder:t??"—",style:{width:i?100:80,padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",textAlign:"right"}})]})}function ese({spend:n,limit:e,pct:t,exceeded:i,height:s=8}){if(!e)return _.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"No limit"});const r=Math.min(t,1);return _.jsxs("div",{style:{flex:1,minWidth:100},children:[_.jsx("div",{style:{height:s,borderRadius:s/2,background:"var(--bg-hover)",overflow:"hidden"},children:_.jsx("div",{style:{height:"100%",borderRadius:s/2,width:`${r*100}%`,background:QAe(t,i),transition:"width 0.4s ease"}})}),_.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginTop:3},children:[_.jsx("span",{style:{fontSize:10,color:i?"var(--red)":"var(--text-muted)",fontWeight:i?700:400},children:i?"EXCEEDED":`${(t*100).toFixed(0)}%`}),_.jsxs("span",{style:{fontSize:10,color:"var(--text-muted)",fontVariantNumeric:"tabular-nums"},children:[xC(n)," / ",xC(e)]})]})]})}function tse({exceeded:n,warning:e}){return n?_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontWeight:700,padding:"3px 10px",borderRadius:5,background:"var(--red-bg)",color:"var(--red)"},children:[_.jsx(XW,{size:11})," Exceeded"]}):e?_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontWeight:700,padding:"3px 10px",borderRadius:5,background:"var(--orange-bg)",color:"var(--orange)"},children:[_.jsx(XW,{size:11})," Warning"]}):_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontWeight:600,padding:"3px 10px",borderRadius:5,background:"var(--green-bg)",color:"var(--green)"},children:[_.jsx(Mc,{size:11})," OK"]})}function tPe(){const{data:n,lastRefresh:e}=Ks("/api/finance",5e3),{employees:t}=Wu(),[i,s]=z.useState(!1),[r,o]=z.useState(!1),[a,l]=z.useState(""),[c,d]=z.useState("list"),[h,u]=z.useState("costUsd"),[f,g]=z.useState("none"),[m,b]=z.useState("usage"),[w,S]=z.useState(null),[x,C]=z.useState(null),[L,E]=z.useState(!1),[I,R]=z.useState(!1),M=z.useCallback(async()=>{try{const re=await fetch("/api/finance/budgets",{credentials:"include"});if(re.ok){const Se=await re.json();S(Se),x||C(Se.config)}}catch{}},[x]);z.useEffect(()=>{M()},[]),z.useEffect(()=>{const re=setInterval(async()=>{try{const Se=await fetch("/api/finance/budgets",{credentials:"include"});Se.ok&&S(await Se.json())}catch{}},1e4);return()=>clearInterval(re)},[]);async function A(){if(x){E(!0);try{await tn("/api/finance/budgets",x),R(!1),await M()}finally{E(!1)}}}const H=n==null?void 0:n.totals,F=(n==null?void 0:n.agents)??[],B=new Map((t??[]).map(re=>[re.agent_key,re])),j=w==null?void 0:w.status;function V(re){h===re?g(Se=>Se==="none"?"desc":Se==="desc"?"asc":"none"):(u(re),g("desc"))}const X=z.useMemo(()=>{let re=[...F];if(a.trim()){const Se=a.toLowerCase();re=re.filter(We=>{const Be=B.get(We.agentId);return We.agentId.toLowerCase().includes(Se)||((Be==null?void 0:Be.name)??"").toLowerCase().includes(Se)||((Be==null?void 0:Be.role)??"").toLowerCase().includes(Se)||(We.model??"").toLowerCase().includes(Se)})}return re.sort(JAe(h,f))},[F,B,a,h,f]),K=z.useMemo(()=>{var Se;const re=new Map;for(const We of X){const Be=((Se=B.get(We.agentId))==null?void 0:Se.department)??"Other";re.has(Be)||re.set(Be,[]),re.get(Be).push(We)}return[...re.entries()].sort(([We],[Be])=>{const Te=qR.indexOf(We),Et=qR.indexOf(Be);return Te!==-1&&Et!==-1?Te-Et:Te!==-1?-1:Et!==-1?1:We.localeCompare(Be)})},[X,B]),Q=Math.max(1,...X.map(re=>re.totalTokens));async function te(){o(!1),s(!0);try{await tn("/api/finance/reset",{})}finally{s(!1)}}function W(re){var Se;return((Se=x==null?void 0:x.departments)==null?void 0:Se[re])??{enabled:!1}}function Z(re,Se){var Be;if(!x)return;const We=((Be=x.departments)==null?void 0:Be[re])??{enabled:!1};C({...x,departments:{...x.departments,[re]:{...We,...Se}}})}function oe(re){var Se;return((Se=x==null?void 0:x.agents)==null?void 0:Se[re])??{enabled:!1}}function $(re,Se){var Be;if(!x)return;const We=((Be=x.agents)==null?void 0:Be[re])??{enabled:!1};C({...x,agents:{...x.agents,[re]:{...We,...Se}}})}function be(re,Se){var Et;const We=B.get(re.agentId),Be=Math.max(2,re.totalTokens/Q*100),Te=j==null?void 0:j.agents[re.agentId];return _.jsxs("div",{style:{borderBottom:Se?"none":"1px solid var(--border)"},children:[_.jsxs("div",{style:{display:"grid",gridTemplateColumns:Qne,gap:8,padding:"10px 14px",alignItems:"center",background:Te!=null&&Te.exceeded?"var(--red-bg)":Te!=null&&Te.warning?"var(--orange-bg)":"transparent"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsxs("div",{style:{width:28,height:28,borderRadius:6,position:"relative",background:"var(--accent)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,color:"#fff",flexShrink:0},children:[re.agentId.slice(0,2).toUpperCase(),(Te==null?void 0:Te.exceeded)&&_.jsx("span",{style:{position:"absolute",top:-3,right:-3,width:8,height:8,borderRadius:4,background:"var(--red)",border:"1.5px solid var(--bg-card)"}})]}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:13,fontWeight:500,color:"var(--text-primary)"},children:((Et=We==null?void 0:We.name)==null?void 0:Et.split(" ")[0])??re.agentId}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)"},children:(We==null?void 0:We.role)??re.agentId})]})]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:re.model??"—"}),_.jsx("div",{style:{textAlign:"right",fontSize:13,fontWeight:500,color:"var(--text-primary)",fontVariantNumeric:"tabular-nums"},children:Ng(re.turns)}),_.jsx("div",{style:{textAlign:"right",fontSize:13,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums"},children:Ng(re.inputTokens)}),_.jsx("div",{style:{textAlign:"right",fontSize:13,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums"},children:Ng(re.outputTokens)}),_.jsx("div",{style:{textAlign:"right",fontSize:13,fontWeight:600,color:Te!=null&&Te.exceeded?"var(--red)":"var(--green)",fontVariantNumeric:"tabular-nums"},children:Zne(re.costUsd)}),_.jsx("div",{style:{textAlign:"right",fontSize:11,color:"var(--text-muted)"},children:Xne(re.lastActivity)})]}),_.jsx("div",{style:{padding:"0 14px 10px"},children:_.jsx("div",{style:{height:4,borderRadius:2,background:"var(--bg-hover)",overflow:"hidden"},children:_.jsx("div",{style:{height:"100%",borderRadius:2,width:`${Be}%`,background:Te!=null&&Te.exceeded?"var(--red)":"var(--accent)",transition:"width 0.3s"}})})})]},re.agentId)}function Le({label:re,colKey:Se,align:We="right"}){const Be=h===Se&&f!=="none";return _.jsxs("button",{onClick:()=>V(Se),style:{display:"flex",alignItems:"center",gap:2,justifyContent:We==="right"?"flex-end":"flex-start",background:"none",border:"none",padding:0,cursor:"pointer",fontFamily:"inherit",fontSize:10,fontWeight:600,color:Be?"var(--accent)":"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"},children:[re,Be?f==="asc"?_.jsx(GW,{size:10}):_.jsx(Ic,{size:10}):_.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",marginLeft:1,opacity:.3,lineHeight:0},children:[_.jsx(GW,{size:8,style:{marginBottom:-3}}),_.jsx(Ic,{size:8})]})]})}function Ve(){return _.jsxs("div",{style:{display:"grid",gridTemplateColumns:Qne,gap:8,padding:"10px 14px",borderBottom:"1px solid var(--border)",fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:[_.jsx("span",{children:"Agent"}),_.jsx("span",{children:"Model"}),_.jsx(Le,{label:"Turns",colKey:"turns"}),_.jsx(Le,{label:"Input Tokens",colKey:"inputTokens"}),_.jsx(Le,{label:"Output Tokens",colKey:"outputTokens"}),_.jsx(Le,{label:"Cost ($)",colKey:"costUsd"}),_.jsx(Le,{label:"Last Active",colKey:"lastActivity"})]})}function Ye({icon:re,name:Se,subtitle:We,lCfg:Be,lStatus:Te,editing:Et,onToggle:_t,onDaily:Si,onMonthly:bi}){return _.jsxs("div",{style:{padding:"14px 20px",display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",background:Te!=null&&Te.exceeded?"var(--red-bg)":Te!=null&&Te.warning?"var(--orange-bg)":"transparent",borderBottom:"1px solid var(--border)"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,minWidth:160},children:[_.jsx("span",{style:{color:"var(--text-muted)"},children:re}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:Se}),We&&_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)"},children:We})]})]}),_.jsx("div",{style:{display:"flex",alignItems:"center",gap:6},children:Et?_.jsx(ePe,{on:Be.enabled,onToggle:_t}):_.jsx("span",{style:{fontSize:11,color:Be.enabled?"var(--green)":"var(--text-muted)",fontWeight:600},children:Be.enabled?"Active":"Off"})}),_.jsxs("div",{style:{minWidth:130},children:[_.jsx("div",{style:{fontSize:9,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",marginBottom:3},children:"Daily"}),Et?_.jsx(Jne,{value:Be.dailyLimit,onChange:Si}):Te&&Be.enabled&&Be.dailyLimit?_.jsx(ese,{spend:Te.dailySpend,limit:Be.dailyLimit,pct:Te.dailyPct,exceeded:Te.exceeded}):_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)"},children:Be.dailyLimit?xC(Be.dailyLimit):"—"})]}),_.jsxs("div",{style:{minWidth:130},children:[_.jsx("div",{style:{fontSize:9,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",marginBottom:3},children:"Monthly"}),Et?_.jsx(Jne,{value:Be.monthlyLimit,onChange:bi}):Te&&Be.enabled&&Be.monthlyLimit?_.jsx(ese,{spend:Te.monthlySpend,limit:Be.monthlyLimit,pct:Te.monthlyPct,exceeded:Te.exceeded}):_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)"},children:Be.monthlyLimit?xC(Be.monthlyLimit):"—"})]}),_.jsx("div",{style:{marginLeft:"auto"},children:Be.enabled&&Te?_.jsx(tse,{exceeded:Te.exceeded,warning:Te.warning}):null})]})}const ft=z.useMemo(()=>{const re=new Set;for(const Se of t??[])Se.department&&re.add(Se.department);for(const Se of Object.keys((j==null?void 0:j.departments)??{}))re.add(Se);return[...re].sort((Se,We)=>{const Be=qR.indexOf(Se),Te=qR.indexOf(We);return Be!==-1&&Te!==-1?Be-Te:Be!==-1?-1:Te!==-1?1:Se.localeCompare(We)})},[t,j]);return _.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"20px 24px"},children:[_.jsxs("div",{className:"page-header",style:{padding:"0 0 16px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsxs("div",{children:[_.jsx("h1",{className:"page-title",children:"Finance"}),_.jsxs("div",{className:"page-subtitle",children:["Token usage, cost tracking & budget limits",e&&_.jsxs("span",{children:[" · ",e.toLocaleTimeString()]})]})]}),_.jsx("button",{onClick:()=>o(!0),disabled:i,style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)"},children:i?"Resetting...":"Reset Data"})]}),H&&_.jsx("div",{style:{display:"flex",gap:8,marginBottom:20,flexWrap:"wrap"},children:[{label:"Total Spent",value:xC(H.totalCostUsd),sub:Zne(H.totalCostUsd),color:"var(--green)"},{label:"Total Tokens",value:Ng(H.totalTokens),sub:`${Ng(H.totalInputTokens)} in / ${Ng(H.totalOutputTokens)} out`,color:"var(--blue)"},{label:"LLM Turns",value:Ng(H.totalTurns),sub:`${F.length} agents`,color:"var(--accent)"},{label:"Session Start",value:new Date(H.sessionStart).toLocaleDateString(),sub:Xne(H.sessionStart),color:"var(--orange)"}].map(re=>_.jsxs("div",{style:{flex:"1 1 140px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:re.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:re.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:re.label}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:2},children:re.sub})]},re.label))}),_.jsx("div",{style:{display:"flex",gap:0,marginBottom:20,borderBottom:"2px solid var(--border)"},children:[{id:"usage",label:"Usage & Costs",icon:_.jsx(Xie,{size:14})},{id:"budgets",label:"Budget Limits",icon:_.jsx(bEe,{size:14})}].map(re=>_.jsxs("button",{onClick:()=>b(re.id),style:{display:"flex",alignItems:"center",gap:6,padding:"10px 20px",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:13,fontWeight:m===re.id?600:400,color:m===re.id?"var(--accent)":"var(--text-muted)",background:"transparent",borderBottom:m===re.id?"2px solid var(--accent)":"2px solid transparent",marginBottom:-2,transition:"color 0.1s"},children:[re.icon," ",re.label,re.id==="budgets"&&(j==null?void 0:j.org.exceeded)&&_.jsx("span",{style:{width:6,height:6,borderRadius:3,background:"var(--red)",flexShrink:0}})]},re.id))}),m==="usage"&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:16,flexWrap:"wrap"},children:[_.jsx("div",{style:{display:"flex",borderRadius:6,overflow:"hidden",border:"1px solid var(--border)",flexShrink:0},children:[["list",Xie,"List"],["department",y_,"Dept"]].map(([re,Se,We])=>_.jsxs("button",{onClick:()=>d(re),title:`${We} view`,style:{display:"flex",alignItems:"center",gap:4,fontSize:12,fontWeight:500,padding:"6px 12px",border:"none",cursor:"pointer",fontFamily:"inherit",background:c===re?"var(--accent)":"transparent",color:c===re?"#fff":"var(--text-muted)",transition:"all 0.08s"},children:[_.jsx(Se,{size:13})," ",We]},re))}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:20,padding:"6px 14px",flexShrink:0},children:[_.jsx(Rh,{size:14,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("input",{value:a,onChange:re=>l(re.target.value),placeholder:"Search agents...",style:{border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontSize:12.5,width:180,fontFamily:"inherit",padding:0}}),a&&_.jsx("button",{onClick:()=>l(""),style:{display:"flex",alignItems:"center",justifyContent:"center",width:14,height:14,border:"none",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",borderRadius:3,padding:0,flexShrink:0},children:_.jsx(Pr,{size:9})})]}),_.jsx("div",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-muted)",fontStyle:"italic"},children:"Costs based on per-model pricing"})]}),_.jsx("div",{style:{marginBottom:20},children:X.length===0?_.jsx("div",{style:{padding:24,textAlign:"center",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,color:"var(--text-muted)",fontSize:13},children:a?"No agents match your search.":"No usage data yet. Agents will appear here once they start processing tasks."}):c==="department"?_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:16},children:K.map(([re,Se])=>{const We=Se.reduce((Et,_t)=>Et+_t.costUsd,0),Be=Se.reduce((Et,_t)=>Et+_t.totalTokens,0),Te=Se.reduce((Et,_t)=>Et+_t.turns,0);return _.jsxs("div",{children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:8,paddingBottom:6,borderBottom:"1px solid var(--border)"},children:[_.jsx(y_,{size:14,style:{color:"var(--text-muted)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:700,color:"var(--text-primary)"},children:re}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5,fontFamily:"monospace"},children:Se.length}),_.jsxs("div",{style:{marginLeft:"auto",display:"flex",gap:14,fontSize:11},children:[_.jsxs("span",{style:{color:"var(--text-muted)"},children:[Ng(Te)," turns"]}),_.jsxs("span",{style:{color:"var(--text-muted)"},children:[Ng(Be)," tokens"]}),_.jsx("span",{style:{color:"var(--green)",fontWeight:600,fontVariantNumeric:"tabular-nums"},children:xC(We)})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[Ve(),Se.map((Et,_t)=>be(Et,_t===Se.length-1))]})]},re)})}):_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[Ve(),X.map((re,Se)=>be(re,Se===X.length-1))]})})]}),m==="budgets"&&_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{flex:1,fontSize:12,color:"var(--text-muted)"},children:"Set spending limits at organization, department, and individual agent level."}),I?_.jsxs("div",{style:{display:"flex",gap:8},children:[_.jsx("button",{onClick:()=>{R(!1),w&&C(w.config)},style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)"},children:"Cancel"}),_.jsxs("button",{onClick:A,disabled:L,style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:600,cursor:"pointer",fontFamily:"inherit",border:"none",background:"var(--accent)",color:"#fff"},children:[_.jsx(Mc,{size:12})," ",L?"Saving...":"Save All"]})]}):_.jsxs("button",{onClick:()=>{R(!0),w&&C(w.config)},style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)"},children:[_.jsx(_fe,{size:12})," Edit Budgets"]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"14px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},children:[_.jsx(Yie,{size:16,style:{color:"var(--accent)"}}),_.jsx("span",{style:{fontSize:15,fontWeight:700,color:"var(--text-primary)"},children:"Organization"}),(j==null?void 0:j.org.enabled)&&_.jsx(tse,{exceeded:j.org.exceeded,warning:j.org.warning})]}),x&&_.jsx(Ye,{icon:_.jsx(Yie,{size:16}),name:"Org-wide Limit",subtitle:"Applies to all agents combined",lCfg:x.org,lStatus:j==null?void 0:j.org,editing:I,onToggle:()=>C({...x,org:{...x.org,enabled:!x.org.enabled}}),onDaily:re=>C({...x,org:{...x.org,dailyLimit:re}}),onMonthly:re=>C({...x,org:{...x.org,monthlyLimit:re}})}),I&&x&&_.jsxs("div",{style:{padding:"10px 20px",display:"flex",alignItems:"center",gap:12},children:[_.jsx("span",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",whiteSpace:"nowrap"},children:"Alert Threshold"}),_.jsx("input",{type:"range",min:10,max:100,step:5,value:Math.round((x.org.alertThreshold??.8)*100),onChange:re=>{const Se=parseInt(re.target.value);C({...x,org:{...x.org,alertThreshold:Math.min(1,Math.max(.1,Se/100))}})},style:{flex:1,maxWidth:160}}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2},children:[_.jsx("input",{type:"text",inputMode:"numeric",value:Math.round((x.org.alertThreshold??.8)*100),onChange:re=>{const Se=parseInt(re.target.value.replace(/\D/g,""));isNaN(Se)||C({...x,org:{...x.org,alertThreshold:Math.min(1,Math.max(.1,Se/100))}})},onBlur:re=>{const Se=parseInt(re.target.value);isNaN(Se)||Se<10?C({...x,org:{...x.org,alertThreshold:.1}}):Se>100&&C({...x,org:{...x.org,alertThreshold:1}})},style:{width:32,padding:"2px 4px",fontSize:13,fontWeight:600,color:"var(--accent)",textAlign:"center",background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:4}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--accent)"},children:"%"})]}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"warn before limit"})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"14px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},children:[_.jsx(y_,{size:16,style:{color:"var(--blue)"}}),_.jsx("span",{style:{fontSize:15,fontWeight:700,color:"var(--text-primary)"},children:"Departments"}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5},children:ft.length})]}),ft.length===0?_.jsx("div",{style:{padding:"20px",color:"var(--text-muted)",fontSize:12,fontStyle:"italic"},children:"No departments found in roster."}):ft.map(re=>{var Be;const Se=W(re),We=(Be=j==null?void 0:j.departments)==null?void 0:Be[re];return _.jsx(Ye,{icon:_.jsx(y_,{size:14}),name:re,subtitle:`${(t??[]).filter(Te=>Te.department===re).length} agents`,lCfg:Se,lStatus:We,editing:I,onToggle:()=>Z(re,{enabled:!Se.enabled}),onDaily:Te=>Z(re,{dailyLimit:Te}),onMonthly:Te=>Z(re,{monthlyLimit:Te})},re)})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"14px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},children:[_.jsx(u1,{size:16,style:{color:"var(--green)"}}),_.jsx("span",{style:{fontSize:15,fontWeight:700,color:"var(--text-primary)"},children:"Agents"}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5},children:F.length})]}),F.length===0?_.jsx("div",{style:{padding:"20px",color:"var(--text-muted)",fontSize:12,fontStyle:"italic"},children:"No agents with usage data yet."}):F.map(re=>{var Te,Et;const Se=B.get(re.agentId),We=oe(re.agentId),Be=(Te=j==null?void 0:j.agents)==null?void 0:Te[re.agentId];return _.jsx(Ye,{icon:_.jsx(lEe,{size:14}),name:((Et=Se==null?void 0:Se.name)==null?void 0:Et.split(" ")[0])??re.agentId,subtitle:Se!=null&&Se.department?`${Se.department} · ${Se.role}`:re.agentId,lCfg:We,lStatus:Be,editing:I,onToggle:()=>$(re.agentId,{enabled:!We.enabled}),onDaily:_t=>$(re.agentId,{dailyLimit:_t}),onMonthly:_t=>$(re.agentId,{monthlyLimit:_t})},re.agentId)})]})]}),r&&_.jsx(sge,{title:"Reset Finance Data",message:"This will clear all token usage and cost data for every agent. This action cannot be undone.",confirmLabel:"Reset Data",destructive:!0,onConfirm:te,onCancel:()=>o(!1)})]})}function iPe(n){const e=Date.now()-new Date(n).getTime();if(e<0){const t=-e;return t<6e4?`in ${Math.round(t/1e3)}s`:t<36e5?`in ${Math.round(t/6e4)}m`:t<864e5?`in ${Math.round(t/36e5)}h`:`in ${Math.round(t/864e5)}d`}return e<6e4?`${Math.round(e/1e3)}s ago`:e<36e5?`${Math.round(e/6e4)}m ago`:e<864e5?`${Math.round(e/36e5)}h ago`:`${Math.round(e/864e5)}d ago`}function nPe(n){return new Date(n).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function sPe(){const[n,e]=z.useState(!1),{data:t,refresh:i}=Ks(`/api/reminders?all=${n}`,5e3),{employees:s}=Wu(),r=h=>{var f;const u=s==null?void 0:s.find(g=>g.agent_key===h);return((f=u==null?void 0:u.name)==null?void 0:f.split(" ")[0])??h},o=h=>{const u=s==null?void 0:s.find(f=>f.agent_key===h);return(u==null?void 0:u.color)??"var(--text-muted)"};async function a(h){await yY(`/api/reminders/${h}`),i()}const l=t??[],c=l.filter(h=>!h.triggered_at),d=l.filter(h=>!!h.triggered_at);return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",children:[_.jsx("h1",{className:"page-title",children:"Reminders"}),_.jsxs("div",{className:"page-subtitle",children:[c.length," pending",d.length>0?` · ${d.length} triggered`:""]})]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 20px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx(KLe,{size:13,style:{color:"var(--text-muted)"}}),_.jsx("button",{onClick:()=>e(!n),style:{fontSize:11,padding:"4px 10px",borderRadius:6,border:"1px solid var(--border)",background:n?"var(--accent)":"var(--bg-tertiary)",color:n?"#fff":"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit"},children:n?"Showing all":"Active only"})]}),_.jsx("div",{style:{flex:1,overflowY:"auto",padding:"12px 20px"},children:l.length===0?_.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",padding:"20px",color:"var(--text-muted)",fontSize:13},children:[_.jsx(KW,{size:32,style:{opacity:.3,marginBottom:12}}),_.jsx("div",{children:"No reminders yet"}),_.jsx("div",{style:{fontSize:11,marginTop:4},children:"Agents can set reminders using the set_reminder tool"})]}):_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:l.map(h=>{const u=!!h.triggered_at,f=new Date(h.scheduled_for).getTime()<=Date.now(),g=o(h.agent_id);return _.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 14px",borderRadius:8,border:"1px solid var(--border)",background:u?"var(--bg-tertiary)":"var(--bg-card)",opacity:u?.6:1},children:[_.jsx("div",{style:{paddingTop:2,flexShrink:0},children:u?_.jsx(cLe,{size:16,style:{color:"var(--green)"}}):f?_.jsx(KW,{size:16,style:{color:"var(--orange, var(--yellow))"}}):_.jsx(CY,{size:16,style:{color:"var(--blue)"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)",marginBottom:3},children:h.message}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10,color:"var(--text-muted)"},children:[_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:3},children:[_.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:g,flexShrink:0}}),r(h.agent_id)]}),_.jsx("span",{style:{color:"var(--border)"},children:"|"}),_.jsxs("span",{children:[u?"Triggered":"Due",": ",nPe(h.scheduled_for)," ","(",iPe(h.scheduled_for),")"]}),_.jsx("span",{style:{color:"var(--border)"},children:"|"}),_.jsx("span",{children:h.reminder_id})]})]}),_.jsx("button",{onClick:()=>a(h.reminder_id),title:"Delete reminder",style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,borderRadius:6,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},onMouseEnter:m=>{m.currentTarget.style.color="var(--red)",m.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:m=>{m.currentTarget.style.color="var(--text-muted)",m.currentTarget.style.background="transparent"},children:_.jsx(vp,{size:13})})]},h.reminder_id)})})})]})}const rPe="modulepreload",oPe=function(n){return"/"+n},ise={},ut=function(e,t,i){let s=Promise.resolve();if(t&&t.length>0){let o=function(c){return Promise.all(c.map(d=>Promise.resolve(d).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));s=o(t.map(c=>{if(c=oPe(c),c in ise)return;ise[c]=!0;const d=c.endsWith(".css"),h=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const u=document.createElement("link");if(u.rel=d?"stylesheet":rPe,d||(u.as="script"),u.crossOrigin="",u.href=c,l&&u.setAttribute("nonce",l),document.head.appendChild(u),d)return new Promise((f,g)=>{u.addEventListener("load",f),u.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${c}`)))})}))}function r(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return s.then(o=>{for(const a of o||[])a.status==="rejected"&&r(a.reason);return e().catch(r)})};var YY=ofe();const e7={files:{label:"Files & Storage",color:"var(--green)"},"dev-tools":{label:"Dev Tools",color:"var(--accent)"},browser:{label:"Browser & Web",color:"var(--blue)"},search:{label:"Search",color:"var(--orange)"},database:{label:"Database",color:"var(--purple)"},productivity:{label:"Productivity",color:"var(--yellow)"},cloud:{label:"Cloud & APIs",color:"var(--blue)"},design:{label:"Design & UI",color:"var(--pink, var(--red))"},communication:{label:"Communication",color:"var(--blue)"},monitoring:{label:"Monitoring",color:"var(--red)"},ai:{label:"AI & Reasoning",color:"var(--accent)"},marketing:{label:"Marketing",color:"var(--green)"},other:{label:"Other",color:"var(--text-muted)"}},qE=[{id:"filesystem",name:"Filesystem",description:"Secure file operations — read, write, search, and navigate directories with configurable access controls.",category:"files",package:"@modelcontextprotocol/server-filesystem",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem","./"],envVars:{},tools:["read_text_file","write_file","edit_file","list_directory","search_files","directory_tree","move_file"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem",iconDomain:"github.com"},{id:"google-drive",name:"Google Drive",description:"Search, read, and manage files in Google Drive — docs, sheets, slides, and shared drives.",category:"files",package:"@anthropic/google-drive-mcp",command:"npx",args:["-y","@anthropic/google-drive-mcp"],envVars:{GOOGLE_CLIENT_ID:"your-client-id",GOOGLE_CLIENT_SECRET:"your-client-secret"},tools:["search_files","read_file","list_files","get_file_metadata"],docsUrl:"https://github.com/anthropics/google-drive-mcp",iconDomain:"drive.google.com"},{id:"github",name:"GitHub",description:"GitHub's official MCP server — repos, issues, PRs, Actions, code security, and more.",category:"dev-tools",package:"ghcr.io/github/github-mcp-server",command:"docker",args:["run","-i","--rm","-e","GITHUB_PERSONAL_ACCESS_TOKEN","ghcr.io/github/github-mcp-server"],envVars:{GITHUB_PERSONAL_ACCESS_TOKEN:"ghp_xxxxxxxxxxxx"},tools:["get_file_contents","create_or_update_file","create_issue","create_pull_request","search_code","list_commits"],docsUrl:"https://github.com/github/github-mcp-server",iconDomain:"github.com"},{id:"gitlab",name:"GitLab",description:"Interact with GitLab — repos, merge requests, issues, pipelines, and CI/CD configuration.",category:"dev-tools",package:"@modelcontextprotocol/server-gitlab",command:"npx",args:["-y","@modelcontextprotocol/server-gitlab"],envVars:{GITLAB_PERSONAL_ACCESS_TOKEN:"glpat-xxxxxxxxxxxx",GITLAB_API_URL:"https://gitlab.com/api/v4"},tools:["create_or_update_file","search_repositories","create_issue","create_merge_request","get_file_contents"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/gitlab",iconDomain:"gitlab.com"},{id:"git",name:"Git",description:"Read, search, and manipulate local Git repositories — status, diff, commit, branch, and log.",category:"dev-tools",package:"mcp-server-git",command:"uvx",args:["mcp-server-git","--repository","./"],envVars:{},tools:["git_status","git_diff_unstaged","git_diff_staged","git_commit","git_add","git_log","git_create_branch"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/git",iconDomain:"git-scm.com"},{id:"docker",name:"Docker",description:"Complete Docker management — containers, images, networks, and volumes via Docker socket.",category:"dev-tools",package:"@thelord/mcp-server-docker-npx",command:"npx",args:["-y","@thelord/mcp-server-docker-npx"],envVars:{},tools:["list_containers","create_container","start_container","stop_container","container_logs","list_images","pull_image"],docsUrl:"https://www.npmjs.com/package/@thelord/mcp-server-docker-npx",iconDomain:"docker.com"},{id:"sentry",name:"Sentry",description:"Connect to Sentry for error tracking — list projects, retrieve issues, analyze events, root cause analysis.",category:"dev-tools",package:"@sentry/mcp-server",command:"npx",args:["-y","@sentry/mcp-server"],envVars:{},tools:["list_projects","get_issue_details","get_event","search_errors"],docsUrl:"https://github.com/getsentry/sentry-mcp-stdio",iconDomain:"sentry.io"},{id:"vercel",name:"Vercel",description:"Manage Vercel deployments, projects, domains, and environment variables from your AI workflow.",category:"dev-tools",package:"@vercel/mcp",command:"npx",args:["-y","@vercel/mcp"],envVars:{VERCEL_TOKEN:"your-vercel-token"},tools:["list_projects","get_deployments","create_deployment","get_domains","set_env_var"],docsUrl:"https://vercel.com/docs/mcp",iconDomain:"vercel.com"},{id:"e2b",name:"E2B Code Sandbox",description:"Execute code in secure cloud sandboxes — Python, JS, shell. Isolated environments with file system access.",category:"dev-tools",package:"@e2b/mcp-server",command:"npx",args:["-y","@e2b/mcp-server"],envVars:{E2B_API_KEY:"e2b_xxxxxxxxxxxx"},tools:["run_code","install_packages","read_file","write_file","list_files"],docsUrl:"https://github.com/e2b-dev/mcp-server",iconDomain:"e2b.dev"},{id:"kubernetes",name:"Kubernetes",description:"Manage Kubernetes clusters — pods, deployments, services, logs, and kubectl operations.",category:"dev-tools",package:"mcp-server-kubernetes",command:"npx",args:["-y","mcp-server-kubernetes"],envVars:{},tools:["get_pods","get_deployments","get_services","get_logs","apply_manifest","delete_resource"],docsUrl:"https://github.com/Flux159/mcp-server-kubernetes",iconDomain:"kubernetes.io"},{id:"playwright",name:"Playwright",description:"Browser automation by Microsoft — navigate, click, type, screenshot, and extract data from web pages.",category:"browser",package:"@playwright/mcp",command:"npx",args:["-y","@playwright/mcp@latest"],envVars:{},tools:["browser_navigate","browser_click","browser_type","browser_snapshot","browser_take_screenshot","browser_evaluate"],docsUrl:"https://github.com/microsoft/playwright-mcp",iconDomain:"playwright.dev"},{id:"fetch",name:"Fetch",description:"Fetch web content and convert HTML to markdown for efficient LLM consumption.",category:"browser",package:"@modelcontextprotocol/server-fetch",command:"npx",args:["-y","@modelcontextprotocol/server-fetch"],envVars:{},tools:["fetch"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",iconDomain:"github.com"},{id:"puppeteer",name:"Puppeteer",description:"Browser automation via Puppeteer — navigate, click, fill forms, screenshot, and execute JavaScript.",category:"browser",package:"@modelcontextprotocol/server-puppeteer",command:"npx",args:["-y","@modelcontextprotocol/server-puppeteer"],envVars:{},tools:["puppeteer_navigate","puppeteer_screenshot","puppeteer_click","puppeteer_fill","puppeteer_evaluate"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/puppeteer",iconDomain:"pptr.dev"},{id:"browserbase",name:"Browserbase",description:"Cloud browser infrastructure — headless browsers with stealth mode, proxy rotation, and CAPTCHA solving.",category:"browser",package:"@browserbasehq/mcp-server-browserbase",command:"npx",args:["-y","@browserbasehq/mcp-server-browserbase"],envVars:{BROWSERBASE_API_KEY:"bb_xxxxxxxxxxxx",BROWSERBASE_PROJECT_ID:"your-project-id"},tools:["create_session","navigate","screenshot","get_content","click","type"],docsUrl:"https://github.com/browserbase/mcp-server-browserbase",iconDomain:"browserbase.com"},{id:"firecrawl",name:"Firecrawl",description:"Web scraping and crawling — extract clean markdown from any website, sitemap crawling, structured data.",category:"browser",package:"@mendable/firecrawl-mcp-server",command:"npx",args:["-y","@mendable/firecrawl-mcp-server"],envVars:{FIRECRAWL_API_KEY:"fc-xxxxxxxxxxxx"},tools:["scrape_url","crawl_url","search","extract"],docsUrl:"https://github.com/mendableai/firecrawl-mcp-server",iconDomain:"firecrawl.dev"},{id:"brave-search",name:"Brave Search",description:"Web search, local search, image/video/news search via the Brave Search API.",category:"search",package:"@brave/brave-search-mcp-server",command:"npx",args:["-y","@brave/brave-search-mcp-server"],envVars:{BRAVE_API_KEY:"BSA_xxxxxxxxxxxx"},tools:["brave_web_search","brave_local_search","brave_image_search","brave_news_search"],docsUrl:"https://github.com/brave/brave-search-mcp-server",iconDomain:"brave.com"},{id:"exa",name:"Exa",description:"AI-powered web search, company research, code search, and URL content extraction.",category:"search",package:"exa-mcp-server",command:"npx",args:["-y","exa-mcp-server"],envVars:{EXA_API_KEY:"exa-xxxxxxxxxxxx"},tools:["web_search_exa","get_code_context_exa","company_research","crawling"],docsUrl:"https://github.com/exa-labs/exa-mcp-server",iconDomain:"exa.ai"},{id:"tavily",name:"Tavily",description:"AI-optimized search engine — real-time web search with answer extraction and source citation.",category:"search",package:"tavily-mcp",command:"npx",args:["-y","tavily-mcp"],envVars:{TAVILY_API_KEY:"tvly-xxxxxxxxxxxx"},tools:["search","extract","get_search_context"],docsUrl:"https://github.com/tavily-ai/tavily-mcp",iconDomain:"tavily.com"},{id:"perplexity",name:"Perplexity",description:"AI search with citations — ask complex questions and get researched answers with source links.",category:"search",package:"perplexity-mcp",command:"npx",args:["-y","perplexity-mcp"],envVars:{PERPLEXITY_API_KEY:"pplx-xxxxxxxxxxxx"},tools:["perplexity_search","perplexity_ask"],docsUrl:"https://github.com/ppl-ai/perplexity-mcp",iconDomain:"perplexity.ai"},{id:"postgres",name:"PostgreSQL",description:"Read-only access to PostgreSQL databases — schema inspection and safe query execution.",category:"database",package:"@modelcontextprotocol/server-postgres",command:"npx",args:["-y","@modelcontextprotocol/server-postgres","postgresql://localhost:5432/mydb"],envVars:{},tools:["query"],docsUrl:"https://github.com/modelcontextprotocol/servers",iconDomain:"postgresql.org"},{id:"sqlite",name:"SQLite",description:"SQLite database management — query, create tables, inspect schemas, and full CRUD operations.",category:"database",package:"mcp-server-sqlite-npx",command:"npx",args:["-y","mcp-server-sqlite-npx","./data.sqlite"],envVars:{},tools:["sqlite_get_catalog","sqlite_execute"],docsUrl:"https://github.com/johnnyoshika/mcp-server-sqlite-npx",iconDomain:"sqlite.org"},{id:"mysql",name:"MySQL",description:"Connect to MySQL/MariaDB databases — execute queries, inspect schemas, and manage tables.",category:"database",package:"@benborla29/mcp-server-mysql",command:"npx",args:["-y","@benborla29/mcp-server-mysql"],envVars:{MYSQL_HOST:"localhost",MYSQL_PORT:"3306",MYSQL_USER:"root",MYSQL_PASSWORD:"password",MYSQL_DATABASE:"mydb"},tools:["query","list_tables","describe_table"],docsUrl:"https://www.npmjs.com/package/@benborla29/mcp-server-mysql",iconDomain:"mysql.com"},{id:"mongodb",name:"MongoDB",description:"Access MongoDB databases — query collections, aggregate data, inspect schemas, and manage documents.",category:"database",package:"mcp-mongo-server",command:"npx",args:["-y","mcp-mongo-server"],envVars:{MONGO_URI:"mongodb://localhost:27017/mydb"},tools:["find","aggregate","insert","update","delete","list_collections"],docsUrl:"https://github.com/kiliczsh/mcp-mongo-server",iconDomain:"mongodb.com"},{id:"redis",name:"Redis (Upstash)",description:"Interact with Redis — get/set keys, manage lists, sets, hashes, and sorted sets. Works with Upstash serverless Redis.",category:"database",package:"@upstash/mcp-server",command:"npx",args:["-y","@upstash/mcp-server"],envVars:{UPSTASH_REDIS_REST_URL:"https://...",UPSTASH_REDIS_REST_TOKEN:"AX..."},tools:["redis_get","redis_set","redis_del","redis_keys","redis_hgetall","redis_lpush"],docsUrl:"https://github.com/upstash/mcp-server",iconDomain:"redis.io"},{id:"neon",name:"Neon",description:"Serverless Postgres by Neon — create databases, branches, run migrations, and execute queries instantly.",category:"database",package:"@neondatabase/mcp-server-neon",command:"npx",args:["-y","@neondatabase/mcp-server-neon"],envVars:{NEON_API_KEY:"neon-xxxxxxxxxxxx"},tools:["create_project","create_branch","run_sql","list_databases","get_connection_string"],docsUrl:"https://github.com/neondatabase/mcp-server-neon",iconDomain:"neon.tech"},{id:"supabase",name:"Supabase",description:"Manage Supabase projects — database queries, auth, storage, edge functions, and real-time subscriptions.",category:"database",package:"@supabase/mcp-server",command:"npx",args:["-y","@supabase/mcp-server","--supabase-url=YOUR_URL","--supabase-key=YOUR_KEY"],envVars:{},tools:["execute_sql","list_tables","get_schema","manage_storage","list_functions"],docsUrl:"https://github.com/supabase/mcp-server",iconDomain:"supabase.com"},{id:"qdrant",name:"Qdrant",description:"Vector database for AI — store, search, and manage embeddings. Semantic search and RAG pipelines.",category:"database",package:"@qdrant/mcp-server-qdrant",command:"npx",args:["-y","@qdrant/mcp-server-qdrant"],envVars:{QDRANT_URL:"http://localhost:6333",QDRANT_API_KEY:"your-api-key"},tools:["store_memory","find_similar","list_collections","create_collection"],docsUrl:"https://github.com/qdrant/mcp-server-qdrant",iconDomain:"qdrant.tech"},{id:"notion",name:"Notion",description:"Official Notion MCP — search, create, and update pages, databases, and blocks in your workspace.",category:"productivity",package:"@notionhq/notion-mcp-server",command:"npx",args:["-y","@notionhq/notion-mcp-server"],envVars:{NOTION_API_KEY:"ntn_xxxxxxxxxxxx"},tools:["notion_search","notion_get_page","notion_query_database","notion_create_page","notion_update_page"],docsUrl:"https://github.com/makenotion/notion-mcp-server",iconDomain:"notion.so"},{id:"linear",name:"Linear",description:"Interact with Linear project management — search, create, and update issues, projects, and teams.",category:"productivity",package:"mcp-remote",command:"npx",args:["-y","mcp-remote","https://mcp.linear.app/mcp"],envVars:{},tools:["search_issues","create_issue","update_issue","get_teams","get_my_issues"],docsUrl:"https://linear.app/docs/mcp",iconDomain:"linear.app"},{id:"todoist",name:"Todoist",description:"Manage tasks in Todoist — create, complete, and organize tasks, projects, and labels.",category:"productivity",package:"todoist-mcp-server",command:"npx",args:["-y","todoist-mcp-server"],envVars:{TODOIST_API_TOKEN:"your-api-token"},tools:["get_tasks","create_task","complete_task","get_projects","create_project"],docsUrl:"https://www.npmjs.com/package/todoist-mcp-server",iconDomain:"todoist.com"},{id:"google-calendar",name:"Google Calendar",description:"Read and manage Google Calendar events — list, create, update, and delete events across calendars.",category:"productivity",package:"@anthropic/google-calendar-mcp",command:"npx",args:["-y","@anthropic/google-calendar-mcp"],envVars:{GOOGLE_CLIENT_ID:"your-client-id",GOOGLE_CLIENT_SECRET:"your-client-secret"},tools:["list_events","create_event","update_event","delete_event","list_calendars"],docsUrl:"https://github.com/anthropics/google-calendar-mcp",iconDomain:"calendar.google.com"},{id:"obsidian",name:"Obsidian",description:"Read, search, and manage notes in your Obsidian vault — create, edit, link, and search across notes.",category:"productivity",package:"obsidian-mcp",command:"npx",args:["-y","obsidian-mcp","--vault-path=/path/to/vault"],envVars:{},tools:["read_note","write_note","search_notes","list_notes","get_backlinks"],docsUrl:"https://github.com/smithery-ai/obsidian-mcp",iconDomain:"obsidian.md"},{id:"jira",name:"Jira",description:"Interact with Atlassian Jira — search issues, create tickets, update status, and manage sprints.",category:"productivity",package:"mcp-server-atlassian",command:"npx",args:["-y","mcp-server-atlassian","--jira"],envVars:{JIRA_URL:"https://your-domain.atlassian.net",JIRA_EMAIL:"you@example.com",JIRA_API_TOKEN:"your-api-token"},tools:["search_issues","get_issue","create_issue","update_issue","list_projects","get_sprint"],docsUrl:"https://www.npmjs.com/package/mcp-server-atlassian",iconDomain:"atlassian.com"},{id:"airtable",name:"Airtable",description:"Read and manage Airtable bases — list records, create, update, and query tables and views.",category:"productivity",package:"@airtable/mcp-server",command:"npx",args:["-y","@airtable/mcp-server"],envVars:{AIRTABLE_API_KEY:"pat_xxxxxxxxxxxx"},tools:["list_bases","list_records","create_record","update_record","search_records"],docsUrl:"https://github.com/Airtable/mcp-server",iconDomain:"airtable.com"},{id:"slack",name:"Slack",description:"Interact with Slack workspaces — list channels, read/post messages, search, manage threads.",category:"communication",package:"@modelcontextprotocol/server-slack",command:"npx",args:["-y","@modelcontextprotocol/server-slack"],envVars:{SLACK_BOT_TOKEN:"xoxb-xxxxxxxxxxxx",SLACK_TEAM_ID:"T00000000"},tools:["list_channels","post_message","reply_to_thread","get_channel_history","search_messages"],docsUrl:"https://github.com/modelcontextprotocol/servers",iconDomain:"slack.com"},{id:"discord-mcp",name:"Discord",description:"Read and send messages in Discord — manage channels, threads, and server interactions.",category:"communication",package:"mcp-server-discord",command:"npx",args:["-y","mcp-server-discord"],envVars:{DISCORD_TOKEN:"your-bot-token"},tools:["send_message","read_messages","list_channels","list_guilds","create_thread"],docsUrl:"https://www.npmjs.com/package/mcp-server-discord",iconDomain:"discord.com"},{id:"email-resend",name:"Resend (Email)",description:"Send transactional emails via Resend — HTML emails, templates, attachments, and delivery tracking.",category:"communication",package:"mcp-server-resend",command:"npx",args:["-y","mcp-server-resend"],envVars:{RESEND_API_KEY:"re_xxxxxxxxxxxx"},tools:["send_email","list_emails","get_email"],docsUrl:"https://github.com/resendlabs/mcp-server-resend",iconDomain:"resend.com"},{id:"twilio",name:"Twilio",description:"Send and receive SMS, make calls, and manage phone numbers via the Twilio API.",category:"communication",package:"twilio-mcp-server",command:"npx",args:["-y","twilio-mcp-server"],envVars:{TWILIO_ACCOUNT_SID:"AC...",TWILIO_AUTH_TOKEN:"your-auth-token",TWILIO_PHONE_NUMBER:"+1234567890"},tools:["send_sms","make_call","list_messages","get_phone_numbers"],docsUrl:"https://www.npmjs.com/package/twilio-mcp-server",iconDomain:"twilio.com"},{id:"cloudflare",name:"Cloudflare",description:"Access the entire Cloudflare API (2,500+ endpoints) — DNS, Workers, R2, Zero Trust, and more.",category:"cloud",package:"@cloudflare/mcp-server-cloudflare",command:"npx",args:["-y","@cloudflare/mcp-server-cloudflare"],envVars:{},tools:["search","execute"],docsUrl:"https://github.com/cloudflare/mcp-server-cloudflare",iconDomain:"cloudflare.com"},{id:"stripe",name:"Stripe",description:"Integrate with Stripe APIs — manage customers, products, payments, subscriptions, and invoices.",category:"cloud",package:"@stripe/mcp",command:"npx",args:["-y","@stripe/mcp","--tools=all","--api-key=YOUR_STRIPE_KEY"],envVars:{},tools:["customers.create","customers.read","products.create","invoices.create","payment_intents.create"],docsUrl:"https://docs.stripe.com/mcp",iconDomain:"stripe.com"},{id:"google-maps",name:"Google Maps",description:"Location services — geocoding, place search, directions, distance matrix, and elevation data.",category:"cloud",package:"@modelcontextprotocol/server-google-maps",command:"npx",args:["-y","@modelcontextprotocol/server-google-maps"],envVars:{GOOGLE_MAPS_API_KEY:"AIza_xxxxxxxxxxxx"},tools:["maps_geocode","maps_search_places","maps_directions","maps_distance_matrix","maps_elevation"],docsUrl:"https://github.com/modelcontextprotocol/servers",iconDomain:"maps.google.com"},{id:"aws",name:"AWS",description:"Interact with AWS services — S3, Lambda, EC2, DynamoDB, CloudWatch, and more via the AWS SDK.",category:"cloud",package:"mcp-server-aws",command:"npx",args:["-y","mcp-server-aws"],envVars:{AWS_ACCESS_KEY_ID:"AKIA...",AWS_SECRET_ACCESS_KEY:"your-secret",AWS_REGION:"us-east-1"},tools:["invoke_lambda","list_s3_buckets","describe_instances","get_cloudwatch_metrics","query_dynamodb"],docsUrl:"https://www.npmjs.com/package/mcp-server-aws",iconDomain:"aws.amazon.com"},{id:"shopify",name:"Shopify",description:"Manage your Shopify store — products, orders, inventory, customers, and analytics via the Admin API.",category:"cloud",package:"@shopify/dev-mcp",command:"npx",args:["-y","@shopify/dev-mcp"],envVars:{},tools:["search_products","get_orders","manage_inventory","get_customers","get_analytics"],docsUrl:"https://github.com/Shopify/dev-mcp",iconDomain:"shopify.com"},{id:"grafana",name:"Grafana",description:"Query Grafana dashboards, datasources, and alerts — Prometheus, Loki, and infrastructure monitoring.",category:"monitoring",package:"@grafana/mcp-server",command:"npx",args:["-y","@grafana/mcp-server"],envVars:{GRAFANA_URL:"http://localhost:3000",GRAFANA_API_KEY:"your-api-key"},tools:["search_dashboards","query_prometheus","query_loki","list_datasources","get_alerts"],docsUrl:"https://github.com/grafana/mcp-grafana",iconDomain:"grafana.com"},{id:"axiom",name:"Axiom",description:"Query and analyze log data in Axiom — APL queries, dataset exploration, and real-time log search.",category:"monitoring",package:"@axiomhq/mcp-server-axiom",command:"npx",args:["-y","@axiomhq/mcp-server-axiom"],envVars:{AXIOM_TOKEN:"xaat-xxxxxxxxxxxx",AXIOM_ORG_ID:"your-org-id"},tools:["query_apl","list_datasets","ingest_events"],docsUrl:"https://github.com/axiomhq/mcp-server-axiom",iconDomain:"axiom.co"},{id:"figma",name:"Figma",description:"Access Figma design files — extract design tokens, components, layout data for code generation.",category:"design",package:"figma-developer-mcp",command:"npx",args:["-y","figma-developer-mcp","--stdio"],envVars:{FIGMA_API_KEY:"figd_xxxxxxxxxxxx"},tools:["get_file","get_file_nodes","get_image","get_component","get_styles"],docsUrl:"https://help.figma.com/hc/en-us/articles/32132100833559",iconDomain:"figma.com"},{id:"magic-mcp",name:"21st.dev Magic",description:"Generate production-ready UI components — React, Tailwind, shadcn/ui from natural language descriptions.",category:"design",package:"@21st-dev/magic-mcp",command:"npx",args:["-y","@21st-dev/magic-mcp"],envVars:{TWENTYFIRST_API_KEY:"your-api-key"},tools:["generate_component","search_components","get_component_code"],docsUrl:"https://github.com/21st-dev/magic-mcp",iconDomain:"21st.dev"},{id:"memory",name:"Memory",description:"Knowledge graph-based persistent memory. Store entities, observations, and relations across sessions.",category:"ai",package:"@modelcontextprotocol/server-memory",command:"npx",args:["-y","@modelcontextprotocol/server-memory"],envVars:{},tools:["create_entities","create_relations","add_observations","read_graph","search_nodes","open_nodes"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/memory",iconDomain:"github.com"},{id:"sequential-thinking",name:"Sequential Thinking",description:"Dynamic and reflective problem-solving through thought sequences. Helps break down complex problems.",category:"ai",package:"@modelcontextprotocol/server-sequential-thinking",command:"npx",args:["-y","@modelcontextprotocol/server-sequential-thinking"],envVars:{},tools:["sequentialthinking"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking",iconDomain:"github.com"},{id:"context7",name:"Context7",description:"Up-to-date, version-specific library documentation and code examples for AI coding assistants.",category:"ai",package:"@upstash/context7-mcp",command:"npx",args:["-y","@upstash/context7-mcp"],envVars:{},tools:["resolve-library-id","query-docs"],docsUrl:"https://github.com/upstash/context7",iconDomain:"context7.com"},{id:"twitter-mcp",name:"Twitter / X",description:"Post tweets, search Twitter, manage followers, and interact with X/Twitter via the official API v2. Free tier: 500 tweets/month.",category:"marketing",package:"twitter-mcp",command:"npx",args:["-y","twitter-mcp"],envVars:{TWITTER_API_KEY:"your-api-key",TWITTER_API_SECRET:"your-api-secret",TWITTER_ACCESS_TOKEN:"your-access-token",TWITTER_ACCESS_SECRET:"your-access-secret"},tools:["post_tweet","search_tweets","get_user_info","get_timeline","delete_tweet"],docsUrl:"https://github.com/EnesCinr/twitter-mcp",iconDomain:"x.com"},{id:"reddit-mcp",name:"Reddit",description:"Read, search, and post to Reddit — browse subreddits, fetch posts and comments, submit posts and replies. Free API for non-commercial use.",category:"marketing",package:"reddit-mcp",command:"npx",args:["-y","reddit-mcp"],envVars:{REDDIT_CLIENT_ID:"your-client-id",REDDIT_CLIENT_SECRET:"your-client-secret",REDDIT_USERNAME:"your-username",REDDIT_PASSWORD:"your-password"},tools:["get_frontpage_posts","get_subreddit_hot_posts","get_post_content","get_post_comments","submit_post","submit_comment"],docsUrl:"https://github.com/Arindam200/reddit-mcp",iconDomain:"reddit.com"},{id:"linkedin-mcp",name:"LinkedIn",description:"Post updates, search profiles, find jobs, and interact with LinkedIn's API. Create and schedule professional content.",category:"marketing",package:"linkedin-mcpserver",command:"npx",args:["-y","linkedin-mcpserver"],envVars:{LINKEDIN_ACCESS_TOKEN:"your-access-token"},tools:["create_post","get_profile","search_people","get_feed","send_message"],docsUrl:"https://github.com/felipfr/linkedin-mcpserver",iconDomain:"linkedin.com"},{id:"excel-mcp",name:"Excel",description:"Create, read, and modify Excel workbooks without MS Excel installed — formulas, formatting, charts, pivot tables, and Excel tables.",category:"productivity",package:"excel-mcp-server",command:"uvx",args:["excel-mcp-server"],envVars:{},tools:["create_workbook","read_sheet","write_cells","add_chart","format_range","add_pivot_table","create_table"],docsUrl:"https://github.com/haris-musa/excel-mcp-server",iconDomain:"microsoft.com"},{id:"powerpoint-mcp",name:"PowerPoint",description:"Create and edit presentations with 32 tools and 25 professional slide templates — charts, tables, shapes, and rich text formatting.",category:"productivity",package:"office-powerpoint-mcp-server",command:"uvx",args:["office-powerpoint-mcp-server"],envVars:{},tools:["create_presentation","add_slide","add_chart","add_table","add_shape","add_text","set_background","add_image"],docsUrl:"https://github.com/GongRzhe/Office-PowerPoint-MCP-Server",iconDomain:"microsoft.com"},{id:"word-mcp",name:"Word",description:"Create, read, and manipulate Microsoft Word documents — rich formatting, tables, headers, footers, and structured content.",category:"productivity",package:"office-word-mcp-server",command:"uvx",args:["office-word-mcp-server"],envVars:{},tools:["create_document","add_paragraph","add_table","add_heading","set_header","set_footer","add_image"],docsUrl:"https://github.com/GongRzhe/Office-Word-MCP-Server",iconDomain:"microsoft.com"},{id:"google-workspace-mcp",name:"Google Workspace",description:"Full Google Docs, Sheets, Slides, Drive, and Calendar integration — create, edit, and manage documents in Google Workspace.",category:"productivity",package:"google-drive-mcp",command:"npx",args:["-y","google-drive-mcp"],envVars:{GOOGLE_CLIENT_ID:"your-client-id",GOOGLE_CLIENT_SECRET:"your-client-secret",GOOGLE_REDIRECT_URI:"http://localhost:3000/oauth2callback"},tools:["create_doc","edit_doc","create_sheet","read_sheet","create_slide","list_files","upload_file"],docsUrl:"https://github.com/piotr-agier/google-drive-mcp",iconDomain:"google.com"},{id:"salesforce-mcp",name:"Salesforce",description:"Official Salesforce DX MCP server — interact with Salesforce orgs, query data, manage resources, and operate Salesforce securely via natural language.",category:"cloud",package:"@salesforce/mcp",command:"npx",args:["-y","@salesforce/mcp"],envVars:{SALESFORCE_INSTANCE_URL:"https://your-org.my.salesforce.com",SALESFORCE_ACCESS_TOKEN:"your-access-token"},tools:["salesforce_query","salesforce_create","salesforce_update","salesforce_describe","salesforce_search"],docsUrl:"https://github.com/salesforcecli/mcp",iconDomain:"salesforce.com"},{id:"databricks-mcp",name:"Databricks",description:"Execute SQL, manage clusters and jobs, list notebooks, and browse DBFS. Supports Unity Catalog, Delta Lake, and SQL warehouses.",category:"database",package:"databricks-mcp-server",command:"uvx",args:["databricks-mcp-server@latest"],envVars:{DATABRICKS_HOST:"https://your-workspace.cloud.databricks.com",DATABRICKS_TOKEN:"your-personal-access-token"},tools:["execute_sql","list_clusters","create_cluster","list_jobs","run_job","list_notebooks","export_notebook","list_files"],docsUrl:"https://github.com/JustTryAI/databricks-mcp-server",iconDomain:"databricks.com"}];function KR(n){return JSON.parse(JSON.stringify(n))}const aPe=[{key:"general",label:"General",icon:_.jsx(ZW,{size:15}),color:"var(--text-secondary)"},{key:"chat",label:"Chat",icon:_.jsx(DY,{size:15}),color:"var(--accent)"},{key:"models",label:"Models",icon:_.jsx(wY,{size:15}),color:"var(--purple)"},{key:"channels",label:"Channels",icon:_.jsx(FDe,{size:15}),color:"var(--blue)"},{key:"integrations",label:"Integrations",icon:_.jsx(xEe,{size:15}),color:"var(--orange)"},{key:"mcp",label:"MCP Servers",icon:_.jsx(EY,{size:15}),color:"var(--green)"},{key:"versioning",label:"Versioning",icon:_.jsx(up,{size:15}),color:"var(--cyan, #06b6d4)"},{key:"shortcuts",label:"Shortcuts",icon:_.jsx(aDe,{size:15}),color:"var(--yellow, #e2b93d)"},{key:"mobile",label:"Mobile",icon:_.jsx(TA,{size:15}),color:"var(--green)"}];function lPe({src:n,fallback:e,size:t=20,colored:i}){const[s,r]=z.useState(!1);return s?_.jsx(_.Fragment,{children:e}):_.jsx("img",{src:n,alt:"",style:{width:t,height:t,borderRadius:3},onError:()=>r(!0)})}function cPe({id:n,iconDomain:e,size:t=20}){const[i,s]=z.useState(!1);if(i)return _.jsx(ax,{size:t});const r=e?`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${e}&size=32`:`/icons/mcp/${n}.svg`;return _.jsx("img",{src:r,alt:"",style:{width:t,height:t,borderRadius:3},onError:()=>s(!0)})}function ab({label:n,placeholder:e,value:t,onChange:i,isSecret:s=!0}){const[r,o]=z.useState(!1);return _.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",marginBottom:5,textTransform:"uppercase",letterSpacing:"0.03em"},children:n}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("input",{type:s&&!r?"password":"text",placeholder:e,value:t,onChange:a=>i(a.target.value),autoComplete:"off",spellCheck:!1,style:{flex:1,padding:"8px 12px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:12,fontFamily:"monospace",outline:"none"},onFocus:a=>{a.target.style.borderColor="var(--accent)"},onBlur:a=>{a.target.style.borderColor="var(--border)"}}),s&&_.jsx("button",{onClick:()=>o(!r),style:{width:32,height:32,borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},title:r?"Hide":"Show",children:_.jsx(jE,{size:14})})]})]})}function id({label:n,value:e,icon:t}){const i=typeof e=="boolean"?e?"Enabled":"Disabled":String(e),s=typeof e=="boolean";return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0",borderBottom:"1px solid var(--border)"},children:[t&&_.jsx("span",{style:{color:"var(--text-muted)",flexShrink:0,display:"flex"},children:t}),_.jsx("span",{style:{fontSize:13,color:"var(--text-secondary)",flex:1},children:n}),s?_.jsx("span",{style:{fontSize:11,fontWeight:600,padding:"3px 10px",borderRadius:5,background:e?"var(--green-bg)":"var(--bg-tertiary)",color:e?"var(--green)":"var(--text-muted)"},children:i}):_.jsx("span",{style:{fontSize:12,color:"var(--text-primary)",fontFamily:"monospace",background:"var(--bg-tertiary)",padding:"3px 10px",borderRadius:5},children:i})]})}function dPe({label:n,value:e,icon:t,onSave:i}){const[s,r]=z.useState(!1),[o,a]=z.useState(e),[l,c]=z.useState(!1);z.useEffect(()=>{a(e)},[e]);const d=async()=>{if(!o.trim()||o===e){r(!1);return}c(!0);try{await i(o.trim()),r(!1)}catch{}c(!1)};return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0",borderBottom:"1px solid var(--border)"},children:[t&&_.jsx("span",{style:{color:"var(--text-muted)",flexShrink:0,display:"flex"},children:t}),_.jsx("span",{style:{fontSize:13,color:"var(--text-secondary)",flexShrink:0},children:n}),s?_.jsxs("div",{style:{flex:1,display:"flex",gap:6,alignItems:"center"},children:[_.jsx("input",{value:o,onChange:h=>a(h.target.value),onKeyDown:h=>{h.key==="Enter"&&d(),h.key==="Escape"&&r(!1)},autoFocus:!0,style:{flex:1,fontSize:12,fontFamily:"monospace",padding:"4px 8px",borderRadius:5,border:"1px solid var(--border)",background:"var(--bg-secondary)",color:"var(--text-primary)",outline:"none"}}),_.jsx("button",{onClick:d,disabled:l,style:{padding:"4px 10px",fontSize:11,fontWeight:600,borderRadius:5,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",opacity:l?.6:1},children:l?"...":"Save"}),_.jsx("button",{onClick:()=>{a(e),r(!1)},style:{padding:"4px 8px",fontSize:11,borderRadius:5,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:"Cancel"})]}):_.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8,justifyContent:"flex-end"},children:[_.jsx("span",{style:{fontSize:12,color:"var(--text-primary)",fontFamily:"monospace",background:"var(--bg-tertiary)",padding:"3px 10px",borderRadius:5,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:360},children:e}),_.jsx("button",{onClick:()=>r(!0),style:{padding:"3px 8px",fontSize:11,borderRadius:5,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:"Edit"})]})]})}function hPe({tier:n,slot:e,color:t,icon:i,providers:s,onSave:r,saving:o}){const[a,l]=z.useState((e==null?void 0:e.provider)??""),[c,d]=z.useState((e==null?void 0:e.model)??""),[h,u]=z.useState(!1),f=s.find(L=>L.id===a),g=(f==null?void 0:f.models)??[],m=s.map(L=>({value:L.id,label:`${L.name} (${L.models.length})`,iconUrl:L.iconUrl})),b=g.map(L=>({value:L,label:L}));function w(L){l(L),d(""),u(!0)}function S(L){d(L),u(!0)}function x(){a&&c&&r({provider:a,model:c}),u(!1)}function C(){r(null),l(""),d(""),u(!1)}return _.jsxs("div",{style:{padding:"14px 16px",borderRadius:10,background:"var(--bg-card)",border:"1px solid var(--border)"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:12},children:[_.jsx("div",{style:{width:30,height:30,borderRadius:8,flexShrink:0,background:e?`color-mix(in srgb, ${t} 12%, transparent)`:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",color:e?t:"var(--text-muted)"},children:i}),_.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",textTransform:"capitalize",flex:1},children:n}),e&&_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"3px 8px",borderRadius:5,background:`color-mix(in srgb, ${t} 10%, transparent)`,color:t,letterSpacing:"0.04em"},children:"SET"})]}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[_.jsx(cx,{value:a,onChange:w,options:m,placeholder:"Select provider...",alignRight:!1}),a&&_.jsx(cx,{value:c,onChange:S,options:b,placeholder:`Select model (${g.length})...`,alignRight:!1}),h&&c&&_.jsxs("button",{onClick:x,disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",height:32,padding:"0 14px",borderRadius:7,border:"none",background:"var(--accent)",color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",fontFamily:"inherit",flexShrink:0,opacity:o?.5:1,transition:"opacity 0.12s"},children:[_.jsx(Mc,{size:12,style:{marginRight:4}})," Apply"]}),e&&!h&&_.jsx("button",{onClick:C,disabled:o,title:"Clear this tier",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:7,flexShrink:0,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",padding:0,transition:"color 0.12s, border-color 0.12s"},children:_.jsx(vp,{size:12})})]})]})}function od({title:n,count:e}){return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",marginBottom:10},children:[n,e!==void 0&&_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"1px 6px",borderRadius:4,background:"var(--bg-tertiary)",color:"var(--text-muted)",fontVariantNumeric:"tabular-nums"},children:e})]})}function uPe(){const[n,e]=z.useState("general");z.useEffect(()=>{function J(je){const Ne=je.detail;Ne&&e(Ne)}return window.addEventListener("settings-nav",J),()=>window.removeEventListener("settings-nav",J)},[]);const{data:t,refresh:i}=Ks("/api/settings",1e4),{data:s,refresh:r}=Ks("/api/model-config",1e4),[o,a]=z.useState(!1),[l,c]=z.useState(null),[d,h]=z.useState(""),[u,f]=z.useState(!1),[g,m]=z.useState({mcpServers:{}}),[b,w]=z.useState({servers:[]}),[S,x]=z.useState(!1),[C,L]=z.useState(!1),[E,I]=z.useState(null),[R,M]=z.useState({}),[A,H]=z.useState(0),[F,B]=z.useState(null),[j,V]=z.useState(null),[X,K]=z.useState({}),[Q,te]=z.useState(!1),[W,Z]=z.useState(null),[oe,$]=z.useState(!1),[be,Le]=z.useState(null),[Ve,Ye]=z.useState(null),[ft,re]=z.useState({}),[Se,We]=z.useState(!1),{data:Be}=Ks("/api/docker-status",3e4),[Te,Et]=z.useState(null),[_t,Si]=z.useState({username:"",email:"",token:"",provider:"github",remoteUrl:"",backupEnabled:!1,backupIntervalHours:24}),[bi,ns]=z.useState(!1),[It,$t]=z.useState(!1),[Ti,Wn]=z.useState(!1),[xi,Qt]=z.useState(null),[Is,ae]=z.useState(!1),[ke,Ue]=z.useState(null),[Pt,Dt]=z.useState(!1),Ei=z.useCallback(async()=>{try{const J=await fetch(dh("/api/git-config")).then(je=>je.json());Et(J)}catch{}},[]);z.useEffect(()=>{Ei()},[Ei]);const Ri={userBubble:"",agentBubble:"",userText:"#ffffff",agentText:"",timestampUser:"rgba(255,255,255,0.6)",timestampAgent:""},[fi,nn]=z.useState(()=>{try{const J=localStorage.getItem("vec-chat-colors");return J?{...Ri,...JSON.parse(J)}:Ri}catch{return Ri}});z.useEffect(()=>{const J=document.documentElement;fi.userBubble?J.style.setProperty("--chat-user-bubble",fi.userBubble):J.style.removeProperty("--chat-user-bubble"),fi.userText?J.style.setProperty("--chat-user-text",fi.userText):J.style.removeProperty("--chat-user-text"),fi.agentBubble?J.style.setProperty("--chat-agent-bubble",fi.agentBubble):J.style.removeProperty("--chat-agent-bubble"),fi.agentText?J.style.setProperty("--chat-agent-text",fi.agentText):J.style.removeProperty("--chat-agent-text"),fi.timestampUser?J.style.setProperty("--chat-ts-user",fi.timestampUser):J.style.removeProperty("--chat-ts-user"),fi.timestampAgent?J.style.setProperty("--chat-ts-agent",fi.timestampAgent):J.style.removeProperty("--chat-ts-agent"),localStorage.setItem("vec-chat-colors",JSON.stringify(fi))},[fi]);const gs=[{id:"nav-overview",label:"Overview",description:"Go to Overview",category:"Navigation",keys:"Ctrl+1"},{id:"nav-kanban",label:"Kanban",description:"Go to Kanban Board",category:"Navigation",keys:"Ctrl+2"},{id:"nav-chat",label:"Chat",description:"Go to Chat",category:"Navigation",keys:"Ctrl+3"},{id:"nav-live",label:"Live Monitor",description:"Go to Live Monitor",category:"Navigation",keys:"Ctrl+4"},{id:"nav-workspace",label:"Workspace",description:"Go to Workspace",category:"Navigation",keys:"Ctrl+5"},{id:"nav-events",label:"Events",description:"Go to Events",category:"Navigation",keys:"Ctrl+6"},{id:"nav-settings",label:"Settings",description:"Go to Settings",category:"Navigation",keys:"Ctrl+,"},{id:"editor-save",label:"Save File",description:"Save active file in editor",category:"Editor",keys:"Ctrl+S"},{id:"editor-close-tab",label:"Close Tab",description:"Close active editor tab",category:"Editor",keys:"Ctrl+W"},{id:"editor-search",label:"Search in File",description:"Search in active file",category:"Editor",keys:"Ctrl+F"},{id:"global-search",label:"Global Search",description:"Focus search / command palette",category:"General",keys:"Ctrl+K"},{id:"toggle-theme",label:"Toggle Theme",description:"Switch dark / light theme",category:"General",keys:"Ctrl+Shift+T"},{id:"send-message",label:"Send Message",description:"Send chat message",category:"Chat",keys:"Enter"},{id:"newline-message",label:"New Line",description:"New line in chat input",category:"Chat",keys:"Shift+Enter"}],[an,xn]=z.useState(gs),[ys,So]=z.useState(!1),[Kc,vl]=z.useState(null);z.useEffect(()=>{fetch(dh("/api/shortcuts-config")).then(J=>J.json()).then(J=>{J&&Array.isArray(J)&&xn(gs.map(je=>{const Ne=J.find(ze=>ze.id===je.id);return Ne?{...je,keys:Ne.keys}:je})),So(!0)}).catch(()=>So(!0))},[]);const qo=z.useRef(null);z.useEffect(()=>{ys&&(localStorage.setItem("vec-keyboard-shortcuts",JSON.stringify(an)),window.dispatchEvent(new CustomEvent("vec-shortcuts-changed",{detail:an})),qo.current&&clearTimeout(qo.current),qo.current=setTimeout(()=>{tn("/api/shortcuts-config",{shortcuts:an}).catch(()=>{})},500))},[an,ys]);const Hh=z.useCallback((J,je)=>{xn(Ne=>Ne.map(ze=>ze.id===J?{...ze,keys:je}:ze)),vl(null)},[]),vg=z.useCallback(J=>{const je=gs.find(Ne=>Ne.id===J);je&&xn(Ne=>Ne.map(ze=>ze.id===J?{...ze,keys:je.keys}:ze))},[]),Bs=z.useCallback(()=>{xn(gs),Tn("All shortcuts reset to defaults")},[]),eo=z.useCallback(async()=>{try{const J=await fetch(dh("/api/channel-config")).then(je=>je.json());B(J)}catch{}},[]),Gc=z.useCallback(async()=>{try{const J=await fetch(dh("/api/integration-config")).then(je=>je.json());Le(J)}catch{}},[]);z.useEffect(()=>{eo()},[eo]),z.useEffect(()=>{Gc()},[Gc]),z.useEffect(()=>{const J=setInterval(eo,8e3);return()=>clearInterval(J)},[eo]);const Yc=z.useCallback(async()=>{try{const[J,je]=await Promise.all([fetch(dh("/api/mcp-config")).then(ze=>ze.json()),fetch(dh("/api/mcp-status")).then(ze=>ze.json())]);m(J),w(je);const Ne={};for(const ze of Object.keys(J.mcpServers??{}))Ne[ze]=!0;M(Ne)}catch{Tn("Failed to load MCP config")}},[]);z.useEffect(()=>{Yc()},[Yc]);function Tn(J){I(J),setTimeout(()=>I(null),3e3)}async function ec(J,je){a(!0);try{await tn("/api/model-config",{[J]:je}),r(),Tn(`${J.charAt(0).toUpperCase()+J.slice(1)} model updated`)}catch{Tn("Failed to save model config")}finally{a(!1)}}async function Kd(J,je){f(!0);try{await tn("/api/provider-key",{provider:J,key:je}),r(),Tn("API key saved"),c(null),h("")}catch{Tn("Failed to save API key")}finally{f(!1)}}async function tc(J,je){We(!0);try{const Ne=await tn("/api/integration-config",{[J]:je});Ne!=null&&Ne.ok?(Le(Ne.config),Tn(`${J.charAt(0).toUpperCase()+J.slice(1)} saved`),Ye(null),re({})):Tn("Save failed")}catch{Tn("Save failed")}finally{We(!1)}}async function Ko(J,je){We(!0);try{const Ne=be==null?void 0:be[J],ze=Ne&&typeof Ne=="object"?{...Ne,enabled:!je}:{enabled:!je},vt=await tn("/api/integration-config",{[J]:ze});vt!=null&&vt.ok&&(Le(vt.config),Tn(`${J} ${je?"disabled":"enabled"}`))}catch{Tn("Toggle failed")}finally{We(!1)}}function xo(J,je){m(Ne=>{const ze=KR(Ne);return ze.mcpServers[J]={...ze.mcpServers[J],...je},ze}),L(!0)}function wa(J){m(je=>{const Ne=KR(je);return delete Ne.mcpServers[J],Ne}),L(!0)}function Vh(J){const je=prompt("Environment variable name:");je!=null&&je.trim()&&xo(J,{env:{...g.mcpServers[J].env,[je.trim()]:""}})}function Gd(J,je){const Ne={...g.mcpServers[J].env};delete Ne[je],xo(J,{env:Ne})}async function bg(){x(!0);try{const J=await tn("/api/mcp-config",g);J!=null&&J.ok?(L(!1),Tn("Saved! MCP servers updated automatically."),Yc()):Tn("Save failed")}catch{Tn("Save failed")}finally{x(!1)}}const Er=Object.keys(g.mcpServers),Hn=t,Ot=be??(Hn==null?void 0:Hn.integrations)??null,ko=(s==null?void 0:s.providers.filter(J=>J.configured).length)??0,zh=16,jh=F?Object.values(F).filter(J=>J==null?void 0:J.configured).length:0,Yt=Ot?[Ot.searxng.configured&&Ot.searxng.enabled,Ot.sonarqube.configured&&Ot.sonarqube.enabled,Ot.gitleaks.enabled,Ot.semgrep.enabled,Ot.trivy.enabled].filter(Boolean).length:0,me=b.servers.filter(J=>J.connected).length;function lt(){return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[Hn&&_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Company",value:Hn.system.companyName,color:"var(--accent)"},{label:"Provider",value:Hn.llm.provider,color:"var(--purple)"},{label:"Model",value:Hn.llm.model.split("/").pop()??Hn.llm.model,color:"var(--blue)"},{label:"Dashboard",value:`:${Hn.system.dashboardPort}`,color:"var(--green)"}].map(J=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:16,fontWeight:700,color:J.color,lineHeight:1.2,fontVariantNumeric:"tabular-nums"},children:J.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:J.label})]},J.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"System"}),_.jsx("div",{className:"vec-card",style:{padding:"4px 16px"},children:Hn?_.jsxs(_.Fragment,{children:[_.jsx(id,{label:"Company Name",value:Hn.system.companyName,icon:_.jsx(YW,{size:13})}),_.jsx(dPe,{label:"Workspace",value:Hn.system.workspace,icon:_.jsx(j2,{size:13}),onSave:async J=>{await tn(dh("/api/workspace"),{path:J}),i()}}),_.jsx(id,{label:"CLI Enabled",value:Hn.system.cliEnabled}),_.jsx(id,{label:"PM Proactive Loop",value:Hn.proactive.enabled}),Hn.proactive.enabled&&_.jsx(id,{label:"Proactive Interval",value:`${Hn.proactive.intervalSecs}s`}),_.jsx(id,{label:"Dashboard Port",value:Hn.system.dashboardPort,icon:_.jsx(QLe,{size:13})}),_.jsx(id,{label:"Debounce Window",value:`${Hn.system.debounceMs}ms`}),_.jsx(id,{label:"Context Window",value:`${(Hn.system.contextWindow/1e3).toFixed(0)}K tokens`}),_.jsx(id,{label:"Compact Threshold",value:`${(Hn.system.compactThreshold*100).toFixed(0)}%`})]}):_.jsx("div",{style:{padding:20,color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:"Loading..."})})]}),_.jsxs("div",{children:[_.jsx(od,{title:"LLM Defaults"}),_.jsx("div",{className:"vec-card",style:{padding:"4px 16px"},children:Hn?_.jsxs(_.Fragment,{children:[_.jsx(id,{label:"Provider",value:Hn.llm.provider,icon:_.jsx(DA,{size:13})}),_.jsx(id,{label:"Model",value:Hn.llm.model,icon:_.jsx(wY,{size:13})}),_.jsx(id,{label:"Thinking Level",value:Hn.llm.thinkingLevel}),_.jsx(id,{label:"Temperature",value:Hn.llm.temperature}),_.jsx(id,{label:"Max Tokens",value:Hn.llm.maxTokens.toLocaleString()})]}):_.jsx("div",{style:{padding:20,color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:"Loading..."})}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:8,paddingLeft:2},children:"Environment defaults — overridden by model priority tiers when set."})]})]})}function Vt(){if(!s)return _.jsx("div",{style:{padding:20,color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:"Loading..."});const J=s.providers.filter(Ne=>Ne.configured),je=s.providers.filter(Ne=>!Ne.configured);return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Providers Ready",value:String(J.length),color:"var(--green)"},{label:"Total Models",value:String(s.providers.reduce((Ne,ze)=>Ne+ze.models.length,0)),color:"var(--blue)"},{label:"Priority Tiers Set",value:String([s.config.primary,s.config.secondary,s.config.fallback].filter(Boolean).length)+"/3",color:"var(--purple)"},{label:"Agent Overrides",value:String(Object.keys(s.config.agentModels).length),color:"var(--orange)"}].map(Ne=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:Ne.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:Ne.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:Ne.label})]},Ne.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"Configured Providers",count:J.length}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:8},children:J.map(Ne=>_.jsx(nse,{provider:Ne,onClick:()=>{c(Ne.id),h("")}},Ne.id))})]}),je.length>0&&_.jsxs("div",{children:[_.jsx(od,{title:"Available Providers",count:je.length}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:8},children:je.map(Ne=>_.jsx(nse,{provider:Ne,onClick:()=>{c(Ne.id),h("")}},Ne.id))})]}),_.jsxs("div",{children:[_.jsx(od,{title:"Model Priority"}),_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:["primary","secondary","fallback"].map(Ne=>{const ze=s.config[Ne],vt={primary:"var(--accent)",secondary:"var(--yellow)",fallback:"var(--text-muted)"},si={primary:_.jsx(nEe,{size:14}),secondary:_.jsx(DA,{size:14}),fallback:_.jsx(HR,{size:14})},$i=s.providers.filter(Gi=>Gi.configured);return _.jsx(hPe,{tier:Ne,slot:ze,color:vt[Ne],icon:si[Ne],providers:$i,onSave:Gi=>ec(Ne,Gi),saving:o},Ne)})})]}),Object.keys(s.config.agentModels).length>0&&_.jsxs("div",{children:[_.jsx(od,{title:"Agent Overrides",count:Object.keys(s.config.agentModels).length}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:Object.entries(s.config.agentModels).map(([Ne,ze])=>_.jsxs("span",{style:{fontSize:12,padding:"6px 12px",borderRadius:7,background:"var(--bg-card)",border:"1px solid var(--border)",color:"var(--text-secondary)",fontFamily:"monospace"},children:["@",Ne," → ",ze.provider,"/",ze.model.split("/").pop()]},Ne))}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:8,paddingLeft:2},children:"Per-agent models can be configured from the Directory view."})]})]})}const Gn={telegram:{color:"#26A5E4",icon:"telegram.org",fields:[{key:"botToken",label:"Bot Token",placeholder:"Paste your bot token from @BotFather",secret:!0},{key:"chatId",label:"Chat ID",placeholder:"Your authorized chat ID"}]},slack:{color:"#4A154B",icon:"slack.com",fields:[{key:"botToken",label:"Bot Token",placeholder:"xoxb-...",secret:!0},{key:"appToken",label:"App Token",placeholder:"xapp-...",secret:!0},{key:"channelId",label:"Channel ID",placeholder:"C0123456789"}]},discord:{color:"#5865F2",icon:"discord.com",fields:[{key:"botToken",label:"Bot Token",placeholder:"Discord Developer Portal → Bot → Token",secret:!0},{key:"channelId",label:"Channel ID",placeholder:"Right-click channel → Copy Channel ID"}]},whatsapp:{color:"#25D366",icon:"whatsapp.com",note:"On first connect, a QR code will appear in the server terminal. Scan it with WhatsApp.",fields:[{key:"authorizedJid",label:"Authorized JID",placeholder:"919876543210@s.whatsapp.net"}]},teams:{color:"#6264A7",icon:"teams.microsoft.com",fields:[{key:"incomingWebhookUrl",label:"Incoming Webhook URL",placeholder:"https://outlook.office.com/webhook/...",secret:!0},{key:"outgoingWebhookSecret",label:"Outgoing Webhook Secret (optional)",placeholder:"HMAC secret for verifying Teams messages",secret:!0}]},matrix:{color:"#0DBD8B",icon:"matrix.org",fields:[{key:"homeserverUrl",label:"Homeserver URL",placeholder:"https://matrix.org"},{key:"accessToken",label:"Access Token",placeholder:"Bot user access token",secret:!0},{key:"roomId",label:"Room ID",placeholder:"!abc123:matrix.org"}]},signal:{color:"#3A76F0",icon:"signal.org",note:"Requires signal-cli installed and registered on the server.",fields:[{key:"phoneNumber",label:"Phone Number",placeholder:"+1234567890"},{key:"recipient",label:"Recipient",placeholder:"+1234567890 or group ID"},{key:"cliPath",label:"signal-cli Path (optional)",placeholder:"/usr/local/bin/signal-cli"}]},googlechat:{color:"#00AC47",icon:"chat.google.com",fields:[{key:"webhookUrl",label:"Webhook URL",placeholder:"https://chat.googleapis.com/v1/spaces/...",secret:!0}]},irc:{color:"#6667AB",icon:"libera.chat",fields:[{key:"server",label:"Server",placeholder:"irc.libera.chat"},{key:"port",label:"Port",placeholder:"6697"},{key:"nickname",label:"Nickname",placeholder:"octo-vec"},{key:"channel",label:"Channel",placeholder:"#my-channel"},{key:"authNick",label:"Auth Nick (authorized user)",placeholder:"your-nick"},{key:"useTls",label:"Use TLS (true/false)",placeholder:"true"}]},line:{color:"#00C300",icon:"line.me",fields:[{key:"channelAccessToken",label:"Channel Access Token",placeholder:"LINE Developers → Messaging API",secret:!0},{key:"channelSecret",label:"Channel Secret",placeholder:"LINE channel secret",secret:!0},{key:"userId",label:"User ID",placeholder:"Target user ID to send messages to"}]},mattermost:{color:"#0058CC",icon:"developers.mattermost.com",fields:[{key:"serverUrl",label:"Server URL",placeholder:"https://mattermost.example.com"},{key:"botToken",label:"Bot Token",placeholder:"Bot access token",secret:!0},{key:"channelId",label:"Channel ID",placeholder:"Channel ID to listen on"},{key:"authUser",label:"Auth User (authorized username)",placeholder:"admin"}]},twitch:{color:"#9146FF",icon:"twitch.tv",fields:[{key:"botUsername",label:"Bot Username",placeholder:"my_bot"},{key:"oauthToken",label:"OAuth Token",placeholder:"oauth:...",secret:!0},{key:"channel",label:"Channel",placeholder:"#my-channel"},{key:"authUser",label:"Auth User (authorized username)",placeholder:"streamer-name"}]},nostr:{color:"#8B5CF6",icon:"nostr.com",fields:[{key:"privateKey",label:"Private Key (hex)",placeholder:"nsec or hex private key",secret:!0},{key:"relayUrl",label:"Relay URL",placeholder:"wss://relay.damus.io"},{key:"authPubkey",label:"Auth Pubkey (authorized user)",placeholder:"npub or hex pubkey"}]},nextcloud:{color:"#0082C9",icon:"nextcloud.com",fields:[{key:"serverUrl",label:"Server URL",placeholder:"https://cloud.example.com"},{key:"username",label:"Username",placeholder:"bot-user"},{key:"password",label:"Password",placeholder:"App password",secret:!0},{key:"roomToken",label:"Room Token",placeholder:"Talk room token"},{key:"authUser",label:"Auth User (authorized username)",placeholder:"admin"}]},synology:{color:"#B6002B",icon:"synology.com",fields:[{key:"incomingUrl",label:"Incoming Webhook URL",placeholder:"Synology Chat incoming webhook URL",secret:!0},{key:"outgoingToken",label:"Outgoing Webhook Token",placeholder:"Token for verifying outgoing webhooks",secret:!0}]},feishu:{color:"#3370FF",icon:"feishu.cn",fields:[{key:"webhookUrl",label:"Webhook URL",placeholder:"Feishu bot webhook URL",secret:!0},{key:"verificationToken",label:"Verification Token",placeholder:"Event verification token",secret:!0}]}},Ys={telegram:"Telegram",slack:"Slack",discord:"Discord",whatsapp:"WhatsApp",teams:"Teams",matrix:"Matrix",signal:"Signal",googlechat:"Google Chat",irc:"IRC",line:"LINE",mattermost:"Mattermost",twitch:"Twitch",nostr:"Nostr",nextcloud:"Nextcloud Talk",synology:"Synology Chat",feishu:"Feishu/Lark"},Ni=["telegram","slack","discord","whatsapp","teams","matrix","signal","googlechat","irc","line","mattermost","twitch","nostr","nextcloud","synology","feishu"],Vr={telegram:"telegram.org",slack:"slack.com",discord:"discord.com",whatsapp:"whatsapp.com",teams:"teams.microsoft.com",matrix:"matrix.org",signal:"signal.org",googlechat:"chat.google.com",irc:"libera.chat",line:"line.me",mattermost:"developers.mattermost.com",twitch:"twitch.tv",nostr:"nostr.com",nextcloud:"nextcloud.com",synology:"synology.com",feishu:"feishu.cn"};function Lo(J){V(J),K({}),Z(null)}function bl(){V(null),K({}),Z(null)}async function Zc(){if(j){te(!0),Z(null);try{const J={channel:j,...X},je=await tn("/api/channel-test",J);Z(je.ok?{ok:!0,msg:`Connected as "${je.botName}"`}:{ok:!1,msg:je.error??"Test failed"})}catch{Z({ok:!1,msg:"Connection failed"})}finally{te(!1)}}}async function ir(){if(j){$(!0);try{const J={channel:j,...X},je=await tn("/api/channel-config",J);je.ok?(await tn("/api/channel-restart",{channel:j}),await eo(),bl(),Tn(`${Ys[j]??j} connected`)):Tn(je.error??"Save failed")}catch{Tn("Save failed")}finally{$(!1)}}}async function ju(J){try{await tn("/api/channel-disconnect",{channel:J}),await eo(),Tn(`${Ys[J]??J} disconnected`)}catch{Tn("Disconnect failed")}}function Yd(J){const je=Gn[J];if(!je)return null;const Ne=F==null?void 0:F[J],ze=j===J,vt=(Ne==null?void 0:Ne.configured)??!1,si=(Ne==null?void 0:Ne.connected)??!1,$i=Ys[J]??J,Gi=je.color,fr=Object.values(X).some(hn=>hn&&hn.trim()),Ws=Vr[J];return ze?_.jsxs("div",{style:{padding:"16px 18px",borderRadius:12,background:"var(--bg-card)",border:`1px solid ${Gi}`,gridColumn:"1 / -1",transition:"border-color 0.15s"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:16},children:[_.jsx("div",{style:{width:38,height:38,borderRadius:10,flexShrink:0,background:`color-mix(in srgb, ${Gi} 12%, transparent)`,display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx("img",{src:`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${Ws??je.icon}&size=32`,alt:"",style:{width:20,height:20,borderRadius:3},onError:hn=>{hn.target.style.display="none"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:$i}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:1},children:vt?si?"Connected":"Offline":"Setup credentials below"})]}),vt&&_.jsx("button",{onClick:()=>ju(J),style:{padding:"5px 12px",borderRadius:6,fontSize:11,fontWeight:500,border:"1px solid color-mix(in srgb, var(--red) 30%, transparent)",background:"color-mix(in srgb, var(--red) 8%, transparent)",color:"var(--red)",cursor:"pointer",fontFamily:"inherit"},children:"Disconnect"})]}),_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[je.fields.map(hn=>_.jsx(ab,{label:hn.label,placeholder:hn.placeholder,value:X[hn.key]??"",onChange:gr=>K(Zd=>({...Zd,[hn.key]:gr})),isSecret:hn.secret},hn.key)),je.note&&_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",padding:"0 4px"},children:je.note}),W&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:8,fontSize:12,background:W.ok?"color-mix(in srgb, var(--green) 8%, transparent)":"color-mix(in srgb, var(--red) 8%, transparent)",color:W.ok?"var(--green)":"var(--red)",border:`1px solid ${W.ok?"color-mix(in srgb, var(--green) 20%, transparent)":"color-mix(in srgb, var(--red) 20%, transparent)"}`,display:"flex",alignItems:"center",gap:8},children:[W.ok?_.jsx(Mc,{size:14}):_.jsx(Pr,{size:14}),W.msg]}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsx("button",{onClick:Zc,disabled:Q||!fr,style:{padding:"7px 14px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",cursor:Q?"wait":"pointer",fontFamily:"inherit",opacity:Q||!fr?.5:1},children:Q?"Testing...":"Test Connection"}),_.jsx("button",{onClick:ir,disabled:oe||!fr,style:{padding:"7px 14px",borderRadius:8,fontSize:12,fontWeight:600,border:"none",background:Gi,color:"#fff",cursor:oe?"wait":"pointer",fontFamily:"inherit",opacity:oe||!fr?.5:1},children:oe?"Saving...":"Save & Connect"}),_.jsx("button",{onClick:bl,style:{padding:"7px 14px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontFamily:"inherit"},children:"Cancel"})]})]})]},J):_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"14px 16px",borderRadius:12,background:"var(--bg-card)",border:"1px solid var(--border)",transition:"border-color 0.15s, box-shadow 0.15s",minWidth:0,overflow:"hidden"},onMouseEnter:hn=>{hn.currentTarget.style.borderColor="color-mix(in srgb, var(--text-muted) 40%, transparent)",hn.currentTarget.style.boxShadow="0 2px 12px rgba(0,0,0,0.1)"},onMouseLeave:hn=>{hn.currentTarget.style.borderColor="var(--border)",hn.currentTarget.style.boxShadow="none"},children:[_.jsx("div",{style:{width:38,height:38,borderRadius:10,flexShrink:0,background:vt?`color-mix(in srgb, ${Gi} 12%, transparent)`:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx("img",{src:`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${Ws??je.icon}&size=32`,alt:"",style:{width:20,height:20,borderRadius:3},onError:hn=>{hn.target.style.display="none"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:$i}),vt&&_.jsx("div",{style:{width:6,height:6,borderRadius:"50%",flexShrink:0,background:si?"var(--green)":"var(--red)",boxShadow:si?"0 0 6px var(--green)":"none"}})]}),_.jsx("div",{style:{fontSize:11.5,color:"var(--text-muted)",lineHeight:1.4,marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:vt?si?"Connected":"Offline":"Not configured"})]}),_.jsx("button",{onClick:()=>Lo(J),style:{display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,borderRadius:8,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:hn=>{hn.currentTarget.style.background=Gi,hn.currentTarget.style.color="#fff",hn.currentTarget.style.borderColor=Gi},onMouseLeave:hn=>{hn.currentTarget.style.background="transparent",hn.currentTarget.style.color="var(--text-muted)",hn.currentTarget.style.borderColor="var(--border)"},title:vt?`Edit ${$i}`:`Configure ${$i}`,children:vt?_.jsx(ZW,{size:14}):_.jsx(yd,{size:14})})]},J)}function yl(){return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{val:jh,label:"Configured",color:"var(--blue)"},{val:Object.values(F??{}).filter(J=>J==null?void 0:J.connected).length,label:"Connected",color:"var(--green)"},{val:zh-jh,label:"Available",color:"var(--purple, var(--text-muted))"},{val:zh,label:"Total Channels",color:"var(--text-muted)"}].map(J=>_.jsxs("div",{style:{flex:"1 1 100px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:J.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:J.val}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:J.label})]},J.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"Communication Channels"}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:10},children:Ni.map(J=>Yd(J))})]})]})}function sw(J){if(!Ot)return;if(Ve===J){Ye(null);return}const je={searxng:{url:Ot.searxng.url},sonarqube:{hostUrl:Ot.sonarqube.hostUrl,token:"",projectBaseKey:Ot.sonarqube.projectBaseKey,scannerImage:Ot.sonarqube.scannerImage},gitleaks:{image:Ot.gitleaks.image},semgrep:{image:Ot.semgrep.image},trivy:{image:Ot.trivy.image}};re(je[J]??{}),Ye(J)}function qa(J,je,Ne,ze,vt,si,$i,Gi,fr){const Ws=Ve===J,hn=$i&&Gi,gr=ft,Zd=(un,aw)=>re(lw=>({...lw,[un]:aw})),Ts={gitleaks:"zricethezav/gitleaks:latest",semgrep:"semgrep/semgrep",trivy:"aquasec/trivy:latest"};return _.jsxs("div",{style:{padding:"18px 20px",borderRadius:12,background:"var(--bg-card)",border:`1px solid ${Ws?vt:"var(--border)"}`,transition:"border-color 0.15s"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,marginBottom:Ws?16:0},children:[_.jsx("div",{style:{width:42,height:42,borderRadius:10,background:hn?`color-mix(in srgb, ${vt} 10%, transparent)`:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",color:hn?vt:"var(--text-muted)",flexShrink:0},children:_.jsx(lPe,{src:Ne,fallback:ze,size:22})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:je}),_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:`color-mix(in srgb, ${vt} 10%, transparent)`,color:vt,letterSpacing:"0.04em"},children:si})]}),!Ws&&_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:fr})]}),_.jsx("div",{style:{display:"flex",alignItems:"center",gap:8},children:_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"4px 10px",borderRadius:6,background:hn?"color-mix(in srgb, var(--green) 10%, transparent)":"var(--bg-tertiary)",color:hn?"var(--green)":"var(--text-muted)",border:`1px solid ${hn?"color-mix(in srgb, var(--green) 18%, transparent)":"var(--border)"}`,flexShrink:0,letterSpacing:"0.04em",cursor:"pointer"},onClick:un=>{un.stopPropagation(),Ko(J,Gi)},children:Gi?"ENABLED":"DISABLED"})})]}),!Ws&&_.jsxs("div",{style:{display:"flex",gap:8,marginTop:12},children:[_.jsx("button",{onClick:()=>sw(J),style:{padding:"7px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",cursor:"pointer",fontFamily:"inherit"},children:"Configure"}),Gi&&_.jsx("button",{onClick:()=>Ko(J,!0),style:{padding:"7px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid color-mix(in srgb, var(--red) 30%, transparent)",background:"color-mix(in srgb, var(--red) 8%, transparent)",color:"var(--red)",cursor:"pointer",fontFamily:"inherit"},children:"Disable"}),!Gi&&_.jsx("button",{onClick:()=>Ko(J,!1),style:{padding:"7px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid color-mix(in srgb, var(--green) 30%, transparent)",background:"color-mix(in srgb, var(--green) 8%, transparent)",color:"var(--green)",cursor:"pointer",fontFamily:"inherit"},children:"Enable"})]}),Ws&&_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[J==="searxng"&&_.jsx(ab,{label:"SearXNG URL",placeholder:"http://localhost:8080",value:gr.url??"",onChange:un=>Zd("url",un),isSecret:!1}),J==="sonarqube"&&_.jsxs(_.Fragment,{children:[_.jsx(ab,{label:"Host URL",placeholder:"http://localhost:9000",value:gr.hostUrl??"",onChange:un=>Zd("hostUrl",un),isSecret:!1}),_.jsx(ab,{label:"Token",placeholder:"squ_...",value:gr.token??"",onChange:un=>Zd("token",un)}),_.jsx(ab,{label:"Project Base Key",placeholder:"vec",value:gr.projectBaseKey??"",onChange:un=>Zd("projectBaseKey",un),isSecret:!1}),_.jsx(ab,{label:"Scanner Docker Image",placeholder:"sonarsource/sonar-scanner-cli:latest",value:gr.scannerImage??"",onChange:un=>Zd("scannerImage",un),isSecret:!1})]}),(J==="gitleaks"||J==="semgrep"||J==="trivy")&&_.jsx(ab,{label:"Docker Image",placeholder:Ts[J]??"",value:gr.image??"",onChange:un=>Zd("image",un),isSecret:!1}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsx("button",{onClick:()=>Ye(null),style:{padding:"8px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",cursor:"pointer",fontFamily:"inherit"},children:"Cancel"}),_.jsx("button",{disabled:Se,onClick:()=>{J==="searxng"?tc("searxng",{url:gr.url||"",enabled:!0}):J==="sonarqube"?tc("sonarqube",{hostUrl:gr.hostUrl||"http://localhost:9000",token:gr.token||"",projectBaseKey:gr.projectBaseKey||"vec",scannerImage:gr.scannerImage||"sonarsource/sonar-scanner-cli:latest",enabled:!0}):tc(J,{image:gr.image||Ts[J]||"",enabled:!0})},style:{padding:"8px 16px",borderRadius:8,fontSize:12,fontWeight:600,border:"none",background:vt,color:"#fff",cursor:Se?"wait":"pointer",fontFamily:"inherit",opacity:Se?.5:1},children:Se?"Saving...":"Save"})]})]})]})}function rw(){const J=si=>`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${si}&size=32`,je=[{title:"Search",color:"var(--green)",items:[{key:"searxng",name:"SearXNG",logoUrl:J("searx.space"),fallbackIcon:_.jsx(Rh,{size:16}),configured:(Ot==null?void 0:Ot.searxng.configured)??!1,enabled:(Ot==null?void 0:Ot.searxng.enabled)??!1,detail:Ot!=null&&Ot.searxng.configured?Ot.searxng.url:"Not configured",color:"var(--green)",subtitle:"WEB SEARCH"}]},{title:"Code Quality",color:"var(--blue)",items:[{key:"sonarqube",name:"SonarQube",logoUrl:J("sonarqube.org"),fallbackIcon:_.jsx(jE,{size:16}),configured:(Ot==null?void 0:Ot.sonarqube.configured)??!1,enabled:(Ot==null?void 0:Ot.sonarqube.enabled)??!1,detail:Ot!=null&&Ot.sonarqube.configured?`${Ot.sonarqube.hostUrl} (${Ot.sonarqube.projectBaseKey})`:"Not configured",color:"var(--blue)",subtitle:"ANALYSIS"}]},{title:"Security Scanners",color:"var(--red)",items:[{key:"gitleaks",name:"Gitleaks",logoUrl:J("gitleaks.io"),fallbackIcon:_.jsx(HR,{size:16}),configured:!0,enabled:(Ot==null?void 0:Ot.gitleaks.enabled)??!0,detail:`Image: ${(Ot==null?void 0:Ot.gitleaks.image)??"zricethezav/gitleaks:latest"}`,color:"var(--red)",subtitle:"SECRETS"},{key:"semgrep",name:"Semgrep",logoUrl:J("semgrep.dev"),fallbackIcon:_.jsx(HR,{size:16}),configured:!0,enabled:(Ot==null?void 0:Ot.semgrep.enabled)??!0,detail:`Image: ${(Ot==null?void 0:Ot.semgrep.image)??"semgrep/semgrep"}`,color:"var(--orange)",subtitle:"SAST"},{key:"trivy",name:"Trivy",logoUrl:J("trivy.dev"),fallbackIcon:_.jsx(EA,{size:16}),configured:!0,enabled:(Ot==null?void 0:Ot.trivy.enabled)??!0,detail:`Image: ${(Ot==null?void 0:Ot.trivy.image)??"aquasec/trivy:latest"}`,color:"var(--purple)",subtitle:"SCA"}]}],Ne=je.flatMap(si=>si.items),ze=Ne.filter(si=>si.configured&&si.enabled).length,vt=(Ot==null?void 0:Ot.postTaskScansEnabled)??!1;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[Be&&!Be.running&&_.jsxs("div",{style:{padding:"14px 18px",borderRadius:10,background:Be.installed?"rgba(245,158,11,0.08)":"rgba(239,68,68,0.08)",border:`1px solid ${Be.installed?"rgba(245,158,11,0.2)":"rgba(239,68,68,0.2)"}`,display:"flex",alignItems:"center",gap:12},children:[_.jsx("div",{style:{width:32,height:32,borderRadius:8,background:Be.installed?"rgba(245,158,11,0.12)":"rgba(239,68,68,0.12)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:_.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:Be.installed?"var(--orange)":"var(--red)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[_.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),_.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),_.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]})}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:Be.installed?"Docker Not Running":"Docker Not Installed"}),_.jsx("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:2},children:Be.installed?"Docker is installed but the daemon isn't running. Start Docker to use scanners.":"Security scanners (Gitleaks, Semgrep, Trivy, SonarQube) require Docker to run."})]}),!Be.installed&&_.jsx("a",{href:"https://docs.docker.com/get-docker/",target:"_blank",rel:"noopener noreferrer",style:{padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:600,background:"var(--accent)",color:"#fff",textDecoration:"none",flexShrink:0,whiteSpace:"nowrap"},children:"Get Docker"})]}),_.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[[{label:"Active",value:String(ze),color:"var(--green)"},{label:"Total",value:String(Ne.length),color:"var(--orange)"}].map(si=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:si.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:si.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:si.label})]},si.label)),_.jsxs("div",{onClick:async()=>{We(!0);try{const si=await tn("/api/integration-config",{postTaskScansEnabled:!vt});si!=null&&si.ok&&(Le(si.config),Tn(`Post-task scans ${vt?"disabled":"enabled"}`))}catch{Tn("Toggle failed")}finally{We(!1)}},style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:`1px solid ${vt?"color-mix(in srgb, var(--green) 25%, transparent)":"var(--border)"}`,borderRadius:8,cursor:"pointer",transition:"border-color 0.15s"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:vt?"var(--green)":"var(--text-muted)",lineHeight:1},children:vt?"ON":"OFF"}),_.jsx("div",{style:{width:7,height:7,borderRadius:"50%",background:vt?"var(--green)":"var(--text-muted)",boxShadow:vt?"0 0 6px var(--green)":"none",opacity:vt?1:.4}})]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:"Post-Task Scans"})]})]}),je.map(si=>_.jsxs("div",{children:[_.jsx(od,{title:si.title,count:si.items.length}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(340px, 1fr))",gap:10},children:si.items.map($i=>_.jsx("div",{children:qa($i.key,$i.name,$i.logoUrl,$i.fallbackIcon,$i.color,$i.subtitle,$i.configured,$i.enabled,$i.detail)},$i.key))})]},si.title))]})}function ow(){return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Configured",value:String(Er.length),color:"var(--blue)"},{label:"Connected",value:String(me),color:"var(--green)"},{label:"Tools Available",value:String(b.servers.reduce((J,je)=>J+je.tools.length,0)),color:"var(--purple)"},{label:"Directory",value:String(qE.length),color:"var(--text-muted)"}].map(J=>_.jsxs("div",{style:{flex:"1 1 100px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:J.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:J.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:J.label})]},J.label))}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{flex:1}}),_.jsxs("button",{onClick:()=>H(J=>J+1),style:g1,title:"Add a custom MCP server",children:[_.jsx(yd,{size:12})," Add Custom MCP"]}),_.jsxs("button",{onClick:Yc,style:g1,title:"Refresh status",children:[_.jsx(hS,{size:12})," Refresh"]}),C&&_.jsxs("button",{onClick:bg,disabled:S,style:{display:"flex",alignItems:"center",gap:5,padding:"6px 14px",borderRadius:7,border:"none",background:"var(--accent)",color:"#fff",cursor:S?"wait":"pointer",fontSize:11,fontWeight:600,fontFamily:"inherit",opacity:S?.7:1,transition:"opacity 0.12s"},children:[_.jsx(IA,{size:11})," ",S?"Saving...":"Save Changes"]})]}),_.jsx(mPe,{activeServerNames:Er,mcpConfig:g,mcpStatus:b,onAdd:(J,je)=>{const Ne={};for(const ze of Object.keys(J.envVars))Ne[ze]=(je==null?void 0:je[ze])??"";m(ze=>{const vt=KR(ze);return vt.mcpServers[J.id]={command:J.command,args:[...J.args],env:Ne},vt}),L(!0),Tn(`Added "${J.name}" — click Save to apply`)},onRemove:J=>{wa(J)},onAddCustom:(J,je)=>{m(Ne=>{const ze=KR(Ne);return ze.mcpServers[J]=je,ze}),M(Ne=>({...Ne,[J]:!0})),L(!0),Tn(`Added "${J}" — click Save to apply`)},onUpdateCustom:(J,je)=>{xo(J,je)},onRemoveCustomEnv:(J,je)=>{Gd(J,je)},onAddCustomEnv:J=>{Vh(J)},expanded:R,onToggleExpand:J=>{M(je=>({...je,[J]:!je[J]}))},showCustomTrigger:A})]})}const xm=[{id:"github",label:"GitHub",domain:"github.com"},{id:"gitlab",label:"GitLab",domain:"gitlab.com"},{id:"bitbucket",label:"Bitbucket",domain:"bitbucket.org"},{id:"custom",label:"Custom",domain:""}];async function yg(){$t(!0);try{const J={username:_t.username,email:_t.email,provider:_t.provider,remoteUrl:_t.remoteUrl,backupEnabled:_t.backupEnabled,backupIntervalHours:_t.backupIntervalHours};_t.token&&!_t.token.startsWith("••••")&&(J.token=_t.token),await tn("/api/git-config",J),await Ei(),ns(!1),Tn("Git configuration saved")}catch{Tn("Failed to save Git configuration")}finally{$t(!1)}}async function wg(){Wn(!0),Qt(null);try{const J=await tn("/api/git-test",{});Qt(J)}catch{Qt({ok:!1,message:"Connection test failed"})}finally{Wn(!1)}}async function Uu(){ae(!0),Ue(null);try{const J=await tn("/api/git-backup",{});Ue(J),await Ei()}catch{Ue({ok:!1,message:"Backup failed"})}finally{ae(!1)}}function Cg(){var Ne;const J=Te,je=ze=>{var si;const vt=(si=xm.find($i=>$i.id===ze))==null?void 0:si.domain;return vt?`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${vt}&size=32`:void 0};return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Git Status",value:J!=null&&J.configured?"Connected":"Not Configured",color:J!=null&&J.configured?"var(--green)":"var(--text-muted)",icon:J!=null&&J.configured?_.jsx(Gie,{size:14}):_.jsx(TB,{size:14})},{label:"Provider",value:J!=null&&J.provider?((Ne=xm.find(ze=>ze.id===J.provider))==null?void 0:Ne.label)||J.provider:"—",color:"var(--cyan, #06b6d4)",icon:J!=null&&J.provider&&je(J.provider)?_.jsx("img",{src:je(J.provider),width:14,height:14,style:{borderRadius:3}}):_.jsx(up,{size:14})},{label:"Last Backup",value:J!=null&&J.lastBackup?new Date(J.lastBackup).toLocaleDateString():"Never",color:(J==null?void 0:J.lastBackupStatus)==="success"?"var(--green)":(J==null?void 0:J.lastBackupStatus)==="error"?"var(--red)":"var(--text-muted)",icon:_.jsx(CY,{size:14})},{label:"Auto-Backup",value:J!=null&&J.backupEnabled?`Every ${J.backupIntervalHours}h`:"Off",color:J!=null&&J.backupEnabled?"var(--blue)":"var(--text-muted)",icon:_.jsx(hS,{size:14})}].map(ze=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,color:ze.color,fontSize:15,fontWeight:700,lineHeight:1.2},children:[ze.icon,ze.value]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:ze.label})]},ze.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"Git Credentials"}),_.jsx("div",{className:"vec-card",style:{padding:16},children:bi?_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:6},children:"Provider"}),_.jsx("div",{style:{display:"flex",gap:6},children:xm.map(ze=>_.jsxs("button",{onClick:()=>Si(vt=>({...vt,provider:ze.id})),style:{padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,border:`1px solid ${_t.provider===ze.id?"var(--accent)":"var(--border)"}`,background:_t.provider===ze.id?"color-mix(in srgb, var(--accent) 10%, transparent)":"transparent",color:_t.provider===ze.id?"var(--accent)":"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit",display:"flex",alignItems:"center",gap:6},children:[ze.domain&&_.jsx("img",{src:je(ze.id),width:14,height:14,style:{borderRadius:3}}),ze.label]},ze.id))})]}),_.jsxs("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:[_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Username"}),_.jsx("input",{value:_t.username,onChange:ze=>Si(vt=>({...vt,username:ze.target.value})),placeholder:"e.g. octocat",style:{width:"100%",padding:"8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}})]}),_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Email"}),_.jsx("input",{value:_t.email,onChange:ze=>Si(vt=>({...vt,email:ze.target.value})),placeholder:"you@example.com",style:{width:"100%",padding:"8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}})]})]}),_.jsxs("div",{children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Personal Access Token (PAT)"}),_.jsxs("div",{style:{position:"relative"},children:[_.jsx("input",{type:Pt?"text":"password",value:_t.token,onChange:ze=>Si(vt=>({...vt,token:ze.target.value})),placeholder:_t.provider==="github"?"ghp_xxxxxxxxxxxx":"Personal access token",style:{width:"100%",padding:"8px 36px 8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"monospace",outline:"none",boxSizing:"border-box"}}),_.jsx("button",{type:"button",onClick:()=>Dt(ze=>!ze),style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2},children:Pt?_.jsx(ALe,{size:14}):_.jsx(jE,{size:14})})]}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:4},children:[_t.provider==="github"&&"Generate at GitHub → Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens",_t.provider==="gitlab"&&"Generate at GitLab → Preferences → Access Tokens",_t.provider==="bitbucket"&&"Generate at Bitbucket → Personal Settings → App Passwords",_t.provider==="custom"&&"Enter a token with push access to your remote repository"]})]}),_.jsxs("div",{children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Remote Repository URL"}),_.jsx("input",{value:_t.remoteUrl,onChange:ze=>Si(vt=>({...vt,remoteUrl:ze.target.value})),placeholder:_t.provider==="github"?"https://github.com/username/octo-vec-backup.git":_t.provider==="gitlab"?"https://gitlab.com/username/octo-vec-backup.git":_t.provider==="bitbucket"?"https://bitbucket.org/username/octo-vec-backup.git":"https://your-git-server.com/repo.git",style:{width:"100%",padding:"8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:4},children:["Agents will use this as the default remote for ",_.jsx("code",{style:{fontSize:10},children:"git push"}),". Memory backups also push here."]})]}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsxs("button",{onClick:yg,disabled:It||!_t.username||!_t.token||!_t.remoteUrl,style:{padding:"8px 20px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",fontSize:12,fontWeight:600,cursor:"pointer",fontFamily:"inherit",opacity:It||!_t.username||!_t.token||!_t.remoteUrl?.5:1,display:"flex",alignItems:"center",gap:6},children:[_.jsx(IA,{size:13}),It?"Saving...":"Save"]}),_.jsx("button",{onClick:()=>{ns(!1),Qt(null)},style:{padding:"8px 16px",borderRadius:6,border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)",fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit"},children:"Cancel"})]})]}):_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[_.jsxs("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:[_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Username"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.username?"var(--text-primary)":"var(--text-muted)"},children:(J==null?void 0:J.username)||"Not set"})]}),_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Email"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.email?"var(--text-primary)":"var(--text-muted)"},children:(J==null?void 0:J.email)||"Not set"})]}),_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Access Token"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.token?"var(--text-primary)":"var(--text-muted)"},children:(J==null?void 0:J.token)||"Not set"})]})]}),_.jsx("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Remote URL"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.remoteUrl?"var(--text-primary)":"var(--text-muted)",wordBreak:"break-all"},children:(J==null?void 0:J.remoteUrl)||"Not set"})]})}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsxs("button",{onClick:()=>{Si({username:(J==null?void 0:J.username)||"",email:(J==null?void 0:J.email)||"",token:(J==null?void 0:J.token)||"",provider:(J==null?void 0:J.provider)||"github",remoteUrl:(J==null?void 0:J.remoteUrl)||"",backupEnabled:(J==null?void 0:J.backupEnabled)||!1,backupIntervalHours:(J==null?void 0:J.backupIntervalHours)||24}),ns(!0),Dt(!1),Qt(null)},style:{padding:"7px 16px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",display:"flex",alignItems:"center",gap:6},children:[_.jsx(ZW,{size:13}),J!=null&&J.configured?"Edit Credentials":"Set Up Git"]}),(J==null?void 0:J.configured)&&_.jsx("button",{onClick:wg,disabled:Ti,style:{padding:"7px 16px",borderRadius:6,border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)",fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",opacity:Ti?.5:1},children:Ti?"Testing...":"Test Connection"})]}),xi&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:6,fontSize:12,marginTop:4,background:xi.ok?"color-mix(in srgb, var(--green) 10%, transparent)":"color-mix(in srgb, var(--red) 10%, transparent)",color:xi.ok?"var(--green)":"var(--red)",border:`1px solid ${xi.ok?"var(--green)":"var(--red)"}`,borderColor:xi.ok?"color-mix(in srgb, var(--green) 25%, transparent)":"color-mix(in srgb, var(--red) 25%, transparent)"},children:[xi.ok?_.jsx(Mc,{size:12,style:{marginRight:6}}):_.jsx(Pr,{size:12,style:{marginRight:6}}),xi.message]})]})})]}),_.jsxs("div",{children:[_.jsx(od,{title:"Memory Backup"}),_.jsxs("div",{className:"vec-card",style:{padding:16},children:[_.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",marginBottom:14,lineHeight:1.5},children:"Back up all agent memory (STM, LTM, SLTM), settings, and roster to your Git repository. Agents' knowledge, daily journals, and core identity files are preserved and version-controlled."}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 0",borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)",marginBottom:14},children:[_.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer",flex:1},children:[_.jsx("div",{onClick:()=>{const ze=!_t.backupEnabled;Si(vt=>({...vt,backupEnabled:ze})),tn("/api/git-config",{backupEnabled:ze}).then(()=>Ei())},style:{width:36,height:20,borderRadius:10,background:Te!=null&&Te.backupEnabled||_t.backupEnabled?"var(--accent)":"var(--bg-tertiary)",position:"relative",cursor:"pointer",transition:"background 0.15s",flexShrink:0},children:_.jsx("div",{style:{width:16,height:16,borderRadius:8,background:"#fff",position:"absolute",top:2,left:Te!=null&&Te.backupEnabled||_t.backupEnabled?18:2,transition:"left 0.15s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}})}),_.jsx("span",{style:{fontSize:13,color:"var(--text-primary)"},children:"Automatic Backup"})]}),((Te==null?void 0:Te.backupEnabled)||_t.backupEnabled)&&_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"Every"}),_.jsx("select",{value:(Te==null?void 0:Te.backupIntervalHours)||_t.backupIntervalHours,onChange:ze=>{const vt=Number(ze.target.value);Si(si=>({...si,backupIntervalHours:vt})),tn("/api/git-config",{backupIntervalHours:vt}).then(()=>Ei())},style:{padding:"4px 8px",borderRadius:5,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:12,fontFamily:"inherit"},children:[1,4,8,12,24,48,72].map(ze=>_.jsxs("option",{value:ze,children:[ze,"h"]},ze))})]})]}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsxs("button",{onClick:Uu,disabled:Is||!(J!=null&&J.configured),style:{padding:"8px 20px",borderRadius:6,border:"none",background:J!=null&&J.configured?"var(--accent)":"var(--bg-tertiary)",color:J!=null&&J.configured?"#fff":"var(--text-muted)",fontSize:12,fontWeight:600,cursor:J!=null&&J.configured?"pointer":"not-allowed",fontFamily:"inherit",opacity:Is?.5:1,display:"flex",alignItems:"center",gap:6},children:[_.jsx(fEe,{size:13}),Is?"Backing up...":"Backup Now"]}),(J==null?void 0:J.lastBackup)&&_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)"},children:["Last: ",new Date(J.lastBackup).toLocaleString(),J.lastBackupStatus==="success"&&_.jsx(Mc,{size:11,style:{marginLeft:4,color:"var(--green)"}}),J.lastBackupStatus==="error"&&_.jsx(Pr,{size:11,style:{marginLeft:4,color:"var(--red)"}})]})]}),ke&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:6,fontSize:12,marginTop:10,background:ke.ok?"color-mix(in srgb, var(--green) 10%, transparent)":"color-mix(in srgb, var(--red) 10%, transparent)",color:ke.ok?"var(--green)":"var(--red)",border:`1px solid ${ke.ok?"color-mix(in srgb, var(--green) 25%, transparent)":"color-mix(in srgb, var(--red) 25%, transparent)"}`},children:[ke.ok?_.jsx(Gie,{size:12,style:{marginRight:6}}):_.jsx(TB,{size:12,style:{marginRight:6}}),ke.message]}),(J==null?void 0:J.lastBackupStatus)==="error"&&J.lastBackupMessage&&!ke&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:6,fontSize:12,marginTop:10,background:"color-mix(in srgb, var(--red) 10%, transparent)",color:"var(--red)",border:"1px solid color-mix(in srgb, var(--red) 25%, transparent)"},children:[_.jsx(TB,{size:12,style:{marginRight:6}}),"Last error: ",J.lastBackupMessage]})]})]}),_.jsxs("div",{children:[_.jsx(od,{title:"How It Works"}),_.jsx("div",{className:"vec-card",style:{padding:16},children:_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[{icon:_.jsx(up,{size:14}),title:"Agent Projects",desc:"Agents use your Git credentials to push project code. Each agent commits under their own name (e.g. Maya → maya@octovec.dev)."},{icon:_.jsx(EA,{size:14}),title:"Memory Backup",desc:"STM (scratchpad), LTM (daily journals), and SLTM (core identity) for every agent are committed and pushed to your backup repo."},{icon:_.jsx(HR,{size:14}),title:"Credentials",desc:"Your PAT is stored locally in the VEC data directory. It's never sent to any LLM — only used for git push operations."},{icon:_.jsx(hS,{size:14}),title:"Auto-Backup",desc:"When enabled, VEC automatically commits and pushes memory changes on your chosen schedule. Manual backup is always available."}].map((ze,vt)=>_.jsxs("div",{style:{display:"flex",gap:10,alignItems:"flex-start"},children:[_.jsx("div",{style:{width:28,height:28,borderRadius:6,flexShrink:0,background:"color-mix(in srgb, var(--cyan, #06b6d4) 10%, transparent)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--cyan, #06b6d4)"},children:ze.icon}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",marginBottom:2},children:ze.title}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.5},children:ze.desc})]})]},vt))})})]})]})}function se({keys:J}){const je=J.split("+");return _.jsx("div",{style:{display:"flex",gap:3,alignItems:"center"},children:je.map((Ne,ze)=>_.jsx("span",{style:{padding:"2px 7px",fontSize:11,fontWeight:600,fontFamily:"'Cascadia Code', 'Fira Code', monospace",background:"var(--bg-primary)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-primary)",boxShadow:"0 1px 0 var(--border)",lineHeight:"18px",minWidth:22,textAlign:"center"},children:Ne==="Ctrl"?navigator.platform.toUpperCase().includes("MAC")?"⌘":"Ctrl":Ne==="Shift"?navigator.platform.toUpperCase().includes("MAC")?"⇧":"Shift":Ne==="Alt"?navigator.platform.toUpperCase().includes("MAC")?"⌥":"Alt":Ne==="Enter"?"↵":Ne==="Escape"?"Esc":Ne},ze))})}function He({shortcutId:J,onRecord:je}){const Ne=z.useRef(null);return z.useEffect(()=>{var vt;(vt=Ne.current)==null||vt.focus();const ze=si=>{if(si.preventDefault(),si.stopPropagation(),["Control","Shift","Alt","Meta"].includes(si.key))return;const $i=[];(si.ctrlKey||si.metaKey)&&$i.push("Ctrl"),si.shiftKey&&$i.push("Shift"),si.altKey&&$i.push("Alt");let Gi=si.key;if(Gi===" ")Gi="Space";else if(Gi.length===1)Gi=Gi.toUpperCase();else if(Gi==="Escape"){vl(null);return}$i.push(Gi),je($i.join("+"))};return window.addEventListener("keydown",ze,!0),()=>window.removeEventListener("keydown",ze,!0)},[J,je]),_.jsx("div",{ref:Ne,tabIndex:-1,style:{padding:"4px 12px",fontSize:11,fontWeight:600,fontFamily:"inherit",background:"var(--accent)",color:"#fff",borderRadius:5,animation:"pulse 1.2s infinite",outline:"none",cursor:"default"},children:"Press keys... (Esc to cancel)"})}function Ge(){const J=Array.from(new Set(an.map(Ne=>Ne.category))),je=an.filter((Ne,ze)=>{var vt;return Ne.keys!==((vt=gs[ze])==null?void 0:vt.keys)}).length;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsxs("div",{children:[_.jsx("h2",{style:{fontSize:18,fontWeight:700,margin:0,color:"var(--text-primary)"},children:"Keyboard Shortcuts"}),_.jsx("p",{style:{fontSize:12,color:"var(--text-muted)",margin:"4px 0 0"},children:"Click on a shortcut to customize it. Press Escape to cancel."})]}),_.jsxs("button",{onClick:Bs,style:{display:"flex",alignItems:"center",gap:6,padding:"7px 14px",fontSize:11,fontWeight:600,fontFamily:"inherit",background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-secondary)",cursor:"pointer"},onMouseEnter:Ne=>{Ne.currentTarget.style.background="var(--bg-hover)",Ne.currentTarget.style.color="var(--text-primary)"},onMouseLeave:Ne=>{Ne.currentTarget.style.background="var(--bg-tertiary)",Ne.currentTarget.style.color="var(--text-secondary)"},children:[_.jsx(w_,{size:12})," Reset All"]})]}),J.map(Ne=>_.jsxs("div",{children:[_.jsx(od,{title:Ne,count:an.filter(ze=>ze.category===Ne).length}),_.jsx("div",{style:{borderRadius:8,border:"1px solid var(--border)",overflow:"hidden",background:"var(--bg-card)"},children:an.filter(ze=>ze.category===Ne).map((ze,vt,si)=>{var fr;const $i=Kc===ze.id,Gi=ze.keys!==((fr=gs.find(Ws=>Ws.id===ze.id))==null?void 0:fr.keys);return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",borderBottom:vt<si.length-1?"1px solid var(--border)":"none",background:$i?"color-mix(in srgb, var(--accent) 6%, transparent)":"transparent",transition:"background 0.1s"},onMouseEnter:Ws=>{$i||(Ws.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:Ws=>{$i||(Ws.currentTarget.style.background="transparent")},children:[_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12.5,fontWeight:500,color:"var(--text-primary)"},children:ze.label}),_.jsx("div",{style:{fontSize:10.5,color:"var(--text-muted)",marginTop:1},children:ze.description})]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[Gi&&!$i&&_.jsx("button",{onClick:()=>vg(ze.id),title:"Reset to default",style:{background:"transparent",border:"none",cursor:"pointer",color:"var(--text-muted)",display:"flex",padding:3,borderRadius:4},onMouseEnter:Ws=>{Ws.currentTarget.style.color="var(--text-primary)",Ws.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:Ws=>{Ws.currentTarget.style.color="var(--text-muted)",Ws.currentTarget.style.background="transparent"},children:_.jsx(w_,{size:12})}),$i?_.jsx(He,{shortcutId:ze.id,onRecord:Ws=>Hh(ze.id,Ws)}):_.jsx("button",{onClick:()=>vl(ze.id),style:{background:"transparent",border:"none",cursor:"pointer",padding:0,display:"flex"},title:"Click to change shortcut",children:_.jsx(se,{keys:ze.keys})})]})]},ze.id)})})]},Ne)),_.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"12px 14px",borderRadius:8,background:"color-mix(in srgb, var(--yellow, #e2b93d) 6%, transparent)",border:"1px solid color-mix(in srgb, var(--yellow, #e2b93d) 15%, transparent)"},children:[_.jsx(SLe,{size:14,style:{color:"var(--yellow, #e2b93d)",flexShrink:0,marginTop:1}}),_.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary)",lineHeight:1.5},children:["Shortcuts work globally across the dashboard. Navigation shortcuts switch between views instantly. Editor shortcuts only work when the editor view is active.",je>0&&_.jsxs("span",{style:{color:"var(--accent)",fontWeight:600},children:[" ",je," custom binding",je>1?"s":""," active."]})]})]})]})}function at(){const J=[{label:"Default",colors:Ri},{label:"Ocean",colors:{userBubble:"#0077b6",userText:"#ffffff",agentBubble:"#1b2838",agentText:"#cad2de",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Forest",colors:{userBubble:"#2d6a4f",userText:"#ffffff",agentBubble:"#1b2e1b",agentText:"#c5dfc5",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Sunset",colors:{userBubble:"#e85d04",userText:"#ffffff",agentBubble:"#2a1a0e",agentText:"#f0d5be",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Lavender",colors:{userBubble:"#7b2cbf",userText:"#ffffff",agentBubble:"#1e1230",agentText:"#d4bfec",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Rose",colors:{userBubble:"#e63971",userText:"#ffffff",agentBubble:"#2a1018",agentText:"#f0c0d0",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Slate",colors:{userBubble:"#475569",userText:"#f8fafc",agentBubble:"#1e293b",agentText:"#cbd5e1",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}}];function je({label:Ts,value:un,fallback:aw,onChange:lw}){const Sg=un||aw;return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 0"},children:[_.jsx("label",{style:{position:"relative",width:32,height:32,borderRadius:8,border:"2px solid var(--border)",cursor:"pointer",overflow:"hidden",background:Sg,flexShrink:0},children:_.jsx("input",{type:"color",value:Sg,onChange:Kv=>lw(Kv.target.value),style:{position:"absolute",inset:0,opacity:0,cursor:"pointer",width:"100%",height:"100%"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:Ts}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace"},children:Sg})]}),un&&_.jsx("button",{onClick:()=>lw(""),title:"Reset to default",style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:4,display:"flex"},children:_.jsx(w_,{size:12})})]})}const Ne=typeof window<"u"?getComputedStyle(document.documentElement):null,ze=(Ne==null?void 0:Ne.getPropertyValue("--accent").trim())||"#5b8def",vt=(Ne==null?void 0:Ne.getPropertyValue("--bg-tertiary").trim())||"#2a2a2a",si=(Ne==null?void 0:Ne.getPropertyValue("--text-primary").trim())||"#e0e0e0",$i=(Ne==null?void 0:Ne.getPropertyValue("--text-muted").trim())||"#666",Gi=fi.userBubble||ze,fr=fi.userText||"#ffffff",Ws=fi.agentBubble||vt,hn=fi.agentText||si,gr=fi.timestampUser||"rgba(255,255,255,0.6)",Zd=fi.timestampAgent||$i;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:4},children:"Color Presets"}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:14},children:"Quick themes for your chat bubbles"}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:J.map(Ts=>{const un=fi.userBubble===Ts.colors.userBubble&&fi.agentBubble===Ts.colors.agentBubble;return _.jsxs("button",{onClick:()=>nn(Ts.colors),style:{display:"flex",alignItems:"center",gap:8,padding:"8px 14px",borderRadius:8,cursor:"pointer",fontFamily:"inherit",border:un?"2px solid var(--accent)":"1px solid var(--border)",background:un?"var(--bg-hover)":"var(--bg-secondary)",color:"var(--text-primary)",fontSize:12,fontWeight:500},children:[_.jsxs("div",{style:{display:"flex",gap:3},children:[_.jsx("div",{style:{width:14,height:14,borderRadius:4,background:Ts.colors.userBubble||ze}}),_.jsx("div",{style:{width:14,height:14,borderRadius:4,background:Ts.colors.agentBubble||vt}})]}),Ts.label]},Ts.label)})})]}),_.jsxs("div",{style:{display:"flex",gap:16,flexWrap:"wrap"},children:[_.jsxs("div",{style:{flex:"1 1 240px",background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:12},children:"Your Messages"}),_.jsx(je,{label:"Bubble Color",value:fi.userBubble,fallback:ze,onChange:Ts=>nn(un=>({...un,userBubble:Ts}))}),_.jsx(je,{label:"Text Color",value:fi.userText,fallback:"#ffffff",onChange:Ts=>nn(un=>({...un,userText:Ts}))}),_.jsx(je,{label:"Timestamp Color",value:fi.timestampUser,fallback:"rgba(255,255,255,0.6)",onChange:Ts=>nn(un=>({...un,timestampUser:Ts}))})]}),_.jsxs("div",{style:{flex:"1 1 240px",background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:12},children:"Agent Messages"}),_.jsx(je,{label:"Bubble Color",value:fi.agentBubble,fallback:vt,onChange:Ts=>nn(un=>({...un,agentBubble:Ts}))}),_.jsx(je,{label:"Text Color",value:fi.agentText,fallback:si,onChange:Ts=>nn(un=>({...un,agentText:Ts}))}),_.jsx(je,{label:"Timestamp Color",value:fi.timestampAgent,fallback:$i,onChange:Ts=>nn(un=>({...un,timestampAgent:Ts}))})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:14},children:"Preview"}),_.jsxs("div",{style:{background:"var(--bg-primary)",borderRadius:10,padding:16,display:"flex",flexDirection:"column",gap:10,maxWidth:420},children:[_.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:_.jsxs("div",{style:{padding:"8px 14px 6px",borderRadius:"14px 14px 4px 14px",background:Gi,color:fr,fontSize:13,lineHeight:1.55,maxWidth:"75%"},children:["Hey, can you review the PR I just pushed?",_.jsx("div",{style:{fontSize:10,textAlign:"right",marginTop:4,color:gr},children:"2:34 PM"})]})}),_.jsx("div",{style:{display:"flex",justifyContent:"flex-start"},children:_.jsxs("div",{style:{padding:"8px 14px 6px",borderRadius:"14px 14px 14px 4px",background:Ws,color:hn,fontSize:13,lineHeight:1.55,maxWidth:"75%"},children:["Sure! I'll take a look at the changes and get back to you with feedback.",_.jsx("div",{style:{fontSize:10,textAlign:"right",marginTop:4,color:Zd},children:"2:35 PM"})]})}),_.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:_.jsxs("div",{style:{padding:"8px 14px 6px",borderRadius:"14px 14px 4px 14px",background:Gi,color:fr,fontSize:13,lineHeight:1.55,maxWidth:"75%"},children:["Thanks!",_.jsx("div",{style:{fontSize:10,textAlign:"right",marginTop:4,color:gr},children:"2:35 PM"})]})})]})]})]})}const[zt,Pi]=z.useState(""),[ni,Yn]=z.useState(null),[li,to]=z.useState([]);z.useEffect(()=>{if(n!=="mobile")return;fetch(dh("/api/mobile-qr"),{credentials:"include"}).then(Ne=>Ne.json()).then(Ne=>{Yn(Ne);const ze=JSON.stringify(Ne);return ut(()=>import("./browser-CrmWAuFF.js").then(vt=>vt.b),[]).then(vt=>vt.toDataURL(ze,{width:220,margin:1,color:{dark:"#ffffff",light:"#000000"},errorCorrectionLevel:"M"}))}).then(Ne=>Pi(Ne)).catch(()=>{});function J(){fetch(dh("/api/mobile-devices"),{credentials:"include"}).then(Ne=>Ne.json()).then(to).catch(()=>{})}J();const je=setInterval(J,5e3);return()=>clearInterval(je)},[n]);function Go(){const J=(ni==null?void 0:ni.url)||"",je=(ni==null?void 0:ni.key)||"";return _.jsxs("div",{style:{padding:"24px 28px",maxWidth:600,display:"flex",flexDirection:"column",gap:24},children:[_.jsxs("div",{children:[_.jsx("h2",{style:{fontSize:18,fontWeight:700,margin:0,color:"var(--text-primary)"},children:"Mobile Connect"}),_.jsx("p",{style:{fontSize:13,color:"var(--text-muted)",marginTop:4},children:"Scan this QR code with the OCTO VEC mobile app to connect instantly."})]}),_.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:16,background:"var(--bg-card)",borderRadius:16,border:"1px solid var(--border)",padding:32},children:[_.jsx("div",{style:{width:252,height:252,display:"flex",alignItems:"center",justifyContent:"center",background:"#000",borderRadius:12,border:"1px solid var(--border)"},children:zt?_.jsx("img",{src:zt,alt:"QR Code",width:220,height:220,style:{borderRadius:8}}):_.jsx("div",{style:{color:"var(--text-muted)",fontSize:13},children:"Generating..."})}),_.jsxs("div",{style:{textAlign:"center"},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Same Network"}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:"Phone must be on the same WiFi as this PC"})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:12,border:"1px solid var(--border)",padding:16,display:"flex",flexDirection:"column",gap:8},children:[_.jsx("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:"Connection Details"}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)",width:60},children:"Server"}),_.jsx("code",{style:{fontSize:12,color:"var(--text-primary)",background:"var(--bg-tertiary)",padding:"4px 8px",borderRadius:6},children:J||"Loading..."})]}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)",width:60},children:"Key"}),_.jsx("code",{style:{fontSize:12,color:"var(--text-primary)",background:"var(--bg-tertiary)",padding:"4px 8px",borderRadius:6},children:je?"••••••••":"Not found in URL"})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:12,border:"1px solid var(--border)",padding:16,display:"flex",flexDirection:"column",gap:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsx("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:"Connected Devices"}),li.length>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:700,color:"var(--green)",background:"var(--green-bg)",padding:"2px 8px",borderRadius:8},children:[li.length," active"]})]}),li.length===0?_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 0",color:"var(--text-muted)",fontSize:13},children:[_.jsx(TA,{size:16}),_.jsx("span",{children:"No devices paired yet"})]}):li.map((Ne,ze)=>{const vt=Math.floor((Date.now()-new Date(Ne.lastSeen).getTime())/1e3),si=Ne.online?vt<10?"just now":vt<60?`${vt}s ago`:`${Math.floor(vt/60)}m ago`:vt<3600?`${Math.floor(vt/60)}m ago`:vt<86400?`${Math.floor(vt/3600)}h ago`:`${Math.floor(vt/86400)}d ago`,$i=new Date(Ne.pairedAt).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"});return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 0",borderTop:ze>0?"1px solid var(--border)":"none"},children:[_.jsx("div",{style:{width:40,height:40,borderRadius:12,background:Ne.online?"var(--green-bg)":"var(--bg-tertiary)",border:`1px solid ${Ne.online?"rgba(61,214,140,0.15)":"var(--border)"}`,display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx(TA,{size:18,style:{color:Ne.online?"var(--green)":"var(--text-muted)"}})}),_.jsxs("div",{style:{flex:1},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:Ne.name}),_.jsx("span",{style:{fontSize:9,fontWeight:700,padding:"1px 6px",borderRadius:6,background:Ne.online?"var(--green-bg)":"var(--bg-tertiary)",color:Ne.online?"var(--green)":"var(--text-muted)"},children:Ne.online?"ONLINE":"OFFLINE"})]}),_.jsxs("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:[Ne.info," · Paired ",$i]}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:1},children:["Last active ",si," · ",Ne.ip]})]}),_.jsx("button",{onClick:async()=>{if(confirm(`Unlink ${Ne.name}? You'll need to scan the QR code again to reconnect.`))try{await fetch(dh("/api/mobile-devices/unlink"),{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:Ne.id})}),to(Gi=>Gi.filter(fr=>fr.id!==Ne.id))}catch{}},title:"Unlink device",style:{width:28,height:28,borderRadius:7,border:"none",padding:0,background:"var(--bg-tertiary)",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.1s, color 0.1s"},onMouseEnter:Gi=>{Gi.currentTarget.style.background="var(--red-bg)",Gi.currentTarget.style.color="var(--red)"},onMouseLeave:Gi=>{Gi.currentTarget.style.background="var(--bg-tertiary)",Gi.currentTarget.style.color="var(--text-muted)"},children:_.jsx(Pr,{size:14})})]},Ne.id)})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:12,border:"1px solid var(--border)",padding:16,display:"flex",flexDirection:"column",gap:10},children:[_.jsx("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:"How to connect"}),["Install the OCTO VEC app on your Android phone",'Open the app and tap "Scan QR Code"',"Point your camera at the QR code above","You'll be connected automatically"].map((Ne,ze)=>_.jsxs("div",{style:{display:"flex",gap:10,alignItems:"flex-start"},children:[_.jsx("span",{style:{width:20,height:20,borderRadius:10,background:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,color:"var(--text-muted)",flexShrink:0},children:ze+1}),_.jsx("span",{style:{fontSize:13,color:"var(--text-secondary)",lineHeight:"20px"},children:Ne})]},ze))]})]})}const Uh={general:lt,models:Vt,channels:yl,integrations:rw,mcp:ow,versioning:Cg,chat:at,shortcuts:Ge,mobile:Go},$u=an.filter((J,je)=>{var Ne;return J.keys!==((Ne=gs[je])==null?void 0:Ne.keys)}).length,ic={general:null,models:ko>0?String(ko):null,channels:jh>0?String(jh):null,integrations:Yt>0?String(Yt):null,mcp:Er.length>0?String(Er.length):null,versioning:Te!=null&&Te.configured?"✓":null,chat:fi.userBubble?"✓":null,shortcuts:$u>0?String($u):null,mobile:null};return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{padding:"24px 28px 16px"},children:[_.jsx("h1",{className:"page-title",children:"Settings"}),_.jsx("div",{className:"page-subtitle",children:"System configuration, integrations & MCP servers"})]}),_.jsxs("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[_.jsx("div",{style:{width:190,flexShrink:0,padding:"12px 12px 20px",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",gap:2,overflow:"auto"},children:aPe.map(J=>{const je=n===J.key,Ne=ic[J.key];return _.jsxs("button",{"data-tour-id":`settings-${J.key}`,onClick:()=>e(J.key),style:{display:"flex",alignItems:"center",gap:10,padding:"9px 12px",borderRadius:7,border:"none",background:je?"var(--bg-hover)":"transparent",color:je?"var(--text-primary)":"var(--text-secondary)",fontSize:13,fontWeight:je?500:400,cursor:"pointer",fontFamily:"inherit",textAlign:"left",width:"100%",transition:"background 0.08s, color 0.08s"},children:[_.jsx("span",{style:{color:je?J.color:"var(--text-muted)",display:"flex",transition:"color 0.08s"},children:J.icon}),_.jsx("span",{style:{flex:1},children:J.label}),Ne&&_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"1px 6px",borderRadius:4,background:je?`color-mix(in srgb, ${J.color} 12%, transparent)`:"var(--bg-tertiary)",color:je?J.color:"var(--text-muted)",fontVariantNumeric:"tabular-nums",transition:"background 0.08s, color 0.08s"},children:Ne})]},J.key)})}),_.jsx("div",{style:{flex:1,overflow:"auto",padding:"20px 28px 28px"},children:Uh[n]()})]}),l&&s&&(()=>{const J=s.providers.find(je=>je.id===l);return J?_.jsx(fPe,{provider:J,onClose:()=>{c(null),h("")},onSave:je=>Kd(J.id,je),saving:u}):null})(),E&&_.jsx("div",{style:{position:"fixed",bottom:24,right:24,background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 18px",fontSize:13,color:"var(--text-primary)",boxShadow:"var(--shadow-lg)",zIndex:9999,animation:"fade-in 0.12s ease-out"},children:E})]})}function nse({provider:n,onClick:e}){return _.jsxs("button",{onClick:e,style:{display:"flex",alignItems:"center",gap:10,padding:"12px 14px",borderRadius:10,width:"100%",background:"var(--bg-card)",border:"1px solid var(--border)",cursor:"pointer",fontFamily:"inherit",textAlign:"left",transition:"border-color 0.12s, background 0.12s"},onMouseEnter:t=>{t.currentTarget.style.borderColor="var(--accent)",t.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:t=>{t.currentTarget.style.borderColor="var(--border)",t.currentTarget.style.background="var(--bg-card)"},children:[_.jsx("img",{src:n.iconUrl,alt:n.name,style:{width:28,height:28,flexShrink:0,borderRadius:6},onError:t=>{t.target.style.display="none"}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:n.name}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace"},children:[n.models.length," model",n.models.length!==1?"s":""]})]}),_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",flexShrink:0,background:n.configured?"var(--green)":"var(--text-muted)",opacity:n.configured?1:.3}})]})}function fPe({provider:n,onClose:e,onSave:t,saving:i}){const[s,r]=z.useState(""),[o,a]=z.useState(!1),[l,c]=z.useState(""),d=n.models.filter(h=>h.toLowerCase().includes(l.toLowerCase()));return _.jsxs(_.Fragment,{children:[_.jsx("div",{onClick:e,style:{position:"fixed",inset:0,zIndex:100,background:"rgba(0,0,0,0.6)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"}}),_.jsxs("div",{style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:101,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:16,width:560,maxWidth:"92vw",maxHeight:"85vh",boxShadow:"0 24px 80px rgba(0,0,0,0.5), 0 0 0 1px var(--border)",overflow:"hidden",animation:"fade-in 0.12s ease-out",display:"flex",flexDirection:"column"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"20px 24px 16px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx("div",{style:{width:44,height:44,borderRadius:12,flexShrink:0,background:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx("img",{src:n.iconUrl,alt:n.name,style:{width:28,height:28,borderRadius:6},onError:h=>{h.target.style.display="none"}})}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:17,fontWeight:700,color:"var(--text-primary)"},children:n.name}),_.jsxs("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:2},children:[n.models.length," model",n.models.length!==1?"s":""," available",n.configured&&_.jsx("span",{style:{color:"var(--green)",marginLeft:8,fontWeight:600},children:"Active"}),!n.configured&&_.jsx("span",{style:{color:"var(--text-muted)",marginLeft:8,opacity:.6},children:"Not configured"})]})]}),_.jsx("button",{onClick:e,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-tertiary)",color:"var(--text-muted)",cursor:"pointer",padding:0,transition:"all 0.12s"},onMouseEnter:h=>{h.currentTarget.style.background="var(--bg-hover)",h.currentTarget.style.color="var(--text-primary)"},onMouseLeave:h=>{h.currentTarget.style.background="var(--bg-tertiary)",h.currentTarget.style.color="var(--text-muted)"},children:_.jsx(Pr,{size:14})})]}),_.jsxs("div",{style:{padding:"20px 24px 24px",display:"flex",flexDirection:"column",gap:18,overflowY:"auto",flex:1},children:[_.jsx("div",{style:{display:"flex",gap:10},children:[{val:String(n.models.length),label:"Models",color:"var(--purple, var(--accent))"},{val:n.configured?"Active":"Not Set",label:"Status",color:n.configured?"var(--green)":"var(--text-muted)"},{val:n.envKey,label:"Env Variable",color:"var(--text-secondary)",mono:!0}].map(h=>_.jsxs("div",{style:{flex:1,padding:"12px 14px",borderRadius:10,background:"var(--bg-card)",border:"1px solid var(--border)"},children:[_.jsx("div",{style:{fontSize:h.mono?11:18,fontWeight:h.mono?500:700,color:h.color,lineHeight:1,fontVariantNumeric:"tabular-nums",fontFamily:h.mono?"monospace":"inherit",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:h.val}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:4},children:h.label})]},h.label))}),n.models.length>0&&_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:"Available Models"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[d.length," of ",n.models.length]})]}),_.jsxs("div",{style:{position:"relative"},children:[_.jsx(Rh,{size:13,style:{position:"absolute",left:10,top:"50%",transform:"translateY(-50%)",color:"var(--text-muted)",pointerEvents:"none"}}),_.jsx("input",{value:l,onChange:h=>c(h.target.value),placeholder:"Search models...",style:{...ld,width:"100%",fontSize:12,padding:"8px 12px 8px 30px"}})]}),_.jsxs("div",{style:{maxHeight:200,overflowY:"auto",border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-card)"},children:[d.map((h,u)=>_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"9px 14px",borderBottom:u<d.length-1?"1px solid var(--border)":"none",transition:"background 0.08s"},onMouseEnter:f=>{f.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:f=>{f.currentTarget.style.background="transparent"},children:[_.jsx(wY,{size:12,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("span",{style:{fontSize:12,fontFamily:"monospace",color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:h})]},h)),d.length===0&&_.jsxs("div",{style:{padding:"16px 14px",textAlign:"center",fontSize:12,color:"var(--text-muted)"},children:['No models match "',l,'"']})]})]}),_.jsxs("div",{children:[_.jsx("label",{style:{fontSize:12,fontWeight:500,color:"var(--text-secondary)",marginBottom:8,display:"block"},children:"API Key"}),_.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[_.jsx("input",{value:s,onChange:h=>r(h.target.value),placeholder:`Paste your ${n.name} API key...`,type:o?"text":"password",autoFocus:!0,style:{...ld,flex:1,fontSize:13,fontFamily:"monospace",padding:"10px 12px"},onKeyDown:h=>h.key==="Enter"&&s.trim()&&t(s)}),_.jsx("button",{onClick:()=>a(h=>!h),style:{display:"flex",alignItems:"center",justifyContent:"center",width:38,height:38,borderRadius:8,flexShrink:0,border:"1px solid var(--border)",background:"var(--bg-tertiary)",color:o?"var(--accent)":"var(--text-muted)",cursor:"pointer",padding:0,transition:"color 0.12s"},title:o?"Hide key":"Show key",children:_.jsx(jE,{size:14})})]})]}),_.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",marginTop:4},children:[_.jsx("button",{onClick:e,style:{...g1,padding:"9px 18px",fontSize:12,borderRadius:8},children:"Cancel"}),_.jsxs("button",{onClick:()=>s.trim()&&t(s),disabled:!s.trim()||i,style:{display:"flex",alignItems:"center",gap:6,padding:"9px 22px",borderRadius:8,border:"none",background:s.trim()?"var(--accent)":"var(--bg-tertiary)",color:s.trim()?"#fff":"var(--text-muted)",fontSize:12,fontWeight:600,cursor:s.trim()?"pointer":"default",fontFamily:"inherit",opacity:i?.6:1,transition:"opacity 0.12s, background 0.12s"},children:[_.jsx(IA,{size:13})," ",i?"Saving...":"Save Key"]})]})]})]})]})}const gPe=new Set(qE.map(n=>n.id)),pPe=Array.from(new Set(qE.map(n=>n.category)));function mPe({activeServerNames:n,mcpConfig:e,mcpStatus:t,onAdd:i,onRemove:s,onAddCustom:r,onUpdateCustom:o,onRemoveCustomEnv:a,onAddCustomEnv:l,expanded:c,onToggleExpand:d,showCustomTrigger:h}){const[u,f]=z.useState(""),[g,m]=z.useState("all"),[b,w]=z.useState(!0),[S,x]=z.useState(null),[C,L]=z.useState({}),[E,I]=z.useState(!1);z.useEffect(()=>{h&&h>0&&I(!0)},[h]);const R=z.useRef(null);z.useEffect(()=>{var re;E&&((re=R.current)==null||re.scrollIntoView({behavior:"smooth",block:"center"}))},[E]);const[M,A]=z.useState(""),[H,F]=z.useState("npx"),[B,j]=z.useState(""),[V,X]=z.useState(""),[K,Q]=z.useState(""),[te,W]=z.useState({}),Z=n.filter(re=>!gPe.has(re)),oe=qE.filter(re=>n.includes(re.id)),$=u.toLowerCase(),be=qE.filter(re=>!(n.includes(re.id)||g!=="all"&&re.category!==g||$&&!re.name.toLowerCase().includes($)&&!re.description.toLowerCase().includes($)&&!re.tools.some(Se=>Se.toLowerCase().includes($)))),Le=[{value:"all",label:"All Categories"},...pPe.map(re=>({value:re,label:e7[re].label}))];function Ve(re){if(Object.keys(re.envVars).length>0){x(re);const We={};for(const Be of Object.keys(re.envVars))We[Be]="";L(We)}else i(re)}function Ye(){S&&(i(S,C),x(null),L({}))}function ft(){const re=M.trim().toLowerCase().replace(/[^a-z0-9_-]/g,"");re&&(n.includes(re)||(r(re,{command:H.trim(),args:B.split(`
|
|
631
|
+
L ${s+s*Math.cos(Math.PI/8)},${r+r*Math.sin(Math.PI/8)} Z`,fill:"#6B5940"}),_.jsx("polygon",{points:a.join(" "),fill:"#8B7355",stroke:"rgba(0,0,0,0.1)",strokeWidth:"0.5"})]})})}function KAe({col:n,row:e}){const{x:t,y:i}=Ea(n,e),s=52,r=26,o=8,a=14;return _.jsx("div",{style:{position:"absolute",left:t-s/2,top:i-a-r/2,width:s,height:a+r+o,pointerEvents:"none",zIndex:Math.floor(i)},children:_.jsxs("svg",{width:s,height:a+r+o,style:{display:"block"},children:[_.jsx("polygon",{points:`${s/2},0 ${s},${r/2} ${s},${r/2+a} ${s/2},${a} 0,${r/2+a} 0,${r/2}`,fill:"#374151"}),_.jsx("polygon",{points:`${s/2},1 ${s-1},${r/2} ${s-1},${r/2+a-1} ${s/2},${a-1} 1,${r/2+a-1} 1,${r/2}`,fill:"#4A5568"}),_.jsx("polygon",{points:`${s/2},${a} ${s},${r/2+a} ${s/2},${r+a} 0,${r/2+a}`,fill:"#5A6A7E"}),_.jsx("polygon",{points:`0,${r/2+a} ${s/2},${r+a} ${s/2},${r+a+o} 0,${r/2+a+o}`,fill:"#3E4C5E"}),_.jsx("polygon",{points:`${s},${r/2+a} ${s/2},${r+a} ${s/2},${r+a+o} ${s},${r/2+a+o}`,fill:"#4A5A6E"})]})})}function GAe({agents:n,activeAgents:e,tokens:t,activity:i}){const s=z.useMemo(()=>{const C=new Map;return n.forEach((L,E)=>C.set(L.agent_key,E%aL.length)),C},[n]),[r,o]=z.useState(new Map);z.useEffect(()=>{const C=new Map;n.forEach(L=>{const E=aL[s.get(L.agent_key)??0];C.set(L.agent_key,{col:E.col,row:E.row,walking:!1})}),o(C)},[n,s]),z.useEffect(()=>{const C=setInterval(()=>{o(L=>{const E=new Map(L);for(const[I,R]of E){const M=s.get(I)??0,A=aL[M];if(e[I]){R.col!==A.col||R.row!==A.row?E.set(I,{col:A.col,row:A.row,walking:!0}):R.walking&&E.set(I,{...R,walking:!1});continue}if(R.walking)E.set(I,{...R,walking:!1});else if(Math.random()<.2){const H=Math.random(),F=H<.1?pH:H<.5?Gne[Math.floor(Math.random()*Gne.length)]:A;E.set(I,{col:F.col,row:F.row,walking:!0})}}return E})},4e3);return()=>clearInterval(C)},[e,s]);const[a,l]=z.useState(1),[c,d]=z.useState({x:0,y:0}),h=z.useRef(!1),u=z.useRef({x:0,y:0,panX:0,panY:0}),f=z.useRef(null),g=C=>Math.min(3,Math.max(.3,C)),m=z.useCallback(C=>{C.preventDefault();const L=C.deltaY>0?-.1:.1;l(E=>g(E+L))},[]),b=z.useCallback(C=>{var L,E;C.button===0&&(h.current=!0,u.current={x:C.clientX,y:C.clientY,panX:c.x,panY:c.y},(E=(L=C.target).setPointerCapture)==null||E.call(L,C.pointerId))},[c]),w=z.useCallback(C=>{h.current&&d({x:u.current.panX+(C.clientX-u.current.x),y:u.current.panY+(C.clientY-u.current.y)})},[]),S=z.useCallback(()=>{h.current=!1},[]),x=z.useCallback(()=>{l(1),d({x:0,y:0})},[]);return _.jsxs("div",{ref:f,onWheel:m,onPointerDown:b,onPointerMove:w,onPointerUp:S,onPointerLeave:S,style:{flex:1,overflow:"hidden",position:"relative",cursor:h.current?"grabbing":"grab"},children:[_.jsxs("div",{style:{position:"absolute",top:12,right:12,zIndex:20,display:"flex",flexDirection:"column",gap:2,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:8,padding:3,boxShadow:"0 2px 8px rgba(0,0,0,0.2)"},children:[_.jsx("button",{onClick:()=>l(C=>g(C+.15)),title:"Zoom in",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(yfe,{size:14})}),_.jsxs("div",{style:{fontSize:9,textAlign:"center",color:"var(--text-muted)",padding:"1px 0"},children:[Math.round(a*100),"%"]}),_.jsx("button",{onClick:()=>l(C=>g(C-.15)),title:"Zoom out",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(wfe,{size:14})}),_.jsx("button",{onClick:x,title:"Reset view",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,border:"none",borderRadius:6,background:"transparent",color:"var(--text-muted)",cursor:"pointer"},onMouseEnter:C=>{C.currentTarget.style.background="var(--bg-hover)",C.currentTarget.style.color="var(--text-primary)"},onMouseLeave:C=>{C.currentTarget.style.background="transparent",C.currentTarget.style.color="var(--text-muted)"},children:_.jsx(w_,{size:14})})]}),_.jsxs("div",{style:{position:"relative",width:Ige,height:Tge,transform:`translate(${c.x}px, ${c.y}px) scale(${a})`,transformOrigin:"center center",transition:h.current?"none":"transform 0.15s ease-out",margin:"20px auto"},children:[_.jsx(WAe,{}),_.jsx(JB,{col:4,row:0}),_.jsx(JB,{col:11,row:2.5}),_.jsx(JB,{col:0,row:5}),_.jsx(qAe,{col:9,row:5.5}),_.jsx(KAe,{col:2,row:6.5}),_.jsx($Ae,{}),aL.map((C,L)=>{const E=n.some(I=>{const R=r.get(I.agent_key);return R&&R.col===C.col&&R.row===C.row});return _.jsx(HAe,{col:C.col,row:C.row,occupied:E},`d${L}`)}),aL.map((C,L)=>_.jsx(UAe,{col:C.col,row:C.row},`c${L}`)),n.map(C=>{const L=r.get(C.agent_key);if(!L)return null;const E=e[C.agent_key]??!1;let I="",R=!1;if(E){const M=PAe(i,C.agent_key);(M==null?void 0:M.type)==="tool_start"?(I=M.toolName??"tool",R=!0):I=t[C.agent_key]??""}return _.jsx(jAe,{employee:C,col:L.col,row:L.row,walking:L.walking,active:E,bubbleText:I,isToolUse:R},C.agent_key)})]})]})}const YAe=[{id:"live",label:"Live",icon:_.jsx(LY,{size:14})},{id:"network",label:"Network",icon:_.jsx(wEe,{size:14})},{id:"office",label:"Office",icon:_.jsx(y_,{size:14})}];function ZAe({mode:n,setMode:e}){return _.jsx("div",{style:{position:"absolute",bottom:16,left:"50%",transform:"translateX(-50%)",display:"flex",gap:2,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:10,padding:3,zIndex:10,boxShadow:"0 4px 16px rgba(0,0,0,0.25)"},children:YAe.map(t=>{const i=n===t.id;return _.jsxs("button",{onClick:()=>e(t.id),style:{display:"flex",alignItems:"center",gap:5,padding:"5px 12px",borderRadius:8,border:"none",background:i?"var(--bg-hover)":"transparent",color:i?"var(--text-primary)":"var(--text-muted)",fontSize:11,fontWeight:i?500:400,cursor:"pointer",fontFamily:"inherit",transition:"background 0.08s, color 0.08s"},children:[t.icon,t.label]},t.id)})})}function XAe(){const[n,e]=z.useState("live"),{tokens:t,activity:i,connected:s,activeAgents:r,agentTodos:o}=P0(),{employees:a}=Wu(),{data:l}=Ks("/api/message-flow",3e3),c=a??[],d=l??[],h=Object.keys(r).filter(f=>r[f]).length,u=c.length>0?c:Object.keys(t).map(f=>({employee_id:f,name:f,role:"",agent_key:f,status:"available"}));return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},children:[_.jsxs("div",{className:"page-header",children:[_.jsx("h1",{className:"page-title",children:"Live"}),_.jsxs("div",{className:"page-subtitle",children:[s?"Connected":"Disconnected"," · ",h," active"]})]}),n==="live"&&_.jsx(BAe,{activity:i,activeAgents:r,agents:u,agentTodos:o}),n==="network"&&_.jsx(MAe,{}),n==="office"&&_.jsx(GAe,{agents:u,activeAgents:r,tokens:t,activity:i,flow:d}),_.jsx(ZAe,{mode:n,setMode:e})]})}function Ng(n){return n.toLocaleString("en-US")}function Zne(n){return"$"+n.toLocaleString("en-US",{minimumFractionDigits:4,maximumFractionDigits:4})}function xC(n){const e=n>0&&n<1?4:2;return"$"+n.toLocaleString("en-US",{minimumFractionDigits:e,maximumFractionDigits:e})}function Xne(n){const e=Date.now()-new Date(n).getTime(),t=Math.floor(e/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;const i=Math.floor(t/60);return i<24?`${i}h ${t%60}m ago`:`${Math.floor(i/24)}d ago`}function QAe(n,e){return e?"var(--red)":n>=.8?"var(--orange)":n>=.5?"var(--yellow)":"var(--green)"}const Qne="1fr 120px 80px 110px 110px 90px 90px",qR=["Management","Product","Engineering","Analysis","Design","Documentation","Governance"];function JAe(n,e){return e==="none"?()=>0:(t,i)=>{const s=n==="lastActivity"?new Date(t.lastActivity).getTime()-new Date(i.lastActivity).getTime():t[n]-i[n];return e==="asc"?s:-s}}function ePe({on:n,onToggle:e}){return _.jsx("button",{onClick:e,style:{width:36,height:20,borderRadius:10,border:"none",cursor:"pointer",background:n?"var(--green)":"var(--bg-hover)",position:"relative",transition:"background 0.15s",flexShrink:0},children:_.jsx("span",{style:{position:"absolute",top:3,left:n?19:3,width:14,height:14,borderRadius:7,background:"#fff",transition:"left 0.15s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}})})}function Jne({value:n,onChange:e,placeholder:t,wide:i}){const[s,r]=z.useState(n!=null?n.toString():"");return z.useEffect(()=>r(n!=null?n.toString():""),[n]),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[_.jsx("span",{style:{fontSize:13,color:"var(--text-muted)",fontWeight:600},children:"$"}),_.jsx("input",{value:s,onChange:o=>r(o.target.value),onBlur:()=>{const o=parseFloat(s);e(isNaN(o)||o<=0?void 0:o)},placeholder:t??"—",style:{width:i?100:80,padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",textAlign:"right"}})]})}function ese({spend:n,limit:e,pct:t,exceeded:i,height:s=8}){if(!e)return _.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"No limit"});const r=Math.min(t,1);return _.jsxs("div",{style:{flex:1,minWidth:100},children:[_.jsx("div",{style:{height:s,borderRadius:s/2,background:"var(--bg-hover)",overflow:"hidden"},children:_.jsx("div",{style:{height:"100%",borderRadius:s/2,width:`${r*100}%`,background:QAe(t,i),transition:"width 0.4s ease"}})}),_.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginTop:3},children:[_.jsx("span",{style:{fontSize:10,color:i?"var(--red)":"var(--text-muted)",fontWeight:i?700:400},children:i?"EXCEEDED":`${(t*100).toFixed(0)}%`}),_.jsxs("span",{style:{fontSize:10,color:"var(--text-muted)",fontVariantNumeric:"tabular-nums"},children:[xC(n)," / ",xC(e)]})]})]})}function tse({exceeded:n,warning:e}){return n?_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontWeight:700,padding:"3px 10px",borderRadius:5,background:"var(--red-bg)",color:"var(--red)"},children:[_.jsx(XW,{size:11})," Exceeded"]}):e?_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontWeight:700,padding:"3px 10px",borderRadius:5,background:"var(--orange-bg)",color:"var(--orange)"},children:[_.jsx(XW,{size:11})," Warning"]}):_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontWeight:600,padding:"3px 10px",borderRadius:5,background:"var(--green-bg)",color:"var(--green)"},children:[_.jsx(Mc,{size:11})," OK"]})}function tPe(){const{data:n,lastRefresh:e}=Ks("/api/finance",5e3),{employees:t}=Wu(),[i,s]=z.useState(!1),[r,o]=z.useState(!1),[a,l]=z.useState(""),[c,d]=z.useState("list"),[h,u]=z.useState("costUsd"),[f,g]=z.useState("none"),[m,b]=z.useState("usage"),[w,S]=z.useState(null),[x,C]=z.useState(null),[L,E]=z.useState(!1),[I,R]=z.useState(!1),M=z.useCallback(async()=>{try{const re=await fetch("/api/finance/budgets",{credentials:"include"});if(re.ok){const Se=await re.json();S(Se),x||C(Se.config)}}catch{}},[x]);z.useEffect(()=>{M()},[]),z.useEffect(()=>{const re=setInterval(async()=>{try{const Se=await fetch("/api/finance/budgets",{credentials:"include"});Se.ok&&S(await Se.json())}catch{}},1e4);return()=>clearInterval(re)},[]);async function A(){if(x){E(!0);try{await tn("/api/finance/budgets",x),R(!1),await M()}finally{E(!1)}}}const H=n==null?void 0:n.totals,F=(n==null?void 0:n.agents)??[],B=new Map((t??[]).map(re=>[re.agent_key,re])),j=w==null?void 0:w.status;function V(re){h===re?g(Se=>Se==="none"?"desc":Se==="desc"?"asc":"none"):(u(re),g("desc"))}const X=z.useMemo(()=>{let re=[...F];if(a.trim()){const Se=a.toLowerCase();re=re.filter(We=>{const Be=B.get(We.agentId);return We.agentId.toLowerCase().includes(Se)||((Be==null?void 0:Be.name)??"").toLowerCase().includes(Se)||((Be==null?void 0:Be.role)??"").toLowerCase().includes(Se)||(We.model??"").toLowerCase().includes(Se)})}return re.sort(JAe(h,f))},[F,B,a,h,f]),K=z.useMemo(()=>{var Se;const re=new Map;for(const We of X){const Be=((Se=B.get(We.agentId))==null?void 0:Se.department)??"Other";re.has(Be)||re.set(Be,[]),re.get(Be).push(We)}return[...re.entries()].sort(([We],[Be])=>{const Te=qR.indexOf(We),Et=qR.indexOf(Be);return Te!==-1&&Et!==-1?Te-Et:Te!==-1?-1:Et!==-1?1:We.localeCompare(Be)})},[X,B]),Q=Math.max(1,...X.map(re=>re.totalTokens));async function te(){o(!1),s(!0);try{await tn("/api/finance/reset",{})}finally{s(!1)}}function W(re){var Se;return((Se=x==null?void 0:x.departments)==null?void 0:Se[re])??{enabled:!1}}function Z(re,Se){var Be;if(!x)return;const We=((Be=x.departments)==null?void 0:Be[re])??{enabled:!1};C({...x,departments:{...x.departments,[re]:{...We,...Se}}})}function oe(re){var Se;return((Se=x==null?void 0:x.agents)==null?void 0:Se[re])??{enabled:!1}}function $(re,Se){var Be;if(!x)return;const We=((Be=x.agents)==null?void 0:Be[re])??{enabled:!1};C({...x,agents:{...x.agents,[re]:{...We,...Se}}})}function be(re,Se){var Et;const We=B.get(re.agentId),Be=Math.max(2,re.totalTokens/Q*100),Te=j==null?void 0:j.agents[re.agentId];return _.jsxs("div",{style:{borderBottom:Se?"none":"1px solid var(--border)"},children:[_.jsxs("div",{style:{display:"grid",gridTemplateColumns:Qne,gap:8,padding:"10px 14px",alignItems:"center",background:Te!=null&&Te.exceeded?"var(--red-bg)":Te!=null&&Te.warning?"var(--orange-bg)":"transparent"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsxs("div",{style:{width:28,height:28,borderRadius:6,position:"relative",background:"var(--accent)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,color:"#fff",flexShrink:0},children:[re.agentId.slice(0,2).toUpperCase(),(Te==null?void 0:Te.exceeded)&&_.jsx("span",{style:{position:"absolute",top:-3,right:-3,width:8,height:8,borderRadius:4,background:"var(--red)",border:"1.5px solid var(--bg-card)"}})]}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:13,fontWeight:500,color:"var(--text-primary)"},children:((Et=We==null?void 0:We.name)==null?void 0:Et.split(" ")[0])??re.agentId}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)"},children:(We==null?void 0:We.role)??re.agentId})]})]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:re.model??"—"}),_.jsx("div",{style:{textAlign:"right",fontSize:13,fontWeight:500,color:"var(--text-primary)",fontVariantNumeric:"tabular-nums"},children:Ng(re.turns)}),_.jsx("div",{style:{textAlign:"right",fontSize:13,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums"},children:Ng(re.inputTokens)}),_.jsx("div",{style:{textAlign:"right",fontSize:13,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums"},children:Ng(re.outputTokens)}),_.jsx("div",{style:{textAlign:"right",fontSize:13,fontWeight:600,color:Te!=null&&Te.exceeded?"var(--red)":"var(--green)",fontVariantNumeric:"tabular-nums"},children:Zne(re.costUsd)}),_.jsx("div",{style:{textAlign:"right",fontSize:11,color:"var(--text-muted)"},children:Xne(re.lastActivity)})]}),_.jsx("div",{style:{padding:"0 14px 10px"},children:_.jsx("div",{style:{height:4,borderRadius:2,background:"var(--bg-hover)",overflow:"hidden"},children:_.jsx("div",{style:{height:"100%",borderRadius:2,width:`${Be}%`,background:Te!=null&&Te.exceeded?"var(--red)":"var(--accent)",transition:"width 0.3s"}})})})]},re.agentId)}function Le({label:re,colKey:Se,align:We="right"}){const Be=h===Se&&f!=="none";return _.jsxs("button",{onClick:()=>V(Se),style:{display:"flex",alignItems:"center",gap:2,justifyContent:We==="right"?"flex-end":"flex-start",background:"none",border:"none",padding:0,cursor:"pointer",fontFamily:"inherit",fontSize:10,fontWeight:600,color:Be?"var(--accent)":"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",whiteSpace:"nowrap"},children:[re,Be?f==="asc"?_.jsx(GW,{size:10}):_.jsx(Ic,{size:10}):_.jsxs("span",{style:{display:"inline-flex",flexDirection:"column",marginLeft:1,opacity:.3,lineHeight:0},children:[_.jsx(GW,{size:8,style:{marginBottom:-3}}),_.jsx(Ic,{size:8})]})]})}function Ve(){return _.jsxs("div",{style:{display:"grid",gridTemplateColumns:Qne,gap:8,padding:"10px 14px",borderBottom:"1px solid var(--border)",fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:[_.jsx("span",{children:"Agent"}),_.jsx("span",{children:"Model"}),_.jsx(Le,{label:"Turns",colKey:"turns"}),_.jsx(Le,{label:"Input Tokens",colKey:"inputTokens"}),_.jsx(Le,{label:"Output Tokens",colKey:"outputTokens"}),_.jsx(Le,{label:"Cost ($)",colKey:"costUsd"}),_.jsx(Le,{label:"Last Active",colKey:"lastActivity"})]})}function Ye({icon:re,name:Se,subtitle:We,lCfg:Be,lStatus:Te,editing:Et,onToggle:_t,onDaily:Si,onMonthly:bi}){return _.jsxs("div",{style:{padding:"14px 20px",display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",background:Te!=null&&Te.exceeded?"var(--red-bg)":Te!=null&&Te.warning?"var(--orange-bg)":"transparent",borderBottom:"1px solid var(--border)"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,minWidth:160},children:[_.jsx("span",{style:{color:"var(--text-muted)"},children:re}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:Se}),We&&_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)"},children:We})]})]}),_.jsx("div",{style:{display:"flex",alignItems:"center",gap:6},children:Et?_.jsx(ePe,{on:Be.enabled,onToggle:_t}):_.jsx("span",{style:{fontSize:11,color:Be.enabled?"var(--green)":"var(--text-muted)",fontWeight:600},children:Be.enabled?"Active":"Off"})}),_.jsxs("div",{style:{minWidth:130},children:[_.jsx("div",{style:{fontSize:9,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",marginBottom:3},children:"Daily"}),Et?_.jsx(Jne,{value:Be.dailyLimit,onChange:Si}):Te&&Be.enabled&&Be.dailyLimit?_.jsx(ese,{spend:Te.dailySpend,limit:Be.dailyLimit,pct:Te.dailyPct,exceeded:Te.exceeded}):_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)"},children:Be.dailyLimit?xC(Be.dailyLimit):"—"})]}),_.jsxs("div",{style:{minWidth:130},children:[_.jsx("div",{style:{fontSize:9,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",marginBottom:3},children:"Monthly"}),Et?_.jsx(Jne,{value:Be.monthlyLimit,onChange:bi}):Te&&Be.enabled&&Be.monthlyLimit?_.jsx(ese,{spend:Te.monthlySpend,limit:Be.monthlyLimit,pct:Te.monthlyPct,exceeded:Te.exceeded}):_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)"},children:Be.monthlyLimit?xC(Be.monthlyLimit):"—"})]}),_.jsx("div",{style:{marginLeft:"auto"},children:Be.enabled&&Te?_.jsx(tse,{exceeded:Te.exceeded,warning:Te.warning}):null})]})}const ft=z.useMemo(()=>{const re=new Set;for(const Se of t??[])Se.department&&re.add(Se.department);for(const Se of Object.keys((j==null?void 0:j.departments)??{}))re.add(Se);return[...re].sort((Se,We)=>{const Be=qR.indexOf(Se),Te=qR.indexOf(We);return Be!==-1&&Te!==-1?Be-Te:Be!==-1?-1:Te!==-1?1:Se.localeCompare(We)})},[t,j]);return _.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"20px 24px"},children:[_.jsxs("div",{className:"page-header",style:{padding:"0 0 16px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsxs("div",{children:[_.jsx("h1",{className:"page-title",children:"Finance"}),_.jsxs("div",{className:"page-subtitle",children:["Token usage, cost tracking & budget limits",e&&_.jsxs("span",{children:[" · ",e.toLocaleTimeString()]})]})]}),_.jsx("button",{onClick:()=>o(!0),disabled:i,style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)"},children:i?"Resetting...":"Reset Data"})]}),H&&_.jsx("div",{style:{display:"flex",gap:8,marginBottom:20,flexWrap:"wrap"},children:[{label:"Total Spent",value:xC(H.totalCostUsd),sub:Zne(H.totalCostUsd),color:"var(--green)"},{label:"Total Tokens",value:Ng(H.totalTokens),sub:`${Ng(H.totalInputTokens)} in / ${Ng(H.totalOutputTokens)} out`,color:"var(--blue)"},{label:"LLM Turns",value:Ng(H.totalTurns),sub:`${F.length} agents`,color:"var(--accent)"},{label:"Session Start",value:new Date(H.sessionStart).toLocaleDateString(),sub:Xne(H.sessionStart),color:"var(--orange)"}].map(re=>_.jsxs("div",{style:{flex:"1 1 140px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:re.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:re.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:re.label}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:2},children:re.sub})]},re.label))}),_.jsx("div",{style:{display:"flex",gap:0,marginBottom:20,borderBottom:"2px solid var(--border)"},children:[{id:"usage",label:"Usage & Costs",icon:_.jsx(Xie,{size:14})},{id:"budgets",label:"Budget Limits",icon:_.jsx(bEe,{size:14})}].map(re=>_.jsxs("button",{onClick:()=>b(re.id),style:{display:"flex",alignItems:"center",gap:6,padding:"10px 20px",border:"none",cursor:"pointer",fontFamily:"inherit",fontSize:13,fontWeight:m===re.id?600:400,color:m===re.id?"var(--accent)":"var(--text-muted)",background:"transparent",borderBottom:m===re.id?"2px solid var(--accent)":"2px solid transparent",marginBottom:-2,transition:"color 0.1s"},children:[re.icon," ",re.label,re.id==="budgets"&&(j==null?void 0:j.org.exceeded)&&_.jsx("span",{style:{width:6,height:6,borderRadius:3,background:"var(--red)",flexShrink:0}})]},re.id))}),m==="usage"&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:16,flexWrap:"wrap"},children:[_.jsx("div",{style:{display:"flex",borderRadius:6,overflow:"hidden",border:"1px solid var(--border)",flexShrink:0},children:[["list",Xie,"List"],["department",y_,"Dept"]].map(([re,Se,We])=>_.jsxs("button",{onClick:()=>d(re),title:`${We} view`,style:{display:"flex",alignItems:"center",gap:4,fontSize:12,fontWeight:500,padding:"6px 12px",border:"none",cursor:"pointer",fontFamily:"inherit",background:c===re?"var(--accent)":"transparent",color:c===re?"#fff":"var(--text-muted)",transition:"all 0.08s"},children:[_.jsx(Se,{size:13})," ",We]},re))}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:20,padding:"6px 14px",flexShrink:0},children:[_.jsx(Rh,{size:14,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("input",{value:a,onChange:re=>l(re.target.value),placeholder:"Search agents...",style:{border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontSize:12.5,width:180,fontFamily:"inherit",padding:0}}),a&&_.jsx("button",{onClick:()=>l(""),style:{display:"flex",alignItems:"center",justifyContent:"center",width:14,height:14,border:"none",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",borderRadius:3,padding:0,flexShrink:0},children:_.jsx(Pr,{size:9})})]}),_.jsx("div",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-muted)",fontStyle:"italic"},children:"Costs based on per-model pricing"})]}),_.jsx("div",{style:{marginBottom:20},children:X.length===0?_.jsx("div",{style:{padding:24,textAlign:"center",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,color:"var(--text-muted)",fontSize:13},children:a?"No agents match your search.":"No usage data yet. Agents will appear here once they start processing tasks."}):c==="department"?_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:16},children:K.map(([re,Se])=>{const We=Se.reduce((Et,_t)=>Et+_t.costUsd,0),Be=Se.reduce((Et,_t)=>Et+_t.totalTokens,0),Te=Se.reduce((Et,_t)=>Et+_t.turns,0);return _.jsxs("div",{children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:8,paddingBottom:6,borderBottom:"1px solid var(--border)"},children:[_.jsx(y_,{size:14,style:{color:"var(--text-muted)"}}),_.jsx("span",{style:{fontSize:13,fontWeight:700,color:"var(--text-primary)"},children:re}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5,fontFamily:"monospace"},children:Se.length}),_.jsxs("div",{style:{marginLeft:"auto",display:"flex",gap:14,fontSize:11},children:[_.jsxs("span",{style:{color:"var(--text-muted)"},children:[Ng(Te)," turns"]}),_.jsxs("span",{style:{color:"var(--text-muted)"},children:[Ng(Be)," tokens"]}),_.jsx("span",{style:{color:"var(--green)",fontWeight:600,fontVariantNumeric:"tabular-nums"},children:xC(We)})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[Ve(),Se.map((Et,_t)=>be(Et,_t===Se.length-1))]})]},re)})}):_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,overflow:"hidden"},children:[Ve(),X.map((re,Se)=>be(re,Se===X.length-1))]})})]}),m==="budgets"&&_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{flex:1,fontSize:12,color:"var(--text-muted)"},children:"Set spending limits at organization, department, and individual agent level."}),I?_.jsxs("div",{style:{display:"flex",gap:8},children:[_.jsx("button",{onClick:()=>{R(!1),w&&C(w.config)},style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)"},children:"Cancel"}),_.jsxs("button",{onClick:A,disabled:L,style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:600,cursor:"pointer",fontFamily:"inherit",border:"none",background:"var(--accent)",color:"#fff"},children:[_.jsx(Mc,{size:12})," ",L?"Saving...":"Save All"]})]}):_.jsxs("button",{onClick:()=>{R(!0),w&&C(w.config)},style:{display:"flex",alignItems:"center",gap:6,padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)"},children:[_.jsx(_fe,{size:12})," Edit Budgets"]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"14px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},children:[_.jsx(Yie,{size:16,style:{color:"var(--accent)"}}),_.jsx("span",{style:{fontSize:15,fontWeight:700,color:"var(--text-primary)"},children:"Organization"}),(j==null?void 0:j.org.enabled)&&_.jsx(tse,{exceeded:j.org.exceeded,warning:j.org.warning})]}),x&&_.jsx(Ye,{icon:_.jsx(Yie,{size:16}),name:"Org-wide Limit",subtitle:"Applies to all agents combined",lCfg:x.org,lStatus:j==null?void 0:j.org,editing:I,onToggle:()=>C({...x,org:{...x.org,enabled:!x.org.enabled}}),onDaily:re=>C({...x,org:{...x.org,dailyLimit:re}}),onMonthly:re=>C({...x,org:{...x.org,monthlyLimit:re}})}),I&&x&&_.jsxs("div",{style:{padding:"10px 20px",display:"flex",alignItems:"center",gap:12},children:[_.jsx("span",{style:{fontSize:10,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",whiteSpace:"nowrap"},children:"Alert Threshold"}),_.jsx("input",{type:"range",min:10,max:100,step:5,value:Math.round((x.org.alertThreshold??.8)*100),onChange:re=>{const Se=parseInt(re.target.value);C({...x,org:{...x.org,alertThreshold:Math.min(1,Math.max(.1,Se/100))}})},style:{flex:1,maxWidth:160}}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2},children:[_.jsx("input",{type:"text",inputMode:"numeric",value:Math.round((x.org.alertThreshold??.8)*100),onChange:re=>{const Se=parseInt(re.target.value.replace(/\D/g,""));isNaN(Se)||C({...x,org:{...x.org,alertThreshold:Math.min(1,Math.max(.1,Se/100))}})},onBlur:re=>{const Se=parseInt(re.target.value);isNaN(Se)||Se<10?C({...x,org:{...x.org,alertThreshold:.1}}):Se>100&&C({...x,org:{...x.org,alertThreshold:1}})},style:{width:32,padding:"2px 4px",fontSize:13,fontWeight:600,color:"var(--accent)",textAlign:"center",background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:4}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--accent)"},children:"%"})]}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"warn before limit"})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"14px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},children:[_.jsx(y_,{size:16,style:{color:"var(--blue)"}}),_.jsx("span",{style:{fontSize:15,fontWeight:700,color:"var(--text-primary)"},children:"Departments"}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5},children:ft.length})]}),ft.length===0?_.jsx("div",{style:{padding:"20px",color:"var(--text-muted)",fontSize:12,fontStyle:"italic"},children:"No departments found in roster."}):ft.map(re=>{var Be;const Se=W(re),We=(Be=j==null?void 0:j.departments)==null?void 0:Be[re];return _.jsx(Ye,{icon:_.jsx(y_,{size:14}),name:re,subtitle:`${(t??[]).filter(Te=>Te.department===re).length} agents`,lCfg:Se,lStatus:We,editing:I,onToggle:()=>Z(re,{enabled:!Se.enabled}),onDaily:Te=>Z(re,{dailyLimit:Te}),onMonthly:Te=>Z(re,{monthlyLimit:Te})},re)})]}),_.jsxs("div",{style:{background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:10,overflow:"hidden"},children:[_.jsxs("div",{style:{padding:"14px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},children:[_.jsx(u1,{size:16,style:{color:"var(--green)"}}),_.jsx("span",{style:{fontSize:15,fontWeight:700,color:"var(--text-primary)"},children:"Agents"}),_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)",background:"var(--bg-tertiary)",padding:"1px 8px",borderRadius:5},children:F.length})]}),F.length===0?_.jsx("div",{style:{padding:"20px",color:"var(--text-muted)",fontSize:12,fontStyle:"italic"},children:"No agents with usage data yet."}):F.map(re=>{var Te,Et;const Se=B.get(re.agentId),We=oe(re.agentId),Be=(Te=j==null?void 0:j.agents)==null?void 0:Te[re.agentId];return _.jsx(Ye,{icon:_.jsx(lEe,{size:14}),name:((Et=Se==null?void 0:Se.name)==null?void 0:Et.split(" ")[0])??re.agentId,subtitle:Se!=null&&Se.department?`${Se.department} · ${Se.role}`:re.agentId,lCfg:We,lStatus:Be,editing:I,onToggle:()=>$(re.agentId,{enabled:!We.enabled}),onDaily:_t=>$(re.agentId,{dailyLimit:_t}),onMonthly:_t=>$(re.agentId,{monthlyLimit:_t})},re.agentId)})]})]}),r&&_.jsx(sge,{title:"Reset Finance Data",message:"This will clear all token usage and cost data for every agent. This action cannot be undone.",confirmLabel:"Reset Data",destructive:!0,onConfirm:te,onCancel:()=>o(!1)})]})}function iPe(n){const e=Date.now()-new Date(n).getTime();if(e<0){const t=-e;return t<6e4?`in ${Math.round(t/1e3)}s`:t<36e5?`in ${Math.round(t/6e4)}m`:t<864e5?`in ${Math.round(t/36e5)}h`:`in ${Math.round(t/864e5)}d`}return e<6e4?`${Math.round(e/1e3)}s ago`:e<36e5?`${Math.round(e/6e4)}m ago`:e<864e5?`${Math.round(e/36e5)}h ago`:`${Math.round(e/864e5)}d ago`}function nPe(n){return new Date(n).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function sPe(){const[n,e]=z.useState(!1),{data:t,refresh:i}=Ks(`/api/reminders?all=${n}`,5e3),{employees:s}=Wu(),r=h=>{var f;const u=s==null?void 0:s.find(g=>g.agent_key===h);return((f=u==null?void 0:u.name)==null?void 0:f.split(" ")[0])??h},o=h=>{const u=s==null?void 0:s.find(f=>f.agent_key===h);return(u==null?void 0:u.color)??"var(--text-muted)"};async function a(h){await yY(`/api/reminders/${h}`),i()}const l=t??[],c=l.filter(h=>!h.triggered_at),d=l.filter(h=>!!h.triggered_at);return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",children:[_.jsx("h1",{className:"page-title",children:"Reminders"}),_.jsxs("div",{className:"page-subtitle",children:[c.length," pending",d.length>0?` · ${d.length} triggered`:""]})]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 20px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx(KLe,{size:13,style:{color:"var(--text-muted)"}}),_.jsx("button",{onClick:()=>e(!n),style:{fontSize:11,padding:"4px 10px",borderRadius:6,border:"1px solid var(--border)",background:n?"var(--accent)":"var(--bg-tertiary)",color:n?"#fff":"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit"},children:n?"Showing all":"Active only"})]}),_.jsx("div",{style:{flex:1,overflowY:"auto",padding:"12px 20px"},children:l.length===0?_.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",padding:"20px",color:"var(--text-muted)",fontSize:13},children:[_.jsx(KW,{size:32,style:{opacity:.3,marginBottom:12}}),_.jsx("div",{children:"No reminders yet"}),_.jsx("div",{style:{fontSize:11,marginTop:4},children:"Agents can set reminders using the set_reminder tool"})]}):_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:l.map(h=>{const u=!!h.triggered_at,f=new Date(h.scheduled_for).getTime()<=Date.now(),g=o(h.agent_id);return _.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 14px",borderRadius:8,border:"1px solid var(--border)",background:u?"var(--bg-tertiary)":"var(--bg-card)",opacity:u?.6:1},children:[_.jsx("div",{style:{paddingTop:2,flexShrink:0},children:u?_.jsx(cLe,{size:16,style:{color:"var(--green)"}}):f?_.jsx(KW,{size:16,style:{color:"var(--orange, var(--yellow))"}}):_.jsx(CY,{size:16,style:{color:"var(--blue)"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)",marginBottom:3},children:h.message}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:10,color:"var(--text-muted)"},children:[_.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:3},children:[_.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:g,flexShrink:0}}),r(h.agent_id)]}),_.jsx("span",{style:{color:"var(--border)"},children:"|"}),_.jsxs("span",{children:[u?"Triggered":"Due",": ",nPe(h.scheduled_for)," ","(",iPe(h.scheduled_for),")"]}),_.jsx("span",{style:{color:"var(--border)"},children:"|"}),_.jsx("span",{children:h.reminder_id})]})]}),_.jsx("button",{onClick:()=>a(h.reminder_id),title:"Delete reminder",style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,borderRadius:6,border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},onMouseEnter:m=>{m.currentTarget.style.color="var(--red)",m.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:m=>{m.currentTarget.style.color="var(--text-muted)",m.currentTarget.style.background="transparent"},children:_.jsx(vp,{size:13})})]},h.reminder_id)})})})]})}const rPe="modulepreload",oPe=function(n){return"/"+n},ise={},ut=function(e,t,i){let s=Promise.resolve();if(t&&t.length>0){let o=function(c){return Promise.all(c.map(d=>Promise.resolve(d).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));s=o(t.map(c=>{if(c=oPe(c),c in ise)return;ise[c]=!0;const d=c.endsWith(".css"),h=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const u=document.createElement("link");if(u.rel=d?"stylesheet":rPe,d||(u.as="script"),u.crossOrigin="",u.href=c,l&&u.setAttribute("nonce",l),document.head.appendChild(u),d)return new Promise((f,g)=>{u.addEventListener("load",f),u.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${c}`)))})}))}function r(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return s.then(o=>{for(const a of o||[])a.status==="rejected"&&r(a.reason);return e().catch(r)})};var YY=ofe();const e7={files:{label:"Files & Storage",color:"var(--green)"},"dev-tools":{label:"Dev Tools",color:"var(--accent)"},browser:{label:"Browser & Web",color:"var(--blue)"},search:{label:"Search",color:"var(--orange)"},database:{label:"Database",color:"var(--purple)"},productivity:{label:"Productivity",color:"var(--yellow)"},cloud:{label:"Cloud & APIs",color:"var(--blue)"},design:{label:"Design & UI",color:"var(--pink, var(--red))"},communication:{label:"Communication",color:"var(--blue)"},monitoring:{label:"Monitoring",color:"var(--red)"},ai:{label:"AI & Reasoning",color:"var(--accent)"},marketing:{label:"Marketing",color:"var(--green)"},other:{label:"Other",color:"var(--text-muted)"}},qE=[{id:"filesystem",name:"Filesystem",description:"Secure file operations — read, write, search, and navigate directories with configurable access controls.",category:"files",package:"@modelcontextprotocol/server-filesystem",command:"npx",args:["-y","@modelcontextprotocol/server-filesystem","./"],envVars:{},tools:["read_text_file","write_file","edit_file","list_directory","search_files","directory_tree","move_file"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem",iconDomain:"github.com"},{id:"google-drive",name:"Google Drive",description:"Search, read, and manage files in Google Drive — docs, sheets, slides, and shared drives.",category:"files",package:"@anthropic/google-drive-mcp",command:"npx",args:["-y","@anthropic/google-drive-mcp"],envVars:{GOOGLE_CLIENT_ID:"your-client-id",GOOGLE_CLIENT_SECRET:"your-client-secret"},tools:["search_files","read_file","list_files","get_file_metadata"],docsUrl:"https://github.com/anthropics/google-drive-mcp",iconDomain:"drive.google.com"},{id:"github",name:"GitHub",description:"GitHub's official MCP server — repos, issues, PRs, Actions, code security, and more.",category:"dev-tools",package:"ghcr.io/github/github-mcp-server",command:"docker",args:["run","-i","--rm","-e","GITHUB_PERSONAL_ACCESS_TOKEN","ghcr.io/github/github-mcp-server"],envVars:{GITHUB_PERSONAL_ACCESS_TOKEN:"ghp_xxxxxxxxxxxx"},tools:["get_file_contents","create_or_update_file","create_issue","create_pull_request","search_code","list_commits"],docsUrl:"https://github.com/github/github-mcp-server",iconDomain:"github.com"},{id:"gitlab",name:"GitLab",description:"Interact with GitLab — repos, merge requests, issues, pipelines, and CI/CD configuration.",category:"dev-tools",package:"@modelcontextprotocol/server-gitlab",command:"npx",args:["-y","@modelcontextprotocol/server-gitlab"],envVars:{GITLAB_PERSONAL_ACCESS_TOKEN:"glpat-xxxxxxxxxxxx",GITLAB_API_URL:"https://gitlab.com/api/v4"},tools:["create_or_update_file","search_repositories","create_issue","create_merge_request","get_file_contents"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/gitlab",iconDomain:"gitlab.com"},{id:"git",name:"Git",description:"Read, search, and manipulate local Git repositories — status, diff, commit, branch, and log.",category:"dev-tools",package:"mcp-server-git",command:"uvx",args:["mcp-server-git","--repository","./"],envVars:{},tools:["git_status","git_diff_unstaged","git_diff_staged","git_commit","git_add","git_log","git_create_branch"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/git",iconDomain:"git-scm.com"},{id:"docker",name:"Docker",description:"Complete Docker management — containers, images, networks, and volumes via Docker socket.",category:"dev-tools",package:"@thelord/mcp-server-docker-npx",command:"npx",args:["-y","@thelord/mcp-server-docker-npx"],envVars:{},tools:["list_containers","create_container","start_container","stop_container","container_logs","list_images","pull_image"],docsUrl:"https://www.npmjs.com/package/@thelord/mcp-server-docker-npx",iconDomain:"docker.com"},{id:"sentry",name:"Sentry",description:"Connect to Sentry for error tracking — list projects, retrieve issues, analyze events, root cause analysis.",category:"dev-tools",package:"@sentry/mcp-server",command:"npx",args:["-y","@sentry/mcp-server"],envVars:{},tools:["list_projects","get_issue_details","get_event","search_errors"],docsUrl:"https://github.com/getsentry/sentry-mcp-stdio",iconDomain:"sentry.io"},{id:"vercel",name:"Vercel",description:"Manage Vercel deployments, projects, domains, and environment variables from your AI workflow.",category:"dev-tools",package:"@vercel/mcp",command:"npx",args:["-y","@vercel/mcp"],envVars:{VERCEL_TOKEN:"your-vercel-token"},tools:["list_projects","get_deployments","create_deployment","get_domains","set_env_var"],docsUrl:"https://vercel.com/docs/mcp",iconDomain:"vercel.com"},{id:"e2b",name:"E2B Code Sandbox",description:"Execute code in secure cloud sandboxes — Python, JS, shell. Isolated environments with file system access.",category:"dev-tools",package:"@e2b/mcp-server",command:"npx",args:["-y","@e2b/mcp-server"],envVars:{E2B_API_KEY:"e2b_xxxxxxxxxxxx"},tools:["run_code","install_packages","read_file","write_file","list_files"],docsUrl:"https://github.com/e2b-dev/mcp-server",iconDomain:"e2b.dev"},{id:"kubernetes",name:"Kubernetes",description:"Manage Kubernetes clusters — pods, deployments, services, logs, and kubectl operations.",category:"dev-tools",package:"mcp-server-kubernetes",command:"npx",args:["-y","mcp-server-kubernetes"],envVars:{},tools:["get_pods","get_deployments","get_services","get_logs","apply_manifest","delete_resource"],docsUrl:"https://github.com/Flux159/mcp-server-kubernetes",iconDomain:"kubernetes.io"},{id:"playwright",name:"Playwright",description:"Browser automation by Microsoft — navigate, click, type, screenshot, and extract data from web pages.",category:"browser",package:"@playwright/mcp",command:"npx",args:["-y","@playwright/mcp@latest"],envVars:{},tools:["browser_navigate","browser_click","browser_type","browser_snapshot","browser_take_screenshot","browser_evaluate"],docsUrl:"https://github.com/microsoft/playwright-mcp",iconDomain:"playwright.dev"},{id:"fetch",name:"Fetch",description:"Fetch web content and convert HTML to markdown for efficient LLM consumption.",category:"browser",package:"@modelcontextprotocol/server-fetch",command:"npx",args:["-y","@modelcontextprotocol/server-fetch"],envVars:{},tools:["fetch"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",iconDomain:"github.com"},{id:"puppeteer",name:"Puppeteer",description:"Browser automation via Puppeteer — navigate, click, fill forms, screenshot, and execute JavaScript.",category:"browser",package:"@modelcontextprotocol/server-puppeteer",command:"npx",args:["-y","@modelcontextprotocol/server-puppeteer"],envVars:{},tools:["puppeteer_navigate","puppeteer_screenshot","puppeteer_click","puppeteer_fill","puppeteer_evaluate"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/puppeteer",iconDomain:"pptr.dev"},{id:"browserbase",name:"Browserbase",description:"Cloud browser infrastructure — headless browsers with stealth mode, proxy rotation, and CAPTCHA solving.",category:"browser",package:"@browserbasehq/mcp-server-browserbase",command:"npx",args:["-y","@browserbasehq/mcp-server-browserbase"],envVars:{BROWSERBASE_API_KEY:"bb_xxxxxxxxxxxx",BROWSERBASE_PROJECT_ID:"your-project-id"},tools:["create_session","navigate","screenshot","get_content","click","type"],docsUrl:"https://github.com/browserbase/mcp-server-browserbase",iconDomain:"browserbase.com"},{id:"firecrawl",name:"Firecrawl",description:"Web scraping and crawling — extract clean markdown from any website, sitemap crawling, structured data.",category:"browser",package:"@mendable/firecrawl-mcp-server",command:"npx",args:["-y","@mendable/firecrawl-mcp-server"],envVars:{FIRECRAWL_API_KEY:"fc-xxxxxxxxxxxx"},tools:["scrape_url","crawl_url","search","extract"],docsUrl:"https://github.com/mendableai/firecrawl-mcp-server",iconDomain:"firecrawl.dev"},{id:"brave-search",name:"Brave Search",description:"Web search, local search, image/video/news search via the Brave Search API.",category:"search",package:"@brave/brave-search-mcp-server",command:"npx",args:["-y","@brave/brave-search-mcp-server"],envVars:{BRAVE_API_KEY:"BSA_xxxxxxxxxxxx"},tools:["brave_web_search","brave_local_search","brave_image_search","brave_news_search"],docsUrl:"https://github.com/brave/brave-search-mcp-server",iconDomain:"brave.com"},{id:"exa",name:"Exa",description:"AI-powered web search, company research, code search, and URL content extraction.",category:"search",package:"exa-mcp-server",command:"npx",args:["-y","exa-mcp-server"],envVars:{EXA_API_KEY:"exa-xxxxxxxxxxxx"},tools:["web_search_exa","get_code_context_exa","company_research","crawling"],docsUrl:"https://github.com/exa-labs/exa-mcp-server",iconDomain:"exa.ai"},{id:"tavily",name:"Tavily",description:"AI-optimized search engine — real-time web search with answer extraction and source citation.",category:"search",package:"tavily-mcp",command:"npx",args:["-y","tavily-mcp"],envVars:{TAVILY_API_KEY:"tvly-xxxxxxxxxxxx"},tools:["search","extract","get_search_context"],docsUrl:"https://github.com/tavily-ai/tavily-mcp",iconDomain:"tavily.com"},{id:"perplexity",name:"Perplexity",description:"AI search with citations — ask complex questions and get researched answers with source links.",category:"search",package:"perplexity-mcp",command:"npx",args:["-y","perplexity-mcp"],envVars:{PERPLEXITY_API_KEY:"pplx-xxxxxxxxxxxx"},tools:["perplexity_search","perplexity_ask"],docsUrl:"https://github.com/ppl-ai/perplexity-mcp",iconDomain:"perplexity.ai"},{id:"postgres",name:"PostgreSQL",description:"Read-only access to PostgreSQL databases — schema inspection and safe query execution.",category:"database",package:"@modelcontextprotocol/server-postgres",command:"npx",args:["-y","@modelcontextprotocol/server-postgres","postgresql://localhost:5432/mydb"],envVars:{},tools:["query"],docsUrl:"https://github.com/modelcontextprotocol/servers",iconDomain:"postgresql.org"},{id:"sqlite",name:"SQLite",description:"SQLite database management — query, create tables, inspect schemas, and full CRUD operations.",category:"database",package:"mcp-server-sqlite-npx",command:"npx",args:["-y","mcp-server-sqlite-npx","./data.sqlite"],envVars:{},tools:["sqlite_get_catalog","sqlite_execute"],docsUrl:"https://github.com/johnnyoshika/mcp-server-sqlite-npx",iconDomain:"sqlite.org"},{id:"mysql",name:"MySQL",description:"Connect to MySQL/MariaDB databases — execute queries, inspect schemas, and manage tables.",category:"database",package:"@benborla29/mcp-server-mysql",command:"npx",args:["-y","@benborla29/mcp-server-mysql"],envVars:{MYSQL_HOST:"localhost",MYSQL_PORT:"3306",MYSQL_USER:"root",MYSQL_PASSWORD:"password",MYSQL_DATABASE:"mydb"},tools:["query","list_tables","describe_table"],docsUrl:"https://www.npmjs.com/package/@benborla29/mcp-server-mysql",iconDomain:"mysql.com"},{id:"mongodb",name:"MongoDB",description:"Access MongoDB databases — query collections, aggregate data, inspect schemas, and manage documents.",category:"database",package:"mcp-mongo-server",command:"npx",args:["-y","mcp-mongo-server"],envVars:{MONGO_URI:"mongodb://localhost:27017/mydb"},tools:["find","aggregate","insert","update","delete","list_collections"],docsUrl:"https://github.com/kiliczsh/mcp-mongo-server",iconDomain:"mongodb.com"},{id:"redis",name:"Redis (Upstash)",description:"Interact with Redis — get/set keys, manage lists, sets, hashes, and sorted sets. Works with Upstash serverless Redis.",category:"database",package:"@upstash/mcp-server",command:"npx",args:["-y","@upstash/mcp-server"],envVars:{UPSTASH_REDIS_REST_URL:"https://...",UPSTASH_REDIS_REST_TOKEN:"AX..."},tools:["redis_get","redis_set","redis_del","redis_keys","redis_hgetall","redis_lpush"],docsUrl:"https://github.com/upstash/mcp-server",iconDomain:"redis.io"},{id:"neon",name:"Neon",description:"Serverless Postgres by Neon — create databases, branches, run migrations, and execute queries instantly.",category:"database",package:"@neondatabase/mcp-server-neon",command:"npx",args:["-y","@neondatabase/mcp-server-neon"],envVars:{NEON_API_KEY:"neon-xxxxxxxxxxxx"},tools:["create_project","create_branch","run_sql","list_databases","get_connection_string"],docsUrl:"https://github.com/neondatabase/mcp-server-neon",iconDomain:"neon.tech"},{id:"supabase",name:"Supabase",description:"Manage Supabase projects — database queries, auth, storage, edge functions, and real-time subscriptions.",category:"database",package:"@supabase/mcp-server",command:"npx",args:["-y","@supabase/mcp-server","--supabase-url=YOUR_URL","--supabase-key=YOUR_KEY"],envVars:{},tools:["execute_sql","list_tables","get_schema","manage_storage","list_functions"],docsUrl:"https://github.com/supabase/mcp-server",iconDomain:"supabase.com"},{id:"qdrant",name:"Qdrant",description:"Vector database for AI — store, search, and manage embeddings. Semantic search and RAG pipelines.",category:"database",package:"@qdrant/mcp-server-qdrant",command:"npx",args:["-y","@qdrant/mcp-server-qdrant"],envVars:{QDRANT_URL:"http://localhost:6333",QDRANT_API_KEY:"your-api-key"},tools:["store_memory","find_similar","list_collections","create_collection"],docsUrl:"https://github.com/qdrant/mcp-server-qdrant",iconDomain:"qdrant.tech"},{id:"notion",name:"Notion",description:"Official Notion MCP — search, create, and update pages, databases, and blocks in your workspace.",category:"productivity",package:"@notionhq/notion-mcp-server",command:"npx",args:["-y","@notionhq/notion-mcp-server"],envVars:{NOTION_API_KEY:"ntn_xxxxxxxxxxxx"},tools:["notion_search","notion_get_page","notion_query_database","notion_create_page","notion_update_page"],docsUrl:"https://github.com/makenotion/notion-mcp-server",iconDomain:"notion.so"},{id:"linear",name:"Linear",description:"Interact with Linear project management — search, create, and update issues, projects, and teams.",category:"productivity",package:"mcp-remote",command:"npx",args:["-y","mcp-remote","https://mcp.linear.app/mcp"],envVars:{},tools:["search_issues","create_issue","update_issue","get_teams","get_my_issues"],docsUrl:"https://linear.app/docs/mcp",iconDomain:"linear.app"},{id:"todoist",name:"Todoist",description:"Manage tasks in Todoist — create, complete, and organize tasks, projects, and labels.",category:"productivity",package:"todoist-mcp-server",command:"npx",args:["-y","todoist-mcp-server"],envVars:{TODOIST_API_TOKEN:"your-api-token"},tools:["get_tasks","create_task","complete_task","get_projects","create_project"],docsUrl:"https://www.npmjs.com/package/todoist-mcp-server",iconDomain:"todoist.com"},{id:"google-calendar",name:"Google Calendar",description:"Read and manage Google Calendar events — list, create, update, and delete events across calendars.",category:"productivity",package:"@anthropic/google-calendar-mcp",command:"npx",args:["-y","@anthropic/google-calendar-mcp"],envVars:{GOOGLE_CLIENT_ID:"your-client-id",GOOGLE_CLIENT_SECRET:"your-client-secret"},tools:["list_events","create_event","update_event","delete_event","list_calendars"],docsUrl:"https://github.com/anthropics/google-calendar-mcp",iconDomain:"calendar.google.com"},{id:"obsidian",name:"Obsidian",description:"Read, search, and manage notes in your Obsidian vault — create, edit, link, and search across notes.",category:"productivity",package:"obsidian-mcp",command:"npx",args:["-y","obsidian-mcp","--vault-path=/path/to/vault"],envVars:{},tools:["read_note","write_note","search_notes","list_notes","get_backlinks"],docsUrl:"https://github.com/smithery-ai/obsidian-mcp",iconDomain:"obsidian.md"},{id:"jira",name:"Jira",description:"Interact with Atlassian Jira — search issues, create tickets, update status, and manage sprints.",category:"productivity",package:"mcp-server-atlassian",command:"npx",args:["-y","mcp-server-atlassian","--jira"],envVars:{JIRA_URL:"https://your-domain.atlassian.net",JIRA_EMAIL:"you@example.com",JIRA_API_TOKEN:"your-api-token"},tools:["search_issues","get_issue","create_issue","update_issue","list_projects","get_sprint"],docsUrl:"https://www.npmjs.com/package/mcp-server-atlassian",iconDomain:"atlassian.com"},{id:"airtable",name:"Airtable",description:"Read and manage Airtable bases — list records, create, update, and query tables and views.",category:"productivity",package:"@airtable/mcp-server",command:"npx",args:["-y","@airtable/mcp-server"],envVars:{AIRTABLE_API_KEY:"pat_xxxxxxxxxxxx"},tools:["list_bases","list_records","create_record","update_record","search_records"],docsUrl:"https://github.com/Airtable/mcp-server",iconDomain:"airtable.com"},{id:"slack",name:"Slack",description:"Interact with Slack workspaces — list channels, read/post messages, search, manage threads.",category:"communication",package:"@modelcontextprotocol/server-slack",command:"npx",args:["-y","@modelcontextprotocol/server-slack"],envVars:{SLACK_BOT_TOKEN:"xoxb-xxxxxxxxxxxx",SLACK_TEAM_ID:"T00000000"},tools:["list_channels","post_message","reply_to_thread","get_channel_history","search_messages"],docsUrl:"https://github.com/modelcontextprotocol/servers",iconDomain:"slack.com"},{id:"discord-mcp",name:"Discord",description:"Read and send messages in Discord — manage channels, threads, and server interactions.",category:"communication",package:"mcp-server-discord",command:"npx",args:["-y","mcp-server-discord"],envVars:{DISCORD_TOKEN:"your-bot-token"},tools:["send_message","read_messages","list_channels","list_guilds","create_thread"],docsUrl:"https://www.npmjs.com/package/mcp-server-discord",iconDomain:"discord.com"},{id:"email-resend",name:"Resend (Email)",description:"Send transactional emails via Resend — HTML emails, templates, attachments, and delivery tracking.",category:"communication",package:"mcp-server-resend",command:"npx",args:["-y","mcp-server-resend"],envVars:{RESEND_API_KEY:"re_xxxxxxxxxxxx"},tools:["send_email","list_emails","get_email"],docsUrl:"https://github.com/resendlabs/mcp-server-resend",iconDomain:"resend.com"},{id:"twilio",name:"Twilio",description:"Send and receive SMS, make calls, and manage phone numbers via the Twilio API.",category:"communication",package:"twilio-mcp-server",command:"npx",args:["-y","twilio-mcp-server"],envVars:{TWILIO_ACCOUNT_SID:"AC...",TWILIO_AUTH_TOKEN:"your-auth-token",TWILIO_PHONE_NUMBER:"+1234567890"},tools:["send_sms","make_call","list_messages","get_phone_numbers"],docsUrl:"https://www.npmjs.com/package/twilio-mcp-server",iconDomain:"twilio.com"},{id:"cloudflare",name:"Cloudflare",description:"Access the entire Cloudflare API (2,500+ endpoints) — DNS, Workers, R2, Zero Trust, and more.",category:"cloud",package:"@cloudflare/mcp-server-cloudflare",command:"npx",args:["-y","@cloudflare/mcp-server-cloudflare"],envVars:{},tools:["search","execute"],docsUrl:"https://github.com/cloudflare/mcp-server-cloudflare",iconDomain:"cloudflare.com"},{id:"stripe",name:"Stripe",description:"Integrate with Stripe APIs — manage customers, products, payments, subscriptions, and invoices.",category:"cloud",package:"@stripe/mcp",command:"npx",args:["-y","@stripe/mcp","--tools=all","--api-key=YOUR_STRIPE_KEY"],envVars:{},tools:["customers.create","customers.read","products.create","invoices.create","payment_intents.create"],docsUrl:"https://docs.stripe.com/mcp",iconDomain:"stripe.com"},{id:"google-maps",name:"Google Maps",description:"Location services — geocoding, place search, directions, distance matrix, and elevation data.",category:"cloud",package:"@modelcontextprotocol/server-google-maps",command:"npx",args:["-y","@modelcontextprotocol/server-google-maps"],envVars:{GOOGLE_MAPS_API_KEY:"AIza_xxxxxxxxxxxx"},tools:["maps_geocode","maps_search_places","maps_directions","maps_distance_matrix","maps_elevation"],docsUrl:"https://github.com/modelcontextprotocol/servers",iconDomain:"maps.google.com"},{id:"aws",name:"AWS",description:"Interact with AWS services — S3, Lambda, EC2, DynamoDB, CloudWatch, and more via the AWS SDK.",category:"cloud",package:"mcp-server-aws",command:"npx",args:["-y","mcp-server-aws"],envVars:{AWS_ACCESS_KEY_ID:"AKIA...",AWS_SECRET_ACCESS_KEY:"your-secret",AWS_REGION:"us-east-1"},tools:["invoke_lambda","list_s3_buckets","describe_instances","get_cloudwatch_metrics","query_dynamodb"],docsUrl:"https://www.npmjs.com/package/mcp-server-aws",iconDomain:"aws.amazon.com"},{id:"shopify",name:"Shopify",description:"Manage your Shopify store — products, orders, inventory, customers, and analytics via the Admin API.",category:"cloud",package:"@shopify/dev-mcp",command:"npx",args:["-y","@shopify/dev-mcp"],envVars:{},tools:["search_products","get_orders","manage_inventory","get_customers","get_analytics"],docsUrl:"https://github.com/Shopify/dev-mcp",iconDomain:"shopify.com"},{id:"grafana",name:"Grafana",description:"Query Grafana dashboards, datasources, and alerts — Prometheus, Loki, and infrastructure monitoring.",category:"monitoring",package:"@grafana/mcp-server",command:"npx",args:["-y","@grafana/mcp-server"],envVars:{GRAFANA_URL:"http://localhost:3000",GRAFANA_API_KEY:"your-api-key"},tools:["search_dashboards","query_prometheus","query_loki","list_datasources","get_alerts"],docsUrl:"https://github.com/grafana/mcp-grafana",iconDomain:"grafana.com"},{id:"axiom",name:"Axiom",description:"Query and analyze log data in Axiom — APL queries, dataset exploration, and real-time log search.",category:"monitoring",package:"@axiomhq/mcp-server-axiom",command:"npx",args:["-y","@axiomhq/mcp-server-axiom"],envVars:{AXIOM_TOKEN:"xaat-xxxxxxxxxxxx",AXIOM_ORG_ID:"your-org-id"},tools:["query_apl","list_datasets","ingest_events"],docsUrl:"https://github.com/axiomhq/mcp-server-axiom",iconDomain:"axiom.co"},{id:"figma",name:"Figma",description:"Access Figma design files — extract design tokens, components, layout data for code generation.",category:"design",package:"figma-developer-mcp",command:"npx",args:["-y","figma-developer-mcp","--stdio"],envVars:{FIGMA_API_KEY:"figd_xxxxxxxxxxxx"},tools:["get_file","get_file_nodes","get_image","get_component","get_styles"],docsUrl:"https://help.figma.com/hc/en-us/articles/32132100833559",iconDomain:"figma.com"},{id:"magic-mcp",name:"21st.dev Magic",description:"Generate production-ready UI components — React, Tailwind, shadcn/ui from natural language descriptions.",category:"design",package:"@21st-dev/magic-mcp",command:"npx",args:["-y","@21st-dev/magic-mcp"],envVars:{TWENTYFIRST_API_KEY:"your-api-key"},tools:["generate_component","search_components","get_component_code"],docsUrl:"https://github.com/21st-dev/magic-mcp",iconDomain:"21st.dev"},{id:"memory",name:"Memory",description:"Knowledge graph-based persistent memory. Store entities, observations, and relations across sessions.",category:"ai",package:"@modelcontextprotocol/server-memory",command:"npx",args:["-y","@modelcontextprotocol/server-memory"],envVars:{},tools:["create_entities","create_relations","add_observations","read_graph","search_nodes","open_nodes"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/memory",iconDomain:"github.com"},{id:"sequential-thinking",name:"Sequential Thinking",description:"Dynamic and reflective problem-solving through thought sequences. Helps break down complex problems.",category:"ai",package:"@modelcontextprotocol/server-sequential-thinking",command:"npx",args:["-y","@modelcontextprotocol/server-sequential-thinking"],envVars:{},tools:["sequentialthinking"],docsUrl:"https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking",iconDomain:"github.com"},{id:"context7",name:"Context7",description:"Up-to-date, version-specific library documentation and code examples for AI coding assistants.",category:"ai",package:"@upstash/context7-mcp",command:"npx",args:["-y","@upstash/context7-mcp"],envVars:{},tools:["resolve-library-id","query-docs"],docsUrl:"https://github.com/upstash/context7",iconDomain:"context7.com"},{id:"twitter-mcp",name:"Twitter / X",description:"Post tweets, search Twitter, manage followers, and interact with X/Twitter via the official API v2. Free tier: 500 tweets/month.",category:"marketing",package:"twitter-mcp",command:"npx",args:["-y","twitter-mcp"],envVars:{TWITTER_API_KEY:"your-api-key",TWITTER_API_SECRET:"your-api-secret",TWITTER_ACCESS_TOKEN:"your-access-token",TWITTER_ACCESS_SECRET:"your-access-secret"},tools:["post_tweet","search_tweets","get_user_info","get_timeline","delete_tweet"],docsUrl:"https://github.com/EnesCinr/twitter-mcp",iconDomain:"x.com"},{id:"reddit-mcp",name:"Reddit",description:"Read, search, and post to Reddit — browse subreddits, fetch posts and comments, submit posts and replies. Free API for non-commercial use.",category:"marketing",package:"reddit-mcp",command:"npx",args:["-y","reddit-mcp"],envVars:{REDDIT_CLIENT_ID:"your-client-id",REDDIT_CLIENT_SECRET:"your-client-secret",REDDIT_USERNAME:"your-username",REDDIT_PASSWORD:"your-password"},tools:["get_frontpage_posts","get_subreddit_hot_posts","get_post_content","get_post_comments","submit_post","submit_comment"],docsUrl:"https://github.com/Arindam200/reddit-mcp",iconDomain:"reddit.com"},{id:"linkedin-mcp",name:"LinkedIn",description:"Post updates, search profiles, find jobs, and interact with LinkedIn's API. Create and schedule professional content.",category:"marketing",package:"linkedin-mcpserver",command:"npx",args:["-y","linkedin-mcpserver"],envVars:{LINKEDIN_ACCESS_TOKEN:"your-access-token"},tools:["create_post","get_profile","search_people","get_feed","send_message"],docsUrl:"https://github.com/felipfr/linkedin-mcpserver",iconDomain:"linkedin.com"},{id:"excel-mcp",name:"Excel",description:"Create, read, and modify Excel workbooks without MS Excel installed — formulas, formatting, charts, pivot tables, and Excel tables.",category:"productivity",package:"excel-mcp-server",command:"uvx",args:["excel-mcp-server"],envVars:{},tools:["create_workbook","read_sheet","write_cells","add_chart","format_range","add_pivot_table","create_table"],docsUrl:"https://github.com/haris-musa/excel-mcp-server",iconDomain:"microsoft.com"},{id:"powerpoint-mcp",name:"PowerPoint",description:"Create and edit presentations with 32 tools and 25 professional slide templates — charts, tables, shapes, and rich text formatting.",category:"productivity",package:"office-powerpoint-mcp-server",command:"uvx",args:["office-powerpoint-mcp-server"],envVars:{},tools:["create_presentation","add_slide","add_chart","add_table","add_shape","add_text","set_background","add_image"],docsUrl:"https://github.com/GongRzhe/Office-PowerPoint-MCP-Server",iconDomain:"microsoft.com"},{id:"word-mcp",name:"Word",description:"Create, read, and manipulate Microsoft Word documents — rich formatting, tables, headers, footers, and structured content.",category:"productivity",package:"office-word-mcp-server",command:"uvx",args:["office-word-mcp-server"],envVars:{},tools:["create_document","add_paragraph","add_table","add_heading","set_header","set_footer","add_image"],docsUrl:"https://github.com/GongRzhe/Office-Word-MCP-Server",iconDomain:"microsoft.com"},{id:"google-workspace-mcp",name:"Google Workspace",description:"Full Google Docs, Sheets, Slides, Drive, and Calendar integration — create, edit, and manage documents in Google Workspace.",category:"productivity",package:"google-drive-mcp",command:"npx",args:["-y","google-drive-mcp"],envVars:{GOOGLE_CLIENT_ID:"your-client-id",GOOGLE_CLIENT_SECRET:"your-client-secret",GOOGLE_REDIRECT_URI:"http://localhost:3000/oauth2callback"},tools:["create_doc","edit_doc","create_sheet","read_sheet","create_slide","list_files","upload_file"],docsUrl:"https://github.com/piotr-agier/google-drive-mcp",iconDomain:"google.com"},{id:"salesforce-mcp",name:"Salesforce",description:"Official Salesforce DX MCP server — interact with Salesforce orgs, query data, manage resources, and operate Salesforce securely via natural language.",category:"cloud",package:"@salesforce/mcp",command:"npx",args:["-y","@salesforce/mcp"],envVars:{SALESFORCE_INSTANCE_URL:"https://your-org.my.salesforce.com",SALESFORCE_ACCESS_TOKEN:"your-access-token"},tools:["salesforce_query","salesforce_create","salesforce_update","salesforce_describe","salesforce_search"],docsUrl:"https://github.com/salesforcecli/mcp",iconDomain:"salesforce.com"},{id:"databricks-mcp",name:"Databricks",description:"Execute SQL, manage clusters and jobs, list notebooks, and browse DBFS. Supports Unity Catalog, Delta Lake, and SQL warehouses.",category:"database",package:"databricks-mcp-server",command:"uvx",args:["databricks-mcp-server@latest"],envVars:{DATABRICKS_HOST:"https://your-workspace.cloud.databricks.com",DATABRICKS_TOKEN:"your-personal-access-token"},tools:["execute_sql","list_clusters","create_cluster","list_jobs","run_job","list_notebooks","export_notebook","list_files"],docsUrl:"https://github.com/JustTryAI/databricks-mcp-server",iconDomain:"databricks.com"}];function KR(n){return JSON.parse(JSON.stringify(n))}const aPe=[{key:"general",label:"General",icon:_.jsx(ZW,{size:15}),color:"var(--text-secondary)"},{key:"chat",label:"Chat",icon:_.jsx(DY,{size:15}),color:"var(--accent)"},{key:"models",label:"Models",icon:_.jsx(wY,{size:15}),color:"var(--purple)"},{key:"channels",label:"Channels",icon:_.jsx(FDe,{size:15}),color:"var(--blue)"},{key:"integrations",label:"Integrations",icon:_.jsx(xEe,{size:15}),color:"var(--orange)"},{key:"mcp",label:"MCP Servers",icon:_.jsx(EY,{size:15}),color:"var(--green)"},{key:"versioning",label:"Versioning",icon:_.jsx(up,{size:15}),color:"var(--cyan, #06b6d4)"},{key:"shortcuts",label:"Shortcuts",icon:_.jsx(aDe,{size:15}),color:"var(--yellow, #e2b93d)"},{key:"mobile",label:"Mobile",icon:_.jsx(TA,{size:15}),color:"var(--green)"}];function lPe({src:n,fallback:e,size:t=20,colored:i}){const[s,r]=z.useState(!1);return s?_.jsx(_.Fragment,{children:e}):_.jsx("img",{src:n,alt:"",style:{width:t,height:t,borderRadius:3},onError:()=>r(!0)})}function cPe({id:n,iconDomain:e,size:t=20}){const[i,s]=z.useState(!1);if(i)return _.jsx(ax,{size:t});const r=e?`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${e}&size=32`:`/icons/mcp/${n}.svg`;return _.jsx("img",{src:r,alt:"",style:{width:t,height:t,borderRadius:3},onError:()=>s(!0)})}function ab({label:n,placeholder:e,value:t,onChange:i,isSecret:s=!0}){const[r,o]=z.useState(!1);return _.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",marginBottom:5,textTransform:"uppercase",letterSpacing:"0.03em"},children:n}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("input",{type:s&&!r?"password":"text",placeholder:e,value:t,onChange:a=>i(a.target.value),autoComplete:"off",spellCheck:!1,style:{flex:1,padding:"8px 12px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:12,fontFamily:"monospace",outline:"none"},onFocus:a=>{a.target.style.borderColor="var(--accent)"},onBlur:a=>{a.target.style.borderColor="var(--border)"}}),s&&_.jsx("button",{onClick:()=>o(!r),style:{width:32,height:32,borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},title:r?"Hide":"Show",children:_.jsx(jE,{size:14})})]})]})}function id({label:n,value:e,icon:t}){const i=typeof e=="boolean"?e?"Enabled":"Disabled":String(e),s=typeof e=="boolean";return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0",borderBottom:"1px solid var(--border)"},children:[t&&_.jsx("span",{style:{color:"var(--text-muted)",flexShrink:0,display:"flex"},children:t}),_.jsx("span",{style:{fontSize:13,color:"var(--text-secondary)",flex:1},children:n}),s?_.jsx("span",{style:{fontSize:11,fontWeight:600,padding:"3px 10px",borderRadius:5,background:e?"var(--green-bg)":"var(--bg-tertiary)",color:e?"var(--green)":"var(--text-muted)"},children:i}):_.jsx("span",{style:{fontSize:12,color:"var(--text-primary)",fontFamily:"monospace",background:"var(--bg-tertiary)",padding:"3px 10px",borderRadius:5},children:i})]})}function dPe({label:n,value:e,icon:t,onSave:i}){const[s,r]=z.useState(!1),[o,a]=z.useState(e),[l,c]=z.useState(!1);z.useEffect(()=>{a(e)},[e]);const d=async()=>{if(!o.trim()||o===e){r(!1);return}c(!0);try{await i(o.trim()),r(!1)}catch{}c(!1)};return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0",borderBottom:"1px solid var(--border)"},children:[t&&_.jsx("span",{style:{color:"var(--text-muted)",flexShrink:0,display:"flex"},children:t}),_.jsx("span",{style:{fontSize:13,color:"var(--text-secondary)",flexShrink:0},children:n}),s?_.jsxs("div",{style:{flex:1,display:"flex",gap:6,alignItems:"center"},children:[_.jsx("input",{value:o,onChange:h=>a(h.target.value),onKeyDown:h=>{h.key==="Enter"&&d(),h.key==="Escape"&&r(!1)},autoFocus:!0,style:{flex:1,fontSize:12,fontFamily:"monospace",padding:"4px 8px",borderRadius:5,border:"1px solid var(--border)",background:"var(--bg-secondary)",color:"var(--text-primary)",outline:"none"}}),_.jsx("button",{onClick:d,disabled:l,style:{padding:"4px 10px",fontSize:11,fontWeight:600,borderRadius:5,border:"none",background:"var(--accent)",color:"#fff",cursor:"pointer",opacity:l?.6:1},children:l?"...":"Save"}),_.jsx("button",{onClick:()=>{a(e),r(!1)},style:{padding:"4px 8px",fontSize:11,borderRadius:5,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:"Cancel"})]}):_.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8,justifyContent:"flex-end"},children:[_.jsx("span",{style:{fontSize:12,color:"var(--text-primary)",fontFamily:"monospace",background:"var(--bg-tertiary)",padding:"3px 10px",borderRadius:5,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:360},children:e}),_.jsx("button",{onClick:()=>r(!0),style:{padding:"3px 8px",fontSize:11,borderRadius:5,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:"Edit"})]})]})}function hPe({tier:n,slot:e,color:t,icon:i,providers:s,onSave:r,saving:o}){const[a,l]=z.useState((e==null?void 0:e.provider)??""),[c,d]=z.useState((e==null?void 0:e.model)??""),[h,u]=z.useState(!1),f=s.find(L=>L.id===a),g=(f==null?void 0:f.models)??[],m=s.map(L=>({value:L.id,label:`${L.name} (${L.models.length})`,iconUrl:L.iconUrl})),b=g.map(L=>({value:L,label:L}));function w(L){l(L),d(""),u(!0)}function S(L){d(L),u(!0)}function x(){a&&c&&r({provider:a,model:c}),u(!1)}function C(){r(null),l(""),d(""),u(!1)}return _.jsxs("div",{style:{padding:"14px 16px",borderRadius:10,background:"var(--bg-card)",border:"1px solid var(--border)"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:12},children:[_.jsx("div",{style:{width:30,height:30,borderRadius:8,flexShrink:0,background:e?`color-mix(in srgb, ${t} 12%, transparent)`:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",color:e?t:"var(--text-muted)"},children:i}),_.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",textTransform:"capitalize",flex:1},children:n}),e&&_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"3px 8px",borderRadius:5,background:`color-mix(in srgb, ${t} 10%, transparent)`,color:t,letterSpacing:"0.04em"},children:"SET"})]}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[_.jsx(cx,{value:a,onChange:w,options:m,placeholder:"Select provider...",alignRight:!1}),a&&_.jsx(cx,{value:c,onChange:S,options:b,placeholder:`Select model (${g.length})...`,alignRight:!1}),h&&c&&_.jsxs("button",{onClick:x,disabled:o,style:{display:"flex",alignItems:"center",justifyContent:"center",height:32,padding:"0 14px",borderRadius:7,border:"none",background:"var(--accent)",color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",fontFamily:"inherit",flexShrink:0,opacity:o?.5:1,transition:"opacity 0.12s"},children:[_.jsx(Mc,{size:12,style:{marginRight:4}})," Apply"]}),e&&!h&&_.jsx("button",{onClick:C,disabled:o,title:"Clear this tier",style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:7,flexShrink:0,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",padding:0,transition:"color 0.12s, border-color 0.12s"},children:_.jsx(vp,{size:12})})]})]})}function od({title:n,count:e}){return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em",marginBottom:10},children:[n,e!==void 0&&_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"1px 6px",borderRadius:4,background:"var(--bg-tertiary)",color:"var(--text-muted)",fontVariantNumeric:"tabular-nums"},children:e})]})}function uPe(){const[n,e]=z.useState("general");z.useEffect(()=>{function J(je){const Ne=je.detail;Ne&&e(Ne)}return window.addEventListener("settings-nav",J),()=>window.removeEventListener("settings-nav",J)},[]);const{data:t,refresh:i}=Ks("/api/settings",1e4),{data:s,refresh:r}=Ks("/api/model-config",1e4),[o,a]=z.useState(!1),[l,c]=z.useState(null),[d,h]=z.useState(""),[u,f]=z.useState(!1),[g,m]=z.useState({mcpServers:{}}),[b,w]=z.useState({servers:[]}),[S,x]=z.useState(!1),[C,L]=z.useState(!1),[E,I]=z.useState(null),[R,M]=z.useState({}),[A,H]=z.useState(0),[F,B]=z.useState(null),[j,V]=z.useState(null),[X,K]=z.useState({}),[Q,te]=z.useState(!1),[W,Z]=z.useState(null),[oe,$]=z.useState(!1),[be,Le]=z.useState(null),[Ve,Ye]=z.useState(null),[ft,re]=z.useState({}),[Se,We]=z.useState(!1),{data:Be}=Ks("/api/docker-status",3e4),[Te,Et]=z.useState(null),[_t,Si]=z.useState({username:"",email:"",token:"",provider:"github",remoteUrl:"",backupEnabled:!1,backupIntervalHours:24}),[bi,ns]=z.useState(!1),[It,$t]=z.useState(!1),[Ti,Wn]=z.useState(!1),[xi,Qt]=z.useState(null),[Is,ae]=z.useState(!1),[ke,Ue]=z.useState(null),[Pt,Dt]=z.useState(!1),Ei=z.useCallback(async()=>{try{const J=await fetch(dh("/api/git-config")).then(je=>je.json());Et(J)}catch{}},[]);z.useEffect(()=>{Ei()},[Ei]);const Ri={userBubble:"",agentBubble:"",userText:"#ffffff",agentText:"",timestampUser:"rgba(255,255,255,0.6)",timestampAgent:""},[fi,nn]=z.useState(()=>{try{const J=localStorage.getItem("vec-chat-colors");return J?{...Ri,...JSON.parse(J)}:Ri}catch{return Ri}});z.useEffect(()=>{const J=document.documentElement;fi.userBubble?J.style.setProperty("--chat-user-bubble",fi.userBubble):J.style.removeProperty("--chat-user-bubble"),fi.userText?J.style.setProperty("--chat-user-text",fi.userText):J.style.removeProperty("--chat-user-text"),fi.agentBubble?J.style.setProperty("--chat-agent-bubble",fi.agentBubble):J.style.removeProperty("--chat-agent-bubble"),fi.agentText?J.style.setProperty("--chat-agent-text",fi.agentText):J.style.removeProperty("--chat-agent-text"),fi.timestampUser?J.style.setProperty("--chat-ts-user",fi.timestampUser):J.style.removeProperty("--chat-ts-user"),fi.timestampAgent?J.style.setProperty("--chat-ts-agent",fi.timestampAgent):J.style.removeProperty("--chat-ts-agent"),localStorage.setItem("vec-chat-colors",JSON.stringify(fi))},[fi]);const gs=[{id:"nav-overview",label:"Overview",description:"Go to Overview",category:"Navigation",keys:"Ctrl+1"},{id:"nav-kanban",label:"Kanban",description:"Go to Kanban Board",category:"Navigation",keys:"Ctrl+2"},{id:"nav-chat",label:"Chat",description:"Go to Chat",category:"Navigation",keys:"Ctrl+3"},{id:"nav-live",label:"Live Monitor",description:"Go to Live Monitor",category:"Navigation",keys:"Ctrl+4"},{id:"nav-workspace",label:"Workspace",description:"Go to Workspace",category:"Navigation",keys:"Ctrl+5"},{id:"nav-events",label:"Events",description:"Go to Events",category:"Navigation",keys:"Ctrl+6"},{id:"nav-settings",label:"Settings",description:"Go to Settings",category:"Navigation",keys:"Ctrl+,"},{id:"editor-save",label:"Save File",description:"Save active file in editor",category:"Editor",keys:"Ctrl+S"},{id:"editor-close-tab",label:"Close Tab",description:"Close active editor tab",category:"Editor",keys:"Ctrl+W"},{id:"editor-search",label:"Search in File",description:"Search in active file",category:"Editor",keys:"Ctrl+F"},{id:"global-search",label:"Global Search",description:"Focus search / command palette",category:"General",keys:"Ctrl+K"},{id:"toggle-theme",label:"Toggle Theme",description:"Switch dark / light theme",category:"General",keys:"Ctrl+Shift+T"},{id:"send-message",label:"Send Message",description:"Send chat message",category:"Chat",keys:"Enter"},{id:"newline-message",label:"New Line",description:"New line in chat input",category:"Chat",keys:"Shift+Enter"}],[an,xn]=z.useState(gs),[ys,So]=z.useState(!1),[Kc,vl]=z.useState(null);z.useEffect(()=>{fetch(dh("/api/shortcuts-config")).then(J=>J.json()).then(J=>{J&&Array.isArray(J)&&xn(gs.map(je=>{const Ne=J.find(ze=>ze.id===je.id);return Ne?{...je,keys:Ne.keys}:je})),So(!0)}).catch(()=>So(!0))},[]);const qo=z.useRef(null);z.useEffect(()=>{ys&&(localStorage.setItem("vec-keyboard-shortcuts",JSON.stringify(an)),window.dispatchEvent(new CustomEvent("vec-shortcuts-changed",{detail:an})),qo.current&&clearTimeout(qo.current),qo.current=setTimeout(()=>{tn("/api/shortcuts-config",{shortcuts:an}).catch(()=>{})},500))},[an,ys]);const Hh=z.useCallback((J,je)=>{xn(Ne=>Ne.map(ze=>ze.id===J?{...ze,keys:je}:ze)),vl(null)},[]),vg=z.useCallback(J=>{const je=gs.find(Ne=>Ne.id===J);je&&xn(Ne=>Ne.map(ze=>ze.id===J?{...ze,keys:je.keys}:ze))},[]),Bs=z.useCallback(()=>{xn(gs),Tn("All shortcuts reset to defaults")},[]),eo=z.useCallback(async()=>{try{const J=await fetch(dh("/api/channel-config")).then(je=>je.json());B(J)}catch{}},[]),Gc=z.useCallback(async()=>{try{const J=await fetch(dh("/api/integration-config")).then(je=>je.json());Le(J)}catch{}},[]);z.useEffect(()=>{eo()},[eo]),z.useEffect(()=>{Gc()},[Gc]),z.useEffect(()=>{const J=setInterval(eo,8e3);return()=>clearInterval(J)},[eo]);const Yc=z.useCallback(async()=>{try{const[J,je]=await Promise.all([fetch(dh("/api/mcp-config")).then(ze=>ze.json()),fetch(dh("/api/mcp-status")).then(ze=>ze.json())]);m(J),w(je);const Ne={};for(const ze of Object.keys(J.mcpServers??{}))Ne[ze]=!0;M(Ne)}catch{Tn("Failed to load MCP config")}},[]);z.useEffect(()=>{Yc()},[Yc]);function Tn(J){I(J),setTimeout(()=>I(null),3e3)}async function ec(J,je){a(!0);try{await tn("/api/model-config",{[J]:je}),r(),Tn(`${J.charAt(0).toUpperCase()+J.slice(1)} model updated`)}catch{Tn("Failed to save model config")}finally{a(!1)}}async function Kd(J,je){f(!0);try{await tn("/api/provider-key",{provider:J,key:je}),r(),Tn("API key saved"),c(null),h("")}catch{Tn("Failed to save API key")}finally{f(!1)}}async function tc(J,je){We(!0);try{const Ne=await tn("/api/integration-config",{[J]:je});Ne!=null&&Ne.ok?(Le(Ne.config),Tn(`${J.charAt(0).toUpperCase()+J.slice(1)} saved`),Ye(null),re({})):Tn("Save failed")}catch{Tn("Save failed")}finally{We(!1)}}async function Ko(J,je){We(!0);try{const Ne=be==null?void 0:be[J],ze=Ne&&typeof Ne=="object"?{...Ne,enabled:!je}:{enabled:!je},vt=await tn("/api/integration-config",{[J]:ze});vt!=null&&vt.ok&&(Le(vt.config),Tn(`${J} ${je?"disabled":"enabled"}`))}catch{Tn("Toggle failed")}finally{We(!1)}}function xo(J,je){m(Ne=>{const ze=KR(Ne);return ze.mcpServers[J]={...ze.mcpServers[J],...je},ze}),L(!0)}function wa(J){m(je=>{const Ne=KR(je);return delete Ne.mcpServers[J],Ne}),L(!0)}function Vh(J){const je=prompt("Environment variable name:");je!=null&&je.trim()&&xo(J,{env:{...g.mcpServers[J].env,[je.trim()]:""}})}function Gd(J,je){const Ne={...g.mcpServers[J].env};delete Ne[je],xo(J,{env:Ne})}async function bg(){x(!0);try{const J=await tn("/api/mcp-config",g);J!=null&&J.ok?(L(!1),Tn("Saved! MCP servers updated automatically."),Yc()):Tn("Save failed")}catch{Tn("Save failed")}finally{x(!1)}}const Er=Object.keys(g.mcpServers),Hn=t,Ot=be??(Hn==null?void 0:Hn.integrations)??null,ko=(s==null?void 0:s.providers.filter(J=>J.configured).length)??0,zh=16,jh=F?Object.values(F).filter(J=>J==null?void 0:J.configured).length:0,Yt=Ot?[Ot.searxng.configured&&Ot.searxng.enabled,Ot.sonarqube.configured&&Ot.sonarqube.enabled,Ot.gitleaks.enabled,Ot.semgrep.enabled,Ot.trivy.enabled].filter(Boolean).length:0,me=b.servers.filter(J=>J.connected).length;function lt(){return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[Hn&&_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Company",value:Hn.system.companyName,color:"var(--accent)"},{label:"Provider",value:Hn.llm.provider,color:"var(--purple)"},{label:"Model",value:Hn.llm.model.split("/").pop()??Hn.llm.model,color:"var(--blue)"},{label:"Dashboard",value:`:${Hn.system.dashboardPort}`,color:"var(--green)"}].map(J=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:16,fontWeight:700,color:J.color,lineHeight:1.2,fontVariantNumeric:"tabular-nums"},children:J.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:J.label})]},J.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"System"}),_.jsx("div",{className:"vec-card",style:{padding:"4px 16px"},children:Hn?_.jsxs(_.Fragment,{children:[_.jsx(id,{label:"Company Name",value:Hn.system.companyName,icon:_.jsx(YW,{size:13})}),_.jsx(dPe,{label:"Workspace",value:Hn.system.workspace,icon:_.jsx(j2,{size:13}),onSave:async J=>{await tn(dh("/api/workspace"),{path:J}),i()}}),_.jsx(id,{label:"CLI Enabled",value:Hn.system.cliEnabled}),_.jsx(id,{label:"PM Proactive Loop",value:Hn.proactive.enabled}),Hn.proactive.enabled&&_.jsx(id,{label:"Proactive Interval",value:`${Hn.proactive.intervalSecs}s`}),_.jsx(id,{label:"Dashboard Port",value:Hn.system.dashboardPort,icon:_.jsx(QLe,{size:13})}),_.jsx(id,{label:"Debounce Window",value:`${Hn.system.debounceMs}ms`}),_.jsx(id,{label:"Context Window",value:`${(Hn.system.contextWindow/1e3).toFixed(0)}K tokens`}),_.jsx(id,{label:"Compact Threshold",value:`${(Hn.system.compactThreshold*100).toFixed(0)}%`})]}):_.jsx("div",{style:{padding:20,color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:"Loading..."})})]}),_.jsxs("div",{children:[_.jsx(od,{title:"LLM Defaults"}),_.jsx("div",{className:"vec-card",style:{padding:"4px 16px"},children:Hn?_.jsxs(_.Fragment,{children:[_.jsx(id,{label:"Provider",value:Hn.llm.provider,icon:_.jsx(DA,{size:13})}),_.jsx(id,{label:"Model",value:Hn.llm.model,icon:_.jsx(wY,{size:13})}),_.jsx(id,{label:"Thinking Level",value:Hn.llm.thinkingLevel}),_.jsx(id,{label:"Temperature",value:Hn.llm.temperature}),_.jsx(id,{label:"Max Tokens",value:Hn.llm.maxTokens.toLocaleString()})]}):_.jsx("div",{style:{padding:20,color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:"Loading..."})}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:8,paddingLeft:2},children:"Environment defaults — overridden by model priority tiers when set."})]})]})}function Vt(){if(!s)return _.jsx("div",{style:{padding:20,color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:"Loading..."});const J=s.providers.filter(Ne=>Ne.configured),je=s.providers.filter(Ne=>!Ne.configured);return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Providers Ready",value:String(J.length),color:"var(--green)"},{label:"Total Models",value:String(s.providers.reduce((Ne,ze)=>Ne+ze.models.length,0)),color:"var(--blue)"},{label:"Priority Tiers Set",value:String([s.config.primary,s.config.secondary,s.config.fallback].filter(Boolean).length)+"/3",color:"var(--purple)"},{label:"Agent Overrides",value:String(Object.keys(s.config.agentModels).length),color:"var(--orange)"}].map(Ne=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:Ne.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:Ne.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:Ne.label})]},Ne.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"Configured Providers",count:J.length}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:8},children:J.map(Ne=>_.jsx(nse,{provider:Ne,onClick:()=>{c(Ne.id),h("")}},Ne.id))})]}),je.length>0&&_.jsxs("div",{children:[_.jsx(od,{title:"Available Providers",count:je.length}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:8},children:je.map(Ne=>_.jsx(nse,{provider:Ne,onClick:()=>{c(Ne.id),h("")}},Ne.id))})]}),_.jsxs("div",{children:[_.jsx(od,{title:"Model Priority"}),_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:["primary","secondary","fallback"].map(Ne=>{const ze=s.config[Ne],vt={primary:"var(--accent)",secondary:"var(--yellow)",fallback:"var(--text-muted)"},si={primary:_.jsx(nEe,{size:14}),secondary:_.jsx(DA,{size:14}),fallback:_.jsx(HR,{size:14})},$i=s.providers.filter(Gi=>Gi.configured);return _.jsx(hPe,{tier:Ne,slot:ze,color:vt[Ne],icon:si[Ne],providers:$i,onSave:Gi=>ec(Ne,Gi),saving:o},Ne)})})]}),Object.keys(s.config.agentModels).length>0&&_.jsxs("div",{children:[_.jsx(od,{title:"Agent Overrides",count:Object.keys(s.config.agentModels).length}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:Object.entries(s.config.agentModels).map(([Ne,ze])=>_.jsxs("span",{style:{fontSize:12,padding:"6px 12px",borderRadius:7,background:"var(--bg-card)",border:"1px solid var(--border)",color:"var(--text-secondary)",fontFamily:"monospace"},children:["@",Ne," → ",ze.provider,"/",ze.model.split("/").pop()]},Ne))}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:8,paddingLeft:2},children:"Per-agent models can be configured from the Directory view."})]})]})}const Gn={telegram:{color:"#26A5E4",icon:"telegram.org",fields:[{key:"botToken",label:"Bot Token",placeholder:"Paste your bot token from @BotFather",secret:!0},{key:"chatId",label:"Chat ID",placeholder:"Your authorized chat ID"}]},slack:{color:"#4A154B",icon:"slack.com",fields:[{key:"botToken",label:"Bot Token",placeholder:"xoxb-...",secret:!0},{key:"appToken",label:"App Token",placeholder:"xapp-...",secret:!0},{key:"channelId",label:"Channel ID",placeholder:"C0123456789"}]},discord:{color:"#5865F2",icon:"discord.com",fields:[{key:"botToken",label:"Bot Token",placeholder:"Discord Developer Portal → Bot → Token",secret:!0},{key:"channelId",label:"Channel ID",placeholder:"Right-click channel → Copy Channel ID"}]},whatsapp:{color:"#25D366",icon:"whatsapp.com",note:"On first connect, a QR code will appear in the server terminal. Scan it with WhatsApp.",fields:[{key:"authorizedJid",label:"Authorized JID",placeholder:"919876543210@s.whatsapp.net"}]},teams:{color:"#6264A7",icon:"teams.microsoft.com",fields:[{key:"incomingWebhookUrl",label:"Incoming Webhook URL",placeholder:"https://outlook.office.com/webhook/...",secret:!0},{key:"outgoingWebhookSecret",label:"Outgoing Webhook Secret (optional)",placeholder:"HMAC secret for verifying Teams messages",secret:!0}]},matrix:{color:"#0DBD8B",icon:"matrix.org",fields:[{key:"homeserverUrl",label:"Homeserver URL",placeholder:"https://matrix.org"},{key:"accessToken",label:"Access Token",placeholder:"Bot user access token",secret:!0},{key:"roomId",label:"Room ID",placeholder:"!abc123:matrix.org"}]},signal:{color:"#3A76F0",icon:"signal.org",note:"Requires signal-cli installed and registered on the server.",fields:[{key:"phoneNumber",label:"Phone Number",placeholder:"+1234567890"},{key:"recipient",label:"Recipient",placeholder:"+1234567890 or group ID"},{key:"cliPath",label:"signal-cli Path (optional)",placeholder:"/usr/local/bin/signal-cli"}]},googlechat:{color:"#00AC47",icon:"chat.google.com",fields:[{key:"webhookUrl",label:"Webhook URL",placeholder:"https://chat.googleapis.com/v1/spaces/...",secret:!0}]},irc:{color:"#6667AB",icon:"libera.chat",fields:[{key:"server",label:"Server",placeholder:"irc.libera.chat"},{key:"port",label:"Port",placeholder:"6697"},{key:"nickname",label:"Nickname",placeholder:"octo-vec"},{key:"channel",label:"Channel",placeholder:"#my-channel"},{key:"authNick",label:"Auth Nick (authorized user)",placeholder:"your-nick"},{key:"useTls",label:"Use TLS (true/false)",placeholder:"true"}]},line:{color:"#00C300",icon:"line.me",fields:[{key:"channelAccessToken",label:"Channel Access Token",placeholder:"LINE Developers → Messaging API",secret:!0},{key:"channelSecret",label:"Channel Secret",placeholder:"LINE channel secret",secret:!0},{key:"userId",label:"User ID",placeholder:"Target user ID to send messages to"}]},mattermost:{color:"#0058CC",icon:"developers.mattermost.com",fields:[{key:"serverUrl",label:"Server URL",placeholder:"https://mattermost.example.com"},{key:"botToken",label:"Bot Token",placeholder:"Bot access token",secret:!0},{key:"channelId",label:"Channel ID",placeholder:"Channel ID to listen on"},{key:"authUser",label:"Auth User (authorized username)",placeholder:"admin"}]},twitch:{color:"#9146FF",icon:"twitch.tv",fields:[{key:"botUsername",label:"Bot Username",placeholder:"my_bot"},{key:"oauthToken",label:"OAuth Token",placeholder:"oauth:...",secret:!0},{key:"channel",label:"Channel",placeholder:"#my-channel"},{key:"authUser",label:"Auth User (authorized username)",placeholder:"streamer-name"}]},nostr:{color:"#8B5CF6",icon:"nostr.com",fields:[{key:"privateKey",label:"Private Key (hex)",placeholder:"nsec or hex private key",secret:!0},{key:"relayUrl",label:"Relay URL",placeholder:"wss://relay.damus.io"},{key:"authPubkey",label:"Auth Pubkey (authorized user)",placeholder:"npub or hex pubkey"}]},nextcloud:{color:"#0082C9",icon:"nextcloud.com",fields:[{key:"serverUrl",label:"Server URL",placeholder:"https://cloud.example.com"},{key:"username",label:"Username",placeholder:"bot-user"},{key:"password",label:"Password",placeholder:"App password",secret:!0},{key:"roomToken",label:"Room Token",placeholder:"Talk room token"},{key:"authUser",label:"Auth User (authorized username)",placeholder:"admin"}]},synology:{color:"#B6002B",icon:"synology.com",fields:[{key:"incomingUrl",label:"Incoming Webhook URL",placeholder:"Synology Chat incoming webhook URL",secret:!0},{key:"outgoingToken",label:"Outgoing Webhook Token",placeholder:"Token for verifying outgoing webhooks",secret:!0}]},feishu:{color:"#3370FF",icon:"feishu.cn",fields:[{key:"webhookUrl",label:"Webhook URL",placeholder:"Feishu bot webhook URL",secret:!0},{key:"verificationToken",label:"Verification Token",placeholder:"Event verification token",secret:!0}]}},Ys={telegram:"Telegram",slack:"Slack",discord:"Discord",whatsapp:"WhatsApp",teams:"Teams",matrix:"Matrix",signal:"Signal",googlechat:"Google Chat",irc:"IRC",line:"LINE",mattermost:"Mattermost",twitch:"Twitch",nostr:"Nostr",nextcloud:"Nextcloud Talk",synology:"Synology Chat",feishu:"Feishu/Lark"},Ni=["telegram","slack","discord","whatsapp","teams","matrix","signal","googlechat","irc","line","mattermost","twitch","nostr","nextcloud","synology","feishu"],Vr={telegram:"telegram.org",slack:"slack.com",discord:"discord.com",whatsapp:"whatsapp.com",teams:"teams.microsoft.com",matrix:"matrix.org",signal:"signal.org",googlechat:"chat.google.com",irc:"libera.chat",line:"line.me",mattermost:"developers.mattermost.com",twitch:"twitch.tv",nostr:"nostr.com",nextcloud:"nextcloud.com",synology:"synology.com",feishu:"feishu.cn"};function Lo(J){V(J),K({}),Z(null)}function bl(){V(null),K({}),Z(null)}async function Zc(){if(j){te(!0),Z(null);try{const J={channel:j,...X},je=await tn("/api/channel-test",J);Z(je.ok?{ok:!0,msg:`Connected as "${je.botName}"`}:{ok:!1,msg:je.error??"Test failed"})}catch{Z({ok:!1,msg:"Connection failed"})}finally{te(!1)}}}async function ir(){if(j){$(!0);try{const J={channel:j,...X},je=await tn("/api/channel-config",J);je.ok?(await tn("/api/channel-restart",{channel:j}),await eo(),bl(),Tn(`${Ys[j]??j} connected`)):Tn(je.error??"Save failed")}catch{Tn("Save failed")}finally{$(!1)}}}async function ju(J){try{await tn("/api/channel-disconnect",{channel:J}),await eo(),Tn(`${Ys[J]??J} disconnected`)}catch{Tn("Disconnect failed")}}function Yd(J){const je=Gn[J];if(!je)return null;const Ne=F==null?void 0:F[J],ze=j===J,vt=(Ne==null?void 0:Ne.configured)??!1,si=(Ne==null?void 0:Ne.connected)??!1,$i=Ys[J]??J,Gi=je.color,fr=Object.values(X).some(hn=>hn&&hn.trim()),Ws=Vr[J];return ze?_.jsxs("div",{style:{padding:"16px 18px",borderRadius:12,background:"var(--bg-card)",border:`1px solid ${Gi}`,gridColumn:"1 / -1",transition:"border-color 0.15s"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:16},children:[_.jsx("div",{style:{width:38,height:38,borderRadius:10,flexShrink:0,background:`color-mix(in srgb, ${Gi} 12%, transparent)`,display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx("img",{src:`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${Ws??je.icon}&size=32`,alt:"",style:{width:20,height:20,borderRadius:3},onError:hn=>{hn.target.style.display="none"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:$i}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:1},children:vt?si?"Connected":"Offline":"Setup credentials below"})]}),vt&&_.jsx("button",{onClick:()=>ju(J),style:{padding:"5px 12px",borderRadius:6,fontSize:11,fontWeight:500,border:"1px solid color-mix(in srgb, var(--red) 30%, transparent)",background:"color-mix(in srgb, var(--red) 8%, transparent)",color:"var(--red)",cursor:"pointer",fontFamily:"inherit"},children:"Disconnect"})]}),_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[je.fields.map(hn=>_.jsx(ab,{label:hn.label,placeholder:hn.placeholder,value:X[hn.key]??"",onChange:gr=>K(Zd=>({...Zd,[hn.key]:gr})),isSecret:hn.secret},hn.key)),je.note&&_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",padding:"0 4px"},children:je.note}),W&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:8,fontSize:12,background:W.ok?"color-mix(in srgb, var(--green) 8%, transparent)":"color-mix(in srgb, var(--red) 8%, transparent)",color:W.ok?"var(--green)":"var(--red)",border:`1px solid ${W.ok?"color-mix(in srgb, var(--green) 20%, transparent)":"color-mix(in srgb, var(--red) 20%, transparent)"}`,display:"flex",alignItems:"center",gap:8},children:[W.ok?_.jsx(Mc,{size:14}):_.jsx(Pr,{size:14}),W.msg]}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsx("button",{onClick:Zc,disabled:Q||!fr,style:{padding:"7px 14px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",cursor:Q?"wait":"pointer",fontFamily:"inherit",opacity:Q||!fr?.5:1},children:Q?"Testing...":"Test Connection"}),_.jsx("button",{onClick:ir,disabled:oe||!fr,style:{padding:"7px 14px",borderRadius:8,fontSize:12,fontWeight:600,border:"none",background:Gi,color:"#fff",cursor:oe?"wait":"pointer",fontFamily:"inherit",opacity:oe||!fr?.5:1},children:oe?"Saving...":"Save & Connect"}),_.jsx("button",{onClick:bl,style:{padding:"7px 14px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontFamily:"inherit"},children:"Cancel"})]})]})]},J):_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"14px 16px",borderRadius:12,background:"var(--bg-card)",border:"1px solid var(--border)",transition:"border-color 0.15s, box-shadow 0.15s",minWidth:0,overflow:"hidden"},onMouseEnter:hn=>{hn.currentTarget.style.borderColor="color-mix(in srgb, var(--text-muted) 40%, transparent)",hn.currentTarget.style.boxShadow="0 2px 12px rgba(0,0,0,0.1)"},onMouseLeave:hn=>{hn.currentTarget.style.borderColor="var(--border)",hn.currentTarget.style.boxShadow="none"},children:[_.jsx("div",{style:{width:38,height:38,borderRadius:10,flexShrink:0,background:vt?`color-mix(in srgb, ${Gi} 12%, transparent)`:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx("img",{src:`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${Ws??je.icon}&size=32`,alt:"",style:{width:20,height:20,borderRadius:3},onError:hn=>{hn.target.style.display="none"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:$i}),vt&&_.jsx("div",{style:{width:6,height:6,borderRadius:"50%",flexShrink:0,background:si?"var(--green)":"var(--red)",boxShadow:si?"0 0 6px var(--green)":"none"}})]}),_.jsx("div",{style:{fontSize:11.5,color:"var(--text-muted)",lineHeight:1.4,marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:vt?si?"Connected":"Offline":"Not configured"})]}),_.jsx("button",{onClick:()=>Lo(J),style:{display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,borderRadius:8,border:"1px solid var(--border)",background:"transparent",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:hn=>{hn.currentTarget.style.background=Gi,hn.currentTarget.style.color="#fff",hn.currentTarget.style.borderColor=Gi},onMouseLeave:hn=>{hn.currentTarget.style.background="transparent",hn.currentTarget.style.color="var(--text-muted)",hn.currentTarget.style.borderColor="var(--border)"},title:vt?`Edit ${$i}`:`Configure ${$i}`,children:vt?_.jsx(ZW,{size:14}):_.jsx(yd,{size:14})})]},J)}function yl(){return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{val:jh,label:"Configured",color:"var(--blue)"},{val:Object.values(F??{}).filter(J=>J==null?void 0:J.connected).length,label:"Connected",color:"var(--green)"},{val:zh-jh,label:"Available",color:"var(--purple, var(--text-muted))"},{val:zh,label:"Total Channels",color:"var(--text-muted)"}].map(J=>_.jsxs("div",{style:{flex:"1 1 100px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:J.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:J.val}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:J.label})]},J.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"Communication Channels"}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:10},children:Ni.map(J=>Yd(J))})]})]})}function sw(J){if(!Ot)return;if(Ve===J){Ye(null);return}const je={searxng:{url:Ot.searxng.url},sonarqube:{hostUrl:Ot.sonarqube.hostUrl,token:"",projectBaseKey:Ot.sonarqube.projectBaseKey,scannerImage:Ot.sonarqube.scannerImage},gitleaks:{image:Ot.gitleaks.image},semgrep:{image:Ot.semgrep.image},trivy:{image:Ot.trivy.image}};re(je[J]??{}),Ye(J)}function qa(J,je,Ne,ze,vt,si,$i,Gi,fr){const Ws=Ve===J,hn=$i&&Gi,gr=ft,Zd=(un,aw)=>re(lw=>({...lw,[un]:aw})),Ts={gitleaks:"zricethezav/gitleaks:latest",semgrep:"semgrep/semgrep",trivy:"aquasec/trivy:latest"};return _.jsxs("div",{style:{padding:"18px 20px",borderRadius:12,background:"var(--bg-card)",border:`1px solid ${Ws?vt:"var(--border)"}`,transition:"border-color 0.15s"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,marginBottom:Ws?16:0},children:[_.jsx("div",{style:{width:42,height:42,borderRadius:10,background:hn?`color-mix(in srgb, ${vt} 10%, transparent)`:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",color:hn?vt:"var(--text-muted)",flexShrink:0},children:_.jsx(lPe,{src:Ne,fallback:ze,size:22})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:je}),_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:`color-mix(in srgb, ${vt} 10%, transparent)`,color:vt,letterSpacing:"0.04em"},children:si})]}),!Ws&&_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:fr})]}),_.jsx("div",{style:{display:"flex",alignItems:"center",gap:8},children:_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"4px 10px",borderRadius:6,background:hn?"color-mix(in srgb, var(--green) 10%, transparent)":"var(--bg-tertiary)",color:hn?"var(--green)":"var(--text-muted)",border:`1px solid ${hn?"color-mix(in srgb, var(--green) 18%, transparent)":"var(--border)"}`,flexShrink:0,letterSpacing:"0.04em",cursor:"pointer"},onClick:un=>{un.stopPropagation(),Ko(J,Gi)},children:Gi?"ENABLED":"DISABLED"})})]}),!Ws&&_.jsxs("div",{style:{display:"flex",gap:8,marginTop:12},children:[_.jsx("button",{onClick:()=>sw(J),style:{padding:"7px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",cursor:"pointer",fontFamily:"inherit"},children:"Configure"}),Gi&&_.jsx("button",{onClick:()=>Ko(J,!0),style:{padding:"7px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid color-mix(in srgb, var(--red) 30%, transparent)",background:"color-mix(in srgb, var(--red) 8%, transparent)",color:"var(--red)",cursor:"pointer",fontFamily:"inherit"},children:"Disable"}),!Gi&&_.jsx("button",{onClick:()=>Ko(J,!1),style:{padding:"7px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid color-mix(in srgb, var(--green) 30%, transparent)",background:"color-mix(in srgb, var(--green) 8%, transparent)",color:"var(--green)",cursor:"pointer",fontFamily:"inherit"},children:"Enable"})]}),Ws&&_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[J==="searxng"&&_.jsx(ab,{label:"SearXNG URL",placeholder:"http://localhost:8080",value:gr.url??"",onChange:un=>Zd("url",un),isSecret:!1}),J==="sonarqube"&&_.jsxs(_.Fragment,{children:[_.jsx(ab,{label:"Host URL",placeholder:"http://localhost:9000",value:gr.hostUrl??"",onChange:un=>Zd("hostUrl",un),isSecret:!1}),_.jsx(ab,{label:"Token",placeholder:"squ_...",value:gr.token??"",onChange:un=>Zd("token",un)}),_.jsx(ab,{label:"Project Base Key",placeholder:"vec",value:gr.projectBaseKey??"",onChange:un=>Zd("projectBaseKey",un),isSecret:!1}),_.jsx(ab,{label:"Scanner Docker Image",placeholder:"sonarsource/sonar-scanner-cli:latest",value:gr.scannerImage??"",onChange:un=>Zd("scannerImage",un),isSecret:!1})]}),(J==="gitleaks"||J==="semgrep"||J==="trivy")&&_.jsx(ab,{label:"Docker Image",placeholder:Ts[J]??"",value:gr.image??"",onChange:un=>Zd("image",un),isSecret:!1}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsx("button",{onClick:()=>Ye(null),style:{padding:"8px 16px",borderRadius:8,fontSize:12,fontWeight:500,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",cursor:"pointer",fontFamily:"inherit"},children:"Cancel"}),_.jsx("button",{disabled:Se,onClick:()=>{J==="searxng"?tc("searxng",{url:gr.url||"",enabled:!0}):J==="sonarqube"?tc("sonarqube",{hostUrl:gr.hostUrl||"http://localhost:9000",token:gr.token||"",projectBaseKey:gr.projectBaseKey||"vec",scannerImage:gr.scannerImage||"sonarsource/sonar-scanner-cli:latest",enabled:!0}):tc(J,{image:gr.image||Ts[J]||"",enabled:!0})},style:{padding:"8px 16px",borderRadius:8,fontSize:12,fontWeight:600,border:"none",background:vt,color:"#fff",cursor:Se?"wait":"pointer",fontFamily:"inherit",opacity:Se?.5:1},children:Se?"Saving...":"Save"})]})]})]})}function rw(){const J=si=>`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${si}&size=32`,je=[{title:"Search",color:"var(--green)",items:[{key:"searxng",name:"SearXNG",logoUrl:J("searx.space"),fallbackIcon:_.jsx(Rh,{size:16}),configured:(Ot==null?void 0:Ot.searxng.configured)??!1,enabled:(Ot==null?void 0:Ot.searxng.enabled)??!1,detail:Ot!=null&&Ot.searxng.configured?Ot.searxng.url:"Not configured",color:"var(--green)",subtitle:"WEB SEARCH"}]},{title:"Code Quality",color:"var(--blue)",items:[{key:"sonarqube",name:"SonarQube",logoUrl:J("sonarqube.org"),fallbackIcon:_.jsx(jE,{size:16}),configured:(Ot==null?void 0:Ot.sonarqube.configured)??!1,enabled:(Ot==null?void 0:Ot.sonarqube.enabled)??!1,detail:Ot!=null&&Ot.sonarqube.configured?`${Ot.sonarqube.hostUrl} (${Ot.sonarqube.projectBaseKey})`:"Not configured",color:"var(--blue)",subtitle:"ANALYSIS"}]},{title:"Security Scanners",color:"var(--red)",items:[{key:"gitleaks",name:"Gitleaks",logoUrl:J("gitleaks.io"),fallbackIcon:_.jsx(HR,{size:16}),configured:!0,enabled:(Ot==null?void 0:Ot.gitleaks.enabled)??!0,detail:`Image: ${(Ot==null?void 0:Ot.gitleaks.image)??"zricethezav/gitleaks:latest"}`,color:"var(--red)",subtitle:"SECRETS"},{key:"semgrep",name:"Semgrep",logoUrl:J("semgrep.dev"),fallbackIcon:_.jsx(HR,{size:16}),configured:!0,enabled:(Ot==null?void 0:Ot.semgrep.enabled)??!0,detail:`Image: ${(Ot==null?void 0:Ot.semgrep.image)??"semgrep/semgrep"}`,color:"var(--orange)",subtitle:"SAST"},{key:"trivy",name:"Trivy",logoUrl:J("trivy.dev"),fallbackIcon:_.jsx(EA,{size:16}),configured:!0,enabled:(Ot==null?void 0:Ot.trivy.enabled)??!0,detail:`Image: ${(Ot==null?void 0:Ot.trivy.image)??"aquasec/trivy:latest"}`,color:"var(--purple)",subtitle:"SCA"}]}],Ne=je.flatMap(si=>si.items),ze=Ne.filter(si=>si.configured&&si.enabled).length,vt=(Ot==null?void 0:Ot.postTaskScansEnabled)??!1;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[Be&&!Be.running&&_.jsxs("div",{style:{padding:"14px 18px",borderRadius:10,background:Be.installed?"rgba(245,158,11,0.08)":"rgba(239,68,68,0.08)",border:`1px solid ${Be.installed?"rgba(245,158,11,0.2)":"rgba(239,68,68,0.2)"}`,display:"flex",alignItems:"center",gap:12},children:[_.jsx("div",{style:{width:32,height:32,borderRadius:8,background:Be.installed?"rgba(245,158,11,0.12)":"rgba(239,68,68,0.12)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:_.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:Be.installed?"var(--orange)":"var(--red)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[_.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),_.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),_.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]})}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:Be.installed?"Docker Not Running":"Docker Not Installed"}),_.jsx("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:2},children:Be.installed?"Docker is installed but the daemon isn't running. Start Docker to use scanners.":"Security scanners (Gitleaks, Semgrep, Trivy, SonarQube) require Docker to run."})]}),!Be.installed&&_.jsx("a",{href:"https://docs.docker.com/get-docker/",target:"_blank",rel:"noopener noreferrer",style:{padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:600,background:"var(--accent)",color:"#fff",textDecoration:"none",flexShrink:0,whiteSpace:"nowrap"},children:"Get Docker"})]}),_.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[[{label:"Active",value:String(ze),color:"var(--green)"},{label:"Total",value:String(Ne.length),color:"var(--orange)"}].map(si=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:si.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:si.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:si.label})]},si.label)),_.jsxs("div",{onClick:async()=>{We(!0);try{const si=await tn("/api/integration-config",{postTaskScansEnabled:!vt});si!=null&&si.ok&&(Le(si.config),Tn(`Post-task scans ${vt?"disabled":"enabled"}`))}catch{Tn("Toggle failed")}finally{We(!1)}},style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:`1px solid ${vt?"color-mix(in srgb, var(--green) 25%, transparent)":"var(--border)"}`,borderRadius:8,cursor:"pointer",transition:"border-color 0.15s"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:vt?"var(--green)":"var(--text-muted)",lineHeight:1},children:vt?"ON":"OFF"}),_.jsx("div",{style:{width:7,height:7,borderRadius:"50%",background:vt?"var(--green)":"var(--text-muted)",boxShadow:vt?"0 0 6px var(--green)":"none",opacity:vt?1:.4}})]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:"Post-Task Scans"})]})]}),je.map(si=>_.jsxs("div",{children:[_.jsx(od,{title:si.title,count:si.items.length}),_.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(340px, 1fr))",gap:10},children:si.items.map($i=>_.jsx("div",{children:qa($i.key,$i.name,$i.logoUrl,$i.fallbackIcon,$i.color,$i.subtitle,$i.configured,$i.enabled,$i.detail)},$i.key))})]},si.title))]})}function ow(){return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Configured",value:String(Er.length),color:"var(--blue)"},{label:"Connected",value:String(me),color:"var(--green)"},{label:"Tools Available",value:String(b.servers.reduce((J,je)=>J+je.tools.length,0)),color:"var(--purple)"},{label:"Directory",value:String(qE.length),color:"var(--text-muted)"}].map(J=>_.jsxs("div",{style:{flex:"1 1 100px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsx("div",{style:{fontSize:22,fontWeight:700,color:J.color,lineHeight:1,fontVariantNumeric:"tabular-nums"},children:J.value}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:J.label})]},J.label))}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("div",{style:{flex:1}}),_.jsxs("button",{onClick:()=>H(J=>J+1),style:g1,title:"Add a custom MCP server",children:[_.jsx(yd,{size:12})," Add Custom MCP"]}),_.jsxs("button",{onClick:Yc,style:g1,title:"Refresh status",children:[_.jsx(hS,{size:12})," Refresh"]}),C&&_.jsxs("button",{onClick:bg,disabled:S,style:{display:"flex",alignItems:"center",gap:5,padding:"6px 14px",borderRadius:7,border:"none",background:"var(--accent)",color:"#fff",cursor:S?"wait":"pointer",fontSize:11,fontWeight:600,fontFamily:"inherit",opacity:S?.7:1,transition:"opacity 0.12s"},children:[_.jsx(IA,{size:11})," ",S?"Saving...":"Save Changes"]})]}),_.jsx(mPe,{activeServerNames:Er,mcpConfig:g,mcpStatus:b,onAdd:(J,je)=>{const Ne={};for(const ze of Object.keys(J.envVars))Ne[ze]=(je==null?void 0:je[ze])??"";m(ze=>{const vt=KR(ze);return vt.mcpServers[J.id]={command:J.command,args:[...J.args],env:Ne},vt}),L(!0),Tn(`Added "${J.name}" — click Save to apply`)},onRemove:J=>{wa(J)},onAddCustom:(J,je)=>{m(Ne=>{const ze=KR(Ne);return ze.mcpServers[J]=je,ze}),M(Ne=>({...Ne,[J]:!0})),L(!0),Tn(`Added "${J}" — click Save to apply`)},onUpdateCustom:(J,je)=>{xo(J,je)},onRemoveCustomEnv:(J,je)=>{Gd(J,je)},onAddCustomEnv:J=>{Vh(J)},expanded:R,onToggleExpand:J=>{M(je=>({...je,[J]:!je[J]}))},showCustomTrigger:A})]})}const xm=[{id:"github",label:"GitHub",domain:"github.com"},{id:"gitlab",label:"GitLab",domain:"gitlab.com"},{id:"bitbucket",label:"Bitbucket",domain:"bitbucket.org"},{id:"custom",label:"Custom",domain:""}];async function yg(){$t(!0);try{const J={username:_t.username,email:_t.email,provider:_t.provider,remoteUrl:_t.remoteUrl,backupEnabled:_t.backupEnabled,backupIntervalHours:_t.backupIntervalHours};_t.token&&!_t.token.startsWith("••••")&&(J.token=_t.token),await tn("/api/git-config",J),await Ei(),ns(!1),Tn("Git configuration saved")}catch{Tn("Failed to save Git configuration")}finally{$t(!1)}}async function wg(){Wn(!0),Qt(null);try{const J=await tn("/api/git-test",{});Qt(J)}catch{Qt({ok:!1,message:"Connection test failed"})}finally{Wn(!1)}}async function Uu(){ae(!0),Ue(null);try{const J=await tn("/api/git-backup",{});Ue(J),await Ei()}catch{Ue({ok:!1,message:"Backup failed"})}finally{ae(!1)}}function Cg(){var Ne;const J=Te,je=ze=>{var si;const vt=(si=xm.find($i=>$i.id===ze))==null?void 0:si.domain;return vt?`https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://${vt}&size=32`:void 0};return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:24},children:[_.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[{label:"Git Status",value:J!=null&&J.configured?"Connected":"Not Configured",color:J!=null&&J.configured?"var(--green)":"var(--text-muted)",icon:J!=null&&J.configured?_.jsx(Gie,{size:14}):_.jsx(TB,{size:14})},{label:"Provider",value:J!=null&&J.provider?((Ne=xm.find(ze=>ze.id===J.provider))==null?void 0:Ne.label)||J.provider:"—",color:"var(--cyan, #06b6d4)",icon:J!=null&&J.provider&&je(J.provider)?_.jsx("img",{src:je(J.provider),width:14,height:14,style:{borderRadius:3}}):_.jsx(up,{size:14})},{label:"Last Backup",value:J!=null&&J.lastBackup?new Date(J.lastBackup).toLocaleDateString():"Never",color:(J==null?void 0:J.lastBackupStatus)==="success"?"var(--green)":(J==null?void 0:J.lastBackupStatus)==="error"?"var(--red)":"var(--text-muted)",icon:_.jsx(CY,{size:14})},{label:"Auto-Backup",value:J!=null&&J.backupEnabled?`Every ${J.backupIntervalHours}h`:"Off",color:J!=null&&J.backupEnabled?"var(--blue)":"var(--text-muted)",icon:_.jsx(hS,{size:14})}].map(ze=>_.jsxs("div",{style:{flex:"1 1 120px",padding:"14px 16px",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,color:ze.color,fontSize:15,fontWeight:700,lineHeight:1.2},children:[ze.icon,ze.value]}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:ze.label})]},ze.label))}),_.jsxs("div",{children:[_.jsx(od,{title:"Git Credentials"}),_.jsx("div",{className:"vec-card",style:{padding:16},children:bi?_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:6},children:"Provider"}),_.jsx("div",{style:{display:"flex",gap:6},children:xm.map(ze=>_.jsxs("button",{onClick:()=>Si(vt=>({...vt,provider:ze.id})),style:{padding:"6px 14px",borderRadius:6,fontSize:12,fontWeight:500,border:`1px solid ${_t.provider===ze.id?"var(--accent)":"var(--border)"}`,background:_t.provider===ze.id?"color-mix(in srgb, var(--accent) 10%, transparent)":"transparent",color:_t.provider===ze.id?"var(--accent)":"var(--text-secondary)",cursor:"pointer",fontFamily:"inherit",display:"flex",alignItems:"center",gap:6},children:[ze.domain&&_.jsx("img",{src:je(ze.id),width:14,height:14,style:{borderRadius:3}}),ze.label]},ze.id))})]}),_.jsxs("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:[_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Username"}),_.jsx("input",{value:_t.username,onChange:ze=>Si(vt=>({...vt,username:ze.target.value})),placeholder:"e.g. octocat",style:{width:"100%",padding:"8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}})]}),_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Email"}),_.jsx("input",{value:_t.email,onChange:ze=>Si(vt=>({...vt,email:ze.target.value})),placeholder:"you@example.com",style:{width:"100%",padding:"8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}})]})]}),_.jsxs("div",{children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Personal Access Token (PAT)"}),_.jsxs("div",{style:{position:"relative"},children:[_.jsx("input",{type:Pt?"text":"password",value:_t.token,onChange:ze=>Si(vt=>({...vt,token:ze.target.value})),placeholder:_t.provider==="github"?"ghp_xxxxxxxxxxxx":"Personal access token",style:{width:"100%",padding:"8px 36px 8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"monospace",outline:"none",boxSizing:"border-box"}}),_.jsx("button",{type:"button",onClick:()=>Dt(ze=>!ze),style:{position:"absolute",right:8,top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2},children:Pt?_.jsx(ALe,{size:14}):_.jsx(jE,{size:14})})]}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:4},children:[_t.provider==="github"&&"Generate at GitHub → Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens",_t.provider==="gitlab"&&"Generate at GitLab → Preferences → Access Tokens",_t.provider==="bitbucket"&&"Generate at Bitbucket → Personal Settings → App Passwords",_t.provider==="custom"&&"Enter a token with push access to your remote repository"]})]}),_.jsxs("div",{children:[_.jsx("label",{style:{fontSize:11,color:"var(--text-muted)",display:"block",marginBottom:4},children:"Remote Repository URL"}),_.jsx("input",{value:_t.remoteUrl,onChange:ze=>Si(vt=>({...vt,remoteUrl:ze.target.value})),placeholder:_t.provider==="github"?"https://github.com/username/octo-vec-backup.git":_t.provider==="gitlab"?"https://gitlab.com/username/octo-vec-backup.git":_t.provider==="bitbucket"?"https://bitbucket.org/username/octo-vec-backup.git":"https://your-git-server.com/repo.git",style:{width:"100%",padding:"8px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:13,fontFamily:"inherit",outline:"none",boxSizing:"border-box"}}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:4},children:["Agents will use this as the default remote for ",_.jsx("code",{style:{fontSize:10},children:"git push"}),". Memory backups also push here."]})]}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsxs("button",{onClick:yg,disabled:It||!_t.username||!_t.token||!_t.remoteUrl,style:{padding:"8px 20px",borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",fontSize:12,fontWeight:600,cursor:"pointer",fontFamily:"inherit",opacity:It||!_t.username||!_t.token||!_t.remoteUrl?.5:1,display:"flex",alignItems:"center",gap:6},children:[_.jsx(IA,{size:13}),It?"Saving...":"Save"]}),_.jsx("button",{onClick:()=>{ns(!1),Qt(null)},style:{padding:"8px 16px",borderRadius:6,border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)",fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit"},children:"Cancel"})]})]}):_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[_.jsxs("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:[_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Username"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.username?"var(--text-primary)":"var(--text-muted)"},children:(J==null?void 0:J.username)||"Not set"})]}),_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Email"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.email?"var(--text-primary)":"var(--text-muted)"},children:(J==null?void 0:J.email)||"Not set"})]}),_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Access Token"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.token?"var(--text-primary)":"var(--text-muted)"},children:(J==null?void 0:J.token)||"Not set"})]})]}),_.jsx("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:_.jsxs("div",{style:{flex:"1 1 200px"},children:[_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:4},children:"Remote URL"}),_.jsx("div",{style:{fontSize:13,color:J!=null&&J.remoteUrl?"var(--text-primary)":"var(--text-muted)",wordBreak:"break-all"},children:(J==null?void 0:J.remoteUrl)||"Not set"})]})}),_.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[_.jsxs("button",{onClick:()=>{Si({username:(J==null?void 0:J.username)||"",email:(J==null?void 0:J.email)||"",token:(J==null?void 0:J.token)||"",provider:(J==null?void 0:J.provider)||"github",remoteUrl:(J==null?void 0:J.remoteUrl)||"",backupEnabled:(J==null?void 0:J.backupEnabled)||!1,backupIntervalHours:(J==null?void 0:J.backupIntervalHours)||24}),ns(!0),Dt(!1),Qt(null)},style:{padding:"7px 16px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-hover)",color:"var(--text-primary)",fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",display:"flex",alignItems:"center",gap:6},children:[_.jsx(ZW,{size:13}),J!=null&&J.configured?"Edit Credentials":"Set Up Git"]}),(J==null?void 0:J.configured)&&_.jsx("button",{onClick:wg,disabled:Ti,style:{padding:"7px 16px",borderRadius:6,border:"1px solid var(--border)",background:"transparent",color:"var(--text-secondary)",fontSize:12,fontWeight:500,cursor:"pointer",fontFamily:"inherit",opacity:Ti?.5:1},children:Ti?"Testing...":"Test Connection"})]}),xi&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:6,fontSize:12,marginTop:4,background:xi.ok?"color-mix(in srgb, var(--green) 10%, transparent)":"color-mix(in srgb, var(--red) 10%, transparent)",color:xi.ok?"var(--green)":"var(--red)",border:`1px solid ${xi.ok?"var(--green)":"var(--red)"}`,borderColor:xi.ok?"color-mix(in srgb, var(--green) 25%, transparent)":"color-mix(in srgb, var(--red) 25%, transparent)"},children:[xi.ok?_.jsx(Mc,{size:12,style:{marginRight:6}}):_.jsx(Pr,{size:12,style:{marginRight:6}}),xi.message]})]})})]}),_.jsxs("div",{children:[_.jsx(od,{title:"Memory Backup"}),_.jsxs("div",{className:"vec-card",style:{padding:16},children:[_.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",marginBottom:14,lineHeight:1.5},children:"Back up all agent memory (STM, LTM, SLTM), settings, and roster to your Git repository. Agents' knowledge, daily journals, and core identity files are preserved and version-controlled."}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 0",borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)",marginBottom:14},children:[_.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer",flex:1},children:[_.jsx("div",{onClick:()=>{const ze=!_t.backupEnabled;Si(vt=>({...vt,backupEnabled:ze})),tn("/api/git-config",{backupEnabled:ze}).then(()=>Ei())},style:{width:36,height:20,borderRadius:10,background:Te!=null&&Te.backupEnabled||_t.backupEnabled?"var(--accent)":"var(--bg-tertiary)",position:"relative",cursor:"pointer",transition:"background 0.15s",flexShrink:0},children:_.jsx("div",{style:{width:16,height:16,borderRadius:8,background:"#fff",position:"absolute",top:2,left:Te!=null&&Te.backupEnabled||_t.backupEnabled?18:2,transition:"left 0.15s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)"}})}),_.jsx("span",{style:{fontSize:13,color:"var(--text-primary)"},children:"Automatic Backup"})]}),((Te==null?void 0:Te.backupEnabled)||_t.backupEnabled)&&_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[_.jsx("span",{style:{fontSize:11,color:"var(--text-muted)"},children:"Every"}),_.jsx("select",{value:(Te==null?void 0:Te.backupIntervalHours)||_t.backupIntervalHours,onChange:ze=>{const vt=Number(ze.target.value);Si(si=>({...si,backupIntervalHours:vt})),tn("/api/git-config",{backupIntervalHours:vt}).then(()=>Ei())},style:{padding:"4px 8px",borderRadius:5,border:"1px solid var(--border)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:12,fontFamily:"inherit"},children:[1,4,8,12,24,48,72].map(ze=>_.jsxs("option",{value:ze,children:[ze,"h"]},ze))})]})]}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsxs("button",{onClick:Uu,disabled:Is||!(J!=null&&J.configured),style:{padding:"8px 20px",borderRadius:6,border:"none",background:J!=null&&J.configured?"var(--accent)":"var(--bg-tertiary)",color:J!=null&&J.configured?"#fff":"var(--text-muted)",fontSize:12,fontWeight:600,cursor:J!=null&&J.configured?"pointer":"not-allowed",fontFamily:"inherit",opacity:Is?.5:1,display:"flex",alignItems:"center",gap:6},children:[_.jsx(fEe,{size:13}),Is?"Backing up...":"Backup Now"]}),(J==null?void 0:J.lastBackup)&&_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)"},children:["Last: ",new Date(J.lastBackup).toLocaleString(),J.lastBackupStatus==="success"&&_.jsx(Mc,{size:11,style:{marginLeft:4,color:"var(--green)"}}),J.lastBackupStatus==="error"&&_.jsx(Pr,{size:11,style:{marginLeft:4,color:"var(--red)"}})]})]}),ke&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:6,fontSize:12,marginTop:10,background:ke.ok?"color-mix(in srgb, var(--green) 10%, transparent)":"color-mix(in srgb, var(--red) 10%, transparent)",color:ke.ok?"var(--green)":"var(--red)",border:`1px solid ${ke.ok?"color-mix(in srgb, var(--green) 25%, transparent)":"color-mix(in srgb, var(--red) 25%, transparent)"}`},children:[ke.ok?_.jsx(Gie,{size:12,style:{marginRight:6}}):_.jsx(TB,{size:12,style:{marginRight:6}}),ke.message]}),(J==null?void 0:J.lastBackupStatus)==="error"&&J.lastBackupMessage&&!ke&&_.jsxs("div",{style:{padding:"8px 12px",borderRadius:6,fontSize:12,marginTop:10,background:"color-mix(in srgb, var(--red) 10%, transparent)",color:"var(--red)",border:"1px solid color-mix(in srgb, var(--red) 25%, transparent)"},children:[_.jsx(TB,{size:12,style:{marginRight:6}}),"Last error: ",J.lastBackupMessage]})]})]}),_.jsxs("div",{children:[_.jsx(od,{title:"How It Works"}),_.jsx("div",{className:"vec-card",style:{padding:16},children:_.jsx("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[{icon:_.jsx(up,{size:14}),title:"Agent Projects",desc:"Agents use your Git credentials to push project code. Each agent commits under their own name (e.g. Maya → maya@octovec.dev)."},{icon:_.jsx(EA,{size:14}),title:"Memory Backup",desc:"STM (scratchpad), LTM (daily journals), and SLTM (core identity) for every agent are committed and pushed to your backup repo."},{icon:_.jsx(HR,{size:14}),title:"Credentials",desc:"Your PAT is stored locally in the VEC data directory. It's never sent to any LLM — only used for git push operations."},{icon:_.jsx(hS,{size:14}),title:"Auto-Backup",desc:"When enabled, VEC automatically commits and pushes memory changes on your chosen schedule. Manual backup is always available."}].map((ze,vt)=>_.jsxs("div",{style:{display:"flex",gap:10,alignItems:"flex-start"},children:[_.jsx("div",{style:{width:28,height:28,borderRadius:6,flexShrink:0,background:"color-mix(in srgb, var(--cyan, #06b6d4) 10%, transparent)",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--cyan, #06b6d4)"},children:ze.icon}),_.jsxs("div",{children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",marginBottom:2},children:ze.title}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.5},children:ze.desc})]})]},vt))})})]})]})}function se({keys:J}){const je=J.split("+");return _.jsx("div",{style:{display:"flex",gap:3,alignItems:"center"},children:je.map((Ne,ze)=>_.jsx("span",{style:{padding:"2px 7px",fontSize:11,fontWeight:600,fontFamily:"'Cascadia Code', 'Fira Code', monospace",background:"var(--bg-primary)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-primary)",boxShadow:"0 1px 0 var(--border)",lineHeight:"18px",minWidth:22,textAlign:"center"},children:Ne==="Ctrl"?navigator.platform.toUpperCase().includes("MAC")?"⌘":"Ctrl":Ne==="Shift"?navigator.platform.toUpperCase().includes("MAC")?"⇧":"Shift":Ne==="Alt"?navigator.platform.toUpperCase().includes("MAC")?"⌥":"Alt":Ne==="Enter"?"↵":Ne==="Escape"?"Esc":Ne},ze))})}function He({shortcutId:J,onRecord:je}){const Ne=z.useRef(null);return z.useEffect(()=>{var vt;(vt=Ne.current)==null||vt.focus();const ze=si=>{if(si.preventDefault(),si.stopPropagation(),["Control","Shift","Alt","Meta"].includes(si.key))return;const $i=[];(si.ctrlKey||si.metaKey)&&$i.push("Ctrl"),si.shiftKey&&$i.push("Shift"),si.altKey&&$i.push("Alt");let Gi=si.key;if(Gi===" ")Gi="Space";else if(Gi.length===1)Gi=Gi.toUpperCase();else if(Gi==="Escape"){vl(null);return}$i.push(Gi),je($i.join("+"))};return window.addEventListener("keydown",ze,!0),()=>window.removeEventListener("keydown",ze,!0)},[J,je]),_.jsx("div",{ref:Ne,tabIndex:-1,style:{padding:"4px 12px",fontSize:11,fontWeight:600,fontFamily:"inherit",background:"var(--accent)",color:"#fff",borderRadius:5,animation:"pulse 1.2s infinite",outline:"none",cursor:"default"},children:"Press keys... (Esc to cancel)"})}function Ge(){const J=Array.from(new Set(an.map(Ne=>Ne.category))),je=an.filter((Ne,ze)=>{var vt;return Ne.keys!==((vt=gs[ze])==null?void 0:vt.keys)}).length;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsxs("div",{children:[_.jsx("h2",{style:{fontSize:18,fontWeight:700,margin:0,color:"var(--text-primary)"},children:"Keyboard Shortcuts"}),_.jsx("p",{style:{fontSize:12,color:"var(--text-muted)",margin:"4px 0 0"},children:"Click on a shortcut to customize it. Press Escape to cancel."})]}),_.jsxs("button",{onClick:Bs,style:{display:"flex",alignItems:"center",gap:6,padding:"7px 14px",fontSize:11,fontWeight:600,fontFamily:"inherit",background:"var(--bg-tertiary)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-secondary)",cursor:"pointer"},onMouseEnter:Ne=>{Ne.currentTarget.style.background="var(--bg-hover)",Ne.currentTarget.style.color="var(--text-primary)"},onMouseLeave:Ne=>{Ne.currentTarget.style.background="var(--bg-tertiary)",Ne.currentTarget.style.color="var(--text-secondary)"},children:[_.jsx(w_,{size:12})," Reset All"]})]}),J.map(Ne=>_.jsxs("div",{children:[_.jsx(od,{title:Ne,count:an.filter(ze=>ze.category===Ne).length}),_.jsx("div",{style:{borderRadius:8,border:"1px solid var(--border)",overflow:"hidden",background:"var(--bg-card)"},children:an.filter(ze=>ze.category===Ne).map((ze,vt,si)=>{var fr;const $i=Kc===ze.id,Gi=ze.keys!==((fr=gs.find(Ws=>Ws.id===ze.id))==null?void 0:fr.keys);return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 16px",borderBottom:vt<si.length-1?"1px solid var(--border)":"none",background:$i?"color-mix(in srgb, var(--accent) 6%, transparent)":"transparent",transition:"background 0.1s"},onMouseEnter:Ws=>{$i||(Ws.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:Ws=>{$i||(Ws.currentTarget.style.background="transparent")},children:[_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12.5,fontWeight:500,color:"var(--text-primary)"},children:ze.label}),_.jsx("div",{style:{fontSize:10.5,color:"var(--text-muted)",marginTop:1},children:ze.description})]}),_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[Gi&&!$i&&_.jsx("button",{onClick:()=>vg(ze.id),title:"Reset to default",style:{background:"transparent",border:"none",cursor:"pointer",color:"var(--text-muted)",display:"flex",padding:3,borderRadius:4},onMouseEnter:Ws=>{Ws.currentTarget.style.color="var(--text-primary)",Ws.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:Ws=>{Ws.currentTarget.style.color="var(--text-muted)",Ws.currentTarget.style.background="transparent"},children:_.jsx(w_,{size:12})}),$i?_.jsx(He,{shortcutId:ze.id,onRecord:Ws=>Hh(ze.id,Ws)}):_.jsx("button",{onClick:()=>vl(ze.id),style:{background:"transparent",border:"none",cursor:"pointer",padding:0,display:"flex"},title:"Click to change shortcut",children:_.jsx(se,{keys:ze.keys})})]})]},ze.id)})})]},Ne)),_.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"12px 14px",borderRadius:8,background:"color-mix(in srgb, var(--yellow, #e2b93d) 6%, transparent)",border:"1px solid color-mix(in srgb, var(--yellow, #e2b93d) 15%, transparent)"},children:[_.jsx(SLe,{size:14,style:{color:"var(--yellow, #e2b93d)",flexShrink:0,marginTop:1}}),_.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary)",lineHeight:1.5},children:["Shortcuts work globally across the dashboard. Navigation shortcuts switch between views instantly. Editor shortcuts only work when the editor view is active.",je>0&&_.jsxs("span",{style:{color:"var(--accent)",fontWeight:600},children:[" ",je," custom binding",je>1?"s":""," active."]})]})]})]})}function at(){const J=[{label:"Default",colors:Ri},{label:"Ocean",colors:{userBubble:"#0077b6",userText:"#ffffff",agentBubble:"#1b2838",agentText:"#cad2de",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Forest",colors:{userBubble:"#2d6a4f",userText:"#ffffff",agentBubble:"#1b2e1b",agentText:"#c5dfc5",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Sunset",colors:{userBubble:"#e85d04",userText:"#ffffff",agentBubble:"#2a1a0e",agentText:"#f0d5be",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Lavender",colors:{userBubble:"#7b2cbf",userText:"#ffffff",agentBubble:"#1e1230",agentText:"#d4bfec",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Rose",colors:{userBubble:"#e63971",userText:"#ffffff",agentBubble:"#2a1018",agentText:"#f0c0d0",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}},{label:"Slate",colors:{userBubble:"#475569",userText:"#f8fafc",agentBubble:"#1e293b",agentText:"#cbd5e1",timestampUser:"rgba(255,255,255,0.5)",timestampAgent:"rgba(255,255,255,0.3)"}}];function je({label:Ts,value:un,fallback:aw,onChange:lw}){const Sg=un||aw;return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 0"},children:[_.jsx("label",{style:{position:"relative",width:32,height:32,borderRadius:8,border:"2px solid var(--border)",cursor:"pointer",overflow:"hidden",background:Sg,flexShrink:0},children:_.jsx("input",{type:"color",value:Sg,onChange:Kv=>lw(Kv.target.value),style:{position:"absolute",inset:0,opacity:0,cursor:"pointer",width:"100%",height:"100%"}})}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:12,fontWeight:500,color:"var(--text-primary)"},children:Ts}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace"},children:Sg})]}),un&&_.jsx("button",{onClick:()=>lw(""),title:"Reset to default",style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:4,display:"flex"},children:_.jsx(w_,{size:12})})]})}const Ne=typeof window<"u"?getComputedStyle(document.documentElement):null,ze=(Ne==null?void 0:Ne.getPropertyValue("--accent").trim())||"#5b8def",vt=(Ne==null?void 0:Ne.getPropertyValue("--bg-tertiary").trim())||"#2a2a2a",si=(Ne==null?void 0:Ne.getPropertyValue("--text-primary").trim())||"#e0e0e0",$i=(Ne==null?void 0:Ne.getPropertyValue("--text-muted").trim())||"#666",Gi=fi.userBubble||ze,fr=fi.userText||"#ffffff",Ws=fi.agentBubble||vt,hn=fi.agentText||si,gr=fi.timestampUser||"rgba(255,255,255,0.6)",Zd=fi.timestampAgent||$i;return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:4},children:"Color Presets"}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginBottom:14},children:"Quick themes for your chat bubbles"}),_.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:J.map(Ts=>{const un=fi.userBubble===Ts.colors.userBubble&&fi.agentBubble===Ts.colors.agentBubble;return _.jsxs("button",{onClick:()=>nn(Ts.colors),style:{display:"flex",alignItems:"center",gap:8,padding:"8px 14px",borderRadius:8,cursor:"pointer",fontFamily:"inherit",border:un?"2px solid var(--accent)":"1px solid var(--border)",background:un?"var(--bg-hover)":"var(--bg-secondary)",color:"var(--text-primary)",fontSize:12,fontWeight:500},children:[_.jsxs("div",{style:{display:"flex",gap:3},children:[_.jsx("div",{style:{width:14,height:14,borderRadius:4,background:Ts.colors.userBubble||ze}}),_.jsx("div",{style:{width:14,height:14,borderRadius:4,background:Ts.colors.agentBubble||vt}})]}),Ts.label]},Ts.label)})})]}),_.jsxs("div",{style:{display:"flex",gap:16,flexWrap:"wrap"},children:[_.jsxs("div",{style:{flex:"1 1 240px",background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:12},children:"Your Messages"}),_.jsx(je,{label:"Bubble Color",value:fi.userBubble,fallback:ze,onChange:Ts=>nn(un=>({...un,userBubble:Ts}))}),_.jsx(je,{label:"Text Color",value:fi.userText,fallback:"#ffffff",onChange:Ts=>nn(un=>({...un,userText:Ts}))}),_.jsx(je,{label:"Timestamp Color",value:fi.timestampUser,fallback:"rgba(255,255,255,0.6)",onChange:Ts=>nn(un=>({...un,timestampUser:Ts}))})]}),_.jsxs("div",{style:{flex:"1 1 240px",background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:12},children:"Agent Messages"}),_.jsx(je,{label:"Bubble Color",value:fi.agentBubble,fallback:vt,onChange:Ts=>nn(un=>({...un,agentBubble:Ts}))}),_.jsx(je,{label:"Text Color",value:fi.agentText,fallback:si,onChange:Ts=>nn(un=>({...un,agentText:Ts}))}),_.jsx(je,{label:"Timestamp Color",value:fi.timestampAgent,fallback:$i,onChange:Ts=>nn(un=>({...un,timestampAgent:Ts}))})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:10,border:"1px solid var(--border)",padding:20},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)",marginBottom:14},children:"Preview"}),_.jsxs("div",{style:{background:"var(--bg-primary)",borderRadius:10,padding:16,display:"flex",flexDirection:"column",gap:10,maxWidth:420},children:[_.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:_.jsxs("div",{style:{padding:"8px 14px 6px",borderRadius:"14px 14px 4px 14px",background:Gi,color:fr,fontSize:13,lineHeight:1.55,maxWidth:"75%"},children:["Hey, can you review the PR I just pushed?",_.jsx("div",{style:{fontSize:10,textAlign:"right",marginTop:4,color:gr},children:"2:34 PM"})]})}),_.jsx("div",{style:{display:"flex",justifyContent:"flex-start"},children:_.jsxs("div",{style:{padding:"8px 14px 6px",borderRadius:"14px 14px 14px 4px",background:Ws,color:hn,fontSize:13,lineHeight:1.55,maxWidth:"75%"},children:["Sure! I'll take a look at the changes and get back to you with feedback.",_.jsx("div",{style:{fontSize:10,textAlign:"right",marginTop:4,color:Zd},children:"2:35 PM"})]})}),_.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:_.jsxs("div",{style:{padding:"8px 14px 6px",borderRadius:"14px 14px 4px 14px",background:Gi,color:fr,fontSize:13,lineHeight:1.55,maxWidth:"75%"},children:["Thanks!",_.jsx("div",{style:{fontSize:10,textAlign:"right",marginTop:4,color:gr},children:"2:35 PM"})]})})]})]})]})}const[zt,Pi]=z.useState(""),[ni,Yn]=z.useState(null),[li,to]=z.useState([]);z.useEffect(()=>{if(n!=="mobile")return;fetch(dh("/api/mobile-qr"),{credentials:"include"}).then(Ne=>Ne.json()).then(Ne=>{Yn(Ne);const ze=JSON.stringify(Ne);return ut(()=>import("./browser-ZmDDNd9E.js").then(vt=>vt.b),[]).then(vt=>vt.toDataURL(ze,{width:220,margin:1,color:{dark:"#ffffff",light:"#000000"},errorCorrectionLevel:"M"}))}).then(Ne=>Pi(Ne)).catch(()=>{});function J(){fetch(dh("/api/mobile-devices"),{credentials:"include"}).then(Ne=>Ne.json()).then(to).catch(()=>{})}J();const je=setInterval(J,5e3);return()=>clearInterval(je)},[n]);function Go(){const J=(ni==null?void 0:ni.url)||"",je=(ni==null?void 0:ni.key)||"";return _.jsxs("div",{style:{padding:"24px 28px",maxWidth:600,display:"flex",flexDirection:"column",gap:24},children:[_.jsxs("div",{children:[_.jsx("h2",{style:{fontSize:18,fontWeight:700,margin:0,color:"var(--text-primary)"},children:"Mobile Connect"}),_.jsx("p",{style:{fontSize:13,color:"var(--text-muted)",marginTop:4},children:"Scan this QR code with the OCTO VEC mobile app to connect instantly."})]}),_.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:16,background:"var(--bg-card)",borderRadius:16,border:"1px solid var(--border)",padding:32},children:[_.jsx("div",{style:{width:252,height:252,display:"flex",alignItems:"center",justifyContent:"center",background:"#000",borderRadius:12,border:"1px solid var(--border)"},children:zt?_.jsx("img",{src:zt,alt:"QR Code",width:220,height:220,style:{borderRadius:8}}):_.jsx("div",{style:{color:"var(--text-muted)",fontSize:13},children:"Generating..."})}),_.jsxs("div",{style:{textAlign:"center"},children:[_.jsx("div",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Same Network"}),_.jsx("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4},children:"Phone must be on the same WiFi as this PC"})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:12,border:"1px solid var(--border)",padding:16,display:"flex",flexDirection:"column",gap:8},children:[_.jsx("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:"Connection Details"}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)",width:60},children:"Server"}),_.jsx("code",{style:{fontSize:12,color:"var(--text-primary)",background:"var(--bg-tertiary)",padding:"4px 8px",borderRadius:6},children:J||"Loading..."})]}),_.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[_.jsx("span",{style:{fontSize:12,color:"var(--text-muted)",width:60},children:"Key"}),_.jsx("code",{style:{fontSize:12,color:"var(--text-primary)",background:"var(--bg-tertiary)",padding:"4px 8px",borderRadius:6},children:je?"••••••••":"Not found in URL"})]})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:12,border:"1px solid var(--border)",padding:16,display:"flex",flexDirection:"column",gap:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsx("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:"Connected Devices"}),li.length>0&&_.jsxs("span",{style:{fontSize:10,fontWeight:700,color:"var(--green)",background:"var(--green-bg)",padding:"2px 8px",borderRadius:8},children:[li.length," active"]})]}),li.length===0?_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"12px 0",color:"var(--text-muted)",fontSize:13},children:[_.jsx(TA,{size:16}),_.jsx("span",{children:"No devices paired yet"})]}):li.map((Ne,ze)=>{const vt=Math.floor((Date.now()-new Date(Ne.lastSeen).getTime())/1e3),si=Ne.online?vt<10?"just now":vt<60?`${vt}s ago`:`${Math.floor(vt/60)}m ago`:vt<3600?`${Math.floor(vt/60)}m ago`:vt<86400?`${Math.floor(vt/3600)}h ago`:`${Math.floor(vt/86400)}d ago`,$i=new Date(Ne.pairedAt).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"});return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 0",borderTop:ze>0?"1px solid var(--border)":"none"},children:[_.jsx("div",{style:{width:40,height:40,borderRadius:12,background:Ne.online?"var(--green-bg)":"var(--bg-tertiary)",border:`1px solid ${Ne.online?"rgba(61,214,140,0.15)":"var(--border)"}`,display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx(TA,{size:18,style:{color:Ne.online?"var(--green)":"var(--text-muted)"}})}),_.jsxs("div",{style:{flex:1},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:Ne.name}),_.jsx("span",{style:{fontSize:9,fontWeight:700,padding:"1px 6px",borderRadius:6,background:Ne.online?"var(--green-bg)":"var(--bg-tertiary)",color:Ne.online?"var(--green)":"var(--text-muted)"},children:Ne.online?"ONLINE":"OFFLINE"})]}),_.jsxs("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:2},children:[Ne.info," · Paired ",$i]}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:1},children:["Last active ",si," · ",Ne.ip]})]}),_.jsx("button",{onClick:async()=>{if(confirm(`Unlink ${Ne.name}? You'll need to scan the QR code again to reconnect.`))try{await fetch(dh("/api/mobile-devices/unlink"),{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:Ne.id})}),to(Gi=>Gi.filter(fr=>fr.id!==Ne.id))}catch{}},title:"Unlink device",style:{width:28,height:28,borderRadius:7,border:"none",padding:0,background:"var(--bg-tertiary)",color:"var(--text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.1s, color 0.1s"},onMouseEnter:Gi=>{Gi.currentTarget.style.background="var(--red-bg)",Gi.currentTarget.style.color="var(--red)"},onMouseLeave:Gi=>{Gi.currentTarget.style.background="var(--bg-tertiary)",Gi.currentTarget.style.color="var(--text-muted)"},children:_.jsx(Pr,{size:14})})]},Ne.id)})]}),_.jsxs("div",{style:{background:"var(--bg-card)",borderRadius:12,border:"1px solid var(--border)",padding:16,display:"flex",flexDirection:"column",gap:10},children:[_.jsx("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:"0.5px"},children:"How to connect"}),["Install the OCTO VEC app on your Android phone",'Open the app and tap "Scan QR Code"',"Point your camera at the QR code above","You'll be connected automatically"].map((Ne,ze)=>_.jsxs("div",{style:{display:"flex",gap:10,alignItems:"flex-start"},children:[_.jsx("span",{style:{width:20,height:20,borderRadius:10,background:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,color:"var(--text-muted)",flexShrink:0},children:ze+1}),_.jsx("span",{style:{fontSize:13,color:"var(--text-secondary)",lineHeight:"20px"},children:Ne})]},ze))]})]})}const Uh={general:lt,models:Vt,channels:yl,integrations:rw,mcp:ow,versioning:Cg,chat:at,shortcuts:Ge,mobile:Go},$u=an.filter((J,je)=>{var Ne;return J.keys!==((Ne=gs[je])==null?void 0:Ne.keys)}).length,ic={general:null,models:ko>0?String(ko):null,channels:jh>0?String(jh):null,integrations:Yt>0?String(Yt):null,mcp:Er.length>0?String(Er.length):null,versioning:Te!=null&&Te.configured?"✓":null,chat:fi.userBubble?"✓":null,shortcuts:$u>0?String($u):null,mobile:null};return _.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[_.jsxs("div",{className:"page-header",style:{padding:"24px 28px 16px"},children:[_.jsx("h1",{className:"page-title",children:"Settings"}),_.jsx("div",{className:"page-subtitle",children:"System configuration, integrations & MCP servers"})]}),_.jsxs("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[_.jsx("div",{style:{width:190,flexShrink:0,padding:"12px 12px 20px",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",gap:2,overflow:"auto"},children:aPe.map(J=>{const je=n===J.key,Ne=ic[J.key];return _.jsxs("button",{"data-tour-id":`settings-${J.key}`,onClick:()=>e(J.key),style:{display:"flex",alignItems:"center",gap:10,padding:"9px 12px",borderRadius:7,border:"none",background:je?"var(--bg-hover)":"transparent",color:je?"var(--text-primary)":"var(--text-secondary)",fontSize:13,fontWeight:je?500:400,cursor:"pointer",fontFamily:"inherit",textAlign:"left",width:"100%",transition:"background 0.08s, color 0.08s"},children:[_.jsx("span",{style:{color:je?J.color:"var(--text-muted)",display:"flex",transition:"color 0.08s"},children:J.icon}),_.jsx("span",{style:{flex:1},children:J.label}),Ne&&_.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"1px 6px",borderRadius:4,background:je?`color-mix(in srgb, ${J.color} 12%, transparent)`:"var(--bg-tertiary)",color:je?J.color:"var(--text-muted)",fontVariantNumeric:"tabular-nums",transition:"background 0.08s, color 0.08s"},children:Ne})]},J.key)})}),_.jsx("div",{style:{flex:1,overflow:"auto",padding:"20px 28px 28px"},children:Uh[n]()})]}),l&&s&&(()=>{const J=s.providers.find(je=>je.id===l);return J?_.jsx(fPe,{provider:J,onClose:()=>{c(null),h("")},onSave:je=>Kd(J.id,je),saving:u}):null})(),E&&_.jsx("div",{style:{position:"fixed",bottom:24,right:24,background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 18px",fontSize:13,color:"var(--text-primary)",boxShadow:"var(--shadow-lg)",zIndex:9999,animation:"fade-in 0.12s ease-out"},children:E})]})}function nse({provider:n,onClick:e}){return _.jsxs("button",{onClick:e,style:{display:"flex",alignItems:"center",gap:10,padding:"12px 14px",borderRadius:10,width:"100%",background:"var(--bg-card)",border:"1px solid var(--border)",cursor:"pointer",fontFamily:"inherit",textAlign:"left",transition:"border-color 0.12s, background 0.12s"},onMouseEnter:t=>{t.currentTarget.style.borderColor="var(--accent)",t.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:t=>{t.currentTarget.style.borderColor="var(--border)",t.currentTarget.style.background="var(--bg-card)"},children:[_.jsx("img",{src:n.iconUrl,alt:n.name,style:{width:28,height:28,flexShrink:0,borderRadius:6},onError:t=>{t.target.style.display="none"}}),_.jsxs("div",{style:{flex:1,minWidth:0},children:[_.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:n.name}),_.jsxs("div",{style:{fontSize:10,color:"var(--text-muted)",fontFamily:"monospace"},children:[n.models.length," model",n.models.length!==1?"s":""]})]}),_.jsx("div",{style:{width:8,height:8,borderRadius:"50%",flexShrink:0,background:n.configured?"var(--green)":"var(--text-muted)",opacity:n.configured?1:.3}})]})}function fPe({provider:n,onClose:e,onSave:t,saving:i}){const[s,r]=z.useState(""),[o,a]=z.useState(!1),[l,c]=z.useState(""),d=n.models.filter(h=>h.toLowerCase().includes(l.toLowerCase()));return _.jsxs(_.Fragment,{children:[_.jsx("div",{onClick:e,style:{position:"fixed",inset:0,zIndex:100,background:"rgba(0,0,0,0.6)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"}}),_.jsxs("div",{style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:101,background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:16,width:560,maxWidth:"92vw",maxHeight:"85vh",boxShadow:"0 24px 80px rgba(0,0,0,0.5), 0 0 0 1px var(--border)",overflow:"hidden",animation:"fade-in 0.12s ease-out",display:"flex",flexDirection:"column"},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"20px 24px 16px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[_.jsx("div",{style:{width:44,height:44,borderRadius:12,flexShrink:0,background:"var(--bg-tertiary)",display:"flex",alignItems:"center",justifyContent:"center"},children:_.jsx("img",{src:n.iconUrl,alt:n.name,style:{width:28,height:28,borderRadius:6},onError:h=>{h.target.style.display="none"}})}),_.jsxs("div",{style:{flex:1},children:[_.jsx("div",{style:{fontSize:17,fontWeight:700,color:"var(--text-primary)"},children:n.name}),_.jsxs("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:2},children:[n.models.length," model",n.models.length!==1?"s":""," available",n.configured&&_.jsx("span",{style:{color:"var(--green)",marginLeft:8,fontWeight:600},children:"Active"}),!n.configured&&_.jsx("span",{style:{color:"var(--text-muted)",marginLeft:8,opacity:.6},children:"Not configured"})]})]}),_.jsx("button",{onClick:e,style:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-tertiary)",color:"var(--text-muted)",cursor:"pointer",padding:0,transition:"all 0.12s"},onMouseEnter:h=>{h.currentTarget.style.background="var(--bg-hover)",h.currentTarget.style.color="var(--text-primary)"},onMouseLeave:h=>{h.currentTarget.style.background="var(--bg-tertiary)",h.currentTarget.style.color="var(--text-muted)"},children:_.jsx(Pr,{size:14})})]}),_.jsxs("div",{style:{padding:"20px 24px 24px",display:"flex",flexDirection:"column",gap:18,overflowY:"auto",flex:1},children:[_.jsx("div",{style:{display:"flex",gap:10},children:[{val:String(n.models.length),label:"Models",color:"var(--purple, var(--accent))"},{val:n.configured?"Active":"Not Set",label:"Status",color:n.configured?"var(--green)":"var(--text-muted)"},{val:n.envKey,label:"Env Variable",color:"var(--text-secondary)",mono:!0}].map(h=>_.jsxs("div",{style:{flex:1,padding:"12px 14px",borderRadius:10,background:"var(--bg-card)",border:"1px solid var(--border)"},children:[_.jsx("div",{style:{fontSize:h.mono?11:18,fontWeight:h.mono?500:700,color:h.color,lineHeight:1,fontVariantNumeric:"tabular-nums",fontFamily:h.mono?"monospace":"inherit",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:h.val}),_.jsx("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:4},children:h.label})]},h.label))}),n.models.length>0&&_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[_.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[_.jsx("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.04em"},children:"Available Models"}),_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[d.length," of ",n.models.length]})]}),_.jsxs("div",{style:{position:"relative"},children:[_.jsx(Rh,{size:13,style:{position:"absolute",left:10,top:"50%",transform:"translateY(-50%)",color:"var(--text-muted)",pointerEvents:"none"}}),_.jsx("input",{value:l,onChange:h=>c(h.target.value),placeholder:"Search models...",style:{...ld,width:"100%",fontSize:12,padding:"8px 12px 8px 30px"}})]}),_.jsxs("div",{style:{maxHeight:200,overflowY:"auto",border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-card)"},children:[d.map((h,u)=>_.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"9px 14px",borderBottom:u<d.length-1?"1px solid var(--border)":"none",transition:"background 0.08s"},onMouseEnter:f=>{f.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:f=>{f.currentTarget.style.background="transparent"},children:[_.jsx(wY,{size:12,style:{color:"var(--text-muted)",flexShrink:0}}),_.jsx("span",{style:{fontSize:12,fontFamily:"monospace",color:"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:h})]},h)),d.length===0&&_.jsxs("div",{style:{padding:"16px 14px",textAlign:"center",fontSize:12,color:"var(--text-muted)"},children:['No models match "',l,'"']})]})]}),_.jsxs("div",{children:[_.jsx("label",{style:{fontSize:12,fontWeight:500,color:"var(--text-secondary)",marginBottom:8,display:"block"},children:"API Key"}),_.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[_.jsx("input",{value:s,onChange:h=>r(h.target.value),placeholder:`Paste your ${n.name} API key...`,type:o?"text":"password",autoFocus:!0,style:{...ld,flex:1,fontSize:13,fontFamily:"monospace",padding:"10px 12px"},onKeyDown:h=>h.key==="Enter"&&s.trim()&&t(s)}),_.jsx("button",{onClick:()=>a(h=>!h),style:{display:"flex",alignItems:"center",justifyContent:"center",width:38,height:38,borderRadius:8,flexShrink:0,border:"1px solid var(--border)",background:"var(--bg-tertiary)",color:o?"var(--accent)":"var(--text-muted)",cursor:"pointer",padding:0,transition:"color 0.12s"},title:o?"Hide key":"Show key",children:_.jsx(jE,{size:14})})]})]}),_.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",marginTop:4},children:[_.jsx("button",{onClick:e,style:{...g1,padding:"9px 18px",fontSize:12,borderRadius:8},children:"Cancel"}),_.jsxs("button",{onClick:()=>s.trim()&&t(s),disabled:!s.trim()||i,style:{display:"flex",alignItems:"center",gap:6,padding:"9px 22px",borderRadius:8,border:"none",background:s.trim()?"var(--accent)":"var(--bg-tertiary)",color:s.trim()?"#fff":"var(--text-muted)",fontSize:12,fontWeight:600,cursor:s.trim()?"pointer":"default",fontFamily:"inherit",opacity:i?.6:1,transition:"opacity 0.12s, background 0.12s"},children:[_.jsx(IA,{size:13})," ",i?"Saving...":"Save Key"]})]})]})]})]})}const gPe=new Set(qE.map(n=>n.id)),pPe=Array.from(new Set(qE.map(n=>n.category)));function mPe({activeServerNames:n,mcpConfig:e,mcpStatus:t,onAdd:i,onRemove:s,onAddCustom:r,onUpdateCustom:o,onRemoveCustomEnv:a,onAddCustomEnv:l,expanded:c,onToggleExpand:d,showCustomTrigger:h}){const[u,f]=z.useState(""),[g,m]=z.useState("all"),[b,w]=z.useState(!0),[S,x]=z.useState(null),[C,L]=z.useState({}),[E,I]=z.useState(!1);z.useEffect(()=>{h&&h>0&&I(!0)},[h]);const R=z.useRef(null);z.useEffect(()=>{var re;E&&((re=R.current)==null||re.scrollIntoView({behavior:"smooth",block:"center"}))},[E]);const[M,A]=z.useState(""),[H,F]=z.useState("npx"),[B,j]=z.useState(""),[V,X]=z.useState(""),[K,Q]=z.useState(""),[te,W]=z.useState({}),Z=n.filter(re=>!gPe.has(re)),oe=qE.filter(re=>n.includes(re.id)),$=u.toLowerCase(),be=qE.filter(re=>!(n.includes(re.id)||g!=="all"&&re.category!==g||$&&!re.name.toLowerCase().includes($)&&!re.description.toLowerCase().includes($)&&!re.tools.some(Se=>Se.toLowerCase().includes($)))),Le=[{value:"all",label:"All Categories"},...pPe.map(re=>({value:re,label:e7[re].label}))];function Ve(re){if(Object.keys(re.envVars).length>0){x(re);const We={};for(const Be of Object.keys(re.envVars))We[Be]="";L(We)}else i(re)}function Ye(){S&&(i(S,C),x(null),L({}))}function ft(){const re=M.trim().toLowerCase().replace(/[^a-z0-9_-]/g,"");re&&(n.includes(re)||(r(re,{command:H.trim(),args:B.split(`
|
|
632
632
|
`).map(Se=>Se.trim()).filter(Boolean),env:{...te}}),I(!1),A(""),F("npx"),j(""),W({})))}return _.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[(oe.length>0||Z.length>0)&&_.jsxs("div",{children:[_.jsx(od,{title:"Active Servers",count:n.length}),_.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[oe.map(re=>{const Se=t.servers.find(Be=>Be.name===re.id),We=e7[re.category];return _.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 14px",borderRadius:8,background:"var(--bg-card)",border:"1px solid var(--border)"},children:[_.jsx("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:Se!=null&&Se.connected?"var(--green)":"var(--text-muted)",opacity:Se!=null&&Se.connected?1:.35}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",flex:1},children:re.name}),_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:`color-mix(in srgb, ${We.color} 10%, transparent)`,color:We.color},children:We.label}),(Se==null?void 0:Se.connected)&&_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)",fontVariantNumeric:"tabular-nums"},children:[Se.tools.length," tool",Se.tools.length!==1?"s":""]}),_.jsx("button",{onClick:()=>s(re.id),style:{display:"flex",padding:4,border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.08s"},onMouseEnter:Be=>{Be.currentTarget.style.color="var(--red)"},onMouseLeave:Be=>{Be.currentTarget.style.color="var(--text-muted)"},title:"Remove",children:_.jsx(vp,{size:12})})]},re.id)}),Z.map(re=>{const Se=e.mcpServers[re];if(!Se)return null;const We=t.servers.find(Te=>Te.name===re),Be=c[re]??!1;return _.jsxs("div",{style:{borderRadius:8,overflow:"hidden",background:"var(--bg-card)",border:"1px solid var(--border)"},children:[_.jsxs("div",{onClick:()=>d(re),style:{display:"flex",alignItems:"center",gap:12,padding:"10px 14px",cursor:"pointer",borderBottom:Be?"1px solid var(--border)":"none"},children:[Be?_.jsx(Ic,{size:12,style:{color:"var(--text-muted)"}}):_.jsx(ox,{size:12,style:{color:"var(--text-muted)"}}),_.jsx("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:We!=null&&We.connected?"var(--green)":"var(--text-muted)",opacity:We!=null&&We.connected?1:.35}}),_.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",flex:1},children:re}),_.jsx("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:"var(--bg-tertiary)",color:"var(--text-muted)"},children:"CUSTOM"}),(We==null?void 0:We.connected)&&_.jsxs("span",{style:{fontSize:11,color:"var(--text-muted)"},children:[We.tools.length," tool",We.tools.length!==1?"s":""]}),_.jsx("button",{onClick:Te=>{Te.stopPropagation(),s(re)},title:"Remove",style:{display:"flex",padding:4,border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.08s"},onMouseEnter:Te=>{Te.currentTarget.style.color="var(--red)"},onMouseLeave:Te=>{Te.currentTarget.style.color="var(--text-muted)"},children:_.jsx(vp,{size:12})})]}),Be&&_.jsxs("div",{style:{padding:14,display:"flex",flexDirection:"column",gap:12},children:[_.jsx(lL,{label:"Command",hint:"e.g. npx, node, python",children:_.jsx("input",{value:Se.command,onChange:Te=>o(re,{command:Te.target.value}),placeholder:"npx",style:ld})}),_.jsx(lL,{label:"Arguments",hint:"One per line",children:_.jsx("textarea",{value:(Se.args??[]).join(`
|
|
633
633
|
`),onChange:Te=>o(re,{args:Te.target.value.split(`
|
|
634
634
|
`)}),placeholder:`-y
|
|
@@ -1546,7 +1546,7 @@ ${e.toString()}`}}class Q4{constructor(e=new pk,t=!1,i,s=kft){this._services=e,t
|
|
|
1546
1546
|
`:`\r
|
|
1547
1547
|
`}};gG=_g([As(0,Bt)],gG);class Fft{publicLog2(){}}const zE=class zE{constructor(){const e=dt.from({scheme:zE.SCHEME,authority:"model",path:"/"});this.workspace={id:Ybe,folders:[new XYe({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===zE.SCHEME?this.workspace.folders[0]:null}};zE.SCHEME="inmemory";let pG=zE;function e5(n,e,t){if(!e||!(n instanceof J4))return;const i=[];Object.keys(e).forEach(s=>{pZe(s)&&i.push([`editor.${s}`,e[s]]),t&&mZe(s)&&i.push([`diffEditor.${s}`,e[s]])}),i.length>0&&n.updateValues(i)}let mG=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:hQ.convert(e),s=new Map;for(const a of i){if(!(a instanceof G_))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let c=s.get(l);c||(c=[],s.set(l,c)),c.push(ls.replaceMove(O.lift(a.textEdit.range),a.textEdit.text))}let r=0,o=0;for(const[a,l]of s)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),o+=1,r+=l.length;return{ariaSummary:t0(lq.bulkEditServiceSummary,r,o),isApplied:r>0}}};mG=_g([As(0,qn)],mG);class Bft{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return Bd(e)}}let _G=class extends eut{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const s=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();s&&(t=s.getContainerDomNode())}return super.showContextView(e,t,i)}};_G=_g([As(0,gg),As(1,Ci)],_G);class Wft{constructor(){this._neverEmitter=new ie,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class Hft extends NK{constructor(){super()}}class Vft extends Tft{constructor(){super(new $3e)}}let vG=class extends PK{constructor(e,t,i,s,r,o){super(e,t,i,s,r,o),this.configure({blockMouse:!1})}};vG=_g([As(0,$o),As(1,fs),As(2,mm),As(3,Di),As(4,zd),As(5,Lt)],vG);const zft={esmModuleLocation:void 0,label:"editorWorkerService"};let bG=class extends yK{constructor(e,t,i,s,r){super(zft,e,t,i,s,r)}};bG=_g([As(0,qn),As(1,N6),As(2,Cn),As(3,Kn),As(4,Xe)],bG);class jft{async playSignal(e,t){}}ai(Cn,Vft,0);ai(Bt,J4,0);ai(N6,fG,0);ai(U0e,gG,0);ai(om,pG,0);ai(L0,Bft,0);ai($o,Fft,0);ai(OT,Pft,0);ai(wQ,Aft,0);ai(fs,hG,0);ai(pg,e1,0);ai(us,Hft,0);ai(qc,qdt,0);ai(qn,VK,0);ai($Z,HK,0);ai(Lt,lG,0);ai(Cve,Mft,0);ai(sm,dG,0);ai(ba,AGe,0);ai(_l,bG,0);ai(xT,mG,0);ai(iwe,Wft,0);ai(va,cG,0);ai(Xr,sG,0);ai(qd,zJe,0);ai(Sn,uG,0);ai(Di,Gx,0);ai(zo,iG,0);ai(mm,_G,0);ai(_m,WK,0);ai(Gl,oG,0);ai($c,vG,0);ai(zd,zz,0);ai(gm,jft,0);ai(TX,Rft,0);ai(Zpe,Y3e,0);ai(dJ,ont,0);var Rt;(function(n){const e=new pk;for(const[l,c]of ire())e.set(l,c);const t=new Q4(e,!0);e.set(tt,t);function i(l){s||o({});const c=e.get(l);if(!c)throw new Error("Missing service "+l);return c instanceof Df?t.invokeFunction(d=>d.get(l)):c}n.get=i;let s=!1;const r=new ie;function o(l){if(s)return t;s=!0;for(const[d,h]of ire())e.get(d)||e.set(d,h);for(const d in l)if(l.hasOwnProperty(d)){const h=Gt(d);e.get(h)instanceof Df&&e.set(h,l[d])}const c=XZe();for(const d of c)try{t.createInstance(d)}catch(h){Tt(h)}return r.fire(),t}n.initialize=o;function a(l){if(s)return l();const c=new he,d=c.add(r.event(()=>{d.dispose(),c.add(l())}));return c}n.withServices=a})(Rt||(Rt={}));var Uft=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Nhe=function(n,e){return function(t,i){e(t,i,n)}},vA,Gy;let yG=(Gy=class{constructor(e,t){this._configurationService=e,this._languageService=t}async renderCodeBlock(e,t,i){var d;const s=Ou(i.context)?i.context:void 0;let r;e?r=this._languageService.getLanguageIdByLanguageName(e):s&&(r=(d=s.getModel())==null?void 0:d.getLanguageId()),r||(r=Fc);const o=await Zje(this._languageService,t,r),a=vA._ttpTokenizer?vA._ttpTokenizer.createHTML(o)??o:o,l=document.createElement("span");l.innerHTML=a;const c=l.querySelector(".monaco-tokenized-source");return hs(c)?(Fr(c,this.getFontInfo(s)),l):document.createElement("span")}getFontInfo(e){return e?e.getOption(59):E8e({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}},vA=Gy,Gy._ttpTokenizer=ug("tokenizeToString",{createHTML(e){return e}}),Gy);yG=vA=Uft([Nhe(0,Bt),Nhe(1,us)],yG);var zJ=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},mn=function(n,e){return function(t,i){e(t,i,n)}};let $ft=0,Mhe=!1;function qft(n){if(!n){if(Mhe)return;Mhe=!0}d3e(n||Qi.document.body)}let t5=class extends d0{constructor(e,t,i,s,r,o,a,l,c,d,h,u,f,g){const m={...t};m.ariaLabel=m.ariaLabel||oq.editorViewAccessibleLabel,super(e,m,{},i,s,r,o,c,d,h,u,f),l instanceof Gx?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,qft(m.ariaContainerElement),OUe((b,w)=>i.createInstance(Rx,b,{instantHover:w},{})),qqe(a),g.setDefaultCodeBlockRenderer(i.createInstance(yG))}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const s="DYNAMIC_"+ ++$ft,r=_e.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(s,e,t,r),s}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ne.None;const t=e.id,i=e.label,s=_e.and(_e.equals("editorId",this.getId()),_e.deserialize(e.precondition)),r=e.keybindings,o=_e.and(s,_e.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(f,...g)=>Promise.resolve(e.run(this,...g)),d=new he,h=this.getId()+":"+t;if(d.add(gi.registerCommand(h,c)),a){const f={command:{id:h,title:i},when:s,group:a,order:l};d.add(Or.appendMenuItem(Qe.EditorContext,f))}if(Array.isArray(r))for(const f of r)d.add(this._standaloneKeybindingService.addDynamicKeybinding(h,f,c,o));const u=new q_e(h,i,i,void 0,s,(...f)=>Promise.resolve(e.run(this,...f)),this._contextKeyService);return this._actions.set(t,u),d.add(Je(()=>{this._actions.delete(t)})),d}_triggerCommand(e,t){if(this._codeEditorService instanceof z4)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};t5=zJ([mn(2,tt),mn(3,Ci),mn(4,Sn),mn(5,Lt),mn(6,ja),mn(7,Di),mn(8,is),mn(9,fs),mn(10,Xr),mn(11,Kn),mn(12,Xe),mn(13,Wh)],t5);let wG=class extends t5{constructor(e,t,i,s,r,o,a,l,c,d,h,u,f,g,m,b,w){const S={...t};e5(h,S,!1);const x=c.registerEditorContainer(e);typeof S.theme=="string"&&c.setTheme(S.theme),typeof S.autoDetectHighContrast<"u"&&c.setAutoDetectHighContrast(!!S.autoDetectHighContrast);const C=S.model;delete S.model,super(e,S,i,s,r,o,a,l,c,d,u,m,b,w),this._configurationService=h,this._standaloneThemeService=c,this._register(x);let L;if(typeof C>"u"){const E=g.getLanguageIdByMimeType(S.language)||S.language||Fc;L=Gwe(f,g,S.value||"",E,void 0),this._ownsModel=!0}else L=C,this._ownsModel=!1;if(this._attachModel(L),L){const E={oldModelUrl:null,newModelUrl:L.uri};this._onDidChangeModel.fire(E)}}dispose(){super.dispose()}updateOptions(e){e5(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};wG=zJ([mn(2,tt),mn(3,Ci),mn(4,Sn),mn(5,Lt),mn(6,ja),mn(7,Di),mn(8,qc),mn(9,fs),mn(10,Bt),mn(11,Xr),mn(12,qn),mn(13,us),mn(14,Kn),mn(15,Xe),mn(16,Wh)],wG);let CG=class extends ng{constructor(e,t,i,s,r,o,a,l,c,d,h,u){const f={...t};e5(l,f,!0);const g=o.registerEditorContainer(e);typeof f.theme=="string"&&o.setTheme(f.theme),typeof f.autoDetectHighContrast<"u"&&o.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},s,i,r,u,d),this._configurationService=l,this._standaloneThemeService=o,this._register(g)}dispose(){super.dispose()}updateOptions(e){e5(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(t5,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};CG=zJ([mn(2,tt),mn(3,Lt),mn(4,Ci),mn(5,qc),mn(6,fs),mn(7,Bt),mn(8,$c),mn(9,sm),mn(10,Gl),mn(11,gm)],CG);function Gwe(n,e,t,i,s){if(t=t||"",!i){const r=t.indexOf(`
|
|
1548
1548
|
`);let o=t;return r!==-1&&(o=t.substring(0,r)),Ahe(n,t,e.createByFilepathOrFirstLine(s||null,o),s)}return Ahe(n,t,e.createById(i),s)}function Ahe(n,e,t,i){return n.createModel(e,t,i)}q("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},y(142,"The background color of the diff editor's header"));q("multiDiffEditor.background",Ls,y(143,"The background color of the multi file diff editor"));q("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},y(144,"The border color of the multi file diff editor"));var Kft=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Phe=function(n,e){return function(t,i){e(t,i,n)}};class Gft{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let SG=class extends ne{constructor(e,t,i,s,r){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=s,this._viewModel=kt(this,void 0),this._collapsed=ge(this,l=>{var c;return(c=this._viewModel.read(l))==null?void 0:c.collapsed.read(l)}),this._editorContentHeight=kt(this,500),this.contentHeight=ge(this,l=>(this._collapsed.read(l)?0:this._editorContentHeight.read(l))+this._outerEditorHeight),this._modifiedContentWidth=kt(this,0),this._modifiedWidth=kt(this,0),this._originalContentWidth=kt(this,0),this._originalWidth=kt(this,0),this.maxScroll=ge(this,l=>{const c=this._modifiedContentWidth.read(l)-this._modifiedWidth.read(l),d=this._originalContentWidth.read(l)-this._originalWidth.read(l);return c>d?{maxScroll:c,width:this._modifiedWidth.read(l)}:{maxScroll:d,width:this._originalWidth.read(l)}}),this._elements=yi("div.multiDiffEntry",[yi("div.header@header",[yi("div.header-content",[yi("div.collapse-button@collapseButton"),yi("div.file-path",[yi("div.title.modified.show-file-icons@primaryPath",[]),yi("div.status.deleted@status",["R"]),yi("div.title.original.show-file-icons@secondaryPath",[])]),yi("div.actions@actions")])]),yi("div.editorParent",[yi("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(ng,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=$n(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=$n(this.editor.getOriginalEditor()).isFocused,this.isFocused=ge(this,l=>this.isModifedFocused.read(l)||this.isOriginalFocused.read(l)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new he),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new pO(this._elements.collapseButton,{});this._register(wt(l=>{o.element.className="",o.icon=this._collapsed.read(l)?ye.chevronRight:ye.chevronDown})),this._register(o.onDidClick(()=>{var l;(l=this._viewModel.get())==null||l.collapsed.set(!this._collapsed.get(),void 0)})),this._register(wt(l=>{this._elements.editor.style.display=this._collapsed.read(l)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(l=>{const c=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(c,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(l=>{const c=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(c,void 0)})),this._register(this.editor.onDidContentSizeChange(l=>{QL(c=>{this._editorContentHeight.set(l.contentHeight,c),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),c),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),c)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(l=>{if(this._isSettingScrollTop||!l.scrollTopChanged||!this._data)return;const c=l.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(c)})),this._register(wt(l=>{var d;const c=(d=this._viewModel.read(l))==null?void 0:d.isActive.read(l);this._elements.root.classList.toggle("active",c)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(r.createScoped(this._elements.actions));const a=this._register(this._instantiationService.createChild(new pk([Lt,this._contextKeyService])));this._register(a.createInstance($I,this._elements.actions,Qe.MultiDiffEditorFileToolbar,{actionRunner:this._register(new Pbe(()=>{var l,c;return((l=this._viewModel.get())==null?void 0:l.modifiedUri)??((c=this._viewModel.get())==null?void 0:c.originalUri)})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:l=>l.startsWith("navigation")},actionViewItemProvider:(l,c)=>cQ(a,l,c)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(s){return{...s,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){QL(s=>{this._viewModel.set(void 0,s),this.editor.setDiffModel(null,s),this._dataStore.clear()});return}const i=e.viewModel.documentDiffItem;if(QL(s=>{var c,d;(c=this._resourceLabel)==null||c.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let r=!1,o=!1,a=!1,l="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(l="R",r=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(l="A",a=!0):(l="D",o=!0),this._elements.status.classList.toggle("renamed",r),this._elements.status.classList.toggle("deleted",o),this._elements.status.classList.toggle("added",a),this._elements.status.innerText=l,(d=this._resourceLabel2)==null||d.setUri(r?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,s),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,s),this.editor.updateOptions(t(i.options??{}))}),i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{this.editor.updateOptions(t(i.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,s=>{s||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(const[s,r]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(s,r)}render(e,t,i,s){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const r=e.length-this._headerHeight,o=Math.max(0,Math.min(s.start-e.start,r));this._elements.header.style.transform=`translateY(${o}px)`,QL(a=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",o>0||i>0),this._elements.header.classList.toggle("collapsed",o===r)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};SG=Kft([Phe(3,tt),Phe(4,Lt)],SG);class Yft{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{const i=[...this._unused.values()];t=i.find(s=>this._itemData.get(s).getId()===e.getId())??i[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var Zft=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Ohe=function(n,e){return function(t,i){e(t,i,n)}};let xG=class extends ne{constructor(e,t,i,s,r,o){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=s,this._parentContextKeyService=r,this._parentInstantiationService=o,this._scrollableElements=yi("div.scrollContent",[yi("div@content",{style:{overflow:"hidden"}}),yi("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new fk({forceIntegerValues:!1,scheduleAtNextAnimationFrame:c=>hl(st(this._element),c),smoothScrollDuration:100})),this._scrollableElement=this._register(new jF(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=yi("div.monaco-component.multiDiffEditor",{},[yi("div",{},[this._scrollableElement.getDomNode()]),yi("div.placeholder@placeholder",{},[yi("div")])]),this._sizeObserver=this._register(new pbe(this._element,void 0)),this._objectPool=this._register(new Yft(c=>{const d=this._instantiationService.createInstance(SG,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return d.setData(c),d})),this.scrollTop=Bi(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=Bi(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=ge(this,c=>{const d=this._viewModel.read(c);if(!d)return{items:[],getItem:g=>{throw new ht}};const h=d.items.read(c),u=new Map;return{items:h.map(g=>{var w;const m=c.store.add(new Qft(g,this._objectPool,this.scrollLeft,S=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+S})})),b=(w=this._lastDocStates)==null?void 0:w[m.getKey()];return b&&vn(S=>{m.setViewState(b,S)}),u.set(g,m),m}),getItem:g=>u.get(g)}}),this._viewItems=this._viewItemsInfo.map(this,c=>c.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(c,d)=>c.reduce((h,u)=>h+u.contentHeight.read(d)+this._spaceBetweenPx,0)),this.activeControl=ge(this,c=>{var u,f;const d=(u=this._viewModel.read(c))==null?void 0:u.activeDiffItem.read(c);return d?(f=this._viewItemsInfo.read(c).getItem(d).template.read(c))==null?void 0:f.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new pk([Lt,this._contextKeyService]))),this._contextKeyService.createKey(G.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(Wo((c,d)=>{const h=this._viewModel.read(c);if(h&&h.contextKeys)for(const[u,f]of Object.entries(h.contextKeys)){const g=this._contextKeyService.createKey(u,void 0);g.set(f),d.add(Je(()=>g.reset()))}}));const a=this._parentContextKeyService.createKey(G.multiDiffEditorAllCollapsed.key,!1);this._register(wt(c=>{const d=this._viewModel.read(c);if(d){const h=d.items.read(c).every(u=>u.collapsed.read(c));a.set(h)}})),this._register(wt(c=>{const d=this._dimension.read(c);this._sizeObserver.observe(d)}));const l=ge(c=>{if(this._viewItems.read(c).length>0)return;const h=this._viewModel.read(c);return!h||h.isLoading.read(c)?y(145,"Loading..."):y(146,"No Changed Files")});this._register(wt(c=>{const d=l.read(c);this._elements.placeholder.innerText=d??"",this._elements.placeholder.classList.toggle("visible",!!d)})),this._scrollableElements.content.style.position="relative",this._register(wt(c=>{const d=this._sizeObserver.height.read(c);this._scrollableElements.root.style.height=`${d}px`;const h=this._totalHeight.read(c);this._scrollableElements.content.style.height=`${h}px`;const u=this._sizeObserver.width.read(c);let f=u;const g=this._viewItems.read(c),m=dX(g,bo(b=>b.maxScroll.read(c).maxScroll,Wl));if(m){const b=m.maxScroll.read(c);f=u+b.maxScroll}this._scrollableElement.setScrollDimensions({width:u,height:d,scrollHeight:h,scrollWidth:f})})),e.replaceChildren(this._elements.root),this._register(Je(()=>{e.replaceChildren()})),this._register(wt(c=>{const d=this._viewModel.read(c);if(d&&!d.isLoading.read(c)){if(d.items.read(c).length===0||d.activeDiffItem.read(c))return;this.goToNextChange()}})),this._register(this._register(wt(c=>{QL(d=>{this.render(c)})})))}reveal(e,t){var c;const i=this._viewItems.get(),s=i.findIndex(d=>{var h,u,f,g;return((h=d.viewModel.originalUri)==null?void 0:h.toString())===((u=e.original)==null?void 0:u.toString())&&((f=d.viewModel.modifiedUri)==null?void 0:f.toString())===((g=e.modified)==null?void 0:g.toString())});if(s===-1)throw new ht("Resource not found in diff editor");const r=i[s];this._viewModel.get().activeDiffItem.setCache(r.viewModel,void 0);let o=0;for(let d=0;d<s;d++)o+=i[d].contentHeight.get()+this._spaceBetweenPx;this._scrollableElement.setScrollPosition({scrollTop:o});const a=(c=r.template.get())==null?void 0:c.editor,l="original"in e?a==null?void 0:a.getOriginalEditor():a==null?void 0:a.getModifiedEditor();l&&(t!=null&&t.range)&&(l.revealRangeInCenter(t.range),Xft(l,t.range))}goToNextChange(){this._navigateToChange("next")}_navigateToChange(e){var l,c,d,h,u;const t=this._viewItems.get();if(t.length===0)return;const i=(l=this._viewModel.get())==null?void 0:l.activeDiffItem.get(),s=i?t.findIndex(f=>f.viewModel===i):-1;if(s===-1){this._goToFile(0,"first");return}const r=t[s];r.viewModel.collapsed.get()&&r.viewModel.collapsed.set(!1,void 0);const o=(c=r.template.get())==null?void 0:c.editor;if((h=(d=o==null?void 0:o.getDiffComputationResult())==null?void 0:d.changes2)!=null&&h.length){const f=((u=o.getModifiedEditor().getPosition())==null?void 0:u.lineNumber)||1,g=o.getDiffComputationResult().changes2;if(e==="next"?g.some(b=>b.modified.startLineNumber>f):g.some(b=>b.modified.endLineNumberExclusive<=f)){o.goToDiff(e);return}}const a=(s+(e==="next"?1:-1)+t.length)%t.length;this._goToFile(a,e==="next"?"first":"last")}_goToFile(e,t){var r,o,a;const i=this._viewItems.get()[e];i.viewModel.collapsed.get()&&i.viewModel.collapsed.set(!1,void 0),this.reveal({original:i.viewModel.originalUri,modified:i.viewModel.modifiedUri});const s=(r=i.template.get())==null?void 0:r.editor;if((a=(o=s==null?void 0:s.getDiffComputationResult())==null?void 0:o.changes2)!=null&&a.length)if(t==="first")s.revealFirstDiff();else{const l=s.getDiffComputationResult().changes2.at(-1),c=s.getModifiedEditor();c.setPosition({lineNumber:l.modified.startLineNumber,column:1}),c.revealLineInCenter(l.modified.startLineNumber)}s==null||s.focus()}render(e){const t=this.scrollTop.read(e);let i=0,s=0,r=0;const o=this._sizeObserver.height.read(e),a=et.ofStartAndLength(t,o),l=this._sizeObserver.width.read(e);for(const c of this._viewItems.read(e)){const d=c.contentHeight.read(e),h=Math.min(d,o),u=et.ofStartAndLength(s,h),f=et.ofStartAndLength(r,d);if(f.isBefore(a))i-=d-h,c.hide();else if(f.isAfter(a))c.hide();else{const g=Math.max(0,Math.min(a.start-f.start,d-h));i-=g;const m=et.ofStartAndLength(t+i,o);c.render(u,g,l,m)}s+=h+this._spaceBetweenPx,r+=d+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};xG=Zft([Ohe(4,Lt),Ohe(5,tt)],xG);function Xft(n,e){const t=n.getModel(),i=n.createDecorationsCollection([{range:e,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{n.getModel()===t&&i.clear()},350)}class Qft extends ne{constructor(e,t,i,s){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=s,this._templateRef=this._register(LZ(this,void 0)),this.contentHeight=ge(this,r=>{var o,a;return((a=(o=this._templateRef.read(r))==null?void 0:o.object.contentHeight)==null?void 0:a.read(r))??this.viewModel.lastTemplateData.read(r).contentHeight}),this.maxScroll=ge(this,r=>{var o;return((o=this._templateRef.read(r))==null?void 0:o.object.maxScroll.read(r))??{maxScroll:0,scrollWidth:0}}),this.template=ge(this,r=>{var o;return(o=this._templateRef.read(r))==null?void 0:o.object}),this._isHidden=kt(this,!1),this._isFocused=ge(this,r=>{var o;return((o=this.template.read(r))==null?void 0:o.isFocused.read(r))??!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(wt(r=>{var a;const o=this._scrollLeft.read(r);(a=this._templateRef.read(r))==null||a.object.setScrollLeft(o)})),this._register(wt(r=>{const o=this._templateRef.read(r);!o||!this._isHidden.read(r)||o.object.isFocused.read(r)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return`VirtualViewItem(${(e=this.viewModel.documentDiffItem.modified)==null?void 0:e.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){var o;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const i=this.viewModel.lastTemplateData.get(),s=(o=e.selections)==null?void 0:o.map($e.liftSelection);this.viewModel.lastTemplateData.set({...i,selections:s},t);const r=this._templateRef.get();r&&s&&r.object.editor.setSelections(s)}_updateTemplateData(e){const t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){const e=this._templateRef.get();e&&vn(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,s){this._isHidden.set(!1,void 0);let r=this._templateRef.get();if(!r){r=this._objectPool.getUnusedObj(new Gft(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(r,void 0);const o=this.viewModel.lastTemplateData.get().selections;o&&r.object.editor.setSelections(o)}r.object.render(e,i,t,s)}}var Jft=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},egt=function(n,e){return function(t,i){e(t,i,n)}};let kG=class extends ne{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=kt(this,void 0),this._viewModel=kt(this,void 0),this._widgetImpl=ge(this,s=>s.store.add(this._instantiationService.createInstance(Kg(xG),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(gx(this._widgetImpl))}};kG=Jft([egt(2,tt)],kG);function tgt(n,e,t){return Rt.initialize(t||{}).createInstance(wG,n,e)}function igt(n){return Rt.get(Ci).onCodeEditorAdd(t=>{n(t)})}function ngt(n){return Rt.get(Ci).onDiffEditorAdd(t=>{n(t)})}function sgt(){return Rt.get(Ci).listCodeEditors()}function rgt(){return Rt.get(Ci).listDiffEditors()}function ogt(n,e,t){return Rt.initialize(t||{}).createInstance(CG,n,e)}function agt(n,e){const t=Rt.initialize(e||{});return new kG(n,{},t)}function lgt(n){if(typeof n.id!="string"||typeof n.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return gi.registerCommand(n.id,n.run)}function cgt(n){if(typeof n.id!="string"||typeof n.label!="string"||typeof n.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=_e.deserialize(n.precondition),t=(s,...r)=>hr.runEditorCommand(s,r,e,(o,a,l)=>Promise.resolve(n.run(a,...l))),i=new he;if(i.add(gi.registerCommand(n.id,t)),n.contextMenuGroupId){const s={command:{id:n.id,title:n.label},when:e,group:n.contextMenuGroupId,order:n.contextMenuOrder||0};i.add(Or.appendMenuItem(Qe.EditorContext,s))}if(Array.isArray(n.keybindings)){const s=Rt.get(Di);if(!(s instanceof Gx))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const r=_e.and(e,_e.deserialize(n.keybindingContext));i.add(s.addDynamicKeybindings(n.keybindings.map(o=>({keybinding:o,command:n.id,when:r}))))}}return i}function dgt(n){return Ywe([n])}function Ywe(n){const e=Rt.get(Di);return e instanceof Gx?e.addDynamicKeybindings(n.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:_e.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),ne.None)}function hgt(n,e,t){const i=Rt.get(us),s=i.getLanguageIdByMimeType(e)||e;return Gwe(Rt.get(qn),i,n,s,t)}function ugt(n,e){const t=Rt.get(us),i=t.getLanguageIdByMimeType(e)||e||Fc;n.setLanguage(t.createById(i))}function fgt(n,e,t){n&&Rt.get(pg).changeOne(e,n.uri,t)}function ggt(n){Rt.get(pg).changeAll(n,[])}function pgt(n){return Rt.get(pg).read(n)}function mgt(n){return Rt.get(pg).onMarkerChanged(n)}function _gt(n){return Rt.get(qn).getModel(n)}function vgt(){return Rt.get(qn).getModels()}function bgt(n){return Rt.get(qn).onModelAdded(n)}function ygt(n){return Rt.get(qn).onModelRemoved(n)}function wgt(n){return Rt.get(qn).onModelLanguageChanged(t=>{n({model:t.model,oldLanguage:t.oldLanguageId})})}function Cgt(n){return Eht(Rt.get(qn),n)}function Sgt(n,e){const t=Rt.get(us),i=Rt.get(qc);return FJ.colorizeElement(i,t,n,e).then(()=>{i.registerEditorContainer(n)})}function xgt(n,e,t){const i=Rt.get(us);return Rt.get(qc).registerEditorContainer(Qi.document.body),FJ.colorize(i,n,e,t)}function kgt(n,e,t=4){return Rt.get(qc).registerEditorContainer(Qi.document.body),FJ.colorizeModelLine(n,e,t)}function Lgt(n){const e=as.get(n);return e||{getInitialState:()=>Ex,tokenize:(t,i,s)=>IX(n,s)}}function Dgt(n,e){as.getOrCreate(e);const t=Lgt(e),i=$l(n),s=[];let r=t.getInitialState();for(let o=0,a=i.length;o<a;o++){const l=i[o],c=t.tokenize(l,!0,r);s[o]=c.tokens,r=c.endState}return s}function Egt(n,e){Rt.get(qc).defineTheme(n,e)}function Igt(n){Rt.get(qc).setTheme(n)}function Tgt(){lV.clearAllFontInfos()}function Rgt(n,e){return gi.registerCommand({id:n,handler:e})}function Ngt(n){return Rt.get(_m).registerOpener({async open(t){return typeof t=="string"&&(t=dt.parse(t)),n.open(t)}})}function Mgt(n){return Rt.get(Ci).registerCodeEditorOpenHandler(async(t,i,s)=>{var a;if(!i)return null;const r=(a=t.options)==null?void 0:a.selection;let o;return r&&typeof r.endLineNumber=="number"&&typeof r.endColumn=="number"?o=r:r&&(o={lineNumber:r.startLineNumber,column:r.startColumn}),await n.openCodeEditor(i,t.resource,o)?i:null})}function Agt(){return{create:tgt,getEditors:sgt,getDiffEditors:rgt,onDidCreateEditor:igt,onDidCreateDiffEditor:ngt,createDiffEditor:ogt,addCommand:lgt,addEditorAction:cgt,addKeybindingRule:dgt,addKeybindingRules:Ywe,createModel:hgt,setModelLanguage:ugt,setModelMarkers:fgt,getModelMarkers:pgt,removeAllMarkers:ggt,onDidChangeMarkers:mgt,getModels:vgt,getModel:_gt,onDidCreateModel:bgt,onWillDisposeModel:ygt,onDidChangeModelLanguage:wgt,createWebWorker:Cgt,colorizeElement:Sgt,colorize:xgt,colorizeModelLine:kgt,tokenize:Dgt,defineTheme:Egt,setTheme:Igt,remeasureFonts:Tgt,registerCommand:Rgt,registerLinkOpener:Ngt,registerEditorOpener:Mgt,AccessibilitySupport:wq,ContentWidgetPositionPreference:Dq,CursorChangeReason:Eq,DefaultEndOfLine:Iq,EditorAutoIndentStrategy:Rq,EditorOption:Nq,EndOfLinePreference:Mq,EndOfLineSequence:Aq,MinimapPosition:qq,MinimapSectionHeaderStyle:Kq,MouseTargetType:Gq,OverlayWidgetPositionPreference:Xq,OverviewRulerLane:Qq,GlyphMarginLane:Pq,RenderLineNumbersType:tK,RenderMinimap:iK,ScrollbarVisibility:sK,ScrollType:nK,TextEditorCursorBlinkingStyle:hK,TextEditorCursorStyle:uK,TrackedRangeStickiness:fK,WrappingIndent:gK,InjectedTextCursorStops:Bq,PositionAffinity:eK,ShowLightbulbIconMode:oK,TextDirection:dK,ConfigurationChangedEvent:Dme,BareFontInfo:s0,FontInfo:uP,TextModelResolvedOptions:zM,FindMatch:lI,ApplyUpdateResult:MD,EditorZoom:xd,createMultiFileDiffEditor:agt,EditorType:gT,EditorOptions:da}}function Pgt(n,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function bM(n,e){return typeof n=="boolean"?n:e}function Fhe(n,e){return typeof n=="string"?n:e}function Ogt(n){const e={};for(const t of n)e[t]=!0;return e}function Bhe(n,e=!1){e&&(n=n.map(function(i){return i.toLowerCase()}));const t=Ogt(n);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function LG(n,e,t){e=e.replace(/@@/g,"");let i=0,s;do s=!1,e=e.replace(/@(\w+)/g,function(o,a){s=!0;let l="";if(typeof n[a]=="string")l=n[a];else if(n[a]&&n[a]instanceof RegExp)l=n[a].source;else throw n[a]===void 0?Nn(n,"language definition does not contain attribute '"+a+"', used at: "+e):Nn(n,"attribute reference '"+a+"' must be a string, used at: "+e);return Qb(l)?"":"(?:"+l+")"}),i++;while(s&&i<5);e=e.replace(/\x01/g,"@");const r=(n.ignoreCase?"i":"")+(n.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let a=null,l=null;return c=>(l&&a===c||(a=c,l=new RegExp(Mht(n,e,c),r)),l)}return new RegExp(e,r)}function Fgt(n,e,t,i){if(i<0)return n;if(i<e.length)return e[i];if(i>=100){i=i-100;const s=t.split(".");if(s.unshift(t),i<s.length)return s[i]}return null}function Bgt(n,e,t,i){let s=-1,r=t,o=t.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);o&&(o[3]&&(s=parseInt(o[3]),o[2]&&(s=s+100)),r=o[4]);let a="~",l=r;!r||r.length===0?(a="!=",l=""):/^\w*$/.test(l)?a="==":(o=r.match(/^(@|!@|~|!~|==|!=)(.*)$/),o&&(a=o[1],l=o[2]));let c;if((a==="~"||a==="!~")&&/^(\w|\|)*$/.test(l)){const d=Bhe(l.split("|"),n.ignoreCase);c=function(h){return a==="~"?d(h):!d(h)}}else if(a==="@"||a==="!@"){const d=n[l];if(!d)throw Nn(n,"the @ match target '"+l+"' is not defined, in rule: "+e);if(!Pgt(function(u){return typeof u=="string"},d))throw Nn(n,"the @ match target '"+l+"' must be an array of strings, in rule: "+e);const h=Bhe(d,n.ignoreCase);c=function(u){return a==="@"?h(u):!h(u)}}else if(a==="~"||a==="!~")if(l.indexOf("$")<0){const d=LG(n,"^"+l+"$",!1);c=function(h){return a==="~"?d.test(h):!d.test(h)}}else c=function(d,h,u,f){return LG(n,"^"+v_(n,l,h,u,f)+"$",!1).test(d)};else if(l.indexOf("$")<0){const d=$p(n,l);c=function(h){return a==="=="?h===d:h!==d}}else{const d=$p(n,l);c=function(h,u,f,g,m){const b=v_(n,d,u,f,g);return a==="=="?h===b:h!==b}}return s===-1?{name:t,value:i,test:function(d,h,u,f){return c(d,d,h,u,f)}}:{name:t,value:i,test:function(d,h,u,f){const g=Fgt(d,h,u,s);return c(g||"",d,h,u,f)}}}function DG(n,e,t){if(t){if(typeof t=="string")return t;if(t.token||t.token===""){if(typeof t.token!="string")throw Nn(n,"a 'token' attribute must be of type string, in rule: "+e);{const i={token:t.token};if(t.token.indexOf("$")>=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw Nn(n,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw Nn(n,"the next state must be a string value in rule: "+e);{let s=t.next;if(!/^(@pop|@push|@popall)$/.test(s)&&(s[0]==="@"&&(s=s.substr(1)),s.indexOf("$")<0&&!Aht(n,v_(n,s,"",[],""))))throw Nn(n,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=s}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,n.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let s=0,r=t.length;s<r;s++)i[s]=DG(n,e,t[s]);return{group:i}}else if(t.cases){const i=[];let s=!1;for(const o in t.cases)if(t.cases.hasOwnProperty(o)){const a=DG(n,e,t.cases[o]);o==="@default"||o==="@"||o===""?i.push({test:void 0,value:a,name:o}):o==="@eos"?i.push({test:function(l,c,d,h){return h},value:a,name:o}):i.push(Bgt(n,e,o,a)),s||(s=!xr(a)&&(a.hasEmbeddedEndInCases||["@pop","@popall"].includes(a.nextEmbedded||"")))}const r=n.defaultToken;return{hasEmbeddedEndInCases:s,test:function(o,a,l,c){for(const d of i)if(!d.test||d.test(o,a,l,c))return d.value;return r}}}else throw Nn(n,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+e)}else return{token:""}}class Wgt{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let i;if(typeof t=="string")i=t;else if(t instanceof RegExp)i=t.source;else throw Nn(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=i.length>0&&i[0]==="^",this.name=this.name+": "+i,this.regex=LG(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=DG(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function Zwe(n,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={languageId:n,includeLF:bM(e.includeLF,!1),noThrow:!1,maxStack:100,start:typeof e.start=="string"?e.start:null,ignoreCase:bM(e.ignoreCase,!1),unicode:bM(e.unicode,!1),tokenPostfix:Fhe(e.tokenPostfix,"."+n),defaultToken:Fhe(e.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},i=e;i.languageId=n,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function s(o,a,l){for(const c of l){let d=c.include;if(d){if(typeof d!="string")throw Nn(t,"an 'include' attribute must be a string at: "+o);if(d[0]==="@"&&(d=d.substr(1)),!e.tokenizer[d])throw Nn(t,"include target '"+d+"' is not defined at: "+o);s(o+"."+d,a,e.tokenizer[d])}else{const h=new Wgt(o);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(h.setRegex(i,c[0]),c.length>=3)if(typeof c[1]=="string")h.setAction(i,{token:c[1],next:c[2]});else if(typeof c[1]=="object"){const u=c[1];u.next=c[2],h.setAction(i,u)}else throw Nn(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+o);else h.setAction(i,c[1]);else{if(!c.regex)throw Nn(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+o);c.name&&typeof c.name=="string"&&(h.name=c.name),c.matchOnlyAtStart&&(h.matchOnlyAtLineStart=bM(c.matchOnlyAtLineStart,!1)),h.setRegex(i,c.regex),h.setAction(i,c.action)}a.push(h)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw Nn(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const o in e.tokenizer)if(e.tokenizer.hasOwnProperty(o)){t.start||(t.start=o);const a=e.tokenizer[o];t.tokenizer[o]=new Array,s("tokenizer."+o,t.tokenizer[o],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw Nn(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const r=[];for(const o of e.brackets){let a=o;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw Nn(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+`
|
|
1549
|
-
hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:$p(t,a.open),close:$p(t,a.close)});else throw Nn(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}function Hgt(n){mx.registerLanguage(n)}function Vgt(){let n=[];return n=n.concat(mx.getLanguages()),n}function zgt(n){return Rt.get(us).languageIdCodec.encodeLanguageId(n)}function jgt(n,e){return Rt.withServices(()=>{const i=Rt.get(us).onDidRequestRichLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function Ugt(n,e){return Rt.withServices(()=>{const i=Rt.get(us).onDidRequestBasicLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function $gt(n,e){if(!Rt.get(us).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return Rt.get(Kn).register(n,e,100)}class qgt{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return B2.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const s=this._actual.tokenizeEncoded(e,i);return new KF(s.tokens,s.endState)}}class B2{constructor(e,t,i,s){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let s=0;for(let r=0,o=e.length;r<o;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<s&&(l=s),i[r]=new CI(l,a.scopes,t),s=l}return i}static adaptTokenize(e,t,i,s){const r=t.tokenize(i,s),o=B2._toClassicTokens(r.tokens,e);let a;return r.endState.equals(s)?a=s:a=r.endState,new hX(o,a)}tokenize(e,t,i){return B2.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let o=0,a=0;for(let c=0,d=t.length;c<d;c++){const h=t[c],u=s.match(i,h.scopes)|1024;if(o>0&&r[o-1]===u)continue;let f=h.startIndex;c===0?f=0:f<a&&(f=a),r[o++]=f,r[o++]=u,a=f}const l=new Uint32Array(o);for(let c=0;c<o;c++)l[c]=r[c];return l}tokenizeEncoded(e,t,i){const s=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let o;return s.endState.equals(i)?o=i:o=s.endState,new KF(r,o)}}function Kgt(n){return typeof n.getInitialState=="function"}function Ggt(n){return"tokenizeEncoded"in n}function Xwe(n){return n&&typeof n.then=="function"}function Ygt(n){const e=Rt.get(qc);if(n){const t=[null];for(let i=1,s=n.length;i<s;i++)t[i]=ue.fromHex(n[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function Qwe(n,e){return Ggt(e)?new qgt(n,e):new B2(n,e,Rt.get(us),Rt.get(qc))}function jJ(n,e){const t=new UWe(async()=>{const i=await Promise.resolve(e.create());return i?Kgt(i)?Qwe(n,i):new R2(Rt.get(us),Rt.get(qc),n,Zwe(n,i),Rt.get(Bt)):null});return as.registerFactory(n,t)}function Zgt(n,e){if(!Rt.get(us).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return Xwe(e)?jJ(n,{create:()=>e}):as.register(n,Qwe(n,e))}function Xgt(n,e){const t=i=>new R2(Rt.get(us),Rt.get(qc),n,Zwe(n,i),Rt.get(Bt));return Xwe(e)?jJ(n,{create:()=>e}):as.register(n,t(e))}function Qgt(n,e){return Rt.get(Xe).referenceProvider.register(n,e)}function Jgt(n,e){return Rt.get(Xe).renameProvider.register(n,e)}function ept(n,e){return Rt.get(Xe).newSymbolNamesProvider.register(n,e)}function tpt(n,e){return Rt.get(Xe).signatureHelpProvider.register(n,e)}function ipt(n,e){return Rt.get(Xe).hoverProvider.register(n,{provideHover:async(i,s,r,o)=>{const a=i.getWordAtPosition(s);return Promise.resolve(e.provideHover(i,s,r,o)).then(l=>{if(l)return!l.range&&a&&(l.range=new O(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new O(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function npt(n,e){return Rt.get(Xe).documentSymbolProvider.register(n,e)}function spt(n,e){return Rt.get(Xe).documentHighlightProvider.register(n,e)}function rpt(n,e){return Rt.get(Xe).linkedEditingRangeProvider.register(n,e)}function opt(n,e){return Rt.get(Xe).definitionProvider.register(n,e)}function apt(n,e){return Rt.get(Xe).implementationProvider.register(n,e)}function lpt(n,e){return Rt.get(Xe).typeDefinitionProvider.register(n,e)}function cpt(n,e){return Rt.get(Xe).codeLensProvider.register(n,e)}function dpt(n,e,t){return Rt.get(Xe).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(s,r,o,a)=>{const c=Rt.get(pg).read({resource:s.uri}).filter(d=>O.areIntersectingOrTouching(d,r));return e.provideCodeActions(s,r,{markers:c,only:o.only,trigger:o.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function hpt(n,e){return Rt.get(Xe).documentFormattingEditProvider.register(n,e)}function upt(n,e){return Rt.get(Xe).documentRangeFormattingEditProvider.register(n,e)}function fpt(n,e){return Rt.get(Xe).onTypeFormattingEditProvider.register(n,e)}function gpt(n,e){return Rt.get(Xe).linkProvider.register(n,e)}function ppt(n,e){return Rt.get(Xe).completionProvider.register(n,e)}function mpt(n,e){return Rt.get(Xe).colorProvider.register(n,e)}function _pt(n,e){return Rt.get(Xe).foldingRangeProvider.register(n,e)}function vpt(n,e){return Rt.get(Xe).declarationProvider.register(n,e)}function bpt(n,e){return Rt.get(Xe).selectionRangeProvider.register(n,e)}function ypt(n,e){return Rt.get(Xe).documentSemanticTokensProvider.register(n,e)}function wpt(n,e){return Rt.get(Xe).documentRangeSemanticTokensProvider.register(n,e)}function Cpt(n,e){return Rt.get(Xe).inlineCompletionsProvider.register(n,e)}function Spt(n,e){return Rt.get(Xe).inlayHintsProvider.register(n,e)}function xpt(){return{register:Hgt,getLanguages:Vgt,onLanguage:jgt,onLanguageEncountered:Ugt,getEncodedLanguageId:zgt,setLanguageConfiguration:$gt,setColorMap:Ygt,registerTokensProviderFactory:jJ,setTokensProvider:Zgt,setMonarchTokensProvider:Xgt,registerReferenceProvider:Qgt,registerRenameProvider:Jgt,registerNewSymbolNameProvider:ept,registerCompletionItemProvider:ppt,registerSignatureHelpProvider:tpt,registerHoverProvider:ipt,registerDocumentSymbolProvider:npt,registerDocumentHighlightProvider:spt,registerLinkedEditingRangeProvider:rpt,registerDefinitionProvider:opt,registerImplementationProvider:apt,registerTypeDefinitionProvider:lpt,registerCodeLensProvider:cpt,registerCodeActionProvider:dpt,registerDocumentFormattingEditProvider:hpt,registerDocumentRangeFormattingEditProvider:upt,registerOnTypeFormattingEditProvider:fpt,registerLinkProvider:gpt,registerColorProvider:mpt,registerFoldingRangeProvider:_pt,registerDeclarationProvider:vpt,registerSelectionRangeProvider:bpt,registerDocumentSemanticTokensProvider:ypt,registerDocumentRangeSemanticTokensProvider:wpt,registerInlineCompletionsProvider:Cpt,registerInlayHintsProvider:Spt,DocumentHighlightKind:Tq,CompletionItemKind:xq,CompletionItemTag:kq,CompletionItemInsertTextRule:Sq,SymbolKind:lK,SymbolTag:cK,IndentAction:Fq,CompletionTriggerKind:Lq,SignatureHelpTriggerKind:aK,InlayHintKind:Wq,InlineCompletionTriggerKind:zq,CodeActionTriggerType:Cq,NewSymbolNameTag:Yq,NewSymbolNameTriggerKind:Zq,PartialAcceptTriggerKind:Jq,HoverVerbosityAction:Oq,InlineCompletionEndOfLifeReasonKind:Hq,InlineCompletionHintStyle:Vq,FoldingRangeKind:$0,SelectedSuggestionInfo:R_e,EditDeltaInfo:AI}}da.wrappingIndent.defaultValue=0;da.glyphMargin.defaultValue=!1;da.autoIndent.defaultValue=3;da.overviewRulerLanes.defaultValue=2;c2.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const $a=kwe();$a.editor=Agt();$a.languages=xpt();const Jwe=$a.CancellationTokenSource,Av=$a.Emitter,eCe=$a.KeyCode,tCe=$a.KeyMod,wm=$a.Position,kk=$a.Range,iCe=$a.Selection,nCe=$a.SelectionDirection,xh=$a.MarkerSeverity,i5=$a.MarkerTag,V6=$a.Uri,sCe=$a.Token,Yf=$a.editor,Ze=$a.languages,LW=QY(),VS=globalThis;(LW!=null&&LW.globalAPI||typeof VS.define=="function"&&VS.define.amd)&&(VS.monaco=$a);typeof VS.require<"u"&&typeof VS.require.config=="function"&&VS.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const kpt=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:Jwe,Emitter:Av,KeyCode:eCe,KeyMod:tCe,MarkerSeverity:xh,MarkerTag:i5,Position:wm,Range:kk,Selection:iCe,SelectionDirection:nCe,Token:sCe,Uri:V6,editor:Yf,languages:Ze},Symbol.toStringTag,{value:"Module"}));let UJ=class{constructor(e,t,i){this._onDidChange=new Av,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const $J={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},qJ={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},rCe=new UJ("css",$J,qJ),oCe=new UJ("scss",$J,qJ),aCe=new UJ("less",$J,qJ);function KJ(){return ut(()=>import("./cssMode-BVwUrHkK.js"),__vite__mapDeps([0,1]))}Ze.onLanguage("less",()=>{KJ().then(n=>n.setupMode(aCe))});Ze.onLanguage("scss",()=>{KJ().then(n=>n.setupMode(oCe))});Ze.onLanguage("css",()=>{KJ().then(n=>n.setupMode(rCe))});const lCe=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:rCe,lessDefaults:aCe,scssDefaults:oCe},Symbol.toStringTag,{value:"Module"}));let Lpt=class{constructor(e,t,i){this._onDidChange=new Av,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const Dpt={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},z6={format:Dpt,suggest:{},data:{useDefaultDataProvider:!0}};function j6(n){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:n===CE,documentFormattingEdits:n===CE,documentRangeFormattingEdits:n===CE}}const CE="html",Whe="handlebars",Hhe="razor",cCe=U6(CE,z6,j6(CE)),Ept=cCe.defaults,dCe=U6(Whe,z6,j6(Whe)),Ipt=dCe.defaults,hCe=U6(Hhe,z6,j6(Hhe)),Tpt=hCe.defaults;function Rpt(){return ut(()=>import("./htmlMode-BicOZthH.js"),__vite__mapDeps([2,1]))}function U6(n,e=z6,t=j6(n)){const i=new Lpt(n,e,t);let s;const r=Ze.onLanguage(n,async()=>{s=(await Rpt()).setupMode(i)});return{defaults:i,dispose(){r.dispose(),s==null||s.dispose(),s=void 0}}}const uCe=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:Ipt,handlebarLanguageService:dCe,htmlDefaults:Ept,htmlLanguageService:cCe,razorDefaults:Tpt,razorLanguageService:hCe,registerHTMLLanguageService:U6},Symbol.toStringTag,{value:"Module"}));let Npt=class{constructor(e,t,i){this._onDidChange=new Av,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const Mpt={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},Apt={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},fCe=new Npt("json",Mpt,Apt),Ppt=()=>gCe().then(n=>n.getWorker());function gCe(){return ut(()=>import("./jsonMode-BWGm6m6i.js"),__vite__mapDeps([3,1]))}Ze.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});Ze.onLanguage("json",()=>{gCe().then(n=>n.setupMode(fCe))});const pCe=Object.freeze(Object.defineProperty({__proto__:null,getWorker:Ppt,jsonDefaults:fCe},Symbol.toStringTag,{value:"Module"})),Opt="5.9.3";var mCe=(n=>(n[n.None=0]="None",n[n.CommonJS=1]="CommonJS",n[n.AMD=2]="AMD",n[n.UMD=3]="UMD",n[n.System=4]="System",n[n.ES2015=5]="ES2015",n[n.ESNext=99]="ESNext",n))(mCe||{}),_Ce=(n=>(n[n.None=0]="None",n[n.Preserve=1]="Preserve",n[n.React=2]="React",n[n.ReactNative=3]="ReactNative",n[n.ReactJSX=4]="ReactJSX",n[n.ReactJSXDev=5]="ReactJSXDev",n))(_Ce||{}),vCe=(n=>(n[n.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",n[n.LineFeed=1]="LineFeed",n))(vCe||{}),bCe=(n=>(n[n.ES3=0]="ES3",n[n.ES5=1]="ES5",n[n.ES2015=2]="ES2015",n[n.ES2016=3]="ES2016",n[n.ES2017=4]="ES2017",n[n.ES2018=5]="ES2018",n[n.ES2019=6]="ES2019",n[n.ES2020=7]="ES2020",n[n.ESNext=99]="ESNext",n[n.JSON=100]="JSON",n[n.Latest=99]="Latest",n))(bCe||{}),yCe=(n=>(n[n.Classic=1]="Classic",n[n.NodeJs=2]="NodeJs",n))(yCe||{});class wCe{constructor(e,t,i,s,r){this._onDidChange=new Av,this._onDidExtraLibsChange=new Av,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(s),this.setModeConfiguration(r),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[i]&&(s=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(s=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let r=this._extraLibs[i];r&&r.version===s&&(delete this._extraLibs[i],this._removedExtraLibs[i]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,s=t.content;let r=1;this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:s,version:r}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const Fpt=Opt,CCe={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},SCe=new wCe({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},CCe),xCe=new wCe({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},CCe),Bpt=()=>$6().then(n=>n.getTypeScriptWorker()),Wpt=()=>$6().then(n=>n.getJavaScriptWorker());function $6(){return ut(()=>import("./tsMode-DSshzMnQ.js"),[])}Ze.onLanguage("typescript",()=>$6().then(n=>n.setupTypeScript(SCe)));Ze.onLanguage("javascript",()=>$6().then(n=>n.setupJavaScript(xCe)));const kCe=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:_Ce,ModuleKind:mCe,ModuleResolutionKind:yCe,NewLineKind:vCe,ScriptTarget:bCe,getJavaScriptWorker:Wpt,getTypeScriptWorker:Bpt,javascriptDefaults:xCe,typescriptDefaults:SCe,typescriptVersion:Fpt},Symbol.toStringTag,{value:"Module"})),LCe={},DW={};class GJ{static getOrCreate(e){return DW[e]||(DW[e]=new GJ(e)),DW[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,LCe[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function yt(n){const e=n.id;LCe[e]=n,Ze.register(n);const t=GJ.getOrCreate(e);Ze.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),Ze.onLanguageEncountered(e,async()=>{const i=await t.load();Ze.setLanguageConfiguration(e,i.conf)})}yt({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>ut(()=>import("./abap-DLDM7-KI.js"),[])});yt({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>ut(()=>import("./apex-DNDY2TF8.js"),[])});yt({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>ut(()=>import("./azcli-Y6nb8tq_.js"),[])});yt({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>ut(()=>import("./bat-BwHxbl9M.js"),[])});yt({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>ut(()=>import("./bicep-CFznDFnq.js"),[])});yt({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>ut(()=>import("./cameligo-Bf6VGUru.js"),[])});yt({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>ut(()=>import("./clojure-Dnu-v4kV.js"),[])});yt({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>ut(()=>import("./coffee-Bd8akH9Z.js"),[])});yt({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>ut(()=>import("./cpp-BbWJElDN.js"),[])});yt({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>ut(()=>import("./cpp-BbWJElDN.js"),[])});yt({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>ut(()=>import("./csharp-Co3qMtFm.js"),[])});yt({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>ut(()=>import("./csp-D-4FJmMZ.js"),[])});yt({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>ut(()=>import("./css-DdJfP1eB.js"),[])});yt({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>ut(()=>import("./cypher-cTPe9QuQ.js"),[])});yt({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>ut(()=>import("./dart-BOtBlQCF.js"),[])});yt({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>ut(()=>import("./dockerfile-BG73LgW2.js"),[])});yt({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>ut(()=>import("./ecl-BEgZUVRK.js"),[])});yt({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>ut(()=>import("./elixir-BkW5O-1t.js"),[])});yt({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>ut(()=>import("./flow9-BeJ5waoc.js"),[])});yt({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>ut(()=>import("./fsharp-PahG7c26.js"),[])});yt({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>ut(()=>import("./freemarker2-xxtKOP4I.js"),[]).then(n=>n.TagAutoInterpolationDollar)});yt({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>ut(()=>import("./freemarker2-xxtKOP4I.js"),[]).then(n=>n.TagAngleInterpolationDollar)});yt({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>ut(()=>import("./freemarker2-xxtKOP4I.js"),[]).then(n=>n.TagBracketInterpolationDollar)});yt({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>ut(()=>import("./freemarker2-xxtKOP4I.js"),[]).then(n=>n.TagAngleInterpolationBracket)});yt({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>ut(()=>import("./freemarker2-xxtKOP4I.js"),[]).then(n=>n.TagBracketInterpolationBracket)});yt({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>ut(()=>import("./freemarker2-xxtKOP4I.js"),[]).then(n=>n.TagAutoInterpolationDollar)});yt({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>ut(()=>import("./freemarker2-xxtKOP4I.js"),[]).then(n=>n.TagAutoInterpolationBracket)});yt({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>ut(()=>import("./go-acbASCJo.js"),[])});yt({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>ut(()=>import("./graphql-BxJiqAUM.js"),[])});yt({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>ut(()=>import("./handlebars-DvpxaE6b.js"),[])});yt({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>ut(()=>import("./hcl-DtV1sZF8.js"),[])});yt({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>ut(()=>import("./html-B_f4H1Jb.js"),[])});yt({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>ut(()=>import("./ini-Kd9XrMLS.js"),[])});yt({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>ut(()=>import("./java-CXBNlu9o.js"),[])});yt({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>ut(()=>import("./javascript-BE3CghW_.js"),__vite__mapDeps([4,5]))});yt({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>ut(()=>import("./julia-cl7-CwDS.js"),[])});yt({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>ut(()=>import("./kotlin-s7OhZKlX.js"),[])});yt({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>ut(()=>import("./less-9HpZscsL.js"),[])});yt({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>ut(()=>import("./lexon-OrD6JF1K.js"),[])});yt({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>ut(()=>import("./lua-Cyyb5UIc.js"),[])});yt({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>ut(()=>import("./liquid-C5EBcTGp.js"),[])});yt({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>ut(()=>import("./m3-B8OfTtLu.js"),[])});yt({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>ut(()=>import("./markdown-BFxVWTOG.js"),[])});yt({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>ut(()=>import("./mdx-TVCS8lEV.js"),[])});yt({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>ut(()=>import("./mips-CiqrrVzr.js"),[])});yt({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>ut(()=>import("./msdax-DmeGPVcC.js"),[])});yt({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>ut(()=>import("./mysql-C_tMU-Nz.js"),[])});yt({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>ut(()=>import("./objective-c-BDtDVThU.js"),[])});yt({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>ut(()=>import("./pascal-vHIfCaH5.js"),[])});yt({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>ut(()=>import("./pascaligo-DtZ0uQbO.js"),[])});yt({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>ut(()=>import("./perl-Ub6l9XKa.js"),[])});yt({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>ut(()=>import("./pgsql-BlNEE0v7.js"),[])});yt({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>ut(()=>import("./php-BBUBE1dy.js"),[])});yt({id:"pla",extensions:[".pla"],loader:()=>ut(()=>import("./pla-DSh2-awV.js"),[])});yt({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>ut(()=>import("./postiats-CocnycG-.js"),[])});yt({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>ut(()=>import("./powerquery-tScXyioY.js"),[])});yt({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>ut(()=>import("./powershell-COWaemsV.js"),[])});yt({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>ut(()=>import("./protobuf-Brw8urJB.js"),[])});yt({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>ut(()=>import("./pug-8SOpv6rk.js"),[])});yt({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>ut(()=>import("./python-CIAgLh8R.js"),[])});yt({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>ut(()=>import("./qsharp-Bw9ernYp.js"),[])});yt({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>ut(()=>import("./r-j7ic8hl3.js"),[])});yt({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>ut(()=>import("./razor-DHsAS_YZ.js"),[])});yt({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>ut(()=>import("./redis-Bu5POkcn.js"),[])});yt({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>ut(()=>import("./redshift-Bs9aos_-.js"),[])});yt({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>ut(()=>import("./restructuredtext-CqXO7rUv.js"),[])});yt({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>ut(()=>import("./ruby-zBfavPgS.js"),[])});yt({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>ut(()=>import("./rust-BzKRNQWT.js"),[])});yt({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>ut(()=>import("./sb-BBc9UKZt.js"),[])});yt({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>ut(()=>import("./scala-D9hQfWCl.js"),[])});yt({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>ut(()=>import("./scheme-BPhDTwHR.js"),[])});yt({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>ut(()=>import("./scss-CBJaRo0y.js"),[])});yt({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>ut(()=>import("./shell-DiJ1NA_G.js"),[])});yt({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>ut(()=>import("./solidity-Db0IVjzk.js"),[])});yt({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>ut(()=>import("./sophia-CnS9iZB_.js"),[])});yt({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>ut(()=>import("./sparql-CJmd_6j2.js"),[])});yt({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>ut(()=>import("./sql-ClhHkBeG.js"),[])});yt({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>ut(()=>import("./st-CHwy0fLd.js"),[])});yt({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>ut(()=>import("./swift-Bqt4WxQ4.js"),[])});yt({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>ut(()=>import("./systemverilog-Bs9z6M-B.js"),[])});yt({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>ut(()=>import("./systemverilog-Bs9z6M-B.js"),[])});yt({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>ut(()=>import("./tcl-Dm6ycUr_.js"),[])});yt({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>ut(()=>import("./twig-Csy3S7wG.js"),[])});yt({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>ut(()=>import("./typescript-BecVVNsH.js"),[])});yt({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>ut(()=>import("./typespec-Btyra-wh.js"),[])});yt({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>ut(()=>import("./vb-Db0cS2oM.js"),[])});yt({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>ut(()=>import("./wgsl-BTesnYfV.js"),[])});yt({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>ut(()=>import("./xml-BBvQJZFx.js"),[])});yt({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>ut(()=>import("./yaml-D7G_0_Bl.js"),[])});var Hpt=Object.defineProperty,Vpt=(n,e,t)=>e in n?Hpt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,gt=(n,e,t)=>Vpt(n,typeof e!="symbol"?e+"":e,t),yM,Vhe,wM,EW,CM;function zpt(n){return n.method!==void 0}var zhe;(function(n){function e(t){return t}n.create=e})(zhe||(zhe={}));var Ch;(function(n){n.parseError=-32700,n.invalidRequest=-32600,n.methodNotFound=-32601,n.invalidParams=-32602,n.internalError=-32603;function e(r){return-32099<=r&&r<=-32e3}n.isServerError=e;function t(r){if(!e(r))throw new Error("Invalid range for a server error.");return r}n.serverError=t,n.unexpectedServerError=-32e3;function i(r){return!0}n.isApplicationError=i;function s(r){return r}n.applicationError=s,n.genericApplicationError=-320100})(Ch||(Ch={}));var YJ=class{constructor(){gt(this,"listeners",new Set),gt(this,"event",n=>(this.listeners.add(n),{dispose:()=>{this.listeners.delete(n)}}))}fire(n){this.listeners.forEach(e=>e(n))}},jpt=class{constructor(n){gt(this,"_value"),gt(this,"eventEmitter"),this._value=n,this.eventEmitter=new YJ}get value(){return this._value}set value(n){this._value!==n&&(this._value=n,this.eventEmitter.fire(n))}get onChange(){return this.eventEmitter.event}};function Upt(n,e){const t=setTimeout(e,n);return{dispose:()=>clearTimeout(t)}}function IW(n,e,t){return n instanceof Set?(n.add(e),{dispose:()=>n.delete(e)}):(n.set(e,t),{dispose:()=>n.delete(e)})}var $pt=class{constructor(){gt(this,"_state","none"),gt(this,"promise"),gt(this,"resolve",()=>{}),gt(this,"reject",()=>{}),this.promise=new Promise((n,e)=>{this.resolve=n,this.reject=e})}get state(){return this._state}},DCe=(yM=class{constructor(){gt(this,"_unprocessedMessages",[]),gt(this,"_messageListener"),gt(this,"id",yM.id++),gt(this,"_state",new jpt({state:"open"})),gt(this,"state",this._state)}setListener(n){if(this._messageListener=n,!!n)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(n){return this._sendImpl(n)}_dispatchReceivedMessage(n){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(n):this._unprocessedMessages.push(n)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(n){return new qpt(this,n??new Kpt)}},gt(yM,"id",0),yM),qpt=class{constructor(n,e){gt(this,"baseStream"),gt(this,"logger"),this.baseStream=n,this.logger=e}get state(){return this.baseStream.state}setListener(n){if(n===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),n(e)})}send(n){return this.logger.log(this.baseStream,"outgoing",n),this.baseStream.send(n)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},Kpt=class{log(n,e,t){console.log(`${e==="incoming"?"<-":"->"} [${n.toString()}] ${JSON.stringify(t)}`)}},Gpt=class ECe{constructor(e){gt(this,"connect"),this.connect=e}mapContext(e){return new ECe(t=>this.connect(t?Ypt(t,e):void 0))}};function Ypt(n,e){return{handleNotification:(t,i)=>n.handleNotification(t,e(i)),handleRequest:(t,i,s)=>n.handleRequest(t,i,e(s))}}var Zpt=class ICe{constructor(e,t,i){gt(this,"_stream"),gt(this,"_listener"),gt(this,"_logger"),gt(this,"_unprocessedResponses",new Map),gt(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(s=>{zpt(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let i=!1;return new Gpt(s=>{if(i)throw new Error(`A channel to the stream ${e} was already constructed!`);return i=!0,new ICe(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${s}`,message:e,exception:s}),t={error:{code:Ch.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:Ch.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let i;"result"in t?i={jsonrpc:"2.0",id:e.id,result:t.result}:i={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){const t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(s.id),new Promise((r,o)=>{const a=""+s.id;this._unprocessedResponses.set(a,l=>{"result"in l?r({result:l.result}):(l.error||o(new Error("Response had neither 'result' nor 'error' field set.")),r({error:l.error}))}),this._stream.send(s).then(void 0,l=>{this._unprocessedResponses.delete(a),o(l)})})}sendNotification(e,t){const i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}},zS;(function(n){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}n.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}n.sEmptyObject=t;function i(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}n.sVoidFromNull=i})(zS||(zS={}));const TCe=Symbol("OptionalMethodNotFound");var RCe=class{contextualize(n){return new Xpt(this,n)}},Xpt=class extends RCe{constructor(n,e){super(),gt(this,"underylingTypedChannel"),gt(this,"converters"),this.underylingTypedChannel=n,this.converters=e}async request(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(n,e,i)}async notify(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(n,e,i)}registerNotificationHandler(n,e){return this.underylingTypedChannel.registerNotificationHandler(n,async(t,i)=>await e(t,await this.converters.getNewContext(i)))}registerRequestHandler(n,e){return this.underylingTypedChannel.registerRequestHandler(n,async(t,i,s)=>await e(t,i,await this.converters.getNewContext(s)))}},EG=class NCe extends RCe{constructor(e,t={}){super(),gt(this,"channelCtor"),gt(this,"_requestSender"),gt(this,"_handler",new Map),gt(this,"_unknownNotificationHandler",new Set),gt(this,"_timeout"),gt(this,"sendExceptionDetails",!1),gt(this,"_logger"),gt(this,"listeningDeferred",new $pt),gt(this,"onListening",this.listeningDeferred.promise),gt(this,"_requestDidErrorEventEmitter",new YJ),gt(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=Upt(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new NCe(Zpt.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:Ch.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(s.kind!="request"){const o=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e}}),{error:{code:Ch.invalidRequest,message:o,data:{method:e.method}}}}const r=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(r.hasErrors){const o=`Got invalid params: ${r.errorMessage}`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e,errorMessage:r.errorMessage}}),{error:{code:Ch.invalidParams,message:o,data:{errors:r.errorMessage}}}}else{const o=r.value;let a;try{const l=await s.handler(o,t,i);if("error"in l||"errorMessage"in l){const c=l.error?s.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||Ch.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:s.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof Uhe?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:Ch.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const i=this._handler.get(e.method);if(!i){for(const o of this._unknownNotificationHandler)o(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(i.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const s=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${s}`,data:{requestObject:e,errorMessage:s.errorMessage}});return}const r=s.value;for(const o of i.handlers)try{o(r,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return IW(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return IW(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(!i)i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);else{if(i.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return IW(i.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);jhe(s);const r=await this._requestSender.sendRequest({method:e.method,params:s},i);if("error"in r){if(e.isOptional&&r.error.code===Ch.methodNotFound)return TCe;let o;if(r.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(r.error.data);if(l.hasErrors)throw new Error(l.errorMessage);o=l.value}else o=void 0;const a=new Uhe(r.error.message,o,r.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const o=e.resultSerializer.deserializeFromJson(r.result);if(o.hasErrors)throw new Error("Could not deserialize response: "+o.errorMessage+`
|
|
1549
|
+
hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:$p(t,a.open),close:$p(t,a.close)});else throw Nn(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}function Hgt(n){mx.registerLanguage(n)}function Vgt(){let n=[];return n=n.concat(mx.getLanguages()),n}function zgt(n){return Rt.get(us).languageIdCodec.encodeLanguageId(n)}function jgt(n,e){return Rt.withServices(()=>{const i=Rt.get(us).onDidRequestRichLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function Ugt(n,e){return Rt.withServices(()=>{const i=Rt.get(us).onDidRequestBasicLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function $gt(n,e){if(!Rt.get(us).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return Rt.get(Kn).register(n,e,100)}class qgt{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return B2.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const s=this._actual.tokenizeEncoded(e,i);return new KF(s.tokens,s.endState)}}class B2{constructor(e,t,i,s){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let s=0;for(let r=0,o=e.length;r<o;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<s&&(l=s),i[r]=new CI(l,a.scopes,t),s=l}return i}static adaptTokenize(e,t,i,s){const r=t.tokenize(i,s),o=B2._toClassicTokens(r.tokens,e);let a;return r.endState.equals(s)?a=s:a=r.endState,new hX(o,a)}tokenize(e,t,i){return B2.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let o=0,a=0;for(let c=0,d=t.length;c<d;c++){const h=t[c],u=s.match(i,h.scopes)|1024;if(o>0&&r[o-1]===u)continue;let f=h.startIndex;c===0?f=0:f<a&&(f=a),r[o++]=f,r[o++]=u,a=f}const l=new Uint32Array(o);for(let c=0;c<o;c++)l[c]=r[c];return l}tokenizeEncoded(e,t,i){const s=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let o;return s.endState.equals(i)?o=i:o=s.endState,new KF(r,o)}}function Kgt(n){return typeof n.getInitialState=="function"}function Ggt(n){return"tokenizeEncoded"in n}function Xwe(n){return n&&typeof n.then=="function"}function Ygt(n){const e=Rt.get(qc);if(n){const t=[null];for(let i=1,s=n.length;i<s;i++)t[i]=ue.fromHex(n[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function Qwe(n,e){return Ggt(e)?new qgt(n,e):new B2(n,e,Rt.get(us),Rt.get(qc))}function jJ(n,e){const t=new UWe(async()=>{const i=await Promise.resolve(e.create());return i?Kgt(i)?Qwe(n,i):new R2(Rt.get(us),Rt.get(qc),n,Zwe(n,i),Rt.get(Bt)):null});return as.registerFactory(n,t)}function Zgt(n,e){if(!Rt.get(us).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return Xwe(e)?jJ(n,{create:()=>e}):as.register(n,Qwe(n,e))}function Xgt(n,e){const t=i=>new R2(Rt.get(us),Rt.get(qc),n,Zwe(n,i),Rt.get(Bt));return Xwe(e)?jJ(n,{create:()=>e}):as.register(n,t(e))}function Qgt(n,e){return Rt.get(Xe).referenceProvider.register(n,e)}function Jgt(n,e){return Rt.get(Xe).renameProvider.register(n,e)}function ept(n,e){return Rt.get(Xe).newSymbolNamesProvider.register(n,e)}function tpt(n,e){return Rt.get(Xe).signatureHelpProvider.register(n,e)}function ipt(n,e){return Rt.get(Xe).hoverProvider.register(n,{provideHover:async(i,s,r,o)=>{const a=i.getWordAtPosition(s);return Promise.resolve(e.provideHover(i,s,r,o)).then(l=>{if(l)return!l.range&&a&&(l.range=new O(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new O(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function npt(n,e){return Rt.get(Xe).documentSymbolProvider.register(n,e)}function spt(n,e){return Rt.get(Xe).documentHighlightProvider.register(n,e)}function rpt(n,e){return Rt.get(Xe).linkedEditingRangeProvider.register(n,e)}function opt(n,e){return Rt.get(Xe).definitionProvider.register(n,e)}function apt(n,e){return Rt.get(Xe).implementationProvider.register(n,e)}function lpt(n,e){return Rt.get(Xe).typeDefinitionProvider.register(n,e)}function cpt(n,e){return Rt.get(Xe).codeLensProvider.register(n,e)}function dpt(n,e,t){return Rt.get(Xe).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(s,r,o,a)=>{const c=Rt.get(pg).read({resource:s.uri}).filter(d=>O.areIntersectingOrTouching(d,r));return e.provideCodeActions(s,r,{markers:c,only:o.only,trigger:o.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function hpt(n,e){return Rt.get(Xe).documentFormattingEditProvider.register(n,e)}function upt(n,e){return Rt.get(Xe).documentRangeFormattingEditProvider.register(n,e)}function fpt(n,e){return Rt.get(Xe).onTypeFormattingEditProvider.register(n,e)}function gpt(n,e){return Rt.get(Xe).linkProvider.register(n,e)}function ppt(n,e){return Rt.get(Xe).completionProvider.register(n,e)}function mpt(n,e){return Rt.get(Xe).colorProvider.register(n,e)}function _pt(n,e){return Rt.get(Xe).foldingRangeProvider.register(n,e)}function vpt(n,e){return Rt.get(Xe).declarationProvider.register(n,e)}function bpt(n,e){return Rt.get(Xe).selectionRangeProvider.register(n,e)}function ypt(n,e){return Rt.get(Xe).documentSemanticTokensProvider.register(n,e)}function wpt(n,e){return Rt.get(Xe).documentRangeSemanticTokensProvider.register(n,e)}function Cpt(n,e){return Rt.get(Xe).inlineCompletionsProvider.register(n,e)}function Spt(n,e){return Rt.get(Xe).inlayHintsProvider.register(n,e)}function xpt(){return{register:Hgt,getLanguages:Vgt,onLanguage:jgt,onLanguageEncountered:Ugt,getEncodedLanguageId:zgt,setLanguageConfiguration:$gt,setColorMap:Ygt,registerTokensProviderFactory:jJ,setTokensProvider:Zgt,setMonarchTokensProvider:Xgt,registerReferenceProvider:Qgt,registerRenameProvider:Jgt,registerNewSymbolNameProvider:ept,registerCompletionItemProvider:ppt,registerSignatureHelpProvider:tpt,registerHoverProvider:ipt,registerDocumentSymbolProvider:npt,registerDocumentHighlightProvider:spt,registerLinkedEditingRangeProvider:rpt,registerDefinitionProvider:opt,registerImplementationProvider:apt,registerTypeDefinitionProvider:lpt,registerCodeLensProvider:cpt,registerCodeActionProvider:dpt,registerDocumentFormattingEditProvider:hpt,registerDocumentRangeFormattingEditProvider:upt,registerOnTypeFormattingEditProvider:fpt,registerLinkProvider:gpt,registerColorProvider:mpt,registerFoldingRangeProvider:_pt,registerDeclarationProvider:vpt,registerSelectionRangeProvider:bpt,registerDocumentSemanticTokensProvider:ypt,registerDocumentRangeSemanticTokensProvider:wpt,registerInlineCompletionsProvider:Cpt,registerInlayHintsProvider:Spt,DocumentHighlightKind:Tq,CompletionItemKind:xq,CompletionItemTag:kq,CompletionItemInsertTextRule:Sq,SymbolKind:lK,SymbolTag:cK,IndentAction:Fq,CompletionTriggerKind:Lq,SignatureHelpTriggerKind:aK,InlayHintKind:Wq,InlineCompletionTriggerKind:zq,CodeActionTriggerType:Cq,NewSymbolNameTag:Yq,NewSymbolNameTriggerKind:Zq,PartialAcceptTriggerKind:Jq,HoverVerbosityAction:Oq,InlineCompletionEndOfLifeReasonKind:Hq,InlineCompletionHintStyle:Vq,FoldingRangeKind:$0,SelectedSuggestionInfo:R_e,EditDeltaInfo:AI}}da.wrappingIndent.defaultValue=0;da.glyphMargin.defaultValue=!1;da.autoIndent.defaultValue=3;da.overviewRulerLanes.defaultValue=2;c2.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const $a=kwe();$a.editor=Agt();$a.languages=xpt();const Jwe=$a.CancellationTokenSource,Av=$a.Emitter,eCe=$a.KeyCode,tCe=$a.KeyMod,wm=$a.Position,kk=$a.Range,iCe=$a.Selection,nCe=$a.SelectionDirection,xh=$a.MarkerSeverity,i5=$a.MarkerTag,V6=$a.Uri,sCe=$a.Token,Yf=$a.editor,Ze=$a.languages,LW=QY(),VS=globalThis;(LW!=null&&LW.globalAPI||typeof VS.define=="function"&&VS.define.amd)&&(VS.monaco=$a);typeof VS.require<"u"&&typeof VS.require.config=="function"&&VS.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const kpt=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:Jwe,Emitter:Av,KeyCode:eCe,KeyMod:tCe,MarkerSeverity:xh,MarkerTag:i5,Position:wm,Range:kk,Selection:iCe,SelectionDirection:nCe,Token:sCe,Uri:V6,editor:Yf,languages:Ze},Symbol.toStringTag,{value:"Module"}));let UJ=class{constructor(e,t,i){this._onDidChange=new Av,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const $J={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},qJ={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},rCe=new UJ("css",$J,qJ),oCe=new UJ("scss",$J,qJ),aCe=new UJ("less",$J,qJ);function KJ(){return ut(()=>import("./cssMode-D7YcInzo.js"),__vite__mapDeps([0,1]))}Ze.onLanguage("less",()=>{KJ().then(n=>n.setupMode(aCe))});Ze.onLanguage("scss",()=>{KJ().then(n=>n.setupMode(oCe))});Ze.onLanguage("css",()=>{KJ().then(n=>n.setupMode(rCe))});const lCe=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:rCe,lessDefaults:aCe,scssDefaults:oCe},Symbol.toStringTag,{value:"Module"}));let Lpt=class{constructor(e,t,i){this._onDidChange=new Av,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const Dpt={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},z6={format:Dpt,suggest:{},data:{useDefaultDataProvider:!0}};function j6(n){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:n===CE,documentFormattingEdits:n===CE,documentRangeFormattingEdits:n===CE}}const CE="html",Whe="handlebars",Hhe="razor",cCe=U6(CE,z6,j6(CE)),Ept=cCe.defaults,dCe=U6(Whe,z6,j6(Whe)),Ipt=dCe.defaults,hCe=U6(Hhe,z6,j6(Hhe)),Tpt=hCe.defaults;function Rpt(){return ut(()=>import("./htmlMode-CElPHLt2.js"),__vite__mapDeps([2,1]))}function U6(n,e=z6,t=j6(n)){const i=new Lpt(n,e,t);let s;const r=Ze.onLanguage(n,async()=>{s=(await Rpt()).setupMode(i)});return{defaults:i,dispose(){r.dispose(),s==null||s.dispose(),s=void 0}}}const uCe=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:Ipt,handlebarLanguageService:dCe,htmlDefaults:Ept,htmlLanguageService:cCe,razorDefaults:Tpt,razorLanguageService:hCe,registerHTMLLanguageService:U6},Symbol.toStringTag,{value:"Module"}));let Npt=class{constructor(e,t,i){this._onDidChange=new Av,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const Mpt={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},Apt={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},fCe=new Npt("json",Mpt,Apt),Ppt=()=>gCe().then(n=>n.getWorker());function gCe(){return ut(()=>import("./jsonMode-BizbeRX9.js"),__vite__mapDeps([3,1]))}Ze.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});Ze.onLanguage("json",()=>{gCe().then(n=>n.setupMode(fCe))});const pCe=Object.freeze(Object.defineProperty({__proto__:null,getWorker:Ppt,jsonDefaults:fCe},Symbol.toStringTag,{value:"Module"})),Opt="5.9.3";var mCe=(n=>(n[n.None=0]="None",n[n.CommonJS=1]="CommonJS",n[n.AMD=2]="AMD",n[n.UMD=3]="UMD",n[n.System=4]="System",n[n.ES2015=5]="ES2015",n[n.ESNext=99]="ESNext",n))(mCe||{}),_Ce=(n=>(n[n.None=0]="None",n[n.Preserve=1]="Preserve",n[n.React=2]="React",n[n.ReactNative=3]="ReactNative",n[n.ReactJSX=4]="ReactJSX",n[n.ReactJSXDev=5]="ReactJSXDev",n))(_Ce||{}),vCe=(n=>(n[n.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",n[n.LineFeed=1]="LineFeed",n))(vCe||{}),bCe=(n=>(n[n.ES3=0]="ES3",n[n.ES5=1]="ES5",n[n.ES2015=2]="ES2015",n[n.ES2016=3]="ES2016",n[n.ES2017=4]="ES2017",n[n.ES2018=5]="ES2018",n[n.ES2019=6]="ES2019",n[n.ES2020=7]="ES2020",n[n.ESNext=99]="ESNext",n[n.JSON=100]="JSON",n[n.Latest=99]="Latest",n))(bCe||{}),yCe=(n=>(n[n.Classic=1]="Classic",n[n.NodeJs=2]="NodeJs",n))(yCe||{});class wCe{constructor(e,t,i,s,r){this._onDidChange=new Av,this._onDidExtraLibsChange=new Av,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(s),this.setModeConfiguration(r),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[i]&&(s=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(s=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let r=this._extraLibs[i];r&&r.version===s&&(delete this._extraLibs[i],this._removedExtraLibs[i]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,s=t.content;let r=1;this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:s,version:r}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const Fpt=Opt,CCe={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},SCe=new wCe({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},CCe),xCe=new wCe({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},CCe),Bpt=()=>$6().then(n=>n.getTypeScriptWorker()),Wpt=()=>$6().then(n=>n.getJavaScriptWorker());function $6(){return ut(()=>import("./tsMode-BmLhfcSD.js"),[])}Ze.onLanguage("typescript",()=>$6().then(n=>n.setupTypeScript(SCe)));Ze.onLanguage("javascript",()=>$6().then(n=>n.setupJavaScript(xCe)));const kCe=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:_Ce,ModuleKind:mCe,ModuleResolutionKind:yCe,NewLineKind:vCe,ScriptTarget:bCe,getJavaScriptWorker:Wpt,getTypeScriptWorker:Bpt,javascriptDefaults:xCe,typescriptDefaults:SCe,typescriptVersion:Fpt},Symbol.toStringTag,{value:"Module"})),LCe={},DW={};class GJ{static getOrCreate(e){return DW[e]||(DW[e]=new GJ(e)),DW[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,LCe[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function yt(n){const e=n.id;LCe[e]=n,Ze.register(n);const t=GJ.getOrCreate(e);Ze.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),Ze.onLanguageEncountered(e,async()=>{const i=await t.load();Ze.setLanguageConfiguration(e,i.conf)})}yt({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>ut(()=>import("./abap-DLDM7-KI.js"),[])});yt({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>ut(()=>import("./apex-DNDY2TF8.js"),[])});yt({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>ut(()=>import("./azcli-Y6nb8tq_.js"),[])});yt({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>ut(()=>import("./bat-BwHxbl9M.js"),[])});yt({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>ut(()=>import("./bicep-CFznDFnq.js"),[])});yt({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>ut(()=>import("./cameligo-Bf6VGUru.js"),[])});yt({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>ut(()=>import("./clojure-Dnu-v4kV.js"),[])});yt({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>ut(()=>import("./coffee-Bd8akH9Z.js"),[])});yt({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>ut(()=>import("./cpp-BbWJElDN.js"),[])});yt({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>ut(()=>import("./cpp-BbWJElDN.js"),[])});yt({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>ut(()=>import("./csharp-Co3qMtFm.js"),[])});yt({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>ut(()=>import("./csp-D-4FJmMZ.js"),[])});yt({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>ut(()=>import("./css-DdJfP1eB.js"),[])});yt({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>ut(()=>import("./cypher-cTPe9QuQ.js"),[])});yt({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>ut(()=>import("./dart-BOtBlQCF.js"),[])});yt({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>ut(()=>import("./dockerfile-BG73LgW2.js"),[])});yt({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>ut(()=>import("./ecl-BEgZUVRK.js"),[])});yt({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>ut(()=>import("./elixir-BkW5O-1t.js"),[])});yt({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>ut(()=>import("./flow9-BeJ5waoc.js"),[])});yt({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>ut(()=>import("./fsharp-PahG7c26.js"),[])});yt({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>ut(()=>import("./freemarker2-DRWssgHR.js"),[]).then(n=>n.TagAutoInterpolationDollar)});yt({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>ut(()=>import("./freemarker2-DRWssgHR.js"),[]).then(n=>n.TagAngleInterpolationDollar)});yt({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>ut(()=>import("./freemarker2-DRWssgHR.js"),[]).then(n=>n.TagBracketInterpolationDollar)});yt({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>ut(()=>import("./freemarker2-DRWssgHR.js"),[]).then(n=>n.TagAngleInterpolationBracket)});yt({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>ut(()=>import("./freemarker2-DRWssgHR.js"),[]).then(n=>n.TagBracketInterpolationBracket)});yt({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>ut(()=>import("./freemarker2-DRWssgHR.js"),[]).then(n=>n.TagAutoInterpolationDollar)});yt({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>ut(()=>import("./freemarker2-DRWssgHR.js"),[]).then(n=>n.TagAutoInterpolationBracket)});yt({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>ut(()=>import("./go-acbASCJo.js"),[])});yt({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>ut(()=>import("./graphql-BxJiqAUM.js"),[])});yt({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>ut(()=>import("./handlebars-D99ct7vW.js"),[])});yt({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>ut(()=>import("./hcl-DtV1sZF8.js"),[])});yt({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>ut(()=>import("./html-qTYwv-ai.js"),[])});yt({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>ut(()=>import("./ini-Kd9XrMLS.js"),[])});yt({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>ut(()=>import("./java-CXBNlu9o.js"),[])});yt({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>ut(()=>import("./javascript-BMmCYjig.js"),__vite__mapDeps([4,5]))});yt({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>ut(()=>import("./julia-cl7-CwDS.js"),[])});yt({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>ut(()=>import("./kotlin-s7OhZKlX.js"),[])});yt({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>ut(()=>import("./less-9HpZscsL.js"),[])});yt({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>ut(()=>import("./lexon-OrD6JF1K.js"),[])});yt({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>ut(()=>import("./lua-Cyyb5UIc.js"),[])});yt({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>ut(()=>import("./liquid-CA6H5Hc2.js"),[])});yt({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>ut(()=>import("./m3-B8OfTtLu.js"),[])});yt({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>ut(()=>import("./markdown-BFxVWTOG.js"),[])});yt({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>ut(()=>import("./mdx-Cxzk8Wsz.js"),[])});yt({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>ut(()=>import("./mips-CiqrrVzr.js"),[])});yt({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>ut(()=>import("./msdax-DmeGPVcC.js"),[])});yt({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>ut(()=>import("./mysql-C_tMU-Nz.js"),[])});yt({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>ut(()=>import("./objective-c-BDtDVThU.js"),[])});yt({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>ut(()=>import("./pascal-vHIfCaH5.js"),[])});yt({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>ut(()=>import("./pascaligo-DtZ0uQbO.js"),[])});yt({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>ut(()=>import("./perl-Ub6l9XKa.js"),[])});yt({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>ut(()=>import("./pgsql-BlNEE0v7.js"),[])});yt({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>ut(()=>import("./php-BBUBE1dy.js"),[])});yt({id:"pla",extensions:[".pla"],loader:()=>ut(()=>import("./pla-DSh2-awV.js"),[])});yt({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>ut(()=>import("./postiats-CocnycG-.js"),[])});yt({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>ut(()=>import("./powerquery-tScXyioY.js"),[])});yt({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>ut(()=>import("./powershell-COWaemsV.js"),[])});yt({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>ut(()=>import("./protobuf-Brw8urJB.js"),[])});yt({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>ut(()=>import("./pug-8SOpv6rk.js"),[])});yt({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>ut(()=>import("./python-CPm0olXw.js"),[])});yt({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>ut(()=>import("./qsharp-Bw9ernYp.js"),[])});yt({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>ut(()=>import("./r-j7ic8hl3.js"),[])});yt({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>ut(()=>import("./razor-DYm1Q1wt.js"),[])});yt({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>ut(()=>import("./redis-Bu5POkcn.js"),[])});yt({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>ut(()=>import("./redshift-Bs9aos_-.js"),[])});yt({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>ut(()=>import("./restructuredtext-CqXO7rUv.js"),[])});yt({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>ut(()=>import("./ruby-zBfavPgS.js"),[])});yt({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>ut(()=>import("./rust-BzKRNQWT.js"),[])});yt({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>ut(()=>import("./sb-BBc9UKZt.js"),[])});yt({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>ut(()=>import("./scala-D9hQfWCl.js"),[])});yt({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>ut(()=>import("./scheme-BPhDTwHR.js"),[])});yt({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>ut(()=>import("./scss-CBJaRo0y.js"),[])});yt({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>ut(()=>import("./shell-DiJ1NA_G.js"),[])});yt({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>ut(()=>import("./solidity-Db0IVjzk.js"),[])});yt({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>ut(()=>import("./sophia-CnS9iZB_.js"),[])});yt({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>ut(()=>import("./sparql-CJmd_6j2.js"),[])});yt({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>ut(()=>import("./sql-ClhHkBeG.js"),[])});yt({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>ut(()=>import("./st-CHwy0fLd.js"),[])});yt({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>ut(()=>import("./swift-Bqt4WxQ4.js"),[])});yt({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>ut(()=>import("./systemverilog-Bs9z6M-B.js"),[])});yt({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>ut(()=>import("./systemverilog-Bs9z6M-B.js"),[])});yt({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>ut(()=>import("./tcl-Dm6ycUr_.js"),[])});yt({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>ut(()=>import("./twig-Csy3S7wG.js"),[])});yt({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>ut(()=>import("./typescript-CioGs6Wz.js"),[])});yt({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>ut(()=>import("./typespec-Btyra-wh.js"),[])});yt({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>ut(()=>import("./vb-Db0cS2oM.js"),[])});yt({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>ut(()=>import("./wgsl-BTesnYfV.js"),[])});yt({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>ut(()=>import("./xml-DElkVcOE.js"),[])});yt({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>ut(()=>import("./yaml-DOgzoLoQ.js"),[])});var Hpt=Object.defineProperty,Vpt=(n,e,t)=>e in n?Hpt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,gt=(n,e,t)=>Vpt(n,typeof e!="symbol"?e+"":e,t),yM,Vhe,wM,EW,CM;function zpt(n){return n.method!==void 0}var zhe;(function(n){function e(t){return t}n.create=e})(zhe||(zhe={}));var Ch;(function(n){n.parseError=-32700,n.invalidRequest=-32600,n.methodNotFound=-32601,n.invalidParams=-32602,n.internalError=-32603;function e(r){return-32099<=r&&r<=-32e3}n.isServerError=e;function t(r){if(!e(r))throw new Error("Invalid range for a server error.");return r}n.serverError=t,n.unexpectedServerError=-32e3;function i(r){return!0}n.isApplicationError=i;function s(r){return r}n.applicationError=s,n.genericApplicationError=-320100})(Ch||(Ch={}));var YJ=class{constructor(){gt(this,"listeners",new Set),gt(this,"event",n=>(this.listeners.add(n),{dispose:()=>{this.listeners.delete(n)}}))}fire(n){this.listeners.forEach(e=>e(n))}},jpt=class{constructor(n){gt(this,"_value"),gt(this,"eventEmitter"),this._value=n,this.eventEmitter=new YJ}get value(){return this._value}set value(n){this._value!==n&&(this._value=n,this.eventEmitter.fire(n))}get onChange(){return this.eventEmitter.event}};function Upt(n,e){const t=setTimeout(e,n);return{dispose:()=>clearTimeout(t)}}function IW(n,e,t){return n instanceof Set?(n.add(e),{dispose:()=>n.delete(e)}):(n.set(e,t),{dispose:()=>n.delete(e)})}var $pt=class{constructor(){gt(this,"_state","none"),gt(this,"promise"),gt(this,"resolve",()=>{}),gt(this,"reject",()=>{}),this.promise=new Promise((n,e)=>{this.resolve=n,this.reject=e})}get state(){return this._state}},DCe=(yM=class{constructor(){gt(this,"_unprocessedMessages",[]),gt(this,"_messageListener"),gt(this,"id",yM.id++),gt(this,"_state",new jpt({state:"open"})),gt(this,"state",this._state)}setListener(n){if(this._messageListener=n,!!n)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(n){return this._sendImpl(n)}_dispatchReceivedMessage(n){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(n):this._unprocessedMessages.push(n)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(n){return new qpt(this,n??new Kpt)}},gt(yM,"id",0),yM),qpt=class{constructor(n,e){gt(this,"baseStream"),gt(this,"logger"),this.baseStream=n,this.logger=e}get state(){return this.baseStream.state}setListener(n){if(n===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),n(e)})}send(n){return this.logger.log(this.baseStream,"outgoing",n),this.baseStream.send(n)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},Kpt=class{log(n,e,t){console.log(`${e==="incoming"?"<-":"->"} [${n.toString()}] ${JSON.stringify(t)}`)}},Gpt=class ECe{constructor(e){gt(this,"connect"),this.connect=e}mapContext(e){return new ECe(t=>this.connect(t?Ypt(t,e):void 0))}};function Ypt(n,e){return{handleNotification:(t,i)=>n.handleNotification(t,e(i)),handleRequest:(t,i,s)=>n.handleRequest(t,i,e(s))}}var Zpt=class ICe{constructor(e,t,i){gt(this,"_stream"),gt(this,"_listener"),gt(this,"_logger"),gt(this,"_unprocessedResponses",new Map),gt(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(s=>{zpt(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let i=!1;return new Gpt(s=>{if(i)throw new Error(`A channel to the stream ${e} was already constructed!`);return i=!0,new ICe(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${s}`,message:e,exception:s}),t={error:{code:Ch.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:Ch.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let i;"result"in t?i={jsonrpc:"2.0",id:e.id,result:t.result}:i={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){const t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(s.id),new Promise((r,o)=>{const a=""+s.id;this._unprocessedResponses.set(a,l=>{"result"in l?r({result:l.result}):(l.error||o(new Error("Response had neither 'result' nor 'error' field set.")),r({error:l.error}))}),this._stream.send(s).then(void 0,l=>{this._unprocessedResponses.delete(a),o(l)})})}sendNotification(e,t){const i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}},zS;(function(n){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}n.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}n.sEmptyObject=t;function i(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}n.sVoidFromNull=i})(zS||(zS={}));const TCe=Symbol("OptionalMethodNotFound");var RCe=class{contextualize(n){return new Xpt(this,n)}},Xpt=class extends RCe{constructor(n,e){super(),gt(this,"underylingTypedChannel"),gt(this,"converters"),this.underylingTypedChannel=n,this.converters=e}async request(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(n,e,i)}async notify(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(n,e,i)}registerNotificationHandler(n,e){return this.underylingTypedChannel.registerNotificationHandler(n,async(t,i)=>await e(t,await this.converters.getNewContext(i)))}registerRequestHandler(n,e){return this.underylingTypedChannel.registerRequestHandler(n,async(t,i,s)=>await e(t,i,await this.converters.getNewContext(s)))}},EG=class NCe extends RCe{constructor(e,t={}){super(),gt(this,"channelCtor"),gt(this,"_requestSender"),gt(this,"_handler",new Map),gt(this,"_unknownNotificationHandler",new Set),gt(this,"_timeout"),gt(this,"sendExceptionDetails",!1),gt(this,"_logger"),gt(this,"listeningDeferred",new $pt),gt(this,"onListening",this.listeningDeferred.promise),gt(this,"_requestDidErrorEventEmitter",new YJ),gt(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=Upt(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new NCe(Zpt.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:Ch.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(s.kind!="request"){const o=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e}}),{error:{code:Ch.invalidRequest,message:o,data:{method:e.method}}}}const r=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(r.hasErrors){const o=`Got invalid params: ${r.errorMessage}`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e,errorMessage:r.errorMessage}}),{error:{code:Ch.invalidParams,message:o,data:{errors:r.errorMessage}}}}else{const o=r.value;let a;try{const l=await s.handler(o,t,i);if("error"in l||"errorMessage"in l){const c=l.error?s.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||Ch.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:s.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof Uhe?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:Ch.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const i=this._handler.get(e.method);if(!i){for(const o of this._unknownNotificationHandler)o(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(i.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const s=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${s}`,data:{requestObject:e,errorMessage:s.errorMessage}});return}const r=s.value;for(const o of i.handlers)try{o(r,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return IW(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return IW(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(!i)i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);else{if(i.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return IW(i.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);jhe(s);const r=await this._requestSender.sendRequest({method:e.method,params:s},i);if("error"in r){if(e.isOptional&&r.error.code===Ch.methodNotFound)return TCe;let o;if(r.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(r.error.data);if(l.hasErrors)throw new Error(l.errorMessage);o=l.value}else o=void 0;const a=new Uhe(r.error.message,o,r.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const o=e.resultSerializer.deserializeFromJson(r.result);if(o.hasErrors)throw new Error("Could not deserialize response: "+o.errorMessage+`
|
|
1550
1550
|
|
|
1551
1551
|
${JSON.stringify(r,null,2)}`);return o.value}}async notify(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error;const s=e.paramsSerializer.serializeToJson(t);jhe(s),this._requestSender.sendNotification({method:e.method,params:s},i)}};function jhe(n){if(n!==null&&Array.isArray(n)&&typeof n!="object")throw new Error("Invalid value! Only null, array and object is allowed.")}var Uhe=class MCe extends Error{constructor(e,t,i=Ch.genericApplicationError){super(e),gt(this,"data"),gt(this,"code"),this.data=t,this.code=i,Object.setPrototypeOf(this,MCe.prototype)}},Qpt=class IG{constructor(e,t,i,s,r=!1){gt(this,"method"),gt(this,"paramsSerializer"),gt(this,"resultSerializer"),gt(this,"errorSerializer"),gt(this,"isOptional"),gt(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=i,this.errorSerializer=s,this.isOptional=r}withMethod(e){return new IG(e,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new IG(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},Jpt=class ACe{constructor(e,t){gt(this,"method"),gt(this,"paramsSerializer"),gt(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(e){return new ACe(e,this.paramsSerializer)}};function jt(n){return new Qpt((n||{}).method,zS.sAny(),zS.sAny(),zS.sAny())}function ws(n){return new Jpt((n||{}).method,zS.sAny())}const emt=Symbol();var $he=(Vhe=emt,wM=class{constructor(n){gt(this,"error"),gt(this,Vhe),this.error=n}},gt(wM,"factory",n=>new wM(n)),wM);function tmt(n){const e=qhe(n.server),t=qhe(n.client);return new imt(n.tags||[],e,t)}function qhe(n){const e={};for(const[t,i]of Object.entries(n)){const s=i.method?i.method:t;e[t]=i.withMethod(s)}return e}var imt=class PCe{constructor(e=[],t,i){gt(this,"tags"),gt(this,"server"),gt(this,"client"),this.tags=e,this.server=t,this.client=i}_onlyDesignTime(){return new Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,i,s){const r=this.buildCounterpart(e,i),o=this.registerHandlers(e,t,s,r);return{counterpart:r,dispose:()=>o.dispose()}}buildCounterpart(e,t){const i={};for(const[s,r]of Object.entries(t)){let o;r.kind==="request"?r.isOptional?o=async(a,l)=>{a===void 0&&(a={});try{return await e.request(r,a,l)}catch(c){if(c&&c.code===Ch.methodNotFound)return TCe;throw c}}:o=(a,l)=>(a===void 0&&(a={}),e.request(r,a,l)):o=(a,l)=>(a===void 0&&(a={}),e.notify(r,a,l)),i[s]=o}return i}registerHandlers(e,t,i,s){const r=[];for(const[o,a]of Object.entries(t))if(a.kind==="request"){let l=i[o];if(!l)continue;const c=this.createRequestHandler(s,l);r.push(e.registerRequestHandler(a,c))}else{const l=i[o];l&&r.push(e.registerNotificationHandler(a,(c,d)=>{l(c,{context:d,counterpart:s})}))}return{dispose:()=>r.forEach(o=>o.dispose())}}createRequestHandler(e,t){return async(i,s,r)=>{const o=await t(i,{context:r,counterpart:e,newErr:$he.factory,requestId:s});return o instanceof $he?o.error:{ok:o}}}static getServerFromStream(e,t,i,s){const r=EG.fromTransport(t,i),{server:o}=e.getServer(r,s);return r.startListen(),{channel:r,server:o}}static registerServerToStream(e,t,i,s){const r=EG.fromTransport(t,i),{client:o}=e.registerServer(r,s);return r.startListen(),{channel:r,client:o}}getServer(e,t){const{counterpart:i,dispose:s}=this.getInterface(e,this.client,this.server,t);return{server:i,dispose:s}}registerServer(e,t){const{counterpart:i,dispose:s}=this.getInterface(e,this.server,this.client,t);return{client:i,dispose:s}}withContext(){return new PCe(this.tags,this.server,this.client)}};let jS=(function(n){return n.Comment="comment",n.Imports="imports",n.Region="region",n})({}),zs=(function(n){return n[n.File=1]="File",n[n.Module=2]="Module",n[n.Namespace=3]="Namespace",n[n.Package=4]="Package",n[n.Class=5]="Class",n[n.Method=6]="Method",n[n.Property=7]="Property",n[n.Field=8]="Field",n[n.Constructor=9]="Constructor",n[n.Enum=10]="Enum",n[n.Interface=11]="Interface",n[n.Function=12]="Function",n[n.Variable=13]="Variable",n[n.Constant=14]="Constant",n[n.String=15]="String",n[n.Number=16]="Number",n[n.Boolean=17]="Boolean",n[n.Array=18]="Array",n[n.Object=19]="Object",n[n.Key=20]="Key",n[n.Null=21]="Null",n[n.EnumMember=22]="EnumMember",n[n.Struct=23]="Struct",n[n.Event=24]="Event",n[n.Operator=25]="Operator",n[n.TypeParameter=26]="TypeParameter",n})({}),OCe=(function(n){return n[n.Deprecated=1]="Deprecated",n})({}),Khe=(function(n){return n[n.Type=1]="Type",n[n.Parameter=2]="Parameter",n})({}),nmt=(function(n){return n[n.None=0]="None",n[n.Full=1]="Full",n[n.Incremental=2]="Incremental",n})({}),Qs=(function(n){return n[n.Text=1]="Text",n[n.Method=2]="Method",n[n.Function=3]="Function",n[n.Constructor=4]="Constructor",n[n.Field=5]="Field",n[n.Variable=6]="Variable",n[n.Class=7]="Class",n[n.Interface=8]="Interface",n[n.Module=9]="Module",n[n.Property=10]="Property",n[n.Unit=11]="Unit",n[n.Value=12]="Value",n[n.Enum=13]="Enum",n[n.Keyword=14]="Keyword",n[n.Snippet=15]="Snippet",n[n.Color=16]="Color",n[n.File=17]="File",n[n.Reference=18]="Reference",n[n.Folder=19]="Folder",n[n.EnumMember=20]="EnumMember",n[n.Constant=21]="Constant",n[n.Struct=22]="Struct",n[n.Event=23]="Event",n[n.Operator=24]="Operator",n[n.TypeParameter=25]="TypeParameter",n})({}),smt=(function(n){return n[n.Deprecated=1]="Deprecated",n})({}),rmt=(function(n){return n[n.PlainText=1]="PlainText",n[n.Snippet=2]="Snippet",n})({}),TW=(function(n){return n[n.Text=1]="Text",n[n.Read=2]="Read",n[n.Write=3]="Write",n})({}),Ug=(function(n){return n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll",n})({}),n5=(function(n){return n.PlainText="plaintext",n.Markdown="markdown",n})({}),Ep=(function(n){return n[n.Error=1]="Error",n[n.Warning=2]="Warning",n[n.Information=3]="Information",n[n.Hint=4]="Hint",n})({}),Ghe=(function(n){return n[n.Unnecessary=1]="Unnecessary",n[n.Deprecated=2]="Deprecated",n})({}),bA=(function(n){return n[n.Invoked=1]="Invoked",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",n})({}),yA=(function(n){return n[n.Invoked=1]="Invoked",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange",n})({}),TG=(function(n){return n[n.Invoked=1]="Invoked",n[n.Automatic=2]="Automatic",n})({}),omt=(function(n){return n.Relative="relative",n})({});var Ii=class{constructor(n){this.method=n}};const di={textDocumentImplementation:new Ii("textDocument/implementation"),textDocumentTypeDefinition:new Ii("textDocument/typeDefinition"),textDocumentDocumentColor:new Ii("textDocument/documentColor"),textDocumentColorPresentation:new Ii("textDocument/colorPresentation"),textDocumentFoldingRange:new Ii("textDocument/foldingRange"),textDocumentDeclaration:new Ii("textDocument/declaration"),textDocumentSelectionRange:new Ii("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new Ii("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new Ii("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new Ii("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new Ii("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new Ii("workspace/willCreateFiles"),workspaceWillRenameFiles:new Ii("workspace/willRenameFiles"),workspaceWillDeleteFiles:new Ii("workspace/willDeleteFiles"),textDocumentMoniker:new Ii("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new Ii("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new Ii("textDocument/inlineValue"),textDocumentInlayHint:new Ii("textDocument/inlayHint"),textDocumentDiagnostic:new Ii("textDocument/diagnostic"),textDocumentInlineCompletion:new Ii("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new Ii("textDocument/willSaveWaitUntil"),textDocumentCompletion:new Ii("textDocument/completion"),textDocumentHover:new Ii("textDocument/hover"),textDocumentSignatureHelp:new Ii("textDocument/signatureHelp"),textDocumentDefinition:new Ii("textDocument/definition"),textDocumentReferences:new Ii("textDocument/references"),textDocumentDocumentHighlight:new Ii("textDocument/documentHighlight"),textDocumentDocumentSymbol:new Ii("textDocument/documentSymbol"),textDocumentCodeAction:new Ii("textDocument/codeAction"),workspaceSymbol:new Ii("workspace/symbol"),textDocumentCodeLens:new Ii("textDocument/codeLens"),textDocumentDocumentLink:new Ii("textDocument/documentLink"),textDocumentFormatting:new Ii("textDocument/formatting"),textDocumentRangeFormatting:new Ii("textDocument/rangeFormatting"),textDocumentRangesFormatting:new Ii("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new Ii("textDocument/onTypeFormatting"),textDocumentRename:new Ii("textDocument/rename"),workspaceExecuteCommand:new Ii("workspace/executeCommand"),workspaceDidCreateFiles:new Ii("workspace/didCreateFiles"),workspaceDidRenameFiles:new Ii("workspace/didRenameFiles"),workspaceDidDeleteFiles:new Ii("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new Ii("workspace/didChangeConfiguration"),textDocumentDidOpen:new Ii("textDocument/didOpen"),textDocumentDidChange:new Ii("textDocument/didChange"),textDocumentDidClose:new Ii("textDocument/didClose"),textDocumentDidSave:new Ii("textDocument/didSave"),textDocumentWillSave:new Ii("textDocument/willSave"),workspaceDidChangeWatchedFiles:new Ii("workspace/didChangeWatchedFiles")},W2=tmt({server:{textDocumentImplementation:jt({method:"textDocument/implementation"}),textDocumentTypeDefinition:jt({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:jt({method:"textDocument/documentColor"}),textDocumentColorPresentation:jt({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:jt({method:"textDocument/foldingRange"}),textDocumentDeclaration:jt({method:"textDocument/declaration"}),textDocumentSelectionRange:jt({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:jt({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:jt({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:jt({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:jt({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:jt({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:jt({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:jt({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:jt({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:jt({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:jt({method:"workspace/willDeleteFiles"}),textDocumentMoniker:jt({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:jt({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:jt({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:jt({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:jt({method:"textDocument/inlineValue"}),textDocumentInlayHint:jt({method:"textDocument/inlayHint"}),inlayHintResolve:jt({method:"inlayHint/resolve"}),textDocumentDiagnostic:jt({method:"textDocument/diagnostic"}),workspaceDiagnostic:jt({method:"workspace/diagnostic"}),textDocumentInlineCompletion:jt({method:"textDocument/inlineCompletion"}),initialize:jt({method:"initialize"}),shutdown:jt({method:"shutdown"}),textDocumentWillSaveWaitUntil:jt({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:jt({method:"textDocument/completion"}),completionItemResolve:jt({method:"completionItem/resolve"}),textDocumentHover:jt({method:"textDocument/hover"}),textDocumentSignatureHelp:jt({method:"textDocument/signatureHelp"}),textDocumentDefinition:jt({method:"textDocument/definition"}),textDocumentReferences:jt({method:"textDocument/references"}),textDocumentDocumentHighlight:jt({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:jt({method:"textDocument/documentSymbol"}),textDocumentCodeAction:jt({method:"textDocument/codeAction"}),codeActionResolve:jt({method:"codeAction/resolve"}),workspaceSymbol:jt({method:"workspace/symbol"}),workspaceSymbolResolve:jt({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:jt({method:"textDocument/codeLens"}),codeLensResolve:jt({method:"codeLens/resolve"}),textDocumentDocumentLink:jt({method:"textDocument/documentLink"}),documentLinkResolve:jt({method:"documentLink/resolve"}),textDocumentFormatting:jt({method:"textDocument/formatting"}),textDocumentRangeFormatting:jt({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:jt({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:jt({method:"textDocument/onTypeFormatting"}),textDocumentRename:jt({method:"textDocument/rename"}),textDocumentPrepareRename:jt({method:"textDocument/prepareRename"}),workspaceExecuteCommand:jt({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:ws({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:ws({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:ws({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:ws({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:ws({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:ws({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:ws({method:"notebookDocument/didChange"}),notebookDocumentDidSave:ws({method:"notebookDocument/didSave"}),notebookDocumentDidClose:ws({method:"notebookDocument/didClose"}),initialized:ws({method:"initialized"}),exit:ws({method:"exit"}),workspaceDidChangeConfiguration:ws({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:ws({method:"textDocument/didOpen"}),textDocumentDidChange:ws({method:"textDocument/didChange"}),textDocumentDidClose:ws({method:"textDocument/didClose"}),textDocumentDidSave:ws({method:"textDocument/didSave"}),textDocumentWillSave:ws({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:ws({method:"workspace/didChangeWatchedFiles"}),setTrace:ws({method:"$/setTrace"}),cancelRequest:ws({method:"$/cancelRequest"}),progress:ws({method:"$/progress"})},client:{workspaceWorkspaceFolders:jt({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:jt({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:jt({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:jt({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:jt({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:jt({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:jt({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:jt({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:jt({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:jt({method:"client/registerCapability"}).optional(),clientUnregisterCapability:jt({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:jt({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:jt({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:jt({method:"workspace/applyEdit"}).optional(),windowShowMessage:ws({method:"window/showMessage"}),windowLogMessage:ws({method:"window/logMessage"}),telemetryEvent:ws({method:"telemetry/event"}),textDocumentPublishDiagnostics:ws({method:"textDocument/publishDiagnostics"}),logTrace:ws({method:"$/logTrace"}),cancelRequest:ws({method:"$/cancelRequest"}),progress:ws({method:"$/progress"})}});function Y1(n,e){if(n.textModel!==e)throw new Error(`Expected text model to be ${e}, but got ${n.textModel}`);return n}var Gs=(EW=class{constructor(){gt(this,"_store",new ZJ)}dispose(){this._store.dispose()}_register(n){if(n===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(n)}},gt(EW,"None",Object.freeze({dispose(){}})),EW),ZJ=(CM=class{constructor(){gt(this,"_toDispose",new Set),gt(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(const n of this._toDispose)n.dispose()}finally{this._toDispose.clear()}}add(n){if(!n)return n;if(n===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?CM.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(n),n}},gt(CM,"DISABLE_DISPOSED_WARNING",!1),CM);const FCe=new Map([[Ug.Empty,""],[Ug.QuickFix,"quickfix"],[Ug.Refactor,"refactor"],[Ug.RefactorExtract,"refactor.extract"],[Ug.RefactorInline,"refactor.inline"],[Ug.RefactorRewrite,"refactor.rewrite"],[Ug.Source,"source"],[Ug.SourceOrganizeImports,"source.organizeImports"],[Ug.SourceFixAll,"source.fixAll"]]);function amt(n){if(n)return FCe.get(n)??n}const lmt=new Map([[Ze.CodeActionTriggerType.Invoke,TG.Invoked],[Ze.CodeActionTriggerType.Auto,TG.Automatic]]);function cmt(n){return lmt.get(n)??TG.Invoked}const BCe=new Map([[Qs.Text,Ze.CompletionItemKind.Text],[Qs.Method,Ze.CompletionItemKind.Method],[Qs.Function,Ze.CompletionItemKind.Function],[Qs.Constructor,Ze.CompletionItemKind.Constructor],[Qs.Field,Ze.CompletionItemKind.Field],[Qs.Variable,Ze.CompletionItemKind.Variable],[Qs.Class,Ze.CompletionItemKind.Class],[Qs.Interface,Ze.CompletionItemKind.Interface],[Qs.Module,Ze.CompletionItemKind.Module],[Qs.Property,Ze.CompletionItemKind.Property],[Qs.Unit,Ze.CompletionItemKind.Unit],[Qs.Value,Ze.CompletionItemKind.Value],[Qs.Enum,Ze.CompletionItemKind.Enum],[Qs.Keyword,Ze.CompletionItemKind.Keyword],[Qs.Snippet,Ze.CompletionItemKind.Snippet],[Qs.Color,Ze.CompletionItemKind.Color],[Qs.File,Ze.CompletionItemKind.File],[Qs.Reference,Ze.CompletionItemKind.Reference],[Qs.Folder,Ze.CompletionItemKind.Folder],[Qs.EnumMember,Ze.CompletionItemKind.EnumMember],[Qs.Constant,Ze.CompletionItemKind.Constant],[Qs.Struct,Ze.CompletionItemKind.Struct],[Qs.Event,Ze.CompletionItemKind.Event],[Qs.Operator,Ze.CompletionItemKind.Operator],[Qs.TypeParameter,Ze.CompletionItemKind.TypeParameter]]);function dmt(n){return n?BCe.get(n)??Ze.CompletionItemKind.Text:Ze.CompletionItemKind.Text}const WCe=new Map([[smt.Deprecated,Ze.CompletionItemTag.Deprecated]]);function hmt(n){return WCe.get(n)}const umt=new Map([[Ze.CompletionTriggerKind.Invoke,bA.Invoked],[Ze.CompletionTriggerKind.TriggerCharacter,bA.TriggerCharacter],[Ze.CompletionTriggerKind.TriggerForIncompleteCompletions,bA.TriggerForIncompleteCompletions]]);function fmt(n){return umt.get(n)??bA.Invoked}const gmt=new Map([[rmt.Snippet,Ze.CompletionItemInsertTextRule.InsertAsSnippet]]);function pmt(n){if(n)return gmt.get(n)}const HCe=new Map([[zs.File,Ze.SymbolKind.File],[zs.Module,Ze.SymbolKind.Module],[zs.Namespace,Ze.SymbolKind.Namespace],[zs.Package,Ze.SymbolKind.Package],[zs.Class,Ze.SymbolKind.Class],[zs.Method,Ze.SymbolKind.Method],[zs.Property,Ze.SymbolKind.Property],[zs.Field,Ze.SymbolKind.Field],[zs.Constructor,Ze.SymbolKind.Constructor],[zs.Enum,Ze.SymbolKind.Enum],[zs.Interface,Ze.SymbolKind.Interface],[zs.Function,Ze.SymbolKind.Function],[zs.Variable,Ze.SymbolKind.Variable],[zs.Constant,Ze.SymbolKind.Constant],[zs.String,Ze.SymbolKind.String],[zs.Number,Ze.SymbolKind.Number],[zs.Boolean,Ze.SymbolKind.Boolean],[zs.Array,Ze.SymbolKind.Array],[zs.Object,Ze.SymbolKind.Object],[zs.Key,Ze.SymbolKind.Key],[zs.Null,Ze.SymbolKind.Null],[zs.EnumMember,Ze.SymbolKind.EnumMember],[zs.Struct,Ze.SymbolKind.Struct],[zs.Event,Ze.SymbolKind.Event],[zs.Operator,Ze.SymbolKind.Operator],[zs.TypeParameter,Ze.SymbolKind.TypeParameter]]);function VCe(n){return HCe.get(n)??Ze.SymbolKind.File}const mmt=new Map([[OCe.Deprecated,Ze.SymbolTag.Deprecated]]);function zCe(n){return mmt.get(n)}const _mt=new Map([[TW.Text,Ze.DocumentHighlightKind.Text],[TW.Read,Ze.DocumentHighlightKind.Read],[TW.Write,Ze.DocumentHighlightKind.Write]]);function vmt(n){return n?_mt.get(n)??Ze.DocumentHighlightKind.Text:Ze.DocumentHighlightKind.Text}const bmt=new Map([[jS.Comment,Ze.FoldingRangeKind.Comment],[jS.Imports,Ze.FoldingRangeKind.Imports],[jS.Region,Ze.FoldingRangeKind.Region]]);function ymt(n){if(n)return bmt.get(n)}const wmt=new Map([[xh.Error,Ep.Error],[xh.Warning,Ep.Warning],[xh.Info,Ep.Information],[xh.Hint,Ep.Hint]]);function Cmt(n){return wmt.get(n)??Ep.Error}const Smt=new Map([[Ep.Error,xh.Error],[Ep.Warning,xh.Warning],[Ep.Information,xh.Info],[Ep.Hint,xh.Hint]]);function xmt(n){return n?Smt.get(n)??xh.Error:xh.Error}const jCe=new Map([[Ghe.Unnecessary,i5.Unnecessary],[Ghe.Deprecated,i5.Deprecated]]);function kmt(n){return jCe.get(n)}const Lmt=new Map([[Ze.SignatureHelpTriggerKind.Invoke,yA.Invoked],[Ze.SignatureHelpTriggerKind.TriggerCharacter,yA.TriggerCharacter],[Ze.SignatureHelpTriggerKind.ContentChange,yA.ContentChange]]);function Dmt(n){return Lmt.get(n)??yA.Invoked}function US(n){if(n)return{id:n.command,title:n.title,arguments:n.arguments}}const Emt=new Map([[Khe.Type,Ze.InlayHintKind.Type],[Khe.Parameter,Ze.InlayHintKind.Parameter]]);function Imt(n){return n?Emt.get(n)??Ze.InlayHintKind.Type:Ze.InlayHintKind.Type}function Pv(n,e){if("targetUri"in n){const t=e.bridge.translateBackRange({uri:n.targetUri},n.targetRange);return{uri:t.textModel.uri,range:t.range,originSelectionRange:n.originSelectionRange?e.bridge.translateBackRange({uri:n.targetUri},n.originSelectionRange).range:void 0,targetSelectionRange:n.targetSelectionRange?e.bridge.translateBackRange({uri:n.targetUri},n.targetSelectionRange).range:void 0}}else{const t=e.bridge.translateBackRange({uri:n.uri},n.range);return{uri:t.textModel.uri,range:t.range}}}function Jr(n){return!n||n.length===0?{language:"*"}:n.map(e=>"notebook"in e?typeof e.notebook=="string"?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme})}function Tmt(n,e){if(!e)return!0;const t=n.getLanguageId();if(n.uri.toString(!0),!e||e.length===0)return!0;for(const i of e)if(!(i.language&&i.language!=="*"&&i.language!==t))return!0;return!1}function RG(n){var t;const e={severity:xmt(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,source:n.source,code:typeof n.code=="string"?n.code:(t=n.code)==null?void 0:t.toString()};return n.tags&&(e.tags=n.tags.map(i=>kmt(i)).filter(i=>i!==void 0)),n.relatedInformation&&(e.relatedInformation=n.relatedInformation.map(i=>({resource:V6.parse(i.location.uri),startLineNumber:i.location.range.start.line+1,startColumn:i.location.range.start.character+1,endLineNumber:i.location.range.end.line+1,endColumn:i.location.range.end.character+1,message:i.message}))),e}var Rmt=class extends Gs{constructor(n){super(),this._connection=n,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(BCe.keys())},completionItem:{tagSupport:{valueSet:Array.from(WCe.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(di.textDocumentCompletion,!0,e=>Ze.registerCompletionItemProvider(Jr(e.documentSelector),new Nmt(this._connection,e))))}},Nmt=class{constructor(n,e){gt(this,"resolveCompletionItem"),this._client=n,this._capabilities=e,e.resolveProvider&&(this.resolveCompletionItem=async(t,i)=>(UCe(t,await this._client.server.completionItemResolve(t._lspItem),this._client.bridge,t._translated,t._model),t))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(n,e,t,i){const s=this._client.bridge.translate(n,e),r=await this._client.server.textDocumentCompletion({textDocument:s.textDocument,position:s.position,context:t.triggerCharacter?{triggerKind:fmt(t.triggerKind),triggerCharacter:t.triggerCharacter}:void 0});return r?{suggestions:(Array.isArray(r)?r:r.items).map(o=>({...Mmt(o,this._client.bridge,s,n,e),_lspItem:o,_translated:s,_model:n}))}:{suggestions:[]}}};function Mmt(n,e,t,i,s){let r=n.insertText||n.label,o;n.textEdit&&("range"in n.textEdit?(r=n.textEdit.newText,o=Y1(e.translateBackRange(t.textDocument,n.textEdit.range),i).range):(r=n.textEdit.newText,o={insert:Y1(e.translateBackRange(t.textDocument,n.textEdit.insert),i).range,replace:Y1(e.translateBackRange(t.textDocument,n.textEdit.replace),i).range})),o||(o=kk.fromPositions(s,s));const a={label:n.label,kind:dmt(n.kind),insertText:r,sortText:n.sortText,filterText:n.filterText,preselect:n.preselect,commitCharacters:n.commitCharacters,range:o};return UCe(a,n,e,t,i),a}function UCe(n,e,t,i,s){e.detail!==void 0&&(n.detail=e.detail),e.documentation!==void 0&&(n.documentation=Amt(e.documentation)),e.insertTextFormat!==void 0&&(n.insertTextRules=pmt(e.insertTextFormat)),e.tags&&e.tags.length>0&&(n.tags=e.tags.map(hmt).filter(r=>r!==void 0)),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(n.additionalTextEdits=e.additionalTextEdits.map(r=>({range:Y1(t.translateBackRange(i.textDocument,r.range),s).range,text:r.newText}))),e.command&&(n.command=US(e.command))}function Amt(n){if(n)return typeof n=="string"?n:{value:n.value,isTrusted:!0}}var Pmt=class extends Gs{constructor(n){super(),this._connection=n,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[n5.Markdown,n5.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(di.textDocumentHover,!0,e=>Ze.registerHoverProvider(Jr(e.documentSelector),new Omt(this._connection,e))))}},Omt=class{constructor(n,e){this._client=n,this._capabilities=e}async provideHover(n,e,t){const i=this._client.bridge.translate(n,e),s=await this._client.server.textDocumentHover({textDocument:i.textDocument,position:i.position});return!s||!s.contents?null:{contents:Fmt(s.contents),range:s.range?this._client.bridge.translateBackRange(i.textDocument,s.range).range:void 0}}};function Fmt(n){return Array.isArray(n)?n.map(e=>Yhe(e)):[Yhe(n)]}function Yhe(n){return typeof n=="string"?{value:n,isTrusted:!0}:"kind"in n?{value:n.value,isTrusted:!0}:{value:`\`\`\`${n.language}
|
|
1552
1552
|
${n.value}
|