Skip to content

gmrx/coder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coder

AI-ассистент для VS Code с агентным циклом, 20+ инструментами, системой подагентов и поддержкой любого OpenAI-совместимого LLM API.

Автор: gmrx Лицензия: Доступ только по личному соглашению с автором.


Возможности

  • Агентный цикл — модель сама выбирает инструменты, анализирует проект, пишет и редактирует код.
  • 20+ инструментов — чтение, запись, поиск, grep, символы, зависимости, shell, semantic search, web search/fetch.
  • Подагенты — параллельное и последовательное выполнение задач (explore, shell, generalPurpose).
  • Авто-контекст — при первом сообщении автоматически сканирует структуру проекта, файлы и стек.
  • SCM-интеграция — изменения файлов отображаются в Source Control с возможностью Accept/Reject поштучно или все сразу.
  • Checkpoints — снимки состояния перед каждым запросом; откат и отмена отката.
  • Diff — unified diff в карточках файлов + inline-декорации в редакторе (зелёные/красные).
  • Mermaid-диаграммы — рендеринг в SVG, переключение source/diagram, полноэкранный режим с зумом.
  • Markdown — подсветка кода (highlight.js), таблицы, ссылки, кнопка копирования для блоков кода.
  • Shell с подтверждением — команды выполняются только после одобрения пользователем; опасные паттерны блокируются.
  • Quick tags — быстрые подсказки для начала диалога + LLM-генерируемые follow-up предложения.

Инструменты агента

Инструмент Описание
scan_structure Структура верхнего уровня проекта
list_files Дерево файлов (с фильтром по пути)
glob Поиск файлов по glob-паттерну
detect_stack Определение языков, фреймворков, точек входа
grep Regex-поиск по файлам с контекстом
read_file Чтение файла (smart summary для больших файлов)
read_file_range Чтение диапазона строк
str_replace Точная замена строки в файле
write_file Создание / перезапись файла
delete_file Удаление файла
edit_notebook Редактирование ячеек Jupyter
extract_symbols Символы документа (функции, классы, типы)
workspace_symbols Поиск символов по всему workspace
dependencies Граф импортов и зависимости пакетов
read_lints Диагностика линтера / компилятора
semantic_search Семантический поиск через embeddings + rerank
web_search Поиск в интернете (DuckDuckGo)
web_fetch Загрузка и извлечение текста с URL
shell Выполнение shell-команды (с подтверждением)
subagent Запуск подагента (одиночный или batch)
final_answer Завершение анализа и выдача ответа

Установка

Режим разработки

npm install
npm run build

Откройте папку проекта в VS Code и нажмите F5 — запустится новое окно с загруженным расширением.

Сборка VSIX-пакета

npm run package

Создаст .vsix файл для установки через Extensions: Install from VSIX.

Настройка

Откройте чат-панель (иконка в Activity Bar) → вкладка Settings, или через SettingsAI Assistant.

Параметр Обязательный Описание
aiAssistant.apiBaseUrl да URL endpoint (например, https://api.openai.com/v1/chat/completions)
aiAssistant.apiKey да API-ключ
aiAssistant.model да Имя модели (например, gpt-4.1-mini)
aiAssistant.embeddingsModel нет Модель эмбеддингов (для semantic search)
aiAssistant.rerankModel нет Модель rerank (для переупорядочивания результатов)

Кнопка Test Connection проверяет соединение и загружает список доступных моделей.

Использование

Чат

  1. Откройте панель Coder в Activity Bar.
  2. Введите сообщение и нажмите Enter (Shift+Enter — новая строка).
  3. Агент автоматически исследует проект, выбирает инструменты и отвечает.
  4. Используйте quick tags для быстрого старта или follow-up предложения после ответа.

Работа с файлами

  • Изменения файлов отображаются в карточках с diff.
  • Accept / Reject — поштучно для каждого файла.
  • Accept All / Reject All — массовые действия.
  • Все изменения также видны в Source Control (AI Agent).

Checkpoints

  • Перед каждым запросом создаётся снимок состояния файлов.
  • Revert — откат к любому checkpoint.
  • Undo revert — отмена отката.

Shell-команды

Когда агент хочет выполнить команду, появляется карточка подтверждения. Команду можно отредактировать перед запуском.

Команды

Команда Описание
AI Assistant: Спросить модель Быстрый вопрос — ответ в markdown-документе
AI Assistant: Настроить Мастер настройки API

Архитектура

src/
├── extension.ts            — точка входа, регистрация команд
├── agent/
│   ├── runner.ts           — основной цикл агента
│   ├── executor.ts         — выполнение инструментов
│   ├── prompt.ts           — системный промпт, парсинг JSON
│   ├── tools.ts            — описания инструментов для LLM
│   └── checks.ts           — проверки монотонности
├── analysis/
│   ├── scanner.ts          — сканирование структуры проекта
│   ├── grep.ts             — regex-поиск по workspace
│   └── symbols.ts          — символы, граф зависимостей
├── core/
│   ├── api.ts              — HTTP-запросы к LLM API
│   ├── utils.ts            — утилиты (truncate, smartReadFile)
│   ├── constants.ts        — лимиты и паттерны
│   └── types.ts            — TypeScript-типы
└── ui/
    ├── provider.ts         — webview, SCM, checkpoints, diff
    ├── webviewTemplate.ts  — HTML-шаблон чата
    └── markdown.ts         — серверный рендеринг markdown

media/
├── chat-app.js             — логика UI чата
├── chat-markdown.js        — markdown + Mermaid в webview
├── chat.js                 — UI подагентов
├── webview.css             — основные стили
└── webview-extra.css       — дополнительные стили

Технические детали

  • Совместимость: VS Code ≥ 1.75.0
  • Язык: TypeScript → компилируется в dist/
  • Рантайм-зависимости: нет (только VS Code API + Node.js built-in)
  • Webview CDN: markdown-it, highlight.js, mermaid
  • API: любой OpenAI Chat Completions-совместимый endpoint
  • Таймауты: API — 180с, shell — 30с, web_fetch — 15с, web_search — 10с
  • Лимиты: файл ≤ 500 КБ, контекст ≤ 100 000 символов, результат инструмента ≤ 8 000 символов

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors