@elizaos/plugin-elizacloud 1.5.20 → 1.7.2
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.
- package/dist/browser/index.browser.js +3 -3
- package/dist/browser/index.browser.js.map +8 -8
- package/dist/cjs/index.node.cjs +72 -61
- package/dist/cjs/index.node.js.map +8 -8
- package/dist/models/image.d.ts +6 -8
- package/dist/models/object.d.ts +2 -3
- package/dist/models/text.d.ts +11 -3
- package/dist/node/index.node.js +73 -62
- package/dist/node/index.node.js.map +8 -8
- package/package.json +8 -8
package/dist/cjs/index.node.cjs
CHANGED
|
@@ -56,7 +56,11 @@ var import_core2 = require("@elizaos/core");
|
|
|
56
56
|
// src/utils/config.ts
|
|
57
57
|
var import_core = require("@elizaos/core");
|
|
58
58
|
function getSetting(runtime, key, defaultValue) {
|
|
59
|
-
|
|
59
|
+
const value = runtime.getSetting(key);
|
|
60
|
+
if (value !== undefined && value !== null) {
|
|
61
|
+
return String(value);
|
|
62
|
+
}
|
|
63
|
+
return process.env[key] ?? defaultValue;
|
|
60
64
|
}
|
|
61
65
|
function isBrowser() {
|
|
62
66
|
return typeof globalThis !== "undefined" && typeof globalThis.document !== "undefined";
|
|
@@ -167,33 +171,36 @@ function createOpenAIClient(runtime) {
|
|
|
167
171
|
// src/utils/events.ts
|
|
168
172
|
var import_core3 = require("@elizaos/core");
|
|
169
173
|
function emitModelUsageEvent(runtime, type, prompt, usage) {
|
|
174
|
+
const truncatedPrompt = typeof prompt === "string" ? prompt.length > 200 ? `${prompt.slice(0, 200)}…` : prompt : "";
|
|
175
|
+
const inputTokens = Number(usage.inputTokens || 0);
|
|
176
|
+
const outputTokens = Number(usage.outputTokens || 0);
|
|
177
|
+
const totalTokens = Number(usage.totalTokens != null ? usage.totalTokens : inputTokens + outputTokens);
|
|
170
178
|
runtime.emitEvent(import_core3.EventType.MODEL_USED, {
|
|
171
|
-
|
|
179
|
+
runtime,
|
|
180
|
+
source: "elizacloud",
|
|
181
|
+
provider: "elizacloud",
|
|
172
182
|
type,
|
|
173
|
-
prompt,
|
|
183
|
+
prompt: truncatedPrompt,
|
|
174
184
|
tokens: {
|
|
175
|
-
prompt:
|
|
176
|
-
completion:
|
|
177
|
-
total:
|
|
185
|
+
prompt: inputTokens,
|
|
186
|
+
completion: outputTokens,
|
|
187
|
+
total: totalTokens
|
|
178
188
|
}
|
|
179
189
|
});
|
|
180
190
|
}
|
|
181
191
|
|
|
182
192
|
// src/models/text.ts
|
|
183
|
-
|
|
184
|
-
prompt,
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
presencePenalty = 0.7
|
|
190
|
-
}) {
|
|
193
|
+
function buildGenerateParams(runtime, modelType, params) {
|
|
194
|
+
const { prompt, stopSequences = [] } = params;
|
|
195
|
+
const temperature = params.temperature ?? 0.7;
|
|
196
|
+
const frequencyPenalty = params.frequencyPenalty ?? 0.7;
|
|
197
|
+
const presencePenalty = params.presencePenalty ?? 0.7;
|
|
198
|
+
const maxTokens = params.maxOutputTokens ?? params.maxTokens ?? 8192;
|
|
191
199
|
const openai = createOpenAIClient(runtime);
|
|
192
|
-
const modelName = getSmallModel(runtime);
|
|
200
|
+
const modelName = modelType === import_core4.ModelType.TEXT_SMALL ? getSmallModel(runtime) : getLargeModel(runtime);
|
|
201
|
+
const modelLabel = modelType === import_core4.ModelType.TEXT_SMALL ? "TEXT_SMALL" : "TEXT_LARGE";
|
|
193
202
|
const experimentalTelemetry = getExperimentalTelemetry(runtime);
|
|
194
|
-
|
|
195
|
-
import_core4.logger.log(prompt);
|
|
196
|
-
const { text: openaiResponse, usage } = await import_ai.generateText({
|
|
203
|
+
const generateParams = {
|
|
197
204
|
model: openai.languageModel(modelName),
|
|
198
205
|
prompt,
|
|
199
206
|
system: runtime.character.system ?? undefined,
|
|
@@ -205,42 +212,50 @@ async function handleTextSmall(runtime, {
|
|
|
205
212
|
experimental_telemetry: {
|
|
206
213
|
isEnabled: experimentalTelemetry
|
|
207
214
|
}
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
emitModelUsageEvent(runtime, import_core4.ModelType.TEXT_SMALL, prompt, usage);
|
|
211
|
-
}
|
|
212
|
-
return openaiResponse;
|
|
215
|
+
};
|
|
216
|
+
return { generateParams, modelName, modelLabel, prompt };
|
|
213
217
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
218
|
+
function handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel) {
|
|
219
|
+
import_core4.logger.debug(`[ELIZAOS_CLOUD] Streaming text with ${modelLabel} model`);
|
|
220
|
+
const streamResult = import_ai.streamText(generateParams);
|
|
221
|
+
return {
|
|
222
|
+
textStream: streamResult.textStream,
|
|
223
|
+
text: streamResult.text,
|
|
224
|
+
usage: streamResult.usage.then((usage) => {
|
|
225
|
+
if (usage) {
|
|
226
|
+
emitModelUsageEvent(runtime, modelType, prompt, usage);
|
|
227
|
+
const inputTokens = usage.inputTokens ?? 0;
|
|
228
|
+
const outputTokens = usage.outputTokens ?? 0;
|
|
229
|
+
return {
|
|
230
|
+
promptTokens: inputTokens,
|
|
231
|
+
completionTokens: outputTokens,
|
|
232
|
+
totalTokens: inputTokens + outputTokens
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
return;
|
|
236
|
+
}),
|
|
237
|
+
finishReason: streamResult.finishReason
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
async function generateTextWithModel(runtime, modelType, params) {
|
|
241
|
+
const { generateParams, modelName, modelLabel, prompt } = buildGenerateParams(runtime, modelType, params);
|
|
242
|
+
import_core4.logger.debug(`[ELIZAOS_CLOUD] Generating text with ${modelLabel} model: ${modelName}`);
|
|
243
|
+
if (params.stream) {
|
|
244
|
+
return handleStreamingGeneration(runtime, modelType, generateParams, prompt, modelLabel);
|
|
245
|
+
}
|
|
246
|
+
import_core4.logger.log(`[ELIZAOS_CLOUD] Using ${modelLabel} model: ${modelName}`);
|
|
226
247
|
import_core4.logger.log(prompt);
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
prompt,
|
|
230
|
-
system: runtime.character.system ?? undefined,
|
|
231
|
-
temperature,
|
|
232
|
-
maxOutputTokens: maxTokens,
|
|
233
|
-
frequencyPenalty,
|
|
234
|
-
presencePenalty,
|
|
235
|
-
stopSequences,
|
|
236
|
-
experimental_telemetry: {
|
|
237
|
-
isEnabled: experimentalTelemetry
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
if (usage) {
|
|
241
|
-
emitModelUsageEvent(runtime, import_core4.ModelType.TEXT_LARGE, prompt, usage);
|
|
248
|
+
const response = await import_ai.generateText(generateParams);
|
|
249
|
+
if (response.usage) {
|
|
250
|
+
emitModelUsageEvent(runtime, modelType, prompt, response.usage);
|
|
242
251
|
}
|
|
243
|
-
return
|
|
252
|
+
return response.text;
|
|
253
|
+
}
|
|
254
|
+
async function handleTextSmall(runtime, params) {
|
|
255
|
+
return generateTextWithModel(runtime, import_core4.ModelType.TEXT_SMALL, params);
|
|
256
|
+
}
|
|
257
|
+
async function handleTextLarge(runtime, params) {
|
|
258
|
+
return generateTextWithModel(runtime, import_core4.ModelType.TEXT_LARGE, params);
|
|
244
259
|
}
|
|
245
260
|
// src/models/object.ts
|
|
246
261
|
var import_core6 = require("@elizaos/core");
|
|
@@ -437,7 +452,7 @@ async function handleTextEmbedding(runtime, params) {
|
|
|
437
452
|
// src/models/image.ts
|
|
438
453
|
var import_core8 = require("@elizaos/core");
|
|
439
454
|
async function handleImageGeneration(runtime, params) {
|
|
440
|
-
const numImages = params.
|
|
455
|
+
const numImages = params.count || 1;
|
|
441
456
|
const size = params.size || "1024x1024";
|
|
442
457
|
const prompt = params.prompt;
|
|
443
458
|
const modelName = getImageGenerationModel(runtime);
|
|
@@ -533,10 +548,6 @@ async function handleImageDescription(runtime, params) {
|
|
|
533
548
|
description: "No response from API"
|
|
534
549
|
};
|
|
535
550
|
}
|
|
536
|
-
const isCustomPrompt = typeof params === "object" && params.prompt && params.prompt !== "Please analyze this image and provide a title and detailed description.";
|
|
537
|
-
if (isCustomPrompt) {
|
|
538
|
-
return content;
|
|
539
|
-
}
|
|
540
551
|
const processedResult = parseImageDescriptionResponse(content);
|
|
541
552
|
return processedResult;
|
|
542
553
|
} catch (error) {
|
|
@@ -701,7 +712,7 @@ var elizaOSCloudPlugin = {
|
|
|
701
712
|
try {
|
|
702
713
|
const image = await runtime.useModel(import_core10.ModelType.IMAGE, {
|
|
703
714
|
prompt: "A beautiful sunset over a calm ocean",
|
|
704
|
-
|
|
715
|
+
count: 1,
|
|
705
716
|
size: "1024x1024"
|
|
706
717
|
});
|
|
707
718
|
import_core10.logger.log({ image }, "generated with test_image_generation");
|
|
@@ -754,7 +765,7 @@ var elizaOSCloudPlugin = {
|
|
|
754
765
|
name: "ELIZAOS_CLOUD_test_text_tokenizer_encode",
|
|
755
766
|
fn: async (runtime) => {
|
|
756
767
|
const prompt = "Hello tokenizer encode!";
|
|
757
|
-
const tokens = await runtime.useModel(import_core10.ModelType.TEXT_TOKENIZER_ENCODE, { prompt });
|
|
768
|
+
const tokens = await runtime.useModel(import_core10.ModelType.TEXT_TOKENIZER_ENCODE, { prompt, modelType: import_core10.ModelType.TEXT_SMALL });
|
|
758
769
|
if (!Array.isArray(tokens) || tokens.length === 0) {
|
|
759
770
|
throw new Error("Failed to tokenize text: expected non-empty array of tokens");
|
|
760
771
|
}
|
|
@@ -765,8 +776,8 @@ var elizaOSCloudPlugin = {
|
|
|
765
776
|
name: "ELIZAOS_CLOUD_test_text_tokenizer_decode",
|
|
766
777
|
fn: async (runtime) => {
|
|
767
778
|
const prompt = "Hello tokenizer decode!";
|
|
768
|
-
const tokens = await runtime.useModel(import_core10.ModelType.TEXT_TOKENIZER_ENCODE, { prompt });
|
|
769
|
-
const decodedText = await runtime.useModel(import_core10.ModelType.TEXT_TOKENIZER_DECODE, { tokens });
|
|
779
|
+
const tokens = await runtime.useModel(import_core10.ModelType.TEXT_TOKENIZER_ENCODE, { prompt, modelType: import_core10.ModelType.TEXT_SMALL });
|
|
780
|
+
const decodedText = await runtime.useModel(import_core10.ModelType.TEXT_TOKENIZER_DECODE, { tokens, modelType: import_core10.ModelType.TEXT_SMALL });
|
|
770
781
|
if (decodedText !== prompt) {
|
|
771
782
|
throw new Error(`Decoded text does not match original. Expected "${prompt}", got "${decodedText}"`);
|
|
772
783
|
}
|
|
@@ -797,4 +808,4 @@ var elizaOSCloudPlugin = {
|
|
|
797
808
|
};
|
|
798
809
|
var src_default = elizaOSCloudPlugin;
|
|
799
810
|
|
|
800
|
-
//# debugId=
|
|
811
|
+
//# debugId=811C63D22E2DA02364756E2164756E21
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts", "../../src/init.ts", "../../src/utils/config.ts", "../../src/models/text.ts", "../../src/providers/openai.ts", "../../src/utils/events.ts", "../../src/models/object.ts", "../../src/utils/helpers.ts", "../../src/models/embeddings.ts", "../../src/models/image.ts", "../../src/models/speech.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { IAgentRuntime, Plugin } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { initializeOpenAI } from \"./init\";\nimport {\n handleTextSmall,\n handleTextLarge,\n handleObjectSmall,\n handleObjectLarge,\n handleTextEmbedding,\n handleImageGeneration,\n handleImageDescription,\n handleTranscription,\n handleTextToSpeech,\n handleTokenizerEncode,\n handleTokenizerDecode,\n fetchTextToSpeech,\n} from \"./models\";\nimport { getApiKey, getBaseURL } from \"./utils/config\";\n\n// Re-export types for convenience\nexport type {\n OpenAITranscriptionParams,\n OpenAITextToSpeechParams,\n} from \"./types\";\n\n/**\n * Defines the ElizaOS Cloud plugin with its name, description, and configuration options.\n *\n * Configuration:\n * - ELIZAOS_CLOUD_API_KEY: Your ElizaOS Cloud API key (format: eliza_xxxxx)\n * Get it from: https://www.elizacloud.ai/dashboard/api-keys\n *\n * - ELIZAOS_CLOUD_BASE_URL: ElizaOS Cloud API base URL\n * Default: https://www.elizacloud.ai/api/v1\n *\n * - ELIZAOS_CLOUD_SMALL_MODEL: Small/fast model for quick tasks\n * Available: gpt-4o-mini, gpt-4o, claude-3-5-sonnet, gemini-2.0-flash\n * Default: gpt-4o-mini\n *\n * - ELIZAOS_CLOUD_LARGE_MODEL: Large/powerful model for complex tasks\n * Available: gpt-4o-mini, gpt-4o, claude-3-5-sonnet, gemini-2.0-flash\n * Default: gpt-4o\n *\n * - ELIZAOS_CLOUD_EMBEDDING_MODEL: Model for text embeddings\n * - ELIZAOS_CLOUD_EMBEDDING_API_KEY: Separate API key for embeddings (optional)\n * - ELIZAOS_CLOUD_EMBEDDING_URL: Separate URL for embeddings (optional)\n * - ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL: Model for image description (default: gpt-4o-mini)\n *\n * @type {Plugin}\n */\nexport const elizaOSCloudPlugin: Plugin = {\n name: \"elizaOSCloud\",\n description:\n \"ElizaOS Cloud plugin - Multi-model AI generation with text, image, and video support\",\n config: {\n ELIZAOS_CLOUD_API_KEY: process.env.ELIZAOS_CLOUD_API_KEY,\n ELIZAOS_CLOUD_BASE_URL: process.env.ELIZAOS_CLOUD_BASE_URL,\n ELIZAOS_CLOUD_SMALL_MODEL: process.env.ELIZAOS_CLOUD_SMALL_MODEL,\n ELIZAOS_CLOUD_LARGE_MODEL: process.env.ELIZAOS_CLOUD_LARGE_MODEL,\n SMALL_MODEL: process.env.SMALL_MODEL,\n LARGE_MODEL: process.env.LARGE_MODEL,\n ELIZAOS_CLOUD_EMBEDDING_MODEL: process.env.ELIZAOS_CLOUD_EMBEDDING_MODEL,\n ELIZAOS_CLOUD_EMBEDDING_API_KEY:\n process.env.ELIZAOS_CLOUD_EMBEDDING_API_KEY,\n ELIZAOS_CLOUD_EMBEDDING_URL: process.env.ELIZAOS_CLOUD_EMBEDDING_URL,\n ELIZAOS_CLOUD_EMBEDDING_DIMENSIONS:\n process.env.ELIZAOS_CLOUD_EMBEDDING_DIMENSIONS,\n ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL:\n process.env.ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL,\n ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MAX_TOKENS:\n process.env.ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MAX_TOKENS,\n ELIZAOS_CLOUD_EXPERIMENTAL_TELEMETRY:\n process.env.ELIZAOS_CLOUD_EXPERIMENTAL_TELEMETRY,\n ELIZAOS_CLOUD_IMAGE_GENERATION_MODEL:\n process.env.ELIZAOS_CLOUD_IMAGE_GENERATION_MODEL,\n },\n async init(config, runtime) {\n initializeOpenAI(config, runtime);\n },\n\n models: {\n [ModelType.TEXT_EMBEDDING]: handleTextEmbedding,\n // [ModelType.TEXT_TOKENIZER_ENCODE]: handleTokenizerEncode,\n // [ModelType.TEXT_TOKENIZER_DECODE]: handleTokenizerDecode,\n [ModelType.TEXT_SMALL]: handleTextSmall,\n [ModelType.TEXT_LARGE]: handleTextLarge,\n [ModelType.IMAGE]: handleImageGeneration,\n [ModelType.IMAGE_DESCRIPTION]: handleImageDescription,\n // [ModelType.TRANSCRIPTION]: handleTranscription,\n // [ModelType.TEXT_TO_SPEECH]: handleTextToSpeech,\n [ModelType.OBJECT_SMALL]: handleObjectSmall,\n [ModelType.OBJECT_LARGE]: handleObjectLarge,\n },\n tests: [\n {\n name: \"ELIZAOS_CLOUD_plugin_tests\",\n tests: [\n {\n name: \"ELIZAOS_CLOUD_test_url_and_api_key_validation\",\n fn: async (runtime: IAgentRuntime) => {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: {\n Authorization: `Bearer ${getApiKey(runtime)}`,\n },\n });\n const data = await response.json();\n logger.log(\n { data: (data as { data?: unknown[] })?.data?.length ?? \"N/A\" },\n \"Models Available\",\n );\n if (!response.ok) {\n throw new Error(\n `Failed to validate OpenAI API key: ${response.statusText}`,\n );\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_embedding\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const embedding = await runtime.useModel(\n ModelType.TEXT_EMBEDDING,\n {\n text: \"Hello, world!\",\n },\n );\n logger.log({ embedding }, \"embedding\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_embedding: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_large\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_large: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_small\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_image_generation\",\n fn: async (runtime: IAgentRuntime) => {\n logger.log(\"ELIZAOS_CLOUD_test_image_generation\");\n try {\n const image = await runtime.useModel(ModelType.IMAGE, {\n prompt: \"A beautiful sunset over a calm ocean\",\n n: 1,\n size: \"1024x1024\",\n });\n logger.log({ image }, \"generated with test_image_generation\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_image_generation: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"image-description\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n logger.log(\"ELIZAOS_CLOUD_test_image_description\");\n try {\n const result = await runtime.useModel(\n ModelType.IMAGE_DESCRIPTION,\n \"https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Vitalik_Buterin_TechCrunch_London_2015_%28cropped%29.jpg/537px-Vitalik_Buterin_TechCrunch_London_2015_%28cropped%29.jpg\",\n );\n\n if (\n result &&\n typeof result === \"object\" &&\n \"title\" in result &&\n \"description\" in result\n ) {\n logger.log({ result }, \"Image description\");\n } else {\n logger.error(\n \"Invalid image description result format:\",\n result,\n );\n }\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : String(e);\n logger.error(`Error in image description test: ${message}`);\n }\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : String(e);\n logger.error(\n `Error in ELIZAOS_CLOUD_test_image_description: ${message}`,\n );\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_transcription\",\n fn: async (runtime: IAgentRuntime) => {\n logger.log(\"ELIZAOS_CLOUD_test_transcription\");\n try {\n const response = await fetch(\n \"https://upload.wikimedia.org/wikipedia/en/4/40/Chris_Benoit_Voice_Message.ogg\",\n );\n const arrayBuffer = await response.arrayBuffer();\n const transcription = await runtime.useModel(\n ModelType.TRANSCRIPTION,\n Buffer.from(new Uint8Array(arrayBuffer)),\n );\n logger.log(\n { transcription },\n \"generated with test_transcription\",\n );\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_transcription: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_tokenizer_encode\",\n fn: async (runtime: IAgentRuntime) => {\n const prompt = \"Hello tokenizer encode!\";\n const tokens = await runtime.useModel(\n ModelType.TEXT_TOKENIZER_ENCODE,\n { prompt },\n );\n if (!Array.isArray(tokens) || tokens.length === 0) {\n throw new Error(\n \"Failed to tokenize text: expected non-empty array of tokens\",\n );\n }\n logger.log({ tokens }, \"Tokenized output\");\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_tokenizer_decode\",\n fn: async (runtime: IAgentRuntime) => {\n const prompt = \"Hello tokenizer decode!\";\n const tokens = await runtime.useModel(\n ModelType.TEXT_TOKENIZER_ENCODE,\n { prompt },\n );\n const decodedText = await runtime.useModel(\n ModelType.TEXT_TOKENIZER_DECODE,\n { tokens },\n );\n if (decodedText !== prompt) {\n throw new Error(\n `Decoded text does not match original. Expected \"${prompt}\", got \"${decodedText}\"`,\n );\n }\n logger.log({ decodedText }, \"Decoded text\");\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_to_speech\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const response = await fetchTextToSpeech(runtime, {\n text: \"Hello, this is a test for text-to-speech.\",\n });\n if (!response) {\n throw new Error(\"Failed to generate speech\");\n }\n logger.log(\"Generated speech successfully\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(\n `Error in ELIZAOS_CLOUD_test_text_to_speech: ${message}`,\n );\n throw error;\n }\n },\n },\n ],\n },\n ],\n};\nexport default elizaOSCloudPlugin;\n",
|
|
5
|
+
"import type { IAgentRuntime, Plugin } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { initializeOpenAI } from \"./init\";\nimport {\n handleTextSmall,\n handleTextLarge,\n handleObjectSmall,\n handleObjectLarge,\n handleTextEmbedding,\n handleImageGeneration,\n handleImageDescription,\n handleTranscription,\n handleTextToSpeech,\n handleTokenizerEncode,\n handleTokenizerDecode,\n fetchTextToSpeech,\n} from \"./models\";\nimport { getApiKey, getBaseURL } from \"./utils/config\";\n\n// Re-export types for convenience\nexport type {\n OpenAITranscriptionParams,\n OpenAITextToSpeechParams,\n} from \"./types\";\n\n/**\n * Defines the ElizaOS Cloud plugin with its name, description, and configuration options.\n *\n * Configuration:\n * - ELIZAOS_CLOUD_API_KEY: Your ElizaOS Cloud API key (format: eliza_xxxxx)\n * Get it from: https://www.elizacloud.ai/dashboard/api-keys\n *\n * - ELIZAOS_CLOUD_BASE_URL: ElizaOS Cloud API base URL\n * Default: https://www.elizacloud.ai/api/v1\n *\n * - ELIZAOS_CLOUD_SMALL_MODEL: Small/fast model for quick tasks\n * Available: gpt-4o-mini, gpt-4o, claude-3-5-sonnet, gemini-2.0-flash\n * Default: gpt-4o-mini\n *\n * - ELIZAOS_CLOUD_LARGE_MODEL: Large/powerful model for complex tasks\n * Available: gpt-4o-mini, gpt-4o, claude-3-5-sonnet, gemini-2.0-flash\n * Default: gpt-4o\n *\n * - ELIZAOS_CLOUD_EMBEDDING_MODEL: Model for text embeddings\n * - ELIZAOS_CLOUD_EMBEDDING_API_KEY: Separate API key for embeddings (optional)\n * - ELIZAOS_CLOUD_EMBEDDING_URL: Separate URL for embeddings (optional)\n * - ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL: Model for image description (default: gpt-4o-mini)\n *\n * @type {Plugin}\n */\nexport const elizaOSCloudPlugin: Plugin = {\n name: \"elizaOSCloud\",\n description:\n \"ElizaOS Cloud plugin - Multi-model AI generation with text, image, and video support\",\n config: {\n ELIZAOS_CLOUD_API_KEY: process.env.ELIZAOS_CLOUD_API_KEY,\n ELIZAOS_CLOUD_BASE_URL: process.env.ELIZAOS_CLOUD_BASE_URL,\n ELIZAOS_CLOUD_SMALL_MODEL: process.env.ELIZAOS_CLOUD_SMALL_MODEL,\n ELIZAOS_CLOUD_LARGE_MODEL: process.env.ELIZAOS_CLOUD_LARGE_MODEL,\n SMALL_MODEL: process.env.SMALL_MODEL,\n LARGE_MODEL: process.env.LARGE_MODEL,\n ELIZAOS_CLOUD_EMBEDDING_MODEL: process.env.ELIZAOS_CLOUD_EMBEDDING_MODEL,\n ELIZAOS_CLOUD_EMBEDDING_API_KEY:\n process.env.ELIZAOS_CLOUD_EMBEDDING_API_KEY,\n ELIZAOS_CLOUD_EMBEDDING_URL: process.env.ELIZAOS_CLOUD_EMBEDDING_URL,\n ELIZAOS_CLOUD_EMBEDDING_DIMENSIONS:\n process.env.ELIZAOS_CLOUD_EMBEDDING_DIMENSIONS,\n ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL:\n process.env.ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL,\n ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MAX_TOKENS:\n process.env.ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MAX_TOKENS,\n ELIZAOS_CLOUD_EXPERIMENTAL_TELEMETRY:\n process.env.ELIZAOS_CLOUD_EXPERIMENTAL_TELEMETRY,\n ELIZAOS_CLOUD_IMAGE_GENERATION_MODEL:\n process.env.ELIZAOS_CLOUD_IMAGE_GENERATION_MODEL,\n },\n async init(config, runtime) {\n initializeOpenAI(config, runtime);\n },\n\n models: {\n [ModelType.TEXT_EMBEDDING]: handleTextEmbedding,\n // [ModelType.TEXT_TOKENIZER_ENCODE]: handleTokenizerEncode,\n // [ModelType.TEXT_TOKENIZER_DECODE]: handleTokenizerDecode,\n [ModelType.TEXT_SMALL]: handleTextSmall,\n [ModelType.TEXT_LARGE]: handleTextLarge,\n [ModelType.IMAGE]: handleImageGeneration,\n [ModelType.IMAGE_DESCRIPTION]: handleImageDescription,\n // [ModelType.TRANSCRIPTION]: handleTranscription,\n // [ModelType.TEXT_TO_SPEECH]: handleTextToSpeech,\n [ModelType.OBJECT_SMALL]: handleObjectSmall,\n [ModelType.OBJECT_LARGE]: handleObjectLarge,\n },\n tests: [\n {\n name: \"ELIZAOS_CLOUD_plugin_tests\",\n tests: [\n {\n name: \"ELIZAOS_CLOUD_test_url_and_api_key_validation\",\n fn: async (runtime: IAgentRuntime) => {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: {\n Authorization: `Bearer ${getApiKey(runtime)}`,\n },\n });\n const data = await response.json();\n logger.log(\n { data: (data as { data?: unknown[] })?.data?.length ?? \"N/A\" },\n \"Models Available\",\n );\n if (!response.ok) {\n throw new Error(\n `Failed to validate OpenAI API key: ${response.statusText}`,\n );\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_embedding\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const embedding = await runtime.useModel(\n ModelType.TEXT_EMBEDDING,\n {\n text: \"Hello, world!\",\n },\n );\n logger.log({ embedding }, \"embedding\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_embedding: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_large\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_large\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_large: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_small\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const text = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"What is the nature of reality in 10 words?\",\n });\n if (text.length === 0) {\n throw new Error(\"Failed to generate text\");\n }\n logger.log({ text }, \"generated with test_text_small\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_text_small: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_image_generation\",\n fn: async (runtime: IAgentRuntime) => {\n logger.log(\"ELIZAOS_CLOUD_test_image_generation\");\n try {\n const image = await runtime.useModel(ModelType.IMAGE, {\n prompt: \"A beautiful sunset over a calm ocean\",\n count: 1,\n size: \"1024x1024\",\n });\n logger.log({ image }, \"generated with test_image_generation\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_image_generation: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"image-description\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n logger.log(\"ELIZAOS_CLOUD_test_image_description\");\n try {\n const result = await runtime.useModel(\n ModelType.IMAGE_DESCRIPTION,\n \"https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Vitalik_Buterin_TechCrunch_London_2015_%28cropped%29.jpg/537px-Vitalik_Buterin_TechCrunch_London_2015_%28cropped%29.jpg\",\n );\n\n if (\n result &&\n typeof result === \"object\" &&\n \"title\" in result &&\n \"description\" in result\n ) {\n logger.log({ result }, \"Image description\");\n } else {\n logger.error(\n \"Invalid image description result format:\",\n result,\n );\n }\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : String(e);\n logger.error(`Error in image description test: ${message}`);\n }\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : String(e);\n logger.error(\n `Error in ELIZAOS_CLOUD_test_image_description: ${message}`,\n );\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_transcription\",\n fn: async (runtime: IAgentRuntime) => {\n logger.log(\"ELIZAOS_CLOUD_test_transcription\");\n try {\n const response = await fetch(\n \"https://upload.wikimedia.org/wikipedia/en/4/40/Chris_Benoit_Voice_Message.ogg\",\n );\n const arrayBuffer = await response.arrayBuffer();\n const transcription = await runtime.useModel(\n ModelType.TRANSCRIPTION,\n Buffer.from(new Uint8Array(arrayBuffer)),\n );\n logger.log(\n { transcription },\n \"generated with test_transcription\",\n );\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(`Error in test_transcription: ${message}`);\n throw error;\n }\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_tokenizer_encode\",\n fn: async (runtime: IAgentRuntime) => {\n const prompt = \"Hello tokenizer encode!\";\n const tokens = await runtime.useModel(\n ModelType.TEXT_TOKENIZER_ENCODE,\n { prompt, modelType: ModelType.TEXT_SMALL },\n );\n if (!Array.isArray(tokens) || tokens.length === 0) {\n throw new Error(\n \"Failed to tokenize text: expected non-empty array of tokens\",\n );\n }\n logger.log({ tokens }, \"Tokenized output\");\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_tokenizer_decode\",\n fn: async (runtime: IAgentRuntime) => {\n const prompt = \"Hello tokenizer decode!\";\n const tokens = await runtime.useModel(\n ModelType.TEXT_TOKENIZER_ENCODE,\n { prompt, modelType: ModelType.TEXT_SMALL },\n );\n const decodedText = await runtime.useModel(\n ModelType.TEXT_TOKENIZER_DECODE,\n { tokens, modelType: ModelType.TEXT_SMALL },\n );\n if (decodedText !== prompt) {\n throw new Error(\n `Decoded text does not match original. Expected \"${prompt}\", got \"${decodedText}\"`,\n );\n }\n logger.log({ decodedText }, \"Decoded text\");\n },\n },\n {\n name: \"ELIZAOS_CLOUD_test_text_to_speech\",\n fn: async (runtime: IAgentRuntime) => {\n try {\n const response = await fetchTextToSpeech(runtime, {\n text: \"Hello, this is a test for text-to-speech.\",\n });\n if (!response) {\n throw new Error(\"Failed to generate speech\");\n }\n logger.log(\"Generated speech successfully\");\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : String(error);\n logger.error(\n `Error in ELIZAOS_CLOUD_test_text_to_speech: ${message}`,\n );\n throw error;\n }\n },\n },\n ],\n },\n ],\n};\nexport default elizaOSCloudPlugin;\n",
|
|
6
6
|
"import { logger, type IAgentRuntime } from \"@elizaos/core\";\nimport {\n getApiKey,\n getBaseURL,\n getAuthHeader,\n isBrowser,\n} from \"./utils/config\";\n\n/**\n * Initialize and validate ElizaOS Cloud configuration\n */\nexport function initializeOpenAI(\n _config: Record<string, unknown>,\n runtime: IAgentRuntime,\n): void {\n // Do check in the background\n new Promise<void>(async (resolve) => {\n resolve();\n try {\n if (!getApiKey(runtime) && !isBrowser()) {\n logger.warn(\n \"ELIZAOS_CLOUD_API_KEY is not set in environment - ElizaOS Cloud functionality will be limited\",\n );\n logger.info(\n \"Get your API key from https://www.elizacloud.ai/dashboard/api-keys\",\n );\n return;\n }\n try {\n const baseURL = getBaseURL(runtime);\n const response = await fetch(`${baseURL}/models`, {\n headers: { ...getAuthHeader(runtime) },\n });\n if (!response.ok) {\n logger.warn(\n `ElizaOS Cloud API key validation failed: ${response.statusText}`,\n );\n logger.warn(\n \"ElizaOS Cloud functionality will be limited until a valid API key is provided\",\n );\n logger.info(\n \"Get your API key from https://www.elizacloud.ai/dashboard/api-keys\",\n );\n } else {\n logger.log(\"ElizaOS Cloud API key validated successfully\");\n }\n } catch (fetchError: unknown) {\n const message =\n fetchError instanceof Error ? fetchError.message : String(fetchError);\n logger.warn(`Error validating ElizaOS Cloud API key: ${message}`);\n logger.warn(\n \"ElizaOS Cloud functionality will be limited until a valid API key is provided\",\n );\n }\n } catch (error: unknown) {\n const message =\n (error as { errors?: Array<{ message: string }> })?.errors\n ?.map((e) => e.message)\n .join(\", \") ||\n (error instanceof Error ? error.message : String(error));\n logger.warn(\n `ElizaOS Cloud plugin configuration issue: ${message} - You need to configure the ELIZAOS_CLOUD_API_KEY in your environment variables`,\n );\n logger.info(\n \"Get your API key from https://www.elizacloud.ai/dashboard/api-keys\",\n );\n }\n });\n}\n",
|
|
7
|
-
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\n/**\n * Retrieves a configuration setting from the runtime, falling back to environment variables or a default value if not found.\n *\n * @param key - The name of the setting to retrieve.\n * @param defaultValue - The value to return if the setting is not found in the runtime or environment.\n * @returns The resolved setting value, or {@link defaultValue} if not found.\n */\nexport function getSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue?: string,\n): string | undefined {\n
|
|
8
|
-
"import type {
|
|
7
|
+
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\n\n/**\n * Retrieves a configuration setting from the runtime, falling back to environment variables or a default value if not found.\n *\n * @param key - The name of the setting to retrieve.\n * @param defaultValue - The value to return if the setting is not found in the runtime or environment.\n * @returns The resolved setting value, or {@link defaultValue} if not found.\n */\nexport function getSetting(\n runtime: IAgentRuntime,\n key: string,\n defaultValue?: string,\n): string | undefined {\n const value = runtime.getSetting(key);\n // Convert to string if value is a number or boolean\n if (value !== undefined && value !== null) {\n return String(value);\n }\n return process.env[key] ?? defaultValue;\n}\n\nexport function isBrowser(): boolean {\n return (\n typeof globalThis !== \"undefined\" &&\n typeof (globalThis as Record<string, unknown>).document !== \"undefined\"\n );\n}\n\n/**\n * Determines whether we're running in a browser with a server-hosted proxy configured.\n * In this mode, we do not require a real API key on the client and rely on the proxy to inject it.\n */\nexport function isProxyMode(runtime: IAgentRuntime): boolean {\n return isBrowser() && !!getSetting(runtime, \"ELIZAOS_CLOUD_BROWSER_BASE_URL\");\n}\n\nexport function getAuthHeader(\n runtime: IAgentRuntime,\n forEmbedding = false,\n): Record<string, string> {\n if (isBrowser()) return {};\n const key = forEmbedding ? getEmbeddingApiKey(runtime) : getApiKey(runtime);\n return key ? { Authorization: `Bearer ${key}` } : {};\n}\n\n/**\n * Retrieves the ElizaOS Cloud API base URL from runtime settings, environment variables, or defaults.\n *\n * @returns The resolved base URL for ElizaOS Cloud API requests.\n */\nexport function getBaseURL(runtime: IAgentRuntime): string {\n const browserURL = getSetting(runtime, \"ELIZAOS_CLOUD_BROWSER_BASE_URL\");\n const baseURL = (\n isBrowser() && browserURL\n ? browserURL\n : getSetting(runtime, \"ELIZAOS_CLOUD_BASE_URL\", \"https://www.elizacloud.ai/api/v1\")\n ) as string;\n console.log(`[ELIZAOS_CLOUD] Default base URL: ${baseURL}`);\n return baseURL;\n}\n\n/**\n * Retrieves the ElizaOS Cloud API base URL for embeddings, falling back to the general base URL.\n *\n * @returns The resolved base URL for ElizaOS Cloud embedding requests.\n */\nexport function getEmbeddingBaseURL(runtime: IAgentRuntime): string {\n const embeddingURL = isBrowser()\n ? getSetting(runtime, \"ELIZAOS_CLOUD_BROWSER_EMBEDDING_URL\") ||\n getSetting(runtime, \"ELIZAOS_CLOUD_BROWSER_BASE_URL\")\n : getSetting(runtime, \"ELIZAOS_CLOUD_EMBEDDING_URL\");\n if (embeddingURL) {\n logger.debug(\n `[ELIZAOS_CLOUD] Using specific embedding base URL: ${embeddingURL}`,\n );\n return embeddingURL;\n }\n logger.debug(\n \"[ELIZAOS_CLOUD] Falling back to general base URL for embeddings.\",\n );\n return getBaseURL(runtime);\n}\n\n/**\n * Helper function to get the API key for ElizaOS Cloud\n * Expected format: eliza_<random_32_chars>\n *\n * @param runtime The runtime context\n * @returns The configured API key\n */\nexport function getApiKey(runtime: IAgentRuntime): string | undefined {\n return getSetting(runtime, \"ELIZAOS_CLOUD_API_KEY\");\n}\n\n/**\n * Helper function to get the embedding API key for ElizaOS Cloud, falling back to the general API key if not set.\n *\n * @param runtime The runtime context\n * @returns The configured API key\n */\nexport function getEmbeddingApiKey(runtime: IAgentRuntime): string | undefined {\n const embeddingApiKey = getSetting(runtime, \"ELIZAOS_CLOUD_EMBEDDING_API_KEY\");\n if (embeddingApiKey) {\n logger.debug(\"[ELIZAOS_CLOUD] Using specific embedding API key (present)\");\n return embeddingApiKey;\n }\n logger.debug(\n \"[ELIZAOS_CLOUD] Falling back to general API key for embeddings.\",\n );\n return getApiKey(runtime);\n}\n\n/**\n * Helper function to get the small model name with fallbacks\n * Available models on ElizaOS Cloud: gpt-4o-mini, gpt-4o, claude-3-5-sonnet, gemini-2.0-flash\n *\n * @param runtime The runtime context\n * @returns The configured small model name\n */\nexport function getSmallModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"ELIZAOS_CLOUD_SMALL_MODEL\") ??\n (getSetting(runtime, \"SMALL_MODEL\", \"gpt-4o-mini\") as string)\n );\n}\n\n/**\n * Helper function to get the large model name with fallbacks\n * Available models on ElizaOS Cloud: gpt-4o-mini, gpt-4o, claude-3-5-sonnet, gemini-2.0-flash\n *\n * @param runtime The runtime context\n * @returns The configured large model name\n */\nexport function getLargeModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"ELIZAOS_CLOUD_LARGE_MODEL\") ??\n (getSetting(runtime, \"LARGE_MODEL\", \"gpt-4o\") as string)\n );\n}\n\n/**\n * Helper function to get the image description model name with fallbacks\n *\n * @param runtime The runtime context\n * @returns The configured image description model name\n */\nexport function getImageDescriptionModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL\", \"gpt-4o-mini\") ??\n \"gpt-4o-mini\"\n );\n}\n\n/**\n * Helper function to get the image generation model name with fallbacks\n *\n * @param runtime The runtime context\n * @returns The configured image generation model name\n */\nexport function getImageGenerationModel(runtime: IAgentRuntime): string {\n return (\n getSetting(runtime, \"ELIZAOS_CLOUD_IMAGE_GENERATION_MODEL\", \"openai/gpt-5-nano\") ??\n \"openai/gpt-5-nano\"\n );\n}\n\n/**\n * Helper function to get experimental telemetry setting\n *\n * @param runtime The runtime context\n * @returns Whether experimental telemetry is enabled\n */\nexport function getExperimentalTelemetry(runtime: IAgentRuntime): boolean {\n const setting = getSetting(\n runtime,\n \"ELIZAOS_CLOUD_EXPERIMENTAL_TELEMETRY\",\n \"false\",\n );\n // Convert to string and check for truthy values\n const normalizedSetting = String(setting).toLowerCase();\n const result = normalizedSetting === \"true\";\n logger.debug(\n `[ELIZAOS_CLOUD] Experimental telemetry in function: \"${setting}\" (type: ${typeof setting}, normalized: \"${normalizedSetting}\", result: ${result})`,\n );\n return result;\n}\n",
|
|
8
|
+
"import type {\n GenerateTextParams,\n IAgentRuntime,\n TextStreamResult,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateText, streamText } from \"ai\";\nimport { createOpenAIClient } from \"../providers/openai\";\nimport {\n getSmallModel,\n getLargeModel,\n getExperimentalTelemetry,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\n/**\n * Build common generation parameters for both streaming and non-streaming modes\n */\nfunction buildGenerateParams(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams,\n) {\n const { prompt, stopSequences = [] } = params;\n const temperature = params.temperature ?? 0.7;\n const frequencyPenalty = params.frequencyPenalty ?? 0.7;\n const presencePenalty = params.presencePenalty ?? 0.7;\n const maxTokens =\n (params as any).maxOutputTokens ?? (params as any).maxTokens ?? 8192;\n\n const openai = createOpenAIClient(runtime);\n const modelName =\n modelType === ModelType.TEXT_SMALL\n ? getSmallModel(runtime)\n : getLargeModel(runtime);\n const modelLabel =\n modelType === ModelType.TEXT_SMALL ? \"TEXT_SMALL\" : \"TEXT_LARGE\";\n const experimentalTelemetry = getExperimentalTelemetry(runtime);\n\n const generateParams: Parameters<typeof generateText>[0] = {\n model: openai.languageModel(modelName),\n prompt: prompt,\n system: runtime.character.system ?? undefined,\n temperature: temperature,\n maxOutputTokens: maxTokens,\n frequencyPenalty: frequencyPenalty,\n presencePenalty: presencePenalty,\n stopSequences: stopSequences,\n experimental_telemetry: {\n isEnabled: experimentalTelemetry,\n },\n };\n\n return { generateParams, modelName, modelLabel, prompt };\n}\n\n/**\n * Handle streaming text generation\n */\nfunction handleStreamingGeneration(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n generateParams: Parameters<typeof streamText>[0],\n prompt: string,\n modelLabel: string,\n): TextStreamResult {\n logger.debug(`[ELIZAOS_CLOUD] Streaming text with ${modelLabel} model`);\n\n const streamResult = streamText(generateParams);\n\n return {\n textStream: streamResult.textStream,\n text: streamResult.text,\n usage: streamResult.usage.then((usage) => {\n if (usage) {\n emitModelUsageEvent(runtime, modelType, prompt, usage);\n const inputTokens = usage.inputTokens ?? 0;\n const outputTokens = usage.outputTokens ?? 0;\n return {\n promptTokens: inputTokens,\n completionTokens: outputTokens,\n totalTokens: inputTokens + outputTokens,\n };\n }\n return undefined;\n }),\n finishReason: streamResult.finishReason,\n };\n}\n\n/**\n * Common text generation logic for both small and large models\n */\nasync function generateTextWithModel(\n runtime: IAgentRuntime,\n modelType: typeof ModelType.TEXT_SMALL | typeof ModelType.TEXT_LARGE,\n params: GenerateTextParams,\n): Promise<string | TextStreamResult> {\n const { generateParams, modelName, modelLabel, prompt } = buildGenerateParams(\n runtime,\n modelType,\n params,\n );\n\n logger.debug(\n `[ELIZAOS_CLOUD] Generating text with ${modelLabel} model: ${modelName}`,\n );\n\n // Handle streaming mode\n if (params.stream) {\n return handleStreamingGeneration(\n runtime,\n modelType,\n generateParams,\n prompt,\n modelLabel,\n );\n }\n\n // Non-streaming mode\n logger.log(`[ELIZAOS_CLOUD] Using ${modelLabel} model: ${modelName}`);\n logger.log(prompt);\n\n const response = await generateText(generateParams);\n\n if (response.usage) {\n emitModelUsageEvent(runtime, modelType, prompt, response.usage);\n }\n\n return response.text;\n}\n\n/**\n * TEXT_SMALL model handler\n *\n * Returns:\n * - `string` for simple text generation\n * - `TextStreamResult` for streaming (when params.stream = true)\n */\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams,\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_SMALL, params);\n}\n\n/**\n * TEXT_LARGE model handler\n *\n * Returns:\n * - `string` for simple text generation\n * - `TextStreamResult` for streaming (when params.stream = true)\n */\nexport async function handleTextLarge(\n runtime: IAgentRuntime,\n params: GenerateTextParams,\n): Promise<string | TextStreamResult> {\n return generateTextWithModel(runtime, ModelType.TEXT_LARGE, params);\n}\n",
|
|
9
9
|
"import { createOpenAI } from \"@ai-sdk/openai\";\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport { getApiKey, getBaseURL, isProxyMode } from \"../utils/config\";\n\n/**\n * Create an OpenAI-compatible client configured for ElizaOS Cloud\n *\n * @param runtime The runtime context\n * @returns Configured OpenAI-compatible client for ElizaOS Cloud\n */\nexport function createOpenAIClient(runtime: IAgentRuntime) {\n const baseURL = getBaseURL(runtime);\n // In proxy mode (browser + proxy base URL), pass a harmless placeholder key.\n // The server proxy replaces Authorization; no secrets leave the server.\n const apiKey =\n getApiKey(runtime) ?? (isProxyMode(runtime) ? \"eliza-proxy\" : undefined);\n return createOpenAI({ apiKey: (apiKey ?? \"\") as string, baseURL });\n}\n",
|
|
10
|
-
"import {\n EventType,\n type IAgentRuntime,\n type ModelTypeName,\n} from \"@elizaos/core\";\nimport type { LanguageModelUsage } from \"ai\";\n\n/**\n * Emits a model usage event\n * @param runtime The runtime context\n * @param type The model type\n * @param prompt The prompt used\n * @param usage The LLM usage data\n */\nexport function emitModelUsageEvent(\n runtime: IAgentRuntime,\n type: ModelTypeName,\n prompt: string,\n usage: LanguageModelUsage,\n) {\n runtime.emitEvent(EventType.MODEL_USED, {\n provider: \"
|
|
11
|
-
"import type { IAgentRuntime, ObjectGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateObject, JSONParseError
|
|
10
|
+
"import {\n EventType,\n type IAgentRuntime,\n type ModelTypeName,\n} from \"@elizaos/core\";\nimport type { LanguageModelUsage } from \"ai\";\n\n/**\n * Emits a model usage event\n * @param runtime The runtime context\n * @param type The model type\n * @param prompt The prompt used\n * @param usage The LLM usage data\n */\nexport function emitModelUsageEvent(\n runtime: IAgentRuntime,\n type: ModelTypeName,\n prompt: string,\n usage: LanguageModelUsage,\n) {\n // Never emit the full prompt; truncate to avoid leaking secrets/PII\n const truncatedPrompt =\n typeof prompt === \"string\"\n ? prompt.length > 200\n ? `${prompt.slice(0, 200)}…`\n : prompt\n : \"\";\n\n const inputTokens = Number(usage.inputTokens || 0);\n const outputTokens = Number(usage.outputTokens || 0);\n const totalTokens = Number(\n usage.totalTokens != null ? usage.totalTokens : inputTokens + outputTokens,\n );\n\n runtime.emitEvent(EventType.MODEL_USED, {\n runtime,\n source: \"elizacloud\",\n provider: \"elizacloud\",\n type,\n prompt: truncatedPrompt,\n tokens: {\n prompt: inputTokens,\n completion: outputTokens,\n total: totalTokens,\n },\n });\n}\n",
|
|
11
|
+
"import type { IAgentRuntime, ObjectGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateObject, JSONParseError } from \"ai\";\nimport { createOpenAIClient } from \"../providers/openai\";\nimport { getSmallModel, getLargeModel } from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { getJsonRepairFunction } from \"../utils/helpers\";\n\n/**\n * Common object generation logic for both small and large models\n */\nasync function generateObjectByModelType(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams,\n modelType: string,\n getModelFn: (runtime: IAgentRuntime) => string,\n): Promise<Record<string, unknown>> {\n const openai = createOpenAIClient(runtime);\n const modelName = getModelFn(runtime);\n logger.log(`[ELIZAOS_CLOUD] Using ${modelType} model: ${modelName}`);\n const temperature = params.temperature ?? 0;\n const schemaPresent = !!params.schema;\n\n if (schemaPresent) {\n logger.info(\n `Using ${modelType} without schema validation (schema provided but output=no-schema)`,\n );\n }\n\n try {\n const { object, usage } = await generateObject({\n model: openai.languageModel(modelName),\n output: \"no-schema\",\n prompt: params.prompt,\n temperature: temperature,\n experimental_repairText: getJsonRepairFunction(),\n });\n\n if (usage) {\n emitModelUsageEvent(runtime, modelType as never, params.prompt, usage);\n }\n return object as Record<string, unknown>;\n } catch (error: unknown) {\n if (error instanceof JSONParseError) {\n logger.error(`[generateObject] Failed to parse JSON: ${error.message}`);\n\n const repairFunction = getJsonRepairFunction();\n const repairedJsonString = await repairFunction({\n text: error.text,\n error,\n });\n\n if (repairedJsonString) {\n try {\n const repairedObject = JSON.parse(repairedJsonString);\n logger.info(\"[generateObject] Successfully repaired JSON.\");\n return repairedObject as Record<string, unknown>;\n } catch (repairParseError: unknown) {\n const message =\n repairParseError instanceof Error\n ? repairParseError.message\n : String(repairParseError);\n logger.error(\n `[generateObject] Failed to parse repaired JSON: ${message}`,\n );\n throw repairParseError;\n }\n } else {\n logger.error(\"[generateObject] JSON repair failed.\");\n throw error;\n }\n } else {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`[generateObject] Unknown error: ${message}`);\n throw error;\n }\n }\n}\n\n/**\n * OBJECT_SMALL model handler\n */\nexport async function handleObjectSmall(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams,\n): Promise<Record<string, unknown>> {\n return generateObjectByModelType(\n runtime,\n params,\n ModelType.OBJECT_SMALL,\n getSmallModel,\n );\n}\n\n/**\n * OBJECT_LARGE model handler\n */\nexport async function handleObjectLarge(\n runtime: IAgentRuntime,\n params: ObjectGenerationParams,\n): Promise<Record<string, unknown>> {\n return generateObjectByModelType(\n runtime,\n params,\n ModelType.OBJECT_LARGE,\n getLargeModel,\n );\n}\n",
|
|
12
12
|
"import { logger } from \"@elizaos/core\";\nimport { JSONParseError } from \"ai\";\nimport type { ImageDescriptionResult } from \"../types\";\n\n/**\n * Returns a function to repair JSON text\n */\nexport function getJsonRepairFunction(): (params: {\n text: string;\n error: unknown;\n}) => Promise<string | null> {\n return async ({ text, error }: { text: string; error: unknown }) => {\n try {\n if (error instanceof JSONParseError) {\n const cleanedText = text.replace(/```json\\n|\\n```|```/g, \"\");\n JSON.parse(cleanedText);\n return cleanedText;\n }\n return null;\n } catch (jsonError: unknown) {\n const message =\n jsonError instanceof Error ? jsonError.message : String(jsonError);\n logger.warn(`Failed to repair JSON text: ${message}`);\n return null;\n }\n };\n}\n\n/**\n * Detects audio MIME type from buffer by checking magic bytes (file signature)\n * @param buffer The audio buffer to analyze\n * @returns The detected MIME type or 'application/octet-stream' if unknown\n */\nexport function detectAudioMimeType(buffer: Buffer): string {\n if (buffer.length < 12) {\n return \"application/octet-stream\";\n }\n\n // Check magic bytes for common audio formats\n // WAV: \"RIFF\" + size + \"WAVE\"\n if (\n buffer[0] === 0x52 &&\n buffer[1] === 0x49 &&\n buffer[2] === 0x46 &&\n buffer[3] === 0x46 &&\n buffer[8] === 0x57 &&\n buffer[9] === 0x41 &&\n buffer[10] === 0x56 &&\n buffer[11] === 0x45\n ) {\n return \"audio/wav\";\n }\n\n // MP3: ID3 tag or MPEG frame sync\n if (\n (buffer[0] === 0x49 && buffer[1] === 0x44 && buffer[2] === 0x33) || // ID3\n (buffer[0] === 0xff && (buffer[1] & 0xe0) === 0xe0) // MPEG sync\n ) {\n return \"audio/mpeg\";\n }\n\n // OGG: \"OggS\"\n if (\n buffer[0] === 0x4f &&\n buffer[1] === 0x67 &&\n buffer[2] === 0x67 &&\n buffer[3] === 0x53\n ) {\n return \"audio/ogg\";\n }\n\n // FLAC: \"fLaC\"\n if (\n buffer[0] === 0x66 &&\n buffer[1] === 0x4c &&\n buffer[2] === 0x61 &&\n buffer[3] === 0x43\n ) {\n return \"audio/flac\";\n }\n\n // M4A/MP4: \"ftyp\" at offset 4\n if (\n buffer[4] === 0x66 &&\n buffer[5] === 0x74 &&\n buffer[6] === 0x79 &&\n buffer[7] === 0x70\n ) {\n return \"audio/mp4\";\n }\n\n // WebM: EBML header\n if (\n buffer[0] === 0x1a &&\n buffer[1] === 0x45 &&\n buffer[2] === 0xdf &&\n buffer[3] === 0xa3\n ) {\n return \"audio/webm\";\n }\n\n // Unknown format - let API try to detect\n logger.warn(\n \"Could not detect audio format from buffer, using generic binary type\",\n );\n return \"application/octet-stream\";\n}\n\n/**\n * Converts a Web ReadableStream to a Node.js Readable stream\n * Handles both browser and Node.js environments\n * Uses dynamic import to avoid bundling node:stream in browser builds\n */\nexport async function webStreamToNodeStream(\n webStream: ReadableStream<Uint8Array>,\n) {\n try {\n // Dynamic import to avoid browser bundling issues\n const { Readable } = await import(\"node:stream\");\n const reader = webStream.getReader();\n\n return new Readable({\n async read() {\n try {\n const { done, value } = await reader.read();\n if (done) {\n this.push(null);\n } else {\n // Push the Uint8Array directly; Node.js Readable can handle it\n this.push(value);\n }\n } catch (error) {\n this.destroy(error as Error);\n }\n },\n destroy(error, callback) {\n reader.cancel().finally(() => callback(error));\n },\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Failed to load node:stream module: ${message}`);\n throw new Error(\n `Cannot convert stream: node:stream module unavailable. This feature requires a Node.js environment.`,\n );\n }\n}\n\n/**\n * Parses image description response from text format\n */\nexport function parseImageDescriptionResponse(\n responseText: string,\n): ImageDescriptionResult {\n const titleMatch = responseText.match(/title[:\\s]+(.+?)(?:\\n|$)/i);\n const title = titleMatch?.[1]?.trim() || \"Image Analysis\";\n const description = responseText\n .replace(/title[:\\s]+(.+?)(?:\\n|$)/i, \"\")\n .trim();\n\n return { title, description };\n}\n",
|
|
13
13
|
"import type { IAgentRuntime, TextEmbeddingParams } from \"@elizaos/core\";\nimport { logger, ModelType, VECTOR_DIMS } from \"@elizaos/core\";\nimport {\n getSetting,\n getEmbeddingBaseURL,\n getAuthHeader,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\n\n/**\n * TEXT_EMBEDDING model handler\n */\nexport async function handleTextEmbedding(\n runtime: IAgentRuntime,\n params: TextEmbeddingParams | string | null,\n): Promise<number[]> {\n const embeddingModelName = getSetting(\n runtime,\n \"ELIZAOS_CLOUD_EMBEDDING_MODEL\",\n \"text-embedding-3-small\",\n );\n const embeddingDimension = Number.parseInt(\n getSetting(runtime, \"ELIZAOS_CLOUD_EMBEDDING_DIMENSIONS\", \"1536\") || \"1536\",\n 10,\n ) as (typeof VECTOR_DIMS)[keyof typeof VECTOR_DIMS];\n\n if (!Object.values(VECTOR_DIMS).includes(embeddingDimension)) {\n const errorMsg = `Invalid embedding dimension: ${embeddingDimension}. Must be one of: ${Object.values(VECTOR_DIMS).join(\", \")}`;\n logger.error(errorMsg);\n throw new Error(errorMsg);\n }\n if (params === null) {\n logger.debug(\"Creating test embedding for initialization\");\n const testVector = Array(embeddingDimension).fill(0);\n testVector[0] = 0.1;\n return testVector;\n }\n let text: string;\n if (typeof params === \"string\") {\n text = params;\n } else if (typeof params === \"object\" && params.text) {\n text = params.text;\n } else {\n logger.warn(\"Invalid input format for embedding\");\n const fallbackVector = Array(embeddingDimension).fill(0);\n fallbackVector[0] = 0.2;\n return fallbackVector;\n }\n if (!text.trim()) {\n logger.warn(\"Empty text for embedding\");\n const emptyVector = Array(embeddingDimension).fill(0);\n emptyVector[0] = 0.3;\n return emptyVector;\n }\n\n const embeddingBaseURL = getEmbeddingBaseURL(runtime);\n\n try {\n const response = await fetch(`${embeddingBaseURL}/embeddings`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime, true),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n model: embeddingModelName,\n input: text,\n }),\n });\n\n if (!response.ok) {\n logger.error(\n `ElizaOS Cloud API error: ${response.status} - ${response.statusText}`,\n );\n const errorVector = Array(embeddingDimension).fill(0);\n errorVector[0] = 0.4;\n return errorVector;\n }\n\n const data = (await response.json()) as {\n data: [{ embedding: number[] }];\n usage?: { prompt_tokens: number; total_tokens: number };\n };\n\n if (!data?.data?.[0]?.embedding) {\n logger.error(\"API returned invalid structure\");\n const errorVector = Array(embeddingDimension).fill(0);\n errorVector[0] = 0.5;\n return errorVector;\n }\n\n const embedding = data.data[0].embedding;\n\n if (data.usage) {\n const usage = {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: 0,\n totalTokens: data.usage.total_tokens,\n };\n\n emitModelUsageEvent(runtime, ModelType.TEXT_EMBEDDING, text, usage);\n }\n\n logger.log(`Got valid embedding with length ${embedding.length}`);\n return embedding;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error generating embedding: ${message}`);\n const errorVector = Array(embeddingDimension).fill(0);\n errorVector[0] = 0.6;\n return errorVector;\n }\n}\n",
|
|
14
|
-
"import type {
|
|
14
|
+
"import type {\n IAgentRuntime,\n ImageDescriptionParams,\n ImageGenerationParams,\n} from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport {\n getSetting,\n getBaseURL,\n getAuthHeader,\n getImageDescriptionModel,\n getImageGenerationModel,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { parseImageDescriptionResponse } from \"../utils/helpers\";\n\n/**\n * IMAGE model handler - generates images from text prompts\n * Uses ElizaOS Cloud's custom /generate-image endpoint (not OpenAI-compatible)\n */\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams,\n): Promise<{ url: string }[]> {\n const numImages = params.count || 1;\n const size = params.size || \"1024x1024\";\n const prompt = params.prompt;\n const modelName = getImageGenerationModel(runtime);\n logger.log(`[ELIZAOS_CLOUD] Using IMAGE model: ${modelName}`);\n\n const baseURL = getBaseURL(runtime);\n\n // Convert size to aspect ratio for ElizaOS Cloud API\n const aspectRatioMap: Record<string, string> = {\n \"1024x1024\": \"1:1\",\n \"1792x1024\": \"16:9\",\n \"1024x1792\": \"9:16\",\n };\n const aspectRatio = aspectRatioMap[size] || \"1:1\";\n\n try {\n // ElizaOS Cloud uses /generate-image endpoint, not /images/generations\n const response = await fetch(`${baseURL}/generate-image`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n prompt: prompt,\n numImages: numImages,\n aspectRatio: aspectRatio,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new Error(\n `Failed to generate image: ${response.status} ${errorText}`,\n );\n }\n\n const data = await response.json();\n const typedData = data as {\n images: Array<{ url?: string; image: string }>;\n numImages: number;\n };\n\n // Map response to expected format\n return typedData.images.map((img) => ({\n url: img.url || img.image,\n }));\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`[ELIZAOS_CLOUD] Image generation error: ${message}`);\n throw error;\n }\n}\n\n/**\n * IMAGE_DESCRIPTION model handler - analyzes images and provides descriptions\n */\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string,\n): Promise<{ title: string; description: string }> {\n let imageUrl: string;\n let promptText: string | undefined;\n const modelName = getImageDescriptionModel(runtime);\n logger.log(`[ELIZAOS_CLOUD] Using IMAGE_DESCRIPTION model: ${modelName}`);\n const maxTokens = Number.parseInt(\n getSetting(runtime, \"ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MAX_TOKENS\", \"8192\") ||\n \"8192\",\n 10,\n );\n\n if (typeof params === \"string\") {\n imageUrl = params;\n promptText =\n \"Please analyze this image and provide a title and detailed description.\";\n } else {\n imageUrl = params.imageUrl;\n promptText =\n params.prompt ||\n \"Please analyze this image and provide a title and detailed description.\";\n }\n\n const messages = [\n {\n role: \"user\",\n content: [\n { type: \"text\", text: promptText },\n { type: \"image_url\", image_url: { url: imageUrl } },\n ],\n },\n ];\n\n const baseURL = getBaseURL(runtime);\n\n try {\n const requestBody: Record<string, unknown> = {\n model: modelName,\n messages: messages,\n max_tokens: maxTokens,\n };\n\n const response = await fetch(`${baseURL}/chat/completions`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...getAuthHeader(runtime),\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n throw new Error(`ElizaOS Cloud API error: ${response.status}`);\n }\n\n const result: unknown = await response.json();\n\n type OpenAIResponseType = {\n choices?: Array<{\n message?: { content?: string };\n finish_reason?: string;\n }>;\n usage?: {\n prompt_tokens: number;\n completion_tokens: number;\n total_tokens: number;\n };\n };\n\n const typedResult = result as OpenAIResponseType;\n const content = typedResult.choices?.[0]?.message?.content;\n\n if (typedResult.usage) {\n emitModelUsageEvent(\n runtime,\n ModelType.IMAGE_DESCRIPTION,\n typeof params === \"string\" ? params : params.prompt || \"\",\n {\n inputTokens: typedResult.usage.prompt_tokens,\n outputTokens: typedResult.usage.completion_tokens,\n totalTokens: typedResult.usage.total_tokens,\n },\n );\n }\n\n if (!content) {\n return {\n title: \"Failed to analyze image\",\n description: \"No response from API\",\n };\n }\n\n // Always return structured object with title and description\n const processedResult = parseImageDescriptionResponse(content);\n return processedResult;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error analyzing image: ${message}`);\n return {\n title: \"Failed to analyze image\",\n description: `Error: ${message}`,\n };\n }\n}\n",
|
|
15
15
|
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport {\n getSetting,\n getBaseURL,\n getAuthHeader,\n isBrowser,\n} from \"../utils/config\";\nimport { webStreamToNodeStream } from \"../utils/helpers\";\nimport type { OpenAITextToSpeechParams } from \"../types\";\nimport type { Readable } from \"node:stream\";\n\n/**\n * function for text-to-speech\n */\nasync function fetchTextToSpeech(\n runtime: IAgentRuntime,\n options: OpenAITextToSpeechParams,\n): Promise<ReadableStream<Uint8Array> | Readable> {\n const defaultModel = getSetting(\n runtime,\n \"ELIZAOS_CLOUD_TTS_MODEL\",\n \"gpt-4o-mini-tts\",\n );\n const defaultVoice = getSetting(runtime, \"ELIZAOS_CLOUD_TTS_VOICE\", \"nova\");\n const defaultInstructions = getSetting(\n runtime,\n \"ELIZAOS_CLOUD_TTS_INSTRUCTIONS\",\n \"\",\n );\n const baseURL = getBaseURL(runtime);\n\n const model = options.model || (defaultModel as string);\n const voice = options.voice || (defaultVoice as string);\n const instructions = options.instructions ?? (defaultInstructions as string);\n const format = options.format || \"mp3\";\n\n try {\n const res = await fetch(`${baseURL}/audio/speech`, {\n method: \"POST\",\n headers: {\n ...getAuthHeader(runtime),\n \"Content-Type\": \"application/json\",\n // Hint desired audio format in Accept when possible\n ...(format === \"mp3\" ? { Accept: \"audio/mpeg\" } : {}),\n },\n body: JSON.stringify({\n model,\n voice,\n input: options.text,\n format,\n ...(instructions && { instructions }),\n }),\n });\n\n if (!res.ok) {\n const err = await res.text();\n throw new Error(`ElizaOS Cloud TTS error ${res.status}: ${err}`);\n }\n\n // Ensure response body exists\n if (!res.body) {\n throw new Error(\"ElizaOS Cloud TTS response body is null\");\n }\n\n // In Node.js, convert Web ReadableStream to Node.js Readable\n // In browser, return the Web ReadableStream directly\n if (!isBrowser()) {\n return await webStreamToNodeStream(res.body);\n }\n\n return res.body;\n } catch (err: unknown) {\n const message = err instanceof Error ? err.message : String(err);\n throw new Error(`Failed to fetch speech from ElizaOS Cloud TTS: ${message}`);\n }\n}\n\n/**\n * TEXT_TO_SPEECH model handler\n */\nexport async function handleTextToSpeech(\n runtime: IAgentRuntime,\n input: string | OpenAITextToSpeechParams,\n): Promise<ReadableStream<Uint8Array> | Readable> {\n // Normalize input into options with per-call overrides\n const options: OpenAITextToSpeechParams =\n typeof input === \"string\"\n ? { text: input }\n : (input as OpenAITextToSpeechParams);\n\n const resolvedModel =\n options.model ||\n (getSetting(runtime, \"ELIZAOS_CLOUD_TTS_MODEL\", \"gpt-4o-mini-tts\") as string);\n logger.log(`[ELIZAOS_CLOUD] Using TEXT_TO_SPEECH model: ${resolvedModel}`);\n try {\n const speechStream = await fetchTextToSpeech(runtime, options);\n return speechStream;\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error in TEXT_TO_SPEECH: ${message}`);\n throw error;\n }\n}\n\nexport { fetchTextToSpeech };\n"
|
|
16
16
|
],
|
|
17
|
-
"mappings": "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",
|
|
18
|
-
"debugId": "
|
|
17
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACkC,IAAlC;;;ACD2C,IAA3C;;;ACCuB,IAAvB;AASO,SAAS,UAAU,CACxB,SACA,KACA,cACoB;AAAA,EACpB,MAAM,QAAQ,QAAQ,WAAW,GAAG;AAAA,EAEpC,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,IACzC,OAAO,OAAO,KAAK;AAAA,EACrB;AAAA,EACA,OAAO,QAAQ,IAAI,QAAQ;AAAA;AAGtB,SAAS,SAAS,GAAY;AAAA,EACnC,OACE,OAAO,eAAe,eACtB,OAAQ,WAAuC,aAAa;AAAA;AAQzD,SAAS,WAAW,CAAC,SAAiC;AAAA,EAC3D,OAAO,UAAU,KAAK,CAAC,CAAC,WAAW,SAAS,gCAAgC;AAAA;AAGvE,SAAS,aAAa,CAC3B,SACA,eAAe,OACS;AAAA,EACxB,IAAI,UAAU;AAAA,IAAG,OAAO,CAAC;AAAA,EACzB,MAAM,MAAM,eAAe,mBAAmB,OAAO,IAAI,UAAU,OAAO;AAAA,EAC1E,OAAO,MAAM,EAAE,eAAe,UAAU,MAAM,IAAI,CAAC;AAAA;AAQ9C,SAAS,UAAU,CAAC,SAAgC;AAAA,EACzD,MAAM,aAAa,WAAW,SAAS,gCAAgC;AAAA,EACvE,MAAM,UACJ,UAAU,KAAK,aACX,aACA,WAAW,SAAS,0BAA0B,kCAAkC;AAAA,EAEtF,QAAQ,IAAI,qCAAqC,SAAS;AAAA,EAC1D,OAAO;AAAA;AAQF,SAAS,mBAAmB,CAAC,SAAgC;AAAA,EAClE,MAAM,eAAe,UAAU,IAC3B,WAAW,SAAS,qCAAqC,KACzD,WAAW,SAAS,gCAAgC,IACpD,WAAW,SAAS,6BAA6B;AAAA,EACrD,IAAI,cAAc;AAAA,IAChB,mBAAO,MACL,sDAAsD,cACxD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,mBAAO,MACL,kEACF;AAAA,EACA,OAAO,WAAW,OAAO;AAAA;AAUpB,SAAS,SAAS,CAAC,SAA4C;AAAA,EACpE,OAAO,WAAW,SAAS,uBAAuB;AAAA;AAS7C,SAAS,kBAAkB,CAAC,SAA4C;AAAA,EAC7E,MAAM,kBAAkB,WAAW,SAAS,iCAAiC;AAAA,EAC7E,IAAI,iBAAiB;AAAA,IACnB,mBAAO,MAAM,4DAA4D;AAAA,IACzE,OAAO;AAAA,EACT;AAAA,EACA,mBAAO,MACL,iEACF;AAAA,EACA,OAAO,UAAU,OAAO;AAAA;AAUnB,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OACE,WAAW,SAAS,2BAA2B,KAC9C,WAAW,SAAS,eAAe,aAAa;AAAA;AAW9C,SAAS,aAAa,CAAC,SAAgC;AAAA,EAC5D,OACE,WAAW,SAAS,2BAA2B,KAC9C,WAAW,SAAS,eAAe,QAAQ;AAAA;AAUzC,SAAS,wBAAwB,CAAC,SAAgC;AAAA,EACvE,OACE,WAAW,SAAS,yCAAyC,aAAa,KAC1E;AAAA;AAUG,SAAS,uBAAuB,CAAC,SAAgC;AAAA,EACtE,OACE,WAAW,SAAS,wCAAwC,mBAAmB,KAC/E;AAAA;AAUG,SAAS,wBAAwB,CAAC,SAAiC;AAAA,EACxE,MAAM,UAAU,WACd,SACA,wCACA,OACF;AAAA,EAEA,MAAM,oBAAoB,OAAO,OAAO,EAAE,YAAY;AAAA,EACtD,MAAM,SAAS,sBAAsB;AAAA,EACrC,mBAAO,MACL,wDAAwD,mBAAmB,OAAO,yBAAyB,+BAA+B,SAC5I;AAAA,EACA,OAAO;AAAA;;;AD/KF,SAAS,gBAAgB,CAC9B,SACA,SACM;AAAA,EAEN,IAAI,QAAc,OAAO,YAAY;AAAA,IACnC,QAAQ;AAAA,IACR,IAAI;AAAA,MACF,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC,UAAU,GAAG;AAAA,QACvC,oBAAO,KACL,+FACF;AAAA,QACA,oBAAO,KACL,oEACF;AAAA,QACA;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF,MAAM,UAAU,WAAW,OAAO;AAAA,QAClC,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB;AAAA,UAChD,SAAS,KAAK,cAAc,OAAO,EAAE;AAAA,QACvC,CAAC;AAAA,QACD,IAAI,CAAC,SAAS,IAAI;AAAA,UAChB,oBAAO,KACL,4CAA4C,SAAS,YACvD;AAAA,UACA,oBAAO,KACL,+EACF;AAAA,UACA,oBAAO,KACL,oEACF;AAAA,QACF,EAAO;AAAA,UACL,oBAAO,IAAI,8CAA8C;AAAA;AAAA,QAE3D,OAAO,YAAqB;AAAA,QAC5B,MAAM,UACJ,sBAAsB,QAAQ,WAAW,UAAU,OAAO,UAAU;AAAA,QACtE,oBAAO,KAAK,2CAA2C,SAAS;AAAA,QAChE,oBAAO,KACL,+EACF;AAAA;AAAA,MAEF,OAAO,OAAgB;AAAA,MACvB,MAAM,UACH,OAAmD,QAChD,IAAI,CAAC,MAAM,EAAE,OAAO,EACrB,KAAK,IAAI,MACX,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACxD,oBAAO,KACL,6CAA6C,yFAC/C;AAAA,MACA,oBAAO,KACL,oEACF;AAAA;AAAA,GAEH;AAAA;;;AE9D+B,IAAlC;AACyC,IAAzC;;;ACN6B,IAA7B;AAUO,SAAS,kBAAkB,CAAC,SAAwB;AAAA,EACzD,MAAM,UAAU,WAAW,OAAO;AAAA,EAGlC,MAAM,SACJ,UAAU,OAAO,MAAM,YAAY,OAAO,IAAI,gBAAgB;AAAA,EAChE,OAAO,2BAAa,EAAE,QAAS,UAAU,IAAe,QAAQ,CAAC;AAAA;;;ACZ5D,IAJP;AAcO,SAAS,mBAAmB,CACjC,SACA,MACA,QACA,OACA;AAAA,EAEA,MAAM,kBACJ,OAAO,WAAW,WACd,OAAO,SAAS,MACd,GAAG,OAAO,MAAM,GAAG,GAAG,OACtB,SACF;AAAA,EAEN,MAAM,cAAc,OAAO,MAAM,eAAe,CAAC;AAAA,EACjD,MAAM,eAAe,OAAO,MAAM,gBAAgB,CAAC;AAAA,EACnD,MAAM,cAAc,OAClB,MAAM,eAAe,OAAO,MAAM,cAAc,cAAc,YAChE;AAAA,EAEA,QAAQ,UAAU,uBAAU,YAAY;AAAA,IACtC;AAAA,IACA,QAAQ;AAAA,IACR,UAAU;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,EACF,CAAC;AAAA;;;AF3BH,SAAS,mBAAmB,CAC1B,SACA,WACA,QACA;AAAA,EACA,QAAQ,QAAQ,gBAAgB,CAAC,MAAM;AAAA,EACvC,MAAM,cAAc,OAAO,eAAe;AAAA,EAC1C,MAAM,mBAAmB,OAAO,oBAAoB;AAAA,EACpD,MAAM,kBAAkB,OAAO,mBAAmB;AAAA,EAClD,MAAM,YACH,OAAe,mBAAoB,OAAe,aAAa;AAAA,EAElE,MAAM,SAAS,mBAAmB,OAAO;AAAA,EACzC,MAAM,YACJ,cAAc,uBAAU,aACpB,cAAc,OAAO,IACrB,cAAc,OAAO;AAAA,EAC3B,MAAM,aACJ,cAAc,uBAAU,aAAa,eAAe;AAAA,EACtD,MAAM,wBAAwB,yBAAyB,OAAO;AAAA,EAE9D,MAAM,iBAAqD;AAAA,IACzD,OAAO,OAAO,cAAc,SAAS;AAAA,IACrC;AAAA,IACA,QAAQ,QAAQ,UAAU,UAAU;AAAA,IACpC;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,MACtB,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,gBAAgB,WAAW,YAAY,OAAO;AAAA;AAMzD,SAAS,yBAAyB,CAChC,SACA,WACA,gBACA,QACA,YACkB;AAAA,EAClB,oBAAO,MAAM,uCAAuC,kBAAkB;AAAA,EAEtE,MAAM,eAAe,qBAAW,cAAc;AAAA,EAE9C,OAAO;AAAA,IACL,YAAY,aAAa;AAAA,IACzB,MAAM,aAAa;AAAA,IACnB,OAAO,aAAa,MAAM,KAAK,CAAC,UAAU;AAAA,MACxC,IAAI,OAAO;AAAA,QACT,oBAAoB,SAAS,WAAW,QAAQ,KAAK;AAAA,QACrD,MAAM,cAAc,MAAM,eAAe;AAAA,QACzC,MAAM,eAAe,MAAM,gBAAgB;AAAA,QAC3C,OAAO;AAAA,UACL,cAAc;AAAA,UACd,kBAAkB;AAAA,UAClB,aAAa,cAAc;AAAA,QAC7B;AAAA,MACF;AAAA,MACA;AAAA,KACD;AAAA,IACD,cAAc,aAAa;AAAA,EAC7B;AAAA;AAMF,eAAe,qBAAqB,CAClC,SACA,WACA,QACoC;AAAA,EACpC,QAAQ,gBAAgB,WAAW,YAAY,WAAW,oBACxD,SACA,WACA,MACF;AAAA,EAEA,oBAAO,MACL,wCAAwC,qBAAqB,WAC/D;AAAA,EAGA,IAAI,OAAO,QAAQ;AAAA,IACjB,OAAO,0BACL,SACA,WACA,gBACA,QACA,UACF;AAAA,EACF;AAAA,EAGA,oBAAO,IAAI,yBAAyB,qBAAqB,WAAW;AAAA,EACpE,oBAAO,IAAI,MAAM;AAAA,EAEjB,MAAM,WAAW,MAAM,uBAAa,cAAc;AAAA,EAElD,IAAI,SAAS,OAAO;AAAA,IAClB,oBAAoB,SAAS,WAAW,QAAQ,SAAS,KAAK;AAAA,EAChE;AAAA,EAEA,OAAO,SAAS;AAAA;AAUlB,eAAsB,eAAe,CACnC,SACA,QACoC;AAAA,EACpC,OAAO,sBAAsB,SAAS,uBAAU,YAAY,MAAM;AAAA;AAUpE,eAAsB,eAAe,CACnC,SACA,QACoC;AAAA,EACpC,OAAO,sBAAsB,SAAS,uBAAU,YAAY,MAAM;AAAA;;AG5JlC,IAAlC;AAC+C,IAA/C;;;ACFuB,IAAvB;AAC+B,IAA/B;AAMO,SAAS,qBAAqB,GAGR;AAAA,EAC3B,OAAO,SAAS,MAAM,YAA8C;AAAA,IAClE,IAAI;AAAA,MACF,IAAI,iBAAiB,2BAAgB;AAAA,QACnC,MAAM,cAAc,KAAK,QAAQ,wBAAwB,EAAE;AAAA,QAC3D,KAAK,MAAM,WAAW;AAAA,QACtB,OAAO;AAAA,MACT;AAAA,MACA,OAAO;AAAA,MACP,OAAO,WAAoB;AAAA,MAC3B,MAAM,UACJ,qBAAqB,QAAQ,UAAU,UAAU,OAAO,SAAS;AAAA,MACnE,oBAAO,KAAK,+BAA+B,SAAS;AAAA,MACpD,OAAO;AAAA;AAAA;AAAA;AA0Fb,eAAsB,qBAAqB,CACzC,WACA;AAAA,EACA,IAAI;AAAA,IAEF,QAAQ,aAAa,MAAa;AAAA,IAClC,MAAM,SAAS,UAAU,UAAU;AAAA,IAEnC,OAAO,IAAI,SAAS;AAAA,WACZ,KAAI,GAAG;AAAA,QACX,IAAI;AAAA,UACF,QAAQ,MAAM,UAAU,MAAM,OAAO,KAAK;AAAA,UAC1C,IAAI,MAAM;AAAA,YACR,KAAK,KAAK,IAAI;AAAA,UAChB,EAAO;AAAA,YAEL,KAAK,KAAK,KAAK;AAAA;AAAA,UAEjB,OAAO,OAAO;AAAA,UACd,KAAK,QAAQ,KAAc;AAAA;AAAA;AAAA,MAG/B,OAAO,CAAC,OAAO,UAAU;AAAA,QACvB,OAAO,OAAO,EAAE,QAAQ,MAAM,SAAS,KAAK,CAAC;AAAA;AAAA,IAEjD,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,IACd,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,oBAAO,MAAM,sCAAsC,SAAS;AAAA,IAC5D,MAAM,IAAI,MACR,qGACF;AAAA;AAAA;AAOG,SAAS,6BAA6B,CAC3C,cACwB;AAAA,EACxB,MAAM,aAAa,aAAa,MAAM,2BAA2B;AAAA,EACjE,MAAM,QAAQ,aAAa,IAAI,KAAK,KAAK;AAAA,EACzC,MAAM,cAAc,aACjB,QAAQ,6BAA6B,EAAE,EACvC,KAAK;AAAA,EAER,OAAO,EAAE,OAAO,YAAY;AAAA;;;ADrJ9B,eAAe,yBAAyB,CACtC,SACA,QACA,WACA,YACkC;AAAA,EAClC,MAAM,SAAS,mBAAmB,OAAO;AAAA,EACzC,MAAM,YAAY,WAAW,OAAO;AAAA,EACpC,oBAAO,IAAI,yBAAyB,oBAAoB,WAAW;AAAA,EACnE,MAAM,cAAc,OAAO,eAAe;AAAA,EAC1C,MAAM,gBAAgB,CAAC,CAAC,OAAO;AAAA,EAE/B,IAAI,eAAe;AAAA,IACjB,oBAAO,KACL,SAAS,4EACX;AAAA,EACF;AAAA,EAEA,IAAI;AAAA,IACF,QAAQ,QAAQ,UAAU,MAAM,0BAAe;AAAA,MAC7C,OAAO,OAAO,cAAc,SAAS;AAAA,MACrC,QAAQ;AAAA,MACR,QAAQ,OAAO;AAAA,MACf;AAAA,MACA,yBAAyB,sBAAsB;AAAA,IACjD,CAAC;AAAA,IAED,IAAI,OAAO;AAAA,MACT,oBAAoB,SAAS,WAAoB,OAAO,QAAQ,KAAK;AAAA,IACvE;AAAA,IACA,OAAO;AAAA,IACP,OAAO,OAAgB;AAAA,IACvB,IAAI,iBAAiB,2BAAgB;AAAA,MACnC,oBAAO,MAAM,0CAA0C,MAAM,SAAS;AAAA,MAEtE,MAAM,iBAAiB,sBAAsB;AAAA,MAC7C,MAAM,qBAAqB,MAAM,eAAe;AAAA,QAC9C,MAAM,MAAM;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,MAED,IAAI,oBAAoB;AAAA,QACtB,IAAI;AAAA,UACF,MAAM,iBAAiB,KAAK,MAAM,kBAAkB;AAAA,UACpD,oBAAO,KAAK,8CAA8C;AAAA,UAC1D,OAAO;AAAA,UACP,OAAO,kBAA2B;AAAA,UAClC,MAAM,UACJ,4BAA4B,QACxB,iBAAiB,UACjB,OAAO,gBAAgB;AAAA,UAC7B,oBAAO,MACL,mDAAmD,SACrD;AAAA,UACA,MAAM;AAAA;AAAA,MAEV,EAAO;AAAA,QACL,oBAAO,MAAM,sCAAsC;AAAA,QACnD,MAAM;AAAA;AAAA,IAEV,EAAO;AAAA,MACL,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACrE,oBAAO,MAAM,mCAAmC,SAAS;AAAA,MACzD,MAAM;AAAA;AAAA;AAAA;AAQZ,eAAsB,iBAAiB,CACrC,SACA,QACkC;AAAA,EAClC,OAAO,0BACL,SACA,QACA,uBAAU,cACV,aACF;AAAA;AAMF,eAAsB,iBAAiB,CACrC,SACA,QACkC;AAAA,EAClC,OAAO,0BACL,SACA,QACA,uBAAU,cACV,aACF;AAAA;;AEzG6C,IAA/C;AAWA,eAAsB,mBAAmB,CACvC,SACA,QACmB;AAAA,EACnB,MAAM,qBAAqB,WACzB,SACA,iCACA,wBACF;AAAA,EACA,MAAM,qBAAqB,OAAO,SAChC,WAAW,SAAS,sCAAsC,MAAM,KAAK,QACrE,EACF;AAAA,EAEA,IAAI,CAAC,OAAO,OAAO,wBAAW,EAAE,SAAS,kBAAkB,GAAG;AAAA,IAC5D,MAAM,WAAW,gCAAgC,uCAAuC,OAAO,OAAO,wBAAW,EAAE,KAAK,IAAI;AAAA,IAC5H,oBAAO,MAAM,QAAQ;AAAA,IACrB,MAAM,IAAI,MAAM,QAAQ;AAAA,EAC1B;AAAA,EACA,IAAI,WAAW,MAAM;AAAA,IACnB,oBAAO,MAAM,4CAA4C;AAAA,IACzD,MAAM,aAAa,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACnD,WAAW,KAAK;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EACA,IAAI;AAAA,EACJ,IAAI,OAAO,WAAW,UAAU;AAAA,IAC9B,OAAO;AAAA,EACT,EAAO,SAAI,OAAO,WAAW,YAAY,OAAO,MAAM;AAAA,IACpD,OAAO,OAAO;AAAA,EAChB,EAAO;AAAA,IACL,oBAAO,KAAK,oCAAoC;AAAA,IAChD,MAAM,iBAAiB,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACvD,eAAe,KAAK;AAAA,IACpB,OAAO;AAAA;AAAA,EAET,IAAI,CAAC,KAAK,KAAK,GAAG;AAAA,IAChB,oBAAO,KAAK,0BAA0B;AAAA,IACtC,MAAM,cAAc,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACpD,YAAY,KAAK;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,mBAAmB,oBAAoB,OAAO;AAAA,EAEpD,IAAI;AAAA,IACF,MAAM,WAAW,MAAM,MAAM,GAAG,+BAA+B;AAAA,MAC7D,QAAQ;AAAA,MACR,SAAS;AAAA,WACJ,cAAc,SAAS,IAAI;AAAA,QAC9B,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB,OAAO;AAAA,QACP,OAAO;AAAA,MACT,CAAC;AAAA,IACH,CAAC;AAAA,IAED,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,oBAAO,MACL,4BAA4B,SAAS,YAAY,SAAS,YAC5D;AAAA,MACA,MAAM,cAAc,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,MACpD,YAAY,KAAK;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,IAKlC,IAAI,CAAC,MAAM,OAAO,IAAI,WAAW;AAAA,MAC/B,oBAAO,MAAM,gCAAgC;AAAA,MAC7C,MAAM,cAAc,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,MACpD,YAAY,KAAK;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,IAEA,MAAM,YAAY,KAAK,KAAK,GAAG;AAAA,IAE/B,IAAI,KAAK,OAAO;AAAA,MACd,MAAM,QAAQ;AAAA,QACZ,aAAa,KAAK,MAAM;AAAA,QACxB,cAAc;AAAA,QACd,aAAa,KAAK,MAAM;AAAA,MAC1B;AAAA,MAEA,oBAAoB,SAAS,uBAAU,gBAAgB,MAAM,KAAK;AAAA,IACpE;AAAA,IAEA,oBAAO,IAAI,mCAAmC,UAAU,QAAQ;AAAA,IAChE,OAAO;AAAA,IACP,OAAO,OAAgB;AAAA,IACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,oBAAO,MAAM,+BAA+B,SAAS;AAAA,IACrD,MAAM,cAAc,MAAM,kBAAkB,EAAE,KAAK,CAAC;AAAA,IACpD,YAAY,KAAK;AAAA,IACjB,OAAO;AAAA;AAAA;;ACzGuB,IAAlC;AAeA,eAAsB,qBAAqB,CACzC,SACA,QAC4B;AAAA,EAC5B,MAAM,YAAY,OAAO,SAAS;AAAA,EAClC,MAAM,OAAO,OAAO,QAAQ;AAAA,EAC5B,MAAM,SAAS,OAAO;AAAA,EACtB,MAAM,YAAY,wBAAwB,OAAO;AAAA,EACjD,oBAAO,IAAI,sCAAsC,WAAW;AAAA,EAE5D,MAAM,UAAU,WAAW,OAAO;AAAA,EAGlC,MAAM,iBAAyC;AAAA,IAC7C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA,MAAM,cAAc,eAAe,SAAS;AAAA,EAE5C,IAAI;AAAA,IAEF,MAAM,WAAW,MAAM,MAAM,GAAG,0BAA0B;AAAA,MACxD,QAAQ;AAAA,MACR,SAAS;AAAA,WACJ,cAAc,OAAO;AAAA,QACxB,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IAED,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,MAAM,YAAY,MAAM,SAAS,KAAK;AAAA,MACtC,MAAM,IAAI,MACR,6BAA6B,SAAS,UAAU,WAClD;AAAA,IACF;AAAA,IAEA,MAAM,OAAO,MAAM,SAAS,KAAK;AAAA,IACjC,MAAM,YAAY;AAAA,IAMlB,OAAO,UAAU,OAAO,IAAI,CAAC,SAAS;AAAA,MACpC,KAAK,IAAI,OAAO,IAAI;AAAA,IACtB,EAAE;AAAA,IACF,OAAO,OAAgB;AAAA,IACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,oBAAO,MAAM,2CAA2C,SAAS;AAAA,IACjE,MAAM;AAAA;AAAA;AAOV,eAAsB,sBAAsB,CAC1C,SACA,QACiD;AAAA,EACjD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM,YAAY,yBAAyB,OAAO;AAAA,EAClD,oBAAO,IAAI,kDAAkD,WAAW;AAAA,EACxE,MAAM,YAAY,OAAO,SACvB,WAAW,SAAS,8CAA8C,MAAM,KACtE,QACF,EACF;AAAA,EAEA,IAAI,OAAO,WAAW,UAAU;AAAA,IAC9B,WAAW;AAAA,IACX,aACE;AAAA,EACJ,EAAO;AAAA,IACL,WAAW,OAAO;AAAA,IAClB,aACE,OAAO,UACP;AAAA;AAAA,EAGJ,MAAM,WAAW;AAAA,IACf;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,EAAE,MAAM,QAAQ,MAAM,WAAW;AAAA,QACjC,EAAE,MAAM,aAAa,WAAW,EAAE,KAAK,SAAS,EAAE;AAAA,MACpD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,UAAU,WAAW,OAAO;AAAA,EAElC,IAAI;AAAA,IACF,MAAM,cAAuC;AAAA,MAC3C,OAAO;AAAA,MACP;AAAA,MACA,YAAY;AAAA,IACd;AAAA,IAEA,MAAM,WAAW,MAAM,MAAM,GAAG,4BAA4B;AAAA,MAC1D,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,WACb,cAAc,OAAO;AAAA,MAC1B;AAAA,MACA,MAAM,KAAK,UAAU,WAAW;AAAA,IAClC,CAAC;AAAA,IAED,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,MAAM,IAAI,MAAM,4BAA4B,SAAS,QAAQ;AAAA,IAC/D;AAAA,IAEA,MAAM,SAAkB,MAAM,SAAS,KAAK;AAAA,IAc5C,MAAM,cAAc;AAAA,IACpB,MAAM,UAAU,YAAY,UAAU,IAAI,SAAS;AAAA,IAEnD,IAAI,YAAY,OAAO;AAAA,MACrB,oBACE,SACA,uBAAU,mBACV,OAAO,WAAW,WAAW,SAAS,OAAO,UAAU,IACvD;AAAA,QACE,aAAa,YAAY,MAAM;AAAA,QAC/B,cAAc,YAAY,MAAM;AAAA,QAChC,aAAa,YAAY,MAAM;AAAA,MACjC,CACF;AAAA,IACF;AAAA,IAEA,IAAI,CAAC,SAAS;AAAA,MACZ,OAAO;AAAA,QACL,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IAGA,MAAM,kBAAkB,8BAA8B,OAAO;AAAA,IAC7D,OAAO;AAAA,IACP,OAAO,OAAgB;AAAA,IACvB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrE,oBAAO,MAAM,0BAA0B,SAAS;AAAA,IAChD,OAAO;AAAA,MACL,OAAO;AAAA,MACP,aAAa,UAAU;AAAA,IACzB;AAAA;AAAA;;ACxLmB,IAAvB;AAcA,eAAe,iBAAiB,CAC9B,SACA,SACgD;AAAA,EAChD,MAAM,eAAe,WACnB,SACA,2BACA,iBACF;AAAA,EACA,MAAM,eAAe,WAAW,SAAS,2BAA2B,MAAM;AAAA,EAC1E,MAAM,sBAAsB,WAC1B,SACA,kCACA,EACF;AAAA,EACA,MAAM,UAAU,WAAW,OAAO;AAAA,EAElC,MAAM,QAAQ,QAAQ,SAAU;AAAA,EAChC,MAAM,QAAQ,QAAQ,SAAU;AAAA,EAChC,MAAM,eAAe,QAAQ,gBAAiB;AAAA,EAC9C,MAAM,SAAS,QAAQ,UAAU;AAAA,EAEjC,IAAI;AAAA,IACF,MAAM,MAAM,MAAM,MAAM,GAAG,wBAAwB;AAAA,MACjD,QAAQ;AAAA,MACR,SAAS;AAAA,WACJ,cAAc,OAAO;AAAA,QACxB,gBAAgB;AAAA,WAEZ,WAAW,QAAQ,EAAE,QAAQ,aAAa,IAAI,CAAC;AAAA,MACrD;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA;AAAA,QACA,OAAO,QAAQ;AAAA,QACf;AAAA,WACI,gBAAgB,EAAE,aAAa;AAAA,MACrC,CAAC;AAAA,IACH,CAAC;AAAA,IAED,IAAI,CAAC,IAAI,IAAI;AAAA,MACX,MAAM,MAAM,MAAM,IAAI,KAAK;AAAA,MAC3B,MAAM,IAAI,MAAM,2BAA2B,IAAI,WAAW,KAAK;AAAA,IACjE;AAAA,IAGA,IAAI,CAAC,IAAI,MAAM;AAAA,MACb,MAAM,IAAI,MAAM,yCAAyC;AAAA,IAC3D;AAAA,IAIA,IAAI,CAAC,UAAU,GAAG;AAAA,MAChB,OAAO,MAAM,sBAAsB,IAAI,IAAI;AAAA,IAC7C;AAAA,IAEA,OAAO,IAAI;AAAA,IACX,OAAO,KAAc;AAAA,IACrB,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,IAC/D,MAAM,IAAI,MAAM,kDAAkD,SAAS;AAAA;AAAA;;AVxBxE,IAAM,qBAA6B;AAAA,EACxC,MAAM;AAAA,EACN,aACE;AAAA,EACF,QAAQ;AAAA,IACN,uBAAuB,QAAQ,IAAI;AAAA,IACnC,wBAAwB,QAAQ,IAAI;AAAA,IACpC,2BAA2B,QAAQ,IAAI;AAAA,IACvC,2BAA2B,QAAQ,IAAI;AAAA,IACvC,aAAa,QAAQ,IAAI;AAAA,IACzB,aAAa,QAAQ,IAAI;AAAA,IACzB,+BAA+B,QAAQ,IAAI;AAAA,IAC3C,iCACE,QAAQ,IAAI;AAAA,IACd,6BAA6B,QAAQ,IAAI;AAAA,IACzC,oCACE,QAAQ,IAAI;AAAA,IACd,uCACE,QAAQ,IAAI;AAAA,IACd,4CACE,QAAQ,IAAI;AAAA,IACd,sCACE,QAAQ,IAAI;AAAA,IACd,sCACE,QAAQ,IAAI;AAAA,EAChB;AAAA,OACM,KAAI,CAAC,QAAQ,SAAS;AAAA,IAC1B,iBAAiB,QAAQ,OAAO;AAAA;AAAA,EAGlC,QAAQ;AAAA,KACL,wBAAU,iBAAiB;AAAA,KAG3B,wBAAU,aAAa;AAAA,KACvB,wBAAU,aAAa;AAAA,KACvB,wBAAU,QAAQ;AAAA,KAClB,wBAAU,oBAAoB;AAAA,KAG9B,wBAAU,eAAe;AAAA,KACzB,wBAAU,eAAe;AAAA,EAC5B;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,MAAM,UAAU,WAAW,OAAO;AAAA,YAClC,MAAM,WAAW,MAAM,MAAM,GAAG,kBAAkB;AAAA,cAChD,SAAS;AAAA,gBACP,eAAe,UAAU,UAAU,OAAO;AAAA,cAC5C;AAAA,YACF,CAAC;AAAA,YACD,MAAM,OAAO,MAAM,SAAS,KAAK;AAAA,YACjC,qBAAO,IACL,EAAE,MAAO,MAA+B,MAAM,UAAU,MAAM,GAC9D,kBACF;AAAA,YACA,IAAI,CAAC,SAAS,IAAI;AAAA,cAChB,MAAM,IAAI,MACR,sCAAsC,SAAS,YACjD;AAAA,YACF;AAAA;AAAA,QAEJ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,YAAY,MAAM,QAAQ,SAC9B,wBAAU,gBACV;AAAA,gBACE,MAAM;AAAA,cACR,CACF;AAAA,cACA,qBAAO,IAAI,EAAE,UAAU,GAAG,WAAW;AAAA,cACrC,OAAO,OAAgB;AAAA,cACvB,MAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACvD,qBAAO,MAAM,iCAAiC,SAAS;AAAA,cACvD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,OAAO,MAAM,QAAQ,SAAS,wBAAU,YAAY;AAAA,gBACxD,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,IAAI,KAAK,WAAW,GAAG;AAAA,gBACrB,MAAM,IAAI,MAAM,yBAAyB;AAAA,cAC3C;AAAA,cACA,qBAAO,IAAI,EAAE,KAAK,GAAG,gCAAgC;AAAA,cACrD,OAAO,OAAgB;AAAA,cACvB,MAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACvD,qBAAO,MAAM,6BAA6B,SAAS;AAAA,cACnD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,OAAO,MAAM,QAAQ,SAAS,wBAAU,YAAY;AAAA,gBACxD,QAAQ;AAAA,cACV,CAAC;AAAA,cACD,IAAI,KAAK,WAAW,GAAG;AAAA,gBACrB,MAAM,IAAI,MAAM,yBAAyB;AAAA,cAC3C;AAAA,cACA,qBAAO,IAAI,EAAE,KAAK,GAAG,gCAAgC;AAAA,cACrD,OAAO,OAAgB;AAAA,cACvB,MAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACvD,qBAAO,MAAM,6BAA6B,SAAS;AAAA,cACnD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,qBAAO,IAAI,qCAAqC;AAAA,YAChD,IAAI;AAAA,cACF,MAAM,QAAQ,MAAM,QAAQ,SAAS,wBAAU,OAAO;AAAA,gBACpD,QAAQ;AAAA,gBACR,OAAO;AAAA,gBACP,MAAM;AAAA,cACR,CAAC;AAAA,cACD,qBAAO,IAAI,EAAE,MAAM,GAAG,sCAAsC;AAAA,cAC5D,OAAO,OAAgB;AAAA,cACvB,MAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACvD,qBAAO,MAAM,mCAAmC,SAAS;AAAA,cACzD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,qBAAO,IAAI,sCAAsC;AAAA,cACjD,IAAI;AAAA,gBACF,MAAM,SAAS,MAAM,QAAQ,SAC3B,wBAAU,mBACV,mLACF;AAAA,gBAEA,IACE,UACA,OAAO,WAAW,YAClB,WAAW,UACX,iBAAiB,QACjB;AAAA,kBACA,qBAAO,IAAI,EAAE,OAAO,GAAG,mBAAmB;AAAA,gBAC5C,EAAO;AAAA,kBACL,qBAAO,MACL,4CACA,MACF;AAAA;AAAA,gBAEF,OAAO,GAAY;AAAA,gBACnB,MAAM,UAAU,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AAAA,gBACzD,qBAAO,MAAM,oCAAoC,SAAS;AAAA;AAAA,cAE5D,OAAO,GAAY;AAAA,cACnB,MAAM,UAAU,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC;AAAA,cACzD,qBAAO,MACL,kDAAkD,SACpD;AAAA;AAAA;AAAA,QAGN;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,qBAAO,IAAI,kCAAkC;AAAA,YAC7C,IAAI;AAAA,cACF,MAAM,WAAW,MAAM,MACrB,+EACF;AAAA,cACA,MAAM,cAAc,MAAM,SAAS,YAAY;AAAA,cAC/C,MAAM,gBAAgB,MAAM,QAAQ,SAClC,wBAAU,eACV,OAAO,KAAK,IAAI,WAAW,WAAW,CAAC,CACzC;AAAA,cACA,qBAAO,IACL,EAAE,cAAc,GAChB,mCACF;AAAA,cACA,OAAO,OAAgB;AAAA,cACvB,MAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACvD,qBAAO,MAAM,gCAAgC,SAAS;AAAA,cACtD,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,MAAM,SAAS;AAAA,YACf,MAAM,SAAS,MAAM,QAAQ,SAC3B,wBAAU,uBACV,EAAE,QAAQ,WAAW,wBAAU,WAAW,CAC5C;AAAA,YACA,IAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,GAAG;AAAA,cACjD,MAAM,IAAI,MACR,6DACF;AAAA,YACF;AAAA,YACA,qBAAO,IAAI,EAAE,OAAO,GAAG,kBAAkB;AAAA;AAAA,QAE7C;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,MAAM,SAAS;AAAA,YACf,MAAM,SAAS,MAAM,QAAQ,SAC3B,wBAAU,uBACV,EAAE,QAAQ,WAAW,wBAAU,WAAW,CAC5C;AAAA,YACA,MAAM,cAAc,MAAM,QAAQ,SAChC,wBAAU,uBACV,EAAE,QAAQ,WAAW,wBAAU,WAAW,CAC5C;AAAA,YACA,IAAI,gBAAgB,QAAQ;AAAA,cAC1B,MAAM,IAAI,MACR,mDAAmD,iBAAiB,cACtE;AAAA,YACF;AAAA,YACA,qBAAO,IAAI,EAAE,YAAY,GAAG,cAAc;AAAA;AAAA,QAE9C;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,IAAI,OAAO,YAA2B;AAAA,YACpC,IAAI;AAAA,cACF,MAAM,WAAW,MAAM,kBAAkB,SAAS;AAAA,gBAChD,MAAM;AAAA,cACR,CAAC;AAAA,cACD,IAAI,CAAC,UAAU;AAAA,gBACb,MAAM,IAAI,MAAM,2BAA2B;AAAA,cAC7C;AAAA,cACA,qBAAO,IAAI,+BAA+B;AAAA,cAC1C,OAAO,OAAgB;AAAA,cACvB,MAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,cACvD,qBAAO,MACL,+CAA+C,SACjD;AAAA,cACA,MAAM;AAAA;AAAA;AAAA,QAGZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AACA,IAAe;",
|
|
18
|
+
"debugId": "811C63D22E2DA02364756E2164756E21",
|
|
19
19
|
"names": []
|
|
20
20
|
}
|
package/dist/models/image.d.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import type { IAgentRuntime, ImageDescriptionParams } from "@elizaos/core";
|
|
2
|
-
import type { ImageDescriptionResult } from "../types";
|
|
1
|
+
import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from "@elizaos/core";
|
|
3
2
|
/**
|
|
4
3
|
* IMAGE model handler - generates images from text prompts
|
|
5
4
|
* Uses ElizaOS Cloud's custom /generate-image endpoint (not OpenAI-compatible)
|
|
6
5
|
*/
|
|
7
|
-
export declare function handleImageGeneration(runtime: IAgentRuntime, params: {
|
|
8
|
-
prompt: string;
|
|
9
|
-
n?: number;
|
|
10
|
-
size?: string;
|
|
11
|
-
}): Promise<{
|
|
6
|
+
export declare function handleImageGeneration(runtime: IAgentRuntime, params: ImageGenerationParams): Promise<{
|
|
12
7
|
url: string;
|
|
13
8
|
}[]>;
|
|
14
9
|
/**
|
|
15
10
|
* IMAGE_DESCRIPTION model handler - analyzes images and provides descriptions
|
|
16
11
|
*/
|
|
17
|
-
export declare function handleImageDescription(runtime: IAgentRuntime, params: ImageDescriptionParams | string): Promise<
|
|
12
|
+
export declare function handleImageDescription(runtime: IAgentRuntime, params: ImageDescriptionParams | string): Promise<{
|
|
13
|
+
title: string;
|
|
14
|
+
description: string;
|
|
15
|
+
}>;
|
package/dist/models/object.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { IAgentRuntime, ObjectGenerationParams } from "@elizaos/core";
|
|
2
|
-
import { type JSONValue } from "ai";
|
|
3
2
|
/**
|
|
4
3
|
* OBJECT_SMALL model handler
|
|
5
4
|
*/
|
|
6
|
-
export declare function handleObjectSmall(runtime: IAgentRuntime, params: ObjectGenerationParams): Promise<
|
|
5
|
+
export declare function handleObjectSmall(runtime: IAgentRuntime, params: ObjectGenerationParams): Promise<Record<string, unknown>>;
|
|
7
6
|
/**
|
|
8
7
|
* OBJECT_LARGE model handler
|
|
9
8
|
*/
|
|
10
|
-
export declare function handleObjectLarge(runtime: IAgentRuntime, params: ObjectGenerationParams): Promise<
|
|
9
|
+
export declare function handleObjectLarge(runtime: IAgentRuntime, params: ObjectGenerationParams): Promise<Record<string, unknown>>;
|
package/dist/models/text.d.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
import type { GenerateTextParams, IAgentRuntime } from "@elizaos/core";
|
|
1
|
+
import type { GenerateTextParams, IAgentRuntime, TextStreamResult } from "@elizaos/core";
|
|
2
2
|
/**
|
|
3
3
|
* TEXT_SMALL model handler
|
|
4
|
+
*
|
|
5
|
+
* Returns:
|
|
6
|
+
* - `string` for simple text generation
|
|
7
|
+
* - `TextStreamResult` for streaming (when params.stream = true)
|
|
4
8
|
*/
|
|
5
|
-
export declare function handleTextSmall(runtime: IAgentRuntime,
|
|
9
|
+
export declare function handleTextSmall(runtime: IAgentRuntime, params: GenerateTextParams): Promise<string | TextStreamResult>;
|
|
6
10
|
/**
|
|
7
11
|
* TEXT_LARGE model handler
|
|
12
|
+
*
|
|
13
|
+
* Returns:
|
|
14
|
+
* - `string` for simple text generation
|
|
15
|
+
* - `TextStreamResult` for streaming (when params.stream = true)
|
|
8
16
|
*/
|
|
9
|
-
export declare function handleTextLarge(runtime: IAgentRuntime,
|
|
17
|
+
export declare function handleTextLarge(runtime: IAgentRuntime, params: GenerateTextParams): Promise<string | TextStreamResult>;
|