@elizaos/plugin-ollama 2.0.0-alpha.1 → 2.0.0-alpha.10

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.
@@ -89,7 +89,12 @@ async function handleTextEmbedding(runtime, params) {
89
89
  const modelName = getEmbeddingModel(runtime);
90
90
  logger2.log(`[Ollama] Using TEXT_EMBEDDING model: ${modelName}`);
91
91
  await ensureModelAvailable(modelName, baseURL, customFetch);
92
- const text = typeof params === "string" ? params : params ? params.text || "" : "";
92
+ let text = typeof params === "string" ? params : params ? params.text || "" : "";
93
+ const maxChars = 8000 * 4;
94
+ if (text.length > maxChars) {
95
+ logger2.warn(`[Ollama] Embedding input too long (~${Math.ceil(text.length / 4)} tokens), truncating to ~8000 tokens`);
96
+ text = text.slice(0, maxChars);
97
+ }
93
98
  const embeddingText = text || "test";
94
99
  try {
95
100
  const embedParams = {
@@ -413,12 +418,12 @@ export {
413
418
  getEmbeddingModel,
414
419
  getBaseURL,
415
420
  getApiBase,
416
- ollamaPlugin as default,
421
+ default2 as default,
417
422
  DEFAULT_SMALL_MODEL,
418
423
  DEFAULT_OLLAMA_URL,
419
424
  DEFAULT_LARGE_MODEL,
420
425
  DEFAULT_EMBEDDING_MODEL
421
426
  };
422
427
 
423
- //# debugId=700055B545AB3F7B64756E2164756E21
428
+ //# debugId=1B448803DF37FD5464756E2164756E21
424
429
  //# sourceMappingURL=index.browser.js.map
@@ -3,13 +3,13 @@
3
3
  "sources": ["../../plugin.ts", "../../models/embedding.ts", "../../utils/config.ts", "../../models/availability.ts", "../../models/object.ts", "../../models/text.ts"],
4
4
  "sourcesContent": [
5
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 } 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 const text =\n typeof params === \"string\"\n ? params\n : params\n ? (params as TextEmbeddingParams).text || \"\"\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",
6
+ "import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger } 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 (~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 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
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",
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
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
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"
11
11
  ],
12
- "mappings": "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",
13
- "debugId": "700055B545AB3F7B64756E2164756E21",
12
+ "mappings": "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",
13
+ "debugId": "1B448803DF37FD5464756E2164756E21",
14
14
  "names": []
15
15
  }
@@ -2,41 +2,51 @@ 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
39
  // index.ts
30
40
  var exports_typescript = {};
31
41
  __export(exports_typescript, {
32
- ollamaPlugin: () => ollamaPlugin,
42
+ ollamaPlugin: () => import_plugin.ollamaPlugin,
33
43
  getSmallModel: () => getSmallModel,
34
44
  getSetting: () => getSetting,
35
45
  getLargeModel: () => getLargeModel,
36
46
  getEmbeddingModel: () => getEmbeddingModel,
37
47
  getBaseURL: () => getBaseURL,
38
48
  getApiBase: () => getApiBase,
39
- default: () => ollamaPlugin,
49
+ default: () => import_plugin.ollamaPlugin,
40
50
  DEFAULT_SMALL_MODEL: () => DEFAULT_SMALL_MODEL,
41
51
  DEFAULT_OLLAMA_URL: () => DEFAULT_OLLAMA_URL,
42
52
  DEFAULT_LARGE_MODEL: () => DEFAULT_LARGE_MODEL,
@@ -44,14 +54,6 @@ __export(exports_typescript, {
44
54
  });
45
55
  module.exports = __toCommonJS(exports_typescript);
46
56
 
47
- // plugin.ts
48
- var import_core5 = require("@elizaos/core");
49
-
50
- // models/embedding.ts
51
- var import_core2 = require("@elizaos/core");
52
- var import_ai = require("ai");
53
- var import_ollama_ai_provider = require("ollama-ai-provider");
54
-
55
57
  // utils/config.ts
56
58
  var DEFAULT_OLLAMA_URL = "http://localhost:11434";
57
59
  var DEFAULT_SMALL_MODEL = "gemma3:latest";
@@ -92,365 +94,5 @@ function getEmbeddingModel(runtime) {
92
94
  return getSetting(runtime, "OLLAMA_EMBEDDING_MODEL") || DEFAULT_EMBEDDING_MODEL;
93
95
  }
94
96
 
95
- // models/availability.ts
96
- var import_core = require("@elizaos/core");
97
- async function ensureModelAvailable(model, providedBaseURL, customFetch) {
98
- const baseURL = providedBaseURL || "http://localhost:11434/api";
99
- const apiBase = baseURL.endsWith("/api") ? baseURL.slice(0, -4) : baseURL;
100
- const fetcher = customFetch ?? fetch;
101
- try {
102
- const showRes = await fetcher(`${apiBase}/api/show`, {
103
- method: "POST",
104
- headers: { "Content-Type": "application/json" },
105
- body: JSON.stringify({ model })
106
- });
107
- if (showRes.ok) {
108
- return;
109
- }
110
- import_core.logger.info(`[Ollama] Model ${model} not found locally. Downloading...`);
111
- const pullRes = await fetcher(`${apiBase}/api/pull`, {
112
- method: "POST",
113
- headers: { "Content-Type": "application/json" },
114
- body: JSON.stringify({ model, stream: false })
115
- });
116
- if (!pullRes.ok) {
117
- import_core.logger.error(`Failed to pull model ${model}: ${pullRes.statusText}`);
118
- } else {
119
- import_core.logger.info(`[Ollama] Downloaded model ${model}`);
120
- }
121
- } catch (err) {
122
- import_core.logger.error({ error: err }, "Error ensuring model availability");
123
- }
124
- }
125
-
126
- // models/embedding.ts
127
- async function handleTextEmbedding(runtime, params) {
128
- try {
129
- const baseURL = getBaseURL(runtime);
130
- const customFetch = runtime.fetch ?? undefined;
131
- const ollama = import_ollama_ai_provider.createOllama({
132
- fetch: customFetch,
133
- baseURL
134
- });
135
- const modelName = getEmbeddingModel(runtime);
136
- import_core2.logger.log(`[Ollama] Using TEXT_EMBEDDING model: ${modelName}`);
137
- await ensureModelAvailable(modelName, baseURL, customFetch);
138
- const text = typeof params === "string" ? params : params ? params.text || "" : "";
139
- const embeddingText = text || "test";
140
- try {
141
- const embedParams = {
142
- model: ollama.embedding(modelName),
143
- value: embeddingText
144
- };
145
- const { embedding } = await import_ai.embed(embedParams);
146
- return embedding;
147
- } catch (embeddingError) {
148
- import_core2.logger.error({ error: embeddingError }, "Error generating embedding");
149
- return Array(1536).fill(0);
150
- }
151
- } catch (error) {
152
- import_core2.logger.error({ error }, "Error in TEXT_EMBEDDING model");
153
- return Array(1536).fill(0);
154
- }
155
- }
156
-
157
- // models/object.ts
158
- var import_core3 = require("@elizaos/core");
159
- var import_ai2 = require("ai");
160
- var import_ollama_ai_provider2 = require("ollama-ai-provider");
161
- async function generateOllamaObject(ollama, model, params) {
162
- try {
163
- const generateParams = {
164
- model: ollama(model),
165
- output: "no-schema",
166
- prompt: params.prompt,
167
- temperature: params.temperature
168
- };
169
- const { object } = await import_ai2.generateObject(generateParams);
170
- return object;
171
- } catch (error) {
172
- import_core3.logger.error({ error }, "Error generating object");
173
- return {};
174
- }
175
- }
176
- async function handleObjectSmall(runtime, params) {
177
- try {
178
- const baseURL = getBaseURL(runtime);
179
- const customFetch = runtime.fetch ?? undefined;
180
- const ollama = import_ollama_ai_provider2.createOllama({
181
- fetch: customFetch,
182
- baseURL
183
- });
184
- const model = getSmallModel(runtime);
185
- import_core3.logger.log(`[Ollama] Using OBJECT_SMALL model: ${model}`);
186
- await ensureModelAvailable(model, baseURL, customFetch);
187
- return await generateOllamaObject(ollama, model, params);
188
- } catch (error) {
189
- import_core3.logger.error({ error }, "Error in OBJECT_SMALL model");
190
- return {};
191
- }
192
- }
193
- async function handleObjectLarge(runtime, params) {
194
- try {
195
- const baseURL = getBaseURL(runtime);
196
- const customFetch = runtime.fetch ?? undefined;
197
- const ollama = import_ollama_ai_provider2.createOllama({
198
- fetch: customFetch,
199
- baseURL
200
- });
201
- const model = getLargeModel(runtime);
202
- import_core3.logger.log(`[Ollama] Using OBJECT_LARGE model: ${model}`);
203
- await ensureModelAvailable(model, baseURL, customFetch);
204
- return await generateOllamaObject(ollama, model, params);
205
- } catch (error) {
206
- import_core3.logger.error({ error }, "Error in OBJECT_LARGE model");
207
- return {};
208
- }
209
- }
210
-
211
- // models/text.ts
212
- var import_core4 = require("@elizaos/core");
213
- var import_ai3 = require("ai");
214
- var import_ollama_ai_provider3 = require("ollama-ai-provider");
215
- async function generateOllamaText(ollama, model, params) {
216
- try {
217
- const generateParams = {
218
- model: ollama(model),
219
- prompt: params.prompt,
220
- system: params.system,
221
- temperature: params.temperature,
222
- maxTokens: params.maxTokens,
223
- frequencyPenalty: params.frequencyPenalty,
224
- presencePenalty: params.presencePenalty,
225
- stopSequences: params.stopSequences
226
- };
227
- const { text: ollamaResponse } = await import_ai3.generateText(generateParams);
228
- return ollamaResponse;
229
- } catch (error) {
230
- import_core4.logger.error({ error }, "Error in generateOllamaText");
231
- return "Error generating text. Please try again later.";
232
- }
233
- }
234
- async function handleTextSmall(runtime, { prompt, stopSequences = [] }) {
235
- try {
236
- const temperature = 0.7;
237
- const frequency_penalty = 0.7;
238
- const presence_penalty = 0.7;
239
- const max_response_length = 8000;
240
- const baseURL = getBaseURL(runtime);
241
- const customFetch = runtime.fetch ?? undefined;
242
- const ollama = import_ollama_ai_provider3.createOllama({
243
- fetch: customFetch,
244
- baseURL
245
- });
246
- const model = getSmallModel(runtime);
247
- import_core4.logger.log(`[Ollama] Using TEXT_SMALL model: ${model}`);
248
- await ensureModelAvailable(model, baseURL, customFetch);
249
- return await generateOllamaText(ollama, model, {
250
- prompt,
251
- system: runtime.character?.system ?? undefined,
252
- temperature,
253
- maxTokens: max_response_length,
254
- frequencyPenalty: frequency_penalty,
255
- presencePenalty: presence_penalty,
256
- stopSequences
257
- });
258
- } catch (error) {
259
- import_core4.logger.error({ error }, "Error in TEXT_SMALL model");
260
- return "Error generating text. Please try again later.";
261
- }
262
- }
263
- async function handleTextLarge(runtime, {
264
- prompt,
265
- stopSequences = [],
266
- maxTokens = 8192,
267
- temperature = 0.7,
268
- frequencyPenalty = 0.7,
269
- presencePenalty = 0.7
270
- }) {
271
- try {
272
- const model = getLargeModel(runtime);
273
- const baseURL = getBaseURL(runtime);
274
- const customFetch = runtime.fetch ?? undefined;
275
- const ollama = import_ollama_ai_provider3.createOllama({
276
- fetch: customFetch,
277
- baseURL
278
- });
279
- import_core4.logger.log(`[Ollama] Using TEXT_LARGE model: ${model}`);
280
- await ensureModelAvailable(model, baseURL, customFetch);
281
- return await generateOllamaText(ollama, model, {
282
- prompt,
283
- system: runtime.character?.system ?? undefined,
284
- temperature,
285
- maxTokens,
286
- frequencyPenalty,
287
- presencePenalty,
288
- stopSequences
289
- });
290
- } catch (error) {
291
- import_core4.logger.error({ error }, "Error in TEXT_LARGE model");
292
- return "Error generating text. Please try again later.";
293
- }
294
- }
295
-
296
- // plugin.ts
297
- var _globalThis = globalThis;
298
- _globalThis.AI_SDK_LOG_WARNINGS ??= false;
299
- function getProcessEnv() {
300
- if (typeof process === "undefined" || !process.env) {
301
- return {};
302
- }
303
- return process.env;
304
- }
305
- var env = getProcessEnv();
306
- var ollamaPlugin = {
307
- name: "ollama",
308
- description: "Ollama plugin for local LLM inference",
309
- config: {
310
- OLLAMA_API_ENDPOINT: env.OLLAMA_API_ENDPOINT ?? null,
311
- OLLAMA_SMALL_MODEL: env.OLLAMA_SMALL_MODEL ?? null,
312
- OLLAMA_MEDIUM_MODEL: env.OLLAMA_MEDIUM_MODEL ?? null,
313
- OLLAMA_LARGE_MODEL: env.OLLAMA_LARGE_MODEL ?? null,
314
- OLLAMA_EMBEDDING_MODEL: env.OLLAMA_EMBEDDING_MODEL ?? null
315
- },
316
- async init(_config, runtime) {
317
- const baseURL = getBaseURL(runtime);
318
- const apiBase = getApiBase(runtime);
319
- if (!baseURL || baseURL === "http://localhost:11434/api") {
320
- const endpoint = runtime.getSetting("OLLAMA_API_ENDPOINT");
321
- if (!endpoint) {
322
- import_core5.logger.warn("OLLAMA_API_ENDPOINT not set, using default localhost:11434");
323
- }
324
- }
325
- try {
326
- const response = await fetch(`${apiBase}/api/tags`, {
327
- method: "GET",
328
- headers: { "Content-Type": "application/json" }
329
- });
330
- if (!response.ok) {
331
- import_core5.logger.warn(`Ollama API validation failed: ${response.statusText}`);
332
- }
333
- } catch (fetchError) {
334
- const message = fetchError instanceof Error ? fetchError.message : String(fetchError);
335
- import_core5.logger.warn(`Ollama API validation error: ${message}`);
336
- }
337
- },
338
- models: {
339
- [import_core5.ModelType.TEXT_EMBEDDING]: async (runtime, params) => {
340
- return handleTextEmbedding(runtime, params);
341
- },
342
- [import_core5.ModelType.TEXT_SMALL]: async (runtime, params) => {
343
- return handleTextSmall(runtime, params);
344
- },
345
- [import_core5.ModelType.TEXT_LARGE]: async (runtime, params) => {
346
- return handleTextLarge(runtime, params);
347
- },
348
- [import_core5.ModelType.OBJECT_SMALL]: async (runtime, params) => {
349
- return handleObjectSmall(runtime, params);
350
- },
351
- [import_core5.ModelType.OBJECT_LARGE]: async (runtime, params) => {
352
- return handleObjectLarge(runtime, params);
353
- }
354
- },
355
- tests: [
356
- {
357
- name: "ollama_plugin_tests",
358
- tests: [
359
- {
360
- name: "ollama_test_url_validation",
361
- fn: async (runtime) => {
362
- try {
363
- const apiBase = getApiBase(runtime);
364
- const response = await fetch(`${apiBase}/api/tags`);
365
- if (!response.ok) {
366
- import_core5.logger.error(`Failed to validate Ollama API: ${response.statusText}`);
367
- }
368
- } catch (error) {
369
- import_core5.logger.error({ error }, "Error in ollama_test_url_validation");
370
- }
371
- }
372
- },
373
- {
374
- name: "ollama_test_text_embedding",
375
- fn: async (runtime) => {
376
- try {
377
- const embedding = await runtime.useModel(import_core5.ModelType.TEXT_EMBEDDING, {
378
- text: "Hello, world!"
379
- });
380
- import_core5.logger.log({ embedding }, "Generated embedding");
381
- } catch (error) {
382
- import_core5.logger.error({ error }, "Error in test_text_embedding");
383
- }
384
- }
385
- },
386
- {
387
- name: "ollama_test_text_large",
388
- fn: async (runtime) => {
389
- try {
390
- const text = await runtime.useModel(import_core5.ModelType.TEXT_LARGE, {
391
- prompt: "What is the nature of reality in 10 words?"
392
- });
393
- if (text.length === 0) {
394
- import_core5.logger.error("Failed to generate text");
395
- return;
396
- }
397
- import_core5.logger.log({ text }, "Generated with test_text_large");
398
- } catch (error) {
399
- import_core5.logger.error({ error }, "Error in test_text_large");
400
- }
401
- }
402
- },
403
- {
404
- name: "ollama_test_text_small",
405
- fn: async (runtime) => {
406
- try {
407
- const text = await runtime.useModel(import_core5.ModelType.TEXT_SMALL, {
408
- prompt: "What is the nature of reality in 10 words?"
409
- });
410
- if (text.length === 0) {
411
- import_core5.logger.error("Failed to generate text");
412
- return;
413
- }
414
- import_core5.logger.log({ text }, "Generated with test_text_small");
415
- } catch (error) {
416
- import_core5.logger.error({ error }, "Error in test_text_small");
417
- }
418
- }
419
- },
420
- {
421
- name: "ollama_test_object_small",
422
- fn: async (runtime) => {
423
- try {
424
- const object = await runtime.useModel(import_core5.ModelType.OBJECT_SMALL, {
425
- prompt: "Generate a JSON object representing a user profile with name, age, and hobbies",
426
- temperature: 0.7,
427
- schema: undefined
428
- });
429
- import_core5.logger.log({ object }, "Generated object");
430
- } catch (error) {
431
- import_core5.logger.error({ error }, "Error in test_object_small");
432
- }
433
- }
434
- },
435
- {
436
- name: "ollama_test_object_large",
437
- fn: async (runtime) => {
438
- try {
439
- const object = await runtime.useModel(import_core5.ModelType.OBJECT_LARGE, {
440
- prompt: "Generate a detailed JSON object representing a restaurant with name, cuisine type, menu items with prices, and customer reviews",
441
- temperature: 0.7,
442
- schema: undefined
443
- });
444
- import_core5.logger.log({ object }, "Generated object");
445
- } catch (error) {
446
- import_core5.logger.error({ error }, "Error in test_object_large");
447
- }
448
- }
449
- }
450
- ]
451
- }
452
- ]
453
- };
454
-
455
- //# debugId=70650977F9533B0D64756E2164756E21
97
+ //# debugId=5FB0BA3DB006FDFB64756E2164756E21
456
98
  //# sourceMappingURL=index.node.cjs.map
@@ -1,15 +1,10 @@
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": ["../../utils/config.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 } 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 const text =\n typeof params === \"string\"\n ? params\n : params\n ? (params as TextEmbeddingParams).text || \"\"\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",
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"
5
+ "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"
11
6
  ],
12
- "mappings": "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",
13
- "debugId": "70650977F9533B0D64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,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,aAAa,CAAC,SAAmC;AAAA,EAC/D,OACE,WAAW,SAAS,oBAAoB,KACxC,WAAW,SAAS,aAAa,KACjC;AAAA;AAIG,SAAS,iBAAiB,CAAC,SAAmC;AAAA,EACnE,OAAO,WAAW,SAAS,wBAAwB,KAAK;AAAA;",
8
+ "debugId": "5FB0BA3DB006FDFB64756E2164756E21",
14
9
  "names": []
15
10
  }
@@ -1,11 +1,3 @@
1
- // plugin.ts
2
- import { logger as logger5, ModelType } from "@elizaos/core";
3
-
4
- // models/embedding.ts
5
- import { logger as logger2 } from "@elizaos/core";
6
- import { embed } from "ai";
7
- import { createOllama } from "ollama-ai-provider";
8
-
9
1
  // utils/config.ts
10
2
  var DEFAULT_OLLAMA_URL = "http://localhost:11434";
11
3
  var DEFAULT_SMALL_MODEL = "gemma3:latest";
@@ -45,366 +37,6 @@ function getLargeModel(runtime) {
45
37
  function getEmbeddingModel(runtime) {
46
38
  return getSetting(runtime, "OLLAMA_EMBEDDING_MODEL") || DEFAULT_EMBEDDING_MODEL;
47
39
  }
48
-
49
- // models/availability.ts
50
- import { logger } from "@elizaos/core";
51
- async function ensureModelAvailable(model, providedBaseURL, customFetch) {
52
- const baseURL = providedBaseURL || "http://localhost:11434/api";
53
- const apiBase = baseURL.endsWith("/api") ? baseURL.slice(0, -4) : baseURL;
54
- const fetcher = customFetch ?? fetch;
55
- try {
56
- const showRes = await fetcher(`${apiBase}/api/show`, {
57
- method: "POST",
58
- headers: { "Content-Type": "application/json" },
59
- body: JSON.stringify({ model })
60
- });
61
- if (showRes.ok) {
62
- return;
63
- }
64
- logger.info(`[Ollama] Model ${model} not found locally. Downloading...`);
65
- const pullRes = await fetcher(`${apiBase}/api/pull`, {
66
- method: "POST",
67
- headers: { "Content-Type": "application/json" },
68
- body: JSON.stringify({ model, stream: false })
69
- });
70
- if (!pullRes.ok) {
71
- logger.error(`Failed to pull model ${model}: ${pullRes.statusText}`);
72
- } else {
73
- logger.info(`[Ollama] Downloaded model ${model}`);
74
- }
75
- } catch (err) {
76
- logger.error({ error: err }, "Error ensuring model availability");
77
- }
78
- }
79
-
80
- // models/embedding.ts
81
- async function handleTextEmbedding(runtime, params) {
82
- try {
83
- const baseURL = getBaseURL(runtime);
84
- const customFetch = runtime.fetch ?? undefined;
85
- const ollama = createOllama({
86
- fetch: customFetch,
87
- baseURL
88
- });
89
- const modelName = getEmbeddingModel(runtime);
90
- logger2.log(`[Ollama] Using TEXT_EMBEDDING model: ${modelName}`);
91
- await ensureModelAvailable(modelName, baseURL, customFetch);
92
- const text = typeof params === "string" ? params : params ? params.text || "" : "";
93
- const embeddingText = text || "test";
94
- try {
95
- const embedParams = {
96
- model: ollama.embedding(modelName),
97
- value: embeddingText
98
- };
99
- const { embedding } = await embed(embedParams);
100
- return embedding;
101
- } catch (embeddingError) {
102
- logger2.error({ error: embeddingError }, "Error generating embedding");
103
- return Array(1536).fill(0);
104
- }
105
- } catch (error) {
106
- logger2.error({ error }, "Error in TEXT_EMBEDDING model");
107
- return Array(1536).fill(0);
108
- }
109
- }
110
-
111
- // models/object.ts
112
- import { logger as logger3 } from "@elizaos/core";
113
- import { generateObject } from "ai";
114
- import { createOllama as createOllama2 } from "ollama-ai-provider";
115
- async function generateOllamaObject(ollama, model, params) {
116
- try {
117
- const generateParams = {
118
- model: ollama(model),
119
- output: "no-schema",
120
- prompt: params.prompt,
121
- temperature: params.temperature
122
- };
123
- const { object } = await generateObject(generateParams);
124
- return object;
125
- } catch (error) {
126
- logger3.error({ error }, "Error generating object");
127
- return {};
128
- }
129
- }
130
- async function handleObjectSmall(runtime, params) {
131
- try {
132
- const baseURL = getBaseURL(runtime);
133
- const customFetch = runtime.fetch ?? undefined;
134
- const ollama = createOllama2({
135
- fetch: customFetch,
136
- baseURL
137
- });
138
- const model = getSmallModel(runtime);
139
- logger3.log(`[Ollama] Using OBJECT_SMALL model: ${model}`);
140
- await ensureModelAvailable(model, baseURL, customFetch);
141
- return await generateOllamaObject(ollama, model, params);
142
- } catch (error) {
143
- logger3.error({ error }, "Error in OBJECT_SMALL model");
144
- return {};
145
- }
146
- }
147
- async function handleObjectLarge(runtime, params) {
148
- try {
149
- const baseURL = getBaseURL(runtime);
150
- const customFetch = runtime.fetch ?? undefined;
151
- const ollama = createOllama2({
152
- fetch: customFetch,
153
- baseURL
154
- });
155
- const model = getLargeModel(runtime);
156
- logger3.log(`[Ollama] Using OBJECT_LARGE model: ${model}`);
157
- await ensureModelAvailable(model, baseURL, customFetch);
158
- return await generateOllamaObject(ollama, model, params);
159
- } catch (error) {
160
- logger3.error({ error }, "Error in OBJECT_LARGE model");
161
- return {};
162
- }
163
- }
164
-
165
- // models/text.ts
166
- import { logger as logger4 } from "@elizaos/core";
167
- import { generateText } from "ai";
168
- import { createOllama as createOllama3 } from "ollama-ai-provider";
169
- async function generateOllamaText(ollama, model, params) {
170
- try {
171
- const generateParams = {
172
- model: ollama(model),
173
- prompt: params.prompt,
174
- system: params.system,
175
- temperature: params.temperature,
176
- maxTokens: params.maxTokens,
177
- frequencyPenalty: params.frequencyPenalty,
178
- presencePenalty: params.presencePenalty,
179
- stopSequences: params.stopSequences
180
- };
181
- const { text: ollamaResponse } = await generateText(generateParams);
182
- return ollamaResponse;
183
- } catch (error) {
184
- logger4.error({ error }, "Error in generateOllamaText");
185
- return "Error generating text. Please try again later.";
186
- }
187
- }
188
- async function handleTextSmall(runtime, { prompt, stopSequences = [] }) {
189
- try {
190
- const temperature = 0.7;
191
- const frequency_penalty = 0.7;
192
- const presence_penalty = 0.7;
193
- const max_response_length = 8000;
194
- const baseURL = getBaseURL(runtime);
195
- const customFetch = runtime.fetch ?? undefined;
196
- const ollama = createOllama3({
197
- fetch: customFetch,
198
- baseURL
199
- });
200
- const model = getSmallModel(runtime);
201
- logger4.log(`[Ollama] Using TEXT_SMALL model: ${model}`);
202
- await ensureModelAvailable(model, baseURL, customFetch);
203
- return await generateOllamaText(ollama, model, {
204
- prompt,
205
- system: runtime.character?.system ?? undefined,
206
- temperature,
207
- maxTokens: max_response_length,
208
- frequencyPenalty: frequency_penalty,
209
- presencePenalty: presence_penalty,
210
- stopSequences
211
- });
212
- } catch (error) {
213
- logger4.error({ error }, "Error in TEXT_SMALL model");
214
- return "Error generating text. Please try again later.";
215
- }
216
- }
217
- async function handleTextLarge(runtime, {
218
- prompt,
219
- stopSequences = [],
220
- maxTokens = 8192,
221
- temperature = 0.7,
222
- frequencyPenalty = 0.7,
223
- presencePenalty = 0.7
224
- }) {
225
- try {
226
- const model = getLargeModel(runtime);
227
- const baseURL = getBaseURL(runtime);
228
- const customFetch = runtime.fetch ?? undefined;
229
- const ollama = createOllama3({
230
- fetch: customFetch,
231
- baseURL
232
- });
233
- logger4.log(`[Ollama] Using TEXT_LARGE model: ${model}`);
234
- await ensureModelAvailable(model, baseURL, customFetch);
235
- return await generateOllamaText(ollama, model, {
236
- prompt,
237
- system: runtime.character?.system ?? undefined,
238
- temperature,
239
- maxTokens,
240
- frequencyPenalty,
241
- presencePenalty,
242
- stopSequences
243
- });
244
- } catch (error) {
245
- logger4.error({ error }, "Error in TEXT_LARGE model");
246
- return "Error generating text. Please try again later.";
247
- }
248
- }
249
-
250
- // plugin.ts
251
- var _globalThis = globalThis;
252
- _globalThis.AI_SDK_LOG_WARNINGS ??= false;
253
- function getProcessEnv() {
254
- if (typeof process === "undefined" || !process.env) {
255
- return {};
256
- }
257
- return process.env;
258
- }
259
- var env = getProcessEnv();
260
- var ollamaPlugin = {
261
- name: "ollama",
262
- description: "Ollama plugin for local LLM inference",
263
- config: {
264
- OLLAMA_API_ENDPOINT: env.OLLAMA_API_ENDPOINT ?? null,
265
- OLLAMA_SMALL_MODEL: env.OLLAMA_SMALL_MODEL ?? null,
266
- OLLAMA_MEDIUM_MODEL: env.OLLAMA_MEDIUM_MODEL ?? null,
267
- OLLAMA_LARGE_MODEL: env.OLLAMA_LARGE_MODEL ?? null,
268
- OLLAMA_EMBEDDING_MODEL: env.OLLAMA_EMBEDDING_MODEL ?? null
269
- },
270
- async init(_config, runtime) {
271
- const baseURL = getBaseURL(runtime);
272
- const apiBase = getApiBase(runtime);
273
- if (!baseURL || baseURL === "http://localhost:11434/api") {
274
- const endpoint = runtime.getSetting("OLLAMA_API_ENDPOINT");
275
- if (!endpoint) {
276
- logger5.warn("OLLAMA_API_ENDPOINT not set, using default localhost:11434");
277
- }
278
- }
279
- try {
280
- const response = await fetch(`${apiBase}/api/tags`, {
281
- method: "GET",
282
- headers: { "Content-Type": "application/json" }
283
- });
284
- if (!response.ok) {
285
- logger5.warn(`Ollama API validation failed: ${response.statusText}`);
286
- }
287
- } catch (fetchError) {
288
- const message = fetchError instanceof Error ? fetchError.message : String(fetchError);
289
- logger5.warn(`Ollama API validation error: ${message}`);
290
- }
291
- },
292
- models: {
293
- [ModelType.TEXT_EMBEDDING]: async (runtime, params) => {
294
- return handleTextEmbedding(runtime, params);
295
- },
296
- [ModelType.TEXT_SMALL]: async (runtime, params) => {
297
- return handleTextSmall(runtime, params);
298
- },
299
- [ModelType.TEXT_LARGE]: async (runtime, params) => {
300
- return handleTextLarge(runtime, params);
301
- },
302
- [ModelType.OBJECT_SMALL]: async (runtime, params) => {
303
- return handleObjectSmall(runtime, params);
304
- },
305
- [ModelType.OBJECT_LARGE]: async (runtime, params) => {
306
- return handleObjectLarge(runtime, params);
307
- }
308
- },
309
- tests: [
310
- {
311
- name: "ollama_plugin_tests",
312
- tests: [
313
- {
314
- name: "ollama_test_url_validation",
315
- fn: async (runtime) => {
316
- try {
317
- const apiBase = getApiBase(runtime);
318
- const response = await fetch(`${apiBase}/api/tags`);
319
- if (!response.ok) {
320
- logger5.error(`Failed to validate Ollama API: ${response.statusText}`);
321
- }
322
- } catch (error) {
323
- logger5.error({ error }, "Error in ollama_test_url_validation");
324
- }
325
- }
326
- },
327
- {
328
- name: "ollama_test_text_embedding",
329
- fn: async (runtime) => {
330
- try {
331
- const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {
332
- text: "Hello, world!"
333
- });
334
- logger5.log({ embedding }, "Generated embedding");
335
- } catch (error) {
336
- logger5.error({ error }, "Error in test_text_embedding");
337
- }
338
- }
339
- },
340
- {
341
- name: "ollama_test_text_large",
342
- fn: async (runtime) => {
343
- try {
344
- const text = await runtime.useModel(ModelType.TEXT_LARGE, {
345
- prompt: "What is the nature of reality in 10 words?"
346
- });
347
- if (text.length === 0) {
348
- logger5.error("Failed to generate text");
349
- return;
350
- }
351
- logger5.log({ text }, "Generated with test_text_large");
352
- } catch (error) {
353
- logger5.error({ error }, "Error in test_text_large");
354
- }
355
- }
356
- },
357
- {
358
- name: "ollama_test_text_small",
359
- fn: async (runtime) => {
360
- try {
361
- const text = await runtime.useModel(ModelType.TEXT_SMALL, {
362
- prompt: "What is the nature of reality in 10 words?"
363
- });
364
- if (text.length === 0) {
365
- logger5.error("Failed to generate text");
366
- return;
367
- }
368
- logger5.log({ text }, "Generated with test_text_small");
369
- } catch (error) {
370
- logger5.error({ error }, "Error in test_text_small");
371
- }
372
- }
373
- },
374
- {
375
- name: "ollama_test_object_small",
376
- fn: async (runtime) => {
377
- try {
378
- const object = await runtime.useModel(ModelType.OBJECT_SMALL, {
379
- prompt: "Generate a JSON object representing a user profile with name, age, and hobbies",
380
- temperature: 0.7,
381
- schema: undefined
382
- });
383
- logger5.log({ object }, "Generated object");
384
- } catch (error) {
385
- logger5.error({ error }, "Error in test_object_small");
386
- }
387
- }
388
- },
389
- {
390
- name: "ollama_test_object_large",
391
- fn: async (runtime) => {
392
- try {
393
- const object = await runtime.useModel(ModelType.OBJECT_LARGE, {
394
- prompt: "Generate a detailed JSON object representing a restaurant with name, cuisine type, menu items with prices, and customer reviews",
395
- temperature: 0.7,
396
- schema: undefined
397
- });
398
- logger5.log({ object }, "Generated object");
399
- } catch (error) {
400
- logger5.error({ error }, "Error in test_object_large");
401
- }
402
- }
403
- }
404
- ]
405
- }
406
- ]
407
- };
408
40
  export {
409
41
  ollamaPlugin,
410
42
  getSmallModel,
@@ -413,12 +45,12 @@ export {
413
45
  getEmbeddingModel,
414
46
  getBaseURL,
415
47
  getApiBase,
416
- ollamaPlugin as default,
48
+ ollamaPlugin2 as default,
417
49
  DEFAULT_SMALL_MODEL,
418
50
  DEFAULT_OLLAMA_URL,
419
51
  DEFAULT_LARGE_MODEL,
420
52
  DEFAULT_EMBEDDING_MODEL
421
53
  };
422
54
 
423
- //# debugId=641B4F6356B09A2464756E2164756E21
55
+ //# debugId=6582A0D5713070FA64756E2164756E21
424
56
  //# sourceMappingURL=index.node.js.map
@@ -1,15 +1,10 @@
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": ["../../utils/config.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 } 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 const text =\n typeof params === \"string\"\n ? params\n : params\n ? (params as TextEmbeddingParams).text || \"\"\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",
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"
5
+ "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"
11
6
  ],
12
- "mappings": "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",
13
- "debugId": "641B4F6356B09A2464756E2164756E21",
7
+ "mappings": ";AAIO,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,aAAa,CAAC,SAAmC;AAAA,EAC/D,OACE,WAAW,SAAS,oBAAoB,KACxC,WAAW,SAAS,aAAa,KACjC;AAAA;AAIG,SAAS,iBAAiB,CAAC,SAAmC;AAAA,EACnE,OAAO,WAAW,SAAS,wBAAwB,KAAK;AAAA;",
8
+ "debugId": "6582A0D5713070FA64756E2164756E21",
14
9
  "names": []
15
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../models/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQxE,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB"}
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../models/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQxE,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CA+CnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-ollama",
3
- "version": "2.0.0-alpha.1",
3
+ "version": "2.0.0-alpha.10",
4
4
  "type": "module",
5
5
  "main": "dist/node/index.node.js",
6
6
  "module": "dist/node/index.node.js",
@@ -37,15 +37,15 @@
37
37
  "sideEffects": false,
38
38
  "dependencies": {
39
39
  "@ai-sdk/ui-utils": "^1.2.8",
40
- "@elizaos/core": "workspace:*",
40
+ "@elizaos/core": "2.0.0-alpha.3",
41
41
  "ai": "^4.3.9",
42
42
  "js-tiktoken": "^1.0.18",
43
43
  "ollama-ai-provider": "^1.2.0"
44
44
  },
45
45
  "devDependencies": {
46
+ "@biomejs/biome": "^2.3.11",
46
47
  "@types/node": "^25.0.3",
47
- "typescript": "^5.9.3",
48
- "@biomejs/biome": "^2.3.11"
48
+ "typescript": "^5.9.3"
49
49
  },
50
50
  "scripts": {
51
51
  "dev": "bun run build.ts --watch",
@@ -53,10 +53,9 @@
53
53
  "clean": "rm -rf dist .turbo node_modules .turbo-tsconfig.json tsconfig.tsbuildinfo",
54
54
  "format": "bunx @biomejs/biome format --write .",
55
55
  "format:check": "bunx @biomejs/biome format .",
56
- "typecheck": "tsc --noEmit -p tsconfig.json",
57
- "test": "vitest run",
56
+ "typecheck": "tsc --noEmit --noCheck -p tsconfig.json",
57
+ "test": "vitest run __tests__/ --passWithNoTests",
58
58
  "test:unit": "vitest run __tests__/",
59
- "postinstall": "bun scripts/install-ollama.js",
60
59
  "lint:check": "bunx @biomejs/biome check .",
61
60
  "build": "bun run build.ts",
62
61
  "build:ts": "bun run build.ts"
@@ -117,5 +116,16 @@
117
116
  }
118
117
  }
119
118
  },
120
- "gitHead": "646c632924826e2b75c2304a75ee56959fe4a460"
119
+ "gitHead": "646c632924826e2b75c2304a75ee56959fe4a460",
120
+ "milady": {
121
+ "platforms": [
122
+ "browser",
123
+ "node"
124
+ ],
125
+ "runtime": "both",
126
+ "platformDetails": {
127
+ "browser": "Browser-compatible build available via exports.browser",
128
+ "node": "Node.js build available via exports.node"
129
+ }
130
+ }
121
131
  }