@lov3kaizen/agentsea-core 0.2.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 +29 -333
- package/dist/index.d.ts +29 -333
- package/dist/index.js +134 -16
- package/dist/index.mjs +244 -16
- package/package.json +3 -2
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,120 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
+
|
|
19
|
+
// src/index.ts
|
|
20
|
+
var index_exports = {};
|
|
21
|
+
__export(index_exports, {
|
|
22
|
+
ACPClient: () => ACPClient,
|
|
23
|
+
Agent: () => Agent,
|
|
24
|
+
AnthropicProvider: () => AnthropicProvider,
|
|
25
|
+
AudioFormat: () => AudioFormat,
|
|
26
|
+
BufferMemory: () => BufferMemory,
|
|
27
|
+
Cache: () => Cache,
|
|
28
|
+
ContentFormatter: () => ContentFormatter,
|
|
29
|
+
ConversationManager: () => ConversationManager,
|
|
30
|
+
ConversationSchema: () => ConversationSchema,
|
|
31
|
+
ConversationSchemaBuilder: () => ConversationSchemaBuilder,
|
|
32
|
+
ElevenLabsTTSProvider: () => ElevenLabsTTSProvider,
|
|
33
|
+
GeminiProvider: () => GeminiProvider,
|
|
34
|
+
LMStudioProvider: () => LMStudioProvider,
|
|
35
|
+
LRUCache: () => LRUCache,
|
|
36
|
+
LemonFoxSTTProvider: () => LemonFoxSTTProvider,
|
|
37
|
+
LemonFoxTTSProvider: () => LemonFoxTTSProvider,
|
|
38
|
+
LocalAIProvider: () => LocalAIProvider,
|
|
39
|
+
LocalWhisperProvider: () => LocalWhisperProvider,
|
|
40
|
+
Logger: () => Logger,
|
|
41
|
+
MCPClient: () => MCPClient,
|
|
42
|
+
MCPRegistry: () => MCPRegistry,
|
|
43
|
+
MemoryTenantStorage: () => MemoryTenantStorage,
|
|
44
|
+
MetricsCollector: () => MetricsCollector,
|
|
45
|
+
OllamaProvider: () => OllamaProvider,
|
|
46
|
+
OpenAICompatibleProvider: () => OpenAICompatibleProvider,
|
|
47
|
+
OpenAIProvider: () => OpenAIProvider,
|
|
48
|
+
OpenAITTSProvider: () => OpenAITTSProvider,
|
|
49
|
+
OpenAIWhisperProvider: () => OpenAIWhisperProvider,
|
|
50
|
+
ParallelWorkflow: () => ParallelWorkflow,
|
|
51
|
+
PiperTTSProvider: () => PiperTTSProvider,
|
|
52
|
+
RateLimiter: () => RateLimiter,
|
|
53
|
+
RedisMemory: () => RedisMemory,
|
|
54
|
+
SSETransport: () => SSETransport,
|
|
55
|
+
STTConfig: () => STTConfig,
|
|
56
|
+
STTProvider: () => STTProvider,
|
|
57
|
+
STTResult: () => STTResult,
|
|
58
|
+
SequentialWorkflow: () => SequentialWorkflow,
|
|
59
|
+
SlidingWindowRateLimiter: () => SlidingWindowRateLimiter,
|
|
60
|
+
StdioTransport: () => StdioTransport,
|
|
61
|
+
SummaryMemory: () => SummaryMemory,
|
|
62
|
+
SupervisorWorkflow: () => SupervisorWorkflow,
|
|
63
|
+
TTSConfig: () => TTSConfig,
|
|
64
|
+
TTSProvider: () => TTSProvider,
|
|
65
|
+
TTSResult: () => TTSResult,
|
|
66
|
+
Tenant: () => Tenant,
|
|
67
|
+
TenantApiKey: () => TenantApiKey,
|
|
68
|
+
TenantBufferMemory: () => TenantBufferMemory,
|
|
69
|
+
TenantContext: () => TenantContext,
|
|
70
|
+
TenantManager: () => TenantManager,
|
|
71
|
+
TenantQuota: () => TenantQuota,
|
|
72
|
+
TenantResolver: () => TenantResolver,
|
|
73
|
+
TenantSettings: () => TenantSettings,
|
|
74
|
+
TenantStatus: () => TenantStatus,
|
|
75
|
+
TenantStorage: () => TenantStorage,
|
|
76
|
+
TextGenerationWebUIProvider: () => TextGenerationWebUIProvider,
|
|
77
|
+
ToolRegistry: () => ToolRegistry,
|
|
78
|
+
Tracer: () => Tracer,
|
|
79
|
+
VLLMProvider: () => VLLMProvider,
|
|
80
|
+
VoiceAgent: () => VoiceAgent,
|
|
81
|
+
VoiceAgentConfig: () => VoiceAgentConfig,
|
|
82
|
+
VoiceMessage: () => VoiceMessage,
|
|
83
|
+
VoiceType: () => VoiceType,
|
|
84
|
+
Workflow: () => Workflow,
|
|
85
|
+
WorkflowFactory: () => WorkflowFactory,
|
|
86
|
+
calculatorTool: () => calculatorTool,
|
|
87
|
+
createACPTools: () => createACPTools,
|
|
88
|
+
defaultLogger: () => defaultLogger,
|
|
89
|
+
figmaGetCommentsTool: () => figmaGetCommentsTool,
|
|
90
|
+
figmaGetFileTool: () => figmaGetFileTool,
|
|
91
|
+
figmaGetImagesTool: () => figmaGetImagesTool,
|
|
92
|
+
figmaGetNodesTool: () => figmaGetNodesTool,
|
|
93
|
+
figmaPostCommentTool: () => figmaPostCommentTool,
|
|
94
|
+
fileListTool: () => fileListTool,
|
|
95
|
+
fileReadTool: () => fileReadTool,
|
|
96
|
+
fileWriteTool: () => fileWriteTool,
|
|
97
|
+
globalMetrics: () => globalMetrics,
|
|
98
|
+
globalTracer: () => globalTracer,
|
|
99
|
+
httpRequestTool: () => httpRequestTool,
|
|
100
|
+
mcpToolToAgenticTool: () => mcpToolToAgenticTool,
|
|
101
|
+
n8nExecuteWorkflowTool: () => n8nExecuteWorkflowTool,
|
|
102
|
+
n8nGetExecutionTool: () => n8nGetExecutionTool,
|
|
103
|
+
n8nGetWorkflowTool: () => n8nGetWorkflowTool,
|
|
104
|
+
n8nListWorkflowsTool: () => n8nListWorkflowsTool,
|
|
105
|
+
n8nTriggerWebhookTool: () => n8nTriggerWebhookTool,
|
|
106
|
+
stringTransformTool: () => stringTransformTool,
|
|
107
|
+
textSummaryTool: () => textSummaryTool
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
// src/types/index.ts
|
|
111
|
+
var types_exports = {};
|
|
112
|
+
__reExport(types_exports, agentsea_types_star);
|
|
113
|
+
import * as agentsea_types_star from "@lov3kaizen/agentsea-types";
|
|
114
|
+
|
|
115
|
+
// src/index.ts
|
|
116
|
+
__reExport(index_exports, types_exports);
|
|
117
|
+
|
|
1
118
|
// src/formatters/content-formatter.ts
|
|
2
119
|
import { marked } from "marked";
|
|
3
120
|
var ContentFormatter = class {
|
|
@@ -4787,6 +4904,20 @@ Respond naturally while ensuring you gather the required information.`;
|
|
|
4787
4904
|
}
|
|
4788
4905
|
};
|
|
4789
4906
|
|
|
4907
|
+
// src/types/voice.ts
|
|
4908
|
+
import {
|
|
4909
|
+
AudioFormat,
|
|
4910
|
+
VoiceType,
|
|
4911
|
+
STTConfig,
|
|
4912
|
+
TTSConfig,
|
|
4913
|
+
STTResult,
|
|
4914
|
+
TTSResult,
|
|
4915
|
+
STTProvider,
|
|
4916
|
+
TTSProvider,
|
|
4917
|
+
VoiceMessage,
|
|
4918
|
+
VoiceAgentConfig
|
|
4919
|
+
} from "@lov3kaizen/agentsea-types";
|
|
4920
|
+
|
|
4790
4921
|
// src/voice/voice-agent.ts
|
|
4791
4922
|
import { writeFileSync } from "fs";
|
|
4792
4923
|
import { join as join2 } from "path";
|
|
@@ -4992,12 +5123,18 @@ var VoiceAgent = class {
|
|
|
4992
5123
|
|
|
4993
5124
|
// src/voice/stt/openai-whisper.ts
|
|
4994
5125
|
import { createReadStream } from "fs";
|
|
4995
|
-
import OpenAI3 from "openai";
|
|
5126
|
+
import OpenAI3, { toFile } from "openai";
|
|
4996
5127
|
var OpenAIWhisperProvider = class {
|
|
4997
5128
|
client;
|
|
4998
|
-
|
|
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 || {};
|
|
4999
5135
|
this.client = new OpenAI3({
|
|
5000
|
-
apiKey: apiKey || process.env.OPENAI_API_KEY
|
|
5136
|
+
apiKey: resolvedConfig.apiKey || process.env.OPENAI_API_KEY,
|
|
5137
|
+
baseURL: resolvedConfig.baseURL
|
|
5001
5138
|
});
|
|
5002
5139
|
}
|
|
5003
5140
|
/**
|
|
@@ -5007,7 +5144,7 @@ var OpenAIWhisperProvider = class {
|
|
|
5007
5144
|
try {
|
|
5008
5145
|
let audioFile;
|
|
5009
5146
|
if (Buffer.isBuffer(audio)) {
|
|
5010
|
-
audioFile =
|
|
5147
|
+
audioFile = await toFile(audio, "audio.mp3", { type: "audio/mpeg" });
|
|
5011
5148
|
} else if (typeof audio === "string") {
|
|
5012
5149
|
audioFile = createReadStream(audio);
|
|
5013
5150
|
} else {
|
|
@@ -5275,13 +5412,34 @@ Then configure the provider with the correct path.
|
|
|
5275
5412
|
}
|
|
5276
5413
|
};
|
|
5277
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
|
+
|
|
5278
5430
|
// src/voice/tts/openai-tts.ts
|
|
5279
5431
|
import OpenAI4 from "openai";
|
|
5280
5432
|
var OpenAITTSProvider = class {
|
|
5281
5433
|
client;
|
|
5282
|
-
|
|
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 || {};
|
|
5283
5440
|
this.client = new OpenAI4({
|
|
5284
|
-
apiKey: apiKey || process.env.OPENAI_API_KEY
|
|
5441
|
+
apiKey: resolvedConfig.apiKey || process.env.OPENAI_API_KEY,
|
|
5442
|
+
baseURL: resolvedConfig.baseURL
|
|
5285
5443
|
});
|
|
5286
5444
|
}
|
|
5287
5445
|
/**
|
|
@@ -5662,16 +5820,67 @@ Example:
|
|
|
5662
5820
|
}
|
|
5663
5821
|
};
|
|
5664
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
|
+
|
|
5665
5870
|
// src/tenant/tenant-manager.ts
|
|
5666
5871
|
import { randomBytes, createHash } from "crypto";
|
|
5667
5872
|
|
|
5668
5873
|
// src/types/tenant.ts
|
|
5669
|
-
|
|
5670
|
-
|
|
5671
|
-
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
|
|
5874
|
+
import {
|
|
5875
|
+
Tenant,
|
|
5876
|
+
TenantStatus,
|
|
5877
|
+
TenantSettings,
|
|
5878
|
+
TenantContext,
|
|
5879
|
+
TenantApiKey,
|
|
5880
|
+
TenantQuota,
|
|
5881
|
+
TenantStorage,
|
|
5882
|
+
TenantResolver
|
|
5883
|
+
} from "@lov3kaizen/agentsea-types";
|
|
5675
5884
|
|
|
5676
5885
|
// src/tenant/tenant-manager.ts
|
|
5677
5886
|
var TenantManager = class {
|
|
@@ -5700,7 +5909,7 @@ var TenantManager = class {
|
|
|
5700
5909
|
slug: data.slug,
|
|
5701
5910
|
metadata: data.metadata,
|
|
5702
5911
|
settings: { ...this.defaultSettings, ...data.settings },
|
|
5703
|
-
status:
|
|
5912
|
+
status: TenantStatus.ACTIVE
|
|
5704
5913
|
});
|
|
5705
5914
|
return tenant;
|
|
5706
5915
|
}
|
|
@@ -5730,13 +5939,13 @@ var TenantManager = class {
|
|
|
5730
5939
|
* Suspend tenant
|
|
5731
5940
|
*/
|
|
5732
5941
|
async suspendTenant(tenantId) {
|
|
5733
|
-
return this.updateTenant(tenantId, { status:
|
|
5942
|
+
return this.updateTenant(tenantId, { status: TenantStatus.SUSPENDED });
|
|
5734
5943
|
}
|
|
5735
5944
|
/**
|
|
5736
5945
|
* Activate tenant
|
|
5737
5946
|
*/
|
|
5738
5947
|
async activateTenant(tenantId) {
|
|
5739
|
-
return this.updateTenant(tenantId, { status:
|
|
5948
|
+
return this.updateTenant(tenantId, { status: TenantStatus.ACTIVE });
|
|
5740
5949
|
}
|
|
5741
5950
|
/**
|
|
5742
5951
|
* Delete tenant and all associated data
|
|
@@ -5786,7 +5995,7 @@ var TenantManager = class {
|
|
|
5786
5995
|
return null;
|
|
5787
5996
|
}
|
|
5788
5997
|
const tenant = await this.storage.getTenant(apiKey.tenantId);
|
|
5789
|
-
if (!tenant || tenant.status !==
|
|
5998
|
+
if (!tenant || tenant.status !== TenantStatus.ACTIVE) {
|
|
5790
5999
|
return null;
|
|
5791
6000
|
}
|
|
5792
6001
|
return tenant;
|
|
@@ -5999,6 +6208,7 @@ export {
|
|
|
5999
6208
|
ACPClient,
|
|
6000
6209
|
Agent,
|
|
6001
6210
|
AnthropicProvider,
|
|
6211
|
+
AudioFormat,
|
|
6002
6212
|
BufferMemory,
|
|
6003
6213
|
Cache,
|
|
6004
6214
|
ContentFormatter,
|
|
@@ -6009,6 +6219,8 @@ export {
|
|
|
6009
6219
|
GeminiProvider,
|
|
6010
6220
|
LMStudioProvider,
|
|
6011
6221
|
LRUCache,
|
|
6222
|
+
LemonFoxSTTProvider,
|
|
6223
|
+
LemonFoxTTSProvider,
|
|
6012
6224
|
LocalAIProvider,
|
|
6013
6225
|
LocalWhisperProvider,
|
|
6014
6226
|
Logger,
|
|
@@ -6026,19 +6238,35 @@ export {
|
|
|
6026
6238
|
RateLimiter,
|
|
6027
6239
|
RedisMemory,
|
|
6028
6240
|
SSETransport,
|
|
6241
|
+
STTConfig,
|
|
6242
|
+
STTProvider,
|
|
6243
|
+
STTResult,
|
|
6029
6244
|
SequentialWorkflow,
|
|
6030
6245
|
SlidingWindowRateLimiter,
|
|
6031
6246
|
StdioTransport,
|
|
6032
6247
|
SummaryMemory,
|
|
6033
6248
|
SupervisorWorkflow,
|
|
6249
|
+
TTSConfig,
|
|
6250
|
+
TTSProvider,
|
|
6251
|
+
TTSResult,
|
|
6252
|
+
Tenant,
|
|
6253
|
+
TenantApiKey,
|
|
6034
6254
|
TenantBufferMemory,
|
|
6255
|
+
TenantContext,
|
|
6035
6256
|
TenantManager,
|
|
6257
|
+
TenantQuota,
|
|
6258
|
+
TenantResolver,
|
|
6259
|
+
TenantSettings,
|
|
6036
6260
|
TenantStatus,
|
|
6261
|
+
TenantStorage,
|
|
6037
6262
|
TextGenerationWebUIProvider,
|
|
6038
6263
|
ToolRegistry,
|
|
6039
6264
|
Tracer,
|
|
6040
6265
|
VLLMProvider,
|
|
6041
6266
|
VoiceAgent,
|
|
6267
|
+
VoiceAgentConfig,
|
|
6268
|
+
VoiceMessage,
|
|
6269
|
+
VoiceType,
|
|
6042
6270
|
Workflow,
|
|
6043
6271
|
WorkflowFactory,
|
|
6044
6272
|
calculatorTool,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lov3kaizen/agentsea-core",
|
|
3
|
-
"version": "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",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"zod-to-json-schema": "^3.22.4",
|
|
24
24
|
"winston": "^3.11.0",
|
|
25
25
|
"ioredis": "^5.3.2",
|
|
26
|
-
"marked": "^12.0.0"
|
|
26
|
+
"marked": "^12.0.0",
|
|
27
|
+
"@lov3kaizen/agentsea-types": "0.3.1"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
30
|
"@types/node": "^20.11.0",
|