@knyazevai/dsh 0.1.1 → 0.1.3
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/README.md +31 -8
- package/cordis.patch.yml +29 -1
- package/lib/provider.js +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
# @knyazevai/dsh
|
|
2
2
|
|
|
3
|
-
Плагин [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): провайдер **Knyazev AI**, модели Flash / Kimi / MiniMax, thinking и effort `off / high / max
|
|
4
|
-
|
|
5
|
-
Ключ в пакет не входит. Его нужно вставить в Models после установки.
|
|
3
|
+
Плагин [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): провайдер **Knyazev AI**, модели Flash / Kimi / MiniMax, thinking и effort `off / high / max`. После установки выбран **Flash max** — в Models остаётся только ключ.
|
|
6
4
|
|
|
7
5
|
## Установка
|
|
8
6
|
|
|
@@ -31,11 +29,36 @@ npx @deepseek-ai/dsh plugin --profile web add -w .
|
|
|
31
29
|
|
|
32
30
|
## После установки
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
Новые сессии сразу идут на **Knyazev AI / DeepSeek V4 Flash** с effort **max**. Kimi и MiniMax уже в пикере, сабагенты на том же маршруте.
|
|
33
|
+
|
|
34
|
+
Ключ в пакет не входит. Если `KNYAZEV_AI_API_KEY` ещё не в окружении — открой Harness → Models → **Knyazev AI** и вставь `kn_live_…` из [кабинета](https://knyazevai.work). Модели выбирать не нужно.
|
|
35
|
+
|
|
36
|
+
Не копируй YAML руками и не дублируй провайдер в `settings.yaml`. Пакет кладёт маршрут и дефолт в composition; ключ живёт в credentials. Сохранённый выбор в `settings.yaml` по-прежнему перекрывает composition.
|
|
37
|
+
|
|
38
|
+
## Полная сборка с фиксом компактинга
|
|
39
|
+
|
|
40
|
+
Обычная установка по имени использует официальный релиз DeepSeek Harness, в котором bounded-компактинг для огромных контекстов (400k) ещё не вышел. Если он нужен (большие сессии сжимаются по кусочкам, а не падают по `pi-ai stream idle timeout`) — запусти харнесс из форка с этим фиксом + плагин:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
git clone https://github.com/knyazev741/deepseek-harness
|
|
44
|
+
cd deepseek-harness
|
|
45
|
+
pnpm install
|
|
46
|
+
pnpm run build
|
|
47
|
+
pnpm dsh plugin --profile web add @knyazevai/dsh
|
|
48
|
+
pnpm dsh web
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Фикс `maxSummarizationInputTokens` — код харнесса, он есть только в этой сборке; плагин несёт его конфиг (только для `knyazev-ai`).
|
|
52
|
+
|
|
53
|
+
**Как форк держится свежим по upstream (автоматически, с AI-ревью).** В форке есть два воркфлоу:
|
|
54
|
+
- `upstream-sync.yml` — раз в час тянет официальный `deepseek-ai/deepseek-harness` master в ветку-ПР `sync/upstream-master` (конфликты решаются в пользу форка);
|
|
55
|
+
- `upstream-review.yml` — на каждом таком ПР гоняет sanity-гейты (typecheck + тесты) и прогоняет многоходовой headless-агент Knyazev (`knyazev-ai/deepseek-v4-flash`), который ревьюит дифф и отдаёт вердикт `{safe, summary, risks}`. Авто-мёрж ПР делается **только при вердикте safe**; risky остаётся человеку. Никогда ничего не деплоит.
|
|
56
|
+
|
|
57
|
+
Для ревью в настройках репозитория форка нужен секрет `KNYAZEV_AI_API_KEY` (тот же ключ маршрута knyazev-ai).
|
|
58
|
+
|
|
59
|
+
Для человека обновление сводится к `git pull` в клоне + `pnpm install && pnpm run build` — сами изменения upstream уже засинканы и отревьюены на стороне форка.
|
|
37
60
|
|
|
38
|
-
|
|
61
|
+
Пока этот фикс не в официальном релизе, обычная установка по имени compaction-фикса не даёт — только запуск из форка.
|
|
39
62
|
|
|
40
63
|
## Что ставится
|
|
41
64
|
|
|
@@ -49,7 +72,7 @@ npx @deepseek-ai/dsh plugin --profile web add -w .
|
|
|
49
72
|
|
|
50
73
|
MiniMax без пикера effort: модель не отдаёт reasoning отдельным полем.
|
|
51
74
|
|
|
52
|
-
|
|
75
|
+
Дефолт Harness после установки: `knyazev-ai` / `deepseek-v4-flash`, effort `max`. Сабагенты (`subagent`, `subagent_fork`) на том же маршруте.
|
|
53
76
|
|
|
54
77
|
## Обновление / снятие
|
|
55
78
|
|
package/cordis.patch.yml
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
compat:
|
|
26
26
|
thinkingFormat: qwen
|
|
27
27
|
supportsReasoningEffort: false
|
|
28
|
-
reasoning:
|
|
28
|
+
reasoning: max
|
|
29
29
|
models:
|
|
30
30
|
- id: deepseek-v4-flash
|
|
31
31
|
name: DeepSeek V4 Flash
|
|
@@ -48,6 +48,34 @@
|
|
|
48
48
|
contextWindow: 204800
|
|
49
49
|
maxTokens: 40000
|
|
50
50
|
|
|
51
|
+
# New sessions start on Knyazev Flash. Patch config replaces the whole row,
|
|
52
|
+
# so this is the composition default after install. A later picker choice
|
|
53
|
+
# still writes settings.yaml and wins over this layer.
|
|
54
|
+
- id: agent-default-model
|
|
55
|
+
config:
|
|
56
|
+
provider: knyazev-ai
|
|
57
|
+
model: deepseek-v4-flash
|
|
58
|
+
|
|
59
|
+
# Spawned and forked children inherit the same route. Patch config replaces
|
|
60
|
+
# the whole row, so the bundle's original fields are restated here.
|
|
61
|
+
- id: tool-subagent
|
|
62
|
+
config:
|
|
63
|
+
provider: spawn
|
|
64
|
+
toolName: subagent
|
|
65
|
+
backgroundMode: continuable
|
|
66
|
+
agentOptions:
|
|
67
|
+
provider: knyazev-ai
|
|
68
|
+
model: deepseek-v4-flash
|
|
69
|
+
|
|
70
|
+
- id: tool-subagent-fork
|
|
71
|
+
config:
|
|
72
|
+
provider: fork
|
|
73
|
+
toolName: subagent_fork
|
|
74
|
+
backgroundMode: one-shot
|
|
75
|
+
agentOptions:
|
|
76
|
+
provider: knyazev-ai
|
|
77
|
+
model: deepseek-v4-flash
|
|
78
|
+
|
|
51
79
|
# Compaction policy for huge Knyazev contexts. The harness code fix behind
|
|
52
80
|
# maxSummarizationInputTokens lives in dsh-compaction-basic (harness commit
|
|
53
81
|
# 078d3db591) and ships only with a harness build that contains it; this layer
|
package/lib/provider.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
export const PROVIDER_ID = "knyazev-ai";
|
|
4
4
|
export const API_KEY_ENV = "KNYAZEV_AI_API_KEY";
|
|
5
5
|
export const BASE_URL = "https://knyazevai.work/v1";
|
|
6
|
-
export const
|
|
6
|
+
export const DEFAULT_MODEL_ID = "deepseek-v4-flash";
|
|
7
|
+
export const DEFAULT_REASONING = "max";
|
|
7
8
|
|
|
8
9
|
export const REASONING_EFFORTS = Object.freeze({
|
|
9
10
|
off: null,
|