dsh-modellix 0.1.0 → 0.2.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +101 -169
  3. package/README.zh-CN.md +99 -167
  4. package/docs/assets/chat-media-generation-en.webp +0 -0
  5. package/docs/assets/chat-media-generation-zh.webp +0 -0
  6. package/docs/assets/design-results-drawer-en.webp +0 -0
  7. package/docs/assets/design-results-drawer-zh.webp +0 -0
  8. package/docs/assets/llm-model-selector-en.webp +0 -0
  9. package/docs/assets/llm-model-selector-zh.webp +0 -0
  10. package/docs/assets/media-players-en.webp +0 -0
  11. package/docs/assets/media-players-zh.webp +0 -0
  12. package/docs/assets/settings-ready-en.webp +0 -0
  13. package/docs/assets/settings-ready-zh.webp +0 -0
  14. package/docs/assets/web-tools-auto-en.webp +0 -0
  15. package/docs/assets/web-tools-auto-zh.webp +0 -0
  16. package/docs/en-US/LOCAL_USAGE.md +17 -15
  17. package/docs/en-US/RELEASE_CHECKLIST.md +270 -0
  18. package/docs/en-US/USER_GUIDE.md +183 -401
  19. package/docs/zh-CN/LOCAL_USAGE.md +17 -15
  20. package/docs/zh-CN/RELEASE_CHECKLIST.md +270 -0
  21. package/docs/zh-CN/USER_GUIDE.md +182 -400
  22. package/lib/client.d.ts +16 -2
  23. package/lib/client.js +1308 -466
  24. package/lib/client.js.map +1 -1
  25. package/lib/index.d.ts +159 -109
  26. package/lib/index.js +995 -192
  27. package/lib/index.js.map +1 -1
  28. package/package.json +7 -2
  29. package/docs/assets/credential-recovery.webp +0 -0
  30. package/docs/assets/design-desktop.webp +0 -0
  31. package/docs/assets/design-mobile-en.webp +0 -0
  32. package/docs/assets/design-proposal.webp +0 -0
  33. package/docs/assets/design-results-media.webp +0 -0
  34. package/docs/assets/llm-model-selector.webp +0 -0
  35. package/docs/assets/onboarding-defaults.webp +0 -0
  36. package/docs/assets/settings-ready.webp +0 -0
  37. package/docs/assets/web-tools.webp +0 -0
@@ -42,7 +42,7 @@ pnpm run verify:pack
42
42
  pnpm pack
43
43
  ```
44
44
 
45
- 完成后,仓库根目录会生成类似 `dsh-modellix-0.1.0.tgz` 的文件。不要直接把未构建的 TypeScript 源码交给 DSH 安装。
45
+ 完成后,仓库根目录会生成类似 `dsh-modellix-0.2.0.tgz` 的文件。不要直接把未构建的 TypeScript 源码交给 DSH 安装。
46
46
 
47
47
  ## 3. 创建独立的本地 Harness 环境
48
48
 
@@ -60,7 +60,7 @@ New-Item -ItemType Directory -Force -Path $env:DSH_HOME | Out-Null
60
60
  把刚生成的 tarball 安装到 `web` Profile:
61
61
 
62
62
  ```powershell
63
- dsh plugin --profile web add .\dsh-modellix-0.1.0.tgz
63
+ dsh plugin --profile web add .\dsh-modellix-0.2.0.tgz
64
64
  dsh --profile web --dump-config
65
65
  ```
66
66
 
@@ -99,17 +99,17 @@ dsh --profile web --no-open
99
99
  2. 检查 Design、LLM、Web 三个开关;首次安装默认全部开启。
100
100
  3. 选择“保存并启用”。
101
101
 
102
- ## 7. 使用 Design
102
+ ## 7. 使用 Chat-first 媒体创作
103
103
 
104
- 1. 打开会话顶部的 **Design** 标签。
105
- 2. 搜索或按图片、视频、音频筛选模型。
106
- 3. 选择模型并输入 prompt。很多模型只需要 prompt,其余字段会按实时 Schema 填入默认值。
107
- 4. 需要精准控制时,直接修改页面列出的尺寸、质量、时长、比例等参数。
108
- 5. 也可以在“用对话调整参数”中描述修改,检查提议差异后再应用。该步骤可能产生 LLM 用量,但不会自动提交媒体生成。
109
- 6. 检查参数和计费提示,只点击一次“确认并生成”。
110
- 7. 在右侧结果区查看进行中、已完成和诊断记录;完成后可预览或下载媒体。
104
+ 1. 打开会话,直接描述所需图片、视频、编辑、转换或语音,不必写工具名。
105
+ 2. Agent 按需查询实时目录并读取模型 Schema。
106
+ 3. 需求基于上一项结果时,Agent 复用最新相关 URL,并选择编辑、图生视频或视频编辑模型。
107
+ 4. Agent 只提交一次,并在该回合最多查询一次。
108
+ 5. 在对话中查看实时卡片;后台任务完成后卡片原位更新,不应出现第二张结果卡。
109
+ 6. 点击会话头部最右侧 **Modellix Design**,查看当前会话全部结果。
110
+ 7. 成功卡可用预览/JSON、图片放大、原生视频/音频播放器、**添加 URL 到对话框** 和 **下载**。
111
111
 
112
- 生成请求可能计费。插件不会自动重试计费 POST;若页面提示“提交结果未知”,应先检查结果列表或 Modellix 侧记录,不要立即重复提交。
112
+ 高级精准参数编辑器继续保留,但 `0.2.0` 暂不显示入口。常规 UI 不显示付费提示;消耗与明细在 Modellix 查看。
113
113
 
114
114
  ## 8. 使用 Modellix LLM
115
115
 
@@ -119,9 +119,9 @@ dsh --profile web --no-open
119
119
 
120
120
  目录来自 Modellix 实时接口;目录不可用时,插件不会显示虚构的备用模型。
121
121
 
122
- ## 9. 使用 Web Search/Fetch
122
+ ## 9. 使用自动 Web Search/Fetch
123
123
 
124
- 确认 Web 开关开启后,在对话中明确要求 Agent 搜索公开网页并读取需要的结果。Harness 原生 `web_search` 和 `web_fetch` 会使用 Modellix Provider,页面不会出现一套重复的自定义工具。
124
+ 确认 Web 开关开启后,正常提出实时、外部、URL 或来源核验问题。Agent 会按需自动使用明确的 `modellix_web_search` 与 `modellix_web_fetch`,用户不需要说出工具名。
125
125
 
126
126
  ## 10. 更新本地插件
127
127
 
@@ -135,7 +135,7 @@ dsh --profile web --no-open
135
135
  Set-Location 'D:\work\maas\githup\dsh-modellix'
136
136
  pnpm run verify:pack
137
137
  pnpm pack
138
- dsh plugin --profile web add .\dsh-modellix-0.1.0.tgz
138
+ dsh plugin --profile web add .\dsh-modellix-0.2.0.tgz
139
139
  dsh --profile web --dump-config
140
140
  dsh --profile web --no-open
141
141
  ```
@@ -146,7 +146,9 @@ dsh --profile web --no-open
146
146
  | --- | --- |
147
147
  | 先出现 DeepSeek API Key 弹窗 | 这是全新 Harness Profile 的基础初始化,不是 Modellix 弹窗;完成后继续配置 Modellix |
148
148
  | `modellix-cli` 已登录但插件仍要求 Key | CLI Keychain 与 Harness Credential 相互独立;在插件 UI 保存,或给 Harness 启动进程设置 `MODELLIX_API_KEY` |
149
- | 安装后看不到 Design 标签 | 检查 `--dump-config`,确认安装到正在运行的 Profile,并完整重启该 Profile |
149
+ | 看不到 Modellix Design | 检查 `--dump-config`、确认 Design 已开启,并在更新后完整重启运行中的 Profile |
150
+ | 助手正文里的状态看起来旧 | 当前状态属于实时卡片与右侧面板;`0.2.0` 后台更新卡片,并避免在普通正文写非终态 |
151
+ | 一个任务显示两张卡 | `0.2.0` 不应出现;在不包含 Secret 的情况下记录 job/tool call id 并报告重复卡缺陷 |
150
152
  | 页面提示 Key 无效 | 只有 Modellix 明确返回 401 才会进入该状态;本地 Credential 可在设置中更换,环境来源需在外部更新并重启 |
151
153
  | 余额不足 | 402 不会被误报为 Key 无效;充值或调整任务后手动重试 |
152
154
  | 请求过多 | 等待 429 限流窗口结束后再手动重试 |
@@ -0,0 +1,270 @@
1
+ [English](../en-US/RELEASE_CHECKLIST.md) | [简体中文](RELEASE_CHECKLIST.md)
2
+
3
+ # dsh-modellix 0.2.0 发布与验收清单
4
+
5
+ 本文用于人工产品验收和最终发布门禁。每一项都必须针对即将发布的准确包版本与 commit 检查。
6
+
7
+ ## 1. 验收范围
8
+
9
+ 只有全部满足以下条件时才接受本版本:
10
+
11
+ - Chat 是媒体主界面,不存在独立 Design Tab。
12
+ - Agent 能自动选择明确的 Modellix 媒体与 Web 工具。
13
+ - 对话结果卡与右侧 Modellix Design 显示同一任务的相同最新状态。
14
+ - 一个任务只产生一张可见对话结果卡。
15
+ - 只有成功任务显示 Preview/JSON 和媒体控件。
16
+ - 结果按 Harness 会话隔离。
17
+ - 中英文文档与截图符合当前 UI。
18
+ - 静态、浏览器、真实 API/Agent、打包与全新安装门禁全部通过。
19
+
20
+ ## 2. 测试环境
21
+
22
+ 测试前记录:
23
+
24
+ | 项目 | 预期 |
25
+ | --- | --- |
26
+ | 包 | `dsh-modellix@0.2.0` |
27
+ | Harness | `0.1.1-rc.2` |
28
+ | 开发 Node | `24.18.1` |
29
+ | pnpm | `11.24.0` |
30
+ | 浏览器截图视口 | `1920×1080`、DPR 1 |
31
+ | Credential | 由受控环境或 Harness Credential 服务提供,Evidence 中不可见 |
32
+ | Profile | 默认使用独立验收 Profile;除非操作者明确选择默认 Profile |
33
+
34
+ 不得记录 Key、请求头、Credential 文件、Network/HAR、浏览器存储或敏感请求体。
35
+
36
+ ## 3. 静态预检
37
+
38
+ 在仓库根目录执行:
39
+
40
+ ```sh
41
+ pnpm install --frozen-lockfile
42
+ pnpm run check
43
+ pnpm run verify:pack
44
+ ```
45
+
46
+ 通过条件:
47
+
48
+ - 环境、类型、lint、单元/契约测试和覆盖率通过;
49
+ - Host 与 Client Bundle 构建成功;
50
+ - tarball allowlist 只包含已发布运行时/文档/资产;
51
+ - 12 张 WebP 均按要求解码、尺寸正确且不含 metadata;
52
+ - source、tests、coverage、开发计划、Agent 规则、Secret、HAR 和本地配置均未进入包。
53
+
54
+ ## 4. 设置与 Credential
55
+
56
+ 1. 打开设置 → Modellix。
57
+ 2. 确认 Credential 显示已配置/已验证和来源,但不显示值。
58
+ 3. 确认 Design、LLM、Web 开关存在。
59
+ 4. 确认 LLM 目录状态、模型数量、刷新时间和刷新操作。
60
+ 5. 若 Credential 为本地可写,打开更换界面并确认输入框初始为空。
61
+ 6. 取消后重新打开,未保存草稿仍应为空。
62
+ 7. 在受控非生产环境测试一次 401 恢复;并发错误只能打开一个弹窗。
63
+ 8. 确认 402、429、离线和 5xx 不显示“API Key 无效”。
64
+
65
+ 截图 Evidence:`settings-ready-en.webp` 与 `settings-ready-zh.webp`。
66
+
67
+ ## 5. Chat-first 图片生成
68
+
69
+ 新建会话,不写工具名,输入正式图片需求:
70
+
71
+ > 创建一张精致的 16:9 建筑首页图:玻璃植物研究馆漂浮在晨曦云海上,以观景桥连接,青金蓝与暖金配色,真实高级材质,无人物、无文字、无 Logo、无水印。
72
+
73
+ 通过条件:
74
+
75
+ 1. Agent 发现/选择兼容实时模型并读取 Schema。
76
+ 2. 只发生一次 `modellix_media_generate` 提交。
77
+ 3. Agent 回合内最多一次 `modellix_media_get_result`。
78
+ 4. 非终态时卡片只显示状态/模型,不显示 Preview/JSON。
79
+ 5. 助手正文只说明提交已接受并把当前状态交给卡片/面板;不写 queued/running/generating/processing/pending 或中文等价词。
80
+ 6. 不再调用 Agent 工具,原卡片自动更新为已完成。
81
+ 7. 结果查询不会生成第二张卡。
82
+ 8. Preview 显示图片,JSON 可通过键盘访问。
83
+
84
+ 截图 Evidence:`chat-media-generation-en.webp` 与 `chat-media-generation-zh.webp`。
85
+
86
+ ## 6. 基于上下文的图生视频
87
+
88
+ 在同一会话输入:
89
+
90
+ > 把刚完成的图片做成 5 秒电影感视频。镜头缓慢前推,增加轻微云海和灯光动态,保持原构图和配色。
91
+
92
+ 通过条件:
93
+
94
+ 1. Agent 选择图生视频而不是文生视频。
95
+ 2. 自动把上一张图片结果 URL 放入实时 Schema 的媒体输入字段。
96
+ 3. 一次提交,回合内最多一次结果读取。
97
+ 4. 原视频卡就地更新为已完成。
98
+ 5. 视频加载有限时长,点击播放后 currentTime 推进。
99
+
100
+ ## 7. 音频
101
+
102
+ 在同一会话输入:
103
+
104
+ > 生成平静专业的英文旁白,MP3、44.1 kHz:“From one idea to images, video, and sound, Modellix Design keeps creation flowing naturally in the conversation.”
105
+
106
+ 通过条件:
107
+
108
+ 1. Agent 读取实时音频 Schema,并使用已公布英文音色。
109
+ 2. 一次提交,回合内最多一次结果读取。
110
+ 3. 音频卡就地更新为已完成。
111
+ 4. 音频读取时长,点击播放后 currentTime 推进。
112
+
113
+ 视频/音频截图 Evidence:`media-players-en.webp` 与 `media-players-zh.webp`。
114
+
115
+ ## 8. 结果面板与卡片交互
116
+
117
+ 1. 点击会话头部最右侧 **Modellix Design**。
118
+ 2. 确认面板从右向左打开。
119
+ 3. 桌面视口测量内部宽度为 360px,开合时卡片内容不被压缩。
120
+ 4. 结果默认展开,数量与当前会话一致。
121
+ 5. 收起/展开整个结果。
122
+ 6. 点击每张卡头部收起/展开。
123
+ 7. 确认只显示当前会话的图片、视频、音频。
124
+ 8. 成功卡显示 Preview/JSON;生成中/失败卡不显示。
125
+ 9. 点击 **添加 URL 到对话框**,确认准确资源 URL 写入输入框。
126
+ 10. 点击 **下载**,确认安全打开上游资源。
127
+ 11. 点击 X,确认焦点回到入口按钮。
128
+ 12. 确认页面没有高级编辑器入口。
129
+
130
+ 截图 Evidence:`design-results-drawer-en.webp` 与 `design-results-drawer-zh.webp`。
131
+
132
+ ## 9. 图片弹窗与键盘
133
+
134
+ 1. 用键盘打开图片预览。
135
+ 2. 确认大图 Dialog 有可见标题/可访问名称。
136
+ 3. 初始焦点进入 Dialog。
137
+ 4. 用 Tab 与 Shift+Tab 经过所有控件,焦点应循环。
138
+ 5. 按 Escape,Dialog 关闭且焦点回到图片入口。
139
+ 6. 再次打开,用可见关闭控件退出,焦点恢复仍正确。
140
+
141
+ ## 10. 自动 Web Search 与 Fetch
142
+
143
+ 新 Agent 回合中不要写工具名:
144
+
145
+ > 核对 Modellix 官方网站上 alibaba/wan2.7-videoedit 的 API Schema 页面,告诉我页面标题,并列出一项必填参数及其含义,附上来源。不要凭记忆回答。
146
+
147
+ 通过条件:
148
+
149
+ 1. Agent 自动调用 `modellix_web_search`。
150
+ 2. 为读取全文自动调用 `modellix_web_fetch`。
151
+ 3. 同一操作不同时调用原生与明确工具族。
152
+ 4. 回答含直接来源和 Schema 支持的必填字段。
153
+ 5. 失败或结果未知时不自动重复。
154
+
155
+ 截图 Evidence:`web-tools-auto-en.webp` 与 `web-tools-auto-zh.webp`。
156
+
157
+ ## 11. Modellix LLM
158
+
159
+ 1. 打开 Harness 模型选择器。
160
+ 2. 确认 Modellix 分组包含当前实时目录。
161
+ 3. 选择 Modellix 模型。
162
+ 4. 发送简短、无需工具的提示。
163
+ 5. 确认得到所选 Modellix 模型的真实 Agent 回复。
164
+ 6. 确认插件层重试为 `0`。
165
+
166
+ 截图 Evidence:`llm-model-selector-en.webp` 与 `llm-model-selector-zh.webp`。
167
+
168
+ ## 12. 响应式、主题与可访问性矩阵
169
+
170
+ 检查当前 UI:
171
+
172
+ | 尺寸/状态 | 验收标准 |
173
+ | --- | --- |
174
+ | 320 CSS px | 全宽面板、紧凑入口可达、页面无横向溢出 |
175
+ | 560 CSS px | 全宽面板,操作自动换行 |
176
+ | 768 CSS px | 所有内容和操作可达 |
177
+ | 1440 CSS px | 固定 360px 右侧面板 |
178
+ | 200% 文本缩放 | 状态、URL、标签和操作不裁切 |
179
+ | 浅色/深色 | 语义颜色清晰可读 |
180
+ | Forced colors | 边界、焦点、状态与控件可区分 |
181
+ | Reduced motion | 非必要动效关闭 |
182
+ | 粗指针 | 主要目标达到 48×48 CSS px |
183
+
184
+ 检查 accessibility tree 中的 Dialog 名称、label/description、invalid/busy、Tab 语义和 live region。Modal 打开时背景不可聚焦。
185
+
186
+ ## 13. Console 与网络健康
187
+
188
+ - 完整流程 Browser Console:0 errors、0 warnings。
189
+ - 不出现重复生成/上传 POST。
190
+ - 不出现无上限状态轮询。
191
+ - DOM、Console、截图、Evidence 和日志中没有 Key 或鉴权头。
192
+ - 媒体从批准的 HTTPS 结果域名加载。
193
+
194
+ ## 14. 真实 API/Agent 覆盖
195
+
196
+ 在本轮已明确授权真实调用时执行受控测试:
197
+
198
+ ```powershell
199
+ $env:MODELLIX_ALLOW_BILLED_E2E = '1'
200
+ $env:MODELLIX_REAL_AGENT_ATTESTED = '1'
201
+ $env:MODELLIX_REAL_E2E_OUTPUT_DIR = 'D:\outside-repo\modellix-real-results'
202
+ $env:MODELLIX_API_AGENT_E2E_EVIDENCE_FILE = 'D:\outside-repo\api-agent-evidence.json'
203
+ pnpm run test:real:modellix
204
+ ```
205
+
206
+ 同一验收周期还必须包括:
207
+
208
+ - 由配置的 DeepSeek 后端实际处理的 Agent 回合;
209
+ - 由 Modellix LLM 实际处理的 Agent 回合。
210
+
211
+ 只有 catalogs、Schema planning、图片、视频、音频、LLM Agent、Search、Fetch 全部通过才接受。未知计费提交不得重放。
212
+
213
+ ## 15. 发布 Evidence
214
+
215
+ 在仓库外创建不含 Secret 的文件:
216
+
217
+ - 浏览器 Evidence:onboarding、settings、design、LLM、Web、401、可访问性、主题、视口;
218
+ - API/Agent Evidence:catalogs、planner、图片、视频、音频、LLM Agent、Web。
219
+
220
+ 两个文件必须:
221
+
222
+ - 指向 `dsh-modellix@0.2.0`;
223
+ - 包含准确的 40 位小写 Git HEAD;
224
+ - 使用不早于 72 小时的规范 UTC ISO-8601 时间;
225
+ - 所有必填 check 均为 `passed`;
226
+ - 不含未知字段或 Secret。
227
+
228
+ 然后执行:
229
+
230
+ ```sh
231
+ pnpm run verify:release
232
+ ```
233
+
234
+ `verify:release:static` 不能替代真实 Evidence。
235
+
236
+ ## 16. 打包、发布与 Registry 回读
237
+
238
+ 全部通过后:
239
+
240
+ 1. 提交并推送准确验收文件。
241
+ 2. 确认 `HEAD` 与 `origin/main` 相同且工作树干净。
242
+ 3. 执行 `pnpm pack`。
243
+ 4. 使用受控 npm Credential 流程发布 tarball。
244
+ 5. 回读:
245
+
246
+ ```sh
247
+ npm view dsh-modellix@0.2.0 version dist.integrity dist.shasum --json --registry=https://registry.npmjs.org/ --prefer-online
248
+ ```
249
+
250
+ 6. 在仓库外空目录和全新 npm cache 中安装 `dsh-modellix@0.2.0`。
251
+ 7. 检查实际落盘版本和 `dsh --profile <isolated> --dump-config`。
252
+ 8. 删除临时 npm 配置、cache、tarball、profile、Evidence 中间文件和进程变量。
253
+
254
+ 未经明确要求,不创建 Git Tag 或 GitHub Release。
255
+
256
+ ## 17. 0.2.0 验证记录
257
+
258
+ 2026-08-31 对候选版本执行了:
259
+
260
+ - 真实 `openai/gpt-image-2` 图片生成;
261
+ - 真实 `xai/grok-imagine-video-i2v` 上下文图生视频;
262
+ - 真实 `minimax/speech-2.8-hd` 语音生成;
263
+ - 针对公开官方文档的真实自动 Modellix Search 与 Fetch;
264
+ - 真实 DeepSeek Agent 序列和真实 `modellix-ai/free-llm` 回合;
265
+ - 视频/音频有限时长、播放时间推进;
266
+ - 抽屉只显示当前会话 3 条结果,对话无重复卡,终态同步;
267
+ - Browser Console 0 errors、0 warnings;
268
+ - 最终文档修改前,typecheck、lint、475 个测试、覆盖率、build 和 pack 校验通过。
269
+
270
+ 文档与版本变更后必须重新执行最终门禁,并把发布 Evidence 绑定到最终 commit。