lv24-opencode-consilium 0.0.0-stage → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +511 -3
- package/bin/cli.js +19 -0
- package/bin/mcp.js +24 -0
- package/consilium.config.example.json +84 -0
- package/dist/agents.d.ts +79 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +1051 -0
- package/dist/agents.js.map +1 -0
- package/dist/artifacts.d.ts +75 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +464 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/cli.d.ts +12 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1392 -0
- package/dist/cli.js.map +1 -0
- package/dist/compat.d.ts +160 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +419 -0
- package/dist/compat.js.map +1 -0
- package/dist/config.d.ts +112 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +728 -0
- package/dist/config.js.map +1 -0
- package/dist/consensus.d.ts +73 -0
- package/dist/consensus.d.ts.map +1 -0
- package/dist/consensus.js +273 -0
- package/dist/consensus.js.map +1 -0
- package/dist/defaults.d.ts +34 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +102 -0
- package/dist/defaults.js.map +1 -0
- package/dist/doctor.d.ts +27 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +798 -0
- package/dist/doctor.js.map +1 -0
- package/dist/fallback.d.ts +50 -0
- package/dist/fallback.d.ts.map +1 -0
- package/dist/fallback.js +134 -0
- package/dist/fallback.js.map +1 -0
- package/dist/git.d.ts +28 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +71 -0
- package/dist/git.js.map +1 -0
- package/dist/index.d.ts +100 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +653 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +20 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +1215 -0
- package/dist/mcp.js.map +1 -0
- package/dist/models.d.ts +97 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +873 -0
- package/dist/models.js.map +1 -0
- package/dist/plugin.d.ts +59 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +223 -0
- package/dist/plugin.js.map +1 -0
- package/dist/presets.d.ts +27 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +86 -0
- package/dist/presets.js.map +1 -0
- package/dist/replay.d.ts +37 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/replay.js +103 -0
- package/dist/replay.js.map +1 -0
- package/dist/report.d.ts +28 -0
- package/dist/report.d.ts.map +1 -0
- package/dist/report.js +300 -0
- package/dist/report.js.map +1 -0
- package/dist/smart-experts.d.ts +44 -0
- package/dist/smart-experts.d.ts.map +1 -0
- package/dist/smart-experts.js +242 -0
- package/dist/smart-experts.js.map +1 -0
- package/dist/stream.d.ts +50 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +219 -0
- package/dist/stream.js.map +1 -0
- package/dist/tool-run.d.ts +49 -0
- package/dist/tool-run.d.ts.map +1 -0
- package/dist/tool-run.js +143 -0
- package/dist/tool-run.js.map +1 -0
- package/dist/types.d.ts +352 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/variants.d.ts +30 -0
- package/dist/variants.d.ts.map +1 -0
- package/dist/variants.js +111 -0
- package/dist/variants.js.map +1 -0
- package/dist/verify.d.ts +33 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +80 -0
- package/dist/verify.js.map +1 -0
- package/dist/watch.d.ts +73 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +350 -0
- package/dist/watch.js.map +1 -0
- package/docs/README.ru.md +508 -0
- package/docs/README.zh.md +196 -0
- package/docs/session-and-plugin.md +642 -0
- package/package.json +88 -6
- package/schema/config.schema.json +100 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
# lv24-opencode-consilium
|
|
2
|
+
|
|
3
|
+
[English](../README.md) · **Русский** · [中文](README.zh.md)
|
|
4
|
+
|
|
5
|
+
Консилиум ИИ-экспертов для [OpenCode](https://opencode.ai): несколько ролей-агентов **параллельно отвечают на разных моделях**, затем председатель синтезирует итоговый план. В комплекте — подбор сильнейших бесплатных моделей, CLI, библиотека и **MCP-сервер** для любого харнесса (Claude Desktop, Codex, Cursor, VS Code, свои агенты).
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
consilium "Оцени дизайн аутентификации"
|
|
9
|
+
arch → flint-40b-free
|
|
10
|
+
ux → inkling-2-small-free
|
|
11
|
+
ba → deepseek-v4.1-flash-free
|
|
12
|
+
sec → iceman-free
|
|
13
|
+
chair → beam-free ← синтез
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Зачем
|
|
17
|
+
|
|
18
|
+
- **Разные модели — разные слепые зоны.** Одна модель пропускает то, что ловит другая; председатель разрешает расхождения.
|
|
19
|
+
- **По умолчанию $0.** Находит бесплатные модели с поддержкой tools в публичных каталогах, ранжирует, проверяет реальным запросом и прописывает в конфиг.
|
|
20
|
+
- **Работает с тем, что уже есть.** Использует OpenCode CLI (агенты, авторизация, провайдеры), а не отдельный стек провайдеров.
|
|
21
|
+
- **Работает внутри любого харнесса.** Тот же движок доступен как MCP-сервер по stdio.
|
|
22
|
+
|
|
23
|
+
## Возможности
|
|
24
|
+
|
|
25
|
+
- Параллельные эксперты с маршрутизацией `agent` + `model` и ограничением конкурентности.
|
|
26
|
+
- Синтез председателем: настраиваемый шаблон и лимит текста каждого эксперта.
|
|
27
|
+
- Динамический подбор бесплатных моделей: `models.dev` + OpenRouter + офлайн-набор; кэш 12 ч.
|
|
28
|
+
- Прозрачный рейтинг (контекст, tools, structured output, reasoning, свежесть, семейство, «теневая цена» платного аналога).
|
|
29
|
+
- Реальная проверка: короткий запрос к каждой модели-кандидату, отбрасываются недоступные в регионе.
|
|
30
|
+
- Надёжный раннер: промпт через stdin (без shell-инъекций и лимита 8 КБ Windows), изоляция `--standalone`, retry с backoff, таймауты, отмена, учёт токенов и стоимости.
|
|
31
|
+
- `doctor`, пресеты, ревью git diff, чистый JSON-вывод.
|
|
32
|
+
- MCP-инструменты: запуск консилиума, список агентов, бесплатные модели, диагностика, bootstrap.
|
|
33
|
+
- Строгий TypeScript, ноль runtime-зависимостей, Node >= 18.
|
|
34
|
+
|
|
35
|
+
## Требования
|
|
36
|
+
|
|
37
|
+
- Node.js **>= 18**
|
|
38
|
+
- Установленный и авторизованный [OpenCode CLI](https://opencode.ai) (`npm install -g opencode-ai`), **V1 или V2**
|
|
39
|
+
- Опционально: `OPENROUTER_API_KEY` для бесплатных моделей OpenRouter
|
|
40
|
+
|
|
41
|
+
## Совместимость с OpenCode V1 и V2
|
|
42
|
+
|
|
43
|
+
Пакет работает с обеими ветками OpenCode и определяет формат конфигурации сам:
|
|
44
|
+
|
|
45
|
+
| Что | OpenCode V1 | OpenCode V2 |
|
|
46
|
+
| --- | --- | --- |
|
|
47
|
+
| `opencode.json` формат | `agent` + `prompt` | `agents` + `system` |
|
|
48
|
+
| MCP-серверы | `mcp.<name>` + `enabled` | `mcp.servers.<name>` + `disabled` |
|
|
49
|
+
| Команды | `command` + `subtask` | `commands` + `subagent` |
|
|
50
|
+
| Модель агента при `run --agent` | применяется из конфига | **игнорируется**, нужен `--model` |
|
|
51
|
+
|
|
52
|
+
Что из этого следует на практике:
|
|
53
|
+
|
|
54
|
+
- **V1-формат — база.** Его читают обе версии, поэтому `consilium init --free` по умолчанию пишет именно его. Ничего конвертировать не нужно.
|
|
55
|
+
- **Нативный V2 для агентов** (`agents` + `system`) пишется только по флагу `consilium init --free --native-v2` или если файл уже ведётся в V2-формате. MCP-сервер ставится отдельно: `consilium mcp --install`.
|
|
56
|
+
- **Модели всегда передаются явно.** `consilium` подставляет `--model` из `consilium.config.json` или из `opencode.json`, потому что V2 не применяет модель агента при `--agent`.
|
|
57
|
+
- **Агенты читаются из обоих разделов.** V2-проекты с `agents` и V1-проекты с `agent` определяются автоматически; файлы `opencode.json(c)`, `.opencode/opencode.json(c)` и родительских каталогов сливаются в том же порядке, что и в OpenCode (`.opencode` приоритетнее).
|
|
58
|
+
- **429 и лимиты бесплатных моделей** распознаются как `RATE_LIMITED`: короткий лимит (до 30 с) пережидается повтором, длинный сразу возвращает ошибку с временем до следующей попытки.
|
|
59
|
+
- **`doctor` проверяет совместимость**: версию CLI, формат файла, дубли `agent`/`agents`, мёртвые в V2 поля (`theme`, `autoupdate`) и плоские MCP-записи.
|
|
60
|
+
|
|
61
|
+
Регистрация MCP-сервера одной командой (формат выбирается по установленной версии OpenCode):
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
consilium mcp --install # ./opencode.json
|
|
65
|
+
consilium mcp --install --global # ~/.config/opencode/opencode.json
|
|
66
|
+
opencode mcp list # проверка
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Установка
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npm install -g lv24-opencode-consilium
|
|
73
|
+
# или без установки:
|
|
74
|
+
npx -y lv24-opencode-consilium --help
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Быстрый старт
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 1. Проверить окружение (CLI, конфиг, агенты, модели)
|
|
81
|
+
consilium doctor
|
|
82
|
+
|
|
83
|
+
# 2. Подобрать сильнейшие рабочие бесплатные модели и записать конфиг
|
|
84
|
+
consilium init --free
|
|
85
|
+
|
|
86
|
+
# 3. Запустить консилиум
|
|
87
|
+
consilium "Спроектируй rate limiter для публичного API"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Что делает `init --free`:
|
|
91
|
+
|
|
92
|
+
1. скачивает `https://models.dev/api.json` и `https://openrouter.ai/api/v1/models`;
|
|
93
|
+
2. оставляет только бесплатные (`cost = 0`), активные чат-модели с tools и контекстом >= 32K;
|
|
94
|
+
3. ранжирует и проверяет топ-кандидатов коротким запросом (если не указан `--no-verify`);
|
|
95
|
+
4. записывает победителей в `opencode.json` (агенты `arch`, `ux`, `ba`, `sec`, `consilium`) и `consilium.config.json`;
|
|
96
|
+
5. не перезаписывает ваши существующие модели агентов без `--force`.
|
|
97
|
+
|
|
98
|
+
Только посмотреть план, без записи:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
consilium init --free --dry-run
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Записать нативный V2-формат агентов (`agents` + `system`):
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
consilium init --free --native-v2
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Бесплатные модели
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
consilium models # топ-20 рейтинга
|
|
114
|
+
consilium models --available # только доступные вам провайдеры
|
|
115
|
+
consilium models --verify # проверить показанные модели реальным запросом
|
|
116
|
+
consilium models --refresh # игнорировать кэш 12 ч
|
|
117
|
+
consilium models --json # машинный формат
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Источники и резервы:
|
|
121
|
+
|
|
122
|
+
| Источник | Что даёт |
|
|
123
|
+
| --- | --- |
|
|
124
|
+
| `https://models.dev/api.json` | Полный каталог, цены/лимиты/возможности, связь с платными аналогами |
|
|
125
|
+
| `https://openrouter.ai/api/v1/models` | `:free`-варианты, контекст, поддержка `tools`, срок действия |
|
|
126
|
+
| Встроенный набор | Проверенные free-модели OpenCode, если каталог их ротировал |
|
|
127
|
+
|
|
128
|
+
Кэш: `%TEMP%/lv24-opencode-consilium/models-cache.json` (или `CONSILIUM_MODELS_CACHE`), TTL 12 ч.
|
|
129
|
+
|
|
130
|
+
Провайдер `opencode-go` больше не исключается целиком: его бесплатные модели (`*-free`, `iceman-contributor-free` и т. п.) участвуют в рейтинге. Платные модели этого провайдера, например `opencode-go/muse-spark-1.3-contributor`, в `--free` не попадают — их можно задать вручную в `experts[].model` или `chair.model`.
|
|
131
|
+
|
|
132
|
+
Текущий рекомендуемый состав (каталог на 2026-11-08):
|
|
133
|
+
|
|
134
|
+
| Роль | Модель | Почему |
|
|
135
|
+
| --- | --- | --- |
|
|
136
|
+
| arch | `opencode/flint-40b-free` | coding-агент, structured output, 262k |
|
|
137
|
+
| ux | `opencode/inkling-2-small-free` | 1M контекст, мультимодальность, быстрая |
|
|
138
|
+
| ba | `opencode/deepseek-v4.1-flash-free` | reasoning + agentic coding, 200k |
|
|
139
|
+
| sec | `opencode/iceman-free` | самая свежая reasoning-модель, 262k (stealth) |
|
|
140
|
+
| chair | `opencode/beam-free` | топ рейтинга, 1M, structured, coding/agentic |
|
|
141
|
+
|
|
142
|
+
Бесплатные модели ротируются: `consilium init --free` заново проверяет каталог и реальные ответы. Stealth/alpha-модели (`iceman`, `crouton`) могут исчезнуть — тогда `--refresh` подберёт замену.
|
|
143
|
+
|
|
144
|
+
Рейтинг (0–1.2) детерминирован: контекст 30%, tools 20%, structured output 10%, reasoning 10%, свежесть 10%, лимит вывода 10%, приор семейства 10%, «теневая цена» платного аналога 15%; штрафы за alpha/preview/stealth.
|
|
145
|
+
|
|
146
|
+
## MCP-сервер (любой харнесс)
|
|
147
|
+
|
|
148
|
+
Запуск по stdio:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
consilium mcp
|
|
152
|
+
# или напрямую:
|
|
153
|
+
consilium-mcp
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
OpenCode V1/V2 — установка в конфиг (формат выбирается автоматически):
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
consilium mcp --install # ./opencode.json → mcp.servers.consilium или mcp.consilium
|
|
160
|
+
consilium mcp --install --global # глобальный конфиг OpenCode
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Claude Desktop (`claude_desktop_config.json`):
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"mcpServers": {
|
|
168
|
+
"consilium": {
|
|
169
|
+
"command": "npx",
|
|
170
|
+
"args": ["-y", "lv24-opencode-consilium", "mcp"]
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Codex (`~/.codex/config.toml`):
|
|
177
|
+
|
|
178
|
+
```toml
|
|
179
|
+
[mcp_servers.consilium]
|
|
180
|
+
command = "npx"
|
|
181
|
+
args = ["-y", "lv24-opencode-consilium", "mcp"]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Подойдёт любой MCP-клиент с stdio JSON-RPC 2.0. Логи идут в **stderr**; stdout — только протокол.
|
|
185
|
+
|
|
186
|
+
### MCP-инструменты
|
|
187
|
+
|
|
188
|
+
| Инструмент | Аргументы | Результат |
|
|
189
|
+
| --- | --- | --- |
|
|
190
|
+
| `consilium_run` | `task` (обязателен), `experts`, `chair`, `timeout_ms`, `format`, `preset`, `output_file` | Синтез + мнения экспертов + JSON-метаданные (время, расход, модели) |
|
|
191
|
+
| `consilium_list_agents` | — | Эксперты, модели, председатель, пресеты, путь конфига |
|
|
192
|
+
| `consilium_free_models` | `limit`, `available_only`, `refresh` | Таблица рейтинга бесплатных моделей |
|
|
193
|
+
| `consilium_doctor` | — | Диагностика окружения и конфига |
|
|
194
|
+
| `consilium_init_free` | `apply`, `force`, `verify` | План (по умолчанию) или запись `opencode.json` + `consilium.config.json` |
|
|
195
|
+
|
|
196
|
+
`consilium_run` также принимает `consensus`, `smart_experts`, `max_cost`, `fallback_models`, `session`, `artifacts`. Ответ включает `cost` и сводку консенсуса в JSON-метаданных и строку `**Artifacts:**` с путём к сохранённому запуску.
|
|
197
|
+
|
|
198
|
+
`consilium_init_free` по умолчанию ничего не пишет; передайте `"apply": true`. `consilium_run` шлёт прогресс, если клиент передал `progressToken`.
|
|
199
|
+
|
|
200
|
+
## Справочник CLI
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
consilium [опции] <задача>
|
|
204
|
+
consilium <задача> - # задача из stdin
|
|
205
|
+
consilium init [--free] [--dry-run] [--force] [--no-verify] [--native-v2]
|
|
206
|
+
consilium models [--available] [--verify] [--limit N] [--refresh] [--json]
|
|
207
|
+
consilium doctor
|
|
208
|
+
consilium mcp [--install] [--global]
|
|
209
|
+
consilium watch [--debounce <мс>] [задача]
|
|
210
|
+
consilium hooks install|uninstall
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Флаги:
|
|
214
|
+
|
|
215
|
+
| Флаг | Значение |
|
|
216
|
+
| --- | --- |
|
|
217
|
+
| `-c, --config <файл>` | Файл конфигурации (иначе автоопределение) |
|
|
218
|
+
| `-e, --experts a,b` | Подмножество экспертов |
|
|
219
|
+
| `--chair <агент>` | Агент-председатель |
|
|
220
|
+
| `--preset <имя>` | `fast`, `deep`, `security`, `review`, `free` |
|
|
221
|
+
| `--expert-timeout`, `--chair-timeout` | Таймауты в мс (на попытку) |
|
|
222
|
+
| `-r, --retries <n>` | Число повторов (0 = одна попытка) |
|
|
223
|
+
| `-o, --output <файл>` | Сохранить результат (формат из `-f`) |
|
|
224
|
+
| `--no-save` | Не писать файл |
|
|
225
|
+
| `-f, --format <fmt>` | `text` (stdout), `markdown`, `json` (чистый JSON) |
|
|
226
|
+
| `--diff [--staged] [--base <ref>]` | Добавить текущий git diff к задаче |
|
|
227
|
+
| `--task-file <файл>` | Задача из файла (`-` = stdin) |
|
|
228
|
+
| `--verify` / `--no-verify` | Проверять/не проверять модели перед выбором (`models` / `init --free`) |
|
|
229
|
+
| `--consensus` / `--no-consensus` | Лексический анализ согласия экспертов (пересечение терминов, Jaccard); компактная сводка — в промпт председателя, полный отчёт — в результат |
|
|
230
|
+
| `--smart-experts` | Эвристический выбор 2–3 релевантных ролей по тексту задачи/диффа (остальные отбрасываются и логируются) |
|
|
231
|
+
| `--max-cost <usd>` | Лимит стоимости в USD; при превышении до старта председателя он не запускается (`COST_LIMIT`, частичный результат с консенсусом) |
|
|
232
|
+
| `--fallback-models a,b` | Запасные модели: при `RATE_LIMITED` / `MODEL_UNAVAILABLE` / `EMPTY_RESPONSE` тот же эксперт повторяется на следующей модели (цепочка до 2) |
|
|
233
|
+
| `--session <id>` | Базовый id сессии OpenCode; у каждого агента своя `ses_<base>-<агент>` (параллельные агенты не делят сессию) |
|
|
234
|
+
| `--artifacts` / `--no-artifacts` | Сохранить / не сохранять артефакты запуска (по умолчанию не сохраняются) |
|
|
235
|
+
| `--artifacts-dir <путь>` | Сохранить артефакты в указанный каталог (вместо `.consilium/runs/<id>/`) |
|
|
236
|
+
| `--replay <id>` | Повторить сохранённый запуск (восстанавливает агента/модель председателя, модели экспертов, флаги consensus/smartExperts/fallbackModels/session) |
|
|
237
|
+
| `--report <формат>` | Отчёт после запуска: `html`, `pr`, `markdown` (`markdown` = PR-вариант) |
|
|
238
|
+
| `--report-file <файл>` | Записать отчёт в файл (расширение `.html` → html, `.md` → pr; без файла — в stdout, кроме `-f json`) |
|
|
239
|
+
| `--variant <имя>` | Вариант модели для всех агентов (`provider/model` → `provider/model#variant`); некорректный — выход 2 |
|
|
240
|
+
| `--debounce <мс>` | Задержка watch-режима (по умолчанию 400) |
|
|
241
|
+
| `watch [--debounce <мс>] [задача]` | Следить за проектом и перезапускать консилиум при изменениях (до Ctrl+C) |
|
|
242
|
+
| `hooks install\|uninstall` | Установить/удалить git pre-commit hook (ревью staged перед коммитом) |
|
|
243
|
+
| `--diff-runs <a> <b>` | Напечатать markdown-сравнение двух сохранённых запусков |
|
|
244
|
+
| `--native-v2` | Писать нативный V2-формат (`agents`/`system`) вместо V1 |
|
|
245
|
+
| `--install`, `--global` | Зарегистрировать MCP-сервер в проекте или глобальном конфиге |
|
|
246
|
+
| `-s, --silent` | Только итоговый результат |
|
|
247
|
+
| `-V, --verbose` | Сырые события прогресса |
|
|
248
|
+
| `-v, --version`, `-h, --help` | Версия / справка |
|
|
249
|
+
|
|
250
|
+
Коды выхода: `0` успех, `1` запуск неуспешен, `2` ошибка использования.
|
|
251
|
+
|
|
252
|
+
Примеры:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
consilium -e arch,sec "Смоделируй угрозы для загрузки файлов"
|
|
256
|
+
consilium --preset deep "Составь план миграции"
|
|
257
|
+
git diff --staged | consilium - "Сделай ревью изменений"
|
|
258
|
+
consilium --diff "Сделай ревью текущих изменений"
|
|
259
|
+
consilium -f json "..." > council.json
|
|
260
|
+
consilium --smart-experts --consensus "Спроектируй схему БД для подписок"
|
|
261
|
+
consilium --artifacts --max-cost 0.5 "Составь план миграции"
|
|
262
|
+
consilium --replay 2026-11-08-abc123
|
|
263
|
+
consilium --diff-runs 2026-11-08-abc123 2026-11-08-def456
|
|
264
|
+
consilium --report pr --report-file review.md "Сделай ревью текущих изменений"
|
|
265
|
+
consilium --variant high "Спроектируй схему БД для подписок"
|
|
266
|
+
consilium watch --debounce 500 "Ревью текущих изменений"
|
|
267
|
+
consilium hooks install
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Анализ, артефакты и стоимость
|
|
271
|
+
|
|
272
|
+
`--consensus` считает лексическое согласие экспертов: пересечение значимых терминов (Jaccard, стоп-слова RU+EN) по каждой паре, средний score и уровень `agreement` (`high`/`medium`/`low`). Это не LLM-оценка, а детерминированный подсчёт по текстам ответов. Компактная сводка подставляется в промпт председателя, полный отчёт дописывается к результату и хранится в `metadata.consensus` (`agreement`, `averageSimilarity`, `pairs`, `sharedTerms`, `uniqueTerms`).
|
|
273
|
+
|
|
274
|
+
`--smart-experts` подбирает 2–3 релевантные роли эвристикой (лексиконы arch/ux/ba/sec, RU+EN) по задаче и диффу; отброшенные роли логируются в прогресс. Выбор хранится в `metadata.smartExperts`.
|
|
275
|
+
|
|
276
|
+
`--max-cost <usd>` следит за накопленной стоимостью экспертов и председателя. Если лимит исчерпан до старта председателя, он не запускается: возвращается частичный результат с мнениями экспертов и консенсусом, `errorCode: COST_LIMIT`. Детализация — в `metadata.cost` (`limit`/`spent`/`exceeded`/`byAgent`); при превышении добавляется `metadata.costExceeded`.
|
|
277
|
+
|
|
278
|
+
`--fallback-models a,b` задаёт запасные модели: при `RATE_LIMITED`, `MODEL_UNAVAILABLE` или `EMPTY_RESPONSE` тот же эксперт повторяется на следующей модели из цепочки (максимум 2 подмены на эксперта), usage суммируется. Список хранится в `metadata.fallbackModels`.
|
|
279
|
+
|
|
280
|
+
Артефакты — обычные файлы, без базы данных. `--artifacts` сохраняет запуск в `.consilium/runs/<id>/`: `run.json` (задача, ответы экспертов, модели, usage, консенсус), `report.md` (читаемый отчёт) и `experts/<агент>.md` (ответ каждого эксперта). `--artifacts-dir <путь>` меняет каталог, `--no-artifacts` отключает сохранение. Id и каталог видны в `metadata.artifacts: { id, dir }`. `consilium --replay <id>` повторяет сохранённый запуск (восстанавливает агента и модель председателя, модели экспертов, флаги consensus/smartExperts/fallbackModels/session из артефакта), `consilium --diff-runs <a> <b>` печатает markdown-сравнение двух запусков.
|
|
281
|
+
|
|
282
|
+
`--session <id>` задаёт базовый id сессии OpenCode: председатель продолжает её как есть, а каждый эксперт получает свою `ses_<base>-<агент>` (префикс `ses_` требует OpenCode). Параллельные агенты никогда не делят одну сессию — иначе часть промптов теряется (см. `docs/session-and-plugin.md`). Неизвестные агенты из `opencode.json` определяются автоматически и запускаются на default-агенте с отдельной сессией `ses_<base>-default-<агент>`, не засоряя чужую сессию. Флаг не скрывает сессии из списков: архивные сессии всё равно видны в `opencode session list`.
|
|
283
|
+
|
|
284
|
+
## Отчёты, watch и git-hooks
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# HTML-отчёт в файл / PR-markdown в stdout
|
|
288
|
+
consilium --report html --report-file report.html "Сделай ревью текущих изменений"
|
|
289
|
+
consilium --report pr "Сделай ревью текущих изменений"
|
|
290
|
+
|
|
291
|
+
# Расширение --report-file выбирает формат само: .html → html, .md → pr
|
|
292
|
+
# Без --report-file отчёт печатается в stdout, кроме -f json (тогда нужен --report-file)
|
|
293
|
+
consilium --report-file notes.md "Спроектируй схему БД"
|
|
294
|
+
|
|
295
|
+
# Перезапуск при изменениях файлов (игнорирует .git/node_modules/dist/.consilium/coverage/*.tmp/*.log,
|
|
296
|
+
# пауза 400 мс между событием и запуском, к задаче прикладывается текущий git diff)
|
|
297
|
+
consilium watch "Ревью текущих изменений"
|
|
298
|
+
consilium watch --debounce 800
|
|
299
|
+
|
|
300
|
+
# Pre-commit hook: перед каждым git commit запускает ревью staged-изменений и блокирует коммит при ошибке
|
|
301
|
+
consilium hooks install
|
|
302
|
+
consilium hooks uninstall # убрать управляемый блок, чужое содержимое hook'а не трогается
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
PR-отчёт — это markdown для комментария GitHub с маркером `<!-- consilium:report -->` и сворачиваемыми `<details>`-блоками мнений экспертов; HTML-отчёт — самодостаточный файл с экранированным текстом. Hook пишет только свой блок (`# >>> consilium >>>` … `# <<< consilium <<<`) в каталог git-хуков (`git rev-parse --git-path hooks`: `.git/hooks`, `core.hooksPath`, worktrees) и сохраняет остальное содержимое.
|
|
306
|
+
|
|
307
|
+
## Плагин OpenCode V2
|
|
308
|
+
|
|
309
|
+
Нативный плагин запускает консилиум **внутри TUI OpenCode V2** без MCP и внешнего CLI — через инструмент `consilium.run`. В OpenCode V1 не работает (API плагинов V1 несовместим).
|
|
310
|
+
|
|
311
|
+
Регистрация в `opencode.json` (V2):
|
|
312
|
+
|
|
313
|
+
```json
|
|
314
|
+
{
|
|
315
|
+
"plugins": [{ "package": "lv24-opencode-consilium" }]
|
|
316
|
+
}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Пакет публикует server part как `./server` (`dist/plugin.js`); рантайм-зависимостей у плагина нет (`@opencode/plugin` нужен только для типов при сборке). Инструмент принимает `task`, `experts`, `chair`, `timeout_ms`, `consensus`, `smart_experts`, `max_cost`, `fallback_models`, `session`, `artifacts`, `preset`.
|
|
320
|
+
|
|
321
|
+
Когда что использовать:
|
|
322
|
+
|
|
323
|
+
| Способ | Когда |
|
|
324
|
+
| --- | --- |
|
|
325
|
+
| Плагин (`consilium.run`) | Работа внутри TUI OpenCode V2, совет нужен прямо в диалоге |
|
|
326
|
+
| MCP-сервер | Внешние харнессы (Claude Desktop, Codex, Cursor, VS Code, свои агенты) |
|
|
327
|
+
| CLI | Терминал, скрипты, CI, hooks, watch |
|
|
328
|
+
|
|
329
|
+
## Пресеты
|
|
330
|
+
|
|
331
|
+
| Пресет | Эксперты | Поведение |
|
|
332
|
+
| --- | --- | --- |
|
|
333
|
+
| `fast` | arch, sec | таймаут 3 мин, без повторов |
|
|
334
|
+
| `deep` | все четыре | удвоенные таймауты, повторы |
|
|
335
|
+
| `security` | sec, arch, ba | фокус на безопасность |
|
|
336
|
+
| `review` | arch, sec, ux | ревью кода |
|
|
337
|
+
| `free` | все четыре | под бесплатную конфигурацию |
|
|
338
|
+
|
|
339
|
+
## Конфигурация
|
|
340
|
+
|
|
341
|
+
Порядок поиска конфигурации Consilium (cwd): `consilium.config.json`, `consilium.json`, `.consiliumrc`, `.consiliumrc.json`. Явный путь — `-c`. Конфигурация OpenCode ищется в `opencode.json`/`opencode.jsonc`, `.opencode/opencode.json(c)`, затем в родительских каталогах и в `~/.config/opencode`; комментарии JSONC допустимы.
|
|
342
|
+
|
|
343
|
+
Минимальный пример:
|
|
344
|
+
|
|
345
|
+
```json
|
|
346
|
+
{
|
|
347
|
+
"experts": [
|
|
348
|
+
{ "name": "arch", "model": "opencode/flint-40b-free" },
|
|
349
|
+
{ "name": "sec", "model": "opencode/iceman-free" }
|
|
350
|
+
],
|
|
351
|
+
"chair": {
|
|
352
|
+
"agent": "consilium",
|
|
353
|
+
"model": "opencode/beam-free"
|
|
354
|
+
},
|
|
355
|
+
"retry": { "maxConcurrency": 3 }
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Ключевые опции:
|
|
360
|
+
|
|
361
|
+
| Ключ | По умолчанию | Примечание |
|
|
362
|
+
| --- | --- | --- |
|
|
363
|
+
| `experts[].model` | — | `provider/model`; передаётся как `--model`, переопределяет модель агента |
|
|
364
|
+
| `chair.model` | — | Переопределение модели председателя |
|
|
365
|
+
| `timeouts.expert` / `.chair` | 300000 / 600000 | На попытку, мс |
|
|
366
|
+
| `retry.expertRetries` / `.chairRetries` | 1 | `0` = одна попытка |
|
|
367
|
+
| `retry.jitter` | `false` | Случайный разброс задержки повтора (50–100%), чтобы эксперты не били в лимит одновременно |
|
|
368
|
+
| `retry.maxConcurrency` | 3 | 1–8 параллельных агентов |
|
|
369
|
+
| `output.file` | `false` | `false` — не сохранять; строка — включить |
|
|
370
|
+
| `standalone` | `true` | Приватный сервер `--standalone`; не конфликтует с запущенным OpenCode |
|
|
371
|
+
| `autoApprove` | `false` | `--auto`; включайте только если доверяете агентам/инструментам |
|
|
372
|
+
| `autoDiscoverAgents` | `true` | Брать агентов из `opencode.json` |
|
|
373
|
+
| `artifacts` | `false` | `true` — сохранять в `.consilium/runs/<id>/`; строка — свой каталог |
|
|
374
|
+
| `consensus` | `false` | Лексический анализ согласия экспертов |
|
|
375
|
+
| `smartExperts` | `false` | Эвристический выбор 2–3 ролей под задачу |
|
|
376
|
+
| `maxCost` | — | Лимит стоимости в USD (число >= 0); без значения — без лимита |
|
|
377
|
+
| `fallbackModels` | — | Массив строк `provider/model` для повтора при лимитах/ошибках модели |
|
|
378
|
+
| `session` | — | Базовый id сессии OpenCode (непустая строка) |
|
|
379
|
+
| `report` | — | Формат отчёта: `html`, `pr`, `markdown` |
|
|
380
|
+
| `reportFile` | — | Путь к файлу отчёта (расширение `.html`/`.md` выбирает формат) |
|
|
381
|
+
| `variant` | - | Вариант модели для моделей без `#variant` (явный вариант приоритетнее) |
|
|
382
|
+
| `debounceMs` | 400 | Задержка watch-режима, мс (целое >= 0) |
|
|
383
|
+
| `opencodePath` | `opencode` | Свой путь к CLI |
|
|
384
|
+
| `cwd` | текущая | Рабочая директория OpenCode |
|
|
385
|
+
|
|
386
|
+
Полная схема: [`schema/config.schema.json`](../schema/config.schema.json); пример: [`consilium.config.example.json`](../consilium.config.example.json).
|
|
387
|
+
|
|
388
|
+
## Библиотека
|
|
389
|
+
|
|
390
|
+
```ts
|
|
391
|
+
import { Consilium, runConsilium, fetchFreeModels, selectCouncilModels } from 'lv24-opencode-consilium';
|
|
392
|
+
|
|
393
|
+
const council = new Consilium();
|
|
394
|
+
council.onProgress(event => console.error(event.type, event.agent ?? ''));
|
|
395
|
+
|
|
396
|
+
const result = await council.run('Спроектируй стратегию инвалидации кэша');
|
|
397
|
+
console.log(result.text); // синтез председателя
|
|
398
|
+
console.log(result.usage?.cost); // суммарная стоимость (0 для бесплатных)
|
|
399
|
+
|
|
400
|
+
const oneShot = await runConsilium('...'); // возвращает ConsiliumResult
|
|
401
|
+
console.log(oneShot.text);
|
|
402
|
+
|
|
403
|
+
const { models } = await fetchFreeModels({ includeUnavailable: true });
|
|
404
|
+
const top = selectCouncilModels(models, 5);
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Экземпляр `Consilium` переиспользуемый: `run()` можно вызывать снова после completed/failed/cancelled. `cancel()` останавливает все дочерние процессы текущего запуска.
|
|
408
|
+
|
|
409
|
+
## Как это работает
|
|
410
|
+
|
|
411
|
+
Для каждого эксперта и председателя запускается:
|
|
412
|
+
|
|
413
|
+
```
|
|
414
|
+
opencode run --standalone --format json [--auto] [--agent=NAME] [--model=provider/model]
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Промпт пишется в **stdin** (UTF-8), поэтому произвольный текст задачи безопасен и не упирается в лимиты командной строки. NDJSON-события декодируются потоково (`text`, `step_finish` с usage/cost, `error` с `type`/`status`/`retryAfterMs`). Модель всегда передаётся через `--model`: так поведение одинаково в V1 и V2, где `--agent` не применяет модель из конфигурации. Коды выхода, хвост stderr и структурированные ошибки отдаются типизированными `errorCode` (`RATE_LIMITED`, `MODEL_UNAVAILABLE`, `AGENT_NOT_FOUND`, ...). Если агента нет в конфиге OpenCode, вызов повторяется один раз с той же моделью и default-агентом — консилиум работает даже без persona-агентов.
|
|
418
|
+
|
|
419
|
+
## Безопасность
|
|
420
|
+
|
|
421
|
+
- Текст задачи не попадает в shell-команду; только stdin.
|
|
422
|
+
- Имена агентов и id моделей валидируются.
|
|
423
|
+
- `--auto` (авто-подтверждение разрешений) **выключен** по умолчанию.
|
|
424
|
+
- `--standalone` изолирует дочерний сервер.
|
|
425
|
+
- Ключи API не печатаются и не пишутся; `doctor` проверяет только наличие переменных окружения, авторизацией занимается OpenCode.
|
|
426
|
+
- `doctor` предупреждает об отсутствующих ключах и рискованном конфиге.
|
|
427
|
+
|
|
428
|
+
## Диагностика
|
|
429
|
+
|
|
430
|
+
| Симптом | Решение |
|
|
431
|
+
| --- | --- |
|
|
432
|
+
| `OpenCode CLI не найден` | `npm install -g opencode-ai` или `opencodePath` |
|
|
433
|
+
| `Model unavailable` | Модель ротирована/заблокирована; `consilium models --verify --refresh` |
|
|
434
|
+
| `Agent not found` | Нет persona-агента; будет default-агент + ваша модель. Создайте агентов через `consilium init --free` |
|
|
435
|
+
| Таймауты | Бесплатные модели бывают медленными; увеличьте `--expert-timeout` или `--preset fast` |
|
|
436
|
+
| `RATE_LIMITED` / 429 | Лимит бесплатных моделей исчерпан; в ошибке указано время повтора. Смените модель или провайдера |
|
|
437
|
+
| `Model unavailable` | Модель ротирована/заблокирована; `consilium models --verify --refresh` |
|
|
438
|
+
| `Agent not found` | Нет persona-агента; будет default-агент + ваша модель. Создайте агентов через `consilium init --free` |
|
|
439
|
+
| Модель агента не применяется в V2 | `consilium` уже передаёт `--model`; проверьте `consilium doctor` (проверка `opencode-v2-compat`) |
|
|
440
|
+
| `COST_LIMIT` (лимит `--max-cost` исчерпан) | Председатель не запущен намеренно; мнения экспертов и консенсус — в частичном результате, расходы — в `metadata.cost.byAgent`. Поднимите лимит или уберите флаг |
|
|
441
|
+
| Фолбэк не спасает от 429 | Запасные модели делят те же бесплатные квоты; смените провайдера или подождите время повтора из ошибки |
|
|
442
|
+
| Сессии плодятся в `session list` | Так задумано: у каждого агента своя сессия, `--session` их не скрывает (`--archived` тоже не скрывает). Чистка — `opencode session delete <id>` |
|
|
443
|
+
| `replay` не находит id | Id ищется в `.consilium/runs/`; проверьте каталог или передайте `--artifacts-dir` того запуска |
|
|
444
|
+
| MCP-сервер не виден в V2 | Плоский `mcp.<name>` игнорируется; `consilium mcp --install --force` |
|
|
445
|
+
| `Managed service port ... in use` | Оставьте `standalone: true` (по умолчанию) |
|
|
446
|
+
| Пустой результат | `consilium doctor`, затем запуск с `-V` |
|
|
447
|
+
|
|
448
|
+
## Разработка
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
npm install
|
|
452
|
+
npm run build # tsc
|
|
453
|
+
npm test # build + node:test (224 теста)
|
|
454
|
+
npm run typecheck # tsc --noEmit
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
## Изменения 1.2.0
|
|
458
|
+
|
|
459
|
+
- Совместимость с OpenCode V2 при сохранении поддержки V1: чтение `agent` и `agents`, `.opencode/opencode.json(c)`, родительских каталогов и слияние слоёв в порядке OpenCode.
|
|
460
|
+
- Модель агента передаётся через `--model` — V2 больше не теряет модель при `--agent`.
|
|
461
|
+
- `consilium mcp --install [--global]` пишет `mcp.servers` для V2 и `mcp.<name>` для V1, сохраняя `environment`/`cwd`/`timeout` существующей записи.
|
|
462
|
+
- `init --free --native-v2` пишет нативный V2-формат; дубли `agent`/`agents` обновляются синхронно. Агенты с V1-ограничениями (`tools`, `permission`, `temperature`) не мигрируют автоматически, чтобы не потерять ограничения.
|
|
463
|
+
- `opencodeConfigPath` больше не задаётся по умолчанию: автоопределение работает сразу, а несуществующий путь даёт предупреждение и откат к поиску.
|
|
464
|
+
- `RATE_LIMITED` и `retryAfterMs` из событий V2: короткий лимит пережидается, длинный сразу возвращает ошибку с временем повтора.
|
|
465
|
+
- Джиттер retry (`retry.jitter`), устойчивый декодер (`properties`, delta-текст), диагностика `opencode-v2-compat`.
|
|
466
|
+
- 81 тест, включая новый `test/compat.test.mjs` (в 1.3.0 — уже 149).
|
|
467
|
+
|
|
468
|
+
## Что дальше (идеи фич)
|
|
469
|
+
|
|
470
|
+
Оставшиеся направления (в 1.3.0 — артефакты, консенсус, smart-experts, фолбэк моделей, `--max-cost` и `--session`; в 1.4.0 — отчёты, варианты моделей, `watch`, git-hooks и нативный V2-плагин):
|
|
471
|
+
|
|
472
|
+
| Идея | Зачем | Сложность |
|
|
473
|
+
| --- | --- | --- |
|
|
474
|
+
| Slash-команда `consilium` для TUI | Вызов совета одной командой внутри OpenCode | S |
|
|
475
|
+
| Экспорт отчёта в тикет-системы | Готовый артефакт для Jira/Linear | S |
|
|
476
|
+
|
|
477
|
+
## Изменения 1.4.1
|
|
478
|
+
|
|
479
|
+
- npm-пакет переименован в **`lv24-opencode-consilium`** (npm не умеет переименовывать на месте; старый `opencode-consilium@1.0.2` остаётся в реестре и помечен deprecated).
|
|
480
|
+
- На странице npm теперь показывается этот `README.md`; русская и китайская версии перенесены в `docs/README.ru.md` и `docs/README.zh.md`, чтобы не конкурировать за единственный readme-слот npm.
|
|
481
|
+
- Функциональных изменений относительно 1.4.0 нет.
|
|
482
|
+
|
|
483
|
+
## Изменения 1.4.0
|
|
484
|
+
|
|
485
|
+
- Отчёты: `--report html|pr|markdown`, `--report-file <путь>` (`.html` → html, `.md` → pr; без файла — в stdout, кроме `-f json`); `renderHtmlReport` (самодостаточный HTML с экранированием), `renderPrMarkdown` (комментарий GitHub с маркером `<!-- consilium:report -->` и `<details>`-блоками), `renderReport`.
|
|
486
|
+
- `--variant high`: добавляет `#high` к моделям экспертов и председателя; некорректный вариант — выход 2. Ключ конфига `variant`.
|
|
487
|
+
- `consilium watch [--debounce <мс>] [задача]`: следит за проектом (игнорирует `.git`/`node_modules`/`dist`/`.consilium`/`coverage`/`*.tmp`/`*.log`), ждёт паузу 400 мс, прикладывает `git diff`, перезапускает до Ctrl+C.
|
|
488
|
+
- `consilium hooks install`: пишет управляемый pre-commit блок (`# >>> consilium >>>` … `# <<< consilium <<<`), запускающий `npx -y lv24-opencode-consilium --staged -s "Ревью staged-изменений" || exit 1` при каждом `git commit`; чужое содержимое hook'а сохраняется; `uninstall` убирает только свой блок.
|
|
489
|
+
- Нативный плагин OpenCode V2: server part `./server` → `dist/plugin.js`, регистрация `{"plugins": [{"package": "lv24-opencode-consilium"}]}`, инструмент `consilium.run` (task, experts, chair, timeout_ms, consensus, smart_experts, max_cost, fallback_models, session, artifacts, preset). Рантайм-зависимостей нет: `@opencode/plugin` нужен только для типов. Только V2, в V1 не работает.
|
|
490
|
+
- `--replay <id>` восстанавливает агента/модель председателя, модели экспертов и флаги consensus/smartExperts/fallbackModels/session артефакта (раньше — только модели).
|
|
491
|
+
- Новые ключи конфига: `report`, `reportFile`, `variant`, `debounceMs` (схема обновлена).
|
|
492
|
+
- 224 теста; совместимость с OpenCode V1/V2 без изменений.
|
|
493
|
+
|
|
494
|
+
## Изменения 1.3.0
|
|
495
|
+
|
|
496
|
+
- Артефакты запусков: `--artifacts` / `--artifacts-dir <путь>` / `--no-artifacts` сохраняют запуск в `.consilium/runs/<id>/` (`run.json`, `report.md`, `experts/<агент>.md`); `consilium --replay <id>` повторяет сохранённый запуск, `consilium --diff-runs <a> <b>` печатает markdown-сравнение.
|
|
497
|
+
- `--consensus` / `--no-consensus`: лексический анализ согласия (Jaccard, RU+EN стоп-слова); сводка — в промпт председателя, полный отчёт — в результат и `metadata.consensus`.
|
|
498
|
+
- `--smart-experts`: эвристический выбор 2–3 ролей под задачу/дифф (максимум 3, отброшенные логируются); результат — в `metadata.smartExperts`.
|
|
499
|
+
- `--max-cost <usd>`: трекер стоимости; при превышении до старта председатель не запускается (`errorCode: COST_LIMIT`, частичный результат с консенсусом); детали — в `metadata.cost`.
|
|
500
|
+
- `--fallback-models a,b`: повтор того же эксперта на запасной модели при `RATE_LIMITED` / `MODEL_UNAVAILABLE` / `EMPTY_RESPONSE` (цепочка до 2, usage суммируется).
|
|
501
|
+
- `--session <id>`: председатель продолжает базовую сессию, у каждого эксперта своя `ses_<base>-<агент>`; неизвестные агенты запускаются на default-агенте с `ses_<base>-default-<агент>`.
|
|
502
|
+
- MCP `consilium_run`: новые аргументы `consensus`, `smart_experts`, `max_cost`, `fallback_models`, `session`, `artifacts`; в ответе — `cost`, сводка консенсуса и строка `**Artifacts:**`.
|
|
503
|
+
- Новые ключи конфига: `artifacts`, `consensus`, `smartExperts`, `maxCost`, `fallbackModels`, `session` (схема обновлена).
|
|
504
|
+
- 149 тестов; совместимость с OpenCode V1/V2 без изменений.
|
|
505
|
+
|
|
506
|
+
## Лицензия
|
|
507
|
+
|
|
508
|
+
MIT
|