@oeronteros-1/opencode-orchestra 1.0.22 → 1.0.23
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/README.md +11 -3
- package/dashboard-dist/assets/index-DMvE5MHc.js +124 -0
- package/dashboard-dist/index.html +1 -1
- package/dist/cache-refresh.d.ts +42 -0
- package/dist/cache-refresh.js +130 -0
- package/dist/cache-refresh.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.js +13 -5
- package/dist/cli.js.map +1 -1
- package/dist/config/schema.d.ts +9 -1
- package/dist/config/schema.js +24 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/dashboard/server.js +2 -2
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.js +25 -7
- package/dist/index.js.map +1 -1
- package/dist/pricing/cost.d.ts +29 -0
- package/dist/pricing/cost.js +47 -0
- package/dist/pricing/cost.js.map +1 -0
- package/dist/pricing/model-match.d.ts +59 -0
- package/dist/pricing/model-match.js +134 -0
- package/dist/pricing/model-match.js.map +1 -0
- package/dist/pricing/openrouter.d.ts +60 -0
- package/dist/pricing/openrouter.js +150 -0
- package/dist/pricing/openrouter.js.map +1 -0
- package/dist/pricing/resolver.d.ts +50 -0
- package/dist/pricing/resolver.js +145 -0
- package/dist/pricing/resolver.js.map +1 -0
- package/dist/routing/pricing/estimate.d.ts +14 -1
- package/dist/routing/pricing/estimate.js +81 -20
- package/dist/routing/pricing/estimate.js.map +1 -1
- package/dist/telemetry/ledger.d.ts +6 -1
- package/dist/telemetry/ledger.js +15 -3
- package/dist/telemetry/ledger.js.map +1 -1
- package/dist/tools.d.ts +3 -0
- package/dist/tools.js +3 -1
- package/dist/tools.js.map +1 -1
- package/package.json +2 -2
- package/schema/opencode-orchestra.schema.json +21 -1
- package/dashboard-dist/assets/index-BZTn_d2K.js +0 -124
package/README.md
CHANGED
|
@@ -214,7 +214,11 @@ bunx @oeronteros-1/opencode-orchestra@latest completion zsh > ~/.zsh/completions
|
|
|
214
214
|
"endpoint": "https://internal.example.com/prices.json",
|
|
215
215
|
"refreshIntervalHours": 24,
|
|
216
216
|
"estimate": true,
|
|
217
|
-
"warnThresholdUSD": 0.5
|
|
217
|
+
"warnThresholdUSD": 0.5,
|
|
218
|
+
"openrouter": { "enabled": true, "ttlHours": 12 },
|
|
219
|
+
"aliases": [
|
|
220
|
+
{ "canonical": "gpt-5.6-sol", "aliases": ["GPT-5.6 Sol", "CX/GPT-5.6 Sol"] }
|
|
221
|
+
]
|
|
218
222
|
}
|
|
219
223
|
}
|
|
220
224
|
```
|
|
@@ -222,7 +226,11 @@ bunx @oeronteros-1/opencode-orchestra@latest completion zsh > ~/.zsh/completions
|
|
|
222
226
|
- `endpoint` — self-hosted JSON `{ "updatedAt": "...", "prices": { "provider/model": { "input": 0.27, "output": 1.1 } } }`; при недоступности остаётся встроенный snapshot;
|
|
223
227
|
- `refreshIntervalHours` — период опроса (0 отключает);
|
|
224
228
|
- `estimate` — включает прогноз стоимости до запуска в ответе `orchestra_route`;
|
|
225
|
-
- `warnThresholdUSD` — порог, выше которого роутер добавляет предупреждение «эта задача в `quality` обойдётся примерно в $X
|
|
229
|
+
- `warnThresholdUSD` — порог, выше которого роутер добавляет предупреждение «эта задача в `quality` обойдётся примерно в $X»;
|
|
230
|
+
- `openrouter.enabled` — опциональный fallback на публичный каталог OpenRouter (`/api/v1/models`, без API-ключа) для моделей, у которых нет цены провайдера; список кэшируется на `ttlHours` часов, офлайн-оценка не зависит от сети;
|
|
231
|
+
- `aliases` — ручные псевдонимы моделей: raw-имя посредника (`CX/GPT-5.6 Sol`) сводится к канонической модели. Пользовательский alias имеет высший приоритет над всеми внешними источниками цен.
|
|
232
|
+
|
|
233
|
+
Как определяется стоимость: raw model ID нормализуется (регистр, разделители, префикс провайдера, namespace-обёртки, `:free`-суффиксы), затем цена ищется в порядке: явная цена из конфига → псевдонимы → snapshot провайдера → OpenRouter. Совпадение по ключевым словам/нечёткое сравнение защищено от ложных срабатываний: похожие модели семейства (`GPT-5.6`, `GPT-5.6 Mini`, `GPT-5.6 Sol`) не схлопываются. Итог всегда один из четырёх статусов: `paid` (цена известна), `free` ($0, токены считаются), `subscription` ($0 + статус подписки) или `unknown` (токены считаются, стоимость — `null`, никогда не выдаётся за бесплатную). Токены и биллинг — две независимые величины.
|
|
226
234
|
|
|
227
235
|
Resolver формирует упорядоченный список более дешёвых fallback-кандидатов для execution-слоёв, которые умеют повторять вызовы. Сам плагин не перехватывает provider-вызовы OpenCode и поэтому не заявляет автоматический retry. Прогноз стоимости — информативное поле: выполнение не блокируется, а предупреждение помогает подтвердить расходы заранее.
|
|
228
236
|
|
|
@@ -342,7 +350,7 @@ bunx @oeronteros-1/opencode-orchestra@latest install
|
|
|
342
350
|
- dashboard по умолчанию слушает только `127.0.0.1` и защищён случайным токеном;
|
|
343
351
|
- telemetry хранится локально в `.orchestra`;
|
|
344
352
|
- тексты сообщений не сохраняются без `telemetry.storeTexts: true`;
|
|
345
|
-
- pricing endpoint настраивается пользователем и не требуется для offline-оценки;
|
|
353
|
+
- pricing endpoint настраивается пользователем и не требуется для offline-оценки; OpenRouter-фолбэк опционален (`pricing.openrouter.enabled`, по умолчанию выключен) и тоже не обязателен для offline-оценки;
|
|
346
354
|
- перед публикацией или баг-репортом не прикладывайте локальный ledger, если включали сохранение текстов;
|
|
347
355
|
- установщик (`install`) и `entrypoint` с 1.0.9 усилены: резервная копия создаётся даже при частичных изменениях, BOM-префиксы (``) в `opencode.json` и `orchestra.jsonc` корректно обрабатываются `doctor` и `dashboard`, а существующие MCP-записи не удаляются без явного `--force`.
|
|
348
356
|
|