@knyazevai/dsh 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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Knyazev AI
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 ADDED
@@ -0,0 +1,92 @@
1
+ # @knyazevai/dsh
2
+
3
+ Плагин [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): провайдер **Knyazev AI**, модели Flash / Kimi / MiniMax, thinking и effort `off / high / max` сразу.
4
+
5
+ Ключ в пакет не входит. Его нужно вставить в Models после установки.
6
+
7
+ ## Установка
8
+
9
+ Нужны [Node.js](https://nodejs.org/) и [pnpm](https://pnpm.io/).
10
+
11
+ Профили DSH — pnpm workspace, поэтому нужен `-w`.
12
+
13
+ ```sh
14
+ npx @deepseek-ai/dsh plugin --profile web add -w @knyazevai/dsh
15
+ npx @deepseek-ai/dsh web
16
+ ```
17
+
18
+ Пока пакет не на npm — ставь с GitHub:
19
+
20
+ ```sh
21
+ npx @deepseek-ai/dsh plugin --profile web add -w git+https://github.com/knyazev741/knyazevai-dsh.git
22
+ ```
23
+
24
+ Локально из клона:
25
+
26
+ ```sh
27
+ npx @deepseek-ai/dsh plugin --profile web add -w .
28
+ ```
29
+
30
+ Для headless то же с `--profile headless`.
31
+
32
+ ## После установки
33
+
34
+ 1. Открой Harness → Models → **Knyazev AI**.
35
+ 2. Вставь ключ `kn_live_…` из [кабинета](https://knyazevai.work).
36
+ 3. Выбери `deepseek-v4-flash`. Effort по умолчанию — `high`. Пикер: Off / High / Max.
37
+
38
+ Не копируй YAML руками и не дублируй провайдер в `settings.yaml`. Пакет кладёт маршрут в composition; ключ живёт в credentials.
39
+
40
+ ## Что ставится
41
+
42
+ | Поле | Значение |
43
+ |---|---|
44
+ | Provider | `knyazev-ai` |
45
+ | Endpoint | `https://knyazevai.work/v1` |
46
+ | Models | `deepseek-v4-flash`, `kimi-2.6`, `minimax-2.7` |
47
+ | Thinking | qwen / `enable_thinking` |
48
+ | Effort | `off`, `high`, `max` (Flash и Kimi) |
49
+
50
+ MiniMax без пикера effort: модель не отдаёт reasoning отдельным полем.
51
+
52
+ Дефолтную модель всего Harness пакет не меняет.
53
+
54
+ ## Обновление / снятие
55
+
56
+ ```sh
57
+ npx @deepseek-ai/dsh plugin --profile web update
58
+ npx @deepseek-ai/dsh plugin --profile web remove -w @knyazevai/dsh
59
+ ```
60
+
61
+ ## Релиз (публикация в npm)
62
+
63
+ Пакет публикуется автоматически: GitHub Actions прогоняет тесты и на пуш тега `v<версия>` выкладывает `@knyazevai/dsh` в npm.
64
+
65
+ Один раз настрой доступ:
66
+
67
+ 1. В npm (Account → Access Tokens) создай токен уровня **Automation** (без двухфакторки).
68
+ 2. На GitHub в репо → Settings → Secrets and variables → Actions добавь секрет `NPM_TOKEN` с этим токеном.
69
+ 3. `publishConfig.access: public` уже стоит в `package.json`.
70
+
71
+ Дальше на каждый новый релиз:
72
+
73
+ ```sh
74
+ npm version patch # поднимает версию: patch | minor | major
75
+ git push origin main
76
+ git push origin v0.1.1 # пуш тега запускает тесты + публикацию
77
+ ```
78
+
79
+ Тесты перед публикацией идут сами (`prepublishOnly` в `package.json`).
80
+
81
+ Установка **по имени** — сразу после публикации, на любой машине:
82
+
83
+ ```sh
84
+ npx @deepseek-ai/dsh plugin --profile web add @knyazevai/dsh
85
+ npx @deepseek-ai/dsh web
86
+ ```
87
+
88
+ Пока пакет не на npm — действует установка с GitHub из раздела «Установка».
89
+
90
+ ## Docs
91
+
92
+ https://knyazevai.work/docs
@@ -0,0 +1,37 @@
1
+ # Knyazev AI provider for DeepSeek Harness.
2
+ # Applied after dsh-base / dsh-web-app. Restates llm-pi-ai config so the
3
+ # route exists in the composition base; user settings still merge per provider
4
+ # and still own the API key. Do not retarget this row from another bundle.
5
+ - id: llm-pi-ai
6
+ config:
7
+ providers:
8
+ knyazev-ai:
9
+ displayName: Knyazev AI
10
+ apiKeyEnv: KNYAZEV_AI_API_KEY
11
+ api: openai-completions
12
+ baseURL: https://knyazevai.work/v1
13
+ compat:
14
+ thinkingFormat: qwen
15
+ supportsReasoningEffort: false
16
+ reasoning: high
17
+ models:
18
+ - id: deepseek-v4-flash
19
+ name: DeepSeek V4 Flash
20
+ contextWindow: 400000
21
+ maxTokens: 40000
22
+ reasoningEfforts:
23
+ off: null
24
+ high: high
25
+ max: max
26
+ - id: kimi-2.6
27
+ name: Kimi 2.6
28
+ contextWindow: 262144
29
+ maxTokens: 40000
30
+ reasoningEfforts:
31
+ off: null
32
+ high: high
33
+ max: max
34
+ - id: minimax-2.7
35
+ name: MiniMax 2.7
36
+ contextWindow: 204800
37
+ maxTokens: 40000
@@ -0,0 +1,48 @@
1
+ /** Catalog the DSH bundle patch must keep in sync with cordis.patch.yml. */
2
+
3
+ export const PROVIDER_ID = "knyazev-ai";
4
+ export const API_KEY_ENV = "KNYAZEV_AI_API_KEY";
5
+ export const BASE_URL = "https://knyazevai.work/v1";
6
+ export const DEFAULT_REASONING = "high";
7
+
8
+ export const REASONING_EFFORTS = Object.freeze({
9
+ off: null,
10
+ high: "high",
11
+ max: "max",
12
+ });
13
+
14
+ export const MODELS = Object.freeze([
15
+ Object.freeze({
16
+ id: "deepseek-v4-flash",
17
+ name: "DeepSeek V4 Flash",
18
+ contextWindow: 400000,
19
+ maxTokens: 40000,
20
+ reasoningEfforts: REASONING_EFFORTS,
21
+ }),
22
+ Object.freeze({
23
+ id: "kimi-2.6",
24
+ name: "Kimi 2.6",
25
+ contextWindow: 262144,
26
+ maxTokens: 40000,
27
+ reasoningEfforts: REASONING_EFFORTS,
28
+ }),
29
+ Object.freeze({
30
+ id: "minimax-2.7",
31
+ name: "MiniMax 2.7",
32
+ contextWindow: 204800,
33
+ maxTokens: 40000,
34
+ }),
35
+ ]);
36
+
37
+ export const PROVIDER = Object.freeze({
38
+ displayName: "Knyazev AI",
39
+ apiKeyEnv: API_KEY_ENV,
40
+ api: "openai-completions",
41
+ baseURL: BASE_URL,
42
+ compat: Object.freeze({
43
+ thinkingFormat: "qwen",
44
+ supportsReasoningEffort: false,
45
+ }),
46
+ reasoning: DEFAULT_REASONING,
47
+ models: MODELS,
48
+ });
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@knyazevai/dsh",
3
+ "version": "0.1.0",
4
+ "description": "DeepSeek Harness plugin: Knyazev AI models with thinking and effort",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/knyazev741/knyazevai-dsh.git"
10
+ },
11
+ "homepage": "https://knyazevai.work/docs",
12
+ "bugs": {
13
+ "url": "https://git.knyazevai.work/knyaz/knyazevai-dsh/issues"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "files": [
19
+ "cordis.patch.yml",
20
+ "lib",
21
+ "README.md"
22
+ ],
23
+ "exports": {
24
+ ".": "./lib/provider.js",
25
+ "./cordis.patch.yml": "./cordis.patch.yml",
26
+ "./package.json": "./package.json"
27
+ },
28
+ "dsh": {
29
+ "bundle": {
30
+ "patch": "./cordis.patch.yml"
31
+ }
32
+ },
33
+ "scripts": {
34
+ "test": "node --test test/*.test.js",
35
+ "prepublishOnly": "npm test"
36
+ },
37
+ "keywords": [
38
+ "dsh",
39
+ "deepseek-harness",
40
+ "knyazevai",
41
+ "plugin"
42
+ ]
43
+ }