UNPKG

@teerai/agent-toolkit

Version:

TeerAI Agent Toolkit - Tools and middleware for AI agents

2 lines 4.24 kB
var b=i=>i.replace(/\/$/,""),m=new Set(["rawCall","request"]),g=new Set(["text","reasoning","reasoningDetails","rawResponse","sources","files","toolCalls","toolResults","response","steps","experimental_output","experimental_partialOutputStream","object","partialObjectStream","elementStream","textStream","fullStream","pipeTextStreamToResponse","pipeDataStreamToResponse","value","embedding","values","embeddings","image","images","responses"]),f=new Set(["toJsonResponse","toTextStreamResponse","consumeStream","toDataStream","toDataStreamResponse","toTextStreamResponse","mergeIntoDataStream"]),T=new Set(["response.id","response.modelId","response.timestamp","rawResponse.body.modelVersion","rawResponse.body.usageMetadata"]),I=(i,e)=>{let r=e.split("."),s=i;for(let t of r){if(s==null)return;s=s[t];}return s},v=(i,e,r)=>{let s=e.split("."),t=i;for(let o=0;o<s.length-1;o++){let l=s[o];l in t||(t[l]={}),t=t[l];}let a=s[s.length-1];t[a]=r;},D=i=>typeof i=="object"&&i!==null&&!Array.isArray(i),R=(i,e)=>{let r={};if(!D(i))return r;let s=new Set([...T]);for(let t in i)if(!f.has(t)){if(typeof i[t]=="object"&&i[t]!==null){for(let a of s)if(a.startsWith(`${t}.`)){let o=a.substring(t.length+1),l=I(i[t],o);l!==void 0?(r[t]||(r[t]={}),v(r[t],o,l)):console.warn(`${a} is undefined`);}}if(!m.has(t)&&!g.has(t)){r[t]=i[t];continue}if(m.has(t)&&(e!=null));if(g.has(t)&&(e!=null));}return r},h=(i,e)=>i.map(({data:r,metadata:s})=>({data:R(r,e),metadata:s}));var u="0.1.0";var n=class n{constructor(e){this.apiKey=e.apiKey,this.debug=e.debug??false,this.fetchImpl=e.customFetch??((a,o)=>fetch(a,o));let r=e.baseURL||n.baseURL,s=b(r),t=new URL(`${s}/${n.namespace}/ai/ai-sdk/ingest`);this.endpoint=t.toString(),this.apiVersion=e.apiVersion??n.defaultApiVersion,this.logDebug("TeerClient initialized:",this.endpoint);}async trackResult(e){this.logDebug("Tracking event",JSON.stringify(e,null,2)),this.logDebug("Sending result to",this.endpoint);try{let r=await this.fetchImpl(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json","Teer-Client-Version":n.sdkVersion,"Teer-Api-Version":this.apiVersion,"User-Agent":n.userAgent,Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({results:h([e])})});if(!r.ok){let s=await r.json();throw new Error(`Failed to send result: ${r.status} ${JSON.stringify(s,null,2)}`)}this.logDebug("Successfully sent result");}catch(r){throw this.logDebug("Error sending result",r),r}}logDebug(e,...r){this.debug&&console.log(`[${new Date().toISOString()}] [TeerAgentToolkit:TeerClient v${n.sdkVersion}] ${e}`,...r);}};n.sdkVersion=u,n.otelVersion="2.0.0",n.namespace="v1",n.baseURL="https://track.teer.ai",n.userAgent=`Teer-Agent-Toolkit/${n.sdkVersion}`,n.defaultApiVersion="2024-04-06";var c=n;var d=class d{constructor({apiKey:e,baseURL:r,debug:s,flushInterval:t,customFetch:a}){this.debug=s??false,this.client=new c({apiKey:e,baseURL:r||d.baseURL,debug:this.debug,flushInterval:t,customFetch:a}),this.logDebug("TeerAgentToolkit initialized");}createTrackingMetadata(e){let{functionId:r,metadata:s,billing:t,traceId:a,spanId:o,parentSpanId:l}=e.config;return {provider:e.provider,model:e.model,operationId:e.operationId,traceId:a,spanId:o,parentSpanId:l,billing:t,functionId:r,timestamp:new Date,sdkVersion:d.sdkVersion,otelVersion:d.otelVersion,telemetryOriginVersion:d.telemetryOriginVersion,metadata:s}}async track(e){await this.client.trackResult({data:e.data,metadata:this.createTrackingMetadata(e)});}middleware(e={}){let r=this;return {wrapGenerate:async({doGenerate:s,model:t})=>{let a=await s();return await r.track({data:a,operationId:"doGenerate",config:e,provider:t.provider,model:t.modelId}),a},wrapStream:async({doStream:s,model:t})=>{let{stream:a,...o}=await s(),l=new TransformStream({async transform(p,S){p.type==="finish"&&p.usage&&await r.track({data:p,operationId:"doStream",config:e,provider:t.provider,model:t.modelId}),S.enqueue(p);}});return {stream:a.pipeThrough(l),...o}}}}logDebug(e,...r){this.debug&&console.log(`[${new Date().toISOString()}] [TeerAgentToolkit v${d.sdkVersion}] ${e}`,...r);}};d.sdkVersion=u,d.otelVersion="2.0.0",d.namespace="v1",d.baseURL="https://track.teer.ai",d.telemetryOriginVersion="^3.4.7 || ^4.0.0";var y=d; export{y as TeerAgentToolkit};