@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 +27 -3
- package/dist/index.d.ts +27 -3
- package/dist/index.js +83 -5
- package/dist/index.mjs +84 -6
- package/package.json +2 -2
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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.
|
|
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.
|
|
27
|
+
"@lov3kaizen/agentsea-types": "0.3.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^20.11.0",
|