Об этом проекте
# OpenCode++
OpenCode++ — это плагин для официального приложения OpenCode Desktop, ориентированный на Windows. Его цель — сделать весь процесс генерации кода ИИ видимым и проверяемым: что модель просмотрела, что заблокировала, что попросила выполнить и что фактически подтверждено текущими доказательствами.
## Решаемая проблема
ИИ-сессии могут создавать правдоподобные диффы, но при этом читать не те файлы, редактировать за пределами ожидаемой области, запускать посторонние команды или объявлять успех без свежих тестовых доказательств. OpenCode++ добавляет вокруг OpenCode Desktop контрольную плоскость проверки, заставляя модель работать на основе контекста репозитория, чётких границ редактирования, отслеживаемых доказательств и итоговых решений.
OpenCode++ — это не ещё одно чат-приложение и не замена модели. Это пользовательский плагин для рабочего стола, который наблюдает за уже открытыми инструментами OpenCode и предоставляет инструменты Harness для:
- выбора релевантных файлов и символов перед слепым поиском;
- подготовки границ задачи и требуемых проверок;
- защиты команд и путей;
- записи очищенных доказательств выполнения относительно текущего рабочего дерева;
- оценки политик, свежести, регрессий, галлюцинаций и порогов сходимости;
- объяснения, является ли следующий шаг исправлением, пересборкой, проверкой человеком или финализацией.
## Архитектура системы
Ключевая граница проста: OpenCode по-прежнему читает файлы, редактирует код и запускает команды. OpenCode++ предоставляет вокруг этой работы детерминированный контекст, границы, проверки доказательств и решения.
| Слой | Что делает OpenCode++ | Что он не утверждает |
| --- | --- | --- |
| Регистрация и поиск контекста | Находит релевантные пакеты, файлы, символы, версии и зависимости; объясняет выбранные и отклонённые файлы. | Контекст — это руководство, а не разрешение или доказательство. |
| Защита и политики | Проверяет команды, защищённые пути, контракты, свежесть, регрессии и требуемые действия. | Это не песочница ОС. |
| Доказательства | Сопоставляет результаты команд или CI с хэшем текущего рабочего дерева и активной политикой доказательств. | Сама по себе команда не доказывает бизнес-корректность. |
| Журнал вмешательств | Записывает статусы наблюдений, блокировок, запросов, исправлений, проверок, нерешённых вопросов и проверки человеком. | Предотвращение или рекомендация — это не проверенное исправление. |
| Решения и панель | Возвращает следующее разрешённое действие и отображает записанные факты в результатах рабочего стола и локальных артефактах. | Не раскрывает скрытую цепочку рассуждений модели и не вызывает другую модель. |
Обычный путь рабочего стола использует одну текущую модель OpenCode и внутрипроцессный плагин. CLI и MCP остаются поверхностью для разработки/совместимости; для установки или повседневного использования они не требуются.
## Текущие возможности
Установщик Windows добавляет опциональный основной режим OpenCode под названием **OpenCode++**. Выберите его в селекторе режимов внизу окна и затем опишите задачу кодирования обычным образом. Запоминать команды OpenCode++ не нужно.
После выбора режима его подсказка указывает текущей модели OpenCode использовать внутрипроцессные инструменты плагина. Плагин не запускает вторую модель или CLI-процесс. Он работает внутри OpenCode Desktop и записывает проверяемые артефакты выполнения в каталог `.agent-context/` репозитория.
Установщик EXE — это установка для каждого пользователя, для Windows x64, не требует прав администратора.
По умолчанию плагин работает офлайн: не получает удалённые источники контекста и не вызывает вторую модель. Настроенные удалённые источники или передача обратной связи должны быть явно включены. Активная модель OpenCode по-прежнему отвечает за чтение, редактирование и выполнение команд; OpenCode++ предоставляет детерминированные инструменты и проверки вокруг этой работы.
## Установка и использование
1. Скачайте `opencode-plusplus-setup-win-x64.exe` из GitHub Releases.
2. Полностью закройте OpenCode Desktop.
3. Дважды щёлкните EXE и примите сообщение об установке.
4. Перезапустите OpenCode Desktop и откройте репозиторий.
5. В селекторе режимов выберите **OpenCode++**.
6. Введите обычный запрос, например «исправь таймаут входа и добавь регрессионный тест».
7. Позвольте выбранному режиму вызывать `prepare`, `retrieve`, `evaluate` и `next` во время работы. Для задач, требующих проверок Harness, не переключайтесь обратно на Build.
8. После `evaluate` или `next` читайте компактный статус. Для прогресса этапов, выбранных и отклонённых файлов, обоснований решений, свежести доказательств, вмешательств и итогового резюме вызывайте `opencode_plusplus_dashboard`.
9. Для отслеживания, обнаружений, требуемых команд или итоговых отчётов проверяйте `.agent-context/`.
Установщик записывает только следующие файлы конфигурации OpenCode:
```text
<OpenCode config>\plugins\opencode-plusplus.js
<OpenCode config>\agents\opencode-plusplus.md
<OpenCode config>\opencode-plusplus\state.json
<OpenCode config>\opencode-plusplus\installation.json
```
Он удаляет файлы, созданные старыми версиями для slash-команд или патчей `app.asar`. Он больше не изменяет пакет OpenCode Desktop. Каталог конфигурации по умолчанию — `%USERPROFILE%\.config\opencode`; `OPENCODE_CONFIG_DIR` имеет приоритет.
## Отчёты и границы
Доказательства выполнения локальны для каждого репозитория:
- `.agent-context/traces/` содержит доказательства выполнения и тестов;
- `.agent-context/runs/` содержит контекст задач и границы редактирования;
- `.agent-context/loops/` содержит решения и состояние сходимости;
- `.agent-context/sidecar/latest.md` содержит последнее резюме проверки.
- `.agent-context/sidecar/visualization.json` содержит последний структурированный снимок панели Harness.
Плагин не является песочницей ОС. Он не может помешать другому приложению редактировать файлы, не может доказать бизнес-семантику по коду выхода и не гарантирует правильную классификацию непрозрачных аргументов инструментов. Прохождение команды — это доказательство, а не полное доказательство корректности. Заблокированный результат требует от выбранного режима исправления или запроса проверки человеком.
### Что видит пользователь
Результаты инструментов рабочего стола по умолчанию компактны: `OpenCode++ ✓ Verified`, `✗ Repair required` или `⚠ Human review`. Структурированный JSON по-прежнему содержит `actionSummary` с элементами `observed`, `prevented`, `requested`, `repaired`, `verified` и `unresolved`. Вызовите `opencode_plusplus_dashboard` для полного представления `Plan -> Prepare -> Retrieve -> Execute -> Collect -> Evaluate -> Decide -> Persist -> Finalize`, включая обоснования решений, свежесть доказательств, счётчики вмешательств и выбранные/отклонённые файлы.
Панель раскрывает записанные системные факты и входные данные решений. Она не раскрывает скрытую цепочку рассуждений модели. Это делает представление полезным для отладки и проверки, не представляя приватные внутренние рассуждения как проверяемые факты.
Результаты рабочего стола и `.agent-context/sidecar/latest.md` различают следующие проблемы:
- **Файлы вмешательства:** файлы, выбранные для проверки, отредактированные в границах или отклонённые с причиной;
- **Заблокированные риски:** небезопасные команды, защищённые пути, устаревший контекст, отсутствующие тесты, нарушения политик или нерешённые регрессии;
- **Предложенные исправления:** запрошенные операции или отредактированные исполнителем файлы, но всё ещё требующие доказательств;
- **Проверенные исправления:** исправление, за которым следуют новые доказательства команды или CI для текущего рабочего дерева;
- **Работа человека:** нерешённые обнаружения, повторяющиеся состояния без прогресса или семантические решения, которые Harness не может доказать.
Таким образом, `verified fix` уже, чем `suggested fix`. Комментарии, контекстная документация, ручные заявления, успешные ранние тесты, правки исходного кода, списки коммитов или сгенерированные моделью резюме не могут стать проверенными только потому, что выглядят правдоподобно. Внешний контекст — это ненадёжное руководство, комментарии — локальное знание, а не политика. Когда результат показывает `human-review`, прочитайте, каких именно доказательств не хватает в `actionSummary.evidence`; это не запрос на повторение задачи.
Использование кэша контекста и реестра хранится в `.agent-context/cache/` и `.agent-context/context-registry/usage/`. Локальная обратная связь хранится в `.agent-context/context-registry/feedback/`, аннотации — в `.agent-context/knowledge/annotations/`, записи вмешательств — в `.agent-context/interventions/`. Это локальные артефакты выполнения и обычно не должны коммититься.
На Windows поддерживаются пути с пробелами и не-ASCII символами, но плагин по-прежнему зависит от прав активного пользователя, возможности записи в репозиторий и каталога плагинов, который OpenCode Desktop загружает. Блокировки антивируса, папки только для чтения, недоступные сетевые источники, недопустимое содержимое реестра и ошибки прав сообщаются как диагностика или статус проверки человеком; они не превращаются в успешную проверку.
## Настройка вашего Harness
OpenCode++ намеренно является точкой расширения. Если OpenCode кажется слишком свободным, слишком строгим или не соответствует рабочему процессу вашей команды, форкните или расширьте плагин и определите собственные политики Harness, а не прячьте проблемы в подсказках.
Полезные точки настройки включают:
- основной промпт агента в `src/installer/opencode-plusplus-prompts.ts`;
- правила команд и защищённых путей в `src/integrations/opencode/plugin-runtime/`;
- ранжирование поиска в `src/retrievers/` и `src/core/ranker.ts`;
- доверие и свежесть доказательств в `src/outputs/evidence.ts` и `src/harness/verification-plane/`;
- остановка циклов и арбитраж решений в `src/harness/control-plane/`;
- поведение инструментов рабочего стола в `src/integrations/opencode/plugin-runtime/harness/`.
Безопасный паттерн настройки: добавьте тесты для нужной политики, измените плагин или режим агента, запустите полную проверку и распространите новый установщик Windows с контрольной суммой. Держите Harness явным в том, что он может наблюдать и что остаётся решением человека.
## Вклад
1. Форкните репозиторий и создайте сфокусированную ветку.
2. Прочитайте `AGENTS.md`, соответствующие исходные файлы и парную документацию на китайском и английском.
3. Добавьте или обновите детерминированные тесты перед изменением поведения.
4. Не коммитьте артефакты выполнения рабочего стола, `dist/`, промежуточные файлы установщика, ключи и локальные файлы `.agent-context/`.
5. Запустите `npm run check`, `npm run lint`, `npm run format:check`, `npm run docs:bilingual:check` и `npm test`.
6. Для изменений установщика также запустите на Windows `npm run build:installer:windows`, `npm run test:installer:windows` и `npm run release:verify`.
7. Обновите пользовательскую документацию на обоих языках и объясните границы совместимости в pull request.
## Поверхность совместимости для разработчиков
Репозиторий сохраняет точки входа CLI и MCP для разработки исходного кода, CI, диагностики и интеграций совместимости. Они не являются обычным путём установки для рабочего стола и не нужны обычным пользователям.
## Лицензия
MIT
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.