@aituber-onair/core 0.9.1 → 0.10.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.
package/README.md CHANGED
@@ -19,6 +19,8 @@ It specializes in generating response text and audio from text or image inputs,
19
19
  - [Tool System](#tool-system)
20
20
  - [Function Calling Differences](#function-calling-differences)
21
21
  - [Using MCP](#using-mcp)
22
+ - [Using OpenAI Remote MCP](#using-openai-remote-mcp)
23
+ - [Using Claude MCP Connector](#using-claude-mcp-connector)
22
24
  - [Architecture](#architecture)
23
25
  - [Main Components](#main-components)
24
26
  - [Event System](#event-system)
@@ -680,6 +682,163 @@ const aituberOptions: AITuberOnAirCoreOptions = {
680
682
  const newAITuber = new AITuberOnAirCore(aituberOptions);
681
683
  ```
682
684
 
685
+ ## Using OpenAI Remote MCP
686
+
687
+ OpenAI's Responses API allows connecting to remote MCP servers. When you specify
688
+ MCP server configurations via the `mcpServers` option, **AITuberOnAirCore**
689
+ automatically switches to the Responses API endpoint for OpenAI.
690
+
691
+ ```typescript
692
+ import {
693
+ AITuberOnAirCore,
694
+ AITuberOnAirCoreOptions,
695
+ MCPServerConfig,
696
+ } from '@aituber-onair/core';
697
+
698
+ const mcpServers: MCPServerConfig[] = [
699
+ {
700
+ type: 'url',
701
+ url: 'https://mcp-server.example.com/',
702
+ name: 'example-mcp',
703
+ tool_configuration: { allowed_tools: ['example_tool'] },
704
+ authorization_token: 'YOUR_TOKEN',
705
+ },
706
+ ];
707
+
708
+ const options: AITuberOnAirCoreOptions = {
709
+ chatProvider: 'openai',
710
+ apiKey: 'your-openai-api-key',
711
+ model: 'gpt-4.1',
712
+ mcpServers, // Automatically switches to Responses API when MCP servers are configured
713
+ };
714
+
715
+ const aituber = new AITuberOnAirCore(options);
716
+ ```
717
+
718
+ **Note**: The `endpoint` configuration is OpenAI-specific and is automatically managed
719
+ based on MCP server configuration. Other providers (Claude, Gemini) use their own
720
+ fixed endpoints.
721
+
722
+ ## Using Claude MCP Connector
723
+
724
+ AITuber OnAir Core supports Claude's Model Context Protocol (MCP) connector feature, allowing you to connect to remote MCP servers directly from the Messages API without a separate MCP client.
725
+
726
+ ### Basic Usage
727
+
728
+ When using the Claude provider, you can specify MCP servers in the `mcpServers` option:
729
+
730
+ ```typescript
731
+ import { AITuberOnAirCore, AITuberOnAirCoreOptions } from '@aituber-onair/core';
732
+ import { MCPServerConfig } from '@aituber-onair/core';
733
+
734
+ // Define MCP server configuration
735
+ const mcpServers: MCPServerConfig[] = [
736
+ {
737
+ type: 'url',
738
+ url: 'https://mcp-server.example.com/sse',
739
+ name: 'example-mcp',
740
+ tool_configuration: {
741
+ enabled: true,
742
+ allowed_tools: ['example_tool_1', 'example_tool_2']
743
+ },
744
+ authorization_token: 'YOUR_TOKEN' // Optional, for OAuth-enabled servers
745
+ }
746
+ ];
747
+
748
+ // Create AITuberOnAirCore instance with MCP servers
749
+ const options: AITuberOnAirCoreOptions = {
750
+ chatProvider: 'claude', // MCP is only supported with Claude
751
+ apiKey: 'your-claude-api-key',
752
+ model: 'claude-3-haiku-20240307',
753
+ chatOptions: {
754
+ systemPrompt: 'You are an AI streamer with access to remote tools via MCP.',
755
+ },
756
+ // Traditional tools (optional, can be used alongside MCP)
757
+ tools: [
758
+ {
759
+ definition: {
760
+ name: 'local_tool',
761
+ description: 'A local tool',
762
+ parameters: {
763
+ type: 'object',
764
+ properties: {
765
+ input: { type: 'string', description: 'Input text' }
766
+ }
767
+ }
768
+ },
769
+ handler: async (input) => {
770
+ return `Local result: ${input.input}`;
771
+ }
772
+ }
773
+ ],
774
+ // MCP servers configuration
775
+ mcpServers: mcpServers,
776
+ debug: true,
777
+ };
778
+
779
+ const aituber = new AITuberOnAirCore(options);
780
+ ```
781
+
782
+ ### Multiple MCP Servers
783
+
784
+ You can connect to multiple MCP servers by including multiple configurations:
785
+
786
+ ```typescript
787
+ const mcpServers: MCPServerConfig[] = [
788
+ {
789
+ type: 'url',
790
+ url: 'https://mcp-server-1.example.com/sse',
791
+ name: 'server-1',
792
+ authorization_token: 'TOKEN_1'
793
+ },
794
+ {
795
+ type: 'url',
796
+ url: 'https://mcp-server-2.example.com/sse',
797
+ name: 'server-2',
798
+ tool_configuration: {
799
+ enabled: true,
800
+ allowed_tools: ['specific_tool_1', 'specific_tool_2']
801
+ }
802
+ }
803
+ ];
804
+ ```
805
+
806
+ ### OAuth Authentication
807
+
808
+ For MCP servers that require OAuth authentication, you can obtain an access token using the MCP inspector:
809
+
810
+ ```bash
811
+ npx @modelcontextprotocol/inspector
812
+ ```
813
+
814
+ Follow the OAuth flow in the inspector and copy the `access_token` value to use as the `authorization_token` in your configuration.
815
+
816
+ ### Event Handling
817
+
818
+ MCP tool usage is handled through the same event system as traditional tools:
819
+
820
+ ```typescript
821
+ // Listen for tool usage (includes both traditional tools and MCP tools)
822
+ aituber.on(AITuberOnAirCoreEvent.TOOL_USE, (toolBlocks) => {
823
+ console.log('Tools used:', toolBlocks);
824
+ });
825
+
826
+ aituber.on(AITuberOnAirCoreEvent.TOOL_RESULT, (resultBlocks) => {
827
+ console.log('Tool results:', resultBlocks);
828
+ });
829
+ ```
830
+
831
+ ### Limitations
832
+
833
+ - MCP connector is only available with the Claude provider
834
+ - Only HTTP-based MCP servers are supported (STDIO servers are not supported)
835
+ - Currently only tool calls are supported from the MCP specification
836
+ - Not available on Amazon Bedrock and Google Vertex
837
+
838
+ ### Coexistence with Traditional Tools
839
+
840
+ MCP servers and traditional tool definitions can be used simultaneously. The AI can access both local tools and remote MCP tools seamlessly.
841
+
683
842
  ## Architecture
684
843
 
685
844
  **AITuberOnAirCore** is designed with the following layered structure:
@@ -1,4 +1,5 @@
1
1
  export declare const ENDPOINT_OPENAI_CHAT_COMPLETIONS_API = "https://api.openai.com/v1/chat/completions";
2
+ export declare const ENDPOINT_OPENAI_RESPONSES_API = "https://api.openai.com/v1/responses";
2
3
  export declare const MODEL_GPT_4_1 = "gpt-4.1";
3
4
  export declare const MODEL_GPT_4_1_MINI = "gpt-4.1-mini";
4
5
  export declare const MODEL_GPT_4_1_NANO = "gpt-4.1-nano";
@@ -1,4 +1,5 @@
1
1
  export const ENDPOINT_OPENAI_CHAT_COMPLETIONS_API = 'https://api.openai.com/v1/chat/completions';
2
+ export const ENDPOINT_OPENAI_RESPONSES_API = 'https://api.openai.com/v1/responses';
2
3
  // gpt model
3
4
  export const MODEL_GPT_4_1 = 'gpt-4.1';
4
5
  export const MODEL_GPT_4_1_MINI = 'gpt-4.1-mini';
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/constants/openai.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oCAAoC,GAC/C,4CAA4C,CAAC;AAE/C,YAAY;AACZ,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B,aAAa;AACb,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEvD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,gFAAgF;CACjF,CAAC"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/constants/openai.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oCAAoC,GAC/C,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,6BAA6B,GACxC,qCAAqC,CAAC;AAExC,YAAY;AACZ,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B,aAAa;AACb,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEvD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,gFAAgF;CACjF,CAAC"}
@@ -2,7 +2,7 @@ import { EventEmitter } from './EventEmitter';
2
2
  import { ChatProcessorOptions } from './ChatProcessor';
3
3
  import { MemoryOptions } from './MemoryManager';
4
4
  import { VoiceServiceOptions } from '../services/voice/VoiceService';
5
- import { Message, MemoryStorage } from '../types';
5
+ import { Message, MemoryStorage, MCPServerConfig } from '../types';
6
6
  import { ToolDefinition } from '../types/toolChat';
7
7
  /**
8
8
  * Setting options for AITuberOnAirCore
@@ -31,6 +31,8 @@ export interface AITuberOnAirCoreOptions {
31
31
  definition: ToolDefinition;
32
32
  handler: (input: any) => Promise<any>;
33
33
  }[];
34
+ /** MCP servers configuration (OpenAI and Claude only) */
35
+ mcpServers?: MCPServerConfig[];
34
36
  }
35
37
  /**
36
38
  * Event types for AITuberOnAirCore
@@ -73,6 +73,11 @@ export class AITuberOnAirCore extends EventEmitter {
73
73
  ...options.providerOptions,
74
74
  tools: this.toolExecutor.listDefinitions(),
75
75
  };
76
+ // Add MCP servers for providers that support remote MCP
77
+ if ((providerName === 'claude' || providerName === 'openai') &&
78
+ options.mcpServers) {
79
+ chatServiceOptions.mcpServers = options.mcpServers;
80
+ }
76
81
  // Initialize ChatService
77
82
  this.chatService = ChatServiceFactory.createChatService(providerName, chatServiceOptions);
78
83
  // Initialize MemoryManager (optional)
@@ -1 +1 @@
1
- {"version":3,"file":"AITuberOnAirCore.js","sourceRoot":"","sources":["../../src/core/AITuberOnAirCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAMtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAoC9C;;GAEG;AACH,MAAM,CAAN,IAAY,qBAiCX;AAjCD,WAAY,qBAAqB;IAC/B,yBAAyB;IACzB,6DAAoC,CAAA;IACpC,uBAAuB;IACvB,yDAAgC,CAAA;IAChC,mCAAmC;IACnC,+DAAsC,CAAA;IACtC,mCAAmC;IACnC,iEAAwC,CAAA;IACxC,qBAAqB;IACrB,qDAA4B,CAAA;IAC5B,mBAAmB;IACnB,iDAAwB,CAAA;IACxB,qBAAqB;IACrB,wCAAe,CAAA;IACf,eAAe;IACf,6CAAoB,CAAA;IACpB,kBAAkB;IAClB,mDAA0B,CAAA;IAC1B,uBAAuB;IACvB,4DAAmC,CAAA;IACnC,2BAA2B;IAC3B,oEAA2C,CAAA;IAC3C,qBAAqB;IACrB,yDAAgC,CAAA;IAChC,qBAAqB;IACrB,yDAAgC,CAAA;IAChC,oBAAoB;IACpB,uDAA8B,CAAA;IAC9B,mBAAmB;IACnB,qDAA4B,CAAA;IAC5B,sBAAsB;IACtB,2DAAkC,CAAA;AACpC,CAAC,EAjCW,qBAAqB,KAArB,qBAAqB,QAiChC;AAED;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAQhD;;;OAGG;IACH,YAAY,OAAgC;QAC1C,KAAK,EAAE,CAAC;QARF,iBAAY,GAAY,KAAK,CAAC;QAE9B,iBAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;QAOtD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QAEpC,gDAAgD;QAChD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC;QAEtD,iBAAiB;QACjB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CACpD,CAAC;QAEF,6BAA6B;QAC7B,MAAM,kBAAkB,GAAuB;YAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,OAAO,CAAC,eAAe;YAC1B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;SAC3C,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC,iBAAiB,CACrD,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,sCAAsC;QACtC,IAAI,OAAO,CAAC,aAAa,EAAE,mBAAmB,EAAE,CAAC;YAC/C,IAAI,UAAsB,CAAC;YAE3B,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9B,UAAU,GAAG,IAAI,gBAAgB,CAC/B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAC5C,CAAC;YACJ,CAAC;iBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrC,UAAU,GAAG,IAAI,gBAAgB,CAC/B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAC5C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,IAAI,gBAAgB,CAC/B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAC5C,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,OAAO,CAAC,aAAa,EACrB,UAAU,EACV,OAAO,CAAC,aAAa,CACtB,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,IAAI,CAAC,WAAW,EAChB;YACE,GAAG,OAAO,CAAC,WAAW;YACtB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;SAChC,EACD,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9B,CAAC;QAEF,iBAAiB;QACjB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,qCAAqC;QACrC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5D,oBAAoB;YACpB,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,YAAoB,EACpB,YAAqB;QAErB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEtE,mCAAmC;YACnC,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,iCAAiC;YACjC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEzD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,QAAmB;QAChC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,OAA4B;QAC7C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CACxB,IAAY,EACZ,OAIC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEnE,mCAAmC;QACnC,IAAI,oBAA8D,CAAC;QAEnE,IAAI,CAAC;YACH,4CAA4C;YAC5C,IAAI,OAAO,EAAE,qBAAqB,EAAE,CAAC;gBACnC,6DAA6D;gBAC7D,oBAAoB,GAAG;oBACrB,OAAO,EAAG,IAAI,CAAC,YAAoB,CAAC,OAAO,EAAE,OAAO;oBACpD,UAAU,EAAG,IAAI,CAAC,YAAoB,CAAC,OAAO,EAAE,UAAU;oBAC1D,MAAM,EAAG,IAAI,CAAC,YAAoB,CAAC,OAAO,EAAE,MAAM;iBACnD,CAAC;gBAEF,0BAA0B;gBAC1B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACjE,CAAC;YAED,uBAAuB;YACvB,MAAM,YAAY,GAAqB;gBACrC,eAAe,EAAE,OAAO,EAAE,eAAe;gBACzC,cAAc,EAAE,OAAO,EAAE,cAAc;aACxC,CAAC;YAEF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAE1C,4CAA4C;YAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAE7C,uCAAuC;YACvC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YAEvE,iBAAiB;YACjB,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAEzD,mBAAmB;YACnB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,gDAAgD;YAChD,IAAI,oBAAoB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;YAChD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,IAAI,EAAE,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACxD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;YAErC,iEAAiE;YACjE,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAE7C,gCAAgC;YAChC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,EAAE;gBAClD,OAAO;gBACP,UAAU;gBACV,OAAO;aACR,CAAC,CAAC;YAEH,yDAAyD;YACzD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBAE1D,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;wBACxC,eAAe,EAAE,IAAI;qBACtB,CAAC,CAAC;oBAEH,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CACzB,MAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,GAAG,IAAW;QACxB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iCAAiC,CACrC,MAAc,EACd,cAAyB;QAEzB,MAAM,QAAQ,GAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,MAAM;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,gGAAgG;QAChG,2EAA2E;QAC3E,MAAM,QAAQ,GAAI,IAAI,CAAC,WAAmB,CAAC,QAAQ,CAAC;QACpD,MAAM,KAAK,GAAI,IAAI,CAAC,WAAmB,CAAC,KAAK,CAAC;QAE9C,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACrC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACjC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAoB;QAC5C,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"AITuberOnAirCore.js","sourceRoot":"","sources":["../../src/core/AITuberOnAirCore.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface ChatServiceOptions {
9
9
  model?: string;
10
10
  /** Vision model name (for image processing) */
11
11
  visionModel?: string;
12
+ /** API endpoint type (chat/completions or responses (OpenAI only)) */
13
+ endpoint?: string;
12
14
  /** Additional provider-specific options */
13
15
  [key: string]: any;
14
16
  }
@@ -1,12 +1,10 @@
1
1
  import { ChatService } from '../../ChatService';
2
- import { CoreToolChatBlock, Message, MessageWithVision, ToolChatCompletion, ToolDefinition } from '../../../../types';
2
+ import { Message, MessageWithVision, ToolChatCompletion, ToolDefinition, MCPServerConfig } from '../../../../types';
3
3
  export interface ClaudeToolResultBlock {
4
4
  type: 'tool_result';
5
5
  tool_use_id: string;
6
6
  content: string;
7
7
  }
8
- type ClaudeToolChatBlock = CoreToolChatBlock;
9
- type ClaudeCompletion = ToolChatCompletion<ClaudeToolChatBlock>;
10
8
  /**
11
9
  * Claude implementation of ChatService
12
10
  */
@@ -17,15 +15,17 @@ export declare class ClaudeChatService implements ChatService {
17
15
  private model;
18
16
  private visionModel;
19
17
  private tools;
18
+ private mcpServers;
20
19
  /**
21
20
  * Constructor
22
21
  * @param apiKey Anthropic API key
23
22
  * @param model Name of the model to use
24
23
  * @param visionModel Name of the vision model
25
24
  * @param tools Array of tool definitions
25
+ * @param mcpServers Array of MCP server configurations (optional)
26
26
  * @throws Error if the vision model doesn't support vision capabilities
27
27
  */
28
- constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[]);
28
+ constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[], mcpServers?: MCPServerConfig[]);
29
29
  /**
30
30
  * Get the current model name
31
31
  * @returns Model name
@@ -36,6 +36,26 @@ export declare class ClaudeChatService implements ChatService {
36
36
  * @returns Vision model name
37
37
  */
38
38
  getVisionModel(): string;
39
+ /**
40
+ * Get configured MCP servers
41
+ * @returns Array of MCP server configurations
42
+ */
43
+ getMCPServers(): MCPServerConfig[];
44
+ /**
45
+ * Add MCP server configuration
46
+ * @param serverConfig MCP server configuration
47
+ */
48
+ addMCPServer(serverConfig: MCPServerConfig): void;
49
+ /**
50
+ * Remove MCP server by name
51
+ * @param serverName Name of the server to remove
52
+ */
53
+ removeMCPServer(serverName: string): void;
54
+ /**
55
+ * Check if MCP servers are configured
56
+ * @returns True if MCP servers are configured
57
+ */
58
+ hasMCPServers(): boolean;
39
59
  /**
40
60
  * Process chat messages
41
61
  * @param messages Array of messages to send
@@ -86,7 +106,7 @@ export declare class ClaudeChatService implements ChatService {
86
106
  * Parse stream response
87
107
  * @param res Response
88
108
  * @param onPartial Callback to receive each part of streaming response
89
- * @returns ToolChatCompletion
109
+ * @returns ClaudeInternalCompletion
90
110
  */
91
111
  private parseStream;
92
112
  private parsePureStream;
@@ -98,12 +118,17 @@ export declare class ClaudeChatService implements ChatService {
98
118
  * @param onPartial Callback to receive each part of streaming response
99
119
  * @returns ToolChatCompletion
100
120
  */
101
- chatOnce(messages: Message[], stream?: boolean, onPartial?: (t: string) => void): Promise<ClaudeCompletion>;
121
+ chatOnce(messages: Message[], stream?: boolean, onPartial?: (t: string) => void): Promise<ToolChatCompletion>;
102
122
  /**
103
123
  * Process vision chat messages
104
124
  * @param messages Array of messages to send
105
125
  * @returns ToolChatCompletion
106
126
  */
107
- visionChatOnce(messages: MessageWithVision[], stream?: boolean, onPartial?: (t: string) => void): Promise<ClaudeCompletion>;
127
+ visionChatOnce(messages: MessageWithVision[], stream?: boolean, onPartial?: (t: string) => void): Promise<ToolChatCompletion>;
128
+ /**
129
+ * Convert internal completion to standard ToolChatCompletion
130
+ * @param completion Internal completion result
131
+ * @returns Standard ToolChatCompletion
132
+ */
133
+ private convertToStandardCompletion;
108
134
  }
109
- export {};
@@ -9,15 +9,17 @@ export class ClaudeChatService {
9
9
  * @param model Name of the model to use
10
10
  * @param visionModel Name of the vision model
11
11
  * @param tools Array of tool definitions
12
+ * @param mcpServers Array of MCP server configurations (optional)
12
13
  * @throws Error if the vision model doesn't support vision capabilities
13
14
  */
14
- constructor(apiKey, model = MODEL_CLAUDE_3_HAIKU, visionModel = MODEL_CLAUDE_3_HAIKU, tools = []) {
15
+ constructor(apiKey, model = MODEL_CLAUDE_3_HAIKU, visionModel = MODEL_CLAUDE_3_HAIKU, tools = [], mcpServers = []) {
15
16
  /** Provider name */
16
17
  this.provider = 'claude';
17
18
  this.apiKey = apiKey;
18
19
  this.model = model || MODEL_CLAUDE_3_HAIKU;
19
20
  this.visionModel = visionModel || MODEL_CLAUDE_3_HAIKU;
20
21
  this.tools = tools;
22
+ this.mcpServers = mcpServers;
21
23
  // Validate vision model supports vision capabilities
22
24
  if (!CLAUDE_VISION_SUPPORTED_MODELS.includes(this.visionModel)) {
23
25
  throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
@@ -37,6 +39,34 @@ export class ClaudeChatService {
37
39
  getVisionModel() {
38
40
  return this.visionModel;
39
41
  }
42
+ /**
43
+ * Get configured MCP servers
44
+ * @returns Array of MCP server configurations
45
+ */
46
+ getMCPServers() {
47
+ return this.mcpServers;
48
+ }
49
+ /**
50
+ * Add MCP server configuration
51
+ * @param serverConfig MCP server configuration
52
+ */
53
+ addMCPServer(serverConfig) {
54
+ this.mcpServers.push(serverConfig);
55
+ }
56
+ /**
57
+ * Remove MCP server by name
58
+ * @param serverName Name of the server to remove
59
+ */
60
+ removeMCPServer(serverName) {
61
+ this.mcpServers = this.mcpServers.filter((server) => server.name !== serverName);
62
+ }
63
+ /**
64
+ * Check if MCP servers are configured
65
+ * @returns True if MCP servers are configured
66
+ */
67
+ hasMCPServers() {
68
+ return this.mcpServers.length > 0;
69
+ }
40
70
  /**
41
71
  * Process chat messages
42
72
  * @param messages Array of messages to send
@@ -44,17 +74,17 @@ export class ClaudeChatService {
44
74
  * @param onCompleteResponse Callback to execute when response is complete
45
75
  */
46
76
  async processChat(messages, onPartialResponse, onCompleteResponse) {
47
- // not use tools
48
- if (this.tools.length === 0) {
77
+ // not use tools or MCP servers
78
+ if (this.tools.length === 0 && this.mcpServers.length === 0) {
49
79
  const res = await this.callClaude(messages, this.model, true);
50
80
  const full = await this.parsePureStream(res, onPartialResponse);
51
81
  await onCompleteResponse(full);
52
82
  return;
53
83
  }
54
- // use tools
55
- const { blocks, stop_reason } = await this.chatOnce(messages, true, onPartialResponse);
56
- if (stop_reason === 'end') {
57
- const full = blocks
84
+ // use tools or MCP servers
85
+ const result = await this.chatOnce(messages, true, onPartialResponse);
86
+ if (result.stop_reason === 'end') {
87
+ const full = result.blocks
58
88
  .filter((b) => b.type === 'text')
59
89
  .map((b) => b.text)
60
90
  .join('');
@@ -72,15 +102,15 @@ export class ClaudeChatService {
72
102
  */
73
103
  async processVisionChat(messages, onPartialResponse, onCompleteResponse) {
74
104
  /* same branch logic for vision */
75
- if (this.tools.length === 0) {
105
+ if (this.tools.length === 0 && this.mcpServers.length === 0) {
76
106
  const res = await this.callClaude(messages, this.visionModel, true);
77
107
  const full = await this.parsePureStream(res, onPartialResponse);
78
108
  await onCompleteResponse(full);
79
109
  return;
80
110
  }
81
- const { blocks, stop_reason } = await this.visionChatOnce(messages); // non-stream (tools only)
82
- if (stop_reason === 'end') {
83
- const full = blocks
111
+ const result = await this.visionChatOnce(messages); // non-stream (tools only)
112
+ if (result.stop_reason === 'end') {
113
+ const full = result.blocks
84
114
  .filter((b) => b.type === 'text')
85
115
  .map((b) => b.text)
86
116
  .join('');
@@ -229,14 +259,23 @@ export class ClaudeChatService {
229
259
  }));
230
260
  body.tool_choice = { type: 'auto' };
231
261
  }
262
+ // Add MCP servers if configured
263
+ if (this.mcpServers.length > 0) {
264
+ body.mcp_servers = this.mcpServers;
265
+ }
266
+ const headers = {
267
+ 'Content-Type': 'application/json',
268
+ 'x-api-key': this.apiKey,
269
+ 'anthropic-version': '2023-06-01',
270
+ 'anthropic-dangerous-direct-browser-access': 'true',
271
+ };
272
+ // Add beta header if MCP servers are configured
273
+ if (this.mcpServers.length > 0) {
274
+ headers['anthropic-beta'] = 'mcp-client-2025-04-04';
275
+ }
232
276
  const res = await fetch(ENDPOINT_CLAUDE_API, {
233
277
  method: 'POST',
234
- headers: {
235
- 'Content-Type': 'application/json',
236
- 'x-api-key': this.apiKey,
237
- 'anthropic-version': '2023-06-01',
238
- 'anthropic-dangerous-direct-browser-access': 'true',
239
- },
278
+ headers,
240
279
  body: JSON.stringify(body),
241
280
  });
242
281
  if (!res.ok)
@@ -247,7 +286,7 @@ export class ClaudeChatService {
247
286
  * Parse stream response
248
287
  * @param res Response
249
288
  * @param onPartial Callback to receive each part of streaming response
250
- * @returns ToolChatCompletion
289
+ * @returns ClaudeInternalCompletion
251
290
  */
252
291
  async parseStream(res, onPartial) {
253
292
  const reader = res.body.getReader();
@@ -284,6 +323,16 @@ export class ClaudeChatService {
284
323
  args: '',
285
324
  });
286
325
  }
326
+ else if (ev.type === 'content_block_start' &&
327
+ ev.content_block?.type === 'mcp_tool_use') {
328
+ // Handle MCP tool use
329
+ toolCalls.set(ev.index, {
330
+ id: ev.content_block.id,
331
+ name: ev.content_block.name,
332
+ args: '',
333
+ server_name: ev.content_block.server_name,
334
+ });
335
+ }
287
336
  else if (ev.type === 'content_block_start' && // case of non-stream
288
337
  ev.content_block?.type === 'tool_result') {
289
338
  textBlocks.push({
@@ -292,6 +341,16 @@ export class ClaudeChatService {
292
341
  content: ev.content_block.content ?? '',
293
342
  });
294
343
  }
344
+ else if (ev.type === 'content_block_start' &&
345
+ ev.content_block?.type === 'mcp_tool_result') {
346
+ // Handle MCP tool result
347
+ textBlocks.push({
348
+ type: 'mcp_tool_result',
349
+ tool_use_id: ev.content_block.tool_use_id,
350
+ is_error: ev.content_block.is_error ?? false,
351
+ content: ev.content_block.content ?? [],
352
+ });
353
+ }
295
354
  /* case of input_json_delta */
296
355
  if (ev.type === 'content_block_delta' &&
297
356
  ev.delta?.type === 'input_json_delta') {
@@ -301,20 +360,33 @@ export class ClaudeChatService {
301
360
  }
302
361
  /* case of content_block_stop */
303
362
  if (ev.type === 'content_block_stop' && toolCalls.has(ev.index)) {
304
- const { id, name, args } = toolCalls.get(ev.index);
305
- textBlocks.push({
306
- type: 'tool_use',
307
- id,
308
- name,
309
- input: JSON.parse(args || '{}'),
310
- });
363
+ const { id, name, args, server_name } = toolCalls.get(ev.index);
364
+ if (server_name) {
365
+ // MCP tool use
366
+ textBlocks.push({
367
+ type: 'mcp_tool_use',
368
+ id,
369
+ name,
370
+ server_name,
371
+ input: JSON.parse(args || '{}'),
372
+ });
373
+ }
374
+ else {
375
+ // Standard tool use
376
+ textBlocks.push({
377
+ type: 'tool_use',
378
+ id,
379
+ name,
380
+ input: JSON.parse(args || '{}'),
381
+ });
382
+ }
311
383
  toolCalls.delete(ev.index);
312
384
  }
313
385
  }
314
386
  }
315
387
  return {
316
388
  blocks: textBlocks,
317
- stop_reason: textBlocks.some((b) => b.type === 'tool_use')
389
+ stop_reason: textBlocks.some((b) => b.type === 'tool_use' || b.type === 'mcp_tool_use')
318
390
  ? 'tool_use'
319
391
  : 'end',
320
392
  };
@@ -340,6 +412,15 @@ export class ClaudeChatService {
340
412
  input: c.input ?? {},
341
413
  });
342
414
  }
415
+ else if (c.type === 'mcp_tool_use') {
416
+ blocks.push({
417
+ type: 'mcp_tool_use',
418
+ id: c.id,
419
+ name: c.name,
420
+ server_name: c.server_name,
421
+ input: c.input ?? {},
422
+ });
423
+ }
343
424
  else if (c.type === 'tool_result') {
344
425
  blocks.push({
345
426
  type: 'tool_result',
@@ -347,10 +428,18 @@ export class ClaudeChatService {
347
428
  content: c.content ?? '',
348
429
  });
349
430
  }
431
+ else if (c.type === 'mcp_tool_result') {
432
+ blocks.push({
433
+ type: 'mcp_tool_result',
434
+ tool_use_id: c.tool_use_id,
435
+ is_error: c.is_error ?? false,
436
+ content: c.content ?? [],
437
+ });
438
+ }
350
439
  });
351
440
  return {
352
441
  blocks,
353
- stop_reason: blocks.some((b) => b.type === 'tool_use')
442
+ stop_reason: blocks.some((b) => b.type === 'tool_use' || b.type === 'mcp_tool_use')
354
443
  ? 'tool_use'
355
444
  : 'end',
356
445
  };
@@ -364,10 +453,11 @@ export class ClaudeChatService {
364
453
  */
365
454
  async chatOnce(messages, stream = true, onPartial = () => { }) {
366
455
  const res = await this.callClaude(messages, this.model, stream);
367
- if (stream) {
368
- return this.parseStream(res, onPartial);
369
- }
370
- return this.parseOneShot(await res.json());
456
+ const internalResult = stream
457
+ ? await this.parseStream(res, onPartial)
458
+ : this.parseOneShot(await res.json());
459
+ // Convert ClaudeInternalCompletion to ToolChatCompletion for compatibility
460
+ return this.convertToStandardCompletion(internalResult);
371
461
  }
372
462
  /**
373
463
  * Process vision chat messages
@@ -376,10 +466,28 @@ export class ClaudeChatService {
376
466
  */
377
467
  async visionChatOnce(messages, stream = false, onPartial = () => { }) {
378
468
  const res = await this.callClaude(messages, this.visionModel, stream);
379
- if (stream) {
380
- return this.parseStream(res, onPartial);
381
- }
382
- return this.parseOneShot(await res.json());
469
+ const internalResult = stream
470
+ ? await this.parseStream(res, onPartial)
471
+ : this.parseOneShot(await res.json());
472
+ // Convert ClaudeInternalCompletion to ToolChatCompletion for compatibility
473
+ return this.convertToStandardCompletion(internalResult);
474
+ }
475
+ /**
476
+ * Convert internal completion to standard ToolChatCompletion
477
+ * @param completion Internal completion result
478
+ * @returns Standard ToolChatCompletion
479
+ */
480
+ convertToStandardCompletion(completion) {
481
+ // Filter out MCP-specific blocks and convert to standard format
482
+ const standardBlocks = completion.blocks.filter((block) => {
483
+ return (block.type === 'text' ||
484
+ block.type === 'tool_use' ||
485
+ block.type === 'tool_result');
486
+ });
487
+ return {
488
+ blocks: standardBlocks,
489
+ stop_reason: completion.stop_reason,
490
+ };
383
491
  }
384
492
  }
385
493
  //# sourceMappingURL=ClaudeChatService.js.map