@elizaos/plugin-openai 2.0.0-alpha.13 → 2.0.0-alpha.14

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,3 @@
1
- import{logger as l,ModelType as P}from"@elizaos/core";import{logger as L}from"@elizaos/core";import{logger as _}from"@elizaos/core";function Lo(o){if(typeof process>"u"||!process.env)return;let n=process.env[o];return n===void 0?void 0:String(n)}function w(o,n,c){let r=o.getSetting(n);if(r!==void 0&&r!==null)return String(r);return Lo(n)??c}function x(o,n,c){let r=w(o,n);if(r===void 0)return c;let f=Number.parseInt(r,10);if(!Number.isFinite(f))throw Error(`Setting '${n}' must be a valid integer, got: ${r}`);return f}function v(o,n,c){let r=w(o,n);if(r===void 0)return c;let f=r.toLowerCase();return f==="true"||f==="1"||f==="yes"}function j(){return typeof globalThis<"u"&&typeof globalThis.document<"u"}function g(o){return j()&&!!w(o,"OPENAI_BROWSER_BASE_URL")}function y(o){return w(o,"OPENAI_API_KEY")}function Ko(o){let n=w(o,"OPENAI_EMBEDDING_API_KEY");if(n)return _.debug("[OpenAI] Using specific embedding API key"),n;return _.debug("[OpenAI] Falling back to general API key for embeddings"),y(o)}function R(o,n=!1){if(j()&&!v(o,"OPENAI_ALLOW_BROWSER_API_KEY",!1))return{};let c=n?Ko(o):y(o);return c?{Authorization:`Bearer ${c}`}:{}}function O(o){let n=w(o,"OPENAI_BROWSER_BASE_URL"),c=j()&&n?n:w(o,"OPENAI_BASE_URL")??"https://api.openai.com/v1";return _.debug(`[OpenAI] Base URL: ${c}`),c}function u(o){let n=j()?w(o,"OPENAI_BROWSER_EMBEDDING_URL")??w(o,"OPENAI_BROWSER_BASE_URL"):w(o,"OPENAI_EMBEDDING_URL");if(n)return _.debug(`[OpenAI] Using embedding base URL: ${n}`),n;return _.debug("[OpenAI] Falling back to general base URL for embeddings"),O(o)}function F(o){return w(o,"OPENAI_SMALL_MODEL")??w(o,"SMALL_MODEL")??"gpt-5-mini"}function d(o){return w(o,"OPENAI_LARGE_MODEL")??w(o,"LARGE_MODEL")??"gpt-5"}function m(o){return w(o,"OPENAI_EMBEDDING_MODEL")??"text-embedding-3-small"}function oo(o){return w(o,"OPENAI_IMAGE_DESCRIPTION_MODEL")??"gpt-5-mini"}function no(o){return w(o,"OPENAI_TRANSCRIPTION_MODEL")??"gpt-5-mini-transcribe"}function co(o){return w(o,"OPENAI_TTS_MODEL")??"tts-1"}function ro(o){return w(o,"OPENAI_TTS_VOICE")??"nova"}function fo(o){return w(o,"OPENAI_TTS_INSTRUCTIONS")??""}function To(o){return w(o,"OPENAI_IMAGE_MODEL")??"dall-e-3"}function io(o){return v(o,"OPENAI_EXPERIMENTAL_TELEMETRY",!1)}function ko(o){return x(o,"OPENAI_EMBEDDING_DIMENSIONS",1536)}function Ao(o){return x(o,"OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS",8192)}function to(o){return w(o,"OPENAI_RESEARCH_MODEL")??"o3-deep-research"}function Io(o){return x(o,"OPENAI_RESEARCH_TIMEOUT",3600000)}globalThis.AI_SDK_LOG_WARNINGS??=!1;function Po(o,n){xo(n)}async function xo(o){if(j()){L.debug("[OpenAI] Skipping API validation in browser environment");return}if(!y(o)){L.warn("[OpenAI] OPENAI_API_KEY is not configured. OpenAI functionality will fail until a valid API key is provided.");return}try{let c=O(o),r=await fetch(`${c}/models`,{headers:R(o)});if(!r.ok){L.warn(`[OpenAI] API key validation failed: ${r.status} ${r.statusText}. Please verify your OPENAI_API_KEY is correct.`);return}}catch(c){let r=c instanceof Error?c.message:String(c);L.warn(`[OpenAI] API validation error: ${r}. OpenAI functionality may be limited.`)}}import{logger as U}from"@elizaos/core";import{logger as Xo}from"@elizaos/core";var $={WAV:{HEADER:[82,73,70,70],IDENTIFIER:[87,65,86,69]},MP3_ID3:[73,68,51],OGG:[79,103,103,83],FLAC:[102,76,97,67],FTYP:[102,116,121,112],WEBM_EBML:[26,69,223,163]},Do=12;function b(o,n,c){for(let r=0;r<c.length;r++){let f=c[r];if(f===void 0||o[n+r]!==f)return!1}return!0}function X(o){if(o.length<Do)return"application/octet-stream";if(b(o,0,$.WAV.HEADER)&&b(o,8,$.WAV.IDENTIFIER))return"audio/wav";let n=o[0],c=o[1];if(b(o,0,$.MP3_ID3)||n===255&&c!==void 0&&(c&224)===224)return"audio/mpeg";if(b(o,0,$.OGG))return"audio/ogg";if(b(o,0,$.FLAC))return"audio/flac";if(b(o,4,$.FTYP))return"audio/mp4";if(b(o,0,$.WEBM_EBML))return"audio/webm";return Xo.warn("Could not detect audio format from buffer, using generic binary type"),"application/octet-stream"}function Wo(o){switch(o){case"audio/wav":return"wav";case"audio/mpeg":return"mp3";case"audio/ogg":return"ogg";case"audio/flac":return"flac";case"audio/mp4":return"m4a";case"audio/webm":return"webm";case"application/octet-stream":return"bin"}}function po(o){return`recording.${Wo(o)}`}function so(o){return o instanceof Blob||o instanceof File}function D(o){return Buffer.isBuffer(o)}function Co(o){return typeof o==="object"&&o!==null&&"audio"in o&&(so(o.audio)||D(o.audio))}function Ho(o){return typeof o==="object"&&o!==null&&"audioUrl"in o&&typeof o.audioUrl==="string"}async function wo(o){let n=await fetch(o);if(!n.ok)throw Error(`Failed to fetch audio from URL: ${n.status}`);return n.blob()}async function W(o,n){let c=no(o),r,f={};if(typeof n==="string")U.debug(`[OpenAI] Fetching audio from URL: ${n}`),r=await wo(n);else if(so(n))r=n;else if(D(n)){let I=X(n);U.debug(`[OpenAI] Auto-detected audio MIME type: ${I}`),r=new Blob([new Uint8Array(n)],{type:I})}else if(Co(n)){if(f=n,n.model)c=n.model;if(D(n.audio)){let I=n.mimeType??X(n.audio);U.debug(`[OpenAI] Using MIME type: ${I}`),r=new Blob([new Uint8Array(n.audio)],{type:I})}else r=n.audio}else if(Ho(n))U.debug(`[OpenAI] Fetching audio from URL: ${n.audioUrl}`),r=await wo(n.audioUrl),f={prompt:n.prompt};else throw Error("TRANSCRIPTION expects Blob, File, Buffer, URL string, or TranscriptionParams object");U.debug(`[OpenAI] Using TRANSCRIPTION model: ${c}`);let T=r.type||"audio/webm",A=r.name||po(T.startsWith("audio/")?T:"audio/webm"),k=new FormData;if(k.append("file",r,A),k.append("model",c),f.language)k.append("language",f.language);if(f.responseFormat)k.append("response_format",f.responseFormat);if(f.prompt)k.append("prompt",f.prompt);if(f.temperature!==void 0)k.append("temperature",String(f.temperature));if(f.timestampGranularities)for(let I of f.timestampGranularities)k.append("timestamp_granularities[]",I);let t=O(o),i=await fetch(`${t}/audio/transcriptions`,{method:"POST",headers:R(o),body:k});if(!i.ok){let I=await i.text().catch(()=>"Unknown error");throw Error(`OpenAI transcription failed: ${i.status} ${i.statusText} - ${I}`)}return(await i.json()).text}async function C(o,n){let c,r,f="mp3",T,A;if(typeof n==="string")c=n,r=void 0;else{if(c=n.text,r=n.voice,"format"in n&&n.format)f=n.format;if("model"in n&&n.model)T=n.model;if("instructions"in n&&n.instructions)A=n.instructions}if(T=T??co(o),r=r??ro(o),A=A??fo(o),U.debug(`[OpenAI] Using TEXT_TO_SPEECH model: ${T}`),!c||c.trim().length===0)throw Error("TEXT_TO_SPEECH requires non-empty text");if(c.length>4096)throw Error("TEXT_TO_SPEECH text exceeds 4096 character limit");let k=["alloy","echo","fable","onyx","nova","shimmer"];if(r&&!k.includes(r))throw Error(`Invalid voice: ${r}. Must be one of: ${k.join(", ")}`);let t=O(o),i={model:T,voice:r,input:c,response_format:f};if(A&&A.length>0)i.instructions=A;let p=await fetch(`${t}/audio/speech`,{method:"POST",headers:{...R(o),"Content-Type":"application/json",...f==="mp3"?{Accept:"audio/mpeg"}:{}},body:JSON.stringify(i)});if(!p.ok){let I=await p.text().catch(()=>"Unknown error");throw Error(`OpenAI TTS failed: ${p.status} ${p.statusText} - ${I}`)}return p.arrayBuffer()}import{logger as K,ModelType as Zo,VECTOR_DIMS as Yo}from"@elizaos/core";import{EventType as Vo}from"@elizaos/core";var Oo=200;function Qo(o){if(o.length<=Oo)return o;return`${o.slice(0,Oo)}…`}function Go(o){if("promptTokens"in o){let n="promptTokensDetails"in o?o.promptTokensDetails:void 0,c=o.cachedPromptTokens??n?.cachedTokens;return{promptTokens:o.promptTokens??0,completionTokens:o.completionTokens??0,totalTokens:o.totalTokens??(o.promptTokens??0)+(o.completionTokens??0),cachedPromptTokens:c}}if("inputTokens"in o||"outputTokens"in o){let n=o.inputTokens??0,c=o.outputTokens??0,r=o.totalTokens??n+c;return{promptTokens:n,completionTokens:c,totalTokens:r,cachedPromptTokens:o.cachedInputTokens}}return{promptTokens:0,completionTokens:0,totalTokens:0}}function J(o,n,c,r){let f=Go(r),T={runtime:o,source:"openai",provider:"openai",type:n,prompt:Qo(c),tokens:{prompt:f.promptTokens,completion:f.completionTokens,total:f.totalTokens,...f.cachedPromptTokens!==void 0?{cached:f.cachedPromptTokens}:{}}};o.emitEvent(Vo.MODEL_USED,T)}function qo(o){let n=Object.values(Yo);if(!n.includes(o))throw Error(`Invalid embedding dimension: ${o}. Must be one of: ${n.join(", ")}`);return o}function Mo(o){if(o===null)return null;if(typeof o==="string")return o;if(typeof o==="object"&&typeof o.text==="string")return o.text;throw Error("Invalid embedding params: expected string, { text: string }, or null")}async function H(o,n){let c=m(o),r=qo(ko(o)),f=Mo(n);if(f===null){K.debug("[OpenAI] Creating test embedding for initialization");let N=Array(r).fill(0);return N[0]=0.1,N}let T=f.trim();if(T.length===0)throw Error("Cannot generate embedding for empty text");let A=32000;if(T.length>A)K.warn(`[OpenAI] Embedding input too long (~${Math.ceil(T.length/4)} tokens), truncating to ~8000 tokens`),T=T.slice(0,A);let t=`${u(o)}/embeddings`;K.debug(`[OpenAI] Generating embedding with model: ${c}`);let i=await fetch(t,{method:"POST",headers:{...R(o,!0),"Content-Type":"application/json"},body:JSON.stringify({model:c,input:T})});if(!i.ok){let N=await i.text().catch(()=>"Unknown error");throw Error(`OpenAI embedding API error: ${i.status} ${i.statusText} - ${N}`)}let p=await i.json(),I=p?.data?.[0];if(!I||!I.embedding)throw Error("OpenAI API returned invalid embedding response structure");let s=I.embedding;if(s.length!==r)throw Error(`Embedding dimension mismatch: got ${s.length}, expected ${r}. Check OPENAI_EMBEDDING_DIMENSIONS setting.`);if(p.usage)J(o,Zo.TEXT_EMBEDDING,T,{promptTokens:p.usage.prompt_tokens,completionTokens:0,totalTokens:p.usage.total_tokens});return K.debug(`[OpenAI] Generated embedding with ${s.length} dimensions`),s}import{logger as Ro,ModelType as eo}from"@elizaos/core";var ho="Please analyze this image and provide a title and detailed description.";async function V(o,n){let c=To(o),r=n.count??1,f=n.size??"1024x1024",T=n;if(Ro.debug(`[OpenAI] Using IMAGE model: ${c}`),!n.prompt||n.prompt.trim().length===0)throw Error("IMAGE generation requires a non-empty prompt");if(r<1||r>10)throw Error("IMAGE count must be between 1 and 10");let A=O(o),k={model:c,prompt:n.prompt,n:r,size:f};if(T.quality)k.quality=T.quality;if(T.style)k.style=T.style;let t=await fetch(`${A}/images/generations`,{method:"POST",headers:{...R(o),"Content-Type":"application/json"},body:JSON.stringify(k)});if(!t.ok){let p=await t.text().catch(()=>"Unknown error");throw Error(`OpenAI image generation failed: ${t.status} ${t.statusText} - ${p}`)}let i=await t.json();if(!i.data||i.data.length===0)throw Error("OpenAI API returned no images");return i.data.map((p)=>({url:p.url,revisedPrompt:p.revised_prompt}))}function Bo(o){return o.match(/title[:\s]+(.+?)(?:\n|$)/i)?.[1]?.trim()??"Image Analysis"}function ao(o){return o.replace(/title[:\s]+(.+?)(?:\n|$)/i,"").trim()}async function Q(o,n){let c=oo(o),r=Ao(o);Ro.debug(`[OpenAI] Using IMAGE_DESCRIPTION model: ${c}`);let f,T;if(typeof n==="string")f=n,T=ho;else f=n.imageUrl,T=n.prompt??ho;if(!f||f.trim().length===0)throw Error("IMAGE_DESCRIPTION requires a valid image URL");let A=O(o),k={model:c,messages:[{role:"user",content:[{type:"text",text:T},{type:"image_url",image_url:{url:f}}]}],max_tokens:r},t=await fetch(`${A}/chat/completions`,{method:"POST",headers:{...R(o),"Content-Type":"application/json"},body:JSON.stringify(k)});if(!t.ok){let s=await t.text().catch(()=>"Unknown error");throw Error(`OpenAI image description failed: ${t.status} ${t.statusText} - ${s}`)}let i=await t.json();if(i.usage)J(o,eo.IMAGE_DESCRIPTION,typeof n==="string"?n:n.prompt??"",{promptTokens:i.usage.prompt_tokens,completionTokens:i.usage.completion_tokens,totalTokens:i.usage.total_tokens});let I=i.choices?.[0]?.message?.content;if(!I)throw Error("OpenAI API returned empty image description");return{title:Bo(I),description:ao(I)}}import{logger as Jo,ModelType as Eo}from"@elizaos/core";import{generateObject as mo}from"ai";import{createOpenAI as lo}from"@ai-sdk/openai";var vo="sk-proxy";function z(o){let n=O(o),c=y(o);if(!c&&g(o))return lo({apiKey:vo,baseURL:n});if(!c)throw Error("OPENAI_API_KEY is required. Set it in your environment variables or runtime settings.");return lo({apiKey:c,baseURL:n})}import{logger as No}from"@elizaos/core";import{JSONParseError as go}from"ai";var uo={MARKDOWN_JSON:/```json\n|\n```|```/g,WHITESPACE:/^\s+|\s+$/g};function yo(){return async({text:o,error:n})=>{if(!(n instanceof go))return null;try{let c=o.replace(uo.MARKDOWN_JSON,"");return JSON.parse(c),No.debug("[JSON Repair] Successfully repaired JSON by removing markdown wrappers"),c}catch{return No.warn("[JSON Repair] Unable to repair JSON text"),null}}}async function So(o,n,c,r){let f=z(o),T=r(o);if(Jo.debug(`[OpenAI] Using ${c} model: ${T}`),!n.prompt||n.prompt.trim().length===0)throw Error("Object generation requires a non-empty prompt");if(n.schema)Jo.debug("[OpenAI] Schema provided but using no-schema mode. Structure is determined by prompt instructions.");let A=f.chat(T),{object:k,usage:t}=await mo({model:A,output:"no-schema",prompt:n.prompt,experimental_repairText:yo()});if(t)J(o,c,n.prompt,t);if(typeof k!=="object"||k===null)throw Error(`Object generation returned ${typeof k}, expected object`);return k}async function G(o,n){return So(o,n,Eo.OBJECT_SMALL,F)}async function Z(o,n){return So(o,n,Eo.OBJECT_LARGE,d)}import{logger as E}from"@elizaos/core";function on(o){switch(o.type){case"web_search_preview":return{type:"web_search_preview"};case"file_search":return{type:"file_search",vector_store_ids:o.vectorStoreIds};case"code_interpreter":return{type:"code_interpreter",container:o.container??{type:"auto"}};case"mcp":return{type:"mcp",server_label:o.serverLabel,server_url:o.serverUrl,require_approval:o.requireApproval??"never"};default:throw Error(`Unknown research tool type: ${o.type}`)}}function nn(o){switch(o.type){case"web_search_call":return{id:o.id??"",type:"web_search_call",status:o.status??"completed",action:{type:o.action?.type??"search",query:o.action?.query,url:o.action?.url}};case"file_search_call":return{id:o.id??"",type:"file_search_call",status:o.status??"completed",query:o.query??"",results:o.results?.map((n)=>({fileId:n.file_id,fileName:n.file_name,score:n.score}))};case"code_interpreter_call":return{id:o.id??"",type:"code_interpreter_call",status:o.status??"completed",code:o.code??"",output:o.output};case"mcp_tool_call":return{id:o.id??"",type:"mcp_tool_call",status:o.status??"completed",serverLabel:o.server_label??"",toolName:o.tool_name??"",arguments:o.arguments??{},result:o.result};case"message":return{type:"message",content:o.content?.map((n)=>({type:"output_text",text:n.text,annotations:n.annotations?.map((c)=>({url:c.url,title:c.title,startIndex:c.start_index,endIndex:c.end_index}))??[]}))??[]};default:return null}}function cn(o){if(o.output_text){let r=[];if(o.output){for(let f of o.output)if(f.type==="message"&&f.content){for(let T of f.content)if(T.annotations)for(let A of T.annotations)r.push({url:A.url,title:A.title,startIndex:A.start_index,endIndex:A.end_index})}}return{text:o.output_text,annotations:r}}let n="",c=[];if(o.output){for(let r of o.output)if(r.type==="message"&&r.content){for(let f of r.content)if(n+=f.text,f.annotations)for(let T of f.annotations)c.push({url:T.url,title:T.title,startIndex:T.start_index,endIndex:T.end_index})}}return{text:n,annotations:c}}async function Y(o,n){let c=y(o);if(!c)throw Error("OPENAI_API_KEY is required for deep research. Set it in your environment variables or runtime settings.");let r=O(o),f=n.model??to(o),T=Io(o);E.debug(`[OpenAI] Starting deep research with model: ${f}`),E.debug(`[OpenAI] Research input: ${n.input.substring(0,100)}...`);let A=n.tools?.filter((S)=>S.type==="web_search_preview"||S.type==="file_search"||S.type==="mcp");if(!A||A.length===0)E.debug("[OpenAI] No data source tools specified, defaulting to web_search_preview"),n.tools=[{type:"web_search_preview"},...n.tools??[]];let k={model:f,input:n.input};if(n.instructions)k.instructions=n.instructions;if(n.background!==void 0)k.background=n.background;if(n.tools&&n.tools.length>0)k.tools=n.tools.map(on);if(n.maxToolCalls!==void 0)k.max_tool_calls=n.maxToolCalls;if(n.reasoningSummary)k.reasoning={summary:n.reasoningSummary};E.debug(`[OpenAI] Research request body: ${JSON.stringify(k,null,2)}`);let t=await fetch(`${r}/responses`,{method:"POST",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json"},body:JSON.stringify(k),signal:AbortSignal.timeout(T)});if(!t.ok){let S=await t.text();throw E.error(`[OpenAI] Research request failed: ${t.status} ${S}`),Error(`Deep research request failed: ${t.status} ${t.statusText}`)}let i=await t.json();if(i.error)throw E.error(`[OpenAI] Research API error: ${i.error.message}`),Error(`Deep research error: ${i.error.message}`);E.debug(`[OpenAI] Research response received. Status: ${i.status??"completed"}`);let{text:p,annotations:I}=cn(i),s=[];if(i.output)for(let S of i.output){let a=nn(S);if(a)s.push(a)}let N={id:i.id,text:p,annotations:I,outputItems:s,status:i.status};return E.info(`[OpenAI] Research completed. Text length: ${p.length}, Annotations: ${I.length}, Output items: ${s.length}`),N}import{logger as rn,ModelType as $o}from"@elizaos/core";import{generateText as fn,streamText as Tn}from"ai";function kn(o){if(!o)return;let n=o.inputTokens??0,c=o.outputTokens??0,r=o;return{promptTokens:n,completionTokens:c,totalTokens:n+c,cachedPromptTokens:r.cachedInputTokens}}function An(o){let n=o;return{promptCacheKey:n.providerOptions?.openai?.promptCacheKey,promptCacheRetention:n.providerOptions?.openai?.promptCacheRetention}}async function bo(o,n,c,r){let f=z(o),T=r(o);rn.debug(`[OpenAI] Using ${c} model: ${T}`);let A=An(n),k=o.character.system??void 0,i={model:f.chat(T),prompt:n.prompt,system:k,maxOutputTokens:n.maxTokens??8192,experimental_telemetry:{isEnabled:io(o)},...A.promptCacheKey||A.promptCacheRetention?{providerOptions:{openai:{...A.promptCacheKey?{promptCacheKey:A.promptCacheKey}:{},...A.promptCacheRetention?{promptCacheRetention:A.promptCacheRetention}:{}}}}:{}};if(n.stream){let s=Tn(i);return{textStream:s.textStream,text:Promise.resolve(s.text),usage:Promise.resolve(s.usage).then(kn),finishReason:Promise.resolve(s.finishReason).then((N)=>N)}}let{text:p,usage:I}=await fn(i);if(I)J(o,c,n.prompt,I);return p}async function q(o,n){return bo(o,n,$o.TEXT_SMALL,F)}async function M(o,n){return bo(o,n,$o.TEXT_LARGE,d)}import{ModelType as zo}from"@elizaos/core";import{ModelType as tn}from"@elizaos/core";import{encodingForModel as In,getEncoding as Pn}from"js-tiktoken";function jo(o){let c=o.toLowerCase().includes("4o")?"o200k_base":"cl100k_base";try{return In(o)}catch{return Pn(c)}}function Fo(o,n){if(n===tn.TEXT_SMALL)return F(o);return d(o)}function Uo(o,n,c){let r=Fo(o,n);return jo(r).encode(c)}function _o(o,n,c){let r=Fo(o,n);return jo(r).decode(c)}async function e(o,n){if(!n.prompt)throw Error("Tokenization requires a non-empty prompt");let c=n.modelType??zo.TEXT_LARGE;return Uo(o,c,n.prompt)}async function B(o,n){if(!n.tokens||!Array.isArray(n.tokens))throw Error("Detokenization requires a valid tokens array");if(n.tokens.length===0)return"";for(let r=0;r<n.tokens.length;r++){let f=n.tokens[r];if(typeof f!=="number"||!Number.isFinite(f))throw Error(`Invalid token at index ${r}: expected number`)}let c=n.modelType??zo.TEXT_LARGE;return _o(o,c,n.tokens)}function pn(){if(typeof process>"u")return{};return process.env}var h=pn(),wn={name:"openai",description:"OpenAI API integration for text, image, audio, and embedding models",config:{OPENAI_API_KEY:h.OPENAI_API_KEY??null,OPENAI_BASE_URL:h.OPENAI_BASE_URL??null,OPENAI_SMALL_MODEL:h.OPENAI_SMALL_MODEL??null,OPENAI_LARGE_MODEL:h.OPENAI_LARGE_MODEL??null,SMALL_MODEL:h.SMALL_MODEL??null,LARGE_MODEL:h.LARGE_MODEL??null,OPENAI_EMBEDDING_MODEL:h.OPENAI_EMBEDDING_MODEL??null,OPENAI_EMBEDDING_API_KEY:h.OPENAI_EMBEDDING_API_KEY??null,OPENAI_EMBEDDING_URL:h.OPENAI_EMBEDDING_URL??null,OPENAI_EMBEDDING_DIMENSIONS:h.OPENAI_EMBEDDING_DIMENSIONS??null,OPENAI_IMAGE_DESCRIPTION_MODEL:h.OPENAI_IMAGE_DESCRIPTION_MODEL??null,OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS:h.OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS??null,OPENAI_EXPERIMENTAL_TELEMETRY:h.OPENAI_EXPERIMENTAL_TELEMETRY??null,OPENAI_RESEARCH_MODEL:h.OPENAI_RESEARCH_MODEL??null,OPENAI_RESEARCH_TIMEOUT:h.OPENAI_RESEARCH_TIMEOUT??null},async init(o,n){Po(o,n)},models:{[P.TEXT_EMBEDDING]:async(o,n)=>{return H(o,n)},[P.TEXT_TOKENIZER_ENCODE]:async(o,n)=>{return e(o,n)},[P.TEXT_TOKENIZER_DECODE]:async(o,n)=>{return B(o,n)},[P.TEXT_SMALL]:async(o,n)=>{return q(o,n)},[P.TEXT_LARGE]:async(o,n)=>{return M(o,n)},[P.IMAGE]:async(o,n)=>{return V(o,n)},[P.IMAGE_DESCRIPTION]:async(o,n)=>{return Q(o,n)},[P.TRANSCRIPTION]:async(o,n)=>{return W(o,n)},[P.TEXT_TO_SPEECH]:async(o,n)=>{return C(o,n)},[P.OBJECT_SMALL]:async(o,n)=>{return G(o,n)},[P.OBJECT_LARGE]:async(o,n)=>{return Z(o,n)},[P.RESEARCH]:async(o,n)=>{return Y(o,n)}},tests:[{name:"openai_plugin_tests",tests:[{name:"openai_test_api_connectivity",fn:async(o)=>{let n=O(o),c=await fetch(`${n}/models`,{headers:R(o)});if(!c.ok)throw Error(`API connectivity test failed: ${c.status} ${c.statusText}`);let r=await c.json();l.info(`[OpenAI Test] API connected. ${r.data?.length??0} models available.`)}},{name:"openai_test_text_embedding",fn:async(o)=>{let n=await o.useModel(P.TEXT_EMBEDDING,{text:"Hello, world!"});if(!Array.isArray(n)||n.length===0)throw Error("Embedding should return a non-empty array");l.info(`[OpenAI Test] Generated embedding with ${n.length} dimensions`)}},{name:"openai_test_text_small",fn:async(o)=>{let n=await o.useModel(P.TEXT_SMALL,{prompt:"Say hello in exactly 5 words."});if(typeof n!=="string"||n.length===0)throw Error("TEXT_SMALL should return non-empty string");l.info(`[OpenAI Test] TEXT_SMALL generated: "${n.substring(0,50)}..."`)}},{name:"openai_test_text_large",fn:async(o)=>{let n=await o.useModel(P.TEXT_LARGE,{prompt:"Explain quantum computing in 2 sentences."});if(typeof n!=="string"||n.length===0)throw Error("TEXT_LARGE should return non-empty string");l.info(`[OpenAI Test] TEXT_LARGE generated: "${n.substring(0,50)}..."`)}},{name:"openai_test_tokenizer_roundtrip",fn:async(o)=>{let c=await o.useModel(P.TEXT_TOKENIZER_ENCODE,{prompt:"Hello, tokenizer test!",modelType:P.TEXT_SMALL});if(!Array.isArray(c)||c.length===0)throw Error("Tokenization should return non-empty token array");let r=await o.useModel(P.TEXT_TOKENIZER_DECODE,{tokens:c,modelType:P.TEXT_SMALL});if(r!=="Hello, tokenizer test!")throw Error(`Tokenizer roundtrip failed: expected "Hello, tokenizer test!", got "${r}"`);l.info(`[OpenAI Test] Tokenizer roundtrip successful (${c.length} tokens)`)}},{name:"openai_test_streaming",fn:async(o)=>{let n=[],c=await o.useModel(P.TEXT_LARGE,{prompt:"Count from 1 to 5, one number per line.",stream:!0,onStreamChunk:(r)=>{n.push(r)}});if(typeof c!=="string"||c.length===0)throw Error("Streaming should return non-empty result");if(n.length===0)throw Error("No streaming chunks received");l.info(`[OpenAI Test] Streaming test: ${n.length} chunks received`)}},{name:"openai_test_image_description",fn:async(o)=>{let c=await o.useModel(P.IMAGE_DESCRIPTION,"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Camponotus_flavomarginatus_ant.jpg/440px-Camponotus_flavomarginatus_ant.jpg");if(!c||typeof c!=="object"||!("title"in c)||!("description"in c))throw Error("Image description should return { title, description }");l.info(`[OpenAI Test] Image described: "${c.title}"`)}},{name:"openai_test_transcription",fn:async(o)=>{let r=await(await fetch("https://upload.wikimedia.org/wikipedia/commons/2/25/En-Open_Source.ogg")).arrayBuffer(),f=Buffer.from(new Uint8Array(r)),T=await o.useModel(P.TRANSCRIPTION,f);if(typeof T!=="string")throw Error("Transcription should return a string");l.info(`[OpenAI Test] Transcription: "${T.substring(0,50)}..."`)}},{name:"openai_test_text_to_speech",fn:async(o)=>{let n=await o.useModel(P.TEXT_TO_SPEECH,{text:"Hello, this is a text-to-speech test."});if(!(n instanceof ArrayBuffer)||n.byteLength===0)throw Error("TTS should return non-empty ArrayBuffer");l.info(`[OpenAI Test] TTS generated ${n.byteLength} bytes of audio`)}},{name:"openai_test_object_generation",fn:async(o)=>{let n=await o.useModel(P.OBJECT_SMALL,{prompt:"Return a JSON object with exactly these fields: name (string), age (number), active (boolean)"});if(!n||typeof n!=="object")throw Error("Object generation should return an object");l.info(`[OpenAI Test] Object generated: ${JSON.stringify(n).substring(0,100)}`)}},{name:"openai_test_research",fn:async(o)=>{let n=await o.useModel(P.RESEARCH,{input:"What is the current date and time?",tools:[{type:"web_search_preview"}],maxToolCalls:3});if(!n||typeof n!=="object"||!("text"in n))throw Error("Research should return an object with text property");if(typeof n.text!=="string"||n.text.length===0)throw Error("Research result text should be a non-empty string");l.info(`[OpenAI Test] Research completed. Text length: ${n.text.length}, Annotations: ${n.annotations?.length??0}`)}}]}]},sn=wn;export{wn as openaiPlugin,sn as default};
1
+ import{logger as l,ModelType as P}from"@elizaos/core";import{logger as L}from"@elizaos/core";import{logger as _}from"@elizaos/core";function Ko(o){if(typeof process>"u"||!process.env)return;let n=process.env[o];return n===void 0?void 0:String(n)}function w(o,n,c){let r=o.getSetting(n);if(r!==void 0&&r!==null)return String(r);return Ko(n)??c}function x(o,n,c){let r=w(o,n);if(r===void 0)return c;let f=Number.parseInt(r,10);if(!Number.isFinite(f))throw Error(`Setting '${n}' must be a valid integer, got: ${r}`);return f}function v(o,n,c){let r=w(o,n);if(r===void 0)return c;let f=r.toLowerCase();return f==="true"||f==="1"||f==="yes"}function j(){return typeof globalThis<"u"&&typeof globalThis.document<"u"}function g(o){return j()&&!!w(o,"OPENAI_BROWSER_BASE_URL")}function y(o){return w(o,"OPENAI_API_KEY")}function xo(o){let n=w(o,"OPENAI_EMBEDDING_API_KEY");if(n)return _.debug("[OpenAI] Using specific embedding API key"),n;return _.debug("[OpenAI] Falling back to general API key for embeddings"),y(o)}function R(o,n=!1){if(j()&&!v(o,"OPENAI_ALLOW_BROWSER_API_KEY",!1))return{};let c=n?xo(o):y(o);return c?{Authorization:`Bearer ${c}`}:{}}function O(o){let n=w(o,"OPENAI_BROWSER_BASE_URL"),c=j()&&n?n:w(o,"OPENAI_BASE_URL")??"https://api.openai.com/v1";return _.debug(`[OpenAI] Base URL: ${c}`),c}function u(o){let n=j()?w(o,"OPENAI_BROWSER_EMBEDDING_URL")??w(o,"OPENAI_BROWSER_BASE_URL"):w(o,"OPENAI_EMBEDDING_URL");if(n)return _.debug(`[OpenAI] Using embedding base URL: ${n}`),n;return _.debug("[OpenAI] Falling back to general base URL for embeddings"),O(o)}function F(o){return w(o,"OPENAI_SMALL_MODEL")??w(o,"SMALL_MODEL")??"gpt-5-mini"}function d(o){return w(o,"OPENAI_LARGE_MODEL")??w(o,"LARGE_MODEL")??"gpt-5"}function m(o){return w(o,"OPENAI_EMBEDDING_MODEL")??"text-embedding-3-small"}function oo(o){return w(o,"OPENAI_IMAGE_DESCRIPTION_MODEL")??"gpt-5-mini"}function no(o){return w(o,"OPENAI_TRANSCRIPTION_MODEL")??"gpt-5-mini-transcribe"}function co(o){return w(o,"OPENAI_TTS_MODEL")??"tts-1"}function ro(o){return w(o,"OPENAI_TTS_VOICE")??"nova"}function fo(o){return w(o,"OPENAI_TTS_INSTRUCTIONS")??""}function To(o){return w(o,"OPENAI_IMAGE_MODEL")??"dall-e-3"}function io(o){return v(o,"OPENAI_EXPERIMENTAL_TELEMETRY",!1)}function ko(o){return x(o,"OPENAI_EMBEDDING_DIMENSIONS",1536)}function Ao(o){return x(o,"OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS",8192)}function to(o){return w(o,"OPENAI_RESEARCH_MODEL")??"o3-deep-research"}function Io(o){return x(o,"OPENAI_RESEARCH_TIMEOUT",3600000)}globalThis.AI_SDK_LOG_WARNINGS??=!1;function Po(o,n){Xo(n)}async function Xo(o){if(j()){L.debug("[OpenAI] Skipping API validation in browser environment");return}if(!y(o)){L.warn("[OpenAI] OPENAI_API_KEY is not configured. OpenAI functionality will fail until a valid API key is provided.");return}try{let c=O(o),r=await fetch(`${c}/models`,{headers:R(o)});if(!r.ok){L.warn(`[OpenAI] API key validation failed: ${r.status} ${r.statusText}. Please verify your OPENAI_API_KEY is correct.`);return}}catch(c){let r=c instanceof Error?c.message:String(c);L.warn(`[OpenAI] API validation error: ${r}. OpenAI functionality may be limited.`)}}import{logger as U}from"@elizaos/core";import{logger as Do}from"@elizaos/core";var $={WAV:{HEADER:[82,73,70,70],IDENTIFIER:[87,65,86,69]},MP3_ID3:[73,68,51],OGG:[79,103,103,83],FLAC:[102,76,97,67],FTYP:[102,116,121,112],WEBM_EBML:[26,69,223,163]},Wo=12;function b(o,n,c){for(let r=0;r<c.length;r++){let f=c[r];if(f===void 0||o[n+r]!==f)return!1}return!0}function X(o){if(o.length<Wo)return"application/octet-stream";if(b(o,0,$.WAV.HEADER)&&b(o,8,$.WAV.IDENTIFIER))return"audio/wav";let n=o[0],c=o[1];if(b(o,0,$.MP3_ID3)||n===255&&c!==void 0&&(c&224)===224)return"audio/mpeg";if(b(o,0,$.OGG))return"audio/ogg";if(b(o,0,$.FLAC))return"audio/flac";if(b(o,4,$.FTYP))return"audio/mp4";if(b(o,0,$.WEBM_EBML))return"audio/webm";return Do.warn("Could not detect audio format from buffer, using generic binary type"),"application/octet-stream"}function Co(o){switch(o){case"audio/wav":return"wav";case"audio/mpeg":return"mp3";case"audio/ogg":return"ogg";case"audio/flac":return"flac";case"audio/mp4":return"m4a";case"audio/webm":return"webm";case"application/octet-stream":return"bin"}}function po(o){return`recording.${Co(o)}`}function so(o){return o instanceof Blob||o instanceof File}function D(o){return Buffer.isBuffer(o)}function Ho(o){return typeof o==="object"&&o!==null&&"audio"in o&&(so(o.audio)||D(o.audio))}function Vo(o){return typeof o==="object"&&o!==null&&"audioUrl"in o&&typeof o.audioUrl==="string"}async function wo(o){let n=await fetch(o);if(!n.ok)throw Error(`Failed to fetch audio from URL: ${n.status}`);return n.blob()}async function W(o,n){let c=no(o),r,f={};if(typeof n==="string")U.debug(`[OpenAI] Fetching audio from URL: ${n}`),r=await wo(n);else if(so(n))r=n;else if(D(n)){let I=X(n);U.debug(`[OpenAI] Auto-detected audio MIME type: ${I}`),r=new Blob([new Uint8Array(n)],{type:I})}else if(Ho(n)){if(f=n,n.model)c=n.model;if(D(n.audio)){let I=n.mimeType??X(n.audio);U.debug(`[OpenAI] Using MIME type: ${I}`),r=new Blob([new Uint8Array(n.audio)],{type:I})}else r=n.audio}else if(Vo(n))U.debug(`[OpenAI] Fetching audio from URL: ${n.audioUrl}`),r=await wo(n.audioUrl),f={prompt:n.prompt};else throw Error("TRANSCRIPTION expects Blob, File, Buffer, URL string, or TranscriptionParams object");U.debug(`[OpenAI] Using TRANSCRIPTION model: ${c}`);let T=r.type||"audio/webm",A=r.name||po(T.startsWith("audio/")?T:"audio/webm"),k=new FormData;if(k.append("file",r,A),k.append("model",c),f.language)k.append("language",f.language);if(f.responseFormat)k.append("response_format",f.responseFormat);if(f.prompt)k.append("prompt",f.prompt);if(f.temperature!==void 0)k.append("temperature",String(f.temperature));if(f.timestampGranularities)for(let I of f.timestampGranularities)k.append("timestamp_granularities[]",I);let t=O(o),i=await fetch(`${t}/audio/transcriptions`,{method:"POST",headers:R(o),body:k});if(!i.ok){let I=await i.text().catch(()=>"Unknown error");throw Error(`OpenAI transcription failed: ${i.status} ${i.statusText} - ${I}`)}return(await i.json()).text}async function C(o,n){let c,r,f="mp3",T,A;if(typeof n==="string")c=n,r=void 0;else{if(c=n.text,r=n.voice,"format"in n&&n.format)f=n.format;if("model"in n&&n.model)T=n.model;if("instructions"in n&&n.instructions)A=n.instructions}if(T=T??co(o),r=r??ro(o),A=A??fo(o),U.debug(`[OpenAI] Using TEXT_TO_SPEECH model: ${T}`),!c||c.trim().length===0)throw Error("TEXT_TO_SPEECH requires non-empty text");if(c.length>4096)throw Error("TEXT_TO_SPEECH text exceeds 4096 character limit");let k=["alloy","echo","fable","onyx","nova","shimmer"];if(r&&!k.includes(r))throw Error(`Invalid voice: ${r}. Must be one of: ${k.join(", ")}`);let t=O(o),i={model:T,voice:r,input:c,response_format:f};if(A&&A.length>0)i.instructions=A;let p=await fetch(`${t}/audio/speech`,{method:"POST",headers:{...R(o),"Content-Type":"application/json",...f==="mp3"?{Accept:"audio/mpeg"}:{}},body:JSON.stringify(i)});if(!p.ok){let I=await p.text().catch(()=>"Unknown error");throw Error(`OpenAI TTS failed: ${p.status} ${p.statusText} - ${I}`)}return p.arrayBuffer()}import{logger as K,ModelType as Yo,VECTOR_DIMS as qo}from"@elizaos/core";import{EventType as Qo}from"@elizaos/core";var Oo=200;function Go(o){if(o.length<=Oo)return o;return`${o.slice(0,Oo)}…`}function Zo(o){if("promptTokens"in o){let n="promptTokensDetails"in o?o.promptTokensDetails:void 0,c=o.cachedPromptTokens??n?.cachedTokens;return{promptTokens:o.promptTokens??0,completionTokens:o.completionTokens??0,totalTokens:o.totalTokens??(o.promptTokens??0)+(o.completionTokens??0),cachedPromptTokens:c}}if("inputTokens"in o||"outputTokens"in o){let n=o.inputTokens??0,c=o.outputTokens??0,r=o.totalTokens??n+c;return{promptTokens:n,completionTokens:c,totalTokens:r,cachedPromptTokens:o.cachedInputTokens}}return{promptTokens:0,completionTokens:0,totalTokens:0}}function J(o,n,c,r){let f=Zo(r),T={runtime:o,source:"openai",provider:"openai",type:n,prompt:Go(c),tokens:{prompt:f.promptTokens,completion:f.completionTokens,total:f.totalTokens,...f.cachedPromptTokens!==void 0?{cached:f.cachedPromptTokens}:{}}};o.emitEvent(Qo.MODEL_USED,T)}function Mo(o){let n=Object.values(qo);if(!n.includes(o))throw Error(`Invalid embedding dimension: ${o}. Must be one of: ${n.join(", ")}`);return o}function eo(o){if(o===null)return null;if(typeof o==="string")return o;if(typeof o==="object"&&typeof o.text==="string")return o.text;throw Error("Invalid embedding params: expected string, { text: string }, or null")}async function H(o,n){let c=m(o),r=Mo(ko(o)),f=eo(n);if(f===null){K.debug("[OpenAI] Creating test embedding for initialization");let N=Array(r).fill(0);return N[0]=0.1,N}let T=f.trim();if(T.length===0)throw Error("Cannot generate embedding for empty text");let A=32000;if(T.length>A)K.warn(`[OpenAI] Embedding input too long (~${Math.ceil(T.length/4)} tokens), truncating to ~8000 tokens`),T=T.slice(0,A);let t=`${u(o)}/embeddings`;K.debug(`[OpenAI] Generating embedding with model: ${c}`);let i=await fetch(t,{method:"POST",headers:{...R(o,!0),"Content-Type":"application/json"},body:JSON.stringify({model:c,input:T})});if(!i.ok){let N=await i.text().catch(()=>"Unknown error");throw Error(`OpenAI embedding API error: ${i.status} ${i.statusText} - ${N}`)}let p=await i.json(),I=p?.data?.[0];if(!I||!I.embedding)throw Error("OpenAI API returned invalid embedding response structure");let s=I.embedding;if(s.length!==r)throw Error(`Embedding dimension mismatch: got ${s.length}, expected ${r}. Check OPENAI_EMBEDDING_DIMENSIONS setting.`);if(p.usage)J(o,Yo.TEXT_EMBEDDING,T,{promptTokens:p.usage.prompt_tokens,completionTokens:0,totalTokens:p.usage.total_tokens});return K.debug(`[OpenAI] Generated embedding with ${s.length} dimensions`),s}import{logger as Ro,ModelType as Bo}from"@elizaos/core";var ho="Please analyze this image and provide a title and detailed description.";async function V(o,n){let c=To(o),r=n.count??1,f=n.size??"1024x1024",T=n;if(Ro.debug(`[OpenAI] Using IMAGE model: ${c}`),!n.prompt||n.prompt.trim().length===0)throw Error("IMAGE generation requires a non-empty prompt");if(r<1||r>10)throw Error("IMAGE count must be between 1 and 10");let A=O(o),k={model:c,prompt:n.prompt,n:r,size:f};if(T.quality)k.quality=T.quality;if(T.style)k.style=T.style;let t=await fetch(`${A}/images/generations`,{method:"POST",headers:{...R(o),"Content-Type":"application/json"},body:JSON.stringify(k)});if(!t.ok){let p=await t.text().catch(()=>"Unknown error");throw Error(`OpenAI image generation failed: ${t.status} ${t.statusText} - ${p}`)}let i=await t.json();if(!i.data||i.data.length===0)throw Error("OpenAI API returned no images");return i.data.map((p)=>({url:p.url,revisedPrompt:p.revised_prompt}))}function ao(o){return o.match(/title[:\s]+(.+?)(?:\n|$)/i)?.[1]?.trim()??"Image Analysis"}function vo(o){return o.replace(/title[:\s]+(.+?)(?:\n|$)/i,"").trim()}async function Q(o,n){let c=oo(o),r=Ao(o);Ro.debug(`[OpenAI] Using IMAGE_DESCRIPTION model: ${c}`);let f,T;if(typeof n==="string")f=n,T=ho;else f=n.imageUrl,T=n.prompt??ho;if(!f||f.trim().length===0)throw Error("IMAGE_DESCRIPTION requires a valid image URL");let A=O(o),k={model:c,messages:[{role:"user",content:[{type:"text",text:T},{type:"image_url",image_url:{url:f}}]}],max_tokens:r},t=await fetch(`${A}/chat/completions`,{method:"POST",headers:{...R(o),"Content-Type":"application/json"},body:JSON.stringify(k)});if(!t.ok){let s=await t.text().catch(()=>"Unknown error");throw Error(`OpenAI image description failed: ${t.status} ${t.statusText} - ${s}`)}let i=await t.json();if(i.usage)J(o,Bo.IMAGE_DESCRIPTION,typeof n==="string"?n:n.prompt??"",{promptTokens:i.usage.prompt_tokens,completionTokens:i.usage.completion_tokens,totalTokens:i.usage.total_tokens});let I=i.choices?.[0]?.message?.content;if(!I)throw Error("OpenAI API returned empty image description");return{title:ao(I),description:vo(I)}}import{logger as Jo,ModelType as Eo}from"@elizaos/core";import{generateObject as on}from"ai";import{createOpenAI as lo}from"@ai-sdk/openai";var go="sk-proxy";function z(o){let n=O(o),c=y(o);if(!c&&g(o))return lo({apiKey:go,baseURL:n});if(!c)throw Error("OPENAI_API_KEY is required. Set it in your environment variables or runtime settings.");return lo({apiKey:c,baseURL:n})}import{logger as No}from"@elizaos/core";import{JSONParseError as uo}from"ai";var mo={MARKDOWN_JSON:/```json\n|\n```|```/g,WHITESPACE:/^\s+|\s+$/g};function yo(){return async({text:o,error:n})=>{if(!(n instanceof uo))return null;try{let c=o.replace(mo.MARKDOWN_JSON,"");return JSON.parse(c),No.debug("[JSON Repair] Successfully repaired JSON by removing markdown wrappers"),c}catch{return No.warn("[JSON Repair] Unable to repair JSON text"),null}}}async function So(o,n,c,r){let f=z(o),T=r(o);if(Jo.debug(`[OpenAI] Using ${c} model: ${T}`),!n.prompt||n.prompt.trim().length===0)throw Error("Object generation requires a non-empty prompt");if(n.schema)Jo.debug("[OpenAI] Schema provided but using no-schema mode. Structure is determined by prompt instructions.");let A=f.chat(T),{object:k,usage:t}=await on({model:A,output:"no-schema",prompt:n.prompt,experimental_repairText:yo()});if(t)J(o,c,n.prompt,t);if(typeof k!=="object"||k===null)throw Error(`Object generation returned ${typeof k}, expected object`);return k}async function G(o,n){return So(o,n,Eo.OBJECT_SMALL,F)}async function Z(o,n){return So(o,n,Eo.OBJECT_LARGE,d)}import{logger as E}from"@elizaos/core";function nn(o){switch(o.type){case"web_search_preview":return{type:"web_search_preview"};case"file_search":return{type:"file_search",vector_store_ids:o.vectorStoreIds};case"code_interpreter":return{type:"code_interpreter",container:o.container??{type:"auto"}};case"mcp":return{type:"mcp",server_label:o.serverLabel,server_url:o.serverUrl,require_approval:o.requireApproval??"never"};default:throw Error(`Unknown research tool type: ${o.type}`)}}function cn(o){switch(o.type){case"web_search_call":return{id:o.id??"",type:"web_search_call",status:o.status??"completed",action:{type:o.action?.type??"search",query:o.action?.query,url:o.action?.url}};case"file_search_call":return{id:o.id??"",type:"file_search_call",status:o.status??"completed",query:o.query??"",results:o.results?.map((n)=>({fileId:n.file_id,fileName:n.file_name,score:n.score}))};case"code_interpreter_call":return{id:o.id??"",type:"code_interpreter_call",status:o.status??"completed",code:o.code??"",output:o.output};case"mcp_tool_call":return{id:o.id??"",type:"mcp_tool_call",status:o.status??"completed",serverLabel:o.server_label??"",toolName:o.tool_name??"",arguments:o.arguments??{},result:o.result};case"message":return{type:"message",content:o.content?.map((n)=>({type:"output_text",text:n.text,annotations:n.annotations?.map((c)=>({url:c.url,title:c.title,startIndex:c.start_index,endIndex:c.end_index}))??[]}))??[]};default:return null}}function rn(o){if(o.output_text){let r=[];if(o.output){for(let f of o.output)if(f.type==="message"&&f.content){for(let T of f.content)if(T.annotations)for(let A of T.annotations)r.push({url:A.url,title:A.title,startIndex:A.start_index,endIndex:A.end_index})}}return{text:o.output_text,annotations:r}}let n="",c=[];if(o.output){for(let r of o.output)if(r.type==="message"&&r.content){for(let f of r.content)if(n+=f.text,f.annotations)for(let T of f.annotations)c.push({url:T.url,title:T.title,startIndex:T.start_index,endIndex:T.end_index})}}return{text:n,annotations:c}}async function Y(o,n){let c=y(o);if(!c)throw Error("OPENAI_API_KEY is required for deep research. Set it in your environment variables or runtime settings.");let r=O(o),f=n.model??to(o),T=Io(o);E.debug(`[OpenAI] Starting deep research with model: ${f}`),E.debug(`[OpenAI] Research input: ${n.input.substring(0,100)}...`);let A=n.tools?.filter((S)=>S.type==="web_search_preview"||S.type==="file_search"||S.type==="mcp");if(!A||A.length===0)E.debug("[OpenAI] No data source tools specified, defaulting to web_search_preview"),n.tools=[{type:"web_search_preview"},...n.tools??[]];let k={model:f,input:n.input};if(n.instructions)k.instructions=n.instructions;if(n.background!==void 0)k.background=n.background;if(n.tools&&n.tools.length>0)k.tools=n.tools.map(nn);if(n.maxToolCalls!==void 0)k.max_tool_calls=n.maxToolCalls;if(n.reasoningSummary)k.reasoning={summary:n.reasoningSummary};E.debug(`[OpenAI] Research request body: ${JSON.stringify(k,null,2)}`);let t=await fetch(`${r}/responses`,{method:"POST",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json"},body:JSON.stringify(k),signal:AbortSignal.timeout(T)});if(!t.ok){let S=await t.text();throw E.error(`[OpenAI] Research request failed: ${t.status} ${S}`),Error(`Deep research request failed: ${t.status} ${t.statusText}`)}let i=await t.json();if(i.error)throw E.error(`[OpenAI] Research API error: ${i.error.message}`),Error(`Deep research error: ${i.error.message}`);E.debug(`[OpenAI] Research response received. Status: ${i.status??"completed"}`);let{text:p,annotations:I}=rn(i),s=[];if(i.output)for(let S of i.output){let a=cn(S);if(a)s.push(a)}let N={id:i.id,text:p,annotations:I,outputItems:s,status:i.status};return E.info(`[OpenAI] Research completed. Text length: ${p.length}, Annotations: ${I.length}, Output items: ${s.length}`),N}import{logger as fn,ModelType as $o}from"@elizaos/core";import{generateText as Tn,streamText as kn}from"ai";function An(o){if(!o)return;let n=o.inputTokens??0,c=o.outputTokens??0,r=o;return{promptTokens:n,completionTokens:c,totalTokens:n+c,cachedPromptTokens:r.cachedInputTokens}}function tn(o){let n=o;return{promptCacheKey:n.providerOptions?.openai?.promptCacheKey,promptCacheRetention:n.providerOptions?.openai?.promptCacheRetention}}async function bo(o,n,c,r){let f=z(o),T=r(o);fn.debug(`[OpenAI] Using ${c} model: ${T}`);let A=tn(n),k=o.character.system??void 0,i={model:f.chat(T),prompt:n.prompt,system:k,maxOutputTokens:n.maxTokens??8192,experimental_telemetry:{isEnabled:io(o)},...A.promptCacheKey||A.promptCacheRetention?{providerOptions:{openai:{...A.promptCacheKey?{promptCacheKey:A.promptCacheKey}:{},...A.promptCacheRetention?{promptCacheRetention:A.promptCacheRetention}:{}}}}:{}};if(n.stream){let s=kn(i);return{textStream:s.textStream,text:Promise.resolve(s.text),usage:Promise.resolve(s.usage).then(An),finishReason:Promise.resolve(s.finishReason).then((N)=>N)}}let{text:p,usage:I}=await Tn(i);if(I)J(o,c,n.prompt,I);return p}async function q(o,n){return bo(o,n,$o.TEXT_SMALL,F)}async function M(o,n){return bo(o,n,$o.TEXT_LARGE,d)}import{ModelType as zo}from"@elizaos/core";import{ModelType as In}from"@elizaos/core";import{encodingForModel as Pn,getEncoding as pn}from"js-tiktoken";function jo(o){let c=o.toLowerCase().includes("4o")?"o200k_base":"cl100k_base";try{return Pn(o)}catch{return pn(c)}}function Fo(o,n){if(n===In.TEXT_SMALL)return F(o);return d(o)}function Uo(o,n,c){let r=Fo(o,n);return jo(r).encode(c)}function _o(o,n,c){let r=Fo(o,n);return jo(r).decode(c)}async function e(o,n){if(!n.prompt)throw Error("Tokenization requires a non-empty prompt");let c=n.modelType??zo.TEXT_LARGE;return Uo(o,c,n.prompt)}async function B(o,n){if(!n.tokens||!Array.isArray(n.tokens))throw Error("Detokenization requires a valid tokens array");if(n.tokens.length===0)return"";for(let r=0;r<n.tokens.length;r++){let f=n.tokens[r];if(typeof f!=="number"||!Number.isFinite(f))throw Error(`Invalid token at index ${r}: expected number`)}let c=n.modelType??zo.TEXT_LARGE;return _o(o,c,n.tokens)}function wn(){if(typeof process>"u")return{};return process.env}var h=wn(),sn={name:"openai",description:"OpenAI API integration for text, image, audio, and embedding models",config:{OPENAI_API_KEY:h.OPENAI_API_KEY??null,OPENAI_BASE_URL:h.OPENAI_BASE_URL??null,OPENAI_SMALL_MODEL:h.OPENAI_SMALL_MODEL??null,OPENAI_LARGE_MODEL:h.OPENAI_LARGE_MODEL??null,SMALL_MODEL:h.SMALL_MODEL??null,LARGE_MODEL:h.LARGE_MODEL??null,OPENAI_EMBEDDING_MODEL:h.OPENAI_EMBEDDING_MODEL??null,OPENAI_EMBEDDING_API_KEY:h.OPENAI_EMBEDDING_API_KEY??null,OPENAI_EMBEDDING_URL:h.OPENAI_EMBEDDING_URL??null,OPENAI_EMBEDDING_DIMENSIONS:h.OPENAI_EMBEDDING_DIMENSIONS??null,OPENAI_IMAGE_DESCRIPTION_MODEL:h.OPENAI_IMAGE_DESCRIPTION_MODEL??null,OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS:h.OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS??null,OPENAI_EXPERIMENTAL_TELEMETRY:h.OPENAI_EXPERIMENTAL_TELEMETRY??null,OPENAI_RESEARCH_MODEL:h.OPENAI_RESEARCH_MODEL??null,OPENAI_RESEARCH_TIMEOUT:h.OPENAI_RESEARCH_TIMEOUT??null},async init(o,n){Po(o,n)},models:{[P.TEXT_EMBEDDING]:async(o,n)=>{return H(o,n)},[P.TEXT_TOKENIZER_ENCODE]:async(o,n)=>{return e(o,n)},[P.TEXT_TOKENIZER_DECODE]:async(o,n)=>{return B(o,n)},[P.TEXT_SMALL]:async(o,n)=>{return q(o,n)},[P.TEXT_LARGE]:async(o,n)=>{return M(o,n)},[P.IMAGE]:async(o,n)=>{return V(o,n)},[P.IMAGE_DESCRIPTION]:async(o,n)=>{return Q(o,n)},[P.TRANSCRIPTION]:async(o,n)=>{return W(o,n)},[P.TEXT_TO_SPEECH]:async(o,n)=>{return C(o,n)},[P.OBJECT_SMALL]:async(o,n)=>{return G(o,n)},[P.OBJECT_LARGE]:async(o,n)=>{return Z(o,n)},[P.RESEARCH]:async(o,n)=>{return Y(o,n)}},tests:[{name:"openai_plugin_tests",tests:[{name:"openai_test_api_connectivity",fn:async(o)=>{let n=O(o),c=await fetch(`${n}/models`,{headers:R(o)});if(!c.ok)throw Error(`API connectivity test failed: ${c.status} ${c.statusText}`);let r=await c.json();l.info(`[OpenAI Test] API connected. ${r.data?.length??0} models available.`)}},{name:"openai_test_text_embedding",fn:async(o)=>{let n=await o.useModel(P.TEXT_EMBEDDING,{text:"Hello, world!"});if(!Array.isArray(n)||n.length===0)throw Error("Embedding should return a non-empty array");l.info(`[OpenAI Test] Generated embedding with ${n.length} dimensions`)}},{name:"openai_test_text_small",fn:async(o)=>{let n=await o.useModel(P.TEXT_SMALL,{prompt:"Say hello in exactly 5 words."});if(typeof n!=="string"||n.length===0)throw Error("TEXT_SMALL should return non-empty string");l.info(`[OpenAI Test] TEXT_SMALL generated: "${n.substring(0,50)}..."`)}},{name:"openai_test_text_large",fn:async(o)=>{let n=await o.useModel(P.TEXT_LARGE,{prompt:"Explain quantum computing in 2 sentences."});if(typeof n!=="string"||n.length===0)throw Error("TEXT_LARGE should return non-empty string");l.info(`[OpenAI Test] TEXT_LARGE generated: "${n.substring(0,50)}..."`)}},{name:"openai_test_tokenizer_roundtrip",fn:async(o)=>{let c=await o.useModel(P.TEXT_TOKENIZER_ENCODE,{prompt:"Hello, tokenizer test!",modelType:P.TEXT_SMALL});if(!Array.isArray(c)||c.length===0)throw Error("Tokenization should return non-empty token array");let r=await o.useModel(P.TEXT_TOKENIZER_DECODE,{tokens:c,modelType:P.TEXT_SMALL});if(r!=="Hello, tokenizer test!")throw Error(`Tokenizer roundtrip failed: expected "Hello, tokenizer test!", got "${r}"`);l.info(`[OpenAI Test] Tokenizer roundtrip successful (${c.length} tokens)`)}},{name:"openai_test_streaming",fn:async(o)=>{let n=[],c=await o.useModel(P.TEXT_LARGE,{prompt:"Count from 1 to 5, one number per line.",stream:!0,onStreamChunk:(r)=>{n.push(r)}});if(typeof c!=="string"||c.length===0)throw Error("Streaming should return non-empty result");if(n.length===0)throw Error("No streaming chunks received");l.info(`[OpenAI Test] Streaming test: ${n.length} chunks received`)}},{name:"openai_test_image_description",fn:async(o)=>{let c=await o.useModel(P.IMAGE_DESCRIPTION,"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Camponotus_flavomarginatus_ant.jpg/440px-Camponotus_flavomarginatus_ant.jpg");if(!c||typeof c!=="object"||!("title"in c)||!("description"in c))throw Error("Image description should return { title, description }");l.info(`[OpenAI Test] Image described: "${c.title}"`)}},{name:"openai_test_transcription",fn:async(o)=>{let r=await(await fetch("https://upload.wikimedia.org/wikipedia/commons/2/25/En-Open_Source.ogg")).arrayBuffer(),f=Buffer.from(new Uint8Array(r)),T=await o.useModel(P.TRANSCRIPTION,f);if(typeof T!=="string")throw Error("Transcription should return a string");l.info(`[OpenAI Test] Transcription: "${T.substring(0,50)}..."`)}},{name:"openai_test_text_to_speech",fn:async(o)=>{let n=await o.useModel(P.TEXT_TO_SPEECH,{text:"Hello, this is a text-to-speech test."});if(!(n instanceof ArrayBuffer)||n.byteLength===0)throw Error("TTS should return non-empty ArrayBuffer");l.info(`[OpenAI Test] TTS generated ${n.byteLength} bytes of audio`)}},{name:"openai_test_object_generation",fn:async(o)=>{let n=await o.useModel(P.OBJECT_SMALL,{prompt:"Return a JSON object with exactly these fields: name (string), age (number), active (boolean)"});if(!n||typeof n!=="object")throw Error("Object generation should return an object");l.info(`[OpenAI Test] Object generated: ${JSON.stringify(n).substring(0,100)}`)}},{name:"openai_test_research",fn:async(o)=>{let n=await o.useModel(P.RESEARCH,{input:"What is the current date and time?",tools:[{type:"web_search_preview"}],maxToolCalls:3});if(!n||typeof n!=="object"||!("text"in n))throw Error("Research should return an object with text property");if(typeof n.text!=="string"||n.text.length===0)throw Error("Research result text should be a non-empty string");l.info(`[OpenAI Test] Research completed. Text length: ${n.text.length}, Annotations: ${n.annotations?.length??0}`)}}]}]},Lo=sn;var Uc=Lo;export{sn as openaiPlugin,Uc as default};
2
2
 
3
- //# debugId=E8CD784814D20F5364756E2164756E21
3
+ //# debugId=DBD85045744752DE64756E2164756E21
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../index.ts", "../../init.ts", "../../utils/config.ts", "../../models/audio.ts", "../../utils/audio.ts", "../../models/embedding.ts", "../../utils/events.ts", "../../models/image.ts", "../../models/object.ts", "../../providers/openai.ts", "../../utils/json.ts", "../../models/research.ts", "../../models/text.ts", "../../models/tokenizer.ts", "../../utils/tokenization.ts"],
3
+ "sources": ["../../index.ts", "../../init.ts", "../../utils/config.ts", "../../models/audio.ts", "../../utils/audio.ts", "../../models/embedding.ts", "../../utils/events.ts", "../../models/image.ts", "../../models/object.ts", "../../providers/openai.ts", "../../utils/json.ts", "../../models/research.ts", "../../models/text.ts", "../../models/tokenizer.ts", "../../utils/tokenization.ts", "../../index.browser.ts"],
4
4
  "sourcesContent": [
5
5
  "import type {\n TextToSpeechParams as CoreTextToSpeechParams,\n TranscriptionParams as CoreTranscriptionParams,\n DetokenizeTextParams,\n GenerateTextParams,\n IAgentRuntime,\n ImageDescriptionParams,\n ImageGenerationParams,\n JsonValue,\n ObjectGenerationParams,\n Plugin,\n ResearchParams,\n ResearchResult,\n TextEmbeddingParams,\n TokenizeTextParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { initializeOpenAI } from \"./init\";\nimport {\n handleImageDescription,\n handleImageGeneration,\n handleObjectLarge,\n handleObjectSmall,\n handleResearch,\n handleTextEmbedding,\n handleTextLarge,\n handleTextSmall,\n handleTextToSpeech,\n handleTokenizerDecode,\n handleTokenizerEncode,\n handleTranscription,\n} from \"./models\";\nimport type { ImageGenerationResult, OpenAIPluginConfig, TextStreamResult } from \"./types\";\nimport { getAuthHeader, getBaseURL } from \"./utils/config\";\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction getProcessEnv(): ProcessEnvLike {\n if (typeof process === \"undefined\") {\n return {};\n }\n return process.env as ProcessEnvLike;\n}\n\nconst env = getProcessEnv();\n\nexport const openaiPlugin: Plugin = {\n name: \"openai\",\n description: \"OpenAI API integration for text, image, audio, and embedding models\",\n\n config: {\n OPENAI_API_KEY: env.OPENAI_API_KEY ?? null,\n OPENAI_BASE_URL: env.OPENAI_BASE_URL ?? null,\n OPENAI_SMALL_MODEL: env.OPENAI_SMALL_MODEL ?? null,\n OPENAI_LARGE_MODEL: env.OPENAI_LARGE_MODEL ?? null,\n SMALL_MODEL: env.SMALL_MODEL ?? null,\n LARGE_MODEL: env.LARGE_MODEL ?? null,\n OPENAI_EMBEDDING_MODEL: env.OPENAI_EMBEDDING_MODEL ?? null,\n OPENAI_EMBEDDING_API_KEY: env.OPENAI_EMBEDDING_API_KEY ?? null,\n OPENAI_EMBEDDING_URL: env.OPENAI_EMBEDDING_URL ?? null,\n OPENAI_EMBEDDING_DIMENSIONS: env.OPENAI_EMBEDDING_DIMENSIONS ?? null,\n OPENAI_IMAGE_DESCRIPTION_MODEL: env.OPENAI_IMAGE_DESCRIPTION_MODEL ?? null,\n OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS: env.OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS ?? null,\n OPENAI_EXPERIMENTAL_TELEMETRY: env.OPENAI_EXPERIMENTAL_TELEMETRY ?? null,\n OPENAI_RESEARCH_MODEL: env.OPENAI_RESEARCH_MODEL ?? null,\n OPENAI_RESEARCH_TIMEOUT: env.OPENAI_RESEARCH_TIMEOUT ?? null,\n },\n\n async init(config: Record<string, string>, runtime: IAgentRuntime): Promise<void> {\n initializeOpenAI(config as OpenAIPluginConfig | undefined, runtime);\n },\n\n models: {\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ): Promise<number[]> => {\n return handleTextEmbedding(runtime, params);\n },\n\n [ModelType.TEXT_TOKENIZER_ENCODE]: async (\n runtime: IAgentRuntime,\n params: TokenizeTextParams\n ): Promise<number[]> => {\n return handleTokenizerEncode(runtime, params);\n },\n\n [ModelType.TEXT_TOKENIZER_DECODE]: async (\n runtime: IAgentRuntime,\n params: DetokenizeTextParams\n ): Promise<string> => {\n return handleTokenizerDecode(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string | TextStreamResult> => {\n return handleTextSmall(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string | TextStreamResult> => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.IMAGE]: async (\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n ): Promise<ImageGenerationResult[]> => {\n return handleImageGeneration(runtime, params);\n },\n\n [ModelType.IMAGE_DESCRIPTION]: async (\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n ): Promise<{ title: string; description: string }> => {\n return handleImageDescription(runtime, params);\n },\n\n [ModelType.TRANSCRIPTION]: async (\n runtime: IAgentRuntime,\n input: CoreTranscriptionParams | Buffer | string\n ): Promise<string> => {\n return handleTranscription(runtime, input);\n },\n\n [ModelType.TEXT_TO_SPEECH]: async (\n runtime: IAgentRuntime,\n input: CoreTextToSpeechParams | string\n ): Promise<ArrayBuffer> => {\n return handleTextToSpeech(runtime, input);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectLarge(runtime, params);\n },\n\n [ModelType.RESEARCH]: async (\n runtime: IAgentRuntime,\n params: ResearchParams\n ): Promise<ResearchResult> => {\n return handleResearch(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"openai_plugin_tests\",\n tests: [\n {\n name: \"openai_test_api_connectivity\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: getAuthHeader(runtime),\n });\n\n if (!response.ok) {\n throw new Error(\n `API connectivity test failed: ${response.status} ${response.statusText}`\n );\n }\n\n const data = (await response.json()) as { data?: unknown[] };\n logger.info(`[OpenAI Test] API connected. ${data.data?.length ?? 0} models available.`);\n },\n },\n {\n name: \"openai_test_text_embedding\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: \"Hello, world!\",\n });\n\n if (!Array.isArray(embedding) || embedding.length === 0) {\n throw new Error(\"Embedding should return a non-empty array\");\n }\n\n logger.info(`[OpenAI Test] Generated embedding with ${embedding.length} dimensions`);\n },\n },\n {\n name: \"openai_test_text_small\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"Say hello in exactly 5 words.\",\n });\n\n if (typeof text !== \"string\" || text.length === 0) {\n throw new Error(\"TEXT_SMALL should return non-empty string\");\n }\n\n logger.info(`[OpenAI Test] TEXT_SMALL generated: \"${text.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_text_large\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"Explain quantum computing in 2 sentences.\",\n });\n\n if (typeof text !== \"string\" || text.length === 0) {\n throw new Error(\"TEXT_LARGE should return non-empty string\");\n }\n\n logger.info(`[OpenAI Test] TEXT_LARGE generated: \"${text.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_tokenizer_roundtrip\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const originalText = \"Hello, tokenizer test!\";\n\n const tokens = await runtime.useModel(ModelType.TEXT_TOKENIZER_ENCODE, {\n prompt: originalText,\n modelType: ModelType.TEXT_SMALL,\n });\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n throw new Error(\"Tokenization should return non-empty token array\");\n }\n\n const decodedText = await runtime.useModel(ModelType.TEXT_TOKENIZER_DECODE, {\n tokens,\n modelType: ModelType.TEXT_SMALL,\n });\n\n if (decodedText !== originalText) {\n throw new Error(\n `Tokenizer roundtrip failed: expected \"${originalText}\", got \"${decodedText}\"`\n );\n }\n\n logger.info(`[OpenAI Test] Tokenizer roundtrip successful (${tokens.length} tokens)`);\n },\n },\n {\n name: \"openai_test_streaming\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const chunks: string[] = [];\n\n const result = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"Count from 1 to 5, one number per line.\",\n stream: true,\n onStreamChunk: (chunk: string) => {\n chunks.push(chunk);\n },\n });\n\n if (typeof result !== \"string\" || result.length === 0) {\n throw new Error(\"Streaming should return non-empty result\");\n }\n\n if (chunks.length === 0) {\n throw new Error(\"No streaming chunks received\");\n }\n\n logger.info(`[OpenAI Test] Streaming test: ${chunks.length} chunks received`);\n },\n },\n {\n name: \"openai_test_image_description\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const testImageUrl =\n \"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Camponotus_flavomarginatus_ant.jpg/440px-Camponotus_flavomarginatus_ant.jpg\";\n\n const result = await runtime.useModel(ModelType.IMAGE_DESCRIPTION, testImageUrl);\n\n if (\n !result ||\n typeof result !== \"object\" ||\n !(\"title\" in result) ||\n !(\"description\" in result)\n ) {\n throw new Error(\"Image description should return { title, description }\");\n }\n\n logger.info(`[OpenAI Test] Image described: \"${result.title}\"`);\n },\n },\n {\n name: \"openai_test_transcription\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n // Fetch a short audio sample\n const audioUrl =\n \"https://upload.wikimedia.org/wikipedia/commons/2/25/En-Open_Source.ogg\";\n\n const response = await fetch(audioUrl);\n const arrayBuffer = await response.arrayBuffer();\n const audioBuffer = Buffer.from(new Uint8Array(arrayBuffer));\n\n const transcription = await runtime.useModel(ModelType.TRANSCRIPTION, audioBuffer);\n\n if (typeof transcription !== \"string\") {\n throw new Error(\"Transcription should return a string\");\n }\n\n logger.info(`[OpenAI Test] Transcription: \"${transcription.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_text_to_speech\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const audioData = await runtime.useModel(ModelType.TEXT_TO_SPEECH, {\n text: \"Hello, this is a text-to-speech test.\",\n });\n\n if (!(audioData instanceof ArrayBuffer) || audioData.byteLength === 0) {\n throw new Error(\"TTS should return non-empty ArrayBuffer\");\n }\n\n logger.info(`[OpenAI Test] TTS generated ${audioData.byteLength} bytes of audio`);\n },\n },\n {\n name: \"openai_test_object_generation\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const result = await runtime.useModel(ModelType.OBJECT_SMALL, {\n prompt:\n \"Return a JSON object with exactly these fields: name (string), age (number), active (boolean)\",\n });\n\n if (!result || typeof result !== \"object\") {\n throw new Error(\"Object generation should return an object\");\n }\n\n logger.info(\n `[OpenAI Test] Object generated: ${JSON.stringify(result).substring(0, 100)}`\n );\n },\n },\n {\n name: \"openai_test_research\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n // Note: Deep research can take a long time (minutes to hours)\n // This test uses a simple query with maxToolCalls to limit execution time\n const result = await runtime.useModel(ModelType.RESEARCH, {\n input: \"What is the current date and time?\",\n tools: [{ type: \"web_search_preview\" }],\n maxToolCalls: 3, // Limit tool calls for faster test execution\n });\n\n if (!result || typeof result !== \"object\" || !(\"text\" in result)) {\n throw new Error(\"Research should return an object with text property\");\n }\n\n if (typeof result.text !== \"string\" || result.text.length === 0) {\n throw new Error(\"Research result text should be a non-empty string\");\n }\n\n logger.info(\n `[OpenAI Test] Research completed. Text length: ${result.text.length}, Annotations: ${result.annotations?.length ?? 0}`\n );\n },\n },\n ],\n },\n ],\n};\n\nexport default openaiPlugin;\n",
6
6
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport type { OpenAIPluginConfig } from \"./types\";\nimport { getApiKey, getAuthHeader, getBaseURL, isBrowser } from \"./utils/config\";\n\n(globalThis as Record<string, unknown>).AI_SDK_LOG_WARNINGS ??= false;\n\nexport function initializeOpenAI(\n _config: OpenAIPluginConfig | undefined,\n runtime: IAgentRuntime\n): void {\n void validateOpenAIConfiguration(runtime);\n}\n\nasync function validateOpenAIConfiguration(runtime: IAgentRuntime): Promise<void> {\n if (isBrowser()) {\n logger.debug(\"[OpenAI] Skipping API validation in browser environment\");\n return;\n }\n\n const apiKey = getApiKey(runtime);\n\n if (!apiKey) {\n logger.warn(\n \"[OpenAI] OPENAI_API_KEY is not configured. \" +\n \"OpenAI functionality will fail until a valid API key is provided.\"\n );\n return;\n }\n\n try {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: getAuthHeader(runtime),\n });\n\n if (!response.ok) {\n logger.warn(\n `[OpenAI] API key validation failed: ${response.status} ${response.statusText}. ` +\n \"Please verify your OPENAI_API_KEY is correct.\"\n );\n return;\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.warn(`[OpenAI] API validation error: ${message}. OpenAI functionality may be limited.`);\n }\n}\n",
@@ -16,9 +16,10 @@
16
16
  "/**\n * Deep Research model handler\n *\n * Provides deep research capabilities using OpenAI's o3-deep-research and o4-mini-deep-research models.\n * These models can find, analyze, and synthesize hundreds of sources to create comprehensive reports.\n *\n * @see https://platform.openai.com/docs/guides/deep-research\n */\n\nimport type {\n IAgentRuntime,\n JsonValue,\n ResearchAnnotation,\n ResearchCodeInterpreterCall,\n ResearchFileSearchCall,\n ResearchMcpToolCall,\n ResearchMessageOutput,\n ResearchOutputItem,\n ResearchParams,\n ResearchResult,\n ResearchTool,\n ResearchWebSearchCall,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { getApiKey, getBaseURL, getResearchModel, getResearchTimeout } from \"../utils/config\";\n\n// ============================================================================\n// Types for OpenAI Responses API\n// ============================================================================\n\n/**\n * Tool configuration for the Responses API\n */\ninterface ResponsesApiTool {\n type: \"web_search_preview\" | \"file_search\" | \"code_interpreter\" | \"mcp\";\n vector_store_ids?: string[];\n container?: { type: \"auto\" };\n server_label?: string;\n server_url?: string;\n require_approval?: \"never\";\n}\n\n/**\n * Raw response from the OpenAI Responses API\n */\ninterface ResponsesApiResponse {\n id: string;\n object: string;\n status?: \"queued\" | \"in_progress\" | \"completed\" | \"failed\";\n output?: ResponsesApiOutputItem[];\n output_text?: string;\n error?: {\n message: string;\n code: string;\n };\n}\n\n/**\n * Raw output item from the Responses API\n */\ninterface ResponsesApiOutputItem {\n id?: string;\n type: string;\n status?: string;\n action?: {\n type: string;\n query?: string;\n url?: string;\n };\n query?: string;\n results?: Array<{\n file_id: string;\n file_name: string;\n score: number;\n }>;\n code?: string;\n output?: string;\n server_label?: string;\n tool_name?: string;\n arguments?: Record<string, unknown>;\n result?: unknown;\n content?: Array<{\n type: string;\n text: string;\n annotations?: Array<{\n url: string;\n title: string;\n start_index: number;\n end_index: number;\n }>;\n }>;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Converts ResearchTool params to Responses API tool format\n */\nfunction convertToolToApi(tool: ResearchTool): ResponsesApiTool {\n switch (tool.type) {\n case \"web_search_preview\":\n return { type: \"web_search_preview\" };\n case \"file_search\":\n return {\n type: \"file_search\",\n vector_store_ids: tool.vectorStoreIds,\n };\n case \"code_interpreter\":\n return {\n type: \"code_interpreter\",\n container: tool.container ?? { type: \"auto\" },\n };\n case \"mcp\":\n return {\n type: \"mcp\",\n server_label: tool.serverLabel,\n server_url: tool.serverUrl,\n require_approval: tool.requireApproval ?? \"never\",\n };\n default:\n throw new Error(`Unknown research tool type: ${(tool as ResearchTool).type}`);\n }\n}\n\n/**\n * Converts raw API output items to typed ResearchOutputItem\n */\nfunction convertOutputItem(item: ResponsesApiOutputItem): ResearchOutputItem | null {\n switch (item.type) {\n case \"web_search_call\":\n return {\n id: item.id ?? \"\",\n type: \"web_search_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n action: {\n type: (item.action?.type as \"search\" | \"open_page\" | \"find_in_page\") ?? \"search\",\n query: item.action?.query,\n url: item.action?.url,\n },\n } satisfies ResearchWebSearchCall;\n\n case \"file_search_call\":\n return {\n id: item.id ?? \"\",\n type: \"file_search_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n query: item.query ?? \"\",\n results: item.results?.map((r) => ({\n fileId: r.file_id,\n fileName: r.file_name,\n score: r.score,\n })),\n } satisfies ResearchFileSearchCall;\n\n case \"code_interpreter_call\":\n return {\n id: item.id ?? \"\",\n type: \"code_interpreter_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n code: item.code ?? \"\",\n output: item.output,\n } satisfies ResearchCodeInterpreterCall;\n\n case \"mcp_tool_call\":\n return {\n id: item.id ?? \"\",\n type: \"mcp_tool_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n serverLabel: item.server_label ?? \"\",\n toolName: item.tool_name ?? \"\",\n arguments: (item.arguments ?? {}) as Record<string, JsonValue>,\n result: item.result as JsonValue,\n } satisfies ResearchMcpToolCall;\n\n case \"message\":\n return {\n type: \"message\",\n content:\n item.content?.map((c) => ({\n type: \"output_text\" as const,\n text: c.text,\n annotations:\n c.annotations?.map((a) => ({\n url: a.url,\n title: a.title,\n startIndex: a.start_index,\n endIndex: a.end_index,\n })) ?? [],\n })) ?? [],\n } satisfies ResearchMessageOutput;\n\n default:\n // Unknown output type, skip\n return null;\n }\n}\n\n/**\n * Extracts text and annotations from the response\n */\nfunction extractTextAndAnnotations(response: ResponsesApiResponse): {\n text: string;\n annotations: ResearchAnnotation[];\n} {\n // Try output_text first (convenience field)\n if (response.output_text) {\n // Find annotations from message output items\n const annotations: ResearchAnnotation[] = [];\n if (response.output) {\n for (const item of response.output) {\n if (item.type === \"message\" && item.content) {\n for (const content of item.content) {\n if (content.annotations) {\n for (const ann of content.annotations) {\n annotations.push({\n url: ann.url,\n title: ann.title,\n startIndex: ann.start_index,\n endIndex: ann.end_index,\n });\n }\n }\n }\n }\n }\n }\n return { text: response.output_text, annotations };\n }\n\n // Fall back to extracting from message output items\n let text = \"\";\n const annotations: ResearchAnnotation[] = [];\n\n if (response.output) {\n for (const item of response.output) {\n if (item.type === \"message\" && item.content) {\n for (const content of item.content) {\n text += content.text;\n if (content.annotations) {\n for (const ann of content.annotations) {\n annotations.push({\n url: ann.url,\n title: ann.title,\n startIndex: ann.start_index,\n endIndex: ann.end_index,\n });\n }\n }\n }\n }\n }\n }\n\n return { text, annotations };\n}\n\n// ============================================================================\n// Main Handler\n// ============================================================================\n\n/**\n * Handles RESEARCH model requests using OpenAI's deep research models.\n *\n * Deep research models can take tens of minutes to complete tasks.\n * Use background mode for long-running tasks.\n *\n * @param runtime - The agent runtime\n * @param params - Research parameters\n * @returns Research result with text, annotations, and output items\n *\n * @example\n * ```typescript\n * const result = await handleResearch(runtime, {\n * input: \"Research the economic impact of AI on global labor markets\",\n * tools: [\n * { type: \"web_search_preview\" },\n * { type: \"code_interpreter\", container: { type: \"auto\" } }\n * ],\n * background: true,\n * });\n * console.log(result.text);\n * ```\n */\nexport async function handleResearch(\n runtime: IAgentRuntime,\n params: ResearchParams\n): Promise<ResearchResult> {\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n throw new Error(\n \"OPENAI_API_KEY is required for deep research. Set it in your environment variables or runtime settings.\"\n );\n }\n\n const baseURL = getBaseURL(runtime);\n const modelName = params.model ?? getResearchModel(runtime);\n const timeout = getResearchTimeout(runtime);\n\n logger.debug(`[OpenAI] Starting deep research with model: ${modelName}`);\n logger.debug(`[OpenAI] Research input: ${params.input.substring(0, 100)}...`);\n\n // Validate that at least one data source tool is provided\n const dataSourceTools = params.tools?.filter(\n (t) => t.type === \"web_search_preview\" || t.type === \"file_search\" || t.type === \"mcp\"\n );\n\n if (!dataSourceTools || dataSourceTools.length === 0) {\n // Default to web search if no tools specified\n logger.debug(\"[OpenAI] No data source tools specified, defaulting to web_search_preview\");\n params.tools = [{ type: \"web_search_preview\" }, ...(params.tools ?? [])];\n }\n\n // Build the request body for the Responses API\n const requestBody: Record<string, unknown> = {\n model: modelName,\n input: params.input,\n };\n\n if (params.instructions) {\n requestBody.instructions = params.instructions;\n }\n\n if (params.background !== undefined) {\n requestBody.background = params.background;\n }\n\n if (params.tools && params.tools.length > 0) {\n requestBody.tools = params.tools.map(convertToolToApi);\n }\n\n if (params.maxToolCalls !== undefined) {\n requestBody.max_tool_calls = params.maxToolCalls;\n }\n\n if (params.reasoningSummary) {\n requestBody.reasoning = { summary: params.reasoningSummary };\n }\n\n logger.debug(`[OpenAI] Research request body: ${JSON.stringify(requestBody, null, 2)}`);\n\n // Make the API request\n const response = await fetch(`${baseURL}/responses`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n signal: AbortSignal.timeout(timeout),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n logger.error(`[OpenAI] Research request failed: ${response.status} ${errorText}`);\n throw new Error(`Deep research request failed: ${response.status} ${response.statusText}`);\n }\n\n const data = (await response.json()) as ResponsesApiResponse;\n\n if (data.error) {\n logger.error(`[OpenAI] Research API error: ${data.error.message}`);\n throw new Error(`Deep research error: ${data.error.message}`);\n }\n\n logger.debug(`[OpenAI] Research response received. Status: ${data.status ?? \"completed\"}`);\n\n // Extract text and annotations\n const { text, annotations } = extractTextAndAnnotations(data);\n\n // Convert output items\n const outputItems: ResearchOutputItem[] = [];\n if (data.output) {\n for (const item of data.output) {\n const converted = convertOutputItem(item);\n if (converted) {\n outputItems.push(converted);\n }\n }\n }\n\n const result: ResearchResult = {\n id: data.id,\n text,\n annotations,\n outputItems,\n status: data.status,\n };\n\n logger.info(\n `[OpenAI] Research completed. Text length: ${text.length}, Annotations: ${annotations.length}, Output items: ${outputItems.length}`\n );\n\n return result;\n}\n",
17
17
  "/**\n * Text generation model handlers\n *\n * Provides text generation using OpenAI's language models.\n */\n\nimport type { GenerateTextParams, IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModelUsage, streamText } from \"ai\";\nimport { createOpenAIClient } from \"../providers\";\nimport type { TextStreamResult, TokenUsage } from \"../types\";\nimport { getExperimentalTelemetry, getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Function to get model name from runtime\n */\ntype ModelNameGetter = (runtime: IAgentRuntime) => string;\n\ntype PromptCacheRetention = \"in_memory\" | \"24h\";\n\ninterface OpenAIPromptCacheOptions {\n promptCacheKey?: string;\n promptCacheRetention?: PromptCacheRetention;\n}\n\ninterface GenerateTextParamsWithOpenAIOptions extends GenerateTextParams {\n providerOptions?: {\n openai?: OpenAIPromptCacheOptions;\n };\n}\n\ninterface LanguageModelUsageWithCache extends LanguageModelUsage {\n cachedInputTokens?: number;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Converts AI SDK usage to our token usage format\n */\nfunction convertUsage(usage: LanguageModelUsage | undefined): TokenUsage | undefined {\n if (!usage) {\n return undefined;\n }\n\n // The AI SDK uses inputTokens/outputTokens\n const promptTokens = usage.inputTokens ?? 0;\n const completionTokens = usage.outputTokens ?? 0;\n const usageWithCache = usage as LanguageModelUsageWithCache;\n\n return {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n cachedPromptTokens: usageWithCache.cachedInputTokens,\n };\n}\n\nfunction resolvePromptCacheOptions(params: GenerateTextParams): OpenAIPromptCacheOptions {\n const withOpenAIOptions = params as GenerateTextParamsWithOpenAIOptions;\n return {\n promptCacheKey: withOpenAIOptions.providerOptions?.openai?.promptCacheKey,\n promptCacheRetention: withOpenAIOptions.providerOptions?.openai?.promptCacheRetention,\n };\n}\n\n// ============================================================================\n// Core Generation Function\n// ============================================================================\n\n/**\n * Generates text using the specified model type.\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @param modelType - The type of model (TEXT_SMALL or TEXT_LARGE)\n * @param getModelFn - Function to get the model name\n * @returns Generated text or stream result\n */\nasync function generateTextByModelType(\n runtime: IAgentRuntime,\n params: GenerateTextParams,\n modelType: ModelTypeName,\n getModelFn: ModelNameGetter\n): Promise<string | TextStreamResult> {\n const openai = createOpenAIClient(runtime);\n const modelName = getModelFn(runtime);\n\n logger.debug(`[OpenAI] Using ${modelType} model: ${modelName}`);\n const promptCacheOptions = resolvePromptCacheOptions(params);\n\n // Get system prompt from character if available\n const systemPrompt = runtime.character.system ?? undefined;\n\n // Use chat() instead of languageModel() to use the Chat Completions API\n // which has better compatibility than the Responses API\n // gpt-5 and gpt-5-mini (reasoning models) don't support temperature,\n // frequencyPenalty, presencePenalty, or stop parameters - use defaults only\n const model = openai.chat(modelName);\n const generateParams = {\n model,\n prompt: params.prompt,\n system: systemPrompt,\n maxOutputTokens: params.maxTokens ?? 8192,\n experimental_telemetry: { isEnabled: getExperimentalTelemetry(runtime) },\n ...(promptCacheOptions.promptCacheKey || promptCacheOptions.promptCacheRetention\n ? {\n providerOptions: {\n openai: {\n ...(promptCacheOptions.promptCacheKey\n ? { promptCacheKey: promptCacheOptions.promptCacheKey }\n : {}),\n ...(promptCacheOptions.promptCacheRetention\n ? { promptCacheRetention: promptCacheOptions.promptCacheRetention }\n : {}),\n },\n },\n }\n : {}),\n };\n\n // Handle streaming mode\n if (params.stream) {\n const result = streamText(generateParams);\n\n return {\n textStream: result.textStream,\n text: Promise.resolve(result.text),\n usage: Promise.resolve(result.usage).then(convertUsage),\n finishReason: Promise.resolve(result.finishReason).then((r) => r as string | undefined),\n };\n }\n\n // Non-streaming mode\n const { text, usage } = await generateText(generateParams);\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n\n return text;\n}\n\n// ============================================================================\n// Public Handlers\n// ============================================================================\n\n/**\n * Handles TEXT_SMALL model requests.\n *\n * Uses the configured small model (default: gpt-5-mini).\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @returns Generated text or stream result\n */\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextByModelType(runtime, params, ModelType.TEXT_SMALL, getSmallModel);\n}\n\n/**\n * Handles TEXT_LARGE model requests.\n *\n * Uses the configured large model (default: gpt-5).\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @returns Generated text or stream result\n */\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextByModelType(runtime, params, ModelType.TEXT_LARGE, getLargeModel);\n}\n",
18
18
  "import type { DetokenizeTextParams, IAgentRuntime, TokenizeTextParams } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { detokenizeText, tokenizeText } from \"../utils/tokenization\";\n\nexport async function handleTokenizerEncode(\n runtime: IAgentRuntime,\n params: TokenizeTextParams\n): Promise<number[]> {\n if (!params.prompt) {\n throw new Error(\"Tokenization requires a non-empty prompt\");\n }\n const modelType = params.modelType ?? ModelType.TEXT_LARGE;\n return tokenizeText(runtime, modelType, params.prompt);\n}\n\nexport async function handleTokenizerDecode(\n runtime: IAgentRuntime,\n params: DetokenizeTextParams\n): Promise<string> {\n if (!params.tokens || !Array.isArray(params.tokens)) {\n throw new Error(\"Detokenization requires a valid tokens array\");\n }\n if (params.tokens.length === 0) {\n return \"\";\n }\n for (let i = 0; i < params.tokens.length; i++) {\n const token = params.tokens[i];\n if (typeof token !== \"number\" || !Number.isFinite(token)) {\n throw new Error(`Invalid token at index ${i}: expected number`);\n }\n }\n const modelType = params.modelType ?? ModelType.TEXT_LARGE;\n return detokenizeText(runtime, modelType, params.tokens);\n}\n",
19
- "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport {\n encodingForModel,\n getEncoding,\n type Tiktoken,\n type TiktokenEncoding,\n type TiktokenModel,\n} from \"js-tiktoken\";\nimport { getLargeModel, getSmallModel } from \"./config\";\n\ntype SupportedEncoding = \"cl100k_base\" | \"o200k_base\";\n\nfunction resolveTokenizerEncoding(modelName: string): Tiktoken {\n const normalized = modelName.toLowerCase();\n const fallbackEncoding: SupportedEncoding = normalized.includes(\"4o\")\n ? \"o200k_base\"\n : \"cl100k_base\";\n try {\n return encodingForModel(modelName as TiktokenModel);\n } catch {\n return getEncoding(fallbackEncoding as TiktokenEncoding);\n }\n}\n\nfunction getModelName(runtime: IAgentRuntime, modelType: ModelTypeName): string {\n if (modelType === ModelType.TEXT_SMALL) {\n return getSmallModel(runtime);\n }\n return getLargeModel(runtime);\n}\n\nexport function tokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number[] {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.encode(text);\n}\n\nexport function detokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n tokens: number[]\n): string {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.decode(tokens);\n}\n\nexport function countTokens(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number {\n const tokens = tokenizeText(runtime, modelType, text);\n return tokens.length;\n}\n\nexport function truncateToTokenLimit(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string,\n maxTokens: number\n): string {\n const tokens = tokenizeText(runtime, modelType, text);\n if (tokens.length <= maxTokens) {\n return text;\n }\n const truncatedTokens = tokens.slice(0, maxTokens);\n return detokenizeText(runtime, modelType, truncatedTokens);\n}\n"
19
+ "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport {\n encodingForModel,\n getEncoding,\n type Tiktoken,\n type TiktokenEncoding,\n type TiktokenModel,\n} from \"js-tiktoken\";\nimport { getLargeModel, getSmallModel } from \"./config\";\n\ntype SupportedEncoding = \"cl100k_base\" | \"o200k_base\";\n\nfunction resolveTokenizerEncoding(modelName: string): Tiktoken {\n const normalized = modelName.toLowerCase();\n const fallbackEncoding: SupportedEncoding = normalized.includes(\"4o\")\n ? \"o200k_base\"\n : \"cl100k_base\";\n try {\n return encodingForModel(modelName as TiktokenModel);\n } catch {\n return getEncoding(fallbackEncoding as TiktokenEncoding);\n }\n}\n\nfunction getModelName(runtime: IAgentRuntime, modelType: ModelTypeName): string {\n if (modelType === ModelType.TEXT_SMALL) {\n return getSmallModel(runtime);\n }\n return getLargeModel(runtime);\n}\n\nexport function tokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number[] {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.encode(text);\n}\n\nexport function detokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n tokens: number[]\n): string {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.decode(tokens);\n}\n\nexport function countTokens(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number {\n const tokens = tokenizeText(runtime, modelType, text);\n return tokens.length;\n}\n\nexport function truncateToTokenLimit(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string,\n maxTokens: number\n): string {\n const tokens = tokenizeText(runtime, modelType, text);\n if (tokens.length <= maxTokens) {\n return text;\n }\n const truncatedTokens = tokens.slice(0, maxTokens);\n return detokenizeText(runtime, modelType, truncatedTokens);\n}\n",
20
+ "import pluginDefault from \"./index\";\n\nexport * from \"./index\";\nexport default pluginDefault;\n"
20
21
  ],
21
- "mappings": "AAgBA,iBAAS,eAAQ,sBCfjB,iBAAS,sBCAT,iBAAS,sBAET,SAAS,EAAW,CAAC,EAAiC,CACpD,GAAI,OAAO,QAAY,KAAe,CAAC,QAAQ,IAC7C,OAEF,IAAM,EAAQ,QAAQ,IAAI,GAC1B,OAAO,IAAU,OAAY,OAAY,OAAO,CAAK,EAGhD,SAAS,CAAU,CACxB,EACA,EACA,EACoB,CACpB,IAAM,EAAQ,EAAQ,WAAW,CAAG,EACpC,GAAI,IAAU,QAAa,IAAU,KACnC,OAAO,OAAO,CAAK,EAErB,OAAO,GAAY,CAAG,GAAK,EActB,SAAS,CAAiB,CAC/B,EACA,EACA,EACQ,CACR,IAAM,EAAQ,EAAW,EAAS,CAAG,EACrC,GAAI,IAAU,OACZ,OAAO,EAET,IAAM,EAAS,OAAO,SAAS,EAAO,EAAE,EACxC,GAAI,CAAC,OAAO,SAAS,CAAM,EACzB,MAAU,MAAM,YAAY,oCAAsC,GAAO,EAE3E,OAAO,EAGF,SAAS,CAAiB,CAC/B,EACA,EACA,EACS,CACT,IAAM,EAAQ,EAAW,EAAS,CAAG,EACrC,GAAI,IAAU,OACZ,OAAO,EAET,IAAM,EAAa,EAAM,YAAY,EACrC,OAAO,IAAe,QAAU,IAAe,KAAO,IAAe,MAGhE,SAAS,CAAS,EAAY,CACnC,OACE,OAAO,WAAe,KACtB,OAAQ,WAAuC,SAAa,IAIzD,SAAS,CAAW,CAAC,EAAiC,CAC3D,OAAO,EAAU,GAAK,CAAC,CAAC,EAAW,EAAS,yBAAyB,EAGhE,SAAS,CAAS,CAAC,EAA4C,CACpE,OAAO,EAAW,EAAS,gBAAgB,EAGtC,SAAS,EAAkB,CAAC,EAA4C,CAC7E,IAAM,EAAkB,EAAW,EAAS,0BAA0B,EACtE,GAAI,EAEF,OADA,EAAO,MAAM,2CAA2C,EACjD,EAGT,OADA,EAAO,MAAM,yDAAyD,EAC/D,EAAU,CAAO,EAGnB,SAAS,CAAa,CAC3B,EACA,EAAe,GACS,CAIxB,GAAI,EAAU,GAAK,CAAC,EAAkB,EAAS,+BAAgC,EAAK,EAClF,MAAO,CAAC,EAEV,IAAM,EAAM,EAAe,GAAmB,CAAO,EAAI,EAAU,CAAO,EAC1E,OAAO,EAAM,CAAE,cAAe,UAAU,GAAM,EAAI,CAAC,EAG9C,SAAS,CAAU,CAAC,EAAgC,CACzD,IAAM,EAAa,EAAW,EAAS,yBAAyB,EAC1D,EACJ,EAAU,GAAK,EACX,EACC,EAAW,EAAS,iBAAiB,GAAK,4BAEjD,OADA,EAAO,MAAM,sBAAsB,GAAS,EACrC,EAGF,SAAS,CAAmB,CAAC,EAAgC,CAClE,IAAM,EAAe,EAAU,EAC1B,EAAW,EAAS,8BAA8B,GACnD,EAAW,EAAS,yBAAyB,EAC7C,EAAW,EAAS,sBAAsB,EAE9C,GAAI,EAEF,OADA,EAAO,MAAM,sCAAsC,GAAc,EAC1D,EAIT,OADA,EAAO,MAAM,0DAA0D,EAChE,EAAW,CAAO,EAGpB,SAAS,CAAa,CAAC,EAAgC,CAC5D,OACE,EAAW,EAAS,oBAAoB,GAAK,EAAW,EAAS,aAAa,GAAK,aAIhF,SAAS,CAAa,CAAC,EAAgC,CAC5D,OAAO,EAAW,EAAS,oBAAoB,GAAK,EAAW,EAAS,aAAa,GAAK,QAGrF,SAAS,CAAiB,CAAC,EAAgC,CAChE,OAAO,EAAW,EAAS,wBAAwB,GAAK,yBAGnD,SAAS,EAAwB,CAAC,EAAgC,CACvE,OAAO,EAAW,EAAS,gCAAgC,GAAK,aAG3D,SAAS,EAAqB,CAAC,EAAgC,CACpE,OAAO,EAAW,EAAS,4BAA4B,GAAK,wBAGvD,SAAS,EAAW,CAAC,EAAgC,CAC1D,OAAO,EAAW,EAAS,kBAAkB,GAAK,QAG7C,SAAS,EAAW,CAAC,EAAgC,CAC1D,OAAO,EAAW,EAAS,kBAAkB,GAAK,OAG7C,SAAS,EAAkB,CAAC,EAAgC,CACjE,OAAO,EAAW,EAAS,yBAAyB,GAAK,GAGpD,SAAS,EAAa,CAAC,EAAgC,CAC5D,OAAO,EAAW,EAAS,oBAAoB,GAAK,WAG/C,SAAS,EAAwB,CAAC,EAAiC,CACxE,OAAO,EAAkB,EAAS,gCAAiC,EAAK,EAGnE,SAAS,EAAsB,CAAC,EAAgC,CACrE,OAAO,EAAkB,EAAS,8BAA+B,IAAI,EAGhE,SAAS,EAA4B,CAAC,EAAgC,CAC3E,OAAO,EAAkB,EAAS,sCAAuC,IAAI,EAGxE,SAAS,EAAgB,CAAC,EAAgC,CAC/D,OAAO,EAAW,EAAS,uBAAuB,GAAK,mBAGlD,SAAS,EAAkB,CAAC,EAAgC,CACjE,OAAO,EAAkB,EAAS,0BAA2B,OAAO,EDjLrE,WAAuC,sBAAwB,GAEzD,SAAS,EAAgB,CAC9B,EACA,EACM,CACD,GAA4B,CAAO,EAG1C,eAAe,EAA2B,CAAC,EAAuC,CAChF,GAAI,EAAU,EAAG,CACf,EAAO,MAAM,yDAAyD,EACtE,OAKF,GAAI,CAFW,EAAU,CAAO,EAEnB,CACX,EAAO,KACL,8GAEF,EACA,OAGF,GAAI,CACF,IAAM,EAAU,EAAW,CAAO,EAC5B,EAAW,MAAM,MAAM,GAAG,WAAkB,CAChD,QAAS,EAAc,CAAO,CAChC,CAAC,EAED,GAAI,CAAC,EAAS,GAAI,CAChB,EAAO,KACL,uCAAuC,EAAS,UAAU,EAAS,2DAErE,EACA,QAEF,MAAO,EAAO,CACd,IAAM,EAAU,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EACrE,EAAO,KAAK,kCAAkC,yCAA+C,GExCjG,iBAAS,sBCLT,iBAAS,uBAET,IAAM,EAAc,CAClB,IAAK,CACH,OAAQ,CAAC,GAAM,GAAM,GAAM,EAAI,EAC/B,WAAY,CAAC,GAAM,GAAM,GAAM,EAAI,CACrC,EACA,QAAS,CAAC,GAAM,GAAM,EAAI,EAC1B,IAAK,CAAC,GAAM,IAAM,IAAM,EAAI,EAC5B,KAAM,CAAC,IAAM,GAAM,GAAM,EAAI,EAC7B,KAAM,CAAC,IAAM,IAAM,IAAM,GAAI,EAC7B,UAAW,CAAC,GAAM,GAAM,IAAM,GAAI,CACpC,EAEM,GAA4B,GAWlC,SAAS,CAAU,CAAC,EAAgB,EAAgB,EAAsC,CACxF,QAAS,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAM,EAAe,EAAS,GAC9B,GAAI,IAAiB,QAAa,EAAO,EAAS,KAAO,EACvD,MAAO,GAGX,MAAO,GAGF,SAAS,CAAmB,CAAC,EAA+B,CACjE,GAAI,EAAO,OAAS,GAClB,MAAO,2BAIT,GACE,EAAW,EAAQ,EAAG,EAAY,IAAI,MAAM,GAC5C,EAAW,EAAQ,EAAG,EAAY,IAAI,UAAU,EAEhD,MAAO,YAIT,IAAM,EAAY,EAAO,GACnB,EAAa,EAAO,GAC1B,GACE,EAAW,EAAQ,EAAG,EAAY,OAAO,GACxC,IAAc,KAAQ,IAAe,SAAc,EAAa,OAAU,IAE3E,MAAO,aAIT,GAAI,EAAW,EAAQ,EAAG,EAAY,GAAG,EACvC,MAAO,YAIT,GAAI,EAAW,EAAQ,EAAG,EAAY,IAAI,EACxC,MAAO,aAIT,GAAI,EAAW,EAAQ,EAAG,EAAY,IAAI,EACxC,MAAO,YAIT,GAAI,EAAW,EAAQ,EAAG,EAAY,SAAS,EAC7C,MAAO,aAIT,OADA,GAAO,KAAK,sEAAsE,EAC3E,2BAGF,SAAS,EAAuB,CAAC,EAAiC,CACvE,OAAQ,OACD,YACH,MAAO,UACJ,aACH,MAAO,UACJ,YACH,MAAO,UACJ,aACH,MAAO,WACJ,YACH,MAAO,UACJ,aACH,MAAO,WACJ,2BACH,MAAO,OAIN,SAAS,EAAsB,CAAC,EAAiC,CAEtE,MAAO,aADK,GAAwB,CAAQ,ID3E9C,SAAS,EAAY,CAAC,EAAsC,CAC1D,OAAO,aAAiB,MAAQ,aAAiB,KAGnD,SAAS,CAAQ,CAAC,EAAiC,CACjD,OAAO,OAAO,SAAS,CAAK,EAG9B,SAAS,EAA0B,CAAC,EAAmD,CACrF,OACE,OAAO,IAAU,UACjB,IAAU,MACV,UAAW,IACV,GAAc,EAAmC,KAAK,GACrD,EAAU,EAAmC,KAAK,GAIxD,SAAS,EAAyB,CAAC,EAAkD,CACnF,OACE,OAAO,IAAU,UACjB,IAAU,MACV,aAAc,GACd,OAAQ,EAAkC,WAAa,SAI3D,eAAe,EAAiB,CAAC,EAA4B,CAC3D,IAAM,EAAW,MAAM,MAAM,CAAG,EAChC,GAAI,CAAC,EAAS,GACZ,MAAU,MAAM,mCAAmC,EAAS,QAAQ,EAEtE,OAAO,EAAS,KAAK,EAEvB,eAAsB,CAAmB,CACvC,EACA,EACiB,CACjB,IAAI,EAAY,GAAsB,CAAO,EACzC,EACA,EAAiD,CAAC,EAEtD,GAAI,OAAO,IAAU,SACnB,EAAO,MAAM,qCAAqC,GAAO,EACzD,EAAO,MAAM,GAAkB,CAAK,EAC/B,QAAI,GAAa,CAAK,EAC3B,EAAO,EACF,QAAI,EAAS,CAAK,EAAG,CAC1B,IAAM,EAAW,EAAoB,CAAK,EAC1C,EAAO,MAAM,2CAA2C,GAAU,EAClE,EAAO,IAAI,KAAK,CAAC,IAAI,WAAW,CAAK,CAAC,EAAG,CAAE,KAAM,CAAS,CAAC,EACtD,QAAI,GAA2B,CAAK,EAAG,CAE5C,GADA,EAAc,EACV,EAAM,MACR,EAAY,EAAM,MAEpB,GAAI,EAAS,EAAM,KAAK,EAAG,CACzB,IAAM,EAAW,EAAM,UAAY,EAAoB,EAAM,KAAK,EAClE,EAAO,MAAM,6BAA6B,GAAU,EACpD,EAAO,IAAI,KAAK,CAAC,IAAI,WAAW,EAAM,KAAK,CAAC,EAAG,CAAE,KAAM,CAAS,CAAC,EAEjE,OAAO,EAAM,MAEV,QAAI,GAA0B,CAAK,EACxC,EAAO,MAAM,qCAAqC,EAAM,UAAU,EAClE,EAAO,MAAM,GAAkB,EAAM,QAAQ,EAC7C,EAAc,CAAE,OAAQ,EAAM,MAAO,EAErC,WAAU,MACR,qFACF,EAGF,EAAO,MAAM,uCAAuC,GAAW,EAE/D,IAAM,EAAY,EAAc,MAAQ,aAClC,EACH,EAAc,MACf,GACE,EAAS,WAAW,QAAQ,EACvB,EACD,YACN,EAEI,EAAW,IAAI,SAIrB,GAHA,EAAS,OAAO,OAAQ,EAAM,CAAQ,EACtC,EAAS,OAAO,QAAS,CAAS,EAE9B,EAAY,SACd,EAAS,OAAO,WAAY,EAAY,QAAQ,EAElD,GAAI,EAAY,eACd,EAAS,OAAO,kBAAmB,EAAY,cAAc,EAE/D,GAAI,EAAY,OACd,EAAS,OAAO,SAAU,EAAY,MAAM,EAE9C,GAAI,EAAY,cAAgB,OAC9B,EAAS,OAAO,cAAe,OAAO,EAAY,WAAW,CAAC,EAEhE,GAAI,EAAY,uBACd,QAAW,KAAe,EAAY,uBACpC,EAAS,OAAO,4BAA6B,CAAW,EAI5D,IAAM,EAAU,EAAW,CAAO,EAC5B,EAAW,MAAM,MAAM,GAAG,yBAAgC,CAC9D,OAAQ,OACR,QAAS,EAAc,CAAO,EAC9B,KAAM,CACR,CAAC,EAED,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAY,MAAM,EAAS,KAAK,EAAE,MAAM,IAAM,eAAe,EACnE,MAAU,MACR,gCAAgC,EAAS,UAAU,EAAS,gBAAgB,GAC9E,EAIF,OADc,MAAM,EAAS,KAAK,GACtB,KAGd,eAAsB,CAAkB,CACtC,EACA,EACsB,CACtB,IAAI,EACA,EACA,EAA0B,MAC1B,EACA,EAEJ,GAAI,OAAO,IAAU,SACnB,EAAO,EACP,EAAQ,OACH,KAGL,GAFA,EAAO,EAAM,KACb,EAAQ,EAAM,MACV,WAAY,GAAS,EAAM,OAC7B,EAAS,EAAM,OAEjB,GAAI,UAAW,GAAS,EAAM,MAC5B,EAAQ,EAAM,MAEhB,GAAI,iBAAkB,GAAS,EAAM,aACnC,EAAe,EAAM,aAUzB,GANA,EAAQ,GAAS,GAAY,CAAO,EACpC,EAAQ,GAAS,GAAY,CAAO,EACpC,EAAe,GAAgB,GAAmB,CAAO,EAEzD,EAAO,MAAM,wCAAwC,GAAO,EAExD,CAAC,GAAQ,EAAK,KAAK,EAAE,SAAW,EAClC,MAAU,MAAM,wCAAwC,EAG1D,GAAI,EAAK,OAAS,KAChB,MAAU,MAAM,kDAAkD,EAGpE,IAAM,EAA0B,CAAC,QAAS,OAAQ,QAAS,OAAQ,OAAQ,SAAS,EACpF,GAAI,GAAS,CAAC,EAAY,SAAS,CAAiB,EAClD,MAAU,MAAM,kBAAkB,sBAA0B,EAAY,KAAK,IAAI,GAAG,EAGtF,IAAM,EAAU,EAAW,CAAO,EAE5B,EAAsC,CAC1C,QACA,MAAO,EACP,MAAO,EACP,gBAAiB,CACnB,EAEA,GAAI,GAAgB,EAAa,OAAS,EACxC,EAAY,aAAe,EAG7B,IAAM,EAAW,MAAM,MAAM,GAAG,iBAAwB,CACtD,OAAQ,OACR,QAAS,IACJ,EAAc,CAAO,EACxB,eAAgB,sBACZ,IAAW,MAAQ,CAAE,OAAQ,YAAa,EAAI,CAAC,CACrD,EACA,KAAM,KAAK,UAAU,CAAW,CAClC,CAAC,EAED,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAY,MAAM,EAAS,KAAK,EAAE,MAAM,IAAM,eAAe,EACnE,MAAU,MAAM,sBAAsB,EAAS,UAAU,EAAS,gBAAgB,GAAW,EAG/F,OAAO,EAAS,YAAY,EEhO9B,iBAAS,eAAQ,kBAAW,uBCA5B,oBAAS,uBAGT,IAAM,GAAoB,IAmC1B,SAAS,EAAc,CAAC,EAAwB,CAC9C,GAAI,EAAO,QAAU,GACnB,OAAO,EAET,MAAO,GAAG,EAAO,MAAM,EAAG,EAAiB,KAG7C,SAAS,EAAc,CAAC,EAA+B,CACrD,GAAI,iBAAkB,EAAO,CAC3B,IAAM,EACJ,wBAAyB,EAAQ,EAAM,oBAAsB,OACzD,EAAqB,EAAM,oBAAsB,GAAqB,aAC5E,MAAO,CACL,aAAc,EAAM,cAAgB,EACpC,iBAAkB,EAAM,kBAAoB,EAC5C,YAAa,EAAM,cAAgB,EAAM,cAAgB,IAAM,EAAM,kBAAoB,GACzF,oBACF,EAEF,GAAI,gBAAiB,GAAS,iBAAkB,EAAO,CACrD,IAAM,EAAS,EAAqB,aAAe,EAC7C,EAAU,EAAqB,cAAgB,EAC/C,EAAS,EAAqB,aAAe,EAAQ,EAC3D,MAAO,CACL,aAAc,EACd,iBAAkB,EAClB,YAAa,EACb,mBAAqB,EAAqB,iBAC5C,EAEF,MAAO,CACL,aAAc,EACd,iBAAkB,EAClB,YAAa,CACf,EAGK,SAAS,CAAmB,CACjC,EACA,EACA,EACA,EACM,CACN,IAAM,EAAa,GAAe,CAAK,EAEjC,EAAkC,CACtC,UACA,OAAQ,SACR,SAAU,SACV,OACA,OAAQ,GAAe,CAAM,EAC7B,OAAQ,CACN,OAAQ,EAAW,aACnB,WAAY,EAAW,iBACvB,MAAO,EAAW,eACd,EAAW,qBAAuB,OAClC,CAAE,OAAQ,EAAW,kBAAmB,EACxC,CAAC,CACP,CACF,EAEA,EAAQ,UAAU,GAAU,WAAY,CAAO,EDtFjD,SAAS,EAAiB,CAAC,EAAoC,CAC7D,IAAM,EAAkB,OAAO,OAAO,EAAW,EACjD,GAAI,CAAC,EAAgB,SAAS,CAAS,EACrC,MAAU,MACR,gCAAgC,sBAA8B,EAAgB,KAAK,IAAI,GACzF,EAEF,OAAO,EAGT,SAAS,EAAW,CAAC,EAA4D,CAC/E,GAAI,IAAW,KACb,OAAO,KAET,GAAI,OAAO,IAAW,SACpB,OAAO,EAET,GAAI,OAAO,IAAW,UAAY,OAAO,EAAO,OAAS,SACvD,OAAO,EAAO,KAEhB,MAAU,MAAM,sEAAsE,EAGxF,eAAsB,CAAmB,CACvC,EACA,EACmB,CACnB,IAAM,EAAiB,EAAkB,CAAO,EAC1C,EAAqB,GAAkB,GAAuB,CAAO,CAAC,EAEtE,EAAO,GAAY,CAAM,EAC/B,GAAI,IAAS,KAAM,CACjB,EAAO,MAAM,qDAAqD,EAClE,IAAM,EAAiB,MAAM,CAAkB,EAAE,KAAK,CAAC,EAEvD,OADA,EAAW,GAAK,IACT,EAGT,IAAI,EAAc,EAAK,KAAK,EAC5B,GAAI,EAAY,SAAW,EACzB,MAAU,MAAM,0CAA0C,EAM5D,IAAM,EAAW,MACjB,GAAI,EAAY,OAAS,EACvB,EAAO,KACL,uCAAuC,KAAK,KAAK,EAAY,OAAS,CAAC,uCACzE,EACA,EAAc,EAAY,MAAM,EAAG,CAAQ,EAI7C,IAAM,EAAM,GADI,EAAoB,CAAO,eAG3C,EAAO,MAAM,6CAA6C,GAAgB,EAE1E,IAAM,EAAW,MAAM,MAAM,EAAK,CAChC,OAAQ,OACR,QAAS,IACJ,EAAc,EAAS,EAAI,EAC9B,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CACnB,MAAO,EACP,MAAO,CACT,CAAC,CACH,CAAC,EAED,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAY,MAAM,EAAS,KAAK,EAAE,MAAM,IAAM,eAAe,EACnE,MAAU,MACR,+BAA+B,EAAS,UAAU,EAAS,gBAAgB,GAC7E,EAGF,IAAM,EAAQ,MAAM,EAAS,KAAK,EAE5B,EAAc,GAAM,OAAO,GACjC,GAAI,CAAC,GAAe,CAAC,EAAY,UAC/B,MAAU,MAAM,0DAA0D,EAG5E,IAAM,EAAY,EAAY,UAE9B,GAAI,EAAU,SAAW,EACvB,MAAU,MACR,qCAAqC,EAAU,oBAAoB,+CAErE,EAGF,GAAI,EAAK,MACP,EAAoB,EAAS,GAAU,eAAgB,EAAa,CAClE,aAAc,EAAK,MAAM,cACzB,iBAAkB,EAClB,YAAa,EAAK,MAAM,YAC1B,CAAC,EAIH,OADA,EAAO,MAAM,qCAAqC,EAAU,mBAAmB,EACxE,EEpHT,iBAAS,gBAAQ,uBAwBjB,IAAM,GACJ,0EAEF,eAAsB,CAAqB,CACzC,EACA,EACkC,CAClC,IAAM,EAAY,GAAc,CAAO,EACjC,EAAQ,EAAO,OAAS,EACxB,EAAmB,EAAO,MAAsB,YAChD,EAAiB,EAIvB,GAFA,GAAO,MAAM,+BAA+B,GAAW,EAEnD,CAAC,EAAO,QAAU,EAAO,OAAO,KAAK,EAAE,SAAW,EACpD,MAAU,MAAM,8CAA8C,EAGhE,GAAI,EAAQ,GAAK,EAAQ,GACvB,MAAU,MAAM,sCAAsC,EAGxD,IAAM,EAAU,EAAW,CAAO,EAE5B,EAA+C,CACnD,MAAO,EACP,OAAQ,EAAO,OACf,EAAG,EACH,MACF,EAEA,GAAI,EAAe,QACjB,EAAY,QAAU,EAAe,QAEvC,GAAI,EAAe,MACjB,EAAY,MAAQ,EAAe,MAGrC,IAAM,EAAW,MAAM,MAAM,GAAG,uBAA8B,CAC5D,OAAQ,OACR,QAAS,IACJ,EAAc,CAAO,EACxB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAW,CAClC,CAAC,EAED,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAY,MAAM,EAAS,KAAK,EAAE,MAAM,IAAM,eAAe,EACnE,MAAU,MACR,mCAAmC,EAAS,UAAU,EAAS,gBAAgB,GACjF,EAGF,IAAM,EAAQ,MAAM,EAAS,KAAK,EAElC,GAAI,CAAC,EAAK,MAAQ,EAAK,KAAK,SAAW,EACrC,MAAU,MAAM,+BAA+B,EAGjD,OAAO,EAAK,KAAK,IAAI,CAAC,KAAU,CAC9B,IAAK,EAAK,IACV,cAAe,EAAK,cACtB,EAAE,EAGJ,SAAS,EAAsB,CAAC,EAAyB,CAEvD,OADmB,EAAQ,MAAM,2BAA2B,IACxC,IAAI,KAAK,GAAK,iBAGpC,SAAS,EAA4B,CAAC,EAAyB,CAC7D,OAAO,EAAQ,QAAQ,4BAA6B,EAAE,EAAE,KAAK,EAG/D,eAAsB,CAAsB,CAC1C,EACA,EACiC,CACjC,IAAM,EAAY,GAAyB,CAAO,EAC5C,EAAY,GAA6B,CAAO,EAEtD,GAAO,MAAM,2CAA2C,GAAW,EAEnE,IAAI,EACA,EAEJ,GAAI,OAAO,IAAW,SACpB,EAAW,EACX,EAAa,GAEb,OAAW,EAAO,SAClB,EAAa,EAAO,QAAU,GAGhC,GAAI,CAAC,GAAY,EAAS,KAAK,EAAE,SAAW,EAC1C,MAAU,MAAM,8CAA8C,EAGhE,IAAM,EAAU,EAAW,CAAO,EAE5B,EAAc,CAClB,MAAO,EACP,SAAU,CACR,CACE,KAAM,OACN,QAAS,CACP,CAAE,KAAM,OAAQ,KAAM,CAAW,EACjC,CAAE,KAAM,YAAa,UAAW,CAAE,IAAK,CAAS,CAAE,CACpD,CACF,CACF,EACA,WAAY,CACd,EAEM,EAAW,MAAM,MAAM,GAAG,qBAA4B,CAC1D,OAAQ,OACR,QAAS,IACJ,EAAc,CAAO,EACxB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAW,CAClC,CAAC,EAED,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAY,MAAM,EAAS,KAAK,EAAE,MAAM,IAAM,eAAe,EACnE,MAAU,MACR,oCAAoC,EAAS,UAAU,EAAS,gBAAgB,GAClF,EAGF,IAAM,EAAQ,MAAM,EAAS,KAAK,EAElC,GAAI,EAAK,MACP,EACE,EACA,GAAU,kBACV,OAAO,IAAW,SAAW,EAAU,EAAO,QAAU,GACxD,CACE,aAAc,EAAK,MAAM,cACzB,iBAAkB,EAAK,MAAM,kBAC7B,YAAa,EAAK,MAAM,YAC1B,CACF,EAIF,IAAM,EADc,EAAK,UAAU,IACN,SAAS,QAEtC,GAAI,CAAC,EACH,MAAU,MAAM,6CAA6C,EAG/D,MAAO,CACL,MAAO,GAAuB,CAAO,EACrC,YAAa,GAA6B,CAAO,CACnD,EC/KF,iBAAS,gBAAQ,uBACjB,yBAAS,YCPT,uBAAS,wBAIT,IAAM,GAAgB,WAEf,SAAS,CAAkB,CAAC,EAAwC,CACzE,IAAM,EAAU,EAAW,CAAO,EAC5B,EAAS,EAAU,CAAO,EAEhC,GAAI,CAAC,GAAU,EAAY,CAAO,EAChC,OAAO,GAAa,CAClB,OAAQ,GACR,SACF,CAAC,EAGH,GAAI,CAAC,EACH,MAAU,MACR,uFACF,EAGF,OAAO,GAAa,CAClB,SACA,SACF,CAAC,EC1BH,iBAAS,uBACT,yBAAS,YAST,IAAM,GAAwB,CAC5B,cAAe,uBACf,WAAY,YACd,EAEO,SAAS,EAAqB,EAAuB,CAC1D,MAAO,QAAS,OAAM,WAAsD,CAC1E,GAAI,EAAE,aAAiB,IACrB,OAAO,KAET,GAAI,CACF,IAAM,EAAc,EAAK,QAAQ,GAAsB,cAAe,EAAE,EAGxE,OAFA,KAAK,MAAM,CAAW,EACtB,GAAO,MAAM,wEAAwE,EAC9E,EACP,KAAM,CAEN,OADA,GAAO,KAAK,0CAA0C,EAC/C,OFXb,eAAe,EAAyB,CACtC,EACA,EACA,EACA,EACoC,CACpC,IAAM,EAAS,EAAmB,CAAO,EACnC,EAAY,EAAW,CAAO,EAIpC,GAFA,GAAO,MAAM,kBAAkB,YAAoB,GAAW,EAE1D,CAAC,EAAO,QAAU,EAAO,OAAO,KAAK,EAAE,SAAW,EACpD,MAAU,MAAM,+CAA+C,EAGjE,GAAI,EAAO,OACT,GAAO,MACL,oGAEF,EAGF,IAAM,EAAQ,EAAO,KAAK,CAAS,GAC3B,SAAQ,SAAU,MAAM,GAAe,CAC7C,QACA,OAAQ,YACR,OAAQ,EAAO,OACf,wBAAyB,GAAsB,CACjD,CAAC,EAED,GAAI,EACF,EAAoB,EAAS,EAAW,EAAO,OAAQ,CAAK,EAG9D,GAAI,OAAO,IAAW,UAAY,IAAW,KAC3C,MAAU,MAAM,8BAA8B,OAAO,oBAAyB,EAGhF,OAAO,EAGT,eAAsB,CAAiB,CACrC,EACA,EACoC,CACpC,OAAO,GAA0B,EAAS,EAAQ,GAAU,aAAc,CAAa,EAGzF,eAAsB,CAAiB,CACrC,EACA,EACoC,CACpC,OAAO,GAA0B,EAAS,EAAQ,GAAU,aAAc,CAAa,EG7CzF,iBAAS,sBA6ET,SAAS,EAAgB,CAAC,EAAsC,CAC9D,OAAQ,EAAK,UACN,qBACH,MAAO,CAAE,KAAM,oBAAqB,MACjC,cACH,MAAO,CACL,KAAM,cACN,iBAAkB,EAAK,cACzB,MACG,mBACH,MAAO,CACL,KAAM,mBACN,UAAW,EAAK,WAAa,CAAE,KAAM,MAAO,CAC9C,MACG,MACH,MAAO,CACL,KAAM,MACN,aAAc,EAAK,YACnB,WAAY,EAAK,UACjB,iBAAkB,EAAK,iBAAmB,OAC5C,UAEA,MAAU,MAAM,+BAAgC,EAAsB,MAAM,GAOlF,SAAS,EAAiB,CAAC,EAAyD,CAClF,OAAQ,EAAK,UACN,kBACH,MAAO,CACL,GAAI,EAAK,IAAM,GACf,KAAM,kBACN,OAAS,EAAK,QAAqC,YACnD,OAAQ,CACN,KAAO,EAAK,QAAQ,MAAoD,SACxE,MAAO,EAAK,QAAQ,MACpB,IAAK,EAAK,QAAQ,GACpB,CACF,MAEG,mBACH,MAAO,CACL,GAAI,EAAK,IAAM,GACf,KAAM,mBACN,OAAS,EAAK,QAAqC,YACnD,MAAO,EAAK,OAAS,GACrB,QAAS,EAAK,SAAS,IAAI,CAAC,KAAO,CACjC,OAAQ,EAAE,QACV,SAAU,EAAE,UACZ,MAAO,EAAE,KACX,EAAE,CACJ,MAEG,wBACH,MAAO,CACL,GAAI,EAAK,IAAM,GACf,KAAM,wBACN,OAAS,EAAK,QAAqC,YACnD,KAAM,EAAK,MAAQ,GACnB,OAAQ,EAAK,MACf,MAEG,gBACH,MAAO,CACL,GAAI,EAAK,IAAM,GACf,KAAM,gBACN,OAAS,EAAK,QAAqC,YACnD,YAAa,EAAK,cAAgB,GAClC,SAAU,EAAK,WAAa,GAC5B,UAAY,EAAK,WAAa,CAAC,EAC/B,OAAQ,EAAK,MACf,MAEG,UACH,MAAO,CACL,KAAM,UACN,QACE,EAAK,SAAS,IAAI,CAAC,KAAO,CACxB,KAAM,cACN,KAAM,EAAE,KACR,YACE,EAAE,aAAa,IAAI,CAAC,KAAO,CACzB,IAAK,EAAE,IACP,MAAO,EAAE,MACT,WAAY,EAAE,YACd,SAAU,EAAE,SACd,EAAE,GAAK,CAAC,CACZ,EAAE,GAAK,CAAC,CACZ,UAIA,OAAO,MAOb,SAAS,EAAyB,CAAC,EAGjC,CAEA,GAAI,EAAS,YAAa,CAExB,IAAM,EAAoC,CAAC,EAC3C,GAAI,EAAS,QACX,QAAW,KAAQ,EAAS,OAC1B,GAAI,EAAK,OAAS,WAAa,EAAK,SAClC,QAAW,KAAW,EAAK,QACzB,GAAI,EAAQ,YACV,QAAW,KAAO,EAAQ,YACxB,EAAY,KAAK,CACf,IAAK,EAAI,IACT,MAAO,EAAI,MACX,WAAY,EAAI,YAChB,SAAU,EAAI,SAChB,CAAC,GAOb,MAAO,CAAE,KAAM,EAAS,YAAa,aAAY,EAInD,IAAI,EAAO,GACL,EAAoC,CAAC,EAE3C,GAAI,EAAS,QACX,QAAW,KAAQ,EAAS,OAC1B,GAAI,EAAK,OAAS,WAAa,EAAK,SAClC,QAAW,KAAW,EAAK,QAEzB,GADA,GAAQ,EAAQ,KACZ,EAAQ,YACV,QAAW,KAAO,EAAQ,YACxB,EAAY,KAAK,CACf,IAAK,EAAI,IACT,MAAO,EAAI,MACX,WAAY,EAAI,YAChB,SAAU,EAAI,SAChB,CAAC,GAQb,MAAO,CAAE,OAAM,aAAY,EA8B7B,eAAsB,CAAc,CAClC,EACA,EACyB,CACzB,IAAM,EAAS,EAAU,CAAO,EAChC,GAAI,CAAC,EACH,MAAU,MACR,yGACF,EAGF,IAAM,EAAU,EAAW,CAAO,EAC5B,EAAY,EAAO,OAAS,GAAiB,CAAO,EACpD,EAAU,GAAmB,CAAO,EAE1C,EAAO,MAAM,+CAA+C,GAAW,EACvE,EAAO,MAAM,4BAA4B,EAAO,MAAM,UAAU,EAAG,GAAG,MAAM,EAG5E,IAAM,EAAkB,EAAO,OAAO,OACpC,CAAC,IAAM,EAAE,OAAS,sBAAwB,EAAE,OAAS,eAAiB,EAAE,OAAS,KACnF,EAEA,GAAI,CAAC,GAAmB,EAAgB,SAAW,EAEjD,EAAO,MAAM,2EAA2E,EACxF,EAAO,MAAQ,CAAC,CAAE,KAAM,oBAAqB,EAAG,GAAI,EAAO,OAAS,CAAC,CAAE,EAIzE,IAAM,EAAuC,CAC3C,MAAO,EACP,MAAO,EAAO,KAChB,EAEA,GAAI,EAAO,aACT,EAAY,aAAe,EAAO,aAGpC,GAAI,EAAO,aAAe,OACxB,EAAY,WAAa,EAAO,WAGlC,GAAI,EAAO,OAAS,EAAO,MAAM,OAAS,EACxC,EAAY,MAAQ,EAAO,MAAM,IAAI,EAAgB,EAGvD,GAAI,EAAO,eAAiB,OAC1B,EAAY,eAAiB,EAAO,aAGtC,GAAI,EAAO,iBACT,EAAY,UAAY,CAAE,QAAS,EAAO,gBAAiB,EAG7D,EAAO,MAAM,mCAAmC,KAAK,UAAU,EAAa,KAAM,CAAC,GAAG,EAGtF,IAAM,EAAW,MAAM,MAAM,GAAG,cAAqB,CACnD,OAAQ,OACR,QAAS,CACP,cAAe,UAAU,IACzB,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAW,EAChC,OAAQ,YAAY,QAAQ,CAAO,CACrC,CAAC,EAED,GAAI,CAAC,EAAS,GAAI,CAChB,IAAM,EAAY,MAAM,EAAS,KAAK,EAEtC,MADA,EAAO,MAAM,qCAAqC,EAAS,UAAU,GAAW,EACtE,MAAM,iCAAiC,EAAS,UAAU,EAAS,YAAY,EAG3F,IAAM,EAAQ,MAAM,EAAS,KAAK,EAElC,GAAI,EAAK,MAEP,MADA,EAAO,MAAM,gCAAgC,EAAK,MAAM,SAAS,EACvD,MAAM,wBAAwB,EAAK,MAAM,SAAS,EAG9D,EAAO,MAAM,gDAAgD,EAAK,QAAU,aAAa,EAGzF,IAAQ,OAAM,eAAgB,GAA0B,CAAI,EAGtD,EAAoC,CAAC,EAC3C,GAAI,EAAK,OACP,QAAW,KAAQ,EAAK,OAAQ,CAC9B,IAAM,EAAY,GAAkB,CAAI,EACxC,GAAI,EACF,EAAY,KAAK,CAAS,EAKhC,IAAM,EAAyB,CAC7B,GAAI,EAAK,GACT,OACA,cACA,cACA,OAAQ,EAAK,MACf,EAMA,OAJA,EAAO,KACL,6CAA6C,EAAK,wBAAwB,EAAY,yBAAyB,EAAY,QAC7H,EAEO,ECnYT,iBAAS,gBAAQ,uBACjB,uBAAS,iBAAuC,YAuChD,SAAS,EAAY,CAAC,EAA+D,CACnF,GAAI,CAAC,EACH,OAIF,IAAM,EAAe,EAAM,aAAe,EACpC,EAAmB,EAAM,cAAgB,EACzC,EAAiB,EAEvB,MAAO,CACL,eACA,mBACA,YAAa,EAAe,EAC5B,mBAAoB,EAAe,iBACrC,EAGF,SAAS,EAAyB,CAAC,EAAsD,CACvF,IAAM,EAAoB,EAC1B,MAAO,CACL,eAAgB,EAAkB,iBAAiB,QAAQ,eAC3D,qBAAsB,EAAkB,iBAAiB,QAAQ,oBACnE,EAgBF,eAAe,EAAuB,CACpC,EACA,EACA,EACA,EACoC,CACpC,IAAM,EAAS,EAAmB,CAAO,EACnC,EAAY,EAAW,CAAO,EAEpC,GAAO,MAAM,kBAAkB,YAAoB,GAAW,EAC9D,IAAM,EAAqB,GAA0B,CAAM,EAGrD,EAAe,EAAQ,UAAU,QAAU,OAO3C,EAAiB,CACrB,MAFY,EAAO,KAAK,CAAS,EAGjC,OAAQ,EAAO,OACf,OAAQ,EACR,gBAAiB,EAAO,WAAa,KACrC,uBAAwB,CAAE,UAAW,GAAyB,CAAO,CAAE,KACnE,EAAmB,gBAAkB,EAAmB,qBACxD,CACE,gBAAiB,CACf,OAAQ,IACF,EAAmB,eACnB,CAAE,eAAgB,EAAmB,cAAe,EACpD,CAAC,KACD,EAAmB,qBACnB,CAAE,qBAAsB,EAAmB,oBAAqB,EAChE,CAAC,CACP,CACF,CACF,EACA,CAAC,CACP,EAGA,GAAI,EAAO,OAAQ,CACjB,IAAM,EAAS,GAAW,CAAc,EAExC,MAAO,CACL,WAAY,EAAO,WACnB,KAAM,QAAQ,QAAQ,EAAO,IAAI,EACjC,MAAO,QAAQ,QAAQ,EAAO,KAAK,EAAE,KAAK,EAAY,EACtD,aAAc,QAAQ,QAAQ,EAAO,YAAY,EAAE,KAAK,CAAC,IAAM,CAAuB,CACxF,EAIF,IAAQ,OAAM,SAAU,MAAM,GAAa,CAAc,EAEzD,GAAI,EACF,EAAoB,EAAS,EAAW,EAAO,OAAQ,CAAK,EAG9D,OAAO,EAgBT,eAAsB,CAAe,CACnC,EACA,EACoC,CACpC,OAAO,GAAwB,EAAS,EAAQ,GAAU,WAAY,CAAa,EAYrF,eAAsB,CAAe,CACnC,EACA,EACoC,CACpC,OAAO,GAAwB,EAAS,EAAQ,GAAU,WAAY,CAAa,ECtLrF,oBAAS,uBCAT,oBAAS,uBACT,2BACE,kBACA,qBASF,SAAS,EAAwB,CAAC,EAA6B,CAE7D,IAAM,EADa,EAAU,YAAY,EACc,SAAS,IAAI,EAChE,aACA,cACJ,GAAI,CACF,OAAO,GAAiB,CAA0B,EAClD,KAAM,CACN,OAAO,GAAY,CAAoC,GAI3D,SAAS,EAAY,CAAC,EAAwB,EAAkC,CAC9E,GAAI,IAAc,GAAU,WAC1B,OAAO,EAAc,CAAO,EAE9B,OAAO,EAAc,CAAO,EAGvB,SAAS,EAAY,CAC1B,EACA,EACA,EACU,CACV,IAAM,EAAY,GAAa,EAAS,CAAS,EAEjD,OADgB,GAAyB,CAAS,EACnC,OAAO,CAAI,EAGrB,SAAS,EAAc,CAC5B,EACA,EACA,EACQ,CACR,IAAM,EAAY,GAAa,EAAS,CAAS,EAEjD,OADgB,GAAyB,CAAS,EACnC,OAAO,CAAM,ED7C9B,eAAsB,CAAqB,CACzC,EACA,EACmB,CACnB,GAAI,CAAC,EAAO,OACV,MAAU,MAAM,0CAA0C,EAE5D,IAAM,EAAY,EAAO,WAAa,GAAU,WAChD,OAAO,GAAa,EAAS,EAAW,EAAO,MAAM,EAGvD,eAAsB,CAAqB,CACzC,EACA,EACiB,CACjB,GAAI,CAAC,EAAO,QAAU,CAAC,MAAM,QAAQ,EAAO,MAAM,EAChD,MAAU,MAAM,8CAA8C,EAEhE,GAAI,EAAO,OAAO,SAAW,EAC3B,MAAO,GAET,QAAS,EAAI,EAAG,EAAI,EAAO,OAAO,OAAQ,IAAK,CAC7C,IAAM,EAAQ,EAAO,OAAO,GAC5B,GAAI,OAAO,IAAU,UAAY,CAAC,OAAO,SAAS,CAAK,EACrD,MAAU,MAAM,0BAA0B,oBAAoB,EAGlE,IAAM,EAAY,EAAO,WAAa,GAAU,WAChD,OAAO,GAAe,EAAS,EAAW,EAAO,MAAM,EbKzD,SAAS,EAAa,EAAmB,CACvC,GAAI,OAAO,QAAY,IACrB,MAAO,CAAC,EAEV,OAAO,QAAQ,IAGjB,IAAM,EAAM,GAAc,EAEb,GAAuB,CAClC,KAAM,SACN,YAAa,sEAEb,OAAQ,CACN,eAAgB,EAAI,gBAAkB,KACtC,gBAAiB,EAAI,iBAAmB,KACxC,mBAAoB,EAAI,oBAAsB,KAC9C,mBAAoB,EAAI,oBAAsB,KAC9C,YAAa,EAAI,aAAe,KAChC,YAAa,EAAI,aAAe,KAChC,uBAAwB,EAAI,wBAA0B,KACtD,yBAA0B,EAAI,0BAA4B,KAC1D,qBAAsB,EAAI,sBAAwB,KAClD,4BAA6B,EAAI,6BAA+B,KAChE,+BAAgC,EAAI,gCAAkC,KACtE,oCAAqC,EAAI,qCAAuC,KAChF,8BAA+B,EAAI,+BAAiC,KACpE,sBAAuB,EAAI,uBAAyB,KACpD,wBAAyB,EAAI,yBAA2B,IAC1D,OAEM,KAAI,CAAC,EAAgC,EAAuC,CAChF,GAAiB,EAA0C,CAAO,GAGpE,OAAQ,EACL,EAAU,gBAAiB,MAC1B,EACA,IACsB,CACtB,OAAO,EAAoB,EAAS,CAAM,IAG3C,EAAU,uBAAwB,MACjC,EACA,IACsB,CACtB,OAAO,EAAsB,EAAS,CAAM,IAG7C,EAAU,uBAAwB,MACjC,EACA,IACoB,CACpB,OAAO,EAAsB,EAAS,CAAM,IAG7C,EAAU,YAAa,MACtB,EACA,IACuC,CACvC,OAAO,EAAgB,EAAS,CAAM,IAGvC,EAAU,YAAa,MACtB,EACA,IACuC,CACvC,OAAO,EAAgB,EAAS,CAAM,IAGvC,EAAU,OAAQ,MACjB,EACA,IACqC,CACrC,OAAO,EAAsB,EAAS,CAAM,IAG7C,EAAU,mBAAoB,MAC7B,EACA,IACoD,CACpD,OAAO,EAAuB,EAAS,CAAM,IAG9C,EAAU,eAAgB,MACzB,EACA,IACoB,CACpB,OAAO,EAAoB,EAAS,CAAK,IAG1C,EAAU,gBAAiB,MAC1B,EACA,IACyB,CACzB,OAAO,EAAmB,EAAS,CAAK,IAGzC,EAAU,cAAe,MACxB,EACA,IACuC,CACvC,OAAO,EAAkB,EAAS,CAAM,IAGzC,EAAU,cAAe,MACxB,EACA,IACuC,CACvC,OAAO,EAAkB,EAAS,CAAM,IAGzC,EAAU,UAAW,MACpB,EACA,IAC4B,CAC5B,OAAO,EAAe,EAAS,CAAM,EAEzC,EAEA,MAAO,CACL,CACE,KAAM,sBACN,MAAO,CACL,CACE,KAAM,+BACN,GAAI,MAAO,IAA0C,CACnD,IAAM,EAAU,EAAW,CAAO,EAC5B,EAAW,MAAM,MAAM,GAAG,WAAkB,CAChD,QAAS,EAAc,CAAO,CAChC,CAAC,EAED,GAAI,CAAC,EAAS,GACZ,MAAU,MACR,iCAAiC,EAAS,UAAU,EAAS,YAC/D,EAGF,IAAM,EAAQ,MAAM,EAAS,KAAK,EAClC,EAAO,KAAK,gCAAgC,EAAK,MAAM,QAAU,qBAAqB,EAE1F,EACA,CACE,KAAM,6BACN,GAAI,MAAO,IAA0C,CACnD,IAAM,EAAY,MAAM,EAAQ,SAAS,EAAU,eAAgB,CACjE,KAAM,eACR,CAAC,EAED,GAAI,CAAC,MAAM,QAAQ,CAAS,GAAK,EAAU,SAAW,EACpD,MAAU,MAAM,2CAA2C,EAG7D,EAAO,KAAK,0CAA0C,EAAU,mBAAmB,EAEvF,EACA,CACE,KAAM,yBACN,GAAI,MAAO,IAA0C,CACnD,IAAM,EAAO,MAAM,EAAQ,SAAS,EAAU,WAAY,CACxD,OAAQ,+BACV,CAAC,EAED,GAAI,OAAO,IAAS,UAAY,EAAK,SAAW,EAC9C,MAAU,MAAM,2CAA2C,EAG7D,EAAO,KAAK,wCAAwC,EAAK,UAAU,EAAG,EAAE,OAAO,EAEnF,EACA,CACE,KAAM,yBACN,GAAI,MAAO,IAA0C,CACnD,IAAM,EAAO,MAAM,EAAQ,SAAS,EAAU,WAAY,CACxD,OAAQ,2CACV,CAAC,EAED,GAAI,OAAO,IAAS,UAAY,EAAK,SAAW,EAC9C,MAAU,MAAM,2CAA2C,EAG7D,EAAO,KAAK,wCAAwC,EAAK,UAAU,EAAG,EAAE,OAAO,EAEnF,EACA,CACE,KAAM,kCACN,GAAI,MAAO,IAA0C,CAGnD,IAAM,EAAS,MAAM,EAAQ,SAAS,EAAU,sBAAuB,CACrE,OAHmB,yBAInB,UAAW,EAAU,UACvB,CAAC,EAED,GAAI,CAAC,MAAM,QAAQ,CAAM,GAAK,EAAO,SAAW,EAC9C,MAAU,MAAM,kDAAkD,EAGpE,IAAM,EAAc,MAAM,EAAQ,SAAS,EAAU,sBAAuB,CAC1E,SACA,UAAW,EAAU,UACvB,CAAC,EAED,GAAI,IAhBiB,yBAiBnB,MAAU,MACR,uEAAgE,IAClE,EAGF,EAAO,KAAK,iDAAiD,EAAO,gBAAgB,EAExF,EACA,CACE,KAAM,wBACN,GAAI,MAAO,IAA0C,CACnD,IAAM,EAAmB,CAAC,EAEpB,EAAS,MAAM,EAAQ,SAAS,EAAU,WAAY,CAC1D,OAAQ,0CACR,OAAQ,GACR,cAAe,CAAC,IAAkB,CAChC,EAAO,KAAK,CAAK,EAErB,CAAC,EAED,GAAI,OAAO,IAAW,UAAY,EAAO,SAAW,EAClD,MAAU,MAAM,0CAA0C,EAG5D,GAAI,EAAO,SAAW,EACpB,MAAU,MAAM,8BAA8B,EAGhD,EAAO,KAAK,iCAAiC,EAAO,wBAAwB,EAEhF,EACA,CACE,KAAM,gCACN,GAAI,MAAO,IAA0C,CAInD,IAAM,EAAS,MAAM,EAAQ,SAAS,EAAU,kBAF9C,uIAE6E,EAE/E,GACE,CAAC,GACD,OAAO,IAAW,UAClB,EAAE,UAAW,IACb,EAAE,gBAAiB,GAEnB,MAAU,MAAM,wDAAwD,EAG1E,EAAO,KAAK,mCAAmC,EAAO,QAAQ,EAElE,EACA,CACE,KAAM,4BACN,GAAI,MAAO,IAA0C,CAMnD,IAAM,EAAc,MADH,MAAM,MAFrB,wEAEmC,GACF,YAAY,EACzC,EAAc,OAAO,KAAK,IAAI,WAAW,CAAW,CAAC,EAErD,EAAgB,MAAM,EAAQ,SAAS,EAAU,cAAe,CAAW,EAEjF,GAAI,OAAO,IAAkB,SAC3B,MAAU,MAAM,sCAAsC,EAGxD,EAAO,KAAK,iCAAiC,EAAc,UAAU,EAAG,EAAE,OAAO,EAErF,EACA,CACE,KAAM,6BACN,GAAI,MAAO,IAA0C,CACnD,IAAM,EAAY,MAAM,EAAQ,SAAS,EAAU,eAAgB,CACjE,KAAM,uCACR,CAAC,EAED,GAAI,EAAE,aAAqB,cAAgB,EAAU,aAAe,EAClE,MAAU,MAAM,yCAAyC,EAG3D,EAAO,KAAK,+BAA+B,EAAU,2BAA2B,EAEpF,EACA,CACE,KAAM,gCACN,GAAI,MAAO,IAA0C,CACnD,IAAM,EAAS,MAAM,EAAQ,SAAS,EAAU,aAAc,CAC5D,OACE,+FACJ,CAAC,EAED,GAAI,CAAC,GAAU,OAAO,IAAW,SAC/B,MAAU,MAAM,2CAA2C,EAG7D,EAAO,KACL,mCAAmC,KAAK,UAAU,CAAM,EAAE,UAAU,EAAG,GAAG,GAC5E,EAEJ,EACA,CACE,KAAM,uBACN,GAAI,MAAO,IAA0C,CAGnD,IAAM,EAAS,MAAM,EAAQ,SAAS,EAAU,SAAU,CACxD,MAAO,qCACP,MAAO,CAAC,CAAE,KAAM,oBAAqB,CAAC,EACtC,aAAc,CAChB,CAAC,EAED,GAAI,CAAC,GAAU,OAAO,IAAW,UAAY,EAAE,SAAU,GACvD,MAAU,MAAM,qDAAqD,EAGvE,GAAI,OAAO,EAAO,OAAS,UAAY,EAAO,KAAK,SAAW,EAC5D,MAAU,MAAM,mDAAmD,EAGrE,EAAO,KACL,kDAAkD,EAAO,KAAK,wBAAwB,EAAO,aAAa,QAAU,GACtH,EAEJ,CACF,CACF,CACF,CACF,EAEe",
22
- "debugId": "E8CD784814D20F5364756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "DBD85045744752DE64756E2164756E21",
23
24
  "names": []
24
25
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -30,7 +40,7 @@ var __export = (target, all) => {
30
40
  var exports_index_node = {};
31
41
  __export(exports_index_node, {
32
42
  openaiPlugin: () => openaiPlugin,
33
- default: () => typescript_default
43
+ default: () => index_node_default
34
44
  });
35
45
  module.exports = __toCommonJS(exports_index_node);
36
46
 
@@ -1311,4 +1321,7 @@ var openaiPlugin = {
1311
1321
  };
1312
1322
  var typescript_default = openaiPlugin;
1313
1323
 
1314
- //# debugId=063EB1323839B08A64756E2164756E21
1324
+ // index.node.ts
1325
+ var index_node_default = typescript_default;
1326
+
1327
+ //# debugId=E519EFD4B765BFF964756E2164756E21
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../index.ts", "../../init.ts", "../../utils/config.ts", "../../models/audio.ts", "../../utils/audio.ts", "../../models/embedding.ts", "../../utils/events.ts", "../../models/image.ts", "../../models/object.ts", "../../providers/openai.ts", "../../utils/json.ts", "../../models/research.ts", "../../models/text.ts", "../../models/tokenizer.ts", "../../utils/tokenization.ts"],
3
+ "sources": ["../../index.ts", "../../init.ts", "../../utils/config.ts", "../../models/audio.ts", "../../utils/audio.ts", "../../models/embedding.ts", "../../utils/events.ts", "../../models/image.ts", "../../models/object.ts", "../../providers/openai.ts", "../../utils/json.ts", "../../models/research.ts", "../../models/text.ts", "../../models/tokenizer.ts", "../../utils/tokenization.ts", "../../index.node.ts"],
4
4
  "sourcesContent": [
5
5
  "import type {\n TextToSpeechParams as CoreTextToSpeechParams,\n TranscriptionParams as CoreTranscriptionParams,\n DetokenizeTextParams,\n GenerateTextParams,\n IAgentRuntime,\n ImageDescriptionParams,\n ImageGenerationParams,\n JsonValue,\n ObjectGenerationParams,\n Plugin,\n ResearchParams,\n ResearchResult,\n TextEmbeddingParams,\n TokenizeTextParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { initializeOpenAI } from \"./init\";\nimport {\n handleImageDescription,\n handleImageGeneration,\n handleObjectLarge,\n handleObjectSmall,\n handleResearch,\n handleTextEmbedding,\n handleTextLarge,\n handleTextSmall,\n handleTextToSpeech,\n handleTokenizerDecode,\n handleTokenizerEncode,\n handleTranscription,\n} from \"./models\";\nimport type { ImageGenerationResult, OpenAIPluginConfig, TextStreamResult } from \"./types\";\nimport { getAuthHeader, getBaseURL } from \"./utils/config\";\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction getProcessEnv(): ProcessEnvLike {\n if (typeof process === \"undefined\") {\n return {};\n }\n return process.env as ProcessEnvLike;\n}\n\nconst env = getProcessEnv();\n\nexport const openaiPlugin: Plugin = {\n name: \"openai\",\n description: \"OpenAI API integration for text, image, audio, and embedding models\",\n\n config: {\n OPENAI_API_KEY: env.OPENAI_API_KEY ?? null,\n OPENAI_BASE_URL: env.OPENAI_BASE_URL ?? null,\n OPENAI_SMALL_MODEL: env.OPENAI_SMALL_MODEL ?? null,\n OPENAI_LARGE_MODEL: env.OPENAI_LARGE_MODEL ?? null,\n SMALL_MODEL: env.SMALL_MODEL ?? null,\n LARGE_MODEL: env.LARGE_MODEL ?? null,\n OPENAI_EMBEDDING_MODEL: env.OPENAI_EMBEDDING_MODEL ?? null,\n OPENAI_EMBEDDING_API_KEY: env.OPENAI_EMBEDDING_API_KEY ?? null,\n OPENAI_EMBEDDING_URL: env.OPENAI_EMBEDDING_URL ?? null,\n OPENAI_EMBEDDING_DIMENSIONS: env.OPENAI_EMBEDDING_DIMENSIONS ?? null,\n OPENAI_IMAGE_DESCRIPTION_MODEL: env.OPENAI_IMAGE_DESCRIPTION_MODEL ?? null,\n OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS: env.OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS ?? null,\n OPENAI_EXPERIMENTAL_TELEMETRY: env.OPENAI_EXPERIMENTAL_TELEMETRY ?? null,\n OPENAI_RESEARCH_MODEL: env.OPENAI_RESEARCH_MODEL ?? null,\n OPENAI_RESEARCH_TIMEOUT: env.OPENAI_RESEARCH_TIMEOUT ?? null,\n },\n\n async init(config: Record<string, string>, runtime: IAgentRuntime): Promise<void> {\n initializeOpenAI(config as OpenAIPluginConfig | undefined, runtime);\n },\n\n models: {\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ): Promise<number[]> => {\n return handleTextEmbedding(runtime, params);\n },\n\n [ModelType.TEXT_TOKENIZER_ENCODE]: async (\n runtime: IAgentRuntime,\n params: TokenizeTextParams\n ): Promise<number[]> => {\n return handleTokenizerEncode(runtime, params);\n },\n\n [ModelType.TEXT_TOKENIZER_DECODE]: async (\n runtime: IAgentRuntime,\n params: DetokenizeTextParams\n ): Promise<string> => {\n return handleTokenizerDecode(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string | TextStreamResult> => {\n return handleTextSmall(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string | TextStreamResult> => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.IMAGE]: async (\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n ): Promise<ImageGenerationResult[]> => {\n return handleImageGeneration(runtime, params);\n },\n\n [ModelType.IMAGE_DESCRIPTION]: async (\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n ): Promise<{ title: string; description: string }> => {\n return handleImageDescription(runtime, params);\n },\n\n [ModelType.TRANSCRIPTION]: async (\n runtime: IAgentRuntime,\n input: CoreTranscriptionParams | Buffer | string\n ): Promise<string> => {\n return handleTranscription(runtime, input);\n },\n\n [ModelType.TEXT_TO_SPEECH]: async (\n runtime: IAgentRuntime,\n input: CoreTextToSpeechParams | string\n ): Promise<ArrayBuffer> => {\n return handleTextToSpeech(runtime, input);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectLarge(runtime, params);\n },\n\n [ModelType.RESEARCH]: async (\n runtime: IAgentRuntime,\n params: ResearchParams\n ): Promise<ResearchResult> => {\n return handleResearch(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"openai_plugin_tests\",\n tests: [\n {\n name: \"openai_test_api_connectivity\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: getAuthHeader(runtime),\n });\n\n if (!response.ok) {\n throw new Error(\n `API connectivity test failed: ${response.status} ${response.statusText}`\n );\n }\n\n const data = (await response.json()) as { data?: unknown[] };\n logger.info(`[OpenAI Test] API connected. ${data.data?.length ?? 0} models available.`);\n },\n },\n {\n name: \"openai_test_text_embedding\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: \"Hello, world!\",\n });\n\n if (!Array.isArray(embedding) || embedding.length === 0) {\n throw new Error(\"Embedding should return a non-empty array\");\n }\n\n logger.info(`[OpenAI Test] Generated embedding with ${embedding.length} dimensions`);\n },\n },\n {\n name: \"openai_test_text_small\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"Say hello in exactly 5 words.\",\n });\n\n if (typeof text !== \"string\" || text.length === 0) {\n throw new Error(\"TEXT_SMALL should return non-empty string\");\n }\n\n logger.info(`[OpenAI Test] TEXT_SMALL generated: \"${text.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_text_large\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"Explain quantum computing in 2 sentences.\",\n });\n\n if (typeof text !== \"string\" || text.length === 0) {\n throw new Error(\"TEXT_LARGE should return non-empty string\");\n }\n\n logger.info(`[OpenAI Test] TEXT_LARGE generated: \"${text.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_tokenizer_roundtrip\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const originalText = \"Hello, tokenizer test!\";\n\n const tokens = await runtime.useModel(ModelType.TEXT_TOKENIZER_ENCODE, {\n prompt: originalText,\n modelType: ModelType.TEXT_SMALL,\n });\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n throw new Error(\"Tokenization should return non-empty token array\");\n }\n\n const decodedText = await runtime.useModel(ModelType.TEXT_TOKENIZER_DECODE, {\n tokens,\n modelType: ModelType.TEXT_SMALL,\n });\n\n if (decodedText !== originalText) {\n throw new Error(\n `Tokenizer roundtrip failed: expected \"${originalText}\", got \"${decodedText}\"`\n );\n }\n\n logger.info(`[OpenAI Test] Tokenizer roundtrip successful (${tokens.length} tokens)`);\n },\n },\n {\n name: \"openai_test_streaming\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const chunks: string[] = [];\n\n const result = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"Count from 1 to 5, one number per line.\",\n stream: true,\n onStreamChunk: (chunk: string) => {\n chunks.push(chunk);\n },\n });\n\n if (typeof result !== \"string\" || result.length === 0) {\n throw new Error(\"Streaming should return non-empty result\");\n }\n\n if (chunks.length === 0) {\n throw new Error(\"No streaming chunks received\");\n }\n\n logger.info(`[OpenAI Test] Streaming test: ${chunks.length} chunks received`);\n },\n },\n {\n name: \"openai_test_image_description\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const testImageUrl =\n \"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Camponotus_flavomarginatus_ant.jpg/440px-Camponotus_flavomarginatus_ant.jpg\";\n\n const result = await runtime.useModel(ModelType.IMAGE_DESCRIPTION, testImageUrl);\n\n if (\n !result ||\n typeof result !== \"object\" ||\n !(\"title\" in result) ||\n !(\"description\" in result)\n ) {\n throw new Error(\"Image description should return { title, description }\");\n }\n\n logger.info(`[OpenAI Test] Image described: \"${result.title}\"`);\n },\n },\n {\n name: \"openai_test_transcription\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n // Fetch a short audio sample\n const audioUrl =\n \"https://upload.wikimedia.org/wikipedia/commons/2/25/En-Open_Source.ogg\";\n\n const response = await fetch(audioUrl);\n const arrayBuffer = await response.arrayBuffer();\n const audioBuffer = Buffer.from(new Uint8Array(arrayBuffer));\n\n const transcription = await runtime.useModel(ModelType.TRANSCRIPTION, audioBuffer);\n\n if (typeof transcription !== \"string\") {\n throw new Error(\"Transcription should return a string\");\n }\n\n logger.info(`[OpenAI Test] Transcription: \"${transcription.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_text_to_speech\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const audioData = await runtime.useModel(ModelType.TEXT_TO_SPEECH, {\n text: \"Hello, this is a text-to-speech test.\",\n });\n\n if (!(audioData instanceof ArrayBuffer) || audioData.byteLength === 0) {\n throw new Error(\"TTS should return non-empty ArrayBuffer\");\n }\n\n logger.info(`[OpenAI Test] TTS generated ${audioData.byteLength} bytes of audio`);\n },\n },\n {\n name: \"openai_test_object_generation\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const result = await runtime.useModel(ModelType.OBJECT_SMALL, {\n prompt:\n \"Return a JSON object with exactly these fields: name (string), age (number), active (boolean)\",\n });\n\n if (!result || typeof result !== \"object\") {\n throw new Error(\"Object generation should return an object\");\n }\n\n logger.info(\n `[OpenAI Test] Object generated: ${JSON.stringify(result).substring(0, 100)}`\n );\n },\n },\n {\n name: \"openai_test_research\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n // Note: Deep research can take a long time (minutes to hours)\n // This test uses a simple query with maxToolCalls to limit execution time\n const result = await runtime.useModel(ModelType.RESEARCH, {\n input: \"What is the current date and time?\",\n tools: [{ type: \"web_search_preview\" }],\n maxToolCalls: 3, // Limit tool calls for faster test execution\n });\n\n if (!result || typeof result !== \"object\" || !(\"text\" in result)) {\n throw new Error(\"Research should return an object with text property\");\n }\n\n if (typeof result.text !== \"string\" || result.text.length === 0) {\n throw new Error(\"Research result text should be a non-empty string\");\n }\n\n logger.info(\n `[OpenAI Test] Research completed. Text length: ${result.text.length}, Annotations: ${result.annotations?.length ?? 0}`\n );\n },\n },\n ],\n },\n ],\n};\n\nexport default openaiPlugin;\n",
6
6
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport type { OpenAIPluginConfig } from \"./types\";\nimport { getApiKey, getAuthHeader, getBaseURL, isBrowser } from \"./utils/config\";\n\n(globalThis as Record<string, unknown>).AI_SDK_LOG_WARNINGS ??= false;\n\nexport function initializeOpenAI(\n _config: OpenAIPluginConfig | undefined,\n runtime: IAgentRuntime\n): void {\n void validateOpenAIConfiguration(runtime);\n}\n\nasync function validateOpenAIConfiguration(runtime: IAgentRuntime): Promise<void> {\n if (isBrowser()) {\n logger.debug(\"[OpenAI] Skipping API validation in browser environment\");\n return;\n }\n\n const apiKey = getApiKey(runtime);\n\n if (!apiKey) {\n logger.warn(\n \"[OpenAI] OPENAI_API_KEY is not configured. \" +\n \"OpenAI functionality will fail until a valid API key is provided.\"\n );\n return;\n }\n\n try {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: getAuthHeader(runtime),\n });\n\n if (!response.ok) {\n logger.warn(\n `[OpenAI] API key validation failed: ${response.status} ${response.statusText}. ` +\n \"Please verify your OPENAI_API_KEY is correct.\"\n );\n return;\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.warn(`[OpenAI] API validation error: ${message}. OpenAI functionality may be limited.`);\n }\n}\n",
@@ -16,9 +16,10 @@
16
16
  "/**\n * Deep Research model handler\n *\n * Provides deep research capabilities using OpenAI's o3-deep-research and o4-mini-deep-research models.\n * These models can find, analyze, and synthesize hundreds of sources to create comprehensive reports.\n *\n * @see https://platform.openai.com/docs/guides/deep-research\n */\n\nimport type {\n IAgentRuntime,\n JsonValue,\n ResearchAnnotation,\n ResearchCodeInterpreterCall,\n ResearchFileSearchCall,\n ResearchMcpToolCall,\n ResearchMessageOutput,\n ResearchOutputItem,\n ResearchParams,\n ResearchResult,\n ResearchTool,\n ResearchWebSearchCall,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { getApiKey, getBaseURL, getResearchModel, getResearchTimeout } from \"../utils/config\";\n\n// ============================================================================\n// Types for OpenAI Responses API\n// ============================================================================\n\n/**\n * Tool configuration for the Responses API\n */\ninterface ResponsesApiTool {\n type: \"web_search_preview\" | \"file_search\" | \"code_interpreter\" | \"mcp\";\n vector_store_ids?: string[];\n container?: { type: \"auto\" };\n server_label?: string;\n server_url?: string;\n require_approval?: \"never\";\n}\n\n/**\n * Raw response from the OpenAI Responses API\n */\ninterface ResponsesApiResponse {\n id: string;\n object: string;\n status?: \"queued\" | \"in_progress\" | \"completed\" | \"failed\";\n output?: ResponsesApiOutputItem[];\n output_text?: string;\n error?: {\n message: string;\n code: string;\n };\n}\n\n/**\n * Raw output item from the Responses API\n */\ninterface ResponsesApiOutputItem {\n id?: string;\n type: string;\n status?: string;\n action?: {\n type: string;\n query?: string;\n url?: string;\n };\n query?: string;\n results?: Array<{\n file_id: string;\n file_name: string;\n score: number;\n }>;\n code?: string;\n output?: string;\n server_label?: string;\n tool_name?: string;\n arguments?: Record<string, unknown>;\n result?: unknown;\n content?: Array<{\n type: string;\n text: string;\n annotations?: Array<{\n url: string;\n title: string;\n start_index: number;\n end_index: number;\n }>;\n }>;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Converts ResearchTool params to Responses API tool format\n */\nfunction convertToolToApi(tool: ResearchTool): ResponsesApiTool {\n switch (tool.type) {\n case \"web_search_preview\":\n return { type: \"web_search_preview\" };\n case \"file_search\":\n return {\n type: \"file_search\",\n vector_store_ids: tool.vectorStoreIds,\n };\n case \"code_interpreter\":\n return {\n type: \"code_interpreter\",\n container: tool.container ?? { type: \"auto\" },\n };\n case \"mcp\":\n return {\n type: \"mcp\",\n server_label: tool.serverLabel,\n server_url: tool.serverUrl,\n require_approval: tool.requireApproval ?? \"never\",\n };\n default:\n throw new Error(`Unknown research tool type: ${(tool as ResearchTool).type}`);\n }\n}\n\n/**\n * Converts raw API output items to typed ResearchOutputItem\n */\nfunction convertOutputItem(item: ResponsesApiOutputItem): ResearchOutputItem | null {\n switch (item.type) {\n case \"web_search_call\":\n return {\n id: item.id ?? \"\",\n type: \"web_search_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n action: {\n type: (item.action?.type as \"search\" | \"open_page\" | \"find_in_page\") ?? \"search\",\n query: item.action?.query,\n url: item.action?.url,\n },\n } satisfies ResearchWebSearchCall;\n\n case \"file_search_call\":\n return {\n id: item.id ?? \"\",\n type: \"file_search_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n query: item.query ?? \"\",\n results: item.results?.map((r) => ({\n fileId: r.file_id,\n fileName: r.file_name,\n score: r.score,\n })),\n } satisfies ResearchFileSearchCall;\n\n case \"code_interpreter_call\":\n return {\n id: item.id ?? \"\",\n type: \"code_interpreter_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n code: item.code ?? \"\",\n output: item.output,\n } satisfies ResearchCodeInterpreterCall;\n\n case \"mcp_tool_call\":\n return {\n id: item.id ?? \"\",\n type: \"mcp_tool_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n serverLabel: item.server_label ?? \"\",\n toolName: item.tool_name ?? \"\",\n arguments: (item.arguments ?? {}) as Record<string, JsonValue>,\n result: item.result as JsonValue,\n } satisfies ResearchMcpToolCall;\n\n case \"message\":\n return {\n type: \"message\",\n content:\n item.content?.map((c) => ({\n type: \"output_text\" as const,\n text: c.text,\n annotations:\n c.annotations?.map((a) => ({\n url: a.url,\n title: a.title,\n startIndex: a.start_index,\n endIndex: a.end_index,\n })) ?? [],\n })) ?? [],\n } satisfies ResearchMessageOutput;\n\n default:\n // Unknown output type, skip\n return null;\n }\n}\n\n/**\n * Extracts text and annotations from the response\n */\nfunction extractTextAndAnnotations(response: ResponsesApiResponse): {\n text: string;\n annotations: ResearchAnnotation[];\n} {\n // Try output_text first (convenience field)\n if (response.output_text) {\n // Find annotations from message output items\n const annotations: ResearchAnnotation[] = [];\n if (response.output) {\n for (const item of response.output) {\n if (item.type === \"message\" && item.content) {\n for (const content of item.content) {\n if (content.annotations) {\n for (const ann of content.annotations) {\n annotations.push({\n url: ann.url,\n title: ann.title,\n startIndex: ann.start_index,\n endIndex: ann.end_index,\n });\n }\n }\n }\n }\n }\n }\n return { text: response.output_text, annotations };\n }\n\n // Fall back to extracting from message output items\n let text = \"\";\n const annotations: ResearchAnnotation[] = [];\n\n if (response.output) {\n for (const item of response.output) {\n if (item.type === \"message\" && item.content) {\n for (const content of item.content) {\n text += content.text;\n if (content.annotations) {\n for (const ann of content.annotations) {\n annotations.push({\n url: ann.url,\n title: ann.title,\n startIndex: ann.start_index,\n endIndex: ann.end_index,\n });\n }\n }\n }\n }\n }\n }\n\n return { text, annotations };\n}\n\n// ============================================================================\n// Main Handler\n// ============================================================================\n\n/**\n * Handles RESEARCH model requests using OpenAI's deep research models.\n *\n * Deep research models can take tens of minutes to complete tasks.\n * Use background mode for long-running tasks.\n *\n * @param runtime - The agent runtime\n * @param params - Research parameters\n * @returns Research result with text, annotations, and output items\n *\n * @example\n * ```typescript\n * const result = await handleResearch(runtime, {\n * input: \"Research the economic impact of AI on global labor markets\",\n * tools: [\n * { type: \"web_search_preview\" },\n * { type: \"code_interpreter\", container: { type: \"auto\" } }\n * ],\n * background: true,\n * });\n * console.log(result.text);\n * ```\n */\nexport async function handleResearch(\n runtime: IAgentRuntime,\n params: ResearchParams\n): Promise<ResearchResult> {\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n throw new Error(\n \"OPENAI_API_KEY is required for deep research. Set it in your environment variables or runtime settings.\"\n );\n }\n\n const baseURL = getBaseURL(runtime);\n const modelName = params.model ?? getResearchModel(runtime);\n const timeout = getResearchTimeout(runtime);\n\n logger.debug(`[OpenAI] Starting deep research with model: ${modelName}`);\n logger.debug(`[OpenAI] Research input: ${params.input.substring(0, 100)}...`);\n\n // Validate that at least one data source tool is provided\n const dataSourceTools = params.tools?.filter(\n (t) => t.type === \"web_search_preview\" || t.type === \"file_search\" || t.type === \"mcp\"\n );\n\n if (!dataSourceTools || dataSourceTools.length === 0) {\n // Default to web search if no tools specified\n logger.debug(\"[OpenAI] No data source tools specified, defaulting to web_search_preview\");\n params.tools = [{ type: \"web_search_preview\" }, ...(params.tools ?? [])];\n }\n\n // Build the request body for the Responses API\n const requestBody: Record<string, unknown> = {\n model: modelName,\n input: params.input,\n };\n\n if (params.instructions) {\n requestBody.instructions = params.instructions;\n }\n\n if (params.background !== undefined) {\n requestBody.background = params.background;\n }\n\n if (params.tools && params.tools.length > 0) {\n requestBody.tools = params.tools.map(convertToolToApi);\n }\n\n if (params.maxToolCalls !== undefined) {\n requestBody.max_tool_calls = params.maxToolCalls;\n }\n\n if (params.reasoningSummary) {\n requestBody.reasoning = { summary: params.reasoningSummary };\n }\n\n logger.debug(`[OpenAI] Research request body: ${JSON.stringify(requestBody, null, 2)}`);\n\n // Make the API request\n const response = await fetch(`${baseURL}/responses`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n signal: AbortSignal.timeout(timeout),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n logger.error(`[OpenAI] Research request failed: ${response.status} ${errorText}`);\n throw new Error(`Deep research request failed: ${response.status} ${response.statusText}`);\n }\n\n const data = (await response.json()) as ResponsesApiResponse;\n\n if (data.error) {\n logger.error(`[OpenAI] Research API error: ${data.error.message}`);\n throw new Error(`Deep research error: ${data.error.message}`);\n }\n\n logger.debug(`[OpenAI] Research response received. Status: ${data.status ?? \"completed\"}`);\n\n // Extract text and annotations\n const { text, annotations } = extractTextAndAnnotations(data);\n\n // Convert output items\n const outputItems: ResearchOutputItem[] = [];\n if (data.output) {\n for (const item of data.output) {\n const converted = convertOutputItem(item);\n if (converted) {\n outputItems.push(converted);\n }\n }\n }\n\n const result: ResearchResult = {\n id: data.id,\n text,\n annotations,\n outputItems,\n status: data.status,\n };\n\n logger.info(\n `[OpenAI] Research completed. Text length: ${text.length}, Annotations: ${annotations.length}, Output items: ${outputItems.length}`\n );\n\n return result;\n}\n",
17
17
  "/**\n * Text generation model handlers\n *\n * Provides text generation using OpenAI's language models.\n */\n\nimport type { GenerateTextParams, IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModelUsage, streamText } from \"ai\";\nimport { createOpenAIClient } from \"../providers\";\nimport type { TextStreamResult, TokenUsage } from \"../types\";\nimport { getExperimentalTelemetry, getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Function to get model name from runtime\n */\ntype ModelNameGetter = (runtime: IAgentRuntime) => string;\n\ntype PromptCacheRetention = \"in_memory\" | \"24h\";\n\ninterface OpenAIPromptCacheOptions {\n promptCacheKey?: string;\n promptCacheRetention?: PromptCacheRetention;\n}\n\ninterface GenerateTextParamsWithOpenAIOptions extends GenerateTextParams {\n providerOptions?: {\n openai?: OpenAIPromptCacheOptions;\n };\n}\n\ninterface LanguageModelUsageWithCache extends LanguageModelUsage {\n cachedInputTokens?: number;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Converts AI SDK usage to our token usage format\n */\nfunction convertUsage(usage: LanguageModelUsage | undefined): TokenUsage | undefined {\n if (!usage) {\n return undefined;\n }\n\n // The AI SDK uses inputTokens/outputTokens\n const promptTokens = usage.inputTokens ?? 0;\n const completionTokens = usage.outputTokens ?? 0;\n const usageWithCache = usage as LanguageModelUsageWithCache;\n\n return {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n cachedPromptTokens: usageWithCache.cachedInputTokens,\n };\n}\n\nfunction resolvePromptCacheOptions(params: GenerateTextParams): OpenAIPromptCacheOptions {\n const withOpenAIOptions = params as GenerateTextParamsWithOpenAIOptions;\n return {\n promptCacheKey: withOpenAIOptions.providerOptions?.openai?.promptCacheKey,\n promptCacheRetention: withOpenAIOptions.providerOptions?.openai?.promptCacheRetention,\n };\n}\n\n// ============================================================================\n// Core Generation Function\n// ============================================================================\n\n/**\n * Generates text using the specified model type.\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @param modelType - The type of model (TEXT_SMALL or TEXT_LARGE)\n * @param getModelFn - Function to get the model name\n * @returns Generated text or stream result\n */\nasync function generateTextByModelType(\n runtime: IAgentRuntime,\n params: GenerateTextParams,\n modelType: ModelTypeName,\n getModelFn: ModelNameGetter\n): Promise<string | TextStreamResult> {\n const openai = createOpenAIClient(runtime);\n const modelName = getModelFn(runtime);\n\n logger.debug(`[OpenAI] Using ${modelType} model: ${modelName}`);\n const promptCacheOptions = resolvePromptCacheOptions(params);\n\n // Get system prompt from character if available\n const systemPrompt = runtime.character.system ?? undefined;\n\n // Use chat() instead of languageModel() to use the Chat Completions API\n // which has better compatibility than the Responses API\n // gpt-5 and gpt-5-mini (reasoning models) don't support temperature,\n // frequencyPenalty, presencePenalty, or stop parameters - use defaults only\n const model = openai.chat(modelName);\n const generateParams = {\n model,\n prompt: params.prompt,\n system: systemPrompt,\n maxOutputTokens: params.maxTokens ?? 8192,\n experimental_telemetry: { isEnabled: getExperimentalTelemetry(runtime) },\n ...(promptCacheOptions.promptCacheKey || promptCacheOptions.promptCacheRetention\n ? {\n providerOptions: {\n openai: {\n ...(promptCacheOptions.promptCacheKey\n ? { promptCacheKey: promptCacheOptions.promptCacheKey }\n : {}),\n ...(promptCacheOptions.promptCacheRetention\n ? { promptCacheRetention: promptCacheOptions.promptCacheRetention }\n : {}),\n },\n },\n }\n : {}),\n };\n\n // Handle streaming mode\n if (params.stream) {\n const result = streamText(generateParams);\n\n return {\n textStream: result.textStream,\n text: Promise.resolve(result.text),\n usage: Promise.resolve(result.usage).then(convertUsage),\n finishReason: Promise.resolve(result.finishReason).then((r) => r as string | undefined),\n };\n }\n\n // Non-streaming mode\n const { text, usage } = await generateText(generateParams);\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n\n return text;\n}\n\n// ============================================================================\n// Public Handlers\n// ============================================================================\n\n/**\n * Handles TEXT_SMALL model requests.\n *\n * Uses the configured small model (default: gpt-5-mini).\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @returns Generated text or stream result\n */\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextByModelType(runtime, params, ModelType.TEXT_SMALL, getSmallModel);\n}\n\n/**\n * Handles TEXT_LARGE model requests.\n *\n * Uses the configured large model (default: gpt-5).\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @returns Generated text or stream result\n */\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextByModelType(runtime, params, ModelType.TEXT_LARGE, getLargeModel);\n}\n",
18
18
  "import type { DetokenizeTextParams, IAgentRuntime, TokenizeTextParams } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { detokenizeText, tokenizeText } from \"../utils/tokenization\";\n\nexport async function handleTokenizerEncode(\n runtime: IAgentRuntime,\n params: TokenizeTextParams\n): Promise<number[]> {\n if (!params.prompt) {\n throw new Error(\"Tokenization requires a non-empty prompt\");\n }\n const modelType = params.modelType ?? ModelType.TEXT_LARGE;\n return tokenizeText(runtime, modelType, params.prompt);\n}\n\nexport async function handleTokenizerDecode(\n runtime: IAgentRuntime,\n params: DetokenizeTextParams\n): Promise<string> {\n if (!params.tokens || !Array.isArray(params.tokens)) {\n throw new Error(\"Detokenization requires a valid tokens array\");\n }\n if (params.tokens.length === 0) {\n return \"\";\n }\n for (let i = 0; i < params.tokens.length; i++) {\n const token = params.tokens[i];\n if (typeof token !== \"number\" || !Number.isFinite(token)) {\n throw new Error(`Invalid token at index ${i}: expected number`);\n }\n }\n const modelType = params.modelType ?? ModelType.TEXT_LARGE;\n return detokenizeText(runtime, modelType, params.tokens);\n}\n",
19
- "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport {\n encodingForModel,\n getEncoding,\n type Tiktoken,\n type TiktokenEncoding,\n type TiktokenModel,\n} from \"js-tiktoken\";\nimport { getLargeModel, getSmallModel } from \"./config\";\n\ntype SupportedEncoding = \"cl100k_base\" | \"o200k_base\";\n\nfunction resolveTokenizerEncoding(modelName: string): Tiktoken {\n const normalized = modelName.toLowerCase();\n const fallbackEncoding: SupportedEncoding = normalized.includes(\"4o\")\n ? \"o200k_base\"\n : \"cl100k_base\";\n try {\n return encodingForModel(modelName as TiktokenModel);\n } catch {\n return getEncoding(fallbackEncoding as TiktokenEncoding);\n }\n}\n\nfunction getModelName(runtime: IAgentRuntime, modelType: ModelTypeName): string {\n if (modelType === ModelType.TEXT_SMALL) {\n return getSmallModel(runtime);\n }\n return getLargeModel(runtime);\n}\n\nexport function tokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number[] {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.encode(text);\n}\n\nexport function detokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n tokens: number[]\n): string {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.decode(tokens);\n}\n\nexport function countTokens(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number {\n const tokens = tokenizeText(runtime, modelType, text);\n return tokens.length;\n}\n\nexport function truncateToTokenLimit(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string,\n maxTokens: number\n): string {\n const tokens = tokenizeText(runtime, modelType, text);\n if (tokens.length <= maxTokens) {\n return text;\n }\n const truncatedTokens = tokens.slice(0, maxTokens);\n return detokenizeText(runtime, modelType, truncatedTokens);\n}\n"
19
+ "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport {\n encodingForModel,\n getEncoding,\n type Tiktoken,\n type TiktokenEncoding,\n type TiktokenModel,\n} from \"js-tiktoken\";\nimport { getLargeModel, getSmallModel } from \"./config\";\n\ntype SupportedEncoding = \"cl100k_base\" | \"o200k_base\";\n\nfunction resolveTokenizerEncoding(modelName: string): Tiktoken {\n const normalized = modelName.toLowerCase();\n const fallbackEncoding: SupportedEncoding = normalized.includes(\"4o\")\n ? \"o200k_base\"\n : \"cl100k_base\";\n try {\n return encodingForModel(modelName as TiktokenModel);\n } catch {\n return getEncoding(fallbackEncoding as TiktokenEncoding);\n }\n}\n\nfunction getModelName(runtime: IAgentRuntime, modelType: ModelTypeName): string {\n if (modelType === ModelType.TEXT_SMALL) {\n return getSmallModel(runtime);\n }\n return getLargeModel(runtime);\n}\n\nexport function tokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number[] {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.encode(text);\n}\n\nexport function detokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n tokens: number[]\n): string {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.decode(tokens);\n}\n\nexport function countTokens(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number {\n const tokens = tokenizeText(runtime, modelType, text);\n return tokens.length;\n}\n\nexport function truncateToTokenLimit(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string,\n maxTokens: number\n): string {\n const tokens = tokenizeText(runtime, modelType, text);\n if (tokens.length <= maxTokens) {\n return text;\n }\n const truncatedTokens = tokens.slice(0, maxTokens);\n return detokenizeText(runtime, modelType, truncatedTokens);\n}\n",
20
+ "import pluginDefault from \"./index\";\n\nexport * from \"./index\";\nexport default pluginDefault;\n"
20
21
  ],
21
- "mappings": "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",
22
- "debugId": "063EB1323839B08A64756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "E519EFD4B765BFF964756E2164756E21",
23
24
  "names": []
24
25
  }
@@ -1,3 +1,4 @@
1
+ import pluginDefault from "./index";
1
2
  export * from "./index";
2
- export { default } from "./index";
3
+ export default pluginDefault;
3
4
  //# sourceMappingURL=index.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../index.browser.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAC;AAEpC,cAAc,SAAS,CAAC;AACxB,eAAe,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
+ import pluginDefault from "./index";
1
2
  export * from "./index";
2
- export { default } from "./index";
3
+ export default pluginDefault;
3
4
  //# sourceMappingURL=index.node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../index.node.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../index.node.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAC;AAEpC,cAAc,SAAS,CAAC;AACxB,eAAe,aAAa,CAAC"}
@@ -1277,9 +1277,12 @@ var openaiPlugin = {
1277
1277
  ]
1278
1278
  };
1279
1279
  var typescript_default = openaiPlugin;
1280
+
1281
+ // index.node.ts
1282
+ var index_node_default = typescript_default;
1280
1283
  export {
1281
1284
  openaiPlugin,
1282
- typescript_default as default
1285
+ index_node_default as default
1283
1286
  };
1284
1287
 
1285
- //# debugId=04E9B4A5DFD0745264756E2164756E21
1288
+ //# debugId=C3136FC8CA2C414164756E2164756E21
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../index.ts", "../../init.ts", "../../utils/config.ts", "../../models/audio.ts", "../../utils/audio.ts", "../../models/embedding.ts", "../../utils/events.ts", "../../models/image.ts", "../../models/object.ts", "../../providers/openai.ts", "../../utils/json.ts", "../../models/research.ts", "../../models/text.ts", "../../models/tokenizer.ts", "../../utils/tokenization.ts"],
3
+ "sources": ["../../index.ts", "../../init.ts", "../../utils/config.ts", "../../models/audio.ts", "../../utils/audio.ts", "../../models/embedding.ts", "../../utils/events.ts", "../../models/image.ts", "../../models/object.ts", "../../providers/openai.ts", "../../utils/json.ts", "../../models/research.ts", "../../models/text.ts", "../../models/tokenizer.ts", "../../utils/tokenization.ts", "../../index.node.ts"],
4
4
  "sourcesContent": [
5
5
  "import type {\n TextToSpeechParams as CoreTextToSpeechParams,\n TranscriptionParams as CoreTranscriptionParams,\n DetokenizeTextParams,\n GenerateTextParams,\n IAgentRuntime,\n ImageDescriptionParams,\n ImageGenerationParams,\n JsonValue,\n ObjectGenerationParams,\n Plugin,\n ResearchParams,\n ResearchResult,\n TextEmbeddingParams,\n TokenizeTextParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { initializeOpenAI } from \"./init\";\nimport {\n handleImageDescription,\n handleImageGeneration,\n handleObjectLarge,\n handleObjectSmall,\n handleResearch,\n handleTextEmbedding,\n handleTextLarge,\n handleTextSmall,\n handleTextToSpeech,\n handleTokenizerDecode,\n handleTokenizerEncode,\n handleTranscription,\n} from \"./models\";\nimport type { ImageGenerationResult, OpenAIPluginConfig, TextStreamResult } from \"./types\";\nimport { getAuthHeader, getBaseURL } from \"./utils/config\";\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction getProcessEnv(): ProcessEnvLike {\n if (typeof process === \"undefined\") {\n return {};\n }\n return process.env as ProcessEnvLike;\n}\n\nconst env = getProcessEnv();\n\nexport const openaiPlugin: Plugin = {\n name: \"openai\",\n description: \"OpenAI API integration for text, image, audio, and embedding models\",\n\n config: {\n OPENAI_API_KEY: env.OPENAI_API_KEY ?? null,\n OPENAI_BASE_URL: env.OPENAI_BASE_URL ?? null,\n OPENAI_SMALL_MODEL: env.OPENAI_SMALL_MODEL ?? null,\n OPENAI_LARGE_MODEL: env.OPENAI_LARGE_MODEL ?? null,\n SMALL_MODEL: env.SMALL_MODEL ?? null,\n LARGE_MODEL: env.LARGE_MODEL ?? null,\n OPENAI_EMBEDDING_MODEL: env.OPENAI_EMBEDDING_MODEL ?? null,\n OPENAI_EMBEDDING_API_KEY: env.OPENAI_EMBEDDING_API_KEY ?? null,\n OPENAI_EMBEDDING_URL: env.OPENAI_EMBEDDING_URL ?? null,\n OPENAI_EMBEDDING_DIMENSIONS: env.OPENAI_EMBEDDING_DIMENSIONS ?? null,\n OPENAI_IMAGE_DESCRIPTION_MODEL: env.OPENAI_IMAGE_DESCRIPTION_MODEL ?? null,\n OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS: env.OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS ?? null,\n OPENAI_EXPERIMENTAL_TELEMETRY: env.OPENAI_EXPERIMENTAL_TELEMETRY ?? null,\n OPENAI_RESEARCH_MODEL: env.OPENAI_RESEARCH_MODEL ?? null,\n OPENAI_RESEARCH_TIMEOUT: env.OPENAI_RESEARCH_TIMEOUT ?? null,\n },\n\n async init(config: Record<string, string>, runtime: IAgentRuntime): Promise<void> {\n initializeOpenAI(config as OpenAIPluginConfig | undefined, runtime);\n },\n\n models: {\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ): Promise<number[]> => {\n return handleTextEmbedding(runtime, params);\n },\n\n [ModelType.TEXT_TOKENIZER_ENCODE]: async (\n runtime: IAgentRuntime,\n params: TokenizeTextParams\n ): Promise<number[]> => {\n return handleTokenizerEncode(runtime, params);\n },\n\n [ModelType.TEXT_TOKENIZER_DECODE]: async (\n runtime: IAgentRuntime,\n params: DetokenizeTextParams\n ): Promise<string> => {\n return handleTokenizerDecode(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string | TextStreamResult> => {\n return handleTextSmall(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string | TextStreamResult> => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.IMAGE]: async (\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n ): Promise<ImageGenerationResult[]> => {\n return handleImageGeneration(runtime, params);\n },\n\n [ModelType.IMAGE_DESCRIPTION]: async (\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n ): Promise<{ title: string; description: string }> => {\n return handleImageDescription(runtime, params);\n },\n\n [ModelType.TRANSCRIPTION]: async (\n runtime: IAgentRuntime,\n input: CoreTranscriptionParams | Buffer | string\n ): Promise<string> => {\n return handleTranscription(runtime, input);\n },\n\n [ModelType.TEXT_TO_SPEECH]: async (\n runtime: IAgentRuntime,\n input: CoreTextToSpeechParams | string\n ): Promise<ArrayBuffer> => {\n return handleTextToSpeech(runtime, input);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectLarge(runtime, params);\n },\n\n [ModelType.RESEARCH]: async (\n runtime: IAgentRuntime,\n params: ResearchParams\n ): Promise<ResearchResult> => {\n return handleResearch(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"openai_plugin_tests\",\n tests: [\n {\n name: \"openai_test_api_connectivity\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: getAuthHeader(runtime),\n });\n\n if (!response.ok) {\n throw new Error(\n `API connectivity test failed: ${response.status} ${response.statusText}`\n );\n }\n\n const data = (await response.json()) as { data?: unknown[] };\n logger.info(`[OpenAI Test] API connected. ${data.data?.length ?? 0} models available.`);\n },\n },\n {\n name: \"openai_test_text_embedding\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: \"Hello, world!\",\n });\n\n if (!Array.isArray(embedding) || embedding.length === 0) {\n throw new Error(\"Embedding should return a non-empty array\");\n }\n\n logger.info(`[OpenAI Test] Generated embedding with ${embedding.length} dimensions`);\n },\n },\n {\n name: \"openai_test_text_small\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"Say hello in exactly 5 words.\",\n });\n\n if (typeof text !== \"string\" || text.length === 0) {\n throw new Error(\"TEXT_SMALL should return non-empty string\");\n }\n\n logger.info(`[OpenAI Test] TEXT_SMALL generated: \"${text.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_text_large\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"Explain quantum computing in 2 sentences.\",\n });\n\n if (typeof text !== \"string\" || text.length === 0) {\n throw new Error(\"TEXT_LARGE should return non-empty string\");\n }\n\n logger.info(`[OpenAI Test] TEXT_LARGE generated: \"${text.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_tokenizer_roundtrip\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const originalText = \"Hello, tokenizer test!\";\n\n const tokens = await runtime.useModel(ModelType.TEXT_TOKENIZER_ENCODE, {\n prompt: originalText,\n modelType: ModelType.TEXT_SMALL,\n });\n\n if (!Array.isArray(tokens) || tokens.length === 0) {\n throw new Error(\"Tokenization should return non-empty token array\");\n }\n\n const decodedText = await runtime.useModel(ModelType.TEXT_TOKENIZER_DECODE, {\n tokens,\n modelType: ModelType.TEXT_SMALL,\n });\n\n if (decodedText !== originalText) {\n throw new Error(\n `Tokenizer roundtrip failed: expected \"${originalText}\", got \"${decodedText}\"`\n );\n }\n\n logger.info(`[OpenAI Test] Tokenizer roundtrip successful (${tokens.length} tokens)`);\n },\n },\n {\n name: \"openai_test_streaming\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const chunks: string[] = [];\n\n const result = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"Count from 1 to 5, one number per line.\",\n stream: true,\n onStreamChunk: (chunk: string) => {\n chunks.push(chunk);\n },\n });\n\n if (typeof result !== \"string\" || result.length === 0) {\n throw new Error(\"Streaming should return non-empty result\");\n }\n\n if (chunks.length === 0) {\n throw new Error(\"No streaming chunks received\");\n }\n\n logger.info(`[OpenAI Test] Streaming test: ${chunks.length} chunks received`);\n },\n },\n {\n name: \"openai_test_image_description\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const testImageUrl =\n \"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Camponotus_flavomarginatus_ant.jpg/440px-Camponotus_flavomarginatus_ant.jpg\";\n\n const result = await runtime.useModel(ModelType.IMAGE_DESCRIPTION, testImageUrl);\n\n if (\n !result ||\n typeof result !== \"object\" ||\n !(\"title\" in result) ||\n !(\"description\" in result)\n ) {\n throw new Error(\"Image description should return { title, description }\");\n }\n\n logger.info(`[OpenAI Test] Image described: \"${result.title}\"`);\n },\n },\n {\n name: \"openai_test_transcription\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n // Fetch a short audio sample\n const audioUrl =\n \"https://upload.wikimedia.org/wikipedia/commons/2/25/En-Open_Source.ogg\";\n\n const response = await fetch(audioUrl);\n const arrayBuffer = await response.arrayBuffer();\n const audioBuffer = Buffer.from(new Uint8Array(arrayBuffer));\n\n const transcription = await runtime.useModel(ModelType.TRANSCRIPTION, audioBuffer);\n\n if (typeof transcription !== \"string\") {\n throw new Error(\"Transcription should return a string\");\n }\n\n logger.info(`[OpenAI Test] Transcription: \"${transcription.substring(0, 50)}...\"`);\n },\n },\n {\n name: \"openai_test_text_to_speech\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const audioData = await runtime.useModel(ModelType.TEXT_TO_SPEECH, {\n text: \"Hello, this is a text-to-speech test.\",\n });\n\n if (!(audioData instanceof ArrayBuffer) || audioData.byteLength === 0) {\n throw new Error(\"TTS should return non-empty ArrayBuffer\");\n }\n\n logger.info(`[OpenAI Test] TTS generated ${audioData.byteLength} bytes of audio`);\n },\n },\n {\n name: \"openai_test_object_generation\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const result = await runtime.useModel(ModelType.OBJECT_SMALL, {\n prompt:\n \"Return a JSON object with exactly these fields: name (string), age (number), active (boolean)\",\n });\n\n if (!result || typeof result !== \"object\") {\n throw new Error(\"Object generation should return an object\");\n }\n\n logger.info(\n `[OpenAI Test] Object generated: ${JSON.stringify(result).substring(0, 100)}`\n );\n },\n },\n {\n name: \"openai_test_research\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n // Note: Deep research can take a long time (minutes to hours)\n // This test uses a simple query with maxToolCalls to limit execution time\n const result = await runtime.useModel(ModelType.RESEARCH, {\n input: \"What is the current date and time?\",\n tools: [{ type: \"web_search_preview\" }],\n maxToolCalls: 3, // Limit tool calls for faster test execution\n });\n\n if (!result || typeof result !== \"object\" || !(\"text\" in result)) {\n throw new Error(\"Research should return an object with text property\");\n }\n\n if (typeof result.text !== \"string\" || result.text.length === 0) {\n throw new Error(\"Research result text should be a non-empty string\");\n }\n\n logger.info(\n `[OpenAI Test] Research completed. Text length: ${result.text.length}, Annotations: ${result.annotations?.length ?? 0}`\n );\n },\n },\n ],\n },\n ],\n};\n\nexport default openaiPlugin;\n",
6
6
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport type { OpenAIPluginConfig } from \"./types\";\nimport { getApiKey, getAuthHeader, getBaseURL, isBrowser } from \"./utils/config\";\n\n(globalThis as Record<string, unknown>).AI_SDK_LOG_WARNINGS ??= false;\n\nexport function initializeOpenAI(\n _config: OpenAIPluginConfig | undefined,\n runtime: IAgentRuntime\n): void {\n void validateOpenAIConfiguration(runtime);\n}\n\nasync function validateOpenAIConfiguration(runtime: IAgentRuntime): Promise<void> {\n if (isBrowser()) {\n logger.debug(\"[OpenAI] Skipping API validation in browser environment\");\n return;\n }\n\n const apiKey = getApiKey(runtime);\n\n if (!apiKey) {\n logger.warn(\n \"[OpenAI] OPENAI_API_KEY is not configured. \" +\n \"OpenAI functionality will fail until a valid API key is provided.\"\n );\n return;\n }\n\n try {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: getAuthHeader(runtime),\n });\n\n if (!response.ok) {\n logger.warn(\n `[OpenAI] API key validation failed: ${response.status} ${response.statusText}. ` +\n \"Please verify your OPENAI_API_KEY is correct.\"\n );\n return;\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.warn(`[OpenAI] API validation error: ${message}. OpenAI functionality may be limited.`);\n }\n}\n",
@@ -16,9 +16,10 @@
16
16
  "/**\n * Deep Research model handler\n *\n * Provides deep research capabilities using OpenAI's o3-deep-research and o4-mini-deep-research models.\n * These models can find, analyze, and synthesize hundreds of sources to create comprehensive reports.\n *\n * @see https://platform.openai.com/docs/guides/deep-research\n */\n\nimport type {\n IAgentRuntime,\n JsonValue,\n ResearchAnnotation,\n ResearchCodeInterpreterCall,\n ResearchFileSearchCall,\n ResearchMcpToolCall,\n ResearchMessageOutput,\n ResearchOutputItem,\n ResearchParams,\n ResearchResult,\n ResearchTool,\n ResearchWebSearchCall,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { getApiKey, getBaseURL, getResearchModel, getResearchTimeout } from \"../utils/config\";\n\n// ============================================================================\n// Types for OpenAI Responses API\n// ============================================================================\n\n/**\n * Tool configuration for the Responses API\n */\ninterface ResponsesApiTool {\n type: \"web_search_preview\" | \"file_search\" | \"code_interpreter\" | \"mcp\";\n vector_store_ids?: string[];\n container?: { type: \"auto\" };\n server_label?: string;\n server_url?: string;\n require_approval?: \"never\";\n}\n\n/**\n * Raw response from the OpenAI Responses API\n */\ninterface ResponsesApiResponse {\n id: string;\n object: string;\n status?: \"queued\" | \"in_progress\" | \"completed\" | \"failed\";\n output?: ResponsesApiOutputItem[];\n output_text?: string;\n error?: {\n message: string;\n code: string;\n };\n}\n\n/**\n * Raw output item from the Responses API\n */\ninterface ResponsesApiOutputItem {\n id?: string;\n type: string;\n status?: string;\n action?: {\n type: string;\n query?: string;\n url?: string;\n };\n query?: string;\n results?: Array<{\n file_id: string;\n file_name: string;\n score: number;\n }>;\n code?: string;\n output?: string;\n server_label?: string;\n tool_name?: string;\n arguments?: Record<string, unknown>;\n result?: unknown;\n content?: Array<{\n type: string;\n text: string;\n annotations?: Array<{\n url: string;\n title: string;\n start_index: number;\n end_index: number;\n }>;\n }>;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Converts ResearchTool params to Responses API tool format\n */\nfunction convertToolToApi(tool: ResearchTool): ResponsesApiTool {\n switch (tool.type) {\n case \"web_search_preview\":\n return { type: \"web_search_preview\" };\n case \"file_search\":\n return {\n type: \"file_search\",\n vector_store_ids: tool.vectorStoreIds,\n };\n case \"code_interpreter\":\n return {\n type: \"code_interpreter\",\n container: tool.container ?? { type: \"auto\" },\n };\n case \"mcp\":\n return {\n type: \"mcp\",\n server_label: tool.serverLabel,\n server_url: tool.serverUrl,\n require_approval: tool.requireApproval ?? \"never\",\n };\n default:\n throw new Error(`Unknown research tool type: ${(tool as ResearchTool).type}`);\n }\n}\n\n/**\n * Converts raw API output items to typed ResearchOutputItem\n */\nfunction convertOutputItem(item: ResponsesApiOutputItem): ResearchOutputItem | null {\n switch (item.type) {\n case \"web_search_call\":\n return {\n id: item.id ?? \"\",\n type: \"web_search_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n action: {\n type: (item.action?.type as \"search\" | \"open_page\" | \"find_in_page\") ?? \"search\",\n query: item.action?.query,\n url: item.action?.url,\n },\n } satisfies ResearchWebSearchCall;\n\n case \"file_search_call\":\n return {\n id: item.id ?? \"\",\n type: \"file_search_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n query: item.query ?? \"\",\n results: item.results?.map((r) => ({\n fileId: r.file_id,\n fileName: r.file_name,\n score: r.score,\n })),\n } satisfies ResearchFileSearchCall;\n\n case \"code_interpreter_call\":\n return {\n id: item.id ?? \"\",\n type: \"code_interpreter_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n code: item.code ?? \"\",\n output: item.output,\n } satisfies ResearchCodeInterpreterCall;\n\n case \"mcp_tool_call\":\n return {\n id: item.id ?? \"\",\n type: \"mcp_tool_call\",\n status: (item.status as \"completed\" | \"failed\") ?? \"completed\",\n serverLabel: item.server_label ?? \"\",\n toolName: item.tool_name ?? \"\",\n arguments: (item.arguments ?? {}) as Record<string, JsonValue>,\n result: item.result as JsonValue,\n } satisfies ResearchMcpToolCall;\n\n case \"message\":\n return {\n type: \"message\",\n content:\n item.content?.map((c) => ({\n type: \"output_text\" as const,\n text: c.text,\n annotations:\n c.annotations?.map((a) => ({\n url: a.url,\n title: a.title,\n startIndex: a.start_index,\n endIndex: a.end_index,\n })) ?? [],\n })) ?? [],\n } satisfies ResearchMessageOutput;\n\n default:\n // Unknown output type, skip\n return null;\n }\n}\n\n/**\n * Extracts text and annotations from the response\n */\nfunction extractTextAndAnnotations(response: ResponsesApiResponse): {\n text: string;\n annotations: ResearchAnnotation[];\n} {\n // Try output_text first (convenience field)\n if (response.output_text) {\n // Find annotations from message output items\n const annotations: ResearchAnnotation[] = [];\n if (response.output) {\n for (const item of response.output) {\n if (item.type === \"message\" && item.content) {\n for (const content of item.content) {\n if (content.annotations) {\n for (const ann of content.annotations) {\n annotations.push({\n url: ann.url,\n title: ann.title,\n startIndex: ann.start_index,\n endIndex: ann.end_index,\n });\n }\n }\n }\n }\n }\n }\n return { text: response.output_text, annotations };\n }\n\n // Fall back to extracting from message output items\n let text = \"\";\n const annotations: ResearchAnnotation[] = [];\n\n if (response.output) {\n for (const item of response.output) {\n if (item.type === \"message\" && item.content) {\n for (const content of item.content) {\n text += content.text;\n if (content.annotations) {\n for (const ann of content.annotations) {\n annotations.push({\n url: ann.url,\n title: ann.title,\n startIndex: ann.start_index,\n endIndex: ann.end_index,\n });\n }\n }\n }\n }\n }\n }\n\n return { text, annotations };\n}\n\n// ============================================================================\n// Main Handler\n// ============================================================================\n\n/**\n * Handles RESEARCH model requests using OpenAI's deep research models.\n *\n * Deep research models can take tens of minutes to complete tasks.\n * Use background mode for long-running tasks.\n *\n * @param runtime - The agent runtime\n * @param params - Research parameters\n * @returns Research result with text, annotations, and output items\n *\n * @example\n * ```typescript\n * const result = await handleResearch(runtime, {\n * input: \"Research the economic impact of AI on global labor markets\",\n * tools: [\n * { type: \"web_search_preview\" },\n * { type: \"code_interpreter\", container: { type: \"auto\" } }\n * ],\n * background: true,\n * });\n * console.log(result.text);\n * ```\n */\nexport async function handleResearch(\n runtime: IAgentRuntime,\n params: ResearchParams\n): Promise<ResearchResult> {\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n throw new Error(\n \"OPENAI_API_KEY is required for deep research. Set it in your environment variables or runtime settings.\"\n );\n }\n\n const baseURL = getBaseURL(runtime);\n const modelName = params.model ?? getResearchModel(runtime);\n const timeout = getResearchTimeout(runtime);\n\n logger.debug(`[OpenAI] Starting deep research with model: ${modelName}`);\n logger.debug(`[OpenAI] Research input: ${params.input.substring(0, 100)}...`);\n\n // Validate that at least one data source tool is provided\n const dataSourceTools = params.tools?.filter(\n (t) => t.type === \"web_search_preview\" || t.type === \"file_search\" || t.type === \"mcp\"\n );\n\n if (!dataSourceTools || dataSourceTools.length === 0) {\n // Default to web search if no tools specified\n logger.debug(\"[OpenAI] No data source tools specified, defaulting to web_search_preview\");\n params.tools = [{ type: \"web_search_preview\" }, ...(params.tools ?? [])];\n }\n\n // Build the request body for the Responses API\n const requestBody: Record<string, unknown> = {\n model: modelName,\n input: params.input,\n };\n\n if (params.instructions) {\n requestBody.instructions = params.instructions;\n }\n\n if (params.background !== undefined) {\n requestBody.background = params.background;\n }\n\n if (params.tools && params.tools.length > 0) {\n requestBody.tools = params.tools.map(convertToolToApi);\n }\n\n if (params.maxToolCalls !== undefined) {\n requestBody.max_tool_calls = params.maxToolCalls;\n }\n\n if (params.reasoningSummary) {\n requestBody.reasoning = { summary: params.reasoningSummary };\n }\n\n logger.debug(`[OpenAI] Research request body: ${JSON.stringify(requestBody, null, 2)}`);\n\n // Make the API request\n const response = await fetch(`${baseURL}/responses`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n signal: AbortSignal.timeout(timeout),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n logger.error(`[OpenAI] Research request failed: ${response.status} ${errorText}`);\n throw new Error(`Deep research request failed: ${response.status} ${response.statusText}`);\n }\n\n const data = (await response.json()) as ResponsesApiResponse;\n\n if (data.error) {\n logger.error(`[OpenAI] Research API error: ${data.error.message}`);\n throw new Error(`Deep research error: ${data.error.message}`);\n }\n\n logger.debug(`[OpenAI] Research response received. Status: ${data.status ?? \"completed\"}`);\n\n // Extract text and annotations\n const { text, annotations } = extractTextAndAnnotations(data);\n\n // Convert output items\n const outputItems: ResearchOutputItem[] = [];\n if (data.output) {\n for (const item of data.output) {\n const converted = convertOutputItem(item);\n if (converted) {\n outputItems.push(converted);\n }\n }\n }\n\n const result: ResearchResult = {\n id: data.id,\n text,\n annotations,\n outputItems,\n status: data.status,\n };\n\n logger.info(\n `[OpenAI] Research completed. Text length: ${text.length}, Annotations: ${annotations.length}, Output items: ${outputItems.length}`\n );\n\n return result;\n}\n",
17
17
  "/**\n * Text generation model handlers\n *\n * Provides text generation using OpenAI's language models.\n */\n\nimport type { GenerateTextParams, IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModelUsage, streamText } from \"ai\";\nimport { createOpenAIClient } from \"../providers\";\nimport type { TextStreamResult, TokenUsage } from \"../types\";\nimport { getExperimentalTelemetry, getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Function to get model name from runtime\n */\ntype ModelNameGetter = (runtime: IAgentRuntime) => string;\n\ntype PromptCacheRetention = \"in_memory\" | \"24h\";\n\ninterface OpenAIPromptCacheOptions {\n promptCacheKey?: string;\n promptCacheRetention?: PromptCacheRetention;\n}\n\ninterface GenerateTextParamsWithOpenAIOptions extends GenerateTextParams {\n providerOptions?: {\n openai?: OpenAIPromptCacheOptions;\n };\n}\n\ninterface LanguageModelUsageWithCache extends LanguageModelUsage {\n cachedInputTokens?: number;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Converts AI SDK usage to our token usage format\n */\nfunction convertUsage(usage: LanguageModelUsage | undefined): TokenUsage | undefined {\n if (!usage) {\n return undefined;\n }\n\n // The AI SDK uses inputTokens/outputTokens\n const promptTokens = usage.inputTokens ?? 0;\n const completionTokens = usage.outputTokens ?? 0;\n const usageWithCache = usage as LanguageModelUsageWithCache;\n\n return {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n cachedPromptTokens: usageWithCache.cachedInputTokens,\n };\n}\n\nfunction resolvePromptCacheOptions(params: GenerateTextParams): OpenAIPromptCacheOptions {\n const withOpenAIOptions = params as GenerateTextParamsWithOpenAIOptions;\n return {\n promptCacheKey: withOpenAIOptions.providerOptions?.openai?.promptCacheKey,\n promptCacheRetention: withOpenAIOptions.providerOptions?.openai?.promptCacheRetention,\n };\n}\n\n// ============================================================================\n// Core Generation Function\n// ============================================================================\n\n/**\n * Generates text using the specified model type.\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @param modelType - The type of model (TEXT_SMALL or TEXT_LARGE)\n * @param getModelFn - Function to get the model name\n * @returns Generated text or stream result\n */\nasync function generateTextByModelType(\n runtime: IAgentRuntime,\n params: GenerateTextParams,\n modelType: ModelTypeName,\n getModelFn: ModelNameGetter\n): Promise<string | TextStreamResult> {\n const openai = createOpenAIClient(runtime);\n const modelName = getModelFn(runtime);\n\n logger.debug(`[OpenAI] Using ${modelType} model: ${modelName}`);\n const promptCacheOptions = resolvePromptCacheOptions(params);\n\n // Get system prompt from character if available\n const systemPrompt = runtime.character.system ?? undefined;\n\n // Use chat() instead of languageModel() to use the Chat Completions API\n // which has better compatibility than the Responses API\n // gpt-5 and gpt-5-mini (reasoning models) don't support temperature,\n // frequencyPenalty, presencePenalty, or stop parameters - use defaults only\n const model = openai.chat(modelName);\n const generateParams = {\n model,\n prompt: params.prompt,\n system: systemPrompt,\n maxOutputTokens: params.maxTokens ?? 8192,\n experimental_telemetry: { isEnabled: getExperimentalTelemetry(runtime) },\n ...(promptCacheOptions.promptCacheKey || promptCacheOptions.promptCacheRetention\n ? {\n providerOptions: {\n openai: {\n ...(promptCacheOptions.promptCacheKey\n ? { promptCacheKey: promptCacheOptions.promptCacheKey }\n : {}),\n ...(promptCacheOptions.promptCacheRetention\n ? { promptCacheRetention: promptCacheOptions.promptCacheRetention }\n : {}),\n },\n },\n }\n : {}),\n };\n\n // Handle streaming mode\n if (params.stream) {\n const result = streamText(generateParams);\n\n return {\n textStream: result.textStream,\n text: Promise.resolve(result.text),\n usage: Promise.resolve(result.usage).then(convertUsage),\n finishReason: Promise.resolve(result.finishReason).then((r) => r as string | undefined),\n };\n }\n\n // Non-streaming mode\n const { text, usage } = await generateText(generateParams);\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n\n return text;\n}\n\n// ============================================================================\n// Public Handlers\n// ============================================================================\n\n/**\n * Handles TEXT_SMALL model requests.\n *\n * Uses the configured small model (default: gpt-5-mini).\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @returns Generated text or stream result\n */\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextByModelType(runtime, params, ModelType.TEXT_SMALL, getSmallModel);\n}\n\n/**\n * Handles TEXT_LARGE model requests.\n *\n * Uses the configured large model (default: gpt-5).\n *\n * @param runtime - The agent runtime\n * @param params - Generation parameters\n * @returns Generated text or stream result\n */\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextByModelType(runtime, params, ModelType.TEXT_LARGE, getLargeModel);\n}\n",
18
18
  "import type { DetokenizeTextParams, IAgentRuntime, TokenizeTextParams } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { detokenizeText, tokenizeText } from \"../utils/tokenization\";\n\nexport async function handleTokenizerEncode(\n runtime: IAgentRuntime,\n params: TokenizeTextParams\n): Promise<number[]> {\n if (!params.prompt) {\n throw new Error(\"Tokenization requires a non-empty prompt\");\n }\n const modelType = params.modelType ?? ModelType.TEXT_LARGE;\n return tokenizeText(runtime, modelType, params.prompt);\n}\n\nexport async function handleTokenizerDecode(\n runtime: IAgentRuntime,\n params: DetokenizeTextParams\n): Promise<string> {\n if (!params.tokens || !Array.isArray(params.tokens)) {\n throw new Error(\"Detokenization requires a valid tokens array\");\n }\n if (params.tokens.length === 0) {\n return \"\";\n }\n for (let i = 0; i < params.tokens.length; i++) {\n const token = params.tokens[i];\n if (typeof token !== \"number\" || !Number.isFinite(token)) {\n throw new Error(`Invalid token at index ${i}: expected number`);\n }\n }\n const modelType = params.modelType ?? ModelType.TEXT_LARGE;\n return detokenizeText(runtime, modelType, params.tokens);\n}\n",
19
- "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport {\n encodingForModel,\n getEncoding,\n type Tiktoken,\n type TiktokenEncoding,\n type TiktokenModel,\n} from \"js-tiktoken\";\nimport { getLargeModel, getSmallModel } from \"./config\";\n\ntype SupportedEncoding = \"cl100k_base\" | \"o200k_base\";\n\nfunction resolveTokenizerEncoding(modelName: string): Tiktoken {\n const normalized = modelName.toLowerCase();\n const fallbackEncoding: SupportedEncoding = normalized.includes(\"4o\")\n ? \"o200k_base\"\n : \"cl100k_base\";\n try {\n return encodingForModel(modelName as TiktokenModel);\n } catch {\n return getEncoding(fallbackEncoding as TiktokenEncoding);\n }\n}\n\nfunction getModelName(runtime: IAgentRuntime, modelType: ModelTypeName): string {\n if (modelType === ModelType.TEXT_SMALL) {\n return getSmallModel(runtime);\n }\n return getLargeModel(runtime);\n}\n\nexport function tokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number[] {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.encode(text);\n}\n\nexport function detokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n tokens: number[]\n): string {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.decode(tokens);\n}\n\nexport function countTokens(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number {\n const tokens = tokenizeText(runtime, modelType, text);\n return tokens.length;\n}\n\nexport function truncateToTokenLimit(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string,\n maxTokens: number\n): string {\n const tokens = tokenizeText(runtime, modelType, text);\n if (tokens.length <= maxTokens) {\n return text;\n }\n const truncatedTokens = tokens.slice(0, maxTokens);\n return detokenizeText(runtime, modelType, truncatedTokens);\n}\n"
19
+ "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport {\n encodingForModel,\n getEncoding,\n type Tiktoken,\n type TiktokenEncoding,\n type TiktokenModel,\n} from \"js-tiktoken\";\nimport { getLargeModel, getSmallModel } from \"./config\";\n\ntype SupportedEncoding = \"cl100k_base\" | \"o200k_base\";\n\nfunction resolveTokenizerEncoding(modelName: string): Tiktoken {\n const normalized = modelName.toLowerCase();\n const fallbackEncoding: SupportedEncoding = normalized.includes(\"4o\")\n ? \"o200k_base\"\n : \"cl100k_base\";\n try {\n return encodingForModel(modelName as TiktokenModel);\n } catch {\n return getEncoding(fallbackEncoding as TiktokenEncoding);\n }\n}\n\nfunction getModelName(runtime: IAgentRuntime, modelType: ModelTypeName): string {\n if (modelType === ModelType.TEXT_SMALL) {\n return getSmallModel(runtime);\n }\n return getLargeModel(runtime);\n}\n\nexport function tokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number[] {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.encode(text);\n}\n\nexport function detokenizeText(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n tokens: number[]\n): string {\n const modelName = getModelName(runtime, modelType);\n const encoder = resolveTokenizerEncoding(modelName);\n return encoder.decode(tokens);\n}\n\nexport function countTokens(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string\n): number {\n const tokens = tokenizeText(runtime, modelType, text);\n return tokens.length;\n}\n\nexport function truncateToTokenLimit(\n runtime: IAgentRuntime,\n modelType: ModelTypeName,\n text: string,\n maxTokens: number\n): string {\n const tokens = tokenizeText(runtime, modelType, text);\n if (tokens.length <= maxTokens) {\n return text;\n }\n const truncatedTokens = tokens.slice(0, maxTokens);\n return detokenizeText(runtime, modelType, truncatedTokens);\n}\n",
20
+ "import pluginDefault from \"./index\";\n\nexport * from \"./index\";\nexport default pluginDefault;\n"
20
21
  ],
21
- "mappings": "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",
22
- "debugId": "04E9B4A5DFD0745264756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "C3136FC8CA2C414164756E2164756E21",
23
24
  "names": []
24
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-openai",
3
- "version": "2.0.0-alpha.13",
3
+ "version": "2.0.0-alpha.14",
4
4
  "type": "module",
5
5
  "main": "dist/cjs/index.node.cjs",
6
6
  "module": "dist/node/index.node.js",
@@ -35,7 +35,6 @@
35
35
  ],
36
36
  "dependencies": {
37
37
  "@ai-sdk/openai": "^3.0.9",
38
- "@elizaos/core": "alpha",
39
38
  "ai": "^6.0.30",
40
39
  "js-tiktoken": "^1.0.21",
41
40
  "undici": "^7.16.0"
@@ -45,10 +44,13 @@
45
44
  "@types/bun": "^1.3.8",
46
45
  "@types/json-schema": "^7.0.15",
47
46
  "@types/node": "^25.0.3",
48
- "typescript": "^5.9.3"
47
+ "typescript": "^5.9.3",
48
+ "@elizaos/core": "2.0.0-alpha.98",
49
+ "vitest": "^4.0.0"
49
50
  },
50
51
  "peerDependencies": {
51
- "zod": "^4.3.6"
52
+ "zod": "^4.3.6",
53
+ "@elizaos/core": ">=2.0.0-alpha.98 <3.0.0"
52
54
  },
53
55
  "scripts": {
54
56
  "build:ts": "bun run build.ts",