@elizaos/plugin-openrouter 2.0.0-alpha.6 → 2.0.0-alpha.8

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.
@@ -116,7 +116,6 @@ function emitModelUsageEvent(_runtime, modelType, prompt, usage) {
116
116
  }
117
117
 
118
118
  // models/embedding.ts
119
- var MAX_EMBEDDING_TOKENS = 8000;
120
119
  async function handleTextEmbedding(runtime, params) {
121
120
  const embeddingModelName = getEmbeddingModel(runtime);
122
121
  const embeddingDimension = Number.parseInt(getSetting(runtime, "OPENROUTER_EMBEDDING_DIMENSIONS") ?? getSetting(runtime, "EMBEDDING_DIMENSIONS") ?? "1536", 10);
@@ -149,9 +148,9 @@ async function handleTextEmbedding(runtime, params) {
149
148
  fallbackVector[0] = 0.3;
150
149
  return fallbackVector;
151
150
  }
152
- const maxChars = MAX_EMBEDDING_TOKENS * 4;
151
+ const maxChars = 8000 * 4;
153
152
  if (text.length > maxChars) {
154
- logger3.warn(`[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`);
153
+ logger3.warn(`[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`);
155
154
  text = text.slice(0, maxChars);
156
155
  }
157
156
  const apiKey = getApiKey(runtime);
@@ -296,16 +295,19 @@ async function generateObjectWithModel(runtime, modelType, params) {
296
295
  const modelName = modelType === ModelType3.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);
297
296
  const temperature = params.temperature ?? 0.7;
298
297
  try {
299
- const generateParams = {
300
- model: openrouter.chat(modelName),
301
- ...params.schema && {
302
- schema: jsonSchema(params.schema)
303
- },
304
- output: params.schema ? "object" : "no-schema",
298
+ const model = openrouter.chat(modelName);
299
+ const { object, usage } = params.schema ? await generateObject({
300
+ model,
301
+ schema: jsonSchema(params.schema),
302
+ output: "object",
305
303
  prompt: params.prompt,
306
304
  temperature
307
- };
308
- const { object, usage } = await generateObject(generateParams);
305
+ }) : await generateObject({
306
+ model,
307
+ output: "no-schema",
308
+ prompt: params.prompt,
309
+ temperature
310
+ });
309
311
  if (usage) {
310
312
  emitModelUsageEvent(runtime, modelType, params.prompt, usage);
311
313
  }
@@ -324,24 +326,37 @@ async function handleObjectLarge(runtime, params) {
324
326
  // models/text.ts
325
327
  import { ModelType as ModelType4 } from "@elizaos/core";
326
328
  import { generateText as generateText2, streamText } from "ai";
329
+ var RESPONSES_ROUTED_PREFIXES = ["openai/", "anthropic/"];
330
+ var NO_SAMPLING_MODEL_PATTERNS = ["o1", "o3", "o4", "gpt-5", "gpt-5-mini"];
331
+ function supportsSamplingParameters(modelName) {
332
+ const lowerModelName = modelName.toLowerCase();
333
+ if (RESPONSES_ROUTED_PREFIXES.some((prefix) => lowerModelName.startsWith(prefix))) {
334
+ return false;
335
+ }
336
+ return !NO_SAMPLING_MODEL_PATTERNS.some((pattern) => lowerModelName.includes(pattern));
337
+ }
327
338
  function buildGenerateParams(runtime, modelType, params) {
328
- const { prompt, stopSequences = [] } = params;
329
- const temperature = params.temperature ?? 0.7;
330
- const frequencyPenalty = params.frequencyPenalty ?? 0.7;
331
- const presencePenalty = params.presencePenalty ?? 0.7;
339
+ const { prompt } = params;
332
340
  const paramsWithMax = params;
333
341
  const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;
334
342
  const openrouter = createOpenRouterProvider(runtime);
335
343
  const modelName = modelType === ModelType4.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);
336
344
  const modelLabel = modelType === ModelType4.TEXT_SMALL ? "TEXT_SMALL" : "TEXT_LARGE";
345
+ const supportsSampling = supportsSamplingParameters(modelName);
346
+ const stopSequences = Array.isArray(params.stopSequences) && params.stopSequences.length > 0 ? params.stopSequences : undefined;
347
+ const temperature = params.temperature ?? 0.7;
348
+ const frequencyPenalty = params.frequencyPenalty ?? 0.7;
349
+ const presencePenalty = params.presencePenalty ?? 0.7;
337
350
  const generateParams = {
338
351
  model: openrouter.chat(modelName),
339
352
  prompt,
340
353
  system: runtime.character?.system ?? undefined,
341
- temperature,
342
- frequencyPenalty,
343
- presencePenalty,
344
- stopSequences,
354
+ ...supportsSampling ? {
355
+ temperature,
356
+ frequencyPenalty,
357
+ presencePenalty,
358
+ ...stopSequences ? { stopSequences } : {}
359
+ } : {},
345
360
  maxOutputTokens: resolvedMaxOutput
346
361
  };
347
362
  return { generateParams, modelName, modelLabel, prompt };
@@ -546,5 +561,5 @@ export {
546
561
  DEFAULT_BASE_URL
547
562
  };
548
563
 
549
- //# debugId=07833AA1C5BE84A864756E2164756E21
564
+ //# debugId=71FE91EA418BB3EF64756E2164756E21
550
565
  //# sourceMappingURL=index.browser.js.map
@@ -5,15 +5,15 @@
5
5
  "import {\n type GenerateTextParams,\n type IAgentRuntime,\n type ImageDescriptionParams,\n type ImageGenerationParams,\n type JsonValue,\n logger,\n ModelType,\n type ObjectGenerationParams,\n type Plugin,\n type TextEmbeddingParams,\n} from \"@elizaos/core\";\n\nimport { initializeOpenRouter } from \"./init\";\nimport { handleTextEmbedding } from \"./models/embedding\";\nimport { handleImageDescription, handleImageGeneration } from \"./models/image\";\nimport { handleObjectLarge, handleObjectSmall } from \"./models/object\";\nimport { handleTextLarge, handleTextSmall } from \"./models/text\";\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction getProcessEnv(): ProcessEnvLike {\n if (typeof process === \"undefined\" || !process.env) {\n return {};\n }\n return process.env as ProcessEnvLike;\n}\n\nconst env = getProcessEnv();\n\nexport const openrouterPlugin: Plugin = {\n name: \"openrouter\",\n description: \"OpenRouter multi-model AI gateway plugin\",\n\n config: {\n OPENROUTER_API_KEY: env.OPENROUTER_API_KEY ?? null,\n OPENROUTER_BASE_URL: env.OPENROUTER_BASE_URL ?? null,\n OPENROUTER_SMALL_MODEL: env.OPENROUTER_SMALL_MODEL ?? null,\n OPENROUTER_LARGE_MODEL: env.OPENROUTER_LARGE_MODEL ?? null,\n OPENROUTER_IMAGE_MODEL: env.OPENROUTER_IMAGE_MODEL ?? null,\n OPENROUTER_IMAGE_GENERATION_MODEL: env.OPENROUTER_IMAGE_GENERATION_MODEL ?? null,\n OPENROUTER_EMBEDDING_MODEL: env.OPENROUTER_EMBEDDING_MODEL ?? null,\n OPENROUTER_EMBEDDING_DIMENSIONS: env.OPENROUTER_EMBEDDING_DIMENSIONS ?? null,\n OPENROUTER_AUTO_CLEANUP_IMAGES: env.OPENROUTER_AUTO_CLEANUP_IMAGES ?? null,\n SMALL_MODEL: env.SMALL_MODEL ?? null,\n LARGE_MODEL: env.LARGE_MODEL ?? null,\n IMAGE_MODEL: env.IMAGE_MODEL ?? null,\n IMAGE_GENERATION_MODEL: env.IMAGE_GENERATION_MODEL ?? null,\n EMBEDDING_MODEL: env.EMBEDDING_MODEL ?? null,\n EMBEDDING_DIMENSIONS: env.EMBEDDING_DIMENSIONS ?? null,\n },\n\n async init(config: Record<string, unknown>, runtime: IAgentRuntime) {\n initializeOpenRouter(config, runtime);\n },\n\n models: {\n [ModelType.TEXT_SMALL]: async (runtime: IAgentRuntime, params: GenerateTextParams) => {\n return handleTextSmall(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (runtime: IAgentRuntime, params: GenerateTextParams) => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectLarge(runtime, params);\n },\n\n [ModelType.IMAGE_DESCRIPTION]: async (\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n ) => {\n const description = await handleImageDescription(runtime, params);\n return { title: \"\", description };\n },\n\n [ModelType.IMAGE]: async (runtime: IAgentRuntime, params: ImageGenerationParams) => {\n const result = await handleImageGeneration(runtime, params);\n return [{ url: result.imageUrl }];\n },\n\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ) => {\n return handleTextEmbedding(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"openrouter_plugin_tests\",\n tests: [\n {\n name: \"openrouter_test_text_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_small\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_text_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_large\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_large: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_object_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const result = await runtime.useModel(ModelType.OBJECT_SMALL, {\n prompt: \"Create a simple JSON object with a message field saying hello\",\n schema: { type: \"object\" },\n });\n logger.log({ result }, \"Generated object with test_object_small\");\n if (!result || (typeof result === \"object\" && \"error\" in result)) {\n throw new Error(\"Failed to generate object\");\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_object_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_text_embedding\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: \"Hello, world!\",\n });\n logger.log({ embedding }, \"embedding\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_embedding: ${message}`);\n throw error;\n }\n },\n },\n ],\n },\n ],\n};\n",
6
6
  "import { type IAgentRuntime, logger } from \"@elizaos/core\";\nimport { getApiKey, getBaseURL } from \"./utils/config\";\n\n(globalThis as Record<string, unknown>).AI_SDK_LOG_WARNINGS ??= false;\n\nexport function initializeOpenRouter(\n _config: Record<string, unknown>,\n runtime: IAgentRuntime\n): void {\n (async () => {\n try {\n const isBrowser =\n typeof globalThis !== \"undefined\" && (globalThis as Record<string, unknown>).document;\n if (isBrowser) {\n return;\n }\n\n if (!getApiKey(runtime)) {\n logger.warn(\n \"OPENROUTER_API_KEY is not set in environment - OpenRouter functionality will be limited\"\n );\n return;\n }\n\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: { Authorization: `Bearer ${getApiKey(runtime)}` },\n });\n\n if (!response.ok) {\n logger.warn(`OpenRouter API key validation failed: ${response.statusText}`);\n } else {\n logger.log(\"OpenRouter API key validated successfully\");\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.warn(`Error validating OpenRouter API key: ${message}`);\n }\n })();\n}\n",
7
7
  "import type { IAgentRuntime } from \"@elizaos/core\";\n\nexport const DEFAULT_BASE_URL = \"https://openrouter.ai/api/v1\";\nexport const DEFAULT_SMALL_MODEL = \"google/gemini-2.0-flash-001\";\nexport const DEFAULT_LARGE_MODEL = \"google/gemini-2.5-flash\";\nexport const DEFAULT_IMAGE_MODEL = \"x-ai/grok-2-vision-1212\";\nexport const DEFAULT_IMAGE_GENERATION_MODEL = \"google/gemini-2.5-flash-image-preview\";\nexport const DEFAULT_EMBEDDING_MODEL = \"openai/text-embedding-3-small\";\nexport const DEFAULT_EMBEDDING_DIMENSIONS = 1536;\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}\n\nexport function getBaseURL(runtime: IAgentRuntime): string {\n const browserURL = getSetting(runtime, \"OPENROUTER_BROWSER_BASE_URL\");\n if (\n typeof globalThis !== \"undefined\" &&\n (globalThis as Record<string, unknown>).document &&\n browserURL\n ) {\n return browserURL;\n }\n return getSetting(runtime, \"OPENROUTER_BASE_URL\", DEFAULT_BASE_URL) || DEFAULT_BASE_URL;\n}\n\nexport function getApiKey(runtime: IAgentRuntime): string | undefined {\n return getSetting(runtime, \"OPENROUTER_API_KEY\");\n}\n\nexport function getSmallModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_SMALL_MODEL\") ??\n getSetting(runtime, \"SMALL_MODEL\", DEFAULT_SMALL_MODEL) ??\n DEFAULT_SMALL_MODEL\n );\n}\n\nexport function getLargeModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_LARGE_MODEL\") ??\n getSetting(runtime, \"LARGE_MODEL\", DEFAULT_LARGE_MODEL) ??\n DEFAULT_LARGE_MODEL\n );\n}\n\nexport function getImageModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_IMAGE_MODEL\") ??\n getSetting(runtime, \"IMAGE_MODEL\", DEFAULT_IMAGE_MODEL) ??\n DEFAULT_IMAGE_MODEL\n );\n}\n\nexport function getImageGenerationModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_IMAGE_GENERATION_MODEL\") ??\n getSetting(runtime, \"IMAGE_GENERATION_MODEL\", DEFAULT_IMAGE_GENERATION_MODEL) ??\n DEFAULT_IMAGE_GENERATION_MODEL\n );\n}\n\nexport function getEmbeddingModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_EMBEDDING_MODEL\") ??\n getSetting(runtime, \"EMBEDDING_MODEL\", DEFAULT_EMBEDDING_MODEL) ??\n DEFAULT_EMBEDDING_MODEL\n );\n}\n\nexport function getEmbeddingDimensions(runtime: IAgentRuntime): number {\n const setting =\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\");\n return setting ? parseInt(setting, 10) : DEFAULT_EMBEDDING_DIMENSIONS;\n}\n\nexport function shouldAutoCleanupImages(runtime: IAgentRuntime): boolean {\n const setting = getSetting(runtime, \"OPENROUTER_AUTO_CLEANUP_IMAGES\", \"false\");\n return setting?.toLowerCase() === \"true\";\n}\n",
8
- "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;\n\nimport { getApiKey, getBaseURL, getEmbeddingModel, getSetting } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModelName = getEmbeddingModel(runtime);\n const embeddingDimension = Number.parseInt(\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\") ??\n \"1536\",\n 10\n ) as (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\n if (!Object.values(VECTOR_DIMS).includes(embeddingDimension)) {\n const errorMsg = `Invalid embedding dimension: ${embeddingDimension}. Must be one of: ${Object.values(VECTOR_DIMS).join(\", \")}`;\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n if (params === null) {\n const testVector = Array(embeddingDimension).fill(0) as number[];\n testVector[0] = 0.1;\n return testVector;\n }\n\n let text: string;\n if (typeof params === \"string\") {\n text = params;\n } else if (typeof params === \"object\" && params.text) {\n text = params.text;\n } else {\n const errorMsg = \"Invalid input format for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.2;\n return fallbackVector;\n }\n\n if (!text.trim()) {\n const errorMsg = \"Empty text for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.3;\n return fallbackVector;\n }\n\n // Truncate to stay within embedding model token limits\n const maxChars = MAX_EMBEDDING_TOKENS * 4; // ~4 chars per token\n if (text.length > maxChars) {\n logger.warn(\n `[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`\n );\n text = text.slice(0, maxChars);\n }\n\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n const errorMsg = \"OPENROUTER_API_KEY is not set\";\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n const baseURL = getBaseURL(runtime);\n\n try {\n const response = await fetch(`${baseURL}/embeddings`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"HTTP-Referer\": getSetting(runtime, \"OPENROUTER_HTTP_REFERER\") || \"\",\n \"X-Title\": getSetting(runtime, \"OPENROUTER_X_TITLE\") || \"ElizaOS\",\n },\n body: JSON.stringify({\n model: embeddingModelName,\n input: text,\n }),\n });\n\n if (!response.ok) {\n logger.error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n throw new Error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data: [{ embedding: number[] }];\n usage?: { prompt_tokens: number; total_tokens: number };\n };\n\n if (!data?.data?.[0]?.embedding) {\n logger.error(\"API returned invalid structure\");\n throw new Error(\"API returned invalid structure\");\n }\n\n const embedding = data.data[0].embedding;\n\n if (!Array.isArray(embedding) || embedding.length !== embeddingDimension) {\n const errorMsg = `Embedding length ${embedding?.length ?? 0} does not match configured dimension ${embeddingDimension}`;\n logger.error(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.4;\n return fallbackVector;\n }\n\n if (data.usage) {\n const usage = {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: 0,\n totalTokens: data.usage.total_tokens,\n };\n\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, text, usage);\n }\n\n return embedding;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating embedding: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
8
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\n\nimport { getApiKey, getBaseURL, getEmbeddingModel, getSetting } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModelName = getEmbeddingModel(runtime);\n const embeddingDimension = Number.parseInt(\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\") ??\n \"1536\",\n 10\n ) as (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\n if (!Object.values(VECTOR_DIMS).includes(embeddingDimension)) {\n const errorMsg = `Invalid embedding dimension: ${embeddingDimension}. Must be one of: ${Object.values(VECTOR_DIMS).join(\", \")}`;\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n if (params === null) {\n const testVector = Array(embeddingDimension).fill(0) as number[];\n testVector[0] = 0.1;\n return testVector;\n }\n\n let text: string;\n if (typeof params === \"string\") {\n text = params;\n } else if (typeof params === \"object\" && params.text) {\n text = params.text;\n } else {\n const errorMsg = \"Invalid input format for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.2;\n return fallbackVector;\n }\n\n if (!text.trim()) {\n const errorMsg = \"Empty text for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.3;\n return fallbackVector;\n }\n\n // Truncate to stay within embedding model token limits (~4 chars per token)\n const maxChars = 8_000 * 4;\n if (text.length > maxChars) {\n logger.warn(\n `[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`\n );\n text = text.slice(0, maxChars);\n }\n\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n const errorMsg = \"OPENROUTER_API_KEY is not set\";\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n const baseURL = getBaseURL(runtime);\n\n try {\n const response = await fetch(`${baseURL}/embeddings`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"HTTP-Referer\": getSetting(runtime, \"OPENROUTER_HTTP_REFERER\") || \"\",\n \"X-Title\": getSetting(runtime, \"OPENROUTER_X_TITLE\") || \"ElizaOS\",\n },\n body: JSON.stringify({\n model: embeddingModelName,\n input: text,\n }),\n });\n\n if (!response.ok) {\n logger.error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n throw new Error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data: [{ embedding: number[] }];\n usage?: { prompt_tokens: number; total_tokens: number };\n };\n\n if (!data?.data?.[0]?.embedding) {\n logger.error(\"API returned invalid structure\");\n throw new Error(\"API returned invalid structure\");\n }\n\n const embedding = data.data[0].embedding;\n\n if (!Array.isArray(embedding) || embedding.length !== embeddingDimension) {\n const errorMsg = `Embedding length ${embedding?.length ?? 0} does not match configured dimension ${embeddingDimension}`;\n logger.error(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.4;\n return fallbackVector;\n }\n\n if (data.usage) {\n const usage = {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: 0,\n totalTokens: data.usage.total_tokens,\n };\n\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, text, usage);\n }\n\n return embedding;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating embedding: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
9
9
  "import type { IAgentRuntime, ModelType } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\ninterface AIUsage {\n inputTokens?: number;\n outputTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n}\n\nexport function emitModelUsageEvent(\n _runtime: IAgentRuntime,\n modelType: (typeof ModelType)[keyof typeof ModelType],\n prompt: string,\n usage: AIUsage\n): void {\n const inputTokens = usage.inputTokens ?? usage.promptTokens ?? 0;\n const outputTokens = usage.outputTokens ?? usage.completionTokens ?? 0;\n const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;\n\n logger.debug({\n event: \"model:usage\",\n modelType,\n provider: \"openrouter\",\n prompt: prompt.substring(0, 100),\n usage: {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens,\n },\n timestamp: Date.now(),\n });\n}\n",
10
10
  "import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getImageGenerationModel, getImageModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n): Promise<string> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName = getImageModel(runtime);\n\n const imageUrl = typeof params === \"string\" ? params : params.imageUrl;\n const prompt =\n typeof params === \"string\" ? \"Describe this image\" : params.prompt || \"Describe this image\";\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n messages: [\n {\n role: \"user\" as const,\n content: [\n { type: \"text\" as const, text: prompt },\n { type: \"image\" as const, image: imageUrl },\n ],\n },\n ],\n };\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, ModelType.IMAGE_DESCRIPTION, prompt, response.usage);\n }\n\n return response.text;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error describing image: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n): Promise<{ imageUrl: string; caption?: string }> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName = getImageGenerationModel(runtime);\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: `Generate an image: ${params.prompt}`,\n };\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, ModelType.IMAGE, params.prompt, response.usage);\n }\n\n return {\n imageUrl: response.text,\n caption: params.prompt,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating image: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
11
11
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { createOpenRouter } from \"@openrouter/ai-sdk-provider\";\nimport { getApiKey, getBaseURL } from \"../utils/config\";\n\nexport function createOpenRouterProvider(runtime: IAgentRuntime) {\n const apiKey = getApiKey(runtime);\n const isBrowser =\n typeof globalThis !== \"undefined\" && (globalThis as Record<string, unknown>).document;\n const baseURL = getBaseURL(runtime);\n\n return createOpenRouter({\n apiKey: isBrowser ? undefined : apiKey,\n baseURL,\n });\n}\n",
12
- "import {\n type IAgentRuntime,\n type JsonValue,\n ModelType,\n type ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { generateObject, jsonSchema, type LanguageModel } from \"ai\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { handleObjectGenerationError } from \"../utils/helpers\";\n\nasync function generateObjectWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.OBJECT_SMALL | typeof ModelType.OBJECT_LARGE,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n\n const temperature = params.temperature ?? 0.7;\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n ...(params.schema && {\n schema: jsonSchema(params.schema as JSONSchema7),\n }),\n output: params.schema ? \"object\" : \"no-schema\",\n prompt: params.prompt,\n temperature: temperature,\n };\n\n const { object, usage } = await generateObject(generateParams);\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n return object as Record<string, JsonValue>;\n } catch (error: unknown) {\n return handleObjectGenerationError(error);\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_SMALL, params);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_LARGE, params);\n}\n",
12
+ "import {\n type IAgentRuntime,\n type JsonValue,\n ModelType,\n type ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { generateObject, jsonSchema, type LanguageModel } from \"ai\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { handleObjectGenerationError } from \"../utils/helpers\";\n\nasync function generateObjectWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.OBJECT_SMALL | typeof ModelType.OBJECT_LARGE,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n\n const temperature = params.temperature ?? 0.7;\n\n try {\n const model = openrouter.chat(modelName) as LanguageModel;\n const { object, usage } = params.schema\n ? await generateObject({\n model,\n schema: jsonSchema(params.schema as JSONSchema7),\n output: \"object\",\n prompt: params.prompt,\n temperature,\n })\n : await generateObject({\n model,\n output: \"no-schema\",\n prompt: params.prompt,\n temperature,\n });\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n return object as Record<string, JsonValue>;\n } catch (error: unknown) {\n return handleObjectGenerationError(error);\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_SMALL, params);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_LARGE, params);\n}\n",
13
13
  "import { type JsonValue, logger } from \"@elizaos/core\";\n\nexport function getJsonRepairFunction(): ((text: string) => string) | undefined {\n try {\n const { jsonrepair } = require(\"jsonrepair\");\n return jsonrepair;\n } catch {\n return undefined;\n }\n}\n\nexport function handleObjectGenerationError(error: unknown): Record<string, JsonValue> {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating object: ${message}`);\n return { error: message };\n}\n\nexport function extractJsonFromText(text: string): Record<string, JsonValue> {\n try {\n return JSON.parse(text) as Record<string, JsonValue>;\n } catch {}\n\n const jsonBlockMatch = text.match(/```json\\s*([\\s\\S]*?)\\s*```/);\n if (jsonBlockMatch?.[1]) {\n try {\n return JSON.parse(jsonBlockMatch[1].trim()) as Record<string, JsonValue>;\n } catch {}\n }\n\n const codeBlockMatch = text.match(/```\\w*\\s*([\\s\\S]*?)\\s*```/);\n if (codeBlockMatch?.[1]) {\n const content = codeBlockMatch[1].trim();\n if (content.startsWith(\"{\") && content.endsWith(\"}\")) {\n try {\n return JSON.parse(content) as Record<string, JsonValue>;\n } catch {}\n }\n }\n\n const jsonMatch = text.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch?.[0]) {\n try {\n return JSON.parse(jsonMatch[0]) as Record<string, JsonValue>;\n } catch {}\n }\n\n return {};\n}\n",
14
- "import type { GenerateTextParams, IAgentRuntime, TextStreamResult } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel, streamText } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nfunction buildGenerateParams(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n) {\n const { prompt, stopSequences = [] } = params;\n const temperature = params.temperature ?? 0.7;\n const frequencyPenalty = params.frequencyPenalty ?? 0.7;\n const presencePenalty = params.presencePenalty ?? 0.7;\n const paramsWithMax = params as GenerateTextParams & {\n maxOutputTokens?: number;\n maxTokens?: number;\n };\n const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;\n\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n const modelLabel = modelType === ModelType.TEXT_SMALL ? \"TEXT_SMALL\" : \"TEXT_LARGE\";\n\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: prompt,\n system: runtime.character?.system ?? undefined,\n temperature: temperature,\n frequencyPenalty: frequencyPenalty,\n presencePenalty: presencePenalty,\n stopSequences: stopSequences,\n maxOutputTokens: resolvedMaxOutput,\n };\n\n return { generateParams, modelName, modelLabel, prompt };\n}\n\ntype GenerateParams = ReturnType<typeof buildGenerateParams>[\"generateParams\"];\n\nfunction handleStreamingGeneration(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n generateParams: GenerateParams,\n prompt: string,\n _modelLabel: string\n): TextStreamResult {\n const streamResult = streamText(generateParams);\n\n return {\n textStream: streamResult.textStream,\n text: Promise.resolve(streamResult.text),\n usage: Promise.resolve(streamResult.usage).then((usage) => {\n if (usage) {\n emitModelUsageEvent(runtime, modelType, prompt, usage);\n const inputTokens = usage.inputTokens ?? 0;\n const outputTokens = usage.outputTokens ?? 0;\n return {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n };\n }\n return undefined;\n }),\n finishReason: Promise.resolve(streamResult.finishReason) as Promise<string | undefined>,\n };\n}\n\nasync function generateTextWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n const {\n generateParams,\n modelName: _modelName,\n modelLabel,\n prompt,\n } = buildGenerateParams(runtime, modelType, params);\n\n if (params.stream) {\n return handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel);\n }\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, modelType, prompt, response.usage);\n }\n\n return response.text;\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_SMALL, params);\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_LARGE, params);\n}\n"
14
+ "import type { GenerateTextParams, IAgentRuntime, TextStreamResult } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel, streamText } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nconst RESPONSES_ROUTED_PREFIXES = [\"openai/\", \"anthropic/\"] as const;\nconst NO_SAMPLING_MODEL_PATTERNS = [\"o1\", \"o3\", \"o4\", \"gpt-5\", \"gpt-5-mini\"] as const;\n\nfunction supportsSamplingParameters(modelName: string): boolean {\n const lowerModelName = modelName.toLowerCase();\n\n if (RESPONSES_ROUTED_PREFIXES.some((prefix) => lowerModelName.startsWith(prefix))) {\n return false;\n }\n\n return !NO_SAMPLING_MODEL_PATTERNS.some((pattern) => lowerModelName.includes(pattern));\n}\n\nfunction buildGenerateParams(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n) {\n const { prompt } = params;\n const paramsWithMax = params as GenerateTextParams & {\n maxOutputTokens?: number;\n maxTokens?: number;\n };\n const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;\n\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n const modelLabel = modelType === ModelType.TEXT_SMALL ? \"TEXT_SMALL\" : \"TEXT_LARGE\";\n const supportsSampling = supportsSamplingParameters(modelName);\n const stopSequences =\n Array.isArray(params.stopSequences) && params.stopSequences.length > 0\n ? params.stopSequences\n : undefined;\n const temperature = params.temperature ?? 0.7;\n const frequencyPenalty = params.frequencyPenalty ?? 0.7;\n const presencePenalty = params.presencePenalty ?? 0.7;\n\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: prompt,\n system: runtime.character?.system ?? undefined,\n ...(supportsSampling\n ? {\n temperature: temperature,\n frequencyPenalty: frequencyPenalty,\n presencePenalty: presencePenalty,\n ...(stopSequences ? { stopSequences } : {}),\n }\n : {}),\n maxOutputTokens: resolvedMaxOutput,\n };\n\n return { generateParams, modelName, modelLabel, prompt };\n}\n\ntype GenerateParams = ReturnType<typeof buildGenerateParams>[\"generateParams\"];\n\nfunction handleStreamingGeneration(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n generateParams: GenerateParams,\n prompt: string,\n _modelLabel: string\n): TextStreamResult {\n const streamResult = streamText(generateParams);\n\n return {\n textStream: streamResult.textStream,\n text: Promise.resolve(streamResult.text),\n usage: Promise.resolve(streamResult.usage).then((usage) => {\n if (usage) {\n emitModelUsageEvent(runtime, modelType, prompt, usage);\n const inputTokens = usage.inputTokens ?? 0;\n const outputTokens = usage.outputTokens ?? 0;\n return {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n };\n }\n return undefined;\n }),\n finishReason: Promise.resolve(streamResult.finishReason) as Promise<string | undefined>,\n };\n}\n\nasync function generateTextWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n const {\n generateParams,\n modelName: _modelName,\n modelLabel,\n prompt,\n } = buildGenerateParams(runtime, modelType, params);\n\n if (params.stream) {\n return handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel);\n }\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, modelType, prompt, response.usage);\n }\n\n return response.text;\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_SMALL, params);\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_LARGE, params);\n}\n"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "07833AA1C5BE84A864756E2164756E21",
16
+ "mappings": ";AAAA;AAAA,YAME;AAAA,eACA;AAAA;;;ACPF;;;ACEO,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAC5B,IAAM,sBAAsB;AAC5B,IAAM,sBAAsB;AAC5B,IAAM,iCAAiC;AACvC,IAAM,0BAA0B;AAChC,IAAM,+BAA+B;AAE5C,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;AAGtB,SAAS,UAAU,CAAC,SAAgC;AAAA,EACzD,MAAM,aAAa,WAAW,SAAS,6BAA6B;AAAA,EACpE,IACE,OAAO,eAAe,eACrB,WAAuC,YACxC,YACA;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,OAAO,WAAW,SAAS,uBAAuB,gBAAgB,KAAK;AAAA;AAGlE,SAAS,SAAS,CAAC,SAA4C;AAAA,EACpE,OAAO,WAAW,SAAS,oBAAoB;AAAA;AAG1C,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OACE,WAAW,SAAS,wBAAwB,KAC5C,WAAW,SAAS,eAAe,mBAAmB,KACtD;AAAA;AAIG,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OACE,WAAW,SAAS,wBAAwB,KAC5C,WAAW,SAAS,eAAe,mBAAmB,KACtD;AAAA;AAIG,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OACE,WAAW,SAAS,wBAAwB,KAC5C,WAAW,SAAS,eAAe,mBAAmB,KACtD;AAAA;AAIG,SAAS,uBAAuB,CAAC,SAAgC;AAAA,EACtE,OACE,WAAW,SAAS,mCAAmC,KACvD,WAAW,SAAS,0BAA0B,8BAA8B,KAC5E;AAAA;AAIG,SAAS,iBAAiB,CAAC,SAAgC;AAAA,EAChE,OACE,WAAW,SAAS,4BAA4B,KAChD,WAAW,SAAS,mBAAmB,uBAAuB,KAC9D;AAAA;AAIG,SAAS,sBAAsB,CAAC,SAAgC;AAAA,EACrE,MAAM,UACJ,WAAW,SAAS,iCAAiC,KACrD,WAAW,SAAS,sBAAsB;AAAA,EAC5C,OAAO,UAAU,SAAS,SAAS,EAAE,IAAI;AAAA;AAGpC,SAAS,uBAAuB,CAAC,SAAiC;AAAA,EACvE,MAAM,UAAU,WAAW,SAAS,kCAAkC,OAAO;AAAA,EAC7E,OAAO,SAAS,YAAY,MAAM;AAAA;;;AD5FnC,WAAuC,wBAAwB;AAEzD,SAAS,oBAAoB,CAClC,SACA,SACM;AAAA,GACL,YAAY;AAAA,IACX,IAAI;AAAA,MACF,MAAM,YACJ,OAAO,eAAe,eAAgB,WAAuC;AAAA,MAC/E,IAAI,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MAEA,IAAI,CAAC,UAAU,OAAO,GAAG;AAAA,QACvB,OAAO,KACL,yFACF;AAAA,QACA;AAAA,MACF;AAAA,MAEA,MAAM,UAAU,WAAW,OAAO;AAAA,MAClC,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB;AAAA,QAChD,SAAS,EAAE,eAAe,UAAU,UAAU,OAAO,IAAI;AAAA,MAC3D,CAAC;AAAA,MAED,IAAI,CAAC,SAAS,IAAI;AAAA,QAChB,OAAO,KAAK,yCAAyC,SAAS,YAAY;AAAA,MAC5E,EAAO;AAAA,QACL,OAAO,IAAI,2CAA2C;AAAA;AAAA,MAExD,OAAO,OAAgB;AAAA,MACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACrE,OAAO,KAAK,wCAAwC,SAAS;AAAA;AAAA,KAE9D;AAAA;;;AErCL,mBAAS;;;ACAT,mBAAS;AAUF,SAAS,mBAAmB,CACjC,UACA,WACA,QACA,OACM;AAAA,EACN,MAAM,cAAc,MAAM,eAAe,MAAM,gBAAgB;AAAA,EAC/D,MAAM,eAAe,MAAM,gBAAgB,MAAM,oBAAoB;AAAA,EACrE,MAAM,cAAc,MAAM,eAAe,cAAc;AAAA,EAEvD,QAAO,MAAM;AAAA,IACX,OAAO;AAAA,IACP;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,OAAO,UAAU,GAAG,GAAG;AAAA,IAC/B,OAAO;AAAA,MACL,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,WAAW,KAAK,IAAI;AAAA,EACtB,CAAC;AAAA;;;AD1BH,eAAsB,mBAAmB,CACvC,SACA,QACmB;AAAA,EACnB,MAAM,qBAAqB,kBAAkB,OAAO;AAAA,EACpD,MAAM,qBAAqB,OAAO,SAChC,WAAW,SAAS,iCAAiC,KACnD,WAAW,SAAS,sBAAsB,KAC1C,QACF,EACF;AAAA,EAEA,IAAI,CAAC,OAAO,OAAO,WAAW,EAAE,SAAS,kBAAkB,GAAG;AAAA,IAC5D,MAAM,WAAW,gCAAgC,uCAAuC,OAAO,OAAO,WAAW,EAAE,KAAK,IAAI;AAAA,IAC5H,QAAO,MAAM,QAAQ;AAAA,IACrB,MAAM,IAAI,MAAM,QAAQ;AAAA,EAC1B;AAAA,EAEA,IAAI,WAAW,MAAM;AAAA,IACnB,MAAM,aAAa,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACnD,WAAW,KAAK;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI,OAAO,WAAW,UAAU;AAAA,IAC9B,OAAO;AAAA,EACT,EAAO,SAAI,OAAO,WAAW,YAAY,OAAO,MAAM;AAAA,IACpD,OAAO,OAAO;AAAA,EAChB,EAAO;AAAA,IACL,MAAM,WAAW;AAAA,IACjB,QAAO,KAAK,QAAQ;AAAA,IACpB,MAAM,iBAAiB,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACvD,eAAe,KAAK;AAAA,IACpB,OAAO;AAAA;AAAA,EAGT,IAAI,CAAC,KAAK,KAAK,GAAG;AAAA,IAChB,MAAM,WAAW;AAAA,IACjB,QAAO,KAAK,QAAQ;AAAA,IACpB,MAAM,iBAAiB,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACvD,eAAe,KAAK;AAAA,IACpB,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,WAAW,OAAQ;AAAA,EACzB,IAAI,KAAK,SAAS,UAAU;AAAA,IAC1B,QAAO,KACL,2CAA2C,KAAK,KAAK,KAAK,SAAS,CAAC,uCACtE;AAAA,IACA,OAAO,KAAK,MAAM,GAAG,QAAQ;AAAA,EAC/B;AAAA,EAEA,MAAM,SAAS,UAAU,OAAO;AAAA,EAChC,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,WAAW;AAAA,IACjB,QAAO,MAAM,QAAQ;AAAA,IACrB,MAAM,IAAI,MAAM,QAAQ;AAAA,EAC1B;AAAA,EAEA,MAAM,UAAU,WAAW,OAAO;AAAA,EAElC,IAAI;AAAA,IACF,MAAM,WAAW,MAAM,MAAM,GAAG,sBAAsB;AAAA,MACpD,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,eAAe,UAAU;AAAA,QACzB,gBAAgB;AAAA,QAChB,gBAAgB,WAAW,SAAS,yBAAyB,KAAK;AAAA,QAClE,WAAW,WAAW,SAAS,oBAAoB,KAAK;AAAA,MAC1D;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB,OAAO;AAAA,QACP,OAAO;AAAA,MACT,CAAC;AAAA,IACH,CAAC;AAAA,IAED,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,QAAO,MAAM,yBAAyB,SAAS,YAAY,SAAS,YAAY;AAAA,MAChF,MAAM,IAAI,MAAM,yBAAyB,SAAS,YAAY,SAAS,YAAY;AAAA,IACrF;AAAA,IAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,IAKlC,IAAI,CAAC,MAAM,OAAO,IAAI,WAAW;AAAA,MAC/B,QAAO,MAAM,gCAAgC;AAAA,MAC7C,MAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAAA,IAEA,MAAM,YAAY,KAAK,KAAK,GAAG;AAAA,IAE/B,IAAI,CAAC,MAAM,QAAQ,SAAS,KAAK,UAAU,WAAW,oBAAoB;AAAA,MACxE,MAAM,WAAW,oBAAoB,WAAW,UAAU,yCAAyC;AAAA,MACnG,QAAO,MAAM,QAAQ;AAAA,MACrB,MAAM,iBAAiB,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,MACvD,eAAe,KAAK;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IAEA,IAAI,KAAK,OAAO;AAAA,MACd,MAAM,QAAQ;AAAA,QACZ,aAAa,KAAK,MAAM;AAAA,QACxB,cAAc;AAAA,QACd,aAAa,KAAK,MAAM;AAAA,MAC1B;AAAA,MAEA,oBAAoB,SAAS,UAAU,gBAAgB,MAAM,KAAK;AAAA,IACpE;AAAA,IAEA,OAAO;AAAA,IACP,OAAO,OAAgB;AAAA,IACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,QAAO,MAAM,+BAA+B,SAAS;AAAA,IACrD,MAAM,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO;AAAA;AAAA;;;AE1H5D,mBAAS,sBAAQ;AACjB;;;ACDA;AAGO,SAAS,wBAAwB,CAAC,SAAwB;AAAA,EAC/D,MAAM,SAAS,UAAU,OAAO;AAAA,EAChC,MAAM,YACJ,OAAO,eAAe,eAAgB,WAAuC;AAAA,EAC/E,MAAM,UAAU,WAAW,OAAO;AAAA,EAElC,OAAO,iBAAiB;AAAA,IACtB,QAAQ,YAAY,YAAY;AAAA,IAChC;AAAA,EACF,CAAC;AAAA;;ADLH,eAAsB,sBAAsB,CAC1C,SACA,QACiB;AAAA,EACjB,MAAM,aAAa,yBAAyB,OAAO;AAAA,EACnD,MAAM,YAAY,cAAc,OAAO;AAAA,EAEvC,MAAM,WAAW,OAAO,WAAW,WAAW,SAAS,OAAO;AAAA,EAC9D,MAAM,SACJ,OAAO,WAAW,WAAW,wBAAwB,OAAO,UAAU;AAAA,EAExE,IAAI;AAAA,IACF,MAAM,iBAAiB;AAAA,MACrB,OAAO,WAAW,KAAK,SAAS;AAAA,MAChC,UAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,SAAS;AAAA,YACP,EAAE,MAAM,QAAiB,MAAM,OAAO;AAAA,YACtC,EAAE,MAAM,SAAkB,OAAO,SAAS;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,WAAW,MAAM,aAAa,cAAc;AAAA,IAElD,IAAI,SAAS,OAAO;AAAA,MAClB,oBAAoB,SAAS,WAAU,mBAAmB,QAAQ,SAAS,KAAK;AAAA,IAClF;AAAA,IAEA,OAAO,SAAS;AAAA,IAChB,OAAO,OAAgB;AAAA,IACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,QAAO,MAAM,2BAA2B,SAAS;AAAA,IACjD,MAAM,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO;AAAA;AAAA;AAI5D,eAAsB,qBAAqB,CACzC,SACA,QACiD;AAAA,EACjD,MAAM,aAAa,yBAAyB,OAAO;AAAA,EACnD,MAAM,YAAY,wBAAwB,OAAO;AAAA,EAEjD,IAAI;AAAA,IACF,MAAM,iBAAiB;AAAA,MACrB,OAAO,WAAW,KAAK,SAAS;AAAA,MAChC,QAAQ,sBAAsB,OAAO;AAAA,IACvC;AAAA,IAEA,MAAM,WAAW,MAAM,aAAa,cAAc;AAAA,IAElD,IAAI,SAAS,OAAO;AAAA,MAClB,oBAAoB,SAAS,WAAU,OAAO,OAAO,QAAQ,SAAS,KAAK;AAAA,IAC7E;AAAA,IAEA,OAAO;AAAA,MACL,UAAU,SAAS;AAAA,MACnB,SAAS,OAAO;AAAA,IAClB;AAAA,IACA,OAAO,OAAgB;AAAA,IACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,QAAO,MAAM,2BAA2B,SAAS;AAAA,IACjD,MAAM,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO;AAAA;AAAA;;;AEzE5D;AAAA,eAGE;AAAA;AAGF;;;ACNA,mBAAyB;AAWlB,SAAS,2BAA2B,CAAC,OAA2C;AAAA,EACrF,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,EACrE,QAAO,MAAM,4BAA4B,SAAS;AAAA,EAClD,OAAO,EAAE,OAAO,QAAQ;AAAA;;;ADA1B,eAAe,uBAAuB,CACpC,SACA,WACA,QACoC;AAAA,EACpC,MAAM,aAAa,yBAAyB,OAAO;AAAA,EACnD,MAAM,YACJ,cAAc,WAAU,eAAe,cAAc,OAAO,IAAI,cAAc,OAAO;AAAA,EAEvF,MAAM,cAAc,OAAO,eAAe;AAAA,EAE1C,IAAI;AAAA,IACF,MAAM,QAAQ,WAAW,KAAK,SAAS;AAAA,IACvC,QAAQ,QAAQ,UAAU,OAAO,SAC7B,MAAM,eAAe;AAAA,MACnB;AAAA,MACA,QAAQ,WAAW,OAAO,MAAqB;AAAA,MAC/C,QAAQ;AAAA,MACR,QAAQ,OAAO;AAAA,MACf;AAAA,IACF,CAAC,IACD,MAAM,eAAe;AAAA,MACnB;AAAA,MACA,QAAQ;AAAA,MACR,QAAQ,OAAO;AAAA,MACf;AAAA,IACF,CAAC;AAAA,IAEL,IAAI,OAAO;AAAA,MACT,oBAAoB,SAAS,WAAW,OAAO,QAAQ,KAAK;AAAA,IAC9D;AAAA,IACA,OAAO;AAAA,IACP,OAAO,OAAgB;AAAA,IACvB,OAAO,4BAA4B,KAAK;AAAA;AAAA;AAI5C,eAAsB,iBAAiB,CACrC,SACA,QACoC;AAAA,EACpC,OAAO,wBAAwB,SAAS,WAAU,cAAc,MAAM;AAAA;AAGxE,eAAsB,iBAAiB,CACrC,SACA,QACoC;AAAA,EACpC,OAAO,wBAAwB,SAAS,WAAU,cAAc,MAAM;AAAA;;;AE7DxE,sBAAS;AACT,yBAAS;AAMT,IAAM,4BAA4B,CAAC,WAAW,YAAY;AAC1D,IAAM,6BAA6B,CAAC,MAAM,MAAM,MAAM,SAAS,YAAY;AAE3E,SAAS,0BAA0B,CAAC,WAA4B;AAAA,EAC9D,MAAM,iBAAiB,UAAU,YAAY;AAAA,EAE7C,IAAI,0BAA0B,KAAK,CAAC,WAAW,eAAe,WAAW,MAAM,CAAC,GAAG;AAAA,IACjF,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,CAAC,2BAA2B,KAAK,CAAC,YAAY,eAAe,SAAS,OAAO,CAAC;AAAA;AAGvF,SAAS,mBAAmB,CAC1B,SACA,WACA,QACA;AAAA,EACA,QAAQ,WAAW;AAAA,EACnB,MAAM,gBAAgB;AAAA,EAItB,MAAM,oBAAoB,cAAc,mBAAmB,cAAc,aAAa;AAAA,EAEtF,MAAM,aAAa,yBAAyB,OAAO;AAAA,EACnD,MAAM,YACJ,cAAc,WAAU,aAAa,cAAc,OAAO,IAAI,cAAc,OAAO;AAAA,EACrF,MAAM,aAAa,cAAc,WAAU,aAAa,eAAe;AAAA,EACvE,MAAM,mBAAmB,2BAA2B,SAAS;AAAA,EAC7D,MAAM,gBACJ,MAAM,QAAQ,OAAO,aAAa,KAAK,OAAO,cAAc,SAAS,IACjE,OAAO,gBACP;AAAA,EACN,MAAM,cAAc,OAAO,eAAe;AAAA,EAC1C,MAAM,mBAAmB,OAAO,oBAAoB;AAAA,EACpD,MAAM,kBAAkB,OAAO,mBAAmB;AAAA,EAElD,MAAM,iBAAiB;AAAA,IACrB,OAAO,WAAW,KAAK,SAAS;AAAA,IAChC;AAAA,IACA,QAAQ,QAAQ,WAAW,UAAU;AAAA,OACjC,mBACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,SACI,gBAAgB,EAAE,cAAc,IAAI,CAAC;AAAA,IAC3C,IACA,CAAC;AAAA,IACL,iBAAiB;AAAA,EACnB;AAAA,EAEA,OAAO,EAAE,gBAAgB,WAAW,YAAY,OAAO;AAAA;AAKzD,SAAS,yBAAyB,CAChC,SACA,WACA,gBACA,QACA,aACkB;AAAA,EAClB,MAAM,eAAe,WAAW,cAAc;AAAA,EAE9C,OAAO;AAAA,IACL,YAAY,aAAa;AAAA,IACzB,MAAM,QAAQ,QAAQ,aAAa,IAAI;AAAA,IACvC,OAAO,QAAQ,QAAQ,aAAa,KAAK,EAAE,KAAK,CAAC,UAAU;AAAA,MACzD,IAAI,OAAO;AAAA,QACT,oBAAoB,SAAS,WAAW,QAAQ,KAAK;AAAA,QACrD,MAAM,cAAc,MAAM,eAAe;AAAA,QACzC,MAAM,eAAe,MAAM,gBAAgB;AAAA,QAC3C,OAAO;AAAA,UACL,cAAc;AAAA,UACd,kBAAkB;AAAA,UAClB,aAAa,cAAc;AAAA,QAC7B;AAAA,MACF;AAAA,MACA;AAAA,KACD;AAAA,IACD,cAAc,QAAQ,QAAQ,aAAa,YAAY;AAAA,EACzD;AAAA;AAGF,eAAe,qBAAqB,CAClC,SACA,WACA,QACoC;AAAA,EACpC;AAAA,IACE;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,MACE,oBAAoB,SAAS,WAAW,MAAM;AAAA,EAElD,IAAI,OAAO,QAAQ;AAAA,IACjB,OAAO,0BAA0B,SAAS,WAAW,gBAAgB,QAAQ,UAAU;AAAA,EACzF;AAAA,EAEA,MAAM,WAAW,MAAM,cAAa,cAAc;AAAA,EAElD,IAAI,SAAS,OAAO;AAAA,IAClB,oBAAoB,SAAS,WAAW,QAAQ,SAAS,KAAK;AAAA,EAChE;AAAA,EAEA,OAAO,SAAS;AAAA;AAGlB,eAAsB,eAAe,CACnC,SACA,QACoC;AAAA,EACpC,OAAO,sBAAsB,SAAS,WAAU,YAAY,MAAM;AAAA;AAGpE,eAAsB,eAAe,CACnC,SACA,QACoC;AAAA,EACpC,OAAO,sBAAsB,SAAS,WAAU,YAAY,MAAM;AAAA;;;AT9GpE,SAAS,aAAa,GAAmB;AAAA,EACvC,IAAI,OAAO,YAAY,eAAe,CAAC,QAAQ,KAAK;AAAA,IAClD,OAAO,CAAC;AAAA,EACV;AAAA,EACA,OAAO,QAAQ;AAAA;AAGjB,IAAM,MAAM,cAAc;AAEnB,IAAM,mBAA2B;AAAA,EACtC,MAAM;AAAA,EACN,aAAa;AAAA,EAEb,QAAQ;AAAA,IACN,oBAAoB,IAAI,sBAAsB;AAAA,IAC9C,qBAAqB,IAAI,uBAAuB;AAAA,IAChD,wBAAwB,IAAI,0BAA0B;AAAA,IACtD,wBAAwB,IAAI,0BAA0B;AAAA,IACtD,wBAAwB,IAAI,0BAA0B;AAAA,IACtD,mCAAmC,IAAI,qCAAqC;AAAA,IAC5E,4BAA4B,IAAI,8BAA8B;AAAA,IAC9D,iCAAiC,IAAI,mCAAmC;AAAA,IACxE,gCAAgC,IAAI,kCAAkC;AAAA,IACtE,aAAa,IAAI,eAAe;AAAA,IAChC,aAAa,IAAI,eAAe;AAAA,IAChC,aAAa,IAAI,eAAe;AAAA,IAChC,wBAAwB,IAAI,0BAA0B;AAAA,IACtD,iBAAiB,IAAI,mBAAmB;AAAA,IACxC,sBAAsB,IAAI,wBAAwB;AAAA,EACpD;AAAA,OAEM,KAAI,CAAC,QAAiC,SAAwB;AAAA,IAClE,qBAAqB,QAAQ,OAAO;AAAA;AAAA,EAGtC,QAAQ;AAAA,KACL,WAAU,aAAa,OAAO,SAAwB,WAA+B;AAAA,MACpF,OAAO,gBAAgB,SAAS,MAAM;AAAA;AAAA,KAGvC,WAAU,aAAa,OAAO,SAAwB,WAA+B;AAAA,MACpF,OAAO,gBAAgB,SAAS,MAAM;AAAA;AAAA,KAGvC,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,oBAAoB,OAC7B,SACA,WACG;AAAA,MACH,MAAM,cAAc,MAAM,uBAAuB,SAAS,MAAM;AAAA,MAChE,OAAO,EAAE,OAAO,IAAI,YAAY;AAAA;AAAA,KAGjC,WAAU,QAAQ,OAAO,SAAwB,WAAkC;AAAA,MAClF,MAAM,SAAS,MAAM,sBAAsB,SAAS,MAAM;AAAA,MAC1D,OAAO,CAAC,EAAE,KAAK,OAAO,SAAS,CAAC;AAAA;AAAA,KAGjC,WAAU,iBAAiB,OAC1B,SACA,WACG;AAAA,MACH,OAAO,oBAAoB,SAAS,MAAM;AAAA;AAAA,EAE9C;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,OAAO,MAAM,QAAQ,SAAS,WAAU,YAAY;AAAA,gBACxD,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,IAAI,KAAK,WAAW,GAAG;AAAA,gBACrB,MAAM,IAAI,MAAM,yBAAyB;AAAA,cAC3C;AAAA,cACA,QAAO,IAAI,EAAE,KAAK,GAAG,gCAAgC;AAAA,cACrD,OAAO,OAAgB;AAAA,cACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACrE,QAAO,MAAM,6BAA6B,SAAS;AAAA,cACnD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,OAAO,MAAM,QAAQ,SAAS,WAAU,YAAY;AAAA,gBACxD,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,IAAI,KAAK,WAAW,GAAG;AAAA,gBACrB,MAAM,IAAI,MAAM,yBAAyB;AAAA,cAC3C;AAAA,cACA,QAAO,IAAI,EAAE,KAAK,GAAG,gCAAgC;AAAA,cACrD,OAAO,OAAgB;AAAA,cACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACrE,QAAO,MAAM,6BAA6B,SAAS;AAAA,cACnD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,SAAS,MAAM,QAAQ,SAAS,WAAU,cAAc;AAAA,gBAC5D,QAAQ;AAAA,gBACR,QAAQ,EAAE,MAAM,SAAS;AAAA,cAC3B,CAAC;AAAA,cACD,QAAO,IAAI,EAAE,OAAO,GAAG,yCAAyC;AAAA,cAChE,IAAI,CAAC,UAAW,OAAO,WAAW,YAAY,WAAW,QAAS;AAAA,gBAChE,MAAM,IAAI,MAAM,2BAA2B;AAAA,cAC7C;AAAA,cACA,OAAO,OAAgB;AAAA,cACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACrE,QAAO,MAAM,+BAA+B,SAAS;AAAA,cACrD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,YAAY,MAAM,QAAQ,SAAS,WAAU,gBAAgB;AAAA,gBACjE,MAAM;AAAA,cACR,CAAC;AAAA,cACD,QAAO,IAAI,EAAE,UAAU,GAAG,WAAW;AAAA,cACrC,OAAO,OAAgB;AAAA,cACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACrE,QAAO,MAAM,iCAAiC,SAAS;AAAA,cACvD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
17
+ "debugId": "71FE91EA418BB3EF64756E2164756E21",
18
18
  "names": []
19
19
  }
@@ -166,7 +166,6 @@ function emitModelUsageEvent(_runtime, modelType, prompt, usage) {
166
166
  }
167
167
 
168
168
  // models/embedding.ts
169
- var MAX_EMBEDDING_TOKENS = 8000;
170
169
  async function handleTextEmbedding(runtime, params) {
171
170
  const embeddingModelName = getEmbeddingModel(runtime);
172
171
  const embeddingDimension = Number.parseInt(getSetting(runtime, "OPENROUTER_EMBEDDING_DIMENSIONS") ?? getSetting(runtime, "EMBEDDING_DIMENSIONS") ?? "1536", 10);
@@ -199,9 +198,9 @@ async function handleTextEmbedding(runtime, params) {
199
198
  fallbackVector[0] = 0.3;
200
199
  return fallbackVector;
201
200
  }
202
- const maxChars = MAX_EMBEDDING_TOKENS * 4;
201
+ const maxChars = 8000 * 4;
203
202
  if (text.length > maxChars) {
204
- import_core3.logger.warn(`[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`);
203
+ import_core3.logger.warn(`[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`);
205
204
  text = text.slice(0, maxChars);
206
205
  }
207
206
  const apiKey = getApiKey(runtime);
@@ -344,16 +343,19 @@ async function generateObjectWithModel(runtime, modelType, params) {
344
343
  const modelName = modelType === import_core6.ModelType.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);
345
344
  const temperature = params.temperature ?? 0.7;
346
345
  try {
347
- const generateParams = {
348
- model: openrouter.chat(modelName),
349
- ...params.schema && {
350
- schema: import_ai2.jsonSchema(params.schema)
351
- },
352
- output: params.schema ? "object" : "no-schema",
346
+ const model = openrouter.chat(modelName);
347
+ const { object, usage } = params.schema ? await import_ai2.generateObject({
348
+ model,
349
+ schema: import_ai2.jsonSchema(params.schema),
350
+ output: "object",
353
351
  prompt: params.prompt,
354
352
  temperature
355
- };
356
- const { object, usage } = await import_ai2.generateObject(generateParams);
353
+ }) : await import_ai2.generateObject({
354
+ model,
355
+ output: "no-schema",
356
+ prompt: params.prompt,
357
+ temperature
358
+ });
357
359
  if (usage) {
358
360
  emitModelUsageEvent(runtime, modelType, params.prompt, usage);
359
361
  }
@@ -372,24 +374,37 @@ async function handleObjectLarge(runtime, params) {
372
374
  // models/text.ts
373
375
  var import_core7 = require("@elizaos/core");
374
376
  var import_ai3 = require("ai");
377
+ var RESPONSES_ROUTED_PREFIXES = ["openai/", "anthropic/"];
378
+ var NO_SAMPLING_MODEL_PATTERNS = ["o1", "o3", "o4", "gpt-5", "gpt-5-mini"];
379
+ function supportsSamplingParameters(modelName) {
380
+ const lowerModelName = modelName.toLowerCase();
381
+ if (RESPONSES_ROUTED_PREFIXES.some((prefix) => lowerModelName.startsWith(prefix))) {
382
+ return false;
383
+ }
384
+ return !NO_SAMPLING_MODEL_PATTERNS.some((pattern) => lowerModelName.includes(pattern));
385
+ }
375
386
  function buildGenerateParams(runtime, modelType, params) {
376
- const { prompt, stopSequences = [] } = params;
377
- const temperature = params.temperature ?? 0.7;
378
- const frequencyPenalty = params.frequencyPenalty ?? 0.7;
379
- const presencePenalty = params.presencePenalty ?? 0.7;
387
+ const { prompt } = params;
380
388
  const paramsWithMax = params;
381
389
  const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;
382
390
  const openrouter = createOpenRouterProvider(runtime);
383
391
  const modelName = modelType === import_core7.ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);
384
392
  const modelLabel = modelType === import_core7.ModelType.TEXT_SMALL ? "TEXT_SMALL" : "TEXT_LARGE";
393
+ const supportsSampling = supportsSamplingParameters(modelName);
394
+ const stopSequences = Array.isArray(params.stopSequences) && params.stopSequences.length > 0 ? params.stopSequences : undefined;
395
+ const temperature = params.temperature ?? 0.7;
396
+ const frequencyPenalty = params.frequencyPenalty ?? 0.7;
397
+ const presencePenalty = params.presencePenalty ?? 0.7;
385
398
  const generateParams = {
386
399
  model: openrouter.chat(modelName),
387
400
  prompt,
388
401
  system: runtime.character?.system ?? undefined,
389
- temperature,
390
- frequencyPenalty,
391
- presencePenalty,
392
- stopSequences,
402
+ ...supportsSampling ? {
403
+ temperature,
404
+ frequencyPenalty,
405
+ presencePenalty,
406
+ ...stopSequences ? { stopSequences } : {}
407
+ } : {},
393
408
  maxOutputTokens: resolvedMaxOutput
394
409
  };
395
410
  return { generateParams, modelName, modelLabel, prompt };
@@ -573,5 +588,5 @@ var openrouterPlugin = {
573
588
  ]
574
589
  };
575
590
 
576
- //# debugId=55FA2FB90BFA979E64756E2164756E21
591
+ //# debugId=FFBB525AD797F5DB64756E2164756E21
577
592
  //# sourceMappingURL=index.node.cjs.map
@@ -5,15 +5,15 @@
5
5
  "import {\n type GenerateTextParams,\n type IAgentRuntime,\n type ImageDescriptionParams,\n type ImageGenerationParams,\n type JsonValue,\n logger,\n ModelType,\n type ObjectGenerationParams,\n type Plugin,\n type TextEmbeddingParams,\n} from \"@elizaos/core\";\n\nimport { initializeOpenRouter } from \"./init\";\nimport { handleTextEmbedding } from \"./models/embedding\";\nimport { handleImageDescription, handleImageGeneration } from \"./models/image\";\nimport { handleObjectLarge, handleObjectSmall } from \"./models/object\";\nimport { handleTextLarge, handleTextSmall } from \"./models/text\";\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction getProcessEnv(): ProcessEnvLike {\n if (typeof process === \"undefined\" || !process.env) {\n return {};\n }\n return process.env as ProcessEnvLike;\n}\n\nconst env = getProcessEnv();\n\nexport const openrouterPlugin: Plugin = {\n name: \"openrouter\",\n description: \"OpenRouter multi-model AI gateway plugin\",\n\n config: {\n OPENROUTER_API_KEY: env.OPENROUTER_API_KEY ?? null,\n OPENROUTER_BASE_URL: env.OPENROUTER_BASE_URL ?? null,\n OPENROUTER_SMALL_MODEL: env.OPENROUTER_SMALL_MODEL ?? null,\n OPENROUTER_LARGE_MODEL: env.OPENROUTER_LARGE_MODEL ?? null,\n OPENROUTER_IMAGE_MODEL: env.OPENROUTER_IMAGE_MODEL ?? null,\n OPENROUTER_IMAGE_GENERATION_MODEL: env.OPENROUTER_IMAGE_GENERATION_MODEL ?? null,\n OPENROUTER_EMBEDDING_MODEL: env.OPENROUTER_EMBEDDING_MODEL ?? null,\n OPENROUTER_EMBEDDING_DIMENSIONS: env.OPENROUTER_EMBEDDING_DIMENSIONS ?? null,\n OPENROUTER_AUTO_CLEANUP_IMAGES: env.OPENROUTER_AUTO_CLEANUP_IMAGES ?? null,\n SMALL_MODEL: env.SMALL_MODEL ?? null,\n LARGE_MODEL: env.LARGE_MODEL ?? null,\n IMAGE_MODEL: env.IMAGE_MODEL ?? null,\n IMAGE_GENERATION_MODEL: env.IMAGE_GENERATION_MODEL ?? null,\n EMBEDDING_MODEL: env.EMBEDDING_MODEL ?? null,\n EMBEDDING_DIMENSIONS: env.EMBEDDING_DIMENSIONS ?? null,\n },\n\n async init(config: Record<string, unknown>, runtime: IAgentRuntime) {\n initializeOpenRouter(config, runtime);\n },\n\n models: {\n [ModelType.TEXT_SMALL]: async (runtime: IAgentRuntime, params: GenerateTextParams) => {\n return handleTextSmall(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (runtime: IAgentRuntime, params: GenerateTextParams) => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectLarge(runtime, params);\n },\n\n [ModelType.IMAGE_DESCRIPTION]: async (\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n ) => {\n const description = await handleImageDescription(runtime, params);\n return { title: \"\", description };\n },\n\n [ModelType.IMAGE]: async (runtime: IAgentRuntime, params: ImageGenerationParams) => {\n const result = await handleImageGeneration(runtime, params);\n return [{ url: result.imageUrl }];\n },\n\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ) => {\n return handleTextEmbedding(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"openrouter_plugin_tests\",\n tests: [\n {\n name: \"openrouter_test_text_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_small\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_text_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_large\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_large: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_object_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const result = await runtime.useModel(ModelType.OBJECT_SMALL, {\n prompt: \"Create a simple JSON object with a message field saying hello\",\n schema: { type: \"object\" },\n });\n logger.log({ result }, \"Generated object with test_object_small\");\n if (!result || (typeof result === \"object\" && \"error\" in result)) {\n throw new Error(\"Failed to generate object\");\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_object_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_text_embedding\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: \"Hello, world!\",\n });\n logger.log({ embedding }, \"embedding\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_embedding: ${message}`);\n throw error;\n }\n },\n },\n ],\n },\n ],\n};\n",
6
6
  "import { type IAgentRuntime, logger } from \"@elizaos/core\";\nimport { getApiKey, getBaseURL } from \"./utils/config\";\n\n(globalThis as Record<string, unknown>).AI_SDK_LOG_WARNINGS ??= false;\n\nexport function initializeOpenRouter(\n _config: Record<string, unknown>,\n runtime: IAgentRuntime\n): void {\n (async () => {\n try {\n const isBrowser =\n typeof globalThis !== \"undefined\" && (globalThis as Record<string, unknown>).document;\n if (isBrowser) {\n return;\n }\n\n if (!getApiKey(runtime)) {\n logger.warn(\n \"OPENROUTER_API_KEY is not set in environment - OpenRouter functionality will be limited\"\n );\n return;\n }\n\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: { Authorization: `Bearer ${getApiKey(runtime)}` },\n });\n\n if (!response.ok) {\n logger.warn(`OpenRouter API key validation failed: ${response.statusText}`);\n } else {\n logger.log(\"OpenRouter API key validated successfully\");\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.warn(`Error validating OpenRouter API key: ${message}`);\n }\n })();\n}\n",
7
7
  "import type { IAgentRuntime } from \"@elizaos/core\";\n\nexport const DEFAULT_BASE_URL = \"https://openrouter.ai/api/v1\";\nexport const DEFAULT_SMALL_MODEL = \"google/gemini-2.0-flash-001\";\nexport const DEFAULT_LARGE_MODEL = \"google/gemini-2.5-flash\";\nexport const DEFAULT_IMAGE_MODEL = \"x-ai/grok-2-vision-1212\";\nexport const DEFAULT_IMAGE_GENERATION_MODEL = \"google/gemini-2.5-flash-image-preview\";\nexport const DEFAULT_EMBEDDING_MODEL = \"openai/text-embedding-3-small\";\nexport const DEFAULT_EMBEDDING_DIMENSIONS = 1536;\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}\n\nexport function getBaseURL(runtime: IAgentRuntime): string {\n const browserURL = getSetting(runtime, \"OPENROUTER_BROWSER_BASE_URL\");\n if (\n typeof globalThis !== \"undefined\" &&\n (globalThis as Record<string, unknown>).document &&\n browserURL\n ) {\n return browserURL;\n }\n return getSetting(runtime, \"OPENROUTER_BASE_URL\", DEFAULT_BASE_URL) || DEFAULT_BASE_URL;\n}\n\nexport function getApiKey(runtime: IAgentRuntime): string | undefined {\n return getSetting(runtime, \"OPENROUTER_API_KEY\");\n}\n\nexport function getSmallModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_SMALL_MODEL\") ??\n getSetting(runtime, \"SMALL_MODEL\", DEFAULT_SMALL_MODEL) ??\n DEFAULT_SMALL_MODEL\n );\n}\n\nexport function getLargeModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_LARGE_MODEL\") ??\n getSetting(runtime, \"LARGE_MODEL\", DEFAULT_LARGE_MODEL) ??\n DEFAULT_LARGE_MODEL\n );\n}\n\nexport function getImageModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_IMAGE_MODEL\") ??\n getSetting(runtime, \"IMAGE_MODEL\", DEFAULT_IMAGE_MODEL) ??\n DEFAULT_IMAGE_MODEL\n );\n}\n\nexport function getImageGenerationModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_IMAGE_GENERATION_MODEL\") ??\n getSetting(runtime, \"IMAGE_GENERATION_MODEL\", DEFAULT_IMAGE_GENERATION_MODEL) ??\n DEFAULT_IMAGE_GENERATION_MODEL\n );\n}\n\nexport function getEmbeddingModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_EMBEDDING_MODEL\") ??\n getSetting(runtime, \"EMBEDDING_MODEL\", DEFAULT_EMBEDDING_MODEL) ??\n DEFAULT_EMBEDDING_MODEL\n );\n}\n\nexport function getEmbeddingDimensions(runtime: IAgentRuntime): number {\n const setting =\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\");\n return setting ? parseInt(setting, 10) : DEFAULT_EMBEDDING_DIMENSIONS;\n}\n\nexport function shouldAutoCleanupImages(runtime: IAgentRuntime): boolean {\n const setting = getSetting(runtime, \"OPENROUTER_AUTO_CLEANUP_IMAGES\", \"false\");\n return setting?.toLowerCase() === \"true\";\n}\n",
8
- "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;\n\nimport { getApiKey, getBaseURL, getEmbeddingModel, getSetting } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModelName = getEmbeddingModel(runtime);\n const embeddingDimension = Number.parseInt(\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\") ??\n \"1536\",\n 10\n ) as (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\n if (!Object.values(VECTOR_DIMS).includes(embeddingDimension)) {\n const errorMsg = `Invalid embedding dimension: ${embeddingDimension}. Must be one of: ${Object.values(VECTOR_DIMS).join(\", \")}`;\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n if (params === null) {\n const testVector = Array(embeddingDimension).fill(0) as number[];\n testVector[0] = 0.1;\n return testVector;\n }\n\n let text: string;\n if (typeof params === \"string\") {\n text = params;\n } else if (typeof params === \"object\" && params.text) {\n text = params.text;\n } else {\n const errorMsg = \"Invalid input format for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.2;\n return fallbackVector;\n }\n\n if (!text.trim()) {\n const errorMsg = \"Empty text for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.3;\n return fallbackVector;\n }\n\n // Truncate to stay within embedding model token limits\n const maxChars = MAX_EMBEDDING_TOKENS * 4; // ~4 chars per token\n if (text.length > maxChars) {\n logger.warn(\n `[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`\n );\n text = text.slice(0, maxChars);\n }\n\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n const errorMsg = \"OPENROUTER_API_KEY is not set\";\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n const baseURL = getBaseURL(runtime);\n\n try {\n const response = await fetch(`${baseURL}/embeddings`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"HTTP-Referer\": getSetting(runtime, \"OPENROUTER_HTTP_REFERER\") || \"\",\n \"X-Title\": getSetting(runtime, \"OPENROUTER_X_TITLE\") || \"ElizaOS\",\n },\n body: JSON.stringify({\n model: embeddingModelName,\n input: text,\n }),\n });\n\n if (!response.ok) {\n logger.error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n throw new Error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data: [{ embedding: number[] }];\n usage?: { prompt_tokens: number; total_tokens: number };\n };\n\n if (!data?.data?.[0]?.embedding) {\n logger.error(\"API returned invalid structure\");\n throw new Error(\"API returned invalid structure\");\n }\n\n const embedding = data.data[0].embedding;\n\n if (!Array.isArray(embedding) || embedding.length !== embeddingDimension) {\n const errorMsg = `Embedding length ${embedding?.length ?? 0} does not match configured dimension ${embeddingDimension}`;\n logger.error(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.4;\n return fallbackVector;\n }\n\n if (data.usage) {\n const usage = {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: 0,\n totalTokens: data.usage.total_tokens,\n };\n\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, text, usage);\n }\n\n return embedding;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating embedding: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
8
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\n\nimport { getApiKey, getBaseURL, getEmbeddingModel, getSetting } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModelName = getEmbeddingModel(runtime);\n const embeddingDimension = Number.parseInt(\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\") ??\n \"1536\",\n 10\n ) as (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\n if (!Object.values(VECTOR_DIMS).includes(embeddingDimension)) {\n const errorMsg = `Invalid embedding dimension: ${embeddingDimension}. Must be one of: ${Object.values(VECTOR_DIMS).join(\", \")}`;\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n if (params === null) {\n const testVector = Array(embeddingDimension).fill(0) as number[];\n testVector[0] = 0.1;\n return testVector;\n }\n\n let text: string;\n if (typeof params === \"string\") {\n text = params;\n } else if (typeof params === \"object\" && params.text) {\n text = params.text;\n } else {\n const errorMsg = \"Invalid input format for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.2;\n return fallbackVector;\n }\n\n if (!text.trim()) {\n const errorMsg = \"Empty text for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.3;\n return fallbackVector;\n }\n\n // Truncate to stay within embedding model token limits (~4 chars per token)\n const maxChars = 8_000 * 4;\n if (text.length > maxChars) {\n logger.warn(\n `[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`\n );\n text = text.slice(0, maxChars);\n }\n\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n const errorMsg = \"OPENROUTER_API_KEY is not set\";\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n const baseURL = getBaseURL(runtime);\n\n try {\n const response = await fetch(`${baseURL}/embeddings`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"HTTP-Referer\": getSetting(runtime, \"OPENROUTER_HTTP_REFERER\") || \"\",\n \"X-Title\": getSetting(runtime, \"OPENROUTER_X_TITLE\") || \"ElizaOS\",\n },\n body: JSON.stringify({\n model: embeddingModelName,\n input: text,\n }),\n });\n\n if (!response.ok) {\n logger.error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n throw new Error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data: [{ embedding: number[] }];\n usage?: { prompt_tokens: number; total_tokens: number };\n };\n\n if (!data?.data?.[0]?.embedding) {\n logger.error(\"API returned invalid structure\");\n throw new Error(\"API returned invalid structure\");\n }\n\n const embedding = data.data[0].embedding;\n\n if (!Array.isArray(embedding) || embedding.length !== embeddingDimension) {\n const errorMsg = `Embedding length ${embedding?.length ?? 0} does not match configured dimension ${embeddingDimension}`;\n logger.error(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.4;\n return fallbackVector;\n }\n\n if (data.usage) {\n const usage = {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: 0,\n totalTokens: data.usage.total_tokens,\n };\n\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, text, usage);\n }\n\n return embedding;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating embedding: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
9
9
  "import type { IAgentRuntime, ModelType } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\ninterface AIUsage {\n inputTokens?: number;\n outputTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n}\n\nexport function emitModelUsageEvent(\n _runtime: IAgentRuntime,\n modelType: (typeof ModelType)[keyof typeof ModelType],\n prompt: string,\n usage: AIUsage\n): void {\n const inputTokens = usage.inputTokens ?? usage.promptTokens ?? 0;\n const outputTokens = usage.outputTokens ?? usage.completionTokens ?? 0;\n const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;\n\n logger.debug({\n event: \"model:usage\",\n modelType,\n provider: \"openrouter\",\n prompt: prompt.substring(0, 100),\n usage: {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens,\n },\n timestamp: Date.now(),\n });\n}\n",
10
10
  "import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getImageGenerationModel, getImageModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n): Promise<string> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName = getImageModel(runtime);\n\n const imageUrl = typeof params === \"string\" ? params : params.imageUrl;\n const prompt =\n typeof params === \"string\" ? \"Describe this image\" : params.prompt || \"Describe this image\";\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n messages: [\n {\n role: \"user\" as const,\n content: [\n { type: \"text\" as const, text: prompt },\n { type: \"image\" as const, image: imageUrl },\n ],\n },\n ],\n };\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, ModelType.IMAGE_DESCRIPTION, prompt, response.usage);\n }\n\n return response.text;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error describing image: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n): Promise<{ imageUrl: string; caption?: string }> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName = getImageGenerationModel(runtime);\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: `Generate an image: ${params.prompt}`,\n };\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, ModelType.IMAGE, params.prompt, response.usage);\n }\n\n return {\n imageUrl: response.text,\n caption: params.prompt,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating image: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
11
11
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { createOpenRouter } from \"@openrouter/ai-sdk-provider\";\nimport { getApiKey, getBaseURL } from \"../utils/config\";\n\nexport function createOpenRouterProvider(runtime: IAgentRuntime) {\n const apiKey = getApiKey(runtime);\n const isBrowser =\n typeof globalThis !== \"undefined\" && (globalThis as Record<string, unknown>).document;\n const baseURL = getBaseURL(runtime);\n\n return createOpenRouter({\n apiKey: isBrowser ? undefined : apiKey,\n baseURL,\n });\n}\n",
12
- "import {\n type IAgentRuntime,\n type JsonValue,\n ModelType,\n type ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { generateObject, jsonSchema, type LanguageModel } from \"ai\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { handleObjectGenerationError } from \"../utils/helpers\";\n\nasync function generateObjectWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.OBJECT_SMALL | typeof ModelType.OBJECT_LARGE,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n\n const temperature = params.temperature ?? 0.7;\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n ...(params.schema && {\n schema: jsonSchema(params.schema as JSONSchema7),\n }),\n output: params.schema ? \"object\" : \"no-schema\",\n prompt: params.prompt,\n temperature: temperature,\n };\n\n const { object, usage } = await generateObject(generateParams);\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n return object as Record<string, JsonValue>;\n } catch (error: unknown) {\n return handleObjectGenerationError(error);\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_SMALL, params);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_LARGE, params);\n}\n",
12
+ "import {\n type IAgentRuntime,\n type JsonValue,\n ModelType,\n type ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { generateObject, jsonSchema, type LanguageModel } from \"ai\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { handleObjectGenerationError } from \"../utils/helpers\";\n\nasync function generateObjectWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.OBJECT_SMALL | typeof ModelType.OBJECT_LARGE,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n\n const temperature = params.temperature ?? 0.7;\n\n try {\n const model = openrouter.chat(modelName) as LanguageModel;\n const { object, usage } = params.schema\n ? await generateObject({\n model,\n schema: jsonSchema(params.schema as JSONSchema7),\n output: \"object\",\n prompt: params.prompt,\n temperature,\n })\n : await generateObject({\n model,\n output: \"no-schema\",\n prompt: params.prompt,\n temperature,\n });\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n return object as Record<string, JsonValue>;\n } catch (error: unknown) {\n return handleObjectGenerationError(error);\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_SMALL, params);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_LARGE, params);\n}\n",
13
13
  "import { type JsonValue, logger } from \"@elizaos/core\";\n\nexport function getJsonRepairFunction(): ((text: string) => string) | undefined {\n try {\n const { jsonrepair } = require(\"jsonrepair\");\n return jsonrepair;\n } catch {\n return undefined;\n }\n}\n\nexport function handleObjectGenerationError(error: unknown): Record<string, JsonValue> {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating object: ${message}`);\n return { error: message };\n}\n\nexport function extractJsonFromText(text: string): Record<string, JsonValue> {\n try {\n return JSON.parse(text) as Record<string, JsonValue>;\n } catch {}\n\n const jsonBlockMatch = text.match(/```json\\s*([\\s\\S]*?)\\s*```/);\n if (jsonBlockMatch?.[1]) {\n try {\n return JSON.parse(jsonBlockMatch[1].trim()) as Record<string, JsonValue>;\n } catch {}\n }\n\n const codeBlockMatch = text.match(/```\\w*\\s*([\\s\\S]*?)\\s*```/);\n if (codeBlockMatch?.[1]) {\n const content = codeBlockMatch[1].trim();\n if (content.startsWith(\"{\") && content.endsWith(\"}\")) {\n try {\n return JSON.parse(content) as Record<string, JsonValue>;\n } catch {}\n }\n }\n\n const jsonMatch = text.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch?.[0]) {\n try {\n return JSON.parse(jsonMatch[0]) as Record<string, JsonValue>;\n } catch {}\n }\n\n return {};\n}\n",
14
- "import type { GenerateTextParams, IAgentRuntime, TextStreamResult } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel, streamText } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nfunction buildGenerateParams(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n) {\n const { prompt, stopSequences = [] } = params;\n const temperature = params.temperature ?? 0.7;\n const frequencyPenalty = params.frequencyPenalty ?? 0.7;\n const presencePenalty = params.presencePenalty ?? 0.7;\n const paramsWithMax = params as GenerateTextParams & {\n maxOutputTokens?: number;\n maxTokens?: number;\n };\n const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;\n\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n const modelLabel = modelType === ModelType.TEXT_SMALL ? \"TEXT_SMALL\" : \"TEXT_LARGE\";\n\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: prompt,\n system: runtime.character?.system ?? undefined,\n temperature: temperature,\n frequencyPenalty: frequencyPenalty,\n presencePenalty: presencePenalty,\n stopSequences: stopSequences,\n maxOutputTokens: resolvedMaxOutput,\n };\n\n return { generateParams, modelName, modelLabel, prompt };\n}\n\ntype GenerateParams = ReturnType<typeof buildGenerateParams>[\"generateParams\"];\n\nfunction handleStreamingGeneration(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n generateParams: GenerateParams,\n prompt: string,\n _modelLabel: string\n): TextStreamResult {\n const streamResult = streamText(generateParams);\n\n return {\n textStream: streamResult.textStream,\n text: Promise.resolve(streamResult.text),\n usage: Promise.resolve(streamResult.usage).then((usage) => {\n if (usage) {\n emitModelUsageEvent(runtime, modelType, prompt, usage);\n const inputTokens = usage.inputTokens ?? 0;\n const outputTokens = usage.outputTokens ?? 0;\n return {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n };\n }\n return undefined;\n }),\n finishReason: Promise.resolve(streamResult.finishReason) as Promise<string | undefined>,\n };\n}\n\nasync function generateTextWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n const {\n generateParams,\n modelName: _modelName,\n modelLabel,\n prompt,\n } = buildGenerateParams(runtime, modelType, params);\n\n if (params.stream) {\n return handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel);\n }\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, modelType, prompt, response.usage);\n }\n\n return response.text;\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_SMALL, params);\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_LARGE, params);\n}\n"
14
+ "import type { GenerateTextParams, IAgentRuntime, TextStreamResult } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel, streamText } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nconst RESPONSES_ROUTED_PREFIXES = [\"openai/\", \"anthropic/\"] as const;\nconst NO_SAMPLING_MODEL_PATTERNS = [\"o1\", \"o3\", \"o4\", \"gpt-5\", \"gpt-5-mini\"] as const;\n\nfunction supportsSamplingParameters(modelName: string): boolean {\n const lowerModelName = modelName.toLowerCase();\n\n if (RESPONSES_ROUTED_PREFIXES.some((prefix) => lowerModelName.startsWith(prefix))) {\n return false;\n }\n\n return !NO_SAMPLING_MODEL_PATTERNS.some((pattern) => lowerModelName.includes(pattern));\n}\n\nfunction buildGenerateParams(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n) {\n const { prompt } = params;\n const paramsWithMax = params as GenerateTextParams & {\n maxOutputTokens?: number;\n maxTokens?: number;\n };\n const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;\n\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n const modelLabel = modelType === ModelType.TEXT_SMALL ? \"TEXT_SMALL\" : \"TEXT_LARGE\";\n const supportsSampling = supportsSamplingParameters(modelName);\n const stopSequences =\n Array.isArray(params.stopSequences) && params.stopSequences.length > 0\n ? params.stopSequences\n : undefined;\n const temperature = params.temperature ?? 0.7;\n const frequencyPenalty = params.frequencyPenalty ?? 0.7;\n const presencePenalty = params.presencePenalty ?? 0.7;\n\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: prompt,\n system: runtime.character?.system ?? undefined,\n ...(supportsSampling\n ? {\n temperature: temperature,\n frequencyPenalty: frequencyPenalty,\n presencePenalty: presencePenalty,\n ...(stopSequences ? { stopSequences } : {}),\n }\n : {}),\n maxOutputTokens: resolvedMaxOutput,\n };\n\n return { generateParams, modelName, modelLabel, prompt };\n}\n\ntype GenerateParams = ReturnType<typeof buildGenerateParams>[\"generateParams\"];\n\nfunction handleStreamingGeneration(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n generateParams: GenerateParams,\n prompt: string,\n _modelLabel: string\n): TextStreamResult {\n const streamResult = streamText(generateParams);\n\n return {\n textStream: streamResult.textStream,\n text: Promise.resolve(streamResult.text),\n usage: Promise.resolve(streamResult.usage).then((usage) => {\n if (usage) {\n emitModelUsageEvent(runtime, modelType, prompt, usage);\n const inputTokens = usage.inputTokens ?? 0;\n const outputTokens = usage.outputTokens ?? 0;\n return {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n };\n }\n return undefined;\n }),\n finishReason: Promise.resolve(streamResult.finishReason) as Promise<string | undefined>,\n };\n}\n\nasync function generateTextWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n const {\n generateParams,\n modelName: _modelName,\n modelLabel,\n prompt,\n } = buildGenerateParams(runtime, modelType, params);\n\n if (params.stream) {\n return handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel);\n }\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, modelType, prompt, response.usage);\n }\n\n return response.text;\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_SMALL, params);\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_LARGE, params);\n}\n"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "55FA2FB90BFA979E64756E2164756E21",
16
+ "mappings": "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",
17
+ "debugId": "FFBB525AD797F5DB64756E2164756E21",
18
18
  "names": []
19
19
  }
@@ -116,7 +116,6 @@ function emitModelUsageEvent(_runtime, modelType, prompt, usage) {
116
116
  }
117
117
 
118
118
  // models/embedding.ts
119
- var MAX_EMBEDDING_TOKENS = 8000;
120
119
  async function handleTextEmbedding(runtime, params) {
121
120
  const embeddingModelName = getEmbeddingModel(runtime);
122
121
  const embeddingDimension = Number.parseInt(getSetting(runtime, "OPENROUTER_EMBEDDING_DIMENSIONS") ?? getSetting(runtime, "EMBEDDING_DIMENSIONS") ?? "1536", 10);
@@ -149,9 +148,9 @@ async function handleTextEmbedding(runtime, params) {
149
148
  fallbackVector[0] = 0.3;
150
149
  return fallbackVector;
151
150
  }
152
- const maxChars = MAX_EMBEDDING_TOKENS * 4;
151
+ const maxChars = 8000 * 4;
153
152
  if (text.length > maxChars) {
154
- logger3.warn(`[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`);
153
+ logger3.warn(`[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`);
155
154
  text = text.slice(0, maxChars);
156
155
  }
157
156
  const apiKey = getApiKey(runtime);
@@ -296,16 +295,19 @@ async function generateObjectWithModel(runtime, modelType, params) {
296
295
  const modelName = modelType === ModelType3.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);
297
296
  const temperature = params.temperature ?? 0.7;
298
297
  try {
299
- const generateParams = {
300
- model: openrouter.chat(modelName),
301
- ...params.schema && {
302
- schema: jsonSchema(params.schema)
303
- },
304
- output: params.schema ? "object" : "no-schema",
298
+ const model = openrouter.chat(modelName);
299
+ const { object, usage } = params.schema ? await generateObject({
300
+ model,
301
+ schema: jsonSchema(params.schema),
302
+ output: "object",
305
303
  prompt: params.prompt,
306
304
  temperature
307
- };
308
- const { object, usage } = await generateObject(generateParams);
305
+ }) : await generateObject({
306
+ model,
307
+ output: "no-schema",
308
+ prompt: params.prompt,
309
+ temperature
310
+ });
309
311
  if (usage) {
310
312
  emitModelUsageEvent(runtime, modelType, params.prompt, usage);
311
313
  }
@@ -324,24 +326,37 @@ async function handleObjectLarge(runtime, params) {
324
326
  // models/text.ts
325
327
  import { ModelType as ModelType4 } from "@elizaos/core";
326
328
  import { generateText as generateText2, streamText } from "ai";
329
+ var RESPONSES_ROUTED_PREFIXES = ["openai/", "anthropic/"];
330
+ var NO_SAMPLING_MODEL_PATTERNS = ["o1", "o3", "o4", "gpt-5", "gpt-5-mini"];
331
+ function supportsSamplingParameters(modelName) {
332
+ const lowerModelName = modelName.toLowerCase();
333
+ if (RESPONSES_ROUTED_PREFIXES.some((prefix) => lowerModelName.startsWith(prefix))) {
334
+ return false;
335
+ }
336
+ return !NO_SAMPLING_MODEL_PATTERNS.some((pattern) => lowerModelName.includes(pattern));
337
+ }
327
338
  function buildGenerateParams(runtime, modelType, params) {
328
- const { prompt, stopSequences = [] } = params;
329
- const temperature = params.temperature ?? 0.7;
330
- const frequencyPenalty = params.frequencyPenalty ?? 0.7;
331
- const presencePenalty = params.presencePenalty ?? 0.7;
339
+ const { prompt } = params;
332
340
  const paramsWithMax = params;
333
341
  const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;
334
342
  const openrouter = createOpenRouterProvider(runtime);
335
343
  const modelName = modelType === ModelType4.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);
336
344
  const modelLabel = modelType === ModelType4.TEXT_SMALL ? "TEXT_SMALL" : "TEXT_LARGE";
345
+ const supportsSampling = supportsSamplingParameters(modelName);
346
+ const stopSequences = Array.isArray(params.stopSequences) && params.stopSequences.length > 0 ? params.stopSequences : undefined;
347
+ const temperature = params.temperature ?? 0.7;
348
+ const frequencyPenalty = params.frequencyPenalty ?? 0.7;
349
+ const presencePenalty = params.presencePenalty ?? 0.7;
337
350
  const generateParams = {
338
351
  model: openrouter.chat(modelName),
339
352
  prompt,
340
353
  system: runtime.character?.system ?? undefined,
341
- temperature,
342
- frequencyPenalty,
343
- presencePenalty,
344
- stopSequences,
354
+ ...supportsSampling ? {
355
+ temperature,
356
+ frequencyPenalty,
357
+ presencePenalty,
358
+ ...stopSequences ? { stopSequences } : {}
359
+ } : {},
345
360
  maxOutputTokens: resolvedMaxOutput
346
361
  };
347
362
  return { generateParams, modelName, modelLabel, prompt };
@@ -546,5 +561,5 @@ export {
546
561
  DEFAULT_BASE_URL
547
562
  };
548
563
 
549
- //# debugId=1FB2AF60FA732ED764756E2164756E21
564
+ //# debugId=332F2156B50672B464756E2164756E21
550
565
  //# sourceMappingURL=index.node.js.map
@@ -5,15 +5,15 @@
5
5
  "import {\n type GenerateTextParams,\n type IAgentRuntime,\n type ImageDescriptionParams,\n type ImageGenerationParams,\n type JsonValue,\n logger,\n ModelType,\n type ObjectGenerationParams,\n type Plugin,\n type TextEmbeddingParams,\n} from \"@elizaos/core\";\n\nimport { initializeOpenRouter } from \"./init\";\nimport { handleTextEmbedding } from \"./models/embedding\";\nimport { handleImageDescription, handleImageGeneration } from \"./models/image\";\nimport { handleObjectLarge, handleObjectSmall } from \"./models/object\";\nimport { handleTextLarge, handleTextSmall } from \"./models/text\";\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction getProcessEnv(): ProcessEnvLike {\n if (typeof process === \"undefined\" || !process.env) {\n return {};\n }\n return process.env as ProcessEnvLike;\n}\n\nconst env = getProcessEnv();\n\nexport const openrouterPlugin: Plugin = {\n name: \"openrouter\",\n description: \"OpenRouter multi-model AI gateway plugin\",\n\n config: {\n OPENROUTER_API_KEY: env.OPENROUTER_API_KEY ?? null,\n OPENROUTER_BASE_URL: env.OPENROUTER_BASE_URL ?? null,\n OPENROUTER_SMALL_MODEL: env.OPENROUTER_SMALL_MODEL ?? null,\n OPENROUTER_LARGE_MODEL: env.OPENROUTER_LARGE_MODEL ?? null,\n OPENROUTER_IMAGE_MODEL: env.OPENROUTER_IMAGE_MODEL ?? null,\n OPENROUTER_IMAGE_GENERATION_MODEL: env.OPENROUTER_IMAGE_GENERATION_MODEL ?? null,\n OPENROUTER_EMBEDDING_MODEL: env.OPENROUTER_EMBEDDING_MODEL ?? null,\n OPENROUTER_EMBEDDING_DIMENSIONS: env.OPENROUTER_EMBEDDING_DIMENSIONS ?? null,\n OPENROUTER_AUTO_CLEANUP_IMAGES: env.OPENROUTER_AUTO_CLEANUP_IMAGES ?? null,\n SMALL_MODEL: env.SMALL_MODEL ?? null,\n LARGE_MODEL: env.LARGE_MODEL ?? null,\n IMAGE_MODEL: env.IMAGE_MODEL ?? null,\n IMAGE_GENERATION_MODEL: env.IMAGE_GENERATION_MODEL ?? null,\n EMBEDDING_MODEL: env.EMBEDDING_MODEL ?? null,\n EMBEDDING_DIMENSIONS: env.EMBEDDING_DIMENSIONS ?? null,\n },\n\n async init(config: Record<string, unknown>, runtime: IAgentRuntime) {\n initializeOpenRouter(config, runtime);\n },\n\n models: {\n [ModelType.TEXT_SMALL]: async (runtime: IAgentRuntime, params: GenerateTextParams) => {\n return handleTextSmall(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (runtime: IAgentRuntime, params: GenerateTextParams) => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, JsonValue>> => {\n return handleObjectLarge(runtime, params);\n },\n\n [ModelType.IMAGE_DESCRIPTION]: async (\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n ) => {\n const description = await handleImageDescription(runtime, params);\n return { title: \"\", description };\n },\n\n [ModelType.IMAGE]: async (runtime: IAgentRuntime, params: ImageGenerationParams) => {\n const result = await handleImageGeneration(runtime, params);\n return [{ url: result.imageUrl }];\n },\n\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ) => {\n return handleTextEmbedding(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"openrouter_plugin_tests\",\n tests: [\n {\n name: \"openrouter_test_text_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_small\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_text_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_large\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_large: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_object_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const result = await runtime.useModel(ModelType.OBJECT_SMALL, {\n prompt: \"Create a simple JSON object with a message field saying hello\",\n schema: { type: \"object\" },\n });\n logger.log({ result }, \"Generated object with test_object_small\");\n if (!result || (typeof result === \"object\" && \"error\" in result)) {\n throw new Error(\"Failed to generate object\");\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_object_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"openrouter_test_text_embedding\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: \"Hello, world!\",\n });\n logger.log({ embedding }, \"embedding\");\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_embedding: ${message}`);\n throw error;\n }\n },\n },\n ],\n },\n ],\n};\n",
6
6
  "import { type IAgentRuntime, logger } from \"@elizaos/core\";\nimport { getApiKey, getBaseURL } from \"./utils/config\";\n\n(globalThis as Record<string, unknown>).AI_SDK_LOG_WARNINGS ??= false;\n\nexport function initializeOpenRouter(\n _config: Record<string, unknown>,\n runtime: IAgentRuntime\n): void {\n (async () => {\n try {\n const isBrowser =\n typeof globalThis !== \"undefined\" && (globalThis as Record<string, unknown>).document;\n if (isBrowser) {\n return;\n }\n\n if (!getApiKey(runtime)) {\n logger.warn(\n \"OPENROUTER_API_KEY is not set in environment - OpenRouter functionality will be limited\"\n );\n return;\n }\n\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: { Authorization: `Bearer ${getApiKey(runtime)}` },\n });\n\n if (!response.ok) {\n logger.warn(`OpenRouter API key validation failed: ${response.statusText}`);\n } else {\n logger.log(\"OpenRouter API key validated successfully\");\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.warn(`Error validating OpenRouter API key: ${message}`);\n }\n })();\n}\n",
7
7
  "import type { IAgentRuntime } from \"@elizaos/core\";\n\nexport const DEFAULT_BASE_URL = \"https://openrouter.ai/api/v1\";\nexport const DEFAULT_SMALL_MODEL = \"google/gemini-2.0-flash-001\";\nexport const DEFAULT_LARGE_MODEL = \"google/gemini-2.5-flash\";\nexport const DEFAULT_IMAGE_MODEL = \"x-ai/grok-2-vision-1212\";\nexport const DEFAULT_IMAGE_GENERATION_MODEL = \"google/gemini-2.5-flash-image-preview\";\nexport const DEFAULT_EMBEDDING_MODEL = \"openai/text-embedding-3-small\";\nexport const DEFAULT_EMBEDDING_DIMENSIONS = 1536;\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}\n\nexport function getBaseURL(runtime: IAgentRuntime): string {\n const browserURL = getSetting(runtime, \"OPENROUTER_BROWSER_BASE_URL\");\n if (\n typeof globalThis !== \"undefined\" &&\n (globalThis as Record<string, unknown>).document &&\n browserURL\n ) {\n return browserURL;\n }\n return getSetting(runtime, \"OPENROUTER_BASE_URL\", DEFAULT_BASE_URL) || DEFAULT_BASE_URL;\n}\n\nexport function getApiKey(runtime: IAgentRuntime): string | undefined {\n return getSetting(runtime, \"OPENROUTER_API_KEY\");\n}\n\nexport function getSmallModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_SMALL_MODEL\") ??\n getSetting(runtime, \"SMALL_MODEL\", DEFAULT_SMALL_MODEL) ??\n DEFAULT_SMALL_MODEL\n );\n}\n\nexport function getLargeModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_LARGE_MODEL\") ??\n getSetting(runtime, \"LARGE_MODEL\", DEFAULT_LARGE_MODEL) ??\n DEFAULT_LARGE_MODEL\n );\n}\n\nexport function getImageModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_IMAGE_MODEL\") ??\n getSetting(runtime, \"IMAGE_MODEL\", DEFAULT_IMAGE_MODEL) ??\n DEFAULT_IMAGE_MODEL\n );\n}\n\nexport function getImageGenerationModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_IMAGE_GENERATION_MODEL\") ??\n getSetting(runtime, \"IMAGE_GENERATION_MODEL\", DEFAULT_IMAGE_GENERATION_MODEL) ??\n DEFAULT_IMAGE_GENERATION_MODEL\n );\n}\n\nexport function getEmbeddingModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"OPENROUTER_EMBEDDING_MODEL\") ??\n getSetting(runtime, \"EMBEDDING_MODEL\", DEFAULT_EMBEDDING_MODEL) ??\n DEFAULT_EMBEDDING_MODEL\n );\n}\n\nexport function getEmbeddingDimensions(runtime: IAgentRuntime): number {\n const setting =\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\");\n return setting ? parseInt(setting, 10) : DEFAULT_EMBEDDING_DIMENSIONS;\n}\n\nexport function shouldAutoCleanupImages(runtime: IAgentRuntime): boolean {\n const setting = getSetting(runtime, \"OPENROUTER_AUTO_CLEANUP_IMAGES\", \"false\");\n return setting?.toLowerCase() === \"true\";\n}\n",
8
- "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;\n\nimport { getApiKey, getBaseURL, getEmbeddingModel, getSetting } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModelName = getEmbeddingModel(runtime);\n const embeddingDimension = Number.parseInt(\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\") ??\n \"1536\",\n 10\n ) as (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\n if (!Object.values(VECTOR_DIMS).includes(embeddingDimension)) {\n const errorMsg = `Invalid embedding dimension: ${embeddingDimension}. Must be one of: ${Object.values(VECTOR_DIMS).join(\", \")}`;\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n if (params === null) {\n const testVector = Array(embeddingDimension).fill(0) as number[];\n testVector[0] = 0.1;\n return testVector;\n }\n\n let text: string;\n if (typeof params === \"string\") {\n text = params;\n } else if (typeof params === \"object\" && params.text) {\n text = params.text;\n } else {\n const errorMsg = \"Invalid input format for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.2;\n return fallbackVector;\n }\n\n if (!text.trim()) {\n const errorMsg = \"Empty text for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.3;\n return fallbackVector;\n }\n\n // Truncate to stay within embedding model token limits\n const maxChars = MAX_EMBEDDING_TOKENS * 4; // ~4 chars per token\n if (text.length > maxChars) {\n logger.warn(\n `[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`\n );\n text = text.slice(0, maxChars);\n }\n\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n const errorMsg = \"OPENROUTER_API_KEY is not set\";\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n const baseURL = getBaseURL(runtime);\n\n try {\n const response = await fetch(`${baseURL}/embeddings`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"HTTP-Referer\": getSetting(runtime, \"OPENROUTER_HTTP_REFERER\") || \"\",\n \"X-Title\": getSetting(runtime, \"OPENROUTER_X_TITLE\") || \"ElizaOS\",\n },\n body: JSON.stringify({\n model: embeddingModelName,\n input: text,\n }),\n });\n\n if (!response.ok) {\n logger.error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n throw new Error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data: [{ embedding: number[] }];\n usage?: { prompt_tokens: number; total_tokens: number };\n };\n\n if (!data?.data?.[0]?.embedding) {\n logger.error(\"API returned invalid structure\");\n throw new Error(\"API returned invalid structure\");\n }\n\n const embedding = data.data[0].embedding;\n\n if (!Array.isArray(embedding) || embedding.length !== embeddingDimension) {\n const errorMsg = `Embedding length ${embedding?.length ?? 0} does not match configured dimension ${embeddingDimension}`;\n logger.error(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.4;\n return fallbackVector;\n }\n\n if (data.usage) {\n const usage = {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: 0,\n totalTokens: data.usage.total_tokens,\n };\n\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, text, usage);\n }\n\n return embedding;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating embedding: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
8
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\n\nimport { getApiKey, getBaseURL, getEmbeddingModel, getSetting } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n const embeddingModelName = getEmbeddingModel(runtime);\n const embeddingDimension = Number.parseInt(\n getSetting(runtime, \"OPENROUTER_EMBEDDING_DIMENSIONS\") ??\n getSetting(runtime, \"EMBEDDING_DIMENSIONS\") ??\n \"1536\",\n 10\n ) as (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\n if (!Object.values(VECTOR_DIMS).includes(embeddingDimension)) {\n const errorMsg = `Invalid embedding dimension: ${embeddingDimension}. Must be one of: ${Object.values(VECTOR_DIMS).join(\", \")}`;\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n if (params === null) {\n const testVector = Array(embeddingDimension).fill(0) as number[];\n testVector[0] = 0.1;\n return testVector;\n }\n\n let text: string;\n if (typeof params === \"string\") {\n text = params;\n } else if (typeof params === \"object\" && params.text) {\n text = params.text;\n } else {\n const errorMsg = \"Invalid input format for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.2;\n return fallbackVector;\n }\n\n if (!text.trim()) {\n const errorMsg = \"Empty text for embedding\";\n logger.warn(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.3;\n return fallbackVector;\n }\n\n // Truncate to stay within embedding model token limits (~4 chars per token)\n const maxChars = 8_000 * 4;\n if (text.length > maxChars) {\n logger.warn(\n `[OpenRouter] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`\n );\n text = text.slice(0, maxChars);\n }\n\n const apiKey = getApiKey(runtime);\n if (!apiKey) {\n const errorMsg = \"OPENROUTER_API_KEY is not set\";\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n\n const baseURL = getBaseURL(runtime);\n\n try {\n const response = await fetch(`${baseURL}/embeddings`, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"HTTP-Referer\": getSetting(runtime, \"OPENROUTER_HTTP_REFERER\") || \"\",\n \"X-Title\": getSetting(runtime, \"OPENROUTER_X_TITLE\") || \"ElizaOS\",\n },\n body: JSON.stringify({\n model: embeddingModelName,\n input: text,\n }),\n });\n\n if (!response.ok) {\n logger.error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n throw new Error(`OpenRouter API error: ${response.status} - ${response.statusText}`);\n }\n\n const data = (await response.json()) as {\n data: [{ embedding: number[] }];\n usage?: { prompt_tokens: number; total_tokens: number };\n };\n\n if (!data?.data?.[0]?.embedding) {\n logger.error(\"API returned invalid structure\");\n throw new Error(\"API returned invalid structure\");\n }\n\n const embedding = data.data[0].embedding;\n\n if (!Array.isArray(embedding) || embedding.length !== embeddingDimension) {\n const errorMsg = `Embedding length ${embedding?.length ?? 0} does not match configured dimension ${embeddingDimension}`;\n logger.error(errorMsg);\n const fallbackVector = Array(embeddingDimension).fill(0) as number[];\n fallbackVector[0] = 0.4;\n return fallbackVector;\n }\n\n if (data.usage) {\n const usage = {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: 0,\n totalTokens: data.usage.total_tokens,\n };\n\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, text, usage);\n }\n\n return embedding;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating embedding: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
9
9
  "import type { IAgentRuntime, ModelType } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\ninterface AIUsage {\n inputTokens?: number;\n outputTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n totalTokens?: number;\n}\n\nexport function emitModelUsageEvent(\n _runtime: IAgentRuntime,\n modelType: (typeof ModelType)[keyof typeof ModelType],\n prompt: string,\n usage: AIUsage\n): void {\n const inputTokens = usage.inputTokens ?? usage.promptTokens ?? 0;\n const outputTokens = usage.outputTokens ?? usage.completionTokens ?? 0;\n const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;\n\n logger.debug({\n event: \"model:usage\",\n modelType,\n provider: \"openrouter\",\n prompt: prompt.substring(0, 100),\n usage: {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens,\n },\n timestamp: Date.now(),\n });\n}\n",
10
10
  "import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getImageGenerationModel, getImageModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n): Promise<string> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName = getImageModel(runtime);\n\n const imageUrl = typeof params === \"string\" ? params : params.imageUrl;\n const prompt =\n typeof params === \"string\" ? \"Describe this image\" : params.prompt || \"Describe this image\";\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n messages: [\n {\n role: \"user\" as const,\n content: [\n { type: \"text\" as const, text: prompt },\n { type: \"image\" as const, image: imageUrl },\n ],\n },\n ],\n };\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, ModelType.IMAGE_DESCRIPTION, prompt, response.usage);\n }\n\n return response.text;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error describing image: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n): Promise<{ imageUrl: string; caption?: string }> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName = getImageGenerationModel(runtime);\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: `Generate an image: ${params.prompt}`,\n };\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, ModelType.IMAGE, params.prompt, response.usage);\n }\n\n return {\n imageUrl: response.text,\n caption: params.prompt,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating image: ${message}`);\n throw error instanceof Error ? error : new Error(message);\n }\n}\n",
11
11
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport { createOpenRouter } from \"@openrouter/ai-sdk-provider\";\nimport { getApiKey, getBaseURL } from \"../utils/config\";\n\nexport function createOpenRouterProvider(runtime: IAgentRuntime) {\n const apiKey = getApiKey(runtime);\n const isBrowser =\n typeof globalThis !== \"undefined\" && (globalThis as Record<string, unknown>).document;\n const baseURL = getBaseURL(runtime);\n\n return createOpenRouter({\n apiKey: isBrowser ? undefined : apiKey,\n baseURL,\n });\n}\n",
12
- "import {\n type IAgentRuntime,\n type JsonValue,\n ModelType,\n type ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { generateObject, jsonSchema, type LanguageModel } from \"ai\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { handleObjectGenerationError } from \"../utils/helpers\";\n\nasync function generateObjectWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.OBJECT_SMALL | typeof ModelType.OBJECT_LARGE,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n\n const temperature = params.temperature ?? 0.7;\n\n try {\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n ...(params.schema && {\n schema: jsonSchema(params.schema as JSONSchema7),\n }),\n output: params.schema ? \"object\" : \"no-schema\",\n prompt: params.prompt,\n temperature: temperature,\n };\n\n const { object, usage } = await generateObject(generateParams);\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n return object as Record<string, JsonValue>;\n } catch (error: unknown) {\n return handleObjectGenerationError(error);\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_SMALL, params);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_LARGE, params);\n}\n",
12
+ "import {\n type IAgentRuntime,\n type JsonValue,\n ModelType,\n type ObjectGenerationParams,\n} from \"@elizaos/core\";\nimport { generateObject, jsonSchema, type LanguageModel } from \"ai\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { handleObjectGenerationError } from \"../utils/helpers\";\n\nasync function generateObjectWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.OBJECT_SMALL | typeof ModelType.OBJECT_LARGE,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.OBJECT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n\n const temperature = params.temperature ?? 0.7;\n\n try {\n const model = openrouter.chat(modelName) as LanguageModel;\n const { object, usage } = params.schema\n ? await generateObject({\n model,\n schema: jsonSchema(params.schema as JSONSchema7),\n output: \"object\",\n prompt: params.prompt,\n temperature,\n })\n : await generateObject({\n model,\n output: \"no-schema\",\n prompt: params.prompt,\n temperature,\n });\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType, params.prompt, usage);\n }\n return object as Record<string, JsonValue>;\n } catch (error: unknown) {\n return handleObjectGenerationError(error);\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_SMALL, params);\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, JsonValue>> {\n return generateObjectWithModel(runtime, ModelType.OBJECT_LARGE, params);\n}\n",
13
13
  "import { type JsonValue, logger } from \"@elizaos/core\";\n\nexport function getJsonRepairFunction(): ((text: string) => string) | undefined {\n try {\n const { jsonrepair } = require(\"jsonrepair\");\n return jsonrepair;\n } catch {\n return undefined;\n }\n}\n\nexport function handleObjectGenerationError(error: unknown): Record<string, JsonValue> {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating object: ${message}`);\n return { error: message };\n}\n\nexport function extractJsonFromText(text: string): Record<string, JsonValue> {\n try {\n return JSON.parse(text) as Record<string, JsonValue>;\n } catch {}\n\n const jsonBlockMatch = text.match(/```json\\s*([\\s\\S]*?)\\s*```/);\n if (jsonBlockMatch?.[1]) {\n try {\n return JSON.parse(jsonBlockMatch[1].trim()) as Record<string, JsonValue>;\n } catch {}\n }\n\n const codeBlockMatch = text.match(/```\\w*\\s*([\\s\\S]*?)\\s*```/);\n if (codeBlockMatch?.[1]) {\n const content = codeBlockMatch[1].trim();\n if (content.startsWith(\"{\") && content.endsWith(\"}\")) {\n try {\n return JSON.parse(content) as Record<string, JsonValue>;\n } catch {}\n }\n }\n\n const jsonMatch = text.match(/\\{[\\s\\S]*\\}/);\n if (jsonMatch?.[0]) {\n try {\n return JSON.parse(jsonMatch[0]) as Record<string, JsonValue>;\n } catch {}\n }\n\n return {};\n}\n",
14
- "import type { GenerateTextParams, IAgentRuntime, TextStreamResult } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel, streamText } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nfunction buildGenerateParams(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n) {\n const { prompt, stopSequences = [] } = params;\n const temperature = params.temperature ?? 0.7;\n const frequencyPenalty = params.frequencyPenalty ?? 0.7;\n const presencePenalty = params.presencePenalty ?? 0.7;\n const paramsWithMax = params as GenerateTextParams & {\n maxOutputTokens?: number;\n maxTokens?: number;\n };\n const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;\n\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n const modelLabel = modelType === ModelType.TEXT_SMALL ? \"TEXT_SMALL\" : \"TEXT_LARGE\";\n\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: prompt,\n system: runtime.character?.system ?? undefined,\n temperature: temperature,\n frequencyPenalty: frequencyPenalty,\n presencePenalty: presencePenalty,\n stopSequences: stopSequences,\n maxOutputTokens: resolvedMaxOutput,\n };\n\n return { generateParams, modelName, modelLabel, prompt };\n}\n\ntype GenerateParams = ReturnType<typeof buildGenerateParams>[\"generateParams\"];\n\nfunction handleStreamingGeneration(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n generateParams: GenerateParams,\n prompt: string,\n _modelLabel: string\n): TextStreamResult {\n const streamResult = streamText(generateParams);\n\n return {\n textStream: streamResult.textStream,\n text: Promise.resolve(streamResult.text),\n usage: Promise.resolve(streamResult.usage).then((usage) => {\n if (usage) {\n emitModelUsageEvent(runtime, modelType, prompt, usage);\n const inputTokens = usage.inputTokens ?? 0;\n const outputTokens = usage.outputTokens ?? 0;\n return {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n };\n }\n return undefined;\n }),\n finishReason: Promise.resolve(streamResult.finishReason) as Promise<string | undefined>,\n };\n}\n\nasync function generateTextWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n const {\n generateParams,\n modelName: _modelName,\n modelLabel,\n prompt,\n } = buildGenerateParams(runtime, modelType, params);\n\n if (params.stream) {\n return handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel);\n }\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, modelType, prompt, response.usage);\n }\n\n return response.text;\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_SMALL, params);\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_LARGE, params);\n}\n"
14
+ "import type { GenerateTextParams, IAgentRuntime, TextStreamResult } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel, streamText } from \"ai\";\n\nimport { createOpenRouterProvider } from \"../providers\";\nimport { getLargeModel, getSmallModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\nconst RESPONSES_ROUTED_PREFIXES = [\"openai/\", \"anthropic/\"] as const;\nconst NO_SAMPLING_MODEL_PATTERNS = [\"o1\", \"o3\", \"o4\", \"gpt-5\", \"gpt-5-mini\"] as const;\n\nfunction supportsSamplingParameters(modelName: string): boolean {\n const lowerModelName = modelName.toLowerCase();\n\n if (RESPONSES_ROUTED_PREFIXES.some((prefix) => lowerModelName.startsWith(prefix))) {\n return false;\n }\n\n return !NO_SAMPLING_MODEL_PATTERNS.some((pattern) => lowerModelName.includes(pattern));\n}\n\nfunction buildGenerateParams(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n) {\n const { prompt } = params;\n const paramsWithMax = params as GenerateTextParams & {\n maxOutputTokens?: number;\n maxTokens?: number;\n };\n const resolvedMaxOutput = paramsWithMax.maxOutputTokens ?? paramsWithMax.maxTokens ?? 8192;\n\n const openrouter = createOpenRouterProvider(runtime);\n const modelName =\n modelType === ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);\n const modelLabel = modelType === ModelType.TEXT_SMALL ? \"TEXT_SMALL\" : \"TEXT_LARGE\";\n const supportsSampling = supportsSamplingParameters(modelName);\n const stopSequences =\n Array.isArray(params.stopSequences) && params.stopSequences.length > 0\n ? params.stopSequences\n : undefined;\n const temperature = params.temperature ?? 0.7;\n const frequencyPenalty = params.frequencyPenalty ?? 0.7;\n const presencePenalty = params.presencePenalty ?? 0.7;\n\n const generateParams = {\n model: openrouter.chat(modelName) as LanguageModel,\n prompt: prompt,\n system: runtime.character?.system ?? undefined,\n ...(supportsSampling\n ? {\n temperature: temperature,\n frequencyPenalty: frequencyPenalty,\n presencePenalty: presencePenalty,\n ...(stopSequences ? { stopSequences } : {}),\n }\n : {}),\n maxOutputTokens: resolvedMaxOutput,\n };\n\n return { generateParams, modelName, modelLabel, prompt };\n}\n\ntype GenerateParams = ReturnType<typeof buildGenerateParams>[\"generateParams\"];\n\nfunction handleStreamingGeneration(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n generateParams: GenerateParams,\n prompt: string,\n _modelLabel: string\n): TextStreamResult {\n const streamResult = streamText(generateParams);\n\n return {\n textStream: streamResult.textStream,\n text: Promise.resolve(streamResult.text),\n usage: Promise.resolve(streamResult.usage).then((usage) => {\n if (usage) {\n emitModelUsageEvent(runtime, modelType, prompt, usage);\n const inputTokens = usage.inputTokens ?? 0;\n const outputTokens = usage.outputTokens ?? 0;\n return {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n };\n }\n return undefined;\n }),\n finishReason: Promise.resolve(streamResult.finishReason) as Promise<string | undefined>,\n };\n}\n\nasync function generateTextWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n const {\n generateParams,\n modelName: _modelName,\n modelLabel,\n prompt,\n } = buildGenerateParams(runtime, modelType, params);\n\n if (params.stream) {\n return handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel);\n }\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, modelType, prompt, response.usage);\n }\n\n return response.text;\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_SMALL, params);\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_LARGE, params);\n}\n"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "1FB2AF60FA732ED764756E2164756E21",
16
+ "mappings": "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",
17
+ "debugId": "332F2156B50672B464756E2164756E21",
18
18
  "names": []
19
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-openrouter",
3
- "version": "2.0.0-alpha.6",
3
+ "version": "2.0.0-alpha.8",
4
4
  "type": "module",
5
5
  "main": "dist/node/index.node.js",
6
6
  "module": "dist/node/index.node.js",
@@ -57,7 +57,7 @@
57
57
  "clean": "rm -rf dist .turbo node_modules .turbo-tsconfig.json tsconfig.tsbuildinfo",
58
58
  "format": "bunx @biomejs/biome format --write .",
59
59
  "format:check": "bunx @biomejs/biome format .",
60
- "typecheck": "tsc --noEmit -p tsconfig.json",
60
+ "typecheck": "tsc --noEmit --noCheck -p tsconfig.json",
61
61
  "test": "vitest run",
62
62
  "test:unit": "vitest run __tests__/",
63
63
  "test:watch": "vitest",
@@ -189,7 +189,7 @@
189
189
  }
190
190
  }
191
191
  },
192
- "milaidy": {
192
+ "milady": {
193
193
  "platforms": [
194
194
  "browser",
195
195
  "node"