@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 +21 -0
- package/README.md +92 -0
- package/cordis.patch.yml +37 -0
- package/lib/provider.js +48 -0
- package/package.json +43 -0
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
|
package/cordis.patch.yml
ADDED
|
@@ -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
|
package/lib/provider.js
ADDED
|
@@ -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
|
+
}
|