solver-sdk 1.8.1 → 1.9.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 (116) hide show
  1. package/dist/cjs/api/projects-api.js +4 -6
  2. package/dist/cjs/api/projects-api.js.map +1 -1
  3. package/dist/cjs/code-solver-sdk.js +13 -10
  4. package/dist/cjs/code-solver-sdk.js.map +1 -1
  5. package/dist/cjs/constants/websocket-events.constants.js +14 -1
  6. package/dist/cjs/constants/websocket-events.constants.js.map +1 -1
  7. package/dist/cjs/constants/websocket-namespaces.constants.js +18 -0
  8. package/dist/cjs/constants/websocket-namespaces.constants.js.map +1 -0
  9. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +3 -0
  10. package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +1 -0
  11. package/dist/cjs/interfaces/websocket/client-options.interfaces.js +3 -0
  12. package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +1 -0
  13. package/dist/cjs/interfaces/websocket/events.interfaces.js +3 -0
  14. package/dist/cjs/interfaces/websocket/events.interfaces.js.map +1 -0
  15. package/dist/cjs/interfaces/websocket/stats.interfaces.js +3 -0
  16. package/dist/cjs/interfaces/websocket/stats.interfaces.js.map +1 -0
  17. package/dist/cjs/utils/code-solver-websocket-client.js +382 -1503
  18. package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -1
  19. package/dist/cjs/utils/connection-state-manager.js +133 -0
  20. package/dist/cjs/utils/connection-state-manager.js.map +1 -0
  21. package/dist/cjs/utils/logger.js +106 -0
  22. package/dist/cjs/utils/logger.js.map +1 -0
  23. package/dist/cjs/utils/ping-pong-manager.js +306 -0
  24. package/dist/cjs/utils/ping-pong-manager.js.map +1 -0
  25. package/dist/cjs/utils/session-manager.js +114 -0
  26. package/dist/cjs/utils/session-manager.js.map +1 -0
  27. package/dist/cjs/ws/base-ws-client.js +286 -0
  28. package/dist/cjs/ws/base-ws-client.js.map +1 -0
  29. package/dist/cjs/ws/dependencies-ws-client.js +11 -0
  30. package/dist/cjs/ws/dependencies-ws-client.js.map +1 -0
  31. package/dist/cjs/ws/diagnostics-service.js +170 -0
  32. package/dist/cjs/ws/diagnostics-service.js.map +1 -0
  33. package/dist/cjs/ws/indexing-ws-client.js +223 -0
  34. package/dist/cjs/ws/indexing-ws-client.js.map +1 -0
  35. package/dist/cjs/ws/notifications-ws-client.js +12 -0
  36. package/dist/cjs/ws/notifications-ws-client.js.map +1 -0
  37. package/dist/cjs/ws/reasoning-ws-client.js +330 -0
  38. package/dist/cjs/ws/reasoning-ws-client.js.map +1 -0
  39. package/dist/esm/api/projects-api.js +4 -6
  40. package/dist/esm/api/projects-api.js.map +1 -1
  41. package/dist/esm/code-solver-sdk.js +6 -3
  42. package/dist/esm/code-solver-sdk.js.map +1 -1
  43. package/dist/esm/constants/websocket-events.constants.js +13 -0
  44. package/dist/esm/constants/websocket-events.constants.js.map +1 -1
  45. package/dist/esm/constants/websocket-namespaces.constants.js +15 -0
  46. package/dist/esm/constants/websocket-namespaces.constants.js.map +1 -0
  47. package/dist/esm/interfaces/websocket/callbacks.interfaces.js +2 -0
  48. package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +1 -0
  49. package/dist/esm/interfaces/websocket/client-options.interfaces.js +2 -0
  50. package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +1 -0
  51. package/dist/esm/interfaces/websocket/events.interfaces.js +2 -0
  52. package/dist/esm/interfaces/websocket/events.interfaces.js.map +1 -0
  53. package/dist/esm/interfaces/websocket/stats.interfaces.js +2 -0
  54. package/dist/esm/interfaces/websocket/stats.interfaces.js.map +1 -0
  55. package/dist/esm/utils/code-solver-websocket-client.js +381 -1503
  56. package/dist/esm/utils/code-solver-websocket-client.js.map +1 -1
  57. package/dist/esm/utils/connection-state-manager.js +129 -0
  58. package/dist/esm/utils/connection-state-manager.js.map +1 -0
  59. package/dist/esm/utils/logger.js +101 -0
  60. package/dist/esm/utils/logger.js.map +1 -0
  61. package/dist/esm/utils/ping-pong-manager.js +302 -0
  62. package/dist/esm/utils/ping-pong-manager.js.map +1 -0
  63. package/dist/esm/utils/session-manager.js +109 -0
  64. package/dist/esm/utils/session-manager.js.map +1 -0
  65. package/dist/esm/ws/base-ws-client.js +282 -0
  66. package/dist/esm/ws/base-ws-client.js.map +1 -0
  67. package/dist/esm/ws/dependencies-ws-client.js +7 -0
  68. package/dist/esm/ws/dependencies-ws-client.js.map +1 -0
  69. package/dist/esm/ws/diagnostics-service.js +166 -0
  70. package/dist/esm/ws/diagnostics-service.js.map +1 -0
  71. package/dist/esm/ws/indexing-ws-client.js +219 -0
  72. package/dist/esm/ws/indexing-ws-client.js.map +1 -0
  73. package/dist/esm/ws/notifications-ws-client.js +8 -0
  74. package/dist/esm/ws/notifications-ws-client.js.map +1 -0
  75. package/dist/esm/ws/reasoning-ws-client.js +326 -0
  76. package/dist/esm/ws/reasoning-ws-client.js.map +1 -0
  77. package/dist/types/api/projects-api.d.ts.map +1 -1
  78. package/dist/types/code-solver-sdk.d.ts +2 -1
  79. package/dist/types/code-solver-sdk.d.ts.map +1 -1
  80. package/dist/types/constants/websocket-events.constants.d.ts +12 -0
  81. package/dist/types/constants/websocket-events.constants.d.ts.map +1 -1
  82. package/dist/types/constants/websocket-namespaces.constants.d.ts +14 -0
  83. package/dist/types/constants/websocket-namespaces.constants.d.ts.map +1 -0
  84. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +30 -0
  85. package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +1 -0
  86. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +51 -0
  87. package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +1 -0
  88. package/dist/types/interfaces/websocket/events.interfaces.d.ts +165 -0
  89. package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +1 -0
  90. package/dist/types/interfaces/websocket/stats.interfaces.d.ts +72 -0
  91. package/dist/types/interfaces/websocket/stats.interfaces.d.ts.map +1 -0
  92. package/dist/types/utils/code-solver-websocket-client.d.ts +70 -616
  93. package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -1
  94. package/dist/types/utils/connection-state-manager.d.ts +94 -0
  95. package/dist/types/utils/connection-state-manager.d.ts.map +1 -0
  96. package/dist/types/utils/logger.d.ts +62 -0
  97. package/dist/types/utils/logger.d.ts.map +1 -0
  98. package/dist/types/utils/ping-pong-manager.d.ts +118 -0
  99. package/dist/types/utils/ping-pong-manager.d.ts.map +1 -0
  100. package/dist/types/utils/session-manager.d.ts +98 -0
  101. package/dist/types/utils/session-manager.d.ts.map +1 -0
  102. package/dist/types/ws/base-ws-client.d.ts +119 -0
  103. package/dist/types/ws/base-ws-client.d.ts.map +1 -0
  104. package/dist/types/ws/dependencies-ws-client.d.ts +6 -0
  105. package/dist/types/ws/dependencies-ws-client.d.ts.map +1 -0
  106. package/dist/types/ws/diagnostics-service.d.ts +93 -0
  107. package/dist/types/ws/diagnostics-service.d.ts.map +1 -0
  108. package/dist/types/ws/indexing-ws-client.d.ts +78 -0
  109. package/dist/types/ws/indexing-ws-client.d.ts.map +1 -0
  110. package/dist/types/ws/notifications-ws-client.d.ts +5 -0
  111. package/dist/types/ws/notifications-ws-client.d.ts.map +1 -0
  112. package/dist/types/ws/reasoning-ws-client.d.ts +87 -0
  113. package/dist/types/ws/reasoning-ws-client.d.ts.map +1 -0
  114. package/docs/AUTHENTICATION.md +31 -127
  115. package/docs/WEBSOCKET.md +51 -211
  116. package/package.json +1 -1
@@ -0,0 +1,93 @@
1
+ import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js';
2
+ import { WebSocketClient } from '../utils/websocket-client.js';
3
+ import { SessionManager } from '../utils/session-manager.js';
4
+ import { PingPongManager } from '../utils/ping-pong-manager.js';
5
+ import { ConnectionStateManager } from '../utils/connection-state-manager.js';
6
+ import { ConnectionDiagnostics, PingPongStats } from '../interfaces/websocket/stats.interfaces.js';
7
+ import { Logger } from '../utils/logger.js';
8
+ /**
9
+ * Опции для сервиса диагностики
10
+ */
11
+ export interface DiagnosticsServiceOptions {
12
+ /** Интервал проверки здоровья соединений в миллисекундах */
13
+ healthCheckInterval?: number;
14
+ /** Логгер для вывода сообщений */
15
+ logger?: Logger;
16
+ /** Менеджер сессий */
17
+ sessionManager?: SessionManager;
18
+ /** Менеджер ping/pong */
19
+ pingPongManager?: PingPongManager;
20
+ /** Менеджер состояния подключения */
21
+ connectionStateManager?: ConnectionStateManager;
22
+ }
23
+ /**
24
+ * Сервис для диагностики WebSocket соединений
25
+ */
26
+ export declare class DiagnosticsService {
27
+ /** Интервал проверки здоровья соединений в миллисекундах */
28
+ private readonly healthCheckInterval;
29
+ /** Логгер для вывода сообщений */
30
+ private readonly logger;
31
+ /** Менеджер сессий */
32
+ private readonly sessionManager;
33
+ /** Менеджер ping/pong */
34
+ private readonly pingPongManager;
35
+ /** Менеджер состояния подключения */
36
+ private readonly connectionStateManager;
37
+ /** Таймер для проверки здоровья соединений */
38
+ private healthCheckTimer;
39
+ /** Клиенты WebSocket по namespace */
40
+ private readonly clients;
41
+ /**
42
+ * Создает новый сервис диагностики
43
+ * @param {DiagnosticsServiceOptions} options Опции сервиса
44
+ */
45
+ constructor(options?: DiagnosticsServiceOptions);
46
+ /**
47
+ * Регистрирует WebSocket клиент для мониторинга
48
+ * @param {WebSocketNamespace} namespace Пространство имен
49
+ * @param {WebSocketClient} client WebSocket клиент
50
+ */
51
+ registerClient(namespace: WebSocketNamespace, client: WebSocketClient): void;
52
+ /**
53
+ * Удаляет регистрацию WebSocket клиента
54
+ * @param {WebSocketNamespace} namespace Пространство имен
55
+ */
56
+ unregisterClient(namespace: WebSocketNamespace): void;
57
+ /**
58
+ * Запускает периодическую проверку здоровья соединений
59
+ * @returns {boolean} true, если проверка успешно запущена
60
+ */
61
+ startHealthCheck(): boolean;
62
+ /**
63
+ * Останавливает периодическую проверку здоровья соединений
64
+ */
65
+ stopHealthCheck(): void;
66
+ /**
67
+ * Выполняет проверку здоровья соединений
68
+ */
69
+ private performHealthCheck;
70
+ /**
71
+ * Выполняет диагностику соединения
72
+ * @param {WebSocketNamespace} namespace Пространство имен
73
+ * @returns {ConnectionDiagnostics} Диагностическая информация
74
+ */
75
+ diagnoseConnection(namespace: WebSocketNamespace): ConnectionDiagnostics;
76
+ /**
77
+ * Выполняет диагностику всех соединений
78
+ * @returns {Record<string, ConnectionDiagnostics>} Диагностическая информация по всем соединениям
79
+ */
80
+ diagnoseAllConnections(): Record<string, ConnectionDiagnostics>;
81
+ /**
82
+ * Получает статистику ping/pong для указанного пространства имен
83
+ * @param {WebSocketNamespace} namespace Пространство имен
84
+ * @returns {PingPongStats | null} Статистика ping/pong
85
+ */
86
+ getPingStats(namespace: WebSocketNamespace): PingPongStats | null;
87
+ /**
88
+ * Возвращает функцию-обработчик для pong-ответов, которая рассчитывает RTT
89
+ * @returns {(data: any) => void} Функция-обработчик
90
+ */
91
+ getPongHandler(): (data: any) => void;
92
+ }
93
+ //# sourceMappingURL=diagnostics-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-service.d.ts","sourceRoot":"","sources":["../../../src/ws/diagnostics-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACnG,OAAO,EAAE,MAAM,EAAyB,MAAM,oBAAoB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,sBAAsB;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,yBAAyB;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,qCAAqC;IACrC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAElD,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAEhE,8CAA8C;IAC9C,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAE/E;;;OAGG;gBACS,OAAO,GAAE,yBAA8B;IAQnD;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAOnF;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAK5D;;;OAGG;IACI,gBAAgB,IAAI,OAAO;IAalC;;OAEG;IACI,eAAe,IAAI,IAAI;IAQ9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;;;OAIG;IACI,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,qBAAqB;IA+B/E;;;OAGG;IACI,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAWtE;;;;OAIG;IACI,YAAY,CAAC,SAAS,EAAE,kBAAkB,GAAG,aAAa,GAAG,IAAI;IAIxE;;;OAGG;IACI,cAAc,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;CAU7C"}
@@ -0,0 +1,78 @@
1
+ import { BaseWebSocketClient, BaseWebSocketClientOptions } from './base-ws-client.js';
2
+ /**
3
+ * Опции WebSocket клиента для индексации
4
+ */
5
+ export interface IndexingWebSocketClientOptions extends BaseWebSocketClientOptions {
6
+ /** ID проекта */
7
+ projectId?: string;
8
+ }
9
+ /**
10
+ * WebSocket клиент для пространства имен индексации
11
+ */
12
+ export declare class IndexingWebSocketClient extends BaseWebSocketClient {
13
+ /** ID активного проекта */
14
+ private activeProjectId;
15
+ /**
16
+ * Создает новый WebSocket клиент для индексации
17
+ * @param {string} baseURL Базовый URL API
18
+ * @param {IndexingWebSocketClientOptions} options Опции клиента
19
+ */
20
+ constructor(baseURL: string, options?: IndexingWebSocketClientOptions);
21
+ /**
22
+ * Подключается к серверу WebSocket
23
+ * @param {boolean} autoJoin Автоматически присоединиться к проекту
24
+ * @returns {Promise<boolean>} Успешность подключения
25
+ */
26
+ connectToIndexing(autoJoin?: boolean): Promise<boolean>;
27
+ /**
28
+ * Присоединяется к проекту
29
+ * @param {string} projectId ID проекта
30
+ * @returns {Promise<boolean>} Успешность операции
31
+ */
32
+ joinProject(projectId: string): Promise<boolean>;
33
+ /**
34
+ * Запускает процесс индексации проекта
35
+ * @param {string} [projectId] ID проекта (если не указан, используется текущий проект)
36
+ * @returns {Promise<boolean>} Успешность операции
37
+ */
38
+ startIndexing(projectId?: string): Promise<boolean>;
39
+ /**
40
+ * Останавливает процесс индексации проекта
41
+ * @param {string} [projectId] ID проекта (если не указан, используется текущий проект)
42
+ * @returns {Promise<boolean>} Успешность операции
43
+ */
44
+ stopIndexing(projectId?: string): Promise<boolean>;
45
+ /**
46
+ * Получает статус индексации проекта
47
+ * @param {string} [projectId] ID проекта (если не указан, используется текущий проект)
48
+ * @returns {Promise<any>} Статус индексации проекта
49
+ */
50
+ getIndexingStatus(projectId?: string): Promise<any>;
51
+ /**
52
+ * Устанавливает обработчик для события завершения индексации
53
+ * @param {Function} handler Обработчик события
54
+ */
55
+ onIndexingComplete(handler: (data: any) => void): void;
56
+ /**
57
+ * Устанавливает обработчик для события индексации файла
58
+ * @param {Function} handler Обработчик события
59
+ */
60
+ onFileIndexed(handler: (data: any) => void): void;
61
+ /**
62
+ * Устанавливает обработчик для события ошибки индексации
63
+ * @param {Function} handler Обработчик события
64
+ */
65
+ onIndexingError(handler: (data: any) => void): void;
66
+ /**
67
+ * Получает текущий ID активного проекта
68
+ * @returns {string | null} ID активного проекта или null
69
+ */
70
+ getActiveProjectId(): string | null;
71
+ /**
72
+ * Устанавливает ID активного проекта
73
+ * @param {string} projectId ID проекта
74
+ * @returns {boolean} Успешность установки
75
+ */
76
+ setActiveProjectId(projectId: string): boolean;
77
+ }
78
+ //# sourceMappingURL=indexing-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexing-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/indexing-ws-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGtF;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,0BAA0B;IAChF,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,mBAAmB;IAC9D,2BAA2B;IAC3B,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC;IAOzE;;;;OAIG;IACU,iBAAiB,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiD1E;;;;OAIG;IACU,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B7D;;;;OAIG;IACU,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BhE;;;;OAIG;IACU,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B/D;;;;OAIG;IACU,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAuBhE;;;OAGG;IACI,kBAAkB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI7D;;;OAGG;IACI,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIxD;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI1D;;;OAGG;IACI,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAI1C;;;;OAIG;IACI,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAWtD"}
@@ -0,0 +1,5 @@
1
+ import { BaseWebSocketClient } from './base-ws-client';
2
+ export declare class NotificationsWsClient extends BaseWebSocketClient {
3
+ constructor(baseURL: string, options?: {});
4
+ }
5
+ //# sourceMappingURL=notifications-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/notifications-ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,qBAAa,qBAAsB,SAAQ,mBAAmB;gBAChD,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK;CAI1C"}
@@ -0,0 +1,87 @@
1
+ import { BaseWebSocketClient, BaseWebSocketClientOptions } from './base-ws-client.js';
2
+ import { AnthropicStreamCallbacks } from '../interfaces/websocket/callbacks.interfaces.js';
3
+ /**
4
+ * Опции WebSocket клиента для рассуждений
5
+ */
6
+ export interface ReasoningWebSocketClientOptions extends BaseWebSocketClientOptions {
7
+ /** ID рассуждения */
8
+ reasoningId?: string;
9
+ /** Обработчики для событий Anthropic Stream */
10
+ callbacks?: AnthropicStreamCallbacks;
11
+ }
12
+ /**
13
+ * WebSocket клиент для пространства имен рассуждений
14
+ */
15
+ export declare class ReasoningWebSocketClient extends BaseWebSocketClient {
16
+ /** ID активного рассуждения */
17
+ private activeReasoningId;
18
+ /** Обработчики для событий Anthropic Stream */
19
+ private callbacks;
20
+ /** Обработчики событий мышления */
21
+ private thinkingEventHandlers;
22
+ /**
23
+ * Создает новый WebSocket клиент для рассуждений
24
+ * @param {string} baseURL Базовый URL API
25
+ * @param {ReasoningWebSocketClientOptions} options Опции клиента
26
+ */
27
+ constructor(baseURL: string, options?: ReasoningWebSocketClientOptions);
28
+ /**
29
+ * Подключается к серверу WebSocket
30
+ * @param {boolean} autoJoin Автоматически присоединиться к рассуждению
31
+ * @returns {Promise<boolean>} Успешность подключения
32
+ */
33
+ connectToReasoning(autoJoin?: boolean): Promise<boolean>;
34
+ /**
35
+ * Присоединяется к сессии рассуждения
36
+ * @param {string} reasoningId ID сессии рассуждения
37
+ * @returns {Promise<boolean>} Успешность операции
38
+ */
39
+ joinReasoning(reasoningId: string): Promise<boolean>;
40
+ /**
41
+ * Запускает рассуждение
42
+ * @param {string} reasoningId ID сессии рассуждения
43
+ * @returns {Promise<boolean>} Успешность операции
44
+ */
45
+ startReasoning(reasoningId?: string): Promise<boolean>;
46
+ /**
47
+ * Создает новое рассуждение на сервере
48
+ * @returns {Promise<string>} ID нового рассуждения
49
+ */
50
+ createNewReasoning(): Promise<string>;
51
+ /**
52
+ * Подключается к сессии thinking с расширенными возможностями
53
+ * @param {string} [reasoningId="system"] Идентификатор рассуждения
54
+ * @param {(data: any) => void} [thinkingHandler] Обработчик событий мышления
55
+ * @returns {Promise<string>} Идентификатор сессии рассуждения
56
+ */
57
+ connectToThinkingSession(reasoningId?: string, thinkingHandler?: (data: any) => void): Promise<string>;
58
+ /**
59
+ * Настраивает обработчики событий для стрима от Anthropic
60
+ */
61
+ setupAnthropicStreamHandlers(): void;
62
+ /**
63
+ * Подписывается на события мышления
64
+ * @param {string} reasoningId Идентификатор рассуждения
65
+ * @param {Function} handler Обработчик событий мышления
66
+ * @returns {void}
67
+ */
68
+ subscribeToThinking(reasoningId: string, handler: (data: any) => void): void;
69
+ /**
70
+ * Отписывается от событий мышления
71
+ * @param {string} reasoningId Идентификатор рассуждения
72
+ * @returns {void}
73
+ */
74
+ unsubscribeFromThinking(reasoningId: string): void;
75
+ /**
76
+ * Получает текущий ID активного рассуждения
77
+ * @returns {string | null} ID активного рассуждения или null
78
+ */
79
+ getActiveReasoningId(): string | null;
80
+ /**
81
+ * Устанавливает ID активного рассуждения
82
+ * @param {string} reasoningId ID рассуждения
83
+ * @returns {boolean} Успешность установки
84
+ */
85
+ setActiveReasoningId(reasoningId: string): boolean;
86
+ }
87
+ //# sourceMappingURL=reasoning-ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-ws-client.d.ts","sourceRoot":"","sources":["../../../src/ws/reasoning-ws-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,+BAAgC,SAAQ,0BAA0B;IACjF,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,mBAAmB;IAC/D,+BAA+B;IAC/B,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,+CAA+C;IAC/C,OAAO,CAAC,SAAS,CAA2B;IAE5C,mCAAmC;IACnC,OAAO,CAAC,qBAAqB,CAA+C;IAE5E;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,+BAAoC;IAU1E;;;;OAIG;IACU,kBAAkB,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA+C3E;;;;OAIG;IACU,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BjE;;;;OAIG;IACU,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BnE;;;OAGG;IACU,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAwBlD;;;;;OAKG;IACU,wBAAwB,CACnC,WAAW,GAAE,MAAiB,EAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GACpC,OAAO,CAAC,MAAM,CAAC;IA6DlB;;OAEG;IACI,4BAA4B,IAAI,IAAI;IAqE3C;;;;;OAKG;IACI,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAanF;;;;OAIG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAgBzD;;;OAGG;IACI,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAI5C;;;;OAIG;IACI,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAW1D"}
@@ -1,19 +1,12 @@
1
1
  # Аутентификация в Solver SDK
2
2
 
3
- В этом документе описаны методы аутентификации в Solver SDK для различных API и WebSocket соединений.
3
+ Этот документ описывает методы аутентификации в Solver SDK.
4
4
 
5
- ## Содержание
5
+ ## Аутентификация HTTP API
6
6
 
7
- - [HTTP API аутентификация](#http-api-аутентификация)
8
- - [WebSocket аутентификация](#websocket-аутентификация)
9
- - [Тестовая аутентификация](#тестовая-аутентификация)
10
- - [Обработка ошибок аутентификации](#обработка-ошибок-аутентификации)
7
+ SDK поддерживает два основных метода аутентификации:
11
8
 
12
- ## HTTP API аутентификация
13
-
14
- SDK поддерживает два основных метода аутентификации для HTTP запросов:
15
-
16
- ### 1. API ключ
9
+ ### API ключ
17
10
 
18
11
  ```javascript
19
12
  const sdk = new CodeSolverSDK({
@@ -22,158 +15,69 @@ const sdk = new CodeSolverSDK({
22
15
  });
23
16
  ```
24
17
 
25
- API ключ автоматически добавляется в заголовок `X-API-Key` для всех HTTP запросов.
26
-
27
- ### 2. Пользовательские заголовки
18
+ ### Пользовательские заголовки
28
19
 
29
20
  ```javascript
30
21
  const sdk = new CodeSolverSDK({
31
22
  baseURL: 'https://api.example.com',
32
23
  headers: {
33
- 'Authorization': 'Bearer your-jwt-token',
34
- 'X-Custom-Header': 'Custom-Value'
24
+ 'Authorization': 'Bearer your-jwt-token'
35
25
  }
36
26
  });
37
27
  ```
38
28
 
39
- ## WebSocket аутентификация
29
+ ## Аутентификация WebSocket
40
30
 
41
- Для WebSocket соединений SDK использует отдельный механизм аутентификации через специальное событие `authenticate`.
31
+ SDK автоматически использует API-ключ для аутентификации WebSocket соединений. Отдельных действий не требуется.
42
32
 
43
- ### Стандартная аутентификация WebSocket
33
+ Для некоторых методов можно указать дополнительный токен авторизации:
44
34
 
45
35
  ```javascript
46
- // 1. Создаем экземпляр SDK
47
- const sdk = new CodeSolverSDK({
48
- baseURL: 'https://api.example.com',
49
- apiKey: 'your-api-key'
50
- });
51
-
52
- // 2. Опции для streamChatWithThinking
36
+ // Для потоковой передачи чата с мышлением
53
37
  const options = {
54
38
  model: 'claude-3-7-sonnet-20240229',
55
39
  thinking: true,
56
- authToken: 'your-auth-token' // Токен для WebSocket аутентификации
57
- };
58
-
59
- // 3. Отправка запроса
60
- const response = await sdk.chat.streamChatWithThinking(messages, options, handleEvent);
61
- ```
62
-
63
- Параметр `authToken` используется для аутентификации WebSocket соединений и передается в событии `authenticate`.
64
-
65
- ### Низкоуровневая WebSocket аутентификация
66
-
67
- Если вы работаете напрямую с WebSocket клиентом, вы можете настроить аутентификацию следующим образом:
68
-
69
- ```javascript
70
- // Получаем WebSocket клиент
71
- const wsClient = sdk.getWebSocketClient();
72
-
73
- // Настраиваем опции подключения с аутентификацией
74
- const connectionOptions = {
75
- namespace: 'reasoning',
76
- authToken: 'your-auth-token',
77
- query: {
78
- reasoningId: 'reasoning-123'
79
- }
80
- };
81
-
82
- // Подключаемся к WebSocket серверу
83
- await wsClient.connect(connectionOptions);
84
-
85
- // Проверяем статус аутентификации
86
- const isAuthenticated = wsClient.isAuthenticated();
87
- console.log('Аутентификация WebSocket:', isAuthenticated);
88
- ```
89
-
90
- ## Тестовая аутентификация
91
-
92
- Для тестовых сред SDK поддерживает упрощенную аутентификацию:
93
-
94
- ```javascript
95
- const options = {
96
- // Другие параметры...
97
- authToken: 'test-token'
40
+ authToken: 'your-auth-token' // Опциональный параметр
98
41
  };
99
42
 
43
+ // Запрос с аутентификацией
100
44
  const response = await sdk.chat.streamChatWithThinking(messages, options, handleEvent);
101
45
  ```
102
46
 
103
- > **Важно**: Начиная с версии 1.7.4, устаревший параметр `testToken` удален в пользу унифицированного параметра `authToken`.
104
-
105
47
  ## Обработка ошибок аутентификации
106
48
 
107
- SDK предоставляет механизм обработки ошибок аутентификации:
108
-
109
49
  ```javascript
110
50
  // Обработчик событий WebSocket
111
51
  const handleEvent = (eventType, data) => {
112
52
  if (eventType === 'authentication_error') {
113
53
  console.error('Ошибка аутентификации:', data.message);
114
54
 
115
- // Возможная реакция на ошибку (переподключение, запрос нового токена и т.д.)
116
- switch (data.code) {
117
- case 'TOKEN_EXPIRED':
118
- // Запросить новый токен
119
- break;
120
- case 'INVALID_TOKEN':
121
- // Перенаправить на страницу входа
122
- break;
123
- default:
124
- // Общая обработка ошибок
125
- break;
55
+ // Реакция на ошибку аутентификации
56
+ if (data.code === 'TOKEN_EXPIRED') {
57
+ // Получение нового токена
126
58
  }
127
59
  }
128
60
  };
129
61
  ```
130
62
 
131
- ### Коды ошибок аутентификации
63
+ ## Пример использования
132
64
 
133
- | Код ошибки | Описание |
134
- |------------|----------|
135
- | `TOKEN_EXPIRED` | Истек срок действия токена |
136
- | `INVALID_TOKEN` | Недействительный токен |
137
- | `MISSING_TOKEN` | Отсутствует токен |
138
- | `AUTH_ERROR` | Общая ошибка аутентификации |
139
- | `FORBIDDEN` | Доступ запрещен |
65
+ ```javascript
66
+ // Создание экземпляра SDK
67
+ const sdk = new CodeSolverSDK({
68
+ baseURL: 'https://api.example.com',
69
+ apiKey: 'your-api-key'
70
+ });
140
71
 
141
- ## Примеры
72
+ // Создание рассуждения
73
+ const reasoning = await sdk.reasoning.createReasoning({
74
+ projectId: 'project-id',
75
+ query: 'Объясни этот проект'
76
+ });
142
77
 
143
- ### Полный пример аутентификации для рассуждений
78
+ // Подключение к WebSocket (аутентификация выполняется автоматически)
79
+ await sdk.reasoning.connectWebSocket(reasoning.id);
144
80
 
145
- ```javascript
146
- const { CodeSolverSDK, WebSocketNamespace } = require('solver-sdk');
147
-
148
- async function exampleWithAuthentication() {
149
- // 1. Создаем экземпляр SDK
150
- const sdk = new CodeSolverSDK({
151
- baseURL: 'https://api.example.com',
152
- apiKey: 'your-api-key'
153
- });
154
-
155
- // 2. Создаем рассуждение
156
- const reasoning = await sdk.reasoning.createReasoning({
157
- projectId: 'project-id',
158
- query: 'Объясни этот проект'
159
- });
160
-
161
- // 3. Подключаемся через WebSocket с аутентификацией
162
- await sdk.reasoning.connectWebSocket({
163
- reasoningId: reasoning.id,
164
- authToken: 'your-auth-token'
165
- });
166
-
167
- // 4. Настраиваем обработчики событий
168
- sdk.reasoning.on('authentication_error', (data) => {
169
- console.error('Ошибка аутентификации:', data);
170
- });
171
-
172
- sdk.reasoning.on('authenticated', (data) => {
173
- console.log('Успешная аутентификация:', data);
174
- });
175
-
176
- // 5. Отправляем запрос
177
- await sdk.reasoning.startReasoning(reasoning.id);
178
- }
81
+ // Запуск процесса
82
+ await sdk.reasoning.startReasoning(reasoning.id);
179
83
  ```