@aituber-onair/chat 0.36.0 → 0.38.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.ja.md +49 -5
- package/README.md +49 -7
- package/dist/cjs/constants/gemini.d.ts +0 -7
- package/dist/cjs/constants/gemini.d.ts.map +1 -1
- package/dist/cjs/constants/gemini.js +1 -10
- package/dist/cjs/constants/gemini.js.map +1 -1
- package/dist/cjs/constants/openai.d.ts +2 -1
- package/dist/cjs/constants/openai.d.ts.map +1 -1
- package/dist/cjs/constants/openai.js +3 -4
- package/dist/cjs/constants/openai.js.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts +5 -0
- package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatService.js +22 -6
- package/dist/cjs/services/providers/gemini/GeminiChatService.js.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts +6 -0
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js +17 -7
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openai/responsesParser.d.ts +7 -2
- package/dist/cjs/services/providers/openai/responsesParser.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/responsesParser.js +9 -7
- package/dist/cjs/services/providers/openai/responsesParser.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +7 -5
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/mcpSchemaFetcher.d.ts +20 -0
- package/dist/cjs/utils/mcpSchemaFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/mcpSchemaFetcher.js +60 -44
- package/dist/cjs/utils/mcpSchemaFetcher.js.map +1 -1
- package/dist/cjs/utils/openaiCompatibleSse.d.ts +3 -2
- package/dist/cjs/utils/openaiCompatibleSse.d.ts.map +1 -1
- package/dist/cjs/utils/openaiCompatibleSse.js +4 -3
- package/dist/cjs/utils/openaiCompatibleSse.js.map +1 -1
- package/dist/cjs/utils/safeJsonParse.d.ts +4 -0
- package/dist/cjs/utils/safeJsonParse.d.ts.map +1 -0
- package/dist/cjs/utils/safeJsonParse.js +21 -0
- package/dist/cjs/utils/safeJsonParse.js.map +1 -0
- package/dist/esm/constants/gemini.d.ts +0 -7
- package/dist/esm/constants/gemini.d.ts.map +1 -1
- package/dist/esm/constants/gemini.js +0 -9
- package/dist/esm/constants/gemini.js.map +1 -1
- package/dist/esm/constants/openai.d.ts +2 -1
- package/dist/esm/constants/openai.d.ts.map +1 -1
- package/dist/esm/constants/openai.js +3 -4
- package/dist/esm/constants/openai.js.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatService.d.ts +5 -0
- package/dist/esm/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatService.js +22 -6
- package/dist/esm/services/providers/gemini/GeminiChatService.js.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts +6 -0
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js +17 -7
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openai/responsesParser.d.ts +7 -2
- package/dist/esm/services/providers/openai/responsesParser.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/responsesParser.js +9 -7
- package/dist/esm/services/providers/openai/responsesParser.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +7 -5
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/mcpSchemaFetcher.d.ts +20 -0
- package/dist/esm/utils/mcpSchemaFetcher.d.ts.map +1 -1
- package/dist/esm/utils/mcpSchemaFetcher.js +60 -44
- package/dist/esm/utils/mcpSchemaFetcher.js.map +1 -1
- package/dist/esm/utils/openaiCompatibleSse.d.ts +3 -2
- package/dist/esm/utils/openaiCompatibleSse.d.ts.map +1 -1
- package/dist/esm/utils/openaiCompatibleSse.js +4 -3
- package/dist/esm/utils/openaiCompatibleSse.js.map +1 -1
- package/dist/esm/utils/safeJsonParse.d.ts +4 -0
- package/dist/esm/utils/safeJsonParse.d.ts.map +1 -0
- package/dist/esm/utils/safeJsonParse.js +16 -0
- package/dist/esm/utils/safeJsonParse.js.map +1 -0
- package/dist/umd/aituber-onair-chat.js +143 -79
- package/dist/umd/aituber-onair-chat.min.js +10 -10
- package/package.json +1 -1
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
import { ChatServiceHttpClient } from './chatServiceHttpClient';
|
|
2
|
+
const createGenericSearchTool = (serverConfig, reason) => ({
|
|
3
|
+
name: `mcp_${serverConfig.name}_search`,
|
|
4
|
+
description: reason === 'schema-fetch-failed'
|
|
5
|
+
? `Search using ${serverConfig.name} MCP server (schema fetch failed)`
|
|
6
|
+
: `Search using ${serverConfig.name} MCP server`,
|
|
7
|
+
parameters: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
query: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: 'Search query',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
required: ['query'],
|
|
16
|
+
},
|
|
17
|
+
});
|
|
2
18
|
/**
|
|
3
19
|
* MCP server schema fetcher for SDK-less implementation
|
|
4
20
|
*/
|
|
@@ -9,6 +25,15 @@ export class MCPSchemaFetcher {
|
|
|
9
25
|
* @returns Array of tool definitions
|
|
10
26
|
*/
|
|
11
27
|
static async fetchToolSchemas(serverConfig) {
|
|
28
|
+
const result = await this.fetchToolSchemasWithStatus(serverConfig);
|
|
29
|
+
return result.schemas;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Fetch tool schemas from MCP server with failure metadata.
|
|
33
|
+
* @param serverConfig MCP server configuration
|
|
34
|
+
* @returns Tool schemas and failure metadata if fallback was used
|
|
35
|
+
*/
|
|
36
|
+
static async fetchToolSchemasWithStatus(serverConfig) {
|
|
12
37
|
try {
|
|
13
38
|
// Try to fetch tools list from MCP server
|
|
14
39
|
// This follows the MCP protocol for tool discovery
|
|
@@ -23,53 +48,32 @@ export class MCPSchemaFetcher {
|
|
|
23
48
|
const toolsData = await response.json();
|
|
24
49
|
// Convert MCP tool schemas to AITuber ToolDefinition format
|
|
25
50
|
if (Array.isArray(toolsData.tools)) {
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
51
|
+
return {
|
|
52
|
+
schemas: toolsData.tools.map((tool) => ({
|
|
53
|
+
name: `mcp_${serverConfig.name}_${tool.name}`,
|
|
54
|
+
description: tool.description || `Tool from ${serverConfig.name} MCP server`,
|
|
55
|
+
parameters: tool.inputSchema || {
|
|
56
|
+
type: 'object',
|
|
57
|
+
properties: {},
|
|
58
|
+
required: [],
|
|
59
|
+
},
|
|
60
|
+
})),
|
|
61
|
+
failures: [],
|
|
62
|
+
};
|
|
35
63
|
}
|
|
36
64
|
// Fallback: create generic search tool if server doesn't provide schema
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
parameters: {
|
|
42
|
-
type: 'object',
|
|
43
|
-
properties: {
|
|
44
|
-
query: {
|
|
45
|
-
type: 'string',
|
|
46
|
-
description: 'Search query',
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
required: ['query'],
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
];
|
|
65
|
+
return {
|
|
66
|
+
schemas: [createGenericSearchTool(serverConfig)],
|
|
67
|
+
failures: [],
|
|
68
|
+
};
|
|
53
69
|
}
|
|
54
70
|
catch (error) {
|
|
55
71
|
console.warn(`Failed to fetch MCP schemas from ${serverConfig.name}:`, error);
|
|
56
72
|
// Fallback: create generic search tool
|
|
57
|
-
return
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
parameters: {
|
|
62
|
-
type: 'object',
|
|
63
|
-
properties: {
|
|
64
|
-
query: {
|
|
65
|
-
type: 'string',
|
|
66
|
-
description: 'Search query',
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
required: ['query'],
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
];
|
|
73
|
+
return {
|
|
74
|
+
schemas: [createGenericSearchTool(serverConfig, 'schema-fetch-failed')],
|
|
75
|
+
failures: [{ server: serverConfig, error }],
|
|
76
|
+
};
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
/**
|
|
@@ -78,17 +82,29 @@ export class MCPSchemaFetcher {
|
|
|
78
82
|
* @returns Array of all tool definitions
|
|
79
83
|
*/
|
|
80
84
|
static async fetchAllToolSchemas(mcpServers) {
|
|
85
|
+
const result = await this.fetchAllToolSchemasWithStatus(mcpServers);
|
|
86
|
+
return result.schemas;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Fetch all tool schemas from multiple MCP servers with failure metadata.
|
|
90
|
+
* @param mcpServers Array of MCP server configurations
|
|
91
|
+
* @returns Array of all tool definitions and failures
|
|
92
|
+
*/
|
|
93
|
+
static async fetchAllToolSchemasWithStatus(mcpServers) {
|
|
81
94
|
const allSchemas = [];
|
|
95
|
+
const failures = [];
|
|
82
96
|
for (const server of mcpServers) {
|
|
83
97
|
try {
|
|
84
|
-
const
|
|
85
|
-
allSchemas.push(...schemas);
|
|
98
|
+
const result = await this.fetchToolSchemasWithStatus(server);
|
|
99
|
+
allSchemas.push(...result.schemas);
|
|
100
|
+
failures.push(...result.failures);
|
|
86
101
|
}
|
|
87
102
|
catch (error) {
|
|
88
103
|
console.error(`Failed to fetch schemas from ${server.name}:`, error);
|
|
104
|
+
failures.push({ server, error });
|
|
89
105
|
}
|
|
90
106
|
}
|
|
91
|
-
return allSchemas;
|
|
107
|
+
return { schemas: allSchemas, failures };
|
|
92
108
|
}
|
|
93
109
|
}
|
|
94
110
|
//# sourceMappingURL=mcpSchemaFetcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpSchemaFetcher.js","sourceRoot":"","sources":["../../../src/utils/mcpSchemaFetcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcpSchemaFetcher.js","sourceRoot":"","sources":["../../../src/utils/mcpSchemaFetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ToolChatBlock, ToolChatCompletion } from '../types';
|
|
2
|
+
import type { JsonParseErrorHandler } from './safeJsonParse';
|
|
2
3
|
type SseParseOptions = {
|
|
3
|
-
onJsonError?:
|
|
4
|
+
onJsonError?: JsonParseErrorHandler;
|
|
4
5
|
appendTextBlock?: (blocks: ToolChatBlock[], text: string) => void;
|
|
5
6
|
};
|
|
6
7
|
export declare function parseOpenAICompatibleTextStream(res: Response, onPartial: (text: string) => void, options?: SseParseOptions): Promise<string>;
|
|
7
8
|
export declare function parseOpenAICompatibleToolStream(res: Response, onPartial: (text: string) => void, options?: SseParseOptions): Promise<ToolChatCompletion>;
|
|
8
|
-
export declare function parseOpenAICompatibleOneShot(data: any): ToolChatCompletion;
|
|
9
|
+
export declare function parseOpenAICompatibleOneShot(data: any, options?: SseParseOptions): ToolChatCompletion;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=openaiCompatibleSse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiCompatibleSse.d.ts","sourceRoot":"","sources":["../../../src/utils/openaiCompatibleSse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"openaiCompatibleSse.d.ts","sourceRoot":"","sources":["../../../src/utils/openaiCompatibleSse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAI7D,KAAK,eAAe,GAAG;IACrB,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE,CAAC;AAiFF,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACjC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACjC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CA2D7B;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,eAAoB,GAC5B,kBAAkB,CAkCpB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { safeParseToolCallInput } from './safeJsonParse';
|
|
1
2
|
import { StreamTextAccumulator } from './streamTextAccumulator';
|
|
2
3
|
const parseJsonPayload = (payload, onJsonError) => {
|
|
3
4
|
try {
|
|
@@ -118,7 +119,7 @@ export async function parseOpenAICompatibleToolStream(res, onPartial, options =
|
|
|
118
119
|
type: 'tool_use',
|
|
119
120
|
id: e.id,
|
|
120
121
|
name: e.name,
|
|
121
|
-
input:
|
|
122
|
+
input: safeParseToolCallInput(e.args, options.onJsonError),
|
|
122
123
|
}));
|
|
123
124
|
const blocks = [...textBlocks, ...toolBlocks];
|
|
124
125
|
return {
|
|
@@ -129,7 +130,7 @@ export async function parseOpenAICompatibleToolStream(res, onPartial, options =
|
|
|
129
130
|
usage,
|
|
130
131
|
};
|
|
131
132
|
}
|
|
132
|
-
export function parseOpenAICompatibleOneShot(data) {
|
|
133
|
+
export function parseOpenAICompatibleOneShot(data, options = {}) {
|
|
133
134
|
const choice = data?.choices?.[0];
|
|
134
135
|
const blocks = [];
|
|
135
136
|
if (choice?.message?.tool_calls?.length) {
|
|
@@ -137,7 +138,7 @@ export function parseOpenAICompatibleOneShot(data) {
|
|
|
137
138
|
type: 'tool_use',
|
|
138
139
|
id: c.id,
|
|
139
140
|
name: c.function?.name,
|
|
140
|
-
input:
|
|
141
|
+
input: safeParseToolCallInput(c.function?.arguments, options.onJsonError),
|
|
141
142
|
}));
|
|
142
143
|
}
|
|
143
144
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiCompatibleSse.js","sourceRoot":"","sources":["../../../src/utils/openaiCompatibleSse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openaiCompatibleSse.js","sourceRoot":"","sources":["../../../src/utils/openaiCompatibleSse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type JsonParseErrorHandler = (payload: string, error: unknown) => void;
|
|
2
|
+
export declare const safeJsonParse: <T>(payload: string, fallback: T, onJsonError?: JsonParseErrorHandler) => T;
|
|
3
|
+
export declare const safeParseToolCallInput: (payload: string | undefined, onJsonError?: JsonParseErrorHandler) => any;
|
|
4
|
+
//# sourceMappingURL=safeJsonParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeJsonParse.d.ts","sourceRoot":"","sources":["../../../src/utils/safeJsonParse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAE9E,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,SAAS,MAAM,EACf,UAAU,CAAC,EACX,cAAc,qBAAqB,KAClC,CAOF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,GAAG,SAAS,EAC3B,cAAc,qBAAqB,KAClC,GAMF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const safeJsonParse = (payload, fallback, onJsonError) => {
|
|
2
|
+
try {
|
|
3
|
+
return JSON.parse(payload);
|
|
4
|
+
}
|
|
5
|
+
catch (error) {
|
|
6
|
+
onJsonError?.(payload, error);
|
|
7
|
+
return fallback;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
export const safeParseToolCallInput = (payload, onJsonError) => {
|
|
11
|
+
if (!payload) {
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
return safeJsonParse(payload, {}, onJsonError);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=safeJsonParse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeJsonParse.js","sourceRoot":"","sources":["../../../src/utils/safeJsonParse.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAe,EACf,QAAW,EACX,WAAmC,EAChC,EAAE;IACL,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAA2B,EAC3B,WAAmC,EAC9B,EAAE;IACP,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC,CAAC"}
|