dsh-yolo-mode 0.5.1 → 0.5.2-beta.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/CHANGELOG.md +51 -0
- package/README.md +2 -2
- package/lib/index.js +21 -29
- package/lib/remote.js +7 -6
- package/lib/settings.js +66 -38
- package/package.json +12 -11
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,57 @@
|
|
|
2
2
|
|
|
3
3
|
本项目遵循 [Semantic Versioning](https://semver.org/)。
|
|
4
4
|
|
|
5
|
+
## [0.5.2-beta.0] - 2026-09-24
|
|
6
|
+
|
|
7
|
+
### Beta(DSH 0.1.7-rc.1 适配,测试版)
|
|
8
|
+
|
|
9
|
+
- 本分支(`dev-0.1.7.rc1`,尚未合并 `main`)相对 `main` 的适配改动:设置子系统按
|
|
10
|
+
0.1.7 的 `SettingsForms` 新模型重写(`lib/settings.js` / `lib/index.js` /
|
|
11
|
+
`lib/remote.js`),`@deepseek-ai/dsh-llm`、`dsh-timeout`、`dsh-settings`、
|
|
12
|
+
`dsh-client-connection`、`dsh-client-ui-slots`、`dsh-client-locale` 的 peer 范围升至
|
|
13
|
+
`^0.1.7-rc.1`,`dsh.compatibility.dshReleases` 新增 `"0.1.7-rc.1": "compatible"`,
|
|
14
|
+
README 徽章与兼容性说明同步。详见下方 `0.5.2` 条目。
|
|
15
|
+
- 发布为 npm 测试版(`--tag beta`);`latest` 保持不变。正式版 `0.5.2` 待 `main` 合并后发布。
|
|
16
|
+
|
|
17
|
+
## [0.5.2] - 2026-09-24
|
|
18
|
+
|
|
19
|
+
### 兼容:设置子系统迁移至 DSH 0.1.7-rc.1 的 `SettingsForms`
|
|
20
|
+
|
|
21
|
+
DSH 0.1.7 移除了 `@deepseek-ai/dsh-settings` 的 `SettingsProvider.installSection`
|
|
22
|
+
(默认导出改为 `SettingsForms`),本插件原设置子系统因此在新版抛
|
|
23
|
+
`TypeError: settings.installSection is not a function` 而无法激活。本次按官方新模型重写:
|
|
24
|
+
|
|
25
|
+
- **设置声明 → 插件 Config schema**(`lib/settings.js` 的 `YoloSettingsSchema`,
|
|
26
|
+
经 `lib/index.js` 的 `export const Config` 暴露):每个顶层字段标注
|
|
27
|
+
`.volatile()`,声明为可热更——写回经 loader 的就地更新,插件无需重启即可生效
|
|
28
|
+
(与旧模型「只改某些字段不重启」行为一致)。
|
|
29
|
+
- **设置读取 → `config.<field>.get()`**(`readYoloConfig`):`effectiveConfig()`
|
|
30
|
+
每次裁决读取实时解析值(schema 默认 + 条目 config),再 `normalizeConfig`。
|
|
31
|
+
- **页面策略 → `settings.configure({ auto: false }, fiber)`**
|
|
32
|
+
(`installYoloSettingsPage`):插件自带 Web 设置页,`auto:false` 禁止宿主再自动
|
|
33
|
+
生成重复页面;settings 服务缺失时零侵入跳过。
|
|
34
|
+
- **自发布设置桥与客户端不变**:`lib/remote.js` 的 `settingsView` / `settingsMutate`
|
|
35
|
+
端点本就建立在 `describe` / `mutate` / `writable` / `SettingsConflictError` 之上,
|
|
36
|
+
这些方法面在 `SettingsForms` 中保持不变,端点形状与乐观锁语义无需改动,客户端
|
|
37
|
+
无需改动。
|
|
38
|
+
- **双层 → 单层映射**:旧「插件行 config 为 base 层 + settings.yaml 用户层」映射为
|
|
39
|
+
0.1.7「Profile 插件条目 config 单层」;旧 `settings.yaml` 由
|
|
40
|
+
`SettingsForms.importLegacyDocument` 一次性导入到 Profile。
|
|
41
|
+
|
|
42
|
+
### 兼容性
|
|
43
|
+
|
|
44
|
+
- `peerDependencies` 的 `@deepseek-ai/dsh*` 下限提升至 `^0.1.7-rc.1`(`dsh-host-apiproxy`
|
|
45
|
+
/ `dsh-client-runtime` 两个历史例外保持 `^0.1.1-rc.2`)。
|
|
46
|
+
- `dsh.compatibility.dshReleases` 增列 `0.1.7-rc.1: compatible`。
|
|
47
|
+
- README 徽章与兼容性行同步至 0.1.7-rc.1。
|
|
48
|
+
|
|
49
|
+
### 测试
|
|
50
|
+
|
|
51
|
+
- `test/probe.test.mjs` 重写至 0.1.7 API:真实 cordis 经 Config schema 解析条目
|
|
52
|
+
config、断言 `configure({auto:false})` 被调用、并用 cosmokit `updateVolatile`
|
|
53
|
+
(loader `_commitVolatile` 的同一原语)验证 volatile 就地更新后裁决即时生效。
|
|
54
|
+
- 其余测试文件保持通过;`npm test` 132 项全绿。
|
|
55
|
+
|
|
5
56
|
## [0.5.1] - 2026-09-22
|
|
6
57
|
|
|
7
58
|
### 修复:裁判对推理型模型恒失败(Issue #1)
|
package/README.md
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/dsh-yolo-mode)
|
|
8
8
|
[](LICENSE)
|
|
9
|
-
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
10
10
|
[](https://awesome-dsh-plugin.com)
|
|
11
11
|
|
|
12
|
-
> **兼容性**:v0.5.
|
|
12
|
+
> **兼容性**:v0.5.2 支持 DSH **0.1.5-rc.1+**,已在 **0.1.5-rc.1 / 0.1.5-rc.2 / 0.1.6-alpha.2 / 0.1.7-rc.1** 实测(真实-Cordis 探针通过;设置子系统已迁移至 0.1.7 的 `SettingsForms`——插件 Config schema + volatile 热更 + 自建设置页)。旧版 DSH(0.1.0-rc.6 / rc.8)请使用最后兼容的 npm 版本 **0.4.1**。
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
package/lib/index.js
CHANGED
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* 抢在 dsh-host-apiproxy 的人工应答者之前介入,对沙箱升权申请(
|
|
6
6
|
* `escalate sandbox to <mode>: <justification>`)按预设策略自动裁决。
|
|
7
7
|
*
|
|
8
|
-
* v0.3.0 重做(design.md §12.3
|
|
8
|
+
* v0.3.0 重做(design.md §12.3);v0.5.2 迁移至 0.1.7 的 SettingsForms:
|
|
9
9
|
* - `inject: ['llm','settings']`,用 `ctx.llm` / `ctx.settings`;
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
10
|
+
* - 设置声明为本插件的 Config schema(`export const Config`,volatile 字段可热更),
|
|
11
|
+
* `effectiveConfig()` 每次裁决用 `config.<field>.get()` 读取实时值后 `normalizeConfig`;
|
|
12
|
+
* - 页面策略经 `installYoloSettingsPage`(`settings.configure({auto:false})`)注册;
|
|
12
13
|
* - `getJudge()` 按 judge 配置键缓存裁判实例(用 `ctx.llm`),键变化重建;
|
|
13
14
|
* - 审计统计写入 lib/state.js 模块级单例(bridge 条目已读);
|
|
14
15
|
* - **不再注册任何 webServer 路由**(由独立 lib/bridge-entry.js 承担)。
|
|
@@ -28,13 +29,17 @@ import {
|
|
|
28
29
|
ESCALATION_RE,
|
|
29
30
|
} from './policy.js';
|
|
30
31
|
import { createJudge, defaultJudgePromptFor } from './judge.js';
|
|
31
|
-
import {
|
|
32
|
+
import { YoloSettingsSchema, installYoloSettingsPage, readYoloConfig, pruneEmpty } from './settings.js';
|
|
32
33
|
import { recordDecision, sessionOrigin } from './state.js';
|
|
33
34
|
import { resolveAuditFile } from './audit.js';
|
|
34
35
|
|
|
35
36
|
export const name = 'dsh-yolo-mode';
|
|
36
37
|
|
|
37
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* 插件 Config schema(0.1.7 起即权威设置 schema;条目 id `yolo-mode` 即
|
|
40
|
+
* `describe()`/`mutate()` 的 ns)。cordis 从本导出读取并用其解析条目 config。
|
|
41
|
+
*/
|
|
42
|
+
export const Config = YoloSettingsSchema;
|
|
38
43
|
|
|
39
44
|
/** 反向扫描会话事件,取与 req.callId 匹配的 tool/call 实参摘要(1200 字符截断)。 */
|
|
40
45
|
function extractArgumentsSummary(req, session) {
|
|
@@ -76,35 +81,22 @@ export const inject = ['llm', 'settings'];
|
|
|
76
81
|
* @param {import('@deepseek-ai/cordis').Context} ctx
|
|
77
82
|
* @param {object} [rawConfig] 插件行 config(全字段可选)
|
|
78
83
|
*/
|
|
79
|
-
export function apply(ctx,
|
|
80
|
-
// 行配置通过(fail-loud):非法配置立即抛错 → 加载失败。
|
|
81
|
-
const rowCfg = rawConfig ?? {};
|
|
82
|
-
normalizeConfig(rowCfg);
|
|
83
|
-
|
|
84
|
+
export function apply(ctx, config) {
|
|
84
85
|
const logger = ctx.logger('yolo-mode');
|
|
85
86
|
|
|
86
|
-
|
|
87
|
-
// installSettingsSection 在 settings 服务存在时,把 resolved scope 设为 active 源;
|
|
88
|
-
// 服务缺失/卸载时回退到 `entry`(插件行 config)。
|
|
89
|
-
let sourceThunk = undefined;
|
|
90
|
-
installYoloSettings(ctx, rowCfg, {
|
|
91
|
-
setSource: (thunk) => {
|
|
92
|
-
sourceThunk = thunk;
|
|
93
|
-
},
|
|
94
|
-
onChange: () => {
|
|
95
|
-
// resolved 已由 setSource 的 thunk 覆盖;judge 缓存按键在 getJudge 中自愈。
|
|
96
|
-
},
|
|
97
|
-
validate: validateYoloSettings,
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
/** 每次裁决读取的有效配置(resolved settings;未就绪时插件行 config)后规范化。 */
|
|
87
|
+
/** 每次裁决读取的有效配置(Config schema 默认 + 条目 config 实时值)后规范化。 */
|
|
101
88
|
function effectiveConfig() {
|
|
102
|
-
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
return normalizeConfig(pruneEmpty(raw));
|
|
89
|
+
// 解析值含 schema 空集合默认(modes:[]/levels:{}),必须先剔除再 normalizeConfig,
|
|
90
|
+
// 否则 fail-loud 拒绝空 modes(与 settings.js 的写时校验同一根因)。
|
|
91
|
+
return normalizeConfig(pruneEmpty(readYoloConfig(config)));
|
|
106
92
|
}
|
|
107
93
|
|
|
94
|
+
// 初始配置 fail-loud:非法配置立即抛错 → 加载失败(与旧 apply 行为一致)。
|
|
95
|
+
effectiveConfig();
|
|
96
|
+
|
|
97
|
+
// ---- settings 页面策略(0.1.7 SettingsForms;auto:false = 自建 UI)----
|
|
98
|
+
installYoloSettingsPage(ctx);
|
|
99
|
+
|
|
108
100
|
const auditFile = () => resolveAuditFile(effectiveConfig());
|
|
109
101
|
|
|
110
102
|
let dirEnsured = false;
|
package/lib/remote.js
CHANGED
|
@@ -28,10 +28,11 @@
|
|
|
28
28
|
/**
|
|
29
29
|
* 纯映射 / 线信封辅助在顶部(无 cordis),可在普通 node 环境单测。
|
|
30
30
|
*
|
|
31
|
-
* DSH 0.1.
|
|
32
|
-
*
|
|
33
|
-
* `
|
|
34
|
-
* `
|
|
31
|
+
* DSH 0.1.7-rc.1 兼容:dsh-settings 默认导出由 `SettingsProvider` 改为
|
|
32
|
+
* `SettingsForms`,但其 `describe` / `writable` / `mutate` / `replace` /
|
|
33
|
+
* `update` 方法面与 `SettingsConflictError`(code 'SETTINGS_CONFLICT')不变,
|
|
34
|
+
* 故本桥的线协议与端点形状无需改动,仅内部实现改由 `SettingsForms` 承担。
|
|
35
|
+
* 命名空间仍为纯 kebab-case 字符串字面量(`yolo-mode`,等于插件条目 id)。
|
|
35
36
|
*
|
|
36
37
|
* @module lib/remote.js
|
|
37
38
|
*/
|
|
@@ -247,8 +248,8 @@ function yoloConflict(conflict) {
|
|
|
247
248
|
/**
|
|
248
249
|
* 对 settings seam 执行一次路径 op 变更并映射为 RpcResult(携带新 redacted view,
|
|
249
250
|
* 或 settings-conflict / settings-rejected 错误)。纯函数可注入 mutate/describe 测试。
|
|
250
|
-
*
|
|
251
|
-
*
|
|
251
|
+
* 0.1.7 起 `ns` 即插件条目 id,原样透传给 SettingsForms.mutate;非 volatile 路径
|
|
252
|
+
* 会被其拒绝(映射为 settings-rejected)。
|
|
252
253
|
* @param {Function} mutate settings.mutate 绑定
|
|
253
254
|
* @param {Function} describe settings.describe 绑定
|
|
254
255
|
* @param {string} ns 命名空间字符串
|
package/lib/settings.js
CHANGED
|
@@ -5,14 +5,18 @@
|
|
|
5
5
|
* `yolo-mode`,用 schemastery 宽松 schema 解析分区值,写时校验委托
|
|
6
6
|
* ./policy.js 的 `normalizeConfig`(fail-loud 抛错即拒绝写入)。
|
|
7
7
|
*
|
|
8
|
-
* 分层层(design.md §12.3
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* 分层层(design.md §12.3 + 0.1.7 单层迁移):0.1.7 起设置不再由
|
|
9
|
+
* settings.yaml 覆盖层承载,而是**当前 Profile 的插件条目 config 单层**——
|
|
10
|
+
* schemastery Config schema 的默认值即 base 层,用户在设置页的改动写回该
|
|
11
|
+
* 条目 config。故本模块导出的 `YoloSettingsSchema` 同时是插件 Config schema
|
|
12
|
+
* (见 lib/index.js 的 `export const Config`),每个可热更字段用 `.volatile()`
|
|
13
|
+
* 声明;读取用 `config.<field>.get()`。
|
|
11
14
|
*
|
|
12
|
-
* DSH 0.1.
|
|
13
|
-
* `
|
|
14
|
-
*
|
|
15
|
-
* `ctx.settings.
|
|
15
|
+
* DSH 0.1.7-rc.1 兼容:dsh-settings 默认导出由 `SettingsProvider`
|
|
16
|
+
* (`installSection`)改为 `SettingsForms`(`describe/update/replace/mutate`)。
|
|
17
|
+
* `installSection` 已删除;页面策略改走
|
|
18
|
+
* `ctx.settings.configure({ auto }, ownerFiber)`(auto:false = 插件自建 UI)。
|
|
19
|
+
* 旧的 `settings.yaml` 由 `SettingsForms.importLegacyDocument` 一次性导入。
|
|
16
20
|
*
|
|
17
21
|
* 纯 JavaScript(ESM),宿主代码仅 import node: 内置与同包 peer
|
|
18
22
|
* (@deepseek-ai/dsh-settings、@deepseek-ai/schemastery)。
|
|
@@ -29,26 +33,53 @@ export const YOLO_SETTINGS_NAMESPACE = 'yolo-mode';
|
|
|
29
33
|
const PRESETS = ['off', 'strict', 'balanced', 'permissive', 'yolo', 'custom'];
|
|
30
34
|
|
|
31
35
|
/**
|
|
32
|
-
* schemastery
|
|
33
|
-
*
|
|
34
|
-
*
|
|
36
|
+
* schemastery Config schema(0.1.7 起同时是插件的权威设置 schema):全字段可选
|
|
37
|
+
* (object 字段默认可选),使未写入的空白分区解析为空对象,绝不泄漏默认值覆盖
|
|
38
|
+
* 条目 config 的普通层。每个顶层字段用 `.volatile()` 声明为可热更——设置页的
|
|
39
|
+
* 写回经 loader 的 `_commitVolatile` 就地更新引用,插件无需重启;这与旧模型
|
|
40
|
+
* "只改某些字段不重启插件" 的行为一致。
|
|
41
|
+
*
|
|
42
|
+
* 注意:`.volatile()` 不可嵌套(schemastery 校验"volatile 字段需固定对象路径"),
|
|
43
|
+
* 故只标注顶层字段;其子路径由 `isVolatilePath` 视作可热更。
|
|
44
|
+
*
|
|
45
|
+
* 真正的形状/语义校验由写时 `validateYoloSettings = normalizeConfig` 完成(fail-loud)
|
|
46
|
+
* 以及 schemastery 在 configEditor 写回时的解析校验。
|
|
35
47
|
*/
|
|
36
48
|
export const YoloSettingsSchema = z.object({
|
|
37
|
-
preset: z.union([...PRESETS]).default('balanced'),
|
|
38
|
-
modes: z.array(z.string()),
|
|
39
|
-
levels: z.dict(z.any()),
|
|
40
|
-
judge: z
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
preset: z.union([...PRESETS]).default('balanced').volatile(),
|
|
50
|
+
modes: z.array(z.string()).volatile(),
|
|
51
|
+
levels: z.dict(z.any()).volatile(),
|
|
52
|
+
judge: z
|
|
53
|
+
.object({
|
|
54
|
+
provider: z.string(),
|
|
55
|
+
model: z.string(),
|
|
56
|
+
systemPrompt: z.string(),
|
|
57
|
+
timeoutMs: z.natural(),
|
|
58
|
+
maxTokens: z.natural(),
|
|
59
|
+
concurrency: z.natural(),
|
|
60
|
+
})
|
|
61
|
+
.volatile(),
|
|
62
|
+
includeSubagents: z.boolean().volatile(),
|
|
63
|
+
auditFile: z.string().volatile(),
|
|
50
64
|
});
|
|
51
65
|
|
|
66
|
+
/**
|
|
67
|
+
* 从已解析的 Config 读取当前设置值(0.1.7:`config.<field>.get()`)。
|
|
68
|
+
* volatile 引用由 loader 就地更新,故每次裁决读取即为最新值。
|
|
69
|
+
* @param {object} config apply(ctx, config) 收到的已解析 Config
|
|
70
|
+
* @returns {object} 仅含 schema 字段的普通对象(未设字段为 undefined/空集合)
|
|
71
|
+
*/
|
|
72
|
+
export function readYoloConfig(config) {
|
|
73
|
+
return {
|
|
74
|
+
preset: config.preset.get(),
|
|
75
|
+
modes: config.modes.get(),
|
|
76
|
+
levels: config.levels.get(),
|
|
77
|
+
judge: config.judge.get(),
|
|
78
|
+
includeSubagents: config.includeSubagents.get(),
|
|
79
|
+
auditFile: config.auditFile.get(),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
52
83
|
/**
|
|
53
84
|
* 剔除 schema 解析出的"空集合默认值"(schemastery 对 array/dict 缺省解析为
|
|
54
85
|
* []/{},标量缺省为 absent),避免把这些默认空值当成用户配置喂给
|
|
@@ -88,20 +119,17 @@ export function validateYoloSettings(value) {
|
|
|
88
119
|
}
|
|
89
120
|
|
|
90
121
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
122
|
+
* 注册 yolo-mode 的设置页面策略(0.1.7 `SettingsForms.configure`)。
|
|
123
|
+
*
|
|
124
|
+
* 插件自带 Web 客户端设置页(slot `settings.section`),故 `auto:false`
|
|
125
|
+
* 禁止宿主再自动生成重复页面;页面策略注册到本插件 fiber 的 effects,
|
|
126
|
+
* 卸载时自动注销。settings 服务缺失时 `ctx.inject` 回调不运行(零侵入,
|
|
127
|
+
* 插件继续按 Config schema 默认 + 条目 config 运行)。
|
|
128
|
+
*
|
|
129
|
+
* @param {import('@deepseek-ai/cordis').Context} ctx 主插件 fiber 的上下文
|
|
97
130
|
*/
|
|
98
|
-
export function
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
'[yolo-mode] no settings service mounted; using composition config and skipping settings section registration',
|
|
103
|
-
);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
settings.installSection(ctx, YOLO_SETTINGS_NAMESPACE, YoloSettingsSchema, entry, hooks);
|
|
131
|
+
export function installYoloSettingsPage(ctx) {
|
|
132
|
+
ctx.inject(['settings'], (child) => {
|
|
133
|
+
child.effect(() => child.settings.configure({ auto: false }, ctx.fiber));
|
|
134
|
+
});
|
|
107
135
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-yolo-mode",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2-beta.0",
|
|
4
4
|
"description": "dsh-yolo-mode —— DeepSeek Harness 双面包插件:当会话处于可写沙箱模式且审批策略为 ask 时,用大模型自动裁决沙箱升权申请,支持内置预设与自定义权限层级,并提供宿主 settings + 自发布设置桥(/yolo-mode)与 Web 客户端 UI。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -41,22 +41,22 @@
|
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"react": "^18.2.0",
|
|
43
43
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
44
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
45
|
-
"@deepseek-ai/dsh-timeout": "^0.1.
|
|
46
|
-
"@deepseek-ai/dsh-settings": "^0.1.
|
|
44
|
+
"@deepseek-ai/dsh-llm": "^0.1.7-rc.1",
|
|
45
|
+
"@deepseek-ai/dsh-timeout": "^0.1.7-rc.1",
|
|
46
|
+
"@deepseek-ai/dsh-settings": "^0.1.7-rc.1",
|
|
47
47
|
"@deepseek-ai/dsh-host-apiproxy": "^0.1.1-rc.2",
|
|
48
48
|
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
|
|
49
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.
|
|
50
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.
|
|
51
|
-
"@deepseek-ai/dsh-client-locale": "^0.1.
|
|
49
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.7-rc.1",
|
|
50
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.7-rc.1",
|
|
51
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.7-rc.1",
|
|
52
52
|
"@deepseek-ai/schemastery": "^3.18.1"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"rolldown": "^1.2.4",
|
|
56
56
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
57
|
-
"@deepseek-ai/dsh-llm": "^0.1.
|
|
58
|
-
"@deepseek-ai/dsh-timeout": "^0.1.
|
|
59
|
-
"@deepseek-ai/dsh-settings": "^0.1.
|
|
57
|
+
"@deepseek-ai/dsh-llm": "^0.1.7-rc.1",
|
|
58
|
+
"@deepseek-ai/dsh-timeout": "^0.1.7-rc.1",
|
|
59
|
+
"@deepseek-ai/dsh-settings": "^0.1.7-rc.1",
|
|
60
60
|
"@deepseek-ai/schemastery": "^3.18.1"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
@@ -81,7 +81,8 @@
|
|
|
81
81
|
"dshReleases": {
|
|
82
82
|
"0.1.5-rc.1": "compatible",
|
|
83
83
|
"0.1.5-rc.2": "compatible",
|
|
84
|
-
"0.1.6-alpha.2": "compatible"
|
|
84
|
+
"0.1.6-alpha.2": "compatible",
|
|
85
|
+
"0.1.7-rc.1": "compatible"
|
|
85
86
|
},
|
|
86
87
|
"node": ">=20"
|
|
87
88
|
}
|