openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
3 lines • 4.81 kB
JavaScript
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{fo as t,jo as n,mo as r}from"./ui-CmSP4d14.js";import{n as i}from"./usage-BQd4o5lO.js";import{n as a,t as o}from"./provider-usage-request-CSPHdPAg.js";function s(e,t=`local`){let n=t===`utc`?e.getUTCFullYear():e.getFullYear(),r=(t===`utc`?e.getUTCMonth():e.getMonth())+1,i=t===`utc`?e.getUTCDate():e.getDate();return`${n}-${String(r).padStart(2,`0`)}-${String(i).padStart(2,`0`)}`}function c(e=new Date){let t=new Date(e);return t.setDate(t.getDate()-29),{startDate:s(t),endDate:s(e)}}function l(e,t,n,r,i){if(r&&e.length>0)for(let r of e.slice(-1)){let i=n.indexOf(r),a=n.indexOf(t);if(i!==-1&&a!==-1){let[t,r]=i<a?[i,a]:[a,i];return[...new Set([...e,...n.slice(t,r+1)])]}}return i===`replace`?e.length===1&&e[0]===t?[]:[t]:e.includes(t)?e.filter(e=>e!==t):i===`append`?[...e,t]:[t]}function u(e){let t=new Map,n=[];for(let r of e.split(`
`)){let e=/^\[Tool:\s*([^\]]+)\]/.exec(r.trim())?.[1];if(e){t.set(e,(t.get(e)??0)+1);continue}r.trim().startsWith(`[Tool Result]`)||n.push(r)}let r=Array.from(t).toSorted((e,t)=>t[1]-e[1]),i=r.reduce((e,[,t])=>e+t,0);return{tools:r,summary:r.length>0?`Tools: ${r.map(([e,t])=>`${e}×${t}`).join(`, `)} (${i} calls)`:``,cleanContent:n.join(`
`).trim()}}var d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{d=e=>{let t=e.replace(/[.+^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`).replace(/\?/g,`.`);return RegExp(`^${t}$`,`i`)},f=e=>{let t=n(e);if(!t)return null;t.startsWith(`$`)&&(t=t.slice(1));let r=1;if(t.endsWith(`k`)?(r=1e3,t=t.slice(0,-1)):t.endsWith(`m`)&&(r=1e6,t=t.slice(0,-1)),!/^\d+(?:\.\d+)?$/.test(t))return null;let i=Number(t)*r;return!Number.isFinite(i)||!Number.isSafeInteger(Math.round(i))?null:i},p=e=>(e.match(/(?:[^\s"]|"[^"]*")+/g)??[]).map(e=>{let t=e.replace(/^"(.*)"$/u,`$1`),n=t.indexOf(`:`);return n>0?{key:t.slice(0,n),value:t.slice(n+1).replace(/^"(.*)"$/u,`$1`),raw:t}:{value:t,raw:e}}),m=e=>e.filter(e=>!!e).map(e=>n(e)),h=e=>m([e.modelProvider,e.providerOverride,e.origin?.provider,...(e.usage?.modelUsage??[]).map(e=>e.provider)]),g=e=>m([e.model,...(e.usage?.modelUsage??[]).map(e=>e.model)]),_=e=>(e.usage?.toolUsage?.tools??[]).map(e=>n(e.name)),v={tools:e=>(e.usage?.toolUsage?.totalCalls??0)>0,errors:e=>(e.usage?.messageCounts?.errors??0)>0,context:e=>e.hasContextWeight===!0,usage:e=>!!e.usage,model:e=>g(e).length>0,provider:e=>h(e).length>0},y=(e,t)=>e>=t,b=(e,t)=>e<=t,x={mintokens:[e=>e.usage?.totalTokens??0,y],maxtokens:[e=>e.usage?.totalTokens??0,b],mincost:[e=>e.usage?.totalCost??0,y],maxcost:[e=>e.usage?.totalCost??0,b],minmessages:[e=>e.usage?.messageCounts?.total??0,y],maxmessages:[e=>e.usage?.messageCounts?.total??0,b]},S=new Set([`agent`,`channel`,`chat`,`provider`,`model`,`tool`,`label`,`key`,`session`,`id`,`has`,...Object.keys(x)]),C=new Set([`channel`,`provider`,`model`,`tool`]),w=()=>!0,T=(e,t,r)=>{if(e.key&&!S.has(t))return r.push(`Unknown filter: ${e.key}`),w;e.key&&e.value===``&&r.push(`Missing value for ${e.key}`);let i=n(e.value??``),a=Object.hasOwn(x,t)?x[t]:void 0,o=a&&e.value?f(e.value):null;if(a&&e.value&&o===null&&r.push(`Invalid number for ${e.key}`),t===`has`){let t=Object.hasOwn(v,i)?v[i]:void 0;return e.value&&!t&&r.push(`Unknown has:${e.value}`),t??w}if(!i)return w;if(!e.key)return e=>m([e.label,e.key,e.sessionId]).some(e=>e.includes(i));switch(t){case`agent`:return e=>n(e.agentId).includes(i);case`channel`:return e=>n(e.channel).includes(i);case`chat`:return e=>n(e.chatType).includes(i);case`provider`:return e=>h(e).some(e=>e.includes(i));case`model`:return e=>g(e).some(e=>e.includes(i));case`tool`:return e=>_(e).some(e=>e.includes(i));case`label`:return e=>n(e.label).includes(i);case`key`:case`session`:case`id`:if(i.includes(`*`)||i.includes(`?`)){let e;return t=>(e??=d(i),e.test(t.key)||(t.sessionId?e.test(t.sessionId):!1))}return e=>n(e.key).includes(i)||n(e.sessionId).includes(i)}if(!a||o===null)return w;let[s,c]=a;return e=>c(s(e),o)},E=(e,t)=>{let r=p(t);if(r.length===0)return{sessions:e,warnings:[]};let i=[],a=new Map,o=r.map(e=>{let t=n(e.key??``),r=T(e,t,i);if(!C.has(t))return r;let o=a.get(t)??[];return e.value&&o.push(r),a.set(t,o),e=>o.length===0||o.some(t=>t(e))});return{sessions:e.filter(e=>o.every(t=>t(e))),warnings:i}}})))()}async function O(e,n,o){let s,c=a(e,o?{signal:o}:void 0).then(e=>s={state:`settled`,result:e});try{let[t,a]=await Promise.all([i(e,n,{signal:o}),c]),s={updatedAt:t.updatedAt,days:(Date.parse(t.endDate)-Date.parse(t.startDate))/864e5+1,daily:t.aggregates.costDaily??[],totals:t.totals,cacheStatus:t.cacheStatus};return r({result:t,costSummary:s,providerUsage:a})}catch(e){if(o?.aborted)throw e;return t({cause:e,providerUsage:s??{state:`pending`}})}}function k(){return(k=e((()=>{o()})))()}export{E as a,u as c,p as i,l,O as n,s as o,c as r,D as s,k as t};