solver-sdk 8.1.1 → 8.3.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 +100 -14
- package/dist/cjs/api/credits-api.js +24 -4
- package/dist/cjs/api/credits-api.js.map +1 -1
- package/dist/cjs/api/delta-chunking-api.js +15 -0
- package/dist/cjs/api/delta-chunking-api.js.map +1 -1
- package/dist/cjs/delta-chunking/delta-chunking-manager.js +55 -0
- package/dist/cjs/delta-chunking/delta-chunking-manager.js.map +1 -1
- package/dist/cjs/errors/sdk-errors.js +216 -0
- package/dist/cjs/errors/sdk-errors.js.map +1 -0
- package/dist/cjs/index.js +20 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/error-mapper.js +149 -0
- package/dist/cjs/utils/error-mapper.js.map +1 -0
- package/dist/cjs/utils/http-client.js +9 -37
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/esm/api/credits-api.js +24 -4
- package/dist/esm/api/credits-api.js.map +1 -1
- package/dist/esm/api/delta-chunking-api.js +15 -0
- package/dist/esm/api/delta-chunking-api.js.map +1 -1
- package/dist/esm/delta-chunking/delta-chunking-manager.js +55 -0
- package/dist/esm/delta-chunking/delta-chunking-manager.js.map +1 -1
- package/dist/esm/errors/sdk-errors.js +198 -0
- package/dist/esm/errors/sdk-errors.js.map +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/error-mapper.js +145 -0
- package/dist/esm/utils/error-mapper.js.map +1 -0
- package/dist/esm/utils/http-client.js +9 -37
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/types/api/credits-api.d.ts +24 -4
- package/dist/types/api/credits-api.d.ts.map +1 -1
- package/dist/types/api/delta-chunking-api.d.ts +5 -1
- package/dist/types/api/delta-chunking-api.d.ts.map +1 -1
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts +28 -1
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts.map +1 -1
- package/dist/types/errors/sdk-errors.d.ts +156 -0
- package/dist/types/errors/sdk-errors.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/http-client.d.ts +0 -9
- package/dist/types/interfaces/http-client.d.ts.map +1 -1
- package/dist/types/types/delta-chunking.d.ts +22 -0
- package/dist/types/types/delta-chunking.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +2 -2
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/error-mapper.d.ts +24 -0
- package/dist/types/utils/error-mapper.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/errors/limit-errors.js +0 -80
- package/dist/cjs/errors/limit-errors.js.map +0 -1
- package/dist/esm/errors/limit-errors.js +0 -74
- package/dist/esm/errors/limit-errors.js.map +0 -1
- package/dist/types/errors/limit-errors.d.ts +0 -61
- package/dist/types/errors/limit-errors.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
# Code Solver SDK v8.
|
|
1
|
+
# Code Solver SDK v8.2.0
|
|
2
2
|
|
|
3
3
|
AI-powered code analysis SDK with WorkCoins billing system. 100% typed, production ready.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install solver-sdk@8.
|
|
8
|
+
npm install solver-sdk@8.2.0
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## ✨ What's New in v8.2.0
|
|
12
|
+
|
|
13
|
+
**Centralized Error Handling** - Full typed error system with 15+ error classes:
|
|
14
|
+
- 🎯 **Typed exceptions** instead of `null` returns
|
|
15
|
+
- 🔍 **TypeScript autocomplete** for all error types
|
|
16
|
+
- 🛡️ **Better debugging** with `requestId`, `timestamp`, `details`
|
|
17
|
+
- ✅ **Backward compatible** - existing code continues to work
|
|
18
|
+
|
|
19
|
+
See [Error Handling](#error-handling) section for details.
|
|
20
|
+
|
|
11
21
|
## Quick Start
|
|
12
22
|
|
|
13
23
|
```typescript
|
|
@@ -62,7 +72,9 @@ const sdk = await CodeSolverSDK.create({
|
|
|
62
72
|
getAuthToken: async () => 'your-token'
|
|
63
73
|
});
|
|
64
74
|
|
|
65
|
-
// Production with token refresh
|
|
75
|
+
// Production with token refresh + error handling
|
|
76
|
+
import { AuthenticationError } from 'solver-sdk';
|
|
77
|
+
|
|
66
78
|
const sdk = await CodeSolverSDK.create({
|
|
67
79
|
baseURL: 'https://api.example.com',
|
|
68
80
|
getAuthToken: async () => {
|
|
@@ -72,6 +84,16 @@ const sdk = await CodeSolverSDK.create({
|
|
|
72
84
|
return getToken();
|
|
73
85
|
}
|
|
74
86
|
});
|
|
87
|
+
|
|
88
|
+
// All methods throw AuthenticationError on 401
|
|
89
|
+
try {
|
|
90
|
+
await sdk.user.getProfile();
|
|
91
|
+
} catch (error) {
|
|
92
|
+
if (error instanceof AuthenticationError) {
|
|
93
|
+
await refreshToken();
|
|
94
|
+
// retry
|
|
95
|
+
}
|
|
96
|
+
}
|
|
75
97
|
```
|
|
76
98
|
|
|
77
99
|
## WebSocket (Real-time)
|
|
@@ -95,26 +117,74 @@ sdk.projectSync.on('sync-completed', (data) => {
|
|
|
95
117
|
|
|
96
118
|
## Error Handling
|
|
97
119
|
|
|
98
|
-
|
|
120
|
+
**v8.2.0+** All SDK methods throw typed exceptions instead of returning `null`. This enables better error handling with TypeScript autocomplete.
|
|
99
121
|
|
|
100
|
-
|
|
122
|
+
### Available Error Types
|
|
101
123
|
|
|
102
124
|
```typescript
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
//
|
|
106
|
-
|
|
125
|
+
import {
|
|
126
|
+
// Auth errors
|
|
127
|
+
AuthenticationError, // 401 - token expired/invalid
|
|
128
|
+
ForbiddenError, // 403 - access denied
|
|
129
|
+
|
|
130
|
+
// Client errors
|
|
131
|
+
ValidationError, // 422 - invalid data
|
|
132
|
+
NotFoundError, // 404 - resource not found
|
|
133
|
+
ConflictError, // 409 - data conflict
|
|
134
|
+
BadRequestError, // 400 - bad request
|
|
135
|
+
|
|
136
|
+
// Server errors
|
|
137
|
+
InternalServerError, // 500 - server error
|
|
138
|
+
ServiceUnavailableError, // 503 - service down
|
|
139
|
+
GatewayTimeoutError, // 504 - timeout
|
|
140
|
+
|
|
141
|
+
// Special errors
|
|
142
|
+
LimitExceededError, // 403 - credits limit exceeded
|
|
143
|
+
RateLimitError, // 429 - too many requests
|
|
144
|
+
NetworkError, // 0 - network failure
|
|
145
|
+
TimeoutError, // 408 - request timeout
|
|
146
|
+
DatabaseError // 400 - database error
|
|
147
|
+
} from 'solver-sdk';
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Basic Error Handling
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
try {
|
|
154
|
+
const status = await sdk.credits.getStatus();
|
|
155
|
+
console.log(status.balance);
|
|
156
|
+
|
|
157
|
+
} catch (error) {
|
|
158
|
+
// All errors have common properties:
|
|
159
|
+
console.log(error.statusCode); // HTTP status code
|
|
160
|
+
console.log(error.errorType); // Error type string
|
|
161
|
+
console.log(error.requestId); // For correlation with backend logs
|
|
162
|
+
console.log(error.timestamp); // When error occurred
|
|
163
|
+
console.log(error.rawResponse); // Full backend response
|
|
107
164
|
}
|
|
165
|
+
```
|
|
108
166
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
167
|
+
### Auth Error Handling
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
import { AuthenticationError } from 'solver-sdk';
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
const balance = await sdk.credits.getBalance();
|
|
174
|
+
} catch (error) {
|
|
175
|
+
if (error instanceof AuthenticationError) {
|
|
176
|
+
// Token expired or invalid
|
|
177
|
+
console.log('Token expired, refreshing...');
|
|
178
|
+
await refreshToken();
|
|
179
|
+
// Retry the request
|
|
180
|
+
return retry();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
113
183
|
```
|
|
114
184
|
|
|
115
185
|
### Usage Limits & Rate Limiting
|
|
116
186
|
|
|
117
|
-
SDK
|
|
187
|
+
SDK provides specialized error classes for limits:
|
|
118
188
|
|
|
119
189
|
#### Checking Limit Status
|
|
120
190
|
|
|
@@ -369,6 +439,22 @@ if (state.syncRequired) {
|
|
|
369
439
|
await sdk.deltaManager.cancelSync(projectId);
|
|
370
440
|
```
|
|
371
441
|
|
|
442
|
+
### File Invalidation
|
|
443
|
+
|
|
444
|
+
```typescript
|
|
445
|
+
// Инвалидировать файл при изменении
|
|
446
|
+
const result = await sdk.deltaManager.invalidateFile(projectId, {
|
|
447
|
+
filePath: 'src/app.tsx',
|
|
448
|
+
reason: 'file_changed'
|
|
449
|
+
});
|
|
450
|
+
|
|
451
|
+
console.log(`Invalidated ${result.chunksInvalidated} chunks`);
|
|
452
|
+
console.log(`Cache invalidated: ${result.cacheInvalidated}`);
|
|
453
|
+
|
|
454
|
+
// Отправить новые chunks после инвалидации
|
|
455
|
+
await sdk.deltaManager.syncEncryptedChunks(projectId, newChunks, rootHash);
|
|
456
|
+
```
|
|
457
|
+
|
|
372
458
|
## Session Recovery
|
|
373
459
|
|
|
374
460
|
```typescript
|
|
@@ -13,7 +13,9 @@ class CreditsApi {
|
|
|
13
13
|
* Получить баланс credits (WorkCoins)
|
|
14
14
|
*
|
|
15
15
|
* @returns Текущий баланс credits пользователя
|
|
16
|
-
* @throws {
|
|
16
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
17
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
18
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
17
19
|
*/
|
|
18
20
|
async getBalance() {
|
|
19
21
|
return await this.httpClient.get('/api/v1/credits/balance');
|
|
@@ -22,7 +24,10 @@ class CreditsApi {
|
|
|
22
24
|
* Получить статус credits (с рекомендациями)
|
|
23
25
|
*
|
|
24
26
|
* @returns Статус credits и рекомендации
|
|
25
|
-
* @throws {
|
|
27
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
28
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
29
|
+
* @throws {LimitExceededError} При превышении лимита credits
|
|
30
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
26
31
|
*/
|
|
27
32
|
async getStatus() {
|
|
28
33
|
return await this.httpClient.get('/api/v1/credits/status');
|
|
@@ -34,6 +39,9 @@ class CreditsApi {
|
|
|
34
39
|
* @param model - Модель (haiku/sonnet/auto)
|
|
35
40
|
* @param operationType - Тип операции
|
|
36
41
|
* @returns Оценка стоимости в credits (WorkCoins)
|
|
42
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
43
|
+
* @throws {ValidationError} При некорректных параметрах запроса (422)
|
|
44
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
37
45
|
*/
|
|
38
46
|
async estimate(tokens, model = 'haiku', operationType = 'simple_prompt') {
|
|
39
47
|
return await this.httpClient.post('/api/v1/credits/estimate', {
|
|
@@ -46,6 +54,9 @@ class CreditsApi {
|
|
|
46
54
|
* Получить конфигурацию overage (pay-as-you-go)
|
|
47
55
|
*
|
|
48
56
|
* @returns Настройки overage пользователя
|
|
57
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
58
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
59
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
49
60
|
*/
|
|
50
61
|
async getOverageConfig() {
|
|
51
62
|
return await this.httpClient.get('/api/v1/credits/overage');
|
|
@@ -54,6 +65,9 @@ class CreditsApi {
|
|
|
54
65
|
* Получить статистику overage за текущий месяц
|
|
55
66
|
*
|
|
56
67
|
* @returns Статистика использования overage
|
|
68
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
69
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
70
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
57
71
|
*/
|
|
58
72
|
async getOverageStats() {
|
|
59
73
|
return await this.httpClient.get('/api/v1/credits/overage/stats');
|
|
@@ -62,7 +76,10 @@ class CreditsApi {
|
|
|
62
76
|
* Включить/выключить overage
|
|
63
77
|
*
|
|
64
78
|
* @param enabled - true для включения, false для выключения
|
|
65
|
-
* @throws {
|
|
79
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
80
|
+
* @throws {ForbiddenError} Если пользователь на Free плане (403)
|
|
81
|
+
* @throws {ValidationError} При некорректных параметрах (422)
|
|
82
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
66
83
|
*/
|
|
67
84
|
async toggleOverage(enabled) {
|
|
68
85
|
await this.httpClient.post('/api/v1/credits/overage/toggle', { enabled });
|
|
@@ -71,7 +88,10 @@ class CreditsApi {
|
|
|
71
88
|
* Обновить лимит overage
|
|
72
89
|
*
|
|
73
90
|
* @param limitCredits - Новый лимит overage в credits
|
|
74
|
-
* @throws {
|
|
91
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
92
|
+
* @throws {BadRequestError} Если лимит некорректный (400)
|
|
93
|
+
* @throws {ValidationError} При ошибке валидации (422)
|
|
94
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
75
95
|
*/
|
|
76
96
|
async updateOverageLimit(limitCredits) {
|
|
77
97
|
await this.httpClient.post('/api/v1/credits/overage/limit', { limitCredits });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credits-api.js","sourceRoot":"","sources":["../../../src/api/credits-api.ts"],"names":[],"mappings":";;;AAWA;;;GAGG;AACH,MAAa,UAAU;IACrB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C
|
|
1
|
+
{"version":3,"file":"credits-api.js","sourceRoot":"","sources":["../../../src/api/credits-api.ts"],"names":[],"mappings":";;;AAWA;;;GAGG;AACH,MAAa,UAAU;IACrB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,yBAAyB,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,wBAAwB,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,QAAmB,OAAO,EAC1B,gBAA+B,eAAe;QAE9C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAkB,0BAA0B,EAAE;YAC7E,MAAM;YACN,KAAK;YACL,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,yBAAyB,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAe,+BAA+B,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,OAAgB;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAChF,CAAC;CACF;AApGD,gCAoGC"}
|
|
@@ -145,6 +145,21 @@ class DeltaChunkingApi {
|
|
|
145
145
|
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/cleanup-files`, { activeFiles });
|
|
146
146
|
return response;
|
|
147
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Инвалидировать chunks измененного файла
|
|
150
|
+
*/
|
|
151
|
+
async invalidateFile(projectId, options) {
|
|
152
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/delta/invalidate-file`, {
|
|
153
|
+
filePath: options.filePath,
|
|
154
|
+
reason: options.reason || 'file_changed'
|
|
155
|
+
});
|
|
156
|
+
return {
|
|
157
|
+
success: response.success !== false,
|
|
158
|
+
chunksInvalidated: response.chunksInvalidated || 0,
|
|
159
|
+
cacheInvalidated: response.cacheInvalidated !== false,
|
|
160
|
+
filePath: response.filePath || options.filePath
|
|
161
|
+
};
|
|
162
|
+
}
|
|
148
163
|
}
|
|
149
164
|
exports.DeltaChunkingApi = DeltaChunkingApi;
|
|
150
165
|
//# sourceMappingURL=delta-chunking-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta-chunking-api.js","sourceRoot":"","sources":["../../../src/api/delta-chunking-api.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"delta-chunking-api.js","sourceRoot":"","sources":["../../../src/api/delta-chunking-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,6 +222,61 @@ class DeltaChunkingManager {
|
|
|
222
222
|
this.ensureEnabled();
|
|
223
223
|
return await this.deltaApi.cleanupFiles(projectId, activeFiles);
|
|
224
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* 🗑️ Инвалидировать chunks измененного файла
|
|
227
|
+
*
|
|
228
|
+
* Удаляет устаревшие chunks из Qdrant и инвалидирует RAG cache.
|
|
229
|
+
* После инвалидации отправьте новые chunks через syncEncryptedChunks().
|
|
230
|
+
*
|
|
231
|
+
* @param projectId - UUID проекта
|
|
232
|
+
* @param options - Опции инвалидации (filePath обязателен)
|
|
233
|
+
* @returns Результат операции с количеством инвалидированных chunks
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```typescript
|
|
237
|
+
* // Инвалидировать файл после изменения
|
|
238
|
+
* const result = await sdk.deltaManager.invalidateFile(projectId, {
|
|
239
|
+
* filePath: 'src/app.tsx',
|
|
240
|
+
* reason: 'file_changed'
|
|
241
|
+
* });
|
|
242
|
+
*
|
|
243
|
+
* if (result.success) {
|
|
244
|
+
* console.log(`Invalidated ${result.chunksInvalidated} chunks`);
|
|
245
|
+
* }
|
|
246
|
+
*
|
|
247
|
+
* // Теперь отправить новые chunks
|
|
248
|
+
* await sdk.deltaManager.syncEncryptedChunks(projectId, newChunks, rootHash);
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
async invalidateFile(projectId, options) {
|
|
252
|
+
this.ensureEnabled();
|
|
253
|
+
if (!options.filePath || !options.filePath.trim()) {
|
|
254
|
+
throw new Error('filePath is required for file invalidation');
|
|
255
|
+
}
|
|
256
|
+
this.logger.log(`🗑️ Инвалидирую файл: ${options.filePath} (причина: ${options.reason || 'file_changed'})`);
|
|
257
|
+
try {
|
|
258
|
+
const result = await this.deltaApi.invalidateFile(projectId, options);
|
|
259
|
+
if (result.success) {
|
|
260
|
+
this.logger.log(`✅ Файл инвалидирован: ${result.chunksInvalidated} chunks удалено, ` +
|
|
261
|
+
`cache инвалидирован: ${result.cacheInvalidated}`);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
this.logger.warn(`⚠️ Инвалидация файла выполнена с предупреждениями`);
|
|
265
|
+
}
|
|
266
|
+
return result;
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
270
|
+
this.logger.error(`❌ Ошибка инвалидации файла: ${errorMessage}`);
|
|
271
|
+
// Graceful degradation: не бросаем ошибку, backend System Prompt recovery подхватит
|
|
272
|
+
return {
|
|
273
|
+
success: false,
|
|
274
|
+
chunksInvalidated: 0,
|
|
275
|
+
cacheInvalidated: false,
|
|
276
|
+
filePath: options.filePath
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
}
|
|
225
280
|
/**
|
|
226
281
|
* Проверка что delta-chunking включен
|
|
227
282
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta-chunking-manager.js","sourceRoot":"","sources":["../../../src/delta-chunking/delta-chunking-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"delta-chunking-manager.js","sourceRoot":"","sources":["../../../src/delta-chunking/delta-chunking-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Централизованные классы ошибок SDK
|
|
4
|
+
* Покрывают все типы ошибок backend с типизацией
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.RateLimitError = exports.LimitExceededError = exports.NetworkError = exports.TimeoutError = exports.DatabaseError = exports.GatewayTimeoutError = exports.ServiceUnavailableError = exports.InternalServerError = exports.BadRequestError = exports.ConflictError = exports.NotFoundError = exports.ValidationError = exports.ForbiddenError = exports.AuthenticationError = exports.BaseSDKError = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Базовый класс для всех SDK ошибок
|
|
10
|
+
*/
|
|
11
|
+
class BaseSDKError extends Error {
|
|
12
|
+
constructor(statusCode, errorType, message, details) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = this.constructor.name;
|
|
15
|
+
this.statusCode = statusCode;
|
|
16
|
+
this.errorType = errorType;
|
|
17
|
+
this.requestId = details?.requestId;
|
|
18
|
+
this.timestamp = details?.timestamp;
|
|
19
|
+
this.rawResponse = details;
|
|
20
|
+
// Поддержка stack trace в V8
|
|
21
|
+
if (Error.captureStackTrace) {
|
|
22
|
+
Error.captureStackTrace(this, this.constructor);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.BaseSDKError = BaseSDKError;
|
|
27
|
+
// ========================================
|
|
28
|
+
// CLIENT ERRORS (4xx)
|
|
29
|
+
// ========================================
|
|
30
|
+
/**
|
|
31
|
+
* Ошибка аутентификации (401)
|
|
32
|
+
* Выбрасывается при истекшем или невалидном access token
|
|
33
|
+
*/
|
|
34
|
+
class AuthenticationError extends BaseSDKError {
|
|
35
|
+
constructor(message, details) {
|
|
36
|
+
super(401, 'unauthorized', message, details);
|
|
37
|
+
/** Можно ли повторить запрос после refresh токена */
|
|
38
|
+
this.shouldRetry = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.AuthenticationError = AuthenticationError;
|
|
42
|
+
/**
|
|
43
|
+
* Ошибка доступа (403)
|
|
44
|
+
* Выбрасывается когда доступ запрещен (не путать с LimitExceededError)
|
|
45
|
+
*/
|
|
46
|
+
class ForbiddenError extends BaseSDKError {
|
|
47
|
+
constructor(message, details) {
|
|
48
|
+
super(403, 'forbidden', message, details);
|
|
49
|
+
this.reason = details?.reason;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ForbiddenError = ForbiddenError;
|
|
53
|
+
/**
|
|
54
|
+
* Ошибка валидации (422)
|
|
55
|
+
* Выбрасывается при невалидных данных в запросе
|
|
56
|
+
*/
|
|
57
|
+
class ValidationError extends BaseSDKError {
|
|
58
|
+
constructor(message, details) {
|
|
59
|
+
super(422, 'validation_error', message, details);
|
|
60
|
+
this.fields = details?.fields;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.ValidationError = ValidationError;
|
|
64
|
+
/**
|
|
65
|
+
* Ресурс не найден (404)
|
|
66
|
+
*/
|
|
67
|
+
class NotFoundError extends BaseSDKError {
|
|
68
|
+
constructor(message, details) {
|
|
69
|
+
super(404, 'not_found', message, details);
|
|
70
|
+
this.resource = details?.resource;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.NotFoundError = NotFoundError;
|
|
74
|
+
/**
|
|
75
|
+
* Конфликт данных (409)
|
|
76
|
+
* Выбрасывается при попытке создать дубликат или конфликтующую запись
|
|
77
|
+
*/
|
|
78
|
+
class ConflictError extends BaseSDKError {
|
|
79
|
+
constructor(message, details) {
|
|
80
|
+
super(409, 'conflict', message, details);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.ConflictError = ConflictError;
|
|
84
|
+
/**
|
|
85
|
+
* Некорректный запрос (400)
|
|
86
|
+
*/
|
|
87
|
+
class BadRequestError extends BaseSDKError {
|
|
88
|
+
constructor(message, details) {
|
|
89
|
+
super(400, 'bad_request', message, details);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.BadRequestError = BadRequestError;
|
|
93
|
+
// ========================================
|
|
94
|
+
// SERVER ERRORS (5xx)
|
|
95
|
+
// ========================================
|
|
96
|
+
/**
|
|
97
|
+
* Внутренняя ошибка сервера (500)
|
|
98
|
+
*/
|
|
99
|
+
class InternalServerError extends BaseSDKError {
|
|
100
|
+
constructor(message, details) {
|
|
101
|
+
super(500, 'internal_server_error', message, details);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.InternalServerError = InternalServerError;
|
|
105
|
+
/**
|
|
106
|
+
* Сервис недоступен (503)
|
|
107
|
+
*/
|
|
108
|
+
class ServiceUnavailableError extends BaseSDKError {
|
|
109
|
+
constructor(message, details) {
|
|
110
|
+
super(503, 'service_unavailable', message, details);
|
|
111
|
+
this.retryAfter = details?.retryAfter;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.ServiceUnavailableError = ServiceUnavailableError;
|
|
115
|
+
/**
|
|
116
|
+
* Таймаут gateway (504)
|
|
117
|
+
*/
|
|
118
|
+
class GatewayTimeoutError extends BaseSDKError {
|
|
119
|
+
constructor(message, details) {
|
|
120
|
+
super(504, 'gateway_timeout', message, details);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.GatewayTimeoutError = GatewayTimeoutError;
|
|
124
|
+
// ========================================
|
|
125
|
+
// СПЕЦИАЛЬНЫЕ ОШИБКИ
|
|
126
|
+
// ========================================
|
|
127
|
+
/**
|
|
128
|
+
* Ошибка базы данных
|
|
129
|
+
* Выбрасывается при SQL ошибках или проблемах с БД
|
|
130
|
+
*/
|
|
131
|
+
class DatabaseError extends BaseSDKError {
|
|
132
|
+
constructor(message, details) {
|
|
133
|
+
super(400, 'database_error', message, details);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.DatabaseError = DatabaseError;
|
|
137
|
+
/**
|
|
138
|
+
* Таймаут запроса (408)
|
|
139
|
+
*/
|
|
140
|
+
class TimeoutError extends BaseSDKError {
|
|
141
|
+
constructor(message, details) {
|
|
142
|
+
super(408, 'timeout_error', message, details);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.TimeoutError = TimeoutError;
|
|
146
|
+
/**
|
|
147
|
+
* Ошибка сети
|
|
148
|
+
* Выбрасывается когда запрос не смог достичь сервера
|
|
149
|
+
*/
|
|
150
|
+
class NetworkError extends BaseSDKError {
|
|
151
|
+
constructor(message, details) {
|
|
152
|
+
super(0, 'network_error', message, details);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.NetworkError = NetworkError;
|
|
156
|
+
// ========================================
|
|
157
|
+
// СУЩЕСТВУЮЩИЕ КЛАССЫ (обратная совместимость)
|
|
158
|
+
// ========================================
|
|
159
|
+
/**
|
|
160
|
+
* Ошибка превышения лимита использования
|
|
161
|
+
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
162
|
+
*/
|
|
163
|
+
class LimitExceededError extends BaseSDKError {
|
|
164
|
+
constructor(errorData) {
|
|
165
|
+
const message = errorData.message || errorData.details?.message || 'Usage limit exceeded';
|
|
166
|
+
super(403, 'usage_limit_exceeded', message, errorData);
|
|
167
|
+
this.statusType = errorData.details?.statusType || 'unknown';
|
|
168
|
+
this.status = errorData.details?.status || 'blocked';
|
|
169
|
+
this.details = errorData.details || {};
|
|
170
|
+
this.action = errorData.details?.action;
|
|
171
|
+
this.balance = errorData.details?.balance;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Проверяет, заблокирован ли пользователь
|
|
175
|
+
*/
|
|
176
|
+
isBlocked() {
|
|
177
|
+
return !this.details.canMakeRequest;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Получает URL для действия пользователя
|
|
181
|
+
*/
|
|
182
|
+
getActionUrl() {
|
|
183
|
+
return this.action?.ctaUrl;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.LimitExceededError = LimitExceededError;
|
|
187
|
+
/**
|
|
188
|
+
* Ошибка превышения rate limit
|
|
189
|
+
* Выбрасывается при HTTP 429
|
|
190
|
+
*/
|
|
191
|
+
class RateLimitError extends BaseSDKError {
|
|
192
|
+
constructor(errorData) {
|
|
193
|
+
const message = errorData.message || errorData.details?.message || 'Rate limit exceeded';
|
|
194
|
+
super(429, 'rate_limit_exceeded', message, errorData);
|
|
195
|
+
this.details = errorData.details || {};
|
|
196
|
+
this.retryAfter = this.details.retryAfter || 60;
|
|
197
|
+
// Парсим дату из ISO строки или используем текущее время + retryAfter
|
|
198
|
+
this.retryAt = this.details.retryAt
|
|
199
|
+
? new Date(this.details.retryAt)
|
|
200
|
+
: new Date(Date.now() + this.retryAfter * 1000);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Получает время ожидания в миллисекундах
|
|
204
|
+
*/
|
|
205
|
+
getRetryDelayMs() {
|
|
206
|
+
return Math.max(0, this.retryAt.getTime() - Date.now());
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Проверяет, прошло ли время ожидания
|
|
210
|
+
*/
|
|
211
|
+
canRetryNow() {
|
|
212
|
+
return Date.now() >= this.retryAt.getTime();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
exports.RateLimitError = RateLimitError;
|
|
216
|
+
//# sourceMappingURL=sdk-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-errors.js","sourceRoot":"","sources":["../../../src/errors/sdk-errors.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.UpdateManager = exports.DeltaChunkingUtils = exports.DeltaChunkingManager = exports.DeltaChunkingApi = exports.ensureCorrectBlockOrder = exports.createSystemMessage = exports.createUserMessage = exports.createTextBlock = exports.createComplexAssistantMessage = exports.createStandardDevelopmentTools = exports.extractToolResultBlocks = exports.extractToolUseBlocks = exports.extractThinkingBlocks = exports.createToolUseBlock = exports.createToolResultMessage = exports.createThinkingBlock = exports.HttpClient = exports.CodeSolverSDK = exports.VERSION = void 0;
|
|
17
|
+
exports.UpdateManager = exports.DeltaChunkingUtils = exports.DeltaChunkingManager = exports.DeltaChunkingApi = exports.ensureCorrectBlockOrder = exports.createSystemMessage = exports.createUserMessage = exports.createTextBlock = exports.createComplexAssistantMessage = exports.createStandardDevelopmentTools = exports.extractToolResultBlocks = exports.extractToolUseBlocks = exports.extractThinkingBlocks = exports.createToolUseBlock = exports.createToolResultMessage = exports.createThinkingBlock = exports.BaseSDKError = exports.RateLimitError = exports.LimitExceededError = exports.NetworkError = exports.TimeoutError = exports.DatabaseError = exports.GatewayTimeoutError = exports.ServiceUnavailableError = exports.InternalServerError = exports.BadRequestError = exports.ConflictError = exports.NotFoundError = exports.ValidationError = exports.ForbiddenError = exports.AuthenticationError = exports.HttpClient = exports.CodeSolverSDK = exports.VERSION = void 0;
|
|
18
18
|
const code_solver_sdk_js_1 = require("./code-solver-sdk.js");
|
|
19
19
|
Object.defineProperty(exports, "CodeSolverSDK", { enumerable: true, get: function () { return code_solver_sdk_js_1.CodeSolverSDK; } });
|
|
20
20
|
const http_client_js_1 = require("./utils/http-client.js");
|
|
@@ -34,8 +34,25 @@ __exportStar(require("./api/updates-api.js"), exports);
|
|
|
34
34
|
__exportStar(require("./api/user-api.js"), exports);
|
|
35
35
|
// Экспортируем типы лимитов
|
|
36
36
|
__exportStar(require("./types/limit-status.js"), exports);
|
|
37
|
-
// Экспортируем классы ошибок
|
|
38
|
-
__exportStar(require("./errors/
|
|
37
|
+
// Экспортируем все классы ошибок SDK
|
|
38
|
+
__exportStar(require("./errors/sdk-errors.js"), exports);
|
|
39
|
+
// Явно экспортируем основные классы ошибок для удобства импорта
|
|
40
|
+
var sdk_errors_js_1 = require("./errors/sdk-errors.js");
|
|
41
|
+
Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return sdk_errors_js_1.AuthenticationError; } });
|
|
42
|
+
Object.defineProperty(exports, "ForbiddenError", { enumerable: true, get: function () { return sdk_errors_js_1.ForbiddenError; } });
|
|
43
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return sdk_errors_js_1.ValidationError; } });
|
|
44
|
+
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return sdk_errors_js_1.NotFoundError; } });
|
|
45
|
+
Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function () { return sdk_errors_js_1.ConflictError; } });
|
|
46
|
+
Object.defineProperty(exports, "BadRequestError", { enumerable: true, get: function () { return sdk_errors_js_1.BadRequestError; } });
|
|
47
|
+
Object.defineProperty(exports, "InternalServerError", { enumerable: true, get: function () { return sdk_errors_js_1.InternalServerError; } });
|
|
48
|
+
Object.defineProperty(exports, "ServiceUnavailableError", { enumerable: true, get: function () { return sdk_errors_js_1.ServiceUnavailableError; } });
|
|
49
|
+
Object.defineProperty(exports, "GatewayTimeoutError", { enumerable: true, get: function () { return sdk_errors_js_1.GatewayTimeoutError; } });
|
|
50
|
+
Object.defineProperty(exports, "DatabaseError", { enumerable: true, get: function () { return sdk_errors_js_1.DatabaseError; } });
|
|
51
|
+
Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return sdk_errors_js_1.TimeoutError; } });
|
|
52
|
+
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return sdk_errors_js_1.NetworkError; } });
|
|
53
|
+
Object.defineProperty(exports, "LimitExceededError", { enumerable: true, get: function () { return sdk_errors_js_1.LimitExceededError; } });
|
|
54
|
+
Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return sdk_errors_js_1.RateLimitError; } });
|
|
55
|
+
Object.defineProperty(exports, "BaseSDKError", { enumerable: true, get: function () { return sdk_errors_js_1.BaseSDKError; } });
|
|
39
56
|
// Экспортируем Credits API и типы
|
|
40
57
|
__exportStar(require("./types/credits.js"), exports);
|
|
41
58
|
__exportStar(require("./api/credits-api.js"), exports);
|