@elizaos/plugin-ollama 2.0.0-alpha.5 → 2.0.0-alpha.537

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../plugin.ts", "../../models/embedding.ts", "../../utils/config.ts", "../../models/availability.ts", "../../models/object.ts", "../../models/text.ts"],
3
+ "sources": ["../../plugin.ts", "../../models/embedding.ts", "../../utils/config.ts", "../../models/availability.ts", "../../models/object.ts", "../../models/text.ts", "../../index.node.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n GenerateTextParams,\n IAgentRuntime,\n ObjectGenerationParams,\n Plugin,\n TextEmbeddingParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\n\nconst _globalThis = globalThis as typeof globalThis & { AI_SDK_LOG_WARNINGS?: boolean };\n_globalThis.AI_SDK_LOG_WARNINGS ??= false;\n\nimport { handleTextEmbedding } from \"./models/embedding\";\nimport { handleObjectLarge, handleObjectSmall } from \"./models/object\";\nimport { handleTextLarge, handleTextSmall } from \"./models/text\";\nimport { getApiBase, getBaseURL } from \"./utils/config\";\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 ollamaPlugin: Plugin = {\n name: \"ollama\",\n description: \"Ollama plugin for local LLM inference\",\n\n config: {\n OLLAMA_API_ENDPOINT: env.OLLAMA_API_ENDPOINT ?? null,\n OLLAMA_SMALL_MODEL: env.OLLAMA_SMALL_MODEL ?? null,\n OLLAMA_MEDIUM_MODEL: env.OLLAMA_MEDIUM_MODEL ?? null,\n OLLAMA_LARGE_MODEL: env.OLLAMA_LARGE_MODEL ?? null,\n OLLAMA_EMBEDDING_MODEL: env.OLLAMA_EMBEDDING_MODEL ?? null,\n },\n\n async init(_config, runtime) {\n const baseURL = getBaseURL(runtime);\n const apiBase = getApiBase(runtime);\n\n if (!baseURL || baseURL === \"http://localhost:11434/api\") {\n const endpoint = runtime.getSetting(\"OLLAMA_API_ENDPOINT\");\n if (!endpoint) {\n logger.warn(\"OLLAMA_API_ENDPOINT not set, using default localhost:11434\");\n }\n }\n\n try {\n const response = await fetch(`${apiBase}/api/tags`, {\n method: \"GET\",\n headers: { \"Content-Type\": \"application/json\" },\n });\n\n if (!response.ok) {\n logger.warn(`Ollama API validation failed: ${response.statusText}`);\n }\n } catch (fetchError: unknown) {\n const message = fetchError instanceof Error ? fetchError.message : String(fetchError);\n logger.warn(`Ollama API validation error: ${message}`);\n }\n },\n\n models: {\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ): Promise<number[]> => {\n return handleTextEmbedding(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextSmall(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, string | number | boolean | null>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, string | number | boolean | null>> => {\n return handleObjectLarge(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"ollama_plugin_tests\",\n tests: [\n {\n name: \"ollama_test_url_validation\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const apiBase = getApiBase(runtime);\n const response = await fetch(`${apiBase}/api/tags`);\n if (!response.ok) {\n logger.error(`Failed to validate Ollama API: ${response.statusText}`);\n }\n } catch (error) {\n logger.error({ error }, \"Error in ollama_test_url_validation\");\n }\n },\n },\n {\n name: \"ollama_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 }, \"Generated embedding\");\n } catch (error) {\n logger.error({ error }, \"Error in test_text_embedding\");\n }\n },\n },\n {\n name: \"ollama_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 logger.error(\"Failed to generate text\");\n return;\n }\n logger.log({ text }, \"Generated with test_text_large\");\n } catch (error) {\n logger.error({ error }, \"Error in test_text_large\");\n }\n },\n },\n {\n name: \"ollama_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 logger.error(\"Failed to generate text\");\n return;\n }\n logger.log({ text }, \"Generated with test_text_small\");\n } catch (error) {\n logger.error({ error }, \"Error in test_text_small\");\n }\n },\n },\n {\n name: \"ollama_test_object_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const object = await runtime.useModel(ModelType.OBJECT_SMALL, {\n prompt:\n \"Generate a JSON object representing a user profile with name, age, and hobbies\",\n temperature: 0.7,\n schema: undefined,\n });\n logger.log({ object }, \"Generated object\");\n } catch (error) {\n logger.error({ error }, \"Error in test_object_small\");\n }\n },\n },\n {\n name: \"ollama_test_object_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const object = await runtime.useModel(ModelType.OBJECT_LARGE, {\n prompt:\n \"Generate a detailed JSON object representing a restaurant with name, cuisine type, menu items with prices, and customer reviews\",\n temperature: 0.7,\n schema: undefined,\n });\n logger.log({ object }, \"Generated object\");\n } catch (error) {\n logger.error({ error }, \"Error in test_object_large\");\n }\n },\n },\n ],\n },\n ],\n};\n",
6
- "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, MAX_EMBEDDING_TOKENS } from \"@elizaos/core\";\nimport { embed } from \"ai\";\nimport { createOllama } from \"ollama-ai-provider\";\n\nimport { getBaseURL, getEmbeddingModel } from \"../utils/config\";\nimport { ensureModelAvailable } from \"./availability\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n try {\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n\n const modelName = getEmbeddingModel(runtime);\n logger.log(`[Ollama] Using TEXT_EMBEDDING model: ${modelName}`);\n await ensureModelAvailable(modelName, baseURL, customFetch);\n\n let text =\n typeof params === \"string\"\n ? params\n : params\n ? (params as TextEmbeddingParams).text || \"\"\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 `[Ollama] 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 embeddingText = text || \"test\";\n\n try {\n const embedParams = {\n model: ollama.embedding(modelName),\n value: embeddingText,\n };\n\n const { embedding } = await embed(embedParams);\n return embedding;\n } catch (embeddingError) {\n logger.error({ error: embeddingError }, \"Error generating embedding\");\n return Array(1536).fill(0);\n }\n } catch (error) {\n logger.error({ error }, \"Error in TEXT_EMBEDDING model\");\n return Array(1536).fill(0);\n }\n}\n",
7
- "type SettingsProvider = {\n getSetting: (key: string) => string | number | boolean | null;\n};\n\nexport const DEFAULT_OLLAMA_URL = \"http://localhost:11434\";\nexport const DEFAULT_SMALL_MODEL = \"gemma3:latest\";\nexport const DEFAULT_LARGE_MODEL = \"gemma3:latest\";\nexport const DEFAULT_EMBEDDING_MODEL = \"nomic-embed-text:latest\";\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: SettingsProvider,\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: SettingsProvider): string {\n const apiEndpoint =\n getSetting(runtime, \"OLLAMA_API_ENDPOINT\") ||\n getSetting(runtime, \"OLLAMA_API_URL\") ||\n DEFAULT_OLLAMA_URL;\n\n if (!apiEndpoint.endsWith(\"/api\")) {\n return apiEndpoint.endsWith(\"/\") ? `${apiEndpoint}api` : `${apiEndpoint}/api`;\n }\n return apiEndpoint;\n}\n\nexport function getApiBase(runtime: SettingsProvider): string {\n const baseURL = getBaseURL(runtime);\n return baseURL.endsWith(\"/api\") ? baseURL.slice(0, -4) : baseURL;\n}\n\nexport function getSmallModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_SMALL_MODEL\") ||\n getSetting(runtime, \"SMALL_MODEL\") ||\n DEFAULT_SMALL_MODEL\n );\n}\n\nexport function getLargeModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_LARGE_MODEL\") ||\n getSetting(runtime, \"LARGE_MODEL\") ||\n DEFAULT_LARGE_MODEL\n );\n}\n\nexport function getEmbeddingModel(runtime: SettingsProvider): string {\n return getSetting(runtime, \"OLLAMA_EMBEDDING_MODEL\") || DEFAULT_EMBEDDING_MODEL;\n}\n",
5
+ "import type {\n GenerateTextParams,\n IAgentRuntime,\n ObjectGenerationParams,\n Plugin,\n TextEmbeddingParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\n\nconst _globalThis = globalThis as typeof globalThis & {\n AI_SDK_LOG_WARNINGS?: boolean;\n};\n_globalThis.AI_SDK_LOG_WARNINGS ??= false;\n\nimport { handleTextEmbedding } from \"./models/embedding\";\nimport { handleObjectLarge, handleObjectSmall } from \"./models/object\";\nimport {\n handleActionPlanner,\n handleResponseHandler,\n handleTextLarge,\n handleTextMedium,\n handleTextMega,\n handleTextNano,\n handleTextSmall,\n} from \"./models/text\";\nimport { getApiBase, getBaseURL } from \"./utils/config\";\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();\nconst TEXT_NANO_MODEL_TYPE = (ModelType.TEXT_NANO ?? \"TEXT_NANO\") as string;\nconst TEXT_MEDIUM_MODEL_TYPE = (ModelType.TEXT_MEDIUM ?? \"TEXT_MEDIUM\") as string;\nconst TEXT_MEGA_MODEL_TYPE = (ModelType.TEXT_MEGA ?? \"TEXT_MEGA\") as string;\nconst RESPONSE_HANDLER_MODEL_TYPE = (ModelType.RESPONSE_HANDLER ?? \"RESPONSE_HANDLER\") as string;\nconst ACTION_PLANNER_MODEL_TYPE = (ModelType.ACTION_PLANNER ?? \"ACTION_PLANNER\") as string;\n\nexport const ollamaPlugin: Plugin = {\n name: \"ollama\",\n description: \"Ollama plugin for local LLM inference\",\n\n config: {\n OLLAMA_API_ENDPOINT: env.OLLAMA_API_ENDPOINT ?? null,\n OLLAMA_NANO_MODEL: env.OLLAMA_NANO_MODEL ?? null,\n OLLAMA_SMALL_MODEL: env.OLLAMA_SMALL_MODEL ?? null,\n OLLAMA_MEDIUM_MODEL: env.OLLAMA_MEDIUM_MODEL ?? null,\n OLLAMA_LARGE_MODEL: env.OLLAMA_LARGE_MODEL ?? null,\n OLLAMA_MEGA_MODEL: env.OLLAMA_MEGA_MODEL ?? null,\n OLLAMA_RESPONSE_HANDLER_MODEL: env.OLLAMA_RESPONSE_HANDLER_MODEL ?? null,\n OLLAMA_SHOULD_RESPOND_MODEL: env.OLLAMA_SHOULD_RESPOND_MODEL ?? null,\n OLLAMA_ACTION_PLANNER_MODEL: env.OLLAMA_ACTION_PLANNER_MODEL ?? null,\n OLLAMA_PLANNER_MODEL: env.OLLAMA_PLANNER_MODEL ?? null,\n NANO_MODEL: env.NANO_MODEL ?? null,\n MEDIUM_MODEL: env.MEDIUM_MODEL ?? null,\n SMALL_MODEL: env.SMALL_MODEL ?? null,\n LARGE_MODEL: env.LARGE_MODEL ?? null,\n MEGA_MODEL: env.MEGA_MODEL ?? null,\n RESPONSE_HANDLER_MODEL: env.RESPONSE_HANDLER_MODEL ?? null,\n SHOULD_RESPOND_MODEL: env.SHOULD_RESPOND_MODEL ?? null,\n ACTION_PLANNER_MODEL: env.ACTION_PLANNER_MODEL ?? null,\n PLANNER_MODEL: env.PLANNER_MODEL ?? null,\n OLLAMA_EMBEDDING_MODEL: env.OLLAMA_EMBEDDING_MODEL ?? null,\n },\n\n async init(_config, runtime) {\n const baseURL = getBaseURL(runtime);\n const apiBase = getApiBase(runtime);\n\n if (!baseURL || baseURL === \"http://localhost:11434/api\") {\n const endpoint = runtime.getSetting(\"OLLAMA_API_ENDPOINT\");\n if (!endpoint) {\n logger.warn(\"OLLAMA_API_ENDPOINT not set, using default localhost:11434\");\n }\n }\n\n try {\n const response = await fetch(`${apiBase}/api/tags`, {\n method: \"GET\",\n headers: { \"Content-Type\": \"application/json\" },\n });\n\n if (!response.ok) {\n logger.warn(`Ollama API validation failed: ${response.statusText}`);\n }\n } catch (fetchError: unknown) {\n const message = fetchError instanceof Error ? fetchError.message : String(fetchError);\n logger.warn(`Ollama API validation error: ${message}`);\n }\n },\n\n models: {\n [ModelType.TEXT_EMBEDDING]: async (\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n ): Promise<number[]> => {\n return handleTextEmbedding(runtime, params);\n },\n\n [TEXT_NANO_MODEL_TYPE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextNano(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextSmall(runtime, params);\n },\n\n [TEXT_MEDIUM_MODEL_TYPE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextMedium(runtime, params);\n },\n\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextLarge(runtime, params);\n },\n\n [TEXT_MEGA_MODEL_TYPE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextMega(runtime, params);\n },\n\n [RESPONSE_HANDLER_MODEL_TYPE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleResponseHandler(runtime, params);\n },\n\n [ACTION_PLANNER_MODEL_TYPE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleActionPlanner(runtime, params);\n },\n\n [ModelType.OBJECT_SMALL]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, string | number | boolean | null>> => {\n return handleObjectSmall(runtime, params);\n },\n\n [ModelType.OBJECT_LARGE]: async (\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n ): Promise<Record<string, string | number | boolean | null>> => {\n return handleObjectLarge(runtime, params);\n },\n },\n\n tests: [\n {\n name: \"ollama_plugin_tests\",\n tests: [\n {\n name: \"ollama_test_url_validation\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const apiBase = getApiBase(runtime);\n const response = await fetch(`${apiBase}/api/tags`);\n if (!response.ok) {\n logger.error(`Failed to validate Ollama API: ${response.statusText}`);\n }\n } catch (error) {\n logger.error({ error }, \"Error in ollama_test_url_validation\");\n }\n },\n },\n {\n name: \"ollama_test_text_embedding\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const runModel = runtime.useModel.bind(runtime);\n const embedding = await runModel(ModelType.TEXT_EMBEDDING, {\n text: \"Hello, world!\",\n });\n logger.log({ embedding }, \"Generated embedding\");\n } catch (error) {\n logger.error({ error }, \"Error in test_text_embedding\");\n }\n },\n },\n {\n name: \"ollama_test_text_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const runModel = runtime.useModel.bind(runtime);\n const text = await runModel(ModelType.TEXT_LARGE, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n logger.error(\"Failed to generate text\");\n return;\n }\n logger.log({ text }, \"Generated with test_text_large\");\n } catch (error) {\n logger.error({ error }, \"Error in test_text_large\");\n }\n },\n },\n {\n name: \"ollama_test_text_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const runModel = runtime.useModel.bind(runtime);\n const text = await runModel(ModelType.TEXT_SMALL, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n logger.error(\"Failed to generate text\");\n return;\n }\n logger.log({ text }, \"Generated with test_text_small\");\n } catch (error) {\n logger.error({ error }, \"Error in test_text_small\");\n }\n },\n },\n {\n name: \"ollama_test_object_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const runModel = runtime.useModel.bind(runtime);\n const object = await runModel(ModelType.OBJECT_SMALL, {\n prompt:\n \"Generate a JSON object representing a user profile with name, age, and hobbies\",\n temperature: 0.7,\n schema: undefined,\n });\n logger.log({ object }, \"Generated object\");\n } catch (error) {\n logger.error({ error }, \"Error in test_object_small\");\n }\n },\n },\n {\n name: \"ollama_test_object_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const runModel = runtime.useModel.bind(runtime);\n const object = await runModel(ModelType.OBJECT_LARGE, {\n prompt:\n \"Generate a detailed JSON object representing a restaurant with name, cuisine type, menu items with prices, and customer reviews\",\n temperature: 0.7,\n schema: undefined,\n });\n logger.log({ object }, \"Generated object\");\n } catch (error) {\n logger.error({ error }, \"Error in test_object_large\");\n }\n },\n },\n ],\n },\n ],\n};\n",
6
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { type EmbeddingModel, embed } from \"ai\";\nimport { createOllama } from \"ollama-ai-provider\";\n\nimport { getBaseURL, getEmbeddingModel } from \"../utils/config\";\nimport { ensureModelAvailable } from \"./availability\";\n\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null\n): Promise<number[]> {\n try {\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n\n const modelName = getEmbeddingModel(runtime);\n logger.log(`[Ollama] Using TEXT_EMBEDDING model: ${modelName}`);\n await ensureModelAvailable(modelName, baseURL, customFetch);\n\n let text =\n typeof params === \"string\"\n ? params\n : params\n ? (params as TextEmbeddingParams).text || \"\"\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 `[Ollama] 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 embeddingText = text || \"test\";\n\n try {\n const embedParams = {\n // ollama-ai-provider still exposes older AI SDK model interfaces.\n model: ollama.embedding(modelName) as unknown as EmbeddingModel,\n value: embeddingText,\n };\n\n const { embedding } = await embed(embedParams);\n return embedding;\n } catch (embeddingError) {\n logger.error({ error: embeddingError }, \"Error generating embedding\");\n return Array(1536).fill(0);\n }\n } catch (error) {\n logger.error({ error }, \"Error in TEXT_EMBEDDING model\");\n return Array(1536).fill(0);\n }\n}\n",
7
+ "type SettingsProvider = {\n getSetting: (key: string) => string | number | boolean | null;\n};\n\nexport const DEFAULT_OLLAMA_URL = \"http://localhost:11434\";\nexport const DEFAULT_SMALL_MODEL = \"gemma3:latest\";\nexport const DEFAULT_LARGE_MODEL = \"gemma3:latest\";\nexport const DEFAULT_EMBEDDING_MODEL = \"nomic-embed-text:latest\";\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: SettingsProvider,\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: SettingsProvider): string {\n const apiEndpoint =\n getSetting(runtime, \"OLLAMA_API_ENDPOINT\") ||\n getSetting(runtime, \"OLLAMA_API_URL\") ||\n DEFAULT_OLLAMA_URL;\n\n if (!apiEndpoint.endsWith(\"/api\")) {\n return apiEndpoint.endsWith(\"/\") ? `${apiEndpoint}api` : `${apiEndpoint}/api`;\n }\n return apiEndpoint;\n}\n\nexport function getApiBase(runtime: SettingsProvider): string {\n const baseURL = getBaseURL(runtime);\n return baseURL.endsWith(\"/api\") ? baseURL.slice(0, -4) : baseURL;\n}\n\nexport function getSmallModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_SMALL_MODEL\") ||\n getSetting(runtime, \"SMALL_MODEL\") ||\n DEFAULT_SMALL_MODEL\n );\n}\n\nexport function getNanoModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_NANO_MODEL\") ||\n getSetting(runtime, \"NANO_MODEL\") ||\n getSmallModel(runtime)\n );\n}\n\nexport function getMediumModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_MEDIUM_MODEL\") ||\n getSetting(runtime, \"MEDIUM_MODEL\") ||\n getSmallModel(runtime)\n );\n}\n\nexport function getLargeModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_LARGE_MODEL\") ||\n getSetting(runtime, \"LARGE_MODEL\") ||\n DEFAULT_LARGE_MODEL\n );\n}\n\nexport function getMegaModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_MEGA_MODEL\") ||\n getSetting(runtime, \"MEGA_MODEL\") ||\n getLargeModel(runtime)\n );\n}\n\nexport function getResponseHandlerModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_RESPONSE_HANDLER_MODEL\") ||\n getSetting(runtime, \"OLLAMA_SHOULD_RESPOND_MODEL\") ||\n getSetting(runtime, \"RESPONSE_HANDLER_MODEL\") ||\n getSetting(runtime, \"SHOULD_RESPOND_MODEL\") ||\n getNanoModel(runtime)\n );\n}\n\nexport function getActionPlannerModel(runtime: SettingsProvider): string {\n return (\n getSetting(runtime, \"OLLAMA_ACTION_PLANNER_MODEL\") ||\n getSetting(runtime, \"OLLAMA_PLANNER_MODEL\") ||\n getSetting(runtime, \"ACTION_PLANNER_MODEL\") ||\n getSetting(runtime, \"PLANNER_MODEL\") ||\n getMediumModel(runtime)\n );\n}\n\nexport function getEmbeddingModel(runtime: SettingsProvider): string {\n return getSetting(runtime, \"OLLAMA_EMBEDDING_MODEL\") || DEFAULT_EMBEDDING_MODEL;\n}\n",
8
8
  "import { logger } from \"@elizaos/core\";\n\nexport async function ensureModelAvailable(\n model: string,\n providedBaseURL?: string,\n customFetch?: typeof fetch | null\n): Promise<void> {\n const baseURL = providedBaseURL || \"http://localhost:11434/api\";\n const apiBase = baseURL.endsWith(\"/api\") ? baseURL.slice(0, -4) : baseURL;\n const fetcher = customFetch ?? fetch;\n\n try {\n const showRes = await fetcher(`${apiBase}/api/show`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ model }),\n });\n\n if (showRes.ok) {\n return;\n }\n\n logger.info(`[Ollama] Model ${model} not found locally. Downloading...`);\n\n const pullRes = await fetcher(`${apiBase}/api/pull`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ model, stream: false }),\n });\n\n if (!pullRes.ok) {\n logger.error(`Failed to pull model ${model}: ${pullRes.statusText}`);\n } else {\n logger.info(`[Ollama] Downloaded model ${model}`);\n }\n } catch (err) {\n logger.error({ error: err }, \"Error ensuring model availability\");\n }\n}\n",
9
- "import type { IAgentRuntime, ObjectGenerationParams } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { generateObject } from \"ai\";\nimport { createOllama } from \"ollama-ai-provider\";\n\nimport { getBaseURL, getLargeModel, getSmallModel } from \"../utils/config\";\nimport { ensureModelAvailable } from \"./availability\";\n\nasync function generateOllamaObject(\n ollama: ReturnType<typeof createOllama>,\n model: string,\n params: ObjectGenerationParams\n): Promise<Record<string, string | number | boolean | null>> {\n try {\n const generateParams = {\n model: ollama(model),\n output: \"no-schema\" as const,\n prompt: params.prompt,\n temperature: params.temperature,\n };\n\n const { object } = await generateObject(generateParams);\n return object as Record<string, string | number | boolean | null>;\n } catch (error: unknown) {\n logger.error({ error }, \"Error generating object\");\n return {};\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, string | number | boolean | null>> {\n try {\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n const model = getSmallModel(runtime);\n\n logger.log(`[Ollama] Using OBJECT_SMALL model: ${model}`);\n await ensureModelAvailable(model, baseURL, customFetch);\n\n return await generateOllamaObject(ollama, model, params);\n } catch (error) {\n logger.error({ error }, \"Error in OBJECT_SMALL model\");\n return {};\n }\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, string | number | boolean | null>> {\n try {\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n const model = getLargeModel(runtime);\n\n logger.log(`[Ollama] Using OBJECT_LARGE model: ${model}`);\n await ensureModelAvailable(model, baseURL, customFetch);\n\n return await generateOllamaObject(ollama, model, params);\n } catch (error) {\n logger.error({ error }, \"Error in OBJECT_LARGE model\");\n return {};\n }\n}\n",
10
- "import type { GenerateTextParams, IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { generateText } from \"ai\";\nimport { createOllama } from \"ollama-ai-provider\";\n\nimport { getBaseURL, getLargeModel, getSmallModel } from \"../utils/config\";\nimport { ensureModelAvailable } from \"./availability\";\n\nasync function generateOllamaText(\n ollama: ReturnType<typeof createOllama>,\n model: string,\n params: {\n prompt: string;\n system?: string;\n temperature: number;\n maxTokens: number;\n frequencyPenalty: number;\n presencePenalty: number;\n stopSequences: string[];\n }\n): Promise<string> {\n try {\n const generateParams = {\n model: ollama(model),\n prompt: params.prompt,\n system: params.system,\n temperature: params.temperature,\n maxTokens: params.maxTokens,\n frequencyPenalty: params.frequencyPenalty,\n presencePenalty: params.presencePenalty,\n stopSequences: params.stopSequences,\n };\n\n const { text: ollamaResponse } = await generateText(generateParams);\n return ollamaResponse;\n } catch (error: unknown) {\n logger.error({ error }, \"Error in generateOllamaText\");\n return \"Error generating text. Please try again later.\";\n }\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n { prompt, stopSequences = [] }: GenerateTextParams\n): Promise<string> {\n try {\n const temperature = 0.7;\n const frequency_penalty = 0.7;\n const presence_penalty = 0.7;\n const max_response_length = 8000;\n\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n\n const model = getSmallModel(runtime);\n logger.log(`[Ollama] Using TEXT_SMALL model: ${model}`);\n await ensureModelAvailable(model, baseURL, customFetch);\n\n return await generateOllamaText(ollama, model, {\n prompt,\n system: runtime.character?.system ?? undefined,\n temperature,\n maxTokens: max_response_length,\n frequencyPenalty: frequency_penalty,\n presencePenalty: presence_penalty,\n stopSequences,\n });\n } catch (error) {\n logger.error({ error }, \"Error in TEXT_SMALL model\");\n return \"Error generating text. Please try again later.\";\n }\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n {\n prompt,\n stopSequences = [],\n maxTokens = 8192,\n temperature = 0.7,\n frequencyPenalty = 0.7,\n presencePenalty = 0.7,\n }: GenerateTextParams\n): Promise<string> {\n try {\n const model = getLargeModel(runtime);\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n\n logger.log(`[Ollama] Using TEXT_LARGE model: ${model}`);\n await ensureModelAvailable(model, baseURL, customFetch);\n return await generateOllamaText(ollama, model, {\n prompt,\n system: runtime.character?.system ?? undefined,\n temperature,\n maxTokens,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n });\n } catch (error) {\n logger.error({ error }, \"Error in TEXT_LARGE model\");\n return \"Error generating text. Please try again later.\";\n }\n}\n"
9
+ "import type { IAgentRuntime, ObjectGenerationParams } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { generateObject, type LanguageModel } from \"ai\";\nimport { createOllama } from \"ollama-ai-provider\";\n\nimport { getBaseURL, getLargeModel, getSmallModel } from \"../utils/config\";\nimport { ensureModelAvailable } from \"./availability\";\n\nasync function generateOllamaObject(\n ollama: ReturnType<typeof createOllama>,\n model: string,\n params: ObjectGenerationParams\n): Promise<Record<string, string | number | boolean | null>> {\n try {\n const generateParams = {\n // ollama-ai-provider still exposes older AI SDK model interfaces.\n model: ollama(model) as unknown as LanguageModel,\n output: \"no-schema\" as const,\n prompt: params.prompt,\n temperature: params.temperature,\n };\n\n const { object } = await generateObject(generateParams);\n return object as Record<string, string | number | boolean | null>;\n } catch (error: unknown) {\n logger.error({ error }, \"Error generating object\");\n return {};\n }\n}\n\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, string | number | boolean | null>> {\n try {\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n const model = getSmallModel(runtime);\n\n logger.log(`[Ollama] Using OBJECT_SMALL model: ${model}`);\n await ensureModelAvailable(model, baseURL, customFetch);\n\n return await generateOllamaObject(ollama, model, params);\n } catch (error) {\n logger.error({ error }, \"Error in OBJECT_SMALL model\");\n return {};\n }\n}\n\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams\n): Promise<Record<string, string | number | boolean | null>> {\n try {\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n const model = getLargeModel(runtime);\n\n logger.log(`[Ollama] Using OBJECT_LARGE model: ${model}`);\n await ensureModelAvailable(model, baseURL, customFetch);\n\n return await generateOllamaObject(ollama, model, params);\n } catch (error) {\n logger.error({ error }, \"Error in OBJECT_LARGE model\");\n return {};\n }\n}\n",
10
+ "import type { GenerateTextParams, IAgentRuntime, ModelTypeName } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, type LanguageModel } from \"ai\";\nimport { createOllama } from \"ollama-ai-provider\";\n\nimport {\n getActionPlannerModel,\n getBaseURL,\n getLargeModel,\n getMediumModel,\n getMegaModel,\n getNanoModel,\n getResponseHandlerModel,\n getSmallModel,\n} from \"../utils/config\";\nimport { ensureModelAvailable } from \"./availability\";\n\nconst TEXT_NANO_MODEL_TYPE = (ModelType.TEXT_NANO ?? \"TEXT_NANO\") as ModelTypeName;\nconst TEXT_MEDIUM_MODEL_TYPE = (ModelType.TEXT_MEDIUM ?? \"TEXT_MEDIUM\") as ModelTypeName;\nconst TEXT_MEGA_MODEL_TYPE = (ModelType.TEXT_MEGA ?? \"TEXT_MEGA\") as ModelTypeName;\nconst RESPONSE_HANDLER_MODEL_TYPE = (ModelType.RESPONSE_HANDLER ??\n \"RESPONSE_HANDLER\") as ModelTypeName;\nconst ACTION_PLANNER_MODEL_TYPE = (ModelType.ACTION_PLANNER ?? \"ACTION_PLANNER\") as ModelTypeName;\n\nasync function generateOllamaText(\n ollama: ReturnType<typeof createOllama>,\n model: string,\n params: {\n prompt: string;\n system?: string;\n temperature: number;\n maxTokens: number;\n frequencyPenalty: number;\n presencePenalty: number;\n stopSequences: string[];\n }\n): Promise<string> {\n try {\n const generateParams = {\n // ollama-ai-provider still exposes older AI SDK model interfaces.\n model: ollama(model) as unknown as LanguageModel,\n prompt: params.prompt,\n system: params.system,\n temperature: params.temperature,\n maxTokens: params.maxTokens,\n frequencyPenalty: params.frequencyPenalty,\n presencePenalty: params.presencePenalty,\n stopSequences: params.stopSequences,\n };\n\n const { text: ollamaResponse } = await generateText(generateParams);\n return ollamaResponse;\n } catch (error: unknown) {\n logger.error({ error }, \"Error in generateOllamaText\");\n return \"Error generating text. Please try again later.\";\n }\n}\n\ntype TextModelType =\n | typeof TEXT_NANO_MODEL_TYPE\n | typeof ModelType.TEXT_SMALL\n | typeof TEXT_MEDIUM_MODEL_TYPE\n | typeof ModelType.TEXT_LARGE\n | typeof TEXT_MEGA_MODEL_TYPE\n | typeof RESPONSE_HANDLER_MODEL_TYPE\n | typeof ACTION_PLANNER_MODEL_TYPE;\n\nfunction getModelNameForType(runtime: IAgentRuntime, modelType: TextModelType): string {\n switch (modelType) {\n case TEXT_NANO_MODEL_TYPE:\n return getNanoModel(runtime);\n case TEXT_MEDIUM_MODEL_TYPE:\n return getMediumModel(runtime);\n case ModelType.TEXT_SMALL:\n return getSmallModel(runtime);\n case ModelType.TEXT_LARGE:\n return getLargeModel(runtime);\n case TEXT_MEGA_MODEL_TYPE:\n return getMegaModel(runtime);\n case RESPONSE_HANDLER_MODEL_TYPE:\n return getResponseHandlerModel(runtime);\n case ACTION_PLANNER_MODEL_TYPE:\n return getActionPlannerModel(runtime);\n default:\n return getLargeModel(runtime);\n }\n}\n\nasync function handleTextWithModelType(\n runtime: IAgentRuntime,\n modelType: TextModelType,\n {\n prompt,\n stopSequences = [],\n maxTokens = 8192,\n temperature = 0.7,\n frequencyPenalty = 0.7,\n presencePenalty = 0.7,\n }: GenerateTextParams\n): Promise<string> {\n try {\n const baseURL = getBaseURL(runtime);\n const customFetch = runtime.fetch ?? undefined;\n const ollama = createOllama({\n fetch: customFetch,\n baseURL,\n });\n\n const model = getModelNameForType(runtime, modelType);\n logger.log(`[Ollama] Using ${modelType} model: ${model}`);\n await ensureModelAvailable(model, baseURL, customFetch);\n\n return await generateOllamaText(ollama, model, {\n prompt,\n system: runtime.character?.system ?? undefined,\n temperature,\n maxTokens,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n });\n } catch (error) {\n logger.error({ error }, `Error in ${modelType} model`);\n return \"Error generating text. Please try again later.\";\n }\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextWithModelType(runtime, ModelType.TEXT_SMALL, params);\n}\n\nexport async function handleTextNano(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextWithModelType(runtime, TEXT_NANO_MODEL_TYPE, params);\n}\n\nexport async function handleTextMedium(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextWithModelType(runtime, TEXT_MEDIUM_MODEL_TYPE, params);\n}\n\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextWithModelType(runtime, ModelType.TEXT_LARGE, params);\n}\n\nexport async function handleTextMega(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextWithModelType(runtime, TEXT_MEGA_MODEL_TYPE, params);\n}\n\nexport async function handleResponseHandler(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextWithModelType(runtime, RESPONSE_HANDLER_MODEL_TYPE, params);\n}\n\nexport async function handleActionPlanner(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextWithModelType(runtime, ACTION_PLANNER_MODEL_TYPE, params);\n}\n",
11
+ "import { ollamaPlugin } from \"./plugin\";\n\nexport * from \"./types\";\nexport * from \"./utils/config\";\nexport { ollamaPlugin };\n\nconst defaultOllamaPlugin = ollamaPlugin;\n\nexport default defaultOllamaPlugin;\n"
11
12
  ],
12
- "mappings": "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",
13
- "debugId": "2E700CE0B57D949164756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "2B1414DEC0C95AEA64756E2164756E21",
14
15
  "names": []
15
16
  }
@@ -1,3 +1,7 @@
1
- export * from "./index";
2
- export { default } from "./index";
1
+ import { ollamaPlugin } from "./plugin";
2
+ export * from "./types";
3
+ export * from "./utils/config";
4
+ export { ollamaPlugin };
5
+ declare const defaultOllamaPlugin: import("@elizaos/core").Plugin;
6
+ export default defaultOllamaPlugin;
3
7
  //# sourceMappingURL=index.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../index.browser.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,QAAA,MAAM,mBAAmB,gCAAe,CAAC;AAEzC,eAAe,mBAAmB,CAAC"}
@@ -1,4 +1,2 @@
1
- export { ollamaPlugin, ollamaPlugin as default } from "./plugin";
2
- export * from "./types";
3
- export * from "./utils/config";
4
- //# sourceMappingURL=index.d.ts.map
1
+ export * from '../index';
2
+ export { default } from '../index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC;AACjE,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,QAAA,MAAM,mBAAmB,gCAAe,CAAC;AAEzC,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ollamaPlugin } from "./plugin";
2
+ export * from "./types";
3
+ export * from "./utils/config";
4
+ export { ollamaPlugin };
5
+ declare const defaultOllamaPlugin: import("@elizaos/core").Plugin;
6
+ export default defaultOllamaPlugin;
7
+ //# sourceMappingURL=index.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../../index.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,QAAA,MAAM,mBAAmB,gCAAe,CAAC;AAEzC,eAAe,mBAAmB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  // plugin.ts
2
- import { logger as logger5, ModelType } from "@elizaos/core";
2
+ import { logger as logger5, ModelType as ModelType2 } from "@elizaos/core";
3
3
 
4
4
  // models/embedding.ts
5
- import { logger as logger2, MAX_EMBEDDING_TOKENS } from "@elizaos/core";
5
+ import { logger as logger2 } from "@elizaos/core";
6
6
  import { embed } from "ai";
7
7
  import { createOllama } from "ollama-ai-provider";
8
8
 
@@ -39,9 +39,24 @@ function getApiBase(runtime) {
39
39
  function getSmallModel(runtime) {
40
40
  return getSetting(runtime, "OLLAMA_SMALL_MODEL") || getSetting(runtime, "SMALL_MODEL") || DEFAULT_SMALL_MODEL;
41
41
  }
42
+ function getNanoModel(runtime) {
43
+ return getSetting(runtime, "OLLAMA_NANO_MODEL") || getSetting(runtime, "NANO_MODEL") || getSmallModel(runtime);
44
+ }
45
+ function getMediumModel(runtime) {
46
+ return getSetting(runtime, "OLLAMA_MEDIUM_MODEL") || getSetting(runtime, "MEDIUM_MODEL") || getSmallModel(runtime);
47
+ }
42
48
  function getLargeModel(runtime) {
43
49
  return getSetting(runtime, "OLLAMA_LARGE_MODEL") || getSetting(runtime, "LARGE_MODEL") || DEFAULT_LARGE_MODEL;
44
50
  }
51
+ function getMegaModel(runtime) {
52
+ return getSetting(runtime, "OLLAMA_MEGA_MODEL") || getSetting(runtime, "MEGA_MODEL") || getLargeModel(runtime);
53
+ }
54
+ function getResponseHandlerModel(runtime) {
55
+ return getSetting(runtime, "OLLAMA_RESPONSE_HANDLER_MODEL") || getSetting(runtime, "OLLAMA_SHOULD_RESPOND_MODEL") || getSetting(runtime, "RESPONSE_HANDLER_MODEL") || getSetting(runtime, "SHOULD_RESPOND_MODEL") || getNanoModel(runtime);
56
+ }
57
+ function getActionPlannerModel(runtime) {
58
+ return getSetting(runtime, "OLLAMA_ACTION_PLANNER_MODEL") || getSetting(runtime, "OLLAMA_PLANNER_MODEL") || getSetting(runtime, "ACTION_PLANNER_MODEL") || getSetting(runtime, "PLANNER_MODEL") || getMediumModel(runtime);
59
+ }
45
60
  function getEmbeddingModel(runtime) {
46
61
  return getSetting(runtime, "OLLAMA_EMBEDDING_MODEL") || DEFAULT_EMBEDDING_MODEL;
47
62
  }
@@ -90,9 +105,9 @@ async function handleTextEmbedding(runtime, params) {
90
105
  logger2.log(`[Ollama] Using TEXT_EMBEDDING model: ${modelName}`);
91
106
  await ensureModelAvailable(modelName, baseURL, customFetch);
92
107
  let text = typeof params === "string" ? params : params ? params.text || "" : "";
93
- const maxChars = MAX_EMBEDDING_TOKENS * 4;
108
+ const maxChars = 8000 * 4;
94
109
  if (text.length > maxChars) {
95
- logger2.warn(`[Ollama] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${MAX_EMBEDDING_TOKENS} tokens`);
110
+ logger2.warn(`[Ollama] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`);
96
111
  text = text.slice(0, maxChars);
97
112
  }
98
113
  const embeddingText = text || "test";
@@ -168,9 +183,14 @@ async function handleObjectLarge(runtime, params) {
168
183
  }
169
184
 
170
185
  // models/text.ts
171
- import { logger as logger4 } from "@elizaos/core";
186
+ import { logger as logger4, ModelType } from "@elizaos/core";
172
187
  import { generateText } from "ai";
173
188
  import { createOllama as createOllama3 } from "ollama-ai-provider";
189
+ var TEXT_NANO_MODEL_TYPE = ModelType.TEXT_NANO ?? "TEXT_NANO";
190
+ var TEXT_MEDIUM_MODEL_TYPE = ModelType.TEXT_MEDIUM ?? "TEXT_MEDIUM";
191
+ var TEXT_MEGA_MODEL_TYPE = ModelType.TEXT_MEGA ?? "TEXT_MEGA";
192
+ var RESPONSE_HANDLER_MODEL_TYPE = ModelType.RESPONSE_HANDLER ?? "RESPONSE_HANDLER";
193
+ var ACTION_PLANNER_MODEL_TYPE = ModelType.ACTION_PLANNER ?? "ACTION_PLANNER";
174
194
  async function generateOllamaText(ollama, model, params) {
175
195
  try {
176
196
  const generateParams = {
@@ -190,36 +210,27 @@ async function generateOllamaText(ollama, model, params) {
190
210
  return "Error generating text. Please try again later.";
191
211
  }
192
212
  }
193
- async function handleTextSmall(runtime, { prompt, stopSequences = [] }) {
194
- try {
195
- const temperature = 0.7;
196
- const frequency_penalty = 0.7;
197
- const presence_penalty = 0.7;
198
- const max_response_length = 8000;
199
- const baseURL = getBaseURL(runtime);
200
- const customFetch = runtime.fetch ?? undefined;
201
- const ollama = createOllama3({
202
- fetch: customFetch,
203
- baseURL
204
- });
205
- const model = getSmallModel(runtime);
206
- logger4.log(`[Ollama] Using TEXT_SMALL model: ${model}`);
207
- await ensureModelAvailable(model, baseURL, customFetch);
208
- return await generateOllamaText(ollama, model, {
209
- prompt,
210
- system: runtime.character?.system ?? undefined,
211
- temperature,
212
- maxTokens: max_response_length,
213
- frequencyPenalty: frequency_penalty,
214
- presencePenalty: presence_penalty,
215
- stopSequences
216
- });
217
- } catch (error) {
218
- logger4.error({ error }, "Error in TEXT_SMALL model");
219
- return "Error generating text. Please try again later.";
213
+ function getModelNameForType(runtime, modelType) {
214
+ switch (modelType) {
215
+ case TEXT_NANO_MODEL_TYPE:
216
+ return getNanoModel(runtime);
217
+ case TEXT_MEDIUM_MODEL_TYPE:
218
+ return getMediumModel(runtime);
219
+ case ModelType.TEXT_SMALL:
220
+ return getSmallModel(runtime);
221
+ case ModelType.TEXT_LARGE:
222
+ return getLargeModel(runtime);
223
+ case TEXT_MEGA_MODEL_TYPE:
224
+ return getMegaModel(runtime);
225
+ case RESPONSE_HANDLER_MODEL_TYPE:
226
+ return getResponseHandlerModel(runtime);
227
+ case ACTION_PLANNER_MODEL_TYPE:
228
+ return getActionPlannerModel(runtime);
229
+ default:
230
+ return getLargeModel(runtime);
220
231
  }
221
232
  }
222
- async function handleTextLarge(runtime, {
233
+ async function handleTextWithModelType(runtime, modelType, {
223
234
  prompt,
224
235
  stopSequences = [],
225
236
  maxTokens = 8192,
@@ -228,14 +239,14 @@ async function handleTextLarge(runtime, {
228
239
  presencePenalty = 0.7
229
240
  }) {
230
241
  try {
231
- const model = getLargeModel(runtime);
232
242
  const baseURL = getBaseURL(runtime);
233
243
  const customFetch = runtime.fetch ?? undefined;
234
244
  const ollama = createOllama3({
235
245
  fetch: customFetch,
236
246
  baseURL
237
247
  });
238
- logger4.log(`[Ollama] Using TEXT_LARGE model: ${model}`);
248
+ const model = getModelNameForType(runtime, modelType);
249
+ logger4.log(`[Ollama] Using ${modelType} model: ${model}`);
239
250
  await ensureModelAvailable(model, baseURL, customFetch);
240
251
  return await generateOllamaText(ollama, model, {
241
252
  prompt,
@@ -247,10 +258,31 @@ async function handleTextLarge(runtime, {
247
258
  stopSequences
248
259
  });
249
260
  } catch (error) {
250
- logger4.error({ error }, "Error in TEXT_LARGE model");
261
+ logger4.error({ error }, `Error in ${modelType} model`);
251
262
  return "Error generating text. Please try again later.";
252
263
  }
253
264
  }
265
+ async function handleTextSmall(runtime, params) {
266
+ return handleTextWithModelType(runtime, ModelType.TEXT_SMALL, params);
267
+ }
268
+ async function handleTextNano(runtime, params) {
269
+ return handleTextWithModelType(runtime, TEXT_NANO_MODEL_TYPE, params);
270
+ }
271
+ async function handleTextMedium(runtime, params) {
272
+ return handleTextWithModelType(runtime, TEXT_MEDIUM_MODEL_TYPE, params);
273
+ }
274
+ async function handleTextLarge(runtime, params) {
275
+ return handleTextWithModelType(runtime, ModelType.TEXT_LARGE, params);
276
+ }
277
+ async function handleTextMega(runtime, params) {
278
+ return handleTextWithModelType(runtime, TEXT_MEGA_MODEL_TYPE, params);
279
+ }
280
+ async function handleResponseHandler(runtime, params) {
281
+ return handleTextWithModelType(runtime, RESPONSE_HANDLER_MODEL_TYPE, params);
282
+ }
283
+ async function handleActionPlanner(runtime, params) {
284
+ return handleTextWithModelType(runtime, ACTION_PLANNER_MODEL_TYPE, params);
285
+ }
254
286
 
255
287
  // plugin.ts
256
288
  var _globalThis = globalThis;
@@ -262,14 +294,34 @@ function getProcessEnv() {
262
294
  return process.env;
263
295
  }
264
296
  var env = getProcessEnv();
297
+ var TEXT_NANO_MODEL_TYPE2 = ModelType2.TEXT_NANO ?? "TEXT_NANO";
298
+ var TEXT_MEDIUM_MODEL_TYPE2 = ModelType2.TEXT_MEDIUM ?? "TEXT_MEDIUM";
299
+ var TEXT_MEGA_MODEL_TYPE2 = ModelType2.TEXT_MEGA ?? "TEXT_MEGA";
300
+ var RESPONSE_HANDLER_MODEL_TYPE2 = ModelType2.RESPONSE_HANDLER ?? "RESPONSE_HANDLER";
301
+ var ACTION_PLANNER_MODEL_TYPE2 = ModelType2.ACTION_PLANNER ?? "ACTION_PLANNER";
265
302
  var ollamaPlugin = {
266
303
  name: "ollama",
267
304
  description: "Ollama plugin for local LLM inference",
268
305
  config: {
269
306
  OLLAMA_API_ENDPOINT: env.OLLAMA_API_ENDPOINT ?? null,
307
+ OLLAMA_NANO_MODEL: env.OLLAMA_NANO_MODEL ?? null,
270
308
  OLLAMA_SMALL_MODEL: env.OLLAMA_SMALL_MODEL ?? null,
271
309
  OLLAMA_MEDIUM_MODEL: env.OLLAMA_MEDIUM_MODEL ?? null,
272
310
  OLLAMA_LARGE_MODEL: env.OLLAMA_LARGE_MODEL ?? null,
311
+ OLLAMA_MEGA_MODEL: env.OLLAMA_MEGA_MODEL ?? null,
312
+ OLLAMA_RESPONSE_HANDLER_MODEL: env.OLLAMA_RESPONSE_HANDLER_MODEL ?? null,
313
+ OLLAMA_SHOULD_RESPOND_MODEL: env.OLLAMA_SHOULD_RESPOND_MODEL ?? null,
314
+ OLLAMA_ACTION_PLANNER_MODEL: env.OLLAMA_ACTION_PLANNER_MODEL ?? null,
315
+ OLLAMA_PLANNER_MODEL: env.OLLAMA_PLANNER_MODEL ?? null,
316
+ NANO_MODEL: env.NANO_MODEL ?? null,
317
+ MEDIUM_MODEL: env.MEDIUM_MODEL ?? null,
318
+ SMALL_MODEL: env.SMALL_MODEL ?? null,
319
+ LARGE_MODEL: env.LARGE_MODEL ?? null,
320
+ MEGA_MODEL: env.MEGA_MODEL ?? null,
321
+ RESPONSE_HANDLER_MODEL: env.RESPONSE_HANDLER_MODEL ?? null,
322
+ SHOULD_RESPOND_MODEL: env.SHOULD_RESPOND_MODEL ?? null,
323
+ ACTION_PLANNER_MODEL: env.ACTION_PLANNER_MODEL ?? null,
324
+ PLANNER_MODEL: env.PLANNER_MODEL ?? null,
273
325
  OLLAMA_EMBEDDING_MODEL: env.OLLAMA_EMBEDDING_MODEL ?? null
274
326
  },
275
327
  async init(_config, runtime) {
@@ -295,19 +347,34 @@ var ollamaPlugin = {
295
347
  }
296
348
  },
297
349
  models: {
298
- [ModelType.TEXT_EMBEDDING]: async (runtime, params) => {
350
+ [ModelType2.TEXT_EMBEDDING]: async (runtime, params) => {
299
351
  return handleTextEmbedding(runtime, params);
300
352
  },
301
- [ModelType.TEXT_SMALL]: async (runtime, params) => {
353
+ [TEXT_NANO_MODEL_TYPE2]: async (runtime, params) => {
354
+ return handleTextNano(runtime, params);
355
+ },
356
+ [ModelType2.TEXT_SMALL]: async (runtime, params) => {
302
357
  return handleTextSmall(runtime, params);
303
358
  },
304
- [ModelType.TEXT_LARGE]: async (runtime, params) => {
359
+ [TEXT_MEDIUM_MODEL_TYPE2]: async (runtime, params) => {
360
+ return handleTextMedium(runtime, params);
361
+ },
362
+ [ModelType2.TEXT_LARGE]: async (runtime, params) => {
305
363
  return handleTextLarge(runtime, params);
306
364
  },
307
- [ModelType.OBJECT_SMALL]: async (runtime, params) => {
365
+ [TEXT_MEGA_MODEL_TYPE2]: async (runtime, params) => {
366
+ return handleTextMega(runtime, params);
367
+ },
368
+ [RESPONSE_HANDLER_MODEL_TYPE2]: async (runtime, params) => {
369
+ return handleResponseHandler(runtime, params);
370
+ },
371
+ [ACTION_PLANNER_MODEL_TYPE2]: async (runtime, params) => {
372
+ return handleActionPlanner(runtime, params);
373
+ },
374
+ [ModelType2.OBJECT_SMALL]: async (runtime, params) => {
308
375
  return handleObjectSmall(runtime, params);
309
376
  },
310
- [ModelType.OBJECT_LARGE]: async (runtime, params) => {
377
+ [ModelType2.OBJECT_LARGE]: async (runtime, params) => {
311
378
  return handleObjectLarge(runtime, params);
312
379
  }
313
380
  },
@@ -333,7 +400,8 @@ var ollamaPlugin = {
333
400
  name: "ollama_test_text_embedding",
334
401
  fn: async (runtime) => {
335
402
  try {
336
- const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {
403
+ const runModel = runtime.useModel.bind(runtime);
404
+ const embedding = await runModel(ModelType2.TEXT_EMBEDDING, {
337
405
  text: "Hello, world!"
338
406
  });
339
407
  logger5.log({ embedding }, "Generated embedding");
@@ -346,7 +414,8 @@ var ollamaPlugin = {
346
414
  name: "ollama_test_text_large",
347
415
  fn: async (runtime) => {
348
416
  try {
349
- const text = await runtime.useModel(ModelType.TEXT_LARGE, {
417
+ const runModel = runtime.useModel.bind(runtime);
418
+ const text = await runModel(ModelType2.TEXT_LARGE, {
350
419
  prompt: "What is the nature of reality in 10 words?"
351
420
  });
352
421
  if (text.length === 0) {
@@ -363,7 +432,8 @@ var ollamaPlugin = {
363
432
  name: "ollama_test_text_small",
364
433
  fn: async (runtime) => {
365
434
  try {
366
- const text = await runtime.useModel(ModelType.TEXT_SMALL, {
435
+ const runModel = runtime.useModel.bind(runtime);
436
+ const text = await runModel(ModelType2.TEXT_SMALL, {
367
437
  prompt: "What is the nature of reality in 10 words?"
368
438
  });
369
439
  if (text.length === 0) {
@@ -380,7 +450,8 @@ var ollamaPlugin = {
380
450
  name: "ollama_test_object_small",
381
451
  fn: async (runtime) => {
382
452
  try {
383
- const object = await runtime.useModel(ModelType.OBJECT_SMALL, {
453
+ const runModel = runtime.useModel.bind(runtime);
454
+ const object = await runModel(ModelType2.OBJECT_SMALL, {
384
455
  prompt: "Generate a JSON object representing a user profile with name, age, and hobbies",
385
456
  temperature: 0.7,
386
457
  schema: undefined
@@ -395,7 +466,8 @@ var ollamaPlugin = {
395
466
  name: "ollama_test_object_large",
396
467
  fn: async (runtime) => {
397
468
  try {
398
- const object = await runtime.useModel(ModelType.OBJECT_LARGE, {
469
+ const runModel = runtime.useModel.bind(runtime);
470
+ const object = await runModel(ModelType2.OBJECT_LARGE, {
399
471
  prompt: "Generate a detailed JSON object representing a restaurant with name, cuisine type, menu items with prices, and customer reviews",
400
472
  temperature: 0.7,
401
473
  schema: undefined
@@ -410,20 +482,28 @@ var ollamaPlugin = {
410
482
  }
411
483
  ]
412
484
  };
485
+ // index.node.ts
486
+ var defaultOllamaPlugin = ollamaPlugin;
487
+ var index_node_default = defaultOllamaPlugin;
413
488
  export {
414
489
  ollamaPlugin,
415
490
  getSmallModel,
416
491
  getSetting,
492
+ getResponseHandlerModel,
493
+ getNanoModel,
494
+ getMegaModel,
495
+ getMediumModel,
417
496
  getLargeModel,
418
497
  getEmbeddingModel,
419
498
  getBaseURL,
420
499
  getApiBase,
421
- ollamaPlugin as default,
500
+ getActionPlannerModel,
501
+ index_node_default as default,
422
502
  DEFAULT_SMALL_MODEL,
423
503
  DEFAULT_OLLAMA_URL,
424
504
  DEFAULT_LARGE_MODEL,
425
505
  DEFAULT_EMBEDDING_MODEL
426
506
  };
427
507
 
428
- //# debugId=3C03D4C2D85D5DF964756E2164756E21
508
+ //# debugId=B620418826C119A264756E2164756E21
429
509
  //# sourceMappingURL=index.node.js.map