solver-sdk
Version:
SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system
72 lines • 2.81 kB
TypeScript
/**
* Утилиты для обработки потоковых данных от API чата
*/
import { ChatStreamChunk } from './models';
/**
* Результат парсинга строки SSE согласно официальному Anthropic API
*/
export interface ParseResult {
chunk?: ChatStreamChunk;
}
/**
* Парсит строку SSE потока согласно официальному Anthropic API
*/
export declare function parseStreamLine(line: string): ParseResult;
/**
* Проверяет завершен ли поток согласно Anthropic API
*/
export declare function isStreamComplete(chunk: ChatStreamChunk): boolean;
/**
* Обрабатывает чанк потоковой передачи данных в формате Server-Sent Events
* Работает только с официальными событиями Anthropic API
*
* @param line Строка из SSE потока
* @param logger Логгер для отладки
* @param options Опции обработки
* @returns Результат обработки чанка
*/
export declare function processStreamChunk(line: string, logger?: any, options?: {
onVSCodeCommand?: (command: any) => Promise<any> | any;
ignoreInvalidCommands?: boolean;
}): ParseResult;
/**
* Обрабатывает ошибки потоковой передачи
* @param error Ошибка для обработки
* @returns Обработанная ошибка
*/
export declare function handleStreamError(error: any): Error;
/**
* 🛡️ Безопасный парсинг partial JSON с восстановлением
* Исправляет типичные проблемы чанкинга:
* - Незакрытые кавычки
* - Незакрытые скобки
* - Обрезанные строки
*/
export declare function safeParsePartialJson(json: string, logger?: any): any | null;
/**
* 🔄 Accumulator для безопасного накопления partial JSON chunks
* Использует умный парсинг с восстановлением
*/
export declare class PartialJsonAccumulator {
private accumulated;
private logger?;
constructor(logger?: any);
/**
* Добавляет новый чанк
*/
add(chunk: string): void;
/**
* Пытается распарсить накопленный JSON
* @returns Распарсенный объект или null если еще не готов
*/
tryParse(): any | null;
/**
* Возвращает накопленную строку
*/
getAccumulated(): string;
/**
* Сбрасывает накопленные данные
*/
reset(): void;
}
//# sourceMappingURL=stream-utils.d.ts.map