@mokuyoaxis/dsh-iris 0.2.3 → 0.2.4

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 (43) hide show
  1. package/.dsh/skills/iris-compose-media/references/workflows.md +1 -1
  2. package/.dsh/skills/iris-use/SKILL.md +2 -1
  3. package/.dsh/skills/iris-use/references/media-contract.md +12 -2
  4. package/CHANGELOG.md +16 -1
  5. package/README.en.md +28 -23
  6. package/README.md +28 -23
  7. package/bin/dsh-iris.js +8 -0
  8. package/docs/AGENT_QUICKSTART.md +7 -7
  9. package/docs/ARCHITECTURE.md +3 -1
  10. package/docs/CLI_MANAGEMENT.md +11 -3
  11. package/docs/DSH_COMPATIBILITY.md +43 -0
  12. package/docs/DSH_RC2_ADAPTATION.md +4 -2
  13. package/docs/FUNCTION_MODEL_ASSIGNMENTS.md +63 -0
  14. package/docs/HEADLESS_CLI.md +10 -8
  15. package/docs/HOST_ADAPTER_CONTRACT.md +10 -7
  16. package/docs/HOST_DOCTOR.md +5 -3
  17. package/docs/IMAGE_IMPORT.md +49 -0
  18. package/docs/ROADMAP.md +4 -2
  19. package/docs/VISION_CLI.md +3 -3
  20. package/docs/VISION_MODEL.md +1 -1
  21. package/docs/WORKBENCH_ARTIFACTS.md +4 -2
  22. package/docs/releases/0.2.4.md +27 -0
  23. package/lib/actions.js +32 -12
  24. package/lib/adapters.js +5 -2
  25. package/lib/client.js +28 -29
  26. package/lib/command-service.js +16 -1
  27. package/lib/config.js +16 -22
  28. package/lib/doctor.js +4 -10
  29. package/lib/dsh-compatibility.js +10 -0
  30. package/lib/dsh-core-adapter.js +7 -1
  31. package/lib/host-runtime.js +1 -0
  32. package/lib/image-edit-input.js +7 -5
  33. package/lib/image-import.js +61 -0
  34. package/lib/index.js +39 -15
  35. package/lib/models.js +9 -3
  36. package/lib/ocr-model-routing.js +1 -0
  37. package/lib/provider-adapters.js +11 -2
  38. package/lib/provider-catalog.js +6 -8
  39. package/lib/provider-config-service.js +5 -5
  40. package/lib/provider-protocol.js +6 -0
  41. package/lib/vision-model-routing.js +22 -8
  42. package/package.json +9 -8
  43. package/user_guide.md +25 -17
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 图片创作与版本修改
6
6
 
7
- 已有Core原图并明确要求修改时,直接用 `iris_edit_image(source_artifact_id, prompt)`。写清改变和保留的内容;当前仅支持单张Core静态图片输入。源图只有附件或路径时,说明改图入口需要Core作品,不把附件ID当作Core ID,也不虚构导入工具。
7
+ 已有Core原图并明确要求修改时,直接用 `iris_edit_image(source_artifact_id, prompt)`。写清改变和保留的内容;当前仅支持单张Core静态图片输入。源图只有附件或路径时,先用实际可见的 `iris_import_image` 保存为Core作品,再把返回ID传给改图。旧版未装载导入工具时说明缺口,不把附件ID当作Core ID,也不重新生成原图替代导入。
8
8
 
9
9
  需要理解参考素材后再创作时,使用 `iris_look_at_image` 或 `iris_relook_attachment`,提取与目标有关的主体、构图、文字和风格,再调用 `iris_draw_image`。保留用户给出的准确文字;生成后的自述可以提供线索,不需要默认再做一次相同的全图描述。
10
10
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: iris-use
3
- description: "Use dsh-iris for a single media operation or an existing task: image creation/editing, vision/OCR, video, speech, music, and artifact delivery. 用于 Iris 单步媒体操作、音乐生成、作品取回与任务状态查询;多步骤创作选 iris-compose-media,界面对照验收选 iris-verify-ui。"
3
+ description: "Use dsh-iris for a single media operation or an existing task: image import/creation/editing, vision/OCR, video, speech, music, and artifact delivery. 用于 Iris 图片导入、单步媒体操作、音乐生成、作品取回与任务状态查询;多步骤创作选 iris-compose-media,界面对照验收选 iris-verify-ui。"
4
4
  ---
5
5
 
6
6
  # 使用 Iris 媒体能力
@@ -11,6 +11,7 @@ description: "Use dsh-iris for a single media operation or an existing task: ima
11
11
 
12
12
  | 用户目标 | Iris 工具 |
13
13
  |---|---|
14
+ | 保存上传图片或本地图片,供后续改图和导出 | `iris_import_image`,输入 image_path 或 attachment_id |
14
15
  | 生成图片 | `iris_draw_image` |
15
16
  | 修改已有 Core 图片 | `iris_edit_image`,输入 `source_artifact_id` |
16
17
  | 理解图片 | `iris_look_at_image`;会话附件用 `iris_relook_attachment` |
@@ -1,11 +1,12 @@
1
1
  # Iris 能力与产物衔接
2
2
 
3
- 三项 Iris skills 共用本说明。按当前工具 schema 调用;下表描述 Iris 0.2.3 的入口,是否可用须看实际工具列表。不要为阅读本说明调用模型或读取供应商凭据。
3
+ 三项Iris skills共用本说明。图片导入、统一功能分配及原生Qwen改图要求Iris0.2.4,0.2.3不含这些增量;发布状态见README。按实际已装载工具schema调用,工具可用性以工具列表和安装版本为准。不要为阅读本说明调用模型或读取供应商凭据。
4
4
 
5
5
  ## 工具、输入和输出
6
6
 
7
7
  | 工具 | 主要输入 | 完成后的输出 |
8
8
  |---|---|---|
9
+ | `iris_import_image` | image_path 或当前会话 attachment_id 二选一 | imported-image作品、稳定Core Artifact ID和图片链接;保留原字节及源文件,不调用模型 |
9
10
  | `iris_draw_image` | prompt,可选 size、n、model | Task、Core 图片 Artifact、DSH 图片附件;可能附有图片自述 |
10
11
  | `iris_edit_image` | source_artifact_id、修改 prompt | 新图片 Artifact 与附件,保留原图和来源关系 |
11
12
  | `iris_look_at_image` | image_path 或 artifact_id 二选一 | 图片理解文字 |
@@ -27,7 +28,7 @@
27
28
 
28
29
  ## 功能与模型选择
29
30
 
30
- 生图、视频、TTS、转写和视觉沿用当前功能配置。改图只接受带图编辑的聊天图片协议,当前是 `openai-chat-images`,源图为一个 Core 静态 PNG/JPEG/WebP,最多20 MiB;不提供蒙版或多张参考图输入。
31
+ 生图、视频、TTS、Music、转写和视觉只使用各自明确分配的有序名单;空名单不调用,临时指定须已分配且只用该项。DSH默认视觉须明确加入视觉名单,不能在指定模型失败后隐式回退。手动实测独立于生产分配,旧任务查询/补交付仍绑定原模型。改图复用生图名单,接受 `openai-chat-images` 或 `dashscope` 原生 Qwen edit/max/plus、2.0/pro及日期快照;其他原生Qwen版本尚未接入。源图为一个Core静态PNG/JPEG/WebP,最多20 MiB;不提供蒙版或多张参考图输入。默认发送预算8 MiB,可按账号/模型调整;原生Qwen发送副本另限10 MiB,原作品保留。
31
32
 
32
33
  Music 为独立 `music-gen` 功能,仅使用明确分配名单。模型须配置 `musicProtocol: gemini-web-music`;它不改变账号图片默认协议。其他 Music Adapter 尚未实现。当前正式参数控制客户端超时与502重试;曲长、人声、歌词、语言等是描述意图。
33
34
 
@@ -40,6 +41,15 @@ Music 为独立 `music-gen` 功能,仅使用明确分配名单。模型须配
40
41
  - `content://`、浏览器本地路径与普通网络URL不能直接充当宿主文件路径。已经有可用Core作品时优先复用,确需文件输入时才导出。
41
42
  - 保存每步实际返回的ID。图片编辑保留原作品并创建新版本;不要为继续操作重新生成源素材。
42
43
 
44
+ 用户上传或宿主本地图片要保存为可续作作品时,用iris_import_image显式导入;当前支持最多20 MiB的静态PNG/JPEG/WebP。已有Core图片直接复用其ID,不反复导入。导入不创建生成Task,返回ID可交给iris_edit_image的source_artifact_id。上传副本的临时路径不是持久作品ID。
45
+
46
+ CLI使用同一导入命令:
47
+
48
+ ```bash
49
+ dsh-iris artifact import --data-root /absolute/path/iris-core \
50
+ --input '{"image_path":"/absolute/path/source.png"}'
51
+ ```
52
+
43
53
  ## 需要文件时导出
44
54
 
45
55
  导出消费已有作品,不调用生成模型。DSH工具没有通用Artifact导出入口,可用工作台下载,或在具备Shell与相同Core数据根时使用CLI。以下路径和ID必须替换为已确认的实际值;输出文件不能覆盖已有文件。
package/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.2.4] - 2026-10-15
8
+
9
+ ### Added
10
+
11
+ - 图片持久导入:工作台“导入图片”、`iris_import_image`及CLI `artifact import`共用本地命令,保存最多20 MiB的静态PNG/JPEG/WebP,保留原字节与源文件。导入ID可继续看图、改图和导出,不调用模型。见 [图片导入](docs/IMAGE_IMPORT.md)。
12
+ - DashScope 原生 Qwen 改图:复用生图名单、Core 原图及来源关系,支持 Qwen edit/max/plus、2.0/pro 系列与日期快照;CLI、Agent和工作台均可使用,发送副本遵守账号/模型预算。模型在具体账号及地域是否可用仍以上游响应为准。见 [Artifact 改图](docs/CLI_MANAGEMENT.md#artifact-聊天改图)。
13
+
14
+ ### Changed
15
+
16
+ - DSH支持范围扩为 `0.2.0-rc.2 || 0.2.1-alpha.4`,顶层engines、现有嵌套声明、五项可选客户端peer和Doctor使用相同范围。Node.js最低22.0.0,未新增生产依赖。见 [版本兼容](docs/DSH_COMPATIBILITY.md)。
17
+ - 六类媒体/视觉功能统一为严格有序分配名单;空名单不再自动使用模型池,临时指定也须已分配。升级后依赖自动选型的功能需要明确分配,已有名单及个人配置不自动改写。见 [功能模型分配](docs/FUNCTION_MODEL_ASSIGNMENTS.md)。
18
+ - DSH默认视觉改为可排序的显式资源,指定模型失败不再回退到宿主;手动实测与旧任务恢复仍独立于新请求分配。
19
+ - 工作台改为“清空分配”,生成与改图选择器只展示所属功能名单。
20
+
7
21
  ## [0.2.3] - 2026-10-14
8
22
 
9
23
  ### Added
@@ -311,7 +325,8 @@ Iris 0.2.0 要求 Node.js ≥ 22.0.0,DSH 插件仅支持 `0.2.0-rc.2`;旧宿
311
325
  - 上传采用流式限额、临时 `.part` 文件和原子落盘,失败时会清理未完成文件。
312
326
  - 修改状态的路由拒绝明确的跨站请求,媒体文件继续使用随机能力令牌访问。
313
327
 
314
- [Unreleased]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.3...HEAD
328
+ [Unreleased]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.4...HEAD
329
+ [0.2.4]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.3...v0.2.4
315
330
  [0.2.3]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.2...v0.2.3
316
331
  [0.2.2]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.1...v0.2.2
317
332
  [0.2.1]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.0...v0.2.1
package/README.en.md CHANGED
@@ -46,21 +46,22 @@ These captures come from an Android browser connected to DSH under Termux/PRoot
46
46
 
47
47
  The project is at an early stage; interfaces and configuration formats may still change between releases.
48
48
 
49
- Iris 0.2.3 provides a DSH plugin and a headless CLI sharing tasks, artifacts and model routing, adding music generation, three agent skills, synchronous delivery recovery, and prompt editor improvements. Core internals have not been frozen as a public SDK.
49
+ Iris 0.2.4 provides a DSH plugin and a headless CLI sharing tasks, artifacts and model routing, with persistent image import, native Qwen editing, and explicit function assignments. Music, three agent skills, and synchronous delivery recovery remain available. Core internals have not been frozen as a public SDK.
50
50
 
51
- > Version support: Iris `0.2.x` requires Node.js `>=22.0.0` and its DSH plugin supports only the exact host version `0.2.0-rc.2`. Older DSH hosts should pin `@mokuyoaxis/dsh-iris@0.1.4` as described below instead of following npm latest. Iris and DSH have independent version numbers.
51
+ > Version support: Iris 0.2.4 supports DSH `0.2.0-rc.2` or `0.2.1-alpha.4`; Iris 0.2.0–0.2.3 supports rc.2 only. Node.js must be at least 22.0.0 and meet any higher host requirement. Older DSH hosts should pin Iris 0.1.4. See the [compatibility matrix](docs/DSH_COMPATIBILITY.md).
52
52
 
53
- ## What's new in 0.2.3
53
+ ## What's new in 0.2.4
54
54
 
55
- **Music creation, agent guidance, and media delivery recovery.**
55
+ **Image reuse, explicit function assignments, and support for the newer host.**
56
56
 
57
- - **Music generation:** assign music models independently and generate MP3/WAV through the agent, workbench, or CLI, with playback, download, export, and bounded 502 retries.
58
- - **Three agent skills:** guidance for single media operations, creative workflows, and UI acceptance; music remains optional.
59
- - **Delivery recovery:** redeliver cached synchronous results through the original task without generating again.
60
- - **Prompt editing:** retain previews after errors or cancellation, skip model calls for single-part faithful grouping, and reset instructions separately from model settings.
61
- - **Routing and format feedback:** explain text model selection and check rewrite output while retaining custom v1 configuration.
57
+ - **Persistent image import:** save an existing image through the workbench, agent, or CLI for later vision, editing, and export. The source file stays intact and no model is called.
58
+ - **Native Qwen editing:** use supported DashScope Qwen image editing models as well as chat image models; edited images retain a link to their source.
59
+ - **Explicit assignments:** image, video, TTS, music, transcription, and vision use only their assigned ordered lists. Explicit overrides must also be assigned.
60
+ - **Two host versions:** DSH rc.2 and alpha.4 use the same manifest, client peer, and Doctor compatibility boundary.
62
61
 
63
- See the [0.2.3 release notes](docs/releases/0.2.3.md) and [CHANGELOG](CHANGELOG.md) for scope and validation boundaries.
62
+ **Check assignments before upgrading:** empty lists stop new calls instead of adding models from the pool. Existing tasks retain their original bindings. Add the DSH default model explicitly to vision when needed. See the [upgrade guide](docs/FUNCTION_MODEL_ASSIGNMENTS.md).
63
+
64
+ See the [0.2.4 release notes](docs/releases/0.2.4.md) and [CHANGELOG](CHANGELOG.md); music and Skills from the previous release are documented in [0.2.3](docs/releases/0.2.3.md).
64
65
 
65
66
  Future work includes additional protocol adapters and creative workflows; see the [roadmap](docs/ROADMAP.md#后续功能方向).
66
67
 
@@ -72,7 +73,7 @@ Future work includes additional protocol adapters and creative workflows; see th
72
73
  | Entry point | Choose a pinned release under "Quickest start" below | `dsh-iris run ...` — see [Headless CLI](docs/HEADLESS_CLI.md) |
73
74
  | Data location | `$DSH_HOME/iris/v1/` (Core data root `core-v0`) | Any absolute path passed via `--data-root` |
74
75
  | Automatic observation | Yes (bounded DSH host ticks + restart takeover) | Explicit `task observe`; 0.2.2 also offers bounded `task wait` |
75
- | Dependencies | DSH `0.2.0-rc.2` and Node.js ≥ 22 | Node.js ≥ 22 and `sharp` only (`ffmpeg` for video frames) |
76
+ | Dependencies | DSH rc.2 or alpha.4, and Node.js ≥ 22 meeting host requirements | Node.js ≥ 22 and `sharp` only (`ffmpeg` for video frames) |
76
77
 
77
78
  Both paths read and write the same Core Task/Artifact facts: point the CLI at the `core-v0` data root of a DSH profile to inspect/export DSH-generated artifacts, and vice versa. Only one writer is allowed per data root.
78
79
 
@@ -90,7 +91,7 @@ Check the host with `dsh --version` and ensure `pnpm` is on your PATH. Iris and
90
91
 
91
92
  | Your DSH | Iris choice | Source |
92
93
  |---|---|---|
93
- | `0.2.0-rc.2` | `0.2.3` | Pinned npm release |
94
+ | `0.2.0-rc.2` or `0.2.1-alpha.4` | `0.2.4` | Pinned npm release |
94
95
  | `>=0.1.2-rc.1 <0.1.3-0` or `0.1.5-rc.1` | Stable `0.1.4` | Pinned npm release |
95
96
  | Other versions | No current support claim | Check host adaptation before installing |
96
97
 
@@ -111,33 +112,33 @@ npm pack @mokuyoaxis/dsh-iris@0.1.4
111
112
 
112
113
  This writes a `.tgz` to the current directory. Use `npm install @mokuyoaxis/dsh-iris@0.1.4` if you only want a regular npm dependency; that does not add a DSH profile layer. Pinning `@0.1.4` keeps selecting the old stable release after latest changes. See [npm pack](https://docs.npmjs.com/cli/v11/commands/npm-pack/). Version 0.1.4 does not contain the 0.2.0 Core media CLI or the later DSH rc.2 adaptation.
113
114
 
114
- ### DSH 0.2.0-rc.2: install 0.2.3
115
+ ### DSH rc.2 or alpha.4: install 0.2.4
115
116
 
116
117
  Install the pinned release into your Web profile:
117
118
 
118
119
  ```bash
119
- dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.3
120
+ dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4
120
121
  dsh web
121
122
  ```
122
123
 
123
124
  The plugin loads on the next DSH start. The web UI defaults to `http://127.0.0.1:3080`; open the complete URL if startup output includes authentication parameters. Reload the backend and refresh the web client after updating.
124
125
 
125
- ### Standalone CLI: install 0.2.3
126
+ ### Standalone CLI: install 0.2.4
126
127
 
127
128
  Install in your own project without DSH:
128
129
 
129
130
  ```bash
130
- npm install @mokuyoaxis/dsh-iris@0.2.3
131
+ npm install @mokuyoaxis/dsh-iris@0.2.4
131
132
  npx dsh-iris --help
132
133
  ```
133
134
 
134
135
  ### Choosing a version in dsh-market
135
136
 
136
- The marketplace entry should resolve to the full package name `@mokuyoaxis/dsh-iris`. Check both its displayed Iris version and your local `dsh --version` before installing: Iris 0.2.x is for DSH rc.2; older hosts should use the pinned `@0.1.4` commands above. Catalog and npm information may be cached. The actual npm package's `dsh.engines.dsh` and Node engines determine its declared requirements; a visible listing does not imply support for every DSH release.
137
+ The marketplace entry should resolve to the full package name `@mokuyoaxis/dsh-iris`. Check its Iris version and your local `dsh --version` against the [compatibility matrix](docs/DSH_COMPATIBILITY.md); older hosts should pin `@0.1.4`. Catalog and npm data may be cached. The actual package's top-level `engines.dsh`, Node requirement, and client peers define its requirements; a visible listing does not imply support for every DSH release.
137
138
 
138
139
  > The unscoped `dsh-iris` on npm belongs to a different plugin. Always keep the fully scoped name `@mokuyoaxis/dsh-iris` when installing or updating Iris Media.
139
140
 
140
- After the first start, open "Settings → Iris workbench → + Add provider", enter your provider base URL and API key, then click "Discover models". A single provider can start with automatic capability assignment. Full steps, image protocol selection, and failover notes are in the [user guide](user_guide.md) (Chinese).
141
+ After the first start, open "Settings → Iris workbench → + Add provider", enter your provider base URL and API key, discover models, label their capabilities, and assign them to each function. Version 0.2.4 uses explicit ordered lists for all functions; see [assignment rules and upgrade impact](docs/FUNCTION_MODEL_ASSIGNMENTS.md) (Chinese). Full steps and protocol selection are in the [user guide](user_guide.md) (Chinese).
141
142
 
142
143
  Once configured, minimal instructions can be as simple as:
143
144
 
@@ -176,7 +177,9 @@ After installing the plugin, add a provider in the Iris workbench and assign mod
176
177
 
177
178
  ## DeepSeek Harness adaptation
178
179
 
179
- dsh-iris remains a native DSH plugin. Iris 0.2.3 server registers 16 agent tools, including image editing and music, and uses host-provided routing, attachment, model, and lifecycle services. The web client contributes settings, composer, and global-overlay UI. Iris does not start another service or listen on an extra port.
180
+ dsh-iris remains a native DSH plugin. Iris 0.2.4 registers 17 agent tools, including import, editing, and music, and uses host routing, attachments, models, and lifecycle services. The web client contributes settings, composer, and global-overlay UI. Iris does not start another service or listen on an extra port.
181
+
182
+ Save an uploaded or local image as a persistent Artifact for viewing, editing and export; see [image import](docs/IMAGE_IMPORT.md) (Chinese).
180
183
 
181
184
  | Iris version | DSH range | Verification |
182
185
  |---|---|---|
@@ -185,8 +188,9 @@ dsh-iris remains a native DSH plugin. Iris 0.2.3 server registers 16 agent tools
185
188
  | `0.2.0` | Only `0.2.0-rc.2` | Installed-service isolation checks, Core diff, and SlotRegistry; user demonstration reported successful, with detailed browser actions and asynchronous restart/rollback verification continuing |
186
189
  | `0.2.2` | Only `0.2.0-rc.2` | Installed-service checks cover 15 tools and 31 boundaries; complete browser/mobile and real asynchronous restart acceptance remain pending |
187
190
  | `0.2.3` | Only `0.2.0-rc.2` | Adds music and a third skill; check actual loading with Host Doctor after upgrading |
191
+ | `0.2.4` | `0.2.0-rc.2` or `0.2.1-alpha.4` | 17 tools / 3 skills; actual SDK, loader, and client slot isolation checks; full browser and hot reload checks remain separate |
188
192
 
189
- See the [rc.2 adaptation notes](docs/DSH_RC2_ADAPTATION.md) for scope. The published npm 0.1.4 package does not contain these later changes.
193
+ See the [compatibility matrix](docs/DSH_COMPATIBILITY.md) for the current scope and [rc.2 adaptation notes](docs/DSH_RC2_ADAPTATION.md) for historical changes. npm 0.1.4 does not contain these later adaptations.
190
194
 
191
195
  Iris 0.2.x no longer claims older DSH support; historical validation does not automatically cover this version. DSH `0.2.0` stable and other rc versions are also outside its support range. Automated checks cover server loading, tool and Skill registration, routes, the client bundle, and UI slots separately so Doctor can identify which boundary failed.
192
196
 
@@ -199,7 +203,8 @@ Core and the DSH Adapter are being separated: DSH keeps loading the same npm pac
199
203
  | Tool | Purpose |
200
204
  |---|---|
201
205
  | `iris_draw_image` | Generate images from a prompt |
202
- | `iris_edit_image` | Edit a source Artifact into a new image with a chat image model, preserving provenance |
206
+ | `iris_import_image` | Save a local or session image as a persistent Artifact for later operations |
207
+ | `iris_edit_image` | Edit a source Artifact with a chat image model or supported native Qwen edit model, preserving provenance |
203
208
  | `iris_generate_video` | Text-to-video, image-to-video, or S2V digital-human video |
204
209
  | `iris_generate_music` | Generate music from a description and save playable, downloadable audio |
205
210
  | `iris_speak_text` | Synthesize speech from text |
@@ -231,7 +236,7 @@ Look, locate and OCR accept a local path, session attachment or Core image `arti
231
236
 
232
237
  Look, OCR chunks, locate and chat editing prepare sending copies using account/model budgets, with an 8 MiB default. Core originals, downloaded dimensions and hashes stay intact. OCR reports resizing and small-text risk; locate returns source-pixel coordinates. See [input budgets](docs/CLI_MANAGEMENT.md#看图输入预算).
233
238
 
234
- Chat editing uses a source Artifact ID and saves a linked new image; it requires a model configured for chat image generation. See [Artifact editing](docs/CLI_MANAGEMENT.md#artifact-聊天改图) and [workbench management](docs/WORKBENCH_ARTIFACTS.md) for filtering, selection, downloads and recovery.
239
+ Image editing uses a source Artifact ID and saves a linked new image through a chat image model or, in 0.2.4, supported native DashScope Qwen models. See [Artifact editing](docs/CLI_MANAGEMENT.md#artifact-聊天改图) and [workbench management](docs/WORKBENCH_ARTIFACTS.md) for supported models, filtering, selection, downloads and recovery.
235
240
 
236
241
  Iris accepts three file sources, in the recommended order:
237
242
 
@@ -280,7 +285,7 @@ npx @mokuyoaxis/dsh-iris doctor --json
280
285
 
281
286
  The installed binary is `dsh-iris`. Exit code `0` is healthy, `1` means warnings, and `2` means hard errors. Offline Doctor checks Node.js, sharp, ffmpeg/ffprobe, a real but cleaned-up storage write probe, configuration, models/assignments, task semantics, temporary files, and orphaned or missing artifacts.
282
287
 
283
- A running DSH instance also provides a “Host diagnostics” card and the authenticated `/iris/api/doctor` JSON. It checks the DSH version, plugin, current tools and bundled skills, four route groups, host capabilities, client version, and four UI Slots. Version 0.2.3 checks 16 tools and three skills. It reads safe registration evidence without calling Browser, models, or providers. See [Host Doctor](docs/HOST_DOCTOR.md).
288
+ A running DSH instance also provides a “Host diagnostics” card and authenticated `/iris/api/doctor` JSON. It checks the host version, plugin, 17 tools and three skills, four route groups, host capabilities, client version, and four UI slots. It reads safe registration evidence without calling Browser, models, or providers. See [Host Doctor](docs/HOST_DOCTOR.md).
284
289
 
285
290
  ## Composed workflow example
286
291
 
package/README.md CHANGED
@@ -44,21 +44,22 @@ dsh-iris 为 Agent、Iris 工作台和独立 CLI 提供图像、视频、音乐
44
44
 
45
45
  项目目前处于早期版本,接口和配置格式仍可能随版本迭代调整。
46
46
 
47
- Iris 0.2.3 同时提供 DSH 插件与无 DSH 的 CLI,共用任务、产物和模型路由,加入音乐生成、三项 Agent Skills 和同步媒体交付恢复,并完善提示词编辑。Core 内部接口尚未冻结为公共 SDK。
47
+ Iris 0.2.4 同时提供 DSH 插件与无 DSH 的 CLI,共用任务、产物和模型路由,支持图片导入、原生 Qwen 改图及统一功能分配。音乐、三项 Agent Skills 和同步媒体交付恢复继续可用。Core 内部接口尚未冻结为公共 SDK。
48
48
 
49
- > 版本支持:Iris `0.2.x` 要求 Node.js `>=22.0.0`,DSH 插件仅支持准确版本 `0.2.0-rc.2`。旧 DSH 使用下文列出的 `@mokuyoaxis/dsh-iris@0.1.4`,不要直接跟随 npm latest 更新。Iris 与 DSH 的版本号独立。
49
+ > 版本支持:Iris 0.2.4支持DSH `0.2.0-rc.2` 或 `0.2.1-alpha.4`,Iris 0.2.0–0.2.3仅支持rc.2。Node.js最低22.0.0;宿主若要求更高,以宿主为准。旧DSH固定使用Iris0.1.4,详见 [兼容矩阵](docs/DSH_COMPATIBILITY.md)。
50
50
 
51
- ## 0.2.3 更新重点
51
+ ## 0.2.4 更新重点
52
52
 
53
- **音乐创作、Agent 使用引导与媒体交付恢复**。
53
+ **图片续作、明确的功能模型分配与新版宿主兼容**。
54
54
 
55
- - **音乐生成**:独立分配音乐模型,通过 Agent、工作台或 CLI 生成 MP3/WAV,可试听、下载和导出;支持配置有限的 502 重试。
56
- - **三项 Agent Skills**:分别指导单步媒体操作、多步骤创作与界面验收;配乐按需加入。
57
- - **交付恢复**:完整同步结果已缓存时,可沿原任务重新交付,无需重新生成。
58
- - **提示词编辑**:失败和取消保留已有预览,单片段忠实整理无需模型调用,配置恢复可只重置默认指令。
59
- - **路由与格式说明**:显示文本模型选择原因,检查改写正文格式,保留自定义 v1 配置。
55
+ - **图片导入**:通过工作台、Agent或CLI把已有图片保存为持久作品,继续看图、改图和导出;保留源文件,不调用模型。
56
+ - **原生 Qwen 改图**:除聊天生图外,支持DashScope Qwen带图编辑,修改版另存为关联原图的新作品。
57
+ - **统一功能分配**:生图、视频、TTS、Music、转写和视觉只使用各自明确分配的有序名单;临时指定也须已分配。
58
+ - **双版本宿主**:兼容DSH rc.2及alpha.4,manifest、客户端peer和Doctor使用相同范围。
60
59
 
61
- 完整变化和升级说明见 [0.2.3 发布说明](docs/releases/0.2.3.md) 与 [CHANGELOG](CHANGELOG.md)。
60
+ **升级前请检查功能分配**:空名单会停止新调用,不再自动补入模型池;已有任务仍可按原绑定查询和恢复。DSH默认视觉须明确加入视觉名单。详见 [升级说明](docs/FUNCTION_MODEL_ASSIGNMENTS.md)。
61
+
62
+ 完整变化见 [0.2.4 发布说明](docs/releases/0.2.4.md) 与 [CHANGELOG](CHANGELOG.md);上一版音乐与Skills见 [0.2.3](docs/releases/0.2.3.md)。
62
63
 
63
64
  音乐的接口格式、模型分配与使用示例见 [Music](docs/MUSIC.md)。其他协议与后续能力见 [路线图](docs/ROADMAP.md#后续功能方向)。
64
65
 
@@ -70,7 +71,7 @@ Iris 0.2.3 同时提供 DSH 插件与无 DSH 的 CLI,共用任务、产物和
70
71
  | 入口 | 按下文「最快开始」选择固定版本 | `dsh-iris run ...`,见 [Headless CLI](docs/HEADLESS_CLI.md) |
71
72
  | 数据位置 | `$DSH_HOME/iris/v1/`(Core 数据根 `core-v0`) | 显式 `--data-root` 指定的任意绝对路径 |
72
73
  | 自动观察 | 有(DSH Host 有界节拍 + 重启接管) | 显式 `task observe`;0.2.2 另提供有界 `task wait` |
73
- | 依赖 | DSH `0.2.0-rc.2`、Node.js ≥ 22 | 仅 Node.js ≥ 22 与 `sharp`(视频抽帧另需 `ffmpeg`) |
74
+ | 依赖 | DSH rc.2或alpha.4、Node.js ≥ 22(满足宿主要求) | 仅 Node.js ≥ 22 与 `sharp`(视频抽帧另需 `ffmpeg`) |
74
75
 
75
76
  两条路径读写同一份 Core Task/Artifact 事实:CLI 指向 DSH profile 的 `core-v0` 数据根即可 inspect/export DSH 生成的作品,反之亦然。同一数据根只允许一个写者。
76
77
 
@@ -88,7 +89,7 @@ Iris 0.2.3 同时提供 DSH 插件与无 DSH 的 CLI,共用任务、产物和
88
89
 
89
90
  | 你的 DSH | Iris 选择 | 安装来源 |
90
91
  |---|---|---|
91
- | `0.2.0-rc.2` | `0.2.3` | 固定 npm 版本 |
92
+ | `0.2.0-rc.2` 或 `0.2.1-alpha.4` | `0.2.4` | 固定 npm 版本 |
92
93
  | `>=0.1.2-rc.1 <0.1.3-0` 或 `0.1.5-rc.1` | 稳定版 `0.1.4` | 固定 npm 版本 |
93
94
  | 其他版本 | 暂无当前支持声明 | 先核对宿主适配,不能按相邻版本推定兼容 |
94
95
 
@@ -109,33 +110,33 @@ npm pack @mokuyoaxis/dsh-iris@0.1.4
109
110
 
110
111
  命令会在当前目录生成 `.tgz`。只需安装为普通 npm 依赖时可使用 `npm install @mokuyoaxis/dsh-iris@0.1.4`;这不会自动把插件加入 DSH profile。固定 `@0.1.4` 可在 latest 更新后继续取得旧稳定版本,见 [npm pack 文档](https://docs.npmjs.com/cli/v11/commands/npm-pack/)。0.1.4 不包含 0.2.0 的 Core 媒体 CLI,也不包含 DSH rc.2 的后续适配。
111
112
 
112
- ### DSH 0.2.0-rc.2:安装 0.2.3
113
+ ### DSH rc.2或alpha.4:安装 0.2.4
113
114
 
114
115
  安装固定版本到 Web profile:
115
116
 
116
117
  ```bash
117
- dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.3
118
+ dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4
118
119
  dsh web
119
120
  ```
120
121
 
121
122
  插件在下一次 DSH 启动时装载。Web UI 默认位于 `http://127.0.0.1:3080`;启动输出带认证参数时请打开完整 URL。更新后需重新加载后端并刷新客户端。
122
123
 
123
- ### 独立 CLI:安装 0.2.3
124
+ ### 独立 CLI:安装 0.2.4
124
125
 
125
126
  在自己的项目中安装,无需 DSH:
126
127
 
127
128
  ```bash
128
- npm install @mokuyoaxis/dsh-iris@0.2.3
129
+ npm install @mokuyoaxis/dsh-iris@0.2.4
129
130
  npx dsh-iris --help
130
131
  ```
131
132
 
132
133
  ### dsh-market 安装时的版本选择
133
134
 
134
- 市场条目应对应完整包名 `@mokuyoaxis/dsh-iris`。安装前同时核对市场显示的 Iris 版本与本机 `dsh --version`:Iris 0.2.x 仅用于 DSH rc.2;旧宿主使用上面的固定 `@0.1.4` 命令。市场目录与 npm 信息可能有缓存,以实际 npm 包的 `dsh.engines.dsh` 和 Node engines 为准;市场中可见不代表任意 DSH 版本兼容。
135
+ 市场条目应对应完整包名 `@mokuyoaxis/dsh-iris`。安装前同时核对市场显示的Iris版本与本机 `dsh --version`,按 [兼容矩阵](docs/DSH_COMPATIBILITY.md) 选择;旧宿主使用固定 `@0.1.4`。市场目录与npm信息可能有缓存,以实际包的顶层 `engines.dsh`、Node要求及客户端peer为准;市场中可见不代表任意DSH版本兼容。
135
136
 
136
137
  > npm 上无 scope 的 `dsh-iris` 属于另一款插件。安装和更新 Iris Media 时必须保留完整包名 `@mokuyoaxis/dsh-iris`。
137
138
 
138
- 首次启动后,打开“设置 → Iris 工作台 → + 添加供应商”,填入供应商 Base URL 和 API Key,再点“发现模型”。单供应商可以先使用自动能力分配。完整步骤、图片协议选择和故障转移说明见[用户指南](user_guide.md)。
139
+ 首次启动后,打开“设置 → Iris 工作台 → + 添加供应商”,填入供应商Base URL和API Key,再点“发现模型”,标注能力并为所需功能分配模型。0.2.4统一严格名单,升级差异见 [功能模型分配](docs/FUNCTION_MODEL_ASSIGNMENTS.md);完整步骤和协议选择见 [用户指南](user_guide.md)。
139
140
 
140
141
  配置完成后,最小指令可以是:
141
142
 
@@ -175,7 +176,9 @@ DSH 的 profile 与插件命令由[官方安装说明](https://github.com/deepse
175
176
 
176
177
  ## DeepSeek Harness 适配
177
178
 
178
- dsh-iris 仍按 DSH 原生插件装载。0.2.3 服务端注册 16 个 Agent 工具(含改图与音乐),并使用宿主提供的路由、附件、模型和生命周期能力;Web 客户端接入设置页、会话输入区与全局悬浮层。插件不会启动额外服务或监听端口。
179
+ dsh-iris仍按DSH原生插件装载。0.2.4服务端注册17个Agent工具,包含图片导入、改图与音乐;使用宿主提供的路由、附件、模型和生命周期能力。Web客户端接入设置页、会话输入区与全局悬浮层,不启动额外服务或监听端口。
180
+
181
+ 上传图片或本地图片可保存为持久作品,继续看图、改图及导出,见 [图片导入](docs/IMAGE_IMPORT.md)。
179
182
 
180
183
  | Iris 范围 | DSH 范围 | 验证记录 |
181
184
  |---|---|---|
@@ -184,8 +187,9 @@ dsh-iris 仍按 DSH 原生插件装载。0.2.3 服务端注册 16 个 Agent 工
184
187
  | `0.2.0` | 仅 `0.2.0-rc.2` | 真实安装服务隔离验收、Core diff 与 SlotRegistry;已有用户实机演示反馈,逐项浏览器操作与异步重启/回退继续验收 |
185
188
  | `0.2.2` | 仅 `0.2.0-rc.2` | 真实安装服务隔离检查覆盖 15 个工具与 31 项边界;完整浏览器/移动端及真实异步重启验收仍待完成 |
186
189
  | `0.2.3` | 仅 `0.2.0-rc.2` | 增加音乐工具和第三项 Skill;升级后用宿主诊断检查实际装载 |
190
+ | `0.2.4` | `0.2.0-rc.2` 或 `0.2.1-alpha.4` | 17工具/3项Skill;两版实际SDK、加载器与界面插槽隔离验收,完整浏览器/热更新另验 |
187
191
 
188
- rc.2 修正与验证范围见[适配说明](docs/DSH_RC2_ADAPTATION.md);已发布 npm 0.1.4 包不包含这项后续适配。
192
+ 当前声明与验收范围见 [版本兼容](docs/DSH_COMPATIBILITY.md),早期rc.2修正见 [历史适配记录](docs/DSH_RC2_ADAPTATION.md);npm0.1.4不包含这些后续适配。
189
193
 
190
194
  Iris 0.2.x 不再声明支持旧 DSH;旧版的历史验收不自动覆盖当前版本。DSH `0.2.0` 正式版及其他 rc 同样未列入支持范围。自动化测试分别检查服务端装载、工具与 Skill 注册、路由、客户端 bundle 和 Slot;其中一层失效时,Doctor 应指出具体边界。
191
195
 
@@ -198,7 +202,8 @@ Core 与 DSH Adapter 正在分离,DSH 继续加载同一个 npm 包,Adapter
198
202
  | 工具 | 用途 |
199
203
  |---|---|
200
204
  | `iris_draw_image` | 根据提示词生成图片 |
201
- | `iris_edit_image` | 按原图 Artifact ID 和修改指令创建关联来源的新图片(聊天生图模型) |
205
+ | `iris_import_image` | 将本地图片或会话图片保存为持久作品,返回后续操作使用的作品ID |
206
+ | `iris_edit_image` | 按原图 Artifact ID 和修改指令创建关联来源的新图片(聊天生图或已接入的原生 Qwen 改图模型) |
202
207
  | `iris_generate_video` | 生成文生视频、图生视频或 S2V 数字人视频 |
203
208
  | `iris_generate_music` | 根据描述生成音乐,保存为可试听、下载的音频作品 |
204
209
  | `iris_speak_text` | 将文本合成为语音 |
@@ -230,7 +235,7 @@ Core 与 DSH Adapter 正在分离,DSH 继续加载同一个 npm 包,Adapter
230
235
 
231
236
  看图、OCR 每块、定位和聊天改图按账号/模型预算准备发送副本,默认 8 MiB,可调整大小与最长边;Core 原图、下载尺寸和哈希保持不变。OCR 标明缩小后的实际尺寸与细字风险,定位返回原图像素坐标。详见 [视觉输入预算](docs/CLI_MANAGEMENT.md#看图输入预算)。
232
237
 
233
- Core 图片改图直接使用来源 ID,修改版另存为新作品;[聊天改图](docs/CLI_MANAGEMENT.md#artifact-聊天改图)仅支持配置了聊天生图协议的模型。作品分页、过滤、跨页选择、下载与回收操作见 [工作台作品管理](docs/WORKBENCH_ARTIFACTS.md)。
238
+ Core图片改图直接使用来源ID,修改版另存为新作品;[改图](docs/CLI_MANAGEMENT.md#artifact-聊天改图)支持聊天生图协议及0.2.4的DashScope原生Qwen改图。作品分页、过滤、跨页选择、下载与回收操作见 [工作台作品管理](docs/WORKBENCH_ARTIFACTS.md)。
234
239
 
235
240
  Iris 支持三种文件来源,推荐顺序如下:
236
241
 
@@ -279,7 +284,7 @@ npx @mokuyoaxis/dsh-iris doctor --json
279
284
 
280
285
  安装后的二进制名是 `dsh-iris`。退出码 `0` 表示正常、`1` 表示有警告、`2` 表示有硬错误。离线 Doctor 检查 Node、sharp、ffmpeg/ffprobe、数据目录真实写入、配置、模型/分配、任务语义、临时文件和孤儿/缺失产物。
281
286
 
282
- 运行中的 DSH 另在 Iris 工作台提供“宿主诊断”卡片,并公开已认证的 `/iris/api/doctor` JSON:检查 DSH 版本、插件、当前工具与随包 Skill、四组路由、Browser/附件/模型能力、客户端版本和四个 UI Slot。0.2.3 检查 16 个工具和三项 Skill。它只读取安全快照与注册证据,不调用 Browser、模型或 Provider;详见 [Host Doctor](docs/HOST_DOCTOR.md)。
287
+ 运行中的DSH另在Iris工作台提供“宿主诊断”卡片及已认证的 `/iris/api/doctor` JSON,检查宿主版本、插件、17工具/3项Skill、四组路由、宿主能力、客户端版本和四个UI Slot。它只读取安全快照与注册证据,不调用Browser、模型或Provider,详见 [Host Doctor](docs/HOST_DOCTOR.md)。
283
288
 
284
289
  ## 组合工作流示例
285
290
 
package/bin/dsh-iris.js CHANGED
@@ -73,6 +73,7 @@ function usage() {
73
73
  ' dsh-iris task cancel <id> --data-root <absolute-path> --provider-config <absolute-path>',
74
74
  ' dsh-iris task retry <id> --data-root <absolute-path> --provider-config <absolute-path> --input <json> --confirm-billing [--model-ref <providerId::modelId>]',
75
75
  ' dsh-iris artifact inspect <id> --data-root <absolute-path>',
76
+ ' dsh-iris artifact import --data-root <absolute-path> --input <json with image_path>',
76
77
  ' dsh-iris artifact list --data-root <absolute-path>',
77
78
  ' artifact list supports --offset, --limit, --kind, --media-type, --task-id.',
78
79
  ' dsh-iris artifact export-many --data-root <absolute-path> --input <json> --output <absolute-directory>',
@@ -564,6 +565,13 @@ async function main(args) {
564
565
  return 0;
565
566
  }
566
567
 
568
+ if (args[0] === 'artifact' && args[1] === 'import') {
569
+ const options = flags(args.slice(2), ['data-root', 'input']);
570
+ const result = await withRuntime('writer', options['data-root'], commands => commands.execute('artifact.import', jsonInput(options.input)));
571
+ console.log(JSON.stringify(result, null, 2));
572
+ return 0;
573
+ }
574
+
567
575
  if (args[0] === 'artifact' && args[1] === 'inspect' && args[2]) {
568
576
  const options = flags(args.slice(3), ['data-root']);
569
577
  const result = await withRuntime('reader', options['data-root'], (commands) =>
@@ -2,18 +2,18 @@
2
2
 
3
3
  把下面一段交给负责安装或使用 Iris 的 Agent。版本与发布状态以当前 [README](../README.md) 为准;Iris 和 DSH 的版本号独立。
4
4
 
5
- 本文对应 Iris 0.2.3。使用时先核对实际版本、可用工具和功能分配;旧宿主仍固定安装 0.1.4。
5
+ 本文对应Iris0.2.4。执行安装命令前先核对README的发布状态,再确认实际版本、工具和功能分配;旧宿主仍固定安装0.1.4。
6
6
 
7
7
  ## 中文
8
8
 
9
9
  ```text
10
10
  请根据本仓库 README,帮我安装并使用 Iris(@mokuyoaxis/dsh-iris)。
11
11
  先确认运行环境、目标 DSH profile,并用 dsh --version 核对宿主;Iris 0.2.x 要求 Node.js >=22.0.0(旧 npm 0.1.4 的历史要求为 >=20.10.0):
12
- - DSH 0.2.0-rc.2:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.3。
12
+ - DSH 0.2.0-rc.2或0.2.1-alpha.4:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4。
13
13
  - DSH >=0.1.2-rc.1 <0.1.3-0 或 0.1.5-rc.1:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.1.4;只下载用 npm pack @mokuyoaxis/dsh-iris@0.1.4。
14
14
  - 其他 DSH 版本:先报告没有支持声明,不自行升级宿主或跳过版本检查。
15
- 没有 DSH、希望用 CLI 时,按 docs/HEADLESS_CLI.md 使用 npm 0.2.3;npm 0.1.4 不含新的 Core 媒体 CLI。
16
- 先用 --help 和 Doctor 核对实际版本与命令。Iris 0.2.3 支持图片、视频、语音、视觉与音乐入口。音乐需明确分配模型并选择 Chat Completions(内嵌音频)协议,详见 docs/MUSIC.md;使用 iris_generate_music。
15
+ 没有DSH、希望用CLI时,按docs/HEADLESS_CLI.md使用npm0.2.4;npm0.1.4不含新的Core媒体CLI。
16
+ 先用--help和Doctor核对实际版本与命令。六类模型功能都需明确分配,空名单停止新调用;DSH默认视觉也须明确加入。图片导入用iris_import_image,改图用iris_edit_image;音乐用iris_generate_music并配置Chat Completions(内嵌音频)协议,见docs/MUSIC.md。
17
17
  从 dsh-market 安装也要核对实际包名、版本和兼容范围;市场缓存不代表支持旧宿主,不对旧 DSH 安装 latest。
18
18
  若使用其他 profile,把示例中的 web 换成已确认的目标。保留完整 scoped 包名,不把 dsh-iris 当作同一 npm 包。
19
19
  安装后检查 Doctor 和工具可达性,再执行我指定的媒体任务;不要输出 API Key,重启宿主前说明影响。
@@ -26,11 +26,11 @@
26
26
  ```text
27
27
  Help me install and use Iris (@mokuyoaxis/dsh-iris) according to this repository's README.
28
28
  Check the environment, target DSH profile, and dsh --version first; Iris 0.2.x requires Node.js >=22.0.0 (the published npm 0.1.4 historically requires >=20.10.0):
29
- - DSH 0.2.0-rc.2: pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.3.
29
+ - DSH 0.2.0-rc.2 or 0.2.1-alpha.4: pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4.
30
30
  - DSH >=0.1.2-rc.1 <0.1.3-0 or 0.1.5-rc.1: pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.1.4; download only with npm pack @mokuyoaxis/dsh-iris@0.1.4.
31
31
  - Other DSH versions: report the missing support claim; do not upgrade the host or bypass its version checks automatically.
32
- For CLI use without DSH, follow docs/HEADLESS_CLI.md using npm 0.2.3; npm 0.1.4 does not include the new Core media CLI.
33
- Check --help, Doctor and the actual installed version before using commands. Iris 0.2.3 offers image, video, speech, vision, and music operations. Music requires explicit model assignment and the Chat Completions inline-audio protocol described in docs/MUSIC.md; use iris_generate_music for music generation.
32
+ For CLI use without DSH, follow docs/HEADLESS_CLI.md using npm 0.2.4; npm 0.1.4 does not include the new Core media CLI. Check the README publication status first.
33
+ Check --help, Doctor and the actual installed version. All six model functions require explicit assignments; empty lists stop new calls. Add DSH default vision explicitly when needed. Use iris_import_image for import, iris_edit_image for editing, and iris_generate_music with its configured inline-audio protocol for music.
34
34
  For dsh-market, check the actual package name, version, and compatibility range too. Cached listings do not establish older-host support; do not install latest on an old DSH host.
35
35
  Replace web with the confirmed profile when needed. Keep the scoped package name; unscoped dsh-iris is a different npm package.
36
36
  Check Doctor and tool availability after installation, then carry out my requested media task. Do not expose API keys; explain the impact before restarting the host.
@@ -1,6 +1,6 @@
1
1
  # Iris 架构与边界
2
2
 
3
- 状态:本文面向 **Iris 0.2.2**。0.2.0 建立实例化 Core Runtime、Headless CLI、共享 Provider 生命周期与 Task/Artifact 事实;0.2.2 补共享视觉、模型级图片协议、Artifact 编辑及维护入口。DSH 插件仅支持 `0.2.0-rc.2`,Node.js 最低为 22.0.0;旧宿主固定使用 npm `0.1.4`。Core 内部 API 尚未冻结为公共 SDK。
3
+ 状态:本文面向 **Iris 0.2.4**。0.2.0建立实例化Core Runtime、Headless CLI及共享Task/Artifact事实;后续加入共享视觉、图片编辑、音乐和交付恢复。0.2.4补图片导入、原生Qwen改图、统一功能分配及DSH双版本声明。插件支持rc.2或alpha.4,Node.js最低22.0.0;旧宿主固定Iris0.1.4,详见 [兼容矩阵](DSH_COMPATIBILITY.md)。Core内部API尚未冻结为公共SDK。
4
4
 
5
5
  ## 当前形态
6
6
 
@@ -74,6 +74,8 @@ DSH Host / Cordis Headless CLI
74
74
 
75
75
  ## Provider 边界
76
76
 
77
+ 0.2.4将六类功能统一为严格有序分配名单:不补入全局池,临时指定只绑定名单内单项。DSH默认视觉为显式宿主资源,不作为隐式兜底;手动实测与旧任务恢复保持独立。配置格式、Core受理纪律与生产依赖保持。升级范围见 [功能模型分配](FUNCTION_MODEL_ASSIGNMENTS.md)。下方0.2.2描述保留当时能力声明变更的背景。
78
+
77
79
  0.2.2按功能组织有序模型候选池,能力来自明确模型标签、旧能力字段绑定或供应商能力元数据。裸账号不物化默认模型,模型名称不授权进入候选链;明确空池与空标签保持权威。模型与供应商复合身份用于底层执行器,功能入口、分配排序及安全 failover 没有改为模型中心产品或默认轮转。旧 0.2.1 的能力推断行为不再用于裸账号或模型名称赋能。
78
80
 
79
81
  Provider Adapter v0 固定 discovery、submit、poll、cancel、download 与 error mapping 六类生命周期操作;提交前的临时输入上传是可选准备能力,不自动成为 Core 事实。协议实现只接收显式凭据、模型和媒体端点,Core 保存复合模型身份与非敏感 binding,不保存端点原文。
@@ -32,6 +32,10 @@ dsh-iris media html --data-root /path/core --input-file /path/html-input.json \
32
32
 
33
33
  ## 账号、模型与配置
34
34
 
35
+ 已有本地图片可先用0.2.4的 `artifact import` 保存为作品ID,再执行看图或改图;导入无需账号或模型,见 [图片导入](IMAGE_IMPORT.md)。
36
+
37
+ 0.2.4的六类功能均需明确分配;`assignments clear`停止新调用,已有Task仍按原绑定观察和补交付。临时指定须在名单内。旧自动池升级及DSH宿主资源见 [功能模型分配](FUNCTION_MODEL_ASSIGNMENTS.md)。
38
+
35
39
  | 命令 | 行为 |
36
40
  | --- | --- |
37
41
  | `config init/show/check` | 创建空私有配置(不覆盖)、脱敏查看、检查重复账号和失效分配 |
@@ -53,6 +57,8 @@ dsh-iris media html --data-root /path/core --input-file /path/html-input.json \
53
57
 
54
58
  上述命令均需 `--provider-config /path/providers.json`。`<ref>` 必须是 `providerId::modelId`;媒体 run 的既有输入规则不变。`models test` 本身是显式真实请求,可能消耗额度,只调用指定模型,成功后解除该模型的冷却或耗尽停用。视频/转写未提供 `--input` 时返回 `skipped:true`,不请求供应商、不记录成功。`models list` 对受阻模型显示 `rateLimited`,短时限流另有 `retryAt`,明确耗尽另有 `reason`。
55
59
 
60
+ 视觉分配还可保存宿主资源 `host:current-vision`,供 DSH 使用;它不是 Provider 模型,独立 CLI 不执行该项,`models` 命令仍只管理普通复合引用。
61
+
56
62
  ```bash
57
63
  dsh-iris providers add --provider-config /path/providers.json --input-file /path/private-provider.json
58
64
  dsh-iris models caps 'aliyun::qwen3-vl-flash' --provider-config /path/providers.json \
@@ -125,16 +131,18 @@ dsh-iris run image --data-root /path/core --provider-config /path/providers.json
125
131
 
126
132
  ## Artifact 聊天改图
127
133
 
128
- 为 `run image` 提供 `source_artifact_id`,将当前 Core 中的原图与修改指令一起发送给支持带图编辑的 `openai-chat-images` 模型:
134
+ 为 `run image` 提供 `source_artifact_id`,将当前Core原图与修改指令一起发送给带图编辑模型。支持openai-chat-images,0.2.4另支持DashScope原生Qwen改图:
129
135
 
130
136
  ```bash
131
137
  dsh-iris run image --data-root /path/core --provider-config /path/providers.json \
132
138
  --input '{"source_artifact_id":"artifact_ID","prompt":"把蓝色发饰改成白色,保留人物、服装和构图","model_ref":"gateway::gemini-image"}'
133
139
  ```
134
140
 
135
- 来源必须是同一数据根中的有效 Artifact ID(`artifact_` 后 24 位十六进制),最多 20 MiB 的静态 PNG/JPEG/WebP;创建 Task 前核验哈希、MIME 和真实格式。不需要导出原图,不支持 GIF/动画或蒙版。省略 `model_ref` 时沿用生图候选顺序,只保留聊天生图协议;显式指定其他协议会在 HTTP 前拒绝,不误发普通文生图。模型是否实际支持编辑由上游决定。
141
+ 来源必须是同一数据根中的有效 Artifact ID(`artifact_` 后 24 位十六进制),最多 20 MiB 的静态 PNG/JPEG/WebP;创建 Task 前核验哈希、MIME 和真实格式。不需要导出原图,不支持 GIF/动画或蒙版。省略 `model_ref` 时沿用当前生图分配顺序,只保留已接入的带图编辑模型;显式指定仍须在生图名单内,不支持的模型会在 HTTP 前拒绝,不误发普通文生图。模型实际可用性由上游决定。
142
+
143
+ DashScope 原生改图使用 `imageProtocol: dashscope`(或继承同协议账号),当前接入 `qwen-image-edit`、`qwen-image-edit-max/plus`、`qwen-image-2.0/pro` 及其日期快照。模型还须显式声明 `image-gen` 并加入生图分配名单;名称本身不会授予能力。可将上例的 `model_ref` 换成已分配的 `bailian::qwen-image-edit-max`。原图以 data URL 发送到 `/api/v1/services/aigc/multimodal-generation/generation`,返回图片 URL 后立即保存为 Core 作品。`qwen-image-plus/max` 等纯文生图模型,以及尚未接入的其他 Qwen 版本,不作为原生改图候选。请求结构参考[百炼原生改图文档](https://help.aliyun.com/en/model-studio/qwen-image-edit-api)。
136
144
 
137
- 原图只读,发送副本复用默认 8 MiB 与账号/模型 `visionInput`,按每个实际候选分别处理。新 Task 保存 `sourceArtifactId`,新 Artifact 保存 `derived-from` 来源关系;输出原字节及 MIME 保留。返回的新 Artifact ID 可继续 `vision look/ocr`、导出或编辑。
145
+ 原图只读,发送副本复用默认 8 MiB 与账号/模型 `visionInput`,按每个实际候选分别处理;原生 Qwen 发送副本另限制在 10 MiB 内。新 Task 保存 `sourceArtifactId`,新 Artifact 保存 `derived-from` 来源关系;输出原字节及 MIME 保留。返回的新 Artifact ID 可继续 `vision look/ocr`、导出或编辑。
138
146
 
139
147
  未知受理、纯文字响应和交付失败不会自动重提或切换端点。知情 `task retry --confirm-billing true` 必须在新的 `--input` 中重新提供 `prompt` 和 `source_artifact_id`,模型覆盖使用外层 `--model-ref`。Core 删除预览会识别原图被编辑任务与新作品引用的情况。DSH 对应工具为 `iris_edit_image`,动作是 `image_edit`,工作台图片卡提供“改图”。
140
148
 
@@ -0,0 +1,43 @@
1
+ # DSH 版本兼容
2
+
3
+ Iris与DSH的版本号独立。安装前运行 `dsh --version`,并核对要安装的Iris版本;发布状态见 [README](../README.md)。
4
+
5
+ | Iris版本 | 支持的DSH版本 |
6
+ |---|---|
7
+ | 0.2.4 | `0.2.0-rc.2` 或 `0.2.1-alpha.4` |
8
+ | 0.2.0–0.2.3 | `0.2.0-rc.2` |
9
+ | 0.1.4 | `>=0.1.2-rc.1 <0.1.3-0` 或 `0.1.5-rc.1` |
10
+
11
+ 0.2.4的范围是两项准确版本,不包含其他alpha、其他rc或未来版本。扩大插件支持不要求现有rc.2用户升级宿主。Iris Core与独立CLI要求Node.js ≥ 22.0.0;DSH插件还须满足所用DSH自身更高的运行要求。
12
+
13
+ ## 安装与升级
14
+
15
+ 在上表支持的宿主中固定安装所需Iris版本,以下为0.2.4命令:
16
+
17
+ ```bash
18
+ dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4
19
+ ```
20
+
21
+ 使用其他profile时替换 `web`。更新后检查服务端装载、刷新Web客户端,并查看Iris工作台的 [宿主诊断](HOST_DOCTOR.md)。alpha.3及之后的DSH改善了插件更新与热加载,但仍以实际装载结果为准。
22
+
23
+ 0.2.4另统一了六类功能的明确模型名单。已有分配保持;以前依赖自动模型池的功能需要在升级后明确分配,见 [升级说明](FUNCTION_MODEL_ASSIGNMENTS.md)。
24
+
25
+ ## 兼容声明如何生效
26
+
27
+ 0.2.4的 `package.json` 顶层 `engines.dsh` 与五项可选客户端peer统一为 `0.2.0-rc.2 || 0.2.1-alpha.4`;现有嵌套 `dsh.engines.dsh` 保持同值。Doctor按相同版本集合诊断。Iris不把DSH客户端包安装为生产依赖。
28
+
29
+ rc.2的加载器检查DSH相关peer;alpha.4优先读取顶层 `engines.dsh`,未声明时再检查peer。只改嵌套字段不能扩大新加载器的支持范围。另外,npm默认的预览版匹配与DSH的匹配选项有差别,`^0.2.0-rc.2` 不能代替这里明确并列的两版范围。
30
+
31
+ ## 验证范围
32
+
33
+ 宿主验收使用各版官方发布的Cordis、LLM、ToolRuntime、附件、Skill、WebServer和SlotRegistry,覆盖模型路由、错误终态、视觉/OCR/定位/摘要、工具交付、作品管理及四个Iris界面插槽。模型事件由本地fixture提供,禁止外部模型请求。
34
+
35
+ 维护者可在本机已有目标SDK时运行:
36
+
37
+ ```bash
38
+ node scripts/verify-dsh-host.mjs --dsh-root /absolute/path/to/@deepseek-ai/dsh
39
+ ```
40
+
41
+ 脚本在独立临时目录使用隔离DSH_HOME,不操作日常profile。Node客户端夹具另需同版本的官方 `@deepseek-ai/dsh-client-ui-slots` SDK;实际Web前端已内嵌此模块。脚本不会自动下载依赖或升级宿主。
42
+
43
+ React/DOM和会话数据部分使用fixture,因此这项验收不代替完整浏览器操作、草稿写回、真机触摸或插件热更新验收。TLS和带前缀反代也不由loopback HTTP检查推定通过。早期rc.2适配的历史原因见 [rc.2适配记录](DSH_RC2_ADAPTATION.md)。
@@ -1,5 +1,7 @@
1
1
  # DSH 0.2.0-rc.2 适配
2
2
 
3
+ 本文保留Iris0.2.0/0.2.1适配rc.2时的背景与验证记录。当前0.2.4兼容rc.2及alpha.4,声明规则、使用步骤和验证边界见 [DSH版本兼容](DSH_COMPATIBILITY.md)。以下准确rc.2限制属于当时发行范围。
4
+
3
5
  本适配随 Iris `0.2.0` 发布;npm 0.1.4 包不包含这些后续修正。Iris 0.2.0 要求 Node.js `>=22.0.0`,DSH engines、五项客户端 peers 与 Host Doctor 仅放行准确版本 `0.2.0-rc.2`,不再沿用旧版支持窗口,也不推定其他 0.2 预览版或正式版兼容。
4
6
 
5
7
  旧 DSH `>=0.1.2-rc.1 <0.1.3-0` 或 `0.1.5-rc.1` 按历史验证范围使用稳定包 `@mokuyoaxis/dsh-iris@0.1.4`。安装与 npm tarball 下载方式见 [README](../README.md#最快开始)。保留的旧桥接与 fixture 测试不构成 Iris 0.2.0 的旧宿主支持承诺。
@@ -10,7 +12,7 @@ Iris 0.2.1 沿用相同 Node/DSH 要求,新增 Artifact 改图工具后共注
10
12
 
11
13
  | 边界 | 问题与修正 |
12
14
  |---|---|
13
- | 加载器与诊断 | rc.2 加载器检查 `peerDependencies`,原旧版客户端范围会被拒绝。当前客户端 peers、DSH engines、锁文件和 Host Doctor 均收敛到准确 rc.2,无需版本豁免。 |
15
+ | 加载器与诊断 | rc.2加载器检查peerDependencies,原旧版客户端范围会被拒绝。当时客户端peers、DSH engines、锁文件和Doctor收敛到准确rc.2,无需版本豁免;0.2.4按两版范围同步。 |
14
16
  | 会话附件 | 扫描引用时曾丢弃 `bytes/width/height`,真实 `readImage()` 因完整性不匹配拒绝读取。适配器保留这些已知事实及 `originalDimensions` 的独立副本,不猜测缺失值,不复制额外 Host 字段。 |
15
17
  | 宿主视觉 | rc.2 的 `llm.stream()` 需要明确 Provider/模型路由。默认选择仅在精确模型元数据确认接受 `image` 时成为视觉候选;文本模型、未知能力和身份漂移在生成前拒绝,错误事件以及 `finish.reason.kind` 的 `error/aborted` 不再被当作空回答或部分成功。 |
16
18
  | 客户端会话 | rc.2 列表没有旧 `current` 字段。适配器使用唯一的 `retainedBy.mainView` 持有者,通知时回读 `getSnapshot()`,卸载时释放订阅;保留旧接口,有歧义或无选择时不取任意列表项。 |
@@ -29,7 +31,7 @@ node scripts/verify-dsh-host.mjs --dsh-root /absolute/path/to/@deepseek-ai/dsh
29
31
 
30
32
  脚本在仓库外创建新临时数据根,载入实际安装的 Cordis、加载器兼容检查、附件、工具、Skill、LLM、默认模型、WebServer 与客户端 SlotRegistry。模型使用本地 Fake Adapter,正常流遵循安装包的 `index` 和对象终态格式,并验证真实 Runtime 将异常转换为失败终态;禁止外部请求。会话日志和列表是显式 fixture,宿主进程入口是已核实 DSH bin 的模拟。实际 WebServer 只绑定临时 loopback 端口,退出时卸载所有 Fiber。临时目录与 `report.json` 保留供复核。
31
33
 
32
- 当前脚本检查 15 个工具、2 项 Skill、Doctor 路由、DSH → Core diff → DSH 附件,以及四个客户端座位的注册和卸载。SlotRegistry 使用安装包中的真实代码,React/DOM 为 stub,因此不证明完整 Web profile 装载、实际组件渲染、点击和草稿写回。另用 `scripts/verify-headless-package.mjs --offline` 验证当前 tarball 在无 DSH/Cordis 安装树中执行 CLI 和 Artifact 导出。
34
+ 当时脚本检查15工具、2项Skill、Doctor路由、Core diff与附件,以及四个客户端座位。0.2.4检查17工具/3项Skill及两版宿主。SlotRegistry使用实际安装包代码,React/DOM为stub,不证明完整Web profile、实际渲染、点击和草稿写回。另用 `scripts/verify-headless-package.mjs --offline` 验证无DSH/Cordis安装树中的CLI和作品导出。
33
35
 
34
36
  ## 当前限制
35
37