@router-ai/dsh-plugin-routerai 0.0.0-stage → 0.1.0

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/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # История изменений
2
+
3
+ ## 0.1.0
4
+
5
+ Первый выпуск.
6
+
7
+ - Модели RouterAI в пикере DeepSeek Harness: у каждой видны цена в рублях за миллион токенов и размер контекста.
8
+ - Вход через браузер: routerai.ru выдаёт приложению ключ с лимитом расходов. Готовый ключ `sk-…` тоже можно вставить.
9
+ - Раздел «RouterAI» в настройках: баланс, лимит и расход ключа, выбор и порядок моделей, поиск по каталогу, готовые наборы.
10
+ - Остаток на счёте в боковой панели и стоимость текущей сессии под полем ввода.
11
+ - Команда `/routerai`: `login`, `key`, `logout`, `status`, `models`, `find`.
12
+ - Отказы из-за денег (пустой баланс, лимит ключа, отключённый ключ) объясняются по-человечески и со ссылкой.
13
+ - Названия сессий и сжатие контекста выполняет недорогая служебная модель — её можно сменить или отключить.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 RouterAI (https://routerai.ru)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,99 @@
1
- # Temporary Holding Version
1
+ # RouterAI для DeepSeek Harness
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [RouterAI](https://routerai.ru) — российский агрегатор языковых моделей: Claude, GPT, Gemini, DeepSeek, Qwen
4
+ и сотни других по одному ключу, с оплатой в рублях. Этот плагин подключает RouterAI к
5
+ [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) как провайдера моделей.
6
+
7
+ ## Установка
8
+
9
+ В приложении: **Плагины → Добавить плагин**, имя пакета `@router-ai/dsh-plugin-routerai`.
10
+
11
+ Из терминала:
12
+
13
+ ```sh
14
+ dsh plugin --profile desktop add @router-ai/dsh-plugin-routerai
15
+ ```
16
+
17
+ После установки перезапустите приложение.
18
+
19
+ ## Первые шаги
20
+
21
+ 1. Откройте **Настройки → RouterAI** и нажмите **Войти через RouterAI**. В браузере откроется routerai.ru:
22
+ подтвердите доступ и при желании задайте лимит расходов. Ключ сохранится автоматически.
23
+ 2. Отметьте в каталоге модели, которые хотите видеть в пикере, и нажмите **Применить**.
24
+ 3. Выберите модель RouterAI в пикере под полем ввода.
25
+
26
+ Если ключ уже есть (его можно создать на [routerai.ru/settings/keys](https://routerai.ru/settings/keys)),
27
+ вставьте его в том же разделе настроек.
28
+
29
+ ## Возможности
30
+
31
+ | | |
32
+ |---|---|
33
+ | Модели в пикере | цена в ₽ за миллион токенов и размер контекста прямо в списке |
34
+ | Настройки | баланс, лимит и расход ключа; выбор и порядок моделей; поиск по каталогу; готовые наборы |
35
+ | Боковая панель | остаток на счёте, предупреждение, когда деньги заканчиваются |
36
+ | Под полем ввода | стоимость текущей сессии, токены, доля входа из кэша |
37
+ | Отказы из-за денег | понятное сообщение и ссылка вместо кода ошибки |
38
+ | Служебная модель | названия сессий и сжатие контекста на недорогой модели |
39
+
40
+ Стоимость сессии — расчёт по числу токенов и ценам каталога. Точные списания показывает кабинет RouterAI.
41
+
42
+ ## Команда `/routerai`
43
+
44
+ | Команда | Что делает |
45
+ |---|---|
46
+ | `/routerai login` | вход через routerai.ru |
47
+ | `/routerai key sk-…` | сохранить готовый ключ |
48
+ | `/routerai logout` | удалить сохранённый ключ |
49
+ | `/routerai status` | баланс аккаунта и состояние ключа |
50
+ | `/routerai models` | модели, которые показывает пикер |
51
+ | `/routerai find <текст>` | поиск по каталогу RouterAI |
52
+
53
+ ## Настройка без интерфейса
54
+
55
+ Ключ можно передать переменной окружения `ROUTERAI_API_KEY` или записать в `.env`.
56
+ Параметры плагина задаются в `~/.dsh/profiles/<профиль>/cordis.patch.yml`:
57
+
58
+ ```yaml
59
+ - id: llm-routerai
60
+ config:
61
+ models:
62
+ - anthropic/claude-sonnet-5.5
63
+ - deepseek/deepseek-v4.1-flash
64
+ ```
65
+
66
+ | Параметр | По умолчанию | Назначение |
67
+ |---|---|---|
68
+ | `models` | набор «На каждый день» | модели пикера по порядку; выбор в настройках приложения важнее |
69
+ | `apiKeyEnv` | `ROUTERAI_API_KEY` | имя, под которым хранится ключ |
70
+ | `baseURL` | `https://routerai.ru/api/v1` | адрес API |
71
+ | `catalogRefreshHours` | `4` | как часто обновлять каталог и цены |
72
+
73
+ Идентификаторы моделей — как в [каталоге RouterAI](https://routerai.ru/models): `производитель/модель`.
74
+
75
+ ## Совместимость
76
+
77
+ DeepSeek Harness 0.2.x. Harness пока выходит в предварительных версиях, поэтому совместимость с каждой
78
+ новой сборкой проверяется автоматически раз в сутки.
79
+
80
+ ## Разработка
81
+
82
+ Нужен Node.js 24.
83
+
84
+ ```sh
85
+ npm ci
86
+ npm run typecheck
87
+ npm test
88
+ npm run build
89
+ ```
90
+
91
+ Выпуск версии: обновить `version` в `package.json`, добавить раздел в `CHANGELOG.md`, поставить тег
92
+ `vX.Y.Z`. Публикацию в npm и релиз на GitHub выполняет `.github/workflows/release.yml`.
93
+
94
+ ## Поддержка и лицензия
95
+
96
+ Вопросы и ошибки — в [задачах репозитория](https://github.com/router-ai/dsh-plugin-routerai/issues)
97
+ или на [routerai.ru/support](https://routerai.ru/support).
98
+
99
+ Лицензия MIT.
@@ -0,0 +1,10 @@
1
+ # Что этот пакет добавляет в профиль DeepSeek Harness при установке:
2
+ # плагин llm-routerai — маршрут `routerai`, раздел настроек и команда /routerai.
3
+ #
4
+ # Изменить его параметры можно в ~/.dsh/profiles/<профиль>/cordis.patch.yml, например:
5
+ # - id: llm-routerai
6
+ # config:
7
+ # models: [anthropic/claude-sonnet-5.5, deepseek/deepseek-v4.1-flash]
8
+ - insert:
9
+ - id: llm-routerai
10
+ name: '@router-ai/dsh-plugin-routerai'
package/docs/DETAIL.md ADDED
@@ -0,0 +1,19 @@
1
+ # RouterAI
2
+
3
+ [RouterAI](https://routerai.ru) puts models from many vendors — Anthropic, OpenAI, Google, DeepSeek, Qwen and
4
+ others — behind a single key and bills in rubles. This plugin adds those models to DeepSeek Harness.
5
+
6
+ ## Getting started
7
+
8
+ 1. Open **Settings → RouterAI** and press **Sign in with RouterAI**. Approve access on routerai.ru and the key
9
+ is saved for you. You can also paste an existing key there.
10
+ 2. Tick the models you want in the catalog and press **Apply**.
11
+ 3. Pick a RouterAI model in the model picker.
12
+
13
+ ## What you get
14
+
15
+ - Price per million tokens and context size right in the model list.
16
+ - Balance in the sidebar and the session cost under the composer.
17
+ - Clear messages when the balance runs out or the key hits its spending limit.
18
+ - Savings: session titles and context compaction run on an inexpensive utility model.
19
+ - The `/routerai` command for the same actions from the chat: `login`, `key`, `logout`, `status`, `models`, `find`.
@@ -0,0 +1,19 @@
1
+ # RouterAI
2
+
3
+ [RouterAI](https://routerai.ru) собирает модели разных производителей — Anthropic, OpenAI, Google, DeepSeek,
4
+ Qwen и многих других — за одним ключом и принимает оплату в рублях. Плагин добавляет эти модели в DeepSeek Harness.
5
+
6
+ ## Как начать
7
+
8
+ 1. Откройте **Настройки → RouterAI** и нажмите **Войти через RouterAI**. Подтвердите доступ на routerai.ru —
9
+ ключ сохранится сам. Готовый ключ можно вставить там же.
10
+ 2. Отметьте нужные модели в каталоге и нажмите **Применить**.
11
+ 3. Выберите модель RouterAI в пикере.
12
+
13
+ ## Что вы получаете
14
+
15
+ - Цена за миллион токенов и размер контекста — прямо в списке моделей.
16
+ - Баланс в боковой панели и стоимость сессии под полем ввода.
17
+ - Понятные сообщения, если закончились деньги или ключ упёрся в лимит.
18
+ - Экономия: названия сессий и сжатие контекста делает недорогая служебная модель.
19
+ - Команда `/routerai` для тех же действий из чата: `login`, `key`, `logout`, `status`, `models`, `find`.
package/icon.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#2d67f6" d="M8.22 21.06a4.09 4.09 0 0 0 7.55 0 4.1 4.1 0 0 0 5.34-5.32 4.08 4.08 0 0 0 0-7.53 4.07 4.07 0 0 0-5.34-5.33 4.09 4.09 0 0 0-7.55 0A4.1 4.1 0 0 0 2.9 8.21a4.08 4.08 0 0 0 0 7.53 4.07 4.07 0 0 0 5.33 5.32"/><path fill="#fff" d="M23.25 11.97a3.7 3.7 0 0 0-2.28-3.42l-.35-.14.14-.35a3.7 3.7 0 0 0-4.84-4.83l-.35.14-.14-.34A3.7 3.7 0 0 0 12.29.76L12 .75c-1.54 0-2.87.94-3.43 2.28l-.14.34-.35-.14a3.72 3.72 0 0 0-4.85 4.83l.15.35-.35.14a3.7 3.7 0 0 0-2.28 3.42v.29a3.7 3.7 0 0 0 2.28 3.13l.35.14-.15.35a3.7 3.7 0 0 0 4.85 4.83l.35-.14.14.35a3.71 3.71 0 0 0 6.86 0l.14-.35.35.14a3.72 3.72 0 0 0 4.85-4.83l-.15-.35.35-.14a3.7 3.7 0 0 0 2.28-3.42M12 1.97c1.03 0 1.91.63 2.29 1.53l.61 1.48 1.49-.61a2.48 2.48 0 0 1 3.23 3.23l-.6 1.47 1.47.62c.9.37 1.53 1.26 1.53 2.28v.09a2.5 2.5 0 0 1-1.53 2.2l-1.48.6.61 1.49a2.47 2.47 0 0 1-3.23 3.23l-1.49-.61-.61 1.47a2.48 2.48 0 0 1-4.58 0l-.61-1.47-1.49.6a2.48 2.48 0 0 1-3.23-3.22l.6-1.48-1.47-.62a2.5 2.5 0 0 1-1.53-2.28v-.09c.04-.99.66-1.83 1.53-2.2l1.48-.6-.61-1.48A2.47 2.47 0 0 1 7.6 4.37l1.49.6.61-1.47A2.5 2.5 0 0 1 12 1.98m0 15.8q-.36 0-.66.13l-1.6.66.66 1.6a1.73 1.73 0 0 0 3.2 0l.67-1.6-1.61-.66q-.3-.13-.66-.13m-6.93-1.14a1.72 1.72 0 0 0 2.26 2.25l1.6-.65-.66-1.6a1.7 1.7 0 0 0-.93-.93l-1.61-.67zm11.6-.93a1.7 1.7 0 0 0-.94.93l-.66 1.6 1.6.65a1.74 1.74 0 0 0 2.26-2.25l-.66-1.6zM6.18 11.97q0-.36-.13-.66l-.66-1.6-1.6.67c-.61.25-1.04.84-1.07 1.52v.08c0 .7.44 1.32 1.07 1.58l1.6.67.66-1.6q.13-.3.13-.66m8.89 0q0-.71.21-1.36a4.5 4.5 0 0 1-1.93-1.92 4.5 4.5 0 0 1-2.72 0A4.4 4.4 0 0 1 8.7 10.6a4.4 4.4 0 0 1 0 2.72 4.5 4.5 0 0 1 1.93 1.92 4.5 4.5 0 0 1 2.72 0 4.4 4.4 0 0 1 1.93-1.92 4 4 0 0 1-.21-1.36M7.33 5.06A1.74 1.74 0 0 0 5.07 7.3l.66 1.6 1.6-.66a1.7 1.7 0 0 0 .94-.93l.66-1.6zm11.22.37c-.5-.5-1.25-.63-1.88-.37l-1.6.66.66 1.6a1.7 1.7 0 0 0 .93.93l1.61.66.66-1.6c.26-.63.13-1.37-.38-1.88M12 2.73c-.72 0-1.34.43-1.6 1.06l-.67 1.6 1.61.66a1.7 1.7 0 0 0 1.32 0l1.6-.67-.66-1.6A1.7 1.7 0 0 0 12 2.74m-5.06 9.24q0 .5-.19.94l-.61 1.48 1.48.62a2.5 2.5 0 0 1 1.34 1.33l.61 1.48 1.49-.61a2.5 2.5 0 0 1 1.88 0l1.49.6.61-1.47A2.5 2.5 0 0 1 16.38 15l1.48-.62-.61-1.48a2.5 2.5 0 0 1 0-1.88l.6-1.48-1.47-.61a2.5 2.5 0 0 1-1.34-1.34l-.61-1.47-1.49.6a2.5 2.5 0 0 1-1.88 0l-1.49-.6-.61 1.47a2.5 2.5 0 0 1-1.34 1.34l-1.48.61.61 1.48q.19.43.19.94m8.89 0q0 .76.27 1.41l.15.35-.35.14a3.7 3.7 0 0 0-2 2l-.14.34-.35-.14a3.7 3.7 0 0 0-2.82 0l-.35.14-.14-.34a3.7 3.7 0 0 0-2-2l-.35-.14.15-.35a3.7 3.7 0 0 0 0-2.82l-.15-.34.35-.15a3.7 3.7 0 0 0 2-2l.14-.34.35.15a3.7 3.7 0 0 0 2.82 0l.35-.15.14.35a3.7 3.7 0 0 0 2 2l.35.14-.15.34q-.26.65-.27 1.41m1.98 0q0 .36.13.66l.66 1.6 1.6-.67a1.7 1.7 0 0 0 1.07-1.52v-.2a1.7 1.7 0 0 0-1.07-1.46l-1.6-.67-.66 1.6q-.12.3-.13.66m6.19 0c0 1.73-.98 3.22-2.42 3.96a4.44 4.44 0 0 1-5.61 5.6 4.46 4.46 0 0 1-7.94 0 4.47 4.47 0 0 1-5.6-5.6A4.5 4.5 0 0 1 0 12.14v-.17c0-1.72.98-3.22 2.42-3.96a4.44 4.44 0 0 1 5.61-5.6A4.5 4.5 0 0 1 12 0h.17a4.5 4.5 0 0 1 3.8 2.41 4.47 4.47 0 0 1 5.6 5.6A4.5 4.5 0 0 1 24 11.97"/><path fill="#fff" d="M10.44 8.22a4 4 0 0 0 3.12 0 4 4 0 0 0 2.2 2.2 4 4 0 0 0 0 3.1 4 4 0 0 0-2.2 2.2 4 4 0 0 0-3.12 0 4 4 0 0 0-2.2-2.2 4 4 0 0 0 0-3.1 4 4 0 0 0 2.2-2.2"/></svg>