@yadsh/dsh-sleev 0.0.1
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 +22 -0
- package/README.md +129 -0
- package/README.zh-CN.md +129 -0
- package/cordis.patch.yml +4 -0
- package/docs/compatibility.md +49 -0
- package/docs/development.md +76 -0
- package/docs/sample-settings.yml +34 -0
- package/lib/client.js +504 -0
- package/lib/host/optimizer/sleev/headers.js +44 -0
- package/lib/index.js +241 -0
- package/lib/shared/telemetry.js +1 -0
- package/lib/types/client/index.d.ts +17 -0
- package/lib/types/client/settings-controller.d.ts +59 -0
- package/lib/types/host/optimizer/sleev/headers.d.ts +29 -0
- package/lib/types/host/request-classifier.d.ts +5 -0
- package/lib/types/host/stream-observer.d.ts +15 -0
- package/lib/types/host/telemetry-store.d.ts +34 -0
- package/lib/types/host/usage.d.ts +7 -0
- package/lib/types/index.d.ts +29 -0
- package/lib/types/shared/config.d.ts +26 -0
- package/lib/types/shared/settings.d.ts +3 -0
- package/lib/types/shared/telemetry.d.ts +40 -0
- package/package.json +124 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-sleev contributors
|
|
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.
|
|
22
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# dsh-sleev
|
|
2
|
+
|
|
3
|
+
[](https://github.com/xarleyn/dsh-plugins/actions/workflows/ci.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/@yadsh/dsh-sleev)
|
|
5
|
+
[](https://www.npmjs.com/package/@yadsh/dsh-sleev)
|
|
6
|
+
[](package.json)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
9
|
+
Sleev routing observability for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness).
|
|
10
|
+
|
|
11
|
+
`dsh-sleev` observes provider routes that pass through the external Sleev context-optimization gateway. The current observer does not rewrite prompts, implement compaction, or route traffic itself: routing remains a normal `@deepseek-ai/dsh-llm-pi-ai` provider configuration.
|
|
12
|
+
|
|
13
|
+
[简体中文](README.zh-CN.md) · [Specification](dsh-sleev-spec-v0.1.md) · [Development guide](docs/development.md) · [Compatibility notes](docs/compatibility.md)
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
Install the published npm package by name:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
dsh plugin --profile web add @yadsh/dsh-sleev
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
To remove the plugin:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
dsh plugin --profile web remove @yadsh/dsh-sleev
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Restart the DeepSeek Harness host if bundle hot reload does not pick up the newly installed plugin or browser client.
|
|
30
|
+
|
|
31
|
+
## What works now
|
|
32
|
+
|
|
33
|
+
- exact route and prefix matching, with `sleev-` as the default prefix;
|
|
34
|
+
- classification of agent, compaction, session-title, and one-shot calls;
|
|
35
|
+
- pass-through streaming that yields every chunk unchanged;
|
|
36
|
+
- provider usage and effective input-token accounting;
|
|
37
|
+
- bounded, secret-free in-memory call history;
|
|
38
|
+
- one structured completion record per observed call;
|
|
39
|
+
- live observer matching, retention, and logging settings in the Web UI.
|
|
40
|
+
|
|
41
|
+
The observer never stores prompts, request headers, credentials, or secret values. Direct routes that do not match the configured Sleev aliases remain unobserved.
|
|
42
|
+
|
|
43
|
+
## Settings UI
|
|
44
|
+
|
|
45
|
+
Open **Settings → Plugins → Plugin Configuration → Sleev** to edit:
|
|
46
|
+
|
|
47
|
+
- exact observed provider aliases;
|
|
48
|
+
- observed provider-name prefixes;
|
|
49
|
+
- the recent-call history limit;
|
|
50
|
+
- structured telemetry logging at `off`, `info`, or `debug`.
|
|
51
|
+
|
|
52
|
+
Edits are staged until **Save**. The card marks unsaved changes and lets each overridden field be reset to its composition default. Saved values apply to the next matching call without a host restart.
|
|
53
|
+
|
|
54
|
+
These settings decide what the plugin observes. Model endpoints and Sleev routing headers still belong under `llm-pi-ai.providers` in DSH model settings.
|
|
55
|
+
|
|
56
|
+
## Configure a Sleev route
|
|
57
|
+
|
|
58
|
+
Merge a provider route into `$DSH_HOME/settings.yaml` under `llm-pi-ai.providers`. DSH resolves the credential reference; never place a literal API key in the route configuration.
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
llm-pi-ai:
|
|
62
|
+
providers:
|
|
63
|
+
sleev-neuraldeep:
|
|
64
|
+
displayName: Sleev / neuraldeep
|
|
65
|
+
apiKeyEnv: NEURALDEEP_API_KEY
|
|
66
|
+
api: openai-completions
|
|
67
|
+
baseURL: http://127.0.0.1:17321/v1
|
|
68
|
+
headers:
|
|
69
|
+
sleev-base-url: https://api.neuraldeep.ru/v1
|
|
70
|
+
sleev-harness: pi
|
|
71
|
+
models:
|
|
72
|
+
- id: gpt-oss-20b
|
|
73
|
+
name: GPT OSS 20B via Sleev
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Use `sleev-provider` instead of `sleev-base-url` for a provider known to Sleev; do not combine the two headers on one route. The [sample settings](docs/sample-settings.yml) show both forms.
|
|
77
|
+
|
|
78
|
+
Sleev does not currently document a native DeepSeek Harness identifier. The sample's `sleev-harness: pi` is an explicit experimental compatibility choice, not a promise of first-party support.
|
|
79
|
+
|
|
80
|
+
## Compatibility
|
|
81
|
+
|
|
82
|
+
The complete DSH → llm-pi-ai → Sleev → NeuralDeep streaming path has passed ordinary completion, usage, tool-call, and tool-result checks with DeepSeek Harness `0.1.1-rc.2`, Sleev `1.7.7`, and NeuralDeep `gpt-oss-20b`.
|
|
83
|
+
|
|
84
|
+
This establishes transport compatibility, not token savings. The small validation prompt exposed Sleev's fixed instruction overhead; a long, tool-heavy session is still required for a meaningful compression benchmark. See the [compatibility notes](docs/compatibility.md) for the exact evidence.
|
|
85
|
+
|
|
86
|
+
## Requirements
|
|
87
|
+
|
|
88
|
+
- Node.js `^22.19.0` or `>=24.0.0`
|
|
89
|
+
- pnpm 10.4.1 for development
|
|
90
|
+
- DeepSeek Harness `>=0.1.1-rc.2 <0.2.0`
|
|
91
|
+
- Cordis `^4.0.1`
|
|
92
|
+
- a configured and running Sleev gateway for routed model calls
|
|
93
|
+
|
|
94
|
+
## Development
|
|
95
|
+
|
|
96
|
+
From the monorepo root:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
pnpm install --frozen-lockfile
|
|
100
|
+
pnpm --filter @yadsh/dsh-sleev check
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Build and link the checkout into a Web profile:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
pnpm --filter @yadsh/dsh-sleev build
|
|
107
|
+
dsh plugin --profile web add ./plugins/dsh-sleev
|
|
108
|
+
dsh --profile web --dump-config
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Run the account-backed NeuralDeep smoke separately when credentials and the local gateway are available:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
pnpm --filter @yadsh/dsh-sleev smoke:neuraldeep
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
The live provider smoke is intentionally excluded from required CI because it depends on credentials, a local gateway, and an external provider.
|
|
118
|
+
|
|
119
|
+
## Releases
|
|
120
|
+
|
|
121
|
+
This package uses independent Nx Version Plans from the monorepo. Add a plan with `pnpm release:plan`; maintainers publish verified tarballs through the shared [release workflow](../../docs/RELEASING.md).
|
|
122
|
+
|
|
123
|
+
## Contributing
|
|
124
|
+
|
|
125
|
+
Issues and focused pull requests are welcome. Read the monorepo [contribution guide](../../CONTRIBUTING.md) and run the package check before submitting a change.
|
|
126
|
+
|
|
127
|
+
## License
|
|
128
|
+
|
|
129
|
+
[MIT](LICENSE). This is an independent community project and is not affiliated with or endorsed by DeepSeek.
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# dsh-sleev
|
|
2
|
+
|
|
3
|
+
[](https://github.com/xarleyn/dsh-plugins/actions/workflows/ci.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/@yadsh/dsh-sleev)
|
|
5
|
+
[](https://www.npmjs.com/package/@yadsh/dsh-sleev)
|
|
6
|
+
[](package.json)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
9
|
+
为 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 提供 Sleev 路由可观测能力。
|
|
10
|
+
|
|
11
|
+
`dsh-sleev` 用于观测经由外部 Sleev 上下文优化网关的提供商路由。当前观测器不会改写提示词、实现压缩或自行路由流量;路由仍由普通的 `@deepseek-ai/dsh-llm-pi-ai` 提供商配置负责。
|
|
12
|
+
|
|
13
|
+
[English](README.md) · [规范](dsh-sleev-spec-v0.1.md) · [开发指南](docs/development.md) · [兼容性说明](docs/compatibility.md)
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
按名称安装已发布的 npm 包:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
dsh plugin --profile web add @yadsh/dsh-sleev
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
卸载插件:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
dsh plugin --profile web remove @yadsh/dsh-sleev
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
如果 bundle 热更新没有加载新安装的插件或 browser client,请重启 DeepSeek Harness Host。
|
|
30
|
+
|
|
31
|
+
## 当前功能
|
|
32
|
+
|
|
33
|
+
- 精确匹配路由及路由前缀,默认前缀为 `sleev-`;
|
|
34
|
+
- 区分 agent、压缩、会话标题和一次性调用;
|
|
35
|
+
- 原样转发每一个流式数据块;
|
|
36
|
+
- 记录提供商 usage 和有效输入 token 数量;
|
|
37
|
+
- 在内存中保留有界且不含敏感信息的调用历史;
|
|
38
|
+
- 为每次完成的观测调用输出一条结构化记录;
|
|
39
|
+
- 在 Web UI 中实时配置匹配、保留数量和日志级别。
|
|
40
|
+
|
|
41
|
+
观测器不会存储提示词、请求 header、凭据或密钥。未匹配已配置 Sleev 别名的直连路由不会被观测。
|
|
42
|
+
|
|
43
|
+
## 设置界面
|
|
44
|
+
|
|
45
|
+
打开 **设置 → 插件 → 插件配置 → Sleev**,可以编辑:
|
|
46
|
+
|
|
47
|
+
- 精确观测的提供商别名;
|
|
48
|
+
- 观测的提供商名称前缀;
|
|
49
|
+
- 最近调用历史的数量上限;
|
|
50
|
+
- `off`、`info` 或 `debug` 级别的结构化遥测日志。
|
|
51
|
+
|
|
52
|
+
修改会暂存到点击**保存**时才写入。卡片会标记未保存的修改,并允许每个已覆盖字段单独恢复 composition 默认值。保存后的值从下一次匹配调用开始生效,无需重启 Host。
|
|
53
|
+
|
|
54
|
+
这些设置只决定插件观测哪些请求。模型 endpoint 和 Sleev routing header 仍在 DSH model settings 的 `llm-pi-ai.providers` 下配置。
|
|
55
|
+
|
|
56
|
+
## 配置 Sleev 路由
|
|
57
|
+
|
|
58
|
+
将提供商配置合并到 `$DSH_HOME/settings.yaml` 的 `llm-pi-ai.providers` 下。凭据引用由 DSH 解析;不要在路由配置中直接填写 API key。
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
llm-pi-ai:
|
|
62
|
+
providers:
|
|
63
|
+
sleev-neuraldeep:
|
|
64
|
+
displayName: Sleev / neuraldeep
|
|
65
|
+
apiKeyEnv: NEURALDEEP_API_KEY
|
|
66
|
+
api: openai-completions
|
|
67
|
+
baseURL: http://127.0.0.1:17321/v1
|
|
68
|
+
headers:
|
|
69
|
+
sleev-base-url: https://api.neuraldeep.ru/v1
|
|
70
|
+
sleev-harness: pi
|
|
71
|
+
models:
|
|
72
|
+
- id: gpt-oss-20b
|
|
73
|
+
name: GPT OSS 20B via Sleev
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
对于 Sleev 已知的提供商,可使用 `sleev-provider` 代替 `sleev-base-url`;同一路由中不要同时设置两者。[示例设置](docs/sample-settings.yml)展示了这两种形式。
|
|
77
|
+
|
|
78
|
+
Sleev 目前没有记录原生 DeepSeek Harness 标识符。示例中的 `sleev-harness: pi` 是明确的实验性兼容选择,并不代表官方一等支持。
|
|
79
|
+
|
|
80
|
+
## 兼容性
|
|
81
|
+
|
|
82
|
+
完整的 DSH → llm-pi-ai → Sleev → NeuralDeep 流式链路已使用 DeepSeek Harness `0.1.1-rc.2`、Sleev `1.7.7` 和 NeuralDeep `gpt-oss-20b` 通过普通 completion、usage、工具调用和工具结果检查。
|
|
83
|
+
|
|
84
|
+
这证明了传输兼容性,而不是 token 节省效果。小型验证提示词会暴露 Sleev 的固定指令开销;要得到有意义的压缩基准,仍需使用较长且工具密集型的会话。确切证据见[兼容性说明](docs/compatibility.md)。
|
|
85
|
+
|
|
86
|
+
## 要求
|
|
87
|
+
|
|
88
|
+
- Node.js `^22.19.0` 或 `>=24.0.0`
|
|
89
|
+
- pnpm 10.4.1(开发环境)
|
|
90
|
+
- DeepSeek Harness `>=0.1.1-rc.2 <0.2.0`
|
|
91
|
+
- Cordis `^4.0.1`
|
|
92
|
+
- 进行路由模型调用时,需要已配置并运行的 Sleev 网关
|
|
93
|
+
|
|
94
|
+
## 开发
|
|
95
|
+
|
|
96
|
+
在 monorepo 根目录运行:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
pnpm install --frozen-lockfile
|
|
100
|
+
pnpm --filter @yadsh/dsh-sleev check
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
构建并将 checkout 链接到 Web profile:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
pnpm --filter @yadsh/dsh-sleev build
|
|
107
|
+
dsh plugin --profile web add ./plugins/dsh-sleev
|
|
108
|
+
dsh --profile web --dump-config
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
当凭据和本地网关可用时,可以单独运行需要账户的 NeuralDeep smoke:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
pnpm --filter @yadsh/dsh-sleev smoke:neuraldeep
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
真实 provider smoke 依赖凭据、本地网关和外部提供商,因此不会作为必需 CI 检查运行。
|
|
118
|
+
|
|
119
|
+
## 发布
|
|
120
|
+
|
|
121
|
+
该包使用 monorepo 的独立 Nx Version Plans。通过 `pnpm release:plan` 添加计划;维护者通过共享的[发布流程](../../docs/RELEASING.md)发布已验证的 tarball。
|
|
122
|
+
|
|
123
|
+
## 贡献
|
|
124
|
+
|
|
125
|
+
欢迎提交 issue 和范围明确的 pull request。提交前请阅读 monorepo 的[贡献指南](../../CONTRIBUTING.md)并运行 package check。
|
|
126
|
+
|
|
127
|
+
## 许可证
|
|
128
|
+
|
|
129
|
+
[MIT](LICENSE)。这是一个独立的社区项目,与 DeepSeek 无隶属关系,也未获得其官方认可。
|
package/cordis.patch.yml
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Compatibility matrix
|
|
2
|
+
|
|
3
|
+
Last verified: 2026-08-27.
|
|
4
|
+
|
|
5
|
+
| Component | Version / route | Result |
|
|
6
|
+
| ------------------- | --------------------------------------- | ------------------------------------------- |
|
|
7
|
+
| DeepSeek Harness | `0.1.1-rc.2` | supported |
|
|
8
|
+
| Cordis | `4.0.1` | supported |
|
|
9
|
+
| Sleev CLI + gateway | `1.7.7` | healthy |
|
|
10
|
+
| DSH adapter | `@deepseek-ai/dsh-llm-pi-ai@0.1.1-rc.2` | supported |
|
|
11
|
+
| Web settings | DSH plugin configuration surface | client bundle and `sleev` namespace served |
|
|
12
|
+
| Sleev harness id | `pi` | works; still not a documented native DSH id |
|
|
13
|
+
| Upstream | NeuralDeep / `gpt-oss-20b` | compatibility smoke passed |
|
|
14
|
+
|
|
15
|
+
## Verified wire behavior
|
|
16
|
+
|
|
17
|
+
The reproducible `pnpm smoke:neuraldeep` test passed through the complete path:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
DSH LlmRuntime
|
|
21
|
+
-> llm-pi-ai (openai-completions)
|
|
22
|
+
-> Sleev 127.0.0.1:17321
|
|
23
|
+
-> https://api.neuraldeep.ru/v1
|
|
24
|
+
-> streamed DSH chunks
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Verified on the route `sleev-neuraldeep`:
|
|
28
|
+
|
|
29
|
+
- ordinary text streaming completed;
|
|
30
|
+
- provider usage survived the gateway;
|
|
31
|
+
- a streamed tool call retained its name and JSON arguments;
|
|
32
|
+
- a follow-up containing the assistant tool call and user tool result completed;
|
|
33
|
+
- the observer recorded each gateway attempt independently;
|
|
34
|
+
- a direct NeuralDeep route coexisted with the Sleev alias.
|
|
35
|
+
|
|
36
|
+
The final successful A/B run reported 65 effective provider-input tokens for
|
|
37
|
+
the direct short prompt and 1,400 for the same prompt through Sleev. The Sleev
|
|
38
|
+
tool call used 1,431 and its tool-result continuation used 1,546. This is
|
|
39
|
+
expected to be an unfavorable comparison for a tiny prompt: it exposes the
|
|
40
|
+
gateway's fixed optimization instructions before there is stale history to
|
|
41
|
+
reclaim. It is transport evidence, not a savings benchmark.
|
|
42
|
+
|
|
43
|
+
An earlier tool-result attempt failed transiently at NeuralDeep and the next
|
|
44
|
+
attempt completed; the observer retained both attempts. The final A/B run then
|
|
45
|
+
completed without a retry and recorded exactly the three Sleev calls, excluding
|
|
46
|
+
the direct control request.
|
|
47
|
+
|
|
48
|
+
These short prompts establish transport compatibility, not context reduction.
|
|
49
|
+
A long tool-heavy session is still required to measure Sleev compression.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Development and local smoke testing
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
- Node.js 22.19+ or 24+
|
|
6
|
+
- pnpm 11
|
|
7
|
+
- DeepSeek Harness 0.1.1-rc.2
|
|
8
|
+
- Sleev CLI 1.7.7 for a real gateway test
|
|
9
|
+
|
|
10
|
+
Install and verify Sleev without starting an account flow:
|
|
11
|
+
|
|
12
|
+
```powershell
|
|
13
|
+
npm install --global sleev@1.7.7
|
|
14
|
+
sleev --version
|
|
15
|
+
sleev gateway status
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Account and machine setup are interactive and deliberately remain a user
|
|
19
|
+
action:
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
sleev auth login
|
|
23
|
+
sleev setup
|
|
24
|
+
sleev gateway status
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The default local gateway address is `http://127.0.0.1:17321`; an
|
|
28
|
+
OpenAI-compatible DSH route uses `http://127.0.0.1:17321/v1` as its base URL.
|
|
29
|
+
|
|
30
|
+
## DSH profile
|
|
31
|
+
|
|
32
|
+
Build before adding or restarting the profile:
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
pnpm check
|
|
36
|
+
dsh plugin --profile web add /absolute/path/to/dsh-sleev
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The current DSH web bundle disables shared-module HMR. Changes to this package
|
|
40
|
+
therefore require a host restart, especially after adding or changing the
|
|
41
|
+
package's `dsh.client` manifest. Changes under the `llm-pi-ai` section of
|
|
42
|
+
`$DSH_HOME/settings.yaml` are independently hot-reloaded by DSH settings.
|
|
43
|
+
|
|
44
|
+
After restarting, open **Settings → Plugins → Plugin configuration → Sleev**.
|
|
45
|
+
The card edits the `sleev` namespace in `$DSH_HOME/settings.yaml`: exact routes,
|
|
46
|
+
route prefixes, recent-call retention, and logging level. Values are staged
|
|
47
|
+
until Save and then read through by the Host on the next matching request. The
|
|
48
|
+
card does not edit `llm-pi-ai` provider endpoints or Sleev routing headers.
|
|
49
|
+
|
|
50
|
+
## Compatibility caveat
|
|
51
|
+
|
|
52
|
+
Sleev currently documents harness ids for several first-party integrations but
|
|
53
|
+
not DeepSeek Harness. The sample uses `sleev-harness: pi` because the supported
|
|
54
|
+
DSH adapter is `llm-pi-ai`; treat it as an experimental compatibility value.
|
|
55
|
+
Keep it easy to override, and verify tools, streaming, and usage on every Sleev
|
|
56
|
+
upgrade until Sleev publishes a native DSH identifier.
|
|
57
|
+
|
|
58
|
+
Only record a version pair as compatible after a configured account passes a
|
|
59
|
+
real request with tools and a provider `usage` chunk; the matrix records the
|
|
60
|
+
first version pair that met that bar.
|
|
61
|
+
|
|
62
|
+
## NeuralDeep compatibility smoke
|
|
63
|
+
|
|
64
|
+
With `NEURALDEEP_API_KEY` available in the environment, run:
|
|
65
|
+
|
|
66
|
+
```powershell
|
|
67
|
+
pnpm smoke:neuraldeep
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
The script compares a direct and Sleev-routed short prompt, then performs a
|
|
71
|
+
tool-call and tool-result continuation through Sleev. It requires provider
|
|
72
|
+
usage on every successful call and exits non-zero if stream/tool semantics are
|
|
73
|
+
lost. Normalized provider errors are retried up to three times because the free
|
|
74
|
+
NeuralDeep route can be transiently unavailable.
|
|
75
|
+
|
|
76
|
+
The first verified run is recorded in [compatibility.md](compatibility.md).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Merge one of these profiles into $DSH_HOME/settings.yaml under llm-pi-ai.
|
|
2
|
+
# The credential reference is resolved by DSH; never put the literal key here.
|
|
3
|
+
llm-pi-ai:
|
|
4
|
+
providers:
|
|
5
|
+
# A provider recognized by Sleev.
|
|
6
|
+
sleev-openai:
|
|
7
|
+
displayName: Sleev / OpenAI
|
|
8
|
+
apiKeyEnv: OPENAI_API_KEY
|
|
9
|
+
api: openai-completions
|
|
10
|
+
baseURL: http://127.0.0.1:17321/v1
|
|
11
|
+
headers:
|
|
12
|
+
sleev-provider: openai
|
|
13
|
+
# Experimental: Sleev has no documented DeepSeek Harness id yet.
|
|
14
|
+
# DSH currently sends this route through llm-pi-ai.
|
|
15
|
+
sleev-harness: pi
|
|
16
|
+
models:
|
|
17
|
+
- id: replace-with-upstream-model-id
|
|
18
|
+
name: Replace with upstream model
|
|
19
|
+
contextWindow: 128000
|
|
20
|
+
maxTokens: 16384
|
|
21
|
+
|
|
22
|
+
# Verified custom OpenAI-compatible upstream. Do not combine
|
|
23
|
+
# sleev-provider and sleev-base-url on the same route.
|
|
24
|
+
sleev-neuraldeep:
|
|
25
|
+
displayName: Sleev / neuraldeep
|
|
26
|
+
apiKeyEnv: NEURALDEEP_API_KEY
|
|
27
|
+
api: openai-completions
|
|
28
|
+
baseURL: http://127.0.0.1:17321/v1
|
|
29
|
+
headers:
|
|
30
|
+
sleev-base-url: https://api.neuraldeep.ru/v1
|
|
31
|
+
sleev-harness: pi
|
|
32
|
+
models:
|
|
33
|
+
- id: gpt-oss-20b
|
|
34
|
+
name: GPT OSS 20B via Sleev
|