UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

3 lines • 5.18 kB
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{Ia as t,Ra as n,eo as r}from"./control-ui-foundation-ZY_Flbbd.js";import{Gl as i,ql as a}from"./control-ui-core-3P365fbR.js";import{a as o,n as s,o as c}from"./usage-qkiTcEi1.js";function l(e=new Date){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function u(e=new Date){let t=new Date(e);return t.setDate(t.getDate()-29),{startDate:l(t),endDate:l(e)}}function d(e){return i(e,`request failed`)}function f(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 e.includes(t)?e.filter(e=>e!==t):i?[...e,t]:[t]}function p(e,t,n,r){if(r&&e.length>0){let r=n.indexOf(e.at(-1)??``),i=n.indexOf(t);if(r!==-1&&i!==-1){let[t,a]=r<i?[r,i]:[i,r];return[...new Set([...e,...n.slice(t,a+1)])]}}return e.length===1&&e[0]===t?[]:[t]}function m(e){let t=e.split(` `),n=new Map,r=[];for(let e of t){let t=/^\[Tool:\s*([^\]]+)\]/.exec(e.trim())?.[1];if(t){n.set(t,(n.get(t)??0)+1);continue}e.trim().startsWith(`[Tool Result]`)||r.push(e)}let i=Array.from(n.entries()).toSorted((e,t)=>t[1]-e[1]),a=i.reduce((e,[,t])=>e+t,0);return{tools:i,summary:i.length>0?`Tools: ${i.map(([e,t])=>`${e}×${t}`).join(`, `)} (${a} calls)`:``,cleanContent:r.join(` `).trim()}}var h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{a(),h=e=>{let t=e.replace(/[.+^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`).replace(/\?/g,`.`);return RegExp(`^${t}$`,`i`)},g=e=>{let t=r(e);if(!t)return null;t.startsWith(`$`)&&(t=t.slice(1));let n=1;if(t.endsWith(`k`)?(n=1e3,t=t.slice(0,-1)):t.endsWith(`m`)&&(n=1e6,t=t.slice(0,-1)),!/^\d+(?:\.\d+)?$/.test(t))return null;let i=Number(t)*n;return!Number.isFinite(i)||!Number.isSafeInteger(Math.round(i))?null:i},_=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}}),v=e=>[e.label,e.key,e.sessionId].filter(e=>!!e).map(e=>r(e)),y=e=>{let t=new Set;e.modelProvider&&t.add(r(e.modelProvider)),e.providerOverride&&t.add(r(e.providerOverride)),e.origin?.provider&&t.add(r(e.origin.provider));for(let n of e.usage?.modelUsage??[])n.provider&&t.add(r(n.provider));return Array.from(t)},b=e=>{let t=new Set;e.model&&t.add(r(e.model));for(let n of e.usage?.modelUsage??[])n.model&&t.add(r(n.model));return Array.from(t)},x=e=>(e.usage?.toolUsage?.tools??[]).map(e=>r(e.name)),S={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=>b(e).length>0,provider:e=>y(e).length>0},C=(e,t)=>e>=t,w=(e,t)=>e<=t,T={mintokens:[e=>e.usage?.totalTokens??0,C],maxtokens:[e=>e.usage?.totalTokens??0,w],mincost:[e=>e.usage?.totalCost??0,C],maxcost:[e=>e.usage?.totalCost??0,w],minmessages:[e=>e.usage?.messageCounts?.total??0,C],maxmessages:[e=>e.usage?.messageCounts?.total??0,w]},E=new Set([`agent`,`channel`,`chat`,`provider`,`model`,`tool`,`label`,`key`,`session`,`id`,`has`,...Object.keys(T)]),D=new Set([`channel`,`provider`,`model`,`tool`]),O=()=>!0,k=(e,t,n)=>{if(e.key&&!E.has(t))return n.push(`Unknown filter: ${e.key}`),O;e.key&&e.value===``&&n.push(`Missing value for ${e.key}`);let i=r(e.value??``),a=Object.hasOwn(T,t)?T[t]:void 0,o=a&&e.value?g(e.value):null;if(a&&e.value&&o===null&&n.push(`Invalid number for ${e.key}`),t===`has`){let t=Object.hasOwn(S,i)?S[i]:void 0;return e.value&&!t&&n.push(`Unknown has:${e.value}`),t??O}if(!i)return O;if(!e.key)return e=>v(e).some(e=>e.includes(i));switch(t){case`agent`:return e=>r(e.agentId).includes(i);case`channel`:return e=>r(e.channel).includes(i);case`chat`:return e=>r(e.chatType).includes(i);case`provider`:return e=>y(e).some(e=>e.includes(i));case`model`:return e=>b(e).some(e=>e.includes(i));case`tool`:return e=>x(e).some(e=>e.includes(i));case`label`:return e=>r(e.label).includes(i);case`key`:case`session`:case`id`:if(i.includes(`*`)||i.includes(`?`)){let e;return t=>(e??=h(i),e.test(t.key)||(t.sessionId?e.test(t.sessionId):!1))}return e=>r(e.key).includes(i)||r(e.sessionId).includes(i)}if(!a||o===null)return O;let[s,c]=a;return e=>c(s(e),o)},A=(e,t)=>{let n=_(t);if(n.length===0)return{sessions:e,warnings:[]};let i=[],a=new Map,o=n.map(e=>{let t=r(e.key??``),n=k(e,t,i);if(!D.has(t))return n;let o=a.get(t)??[];return e.value&&o.push(n),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 M(e,r,i){let a,o=c(e,i?{signal:i}:void 0).then(e=>a={state:`settled`,result:e});try{let[t,a]=await Promise.all([s(e,r,{signal:i}),o]),c={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 n({result:t,costSummary:c,providerUsage:a})}catch(e){if(i?.aborted)throw e;return t({cause:e,providerUsage:a??{state:`pending`}})}}function N(){return(N=e((()=>{o()})))()}export{_ as a,m as c,f as d,l as i,p as l,M as n,A as o,u as r,j as s,N as t,d as u};