@aituber-onair/core 0.16.0 → 0.17.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 (97) hide show
  1. package/README.md +13 -1
  2. package/dist/constants/index.d.ts +0 -5
  3. package/dist/constants/index.js +0 -5
  4. package/dist/constants/index.js.map +1 -1
  5. package/dist/core/AITuberOnAirCore.d.ts +3 -3
  6. package/dist/core/AITuberOnAirCore.js +8 -4
  7. package/dist/core/AITuberOnAirCore.js.map +1 -1
  8. package/dist/core/ChatProcessor.d.ts +1 -4
  9. package/dist/core/ChatProcessor.js +1 -3
  10. package/dist/core/ChatProcessor.js.map +1 -1
  11. package/dist/core/MemoryManager.d.ts +2 -1
  12. package/dist/core/MemoryManager.js.map +1 -1
  13. package/dist/core/ToolExecutor.d.ts +28 -2
  14. package/dist/core/ToolExecutor.js +88 -0
  15. package/dist/core/ToolExecutor.js.map +1 -1
  16. package/dist/index.d.ts +5 -12
  17. package/dist/index.js +19 -8
  18. package/dist/index.js.map +1 -1
  19. package/dist/services/chat/providers/claude/ClaudeSummarizer.d.ts +1 -1
  20. package/dist/services/chat/providers/claude/ClaudeSummarizer.js +1 -2
  21. package/dist/services/chat/providers/claude/ClaudeSummarizer.js.map +1 -1
  22. package/dist/services/chat/providers/gemini/GeminiSummarizer.d.ts +1 -1
  23. package/dist/services/chat/providers/gemini/GeminiSummarizer.js +1 -2
  24. package/dist/services/chat/providers/gemini/GeminiSummarizer.js.map +1 -1
  25. package/dist/services/chat/providers/openai/OpenAISummarizer.d.ts +1 -1
  26. package/dist/services/chat/providers/openai/OpenAISummarizer.js +1 -2
  27. package/dist/services/chat/providers/openai/OpenAISummarizer.js.map +1 -1
  28. package/dist/types/index.d.ts +0 -3
  29. package/dist/types/index.js +0 -4
  30. package/dist/types/index.js.map +1 -1
  31. package/dist/utils/index.d.ts +1 -4
  32. package/dist/utils/index.js +2 -4
  33. package/dist/utils/index.js.map +1 -1
  34. package/package.json +3 -2
  35. package/dist/constants/chat.d.ts +0 -17
  36. package/dist/constants/chat.js +0 -18
  37. package/dist/constants/chat.js.map +0 -1
  38. package/dist/constants/claude.d.ts +0 -8
  39. package/dist/constants/claude.js +0 -17
  40. package/dist/constants/claude.js.map +0 -1
  41. package/dist/constants/gemini.d.ts +0 -10
  42. package/dist/constants/gemini.js +0 -23
  43. package/dist/constants/gemini.js.map +0 -1
  44. package/dist/constants/openai.d.ts +0 -12
  45. package/dist/constants/openai.js +0 -25
  46. package/dist/constants/openai.js.map +0 -1
  47. package/dist/constants/prompts.d.ts +0 -2
  48. package/dist/constants/prompts.js +0 -13
  49. package/dist/constants/prompts.js.map +0 -1
  50. package/dist/services/chat/ChatService.d.ts +0 -50
  51. package/dist/services/chat/ChatService.js +0 -2
  52. package/dist/services/chat/ChatService.js.map +0 -1
  53. package/dist/services/chat/ChatServiceFactory.d.ts +0 -38
  54. package/dist/services/chat/ChatServiceFactory.js +0 -61
  55. package/dist/services/chat/ChatServiceFactory.js.map +0 -1
  56. package/dist/services/chat/providers/ChatServiceProvider.d.ts +0 -48
  57. package/dist/services/chat/providers/ChatServiceProvider.js +0 -2
  58. package/dist/services/chat/providers/ChatServiceProvider.js.map +0 -1
  59. package/dist/services/chat/providers/claude/ClaudeChatService.d.ts +0 -139
  60. package/dist/services/chat/providers/claude/ClaudeChatService.js +0 -493
  61. package/dist/services/chat/providers/claude/ClaudeChatService.js.map +0 -1
  62. package/dist/services/chat/providers/claude/ClaudeChatServiceProvider.d.ts +0 -39
  63. package/dist/services/chat/providers/claude/ClaudeChatServiceProvider.js +0 -62
  64. package/dist/services/chat/providers/claude/ClaudeChatServiceProvider.js.map +0 -1
  65. package/dist/services/chat/providers/gemini/GeminiChatService.d.ts +0 -71
  66. package/dist/services/chat/providers/gemini/GeminiChatService.js +0 -537
  67. package/dist/services/chat/providers/gemini/GeminiChatService.js.map +0 -1
  68. package/dist/services/chat/providers/gemini/GeminiChatServiceProvider.d.ts +0 -39
  69. package/dist/services/chat/providers/gemini/GeminiChatServiceProvider.js +0 -61
  70. package/dist/services/chat/providers/gemini/GeminiChatServiceProvider.js.map +0 -1
  71. package/dist/services/chat/providers/openai/OpenAIChatService.d.ts +0 -107
  72. package/dist/services/chat/providers/openai/OpenAIChatService.js +0 -530
  73. package/dist/services/chat/providers/openai/OpenAIChatService.js.map +0 -1
  74. package/dist/services/chat/providers/openai/OpenAIChatServiceProvider.d.ts +0 -39
  75. package/dist/services/chat/providers/openai/OpenAIChatServiceProvider.js +0 -66
  76. package/dist/services/chat/providers/openai/OpenAIChatServiceProvider.js.map +0 -1
  77. package/dist/types/chat.d.ts +0 -54
  78. package/dist/types/chat.js +0 -5
  79. package/dist/types/chat.js.map +0 -1
  80. package/dist/types/mcp.d.ts +0 -36
  81. package/dist/types/mcp.js +0 -5
  82. package/dist/types/mcp.js.map +0 -1
  83. package/dist/types/toolChat.d.ts +0 -41
  84. package/dist/types/toolChat.js +0 -2
  85. package/dist/types/toolChat.js.map +0 -1
  86. package/dist/utils/chatServiceHttpClient.d.ts +0 -46
  87. package/dist/utils/chatServiceHttpClient.js +0 -126
  88. package/dist/utils/chatServiceHttpClient.js.map +0 -1
  89. package/dist/utils/emotionParser.d.ts +0 -45
  90. package/dist/utils/emotionParser.js +0 -55
  91. package/dist/utils/emotionParser.js.map +0 -1
  92. package/dist/utils/screenplay.d.ts +0 -19
  93. package/dist/utils/screenplay.js +0 -36
  94. package/dist/utils/screenplay.js.map +0 -1
  95. package/dist/utils/streamTextAccumulator.d.ts +0 -24
  96. package/dist/utils/streamTextAccumulator.js +0 -43
  97. package/dist/utils/streamTextAccumulator.js.map +0 -1
@@ -1,493 +0,0 @@
1
- import { ENDPOINT_CLAUDE_API, MODEL_CLAUDE_3_HAIKU, CLAUDE_VISION_SUPPORTED_MODELS, DEFAULT_MAX_TOKENS, } from '../../../../constants';
2
- import { ChatServiceHttpClient } from '../../../../utils/chatServiceHttpClient';
3
- /**
4
- * Claude implementation of ChatService
5
- */
6
- export class ClaudeChatService {
7
- /**
8
- * Constructor
9
- * @param apiKey Anthropic API key
10
- * @param model Name of the model to use
11
- * @param visionModel Name of the vision model
12
- * @param tools Array of tool definitions
13
- * @param mcpServers Array of MCP server configurations (optional)
14
- * @throws Error if the vision model doesn't support vision capabilities
15
- */
16
- constructor(apiKey, model = MODEL_CLAUDE_3_HAIKU, visionModel = MODEL_CLAUDE_3_HAIKU, tools = [], mcpServers = []) {
17
- /** Provider name */
18
- this.provider = 'claude';
19
- this.apiKey = apiKey;
20
- this.model = model || MODEL_CLAUDE_3_HAIKU;
21
- this.visionModel = visionModel || MODEL_CLAUDE_3_HAIKU;
22
- this.tools = tools;
23
- this.mcpServers = mcpServers;
24
- // Validate vision model supports vision capabilities
25
- if (!CLAUDE_VISION_SUPPORTED_MODELS.includes(this.visionModel)) {
26
- throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
27
- }
28
- }
29
- /**
30
- * Get the current model name
31
- * @returns Model name
32
- */
33
- getModel() {
34
- return this.model;
35
- }
36
- /**
37
- * Get the current vision model name
38
- * @returns Vision model name
39
- */
40
- getVisionModel() {
41
- return this.visionModel;
42
- }
43
- /**
44
- * Get configured MCP servers
45
- * @returns Array of MCP server configurations
46
- */
47
- getMCPServers() {
48
- return this.mcpServers;
49
- }
50
- /**
51
- * Add MCP server configuration
52
- * @param serverConfig MCP server configuration
53
- */
54
- addMCPServer(serverConfig) {
55
- this.mcpServers.push(serverConfig);
56
- }
57
- /**
58
- * Remove MCP server by name
59
- * @param serverName Name of the server to remove
60
- */
61
- removeMCPServer(serverName) {
62
- this.mcpServers = this.mcpServers.filter((server) => server.name !== serverName);
63
- }
64
- /**
65
- * Check if MCP servers are configured
66
- * @returns True if MCP servers are configured
67
- */
68
- hasMCPServers() {
69
- return this.mcpServers.length > 0;
70
- }
71
- /**
72
- * Process chat messages
73
- * @param messages Array of messages to send
74
- * @param onPartialResponse Callback to receive each part of streaming response
75
- * @param onCompleteResponse Callback to execute when response is complete
76
- */
77
- async processChat(messages, onPartialResponse, onCompleteResponse) {
78
- // not use tools or MCP servers
79
- if (this.tools.length === 0 && this.mcpServers.length === 0) {
80
- const res = await this.callClaude(messages, this.model, true);
81
- const full = await this.parsePureStream(res, onPartialResponse);
82
- await onCompleteResponse(full);
83
- return;
84
- }
85
- // use tools or MCP servers
86
- const result = await this.chatOnce(messages, true, onPartialResponse);
87
- if (result.stop_reason === 'end') {
88
- const full = result.blocks
89
- .filter((b) => b.type === 'text')
90
- .map((b) => b.text)
91
- .join('');
92
- await onCompleteResponse(full);
93
- return;
94
- }
95
- /* if tool_use, throw error */
96
- throw new Error('processChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled.');
97
- }
98
- /**
99
- * Process chat messages with images
100
- * @param messages Array of messages to send (including images)
101
- * @param onPartialResponse Callback to receive each part of streaming response
102
- * @param onCompleteResponse Callback to execute when response is complete
103
- */
104
- async processVisionChat(messages, onPartialResponse, onCompleteResponse) {
105
- /* same branch logic for vision */
106
- if (this.tools.length === 0 && this.mcpServers.length === 0) {
107
- const res = await this.callClaude(messages, this.visionModel, true);
108
- const full = await this.parsePureStream(res, onPartialResponse);
109
- await onCompleteResponse(full);
110
- return;
111
- }
112
- const result = await this.visionChatOnce(messages); // non-stream (tools only)
113
- if (result.stop_reason === 'end') {
114
- const full = result.blocks
115
- .filter((b) => b.type === 'text')
116
- .map((b) => b.text)
117
- .join('');
118
- await onCompleteResponse(full);
119
- return;
120
- }
121
- throw new Error('processVisionChat received tool_calls. ChatProcessor must use chatOnce() loop when tools are enabled.');
122
- }
123
- /**
124
- * Convert AITuber OnAir messages to Claude format
125
- * @param messages Array of messages
126
- * @returns Claude formatted messages
127
- */
128
- convertMessagesToClaudeFormat(messages) {
129
- return messages.map((msg) => {
130
- return {
131
- role: this.mapRoleToClaude(msg.role),
132
- content: msg.content,
133
- };
134
- });
135
- }
136
- /**
137
- * Convert AITuber OnAir vision messages to Claude format
138
- * @param messages Array of vision messages
139
- * @returns Claude formatted vision messages
140
- */
141
- convertVisionMessagesToClaudeFormat(messages) {
142
- return messages.map((msg) => {
143
- // If message content is a string, create a text-only message
144
- if (typeof msg.content === 'string') {
145
- return {
146
- role: this.mapRoleToClaude(msg.role),
147
- content: [
148
- {
149
- type: 'text',
150
- text: msg.content,
151
- },
152
- ],
153
- };
154
- }
155
- // If message content is an array of blocks, convert each block
156
- if (Array.isArray(msg.content)) {
157
- const content = msg.content
158
- .map((block) => {
159
- if (block.type === 'image_url') {
160
- // check if the image url is a data url
161
- if (block.image_url.url.startsWith('data:')) {
162
- const m = block.image_url.url.match(/^data:([^;]+);base64,(.+)$/);
163
- if (m) {
164
- return {
165
- type: 'image',
166
- source: { type: 'base64', media_type: m[1], data: m[2] },
167
- };
168
- }
169
- return null;
170
- }
171
- // if the image url is a normal url
172
- return {
173
- type: 'image',
174
- source: {
175
- type: 'url',
176
- url: block.image_url.url,
177
- media_type: this.getMimeTypeFromUrl(block.image_url.url),
178
- },
179
- };
180
- }
181
- return block;
182
- })
183
- .filter((b) => b);
184
- return {
185
- role: this.mapRoleToClaude(msg.role),
186
- content,
187
- };
188
- }
189
- return {
190
- role: this.mapRoleToClaude(msg.role),
191
- content: [],
192
- };
193
- });
194
- }
195
- /**
196
- * Map AITuber OnAir roles to Claude roles
197
- * @param role AITuber OnAir role
198
- * @returns Claude role
199
- */
200
- mapRoleToClaude(role) {
201
- switch (role) {
202
- case 'system':
203
- // Claude handles system messages separately, but we'll map it anyway
204
- return 'system';
205
- case 'user':
206
- return 'user';
207
- case 'assistant':
208
- return 'assistant';
209
- default:
210
- return 'user';
211
- }
212
- }
213
- /**
214
- * Get MIME type from URL
215
- * @param url Image URL
216
- * @returns MIME type
217
- */
218
- getMimeTypeFromUrl(url) {
219
- const extension = url.split('.').pop()?.toLowerCase();
220
- switch (extension) {
221
- case 'jpg':
222
- case 'jpeg':
223
- return 'image/jpeg';
224
- case 'png':
225
- return 'image/png';
226
- case 'gif':
227
- return 'image/gif';
228
- case 'webp':
229
- return 'image/webp';
230
- default:
231
- return 'image/jpeg';
232
- }
233
- }
234
- /**
235
- * Call Claude API
236
- * @param messages Array of messages to send
237
- * @param model Model name
238
- * @param stream Whether to stream the response
239
- * @param maxTokens Maximum tokens for response (optional)
240
- * @returns Response
241
- */
242
- async callClaude(messages, model, stream, maxTokens) {
243
- const system = messages.find((m) => m.role === 'system')?.content ?? '';
244
- const content = messages.filter((m) => m.role !== 'system');
245
- const hasVision = content.some((m) => Array.isArray(m.content) &&
246
- m.content.some((b) => b.type === 'image_url' || b.type === 'image'));
247
- const body = {
248
- model,
249
- system,
250
- messages: hasVision
251
- ? this.convertVisionMessagesToClaudeFormat(content)
252
- : this.convertMessagesToClaudeFormat(content),
253
- stream,
254
- max_tokens: maxTokens !== undefined ? maxTokens : DEFAULT_MAX_TOKENS,
255
- };
256
- if (this.tools.length) {
257
- body.tools = this.tools.map((t) => ({
258
- name: t.name,
259
- description: t.description,
260
- input_schema: t.parameters,
261
- }));
262
- body.tool_choice = { type: 'auto' };
263
- }
264
- // Add MCP servers if configured
265
- if (this.mcpServers.length > 0) {
266
- body.mcp_servers = this.mcpServers;
267
- }
268
- const headers = {
269
- 'Content-Type': 'application/json',
270
- 'x-api-key': this.apiKey,
271
- 'anthropic-version': '2023-06-01',
272
- 'anthropic-dangerous-direct-browser-access': 'true',
273
- };
274
- // Add beta header if MCP servers are configured
275
- if (this.mcpServers.length > 0) {
276
- headers['anthropic-beta'] = 'mcp-client-2025-04-04';
277
- }
278
- const res = await ChatServiceHttpClient.post(ENDPOINT_CLAUDE_API, body, headers);
279
- return res;
280
- }
281
- /**
282
- * Parse stream response
283
- * @param res Response
284
- * @param onPartial Callback to receive each part of streaming response
285
- * @returns ClaudeInternalCompletion
286
- */
287
- async parseStream(res, onPartial) {
288
- const reader = res.body.getReader();
289
- const dec = new TextDecoder();
290
- const textBlocks = [];
291
- const toolCalls = new Map();
292
- let buf = '';
293
- while (true) {
294
- const { done, value } = await reader.read();
295
- if (done)
296
- break;
297
- buf += dec.decode(value, { stream: true });
298
- let nl;
299
- while ((nl = buf.indexOf('\n')) !== -1) {
300
- const line = buf.slice(0, nl).trim();
301
- buf = buf.slice(nl + 1);
302
- if (!line.startsWith('data:'))
303
- continue;
304
- const payload = line.slice(5).trim();
305
- if (payload === '[DONE]')
306
- break;
307
- const ev = JSON.parse(payload);
308
- /* content delta */
309
- if (ev.type === 'content_block_delta' && ev.delta?.text) {
310
- onPartial(ev.delta.text);
311
- textBlocks.push({ type: 'text', text: ev.delta.text });
312
- }
313
- /* tool_call delta */
314
- if (ev.type === 'content_block_start' &&
315
- ev.content_block?.type === 'tool_use') {
316
- toolCalls.set(ev.index, {
317
- id: ev.content_block.id,
318
- name: ev.content_block.name,
319
- args: '',
320
- });
321
- }
322
- else if (ev.type === 'content_block_start' &&
323
- ev.content_block?.type === 'mcp_tool_use') {
324
- // Handle MCP tool use
325
- toolCalls.set(ev.index, {
326
- id: ev.content_block.id,
327
- name: ev.content_block.name,
328
- args: '',
329
- server_name: ev.content_block.server_name,
330
- });
331
- }
332
- else if (ev.type === 'content_block_start' && // case of non-stream
333
- ev.content_block?.type === 'tool_result') {
334
- textBlocks.push({
335
- type: 'tool_result',
336
- tool_use_id: ev.content_block.tool_use_id,
337
- content: ev.content_block.content ?? '',
338
- });
339
- }
340
- else if (ev.type === 'content_block_start' &&
341
- ev.content_block?.type === 'mcp_tool_result') {
342
- // Handle MCP tool result
343
- textBlocks.push({
344
- type: 'mcp_tool_result',
345
- tool_use_id: ev.content_block.tool_use_id,
346
- is_error: ev.content_block.is_error ?? false,
347
- content: ev.content_block.content ?? [],
348
- });
349
- }
350
- /* case of input_json_delta */
351
- if (ev.type === 'content_block_delta' &&
352
- ev.delta?.type === 'input_json_delta') {
353
- const entry = toolCalls.get(ev.index);
354
- if (entry)
355
- entry.args += ev.delta.partial_json || '';
356
- }
357
- /* case of content_block_stop */
358
- if (ev.type === 'content_block_stop' && toolCalls.has(ev.index)) {
359
- const { id, name, args, server_name } = toolCalls.get(ev.index);
360
- if (server_name) {
361
- // MCP tool use
362
- textBlocks.push({
363
- type: 'mcp_tool_use',
364
- id,
365
- name,
366
- server_name,
367
- input: JSON.parse(args || '{}'),
368
- });
369
- }
370
- else {
371
- // Standard tool use
372
- textBlocks.push({
373
- type: 'tool_use',
374
- id,
375
- name,
376
- input: JSON.parse(args || '{}'),
377
- });
378
- }
379
- toolCalls.delete(ev.index);
380
- }
381
- }
382
- }
383
- return {
384
- blocks: textBlocks,
385
- stop_reason: textBlocks.some((b) => b.type === 'tool_use' || b.type === 'mcp_tool_use')
386
- ? 'tool_use'
387
- : 'end',
388
- };
389
- }
390
- async parsePureStream(res, onPartial) {
391
- const { blocks } = await this.parseStream(res, onPartial);
392
- return blocks
393
- .filter((b) => b.type === 'text')
394
- .map((b) => b.text)
395
- .join('');
396
- }
397
- parseOneShot(data) {
398
- const blocks = [];
399
- (data.content ?? []).forEach((c) => {
400
- if (c.type === 'text') {
401
- blocks.push({ type: 'text', text: c.text });
402
- }
403
- else if (c.type === 'tool_use') {
404
- blocks.push({
405
- type: 'tool_use',
406
- id: c.id,
407
- name: c.name,
408
- input: c.input ?? {},
409
- });
410
- }
411
- else if (c.type === 'mcp_tool_use') {
412
- blocks.push({
413
- type: 'mcp_tool_use',
414
- id: c.id,
415
- name: c.name,
416
- server_name: c.server_name,
417
- input: c.input ?? {},
418
- });
419
- }
420
- else if (c.type === 'tool_result') {
421
- blocks.push({
422
- type: 'tool_result',
423
- tool_use_id: c.tool_use_id,
424
- content: c.content ?? '',
425
- });
426
- }
427
- else if (c.type === 'mcp_tool_result') {
428
- blocks.push({
429
- type: 'mcp_tool_result',
430
- tool_use_id: c.tool_use_id,
431
- is_error: c.is_error ?? false,
432
- content: c.content ?? [],
433
- });
434
- }
435
- });
436
- return {
437
- blocks,
438
- stop_reason: blocks.some((b) => b.type === 'tool_use' || b.type === 'mcp_tool_use')
439
- ? 'tool_use'
440
- : 'end',
441
- };
442
- }
443
- /**
444
- * Process chat messages
445
- * @param messages Array of messages to send
446
- * @param stream Whether to stream the response
447
- * @param onPartial Callback to receive each part of streaming response
448
- * @param maxTokens Maximum tokens for response (optional)
449
- * @returns ToolChatCompletion
450
- */
451
- async chatOnce(messages, stream = true, onPartial = () => { }, maxTokens) {
452
- const res = await this.callClaude(messages, this.model, stream, maxTokens);
453
- const internalResult = stream
454
- ? await this.parseStream(res, onPartial)
455
- : this.parseOneShot(await res.json());
456
- // Convert ClaudeInternalCompletion to ToolChatCompletion for compatibility
457
- return this.convertToStandardCompletion(internalResult);
458
- }
459
- /**
460
- * Process vision chat messages
461
- * @param messages Array of messages to send
462
- * @param stream Whether to stream the response
463
- * @param onPartial Callback to receive each part of streaming response
464
- * @param maxTokens Maximum tokens for response (optional)
465
- * @returns ToolChatCompletion
466
- */
467
- async visionChatOnce(messages, stream = false, onPartial = () => { }, maxTokens) {
468
- const res = await this.callClaude(messages, this.visionModel, stream, maxTokens);
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
- };
491
- }
492
- }
493
- //# sourceMappingURL=ClaudeChatService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClaudeChatService.js","sourceRoot":"","sources":["../../../../../src/services/chat/providers/claude/ClaudeChatService.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { ChatService } from '../../ChatService';
2
- import { ChatServiceOptions, ChatServiceProvider } from '../ChatServiceProvider';
3
- /**
4
- * Claude API provider implementation
5
- */
6
- export declare class ClaudeChatServiceProvider implements ChatServiceProvider {
7
- /**
8
- * Create a chat service instance
9
- * @param options Service options (can include mcpServers)
10
- * @returns ClaudeChatService instance
11
- */
12
- createChatService(options: ChatServiceOptions): ChatService;
13
- /**
14
- * Get the provider name
15
- * @returns Provider name ('claude')
16
- */
17
- getProviderName(): string;
18
- /**
19
- * Get the list of supported models
20
- * @returns Array of supported model names
21
- */
22
- getSupportedModels(): string[];
23
- /**
24
- * Get the default model
25
- * @returns Default model name
26
- */
27
- getDefaultModel(): string;
28
- /**
29
- * Check if this provider supports vision (image processing)
30
- * @returns Vision support status (true)
31
- */
32
- supportsVision(): boolean;
33
- /**
34
- * Check if a specific model supports vision capabilities
35
- * @param model The model name to check
36
- * @returns True if the model supports vision, false otherwise
37
- */
38
- supportsVisionForModel(model: string): boolean;
39
- }
@@ -1,62 +0,0 @@
1
- import { MODEL_CLAUDE_3_HAIKU, MODEL_CLAUDE_3_5_HAIKU, MODEL_CLAUDE_3_5_SONNET, MODEL_CLAUDE_3_7_SONNET, CLAUDE_VISION_SUPPORTED_MODELS, } from '../../../../constants';
2
- import { ClaudeChatService } from './ClaudeChatService';
3
- /**
4
- * Claude API provider implementation
5
- */
6
- export class ClaudeChatServiceProvider {
7
- /**
8
- * Create a chat service instance
9
- * @param options Service options (can include mcpServers)
10
- * @returns ClaudeChatService instance
11
- */
12
- createChatService(options) {
13
- // Use the visionModel if provided, otherwise use the model that supports vision
14
- const visionModel = options.visionModel ||
15
- (this.supportsVisionForModel(options.model || this.getDefaultModel())
16
- ? options.model
17
- : this.getDefaultModel());
18
- return new ClaudeChatService(options.apiKey, options.model || this.getDefaultModel(), visionModel, options.tools ?? [], options.mcpServers ?? []);
19
- }
20
- /**
21
- * Get the provider name
22
- * @returns Provider name ('claude')
23
- */
24
- getProviderName() {
25
- return 'claude';
26
- }
27
- /**
28
- * Get the list of supported models
29
- * @returns Array of supported model names
30
- */
31
- getSupportedModels() {
32
- return [
33
- MODEL_CLAUDE_3_HAIKU,
34
- MODEL_CLAUDE_3_5_HAIKU,
35
- MODEL_CLAUDE_3_5_SONNET,
36
- MODEL_CLAUDE_3_7_SONNET,
37
- ];
38
- }
39
- /**
40
- * Get the default model
41
- * @returns Default model name
42
- */
43
- getDefaultModel() {
44
- return MODEL_CLAUDE_3_HAIKU;
45
- }
46
- /**
47
- * Check if this provider supports vision (image processing)
48
- * @returns Vision support status (true)
49
- */
50
- supportsVision() {
51
- return true;
52
- }
53
- /**
54
- * Check if a specific model supports vision capabilities
55
- * @param model The model name to check
56
- * @returns True if the model supports vision, false otherwise
57
- */
58
- supportsVisionForModel(model) {
59
- return CLAUDE_VISION_SUPPORTED_MODELS.includes(model);
60
- }
61
- }
62
- //# sourceMappingURL=ClaudeChatServiceProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClaudeChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/chat/providers/claude/ClaudeChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,GAC/B,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,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,OAAO,CAAC,KAAK,IAAI,EAAE,EAClB,OAAe,CAAC,UAAU,IAAI,EAAE,CAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO;YACL,oBAAoB;YACpB,sBAAsB;YACtB,uBAAuB;YACvB,uBAAuB;SACxB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,8BAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;CACF"}