solver-sdk
Version:
SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)
100 lines • 4.31 kB
TypeScript
import { HttpClient } from '../utils/http-client.js';
import { FileIndexResponse } from '../types/index.js';
import { ProjectsApi } from './projects-api.js';
/**
* Фрагмент кода для контекста
*/
export interface CodeSnippet {
/** Путь к файлу */
filePath: string;
/** Относительный путь к файлу */
relativePath?: string;
/** Начальная строка */
startLine: number;
/** Конечная строка */
endLine: number;
/** Содержимое фрагмента */
content: string;
/** Язык программирования */
language?: string;
}
/**
* Автоматически определенный контекст
*/
export interface AutoContext {
/** Фрагменты кода */
codeSnippets: CodeSnippet[];
/** Релевантность к запросу (0-100) */
relevance: number;
}
/**
* Параметры для определения контекста
*/
export interface DetectContextParams {
/** Идентификатор проекта */
projectId: string;
/** Запрос для определения контекста */
query: string;
/** Максимальное количество фрагментов кода */
maxSnippets?: number;
/** Минимальный порог релевантности (0-100) */
relevanceThreshold?: number;
}
/**
* Класс для работы с контекстом
*/
export declare class ContextApi {
/** HTTP клиент */
private readonly httpClient;
/** API для работы с проектами */
private readonly projectsApi;
/**
* Создает новый экземпляр API для работы с контекстом
* @param {HttpClient} httpClient HTTP клиент
* @param {ProjectsApi} projectsApi API для работы с проектами
*/
constructor(httpClient: HttpClient, projectsApi: ProjectsApi);
/**
* Определяет контекст для запроса
* @param {DetectContextParams} params Параметры определения контекста
* @returns {Promise<AutoContext>} Определенный контекст
*/
detectContext(params: DetectContextParams): Promise<AutoContext>;
/**
* Получает содержимое файла
* @param {string} projectId Идентификатор проекта
* @param {string} filePath Путь к файлу
* @returns {Promise<string>} Содержимое файла
*/
getFileContent(projectId: string, filePath: string): Promise<string>;
/**
* Получает содержимое фрагмента файла
* @param {string} projectId Идентификатор проекта
* @param {string} filePath Путь к файлу
* @param {number} startLine Начальная строка
* @param {number} endLine Конечная строка
* @returns {Promise<CodeSnippet>} Фрагмент кода
*/
getFileSnippet(projectId: string, filePath: string, startLine: number, endLine: number): Promise<CodeSnippet>;
/**
* Получает структуру директории
* @param {string} projectId Идентификатор проекта
* @param {string} [dirPath='/'] Путь к директории
* @returns {Promise<Array<{name: string, type: 'file' | 'directory', path: string}>>} Структура директории
*/
getDirectoryStructure(projectId: string, dirPath?: string): Promise<Array<{
name: string;
type: 'file' | 'directory';
path: string;
}>>;
/**
* Обновляет индекс файла
* @param projectId ID проекта
* @param filePath Путь к файлу
* @param content Новое содержимое файла
* @param force Принудительное обновление
* @returns Информация об обновленном индексе файла
*/
updateFileIndex(projectId: string, filePath: string, content: string, force?: boolean): Promise<FileIndexResponse>;
}
//# sourceMappingURL=context-api.d.ts.map