@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.
Files changed (83) hide show
  1. package/README.ja.md +49 -5
  2. package/README.md +49 -7
  3. package/dist/cjs/constants/gemini.d.ts +0 -7
  4. package/dist/cjs/constants/gemini.d.ts.map +1 -1
  5. package/dist/cjs/constants/gemini.js +1 -10
  6. package/dist/cjs/constants/gemini.js.map +1 -1
  7. package/dist/cjs/constants/openai.d.ts +2 -1
  8. package/dist/cjs/constants/openai.d.ts.map +1 -1
  9. package/dist/cjs/constants/openai.js +3 -4
  10. package/dist/cjs/constants/openai.js.map +1 -1
  11. package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts +5 -0
  12. package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
  13. package/dist/cjs/services/providers/gemini/GeminiChatService.js +22 -6
  14. package/dist/cjs/services/providers/gemini/GeminiChatService.js.map +1 -1
  15. package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts +6 -0
  16. package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
  17. package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js +17 -7
  18. package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
  19. package/dist/cjs/services/providers/openai/responsesParser.d.ts +7 -2
  20. package/dist/cjs/services/providers/openai/responsesParser.d.ts.map +1 -1
  21. package/dist/cjs/services/providers/openai/responsesParser.js +9 -7
  22. package/dist/cjs/services/providers/openai/responsesParser.js.map +1 -1
  23. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
  24. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +7 -5
  25. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
  26. package/dist/cjs/utils/index.d.ts +1 -0
  27. package/dist/cjs/utils/index.d.ts.map +1 -1
  28. package/dist/cjs/utils/index.js +1 -0
  29. package/dist/cjs/utils/index.js.map +1 -1
  30. package/dist/cjs/utils/mcpSchemaFetcher.d.ts +20 -0
  31. package/dist/cjs/utils/mcpSchemaFetcher.d.ts.map +1 -1
  32. package/dist/cjs/utils/mcpSchemaFetcher.js +60 -44
  33. package/dist/cjs/utils/mcpSchemaFetcher.js.map +1 -1
  34. package/dist/cjs/utils/openaiCompatibleSse.d.ts +3 -2
  35. package/dist/cjs/utils/openaiCompatibleSse.d.ts.map +1 -1
  36. package/dist/cjs/utils/openaiCompatibleSse.js +4 -3
  37. package/dist/cjs/utils/openaiCompatibleSse.js.map +1 -1
  38. package/dist/cjs/utils/safeJsonParse.d.ts +4 -0
  39. package/dist/cjs/utils/safeJsonParse.d.ts.map +1 -0
  40. package/dist/cjs/utils/safeJsonParse.js +21 -0
  41. package/dist/cjs/utils/safeJsonParse.js.map +1 -0
  42. package/dist/esm/constants/gemini.d.ts +0 -7
  43. package/dist/esm/constants/gemini.d.ts.map +1 -1
  44. package/dist/esm/constants/gemini.js +0 -9
  45. package/dist/esm/constants/gemini.js.map +1 -1
  46. package/dist/esm/constants/openai.d.ts +2 -1
  47. package/dist/esm/constants/openai.d.ts.map +1 -1
  48. package/dist/esm/constants/openai.js +3 -4
  49. package/dist/esm/constants/openai.js.map +1 -1
  50. package/dist/esm/services/providers/gemini/GeminiChatService.d.ts +5 -0
  51. package/dist/esm/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
  52. package/dist/esm/services/providers/gemini/GeminiChatService.js +22 -6
  53. package/dist/esm/services/providers/gemini/GeminiChatService.js.map +1 -1
  54. package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts +6 -0
  55. package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
  56. package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js +17 -7
  57. package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
  58. package/dist/esm/services/providers/openai/responsesParser.d.ts +7 -2
  59. package/dist/esm/services/providers/openai/responsesParser.d.ts.map +1 -1
  60. package/dist/esm/services/providers/openai/responsesParser.js +9 -7
  61. package/dist/esm/services/providers/openai/responsesParser.js.map +1 -1
  62. package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
  63. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +7 -5
  64. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
  65. package/dist/esm/utils/index.d.ts +1 -0
  66. package/dist/esm/utils/index.d.ts.map +1 -1
  67. package/dist/esm/utils/index.js +1 -0
  68. package/dist/esm/utils/index.js.map +1 -1
  69. package/dist/esm/utils/mcpSchemaFetcher.d.ts +20 -0
  70. package/dist/esm/utils/mcpSchemaFetcher.d.ts.map +1 -1
  71. package/dist/esm/utils/mcpSchemaFetcher.js +60 -44
  72. package/dist/esm/utils/mcpSchemaFetcher.js.map +1 -1
  73. package/dist/esm/utils/openaiCompatibleSse.d.ts +3 -2
  74. package/dist/esm/utils/openaiCompatibleSse.d.ts.map +1 -1
  75. package/dist/esm/utils/openaiCompatibleSse.js +4 -3
  76. package/dist/esm/utils/openaiCompatibleSse.js.map +1 -1
  77. package/dist/esm/utils/safeJsonParse.d.ts +4 -0
  78. package/dist/esm/utils/safeJsonParse.d.ts.map +1 -0
  79. package/dist/esm/utils/safeJsonParse.js +16 -0
  80. package/dist/esm/utils/safeJsonParse.js.map +1 -0
  81. package/dist/umd/aituber-onair-chat.js +143 -79
  82. package/dist/umd/aituber-onair-chat.min.js +10 -10
  83. 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 toolsData.tools.map((tool) => ({
27
- name: `mcp_${serverConfig.name}_${tool.name}`,
28
- description: tool.description || `Tool from ${serverConfig.name} MCP server`,
29
- parameters: tool.inputSchema || {
30
- type: 'object',
31
- properties: {},
32
- required: [],
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
- name: `mcp_${serverConfig.name}_search`,
40
- description: `Search using ${serverConfig.name} MCP server`,
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
- name: `mcp_${serverConfig.name}_search`,
60
- description: `Search using ${serverConfig.name} MCP server (schema fetch failed)`,
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 schemas = await this.fetchToolSchemas(server);
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":"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"}
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?: (payload: string, error: unknown) => void;
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;AAG7D,KAAK,eAAe,GAAG;IACrB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,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,CAAC,IAAI,EAAE,GAAG,GAAG,kBAAkB,CA+B1E"}
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: JSON.parse(e.args || '{}'),
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: JSON.parse(c.function?.arguments || '{}'),
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":"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"}
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"}