@oeronteros-1/opencode-orchestra 0.5.3 → 1.0.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.
Files changed (72) hide show
  1. package/CHANGELOG.md +63 -9
  2. package/GITHUB_RELEASE_1.0.0.md +84 -0
  3. package/README.md +95 -7
  4. package/dashboard-dist/assets/index-CN3CG5oG.js +124 -0
  5. package/dashboard-dist/assets/{index-89Gs8jun.css → index-j0b0ZK2D.css} +1 -1
  6. package/dashboard-dist/index.html +2 -2
  7. package/dist/agents/workers.d.ts +14 -1
  8. package/dist/agents/workers.js +10 -0
  9. package/dist/agents/workers.js.map +1 -1
  10. package/dist/cli.js +63 -3
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config/schema.d.ts +23 -0
  13. package/dist/config/schema.js +18 -1
  14. package/dist/config/schema.js.map +1 -1
  15. package/dist/dashboard/server.d.ts +11 -0
  16. package/dist/dashboard/server.js +152 -33
  17. package/dist/dashboard/server.js.map +1 -1
  18. package/dist/diagnostics/completion.d.ts +5 -0
  19. package/dist/diagnostics/completion.js +145 -0
  20. package/dist/diagnostics/completion.js.map +1 -0
  21. package/dist/diagnostics/doctor.d.ts +58 -0
  22. package/dist/diagnostics/doctor.js +354 -0
  23. package/dist/diagnostics/doctor.js.map +1 -0
  24. package/dist/diagnostics/update.d.ts +17 -0
  25. package/dist/diagnostics/update.js +89 -0
  26. package/dist/diagnostics/update.js.map +1 -0
  27. package/dist/index.js +141 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/plugin-status.d.ts +34 -0
  30. package/dist/plugin-status.js +90 -0
  31. package/dist/plugin-status.js.map +1 -0
  32. package/dist/routing/budget-guard.d.ts +36 -0
  33. package/dist/routing/budget-guard.js +52 -0
  34. package/dist/routing/budget-guard.js.map +1 -0
  35. package/dist/routing/classifier-cache.d.ts +25 -0
  36. package/dist/routing/classifier-cache.js +46 -0
  37. package/dist/routing/classifier-cache.js.map +1 -0
  38. package/dist/routing/fallback.d.ts +41 -0
  39. package/dist/routing/fallback.js +81 -0
  40. package/dist/routing/fallback.js.map +1 -0
  41. package/dist/routing/model-discovery.js +3 -1
  42. package/dist/routing/model-discovery.js.map +1 -1
  43. package/dist/routing/model-resolver.d.ts +11 -0
  44. package/dist/routing/model-resolver.js +27 -7
  45. package/dist/routing/model-resolver.js.map +1 -1
  46. package/dist/routing/observer.d.ts +22 -0
  47. package/dist/routing/observer.js +64 -0
  48. package/dist/routing/observer.js.map +1 -0
  49. package/dist/routing/planner.d.ts +24 -0
  50. package/dist/routing/planner.js +106 -0
  51. package/dist/routing/planner.js.map +1 -0
  52. package/dist/routing/pricing/estimate.d.ts +60 -0
  53. package/dist/routing/pricing/estimate.js +81 -0
  54. package/dist/routing/pricing/estimate.js.map +1 -0
  55. package/dist/routing/pricing/prices.d.ts +19 -0
  56. package/dist/routing/pricing/prices.js +74 -0
  57. package/dist/routing/pricing/prices.js.map +1 -0
  58. package/dist/routing/pricing/refresh.d.ts +30 -0
  59. package/dist/routing/pricing/refresh.js +105 -0
  60. package/dist/routing/pricing/refresh.js.map +1 -0
  61. package/dist/telemetry/analytics.d.ts +45 -0
  62. package/dist/telemetry/analytics.js +78 -0
  63. package/dist/telemetry/analytics.js.map +1 -0
  64. package/dist/telemetry/ledger.d.ts +13 -1
  65. package/dist/telemetry/ledger.js +29 -1
  66. package/dist/telemetry/ledger.js.map +1 -1
  67. package/dist/tools.d.ts +6 -1
  68. package/dist/tools.js +77 -7
  69. package/dist/tools.js.map +1 -1
  70. package/package.json +17 -4
  71. package/schema/opencode-orchestra.schema.json +15 -2
  72. package/dashboard-dist/assets/index-Bhe8OPZD.js +0 -124
package/CHANGELOG.md CHANGED
@@ -1,14 +1,68 @@
1
1
  # Changelog
2
2
 
3
- ## 0.5.3 2026-08-19
3
+ All notable changes to OpenCode Orchestra are documented in this file.
4
4
 
5
- - Export both `server` and `default` from the plugin entry so OpenCode 1.18.x (which resolves `PluginModule.server`) and older builds both load it.
6
- - Write `@oeronteros-1/opencode-orchestra@latest` into `opencode.json` instead of a bare name so users track new releases.
7
- - Upgrade existing bare/pinned plugin entries to `@latest` on install instead of leaving them stale.
8
- - Add regression coverage for the `@latest` entry upgrade logic.
5
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project uses [Semantic Versioning](https://semver.org/).
9
6
 
10
- ## 0.5.1 — 2026-08-17
7
+ ## [1.0.0] — 2026-08-17
11
8
 
12
- - Record all OpenCode assistant responses in local telemetry, including the primary OpenCode mode.
13
- - Preserve Orchestra-specific counters for free worker calls and judge escalations.
14
- - Add regression coverage for telemetry updates outside `orch-*` modes.
9
+ ### Added
10
+
11
+ - Production-ready orchestration with a public `orch-lead`, specialist workers, `orch-judge`, dependency-aware task plans, profile classification, and four budget modes: `eco`, `balanced`, `quality`, and `ebobo`.
12
+ - Automatic discovery and capability scoring for models exposed by connected OpenCode providers, while preserving explicit per-agent and manual-pool overrides.
13
+ - Model pricing support with an offline snapshot, optional self-hosted refresh endpoint, explicit per-model price overrides, pre-run cost estimates, and configurable spend warnings.
14
+ - Ordered cheaper fallback metadata for execution layers that support retrying provider calls.
15
+ - Local telemetry dashboard with token, cost, model, agent, activity, monthly projection, anomaly, and MCP status views.
16
+ - Authenticated CSV and JSON exports for activity, models, agents, daily usage, and summary reports.
17
+ - Optional prompt/reply telemetry through `telemetry.storeTexts`; message text remains disabled by default.
18
+ - `opencode-orchestra doctor` for configuration, plugin, MCP, and local toolchain diagnostics, including JSON output.
19
+ - `opencode-orchestra update` for checking the latest published npm version.
20
+ - Shell completion generators for zsh, bash, and PowerShell.
21
+ - Plugin runtime status through `/plugin-status` and the `orchestra_plugin_status` tool.
22
+ - Cross-platform, idempotent installer for the Orchestra plugin, Context7, Codebase Memory, and MemoryGraph.
23
+ - JSON Schema for `orchestra.jsonc`, including pricing and opt-in text telemetry settings.
24
+ - Expanded regression and integration coverage across routing, pricing, telemetry, dashboard, diagnostics, installer, and plugin initialization.
25
+
26
+ ### Changed
27
+
28
+ - Promoted the package to the stable `1.0.0` API and configuration contract.
29
+ - Hardened dashboard configuration writes with full-schema validation, empty agent-model normalization, JSONC comment preservation, backups, and atomic replacement.
30
+ - Improved paid-model estimation to honor explicit prices and each worker's actual capability.
31
+ - Bounded streaming text buffers and added plugin-disposal cleanup for timers and in-memory telemetry state.
32
+ - Clarified that fallback lists are resolver metadata; OpenCode provider calls are not intercepted or retried automatically by the plugin.
33
+ - Added npm repository, homepage, issue tracker, release keywords, and a pre-publish validation gate.
34
+
35
+ ### Fixed
36
+
37
+ - Fixed the published JSON Schema so `pricing` is accepted as a configuration section.
38
+ - Fixed prompt telemetry correlation between user and assistant messages.
39
+ - Fixed stale pricing snapshots, concurrent refresh races, and unsafe passthrough of remote price fields.
40
+ - Fixed dashboard saves when optional per-agent model fields are left blank.
41
+ - Fixed invalid export parameters to return HTTP 400 instead of HTTP 500.
42
+ - Fixed monthly pace analytics so current-month projections use a prior-period baseline.
43
+
44
+ ### Compatibility and upgrade notes
45
+
46
+ - Requires Node.js 22 or newer for Node-based development and runtime tooling.
47
+ - The recommended installer requires Bun 1.2 or newer.
48
+ - Existing bare or pinned plugin entries are upgraded to `@oeronteros-1/opencode-orchestra@latest` by the installer while preserving plugin options.
49
+ - Existing OpenCode and MCP configuration is preserved; use `--force` only when you explicitly want Orchestra's MCP defaults to replace matching entries.
50
+ - Text telemetry remains opt-in. Existing installations continue to record usage metadata without prompt or reply contents.
51
+
52
+ ## [0.5.3] — 2026-08-17
53
+
54
+ ### Fixed
55
+
56
+ - Exported both `server` and `default` from the plugin entry for OpenCode 1.18.x and older plugin loaders.
57
+ - Wrote `@oeronteros-1/opencode-orchestra@latest` into OpenCode configuration and upgraded existing bare or pinned entries.
58
+
59
+ ## [0.5.1] — 2026-08-17
60
+
61
+ ### Changed
62
+
63
+ - Recorded all OpenCode assistant responses in local telemetry, including primary OpenCode mode.
64
+ - Preserved Orchestra-specific counters for free worker calls and judge escalations.
65
+
66
+ [1.0.0]: https://github.com/Oeronteros/opencode-orchestra/compare/v0.5.3...v1.0.0
67
+ [0.5.3]: https://github.com/Oeronteros/opencode-orchestra/compare/v0.5.1...v0.5.3
68
+ [0.5.1]: https://github.com/Oeronteros/opencode-orchestra/releases/tag/v0.5.1
@@ -0,0 +1,84 @@
1
+ # OpenCode Orchestra 1.0.0
2
+
3
+ OpenCode Orchestra 1.0.0 is the first stable release of the model-routing and specialist-agent orchestration plugin for OpenCode. It combines automatic model discovery, profile-aware worker planning, budget controls, local diagnostics, usage telemetry, and a token-protected dashboard in one installable package.
4
+
5
+ ## Highlights
6
+
7
+ ### Stable orchestration contract
8
+
9
+ - One public `orch-lead`, a focused set of hidden specialist workers, and `orch-judge` for arbitration.
10
+ - Dependency-aware task plans and profile classification for architecture, debugging, UI, research, review, security, performance, migration, and operations work.
11
+ - Four distinct budget modes: `eco`, `balanced`, `quality`, and the maximum-throughput `ebobo` mode.
12
+ - Automatic discovery of models from connected OpenCode providers, with manual pools and per-agent overrides always taking precedence.
13
+
14
+ ### Cost-aware routing
15
+
16
+ - Built-in offline model-price snapshot.
17
+ - Optional self-hosted price endpoint and periodic refresh.
18
+ - Explicit `priceInput` and `priceOutput` overrides for manual model entries.
19
+ - Informational pre-run estimates and configurable spend warnings in `orchestra_route`.
20
+ - Ordered cheaper fallback candidates exposed as resolver metadata for execution layers that implement retries.
21
+
22
+ > Orchestra does not intercept OpenCode provider requests and does not automatically retry failed provider calls.
23
+
24
+ ### Local dashboard and telemetry
25
+
26
+ - Token, cost, model, agent, activity, projection, anomaly, and MCP status views.
27
+ - Authenticated CSV/JSON report export.
28
+ - Atomic, schema-validated configuration updates with backups and JSONC comment preservation.
29
+ - Prompt and reply storage is disabled by default and can only be enabled explicitly with `telemetry.storeTexts: true`.
30
+
31
+ ### Operations and diagnostics
32
+
33
+ - `doctor` checks OpenCode configuration, Orchestra configuration, plugin registration, MCP entries, and local dependency paths.
34
+ - `update` checks npm for a newer release.
35
+ - `completion zsh|bash|pwsh` generates shell completions.
36
+ - `/plugin-status` reports the loaded plugin version, budget, model strategy, and companion MCP status.
37
+
38
+ ## Install or upgrade
39
+
40
+ ```bash
41
+ bunx @oeronteros-1/opencode-orchestra@latest install
42
+ ```
43
+
44
+ The installer is idempotent, preserves existing plugin/MCP configuration, creates backups before changes, and updates bare or pinned Orchestra plugin entries to `@latest`.
45
+
46
+ To inspect proposed configuration changes without writing files:
47
+
48
+ ```bash
49
+ bunx @oeronteros-1/opencode-orchestra@latest install --dry-run
50
+ ```
51
+
52
+ After installation, restart OpenCode and run:
53
+
54
+ ```text
55
+ /plugin-status
56
+ /orchestra-status
57
+ ```
58
+
59
+ ## Requirements
60
+
61
+ - OpenCode with plugin support compatible with `@opencode-ai/plugin >= 1.18.18`.
62
+ - Bun 1.2+ for the recommended installer command.
63
+ - Node.js 22+ for Node-based development and runtime tooling.
64
+
65
+ ## Upgrade notes
66
+
67
+ - No configuration migration is required from 0.5.x.
68
+ - Existing OpenCode configuration, plugin options, and MCP entries are preserved.
69
+ - Use `--force` only to replace matching MCP entries with Orchestra defaults.
70
+ - Text telemetry remains opt-in and is disabled by default.
71
+ - The `pricing` section is now correctly represented in the published JSON Schema.
72
+
73
+ ## Validation
74
+
75
+ This release was validated with:
76
+
77
+ - TypeScript checks for plugin and dashboard.
78
+ - 67 automated tests covering routing, pricing, telemetry, diagnostics, dashboard, installer, and integration paths.
79
+ - Production builds for the plugin and dashboard.
80
+ - npm package dry-run inspection.
81
+
82
+ ## Full changelog
83
+
84
+ See [CHANGELOG.md](https://github.com/Oeronteros/opencode-orchestra/blob/v1.0.0/CHANGELOG.md).
package/README.md CHANGED
@@ -1,6 +1,20 @@
1
1
  # OpenCode Orchestra
2
2
 
3
- `@oeronteros-1/opencode-orchestra` плагин-оркестратор для OpenCode. Он добавляет ведущего агента, небольшую команду скрытых специалистов, арбитра для сложных случаев, автоматический выбор подключённых моделей и готовую интеграцию Context7 + Codebase Memory + MemoryGraph.
3
+ [![npm version](https://img.shields.io/npm/v/@oeronteros-1/opencode-orchestra)](https://www.npmjs.com/package/@oeronteros-1/opencode-orchestra) [![license](https://img.shields.io/npm/l/@oeronteros-1/opencode-orchestra)](LICENSE) [![OpenCode](https://img.shields.io/badge/OpenCode-plugin-4f46e5)](https://opencode.ai/docs/plugins/)
4
+
5
+ `@oeronteros-1/opencode-orchestra` — стабильный плагин-оркестратор для OpenCode. Он добавляет ведущего агента, команду скрытых специалистов, арбитра для сложных случаев, автоматический выбор подключённых моделей, контроль стоимости, локальную телеметрию и интеграцию Context7 + Codebase Memory + MemoryGraph.
6
+
7
+ ## Возможности 1.0
8
+
9
+ - автоматическая классификация задач и dependency-aware план выполнения;
10
+ - режимы бюджета `eco`, `balanced`, `quality` и `ebobo`;
11
+ - автоматическое обнаружение моделей с ручными пулами и точными overrides;
12
+ - прогноз стоимости, локальный price snapshot и собственный pricing endpoint;
13
+ - локальный dashboard, аналитика расходов и CSV/JSON export;
14
+ - диагностика `doctor`, проверка обновлений и shell completion;
15
+ - идемпотентная установка без удаления пользовательской OpenCode/MCP-конфигурации.
16
+
17
+ Стабильный контракт версии 1.0 описан в [CHANGELOG.md](CHANGELOG.md). GitHub release notes находятся в [GITHUB_RELEASE_1.0.0.md](GITHUB_RELEASE_1.0.0.md).
4
18
 
5
19
  ## Установка одной командой
6
20
 
@@ -14,7 +28,7 @@ CLI использует Bun напрямую, поэтому отдельный
14
28
 
15
29
  Команда:
16
30
 
17
- - добавит `@oeronteros-1/opencode-orchestra` в `~/.config/opencode/opencode.json`;
31
+ - добавит `@oeronteros-1/opencode-orchestra@latest` в OpenCode config (`opencode.json` или `opencode.jsonc`);
18
32
  - подключит удалённый Context7 MCP (`https://mcp.context7.com/mcp`);
19
33
  - установит статический `codebase-memory-mcp`, включит автоматическую индексацию и подключит его к OpenCode;
20
34
  - установит MemoryGraph (`memorygraphMCP`) в изолированное окружение через `uv` и подключит локальную SQLite-память;
@@ -33,6 +47,34 @@ bunx @oeronteros-1/opencode-orchestra@latest install --help
33
47
 
34
48
  Полезные флаги: `--no-context7`, `--no-codebase-memory`, `--no-memorygraph`, `--no-deps`, `--force`, `--dry-run`, `--config-dir DIR`.
35
49
 
50
+ ## Диагностика, обновление и автодополнение
51
+
52
+ Помимо установки и dashboard, CLI предлагает служебные команды:
53
+
54
+ ```bash
55
+ bunx @oeronteros-1/opencode-orchestra@latest doctor
56
+ ```
57
+
58
+ Проверяет конфиг OpenCode и `orchestra.jsonc`, регистрацию плагина, доступность настроенных MCP-серверов, пути и версии `uv`, MemoryGraph и Codebase Memory. Флаг `--config-dir DIR` переопределяет каталог конфигурации, а `--json` выводит результат в машиночитаемом виде.
59
+
60
+ ```bash
61
+ bunx @oeronteros-1/opencode-orchestra@latest update
62
+ ```
63
+
64
+ Сверяет установленную версию плагина с последней опубликованной на npm и подсказывает команду обновления.
65
+
66
+ ```bash
67
+ bunx @oeronteros-1/opencode-orchestra@latest completion zsh
68
+ bunx @oeronteros-1/opencode-orchestra@latest completion bash
69
+ bunx @oeronteros-1/opencode-orchestra@latest completion pwsh
70
+ ```
71
+
72
+ Выводит скрипт автодополнения для zsh, bash или pwsh. Например, для zsh:
73
+
74
+ ```bash
75
+ bunx @oeronteros-1/opencode-orchestra@latest completion zsh > ~/.zsh/completions/_opencode-orchestra
76
+ ```
77
+
36
78
  ## Модели без ручной настройки
37
79
 
38
80
  По умолчанию используется `models.strategy: "auto"`. При запуске плагин получает через OpenCode список реально подключённых провайдеров и моделей, определяет доступные возможности (reasoning, tools, vision, image output, размер контекста) и заполняет только пустые пулы.
@@ -126,6 +168,28 @@ bunx @oeronteros-1/opencode-orchestra@latest install --help
126
168
 
127
169
  Цена из каталога — сигнал ранжирования, а не гарантия фактического тарифа. Для подписочных моделей можно явно указать `cost: "subscription"` в ручном пуле.
128
170
 
171
+ ### Прайс-лист и прогноз стоимости
172
+
173
+ Плагин поставляет встроенный snapshot цен (`{provider}/{model} → input/output USD за 1M токенов`) и использует его как отдельный сигнал ранжирования — при прочих равных дешевле модель выигрывает. Снапшот можно периодически обновлять с собственного эндпоинта:
174
+
175
+ ```jsonc
176
+ {
177
+ "pricing": {
178
+ "endpoint": "https://internal.example.com/prices.json",
179
+ "refreshIntervalHours": 24,
180
+ "estimate": true,
181
+ "warnThresholdUSD": 0.5
182
+ }
183
+ }
184
+ ```
185
+
186
+ - `endpoint` — self-hosted JSON `{ "updatedAt": "...", "prices": { "provider/model": { "input": 0.27, "output": 1.1 } } }`; при недоступности остаётся встроенный snapshot;
187
+ - `refreshIntervalHours` — период опроса (0 отключает);
188
+ - `estimate` — включает прогноз стоимости до запуска в ответе `orchestra_route`;
189
+ - `warnThresholdUSD` — порог, выше которого роутер добавляет предупреждение «эта задача в `quality` обойдётся примерно в $X».
190
+
191
+ Resolver формирует упорядоченный список более дешёвых fallback-кандидатов для execution-слоёв, которые умеют повторять вызовы. Сам плагин не перехватывает provider-вызовы OpenCode и поэтому не заявляет автоматический retry. Прогноз стоимости — информативное поле: выполнение не блокируется, а предупреждение помогает подтвердить расходы заранее.
192
+
129
193
  ## Агенты и команды
130
194
 
131
195
  Плагин добавляет один публичный `orch-lead`, скрытых workers и скрытый `orch-judge`. Workers не могут делегировать работу дальше; lead может вызывать только агентов Orchestra.
@@ -135,8 +199,11 @@ bunx @oeronteros-1/opencode-orchestra@latest install --help
135
199
  ```text
136
200
  /orchestra <задача>
137
201
  /orchestra-status
202
+ /plugin-status
138
203
  ```
139
204
 
205
+ `/orchestra-status` показывает статистику текущей Orchestra-сессии, а `/plugin-status` — версию загруженного плагина, бюджет, стратегию моделей и состояние companion MCP.
206
+
140
207
  Профили: `architecture`, `debug`, `ui`, `research`, `review`, `security`, `performance`, `migration`, `ops`.
141
208
 
142
209
  ## Context7, Codebase Memory и MemoryGraph
@@ -159,16 +226,18 @@ MemoryGraph отвечает за знания, которых нет непос
159
226
 
160
227
  Глобальный конфиг: `~/.config/opencode/orchestra.jsonc` (или `$XDG_CONFIG_HOME/opencode/orchestra.jsonc`). Проектный `.opencode/orchestra.jsonc` накладывается поверх глобального. Переменная `OPENCODE_CONFIG_DIR` также поддерживается.
161
228
 
162
- ## Разработка
229
+ ## Требования и разработка
230
+
231
+ Для установки рекомендуется Bun 1.2+. Для Node-based tooling и разработки требуется Node.js 22+.
163
232
 
164
233
  ```bash
165
- npm install
234
+ npm ci
166
235
  npm run check
167
236
  npm run build
168
237
  npm pack --dry-run
169
238
  ```
170
239
 
171
- Перед публикацией пакет автоматически собирается через `prepack`.
240
+ Перед публикацией `prepublishOnly` запускает полный check, а `prepack` пересобирает plugin и dashboard. Рабочая команда релиза: `npm publish --access public`. Перед ней проверьте содержимое tarball и создайте Git tag `v1.0.0`.
172
241
 
173
242
  ## Документация
174
243
 
@@ -194,14 +263,33 @@ bunx @oeronteros-1/opencode-orchestra@latest dashboard
194
263
  - input, output, reasoning и cache-токены;
195
264
  - фактическую стоимость, которую возвращает провайдер;
196
265
  - расходы и нагрузку по моделям и агентам;
197
- - виртуализированный журнал activity без текстов промптов и ответов;
266
+ - виртуализированный журнал activity; тексты промптов и ответов отключены по умолчанию и сохраняются только при явном `telemetry.storeTexts: true`;
198
267
  - статус Context7, Codebase Memory, MemoryGraph и сохранённого пользователем Supermemory;
199
- - настройку режимов `eco`, `balanced`, `quality`, `ebobo` и моделей отдельных агентов.
268
+ - настройку режимов `eco`, `balanced`, `quality`, `ebobo` и моделей отдельных агентов;
269
+ - месячный прогноз, детектирование аномалий и экспорт activity/models/agents/daily/summary в CSV или JSON.
200
270
 
201
271
  Настройки сохраняются в `orchestra.jsonc` с резервной копией. Существующие MCP-записи dashboard не удаляет и не перезаписывает.
202
272
 
203
273
  Полезные параметры: `--directory DIR`, `--config-dir DIR`, `--host HOST`, `--port PORT`, `--no-open`.
204
274
 
275
+ ## Обновление с 0.5.x
276
+
277
+ Повторно выполните установщик:
278
+
279
+ ```bash
280
+ bunx @oeronteros-1/opencode-orchestra@latest install
281
+ ```
282
+
283
+ Миграция `orchestra.jsonc` не требуется. Установщик сохранит существующие plugin options и MCP entries, обновит bare/pinned Orchestra entry до `@latest` и создаст backup перед изменением основного OpenCode config. После обновления перезапустите OpenCode и выполните `/plugin-status`.
284
+
285
+ ## Безопасность и приватность
286
+
287
+ - dashboard по умолчанию слушает только `127.0.0.1` и защищён случайным токеном;
288
+ - telemetry хранится локально в `.orchestra`;
289
+ - тексты сообщений не сохраняются без `telemetry.storeTexts: true`;
290
+ - pricing endpoint настраивается пользователем и не требуется для offline-оценки;
291
+ - перед публикацией или баг-репортом не прикладывайте локальный ledger, если включали сохранение текстов.
292
+
205
293
  ## License
206
294
 
207
295
  MIT