apteva 0.4.57 → 0.7.0
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/README.md +216 -54
- package/cli.js +35 -0
- package/install.js +92 -0
- package/package.json +12 -79
- package/LICENSE +0 -63
- package/bin/apteva.js +0 -196
- package/dist/ActivityPage.kxzzb4yc.js +0 -3
- package/dist/ApiDocsPage.zq998hbm.js +0 -4
- package/dist/App.55rea8mn.js +0 -61
- package/dist/App.5ywb23z4.js +0 -53
- package/dist/App.6thds120.js +0 -4
- package/dist/App.9tctxzqm.js +0 -8
- package/dist/App.a8r8ttaz.js +0 -4
- package/dist/App.agsv5bje.js +0 -4
- package/dist/App.cepapqmx.js +0 -4
- package/dist/App.dp041gb3.js +0 -221
- package/dist/App.fds72zb5.js +0 -4
- package/dist/App.fg9qj2dq.js +0 -4
- package/dist/App.ndfejbm9.js +0 -4
- package/dist/App.nxmfmq1h.js +0 -13
- package/dist/App.qdfyt8ba.js +0 -4
- package/dist/App.x2d0ygt6.js +0 -4
- package/dist/App.yt9p4nr3.js +0 -20
- package/dist/App.zn4mw16t.js +0 -1
- package/dist/ConnectionsPage.8r96ryw7.js +0 -3
- package/dist/McpPage.3cwh0gnd.js +0 -3
- package/dist/SettingsPage.ykgdh5ev.js +0 -3
- package/dist/SkillsPage.4np1s65b.js +0 -3
- package/dist/TasksPage.4g08t7p6.js +0 -3
- package/dist/TelemetryPage.72w9pwcp.js +0 -3
- package/dist/TestsPage.z4fk3r7r.js +0 -3
- package/dist/ThreadsPage.63tcajeh.js +0 -3
- package/dist/apteva-kit.css +0 -1
- package/dist/icon.png +0 -0
- package/dist/index.html +0 -16
- package/dist/styles.css +0 -1
- package/scripts/postinstall.mjs +0 -102
- package/src/auth/index.ts +0 -394
- package/src/auth/middleware.ts +0 -213
- package/src/binary.ts +0 -536
- package/src/channels/index.ts +0 -40
- package/src/channels/telegram.ts +0 -311
- package/src/crypto.ts +0 -301
- package/src/db-tests.ts +0 -174
- package/src/db.ts +0 -3133
- package/src/integrations/agentdojo.ts +0 -559
- package/src/integrations/composio.ts +0 -437
- package/src/integrations/index.ts +0 -87
- package/src/integrations/skillsmp.ts +0 -318
- package/src/mcp-client.ts +0 -605
- package/src/mcp-handler.ts +0 -394
- package/src/mcp-platform.ts +0 -2403
- package/src/openapi.ts +0 -2410
- package/src/providers.ts +0 -597
- package/src/routes/api/agent-utils.ts +0 -890
- package/src/routes/api/agents.ts +0 -916
- package/src/routes/api/api-keys.ts +0 -95
- package/src/routes/api/channels.ts +0 -182
- package/src/routes/api/helpers.ts +0 -12
- package/src/routes/api/integrations.ts +0 -639
- package/src/routes/api/mcp.ts +0 -574
- package/src/routes/api/meta-agent.ts +0 -195
- package/src/routes/api/projects.ts +0 -112
- package/src/routes/api/providers.ts +0 -424
- package/src/routes/api/skills.ts +0 -537
- package/src/routes/api/system.ts +0 -333
- package/src/routes/api/telemetry.ts +0 -203
- package/src/routes/api/tests.ts +0 -148
- package/src/routes/api/triggers.ts +0 -518
- package/src/routes/api/users.ts +0 -148
- package/src/routes/api/webhooks.ts +0 -171
- package/src/routes/api.ts +0 -53
- package/src/routes/auth.ts +0 -251
- package/src/routes/share.ts +0 -86
- package/src/routes/static.ts +0 -131
- package/src/server.ts +0 -642
- package/src/test-runner.ts +0 -598
- package/src/triggers/agentdojo.ts +0 -253
- package/src/triggers/composio.ts +0 -264
- package/src/triggers/index.ts +0 -71
- package/src/tui/AgentList.tsx +0 -145
- package/src/tui/App.tsx +0 -102
- package/src/tui/Login.tsx +0 -104
- package/src/tui/api.ts +0 -72
- package/src/tui/index.tsx +0 -7
- package/src/web/App.tsx +0 -455
- package/src/web/components/activity/ActivityPage.tsx +0 -314
- package/src/web/components/activity/index.ts +0 -1
- package/src/web/components/agents/AgentCard.tsx +0 -189
- package/src/web/components/agents/AgentPanel.tsx +0 -2244
- package/src/web/components/agents/AgentsView.tsx +0 -180
- package/src/web/components/agents/CreateAgentModal.tsx +0 -475
- package/src/web/components/agents/index.ts +0 -4
- package/src/web/components/api/ApiDocsPage.tsx +0 -842
- package/src/web/components/auth/CreateAccountStep.tsx +0 -176
- package/src/web/components/auth/LoginPage.tsx +0 -91
- package/src/web/components/auth/index.ts +0 -2
- package/src/web/components/common/Icons.tsx +0 -250
- package/src/web/components/common/LoadingSpinner.tsx +0 -44
- package/src/web/components/common/Modal.tsx +0 -199
- package/src/web/components/common/Select.tsx +0 -97
- package/src/web/components/common/index.ts +0 -20
- package/src/web/components/connections/ConnectionsPage.tsx +0 -54
- package/src/web/components/connections/IntegrationsTab.tsx +0 -170
- package/src/web/components/connections/OverviewTab.tsx +0 -137
- package/src/web/components/connections/TriggersTab.tsx +0 -1346
- package/src/web/components/dashboard/Dashboard.tsx +0 -572
- package/src/web/components/dashboard/index.ts +0 -1
- package/src/web/components/index.ts +0 -21
- package/src/web/components/layout/ErrorBanner.tsx +0 -18
- package/src/web/components/layout/Header.tsx +0 -332
- package/src/web/components/layout/Sidebar.tsx +0 -231
- package/src/web/components/layout/index.ts +0 -3
- package/src/web/components/mcp/IntegrationsPanel.tsx +0 -857
- package/src/web/components/mcp/McpPage.tsx +0 -2515
- package/src/web/components/mcp/index.ts +0 -1
- package/src/web/components/meta-agent/MetaAgent.tsx +0 -245
- package/src/web/components/onboarding/OnboardingWizard.tsx +0 -404
- package/src/web/components/onboarding/index.ts +0 -1
- package/src/web/components/settings/SettingsPage.tsx +0 -2776
- package/src/web/components/settings/index.ts +0 -1
- package/src/web/components/skills/SkillsPage.tsx +0 -1200
- package/src/web/components/tasks/TasksPage.tsx +0 -1116
- package/src/web/components/tasks/index.ts +0 -1
- package/src/web/components/telemetry/TelemetryPage.tsx +0 -1129
- package/src/web/components/tests/TestsPage.tsx +0 -594
- package/src/web/components/threads/ThreadsPage.tsx +0 -315
- package/src/web/context/AuthContext.tsx +0 -242
- package/src/web/context/ProjectContext.tsx +0 -214
- package/src/web/context/TelemetryContext.tsx +0 -299
- package/src/web/context/ThemeContext.tsx +0 -90
- package/src/web/context/UIModeContext.tsx +0 -49
- package/src/web/context/index.ts +0 -12
- package/src/web/hooks/index.ts +0 -3
- package/src/web/hooks/useAgents.ts +0 -115
- package/src/web/hooks/useOnboarding.ts +0 -20
- package/src/web/hooks/useProviders.ts +0 -75
- package/src/web/icon.png +0 -0
- package/src/web/index.html +0 -16
- package/src/web/styles.css +0 -118
- package/src/web/themes.ts +0 -162
- package/src/web/types.ts +0 -298
package/dist/App.fds72zb5.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{Y as L,aa as P,ba as N}from"./App.yt9p4nr3.js";var z=L(P(),1),w=L(N(),1);function U({children:q,onClose:y}){return w.jsxDEV("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4",children:w.jsxDEV("div",{className:"bg-[var(--color-surface)] card p-6 w-full max-w-xl lg:max-w-2xl max-h-[90vh] overflow-y-auto",children:q},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function Q({title:q,message:y,confirmText:F="Confirm",cancelText:B="Cancel",confirmVariant:G="danger",onConfirm:I,onCancel:J}){return w.jsxDEV("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:w.jsxDEV("div",{className:"bg-[var(--color-surface)] card p-6 w-full max-w-sm",children:[q&&w.jsxDEV("h3",{className:"font-medium mb-2",children:q},void 0,!1,void 0,this),w.jsxDEV("p",{className:"text-sm text-[var(--color-text)] mb-4",children:y},void 0,!1,void 0,this),w.jsxDEV("div",{className:"flex gap-2",children:[w.jsxDEV("button",{onClick:J,className:"flex-1 text-sm bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] border border-[var(--color-border-light)] btn px-4 py-2 transition",children:B},void 0,!1,void 0,this),w.jsxDEV("button",{onClick:I,className:`flex-1 text-sm text-white px-4 py-2 btn transition ${G==="danger"?"bg-red-500 hover:bg-red-600":"bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)]"}`,children:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function R({title:q,message:y,buttonText:F="OK",variant:B="info",onClose:G}){let I={error:"bg-red-500/20 text-red-400",success:"bg-green-500/20 text-green-400",info:"bg-blue-500/20 text-blue-400"},J={error:"✕",success:"✓",info:"ℹ"};return w.jsxDEV("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:w.jsxDEV("div",{className:"bg-[var(--color-surface)] card p-6 w-full max-w-sm text-center",children:[w.jsxDEV("div",{className:`w-12 h-12 rounded-full flex items-center justify-center mx-auto mb-3 ${I[B]}`,children:w.jsxDEV("span",{className:"text-xl",children:J[B]},void 0,!1,void 0,this)},void 0,!1,void 0,this),q&&w.jsxDEV("h3",{className:"font-medium mb-2",children:q},void 0,!1,void 0,this),w.jsxDEV("p",{className:"text-sm text-[var(--color-text)] mb-4",children:y},void 0,!1,void 0,this),w.jsxDEV("button",{onClick:G,className:"w-full text-sm bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] border border-[var(--color-border-light)] px-4 py-2 btn transition",children:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function W(){let[q,y]=z.useState(null),F=z.useCallback((J,K={})=>{return new Promise((O)=>{y({message:J,options:K,resolve:O})})},[]),B=z.useCallback(()=>{q?.resolve(!0),y(null)},[q]),G=z.useCallback(()=>{q?.resolve(!1),y(null)},[q]),I=q?w.jsxDEV(Q,{title:q.options.title,message:q.message,confirmText:q.options.confirmText,cancelText:q.options.cancelText,confirmVariant:q.options.confirmVariant,onConfirm:B,onCancel:G},void 0,!1,void 0,this):null;return{confirm:F,ConfirmDialog:I}}function X(){let[q,y]=z.useState(null),F=z.useCallback((I,J={})=>{return new Promise((K)=>{y({message:I,options:J,resolve:K})})},[]),B=z.useCallback(()=>{q?.resolve(),y(null)},[q]),G=q?w.jsxDEV(R,{title:q.options.title,message:q.message,buttonText:q.options.buttonText,variant:q.options.variant,onClose:B},void 0,!1,void 0,this):null;return{alert:F,AlertDialog:G}}
|
|
2
|
-
export{U as N,W as O,X as P};
|
|
3
|
-
|
|
4
|
-
//# debugId=7519CEFEE35D5A3664756E2164756E21
|
package/dist/App.fg9qj2dq.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{Y as s,aa as b,ba as d}from"./App.yt9p4nr3.js";var r=s(b(),1),e=s(d(),1);function h({value:o,options:i,onChange:v,placeholder:m="Select...",compact:u}){let[a,l]=r.useState(!1),c=r.useRef(null),n=i.find((t)=>t.value===o);return r.useEffect(()=>{function t(f){if(c.current&&!c.current.contains(f.target))l(!1)}return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[]),e.jsxDEV("div",{ref:c,className:"relative",children:[e.jsxDEV("button",{type:"button",onClick:()=>l(!a),className:`w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] btn ${u?"px-2.5 py-1.5 text-sm":"px-3 py-2"} text-left flex items-center justify-between focus:outline-none focus:border-[var(--color-accent)] text-[var(--color-text)] hover:border-[var(--color-border-light)] transition`,children:[e.jsxDEV("span",{className:n?"text-[var(--color-text)]":"text-[var(--color-text-muted)]",children:n?e.jsxDEV(e.Fragment,{children:[n.label,n.recommended&&e.jsxDEV("span",{className:"text-[var(--color-accent)] text-xs ml-2",children:"(Recommended)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):m},void 0,!1,void 0,this),e.jsxDEV(p,{isOpen:a},void 0,!1,void 0,this)]},void 0,!0,void 0,this),a&&e.jsxDEV("div",{className:"absolute z-50 w-full min-w-max mt-1 bg-[var(--color-surface)] border border-[var(--color-border-light)] shadow-lg max-h-60 overflow-y-auto scrollbar-hide",style:{borderRadius:"var(--radius-button)"},children:i.map((t)=>e.jsxDEV("button",{type:"button",onClick:()=>{v(t.value),l(!1)},className:`w-full ${u?"px-2.5 py-1.5 text-sm":"px-3 py-2"} text-left flex items-center justify-between hover:bg-[var(--color-surface-raised)] transition ${t.value===o?"bg-[var(--color-surface-raised)] text-[var(--color-accent)]":"text-[var(--color-text)]"}`,children:[e.jsxDEV("span",{children:[t.label,t.recommended&&e.jsxDEV("span",{className:"text-[var(--color-accent)] text-xs ml-2",children:"(Recommended)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),t.value===o&&e.jsxDEV("svg",{className:"w-4 h-4 text-[var(--color-accent)]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},t.value,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function p({isOpen:o}){return e.jsxDEV("svg",{className:`w-4 h-4 text-[var(--color-text-muted)] transition-transform ${o?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}
|
|
2
|
-
export{h as V};
|
|
3
|
-
|
|
4
|
-
//# debugId=79A4E9CBC78E09D964756E2164756E21
|
package/dist/App.ndfejbm9.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{G as x,H as n,I as r,l as m,q as i}from"./App.x2d0ygt6.js";import{O as j}from"./App.fds72zb5.js";import{V as D}from"./App.fg9qj2dq.js";import{Y as g,aa as t,ba as u,ea as c,ka as V,na as d}from"./App.yt9p4nr3.js";var Q=g(t(),1);var z=g(u(),1);function Zz({onSelectAgent:B}){let{authFetch:N}=V(),{currentProjectId:w}=d(),[L,P]=Q.useState([]),[O,K]=Q.useState(!0),[_,J]=Q.useState("all"),[Z,Y]=Q.useState("all"),[U,W]=Q.useState(null),[R,I]=Q.useState(!1),[$,A]=Q.useState(!1),f=Q.useRef(null),{events:C}=c({category:"TASK"}),v=Q.useCallback(async()=>{try{let G=`/api/tasks?status=${_}`;if(w!==null)G+=`&project_id=${encodeURIComponent(w)}`;let X=await(await N(G)).json();P(X.tasks||[])}catch(G){console.error("Failed to fetch tasks:",G)}finally{K(!1)}},[N,_,w]);Q.useEffect(()=>{v()},[v]),Q.useEffect(()=>{if(!C.length)return;let G=C[0];if(!G||G.id===f.current)return;let H=G.type;if(H==="task_created"||H==="task_updated"||H==="task_deleted")f.current=G.id,console.log("[TasksPage] Telemetry event:",H),v()},[C,v]);let y=Q.useCallback(async(G)=>{W(G),I(!0);try{let H=await N(`/api/tasks/${G.agentId}/${G.id}`);if(console.log("[TasksPage] Fetch task response status:",H.status),H.ok){let X=await H.json();if(console.log("[TasksPage] Task data:",X),console.log("[TasksPage] Has trajectory:",!!X.task?.trajectory,"Length:",X.task?.trajectory?.length),X.task)W({...X.task,agentId:G.agentId,agentName:G.agentName})}else console.error("[TasksPage] Failed to fetch task:",H.status,await H.text())}catch(H){console.error("Failed to fetch task details:",H)}finally{I(!1)}},[N]),b=Q.useMemo(()=>{let G=new Map;for(let H of L){let X=H.agentId||H.agent_id,T=H.agentName||H.agent_name;if(X&&T&&!G.has(X))G.set(X,T)}return Array.from(G.entries()).sort((H,X)=>H[1].localeCompare(X[1]))},[L]),M=Q.useMemo(()=>{return[...Z==="all"?L:L.filter((H)=>(H.agentId||H.agent_id)===Z)].sort((H,X)=>{if(H.status==="running"&&X.status!=="running")return-1;if(X.status==="running"&&H.status!=="running")return 1;let T=H.status==="pending",p=X.status==="pending";if(T&&!p)return-1;if(p&&!T)return 1;if(T&&p||H.status==="running"&&X.status==="running"){let h=H.next_run||H.execute_at||null,l=X.next_run||X.execute_at||null,e=h?new Date(h).getTime():1/0,s=l?new Date(l).getTime():1/0;return e-s}let k=H.completed_at||H.executed_at||H.created_at,a=X.completed_at||X.executed_at||X.created_at;return new Date(a).getTime()-new Date(k).getTime()})},[L,Z]),q={pending:"bg-yellow-500/20 text-yellow-400",running:"bg-blue-500/20 text-blue-400",completed:"bg-green-500/20 text-green-400",failed:"bg-red-500/20 text-red-400",cancelled:"bg-gray-500/20 text-gray-400"};return z.jsxDEV("div",{className:"flex-1 flex overflow-hidden",children:[z.jsxDEV("div",{className:`flex-1 p-4 md:p-6 overflow-auto ${U?"hidden md:block md:w-1/2 lg:w-2/3":""}`,children:z.jsxDEV("div",{className:"max-w-4xl",children:[z.jsxDEV("div",{className:"mb-6",children:[z.jsxDEV("div",{className:"mb-4 flex items-start justify-between",children:[z.jsxDEV("div",{children:[z.jsxDEV("h1",{className:"text-xl md:text-2xl font-semibold mb-1",children:"Tasks"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-muted)]",children:"View tasks from all running agents"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("button",{onClick:()=>A(!0),className:"px-3 py-1.5 rounded text-sm bg-[var(--color-accent)] text-black hover:opacity-90 transition flex items-center gap-1.5 flex-shrink-0",children:[z.jsxDEV("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:z.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),"Create Task"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"flex items-center gap-3 flex-wrap pb-1",children:[z.jsxDEV("div",{className:"flex gap-2 overflow-x-auto scrollbar-hide",children:[{value:"all",label:"All"},{value:"pending",label:"Pending"},{value:"running",label:"Running"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"}].map((G)=>z.jsxDEV("button",{onClick:()=>J(G.value),className:`px-3 py-1.5 rounded text-sm transition whitespace-nowrap ${_===G.value?"bg-[var(--color-accent)] text-black":"bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)]"}`,children:G.label},G.value,!1,void 0,this))},void 0,!1,void 0,this),b.length>0&&z.jsxDEV("div",{className:"w-48",children:z.jsxDEV(D,{value:Z,onChange:Y,placeholder:"All agents",compact:!0,options:[{value:"all",label:"All agents"},...b.map(([G,H])=>({value:G,label:H}))]},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),O?z.jsxDEV("div",{className:"text-center py-12 text-[var(--color-text-muted)]",children:"Loading tasks..."},void 0,!1,void 0,this):M.length===0?z.jsxDEV("div",{className:"text-center py-12",children:[z.jsxDEV(i,{className:"w-12 h-12 mx-auto mb-4 text-[var(--color-border-light)]"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-[var(--color-text-muted)]",children:"No tasks found"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-faint)] mt-1",children:"Tasks will appear here when agents create them"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):z.jsxDEV("div",{className:"space-y-3",children:M.map((G)=>z.jsxDEV("div",{onClick:()=>y(G),className:`bg-[var(--color-surface)] border rounded-lg p-4 cursor-pointer transition ${U?.id===G.id&&U?.agentId===G.agentId?"border-[var(--color-accent)]":"border-[var(--color-border)] hover:border-[var(--color-border-light)]"}`,children:[z.jsxDEV("div",{className:"flex items-start justify-between mb-2",children:[z.jsxDEV("div",{className:"flex-1",children:[z.jsxDEV("h3",{className:"font-medium",children:G.title},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-muted)]",children:G.agentName},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("span",{className:`px-2 py-1 rounded text-xs font-medium ${q[G.status]||q.pending}`,children:G.status},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G.description&&z.jsxDEV("p",{className:"text-sm text-[var(--color-text-secondary)] mb-2 line-clamp-2",children:G.description},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-[var(--color-text-faint)]",children:[z.jsxDEV("span",{className:"flex items-center gap-1",children:[G.type==="recurring"?z.jsxDEV(x,{className:"w-3.5 h-3.5"},void 0,!1,void 0,this):G.execute_at?z.jsxDEV(n,{className:"w-3.5 h-3.5"},void 0,!1,void 0,this):z.jsxDEV(r,{className:"w-3.5 h-3.5"},void 0,!1,void 0,this),G.type==="recurring"&&G.recurrence?E(G.recurrence):G.type]},void 0,!0,void 0,this),z.jsxDEV("span",{children:["Priority: ",G.priority]},void 0,!0,void 0,this),G.next_run&&z.jsxDEV("span",{className:"text-[var(--color-accent)]",children:F(G.next_run)},void 0,!1,void 0,this),!G.next_run&&G.execute_at&&z.jsxDEV("span",{className:"text-[var(--color-accent)]",children:F(G.execute_at)},void 0,!1,void 0,this),z.jsxDEV("span",{children:["Created: ",new Date(G.created_at).toLocaleDateString()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},`${G.agentId}-${G.id}`,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),U&&z.jsxDEV(zz,{task:U,statusColors:q,onClose:()=>W(null),onSelectAgent:B,loading:R,authFetch:N,onRefresh:()=>{v(),W(null)}},void 0,!1,void 0,this),$&&z.jsxDEV(Gz,{authFetch:N,currentProjectId:w,onClose:()=>A(!1),onCreated:()=>{v(),A(!1)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function zz({task:B,statusColors:N,onClose:w,onSelectAgent:L,loading:P,authFetch:O,onRefresh:K}){let[_,J]=Q.useState(!1),[Z,Y]=Q.useState(!1),[U,W]=Q.useState(!1),[R,I]=Q.useState(!1),[$,A]=Q.useState({title:B.title,description:B.description||"",type:B.type,priority:B.priority,execute_at:B.execute_at?new Date(B.execute_at).toISOString().slice(0,16):"",recurrence:B.recurrence||""}),{confirm:f,ConfirmDialog:C}=j();Q.useEffect(()=>{A({title:B.title,description:B.description||"",type:B.type,priority:B.priority,execute_at:B.execute_at?new Date(B.execute_at).toISOString().slice(0,16):"",recurrence:B.recurrence||""}),W(!1)},[B.id,B.agentId]);let v=async()=>{if(!O||R)return;I(!0);try{let q={title:$.title.trim(),description:$.description.trim()||void 0,type:$.type,priority:$.priority};if($.type==="once"&&$.execute_at)q.execute_at=new Date($.execute_at).toISOString();if($.type==="recurring"&&$.recurrence.trim())q.recurrence=$.recurrence.trim();if((await O(`/api/tasks/${B.agentId}/${B.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(q)})).ok)W(!1),K?.()}catch(q){console.error("Failed to update task:",q)}finally{I(!1)}},y=async()=>{if(!O||_)return;J(!0);try{await O(`/api/tasks/${B.agentId}/${B.id}/execute`,{method:"POST"}),K?.()}catch(q){console.error("Failed to execute task:",q)}finally{J(!1)}},b=async()=>{if(!O||Z)return;if(!await f(`Are you sure you want to delete "${B.title}"?`,{title:"Delete Task",confirmText:"Delete",confirmVariant:"danger"}))return;Y(!0);try{await O(`/api/tasks/${B.agentId}/${B.id}`,{method:"DELETE"}),K?.()}catch(S){console.error("Failed to delete task:",S)}finally{Y(!1)}},M="w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-2 py-1.5 text-sm focus:outline-none focus:border-[var(--color-accent)] text-[var(--color-text)]";return z.jsxDEV("div",{className:"w-full md:w-1/2 lg:w-1/3 border-l border-[var(--color-border)] bg-[var(--color-bg)] flex flex-col overflow-hidden",children:[C,z.jsxDEV("div",{className:"flex items-center justify-between p-4 border-b border-[var(--color-border)]",children:[z.jsxDEV("h2",{className:"font-medium truncate pr-2",children:U?"Edit Task":"Task Details"},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex items-center gap-2",children:[O&&!U&&(B.status==="pending"||B.status==="completed"||B.status==="failed")&&z.jsxDEV("button",{onClick:()=>W(!0),title:"Edit task",className:"text-[var(--color-text-muted)] hover:text-[var(--color-accent)] transition",children:z.jsxDEV("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:z.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),O&&!U&&(B.status==="pending"||B.status==="completed")&&z.jsxDEV("button",{onClick:y,disabled:_,title:"Execute now",className:"text-[var(--color-accent)] hover:opacity-80 transition disabled:opacity-50",children:z.jsxDEV("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[z.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"},void 0,!1,void 0,this),z.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),O&&!U&&z.jsxDEV("button",{onClick:b,disabled:Z,title:"Delete task",className:"text-red-400 hover:text-red-300 transition disabled:opacity-50",children:z.jsxDEV("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:z.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),U&&z.jsxDEV(z.Fragment,{children:[z.jsxDEV("button",{onClick:()=>{W(!1),A({title:B.title,description:B.description||"",type:B.type,priority:B.priority,execute_at:B.execute_at?new Date(B.execute_at).toISOString().slice(0,16):"",recurrence:B.recurrence||""})},className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] text-sm transition",children:"Cancel"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:v,disabled:R||!$.title.trim(),className:"px-3 py-1 rounded text-sm bg-[var(--color-accent)] text-black hover:opacity-90 transition disabled:opacity-50",children:R?"Saving...":"Save"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!U&&z.jsxDEV("button",{onClick:w,className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] transition",children:z.jsxDEV(m,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"flex-1 overflow-auto p-4 space-y-4",children:[z.jsxDEV("div",{children:[z.jsxDEV("div",{className:"flex items-start justify-between gap-2 mb-2",children:[U?z.jsxDEV("input",{type:"text",value:$.title,onChange:(q)=>A({...$,title:q.target.value}),className:`${M} text-lg font-medium`,placeholder:"Task title"},void 0,!1,void 0,this):z.jsxDEV("h3",{className:"text-lg font-medium",children:B.title},void 0,!1,void 0,this),!U&&z.jsxDEV("span",{className:`px-2 py-1 rounded text-xs font-medium flex-shrink-0 ${N[B.status]}`,children:B.status},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!U&&z.jsxDEV("button",{onClick:()=>L?.(B.agentId),className:"text-sm text-[var(--color-accent)] hover:underline",children:B.agentName},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U?z.jsxDEV("div",{children:[z.jsxDEV("h4",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-1",children:"Description"},void 0,!1,void 0,this),z.jsxDEV("textarea",{value:$.description,onChange:(q)=>A({...$,description:q.target.value}),className:`${M} resize-none`,rows:3,placeholder:"Task description..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):B.description?z.jsxDEV("div",{children:[z.jsxDEV("h4",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-1",children:"Description"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-secondary)] whitespace-pre-wrap",children:B.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,U?z.jsxDEV("div",{className:"grid grid-cols-2 gap-3",children:[z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-1 block",children:"Type"},void 0,!1,void 0,this),z.jsxDEV("select",{value:$.type,onChange:(q)=>A({...$,type:q.target.value}),className:M,children:[z.jsxDEV("option",{value:"once",children:"One-time"},void 0,!1,void 0,this),z.jsxDEV("option",{value:"recurring",children:"Recurring"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-1 block",children:"Priority"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"number",min:1,max:10,value:$.priority,onChange:(q)=>A({...$,priority:Number(q.target.value)}),className:M},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):z.jsxDEV("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[z.jsxDEV("div",{children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Type"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"capitalize",children:B.type},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Priority"},void 0,!1,void 0,this),z.jsxDEV("p",{children:B.priority},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Source"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"capitalize",children:B.source},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B.recurrence&&z.jsxDEV("div",{children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Recurrence"},void 0,!1,void 0,this),z.jsxDEV("p",{children:E(B.recurrence)},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-0.5 font-mono",children:B.recurrence},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),U&&$.type==="once"&&z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-1 block",children:"Schedule"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"datetime-local",value:$.execute_at,onChange:(q)=>A({...$,execute_at:q.target.value}),className:M},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"Leave empty for manual execution"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U&&$.type==="recurring"&&z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-1 block",children:"Cron Schedule"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"text",value:$.recurrence,onChange:(q)=>A({...$,recurrence:q.target.value}),className:`${M} font-mono`,placeholder:"*/30 * * * *"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"e.g. */30 * * * * = every 30 min"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!U&&z.jsxDEV("div",{className:"space-y-2 text-sm",children:[z.jsxDEV("div",{className:"flex justify-between",children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Created"},void 0,!1,void 0,this),z.jsxDEV("span",{children:new Date(B.created_at).toLocaleString()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B.execute_at&&z.jsxDEV("div",{className:"flex justify-between",children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Scheduled"},void 0,!1,void 0,this),z.jsxDEV("span",{className:"text-[var(--color-accent)]",children:F(B.execute_at)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B.executed_at&&z.jsxDEV("div",{className:"flex justify-between",children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Started"},void 0,!1,void 0,this),z.jsxDEV("span",{children:new Date(B.executed_at).toLocaleString()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B.completed_at&&z.jsxDEV("div",{className:"flex justify-between",children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Completed"},void 0,!1,void 0,this),z.jsxDEV("span",{children:new Date(B.completed_at).toLocaleString()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B.next_run&&z.jsxDEV("div",{className:"flex justify-between",children:[z.jsxDEV("span",{className:"text-[var(--color-text-muted)]",children:"Next Run"},void 0,!1,void 0,this),z.jsxDEV("span",{className:"text-[var(--color-accent)]",children:F(B.next_run)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),B.status==="failed"&&B.error&&z.jsxDEV("div",{className:"min-w-0",children:[z.jsxDEV("h4",{className:"text-xs text-red-400 uppercase tracking-wider mb-1",children:"Error"},void 0,!1,void 0,this),z.jsxDEV("div",{className:"bg-red-500/10 border border-red-500/20 rounded p-3 overflow-x-auto",children:z.jsxDEV("pre",{className:"text-sm text-red-400 whitespace-pre-wrap break-words",children:B.error},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B.status==="completed"&&B.result&&z.jsxDEV("div",{className:"min-w-0",children:[z.jsxDEV("h4",{className:"text-xs text-green-400 uppercase tracking-wider mb-1",children:"Result"},void 0,!1,void 0,this),z.jsxDEV("div",{className:"bg-green-500/10 border border-green-500/20 rounded p-3 overflow-x-auto",children:z.jsxDEV("pre",{className:"text-sm text-green-400 whitespace-pre-wrap break-words",children:typeof B.result==="string"?B.result:JSON.stringify(B.result,null,2)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P&&!B.trajectory&&z.jsxDEV("div",{children:[z.jsxDEV("h4",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-2",children:"Trajectory"},void 0,!1,void 0,this),z.jsxDEV("div",{className:"text-sm text-[var(--color-text-faint)]",children:"Loading trajectory..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B.trajectory&&B.trajectory.length>0&&z.jsxDEV("div",{children:[z.jsxDEV("h4",{className:"text-xs text-[var(--color-text-muted)] uppercase tracking-wider mb-2",children:["Trajectory (",B.trajectory.length," steps)"]},void 0,!0,void 0,this),z.jsxDEV(Bz,{trajectory:B.trajectory},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Bz({trajectory:B}){let[N,w]=Q.useState(new Set),L=(K)=>{w((_)=>{let J=new Set(_);if(J.has(K))J.delete(K);else J.add(K);return J})},P={user:{bg:"bg-blue-500/10",text:"text-blue-400",icon:"\uD83D\uDC64",label:"User"},assistant:{bg:"bg-purple-500/10",text:"text-purple-400",icon:"\uD83E\uDD16",label:"Assistant"}},O=(K)=>{let _=K.content;if(typeof _==="string"){let J=_.length>200,Z=N.has(K.id);return z.jsxDEV("div",{children:[z.jsxDEV("p",{className:`text-sm text-[var(--color-text)] whitespace-pre-wrap break-words ${!Z&&J?"line-clamp-4":""}`,children:_},void 0,!1,void 0,this),J&&z.jsxDEV("button",{onClick:()=>L(K.id),className:"text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)] mt-1",children:Z?"Show less":"Show more..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}return z.jsxDEV("div",{className:"space-y-2",children:_.map((J,Z)=>{if(J.type==="tool_use"){let Y=JSON.stringify(J.input,null,2),U=Y.length>150,W=`${K.id}-${Z}`,R=N.has(W);return z.jsxDEV("div",{className:"bg-orange-500/10 border border-orange-500/20 rounded p-2",children:[z.jsxDEV("div",{className:"flex items-center gap-2 mb-1",children:[z.jsxDEV("span",{className:"text-orange-400",children:"\uD83D\uDD27"},void 0,!1,void 0,this),z.jsxDEV("span",{className:"text-xs font-medium text-orange-400",children:"Tool Call"},void 0,!1,void 0,this),z.jsxDEV("span",{className:"text-xs text-[var(--color-text-secondary)]",children:J.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("pre",{className:`text-xs text-[var(--color-text-secondary)] overflow-x-auto ${!R&&U?"line-clamp-3":""}`,children:Y},void 0,!1,void 0,this),U&&z.jsxDEV("button",{onClick:()=>L(W),className:"text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)] mt-1",children:R?"Show less":"Show more..."},void 0,!1,void 0,this)]},Z,!0,void 0,this)}if(J.type==="tool_result"){let Y=J.is_error,U=`${K.id}-${Z}`,W=N.has(U),R=J.content.length>150;return z.jsxDEV("div",{className:`${Y?"bg-red-500/10 border-red-500/20":"bg-teal-500/10 border-teal-500/20"} border rounded p-2`,children:[z.jsxDEV("div",{className:"flex items-center gap-2 mb-1",children:[z.jsxDEV("span",{children:Y?"❌":"\uD83D\uDCCB"},void 0,!1,void 0,this),z.jsxDEV("span",{className:`text-xs font-medium ${Y?"text-red-400":"text-teal-400"}`,children:"Tool Result"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("pre",{className:`text-xs text-[var(--color-text-secondary)] overflow-x-auto whitespace-pre-wrap break-words ${!W&&R?"line-clamp-3":""}`,children:J.content},void 0,!1,void 0,this),R&&z.jsxDEV("button",{onClick:()=>L(U),className:"text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)] mt-1",children:W?"Show less":"Show more..."},void 0,!1,void 0,this)]},Z,!0,void 0,this)}return null})},void 0,!1,void 0,this)};return z.jsxDEV("div",{className:"space-y-2",children:B.map((K)=>{let _=P[K.role]||P.assistant;return z.jsxDEV("div",{className:`${_.bg} border border-[var(--color-border)] rounded overflow-hidden p-3`,children:[z.jsxDEV("div",{className:"flex items-center gap-2 mb-2",children:[z.jsxDEV("span",{children:_.icon},void 0,!1,void 0,this),z.jsxDEV("span",{className:`text-xs font-medium ${_.text}`,children:_.label},void 0,!1,void 0,this),K.model&&z.jsxDEV("span",{className:"text-xs text-[var(--color-text-faint)]",children:["· ",K.model]},void 0,!0,void 0,this),z.jsxDEV("span",{className:"text-xs text-[var(--color-text-faint)]",children:["· ",new Date(K.created_at).toLocaleTimeString()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),O(K)]},K.id,!0,void 0,this)})},void 0,!1,void 0,this)}function Gz({authFetch:B,currentProjectId:N,onClose:w,onCreated:L}){let[P,O]=Q.useState([]),[K,_]=Q.useState(""),[J,Z]=Q.useState(""),[Y,U]=Q.useState(""),[W,R]=Q.useState("once"),[I,$]=Q.useState(5),[A,f]=Q.useState(""),[C,v]=Q.useState(""),[y,b]=Q.useState(!1),[M,q]=Q.useState("");return Q.useEffect(()=>{B("/api/agents").then((G)=>G.json()).then((G)=>{let H=(G.agents||[]).filter((X)=>X.status==="running"&&X.features?.tasks);if(O(H.map((X)=>({id:X.id,name:X.name}))),H.length===1)_(H[0].id)}).catch(()=>{})},[B]),z.jsxDEV("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",onClick:w,children:z.jsxDEV("div",{className:"bg-[var(--color-surface)] card w-full max-w-md",onClick:(G)=>G.stopPropagation(),children:[z.jsxDEV("div",{className:"flex items-center justify-between p-4 border-b border-[var(--color-border)]",children:[z.jsxDEV("h2",{className:"font-medium",children:"Create Task"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:w,className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] transition",children:z.jsxDEV(m,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("form",{onSubmit:async(G)=>{if(G.preventDefault(),!K||!J.trim())return;b(!0),q("");let H={title:J.trim(),description:Y.trim()||void 0,type:W,priority:I};if(W==="once"&&A)H.execute_at=new Date(A).toISOString();if(W==="recurring"&&C.trim())H.recurrence=C.trim();try{let X=await B(`/api/tasks/${K}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(H)});if(!X.ok){let T=await X.json().catch(()=>({}));q(T.error||`HTTP ${X.status}`);return}L()}catch(X){q(String(X))}finally{b(!1)}},className:"p-4 space-y-4",children:[z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-muted)] mb-1",children:"Agent"},void 0,!1,void 0,this),P.length===0?z.jsxDEV("p",{className:"text-sm text-[var(--color-text-faint)]",children:"No running agents with tasks enabled"},void 0,!1,void 0,this):z.jsxDEV("select",{value:K,onChange:(G)=>_(G.target.value),className:"w-full bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-3 py-2 text-sm",required:!0,children:[z.jsxDEV("option",{value:"",children:"Select agent..."},void 0,!1,void 0,this),P.map((G)=>z.jsxDEV("option",{value:G.id,children:G.name},G.id,!1,void 0,this))]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-muted)] mb-1",children:"Title"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"text",value:J,onChange:(G)=>Z(G.target.value),className:"w-full bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-3 py-2 text-sm",placeholder:"e.g. Check email for new orders",required:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-muted)] mb-1",children:"Description"},void 0,!1,void 0,this),z.jsxDEV("textarea",{value:Y,onChange:(G)=>U(G.target.value),className:"w-full bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-3 py-2 text-sm resize-none",rows:2,placeholder:"Optional instructions for the agent..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"grid grid-cols-2 gap-3",children:[z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-muted)] mb-1",children:"Type"},void 0,!1,void 0,this),z.jsxDEV("select",{value:W,onChange:(G)=>R(G.target.value),className:"w-full bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-3 py-2 text-sm",children:[z.jsxDEV("option",{value:"once",children:"One-time"},void 0,!1,void 0,this),z.jsxDEV("option",{value:"recurring",children:"Recurring"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-muted)] mb-1",children:"Priority"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"number",min:1,max:10,value:I,onChange:(G)=>$(Number(G.target.value)),className:"w-full bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-3 py-2 text-sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W==="once"&&z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-muted)] mb-1",children:"Schedule (optional)"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"datetime-local",value:A,onChange:(G)=>f(G.target.value),className:"w-full bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-3 py-2 text-sm"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"Leave empty to execute immediately"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W==="recurring"&&z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-muted)] mb-1",children:"Cron Schedule"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"text",value:C,onChange:(G)=>v(G.target.value),className:"w-full bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-3 py-2 text-sm font-mono",placeholder:"*/30 * * * *",required:!0},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"e.g. */30 * * * * = every 30 min, 0 9 * * 1-5 = weekdays at 9am"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M&&z.jsxDEV("p",{className:"text-sm text-red-400",children:M},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex justify-end gap-2 pt-2",children:[z.jsxDEV("button",{type:"button",onClick:w,className:"px-4 py-2 rounded text-sm bg-[var(--color-surface-raised)] hover:bg-[var(--color-border)] transition",children:"Cancel"},void 0,!1,void 0,this),z.jsxDEV("button",{type:"submit",disabled:y||!K||!J.trim()||P.length===0,className:"px-4 py-2 rounded text-sm bg-[var(--color-accent)] text-black hover:opacity-90 transition disabled:opacity-50",children:y?"Creating...":"Create Task"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function E(B){try{let N=B.trim().split(/\s+/);if(N.length!==5)return B;let[w,L,P,O,K]=N;if(w.startsWith("*/")&&L==="*"&&P==="*"&&O==="*"&&K==="*"){let J=parseInt(w.slice(2));if(J===1)return"Every minute";return`Every ${J} minutes`}if(w!=="*"&&!w.includes("/")&&L==="*"&&P==="*"&&O==="*"&&K==="*")return"Every hour";if(L.startsWith("*/")&&P==="*"&&O==="*"&&K==="*"){let J=parseInt(L.slice(2));if(J===1)return"Every hour";return`Every ${J} hours`}let _=(J,Z)=>{let Y=parseInt(J),U=parseInt(Z);if(isNaN(Y))return"";let W=Y>=12?"PM":"AM";return`${Y===0?12:Y>12?Y-12:Y}:${U.toString().padStart(2,"0")} ${W}`};if(L!=="*"&&!L.includes("/")&&P==="*"&&O==="*"){let J=_(L,w);if(K==="*")return`Daily at ${J}`;let Z=K.split(",").map((Y)=>{let U=parseInt(Y.trim());return o[U]||Y});if(Z.length===7)return`Daily at ${J}`;if(Z.length===5&&!Z.includes("Sat")&&!Z.includes("Sun"))return`Weekdays at ${J}`;if(Z.length===1)return`Weekly on ${Z[0]} at ${J}`;return`${Z.join(" & ")} at ${J}`}return B}catch{return B}}function F(B){let N=new Date(B),w=new Date,L=N.getTime()-w.getTime(),P=Math.abs(L),O=L>0,K=Math.floor(P/60000),_=Math.floor(P/3600000),J=Math.floor(P/86400000),Z=N.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}),Y=N.toDateString()===w.toDateString(),U=new Date(w);U.setDate(U.getDate()+1);let W=N.toDateString()===U.toDateString(),R=new Date(w);R.setDate(R.getDate()-1);let I=N.toDateString()===R.toDateString();if(Y){if(K<1)return O?"now":"just now";if(K<60)return O?`in ${K} min (${Z})`:`${K} min ago`;return O?`in ${_}h (${Z})`:`${_}h ago`}if(W)return`Tomorrow at ${Z}`;if(I)return`Yesterday at ${Z}`;if(J<7)return`${o[N.getDay()]} at ${Z}`;return N.toLocaleDateString([],{month:"short",day:"numeric"})+` at ${Z}`}
|
|
2
|
-
export{Zz as d,zz as e,Bz as f,E as g,F as h};
|
|
3
|
-
|
|
4
|
-
//# debugId=BFBB171C34E7F8ED64756E2164756E21
|
package/dist/App.nxmfmq1h.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import{O as Oz,P as Wz}from"./App.fds72zb5.js";import{V as j}from"./App.fg9qj2dq.js";import{Y as n,aa as Qz,ba as zz,ka as Jz,na as Kz}from"./App.yt9p4nr3.js";var W=n(Qz(),1);var z=n(zz(),1);function Rz(){let{authFetch:K}=Jz(),{projects:Z,currentProjectId:Y}=Kz(),[B,N]=W.useState([]),[y,M]=W.useState(!0),[X,U]=W.useState("installed"),[G,Q]=W.useState(!1),[C,H]=W.useState(!1),[v,T]=W.useState(null),{confirm:f,ConfirmDialog:w}=Oz(),{alert:P,AlertDialog:d}=Wz(),_=Z.length>0,[m,p]=W.useState(""),[h,Xz]=W.useState([]),[c,r]=W.useState(!1),[Yz,o]=W.useState(null),[a,i]=W.useState(""),[R,t]=W.useState([]),[I,u]=W.useState(!1),[V,b]=W.useState(null),[q,l]=W.useState(null),[e,S]=W.useState(null),[x,Zz]=W.useState(Y&&Y!=="unassigned"?Y:null),D=B.filter((J)=>{if(!Y)return!0;if(Y==="unassigned")return J.project_id===null;return J.project_id===null||J.project_id===Y}),F=async()=>{try{let O=await(await K("/api/skills")).json();N(O.skills||[])}catch(J){console.error("Failed to fetch skills:",J)}M(!1)},E=async(J)=>{r(!0);try{let O=J!==void 0?J:m,$=O?`/api/skills/marketplace/search?q=${encodeURIComponent(O)}`:"/api/skills/marketplace/featured",A=await(await K($)).json();Xz(A.skills||[])}catch(O){console.error("Failed to search marketplace:",O)}r(!1)};W.useEffect(()=>{F()},[K]),W.useEffect(()=>{if(X==="marketplace"&&h.length===0)E("")},[X]);let _z=async(J)=>{try{await K(`/api/skills/${J}/toggle`,{method:"POST"}),F()}catch(O){console.error("Failed to toggle skill:",O)}},$z=async(J)=>{if(!await f("Delete this skill?",{confirmText:"Delete",title:"Delete Skill"}))return;try{if(await K(`/api/skills/${J}`,{method:"DELETE"}),v?.id===J)T(null);F()}catch($){console.error("Failed to delete skill:",$)}},Bz=async(J)=>{o(J.id);try{let O=await K(`/api/skills/marketplace/${J.id}/install`,{method:"POST"}),$=await O.json();if(O.ok)await P(`Installed "${J.name}" successfully!`,{title:"Skill Installed"}),F(),U("installed");else await P($.error||"Failed to install skill",{title:"Installation Failed"})}catch(O){console.error("Failed to install skill:",O),await P("Failed to install skill",{title:"Error"})}o(null)},g=(J)=>B.some((O)=>O.name===J),s=async(J)=>{let O=J||a;if(!O.trim())return;let $="",L="";if(O.includes("github.com")){let A=O.match(/github\.com\/([^/]+)\/([^/]+)/);if(A)$=A[1],L=A[2].replace(/\.git$/,"")}else if(O.includes("/")){let A=O.split("/");$=A[0],L=A[1]}if(!$||!L){b("Invalid repo format. Use 'owner/repo' or GitHub URL");return}u(!0),b(null),t([]),l(null);try{let A=await K(`/api/skills/github/${$}/${L}`),k=await A.json();if(!A.ok){b(k.error||"Failed to fetch repository"),u(!1);return}t(k.skills||[]),l(k.repo||null)}catch(A){b("Failed to fetch repository")}u(!1)},Nz=async(J)=>{if(!q)return;S(J.name);try{let O=await K("/api/skills/github/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({owner:q.owner,repo:q.repo,skillName:J.name,downloadUrl:J.downloadUrl,projectId:x})}),$=await O.json();if(O.ok)await P(`Installed "${J.name}" successfully!`,{title:"Skill Installed"}),F();else await P($.error||"Failed to install skill",{title:"Installation Failed",variant:"error"})}catch(O){await P("Failed to install skill",{title:"Error",variant:"error"})}S(null)},Uz=async()=>{if(!q||R.length===0)return;let J=R.filter((L)=>!g(L.name));if(J.length===0){await P("All skills are already installed",{title:"Info"});return}if(!await f(`Install ${J.length} skill(s) from ${q.owner}/${q.repo}?`,{confirmText:"Install All",title:"Install Skills"}))return;let $=0;for(let L of J){S(L.name);try{if((await K("/api/skills/github/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({owner:q.owner,repo:q.repo,skillName:L.name,downloadUrl:L.downloadUrl,projectId:x})})).ok)$++}catch(A){}}S(null),F(),await P(`Installed ${$} of ${J.length} skills`,{title:"Installation Complete"})};return z.jsxDEV(z.Fragment,{children:[w,d,z.jsxDEV("div",{className:"flex-1 overflow-auto p-6",children:z.jsxDEV("div",{className:"max-w-6xl",children:[z.jsxDEV("div",{className:"flex items-center justify-between mb-6",children:[z.jsxDEV("div",{children:[z.jsxDEV("h1",{className:"text-2xl font-semibold mb-1",children:"Skills"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-[var(--color-text-muted)]",children:"Manage agent skills - instructions that teach agents how to perform tasks."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X==="installed"&&z.jsxDEV("div",{className:"flex gap-2",children:[z.jsxDEV("button",{onClick:()=>H(!0),className:"bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] text-white px-4 py-2 rounded font-medium transition border border-[var(--color-border-light)]",children:"Import"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:()=>Q(!0),className:"bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] text-black px-4 py-2 rounded font-medium transition",children:"+ Create Skill"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"flex gap-1 mb-6 bg-[var(--color-surface)] card p-1 w-fit",children:[z.jsxDEV("button",{onClick:()=>U("installed"),className:`px-4 py-2 rounded text-sm font-medium transition ${X==="installed"?"bg-[var(--color-surface-raised)] text-white":"text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"}`,children:["Installed (",D.length,")"]},void 0,!0,void 0,this),z.jsxDEV("button",{onClick:()=>U("github"),className:`px-4 py-2 rounded text-sm font-medium transition ${X==="github"?"bg-[var(--color-surface-raised)] text-white":"text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"}`,children:"Browse GitHub"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:()=>U("marketplace"),className:`px-4 py-2 rounded text-sm font-medium transition ${X==="marketplace"?"bg-[var(--color-surface-raised)] text-white":"text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"}`,children:"Marketplace"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X==="installed"&&z.jsxDEV(z.Fragment,{children:y?z.jsxDEV("div",{className:"text-[var(--color-text-muted)]",children:"Loading skills..."},void 0,!1,void 0,this):B.length===0?z.jsxDEV("div",{className:"text-center py-20 text-[var(--color-text-muted)]",children:[z.jsxDEV("p",{className:"text-lg",children:"No skills installed"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm mt-1",children:"Create a skill or browse the marketplace"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:()=>U("marketplace"),className:"mt-4 bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] text-black px-4 py-2 rounded font-medium transition",children:"Browse Marketplace"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):D.length===0?z.jsxDEV("div",{className:"bg-[var(--color-surface)] card p-6 text-center",children:z.jsxDEV("p",{className:"text-[var(--color-text-muted)]",children:"No skills match this filter."},void 0,!1,void 0,this)},void 0,!1,void 0,this):z.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:D.map((J)=>{let O=_&&J.project_id?Z.find(($)=>$.id===J.project_id):null;return z.jsxDEV(Hz,{skill:J,project:O,onToggle:()=>_z(J.id),onDelete:()=>$z(J.id),onView:()=>T(J)},J.id,!1,void 0,this)})},void 0,!1,void 0,this)},void 0,!1,void 0,this),X==="github"&&z.jsxDEV("div",{className:"space-y-6",children:[z.jsxDEV("form",{onSubmit:(J)=>{J.preventDefault(),s()},className:"flex gap-2",children:[z.jsxDEV("input",{type:"text",value:a,onChange:(J)=>i(J.target.value),placeholder:"Enter GitHub repo (e.g., WordPress/agent-skills)",className:"flex-1 bg-[var(--color-surface)] border border-[var(--color-border-light)] rounded-lg px-4 py-3 focus:outline-none focus:border-[var(--color-accent)]"},void 0,!1,void 0,this),z.jsxDEV("button",{type:"submit",disabled:I,className:"bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] disabled:opacity-50 text-black px-6 py-3 rounded-lg font-medium transition",children:I?"...":"Browse"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_&&R.length>0&&z.jsxDEV("div",{className:"flex items-center gap-3 p-3 bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded-lg",children:[z.jsxDEV("span",{className:"text-sm text-[var(--color-text-muted)]",children:"Install to:"},void 0,!1,void 0,this),z.jsxDEV(j,{value:x||"",onChange:(J)=>Zz(J||null),options:[{value:"",label:"Global (all projects)"},...Z.map((J)=>({value:J.id,label:J.name}))],placeholder:"Select scope..."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),V&&z.jsxDEV("div",{className:"text-red-400 text-sm p-3 bg-red-500/10 border border-red-500/20 rounded-lg",children:V},void 0,!1,void 0,this),q&&R.length>0&&z.jsxDEV("div",{className:"flex items-center justify-between",children:[z.jsxDEV("div",{className:"flex items-center gap-3",children:[z.jsxDEV("a",{href:q.url,target:"_blank",rel:"noopener noreferrer",className:"text-[var(--color-accent)] hover:underline font-medium",children:[q.owner,"/",q.repo]},void 0,!0,void 0,this),z.jsxDEV("span",{className:"text-sm text-[var(--color-text-muted)]",children:[R.length," skill",R.length!==1?"s":""," found"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.some((J)=>!g(J.name))&&z.jsxDEV("button",{onClick:Uz,disabled:!!e,className:"text-sm bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] border border-[var(--color-border-light)] hover:border-[var(--color-accent)] px-4 py-2 rounded transition disabled:opacity-50",children:"Install All"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),I&&z.jsxDEV("div",{className:"text-center py-8 text-[var(--color-text-muted)]",children:"Fetching skills from repository..."},void 0,!1,void 0,this),!I&&!q&&!V&&z.jsxDEV("div",{className:"bg-[var(--color-surface)] card p-8 text-center",children:[z.jsxDEV("div",{className:"text-4xl mb-4",children:"\uD83D\uDCE6"},void 0,!1,void 0,this),z.jsxDEV("h3",{className:"text-lg font-medium mb-2",children:"Browse Skills from GitHub"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-[var(--color-text-muted)] mb-6 max-w-md mx-auto",children:"Enter a GitHub repository to browse and install skills. Skills are markdown files with instructions that teach agents how to perform specific tasks."},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex flex-wrap gap-2 justify-center",children:[{label:"WordPress Skills",repo:"WordPress/agent-skills"}].map(({label:J,repo:O})=>z.jsxDEV("button",{onClick:()=>{i(O),s(O)},className:"text-sm bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] border border-[var(--color-border-light)] hover:border-[var(--color-accent)] px-3 py-1.5 rounded transition",children:J},O,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!I&&q&&R.length===0&&z.jsxDEV("div",{className:"text-center py-8 text-[var(--color-text-muted)]",children:"No skills found in this repository. Skills should be in subdirectories with a SKILL.md file."},void 0,!1,void 0,this),R.length>0&&z.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:R.map((J)=>{let O=g(J.name),$=e===J.name;return z.jsxDEV("div",{className:`bg-[var(--color-surface)] border rounded-lg p-4 transition ${O?"border-green-500/30":"border-[var(--color-border)] hover:border-[var(--color-border-light)]"}`,children:z.jsxDEV("div",{className:"flex items-start justify-between gap-3",children:[z.jsxDEV("div",{className:"flex-1 min-w-0",children:[z.jsxDEV("div",{className:"flex items-center gap-2",children:[z.jsxDEV("h3",{className:"font-medium truncate",children:J.name},void 0,!1,void 0,this),O&&z.jsxDEV("span",{className:"text-xs text-green-400",children:"✓ Installed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-muted)] mt-1 line-clamp-2",children:J.description||"No description"},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex items-center gap-2 mt-2 text-xs text-[var(--color-text-faint)]",children:[z.jsxDEV("span",{children:[(J.size/1024).toFixed(1),"KB"]},void 0,!0,void 0,this),z.jsxDEV("span",{className:"px-1.5 py-0.5 rounded bg-blue-500/10 text-blue-400",children:"GitHub"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"flex-shrink-0",children:O?z.jsxDEV("span",{className:"text-xs text-[var(--color-text-faint)] px-3 py-1.5",children:"Added"},void 0,!1,void 0,this):z.jsxDEV("button",{onClick:()=>Nz(J),disabled:$,className:"text-sm bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] border border-[var(--color-border-light)] hover:border-[var(--color-accent)] px-3 py-1.5 rounded transition disabled:opacity-50",children:$?"Installing...":"Install"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},J.name,!1,void 0,this)})},void 0,!1,void 0,this),z.jsxDEV("div",{className:"p-4 bg-[var(--color-surface)] card text-sm text-[var(--color-text-muted)]",children:z.jsxDEV("p",{children:["Skills are sourced from GitHub repositories. Each skill should be in its own directory with a"," ",z.jsxDEV("code",{className:"text-[var(--color-text-secondary)] bg-[var(--color-bg)] px-1 rounded",children:"SKILL.md"},void 0,!1,void 0,this)," file containing instructions."]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X==="marketplace"&&z.jsxDEV(z.Fragment,{children:[z.jsxDEV("div",{className:"mb-6",children:z.jsxDEV("div",{className:"flex gap-2",children:[z.jsxDEV("input",{type:"text",value:m,onChange:(J)=>p(J.target.value),onKeyDown:(J)=>J.key==="Enter"&&E(),placeholder:"Search skills...",className:"flex-1 bg-[var(--color-surface)] border border-[var(--color-border)] rounded px-4 py-2 focus:outline-none focus:border-[var(--color-accent)]"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:()=>E(),disabled:c,className:"bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] text-white px-4 py-2 rounded font-medium transition border border-[var(--color-border-light)]",children:c?"...":"Search"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),c?z.jsxDEV("div",{className:"text-[var(--color-text-muted)]",children:"Loading..."},void 0,!1,void 0,this):h.length===0?z.jsxDEV("div",{className:"text-center py-20 text-[var(--color-text-muted)]",children:[z.jsxDEV("p",{className:"text-lg",children:"No skills found"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm mt-1",children:"Try a different search term"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):z.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:h.map((J)=>z.jsxDEV(qz,{skill:J,installed:g(J.name),installing:Yz===J.id,onInstall:()=>Bz(J)},J.id,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G&&z.jsxDEV(Az,{authFetch:K,onClose:()=>Q(!1),onCreated:()=>{Q(!1),F()},projects:_?Z:void 0,defaultProjectId:Y&&Y!=="unassigned"?Y:null},void 0,!1,void 0,this),C&&z.jsxDEV(yz,{authFetch:K,onClose:()=>H(!1),onImported:()=>{H(!1),F()}},void 0,!1,void 0,this),v&&z.jsxDEV(Mz,{skill:v,authFetch:K,onClose:()=>T(null),onUpdated:()=>{T(null),F()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Hz({skill:K,project:Z,onToggle:Y,onDelete:B,onView:N}){let y={local:"Local",skillsmp:"SkillsMP",github:"GitHub",import:"Imported"}[K.source],M=()=>{if(Z)return z.jsxDEV("span",{className:"text-xs px-1.5 py-0.5 rounded",style:{backgroundColor:`${Z.color}20`,color:Z.color},children:Z.name},void 0,!1,void 0,this);if(K.project_id===null)return z.jsxDEV("span",{className:"text-xs text-[var(--color-text-muted)] bg-[var(--color-surface-raised)] px-1.5 py-0.5 rounded",children:"Global"},void 0,!1,void 0,this);return null};return z.jsxDEV("div",{className:`bg-[var(--color-surface)] rounded-lg p-5 border transition cursor-pointer ${K.enabled?"border-[var(--color-border)]":"border-[var(--color-border)] opacity-60"} hover:border-[var(--color-border-light)]`,onClick:N,children:[z.jsxDEV("div",{className:"flex items-start justify-between mb-3",children:[z.jsxDEV("div",{className:"flex-1 min-w-0",children:[z.jsxDEV("div",{className:"flex items-center gap-2",children:[z.jsxDEV("h3",{className:"font-semibold text-lg truncate",children:K.name},void 0,!1,void 0,this),M()]},void 0,!0,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-muted)] flex items-center gap-2 mt-0.5",children:[z.jsxDEV("span",{className:`px-1.5 py-0.5 rounded text-[10px] ${K.source==="skillsmp"?"bg-purple-500/20 text-purple-400":K.source==="github"?"bg-blue-500/20 text-blue-400":"bg-[var(--color-surface-raised)] text-[var(--color-text-secondary)]"}`,children:y},void 0,!1,void 0,this),K.metadata?.version&&z.jsxDEV("span",{children:["v",K.metadata.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("button",{onClick:(X)=>{X.stopPropagation(),Y()},className:`w-10 h-5 rounded-full transition-colors relative ${K.enabled?"bg-[var(--color-accent)]":"bg-[var(--color-surface-raised)]"}`,children:z.jsxDEV("span",{className:`absolute top-0.5 w-4 h-4 rounded-full bg-white transition-transform ${K.enabled?"left-5":"left-0.5"}`},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-secondary)] line-clamp-2 mb-4",children:K.description},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex items-center justify-between",children:[z.jsxDEV("div",{className:"flex gap-1 flex-wrap",children:[K.allowed_tools.slice(0,2).map((X)=>z.jsxDEV("span",{className:"text-xs bg-[var(--color-surface-raised)] px-2 py-0.5 rounded text-[var(--color-text-muted)]",children:X},X,!1,void 0,this)),K.allowed_tools.length>2&&z.jsxDEV("span",{className:"text-xs text-[var(--color-text-muted)]",children:["+",K.allowed_tools.length-2]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("button",{onClick:(X)=>{X.stopPropagation(),B()},className:"text-red-400 hover:text-red-300 text-sm",children:"Delete"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function qz({skill:K,installed:Z,installing:Y,onInstall:B}){return z.jsxDEV("div",{className:"bg-[var(--color-surface)] rounded-lg p-5 border border-[var(--color-border)] hover:border-[var(--color-border-light)] transition",children:[z.jsxDEV("div",{className:"flex items-start justify-between mb-3",children:[z.jsxDEV("div",{className:"flex-1 min-w-0",children:[z.jsxDEV("h3",{className:"font-semibold text-lg truncate",children:K.name},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-muted)] mt-0.5",children:["by ",K.author," · v",K.version]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"flex items-center gap-1 text-yellow-500 text-sm",children:["★ ",K.rating.toFixed(1)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-secondary)] line-clamp-2 mb-4",children:K.description},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex items-center justify-between",children:[z.jsxDEV("div",{className:"flex gap-1 flex-wrap",children:K.tags.slice(0,3).map((N)=>z.jsxDEV("span",{className:"text-xs bg-[var(--color-surface-raised)] px-2 py-0.5 rounded text-[var(--color-text-muted)]",children:N},N,!1,void 0,this))},void 0,!1,void 0,this),Z?z.jsxDEV("span",{className:"text-green-400 text-sm",children:"✓ Installed"},void 0,!1,void 0,this):z.jsxDEV("button",{onClick:B,disabled:Y,className:"bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] disabled:opacity-50 text-black px-3 py-1 rounded text-sm font-medium transition",children:Y?"Installing...":"Install"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"mt-3 text-xs text-[var(--color-text-faint)]",children:[K.downloads.toLocaleString()," downloads"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Az({authFetch:K,onClose:Z,onCreated:Y,projects:B,defaultProjectId:N}){let[y,M]=W.useState(""),[X,U]=W.useState(""),[G,Q]=W.useState(""),[C,H]=W.useState(N||null),[v,T]=W.useState(!1),[f,w]=W.useState(null),P=B&&B.length>0,d=async()=>{if(!y||!X||!G){w("All fields are required");return}T(!0),w(null);try{let _={name:y,description:X,content:G,source:"local"};if(C)_.project_id=C;let m=await K("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(_)}),p=await m.json();if(!m.ok){w(p.error||"Failed to create skill"),T(!1);return}Y()}catch(_){w("Failed to create skill"),T(!1)}};return z.jsxDEV("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4",onClick:Z,children:z.jsxDEV("div",{className:"bg-[var(--color-surface)] card w-full max-w-2xl max-h-[90vh] overflow-auto",onClick:(_)=>_.stopPropagation(),children:[z.jsxDEV("div",{className:"p-6 border-b border-[var(--color-border)]",children:z.jsxDEV("h2",{className:"text-xl font-semibold",children:"Create Skill"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z.jsxDEV("div",{className:"p-6 space-y-4",children:[f&&z.jsxDEV("div",{className:"bg-red-500/10 border border-red-500/30 rounded p-3 text-red-400 text-sm",children:f},void 0,!1,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-secondary)] mb-1",children:"Name"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"text",value:y,onChange:(_)=>M(_.target.value.toLowerCase().replace(/[^a-z0-9-]/g,"-")),placeholder:"my-skill-name",className:"w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-3 py-2 focus:outline-none focus:border-[var(--color-accent)]"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"Lowercase letters, numbers, and hyphens only"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-secondary)] mb-1",children:"Description"},void 0,!1,void 0,this),z.jsxDEV("input",{type:"text",value:X,onChange:(_)=>U(_.target.value),placeholder:"What this skill does and when to use it...",className:"w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-3 py-2 focus:outline-none focus:border-[var(--color-accent)]"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P&&z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-secondary)] mb-1",children:"Scope"},void 0,!1,void 0,this),z.jsxDEV(j,{value:C||"",onChange:(_)=>H(_||null),options:[{value:"",label:"Global (all projects)"},...B.map((_)=>({value:_.id,label:_.name}))],placeholder:"Select scope..."},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"Global skills are available to all agents. Project-scoped skills are only available to agents in that project."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{children:[z.jsxDEV("label",{className:"block text-sm text-[var(--color-text-secondary)] mb-1",children:"Instructions (Markdown)"},void 0,!1,void 0,this),z.jsxDEV("textarea",{value:G,onChange:(_)=>Q(_.target.value),placeholder:`# Skill Instructions
|
|
2
|
-
|
|
3
|
-
Write detailed instructions here...`,rows:12,className:"w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-3 py-2 focus:outline-none focus:border-[var(--color-accent)] font-mono text-sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"p-6 border-t border-[var(--color-border)] flex justify-end gap-3",children:[z.jsxDEV("button",{onClick:Z,className:"px-4 py-2 text-[var(--color-text-secondary)] hover:text-white transition",children:"Cancel"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:d,disabled:v,className:"bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] disabled:opacity-50 text-black px-4 py-2 rounded font-medium transition",children:v?"Creating...":"Create Skill"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function yz({authFetch:K,onClose:Z,onImported:Y}){let[B,N]=W.useState(""),[y,M]=W.useState(!1),[X,U]=W.useState(null);return z.jsxDEV("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4",onClick:Z,children:z.jsxDEV("div",{className:"bg-[var(--color-surface)] card w-full max-w-2xl max-h-[90vh] overflow-auto",onClick:(Q)=>Q.stopPropagation(),children:[z.jsxDEV("div",{className:"p-6 border-b border-[var(--color-border)]",children:[z.jsxDEV("h2",{className:"text-xl font-semibold",children:"Import Skill"},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:"Paste the contents of a SKILL.md file"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"p-6 space-y-4",children:[X&&z.jsxDEV("div",{className:"bg-red-500/10 border border-red-500/30 rounded p-3 text-red-400 text-sm",children:X},void 0,!1,void 0,this),z.jsxDEV("textarea",{value:B,onChange:(Q)=>N(Q.target.value),placeholder:`---
|
|
4
|
-
name: skill-name
|
|
5
|
-
description: What this skill does...
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Instructions
|
|
9
|
-
|
|
10
|
-
Your skill instructions here...`,rows:16,className:"w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-3 py-2 focus:outline-none focus:border-[var(--color-accent)] font-mono text-sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"p-6 border-t border-[var(--color-border)] flex justify-end gap-3",children:[z.jsxDEV("button",{onClick:Z,className:"px-4 py-2 text-[var(--color-text-secondary)] hover:text-white transition",children:"Cancel"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:async()=>{if(!B.trim()){U("Paste SKILL.md content");return}M(!0),U(null);try{let Q=await K("/api/skills/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:B})}),C=await Q.json();if(!Q.ok){U(C.error||"Failed to import skill"),M(!1);return}Y()}catch(Q){U("Failed to import skill"),M(!1)}},disabled:y,className:"bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] disabled:opacity-50 text-black px-4 py-2 rounded font-medium transition",children:y?"Importing...":"Import Skill"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Mz({skill:K,authFetch:Z,onClose:Y,onUpdated:B}){let[N,y]=W.useState(!1),[M,X]=W.useState(K.content),[U,G]=W.useState(!1),Q=async()=>{G(!0);try{await Z(`/api/skills/${K.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:M})}),B()}catch(H){console.error("Failed to save:",H)}G(!1)},C=async()=>{try{let v=await(await Z(`/api/skills/${K.id}/export`)).text(),T=new Blob([v],{type:"text/markdown"}),f=URL.createObjectURL(T),w=document.createElement("a");w.href=f,w.download=`${K.name}-SKILL.md`,w.click(),URL.revokeObjectURL(f)}catch(H){console.error("Failed to export:",H)}};return z.jsxDEV("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4",onClick:Y,children:z.jsxDEV("div",{className:"bg-[var(--color-surface)] card w-full max-w-3xl max-h-[90vh] overflow-auto",onClick:(H)=>H.stopPropagation(),children:[z.jsxDEV("div",{className:"p-6 border-b border-[var(--color-border)] flex items-center justify-between",children:[z.jsxDEV("div",{children:[z.jsxDEV("h2",{className:"text-xl font-semibold",children:K.name},void 0,!1,void 0,this),z.jsxDEV("p",{className:"text-sm text-[var(--color-text-muted)] mt-0.5",children:K.description},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"flex gap-2",children:[z.jsxDEV("button",{onClick:C,className:"text-sm text-[var(--color-text-secondary)] hover:text-white transition px-3 py-1 rounded border border-[var(--color-border-light)]",children:"Export"},void 0,!1,void 0,this),z.jsxDEV("button",{onClick:()=>y(!N),className:"text-sm text-[var(--color-text-secondary)] hover:text-white transition px-3 py-1 rounded border border-[var(--color-border-light)]",children:N?"View":"Edit"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.jsxDEV("div",{className:"p-6",children:N?z.jsxDEV("textarea",{value:M,onChange:(H)=>X(H.target.value),rows:20,className:"w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-3 py-2 focus:outline-none focus:border-[var(--color-accent)] font-mono text-sm"},void 0,!1,void 0,this):z.jsxDEV("pre",{className:"bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded p-4 font-mono text-sm overflow-auto max-h-[60vh] whitespace-pre-wrap",children:K.content},void 0,!1,void 0,this)},void 0,!1,void 0,this),z.jsxDEV("div",{className:"p-6 border-t border-[var(--color-border)] flex justify-between",children:[z.jsxDEV("div",{className:"text-xs text-[var(--color-text-faint)]",children:K.source!=="local"&&K.source_url&&z.jsxDEV("a",{href:K.source_url,target:"_blank",rel:"noopener noreferrer",className:"text-[var(--color-accent)] hover:underline",children:"View source →"},void 0,!1,void 0,this)},void 0,!1,void 0,this),z.jsxDEV("div",{className:"flex gap-3",children:[z.jsxDEV("button",{onClick:Y,className:"px-4 py-2 text-[var(--color-text-secondary)] hover:text-white transition",children:"Close"},void 0,!1,void 0,this),N&&z.jsxDEV("button",{onClick:Q,disabled:U,className:"bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] disabled:opacity-50 text-black px-4 py-2 rounded font-medium transition",children:U?"Saving...":"Save Changes"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}
|
|
11
|
-
export{Rz as L};
|
|
12
|
-
|
|
13
|
-
//# debugId=CBC947DAC8C3887164756E2164756E21
|
package/dist/App.qdfyt8ba.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{O as V}from"./App.fds72zb5.js";import{V as D}from"./App.fg9qj2dq.js";import{Y as C,aa as Kk,ba as v,ea as i,ka as o,na as d}from"./App.yt9p4nr3.js";var J=C(Kk(),1);var q=C(v(),1);function Yk(){let{authFetch:K}=o(),{currentProjectId:X}=d(),{confirm:j,ConfirmDialog:E}=V(),[$,x]=J.useState([]),[T,c]=J.useState([]),[a,u]=J.useState(!0),[r,Y]=J.useState(!1),[H,F]=J.useState(null),[I,Q]=J.useState(new Set),[f,R]=J.useState(!1),[M,N]=J.useState(null),[L,w]=J.useState(null),[S,U]=J.useState({}),[b,B]=J.useState(""),[y,P]=J.useState(""),[g,A]=J.useState(""),Z=X&&X!=="all"&&X!=="unassigned"?X:null,n=Z?T.filter((k)=>k.projectId===Z):T,{events:l}=i({category:"test",limit:50}),_=J.useRef(new Set);J.useEffect(()=>{for(let k of l){if(_.current.has(k.id))continue;_.current.add(k.id);let z=k.data?.test_case_id;if(!z)continue;if(k.type==="test_started")U((G)=>({...G,[z]:{phase:"starting"}})),Q((G)=>new Set(G).add(z));else if(k.type==="test_planning")U((G)=>({...G,[z]:{phase:"planning"}}));else if(k.type==="test_executing"){let G=k.data?.agent_name;U((O)=>({...O,[z]:{phase:"executing",detail:G}}))}else if(k.type==="test_judging")U((G)=>({...G,[z]:{phase:"judging"}}));else if(k.type==="test_completed")U((G)=>{let O={...G};return delete O[z],O}),Q((G)=>{let O=new Set(G);return O.delete(z),O}),W()}if(_.current.size>500)_.current=new Set([..._.current].slice(-200))},[l]);let W=async()=>{try{let k=Z?`?project_id=${Z}`:"",z=await K(`/api/tests${k}`);if(z.ok)x(await z.json())}catch{}u(!1)},s=async()=>{try{let k=await K("/api/agents");if(k.ok){let z=await k.json();c((z.agents||z).map((G)=>({id:G.id,name:G.name,status:G.status,provider:G.provider,model:G.model,projectId:G.projectId||null})))}}catch{}};J.useEffect(()=>{Promise.all([W(),s()])},[X]);let p=()=>{F(null),B(""),P(""),A(""),Y(!0)},t=(k)=>{F(k),B(k.name),P(k.behavior||""),A(k.agent_id||""),Y(!0)},e=async()=>{if(!b||!y)return;let k={name:b,behavior:y,agent_id:g||null,project_id:Z||void 0};if(H)await K(`/api/tests/${H.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)});else await K("/api/tests",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)});Y(!1),W()},kk=async(k)=>{if(!await j("Delete this test case? Run history will also be deleted."))return;await K(`/api/tests/${k}`,{method:"DELETE"}),W()},qk=async(k)=>{Q((z)=>new Set(z).add(k));try{await K(`/api/tests/${k}/run`,{method:"POST"}),await W()}catch{}Q((z)=>{let G=new Set(z);return G.delete(k),G}),U((z)=>{let G={...z};return delete G[k],G})},zk=async()=>{R(!0);try{let k=$.map((z)=>z.id);Q(new Set(k)),await K("/api/tests/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({test_case_ids:k})}),await W()}catch{}Q(new Set),R(!1)},Gk=async(k)=>{try{let z=await K(`/api/tests/${k}/runs`);if(z.ok)N({testId:k,runs:await z.json()})}catch{}},h={starting:{label:"Starting",color:"bg-blue-900/50 text-blue-400 border-blue-500/30"},planning:{label:"Planning",color:"bg-purple-900/50 text-purple-400 border-purple-500/30"},executing:{label:"Executing",color:"bg-cyan-900/50 text-cyan-400 border-cyan-500/30"},judging:{label:"Judging",color:"bg-amber-900/50 text-amber-400 border-amber-500/30"}},m=(k)=>{return q.jsxDEV("span",{className:`px-2 py-0.5 rounded text-xs font-medium ${{passed:"bg-green-900/50 text-green-400",failed:"bg-red-900/50 text-red-400",error:"bg-yellow-900/50 text-yellow-400",running:"bg-blue-900/50 text-blue-400"}[k]||"bg-[var(--color-surface-raised)] text-[var(--color-text-muted)]"}`,children:k.toUpperCase()},void 0,!1,void 0,this)},Jk=(k)=>{let z=S[k];if(!z)return null;let G=h[z.phase]||h.starting;return q.jsxDEV("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 rounded text-xs font-medium border ${G.color} animate-pulse`,children:[q.jsxDEV("span",{className:"w-1.5 h-1.5 rounded-full bg-current"},void 0,!1,void 0,this),G.label,z.detail?` · ${z.detail}`:""]},void 0,!0,void 0,this)};return q.jsxDEV("div",{className:"relative flex-1 overflow-auto p-6",children:[E,q.jsxDEV("div",{className:"flex items-center justify-between mb-6",children:[q.jsxDEV("div",{children:[q.jsxDEV("h1",{className:"text-xl font-bold",children:"Tests"},void 0,!1,void 0,this),q.jsxDEV("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:"Describe behavior, AI handles the rest"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q.jsxDEV("div",{className:"flex gap-2",children:[$.length>0&&q.jsxDEV("button",{onClick:zk,disabled:f,className:"px-4 py-2 bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] text-[var(--color-text)] rounded text-sm font-medium transition disabled:opacity-50",children:f?"Running...":"Run All"},void 0,!1,void 0,this),q.jsxDEV("button",{onClick:p,className:"px-4 py-2 bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] text-white rounded text-sm font-medium transition",children:"+ New Test"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),a?q.jsxDEV("div",{className:"text-[var(--color-text-muted)] text-sm",children:"Loading..."},void 0,!1,void 0,this):$.length===0?q.jsxDEV("div",{className:"text-center py-16",children:[q.jsxDEV("div",{className:"text-[var(--color-border-light)] text-4xl mb-4",children:q.jsxDEV("svg",{className:"w-12 h-12 mx-auto",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:q.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),q.jsxDEV("p",{className:"text-[var(--color-text-muted)] mb-2",children:"No tests yet"},void 0,!1,void 0,this),q.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mb-4",children:"Describe what your agents should do and let AI verify it"},void 0,!1,void 0,this),q.jsxDEV("button",{onClick:p,className:"px-4 py-2 bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] text-white rounded text-sm font-medium transition",children:"Create your first test"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):q.jsxDEV("div",{className:"space-y-3",children:$.map((k)=>q.jsxDEV("div",{className:"bg-[var(--color-surface)] card p-4",children:q.jsxDEV("div",{className:"flex items-start justify-between",children:[q.jsxDEV("div",{className:"flex-1 min-w-0",children:[q.jsxDEV("div",{className:"flex items-center gap-2 mb-1",children:[q.jsxDEV("span",{className:"font-medium text-sm",children:k.name},void 0,!1,void 0,this),S[k.id]?Jk(k.id):k.last_run&&q.jsxDEV(q.Fragment,{children:[m(k.last_run.status),k.last_run.score!=null&&q.jsxDEV("span",{className:"text-xs text-[var(--color-text-secondary)] font-mono",children:[k.last_run.score,"/10"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k.behavior&&q.jsxDEV("p",{className:"text-xs text-[var(--color-text-secondary)] mb-1.5 line-clamp-2",children:k.behavior},void 0,!1,void 0,this),q.jsxDEV("div",{className:"text-xs text-[var(--color-text-muted)] space-y-0.5",children:[q.jsxDEV("div",{children:["Agent:"," ",q.jsxDEV("span",{className:"text-[var(--color-text-secondary)]",children:k.agent_name||(k.last_run?.selected_agent_name?`${k.last_run.selected_agent_name} (auto-selected)`:"Auto (AI picks)")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),k.last_run?.generated_message&&q.jsxDEV("div",{className:"truncate",children:["Message: ",q.jsxDEV("span",{className:"text-[var(--color-text-secondary)]",children:['"',k.last_run.generated_message,'"']},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k.input_message&&!k.last_run?.generated_message&&q.jsxDEV("div",{className:"truncate",children:["Message: ",q.jsxDEV("span",{className:"text-[var(--color-text-secondary)]",children:['"',k.input_message,'"']},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k.last_run&&q.jsxDEV("div",{children:["Last run:"," ",q.jsxDEV("span",{className:"text-[var(--color-text-secondary)]",children:[k.last_run.duration_ms?`${(k.last_run.duration_ms/1000).toFixed(1)}s`:"---",k.last_run.judge_reasoning&&` --- "${k.last_run.judge_reasoning.slice(0,80)}${k.last_run.judge_reasoning.length>80?"...":""}"`]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),q.jsxDEV("div",{className:"flex items-center gap-1 ml-3 shrink-0",children:[q.jsxDEV("button",{onClick:()=>Gk(k.id),className:"px-2 py-1 text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-raised)] rounded transition",title:"View run history",children:"History"},void 0,!1,void 0,this),q.jsxDEV("button",{onClick:()=>qk(k.id),disabled:I.has(k.id),className:"px-3 py-1 text-xs bg-[var(--color-surface-raised)] hover:bg-[var(--color-surface-raised)] text-[var(--color-text)] rounded transition disabled:opacity-50",children:I.has(k.id)?"Running...":"Run"},void 0,!1,void 0,this),q.jsxDEV("button",{onClick:()=>t(k),className:"px-2 py-1 text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-raised)] rounded transition",children:"Edit"},void 0,!1,void 0,this),q.jsxDEV("button",{onClick:()=>kk(k.id),className:"px-2 py-1 text-xs text-[var(--color-text-muted)] hover:text-red-400 hover:bg-[var(--color-surface-raised)] rounded transition",children:"Delete"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},k.id,!1,void 0,this))},void 0,!1,void 0,this),M&&q.jsxDEV("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-[2px] z-10",onClick:()=>{N(null),w(null)}},void 0,!1,void 0,this),M&&q.jsxDEV("div",{className:"absolute right-0 top-0 bottom-0 w-full sm:w-[500px] lg:w-[600px] z-20 bg-[var(--color-bg)] border-l border-[var(--color-border)] shadow-2xl flex flex-col",children:[q.jsxDEV("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--color-border)] bg-[var(--color-surface)] shrink-0",children:[q.jsxDEV("h2",{className:"text-sm font-bold",children:"Run History"},void 0,!1,void 0,this),q.jsxDEV("button",{onClick:()=>{N(null),w(null)},className:"p-1 text-[var(--color-text-muted)] hover:text-[var(--color-text)] rounded transition",children:q.jsxDEV("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:q.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q.jsxDEV("div",{className:"flex-1 overflow-auto p-4",children:M.runs.length===0?q.jsxDEV("p",{className:"text-sm text-[var(--color-text-muted)]",children:"No runs yet"},void 0,!1,void 0,this):q.jsxDEV("div",{className:"space-y-2",children:M.runs.map((k)=>q.jsxDEV("div",{className:"bg-[var(--color-surface)] border border-[var(--color-border)] rounded p-3",children:[q.jsxDEV("div",{className:"flex items-center justify-between cursor-pointer",onClick:()=>w(L===k.id?null:k.id),children:[q.jsxDEV("div",{className:"flex items-center gap-3 flex-wrap",children:[m(k.status),q.jsxDEV("span",{className:"text-xs text-[var(--color-text-muted)]",children:k.duration_ms?`${(k.duration_ms/1000).toFixed(1)}s`:"---"},void 0,!1,void 0,this),k.score!=null&&q.jsxDEV("span",{className:"text-xs text-[var(--color-text-secondary)] font-mono",children:[k.score,"/10"]},void 0,!0,void 0,this),k.selected_agent_name&&q.jsxDEV("span",{className:"text-xs text-[var(--color-text-faint)]",children:["Agent: ",k.selected_agent_name]},void 0,!0,void 0,this),q.jsxDEV("span",{className:"text-xs text-[var(--color-text-faint)]",children:new Date(k.created_at).toLocaleString()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q.jsxDEV("span",{className:"text-xs text-[var(--color-text-faint)] shrink-0 ml-2",children:L===k.id?"---":"+"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),L===k.id&&q.jsxDEV("div",{className:"mt-3 space-y-2",children:[k.planner_reasoning&&q.jsxDEV("div",{children:[q.jsxDEV("div",{className:"text-xs text-[var(--color-text-muted)] mb-1",children:"Planner:"},void 0,!1,void 0,this),q.jsxDEV("div",{className:"text-sm text-[var(--color-text-secondary)] bg-[var(--color-bg)] p-2 rounded",children:[k.selected_agent_name&&q.jsxDEV("span",{className:"text-[var(--color-accent)]",children:k.selected_agent_name},void 0,!1,void 0,this),k.selected_agent_name&&" --- ",k.planner_reasoning]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k.generated_message&&q.jsxDEV("div",{children:[q.jsxDEV("div",{className:"text-xs text-[var(--color-text-muted)] mb-1",children:"Generated Message:"},void 0,!1,void 0,this),q.jsxDEV("div",{className:"text-sm text-[var(--color-text-secondary)] bg-[var(--color-bg)] p-2 rounded",children:['"',k.generated_message,'"']},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k.judge_reasoning&&q.jsxDEV("div",{children:[q.jsxDEV("div",{className:"text-xs text-[var(--color-text-muted)] mb-1",children:"Judge:"},void 0,!1,void 0,this),q.jsxDEV("div",{className:"text-sm text-[var(--color-text-secondary)] bg-[var(--color-bg)] p-2 rounded",children:k.judge_reasoning},void 0,!1,void 0,this)]},void 0,!0,void 0,this),k.error&&q.jsxDEV("div",{children:[q.jsxDEV("div",{className:"text-xs text-red-400 mb-1",children:"Error:"},void 0,!1,void 0,this),q.jsxDEV("div",{className:"text-sm text-red-300 bg-[var(--color-bg)] p-2 rounded",children:k.error},void 0,!1,void 0,this)]},void 0,!0,void 0,this),k.agent_response&&q.jsxDEV("div",{children:[q.jsxDEV("div",{className:"text-xs text-[var(--color-text-muted)] mb-1",children:"Agent Response (Thread):"},void 0,!1,void 0,this),q.jsxDEV("pre",{className:"text-xs text-[var(--color-text-secondary)] bg-[var(--color-bg)] p-2 rounded overflow-auto max-h-64",children:k.agent_response},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},k.id,!0,void 0,this))},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),r&&q.jsxDEV("div",{className:"fixed inset-0 bg-black/60 z-50 flex items-center justify-center",onClick:()=>Y(!1),children:q.jsxDEV("div",{className:"bg-[var(--color-surface)] card w-full max-w-lg mx-4 p-6",onClick:(k)=>k.stopPropagation(),children:[q.jsxDEV("h2",{className:"text-lg font-bold mb-4",children:H?"Edit Test":"New Test"},void 0,!1,void 0,this),q.jsxDEV("div",{className:"space-y-4",children:[q.jsxDEV("div",{children:[q.jsxDEV("label",{className:"block text-xs text-[var(--color-text-muted)] mb-1",children:"Name"},void 0,!1,void 0,this),q.jsxDEV("input",{value:b,onChange:(k)=>B(k.target.value),placeholder:"e.g. Social Media Posting",className:"w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-3 py-2 text-sm focus:outline-none focus:border-[var(--color-accent)]"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q.jsxDEV("div",{children:[q.jsxDEV("label",{className:"block text-xs text-[var(--color-text-muted)] mb-1",children:"Behavior"},void 0,!1,void 0,this),q.jsxDEV("textarea",{value:y,onChange:(k)=>P(k.target.value),placeholder:"Describe what should happen, e.g. 'When asked to post on social media, the agent creates a proper post with relevant hashtags and confirms it was published'",rows:3,className:"w-full bg-[var(--color-bg)] border border-[var(--color-border-light)] rounded px-3 py-2 text-sm focus:outline-none focus:border-[var(--color-accent)] resize-none"},void 0,!1,void 0,this),q.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"AI will generate the test message and evaluate results based on this"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q.jsxDEV("div",{children:[q.jsxDEV("label",{className:"block text-xs text-[var(--color-text-muted)] mb-1",children:"Agent"},void 0,!1,void 0,this),q.jsxDEV(D,{value:g,onChange:A,placeholder:"Auto (AI picks the best agent)",options:n.map((k)=>({value:k.id,label:`${k.name} (${k.status})`}))},void 0,!1,void 0,this),q.jsxDEV("p",{className:"text-xs text-[var(--color-text-faint)] mt-1",children:"Leave empty to let AI choose the right agent"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),q.jsxDEV("div",{className:"flex justify-end gap-2 mt-6",children:[q.jsxDEV("button",{onClick:()=>Y(!1),className:"px-4 py-2 text-sm text-[var(--color-text-secondary)] hover:text-[var(--color-text)] transition",children:"Cancel"},void 0,!1,void 0,this),q.jsxDEV("button",{onClick:e,disabled:!b||!y,className:"px-4 py-2 bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] disabled:opacity-50 text-white rounded text-sm font-medium transition",children:H?"Save":"Create"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}
|
|
2
|
-
export{Yk as M};
|
|
3
|
-
|
|
4
|
-
//# debugId=458FD6D9A084F98564756E2164756E21
|
package/dist/App.x2d0ygt6.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{Y as n,ba as e}from"./App.yt9p4nr3.js";var o=n(e(),1);function t({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function i({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function a({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function s({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function c({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"},void 0,!1,void 0,this),o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function l({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function u({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function h({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},void 0,!1,void 0,this),o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function d({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function k({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function p({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function v({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function L({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function M({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function m({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function g({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function f({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function w({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function I({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function C({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function W({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 10V3L4 14h7v7l9-11h-7z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function P({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function B({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 4v5h5M20 20v-5h-5"},void 0,!1,void 0,this),o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20.49 9A9 9 0 005.64 5.64L4 4m16 16l-1.64-1.64A9 9 0 013.51 15"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function N({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3"},void 0,!1,void 0,this),o.jsxDEV("circle",{cx:"12",cy:"12",r:"9",strokeWidth:2},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function z({className:r="w-4 h-4"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"},void 0,!1,void 0,this),o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 14l2 2 4-4"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function H({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function A({className:r="w-5 h-5"}){return o.jsxDEV("svg",{className:r,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}
|
|
2
|
-
export{t as k,i as l,a as m,s as n,c as o,l as p,u as q,h as r,d as s,k as t,p as u,v,L as w,M as x,m as y,g as z,f as A,w as B,I as C,C as D,W as E,P as F,B as G,N as H,z as I,H as J,A as K};
|
|
3
|
-
|
|
4
|
-
//# debugId=DF0EF51FE690E33F64756E2164756E21
|
package/dist/App.yt9p4nr3.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
var HM=Object.create;var{getPrototypeOf:zM,defineProperty:IU,getOwnPropertyNames:QM}=Object;var YM=Object.prototype.hasOwnProperty;var o=(X,z,Y)=>{Y=X!=null?HM(zM(X)):{};let Q=z||!X||!X.__esModule?IU(Y,"default",{value:X,enumerable:!0}):Y;for(let N of QM(X))if(!YM.call(Q,N))IU(Q,N,{get:()=>X[N],enumerable:!0});return Q};var yU=(X,z)=>()=>(z||X((z={exports:{}}).exports,z),z.exports);var CM=(X,z)=>{for(var Y in z)IU(X,Y,{get:z[Y],enumerable:!0,configurable:!0,set:(Q)=>z[Y]=()=>Q})};var SM=((X)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(X,{get:(z,Y)=>(typeof require<"u"?require:z)[Y]}):X)(function(X){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+X+'" is not supported')});var BU=yU(($M,VU)=>{(function(){function X(U,M){Object.defineProperty(Q.prototype,U,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",M[0],M[1])}})}function z(U){if(U===null||typeof U!=="object")return null;return U=EU&&U[EU]||U["@@iterator"],typeof U==="function"?U:null}function Y(U,M){U=(U=U.constructor)&&(U.displayName||U.name)||"ReactClass";var Z=U+"."+M;AU[Z]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",M,U),AU[Z]=!0)}function Q(U,M,Z){this.props=U,this.context=M,this.refs=FU,this.updater=Z||TU}function N(){}function P(U,M,Z){this.props=U,this.context=M,this.refs=FU,this.updater=Z||TU}function A(){}function x(U){return""+U}function K(U){try{x(U);var M=!1}catch(H){M=!0}if(M){M=console;var Z=M.error,B=typeof Symbol==="function"&&Symbol.toStringTag&&U[Symbol.toStringTag]||U.constructor.name||"Object";return Z.call(M,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",B),x(U)}}function b(U){if(U==null)return null;if(typeof U==="function")return U.$$typeof===WM?null:U.displayName||U.name||null;if(typeof U==="string")return U;switch(U){case QU:return"Fragment";case L:return"Profiler";case W:return"StrictMode";case YU:return"Suspense";case m:return"SuspenseList";case qU:return"Activity"}if(typeof U==="object")switch(typeof U.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),U.$$typeof){case LU:return"Portal";case y:return U.displayName||"Context";case C:return(U._context.displayName||"Context")+".Consumer";case UU:var M=U.render;return U=U.displayName,U||(U=M.displayName||M.name||"",U=U!==""?"ForwardRef("+U+")":"ForwardRef"),U;case MU:return M=U.displayName||null,M!==null?M:b(U.type)||"Memo";case WU:M=U._payload,U=U._init;try{return b(U(M))}catch(Z){}}return null}function n(U){if(U===QU)return"<>";if(typeof U==="object"&&U!==null&&U.$$typeof===WU)return"<...>";try{var M=b(U);return M?"<"+M+">":"<...>"}catch(Z){return"<...>"}}function V(){var U=q.A;return U===null?null:U.getOwner()}function f(){return Error("react-stack-top-frame")}function d(U){if(DU.call(U,"key")){var M=Object.getOwnPropertyDescriptor(U,"key").get;if(M&&M.isReactWarning)return!1}return U.key!==void 0}function i(U,M){function Z(){SU||(SU=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",M))}Z.isReactWarning=!0,Object.defineProperty(U,"key",{get:Z,configurable:!0})}function h(){var U=b(this.type);return kU[U]||(kU[U]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),U=this.props.ref,U!==void 0?U:null}function I(U,M,Z,B,H,D){var J=Z.ref;return U={$$typeof:OU,type:U,key:M,props:Z,_owner:B},(J!==void 0?J:null)!==null?Object.defineProperty(U,"ref",{enumerable:!1,get:h}):Object.defineProperty(U,"ref",{enumerable:!1,value:null}),U._store={},Object.defineProperty(U._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(U,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(U,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:H}),Object.defineProperty(U,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:D}),Object.freeze&&(Object.freeze(U.props),Object.freeze(U)),U}function u(U,M){return M=I(U.type,M,U.props,U._owner,U._debugStack,U._debugTask),U._store&&(M._store.validated=U._store.validated),M}function c(U){s(U)?U._store&&(U._store.validated=1):typeof U==="object"&&U!==null&&U.$$typeof===WU&&(U._payload.status==="fulfilled"?s(U._payload.value)&&U._payload.value._store&&(U._payload.value._store.validated=1):U._store&&(U._store.validated=1))}function s(U){return typeof U==="object"&&U!==null&&U.$$typeof===OU}function l(U){var M={"=":"=0",":":"=2"};return"$"+U.replace(/[=:]/g,function(Z){return M[Z]})}function g(U,M){return typeof U==="object"&&U!==null&&U.key!=null?(K(U.key),l(""+U.key)):M.toString(36)}function k(U){switch(U.status){case"fulfilled":return U.value;case"rejected":throw U.reason;default:switch(typeof U.status==="string"?U.then(A,A):(U.status="pending",U.then(function(M){U.status==="pending"&&(U.status="fulfilled",U.value=M)},function(M){U.status==="pending"&&(U.status="rejected",U.reason=M)})),U.status){case"fulfilled":return U.value;case"rejected":throw U.reason}}throw U}function j(U,M,Z,B,H){var D=typeof U;if(D==="undefined"||D==="boolean")U=null;var J=!1;if(U===null)J=!0;else switch(D){case"bigint":case"string":case"number":J=!0;break;case"object":switch(U.$$typeof){case OU:case LU:J=!0;break;case WU:return J=U._init,j(J(U._payload),M,Z,B,H)}}if(J){J=U,H=H(J);var _=B===""?"."+g(J,0):B;return vU(H)?(Z="",_!=null&&(Z=_.replace(mU,"$&/")+"/"),j(H,M,Z,"",function(XU){return XU})):H!=null&&(s(H)&&(H.key!=null&&(J&&J.key===H.key||K(H.key)),Z=u(H,Z+(H.key==null||J&&J.key===H.key?"":(""+H.key).replace(mU,"$&/")+"/")+_),B!==""&&J!=null&&s(J)&&J.key==null&&J._store&&!J._store.validated&&(Z._store.validated=2),H=Z),M.push(H)),1}if(J=0,_=B===""?".":B+":",vU(U))for(var R=0;R<U.length;R++)B=U[R],D=_+g(B,R),J+=j(B,M,Z,D,H);else if(R=z(U),typeof R==="function")for(R===U.entries&&(bU||console.warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),bU=!0),U=R.call(U),R=0;!(B=U.next()).done;)B=B.value,D=_+g(B,R++),J+=j(B,M,Z,D,H);else if(D==="object"){if(typeof U.then==="function")return j(k(U),M,Z,B,H);throw M=String(U),Error("Objects are not valid as a React child (found: "+(M==="[object Object]"?"object with keys {"+Object.keys(U).join(", ")+"}":M)+"). If you meant to render a collection of children, use an array instead.")}return J}function O(U,M,Z){if(U==null)return U;var B=[],H=0;return j(U,B,"","",function(D){return M.call(Z,D,H++)}),B}function v(U){if(U._status===-1){var M=U._ioInfo;M!=null&&(M.start=M.end=performance.now()),M=U._result;var Z=M();if(Z.then(function(H){if(U._status===0||U._status===-1){U._status=1,U._result=H;var D=U._ioInfo;D!=null&&(D.end=performance.now()),Z.status===void 0&&(Z.status="fulfilled",Z.value=H)}},function(H){if(U._status===0||U._status===-1){U._status=2,U._result=H;var D=U._ioInfo;D!=null&&(D.end=performance.now()),Z.status===void 0&&(Z.status="rejected",Z.reason=H)}}),M=U._ioInfo,M!=null){M.value=Z;var B=Z.displayName;typeof B==="string"&&(M.name=B)}U._status===-1&&(U._status=0,U._result=Z)}if(U._status===1)return M=U._result,M===void 0&&console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
2
|
-
|
|
3
|
-
Your code should look like:
|
|
4
|
-
const MyComponent = lazy(() => import('./MyComponent'))
|
|
5
|
-
|
|
6
|
-
Did you accidentally put curly braces around the import?`,M),"default"in M||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
7
|
-
|
|
8
|
-
Your code should look like:
|
|
9
|
-
const MyComponent = lazy(() => import('./MyComponent'))`,M),M.default;throw U._result}function G(){var U=q.H;return U===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
|
|
10
|
-
1. You might have mismatching versions of React and the renderer (such as React DOM)
|
|
11
|
-
2. You might be breaking the Rules of Hooks
|
|
12
|
-
3. You might have more than one copy of React in the same app
|
|
13
|
-
See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),U}function $(){q.asyncTransitions--}function w(U){if(RU===null)try{var M=("require"+Math.random()).slice(0,7);RU=(VU&&VU[M]).call(VU,"timers").setImmediate}catch(Z){RU=function(B){hU===!1&&(hU=!0,typeof MessageChannel>"u"&&console.error("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var H=new MessageChannel;H.port1.onmessage=B,H.port2.postMessage(void 0)}}return RU(U)}function T(U){return 1<U.length&&typeof AggregateError==="function"?AggregateError(U):U[0]}function a(U,M){M!==wU-1&&console.error("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),wU=M}function ZU(U,M,Z){var B=q.actQueue;if(B!==null)if(B.length!==0)try{zU(B),w(function(){return ZU(U,M,Z)});return}catch(H){q.thrownErrors.push(H)}else q.actQueue=null;0<q.thrownErrors.length?(B=T(q.thrownErrors),q.thrownErrors.length=0,Z(B)):M(U)}function zU(U){if(!PU){PU=!0;var M=0;try{for(;M<U.length;M++){var Z=U[M];do{q.didUsePromise=!1;var B=Z(!1);if(B!==null){if(q.didUsePromise){U[M]=Z,U.splice(0,M);return}Z=B}else break}while(1)}U.length=0}catch(H){U.splice(0,M+1),q.thrownErrors.push(H)}finally{PU=!1}}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var OU=Symbol.for("react.transitional.element"),LU=Symbol.for("react.portal"),QU=Symbol.for("react.fragment"),W=Symbol.for("react.strict_mode"),L=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),y=Symbol.for("react.context"),UU=Symbol.for("react.forward_ref"),YU=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),MU=Symbol.for("react.memo"),WU=Symbol.for("react.lazy"),qU=Symbol.for("react.activity"),EU=Symbol.iterator,AU={},TU={isMounted:function(){return!1},enqueueForceUpdate:function(U){Y(U,"forceUpdate")},enqueueReplaceState:function(U){Y(U,"replaceState")},enqueueSetState:function(U){Y(U,"setState")}},jU=Object.assign,FU={};Object.freeze(FU),Q.prototype.isReactComponent={},Q.prototype.setState=function(U,M){if(typeof U!=="object"&&typeof U!=="function"&&U!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,U,M,"setState")},Q.prototype.forceUpdate=function(U){this.updater.enqueueForceUpdate(this,U,"forceUpdate")};var r={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]};for(JU in r)r.hasOwnProperty(JU)&&X(JU,r[JU]);N.prototype=Q.prototype,r=P.prototype=new N,r.constructor=P,jU(r,Q.prototype),r.isPureReactComponent=!0;var vU=Array.isArray,WM=Symbol.for("react.client.reference"),q={H:null,A:null,T:null,S:null,actQueue:null,asyncTransitions:0,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1,didUsePromise:!1,thrownErrors:[],getCurrentStack:null,recentlyCreatedOwnerStacks:0},DU=Object.prototype.hasOwnProperty,CU=console.createTask?console.createTask:function(){return null};r={react_stack_bottom_frame:function(U){return U()}};var SU,gU,kU={},ZM=r.react_stack_bottom_frame.bind(r,f)(),XM=CU(n(f)),bU=!1,mU=/\/+/g,fU=typeof reportError==="function"?reportError:function(U){if(typeof window==="object"&&typeof window.ErrorEvent==="function"){var M=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof U==="object"&&U!==null&&typeof U.message==="string"?String(U.message):String(U),error:U});if(!window.dispatchEvent(M))return}else if(typeof process==="object"&&typeof process.emit==="function"){process.emit("uncaughtException",U);return}console.error(U)},hU=!1,RU=null,wU=0,KU=!1,PU=!1,uU=typeof queueMicrotask==="function"?function(U){queueMicrotask(function(){return queueMicrotask(U)})}:w;r=Object.freeze({__proto__:null,c:function(U){return G().useMemoCache(U)}});var JU={map:O,forEach:function(U,M,Z){O(U,function(){M.apply(this,arguments)},Z)},count:function(U){var M=0;return O(U,function(){M++}),M},toArray:function(U){return O(U,function(M){return M})||[]},only:function(U){if(!s(U))throw Error("React.Children.only expected to receive a single React element child.");return U}};$M.Activity=qU,$M.Children=JU,$M.Component=Q,$M.Fragment=QU,$M.Profiler=L,$M.PureComponent=P,$M.StrictMode=W,$M.Suspense=YU,$M.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=q,$M.__COMPILER_RUNTIME=r,$M.act=function(U){var M=q.actQueue,Z=wU;wU++;var B=q.actQueue=M!==null?M:[],H=!1;try{var D=U()}catch(R){q.thrownErrors.push(R)}if(0<q.thrownErrors.length)throw a(M,Z),U=T(q.thrownErrors),q.thrownErrors.length=0,U;if(D!==null&&typeof D==="object"&&typeof D.then==="function"){var J=D;return uU(function(){H||KU||(KU=!0,console.error("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),{then:function(R,XU){H=!0,J.then(function($U){if(a(M,Z),Z===0){try{zU(B),w(function(){return ZU($U,R,XU)})}catch(GM){q.thrownErrors.push(GM)}if(0<q.thrownErrors.length){var BM=T(q.thrownErrors);q.thrownErrors.length=0,XU(BM)}}else R($U)},function($U){a(M,Z),0<q.thrownErrors.length?($U=T(q.thrownErrors),q.thrownErrors.length=0,XU($U)):XU($U)})}}}var _=D;if(a(M,Z),Z===0&&(zU(B),B.length!==0&&uU(function(){H||KU||(KU=!0,console.error("A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"))}),q.actQueue=null),0<q.thrownErrors.length)throw U=T(q.thrownErrors),q.thrownErrors.length=0,U;return{then:function(R,XU){H=!0,Z===0?(q.actQueue=B,w(function(){return ZU(_,R,XU)})):R(_)}}},$M.cache=function(U){return function(){return U.apply(null,arguments)}},$M.cacheSignal=function(){return null},$M.captureOwnerStack=function(){var U=q.getCurrentStack;return U===null?null:U()},$M.cloneElement=function(U,M,Z){if(U===null||U===void 0)throw Error("The argument must be a React element, but you passed "+U+".");var B=jU({},U.props),H=U.key,D=U._owner;if(M!=null){var J;U:{if(DU.call(M,"ref")&&(J=Object.getOwnPropertyDescriptor(M,"ref").get)&&J.isReactWarning){J=!1;break U}J=M.ref!==void 0}J&&(D=V()),d(M)&&(K(M.key),H=""+M.key);for(_ in M)!DU.call(M,_)||_==="key"||_==="__self"||_==="__source"||_==="ref"&&M.ref===void 0||(B[_]=M[_])}var _=arguments.length-2;if(_===1)B.children=Z;else if(1<_){J=Array(_);for(var R=0;R<_;R++)J[R]=arguments[R+2];B.children=J}B=I(U.type,H,B,D,U._debugStack,U._debugTask);for(H=2;H<arguments.length;H++)c(arguments[H]);return B},$M.createContext=function(U){return U={$$typeof:y,_currentValue:U,_currentValue2:U,_threadCount:0,Provider:null,Consumer:null},U.Provider=U,U.Consumer={$$typeof:C,_context:U},U._currentRenderer=null,U._currentRenderer2=null,U},$M.createElement=function(U,M,Z){for(var B=2;B<arguments.length;B++)c(arguments[B]);B={};var H=null;if(M!=null)for(R in gU||!("__self"in M)||"key"in M||(gU=!0,console.warn("Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform")),d(M)&&(K(M.key),H=""+M.key),M)DU.call(M,R)&&R!=="key"&&R!=="__self"&&R!=="__source"&&(B[R]=M[R]);var D=arguments.length-2;if(D===1)B.children=Z;else if(1<D){for(var J=Array(D),_=0;_<D;_++)J[_]=arguments[_+2];Object.freeze&&Object.freeze(J),B.children=J}if(U&&U.defaultProps)for(R in D=U.defaultProps,D)B[R]===void 0&&(B[R]=D[R]);H&&i(B,typeof U==="function"?U.displayName||U.name||"Unknown":U);var R=1e4>q.recentlyCreatedOwnerStacks++;return I(U,H,B,V(),R?Error("react-stack-top-frame"):ZM,R?CU(n(U)):XM)},$M.createRef=function(){var U={current:null};return Object.seal(U),U},$M.forwardRef=function(U){U!=null&&U.$$typeof===MU?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof U!=="function"?console.error("forwardRef requires a render function but was given %s.",U===null?"null":typeof U):U.length!==0&&U.length!==2&&console.error("forwardRef render functions accept exactly two parameters: props and ref. %s",U.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),U!=null&&U.defaultProps!=null&&console.error("forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?");var M={$$typeof:UU,render:U},Z;return Object.defineProperty(M,"displayName",{enumerable:!1,configurable:!0,get:function(){return Z},set:function(B){Z=B,U.name||U.displayName||(Object.defineProperty(U,"name",{value:B}),U.displayName=B)}}),M},$M.isValidElement=s,$M.lazy=function(U){U={_status:-1,_result:U};var M={$$typeof:WU,_payload:U,_init:v},Z={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?console.createTask("lazy()"):null};return U._ioInfo=Z,M._debugInfo=[{awaited:Z}],M},$M.memo=function(U,M){U==null&&console.error("memo: The first argument must be a component. Instead received: %s",U===null?"null":typeof U),M={$$typeof:MU,type:U,compare:M===void 0?null:M};var Z;return Object.defineProperty(M,"displayName",{enumerable:!1,configurable:!0,get:function(){return Z},set:function(B){Z=B,U.name||U.displayName||(Object.defineProperty(U,"name",{value:B}),U.displayName=B)}}),M},$M.startTransition=function(U){var M=q.T,Z={};Z._updatedFibers=new Set,q.T=Z;try{var B=U(),H=q.S;H!==null&&H(Z,B),typeof B==="object"&&B!==null&&typeof B.then==="function"&&(q.asyncTransitions++,B.then($,$),B.then(A,fU))}catch(D){fU(D)}finally{M===null&&Z._updatedFibers&&(U=Z._updatedFibers.size,Z._updatedFibers.clear(),10<U&&console.warn("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.")),M!==null&&Z.types!==null&&(M.types!==null&&M.types!==Z.types&&console.error("We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React."),M.types=Z.types),q.T=M}},$M.unstable_useCacheRefresh=function(){return G().useCacheRefresh()},$M.use=function(U){return G().use(U)},$M.useActionState=function(U,M,Z){return G().useActionState(U,M,Z)},$M.useCallback=function(U,M){return G().useCallback(U,M)},$M.useContext=function(U){var M=G();return U.$$typeof===C&&console.error("Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?"),M.useContext(U)},$M.useDebugValue=function(U,M){return G().useDebugValue(U,M)},$M.useDeferredValue=function(U,M){return G().useDeferredValue(U,M)},$M.useEffect=function(U,M){return U==null&&console.warn("React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?"),G().useEffect(U,M)},$M.useEffectEvent=function(U){return G().useEffectEvent(U)},$M.useId=function(){return G().useId()},$M.useImperativeHandle=function(U,M,Z){return G().useImperativeHandle(U,M,Z)},$M.useInsertionEffect=function(U,M){return U==null&&console.warn("React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?"),G().useInsertionEffect(U,M)},$M.useLayoutEffect=function(U,M){return U==null&&console.warn("React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?"),G().useLayoutEffect(U,M)},$M.useMemo=function(U,M){return G().useMemo(U,M)},$M.useOptimistic=function(U,M){return G().useOptimistic(U,M)},$M.useReducer=function(U,M,Z){return G().useReducer(U,M,Z)},$M.useRef=function(U){return G().useRef(U)},$M.useState=function(U){return G().useState(U)},$M.useSyncExternalStore=function(U,M,Z){return G().useSyncExternalStore(U,M,Z)},$M.useTransition=function(){return G().useTransition()},$M.version="19.2.4",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var t=yU((OM)=>{var GU=o(BU());(function(){function X(W){if(W==null)return null;if(typeof W==="function")return W.$$typeof===G?null:W.displayName||W.name||null;if(typeof W==="string")return W;switch(W){case h:return"Fragment";case u:return"Profiler";case I:return"StrictMode";case g:return"Suspense";case k:return"SuspenseList";case v:return"Activity"}if(typeof W==="object")switch(typeof W.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),W.$$typeof){case i:return"Portal";case s:return W.displayName||"Context";case c:return(W._context.displayName||"Context")+".Consumer";case l:var L=W.render;return W=W.displayName,W||(W=L.displayName||L.name||"",W=W!==""?"ForwardRef("+W+")":"ForwardRef"),W;case j:return L=W.displayName||null,L!==null?L:X(W.type)||"Memo";case O:L=W._payload,W=W._init;try{return X(W(L))}catch(C){}}return null}function z(W){return""+W}function Y(W){try{z(W);var L=!1}catch(UU){L=!0}if(L){L=console;var C=L.error,y=typeof Symbol==="function"&&Symbol.toStringTag&&W[Symbol.toStringTag]||W.constructor.name||"Object";return C.call(L,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",y),z(W)}}function Q(W){if(W===h)return"<>";if(typeof W==="object"&&W!==null&&W.$$typeof===O)return"<...>";try{var L=X(W);return L?"<"+L+">":"<...>"}catch(C){return"<...>"}}function N(){var W=$.A;return W===null?null:W.getOwner()}function P(){return Error("react-stack-top-frame")}function A(W){if(w.call(W,"key")){var L=Object.getOwnPropertyDescriptor(W,"key").get;if(L&&L.isReactWarning)return!1}return W.key!==void 0}function x(W,L){function C(){ZU||(ZU=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",L))}C.isReactWarning=!0,Object.defineProperty(W,"key",{get:C,configurable:!0})}function K(){var W=X(this.type);return zU[W]||(zU[W]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),W=this.props.ref,W!==void 0?W:null}function b(W,L,C,y,UU,YU){var m=C.ref;return W={$$typeof:d,type:W,key:L,props:C,_owner:y},(m!==void 0?m:null)!==null?Object.defineProperty(W,"ref",{enumerable:!1,get:K}):Object.defineProperty(W,"ref",{enumerable:!1,value:null}),W._store={},Object.defineProperty(W._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(W,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(W,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:UU}),Object.defineProperty(W,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:YU}),Object.freeze&&(Object.freeze(W.props),Object.freeze(W)),W}function n(W,L,C,y,UU,YU){var m=L.children;if(m!==void 0)if(y)if(T(m)){for(y=0;y<m.length;y++)V(m[y]);Object.freeze&&Object.freeze(m)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else V(m);if(w.call(L,"key")){m=X(W);var MU=Object.keys(L).filter(function(qU){return qU!=="key"});y=0<MU.length?"{key: someKey, "+MU.join(": ..., ")+": ...}":"{key: someKey}",QU[m+y]||(MU=0<MU.length?"{"+MU.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
14
|
-
let props = %s;
|
|
15
|
-
<%s {...props} />
|
|
16
|
-
React keys must be passed directly to JSX without using spread:
|
|
17
|
-
let props = %s;
|
|
18
|
-
<%s key={someKey} {...props} />`,y,m,MU,m),QU[m+y]=!0)}if(m=null,C!==void 0&&(Y(C),m=""+C),A(L)&&(Y(L.key),m=""+L.key),"key"in L){C={};for(var WU in L)WU!=="key"&&(C[WU]=L[WU])}else C=L;return m&&x(C,typeof W==="function"?W.displayName||W.name||"Unknown":W),b(W,m,C,N(),UU,YU)}function V(W){f(W)?W._store&&(W._store.validated=1):typeof W==="object"&&W!==null&&W.$$typeof===O&&(W._payload.status==="fulfilled"?f(W._payload.value)&&W._payload.value._store&&(W._payload.value._store.validated=1):W._store&&(W._store.validated=1))}function f(W){return typeof W==="object"&&W!==null&&W.$$typeof===d}var d=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),I=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),s=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),k=Symbol.for("react.suspense_list"),j=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),G=Symbol.for("react.client.reference"),$=GU.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,w=Object.prototype.hasOwnProperty,T=Array.isArray,a=console.createTask?console.createTask:function(){return null};GU={react_stack_bottom_frame:function(W){return W()}};var ZU,zU={},OU=GU.react_stack_bottom_frame.bind(GU,P)(),LU=a(Q(P)),QU={};OM.Fragment=h,OM.jsxDEV=function(W,L,C,y){var UU=1e4>$.recentlyCreatedOwnerStacks++;return n(W,L,C,y,UU?Error("react-stack-top-frame"):OU,UU?a(Q(W)):LU)}})()});var E=o(BU(),1),sU=o(t(),1),dU=E.createContext(null),JM=200;function LM({children:X}){let[z,Y]=E.useState(!1),[Q,N]=E.useState([]),[P,A]=E.useState({}),[x,K]=E.useState({}),[b,n]=E.useState(0),[V,f]=E.useState(0),[d,i]=E.useState(0),h=E.useRef(null),I=E.useRef(null);E.useEffect(()=>{let g=setInterval(()=>{let k=Date.now();K((j)=>{let O={};for(let[v,G]of Object.entries(j))if(G.expiresAt>k)O[v]=G;return O})},500);return()=>clearInterval(g)},[]);let u=E.useCallback(()=>{if(h.current)h.current.close(),h.current=null;try{let g=new EventSource("/api/telemetry/stream");h.current=g,g.onopen=()=>{Y(!0)},g.onmessage=(k)=>{if(!k.data||k.data.trim()==="")return;try{let j=JSON.parse(k.data);if(j.connected){Y(!0);return}if(Array.isArray(j)){let O=Date.now(),v=j.map((G)=>({...G,_receivedAt:O}));if(N((G)=>{return[...v,...G].slice(0,JM)}),A((G)=>{let $={...G};for(let w of j){let T=$[w.agent_id];if(!T||new Date(w.timestamp)>new Date(T.timestamp))$[w.agent_id]={timestamp:w.timestamp,category:w.category,type:w.type}}return $}),K((G)=>{let $={...G},w=Date.now()+3000;for(let T of j)$[T.agent_id]={type:T.type,expiresAt:w};return $}),j.some((G)=>G.category==="system"&&(G.type==="agent_started"||G.type==="agent_stopped")))n((G)=>G+1);if(j.some((G)=>G.category==="TASK"&&(G.type==="task_created"||G.type==="task_updated"||G.type==="task_deleted")))f((G)=>G+1);if(j.some((G)=>G.level==="error"||G.category==="ERROR"||G.category==="system"&&G.type==="agent_stopped"))i((G)=>G+1)}}catch{}},g.onerror=()=>{if(Y(!1),g.close(),h.current=null,I.current)clearTimeout(I.current);I.current=setTimeout(u,2000)}}catch{if(Y(!1),I.current)clearTimeout(I.current);I.current=setTimeout(u,2000)}},[]);E.useEffect(()=>{return u(),()=>{if(h.current)h.current.close();if(I.current)clearTimeout(I.current)}},[u]);let c=E.useCallback(()=>{N([])},[]),s=E.useCallback(()=>{n((g)=>g+1),f((g)=>g+1)},[]),l=E.default.useMemo(()=>({connected:z,events:Q,lastActivityByAgent:P,activeAgents:x,statusChangeCounter:b,taskChangeCounter:V,notificationCounter:d,clearEvents:c,triggerRefresh:s}),[z,Q,P,x,b,V,d,c,s]);return sU.jsxDEV(dU.Provider,{value:l,children:X},void 0,!1,void 0,this)}function HU(){let X=E.useContext(dU);if(!X)throw Error("useTelemetryContext must be used within TelemetryProvider");return X}function qM(X){let{connected:z,events:Y,lastActivityByAgent:Q}=HU(),N=E.default.useMemo(()=>{let x=Y;if(X?.agent_id)x=x.filter((K)=>K.agent_id===X.agent_id);if(X?.category)x=x.filter((K)=>K.category===X.category);if(X?.limit)x=x.slice(0,X.limit);return x},[Y,X?.agent_id,X?.category,X?.limit]),P=X?.agent_id?Q[X.agent_id]:void 0,A=E.default.useMemo(()=>{if(!P)return!1;let x=new Date(P.timestamp).getTime();return Date.now()-x<1e4},[P]);return{connected:z,events:N,lastActivity:P,isActive:A}}function DM(X){switch(X){case"llm_request":return"Thinking";case"tool_invocation":return"Using tools";case"tool_result":return"Using tools";case"thread_activity":return"Working";case"agent_started":return"Starting";case"agent_stopped":return"Stopped";default:return"Working"}}function RM(X){let{activeAgents:z}=HU(),Y=z[X],Q=!!Y,N=Y?.type;return E.default.useMemo(()=>({isActive:Q,type:N,label:Q?DM(N):void 0}),[Q,N])}function wM(){let{statusChangeCounter:X}=HU();return X}function KM(){let{taskChangeCounter:X}=HU();return X}function VM(){let{notificationCounter:X}=HU();return X}function NM(){let{triggerRefresh:X}=HU();return X}var F=o(BU(),1),iU=o(t(),1),pU=F.createContext(null);function NU(){let X=F.useContext(pU);if(!X)throw Error("useAuth must be used within an AuthProvider");return X}function xM({children:X}){let[z,Y]=F.useState(null),[Q,N]=F.useState(null),[P,A]=F.useState(!0),[x,K]=F.useState(null),[b,n]=F.useState(!1),[V,f]=F.useState(null),d=F.useRef(null),i=F.useRef(!1),h=F.useRef(!1),I=F.useCallback((O)=>{d.current=O,N(O)},[]),u=F.useCallback(async()=>{if(i.current)return!1;i.current=!0;try{let O=await fetch("/api/auth/refresh",{method:"POST",credentials:"include"});if(!O.ok)return!1;let v=await O.json();if(I(v.accessToken),v.user)Y(v.user);if(v.onboarding)f(v.onboarding.completed||v.onboarding.has_any_keys);return!!v.user}catch(O){return console.error("Token refresh failed:",O),!1}finally{i.current=!1}},[I]),c=F.useCallback(async()=>{try{let O=d.current,G=await(await fetch("/api/auth/check",{headers:O?{Authorization:`Bearer ${O}`}:{}})).json();if(K(G.hasUsers),n(G.isDev??!1),G.onboarding)f(G.onboarding.completed||G.onboarding.has_any_keys);if(G.authenticated&&G.user)Y(G.user);else if(Y(null),G.hasUsers){if(!await u())I(null)}}catch(O){console.error("Auth check failed:",O),Y(null),I(null)}finally{A(!1)}},[u,I]),s=F.useCallback(async(O,v)=>{try{let G=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:O,password:v})}),$=await G.json();if(!G.ok)return{success:!1,error:$.error||"Login failed"};return I($.accessToken),Y($.user),K(!0),{success:!0}}catch(G){return console.error("Login failed:",G),{success:!1,error:"Login failed"}}},[I]),l=F.useCallback(async()=>{try{let O=d.current;await fetch("/api/auth/logout",{method:"POST",credentials:"include",headers:O?{Authorization:`Bearer ${O}`}:{}})}catch(O){console.error("Logout failed:",O)}finally{Y(null),I(null)}},[I]),g=F.useCallback(async(O,v={})=>{let G=new Headers(v.headers),$=d.current;if($)G.set("Authorization",`Bearer ${$}`);return fetch(O,{...v,headers:G})},[]),k=F.useCallback(async()=>{return u()},[u]);F.useEffect(()=>{if(h.current)return;h.current=!0,c()},[c]),F.useEffect(()=>{if(!Q)return;let O=setInterval(()=>{u()},840000);return()=>clearInterval(O)},[Q,u]);let j=F.useMemo(()=>({user:z,isAuthenticated:!!z,isLoading:P,hasUsers:x,isDev:b,accessToken:Q,onboardingComplete:V,setOnboardingComplete:f,login:s,logout:l,refreshToken:k,checkAuth:c,authFetch:g}),[z,P,x,b,Q,V,f,s,l,k,c,g]);return iU.jsxDEV(pU.Provider,{value:j,children:X},void 0,!1,void 0,this)}function FM(){let{accessToken:X}=NU();return X?{Authorization:`Bearer ${X}`}:{}}var S=o(BU(),1);var cU=o(t(),1),oU=S.createContext(null);function PM(){let X=S.useContext(oU);if(!X)throw Error("useProjects must be used within a ProjectProvider");return X}var _U="apteva_current_project";function IM({children:X}){let{authFetch:z,isAuthenticated:Y,isLoading:Q}=NU(),[N,P]=S.useState([]),[A,x]=S.useState(()=>{if(typeof window<"u")return localStorage.getItem(_U);return null}),[K,b]=S.useState(!0),[n,V]=S.useState(null),[f,d]=S.useState(0),[i,h]=S.useState(!1),[I,u]=S.useState(!1),[c,s]=S.useState(!0);S.useEffect(()=>{fetch("/api/features").then(($)=>$.json()).then(($)=>{h($.projects===!0),u($.metaAgent===!0),s($.costTracking!==!1)}).catch(()=>{h(!1),u(!1),s(!0)})},[]);let l=S.useCallback(($)=>{if(x($),typeof window<"u")if($===null)localStorage.removeItem(_U);else localStorage.setItem(_U,$)},[]),g=N.find(($)=>$.id===A)||null,k=S.useCallback(async()=>{if(!i){P([]),b(!1);return}if(!Y&&!Q){P([]),b(!1);return}try{V(null);let $=await z("/api/projects");if(!$.ok)throw Error("Failed to fetch projects");let w=await $.json();if(P(w.projects||[]),d(w.unassignedCount||0),A&&A!=="unassigned"&&!w.projects.find((T)=>T.id===A))l(null)}catch($){console.error("Failed to fetch projects:",$),V("Failed to load projects")}finally{b(!1)}},[z,Y,Q,A,l,i]),j=S.useCallback(async($)=>{try{let w=await z("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)});if(!w.ok){let a=await w.json();throw Error(a.error||"Failed to create project")}let T=await w.json();return await k(),T.project}catch(w){return console.error("Failed to create project:",w),null}},[z,k]),O=S.useCallback(async($,w)=>{try{let T=await z(`/api/projects/${$}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(w)});if(!T.ok){let ZU=await T.json();throw Error(ZU.error||"Failed to update project")}let a=await T.json();return await k(),a.project}catch(T){return console.error("Failed to update project:",T),null}},[z,k]),v=S.useCallback(async($)=>{try{let w=await z(`/api/projects/${$}`,{method:"DELETE"});if(!w.ok){let T=await w.json();throw Error(T.error||"Failed to delete project")}if(A===$)l(null);return await k(),!0}catch(w){return console.error("Failed to delete project:",w),!1}},[z,A,l,k]);S.useEffect(()=>{if(!Q&&i)k()},[Q,i,k]);let G=S.useMemo(()=>({projects:N,currentProjectId:A,currentProject:g,isLoading:K,error:n,unassignedCount:f,projectsEnabled:i,metaAgentEnabled:I,costTrackingEnabled:c,setCurrentProjectId:l,createProject:j,updateProject:O,deleteProject:v,refreshProjects:k}),[N,A,g,K,n,f,i,I,c,l,j,O,v,k]);return cU.jsxDEV(oU.Provider,{value:G,children:X},void 0,!1,void 0,this)}var p=o(BU(),1);var xU={dark:{id:"dark",name:"Dark",colors:{"--color-bg":"#0a0a0a","--color-bg-secondary":"#0f0f0f","--color-surface":"#111111","--color-surface-hover":"#0a0a0a","--color-surface-raised":"#1a1a1a","--color-border":"#1a1a1a","--color-border-light":"#222222","--color-text":"#e0e0e0","--color-text-secondary":"#888888","--color-text-muted":"#666666","--color-text-faint":"#555555","--color-accent":"#f97316","--color-accent-hover":"#ea580c","--color-accent-5":"rgba(249, 115, 22, 0.05)","--color-accent-10":"rgba(249, 115, 22, 0.1)","--color-accent-15":"rgba(249, 115, 22, 0.15)","--color-accent-20":"rgba(249, 115, 22, 0.2)","--color-accent-30":"rgba(249, 115, 22, 0.3)","--color-accent-70":"rgba(249, 115, 22, 0.7)","--color-selection-bg":"#f97316","--color-selection-text":"#0a0a0a","--color-scrollbar":"#222222","--color-scrollbar-hover":"#444444"}},light:{id:"light",name:"Light",colors:{"--color-bg":"#ffffff","--color-bg-secondary":"#f7f7f7","--color-surface":"#ffffff","--color-surface-hover":"#f5f5f5","--color-surface-raised":"#f0f0f0","--color-border":"#e0e0e0","--color-border-light":"#e8e8e8","--color-text":"#1a1a1a","--color-text-secondary":"#555555","--color-text-muted":"#777777","--color-text-faint":"#999999","--color-accent":"#ea580c","--color-accent-hover":"#c2410c","--color-accent-5":"rgba(234, 88, 12, 0.05)","--color-accent-10":"rgba(234, 88, 12, 0.1)","--color-accent-15":"rgba(234, 88, 12, 0.15)","--color-accent-20":"rgba(234, 88, 12, 0.2)","--color-accent-30":"rgba(234, 88, 12, 0.3)","--color-accent-70":"rgba(234, 88, 12, 0.7)","--color-selection-bg":"#ea580c","--color-selection-text":"#ffffff","--color-scrollbar":"#cccccc","--color-scrollbar-hover":"#aaaaaa"}},"professional-dark":{id:"professional-dark",name:"Professional Dark",colors:{"--color-bg":"#0f1117","--color-bg-secondary":"#131520","--color-surface":"#181a24","--color-surface-hover":"#1e2030","--color-surface-raised":"#232636","--color-border":"#252838","--color-border-light":"#2d3044","--color-text":"#d4d7e0","--color-text-secondary":"#8b8fa3","--color-text-muted":"#6b6f83","--color-text-faint":"#4e5266","--color-accent":"#7c3aed","--color-accent-hover":"#6d28d9","--color-accent-5":"rgba(124, 58, 237, 0.05)","--color-accent-10":"rgba(124, 58, 237, 0.1)","--color-accent-15":"rgba(124, 58, 237, 0.15)","--color-accent-20":"rgba(124, 58, 237, 0.2)","--color-accent-30":"rgba(124, 58, 237, 0.3)","--color-accent-70":"rgba(124, 58, 237, 0.7)","--color-selection-bg":"#7c3aed","--color-selection-text":"#ffffff","--color-scrollbar":"#2d3044","--color-scrollbar-hover":"#3d4058"}},"professional-light":{id:"professional-light",name:"Professional Light",colors:{"--color-bg":"#f8f9fb","--color-bg-secondary":"#f0f2f5","--color-surface":"#ffffff","--color-surface-hover":"#f5f6f8","--color-surface-raised":"#eef0f4","--color-border":"#e2e4ea","--color-border-light":"#e8eaef","--color-text":"#1a1d2b","--color-text-secondary":"#4b5066","--color-text-muted":"#6b7088","--color-text-faint":"#9298ac","--color-accent":"#6d28d9","--color-accent-hover":"#5b21b6","--color-accent-5":"rgba(109, 40, 217, 0.05)","--color-accent-10":"rgba(109, 40, 217, 0.1)","--color-accent-15":"rgba(109, 40, 217, 0.15)","--color-accent-20":"rgba(109, 40, 217, 0.2)","--color-accent-30":"rgba(109, 40, 217, 0.3)","--color-accent-70":"rgba(109, 40, 217, 0.7)","--color-selection-bg":"#6d28d9","--color-selection-text":"#ffffff","--color-scrollbar":"#cdd0d8","--color-scrollbar-hover":"#b0b4c0"}}};function lU(X,z,Y){let Q=X==="auto"?Y:X==="dark";if(z==="professional")return Q?xU["professional-dark"]:xU["professional-light"];return Q?xU.dark:xU.light}var tU=o(t(),1),aU=p.createContext(null);function _M(){let X=p.useContext(aU);if(!X)throw Error("useTheme must be used within a ThemeProvider");return X}var nU="apteva_theme_mode",rU="apteva_theme_style";function EM(){if(typeof window>"u")return!0;return window.matchMedia("(prefers-color-scheme: dark)").matches}function AM(X,z){let Y=document.documentElement;for(let[Q,N]of Object.entries(X.colors))Y.style.setProperty(Q,N);Y.setAttribute("data-theme",X.id),Y.setAttribute("data-style",z),document.body.style.fontFamily=z==="professional"?"'Inter', system-ui, -apple-system, sans-serif":"'JetBrains Mono', monospace"}function TM({children:X}){let[z,Y]=p.useState(()=>{if(typeof window<"u"){let V=localStorage.getItem(nU);if(V==="dark"||V==="light"||V==="auto")return V}return"auto"}),[Q,N]=p.useState(()=>{if(typeof window<"u"){let V=localStorage.getItem(rU);if(V==="classic"||V==="professional")return V}return"classic"}),[P,A]=p.useState(EM);p.useEffect(()=>{let V=window.matchMedia("(prefers-color-scheme: dark)"),f=(d)=>A(d.matches);return V.addEventListener("change",f),()=>V.removeEventListener("change",f)},[]);let x=p.useMemo(()=>lU(z,Q,P),[z,Q,P]);p.useEffect(()=>{AM(x,Q)},[x,Q]);let K=p.useCallback((V)=>{Y(V),localStorage.setItem(nU,V)},[]),b=p.useCallback((V)=>{N(V),localStorage.setItem(rU,V)},[]),n=p.useMemo(()=>({mode:z,style:Q,theme:x,setMode:K,setStyle:b}),[z,Q,x,K,b]);return tU.jsxDEV(aU.Provider,{value:n,children:X},void 0,!1,void 0,this)}var e=o(BU(),1),MM=o(t(),1),UM=e.createContext(null),eU="apteva_ui_mode";function jM(){let X=e.useContext(UM);if(!X)throw Error("useUIMode must be used within a UIModeProvider");return X}function vM({children:X}){let[z,Y]=e.useState(()=>{if(typeof window<"u"){let K=localStorage.getItem(eU);if(K==="developer"||K==="business")return K}return"developer"}),Q=e.useCallback((K)=>{Y(K),localStorage.setItem(eU,K)},[]),N=z==="developer",P=z==="business",A=e.useCallback((K,b)=>{return z==="developer"?K:b},[z]),x=e.useMemo(()=>({mode:z,setMode:Q,isDev:N,isBusiness:P,t:A}),[z,Q,N,P,A]);return MM.jsxDEV(UM.Provider,{value:x,children:X},void 0,!1,void 0,this)}export{o as Y,yU as Z,CM as _,SM as $,BU as aa,t as ba,LM as ca,HU as da,qM as ea,RM as fa,wM as ga,KM as ha,VM as ia,NM as ja,NU as ka,xM as la,FM as ma,PM as na,IM as oa,_M as pa,TM as qa,jM as ra,vM as sa};
|
|
19
|
-
|
|
20
|
-
//# debugId=C04D0F57C4A0B99764756E2164756E21
|
package/dist/App.zn4mw16t.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer components{@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slideUp{animation:.2s ease-out slideUp}.apteva-scrollbar-hidden{-ms-overflow-style:none;scrollbar-width:none}.apteva-scrollbar-hidden::-webkit-scrollbar{display:none}.apteva-md{white-space:pre-wrap!important;color:inherit!important;word-wrap:break-word!important;overflow-wrap:break-word!important;font-size:.875rem!important;line-height:1.625!important}.apteva-md-h2{all:unset!important;display:block!important;margin-top:.75rem!important;margin-bottom:.25rem!important;font-size:1.125rem!important;font-weight:600!important;line-height:1.3!important}.apteva-md-h3{all:unset!important;display:block!important;margin-top:.5rem!important;margin-bottom:.125rem!important;font-size:1rem!important;font-weight:600!important;line-height:1.3!important}.apteva-md-ul{all:unset!important;list-style-type:disc!important;list-style-position:outside!important;display:block!important;margin-top:.5rem!important;margin-bottom:.5rem!important;padding-left:1.5rem!important}.apteva-md-ol{all:unset!important;list-style-type:decimal!important;list-style-position:outside!important;display:block!important;margin-top:.5rem!important;margin-bottom:.5rem!important;padding-left:1.5rem!important}.apteva-md-li{all:unset!important;display:list-item!important;margin-bottom:.25rem!important;padding-left:.25rem!important}.apteva-tool-call{all:unset!important;display:flex!important;background-color:#8080801a!important;border:1px solid #80808033!important;border-radius:.5rem!important;align-items: center!important;gap:.5rem!important;margin:.5rem 0!important;padding:.5rem .75rem!important;font-size:.875rem!important}.apteva-tool-call-dot{all:unset!important;display:block!important;border-radius:50%!important;flex-shrink:0!important;width:.5rem!important;height:.5rem!important}.apteva-tool-call-dot-running{animation:1s infinite blink!important;background-color:#3b82f6!important}.apteva-tool-call-dot-completed{background-color:#22c55e!important}.apteva-tool-call-dot-error{background-color:#ef4444!important}.apteva-tool-call-name{all:unset!important;color:inherit!important;font-family:ui-monospace,monospace!important}.apteva-tool-call-status{all:unset!important;color:#808080cc!important;margin-left:auto!important}.apteva-tool-call-status-completed{color:#22c55e!important}.apteva-tool-call-status-error{color:#ef4444!important}.apteva-md-table-wrapper{overflow-x:auto!important;margin:.75rem 0!important}.apteva-md-table{border-collapse:collapse!important;width:100%!important;font-size:.8125rem!important;line-height:1.4!important}.apteva-md-th{text-align:left!important;white-space:nowrap!important;border-bottom:2px solid #8080804d!important;padding:.5rem .75rem!important;font-weight:600!important}.apteva-md-td{border-bottom:1px solid #80808026!important;padding:.5rem .75rem!important}.apteva-md-table tbody tr:hover{background-color:#8080800d!important}.apteva-md-table tbody tr:last-child .apteva-md-td{border-bottom:none!important}.apteva-md-img{display:block!important;border-radius:.5rem!important;max-width:100%!important;height:auto!important;margin:.5rem 0!important}.apteva-md-link{color:#3b82f6!important;text-underline-offset:2px!important;text-decoration:underline!important}.apteva-md-link:hover{color:#2563eb!important}.apteva-md-inline-code{background-color:#80808026!important;border-radius:.25rem!important;padding:.125rem .375rem!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace!important;font-size:.8125rem!important}.apteva-typing-indicator{display:inline-flex!important;align-items: center!important;gap:2px!important}.apteva-typing-indicator span{opacity:.4!important;animation:1.4s infinite both apteva-typing-blink!important;background-color:currentColor!important;border-radius:50%!important;width:6px!important;height:6px!important}.apteva-typing-indicator span:nth-child(2){animation-delay:.2s!important}.apteva-typing-indicator span:nth-child(3){animation-delay:.4s!important}@keyframes apteva-typing-blink{0%,80%,to{opacity:.4}40%{opacity:1}}.apteva-chat-header{all:unset!important;box-sizing:border-box!important;display:flex!important;justify-content:space-between!important;align-items: center!important;padding:.75rem 1rem!important}.apteva-chat-title{all:unset!important;color:#111827!important;display:block!important;font-size:1.125rem!important;font-weight:600!important;line-height:1.4!important}@media (prefers-color-scheme:dark){.apteva-chat-title{color:#fff!important}}.dark .apteva-chat-title{color:#fff!important}.apteva-chat-status{all:unset!important;display:block!important;margin-top:.125rem!important;font-size:.75rem!important;line-height:1.4!important}.apteva-chat-status-ready,.apteva-chat-status-thinking{color:#737373!important}.apteva-chat-status-tool{color:#3b82f6!important}@media (prefers-color-scheme:dark){.apteva-chat-status-ready,.apteva-chat-status-thinking{color:#525252!important}.apteva-chat-status-tool{color:#60a5fa!important}}.dark .apteva-chat-status-ready,.dark .apteva-chat-status-thinking{color:#525252!important}.dark .apteva-chat-status-tool{color:#60a5fa!important}.apteva-message-list{box-sizing:border-box!important;display:block!important;overflow-y:auto!important;flex:1!important;padding:1rem!important}.apteva-message-row-user{display:flex!important;justify-content:flex-end!important;margin-bottom:.75rem!important}.apteva-message-row-assistant{display:flex!important;justify-content:flex-start!important;margin-bottom:.75rem!important}.apteva-message-bubble{box-sizing:border-box!important;display:block!important;border-radius:1rem!important;max-width:95%!important;padding:.625rem 1rem!important;font-size:.875rem!important;line-height:1.5!important}.apteva-message-user{color:#fff!important;background-color:#2563eb!important;border-bottom-right-radius:.375rem!important}.apteva-message-assistant{color:#0a0a0a!important;background-color:#fafafa!important;border-bottom-left-radius:.375rem!important}@media (prefers-color-scheme:dark){.apteva-message-assistant{color:#fafafa!important;background-color:#262626!important}}.dark .apteva-message-assistant{color:#fafafa!important;background-color:#262626!important}.apteva-message-content-user,.apteva-message-content-assistant{display:block!important}.apteva-message-text{white-space:pre-wrap!important;color:inherit!important;display:block!important;font-size:.875rem!important;line-height:1.625!important}.apteva-message-widgets{display:block!important;margin-top:.5rem!important}.apteva-message-timestamp{display:block!important;margin-top:.375rem!important;font-size:.75rem!important}.apteva-message-timestamp-user{color:#bfdbfe!important}.apteva-message-timestamp-assistant,.apteva-welcome-empty{color:#737373!important}.apteva-welcome-icon{color:#a3a3a3!important}.apteva-welcome-title{color:#111827!important}.apteva-welcome-subtitle{color:#737373!important}.apteva-prompt-card{background-color:#fff!important;border-color:#e5e5e5!important}.apteva-prompt-card:hover{background-color:#fafafa!important;border-color:#93c5fd!important}.apteva-prompt-text{color:#111827!important}.apteva-prompt-desc{color:#737373!important}.apteva-prompt-icon{color:#a3a3a3!important}.group:hover .apteva-prompt-icon{color:#3b82f6!important}.apteva-prompt-icon-box{color:#737373!important;background-color:#f5f5f5!important}.group:hover .apteva-prompt-icon-box{color:#2563eb!important;background-color:#dbeafe!important}.apteva-prompt-chevron{color:#a3a3a3!important}.group:hover .apteva-prompt-chevron{color:#3b82f6!important}@media (prefers-color-scheme:dark){.apteva-welcome-empty{color:#a3a3a3!important}.apteva-welcome-icon{color:#525252!important}.apteva-welcome-title{color:#fff!important}.apteva-welcome-subtitle{color:#a3a3a3!important}.apteva-prompt-card{background-color:#262626!important;border-color:#404040!important}.apteva-prompt-card:hover{background-color:#1f1f1f!important;border-color:#3b82f6!important}.apteva-prompt-text{color:#fff!important}.apteva-prompt-desc{color:#a3a3a3!important}.apteva-prompt-icon{color:#525252!important}.group:hover .apteva-prompt-icon{color:#60a5fa!important}.apteva-prompt-icon-box{color:#a3a3a3!important;background-color:#404040!important}.group:hover .apteva-prompt-icon-box{color:#60a5fa!important;background-color:#3b82f626!important}.apteva-prompt-chevron{color:#525252!important}.group:hover .apteva-prompt-chevron{color:#60a5fa!important}}.dark .apteva-welcome-empty{color:#a3a3a3!important}.dark .apteva-welcome-icon{color:#525252!important}.dark .apteva-welcome-title{color:#fff!important}.dark .apteva-welcome-subtitle{color:#a3a3a3!important}.dark .apteva-prompt-card{background-color:#262626!important;border-color:#404040!important}.dark .apteva-prompt-card:hover{background-color:#1f1f1f!important;border-color:#3b82f6!important}.dark .apteva-prompt-text{color:#fff!important}.dark .apteva-prompt-desc{color:#a3a3a3!important}.dark .apteva-prompt-icon{color:#525252!important}.dark .group:hover .apteva-prompt-icon{color:#60a5fa!important}.dark .apteva-prompt-icon-box{color:#a3a3a3!important;background-color:#404040!important}.dark .group:hover .apteva-prompt-icon-box{color:#60a5fa!important;background-color:#3b82f626!important}.dark .apteva-prompt-chevron{color:#525252!important}.dark .group:hover .apteva-prompt-chevron{color:#60a5fa!important}.apteva-message-segmented{display:flex!important;flex-direction:column!important;gap:.5rem!important;width:95%!important;max-width:95%!important}.apteva-message-segmented .apteva-message-bubble{width:-moz-fit-content!important;width:fit-content!important;max-width:100%!important}.apteva-tool-call-standalone,.apteva-widget-standalone{display:block!important}.apteva-widget{--aw-bg:#fff;--aw-bg-subtle:#fafafa;--aw-bg-muted:#f5f5f5;--aw-bg-input:#fafafa;--aw-border:#e5e5e5;--aw-border-focus:#3b82f6;--aw-text:#171717;--aw-text-heading:#171717;--aw-text-body:#525252;--aw-text-muted:#737373;--aw-text-placeholder:#a3a3a3;--aw-text-on-primary:#fff;--aw-primary:#3b82f6;--aw-primary-hover:#2563eb;--aw-hover-bg:#fafafa;--aw-danger:#ef4444;color:var(--aw-text)!important;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important;font-size:.875rem!important;line-height:1.5!important}@media (prefers-color-scheme:dark){.apteva-widget{--aw-bg:#171717;--aw-bg-subtle:#1a1a1a;--aw-bg-muted:#262626;--aw-bg-input:#262626;--aw-border:#333;--aw-border-focus:#3b82f6;--aw-text:#fafafa;--aw-text-heading:#fff;--aw-text-body:#a3a3a3;--aw-text-muted:#737373;--aw-text-placeholder:#525252;--aw-primary:#3b82f6;--aw-primary-hover:#60a5fa;--aw-hover-bg:#262626;--aw-danger:#f87171}}.dark .apteva-widget,.apteva-widget.apteva-dark{--aw-bg:#171717;--aw-bg-subtle:#1a1a1a;--aw-bg-muted:#262626;--aw-bg-input:#262626;--aw-border:#333;--aw-border-focus:#3b82f6;--aw-text:#fafafa;--aw-text-heading:#fff;--aw-text-body:#a3a3a3;--aw-text-muted:#737373;--aw-text-placeholder:#525252;--aw-primary:#3b82f6;--aw-primary-hover:#60a5fa;--aw-hover-bg:#262626;--aw-danger:#f87171}.apteva-widget *,.apteva-widget :before,.apteva-widget :after{box-sizing:border-box!important}.apteva-widget h1,.apteva-widget h2,.apteva-widget h3,.apteva-widget h4,.apteva-widget p,.apteva-widget ul,.apteva-widget ol,.apteva-widget li,.apteva-widget figure,.apteva-widget figcaption,.apteva-widget table,.apteva-widget caption,.apteva-widget th,.apteva-widget td{font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;margin:0!important;padding:0!important}.apteva-widget input,.apteva-widget select,.apteva-widget textarea,.apteva-widget button{font-family:inherit!important;font-size:inherit!important;line-height:inherit!important}.apteva-widget table{border-collapse:collapse!important;border-spacing:0!important}.apteva-widget img{display:block!important;max-width:100%!important}.apteva-widget>div,.apteva-widget>form,.apteva-widget>figure{background-color:var(--aw-bg)!important;border-color:var(--aw-border)!important;color:var(--aw-text)!important}.apteva-widget h3,.apteva-widget h4{color:var(--aw-text-heading)!important}.apteva-widget p,.apteva-widget label{color:var(--aw-text-body)!important}.apteva-widget span{color:inherit!important}.apteva-widget input,.apteva-widget select,.apteva-widget textarea{background-color:var(--aw-bg-input)!important;border-color:var(--aw-border)!important;color:var(--aw-text)!important}.apteva-widget input::placeholder,.apteva-widget textarea::placeholder{color:var(--aw-text-placeholder)!important}.apteva-widget input:focus,.apteva-widget select:focus,.apteva-widget textarea:focus{border-color:var(--aw-border-focus)!important}.apteva-widget .apteva-kpi-value{color:var(--aw-text-heading)!important}.apteva-widget thead tr{background-color:var(--aw-bg-muted)!important}.apteva-widget th{color:var(--aw-text-heading)!important}.apteva-widget td{color:var(--aw-text-body)!important}.apteva-widget caption{background-color:var(--aw-bg-muted)!important;color:var(--aw-text-body)!important}.apteva-widget tbody tr{border-color:var(--aw-border)!important}.apteva-widget .apteva-list-item:hover{background-color:var(--aw-hover-bg)!important}.apteva-widget button[type=submit]{background-color:var(--aw-primary)!important;color:var(--aw-text-on-primary)!important}.apteva-widget button[type=submit]:hover{background-color:var(--aw-primary-hover)!important}.apteva-widget .apteva-file-drop{border-color:var(--aw-border)!important;background-color:var(--aw-bg-muted)!important;color:var(--aw-text-muted)!important}.apteva-widget .apteva-file-drop:hover{border-color:var(--aw-primary)!important;color:var(--aw-primary)!important}.apteva-widget .apteva-file-item-row{background-color:var(--aw-bg-muted)!important;color:var(--aw-text-body)!important}.apteva-widget .apteva-file-remove-btn{color:var(--aw-text-muted)!important}.apteva-widget .apteva-file-remove-btn:hover{color:var(--aw-danger)!important}.apteva-widget .apteva-select-trigger,.apteva-widget .apteva-datepicker-trigger{background-color:var(--aw-bg-input)!important;border-color:var(--aw-border)!important;color:var(--aw-text)!important;cursor:pointer!important}.apteva-widget .apteva-select-trigger:hover,.apteva-widget .apteva-datepicker-trigger:hover{border-color:var(--aw-text-muted)!important}.apteva-widget .apteva-select-placeholder{color:var(--aw-text-placeholder)!important}.apteva-widget .apteva-select-value,.apteva-widget .apteva-datepicker-value{color:var(--aw-text)!important}.apteva-widget .apteva-select-chevron{color:var(--aw-text-muted)!important}.apteva-widget .apteva-select-dropdown,.apteva-widget .apteva-datepicker-dropdown{background-color:var(--aw-bg)!important;border-color:var(--aw-border)!important}.apteva-widget .apteva-select-option{color:var(--aw-text)!important;background-color:#0000!important}.apteva-widget .apteva-select-option:hover{background-color:var(--aw-bg-muted)!important}.apteva-widget .apteva-select-option-active{background-color:var(--aw-primary)!important;color:var(--aw-text-on-primary)!important}.apteva-widget .apteva-select-option-active:hover{background-color:var(--aw-primary-hover)!important}.apteva-widget .apteva-datepicker-dropdown{min-width:280px!important}.apteva-widget .apteva-datepicker-header{background-color:var(--aw-bg-muted)!important;border-bottom:1px solid var(--aw-border)!important}.apteva-widget .apteva-datepicker-title{color:var(--aw-text-heading)!important}.apteva-widget .apteva-datepicker-nav{color:var(--aw-text-muted)!important;cursor:pointer!important;background-color:#0000!important;border:none!important}.apteva-widget .apteva-datepicker-nav:hover{color:var(--aw-text)!important;background-color:var(--aw-bg-muted)!important}.apteva-widget .apteva-datepicker-daylabel{color:var(--aw-text-muted)!important}.apteva-widget .apteva-datepicker-day{color:var(--aw-text)!important;cursor:pointer!important;background-color:#0000!important;border:none!important}.apteva-widget .apteva-datepicker-day:hover{background-color:var(--aw-bg-muted)!important}.apteva-widget .apteva-datepicker-day-selected{background-color:var(--aw-primary)!important;color:var(--aw-text-on-primary)!important}.apteva-widget .apteva-datepicker-day-selected:hover{background-color:var(--aw-primary-hover)!important}.apteva-widget .apteva-datepicker-day-today{text-underline-offset:2px!important;text-decoration:underline!important;font-weight:700!important}.apteva-widget .apteva-field-label,.apteva-widget .apteva-checkbox span{color:var(--aw-text-body)!important}.apteva-widget-skeleton{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}.apteva-widget-skeleton *{box-sizing:border-box!important}@media (prefers-color-scheme:dark){.apteva-message-timestamp-assistant{color:#525252!important}}.dark .apteva-message-timestamp-assistant{color:#525252!important}.apteva-tool-card{box-sizing:border-box!important;display:flex!important;border-style:solid!important;border-width:1px!important;border-radius:.75rem!important;align-items: center!important;gap:.5rem!important;padding:.5rem .75rem!important;font-size:.875rem!important}.apteva-tool-card-running{color:#1d4ed8!important;background-color:#eff6ff!important;border-color:#bfdbfe!important}.apteva-tool-card-completed{color:#15803d!important;background-color:#f0fdf4!important;border-color:#bbf7d0!important}.apteva-tool-card-error{color:#b91c1c!important;background-color:#fef2f2!important;border-color:#fecaca!important}@media (prefers-color-scheme:dark){.apteva-tool-card-running{color:#60a5fa!important;background-color:#3b82f61a!important;border-color:#3b82f64d!important}.apteva-tool-card-completed{color:#4ade80!important;background-color:#22c55e1a!important;border-color:#22c55e4d!important}.apteva-tool-card-error{color:#f87171!important;background-color:#ef44441a!important;border-color:#ef44444d!important}}.dark .apteva-tool-card-running{color:#60a5fa!important;background-color:#3b82f61a!important;border-color:#3b82f64d!important}.dark .apteva-tool-card-completed{color:#4ade80!important;background-color:#22c55e1a!important;border-color:#22c55e4d!important}.dark .apteva-tool-card-error{color:#f87171!important;background-color:#ef44441a!important;border-color:#ef44444d!important}.apteva-tool-icon{flex-shrink:0!important;width:1rem!important;height:1rem!important}.apteva-tool-icon-spin{animation:1s linear infinite apteva-spin!important}.apteva-tool-spinner-track{opacity:.25!important}.apteva-tool-spinner-fill{opacity:.75!important}.apteva-tool-label{font-size:inherit!important}.apteva-tool-label strong{font-weight:600!important}@keyframes apteva-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.apteva-tool-card-preparing{color:#92400e!important;background-color:#fef3c7!important;border-color:#fcd34d!important}@media (prefers-color-scheme:dark){.apteva-tool-card-preparing{color:#fbbf24!important;background-color:#fbbf2426!important;border-color:#fbbf2466!important}}.dark .apteva-tool-card-preparing{color:#fbbf24!important;background-color:#fbbf2426!important;border-color:#fbbf2466!important}@keyframes apteva-pulse-glow{0%,to{box-shadow:0 0 #fbbf2400}50%{box-shadow:0 0 8px 2px #fbbf2480}}.apteva-tool-receiving{animation:.4s ease-in-out apteva-pulse-glow!important}.apteva-tool-status-text{opacity:.7!important;font-weight:400!important}.apteva-tool-char-count{opacity:.6!important;font-variant-numeric:tabular-nums!important;font-size:.85em!important;font-weight:400!important}.apteva-tool-dots{display:inline-flex!important;margin-left:1px!important}.apteva-tool-dots span{opacity:.3!important;animation:1.4s ease-in-out infinite apteva-dot-pulse!important}.apteva-tool-dots span:first-child{animation-delay:0s!important}.apteva-tool-dots span:nth-child(2){animation-delay:.2s!important}.apteva-tool-dots span:nth-child(3){animation-delay:.4s!important}@keyframes apteva-dot-pulse{0%,60%,to{opacity:.3}30%{opacity:1}}.apteva-tool-stream-separator{opacity:.5!important}.apteva-tool-stream-output{opacity:.85!important;white-space:nowrap!important;text-overflow:ellipsis!important;vertical-align:bottom!important;display:inline-block!important;overflow:hidden!important;max-width:300px!important;font-weight:400!important}.apteva-tool-inline{display:flex!important;align-items: center!important;gap:0!important;width:100%!important;padding:.25rem 0!important}.apteva-tool-inline-line{background-color:#d4d4d4!important;flex:1!important;height:1px!important}.apteva-tool-inline-content{display:flex!important;flex-shrink:0!important;align-items: center!important;gap:.375rem!important;padding:0 .75rem!important}.apteva-tool-inline-icon{color:#7c3aed!important;flex-shrink:0!important;width:.875rem!important;height:.875rem!important}.apteva-tool-inline-text{color:#9ca3af!important;white-space:nowrap!important;font-size:.8125rem!important}@media (prefers-color-scheme:dark){.apteva-tool-inline-line{background-color:#404040!important}.apteva-tool-inline-icon{color:#a78bfa!important}.apteva-tool-inline-text{color:#6b7280!important}}.dark .apteva-tool-inline-line{background-color:#404040!important}.dark .apteva-tool-inline-icon{color:#a78bfa!important}.dark .apteva-tool-inline-text{color:#6b7280!important}.apteva-tool-group{overflow:hidden!important;border:1px solid!important;border-radius:.5rem!important;font-size:.8125rem!important}.apteva-tool-group-running{color:#1d4ed8!important;background-color:#eff6ff!important;border-color:#bfdbfe!important}.apteva-tool-group-completed{color:#15803d!important;background-color:#f0fdf4!important;border-color:#bbf7d0!important}.apteva-tool-group-error{color:#b91c1c!important;background-color:#fef2f2!important;border-color:#fecaca!important}.apteva-tool-group-header{color:inherit!important;font:inherit!important;cursor:pointer!important;display:flex!important;background:0 0!important;border:none!important;justify-content:space-between!important;align-items: center!important;width:100%!important;padding:.375rem .625rem!important}.apteva-tool-group-header:hover{opacity:.8!important}.apteva-tool-group-header-left{display:flex!important;align-items: center!important;gap:.375rem!important}.apteva-tool-group-icon{flex-shrink:0!important}.apteva-tool-group-status{font-weight:600!important}.apteva-tool-group-chevron{opacity:.6!important;flex-shrink:0!important;transition:transform .2s!important}.apteva-tool-group-chevron-open{transform:rotate(180deg)!important}.apteva-tool-group-stream-name{margin-right:.25rem!important;font-weight:600!important}.apteva-tool-group-list{display:flex!important;border-top:1px solid #00000014!important;flex-direction:column!important;gap:.25rem!important;padding:.25rem .625rem .375rem!important}.apteva-tool-group-item{display:flex!important;flex-direction:column!important;gap:.125rem!important;padding:.1875rem 0!important;font-size:.75rem!important}.apteva-tool-group-item-row{display:flex!important;align-items: center!important;gap:.375rem!important}.apteva-tool-group-item-icon{flex-shrink:0!important}.apteva-tool-group-item-done{color:#16a34a!important}.apteva-tool-group-item-error{color:#dc2626!important}.apteva-tool-group-item-spinner{opacity:.6!important;animation:.8s linear infinite apteva-tool-spin!important;border:2px solid!important;border-top-color:#0000!important;border-radius:50%!important;width:10px!important;height:10px!important}.apteva-tool-group-item-name{font-weight:500!important}.apteva-tool-group-item-running-label{opacity:.5!important;font-style:italic!important}.apteva-tool-group-item-detail{opacity:.65!important;white-space:nowrap!important;text-overflow:ellipsis!important;overflow:hidden!important;max-width:100%!important;margin-left:calc(12px + .375rem)!important;font-size:.6875rem!important;line-height:1.3!important}.apteva-tool-group-item-result-text{opacity:.5!important}.apteva-tool-group-item-has-detail{padding-bottom:.25rem!important}@keyframes apteva-tool-spin{to{transform:rotate(360deg)}}@media (prefers-color-scheme:dark){.apteva-tool-group-running{color:#60a5fa!important;background-color:#3b82f61a!important;border-color:#3b82f64d!important}.apteva-tool-group-completed{color:#4ade80!important;background-color:#22c55e1a!important;border-color:#22c55e4d!important}.apteva-tool-group-error{color:#f87171!important;background-color:#ef44441a!important;border-color:#ef44444d!important}.apteva-tool-group-list{border-top-color:#ffffff1a!important}.apteva-tool-group-item-done{color:#4ade80!important}.apteva-tool-group-item-error{color:#f87171!important}}.dark .apteva-tool-group-running{color:#60a5fa!important;background-color:#3b82f61a!important;border-color:#3b82f64d!important}.dark .apteva-tool-group-completed{color:#4ade80!important;background-color:#22c55e1a!important;border-color:#22c55e4d!important}.dark .apteva-tool-group-error{color:#f87171!important;background-color:#ef44441a!important;border-color:#ef44444d!important}.dark .apteva-tool-group-list{border-top-color:#ffffff1a!important}.dark .apteva-tool-group-item-done{color:#4ade80!important}.dark .apteva-tool-group-item-error{color:#f87171!important}.apteva-composer{display:grid!important;position:relative!important;background-color:#fff!important;border:2px solid #d4d4d4!important;border-radius:1rem!important;gap:.5rem .75rem!important;padding:.5rem .75rem!important;transition:all .3s!important}.apteva-composer textarea{color:#171717!important;background-color:#0000!important}.apteva-composer textarea::placeholder{color:#a3a3a3!important}button.apteva-composer-menu-btn{color:#404040!important;background:0 0!important;border:none!important}button.apteva-composer-menu-btn:hover{background-color:#f5f5f5!important}.apteva-composer-menu{background-color:#262626!important}.apteva-composer-menu-item{color:#fff!important;background-color:#0000!important}.apteva-composer-menu-item:hover{background-color:#404040!important}.apteva-composer-menu-item-border{border-top:1px solid #404040!important}.apteva-composer-send-btn{color:#404040!important;background-color:#fff!important;border:1px solid #d4d4d4!important}.apteva-composer-send-btn svg{stroke:currentColor!important}.apteva-composer-stop-btn{all:unset!important;box-sizing:border-box!important;cursor:pointer!important;color:#dc2626!important;display:flex!important;background-color:#fef2f2!important;border:1px solid #f87171!important;border-radius:.5rem!important;flex-shrink:0!important;justify-content:center!important;align-items: center!important;width:2rem!important;height:2rem!important;margin:0!important;padding:0!important;transition:background-color .15s!important}.apteva-composer-stop-btn:hover{background-color:#fee2e2!important}.apteva-composer-stop-btn svg{fill:currentColor!important;width:14px!important;height:14px!important}@media (prefers-color-scheme:dark){.apteva-composer{background-color:#171717!important;border-color:#404040!important}.apteva-composer textarea{color:#fafafa!important}.apteva-composer textarea::placeholder{color:#525252!important}button.apteva-composer-menu-btn{color:#d4d4d4!important;background:0 0!important}button.apteva-composer-menu-btn:hover{background-color:#262626!important}.apteva-composer-send-btn{color:#d4d4d4!important;background-color:#262626!important;border-color:#404040!important}.apteva-composer-stop-btn{color:#f87171!important;background-color:#7f1d1d4d!important;border-color:#f87171!important}.apteva-composer-stop-btn:hover{background-color:#7f1d1d80!important}}.dark .apteva-composer{background-color:#171717!important;border-color:#404040!important}.dark .apteva-composer textarea{color:#fafafa!important}.dark .apteva-composer textarea::placeholder{color:#525252!important}.dark button.apteva-composer-menu-btn{color:#d4d4d4!important;background:0 0!important}.dark button.apteva-composer-menu-btn:hover{background-color:#262626!important}.dark .apteva-composer-send-btn{color:#d4d4d4!important;background-color:#262626!important;border-color:#404040!important}.dark .apteva-composer-stop-btn{color:#f87171!important;background-color:#7f1d1d4d!important;border-color:#f87171!important}.dark .apteva-composer-stop-btn:hover{background-color:#7f1d1d80!important}.apteva-file-preview{display:flex!important;flex-wrap:wrap!important;gap:.5rem!important;margin-bottom:.5rem!important}.apteva-file-item{all:unset!important;box-sizing:border-box!important;display:flex!important;position:relative!important;background-color:#f5f5f5!important;border:1px solid #e5e5e5!important;border-radius:.5rem!important;align-items: center!important;gap:.5rem!important;padding:.5rem .75rem!important;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important}.apteva-file-item:hover .apteva-file-remove{opacity:1!important}.apteva-file-thumb{object-fit:cover!important;border-radius:.25rem!important;flex-shrink:0!important;width:2rem!important;height:2rem!important}.apteva-file-icon{color:#737373!important;display:flex!important;background-color:#e5e5e5!important;border-radius:.25rem!important;flex-shrink:0!important;justify-content:center!important;align-items: center!important;width:2rem!important;height:2rem!important}.apteva-file-icon svg{width:1rem!important;height:1rem!important}.apteva-file-info{display:flex!important;flex-direction:column!important;min-width:0!important}.apteva-file-name{color:#404040!important;text-overflow:ellipsis!important;white-space:nowrap!important;overflow:hidden!important;max-width:120px!important;font-size:.75rem!important;font-weight:500!important}.apteva-file-size{color:#737373!important;font-size:.75rem!important}.apteva-file-remove{all:unset!important;box-sizing:border-box!important;color:#fff!important;opacity:0!important;cursor:pointer!important;display:flex!important;position:absolute!important;background-color:#737373!important;border-radius:50%!important;justify-content:center!important;align-items: center!important;width:1.25rem!important;height:1.25rem!important;transition:opacity .15s,background-color .15s!important;top:-.375rem!important;right:-.375rem!important}.apteva-file-remove:hover{background-color:#ef4444!important}.apteva-file-remove svg{width:.75rem!important;height:.75rem!important}.apteva-file-error{all:unset!important;box-sizing:border-box!important;z-index:20!important;position:absolute!important;background-color:#fef2f2!important;border:1px solid #fecaca!important;border-radius:.5rem!important;margin-bottom:.5rem!important;padding:.75rem!important;bottom:100%!important;left:1rem!important;right:1rem!important}.apteva-file-error-content{color:#b91c1c!important;display:flex!important;align-items: center!important;gap:.5rem!important;font-size:.875rem!important}.apteva-file-error-content svg{flex-shrink:0!important;width:1rem!important;height:1rem!important}@media (prefers-color-scheme:dark){.apteva-file-item{background-color:#262626!important;border-color:#404040!important}.apteva-file-icon{color:#a3a3a3!important;background-color:#404040!important}.apteva-file-name{color:#d4d4d4!important}.apteva-file-size{color:#a3a3a3!important}.apteva-file-error{background-color:#7f1d1d4d!important;border-color:#f87171!important}.apteva-file-error-content{color:#fca5a5!important}}.dark .apteva-file-item{background-color:#262626!important;border-color:#404040!important}.dark .apteva-file-icon{color:#a3a3a3!important;background-color:#404040!important}.dark .apteva-file-name{color:#d4d4d4!important}.dark .apteva-file-size{color:#a3a3a3!important}.dark .apteva-file-error{background-color:#7f1d1d4d!important;border-color:#f87171!important}.dark .apteva-file-error-content{color:#fca5a5!important}.apteva-file-badges{display:flex!important;flex-shrink:0!important;align-items: center!important;gap:.25rem!important}.apteva-file-badge{all:unset!important;box-sizing:border-box!important;display:flex!important;position:relative!important;overflow:hidden!important;background-color:#f5f5f5!important;border-radius:.25rem!important;justify-content:center!important;align-items: center!important;width:1.5rem!important;height:1.5rem!important}.apteva-file-badge:hover .apteva-file-badge-remove{opacity:1!important}.apteva-file-badge-img{object-fit:cover!important;width:1.5rem!important;height:1.5rem!important}.apteva-file-badge-icon{color:#737373!important;font-size:.75rem!important}.apteva-file-badge-icon svg{width:1rem!important;height:1rem!important}.apteva-file-badge-remove{all:unset!important;box-sizing:border-box!important;opacity:0!important;cursor:pointer!important;display:flex!important;position:absolute!important;background-color:#00000080!important;justify-content:center!important;align-items: center!important;transition:opacity .15s!important;inset:0!important}.apteva-file-badge-remove svg{color:#fff!important;width:.75rem!important;height:.75rem!important}@media (prefers-color-scheme:dark){.apteva-file-badge{background-color:#262626!important}.apteva-file-badge-icon{color:#a3a3a3!important}}.dark .apteva-file-badge{background-color:#262626!important}.dark .apteva-file-badge-icon{color:#a3a3a3!important}.apteva-composer-textarea{-ms-overflow-style:none!important;scrollbar-width:none!important}.apteva-composer-textarea::-webkit-scrollbar{display:none!important}.apteva-composer-mic-btn{all:unset!important;box-sizing:border-box!important;cursor:pointer!important;color:#737373!important;display:flex!important;background-color:#0000!important;border-radius:.5rem!important;flex-shrink:0!important;justify-content:center!important;align-items: center!important;width:2rem!important;height:2rem!important;transition:all .15s!important}.apteva-composer-mic-btn:hover{color:#3b82f6!important;background-color:#3b82f614!important}.apteva-composer-mic-btn:disabled{opacity:.3!important;cursor:not-allowed!important}.apteva-composer-mic-btn svg{width:16px!important;height:16px!important}.apteva-composer-rec-dot{display:flex!important;justify-content:center!important;align-items: center!important;width:2rem!important;height:2rem!important}.apteva-composer-rec-dot span{animation:1.2s ease-in-out infinite apteva-rec-pulse!important;display:block!important;background-color:#ef4444!important;border-radius:50%!important;width:10px!important;height:10px!important}@keyframes apteva-rec-pulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #ef444466}50%{opacity:.8;transform:scale(1.15);box-shadow:0 0 8px 3px #ef44444d}}.apteva-composer-waveform{display:flex!important;overflow:hidden!important;align-items: center!important;gap:.75rem!important;height:32px!important}.apteva-composer-waveform-canvas{display:block!important;flex:1!important;min-width:0!important;height:32px!important}.apteva-composer-recording-timer{font-variant-numeric:tabular-nums!important;color:#ef4444!important;text-align:right!important;flex-shrink:0!important;min-width:3rem!important;font-size:.8125rem!important;font-weight:500!important}.apteva-transcript-flash{z-index:20!important;animation:.3s ease-out apteva-flash-in!important;position:absolute!important;background-color:#eff6ff!important;border:1px solid #bfdbfe!important;border-radius:.75rem!important;margin-bottom:.5rem!important;padding:.625rem 1rem!important;bottom:100%!important;left:1rem!important;right:1rem!important}.apteva-transcript-flash span{color:#1d4ed8!important;font-size:.875rem!important;font-style:italic!important}@keyframes apteva-flash-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme:dark){.apteva-composer-mic-btn{color:#a3a3a3!important}.apteva-composer-mic-btn:hover{color:#60a5fa!important;background-color:#60a5fa1a!important}.apteva-transcript-flash{background-color:#3b82f626!important;border-color:#3b82f64d!important}.apteva-transcript-flash span{color:#93c5fd!important}}.dark .apteva-composer-mic-btn{color:#a3a3a3!important}.dark .apteva-composer-mic-btn:hover{color:#60a5fa!important;background-color:#60a5fa1a!important}.dark .apteva-transcript-flash{background-color:#3b82f626!important;border-color:#3b82f64d!important}.dark .apteva-transcript-flash span{color:#93c5fd!important}.apteva-chat-terminal .apteva-composer-mic-btn{color:#666!important}.apteva-chat-terminal .apteva-composer-mic-btn:hover{color:#f97316!important;background-color:#f973161a!important}.apteva-chat{background-color:#fff!important}.apteva-chat-header{background-color:#fff!important;border-color:#e5e5e5!important}.apteva-message-list{background-color:#f5f5f5!important}@media (prefers-color-scheme:dark){.apteva-chat{background-color:#0a0a0a!important}.apteva-chat-header{background-color:#171717!important;border-color:#262626!important}.apteva-message-list{background-color:#0a0a0a!important}}.dark .apteva-chat,.apteva-chat.dark{background-color:#0a0a0a!important}.dark .apteva-chat-header,.apteva-chat.dark .apteva-chat-header{background-color:#171717!important;border-color:#262626!important}.dark .apteva-message-list,.apteva-chat.dark .apteva-message-list,.apteva-force-dark.apteva-chat{background-color:#0a0a0a!important}.apteva-chat.apteva-force-dark .apteva-chat-header{background-color:#171717!important;border-color:#262626!important}.apteva-chat.apteva-force-dark .apteva-chat-title{color:#fff!important}.apteva-chat.apteva-force-dark .apteva-chat-status-ready,.apteva-chat.apteva-force-dark .apteva-chat-status-thinking{color:#525252!important}.apteva-chat.apteva-force-dark .apteva-chat-status-tool{color:#60a5fa!important}.apteva-chat.apteva-force-dark .apteva-message-list{background-color:#0a0a0a!important}.apteva-chat.apteva-force-dark .apteva-message-assistant{color:#fafafa!important;background-color:#262626!important}.apteva-chat.apteva-force-dark .apteva-message-timestamp-assistant{color:#525252!important}.apteva-chat.apteva-force-dark .apteva-composer{background-color:#171717!important;border-color:#404040!important}.apteva-chat.apteva-force-dark .apteva-composer textarea{color:#fafafa!important}.apteva-chat.apteva-force-dark .apteva-composer textarea::placeholder{color:#525252!important}.apteva-chat.apteva-force-dark .apteva-composer-send-btn{color:#d4d4d4!important;background-color:#262626!important;border-color:#404040!important}.apteva-chat.apteva-force-dark .apteva-composer-stop-btn{color:#f87171!important;background-color:#7f1d1d4d!important;border-color:#f87171!important}.apteva-chat.apteva-force-dark button.apteva-composer-menu-btn{background:0 0!important}.apteva-chat.apteva-force-dark .apteva-composer-mic-btn{color:#a3a3a3!important}.apteva-chat.apteva-force-dark .apteva-composer-mic-btn:hover{color:#60a5fa!important;background-color:#60a5fa1a!important}.apteva-chat.apteva-force-dark .apteva-file-item{background-color:#262626!important;border-color:#404040!important}.apteva-chat.apteva-force-dark .apteva-file-icon{color:#a3a3a3!important;background-color:#404040!important}.apteva-chat.apteva-force-dark .apteva-file-name{color:#d4d4d4!important}.apteva-chat.apteva-force-dark .apteva-file-size{color:#a3a3a3!important}.apteva-chat.apteva-force-dark .apteva-transcript-flash{background-color:#3b82f626!important;border-color:#3b82f64d!important}.apteva-chat.apteva-force-dark .apteva-transcript-flash span{color:#93c5fd!important}.apteva-chat.apteva-force-dark .apteva-widget,.apteva-widget.apteva-force-dark{--aw-bg:#171717;--aw-bg-subtle:#1a1a1a;--aw-bg-muted:#262626;--aw-bg-input:#262626;--aw-border:#333;--aw-border-focus:#3b82f6;--aw-text:#fafafa;--aw-text-heading:#fff;--aw-text-body:#a3a3a3;--aw-text-muted:#737373;--aw-text-placeholder:#525252;--aw-primary:#3b82f6;--aw-primary-hover:#60a5fa;--aw-hover-bg:#262626;--aw-danger:#f87171}.apteva-chat.apteva-force-dark .apteva-tool-card-running{color:#60a5fa!important;background-color:#3b82f61a!important;border-color:#3b82f64d!important}.apteva-chat.apteva-force-dark .apteva-tool-card-completed{color:#4ade80!important;background-color:#22c55e1a!important;border-color:#22c55e4d!important}.apteva-chat.apteva-force-dark .apteva-tool-card-error{color:#f87171!important;background-color:#ef44441a!important;border-color:#ef44444d!important}.apteva-chat.apteva-force-dark .apteva-tool-card-preparing{color:#fbbf24!important;background-color:#fbbf2426!important;border-color:#fbbf2466!important}.apteva-chat.apteva-force-dark .apteva-tool-inline-line{background-color:#404040!important}.apteva-chat.apteva-force-dark .apteva-tool-inline-icon{color:#a78bfa!important}.apteva-chat.apteva-force-dark .apteva-tool-inline-text{color:#6b7280!important}.apteva-chat.apteva-force-dark .apteva-file-badge{background-color:#262626!important}.apteva-chat.apteva-force-dark .apteva-file-badge-icon,.apteva-chat.apteva-force-dark .apteva-welcome-empty{color:#a3a3a3!important}.apteva-chat.apteva-force-dark .apteva-welcome-icon{color:#525252!important}.apteva-chat.apteva-force-dark .apteva-welcome-title{color:#fff!important}.apteva-chat.apteva-force-dark .apteva-welcome-subtitle{color:#a3a3a3!important}.apteva-chat.apteva-force-dark .apteva-prompt-card{background-color:#262626!important;border-color:#404040!important}.apteva-chat.apteva-force-dark .apteva-prompt-card:hover{background-color:#1f1f1f!important;border-color:#3b82f6!important}.apteva-chat.apteva-force-dark .apteva-prompt-text{color:#fff!important}.apteva-chat.apteva-force-dark .apteva-prompt-desc{color:#a3a3a3!important}.apteva-chat.apteva-force-dark .apteva-prompt-icon-box{color:#a3a3a3!important;background-color:#404040!important}.apteva-chat.apteva-force-dark .group:hover .apteva-prompt-icon-box{color:#60a5fa!important;background-color:#3b82f626!important}.apteva-force-light.apteva-chat{background-color:#fff!important}.apteva-chat.apteva-force-light .apteva-chat-header{background-color:#fff!important;border-color:#e5e5e5!important}.apteva-chat.apteva-force-light .apteva-chat-title{color:#111827!important}.apteva-chat.apteva-force-light .apteva-chat-status-ready,.apteva-chat.apteva-force-light .apteva-chat-status-thinking{color:#737373!important}.apteva-chat.apteva-force-light .apteva-chat-status-tool{color:#3b82f6!important}.apteva-chat.apteva-force-light .apteva-message-list{background-color:#fff!important}.apteva-chat.apteva-force-light .apteva-message-user{color:#fff!important;background-color:#2563eb!important}.apteva-chat.apteva-force-light .apteva-message-assistant{color:#0a0a0a!important;background-color:#fff!important;border:1px solid #e5e7eb!important}.apteva-chat.apteva-force-light .apteva-message-timestamp-user{color:#bfdbfe!important}.apteva-chat.apteva-force-light .apteva-message-timestamp-assistant{color:#737373!important}.apteva-chat.apteva-force-light .apteva-composer{background-color:#fff!important;border-color:#d4d4d4!important}.apteva-chat.apteva-force-light .apteva-composer textarea{color:#171717!important}.apteva-chat.apteva-force-light .apteva-composer textarea::placeholder{color:#a3a3a3!important}.apteva-chat.apteva-force-light .apteva-composer-send-btn{color:#404040!important;background-color:#fff!important;border-color:#d4d4d4!important}.apteva-chat.apteva-force-light .apteva-composer-stop-btn{color:#dc2626!important;background-color:#fef2f2!important;border-color:#f87171!important}.apteva-chat.apteva-force-light button.apteva-composer-menu-btn{color:#404040!important;background:0 0!important}.apteva-chat.apteva-force-light button.apteva-composer-menu-btn:hover{background-color:#f5f5f5!important}.apteva-chat.apteva-force-light .apteva-composer-menu{background-color:#fff!important;border:1px solid #e5e5e5!important}.apteva-chat.apteva-force-light .apteva-composer-menu-item{color:#171717!important}.apteva-chat.apteva-force-light .apteva-composer-menu-item:hover{background-color:#f5f5f5!important}.apteva-chat.apteva-force-light .apteva-composer-menu-item-border{border-top-color:#e5e5e5!important}.apteva-chat.apteva-force-light .apteva-composer-mic-btn{color:#737373!important}.apteva-chat.apteva-force-light .apteva-composer-mic-btn:hover{color:#3b82f6!important;background-color:#3b82f614!important}.apteva-chat.apteva-force-light .apteva-file-item{background-color:#f5f5f5!important;border-color:#e5e5e5!important}.apteva-chat.apteva-force-light .apteva-file-icon{color:#737373!important;background-color:#e5e5e5!important}.apteva-chat.apteva-force-light .apteva-file-name{color:#404040!important}.apteva-chat.apteva-force-light .apteva-file-size{color:#737373!important}.apteva-chat.apteva-force-light .apteva-transcript-flash{background-color:#eff6ff!important;border-color:#bfdbfe!important}.apteva-chat.apteva-force-light .apteva-transcript-flash span{color:#1d4ed8!important}.apteva-chat.apteva-force-light .apteva-widget,.apteva-widget.apteva-force-light{--aw-bg:#fff;--aw-bg-subtle:#fafafa;--aw-bg-muted:#f5f5f5;--aw-bg-input:#fafafa;--aw-border:#e5e5e5;--aw-border-focus:#3b82f6;--aw-text:#171717;--aw-text-heading:#171717;--aw-text-body:#525252;--aw-text-muted:#737373;--aw-text-placeholder:#a3a3a3;--aw-primary:#3b82f6;--aw-primary-hover:#2563eb;--aw-hover-bg:#fafafa;--aw-danger:#ef4444}.apteva-chat.apteva-force-light .apteva-tool-card-running{color:#1d4ed8!important;background-color:#eff6ff!important;border-color:#bfdbfe!important}.apteva-chat.apteva-force-light .apteva-tool-card-completed{color:#15803d!important;background-color:#f0fdf4!important;border-color:#bbf7d0!important}.apteva-chat.apteva-force-light .apteva-tool-card-error{color:#b91c1c!important;background-color:#fef2f2!important;border-color:#fecaca!important}.apteva-chat.apteva-force-light .apteva-tool-card-preparing{color:#92400e!important;background-color:#fef3c7!important;border-color:#fcd34d!important}.apteva-chat.apteva-force-light .apteva-tool-inline-line{background-color:#d4d4d4!important}.apteva-chat.apteva-force-light .apteva-tool-inline-icon{color:#7c3aed!important}.apteva-chat.apteva-force-light .apteva-tool-inline-text{color:#9ca3af!important}.apteva-chat.apteva-force-light .apteva-file-badge{background-color:#f5f5f5!important}.apteva-chat.apteva-force-light .apteva-file-badge-icon,.apteva-chat.apteva-force-light .apteva-welcome-empty{color:#737373!important}.apteva-chat.apteva-force-light .apteva-welcome-icon{color:#a3a3a3!important}.apteva-chat.apteva-force-light .apteva-welcome-title{color:#111827!important}.apteva-chat.apteva-force-light .apteva-welcome-subtitle{color:#737373!important}.apteva-chat.apteva-force-light .apteva-prompt-card{background-color:#fff!important;border-color:#e5e5e5!important}.apteva-chat.apteva-force-light .apteva-prompt-card:hover{background-color:#fafafa!important;border-color:#93c5fd!important}.apteva-chat.apteva-force-light .apteva-prompt-text{color:#111827!important}.apteva-chat.apteva-force-light .apteva-prompt-desc{color:#737373!important}.apteva-chat.apteva-force-light .apteva-prompt-icon-box{color:#737373!important;background-color:#f5f5f5!important}.apteva-chat.apteva-force-light .group:hover .apteva-prompt-icon-box{color:#2563eb!important;background-color:#dbeafe!important}@keyframes apteva-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes apteva-highlight-fade{0%{background-color:#3b82f626}to{background-color:#0000}}.apteva-list-item-new,.apteva-table-row-new{animation:.3s ease-out apteva-slide-in,.5s ease-out .3s apteva-highlight-fade!important}.apteva-table-row-new td{background-color:#3b82f61a!important}.apteva-list-streaming,.apteva-table-streaming{border-top:1px dashed #8080804d!important}@media (prefers-color-scheme:dark){.apteva-list-item-new,.apteva-table-row-new{animation:.3s ease-out apteva-slide-in,.5s ease-out .3s apteva-highlight-fade-dark!important}.apteva-table-row-new td{background-color:#3b82f626!important}}.dark .apteva-list-item-new,.dark .apteva-table-row-new{animation:.3s ease-out apteva-slide-in,.5s ease-out .3s apteva-highlight-fade-dark!important}.dark .apteva-table-row-new td{background-color:#3b82f626!important}@keyframes apteva-highlight-fade-dark{0%{background-color:#3b82f633}to{background-color:#0000}}.apteva-chat-minimal{background-color:#0000!important}.apteva-chat-minimal .apteva-chat-header{background-color:#0000!important;border:none!important}.apteva-chat-minimal .apteva-message-list{background-color:#0000!important}.apteva-chat-minimal .apteva-composer{background-color:#0000!important;border:1px solid #80808033!important}.apteva-chat-minimal .apteva-message-assistant{background-color:#80808014!important}.apteva-chat-minimal .apteva-message-user{color:inherit!important;background-color:#3b82f626!important}.apteva-chat-terminal{background-color:#0a0a0a!important;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace!important}.apteva-chat-terminal *{font-family:inherit!important}.apteva-chat-terminal .apteva-chat-header,.apteva-chat-terminal.apteva-force-dark .apteva-chat-header{background-color:#0a0a0a!important;border-color:#1a1a1a!important}.apteva-chat-terminal .apteva-chat-title,.apteva-chat-terminal.apteva-force-dark .apteva-chat-title{color:#e0e0e0!important;font-size:.875rem!important}.apteva-chat-terminal .apteva-chat-status,.apteva-chat-terminal.apteva-force-dark .apteva-chat-status{color:#666!important}.apteva-chat-terminal .apteva-chat-status-tool,.apteva-chat-terminal.apteva-force-dark .apteva-chat-status-tool{color:#f97316!important}.apteva-chat-terminal .apteva-message-list,.apteva-chat-terminal.apteva-force-dark .apteva-message-list{background-color:#0a0a0a!important}.apteva-chat-terminal .apteva-message-user,.apteva-chat-terminal.apteva-force-dark .apteva-message-user{color:#e0e0e0!important;background-color:#1a1a1a!important;border-radius:4px!important}.apteva-chat-terminal .apteva-message-assistant,.apteva-chat-terminal.apteva-force-dark .apteva-message-assistant{color:#e0e0e0!important;background-color:#111!important;border:1px solid #1a1a1a!important;border-radius:4px!important}.apteva-chat-terminal .apteva-message-timestamp,.apteva-chat-terminal.apteva-force-dark .apteva-message-timestamp-assistant{color:#444!important}.apteva-chat-terminal .apteva-message-timestamp-user{color:#666!important}.apteva-chat-terminal .apteva-composer,.apteva-chat-terminal.apteva-force-dark .apteva-composer{background-color:#111!important;border:1px solid #1a1a1a!important;border-radius:4px!important}.apteva-chat-terminal .apteva-composer textarea,.apteva-chat-terminal.apteva-force-dark .apteva-composer textarea{color:#e0e0e0!important}.apteva-chat-terminal .apteva-composer textarea::placeholder,.apteva-chat-terminal.apteva-force-dark .apteva-composer textarea::placeholder{color:#666!important}.apteva-chat-terminal .apteva-composer-send-btn,.apteva-chat-terminal.apteva-force-dark .apteva-composer-send-btn{color:#888!important;background-color:#1a1a1a!important;border-color:#333!important}.apteva-chat-terminal .apteva-composer-send-btn:hover{color:#f97316!important;border-color:#f97316!important}.apteva-chat-terminal .apteva-composer-stop-btn{color:#f97316!important;background-color:#f9731626!important;border-color:#f97316!important}.apteva-chat-terminal .apteva-composer-menu-btn{color:#666!important}.apteva-chat-terminal .apteva-composer-menu-btn:hover{color:#f97316!important;background-color:#1a1a1a!important}.apteva-chat-terminal .apteva-tool-card,.apteva-chat-terminal .apteva-tool-group{border-radius:4px!important}.apteva-chat-terminal .apteva-tool-card-running{color:#f97316!important;background-color:#f973161a!important;border-color:#f973164d!important}.apteva-chat-terminal .apteva-tool-card-completed{color:#4ade80!important;background-color:#22c55e1a!important;border-color:#22c55e4d!important}.apteva-chat-terminal .apteva-tool-card-preparing,.apteva-chat-terminal .apteva-tool-group-running{color:#f97316!important;background-color:#f973161a!important;border-color:#f973164d!important}.apteva-chat-terminal .apteva-tool-group-completed{color:#4ade80!important;background-color:#22c55e1a!important;border-color:#22c55e4d!important}.apteva-chat-terminal .apteva-tool-group-error{color:#f87171!important;background-color:#ef44441a!important;border-color:#ef44444d!important}.apteva-chat-terminal .apteva-tool-group-list{border-top-color:#ffffff1a!important}.apteva-chat-terminal .apteva-tool-group-item-done{color:#4ade80!important}.apteva-chat-terminal .apteva-tool-group-item-error{color:#f87171!important}.apteva-chat-terminal .apteva-md-link{color:#f97316!important}.apteva-chat-terminal .apteva-md-link:hover{color:#fb923c!important}.apteva-chat-terminal .apteva-md-inline-code{color:#3b82f6!important;background-color:#1a1a1a!important}@keyframes voicePulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.15;transform:scale(1.4)}}.apteva-voice-overlay{display:flex;align-items: center;gap:.75rem;padding:.5rem 0}.apteva-voice-indicator{display:flex;position:relative;flex-shrink:0;justify-content:center;align-items: center;width:2rem;height:2rem}.apteva-voice-pulse{background-color:#ef4444;border-radius:50%;width:1rem;height:1rem}.apteva-voice-pulse-active{animation:1.5s ease-in-out infinite voicePulse;box-shadow:0 0 0 4px #ef444433}.apteva-voice-transcript-area{flex:1;min-width:0;font-size:.875rem;line-height:1.5}.apteva-voice-partial{color:inherit;opacity:.9}.apteva-voice-connecting{color:inherit;opacity:.5;font-style:italic}.apteva-voice-listening{color:inherit;opacity:.5}.apteva-voice-controls{display:flex;flex-shrink:0;align-items: center;gap:.5rem}.apteva-voice-duration{font-variant-numeric:tabular-nums;opacity:.5;font-size:.75rem}.apteva-voice-stop-btn{color:#fff;cursor:pointer;display:flex;background-color:#ef4444;border:none;border-radius:.5rem;justify-content:center;align-items: center;width:2rem;height:2rem;transition:background-color .15s}.apteva-voice-stop-btn:hover{background-color:#dc2626}.apteva-composer-voice-btn{cursor:pointer;display:flex;border:none;justify-content:center;align-items: center;transition:all .15s}.apteva-chat-status-voice{color:#ef4444!important}.apteva-force-light .apteva-voice-partial{color:#1f2937}.apteva-force-light .apteva-voice-connecting,.apteva-force-light .apteva-voice-listening{color:#6b7280}.apteva-force-light .apteva-voice-duration{color:#9ca3af}.apteva-force-light .apteva-composer-voice-btn{color:#6b7280}.apteva-force-light .apteva-composer-voice-btn:hover{color:#ef4444;background-color:#ef44441a}.apteva-force-dark .apteva-voice-partial{color:#e5e7eb}.apteva-force-dark .apteva-voice-connecting,.apteva-force-dark .apteva-voice-listening{color:#9ca3af}.apteva-force-dark .apteva-voice-duration{color:#6b7280}.apteva-force-dark .apteva-composer-voice-btn{color:#9ca3af}.apteva-force-dark .apteva-composer-voice-btn:hover{color:#ef4444;background-color:#ef444426}.apteva-chat-terminal .apteva-voice-partial{color:#e5e7eb}.apteva-chat-terminal .apteva-voice-connecting,.apteva-chat-terminal .apteva-voice-listening{color:#6b7280}.apteva-chat-terminal .apteva-voice-duration{color:#525252}.apteva-chat-terminal .apteva-composer-voice-btn{color:#737373}.apteva-chat-terminal .apteva-composer-voice-btn:hover{color:#ef4444;background-color:#ef44441a}.apteva-chat-terminal .apteva-voice-pulse{background-color:#f97316}.apteva-chat-terminal .apteva-voice-pulse-active{box-shadow:0 0 0 4px #f9731633}.apteva-chat-terminal .apteva-voice-stop-btn{background-color:#f97316}.apteva-chat-terminal .apteva-voice-stop-btn:hover{background-color:#ea580c}.apteva-chat-terminal .apteva-chat-status-voice{color:#f97316!important}@keyframes callPulseRing{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}.apteva-call{display:flex!important;position:relative!important;overflow:hidden!important;background-color:#fff!important;border:1px solid #e5e5e5!important;border-radius:1rem!important;flex-direction:column!important;justify-content:center!important;align-items: center!important;min-height:400px!important;padding:2rem!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.apteva-call-agent{display:flex!important;flex-direction:column!important;align-items: center!important;gap:.5rem!important;margin-bottom:1rem!important}.apteva-call-avatar-wrap{display:flex!important;position:relative!important;justify-content:center!important;align-items: center!important}.apteva-call-avatar{object-fit:cover!important;border-radius:50%!important;width:5rem!important;height:5rem!important}.apteva-call-avatar-placeholder{color:#6b7280!important;display:flex!important;background-color:#e5e7eb!important;border-radius:50%!important;justify-content:center!important;align-items: center!important;width:5rem!important;height:5rem!important;font-size:1.5rem!important;font-weight:600!important}.apteva-call-pulse-ring{pointer-events:none!important;animation:2s ease-out infinite callPulseRing!important;position:absolute!important;border:2px solid #22c55e!important;border-radius:50%!important;inset:0!important}.apteva-call-agent-name{color:#111827!important;font-size:1.25rem!important;font-weight:600!important}.apteva-call-status{color:#6b7280!important;font-size:.8125rem!important}.apteva-call-status-active{color:#22c55e!important}.apteva-call-status-connecting{color:#f59e0b!important}.apteva-call-status-error{color:#ef4444!important}.apteva-call-duration{font-variant-numeric:tabular-nums!important;color:#111827!important;margin-top:.25rem!important;font-size:2rem!important;font-weight:300!important}.apteva-call-transcript{overflow-y:auto!important;width:100%!important;max-height:180px!important;margin:1rem 0!important;padding:0 .5rem!important}.apteva-call-transcript-entry{display:flex!important;gap:.5rem!important;padding:.25rem 0!important;font-size:.8125rem!important;line-height:1.5!important}.apteva-call-transcript-role{flex-shrink:0!important;font-weight:600!important}.apteva-call-transcript-role-user{color:#3b82f6!important}.apteva-call-transcript-role-assistant{color:#8b5cf6!important}.apteva-call-transcript-role-system{color:#6b7280!important;font-style:italic!important}.apteva-call-transcript-content{color:#374151!important}.apteva-call-transcript-partial{color:#9ca3af!important;font-style:italic!important}.apteva-call-controls{display:flex!important;align-items: center!important;gap:1rem!important;margin-top:auto!important;padding-top:1rem!important}.apteva-call-btn{cursor:pointer!important;display:flex!important;border:none!important;border-radius:50%!important;justify-content:center!important;align-items: center!important;width:3.5rem!important;height:3.5rem!important;transition:all .15s!important}.apteva-call-btn:disabled{opacity:.4!important;cursor:not-allowed!important}.apteva-call-btn-mute{color:#fff!important;background-color:#374151!important}.apteva-call-btn-mute:hover{background-color:#4b5563!important}.apteva-call-btn-mute-active{background-color:#ef4444!important}.apteva-call-btn-mute-active:hover{background-color:#dc2626!important}.apteva-call-btn-end{color:#fff!important;background-color:#ef4444!important;width:4rem!important;height:4rem!important}.apteva-call-btn-end:hover{background-color:#dc2626!important}.apteva-call-btn-start{color:#fff!important;background-color:#22c55e!important;width:4rem!important;height:4rem!important}.apteva-call-btn-start:hover{background-color:#16a34a!important}.apteva-call-video-area{aspect-ratio:16/9!important;color:#4b5563!important;display:flex!important;background-color:#111827!important;border-radius:.75rem!important;justify-content:center!important;align-items: center!important;width:100%!important;margin-bottom:1rem!important}.apteva-call-compact{flex-flow:wrap!important;justify-content:space-between!important;gap:1rem!important;min-height:auto!important;padding:1.25rem!important}.apteva-call-compact .apteva-call-agent{flex-direction:row!important;margin-bottom:0!important}.apteva-call-compact .apteva-call-avatar,.apteva-call-compact .apteva-call-avatar-placeholder{width:2.5rem!important;height:2.5rem!important;font-size:1rem!important}.apteva-call-compact .apteva-call-duration{margin-top:0!important;font-size:1.25rem!important}.apteva-call-compact .apteva-call-transcript{width:100%!important;max-height:100px!important}.apteva-call-compact .apteva-call-controls{margin-top:0!important;padding-top:0!important}.apteva-call-compact .apteva-call-btn{width:2.5rem!important;height:2.5rem!important}.apteva-call-compact .apteva-call-btn-end,.apteva-call-compact .apteva-call-btn-start{width:3rem!important;height:3rem!important}.apteva-call-fullscreen{z-index:50!important;position:fixed!important;border:none!important;border-radius:0!important;min-height:100vh!important;inset:0!important}@media (prefers-color-scheme:dark){.apteva-call{background-color:#0a0a0a!important;border-color:#262626!important}.apteva-call-avatar-placeholder{color:#a3a3a3!important;background-color:#262626!important}.apteva-call-agent-name{color:#fff!important}.apteva-call-status{color:#737373!important}.apteva-call-duration{color:#fff!important}.apteva-call-transcript-content{color:#d4d4d4!important}.apteva-call-transcript-partial{color:#525252!important}}.apteva-force-dark .apteva-call,.dark .apteva-call{background-color:#0a0a0a!important;border-color:#262626!important}.apteva-force-dark .apteva-call-avatar-placeholder,.dark .apteva-call-avatar-placeholder{color:#a3a3a3!important;background-color:#262626!important}.apteva-force-dark .apteva-call-agent-name,.dark .apteva-call-agent-name{color:#fff!important}.apteva-force-dark .apteva-call-status,.dark .apteva-call-status{color:#737373!important}.apteva-force-dark .apteva-call-duration,.dark .apteva-call-duration{color:#fff!important}.apteva-force-dark .apteva-call-transcript-content,.dark .apteva-call-transcript-content{color:#d4d4d4!important}.apteva-force-dark .apteva-call-transcript-partial,.dark .apteva-call-transcript-partial{color:#525252!important}.apteva-force-light .apteva-call{background-color:#fff!important;border-color:#e5e5e5!important}}
|
package/dist/McpPage.3cwh0gnd.js
DELETED