@knyazevai/dsh 0.1.1 → 0.1.2

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 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 уже выбран — в 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
- 1. Открой Harness → Models → **Knyazev AI**.
35
- 2. Вставь ключ `kn_live_…` из [кабинета](https://knyazevai.work).
36
- 3. Выбери `deepseek-v4-flash`. Effort по умолчанию — `high`. Пикер: Off / High / Max.
32
+ Новые сессии сразу идут на **Knyazev AI / DeepSeek V4 Flash** (effort `high`). 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
- Не копируй YAML руками и не дублируй провайдер в `settings.yaml`. Пакет кладёт маршрут в composition; ключ живёт в credentials.
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
- Дефолтную модель всего Harness пакет не меняет.
75
+ Дефолт Harness после установки: `knyazev-ai` / `deepseek-v4-flash`. Сабагенты (`subagent`, `subagent_fork`) на том же маршруте.
53
76
 
54
77
  ## Обновление / снятие
55
78
 
package/cordis.patch.yml CHANGED
@@ -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,6 +3,7 @@
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 DEFAULT_MODEL_ID = "deepseek-v4-flash";
6
7
  export const DEFAULT_REASONING = "high";
7
8
 
8
9
  export const REASONING_EFFORTS = Object.freeze({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knyazevai/dsh",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "DeepSeek Harness plugin: Knyazev AI models with thinking and effort",
5
5
  "type": "module",
6
6
  "license": "MIT",