@dudousxd/nestjs-agent-dashboard 0.13.1 → 0.14.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 +29 -4
- package/dist/client/agent-client.d.ts +111 -1
- package/dist/client/agent-client.d.ts.map +1 -1
- package/dist/client/agent-client.js +27 -1
- package/dist/client/agent-client.js.map +1 -1
- package/dist/client/describe-error.d.ts +30 -0
- package/dist/client/describe-error.d.ts.map +1 -0
- package/dist/client/describe-error.js +63 -0
- package/dist/client/describe-error.js.map +1 -0
- package/dist/client/format-day.d.ts +19 -0
- package/dist/client/format-day.d.ts.map +1 -0
- package/dist/client/format-day.js +38 -0
- package/dist/client/format-day.js.map +1 -0
- package/dist/client/trend-summary.d.ts +33 -0
- package/dist/client/trend-summary.d.ts.map +1 -0
- package/dist/client/trend-summary.js +33 -0
- package/dist/client/trend-summary.js.map +1 -0
- package/dist/server/index.cjs +170 -2
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +62 -4
- package/dist/server/index.d.ts +62 -4
- package/dist/server/index.js +181 -13
- package/dist/server/index.js.map +1 -1
- package/dist/spa/assets/base-ui-CKhU3I2F.js +55 -0
- package/dist/spa/assets/index-CO6XH1b7.css +1 -0
- package/dist/spa/assets/index-Cvgm9m_c.js +1 -0
- package/dist/spa/assets/index-Dr3vAOUw.js +25 -0
- package/dist/spa/assets/preview-BdD_YKne.js +1 -0
- package/dist/spa/assets/recharts-CPMXF7sD.js +69 -0
- package/dist/spa/index.html +5 -3
- package/dist/spa/preview.html +5 -3
- package/package.json +9 -3
- package/dist/client/run-trend-path.d.ts +0 -30
- package/dist/client/run-trend-path.d.ts.map +0 -1
- package/dist/client/run-trend-path.js +0 -36
- package/dist/client/run-trend-path.js.map +0 -1
- package/dist/client/trend-path.d.ts +0 -27
- package/dist/client/trend-path.d.ts.map +0 -1
- package/dist/client/trend-path.js +0 -25
- package/dist/client/trend-path.js.map +0 -1
- package/dist/spa/assets/index-C42SW8IV.js +0 -1
- package/dist/spa/assets/index-DMBWMAsE.css +0 -1
- package/dist/spa/assets/index-DZVPxvtJ.js +0 -49
- package/dist/spa/assets/preview-DhDnTjWH.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{v as w,m as x,L as D,d as O,M as y,A as R,c,b as v,a as A,e as N,P as M,r as j,S as u,w as _,C as P,B as h,D as E,R as k,T as L}from"./index-Dr3vAOUw.js";import{j as e,r as T}from"./base-ui-CKhU3I2F.js";import"./recharts-CPMXF7sD.js";const U=[{modelId:"gpt-4o",requests:4200,inputTokens:84e5,outputTokens:21e5,costUsd:84.2},{modelId:"claude-3-5-sonnet",requests:2600,inputTokens:52e5,outputTokens:13e5,costUsd:41.6},{modelId:"gpt-4o-mini",requests:9800,inputTokens:12e6,outputTokens:3e6,costUsd:9.4},{modelId:"llama-3-70b",requests:1200,inputTokens:21e5,outputTokens:64e4,costUsd:0}],K=[{actorRef:"tenant:acme",requests:8200,totalTokens:184e5,costUsd:78.1,actorLabel:"Acme Corp"},{actorRef:"user:davi@goflip.ai",requests:3100,totalTokens:69e5,costUsd:34.2,actorLabel:"Davi de Carvalho"},{actorRef:"tenant:globex",requests:4400,totalTokens:92e5,costUsd:21.8,actorLabel:null},{actorRef:"user:ops-bot",requests:2100,totalTokens:394e4,costUsd:1.1,actorLabel:null}],q={"tenant:acme":2e7,"user:davi@goflip.ai":5e6,"tenant:globex":12e6};function H(){const a=[];for(let t=29;t>=0;t-=1){const s=new Date(Date.now()-t*864e5).toISOString().slice(0,10),r=Math.sin(t/3)*.5+1;a.push({day:s,totalTokens:Math.round(7e5*r+t*4e3),costUsd:Number((4.2*r+t*.05).toFixed(2))})}return a}function B(){const a=[];for(let t=29;t>=0;t-=1){const s=new Date(Date.now()-t*864e5).toISOString().slice(0,10),r=Math.sin(t/3)*.5+1,i=Math.round(18*r+t*.3);a.push({day:s,runs:i,failed:Math.max(0,Math.round(i*.06))})}return a}const l={byModel:U,byActor:K,trend:H()},z={metrics:{runs:482,completed:461,failed:21,successRate:461/482,retries:34,durationP50Ms:640,durationP95Ms:2400},byAgent:[{agentName:"analyst",runs:210,failed:8,retries:14},{agentName:"billing-agent",runs:150,failed:9,retries:12},{agentName:"(default)",runs:122,failed:4,retries:8}],errors:[{errorCode:"TIMEOUT",count:9},{errorCode:"TOOL_ERROR",count:6},{errorCode:"RATE_LIMIT",count:4},{errorCode:"UNKNOWN",count:2}],trend:B()},b={runId:"r-7c31",threadId:"th2",actorRef:"user:ops-bot",agentName:"billing-agent",status:"failed",durationMs:4200,errorCode:"TIMEOUT",errorMessage:"upstream model request timed out after 3 attempts",retries:2,startedAt:new Date(Date.now()-21e4).toISOString(),promptHash:"ffeeddccbbaa99887766554433221100ffeeddccbbaa99887766554433221"},S=[{runId:"r-9f2a",threadId:"th1",actorRef:"tenant:acme",agentName:"analyst",status:"completed",durationMs:820,errorCode:null,errorMessage:null,retries:0,startedAt:new Date(Date.now()-4e4).toISOString(),promptHash:"a1b2c3d4e5f60718293a4b5c6d7e8f9012345678901234567890abcdef01234"},b,{runId:"r-a114",threadId:"th3",actorRef:"user:davi@goflip.ai",agentName:null,status:"completed",durationMs:1150,errorCode:null,errorMessage:null,retries:1,startedAt:new Date(Date.now()-54e4).toISOString(),promptHash:null},{runId:"r-b902",threadId:"th1",actorRef:"tenant:acme",agentName:"analyst",status:"failed",durationMs:980,errorCode:"TOOL_ERROR",errorMessage:"search_records returned a 500",retries:0,startedAt:new Date(Date.now()-132e4).toISOString(),promptHash:"a1b2c3d4e5f60718293a4b5c6d7e8f9012345678901234567890abcdef01234"},{runId:"r-c447",threadId:"th2",actorRef:"user:ops-bot",agentName:"billing-agent",status:"running",durationMs:null,errorCode:null,errorMessage:null,retries:0,startedAt:new Date(Date.now()-8e3).toISOString(),promptHash:"ffeeddccbbaa99887766554433221100ffeeddccbbaa99887766554433221"}],G=[{toolCallId:"tc-approve-1",runId:"r-c447",toolName:"delete_asset",input:{assetId:"asset-42",reason:"stale"},threadId:"th2",threadTitle:"Incident triage",actorRef:"user:ops-bot",agentName:"billing-agent",requestedAt:new Date(Date.now()-3e5).toISOString()},{toolCallId:"tc-approve-2",runId:"r-9f2a",toolName:"send_email",input:{to:"finance@acme.example",subject:"Q3 invoice adjustment"},threadId:"th1",threadTitle:"Q3 procurement review",actorRef:"tenant:acme",agentName:"analyst",requestedAt:new Date(Date.now()-9e5).toISOString()}],W=[{toolName:"search_records",toolType:"read",calls:420,failed:6,rejected:0,p50ExecutionMs:42,p95ExecutionMs:180},{toolName:"delete_asset",toolType:"action",calls:34,failed:1,rejected:4,p50ExecutionMs:310,p95ExecutionMs:620},{toolName:"send_email",toolType:"action",calls:58,failed:2,rejected:2,p50ExecutionMs:96,p95ExecutionMs:410},{toolName:"fetch_pricing",toolType:"read",calls:210,failed:0,rejected:0,p50ExecutionMs:88,p95ExecutionMs:95}],F=q,d=[{toolCallId:"tc1",runId:"r-9f2a",toolName:"search_records",toolType:"read",status:"ok",threadId:"th1",createdAt:new Date(Date.now()-12e3).toISOString()},{toolCallId:"tc2",runId:"r-7c31",toolName:"delete_asset",toolType:"action",status:"forbidden",threadId:"th2",createdAt:new Date(Date.now()-9e4).toISOString()},{toolCallId:"tc3",runId:"r-9f2a",toolName:"fetch_pricing",toolType:"read",status:"ok",threadId:"th1",createdAt:new Date(Date.now()-24e4).toISOString()},{toolCallId:"tc4",runId:"r-a114",toolName:"send_email",toolType:"action",status:"failed",threadId:"th3",createdAt:new Date(Date.now()-62e4).toISOString()},{toolCallId:"tc5",runId:null,toolName:"summarize_thread",toolType:"read",status:"ok",threadId:"th2",createdAt:new Date(Date.now()-12e5).toISOString()}],C={threadId:"th2",title:"Incident triage",actorRef:"user:ops-bot",messageCount:11,totalTokens:62e3,lastActivityAt:new Date(Date.now()-4e5).toISOString(),actorLabel:null},Q=[{threadId:"th1",title:"Q3 procurement review",actorRef:"tenant:acme",messageCount:24,totalTokens:184e3,lastActivityAt:new Date(Date.now()-3e4).toISOString(),actorLabel:"Acme Corp"},C,{threadId:"th3",title:"Contract summary",actorRef:"user:davi@goflip.ai",messageCount:6,totalTokens:28400,lastActivityAt:new Date(Date.now()-18e5).toISOString(),actorLabel:"Davi de Carvalho"}],V=[{threadId:"th1",title:"Q3 procurement review",actorRef:"tenant:acme",requests:24,totalTokens:184e3,costUsd:18.4,actorLabel:"Acme Corp"},{threadId:"th2",title:"Incident triage",actorRef:"user:ops-bot",requests:11,totalTokens:62e3,costUsd:6.2,actorLabel:null},{threadId:"th3",title:"Contract summary",actorRef:"user:davi@goflip.ai",requests:6,totalTokens:28400,costUsd:2.8,actorLabel:"Davi de Carvalho"}],g={rows:d,total:137,page:1,pageSize:25},p={rows:Q,total:46,page:1,pageSize:25},Y={rows:S,total:482,page:1,pageSize:25},J={rows:G,total:7,page:1,pageSize:25},m={run:b,thread:{threadId:"th2",title:"Incident triage",actorRef:"user:ops-bot",deleted:!1,actorLabel:null},toolCalls:[{toolCallId:"tc2",toolName:"delete_asset",toolType:"action",status:"forbidden",executionMs:null,executedByRef:"user:davi@goflip.ai",error:null,createdAt:new Date(Date.now()-215e3).toISOString()},{toolCallId:"tc9",toolName:"fetch_pricing",toolType:"read",status:"ok",executionMs:96,executedByRef:null,error:null,createdAt:new Date(Date.now()-213e3).toISOString()},{toolCallId:"tc10",toolName:"search_records",toolType:"read",status:"failed",executionMs:3980,executedByRef:null,error:"upstream returned 500 after 3 attempts",createdAt:new Date(Date.now()-212e3).toISOString()}]},f={thread:C,deleted:!1,usage:{requests:11,inputTokens:48e3,outputTokens:14e3,totalTokens:62e3,costUsd:6.2},runs:S.filter(a=>a.threadId==="th2"),runTotal:34,messages:[{messageId:"m1",role:"user",content:"The billing sync failed again overnight — can you find out which asset broke it?",truncated:!1,agentName:null,toolCallCount:0,createdAt:new Date(Date.now()-4e5).toISOString()},{messageId:"m2",role:"assistant",content:"I found 3 assets with a null billing code. Asset-42 is the only one touched by last night’s sync, so I want to delete it — that needs your approval.",truncated:!1,agentName:"billing-agent",toolCallCount:2,createdAt:new Date(Date.now()-38e4).toISOString()},{messageId:"m3",role:"assistant",content:"Here is the full audit trail for asset-42 across the last 90 days, starting with the ingest that first assigned it a billing code and continuing through every subsequent",truncated:!0,agentName:"billing-agent",toolCallCount:1,createdAt:new Date(Date.now()-36e4).toISOString()}]},X=[{modelId:"gpt-4o",inputPricePer1m:2.5,outputPricePer1m:10,cacheReadPricePer1m:1.25,effectiveFrom:new Date(Date.now()-5*864e5).toISOString()},{modelId:"claude-3-5-sonnet",inputPricePer1m:3,outputPricePer1m:15,cacheWritePricePer1m:3.75,cacheReadPricePer1m:.3,effectiveFrom:new Date(Date.now()-12*864e5).toISOString()},{modelId:"gpt-4o-mini",inputPricePer1m:.15,outputPricePer1m:.6,effectiveFrom:new Date(Date.now()-2*864e5).toISOString()}],Z=[{id:"e1",event:"run.started",ts:Date.now()-2e3,payload:{runId:"r-9f2",agentName:"analyst"}},{id:"e2",event:"tool-call",ts:Date.now()-5e3,payload:{toolName:"search_records",toolType:"read",status:"ok"}},{id:"e3",event:"quota.exceeded",ts:Date.now()-9e3,payload:{actorId:"tenant:globex",usedTokens:124e5,limitTokens:12e6}},{id:"e4",event:"tool-call",ts:Date.now()-14e3,payload:{toolName:"delete_asset",toolType:"action",status:"forbidden"}},{id:"e5",event:"delegated",ts:Date.now()-2e4,payload:{fromAgent:"router",toAgent:"billing-agent"}},{id:"e6",event:"run.finished",ts:Date.now()-26e3,payload:{runId:"r-8a1",steps:7,inputTokens:4200,outputTokens:1100}}];function n(a){return{page:a,error:null,retry:()=>{}}}function $(a,t){return{page:a,error:t,retry:()=>{}}}function ee(){const[a,t]=T.useState(null);return e.jsx(x,{delay:400,closeDelay:0,timeout:300,children:e.jsxs("div",{className:"relative min-h-full",children:[e.jsx("div",{className:"app-bg"}),e.jsxs("div",{className:"relative z-10 mx-auto max-w-[1180px] space-y-6 px-5 py-6",children:[e.jsxs("header",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:"grid h-8 w-8 place-items-center rounded-lg border border-brand/40 bg-brand/10",children:e.jsx(D,{className:"h-4 w-4 text-brand"})}),e.jsxs("div",{className:"leading-none",children:[e.jsx("div",{className:"text-sm font-semibold tracking-tight",children:"AI gateway — preview"}),e.jsx("div",{className:"mono text-[10px] uppercase tracking-[0.2em] text-muted-foreground",children:"mock data · no backend"})]})]}),e.jsx(o,{label:"Spend & usage",children:e.jsx(O,{overview:l,topThreads:V,onOpenThread:()=>t("thread")})}),e.jsx(o,{label:"Models",children:e.jsx(y,{rows:l.byModel})}),e.jsx(o,{label:"Actors & budgets",children:e.jsx(R,{rows:l.byActor,budgets:F})}),e.jsx(o,{label:"Runs & tools",children:e.jsx(c,{toolCalls:d,toolCallsTable:n(g),toolCallsWhere:{},onToolCallsToolNameChange:()=>{},onToolCallsStatusChange:()=>{},onToolCallsPageChange:()=>{},threadsTable:n(p),threadsWhere:{},onThreadsTitleChange:()=>{},onThreadsPageChange:()=>{},onOpenRun:()=>t("run"),onOpenThread:()=>t("thread")})}),e.jsx(o,{label:"Reliability",children:e.jsx(v,{overview:z,runsTable:n(Y),runsWhere:{threadId:"th2"},onRunsStatusChange:()=>{},onRunsAgentNameChange:()=>{},onRunsThreadIdClear:()=>{},onRunsPageChange:()=>{},onOpenRun:()=>t("run")})}),e.jsx(o,{label:"Approvals",children:e.jsx(A,{table:n(J),onPageChange:()=>{},onDecide:async()=>{},onOpenRun:()=>t("run")})}),e.jsx(o,{label:"Tools",children:e.jsx(N,{rows:W})}),e.jsx(o,{label:"Pricing",children:e.jsx(M,{prices:X,loading:!1,unavailable:!1,onUpsert:async()=>{},saving:!1})}),e.jsx(o,{label:"Live",children:e.jsx(j,{events:Z,connected:!0})}),e.jsx(o,{label:"Failure & loading states",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx(u,{label:"Spend & usage",error:new Error("503 Service Unavailable"),onRetry:()=>{}}),e.jsx(u,{label:"Pricing",error:new Error("401 Unauthorized"),onRetry:()=>{}}),e.jsx(_,{label:"Reliability"}),e.jsx(c,{toolCalls:d,toolCallsTable:$(g,new Error("500 Internal Server Error")),toolCallsWhere:{},onToolCallsToolNameChange:()=>{},onToolCallsStatusChange:()=>{},onToolCallsPageChange:()=>{},threadsTable:n(p),threadsWhere:{},onThreadsTitleChange:()=>{},onThreadsPageChange:()=>{}})]})}),e.jsx(o,{label:"Drill-downs",children:e.jsxs(P,{className:"flex flex-wrap gap-2 p-4 text-xs",children:[e.jsx(h,{size:"md",className:"rounded-lg",onClick:()=>t("run"),children:"Open a run"}),e.jsx(h,{size:"md",className:"rounded-lg",onClick:()=>t("thread"),children:"Open a thread"})]})})]}),a!==null&&e.jsx(E,{title:a==="run"?"Run":"Thread",subtitle:a==="run"?m.run.runId:f.thread.threadId,onClose:()=>t(null),...a==="run"?{onBack:()=>t("thread")}:{},children:a==="run"?e.jsx(k,{detail:m,onOpenThread:()=>t("thread")}):e.jsx(L,{detail:f,onOpenRun:()=>t("run"),runsHref:"#/reliability?threadId=th2"})})]})})}function o({label:a,children:t}){return e.jsxs("div",{className:"space-y-2",children:[e.jsx("h2",{className:"mono text-[11px] uppercase tracking-[0.2em] text-muted-foreground",children:a}),t]})}const I=document.getElementById("root");I&&w.createRoot(I).render(e.jsx(T.StrictMode,{children:e.jsx(ee,{})}));
|