@mokuyoaxis/dsh-iris 0.2.4 → 0.2.6

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 (53) hide show
  1. package/.dsh/skills/iris-use/SKILL.md +2 -2
  2. package/.dsh/skills/iris-use/references/media-contract.md +2 -2
  3. package/CHANGELOG.md +38 -1
  4. package/README.en.md +34 -41
  5. package/README.md +35 -40
  6. package/bin/dsh-iris.js +29 -12
  7. package/docs/AGENT_QUICKSTART.md +11 -13
  8. package/docs/ARCHITECTURE.md +1 -1
  9. package/docs/CLI_MANAGEMENT.md +5 -1
  10. package/docs/DSH_COMPATIBILITY.md +38 -8
  11. package/docs/DSH_PROVIDER_CONNECTIONS.md +34 -0
  12. package/docs/DSH_RC2_ADAPTATION.md +1 -1
  13. package/docs/FUNCTION_MODEL_ASSIGNMENTS.md +2 -0
  14. package/docs/FUNCTION_MODEL_POOLS.md +84 -0
  15. package/docs/HEADLESS_CLI.md +7 -7
  16. package/docs/HOST_ADAPTER_CONTRACT.md +8 -2
  17. package/docs/HOST_DOCTOR.md +3 -3
  18. package/docs/MUSIC.md +2 -2
  19. package/docs/PROVIDER_HEALTH.md +26 -2
  20. package/docs/ROADMAP.md +8 -4
  21. package/docs/SECURITY.md +12 -2
  22. package/docs/VISION_CLI.md +2 -2
  23. package/docs/releases/0.2.5.md +33 -0
  24. package/docs/releases/0.2.6.md +50 -0
  25. package/lib/actions.js +137 -30
  26. package/lib/adapters.js +36 -9
  27. package/lib/api.js +2 -1
  28. package/lib/client.js +717 -180
  29. package/lib/composite-vision-routing.js +6 -6
  30. package/lib/config.js +140 -29
  31. package/lib/doctor.js +9 -2
  32. package/lib/dsh-compatibility.js +7 -1
  33. package/lib/dsh-core-adapter.js +22 -11
  34. package/lib/dsh-host-adapter.js +32 -29
  35. package/lib/dsh-provider-config.js +35 -0
  36. package/lib/dsh-provider-source.js +102 -0
  37. package/lib/headless-vision.js +5 -5
  38. package/lib/host-contract.js +1 -0
  39. package/lib/http-vision-model-adapter.js +5 -2
  40. package/lib/index.js +54 -35
  41. package/lib/model-directory-service.js +53 -0
  42. package/lib/model-directory.js +103 -0
  43. package/lib/models.js +71 -6
  44. package/lib/ocr-model-routing.js +2 -2
  45. package/lib/provider-adapters.js +42 -9
  46. package/lib/provider-catalog.js +14 -9
  47. package/lib/provider-config-scope.js +16 -0
  48. package/lib/provider-config-service.js +82 -13
  49. package/lib/provider-health.js +33 -0
  50. package/lib/provider-protocol.js +30 -0
  51. package/lib/vision-model-routing.js +25 -12
  52. package/package.json +9 -9
  53. package/user_guide.md +28 -29
@@ -2,19 +2,18 @@
2
2
 
3
3
  把下面一段交给负责安装或使用 Iris 的 Agent。版本与发布状态以当前 [README](../README.md) 为准;Iris 和 DSH 的版本号独立。
4
4
 
5
- 本文对应Iris0.2.4。执行安装命令前先核对README的发布状态,再确认实际版本、工具和功能分配;旧宿主仍固定安装0.1.4。
5
+ 下列 npm 示例对应 Iris 0.2.6,准确范围见 [兼容矩阵](DSH_COMPATIBILITY.md)。执行安装命令前确认所选发行包的实际版本、工具和功能策略。
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或0.2.1-alpha.4:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4。
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
- - 其他 DSH 版本:先报告没有支持声明,不自行升级宿主或跳过版本检查。
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
- 从 dsh-market 安装也要核对实际包名、版本和兼容范围;市场缓存不代表支持旧宿主,不对旧 DSH 安装 latest。
12
+ - DSH在docs/DSH_COMPATIBILITY.md列出的12个准确版本中:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.6;只下载用 npm pack @mokuyoaxis/dsh-iris@0.2.6。
13
+ - 未列入所选Iris版本兼容矩阵的DSH:先报告没有支持声明,不自行升级宿主或跳过版本检查。
14
+ 没有DSH、希望用CLI时,按docs/HEADLESS_CLI.md使用npm0.2.6;npm0.1.4不含当前Core媒体CLI。
15
+ 先用--help和Doctor核对实际版本与命令。可引用DSH已有API Key连接,再确认模型用途并主动启用自动池,或保留手选名单;旧空配置不自动启用。DSH默认视觉须明确加入或启用。目录新增模型仍需确认用途;不以实测请求探测配置。图片导入用iris_import_image,改图用iris_edit_image;音乐用iris_generate_music并配置Chat Completions(内嵌音频)协议,见docs/MUSIC.md。
16
+ 从dsh-market安装也要核对实际包名、版本和兼容范围;缓存的旧版安装信息仍按其历史矩阵判断。
18
17
  若使用其他 profile,把示例中的 web 换成已确认的目标。保留完整 scoped 包名,不把 dsh-iris 当作同一 npm 包。
19
18
  安装后检查 Doctor 和工具可达性,再执行我指定的媒体任务;不要输出 API Key,重启宿主前说明影响。
20
19
  查询、观察和重新取回不等于重新生成;任务已受理或受理未知时,不自行重新提交。音乐入口内部执行本次配置的有限502重试,不再由Agent包外层循环;配乐仅按用户要求加入流程。
@@ -26,12 +25,11 @@
26
25
  ```text
27
26
  Help me install and use Iris (@mokuyoaxis/dsh-iris) according to this repository's README.
28
27
  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 or 0.2.1-alpha.4: pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4.
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
- - 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.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
- 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.
28
+ - For one of the twelve exact DSH versions in docs/DSH_COMPATIBILITY.md, pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.6; download only with npm pack @mokuyoaxis/dsh-iris@0.2.6.
29
+ - DSH versions outside the selected Iris version's matrix: report the missing support claim; do not upgrade the host or bypass its version checks automatically.
30
+ For CLI use without DSH, follow docs/HEADLESS_CLI.md using npm0.2.6; npm0.1.4 lacks the current Core media CLI.
31
+ Check --help, Doctor and the actual installed version. Reference a DSH API-key connection when available, confirm model uses, and explicitly enable automatic pools or retain selected-only lists. Existing empty configurations stay inactive. Host vision and new directory models require explicit authorization. Do not probe paid models to check configuration. Use iris_import_image for import, iris_edit_image for editing, and iris_generate_music with its configured inline-audio protocol for music.
32
+ For dsh-market, check the actual package name, version, and compatibility range too. Cached older releases retain their historical compatibility matrices.
35
33
  Replace web with the confirmed profile when needed. Keep the scoped package name; unscoped dsh-iris is a different npm package.
36
34
  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.
37
35
  Inspect, observe, and redeliver do not generate again. Do not add an agent retry loop after accepted or unknown acceptance; music handles its configured bounded 502 retries internally. Add music to workflows only when requested.
@@ -1,6 +1,6 @@
1
1
  # Iris 架构与边界
2
2
 
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。
3
+ 状态:本文描述 **Iris0.2.5** 的架构。0.2.0建立实例化Core Runtime、Headless CLI及共享Task/Artifact事实;后续加入共享视觉、图片编辑、音乐和交付恢复。0.2.4补图片导入、原生Qwen改图和统一功能分配;0.2.5按接口能力恢复旧宿主支持。准确版本及历史发行范围见 [兼容矩阵](DSH_COMPATIBILITY.md)。Node.js最低22.0.0;Core内部API尚未冻结为公共SDK。
4
4
 
5
5
  ## 当前形态
6
6
 
@@ -1,11 +1,13 @@
1
1
  # CLI 配置与任务管理
2
2
 
3
- 本文面向 Iris 0.2.2,沿用 `dsh-iris` 入口,无需启动 DSH,未新增生产依赖。安装 `npm install @mokuyoaxis/dsh-iris@0.2.2` 后运行 `npx dsh-iris ...`;也可从源码或本地 tarball 使用同一入口。视觉命令见 [视觉 CLI](VISION_CLI.md),基础媒体链路见 [Headless CLI](HEADLESS_CLI.md)。
3
+ 本文面向 Iris 0.2.6,沿用 `dsh-iris` 入口,无需启动 DSH。安装 `npm install @mokuyoaxis/dsh-iris@0.2.6` 后运行 `npx dsh-iris ...`;也可从源码或本地 tarball 使用同一入口。发布状态见 [README](../README.md);视觉命令见 [视觉 CLI](VISION_CLI.md),基础媒体链路见 [Headless CLI](HEADLESS_CLI.md)。
4
4
 
5
5
  所有需要 JSON 的命令均支持 `--input '<json>'`、`--input-file /path/input.json` 或 `--input -`(stdin),只能选择一种,输入最多 2 MiB。私有配置必须是普通文件、绝对路径,POSIX 权限为 `0600`。真实请求只由显式执行生成、发现、实测或观察命令触发。
6
6
 
7
7
  能力配置规则已同步Iris 0.2.2:能力来自明确配置或供应商元数据,裸账号和模型名称不自动赋能。现有功能入口、按功能分配的有序候选池和安全切换规则保持。
8
8
 
9
+ 0.2.6 的自动池会在新请求前按需读取目录(成功缓存 10 分钟),并跳过当前连接已明确返回模型不存在的候选。`models list`、`capabilities list`、配置检查和旧任务观察保持只读;`models discover --apply true` 显式更新目录并保留原模型,新发现用途仍需确认。手选、停用、显式单模型请求不暗中同步或扩池。`task retry` 先通过计费确认再刷新自动候选,旧任务不变;详见 [功能模型池](FUNCTION_MODEL_POOLS.md)。
10
+
9
11
  ## S2V 数字人视频
10
12
 
11
13
  ```bash
@@ -36,6 +38,8 @@ dsh-iris media html --data-root /path/core --input-file /path/html-input.json \
36
38
 
37
39
  0.2.4的六类功能均需明确分配;`assignments clear`停止新调用,已有Task仍按原绑定观察和补交付。临时指定须在名单内。旧自动池升级及DSH宿主资源见 [功能模型分配](FUNCTION_MODEL_ASSIGNMENTS.md)。
38
40
 
41
+ 0.2.6 支持 [三种功能池策略](FUNCTION_MODEL_POOLS.md):现有 `assignments set` 的 JSON 可传 `mode`,`models add/caps` 可传 `enableAutomatic:true`。旧参数和已有分配行为保留;省略新字段不会自动改策略。
42
+
39
43
  | 命令 | 行为 |
40
44
  | --- | --- |
41
45
  | `config init/show/check` | 创建空私有配置(不覆盖)、脱敏查看、检查重复账号和失效分配 |
@@ -2,35 +2,59 @@
2
2
 
3
3
  Iris与DSH的版本号独立。安装前运行 `dsh --version`,并核对要安装的Iris版本;发布状态见 [README](../README.md)。
4
4
 
5
+ ## Iris 0.2.6
6
+
7
+ 0.2.6 沿用 0.2.5 的以下 12 个准确版本声明,不因连接复用扩大宿主支持范围。连接引用另需供应商目录、脱敏设置及凭据公开服务;缺少接口时使用手动供应商。首次配置与升级规则见 [功能模型池](FUNCTION_MODEL_POOLS.md)。
8
+
9
+ ## 0.2.5 建立的兼容范围
10
+
11
+ 0.2.5恢复旧宿主支持,并覆盖以下12个准确版本。旧宿主使用同一套 Iris Core、Music、图片导入和原生 Qwen 改图功能,无需维护旧版功能分支。
12
+
13
+ | DSH 版本线 | 已验证的准确版本 |
14
+ |---|---|
15
+ | 0.1.2 | `0.1.2-rc.1` |
16
+ | 0.1.5 | `0.1.5-rc.1`、`0.1.5-rc.2`、`0.1.5-rc.3` |
17
+ | 0.1.7 | `0.1.7-rc.1`、`0.1.7-rc.2` |
18
+ | 0.2.0 | `0.2.0-rc.1`、`0.2.0-rc.2` |
19
+ | 0.2.1 | `0.2.1-alpha.1`、`0.2.1-alpha.2`、`0.2.1-alpha.3`、`0.2.1-alpha.4` |
20
+
21
+ 0.1.0/0.1.1及未列出的alpha、rc和正式版本未纳入本轮声明。
22
+
23
+ ## 历史版本
24
+
5
25
  | Iris版本 | 支持的DSH版本 |
6
26
  |---|---|
7
27
  | 0.2.4 | `0.2.0-rc.2` 或 `0.2.1-alpha.4` |
8
28
  | 0.2.0–0.2.3 | `0.2.0-rc.2` |
9
29
  | 0.1.4 | `>=0.1.2-rc.1 <0.1.3-0` 或 `0.1.5-rc.1` |
10
30
 
11
- 0.2.4的范围是两项准确版本,不包含其他alpha、其他rc或未来版本。扩大插件支持不要求现有rc.2用户升级宿主。Iris Core与独立CLI要求Node.js ≥ 22.0.0;DSH插件还须满足所用DSH自身更高的运行要求。
31
+ 0.2.4的历史范围保持两项准确版本。0.2.5按实际接口能力选择桥接,不再按“0.2”版本号启用默认视觉路由;已验证的旧宿主也能精确绑定默认模型、确认图片输入能力并正确处理失败终态。
32
+
33
+ 扩大插件支持不要求现有用户升级DSH。当前Iris Core、CLI和插件要求Node.js ≥ 22.0.0;DSH若要求更高,以宿主为准。保留旧DSH时也需要满足这个Node要求。
12
34
 
13
35
  ## 安装与升级
14
36
 
15
- 在上表支持的宿主中固定安装所需Iris版本,以下为0.2.4命令:
37
+ 在上述 12 个准确版本的宿主中,固定安装 Iris 0.2.6:
16
38
 
17
39
  ```bash
18
- dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.4
40
+ dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.6
19
41
  ```
20
42
 
21
43
  使用其他profile时替换 `web`。更新后检查服务端装载、刷新Web客户端,并查看Iris工作台的 [宿主诊断](HOST_DOCTOR.md)。alpha.3及之后的DSH改善了插件更新与热加载,但仍以实际装载结果为准。
22
44
 
23
- 0.2.4另统一了六类功能的明确模型名单。已有分配保持;以前依赖自动模型池的功能需要在升级后明确分配,见 [升级说明](FUNCTION_MODEL_ASSIGNMENTS.md)。
45
+ 0.2.4/0.2.5 统一六类功能的明确模型名单;0.2.6 可主动启用自动池,旧名单和空配置不自动改变,见 [功能池及升级说明](FUNCTION_MODEL_POOLS.md)。从 Iris 0.1.4 整体升级的旧数据流程仍需单独验收。
24
46
 
25
47
  ## 兼容声明如何生效
26
48
 
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客户端包安装为生产依赖。
49
+ 0.2.5的 `package.json` 顶层 `engines.dsh`、嵌套 `dsh.engines.dsh` 与五项可选客户端peer列出12个准确版本;Doctor按同一集合诊断。各版本的客户端SDK分别验收;也覆盖现有根包0.1.5-rc.1/关键组件0.1.5-rc.2的混合安装。宿主版本与SDK版本需要分别核对,不能只根据根包字符串推定。Iris不把DSH客户端包安装为生产依赖。
28
50
 
29
- rc.2的加载器检查DSH相关peer;alpha.4优先读取顶层 `engines.dsh`,未声明时再检查peer。只改嵌套字段不能扩大新加载器的支持范围。另外,npm默认的预览版匹配与DSH的匹配选项有差别,`^0.2.0-rc.2` 不能代替这里明确并列的两版范围。
51
+ rc.2的加载器检查DSH相关peer;alpha.4优先读取顶层 `engines.dsh`,未声明时再检查peer。只改嵌套字段不能扩大新加载器的支持范围。另外,npm默认的预览版匹配与DSH的匹配选项有差别,`^0.2.0-rc.2` 不能代替按已验收准确版本逐项并列的范围。
30
52
 
31
53
  ## 验证范围
32
54
 
33
- 宿主验收使用各版官方发布的Cordis、LLM、ToolRuntime、附件、Skill、WebServer和SlotRegistry,覆盖模型路由、错误终态、视觉/OCR/定位/摘要、工具交付、作品管理及四个Iris界面插槽。模型事件由本地fixture提供,禁止外部模型请求。
55
+ 宿主验收使用各版官方发布的Cordis、LLM、ToolRuntime、附件、Skill、WebServer和SlotRegistry,覆盖模型路由、错误终态、视觉/OCR/定位/摘要、工具交付、作品管理及四个Iris界面插槽。Music和原生Qwen改图通过实际工具调度,使用离线响应核对持久产物、图片附件及原图关系。模型事件由本地fixture提供,禁止外部模型请求;音频夹具只验证字节交付,不代表试听质量。
56
+
57
+ 旧Loader没有现代兼容检查helper时,脚本改用其原生Profile/Boot装载;较新Loader检查最终manifest。临时SDK安装只用于验收配套服务,不等于启动了完整DSH应用。
34
58
 
35
59
  维护者可在本机已有目标SDK时运行:
36
60
 
@@ -38,6 +62,12 @@ rc.2的加载器检查DSH相关peer;alpha.4优先读取顶层 `engines.dsh`,
38
62
  node scripts/verify-dsh-host.mjs --dsh-root /absolute/path/to/@deepseek-ai/dsh
39
63
  ```
40
64
 
41
- 脚本在独立临时目录使用隔离DSH_HOME,不操作日常profile。Node客户端夹具另需同版本的官方 `@deepseek-ai/dsh-client-ui-slots` SDK;实际Web前端已内嵌此模块。脚本不会自动下载依赖或升级宿主。
65
+ 脚本在独立临时目录使用隔离DSH_HOME,不操作日常profile。Node客户端夹具另需与目标renderer同版本的官方 `@deepseek-ai/dsh-client-ui-slots` SDK;实际Web前端已内嵌此模块。若宿主安装树未提供独立包,可在仓库外准备官方SDK后显式指定:
66
+
67
+ ```bash
68
+ node scripts/verify-dsh-host.mjs --dsh-root /absolute/path/to/@deepseek-ai/dsh --client-sdk-root /absolute/path/to/sdk-fixture
69
+ ```
70
+
71
+ 脚本不会自动下载依赖或升级宿主。仅准备SDK且未安装DSH的原生模块时,旧Loader的Node接口检查可使用 `node --expose-internals`;常规DSH安装使用宿主自带的模块。
42
72
 
43
73
  React/DOM和会话数据部分使用fixture,因此这项验收不代替完整浏览器操作、草稿写回、真机触摸或插件热更新验收。TLS和带前缀反代也不由loopback HTTP检查推定通过。早期rc.2适配的历史原因见 [rc.2适配记录](DSH_RC2_ADAPTATION.md)。
@@ -0,0 +1,34 @@
1
+ # 复用 DSH 供应商连接
2
+
3
+ 版本要求:Iris 0.2.6;发布状态见 [README](../README.md)。0.2.5 不包含此入口。
4
+
5
+ DSH 已有兼容媒体服务时,可以在 Iris 工作台引用它的连接,避免再次填写和保存 Base URL/API Key。Iris 保留自己的模型、媒体协议与功能池;宿主连接提供当前地址和凭据。已有手动供应商配置继续使用。
6
+
7
+ ## 工作台操作
8
+
9
+ 1. 打开“添加供应商”,在“连接来源”选择已配置的 DSH 连接。
10
+ 2. 明确选择该服务实际支持的媒体协议,保存。
11
+ 3. 发现或添加媒体模型,确认它用于哪些功能。首次配置可同时启用所选功能的自动池,保存即可使用,无需再次逐项分配。
12
+
13
+ 引用连接不会自动发现、实测或生成;只有用户确认的用途和功能策略决定调用范围。已有手工名单或停用状态不会自动改变。DSH 能进行文字对话不证明相同服务支持媒体接口;协议、账号权限和模型能力仍需核对。三种调用方式见 [功能模型池](FUNCTION_MODEL_POOLS.md)。
14
+
15
+ ## 地址、密钥与恢复
16
+
17
+ Iris 配置只保存 `dshProvider: { provider, settingsNs }`,不保存该连接的普通 Base URL 或密钥。操作期间,DSH 适配层通过公开供应商目录、已脱敏设置描述和凭据接口构造内存副本;不同并发操作的副本隔离,不进入配置持久化。
18
+
19
+ DSH 的地址或密钥变化影响下一次操作。Iris 供应商列表展示连接来源、地址和可用状态,密钥只显示“由 DSH 管理”。停止使用引用或删除 Iris 供应商不会修改 DSH 原连接。
20
+
21
+ 离线 Doctor 不解析宿主引用,会提示“需由运行中宿主解析”,不会要求再填写同一把密钥。请在 DSH 工作台查看连接状态和功能池候选;候选元数据不代替真实接口权限验证。
22
+
23
+ 原连接停用、移除或无法解析时,该项不可用;显式指定该模型不会换用其他账号。原任务的恢复继续校验提交端点和协议绑定,地址改变时拒绝向新端点观察原任务,不会重新生成。已缓存完整字节的本地补交付沿用现有规则。
24
+
25
+ ## 支持范围
26
+
27
+ - 需要 DSH 的 `llm.listProviders/listConfigurableProviders`、`settings.describe` 和对应凭据服务。
28
+ - 支持配置中的 `apiKeyEnv` 引用、默认 `llm-pi-ai` 实例的 API Key 记录,以及目录明确声明的环境凭据引用。
29
+ - OAuth/登录授权、专有签名和自定义请求头不转换为媒体认证;界面显示原因,可继续手动添加适合的媒体供应商。
30
+ - 尚不自动处理别名 `llm-pi-ai` 实例的私有记录归属;这类实例可以使用公开的 `apiKeyEnv` 引用。
31
+ - 缺少接口的旧宿主保留手动配置。连接复用能力按实际服务检测,不扩大已有宿主版本声明。
32
+ - Headless CLI 不读取 DSH 连接。CLI 媒体调用继续使用显式的独立 Provider 配置;含 DSH 引用的条目不能在无宿主进程中解析。
33
+
34
+ 此功能不迁移已有配置、导出宿主密钥或读取其他项目文件;功能策略由用户明确选择,受理后不自动重提和单写者约束继续保留。
@@ -1,6 +1,6 @@
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限制属于当时发行范围。
3
+ 本文保留Iris0.2.0/0.2.1适配rc.2时的背景与验证记录。0.2.4兼容rc.2及alpha.4,0.2.5恢复了部分旧宿主支持。声明规则、使用步骤和验证边界见 [DSH版本兼容](DSH_COMPATIBILITY.md)。以下准确rc.2限制属于当时发行范围。
4
4
 
5
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 预览版或正式版兼容。
6
6
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  版本要求:Iris0.2.4。0.2.3只有Music采用严格名单;本页说明升级后的统一规则,发布状态见 [README](../README.md)。
4
4
 
5
+ 本页说明 0.2.4/0.2.5 的规则,以及 0.2.6 中“仅用所选模型”的行为。0.2.6 另提供 [自动池、手选与停用](FUNCTION_MODEL_POOLS.md);旧名单及缺失/空分配继续保持本页行为,不会静默启用自动池。以下“只有名单内模型参与”仅适用于手选模式。
6
+
5
7
  在“功能分配(调用顺序)”中为图片、视频、语音、音乐、转写和视觉分别选择模型。模型池登记资源、能力、协议和健康;只有加入功能名单的模型参与该功能的新请求。普通模型使用 `providerId::modelId` 复合引用,同名模型的不同账号独立选择。
6
8
 
7
9
  每次请求按名单顺序选择。已停用、缺少配置、已知冷却或不支持本次模式的项可跳过;名单之外的模型不会补入。临时指定模型也必须属于名单,且本次只调用指定项;失败不会改用其他模型。没有分配或名单全部不可用时明确失败。
@@ -0,0 +1,84 @@
1
+ # 功能模型池与调用方式
2
+
3
+ 版本要求:Iris 0.2.6;发布状态见 [README](../README.md)。0.2.4/0.2.5 使用 [严格功能名单](FUNCTION_MODEL_ASSIGNMENTS.md);升级不会自动启用自动池。
4
+
5
+ ## 配好一次即可使用
6
+
7
+ 在工作台添加媒体供应商,或 [引用 DSH 已有连接](DSH_PROVIDER_CONNECTIONS.md),选择实际支持的媒体协议。在供应商详情填写模型名,勾选它可用于哪些功能,点击“保存模型用途”。
8
+
9
+ 首次配置会推荐勾选“同时启用所选功能的自动池”。保存后,已确认的模型直接进入这些功能的候选,不需要再逐项添加到功能名单。已有配置不会自动改为此模式;启用框会明确说明它会替换所选功能的调用方式。仅保存用途不发起实测或生成,也不代表上游已验证可用。
10
+
11
+ 供应商详情的“模型目录”默认折叠,点击“同步目录”读取最新列表;发现的新条目显示“待确认用途”,确认后才会加入自动池。名称和 DSH 文字连接不证明媒体能力。Music 还需明确绑定 `musicProtocol: gemini-web-music`。
12
+
13
+ ## 目录更新与候选可用性
14
+
15
+ 新自动请求开始前按需检查供应商目录,成功结果缓存 10 分钟,同连接并发读取合并;也可在工作台主动同步。同步只读取目录,不发起模型实测或生成。配置检查、手选请求、停用功能与旧任务查询不会暗中刷新目录。同步失败保留上次完整目录及错误原因,短暂退避 30 秒;坏响应或不完整分页不会覆盖快照。
16
+
17
+ 目录展示同步时间、新条目与“目录未列出”的已配置模型。未列出本身不能证明下线:手工模型、用途和顺序继续保留,新模型仍需确认。混合视频/音频输出不自动获得 TTS 用途,音频理解也不自动获得文件转写用途;可信的明确能力代码优先。
18
+
19
+ 当当前连接在新提交或实测中明确返回模型不存在(模型专属错误码,或精确的 `404 Model not exist.`)时,仅隔离该连接的模型及能力,后续请求跳过它。通用路径 404、参数 400、认证错误、限流与网络错误不按模型消失处理。历史成功保留,可用性单独显示;目录重新列出不自动解除隔离。改变连接或有效图片协议后重新判断,也可在核对目录后单独确认费用进行实测,成功恢复。旧任务的查询、观察与交付仍沿用原绑定,不解除或新增此类阻断。
20
+
21
+ DSH、Agent 和独立 CLI 共用规则。媒体的候选切换仍遵守受理边界;视觉保留已有操作停止规则,本次已发出的明确模型 404 会隔离后续请求,不因此扩张同一操作的切换条件。当前没有后台定时器、自动付费探针、按目录自动删除模型或自动授权新模型。
22
+
23
+ ## 每个功能有三种调用方式
24
+
25
+ | 方式 | 候选范围 | 没有合格候选时 |
26
+ |---|---|---|
27
+ | 自动池 | 已确认用途、连接启用且协议支持的同功能模型,按供应商和模型登记顺序选择 | 显示候选为零及配置缺口,不发起请求 |
28
+ | 仅用所选模型 | 只使用手选的有序名单,不补入其他模型 | 提示添加所选模型或切换模式 |
29
+ | 停用 | 停止此功能的新调用 | 显式传入模型也不能绕过 |
30
+
31
+ 工作台“功能池与调用方式”展示各功能的候选数,以及未连接、待确认用途、协议不支持或限流等原因。切换自动池先展示影响并确认;切回手选会保留原名单。自动池不是网络连通或上游能力实测的保证。
32
+
33
+ 自动池采用页面内确认,确认前显示“尚未保存”;提交后在该功能旁依次显示“正在保存”“正在更新候选”和“已保存”。保存期间暂时禁用重复切换。若未收到确认,点击“刷新状态”只读取保存结果,不会再次提交;已保存但候选更新失败会分别说明。
34
+
35
+ 更新后,需让 DSH 服务端加载新代码,再刷新页面。仅刷新页面可能形成新界面配旧服务端;此时页面会提示重启 DSH,并暂停策略切换,避免把旧接口的成功响应误认为自动池已启用。
36
+
37
+ 生图和改图共享图片池,视频和 S2V 共享视频池,再按具体输入和协议过滤。看图、OCR、定位和视觉摘要共享视觉池。TTS、Music、转写分别使用自己的池;裁剪、导入、抽帧等本地操作不要求模型。
38
+
39
+ 自动视觉默认不包含宿主资源;需要时明确勾选“使用 DSH 当前视觉模型”。它仍须由宿主声明支持图片输入,独立 CLI 不能执行该资源。
40
+
41
+ ## 顺序选择与安全切换
42
+
43
+ 每个新请求从首个合格候选开始。A 明确未受理时可以继续 B;已知冷却项会跳过。此阶段没有跨请求 A→B→C 的轮转游标。
44
+
45
+ 临时指定模型须在当前允许范围内,本次只调用它,失败不替换。工作台默认保留自动选择,不会把首个候选填成显式参数;Agent 也只应在用户明确指定时传模型参数。
46
+
47
+ 媒体受理未知、已经受理或交付失败时,仍绑定原任务处理,不因池内还有模型就重新生成。池和策略变化只影响新请求,旧任务沿原模型、协议和端点绑定观察或补交付。Music 原有显式 502 重发规则独立保留,每次建立关联新任务,可能增加费用。
48
+
49
+ ## 旧配置与 CLI
50
+
51
+ 旧字符串、数组及对象形式的分配继续按原手选名单解释,缺失或空分配保持零调用;读取不会自动启用或迁移。用户主动切换策略时,旧引用归一化保存,原手工名单保留。无宿主 CLI 仍使用显式私有配置,不解析 DSH 连接引用。
52
+
53
+ 新策略在现有 `assignments` 中按功能保存,例如:
54
+
55
+ ```json
56
+ {
57
+ "assignments": {
58
+ "image-gen": {"mode": "auto", "models": ["account::preferred-image"]},
59
+ "music-gen": {"mode": "manual", "models": ["account::music"]},
60
+ "vision": {"mode": "auto", "models": [], "hostVision": false},
61
+ "video-gen": {"mode": "disabled", "models": []}
62
+ }
63
+ }
64
+ ```
65
+
66
+ `models` 是保留的手工名单,自动模式不以它限制候选。新增模型必须有明确功能标签,发现条目须经用户确认;模型的限流、协议及实际输入约束继续生效。
67
+
68
+ 通过现有 CLI JSON 输入管理,无需增加命令或直接编辑配置:
69
+
70
+ ```bash
71
+ dsh-iris models add 'account::image-a' --provider-config /absolute/path/providers.json \
72
+ --input '{"capabilities":["image-gen"],"enableAutomatic":true}'
73
+ dsh-iris models caps 'account::image-b' --provider-config /absolute/path/providers.json \
74
+ --input '{"capabilities":["image-gen"]}'
75
+ dsh-iris assignments set --provider-config /absolute/path/providers.json \
76
+ --input '{"capability":"image-gen","mode":"auto"}'
77
+ dsh-iris assignments set --provider-config /absolute/path/providers.json \
78
+ --input '{"capability":"image-gen","mode":"manual","model_refs":["account::image-b"]}'
79
+ dsh-iris assignments set --provider-config /absolute/path/providers.json \
80
+ --input '{"capability":"image-gen","mode":"disabled"}'
81
+ dsh-iris capabilities list --provider-config /absolute/path/providers.json
82
+ ```
83
+
84
+ `enableAutomatic:true` 是明确修改所选功能策略的动作;省略时只确认用途,已有自动功能会纳入该模型,已有手工/停用功能不变。`assignments clear` 继续清除该功能分配并停止新调用,不表示恢复自动。配置写入沿用唯一私有备份与并发修改检查,见 [CLI 管理](CLI_MANAGEMENT.md)。
@@ -1,10 +1,10 @@
1
1
  # Headless CLI
2
2
 
3
- `run music` 支持音乐生成与模型级协议配置,见 [音乐生成](MUSIC.md)。0.2.4的六类功能均采用明确分配名单,升级差异见 [功能模型分配](FUNCTION_MODEL_ASSIGNMENTS.md)。
3
+ `run music` 支持音乐生成与模型级协议配置,见 [音乐生成](MUSIC.md)。0.2.6 可选择自动池、仅用所选模型或停用,旧名单和空配置不自动改变,见 [功能模型池](FUNCTION_MODEL_POOLS.md)。
4
4
 
5
- 本文面向Iris0.2.4,涵盖无DSH的本地处理、媒体生成、视觉分析、配置和任务管理。媒体结果保存为Core Artifact,可在后续进程中检查、分析或导出;纯视觉不自动创建产物。Core内部接口与Artifact v0尚未冻结为公共SDK。
5
+ 本文面向 Iris 0.2.6,涵盖无 DSH 的本地处理、媒体生成、视觉分析、配置和任务管理。媒体结果保存为 Core Artifact,可在后续进程中检查、分析或导出;纯视觉不自动创建产物。Core 内部接口与 Artifact v0 尚未冻结为公共 SDK。
6
6
 
7
- 需要Node.js ≥ 22.0.0。按 [README](../README.md) 核对发布状态,安装 `npm install @mokuyoaxis/dsh-iris@0.2.4` 后运行 `npx dsh-iris --help`。源码入口为 `node bin/dsh-iris.js ...`;本地tarball也可用于安装。
7
+ 需要Node.js ≥ 22.0.0。按 [README](../README.md) 核对发布状态,安装 `npm install @mokuyoaxis/dsh-iris@0.2.6` 后运行 `npx dsh-iris --help`。源码入口为 `node bin/dsh-iris.js ...`;本地tarball也可用于安装。
8
8
 
9
9
  0.2.1 提供 `vision look / locate / ocr / summarize`。文件输入的纯视觉不需要数据根,支持显式模型覆盖、JSON/文本、结果和拼图文件;图片/帧 Artifact ID 输入需显式数据根,以 reader 读取既有 Core 产物,只有主动音轨转写才创建 Core Task/Artifact。完整命令与输出规则见 [独立视觉 CLI](VISION_CLI.md);S2V、HTML、配置、等待及批量管理见 [CLI 管理](CLI_MANAGEMENT.md)。
10
10
 
@@ -18,7 +18,7 @@ dsh-iris capabilities list --provider-config /absolute/path/to/providers.json
18
18
  dsh-iris doctor --data-root /absolute/path/to/iris-data --json
19
19
  ```
20
20
 
21
- 前两项只读取显式提供的私有配置文件,不创建Core Runtime或数据根,也不请求Provider。`providers list`输出供应商身份、启用/配置状态、认证方式、媒体协议及其推断标记、配置能力与模型数;不输出API Key或端点。0.2.4的 `capabilities list` 按六种配置能力列出明确分配且当前CLI可用的 `providerId::modelId` 候选链;空链标为 `gap: no_configured_model`。这些只是配置事实,不证明远端模型或协议可调用。
21
+ 前两项只读取显式提供的私有配置文件,不创建 Core Runtime 或数据根,也不请求 Provider。`providers list` 输出供应商身份、启用/配置状态、认证方式、媒体协议及其推断标记、配置能力、模型数和已有目录摘要;不输出 API Key 或端点。`capabilities list` 按六类功能的当前策略列出 CLI 可用的 `providerId::modelId` 候选链;空链标为 `gap: no_configured_model`。这些只是配置和历史证据,不证明远端模型或协议可调用。
22
22
 
23
23
  显式 `doctor --data-root` 是只读 Core 盘点:检查 Task/Artifact 结构、Index 一致性、孤立/未解析条目和写者租约;不创建缺失的根、不执行写入探针、不重建索引,也不释放租约。活跃写者可能使盘点在读取期间变化。省略 `--data-root` 时仍检查 DSH profile,保留原有写入探针,并纳入该 profile 的 `core-v0`。两种模式都返回 legacy/Core 计数对照,显式模式只统计指定根同层的 legacy 文件。退出码为 `0` 正常、`1` 警告、`2` 硬错误;诊断不会调用 Provider。
24
24
 
@@ -75,11 +75,11 @@ dsh-iris run image \
75
75
  --input '{"prompt":"一朵雨后的鸢尾花","model_ref":"provider-id::model-id","size":"1024*1024","n":1}'
76
76
  ```
77
77
 
78
- `model_ref` 可省略;省略时只使用assignment名单,按配置顺序选择。指定时须属于名单且本次只调用该项。每个请求从首项开始,只有明确 `not_accepted` 才进入下一项。配置文件须为普通文件,POSIX权限不得开放给group/other;API Key、端点、Prompt和下载URL都不会写入Task输出。
78
+ `model_ref` 可省略;省略时按当前功能策略选择候选,自动池按登记顺序,手选模式按名单顺序,停用不调用。指定时须属于当前允许范围且本次只调用该项。每个请求从首项开始,只有明确 `not_accepted` 才进入下一项。配置文件须为普通文件,POSIX 权限不得开放给 group/other;API Key、端点、Prompt 和下载 URL 都不会写入 Task 输出。
79
79
 
80
80
  模型必须存在于配置的 `models` 或旧模型字段中,且具备所请求的能力;缺失时返回配置错误,不注入厂商默认模型。显式 `models:[]` 表示没有可用模型。`model_ref` 也接受裸模型名,同名跨供应商时从当前功能名单中取首个匹配项;需要精确绑定账号时使用 `providerId::modelId`。显式指定只选择该模型,不扩展 failover 候选。
81
81
 
82
- 裸 DashScope 账号不再自动写入厂商目录或授予功能能力。已有明确保存的模型和旧能力字段绑定继续保留;独立 CLI 配置同样需要声明模型并分配给功能。
82
+ 裸 DashScope 账号不自动写入厂商目录或授予功能能力。已有明确保存的模型和旧能力字段绑定继续保留;独立 CLI 配置同样需要声明模型用途,并明确启用自动池或配置手选名单。
83
83
 
84
84
  生图按每个模型的有效图片协议调用,保存真实 PNG/JPEG/WebP 字节。聊天改图使用 `source_artifact_id`,创建关联原图的新 Artifact;具体参数和协议限制见 [模型级图片协议](CLI_MANAGEMENT.md#模型级图片协议) 与 [Artifact 聊天改图](CLI_MANAGEMENT.md#artifact-聊天改图)。
85
85
 
@@ -138,7 +138,7 @@ dsh-iris task inspect task_0123456789abcdef01234567 \
138
138
 
139
139
  新建 Attempt 可选保存 `stageTimestamps`:排队、开始提交、提交响应、远端终态、开始下载、下载校验完成和本地 Artifact 处理完成七个边界。字段按发生顺序单调不减;旧记录缺失该字段仍可读取。重新交付会从新的下载开始边界重新计时,不伪造尚未跨过的阶段。
140
140
 
141
- 新建Attempt还可选保存 `selectionReason`:`explicit` 表示调用方明确指定名单内模型,`assignment` 表示按提交当时的功能名单选择。`pool` 保留为旧记录的历史来源,0.2.4不再产生池补齐候选。该事实随Attempt在Provider submit前落盘;`task inspect` 只展示持久记录,不按当前assignment事后猜测。旧记录缺少字段时保持缺失;第几次failover仍看 `ordinal`。
141
+ 新建 Attempt 还可选保存 `selectionReason`:`explicit` 表示调用方明确指定允许范围内的模型,`assignment` 表示按提交时的手选名单选择,`pool` 表示自动池选择。0.2.4/0.2.5 不产生新的池补齐候选,0.2.6 在主动启用自动池后使用 `pool`。该事实随 Attempt 在 Provider submit 前落盘;`task inspect` 只展示持久记录,不按当前策略事后猜测。旧记录缺少字段时保持缺失;第几次 failover 仍看 `ordinal`。
142
142
 
143
143
  已受理的异步图片 Task 可以显式推进一次:
144
144
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  状态:**v0.1.4 内部契约与渐进迁移已完成,并通过真实 DSH 隔离 canary。** 本文固定真实消费者所需的最小边界;0.2.2 已提供独立 Core/CLI,但未冻结公开 Host SDK,也未实现完整 Local Host。
4
4
 
5
+ Iris 0.2.6 增加 [三种功能池策略](FUNCTION_MODEL_POOLS.md);下文“功能名单”在 0.2.6 中指当前功能允许范围,自动池也遵守相同的 Host 边界。0.2.4/0.2.5 采用严格名单。
6
+
5
7
  ## 目标
6
8
 
7
9
  Host Adapter 只负责把一个宿主的工具、路由、客户端、附件、会话、浏览器和模型能力映射为 Iris 端口。Command 接收 Iris 输入、`AbortSignal` 和所声明的 Host Port,**不得接收原始 `ctx`**。Task、Provider、文件持久化和成本语义不属于宿主。
@@ -20,10 +22,13 @@ Host Adapter 只负责把一个宿主的工具、路由、客户端、附件、
20
22
  | `sessions` | `ctx.get('sessionQuery')` / Client sessions | 列出当前会话的受支持附件和最小模型选择信息 | 只使用 Iris 自有产物或显式上传 |
21
23
  | `browser` | `ctx.get('browser')` | 将受限 HTML 渲染为图片;不向 Command 暴露 DSH page/session 对象 | HTML 截图不可用 |
22
24
  | `textModel` | DSH LLM/default-model 服务 | 文本生成及精确模型元数据;当前宿主视觉也由此绑定默认选择 | 宿主文本/视觉不可用,自持 Provider 按各功能名单执行 |
25
+ | `providerConnections`(0.2.6) | DSH LLM 目录、settings 与 credentials 服务 | 列出无密钥的连接元数据;仅在服务端操作期间解析所引用连接 | 连接引用不可用,手动供应商不受影响 |
23
26
  | `visionModel` | DSH 旧视觉桥接 | 保留 `analyze()` 兼容入口;当前视觉共享端口经 `textModel` 与附件桥接执行 | 旧桥接不可用,不自动授予视觉功能调用资格 |
24
27
 
25
28
  `ports` 只包含真实可调用的方法对象。缺失或版本不兼容的能力进入 `unavailable`,并提供 `kind` 与人类可读 `reason`;Doctor 与运行错误必须消费同一份事实。
26
29
 
30
+ 0.2.6 在 DSH 适配边界使用 `providerConnections.list()` 和 `resolve(reference, { signal })`。前者不读取密钥值,后者只返回操作期间的服务端连接信息;Core 接收已经解析的普通 Provider 参数,不接收该端口、DSH 对象或凭据引用。使用 DSH 连接的生成、发现、视觉及任务恢复条件依赖此端口,普通手动配置不依赖。详见 [连接复用](DSH_PROVIDER_CONNECTIONS.md)。
31
+
27
32
  ## Command × Host Port 矩阵
28
33
 
29
34
  | Command/入口 | 必需端口 | 可选端口 | 说明 |
@@ -43,7 +48,7 @@ Host Adapter 只负责把一个宿主的工具、路由、客户端、附件、
43
48
  | Workbench/API/媒体路由 | `routes` | `clientSlots` | HTTP/UI 只是投影,不是真相来源 |
44
49
  | 随包 Skill | `skills` | 无 | Skill 不得绕过 Command、Task 或费用边界 |
45
50
 
46
- 开发树中的宿主视觉必须以 `host:current-vision` 加入视觉名单并排序;读取的是DSH当前默认选择,不是当前对话选择。不自动追加宿主候选,临时指定失败也不回退。升级规则见 [功能模型分配](FUNCTION_MODEL_ASSIGNMENTS.md)。
51
+ 宿主视觉必须以 `host:current-vision` 加入视觉名单,或在自动池中明确启用宿主视觉;读取的是 DSH 当前默认选择,不是当前对话选择。不自动追加宿主候选,临时指定失败也不回退。升级规则见 [功能模型池](FUNCTION_MODEL_POOLS.md)。
47
52
 
48
53
  ## 不可违反规则
49
54
 
@@ -86,12 +91,13 @@ Iris 继续作为普通 DSH/Cordis 插件装载:`cordis.patch.yml` 只把 npm
86
91
  ## 当前覆盖
87
92
 
88
93
  - `lib/index.js` 负责 DSH 插件入口、生命周期和工具注册;
89
- - `lib/dsh-host-adapter.js` 映射九类命名端口;
94
+ - `lib/dsh-host-adapter.js` 映射上述命名端口;
90
95
  - Local Host fixture 覆盖 crop/diff、Task 查询与提醒操作,并验证缺失能力的错误;
91
96
  - Host Doctor 对服务端注册账本、客户端版本和 Slot 握手分别给出结果;
92
97
  - 已发布 Iris `0.1.4` 在 DSH `0.1.2-rc.1` 与 `0.1.5-rc.1` 上有历史宿主验证记录,不继承为当前版本的支持声明。
93
98
  - Iris `0.2.1` 只声明 DSH `0.2.0-rc.2`,已通过真实安装服务隔离验收,保留附件完整引用、绑定明确图片模型路由并适配客户端主视图选择;边界与尚未完成的浏览器实机检查见 [rc.2 适配说明](DSH_RC2_ADAPTATION.md)。
94
99
  - Iris0.2.4扩大为rc.2与alpha.4两项准确版本,顶层engines.dsh、嵌套字段、五项可选peer及Doctor同步;Core/Provider契约保持。当前范围和服务/浏览器验证区别见 [DSH版本兼容](DSH_COMPATIBILITY.md)。
100
+ - Iris0.2.5在单一Adapter中按默认选择与模型元数据接口启用精确视觉路由,恢复旧宿主的当前功能;12个准确版本经官方SDK隔离验收后进入声明。Core/Provider和数据格式保持,具体范围仍以兼容矩阵为准。
95
101
 
96
102
  Local Host 不模拟 Browser、会话或附件。测试需要这些能力时必须显式注入,缺失行为也属于契约。
97
103
 
@@ -5,7 +5,7 @@ Host Doctor 是 Iris 在运行中的 DSH 实例内提供的兼容性诊断。它
5
5
  | 模式 | 入口 | 观察范围 |
6
6
  |---|---|---|
7
7
  | `offline` | `dsh-iris doctor [--json]` | Node、依赖、私有存储、配置、Task 与产物;不要求 DSH |
8
- | `host` | 已认证 DSH 中的 `GET /iris/api/doctor` | DSH与Host Port、插件、当前工具/Skill、4组路由、Browser/附件/模型、客户端版本和4个UI Slot;Iris 0.2.4检查17工具/3项Skill |
8
+ | `host` | 运行中 DSH 的 `GET /iris/api/doctor` | DSH与Host Port、插件、当前工具/Skill、4组路由、Browser/附件/模型、客户端版本和4个UI Slot;Iris 0.2.6保留17工具/3项Skill |
9
9
 
10
10
  0.2.4新增 `iris_import_image`,图片导入自身不调用模型。0.2.3检查16工具/3项Skill,发布状态见 [README](../README.md)。
11
11
 
@@ -23,7 +23,7 @@ Host Doctor 是 Iris 在运行中的 DSH 实例内提供的兼容性诊断。它
23
23
  /iris/api/doctor
24
24
  ```
25
25
 
26
- 这是工作台路由下的 JSON 端点,继承 Iris 路由的 Host/认证边界。HTTP 200 表示诊断成功生成,不代表所有检查健康;应读取响应中的 `exitCode`:
26
+ 这是工作台路由下的 JSON 端点,使用 Iris 的回环/显式 trusted Host 和浏览器来源守卫;这些检查不提供身份认证,也不能假定该路径继承 DSH `/api` 的认证。对外暴露时须由部署者提供认证和访问控制,见 [安全边界](SECURITY.md)。HTTP 200 表示诊断成功生成,不代表所有检查健康;应读取响应中的 `exitCode`:
27
27
 
28
28
  - `0`:当前可观察项全部健康;
29
29
  - `1`:存在可降级警告,例如页面尚未打开、可选 Browser 缺失;
@@ -31,7 +31,7 @@ Host Doctor 是 Iris 在运行中的 DSH 实例内提供的兼容性诊断。它
31
31
 
32
32
  如果刚安装、热更新或强制刷新,先等 Web 页面完成装载,再刷新诊断。未收到客户端握手时,Host Doctor 只报告警告,不会把“服务端已装载”冒充成“UI 已装载”。
33
33
 
34
- Iris0.2.4支持DSH `0.2.0-rc.2` 或 `0.2.1-alpha.4`,Doctor与package顶层/嵌套DSH engines及客户端peer保持同一范围。0.2.0–0.2.3仅支持rc.2。旧DSH0.1.2线或0.1.5-rc.1返回版本错误,并提示固定Iris0.1.4;无DSH的CLI/离线诊断不受宿主版本限制。见 [兼容矩阵](DSH_COMPATIBILITY.md)。
34
+ Iris0.2.5的Doctor与package顶层/嵌套DSH engines及客户端peer统一覆盖12个已验证准确版本,包含0.1.2-rc.1和0.1.5系列;旧宿主不再被统一引导至Iris0.1.4。Iris0.2.4的历史范围仍为 `0.2.0-rc.2` 或 `0.2.1-alpha.4`。具体范围及SDK验收限制见 [兼容矩阵](DSH_COMPATIBILITY.md)。无DSH的CLI/离线诊断不受宿主版本限制。
35
35
 
36
36
  ## 运行时证据
37
37
 
package/docs/MUSIC.md CHANGED
@@ -13,9 +13,9 @@ Iris 0.2.3 提供独立音乐生成能力。配置音乐模型后,可以通过
13
13
  1. 添加音乐服务的供应商,填写实际 Base URL 和 API Key;Base URL 应包含服务要求的 API 前缀,例如 `/v1`。
14
14
  2. 发现或手动添加实际模型,为它设置“音乐”功能标签。
15
15
  3. 在模型的“音乐协议”中选择“Chat Completions(内嵌音频)”。
16
- 4. 在“能力分配”中将该模型加入音乐名单。
16
+ 4. 在“功能池与调用方式”启用音乐自动池,或选择“仅用所选模型”并将它加入名单。0.2.3–0.2.5 只能使用手选名单。
17
17
 
18
- 音乐仅使用明确分配的名单;未分配时会提示配置缺失。发现模型、添加标签或修改协议不会提交生成请求。音乐协议独立于账号和模型的图片协议。
18
+ 音乐遵守当前功能允许范围;没有合格候选时提示配置缺失。0.2.6 自动池仍要求确认用途并明确音乐协议,停用不能由临时指定绕过。发现模型、添加标签或修改协议不会提交生成请求。音乐协议独立于账号和模型的图片协议,详见 [功能模型池](FUNCTION_MODEL_POOLS.md)。
19
19
 
20
20
  配置文件中的 `musicProtocol` 使用现有标识 `gemini-web-music`,以兼容已有配置;这个标识不要求供应商或模型必须命名为 Gemini。
21
21
 
@@ -1,6 +1,28 @@
1
1
  # Provider 与能力健康状态
2
2
 
3
- 状态:**Iris 0.2.2**。新增短时限流冷却与明确额度/预算耗尽停用,沿用既有持久健康证据。
3
+ 版本要求:**Iris 0.2.6**。包含能力检测、目录与模型可用性;沿用短时限流冷却、明确额度/预算耗尽停用及持久健康证据。发布状态见 [README](../README.md)。
4
+
5
+ 工作台的“能力状态与检测”与 [功能模型池](FUNCTION_MODEL_POOLS.md) 配套;以下健康证据规则继续适用。
6
+
7
+ ## 工作台检测入口
8
+
9
+ 能力检测默认折叠,只展示六项能力的近期成功与调用受阻摘要;点击“展开检测”后查看图片、视频、语音、音乐、转写、视觉六张能力卡及候选覆盖,例如“2个可用 · 1/2近期成功”。点卡片展开候选模型、最近验证时间和检测操作;供应商中的中文能力标签会直接展开检测区并打开对应详情。桌面随面板宽度排列,手机单列,适配宿主深浅主题。
10
+
11
+ 工作台统一分区、标题、按钮和表单样式。功能池、创作工具、快捷偏好、诊断和历史按需展开,运行中及需要处理的任务直接展示;检测跳转会展开对应的功能设置或创作工具分区。折叠不取消正在执行的实测,也不清空已经返回的结果;未提交的实测确认在折叠时关闭,重新展开后需再次确认。
12
+
13
+ “检查配置”只读取当前分配、供应商元数据及历史健康状态,不调用模型,不把连接存在或模型名称当作实测成功。旧服务端缺少新策略字段时暂停实测,提示重新加载 DSH。真实实测先展示测试内容、具体模型及可能费用,确认后只调用这一项;提交前重新检查当前范围,停用、移出池、用途待确认或连接未就绪均不会提交。
14
+
15
+ 图片使用红色圆形测试图,语音合成“你好”,视觉识别内置红图。视频、转写、音乐及宿主视觉提供“前往功能验证”,打开实际任务表单,用户填写素材并选择模型后提交;打开表单本身不发起生成。实测结果依据现有接口返回,不额外证明媒体已经下载或可播放。
16
+
17
+ 逐项显示验证中、通过、未通过或结果未确认;确认期间防止重复提交。网络中断、超时或响应无法确认时保留未知结果,不自动重试;再次检查配置只读状态,不能证明上一请求未计费。冷却或额度耗尽的模型可显式实测恢复,仍须满足当前功能范围及连接要求。
18
+
19
+ ### TTS 的接口与音色限制
20
+
21
+ 当前接入 Qwen-TTS 普通 HTTP 合成,例如 `qwen3-tts-flash`;模型在具体账号、地域是否可用仍须实测。Qwen 的 `realtime` 语音模型使用 WebSocket;Qwen-Audio-TTS、CosyVoice、Sambert、MiniMax 语音系列需要各自的接口或参数适配,不能共用现有请求。已知接口缺口会显示具体原因、排除自动池并在手选提交时本地拒绝;从旧模型入口触发检测也只会跳过,不发送请求、不写成供应商实测失败。发现或确认 TTS 用途本身不证明接口已经接入。见[官方模型与协议对照](https://help.aliyun.com/zh/model-studio/tts-model/)及[Qwen-Audio-TTS HTTP 接口](https://help.aliyun.com/zh/model-studio/qwen-audio-tts-http-api)。
22
+
23
+ 复刻(`vc`)和声音设计(`vd`)模型需要与模型匹配的自建音色。固定“你好”探针没有音色素材,因而跳过;实际使用时先创建音色,再到语音功能填写对应音色 ID,不能自动沿用普通模型的 `Cherry`。
24
+
25
+ 遇到 `Model not exist`,先核对错误中的模型 ID、请求域名所属地域及该模型的接口。不要把整个供应商判为不可用,也不要批量重测其他模型。可先确认一个与现有 HTTP 接口匹配的模型用途,再单独确认费用进行实测;发现的新模型仍需确认,旧模型不会被自动删除或替换。修正后的提示保留上游错误与 HTTP 状态,不自动换地域、模型或重试。普通版请求格式见[官方 Qwen-TTS HTTP 文档](https://help.aliyun.com/zh/model-studio/qwen-tts-api)。
4
26
 
5
27
  Iris 用持久化证据描述“当前配置是否存在、最近是否实际成功、是否出现明确凭据失败”。它不是后台监控,也不等同于 Host Doctor。
6
28
 
@@ -15,6 +37,8 @@ Iris 用持久化证据描述“当前配置是否存在、最近是否实际成
15
37
 
16
38
  状态按 `Provider × Model × Capability` 记录,不因同名模型而合并。模型、Key、Base URL、协议或能力模型等关键配置变化会清空相关旧证据;移除模型或能力标签也会移除不再成立的记录。
17
39
 
40
+ 0.2.6 单独保存“当前连接明确返回模型不存在”的可用性证据:健康详情显示隔离原因,自动请求跳过该模型,历史成功仍保留。核对目录后可单独实测恢复;目录中列出仅证明发现信息,不能覆盖失败或算作成功验证。目录快照按需缓存,工作台默认折叠;只读配置检查不会同步或实测。完整边界见 [目录更新与候选可用性](FUNCTION_MODEL_POOLS.md#目录更新与候选可用性)。
41
+
18
42
  模型可单独设置 `imageProtocol`,未设置或 `auto` 时继承账号默认。改变有效图片协议只使该模型的生图验证失效;同模型的视觉验证、其他模型及冷却/额度停用均保留。再次选择同一有效协议不清空验证。设置入口见 [CLI 管理命令](CLI_MANAGEMENT.md),DSH 模型池的生图模型行也可修改。
19
43
 
20
44
  ## 什么会改变状态
@@ -47,7 +71,7 @@ HTTP 状态、供应商错误码和明确错误说明一起决定路由规则,
47
71
  3. 所有已配置候选均受阻时显示调用受阻;若全部只是冷却,显示琥珀色及最早恢复时间;
48
72
  4. 没有候选时为灰色。
49
73
 
50
- 主泡泡再按五项能力使用同一保守规则汇总。汇总证据时间只从决定汇总颜色的候选中选择,例如绿色不会显示另一条较新蓝色临时观察的时间。界面同时显示文字和证据时间,不要求用户只凭颜色判断。
74
+ 主泡泡再按六项能力使用同一保守规则汇总。汇总证据时间只从决定汇总颜色的候选中选择,例如绿色不会显示另一条较新蓝色临时观察的时间。界面同时显示文字和证据时间,不要求用户只凭颜色判断。
51
75
 
52
76
  ## 与诊断的区别
53
77
 
package/docs/ROADMAP.md CHANGED
@@ -4,16 +4,19 @@ Iris 的方向是本地优先、Agent 可调用的多模态创作工作台。用
4
4
 
5
5
  ## 当前状态
6
6
 
7
- 本文对应 **Iris0.2.4**,发布状态见 [README](../README.md)。包名为 `@mokuyoaxis/dsh-iris`,同时提供DSH插件与独立CLI,详见 [0.2.4发布说明](releases/0.2.4.md)。
7
+ 本文对应 **Iris 0.2.6**,发布状态见 [README](../README.md)。包名为 `@mokuyoaxis/dsh-iris`,同时提供 DSH 插件与独立 CLI;本版增加连接复用、可选自动池和目录同步,详见 [0.2.6 发布说明](releases/0.2.6.md)。
8
8
 
9
9
  - 图片生成、Artifact ID 看图/OCR/定位和聊天改图,支持按模型配置图片协议。
10
- - 持久图片导入与原生Qwen改图,六类功能统一严格分配及显式宿主视觉;支持DSH rc.2和alpha.4。见 [0.2.4发布说明](releases/0.2.4.md)。
11
- - 视频、S2V、TTS、转写与音乐生成,共用任务、音频/视频作品和导出入口;音乐使用明确分配名单。
10
+ - 持久图片导入与原生 Qwen 改图;六类功能可选自动池、手选或停用,宿主视觉需明确启用。0.2.5 建立的 12 个准确 DSH 版本范围保持。
11
+ - 视频、S2V、TTS、转写与音乐生成,共用任务、音频/视频作品和导出入口;音乐遵守当前允许范围并明确音乐协议。
12
+ - DSH 连接引用、模型用途确认、按需目录快照与精确模型不存在隔离;能力检测和高级分区默认折叠,实测单独确认费用。
12
13
  - 三项 Agent Skills 分别指导单步操作、多步骤创作和界面验收;配乐与检查按用户目标加入。
13
14
  - 提示词的忠实整理、明确改写、可选建议与预览;完整同步媒体结果缓存后的交付恢复。
14
15
  - 工作台全媒体筛选、分页、跨页选择和下载,CLI 的配置、查询与可恢复维护。
15
16
 
16
- DSH与CLI共用Task和Artifact,同一数据根只允许一个写者。纯视觉和提示词预览不自动创建媒体任务;Core与Model Port仍是内部契约。Node.js最低22.0.0,Iris0.2.4支持DSH rc.2或alpha.4,旧宿主固定Iris0.1.4,见 [兼容矩阵](DSH_COMPATIBILITY.md)。
17
+ DSH与CLI共用Task和Artifact,同一数据根只允许一个写者。纯视觉和提示词预览不自动创建媒体任务;Core与Model Port仍是内部契约。Node.js最低22.0.0。0.2.5恢复旧宿主的当前功能,并覆盖12个准确DSH版本;具体版本和历史范围见 [兼容矩阵](DSH_COMPATIBILITY.md)。
18
+
19
+ 宿主兼容继续集中在Adapter与客户端桥接。后续DSH更新优先检查实际API、工具/附件交付和输入区契约,复用同一验收入口扩充版本矩阵,避免让旧用户长期停留在缺少新功能的Iris分支。
17
20
 
18
21
  ## 近期优先:真实使用验收
19
22
 
@@ -41,6 +44,7 @@ DSH 工作台与 Headless CLI 共用 Core 的可恢复隔离和恢复入口,
41
44
  - 冻结中立 TextModel Port,把 Ollama、兼容文本端点及其他文本模型后端与媒体 Provider Catalog 分离,避免通用文本模型淹没 Iris 媒体模型界面;
42
45
  - 接入 ComfyUI、本地 TTS 等本地媒体 Provider,并补齐 `auth: none`、`billing: none`、同步完成语义和本地/远程 UI 区分;
43
46
  - 有可信价格来源后的成本与策略展示。
47
+ - 显式授权后的目录新模型跟随、新语音协议及磁盘占用管理;当前自动池不自动授权目录新增模型,也没有跨请求轮转。
44
48
 
45
49
  ### 0.3 及以后
46
50
 
package/docs/SECURITY.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Iris 安全边界
2
2
 
3
- 状态:Iris 0.2.2 安全边界。安全目标是避免凭据泄露、路径越权、跨站写入和因错误重试造成重复计费;Iris 与 DSH 仍是本机同一信任域内的预览软件,不构成多租户安全边界。
3
+ 版本:Iris 0.2.6,发布状态见 [README](../README.md)。安全目标是避免凭据泄露、路径越权、跨站写入和因错误重试造成重复计费;Iris 与 DSH 仍是本机同一信任域内的预览软件,不构成多租户安全边界。
4
4
 
5
5
  ## 信任模型
6
6
 
@@ -13,10 +13,14 @@
13
13
 
14
14
  供应商凭据保存在 `$DSH_HOME/iris/v1/providers.json`。POSIX 上 Iris 创建的目录和文件分别使用 `0700` 与 `0600`,启动时会在不跟随符号链接的前提下收紧既有 Iris 树。Windows mode 不等同于 ACL,仍依赖当前用户目录和系统账户权限。
15
15
 
16
- API、SSE 和 Doctor 只返回凭据存在性或掩码提示。Provider 错误会移除 Bearer token、常见 Key、签名查询参数、堆栈和私有绝对路径。不要把 `providers.json`、环境变量或含签名的临时 URL 上传到 Issue。
16
+ [DSH 连接复用](DSH_PROVIDER_CONNECTIONS.md)对引用条目只保存宿主连接标识,不保存密钥或普通 Base URL。连接列表使用脱敏设置与凭据存在性,不读取值;执行操作时才通过公开凭据接口取得内存副本。副本按异步操作隔离,不回写配置、Task、Artifact、HTTP 状态或日志。OAuth 和自定义请求头不会被猜测转换为 Bearer 认证。
17
+
18
+ API、SSE 和 Doctor 只返回凭据存在性或掩码提示。Provider 错误会移除 Bearer token、常见 Key、签名查询参数、堆栈和私有绝对路径。0.2.6 的媒体 Provider Adapter 还会在截断之前移除本次已知 API Key,覆盖无固定前缀的密钥及错误码中的回显。不要把 `providers.json`、环境变量或含签名的临时 URL 上传到 Issue。
17
19
 
18
20
  健康证据与供应商配置同存于 `providers.json`,只保存模型、能力、时间、来源、错误分类、可选 HTTP 状态和脱敏短说明;状态 API 不返回完整 Key。关键凭据、端点或协议变化会清空旧证据,避免把另一组配置的成功错误沿用为当前事实。
19
21
 
22
+ 模型目录与可用性证据也保存在该私有配置中,只写入固定形状的模型/能力数据、时间与连接摘要,不保存解析后的凭据。摘要用于判断连接变化,不是身份认证。新自动请求可能按需读取目录;只读配置查询、手选请求及旧任务恢复不隐式同步或付费实测。目录出现新模型不授权使用,未列出也不自动删除或阻断;具体规则见 [功能模型池](FUNCTION_MODEL_POOLS.md)。
23
+
20
24
  `ai-paint` 是维护者未公开的本地前身,不是用户依赖。Iris 只有在用户显式设置 `IRIS_IMPORT_WORKBENCH_CONFIG` 为绝对路径且自身配置为空时才做一次性导入,不扫描其他项目,也不回写来源文件。
21
25
 
22
26
  ## 受理与费用安全
@@ -48,6 +52,12 @@ API、SSE 和 Doctor 只返回凭据存在性或掩码提示。Provider 错误
48
52
  - SSE 使用同源连接、节流和背压合并;慢消费者只保留最新快照,避免积压历史状态。
49
53
  - 如果把 DSH 通过 LAN、反向代理或隧道暴露,必须由部署者另加真正的认证、TLS、访问控制和来源限制。
50
54
 
55
+ ## 图像处理依赖
56
+
57
+ 0.2.6 将 `sharp` 最低版本提高到 `0.35.5`,锁文件同步其修复后的预编译依赖,以处理 [librsvg 高危公告 GHSA-wq5f-xc86-pv6w](https://github.com/lovell/sharp/security/advisories/GHSA-wq5f-xc86-pv6w)。公告涉及特定 glibc Linux 运行条件下的 SVG 内存安全问题;这不是本项目已发生利用的证据。只检查文件扩展名不能代替更新解码器。
58
+
59
+ 若部署时自行替换为系统 libvips/librsvg,应单独核对系统库修复版本;npm 锁文件和审计不覆盖自行安装的系统库。公开图片导入仍限制静态 PNG/JPEG/WebP,内部摘要使用程序构造的 SVG 标签。
60
+
51
61
  ## 离线 Doctor
52
62
 
53
63
  `dsh-iris doctor` 不启动 DSH,不发送供应商或计费请求,也不打印 API Key。默认 DSH 模式会在 Iris 数据目录或最近可写父目录创建一个随机小文件并立即删除,用于验证真实写权限;显式 `--data-root <abs>` Core 模式只读检查指定根的结构、索引、任务和租约,不做写探针,也不自动释放租约。`--json` 与文本输出使用同一结果模型,退出码为:`0` 正常、`1` 有警告、`2` 有硬错误。