@aituber-onair/core 0.9.1 → 0.11.0

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.
Files changed (35) hide show
  1. package/README.md +161 -2
  2. package/dist/constants/openai.d.ts +1 -0
  3. package/dist/constants/openai.js +1 -0
  4. package/dist/constants/openai.js.map +1 -1
  5. package/dist/core/AITuberOnAirCore.d.ts +3 -1
  6. package/dist/core/AITuberOnAirCore.js +5 -0
  7. package/dist/core/AITuberOnAirCore.js.map +1 -1
  8. package/dist/services/chat/providers/ChatServiceProvider.d.ts +2 -0
  9. package/dist/services/chat/providers/claude/ClaudeChatService.d.ts +33 -8
  10. package/dist/services/chat/providers/claude/ClaudeChatService.js +143 -35
  11. package/dist/services/chat/providers/claude/ClaudeChatService.js.map +1 -1
  12. package/dist/services/chat/providers/claude/ClaudeChatServiceProvider.d.ts +1 -1
  13. package/dist/services/chat/providers/claude/ClaudeChatServiceProvider.js +2 -2
  14. package/dist/services/chat/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  15. package/dist/services/chat/providers/openai/OpenAIChatService.d.ts +45 -2
  16. package/dist/services/chat/providers/openai/OpenAIChatService.js +302 -26
  17. package/dist/services/chat/providers/openai/OpenAIChatService.js.map +1 -1
  18. package/dist/services/chat/providers/openai/OpenAIChatServiceProvider.js +9 -2
  19. package/dist/services/chat/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
  20. package/dist/services/voice/engines/NoneEngine.d.ts +28 -0
  21. package/dist/services/voice/engines/NoneEngine.js +34 -0
  22. package/dist/services/voice/engines/NoneEngine.js.map +1 -0
  23. package/dist/services/voice/engines/VoiceEngineFactory.js +3 -0
  24. package/dist/services/voice/engines/VoiceEngineFactory.js.map +1 -1
  25. package/dist/types/index.d.ts +1 -0
  26. package/dist/types/index.js +2 -0
  27. package/dist/types/index.js.map +1 -1
  28. package/dist/types/mcp.d.ts +36 -0
  29. package/dist/types/mcp.js +5 -0
  30. package/dist/types/mcp.js.map +1 -0
  31. package/dist/types/voiceEngine.d.ts +1 -1
  32. package/dist/utils/index.d.ts +1 -0
  33. package/dist/utils/index.js +1 -0
  34. package/dist/utils/index.js.map +1 -1
  35. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, MODEL_GPT_4O_MINI, VISION_SUPPORTED_MODELS, } from '../../../../constants';
1
+ import { ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, ENDPOINT_OPENAI_RESPONSES_API, MODEL_GPT_4O_MINI, VISION_SUPPORTED_MODELS, } from '../../../../constants';
2
2
  /**
3
3
  * OpenAI implementation of ChatService
4
4
  */
@@ -9,12 +9,14 @@ export class OpenAIChatService {
9
9
  * @param model Name of the model to use
10
10
  * @param visionModel Name of the vision model
11
11
  */
12
- constructor(apiKey, model = MODEL_GPT_4O_MINI, visionModel = MODEL_GPT_4O_MINI, tools) {
12
+ constructor(apiKey, model = MODEL_GPT_4O_MINI, visionModel = MODEL_GPT_4O_MINI, tools, endpoint = ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, mcpServers = []) {
13
13
  /** Provider name */
14
14
  this.provider = 'openai';
15
15
  this.apiKey = apiKey;
16
16
  this.model = model;
17
17
  this.tools = tools || [];
18
+ this.endpoint = endpoint;
19
+ this.mcpServers = mcpServers;
18
20
  // check if the vision model is supported
19
21
  if (!VISION_SUPPORTED_MODELS.includes(visionModel)) {
20
22
  throw new Error(`Model ${visionModel} does not support vision capabilities.`);
@@ -101,48 +103,44 @@ export class OpenAIChatService {
101
103
  }
102
104
  }
103
105
  /**
104
- * Process chat messages with tools
106
+ * Process chat messages with tools (text only)
105
107
  * @param messages Array of messages to send
108
+ * @param stream Whether to use streaming
109
+ * @param onPartialResponse Callback for partial responses
106
110
  * @returns Tool chat completion
107
111
  */
108
112
  async chatOnce(messages, stream = true, onPartialResponse = () => { }) {
109
113
  const res = await this.callOpenAI(messages, this.model, stream);
110
- if (stream) {
111
- return this.parseStream(res, onPartialResponse);
112
- }
113
- return this.parseOneShot(await res.json());
114
+ return this.parseResponse(res, stream, onPartialResponse);
114
115
  }
115
116
  /**
116
117
  * Process vision chat messages with tools
117
118
  * @param messages Array of messages to send (including images)
119
+ * @param stream Whether to use streaming
120
+ * @param onPartialResponse Callback for partial responses
118
121
  * @returns Tool chat completion
119
122
  */
120
123
  async visionChatOnce(messages, stream = false, onPartialResponse = () => { }) {
121
124
  const res = await this.callOpenAI(messages, this.visionModel, stream);
125
+ return this.parseResponse(res, stream, onPartialResponse);
126
+ }
127
+ /**
128
+ * Parse response based on endpoint type
129
+ */
130
+ async parseResponse(res, stream, onPartialResponse) {
131
+ const isResponsesAPI = this.endpoint === ENDPOINT_OPENAI_RESPONSES_API;
132
+ if (isResponsesAPI) {
133
+ return stream
134
+ ? this.parseResponsesStream(res, onPartialResponse)
135
+ : this.parseResponsesOneShot(await res.json());
136
+ }
122
137
  return stream
123
138
  ? this.parseStream(res, onPartialResponse)
124
139
  : this.parseOneShot(await res.json());
125
140
  }
126
141
  async callOpenAI(messages, model, stream = false) {
127
- const body = {
128
- model,
129
- messages,
130
- stream,
131
- ...(this.tools.length
132
- ? {
133
- tools: this.tools.map((t) => ({
134
- type: 'function',
135
- function: {
136
- name: t.name,
137
- description: t.description,
138
- parameters: t.parameters,
139
- },
140
- })),
141
- tool_choice: 'auto',
142
- }
143
- : {}),
144
- };
145
- const res = await fetch(ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, {
142
+ const body = this.buildRequestBody(messages, model, stream);
143
+ const res = await fetch(this.endpoint, {
146
144
  method: 'POST',
147
145
  headers: {
148
146
  'Content-Type': 'application/json',
@@ -156,6 +154,126 @@ export class OpenAIChatService {
156
154
  }
157
155
  return res;
158
156
  }
157
+ /**
158
+ * Build request body based on the endpoint type
159
+ */
160
+ buildRequestBody(messages, model, stream) {
161
+ const isResponsesAPI = this.endpoint === ENDPOINT_OPENAI_RESPONSES_API;
162
+ // Validate MCP servers compatibility
163
+ this.validateMCPCompatibility();
164
+ const body = {
165
+ model,
166
+ stream,
167
+ };
168
+ // Handle messages format based on endpoint
169
+ if (isResponsesAPI && this.mcpServers.length > 0) {
170
+ body.input = this.cleanMessagesForResponsesAPI(messages);
171
+ }
172
+ else {
173
+ body.messages = messages;
174
+ }
175
+ // Add tools if available
176
+ const tools = this.buildToolsDefinition();
177
+ if (tools.length > 0) {
178
+ body.tools = tools;
179
+ // Only Chat Completions API requires tool_choice
180
+ if (!isResponsesAPI) {
181
+ body.tool_choice = 'auto';
182
+ }
183
+ }
184
+ return body;
185
+ }
186
+ /**
187
+ * Validate MCP servers compatibility with the current endpoint
188
+ */
189
+ validateMCPCompatibility() {
190
+ if (this.mcpServers.length > 0 &&
191
+ this.endpoint === ENDPOINT_OPENAI_CHAT_COMPLETIONS_API) {
192
+ throw new Error(`MCP servers are not supported with Chat Completions API. ` +
193
+ `Current endpoint: ${this.endpoint}. ` +
194
+ `Please use OpenAI Responses API endpoint: ${ENDPOINT_OPENAI_RESPONSES_API}. ` +
195
+ `MCP tools are only available in the Responses API endpoint.`);
196
+ }
197
+ }
198
+ /**
199
+ * Clean messages for Responses API (remove timestamp and other extra properties)
200
+ */
201
+ cleanMessagesForResponsesAPI(messages) {
202
+ return messages.map((msg) => {
203
+ const cleanMsg = {
204
+ role: msg.role,
205
+ };
206
+ // Handle content (text or vision)
207
+ if (typeof msg.content === 'string') {
208
+ cleanMsg.content = msg.content;
209
+ }
210
+ else if (Array.isArray(msg.content)) {
211
+ // Vision message case
212
+ cleanMsg.content = msg.content;
213
+ }
214
+ else {
215
+ cleanMsg.content = msg.content;
216
+ }
217
+ return cleanMsg;
218
+ });
219
+ }
220
+ /**
221
+ * Build tools definition based on the endpoint type
222
+ */
223
+ buildToolsDefinition() {
224
+ const isResponsesAPI = this.endpoint === ENDPOINT_OPENAI_RESPONSES_API;
225
+ const toolDefs = [];
226
+ // Add function tools
227
+ if (this.tools.length > 0) {
228
+ if (isResponsesAPI) {
229
+ // Responses API format (flattened function properties)
230
+ toolDefs.push(...this.tools.map((t) => ({
231
+ type: 'function',
232
+ name: t.name,
233
+ description: t.description,
234
+ parameters: t.parameters,
235
+ })));
236
+ }
237
+ else {
238
+ // Chat Completions API format (nested function properties)
239
+ toolDefs.push(...this.tools.map((t) => ({
240
+ type: 'function',
241
+ function: {
242
+ name: t.name,
243
+ description: t.description,
244
+ parameters: t.parameters,
245
+ },
246
+ })));
247
+ }
248
+ }
249
+ // Add MCP tools (only for Responses API)
250
+ if (this.mcpServers.length > 0 && isResponsesAPI) {
251
+ toolDefs.push(...this.buildMCPToolsDefinition());
252
+ }
253
+ return toolDefs;
254
+ }
255
+ /**
256
+ * Build MCP tools definition for Responses API
257
+ */
258
+ buildMCPToolsDefinition() {
259
+ return this.mcpServers.map((server) => {
260
+ const mcpDef = {
261
+ type: 'mcp',
262
+ server_label: server.name,
263
+ server_url: server.url,
264
+ require_approval: 'never',
265
+ };
266
+ if (server.tool_configuration?.allowed_tools) {
267
+ mcpDef.allowed_tools = server.tool_configuration.allowed_tools;
268
+ }
269
+ if (server.authorization_token) {
270
+ mcpDef.headers = {
271
+ Authorization: `Bearer ${server.authorization_token}`,
272
+ };
273
+ }
274
+ return mcpDef;
275
+ });
276
+ }
159
277
  async handleStream(res, onPartial) {
160
278
  const reader = res.body.getReader();
161
279
  const dec = new TextDecoder();
@@ -265,5 +383,163 @@ export class OpenAIChatService {
265
383
  stop_reason: choice.finish_reason === 'tool_calls' ? 'tool_use' : 'end',
266
384
  };
267
385
  }
386
+ /**
387
+ * Parse streaming response from Responses API (SSE format)
388
+ */
389
+ async parseResponsesStream(res, onPartial) {
390
+ const reader = res.body.getReader();
391
+ const dec = new TextDecoder();
392
+ const textBlocks = [];
393
+ const toolCallsMap = new Map();
394
+ let buf = '';
395
+ while (true) {
396
+ const { done, value } = await reader.read();
397
+ if (done)
398
+ break;
399
+ buf += dec.decode(value, { stream: true });
400
+ // Parse SSE format: process event: and data: combinations
401
+ let eventType = '';
402
+ let eventData = '';
403
+ const lines = buf.split('\n');
404
+ buf = lines.pop() || ''; // Keep the last incomplete line
405
+ for (let i = 0; i < lines.length; i++) {
406
+ const line = lines[i].trim();
407
+ if (line.startsWith('event:')) {
408
+ eventType = line.slice(6).trim();
409
+ }
410
+ else if (line.startsWith('data:')) {
411
+ eventData = line.slice(5).trim();
412
+ }
413
+ else if (line === '' && eventType && eventData) {
414
+ // Process event separated by empty line
415
+ try {
416
+ const json = JSON.parse(eventData);
417
+ this.handleResponsesSSEEvent(eventType, json, onPartial, textBlocks, toolCallsMap);
418
+ }
419
+ catch (e) {
420
+ console.warn('Failed to parse SSE data:', eventData);
421
+ }
422
+ eventType = '';
423
+ eventData = '';
424
+ }
425
+ }
426
+ }
427
+ // Convert tool calls to blocks
428
+ const toolBlocks = Array.from(toolCallsMap.values()).map((tool) => ({
429
+ type: 'tool_use',
430
+ id: tool.id,
431
+ name: tool.name,
432
+ input: tool.input || {},
433
+ }));
434
+ const blocks = [...textBlocks, ...toolBlocks];
435
+ return {
436
+ blocks,
437
+ stop_reason: toolBlocks.length ? 'tool_use' : 'end',
438
+ };
439
+ }
440
+ /**
441
+ * Handle specific SSE events from Responses API
442
+ */
443
+ handleResponsesSSEEvent(eventType, data, onPartial, textBlocks, toolCallsMap) {
444
+ // Helper to append text to the last text block or create a new one
445
+ const appendText = (txt) => {
446
+ if (!txt)
447
+ return;
448
+ if (textBlocks.length &&
449
+ textBlocks[textBlocks.length - 1].type === 'text') {
450
+ textBlocks[textBlocks.length - 1].text += txt;
451
+ }
452
+ else {
453
+ textBlocks.push({ type: 'text', text: txt });
454
+ }
455
+ };
456
+ switch (eventType) {
457
+ // Item addition events
458
+ case 'response.output_item.added':
459
+ if (data.item?.type === 'message' && Array.isArray(data.item.content)) {
460
+ data.item.content.forEach((c) => {
461
+ if (c.type === 'output_text' && c.text) {
462
+ onPartial(c.text);
463
+ appendText(c.text);
464
+ }
465
+ });
466
+ }
467
+ else if (data.item?.type === 'function_call') {
468
+ toolCallsMap.set(data.item.id, {
469
+ id: data.item.id,
470
+ name: data.item.name,
471
+ input: data.item.arguments ? JSON.parse(data.item.arguments) : {},
472
+ });
473
+ }
474
+ break;
475
+ // Initial content part events
476
+ case 'response.content_part.added':
477
+ if (data.part?.type === 'output_text' &&
478
+ typeof data.part.text === 'string') {
479
+ onPartial(data.part.text);
480
+ appendText(data.part.text);
481
+ }
482
+ break;
483
+ // Text delta events
484
+ case 'response.output_text.delta':
485
+ case 'response.content_part.delta': // Also handle this event type just in case
486
+ {
487
+ const deltaText = typeof data.delta === 'string'
488
+ ? data.delta
489
+ : (data.delta?.text ?? '');
490
+ if (deltaText) {
491
+ onPartial(deltaText);
492
+ appendText(deltaText);
493
+ }
494
+ }
495
+ break;
496
+ // Text completion events
497
+ case 'response.output_text.done':
498
+ case 'response.content_part.done':
499
+ if (typeof data.text === 'string' && data.text) {
500
+ appendText(data.text);
501
+ }
502
+ break;
503
+ // Response completion events
504
+ case 'response.completed':
505
+ break;
506
+ default:
507
+ // Ignore other events
508
+ break;
509
+ }
510
+ }
511
+ /**
512
+ * Parse non-streaming response from Responses API
513
+ */
514
+ parseResponsesOneShot(data) {
515
+ const blocks = [];
516
+ // Process Responses API format: data.output array
517
+ if (data.output && Array.isArray(data.output)) {
518
+ data.output.forEach((outputItem) => {
519
+ if (outputItem.type === 'message' && outputItem.content) {
520
+ outputItem.content.forEach((content) => {
521
+ if (content.type === 'output_text' && content.text) {
522
+ blocks.push({ type: 'text', text: content.text });
523
+ }
524
+ });
525
+ }
526
+ // Handle function call items
527
+ if (outputItem.type === 'function_call') {
528
+ blocks.push({
529
+ type: 'tool_use',
530
+ id: outputItem.id,
531
+ name: outputItem.name,
532
+ input: outputItem.arguments ? JSON.parse(outputItem.arguments) : {},
533
+ });
534
+ }
535
+ });
536
+ }
537
+ return {
538
+ blocks,
539
+ stop_reason: blocks.some((b) => b.type === 'tool_use')
540
+ ? 'tool_use'
541
+ : 'end',
542
+ };
543
+ }
268
544
  }
269
545
  //# sourceMappingURL=OpenAIChatService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIChatService.js","sourceRoot":"","sources":["../../../../../src/services/chat/providers/openai/OpenAIChatService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAIChatService.js","sourceRoot":"","sources":["../../../../../src/services/chat/providers/openai/OpenAIChatService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { MODEL_GPT_4O_MINI, MODEL_GPT_4O, MODEL_O3_MINI, VISION_SUPPORTED_MODELS, } from '../../../../constants';
1
+ import { ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, ENDPOINT_OPENAI_RESPONSES_API, MODEL_GPT_4O_MINI, MODEL_GPT_4O, MODEL_O3_MINI, VISION_SUPPORTED_MODELS, } from '../../../../constants';
2
2
  import { OpenAIChatService } from './OpenAIChatService';
3
3
  /**
4
4
  * OpenAI API provider implementation
@@ -17,7 +17,14 @@ export class OpenAIChatServiceProvider {
17
17
  : this.getDefaultModel());
18
18
  // tools definition
19
19
  const tools = options.tools;
20
- return new OpenAIChatService(options.apiKey, options.model || this.getDefaultModel(), visionModel, tools);
20
+ // if MCP servers are set, automatically use Responses API
21
+ const mcpServers = options.mcpServers ?? [];
22
+ const shouldUseResponsesAPI = mcpServers.length > 0;
23
+ const endpoint = options.endpoint ||
24
+ (shouldUseResponsesAPI
25
+ ? ENDPOINT_OPENAI_RESPONSES_API
26
+ : ENDPOINT_OPENAI_CHAT_COMPLETIONS_API);
27
+ return new OpenAIChatService(options.apiKey, options.model || this.getDefaultModel(), visionModel, tools, endpoint, mcpServers);
21
28
  }
22
29
  /**
23
30
  * Get the provider name
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/chat/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,OAA2B;QAC3C,gFAAgF;QAChF,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;YACnB,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnE,CAAC,CAAC,OAAO,CAAC,KAAK;gBACf,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAE9B,mBAAmB;QACnB,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"OpenAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/chat/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,OAA2B;QAC3C,gFAAgF;QAChF,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;YACnB,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnE,CAAC,CAAC,OAAO,CAAC,KAAK;gBACf,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAE9B,mBAAmB;QACnB,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,0DAA0D;QAC1D,MAAM,UAAU,GAAI,OAAe,CAAC,UAAU,IAAI,EAAE,CAAC;QACrD,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ;YAChB,CAAC,qBAAqB;gBACpB,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,oCAAoC,CAAC,CAAC;QAE5C,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,KAAK,EACL,QAAQ,EACR,UAAU,CACX,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import { VoiceActor, Talk } from '../../../types';
2
+ import { VoiceEngine } from './VoiceEngine';
3
+ /**
4
+ * None (no voice) engine
5
+ * Implementation using Null Object pattern that performs no voice processing
6
+ */
7
+ export declare class NoneEngine implements VoiceEngine {
8
+ /**
9
+ * Get voice data (performs no processing)
10
+ * @param input script
11
+ * @param speaker speaker ID
12
+ * @param apiKey API key (not used)
13
+ * @param voiceActor voice actor information (not used)
14
+ * @returns empty ArrayBuffer
15
+ */
16
+ fetchAudio(input: Talk, speaker: string, apiKey?: string, voiceActor?: VoiceActor): Promise<ArrayBuffer>;
17
+ /**
18
+ * Get test message
19
+ * @param textVoiceText custom text
20
+ * @returns test message
21
+ */
22
+ getTestMessage(textVoiceText?: string): string;
23
+ /**
24
+ * Set custom API endpoint URL (performs no processing)
25
+ * @param apiUrl custom API endpoint URL
26
+ */
27
+ setApiEndpoint?(apiUrl: string): void;
28
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * None (no voice) engine
3
+ * Implementation using Null Object pattern that performs no voice processing
4
+ */
5
+ export class NoneEngine {
6
+ /**
7
+ * Get voice data (performs no processing)
8
+ * @param input script
9
+ * @param speaker speaker ID
10
+ * @param apiKey API key (not used)
11
+ * @param voiceActor voice actor information (not used)
12
+ * @returns empty ArrayBuffer
13
+ */
14
+ async fetchAudio(input, speaker, apiKey, voiceActor) {
15
+ // Return empty ArrayBuffer since no voice is needed
16
+ return new ArrayBuffer(0);
17
+ }
18
+ /**
19
+ * Get test message
20
+ * @param textVoiceText custom text
21
+ * @returns test message
22
+ */
23
+ getTestMessage(textVoiceText) {
24
+ return textVoiceText || 'No voice mode is active';
25
+ }
26
+ /**
27
+ * Set custom API endpoint URL (performs no processing)
28
+ * @param apiUrl custom API endpoint URL
29
+ */
30
+ setApiEndpoint(apiUrl) {
31
+ // No processing needed in no voice mode
32
+ }
33
+ }
34
+ //# sourceMappingURL=NoneEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoneEngine.js","sourceRoot":"","sources":["../../../../src/services/voice/engines/NoneEngine.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,KAAW,EACX,OAAe,EACf,MAAe,EACf,UAAuB;QAEvB,oDAAoD;QACpD,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,aAAsB;QACnC,OAAO,aAAa,IAAI,yBAAyB,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,cAAc,CAAE,MAAc;QAC5B,wCAAwC;IAC1C,CAAC;CACF"}
@@ -3,6 +3,7 @@ import { VoicePeakEngine } from './VoicePeakEngine';
3
3
  import { AivisSpeechEngine } from './AivisSpeechEngine';
4
4
  import { OpenAiEngine } from './OpenAiEngine';
5
5
  import { NijiVoiceEngine } from './NijiVoiceEngine';
6
+ import { NoneEngine } from './NoneEngine';
6
7
  /**
7
8
  * Voice engine factory
8
9
  * Generate appropriate voice engine instances based on voice engine type
@@ -26,6 +27,8 @@ export class VoiceEngineFactory {
26
27
  return new OpenAiEngine();
27
28
  case 'nijivoice':
28
29
  return new NijiVoiceEngine();
30
+ case 'none':
31
+ return new NoneEngine();
29
32
  default:
30
33
  throw new Error(`Unsupported voice engine type: ${engineType}`);
31
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceEngineFactory.js","sourceRoot":"","sources":["../../../../src/services/voice/engines/VoiceEngineFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,UAA2B;QAC1C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,UAAU;gBACb,OAAO,IAAI,cAAc,EAAE,CAAC;YAC9B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B,KAAK,aAAa;gBAChB,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACjC,KAAK,QAAQ;gBACX,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B;gBACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"VoiceEngineFactory.js","sourceRoot":"","sources":["../../../../src/services/voice/engines/VoiceEngineFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,UAA2B;QAC1C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,UAAU;gBACb,OAAO,IAAI,cAAc,EAAE,CAAC;YAC9B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B,KAAK,aAAa;gBAChB,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACjC,KAAK,QAAQ;gBACX,OAAO,IAAI,YAAY,EAAE,CAAC;YAC5B,KAAK,WAAW;gBACd,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B,KAAK,MAAM;gBACT,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B;gBACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
@@ -7,6 +7,7 @@ export * from './voiceEngine';
7
7
  export * from './nijiVoice';
8
8
  export { Message, MessageWithVision, VisionBlock, ChatType, SpeakOptions, } from './chat';
9
9
  export * from './toolChat';
10
+ export * from './mcp';
10
11
  export { talkStyles, TalkStyle, Talk, emotions, EmotionType, EmotionTypeForVoicepeak, } from './voice';
11
12
  import { Screenplay as VoiceScreenplay } from './voice';
12
13
  import { Screenplay as ChatScreenplay } from './chat';
@@ -10,6 +10,8 @@ export * from './voiceEngine';
10
10
  export * from './nijiVoice';
11
11
  // Tool related type definitions
12
12
  export * from './toolChat';
13
+ // MCP related type definitions
14
+ export * from './mcp';
13
15
  // Voice related type definitions (excluding Screenplay type)
14
16
  export { talkStyles, emotions, } from './voice';
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kCAAkC;AAClC,cAAc,UAAU,CAAC;AAEzB,wCAAwC;AACxC,cAAc,eAAe,CAAC;AAE9B,qCAAqC;AACrC,cAAc,aAAa,CAAC;AAW5B,gCAAgC;AAChC,cAAc,YAAY,CAAC;AAE3B,6DAA6D;AAC7D,OAAO,EACL,UAAU,EAGV,QAAQ,GAGT,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kCAAkC;AAClC,cAAc,UAAU,CAAC;AAEzB,wCAAwC;AACxC,cAAc,eAAe,CAAC;AAE9B,qCAAqC;AACrC,cAAc,aAAa,CAAC;AAW5B,gCAAgC;AAChC,cAAc,YAAY,CAAC;AAE3B,+BAA+B;AAC/B,cAAc,OAAO,CAAC;AAEtB,6DAA6D;AAC7D,OAAO,EACL,UAAU,EAGV,QAAQ,GAGT,MAAM,SAAS,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Model Context Protocol (MCP) related types
3
+ */
4
+ /**
5
+ * MCP server configuration for MCP connector
6
+ * This is a standard configuration format that may be used by multiple providers
7
+ */
8
+ export interface MCPServerConfig {
9
+ type: 'url';
10
+ url: string;
11
+ name: string;
12
+ tool_configuration?: {
13
+ enabled?: boolean;
14
+ allowed_tools?: string[];
15
+ };
16
+ authorization_token?: string;
17
+ }
18
+ /**
19
+ * Claude-specific MCP tool use block (internal type for Claude)
20
+ */
21
+ export interface ClaudeMCPToolUseBlock {
22
+ type: 'mcp_tool_use';
23
+ id: string;
24
+ name: string;
25
+ server_name: string;
26
+ input: any;
27
+ }
28
+ /**
29
+ * Claude-specific MCP tool result block (internal type for Claude)
30
+ */
31
+ export interface ClaudeMCPToolResultBlock {
32
+ type: 'mcp_tool_result';
33
+ tool_use_id: string;
34
+ is_error: boolean;
35
+ content: any[];
36
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Model Context Protocol (MCP) related types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +1 @@
1
- export type VoiceEngineType = 'voicevox' | 'voicepeak' | 'openai' | 'nijivoice' | 'aivisSpeech';
1
+ export type VoiceEngineType = 'voicevox' | 'voicepeak' | 'openai' | 'nijivoice' | 'aivisSpeech' | 'none';
@@ -3,3 +3,4 @@
3
3
  */
4
4
  export * from './screenshot';
5
5
  export * from './screenplay';
6
+ export * from './storage';
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from './screenshot';
5
5
  export * from './screenplay';
6
+ export * from './storage';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}