solver-sdk 10.0.1 → 10.2.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 (54) hide show
  1. package/README.md +214 -39
  2. package/dist/cjs/api/chat-api/stream-utils.js +103 -0
  3. package/dist/cjs/api/chat-api/stream-utils.js.map +1 -1
  4. package/dist/cjs/api/delta-chunking-api.js +5 -2
  5. package/dist/cjs/api/delta-chunking-api.js.map +1 -1
  6. package/dist/cjs/code-solver-sdk.js +6 -3
  7. package/dist/cjs/code-solver-sdk.js.map +1 -1
  8. package/dist/cjs/delta-chunking/delta-chunking-manager.js +12 -3
  9. package/dist/cjs/delta-chunking/delta-chunking-manager.js.map +1 -1
  10. package/dist/cjs/index.js +11 -1
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/utils/project-sync-client.js +116 -11
  13. package/dist/cjs/utils/project-sync-client.js.map +1 -1
  14. package/dist/esm/api/chat-api/stream-utils.js +100 -0
  15. package/dist/esm/api/chat-api/stream-utils.js.map +1 -1
  16. package/dist/esm/api/delta-chunking-api.js +5 -2
  17. package/dist/esm/api/delta-chunking-api.js.map +1 -1
  18. package/dist/esm/code-solver-sdk.js +6 -3
  19. package/dist/esm/code-solver-sdk.js.map +1 -1
  20. package/dist/esm/delta-chunking/delta-chunking-manager.js +12 -3
  21. package/dist/esm/delta-chunking/delta-chunking-manager.js.map +1 -1
  22. package/dist/esm/index.js +4 -0
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/utils/project-sync-client.js +116 -11
  25. package/dist/esm/utils/project-sync-client.js.map +1 -1
  26. package/dist/types/api/chat-api/stream-utils.d.ts +34 -0
  27. package/dist/types/api/chat-api/stream-utils.d.ts.map +1 -1
  28. package/dist/types/api/delta-chunking-api.d.ts +4 -1
  29. package/dist/types/api/delta-chunking-api.d.ts.map +1 -1
  30. package/dist/types/code-solver-sdk.d.ts +2 -2
  31. package/dist/types/code-solver-sdk.d.ts.map +1 -1
  32. package/dist/types/delta-chunking/delta-chunking-manager.d.ts +4 -1
  33. package/dist/types/delta-chunking/delta-chunking-manager.d.ts.map +1 -1
  34. package/dist/types/index.d.ts +2 -0
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/interfaces/sdk-options.d.ts +15 -0
  37. package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
  38. package/dist/types/types/delta-chunking.d.ts +5 -0
  39. package/dist/types/types/delta-chunking.d.ts.map +1 -1
  40. package/dist/types/utils/project-sync-client.d.ts +70 -3
  41. package/dist/types/utils/project-sync-client.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/cjs/utils/logger.js +0 -106
  44. package/dist/cjs/utils/logger.js.map +0 -1
  45. package/dist/cjs/utils/sse-client.js +0 -233
  46. package/dist/cjs/utils/sse-client.js.map +0 -1
  47. package/dist/esm/utils/logger.js +0 -101
  48. package/dist/esm/utils/logger.js.map +0 -1
  49. package/dist/esm/utils/sse-client.js +0 -229
  50. package/dist/esm/utils/sse-client.js.map +0 -1
  51. package/dist/types/utils/logger.d.ts +0 -62
  52. package/dist/types/utils/logger.d.ts.map +0 -1
  53. package/dist/types/utils/sse-client.d.ts +0 -92
  54. package/dist/types/utils/sse-client.d.ts.map +0 -1
@@ -1,229 +0,0 @@
1
- import { EventSourcePolyfill } from 'event-source-polyfill';
2
- // В браузере будем использовать нативный EventSource или полифилл
3
- const BrowserEventSource = typeof EventSource !== 'undefined' ? EventSource : EventSourcePolyfill;
4
- // Проверяем, находимся ли мы в браузере
5
- const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
6
- /**
7
- * Клиент для работы с Server-Sent Events (SSE)
8
- * Поддерживает работу как в браузере, так и в Node.js
9
- */
10
- export class SseClient {
11
- /**
12
- * Создает новый SSE клиент
13
- * @param {string} url URL для подключения
14
- * @param {SseClientOptions} [options] Опции клиента
15
- */
16
- constructor(url, options = {}) {
17
- /** Экземпляр EventSource */
18
- this.eventSource = null;
19
- /** Счетчик попыток переподключения */
20
- this.retryCount = 0;
21
- /** Флаг, указывающий, что соединение было закрыто намеренно */
22
- this.intentionallyClosed = false;
23
- /** Таймер переподключения */
24
- this.reconnectTimer = null;
25
- /** Таймер таймаута соединения */
26
- this.connectionTimeoutTimer = null;
27
- /** Обработчики событий */
28
- this.eventHandlers = {};
29
- this.url = url;
30
- this.options = {
31
- headers: options.headers || {},
32
- connectionTimeout: options.connectionTimeout || 30000,
33
- maxRetries: options.maxRetries || 5,
34
- retryDelay: options.retryDelay || 1000,
35
- maxRetryDelay: options.maxRetryDelay || 30000
36
- };
37
- }
38
- /**
39
- * Подключается к SSE эндпоинту
40
- * @returns {Promise<void>}
41
- */
42
- connect() {
43
- // Если соединение уже установлено, возвращаем Promise.resolve
44
- if (this.eventSource && this.eventSource.readyState === 1) {
45
- return Promise.resolve();
46
- }
47
- // Сбрасываем флаг намеренного закрытия
48
- this.intentionallyClosed = false;
49
- return new Promise((resolve, reject) => {
50
- try {
51
- // Создаем новый экземпляр EventSource
52
- const EventSourceImpl = isBrowser ? BrowserEventSource : require('eventsource');
53
- this.eventSource = new EventSourceImpl(this.url, {
54
- headers: this.options.headers,
55
- withCredentials: true
56
- });
57
- // Устанавливаем таймаут соединения
58
- this.connectionTimeoutTimer = setTimeout(() => {
59
- if (this.eventSource && this.eventSource.readyState !== 1) {
60
- reject(new Error('Таймаут подключения SSE'));
61
- this.close();
62
- }
63
- }, this.options.connectionTimeout);
64
- // Проверяем, что this.eventSource не null
65
- if (!this.eventSource) {
66
- reject(new Error('Не удалось создать EventSource'));
67
- return;
68
- }
69
- // Обработчик открытия соединения
70
- this.eventSource.onopen = () => {
71
- clearTimeout(this.connectionTimeoutTimer);
72
- this.retryCount = 0;
73
- resolve();
74
- this.dispatchEvent('open', {});
75
- };
76
- // Обработчик сообщений
77
- this.eventSource.onmessage = (event) => {
78
- try {
79
- const data = JSON.parse(event.data);
80
- this.dispatchEvent('message', data);
81
- // Также вызываем специальный обработчик для конкретного типа события,
82
- // если такой тип указан в данных
83
- if (data && data.type) {
84
- this.dispatchEvent(data.type, data);
85
- }
86
- }
87
- catch (error) {
88
- this.dispatchEvent('error', { error, message: 'Ошибка при обработке сообщения SSE' });
89
- }
90
- };
91
- // Обработчик ошибок
92
- this.eventSource.onerror = (error) => {
93
- clearTimeout(this.connectionTimeoutTimer);
94
- if (this.intentionallyClosed) {
95
- return;
96
- }
97
- // Если соединение уже установлено и произошла ошибка, просто сообщаем об ошибке
98
- if (this.eventSource && this.eventSource.readyState === 1) {
99
- this.dispatchEvent('error', { error, message: 'Ошибка SSE соединения' });
100
- return;
101
- }
102
- // Если это первая попытка подключения, отклоняем Promise
103
- if (this.retryCount === 0) {
104
- reject(new Error('Ошибка подключения SSE'));
105
- }
106
- // Запускаем процесс переподключения
107
- this.reconnect();
108
- };
109
- // Настраиваем обработчики для всех добавленных событий
110
- for (const eventType in this.eventHandlers) {
111
- if (eventType !== 'message' && eventType !== 'open' && eventType !== 'error') {
112
- this.eventSource.addEventListener(eventType, (event) => {
113
- try {
114
- const data = JSON.parse(event.data);
115
- this.dispatchEvent(eventType, data);
116
- }
117
- catch (e) {
118
- this.dispatchEvent(eventType, event.data);
119
- }
120
- });
121
- }
122
- }
123
- }
124
- catch (error) {
125
- reject(error);
126
- }
127
- });
128
- }
129
- /**
130
- * Закрывает SSE соединение
131
- */
132
- close() {
133
- this.intentionallyClosed = true;
134
- // Очищаем таймеры
135
- clearTimeout(this.reconnectTimer);
136
- clearTimeout(this.connectionTimeoutTimer);
137
- // Закрываем соединение
138
- if (this.eventSource) {
139
- this.eventSource.close();
140
- this.eventSource = null;
141
- }
142
- this.dispatchEvent('close', {});
143
- }
144
- /**
145
- * Добавляет обработчик события
146
- * @param {string} eventType Тип события
147
- * @param {SseEventHandler} handler Обработчик события
148
- */
149
- on(eventType, handler) {
150
- if (!this.eventHandlers[eventType]) {
151
- this.eventHandlers[eventType] = [];
152
- // Если соединение уже установлено, добавляем обработчик события
153
- if (this.eventSource && this.eventSource.readyState === 1 &&
154
- eventType !== 'message' && eventType !== 'open' && eventType !== 'error') {
155
- this.eventSource.addEventListener(eventType, (event) => {
156
- try {
157
- const data = JSON.parse(event.data);
158
- this.dispatchEvent(eventType, data);
159
- }
160
- catch (e) {
161
- this.dispatchEvent(eventType, event.data);
162
- }
163
- });
164
- }
165
- }
166
- this.eventHandlers[eventType].push(handler);
167
- }
168
- /**
169
- * Удаляет обработчик события
170
- * @param {string} eventType Тип события
171
- * @param {SseEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
172
- */
173
- off(eventType, handler) {
174
- if (!this.eventHandlers[eventType]) {
175
- return;
176
- }
177
- if (!handler) {
178
- // Если обработчик не указан, удаляем все обработчики для данного события
179
- delete this.eventHandlers[eventType];
180
- }
181
- else {
182
- // Если обработчик указан, удаляем только его
183
- this.eventHandlers[eventType] = this.eventHandlers[eventType].filter(h => h !== handler);
184
- // Если обработчиков больше нет, удаляем массив
185
- if (this.eventHandlers[eventType].length === 0) {
186
- delete this.eventHandlers[eventType];
187
- }
188
- }
189
- }
190
- /**
191
- * Вызывает обработчики для указанного события
192
- * @param {string} eventType Тип события
193
- * @param {any} data Данные события
194
- */
195
- dispatchEvent(eventType, data) {
196
- if (!this.eventHandlers[eventType]) {
197
- return;
198
- }
199
- for (const handler of this.eventHandlers[eventType]) {
200
- try {
201
- handler(data);
202
- }
203
- catch (e) {
204
- console.error(`Ошибка в обработчике события ${eventType}:`, e);
205
- }
206
- }
207
- }
208
- /**
209
- * Переподключается к SSE эндпоинту с экспоненциальной задержкой
210
- * @private
211
- */
212
- reconnect() {
213
- // Увеличиваем счетчик попыток
214
- this.retryCount++;
215
- // Если превышено максимальное количество попыток, прекращаем
216
- if (this.retryCount > (this.options.maxRetries || 5)) {
217
- this.dispatchEvent('maxRetries', { retries: this.retryCount });
218
- return;
219
- }
220
- // Вычисляем задержку перед переподключением с экспоненциальным ростом
221
- const delay = Math.min((this.options.retryDelay || 1000) * Math.pow(2, this.retryCount - 1), this.options.maxRetryDelay || 30000);
222
- // Пытаемся переподключиться после задержки
223
- this.reconnectTimer = setTimeout(() => {
224
- this.dispatchEvent('reconnect', { attempt: this.retryCount });
225
- this.connect().catch(() => { });
226
- }, delay);
227
- }
228
- }
229
- //# sourceMappingURL=sse-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sse-client.js","sourceRoot":"","sources":["../../../src/utils/sse-client.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Уровни логирования
3
- */
4
- export declare enum LogLevel {
5
- DEBUG = "debug",
6
- INFO = "info",
7
- WARN = "warn",
8
- ERROR = "error"
9
- }
10
- /**
11
- * Интерфейс логгера
12
- */
13
- export interface Logger {
14
- /**
15
- * Логирует отладочное сообщение
16
- * @param message Сообщение для логирования
17
- * @param data Дополнительные данные
18
- */
19
- debug(message: string, data?: any): void;
20
- /**
21
- * Логирует информационное сообщение
22
- * @param message Сообщение для логирования
23
- * @param data Дополнительные данные
24
- */
25
- info(message: string, data?: any): void;
26
- /**
27
- * Логирует предупреждение
28
- * @param message Сообщение для логирования
29
- * @param data Дополнительные данные
30
- */
31
- warn(message: string, data?: any): void;
32
- /**
33
- * Логирует ошибку
34
- * @param message Сообщение для логирования
35
- * @param data Дополнительные данные
36
- */
37
- error(message: string, data?: any): void;
38
- /**
39
- * Создает новый логгер с указанным префиксом
40
- * @param prefix Префикс для нового логгера
41
- * @returns Новый логгер с префиксом
42
- */
43
- withPrefix(prefix: string): Logger;
44
- }
45
- /**
46
- * Тип для функции логирования
47
- */
48
- export type LogFunction = (level: string, message: string, data?: any) => void;
49
- /**
50
- * Создает новый логгер для HTTP клиента
51
- * @param component Название компонента
52
- * @param logFn Функция логирования
53
- * @returns Логгер
54
- */
55
- export declare function createHttpLogger(component: string, logFn?: LogFunction): Logger;
56
- /**
57
- * Создает новый логгер с пустой функцией логирования
58
- * @param component Название компонента
59
- * @returns Новый логгер
60
- */
61
- export declare function createNullLogger(component: string): Logger;
62
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEzC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEzC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAqF/E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,WAAgC,GAAG,MAAM,CAEnG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -1,92 +0,0 @@
1
- /**
2
- * Опции для SSE клиента
3
- */
4
- export interface SseClientOptions {
5
- /**
6
- * HTTP заголовки для SSE соединения
7
- */
8
- headers?: Record<string, string>;
9
- /**
10
- * Таймаут подключения в миллисекундах
11
- */
12
- connectionTimeout?: number;
13
- /**
14
- * Максимальное количество попыток переподключения
15
- */
16
- maxRetries?: number;
17
- /**
18
- * Задержка перед попыткой переподключения в миллисекундах
19
- */
20
- retryDelay?: number;
21
- /**
22
- * Максимальная задержка перед попыткой переподключения
23
- */
24
- maxRetryDelay?: number;
25
- }
26
- /**
27
- * Интерфейс для обработчика события SSE
28
- */
29
- export interface SseEventHandler {
30
- (event: any): void;
31
- }
32
- /**
33
- * Клиент для работы с Server-Sent Events (SSE)
34
- * Поддерживает работу как в браузере, так и в Node.js
35
- */
36
- export declare class SseClient {
37
- /** URL для подключения */
38
- private readonly url;
39
- /** Опции клиента */
40
- private readonly options;
41
- /** Экземпляр EventSource */
42
- private eventSource;
43
- /** Счетчик попыток переподключения */
44
- private retryCount;
45
- /** Флаг, указывающий, что соединение было закрыто намеренно */
46
- private intentionallyClosed;
47
- /** Таймер переподключения */
48
- private reconnectTimer;
49
- /** Таймер таймаута соединения */
50
- private connectionTimeoutTimer;
51
- /** Обработчики событий */
52
- private eventHandlers;
53
- /**
54
- * Создает новый SSE клиент
55
- * @param {string} url URL для подключения
56
- * @param {SseClientOptions} [options] Опции клиента
57
- */
58
- constructor(url: string, options?: SseClientOptions);
59
- /**
60
- * Подключается к SSE эндпоинту
61
- * @returns {Promise<void>}
62
- */
63
- connect(): Promise<void>;
64
- /**
65
- * Закрывает SSE соединение
66
- */
67
- close(): void;
68
- /**
69
- * Добавляет обработчик события
70
- * @param {string} eventType Тип события
71
- * @param {SseEventHandler} handler Обработчик события
72
- */
73
- on(eventType: string, handler: SseEventHandler): void;
74
- /**
75
- * Удаляет обработчик события
76
- * @param {string} eventType Тип события
77
- * @param {SseEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
78
- */
79
- off(eventType: string, handler?: SseEventHandler): void;
80
- /**
81
- * Вызывает обработчики для указанного события
82
- * @param {string} eventType Тип события
83
- * @param {any} data Данные события
84
- */
85
- private dispatchEvent;
86
- /**
87
- * Переподключается к SSE эндпоинту с экспоненциальной задержкой
88
- * @private
89
- */
90
- private reconnect;
91
- }
92
- //# sourceMappingURL=sse-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sse-client.d.ts","sourceRoot":"","sources":["../../../src/utils/sse-client.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,0BAA0B;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,oBAAoB;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C,4BAA4B;IAC5B,OAAO,CAAC,WAAW,CAAkD;IAErE,sCAAsC;IACtC,OAAO,CAAC,UAAU,CAAK;IAEvB,+DAA+D;IAC/D,OAAO,CAAC,mBAAmB,CAAS;IAEpC,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAAa;IAEnC,iCAAiC;IACjC,OAAO,CAAC,sBAAsB,CAAa;IAE3C,0BAA0B;IAC1B,OAAO,CAAC,aAAa,CAAyC;IAE9D;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAWvD;;;OAGG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmG/B;;OAEG;IACI,KAAK,IAAI,IAAI;IAgBpB;;;;OAIG;IACI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAqB5D;;;;OAIG;IACI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAmB9D;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAcrB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAsBlB"}