solver-sdk 2.0.2 → 2.1.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/dist/cjs/api/chat-api/index.js +205 -171
- package/dist/cjs/api/chat-api/index.js.map +1 -1
- package/dist/cjs/api/chat-api/models.js +1 -1
- package/dist/cjs/api/chat-api/stream-utils.js +139 -151
- package/dist/cjs/api/chat-api/stream-utils.js.map +1 -1
- package/dist/cjs/constants/websocket-events.constants.js +1 -1
- package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/message-helpers.js +212 -0
- package/dist/cjs/utils/message-helpers.js.map +1 -0
- package/dist/cjs/ws/filesystem-ws-client.js +0 -10
- package/dist/cjs/ws/filesystem-ws-client.js.map +1 -1
- package/dist/esm/api/chat-api/index.js +207 -151
- package/dist/esm/api/chat-api/index.js.map +1 -1
- package/dist/esm/api/chat-api/models.js +1 -1
- package/dist/esm/api/chat-api/stream-utils.js +139 -151
- package/dist/esm/api/chat-api/stream-utils.js.map +1 -1
- package/dist/esm/constants/websocket-events.constants.js +1 -1
- package/dist/esm/constants/websocket-events.constants.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/message-helpers.js +199 -0
- package/dist/esm/utils/message-helpers.js.map +1 -0
- package/dist/esm/ws/filesystem-ws-client.js +0 -10
- package/dist/esm/ws/filesystem-ws-client.js.map +1 -1
- package/dist/types/api/chat-api/index.d.ts +23 -8
- package/dist/types/api/chat-api/index.d.ts.map +1 -1
- package/dist/types/api/chat-api/interfaces.d.ts +125 -8
- package/dist/types/api/chat-api/interfaces.d.ts.map +1 -1
- package/dist/types/api/chat-api/models.d.ts +163 -43
- package/dist/types/api/chat-api/models.d.ts.map +1 -1
- package/dist/types/api/chat-api/stream-utils.d.ts +19 -16
- package/dist/types/api/chat-api/stream-utils.d.ts.map +1 -1
- package/dist/types/constants/websocket-events.constants.d.ts +2 -2
- package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/message-helpers.d.ts +84 -0
- package/dist/types/utils/message-helpers.d.ts.map +1 -0
- package/dist/types/ws/filesystem-ws-client.d.ts +0 -2
- package/dist/types/ws/filesystem-ws-client.d.ts.map +1 -1
- package/docs/API_REFERENCE.md +38 -166
- package/docs/AUTHENTICATION.md +37 -59
- package/docs/ERROR_HANDLING.md +124 -191
- package/docs/INTEGRATION_EXAMPLES.md +38 -52
- package/docs/PING_PONG.md +79 -178
- package/docs/README.md +7 -3
- package/docs/WEBSOCKET.md +66 -37
- package/package.json +7 -2
- package/docs/advanced/PING_PONG.md +0 -212
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-ws-client.js","sourceRoot":"","sources":["../../../src/ws/filesystem-ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAuCpC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,mBAAmB;
|
|
1
|
+
{"version":3,"file":"filesystem-ws-client.js","sourceRoot":"","sources":["../../../src/ws/filesystem-ws-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* API для работы с чатом
|
|
2
|
+
* API для работы с чатом с поддержкой Anthropic Extended Thinking
|
|
3
3
|
*/
|
|
4
4
|
import { IHttpClient } from '../../interfaces/http-client';
|
|
5
5
|
import { ChatService } from './interfaces';
|
|
@@ -7,7 +7,7 @@ import { ChatMessage, ChatOptions, ChatResponse, ChatStreamChunk, ChatStreamOpti
|
|
|
7
7
|
export * from './models';
|
|
8
8
|
export * from './interfaces';
|
|
9
9
|
/**
|
|
10
|
-
* API для работы с чатом
|
|
10
|
+
* API для работы с чатом с поддержкой Anthropic Extended Thinking
|
|
11
11
|
*/
|
|
12
12
|
export declare class ChatApi implements ChatService {
|
|
13
13
|
private readonly httpClient;
|
|
@@ -58,24 +58,39 @@ export declare class ChatApi implements ChatService {
|
|
|
58
58
|
*/
|
|
59
59
|
streamChat(messages: ChatMessage[], options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
|
|
60
60
|
/**
|
|
61
|
-
* Отправляет запрос
|
|
61
|
+
* Отправляет одиночный запрос в потоковом режиме
|
|
62
62
|
* @param {string} prompt Запрос к модели
|
|
63
63
|
* @param {ChatStreamOptions} [options] Дополнительные параметры
|
|
64
64
|
* @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
|
|
65
65
|
*/
|
|
66
66
|
streamPrompt(prompt: string, options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
69
|
-
* @returns {Promise<WebSocketConnectResponse>} Информация о
|
|
68
|
+
* Подключается к WebSocket для потоковой обработки
|
|
69
|
+
* @returns {Promise<WebSocketConnectResponse>} Информация о подключении
|
|
70
70
|
*/
|
|
71
71
|
connectWebSocket(): Promise<WebSocketConnectResponse>;
|
|
72
72
|
/**
|
|
73
|
-
* Отправляет сообщение в чат
|
|
73
|
+
* Отправляет сообщение в чат с поддержкой thinking через WebSocket
|
|
74
74
|
* @param {ChatMessage[]} messages Массив сообщений для отправки
|
|
75
75
|
* @param {ChatStreamOptions} [options] Дополнительные параметры
|
|
76
|
-
* @param {EventHandler} [onEvent] Обработчик событий
|
|
77
|
-
* @returns {Promise<ThinkingStreamResponse>} Информация о
|
|
76
|
+
* @param {EventHandler} [onEvent] Обработчик событий
|
|
77
|
+
* @returns {Promise<ThinkingStreamResponse>} Информация о запуске потоковой передачи
|
|
78
78
|
*/
|
|
79
79
|
streamChatWithThinking(messages: ChatMessage[], options?: ChatStreamOptions, onEvent?: EventHandler): Promise<ThinkingStreamResponse>;
|
|
80
|
+
/**
|
|
81
|
+
* Валидирует опции чата согласно документации Anthropic
|
|
82
|
+
* @private
|
|
83
|
+
*/
|
|
84
|
+
private validateChatOptions;
|
|
85
|
+
/**
|
|
86
|
+
* Строит параметры запроса для API
|
|
87
|
+
* @private
|
|
88
|
+
*/
|
|
89
|
+
private buildRequestParams;
|
|
90
|
+
/**
|
|
91
|
+
* Конвертирует ответ API в ChatStreamChunk
|
|
92
|
+
* @private
|
|
93
|
+
*/
|
|
94
|
+
private convertToStreamChunk;
|
|
80
95
|
}
|
|
81
96
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EAKb,MAAM,UAAU,CAAC;AAKlB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,qBAAa,OAAQ,YAAW,WAAW;IAK7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJvC;;;OAGG;gBAC0B,UAAU,EAAE,WAAW;IAEpD;;;;;OAKG;IACU,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBxF;;;;;OAKG;IACU,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAMlG;;;OAGG;IACU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAalD;;;;;;OAMG;IACU,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA+D1G;;;;;OAKG;IACU,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBjG;;;;;OAKG;IACW,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,eAAe,CAAC;IAkF/G;;;;;OAKG;IACW,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,eAAe,CAAC;IAQxG;;;OAGG;IACU,gBAAgB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAMlE;;;;;;OAMG;IACU,sBAAsB,CACjC,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,iBAAsB,EAC/B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,sBAAsB,CAAC;IAsClC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsC3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAmE1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CA0B7B"}
|
|
@@ -1,47 +1,164 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Интерфейсы сервисов для модуля чат-API
|
|
3
3
|
*/
|
|
4
|
-
import { ChatMessage, ChatOptions, ChatResponse, ChatStreamChunk, ChatStreamOptions, ThinkingStreamResponse, WebSocketConnectResponse, EventHandler } from './models';
|
|
4
|
+
import { ChatMessage, ChatOptions, ChatResponse, ChatStreamChunk, ChatStreamOptions, ThinkingStreamResponse, WebSocketConnectResponse, EventHandler, Tool, ThinkingConfig } from './models';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Интерфейсы для работы с чатом с поддержкой Anthropic Extended Thinking
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Интерфейс сервиса для работы с чатом
|
|
7
10
|
*/
|
|
8
11
|
export interface ChatService {
|
|
9
12
|
/**
|
|
10
13
|
* Отправляет сообщение в чат и получает ответ от модели
|
|
14
|
+
* @param messages Массив сообщений для отправки
|
|
15
|
+
* @param options Дополнительные параметры
|
|
16
|
+
* @returns Ответ модели
|
|
11
17
|
*/
|
|
12
18
|
chat(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>;
|
|
13
19
|
/**
|
|
14
20
|
* Алиас для метода chat для совместимости с другими SDK
|
|
21
|
+
* @param messages Массив сообщений для отправки
|
|
22
|
+
* @param options Дополнительные параметры
|
|
23
|
+
* @returns Ответ модели
|
|
15
24
|
*/
|
|
16
25
|
chatCompletion(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>;
|
|
17
26
|
/**
|
|
18
27
|
* Проверяет доступность API чата
|
|
28
|
+
* @returns Результат проверки
|
|
19
29
|
*/
|
|
20
30
|
checkAvailability(): Promise<boolean>;
|
|
21
31
|
/**
|
|
22
|
-
* Отправляет сообщение в чат
|
|
23
|
-
*
|
|
32
|
+
* Отправляет сообщение в чат с автоматическим переключением регионов
|
|
33
|
+
* @param messages Массив сообщений для отправки
|
|
34
|
+
* @param options Дополнительные параметры
|
|
35
|
+
* @returns Ответ модели
|
|
24
36
|
*/
|
|
25
37
|
chatWithRegionFailover(messages: ChatMessage[], options?: ChatOptions): Promise<ChatResponse>;
|
|
26
38
|
/**
|
|
27
|
-
* Отправляет одиночный запрос
|
|
39
|
+
* Отправляет одиночный запрос с автоматическим переключением регионов
|
|
40
|
+
* @param prompt Запрос к модели
|
|
41
|
+
* @param options Дополнительные параметры
|
|
42
|
+
* @returns Текстовый ответ модели
|
|
28
43
|
*/
|
|
29
44
|
sendPromptWithRegionFailover(prompt: string, options?: ChatOptions): Promise<string>;
|
|
30
45
|
/**
|
|
31
46
|
* Отправляет сообщение в чат в потоковом режиме
|
|
47
|
+
* @param messages Массив сообщений для отправки
|
|
48
|
+
* @param options Дополнительные параметры для потоковой передачи
|
|
49
|
+
* @returns Асинхронный генератор чанков ответа
|
|
32
50
|
*/
|
|
33
51
|
streamChat(messages: ChatMessage[], options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
|
|
34
52
|
/**
|
|
35
|
-
* Отправляет запрос
|
|
53
|
+
* Отправляет одиночный запрос в потоковом режиме
|
|
54
|
+
* @param prompt Запрос к модели
|
|
55
|
+
* @param options Дополнительные параметры для потоковой передачи
|
|
56
|
+
* @returns Асинхронный генератор чанков ответа
|
|
36
57
|
*/
|
|
37
58
|
streamPrompt(prompt: string, options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
|
|
38
59
|
/**
|
|
39
|
-
*
|
|
60
|
+
* Подключается к WebSocket для потоковой обработки
|
|
61
|
+
* @returns Информация о подключении
|
|
40
62
|
*/
|
|
41
63
|
connectWebSocket(): Promise<WebSocketConnectResponse>;
|
|
42
64
|
/**
|
|
43
|
-
* Отправляет сообщение в чат
|
|
65
|
+
* Отправляет сообщение в чат с поддержкой thinking через WebSocket
|
|
66
|
+
* @param messages Массив сообщений для отправки
|
|
67
|
+
* @param options Дополнительные параметры для потоковой передачи
|
|
68
|
+
* @param onEvent Обработчик событий WebSocket
|
|
69
|
+
* @returns Информация о запуске потоковой передачи
|
|
44
70
|
*/
|
|
45
71
|
streamChatWithThinking(messages: ChatMessage[], options?: ChatStreamOptions, onEvent?: EventHandler): Promise<ThinkingStreamResponse>;
|
|
46
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Интерфейс для работы с инструментами
|
|
75
|
+
*/
|
|
76
|
+
export interface ToolsService {
|
|
77
|
+
/**
|
|
78
|
+
* Создает инструмент для использования с моделью
|
|
79
|
+
* @param name Название инструмента
|
|
80
|
+
* @param description Описание функциональности
|
|
81
|
+
* @param inputSchema Схема входных параметров
|
|
82
|
+
* @returns Объект инструмента
|
|
83
|
+
*/
|
|
84
|
+
createTool(name: string, description: string, inputSchema: object): Tool;
|
|
85
|
+
/**
|
|
86
|
+
* Валидирует конфигурацию инструментов
|
|
87
|
+
* @param tools Массив инструментов
|
|
88
|
+
* @param toolChoice Настройки выбора инструментов
|
|
89
|
+
* @param thinking Конфигурация мышления
|
|
90
|
+
* @returns Результат валидации
|
|
91
|
+
*/
|
|
92
|
+
validateToolsConfig(tools: Tool[], toolChoice?: string, thinking?: ThinkingConfig | boolean): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Обрабатывает результат выполнения инструмента
|
|
95
|
+
* @param toolUseId ID вызова инструмента
|
|
96
|
+
* @param result Результат выполнения
|
|
97
|
+
* @param isError Флаг ошибки
|
|
98
|
+
* @returns Объект результата для API
|
|
99
|
+
*/
|
|
100
|
+
formatToolResult(toolUseId: string, result: any, isError?: boolean): object;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Интерфейс для управления конфигурацией мышления
|
|
104
|
+
*/
|
|
105
|
+
export interface ThinkingConfigService {
|
|
106
|
+
/**
|
|
107
|
+
* Создает стандартную конфигурацию мышления
|
|
108
|
+
* @param budgetTokens Бюджет токенов (по умолчанию 4000)
|
|
109
|
+
* @returns Конфигурация мышления
|
|
110
|
+
*/
|
|
111
|
+
createStandardConfig(budgetTokens?: number): ThinkingConfig;
|
|
112
|
+
/**
|
|
113
|
+
* Создает конфигурацию мышления для разных уровней детализации
|
|
114
|
+
* @param level Уровень детализации ('concise' | 'standard' | 'detailed' | 'verbose')
|
|
115
|
+
* @returns Конфигурация мышления
|
|
116
|
+
*/
|
|
117
|
+
createConfigByLevel(level: 'concise' | 'standard' | 'detailed' | 'verbose'): ThinkingConfig;
|
|
118
|
+
/**
|
|
119
|
+
* Валидирует конфигурацию мышления
|
|
120
|
+
* @param config Конфигурация для валидации
|
|
121
|
+
* @returns Результат валидации
|
|
122
|
+
*/
|
|
123
|
+
validateConfig(config: ThinkingConfig | boolean): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Преобразует legacy формат thinking в новый
|
|
126
|
+
* @param thinking Legacy формат thinking
|
|
127
|
+
* @returns Новая конфигурация мышления
|
|
128
|
+
*/
|
|
129
|
+
convertLegacyThinking(thinking: boolean): ThinkingConfig | undefined;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Интерфейс для управления WebSocket соединениями
|
|
133
|
+
*/
|
|
134
|
+
export interface WebSocketService {
|
|
135
|
+
/**
|
|
136
|
+
* Подключается к WebSocket серверу
|
|
137
|
+
* @param namespace Пространство имен
|
|
138
|
+
* @param options Опции подключения
|
|
139
|
+
* @returns Информация о подключении
|
|
140
|
+
*/
|
|
141
|
+
connect(namespace: string, options?: {
|
|
142
|
+
socketId?: string;
|
|
143
|
+
authToken?: string;
|
|
144
|
+
}): Promise<WebSocketConnectResponse>;
|
|
145
|
+
/**
|
|
146
|
+
* Отключается от WebSocket сервера
|
|
147
|
+
* @param socketId ID сокета для отключения
|
|
148
|
+
*/
|
|
149
|
+
disconnect(socketId: string): Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* Настраивает обработчики событий
|
|
152
|
+
* @param socketId ID сокета
|
|
153
|
+
* @param eventHandler Обработчик событий
|
|
154
|
+
*/
|
|
155
|
+
setupEventHandlers(socketId: string, eventHandler: EventHandler): void;
|
|
156
|
+
/**
|
|
157
|
+
* Отправляет событие через WebSocket
|
|
158
|
+
* @param socketId ID сокета
|
|
159
|
+
* @param event Название события
|
|
160
|
+
* @param data Данные события
|
|
161
|
+
*/
|
|
162
|
+
emit(socketId: string, event: string, data: any): void;
|
|
163
|
+
}
|
|
47
164
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +1,199 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Модели данных для чат-API
|
|
2
|
+
* Модели данных для чат-API с поддержкой Anthropic Extended Thinking
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Конфигурация расширенного мышления (соответствует API Anthropic)
|
|
6
|
+
*/
|
|
7
|
+
export interface ThinkingConfig {
|
|
8
|
+
/** Тип мышления - всегда 'enabled' для активации */
|
|
9
|
+
type: 'enabled';
|
|
10
|
+
/** Бюджет токенов для мышления (минимум 1024) */
|
|
11
|
+
budget_tokens: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Схема входных данных для инструмента
|
|
15
|
+
*/
|
|
16
|
+
export interface ToolInputSchema {
|
|
17
|
+
type: 'object';
|
|
18
|
+
properties: Record<string, any>;
|
|
19
|
+
required?: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Определение инструмента для модели
|
|
23
|
+
*/
|
|
24
|
+
export interface Tool {
|
|
25
|
+
/** Название инструмента */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Описание функциональности инструмента */
|
|
28
|
+
description: string;
|
|
29
|
+
/** Схема входных параметров */
|
|
30
|
+
input_schema: ToolInputSchema;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Настройки выбора инструментов (согласно документации Anthropic)
|
|
34
|
+
*/
|
|
35
|
+
export type ToolChoice = {
|
|
36
|
+
type: 'auto';
|
|
37
|
+
} | {
|
|
38
|
+
type: 'none';
|
|
39
|
+
} | {
|
|
40
|
+
type: 'any';
|
|
41
|
+
} | {
|
|
42
|
+
type: 'tool';
|
|
43
|
+
name: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Блок содержимого в сообщении
|
|
47
|
+
*/
|
|
48
|
+
export interface ContentBlock {
|
|
49
|
+
/** Тип блока содержимого */
|
|
50
|
+
type: 'text' | 'thinking' | 'redacted_thinking' | 'tool_use' | 'tool_result';
|
|
51
|
+
/** Текстовое содержимое (для type: 'text') */
|
|
52
|
+
text?: string;
|
|
53
|
+
/** Содержимое мышления (для type: 'thinking') */
|
|
54
|
+
thinking?: string;
|
|
55
|
+
/** Криптографическая подпись для верификации (для type: 'thinking') */
|
|
56
|
+
signature?: string;
|
|
57
|
+
/** Зашифрованные данные (для type: 'redacted_thinking') */
|
|
58
|
+
data?: string;
|
|
59
|
+
/** ID вызова инструмента (для type: 'tool_use') */
|
|
60
|
+
id?: string;
|
|
61
|
+
/** Название инструмента (для type: 'tool_use') */
|
|
62
|
+
name?: string;
|
|
63
|
+
/** Входные параметры инструмента (для type: 'tool_use') */
|
|
64
|
+
input?: Record<string, any>;
|
|
65
|
+
/** ID вызова инструмента для результата (для type: 'tool_result') */
|
|
66
|
+
tool_use_id?: string;
|
|
67
|
+
/** Содержимое результата инструмента (для type: 'tool_result') */
|
|
68
|
+
content?: string | ContentBlock[];
|
|
69
|
+
/** Флаг ошибки в результате инструмента (для type: 'tool_result') */
|
|
70
|
+
is_error?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Сообщение в чате с поддержкой complex content
|
|
6
74
|
*/
|
|
7
75
|
export interface ChatMessage {
|
|
8
|
-
/** Роль отправителя сообщения
|
|
9
|
-
role: 'system' | 'user' | 'assistant'
|
|
10
|
-
/** Содержимое сообщения */
|
|
11
|
-
content: string;
|
|
12
|
-
/**
|
|
76
|
+
/** Роль отправителя сообщения */
|
|
77
|
+
role: 'system' | 'user' | 'assistant';
|
|
78
|
+
/** Содержимое сообщения - строка или массив блоков содержимого */
|
|
79
|
+
content: string | ContentBlock[];
|
|
80
|
+
/** Имя отправителя (опционально) */
|
|
13
81
|
name?: string;
|
|
14
82
|
}
|
|
15
83
|
/**
|
|
16
84
|
* Опции для запроса в чат
|
|
17
85
|
*/
|
|
18
86
|
export interface ChatOptions {
|
|
19
|
-
/** Название модели (по умолчанию '
|
|
87
|
+
/** Название модели (по умолчанию 'claude-sonnet-4-20250514') */
|
|
20
88
|
model?: string;
|
|
21
|
-
/** Температура генерации (0-1) */
|
|
89
|
+
/** Температура генерации (0-1, не поддерживается с thinking) */
|
|
22
90
|
temperature?: number;
|
|
23
91
|
/** Максимальное количество токенов в ответе */
|
|
24
|
-
|
|
92
|
+
max_tokens?: number;
|
|
25
93
|
/** Последовательности для остановки генерации */
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
/** Регион API Anthropic
|
|
94
|
+
stop_sequences?: string[];
|
|
95
|
+
/** Конфигурация расширенного мышления */
|
|
96
|
+
thinking?: ThinkingConfig | boolean;
|
|
97
|
+
/** Список доступных инструментов */
|
|
98
|
+
tools?: Tool[];
|
|
99
|
+
/** Настройки выбора инструментов (только 'auto' и 'none' поддерживаются с thinking) */
|
|
100
|
+
tool_choice?: ToolChoice;
|
|
101
|
+
/** Бета-функции (для чередующегося мышления) */
|
|
102
|
+
beta?: 'interleaved-thinking-2025-05-14';
|
|
103
|
+
/** Регион API Anthropic */
|
|
36
104
|
region?: 'us-east-1' | 'eu-west-1' | 'ap-southeast-2';
|
|
37
|
-
/** Системная инструкция
|
|
38
|
-
|
|
105
|
+
/** Системная инструкция */
|
|
106
|
+
system?: string;
|
|
39
107
|
/** ID сокета для WebSocket соединения */
|
|
40
108
|
socketId?: string;
|
|
109
|
+
/** Флаг потоковой передачи */
|
|
110
|
+
stream?: boolean;
|
|
111
|
+
/** top_p параметр (от 0.95 до 1 с thinking) */
|
|
112
|
+
top_p?: number;
|
|
41
113
|
/** Дополнительные опции модели */
|
|
42
114
|
[key: string]: any;
|
|
43
115
|
}
|
|
44
116
|
/**
|
|
45
|
-
*
|
|
117
|
+
* Ответ модели на запрос в чате
|
|
46
118
|
*/
|
|
47
|
-
export interface
|
|
48
|
-
/**
|
|
49
|
-
|
|
119
|
+
export interface ChatResponse {
|
|
120
|
+
/** ID сообщения */
|
|
121
|
+
id: string;
|
|
122
|
+
/** Тип ответа */
|
|
123
|
+
type: 'message';
|
|
124
|
+
/** Роль - всегда 'assistant' */
|
|
125
|
+
role: 'assistant';
|
|
126
|
+
/** Содержимое ответа - массив блоков */
|
|
127
|
+
content: ContentBlock[];
|
|
128
|
+
/** Модель, которая сгенерировала ответ */
|
|
129
|
+
model: string;
|
|
130
|
+
/** Причина завершения генерации */
|
|
131
|
+
stop_reason: 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use' | null;
|
|
132
|
+
/** Последовательность остановки, если применимо */
|
|
133
|
+
stop_sequence: string | null;
|
|
134
|
+
/** Информация об использовании токенов */
|
|
135
|
+
usage?: {
|
|
136
|
+
input_tokens: number;
|
|
137
|
+
output_tokens: number;
|
|
138
|
+
};
|
|
50
139
|
}
|
|
51
140
|
/**
|
|
52
|
-
*
|
|
141
|
+
* Дельта события для потоковой передачи мышления
|
|
53
142
|
*/
|
|
54
|
-
export interface
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
/** Причина завершения генерации */
|
|
58
|
-
finish_reason: string;
|
|
59
|
-
/** Ход размышлений модели (доступен, если был запрошен режим thinking) */
|
|
60
|
-
thinking?: string;
|
|
61
|
-
/** Криптографическая подпись блока thinking для верификации */
|
|
62
|
-
thinking_signature?: string;
|
|
143
|
+
export interface ThinkingDelta {
|
|
144
|
+
type: 'thinking_delta';
|
|
145
|
+
thinking: string;
|
|
63
146
|
}
|
|
64
147
|
/**
|
|
65
|
-
*
|
|
148
|
+
* Дельта события для потоковой передачи текста
|
|
66
149
|
*/
|
|
67
|
-
export interface
|
|
68
|
-
|
|
69
|
-
|
|
150
|
+
export interface TextDelta {
|
|
151
|
+
type: 'text_delta';
|
|
152
|
+
text: string;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Дельта события для потоковой передачи подписи
|
|
156
|
+
*/
|
|
157
|
+
export interface SignatureDelta {
|
|
158
|
+
type: 'signature_delta';
|
|
159
|
+
signature: string;
|
|
70
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Дельта события для потоковой передачи зашифрованного мышления
|
|
163
|
+
*/
|
|
164
|
+
export interface RedactedThinkingDelta {
|
|
165
|
+
type: 'redacted_thinking_delta';
|
|
166
|
+
data: string;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Дельта события для потоковой передачи JSON входных данных инструмента
|
|
170
|
+
*/
|
|
171
|
+
export interface InputJsonDelta {
|
|
172
|
+
type: 'input_json_delta';
|
|
173
|
+
input_json: string;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Объединенный тип дельта событий
|
|
177
|
+
*/
|
|
178
|
+
export type ContentDelta = ThinkingDelta | TextDelta | SignatureDelta | RedactedThinkingDelta | InputJsonDelta;
|
|
71
179
|
/**
|
|
72
180
|
* Чанк потоковой передачи ответа от модели
|
|
73
181
|
*/
|
|
74
182
|
export interface ChatStreamChunk {
|
|
75
|
-
/**
|
|
76
|
-
|
|
183
|
+
/** Тип события */
|
|
184
|
+
type: 'message_start' | 'content_block_start' | 'content_block_delta' | 'content_block_stop' | 'message_delta' | 'message_stop';
|
|
185
|
+
/** Данные события */
|
|
186
|
+
message?: Partial<ChatResponse>;
|
|
187
|
+
/** Индекс блока содержимого */
|
|
188
|
+
index?: number;
|
|
189
|
+
/** Блок содержимого для content_block_start */
|
|
190
|
+
content_block?: ContentBlock;
|
|
191
|
+
/** Дельта изменений для content_block_delta */
|
|
192
|
+
delta?: ContentDelta;
|
|
193
|
+
/** Текст чанка (для совместимости) */
|
|
194
|
+
text?: string;
|
|
77
195
|
/** Признак завершения потока */
|
|
78
|
-
isComplete
|
|
196
|
+
isComplete?: boolean;
|
|
79
197
|
/** Признак, что текущий чанк является частью размышлений модели */
|
|
80
198
|
isThinking?: boolean;
|
|
81
199
|
/** Полный текст размышлений (доступен только в финальном чанке) */
|
|
@@ -97,6 +215,8 @@ export interface ChatStreamOptions extends ChatOptions {
|
|
|
97
215
|
authToken?: string;
|
|
98
216
|
/** ID сессии для отслеживания контекста между запросами */
|
|
99
217
|
sessionId?: string;
|
|
218
|
+
/** Флаг принудительной потоковой передачи (требуется когда max_tokens > 21333) */
|
|
219
|
+
stream?: true;
|
|
100
220
|
}
|
|
101
221
|
/**
|
|
102
222
|
* Ответ на запрос инициализации WebSocket соединения
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Утилиты для обработки потоковых данных от API
|
|
3
|
-
*
|
|
4
|
-
* Этот модуль отвечает за обработку потока событий в формате SSE (Server-Sent Events),
|
|
5
|
-
* который приходит от API моделей искусственного интеллекта (Anthropic Claude).
|
|
6
|
-
*
|
|
7
|
-
* Поток данных:
|
|
8
|
-
* 1. API моделей отправляет события в формате SSE с префиксом 'data:'
|
|
9
|
-
* 2. События обрабатываются построчно в функции processStreamChunk
|
|
10
|
-
* 3. Выделяются типы событий: content_block_*
|
|
11
|
-
* 4. Все события преобразуются в структурированный формат ChatStreamChunk
|
|
12
|
-
* 5. Содержимое блоков мышления и основного текста накапливается отдельно
|
|
13
|
-
* 6. Ошибки потока обрабатываются с дополнительной логикой для геоограничений API
|
|
2
|
+
* Утилиты для обработки потоковых данных от API чата
|
|
14
3
|
*/
|
|
15
4
|
import { ChatStreamChunk } from './models';
|
|
16
5
|
/**
|
|
17
|
-
*
|
|
6
|
+
* Интерфейс для результата обработки чанка потока
|
|
18
7
|
*/
|
|
19
|
-
|
|
8
|
+
interface StreamChunkResult {
|
|
20
9
|
isInThinkingBlock: boolean;
|
|
21
10
|
thinkingContent: string;
|
|
22
11
|
textContent: string;
|
|
23
12
|
thinkingSignature: string;
|
|
24
13
|
chunk?: ChatStreamChunk;
|
|
25
14
|
isDone: boolean;
|
|
26
|
-
}
|
|
15
|
+
}
|
|
27
16
|
/**
|
|
28
|
-
* Обрабатывает
|
|
17
|
+
* Обрабатывает строку данных из SSE потока
|
|
18
|
+
* @param line Строка данных из потока
|
|
19
|
+
* @param isInThinkingBlock Флаг нахождения в блоке мышления
|
|
20
|
+
* @param thinkingContent Накопленное содержимое мышления
|
|
21
|
+
* @param textContent Накопленное текстовое содержимое
|
|
22
|
+
* @param thinkingSignature Подпись блока мышления
|
|
23
|
+
* @param onToken Обработчик получения токена
|
|
24
|
+
* @returns Результат обработки
|
|
25
|
+
*/
|
|
26
|
+
export declare function processStreamChunk(line: string, isInThinkingBlock: boolean, thinkingContent: string, textContent: string, thinkingSignature: string, onToken?: (token: string) => void): StreamChunkResult;
|
|
27
|
+
/**
|
|
28
|
+
* Обрабатывает ошибки потоковой передачи
|
|
29
|
+
* @param error Ошибка
|
|
30
|
+
* @returns Обработанная ошибка
|
|
29
31
|
*/
|
|
30
32
|
export declare function handleStreamError(error: any): Error;
|
|
33
|
+
export {};
|
|
31
34
|
//# sourceMappingURL=stream-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,UAAU,iBAAiB;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,OAAO,EAC1B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAChC,iBAAiB,CAyKnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAcnD"}
|
|
@@ -81,7 +81,7 @@ export declare enum WebSocketEvents {
|
|
|
81
81
|
BATCH_UPDATE = "batch_update",
|
|
82
82
|
SEARCH_UPDATE = "search_update",
|
|
83
83
|
CONNECTED = "connected",
|
|
84
|
-
PONG = "pong"
|
|
84
|
+
PONG = "pong",// Стандартное событие Socket.IO для pong
|
|
85
85
|
SERVER_EVENT = "server_event",
|
|
86
86
|
MESSAGE_START = "message_start",
|
|
87
87
|
MESSAGE_DELTA = "message_delta",
|
|
@@ -89,7 +89,7 @@ export declare enum WebSocketEvents {
|
|
|
89
89
|
CONTENT_BLOCK_START = "content_block_start",
|
|
90
90
|
CONTENT_BLOCK_DELTA = "content_block_delta",
|
|
91
91
|
CONTENT_BLOCK_STOP = "content_block_stop",
|
|
92
|
-
PING = "ping"
|
|
92
|
+
PING = "ping",// Стандартное событие Socket.IO для ping
|
|
93
93
|
ERROR = "error",
|
|
94
94
|
DONE = "done"
|
|
95
95
|
}
|