solver-sdk 9.0.7 → 9.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 +207 -1
- package/dist/cjs/api/chat-api/stream-utils.js +29 -0
- package/dist/cjs/api/chat-api/stream-utils.js.map +1 -1
- package/dist/cjs/constants/anthropic.js +2 -0
- package/dist/cjs/constants/anthropic.js.map +1 -1
- package/dist/cjs/types/anthropic-interfaces.js.map +1 -1
- package/dist/esm/api/chat-api/stream-utils.js +29 -0
- package/dist/esm/api/chat-api/stream-utils.js.map +1 -1
- package/dist/esm/constants/anthropic.js +2 -0
- package/dist/esm/constants/anthropic.js.map +1 -1
- package/dist/esm/types/anthropic-interfaces.js.map +1 -1
- package/dist/types/api/chat-api/models.d.ts +63 -8
- package/dist/types/api/chat-api/models.d.ts.map +1 -1
- package/dist/types/api/chat-api/stream-utils.d.ts.map +1 -1
- package/dist/types/constants/anthropic.d.ts +2 -0
- package/dist/types/constants/anthropic.d.ts.map +1 -1
- package/dist/types/types/anthropic-interfaces.d.ts +1 -1
- package/dist/types/types/anthropic-interfaces.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ AI-powered code analysis SDK with WorkCoins billing system. 100% typed, producti
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install solver-sdk@9.0
|
|
8
|
+
npm install solver-sdk@9.1.0
|
|
9
9
|
# или
|
|
10
10
|
npm install solver-sdk@latest
|
|
11
11
|
```
|
|
@@ -425,6 +425,121 @@ function ToolProgressIndicator() {
|
|
|
425
425
|
}
|
|
426
426
|
```
|
|
427
427
|
|
|
428
|
+
## Fine-grained Tool Streaming
|
|
429
|
+
|
|
430
|
+
SDK автоматически использует fine-grained tool streaming для всех запросов с tools. Это значительно снижает latency при генерации больших tool inputs:
|
|
431
|
+
|
|
432
|
+
- **Без fine-grained**: задержки 15+ секунд, мелкие чанки
|
|
433
|
+
- **С fine-grained**: задержки ~3 секунды, крупные чанки
|
|
434
|
+
|
|
435
|
+
### Обработка Invalid JSON
|
|
436
|
+
|
|
437
|
+
При использовании fine-grained streaming возможны incomplete JSON responses (особенно при достижении max_tokens). SDK автоматически:
|
|
438
|
+
|
|
439
|
+
1. Обнаруживает invalid JSON в tool responses
|
|
440
|
+
2. Оборачивает в валидный объект `{"INVALID_JSON": "..."}`
|
|
441
|
+
3. Отправляет retry запрос с увеличенным max_tokens
|
|
442
|
+
|
|
443
|
+
Метрики доступны в DEBUG режиме логирования.
|
|
444
|
+
|
|
445
|
+
## TODO Tracking
|
|
446
|
+
|
|
447
|
+
SDK автоматически передает события прогресса выполнения задач от Claude. Когда AI работает над сложной задачей (рефакторинг, добавление фичи), Claude создает TODO список для отслеживания прогресса.
|
|
448
|
+
|
|
449
|
+
### Пример использования
|
|
450
|
+
|
|
451
|
+
```typescript
|
|
452
|
+
import { ChatApi } from '@vscursor/solver-sdk';
|
|
453
|
+
|
|
454
|
+
const api = new ChatApi(baseURL);
|
|
455
|
+
|
|
456
|
+
for await (const chunk of api.streamChat(messages, { thinking: true })) {
|
|
457
|
+
if (chunk.type === 'todo_update') {
|
|
458
|
+
const event = chunk as any;
|
|
459
|
+
console.log(`📋 Прогресс: ${event.progress?.completed}/${event.progress?.total}`);
|
|
460
|
+
|
|
461
|
+
event.todos.forEach((todo: any) => {
|
|
462
|
+
const icon = todo.status === 'completed' ? '✅' :
|
|
463
|
+
todo.status === 'in_progress' ? '🔧' : '⏳';
|
|
464
|
+
console.log(`${icon} ${todo.content}`);
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
### Формат TODO события
|
|
471
|
+
|
|
472
|
+
```typescript
|
|
473
|
+
{
|
|
474
|
+
type: 'todo_update',
|
|
475
|
+
operation: 'write',
|
|
476
|
+
todos: [
|
|
477
|
+
{
|
|
478
|
+
id: '1',
|
|
479
|
+
content: 'Analyze codebase',
|
|
480
|
+
status: 'completed',
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
id: '2',
|
|
484
|
+
content: 'Implement feature',
|
|
485
|
+
status: 'in_progress',
|
|
486
|
+
activeForm: 'Creating authentication logic...'
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
id: '3',
|
|
490
|
+
content: 'Add tests',
|
|
491
|
+
status: 'not-started'
|
|
492
|
+
}
|
|
493
|
+
],
|
|
494
|
+
progress: {
|
|
495
|
+
completed: 1,
|
|
496
|
+
total: 3,
|
|
497
|
+
current: 'Creating authentication logic...'
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
### Статусы TODO
|
|
503
|
+
|
|
504
|
+
- `not-started` - задача еще не начата
|
|
505
|
+
- `in_progress` - задача выполняется прямо сейчас
|
|
506
|
+
- `completed` - задача завершена
|
|
507
|
+
- `cancelled` - задача отменена
|
|
508
|
+
|
|
509
|
+
### Интеграция в UI
|
|
510
|
+
|
|
511
|
+
```typescript
|
|
512
|
+
function TodoProgressView({ todos }: { todos: TodoItem[] }) {
|
|
513
|
+
const completed = todos.filter(t => t.status === 'completed').length;
|
|
514
|
+
const progress = Math.round((completed / todos.length) * 100);
|
|
515
|
+
|
|
516
|
+
return (
|
|
517
|
+
<div className="todo-progress">
|
|
518
|
+
<div className="progress-bar">
|
|
519
|
+
<div style={{ width: `${progress}%` }} />
|
|
520
|
+
</div>
|
|
521
|
+
<div className="progress-text">{completed}/{todos.length} tasks completed</div>
|
|
522
|
+
<ul className="todo-list">
|
|
523
|
+
{todos.map(todo => (
|
|
524
|
+
<li key={todo.id} className={todo.status}>
|
|
525
|
+
{getIcon(todo.status)}
|
|
526
|
+
<span>{todo.status === 'in_progress' && todo.activeForm
|
|
527
|
+
? todo.activeForm
|
|
528
|
+
: todo.content}
|
|
529
|
+
</span>
|
|
530
|
+
</li>
|
|
531
|
+
))}
|
|
532
|
+
</ul>
|
|
533
|
+
</div>
|
|
534
|
+
);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
function getIcon(status: string): string {
|
|
538
|
+
return status === 'completed' ? '✅' :
|
|
539
|
+
status === 'in_progress' ? '🔧' : '⏳';
|
|
540
|
+
}
|
|
541
|
+
```
|
|
542
|
+
|
|
428
543
|
## Types
|
|
429
544
|
|
|
430
545
|
```typescript
|
|
@@ -615,6 +730,97 @@ if (recovery.needsRecovery) {
|
|
|
615
730
|
}
|
|
616
731
|
```
|
|
617
732
|
|
|
733
|
+
## 🔍 Web Search Tool
|
|
734
|
+
|
|
735
|
+
SDK поддерживает Anthropic Web Search Tool - server-side инструмент для поиска в интернете.
|
|
736
|
+
|
|
737
|
+
### Конфигурация
|
|
738
|
+
|
|
739
|
+
Web search настраивается через environment variables на сервере:
|
|
740
|
+
|
|
741
|
+
```bash
|
|
742
|
+
# Включить web search
|
|
743
|
+
WEB_SEARCH_ENABLED=true
|
|
744
|
+
|
|
745
|
+
# Максимальное количество searches за один запрос
|
|
746
|
+
WEB_SEARCH_MAX_USES=5
|
|
747
|
+
|
|
748
|
+
# Whitelist доменов (optional)
|
|
749
|
+
WEB_SEARCH_ALLOWED_DOMAINS=wikipedia.org,stackoverflow.com,github.com
|
|
750
|
+
|
|
751
|
+
# Blacklist доменов (optional)
|
|
752
|
+
WEB_SEARCH_BLOCKED_DOMAINS=spam.com,malicious-site.org
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
### Content Block Types для Server-Side Tools
|
|
756
|
+
|
|
757
|
+
```typescript
|
|
758
|
+
type ServerSideContentBlock =
|
|
759
|
+
| 'server_tool_use' // Server-side tool использование
|
|
760
|
+
| 'web_search_tool_result' // Результаты поиска
|
|
761
|
+
| 'web_fetch_tool_result' // Результаты web fetch
|
|
762
|
+
| 'code_execution_tool_result' // Результаты code execution
|
|
763
|
+
| 'text_editor_code_execution_tool_result'; // Результаты text editor
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
### Stop Reason: pause_turn
|
|
767
|
+
|
|
768
|
+
Когда модель использует server-side tool, вы получите `stop_reason: 'pause_turn'`:
|
|
769
|
+
|
|
770
|
+
```typescript
|
|
771
|
+
// В streaming событии message_delta
|
|
772
|
+
{
|
|
773
|
+
type: 'message_delta',
|
|
774
|
+
delta: {
|
|
775
|
+
stop_reason: 'pause_turn' // Server-side tool execution
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
// После выполнения придут результаты
|
|
780
|
+
{
|
|
781
|
+
type: 'content_block_start',
|
|
782
|
+
content_block: {
|
|
783
|
+
type: 'web_search_tool_result',
|
|
784
|
+
content: [
|
|
785
|
+
{
|
|
786
|
+
type: 'web_search_result',
|
|
787
|
+
url: 'https://example.com',
|
|
788
|
+
title: 'Example Page',
|
|
789
|
+
encrypted_content: '...',
|
|
790
|
+
page_age: '2024-01-15'
|
|
791
|
+
}
|
|
792
|
+
]
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
### Usage Tracking
|
|
798
|
+
|
|
799
|
+
Web search запросы отслеживаются в `usage.server_tool_use`:
|
|
800
|
+
|
|
801
|
+
```typescript
|
|
802
|
+
interface Usage {
|
|
803
|
+
input_tokens: number;
|
|
804
|
+
output_tokens: number;
|
|
805
|
+
cache_read_input_tokens?: number;
|
|
806
|
+
cache_creation_input_tokens?: number;
|
|
807
|
+
server_tool_use?: {
|
|
808
|
+
web_search_requests?: number; // Количество searches
|
|
809
|
+
code_execution_requests?: number; // Количество code executions
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
### Pricing
|
|
815
|
+
|
|
816
|
+
**Official Anthropic Pricing:**
|
|
817
|
+
- **$10 за 1000 web searches**
|
|
818
|
+
- **$0.01 за один search**
|
|
819
|
+
|
|
820
|
+
Web search конвертируется в WorkCoins credits автоматически на основе текущего exchange rate.
|
|
821
|
+
|
|
822
|
+
---
|
|
823
|
+
|
|
618
824
|
## API Reference
|
|
619
825
|
|
|
620
826
|
### Projects (`sdk.projects`)
|
|
@@ -87,12 +87,14 @@ function processStreamChunk(line, logger, options) {
|
|
|
87
87
|
const validEvents = [
|
|
88
88
|
'message_start', 'content_block_start', 'content_block_delta',
|
|
89
89
|
'content_block_stop', 'message_delta', 'message_stop', 'ping', 'error',
|
|
90
|
+
'pause_turn', // 🔍 НОВОЕ: Server-side tool execution pause (web_search, code_execution)
|
|
90
91
|
'tool_use_ready', // 🔧 Кастомное событие сервера для уведомления о готовности инструмента
|
|
91
92
|
'partial_content_complete', // 🆘 НОВОЕ: Accumulated partial content при max_tokens
|
|
92
93
|
'incomplete_tool_retry', // 🔄 НОВОЕ: Retry при incomplete tool из-за max_tokens
|
|
93
94
|
'heartbeat', // 💓 Heartbeat для длинных операций
|
|
94
95
|
'processing_started', // 🚀 Early streaming событие
|
|
95
96
|
'resume_started', // 🔄 Resume событие
|
|
97
|
+
'todo_update', // 📋 TODO progress tracking
|
|
96
98
|
];
|
|
97
99
|
if (!validEvents.includes(jsonData.type)) {
|
|
98
100
|
if (logger) {
|
|
@@ -155,12 +157,39 @@ function processStreamChunk(line, logger, options) {
|
|
|
155
157
|
};
|
|
156
158
|
}
|
|
157
159
|
break;
|
|
160
|
+
case 'pause_turn':
|
|
161
|
+
// 🔍 НОВОЕ: Server-side tool execution pause
|
|
162
|
+
// Происходит при выполнении web_search или code_execution на стороне Anthropic
|
|
163
|
+
chunk.message = {
|
|
164
|
+
id: '',
|
|
165
|
+
type: 'message',
|
|
166
|
+
role: 'assistant',
|
|
167
|
+
model: '',
|
|
168
|
+
content: [],
|
|
169
|
+
stop_reason: 'pause_turn'
|
|
170
|
+
};
|
|
171
|
+
break;
|
|
158
172
|
case 'tool_use_ready':
|
|
159
173
|
// 🔧 Кастомное событие сервера - передаем как есть
|
|
160
174
|
if (jsonData.tool_use) {
|
|
161
175
|
chunk.tool_use = jsonData.tool_use;
|
|
162
176
|
}
|
|
163
177
|
break;
|
|
178
|
+
case 'todo_update':
|
|
179
|
+
// 📋 НОВОЕ: TODO Update событие
|
|
180
|
+
if (jsonData.operation) {
|
|
181
|
+
chunk.operation = jsonData.operation;
|
|
182
|
+
}
|
|
183
|
+
if (jsonData.todos) {
|
|
184
|
+
chunk.todos = jsonData.todos;
|
|
185
|
+
}
|
|
186
|
+
if (jsonData.tool_use_id) {
|
|
187
|
+
chunk.tool_use_id = jsonData.tool_use_id;
|
|
188
|
+
}
|
|
189
|
+
if (jsonData.progress) {
|
|
190
|
+
chunk.progress = jsonData.progress;
|
|
191
|
+
}
|
|
192
|
+
break;
|
|
164
193
|
// ping и error не требуют дополнительных полей
|
|
165
194
|
}
|
|
166
195
|
return { chunk };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAeH,0CAqCC;AAKD,4CAEC;AAWD,
|
|
1
|
+
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ exports.getBetaHeader = getBetaHeader;
|
|
|
10
10
|
exports.ANTHROPIC_CONSTANTS = {
|
|
11
11
|
/** Beta header для interleaved thinking режима */
|
|
12
12
|
INTERLEAVED_THINKING_BETA: 'interleaved-thinking-2025-05-14',
|
|
13
|
+
/** Beta header для fine-grained tool streaming */
|
|
14
|
+
FINE_GRAINED_TOOL_STREAMING_BETA: 'fine-grained-tool-streaming-2025-05-14',
|
|
13
15
|
/** Обязательная температура для thinking режима */
|
|
14
16
|
THINKING_TEMPERATURE: 1.0,
|
|
15
17
|
/** Минимальный бюджет токенов для thinking */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/constants/anthropic.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/constants/anthropic.ts"],"names":[],"mappings":";;;AA8CA,oEAEC;AAKD,sCAUC;AA/DD;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,yBAAyB,EAAE,iCAAiC;IAE5D,kDAAkD;IAClD,gCAAgC,EAAE,wCAAwC;IAE1E,mDAAmD;IACnD,oBAAoB,EAAE,GAAG;IAEzB,8CAA8C;IAC9C,mBAAmB,EAAE,IAAI;IAEzB,4CAA4C;IAC5C,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,GAAG;IAEvB,0BAA0B;IAC1B,aAAa,EAAE,4BAA4B;IAE3C,8EAA8E;IAC9E,6EAA6E;IAC7E,6BAA6B;IAC7B,6BAA6B;IAE7B,wBAAwB;IACxB,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,CAAU;IAE9D,iBAAiB;IACjB,kBAAkB,EAAE,MAAM;IAE1B,yBAAyB;IACzB,uBAAuB,EAAE,KAAK;IAE9B,WAAW;IACX,eAAe,EAAE,KAAK,EAAE,YAAY;IACpC,cAAc,EAAE,MAAM,EAAE,uBAAuB;CACvC,CAAC;AAEX;;GAEG;AACH,SAAgB,4BAA4B,CAAC,QAAa,EAAE,KAAY;IACtE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,QAAa,EAAE,KAAY,EAAE,QAAiB;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,CAAC,gCAAgC;IACnD,CAAC;IAED,IAAI,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,2BAAmB,CAAC,yBAAyB,CAAC;IACvD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-interfaces.js","sourceRoot":"","sources":["../../../src/types/anthropic-interfaces.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"anthropic-interfaces.js","sourceRoot":"","sources":["../../../src/types/anthropic-interfaces.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA+EH;;GAEG;AACH,MAAa,mBAAmB;IAC9B;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAU;QACrC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;YACtE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,+BAA+B;SACjE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,GAAQ;QACtC,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1B,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACtB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE,CAC/B,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CACtD,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAU;QACpC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;YAC5B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAU;QACvC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,aAAa;YAC5B,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;YACrC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;CACF;AAlDD,kDAkDC"}
|
|
@@ -81,12 +81,14 @@ export function processStreamChunk(line, logger, options) {
|
|
|
81
81
|
const validEvents = [
|
|
82
82
|
'message_start', 'content_block_start', 'content_block_delta',
|
|
83
83
|
'content_block_stop', 'message_delta', 'message_stop', 'ping', 'error',
|
|
84
|
+
'pause_turn', // 🔍 НОВОЕ: Server-side tool execution pause (web_search, code_execution)
|
|
84
85
|
'tool_use_ready', // 🔧 Кастомное событие сервера для уведомления о готовности инструмента
|
|
85
86
|
'partial_content_complete', // 🆘 НОВОЕ: Accumulated partial content при max_tokens
|
|
86
87
|
'incomplete_tool_retry', // 🔄 НОВОЕ: Retry при incomplete tool из-за max_tokens
|
|
87
88
|
'heartbeat', // 💓 Heartbeat для длинных операций
|
|
88
89
|
'processing_started', // 🚀 Early streaming событие
|
|
89
90
|
'resume_started', // 🔄 Resume событие
|
|
91
|
+
'todo_update', // 📋 TODO progress tracking
|
|
90
92
|
];
|
|
91
93
|
if (!validEvents.includes(jsonData.type)) {
|
|
92
94
|
if (logger) {
|
|
@@ -149,12 +151,39 @@ export function processStreamChunk(line, logger, options) {
|
|
|
149
151
|
};
|
|
150
152
|
}
|
|
151
153
|
break;
|
|
154
|
+
case 'pause_turn':
|
|
155
|
+
// 🔍 НОВОЕ: Server-side tool execution pause
|
|
156
|
+
// Происходит при выполнении web_search или code_execution на стороне Anthropic
|
|
157
|
+
chunk.message = {
|
|
158
|
+
id: '',
|
|
159
|
+
type: 'message',
|
|
160
|
+
role: 'assistant',
|
|
161
|
+
model: '',
|
|
162
|
+
content: [],
|
|
163
|
+
stop_reason: 'pause_turn'
|
|
164
|
+
};
|
|
165
|
+
break;
|
|
152
166
|
case 'tool_use_ready':
|
|
153
167
|
// 🔧 Кастомное событие сервера - передаем как есть
|
|
154
168
|
if (jsonData.tool_use) {
|
|
155
169
|
chunk.tool_use = jsonData.tool_use;
|
|
156
170
|
}
|
|
157
171
|
break;
|
|
172
|
+
case 'todo_update':
|
|
173
|
+
// 📋 НОВОЕ: TODO Update событие
|
|
174
|
+
if (jsonData.operation) {
|
|
175
|
+
chunk.operation = jsonData.operation;
|
|
176
|
+
}
|
|
177
|
+
if (jsonData.todos) {
|
|
178
|
+
chunk.todos = jsonData.todos;
|
|
179
|
+
}
|
|
180
|
+
if (jsonData.tool_use_id) {
|
|
181
|
+
chunk.tool_use_id = jsonData.tool_use_id;
|
|
182
|
+
}
|
|
183
|
+
if (jsonData.progress) {
|
|
184
|
+
chunk.progress = jsonData.progress;
|
|
185
|
+
}
|
|
186
|
+
break;
|
|
158
187
|
// ping и error не требуют дополнительных полей
|
|
159
188
|
}
|
|
160
189
|
return { chunk };
|
|
@@ -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,EAAE,wEAAwE;YAC1F,0BAA0B,EAAE,uDAAuD;YACnF,uBAAuB,EAAE,uDAAuD;YAChF,WAAW,EAAE,oCAAoC;YACjD,oBAAoB,EAAE,6BAA6B;YACnD,gBAAgB,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
export const ANTHROPIC_CONSTANTS = {
|
|
6
6
|
/** Beta header для interleaved thinking режима */
|
|
7
7
|
INTERLEAVED_THINKING_BETA: 'interleaved-thinking-2025-05-14',
|
|
8
|
+
/** Beta header для fine-grained tool streaming */
|
|
9
|
+
FINE_GRAINED_TOOL_STREAMING_BETA: 'fine-grained-tool-streaming-2025-05-14',
|
|
8
10
|
/** Обязательная температура для thinking режима */
|
|
9
11
|
THINKING_TEMPERATURE: 1.0,
|
|
10
12
|
/** Минимальный бюджет токенов для thinking */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/constants/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,yBAAyB,EAAE,iCAAiC;IAE5D,mDAAmD;IACnD,oBAAoB,EAAE,GAAG;IAEzB,8CAA8C;IAC9C,mBAAmB,EAAE,IAAI;IAEzB,4CAA4C;IAC5C,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,GAAG;IAEvB,0BAA0B;IAC1B,aAAa,EAAE,4BAA4B;IAE3C,8EAA8E;IAC9E,6EAA6E;IAC7E,6BAA6B;IAC7B,6BAA6B;IAE7B,wBAAwB;IACxB,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,CAAU;IAE9D,iBAAiB;IACjB,kBAAkB,EAAE,MAAM;IAE1B,yBAAyB;IACzB,uBAAuB,EAAE,KAAK;IAE9B,WAAW;IACX,eAAe,EAAE,KAAK,EAAE,YAAY;IACpC,cAAc,EAAE,MAAM,EAAE,uBAAuB;CACvC,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAa,EAAE,KAAY;IACtE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAa,EAAE,KAAY,EAAE,QAAiB;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,CAAC,gCAAgC;IACnD,CAAC;IAED,IAAI,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,mBAAmB,CAAC,yBAAyB,CAAC;IACvD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/constants/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,yBAAyB,EAAE,iCAAiC;IAE5D,kDAAkD;IAClD,gCAAgC,EAAE,wCAAwC;IAE1E,mDAAmD;IACnD,oBAAoB,EAAE,GAAG;IAEzB,8CAA8C;IAC9C,mBAAmB,EAAE,IAAI;IAEzB,4CAA4C;IAC5C,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,GAAG;IAEvB,0BAA0B;IAC1B,aAAa,EAAE,4BAA4B;IAE3C,8EAA8E;IAC9E,6EAA6E;IAC7E,6BAA6B;IAC7B,6BAA6B;IAE7B,wBAAwB;IACxB,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,CAAU;IAE9D,iBAAiB;IACjB,kBAAkB,EAAE,MAAM;IAE1B,yBAAyB;IACzB,uBAAuB,EAAE,KAAK;IAE9B,WAAW;IACX,eAAe,EAAE,KAAK,EAAE,YAAY;IACpC,cAAc,EAAE,MAAM,EAAE,uBAAuB;CACvC,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAa,EAAE,KAAY;IACtE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAa,EAAE,KAAY,EAAE,QAAiB;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,CAAC,gCAAgC;IACnD,CAAC;IAED,IAAI,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,mBAAmB,CAAC,yBAAyB,CAAC;IACvD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-interfaces.js","sourceRoot":"","sources":["../../../src/types/anthropic-interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"anthropic-interfaces.js","sourceRoot":"","sources":["../../../src/types/anthropic-interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+EH;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAU;QACrC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;YACtE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,+BAA+B;SACjE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,GAAQ;QACtC,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1B,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACtB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE,CAC/B,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CACtD,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAU;QACpC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,UAAU;YACzB,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;YAC5B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAU;QACvC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,aAAa;YAC5B,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;YACrC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -50,7 +50,7 @@ export type ToolChoice = 'auto' | 'none' | 'any' | {
|
|
|
50
50
|
*/
|
|
51
51
|
export interface ContentBlock {
|
|
52
52
|
/** Тип блока содержимого */
|
|
53
|
-
type: 'text' | 'thinking' | 'redacted_thinking' | 'tool_use' | 'tool_result';
|
|
53
|
+
type: 'text' | 'thinking' | 'redacted_thinking' | 'tool_use' | 'tool_result' | 'server_tool_use' | 'web_search_tool_result' | 'web_fetch_tool_result' | 'code_execution_tool_result' | 'text_editor_code_execution_tool_result';
|
|
54
54
|
/** Текстовое содержимое (для type: 'text') */
|
|
55
55
|
text?: string;
|
|
56
56
|
/** Содержимое мышления (для type: 'thinking') */
|
|
@@ -59,16 +59,28 @@ export interface ContentBlock {
|
|
|
59
59
|
signature?: string;
|
|
60
60
|
/** Зашифрованные данные (для type: 'redacted_thinking') */
|
|
61
61
|
data?: string;
|
|
62
|
-
/** ID вызова инструмента (для type: 'tool_use') */
|
|
62
|
+
/** ID вызова инструмента (для type: 'tool_use' | 'server_tool_use') */
|
|
63
63
|
id?: string;
|
|
64
|
-
/** Название инструмента (для type: 'tool_use') */
|
|
64
|
+
/** Название инструмента (для type: 'tool_use' | 'server_tool_use') */
|
|
65
65
|
name?: string;
|
|
66
|
-
/** Входные параметры инструмента (для type: 'tool_use') */
|
|
66
|
+
/** Входные параметры инструмента (для type: 'tool_use' | 'server_tool_use') */
|
|
67
67
|
input?: Record<string, any>;
|
|
68
|
-
/** ID вызова инструмента для результата (для type: 'tool_result') */
|
|
68
|
+
/** ID вызова инструмента для результата (для type: 'tool_result' | '*_tool_result') */
|
|
69
69
|
tool_use_id?: string;
|
|
70
|
-
/** Содержимое результата инструмента (для type: 'tool_result') */
|
|
71
|
-
content?: string | ContentBlock[]
|
|
70
|
+
/** Содержимое результата инструмента (для type: 'tool_result' | '*_tool_result') */
|
|
71
|
+
content?: string | ContentBlock[] | Array<{
|
|
72
|
+
type: 'web_search_result';
|
|
73
|
+
url: string;
|
|
74
|
+
title: string;
|
|
75
|
+
encrypted_content: string;
|
|
76
|
+
page_age?: string | null;
|
|
77
|
+
}> | {
|
|
78
|
+
stdout?: string;
|
|
79
|
+
stderr?: string;
|
|
80
|
+
content?: string;
|
|
81
|
+
url?: string;
|
|
82
|
+
title?: string;
|
|
83
|
+
};
|
|
72
84
|
/** Флаг ошибки в результате инструмента (для type: 'tool_result') */
|
|
73
85
|
is_error?: boolean;
|
|
74
86
|
}
|
|
@@ -146,6 +158,12 @@ export interface ChatResponse {
|
|
|
146
158
|
usage?: {
|
|
147
159
|
input_tokens: number;
|
|
148
160
|
output_tokens: number;
|
|
161
|
+
cache_read_input_tokens?: number;
|
|
162
|
+
cache_creation_input_tokens?: number;
|
|
163
|
+
server_tool_use?: {
|
|
164
|
+
web_search_requests?: number;
|
|
165
|
+
code_execution_requests?: number;
|
|
166
|
+
};
|
|
149
167
|
};
|
|
150
168
|
}
|
|
151
169
|
/**
|
|
@@ -213,12 +231,49 @@ export interface ResumeStartedEvent {
|
|
|
213
231
|
partialContentLength: number;
|
|
214
232
|
timestamp: number;
|
|
215
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* 📋 НОВОЕ: TODO статус
|
|
236
|
+
*/
|
|
237
|
+
export type TodoStatus = 'not-started' | 'in_progress' | 'completed' | 'cancelled';
|
|
238
|
+
/**
|
|
239
|
+
* 📋 НОВОЕ: TODO item
|
|
240
|
+
*/
|
|
241
|
+
export interface TodoItem {
|
|
242
|
+
/** Уникальный ID задачи */
|
|
243
|
+
id: string;
|
|
244
|
+
/** Описание задачи */
|
|
245
|
+
content: string;
|
|
246
|
+
/** Текущий статус */
|
|
247
|
+
status: TodoStatus;
|
|
248
|
+
/** Активная форма (что делается прямо сейчас) */
|
|
249
|
+
activeForm?: string;
|
|
250
|
+
/** Зависимости от других задач */
|
|
251
|
+
dependencies?: string[];
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* 📋 НОВОЕ: TODO Update событие
|
|
255
|
+
*/
|
|
256
|
+
export interface TodoUpdateEvent {
|
|
257
|
+
type: 'todo_update';
|
|
258
|
+
/** Операция: write (обновить) или read (прочитать) */
|
|
259
|
+
operation: 'write' | 'read';
|
|
260
|
+
/** Список задач */
|
|
261
|
+
todos: TodoItem[];
|
|
262
|
+
/** ID tool_use который создал это событие */
|
|
263
|
+
tool_use_id: string;
|
|
264
|
+
/** Прогресс выполнения */
|
|
265
|
+
progress?: {
|
|
266
|
+
completed: number;
|
|
267
|
+
total: number;
|
|
268
|
+
current?: string;
|
|
269
|
+
};
|
|
270
|
+
}
|
|
216
271
|
/**
|
|
217
272
|
* Чанк потоковой передачи ответа от модели (соответствует официальному Anthropic API)
|
|
218
273
|
*/
|
|
219
274
|
export interface ChatStreamChunk {
|
|
220
275
|
/** Тип события (официальные события Anthropic API + кастомные) */
|
|
221
|
-
type: 'message_start' | 'content_block_start' | 'content_block_delta' | 'content_block_stop' | 'message_delta' | 'message_stop' | 'ping' | 'error' | 'heartbeat' | 'processing_started' | 'resume_started';
|
|
276
|
+
type: 'message_start' | 'content_block_start' | 'content_block_delta' | 'content_block_stop' | 'message_delta' | 'message_stop' | 'ping' | 'error' | 'pause_turn' | 'heartbeat' | 'processing_started' | 'resume_started' | 'todo_update';
|
|
222
277
|
/** Данные сообщения (для message_start) */
|
|
223
278
|
message?: {
|
|
224
279
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG/E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,KAAK,GACL;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG/E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,KAAK,GACL;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,GACN,UAAU,GACV,mBAAmB,GACnB,UAAU,GACV,aAAa,GACb,iBAAiB,GACjB,wBAAwB,GACxB,uBAAuB,GACvB,4BAA4B,GAC5B,wCAAwC,CAAC;IAE/C,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE5B,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;QACxC,IAAI,EAAE,mBAAmB,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC,GAAG;QAEH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAEtC,kEAAkE;IAClE,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAEjC,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;IAEpC,oCAAoC;IACpC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAEf,6GAA6G;IAC7G,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,mBAAmB,CAAC,yBAAyB,CAAC;IAE5D,2BAA2B;IAC3B,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,gBAAgB,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IAEjC,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAC;IAEhB,gCAAgC;IAChC,IAAI,EAAE,WAAW,CAAC;IAElB,wCAAwC;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,GAAG,IAAI,CAAC;IAE7E,mDAAmD;IACnD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,0CAA0C;IAC1C,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,eAAe,CAAC,EAAE;YAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;SAClC,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,yBAAyB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,SAAS,GAAG,cAAc,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAE/G;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,GAAG,YAAY,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,mBAAmB;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,IAAI,EAAE,eAAe,GACf,qBAAqB,GACrB,qBAAqB,GACrB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,MAAM,GACN,OAAO,GACP,YAAY,GACZ,WAAW,GACX,oBAAoB,GACpB,gBAAgB,GAChB,aAAa,CAAC;IAEpB,2CAA2C;IAC3C,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE;YACN,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,WAAW,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACzC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IAEF,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+CAA+C;IAC/C,aAAa,CAAC,EAAE,YAAY,CAAC;IAE7B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,qDAAqD;IACrD,aAAa,CAAC,EAAE;QACd,WAAW,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACzC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IAEF,sCAAsC;IACtC,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,0CAA0C;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kFAAkF;IAClF,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,sEAAsE;IACtE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAG/D;AAID;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;CAEzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAqCzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAEhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACvD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,WAAW,
|
|
1
|
+
{"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../../../src/api/chat-api/stream-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;CAEzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAqCzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAEhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACvD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GACA,WAAW,CAiKb;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAenD"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
export declare const ANTHROPIC_CONSTANTS: {
|
|
6
6
|
/** Beta header для interleaved thinking режима */
|
|
7
7
|
readonly INTERLEAVED_THINKING_BETA: "interleaved-thinking-2025-05-14";
|
|
8
|
+
/** Beta header для fine-grained tool streaming */
|
|
9
|
+
readonly FINE_GRAINED_TOOL_STREAMING_BETA: "fine-grained-tool-streaming-2025-05-14";
|
|
8
10
|
/** Обязательная температура для thinking режима */
|
|
9
11
|
readonly THINKING_TEMPERATURE: 1;
|
|
10
12
|
/** Минимальный бюджет токенов для thinking */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/constants/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,kDAAkD;;IAGlD,mDAAmD;;IAGnD,8CAA8C;;IAG9C,4CAA4C;;;IAI5C,0BAA0B;;IAG1B,8EAA8E;;;;;;CAiBtE,CAAC;AAEX;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAEjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUhG"}
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/constants/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,kDAAkD;;IAGlD,kDAAkD;;IAGlD,mDAAmD;;IAGnD,8CAA8C;;IAG9C,4CAA4C;;;IAI5C,0BAA0B;;IAG1B,8EAA8E;;;;;;CAiBtE,CAAC;AAEX;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAEjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUhG"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Возможные значения stop_reason согласно Anthropic API
|
|
7
7
|
*/
|
|
8
|
-
export type AnthropicStopReason = 'end_turn' | 'tool_use' | 'max_tokens' | 'stop_sequence';
|
|
8
|
+
export type AnthropicStopReason = 'end_turn' | 'tool_use' | 'max_tokens' | 'stop_sequence' | 'pause_turn';
|
|
9
9
|
/**
|
|
10
10
|
* Базовый thinking блок согласно Anthropic API
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-interfaces.d.ts","sourceRoot":"","sources":["../../../src/types/anthropic-interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"anthropic-interfaces.d.ts","sourceRoot":"","sources":["../../../src/types/anthropic-interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,UAAU,GACV,YAAY,GACZ,eAAe,GACf,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,sBAAsB,GACtB,kBAAkB,GAClB,qBAAqB,GACrB,wBAAwB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,oBAAoB,CAAC;AAEhF;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,sBAAsB;IAUzE;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,yBAAyB;IAW3E;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,qBAAqB;IASvE;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,wBAAwB;CAO9E"}
|