solver-sdk 2.8.0 → 3.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/README.md +200 -368
- package/dist/cjs/api/chat-api/index.js +23 -49
- package/dist/cjs/api/chat-api/index.js.map +1 -1
- package/dist/cjs/api/chat-api/interfaces.js +1 -0
- package/dist/cjs/api/chat-api/interfaces.js.map +1 -1
- package/dist/cjs/api/context-api.js +6 -1
- package/dist/cjs/api/context-api.js.map +1 -1
- package/dist/cjs/api/models-api.js +43 -60
- package/dist/cjs/api/models-api.js.map +1 -1
- package/dist/cjs/api/projects-api.js +63 -293
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/api/search-api.js +131 -8
- package/dist/cjs/api/search-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +68 -322
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/index.js +3 -19
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/logger.js +4 -4
- package/dist/cjs/utils/logger.js.map +1 -1
- package/dist/esm/api/chat-api/index.js +22 -48
- package/dist/esm/api/chat-api/index.js.map +1 -1
- package/dist/esm/api/chat-api/interfaces.js +1 -0
- package/dist/esm/api/chat-api/interfaces.js.map +1 -1
- package/dist/esm/api/context-api.js +6 -1
- package/dist/esm/api/context-api.js.map +1 -1
- package/dist/esm/api/models-api.js +43 -60
- package/dist/esm/api/models-api.js.map +1 -1
- package/dist/esm/api/projects-api.js +63 -293
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/api/search-api.js +131 -8
- package/dist/esm/api/search-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +68 -322
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/index.js +2 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/logger.js +3 -3
- package/dist/esm/utils/logger.js.map +1 -1
- package/dist/types/api/chat-api/index.d.ts +1 -13
- package/dist/types/api/chat-api/index.d.ts.map +1 -1
- package/dist/types/api/chat-api/interfaces.d.ts +6 -54
- package/dist/types/api/chat-api/interfaces.d.ts.map +1 -1
- package/dist/types/api/chat-api/models.d.ts +3 -26
- package/dist/types/api/chat-api/models.d.ts.map +1 -1
- package/dist/types/api/context-api.d.ts.map +1 -1
- package/dist/types/api/models-api.d.ts +31 -62
- package/dist/types/api/models-api.d.ts.map +1 -1
- package/dist/types/api/projects-api.d.ts +47 -126
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/api/search-api.d.ts +147 -6
- package/dist/types/api/search-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +36 -86
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -14
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +18 -66
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/utils/logger.d.ts +3 -3
- package/dist/types/utils/logger.d.ts.map +1 -1
- package/docs/README.md +53 -37
- package/docs/VSCODE_INTEGRATION.md +208 -371
- package/docs/indexing/INDEXING.md +658 -335
- package/package.json +26 -23
- package/dist/cjs/api/agents-api.js +0 -94
- package/dist/cjs/api/agents-api.js.map +0 -1
- package/dist/cjs/api/chat-api/websocket-helpers.js +0 -211
- package/dist/cjs/api/chat-api/websocket-helpers.js.map +0 -1
- package/dist/cjs/api/dependencies-api.js +0 -286
- package/dist/cjs/api/dependencies-api.js.map +0 -1
- package/dist/cjs/constants/websocket-events.constants.js +0 -170
- package/dist/cjs/constants/websocket-events.constants.js.map +0 -1
- package/dist/cjs/constants/websocket-namespaces.constants.js +0 -22
- package/dist/cjs/constants/websocket-namespaces.constants.js.map +0 -1
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/events.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/events.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js +0 -42
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
- package/dist/cjs/simple-indexing-client.js +0 -138
- package/dist/cjs/simple-indexing-client.js.map +0 -1
- package/dist/cjs/utils/code-solver-websocket-client.js +0 -497
- package/dist/cjs/utils/code-solver-websocket-client.js.map +0 -1
- package/dist/cjs/utils/connection-state-manager.js +0 -133
- package/dist/cjs/utils/connection-state-manager.js.map +0 -1
- package/dist/cjs/utils/indexing-websocket-client.js +0 -107
- package/dist/cjs/utils/indexing-websocket-client.js.map +0 -1
- package/dist/cjs/utils/session-manager.js +0 -114
- package/dist/cjs/utils/session-manager.js.map +0 -1
- package/dist/cjs/utils/simple-connection-monitor.js +0 -52
- package/dist/cjs/utils/simple-connection-monitor.js.map +0 -1
- package/dist/cjs/utils/websocket-client.js +0 -638
- package/dist/cjs/utils/websocket-client.js.map +0 -1
- package/dist/cjs/ws/base-ws-client.js +0 -280
- package/dist/cjs/ws/base-ws-client.js.map +0 -1
- package/dist/cjs/ws/dependencies-ws-client.js +0 -11
- package/dist/cjs/ws/dependencies-ws-client.js.map +0 -1
- package/dist/cjs/ws/file-editing-ws-client.js +0 -162
- package/dist/cjs/ws/file-editing-ws-client.js.map +0 -1
- package/dist/cjs/ws/filesystem-ws-client.js +0 -305
- package/dist/cjs/ws/filesystem-ws-client.js.map +0 -1
- package/dist/cjs/ws/indexing-ws-client.js +0 -275
- package/dist/cjs/ws/indexing-ws-client.js.map +0 -1
- package/dist/cjs/ws/notifications-ws-client.js +0 -12
- package/dist/cjs/ws/notifications-ws-client.js.map +0 -1
- package/dist/esm/api/agents-api.js +0 -90
- package/dist/esm/api/agents-api.js.map +0 -1
- package/dist/esm/api/chat-api/websocket-helpers.js +0 -205
- package/dist/esm/api/chat-api/websocket-helpers.js.map +0 -1
- package/dist/esm/api/dependencies-api.js +0 -282
- package/dist/esm/api/dependencies-api.js.map +0 -1
- package/dist/esm/constants/websocket-events.constants.js +0 -167
- package/dist/esm/constants/websocket-events.constants.js.map +0 -1
- package/dist/esm/constants/websocket-namespaces.constants.js +0 -19
- package/dist/esm/constants/websocket-namespaces.constants.js.map +0 -1
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/client-options.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/events.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/events.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js +0 -39
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
- package/dist/esm/simple-indexing-client.js +0 -134
- package/dist/esm/simple-indexing-client.js.map +0 -1
- package/dist/esm/utils/code-solver-websocket-client.js +0 -492
- package/dist/esm/utils/code-solver-websocket-client.js.map +0 -1
- package/dist/esm/utils/connection-state-manager.js +0 -129
- package/dist/esm/utils/connection-state-manager.js.map +0 -1
- package/dist/esm/utils/indexing-websocket-client.js +0 -103
- package/dist/esm/utils/indexing-websocket-client.js.map +0 -1
- package/dist/esm/utils/session-manager.js +0 -109
- package/dist/esm/utils/session-manager.js.map +0 -1
- package/dist/esm/utils/simple-connection-monitor.js +0 -48
- package/dist/esm/utils/simple-connection-monitor.js.map +0 -1
- package/dist/esm/utils/websocket-client.js +0 -634
- package/dist/esm/utils/websocket-client.js.map +0 -1
- package/dist/esm/ws/base-ws-client.js +0 -276
- package/dist/esm/ws/base-ws-client.js.map +0 -1
- package/dist/esm/ws/dependencies-ws-client.js +0 -7
- package/dist/esm/ws/dependencies-ws-client.js.map +0 -1
- package/dist/esm/ws/file-editing-ws-client.js +0 -158
- package/dist/esm/ws/file-editing-ws-client.js.map +0 -1
- package/dist/esm/ws/filesystem-ws-client.js +0 -301
- package/dist/esm/ws/filesystem-ws-client.js.map +0 -1
- package/dist/esm/ws/indexing-ws-client.js +0 -271
- package/dist/esm/ws/indexing-ws-client.js.map +0 -1
- package/dist/esm/ws/notifications-ws-client.js +0 -8
- package/dist/esm/ws/notifications-ws-client.js.map +0 -1
- package/dist/types/api/agents-api.d.ts +0 -141
- package/dist/types/api/agents-api.d.ts.map +0 -1
- package/dist/types/api/chat-api/websocket-helpers.d.ts +0 -40
- package/dist/types/api/chat-api/websocket-helpers.d.ts.map +0 -1
- package/dist/types/api/dependencies-api.d.ts +0 -109
- package/dist/types/api/dependencies-api.d.ts.map +0 -1
- package/dist/types/constants/websocket-events.constants.d.ts +0 -144
- package/dist/types/constants/websocket-events.constants.d.ts.map +0 -1
- package/dist/types/constants/websocket-namespaces.constants.d.ts +0 -17
- package/dist/types/constants/websocket-namespaces.constants.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +0 -30
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +0 -51
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/events.interfaces.d.ts +0 -165
- package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts +0 -56
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts.map +0 -1
- package/dist/types/simple-indexing-client.d.ts +0 -66
- package/dist/types/simple-indexing-client.d.ts.map +0 -1
- package/dist/types/utils/code-solver-websocket-client.d.ts +0 -144
- package/dist/types/utils/code-solver-websocket-client.d.ts.map +0 -1
- package/dist/types/utils/connection-state-manager.d.ts +0 -94
- package/dist/types/utils/connection-state-manager.d.ts.map +0 -1
- package/dist/types/utils/indexing-websocket-client.d.ts +0 -123
- package/dist/types/utils/indexing-websocket-client.d.ts.map +0 -1
- package/dist/types/utils/session-manager.d.ts +0 -98
- package/dist/types/utils/session-manager.d.ts.map +0 -1
- package/dist/types/utils/simple-connection-monitor.d.ts +0 -26
- package/dist/types/utils/simple-connection-monitor.d.ts.map +0 -1
- package/dist/types/utils/websocket-client.d.ts +0 -233
- package/dist/types/utils/websocket-client.d.ts.map +0 -1
- package/dist/types/ws/base-ws-client.d.ts +0 -119
- package/dist/types/ws/base-ws-client.d.ts.map +0 -1
- package/dist/types/ws/dependencies-ws-client.d.ts +0 -6
- package/dist/types/ws/dependencies-ws-client.d.ts.map +0 -1
- package/dist/types/ws/file-editing-ws-client.d.ts +0 -85
- package/dist/types/ws/file-editing-ws-client.d.ts.map +0 -1
- package/dist/types/ws/filesystem-ws-client.d.ts +0 -201
- package/dist/types/ws/filesystem-ws-client.d.ts.map +0 -1
- package/dist/types/ws/indexing-ws-client.d.ts +0 -94
- package/dist/types/ws/indexing-ws-client.d.ts.map +0 -1
- package/dist/types/ws/notifications-ws-client.d.ts +0 -5
- package/dist/types/ws/notifications-ws-client.d.ts.map +0 -1
- package/docs/ARCHITECTURE.md +0 -268
- package/docs/QUICK_START.md +0 -126
- package/docs/WEBSOCKET.md +0 -472
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solver-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "SDK для интеграции с Code Solver Backend API",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -37,44 +37,47 @@
|
|
|
37
37
|
"test:quick": "node quick-test.js",
|
|
38
38
|
"test:unit": "npx jest sdk-test/unit/ --testMatch=\"**/sdk-test/unit/**/*.test.js\"",
|
|
39
39
|
"test:mock": "./sdk-test/run-integration-tests.sh mock-only",
|
|
40
|
-
"test:integration": "
|
|
40
|
+
"test:integration": "node --experimental-vm-modules node_modules/.bin/jest sdk-test/integration/",
|
|
41
41
|
"test:integration:full": "./sdk-test/run-integration-tests.sh with-backend",
|
|
42
42
|
"test:node": "cross-env NODE_OPTIONS=--experimental-vm-modules jest tests/node",
|
|
43
43
|
"test:browser": "cross-env NODE_OPTIONS=--experimental-vm-modules jest tests/browser",
|
|
44
|
-
"test:indexing": "
|
|
45
|
-
"test:indexing:integration": "
|
|
46
|
-
"test:reasoning": "
|
|
47
|
-
"test:reasoning:
|
|
48
|
-
"test:reasoning:
|
|
49
|
-
"test:reasoning:
|
|
50
|
-
"test:reasoning:all": "npm run test:reasoning && npm run test:reasoning:websocket && npm run test:reasoning:anthropic && npm run test:reasoning:e2e",
|
|
44
|
+
"test:indexing": "node --experimental-vm-modules node_modules/.bin/jest tests/unit/indexing",
|
|
45
|
+
"test:indexing:integration": "TEST_WITH_BACKEND=true node --experimental-vm-modules node_modules/.bin/jest tests/unit/indexing",
|
|
46
|
+
"test:reasoning": "node --experimental-vm-modules node_modules/.bin/jest tests/unit/reasoning/",
|
|
47
|
+
"test:reasoning:anthropic": "node --experimental-vm-modules node_modules/.bin/jest tests/integration/anthropic.test.js",
|
|
48
|
+
"test:reasoning:e2e": "node --experimental-vm-modules node_modules/.bin/jest tests/integration/e2e-reasoning.test.js",
|
|
49
|
+
"test:reasoning:all": "npm run test:reasoning && npm run test:reasoning:anthropic && npm run test:reasoning:e2e",
|
|
51
50
|
"test:reasoning:script": "./scripts/run-reasoning-tests.sh",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"example:
|
|
55
|
-
"example:
|
|
51
|
+
"test:api": "node --experimental-vm-modules node_modules/.bin/jest sdk-test/integration/",
|
|
52
|
+
"test:basic": "node --experimental-vm-modules node_modules/.bin/jest sdk-test/integration/full-api-coverage.test.js",
|
|
53
|
+
"example:check-api": "node examples/check-api-connection.js",
|
|
54
|
+
"example:indexing": "node examples/indexing-example.js",
|
|
55
|
+
"example:dependencies": "node examples/dependencies-example.js",
|
|
56
|
+
"example:regions": "node examples/region-test.js",
|
|
56
57
|
"prepare": "npm run build",
|
|
57
58
|
"prepublishOnly": "npm run build"
|
|
58
59
|
},
|
|
59
60
|
"keywords": [
|
|
60
|
-
"
|
|
61
|
+
"ai",
|
|
62
|
+
"code-analysis",
|
|
63
|
+
"code-search",
|
|
61
64
|
"sdk",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
+
"anthropic",
|
|
66
|
+
"claude",
|
|
67
|
+
"typescript",
|
|
68
|
+
"javascript",
|
|
69
|
+
"node",
|
|
65
70
|
"browser",
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"code-analysis"
|
|
71
|
+
"http",
|
|
72
|
+
"rest",
|
|
73
|
+
"api"
|
|
70
74
|
],
|
|
71
75
|
"author": "Code Solver Team",
|
|
72
76
|
"license": "MIT",
|
|
73
77
|
"dependencies": {
|
|
74
78
|
"axios": "^1.7.9",
|
|
75
79
|
"event-source-polyfill": "^1.0.31",
|
|
76
|
-
"node-fetch": "^3.3.2"
|
|
77
|
-
"socket.io-client": "^4.8.1"
|
|
80
|
+
"node-fetch": "^3.3.2"
|
|
78
81
|
},
|
|
79
82
|
"devDependencies": {
|
|
80
83
|
"@babel/core": "^7.24.0",
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AgentsApi = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* API для работы с агентами
|
|
6
|
-
*/
|
|
7
|
-
class AgentsApi {
|
|
8
|
-
/**
|
|
9
|
-
* Создает новый экземпляр API для работы с агентами
|
|
10
|
-
* @param {HttpClient} httpClient HTTP клиент
|
|
11
|
-
*/
|
|
12
|
-
constructor(httpClient) {
|
|
13
|
-
this.httpClient = httpClient;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Получает список всех агентов проекта
|
|
17
|
-
* @param {string} projectId Идентификатор проекта
|
|
18
|
-
* @returns {Promise<Agent[]>} Список агентов
|
|
19
|
-
*/
|
|
20
|
-
async getAgents(projectId) {
|
|
21
|
-
return this.httpClient.get(`/api/projects/${projectId}/agents`);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Получает агента по идентификатору
|
|
25
|
-
* @param {string} agentId Идентификатор агента
|
|
26
|
-
* @returns {Promise<Agent>} Агент
|
|
27
|
-
*/
|
|
28
|
-
async getAgent(agentId) {
|
|
29
|
-
return this.httpClient.get(`/api/agents/${agentId}`);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Создает нового агента
|
|
33
|
-
* @param {CreateAgentParams} params Параметры создания агента
|
|
34
|
-
* @returns {Promise<Agent>} Созданный агент
|
|
35
|
-
*/
|
|
36
|
-
async createAgent(params) {
|
|
37
|
-
return this.httpClient.post('/api/agents', params);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Обновляет агента
|
|
41
|
-
* @param {string} agentId Идентификатор агента
|
|
42
|
-
* @param {Partial<Pick<Agent, 'name' | 'description' | 'settings'>>} data Данные для обновления
|
|
43
|
-
* @returns {Promise<Agent>} Обновленный агент
|
|
44
|
-
*/
|
|
45
|
-
async updateAgent(agentId, data) {
|
|
46
|
-
return this.httpClient.put(`/api/agents/${agentId}`, data);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Удаляет агента
|
|
50
|
-
* @param {string} agentId Идентификатор агента
|
|
51
|
-
* @returns {Promise<void>}
|
|
52
|
-
*/
|
|
53
|
-
async deleteAgent(agentId) {
|
|
54
|
-
return this.httpClient.delete(`/api/agents/${agentId}`);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Запускает агента
|
|
58
|
-
* @param {string} agentId Идентификатор агента
|
|
59
|
-
* @param {object} [params] Параметры запуска
|
|
60
|
-
* @returns {Promise<Agent>} Обновленный агент
|
|
61
|
-
*/
|
|
62
|
-
async startAgent(agentId, params) {
|
|
63
|
-
return this.httpClient.post(`/api/agents/${agentId}/start`, params);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Останавливает агента
|
|
67
|
-
* @param {string} agentId Идентификатор агента
|
|
68
|
-
* @returns {Promise<Agent>} Обновленный агент
|
|
69
|
-
*/
|
|
70
|
-
async stopAgent(agentId) {
|
|
71
|
-
return this.httpClient.post(`/api/agents/${agentId}/stop`);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Получает задачи агента
|
|
75
|
-
* @param {string} agentId Идентификатор агента
|
|
76
|
-
* @returns {Promise<AgentTask[]>} Список задач
|
|
77
|
-
*/
|
|
78
|
-
async getAgentTasks(agentId) {
|
|
79
|
-
return this.httpClient.get(`/api/agents/${agentId}/tasks`);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Создает новую задачу для агента
|
|
83
|
-
* @param {string} agentId Идентификатор агента
|
|
84
|
-
* @param {object} params Параметры задачи
|
|
85
|
-
* @param {string} params.description Описание задачи
|
|
86
|
-
* @param {object} [params.context] Контекст задачи
|
|
87
|
-
* @returns {Promise<AgentTask>} Созданная задача
|
|
88
|
-
*/
|
|
89
|
-
async createAgentTask(agentId, params) {
|
|
90
|
-
return this.httpClient.post(`/api/agents/${agentId}/tasks`, params);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
exports.AgentsApi = AgentsApi;
|
|
94
|
-
//# sourceMappingURL=agents-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agents-api.js","sourceRoot":"","sources":["../../../src/api/agents-api.ts"],"names":[],"mappings":";;;AA0FA;;GAEG;AACH,MAAa,SAAS;IAIpB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAAC,SAAiB;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,SAAS,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,MAAyB;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CACtB,OAAe,EACf,IAA+D;QAE/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,OAAe;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAe;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,OAAO,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAAC,OAAe;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,OAAO,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,OAAe;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,OAAO,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,eAAe,CAC1B,OAAe,EACf,MAAiD;QAEjD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,OAAO,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;CACF;AAvGD,8BAuGC"}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setupSocketEventHandlers = setupSocketEventHandlers;
|
|
4
|
-
exports.generateId = generateId;
|
|
5
|
-
exports.createWebSocketEventHandler = createWebSocketEventHandler;
|
|
6
|
-
exports.normalizeEventName = normalizeEventName;
|
|
7
|
-
const websocket_events_constants_1 = require("../../constants/websocket-events.constants");
|
|
8
|
-
/**
|
|
9
|
-
* Настраивает обработчики событий для WebSocket
|
|
10
|
-
*/
|
|
11
|
-
function setupSocketEventHandlers(socket, socketId, sessionId, onEvent) {
|
|
12
|
-
// Установка обработчиков событий
|
|
13
|
-
socket.on('connect', () => {
|
|
14
|
-
console.log(`[SDK] WebSocket подключен: ${socket.id}, задано socketId: ${socketId}`);
|
|
15
|
-
// При подключении отправляем событие аутентификации
|
|
16
|
-
socket.emit('authenticate', {
|
|
17
|
-
socketId: socketId,
|
|
18
|
-
token: 'test-token'
|
|
19
|
-
});
|
|
20
|
-
// Отправляем событие присоединения к комнате с ID сессии
|
|
21
|
-
socket.emit('join_room', { roomId: sessionId });
|
|
22
|
-
// Вызываем обработчик события connect
|
|
23
|
-
if (onEvent) {
|
|
24
|
-
onEvent('connect', { socketId });
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
// Обработчик сообщений от сервера
|
|
28
|
-
socket.on('message', (data) => {
|
|
29
|
-
if (!onEvent || !data)
|
|
30
|
-
return;
|
|
31
|
-
// Обрабатываем случай, когда сервер отправляет сообщения в формате JSON-строки
|
|
32
|
-
if (typeof data === 'string') {
|
|
33
|
-
try {
|
|
34
|
-
data = JSON.parse(data);
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
// Оставляем как строку, если не удалось распарсить
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
// Передаем событие напрямую, без преобразования формата
|
|
41
|
-
if (data && data.type) {
|
|
42
|
-
onEvent(data.type, data);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
// Передаем все остальные сообщения как есть
|
|
46
|
-
onEvent('message', data);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
// Обработчик ошибок
|
|
50
|
-
socket.on('error', (error) => {
|
|
51
|
-
console.error('[SDK] WebSocket error:', error);
|
|
52
|
-
// Проверяем наличие ошибки географических ограничений
|
|
53
|
-
const isGeoRestriction = (error.type === 'geo_restriction' || error.code === 403) &&
|
|
54
|
-
error.message &&
|
|
55
|
-
(error.message.includes('ограничен в вашем регионе') ||
|
|
56
|
-
error.message.includes('Request not allowed'));
|
|
57
|
-
if (isGeoRestriction) {
|
|
58
|
-
console.error('\n==============================================');
|
|
59
|
-
console.error('⚠️ ОШИБКА ГЕОГРАФИЧЕСКОГО ОГРАНИЧЕНИЯ API ANTHROPIC');
|
|
60
|
-
console.error('⚠️ Для работы с API Anthropic требуется VPN или прокси');
|
|
61
|
-
console.error('⚠️ Anthropic API доступен только из определенных регионов');
|
|
62
|
-
console.error('==============================================');
|
|
63
|
-
}
|
|
64
|
-
if (onEvent) {
|
|
65
|
-
onEvent('error', {
|
|
66
|
-
message: error.message || 'Unknown WebSocket error',
|
|
67
|
-
code: error.code,
|
|
68
|
-
type: isGeoRestriction ? 'geo_restriction' : (error.type || 'websocket_error')
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
// Обработчик отключения
|
|
73
|
-
socket.on('disconnect', (reason) => {
|
|
74
|
-
console.log(`[SDK] WebSocket отключен: ${reason}`);
|
|
75
|
-
if (onEvent) {
|
|
76
|
-
onEvent('disconnect', { reason });
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
// Обработчики для событий аутентификации
|
|
80
|
-
socket.on('authenticated', (data) => {
|
|
81
|
-
console.log('[SDK] Аутентификация успешна', data);
|
|
82
|
-
if (onEvent) {
|
|
83
|
-
onEvent('authenticated', data);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
socket.on('authentication_error', (data) => {
|
|
87
|
-
console.error('[SDK] Ошибка аутентификации:', data);
|
|
88
|
-
if (onEvent) {
|
|
89
|
-
onEvent('error', { message: 'Ошибка аутентификации: ' + (data.message || 'Unknown error'), code: 'AUTH_ERROR' });
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
// Список актуальных событий API Anthropic
|
|
93
|
-
[
|
|
94
|
-
'message_start', 'content_block_start', 'content_block_delta',
|
|
95
|
-
'content_block_stop', 'message_delta', 'message_stop', 'done', 'ping'
|
|
96
|
-
].forEach(eventType => {
|
|
97
|
-
socket.on(eventType, (data) => {
|
|
98
|
-
if (!onEvent)
|
|
99
|
-
return;
|
|
100
|
-
// Передаем события в их исходном формате без преобразования
|
|
101
|
-
onEvent(eventType, data);
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Генерирует случайный ID указанной длины
|
|
107
|
-
*/
|
|
108
|
-
function generateId(length) {
|
|
109
|
-
const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
|
110
|
-
let result = '';
|
|
111
|
-
for (let i = 0; i < length; i++) {
|
|
112
|
-
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
113
|
-
}
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Создает обработчик WebSocket событий для работы с API Anthropic
|
|
118
|
-
* @param socket Socket.io сокет
|
|
119
|
-
* @param options Опции обработчика
|
|
120
|
-
* @returns Функция отписки от событий
|
|
121
|
-
*/
|
|
122
|
-
function createWebSocketEventHandler(socket, options) {
|
|
123
|
-
const { onMessageStart, onContentBlockStart, onContentBlockDelta, onContentBlockStop, onMessageDelta, onMessageStop, onThinking, onText, onInputJson, onSignature, onError, onDone } = options;
|
|
124
|
-
// Общая функция для обработки events
|
|
125
|
-
const handleEvent = (event, handler) => {
|
|
126
|
-
if (handler) {
|
|
127
|
-
socket.on(event, (data) => {
|
|
128
|
-
try {
|
|
129
|
-
handler(data);
|
|
130
|
-
}
|
|
131
|
-
catch (err) {
|
|
132
|
-
console.error(`Ошибка при обработке события ${event}:`, err);
|
|
133
|
-
if (onError)
|
|
134
|
-
onError(err);
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
// Регистрируем обработчики для всех требуемых событий
|
|
140
|
-
handleEvent(websocket_events_constants_1.WebSocketEvents.MESSAGE_START, onMessageStart);
|
|
141
|
-
handleEvent(websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_START, onContentBlockStart);
|
|
142
|
-
handleEvent(websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_STOP, onContentBlockStop);
|
|
143
|
-
handleEvent(websocket_events_constants_1.WebSocketEvents.MESSAGE_DELTA, onMessageDelta);
|
|
144
|
-
handleEvent(websocket_events_constants_1.WebSocketEvents.MESSAGE_STOP, onMessageStop);
|
|
145
|
-
handleEvent(websocket_events_constants_1.WebSocketEvents.ERROR, onError);
|
|
146
|
-
handleEvent(websocket_events_constants_1.WebSocketEvents.DONE, onDone);
|
|
147
|
-
// Обработчик дельт блоков контента
|
|
148
|
-
if (onContentBlockDelta || onThinking || onText || onInputJson || onSignature) {
|
|
149
|
-
socket.on(websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_DELTA, (data) => {
|
|
150
|
-
try {
|
|
151
|
-
// Вызываем общий обработчик для всех дельт
|
|
152
|
-
if (onContentBlockDelta) {
|
|
153
|
-
onContentBlockDelta(data);
|
|
154
|
-
}
|
|
155
|
-
// Обрабатываем разные типы дельт
|
|
156
|
-
if (data.delta && data.delta.type) {
|
|
157
|
-
// Обработка thinking
|
|
158
|
-
if (data.delta.type === websocket_events_constants_1.ContentBlockDeltaTypes.THINKING_DELTA && onThinking && data.delta.thinking) {
|
|
159
|
-
onThinking(data.delta.thinking);
|
|
160
|
-
}
|
|
161
|
-
// Обработка текста
|
|
162
|
-
else if (data.delta.type === websocket_events_constants_1.ContentBlockDeltaTypes.TEXT_DELTA && onText && data.delta.text) {
|
|
163
|
-
onText(data.delta.text);
|
|
164
|
-
}
|
|
165
|
-
// Обработка JSON для инструментов
|
|
166
|
-
else if (data.delta.type === websocket_events_constants_1.ContentBlockDeltaTypes.INPUT_JSON_DELTA && onInputJson) {
|
|
167
|
-
const jsonData = data.delta.input_json || '';
|
|
168
|
-
onInputJson(jsonData);
|
|
169
|
-
}
|
|
170
|
-
// Обработка подписи для верификации
|
|
171
|
-
else if (data.delta.type === websocket_events_constants_1.ContentBlockDeltaTypes.SIGNATURE_DELTA && onSignature && data.delta.signature) {
|
|
172
|
-
onSignature(data.delta.signature);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
catch (err) {
|
|
177
|
-
console.error('Ошибка при обработке события content_block_delta:', err);
|
|
178
|
-
if (onError)
|
|
179
|
-
onError(err);
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
// Возвращаем функцию для отписки от всех событий
|
|
184
|
-
return () => {
|
|
185
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.MESSAGE_START);
|
|
186
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_START);
|
|
187
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_DELTA);
|
|
188
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_STOP);
|
|
189
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.MESSAGE_DELTA);
|
|
190
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.MESSAGE_STOP);
|
|
191
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.ERROR);
|
|
192
|
-
socket.off(websocket_events_constants_1.WebSocketEvents.DONE);
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Нормализует имя события для совместимости с API Anthropic
|
|
197
|
-
* @param eventName Имя события
|
|
198
|
-
* @returns Нормализованное имя события
|
|
199
|
-
*/
|
|
200
|
-
function normalizeEventName(eventName) {
|
|
201
|
-
const eventMap = {
|
|
202
|
-
'message.start': websocket_events_constants_1.WebSocketEvents.MESSAGE_START,
|
|
203
|
-
'message.stop': websocket_events_constants_1.WebSocketEvents.MESSAGE_STOP,
|
|
204
|
-
'message.delta': websocket_events_constants_1.WebSocketEvents.MESSAGE_DELTA,
|
|
205
|
-
'content_block.start': websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_START,
|
|
206
|
-
'content_block.delta': websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_DELTA,
|
|
207
|
-
'content_block.stop': websocket_events_constants_1.WebSocketEvents.CONTENT_BLOCK_STOP,
|
|
208
|
-
};
|
|
209
|
-
return eventMap[eventName] || eventName;
|
|
210
|
-
}
|
|
211
|
-
//# sourceMappingURL=websocket-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-helpers.js","sourceRoot":"","sources":["../../../../src/api/chat-api/websocket-helpers.ts"],"names":[],"mappings":"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"}
|