@mokuyoaxis/dsh-iris 0.3.0-alpha.1 → 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.
- package/CHANGELOG.md +63 -1
- package/README.en.md +20 -13
- package/README.md +20 -13
- package/bin/dsh-iris.js +143 -51
- package/docs/AGENT_CORE_QUICKSTART.md +2 -2
- package/docs/AGENT_QUICKSTART.md +1 -1
- package/docs/ARCHITECTURE.md +5 -5
- package/docs/ARTIFACT_MANIFEST.md +4 -0
- package/docs/AUDIO_FLOWS.md +20 -4
- package/docs/BETA_SCOPE.md +42 -0
- package/docs/CONTACT_SHEET.md +1 -1
- package/docs/CORE_CONNECTIONS.md +3 -1
- package/docs/CORE_QUICKSTART.md +7 -5
- package/docs/CORE_RUNTIME_CONTRACT.md +3 -3
- package/docs/CORE_SERVICE.md +9 -5
- package/docs/CORE_SKILLS.md +2 -2
- package/docs/DSH_COMPATIBILITY.md +11 -1
- package/docs/DSH_CORE_MIGRATION.md +6 -0
- package/docs/DSH_RUNTIME.md +2 -2
- package/docs/HEADLESS_CLI.md +29 -4
- package/docs/HOST_ADAPTER_CONTRACT.md +5 -3
- package/docs/IMAGE_FLOW.md +2 -2
- package/docs/IMAGE_GENERATION.md +1 -1
- package/docs/LOCAL_API.md +2 -2
- package/docs/LOCAL_API_CONTRACT.md +17 -15
- package/docs/LOCAL_CREATION.md +2 -2
- package/docs/LOCAL_OPERATIONS.md +2 -2
- package/docs/LOCAL_SELECTION.md +1 -1
- package/docs/LOCAL_WEB.md +11 -5
- package/docs/MCP.md +30 -9
- package/docs/MEDIA_SCHEDULING.md +72 -0
- package/docs/NETWORK_RESOURCES.md +106 -0
- package/docs/NETWORK_ROUTING.md +103 -0
- package/docs/NETWORK_WORKBENCH.md +65 -0
- package/docs/PANEL_EXTENSIONS.md +1 -1
- package/docs/PLUGINS.md +9 -5
- package/docs/PLUGIN_DEVELOPMENT.md +39 -0
- package/docs/PLUGIN_STARTUP.md +15 -2
- package/docs/PROVIDER_ADAPTER_CONTRACT.md +8 -2
- package/docs/PROVIDER_CREDENTIALS.md +67 -0
- package/docs/PROVIDER_EXTENSIONS.md +8 -4
- package/docs/PROVIDER_HEALTH.md +4 -2
- package/docs/PROVIDER_NETWORK.md +45 -0
- package/docs/PROVIDER_PLUGIN_CONTRACT.md +24 -0
- package/docs/PROVIDER_SETTINGS.md +13 -7
- package/docs/PROVIDER_SUBMISSION_CONTRACT.md +3 -1
- package/docs/ROADMAP.md +6 -6
- package/docs/SECURITY.md +1 -1
- package/docs/SYNC_DELIVERY_RECOVERY.md +5 -1
- package/docs/VIDEO_FLOWS.md +89 -0
- package/docs/VISION_MODEL.md +2 -0
- package/docs/WEB_PROTOTYPE.md +3 -3
- package/docs/WEB_RECOVERY.md +2 -2
- package/docs/WORKBENCH_ARTIFACTS.md +6 -0
- package/docs/WORKBENCH_LOGIN.md +2 -2
- package/docs/releases/0.3.0-beta.1.md +34 -0
- package/docs/screenshots.md +2 -2
- package/lib/actions.js +5 -4
- package/lib/adapters.js +58 -41
- package/lib/api.js +23 -13
- package/lib/application-runtime.js +44 -15
- package/lib/application-writer.js +193 -0
- package/lib/client.d.ts +3 -3
- package/lib/client.js +62 -25
- package/lib/comfyui-adapter.js +3 -2
- package/lib/comfyui-client.js +10 -1
- package/lib/command-service.js +18 -5
- package/lib/config.js +13 -9
- package/lib/configured-image-runtime.js +28 -9
- package/lib/connection-skill.js +9 -0
- package/lib/core-artifact-store.js +68 -26
- package/lib/core-bridge-tools.js +5 -3
- package/lib/core-capability-catalog.js +21 -11
- package/lib/core-delivery-cache.js +8 -3
- package/lib/core-service-client.js +6 -2
- package/lib/core-tasks.js +86 -11
- package/lib/creation-request-store.js +8 -5
- package/lib/doctor.js +2 -2
- package/lib/dsh-core-adapter.js +61 -9
- package/lib/dsh-provider-config.js +1 -1
- package/lib/dsh-service-bridge.js +1 -0
- package/lib/flow-store.js +64 -17
- package/lib/image-flow.js +39 -17
- package/lib/index.js +10 -5
- package/lib/local-api-projection.js +6 -2
- package/lib/local-api.js +137 -49
- package/lib/local-creation.js +12 -5
- package/lib/local-operations.js +2 -2
- package/lib/local-request-root.js +2 -2
- package/lib/local-web-assets.js +2 -0
- package/lib/mcp-http.js +82 -9
- package/lib/mcp-server.js +23 -1
- package/lib/media-scheduler.js +194 -0
- package/lib/model-directory-service.js +25 -8
- package/lib/music-transport.js +4 -2
- package/lib/network-config-service.js +123 -0
- package/lib/network-config.js +127 -0
- package/lib/network-doctor.js +94 -0
- package/lib/network-management.js +51 -0
- package/lib/network-policy.js +19 -0
- package/lib/network-route-evidence.js +38 -0
- package/lib/network-routing.js +283 -0
- package/lib/operation-runner.js +83 -38
- package/lib/operation-store.js +6 -6
- package/lib/plugins.d.ts +25 -6
- package/lib/plugins.js +2 -1
- package/lib/provider-adapter.js +2 -2
- package/lib/provider-adapters.js +37 -5
- package/lib/provider-catalog.js +33 -16
- package/lib/provider-config-format.js +51 -0
- package/lib/provider-config-service.js +52 -22
- package/lib/provider-context.d.ts +90 -0
- package/lib/provider-context.js +42 -0
- package/lib/provider-credentials.js +97 -0
- package/lib/provider-diagnostics.js +5 -5
- package/lib/provider-health.js +10 -5
- package/lib/provider-monitor.js +5 -3
- package/lib/provider-network.js +52 -0
- package/lib/provider-protocol.js +3 -2
- package/lib/provider-registry.js +15 -5
- package/lib/provider-response.js +10 -0
- package/lib/provider-settings.js +14 -12
- package/lib/provider-task-runner.js +113 -37
- package/lib/provider-transport.js +16 -0
- package/lib/render.js +11 -1
- package/lib/scheduling-policy.js +66 -0
- package/lib/tasks.js +3 -2
- package/lib/video-flow-input.js +16 -0
- package/lib/video-input.js +12 -5
- package/lib/vision-model-routing.js +2 -0
- package/lib/web/app.js +107 -46
- package/lib/web/connections.js +151 -12
- package/lib/web/creation.js +29 -25
- package/lib/web/flow-view.js +4 -3
- package/lib/web/gallery.js +17 -16
- package/lib/web/index.html +58 -5
- package/lib/web/media-client.js +18 -4
- package/lib/web/network.js +232 -0
- package/lib/web/plugin-panel.js +4 -2
- package/lib/web/plugin-status.js +140 -0
- package/lib/web/providers.js +34 -13
- package/lib/web/recovery.js +2 -2
- package/lib/web/styles.css +54 -1
- package/lib/web/transport.js +6 -1
- package/lib/workbench-artifacts.js +3 -2
- package/package.json +5 -2
- package/skills/iris-core/references/comfyui.md +1 -1
- package/templates/plugin-starter/LICENSE +21 -0
- package/templates/plugin-starter/README.md +74 -0
- package/templates/plugin-starter/assets/peach.png +0 -0
- package/templates/plugin-starter/assets/violet.png +0 -0
- package/templates/plugin-starter/index.mjs +27 -0
- package/templates/plugin-starter/package.json +18 -0
- package/templates/plugin-starter/scripts/core-cli.mjs +20 -0
- package/templates/plugin-starter/scripts/environment.mjs +65 -0
- package/templates/plugin-starter/scripts/mcp-probe.mjs +22 -0
- package/templates/plugin-starter/scripts/setup.mjs +42 -0
- package/templates/plugin-starter/scripts/smoke.mjs +76 -0
- package/templates/plugin-starter/web/board.css +27 -0
- package/templates/plugin-starter/web/board.mjs +160 -0
- package/templates/plugin-starter/web/png.mjs +23 -0
- package/templates/provider-starter/LICENSE +21 -0
- package/templates/provider-starter/README.md +50 -0
- package/templates/provider-starter/index.d.mts +5 -0
- package/templates/provider-starter/index.mjs +165 -0
- package/templates/provider-starter/package.json +13 -0
- package/templates/provider-starter/scripts/core-cli.mjs +22 -0
- package/templates/provider-starter/scripts/environment.mjs +122 -0
- package/templates/provider-starter/scripts/fixture.mjs +54 -0
- package/templates/provider-starter/scripts/mcp-probe.mjs +21 -0
- package/templates/provider-starter/scripts/protocol-smoke.mjs +48 -0
- package/templates/provider-starter/scripts/setup.mjs +44 -0
- package/templates/provider-starter/scripts/smoke.mjs +145 -0
- package/user_guide.md +3 -3
package/docs/CORE_CONNECTIONS.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Core 连接与能力握手 v0(0.3
|
|
1
|
+
# Core 连接与能力握手 v0(0.3 beta)
|
|
2
2
|
|
|
3
3
|
该契约服务于 [Core 执行服务与 harness 桥](CORE_SERVICE.md),不是公开 JavaScript SDK。连接配置均为显式根外私有 JSON,不扫描宿主账号、配置或进程。
|
|
4
4
|
|
|
@@ -29,6 +29,8 @@ capabilities 为当前支持的功能分组列表(image-edit、image-generate
|
|
|
29
29
|
|
|
30
30
|
选入声明图片输入的插件业务后,可从同一根的共享图库选取和预览 PNG/JPEG/WebP(单张 ≤8 MiB),包括其他业务的图片产物;实际处理器只可读取本次输入绑定的来源 ID。共享来源不授予来源业务的调用、历史或停止权限。未声明图片输入的业务不隐含图库权限,超限图片也不由此放行;已选媒体功能与本业务产物沿用各自交付权限。它不是按连接划分的数据租户隔离,需要分隔图片时使用不同数据空间与授权。
|
|
31
31
|
|
|
32
|
+
原生改图/转写创建也校验来源作品的所属媒体与已有共享来源授权。仅知道一个 Artifact ID、或选择了目标功能,不会自动获得其他媒体流程的来源读取/处理权限;例如只选转写不能借创建转写流程读取被其权限拒绝的语音合成结果。无绑定导入保留已选媒体功能的原来源规则。HTTP与MCP使用相同检查,原Key重放也不绕过当前来源授权;创建本身仍不上传或生成。
|
|
33
|
+
|
|
32
34
|
## 握手与调用
|
|
33
35
|
|
|
34
36
|
连接请求带 `Authorization: Bearer …`、`Iris-Connection-Id` 和 `Iris-Runtime-Id`;仍执行原 Host/Origin 门禁。服务 owner 的短期 Token 与持久连接凭据分开。
|
package/docs/CORE_QUICKSTART.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Core Workbench Quickstart · 从零启动工作台
|
|
2
2
|
|
|
3
|
-
This guide is for **0.3.0-
|
|
3
|
+
This guide is for **0.3.0-beta.1 or the current source tree**. Stable npm **0.2.7 does not include `web serve` or production MCP**. For stable DSH/CLI usage, see the [DSH guide](../user_guide.md) or [standalone CLI](HEADLESS_CLI.md). The beta scope freezes a minimal contract; broader SDK contracts may change; existing roots are not migrated automatically.
|
|
4
4
|
|
|
5
5
|
## Start a new workspace · 新建工作区
|
|
6
6
|
|
|
7
|
-
Use Node.js ≥22. To install the prerelease in your project:
|
|
7
|
+
Use Node.js ≥22.1.0. To install the prerelease in your project:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install @mokuyoaxis/dsh-iris@0.3.0-
|
|
10
|
+
npm install @mokuyoaxis/dsh-iris@0.3.0-beta.1
|
|
11
11
|
npx dsh-iris --help
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
The commands below use a source checkout: install its locked dependencies with `npm ci`, then run from the repository root. For the installed
|
|
14
|
+
The commands below use a source checkout: install its locked dependencies with `npm ci`, then run from the repository root. For the installed beta package, replace `node bin/dsh-iris.js` with `npx dsh-iris`. Use `@beta` instead of the exact version only when you intend to follow beta releases.
|
|
15
15
|
|
|
16
16
|
Choose a **new private directory under your home**, on a filesystem that supports hard links. On Termux/PRoot, keep it in the Linux home rather than Android shared storage. These commands create a new workspace; they do not migrate an old DSH or Flow root. If the paths already contain data, choose another location.
|
|
17
17
|
|
|
@@ -70,7 +70,7 @@ Opening pages and refreshing the spectrum do not generate media. Reading a model
|
|
|
70
70
|
|
|
71
71
|
For ComfyUI, use an existing service and an explicitly imported **API-format workflow** with mapped prompt/output nodes. Check declared parameters and available LoRA choices, then save and choose that workflow. Iris does not install ComfyUI, invent a graph or discover GPU models by guessing. See [ComfyUI workflows](IMAGE_GENERATION.md#comfyui-入口).
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Beta.1 Web/MCP media entries cover image generation/editing, speech, transcription and [text-to-video](VIDEO_FLOWS.md): choose a separate new root and use `execution init --video` instead of `--audio` when initializing it. This creates v4, retains image/audio flows and adds optional video entry points; existing roots are not migrated. Older alpha.1 packages do not support this switch. Image-to-video, S2V, music and vision retain their existing [CLI](HEADLESS_CLI.md) / DSH entries.
|
|
74
74
|
|
|
75
75
|
## Connect an Agent · 连接客户端
|
|
76
76
|
|
|
@@ -101,6 +101,8 @@ If acceptance or the result is unknown, inspect it; do not submit again automati
|
|
|
101
101
|
|
|
102
102
|
For an Agent handling setup, use the [Agent quickstart](AGENT_CORE_QUICKSTART.md). Transport details, templates and errors are in [MCP](MCP.md).
|
|
103
103
|
|
|
104
|
+
Beta.1 provides **选择与授权 → 获取配置 → 核对接入**. Confirm where the Agent runs: the current loopback address and local stdio paths cannot be copied directly to another machine. Its **Iris 端配置检查** reads service/authorization facts without creating a bridge or testing media. Export, this check and an actual client's optional declaration are separate evidence; missing optional client metadata is not proof of a failed call. See [the onboarding flow](MCP.md#工作台连续接入当前源码).
|
|
105
|
+
|
|
104
106
|
## Optional plugins and recovery · 可选插件与恢复
|
|
105
107
|
|
|
106
108
|
The quickstart above uses built-in media capabilities. Optional plugins need an explicit startup selection. Follow [plugin startup](PLUGIN_STARTUP.md) to load the bundled [contact sheet](CONTACT_SHEET.md), choose its page/operation and then grant that exact business to a connection. Loading code, enabling a business and authorizing a client are separate choices. Plugins are trusted Node code, not a sandbox or a marketplace install.
|
|
@@ -13,7 +13,7 @@ Core Runtime 由调用方显式创建、启动和释放。数据根、操作权
|
|
|
13
13
|
- `dataRoot` 必须由 DSH Host Adapter、CLI 或测试宿主选择后,以绝对路径显式传给 Core。Core 不读取 `DSH_HOME`、`HOME` 或当前工作目录来猜测位置。
|
|
14
14
|
- 每个数据根只允许一个写者。写者必须在读取、初始化、规范化配置、接回旧作品、重建索引或启动任务观察器之前取得数据根租约,并持有到实例完成释放。
|
|
15
15
|
- 其他进程可以用 `reader` 打开同一数据根,但只能执行无副作用的检查。DSH 正在使用该数据根时,CLI 写操作返回 `IRIS_CORE_DATA_ROOT_BUSY`;用户可以停止现有写者,或显式选择另一数据根。
|
|
16
|
-
- 0.3
|
|
16
|
+
- 0.3 beta应用运行时读取图库时,若索引引用的文件缺失且能确认写者仍活跃,返回 `IRIS_CORE_DATA_ROOT_BUSY`(本地 API 为 409 `IRIS_API_ROOT_BUSY`),提示写入结束后显式重试;维护提交窗口不再直接建议重建索引。正常读取仍允许;损坏 JSON、内容校验失败,以及没有活跃写者的缺失记录继续明确报错,不自动修复、重试或接管租约。
|
|
17
17
|
- 只读不是隐式写入:不得创建缺失文件、修改权限、隔离损坏文件、修复/迁移记录、接回 `outputs/`、更新健康时间或启动任务观察器。
|
|
18
18
|
- 写者冲突必须 fail-fast,普通 Runtime **不得自动夺取**租约。0.2.0 提供独立的 `runtime recover` 显式流程:先由只读 Doctor 报告 owner,再要求用户回显陈旧 PID,并在接管时复核证据、写私有审计;活跃、未知或损坏状态拒绝。PID 不存在本身仍不是跨主机安全证明。
|
|
19
19
|
- 路径别名必须在取得租约前解析为同一物理数据根。不能只依赖字符串规范化或原子 `rename`:后者可以防止半写文件,不能阻止两个带缓存的进程互相覆盖。
|
|
@@ -24,7 +24,7 @@ Core Runtime 由调用方显式创建、启动和释放。数据根、操作权
|
|
|
24
24
|
|
|
25
25
|
正常释放先整体 rename 非空目录为本实例 UUID 的退役目录,最后撤下意图;不会先在占位目录里删除 owner。退役目录本身不占有固定租约,但若撤下意图前中断,剩余意图仍阻止普通 writer,需要在 owner 已退出且证据完整时显式恢复。意图撤下后的清理只涉及本实例退役证据,清理失败不阻止新 writer;遗留退役目录不会在下次启动时自动删除。
|
|
26
26
|
|
|
27
|
-
0.3
|
|
27
|
+
0.3 beta允许新根初始化保留一类未发布的租约准备文件:名称、完整 owner/PID 必须吻合,文件为普通文件、仅一个硬链接,且该 PID 已确认不存在。它不占有租约,初始化不删除或改写该证据。活跃、未知、损坏、符号链接及其他残留仍拒绝;这不是通配符清理或自动恢复授权。
|
|
28
28
|
|
|
29
29
|
恢复使用数据根中按前驱 UUID 排他发布的完整记录,保留原 owner,不替换或删除旧恢复步骤。Doctor 的 `phase` 可为 `owned`、`pending`、`recovering`;恢复再次中断时回显最新报告中的 PID,并复核链中每个 PID 均为 missing。并发恢复与旧观察被新 writer 接替均拒绝,不向新租约目录写入陈旧 claim。无 PID 的旧空目录、仅剩 `.owner.stale-*` 而缺少恢复 owner 的旧现场、未知文件、损坏或符号链接证据仍拒绝并保留。
|
|
30
30
|
|
|
@@ -86,7 +86,7 @@ created --start--> started --dispose--> disposing --finish-dispose--> disposed
|
|
|
86
86
|
|
|
87
87
|
首批执行面包括图片生成/改图、`artifact.import/inspect/list/export`、`media.diff`、`task.inspect/list`,以及显式 `task.observe/reobserve/redeliver/cancel`。观察每次至多一次 poll,没有后台轮询定时器;补交付复用原 Task/交付缓存,远端取消只有确认后才算成功。需要 Provider 时由入口注入解析函数,并按原 Task 的供应商、模型和 binding 核对;完整本地交付缓存不解析 Provider。
|
|
88
88
|
|
|
89
|
-
应用运行时另装配 `flow.init/create/inspect/list/continue/select/export`,首版只提供 [固定改图流程](IMAGE_FLOW.md)。显式新根保存私有 Run 输入、预留 Task/比较 Artifact 身份和引用;Task 增加可选 `flowBinding` 记录 Run 与步骤,旧记录不批量改写。已有 Attempt 后继续操作只核对原事实、观察或补交付,不重新 submit;完整异步 Flow 结果也先缓存,再按原 Artifact ID 交付。原图和流程作品/Task 同步纳入删除保护。0.3
|
|
89
|
+
应用运行时另装配 `flow.init/create/inspect/list/continue/select/export`,首版只提供 [固定改图流程](IMAGE_FLOW.md)。显式新根保存私有 Run 输入、预留 Task/比较 Artifact 身份和引用;Task 增加可选 `flowBinding` 记录 Run 与步骤,旧记录不批量改写。已有 Attempt 后继续操作只核对原事实、观察或补交付,不重新 submit;完整异步 Flow 结果也先缓存,再按原 Artifact ID 交付。原图和流程作品/Task 同步纳入删除保护。0.3 beta的 [HTTP 执行与本地停止](CORE_SERVICE.md)、[owner 选择](LOCAL_SELECTION.md)复用上述实例;通用 Recipe 与 DSH Flow 界面仍待完成。
|
|
90
90
|
|
|
91
91
|
## DSH Adapter 与实例装配的当前边界
|
|
92
92
|
|
package/docs/CORE_SERVICE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Core 服务与 harness 接入(0.3
|
|
1
|
+
# Core 服务与 harness 接入(0.3 beta)
|
|
2
2
|
|
|
3
|
-
0.3.0-alpha.1提供单根执行服务、连接授权/握手、正式 MCP stdio/Streamable HTTP、DSH 可选共享 Flow 连接与 [owner 持久选择 API](LOCAL_SELECTION.md)。**稳定 npm 0.2.7 不包含这些入口**;以下使用源码命令,安装
|
|
3
|
+
0.3.0-alpha.1提供单根执行服务、连接授权/握手、正式 MCP stdio/Streamable HTTP、DSH 可选共享 Flow 连接与 [owner 持久选择 API](LOCAL_SELECTION.md)。**稳定 npm 0.2.7 不包含这些入口**;以下使用源码命令,安装beta包后可将 `node bin/dsh-iris.js` 换为 `npx dsh-iris`。支持固定 `image-edit/v0`,显式新 v2 根另提供 [image-generate/v0 与 ComfyUI](IMAGE_GENERATION.md),新 v3 根另提供 [speech/v0 与 transcribe/v0](AUDIO_FLOWS.md),同时保留图片流程。**beta.1**另有新 v4 根的[文生视频](VIDEO_FLOWS.md),不迁移已有根。[Web](LOCAL_WEB.md)按显式权限接入创作、观察、停止和选择,默认只读;服务器路径导出仍用 CLI,页面下载原字节。通用配置导出、用户能力/工具选择与功能覆盖见 [MCP 指南](MCP.md)。
|
|
4
4
|
|
|
5
5
|
## 显式启动
|
|
6
6
|
|
|
@@ -20,9 +20,11 @@ node bin/dsh-iris.js api serve --data-root /absolute/new-core \
|
|
|
20
20
|
--connections-file /absolute/new-mcp-pair/server-grants.json
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
`--allow-execution` 同时开启零生成上传/创建与有限执行;不传时保持既有默认只读行为。服务需要已初始化的 v1/v2/v3
|
|
23
|
+
`--allow-execution` 同时开启零生成上传/创建与有限执行;不传时保持既有默认只读行为。服务需要已初始化的 v1/v2/v3 执行根(beta.1视频流程另支持 v4)和有效的显式配置。配置静态校验、启动和连接握手不调用模型。每次明确继续至多调用一次 `flow.continue`:首次提交或检查/补交付原 Task,不持续轮询,不重提已有 Attempt。
|
|
24
24
|
|
|
25
|
-
第二个执行 Host 无法取得同根 runner 租约;同根可另开只读页面。接收后服务自行收尾,关页或断开 harness
|
|
25
|
+
第二个执行 Host 无法取得同根 runner 租约;同根可另开只读页面。接收后服务自行收尾,关页或断开 harness 不撤销已接收操作。默认串行模式在 writer 正忙时明确拒绝新接收,调用方保留原 Key 后显式重试,不能假定已排队。
|
|
26
|
+
|
|
27
|
+
beta.1可显式增加 `--scheduler-config /absolute/private/scheduling.json`,启用[有界媒体调度](MEDIA_SCHEDULING.md):单根仍只有一个写者,网络等待可重叠,HTTP并发/RPS/远端未结束任务分别限额。短接收与结束事务不等待整次网络请求,原任务查询/下载不被新提交额度阻挡。未配置仍保持上述默认语义,不自动迁移或重提。
|
|
26
28
|
|
|
27
29
|
也可使用 [连接中心](LOCAL_WEB.md#显式开启连接中心)在同一服务中提供页面、持久授权和 MCP。必须同时指定 `--allow-connection-management --connection-store`;需要执行时再显式添加 `--allow-execution --provider-config`,不会自动开启生成。默认 `web serve` 继续只读。连接管理目录单独持有租约,业务写入仍由这一个 Core runner 管理。
|
|
28
30
|
|
|
@@ -77,6 +79,8 @@ MCP 调用取消或 EOF 只结束桥的本地请求;已经接收的 Operation
|
|
|
77
79
|
|
|
78
80
|
需要标准 HTTP MCP 时,在上面的 API 启动命令增加 `--allow-mcp`,使用 `origin/mcp` 和该连接的 Bearer 凭据;默认不开放。stdio/HTTP 共用能力/工具范围,HTTP 配置导出只写入新的私有文件,具体命令见 [通用 MCP](MCP.md)。
|
|
79
81
|
|
|
82
|
+
beta.1对 HTTP MCP 使用实例共享的4条活动消息预算,覆盖正文读取和媒体响应排空;兼容批次逐条计数、最多4条,繁忙返回429。单正文仍为9 MiB,媒体限额与已受理任务保持;它和[远端媒体调度](MEDIA_SCHEDULING.md)独立,详见[MCP HTTP](MCP.md#http填写-url-和认证)。
|
|
83
|
+
|
|
80
84
|
## DSH 可选服务连接
|
|
81
85
|
|
|
82
86
|
工作台可另显式增加 [供应商管理](PROVIDER_SETTINGS.md)与选择 [Panel](PANEL_EXTENSIONS.md)。这两者不扩大连接/MCP 权限:上游凭据留在 Core,普通 harness 不能读写供应商设置。
|
|
@@ -92,6 +96,6 @@ IRIS_CORE_SCOPES=read,create,execute,stop <your-existing-DSH-start-command>
|
|
|
92
96
|
|
|
93
97
|
首版为**新增共享 Flow 工具的可选连接模式**:原 17 项媒体工具、三项 DSH Skills 和原生 UI 保持;另注册与 MCP 相同的授权 `iris_core_*` 工具。图片通过真实 DSH attachment 服务交付。默认不设置此文件时,不连接服务、不新增工具。Core Skills 的 [显式安装器](CORE_SKILLS.md)继续独立,MCP 握手不替代 Skill 发现。
|
|
94
98
|
|
|
95
|
-
此 DSH 原生共享桥仍限图片组;新 v3 语音/转写使用通用 MCP 或 Core Web
|
|
99
|
+
此 DSH 原生共享桥仍限图片组;新 v3 语音/转写使用通用 MCP 或 Core Web。选择音频组(beta.1也包括视频组)会明确拒绝原生桥启动,避免注册尚无附件投影的工具;不影响原17项媒体工具的语音/转写。
|
|
96
100
|
|
|
97
101
|
传统媒体工具继续使用原根;共享 Flow 仅使用连接所绑定的 Core 根。Core 离线时共享工具明确失败,不切回本地另生成。此模式尚未把整个旧媒体栈、浏览器/视觉/会话服务或 DSH UI 迁成远程 RPC。Core 连接中心现阶段创建通用 MCP 档案;DSH 原生服务授权仍由上述静态文件管理,不自动修改 DSH 设置。
|
package/docs/CORE_SKILLS.md
CHANGED
|
@@ -50,7 +50,7 @@ kimi --skills-dir /absolute/path/to/iris/skills
|
|
|
50
50
|
|
|
51
51
|
宿主读取 Skill 后仍需可执行的 `dsh-iris`,或已确认源码根中的 `node bin/dsh-iris.js`。向 Agent 提供本次明确的 Core 数据根;生成/编辑另提供私有 Provider 配置路径。先使用 `--help` 与只读配置摘要核对入口,具体命令见 [CLI 参考](../skills/iris-core/references/cli.md)。不要把密钥写进提示词或复制进 Skill。
|
|
52
52
|
|
|
53
|
-
## ComfyUI 参考与 API 搭配(0.3
|
|
53
|
+
## ComfyUI 参考与 API 搭配(0.3 beta)
|
|
54
54
|
|
|
55
55
|
现有 `iris-core` 按需读取 [ComfyUI 参考](../skills/iris-core/references/comfyui.md),说明工作流选择、公开参数、LoRA的模型/CLIP双权重和原任务恢复。正文仍为英文、标题附中文;本扩展从0.3.0-alpha.1提供,稳定0.2.7不包含。安装器随整个目录复制参考;已有安装须显式更新,不自动修改日常harness。
|
|
56
56
|
|
|
@@ -64,7 +64,7 @@ ComfyUI 请求先集中确认尚缺少的图像目标、工作流、LoRA 与参
|
|
|
64
64
|
- DSH 原有三项 Skill、工具、附件与工作台流程保持,不把新 Skill 自动注册为第四项 DSH Skill;DSH 使用方式见 [README](../README.md#dsh-插件027)。
|
|
65
65
|
- 本版新增独立的 Core 指导,不迁移或改写旧 DSH Skill。后续若合并公共参考,应先证明 DSH 流程和资源解析保持。
|
|
66
66
|
- Core Artifact ID 属于指定根,宿主附件、路径与 URL 不可互换;交付时由实际宿主呈现导出文件。
|
|
67
|
-
- 0.3
|
|
67
|
+
- 0.3 beta的正式 MCP 入口见 [Core 服务](CORE_SERVICE.md),需独立配置授权连接。`iris-core` 的可执行说明仍是 CLI;下方连接专属 Skill 仅指导 MCP。Skill 安装不自动注册 MCP,不能据此声称日常 harness 已接入或真实 Agent 已验收。
|
|
68
68
|
- 面向 Core 的独立工作台继续按既有路线推进;本 Skill 不描述尚不存在的 UI 操作。Skill 指导 Agent,业务受理、写者租约与重试约束继续由执行层负责。
|
|
69
69
|
|
|
70
70
|
验收区分 Skill 文件/引用可读取、CLI 示例可执行、实际 Agent 是否按指导完成任务。离线供应商夹具只验证命令和状态处理,不证明真实模型的规划、生图质量或计费表现。
|
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Iris与DSH的版本号独立。安装前运行 `dsh --version`,并核对要安装的Iris版本;发布状态见 [README](../README.md)。
|
|
4
4
|
|
|
5
|
+
## Iris 0.3.0-beta.1
|
|
6
|
+
|
|
7
|
+
beta.1沿用下方12个准确DSH宿主版本,新增出口、调度、凭据与Core文生视频等功能不扩大宿主声明。独立Core Web/MCP无需安装DSH;两类入口覆盖见[发行说明](releases/0.3.0-beta.1.md)。安装beta时明确指定:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.3.0-beta.1
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
beta.1要求Node.js ≥22.1.0,包声明、Doctor与最低CI使用同一版本。下方alpha及0.2.x说明保留各自历史范围,不代表beta重新完成了全部宿主组合的真实装载验证。
|
|
14
|
+
|
|
5
15
|
## Iris 0.3.0-alpha.1
|
|
6
16
|
|
|
7
17
|
本次alpha沿用下方12个准确宿主版本声明,独立Core Web/MCP不要求安装DSH。需要DSH新增的ComfyUI入口时明确安装预发布:
|
|
@@ -40,7 +50,7 @@ dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.3.0-alpha.1
|
|
|
40
50
|
|
|
41
51
|
0.2.4的历史范围保持两项准确版本。0.2.5按实际接口能力选择桥接,不再按“0.2”版本号启用默认视觉路由;已验证的旧宿主也能精确绑定默认模型、确认图片输入能力并正确处理失败终态。
|
|
42
52
|
|
|
43
|
-
扩大插件支持不要求现有用户升级DSH
|
|
53
|
+
扩大插件支持不要求现有用户升级DSH。Iris 0.2.x及alpha.1的Core、CLI和插件要求Node.js ≥ 22.0.0;DSH若要求更高,以宿主为准。保留旧DSH时也需要满足这个Node要求。
|
|
44
54
|
|
|
45
55
|
## 安装与升级
|
|
46
56
|
|
|
@@ -71,6 +71,8 @@ TTS 是同步完成型,与视频的长轮询不同:一次 submit 内 complet
|
|
|
71
71
|
|
|
72
72
|
转写是上传型异步,Profile 独立:音频在 Host/CLI 边界上传到首选候选 Provider 的临时存储(`oss://` 签名地址只进 providerInput,**绝不落 Core 记录**),经受理边界提交后走 Core 长轮询(默认 2.5s/拍),远端成功后正文物化为 `text/plain` 的 `transcript` Artifact(adapter 在 poll 成功时把正文转为 inline-base64,不依赖签名 URL 生命周期)。CLI `run transcribe` 支持 `audio_url`(公网/oss:// 直达)或 `audio_path`(本地文件经同一上传通道);Agent 工具与工作台转写动作切 Core,完成时结果直接附转写正文。**零 legacy 双写**,旧转写任务继续 legacy 只读兼容。取消沿用 not_supported 如实语义;retry 输入为 `audio_url`(Core 不持久化音频地址,必须由调用方重新提供)。已知边界:临时音频 URL 属于首选候选的账号,failover 到不同账号时该候选会如实失败。真实 Provider 转写 canary 待验收。
|
|
73
73
|
|
|
74
|
+
以上为该迁移阶段的历史路径。beta.1已将独立 CLI 的本地音频上传移入原 Attempt:先取得写权,再按每个实际候选账号重新上传,不复用首选账号的临时 URL;两段上传支持取消并停止候选链。未改变原 Task 格式、DSH 工具输入或固定音频 Flow 的来源规则,见[CLI 转写说明](HEADLESS_CLI.md)。
|
|
75
|
+
|
|
74
76
|
## 本地媒体原语
|
|
75
77
|
|
|
76
78
|
Core Command Service 已纳入两项确定性、零 Provider 的本地能力:`media.diff` 用 Sharp 生成指标与 `pixel-diff` 热力图 Artifact;`media.frames` 用本机 ffmpeg/ffprobe 返回视频元数据并生成 `video-frame` Artifact。两者均可读取宿主绝对路径;读取既有 Core Artifact 时分别写入 `derived-from` 或 `frame-of` 关系,Manifest 不保存宿主或临时路径。Headless CLI 的 `media diff` / `media frames` 直接消费同一 Command Service,不读取 Provider 配置、不发起网络请求。
|
|
@@ -93,6 +95,10 @@ M1 已包含纯契约、调用控制与 Fake Port。0.2.1 完成提示词 M2:D
|
|
|
93
95
|
|
|
94
96
|
S2V 数字人已迁移到共享 Core Task/Attempt/Artifact,DSH 与 CLI 在每个候选的 Attempt 内上传首帧和音频,受理未知停止切换,观察阶段不重新上传或提交。HTML 工具/action 共用 `media.html` Command;独立 CLI 显式提供 Chromium Browser Port,DSH 仍使用宿主浏览器,均保存 `html-screenshot` Artifact。
|
|
95
97
|
|
|
98
|
+
beta.1中,DSH截图必须确认本次随机页面已由Iris的渲染路由GET返回,才接受浏览器PNG;404、其他服务的200页面或仅HEAD不算确认。使用浏览器原导航及认证,不增加独立探测请求;仍只使用公开open/openUrl/screenshot/close。确认的是HTML交付,布局完成仍依赖原等待和浏览器行为,不声称从PNG证明DOM正确。
|
|
99
|
+
|
|
100
|
+
DSH输入区进度与泡泡角标复用同一份Core活动快照,显示运行、观察暂停和待处理,不把暂停写成运行百分比;与legacy任务同时出现时保留各自事实。快照沿用已有最多2000条记录扫描并标明截断,不依赖最近任务页大小;隐藏、已读异常、已取消历史和重试成功静默均按现有处置过滤。状态SSE及原刷新事件驱动同一订阅,无新增定时器,最后一个座位卸载后清除缓存和监听。
|
|
101
|
+
|
|
96
102
|
图片生成支持模型级 DashScope/Images/聊天/Responses 协议。聊天编辑以 `source_artifact_id` 读取 Core 静态图片,各候选按自己的输入预算准备副本,新 Task 保存来源 ID,新 Artifact 记录 `derived-from`;来源参与删除/清理引用保护,原图不变。来源预检失败不创建 Task,未知受理不自动重提。
|
|
97
103
|
|
|
98
104
|
账号/模型/分配管理、发现预览与合并、单模型实测、Task 有界等待、查询分页/过滤、显式批量查询/导出、JSON 文件/stdin 以及 Core 可恢复删除/清理均已实现,详见 [CLI 管理与补齐](CLI_MANAGEMENT.md)。提示词优化后续由用户另行安排,本次未扩展。
|
package/docs/DSH_RUNTIME.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DSH 实例运行时(0.2.7)
|
|
2
2
|
|
|
3
|
-
0.3
|
|
3
|
+
0.3 beta另可显式连接 [Core 服务](CORE_SERVICE.md),添加共享 Flow 工具并复用原生附件;本文继续说明 0.2.7 的嵌入式媒体装配。可选连接不把整个旧媒体栈迁成远程调用,不改变下述历史数据根。
|
|
4
4
|
|
|
5
5
|
面向 0.3 的内部装配已将 DSH 的 Core 写队列、Provider 连接解析引用和 Core 任务观察器归入插件实例。工具名、工作台路由、模型选择与计费规则保持;数据仍位于 `$DSH_HOME/iris/v1/core-v0`,不迁移既有 Task、Artifact、Run 或配置。
|
|
6
6
|
|
|
@@ -31,7 +31,7 @@ legacy watcher 与 SSE 仍共享原有模块资源;原生装配只用“最近
|
|
|
31
31
|
|
|
32
32
|
## 当前边界与验证入口
|
|
33
33
|
|
|
34
|
-
本轮实例化的是 DSH 的 Core 装配及上述操作。legacy `config.js`、`tasks.js`、`artifacts.js`、上传与 SSE 存储/资源仍保留原机制,不承诺同进程多个 profile 的完整隔离;其他 CLI 入口也未全部统一。固定 Flow 尚未接入 DSH
|
|
34
|
+
本轮实例化的是 DSH 的 Core 装配及上述操作。legacy `config.js`、`tasks.js`、`artifacts.js`、上传与 SSE 存储/资源仍保留原机制,不承诺同进程多个 profile 的完整隔离;其他 CLI 入口也未全部统一。固定 Flow 尚未接入 DSH 工作台;0.3 beta的Operation、执行/停止与真实独立 Web 见 [Core 工作台](LOCAL_WEB.md)。DSH 新增的 [ComfyUI 专区](IMAGE_GENERATION.md#dsh-工作台入口03-alpha)继续使用原 Task 装配,不要求迁移 Flow 根。公开 SDK、包名、认证与数据格式均未因此改变。
|
|
35
35
|
|
|
36
36
|
- `npm test`:保留既有媒体与工作台断言,增加实例队列、关闭/租约失败及观察器竞态测试。
|
|
37
37
|
- `node --expose-internals scripts/verify-dsh-host.mjs --dsh-root <绝对路径>`:隔离宿主服务验收包含异步卸载与重新装载;部分 SDK 需要额外指定 `--client-sdk-root`。
|
package/docs/HEADLESS_CLI.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
本文面向 Iris 0.2.7,涵盖无 DSH 的本地处理、媒体生成、视觉分析、配置和任务管理。媒体结果保存为 Core Artifact,可在后续进程中检查、分析或导出;纯视觉不自动创建产物。Core 内部接口与 Artifact v0 尚未冻结为公共 SDK。
|
|
6
6
|
|
|
7
|
-
需要Node.js ≥
|
|
7
|
+
稳定0.2.7需要Node.js ≥22.0.0;beta.1需要≥22.1.0。按 [README](../README.md) 核对发布状态,安装 `npm install @mokuyoaxis/dsh-iris@0.2.7` 后运行 `npx dsh-iris --help`。源码入口为 `node bin/dsh-iris.js ...`;本地tarball也可用于安装。
|
|
8
8
|
|
|
9
|
-
0.2.7 另提供宿主无关的 [`iris-core` Skill](CORE_SKILLS.md),指导 Agent 使用这些图片、任务和作品命令;英文正文附中文标题,独立分发,不改变 DSH 三项 Skill。`skills install/status/uninstall` 可显式复制、检查和可恢复卸载,支持 Kimi 或自定义扫描目录,安装/卸载可 `--dry-run`。这些入口随 npm 0.2.7 分发;该发行版不含正式 MCP
|
|
9
|
+
0.2.7 另提供宿主无关的 [`iris-core` Skill](CORE_SKILLS.md),指导 Agent 使用这些图片、任务和作品命令;英文正文附中文标题,独立分发,不改变 DSH 三项 Skill。`skills install/status/uninstall` 可显式复制、检查和可恢复卸载,支持 Kimi 或自定义扫描目录,安装/卸载可 `--dry-run`。这些入口随 npm 0.2.7 分发;该发行版不含正式 MCP,0.3 beta 的 Web/MCP 另见 [Core 快速开始](CORE_QUICKSTART.md)。
|
|
10
10
|
|
|
11
11
|
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)。
|
|
12
12
|
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
|
|
21
21
|
## 配置查询与离线诊断
|
|
22
22
|
|
|
23
|
+
beta.1另提供 `network init/show/check` 与 `network nodes|pools list/add/set/remove`,只管理独立、显式私有文件;不改变当前出站,也不创建 Core 根或调用模型。用法、修订与引用保护见[出口节点与池](NETWORK_RESOURCES.md),alpha.1/0.2.7尚不包含此命令。
|
|
24
|
+
|
|
25
|
+
[N2供应商绑定](NETWORK_ROUTING.md)另有v2文件、新目录包装与实例代理运行时,已完成受控HTTP/HTTPS代理、真实CLI/API及原任务跨进程恢复验证。[N3网络工作台](NETWORK_WORKBENCH.md)已接Web管理与Core进程内Doctor,需 `api/web serve --allow-network-management --network-config <private-file>`;均属beta.1,普通MCP不获得管理权限。
|
|
26
|
+
|
|
23
27
|
```bash
|
|
24
28
|
dsh-iris providers list --provider-config /absolute/path/to/providers.json
|
|
25
29
|
dsh-iris capabilities list --provider-config /absolute/path/to/providers.json
|
|
@@ -32,6 +36,8 @@ dsh-iris doctor --data-root /absolute/path/to/iris-data --json
|
|
|
32
36
|
|
|
33
37
|
## 异常退出后的写者租约
|
|
34
38
|
|
|
39
|
+
当前源码的 `api/web serve` 还可显式使用 `--scheduler-config <absolute-private-json>`,详情见[有界媒体调度](MEDIA_SCHEDULING.md)。这不是单次 CLI 或独立 DSH 路径的并发开关;未配置保持原行为。
|
|
40
|
+
|
|
35
41
|
POSIX 上的 SIGINT/SIGTERM 可被 CLI 捕获并释放运行中的租约;Windows 请使用运行终端的 Ctrl+C 正常关闭。Windows 上 Node 的 `child.kill('SIGTERM')` 会强制结束进程,不能据此期待清理回调执行,见 [Node 信号说明](https://nodejs.org/docs/latest-v22.x/api/process.html#signal-events)。SIGKILL、OOM 或断电也可能留下租约。后续写操作返回 `IRIS_CORE_DATA_ROOT_BUSY` 时,先用 `doctor --data-root <absolute-path> --json` 只读查看 `core-writer-lease`。仅当报告中的 owner PID 为 `missing`,并且你已确认没有跨主机或其他仍在写入的进程,才可显式回显该 PID:
|
|
36
42
|
|
|
37
43
|
```bash
|
|
@@ -74,6 +80,8 @@ dsh-iris media frames \
|
|
|
74
80
|
|
|
75
81
|
## Provider 图片生成
|
|
76
82
|
|
|
83
|
+
当前源码另支持显式[环境凭据引用](PROVIDER_CREDENTIALS.md):配置保存 `apiKeyEnv` 名称,值来自当前 Core/CLI 进程;已发布 alpha.1/0.2.7 尚不支持,原 `apiKey` 配置保持。
|
|
84
|
+
|
|
77
85
|
CLI 必须同时收到显式 Core 数据根和私有供应商配置文件,不推断 DSH、HOME 或 cwd:
|
|
78
86
|
|
|
79
87
|
```bash
|
|
@@ -122,7 +130,7 @@ dsh-iris run transcribe \
|
|
|
122
130
|
--data-root /absolute/path/to/iris-data \
|
|
123
131
|
--provider-config /absolute/path/to/providers.json \
|
|
124
132
|
--input '{"audio_url":"https://example.com/public.wav"}'
|
|
125
|
-
#
|
|
133
|
+
# 或本地文件(经实际候选 Provider 的临时存储上传):
|
|
126
134
|
dsh-iris run transcribe \
|
|
127
135
|
--data-root /absolute/path/to/iris-data \
|
|
128
136
|
--provider-config /absolute/path/to/providers.json \
|
|
@@ -131,6 +139,8 @@ dsh-iris run transcribe \
|
|
|
131
139
|
|
|
132
140
|
输入冻结为 `{audio_url | audio_path, model_ref?}`(二选一):`audio_url` 必须是 `https://` 或 `oss://`;`audio_path` 在命令内先上传为临时 `oss://` 地址再提交——**签名/临时 URL 绝不写入 Core 记录**。受理后由显式 `task observe` 逐拍推进;远端成功后正文物化为 `text/plain` 的 `transcript` Artifact(`artifact inspect/export` 可直接读取/导出文本)。终态失败可用 `task retry --input '{"audio_url":"..."}' --confirm-billing` 显式重试为新任务。
|
|
133
141
|
|
|
142
|
+
beta.1在取得写权并保存原 Task/Attempt 后才上传本地音频;根忙不上传。每个候选使用自身账号重新准备输入,两段上传都响应取消;实际上传失败写入原 Attempt,取消后不继续候选。命令返回 Task 结果时应检查 `acceptance/outcome/lastError`,进程退出0不单独表示生成成功;静态不支持上传仍返回 `IRIS_PROVIDER_INPUT_PREPARATION_UNSUPPORTED`,不建立 Task。
|
|
143
|
+
|
|
134
144
|
## 检查 Task 与 Artifact
|
|
135
145
|
|
|
136
146
|
Task 查询是纯 reader,不需要 Provider 配置,也不会触发 submit、poll、恢复或下载:
|
|
@@ -162,6 +172,10 @@ dsh-iris task observe task_0123456789abcdef01234567 \
|
|
|
162
172
|
|
|
163
173
|
同一份"显式单步观察、绝不重新提交"也已在 DSH 侧开放:工作台 API 提供 `POST /iris/api/core/task/:id/reobserve`,用户任务区的 Core 投影行和高级诊断卡提供「重新观察」按钮。三者经同一个 Command Service 命令(对外命令名 `task.reobserve`,实现与 `task.observe` 相同),共用原 Provider/binding 校验;每次调用至多一次 poll,对终态、未受理、无远端 ID 或 binding 漂移的任务在网络前拒绝。
|
|
164
174
|
|
|
175
|
+
beta.1补齐两处恢复边界:Core/Flow 恢复和 DSH 启动接管遇到已明确 `not_accepted`、但最终失败尚未落盘的任务时,按原 Attempt 和安全错误收口为失败;不尝试下一候选、不重新生成。纯 reader 查询仍只读,不暗中恢复记录。
|
|
176
|
+
|
|
177
|
+
DSH 启动恢复旧 `tasks.json` 时,先解析当次宿主连接引用,再按任务原协议和远端 ID 观察;连接暂不可用则保留原记录及原因,恢复连接后可在下次启动接管,仍受既有观察窗口限制。保持旧格式,不自动迁入 Core 根,也不自动翻转已被旧版本标为失败的记录。旧任务缺少 Core 的端点 binding 保护,不能据此保证历史端点变更后的身份校验。
|
|
178
|
+
|
|
165
179
|
已成功但本地产物取回失败(deliveryState=failed)的 Task 可以显式重新取回,绝不重新生成:
|
|
166
180
|
|
|
167
181
|
```bash
|
|
@@ -197,7 +211,18 @@ dsh-iris task retry task_0123456789abcdef01234567 \
|
|
|
197
211
|
|
|
198
212
|
缺 `--confirm-billing` 时在网络与创建之前拒绝。候选链按当前 assignments/池实况重新解析(不绑定旧 Provider/binding——旧配置可能正是失败原因),`--model-ref` 可显式指定。新 Task 有全新 id、attempts 与提交时实况 binding,并记录单向 `retriedFrom` 指向旧 Task;旧 Task 零变化。**Task 记录不持久化 Prompt**,所以生成指令必须由 `--input` 重新提供,绝不从旧任务恢复。DSH 侧同构开放:`POST /iris/api/core/task/:id/retry`(请求体必须 `confirmBilling:true`)与工作台「重试为新任务」按钮(重新输入指令 + 重复计费确认弹窗)。
|
|
199
213
|
|
|
200
|
-
重试输入按旧 Task 的能力校验:图片为 `{prompt, size?, n?}
|
|
214
|
+
重试输入按旧 Task 的能力校验:图片为 `{prompt, size?, n?}`,TTS 为 `{text, voice?}`,转写为 `{audio_url}`。转写 retry 要求重新提供 HTTPS/OSS 地址,本地 `audio_path` 上传仍通过正常提交入口处理;模型覆盖使用外层 `--model-ref`,不放在 retry 的 `--input` 中。
|
|
215
|
+
|
|
216
|
+
beta.1中的视频重试必须另外在 `--input` 中明确 `video_mode`(`t2v/i2v/s2v`):t2v 重新填写提示词;i2v 还需 `img_data_url` 或绝对 `first_frame_path`;s2v 需绝对 `first_frame_path`、`audio_path`,可选 `resolution`。所选模式与媒体输入冲突、缺失时在解析候选和创建新 Task 前拒绝,不从旧模型名推测模式,不静默转为 t2v。此控制字段仅用于 `task retry`,不发送给供应商、不保存到旧 Task,也不用于 `run video` 或固定文生视频 Flow。DSH 简化按钮改为「重新创建文生视频」,须先明确输入 t2v;HTTP 请求须带 `video_mode:"t2v"`。图生/数字人视频通过完整视频工具或 CLI 重新提供来源,简化 HTTP 入口拒绝媒体字段,不读取服务器文件。
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
dsh-iris task retry task_0123456789abcdef01234567 \
|
|
220
|
+
--data-root /absolute/path/to/iris-data \
|
|
221
|
+
--provider-config /absolute/path/to/providers.json \
|
|
222
|
+
--model-ref providerId::i2v-model \
|
|
223
|
+
--input '{"video_mode":"i2v","prompt":"重新输入的视频指令","first_frame_path":"/absolute/path/to/frame.png"}' \
|
|
224
|
+
--confirm-billing
|
|
225
|
+
```
|
|
201
226
|
|
|
202
227
|
CLI、DSH 正常生成与 retry 共用输入规范:Prompt/文本修剪后为 1–20000 字符,图片 `n` 为 1–4 的整数(缺省 1),视频时长为 1–60 的数字,规范化后的显式 size/voice 为 1–64 字符。转写地址修剪后最多 20000 字符。数字字符串会转为数字;非法生成参数在提交前拒绝,不创建新的计费 Task。CLI 和 retry 还会拒绝未知输入字段;DSH 保留自己的宿主参数,由入口提取生成参数,工作台清空可选文本框仍使用默认值。
|
|
203
228
|
|
|
@@ -8,6 +8,8 @@ Iris 0.2.6 增加 [三种功能池策略](FUNCTION_MODEL_POOLS.md);下文“
|
|
|
8
8
|
|
|
9
9
|
Host Adapter 只负责把一个宿主的工具、路由、客户端、附件、会话、浏览器和模型能力映射为 Iris 端口。Command 接收 Iris 输入、`AbortSignal` 和所声明的 Host Port,**不得接收原始 `ctx`**。Task、Provider、文件持久化和成本语义不属于宿主。
|
|
10
10
|
|
|
11
|
+
DSH的`/client`是浏览器ModuleLoader注册入口,运行时不提供Node默认导出。beta.1声明通过`import type { DshClientPlugin } from '@mokuyoaxis/dsh-iris/client'`描述宿主获得的工厂形状;该类型可由strict NodeNext消费,不会把浏览器bundle伪装成可在Node直接加载的插件对象。Core插件作者继续使用`/plugins`公共SDK。
|
|
12
|
+
|
|
11
13
|
契约版本固定为 `0`。它仍是内部接口;只有经过 DSH 与 Local Host 两个真实消费者验证后,才考虑成为公开 SDK。
|
|
12
14
|
|
|
13
15
|
## 端口清单
|
|
@@ -19,7 +21,7 @@ Host Adapter 只负责把一个宿主的工具、路由、客户端、附件、
|
|
|
19
21
|
| `clientSlots` | Web Client `ctx.slots` | 注册设置、输入区、dock 与 overlay 座位 | 服务端任务和 CLI 不受影响 |
|
|
20
22
|
| `skills` | `ctx.skills` | 注册随包 Skill,声明用户/模型调用策略 | 工具仍可直接调用;Doctor 给出降级原因 |
|
|
21
23
|
| `attachments` | `ctx.get('attachments')` | 保存/读取图片字节,返回 Iris 自有引用 DTO | DSH 图片投影或会话图片读取不可用 |
|
|
22
|
-
| `sessions` | `ctx.get('sessionQuery')`
|
|
24
|
+
| `sessions` | `ctx.get('sessionQuery')` | 读取会话并列出/定位受支持的图片附件 | 只使用 Iris 自有产物或显式上传 |
|
|
23
25
|
| `browser` | `ctx.get('browser')` | 将受限 HTML 渲染为图片;不向 Command 暴露 DSH page/session 对象 | HTML 截图不可用 |
|
|
24
26
|
| `textModel` | DSH LLM/default-model 服务 | 文本生成及精确模型元数据;当前宿主视觉也由此绑定默认选择 | 宿主文本/视觉不可用,自持 Provider 按各功能名单执行 |
|
|
25
27
|
| `providerConnections`(0.2.6) | DSH LLM 目录、settings 与 credentials 服务 | 列出无密钥的连接元数据;仅在服务端操作期间解析所引用连接 | 连接引用不可用,手动供应商不受影响 |
|
|
@@ -38,12 +40,12 @@ Host Adapter 只负责把一个宿主的工具、路由、客户端、附件、
|
|
|
38
40
|
| `look`、`locate`、`ocr` | 无 | `textModel` + `attachments` | 只按视觉名单尝试自持或显式宿主资源,无可用项时失败 |
|
|
39
41
|
| `crop`、`diff`、`video_frames` | 无 | 无 | 确定性本地动作 |
|
|
40
42
|
| `media_summarize` | 无 | `textModel` + `attachments` | 帧提取是本地动作,理解阶段只使用视觉名单 |
|
|
41
|
-
| `html` | `browser` | 无 | Command
|
|
43
|
+
| `html` | `browser` | 无 | Command只调用语义级`renderHtml`;DSH实现还须确认本次HTML经Iris路由GET完成,独立Chromium不依赖宿主路由 |
|
|
42
44
|
| `relook` | 条件必需 `attachments` + `sessions` | 无 | Iris 自有附件可直接解析;会话附件必须走宿主端口 |
|
|
43
45
|
| `attachments_list`、`attachment_export` | 条件必需 `attachments` + `sessions` | 无 | Iris 自有产物不依赖宿主;会话来源不得读取宿主私有文件 |
|
|
44
46
|
| Task 查询、观察、交付、提醒和知情重试 | 无 | 无 | 事实、费用确认和新旧 Task 关系归 Iris 所有 |
|
|
45
47
|
| Provider/模型/能力配置 | 无 | 无 | 普通发现与配置不依赖宿主;手动实测只调用指定Provider,不按生产名单或回退宿主 |
|
|
46
|
-
| Prompt Optimize | `textModel` |
|
|
48
|
+
| Prompt Optimize | `textModel` | 无 | 客户端可显式传模型;否则经`textModel.currentSelection()`解析当前/默认选择,不依赖`sessions` |
|
|
47
49
|
| DSH 工具结果投影 | `tools` | `attachments` | 注册与结果转为 DSH attachment 属于 DSH Adapter,不进入 Command |
|
|
48
50
|
| Workbench/API/媒体路由 | `routes` | `clientSlots` | HTTP/UI 只是投影,不是真相来源 |
|
|
49
51
|
| 随包 Skill | `skills` | 无 | Skill 不得绕过 Command、Task 或费用边界 |
|
package/docs/IMAGE_FLOW.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 固定图片流程(0.2.7)
|
|
2
2
|
|
|
3
|
-
0.3
|
|
3
|
+
0.3 beta另提供 [image-generate/v0 与 ComfyUI 入口](IMAGE_GENERATION.md),需显式的新 v2 执行根;下文保留 0.2.7 的原固定编辑流程,旧根不自动迁移。
|
|
4
4
|
|
|
5
|
-
0.3
|
|
5
|
+
0.3 beta可通过 [Core 执行服务](CORE_SERVICE.md)、正式 MCP 和 DSH 可选共享 Flow 连接消费同一固定流程,另有显式启用的 [owner 持久选择 API](LOCAL_SELECTION.md)。真实 [Core 工作台](LOCAL_WEB.md)已接入创作、执行与选择;本文保留已发布 0.2.7 的 CLI 使用方式。
|
|
6
6
|
|
|
7
7
|
0.2.7 提供 `image-edit/v0`:导入原图 → 指定模型改图 → 本地像素比较 → 选择原图或新版 → 导出。真实执行入口是独立 CLI 和内部应用运行时,尚未接入 DSH 工作台或真实独立 Web;[Web Demo](WEB_PROTOTYPE.md)仅说明面向 0.3.0 的交互方向。本流程从 npm 0.2.7 起随包分发。
|
|
8
8
|
|
package/docs/IMAGE_GENERATION.md
CHANGED
package/docs/LOCAL_API.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# 只读本地 API(0.2.7 / I4A)
|
|
2
2
|
|
|
3
|
-
0.3
|
|
3
|
+
0.3 beta另有 [Core 有限执行与 harness 服务](CORE_SERVICE.md)和 [owner 持久选择](LOCAL_SELECTION.md),需独立显式开启。本文其余内容说明已发布 0.2.7 的默认只读与零生成创建范围;执行实现及连接协议以上述指南为准。[真实 Web](LOCAL_WEB.md)已按权限接入固定图片创作、选择及连接管理,默认仍只读。
|
|
4
4
|
|
|
5
5
|
0.2.7 增加显式启动的本地 HTTP 入口,默认只提供 GET/HEAD,用来验证无 DSH 环境下的流程查询与图片访问。另有主动启用的 [本地上传与创建](LOCAL_CREATION.md);0.2.7 不含继续、选择和取消接口,开发源码的对应入口见上方指南。安装包不会自动启动本服务。
|
|
6
6
|
|
|
7
|
-
现有 [Web Demo](WEB_PROTOTYPE.md)继续保留为面向 0.3.0 的交互说明,尚未连接这个 API;界面和交互细节到 0.3.0 阶段统一润色。[完整 API 契约](LOCAL_API_CONTRACT.md)
|
|
7
|
+
现有 [Web Demo](WEB_PROTOTYPE.md)继续保留为面向 0.3.0 的交互说明,尚未连接这个 API;界面和交互细节到 0.3.0 阶段统一润色。[完整 API 契约](LOCAL_API_CONTRACT.md)分别说明稳定0.2.7能力和0.3 beta的执行、选择实现。
|
|
8
8
|
|
|
9
9
|
## 显式启动与停止
|
|
10
10
|
|
|
@@ -2,19 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
0.2.7实现 **I4A 默认只读**与 **I4B 显式本地创建**:显式本机监听、Bearer/Host/Origin、受控流程/媒体,以及主动启用的上传/创建与持久身份接回,见 [只读 API](LOCAL_API.md)和 [本地创建](LOCAL_CREATION.md)。0.3.0-alpha.1另提供 [有限执行服务](CORE_SERVICE.md)、[连接握手](CORE_CONNECTIONS.md)与 [owner持久选择](LOCAL_SELECTION.md)。本契约尚未冻结为公开SDK;稳定0.2.7只包含上述I4A/I4B入口。
|
|
4
4
|
|
|
5
|
-
已发布固定流程通过 [CLI](IMAGE_FLOW.md)执行,0.3
|
|
5
|
+
已发布固定流程通过 [CLI](IMAGE_FLOW.md)执行,0.3 beta另有上方 Core 服务;[独立 Web Demo](WEB_PROTOTYPE.md)只消费内存演示,保留到 0.3.0 阶段统一润色。Demo 尚未接入只读 API,也不作为完整服务或写操作已实现的依据。
|
|
6
6
|
|
|
7
|
-
0.3
|
|
7
|
+
0.3 beta另有 [Core 工作台](LOCAL_WEB.md),通过显式 `web serve` 同源提供固定静态资源;登录页不包含私有数据,API/图片仍要求 Bearer。默认只读,创建、执行和选择分别显式开启,不要求连接管理;页面按能力接入改图、比较、选择、停止和下载。npm 0.2.7 尚不含,不改变下方已发布 I4A/I4B 的能力边界。
|
|
8
8
|
|
|
9
9
|
源码另实现 [Operation 存储与版本门禁](LOCAL_OPERATIONS.md),只在新专用根主动初始化;显式 `api serve --allow-execution` 装配 runner、持久接收/查询与本地停止,默认模式与刷新恢复仍只读。v1 根复用零生成创建,写者拒绝损坏记录;具体执行与握手以服务指南为准。
|
|
10
10
|
|
|
11
|
-
0.3
|
|
11
|
+
0.3 beta的 [Core 音频流程](AUDIO_FLOWS.md)另在新 v3 根增加 `/audio-models`、`/audio`、`/speeches`、`/transcriptions`、作品 `/audio` 和 `/text`,以及 Run 类别筛选。音频与图片共用原 runner/Task/Key;现有图片 `/content` 保持图片类型限制。播放/下载最多64 MiB音频或1 MiB文本,输入音频最多20 MiB且核对容器/MIME,不接收任意路径/URL。下方 I4A/I4B 表继续描述已发布图片切片,不能据此把音频入口用于旧根。
|
|
12
|
+
|
|
13
|
+
**beta.1**另在显式新v4根增加[固定文生视频](VIDEO_FLOWS.md)的 `/video-models`、`/videos` 与作品 `/video`,读取MP4/WebM最多32 MiB,先核对metadata再读取;与图片/音频共用原Operation与授权边界,旧根不自动升级。
|
|
12
14
|
|
|
13
15
|
源码另有 owner 专用只读 `GET/HEAD /api/v0/capabilities`:返回 `contractVersion:0,state,scopeOptions,controlTools,groups,tools,media,plugins,contributions`,装配插件时附 Core 版本及准确贡献依赖。无模型密钥、数据根或可加载脚本路径;无凭据401,连接凭据403,未知查询参数400。此完整目录不表示当前用户授权或媒体健康。连接管理目录复用同一投影并另附 availableScopes/defaults 等服务选项;`session.operations` 由 Core 的 Web 映射和实际根版本、开关、授权交集生成。详情见 [插件目录](PLUGINS.md#core-能力目录与授权),不改变已发布 I4A/I4B 的契约范围。
|
|
14
16
|
|
|
15
17
|
## 1. 实例与启动
|
|
16
18
|
|
|
17
|
-
一个服务实例显式绑定一个已初始化的专用 Flow 根和一个 Application Runtime。Provider 配置来源可显式提供,省略时仍可查看已有流程/图片,启用本地写入后也可上传;模型列表返回未配置,不能创建新 Run。由用户主动启动,固定仅监听 `127.0.0.1`;首次不支持远程监听、代理转发或自动扫描 DSH 配置。CLI 的 `flow init`
|
|
19
|
+
一个服务实例显式绑定一个已初始化的专用 Flow 根和一个 Application Runtime。Provider 配置来源可显式提供,省略时仍可查看已有流程/图片,启用本地写入后也可上传;模型列表返回未配置,不能创建新 Run。由用户主动启动,固定仅监听 `127.0.0.1`;首次不支持远程监听、代理转发或自动扫描 DSH 配置。CLI 的 `flow init` 仍负责初始化新根,浏览器不能指定根路径或初始化旧根。beta.1 C3 另以独立开关提供 owner 供应商管理,只操作启动时固定的配置,见 [管理契约](PROVIDER_SETTINGS.md)。
|
|
18
20
|
|
|
19
21
|
API 使用 `/api/v0` 前缀,后续静态页面须与 API 同源。只有 HTTP 适配器负责验证外部输入、生成受控 DTO 和管理请求;不得把 `application.execute(name, input)`、现有 DSH `serveApi` 或 CLI 参数作为通用 HTTP 转发口。模型来自显式配置中允许改图的候选,Flow 继续绑定单一明确模型与 `n=1`。
|
|
20
22
|
|
|
@@ -46,29 +48,29 @@ Bearer、Host/Origin 与 CSP 是不同边界,不能相互替代。静态预览
|
|
|
46
48
|
|
|
47
49
|
会话附 `pluginExecution/pluginOperations` 和允许的 plugins.catalog/plugins.execute 等别名。工作台有内建业务记录页,插件缺失仍可查原作品。启动将遗留在途记录标为 interrupted,不自动重做;业务 succeeded 仅表示处理器返回及Core命令完成。详见[真实业务](CONTACT_SHEET.md)。
|
|
48
50
|
|
|
49
|
-
下列 GET/HEAD 已有实现,Operation
|
|
51
|
+
下列 GET/HEAD 已有实现,Operation 路由需beta.1的显式执行模式;I4B 只含 images/runs 两个 POST,执行模式另含 continue/cancel,selection 需独立 `--allow-selection` 且仅限 owner。JSON 响应含 `contractVersion: 0`;列表最多 30 项,摘要不含 Prompt;创建 JSON 上限 64 KiB,执行/选择/连接 JSON 上限 8 KiB。未知/重复查询参数和带正文的只读请求拒绝。
|
|
50
52
|
|
|
51
53
|
| 方法与路径 | 输入 | 语义 |
|
|
52
54
|
|---|---|---|
|
|
53
55
|
| `GET /session` | 无 | 返回实例标识、契约版本、允许的操作与输入上限;owner 会话另有稳定 rootId(无请求区为 null),默认 Panel 显式选中扩展时附 panelContributions(身份、准确依赖、本站资源 URL);连接凭据不获此清单,不返回根路径、Key 或端点 |
|
|
54
|
-
| `GET /creation-requests
|
|
56
|
+
| `GET /creation-requests`(0.3 beta) | `kind=image-import/flow-create`、原 UUIDv4 `key` | 仅 owner;默认只读也可核对已有请求,返回 kind/state 与经核验的结果引用或 null,不补写或生成 |
|
|
55
57
|
| `GET /models` | 无 | 返回当前可选的 `modelRef`、显示名和是否支持改图;不会探测 Provider、同步目录或修改用途 |
|
|
56
58
|
| `POST /images`(I4B) | 原始 PNG/JPEG/WebP 字节、匹配的 Content-Type、Idempotency-Key | 本地提交后返回 201 和 Artifact 引用,同 Key 接回返回 200;不接受文件路径、URL、目录或 SVG |
|
|
57
|
-
| `GET /runs` | `cursor`、`limit`,limit 1–30;0.3
|
|
59
|
+
| `GET /runs` | `cursor`、`limit`,limit 1–30;0.3 beta另有 `selection=all/selected/unselected` | 已有流程摘要,不含 Prompt;只读,不观察远端。先按选择筛选再计算 total/分页,另有 counts 全部/已选/未选计数 |
|
|
58
60
|
| `POST /runs`(I4B) | `{sourceArtifactId, modelRef, prompt, size?}`、Idempotency-Key | 固定 `image-edit/v0` / `n=1`,只保存输入与身份,零生成请求;本地提交后 201,同 Key 接回 200 |
|
|
59
61
|
| `GET /runs/:id` | 无 | 返回下述 FlowView;只读,不创建 Task、补交付或继续步骤 |
|
|
60
|
-
| `POST /runs/:id/continue
|
|
61
|
-
| `POST /runs/:id/selection
|
|
62
|
+
| `POST /runs/:id/continue`(0.3 beta执行模式) | `{expectedRevision}`、Idempotency-Key | 持久接收后 202,同 Key 200;一次首次提交/观察/补交付/比较,不重提已有 Attempt |
|
|
63
|
+
| `POST /runs/:id/selection`(0.3 beta选择模式) | `{artifactId, expectedRevision}` | 仅 owner;同 writer 核对版本并保存原图/结果选择,返回 200;过期版本 409,不触发生成或下载 |
|
|
62
64
|
| `GET /artifacts/:id/content` | 无 | 按已验证 Artifact ID 和清单读取该根内媒体字节,不接受 path/URL 参数;不写文件 |
|
|
63
65
|
| `GET /runs/:id/download` | 无 | 返回已选择图片的原字节及受控附件名;未选择则冲突,不接受服务器输出路径 |
|
|
64
|
-
| `GET /operations/:id
|
|
65
|
-
| `POST /operations/:id/cancel
|
|
66
|
+
| `GET /operations/:id`(0.3 beta执行模式) | 无 | 查询持久状态,不能借此继续操作;原 Key 查询和 Run 列表见服务指南 |
|
|
67
|
+
| `POST /operations/:id/cancel`(0.3 beta执行模式) | 空 JSON | 原 ID 幂等停止本地排队/等待,终态落盘后 200;不代表远端已取消或已退款 |
|
|
66
68
|
|
|
67
69
|
上传累积读取限制使用现有 `MAX_IMPORT_IMAGE_BYTES = 20 MiB`,不能只相信 Content-Length;最终交给 `readImportImage({imageBytes}, signal)` 检查实际格式和静态图片要求。连接关闭、超量与解析失败不留下临时可服务文件,不把 filename 当服务器路径。并发上传上限 1,超过返回忙;用户显式重试复用原 Key。
|
|
68
70
|
|
|
69
|
-
上传复用现有图片验证与 Artifact 预留 ID 提交;请求与作品在同一次 writer
|
|
71
|
+
上传复用现有图片验证与 Artifact 预留 ID 提交;请求与作品在同一次 writer 内保存。上述I4A/I4B图片读取/下载限64 MiB,类型PNG/JPEG/WebP,先检查清单大小再校验内容哈希,最多两个活动读取。当前独立API的媒体入口仍采用有限整读、不支持Range;新增音频与beta.1视频入口分别见上方说明。DSH媒体路由的流式发送与这个独立API分开实现。下载不调用服务器本地 `flow.export(output_path)`;浏览器是否保存成功不属于持久 Run 事实。
|
|
70
72
|
|
|
71
|
-
|
|
73
|
+
0.3 beta HTTP列表摘要保留 id/recipe/createdAt/modelRef/source,另投影 updatedAt、revision、output/selection 引用(无值为 null),不附 Prompt、Task、供应商绑定或路径;CLI/MCP 列表保持原语义。省略 selection 等于 all,未知/重复参数或不属于筛选结果的 cursor 返回400。图库封面使用 selection,否则 source。
|
|
72
74
|
|
|
73
75
|
## 4. FlowView 与操作反馈
|
|
74
76
|
|
|
@@ -104,7 +106,7 @@ ID 继续使用当前 `run_` / `task_` / `artifact_` 加 24 位小写十六进
|
|
|
104
106
|
|
|
105
107
|
I4B 的上传与创建同步完成本地提交,以 201/200 返回 Artifact/FlowView 和 `idempotentReplay`,不返回持久排队的 202,也不开放 Operation 查询或取消。相同 Key 保证原业务身份与效果;已有 Run 的返回状态可以随真实进度变化,不承诺重放完全相同的响应字节。
|
|
106
108
|
|
|
107
|
-
|
|
109
|
+
0.3 beta执行模式在原子接收后返回 `202 {contractVersion:0, operation, idempotentReplay:false}`;重放返回 200,状态为 `queued | running | succeeded | failed | canceled | interrupted`。GET 不驱动 Provider;每次显式继续至多一次观察。单根最多 8 条 queued/running,同 Run 最多一条;writer 忙时拒绝新接收,不声称已排队。停止直接中止控制器,随后在同 writer 下落盘并返回 200;不伪造远端 Task canceled。此模式不随 I4B 或只读 Web 自动开启。
|
|
108
110
|
|
|
109
111
|
## 5. 上传与持久创建幂等(I4B)
|
|
110
112
|
|
|
@@ -121,7 +123,7 @@ I2 保证相同 Run 使用原 Task;I4B 另保证同 Key 创建请求接回原
|
|
|
121
123
|
7. 新版 writer 和维护入口必须识别请求格式,未知/半初始化请求区拒绝写入。已发布旧程序没有这些新检查,不能靠一个标记保证其拒绝该根;此专用根只支持已验收的 request-aware writer,回退使用完整副本,不删除请求区伪装降级。已提交 Flow/图片仍可只读查看。
|
|
122
124
|
8. 复用现有原子发布和重入能力,验证范围限进程异常退出/SIGKILL;不据此承诺断电、操作系统崩溃或共享存储下的跨文件事务。请求区本身不触发 Provider 目录刷新、探测、生成或任务观察。
|
|
123
125
|
|
|
124
|
-
|
|
126
|
+
0.3 beta continue/Operation 使用独立 runner 与持久身份,显式启动只记录遗留中断,**不能自动重放 continue**。I4B 创建证据与执行验收分开;Web 的连接管理写入见 [连接契约](CORE_CONNECTIONS.md)。选择复用 Run 原子提交:当前版本的同目标选择不重写,旧版本即使目标相同也冲突;没有持久 Key/选择收据,响应丢失先 GET 核对,见 [持久选择](LOCAL_SELECTION.md)。源码已实现 [原创建 Key 查询、稳定根身份及浏览器恢复](WEB_RECOVERY.md)和真实创作按钮;刷新或找回创建成功均不自动首次执行。
|
|
125
127
|
|
|
126
128
|
## 6. 错误与验收
|
|
127
129
|
|
package/docs/LOCAL_CREATION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 本地上传与流程创建(0.2.7 / I4B)
|
|
2
2
|
|
|
3
|
-
0.3
|
|
3
|
+
0.3 beta另支持 [Operation 执行根](LOCAL_OPERATIONS.md)与 [Core 有限执行服务](CORE_SERVICE.md),需在新空 Flow 根显式 `execution init`,执行另主动开启;上传/创建仍不生成。下文说明已发布 0.2.7 的 v0 初始化流程,各种根不自动转换。
|
|
4
4
|
|
|
5
5
|
新的 `execution init --image-generation` 使用 v2 容器;owner 可通过 POST `/api/v0/generations` 保存 `{modelRef,prompt,size?,workflowParameters?}`,使用独立的 `generation-create` 原 Key 查询与重放,不接受来源图片。`workflowParameters` 仅用于明确开放槽位的 ComfyUI 模板,并纳入原 Key 和 Run 输入摘要;旧 `/runs` 不接受该字段。旧 `/runs` 创建仍必须提供来源,不能借旧编辑工具调用新能力。见 [独立文生图](IMAGE_GENERATION.md)。
|
|
6
6
|
|
|
@@ -39,7 +39,7 @@ dsh-iris api serve --data-root /absolute/path/new-flow-core --token-file /absolu
|
|
|
39
39
|
|
|
40
40
|
## 重试、删除与中断
|
|
41
41
|
|
|
42
|
-
0.3
|
|
42
|
+
0.3 beta增加 owner-only 的原 Key 只读查询和 session 稳定 rootId,v0/v1 请求区均可读取;prepared 不自动补完,默认只读服务也不创建请求区。浏览器刷新先验证标签页保存的登录,再 GET 核对,详见 [工作台请求恢复](WEB_RECOVERY.md)。此查询不在已发布 npm 0.2.7 中。
|
|
43
43
|
|
|
44
44
|
请求意图、预留身份、业务提交和完成状态共用同一次 Core writer。跨进程重启、端口变化或 Token 轮换后,同 Key 仍绑定原数据根和原输入;已有 Run 后续执行或选择过,重放返回其当前 FlowView,不回退进度。已有意图不因当前 Provider 配置变化另选模型/端点,未来执行仍遵守原 Flow binding。
|
|
45
45
|
|
package/docs/LOCAL_OPERATIONS.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Operation 存储与版本门禁(0.3
|
|
1
|
+
# Operation 存储与版本门禁(0.3 beta)
|
|
2
2
|
|
|
3
3
|
持久 Operation 记录一次明确有限调用的意图、原身份和状态。原 `flow.continue` 继续媒体 Run,新增 `plugin.execute` 执行明确选中的真实业务;共用单根 runner、队列、租约、HTTP 202/原 Key 接回和本地停止。默认 API 仍只读;主动开启方式见 [Core 执行服务](CORE_SERVICE.md)及[多图对照板](CONTACT_SHEET.md)。原 CLI 图片流程保持。
|
|
4
4
|
|
|
@@ -10,7 +10,7 @@ Operation 表示一次有限调用,Run 表示创作流程,Task/Attempt 表
|
|
|
10
10
|
|
|
11
11
|
## 显式初始化与查询
|
|
12
12
|
|
|
13
|
-
以下命令针对0.3
|
|
13
|
+
以下命令针对0.3 beta;已公开 npm 0.2.7 没有此入口。需要 Node.js ≥22 和项目现有依赖:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
node bin/dsh-iris.js flow init --data-root /absolute/path/to/new-flow-root
|
package/docs/LOCAL_SELECTION.md
CHANGED