Об этом проекте

# 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