diff --git a/dist/dsh-session-cost-0.1.0.tgz b/dist/dsh-session-cost-0.1.0.tgz new file mode 100644 index 0000000..a0e7800 Binary files /dev/null and b/dist/dsh-session-cost-0.1.0.tgz differ diff --git a/docs/INSTALL.md b/docs/INSTALL.md new file mode 100644 index 0000000..41917b2 --- /dev/null +++ b/docs/INSTALL.md @@ -0,0 +1,74 @@ +# Установка на другое устройство + +Плагин — один файл: `dist/dsh-session-cost-0.1.0.tgz`. Перенесите его на другую машину любым способом (флешка, облако, `scp`). + +## Что нужно на той машине + +- DeepSeek Harness, версия **0.2.0-rc.2** (проверить: `~/.dsh/dsh-runtimes/dsh-primary-runtime/runtime.json`, поле `desktopVersion`). +- Модель должна идти через **routerai**: стоимость приходит в ответе провайдера, другие провайдеры её не отдают, и ячейка просто молчит. +- Ничего больше: ключ `ROUTERAI_API_KEY` плагину не нужен. Он читает стоимость из ответа, который харнесс и так получает, и сам никуда не ходит. + +## Установка + +Ниже — PowerShell. Путь к архиву подставьте свой. + +```powershell +$node = "$env:USERPROFILE\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\node\bin\node.exe" +$pnpm = "$env:USERPROFILE\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\pnpm\bin\pnpm.mjs" +$profile = "$env:USERPROFILE\.dsh\profiles\desktop" +$tgz = "C:\путь\к\dsh-session-cost-0.1.0.tgz" + +# 1. поставить пакет в профиль +& $node $pnpm add "file:$tgz" --dir $profile +``` + +Дальше **обязательный** шаг — добавить плагин в композицию. Без него пакет лежит в профиле, но не загружается: именно так сейчас обстоит дело с `dsh-bottom-info-bar`, который у вас установлен, но не активен. + +```powershell +# 2. добавить в список бандлов +$manifestPath = "$profile\package.json" +$m = Get-Content $manifestPath -Raw | ConvertFrom-Json +if ($m.dsh.profile.bundles -notcontains 'dsh-session-cost') { + $m.dsh.profile.bundles += 'dsh-session-cost' +} +$m | ConvertTo-Json -Depth 10 | Set-Content $manifestPath -Encoding utf8 +``` + +Проще и надёжнее — сделать это через UI: **Plugins** в боковой панели, найти `dsh-session-cost` и включить переключателем. Тумблер сам правит список бандлов. + +**3. Перезапустить DSH.** Плагины собираются при старте хоста; перезагрузки страницы недостаточно. + +## Проверка + +После перезапуска открыть любой диалог, отправить сообщение. В нижнем ряду, сразу после родных ячеек, должна появиться сумма вида `₽ 0,1234`. + +Если пусто, открыть консоль (F12) и посмотреть строки `[dsh-session-cost]`: + +- `session id: ...` — какой id определился; +- `cannot read ...` — не дошёл запрос до хостовой половины. + +Оба сообщения печатаются один раз на каждую новую причину, а не на каждый опрос. + +## Что переносится, а что нет + +**Переносится:** сам плагин — код, страница состояния, расчёт. + +**Не переносится:** накопленный реестр. Стоимость хранится на каждой машине отдельно, в `~/.dsh/dsh-session-cost/state.json`. Это сделано намеренно: суммы относятся к сессиям конкретной установки, и чужие сессии в новом реестре всё равно не к чему привязать. + +Если всё же нужно перенести историю — скопируйте этот файл в ту же папку на новой машине. Формат переносимый, идентификаторы генераций глобально уникальны. + +## Как обновить плагин + +Собрать новый архив здесь (`pnpm pack --pack-destination dist`), перенести, повторить шаг 1 и перезапустить. + +Если на другой машине плагин ставился **ссылкой** на папку (`link:`), как на этой, то обновление не нужно вовсе: правится исходник, и после перезапуска подхватывается новое. + +## Как удалить + +```powershell +& $node $pnpm remove dsh-session-cost --dir $profile +``` + +Затем убрать `dsh-session-cost` из `dsh.profile.bundles` (или выключить тумблером в Plugins) и перезапустить. + +Реестр `~/.dsh/dsh-session-cost/` при удалении остаётся, как и у `dsh-bottom-info-bar`; удалите папку вручную, если хотите чистый лист.