UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)

67 lines 3.02 kB
/** * Класс для работы с контекстом */ export class ContextApi { /** * Создает новый экземпляр API для работы с контекстом * @param {HttpClient} httpClient HTTP клиент * @param {ProjectsApi} projectsApi API для работы с проектами */ constructor(httpClient, projectsApi) { this.httpClient = httpClient; this.projectsApi = projectsApi; } /** * Определяет контекст для запроса * @param {DetectContextParams} params Параметры определения контекста * @returns {Promise<AutoContext>} Определенный контекст */ async detectContext(params) { return this.httpClient.post('/api/context/detect', params); } /** * Получает содержимое файла * @param {string} projectId Идентификатор проекта * @param {string} filePath Путь к файлу * @returns {Promise<string>} Содержимое файла */ async getFileContent(projectId, filePath) { return this.httpClient.get(`/api/projects/${projectId}/files`, { path: filePath }); } /** * Получает содержимое фрагмента файла * @param {string} projectId Идентификатор проекта * @param {string} filePath Путь к файлу * @param {number} startLine Начальная строка * @param {number} endLine Конечная строка * @returns {Promise<CodeSnippet>} Фрагмент кода */ async getFileSnippet(projectId, filePath, startLine, endLine) { return this.httpClient.get(`/api/projects/${projectId}/snippets`, { path: filePath, startLine, endLine }); } /** * Получает структуру директории * @param {string} projectId Идентификатор проекта * @param {string} [dirPath='/'] Путь к директории * @returns {Promise<Array<{name: string, type: 'file' | 'directory', path: string}>>} Структура директории */ async getDirectoryStructure(projectId, dirPath = '/') { return this.httpClient.get(`/api/projects/${projectId}/directory`, { path: dirPath }); } /** * Обновляет индекс файла * @param projectId ID проекта * @param filePath Путь к файлу * @param content Новое содержимое файла * @param force Принудительное обновление * @returns Информация об обновленном индексе файла */ async updateFileIndex(projectId, filePath, content, force = false) { return this.projectsApi.updateFileIndex(projectId, filePath, { content, force }); } } //# sourceMappingURL=context-api.js.map