Files
dsh-cost-plugin/docs/INSTALL.md
T
antonov d3d12724aa Add the portable package and install notes for another machine
pnpm pack produces a 12 KB tarball with only the two halves and the bundle
patch; it was installed into a throwaway profile to prove it works and
that both halves parse. The notes make the composition step explicit,
because a package can sit in a profile without ever loading -- which is
the state dsh-bottom-info-bar is in on this machine.
2026-10-28 16:26:00 +03:00

5.0 KiB

Установка на другое устройство

Плагин — один файл: 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. Путь к архиву подставьте свой.

$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, который у вас установлен, но не активен.

# 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:), как на этой, то обновление не нужно вовсе: правится исходник, и после перезапуска подхватывается новое.

Как удалить

& $node $pnpm remove dsh-session-cost --dir $profile

Затем убрать dsh-session-cost из dsh.profile.bundles (или выключить тумблером в Plugins) и перезапустить.

Реестр ~/.dsh/dsh-session-cost/ при удалении остаётся, как и у dsh-bottom-info-bar; удалите папку вручную, если хотите чистый лист.