@lov3kaizen/agentsea-core 0.3.0 → 0.3.1

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/index.d.mts CHANGED
@@ -859,9 +859,13 @@ declare class VoiceAgent {
859
859
  };
860
860
  }
861
861
 
862
+ interface OpenAIWhisperConfig {
863
+ apiKey?: string;
864
+ baseURL?: string;
865
+ }
862
866
  declare class OpenAIWhisperProvider implements STTProvider {
863
867
  private client;
864
- constructor(apiKey?: string);
868
+ constructor(config?: string | OpenAIWhisperConfig);
865
869
  transcribe(audio: Buffer | string, config?: STTConfig): Promise<STTResult>;
866
870
  supportsStreaming(): boolean;
867
871
  getSupportedLanguages(): string[];
@@ -881,9 +885,17 @@ declare class LocalWhisperProvider implements STTProvider {
881
885
  getInstallInstructions(): string;
882
886
  }
883
887
 
888
+ declare class LemonFoxSTTProvider extends OpenAIWhisperProvider {
889
+ constructor(apiKey?: string);
890
+ }
891
+
892
+ interface OpenAITTSConfig {
893
+ apiKey?: string;
894
+ baseURL?: string;
895
+ }
884
896
  declare class OpenAITTSProvider implements TTSProvider {
885
897
  private client;
886
- constructor(apiKey?: string);
898
+ constructor(config?: string | OpenAITTSConfig);
887
899
  synthesize(text: string, config?: TTSConfig): Promise<TTSResult>;
888
900
  synthesizeStream(text: string, config?: TTSConfig): AsyncIterable<Buffer>;
889
901
  supportsStreaming(): boolean;
@@ -939,6 +951,18 @@ declare class PiperTTSProvider implements TTSProvider {
939
951
  }>>;
940
952
  }
941
953
 
954
+ declare class LemonFoxTTSProvider extends OpenAITTSProvider {
955
+ constructor(apiKey?: string);
956
+ getVoices(): Promise<Array<{
957
+ id: string;
958
+ name: string;
959
+ language?: string;
960
+ gender?: 'male' | 'female' | 'neutral';
961
+ }>>;
962
+ getModels(): string[];
963
+ getFormats(): AudioFormat[];
964
+ }
965
+
942
966
  interface TenantManagerConfig {
943
967
  storage: TenantStorage;
944
968
  defaultSettings?: Tenant['settings'];
@@ -1015,4 +1039,4 @@ declare class MemoryTenantStorage implements TenantStorage {
1015
1039
  clear(): void;
1016
1040
  }
1017
1041
 
1018
- export { type ACPAddress, type ACPCart, type ACPCartItem, type ACPCheckoutSession, ACPClient, type ACPConfig, type ACPCustomer, type ACPDelegatedPaymentConfig, type ACPOrder, type ACPPaginationMeta, type ACPPaymentIntent, type ACPPaymentMethod, type ACPProduct, type ACPProductSearchQuery, type ACPProductSearchResult, type ACPProductVariant, type ACPResponse, type ACPWebhookEvent, Agent, AnthropicProvider, BufferMemory, Cache, ContentFormatter, ConversationManager, ConversationSchema, ConversationSchemaBuilder, type ConversationSchemaConfig, type ConversationState, type ConversationStep, type ConversationTurn, ElevenLabsTTSProvider, GeminiProvider, LMStudioProvider, LRUCache, LocalAIProvider, LocalWhisperProvider, type LogLevel, Logger, type LoggerConfig, type MCPCallToolRequest, type MCPCallToolResponse, MCPClient, type MCPListToolsRequest, type MCPListToolsResponse, type MCPMessage, type MCPPrompt, type MCPReadResourceRequest, type MCPReadResourceResponse, MCPRegistry, type MCPResource, type MCPServerCapabilities, type MCPServerConfig, type MCPServerInfo, type MCPTool, type MCPTransport, MemoryTenantStorage, MetricsCollector, OllamaProvider, OpenAICompatibleProvider, OpenAIProvider, OpenAITTSProvider, OpenAIWhisperProvider, ParallelWorkflow, PiperTTSProvider, RateLimiter, RedisMemory, SSETransport, SequentialWorkflow, SlidingWindowRateLimiter, type Span, StdioTransport, SummaryMemory, SupervisorWorkflow, TenantBufferMemory, TenantManager, type TenantManagerConfig, TextGenerationWebUIProvider, ToolRegistry, Tracer, VLLMProvider, VoiceAgent, Workflow, WorkflowFactory, calculatorTool, createACPTools, defaultLogger, figmaGetCommentsTool, figmaGetFileTool, figmaGetImagesTool, figmaGetNodesTool, figmaPostCommentTool, fileListTool, fileReadTool, fileWriteTool, globalMetrics, globalTracer, httpRequestTool, mcpToolToAgenticTool, n8nExecuteWorkflowTool, n8nGetExecutionTool, n8nGetWorkflowTool, n8nListWorkflowsTool, n8nTriggerWebhookTool, stringTransformTool, textSummaryTool };
1042
+ export { type ACPAddress, type ACPCart, type ACPCartItem, type ACPCheckoutSession, ACPClient, type ACPConfig, type ACPCustomer, type ACPDelegatedPaymentConfig, type ACPOrder, type ACPPaginationMeta, type ACPPaymentIntent, type ACPPaymentMethod, type ACPProduct, type ACPProductSearchQuery, type ACPProductSearchResult, type ACPProductVariant, type ACPResponse, type ACPWebhookEvent, Agent, AnthropicProvider, BufferMemory, Cache, ContentFormatter, ConversationManager, ConversationSchema, ConversationSchemaBuilder, type ConversationSchemaConfig, type ConversationState, type ConversationStep, type ConversationTurn, ElevenLabsTTSProvider, GeminiProvider, LMStudioProvider, LRUCache, LemonFoxSTTProvider, LemonFoxTTSProvider, LocalAIProvider, LocalWhisperProvider, type LogLevel, Logger, type LoggerConfig, type MCPCallToolRequest, type MCPCallToolResponse, MCPClient, type MCPListToolsRequest, type MCPListToolsResponse, type MCPMessage, type MCPPrompt, type MCPReadResourceRequest, type MCPReadResourceResponse, MCPRegistry, type MCPResource, type MCPServerCapabilities, type MCPServerConfig, type MCPServerInfo, type MCPTool, type MCPTransport, MemoryTenantStorage, MetricsCollector, OllamaProvider, OpenAICompatibleProvider, OpenAIProvider, type OpenAITTSConfig, OpenAITTSProvider, type OpenAIWhisperConfig, OpenAIWhisperProvider, ParallelWorkflow, PiperTTSProvider, RateLimiter, RedisMemory, SSETransport, SequentialWorkflow, SlidingWindowRateLimiter, type Span, StdioTransport, SummaryMemory, SupervisorWorkflow, TenantBufferMemory, TenantManager, type TenantManagerConfig, TextGenerationWebUIProvider, ToolRegistry, Tracer, VLLMProvider, VoiceAgent, Workflow, WorkflowFactory, calculatorTool, createACPTools, defaultLogger, figmaGetCommentsTool, figmaGetFileTool, figmaGetImagesTool, figmaGetNodesTool, figmaPostCommentTool, fileListTool, fileReadTool, fileWriteTool, globalMetrics, globalTracer, httpRequestTool, mcpToolToAgenticTool, n8nExecuteWorkflowTool, n8nGetExecutionTool, n8nGetWorkflowTool, n8nListWorkflowsTool, n8nTriggerWebhookTool, stringTransformTool, textSummaryTool };
package/dist/index.d.ts CHANGED
@@ -859,9 +859,13 @@ declare class VoiceAgent {
859
859
  };
860
860
  }
861
861
 
862
+ interface OpenAIWhisperConfig {
863
+ apiKey?: string;
864
+ baseURL?: string;
865
+ }
862
866
  declare class OpenAIWhisperProvider implements STTProvider {
863
867
  private client;
864
- constructor(apiKey?: string);
868
+ constructor(config?: string | OpenAIWhisperConfig);
865
869
  transcribe(audio: Buffer | string, config?: STTConfig): Promise<STTResult>;
866
870
  supportsStreaming(): boolean;
867
871
  getSupportedLanguages(): string[];
@@ -881,9 +885,17 @@ declare class LocalWhisperProvider implements STTProvider {
881
885
  getInstallInstructions(): string;
882
886
  }
883
887
 
888
+ declare class LemonFoxSTTProvider extends OpenAIWhisperProvider {
889
+ constructor(apiKey?: string);
890
+ }
891
+
892
+ interface OpenAITTSConfig {
893
+ apiKey?: string;
894
+ baseURL?: string;
895
+ }
884
896
  declare class OpenAITTSProvider implements TTSProvider {
885
897
  private client;
886
- constructor(apiKey?: string);
898
+ constructor(config?: string | OpenAITTSConfig);
887
899
  synthesize(text: string, config?: TTSConfig): Promise<TTSResult>;
888
900
  synthesizeStream(text: string, config?: TTSConfig): AsyncIterable<Buffer>;
889
901
  supportsStreaming(): boolean;
@@ -939,6 +951,18 @@ declare class PiperTTSProvider implements TTSProvider {
939
951
  }>>;
940
952
  }
941
953
 
954
+ declare class LemonFoxTTSProvider extends OpenAITTSProvider {
955
+ constructor(apiKey?: string);
956
+ getVoices(): Promise<Array<{
957
+ id: string;
958
+ name: string;
959
+ language?: string;
960
+ gender?: 'male' | 'female' | 'neutral';
961
+ }>>;
962
+ getModels(): string[];
963
+ getFormats(): AudioFormat[];
964
+ }
965
+
942
966
  interface TenantManagerConfig {
943
967
  storage: TenantStorage;
944
968
  defaultSettings?: Tenant['settings'];
@@ -1015,4 +1039,4 @@ declare class MemoryTenantStorage implements TenantStorage {
1015
1039
  clear(): void;
1016
1040
  }
1017
1041
 
1018
- export { type ACPAddress, type ACPCart, type ACPCartItem, type ACPCheckoutSession, ACPClient, type ACPConfig, type ACPCustomer, type ACPDelegatedPaymentConfig, type ACPOrder, type ACPPaginationMeta, type ACPPaymentIntent, type ACPPaymentMethod, type ACPProduct, type ACPProductSearchQuery, type ACPProductSearchResult, type ACPProductVariant, type ACPResponse, type ACPWebhookEvent, Agent, AnthropicProvider, BufferMemory, Cache, ContentFormatter, ConversationManager, ConversationSchema, ConversationSchemaBuilder, type ConversationSchemaConfig, type ConversationState, type ConversationStep, type ConversationTurn, ElevenLabsTTSProvider, GeminiProvider, LMStudioProvider, LRUCache, LocalAIProvider, LocalWhisperProvider, type LogLevel, Logger, type LoggerConfig, type MCPCallToolRequest, type MCPCallToolResponse, MCPClient, type MCPListToolsRequest, type MCPListToolsResponse, type MCPMessage, type MCPPrompt, type MCPReadResourceRequest, type MCPReadResourceResponse, MCPRegistry, type MCPResource, type MCPServerCapabilities, type MCPServerConfig, type MCPServerInfo, type MCPTool, type MCPTransport, MemoryTenantStorage, MetricsCollector, OllamaProvider, OpenAICompatibleProvider, OpenAIProvider, OpenAITTSProvider, OpenAIWhisperProvider, ParallelWorkflow, PiperTTSProvider, RateLimiter, RedisMemory, SSETransport, SequentialWorkflow, SlidingWindowRateLimiter, type Span, StdioTransport, SummaryMemory, SupervisorWorkflow, TenantBufferMemory, TenantManager, type TenantManagerConfig, TextGenerationWebUIProvider, ToolRegistry, Tracer, VLLMProvider, VoiceAgent, Workflow, WorkflowFactory, calculatorTool, createACPTools, defaultLogger, figmaGetCommentsTool, figmaGetFileTool, figmaGetImagesTool, figmaGetNodesTool, figmaPostCommentTool, fileListTool, fileReadTool, fileWriteTool, globalMetrics, globalTracer, httpRequestTool, mcpToolToAgenticTool, n8nExecuteWorkflowTool, n8nGetExecutionTool, n8nGetWorkflowTool, n8nListWorkflowsTool, n8nTriggerWebhookTool, stringTransformTool, textSummaryTool };
1042
+ export { type ACPAddress, type ACPCart, type ACPCartItem, type ACPCheckoutSession, ACPClient, type ACPConfig, type ACPCustomer, type ACPDelegatedPaymentConfig, type ACPOrder, type ACPPaginationMeta, type ACPPaymentIntent, type ACPPaymentMethod, type ACPProduct, type ACPProductSearchQuery, type ACPProductSearchResult, type ACPProductVariant, type ACPResponse, type ACPWebhookEvent, Agent, AnthropicProvider, BufferMemory, Cache, ContentFormatter, ConversationManager, ConversationSchema, ConversationSchemaBuilder, type ConversationSchemaConfig, type ConversationState, type ConversationStep, type ConversationTurn, ElevenLabsTTSProvider, GeminiProvider, LMStudioProvider, LRUCache, LemonFoxSTTProvider, LemonFoxTTSProvider, LocalAIProvider, LocalWhisperProvider, type LogLevel, Logger, type LoggerConfig, type MCPCallToolRequest, type MCPCallToolResponse, MCPClient, type MCPListToolsRequest, type MCPListToolsResponse, type MCPMessage, type MCPPrompt, type MCPReadResourceRequest, type MCPReadResourceResponse, MCPRegistry, type MCPResource, type MCPServerCapabilities, type MCPServerConfig, type MCPServerInfo, type MCPTool, type MCPTransport, MemoryTenantStorage, MetricsCollector, OllamaProvider, OpenAICompatibleProvider, OpenAIProvider, type OpenAITTSConfig, OpenAITTSProvider, type OpenAIWhisperConfig, OpenAIWhisperProvider, ParallelWorkflow, PiperTTSProvider, RateLimiter, RedisMemory, SSETransport, SequentialWorkflow, SlidingWindowRateLimiter, type Span, StdioTransport, SummaryMemory, SupervisorWorkflow, TenantBufferMemory, TenantManager, type TenantManagerConfig, TextGenerationWebUIProvider, ToolRegistry, Tracer, VLLMProvider, VoiceAgent, Workflow, WorkflowFactory, calculatorTool, createACPTools, defaultLogger, figmaGetCommentsTool, figmaGetFileTool, figmaGetImagesTool, figmaGetNodesTool, figmaPostCommentTool, fileListTool, fileReadTool, fileWriteTool, globalMetrics, globalTracer, httpRequestTool, mcpToolToAgenticTool, n8nExecuteWorkflowTool, n8nGetExecutionTool, n8nGetWorkflowTool, n8nListWorkflowsTool, n8nTriggerWebhookTool, stringTransformTool, textSummaryTool };
package/dist/index.js CHANGED
@@ -45,6 +45,8 @@ __export(index_exports, {
45
45
  GeminiProvider: () => GeminiProvider,
46
46
  LMStudioProvider: () => LMStudioProvider,
47
47
  LRUCache: () => LRUCache,
48
+ LemonFoxSTTProvider: () => LemonFoxSTTProvider,
49
+ LemonFoxTTSProvider: () => LemonFoxTTSProvider,
48
50
  LocalAIProvider: () => LocalAIProvider,
49
51
  LocalWhisperProvider: () => LocalWhisperProvider,
50
52
  Logger: () => Logger,
@@ -5123,9 +5125,15 @@ var import_fs3 = require("fs");
5123
5125
  var import_openai3 = __toESM(require("openai"));
5124
5126
  var OpenAIWhisperProvider = class {
5125
5127
  client;
5126
- constructor(apiKey) {
5128
+ /**
5129
+ * Create an OpenAI Whisper provider
5130
+ * @param config - Configuration object or API key string (for backward compatibility)
5131
+ */
5132
+ constructor(config) {
5133
+ const resolvedConfig = typeof config === "string" ? { apiKey: config } : config || {};
5127
5134
  this.client = new import_openai3.default({
5128
- apiKey: apiKey || process.env.OPENAI_API_KEY
5135
+ apiKey: resolvedConfig.apiKey || process.env.OPENAI_API_KEY,
5136
+ baseURL: resolvedConfig.baseURL
5129
5137
  });
5130
5138
  }
5131
5139
  /**
@@ -5135,7 +5143,7 @@ var OpenAIWhisperProvider = class {
5135
5143
  try {
5136
5144
  let audioFile;
5137
5145
  if (Buffer.isBuffer(audio)) {
5138
- audioFile = new File([audio], "audio.mp3", { type: "audio/mpeg" });
5146
+ audioFile = await (0, import_openai3.toFile)(audio, "audio.mp3", { type: "audio/mpeg" });
5139
5147
  } else if (typeof audio === "string") {
5140
5148
  audioFile = (0, import_fs3.createReadStream)(audio);
5141
5149
  } else {
@@ -5403,13 +5411,34 @@ Then configure the provider with the correct path.
5403
5411
  }
5404
5412
  };
5405
5413
 
5414
+ // src/voice/stt/lemonfox-stt.ts
5415
+ var LEMONFOX_BASE_URL = "https://api.lemonfox.ai/v1";
5416
+ var LemonFoxSTTProvider = class extends OpenAIWhisperProvider {
5417
+ /**
5418
+ * Create a LemonFox STT provider
5419
+ * @param apiKey - LemonFox API key (defaults to LEMONFOX_API_KEY env var)
5420
+ */
5421
+ constructor(apiKey) {
5422
+ super({
5423
+ apiKey: apiKey || process.env.LEMONFOX_API_KEY,
5424
+ baseURL: LEMONFOX_BASE_URL
5425
+ });
5426
+ }
5427
+ };
5428
+
5406
5429
  // src/voice/tts/openai-tts.ts
5407
5430
  var import_openai4 = __toESM(require("openai"));
5408
5431
  var OpenAITTSProvider = class {
5409
5432
  client;
5410
- constructor(apiKey) {
5433
+ /**
5434
+ * Create an OpenAI TTS provider
5435
+ * @param config - Configuration object or API key string (for backward compatibility)
5436
+ */
5437
+ constructor(config) {
5438
+ const resolvedConfig = typeof config === "string" ? { apiKey: config } : config || {};
5411
5439
  this.client = new import_openai4.default({
5412
- apiKey: apiKey || process.env.OPENAI_API_KEY
5440
+ apiKey: resolvedConfig.apiKey || process.env.OPENAI_API_KEY,
5441
+ baseURL: resolvedConfig.baseURL
5413
5442
  });
5414
5443
  }
5415
5444
  /**
@@ -5790,6 +5819,53 @@ Example:
5790
5819
  }
5791
5820
  };
5792
5821
 
5822
+ // src/voice/tts/lemonfox-tts.ts
5823
+ var LEMONFOX_BASE_URL2 = "https://api.lemonfox.ai/v1";
5824
+ var LemonFoxTTSProvider = class extends OpenAITTSProvider {
5825
+ /**
5826
+ * Create a LemonFox TTS provider
5827
+ * @param apiKey - LemonFox API key (defaults to LEMONFOX_API_KEY env var)
5828
+ */
5829
+ constructor(apiKey) {
5830
+ super({
5831
+ apiKey: apiKey || process.env.LEMONFOX_API_KEY,
5832
+ baseURL: LEMONFOX_BASE_URL2
5833
+ });
5834
+ }
5835
+ /**
5836
+ * Get available LemonFox voices
5837
+ *
5838
+ * LemonFox offers 50+ voices across 8 languages.
5839
+ * This returns a sample of common voices; the full list is available at:
5840
+ * https://lemonfox.ai/docs
5841
+ */
5842
+ getVoices() {
5843
+ return Promise.resolve([
5844
+ // OpenAI-compatible voices
5845
+ { id: "alloy", name: "Alloy", gender: "neutral" },
5846
+ { id: "echo", name: "Echo", gender: "male" },
5847
+ { id: "fable", name: "Fable", gender: "neutral" },
5848
+ { id: "onyx", name: "Onyx", gender: "male" },
5849
+ { id: "nova", name: "Nova", gender: "female" },
5850
+ { id: "shimmer", name: "Shimmer", gender: "female" },
5851
+ // LemonFox-specific voices (sample)
5852
+ { id: "sarah", name: "Sarah", gender: "female" }
5853
+ ]);
5854
+ }
5855
+ /**
5856
+ * Get available models
5857
+ */
5858
+ getModels() {
5859
+ return ["tts-1"];
5860
+ }
5861
+ /**
5862
+ * Get supported formats
5863
+ */
5864
+ getFormats() {
5865
+ return ["mp3", "opus", "aac", "flac", "wav", "pcm"];
5866
+ }
5867
+ };
5868
+
5793
5869
  // src/tenant/tenant-manager.ts
5794
5870
  var import_crypto2 = require("crypto");
5795
5871
 
@@ -6134,6 +6210,8 @@ var MemoryTenantStorage = class {
6134
6210
  GeminiProvider,
6135
6211
  LMStudioProvider,
6136
6212
  LRUCache,
6213
+ LemonFoxSTTProvider,
6214
+ LemonFoxTTSProvider,
6137
6215
  LocalAIProvider,
6138
6216
  LocalWhisperProvider,
6139
6217
  Logger,
package/dist/index.mjs CHANGED
@@ -33,6 +33,8 @@ __export(index_exports, {
33
33
  GeminiProvider: () => GeminiProvider,
34
34
  LMStudioProvider: () => LMStudioProvider,
35
35
  LRUCache: () => LRUCache,
36
+ LemonFoxSTTProvider: () => LemonFoxSTTProvider,
37
+ LemonFoxTTSProvider: () => LemonFoxTTSProvider,
36
38
  LocalAIProvider: () => LocalAIProvider,
37
39
  LocalWhisperProvider: () => LocalWhisperProvider,
38
40
  Logger: () => Logger,
@@ -5121,12 +5123,18 @@ var VoiceAgent = class {
5121
5123
 
5122
5124
  // src/voice/stt/openai-whisper.ts
5123
5125
  import { createReadStream } from "fs";
5124
- import OpenAI3 from "openai";
5126
+ import OpenAI3, { toFile } from "openai";
5125
5127
  var OpenAIWhisperProvider = class {
5126
5128
  client;
5127
- constructor(apiKey) {
5129
+ /**
5130
+ * Create an OpenAI Whisper provider
5131
+ * @param config - Configuration object or API key string (for backward compatibility)
5132
+ */
5133
+ constructor(config) {
5134
+ const resolvedConfig = typeof config === "string" ? { apiKey: config } : config || {};
5128
5135
  this.client = new OpenAI3({
5129
- apiKey: apiKey || process.env.OPENAI_API_KEY
5136
+ apiKey: resolvedConfig.apiKey || process.env.OPENAI_API_KEY,
5137
+ baseURL: resolvedConfig.baseURL
5130
5138
  });
5131
5139
  }
5132
5140
  /**
@@ -5136,7 +5144,7 @@ var OpenAIWhisperProvider = class {
5136
5144
  try {
5137
5145
  let audioFile;
5138
5146
  if (Buffer.isBuffer(audio)) {
5139
- audioFile = new File([audio], "audio.mp3", { type: "audio/mpeg" });
5147
+ audioFile = await toFile(audio, "audio.mp3", { type: "audio/mpeg" });
5140
5148
  } else if (typeof audio === "string") {
5141
5149
  audioFile = createReadStream(audio);
5142
5150
  } else {
@@ -5404,13 +5412,34 @@ Then configure the provider with the correct path.
5404
5412
  }
5405
5413
  };
5406
5414
 
5415
+ // src/voice/stt/lemonfox-stt.ts
5416
+ var LEMONFOX_BASE_URL = "https://api.lemonfox.ai/v1";
5417
+ var LemonFoxSTTProvider = class extends OpenAIWhisperProvider {
5418
+ /**
5419
+ * Create a LemonFox STT provider
5420
+ * @param apiKey - LemonFox API key (defaults to LEMONFOX_API_KEY env var)
5421
+ */
5422
+ constructor(apiKey) {
5423
+ super({
5424
+ apiKey: apiKey || process.env.LEMONFOX_API_KEY,
5425
+ baseURL: LEMONFOX_BASE_URL
5426
+ });
5427
+ }
5428
+ };
5429
+
5407
5430
  // src/voice/tts/openai-tts.ts
5408
5431
  import OpenAI4 from "openai";
5409
5432
  var OpenAITTSProvider = class {
5410
5433
  client;
5411
- constructor(apiKey) {
5434
+ /**
5435
+ * Create an OpenAI TTS provider
5436
+ * @param config - Configuration object or API key string (for backward compatibility)
5437
+ */
5438
+ constructor(config) {
5439
+ const resolvedConfig = typeof config === "string" ? { apiKey: config } : config || {};
5412
5440
  this.client = new OpenAI4({
5413
- apiKey: apiKey || process.env.OPENAI_API_KEY
5441
+ apiKey: resolvedConfig.apiKey || process.env.OPENAI_API_KEY,
5442
+ baseURL: resolvedConfig.baseURL
5414
5443
  });
5415
5444
  }
5416
5445
  /**
@@ -5791,6 +5820,53 @@ Example:
5791
5820
  }
5792
5821
  };
5793
5822
 
5823
+ // src/voice/tts/lemonfox-tts.ts
5824
+ var LEMONFOX_BASE_URL2 = "https://api.lemonfox.ai/v1";
5825
+ var LemonFoxTTSProvider = class extends OpenAITTSProvider {
5826
+ /**
5827
+ * Create a LemonFox TTS provider
5828
+ * @param apiKey - LemonFox API key (defaults to LEMONFOX_API_KEY env var)
5829
+ */
5830
+ constructor(apiKey) {
5831
+ super({
5832
+ apiKey: apiKey || process.env.LEMONFOX_API_KEY,
5833
+ baseURL: LEMONFOX_BASE_URL2
5834
+ });
5835
+ }
5836
+ /**
5837
+ * Get available LemonFox voices
5838
+ *
5839
+ * LemonFox offers 50+ voices across 8 languages.
5840
+ * This returns a sample of common voices; the full list is available at:
5841
+ * https://lemonfox.ai/docs
5842
+ */
5843
+ getVoices() {
5844
+ return Promise.resolve([
5845
+ // OpenAI-compatible voices
5846
+ { id: "alloy", name: "Alloy", gender: "neutral" },
5847
+ { id: "echo", name: "Echo", gender: "male" },
5848
+ { id: "fable", name: "Fable", gender: "neutral" },
5849
+ { id: "onyx", name: "Onyx", gender: "male" },
5850
+ { id: "nova", name: "Nova", gender: "female" },
5851
+ { id: "shimmer", name: "Shimmer", gender: "female" },
5852
+ // LemonFox-specific voices (sample)
5853
+ { id: "sarah", name: "Sarah", gender: "female" }
5854
+ ]);
5855
+ }
5856
+ /**
5857
+ * Get available models
5858
+ */
5859
+ getModels() {
5860
+ return ["tts-1"];
5861
+ }
5862
+ /**
5863
+ * Get supported formats
5864
+ */
5865
+ getFormats() {
5866
+ return ["mp3", "opus", "aac", "flac", "wav", "pcm"];
5867
+ }
5868
+ };
5869
+
5794
5870
  // src/tenant/tenant-manager.ts
5795
5871
  import { randomBytes, createHash } from "crypto";
5796
5872
 
@@ -6143,6 +6219,8 @@ export {
6143
6219
  GeminiProvider,
6144
6220
  LMStudioProvider,
6145
6221
  LRUCache,
6222
+ LemonFoxSTTProvider,
6223
+ LemonFoxTTSProvider,
6146
6224
  LocalAIProvider,
6147
6225
  LocalWhisperProvider,
6148
6226
  Logger,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lov3kaizen/agentsea-core",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "AgentSea - Unite and orchestrate AI agents. A production-ready ADK for building agentic AI applications with multi-provider support.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "winston": "^3.11.0",
25
25
  "ioredis": "^5.3.2",
26
26
  "marked": "^12.0.0",
27
- "@lov3kaizen/agentsea-types": "0.3.0"
27
+ "@lov3kaizen/agentsea-types": "0.3.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/node": "^20.11.0",