@mokuyoaxis/dsh-iris 0.2.7 → 0.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/CHANGELOG.md +143 -1
  2. package/README.en.md +109 -311
  3. package/README.md +106 -309
  4. package/bin/dsh-iris.js +452 -92
  5. package/docs/AGENT_CORE_QUICKSTART.md +64 -0
  6. package/docs/AGENT_QUICKSTART.md +2 -0
  7. package/docs/ARCHITECTURE.md +13 -3
  8. package/docs/ARTIFACT_MANIFEST.md +4 -0
  9. package/docs/AUDIO_FLOWS.md +87 -0
  10. package/docs/BETA_SCOPE.md +42 -0
  11. package/docs/CONTACT_SHEET.md +62 -0
  12. package/docs/CORE_CONNECTIONS.md +101 -0
  13. package/docs/CORE_QUICKSTART.md +110 -0
  14. package/docs/CORE_RUNTIME_CONTRACT.md +7 -2
  15. package/docs/CORE_SERVICE.md +101 -0
  16. package/docs/CORE_SKILLS.md +35 -3
  17. package/docs/DSH_COMPATIBILITY.md +21 -1
  18. package/docs/DSH_CORE_MIGRATION.md +6 -0
  19. package/docs/DSH_RC2_ADAPTATION.md +1 -1
  20. package/docs/DSH_RUNTIME.md +6 -2
  21. package/docs/HEADLESS_CLI.md +30 -5
  22. package/docs/HOST_ADAPTER_CONTRACT.md +5 -3
  23. package/docs/IMAGE_FLOW.md +4 -0
  24. package/docs/IMAGE_GENERATION.md +127 -0
  25. package/docs/LOCAL_API.md +4 -2
  26. package/docs/LOCAL_API_CONTRACT.md +42 -15
  27. package/docs/LOCAL_CREATION.md +7 -1
  28. package/docs/LOCAL_OPERATIONS.md +46 -0
  29. package/docs/LOCAL_SELECTION.md +57 -0
  30. package/docs/LOCAL_WEB.md +207 -0
  31. package/docs/MCP.md +212 -0
  32. package/docs/MEDIA_SCHEDULING.md +72 -0
  33. package/docs/MUSIC.md +2 -0
  34. package/docs/NETWORK_RESOURCES.md +106 -0
  35. package/docs/NETWORK_ROUTING.md +103 -0
  36. package/docs/NETWORK_WORKBENCH.md +65 -0
  37. package/docs/PANEL_EXTENSIONS.md +64 -0
  38. package/docs/PLUGINS.md +193 -0
  39. package/docs/PLUGIN_DEVELOPMENT.md +39 -0
  40. package/docs/PLUGIN_STARTUP.md +113 -0
  41. package/docs/PROVIDER_ADAPTER_CONTRACT.md +8 -2
  42. package/docs/PROVIDER_CREDENTIALS.md +67 -0
  43. package/docs/PROVIDER_EXTENSIONS.md +82 -0
  44. package/docs/PROVIDER_HEALTH.md +5 -1
  45. package/docs/PROVIDER_NETWORK.md +45 -0
  46. package/docs/PROVIDER_PLUGIN_CONTRACT.md +24 -0
  47. package/docs/PROVIDER_SETTINGS.md +91 -0
  48. package/docs/PROVIDER_SUBMISSION_CONTRACT.md +8 -0
  49. package/docs/ROADMAP.md +18 -8
  50. package/docs/SECURITY.md +1 -1
  51. package/docs/SYNC_DELIVERY_RECOVERY.md +5 -1
  52. package/docs/VIDEO_FLOWS.md +89 -0
  53. package/docs/VISION_CLI.md +1 -1
  54. package/docs/VISION_MODEL.md +2 -0
  55. package/docs/WEB_PROTOTYPE.md +21 -6
  56. package/docs/WEB_RECOVERY.md +46 -0
  57. package/docs/WORKBENCH_ARTIFACTS.md +6 -0
  58. package/docs/WORKBENCH_LOGIN.md +63 -0
  59. package/docs/assets/screenshots/core-connections-preview.webp +0 -0
  60. package/docs/assets/screenshots/core-model-pools-preview.webp +0 -0
  61. package/docs/assets/screenshots/core-overview-preview.webp +0 -0
  62. package/docs/assets/screenshots/core-spectrum-preview.webp +0 -0
  63. package/docs/assets/screenshots/core-studio-dark-preview.webp +0 -0
  64. package/docs/assets/screenshots/core-studio-mobile-preview.webp +0 -0
  65. package/docs/assets/screenshots/core-studio-preview.webp +0 -0
  66. package/docs/releases/0.3.0-alpha.1.md +51 -0
  67. package/docs/releases/0.3.0-beta.1.md +34 -0
  68. package/docs/screenshots.md +41 -1
  69. package/lib/actions.js +56 -4
  70. package/lib/adapters.js +75 -49
  71. package/lib/api.js +23 -13
  72. package/lib/application-runtime.js +73 -17
  73. package/lib/application-writer.js +193 -0
  74. package/lib/audio-flow-input.js +37 -0
  75. package/lib/client.d.ts +3 -3
  76. package/lib/client.js +402 -72
  77. package/lib/comfyui-adapter.js +95 -0
  78. package/lib/comfyui-client.js +60 -0
  79. package/lib/comfyui-inspection.js +73 -0
  80. package/lib/comfyui-workflow.js +94 -0
  81. package/lib/command-service.js +18 -5
  82. package/lib/config.js +49 -10
  83. package/lib/configured-image-runtime.js +69 -0
  84. package/lib/connection-skill.js +98 -0
  85. package/lib/connection-template.js +23 -0
  86. package/lib/core-artifact-store.js +84 -28
  87. package/lib/core-bridge-selection.js +31 -0
  88. package/lib/core-bridge-tools.js +85 -0
  89. package/lib/core-capability-catalog.js +192 -0
  90. package/lib/core-connection-diagnostics.js +49 -0
  91. package/lib/core-connection-store.js +277 -0
  92. package/lib/core-connections.js +225 -0
  93. package/lib/core-delivery-cache.js +8 -3
  94. package/lib/core-maintenance.js +9 -3
  95. package/lib/core-runtime.js +2 -1
  96. package/lib/core-service-client.js +174 -0
  97. package/lib/core-tasks.js +113 -21
  98. package/lib/core-writer-lease.js +16 -0
  99. package/lib/creation-request-store.js +41 -64
  100. package/lib/doctor.js +2 -2
  101. package/lib/dsh-core-adapter.js +61 -9
  102. package/lib/dsh-host-adapter.js +4 -1
  103. package/lib/dsh-provider-config.js +1 -1
  104. package/lib/dsh-service-bridge.js +67 -0
  105. package/lib/execution-ownership.js +43 -0
  106. package/lib/flow-store.js +156 -14
  107. package/lib/generation-input.js +10 -1
  108. package/lib/headless-vision.js +7 -7
  109. package/lib/image-edit-input.js +1 -1
  110. package/lib/image-flow.js +97 -31
  111. package/lib/index.js +47 -22
  112. package/lib/local-api-projection.js +15 -6
  113. package/lib/local-api-token-directory.js +31 -0
  114. package/lib/local-api.js +861 -71
  115. package/lib/local-creation.js +96 -24
  116. package/lib/local-operations.js +36 -0
  117. package/lib/local-request-root.js +86 -0
  118. package/lib/local-web-assets.js +39 -0
  119. package/lib/mcp-bridge.js +58 -0
  120. package/lib/mcp-check.js +26 -0
  121. package/lib/mcp-config.js +42 -0
  122. package/lib/mcp-delivery.js +46 -0
  123. package/lib/mcp-http.js +174 -0
  124. package/lib/mcp-server.js +69 -0
  125. package/lib/media-scheduler.js +194 -0
  126. package/lib/model-directory-service.js +37 -10
  127. package/lib/model-directory.js +3 -3
  128. package/lib/models.js +2 -2
  129. package/lib/music-transport.js +6 -3
  130. package/lib/network-config-service.js +123 -0
  131. package/lib/network-config.js +127 -0
  132. package/lib/network-doctor.js +94 -0
  133. package/lib/network-management.js +51 -0
  134. package/lib/network-policy.js +19 -0
  135. package/lib/network-route-evidence.js +38 -0
  136. package/lib/network-routing.js +283 -0
  137. package/lib/operation-runner.js +281 -0
  138. package/lib/operation-store.js +216 -0
  139. package/lib/panel-extension.js +36 -0
  140. package/lib/plugin-contract.js +194 -0
  141. package/lib/plugin-execution.js +51 -0
  142. package/lib/plugin-launch.js +86 -0
  143. package/lib/plugin-operation-store.js +101 -0
  144. package/lib/plugin-operations.js +28 -0
  145. package/lib/plugin-registry.js +109 -0
  146. package/lib/plugin-selection.js +15 -0
  147. package/lib/plugin-source-image.js +5 -0
  148. package/lib/plugin-web-assets.js +54 -0
  149. package/lib/plugins.d.ts +307 -0
  150. package/lib/plugins.js +59 -0
  151. package/lib/provider-adapter.js +7 -3
  152. package/lib/provider-adapters.js +92 -22
  153. package/lib/provider-catalog.js +64 -36
  154. package/lib/provider-config-format.js +51 -0
  155. package/lib/provider-config-service.js +143 -31
  156. package/lib/provider-context.d.ts +90 -0
  157. package/lib/provider-context.js +42 -0
  158. package/lib/provider-credentials.js +97 -0
  159. package/lib/provider-diagnostics.js +56 -0
  160. package/lib/provider-extensions.js +29 -0
  161. package/lib/provider-health.js +18 -6
  162. package/lib/provider-monitor.js +81 -0
  163. package/lib/provider-network.js +52 -0
  164. package/lib/provider-protocol.js +73 -22
  165. package/lib/provider-registry.js +128 -0
  166. package/lib/provider-response.js +38 -0
  167. package/lib/provider-settings.js +136 -0
  168. package/lib/provider-task-runner.js +132 -43
  169. package/lib/provider-transport.js +16 -0
  170. package/lib/render.js +11 -1
  171. package/lib/scheduling-policy.js +66 -0
  172. package/lib/skill-installation.js +23 -11
  173. package/lib/tasks.js +3 -2
  174. package/lib/video-flow-input.js +16 -0
  175. package/lib/video-input.js +12 -5
  176. package/lib/vision-model-routing.js +5 -0
  177. package/lib/web/app.js +703 -0
  178. package/lib/web/appearance.js +111 -0
  179. package/lib/web/comfyui.js +146 -0
  180. package/lib/web/connections.js +516 -0
  181. package/lib/web/creation.js +359 -0
  182. package/lib/web/flow-view.js +34 -0
  183. package/lib/web/gallery.js +133 -0
  184. package/lib/web/index.html +344 -0
  185. package/lib/web/media-client.js +218 -0
  186. package/lib/web/network.js +232 -0
  187. package/lib/web/plugin-panel.js +223 -0
  188. package/lib/web/plugin-status.js +140 -0
  189. package/lib/web/plugin-surface.css +17 -0
  190. package/lib/web/providers.js +513 -0
  191. package/lib/web/recovery.js +105 -0
  192. package/lib/web/startup.js +18 -0
  193. package/lib/web/styles.css +571 -0
  194. package/lib/web/transport.js +101 -0
  195. package/lib/web/workbench-login.js +165 -0
  196. package/lib/workbench-artifacts.js +3 -2
  197. package/lib/workbench-auth-cli.js +47 -0
  198. package/lib/workbench-auth.js +200 -0
  199. package/package.json +24 -6
  200. package/plugins/contact-sheet/index.d.mts +4 -0
  201. package/plugins/contact-sheet/index.mjs +33 -0
  202. package/plugins/contact-sheet/web/board.css +14 -0
  203. package/plugins/contact-sheet/web/board.mjs +93 -0
  204. package/skills/iris-core/SKILL.md +8 -4
  205. package/skills/iris-core/references/cli.md +2 -2
  206. package/skills/iris-core/references/comfyui.md +69 -0
  207. package/skills/iris-core/references/tasks.md +2 -0
  208. package/templates/plugin-starter/LICENSE +21 -0
  209. package/templates/plugin-starter/README.md +74 -0
  210. package/templates/plugin-starter/assets/peach.png +0 -0
  211. package/templates/plugin-starter/assets/violet.png +0 -0
  212. package/templates/plugin-starter/index.mjs +27 -0
  213. package/templates/plugin-starter/package.json +18 -0
  214. package/templates/plugin-starter/scripts/core-cli.mjs +20 -0
  215. package/templates/plugin-starter/scripts/environment.mjs +65 -0
  216. package/templates/plugin-starter/scripts/mcp-probe.mjs +22 -0
  217. package/templates/plugin-starter/scripts/setup.mjs +42 -0
  218. package/templates/plugin-starter/scripts/smoke.mjs +76 -0
  219. package/templates/plugin-starter/web/board.css +27 -0
  220. package/templates/plugin-starter/web/board.mjs +160 -0
  221. package/templates/plugin-starter/web/png.mjs +23 -0
  222. package/templates/provider-starter/LICENSE +21 -0
  223. package/templates/provider-starter/README.md +50 -0
  224. package/templates/provider-starter/index.d.mts +5 -0
  225. package/templates/provider-starter/index.mjs +165 -0
  226. package/templates/provider-starter/package.json +13 -0
  227. package/templates/provider-starter/scripts/core-cli.mjs +22 -0
  228. package/templates/provider-starter/scripts/environment.mjs +122 -0
  229. package/templates/provider-starter/scripts/fixture.mjs +54 -0
  230. package/templates/provider-starter/scripts/mcp-probe.mjs +21 -0
  231. package/templates/provider-starter/scripts/protocol-smoke.mjs +48 -0
  232. package/templates/provider-starter/scripts/setup.mjs +44 -0
  233. package/templates/provider-starter/scripts/smoke.mjs +145 -0
  234. package/user_guide.md +5 -1
package/docs/ROADMAP.md CHANGED
@@ -4,7 +4,7 @@ Iris 的方向是本地优先、Agent 可调用的多模态创作工作台。用
4
4
 
5
5
  ## 当前状态
6
6
 
7
- 本文对应 **Iris 0.2.7**,发布状态见 [README](../README.md)。包名为 `@mokuyoaxis/dsh-iris`,同时提供 DSH 插件与独立 CLI;本版增加截图修复、实例运行时、持久图片流程、本地 API 和 Core Skill 安装,详见 [0.2.7 发布说明](releases/0.2.7.md)。
7
+ 本文对应 **Iris 0.3.0-beta.1**,发布状态见 [README](../README.md)。包名为 `@mokuyoaxis/dsh-iris`,保留DSH插件与独立CLI,新增Core Web、通用MCP与显式插件贡献,详见 [beta发布说明](releases/0.3.0-beta.1.md)。稳定通道0.2.7与其[历史说明](releases/0.2.7.md)保留。
8
8
 
9
9
  - 图片生成、Artifact ID 看图/OCR/定位和聊天改图,支持按模型配置图片协议。
10
10
  - 持久图片导入与原生 Qwen 改图;六类功能可选自动池、手选或停用,宿主视觉需明确启用。0.2.5 建立的 12 个准确 DSH 版本范围保持。
@@ -14,7 +14,7 @@ Iris 的方向是本地优先、Agent 可调用的多模态创作工作台。用
14
14
  - 提示词的忠实整理、明确改写、可选建议与预览;完整同步媒体结果缓存后的交付恢复。
15
15
  - 工作台全媒体筛选、分页、跨页选择和下载,CLI 的配置、查询与可恢复维护。
16
16
 
17
- DSH与CLI共用Task和Artifact,同一数据根只允许一个写者。纯视觉和提示词预览不自动创建媒体任务;Core与Model Port仍是内部契约。Node.js最低22.0.0。0.2.5恢复旧宿主的当前功能,并覆盖12个准确DSH版本;具体版本和历史范围见 [兼容矩阵](DSH_COMPATIBILITY.md)。
17
+ DSH与CLI共用Task和Artifact,同一数据根只允许一个写者。纯视觉和提示词预览不自动创建媒体任务;Core与Model Port仍是内部契约。Node.js最低22.1.0。0.2.5恢复旧宿主的当前功能,并覆盖12个准确DSH版本;具体版本和历史范围见 [兼容矩阵](DSH_COMPATIBILITY.md)。
18
18
 
19
19
  宿主兼容继续集中在Adapter与客户端桥接。后续DSH更新优先检查实际API、工具/附件交付和输入区契约,复用同一验收入口扩充版本矩阵,避免让旧用户长期停留在缺少新功能的Iris分支。
20
20
 
@@ -26,11 +26,21 @@ DSH与CLI共用Task和Artifact,同一数据根只允许一个写者。纯视
26
26
 
27
27
  [DSH Core 装配](DSH_RUNTIME.md)也已迁入实例:写入共用应用队列,连接解析引用、观察器和启动接管由插件持有,卸载等待在途操作。原根与业务保持;legacy 配置等存储仍未实例化,Flow 尚未接入 DSH 工作台。
28
28
 
29
- 0.2.7 已有 [I4A 默认只读 API](LOCAL_API.md)与 [I4B 本地创建](LOCAL_CREATION.md):显式回环监听、Bearer/Host/Origin、受控图片,以及新空根主动启用的上传/Run 创建和持久 Key 身份接回。GET 不执行步骤,本地创建也不生成;有限执行/取消与 Operation 仍按 [API 契约](LOCAL_API_CONTRACT.md)继续。
29
+ 0.2.7 已有 [I4A 默认只读 API](LOCAL_API.md)与 [I4B 本地创建](LOCAL_CREATION.md):显式回环监听、Bearer/Host/Origin、受控图片,以及新空根主动启用的上传/Run 创建和持久 Key 身份接回。GET 不执行步骤,本地创建也不生成;0.3 beta的有限执行、本地停止、Operation 与持久选择见 [API 契约](LOCAL_API_CONTRACT.md)。
30
30
 
31
- 源码树保留 [面向 0.3.0 的独立 Web Demo](WEB_PROTOTYPE.md),用于说明输入、状态、比较与选择的操作方向。当前只消费演示数据,不连接模型、不计费,也未接入 API;界面与交互细节留到 **0.3.0 阶段统一润色**。后续补执行接收、取消和恢复验收,再接入实际工作台。通用 Recipe 与实际独立工作台尚未完成,没有已承诺的发布日期。
31
+ 源码树保留 [独立 Web Demo](WEB_PROTOTYPE.md),只消费演示数据、不调用模型、不计费。真实工作台已迁入其创作/作品/连接结构,新增 [供应商设置](PROVIDER_SETTINGS.md)与 [Panel/外观](PANEL_EXTENSIONS.md);Demo 内存草稿不导入 Core。本次先按alpha范围交付,真实上游、更多设备与媒体入口继续按实际验证推进。
32
32
 
33
- ## 近期优先:真实使用验收
33
+ ## 近期优先:插件契约与真实接入
34
+
35
+ 0.3 alpha提供 [Core 插件贡献契约](PLUGINS.md)、统一目录、接入预设和默认 Panel 三处组合挂载。[多图对照板](CONTACT_SHEET.md)现已通过公开接口贯穿真实业务、持久 Operation/原 UUID、Web 选择、MCP和包外消费者;验证重启/强杀、缺失/准确版本、缩权及原作品读取。后续按实际反馈完善启用/分发体验和媒体覆盖,不把显式程序化装配称为插件市场。契约仍为实验性,RC与稳定版时间尚未确定。
36
+
37
+ **0.3 beta进展**:[Core 工作台](LOCAL_WEB.md)已有创作、作品、连接与供应商页面;按独立开关提供图片、语音/转写、有限观察/本地停止、版本约束选择、原字节下载及 owner 配置管理。[Core 服务](CORE_SERVICE.md)提供 Operation、单根 runner 与授权桥;[原请求恢复](WEB_RECOVERY.md)重连只读、不自动首次执行。beta.1新增新v4根的固定文生视频、凭据引用、出口与调度;候选范围见[beta约定](BETA_SCOPE.md),不自动迁移旧根。npm 0.2.7 尚不含这些Core新入口。
38
+
39
+ 连接名目采用用户建档和 MCP 客户端声明,不扫盘或按品牌白名单限制。源码已支持纯数据模板导入及按连接有效工具交付 Skill,复用显式安装器;后续继续完善接入体验和尚未接入的媒体分组。客户端身份声明与媒体实测分别展示。
40
+
41
+ [通用 MCP](MCP.md)已有 stdio/Streamable HTTP、generic 默认连接、明确功能/工具范围和配置导出,支持固定图片编辑及独立文生图;新 v2 根与 [ComfyUI 入口](IMAGE_GENERATION.md)已提供受控验证。新 v3 根另完成 [TTS/转写闭环](AUDIO_FLOWS.md),包括Web播放/文本/下载、原任务恢复和MCP可选分组。beta.1的新v4根已接入[固定文生视频](VIDEO_FLOWS.md)及标准MCP资源读取;Core持久音乐/视觉流程仍待后续,既有DSH/CLI能力分别保留。受控测试、真实供应商和设备验收分别记录,不因客户端连接成功就视为全媒体已覆盖。
42
+
43
+ [DSH ComfyUI 专区](IMAGE_GENERATION.md#dsh-工作台入口03-alpha)已接通现有供应商、画图与泡泡卡片,提供参数模板和只读节点检查;仍使用宿主原 Task,固定 Flow 尚未进入 DSH 面板。独立 Core 已补 v1 导入/表单预览、LoRA 双权重等参数及原 Run 参数查看;工作流卡片/预设、真实 GPU 与远程部署验收继续后续推进,官网/源码与受控浏览器验证不等于推理验收。
34
44
 
35
45
  优先完善图片创作与配乐、短片素材准备等完整流程:复用已有作品、按需生成、试听或查看结果,再导出可继续处理的素材。分别交付音视频素材不等于自动混音成片。
36
46
 
@@ -54,14 +64,14 @@ DSH 工作台与 Headless CLI 共用 Core 的可恢复隔离和恢复入口,
54
64
  - 有可用接口与实际需求后,补 Images 编辑、mask、多参考图或连续编辑;
55
65
  - 在已有纯核心提示词实现上补共享 `prompt.optimize` Command 与 CLI 消费;DSH 负责草稿读取、预览和写回;
56
66
  - 冻结中立 TextModel Port,把 Ollama、兼容文本端点及其他文本模型后端与媒体 Provider Catalog 分离,避免通用文本模型淹没 Iris 媒体模型界面;
57
- - 接入 ComfyUI、本地 TTS 等本地媒体 Provider,并补齐 `auth: none`、`billing: none`、同步完成语义和本地/远程 UI 区分;
67
+ - ComfyUI 原生 HTTP/工作流入口已接入,真实 GPU/节点与部署验证继续单列;本地 TTS、费用标签、更多完成语义和本地/远程 UI 体验按需求推进;
58
68
  - 有可信价格来源后的成本与策略展示。
59
69
  - 显式授权后的目录新模型跟随、新语音协议及磁盘占用管理;当前自动池不自动授权目录新增模型,也没有跨请求轮转。
60
70
 
61
71
  ### 0.3 及以后
62
72
 
63
- - `0.3`:Recipe、可恢复 Flow、显式启动的本地 API 和最小独立工作台;
64
- - `0.4`:在有真实消费者后公开 Provider/Host SDK;
73
+ - `0.3`:可恢复 Flow、本地 API、独立工作台和实验性插件贡献;优先改善 MCP 首次接入及公开贡献的实际消费;
74
+ - `0.4`:根据真实插件/宿主消费者继续完善 SDK,Host 扩展及兼容承诺按验证范围推进;
65
75
  - `1.0`:冻结经过多宿主和升级验证的公共契约。
66
76
 
67
77
  ## 兼容性与限制
package/docs/SECURITY.md CHANGED
@@ -37,7 +37,7 @@ API、SSE 和 Doctor 只返回凭据存在性或掩码提示。Provider 错误
37
37
  ## 文件、上传与媒体访问
38
38
 
39
39
  - 浏览器上传使用大小上限、随机文件名、`.part` 临时文件和完成后的原子改名;中断时清理临时文件,过期副本按 TTL 回收。
40
- - 输出文件名由 Iris 生成或通过 `basename` 收口,API 不返回宿主绝对路径。
40
+ - 正常输出使用Iris生成的受控文件名,状态和作品列表不返回数据根路径。DSH上传接口按设计返回临时文件绝对路径,显式 `attachment_export` 也返回本地导出路径;这些本机调用结果不等于所有API都禁止绝对路径。独立Core API的媒体输入继续使用原字节或Artifact ID,不接受任意服务器路径。
41
41
  - legacy 任务与独立作品的媒体链接使用随机 128-bit 能力令牌。令牌应视为临时访问凭据,不应发布到公网。
42
42
  - Core 媒体路由 `/iris/api/core/artifact/<artifact_id>/media` **没有独立 token**。它使用随机 96-bit Artifact ID 作为不可猜测的持有者标识,并叠加默认回环/显式 trusted Host、浏览器 `Origin`/`Sec-Fetch-Site` 拒绝跨站、`Cross-Origin-Resource-Policy: same-origin`、`Referrer-Policy: no-referrer` 与每次 SHA-256 校验。任何能访问受信 Host 且持有 Artifact ID 的客户端都能读取对应媒体;`IRIS_TRUSTED_HOSTS` 不是身份认证。不要把 Core Artifact ID 或媒体 URL 发布到不受信任位置。
43
43
  - 清理任务元数据默认不删除作品;legacy 独立作品索引不保存 Prompt、Provider、Model 或任务关系;Core Manifest 保存中性元数据、SHA-256 和来源/派生关系,不保存凭据或私有下载 URL。
@@ -2,7 +2,7 @@
2
2
 
3
3
  Iris 0.2.3 支持从缓存恢复完整同步媒体结果。本地交付失败后,可沿原任务重新交付;Task/Artifact 格式和公开 HTTP 路径保持,不需要迁移旧数据。
4
4
 
5
- 未发布的 [固定图片流程](IMAGE_FLOW.md)也将其绑定任务的成功 poll 结果先写入原交付缓存,再按预留 Artifact ID 交付;相应中断只接回原结果,不重新 submit。未绑定 Flow 的异步 Task 沿用原路径,本节其余内容描述 0.2.3 起的同步恢复边界。
5
+ [固定图片流程](IMAGE_FLOW.md)也将其绑定任务的成功 poll 结果先写入原交付缓存,再按预留 Artifact ID 交付;相应中断只接回原结果,不重新 submit。未绑定 Flow 的异步 Task 沿用原路径,本节其余内容描述 0.2.3 起的同步恢复边界。
6
6
 
7
7
  ## 使用行为
8
8
 
@@ -28,6 +28,10 @@ dsh-iris task redeliver task_0123456789abcdef01234567 \
28
28
 
29
29
  URL 下载只有正常完成、实际文件大小与 Adapter 返回值一致并通过媒体类型检查后,才提交包含 size/SHA-256 的 payload 引用。未提交文件不冒充完整缓存;已提交字节在每次恢复时重新校验。缓存已提交但 Task 完成事实尚未落盘时,显式 Task 恢复可从同一 Attempt 的缓存补回成功事实,然后将中断交付置为 failed,等待用户显式重新交付。
30
30
 
31
+ beta.1修复统一按 Task 能力检查交付大小:图片64 MiB、TTS/音乐128 MiB、转写8 MiB、通用视频1 GiB。内联Base64在解码和写payload前按实际解码长度检查;恢复旧缓存和接收Adapter文件时,在哈希或图片整读前检查实际文件大小,不按上游声称的MIME放宽限额。这些是单件作品限额,固定视频Flow的32 MiB边界另见[视频流程](VIDEO_FLOWS.md)。
32
+
33
+ 超限仍保留 `accepted / succeeded / deliveryState=failed` 的生成事实及原Attempt,不转为生成失败或重提候选。若超限导致完整缓存未能发布,同步结果不能据此离线补交付;已有远端ID的任务保留原ID,后续显式取回仍受相同限额。未提交或旧的超限缓存保留现场,不自动清理。
34
+
31
35
  Artifact 写入采用缓存预留的 ID。已有完整对象、Manifest 或提交 Record 必须与恢复的内容和中性元数据一致;异常证据保留并拒绝覆盖。第一件作品成功而第二件失败、或作品全部提交而 Task ready 落盘失败时,恢复复用已提交作品,不创建重复 ID。reader、Doctor、查看任务和刷新作品均不触发恢复。
32
36
 
33
37
  该机制不保证在收到响应与成功保存缓存之间断电/进程退出时仍能找回结果;磁盘写入失败也可能使完整结果无法缓存。缓存发布失败仍保持已生成的 succeeded/failed 事实,不据此自动重提。旧同步失败任务没有保留下来的结果时,不能追溯恢复。签名 URL 过期后也不能保证下载可继续。
@@ -0,0 +1,89 @@
1
+ # 文生视频 · 持久流程与资源交付
2
+
3
+ 这是 **0.3.0-beta.1 新增功能**。使用准确beta版本或npm `beta`通道;旧alpha.1没有下面的 `--video`、视频 Web 表单与 MCP 分组。原有 CLI / DSH 视频入口继续可用。
4
+
5
+ 协议按实际模型选择。`wan2.2-t2v-plus`等旧系列应对照官方[万相2.1–2.6文生视频接口](https://help.aliyun.com/zh/model-studio/legacy-wan-text-to-video-api-reference);官方当前主视频页已转向wan2.7新协议,不能仅凭同品牌模型套用其字段或声称已有实现覆盖。
6
+
7
+ ## 新建专用工作区
8
+
9
+ 以下路径必须是新的空 Flow 根:
10
+
11
+ ```bash
12
+ node bin/dsh-iris.js flow init --data-root /absolute/new-video-core
13
+ node bin/dsh-iris.js execution init --video --data-root /absolute/new-video-core
14
+ node bin/dsh-iris.js web serve --data-root /absolute/new-video-core \
15
+ --provider-config /absolute/private/providers.json --allow-execution \
16
+ --auth-store /absolute/private/video-auth \
17
+ --connection-store /absolute/private/video-connections \
18
+ --allow-connection-management --allow-mcp
19
+ ```
20
+
21
+ `--video` 显式建立 `creation-requests/v4`,同时包含原图片、语音与转写流程。不能与 `--audio` 或 `--image-generation` 混用;已有 v0–v3 根不升级、迁移或降级。旧版本在请求区门禁拒绝 v4;不要让旧版本 CLI 写入此根。
22
+
23
+ 初始化、读取目录、创建连接与保存视频意图均不生成。只有明确的首次继续调用模型,可能产生费用。模型池仍来自真实配置和既有用途规则;此固定流程要求用户选择一个实际 `modelRef`,不会跨请求轮询或悄悄切换模型。
24
+
25
+ beta.1修复统一检查明确的t2v/i2v/s2v/r2v模型家族:文生与图生候选不互选,固定文生视频Flow拒绝已知i2v/s2v/r2v模型。CLI/DSH和显式视频重试使用相同规则。没有这些家族标记的兼容模型ID延续原有t2v/i2v路径,实际支持仍由协议和上游决定;本片不新增模型元数据格式或迁移目录。
26
+
27
+ 独立 CLI `flow create/continue` 已补齐视频候选装配(beta.1修复),无需启动 Web:
28
+
29
+ ```bash
30
+ node bin/dsh-iris.js flow create --data-root /absolute/new-video-core \
31
+ --provider-config /absolute/private/providers.json \
32
+ --input '{"recipe":"video-generate/v0","model_ref":"provider::t2v-model","prompt":"鸢尾花随风轻摆","duration":5}'
33
+ node bin/dsh-iris.js flow continue run_0123456789abcdef01234567 \
34
+ --data-root /absolute/new-video-core --provider-config /absolute/private/providers.json
35
+ ```
36
+
37
+ Run ID 使用创建命令的实际返回值。首次继续仅提交一次;异步未结束时再次明确继续只观察原 Task,不重提。该固定流程仍仅文生视频;独立 `task retry` 的模式和媒体输入规则见[CLI 重试](HEADLESS_CLI.md#检查-task-与-artifact),不会因此扩展本流程范围。
38
+
39
+ ## 输入、任务和交付边界
40
+
41
+ - 固定配方为 `video-generate/v0`:明确 `modelRef`、`prompt`,可选 `size` 和数值型 `duration`(1–60 秒)。Prompt 最多20,000字符、尺寸最多64字符;具体参数支持由实际模型决定,目录不等于实测。
42
+ - 首片仅文生视频;不接受首帧、音频、S2V、任意供应商 JSON、本机路径或外部结果 URL。原 CLI / DSH 的图生视频和 S2V 入口不受影响。
43
+ - 创建预留唯一 Run/Task,并持久保存创建 UUID 和输入摘要;不立即提交。继续保存独立 Operation UUID,一次有限调用只提交或观察原 Task,受理未知不重新提交。
44
+ - 服务重启、刷新、历史读取不自动生成或查询供应商。异步任务需明确点击“查看原任务”再观察一次;停止等待只终止本地操作,不代表远端取消、退款或未计费。
45
+ - 原 Task 已成功但落盘失败时接回原交付;已有完整缓存可在无 Provider 的重启后修复。保留原 Run/Task/Operation/Artifact 身份。
46
+ - 视频为单一结果,无图片选择步骤。交付和读取限 MP4/WebM、最多 **32 MiB**;API 验证保存记录、大小及 SHA-256。没有完整编码探测、Range 或边下边播,客户端收到完整 Blob 后播放;真实模型的编码兼容性仍需验收。
47
+ - 类型或大小不符时保留原 Task 与已有交付证据,明确报错,不重新生成。工作台不输出供应商签名 URL、密钥或服务器存储路径。
48
+
49
+ beta.1修复会先检查 Manifest、媒体类型及实际普通文件大小,再读取固定流程的结果。超出32 MiB时保留已成功的原 Task/Artifact;重启后再次继续仍明确拒绝,不整读该文件或重新生成。这个上限属于固定 Flow/Core Web/MCP 视频读取入口;通用 Provider Task 的视频下载上限仍为1 GiB。DSH同源作品媒体GET按流发送、HEAD不分配完整文件缓冲,两者在发送前保留分块SHA-256校验;没有新增Range或编码探测。
50
+
51
+ Web 的 **创作 → 生成视频** 使用实际候选,参数默认折叠;结果提供原视频播放器和下载。**作品 → 视频** 点击“载入视频”才读取,不自动播放;离页、换分类和退出释放媒体。撤销执行权限的只读服务仍可按读取授权播放已有结果。浏览器恢复表只存身份,不存 Prompt 或凭据;丢失创建回包后接回原意图,不自动首次提交。
52
+
53
+ ## HTTP 与 MCP
54
+
55
+ HTTP 路径均以 `/api/v0` 开头,沿用 Bearer、Host/Origin、连接功能和具体工具授权:
56
+
57
+ | 入口 | 含义 |
58
+ |---|---|
59
+ | GET/HEAD `/video-models` | 真实池内文生视频候选;不探测,无密钥/端点 |
60
+ | POST `/videos` | JSON 意图,稳定 UUIDv4 `Idempotency-Key`;同 Key 同输入重放,不同输入409 |
61
+ | GET/HEAD `/artifacts/:id/video` | 授权后的原 MP4/WebM |
62
+ | GET/HEAD `/runs/:id/download` | 单一结果原字节及匹配扩展名 |
63
+ | Run / Operation 的既有入口 | 创建查询、有限继续、原操作查询和本地停止 |
64
+
65
+ JSON 正文最多64 KiB。v0–v3 根不开放此媒体组,旧连接和默认 image-edit 不自动扩权。MCP 由用户明确选择 `video-generate`,再分别选择 read/create/execute/stop 和需要的具体工具:
66
+
67
+ | 工具 | 行为 |
68
+ |---|---|
69
+ | `iris_core_video_models` | 读取实际候选 |
70
+ | `iris_core_create_video` | 保存意图,尚不生成 |
71
+ | `iris_core_video` | 校验并引用已保存的原视频,不调用模型 |
72
+
73
+ 继续、查询和停止复用原工具,并按原 Run 媒体组校验。MCP 无原生 video 内容块,视频工具返回标准 `resource_link`,URI 为 `iris://video/ARTIFACT_ID`。客户端通过标准 `resources/read` 获取 Base64 BlobResourceContents;每次读取重新检查 Core 当前授权。仅选择视频读取工具才注册资源模板,缩权或撤销后旧进程也无法继续读取。连接专属 Skill 由实际工具生成视频指导。
74
+
75
+ 客户端可能只显示引用,不提供播放器;拿到引用不等于看过视频。DSH 原生共享桥暂不投影视频资源,选择视频组时明确拒绝启动;使用通用 MCP、Core Web,或原 DSH 视频工具。
76
+
77
+ ## 验证范围
78
+
79
+ 以下测试和`scripts/`开发验收命令从源码仓库根运行,不随npm包分发。定向用例:`tests/video-flow.mjs`、`tests/video-api.mjs`、`tests/video-recovery.mjs`。真实 Chromium 场景:
80
+
81
+ ```bash
82
+ node scripts/verify-local-web-browser.mjs \
83
+ --browser-executable /absolute/path/to/chromium \
84
+ --output /absolute/new-video-evidence --video
85
+ ```
86
+
87
+ 覆盖实际小视频解码/播放、原字节下载、重启接回、丢失创建回包、停止、只读、窄屏和暗色;标准 SDK 的 HTTP/stdio 2025/2026 路径验证资源与权限。这些回归使用受控 Provider。
88
+
89
+ 另于2026-11-01完成百炼北京 `wan2.2-t2v-plus` 的真实单例:832×480、5秒H.264/MP4,1次生成提交、2次原任务查询;隔离服务重启接回同一Task、正式MCP资源读取、真实Chromium播放/下载与SHA一致均通过。未修改日常连接或查询实际账单。该结果仅覆盖这个模型、参数和当时环境,**不代表所有上游、账号、编码或客户端播放器均已实测**。
@@ -77,7 +77,7 @@ dsh-iris vision summarize \
77
77
 
78
78
  ## 配置和模型选择
79
79
 
80
- 配置沿用 Iris Provider 文件,不执行配置迁移或模型发现。文件必须为普通文件,POSIX 权限限制为当前用户可读写(例如 `chmod 600 providers.json`)。可以直接只读使用已有 Iris 配置;不会推断 DSH_HOME、HOME 或当前目录。
80
+ 配置沿用 Iris Provider 文件,不执行配置迁移或模型发现。文件必须为普通文件,POSIX 权限限制为当前用户可读写(例如 `chmod 600 providers.json`)。普通视觉成功保留配置原字节,不持久刷新健康时间;明确模型不存在、限流等失败仍沿用健康记录规则。显式开启音轨转写会创建 Core 媒体任务并保存对应成功证据;这些写入不改变账号、模型或功能分配。不会推断 DSH_HOME、HOME 或当前目录。
81
81
 
82
82
  最小结构如下,`apiKey` 由你在私有文件中设置,不放在命令参数中:
83
83
 
@@ -48,4 +48,6 @@ DSH rc.2 会压缩宿主附件。看图、OCR 和定位允许这种宿主规范
48
48
 
49
49
  [长图 OCR](OCR_MODEL.md)、[定位、拼图摘要与自述](COMPOSITE_VISION.md) 均已消费共享端口与整次预算;各自另验分块、bbox 解析、一张拼图一次生成及可选 Core 转写。legacy `vision.js` / Host `visionModel.analyze()` 兼容实现仍保留,现有业务入口不再调用。Model Port 的迁移切片本身不新增公开 SDK export 或生产依赖;0.2.1 提供 [视觉 CLI](VISION_CLI.md) 和可选 `visionInput`。复杂图像质量与 Android 浏览器仍需独立验证。
50
50
 
51
+ beta.1另修复旧 `adapters.visionStream` 兼容入口:累计SSE正文最多2 MiB,声明长度与实际字节均检查;外部取消及超时在发送前、收到响应后、逐块及结束时保留失败,已收到文字也不返回部分成功。主业务仍使用上文具有严格终态校验的Model Port,不把旧入口的宽松解析等同于该契约。
52
+
51
53
  契约与迁移说明见 [Model Port](MODEL_PORT_CONTRACT.md) 和 [DSH → Core](DSH_CORE_MIGRATION.md)。
@@ -1,11 +1,13 @@
1
1
  # 独立工作台 Demo(面向 0.3.0,未发布)
2
2
 
3
- 这是面向 **0.3.0** 的交互预览,用来展示“选图与填写要求 → 查看状态 → 比较 → 选择与下载”的操作方向。**当前 Demo 保留作为参考,界面、文案和交互细节将在 0.3.0 阶段统一润色,尚未定稿。**
3
+ 这是面向 **0.3.0** 的交互预览,包含创作、作品和连接草稿三个页面。首轮布局已围绕大图预览、紧凑参数面板和默认折叠的详情整理,仍用于验证操作方向,尚未定稿。
4
4
 
5
- Demo 可在源码树中独立预览,无需 DSH;使用内存演示与内置样图,不连接模型、不计费,也不写入 Core 数据。真实生成目前使用现有 DSH 工作台或 CLI;npm 0.2.7 不携带源码树的 prototypes/ 和预览脚本。
5
+ Demo 可在源码树中独立预览,无需 DSH;使用内存演示与内置样图,不连接模型、不计费,也不写入 Core 数据。0.3 beta的真实工作台已接入固定图片编辑及[独立文生图](IMAGE_GENERATION.md);npm 0.2.7 不含该页面,也不携带 prototypes/ 和预览脚本。
6
6
 
7
7
  ## 启动预览
8
8
 
9
+ 源码另有 [真实 Core 工作台](LOCAL_WEB.md),已采用此 Demo 的布局方向,接入明确改图、选择、下载、恢复及真实连接管理,权限由独立开关控制,默认只读。本页仅描述独立 Demo;演示数据和连接草稿不会转为真实记录,不能以演示检查替代真实服务验收。
10
+
9
11
  在 Git 源码树中,使用现有 Node.js ≥22,无须安装新依赖:
10
12
 
11
13
  ```bash
@@ -18,24 +20,35 @@ node scripts/preview-workbench.mjs
18
20
 
19
21
  ## 可体验的流程
20
22
 
23
+ 桌面左侧为导航和最近流程,中间为图片画布,右侧为输入面板;手机上导航保留在顶部,输入和画布纵向排列。
24
+
21
25
  1. 使用内置鸢尾花样图,或选择/拖放本地 PNG、JPEG、WebP;本地文件只生成标签页内的 Blob 预览,不上传。
22
26
  2. 选择演示模型、填写修改要求,点击“开始演示”。本次输入随后固定;修改输入需明确新建流程。
23
27
  3. 查看原图与示例结果,切换并排/叠图,明确选择原图或结果,再下载。
24
28
  4. 展开“运行详情与演示场景”,体验原任务进行中、受理未知、生成成功但交付中断、等待本地比较等状态。场景对新流程生效。
29
+ 5. 到“作品”页按全部、已选择或待选择筛选本标签页产生的流程;点击卡片或最近流程可只读切回原记录。首次打开为空,不预填虚构作品。
30
+
31
+ 提示词快捷按钮只填写要求,放大按钮只预览原图;均不会开始生成。“演示说明”介绍样图与记录的保留范围。
25
32
 
26
33
  **示例结果始终是内置样图,不是对上传图片或提示词的真实修改**。原图和示例结果可能相同;原型不伪造像素差异、模型质量分数、计费价格或进度百分比。下载原图取本地原字节,下载结果取内置样图;“已选择”和“下载请求已交给浏览器”分别显示,不声称文件已保存。
27
34
 
28
- 状态名称和白名单 DTO 依据真实 [固定流程](IMAGE_FLOW.md);投影有实际 Core/受控 Provider 测试。演示传输不读写磁盘 Run,不保证服务重启恢复。新建后可从详情中的流程列表只读切回本标签页旧记录;整页刷新清空演示状态,并且不会自动开始。未将文件、提示词或主题写入 localStorage。
35
+ 状态名称和白名单 DTO 依据真实 [固定流程](IMAGE_FLOW.md);投影有实际 Core/受控 Provider 测试。演示传输不读写磁盘 Run,不保证服务重启恢复。新建后也可从详情中的流程列表只读切回本标签页旧记录;整页刷新清空演示状态,并且不会自动开始。文件、提示词、草稿与主题均不写入 localStorage 或 sessionStorage。
29
36
 
30
37
  “停止本次等待”只中止当前演示操作,原任务事实保留;真实 API 的远端取消须有独立能力与确认,不能把停止等待写成取消成功。展开详情、重新读取状态、切换历史与比较方式均不驱动生成。
31
38
 
39
+ ## 连接草稿
40
+
41
+ “连接”页可自由填写名称,选择图片功能及读取、创建、执行、停止权限,并展开查看相应工具名称。草稿沿用当前 Core 图片流程的工具分组;其他媒体功能灰显,等待逐步接入。关闭图片功能后,只保留连接自检和连接清单工具。
42
+
43
+ “保存演示草稿”只保存到本标签页内存,重复保存更新同一草稿。此页不连接客户端、不创建真实授权,不生成密钥、MCP 配置或 Skill 安装;整页刷新后草稿清空。需要真实配置时使用 [Core 连接中心](CORE_CONNECTIONS.md)。
44
+
32
45
  ## 实现和下一步
33
46
 
34
- 原型位于 `prototypes/workbench/`,使用原生 HTML/CSS/JavaScript,复用现有图标和示例图片,没有新框架或生产依赖。运行详情默认折叠,关闭显示“展开”、打开显示“收起”;提供浅/深色、键盘焦点与 320/390px 布局。
47
+ 原型位于 `prototypes/workbench/`,使用原生 HTML/CSS/JavaScript,复用 Iris 图标和示例图片,没有新框架或生产依赖。运行详情和工具预览默认折叠,关闭显示“展开”、打开显示“收起”;提供浅/深色、键盘焦点与 320/390px 布局。
35
48
 
36
- 0.2.7 已有 [默认只读 API](LOCAL_API.md)及显式开启的 [本地上传/Run 创建](LOCAL_CREATION.md),带持久请求意图和身份接回;当前 Demo 保持原样,尚未连接它们。后续补执行/取消、Operation 与恢复边界,再在 0.3.0 阶段结合实际接口统一完善页面。Demo 的当前布局、提示词和样例效果仅用于说明方向,不代表最终界面或模型能力。
49
+ 0.2.7 已有 [默认只读 API](LOCAL_API.md)及显式开启的 [本地上传/Run 创建](LOCAL_CREATION.md),带持久请求意图和身份接回;0.3 beta另有 [Operation 与有限执行服务](CORE_SERVICE.md)、[版本约束选择](LOCAL_SELECTION.md)及真实创作页面。此 Demo 仍独立使用内存样例,其布局、提示词和样例效果用于说明方向,不代表模型能力;真实页面的恢复、故障与发布门禁继续独立验收。
37
50
 
38
- [本地 API 契约](LOCAL_API_CONTRACT.md)区分已实现的只读/本地创建切片与待实现的执行、选择和取消。相同 Run 的 Task 复用与 HTTP 创建幂等分别验证;执行接口安全和中断测试通过后,再替换演示传输并完成无 DSH 的实际端到端验收。
51
+ [本地 API 契约](LOCAL_API_CONTRACT.md)区分已发布的只读/本地创建,以及0.3提供的有限执行、本地停止和 owner 持久选择。相同 Run 的 Task 复用、HTTP 创建幂等与选择的版本门禁分别验证;替换演示传输时仍须单独验证浏览器写入、原身份恢复与无 DSH 的完整流程。
39
52
 
40
53
  源码树可运行下面的检查;浏览器检查需显式提供已经安装的 Chromium,不下载或安装浏览器。无沙箱仅在受控测试环境确有需要时显式追加 `--no-sandbox`,不改变生产浏览器策略。
41
54
 
@@ -45,3 +58,5 @@ node scripts/verify-workbench-prototype.mjs --browser-executable /absolute/path/
45
58
  ```
46
59
 
47
60
  浏览器检查保存交互结果与桌面/手机截图;这是隔离 Chromium 验收,不是 Android 真机触控或日常 DSH 装载证明。
61
+
62
+ 布局参考了 [Invoke 的画布分区](https://v7.invoke.ai/users-guide/canvas/canvas-guide/)、[ComfyUI 的导航与工作区域](https://support.comfy.org/articles/7675456845-the-comfyui-interface)和 [Linear 的界面层级整理](https://linear.app/now/behind-the-latest-design-refresh),保留 Iris 自有标识、配色与素材。
@@ -0,0 +1,46 @@
1
+ # 工作台请求核对与刷新恢复(0.3 beta)
2
+
3
+ 本页描述源码中的 W1b 恢复及 W1c 页面接入。npm 0.2.7 不含这些新增接口与浏览器客户端;[真实工作台](LOCAL_WEB.md)已接入明确创作、选择和本地停止,“操作核对”默认折叠,自动恢复始终只读。
4
+
5
+ ## 按原请求读取
6
+
7
+ owner 的 `GET /api/v0/session` 提供 `rootId`:使用现有创建请求区的稳定 UUID,服务重启、Token 轮换不改变它;没有请求区时为 `null`,读取不会初始化数据。`instanceId` 继续表示本次服务。连接客户端不获得此字段或新查询权限,MCP 工具和 scope 保持。
8
+
9
+ 有现成请求区时,owner 的 `operations` 包含 `creation.lookup`,默认只读服务也可调用:
10
+
11
+ ```text
12
+ GET /api/v0/creation-requests?kind=image-import&key=<original-lowercase-UUIDv4>
13
+ GET /api/v0/creation-requests?kind=flow-create&key=<original-lowercase-UUIDv4>
14
+
15
+ {contractVersion:0, kind, state:"prepared"|"succeeded", result}
16
+ ```
17
+
18
+ 创建类型另包括 `generation-create`;新 v3 音频工作区增加 `audio-import`、`speech-create`、`transcription-create`,返回同样的有限身份,不返回音频或朗读正文。音频恢复与大小边界见[音频流程](AUDIO_FLOWS.md)。beta.1的 v4 根另有 `video-create`,同样只保存原 UUID/Run 身份,不存 Prompt;查询或找回已创建意图不自动首次生成,见[视频流程](VIDEO_FLOWS.md)。
19
+
20
+ `result` 为 `{artifactId}`、`{runId}` 或 `null`。查询会核对原意图与已有结果;prepared 尚无目标时返回 null,已有目标核验通过后才返回引用。它不补写完成回执、不重建目标、不观察 Task 或调用 Provider。已推进或选择的 Run 不退回初始状态。没有原请求为 404;原结果不可用或证据损坏为 409,并保留原记录。
21
+
22
+ 查询仍要求 Bearer、可信 Host/Origin,不接受其他 kind、路径或重复参数。不返回原始 Key、Prompt、供应商绑定或磁盘记录。Key 是动作身份,不能替代认证。
23
+
24
+ ## 浏览器动作协调
25
+
26
+ 内部客户端提供命名的上传、创建、继续、停止与选择方法,没有任意媒体 POST/Command 执行入口。上传、创建、continue 各自使用一个 Key;同一活动动作的重复调用共享同一次请求,输入不同则明确繁忙。请求失败不自动重试。
27
+
28
+ 结果未知时先读取原 Key/Operation/Run。显式重试保留原 Key;上传需重新提供原图片或音频字节,创建需原输入。服务器继续核对输入摘要,不用新 Key 绕过冲突。查到创建成功只恢复已有 Run,不自动首次执行;读 Operation 也不调用 continue。
29
+
30
+ 选择没有持久 Key:回包丢失后读取 Run,展示“当前选择”,不声称能证明这次请求完成。陈旧 revision 不能覆盖新选择。停止复用原 Operation ID,只停止本地等待,不代表远端取消或退款。
31
+
32
+ 读取总并发仍为二;轻量 JSON 优先于排队中的媒体,不能抢占已开始的读取。写请求和停止直接发送,不进入图片读取队列。会话断开会取消客户端等待,服务已接收的事实仍保留。
33
+
34
+ ## 标签页恢复表
35
+
36
+ 使用 `sessionStorage` 的单个 `iris.workbench.recovery.v0` 键,最多八条待核对动作。只存 origin、稳定 rootId、动作类型与标识、原 Key、已知 Artifact/Run/Operation ID 和预期 revision;不存 Token、Prompt、图片或供应商配置,不使用 localStorage。
37
+
38
+ 上传/创建确认后移除记录;活动 Operation 保留到读到终态。prepared、404、冲突、网络错误或当前服务未开放查询时,保留待核对身份,不自动生成。表满先核对或明确处理已有动作,不悄悄丢弃未知请求。存储不可用时退为内存并提示刷新恢复受限;损坏表保留,暂停新动作,不把损坏当空表。
39
+
40
+ 刷新后先使用标签页保存的登录重新验证,再核对 session/rootId 和原请求,全程 GET;Token 失效时清除并要求重新连接,见 [会话边界](LOCAL_WEB.md#会话与图片边界)。登录缓存与本页的操作恢复表分开,恢复表仍不含 Token。换到不同 origin/根时只丢弃旧浏览器标识,Core 数据保持;迟到响应不能写回新根的表。无请求区时只有内存记录,不能承诺刷新定位未知上传/创建。
41
+
42
+ 面板支持只读的“重新核对”和“查看流程”。prepared/未找到的上传、创建或继续可明确“准备按原 Key 接回”,重新提供原图片/模型/要求/参数后再次确认;接回创建不会自动首次执行。损坏或无法继续处理的本地标识,可在说明影响并二次确认后清除;只移除浏览器核对标识,不删 Core、不停止原任务。关闭标签页后不保证保留 sessionStorage;恢复表也不是作品或请求记录的备份。
43
+
44
+ ## 验证
45
+
46
+ `tests/local-creation-lookup.mjs`、`tests/web-recovery.mjs`、`tests/web-media-api.mjs`覆盖只读查询、原 Key、回包丢失、重启、换根、版本冲突、存储异常及有限动作。真实 Chromium 验证可在[工作台验证命令](LOCAL_WEB.md#验证与下一阶段)后增加 `--recovery`:使用独立根和受控 Provider,由测试明确提交本地写入,再检查生产页面只读恢复。它不进行真实付费生成,也不替代 Android 真机验收。
@@ -36,6 +36,12 @@ Core静态PNG/JPEG/WebP图片卡提供“改图”。填写修改指令,可选
36
36
 
37
37
  目录查询复用已提交的 Manifest 与派生 Index,只读取元数据和文件大小,不反复读取视频等媒体的完整字节、不重建索引或取得 Core writer 租约。打开媒体、看图/OCR、CLI inspect/list/export 保留原有完整内容哈希核验;目录里显示的哈希不表示本次浏览已经重新核验了全部文件内容。
38
38
 
39
+ beta.1把可兼容读取的早期Core提交记录单列为 `legacyCoreSkipped`,不计入损坏/缺失的 `droppedCore`。这些作品仍可按原ID检查或导出;需要编入当前目录时,由用户显式运行 `artifact rebuild --data-root /absolute/core`,该写操作可能升级早期记录。浏览和刷新不自动迁移,也不为分类重新哈希媒体;结构、大小或索引信息不符仍按不可读取处理。
40
+
41
+ DSH Core快照也复用这条元数据路径:兼容早期条目单列`legacySkipped`,坏条目单列`dropped`,正常作品继续显示。新作品提交对早期条目复用已校验索引中的摘要与大小,不读取历史媒体;缺少或不匹配的摘要要求显式重建,不补造内容证据。重建和库存刷新在写入前标记索引待刷新,失败后普通列表明确报错,成功发布新索引才清除标记;原作品记录和按ID读取保持。
42
+
43
+ beta.1中,DSH作品媒体GET先分块核验内容,再流式发送;HEAD同样验证哈希但不读取完整文件到内存。客户端断开或实例关闭会排空并关闭媒体流,原作品不变;不增加Range支持。图库索引未完成刷新时会明确报错并由Doctor提示,不以缺项的旧列表冒充完整目录;保留现场后可显式执行 `artifact rebuild`。
44
+
39
45
  OCR 动作 JSON 附 `status/totalChunks/successfulChunks/failedChunks/skippedChunks`,便于界面表达完整度。识别正文不自动保存为 Core Artifact。
40
46
 
41
47
  ## 选择、详情与批量下载
@@ -0,0 +1,63 @@
1
+ # 工作台访问口令(0.3 beta)
2
+
3
+ 普通 `web serve` 使用一个访问口令,不要求账号、邮箱或读取 Token 文件。**稳定 npm 0.2.7 没有 `web serve`;下文针对0.3.0-beta.1。** 源码树可把 `dsh-iris` 替换为 `node bin/dsh-iris.js`。
4
+
5
+ ## 首次设置与日常使用
6
+
7
+ 使用已有的专用 Flow 根;不要转换已有业务数据:
8
+
9
+ ```bash
10
+ dsh-iris web serve --data-root /absolute/iris/core --port 3182
11
+ ```
12
+
13
+ 首次打开输出的 `loginUrl`,在网页中设置 8–128 个字符的访问口令。没有 10 分钟倒计时;设置成功后该设置入口失效。设置尚未完成时,服务重启会生成新的设置入口。初次链接允许设置访问口令,应私下保管。
14
+
15
+ 之后收藏普通地址,例如 `http://127.0.0.1:3182`。默认勾选“记住此设备”30天,刷新、新标签页和服务正常重启后继续使用;不勾选时仅当前标签页保存,服务端会话最长12小时。保持相同数据根、认证目录和端口。浏览器清除站点数据、隐私模式或禁止存储时,可能需要重新输入口令;页面会说明存储限制。
16
+
17
+ 默认 Panel 在首屏绘制前读取已保存的明暗主题;恢复登录期间显示同色的简洁过渡页,验证成功直接进入工作区,不先展示登录卡片。没有可用登录或验证失败时再显示表单与说明;入口资源加载失败提供重新加载。背景图继续在浏览器内异步读取,不上传到 Core。
18
+
19
+ “退出”经服务确认后撤销当前浏览器会话并清除本机保存的登录。退出后在同一地址输入原口令即可,无需找文件或向 Agent 取新链接。若退出请求尚未确认,页面保留状态并提示重试。已经接收的业务操作不因退出而取消。
20
+
21
+ ## 忘记地址或口令
22
+
23
+ 只需记住启动时的 Core 数据根,不需要查找凭据文件。在另一个本机终端执行:
24
+
25
+ ```bash
26
+ dsh-iris web login --data-root /absolute/iris/core
27
+ dsh-iris web password reset --data-root /absolute/iris/core
28
+ ```
29
+
30
+ `web login` 在已设置时返回普通登录地址;尚未设置时返回当前设置入口,不绕过已设置口令。`web password reset` 撤销全部工作台会话并返回新的设置入口;服务运行时无需重启,不修改作品、任务、供应商配置或 MCP 连接密钥/授权。服务正常停止后也可重置,下一次启动再打开输出的设置入口。不要把口令写在命令参数或聊天里。
31
+
32
+ 认证目录默认是 `$IRIS_HOME/web-auth/<物理数据根的SHA-256>`,`IRIS_HOME` 默认 `~/.iris`。用户不需要打开该目录。可在启动、取地址及重置命令中一致指定 `--auth-store /absolute/private-auth`。它必须与 Core 根相互独立,使用私有真实目录,POSIX目录0700、文件0600;Android共享存储通常不适合保存此目录。
33
+
34
+ 认证状态有独立写者租约。异常强杀后先核对原进程,再对 `<认证目录>/ownership` 使用现有 `doctor` 和明确的 `runtime recover` 流程;不会自动清锁或抢占实例。Core 执行根与连接目录的租约仍按各自契约处理。损坏、未知版本或属于其他根的认证状态明确报错,不自动覆盖。
35
+
36
+ ## 凭据边界
37
+
38
+ 口令只在同源登录请求中发送,服务端使用内置异步 scrypt、独立随机盐保存派生值,不保存明文。每次登录生成独立浏览器凭据,服务端只保存摘要和期限,最多32个有效会话。口令错误受有限速控制。
39
+
40
+ “记住此设备”将浏览器凭据保存在当前 origin 的 localStorage,普通模式使用 sessionStorage;不保存口令、owner 控制令牌或 MCP 密钥。继续使用 Bearer 而非共享本机端口的 Cookie,保留精确 Host/Origin、无 CORS 和现有 CSP。可信同源插件仍有页面脚本权限,只加载经过审查的模块;这不是不可信代码沙箱。
41
+
42
+ owner 控制记录仅在私有认证目录供本机 CLI 使用,浏览器会话和 MCP 连接均不能调用口令重置接口。MCP 使用连接中心导出的独立授权,浏览器登录不代替 MCP 配置。服务仍只绑定 `127.0.0.1`,没有新增公网监听、远程账户、SSO 或自动服务管理。
43
+
44
+ ## 旧 Token 模式
45
+
46
+ 显式提供 `--token-file` 或 `--token-dir` 时,`web serve` 保留旧的一次性链接和备用 Token 登录,服务重启后需新链接;与 `--auth-store` 互斥。`api serve` 继续要求 Token 参数,不默认开放口令登录。旧模式仍可使用 `web login --origin <实际地址> --token-file <本次文件>`。新默认方式不迁移或删除这些旧文件。
47
+
48
+ ## 接口与装配
49
+
50
+ 以下路径均位于 `/api/v0/workbench` 下,不接受查询参数;POST仅接受最多1024字节的 JSON。所有入口保留 Host/Origin 检查,不开放 CORS。
51
+
52
+ | 路径 | 方法与输入 | 身份与输出 |
53
+ |---|---|---|
54
+ | `/auth` | GET/HEAD,无正文 | 有限公开状态:`contractVersion:0, mode:'password', configured, authId, rememberDays, minPasswordLength, maxPasswordLength`;不返回私有路径或哈希 |
55
+ | `/setup` | POST `{ticket,password,remember}` | 严格同源,验证首次设置票据;返回独立会话 |
56
+ | `/password-login` | POST `{password,remember}` | 严格同源,验证访问口令;返回独立会话 |
57
+ | `/logout` | POST `{}` | 严格同源及当前浏览器 Bearer,幂等撤销;返回 `signedOut:true` |
58
+ | `/setup-link` | POST `{}` | 仅本机 owner 控制令牌;尚未设置时返回 `setupUrl` |
59
+ | `/password-reset` | POST `{}` | 仅本机 owner 控制令牌;重置后返回 `setupUrl` |
60
+
61
+ 会话响应为 `{contractVersion:0, authId, accessToken, expiresAt, remember}`;`accessToken` 是浏览器会话,不能用于 MCP 或口令重置。未知字段、跨源请求、错误口令、过期会话或版本冲突明确返回对应错误,不自动降级到其他认证方式。正常退出只撤销提供的会话;已撤销会话可重复退出,便于丢失响应后重试。
62
+
63
+ Node 宿主用公开 `createCorePluginWorkbench` 时,显式传入 `workbenchAuth: { directory: '/absolute/private-auth' }` 才启用口令模式;未传时保持旧 SDK 行为。生命周期、媒体写权限和插件选择见[工作台](LOCAL_WEB.md)与[稳定启动](PLUGIN_STARTUP.md)。
@@ -0,0 +1,51 @@
1
+ # Iris 0.3.0-alpha.1: a shared media workspace for Agents
2
+
3
+ This first 0.3 alpha adds an independent Core workbench, generic MCP access and explicitly selected plugin contributions to the existing DSH plugin and standalone CLI. Core owns execution, storage and recovery; users choose what each client can access.
4
+
5
+ The package remains `@mokuyoaxis/dsh-iris`, with Node.js 22.0.0 or later required. Install the exact prerelease or follow npm `alpha`; stable `latest` remains 0.2.7. Existing DSH host-version declarations are unchanged. New Core and plugin contracts are experimental and may change before stable 0.3.
6
+
7
+ ```bash
8
+ npm install @mokuyoaxis/dsh-iris@0.3.0-alpha.1
9
+ npx dsh-iris --help
10
+ ```
11
+
12
+ Follow the [Core quickstart](https://github.com/mokuyoaxis/dsh-iris/blob/v0.3.0-alpha.1/docs/CORE_QUICKSTART.md) for a new workspace and the [Agent guide](https://github.com/mokuyoaxis/dsh-iris/blob/v0.3.0-alpha.1/docs/AGENT_CORE_QUICKSTART.md) for setup instructions. Both have English text with Chinese headings. The detailed product guides are primarily in Chinese.
13
+
14
+ ## An independent workbench
15
+
16
+ - A real creation UI, works library, client connections and model services share the same Core records. The default Panel supports light/dark themes, local backgrounds and mobile layouts. Distributed screenshots use built-in themes, without a personal background.
17
+ - Local password login and remembered devices survive normal restarts. Logout permits signing back in with the same password; it does not require a mobile browser to read a private Termux token file.
18
+ - Model services expose providers, per-function automatic/manual/disabled pools and a health spectrum. Providers support connection checks, opt-in service-lifetime keepalive, disable/restore and protected deletion. Configuration or connectivity is separate from a successful media test.
19
+
20
+ ## Durable media and ComfyUI
21
+
22
+ - Image generation/editing and speech/transcription persist Runs, original Tasks and finite Operations. Stable request keys reconnect lost responses; refresh never silently submits media again. Execution, local stop and image selection remain explicit permissions.
23
+ - ComfyUI workflows expose declared scalar parameters, including LoRA model/CLIP weights and schema-driven choices. Both Core and DSH have dedicated controls. Iris talks to an existing ComfyUI service; it does not install ComfyUI or guess workflow/model identifiers.
24
+ - Core Skills add independent ComfyUI guidance: clarify the workflow and requested result, read actual descriptors, keep original task identities and distinguish an API model from a ComfyUI workflow. Skill installation remains explicit and protects local modifications.
25
+
26
+ ## Generic MCP and selected plugins
27
+
28
+ - Official SDK stdio and Streamable HTTP transports share Core. Users select media groups, scopes and individual tools; client presets and exports do not scan disks, install clients or grant additional access. Keep the Core service running when using either transport.
29
+ - Trusted plugins can contribute Provider adapters, durable business operations, pages, settings forms and artifact renderers. Core checks identity, compatibility, lifecycle and persistent task dependencies; loading does not authorize execution.
30
+ - The optional contact-sheet plugin demonstrates public SDK access, durable execution, a real Web page and generic MCP calls. Image-input businesses share eligible PNG/JPEG/WebP sources up to 8 MiB within one data root. Other businesses' execution, history and stop controls remain separately authorized; a handler reads only its bound sources.
31
+ - Exact dependency pins, original request keys and stored output identities survive interruption. A missing plugin does not remove saved history or outputs; restarting or upgrading does not automatically replay business work.
32
+
33
+ ## Reliability fixes
34
+
35
+ This release fixes provider-health edit conflicts, bounded JSON/media responses, interrupted writer-lease preparation, adapter cleanup and delayed metadata, delivery error categories, transient maintenance-reader errors and stale DSH refresh responses. Startup test waits use a monotonic clock; timeout evidence retains the original budgets and failures.
36
+
37
+ Windows short-path aliases now use the same authentication record identity and credential-directory boundary checks as Core's physical root, while retaining the existing default authentication directory mapping. Downloads wait for the output file to close before publication or partial-file cleanup. Windows lifecycle tests explicitly deliver the CLI's shutdown event; they do not claim that Windows `child.kill('SIGTERM')` is graceful. Use terminal Ctrl+C for normal shutdown and inspect leases after forced termination.
38
+
39
+ Validation includes controlled local HTTP services, persistent Core storage, public SDK consumers, official MCP clients over both transports, Chromium business flows and actual process-interruption recovery. These tests do not establish compatibility with every paid model, GPU deployment or client attachment renderer.
40
+
41
+ ## Alpha boundaries and upgrades
42
+
43
+ - Existing roots are not automatically migrated. Initialize new execution/audio roots explicitly; one data root has one writer. The shared-root model is not tenant isolation.
44
+ - Native DSH keeps its own UI and host services. The alpha does not require stable DSH users to move their existing workspace into Core Web.
45
+ - Video, music and visual understanding retain their existing DSH/CLI entry points. Their new Core Web/MCP creation entries are not all implemented. Real ComfyUI GPU inference remains unverified here.
46
+ - This is not a stable plugin SDK, community marketplace or hostile-code sandbox. Provider URLs, redirects and HTTP endpoints remain an explicit trust/deployment boundary.
47
+ - Historical timing anomalies, linear history-validation cost and a specific DSH/Firefox download observation remain recorded. Later successful tests do not establish the cause of an earlier timeout.
48
+
49
+ ## 中文摘要
50
+
51
+ 0.3.0-alpha.1 提供独立 Core 工作台、通用 MCP、显式插件贡献、功能模型池与健康光谱,以及 ComfyUI参数和持久媒体恢复。使用 npm `alpha` 或准确版本安装,稳定 `latest` 保留0.2.7;DSH原生入口及准确宿主范围保持。安装不授权,刷新不自动重做,旧数据根不自动迁移。当前为实验性alpha,尚未完成所有媒体新入口、真实GPU和全部部署场景验收。
@@ -0,0 +1,34 @@
1
+ # Iris 0.3.0-beta.1: routing, scheduling and durable video
2
+
3
+ The first 0.3 beta builds on alpha.1's standalone Core workbench, generic MCP, ComfyUI and explicit plugins. It freezes the [minimal plugin contracts and main user flows](https://github.com/mokuyoaxis/dsh-iris/blob/v0.3.0-beta.1/docs/BETA_SCOPE.md) within this beta scope. The broader SDK remains experimental.
4
+
5
+ ```bash
6
+ npm install @mokuyoaxis/dsh-iris@0.3.0-beta.1
7
+ ```
8
+
9
+ The npm `beta` channel selects this release. Stable `latest` remains **0.2.7**, and `alpha` retains **0.3.0-alpha.1**. Follow the [Core quickstart](https://github.com/mokuyoaxis/dsh-iris/blob/v0.3.0-beta.1/docs/CORE_QUICKSTART.md) for a new workspace.
10
+
11
+ ## Added since alpha.1
12
+
13
+ - **Explicit network resources and routing.** Manage HTTP/HTTPS proxy nodes and fixed or ordered pools, bind a Provider, and inspect the route recorded for a task. An owner-only Web/CLI/API Doctor separates local configuration from an explicit bounded GET check. Unbound Providers inherit the actual process network environment; Iris does not configure Clash, control system TUN or infer geographic suitability.
14
+ - **Opt-in bounded media scheduling.** One physical root still has one writer. Network waits can overlap while short writes remain serialized, with separate HTTP concurrency, dispatch-rate and unfinished-remote-task limits. The default remains serial. Unknown acceptance never triggers automatic resubmission.
15
+ - **Durable text-to-video in Core Web and MCP.** A new v4 root adds actual model candidates, size/duration inputs, original Run/Task/Operation recovery, local stop and MP4/WebM playback/download up to 32 MiB. MCP exposes standard resource links and checks authorization on each read. Image-to-video, S2V, music and vision retain their existing CLI/DSH entries.
16
+ - **Environment credential references.** Explicit `apiKeyEnv` configuration stores a variable name and resolves its value inside Core. Inline keys remain supported. Conflicting inline/env/DSH sources are rejected; workflow reports and model-directory imports protect captured credentials. No automatic `.env` loading or host-configuration scanning is added.
17
+ - **Independent plugin starters.** The package includes a business/page/PNG-preview starter and a Wan asynchronous Provider starter. Provider factory context v1 lends Core's network port and resolved connection; Core owns scheduling, lifecycle, persistent tasks and storage. Plugin identities, exact dependencies and client grants remain explicit.
18
+ - **Clearer MCP onboarding and plugin status.** The workbench connects selection/authorization, configuration export and connection checks. Generic stdio/Streamable HTTP remain available with explicit client presets. Configuration inspection, protocol handshake and actual Agent use are separate facts.
19
+
20
+ ## Reliability fixes
21
+
22
+ Paid submissions do not automatically follow redirects or replay ambiguous requests. Queue rejection stays local to the affected Operation; accepted-task recovery preserves the original Attempt. Source-artifact permissions, multipart/Request interoperability, bounded MCP HTTP load, network-client retirement, media size checks and audio container metadata have been corrected.
23
+
24
+ Artifact index failures remain visible and recoverable. Normal commits refresh metadata without hashing the entire media library; explicit rebuild and media reads retain content verification. DSH screenshot delivery confirms that the requested Iris HTML route actually served the page before accepting a PNG. Video model families, transcription retries and the browser-only DSH client type declaration have also been aligned.
25
+
26
+ ## Compatibility and validation
27
+
28
+ Existing roots and grants are **not migrated or expanded automatically**. Video requires an explicitly initialized new v4 root; network bindings use a separate versioned configuration. Keep compatible readers and a complete backup when trying a newer format. DSH's existing exact host-version range remains unchanged. The Node.js minimum is **22.1.0**: isolated testing reproduced native fetch body-cancellation failures on 22.0.0, including without Iris, while 22.1.0 and current Node 22 pass. Package engines, Doctor and the minimum CI job use the same baseline.
29
+
30
+ Release checks cover the Ubuntu/Windows and minimum/current Node 22 matrix, actual tarball consumers, strict NodeNext public types and Chromium workbench scenarios. Controlled Providers and local proxies are distinguished from real accounts. Selected Alibaba Cloud image/video/audio paths have separate real-account evidence; this does not certify every model, account, GPU, browser or harness. Live ComfyUI GPU inference, automatic quotas/GC, weighted model/proxy rotation and a plugin marketplace remain outside this beta.
31
+
32
+ ## 中文摘要
33
+
34
+ beta.1 主要新增网络出口池与Doctor、有界并发调度、Core Web/MCP文生视频、环境凭据引用,以及随包分发的两类独立插件模板;同时完善MCP接入流程与插件状态,修复这轮审计确认的凭据、提交/恢复、媒体限额、索引和DSH集成问题。使用npm `beta`或准确版本安装,稳定版仍为0.2.7。最低Node为22.1.0;旧根不自动迁移,视频需显式新建v4根;最小契约收口不代表完整SDK或全部上游已验收。
@@ -1,4 +1,44 @@
1
- # Iris Android 真机截图 / Android screenshots
1
+ # Iris 界面与生成来源 / Screenshots and provenance
2
+
3
+ ## Core 工作台开发预览 / Core workbench development preview
4
+
5
+ 2026-10-29 重拍,使用alpha.1发布前的源码、独立演示数据根及 Chrome for Testing 153.0.8010.12(Linux ARM64)。全新浏览器 profile 只使用内置明亮/暗色主题;流程与作品是此前从零使用演练已完成记录的独立副本,没有读取用户背景、真实供应商凭据或日常浏览器会话。
6
+
7
+ Recaptured on 2026-10-29 from the pre-alpha.1 source in Chrome for Testing 153.0.8010.12 on Linux ARM64. A fresh browser profile uses only the built-in light/dark themes. The separate demo data root contains copies of completed records from the earlier first-use walkthrough. No personal background, real provider credentials or daily browser session is used.
8
+
9
+ | 创作与下载 / Studio and download | 完整六类总览 / All six capabilities |
10
+ |---|---|
11
+ | ![Core 创作、选择与下载](assets/screenshots/core-studio-preview.webp) | ![Core 能力总览](assets/screenshots/core-overview-preview.webp) |
12
+
13
+ | 功能模型池 / Function pools | 能力光谱 / Health spectrum |
14
+ |---|---|
15
+ | ![功能模型池的自动、手动与停用策略](assets/screenshots/core-model-pools-preview.webp) | ![Core 六类能力光谱与连接检查](assets/screenshots/core-spectrum-preview.webp) |
16
+
17
+ ![客户端选择图片生成能力和操作权限](assets/screenshots/core-connections-preview.webp)
18
+
19
+ 客户端图展示实际保存的示例授权,状态为“尚未使用”;未导出或展示连接密钥,不据此声称已连接真实客户端。模型池与光谱中的候选、近期成功来自演示配置与受控任务记录,连接检查和保活均未启用。
20
+
21
+ The client capture shows an actually saved demo grant marked unused. Its credential is not exported or shown, and the image does not claim a real client handshake. Pool candidates and recent-success facts come from demo configuration and controlled task records; no connection check or keepalive is enabled.
22
+
23
+ ### 窄屏与暗色 / Mobile layout and dark mode
24
+
25
+ 窄屏图使用桌面 Chromium 的390像素视口,展示布局适配;不是 Android 实机截图。创作设置按现有逻辑收起,完整展示图片、选择状态与下载按钮。
26
+
27
+ The mobile layout uses a 390-pixel viewport in desktop Chromium, rather than a physical Android device. Existing responsive behavior collapses creation settings and keeps the image, selection and download visible.
28
+
29
+ <p align="center"><img src="assets/screenshots/core-studio-mobile-preview.webp" width="390" alt="Core 390像素窄屏创作与下载"></p>
30
+
31
+ ![Core 内置暗色主题](assets/screenshots/core-studio-dark-preview.webp)
32
+
33
+ **媒体与截图边界 / Media and capture scope:** 图中的768×768作品来自此前本地受控 OpenAI Images 回放下方历史鸢尾花图片。本轮重拍只读取已有结果及配置,未新增生成、Task或Operation,也不代表真实付费图片、语音或ComfyUI GPU验收。画面未经DOM/CSS改写或拼接,仅通过正常登录、导航和主题操作拍摄。
34
+
35
+ The 768×768 work comes from the earlier controlled local OpenAI Images replay of the historical iris image below. This capture session reads existing works and configuration without adding a generation, Task or Operation. It does not validate paid image/speech services or a ComfyUI GPU. Captures use normal login, navigation and theme controls, without DOM/CSS rewriting or compositing.
36
+
37
+ 公开版本采用无损WebP以保留界面文字,未保留EXIF/XMP/IPTC。界面当前以中文显示,独立Core功能尚未包含在npm0.2.7中。使用方法见[Core快速开始](CORE_QUICKSTART.md)。
38
+
39
+ Public copies use lossless WebP to preserve UI text, without EXIF/XMP/IPTC. The current interface is in Chinese; these standalone Core features are outside npm 0.2.7. See the [Core quickstart](CORE_QUICKSTART.md).
40
+
41
+ ## DSH Android 历史真机截图 / Historical DSH Android captures
2
42
 
3
43
  这些画面来自 Android 16 浏览器,访问运行在 Termux/PRoot Debian ARM64 中的 DSH;界面使用 DSH 默认皮肤。截图与生成图均为 2026-09-06 的真实操作结果,公开副本已重新编码并移除 EXIF、XMP 与 IPTC 元数据。
4
44