@elizaos/plugin-openai 2.0.0-alpha.3 → 2.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- import{logger as a,ModelType as T}from"@elizaos/core";import{logger as j}from"@elizaos/core";import{logger as S}from"@elizaos/core";function _o(o){if(typeof process>"u"||!process.env)return;let n=process.env[o];return n===void 0?void 0:String(n)}function A(o,n,r){let t=o.getSetting(n);if(t!==void 0&&t!==null)return String(t);return _o(n)??r}function _(o,n,r){let t=A(o,n);if(t===void 0)return r;let i=Number.parseInt(t,10);if(!Number.isFinite(i))throw Error(`Setting '${n}' must be a valid integer, got: ${t}`);return i}function q(o,n,r){let t=A(o,n);if(t===void 0)return r;let i=t.toLowerCase();return i==="true"||i==="1"||i==="yes"}function y(){return typeof globalThis<"u"&&typeof globalThis.document<"u"}function v(o){return y()&&!!A(o,"OPENAI_BROWSER_BASE_URL")}function b(o){return A(o,"OPENAI_API_KEY")}function Uo(o){let n=A(o,"OPENAI_EMBEDDING_API_KEY");if(n)return S.debug("[OpenAI] Using specific embedding API key"),n;return S.debug("[OpenAI] Falling back to general API key for embeddings"),b(o)}function k(o,n=!1){if(y()&&!q(o,"OPENAI_ALLOW_BROWSER_API_KEY",!1))return{};let r=n?Uo(o):b(o);return r?{Authorization:`Bearer ${r}`}:{}}function I(o){let n=A(o,"OPENAI_BROWSER_BASE_URL"),r=y()&&n?n:A(o,"OPENAI_BASE_URL")??"https://api.openai.com/v1";return S.debug(`[OpenAI] Base URL: ${r}`),r}function B(o){let n=y()?A(o,"OPENAI_BROWSER_EMBEDDING_URL")??A(o,"OPENAI_BROWSER_BASE_URL"):A(o,"OPENAI_EMBEDDING_URL");if(n)return S.debug(`[OpenAI] Using embedding base URL: ${n}`),n;return S.debug("[OpenAI] Falling back to general base URL for embeddings"),I(o)}function x(o){return A(o,"OPENAI_SMALL_MODEL")??A(o,"SMALL_MODEL")??"gpt-5-mini"}function N(o){return A(o,"OPENAI_LARGE_MODEL")??A(o,"LARGE_MODEL")??"gpt-5"}function u(o){return A(o,"OPENAI_EMBEDDING_MODEL")??"text-embedding-3-small"}function m(o){return A(o,"OPENAI_IMAGE_DESCRIPTION_MODEL")??"gpt-5-mini"}function oo(o){return A(o,"OPENAI_TRANSCRIPTION_MODEL")??"gpt-5-mini-transcribe"}function no(o){return A(o,"OPENAI_TTS_MODEL")??"tts-1"}function ro(o){return A(o,"OPENAI_TTS_VOICE")??"nova"}function to(o){return A(o,"OPENAI_TTS_INSTRUCTIONS")??""}function io(o){return A(o,"OPENAI_IMAGE_MODEL")??"dall-e-3"}function eo(o){return q(o,"OPENAI_EXPERIMENTAL_TELEMETRY",!1)}function co(o){return _(o,"OPENAI_EMBEDDING_DIMENSIONS",1536)}function so(o){return _(o,"OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS",8192)}function fo(o){return A(o,"OPENAI_RESEARCH_MODEL")??"o3-deep-research"}function po(o){return _(o,"OPENAI_RESEARCH_TIMEOUT",3600000)}globalThis.AI_SDK_LOG_WARNINGS??=!1;function To(o,n){Do(n)}async function Do(o){if(y()){j.debug("[OpenAI] Skipping API validation in browser environment");return}if(!b(o)){j.warn("[OpenAI] OPENAI_API_KEY is not configured. OpenAI functionality will fail until a valid API key is provided.");return}try{let r=I(o),t=await fetch(`${r}/models`,{headers:k(o)});if(!t.ok){j.warn(`[OpenAI] API key validation failed: ${t.status} ${t.statusText}. Please verify your OPENAI_API_KEY is correct.`);return}}catch(r){let t=r instanceof Error?r.message:String(r);j.warn(`[OpenAI] API validation error: ${t}. OpenAI functionality may be limited.`)}}import{logger as $}from"@elizaos/core";import{logger as Co}from"@elizaos/core";var g={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]},Fo=12;function R(o,n,r){for(let t=0;t<r.length;t++){let i=r[t];if(i===void 0||o[n+t]!==i)return!1}return!0}function U(o){if(o.length<Fo)return"application/octet-stream";if(R(o,0,g.WAV.HEADER)&&R(o,8,g.WAV.IDENTIFIER))return"audio/wav";let n=o[0],r=o[1];if(R(o,0,g.MP3_ID3)||n===255&&r!==void 0&&(r&224)===224)return"audio/mpeg";if(R(o,0,g.OGG))return"audio/ogg";if(R(o,0,g.FLAC))return"audio/flac";if(R(o,4,g.FTYP))return"audio/mp4";if(R(o,0,g.WEBM_EBML))return"audio/webm";return Co.warn("Could not detect audio format from buffer, using generic binary type"),"application/octet-stream"}function Lo(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 lo(o){return`recording.${Lo(o)}`}function Io(o){return o instanceof Blob||o instanceof File}function D(o){return Buffer.isBuffer(o)}function zo(o){return typeof o==="object"&&o!==null&&"audio"in o&&(Io(o.audio)||D(o.audio))}function Vo(o){return typeof o==="object"&&o!==null&&"audioUrl"in o&&typeof o.audioUrl==="string"}async function Ao(o){let n=await fetch(o);if(!n.ok)throw Error(`Failed to fetch audio from URL: ${n.status}`);return n.blob()}async function C(o,n){let r=oo(o),t,i={};if(typeof n==="string")$.debug(`[OpenAI] Fetching audio from URL: ${n}`),t=await Ao(n);else if(Io(n))t=n;else if(D(n)){let d=U(n);$.debug(`[OpenAI] Auto-detected audio MIME type: ${d}`),t=new Blob([new Uint8Array(n)],{type:d})}else if(zo(n)){if(i=n,n.model)r=n.model;if(D(n.audio)){let d=n.mimeType??U(n.audio);$.debug(`[OpenAI] Using MIME type: ${d}`),t=new Blob([new Uint8Array(n.audio)],{type:d})}else t=n.audio}else if(Vo(n))$.debug(`[OpenAI] Fetching audio from URL: ${n.audioUrl}`),t=await Ao(n.audioUrl),i={prompt:n.prompt};else throw Error("TRANSCRIPTION expects Blob, File, Buffer, URL string, or TranscriptionParams object");$.debug(`[OpenAI] Using TRANSCRIPTION model: ${r}`);let e=t.type||"audio/webm",p=t.name||lo(e.startsWith("audio/")?e:"audio/webm"),f=new FormData;if(f.append("file",t,p),f.append("model",r),i.language)f.append("language",i.language);if(i.responseFormat)f.append("response_format",i.responseFormat);if(i.prompt)f.append("prompt",i.prompt);if(i.temperature!==void 0)f.append("temperature",String(i.temperature));if(i.timestampGranularities)for(let d of i.timestampGranularities)f.append("timestamp_granularities[]",d);let s=I(o),c=await fetch(`${s}/audio/transcriptions`,{method:"POST",headers:k(o),body:f});if(!c.ok){let d=await c.text().catch(()=>"Unknown error");throw Error(`OpenAI transcription failed: ${c.status} ${c.statusText} - ${d}`)}return(await c.json()).text}async function F(o,n){let r,t,i="mp3",e,p;if(typeof n==="string")r=n,t=void 0;else{if(r=n.text,t=n.voice,"format"in n&&n.format)i=n.format;if("model"in n&&n.model)e=n.model;if("instructions"in n&&n.instructions)p=n.instructions}if(e=e??no(o),t=t??ro(o),p=p??to(o),$.debug(`[OpenAI] Using TEXT_TO_SPEECH model: ${e}`),!r||r.trim().length===0)throw Error("TEXT_TO_SPEECH requires non-empty text");if(r.length>4096)throw Error("TEXT_TO_SPEECH text exceeds 4096 character limit");let f=["alloy","echo","fable","onyx","nova","shimmer"];if(t&&!f.includes(t))throw Error(`Invalid voice: ${t}. Must be one of: ${f.join(", ")}`);let s=I(o),c={model:e,voice:t,input:r,response_format:i};if(p&&p.length>0)c.instructions=p;let l=await fetch(`${s}/audio/speech`,{method:"POST",headers:{...k(o),"Content-Type":"application/json",...i==="mp3"?{Accept:"audio/mpeg"}:{}},body:JSON.stringify(c)});if(!l.ok){let d=await l.text().catch(()=>"Unknown error");throw Error(`OpenAI TTS failed: ${l.status} ${l.statusText} - ${d}`)}return l.arrayBuffer()}import{logger as L,ModelType as Wo,VECTOR_DIMS as Ho}from"@elizaos/core";import{EventType as Ko}from"@elizaos/core";var Oo=200;function Xo(o){if(o.length<=Oo)return o;return`${o.slice(0,Oo)}…`}function Mo(o){if("promptTokens"in o)return{promptTokens:o.promptTokens??0,completionTokens:o.completionTokens??0,totalTokens:o.totalTokens??(o.promptTokens??0)+(o.completionTokens??0)};if("inputTokens"in o||"outputTokens"in o){let n=o.inputTokens??0,r=o.outputTokens??0;return{promptTokens:n,completionTokens:r,totalTokens:n+r}}return{promptTokens:0,completionTokens:0,totalTokens:0}}function h(o,n,r,t){let i=Mo(t),e={runtime:o,source:"openai",provider:"openai",type:n,prompt:Xo(r),tokens:{prompt:i.promptTokens,completion:i.completionTokens,total:i.totalTokens}};o.emitEvent(Ko.MODEL_USED,e)}function Go(o){let n=Object.values(Ho);if(!n.includes(o))throw Error(`Invalid embedding dimension: ${o}. Must be one of: ${n.join(", ")}`);return o}function Qo(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 z(o,n){let r=u(o),t=Go(co(o)),i=Qo(n);if(i===null){L.debug("[OpenAI] Creating test embedding for initialization");let w=Array(t).fill(0);return w[0]=0.1,w}let e=i.trim();if(e.length===0)throw Error("Cannot generate embedding for empty text");let f=`${B(o)}/embeddings`;L.debug(`[OpenAI] Generating embedding with model: ${r}`);let s=await fetch(f,{method:"POST",headers:{...k(o,!0),"Content-Type":"application/json"},body:JSON.stringify({model:r,input:e})});if(!s.ok){let w=await s.text().catch(()=>"Unknown error");throw Error(`OpenAI embedding API error: ${s.status} ${s.statusText} - ${w}`)}let c=await s.json(),l=c?.data?.[0];if(!l||!l.embedding)throw Error("OpenAI API returned invalid embedding response structure");let d=l.embedding;if(d.length!==t)throw Error(`Embedding dimension mismatch: got ${d.length}, expected ${t}. Check OPENAI_EMBEDDING_DIMENSIONS setting.`);if(c.usage)h(o,Wo.TEXT_EMBEDDING,e,{promptTokens:c.usage.prompt_tokens,completionTokens:0,totalTokens:c.usage.total_tokens});return L.debug(`[OpenAI] Generated embedding with ${d.length} dimensions`),d}import{logger as ko,ModelType as Zo}from"@elizaos/core";var wo="Please analyze this image and provide a title and detailed description.";async function V(o,n){let r=io(o),t=n.count??1,i=n.size??"1024x1024",e=n;if(ko.debug(`[OpenAI] Using IMAGE model: ${r}`),!n.prompt||n.prompt.trim().length===0)throw Error("IMAGE generation requires a non-empty prompt");if(t<1||t>10)throw Error("IMAGE count must be between 1 and 10");let p=I(o),f={model:r,prompt:n.prompt,n:t,size:i};if(e.quality)f.quality=e.quality;if(e.style)f.style=e.style;let s=await fetch(`${p}/images/generations`,{method:"POST",headers:{...k(o),"Content-Type":"application/json"},body:JSON.stringify(f)});if(!s.ok){let l=await s.text().catch(()=>"Unknown error");throw Error(`OpenAI image generation failed: ${s.status} ${s.statusText} - ${l}`)}let c=await s.json();if(!c.data||c.data.length===0)throw Error("OpenAI API returned no images");return c.data.map((l)=>({url:l.url,revisedPrompt:l.revised_prompt}))}function Yo(o){return o.match(/title[:\s]+(.+?)(?:\n|$)/i)?.[1]?.trim()??"Image Analysis"}function qo(o){return o.replace(/title[:\s]+(.+?)(?:\n|$)/i,"").trim()}async function K(o,n){let r=m(o),t=so(o);ko.debug(`[OpenAI] Using IMAGE_DESCRIPTION model: ${r}`);let i,e;if(typeof n==="string")i=n,e=wo;else i=n.imageUrl,e=n.prompt??wo;if(!i||i.trim().length===0)throw Error("IMAGE_DESCRIPTION requires a valid image URL");let p=I(o),f={model:r,messages:[{role:"user",content:[{type:"text",text:e},{type:"image_url",image_url:{url:i}}]}],max_tokens:t},s=await fetch(`${p}/chat/completions`,{method:"POST",headers:{...k(o),"Content-Type":"application/json"},body:JSON.stringify(f)});if(!s.ok){let w=await s.text().catch(()=>"Unknown error");throw Error(`OpenAI image description failed: ${s.status} ${s.statusText} - ${w}`)}let c=await s.json();if(c.usage)h(o,Zo.IMAGE_DESCRIPTION,typeof n==="string"?n:n.prompt??"",{promptTokens:c.usage.prompt_tokens,completionTokens:c.usage.completion_tokens,totalTokens:c.usage.total_tokens});let d=c.choices?.[0]?.message?.content;if(!d)throw Error("OpenAI API returned empty image description");return{title:Yo(d),description:qo(d)}}import{logger as Po,ModelType as Eo}from"@elizaos/core";import{generateObject as mo}from"ai";import{createOpenAI as ao}from"@ai-sdk/openai";var vo="sk-proxy";function J(o){let n=I(o),r=b(o);if(!r&&v(o))return ao({apiKey:vo,baseURL:n});if(!r)throw Error("OPENAI_API_KEY is required. Set it in your environment variables or runtime settings.");return ao({apiKey:r,baseURL:n})}import{logger as bo}from"@elizaos/core";import{JSONParseError as Bo}from"ai";var uo={MARKDOWN_JSON:/```json\n|\n```|```/g,WHITESPACE:/^\s+|\s+$/g};function ho(){return async({text:o,error:n})=>{if(!(n instanceof Bo))return null;try{let r=o.replace(uo.MARKDOWN_JSON,"");return JSON.parse(r),bo.debug("[JSON Repair] Successfully repaired JSON by removing markdown wrappers"),r}catch{return bo.warn("[JSON Repair] Unable to repair JSON text"),null}}}async function go(o,n,r,t){let i=J(o),e=t(o);if(Po.debug(`[OpenAI] Using ${r} model: ${e}`),!n.prompt||n.prompt.trim().length===0)throw Error("Object generation requires a non-empty prompt");if(n.schema)Po.debug("[OpenAI] Schema provided but using no-schema mode. Structure is determined by prompt instructions.");let p=i.chat(e),{object:f,usage:s}=await mo({model:p,output:"no-schema",prompt:n.prompt,experimental_repairText:ho()});if(s)h(o,r,n.prompt,s);if(typeof f!=="object"||f===null)throw Error(`Object generation returned ${typeof f}, expected object`);return f}async function X(o,n){return go(o,n,Eo.OBJECT_SMALL,x)}async function M(o,n){return go(o,n,Eo.OBJECT_LARGE,N)}import{logger as P}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((r)=>({url:r.url,title:r.title,startIndex:r.start_index,endIndex:r.end_index}))??[]}))??[]};default:return null}}function rn(o){if(o.output_text){let t=[];if(o.output){for(let i of o.output)if(i.type==="message"&&i.content){for(let e of i.content)if(e.annotations)for(let p of e.annotations)t.push({url:p.url,title:p.title,startIndex:p.start_index,endIndex:p.end_index})}}return{text:o.output_text,annotations:t}}let n="",r=[];if(o.output){for(let t of o.output)if(t.type==="message"&&t.content){for(let i of t.content)if(n+=i.text,i.annotations)for(let e of i.annotations)r.push({url:e.url,title:e.title,startIndex:e.start_index,endIndex:e.end_index})}}return{text:n,annotations:r}}async function W(o,n){let r=b(o);if(!r)throw Error("OPENAI_API_KEY is required for deep research. Set it in your environment variables or runtime settings.");let t=I(o),i=n.model??fo(o),e=po(o);P.debug(`[OpenAI] Starting deep research with model: ${i}`),P.debug(`[OpenAI] Research input: ${n.input.substring(0,100)}...`);let p=n.tools?.filter((E)=>E.type==="web_search_preview"||E.type==="file_search"||E.type==="mcp");if(!p||p.length===0)P.debug("[OpenAI] No data source tools specified, defaulting to web_search_preview"),n.tools=[{type:"web_search_preview"},...n.tools??[]];let f={model:i,input:n.input};if(n.instructions)f.instructions=n.instructions;if(n.background!==void 0)f.background=n.background;if(n.tools&&n.tools.length>0)f.tools=n.tools.map(on);if(n.maxToolCalls!==void 0)f.max_tool_calls=n.maxToolCalls;if(n.reasoningSummary)f.reasoning={summary:n.reasoningSummary};P.debug(`[OpenAI] Research request body: ${JSON.stringify(f,null,2)}`);let s=await fetch(`${t}/responses`,{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"},body:JSON.stringify(f),signal:AbortSignal.timeout(e)});if(!s.ok){let E=await s.text();throw P.error(`[OpenAI] Research request failed: ${s.status} ${E}`),Error(`Deep research request failed: ${s.status} ${s.statusText}`)}let c=await s.json();if(c.error)throw P.error(`[OpenAI] Research API error: ${c.error.message}`),Error(`Deep research error: ${c.error.message}`);P.debug(`[OpenAI] Research response received. Status: ${c.status??"completed"}`);let{text:l,annotations:d}=rn(c),w=[];if(c.output)for(let E of c.output){let Y=nn(E);if(Y)w.push(Y)}let jo={id:c.id,text:l,annotations:d,outputItems:w,status:c.status};return P.info(`[OpenAI] Research completed. Text length: ${l.length}, Annotations: ${d.length}, Output items: ${w.length}`),jo}import{logger as tn,ModelType as Ro}from"@elizaos/core";import{generateText as en,streamText as cn}from"ai";function sn(o){if(!o)return;let n=o.inputTokens??0,r=o.outputTokens??0;return{promptTokens:n,completionTokens:r,totalTokens:n+r}}async function yo(o,n,r,t){let i=J(o),e=t(o);tn.debug(`[OpenAI] Using ${r} model: ${e}`);let p=o.character.system??void 0,s={model:i.chat(e),prompt:n.prompt,system:p,maxOutputTokens:n.maxTokens??8192,experimental_telemetry:{isEnabled:eo(o)}};if(n.stream){let d=cn(s);return{textStream:d.textStream,text:Promise.resolve(d.text),usage:Promise.resolve(d.usage).then(sn),finishReason:Promise.resolve(d.finishReason).then((w)=>w)}}let{text:c,usage:l}=await en(s);if(l)h(o,r,n.prompt,l);return c}async function H(o,n){return yo(o,n,Ro.TEXT_SMALL,x)}async function G(o,n){return yo(o,n,Ro.TEXT_LARGE,N)}import{ModelType as Jo}from"@elizaos/core";import{ModelType as fn}from"@elizaos/core";import{encodingForModel as dn,getEncoding as pn}from"js-tiktoken";function xo(o){let r=o.toLowerCase().includes("4o")?"o200k_base":"cl100k_base";try{return dn(o)}catch{return pn(r)}}function No(o,n){if(n===fn.TEXT_SMALL)return x(o);return N(o)}function $o(o,n,r){let t=No(o,n);return xo(t).encode(r)}function So(o,n,r){let t=No(o,n);return xo(t).decode(r)}async function Q(o,n){if(!n.prompt)throw Error("Tokenization requires a non-empty prompt");let r=n.modelType??Jo.TEXT_LARGE;return $o(o,r,n.prompt)}async function Z(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 t=0;t<n.tokens.length;t++){let i=n.tokens[t];if(typeof i!=="number"||!Number.isFinite(i))throw Error(`Invalid token at index ${t}: expected number`)}let r=n.modelType??Jo.TEXT_LARGE;return So(o,r,n.tokens)}function Tn(){if(typeof process>"u")return{};return process.env}var O=Tn(),ln={name:"openai",description:"OpenAI API integration for text, image, audio, and embedding models",config:{OPENAI_API_KEY:O.OPENAI_API_KEY??null,OPENAI_BASE_URL:O.OPENAI_BASE_URL??null,OPENAI_SMALL_MODEL:O.OPENAI_SMALL_MODEL??null,OPENAI_LARGE_MODEL:O.OPENAI_LARGE_MODEL??null,SMALL_MODEL:O.SMALL_MODEL??null,LARGE_MODEL:O.LARGE_MODEL??null,OPENAI_EMBEDDING_MODEL:O.OPENAI_EMBEDDING_MODEL??null,OPENAI_EMBEDDING_API_KEY:O.OPENAI_EMBEDDING_API_KEY??null,OPENAI_EMBEDDING_URL:O.OPENAI_EMBEDDING_URL??null,OPENAI_EMBEDDING_DIMENSIONS:O.OPENAI_EMBEDDING_DIMENSIONS??null,OPENAI_IMAGE_DESCRIPTION_MODEL:O.OPENAI_IMAGE_DESCRIPTION_MODEL??null,OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS:O.OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS??null,OPENAI_EXPERIMENTAL_TELEMETRY:O.OPENAI_EXPERIMENTAL_TELEMETRY??null,OPENAI_RESEARCH_MODEL:O.OPENAI_RESEARCH_MODEL??null,OPENAI_RESEARCH_TIMEOUT:O.OPENAI_RESEARCH_TIMEOUT??null},async init(o,n){To(o,n)},models:{[T.TEXT_EMBEDDING]:async(o,n)=>{return z(o,n)},[T.TEXT_TOKENIZER_ENCODE]:async(o,n)=>{return Q(o,n)},[T.TEXT_TOKENIZER_DECODE]:async(o,n)=>{return Z(o,n)},[T.TEXT_SMALL]:async(o,n)=>{return H(o,n)},[T.TEXT_LARGE]:async(o,n)=>{return G(o,n)},[T.IMAGE]:async(o,n)=>{return V(o,n)},[T.IMAGE_DESCRIPTION]:async(o,n)=>{return K(o,n)},[T.TRANSCRIPTION]:async(o,n)=>{return C(o,n)},[T.TEXT_TO_SPEECH]:async(o,n)=>{return F(o,n)},[T.OBJECT_SMALL]:async(o,n)=>{return X(o,n)},[T.OBJECT_LARGE]:async(o,n)=>{return M(o,n)},[T.RESEARCH]:async(o,n)=>{return W(o,n)}},tests:[{name:"openai_plugin_tests",tests:[{name:"openai_test_api_connectivity",fn:async(o)=>{let n=I(o),r=await fetch(`${n}/models`,{headers:k(o)});if(!r.ok)throw Error(`API connectivity test failed: ${r.status} ${r.statusText}`);let t=await r.json();a.info(`[OpenAI Test] API connected. ${t.data?.length??0} models available.`)}},{name:"openai_test_text_embedding",fn:async(o)=>{let n=await o.useModel(T.TEXT_EMBEDDING,{text:"Hello, world!"});if(!Array.isArray(n)||n.length===0)throw Error("Embedding should return a non-empty array");a.info(`[OpenAI Test] Generated embedding with ${n.length} dimensions`)}},{name:"openai_test_text_small",fn:async(o)=>{let n=await o.useModel(T.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");a.info(`[OpenAI Test] TEXT_SMALL generated: "${n.substring(0,50)}..."`)}},{name:"openai_test_text_large",fn:async(o)=>{let n=await o.useModel(T.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");a.info(`[OpenAI Test] TEXT_LARGE generated: "${n.substring(0,50)}..."`)}},{name:"openai_test_tokenizer_roundtrip",fn:async(o)=>{let r=await o.useModel(T.TEXT_TOKENIZER_ENCODE,{prompt:"Hello, tokenizer test!",modelType:T.TEXT_SMALL});if(!Array.isArray(r)||r.length===0)throw Error("Tokenization should return non-empty token array");let t=await o.useModel(T.TEXT_TOKENIZER_DECODE,{tokens:r,modelType:T.TEXT_SMALL});if(t!=="Hello, tokenizer test!")throw Error(`Tokenizer roundtrip failed: expected "Hello, tokenizer test!", got "${t}"`);a.info(`[OpenAI Test] Tokenizer roundtrip successful (${r.length} tokens)`)}},{name:"openai_test_streaming",fn:async(o)=>{let n=[],r=await o.useModel(T.TEXT_LARGE,{prompt:"Count from 1 to 5, one number per line.",stream:!0,onStreamChunk:(t)=>{n.push(t)}});if(typeof r!=="string"||r.length===0)throw Error("Streaming should return non-empty result");if(n.length===0)throw Error("No streaming chunks received");a.info(`[OpenAI Test] Streaming test: ${n.length} chunks received`)}},{name:"openai_test_image_description",fn:async(o)=>{let r=await o.useModel(T.IMAGE_DESCRIPTION,"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Camponotus_flavomarginatus_ant.jpg/440px-Camponotus_flavomarginatus_ant.jpg");if(!r||typeof r!=="object"||!("title"in r)||!("description"in r))throw Error("Image description should return { title, description }");a.info(`[OpenAI Test] Image described: "${r.title}"`)}},{name:"openai_test_transcription",fn:async(o)=>{let t=await(await fetch("https://upload.wikimedia.org/wikipedia/commons/2/25/En-Open_Source.ogg")).arrayBuffer(),i=Buffer.from(new Uint8Array(t)),e=await o.useModel(T.TRANSCRIPTION,i);if(typeof e!=="string")throw Error("Transcription should return a string");a.info(`[OpenAI Test] Transcription: "${e.substring(0,50)}..."`)}},{name:"openai_test_text_to_speech",fn:async(o)=>{let n=await o.useModel(T.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");a.info(`[OpenAI Test] TTS generated ${n.byteLength} bytes of audio`)}},{name:"openai_test_object_generation",fn:async(o)=>{let n=await o.useModel(T.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");a.info(`[OpenAI Test] Object generated: ${JSON.stringify(n).substring(0,100)}`)}},{name:"openai_test_research",fn:async(o)=>{let n=await o.useModel(T.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");a.info(`[OpenAI Test] Research completed. Text length: ${n.text.length}, Annotations: ${n.annotations?.length??0}`)}}]}]},An=ln;export{ln as openaiPlugin,An as default};
1
+ import{logger as l,ModelType as w}from"@elizaos/core";import{logger as C}from"@elizaos/core";import{logger as L}from"@elizaos/core";function Co(o){if(typeof process>"u"||!process.env)return;let n=process.env[o];return n===void 0?void 0:String(n)}function I(o,n,c){let r=o.getSetting(n);if(r!==void 0&&r!==null)return String(r);return Co(n)??c}function K(o,n,c){let r=I(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=I(o,n);if(r===void 0)return c;let f=r.toLowerCase();return f==="true"||f==="1"||f==="yes"}function E(){return typeof globalThis<"u"&&typeof globalThis.document<"u"}function e(o){return E()&&!!I(o,"OPENAI_BROWSER_BASE_URL")}function y(o){return I(o,"OPENAI_API_KEY")}function xo(o){let n=I(o,"OPENAI_EMBEDDING_API_KEY");if(n)return L.debug("[OpenAI] Using specific embedding API key"),n;return L.debug("[OpenAI] Falling back to general API key for embeddings"),y(o)}function R(o,n=!1){if(E()&&!v(o,"OPENAI_ALLOW_BROWSER_API_KEY",!1))return{};let c=n?xo(o):y(o);return c?{Authorization:`Bearer ${c}`}:{}}function P(o){let n=I(o,"OPENAI_BROWSER_BASE_URL"),c=E()&&n?n:I(o,"OPENAI_BASE_URL")??"https://api.openai.com/v1";return L.debug(`[OpenAI] Base URL: ${c}`),c}function u(o){let n=E()?I(o,"OPENAI_BROWSER_EMBEDDING_URL")??I(o,"OPENAI_BROWSER_BASE_URL"):I(o,"OPENAI_EMBEDDING_URL");if(n)return L.debug(`[OpenAI] Using embedding base URL: ${n}`),n;return L.debug("[OpenAI] Falling back to general base URL for embeddings"),P(o)}function F(o){return I(o,"OPENAI_SMALL_MODEL")??I(o,"SMALL_MODEL")??"gpt-5-mini"}function U(o){return I(o,"OPENAI_LARGE_MODEL")??I(o,"LARGE_MODEL")??"gpt-5"}function m(o){return I(o,"OPENAI_EMBEDDING_MODEL")??"text-embedding-3-small"}function oo(o){return I(o,"OPENAI_IMAGE_DESCRIPTION_MODEL")??"gpt-5-mini"}function no(o){return I(o,"OPENAI_TRANSCRIPTION_MODEL")??"gpt-5-mini-transcribe"}function co(o){return I(o,"OPENAI_TTS_MODEL")??"tts-1"}function ro(o){return I(o,"OPENAI_TTS_VOICE")??"nova"}function fo(o){return I(o,"OPENAI_TTS_INSTRUCTIONS")??""}function io(o){return I(o,"OPENAI_IMAGE_MODEL")??"dall-e-3"}function To(o){return v(o,"OPENAI_EXPERIMENTAL_TELEMETRY",!1)}function po(o){return K(o,"OPENAI_EMBEDDING_DIMENSIONS",1536)}function Ao(o){return K(o,"OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS",8192)}function ko(o){return I(o,"OPENAI_RESEARCH_MODEL")??"o3-deep-research"}function Oo(o){return K(o,"OPENAI_RESEARCH_TIMEOUT",3600000)}globalThis.AI_SDK_LOG_WARNINGS??=!1;function wo(o,n){Ko(n)}async function Ko(o){if(E()){C.debug("[OpenAI] Skipping API validation in browser environment");return}if(!y(o)){C.warn("[OpenAI] OPENAI_API_KEY is not configured. OpenAI functionality will fail until a valid API key is provided.");return}try{let c=P(o),r=await fetch(`${c}/models`,{headers:R(o)});if(!r.ok){C.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);C.warn(`[OpenAI] API validation error: ${r}. OpenAI functionality may be limited.`)}}import{logger as z}from"@elizaos/core";import{logger as Wo}from"@elizaos/core";var S={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]},Xo=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 W(o){if(o.length<Xo)return"application/octet-stream";if(b(o,0,S.WAV.HEADER)&&b(o,8,S.WAV.IDENTIFIER))return"audio/wav";let n=o[0],c=o[1];if(b(o,0,S.MP3_ID3)||n===255&&c!==void 0&&(c&224)===224)return"audio/mpeg";if(b(o,0,S.OGG))return"audio/ogg";if(b(o,0,S.FLAC))return"audio/flac";if(b(o,4,S.FTYP))return"audio/mp4";if(b(o,0,S.WEBM_EBML))return"audio/webm";return Wo.warn("Could not detect audio format from buffer, using generic binary type"),"application/octet-stream"}function Ho(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 to(o){return`recording.${Ho(o)}`}function Po(o){return o instanceof Blob||o instanceof File}function X(o){return Buffer.isBuffer(o)}function Vo(o){return typeof o==="object"&&o!==null&&"audio"in o&&(Po(o.audio)||X(o.audio))}function Qo(o){return typeof o==="object"&&o!==null&&"audioUrl"in o&&typeof o.audioUrl==="string"}async function Io(o){let n=await fetch(o);if(!n.ok)throw Error(`Failed to fetch audio from URL: ${n.status}`);return n.blob()}async function d(o,n){let c=no(o),r,f={};if(typeof n==="string")z.debug(`[OpenAI] Fetching audio from URL: ${n}`),r=await Io(n);else if(Po(n))r=n;else if(X(n)){let O=W(n);z.debug(`[OpenAI] Auto-detected audio MIME type: ${O}`),r=new Blob([new Uint8Array(n)],{type:O})}else if(Vo(n)){if(f=n,n.model)c=n.model;if(X(n.audio)){let O=n.mimeType??W(n.audio);z.debug(`[OpenAI] Using MIME type: ${O}`),r=new Blob([new Uint8Array(n.audio)],{type:O})}else r=n.audio}else if(Qo(n))z.debug(`[OpenAI] Fetching audio from URL: ${n.audioUrl}`),r=await Io(n.audioUrl),f={prompt:n.prompt};else throw Error("TRANSCRIPTION expects Blob, File, Buffer, URL string, or TranscriptionParams object");z.debug(`[OpenAI] Using TRANSCRIPTION model: ${c}`);let i=r.type||"audio/webm",k=r.name||to(i.startsWith("audio/")?i:"audio/webm"),p=new FormData;if(p.append("file",r,k),p.append("model",c),f.language)p.append("language",f.language);if(f.responseFormat)p.append("response_format",f.responseFormat);if(f.prompt)p.append("prompt",f.prompt);if(f.temperature!==void 0)p.append("temperature",String(f.temperature));if(f.timestampGranularities)for(let O of f.timestampGranularities)p.append("timestamp_granularities[]",O);let A=P(o),T=await fetch(`${A}/audio/transcriptions`,{method:"POST",headers:R(o),body:p});if(!T.ok){let O=await T.text().catch(()=>"Unknown error");throw Error(`OpenAI transcription failed: ${T.status} ${T.statusText} - ${O}`)}return(await T.json()).text}async function H(o,n){let c,r,f="mp3",i,k;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)i=n.model;if("instructions"in n&&n.instructions)k=n.instructions}if(i=i??co(o),r=r??ro(o),k=k??fo(o),z.debug(`[OpenAI] Using TEXT_TO_SPEECH model: ${i}`),!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 p=["alloy","echo","fable","onyx","nova","shimmer"];if(r&&!p.includes(r))throw Error(`Invalid voice: ${r}. Must be one of: ${p.join(", ")}`);let A=P(o),T={model:i,voice:r,input:c,response_format:f};if(k&&k.length>0)T.instructions=k;let t=await fetch(`${A}/audio/speech`,{method:"POST",headers:{...R(o),"Content-Type":"application/json",...f==="mp3"?{Accept:"audio/mpeg"}:{}},body:JSON.stringify(T)});if(!t.ok){let O=await t.text().catch(()=>"Unknown error");throw Error(`OpenAI TTS failed: ${t.status} ${t.statusText} - ${O}`)}return t.arrayBuffer()}import{logger as x,ModelType as Do,VECTOR_DIMS as qo}from"@elizaos/core";import{EventType as Zo}from"@elizaos/core";var so=200;function Yo(o){if(o.length<=so)return o;return`${o.slice(0,so)}…`}function Go(o){if("promptTokens"in o)return{promptTokens:o.promptTokens??0,completionTokens:o.completionTokens??0,totalTokens:o.totalTokens??(o.promptTokens??0)+(o.completionTokens??0)};if("inputTokens"in o||"outputTokens"in o){let n=o.inputTokens??0,c=o.outputTokens??0;return{promptTokens:n,completionTokens:c,totalTokens:n+c}}return{promptTokens:0,completionTokens:0,totalTokens:0}}function J(o,n,c,r){let f=Go(r),i={runtime:o,source:"openai",provider:"openai",type:n,prompt:Yo(c),tokens:{prompt:f.promptTokens,completion:f.completionTokens,total:f.totalTokens}};o.emitEvent(Zo.MODEL_USED,i)}var ho=8000;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 Bo(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 V(o,n){let c=m(o),r=Mo(po(o)),f=Bo(n);if(f===null){x.debug("[OpenAI] Creating test embedding for initialization");let j=Array(r).fill(0);return j[0]=0.1,j}let i=f.trim();if(i.length===0)throw Error("Cannot generate embedding for empty text");let k=ho*4;if(i.length>k)x.warn(`[OpenAI] Embedding input too long (~${Math.ceil(i.length/4)} tokens), truncating to ~${ho} tokens`),i=i.slice(0,k);let A=`${u(o)}/embeddings`;x.debug(`[OpenAI] Generating embedding with model: ${c}`);let T=await fetch(A,{method:"POST",headers:{...R(o,!0),"Content-Type":"application/json"},body:JSON.stringify({model:c,input:i})});if(!T.ok){let j=await T.text().catch(()=>"Unknown error");throw Error(`OpenAI embedding API error: ${T.status} ${T.statusText} - ${j}`)}let t=await T.json(),O=t?.data?.[0];if(!O||!O.embedding)throw Error("OpenAI API returned invalid embedding response structure");let h=O.embedding;if(h.length!==r)throw Error(`Embedding dimension mismatch: got ${h.length}, expected ${r}. Check OPENAI_EMBEDDING_DIMENSIONS setting.`);if(t.usage)J(o,Do.TEXT_EMBEDDING,i,{promptTokens:t.usage.prompt_tokens,completionTokens:0,totalTokens:t.usage.total_tokens});return x.debug(`[OpenAI] Generated embedding with ${h.length} dimensions`),h}import{logger as lo,ModelType as ao}from"@elizaos/core";var Ro="Please analyze this image and provide a title and detailed description.";async function Q(o,n){let c=io(o),r=n.count??1,f=n.size??"1024x1024",i=n;if(lo.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 k=P(o),p={model:c,prompt:n.prompt,n:r,size:f};if(i.quality)p.quality=i.quality;if(i.style)p.style=i.style;let A=await fetch(`${k}/images/generations`,{method:"POST",headers:{...R(o),"Content-Type":"application/json"},body:JSON.stringify(p)});if(!A.ok){let t=await A.text().catch(()=>"Unknown error");throw Error(`OpenAI image generation failed: ${A.status} ${A.statusText} - ${t}`)}let T=await A.json();if(!T.data||T.data.length===0)throw Error("OpenAI API returned no images");return T.data.map((t)=>({url:t.url,revisedPrompt:t.revised_prompt}))}function go(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 Z(o,n){let c=oo(o),r=Ao(o);lo.debug(`[OpenAI] Using IMAGE_DESCRIPTION model: ${c}`);let f,i;if(typeof n==="string")f=n,i=Ro;else f=n.imageUrl,i=n.prompt??Ro;if(!f||f.trim().length===0)throw Error("IMAGE_DESCRIPTION requires a valid image URL");let k=P(o),p={model:c,messages:[{role:"user",content:[{type:"text",text:i},{type:"image_url",image_url:{url:f}}]}],max_tokens:r},A=await fetch(`${k}/chat/completions`,{method:"POST",headers:{...R(o),"Content-Type":"application/json"},body:JSON.stringify(p)});if(!A.ok){let h=await A.text().catch(()=>"Unknown error");throw Error(`OpenAI image description failed: ${A.status} ${A.statusText} - ${h}`)}let T=await A.json();if(T.usage)J(o,ao.IMAGE_DESCRIPTION,typeof n==="string"?n:n.prompt??"",{promptTokens:T.usage.prompt_tokens,completionTokens:T.usage.completion_tokens,totalTokens:T.usage.total_tokens});let O=T.choices?.[0]?.message?.content;if(!O)throw Error("OpenAI API returned empty image description");return{title:go(O),description:vo(O)}}import{logger as No,ModelType as So}from"@elizaos/core";import{generateObject as on}from"ai";import{createOpenAI as yo}from"@ai-sdk/openai";var eo="sk-proxy";function _(o){let n=P(o),c=y(o);if(!c&&e(o))return yo({apiKey:eo,baseURL:n});if(!c)throw Error("OPENAI_API_KEY is required. Set it in your environment variables or runtime settings.");return yo({apiKey:c,baseURL:n})}import{logger as Jo}from"@elizaos/core";import{JSONParseError as uo}from"ai";var mo={MARKDOWN_JSON:/```json\n|\n```|```/g,WHITESPACE:/^\s+|\s+$/g};function $o(){return async({text:o,error:n})=>{if(!(n instanceof uo))return null;try{let c=o.replace(mo.MARKDOWN_JSON,"");return JSON.parse(c),Jo.debug("[JSON Repair] Successfully repaired JSON by removing markdown wrappers"),c}catch{return Jo.warn("[JSON Repair] Unable to repair JSON text"),null}}}async function bo(o,n,c,r){let f=_(o),i=r(o);if(No.debug(`[OpenAI] Using ${c} model: ${i}`),!n.prompt||n.prompt.trim().length===0)throw Error("Object generation requires a non-empty prompt");if(n.schema)No.debug("[OpenAI] Schema provided but using no-schema mode. Structure is determined by prompt instructions.");let k=f.chat(i),{object:p,usage:A}=await on({model:k,output:"no-schema",prompt:n.prompt,experimental_repairText:$o()});if(A)J(o,c,n.prompt,A);if(typeof p!=="object"||p===null)throw Error(`Object generation returned ${typeof p}, expected object`);return p}async function Y(o,n){return bo(o,n,So.OBJECT_SMALL,F)}async function G(o,n){return bo(o,n,So.OBJECT_LARGE,U)}import{logger as $}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 i of f.content)if(i.annotations)for(let k of i.annotations)r.push({url:k.url,title:k.title,startIndex:k.start_index,endIndex:k.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 i of f.annotations)c.push({url:i.url,title:i.title,startIndex:i.start_index,endIndex:i.end_index})}}return{text:n,annotations:c}}async function D(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=P(o),f=n.model??ko(o),i=Oo(o);$.debug(`[OpenAI] Starting deep research with model: ${f}`),$.debug(`[OpenAI] Research input: ${n.input.substring(0,100)}...`);let k=n.tools?.filter((N)=>N.type==="web_search_preview"||N.type==="file_search"||N.type==="mcp");if(!k||k.length===0)$.debug("[OpenAI] No data source tools specified, defaulting to web_search_preview"),n.tools=[{type:"web_search_preview"},...n.tools??[]];let p={model:f,input:n.input};if(n.instructions)p.instructions=n.instructions;if(n.background!==void 0)p.background=n.background;if(n.tools&&n.tools.length>0)p.tools=n.tools.map(nn);if(n.maxToolCalls!==void 0)p.max_tool_calls=n.maxToolCalls;if(n.reasoningSummary)p.reasoning={summary:n.reasoningSummary};$.debug(`[OpenAI] Research request body: ${JSON.stringify(p,null,2)}`);let A=await fetch(`${r}/responses`,{method:"POST",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json"},body:JSON.stringify(p),signal:AbortSignal.timeout(i)});if(!A.ok){let N=await A.text();throw $.error(`[OpenAI] Research request failed: ${A.status} ${N}`),Error(`Deep research request failed: ${A.status} ${A.statusText}`)}let T=await A.json();if(T.error)throw $.error(`[OpenAI] Research API error: ${T.error.message}`),Error(`Deep research error: ${T.error.message}`);$.debug(`[OpenAI] Research response received. Status: ${T.status??"completed"}`);let{text:t,annotations:O}=rn(T),h=[];if(T.output)for(let N of T.output){let g=cn(N);if(g)h.push(g)}let j={id:T.id,text:t,annotations:O,outputItems:h,status:T.status};return $.info(`[OpenAI] Research completed. Text length: ${t.length}, Annotations: ${O.length}, Output items: ${h.length}`),j}import{logger as fn,ModelType as jo}from"@elizaos/core";import{generateText as Tn,streamText as pn}from"ai";function An(o){if(!o)return;let n=o.inputTokens??0,c=o.outputTokens??0;return{promptTokens:n,completionTokens:c,totalTokens:n+c}}async function Eo(o,n,c,r){let f=_(o),i=r(o);fn.debug(`[OpenAI] Using ${c} model: ${i}`);let k=o.character.system??void 0,A={model:f.chat(i),prompt:n.prompt,system:k,maxOutputTokens:n.maxTokens??8192,experimental_telemetry:{isEnabled:To(o)}};if(n.stream){let O=pn(A);return{textStream:O.textStream,text:Promise.resolve(O.text),usage:Promise.resolve(O.usage).then(An),finishReason:Promise.resolve(O.finishReason).then((h)=>h)}}let{text:T,usage:t}=await Tn(A);if(t)J(o,c,n.prompt,t);return T}async function q(o,n){return Eo(o,n,jo.TEXT_SMALL,F)}async function M(o,n){return Eo(o,n,jo.TEXT_LARGE,U)}import{ModelType as _o}from"@elizaos/core";import{ModelType as kn}from"@elizaos/core";import{encodingForModel as On,getEncoding as wn}from"js-tiktoken";function Fo(o){let c=o.toLowerCase().includes("4o")?"o200k_base":"cl100k_base";try{return On(o)}catch{return wn(c)}}function Uo(o,n){if(n===kn.TEXT_SMALL)return F(o);return U(o)}function zo(o,n,c){let r=Uo(o,n);return Fo(r).encode(c)}function Lo(o,n,c){let r=Uo(o,n);return Fo(r).decode(c)}async function B(o,n){if(!n.prompt)throw Error("Tokenization requires a non-empty prompt");let c=n.modelType??_o.TEXT_LARGE;return zo(o,c,n.prompt)}async function a(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??_o.TEXT_LARGE;return Lo(o,c,n.tokens)}function tn(){if(typeof process>"u")return{};return process.env}var s=tn(),In={name:"openai",description:"OpenAI API integration for text, image, audio, and embedding models",config:{OPENAI_API_KEY:s.OPENAI_API_KEY??null,OPENAI_BASE_URL:s.OPENAI_BASE_URL??null,OPENAI_SMALL_MODEL:s.OPENAI_SMALL_MODEL??null,OPENAI_LARGE_MODEL:s.OPENAI_LARGE_MODEL??null,SMALL_MODEL:s.SMALL_MODEL??null,LARGE_MODEL:s.LARGE_MODEL??null,OPENAI_EMBEDDING_MODEL:s.OPENAI_EMBEDDING_MODEL??null,OPENAI_EMBEDDING_API_KEY:s.OPENAI_EMBEDDING_API_KEY??null,OPENAI_EMBEDDING_URL:s.OPENAI_EMBEDDING_URL??null,OPENAI_EMBEDDING_DIMENSIONS:s.OPENAI_EMBEDDING_DIMENSIONS??null,OPENAI_IMAGE_DESCRIPTION_MODEL:s.OPENAI_IMAGE_DESCRIPTION_MODEL??null,OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS:s.OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS??null,OPENAI_EXPERIMENTAL_TELEMETRY:s.OPENAI_EXPERIMENTAL_TELEMETRY??null,OPENAI_RESEARCH_MODEL:s.OPENAI_RESEARCH_MODEL??null,OPENAI_RESEARCH_TIMEOUT:s.OPENAI_RESEARCH_TIMEOUT??null},async init(o,n){wo(o,n)},models:{[w.TEXT_EMBEDDING]:async(o,n)=>{return V(o,n)},[w.TEXT_TOKENIZER_ENCODE]:async(o,n)=>{return B(o,n)},[w.TEXT_TOKENIZER_DECODE]:async(o,n)=>{return a(o,n)},[w.TEXT_SMALL]:async(o,n)=>{return q(o,n)},[w.TEXT_LARGE]:async(o,n)=>{return M(o,n)},[w.IMAGE]:async(o,n)=>{return Q(o,n)},[w.IMAGE_DESCRIPTION]:async(o,n)=>{return Z(o,n)},[w.TRANSCRIPTION]:async(o,n)=>{return d(o,n)},[w.TEXT_TO_SPEECH]:async(o,n)=>{return H(o,n)},[w.OBJECT_SMALL]:async(o,n)=>{return Y(o,n)},[w.OBJECT_LARGE]:async(o,n)=>{return G(o,n)},[w.RESEARCH]:async(o,n)=>{return D(o,n)}},tests:[{name:"openai_plugin_tests",tests:[{name:"openai_test_api_connectivity",fn:async(o)=>{let n=P(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(w.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(w.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(w.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(w.TEXT_TOKENIZER_ENCODE,{prompt:"Hello, tokenizer test!",modelType:w.TEXT_SMALL});if(!Array.isArray(c)||c.length===0)throw Error("Tokenization should return non-empty token array");let r=await o.useModel(w.TEXT_TOKENIZER_DECODE,{tokens:c,modelType:w.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(w.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(w.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)),i=await o.useModel(w.TRANSCRIPTION,f);if(typeof i!=="string")throw Error("Transcription should return a string");l.info(`[OpenAI Test] Transcription: "${i.substring(0,50)}..."`)}},{name:"openai_test_text_to_speech",fn:async(o)=>{let n=await o.useModel(w.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(w.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(w.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}`)}}]}]},Pn=In;export{In as openaiPlugin,Pn as default};
2
2
 
3
- //# debugId=9C25ED78B3AA917264756E2164756E21
3
+ //# debugId=9FA1613D7385CA8D64756E2164756E21
@@ -7,7 +7,7 @@
7
7
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\nfunction getEnvValue(key: string): string | undefined {\n if (typeof process === \"undefined\" || !process.env) {\n return undefined;\n }\n const value = process.env[key];\n return value === undefined ? undefined : String(value);\n}\n\nexport function getSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue?: string\n): string | undefined {\n const value = runtime.getSetting(key);\n if (value !== undefined && value !== null) {\n return String(value);\n }\n return getEnvValue(key) ?? defaultValue;\n}\nexport function getRequiredSetting(\n runtime: IAgentRuntime,\n key: string,\n errorMessage?: string\n): string {\n const value = getSetting(runtime, key);\n if (value === undefined || value.trim() === \"\") {\n throw new Error(errorMessage ?? `Required setting '${key}' is not configured`);\n }\n return value;\n}\n\nexport function getNumericSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue: number\n): number {\n const value = getSetting(runtime, key);\n if (value === undefined) {\n return defaultValue;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isFinite(parsed)) {\n throw new Error(`Setting '${key}' must be a valid integer, got: ${value}`);\n }\n return parsed;\n}\n\nexport function getBooleanSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue: boolean\n): boolean {\n const value = getSetting(runtime, key);\n if (value === undefined) {\n return defaultValue;\n }\n const normalized = value.toLowerCase();\n return normalized === \"true\" || normalized === \"1\" || normalized === \"yes\";\n}\n\nexport function isBrowser(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n typeof (globalThis as { document?: Document }).document !== \"undefined\"\n );\n}\n\nexport function isProxyMode(runtime: IAgentRuntime): boolean {\n return isBrowser() && !!getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\");\n}\n\nexport function getApiKey(runtime: IAgentRuntime): string | undefined {\n return getSetting(runtime, \"OPENAI_API_KEY\");\n}\n\nexport function getEmbeddingApiKey(runtime: IAgentRuntime): string | undefined {\n const embeddingApiKey = getSetting(runtime, \"OPENAI_EMBEDDING_API_KEY\");\n if (embeddingApiKey) {\n logger.debug(\"[OpenAI] Using specific embedding API key\");\n return embeddingApiKey;\n }\n logger.debug(\"[OpenAI] Falling back to general API key for embeddings\");\n return getApiKey(runtime);\n}\n\nexport function getAuthHeader(\n runtime: IAgentRuntime,\n forEmbedding = false\n): Record<string, string> {\n // By default this plugin does NOT send auth headers in the browser. This is safer because\n // frontend builds would otherwise expose secrets. For local demos, you can explicitly\n // opt-in to sending the Authorization header by setting OPENAI_ALLOW_BROWSER_API_KEY=true.\n if (isBrowser() && !getBooleanSetting(runtime, \"OPENAI_ALLOW_BROWSER_API_KEY\", false)) {\n return {};\n }\n const key = forEmbedding ? getEmbeddingApiKey(runtime) : getApiKey(runtime);\n return key ? { Authorization: `Bearer ${key}` } : {};\n}\n\nexport function getBaseURL(runtime: IAgentRuntime): string {\n const browserURL = getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\");\n const baseURL =\n isBrowser() && browserURL\n ? browserURL\n : (getSetting(runtime, \"OPENAI_BASE_URL\") ?? \"https://api.openai.com/v1\");\n logger.debug(`[OpenAI] Base URL: ${baseURL}`);\n return baseURL;\n}\n\nexport function getEmbeddingBaseURL(runtime: IAgentRuntime): string {\n const embeddingURL = isBrowser()\n ? (getSetting(runtime, \"OPENAI_BROWSER_EMBEDDING_URL\") ??\n getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\"))\n : getSetting(runtime, \"OPENAI_EMBEDDING_URL\");\n\n if (embeddingURL) {\n logger.debug(`[OpenAI] Using embedding base URL: ${embeddingURL}`);\n return embeddingURL;\n }\n\n logger.debug(\"[OpenAI] Falling back to general base URL for embeddings\");\n return getBaseURL(runtime);\n}\n\nexport function getSmallModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENAI_SMALL_MODEL\") ?? getSetting(runtime, \"SMALL_MODEL\") ?? \"gpt-5-mini\"\n );\n}\n\nexport function getLargeModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_LARGE_MODEL\") ?? getSetting(runtime, \"LARGE_MODEL\") ?? \"gpt-5\";\n}\n\nexport function getEmbeddingModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_EMBEDDING_MODEL\") ?? \"text-embedding-3-small\";\n}\n\nexport function getImageDescriptionModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_IMAGE_DESCRIPTION_MODEL\") ?? \"gpt-5-mini\";\n}\n\nexport function getTranscriptionModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TRANSCRIPTION_MODEL\") ?? \"gpt-5-mini-transcribe\";\n}\n\nexport function getTTSModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_MODEL\") ?? \"tts-1\";\n}\n\nexport function getTTSVoice(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_VOICE\") ?? \"nova\";\n}\n\nexport function getTTSInstructions(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_INSTRUCTIONS\") ?? \"\";\n}\n\nexport function getImageModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_IMAGE_MODEL\") ?? \"dall-e-3\";\n}\n\nexport function getExperimentalTelemetry(runtime: IAgentRuntime): boolean {\n return getBooleanSetting(runtime, \"OPENAI_EXPERIMENTAL_TELEMETRY\", false);\n}\n\nexport function getEmbeddingDimensions(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_EMBEDDING_DIMENSIONS\", 1536);\n}\n\nexport function getImageDescriptionMaxTokens(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS\", 8192);\n}\n\nexport function getResearchModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_RESEARCH_MODEL\") ?? \"o3-deep-research\";\n}\n\nexport function getResearchTimeout(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_RESEARCH_TIMEOUT\", 3600000);\n}\n",
8
8
  "import type {\n TextToSpeechParams as CoreTextToSpeechParams,\n TranscriptionParams as CoreTranscriptionParams,\n IAgentRuntime,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport type {\n TextToSpeechParams as LocalTextToSpeechParams,\n TranscriptionParams as LocalTranscriptionParams,\n OpenAITranscriptionResponse,\n TTSOutputFormat,\n TTSVoice,\n} from \"../types\";\nimport { detectAudioMimeType, getFilenameForMimeType } from \"../utils/audio\";\nimport {\n getAuthHeader,\n getBaseURL,\n getTranscriptionModel,\n getTTSInstructions,\n getTTSModel,\n getTTSVoice,\n} from \"../utils/config\";\n\ntype AudioInput = Blob | File | Buffer;\ntype TranscriptionInput = AudioInput | LocalTranscriptionParams | CoreTranscriptionParams | string;\ntype TTSInput = string | LocalTextToSpeechParams | CoreTextToSpeechParams;\n\nfunction isBlobOrFile(value: unknown): value is Blob | File {\n return value instanceof Blob || value instanceof File;\n}\n\nfunction isBuffer(value: unknown): value is Buffer {\n return Buffer.isBuffer(value);\n}\n\nfunction isLocalTranscriptionParams(value: unknown): value is LocalTranscriptionParams {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"audio\" in value &&\n (isBlobOrFile((value as LocalTranscriptionParams).audio) ||\n isBuffer((value as LocalTranscriptionParams).audio))\n );\n}\n\nfunction isCoreTranscriptionParams(value: unknown): value is CoreTranscriptionParams {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"audioUrl\" in value &&\n typeof (value as CoreTranscriptionParams).audioUrl === \"string\"\n );\n}\n\nasync function fetchAudioFromUrl(url: string): Promise<Blob> {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch audio from URL: ${response.status}`);\n }\n return response.blob();\n}\nexport async function handleTranscription(\n runtime: IAgentRuntime,\n input: TranscriptionInput\n): Promise<string> {\n let modelName = getTranscriptionModel(runtime);\n let blob: Blob;\n let extraParams: Partial<LocalTranscriptionParams> = {};\n\n if (typeof input === \"string\") {\n logger.debug(`[OpenAI] Fetching audio from URL: ${input}`);\n blob = await fetchAudioFromUrl(input);\n } else if (isBlobOrFile(input)) {\n blob = input;\n } else if (isBuffer(input)) {\n const mimeType = detectAudioMimeType(input);\n logger.debug(`[OpenAI] Auto-detected audio MIME type: ${mimeType}`);\n blob = new Blob([new Uint8Array(input)], { type: mimeType });\n } else if (isLocalTranscriptionParams(input)) {\n extraParams = input;\n if (input.model) {\n modelName = input.model;\n }\n if (isBuffer(input.audio)) {\n const mimeType = input.mimeType ?? detectAudioMimeType(input.audio);\n logger.debug(`[OpenAI] Using MIME type: ${mimeType}`);\n blob = new Blob([new Uint8Array(input.audio)], { type: mimeType });\n } else {\n blob = input.audio;\n }\n } else if (isCoreTranscriptionParams(input)) {\n logger.debug(`[OpenAI] Fetching audio from URL: ${input.audioUrl}`);\n blob = await fetchAudioFromUrl(input.audioUrl);\n extraParams = { prompt: input.prompt };\n } else {\n throw new Error(\n \"TRANSCRIPTION expects Blob, File, Buffer, URL string, or TranscriptionParams object\"\n );\n }\n\n logger.debug(`[OpenAI] Using TRANSCRIPTION model: ${modelName}`);\n\n const mimeType = (blob as File).type || \"audio/webm\";\n const filename =\n (blob as File).name ||\n getFilenameForMimeType(\n mimeType.startsWith(\"audio/\")\n ? (mimeType as ReturnType<typeof detectAudioMimeType>)\n : \"audio/webm\"\n );\n\n const formData = new FormData();\n formData.append(\"file\", blob, filename);\n formData.append(\"model\", modelName);\n\n if (extraParams.language) {\n formData.append(\"language\", extraParams.language);\n }\n if (extraParams.responseFormat) {\n formData.append(\"response_format\", extraParams.responseFormat);\n }\n if (extraParams.prompt) {\n formData.append(\"prompt\", extraParams.prompt);\n }\n if (extraParams.temperature !== undefined) {\n formData.append(\"temperature\", String(extraParams.temperature));\n }\n if (extraParams.timestampGranularities) {\n for (const granularity of extraParams.timestampGranularities) {\n formData.append(\"timestamp_granularities[]\", granularity);\n }\n }\n\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/audio/transcriptions`, {\n method: \"POST\",\n headers: getAuthHeader(runtime),\n body: formData,\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI transcription failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAITranscriptionResponse;\n return data.text;\n}\n\nexport async function handleTextToSpeech(\n runtime: IAgentRuntime,\n input: TTSInput\n): Promise<ArrayBuffer> {\n let text: string;\n let voice: string | undefined;\n let format: TTSOutputFormat = \"mp3\";\n let model: string | undefined;\n let instructions: string | undefined;\n\n if (typeof input === \"string\") {\n text = input;\n voice = undefined;\n } else {\n text = input.text;\n voice = input.voice;\n if (\"format\" in input && input.format) {\n format = input.format;\n }\n if (\"model\" in input && input.model) {\n model = input.model;\n }\n if (\"instructions\" in input && input.instructions) {\n instructions = input.instructions;\n }\n }\n\n model = model ?? getTTSModel(runtime);\n voice = voice ?? getTTSVoice(runtime);\n instructions = instructions ?? getTTSInstructions(runtime);\n\n logger.debug(`[OpenAI] Using TEXT_TO_SPEECH model: ${model}`);\n\n if (!text || text.trim().length === 0) {\n throw new Error(\"TEXT_TO_SPEECH requires non-empty text\");\n }\n\n if (text.length > 4096) {\n throw new Error(\"TEXT_TO_SPEECH text exceeds 4096 character limit\");\n }\n\n const validVoices: TTSVoice[] = [\"alloy\", \"echo\", \"fable\", \"onyx\", \"nova\", \"shimmer\"];\n if (voice && !validVoices.includes(voice as TTSVoice)) {\n throw new Error(`Invalid voice: ${voice}. Must be one of: ${validVoices.join(\", \")}`);\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody: Record<string, string> = {\n model,\n voice: voice as TTSVoice,\n input: text,\n response_format: format,\n };\n\n if (instructions && instructions.length > 0) {\n requestBody.instructions = instructions;\n }\n\n const response = await fetch(`${baseURL}/audio/speech`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n ...(format === \"mp3\" ? { Accept: \"audio/mpeg\" } : {}),\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(`OpenAI TTS failed: ${response.status} ${response.statusText} - ${errorText}`);\n }\n\n return response.arrayBuffer();\n}\n",
9
9
  "import { logger } from \"@elizaos/core\";\n\nconst MAGIC_BYTES = {\n WAV: {\n HEADER: [0x52, 0x49, 0x46, 0x46] as const, // \"RIFF\"\n IDENTIFIER: [0x57, 0x41, 0x56, 0x45] as const, // \"WAVE\"\n },\n MP3_ID3: [0x49, 0x44, 0x33] as const, // \"ID3\"\n OGG: [0x4f, 0x67, 0x67, 0x53] as const, // \"OggS\"\n FLAC: [0x66, 0x4c, 0x61, 0x43] as const, // \"fLaC\"\n FTYP: [0x66, 0x74, 0x79, 0x70] as const, // \"ftyp\" at offset 4 for mp4/m4a\n WEBM_EBML: [0x1a, 0x45, 0xdf, 0xa3] as const, // EBML header\n} as const;\n\nconst MIN_DETECTION_BUFFER_SIZE = 12;\n\nexport type AudioMimeType =\n | \"audio/wav\"\n | \"audio/mpeg\"\n | \"audio/ogg\"\n | \"audio/flac\"\n | \"audio/mp4\"\n | \"audio/webm\"\n | \"application/octet-stream\";\n\nfunction matchBytes(buffer: Buffer, offset: number, expected: readonly number[]): boolean {\n for (let i = 0; i < expected.length; i++) {\n const expectedByte = expected[i];\n if (expectedByte === undefined || buffer[offset + i] !== expectedByte) {\n return false;\n }\n }\n return true;\n}\n\nexport function detectAudioMimeType(buffer: Buffer): AudioMimeType {\n if (buffer.length < MIN_DETECTION_BUFFER_SIZE) {\n return \"application/octet-stream\";\n }\n\n // WAV: \"RIFF\" + size + \"WAVE\"\n if (\n matchBytes(buffer, 0, MAGIC_BYTES.WAV.HEADER) &&\n matchBytes(buffer, 8, MAGIC_BYTES.WAV.IDENTIFIER)\n ) {\n return \"audio/wav\";\n }\n\n // MP3: ID3 tag or MPEG frame sync\n const firstByte = buffer[0];\n const secondByte = buffer[1];\n if (\n matchBytes(buffer, 0, MAGIC_BYTES.MP3_ID3) ||\n (firstByte === 0xff && secondByte !== undefined && (secondByte & 0xe0) === 0xe0)\n ) {\n return \"audio/mpeg\";\n }\n\n // OGG: \"OggS\"\n if (matchBytes(buffer, 0, MAGIC_BYTES.OGG)) {\n return \"audio/ogg\";\n }\n\n // FLAC: \"fLaC\"\n if (matchBytes(buffer, 0, MAGIC_BYTES.FLAC)) {\n return \"audio/flac\";\n }\n\n // M4A/MP4: \"ftyp\" at offset 4\n if (matchBytes(buffer, 4, MAGIC_BYTES.FTYP)) {\n return \"audio/mp4\";\n }\n\n // WebM: EBML header\n if (matchBytes(buffer, 0, MAGIC_BYTES.WEBM_EBML)) {\n return \"audio/webm\";\n }\n\n logger.warn(\"Could not detect audio format from buffer, using generic binary type\");\n return \"application/octet-stream\";\n}\n\nexport function getExtensionForMimeType(mimeType: AudioMimeType): string {\n switch (mimeType) {\n case \"audio/wav\":\n return \"wav\";\n case \"audio/mpeg\":\n return \"mp3\";\n case \"audio/ogg\":\n return \"ogg\";\n case \"audio/flac\":\n return \"flac\";\n case \"audio/mp4\":\n return \"m4a\";\n case \"audio/webm\":\n return \"webm\";\n case \"application/octet-stream\":\n return \"bin\";\n }\n}\n\nexport function getFilenameForMimeType(mimeType: AudioMimeType): string {\n const ext = getExtensionForMimeType(mimeType);\n return `recording.${ext}`;\n}\n\nexport function validateAudioFormat(buffer: Buffer): AudioMimeType {\n const mimeType = detectAudioMimeType(buffer);\n if (mimeType === \"application/octet-stream\") {\n throw new Error(\n \"Unable to detect audio format. Supported formats: WAV, MP3, OGG, FLAC, M4A, WebM\"\n );\n }\n return mimeType;\n}\n",
10
- "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\nimport type { OpenAIEmbeddingResponse } from \"../types\";\nimport {\n getAuthHeader,\n getEmbeddingBaseURL,\n getEmbeddingDimensions,\n getEmbeddingModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ntype VectorDimension = (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\nfunction validateDimension(dimension: number): VectorDimension {\n const validDimensions = Object.values(VECTOR_DIMS) as number[];\n if (!validDimensions.includes(dimension)) {\n throw new Error(\n `Invalid embedding dimension: ${dimension}. Must be one of: ${validDimensions.join(\", \")}`\n );\n }\n return dimension as VectorDimension;\n}\n\nfunction extractText(params: TextEmbeddingParams | string | null): string | null {\n if (params === null) {\n return null;\n }\n if (typeof params === \"string\") {\n return params;\n }\n if (typeof params === \"object\" && typeof params.text === \"string\") {\n return params.text;\n }\n throw new Error(\"Invalid embedding params: expected string, { text: string }, or null\");\n}\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModel = getEmbeddingModel(runtime);\n const embeddingDimension = validateDimension(getEmbeddingDimensions(runtime));\n\n const text = extractText(params);\n if (text === null) {\n logger.debug(\"[OpenAI] Creating test embedding for initialization\");\n const testVector = new Array(embeddingDimension).fill(0);\n testVector[0] = 0.1;\n return testVector;\n }\n\n const trimmedText = text.trim();\n if (trimmedText.length === 0) {\n throw new Error(\"Cannot generate embedding for empty text\");\n }\n\n const baseURL = getEmbeddingBaseURL(runtime);\n const url = `${baseURL}/embeddings`;\n\n logger.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime, true),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n model: embeddingModel,\n input: trimmedText,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI embedding API error: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIEmbeddingResponse;\n\n const firstResult = data?.data?.[0];\n if (!firstResult || !firstResult.embedding) {\n throw new Error(\"OpenAI API returned invalid embedding response structure\");\n }\n\n const embedding = firstResult.embedding;\n\n if (embedding.length !== embeddingDimension) {\n throw new Error(\n `Embedding dimension mismatch: got ${embedding.length}, expected ${embeddingDimension}. ` +\n `Check OPENAI_EMBEDDING_DIMENSIONS setting.`\n );\n }\n\n if (data.usage) {\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, trimmedText, {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: 0,\n totalTokens: data.usage.total_tokens,\n });\n }\n\n logger.debug(`[OpenAI] Generated embedding with ${embedding.length} dimensions`);\n return embedding;\n}\n",
10
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\n\n// Safe default that matches @elizaos/core's MAX_EMBEDDING_TOKENS (8 000).\n// Defined locally so the plugin doesn't break against core versions older\n// than 2.0.0-alpha.4 where the symbol wasn't exported yet.\nconst MAX_EMBEDDING_TOKENS = 8_000;\nimport type { OpenAIEmbeddingResponse } from \"../types\";\nimport {\n getAuthHeader,\n getEmbeddingBaseURL,\n getEmbeddingDimensions,\n getEmbeddingModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ntype VectorDimension = (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\nfunction validateDimension(dimension: number): VectorDimension {\n const validDimensions = Object.values(VECTOR_DIMS) as number[];\n if (!validDimensions.includes(dimension)) {\n throw new Error(\n `Invalid embedding dimension: ${dimension}. Must be one of: ${validDimensions.join(\", \")}`\n );\n }\n return dimension as VectorDimension;\n}\n\nfunction extractText(params: TextEmbeddingParams | string | null): string | null {\n if (params === null) {\n return null;\n }\n if (typeof params === \"string\") {\n return params;\n }\n if (typeof params === \"object\" && typeof params.text === \"string\") {\n return params.text;\n }\n throw new Error(\"Invalid embedding params: expected string, { text: string }, or null\");\n}\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModel = getEmbeddingModel(runtime);\n const embeddingDimension = validateDimension(getEmbeddingDimensions(runtime));\n\n const text = extractText(params);\n if (text === null) {\n logger.debug(\"[OpenAI] Creating test embedding for initialization\");\n const testVector = new Array(embeddingDimension).fill(0);\n testVector[0] = 0.1;\n return testVector;\n }\n\n let trimmedText = text.trim();\n if (trimmedText.length === 0) {\n throw new Error(\"Cannot generate embedding for empty text\");\n }\n\n // Truncate to stay within embedding model token limits.\n // OpenAI embedding models support up to 8191 tokens per input;\n // MAX_EMBEDDING_TOKENS (8 000) provides a safe buffer.\n const maxChars = MAX_EMBEDDING_TOKENS * 4; // ~4 chars per token\n if (trimmedText.length > maxChars) {\n logger.warn(\n `[OpenAI] Embedding input too long (~${Math.ceil(trimmedText.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`\n );\n trimmedText = trimmedText.slice(0, maxChars);\n }\n\n const baseURL = getEmbeddingBaseURL(runtime);\n const url = `${baseURL}/embeddings`;\n\n logger.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime, true),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n model: embeddingModel,\n input: trimmedText,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI embedding API error: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIEmbeddingResponse;\n\n const firstResult = data?.data?.[0];\n if (!firstResult || !firstResult.embedding) {\n throw new Error(\"OpenAI API returned invalid embedding response structure\");\n }\n\n const embedding = firstResult.embedding;\n\n if (embedding.length !== embeddingDimension) {\n throw new Error(\n `Embedding dimension mismatch: got ${embedding.length}, expected ${embeddingDimension}. ` +\n `Check OPENAI_EMBEDDING_DIMENSIONS setting.`\n );\n }\n\n if (data.usage) {\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, trimmedText, {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: 0,\n totalTokens: data.usage.total_tokens,\n });\n }\n\n logger.debug(`[OpenAI] Generated embedding with ${embedding.length} dimensions`);\n return embedding;\n}\n",
11
11
  "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { EventType } from \"@elizaos/core\";\nimport type { TokenUsage } from \"../types\";\n\nconst MAX_PROMPT_LENGTH = 200;\n\ninterface ModelUsageEventPayload {\n runtime: IAgentRuntime;\n source: \"openai\";\n provider: \"openai\";\n type: ModelTypeName;\n prompt: string;\n tokens: {\n prompt: number;\n completion: number;\n total: number;\n };\n}\n\ninterface AISDKUsage {\n inputTokens?: number;\n outputTokens?: number;\n}\n\ninterface OpenAIAPIUsage {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n}\n\ntype ModelUsage = TokenUsage | AISDKUsage | OpenAIAPIUsage;\n\nfunction truncatePrompt(prompt: string): string {\n if (prompt.length <= MAX_PROMPT_LENGTH) {\n return prompt;\n }\n return `${prompt.slice(0, MAX_PROMPT_LENGTH)}…`;\n}\n\nfunction normalizeUsage(usage: ModelUsage): TokenUsage {\n if (\"promptTokens\" in usage) {\n return {\n promptTokens: usage.promptTokens ?? 0,\n completionTokens: usage.completionTokens ?? 0,\n totalTokens: usage.totalTokens ?? (usage.promptTokens ?? 0) + (usage.completionTokens ?? 0),\n };\n }\n if (\"inputTokens\" in usage || \"outputTokens\" in usage) {\n const input = (usage as AISDKUsage).inputTokens ?? 0;\n const output = (usage as AISDKUsage).outputTokens ?? 0;\n return {\n promptTokens: input,\n completionTokens: output,\n totalTokens: input + output,\n };\n }\n return {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n };\n}\n\nexport function emitModelUsageEvent(\n runtime: IAgentRuntime,\n type: ModelTypeName,\n prompt: string,\n usage: ModelUsage\n): void {\n const normalized = normalizeUsage(usage);\n\n const payload: ModelUsageEventPayload = {\n runtime,\n source: \"openai\",\n provider: \"openai\",\n type,\n prompt: truncatePrompt(prompt),\n tokens: {\n prompt: normalized.promptTokens,\n completion: normalized.completionTokens,\n total: normalized.totalTokens,\n },\n };\n\n runtime.emitEvent(EventType.MODEL_USED, payload);\n}\n",
12
12
  "import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport type {\n ImageDescriptionResult,\n ImageGenerationResult,\n ImageQuality,\n ImageSize,\n ImageStyle,\n OpenAIChatCompletionResponse,\n OpenAIImageGenerationResponse,\n} from \"../types\";\nimport {\n getAuthHeader,\n getBaseURL,\n getImageDescriptionMaxTokens,\n getImageDescriptionModel,\n getImageModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ninterface ExtendedImageGenerationParams extends ImageGenerationParams {\n quality?: ImageQuality;\n style?: ImageStyle;\n}\n\nconst DEFAULT_IMAGE_DESCRIPTION_PROMPT =\n \"Please analyze this image and provide a title and detailed description.\";\n\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n): Promise<ImageGenerationResult[]> {\n const modelName = getImageModel(runtime);\n const count = params.count ?? 1;\n const size: ImageSize = (params.size as ImageSize) ?? \"1024x1024\";\n const extendedParams = params as ExtendedImageGenerationParams;\n\n logger.debug(`[OpenAI] Using IMAGE model: ${modelName}`);\n\n if (!params.prompt || params.prompt.trim().length === 0) {\n throw new Error(\"IMAGE generation requires a non-empty prompt\");\n }\n\n if (count < 1 || count > 10) {\n throw new Error(\"IMAGE count must be between 1 and 10\");\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody: Record<string, string | number> = {\n model: modelName,\n prompt: params.prompt,\n n: count,\n size,\n };\n\n if (extendedParams.quality) {\n requestBody.quality = extendedParams.quality;\n }\n if (extendedParams.style) {\n requestBody.style = extendedParams.style;\n }\n\n const response = await fetch(`${baseURL}/images/generations`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI image generation failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIImageGenerationResponse;\n\n if (!data.data || data.data.length === 0) {\n throw new Error(\"OpenAI API returned no images\");\n }\n\n return data.data.map((item) => ({\n url: item.url,\n revisedPrompt: item.revised_prompt,\n }));\n}\n\nfunction parseTitleFromResponse(content: string): string {\n const titleMatch = content.match(/title[:\\s]+(.+?)(?:\\n|$)/i);\n return titleMatch?.[1]?.trim() ?? \"Image Analysis\";\n}\n\nfunction parseDescriptionFromResponse(content: string): string {\n return content.replace(/title[:\\s]+(.+?)(?:\\n|$)/i, \"\").trim();\n}\n\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n): Promise<ImageDescriptionResult> {\n const modelName = getImageDescriptionModel(runtime);\n const maxTokens = getImageDescriptionMaxTokens(runtime);\n\n logger.debug(`[OpenAI] Using IMAGE_DESCRIPTION model: ${modelName}`);\n\n let imageUrl: string;\n let promptText: string;\n\n if (typeof params === \"string\") {\n imageUrl = params;\n promptText = DEFAULT_IMAGE_DESCRIPTION_PROMPT;\n } else {\n imageUrl = params.imageUrl;\n promptText = params.prompt ?? DEFAULT_IMAGE_DESCRIPTION_PROMPT;\n }\n\n if (!imageUrl || imageUrl.trim().length === 0) {\n throw new Error(\"IMAGE_DESCRIPTION requires a valid image URL\");\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody = {\n model: modelName,\n messages: [\n {\n role: \"user\",\n content: [\n { type: \"text\", text: promptText },\n { type: \"image_url\", image_url: { url: imageUrl } },\n ],\n },\n ],\n max_tokens: maxTokens,\n };\n\n const response = await fetch(`${baseURL}/chat/completions`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI image description failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIChatCompletionResponse;\n\n if (data.usage) {\n emitModelUsageEvent(\n runtime,\n ModelType.IMAGE_DESCRIPTION,\n typeof params === \"string\" ? params : (params.prompt ?? \"\"),\n {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: data.usage.completion_tokens,\n totalTokens: data.usage.total_tokens,\n }\n );\n }\n\n const firstChoice = data.choices?.[0];\n const content = firstChoice?.message?.content;\n\n if (!content) {\n throw new Error(\"OpenAI API returned empty image description\");\n }\n\n return {\n title: parseTitleFromResponse(content),\n description: parseDescriptionFromResponse(content),\n };\n}\n",
13
13
  "import type {\n IAgentRuntime,\n JsonValue,\n ModelTypeName,\n ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateObject, type LanguageModel } from \"ai\";\nimport { createOpenAIClient } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { getJsonRepairFunction } from \"../utils/json\";\n\ntype ModelNameGetter = (runtime: IAgentRuntime) => string;\ntype ChatModelFactory = { chat: (modelName: string) => LanguageModel };\n\nasync function generateObjectByModelType(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams,\n modelType: ModelTypeName,\n getModelFn: ModelNameGetter\n): Promise<Record<string, JsonValue>> {\n const openai = createOpenAIClient(runtime) as ChatModelFactory;\n const modelName = getModelFn(runtime);\n\n logger.debug(`[OpenAI] Using ${modelType} model: ${modelName}`);\n\n if (!params.prompt || params.prompt.trim().length === 0) {\n throw new Error(\"Object generation requires a non-empty prompt\");\n }\n\n if (params.schema) {\n logger.debug(\n \"[OpenAI] Schema provided but using no-schema mode. \" +\n \"Structure is determined by prompt instructions.\"\n );\n }\n\n const model = openai.chat(modelName);\n const { object, usage } = await generateObject({\n model,\n output: \"no-schema\",\n prompt: params.prompt,\n experimental_repairText: getJsonRepairFunction(),\n });\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n\n if (typeof object !== \"object\" || object === null) {\n throw new Error(`Object generation returned ${typeof object}, expected object`);\n }\n\n return object as Record<string, JsonValue>;\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectByModelType(runtime, params, ModelType.OBJECT_SMALL, getSmallModel);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectByModelType(runtime, params, ModelType.OBJECT_LARGE, getLargeModel);\n}\n",
@@ -18,7 +18,7 @@
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
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
20
  ],
21
- "mappings": "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",
22
- "debugId": "9C25ED78B3AA917264756E2164756E21",
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,IA4B1B,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,EACpB,MAAO,CACL,aAAc,EAAM,cAAgB,EACpC,iBAAkB,EAAM,kBAAoB,EAC5C,YAAa,EAAM,cAAgB,EAAM,cAAgB,IAAM,EAAM,kBAAoB,EAC3F,EAEF,GAAI,gBAAiB,GAAS,iBAAkB,EAAO,CACrD,IAAM,EAAS,EAAqB,aAAe,EAC7C,EAAU,EAAqB,cAAgB,EACrD,MAAO,CACL,aAAc,EACd,iBAAkB,EAClB,YAAa,EAAQ,CACvB,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,WACpB,CACF,EAEA,EAAQ,UAAU,GAAU,WAAY,CAAO,ED9EjD,IAAM,GAAuB,KAY7B,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,GAAuB,EACxC,GAAI,EAAY,OAAS,EACvB,EAAO,KACL,uCAAuC,KAAK,KAAK,EAAY,OAAS,CAAC,6BAA6B,WACtG,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,EExHT,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,YAsBhD,SAAS,EAAY,CAAC,EAA+D,CACnF,GAAI,CAAC,EACH,OAIF,IAAM,EAAe,EAAM,aAAe,EACpC,EAAmB,EAAM,cAAgB,EAE/C,MAAO,CACL,eACA,mBACA,YAAa,EAAe,CAC9B,EAgBF,eAAe,EAAuB,CACpC,EACA,EACA,EACA,EACoC,CACpC,IAAM,EAAS,EAAmB,CAAO,EACnC,EAAY,EAAW,CAAO,EAEpC,GAAO,MAAM,kBAAkB,YAAoB,GAAW,EAG9D,IAAM,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,CACzE,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,EC5IrF,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": "9FA1613D7385CA8D64756E2164756E21",
23
23
  "names": []
24
24
  }
@@ -466,6 +466,7 @@ function emitModelUsageEvent(runtime, type, prompt, usage) {
466
466
  }
467
467
 
468
468
  // models/embedding.ts
469
+ var MAX_EMBEDDING_TOKENS = 8000;
469
470
  function validateDimension(dimension) {
470
471
  const validDimensions = Object.values(import_core6.VECTOR_DIMS);
471
472
  if (!validDimensions.includes(dimension)) {
@@ -495,10 +496,15 @@ async function handleTextEmbedding(runtime, params) {
495
496
  testVector[0] = 0.1;
496
497
  return testVector;
497
498
  }
498
- const trimmedText = text.trim();
499
+ let trimmedText = text.trim();
499
500
  if (trimmedText.length === 0) {
500
501
  throw new Error("Cannot generate embedding for empty text");
501
502
  }
503
+ const maxChars = MAX_EMBEDDING_TOKENS * 4;
504
+ if (trimmedText.length > maxChars) {
505
+ import_core6.logger.warn(`[OpenAI] Embedding input too long (~${Math.ceil(trimmedText.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`);
506
+ trimmedText = trimmedText.slice(0, maxChars);
507
+ }
502
508
  const baseURL = getEmbeddingBaseURL(runtime);
503
509
  const url = `${baseURL}/embeddings`;
504
510
  import_core6.logger.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);
@@ -1282,4 +1288,4 @@ var openaiPlugin = {
1282
1288
  };
1283
1289
  var typescript_default = openaiPlugin;
1284
1290
 
1285
- //# debugId=43ABA7B59A12377C64756E2164756E21
1291
+ //# debugId=D2231A32B33E597364756E2164756E21
@@ -7,7 +7,7 @@
7
7
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\nfunction getEnvValue(key: string): string | undefined {\n if (typeof process === \"undefined\" || !process.env) {\n return undefined;\n }\n const value = process.env[key];\n return value === undefined ? undefined : String(value);\n}\n\nexport function getSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue?: string\n): string | undefined {\n const value = runtime.getSetting(key);\n if (value !== undefined && value !== null) {\n return String(value);\n }\n return getEnvValue(key) ?? defaultValue;\n}\nexport function getRequiredSetting(\n runtime: IAgentRuntime,\n key: string,\n errorMessage?: string\n): string {\n const value = getSetting(runtime, key);\n if (value === undefined || value.trim() === \"\") {\n throw new Error(errorMessage ?? `Required setting '${key}' is not configured`);\n }\n return value;\n}\n\nexport function getNumericSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue: number\n): number {\n const value = getSetting(runtime, key);\n if (value === undefined) {\n return defaultValue;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isFinite(parsed)) {\n throw new Error(`Setting '${key}' must be a valid integer, got: ${value}`);\n }\n return parsed;\n}\n\nexport function getBooleanSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue: boolean\n): boolean {\n const value = getSetting(runtime, key);\n if (value === undefined) {\n return defaultValue;\n }\n const normalized = value.toLowerCase();\n return normalized === \"true\" || normalized === \"1\" || normalized === \"yes\";\n}\n\nexport function isBrowser(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n typeof (globalThis as { document?: Document }).document !== \"undefined\"\n );\n}\n\nexport function isProxyMode(runtime: IAgentRuntime): boolean {\n return isBrowser() && !!getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\");\n}\n\nexport function getApiKey(runtime: IAgentRuntime): string | undefined {\n return getSetting(runtime, \"OPENAI_API_KEY\");\n}\n\nexport function getEmbeddingApiKey(runtime: IAgentRuntime): string | undefined {\n const embeddingApiKey = getSetting(runtime, \"OPENAI_EMBEDDING_API_KEY\");\n if (embeddingApiKey) {\n logger.debug(\"[OpenAI] Using specific embedding API key\");\n return embeddingApiKey;\n }\n logger.debug(\"[OpenAI] Falling back to general API key for embeddings\");\n return getApiKey(runtime);\n}\n\nexport function getAuthHeader(\n runtime: IAgentRuntime,\n forEmbedding = false\n): Record<string, string> {\n // By default this plugin does NOT send auth headers in the browser. This is safer because\n // frontend builds would otherwise expose secrets. For local demos, you can explicitly\n // opt-in to sending the Authorization header by setting OPENAI_ALLOW_BROWSER_API_KEY=true.\n if (isBrowser() && !getBooleanSetting(runtime, \"OPENAI_ALLOW_BROWSER_API_KEY\", false)) {\n return {};\n }\n const key = forEmbedding ? getEmbeddingApiKey(runtime) : getApiKey(runtime);\n return key ? { Authorization: `Bearer ${key}` } : {};\n}\n\nexport function getBaseURL(runtime: IAgentRuntime): string {\n const browserURL = getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\");\n const baseURL =\n isBrowser() && browserURL\n ? browserURL\n : (getSetting(runtime, \"OPENAI_BASE_URL\") ?? \"https://api.openai.com/v1\");\n logger.debug(`[OpenAI] Base URL: ${baseURL}`);\n return baseURL;\n}\n\nexport function getEmbeddingBaseURL(runtime: IAgentRuntime): string {\n const embeddingURL = isBrowser()\n ? (getSetting(runtime, \"OPENAI_BROWSER_EMBEDDING_URL\") ??\n getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\"))\n : getSetting(runtime, \"OPENAI_EMBEDDING_URL\");\n\n if (embeddingURL) {\n logger.debug(`[OpenAI] Using embedding base URL: ${embeddingURL}`);\n return embeddingURL;\n }\n\n logger.debug(\"[OpenAI] Falling back to general base URL for embeddings\");\n return getBaseURL(runtime);\n}\n\nexport function getSmallModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENAI_SMALL_MODEL\") ?? getSetting(runtime, \"SMALL_MODEL\") ?? \"gpt-5-mini\"\n );\n}\n\nexport function getLargeModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_LARGE_MODEL\") ?? getSetting(runtime, \"LARGE_MODEL\") ?? \"gpt-5\";\n}\n\nexport function getEmbeddingModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_EMBEDDING_MODEL\") ?? \"text-embedding-3-small\";\n}\n\nexport function getImageDescriptionModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_IMAGE_DESCRIPTION_MODEL\") ?? \"gpt-5-mini\";\n}\n\nexport function getTranscriptionModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TRANSCRIPTION_MODEL\") ?? \"gpt-5-mini-transcribe\";\n}\n\nexport function getTTSModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_MODEL\") ?? \"tts-1\";\n}\n\nexport function getTTSVoice(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_VOICE\") ?? \"nova\";\n}\n\nexport function getTTSInstructions(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_INSTRUCTIONS\") ?? \"\";\n}\n\nexport function getImageModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_IMAGE_MODEL\") ?? \"dall-e-3\";\n}\n\nexport function getExperimentalTelemetry(runtime: IAgentRuntime): boolean {\n return getBooleanSetting(runtime, \"OPENAI_EXPERIMENTAL_TELEMETRY\", false);\n}\n\nexport function getEmbeddingDimensions(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_EMBEDDING_DIMENSIONS\", 1536);\n}\n\nexport function getImageDescriptionMaxTokens(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS\", 8192);\n}\n\nexport function getResearchModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_RESEARCH_MODEL\") ?? \"o3-deep-research\";\n}\n\nexport function getResearchTimeout(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_RESEARCH_TIMEOUT\", 3600000);\n}\n",
8
8
  "import type {\n TextToSpeechParams as CoreTextToSpeechParams,\n TranscriptionParams as CoreTranscriptionParams,\n IAgentRuntime,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport type {\n TextToSpeechParams as LocalTextToSpeechParams,\n TranscriptionParams as LocalTranscriptionParams,\n OpenAITranscriptionResponse,\n TTSOutputFormat,\n TTSVoice,\n} from \"../types\";\nimport { detectAudioMimeType, getFilenameForMimeType } from \"../utils/audio\";\nimport {\n getAuthHeader,\n getBaseURL,\n getTranscriptionModel,\n getTTSInstructions,\n getTTSModel,\n getTTSVoice,\n} from \"../utils/config\";\n\ntype AudioInput = Blob | File | Buffer;\ntype TranscriptionInput = AudioInput | LocalTranscriptionParams | CoreTranscriptionParams | string;\ntype TTSInput = string | LocalTextToSpeechParams | CoreTextToSpeechParams;\n\nfunction isBlobOrFile(value: unknown): value is Blob | File {\n return value instanceof Blob || value instanceof File;\n}\n\nfunction isBuffer(value: unknown): value is Buffer {\n return Buffer.isBuffer(value);\n}\n\nfunction isLocalTranscriptionParams(value: unknown): value is LocalTranscriptionParams {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"audio\" in value &&\n (isBlobOrFile((value as LocalTranscriptionParams).audio) ||\n isBuffer((value as LocalTranscriptionParams).audio))\n );\n}\n\nfunction isCoreTranscriptionParams(value: unknown): value is CoreTranscriptionParams {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"audioUrl\" in value &&\n typeof (value as CoreTranscriptionParams).audioUrl === \"string\"\n );\n}\n\nasync function fetchAudioFromUrl(url: string): Promise<Blob> {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch audio from URL: ${response.status}`);\n }\n return response.blob();\n}\nexport async function handleTranscription(\n runtime: IAgentRuntime,\n input: TranscriptionInput\n): Promise<string> {\n let modelName = getTranscriptionModel(runtime);\n let blob: Blob;\n let extraParams: Partial<LocalTranscriptionParams> = {};\n\n if (typeof input === \"string\") {\n logger.debug(`[OpenAI] Fetching audio from URL: ${input}`);\n blob = await fetchAudioFromUrl(input);\n } else if (isBlobOrFile(input)) {\n blob = input;\n } else if (isBuffer(input)) {\n const mimeType = detectAudioMimeType(input);\n logger.debug(`[OpenAI] Auto-detected audio MIME type: ${mimeType}`);\n blob = new Blob([new Uint8Array(input)], { type: mimeType });\n } else if (isLocalTranscriptionParams(input)) {\n extraParams = input;\n if (input.model) {\n modelName = input.model;\n }\n if (isBuffer(input.audio)) {\n const mimeType = input.mimeType ?? detectAudioMimeType(input.audio);\n logger.debug(`[OpenAI] Using MIME type: ${mimeType}`);\n blob = new Blob([new Uint8Array(input.audio)], { type: mimeType });\n } else {\n blob = input.audio;\n }\n } else if (isCoreTranscriptionParams(input)) {\n logger.debug(`[OpenAI] Fetching audio from URL: ${input.audioUrl}`);\n blob = await fetchAudioFromUrl(input.audioUrl);\n extraParams = { prompt: input.prompt };\n } else {\n throw new Error(\n \"TRANSCRIPTION expects Blob, File, Buffer, URL string, or TranscriptionParams object\"\n );\n }\n\n logger.debug(`[OpenAI] Using TRANSCRIPTION model: ${modelName}`);\n\n const mimeType = (blob as File).type || \"audio/webm\";\n const filename =\n (blob as File).name ||\n getFilenameForMimeType(\n mimeType.startsWith(\"audio/\")\n ? (mimeType as ReturnType<typeof detectAudioMimeType>)\n : \"audio/webm\"\n );\n\n const formData = new FormData();\n formData.append(\"file\", blob, filename);\n formData.append(\"model\", modelName);\n\n if (extraParams.language) {\n formData.append(\"language\", extraParams.language);\n }\n if (extraParams.responseFormat) {\n formData.append(\"response_format\", extraParams.responseFormat);\n }\n if (extraParams.prompt) {\n formData.append(\"prompt\", extraParams.prompt);\n }\n if (extraParams.temperature !== undefined) {\n formData.append(\"temperature\", String(extraParams.temperature));\n }\n if (extraParams.timestampGranularities) {\n for (const granularity of extraParams.timestampGranularities) {\n formData.append(\"timestamp_granularities[]\", granularity);\n }\n }\n\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/audio/transcriptions`, {\n method: \"POST\",\n headers: getAuthHeader(runtime),\n body: formData,\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI transcription failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAITranscriptionResponse;\n return data.text;\n}\n\nexport async function handleTextToSpeech(\n runtime: IAgentRuntime,\n input: TTSInput\n): Promise<ArrayBuffer> {\n let text: string;\n let voice: string | undefined;\n let format: TTSOutputFormat = \"mp3\";\n let model: string | undefined;\n let instructions: string | undefined;\n\n if (typeof input === \"string\") {\n text = input;\n voice = undefined;\n } else {\n text = input.text;\n voice = input.voice;\n if (\"format\" in input && input.format) {\n format = input.format;\n }\n if (\"model\" in input && input.model) {\n model = input.model;\n }\n if (\"instructions\" in input && input.instructions) {\n instructions = input.instructions;\n }\n }\n\n model = model ?? getTTSModel(runtime);\n voice = voice ?? getTTSVoice(runtime);\n instructions = instructions ?? getTTSInstructions(runtime);\n\n logger.debug(`[OpenAI] Using TEXT_TO_SPEECH model: ${model}`);\n\n if (!text || text.trim().length === 0) {\n throw new Error(\"TEXT_TO_SPEECH requires non-empty text\");\n }\n\n if (text.length > 4096) {\n throw new Error(\"TEXT_TO_SPEECH text exceeds 4096 character limit\");\n }\n\n const validVoices: TTSVoice[] = [\"alloy\", \"echo\", \"fable\", \"onyx\", \"nova\", \"shimmer\"];\n if (voice && !validVoices.includes(voice as TTSVoice)) {\n throw new Error(`Invalid voice: ${voice}. Must be one of: ${validVoices.join(\", \")}`);\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody: Record<string, string> = {\n model,\n voice: voice as TTSVoice,\n input: text,\n response_format: format,\n };\n\n if (instructions && instructions.length > 0) {\n requestBody.instructions = instructions;\n }\n\n const response = await fetch(`${baseURL}/audio/speech`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n ...(format === \"mp3\" ? { Accept: \"audio/mpeg\" } : {}),\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(`OpenAI TTS failed: ${response.status} ${response.statusText} - ${errorText}`);\n }\n\n return response.arrayBuffer();\n}\n",
9
9
  "import { logger } from \"@elizaos/core\";\n\nconst MAGIC_BYTES = {\n WAV: {\n HEADER: [0x52, 0x49, 0x46, 0x46] as const, // \"RIFF\"\n IDENTIFIER: [0x57, 0x41, 0x56, 0x45] as const, // \"WAVE\"\n },\n MP3_ID3: [0x49, 0x44, 0x33] as const, // \"ID3\"\n OGG: [0x4f, 0x67, 0x67, 0x53] as const, // \"OggS\"\n FLAC: [0x66, 0x4c, 0x61, 0x43] as const, // \"fLaC\"\n FTYP: [0x66, 0x74, 0x79, 0x70] as const, // \"ftyp\" at offset 4 for mp4/m4a\n WEBM_EBML: [0x1a, 0x45, 0xdf, 0xa3] as const, // EBML header\n} as const;\n\nconst MIN_DETECTION_BUFFER_SIZE = 12;\n\nexport type AudioMimeType =\n | \"audio/wav\"\n | \"audio/mpeg\"\n | \"audio/ogg\"\n | \"audio/flac\"\n | \"audio/mp4\"\n | \"audio/webm\"\n | \"application/octet-stream\";\n\nfunction matchBytes(buffer: Buffer, offset: number, expected: readonly number[]): boolean {\n for (let i = 0; i < expected.length; i++) {\n const expectedByte = expected[i];\n if (expectedByte === undefined || buffer[offset + i] !== expectedByte) {\n return false;\n }\n }\n return true;\n}\n\nexport function detectAudioMimeType(buffer: Buffer): AudioMimeType {\n if (buffer.length < MIN_DETECTION_BUFFER_SIZE) {\n return \"application/octet-stream\";\n }\n\n // WAV: \"RIFF\" + size + \"WAVE\"\n if (\n matchBytes(buffer, 0, MAGIC_BYTES.WAV.HEADER) &&\n matchBytes(buffer, 8, MAGIC_BYTES.WAV.IDENTIFIER)\n ) {\n return \"audio/wav\";\n }\n\n // MP3: ID3 tag or MPEG frame sync\n const firstByte = buffer[0];\n const secondByte = buffer[1];\n if (\n matchBytes(buffer, 0, MAGIC_BYTES.MP3_ID3) ||\n (firstByte === 0xff && secondByte !== undefined && (secondByte & 0xe0) === 0xe0)\n ) {\n return \"audio/mpeg\";\n }\n\n // OGG: \"OggS\"\n if (matchBytes(buffer, 0, MAGIC_BYTES.OGG)) {\n return \"audio/ogg\";\n }\n\n // FLAC: \"fLaC\"\n if (matchBytes(buffer, 0, MAGIC_BYTES.FLAC)) {\n return \"audio/flac\";\n }\n\n // M4A/MP4: \"ftyp\" at offset 4\n if (matchBytes(buffer, 4, MAGIC_BYTES.FTYP)) {\n return \"audio/mp4\";\n }\n\n // WebM: EBML header\n if (matchBytes(buffer, 0, MAGIC_BYTES.WEBM_EBML)) {\n return \"audio/webm\";\n }\n\n logger.warn(\"Could not detect audio format from buffer, using generic binary type\");\n return \"application/octet-stream\";\n}\n\nexport function getExtensionForMimeType(mimeType: AudioMimeType): string {\n switch (mimeType) {\n case \"audio/wav\":\n return \"wav\";\n case \"audio/mpeg\":\n return \"mp3\";\n case \"audio/ogg\":\n return \"ogg\";\n case \"audio/flac\":\n return \"flac\";\n case \"audio/mp4\":\n return \"m4a\";\n case \"audio/webm\":\n return \"webm\";\n case \"application/octet-stream\":\n return \"bin\";\n }\n}\n\nexport function getFilenameForMimeType(mimeType: AudioMimeType): string {\n const ext = getExtensionForMimeType(mimeType);\n return `recording.${ext}`;\n}\n\nexport function validateAudioFormat(buffer: Buffer): AudioMimeType {\n const mimeType = detectAudioMimeType(buffer);\n if (mimeType === \"application/octet-stream\") {\n throw new Error(\n \"Unable to detect audio format. Supported formats: WAV, MP3, OGG, FLAC, M4A, WebM\"\n );\n }\n return mimeType;\n}\n",
10
- "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\nimport type { OpenAIEmbeddingResponse } from \"../types\";\nimport {\n getAuthHeader,\n getEmbeddingBaseURL,\n getEmbeddingDimensions,\n getEmbeddingModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ntype VectorDimension = (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\nfunction validateDimension(dimension: number): VectorDimension {\n const validDimensions = Object.values(VECTOR_DIMS) as number[];\n if (!validDimensions.includes(dimension)) {\n throw new Error(\n `Invalid embedding dimension: ${dimension}. Must be one of: ${validDimensions.join(\", \")}`\n );\n }\n return dimension as VectorDimension;\n}\n\nfunction extractText(params: TextEmbeddingParams | string | null): string | null {\n if (params === null) {\n return null;\n }\n if (typeof params === \"string\") {\n return params;\n }\n if (typeof params === \"object\" && typeof params.text === \"string\") {\n return params.text;\n }\n throw new Error(\"Invalid embedding params: expected string, { text: string }, or null\");\n}\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModel = getEmbeddingModel(runtime);\n const embeddingDimension = validateDimension(getEmbeddingDimensions(runtime));\n\n const text = extractText(params);\n if (text === null) {\n logger.debug(\"[OpenAI] Creating test embedding for initialization\");\n const testVector = new Array(embeddingDimension).fill(0);\n testVector[0] = 0.1;\n return testVector;\n }\n\n const trimmedText = text.trim();\n if (trimmedText.length === 0) {\n throw new Error(\"Cannot generate embedding for empty text\");\n }\n\n const baseURL = getEmbeddingBaseURL(runtime);\n const url = `${baseURL}/embeddings`;\n\n logger.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime, true),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n model: embeddingModel,\n input: trimmedText,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI embedding API error: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIEmbeddingResponse;\n\n const firstResult = data?.data?.[0];\n if (!firstResult || !firstResult.embedding) {\n throw new Error(\"OpenAI API returned invalid embedding response structure\");\n }\n\n const embedding = firstResult.embedding;\n\n if (embedding.length !== embeddingDimension) {\n throw new Error(\n `Embedding dimension mismatch: got ${embedding.length}, expected ${embeddingDimension}. ` +\n `Check OPENAI_EMBEDDING_DIMENSIONS setting.`\n );\n }\n\n if (data.usage) {\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, trimmedText, {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: 0,\n totalTokens: data.usage.total_tokens,\n });\n }\n\n logger.debug(`[OpenAI] Generated embedding with ${embedding.length} dimensions`);\n return embedding;\n}\n",
10
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\n\n// Safe default that matches @elizaos/core's MAX_EMBEDDING_TOKENS (8 000).\n// Defined locally so the plugin doesn't break against core versions older\n// than 2.0.0-alpha.4 where the symbol wasn't exported yet.\nconst MAX_EMBEDDING_TOKENS = 8_000;\nimport type { OpenAIEmbeddingResponse } from \"../types\";\nimport {\n getAuthHeader,\n getEmbeddingBaseURL,\n getEmbeddingDimensions,\n getEmbeddingModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ntype VectorDimension = (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\nfunction validateDimension(dimension: number): VectorDimension {\n const validDimensions = Object.values(VECTOR_DIMS) as number[];\n if (!validDimensions.includes(dimension)) {\n throw new Error(\n `Invalid embedding dimension: ${dimension}. Must be one of: ${validDimensions.join(\", \")}`\n );\n }\n return dimension as VectorDimension;\n}\n\nfunction extractText(params: TextEmbeddingParams | string | null): string | null {\n if (params === null) {\n return null;\n }\n if (typeof params === \"string\") {\n return params;\n }\n if (typeof params === \"object\" && typeof params.text === \"string\") {\n return params.text;\n }\n throw new Error(\"Invalid embedding params: expected string, { text: string }, or null\");\n}\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModel = getEmbeddingModel(runtime);\n const embeddingDimension = validateDimension(getEmbeddingDimensions(runtime));\n\n const text = extractText(params);\n if (text === null) {\n logger.debug(\"[OpenAI] Creating test embedding for initialization\");\n const testVector = new Array(embeddingDimension).fill(0);\n testVector[0] = 0.1;\n return testVector;\n }\n\n let trimmedText = text.trim();\n if (trimmedText.length === 0) {\n throw new Error(\"Cannot generate embedding for empty text\");\n }\n\n // Truncate to stay within embedding model token limits.\n // OpenAI embedding models support up to 8191 tokens per input;\n // MAX_EMBEDDING_TOKENS (8 000) provides a safe buffer.\n const maxChars = MAX_EMBEDDING_TOKENS * 4; // ~4 chars per token\n if (trimmedText.length > maxChars) {\n logger.warn(\n `[OpenAI] Embedding input too long (~${Math.ceil(trimmedText.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`\n );\n trimmedText = trimmedText.slice(0, maxChars);\n }\n\n const baseURL = getEmbeddingBaseURL(runtime);\n const url = `${baseURL}/embeddings`;\n\n logger.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime, true),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n model: embeddingModel,\n input: trimmedText,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI embedding API error: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIEmbeddingResponse;\n\n const firstResult = data?.data?.[0];\n if (!firstResult || !firstResult.embedding) {\n throw new Error(\"OpenAI API returned invalid embedding response structure\");\n }\n\n const embedding = firstResult.embedding;\n\n if (embedding.length !== embeddingDimension) {\n throw new Error(\n `Embedding dimension mismatch: got ${embedding.length}, expected ${embeddingDimension}. ` +\n `Check OPENAI_EMBEDDING_DIMENSIONS setting.`\n );\n }\n\n if (data.usage) {\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, trimmedText, {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: 0,\n totalTokens: data.usage.total_tokens,\n });\n }\n\n logger.debug(`[OpenAI] Generated embedding with ${embedding.length} dimensions`);\n return embedding;\n}\n",
11
11
  "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { EventType } from \"@elizaos/core\";\nimport type { TokenUsage } from \"../types\";\n\nconst MAX_PROMPT_LENGTH = 200;\n\ninterface ModelUsageEventPayload {\n runtime: IAgentRuntime;\n source: \"openai\";\n provider: \"openai\";\n type: ModelTypeName;\n prompt: string;\n tokens: {\n prompt: number;\n completion: number;\n total: number;\n };\n}\n\ninterface AISDKUsage {\n inputTokens?: number;\n outputTokens?: number;\n}\n\ninterface OpenAIAPIUsage {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n}\n\ntype ModelUsage = TokenUsage | AISDKUsage | OpenAIAPIUsage;\n\nfunction truncatePrompt(prompt: string): string {\n if (prompt.length <= MAX_PROMPT_LENGTH) {\n return prompt;\n }\n return `${prompt.slice(0, MAX_PROMPT_LENGTH)}…`;\n}\n\nfunction normalizeUsage(usage: ModelUsage): TokenUsage {\n if (\"promptTokens\" in usage) {\n return {\n promptTokens: usage.promptTokens ?? 0,\n completionTokens: usage.completionTokens ?? 0,\n totalTokens: usage.totalTokens ?? (usage.promptTokens ?? 0) + (usage.completionTokens ?? 0),\n };\n }\n if (\"inputTokens\" in usage || \"outputTokens\" in usage) {\n const input = (usage as AISDKUsage).inputTokens ?? 0;\n const output = (usage as AISDKUsage).outputTokens ?? 0;\n return {\n promptTokens: input,\n completionTokens: output,\n totalTokens: input + output,\n };\n }\n return {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n };\n}\n\nexport function emitModelUsageEvent(\n runtime: IAgentRuntime,\n type: ModelTypeName,\n prompt: string,\n usage: ModelUsage\n): void {\n const normalized = normalizeUsage(usage);\n\n const payload: ModelUsageEventPayload = {\n runtime,\n source: \"openai\",\n provider: \"openai\",\n type,\n prompt: truncatePrompt(prompt),\n tokens: {\n prompt: normalized.promptTokens,\n completion: normalized.completionTokens,\n total: normalized.totalTokens,\n },\n };\n\n runtime.emitEvent(EventType.MODEL_USED, payload);\n}\n",
12
12
  "import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport type {\n ImageDescriptionResult,\n ImageGenerationResult,\n ImageQuality,\n ImageSize,\n ImageStyle,\n OpenAIChatCompletionResponse,\n OpenAIImageGenerationResponse,\n} from \"../types\";\nimport {\n getAuthHeader,\n getBaseURL,\n getImageDescriptionMaxTokens,\n getImageDescriptionModel,\n getImageModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ninterface ExtendedImageGenerationParams extends ImageGenerationParams {\n quality?: ImageQuality;\n style?: ImageStyle;\n}\n\nconst DEFAULT_IMAGE_DESCRIPTION_PROMPT =\n \"Please analyze this image and provide a title and detailed description.\";\n\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n): Promise<ImageGenerationResult[]> {\n const modelName = getImageModel(runtime);\n const count = params.count ?? 1;\n const size: ImageSize = (params.size as ImageSize) ?? \"1024x1024\";\n const extendedParams = params as ExtendedImageGenerationParams;\n\n logger.debug(`[OpenAI] Using IMAGE model: ${modelName}`);\n\n if (!params.prompt || params.prompt.trim().length === 0) {\n throw new Error(\"IMAGE generation requires a non-empty prompt\");\n }\n\n if (count < 1 || count > 10) {\n throw new Error(\"IMAGE count must be between 1 and 10\");\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody: Record<string, string | number> = {\n model: modelName,\n prompt: params.prompt,\n n: count,\n size,\n };\n\n if (extendedParams.quality) {\n requestBody.quality = extendedParams.quality;\n }\n if (extendedParams.style) {\n requestBody.style = extendedParams.style;\n }\n\n const response = await fetch(`${baseURL}/images/generations`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI image generation failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIImageGenerationResponse;\n\n if (!data.data || data.data.length === 0) {\n throw new Error(\"OpenAI API returned no images\");\n }\n\n return data.data.map((item) => ({\n url: item.url,\n revisedPrompt: item.revised_prompt,\n }));\n}\n\nfunction parseTitleFromResponse(content: string): string {\n const titleMatch = content.match(/title[:\\s]+(.+?)(?:\\n|$)/i);\n return titleMatch?.[1]?.trim() ?? \"Image Analysis\";\n}\n\nfunction parseDescriptionFromResponse(content: string): string {\n return content.replace(/title[:\\s]+(.+?)(?:\\n|$)/i, \"\").trim();\n}\n\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n): Promise<ImageDescriptionResult> {\n const modelName = getImageDescriptionModel(runtime);\n const maxTokens = getImageDescriptionMaxTokens(runtime);\n\n logger.debug(`[OpenAI] Using IMAGE_DESCRIPTION model: ${modelName}`);\n\n let imageUrl: string;\n let promptText: string;\n\n if (typeof params === \"string\") {\n imageUrl = params;\n promptText = DEFAULT_IMAGE_DESCRIPTION_PROMPT;\n } else {\n imageUrl = params.imageUrl;\n promptText = params.prompt ?? DEFAULT_IMAGE_DESCRIPTION_PROMPT;\n }\n\n if (!imageUrl || imageUrl.trim().length === 0) {\n throw new Error(\"IMAGE_DESCRIPTION requires a valid image URL\");\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody = {\n model: modelName,\n messages: [\n {\n role: \"user\",\n content: [\n { type: \"text\", text: promptText },\n { type: \"image_url\", image_url: { url: imageUrl } },\n ],\n },\n ],\n max_tokens: maxTokens,\n };\n\n const response = await fetch(`${baseURL}/chat/completions`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI image description failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIChatCompletionResponse;\n\n if (data.usage) {\n emitModelUsageEvent(\n runtime,\n ModelType.IMAGE_DESCRIPTION,\n typeof params === \"string\" ? params : (params.prompt ?? \"\"),\n {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: data.usage.completion_tokens,\n totalTokens: data.usage.total_tokens,\n }\n );\n }\n\n const firstChoice = data.choices?.[0];\n const content = firstChoice?.message?.content;\n\n if (!content) {\n throw new Error(\"OpenAI API returned empty image description\");\n }\n\n return {\n title: parseTitleFromResponse(content),\n description: parseDescriptionFromResponse(content),\n };\n}\n",
13
13
  "import type {\n IAgentRuntime,\n JsonValue,\n ModelTypeName,\n ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateObject, type LanguageModel } from \"ai\";\nimport { createOpenAIClient } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { getJsonRepairFunction } from \"../utils/json\";\n\ntype ModelNameGetter = (runtime: IAgentRuntime) => string;\ntype ChatModelFactory = { chat: (modelName: string) => LanguageModel };\n\nasync function generateObjectByModelType(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams,\n modelType: ModelTypeName,\n getModelFn: ModelNameGetter\n): Promise<Record<string, JsonValue>> {\n const openai = createOpenAIClient(runtime) as ChatModelFactory;\n const modelName = getModelFn(runtime);\n\n logger.debug(`[OpenAI] Using ${modelType} model: ${modelName}`);\n\n if (!params.prompt || params.prompt.trim().length === 0) {\n throw new Error(\"Object generation requires a non-empty prompt\");\n }\n\n if (params.schema) {\n logger.debug(\n \"[OpenAI] Schema provided but using no-schema mode. \" +\n \"Structure is determined by prompt instructions.\"\n );\n }\n\n const model = openai.chat(modelName);\n const { object, usage } = await generateObject({\n model,\n output: \"no-schema\",\n prompt: params.prompt,\n experimental_repairText: getJsonRepairFunction(),\n });\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n\n if (typeof object !== \"object\" || object === null) {\n throw new Error(`Object generation returned ${typeof object}, expected object`);\n }\n\n return object as Record<string, JsonValue>;\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectByModelType(runtime, params, ModelType.OBJECT_SMALL, getSmallModel);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectByModelType(runtime, params, ModelType.OBJECT_LARGE, getLargeModel);\n}\n",
@@ -18,7 +18,7 @@
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
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
20
  ],
21
- "mappings": "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",
22
- "debugId": "43ABA7B59A12377C64756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "D2231A32B33E597364756E2164756E21",
23
23
  "names": []
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../models/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAoCxE,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CAmEnB"}
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../models/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAyCxE,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CA8EnB"}
@@ -430,6 +430,7 @@ function emitModelUsageEvent(runtime, type, prompt, usage) {
430
430
  }
431
431
 
432
432
  // models/embedding.ts
433
+ var MAX_EMBEDDING_TOKENS = 8000;
433
434
  function validateDimension(dimension) {
434
435
  const validDimensions = Object.values(VECTOR_DIMS);
435
436
  if (!validDimensions.includes(dimension)) {
@@ -459,10 +460,15 @@ async function handleTextEmbedding(runtime, params) {
459
460
  testVector[0] = 0.1;
460
461
  return testVector;
461
462
  }
462
- const trimmedText = text.trim();
463
+ let trimmedText = text.trim();
463
464
  if (trimmedText.length === 0) {
464
465
  throw new Error("Cannot generate embedding for empty text");
465
466
  }
467
+ const maxChars = MAX_EMBEDDING_TOKENS * 4;
468
+ if (trimmedText.length > maxChars) {
469
+ logger5.warn(`[OpenAI] Embedding input too long (~${Math.ceil(trimmedText.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`);
470
+ trimmedText = trimmedText.slice(0, maxChars);
471
+ }
466
472
  const baseURL = getEmbeddingBaseURL(runtime);
467
473
  const url = `${baseURL}/embeddings`;
468
474
  logger5.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);
@@ -1253,4 +1259,4 @@ export {
1253
1259
  typescript_default as default
1254
1260
  };
1255
1261
 
1256
- //# debugId=AE97436E4960EAED64756E2164756E21
1262
+ //# debugId=3851A4BEB164E8B664756E2164756E21
@@ -7,7 +7,7 @@
7
7
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\nfunction getEnvValue(key: string): string | undefined {\n if (typeof process === \"undefined\" || !process.env) {\n return undefined;\n }\n const value = process.env[key];\n return value === undefined ? undefined : String(value);\n}\n\nexport function getSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue?: string\n): string | undefined {\n const value = runtime.getSetting(key);\n if (value !== undefined && value !== null) {\n return String(value);\n }\n return getEnvValue(key) ?? defaultValue;\n}\nexport function getRequiredSetting(\n runtime: IAgentRuntime,\n key: string,\n errorMessage?: string\n): string {\n const value = getSetting(runtime, key);\n if (value === undefined || value.trim() === \"\") {\n throw new Error(errorMessage ?? `Required setting '${key}' is not configured`);\n }\n return value;\n}\n\nexport function getNumericSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue: number\n): number {\n const value = getSetting(runtime, key);\n if (value === undefined) {\n return defaultValue;\n }\n const parsed = Number.parseInt(value, 10);\n if (!Number.isFinite(parsed)) {\n throw new Error(`Setting '${key}' must be a valid integer, got: ${value}`);\n }\n return parsed;\n}\n\nexport function getBooleanSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue: boolean\n): boolean {\n const value = getSetting(runtime, key);\n if (value === undefined) {\n return defaultValue;\n }\n const normalized = value.toLowerCase();\n return normalized === \"true\" || normalized === \"1\" || normalized === \"yes\";\n}\n\nexport function isBrowser(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n typeof (globalThis as { document?: Document }).document !== \"undefined\"\n );\n}\n\nexport function isProxyMode(runtime: IAgentRuntime): boolean {\n return isBrowser() && !!getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\");\n}\n\nexport function getApiKey(runtime: IAgentRuntime): string | undefined {\n return getSetting(runtime, \"OPENAI_API_KEY\");\n}\n\nexport function getEmbeddingApiKey(runtime: IAgentRuntime): string | undefined {\n const embeddingApiKey = getSetting(runtime, \"OPENAI_EMBEDDING_API_KEY\");\n if (embeddingApiKey) {\n logger.debug(\"[OpenAI] Using specific embedding API key\");\n return embeddingApiKey;\n }\n logger.debug(\"[OpenAI] Falling back to general API key for embeddings\");\n return getApiKey(runtime);\n}\n\nexport function getAuthHeader(\n runtime: IAgentRuntime,\n forEmbedding = false\n): Record<string, string> {\n // By default this plugin does NOT send auth headers in the browser. This is safer because\n // frontend builds would otherwise expose secrets. For local demos, you can explicitly\n // opt-in to sending the Authorization header by setting OPENAI_ALLOW_BROWSER_API_KEY=true.\n if (isBrowser() && !getBooleanSetting(runtime, \"OPENAI_ALLOW_BROWSER_API_KEY\", false)) {\n return {};\n }\n const key = forEmbedding ? getEmbeddingApiKey(runtime) : getApiKey(runtime);\n return key ? { Authorization: `Bearer ${key}` } : {};\n}\n\nexport function getBaseURL(runtime: IAgentRuntime): string {\n const browserURL = getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\");\n const baseURL =\n isBrowser() && browserURL\n ? browserURL\n : (getSetting(runtime, \"OPENAI_BASE_URL\") ?? \"https://api.openai.com/v1\");\n logger.debug(`[OpenAI] Base URL: ${baseURL}`);\n return baseURL;\n}\n\nexport function getEmbeddingBaseURL(runtime: IAgentRuntime): string {\n const embeddingURL = isBrowser()\n ? (getSetting(runtime, \"OPENAI_BROWSER_EMBEDDING_URL\") ??\n getSetting(runtime, \"OPENAI_BROWSER_BASE_URL\"))\n : getSetting(runtime, \"OPENAI_EMBEDDING_URL\");\n\n if (embeddingURL) {\n logger.debug(`[OpenAI] Using embedding base URL: ${embeddingURL}`);\n return embeddingURL;\n }\n\n logger.debug(\"[OpenAI] Falling back to general base URL for embeddings\");\n return getBaseURL(runtime);\n}\n\nexport function getSmallModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENAI_SMALL_MODEL\") ?? getSetting(runtime, \"SMALL_MODEL\") ?? \"gpt-5-mini\"\n );\n}\n\nexport function getLargeModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_LARGE_MODEL\") ?? getSetting(runtime, \"LARGE_MODEL\") ?? \"gpt-5\";\n}\n\nexport function getEmbeddingModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_EMBEDDING_MODEL\") ?? \"text-embedding-3-small\";\n}\n\nexport function getImageDescriptionModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_IMAGE_DESCRIPTION_MODEL\") ?? \"gpt-5-mini\";\n}\n\nexport function getTranscriptionModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TRANSCRIPTION_MODEL\") ?? \"gpt-5-mini-transcribe\";\n}\n\nexport function getTTSModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_MODEL\") ?? \"tts-1\";\n}\n\nexport function getTTSVoice(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_VOICE\") ?? \"nova\";\n}\n\nexport function getTTSInstructions(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_TTS_INSTRUCTIONS\") ?? \"\";\n}\n\nexport function getImageModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_IMAGE_MODEL\") ?? \"dall-e-3\";\n}\n\nexport function getExperimentalTelemetry(runtime: IAgentRuntime): boolean {\n return getBooleanSetting(runtime, \"OPENAI_EXPERIMENTAL_TELEMETRY\", false);\n}\n\nexport function getEmbeddingDimensions(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_EMBEDDING_DIMENSIONS\", 1536);\n}\n\nexport function getImageDescriptionMaxTokens(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_IMAGE_DESCRIPTION_MAX_TOKENS\", 8192);\n}\n\nexport function getResearchModel(runtime: IAgentRuntime): string {\n return getSetting(runtime, \"OPENAI_RESEARCH_MODEL\") ?? \"o3-deep-research\";\n}\n\nexport function getResearchTimeout(runtime: IAgentRuntime): number {\n return getNumericSetting(runtime, \"OPENAI_RESEARCH_TIMEOUT\", 3600000);\n}\n",
8
8
  "import type {\n TextToSpeechParams as CoreTextToSpeechParams,\n TranscriptionParams as CoreTranscriptionParams,\n IAgentRuntime,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport type {\n TextToSpeechParams as LocalTextToSpeechParams,\n TranscriptionParams as LocalTranscriptionParams,\n OpenAITranscriptionResponse,\n TTSOutputFormat,\n TTSVoice,\n} from \"../types\";\nimport { detectAudioMimeType, getFilenameForMimeType } from \"../utils/audio\";\nimport {\n getAuthHeader,\n getBaseURL,\n getTranscriptionModel,\n getTTSInstructions,\n getTTSModel,\n getTTSVoice,\n} from \"../utils/config\";\n\ntype AudioInput = Blob | File | Buffer;\ntype TranscriptionInput = AudioInput | LocalTranscriptionParams | CoreTranscriptionParams | string;\ntype TTSInput = string | LocalTextToSpeechParams | CoreTextToSpeechParams;\n\nfunction isBlobOrFile(value: unknown): value is Blob | File {\n return value instanceof Blob || value instanceof File;\n}\n\nfunction isBuffer(value: unknown): value is Buffer {\n return Buffer.isBuffer(value);\n}\n\nfunction isLocalTranscriptionParams(value: unknown): value is LocalTranscriptionParams {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"audio\" in value &&\n (isBlobOrFile((value as LocalTranscriptionParams).audio) ||\n isBuffer((value as LocalTranscriptionParams).audio))\n );\n}\n\nfunction isCoreTranscriptionParams(value: unknown): value is CoreTranscriptionParams {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"audioUrl\" in value &&\n typeof (value as CoreTranscriptionParams).audioUrl === \"string\"\n );\n}\n\nasync function fetchAudioFromUrl(url: string): Promise<Blob> {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch audio from URL: ${response.status}`);\n }\n return response.blob();\n}\nexport async function handleTranscription(\n runtime: IAgentRuntime,\n input: TranscriptionInput\n): Promise<string> {\n let modelName = getTranscriptionModel(runtime);\n let blob: Blob;\n let extraParams: Partial<LocalTranscriptionParams> = {};\n\n if (typeof input === \"string\") {\n logger.debug(`[OpenAI] Fetching audio from URL: ${input}`);\n blob = await fetchAudioFromUrl(input);\n } else if (isBlobOrFile(input)) {\n blob = input;\n } else if (isBuffer(input)) {\n const mimeType = detectAudioMimeType(input);\n logger.debug(`[OpenAI] Auto-detected audio MIME type: ${mimeType}`);\n blob = new Blob([new Uint8Array(input)], { type: mimeType });\n } else if (isLocalTranscriptionParams(input)) {\n extraParams = input;\n if (input.model) {\n modelName = input.model;\n }\n if (isBuffer(input.audio)) {\n const mimeType = input.mimeType ?? detectAudioMimeType(input.audio);\n logger.debug(`[OpenAI] Using MIME type: ${mimeType}`);\n blob = new Blob([new Uint8Array(input.audio)], { type: mimeType });\n } else {\n blob = input.audio;\n }\n } else if (isCoreTranscriptionParams(input)) {\n logger.debug(`[OpenAI] Fetching audio from URL: ${input.audioUrl}`);\n blob = await fetchAudioFromUrl(input.audioUrl);\n extraParams = { prompt: input.prompt };\n } else {\n throw new Error(\n \"TRANSCRIPTION expects Blob, File, Buffer, URL string, or TranscriptionParams object\"\n );\n }\n\n logger.debug(`[OpenAI] Using TRANSCRIPTION model: ${modelName}`);\n\n const mimeType = (blob as File).type || \"audio/webm\";\n const filename =\n (blob as File).name ||\n getFilenameForMimeType(\n mimeType.startsWith(\"audio/\")\n ? (mimeType as ReturnType<typeof detectAudioMimeType>)\n : \"audio/webm\"\n );\n\n const formData = new FormData();\n formData.append(\"file\", blob, filename);\n formData.append(\"model\", modelName);\n\n if (extraParams.language) {\n formData.append(\"language\", extraParams.language);\n }\n if (extraParams.responseFormat) {\n formData.append(\"response_format\", extraParams.responseFormat);\n }\n if (extraParams.prompt) {\n formData.append(\"prompt\", extraParams.prompt);\n }\n if (extraParams.temperature !== undefined) {\n formData.append(\"temperature\", String(extraParams.temperature));\n }\n if (extraParams.timestampGranularities) {\n for (const granularity of extraParams.timestampGranularities) {\n formData.append(\"timestamp_granularities[]\", granularity);\n }\n }\n\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/audio/transcriptions`, {\n method: \"POST\",\n headers: getAuthHeader(runtime),\n body: formData,\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI transcription failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAITranscriptionResponse;\n return data.text;\n}\n\nexport async function handleTextToSpeech(\n runtime: IAgentRuntime,\n input: TTSInput\n): Promise<ArrayBuffer> {\n let text: string;\n let voice: string | undefined;\n let format: TTSOutputFormat = \"mp3\";\n let model: string | undefined;\n let instructions: string | undefined;\n\n if (typeof input === \"string\") {\n text = input;\n voice = undefined;\n } else {\n text = input.text;\n voice = input.voice;\n if (\"format\" in input && input.format) {\n format = input.format;\n }\n if (\"model\" in input && input.model) {\n model = input.model;\n }\n if (\"instructions\" in input && input.instructions) {\n instructions = input.instructions;\n }\n }\n\n model = model ?? getTTSModel(runtime);\n voice = voice ?? getTTSVoice(runtime);\n instructions = instructions ?? getTTSInstructions(runtime);\n\n logger.debug(`[OpenAI] Using TEXT_TO_SPEECH model: ${model}`);\n\n if (!text || text.trim().length === 0) {\n throw new Error(\"TEXT_TO_SPEECH requires non-empty text\");\n }\n\n if (text.length > 4096) {\n throw new Error(\"TEXT_TO_SPEECH text exceeds 4096 character limit\");\n }\n\n const validVoices: TTSVoice[] = [\"alloy\", \"echo\", \"fable\", \"onyx\", \"nova\", \"shimmer\"];\n if (voice && !validVoices.includes(voice as TTSVoice)) {\n throw new Error(`Invalid voice: ${voice}. Must be one of: ${validVoices.join(\", \")}`);\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody: Record<string, string> = {\n model,\n voice: voice as TTSVoice,\n input: text,\n response_format: format,\n };\n\n if (instructions && instructions.length > 0) {\n requestBody.instructions = instructions;\n }\n\n const response = await fetch(`${baseURL}/audio/speech`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n ...(format === \"mp3\" ? { Accept: \"audio/mpeg\" } : {}),\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(`OpenAI TTS failed: ${response.status} ${response.statusText} - ${errorText}`);\n }\n\n return response.arrayBuffer();\n}\n",
9
9
  "import { logger } from \"@elizaos/core\";\n\nconst MAGIC_BYTES = {\n WAV: {\n HEADER: [0x52, 0x49, 0x46, 0x46] as const, // \"RIFF\"\n IDENTIFIER: [0x57, 0x41, 0x56, 0x45] as const, // \"WAVE\"\n },\n MP3_ID3: [0x49, 0x44, 0x33] as const, // \"ID3\"\n OGG: [0x4f, 0x67, 0x67, 0x53] as const, // \"OggS\"\n FLAC: [0x66, 0x4c, 0x61, 0x43] as const, // \"fLaC\"\n FTYP: [0x66, 0x74, 0x79, 0x70] as const, // \"ftyp\" at offset 4 for mp4/m4a\n WEBM_EBML: [0x1a, 0x45, 0xdf, 0xa3] as const, // EBML header\n} as const;\n\nconst MIN_DETECTION_BUFFER_SIZE = 12;\n\nexport type AudioMimeType =\n | \"audio/wav\"\n | \"audio/mpeg\"\n | \"audio/ogg\"\n | \"audio/flac\"\n | \"audio/mp4\"\n | \"audio/webm\"\n | \"application/octet-stream\";\n\nfunction matchBytes(buffer: Buffer, offset: number, expected: readonly number[]): boolean {\n for (let i = 0; i < expected.length; i++) {\n const expectedByte = expected[i];\n if (expectedByte === undefined || buffer[offset + i] !== expectedByte) {\n return false;\n }\n }\n return true;\n}\n\nexport function detectAudioMimeType(buffer: Buffer): AudioMimeType {\n if (buffer.length < MIN_DETECTION_BUFFER_SIZE) {\n return \"application/octet-stream\";\n }\n\n // WAV: \"RIFF\" + size + \"WAVE\"\n if (\n matchBytes(buffer, 0, MAGIC_BYTES.WAV.HEADER) &&\n matchBytes(buffer, 8, MAGIC_BYTES.WAV.IDENTIFIER)\n ) {\n return \"audio/wav\";\n }\n\n // MP3: ID3 tag or MPEG frame sync\n const firstByte = buffer[0];\n const secondByte = buffer[1];\n if (\n matchBytes(buffer, 0, MAGIC_BYTES.MP3_ID3) ||\n (firstByte === 0xff && secondByte !== undefined && (secondByte & 0xe0) === 0xe0)\n ) {\n return \"audio/mpeg\";\n }\n\n // OGG: \"OggS\"\n if (matchBytes(buffer, 0, MAGIC_BYTES.OGG)) {\n return \"audio/ogg\";\n }\n\n // FLAC: \"fLaC\"\n if (matchBytes(buffer, 0, MAGIC_BYTES.FLAC)) {\n return \"audio/flac\";\n }\n\n // M4A/MP4: \"ftyp\" at offset 4\n if (matchBytes(buffer, 4, MAGIC_BYTES.FTYP)) {\n return \"audio/mp4\";\n }\n\n // WebM: EBML header\n if (matchBytes(buffer, 0, MAGIC_BYTES.WEBM_EBML)) {\n return \"audio/webm\";\n }\n\n logger.warn(\"Could not detect audio format from buffer, using generic binary type\");\n return \"application/octet-stream\";\n}\n\nexport function getExtensionForMimeType(mimeType: AudioMimeType): string {\n switch (mimeType) {\n case \"audio/wav\":\n return \"wav\";\n case \"audio/mpeg\":\n return \"mp3\";\n case \"audio/ogg\":\n return \"ogg\";\n case \"audio/flac\":\n return \"flac\";\n case \"audio/mp4\":\n return \"m4a\";\n case \"audio/webm\":\n return \"webm\";\n case \"application/octet-stream\":\n return \"bin\";\n }\n}\n\nexport function getFilenameForMimeType(mimeType: AudioMimeType): string {\n const ext = getExtensionForMimeType(mimeType);\n return `recording.${ext}`;\n}\n\nexport function validateAudioFormat(buffer: Buffer): AudioMimeType {\n const mimeType = detectAudioMimeType(buffer);\n if (mimeType === \"application/octet-stream\") {\n throw new Error(\n \"Unable to detect audio format. Supported formats: WAV, MP3, OGG, FLAC, M4A, WebM\"\n );\n }\n return mimeType;\n}\n",
10
- "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\nimport type { OpenAIEmbeddingResponse } from \"../types\";\nimport {\n getAuthHeader,\n getEmbeddingBaseURL,\n getEmbeddingDimensions,\n getEmbeddingModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ntype VectorDimension = (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\nfunction validateDimension(dimension: number): VectorDimension {\n const validDimensions = Object.values(VECTOR_DIMS) as number[];\n if (!validDimensions.includes(dimension)) {\n throw new Error(\n `Invalid embedding dimension: ${dimension}. Must be one of: ${validDimensions.join(\", \")}`\n );\n }\n return dimension as VectorDimension;\n}\n\nfunction extractText(params: TextEmbeddingParams | string | null): string | null {\n if (params === null) {\n return null;\n }\n if (typeof params === \"string\") {\n return params;\n }\n if (typeof params === \"object\" && typeof params.text === \"string\") {\n return params.text;\n }\n throw new Error(\"Invalid embedding params: expected string, { text: string }, or null\");\n}\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModel = getEmbeddingModel(runtime);\n const embeddingDimension = validateDimension(getEmbeddingDimensions(runtime));\n\n const text = extractText(params);\n if (text === null) {\n logger.debug(\"[OpenAI] Creating test embedding for initialization\");\n const testVector = new Array(embeddingDimension).fill(0);\n testVector[0] = 0.1;\n return testVector;\n }\n\n const trimmedText = text.trim();\n if (trimmedText.length === 0) {\n throw new Error(\"Cannot generate embedding for empty text\");\n }\n\n const baseURL = getEmbeddingBaseURL(runtime);\n const url = `${baseURL}/embeddings`;\n\n logger.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime, true),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n model: embeddingModel,\n input: trimmedText,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI embedding API error: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIEmbeddingResponse;\n\n const firstResult = data?.data?.[0];\n if (!firstResult || !firstResult.embedding) {\n throw new Error(\"OpenAI API returned invalid embedding response structure\");\n }\n\n const embedding = firstResult.embedding;\n\n if (embedding.length !== embeddingDimension) {\n throw new Error(\n `Embedding dimension mismatch: got ${embedding.length}, expected ${embeddingDimension}. ` +\n `Check OPENAI_EMBEDDING_DIMENSIONS setting.`\n );\n }\n\n if (data.usage) {\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, trimmedText, {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: 0,\n totalTokens: data.usage.total_tokens,\n });\n }\n\n logger.debug(`[OpenAI] Generated embedding with ${embedding.length} dimensions`);\n return embedding;\n}\n",
10
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\n\n// Safe default that matches @elizaos/core's MAX_EMBEDDING_TOKENS (8 000).\n// Defined locally so the plugin doesn't break against core versions older\n// than 2.0.0-alpha.4 where the symbol wasn't exported yet.\nconst MAX_EMBEDDING_TOKENS = 8_000;\nimport type { OpenAIEmbeddingResponse } from \"../types\";\nimport {\n getAuthHeader,\n getEmbeddingBaseURL,\n getEmbeddingDimensions,\n getEmbeddingModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ntype VectorDimension = (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\nfunction validateDimension(dimension: number): VectorDimension {\n const validDimensions = Object.values(VECTOR_DIMS) as number[];\n if (!validDimensions.includes(dimension)) {\n throw new Error(\n `Invalid embedding dimension: ${dimension}. Must be one of: ${validDimensions.join(\", \")}`\n );\n }\n return dimension as VectorDimension;\n}\n\nfunction extractText(params: TextEmbeddingParams | string | null): string | null {\n if (params === null) {\n return null;\n }\n if (typeof params === \"string\") {\n return params;\n }\n if (typeof params === \"object\" && typeof params.text === \"string\") {\n return params.text;\n }\n throw new Error(\"Invalid embedding params: expected string, { text: string }, or null\");\n}\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModel = getEmbeddingModel(runtime);\n const embeddingDimension = validateDimension(getEmbeddingDimensions(runtime));\n\n const text = extractText(params);\n if (text === null) {\n logger.debug(\"[OpenAI] Creating test embedding for initialization\");\n const testVector = new Array(embeddingDimension).fill(0);\n testVector[0] = 0.1;\n return testVector;\n }\n\n let trimmedText = text.trim();\n if (trimmedText.length === 0) {\n throw new Error(\"Cannot generate embedding for empty text\");\n }\n\n // Truncate to stay within embedding model token limits.\n // OpenAI embedding models support up to 8191 tokens per input;\n // MAX_EMBEDDING_TOKENS (8 000) provides a safe buffer.\n const maxChars = MAX_EMBEDDING_TOKENS * 4; // ~4 chars per token\n if (trimmedText.length > maxChars) {\n logger.warn(\n `[OpenAI] Embedding input too long (~${Math.ceil(trimmedText.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`\n );\n trimmedText = trimmedText.slice(0, maxChars);\n }\n\n const baseURL = getEmbeddingBaseURL(runtime);\n const url = `${baseURL}/embeddings`;\n\n logger.debug(`[OpenAI] Generating embedding with model: ${embeddingModel}`);\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime, true),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n model: embeddingModel,\n input: trimmedText,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI embedding API error: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIEmbeddingResponse;\n\n const firstResult = data?.data?.[0];\n if (!firstResult || !firstResult.embedding) {\n throw new Error(\"OpenAI API returned invalid embedding response structure\");\n }\n\n const embedding = firstResult.embedding;\n\n if (embedding.length !== embeddingDimension) {\n throw new Error(\n `Embedding dimension mismatch: got ${embedding.length}, expected ${embeddingDimension}. ` +\n `Check OPENAI_EMBEDDING_DIMENSIONS setting.`\n );\n }\n\n if (data.usage) {\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, trimmedText, {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: 0,\n totalTokens: data.usage.total_tokens,\n });\n }\n\n logger.debug(`[OpenAI] Generated embedding with ${embedding.length} dimensions`);\n return embedding;\n}\n",
11
11
  "import type { IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { EventType } from \"@elizaos/core\";\nimport type { TokenUsage } from \"../types\";\n\nconst MAX_PROMPT_LENGTH = 200;\n\ninterface ModelUsageEventPayload {\n runtime: IAgentRuntime;\n source: \"openai\";\n provider: \"openai\";\n type: ModelTypeName;\n prompt: string;\n tokens: {\n prompt: number;\n completion: number;\n total: number;\n };\n}\n\ninterface AISDKUsage {\n inputTokens?: number;\n outputTokens?: number;\n}\n\ninterface OpenAIAPIUsage {\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n}\n\ntype ModelUsage = TokenUsage | AISDKUsage | OpenAIAPIUsage;\n\nfunction truncatePrompt(prompt: string): string {\n if (prompt.length <= MAX_PROMPT_LENGTH) {\n return prompt;\n }\n return `${prompt.slice(0, MAX_PROMPT_LENGTH)}…`;\n}\n\nfunction normalizeUsage(usage: ModelUsage): TokenUsage {\n if (\"promptTokens\" in usage) {\n return {\n promptTokens: usage.promptTokens ?? 0,\n completionTokens: usage.completionTokens ?? 0,\n totalTokens: usage.totalTokens ?? (usage.promptTokens ?? 0) + (usage.completionTokens ?? 0),\n };\n }\n if (\"inputTokens\" in usage || \"outputTokens\" in usage) {\n const input = (usage as AISDKUsage).inputTokens ?? 0;\n const output = (usage as AISDKUsage).outputTokens ?? 0;\n return {\n promptTokens: input,\n completionTokens: output,\n totalTokens: input + output,\n };\n }\n return {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n };\n}\n\nexport function emitModelUsageEvent(\n runtime: IAgentRuntime,\n type: ModelTypeName,\n prompt: string,\n usage: ModelUsage\n): void {\n const normalized = normalizeUsage(usage);\n\n const payload: ModelUsageEventPayload = {\n runtime,\n source: \"openai\",\n provider: \"openai\",\n type,\n prompt: truncatePrompt(prompt),\n tokens: {\n prompt: normalized.promptTokens,\n completion: normalized.completionTokens,\n total: normalized.totalTokens,\n },\n };\n\n runtime.emitEvent(EventType.MODEL_USED, payload);\n}\n",
12
12
  "import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport type {\n ImageDescriptionResult,\n ImageGenerationResult,\n ImageQuality,\n ImageSize,\n ImageStyle,\n OpenAIChatCompletionResponse,\n OpenAIImageGenerationResponse,\n} from \"../types\";\nimport {\n getAuthHeader,\n getBaseURL,\n getImageDescriptionMaxTokens,\n getImageDescriptionModel,\n getImageModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\ninterface ExtendedImageGenerationParams extends ImageGenerationParams {\n quality?: ImageQuality;\n style?: ImageStyle;\n}\n\nconst DEFAULT_IMAGE_DESCRIPTION_PROMPT =\n \"Please analyze this image and provide a title and detailed description.\";\n\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n): Promise<ImageGenerationResult[]> {\n const modelName = getImageModel(runtime);\n const count = params.count ?? 1;\n const size: ImageSize = (params.size as ImageSize) ?? \"1024x1024\";\n const extendedParams = params as ExtendedImageGenerationParams;\n\n logger.debug(`[OpenAI] Using IMAGE model: ${modelName}`);\n\n if (!params.prompt || params.prompt.trim().length === 0) {\n throw new Error(\"IMAGE generation requires a non-empty prompt\");\n }\n\n if (count < 1 || count > 10) {\n throw new Error(\"IMAGE count must be between 1 and 10\");\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody: Record<string, string | number> = {\n model: modelName,\n prompt: params.prompt,\n n: count,\n size,\n };\n\n if (extendedParams.quality) {\n requestBody.quality = extendedParams.quality;\n }\n if (extendedParams.style) {\n requestBody.style = extendedParams.style;\n }\n\n const response = await fetch(`${baseURL}/images/generations`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI image generation failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIImageGenerationResponse;\n\n if (!data.data || data.data.length === 0) {\n throw new Error(\"OpenAI API returned no images\");\n }\n\n return data.data.map((item) => ({\n url: item.url,\n revisedPrompt: item.revised_prompt,\n }));\n}\n\nfunction parseTitleFromResponse(content: string): string {\n const titleMatch = content.match(/title[:\\s]+(.+?)(?:\\n|$)/i);\n return titleMatch?.[1]?.trim() ?? \"Image Analysis\";\n}\n\nfunction parseDescriptionFromResponse(content: string): string {\n return content.replace(/title[:\\s]+(.+?)(?:\\n|$)/i, \"\").trim();\n}\n\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n): Promise<ImageDescriptionResult> {\n const modelName = getImageDescriptionModel(runtime);\n const maxTokens = getImageDescriptionMaxTokens(runtime);\n\n logger.debug(`[OpenAI] Using IMAGE_DESCRIPTION model: ${modelName}`);\n\n let imageUrl: string;\n let promptText: string;\n\n if (typeof params === \"string\") {\n imageUrl = params;\n promptText = DEFAULT_IMAGE_DESCRIPTION_PROMPT;\n } else {\n imageUrl = params.imageUrl;\n promptText = params.prompt ?? DEFAULT_IMAGE_DESCRIPTION_PROMPT;\n }\n\n if (!imageUrl || imageUrl.trim().length === 0) {\n throw new Error(\"IMAGE_DESCRIPTION requires a valid image URL\");\n }\n\n const baseURL = getBaseURL(runtime);\n\n const requestBody = {\n model: modelName,\n messages: [\n {\n role: \"user\",\n content: [\n { type: \"text\", text: promptText },\n { type: \"image_url\", image_url: { url: imageUrl } },\n ],\n },\n ],\n max_tokens: maxTokens,\n };\n\n const response = await fetch(`${baseURL}/chat/completions`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => \"Unknown error\");\n throw new Error(\n `OpenAI image description failed: ${response.status} ${response.statusText} - ${errorText}`\n );\n }\n\n const data = (await response.json()) as OpenAIChatCompletionResponse;\n\n if (data.usage) {\n emitModelUsageEvent(\n runtime,\n ModelType.IMAGE_DESCRIPTION,\n typeof params === \"string\" ? params : (params.prompt ?? \"\"),\n {\n promptTokens: data.usage.prompt_tokens,\n completionTokens: data.usage.completion_tokens,\n totalTokens: data.usage.total_tokens,\n }\n );\n }\n\n const firstChoice = data.choices?.[0];\n const content = firstChoice?.message?.content;\n\n if (!content) {\n throw new Error(\"OpenAI API returned empty image description\");\n }\n\n return {\n title: parseTitleFromResponse(content),\n description: parseDescriptionFromResponse(content),\n };\n}\n",
13
13
  "import type {\n IAgentRuntime,\n JsonValue,\n ModelTypeName,\n ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateObject, type LanguageModel } from \"ai\";\nimport { createOpenAIClient } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { getJsonRepairFunction } from \"../utils/json\";\n\ntype ModelNameGetter = (runtime: IAgentRuntime) => string;\ntype ChatModelFactory = { chat: (modelName: string) => LanguageModel };\n\nasync function generateObjectByModelType(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams,\n modelType: ModelTypeName,\n getModelFn: ModelNameGetter\n): Promise<Record<string, JsonValue>> {\n const openai = createOpenAIClient(runtime) as ChatModelFactory;\n const modelName = getModelFn(runtime);\n\n logger.debug(`[OpenAI] Using ${modelType} model: ${modelName}`);\n\n if (!params.prompt || params.prompt.trim().length === 0) {\n throw new Error(\"Object generation requires a non-empty prompt\");\n }\n\n if (params.schema) {\n logger.debug(\n \"[OpenAI] Schema provided but using no-schema mode. \" +\n \"Structure is determined by prompt instructions.\"\n );\n }\n\n const model = openai.chat(modelName);\n const { object, usage } = await generateObject({\n model,\n output: \"no-schema\",\n prompt: params.prompt,\n experimental_repairText: getJsonRepairFunction(),\n });\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n\n if (typeof object !== \"object\" || object === null) {\n throw new Error(`Object generation returned ${typeof object}, expected object`);\n }\n\n return object as Record<string, JsonValue>;\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectByModelType(runtime, params, ModelType.OBJECT_SMALL, getSmallModel);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectByModelType(runtime, params, ModelType.OBJECT_LARGE, getLargeModel);\n}\n",
@@ -18,7 +18,7 @@
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
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
20
  ],
21
- "mappings": ";AAgBA,mBAAS,uBAAQ;;;ACfjB,mBAAS;;;ACAT;AAEA,SAAS,WAAW,CAAC,KAAiC;AAAA,EACpD,IAAI,OAAO,YAAY,eAAe,CAAC,QAAQ,KAAK;AAAA,IAClD;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,QAAQ,IAAI;AAAA,EAC1B,OAAO,UAAU,YAAY,YAAY,OAAO,KAAK;AAAA;AAGhD,SAAS,UAAU,CACxB,SACA,KACA,cACoB;AAAA,EACpB,MAAM,QAAQ,QAAQ,WAAW,GAAG;AAAA,EACpC,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,IACzC,OAAO,OAAO,KAAK;AAAA,EACrB;AAAA,EACA,OAAO,YAAY,GAAG,KAAK;AAAA;AActB,SAAS,iBAAiB,CAC/B,SACA,KACA,cACQ;AAAA,EACR,MAAM,QAAQ,WAAW,SAAS,GAAG;AAAA,EACrC,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,OAAO,SAAS,OAAO,EAAE;AAAA,EACxC,IAAI,CAAC,OAAO,SAAS,MAAM,GAAG;AAAA,IAC5B,MAAM,IAAI,MAAM,YAAY,sCAAsC,OAAO;AAAA,EAC3E;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,iBAAiB,CAC/B,SACA,KACA,cACS;AAAA,EACT,MAAM,QAAQ,WAAW,SAAS,GAAG;AAAA,EACrC,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,aAAa,MAAM,YAAY;AAAA,EACrC,OAAO,eAAe,UAAU,eAAe,OAAO,eAAe;AAAA;AAGhE,SAAS,SAAS,GAAY;AAAA,EACnC,OACE,OAAO,eAAe,eACtB,OAAQ,WAAuC,aAAa;AAAA;AAIzD,SAAS,WAAW,CAAC,SAAiC;AAAA,EAC3D,OAAO,UAAU,KAAK,CAAC,CAAC,WAAW,SAAS,yBAAyB;AAAA;AAGhE,SAAS,SAAS,CAAC,SAA4C;AAAA,EACpE,OAAO,WAAW,SAAS,gBAAgB;AAAA;AAGtC,SAAS,kBAAkB,CAAC,SAA4C;AAAA,EAC7E,MAAM,kBAAkB,WAAW,SAAS,0BAA0B;AAAA,EACtE,IAAI,iBAAiB;AAAA,IACnB,OAAO,MAAM,2CAA2C;AAAA,IACxD,OAAO;AAAA,EACT;AAAA,EACA,OAAO,MAAM,yDAAyD;AAAA,EACtE,OAAO,UAAU,OAAO;AAAA;AAGnB,SAAS,aAAa,CAC3B,SACA,eAAe,OACS;AAAA,EAIxB,IAAI,UAAU,KAAK,CAAC,kBAAkB,SAAS,gCAAgC,KAAK,GAAG;AAAA,IACrF,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,MAAM,eAAe,mBAAmB,OAAO,IAAI,UAAU,OAAO;AAAA,EAC1E,OAAO,MAAM,EAAE,eAAe,UAAU,MAAM,IAAI,CAAC;AAAA;AAG9C,SAAS,UAAU,CAAC,SAAgC;AAAA,EACzD,MAAM,aAAa,WAAW,SAAS,yBAAyB;AAAA,EAChE,MAAM,UACJ,UAAU,KAAK,aACX,aACC,WAAW,SAAS,iBAAiB,KAAK;AAAA,EACjD,OAAO,MAAM,sBAAsB,SAAS;AAAA,EAC5C,OAAO;AAAA;AAGF,SAAS,mBAAmB,CAAC,SAAgC;AAAA,EAClE,MAAM,eAAe,UAAU,IAC1B,WAAW,SAAS,8BAA8B,KACnD,WAAW,SAAS,yBAAyB,IAC7C,WAAW,SAAS,sBAAsB;AAAA,EAE9C,IAAI,cAAc;AAAA,IAChB,OAAO,MAAM,sCAAsC,cAAc;AAAA,IACjE,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,MAAM,0DAA0D;AAAA,EACvE,OAAO,WAAW,OAAO;AAAA;AAGpB,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OACE,WAAW,SAAS,oBAAoB,KAAK,WAAW,SAAS,aAAa,KAAK;AAAA;AAIhF,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OAAO,WAAW,SAAS,oBAAoB,KAAK,WAAW,SAAS,aAAa,KAAK;AAAA;AAGrF,SAAS,iBAAiB,CAAC,SAAgC;AAAA,EAChE,OAAO,WAAW,SAAS,wBAAwB,KAAK;AAAA;AAGnD,SAAS,wBAAwB,CAAC,SAAgC;AAAA,EACvE,OAAO,WAAW,SAAS,gCAAgC,KAAK;AAAA;AAG3D,SAAS,qBAAqB,CAAC,SAAgC;AAAA,EACpE,OAAO,WAAW,SAAS,4BAA4B,KAAK;AAAA;AAGvD,SAAS,WAAW,CAAC,SAAgC;AAAA,EAC1D,OAAO,WAAW,SAAS,kBAAkB,KAAK;AAAA;AAG7C,SAAS,WAAW,CAAC,SAAgC;AAAA,EAC1D,OAAO,WAAW,SAAS,kBAAkB,KAAK;AAAA;AAG7C,SAAS,kBAAkB,CAAC,SAAgC;AAAA,EACjE,OAAO,WAAW,SAAS,yBAAyB,KAAK;AAAA;AAGpD,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OAAO,WAAW,SAAS,oBAAoB,KAAK;AAAA;AAG/C,SAAS,wBAAwB,CAAC,SAAiC;AAAA,EACxE,OAAO,kBAAkB,SAAS,iCAAiC,KAAK;AAAA;AAGnE,SAAS,sBAAsB,CAAC,SAAgC;AAAA,EACrE,OAAO,kBAAkB,SAAS,+BAA+B,IAAI;AAAA;AAGhE,SAAS,4BAA4B,CAAC,SAAgC;AAAA,EAC3E,OAAO,kBAAkB,SAAS,uCAAuC,IAAI;AAAA;AAGxE,SAAS,gBAAgB,CAAC,SAAgC;AAAA,EAC/D,OAAO,WAAW,SAAS,uBAAuB,KAAK;AAAA;AAGlD,SAAS,kBAAkB,CAAC,SAAgC;AAAA,EACjE,OAAO,kBAAkB,SAAS,2BAA2B,OAAO;AAAA;;;ADjLrE,WAAuC,wBAAwB;AAEzD,SAAS,gBAAgB,CAC9B,SACA,SACM;AAAA,EACD,4BAA4B,OAAO;AAAA;AAG1C,eAAe,2BAA2B,CAAC,SAAuC;AAAA,EAChF,IAAI,UAAU,GAAG;AAAA,IACf,QAAO,MAAM,yDAAyD;AAAA,IACtE;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,UAAU,OAAO;AAAA,EAEhC,IAAI,CAAC,QAAQ;AAAA,IACX,QAAO,KACL,gDACE,mEACJ;AAAA,IACA;AAAA,EACF;AAAA,EAEA,IAAI;AAAA,IACF,MAAM,UAAU,WAAW,OAAO;AAAA,IAClC,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB;AAAA,MAChD,SAAS,cAAc,OAAO;AAAA,IAChC,CAAC;AAAA,IAED,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,QAAO,KACL,uCAAuC,SAAS,UAAU,SAAS,iBACjE,+CACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO,OAAO;AAAA,IACd,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,QAAO,KAAK,kCAAkC,+CAA+C;AAAA;AAAA;;;AExCjG,mBAAS;;;ACLT,mBAAS;AAET,IAAM,cAAc;AAAA,EAClB,KAAK;AAAA,IACH,QAAQ,CAAC,IAAM,IAAM,IAAM,EAAI;AAAA,IAC/B,YAAY,CAAC,IAAM,IAAM,IAAM,EAAI;AAAA,EACrC;AAAA,EACA,SAAS,CAAC,IAAM,IAAM,EAAI;AAAA,EAC1B,KAAK,CAAC,IAAM,KAAM,KAAM,EAAI;AAAA,EAC5B,MAAM,CAAC,KAAM,IAAM,IAAM,EAAI;AAAA,EAC7B,MAAM,CAAC,KAAM,KAAM,KAAM,GAAI;AAAA,EAC7B,WAAW,CAAC,IAAM,IAAM,KAAM,GAAI;AACpC;AAEA,IAAM,4BAA4B;AAWlC,SAAS,UAAU,CAAC,QAAgB,QAAgB,UAAsC;AAAA,EACxF,SAAS,IAAI,EAAG,IAAI,SAAS,QAAQ,KAAK;AAAA,IACxC,MAAM,eAAe,SAAS;AAAA,IAC9B,IAAI,iBAAiB,aAAa,OAAO,SAAS,OAAO,cAAc;AAAA,MACrE,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,mBAAmB,CAAC,QAA+B;AAAA,EACjE,IAAI,OAAO,SAAS,2BAA2B;AAAA,IAC7C,OAAO;AAAA,EACT;AAAA,EAGA,IACE,WAAW,QAAQ,GAAG,YAAY,IAAI,MAAM,KAC5C,WAAW,QAAQ,GAAG,YAAY,IAAI,UAAU,GAChD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,YAAY,OAAO;AAAA,EACzB,MAAM,aAAa,OAAO;AAAA,EAC1B,IACE,WAAW,QAAQ,GAAG,YAAY,OAAO,KACxC,cAAc,OAAQ,eAAe,cAAc,aAAa,SAAU,KAC3E;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAGA,IAAI,WAAW,QAAQ,GAAG,YAAY,GAAG,GAAG;AAAA,IAC1C,OAAO;AAAA,EACT;AAAA,EAGA,IAAI,WAAW,QAAQ,GAAG,YAAY,IAAI,GAAG;AAAA,IAC3C,OAAO;AAAA,EACT;AAAA,EAGA,IAAI,WAAW,QAAQ,GAAG,YAAY,IAAI,GAAG;AAAA,IAC3C,OAAO;AAAA,EACT;AAAA,EAGA,IAAI,WAAW,QAAQ,GAAG,YAAY,SAAS,GAAG;AAAA,IAChD,OAAO;AAAA,EACT;AAAA,EAEA,QAAO,KAAK,sEAAsE;AAAA,EAClF,OAAO;AAAA;AAGF,SAAS,uBAAuB,CAAC,UAAiC;AAAA,EACvE,QAAQ;AAAA,SACD;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA;AAAA;AAIN,SAAS,sBAAsB,CAAC,UAAiC;AAAA,EACtE,MAAM,MAAM,wBAAwB,QAAQ;AAAA,EAC5C,OAAO,aAAa;AAAA;;;AD5EtB,SAAS,YAAY,CAAC,OAAsC;AAAA,EAC1D,OAAO,iBAAiB,QAAQ,iBAAiB;AAAA;AAGnD,SAAS,QAAQ,CAAC,OAAiC;AAAA,EACjD,OAAO,OAAO,SAAS,KAAK;AAAA;AAG9B,SAAS,0BAA0B,CAAC,OAAmD;AAAA,EACrF,OACE,OAAO,UAAU,YACjB,UAAU,QACV,WAAW,UACV,aAAc,MAAmC,KAAK,KACrD,SAAU,MAAmC,KAAK;AAAA;AAIxD,SAAS,yBAAyB,CAAC,OAAkD;AAAA,EACnF,OACE,OAAO,UAAU,YACjB,UAAU,QACV,cAAc,SACd,OAAQ,MAAkC,aAAa;AAAA;AAI3D,eAAe,iBAAiB,CAAC,KAA4B;AAAA,EAC3D,MAAM,WAAW,MAAM,MAAM,GAAG;AAAA,EAChC,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,IAAI,MAAM,mCAAmC,SAAS,QAAQ;AAAA,EACtE;AAAA,EACA,OAAO,SAAS,KAAK;AAAA;AAEvB,eAAsB,mBAAmB,CACvC,SACA,OACiB;AAAA,EACjB,IAAI,YAAY,sBAAsB,OAAO;AAAA,EAC7C,IAAI;AAAA,EACJ,IAAI,cAAiD,CAAC;AAAA,EAEtD,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,QAAO,MAAM,qCAAqC,OAAO;AAAA,IACzD,OAAO,MAAM,kBAAkB,KAAK;AAAA,EACtC,EAAO,SAAI,aAAa,KAAK,GAAG;AAAA,IAC9B,OAAO;AAAA,EACT,EAAO,SAAI,SAAS,KAAK,GAAG;AAAA,IAC1B,MAAM,YAAW,oBAAoB,KAAK;AAAA,IAC1C,QAAO,MAAM,2CAA2C,WAAU;AAAA,IAClE,OAAO,IAAI,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,GAAG,EAAE,MAAM,UAAS,CAAC;AAAA,EAC7D,EAAO,SAAI,2BAA2B,KAAK,GAAG;AAAA,IAC5C,cAAc;AAAA,IACd,IAAI,MAAM,OAAO;AAAA,MACf,YAAY,MAAM;AAAA,IACpB;AAAA,IACA,IAAI,SAAS,MAAM,KAAK,GAAG;AAAA,MACzB,MAAM,YAAW,MAAM,YAAY,oBAAoB,MAAM,KAAK;AAAA,MAClE,QAAO,MAAM,6BAA6B,WAAU;AAAA,MACpD,OAAO,IAAI,KAAK,CAAC,IAAI,WAAW,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,UAAS,CAAC;AAAA,IACnE,EAAO;AAAA,MACL,OAAO,MAAM;AAAA;AAAA,EAEjB,EAAO,SAAI,0BAA0B,KAAK,GAAG;AAAA,IAC3C,QAAO,MAAM,qCAAqC,MAAM,UAAU;AAAA,IAClE,OAAO,MAAM,kBAAkB,MAAM,QAAQ;AAAA,IAC7C,cAAc,EAAE,QAAQ,MAAM,OAAO;AAAA,EACvC,EAAO;AAAA,IACL,MAAM,IAAI,MACR,qFACF;AAAA;AAAA,EAGF,QAAO,MAAM,uCAAuC,WAAW;AAAA,EAE/D,MAAM,WAAY,KAAc,QAAQ;AAAA,EACxC,MAAM,WACH,KAAc,QACf,uBACE,SAAS,WAAW,QAAQ,IACvB,WACD,YACN;AAAA,EAEF,MAAM,WAAW,IAAI;AAAA,EACrB,SAAS,OAAO,QAAQ,MAAM,QAAQ;AAAA,EACtC,SAAS,OAAO,SAAS,SAAS;AAAA,EAElC,IAAI,YAAY,UAAU;AAAA,IACxB,SAAS,OAAO,YAAY,YAAY,QAAQ;AAAA,EAClD;AAAA,EACA,IAAI,YAAY,gBAAgB;AAAA,IAC9B,SAAS,OAAO,mBAAmB,YAAY,cAAc;AAAA,EAC/D;AAAA,EACA,IAAI,YAAY,QAAQ;AAAA,IACtB,SAAS,OAAO,UAAU,YAAY,MAAM;AAAA,EAC9C;AAAA,EACA,IAAI,YAAY,gBAAgB,WAAW;AAAA,IACzC,SAAS,OAAO,eAAe,OAAO,YAAY,WAAW,CAAC;AAAA,EAChE;AAAA,EACA,IAAI,YAAY,wBAAwB;AAAA,IACtC,WAAW,eAAe,YAAY,wBAAwB;AAAA,MAC5D,SAAS,OAAO,6BAA6B,WAAW;AAAA,IAC1D;AAAA,EACF;AAAA,EAEA,MAAM,UAAU,WAAW,OAAO;AAAA,EAClC,MAAM,WAAW,MAAM,MAAM,GAAG,gCAAgC;AAAA,IAC9D,QAAQ;AAAA,IACR,SAAS,cAAc,OAAO;AAAA,IAC9B,MAAM;AAAA,EACR,CAAC;AAAA,EAED,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,YAAY,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,eAAe;AAAA,IACnE,MAAM,IAAI,MACR,gCAAgC,SAAS,UAAU,SAAS,gBAAgB,WAC9E;AAAA,EACF;AAAA,EAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,EAClC,OAAO,KAAK;AAAA;AAGd,eAAsB,kBAAkB,CACtC,SACA,OACsB;AAAA,EACtB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,SAA0B;AAAA,EAC9B,IAAI;AAAA,EACJ,IAAI;AAAA,EAEJ,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,OAAO;AAAA,IACP,QAAQ;AAAA,EACV,EAAO;AAAA,IACL,OAAO,MAAM;AAAA,IACb,QAAQ,MAAM;AAAA,IACd,IAAI,YAAY,SAAS,MAAM,QAAQ;AAAA,MACrC,SAAS,MAAM;AAAA,IACjB;AAAA,IACA,IAAI,WAAW,SAAS,MAAM,OAAO;AAAA,MACnC,QAAQ,MAAM;AAAA,IAChB;AAAA,IACA,IAAI,kBAAkB,SAAS,MAAM,cAAc;AAAA,MACjD,eAAe,MAAM;AAAA,IACvB;AAAA;AAAA,EAGF,QAAQ,SAAS,YAAY,OAAO;AAAA,EACpC,QAAQ,SAAS,YAAY,OAAO;AAAA,EACpC,eAAe,gBAAgB,mBAAmB,OAAO;AAAA,EAEzD,QAAO,MAAM,wCAAwC,OAAO;AAAA,EAE5D,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,WAAW,GAAG;AAAA,IACrC,MAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AAAA,EAEA,IAAI,KAAK,SAAS,MAAM;AAAA,IACtB,MAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAAA,EAEA,MAAM,cAA0B,CAAC,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS;AAAA,EACpF,IAAI,SAAS,CAAC,YAAY,SAAS,KAAiB,GAAG;AAAA,IACrD,MAAM,IAAI,MAAM,kBAAkB,0BAA0B,YAAY,KAAK,IAAI,GAAG;AAAA,EACtF;AAAA,EAEA,MAAM,UAAU,WAAW,OAAO;AAAA,EAElC,MAAM,cAAsC;AAAA,IAC1C;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,iBAAiB;AAAA,EACnB;AAAA,EAEA,IAAI,gBAAgB,aAAa,SAAS,GAAG;AAAA,IAC3C,YAAY,eAAe;AAAA,EAC7B;AAAA,EAEA,MAAM,WAAW,MAAM,MAAM,GAAG,wBAAwB;AAAA,IACtD,QAAQ;AAAA,IACR,SAAS;AAAA,SACJ,cAAc,OAAO;AAAA,MACxB,gBAAgB;AAAA,SACZ,WAAW,QAAQ,EAAE,QAAQ,aAAa,IAAI,CAAC;AAAA,IACrD;AAAA,IACA,MAAM,KAAK,UAAU,WAAW;AAAA,EAClC,CAAC;AAAA,EAED,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,YAAY,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,eAAe;AAAA,IACnE,MAAM,IAAI,MAAM,sBAAsB,SAAS,UAAU,SAAS,gBAAgB,WAAW;AAAA,EAC/F;AAAA,EAEA,OAAO,SAAS,YAAY;AAAA;;AEhO9B,mBAAS;;;ACAT;AAGA,IAAM,oBAAoB;AA4B1B,SAAS,cAAc,CAAC,QAAwB;AAAA,EAC9C,IAAI,OAAO,UAAU,mBAAmB;AAAA,IACtC,OAAO;AAAA,EACT;AAAA,EACA,OAAO,GAAG,OAAO,MAAM,GAAG,iBAAiB;AAAA;AAG7C,SAAS,cAAc,CAAC,OAA+B;AAAA,EACrD,IAAI,kBAAkB,OAAO;AAAA,IAC3B,OAAO;AAAA,MACL,cAAc,MAAM,gBAAgB;AAAA,MACpC,kBAAkB,MAAM,oBAAoB;AAAA,MAC5C,aAAa,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,MAAM,oBAAoB;AAAA,IAC3F;AAAA,EACF;AAAA,EACA,IAAI,iBAAiB,SAAS,kBAAkB,OAAO;AAAA,IACrD,MAAM,QAAS,MAAqB,eAAe;AAAA,IACnD,MAAM,SAAU,MAAqB,gBAAgB;AAAA,IACrD,OAAO;AAAA,MACL,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,aAAa,QAAQ;AAAA,IACvB;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA;AAGK,SAAS,mBAAmB,CACjC,SACA,MACA,QACA,OACM;AAAA,EACN,MAAM,aAAa,eAAe,KAAK;AAAA,EAEvC,MAAM,UAAkC;AAAA,IACtC;AAAA,IACA,QAAQ;AAAA,IACR,UAAU;AAAA,IACV;AAAA,IACA,QAAQ,eAAe,MAAM;AAAA,IAC7B,QAAQ;AAAA,MACN,QAAQ,WAAW;AAAA,MACnB,YAAY,WAAW;AAAA,MACvB,OAAO,WAAW;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,QAAQ,UAAU,UAAU,YAAY,OAAO;AAAA;;;ADvEjD,SAAS,iBAAiB,CAAC,WAAoC;AAAA,EAC7D,MAAM,kBAAkB,OAAO,OAAO,WAAW;AAAA,EACjD,IAAI,CAAC,gBAAgB,SAAS,SAAS,GAAG;AAAA,IACxC,MAAM,IAAI,MACR,gCAAgC,8BAA8B,gBAAgB,KAAK,IAAI,GACzF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,WAAW,CAAC,QAA4D;AAAA,EAC/E,IAAI,WAAW,MAAM;AAAA,IACnB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,OAAO,WAAW,UAAU;AAAA,IAC9B,OAAO;AAAA,EACT;AAAA,EACA,IAAI,OAAO,WAAW,YAAY,OAAO,OAAO,SAAS,UAAU;AAAA,IACjE,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,MAAM,IAAI,MAAM,sEAAsE;AAAA;AAGxF,eAAsB,mBAAmB,CACvC,SACA,QACmB;AAAA,EACnB,MAAM,iBAAiB,kBAAkB,OAAO;AAAA,EAChD,MAAM,qBAAqB,kBAAkB,uBAAuB,OAAO,CAAC;AAAA,EAE5E,MAAM,OAAO,YAAY,MAAM;AAAA,EAC/B,IAAI,SAAS,MAAM;AAAA,IACjB,QAAO,MAAM,qDAAqD;AAAA,IAClE,MAAM,aAAa,IAAI,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACvD,WAAW,KAAK;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,KAAK,KAAK;AAAA,EAC9B,IAAI,YAAY,WAAW,GAAG;AAAA,IAC5B,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAAA,EAEA,MAAM,UAAU,oBAAoB,OAAO;AAAA,EAC3C,MAAM,MAAM,GAAG;AAAA,EAEf,QAAO,MAAM,6CAA6C,gBAAgB;AAAA,EAE1E,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS;AAAA,SACJ,cAAc,SAAS,IAAI;AAAA,MAC9B,gBAAgB;AAAA,IAClB;AAAA,IACA,MAAM,KAAK,UAAU;AAAA,MACnB,OAAO;AAAA,MACP,OAAO;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AAAA,EAED,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,YAAY,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,eAAe;AAAA,IACnE,MAAM,IAAI,MACR,+BAA+B,SAAS,UAAU,SAAS,gBAAgB,WAC7E;AAAA,EACF;AAAA,EAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,EAElC,MAAM,cAAc,MAAM,OAAO;AAAA,EACjC,IAAI,CAAC,eAAe,CAAC,YAAY,WAAW;AAAA,IAC1C,MAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAAA,EAEA,MAAM,YAAY,YAAY;AAAA,EAE9B,IAAI,UAAU,WAAW,oBAAoB;AAAA,IAC3C,MAAM,IAAI,MACR,qCAAqC,UAAU,oBAAoB,yBACjE,4CACJ;AAAA,EACF;AAAA,EAEA,IAAI,KAAK,OAAO;AAAA,IACd,oBAAoB,SAAS,UAAU,gBAAgB,aAAa;AAAA,MAClE,cAAc,KAAK,MAAM;AAAA,MACzB,kBAAkB;AAAA,MAClB,aAAa,KAAK,MAAM;AAAA,IAC1B,CAAC;AAAA,EACH;AAAA,EAEA,QAAO,MAAM,qCAAqC,UAAU,mBAAmB;AAAA,EAC/E,OAAO;AAAA;;AExGT,mBAAS,sBAAQ;AAwBjB,IAAM,mCACJ;AAEF,eAAsB,qBAAqB,CACzC,SACA,QACkC;AAAA,EAClC,MAAM,YAAY,cAAc,OAAO;AAAA,EACvC,MAAM,QAAQ,OAAO,SAAS;AAAA,EAC9B,MAAM,OAAmB,OAAO,QAAsB;AAAA,EACtD,MAAM,iBAAiB;AAAA,EAEvB,QAAO,MAAM,+BAA+B,WAAW;AAAA,EAEvD,IAAI,CAAC,OAAO,UAAU,OAAO,OAAO,KAAK,EAAE,WAAW,GAAG;AAAA,IACvD,MAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAAA,EAEA,IAAI,QAAQ,KAAK,QAAQ,IAAI;AAAA,IAC3B,MAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AAAA,EAEA,MAAM,UAAU,WAAW,OAAO;AAAA,EAElC,MAAM,cAA+C;AAAA,IACnD,OAAO;AAAA,IACP,QAAQ,OAAO;AAAA,IACf,GAAG;AAAA,IACH;AAAA,EACF;AAAA,EAEA,IAAI,eAAe,SAAS;AAAA,IAC1B,YAAY,UAAU,eAAe;AAAA,EACvC;AAAA,EACA,IAAI,eAAe,OAAO;AAAA,IACxB,YAAY,QAAQ,eAAe;AAAA,EACrC;AAAA,EAEA,MAAM,WAAW,MAAM,MAAM,GAAG,8BAA8B;AAAA,IAC5D,QAAQ;AAAA,IACR,SAAS;AAAA,SACJ,cAAc,OAAO;AAAA,MACxB,gBAAgB;AAAA,IAClB;AAAA,IACA,MAAM,KAAK,UAAU,WAAW;AAAA,EAClC,CAAC;AAAA,EAED,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,YAAY,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,eAAe;AAAA,IACnE,MAAM,IAAI,MACR,mCAAmC,SAAS,UAAU,SAAS,gBAAgB,WACjF;AAAA,EACF;AAAA,EAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,EAElC,IAAI,CAAC,KAAK,QAAQ,KAAK,KAAK,WAAW,GAAG;AAAA,IACxC,MAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AAAA,EAEA,OAAO,KAAK,KAAK,IAAI,CAAC,UAAU;AAAA,IAC9B,KAAK,KAAK;AAAA,IACV,eAAe,KAAK;AAAA,EACtB,EAAE;AAAA;AAGJ,SAAS,sBAAsB,CAAC,SAAyB;AAAA,EACvD,MAAM,aAAa,QAAQ,MAAM,2BAA2B;AAAA,EAC5D,OAAO,aAAa,IAAI,KAAK,KAAK;AAAA;AAGpC,SAAS,4BAA4B,CAAC,SAAyB;AAAA,EAC7D,OAAO,QAAQ,QAAQ,6BAA6B,EAAE,EAAE,KAAK;AAAA;AAG/D,eAAsB,sBAAsB,CAC1C,SACA,QACiC;AAAA,EACjC,MAAM,YAAY,yBAAyB,OAAO;AAAA,EAClD,MAAM,YAAY,6BAA6B,OAAO;AAAA,EAEtD,QAAO,MAAM,2CAA2C,WAAW;AAAA,EAEnE,IAAI;AAAA,EACJ,IAAI;AAAA,EAEJ,IAAI,OAAO,WAAW,UAAU;AAAA,IAC9B,WAAW;AAAA,IACX,aAAa;AAAA,EACf,EAAO;AAAA,IACL,WAAW,OAAO;AAAA,IAClB,aAAa,OAAO,UAAU;AAAA;AAAA,EAGhC,IAAI,CAAC,YAAY,SAAS,KAAK,EAAE,WAAW,GAAG;AAAA,IAC7C,MAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAAA,EAEA,MAAM,UAAU,WAAW,OAAO;AAAA,EAElC,MAAM,cAAc;AAAA,IAClB,OAAO;AAAA,IACP,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA,UACP,EAAE,MAAM,QAAQ,MAAM,WAAW;AAAA,UACjC,EAAE,MAAM,aAAa,WAAW,EAAE,KAAK,SAAS,EAAE;AAAA,QACpD;AAAA,MACF;AAAA,IACF;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EAEA,MAAM,WAAW,MAAM,MAAM,GAAG,4BAA4B;AAAA,IAC1D,QAAQ;AAAA,IACR,SAAS;AAAA,SACJ,cAAc,OAAO;AAAA,MACxB,gBAAgB;AAAA,IAClB;AAAA,IACA,MAAM,KAAK,UAAU,WAAW;AAAA,EAClC,CAAC;AAAA,EAED,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,YAAY,MAAM,SAAS,KAAK,EAAE,MAAM,MAAM,eAAe;AAAA,IACnE,MAAM,IAAI,MACR,oCAAoC,SAAS,UAAU,SAAS,gBAAgB,WAClF;AAAA,EACF;AAAA,EAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,EAElC,IAAI,KAAK,OAAO;AAAA,IACd,oBACE,SACA,WAAU,mBACV,OAAO,WAAW,WAAW,SAAU,OAAO,UAAU,IACxD;AAAA,MACE,cAAc,KAAK,MAAM;AAAA,MACzB,kBAAkB,KAAK,MAAM;AAAA,MAC7B,aAAa,KAAK,MAAM;AAAA,IAC1B,CACF;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,KAAK,UAAU;AAAA,EACnC,MAAM,UAAU,aAAa,SAAS;AAAA,EAEtC,IAAI,CAAC,SAAS;AAAA,IACZ,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAAA,EAEA,OAAO;AAAA,IACL,OAAO,uBAAuB,OAAO;AAAA,IACrC,aAAa,6BAA6B,OAAO;AAAA,EACnD;AAAA;;AC/KF,mBAAS,sBAAQ;AACjB;;;ACPA;AAIA,IAAM,gBAAgB;AAEf,SAAS,kBAAkB,CAAC,SAAwC;AAAA,EACzE,MAAM,UAAU,WAAW,OAAO;AAAA,EAClC,MAAM,SAAS,UAAU,OAAO;AAAA,EAEhC,IAAI,CAAC,UAAU,YAAY,OAAO,GAAG;AAAA,IACnC,OAAO,aAAa;AAAA,MAClB,QAAQ;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,MACR,uFACF;AAAA,EACF;AAAA,EAEA,OAAO,aAAa;AAAA,IAClB;AAAA,IACA;AAAA,EACF,CAAC;AAAA;;AC1BH,mBAAS;AACT;AASA,IAAM,wBAAwB;AAAA,EAC5B,eAAe;AAAA,EACf,YAAY;AACd;AAEO,SAAS,qBAAqB,GAAuB;AAAA,EAC1D,OAAO,SAAS,MAAM,YAAsD;AAAA,IAC1E,IAAI,EAAE,iBAAiB,iBAAiB;AAAA,MACtC,OAAO;AAAA,IACT;AAAA,IACA,IAAI;AAAA,MACF,MAAM,cAAc,KAAK,QAAQ,sBAAsB,eAAe,EAAE;AAAA,MACxE,KAAK,MAAM,WAAW;AAAA,MACtB,QAAO,MAAM,wEAAwE;AAAA,MACrF,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAO,KAAK,0CAA0C;AAAA,MACtD,OAAO;AAAA;AAAA;AAAA;;;AFXb,eAAe,yBAAyB,CACtC,SACA,QACA,WACA,YACoC;AAAA,EACpC,MAAM,SAAS,mBAAmB,OAAO;AAAA,EACzC,MAAM,YAAY,WAAW,OAAO;AAAA,EAEpC,QAAO,MAAM,kBAAkB,oBAAoB,WAAW;AAAA,EAE9D,IAAI,CAAC,OAAO,UAAU,OAAO,OAAO,KAAK,EAAE,WAAW,GAAG;AAAA,IACvD,MAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAAA,EAEA,IAAI,OAAO,QAAQ;AAAA,IACjB,QAAO,MACL,wDACE,iDACJ;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,OAAO,KAAK,SAAS;AAAA,EACnC,QAAQ,QAAQ,UAAU,MAAM,eAAe;AAAA,IAC7C;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ,OAAO;AAAA,IACf,yBAAyB,sBAAsB;AAAA,EACjD,CAAC;AAAA,EAED,IAAI,OAAO;AAAA,IACT,oBAAoB,SAAS,WAAW,OAAO,QAAQ,KAAK;AAAA,EAC9D;AAAA,EAEA,IAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AAAA,IACjD,MAAM,IAAI,MAAM,8BAA8B,OAAO,yBAAyB;AAAA,EAChF;AAAA,EAEA,OAAO;AAAA;AAGT,eAAsB,iBAAiB,CACrC,SACA,QACoC;AAAA,EACpC,OAAO,0BAA0B,SAAS,QAAQ,WAAU,cAAc,aAAa;AAAA;AAGzF,eAAsB,iBAAiB,CACrC,SACA,QACoC;AAAA,EACpC,OAAO,0BAA0B,SAAS,QAAQ,WAAU,cAAc,aAAa;AAAA;;AG7CzF,mBAAS;AA6ET,SAAS,gBAAgB,CAAC,MAAsC;AAAA,EAC9D,QAAQ,KAAK;AAAA,SACN;AAAA,MACH,OAAO,EAAE,MAAM,qBAAqB;AAAA,SACjC;AAAA,MACH,OAAO;AAAA,QACL,MAAM;AAAA,QACN,kBAAkB,KAAK;AAAA,MACzB;AAAA,SACG;AAAA,MACH,OAAO;AAAA,QACL,MAAM;AAAA,QACN,WAAW,KAAK,aAAa,EAAE,MAAM,OAAO;AAAA,MAC9C;AAAA,SACG;AAAA,MACH,OAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,KAAK;AAAA,QACnB,YAAY,KAAK;AAAA,QACjB,kBAAkB,KAAK,mBAAmB;AAAA,MAC5C;AAAA;AAAA,MAEA,MAAM,IAAI,MAAM,+BAAgC,KAAsB,MAAM;AAAA;AAAA;AAOlF,SAAS,iBAAiB,CAAC,MAAyD;AAAA,EAClF,QAAQ,KAAK;AAAA,SACN;AAAA,MACH,OAAO;AAAA,QACL,IAAI,KAAK,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAS,KAAK,UAAqC;AAAA,QACnD,QAAQ;AAAA,UACN,MAAO,KAAK,QAAQ,QAAoD;AAAA,UACxE,OAAO,KAAK,QAAQ;AAAA,UACpB,KAAK,KAAK,QAAQ;AAAA,QACpB;AAAA,MACF;AAAA,SAEG;AAAA,MACH,OAAO;AAAA,QACL,IAAI,KAAK,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAS,KAAK,UAAqC;AAAA,QACnD,OAAO,KAAK,SAAS;AAAA,QACrB,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO;AAAA,UACjC,QAAQ,EAAE;AAAA,UACV,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE;AAAA,QACX,EAAE;AAAA,MACJ;AAAA,SAEG;AAAA,MACH,OAAO;AAAA,QACL,IAAI,KAAK,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAS,KAAK,UAAqC;AAAA,QACnD,MAAM,KAAK,QAAQ;AAAA,QACnB,QAAQ,KAAK;AAAA,MACf;AAAA,SAEG;AAAA,MACH,OAAO;AAAA,QACL,IAAI,KAAK,MAAM;AAAA,QACf,MAAM;AAAA,QACN,QAAS,KAAK,UAAqC;AAAA,QACnD,aAAa,KAAK,gBAAgB;AAAA,QAClC,UAAU,KAAK,aAAa;AAAA,QAC5B,WAAY,KAAK,aAAa,CAAC;AAAA,QAC/B,QAAQ,KAAK;AAAA,MACf;AAAA,SAEG;AAAA,MACH,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SACE,KAAK,SAAS,IAAI,CAAC,OAAO;AAAA,UACxB,MAAM;AAAA,UACN,MAAM,EAAE;AAAA,UACR,aACE,EAAE,aAAa,IAAI,CAAC,OAAO;AAAA,YACzB,KAAK,EAAE;AAAA,YACP,OAAO,EAAE;AAAA,YACT,YAAY,EAAE;AAAA,YACd,UAAU,EAAE;AAAA,UACd,EAAE,KAAK,CAAC;AAAA,QACZ,EAAE,KAAK,CAAC;AAAA,MACZ;AAAA;AAAA,MAIA,OAAO;AAAA;AAAA;AAOb,SAAS,yBAAyB,CAAC,UAGjC;AAAA,EAEA,IAAI,SAAS,aAAa;AAAA,IAExB,MAAM,eAAoC,CAAC;AAAA,IAC3C,IAAI,SAAS,QAAQ;AAAA,MACnB,WAAW,QAAQ,SAAS,QAAQ;AAAA,QAClC,IAAI,KAAK,SAAS,aAAa,KAAK,SAAS;AAAA,UAC3C,WAAW,WAAW,KAAK,SAAS;AAAA,YAClC,IAAI,QAAQ,aAAa;AAAA,cACvB,WAAW,OAAO,QAAQ,aAAa;AAAA,gBACrC,aAAY,KAAK;AAAA,kBACf,KAAK,IAAI;AAAA,kBACT,OAAO,IAAI;AAAA,kBACX,YAAY,IAAI;AAAA,kBAChB,UAAU,IAAI;AAAA,gBAChB,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO,EAAE,MAAM,SAAS,aAAa,0BAAY;AAAA,EACnD;AAAA,EAGA,IAAI,OAAO;AAAA,EACX,MAAM,cAAoC,CAAC;AAAA,EAE3C,IAAI,SAAS,QAAQ;AAAA,IACnB,WAAW,QAAQ,SAAS,QAAQ;AAAA,MAClC,IAAI,KAAK,SAAS,aAAa,KAAK,SAAS;AAAA,QAC3C,WAAW,WAAW,KAAK,SAAS;AAAA,UAClC,QAAQ,QAAQ;AAAA,UAChB,IAAI,QAAQ,aAAa;AAAA,YACvB,WAAW,OAAO,QAAQ,aAAa;AAAA,cACrC,YAAY,KAAK;AAAA,gBACf,KAAK,IAAI;AAAA,gBACT,OAAO,IAAI;AAAA,gBACX,YAAY,IAAI;AAAA,gBAChB,UAAU,IAAI;AAAA,cAChB,CAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,MAAM,YAAY;AAAA;AA8B7B,eAAsB,cAAc,CAClC,SACA,QACyB;AAAA,EACzB,MAAM,SAAS,UAAU,OAAO;AAAA,EAChC,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,MACR,yGACF;AAAA,EACF;AAAA,EAEA,MAAM,UAAU,WAAW,OAAO;AAAA,EAClC,MAAM,YAAY,OAAO,SAAS,iBAAiB,OAAO;AAAA,EAC1D,MAAM,UAAU,mBAAmB,OAAO;AAAA,EAE1C,QAAO,MAAM,+CAA+C,WAAW;AAAA,EACvE,QAAO,MAAM,4BAA4B,OAAO,MAAM,UAAU,GAAG,GAAG,MAAM;AAAA,EAG5E,MAAM,kBAAkB,OAAO,OAAO,OACpC,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,SAAS,iBAAiB,EAAE,SAAS,KACnF;AAAA,EAEA,IAAI,CAAC,mBAAmB,gBAAgB,WAAW,GAAG;AAAA,IAEpD,QAAO,MAAM,2EAA2E;AAAA,IACxF,OAAO,QAAQ,CAAC,EAAE,MAAM,qBAAqB,GAAG,GAAI,OAAO,SAAS,CAAC,CAAE;AAAA,EACzE;AAAA,EAGA,MAAM,cAAuC;AAAA,IAC3C,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO,cAAc;AAAA,IACvB,YAAY,eAAe,OAAO;AAAA,EACpC;AAAA,EAEA,IAAI,OAAO,eAAe,WAAW;AAAA,IACnC,YAAY,aAAa,OAAO;AAAA,EAClC;AAAA,EAEA,IAAI,OAAO,SAAS,OAAO,MAAM,SAAS,GAAG;AAAA,IAC3C,YAAY,QAAQ,OAAO,MAAM,IAAI,gBAAgB;AAAA,EACvD;AAAA,EAEA,IAAI,OAAO,iBAAiB,WAAW;AAAA,IACrC,YAAY,iBAAiB,OAAO;AAAA,EACtC;AAAA,EAEA,IAAI,OAAO,kBAAkB;AAAA,IAC3B,YAAY,YAAY,EAAE,SAAS,OAAO,iBAAiB;AAAA,EAC7D;AAAA,EAEA,QAAO,MAAM,mCAAmC,KAAK,UAAU,aAAa,MAAM,CAAC,GAAG;AAAA,EAGtF,MAAM,WAAW,MAAM,MAAM,GAAG,qBAAqB;AAAA,IACnD,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,eAAe,UAAU;AAAA,MACzB,gBAAgB;AAAA,IAClB;AAAA,IACA,MAAM,KAAK,UAAU,WAAW;AAAA,IAChC,QAAQ,YAAY,QAAQ,OAAO;AAAA,EACrC,CAAC;AAAA,EAED,IAAI,CAAC,SAAS,IAAI;AAAA,IAChB,MAAM,YAAY,MAAM,SAAS,KAAK;AAAA,IACtC,QAAO,MAAM,qCAAqC,SAAS,UAAU,WAAW;AAAA,IAChF,MAAM,IAAI,MAAM,iCAAiC,SAAS,UAAU,SAAS,YAAY;AAAA,EAC3F;AAAA,EAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,EAElC,IAAI,KAAK,OAAO;AAAA,IACd,QAAO,MAAM,gCAAgC,KAAK,MAAM,SAAS;AAAA,IACjE,MAAM,IAAI,MAAM,wBAAwB,KAAK,MAAM,SAAS;AAAA,EAC9D;AAAA,EAEA,QAAO,MAAM,gDAAgD,KAAK,UAAU,aAAa;AAAA,EAGzF,QAAQ,MAAM,gBAAgB,0BAA0B,IAAI;AAAA,EAG5D,MAAM,cAAoC,CAAC;AAAA,EAC3C,IAAI,KAAK,QAAQ;AAAA,IACf,WAAW,QAAQ,KAAK,QAAQ;AAAA,MAC9B,MAAM,YAAY,kBAAkB,IAAI;AAAA,MACxC,IAAI,WAAW;AAAA,QACb,YAAY,KAAK,SAAS;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,SAAyB;AAAA,IAC7B,IAAI,KAAK;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,KAAK;AAAA,EACf;AAAA,EAEA,QAAO,KACL,6CAA6C,KAAK,wBAAwB,YAAY,yBAAyB,YAAY,QAC7H;AAAA,EAEA,OAAO;AAAA;;ACnYT,mBAAS,uBAAQ;AACjB;AAsBA,SAAS,YAAY,CAAC,OAA+D;AAAA,EACnF,IAAI,CAAC,OAAO;AAAA,IACV;AAAA,EACF;AAAA,EAGA,MAAM,eAAe,MAAM,eAAe;AAAA,EAC1C,MAAM,mBAAmB,MAAM,gBAAgB;AAAA,EAE/C,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,aAAa,eAAe;AAAA,EAC9B;AAAA;AAgBF,eAAe,uBAAuB,CACpC,SACA,QACA,WACA,YACoC;AAAA,EACpC,MAAM,SAAS,mBAAmB,OAAO;AAAA,EACzC,MAAM,YAAY,WAAW,OAAO;AAAA,EAEpC,SAAO,MAAM,kBAAkB,oBAAoB,WAAW;AAAA,EAG9D,MAAM,eAAe,QAAQ,UAAU,UAAU;AAAA,EAMjD,MAAM,QAAQ,OAAO,KAAK,SAAS;AAAA,EACnC,MAAM,iBAAiB;AAAA,IACrB;AAAA,IACA,QAAQ,OAAO;AAAA,IACf,QAAQ;AAAA,IACR,iBAAiB,OAAO,aAAa;AAAA,IACrC,wBAAwB,EAAE,WAAW,yBAAyB,OAAO,EAAE;AAAA,EACzE;AAAA,EAGA,IAAI,OAAO,QAAQ;AAAA,IACjB,MAAM,SAAS,WAAW,cAAc;AAAA,IAExC,OAAO;AAAA,MACL,YAAY,OAAO;AAAA,MACnB,MAAM,QAAQ,QAAQ,OAAO,IAAI;AAAA,MACjC,OAAO,QAAQ,QAAQ,OAAO,KAAK,EAAE,KAAK,YAAY;AAAA,MACtD,cAAc,QAAQ,QAAQ,OAAO,YAAY,EAAE,KAAK,CAAC,MAAM,CAAuB;AAAA,IACxF;AAAA,EACF;AAAA,EAGA,QAAQ,MAAM,UAAU,MAAM,aAAa,cAAc;AAAA,EAEzD,IAAI,OAAO;AAAA,IACT,oBAAoB,SAAS,WAAW,OAAO,QAAQ,KAAK;AAAA,EAC9D;AAAA,EAEA,OAAO;AAAA;AAgBT,eAAsB,eAAe,CACnC,SACA,QACoC;AAAA,EACpC,OAAO,wBAAwB,SAAS,QAAQ,WAAU,YAAY,aAAa;AAAA;AAYrF,eAAsB,eAAe,CACnC,SACA,QACoC;AAAA,EACpC,OAAO,wBAAwB,SAAS,QAAQ,WAAU,YAAY,aAAa;AAAA;;AC5IrF,sBAAS;;;ACAT,sBAAS;AACT;AAAA;AAAA;AAAA;AAWA,SAAS,wBAAwB,CAAC,WAA6B;AAAA,EAC7D,MAAM,aAAa,UAAU,YAAY;AAAA,EACzC,MAAM,mBAAsC,WAAW,SAAS,IAAI,IAChE,eACA;AAAA,EACJ,IAAI;AAAA,IACF,OAAO,iBAAiB,SAA0B;AAAA,IAClD,MAAM;AAAA,IACN,OAAO,YAAY,gBAAoC;AAAA;AAAA;AAI3D,SAAS,YAAY,CAAC,SAAwB,WAAkC;AAAA,EAC9E,IAAI,cAAc,WAAU,YAAY;AAAA,IACtC,OAAO,cAAc,OAAO;AAAA,EAC9B;AAAA,EACA,OAAO,cAAc,OAAO;AAAA;AAGvB,SAAS,YAAY,CAC1B,SACA,WACA,MACU;AAAA,EACV,MAAM,YAAY,aAAa,SAAS,SAAS;AAAA,EACjD,MAAM,UAAU,yBAAyB,SAAS;AAAA,EAClD,OAAO,QAAQ,OAAO,IAAI;AAAA;AAGrB,SAAS,cAAc,CAC5B,SACA,WACA,QACQ;AAAA,EACR,MAAM,YAAY,aAAa,SAAS,SAAS;AAAA,EACjD,MAAM,UAAU,yBAAyB,SAAS;AAAA,EAClD,OAAO,QAAQ,OAAO,MAAM;AAAA;;;AD7C9B,eAAsB,qBAAqB,CACzC,SACA,QACmB;AAAA,EACnB,IAAI,CAAC,OAAO,QAAQ;AAAA,IAClB,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAAA,EACA,MAAM,YAAY,OAAO,aAAa,WAAU;AAAA,EAChD,OAAO,aAAa,SAAS,WAAW,OAAO,MAAM;AAAA;AAGvD,eAAsB,qBAAqB,CACzC,SACA,QACiB;AAAA,EACjB,IAAI,CAAC,OAAO,UAAU,CAAC,MAAM,QAAQ,OAAO,MAAM,GAAG;AAAA,IACnD,MAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAAA,EACA,IAAI,OAAO,OAAO,WAAW,GAAG;AAAA,IAC9B,OAAO;AAAA,EACT;AAAA,EACA,SAAS,IAAI,EAAG,IAAI,OAAO,OAAO,QAAQ,KAAK;AAAA,IAC7C,MAAM,QAAQ,OAAO,OAAO;AAAA,IAC5B,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,GAAG;AAAA,MACxD,MAAM,IAAI,MAAM,0BAA0B,oBAAoB;AAAA,IAChE;AAAA,EACF;AAAA,EACA,MAAM,YAAY,OAAO,aAAa,WAAU;AAAA,EAChD,OAAO,eAAe,SAAS,WAAW,OAAO,MAAM;AAAA;;AbKzD,SAAS,aAAa,GAAmB;AAAA,EACvC,IAAI,OAAO,YAAY,aAAa;AAAA,IAClC,OAAO,CAAC;AAAA,EACV;AAAA,EACA,OAAO,QAAQ;AAAA;AAGjB,IAAM,MAAM,cAAc;AAEnB,IAAM,eAAuB;AAAA,EAClC,MAAM;AAAA,EACN,aAAa;AAAA,EAEb,QAAQ;AAAA,IACN,gBAAgB,IAAI,kBAAkB;AAAA,IACtC,iBAAiB,IAAI,mBAAmB;AAAA,IACxC,oBAAoB,IAAI,sBAAsB;AAAA,IAC9C,oBAAoB,IAAI,sBAAsB;AAAA,IAC9C,aAAa,IAAI,eAAe;AAAA,IAChC,aAAa,IAAI,eAAe;AAAA,IAChC,wBAAwB,IAAI,0BAA0B;AAAA,IACtD,0BAA0B,IAAI,4BAA4B;AAAA,IAC1D,sBAAsB,IAAI,wBAAwB;AAAA,IAClD,6BAA6B,IAAI,+BAA+B;AAAA,IAChE,gCAAgC,IAAI,kCAAkC;AAAA,IACtE,qCAAqC,IAAI,uCAAuC;AAAA,IAChF,+BAA+B,IAAI,iCAAiC;AAAA,IACpE,uBAAuB,IAAI,yBAAyB;AAAA,IACpD,yBAAyB,IAAI,2BAA2B;AAAA,EAC1D;AAAA,OAEM,KAAI,CAAC,QAAgC,SAAuC;AAAA,IAChF,iBAAiB,QAA0C,OAAO;AAAA;AAAA,EAGpE,QAAQ;AAAA,KACL,WAAU,iBAAiB,OAC1B,SACA,WACsB;AAAA,MACtB,OAAO,oBAAoB,SAAS,MAAM;AAAA;AAAA,KAG3C,WAAU,wBAAwB,OACjC,SACA,WACsB;AAAA,MACtB,OAAO,sBAAsB,SAAS,MAAM;AAAA;AAAA,KAG7C,WAAU,wBAAwB,OACjC,SACA,WACoB;AAAA,MACpB,OAAO,sBAAsB,SAAS,MAAM;AAAA;AAAA,KAG7C,WAAU,aAAa,OACtB,SACA,WACuC;AAAA,MACvC,OAAO,gBAAgB,SAAS,MAAM;AAAA;AAAA,KAGvC,WAAU,aAAa,OACtB,SACA,WACuC;AAAA,MACvC,OAAO,gBAAgB,SAAS,MAAM;AAAA;AAAA,KAGvC,WAAU,QAAQ,OACjB,SACA,WACqC;AAAA,MACrC,OAAO,sBAAsB,SAAS,MAAM;AAAA;AAAA,KAG7C,WAAU,oBAAoB,OAC7B,SACA,WACoD;AAAA,MACpD,OAAO,uBAAuB,SAAS,MAAM;AAAA;AAAA,KAG9C,WAAU,gBAAgB,OACzB,SACA,UACoB;AAAA,MACpB,OAAO,oBAAoB,SAAS,KAAK;AAAA;AAAA,KAG1C,WAAU,iBAAiB,OAC1B,SACA,UACyB;AAAA,MACzB,OAAO,mBAAmB,SAAS,KAAK;AAAA;AAAA,KAGzC,WAAU,eAAe,OACxB,SACA,WACuC;AAAA,MACvC,OAAO,kBAAkB,SAAS,MAAM;AAAA;AAAA,KAGzC,WAAU,eAAe,OACxB,SACA,WACuC;AAAA,MACvC,OAAO,kBAAkB,SAAS,MAAM;AAAA;AAAA,KAGzC,WAAU,WAAW,OACpB,SACA,WAC4B;AAAA,MAC5B,OAAO,eAAe,SAAS,MAAM;AAAA;AAAA,EAEzC;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,UAAU,WAAW,OAAO;AAAA,YAClC,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB;AAAA,cAChD,SAAS,cAAc,OAAO;AAAA,YAChC,CAAC;AAAA,YAED,IAAI,CAAC,SAAS,IAAI;AAAA,cAChB,MAAM,IAAI,MACR,iCAAiC,SAAS,UAAU,SAAS,YAC/D;AAAA,YACF;AAAA,YAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,YAClC,SAAO,KAAK,gCAAgC,KAAK,MAAM,UAAU,qBAAqB;AAAA;AAAA,QAE1F;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,YAAY,MAAM,QAAQ,SAAS,WAAU,gBAAgB;AAAA,cACjE,MAAM;AAAA,YACR,CAAC;AAAA,YAED,IAAI,CAAC,MAAM,QAAQ,SAAS,KAAK,UAAU,WAAW,GAAG;AAAA,cACvD,MAAM,IAAI,MAAM,2CAA2C;AAAA,YAC7D;AAAA,YAEA,SAAO,KAAK,0CAA0C,UAAU,mBAAmB;AAAA;AAAA,QAEvF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,OAAO,MAAM,QAAQ,SAAS,WAAU,YAAY;AAAA,cACxD,QAAQ;AAAA,YACV,CAAC;AAAA,YAED,IAAI,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG;AAAA,cACjD,MAAM,IAAI,MAAM,2CAA2C;AAAA,YAC7D;AAAA,YAEA,SAAO,KAAK,wCAAwC,KAAK,UAAU,GAAG,EAAE,OAAO;AAAA;AAAA,QAEnF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,OAAO,MAAM,QAAQ,SAAS,WAAU,YAAY;AAAA,cACxD,QAAQ;AAAA,YACV,CAAC;AAAA,YAED,IAAI,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG;AAAA,cACjD,MAAM,IAAI,MAAM,2CAA2C;AAAA,YAC7D;AAAA,YAEA,SAAO,KAAK,wCAAwC,KAAK,UAAU,GAAG,EAAE,OAAO;AAAA;AAAA,QAEnF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,eAAe;AAAA,YAErB,MAAM,SAAS,MAAM,QAAQ,SAAS,WAAU,uBAAuB;AAAA,cACrE,QAAQ;AAAA,cACR,WAAW,WAAU;AAAA,YACvB,CAAC;AAAA,YAED,IAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,GAAG;AAAA,cACjD,MAAM,IAAI,MAAM,kDAAkD;AAAA,YACpE;AAAA,YAEA,MAAM,cAAc,MAAM,QAAQ,SAAS,WAAU,uBAAuB;AAAA,cAC1E;AAAA,cACA,WAAW,WAAU;AAAA,YACvB,CAAC;AAAA,YAED,IAAI,gBAAgB,cAAc;AAAA,cAChC,MAAM,IAAI,MACR,yCAAyC,uBAAuB,cAClE;AAAA,YACF;AAAA,YAEA,SAAO,KAAK,iDAAiD,OAAO,gBAAgB;AAAA;AAAA,QAExF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,SAAmB,CAAC;AAAA,YAE1B,MAAM,SAAS,MAAM,QAAQ,SAAS,WAAU,YAAY;AAAA,cAC1D,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,eAAe,CAAC,UAAkB;AAAA,gBAChC,OAAO,KAAK,KAAK;AAAA;AAAA,YAErB,CAAC;AAAA,YAED,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAAG;AAAA,cACrD,MAAM,IAAI,MAAM,0CAA0C;AAAA,YAC5D;AAAA,YAEA,IAAI,OAAO,WAAW,GAAG;AAAA,cACvB,MAAM,IAAI,MAAM,8BAA8B;AAAA,YAChD;AAAA,YAEA,SAAO,KAAK,iCAAiC,OAAO,wBAAwB;AAAA;AAAA,QAEhF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,eACJ;AAAA,YAEF,MAAM,SAAS,MAAM,QAAQ,SAAS,WAAU,mBAAmB,YAAY;AAAA,YAE/E,IACE,CAAC,UACD,OAAO,WAAW,YAClB,EAAE,WAAW,WACb,EAAE,iBAAiB,SACnB;AAAA,cACA,MAAM,IAAI,MAAM,wDAAwD;AAAA,YAC1E;AAAA,YAEA,SAAO,KAAK,mCAAmC,OAAO,QAAQ;AAAA;AAAA,QAElE;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YAEnD,MAAM,WACJ;AAAA,YAEF,MAAM,WAAW,MAAM,MAAM,QAAQ;AAAA,YACrC,MAAM,cAAc,MAAM,SAAS,YAAY;AAAA,YAC/C,MAAM,cAAc,OAAO,KAAK,IAAI,WAAW,WAAW,CAAC;AAAA,YAE3D,MAAM,gBAAgB,MAAM,QAAQ,SAAS,WAAU,eAAe,WAAW;AAAA,YAEjF,IAAI,OAAO,kBAAkB,UAAU;AAAA,cACrC,MAAM,IAAI,MAAM,sCAAsC;AAAA,YACxD;AAAA,YAEA,SAAO,KAAK,iCAAiC,cAAc,UAAU,GAAG,EAAE,OAAO;AAAA;AAAA,QAErF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,YAAY,MAAM,QAAQ,SAAS,WAAU,gBAAgB;AAAA,cACjE,MAAM;AAAA,YACR,CAAC;AAAA,YAED,IAAI,EAAE,qBAAqB,gBAAgB,UAAU,eAAe,GAAG;AAAA,cACrE,MAAM,IAAI,MAAM,yCAAyC;AAAA,YAC3D;AAAA,YAEA,SAAO,KAAK,+BAA+B,UAAU,2BAA2B;AAAA;AAAA,QAEpF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YACnD,MAAM,SAAS,MAAM,QAAQ,SAAS,WAAU,cAAc;AAAA,cAC5D,QACE;AAAA,YACJ,CAAC;AAAA,YAED,IAAI,CAAC,UAAU,OAAO,WAAW,UAAU;AAAA,cACzC,MAAM,IAAI,MAAM,2CAA2C;AAAA,YAC7D;AAAA,YAEA,SAAO,KACL,mCAAmC,KAAK,UAAU,MAAM,EAAE,UAAU,GAAG,GAAG,GAC5E;AAAA;AAAA,QAEJ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA0C;AAAA,YAGnD,MAAM,SAAS,MAAM,QAAQ,SAAS,WAAU,UAAU;AAAA,cACxD,OAAO;AAAA,cACP,OAAO,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAAA,cACtC,cAAc;AAAA,YAChB,CAAC;AAAA,YAED,IAAI,CAAC,UAAU,OAAO,WAAW,YAAY,EAAE,UAAU,SAAS;AAAA,cAChE,MAAM,IAAI,MAAM,qDAAqD;AAAA,YACvE;AAAA,YAEA,IAAI,OAAO,OAAO,SAAS,YAAY,OAAO,KAAK,WAAW,GAAG;AAAA,cAC/D,MAAM,IAAI,MAAM,mDAAmD;AAAA,YACrE;AAAA,YAEA,SAAO,KACL,kDAAkD,OAAO,KAAK,wBAAwB,OAAO,aAAa,UAAU,GACtH;AAAA;AAAA,QAEJ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAe;",
22
- "debugId": "AE97436E4960EAED64756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "3851A4BEB164E8B664756E2164756E21",
23
23
  "names": []
24
24
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-openai",
3
- "version": "2.0.0-alpha.3",
3
+ "version": "2.0.0-alpha.5",
4
4
  "type": "module",
5
5
  "main": "dist/cjs/index.node.cjs",
6
6
  "module": "dist/node/index.node.js",
@@ -42,6 +42,7 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@biomejs/biome": "^2.3.11",
45
+ "@types/bun": "^1.3.8",
45
46
  "@types/json-schema": "^7.0.15",
46
47
  "@types/node": "^25.0.3",
47
48
  "typescript": "^5.9.3"