solver-sdk 7.3.2 → 7.3.3
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 +150 -2
- package/dist/cjs/api/chat-api/stream-utils.js +1 -1
- package/dist/cjs/api/chat-api/stream-utils.js.map +1 -1
- package/dist/cjs/api/user-api.js +39 -0
- package/dist/cjs/api/user-api.js.map +1 -1
- package/dist/cjs/errors/limit-errors.js +80 -0
- package/dist/cjs/errors/limit-errors.js.map +1 -0
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/limit-status.js +6 -0
- package/dist/cjs/types/limit-status.js.map +1 -0
- package/dist/cjs/utils/http-client.js +19 -1
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/esm/api/chat-api/stream-utils.js +1 -1
- package/dist/esm/api/chat-api/stream-utils.js.map +1 -1
- package/dist/esm/api/user-api.js +39 -0
- package/dist/esm/api/user-api.js.map +1 -1
- package/dist/esm/errors/limit-errors.js +74 -0
- package/dist/esm/errors/limit-errors.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/limit-status.js +5 -0
- package/dist/esm/types/limit-status.js.map +1 -0
- package/dist/esm/utils/http-client.js +19 -1
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/types/api/user-api.d.ts +30 -0
- package/dist/types/api/user-api.d.ts.map +1 -1
- package/dist/types/errors/limit-errors.d.ts +61 -0
- package/dist/types/errors/limit-errors.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/limit-status.d.ts +73 -0
- package/dist/types/types/limit-status.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ const update = await sdk.updates.checkForUpdates({...});
|
|
|
49
49
|
| **Tools** | 5 | ✅ AI tool schemas |
|
|
50
50
|
| **Models** | 5 | ✅ Provider info |
|
|
51
51
|
| **Updates** | 5 | ✅ Auto-check + changelog |
|
|
52
|
-
| **User** |
|
|
52
|
+
| **User** | 3 | ✅ Profile + Limits |
|
|
53
53
|
| **Auth** | 2 | ✅ Token revocation + logout |
|
|
54
54
|
|
|
55
55
|
## Auth
|
|
@@ -94,6 +94,8 @@ sdk.projectSync.on('sync-completed', (data) => {
|
|
|
94
94
|
|
|
95
95
|
## Error Handling
|
|
96
96
|
|
|
97
|
+
### Auth Errors
|
|
98
|
+
|
|
97
99
|
By default, 401/403 auth errors return `null` instead of throwing:
|
|
98
100
|
|
|
99
101
|
```typescript
|
|
@@ -109,6 +111,116 @@ const sdk = await CodeSolverSDK.create({
|
|
|
109
111
|
});
|
|
110
112
|
```
|
|
111
113
|
|
|
114
|
+
### Usage Limits & Rate Limiting
|
|
115
|
+
|
|
116
|
+
SDK automatically handles usage limit and rate limit errors with specialized error classes:
|
|
117
|
+
|
|
118
|
+
#### Checking Limit Status
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
import { CodeSolverSDK } from 'solver-sdk';
|
|
122
|
+
|
|
123
|
+
const sdk = await CodeSolverSDK.create({ /* ... */ });
|
|
124
|
+
|
|
125
|
+
// Get detailed limit status
|
|
126
|
+
const status = await sdk.user.getLimitStatus();
|
|
127
|
+
|
|
128
|
+
console.log(`Status: ${status.status}`); // 'ok' | 'warning' | 'critical' | 'blocked' | 'on_demand'
|
|
129
|
+
console.log(`Can make requests: ${status.canMakeRequest}`);
|
|
130
|
+
|
|
131
|
+
if (status.status === 'warning' || status.status === 'critical') {
|
|
132
|
+
console.warn(`Warning: ${status.message}`);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (status.action) {
|
|
136
|
+
console.log(`Recommendation: ${status.action.suggestion}`);
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### Handling Limit Exceeded (403)
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
import { CodeSolverSDK, LimitExceededError } from 'solver-sdk';
|
|
144
|
+
|
|
145
|
+
try {
|
|
146
|
+
await sdk.chat.streamChat([
|
|
147
|
+
{ role: 'user', content: 'Hello' }
|
|
148
|
+
]);
|
|
149
|
+
} catch (error) {
|
|
150
|
+
if (error instanceof LimitExceededError) {
|
|
151
|
+
console.log('Usage limit exceeded!');
|
|
152
|
+
console.log(`Type: ${error.statusType}`); // e.g. 'debt_limit_exceeded'
|
|
153
|
+
console.log(`Blocked: ${error.isBlocked()}`); // true/false
|
|
154
|
+
|
|
155
|
+
if (error.action) {
|
|
156
|
+
console.log(`Action: ${error.action.suggestion}`);
|
|
157
|
+
console.log(`URL: ${error.getActionUrl()}`);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (error.balance) {
|
|
161
|
+
console.log(`Balance: ${error.balance.currentRub}₽`);
|
|
162
|
+
console.log(`Required topup: ${error.balance.requiredTopup}₽`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### Handling Rate Limit (429)
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
import { CodeSolverSDK, RateLimitError } from 'solver-sdk';
|
|
172
|
+
|
|
173
|
+
try {
|
|
174
|
+
// Making multiple requests rapidly
|
|
175
|
+
for (let i = 0; i < 100; i++) {
|
|
176
|
+
await sdk.user.getProfile();
|
|
177
|
+
}
|
|
178
|
+
} catch (error) {
|
|
179
|
+
if (error instanceof RateLimitError) {
|
|
180
|
+
console.log('Rate limit exceeded!');
|
|
181
|
+
console.log(`Wait ${error.retryAfter} seconds`);
|
|
182
|
+
console.log(`Retry at: ${error.retryAt}`);
|
|
183
|
+
console.log(`Time remaining: ${error.getRetryDelayMs()}ms`);
|
|
184
|
+
|
|
185
|
+
// Wait and retry
|
|
186
|
+
await new Promise(resolve => setTimeout(resolve, error.getRetryDelayMs()));
|
|
187
|
+
// ... retry request
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
#### Proactive Limit Checking
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
// Check before making expensive operations
|
|
196
|
+
async function sendChatMessage(message: string) {
|
|
197
|
+
// 1. Check limit status first
|
|
198
|
+
const status = await sdk.user.getLimitStatus();
|
|
199
|
+
|
|
200
|
+
if (!status.canMakeRequest) {
|
|
201
|
+
console.error('Cannot make request:', status.message);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (status.status === 'warning') {
|
|
206
|
+
console.warn('Low on tokens:', status.message);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// 2. Make the request
|
|
210
|
+
try {
|
|
211
|
+
await sdk.chat.streamChat([
|
|
212
|
+
{ role: 'user', content: message }
|
|
213
|
+
]);
|
|
214
|
+
} catch (error) {
|
|
215
|
+
if (error instanceof LimitExceededError) {
|
|
216
|
+
// Handle limit error
|
|
217
|
+
} else if (error instanceof RateLimitError) {
|
|
218
|
+
// Handle rate limit
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
112
224
|
## Types
|
|
113
225
|
|
|
114
226
|
```typescript
|
|
@@ -118,7 +230,10 @@ import {
|
|
|
118
230
|
Project,
|
|
119
231
|
ProjectState,
|
|
120
232
|
SearchResult,
|
|
121
|
-
UserProfile
|
|
233
|
+
UserProfile,
|
|
234
|
+
LimitStatus,
|
|
235
|
+
LimitExceededError,
|
|
236
|
+
RateLimitError
|
|
122
237
|
} from 'solver-sdk';
|
|
123
238
|
```
|
|
124
239
|
|
|
@@ -202,6 +317,37 @@ interface RecoveryInfo {
|
|
|
202
317
|
}
|
|
203
318
|
```
|
|
204
319
|
|
|
320
|
+
### LimitStatus
|
|
321
|
+
```typescript
|
|
322
|
+
interface LimitStatus {
|
|
323
|
+
status: 'ok' | 'warning' | 'critical' | 'blocked' | 'on_demand';
|
|
324
|
+
statusType: string; // e.g. 'using_bonus_tokens', 'debt_limit_exceeded'
|
|
325
|
+
message: string; // Human-readable message
|
|
326
|
+
canMakeRequest: boolean; // Can user make API requests?
|
|
327
|
+
|
|
328
|
+
currentSource?: 'bonus' | 'subscription' | 'on_demand';
|
|
329
|
+
|
|
330
|
+
remaining?: {
|
|
331
|
+
bonusTokens?: number; // Remaining bonus tokens
|
|
332
|
+
bonusPercent?: number; // % remaining
|
|
333
|
+
subscriptionTokens?: number; // Remaining subscription tokens
|
|
334
|
+
subscriptionPercent?: number;
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
balance?: {
|
|
338
|
+
currentRub?: number; // Current balance in rubles
|
|
339
|
+
maxDebtRub?: number; // Max allowed debt
|
|
340
|
+
requiredTopup?: number; // Required topup amount
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
action?: {
|
|
344
|
+
type: 'info' | 'urgent' | 'required';
|
|
345
|
+
suggestion: string; // "Top up balance" / "Upgrade plan"
|
|
346
|
+
ctaUrl?: string; // Dashboard URL
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
```
|
|
350
|
+
|
|
205
351
|
## Troubleshooting
|
|
206
352
|
|
|
207
353
|
### "0 files" after indexing
|
|
@@ -318,6 +464,8 @@ createToolSchema(name: string, description: string, properties: any, required?:
|
|
|
318
464
|
|
|
319
465
|
```typescript
|
|
320
466
|
getProfile(): Promise<UserProfile>
|
|
467
|
+
getLimitStatus(): Promise<LimitStatus>
|
|
468
|
+
checkAvailability(): Promise<boolean>
|
|
321
469
|
```
|
|
322
470
|
|
|
323
471
|
### Auth (`sdk.auth`)
|
|
@@ -91,7 +91,7 @@ function processStreamChunk(line, logger, options) {
|
|
|
91
91
|
];
|
|
92
92
|
if (!validEvents.includes(jsonData.type)) {
|
|
93
93
|
if (logger) {
|
|
94
|
-
logger.warn(
|
|
94
|
+
logger.warn(`⚠️ Неизвестное событие: ${jsonData.type}`, jsonData);
|
|
95
95
|
}
|
|
96
96
|
return {};
|
|
97
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/api/user-api.js
CHANGED
|
@@ -93,6 +93,45 @@ class UserApi {
|
|
|
93
93
|
return false;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Получает детальный статус лимитов пользователя
|
|
98
|
+
*
|
|
99
|
+
* @returns {Promise<LimitStatus>} Статус лимитов
|
|
100
|
+
* @throws {Error} При ошибке запроса к API или если пользователь не авторизован
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```javascript
|
|
104
|
+
* try {
|
|
105
|
+
* const limitStatus = await sdk.user.getLimitStatus();
|
|
106
|
+
*
|
|
107
|
+
* console.log(`Статус: ${limitStatus.status}`);
|
|
108
|
+
* console.log(`Тип: ${limitStatus.statusType}`);
|
|
109
|
+
* console.log(`Можно делать запросы: ${limitStatus.canMakeRequest}`);
|
|
110
|
+
*
|
|
111
|
+
* if (limitStatus.status === 'warning' || limitStatus.status === 'critical') {
|
|
112
|
+
* console.warn(`Предупреждение: ${limitStatus.message}`);
|
|
113
|
+
* }
|
|
114
|
+
*
|
|
115
|
+
* if (limitStatus.action) {
|
|
116
|
+
* console.log(`Рекомендация: ${limitStatus.action.suggestion}`);
|
|
117
|
+
* }
|
|
118
|
+
*
|
|
119
|
+
* } catch (error) {
|
|
120
|
+
* console.error('Ошибка получения статуса лимитов:', error);
|
|
121
|
+
* }
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
async getLimitStatus() {
|
|
125
|
+
try {
|
|
126
|
+
return await this.httpClient.get('/api/v1/me/limit-status');
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (error.status === 401 || error.response?.status === 401) {
|
|
130
|
+
throw new Error('Пользователь не авторизован. Необходимо войти в систему.');
|
|
131
|
+
}
|
|
132
|
+
throw new Error(`Ошибка получения статуса лимитов: ${error.message}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
96
135
|
}
|
|
97
136
|
exports.UserApi = UserApi;
|
|
98
137
|
//# sourceMappingURL=user-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-api.js","sourceRoot":"","sources":["../../../src/api/user-api.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"user-api.js","sourceRoot":"","sources":["../../../src/api/user-api.ts"],"names":[],"mappings":";;;AAsCA;;;;;;;;;;;;;;;GAeG;AACH,MAAa,OAAO;IAIlB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,YAAY,CAAC,CAAC;YAEtE,iCAAiC;YACjC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,QAAQ,CAAC;QAElB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,iBAAiB;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,yBAAyB,CAAC,CAAC;QAE3E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF;AA5HD,0BA4HC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Классы ошибок для обработки лимитов
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RateLimitError = exports.LimitExceededError = exports.BaseLimitError = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Базовый класс для ошибок лимитов
|
|
9
|
+
*/
|
|
10
|
+
class BaseLimitError extends Error {
|
|
11
|
+
constructor(message, statusCode, rawError) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = this.constructor.name;
|
|
14
|
+
this.statusCode = statusCode;
|
|
15
|
+
this.rawError = rawError;
|
|
16
|
+
// Поддержка stack trace в V8
|
|
17
|
+
if (Error.captureStackTrace) {
|
|
18
|
+
Error.captureStackTrace(this, this.constructor);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.BaseLimitError = BaseLimitError;
|
|
23
|
+
/**
|
|
24
|
+
* Ошибка превышения лимита использования
|
|
25
|
+
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
26
|
+
*/
|
|
27
|
+
class LimitExceededError extends BaseLimitError {
|
|
28
|
+
constructor(errorData) {
|
|
29
|
+
const message = errorData.message || errorData.details?.message || 'Usage limit exceeded';
|
|
30
|
+
super(message, 403, errorData);
|
|
31
|
+
this.statusType = errorData.details?.statusType || 'unknown';
|
|
32
|
+
this.status = errorData.details?.status || 'blocked';
|
|
33
|
+
this.details = errorData.details || {};
|
|
34
|
+
this.action = errorData.details?.action;
|
|
35
|
+
this.balance = errorData.details?.balance;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Проверяет, заблокирован ли пользователь
|
|
39
|
+
*/
|
|
40
|
+
isBlocked() {
|
|
41
|
+
return !this.details.canMakeRequest;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Получает URL для действия пользователя
|
|
45
|
+
*/
|
|
46
|
+
getActionUrl() {
|
|
47
|
+
return this.action?.ctaUrl;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.LimitExceededError = LimitExceededError;
|
|
51
|
+
/**
|
|
52
|
+
* Ошибка превышения rate limit
|
|
53
|
+
* Выбрасывается при HTTP 429
|
|
54
|
+
*/
|
|
55
|
+
class RateLimitError extends BaseLimitError {
|
|
56
|
+
constructor(errorData) {
|
|
57
|
+
const message = errorData.message || errorData.details?.message || 'Rate limit exceeded';
|
|
58
|
+
super(message, 429, errorData);
|
|
59
|
+
this.details = errorData.details || {};
|
|
60
|
+
this.retryAfter = this.details.retryAfter || 60;
|
|
61
|
+
// Парсим дату из ISO строки или используем текущее время + retryAfter
|
|
62
|
+
this.retryAt = this.details.retryAt
|
|
63
|
+
? new Date(this.details.retryAt)
|
|
64
|
+
: new Date(Date.now() + this.retryAfter * 1000);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Получает время ожидания в миллисекундах
|
|
68
|
+
*/
|
|
69
|
+
getRetryDelayMs() {
|
|
70
|
+
return Math.max(0, this.retryAt.getTime() - Date.now());
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Проверяет, прошло ли время ожидания
|
|
74
|
+
*/
|
|
75
|
+
canRetryNow() {
|
|
76
|
+
return Date.now() >= this.retryAt.getTime();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.RateLimitError = RateLimitError;
|
|
80
|
+
//# sourceMappingURL=limit-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit-errors.js","sourceRoot":"","sources":["../../../src/errors/limit-errors.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACH,MAAa,cAAe,SAAQ,KAAK;IAOvC,YAAY,OAAe,EAAE,UAAkB,EAAE,QAAc;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,6BAA6B;QAC7B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAlBD,wCAkBC;AAED;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,cAAc;IAgBpD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAC;QAC1F,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,SAAS;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7B,CAAC;CACF;AAxCD,gDAwCC;AAED;;;GAGG;AACH,MAAa,cAAe,SAAQ,cAAc;IAUhD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,qBAAqB,CAAC;QACzF,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAEhD,sEAAsE;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACjC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;CACF;AApCD,wCAoCC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -32,6 +32,10 @@ __exportStar(require("./api/tools-api.js"), exports);
|
|
|
32
32
|
__exportStar(require("./api/models-api.js"), exports);
|
|
33
33
|
__exportStar(require("./api/updates-api.js"), exports);
|
|
34
34
|
__exportStar(require("./api/user-api.js"), exports);
|
|
35
|
+
// Экспортируем типы лимитов
|
|
36
|
+
__exportStar(require("./types/limit-status.js"), exports);
|
|
37
|
+
// Экспортируем классы ошибок лимитов
|
|
38
|
+
__exportStar(require("./errors/limit-errors.js"), exports);
|
|
35
39
|
// Экспортируем помощники для работы с сообщениями
|
|
36
40
|
__exportStar(require("./utils/message-helpers.js"), exports);
|
|
37
41
|
// Экспортируем helper функции для complex content и tool calling
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAqD;AAQ5C,8FARA,kCAAa,OAQA;AANtB,2DAAoD;AAQ3C,2FARA,2BAAU,OAQA;AANnB,2DAA2D;AAC3D,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAOhB,0CAA0C;AAC1C,8DAA4C;AAE5C,gCAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AAEpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;AACpC,uDAAqC;AACrC,oDAAkC;AAElC,kDAAkD;AAClD,6DAA2C;AAE3C,iEAAiE;AACjE,iEAaoC;AAZlC,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA;AACvB,wHAAA,kBAAkB,OAAA;AAClB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AACpB,6HAAA,uBAAuB,OAAA;AACvB,oIAAA,8BAA8B,OAAA;AAC9B,mIAAA,6BAA6B,OAAA;AAC7B,qHAAA,eAAe,OAAA;AACf,uHAAA,iBAAiB,OAAA;AACjB,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA,CAAE,+DAA+D;AAG1F,oEAAoE;AACpE,qEAA+D;AAAtD,yHAAA,gBAAgB,OAAA;AACzB,wFAAkF;AAAzE,iIAAA,oBAAoB,OAAA;AAC7B,oFAA8E;AAArE,6HAAA,kBAAkB,OAAA;AAE3B,+BAA+B;AAC/B,4DAA0C;AAE1C,wCAAwC;AACxC,kEAAgD;AAEhD,2BAA2B;AAC3B,qDAAmC;AAEnC,iDAAiD;AACjD,+DAA0D;AAAjD,kHAAA,aAAa,OAAA;AAEtB,uBAAuB;AACvB,kBAAe,kCAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAqD;AAQ5C,8FARA,kCAAa,OAQA;AANtB,2DAAoD;AAQ3C,2FARA,2BAAU,OAQA;AANnB,2DAA2D;AAC3D,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAOhB,0CAA0C;AAC1C,8DAA4C;AAE5C,gCAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AAEpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;AACpC,uDAAqC;AACrC,oDAAkC;AAElC,4BAA4B;AAC5B,0DAAwC;AAExC,qCAAqC;AACrC,2DAAyC;AAEzC,kDAAkD;AAClD,6DAA2C;AAE3C,iEAAiE;AACjE,iEAaoC;AAZlC,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA;AACvB,wHAAA,kBAAkB,OAAA;AAClB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AACpB,6HAAA,uBAAuB,OAAA;AACvB,oIAAA,8BAA8B,OAAA;AAC9B,mIAAA,6BAA6B,OAAA;AAC7B,qHAAA,eAAe,OAAA;AACf,uHAAA,iBAAiB,OAAA;AACjB,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA,CAAE,+DAA+D;AAG1F,oEAAoE;AACpE,qEAA+D;AAAtD,yHAAA,gBAAgB,OAAA;AACzB,wFAAkF;AAAzE,iIAAA,oBAAoB,OAAA;AAC7B,oFAA8E;AAArE,6HAAA,kBAAkB,OAAA;AAE3B,+BAA+B;AAC/B,4DAA0C;AAE1C,wCAAwC;AACxC,kEAAgD;AAEhD,2BAA2B;AAC3B,qDAAmC;AAEnC,iDAAiD;AACjD,+DAA0D;AAAjD,kHAAA,aAAa,OAAA;AAEtB,uBAAuB;AACvB,kBAAe,kCAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit-status.js","sourceRoot":"","sources":["../../../src/types/limit-status.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -38,6 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.HttpClient = void 0;
|
|
40
40
|
const axios_1 = __importDefault(require("axios"));
|
|
41
|
+
const limit_errors_js_1 = require("../errors/limit-errors.js");
|
|
41
42
|
/**
|
|
42
43
|
* Определение типа среды выполнения
|
|
43
44
|
* @returns 'browser' | 'node'
|
|
@@ -95,7 +96,24 @@ class HttpClient {
|
|
|
95
96
|
// Интерцептор для ответов
|
|
96
97
|
this.axiosInstance.interceptors.response.use((response) => response.data, async (error) => {
|
|
97
98
|
const { config, response } = error;
|
|
98
|
-
//
|
|
99
|
+
// СПЕЦИАЛЬНАЯ ОБРАБОТКА: 403 с usage_limit_exceeded
|
|
100
|
+
if (response?.status === 403 && response?.data?.details?.error === 'usage_limit_exceeded') {
|
|
101
|
+
throw new limit_errors_js_1.LimitExceededError(response.data);
|
|
102
|
+
}
|
|
103
|
+
// СПЕЦИАЛЬНАЯ ОБРАБОТКА: 429 rate limit
|
|
104
|
+
if (response?.status === 429 && response?.data?.details?.error === 'rate_limit_exceeded') {
|
|
105
|
+
throw new limit_errors_js_1.RateLimitError(response.data);
|
|
106
|
+
}
|
|
107
|
+
// GRACEFUL AUTH ERRORS: Если suppressAuthErrors включен
|
|
108
|
+
if (this.options.suppressAuthErrors && response) {
|
|
109
|
+
const status = response.status;
|
|
110
|
+
if (status === 401 || status === 403) {
|
|
111
|
+
const errorMessage = response.data?.message || error.message || 'Authentication error';
|
|
112
|
+
console.debug(`[SDK HttpClient] Auth error ${status}, handled gracefully:`, errorMessage);
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// RETRY LOGIC: Если нет конфига запроса или это уже повторный запрос, или skipRetry установлен
|
|
99
117
|
if (!config || config._retryCount || config.skipRetry) {
|
|
100
118
|
return Promise.reject(error);
|
|
101
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgF;
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,7 +85,7 @@ export function processStreamChunk(line, logger, options) {
|
|
|
85
85
|
];
|
|
86
86
|
if (!validEvents.includes(jsonData.type)) {
|
|
87
87
|
if (logger) {
|
|
88
|
-
logger.warn(
|
|
88
|
+
logger.warn(`⚠️ Неизвестное событие: ${jsonData.type}`, jsonData);
|
|
89
89
|
}
|
|
90
90
|
return {};
|
|
91
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,yCAAyC;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oCAAoC;IAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACV,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpC,2BAA2B;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,8CAA8C;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,wDAAwD;QACtD,MAAM,KAAK,GAAoB;YAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,QAAQ;SACZ,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;AACvC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,MAAY,EACZ,OAGC;IAED,IAAI,CAAC;QACH,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAElC,2BAA2B;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,qBAAqB;QACrB,IAAI,QAAa,CAAC;QAClB,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,mFAAmF;QACnF,MAAM,WAAW,GAAG;YAClB,eAAe,EAAE,qBAAqB,EAAE,qBAAqB;YAC7D,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO;YACtE,gBAAgB,CAAC,wEAAwE;SAC1F,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/api/user-api.js
CHANGED
|
@@ -90,5 +90,44 @@ export class UserApi {
|
|
|
90
90
|
return false;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Получает детальный статус лимитов пользователя
|
|
95
|
+
*
|
|
96
|
+
* @returns {Promise<LimitStatus>} Статус лимитов
|
|
97
|
+
* @throws {Error} При ошибке запроса к API или если пользователь не авторизован
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```javascript
|
|
101
|
+
* try {
|
|
102
|
+
* const limitStatus = await sdk.user.getLimitStatus();
|
|
103
|
+
*
|
|
104
|
+
* console.log(`Статус: ${limitStatus.status}`);
|
|
105
|
+
* console.log(`Тип: ${limitStatus.statusType}`);
|
|
106
|
+
* console.log(`Можно делать запросы: ${limitStatus.canMakeRequest}`);
|
|
107
|
+
*
|
|
108
|
+
* if (limitStatus.status === 'warning' || limitStatus.status === 'critical') {
|
|
109
|
+
* console.warn(`Предупреждение: ${limitStatus.message}`);
|
|
110
|
+
* }
|
|
111
|
+
*
|
|
112
|
+
* if (limitStatus.action) {
|
|
113
|
+
* console.log(`Рекомендация: ${limitStatus.action.suggestion}`);
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* } catch (error) {
|
|
117
|
+
* console.error('Ошибка получения статуса лимитов:', error);
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
async getLimitStatus() {
|
|
122
|
+
try {
|
|
123
|
+
return await this.httpClient.get('/api/v1/me/limit-status');
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (error.status === 401 || error.response?.status === 401) {
|
|
127
|
+
throw new Error('Пользователь не авторизован. Необходимо войти в систему.');
|
|
128
|
+
}
|
|
129
|
+
throw new Error(`Ошибка получения статуса лимитов: ${error.message}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
93
132
|
}
|
|
94
133
|
//# sourceMappingURL=user-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-api.js","sourceRoot":"","sources":["../../../src/api/user-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user-api.js","sourceRoot":"","sources":["../../../src/api/user-api.ts"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,OAAO;IAIlB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,YAAY,CAAC,CAAC;YAEtE,iCAAiC;YACjC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,QAAQ,CAAC;QAElB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,iBAAiB;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,yBAAyB,CAAC,CAAC;QAE3E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Классы ошибок для обработки лимитов
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Базовый класс для ошибок лимитов
|
|
6
|
+
*/
|
|
7
|
+
export class BaseLimitError extends Error {
|
|
8
|
+
constructor(message, statusCode, rawError) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = this.constructor.name;
|
|
11
|
+
this.statusCode = statusCode;
|
|
12
|
+
this.rawError = rawError;
|
|
13
|
+
// Поддержка stack trace в V8
|
|
14
|
+
if (Error.captureStackTrace) {
|
|
15
|
+
Error.captureStackTrace(this, this.constructor);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Ошибка превышения лимита использования
|
|
21
|
+
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
22
|
+
*/
|
|
23
|
+
export class LimitExceededError extends BaseLimitError {
|
|
24
|
+
constructor(errorData) {
|
|
25
|
+
const message = errorData.message || errorData.details?.message || 'Usage limit exceeded';
|
|
26
|
+
super(message, 403, errorData);
|
|
27
|
+
this.statusType = errorData.details?.statusType || 'unknown';
|
|
28
|
+
this.status = errorData.details?.status || 'blocked';
|
|
29
|
+
this.details = errorData.details || {};
|
|
30
|
+
this.action = errorData.details?.action;
|
|
31
|
+
this.balance = errorData.details?.balance;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Проверяет, заблокирован ли пользователь
|
|
35
|
+
*/
|
|
36
|
+
isBlocked() {
|
|
37
|
+
return !this.details.canMakeRequest;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Получает URL для действия пользователя
|
|
41
|
+
*/
|
|
42
|
+
getActionUrl() {
|
|
43
|
+
return this.action?.ctaUrl;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Ошибка превышения rate limit
|
|
48
|
+
* Выбрасывается при HTTP 429
|
|
49
|
+
*/
|
|
50
|
+
export class RateLimitError extends BaseLimitError {
|
|
51
|
+
constructor(errorData) {
|
|
52
|
+
const message = errorData.message || errorData.details?.message || 'Rate limit exceeded';
|
|
53
|
+
super(message, 429, errorData);
|
|
54
|
+
this.details = errorData.details || {};
|
|
55
|
+
this.retryAfter = this.details.retryAfter || 60;
|
|
56
|
+
// Парсим дату из ISO строки или используем текущее время + retryAfter
|
|
57
|
+
this.retryAt = this.details.retryAt
|
|
58
|
+
? new Date(this.details.retryAt)
|
|
59
|
+
: new Date(Date.now() + this.retryAfter * 1000);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Получает время ожидания в миллисекундах
|
|
63
|
+
*/
|
|
64
|
+
getRetryDelayMs() {
|
|
65
|
+
return Math.max(0, this.retryAt.getTime() - Date.now());
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Проверяет, прошло ли время ожидания
|
|
69
|
+
*/
|
|
70
|
+
canRetryNow() {
|
|
71
|
+
return Date.now() >= this.retryAt.getTime();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=limit-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit-errors.js","sourceRoot":"","sources":["../../../src/errors/limit-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAOvC,YAAY,OAAe,EAAE,UAAkB,EAAE,QAAc;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,6BAA6B;QAC7B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAgBpD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAC;QAC1F,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,SAAS;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,cAAc;IAUhD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,qBAAqB,CAAC;QACzF,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAEhD,sEAAsE;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACjC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;CACF"}
|
package/dist/esm/index.js
CHANGED
|
@@ -15,6 +15,10 @@ export * from './api/tools-api.js';
|
|
|
15
15
|
export * from './api/models-api.js';
|
|
16
16
|
export * from './api/updates-api.js';
|
|
17
17
|
export * from './api/user-api.js';
|
|
18
|
+
// Экспортируем типы лимитов
|
|
19
|
+
export * from './types/limit-status.js';
|
|
20
|
+
// Экспортируем классы ошибок лимитов
|
|
21
|
+
export * from './errors/limit-errors.js';
|
|
18
22
|
// Экспортируем помощники для работы с сообщениями
|
|
19
23
|
export * from './utils/message-helpers.js';
|
|
20
24
|
// Экспортируем helper функции для complex content и tool calling
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,0CAA0C;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,gCAAgC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAElC,kDAAkD;AAClD,cAAc,4BAA4B,CAAC;AAE3C,iEAAiE;AACjE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,CAAE,+DAA+D;EACzF,MAAM,4BAA4B,CAAC;AAEpC,oEAAoE;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,+BAA+B;AAC/B,cAAc,2BAA2B,CAAC;AAE1C,wCAAwC;AACxC,cAAc,iCAAiC,CAAC;AAEhD,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,uBAAuB;AACvB,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,0CAA0C;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,gCAAgC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAElC,4BAA4B;AAC5B,cAAc,yBAAyB,CAAC;AAExC,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,kDAAkD;AAClD,cAAc,4BAA4B,CAAC;AAE3C,iEAAiE;AACjE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,CAAE,+DAA+D;EACzF,MAAM,4BAA4B,CAAC;AAEpC,oEAAoE;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,+BAA+B;AAC/B,cAAc,2BAA2B,CAAC;AAE1C,wCAAwC;AACxC,cAAc,iCAAiC,CAAC;AAEhD,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,uBAAuB;AACvB,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit-status.js","sourceRoot":"","sources":["../../../src/types/limit-status.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import { LimitExceededError, RateLimitError } from '../errors/limit-errors.js';
|
|
2
3
|
/**
|
|
3
4
|
* Определение типа среды выполнения
|
|
4
5
|
* @returns 'browser' | 'node'
|
|
@@ -56,7 +57,24 @@ export class HttpClient {
|
|
|
56
57
|
// Интерцептор для ответов
|
|
57
58
|
this.axiosInstance.interceptors.response.use((response) => response.data, async (error) => {
|
|
58
59
|
const { config, response } = error;
|
|
59
|
-
//
|
|
60
|
+
// СПЕЦИАЛЬНАЯ ОБРАБОТКА: 403 с usage_limit_exceeded
|
|
61
|
+
if (response?.status === 403 && response?.data?.details?.error === 'usage_limit_exceeded') {
|
|
62
|
+
throw new LimitExceededError(response.data);
|
|
63
|
+
}
|
|
64
|
+
// СПЕЦИАЛЬНАЯ ОБРАБОТКА: 429 rate limit
|
|
65
|
+
if (response?.status === 429 && response?.data?.details?.error === 'rate_limit_exceeded') {
|
|
66
|
+
throw new RateLimitError(response.data);
|
|
67
|
+
}
|
|
68
|
+
// GRACEFUL AUTH ERRORS: Если suppressAuthErrors включен
|
|
69
|
+
if (this.options.suppressAuthErrors && response) {
|
|
70
|
+
const status = response.status;
|
|
71
|
+
if (status === 401 || status === 403) {
|
|
72
|
+
const errorMessage = response.data?.message || error.message || 'Authentication error';
|
|
73
|
+
console.debug(`[SDK HttpClient] Auth error ${status}, handled gracefully:`, errorMessage);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// RETRY LOGIC: Если нет конфига запроса или это уже повторный запрос, или skipRetry установлен
|
|
60
78
|
if (!config || config._retryCount || config.skipRetry) {
|
|
61
79
|
return Promise.reject(error);
|
|
62
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from '../utils/http-client.js';
|
|
2
|
+
import type { LimitStatus } from '../types/limit-status.js';
|
|
2
3
|
/**
|
|
3
4
|
* Профиль пользователя
|
|
4
5
|
*/
|
|
@@ -93,5 +94,34 @@ export declare class UserApi {
|
|
|
93
94
|
* ```
|
|
94
95
|
*/
|
|
95
96
|
checkAvailability(): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Получает детальный статус лимитов пользователя
|
|
99
|
+
*
|
|
100
|
+
* @returns {Promise<LimitStatus>} Статус лимитов
|
|
101
|
+
* @throws {Error} При ошибке запроса к API или если пользователь не авторизован
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```javascript
|
|
105
|
+
* try {
|
|
106
|
+
* const limitStatus = await sdk.user.getLimitStatus();
|
|
107
|
+
*
|
|
108
|
+
* console.log(`Статус: ${limitStatus.status}`);
|
|
109
|
+
* console.log(`Тип: ${limitStatus.statusType}`);
|
|
110
|
+
* console.log(`Можно делать запросы: ${limitStatus.canMakeRequest}`);
|
|
111
|
+
*
|
|
112
|
+
* if (limitStatus.status === 'warning' || limitStatus.status === 'critical') {
|
|
113
|
+
* console.warn(`Предупреждение: ${limitStatus.message}`);
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* if (limitStatus.action) {
|
|
117
|
+
* console.log(`Рекомендация: ${limitStatus.action.suggestion}`);
|
|
118
|
+
* }
|
|
119
|
+
*
|
|
120
|
+
* } catch (error) {
|
|
121
|
+
* console.error('Ошибка получения статуса лимитов:', error);
|
|
122
|
+
* }
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
getLimitStatus(): Promise<LimitStatus>;
|
|
96
126
|
}
|
|
97
127
|
//# sourceMappingURL=user-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-api.d.ts","sourceRoot":"","sources":["../../../src/api/user-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-api.d.ts","sourceRoot":"","sources":["../../../src/api/user-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IAEX,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IAEb,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,6BAA6B;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEtB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,OAAO;IAClB,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;;OAGG;gBACS,UAAU,EAAE,UAAU;IAIlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAoB/C;;;;;;;;;;;;OAYG;IACU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IASlD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;CAYpD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Классы ошибок для обработки лимитов
|
|
3
|
+
*/
|
|
4
|
+
import type { LimitStatus, LimitAction, LimitBalance } from '../types/limit-status.js';
|
|
5
|
+
/**
|
|
6
|
+
* Базовый класс для ошибок лимитов
|
|
7
|
+
*/
|
|
8
|
+
export declare class BaseLimitError extends Error {
|
|
9
|
+
/** Статус HTTP ответа */
|
|
10
|
+
readonly statusCode: number;
|
|
11
|
+
/** Исходные данные ошибки */
|
|
12
|
+
readonly rawError: any;
|
|
13
|
+
constructor(message: string, statusCode: number, rawError?: any);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Ошибка превышения лимита использования
|
|
17
|
+
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
18
|
+
*/
|
|
19
|
+
export declare class LimitExceededError extends BaseLimitError {
|
|
20
|
+
/** Тип статуса лимита */
|
|
21
|
+
readonly statusType: string;
|
|
22
|
+
/** Уровень статуса */
|
|
23
|
+
readonly status: string;
|
|
24
|
+
/** Детали лимитов */
|
|
25
|
+
readonly details: Partial<LimitStatus>;
|
|
26
|
+
/** Рекомендуемое действие */
|
|
27
|
+
readonly action?: LimitAction;
|
|
28
|
+
/** Информация о балансе */
|
|
29
|
+
readonly balance?: LimitBalance;
|
|
30
|
+
constructor(errorData: any);
|
|
31
|
+
/**
|
|
32
|
+
* Проверяет, заблокирован ли пользователь
|
|
33
|
+
*/
|
|
34
|
+
isBlocked(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Получает URL для действия пользователя
|
|
37
|
+
*/
|
|
38
|
+
getActionUrl(): string | undefined;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Ошибка превышения rate limit
|
|
42
|
+
* Выбрасывается при HTTP 429
|
|
43
|
+
*/
|
|
44
|
+
export declare class RateLimitError extends BaseLimitError {
|
|
45
|
+
/** Время ожидания в секундах */
|
|
46
|
+
readonly retryAfter: number;
|
|
47
|
+
/** Время когда можно повторить запрос */
|
|
48
|
+
readonly retryAt: Date;
|
|
49
|
+
/** Детали rate limit */
|
|
50
|
+
readonly details: any;
|
|
51
|
+
constructor(errorData: any);
|
|
52
|
+
/**
|
|
53
|
+
* Получает время ожидания в миллисекундах
|
|
54
|
+
*/
|
|
55
|
+
getRetryDelayMs(): number;
|
|
56
|
+
/**
|
|
57
|
+
* Проверяет, прошло ли время ожидания
|
|
58
|
+
*/
|
|
59
|
+
canRetryNow(): boolean;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=limit-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit-errors.d.ts","sourceRoot":"","sources":["../../../src/errors/limit-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEvF;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,yBAAyB;IACzB,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,6BAA6B;IAC7B,SAAgB,QAAQ,EAAE,GAAG,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG;CAWhE;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,yBAAyB;IACzB,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,sBAAsB;IACtB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,qBAAqB;IACrB,SAAgB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9C,6BAA6B;IAC7B,SAAgB,MAAM,CAAC,EAAE,WAAW,CAAC;IAErC,2BAA2B;IAC3B,SAAgB,OAAO,CAAC,EAAE,YAAY,CAAC;gBAE3B,SAAS,EAAE,GAAG;IAW1B;;OAEG;IACI,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACI,YAAY,IAAI,MAAM,GAAG,SAAS;CAG1C;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,gCAAgC;IAChC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,yCAAyC;IACzC,SAAgB,OAAO,EAAE,IAAI,CAAC;IAE9B,wBAAwB;IACxB,SAAgB,OAAO,EAAE,GAAG,CAAC;gBAEjB,SAAS,EAAE,GAAG;IAa1B;;OAEG;IACI,eAAe,IAAI,MAAM;IAIhC;;OAEG;IACI,WAAW,IAAI,OAAO;CAG9B"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export * from './api/tools-api.js';
|
|
|
13
13
|
export * from './api/models-api.js';
|
|
14
14
|
export * from './api/updates-api.js';
|
|
15
15
|
export * from './api/user-api.js';
|
|
16
|
+
export * from './types/limit-status.js';
|
|
17
|
+
export * from './errors/limit-errors.js';
|
|
16
18
|
export * from './utils/message-helpers.js';
|
|
17
19
|
export { createThinkingBlock, createToolResultMessage, createToolUseBlock, extractThinkingBlocks, extractToolUseBlocks, extractToolResultBlocks, createStandardDevelopmentTools, createComplexAssistantMessage, createTextBlock, createUserMessage, createSystemMessage, ensureCorrectBlockOrder } from './utils/message-helpers.js';
|
|
18
20
|
export { DeltaChunkingApi } from './api/delta-chunking-api.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB,cAAc,6BAA6B,CAAC;AAG5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,cAAc,2BAA2B,CAAC;AAG1C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,eAAe,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB,cAAc,6BAA6B,CAAC;AAG5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,cAAc,2BAA2B,CAAC;AAG1C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Типы данных для статуса лимитов пользователя
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Статус лимитов пользователя
|
|
6
|
+
*/
|
|
7
|
+
export type LimitStatusLevel = 'ok' | 'warning' | 'critical' | 'blocked' | 'on_demand';
|
|
8
|
+
/**
|
|
9
|
+
* Типы состояния лимитов
|
|
10
|
+
*/
|
|
11
|
+
export type LimitStatusType = 'using_bonus_tokens' | 'bonus_exhausted_subscription_active' | 'subscription_active' | 'bonus_tokens_low' | 'subscription_limit_approaching' | 'debt_limit_approaching' | 'bonus_tokens_critical' | 'subscription_limit_critical' | 'debt_limit_critical' | 'subscription_exhausted_no_on_demand' | 'debt_limit_exceeded' | 'subscription_expired' | 'using_on_demand' | 'rate_limit_exceeded' | 'dev_bypass';
|
|
12
|
+
/**
|
|
13
|
+
* Источник токенов
|
|
14
|
+
*/
|
|
15
|
+
export type TokenSource = 'bonus' | 'subscription' | 'on_demand';
|
|
16
|
+
/**
|
|
17
|
+
* Информация об остатке токенов
|
|
18
|
+
*/
|
|
19
|
+
export interface LimitRemaining {
|
|
20
|
+
bonusTokens?: number;
|
|
21
|
+
bonusPercent?: number;
|
|
22
|
+
subscriptionTokens?: number;
|
|
23
|
+
subscriptionPercent?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Информация о балансе
|
|
27
|
+
*/
|
|
28
|
+
export interface LimitBalance {
|
|
29
|
+
currentRub?: number;
|
|
30
|
+
maxDebtRub?: number;
|
|
31
|
+
requiredTopup?: number;
|
|
32
|
+
remainingRub?: number;
|
|
33
|
+
debtRub?: number;
|
|
34
|
+
percentUsed?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Рекомендуемое действие
|
|
38
|
+
*/
|
|
39
|
+
export interface LimitAction {
|
|
40
|
+
type: 'info' | 'suggestion' | 'urgent' | 'required';
|
|
41
|
+
suggestion: string;
|
|
42
|
+
ctaUrl?: string;
|
|
43
|
+
options?: string[];
|
|
44
|
+
priority?: 'low' | 'medium' | 'high' | 'critical';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Полный статус лимитов пользователя
|
|
48
|
+
*/
|
|
49
|
+
export interface LimitStatus {
|
|
50
|
+
/** Уровень статуса */
|
|
51
|
+
status: LimitStatusLevel;
|
|
52
|
+
/** Конкретный тип состояния */
|
|
53
|
+
statusType: LimitStatusType;
|
|
54
|
+
/** Человекочитаемое сообщение */
|
|
55
|
+
message: string;
|
|
56
|
+
/** Можно ли делать запросы */
|
|
57
|
+
canMakeRequest: boolean;
|
|
58
|
+
/** Текущий источник токенов */
|
|
59
|
+
currentSource?: TokenSource;
|
|
60
|
+
/** Информация об остатке */
|
|
61
|
+
remaining?: LimitRemaining;
|
|
62
|
+
/** Информация о балансе */
|
|
63
|
+
balance?: LimitBalance;
|
|
64
|
+
/** Рекомендуемое действие */
|
|
65
|
+
action?: LimitAction;
|
|
66
|
+
/** HTTP статус (для ошибок) */
|
|
67
|
+
httpStatus?: number;
|
|
68
|
+
/** Стоимость запроса (для on_demand) */
|
|
69
|
+
costPerRequest?: string;
|
|
70
|
+
/** Дополнительные детали */
|
|
71
|
+
details?: Record<string, any>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=limit-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit-status.d.ts","sourceRoot":"","sources":["../../../src/types/limit-status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,eAAe,GAEvB,oBAAoB,GACpB,qCAAqC,GACrC,qBAAqB,GAErB,kBAAkB,GAClB,gCAAgC,GAChC,wBAAwB,GAExB,uBAAuB,GACvB,6BAA6B,GAC7B,qBAAqB,GAErB,qCAAqC,GACrC,qBAAqB,GACrB,sBAAsB,GAEtB,iBAAiB,GAEjB,qBAAqB,GAErB,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,MAAM,EAAE,gBAAgB,CAAC;IAEzB,+BAA+B;IAC/B,UAAU,EAAE,eAAe,CAAC;IAE5B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,cAAc,EAAE,OAAO,CAAC;IAExB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,WAAW,CAAC;IAE5B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,2BAA2B;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAgB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAgB,MAAM,8BAA8B,CAAC;AAI5G,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAiB,kBAAkB;QACjC,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;CACF;AAYD;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,oBAAoB;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,uBAAuB;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAiC5D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgEzB;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAwDlE;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,MAAM,CAAC,CAAC,GAAG,GAAG,EACzB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,KAAK,CAAC,CAAC,GAAG,GAAG,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,UAAU,CACrB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,QAAQ,CAAC;IA8CpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAiFnB;;OAEG;IACH,IAAW,WAAW,IAAI,GAAG,CAE5B;IAED;;;OAGG;IACI,UAAU,IAAI,MAAM;CAG5B"}
|