@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.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
- 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 || {};
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 = new File([audio], "audio.mp3", { type: "audio/mpeg" });
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
- 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 || {};
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
- var TenantStatus = /* @__PURE__ */ ((TenantStatus2) => {
5670
- TenantStatus2["ACTIVE"] = "active";
5671
- TenantStatus2["SUSPENDED"] = "suspended";
5672
- TenantStatus2["INACTIVE"] = "inactive";
5673
- return TenantStatus2;
5674
- })(TenantStatus || {});
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: "active" /* ACTIVE */
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: "suspended" /* SUSPENDED */ });
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: "active" /* ACTIVE */ });
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 !== "active" /* ACTIVE */) {
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.2.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",