@elizaos/plugin-ollama 2.0.0-alpha.4 → 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.browser.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": "721B0B6B2A794CB964756E2164756E21",
13
+ "mappings": ";AAOA,mBAAS,sBAAQ;;;ACNjB,mBAAS;AACT;AACA;;;ACCO,IAAM,qBAAqB;AAC3B,IAAM,sBAAsB;AAC5B,IAAM,sBAAsB;AAC5B,IAAM,0BAA0B;AAEvC,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,SAAmC;AAAA,EAC5D,MAAM,cACJ,WAAW,SAAS,qBAAqB,KACzC,WAAW,SAAS,gBAAgB,KACpC;AAAA,EAEF,IAAI,CAAC,YAAY,SAAS,MAAM,GAAG;AAAA,IACjC,OAAO,YAAY,SAAS,GAAG,IAAI,GAAG,mBAAmB,GAAG;AAAA,EAC9D;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,UAAU,CAAC,SAAmC;AAAA,EAC5D,MAAM,UAAU,WAAW,OAAO;AAAA,EAClC,OAAO,QAAQ,SAAS,MAAM,IAAI,QAAQ,MAAM,GAAG,EAAE,IAAI;AAAA;AAGpD,SAAS,aAAa,CAAC,SAAmC;AAAA,EAC/D,OACE,WAAW,SAAS,oBAAoB,KACxC,WAAW,SAAS,aAAa,KACjC;AAAA;AAIG,SAAS,YAAY,CAAC,SAAmC;AAAA,EAC9D,OACE,WAAW,SAAS,mBAAmB,KACvC,WAAW,SAAS,YAAY,KAChC,cAAc,OAAO;AAAA;AAIlB,SAAS,cAAc,CAAC,SAAmC;AAAA,EAChE,OACE,WAAW,SAAS,qBAAqB,KACzC,WAAW,SAAS,cAAc,KAClC,cAAc,OAAO;AAAA;AAIlB,SAAS,aAAa,CAAC,SAAmC;AAAA,EAC/D,OACE,WAAW,SAAS,oBAAoB,KACxC,WAAW,SAAS,aAAa,KACjC;AAAA;AAIG,SAAS,YAAY,CAAC,SAAmC;AAAA,EAC9D,OACE,WAAW,SAAS,mBAAmB,KACvC,WAAW,SAAS,YAAY,KAChC,cAAc,OAAO;AAAA;AAIlB,SAAS,uBAAuB,CAAC,SAAmC;AAAA,EACzE,OACE,WAAW,SAAS,+BAA+B,KACnD,WAAW,SAAS,6BAA6B,KACjD,WAAW,SAAS,wBAAwB,KAC5C,WAAW,SAAS,sBAAsB,KAC1C,aAAa,OAAO;AAAA;AAIjB,SAAS,qBAAqB,CAAC,SAAmC;AAAA,EACvE,OACE,WAAW,SAAS,6BAA6B,KACjD,WAAW,SAAS,sBAAsB,KAC1C,WAAW,SAAS,sBAAsB,KAC1C,WAAW,SAAS,eAAe,KACnC,eAAe,OAAO;AAAA;AAInB,SAAS,iBAAiB,CAAC,SAAmC;AAAA,EACnE,OAAO,WAAW,SAAS,wBAAwB,KAAK;AAAA;;;AC3G1D;AAEA,eAAsB,oBAAoB,CACxC,OACA,iBACA,aACe;AAAA,EACf,MAAM,UAAU,mBAAmB;AAAA,EACnC,MAAM,UAAU,QAAQ,SAAS,MAAM,IAAI,QAAQ,MAAM,GAAG,EAAE,IAAI;AAAA,EAClE,MAAM,UAAU,eAAe;AAAA,EAE/B,IAAI;AAAA,IACF,MAAM,UAAU,MAAM,QAAQ,GAAG,oBAAoB;AAAA,MACnD,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,MAC9C,MAAM,KAAK,UAAU,EAAE,MAAM,CAAC;AAAA,IAChC,CAAC;AAAA,IAED,IAAI,QAAQ,IAAI;AAAA,MACd;AAAA,IACF;AAAA,IAEA,OAAO,KAAK,kBAAkB,yCAAyC;AAAA,IAEvE,MAAM,UAAU,MAAM,QAAQ,GAAG,oBAAoB;AAAA,MACnD,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,MAC9C,MAAM,KAAK,UAAU,EAAE,OAAO,QAAQ,MAAM,CAAC;AAAA,IAC/C,CAAC;AAAA,IAED,IAAI,CAAC,QAAQ,IAAI;AAAA,MACf,OAAO,MAAM,wBAAwB,UAAU,QAAQ,YAAY;AAAA,IACrE,EAAO;AAAA,MACL,OAAO,KAAK,6BAA6B,OAAO;AAAA;AAAA,IAElD,OAAO,KAAK;AAAA,IACZ,OAAO,MAAM,EAAE,OAAO,IAAI,GAAG,mCAAmC;AAAA;AAAA;;;AF5BpE,eAAsB,mBAAmB,CACvC,SACA,QACmB;AAAA,EACnB,IAAI;AAAA,IACF,MAAM,UAAU,WAAW,OAAO;AAAA,IAClC,MAAM,cAAc,QAAQ,SAAS;AAAA,IACrC,MAAM,SAAS,aAAa;AAAA,MAC1B,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,IAED,MAAM,YAAY,kBAAkB,OAAO;AAAA,IAC3C,QAAO,IAAI,wCAAwC,WAAW;AAAA,IAC9D,MAAM,qBAAqB,WAAW,SAAS,WAAW;AAAA,IAE1D,IAAI,OACF,OAAO,WAAW,WACd,SACA,SACG,OAA+B,QAAQ,KACxC;AAAA,IAGR,MAAM,WAAW,OAAQ;AAAA,IACzB,IAAI,KAAK,SAAS,UAAU;AAAA,MAC1B,QAAO,KACL,uCAAuC,KAAK,KAAK,KAAK,SAAS,CAAC,uCAClE;AAAA,MACA,OAAO,KAAK,MAAM,GAAG,QAAQ;AAAA,IAC/B;AAAA,IAEA,MAAM,gBAAgB,QAAQ;AAAA,IAE9B,IAAI;AAAA,MACF,MAAM,cAAc;AAAA,QAElB,OAAO,OAAO,UAAU,SAAS;AAAA,QACjC,OAAO;AAAA,MACT;AAAA,MAEA,QAAQ,cAAc,MAAM,MAAM,WAAW;AAAA,MAC7C,OAAO;AAAA,MACP,OAAO,gBAAgB;AAAA,MACvB,QAAO,MAAM,EAAE,OAAO,eAAe,GAAG,4BAA4B;AAAA,MACpE,OAAO,MAAM,IAAI,EAAE,KAAK,CAAC;AAAA;AAAA,IAE3B,OAAO,OAAO;AAAA,IACd,QAAO,MAAM,EAAE,MAAM,GAAG,+BAA+B;AAAA,IACvD,OAAO,MAAM,IAAI,EAAE,KAAK,CAAC;AAAA;AAAA;;;AGxD7B,mBAAS;AACT;AACA,yBAAS;AAKT,eAAe,oBAAoB,CACjC,QACA,OACA,QAC2D;AAAA,EAC3D,IAAI;AAAA,IACF,MAAM,iBAAiB;AAAA,MAErB,OAAO,OAAO,KAAK;AAAA,MACnB,QAAQ;AAAA,MACR,QAAQ,OAAO;AAAA,MACf,aAAa,OAAO;AAAA,IACtB;AAAA,IAEA,QAAQ,WAAW,MAAM,eAAe,cAAc;AAAA,IACtD,OAAO;AAAA,IACP,OAAO,OAAgB;AAAA,IACvB,QAAO,MAAM,EAAE,MAAM,GAAG,yBAAyB;AAAA,IACjD,OAAO,CAAC;AAAA;AAAA;AAIZ,eAAsB,iBAAiB,CACrC,SACA,QAC2D;AAAA,EAC3D,IAAI;AAAA,IACF,MAAM,UAAU,WAAW,OAAO;AAAA,IAClC,MAAM,cAAc,QAAQ,SAAS;AAAA,IACrC,MAAM,SAAS,cAAa;AAAA,MAC1B,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,IACD,MAAM,QAAQ,cAAc,OAAO;AAAA,IAEnC,QAAO,IAAI,sCAAsC,OAAO;AAAA,IACxD,MAAM,qBAAqB,OAAO,SAAS,WAAW;AAAA,IAEtD,OAAO,MAAM,qBAAqB,QAAQ,OAAO,MAAM;AAAA,IACvD,OAAO,OAAO;AAAA,IACd,QAAO,MAAM,EAAE,MAAM,GAAG,6BAA6B;AAAA,IACrD,OAAO,CAAC;AAAA;AAAA;AAIZ,eAAsB,iBAAiB,CACrC,SACA,QAC2D;AAAA,EAC3D,IAAI;AAAA,IACF,MAAM,UAAU,WAAW,OAAO;AAAA,IAClC,MAAM,cAAc,QAAQ,SAAS;AAAA,IACrC,MAAM,SAAS,cAAa;AAAA,MAC1B,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,IACD,MAAM,QAAQ,cAAc,OAAO;AAAA,IAEnC,QAAO,IAAI,sCAAsC,OAAO;AAAA,IACxD,MAAM,qBAAqB,OAAO,SAAS,WAAW;AAAA,IAEtD,OAAO,MAAM,qBAAqB,QAAQ,OAAO,MAAM;AAAA,IACvD,OAAO,OAAO;AAAA,IACd,QAAO,MAAM,EAAE,MAAM,GAAG,6BAA6B;AAAA,IACrD,OAAO,CAAC;AAAA;AAAA;;;ACvEZ,mBAAS;AACT;AACA,yBAAS;AAcT,IAAM,uBAAwB,UAAU,aAAa;AACrD,IAAM,yBAA0B,UAAU,eAAe;AACzD,IAAM,uBAAwB,UAAU,aAAa;AACrD,IAAM,8BAA+B,UAAU,oBAC7C;AACF,IAAM,4BAA6B,UAAU,kBAAkB;AAE/D,eAAe,kBAAkB,CAC/B,QACA,OACA,QASiB;AAAA,EACjB,IAAI;AAAA,IACF,MAAM,iBAAiB;AAAA,MAErB,OAAO,OAAO,KAAK;AAAA,MACnB,QAAQ,OAAO;AAAA,MACf,QAAQ,OAAO;AAAA,MACf,aAAa,OAAO;AAAA,MACpB,WAAW,OAAO;AAAA,MAClB,kBAAkB,OAAO;AAAA,MACzB,iBAAiB,OAAO;AAAA,MACxB,eAAe,OAAO;AAAA,IACxB;AAAA,IAEA,QAAQ,MAAM,mBAAmB,MAAM,aAAa,cAAc;AAAA,IAClE,OAAO;AAAA,IACP,OAAO,OAAgB;AAAA,IACvB,QAAO,MAAM,EAAE,MAAM,GAAG,6BAA6B;AAAA,IACrD,OAAO;AAAA;AAAA;AAaX,SAAS,mBAAmB,CAAC,SAAwB,WAAkC;AAAA,EACrF,QAAQ;AAAA,SACD;AAAA,MACH,OAAO,aAAa,OAAO;AAAA,SACxB;AAAA,MACH,OAAO,eAAe,OAAO;AAAA,SAC1B,UAAU;AAAA,MACb,OAAO,cAAc,OAAO;AAAA,SACzB,UAAU;AAAA,MACb,OAAO,cAAc,OAAO;AAAA,SACzB;AAAA,MACH,OAAO,aAAa,OAAO;AAAA,SACxB;AAAA,MACH,OAAO,wBAAwB,OAAO;AAAA,SACnC;AAAA,MACH,OAAO,sBAAsB,OAAO;AAAA;AAAA,MAEpC,OAAO,cAAc,OAAO;AAAA;AAAA;AAIlC,eAAe,uBAAuB,CACpC,SACA;AAAA,EAEE;AAAA,EACA,gBAAgB,CAAC;AAAA,EACjB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,GAEH;AAAA,EACjB,IAAI;AAAA,IACF,MAAM,UAAU,WAAW,OAAO;AAAA,IAClC,MAAM,cAAc,QAAQ,SAAS;AAAA,IACrC,MAAM,SAAS,cAAa;AAAA,MAC1B,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,IAED,MAAM,QAAQ,oBAAoB,SAAS,SAAS;AAAA,IACpD,QAAO,IAAI,kBAAkB,oBAAoB,OAAO;AAAA,IACxD,MAAM,qBAAqB,OAAO,SAAS,WAAW;AAAA,IAEtD,OAAO,MAAM,mBAAmB,QAAQ,OAAO;AAAA,MAC7C;AAAA,MACA,QAAQ,QAAQ,WAAW,UAAU;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,IACd,QAAO,MAAM,EAAE,MAAM,GAAG,YAAY,iBAAiB;AAAA,IACrD,OAAO;AAAA;AAAA;AAIX,eAAsB,eAAe,CACnC,SACA,QACiB;AAAA,EACjB,OAAO,wBAAwB,SAAS,UAAU,YAAY,MAAM;AAAA;AAGtE,eAAsB,cAAc,CAClC,SACA,QACiB;AAAA,EACjB,OAAO,wBAAwB,SAAS,sBAAsB,MAAM;AAAA;AAGtE,eAAsB,gBAAgB,CACpC,SACA,QACiB;AAAA,EACjB,OAAO,wBAAwB,SAAS,wBAAwB,MAAM;AAAA;AAGxE,eAAsB,eAAe,CACnC,SACA,QACiB;AAAA,EACjB,OAAO,wBAAwB,SAAS,UAAU,YAAY,MAAM;AAAA;AAGtE,eAAsB,cAAc,CAClC,SACA,QACiB;AAAA,EACjB,OAAO,wBAAwB,SAAS,sBAAsB,MAAM;AAAA;AAGtE,eAAsB,qBAAqB,CACzC,SACA,QACiB;AAAA,EACjB,OAAO,wBAAwB,SAAS,6BAA6B,MAAM;AAAA;AAG7E,eAAsB,mBAAmB,CACvC,SACA,QACiB;AAAA,EACjB,OAAO,wBAAwB,SAAS,2BAA2B,MAAM;AAAA;;;ALpK3E,IAAM,cAAc;AAGpB,YAAY,wBAAwB;AAiBpC,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;AAC1B,IAAM,wBAAwB,WAAU,aAAa;AACrD,IAAM,0BAA0B,WAAU,eAAe;AACzD,IAAM,wBAAwB,WAAU,aAAa;AACrD,IAAM,+BAA+B,WAAU,oBAAoB;AACnE,IAAM,6BAA6B,WAAU,kBAAkB;AAExD,IAAM,eAAuB;AAAA,EAClC,MAAM;AAAA,EACN,aAAa;AAAA,EAEb,QAAQ;AAAA,IACN,qBAAqB,IAAI,uBAAuB;AAAA,IAChD,mBAAmB,IAAI,qBAAqB;AAAA,IAC5C,oBAAoB,IAAI,sBAAsB;AAAA,IAC9C,qBAAqB,IAAI,uBAAuB;AAAA,IAChD,oBAAoB,IAAI,sBAAsB;AAAA,IAC9C,mBAAmB,IAAI,qBAAqB;AAAA,IAC5C,+BAA+B,IAAI,iCAAiC;AAAA,IACpE,6BAA6B,IAAI,+BAA+B;AAAA,IAChE,6BAA6B,IAAI,+BAA+B;AAAA,IAChE,sBAAsB,IAAI,wBAAwB;AAAA,IAClD,YAAY,IAAI,cAAc;AAAA,IAC9B,cAAc,IAAI,gBAAgB;AAAA,IAClC,aAAa,IAAI,eAAe;AAAA,IAChC,aAAa,IAAI,eAAe;AAAA,IAChC,YAAY,IAAI,cAAc;AAAA,IAC9B,wBAAwB,IAAI,0BAA0B;AAAA,IACtD,sBAAsB,IAAI,wBAAwB;AAAA,IAClD,sBAAsB,IAAI,wBAAwB;AAAA,IAClD,eAAe,IAAI,iBAAiB;AAAA,IACpC,wBAAwB,IAAI,0BAA0B;AAAA,EACxD;AAAA,OAEM,KAAI,CAAC,SAAS,SAAS;AAAA,IAC3B,MAAM,UAAU,WAAW,OAAO;AAAA,IAClC,MAAM,UAAU,WAAW,OAAO;AAAA,IAElC,IAAI,CAAC,WAAW,YAAY,8BAA8B;AAAA,MACxD,MAAM,WAAW,QAAQ,WAAW,qBAAqB;AAAA,MACzD,IAAI,CAAC,UAAU;AAAA,QACb,QAAO,KAAK,4DAA4D;AAAA,MAC1E;AAAA,IACF;AAAA,IAEA,IAAI;AAAA,MACF,MAAM,WAAW,MAAM,MAAM,GAAG,oBAAoB;AAAA,QAClD,QAAQ;AAAA,QACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,MAChD,CAAC;AAAA,MAED,IAAI,CAAC,SAAS,IAAI;AAAA,QAChB,QAAO,KAAK,iCAAiC,SAAS,YAAY;AAAA,MACpE;AAAA,MACA,OAAO,YAAqB;AAAA,MAC5B,MAAM,UAAU,sBAAsB,QAAQ,WAAW,UAAU,OAAO,UAAU;AAAA,MACpF,QAAO,KAAK,gCAAgC,SAAS;AAAA;AAAA;AAAA,EAIzD,QAAQ;AAAA,KACL,WAAU,iBAAiB,OAC1B,SACA,WACsB;AAAA,MACtB,OAAO,oBAAoB,SAAS,MAAM;AAAA;AAAA,KAG3C,wBAAuB,OACtB,SACA,WACoB;AAAA,MACpB,OAAO,eAAe,SAAS,MAAM;AAAA;AAAA,KAGtC,WAAU,aAAa,OACtB,SACA,WACoB;AAAA,MACpB,OAAO,gBAAgB,SAAS,MAAM;AAAA;AAAA,KAGvC,0BAAyB,OACxB,SACA,WACoB;AAAA,MACpB,OAAO,iBAAiB,SAAS,MAAM;AAAA;AAAA,KAGxC,WAAU,aAAa,OACtB,SACA,WACoB;AAAA,MACpB,OAAO,gBAAgB,SAAS,MAAM;AAAA;AAAA,KAGvC,wBAAuB,OACtB,SACA,WACoB;AAAA,MACpB,OAAO,eAAe,SAAS,MAAM;AAAA;AAAA,KAGtC,+BAA8B,OAC7B,SACA,WACoB;AAAA,MACpB,OAAO,sBAAsB,SAAS,MAAM;AAAA;AAAA,KAG7C,6BAA4B,OAC3B,SACA,WACoB;AAAA,MACpB,OAAO,oBAAoB,SAAS,MAAM;AAAA;AAAA,KAG3C,WAAU,eAAe,OACxB,SACA,WAC8D;AAAA,MAC9D,OAAO,kBAAkB,SAAS,MAAM;AAAA;AAAA,KAGzC,WAAU,eAAe,OACxB,SACA,WAC8D;AAAA,MAC9D,OAAO,kBAAkB,SAAS,MAAM;AAAA;AAAA,EAE5C;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,UAAU,WAAW,OAAO;AAAA,cAClC,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB;AAAA,cAClD,IAAI,CAAC,SAAS,IAAI;AAAA,gBAChB,QAAO,MAAM,kCAAkC,SAAS,YAAY;AAAA,cACtE;AAAA,cACA,OAAO,OAAO;AAAA,cACd,QAAO,MAAM,EAAE,MAAM,GAAG,qCAAqC;AAAA;AAAA;AAAA,QAGnE;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,WAAW,QAAQ,SAAS,KAAK,OAAO;AAAA,cAC9C,MAAM,YAAY,MAAM,SAAS,WAAU,gBAAgB;AAAA,gBACzD,MAAM;AAAA,cACR,CAAC;AAAA,cACD,QAAO,IAAI,EAAE,UAAU,GAAG,qBAAqB;AAAA,cAC/C,OAAO,OAAO;AAAA,cACd,QAAO,MAAM,EAAE,MAAM,GAAG,8BAA8B;AAAA;AAAA;AAAA,QAG5D;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,WAAW,QAAQ,SAAS,KAAK,OAAO;AAAA,cAC9C,MAAM,OAAO,MAAM,SAAS,WAAU,YAAY;AAAA,gBAChD,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,IAAI,KAAK,WAAW,GAAG;AAAA,gBACrB,QAAO,MAAM,yBAAyB;AAAA,gBACtC;AAAA,cACF;AAAA,cACA,QAAO,IAAI,EAAE,KAAK,GAAG,gCAAgC;AAAA,cACrD,OAAO,OAAO;AAAA,cACd,QAAO,MAAM,EAAE,MAAM,GAAG,0BAA0B;AAAA;AAAA;AAAA,QAGxD;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,WAAW,QAAQ,SAAS,KAAK,OAAO;AAAA,cAC9C,MAAM,OAAO,MAAM,SAAS,WAAU,YAAY;AAAA,gBAChD,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,IAAI,KAAK,WAAW,GAAG;AAAA,gBACrB,QAAO,MAAM,yBAAyB;AAAA,gBACtC;AAAA,cACF;AAAA,cACA,QAAO,IAAI,EAAE,KAAK,GAAG,gCAAgC;AAAA,cACrD,OAAO,OAAO;AAAA,cACd,QAAO,MAAM,EAAE,MAAM,GAAG,0BAA0B;AAAA;AAAA;AAAA,QAGxD;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,WAAW,QAAQ,SAAS,KAAK,OAAO;AAAA,cAC9C,MAAM,SAAS,MAAM,SAAS,WAAU,cAAc;AAAA,gBACpD,QACE;AAAA,gBACF,aAAa;AAAA,gBACb,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,QAAO,IAAI,EAAE,OAAO,GAAG,kBAAkB;AAAA,cACzC,OAAO,OAAO;AAAA,cACd,QAAO,MAAM,EAAE,MAAM,GAAG,4BAA4B;AAAA;AAAA;AAAA,QAG1D;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,WAAW,QAAQ,SAAS,KAAK,OAAO;AAAA,cAC9C,MAAM,SAAS,MAAM,SAAS,WAAU,cAAc;AAAA,gBACpD,QACE;AAAA,gBACF,aAAa;AAAA,gBACb,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,QAAO,IAAI,EAAE,OAAO,GAAG,kBAAkB;AAAA,cACzC,OAAO,OAAO;AAAA,cACd,QAAO,MAAM,EAAE,MAAM,GAAG,4BAA4B;AAAA;AAAA;AAAA,QAG1D;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;AM3QA,IAAM,sBAAsB;AAE5B,IAAe;",
14
+ "debugId": "2C63C4D5DEE6210E64756E2164756E21",
14
15
  "names": []
15
16
  }
@@ -2,47 +2,62 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
29
- // index.ts
30
- var exports_typescript = {};
31
- __export(exports_typescript, {
39
+ // index.node.ts
40
+ var exports_index_node = {};
41
+ __export(exports_index_node, {
32
42
  ollamaPlugin: () => ollamaPlugin,
33
43
  getSmallModel: () => getSmallModel,
34
44
  getSetting: () => getSetting,
45
+ getResponseHandlerModel: () => getResponseHandlerModel,
46
+ getNanoModel: () => getNanoModel,
47
+ getMegaModel: () => getMegaModel,
48
+ getMediumModel: () => getMediumModel,
35
49
  getLargeModel: () => getLargeModel,
36
50
  getEmbeddingModel: () => getEmbeddingModel,
37
51
  getBaseURL: () => getBaseURL,
38
52
  getApiBase: () => getApiBase,
39
- default: () => ollamaPlugin,
53
+ getActionPlannerModel: () => getActionPlannerModel,
54
+ default: () => index_node_default,
40
55
  DEFAULT_SMALL_MODEL: () => DEFAULT_SMALL_MODEL,
41
56
  DEFAULT_OLLAMA_URL: () => DEFAULT_OLLAMA_URL,
42
57
  DEFAULT_LARGE_MODEL: () => DEFAULT_LARGE_MODEL,
43
58
  DEFAULT_EMBEDDING_MODEL: () => DEFAULT_EMBEDDING_MODEL
44
59
  });
45
- module.exports = __toCommonJS(exports_typescript);
60
+ module.exports = __toCommonJS(exports_index_node);
46
61
 
47
62
  // plugin.ts
48
63
  var import_core5 = require("@elizaos/core");
@@ -85,9 +100,24 @@ function getApiBase(runtime) {
85
100
  function getSmallModel(runtime) {
86
101
  return getSetting(runtime, "OLLAMA_SMALL_MODEL") || getSetting(runtime, "SMALL_MODEL") || DEFAULT_SMALL_MODEL;
87
102
  }
103
+ function getNanoModel(runtime) {
104
+ return getSetting(runtime, "OLLAMA_NANO_MODEL") || getSetting(runtime, "NANO_MODEL") || getSmallModel(runtime);
105
+ }
106
+ function getMediumModel(runtime) {
107
+ return getSetting(runtime, "OLLAMA_MEDIUM_MODEL") || getSetting(runtime, "MEDIUM_MODEL") || getSmallModel(runtime);
108
+ }
88
109
  function getLargeModel(runtime) {
89
110
  return getSetting(runtime, "OLLAMA_LARGE_MODEL") || getSetting(runtime, "LARGE_MODEL") || DEFAULT_LARGE_MODEL;
90
111
  }
112
+ function getMegaModel(runtime) {
113
+ return getSetting(runtime, "OLLAMA_MEGA_MODEL") || getSetting(runtime, "MEGA_MODEL") || getLargeModel(runtime);
114
+ }
115
+ function getResponseHandlerModel(runtime) {
116
+ 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);
117
+ }
118
+ function getActionPlannerModel(runtime) {
119
+ return getSetting(runtime, "OLLAMA_ACTION_PLANNER_MODEL") || getSetting(runtime, "OLLAMA_PLANNER_MODEL") || getSetting(runtime, "ACTION_PLANNER_MODEL") || getSetting(runtime, "PLANNER_MODEL") || getMediumModel(runtime);
120
+ }
91
121
  function getEmbeddingModel(runtime) {
92
122
  return getSetting(runtime, "OLLAMA_EMBEDDING_MODEL") || DEFAULT_EMBEDDING_MODEL;
93
123
  }
@@ -136,9 +166,9 @@ async function handleTextEmbedding(runtime, params) {
136
166
  import_core2.logger.log(`[Ollama] Using TEXT_EMBEDDING model: ${modelName}`);
137
167
  await ensureModelAvailable(modelName, baseURL, customFetch);
138
168
  let text = typeof params === "string" ? params : params ? params.text || "" : "";
139
- const maxChars = import_core2.MAX_EMBEDDING_TOKENS * 4;
169
+ const maxChars = 8000 * 4;
140
170
  if (text.length > maxChars) {
141
- import_core2.logger.warn(`[Ollama] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~${import_core2.MAX_EMBEDDING_TOKENS} tokens`);
171
+ import_core2.logger.warn(`[Ollama] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`);
142
172
  text = text.slice(0, maxChars);
143
173
  }
144
174
  const embeddingText = text || "test";
@@ -217,6 +247,11 @@ async function handleObjectLarge(runtime, params) {
217
247
  var import_core4 = require("@elizaos/core");
218
248
  var import_ai3 = require("ai");
219
249
  var import_ollama_ai_provider3 = require("ollama-ai-provider");
250
+ var TEXT_NANO_MODEL_TYPE = import_core4.ModelType.TEXT_NANO ?? "TEXT_NANO";
251
+ var TEXT_MEDIUM_MODEL_TYPE = import_core4.ModelType.TEXT_MEDIUM ?? "TEXT_MEDIUM";
252
+ var TEXT_MEGA_MODEL_TYPE = import_core4.ModelType.TEXT_MEGA ?? "TEXT_MEGA";
253
+ var RESPONSE_HANDLER_MODEL_TYPE = import_core4.ModelType.RESPONSE_HANDLER ?? "RESPONSE_HANDLER";
254
+ var ACTION_PLANNER_MODEL_TYPE = import_core4.ModelType.ACTION_PLANNER ?? "ACTION_PLANNER";
220
255
  async function generateOllamaText(ollama, model, params) {
221
256
  try {
222
257
  const generateParams = {
@@ -236,36 +271,27 @@ async function generateOllamaText(ollama, model, params) {
236
271
  return "Error generating text. Please try again later.";
237
272
  }
238
273
  }
239
- async function handleTextSmall(runtime, { prompt, stopSequences = [] }) {
240
- try {
241
- const temperature = 0.7;
242
- const frequency_penalty = 0.7;
243
- const presence_penalty = 0.7;
244
- const max_response_length = 8000;
245
- const baseURL = getBaseURL(runtime);
246
- const customFetch = runtime.fetch ?? undefined;
247
- const ollama = import_ollama_ai_provider3.createOllama({
248
- fetch: customFetch,
249
- baseURL
250
- });
251
- const model = getSmallModel(runtime);
252
- import_core4.logger.log(`[Ollama] Using TEXT_SMALL model: ${model}`);
253
- await ensureModelAvailable(model, baseURL, customFetch);
254
- return await generateOllamaText(ollama, model, {
255
- prompt,
256
- system: runtime.character?.system ?? undefined,
257
- temperature,
258
- maxTokens: max_response_length,
259
- frequencyPenalty: frequency_penalty,
260
- presencePenalty: presence_penalty,
261
- stopSequences
262
- });
263
- } catch (error) {
264
- import_core4.logger.error({ error }, "Error in TEXT_SMALL model");
265
- return "Error generating text. Please try again later.";
274
+ function getModelNameForType(runtime, modelType) {
275
+ switch (modelType) {
276
+ case TEXT_NANO_MODEL_TYPE:
277
+ return getNanoModel(runtime);
278
+ case TEXT_MEDIUM_MODEL_TYPE:
279
+ return getMediumModel(runtime);
280
+ case import_core4.ModelType.TEXT_SMALL:
281
+ return getSmallModel(runtime);
282
+ case import_core4.ModelType.TEXT_LARGE:
283
+ return getLargeModel(runtime);
284
+ case TEXT_MEGA_MODEL_TYPE:
285
+ return getMegaModel(runtime);
286
+ case RESPONSE_HANDLER_MODEL_TYPE:
287
+ return getResponseHandlerModel(runtime);
288
+ case ACTION_PLANNER_MODEL_TYPE:
289
+ return getActionPlannerModel(runtime);
290
+ default:
291
+ return getLargeModel(runtime);
266
292
  }
267
293
  }
268
- async function handleTextLarge(runtime, {
294
+ async function handleTextWithModelType(runtime, modelType, {
269
295
  prompt,
270
296
  stopSequences = [],
271
297
  maxTokens = 8192,
@@ -274,14 +300,14 @@ async function handleTextLarge(runtime, {
274
300
  presencePenalty = 0.7
275
301
  }) {
276
302
  try {
277
- const model = getLargeModel(runtime);
278
303
  const baseURL = getBaseURL(runtime);
279
304
  const customFetch = runtime.fetch ?? undefined;
280
305
  const ollama = import_ollama_ai_provider3.createOllama({
281
306
  fetch: customFetch,
282
307
  baseURL
283
308
  });
284
- import_core4.logger.log(`[Ollama] Using TEXT_LARGE model: ${model}`);
309
+ const model = getModelNameForType(runtime, modelType);
310
+ import_core4.logger.log(`[Ollama] Using ${modelType} model: ${model}`);
285
311
  await ensureModelAvailable(model, baseURL, customFetch);
286
312
  return await generateOllamaText(ollama, model, {
287
313
  prompt,
@@ -293,10 +319,31 @@ async function handleTextLarge(runtime, {
293
319
  stopSequences
294
320
  });
295
321
  } catch (error) {
296
- import_core4.logger.error({ error }, "Error in TEXT_LARGE model");
322
+ import_core4.logger.error({ error }, `Error in ${modelType} model`);
297
323
  return "Error generating text. Please try again later.";
298
324
  }
299
325
  }
326
+ async function handleTextSmall(runtime, params) {
327
+ return handleTextWithModelType(runtime, import_core4.ModelType.TEXT_SMALL, params);
328
+ }
329
+ async function handleTextNano(runtime, params) {
330
+ return handleTextWithModelType(runtime, TEXT_NANO_MODEL_TYPE, params);
331
+ }
332
+ async function handleTextMedium(runtime, params) {
333
+ return handleTextWithModelType(runtime, TEXT_MEDIUM_MODEL_TYPE, params);
334
+ }
335
+ async function handleTextLarge(runtime, params) {
336
+ return handleTextWithModelType(runtime, import_core4.ModelType.TEXT_LARGE, params);
337
+ }
338
+ async function handleTextMega(runtime, params) {
339
+ return handleTextWithModelType(runtime, TEXT_MEGA_MODEL_TYPE, params);
340
+ }
341
+ async function handleResponseHandler(runtime, params) {
342
+ return handleTextWithModelType(runtime, RESPONSE_HANDLER_MODEL_TYPE, params);
343
+ }
344
+ async function handleActionPlanner(runtime, params) {
345
+ return handleTextWithModelType(runtime, ACTION_PLANNER_MODEL_TYPE, params);
346
+ }
300
347
 
301
348
  // plugin.ts
302
349
  var _globalThis = globalThis;
@@ -308,14 +355,34 @@ function getProcessEnv() {
308
355
  return process.env;
309
356
  }
310
357
  var env = getProcessEnv();
358
+ var TEXT_NANO_MODEL_TYPE2 = import_core5.ModelType.TEXT_NANO ?? "TEXT_NANO";
359
+ var TEXT_MEDIUM_MODEL_TYPE2 = import_core5.ModelType.TEXT_MEDIUM ?? "TEXT_MEDIUM";
360
+ var TEXT_MEGA_MODEL_TYPE2 = import_core5.ModelType.TEXT_MEGA ?? "TEXT_MEGA";
361
+ var RESPONSE_HANDLER_MODEL_TYPE2 = import_core5.ModelType.RESPONSE_HANDLER ?? "RESPONSE_HANDLER";
362
+ var ACTION_PLANNER_MODEL_TYPE2 = import_core5.ModelType.ACTION_PLANNER ?? "ACTION_PLANNER";
311
363
  var ollamaPlugin = {
312
364
  name: "ollama",
313
365
  description: "Ollama plugin for local LLM inference",
314
366
  config: {
315
367
  OLLAMA_API_ENDPOINT: env.OLLAMA_API_ENDPOINT ?? null,
368
+ OLLAMA_NANO_MODEL: env.OLLAMA_NANO_MODEL ?? null,
316
369
  OLLAMA_SMALL_MODEL: env.OLLAMA_SMALL_MODEL ?? null,
317
370
  OLLAMA_MEDIUM_MODEL: env.OLLAMA_MEDIUM_MODEL ?? null,
318
371
  OLLAMA_LARGE_MODEL: env.OLLAMA_LARGE_MODEL ?? null,
372
+ OLLAMA_MEGA_MODEL: env.OLLAMA_MEGA_MODEL ?? null,
373
+ OLLAMA_RESPONSE_HANDLER_MODEL: env.OLLAMA_RESPONSE_HANDLER_MODEL ?? null,
374
+ OLLAMA_SHOULD_RESPOND_MODEL: env.OLLAMA_SHOULD_RESPOND_MODEL ?? null,
375
+ OLLAMA_ACTION_PLANNER_MODEL: env.OLLAMA_ACTION_PLANNER_MODEL ?? null,
376
+ OLLAMA_PLANNER_MODEL: env.OLLAMA_PLANNER_MODEL ?? null,
377
+ NANO_MODEL: env.NANO_MODEL ?? null,
378
+ MEDIUM_MODEL: env.MEDIUM_MODEL ?? null,
379
+ SMALL_MODEL: env.SMALL_MODEL ?? null,
380
+ LARGE_MODEL: env.LARGE_MODEL ?? null,
381
+ MEGA_MODEL: env.MEGA_MODEL ?? null,
382
+ RESPONSE_HANDLER_MODEL: env.RESPONSE_HANDLER_MODEL ?? null,
383
+ SHOULD_RESPOND_MODEL: env.SHOULD_RESPOND_MODEL ?? null,
384
+ ACTION_PLANNER_MODEL: env.ACTION_PLANNER_MODEL ?? null,
385
+ PLANNER_MODEL: env.PLANNER_MODEL ?? null,
319
386
  OLLAMA_EMBEDDING_MODEL: env.OLLAMA_EMBEDDING_MODEL ?? null
320
387
  },
321
388
  async init(_config, runtime) {
@@ -344,12 +411,27 @@ var ollamaPlugin = {
344
411
  [import_core5.ModelType.TEXT_EMBEDDING]: async (runtime, params) => {
345
412
  return handleTextEmbedding(runtime, params);
346
413
  },
414
+ [TEXT_NANO_MODEL_TYPE2]: async (runtime, params) => {
415
+ return handleTextNano(runtime, params);
416
+ },
347
417
  [import_core5.ModelType.TEXT_SMALL]: async (runtime, params) => {
348
418
  return handleTextSmall(runtime, params);
349
419
  },
420
+ [TEXT_MEDIUM_MODEL_TYPE2]: async (runtime, params) => {
421
+ return handleTextMedium(runtime, params);
422
+ },
350
423
  [import_core5.ModelType.TEXT_LARGE]: async (runtime, params) => {
351
424
  return handleTextLarge(runtime, params);
352
425
  },
426
+ [TEXT_MEGA_MODEL_TYPE2]: async (runtime, params) => {
427
+ return handleTextMega(runtime, params);
428
+ },
429
+ [RESPONSE_HANDLER_MODEL_TYPE2]: async (runtime, params) => {
430
+ return handleResponseHandler(runtime, params);
431
+ },
432
+ [ACTION_PLANNER_MODEL_TYPE2]: async (runtime, params) => {
433
+ return handleActionPlanner(runtime, params);
434
+ },
353
435
  [import_core5.ModelType.OBJECT_SMALL]: async (runtime, params) => {
354
436
  return handleObjectSmall(runtime, params);
355
437
  },
@@ -379,7 +461,8 @@ var ollamaPlugin = {
379
461
  name: "ollama_test_text_embedding",
380
462
  fn: async (runtime) => {
381
463
  try {
382
- const embedding = await runtime.useModel(import_core5.ModelType.TEXT_EMBEDDING, {
464
+ const runModel = runtime.useModel.bind(runtime);
465
+ const embedding = await runModel(import_core5.ModelType.TEXT_EMBEDDING, {
383
466
  text: "Hello, world!"
384
467
  });
385
468
  import_core5.logger.log({ embedding }, "Generated embedding");
@@ -392,7 +475,8 @@ var ollamaPlugin = {
392
475
  name: "ollama_test_text_large",
393
476
  fn: async (runtime) => {
394
477
  try {
395
- const text = await runtime.useModel(import_core5.ModelType.TEXT_LARGE, {
478
+ const runModel = runtime.useModel.bind(runtime);
479
+ const text = await runModel(import_core5.ModelType.TEXT_LARGE, {
396
480
  prompt: "What is the nature of reality in 10 words?"
397
481
  });
398
482
  if (text.length === 0) {
@@ -409,7 +493,8 @@ var ollamaPlugin = {
409
493
  name: "ollama_test_text_small",
410
494
  fn: async (runtime) => {
411
495
  try {
412
- const text = await runtime.useModel(import_core5.ModelType.TEXT_SMALL, {
496
+ const runModel = runtime.useModel.bind(runtime);
497
+ const text = await runModel(import_core5.ModelType.TEXT_SMALL, {
413
498
  prompt: "What is the nature of reality in 10 words?"
414
499
  });
415
500
  if (text.length === 0) {
@@ -426,7 +511,8 @@ var ollamaPlugin = {
426
511
  name: "ollama_test_object_small",
427
512
  fn: async (runtime) => {
428
513
  try {
429
- const object = await runtime.useModel(import_core5.ModelType.OBJECT_SMALL, {
514
+ const runModel = runtime.useModel.bind(runtime);
515
+ const object = await runModel(import_core5.ModelType.OBJECT_SMALL, {
430
516
  prompt: "Generate a JSON object representing a user profile with name, age, and hobbies",
431
517
  temperature: 0.7,
432
518
  schema: undefined
@@ -441,7 +527,8 @@ var ollamaPlugin = {
441
527
  name: "ollama_test_object_large",
442
528
  fn: async (runtime) => {
443
529
  try {
444
- const object = await runtime.useModel(import_core5.ModelType.OBJECT_LARGE, {
530
+ const runModel = runtime.useModel.bind(runtime);
531
+ const object = await runModel(import_core5.ModelType.OBJECT_LARGE, {
445
532
  prompt: "Generate a detailed JSON object representing a restaurant with name, cuisine type, menu items with prices, and customer reviews",
446
533
  temperature: 0.7,
447
534
  schema: undefined
@@ -456,6 +543,9 @@ var ollamaPlugin = {
456
543
  }
457
544
  ]
458
545
  };
546
+ // index.node.ts
547
+ var defaultOllamaPlugin = ollamaPlugin;
548
+ var index_node_default = defaultOllamaPlugin;
459
549
 
460
- //# debugId=2E700CE0B57D949164756E2164756E21
550
+ //# debugId=2B1414DEC0C95AEA64756E2164756E21
461
551
  //# sourceMappingURL=index.node.cjs.map