promptlayer 1.3.3 → 1.3.5

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.
@@ -1,3 +1,5 @@
1
- "use strict";var ft=Object.create;var b=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames,F=Object.getOwnPropertySymbols,ht=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable;var G=(n,t,e)=>t in n?b(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,d=(n,t)=>{for(var e in t||(t={}))z.call(t,e)&&G(n,e,t[e]);if(F)for(var e of F(t))bt.call(t,e)&&G(n,e,t[e]);return n};var xt=(n,t)=>{for(var e in t)b(n,e,{get:t[e],enumerable:!0})},K=(n,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of yt(t))!z.call(n,s)&&s!==e&&b(n,s,{get:()=>t[s],enumerable:!(o=gt(t,s))||o.enumerable});return n};var O=(n,t,e)=>(e=n!=null?ft(ht(n)):{},K(t||!n||!n.__esModule?b(e,"default",{value:n,enumerable:!0}):e,n)),At=n=>K(b({},"__esModule",{value:!0}),n);var u=(n,t,e)=>new Promise((o,s)=>{var r=l=>{try{i(e.next(l))}catch(c){s(c)}},a=l=>{try{i(e.throw(l))}catch(c){s(c)}},i=l=>l.done?o(l.value):Promise.resolve(l.value).then(r,a);i((e=e.apply(n,t)).next())});var Ht={};xt(Ht,{PromptLayerOpenAIAgentsProcessor:()=>h,instrumentOpenAIAgents:()=>_t});module.exports=At(Ht);var wt=O(require("ably")),Pt=require("centrifuge"),D=O(require("p-retry"));var g="1.3.3",kt=()=>{var n;if(typeof process!="undefined"&&((n=process.versions)!=null&&n.node)){let t=process.versions.node.split(".");return`${t[0]}.${t[1]}`}return"unknown"},Ot=kt(),Et=`promptlayer-js/${g} (node ${Ot})`,V=()=>({"User-Agent":Et,"X-SDK-Version":g});var E=class extends Error{constructor(t,e){super(`Server error: ${t} ${e}`),this.name="PromptLayerRetryableHttpError",this.status=t,this.statusText=e}};var J=(n,t)=>u(null,null,function*(){return(0,D.default)(()=>u(null,null,function*(){let e=yield fetch(n,t);if(e.status>=500&&e.status<600||e.status===429)throw new E(e.status,e.statusText);return e}),{retries:3,factor:2,minTimeout:2e3,maxTimeout:15e3,randomize:!0,onFailedAttempt:e=>{console.info(`PromptLayer API request attempt ${e.attemptNumber} failed. ${e.retriesLeft} retries left.`)}})});var C=n=>{var t,e,o,s,r,a;if(typeof globalThis.process!="undefined")return(o=(e=(t=globalThis.process.env)==null?void 0:t[n])==null?void 0:e.trim())!=null?o:void 0;if(typeof globalThis.Deno!="undefined")return(a=(r=(s=globalThis.Deno.env)==null?void 0:s.get)==null?void 0:r.call(s,n))==null?void 0:a.trim()},Y=n=>{if(n!==void 0){let e=n.trim();if(!e)throw new Error("PromptLayer API key not provided. Please set PROMPTLAYER_API_KEY or pass apiKey.");return e}let t=C("PROMPTLAYER_API_KEY");if(!t)throw new Error("PromptLayer API key not provided. Please set PROMPTLAYER_API_KEY or pass apiKey.");return t};var Ct=1,Nt=3,p=n=>typeof n=="object"&&n!==null&&!Array.isArray(n),et=n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean",Mt=n=>n.replace(/[^a-zA-Z0-9_.-]/g,"_"),A=n=>n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean"?n:Array.isArray(n)?n.map(t=>A(t)):p(n)?Object.fromEntries(Object.entries(n).map(([t,e])=>[t,A(e)])):String(n),y=n=>{let t=e=>Array.isArray(e)?e.map(o=>t(o)):p(e)?Object.keys(e).sort().reduce((o,s)=>(o[s]=t(e[s]),o),{}):e;return JSON.stringify(t(A(n)))},_=(n,t,e)=>{e!=null&&e!==""&&(n[t]=String(e))},X=(n,t,e)=>{if(e!=null&&e!==""){let o=Number(e);Number.isNaN(o)||(n[t]=o)}},m=(n,t,e,o)=>{o&&e!==void 0&&e!==null&&(n[t]=y(e))},S=(n,t,e)=>{t.forEach((o,s)=>{Object.entries(o).forEach(([r,a])=>{e[`${n}.${s}.${r}`]=et(a)?a:y(a)})})},nt=n=>Array.isArray(n)?n.map(t=>{var r,a,i,l,c;if(!p(t))return null;let e=p(t.function)?t.function:null,o=(a=(r=e==null?void 0:e.name)!=null?r:t.name)!=null?a:"tool",s=(l=(i=e==null?void 0:e.arguments)!=null?i:t.arguments)!=null?l:{};if(typeof s=="string")try{s=JSON.parse(s)}catch(k){s=s}return{id:String((c=t.id)!=null?c:""),type:"tool_call",name:String(o),arguments:A(s)}}).filter(t=>t!==null):[],ot=n=>{var e,o;let t=(o=(e=n.call_id)!=null?e:n.callId)!=null?o:n.id;return t!=null?String(t):void 0},jt=n=>{if(n==null)return;if(typeof n=="string")return n;if(Array.isArray(n)){let e=x(n);return e!=null?e:y(n)}if(p(n)){let e=x([n]);return e!=null?e:y(n)}let t=x(n);return t!==void 0?t:y(n)},Z=n=>{var e,o,s;let t=(e=n.arguments)!=null?e:{};if(typeof t=="string")try{t=JSON.parse(t)}catch(r){t=t}return{role:"assistant",tool_calls:[{id:(o=ot(n))!=null?o:"",type:"tool_call",name:String((s=n.name)!=null?s:"tool"),arguments:A(t)}]}},H=(n,t)=>{var r;let e=ot(n),o=jt((r=t!=null?t:n.output)!=null?r:n.content);if(!e&&!o)return null;let s={role:"tool"};return e&&(s.tool_call_id=e),o!==void 0&&(s.content=o),s};function x(n){if(n!=null){if(typeof n=="string")return n;if(Array.isArray(n)){let t=n.map(e=>{var s;if(!p(e))return null;let o=e.type;if(o==="text"||o==="input_text"||o==="output_text"){let r=(s=e.text)!=null?s:e.content;return r!=null?String(r):null}return null}).filter(e=>e!==null);return t.length>0?t.join(`
2
- `):void 0}return String(n)}}var Q=n=>Array.isArray(n)?n.map(t=>{if(!p(t))return null;let e={};t.role!==void 0&&(e.role=String(t.role));let o=x(t.content);o&&(e.content=o);let s=nt(t.tool_calls);return s.length>0&&(e.tool_calls=s),t.tool_call_id&&(e.tool_call_id=String(t.tool_call_id)),Object.keys(e).length>0?e:null}).filter(t=>t!==null):[],v=n=>{let t={},e=n.role,o=x(n.content),s=nt(n.tool_calls);return e!=null?t.role=String(e):(o||s.length>0)&&(t.role="assistant"),o&&(t.content=o),s.length>0&&(t.tool_calls=s),n.tool_call_id&&(t.tool_call_id=String(n.tool_call_id)),Object.keys(t).length>0?t:null},Lt=new Set(["function_call","computer_call","shell_call","apply_patch_call","custom_tool_call","mcp_call"]),qt=new Set(["function_call_output","function_call_result","computer_call_output","computer_call_result","shell_call_output","apply_patch_call_output","custom_tool_call_output"]),tt=n=>typeof n=="string"?[{role:"user",content:n}]:Array.isArray(n)?n.flatMap(t=>{if(!p(t))return[];if(t.type==="message_output_item"&&p(t.rawItem)){let o=v(t.rawItem);return o?[o]:[]}if(t.type==="tool_call_item"&&p(t.rawItem)){let o=Z(t.rawItem);return o?[o]:[]}if(t.type==="tool_call_output_item"&&p(t.rawItem)){let o=H(t.rawItem,t.output);return o?[o]:[]}if(typeof t.type=="string"&&Lt.has(t.type)){let o=Z(t);return o?[o]:[]}if(typeof t.type=="string"&&qt.has(t.type)){let o=H(t);return o?[o]:[]}let e=v(t);return e?[e]:[]}).filter(t=>t!==null):[],st=(n,t)=>{var e,o;p(t)&&(X(n,"gen_ai.usage.input_tokens",(e=t.input_tokens)!=null?e:t.prompt_tokens),X(n,"gen_ai.usage.output_tokens",(o=t.output_tokens)!=null?o:t.completion_tokens))},Ut=(n,t)=>{let e={"gen_ai.provider.name":"openai.responses"};return _(e,"gen_ai.request.model",n.model),st(e,n.usage),S("gen_ai.prompt",Q(n.input),e),S("gen_ai.completion",Q(n.output),e),m(e,"openai_agents.model_config_json",n.model_config,t),m(e,"openai_agents.generation.raw_input_json",n.input,t),m(e,"openai_agents.generation.raw_output_json",n.output,t),e},$t=(n,t)=>{var r,a,i;let e={"gen_ai.provider.name":"openai.responses"},o=p(n._response)?n._response:{},s=p(o.usage)?o.usage:void 0;return _(e,"gen_ai.request.model",o.model),_(e,"gen_ai.response.model",o.model),_(e,"gen_ai.response.id",(a=(r=n.response_id)!=null?r:o.id)!=null?a:o.response_id),st(e,s),S("gen_ai.prompt",tt((i=n._input)!=null?i:o.input),e),S("gen_ai.completion",tt(o.output),e),m(e,"openai_agents.response.raw_json",o,t),_(e,"openai_agents.response.object",o.object),e},Wt=(n,t)=>{let e={node_type:"CODE_EXECUTION",tool_name:n.name,"openai_agents.function.name":n.name};return _(e,"function_input",n.input),_(e,"function_output",n.output),_(e,"openai_agents.function.input",n.input),_(e,"openai_agents.function.output",n.output),m(e,"openai_agents.function.mcp_data_json",n.mcp_data,t),e},Ft=(n,t)=>{let e={"openai_agents.agent.name":n.name};return _(e,"openai_agents.agent.output_type",n.output_type),m(e,"openai_agents.agent.handoffs_json",n.handoffs,t),m(e,"openai_agents.agent.tools_json",n.tools,t),e},Gt=n=>{let t={};return _(t,"openai_agents.handoff.from_agent",n.from_agent),_(t,"openai_agents.handoff.to_agent",n.to_agent),t},zt=n=>({"openai_agents.guardrail.name":n.name,"openai_agents.guardrail.triggered":n.triggered}),Kt=(n,t)=>{let e={"openai_agents.custom.name":n.name};return m(e,"openai_agents.custom.data_json",n.data,t),e},Bt=(n,t)=>t?{"openai_agents.raw_json":y(n)}:{},rt=()=>g,N=n=>n.spanData.type==="generation"||n.spanData.type==="response"?Nt:Ct,M=n=>{switch(n.spanData.type){case"function":return`Function: ${n.spanData.name}`;case"agent":return`Agent: ${n.spanData.name}`;case"guardrail":return`Guardrail: ${n.spanData.name}`;case"custom":return String(n.spanData.name);default:return n.spanData.type.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}},j=(n,t)=>{let e={"promptlayer.telemetry.source":"openai-agents-js","promptlayer.telemetry.source_version":rt(),"openai_agents.trace_id_original":n.traceId,"openai_agents.workflow_name":n.name};return n.groupId&&(e["openai_agents.group_id"]=n.groupId),p(n.metadata)&&(Object.entries(n.metadata).forEach(([o,s])=>{et(s)&&(e[`openai_agents.metadata.${Mt(o)}`]=s)}),m(e,"openai_agents.metadata_json",n.metadata,t)),e},L=n=>{let t={"promptlayer.telemetry.source":"openai-agents-js","promptlayer.telemetry.source_version":rt(),"openai_agents.span_id_original":n.spanId,"openai_agents.span_type":n.spanData.type};return n.parentId&&(t["openai_agents.parent_id_original"]=n.parentId),t},at=(n,t)=>{switch(n.type){case"generation":return Ut(n,t);case"response":return $t(n,t);case"function":return Wt(n,t);case"agent":return Ft(n,t);case"handoff":return Gt(n);case"guardrail":return zt(n);case"custom":return Kt(n,t);default:return Bt(n,t)}},I=0,it=1,lt=2;var U=n=>typeof n=="string"?{stringValue:n}:typeof n=="boolean"?{boolValue:n}:typeof n=="number"?Number.isInteger(n)?{intValue:String(n)}:{doubleValue:n}:n===null?{stringValue:"null"}:Array.isArray(n)?{arrayValue:{values:n.map(t=>U(t))}}:{kvlistValue:{values:Object.entries(n).map(([t,e])=>({key:t,value:U(e)}))}},q=n=>Object.entries(n).map(([t,e])=>({key:t,value:U(e)})),ct=(n,{serviceName:t="promptlayer-openai-agents-js",scopeName:e="promptlayer.integrations.openai_agents",scopeVersion:o=g}={})=>({resourceSpans:[{resource:{attributes:q({"service.name":t})},scopeSpans:[{scope:{name:e,version:o},spans:n.map(s=>{var a,i;let r={traceId:s.traceId,spanId:s.spanId,name:s.name,kind:s.kind,startTimeUnixNano:s.startTimeUnixNano,endTimeUnixNano:(a=s.endTimeUnixNano)!=null?a:s.startTimeUnixNano,attributes:q(s.attributes),events:((i=s.events)!=null?i:[]).map(l=>{var c;return{name:l.name,timeUnixNano:l.timeUnixNano,attributes:q((c=l.attributes)!=null?c:{})}}),links:[]};return s.parentSpanId&&(r.parentSpanId=s.parentSpanId),s.traceState&&(r.traceState=s.traceState),s.status&&(r.status=d({code:s.status.code},s.status.message?{message:s.status.message}:{})),r})}]}]});var pt=require("crypto"),Dt=/^[0-9a-f]{32}$/i,$=n=>(0,pt.createHash)("sha256").update(n,"utf8").digest("hex"),R=n=>{let t=n.startsWith("trace_")?n.slice(6):n;return Dt.test(t)?t.toLowerCase():$(n).slice(0,32)},w=n=>$(n).slice(0,16),W=n=>$(`${n}:root`).slice(0,16);var Vt=/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(?:\.(\d{1,9}))?(Z|[+-]\d{2}:\d{2})?$/,f=()=>(BigInt(Date.now())*BigInt(1e6)).toString(),T=n=>{if(!n)return;let t=Vt.exec(n);if(!t){let i=Date.parse(n);return Number.isNaN(i)?void 0:(BigInt(i)*BigInt(1e6)).toString()}let[,e,o="",s="Z"]=t,r=Date.parse(`${e}${s}`);if(Number.isNaN(r))return;let a=BigInt((o+"000000000").slice(0,9));return(BigInt(r)*BigInt(1e6)+a).toString()},ut=(...n)=>{let t=n.filter(e=>e!==void 0);return t.length===0?f():t.reduce((e,o)=>BigInt(o)<BigInt(e)?o:e)},dt=(...n)=>{let t=n.filter(e=>e!==void 0);return t.length===0?f():t.reduce((e,o)=>BigInt(o)>BigInt(e)?o:e)};var P=n=>{let t=n.length;for(;t>0&&n.charCodeAt(t-1)===47;)t-=1;return n.slice(0,t)};var Jt=/^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/i,Yt="0".repeat(32),Xt="0".repeat(16),h=class{constructor({apiKey:t,baseURL:e,includeRawPayloads:o=!0}){this.traceStates=new Map;this.completedTraceQueue=new Map;this.pendingExports=new Map;this.apiKey=t,this.baseURL=P(e),this.includeRawPayloads=o}start(){}onTraceStart(t){return u(this,null,function*(){var s;if(this.traceStates.has(t.traceId))return;let e=this.resolveUpstreamTraceContext(t.metadata),o=(s=e==null?void 0:e.traceId)!=null?s:R(t.traceId);this.traceStates.set(t.traceId,{rootSpan:{traceId:o,spanId:W(t.traceId),name:t.name||"OpenAI Agents Trace",kind:1,startTimeUnixNano:f(),parentSpanId:e==null?void 0:e.parentSpanId,traceState:e==null?void 0:e.traceState,attributes:j(t,this.includeRawPayloads),status:{code:I},events:[]},spans:new Map})})}onTraceEnd(t){return u(this,null,function*(){let e=this.traceStates.get(t.traceId);if(!e)return;let o=Array.from(e.spans.values()).sort((l,c)=>BigInt(l.startTimeUnixNano)<BigInt(c.startTimeUnixNano)?-1:1),s=o.map(l=>l.startTimeUnixNano),r=o.map(l=>{var c;return(c=l.endTimeUnixNano)!=null?c:l.startTimeUnixNano}),a=dt(f(),...r);e.rootSpan.startTimeUnixNano=ut(e.rootSpan.startTimeUnixNano,...s),e.rootSpan.endTimeUnixNano=a;let i=ct([e.rootSpan,...o]);this.traceStates.delete(t.traceId),this.completedTraceQueue.set(t.traceId,i),this.startExportForTrace(t.traceId)})}onSpanStart(t){return u(this,null,function*(){var r;let e=this.ensureTraceStateForSpan(t),o=e.spans.get(t.spanId),s=o!=null?o:this.createSpanRecord(t,e.rootSpan.spanId);s.traceId=e.rootSpan.traceId,s.traceState=e.rootSpan.traceState,s.name=M(t),s.kind=N(t),s.startTimeUnixNano=(r=T(t.startedAt))!=null?r:s.startTimeUnixNano,s.parentSpanId=t.parentId?w(t.parentId):e.rootSpan.spanId,s.attributes=d(d({},s.attributes),L(t)),e.spans.set(t.spanId,s)})}onSpanEnd(t){return u(this,null,function*(){var s,r,a,i;let e=this.ensureTraceStateForSpan(t),o=(s=e.spans.get(t.spanId))!=null?s:this.createSpanRecord(t,e.rootSpan.spanId);o.attributes=d(d({},o.attributes),at(t.spanData,this.includeRawPayloads)),o.endTimeUnixNano=(a=(r=T(t.endedAt))!=null?r:o.endTimeUnixNano)!=null?a:f(),o.status=this.statusForSpan(t),t.error&&(o.events=[...(i=o.events)!=null?i:[],{name:"exception",timeUnixNano:o.endTimeUnixNano,attributes:{"exception.type":"OpenAIAgentsError","exception.message":t.error.message,"openai_agents.error_json":JSON.stringify(t.error)}}]),e.spans.set(t.spanId,o)})}shutdown(){return u(this,null,function*(){yield this.forceFlush()})}forceFlush(){return u(this,null,function*(){for(let t=0;t<2;t+=1){for(let e of this.completedTraceQueue.keys())this.startExportForTrace(e);if(this.pendingExports.size===0||(yield Promise.all(Array.from(this.pendingExports.values())),this.completedTraceQueue.size===0))return}})}traceLikeFromSpan(t){var s,r,a,i,l;let e=this.asRecord(t.traceMetadata),o=this.asRecord(e==null?void 0:e.metadata);return{traceId:t.traceId,name:(r=(s=this.readString(e==null?void 0:e.workflow_name))!=null?s:this.readString(e==null?void 0:e.workflowName))!=null?r:"OpenAI Agents Trace",groupId:(i=(a=this.readString(e==null?void 0:e.group_id))!=null?a:this.readString(e==null?void 0:e.groupId))!=null?i:null,metadata:(l=o!=null?o:e)!=null?l:{}}}ensureTraceStateForSpan(t){var i,l;let e=this.traceStates.get(t.traceId);if(e)return e;let o=this.traceLikeFromSpan(t),s=this.resolveUpstreamTraceContext(o.metadata),a={rootSpan:{traceId:(i=s==null?void 0:s.traceId)!=null?i:R(t.traceId),spanId:W(t.traceId),name:o.name,kind:1,startTimeUnixNano:(l=T(t.startedAt))!=null?l:f(),parentSpanId:s==null?void 0:s.parentSpanId,traceState:s==null?void 0:s.traceState,attributes:j(o,this.includeRawPayloads),status:{code:I},events:[]},spans:new Map};return this.traceStates.set(t.traceId,a),a}createSpanRecord(t,e){var o,s,r,a;return{traceId:(s=(o=this.traceStates.get(t.traceId))==null?void 0:o.rootSpan.traceId)!=null?s:R(t.traceId),spanId:w(t.spanId),parentSpanId:t.parentId?w(t.parentId):e,name:M(t),kind:N(t),startTimeUnixNano:(r=T(t.startedAt))!=null?r:f(),traceState:(a=this.traceStates.get(t.traceId))==null?void 0:a.rootSpan.traceState,attributes:d({},L(t)),status:{code:I},events:[]}}statusForSpan(t){return t.error?{code:lt,message:t.error.message}:{code:it}}exportPayload(t){return u(this,null,function*(){let e=yield J(`${this.baseURL}/v1/traces`,{method:"POST",headers:d({"Content-Type":"application/json","X-API-KEY":this.apiKey,"X-PromptLayer-Integration":"openai-agents-js"},V()),body:JSON.stringify(t)});if(!e.ok)throw new Error(`Failed to export OpenAI Agents traces: ${e.status} ${e.statusText}`)})}startExportForTrace(t){if(this.pendingExports.has(t))return;let e=this.completedTraceQueue.get(t);if(!e)return;let o=this.exportPayload(e).then(()=>{this.completedTraceQueue.delete(t)}).catch(s=>{console.error(`Failed to export OpenAI Agents trace '${t}'.`,s)}).finally(()=>{this.pendingExports.delete(t)});this.pendingExports.set(t,o)}resolveUpstreamTraceContext(t){let e=this.asRecord(t);if(!e)return null;let o=e.traceparent;if(typeof o!="string"||!o.trim())return null;let s=o.trim().match(Jt);if(!s)return null;let[,r,a,i]=s,l=r.toLowerCase(),c=a.toLowerCase(),k=i.toLowerCase();if(l==="ff"||c===Yt||k===Xt)return null;let mt=typeof e.tracestate=="string"&&e.tracestate.trim()?e.tracestate.trim():void 0;return{traceId:c,parentSpanId:k,traceState:mt}}asRecord(t){return!t||typeof t!="object"||Array.isArray(t)?null:t}readString(t){return typeof t=="string"&&t.trim()?t:void 0}};var Zt=n=>{var t;return P((t=n!=null?n:C("PROMPTLAYER_BASE_URL"))!=null?t:"https://api.promptlayer.com")},_t=(...s)=>u(null,[...s],function*({apiKey:n,baseURL:t,exclusive:e=!0,includeRawPayloads:o=!0}={}){let r=Y(n),a=yield import("@openai/agents"),i=new h({apiKey:r,baseURL:Zt(t),includeRawPayloads:o});return e?a.setTraceProcessors([i]):a.addTraceProcessor(i),i});0&&(module.exports={PromptLayerOpenAIAgentsProcessor,instrumentOpenAIAgents});
1
+ "use strict";var ft=Object.create;var b=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames,G=Object.getOwnPropertySymbols,ht=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable;var z=(n,t,e)=>t in n?b(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,d=(n,t)=>{for(var e in t||(t={}))K.call(t,e)&&z(n,e,t[e]);if(G)for(var e of G(t))bt.call(t,e)&&z(n,e,t[e]);return n};var xt=(n,t)=>{for(var e in t)b(n,e,{get:t[e],enumerable:!0})},B=(n,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of yt(t))!K.call(n,s)&&s!==e&&b(n,s,{get:()=>t[s],enumerable:!(o=gt(t,s))||o.enumerable});return n};var O=(n,t,e)=>(e=n!=null?ft(ht(n)):{},B(t||!n||!n.__esModule?b(e,"default",{value:n,enumerable:!0}):e,n)),At=n=>B(b({},"__esModule",{value:!0}),n);var u=(n,t,e)=>new Promise((o,s)=>{var r=l=>{try{i(e.next(l))}catch(p){s(p)}},a=l=>{try{i(e.throw(l))}catch(p){s(p)}},i=l=>l.done?o(l.value):Promise.resolve(l.value).then(r,a);i((e=e.apply(n,t)).next())});var Qt={};xt(Qt,{PromptLayerOpenAIAgentsProcessor:()=>h,instrumentOpenAIAgents:()=>_t});module.exports=At(Qt);var wt=O(require("ably")),Pt=require("centrifuge"),V=O(require("p-retry"));var g="1.3.5",kt=()=>{var n;if(typeof process!="undefined"&&((n=process.versions)!=null&&n.node)){let t=process.versions.node.split(".");return`${t[0]}.${t[1]}`}return"unknown"},Ot=kt(),Et=`promptlayer-js/${g} (node ${Ot})`,J=()=>({"User-Agent":Et,"X-SDK-Version":g});var E=class extends Error{constructor(t,e){super(`Server error: ${t} ${e}`),this.name="PromptLayerRetryableHttpError",this.status=t,this.statusText=e}};var Y=(n,t)=>u(null,null,function*(){return(0,V.default)(()=>u(null,null,function*(){let e=yield fetch(n,t);if(e.status>=500&&e.status<600||e.status===429)throw new E(e.status,e.statusText);return e}),{retries:3,factor:2,minTimeout:2e3,maxTimeout:15e3,randomize:!0,onFailedAttempt:e=>{console.info(`PromptLayer API request attempt ${e.attemptNumber} failed. ${e.retriesLeft} retries left.`)}})});var C=n=>{var t,e,o,s,r,a;if(typeof globalThis.process!="undefined")return(o=(e=(t=globalThis.process.env)==null?void 0:t[n])==null?void 0:e.trim())!=null?o:void 0;if(typeof globalThis.Deno!="undefined")return(a=(r=(s=globalThis.Deno.env)==null?void 0:s.get)==null?void 0:r.call(s,n))==null?void 0:a.trim()},X=n=>{if(n!==void 0){let e=n.trim();if(!e)throw new Error("PromptLayer API key not provided. Please set PROMPTLAYER_API_KEY or pass apiKey.");return e}let t=C("PROMPTLAYER_API_KEY");if(!t)throw new Error("PromptLayer API key not provided. Please set PROMPTLAYER_API_KEY or pass apiKey.");return t};var Ct=1,Nt=3,c=n=>typeof n=="object"&&n!==null&&!Array.isArray(n),et=n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean",Mt=n=>n.replace(/[^a-zA-Z0-9_.-]/g,"_"),A=n=>n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean"?n:Array.isArray(n)?n.map(t=>A(t)):c(n)?Object.fromEntries(Object.entries(n).map(([t,e])=>[t,A(e)])):String(n),y=n=>{let t=e=>Array.isArray(e)?e.map(o=>t(o)):c(e)?Object.keys(e).sort().reduce((o,s)=>(o[s]=t(e[s]),o),{}):e;return JSON.stringify(t(A(n)))},_=(n,t,e)=>{e!=null&&e!==""&&(n[t]=String(e))},N=(n,t,e)=>{if(e!=null&&e!==""){let o=Number(e);Number.isNaN(o)||(n[t]=o)}},m=(n,t,e,o)=>{o&&e!==void 0&&e!==null&&(n[t]=y(e))},T=(n,t,e)=>{t.forEach((o,s)=>{Object.entries(o).forEach(([r,a])=>{e[`${n}.${s}.${r}`]=et(a)?a:y(a)})})},nt=n=>Array.isArray(n)?n.map(t=>{var r,a,i,l,p;if(!c(t))return null;let e=c(t.function)?t.function:null,o=(a=(r=e==null?void 0:e.name)!=null?r:t.name)!=null?a:"tool",s=(l=(i=e==null?void 0:e.arguments)!=null?i:t.arguments)!=null?l:{};if(typeof s=="string")try{s=JSON.parse(s)}catch(k){s=s}return{id:String((p=t.id)!=null?p:""),type:"tool_call",name:String(o),arguments:A(s)}}).filter(t=>t!==null):[],ot=n=>{var e,o;let t=(o=(e=n.call_id)!=null?e:n.callId)!=null?o:n.id;return t!=null?String(t):void 0},Lt=n=>{if(n==null)return;if(typeof n=="string")return n;if(Array.isArray(n)){let e=x(n);return e!=null?e:y(n)}if(c(n)){let e=x([n]);return e!=null?e:y(n)}let t=x(n);return t!==void 0?t:y(n)},Z=n=>{var e,o,s;let t=(e=n.arguments)!=null?e:{};if(typeof t=="string")try{t=JSON.parse(t)}catch(r){t=t}return{role:"assistant",tool_calls:[{id:(o=ot(n))!=null?o:"",type:"tool_call",name:String((s=n.name)!=null?s:"tool"),arguments:A(t)}]}},H=(n,t)=>{var r;let e=ot(n),o=Lt((r=t!=null?t:n.output)!=null?r:n.content);if(!e&&!o)return null;let s={role:"tool"};return e&&(s.tool_call_id=e),o!==void 0&&(s.content=o),s};function x(n){if(n!=null){if(typeof n=="string")return n;if(Array.isArray(n)){let t=n.map(e=>{var s;if(!c(e))return null;let o=e.type;if(o==="text"||o==="input_text"||o==="output_text"){let r=(s=e.text)!=null?s:e.content;return r!=null?String(r):null}return null}).filter(e=>e!==null);return t.length>0?t.join(`
2
+ `):void 0}return String(n)}}var Q=n=>Array.isArray(n)?n.map(t=>{if(!c(t))return null;let e={};t.role!==void 0&&(e.role=String(t.role));let o=x(t.content);o&&(e.content=o);let s=nt(t.tool_calls);return s.length>0&&(e.tool_calls=s),t.tool_call_id&&(e.tool_call_id=String(t.tool_call_id)),Object.keys(e).length>0?e:null}).filter(t=>t!==null):[],v=n=>{let t={},e=n.role,o=x(n.content),s=nt(n.tool_calls);return e!=null?t.role=String(e):(o||s.length>0)&&(t.role="assistant"),o&&(t.content=o),s.length>0&&(t.tool_calls=s),n.tool_call_id&&(t.tool_call_id=String(n.tool_call_id)),Object.keys(t).length>0?t:null},jt=n=>{let t=n.summary;if(typeof t=="string")return t;if(!Array.isArray(t))return;let e=t.map(o=>{var r;if(!c(o))return null;let s=(r=o.text)!=null?r:o.content;return s!=null?String(s):null}).filter(o=>o!==null&&o!=="");return e.length>0?e.join(`
3
+
4
+ `):void 0},qt=new Set(["function_call","computer_call","shell_call","apply_patch_call","custom_tool_call","mcp_call"]),Ut=new Set(["function_call_output","function_call_result","computer_call_output","computer_call_result","shell_call_output","apply_patch_call_output","custom_tool_call_output"]),tt=n=>typeof n=="string"?[{role:"user",content:n}]:Array.isArray(n)?n.flatMap(t=>{if(!c(t))return[];if(t.type==="reasoning"){let o=jt(t);return o?[{role:"assistant",thinking:o}]:[]}if(t.type==="message_output_item"&&c(t.rawItem)){let o=v(t.rawItem);return o?[o]:[]}if(t.type==="tool_call_item"&&c(t.rawItem)){let o=Z(t.rawItem);return o?[o]:[]}if(t.type==="tool_call_output_item"&&c(t.rawItem)){let o=H(t.rawItem,t.output);return o?[o]:[]}if(typeof t.type=="string"&&qt.has(t.type)){let o=Z(t);return o?[o]:[]}if(typeof t.type=="string"&&Ut.has(t.type)){let o=H(t);return o?[o]:[]}let e=v(t);return e?[e]:[]}).filter(t=>t!==null):[],st=(n,t)=>{var o,s;if(!c(t))return;N(n,"gen_ai.usage.input_tokens",(o=t.input_tokens)!=null?o:t.prompt_tokens),N(n,"gen_ai.usage.output_tokens",(s=t.output_tokens)!=null?s:t.completion_tokens);let e=c(t.output_tokens_details)?t.output_tokens_details:c(t.completion_tokens_details)?t.completion_tokens_details:void 0;N(n,"gen_ai.usage.reasoning.output_tokens",e==null?void 0:e.reasoning_tokens)},$t=(n,t)=>{let e={node_type:"LLM_CALL","gen_ai.provider.name":"openai.responses"};return _(e,"gen_ai.request.model",n.model),st(e,n.usage),T("gen_ai.prompt",Q(n.input),e),T("gen_ai.completion",Q(n.output),e),m(e,"openai_agents.model_config_json",n.model_config,t),m(e,"openai_agents.generation.raw_input_json",n.input,t),m(e,"openai_agents.generation.raw_output_json",n.output,t),e},Wt=(n,t)=>{var r,a,i;let e={node_type:"LLM_CALL","gen_ai.provider.name":"openai.responses"},o=c(n._response)?n._response:{},s=c(o.usage)?o.usage:void 0;return _(e,"gen_ai.request.model",o.model),_(e,"gen_ai.response.model",o.model),_(e,"gen_ai.response.id",(a=(r=n.response_id)!=null?r:o.id)!=null?a:o.response_id),st(e,s),T("gen_ai.prompt",tt((i=n._input)!=null?i:o.input),e),T("gen_ai.completion",tt(o.output),e),m(e,"openai_agents.response.raw_json",o,t),_(e,"openai_agents.response.object",o.object),e},Ft=(n,t)=>{let e={node_type:"CODE_EXECUTION",tool_name:n.name,"openai_agents.function.name":n.name};return _(e,"function_input",n.input),_(e,"function_output",n.output),_(e,"openai_agents.function.input",n.input),_(e,"openai_agents.function.output",n.output),m(e,"openai_agents.function.mcp_data_json",n.mcp_data,t),e},Gt=(n,t)=>{let e={node_type:"LLM_SESSION","openai_agents.agent.name":n.name};return _(e,"openai_agents.agent.output_type",n.output_type),m(e,"openai_agents.agent.handoffs_json",n.handoffs,t),m(e,"openai_agents.agent.tools_json",n.tools,t),e},zt=n=>{let t={};return _(t,"openai_agents.handoff.from_agent",n.from_agent),_(t,"openai_agents.handoff.to_agent",n.to_agent),t},Kt=n=>({"openai_agents.guardrail.name":n.name,"openai_agents.guardrail.triggered":n.triggered}),Bt=(n,t)=>{let e={"openai_agents.custom.name":n.name};return m(e,"openai_agents.custom.data_json",n.data,t),e},Dt=(n,t)=>t?{"openai_agents.raw_json":y(n)}:{},rt=()=>g,M=n=>n.spanData.type==="generation"||n.spanData.type==="response"?Nt:Ct,L=n=>{switch(n.spanData.type){case"function":return`Tool: ${n.spanData.name}`;case"generation":case"response":return"LLM call";case"agent":return"LLM session";case"guardrail":return`Guardrail: ${n.spanData.name}`;case"custom":return String(n.spanData.name);default:return n.spanData.type.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}},j=(n,t)=>{let e={node_type:"LLM_SESSION","promptlayer.telemetry.source":"openai-agents-js","promptlayer.telemetry.source_version":rt(),"openai_agents.trace_id_original":n.traceId,"openai_agents.workflow_name":n.name};return n.groupId&&(e["openai_agents.group_id"]=n.groupId),c(n.metadata)&&(Object.entries(n.metadata).forEach(([o,s])=>{et(s)&&(e[`openai_agents.metadata.${Mt(o)}`]=s)}),m(e,"openai_agents.metadata_json",n.metadata,t)),e},q=n=>{let t={"promptlayer.telemetry.source":"openai-agents-js","promptlayer.telemetry.source_version":rt(),"openai_agents.span_id_original":n.spanId,"openai_agents.span_type":n.spanData.type};return n.parentId&&(t["openai_agents.parent_id_original"]=n.parentId),t},at=(n,t)=>{switch(n.type){case"generation":return $t(n,t);case"response":return Wt(n,t);case"function":return Ft(n,t);case"agent":return Gt(n,t);case"handoff":return zt(n);case"guardrail":return Kt(n);case"custom":return Bt(n,t);default:return Dt(n,t)}},I=0,it=1,lt=2;var $=n=>typeof n=="string"?{stringValue:n}:typeof n=="boolean"?{boolValue:n}:typeof n=="number"?Number.isInteger(n)?{intValue:String(n)}:{doubleValue:n}:n===null?{stringValue:"null"}:Array.isArray(n)?{arrayValue:{values:n.map(t=>$(t))}}:{kvlistValue:{values:Object.entries(n).map(([t,e])=>({key:t,value:$(e)}))}},U=n=>Object.entries(n).map(([t,e])=>({key:t,value:$(e)})),ct=(n,{serviceName:t="promptlayer-openai-agents-js",scopeName:e="promptlayer.integrations.openai_agents",scopeVersion:o=g}={})=>({resourceSpans:[{resource:{attributes:U({"service.name":t})},scopeSpans:[{scope:{name:e,version:o},spans:n.map(s=>{var a,i;let r={traceId:s.traceId,spanId:s.spanId,name:s.name,kind:s.kind,startTimeUnixNano:s.startTimeUnixNano,endTimeUnixNano:(a=s.endTimeUnixNano)!=null?a:s.startTimeUnixNano,attributes:U(s.attributes),events:((i=s.events)!=null?i:[]).map(l=>{var p;return{name:l.name,timeUnixNano:l.timeUnixNano,attributes:U((p=l.attributes)!=null?p:{})}}),links:[]};return s.parentSpanId&&(r.parentSpanId=s.parentSpanId),s.traceState&&(r.traceState=s.traceState),s.status&&(r.status=d({code:s.status.code},s.status.message?{message:s.status.message}:{})),r})}]}]});var pt=require("crypto"),Vt=/^[0-9a-f]{32}$/i,W=n=>(0,pt.createHash)("sha256").update(n,"utf8").digest("hex"),R=n=>{let t=n.startsWith("trace_")?n.slice(6):n;return Vt.test(t)?t.toLowerCase():W(n).slice(0,32)},w=n=>W(n).slice(0,16),F=n=>W(`${n}:root`).slice(0,16);var Jt=/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(?:\.(\d{1,9}))?(Z|[+-]\d{2}:\d{2})?$/,f=()=>(BigInt(Date.now())*BigInt(1e6)).toString(),S=n=>{if(!n)return;let t=Jt.exec(n);if(!t){let i=Date.parse(n);return Number.isNaN(i)?void 0:(BigInt(i)*BigInt(1e6)).toString()}let[,e,o="",s="Z"]=t,r=Date.parse(`${e}${s}`);if(Number.isNaN(r))return;let a=BigInt((o+"000000000").slice(0,9));return(BigInt(r)*BigInt(1e6)+a).toString()},ut=(...n)=>{let t=n.filter(e=>e!==void 0);return t.length===0?f():t.reduce((e,o)=>BigInt(o)<BigInt(e)?o:e)},dt=(...n)=>{let t=n.filter(e=>e!==void 0);return t.length===0?f():t.reduce((e,o)=>BigInt(o)>BigInt(e)?o:e)};var P=n=>{let t=n.length;for(;t>0&&n.charCodeAt(t-1)===47;)t-=1;return n.slice(0,t)};var Yt=/^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/i,Xt="0".repeat(32),Zt="0".repeat(16),h=class{constructor({apiKey:t,baseURL:e,includeRawPayloads:o=!0}){this.traceStates=new Map;this.completedTraceQueue=new Map;this.pendingExports=new Map;this.apiKey=t,this.baseURL=P(e),this.includeRawPayloads=o}start(){}onTraceStart(t){return u(this,null,function*(){var s;if(this.traceStates.has(t.traceId))return;let e=this.resolveUpstreamTraceContext(t.metadata),o=(s=e==null?void 0:e.traceId)!=null?s:R(t.traceId);this.traceStates.set(t.traceId,{rootSpan:{traceId:o,spanId:F(t.traceId),name:"OpenAI session",kind:1,startTimeUnixNano:f(),parentSpanId:e==null?void 0:e.parentSpanId,traceState:e==null?void 0:e.traceState,attributes:j(t,this.includeRawPayloads),status:{code:I},events:[]},spans:new Map})})}onTraceEnd(t){return u(this,null,function*(){let e=this.traceStates.get(t.traceId);if(!e)return;let o=Array.from(e.spans.values()).sort((l,p)=>BigInt(l.startTimeUnixNano)<BigInt(p.startTimeUnixNano)?-1:1),s=o.map(l=>l.startTimeUnixNano),r=o.map(l=>{var p;return(p=l.endTimeUnixNano)!=null?p:l.startTimeUnixNano}),a=dt(f(),...r);e.rootSpan.startTimeUnixNano=ut(e.rootSpan.startTimeUnixNano,...s),e.rootSpan.endTimeUnixNano=a;let i=ct([e.rootSpan,...o]);this.traceStates.delete(t.traceId),this.completedTraceQueue.set(t.traceId,i),this.startExportForTrace(t.traceId)})}onSpanStart(t){return u(this,null,function*(){var r;let e=this.ensureTraceStateForSpan(t),o=e.spans.get(t.spanId),s=o!=null?o:this.createSpanRecord(t,e.rootSpan.spanId);s.traceId=e.rootSpan.traceId,s.traceState=e.rootSpan.traceState,s.name=L(t),s.kind=M(t),s.startTimeUnixNano=(r=S(t.startedAt))!=null?r:s.startTimeUnixNano,s.parentSpanId=t.parentId?w(t.parentId):e.rootSpan.spanId,s.attributes=d(d({},s.attributes),q(t)),e.spans.set(t.spanId,s)})}onSpanEnd(t){return u(this,null,function*(){var s,r,a,i;let e=this.ensureTraceStateForSpan(t),o=(s=e.spans.get(t.spanId))!=null?s:this.createSpanRecord(t,e.rootSpan.spanId);o.attributes=d(d({},o.attributes),at(t.spanData,this.includeRawPayloads)),o.endTimeUnixNano=(a=(r=S(t.endedAt))!=null?r:o.endTimeUnixNano)!=null?a:f(),o.status=this.statusForSpan(t),t.error&&(o.events=[...(i=o.events)!=null?i:[],{name:"exception",timeUnixNano:o.endTimeUnixNano,attributes:{"exception.type":"OpenAIAgentsError","exception.message":t.error.message,"openai_agents.error_json":JSON.stringify(t.error)}}]),e.spans.set(t.spanId,o)})}shutdown(){return u(this,null,function*(){yield this.forceFlush()})}forceFlush(){return u(this,null,function*(){for(let t=0;t<2;t+=1){for(let e of this.completedTraceQueue.keys())this.startExportForTrace(e);if(this.pendingExports.size===0||(yield Promise.all(Array.from(this.pendingExports.values())),this.completedTraceQueue.size===0))return}})}traceLikeFromSpan(t){var s,r,a,i,l;let e=this.asRecord(t.traceMetadata),o=this.asRecord(e==null?void 0:e.metadata);return{traceId:t.traceId,name:(r=(s=this.readString(e==null?void 0:e.workflow_name))!=null?s:this.readString(e==null?void 0:e.workflowName))!=null?r:"OpenAI Agents Trace",groupId:(i=(a=this.readString(e==null?void 0:e.group_id))!=null?a:this.readString(e==null?void 0:e.groupId))!=null?i:null,metadata:(l=o!=null?o:e)!=null?l:{}}}ensureTraceStateForSpan(t){var i,l;let e=this.traceStates.get(t.traceId);if(e)return e;let o=this.traceLikeFromSpan(t),s=this.resolveUpstreamTraceContext(o.metadata),a={rootSpan:{traceId:(i=s==null?void 0:s.traceId)!=null?i:R(t.traceId),spanId:F(t.traceId),name:"OpenAI session",kind:1,startTimeUnixNano:(l=S(t.startedAt))!=null?l:f(),parentSpanId:s==null?void 0:s.parentSpanId,traceState:s==null?void 0:s.traceState,attributes:j(o,this.includeRawPayloads),status:{code:I},events:[]},spans:new Map};return this.traceStates.set(t.traceId,a),a}createSpanRecord(t,e){var o,s,r,a;return{traceId:(s=(o=this.traceStates.get(t.traceId))==null?void 0:o.rootSpan.traceId)!=null?s:R(t.traceId),spanId:w(t.spanId),parentSpanId:t.parentId?w(t.parentId):e,name:L(t),kind:M(t),startTimeUnixNano:(r=S(t.startedAt))!=null?r:f(),traceState:(a=this.traceStates.get(t.traceId))==null?void 0:a.rootSpan.traceState,attributes:d({},q(t)),status:{code:I},events:[]}}statusForSpan(t){return t.error?{code:lt,message:t.error.message}:{code:it}}exportPayload(t){return u(this,null,function*(){let e=yield Y(`${this.baseURL}/v1/traces`,{method:"POST",headers:d({"Content-Type":"application/json","X-API-KEY":this.apiKey,"X-PromptLayer-Integration":"openai-agents-js"},J()),body:JSON.stringify(t)});if(!e.ok)throw new Error(`Failed to export OpenAI Agents traces: ${e.status} ${e.statusText}`)})}startExportForTrace(t){if(this.pendingExports.has(t))return;let e=this.completedTraceQueue.get(t);if(!e)return;let o=this.exportPayload(e).then(()=>{this.completedTraceQueue.delete(t)}).catch(s=>{console.error(`Failed to export OpenAI Agents trace '${t}'.`,s)}).finally(()=>{this.pendingExports.delete(t)});this.pendingExports.set(t,o)}resolveUpstreamTraceContext(t){let e=this.asRecord(t);if(!e)return null;let o=e.traceparent;if(typeof o!="string"||!o.trim())return null;let s=o.trim().match(Yt);if(!s)return null;let[,r,a,i]=s,l=r.toLowerCase(),p=a.toLowerCase(),k=i.toLowerCase();if(l==="ff"||p===Xt||k===Zt)return null;let mt=typeof e.tracestate=="string"&&e.tracestate.trim()?e.tracestate.trim():void 0;return{traceId:p,parentSpanId:k,traceState:mt}}asRecord(t){return!t||typeof t!="object"||Array.isArray(t)?null:t}readString(t){return typeof t=="string"&&t.trim()?t:void 0}};var Ht=n=>{var t;return P((t=n!=null?n:C("PROMPTLAYER_BASE_URL"))!=null?t:"https://api.promptlayer.com")},_t=(...s)=>u(null,[...s],function*({apiKey:n,baseURL:t,exclusive:e=!0,includeRawPayloads:o=!0}={}){let r=X(n),a=yield import("@openai/agents"),i=new h({apiKey:r,baseURL:Ht(t),includeRawPayloads:o});return e?a.setTraceProcessors([i]):a.addTraceProcessor(i),i});0&&(module.exports={PromptLayerOpenAIAgentsProcessor,instrumentOpenAIAgents});
3
5
  //# sourceMappingURL=openai-agents.js.map