@mokuyoaxis/dsh-iris 0.2.1 → 0.2.2
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 +23 -1
- package/README.en.md +25 -25
- package/README.md +25 -25
- package/docs/AGENT_QUICKSTART.md +7 -7
- package/docs/ARCHITECTURE.md +10 -2
- package/docs/ARTIFACT_LIBRARY.md +1 -1
- package/docs/CLI_MANAGEMENT.md +5 -3
- package/docs/COMPOSITE_VISION.md +1 -1
- package/docs/CORE_RUNTIME_CONTRACT.md +9 -1
- package/docs/DSH_CORE_MIGRATION.md +1 -1
- package/docs/FAULT_INJECTION.md +10 -1
- package/docs/HEADLESS_CLI.md +4 -2
- package/docs/HOST_ADAPTER_CONTRACT.md +1 -1
- package/docs/MODEL_PORT_CONTRACT.md +4 -2
- package/docs/OCR_MODEL.md +1 -1
- package/docs/PROMPT_OPTIMIZER.md +33 -3
- package/docs/PROVIDER_ADAPTER_CONTRACT.md +10 -2
- package/docs/PROVIDER_HEALTH.md +1 -1
- package/docs/ROADMAP.md +10 -2
- package/docs/SECURITY.md +1 -1
- package/docs/TASK_SEMANTICS.md +1 -1
- package/docs/VISION_CLI.md +1 -1
- package/docs/VISION_MODEL.md +1 -1
- package/docs/WORKBENCH_ARTIFACTS.md +1 -1
- package/docs/releases/0.2.2.md +31 -0
- package/lib/actions.js +12 -16
- package/lib/adapters.js +88 -24
- package/lib/capability.js +23 -16
- package/lib/client.js +268 -22
- package/lib/config.js +13 -4
- package/lib/core-lease-recovery.js +64 -92
- package/lib/core-runtime.js +45 -47
- package/lib/core-writer-lease.js +134 -0
- package/lib/models.js +19 -37
- package/lib/prompt-optimizer-config.js +19 -9
- package/lib/prompt-optimizer-core.js +133 -7
- package/lib/provider-adapters.js +2 -1
- package/lib/provider-config-service.js +3 -4
- package/lib/provider-protocol.js +61 -0
- package/lib/provider-task-runner.js +6 -4
- package/package.json +1 -1
- package/user_guide.md +30 -16
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,27 @@
|
|
|
6
6
|
|
|
7
7
|
后续未归入版本的变更在此记录。
|
|
8
8
|
|
|
9
|
+
## [0.2.2] - 2026-10-11
|
|
10
|
+
|
|
11
|
+
0.2.2 的重点是**可控提示词编辑与媒体运行可靠性**:一般功能支持忠实整理、明确改写和独立建议,Core 保留中断恢复证据,生图错误区分本地未受理与网络/正文故障。功能候选来自明确配置或可信能力元数据。Node.js ≥ 22.0.0、DSH `0.2.0-rc.2`、配置版本和生产依赖保持;详见 [0.2.2 发布说明](docs/releases/0.2.2.md)。
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- 功能候选池只采用明确模型标签、旧能力字段绑定或供应商返回的能力元数据;移除裸 DashScope 账号全能力和默认模型目录兜底,模型名称不再自动赋能。已有明确配置(含空标签)优先,分配顺序、安全 failover、复合模型身份和已受理任务绑定保持。
|
|
16
|
+
- 工作台与 CLI 发现保留未标注模型供手动设置,省略能力的手动添加保持未标注;工作台新增“设置功能”入口,将模型明确加入画图、视频、语音、转写或视觉功能池。未来未知能力不会被名称或通用模态推断误归入已有功能。
|
|
17
|
+
- Core writer 创建前原子发布 owner 意图,释放时整体退役目录,显式恢复保留可续办的记录链与原始审计证据;强杀中断不再让新租约丢失 PID。普通 writer 不自动抢占,活跃/未知/损坏或旧无 owner 的现场仍拒绝,CLI 参数与业务存储版本保持。
|
|
18
|
+
- 视频、音频及文本交付复用 Artifact 文件接收和分块哈希,减少 staging 到落库的整文件内存读入;本地复制失败继续保留远端成功,重交付不重新生成。
|
|
19
|
+
- 提示词优化系统的一般功能使用可折叠卡片,提供通用、画图、改图、视频与数字人用途、草稿预览和指令查看;默认 Prompt 按 Skills 的目标/输入/约束/输出组织。新增 `image-edit` 目标,修正 S2V 内置模板误写为首尾帧的语义;旧自定义 v1 配置保留,新目标只在内存补缺,特殊功能后续安排。
|
|
20
|
+
- 真实文本模型补测后强化原稿细节/否定条件保留及“只编辑、不执行”的指令;拒绝原稿和明确规则未授权的新链接、媒体 data URL 或 Markdown 媒体输出,不再作为成功预览,原文保留且不自动重试。已有合法引用、含网址的文字指令与原样组装保持。
|
|
21
|
+
- 一般功能默认“忠实整理”:原文片段完整、固定顺序分组,由程序拼回;明确选择“改写表达”才执行改写规则。补充建议与待确认项单独获取,默认不进入正文,支持逐条选择、采纳及撤回;手动编辑与迟到/取消保护保持。补齐正文混入媒体链接的拒绝,保留已有合法引用;旧 API 文字协议与 v1 配置兼容,模型路由不变。
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- 生图尺寸按当前协议归一分隔符;DashScope 多模态按已确认的总像素范围校验,合法长边尺寸不再被单边上限误拒绝。本地尺寸错误明确为未受理,避免未发 HTTP 却提示受理未知。
|
|
26
|
+
- 生图请求和响应正文读取的网络异常保留阶段与可用的底层错误码,区分 DNS、TLS、连接/响应超时和正文中断;原生取消/超时保持原异常类型,HTTP 鉴权/参数/额度保持各自分类,DSH 即时错误显示脱敏原因。受理未知仍禁止自动重提,不凭连接报错推断长连接或擅自建议切换模型。
|
|
27
|
+
- 租约强杀和文件交付回归采用对应平台的退出结果与路径分隔符,避免 POSIX 假设导致 Windows CI 误判。
|
|
28
|
+
- 修正租约中断夹具以未规范化路径匹配 Runtime 真实路径的问题,覆盖根目录别名并统一 owner 文件名判定,避免 Windows 短路径/分隔符导致断点漏触发。
|
|
29
|
+
|
|
9
30
|
## [0.2.1] - 2026-10-09
|
|
10
31
|
|
|
11
32
|
0.2.1 的更新重点是 **完成 OpenAI 兼容图片与视觉工作流**:生成图片 → Core Artifact → 按 ID 看图/OCR → 聊天改图 → 新 Artifact,CLI 与 DSH 工作台共用同一链路。模型发现与能力分类、模型级图片协议、视觉输入和作品管理共同支持这套流程。要求仍为 Node.js ≥ 22.0.0,DSH 插件仅支持 `0.2.0-rc.2`;包名、配置版本和生产依赖保持不变。完整范围见 [0.2.1 发布说明](docs/releases/0.2.1.md)。
|
|
@@ -267,7 +288,8 @@ Iris 0.2.0 要求 Node.js ≥ 22.0.0,DSH 插件仅支持 `0.2.0-rc.2`;旧宿
|
|
|
267
288
|
- 上传采用流式限额、临时 `.part` 文件和原子落盘,失败时会清理未完成文件。
|
|
268
289
|
- 修改状态的路由拒绝明确的跨站请求,媒体文件继续使用随机能力令牌访问。
|
|
269
290
|
|
|
270
|
-
[Unreleased]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.
|
|
291
|
+
[Unreleased]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.2...HEAD
|
|
292
|
+
[0.2.2]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.1...v0.2.2
|
|
271
293
|
[0.2.1]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.0...v0.2.1
|
|
272
294
|
[0.2.0]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.4...v0.2.0
|
|
273
295
|
[0.1.4]: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.3...v0.1.4
|
package/README.en.md
CHANGED
|
@@ -44,23 +44,21 @@ These captures come from an Android browser connected to DSH under Termux/PRoot
|
|
|
44
44
|
|
|
45
45
|
The project is at an early stage; interfaces and configuration formats may still change between releases.
|
|
46
46
|
|
|
47
|
-
Iris 0.2.
|
|
47
|
+
Iris 0.2.2 provides a DSH plugin and a headless CLI sharing tasks, artifacts and model routing, adding controlled prompt editing and reliable media execution while retaining the OpenAI-compatible image and vision workflow. Core internals have not been frozen as a public SDK.
|
|
48
48
|
|
|
49
49
|
> Version support: Iris `0.2.x` requires Node.js `>=22.0.0` and its DSH plugin supports only the exact host version `0.2.0-rc.2`. Older DSH hosts should pin `@mokuyoaxis/dsh-iris@0.1.4` as described below instead of following npm latest. Iris and DSH have independent version numbers.
|
|
50
50
|
|
|
51
|
-
## What's new in 0.2.
|
|
51
|
+
## What's new in 0.2.2
|
|
52
52
|
|
|
53
|
-
**
|
|
53
|
+
**Controlled prompt editing and reliable media execution**, building on the existing OpenAI-compatible image and vision workflow.
|
|
54
54
|
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
- **Library and CLI management:** pagination, filters, selection across pages, ZIP downloads and recoverable Core deletion; S2V, HTML screenshots, configuration and bounded waiting.
|
|
61
|
-
- **Model recovery:** amber for temporary 429 cooldown; red for confirmed quota or budget exhaustion until a manual test succeeds.
|
|
55
|
+
- **General prompt editor:** five collapsible targets and editable comparisons; faithful grouping by default, explicit rewriting and separately requested/adopted suggestions.
|
|
56
|
+
- **Explicit function pools:** capabilities come from configuration or trusted metadata; bare accounts and model names do not grant capabilities. Ordered candidates and explicit labels remain.
|
|
57
|
+
- **Core recovery and delivery:** retain writer intent and interrupted recovery evidence; use file adoption and chunked hashes for non-image media without automatic lease takeover or regeneration.
|
|
58
|
+
- **Image diagnostics:** normalize size separators, accept valid long edges and identify local rejection before HTTP; distinguish network/body failures, cancellation/timeouts and complete HTTP errors.
|
|
59
|
+
- **Portable regressions:** match interruption checkpoints using physical root paths and native filename handling.
|
|
62
60
|
|
|
63
|
-
See the [0.2.
|
|
61
|
+
See the [0.2.2 release notes](docs/releases/0.2.2.md) and [CHANGELOG](CHANGELOG.md) for scope and validation boundaries.
|
|
64
62
|
|
|
65
63
|
Future work includes additional protocol adapters and **music generation**; see the [roadmap](docs/ROADMAP.md#后续功能方向).
|
|
66
64
|
|
|
@@ -71,7 +69,7 @@ Future work includes additional protocol adapters and **music generation**; see
|
|
|
71
69
|
| Who it's for | DeepSeek Harness users who want agent tools, the workbench, and in-chat prompt optimization | Users who want media generation, task tracking, and artifact export from the command line without DSH |
|
|
72
70
|
| Entry point | Choose a pinned release under "Quickest start" below | `dsh-iris run ...` — see [Headless CLI](docs/HEADLESS_CLI.md) |
|
|
73
71
|
| Data location | `$DSH_HOME/iris/v1/` (Core data root `core-v0`) | Any absolute path passed via `--data-root` |
|
|
74
|
-
| Automatic observation | Yes (bounded DSH host ticks + restart takeover) | Explicit `task observe`; 0.2.
|
|
72
|
+
| Automatic observation | Yes (bounded DSH host ticks + restart takeover) | Explicit `task observe`; 0.2.2 also offers bounded `task wait` |
|
|
75
73
|
| Dependencies | DSH `0.2.0-rc.2` and Node.js ≥ 22 | Node.js ≥ 22 and `sharp` only (`ffmpeg` for video frames) |
|
|
76
74
|
|
|
77
75
|
Both paths read and write the same Core Task/Artifact facts: point the CLI at the `core-v0` data root of a DSH profile to inspect/export DSH-generated artifacts, and vice versa. Only one writer is allowed per data root.
|
|
@@ -90,7 +88,7 @@ Check the host with `dsh --version` and ensure `pnpm` is on your PATH. Iris and
|
|
|
90
88
|
|
|
91
89
|
| Your DSH | Iris choice | Source |
|
|
92
90
|
|---|---|---|
|
|
93
|
-
| `0.2.0-rc.2` | `0.2.
|
|
91
|
+
| `0.2.0-rc.2` | `0.2.2` | Pinned npm release |
|
|
94
92
|
| `>=0.1.2-rc.1 <0.1.3-0` or `0.1.5-rc.1` | Stable `0.1.4` | Pinned npm release |
|
|
95
93
|
| Other versions | No current support claim | Check host adaptation before installing |
|
|
96
94
|
|
|
@@ -111,29 +109,29 @@ npm pack @mokuyoaxis/dsh-iris@0.1.4
|
|
|
111
109
|
|
|
112
110
|
This writes a `.tgz` to the current directory. Use `npm install @mokuyoaxis/dsh-iris@0.1.4` if you only want a regular npm dependency; that does not add a DSH profile layer. Pinning `@0.1.4` keeps selecting the old stable release after latest changes. See [npm pack](https://docs.npmjs.com/cli/v11/commands/npm-pack/). Version 0.1.4 does not contain the 0.2.0 Core media CLI or the later DSH rc.2 adaptation.
|
|
113
111
|
|
|
114
|
-
### DSH 0.2.0-rc.2: install 0.2.
|
|
112
|
+
### DSH 0.2.0-rc.2: install 0.2.2
|
|
115
113
|
|
|
116
114
|
Install the pinned release into your Web profile:
|
|
117
115
|
|
|
118
116
|
```bash
|
|
119
|
-
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.
|
|
117
|
+
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.2
|
|
120
118
|
dsh web
|
|
121
119
|
```
|
|
122
120
|
|
|
123
121
|
The plugin loads on the next DSH start. The web UI defaults to `http://127.0.0.1:3080`; open the complete URL if startup output includes authentication parameters. Reload the backend and refresh the web client after updating.
|
|
124
122
|
|
|
125
|
-
### Standalone CLI: install 0.2.
|
|
123
|
+
### Standalone CLI: install 0.2.2
|
|
126
124
|
|
|
127
125
|
Install in your own project without DSH:
|
|
128
126
|
|
|
129
127
|
```bash
|
|
130
|
-
npm install @mokuyoaxis/dsh-iris@0.2.
|
|
128
|
+
npm install @mokuyoaxis/dsh-iris@0.2.2
|
|
131
129
|
npx dsh-iris --help
|
|
132
130
|
```
|
|
133
131
|
|
|
134
132
|
### Choosing a version in dsh-market
|
|
135
133
|
|
|
136
|
-
The marketplace entry should resolve to the full package name `@mokuyoaxis/dsh-iris`. Check both its displayed Iris version and your local `dsh --version` before installing: 0.2.
|
|
134
|
+
The marketplace entry should resolve to the full package name `@mokuyoaxis/dsh-iris`. Check both its displayed Iris version and your local `dsh --version` before installing: 0.2.2 is for DSH rc.2; older hosts should use the pinned `@0.1.4` commands above. Catalog and npm information may be cached. The actual npm package's `dsh.engines.dsh` and Node engines determine its declared requirements; a visible listing does not imply support for every DSH release.
|
|
137
135
|
|
|
138
136
|
> The unscoped `dsh-iris` on npm belongs to a different plugin. Always keep the fully scoped name `@mokuyoaxis/dsh-iris` when installing or updating Iris Media.
|
|
139
137
|
|
|
@@ -167,7 +165,7 @@ For a copyable installation and usage prompt, see [Agent quickstart prompt](docs
|
|
|
167
165
|
|
|
168
166
|
## Prerequisites
|
|
169
167
|
|
|
170
|
-
- A Node.js version that satisfies your DeepSeek Harness release's requirement; Iris 0.2.
|
|
168
|
+
- A Node.js version that satisfies your DeepSeek Harness release's requirement; Iris 0.2.2 requires at least 22.0.0, while the published npm 0.1.4 historically requires 20.10.0
|
|
171
169
|
- A working DeepSeek Harness environment with `pnpm` on the PATH
|
|
172
170
|
- At least one supported media or vision provider
|
|
173
171
|
- `ffmpeg` and `ffprobe` for extracting frames or summarizing a video file; summaries of existing Core frames need neither
|
|
@@ -176,14 +174,14 @@ After installing the plugin, add a provider in the Iris workbench and assign mod
|
|
|
176
174
|
|
|
177
175
|
## DeepSeek Harness adaptation
|
|
178
176
|
|
|
179
|
-
dsh-iris remains a native DSH plugin. Iris 0.2.
|
|
177
|
+
dsh-iris remains a native DSH plugin. Iris 0.2.2 server registers 15 agent tools, including image editing, and uses host-provided routing, attachment, model, and lifecycle services. The web client contributes settings, composer, and global-overlay UI. Iris does not start another service or listen on an extra port.
|
|
180
178
|
|
|
181
179
|
| Iris version | DSH range | Verification |
|
|
182
180
|
|---|---|---|
|
|
183
181
|
| Published stable `0.1.4` | `>=0.1.2-rc.1 <0.1.3-0` | Historical clean and daily Web profiles on Linux ARM64 |
|
|
184
182
|
| Published stable `0.1.4` | `0.1.5-rc.1` | Historical daily Android/Linux profile checks |
|
|
185
183
|
| `0.2.0` | Only `0.2.0-rc.2` | Installed-service isolation checks, Core diff, and SlotRegistry; user demonstration reported successful, with detailed browser actions and asynchronous restart/rollback verification continuing |
|
|
186
|
-
| `0.2.
|
|
184
|
+
| `0.2.2` | Only `0.2.0-rc.2` | Installed-service checks cover 15 tools and 31 boundaries; complete browser/mobile and real asynchronous restart acceptance remain pending |
|
|
187
185
|
|
|
188
186
|
See the [rc.2 adaptation notes](docs/DSH_RC2_ADAPTATION.md) for scope. The published npm 0.1.4 package does not contain these later changes.
|
|
189
187
|
|
|
@@ -241,15 +239,17 @@ Uploads are stored under `$DSH_HOME/iris/v1/uploads/` and kept for 7 days by def
|
|
|
241
239
|
|
|
242
240
|
## Conversation prompt optimization
|
|
243
241
|
|
|
244
|
-
|
|
242
|
+
Version 0.2.2 extends per-operation rules, assembly without a model call and editable comparisons. It groups general, image creation, image editing, video and S2V targets in a collapsible section. The interface defaults to faithful grouping of original text in its original order; rewriting requires an explicit choice, and optional suggestions are fetched and adopted separately. Default instructions follow the project's Skills; custom v1 configuration and the existing text API remain compatible. Rules are not persisted and no standalone prompt CLI is added. See the [prompt optimizer guide](docs/PROMPT_OPTIMIZER.md).
|
|
245
243
|
|
|
246
|
-
Iris adds a borderless, text-free “🫧” control directly to the DSH composer, so the workbench does not need to be open. It opens a translucent glass panel with background blur and soft depth; on narrow screens and Android browsers it becomes a safe-area-aware, internally scrollable bottom sheet
|
|
244
|
+
Iris adds a borderless, text-free “🫧” control directly to the DSH composer, so the workbench does not need to be open. It opens a translucent glass panel with background blur and soft depth; on narrow screens and Android browsers it becomes a safe-area-aware, internally scrollable bottom sheet. It reads only the current unsent plain-text draft. The result is previewed first and is written back only after confirmation; Iris never sends it automatically. Drafts containing structured `@` or `/` references are left untouched for now so their identities are not lost.
|
|
247
245
|
|
|
248
246
|
By default, the optimizer uses the model selected for the current session and falls back to DSH's default model when the session has none. The request carries no chat history, tools, attachments, or workspace content—only the current draft and target template. To prevent reasoning tokens from exhausting the generation budget before visible text is complete, `generation.reasoningEffort` defaults to `off-if-supported`: reasoning is disabled only when DSH model metadata explicitly advertises such an effort; otherwise the provider default is used, and the session High/Low setting is not inherited. JSON may select `provider-default`, `inherit`, or an exact effort ID advertised by the model. For predictable cost and latency, use a `fixed` route with a lightweight non-reasoning model. You can also export `prompt-optimizer.json`, change `route.mode` to `fixed`, name another `provider` and `model` already registered in DSH, and import it again. “Reset to defaults” restores Iris's built-in prompt, target templates, session-model routing, and generation settings. The composer control can be disabled independently and re-enabled from the Iris workbench; disabling it does not stop the workbench, agent tools, or task runtime. An optimization call may incur charges from the selected text model.
|
|
249
247
|
|
|
250
248
|
## Model assignment and failover
|
|
251
249
|
|
|
252
|
-
Capability
|
|
250
|
+
Iris organizes ordered model candidates by function. Capability assignments identify each executor with `providerId::modelId`; the same model name from a different provider or account is a separate option. Alibaba Cloud media calls may use a separate Workspace `mediaBaseUrl`.
|
|
251
|
+
|
|
252
|
+
Version 0.2.2 uses explicit function labels, legacy capability bindings, or provider capability metadata. Bare accounts and model names no longer grant capabilities. Discovery retains unlabelled models; assign their functions in the workbench or with CLI `models caps`. Existing explicit labels, assignment order and safe failover are preserved. Earlier 0.2.1 inference no longer grants capabilities to bare accounts or model names.
|
|
253
253
|
|
|
254
254
|
Generation capabilities accept multiple candidate models. Every request starts at the head of the ordered list; this is safe failover, not round-robin. Iris tries the next candidate only when the provider explicitly proves that the request was not accepted. A 500 response, timeout, disconnect, missing response, polling failure, or local persistence failure never authorizes automatic resubmission. Once accepted, Iris may only resume observation or delivery.
|
|
255
255
|
|
|
@@ -261,7 +261,7 @@ Transcription is a separate `transcribe` capability and does not consume the TTS
|
|
|
261
261
|
|
|
262
262
|
## Capability health and model verification
|
|
263
263
|
|
|
264
|
-
The workbench and main bubble show gray for unconfigured, blue for unverified, green for success within seven days, and muted red for authentication or permission failures. The 0.2.
|
|
264
|
+
The workbench and main bubble show gray for unconfigured, blue for unverified, green for success within seven days, and muted red for authentication or permission failures. The 0.2.2 also shows amber for temporary 429 cooldown and bright red for confirmed free quota or budget exhaustion, with a reason and recovery condition.
|
|
265
265
|
|
|
266
266
|
Iris performs no background probes. Temporary 429 responses use `Retry-After`, or a 60-second default cooldown. Expiry restores candidate eligibility without a verification request. Confirmed free quota or budget exhaustion persists across restarts until an explicit model test succeeds; test buttons remain available. Vision, image, and TTS have built-in test samples; video and transcription tests require real input through the CLI. Network errors, 5xx responses, content-safety failures, cancellation, and unknown acceptance do not overwrite recent success evidence. Host Doctor only checks loading and host ports. See [Provider and capability health](docs/PROVIDER_HEALTH.md).
|
|
267
267
|
|
package/README.md
CHANGED
|
@@ -44,23 +44,21 @@ dsh-iris 为 Agent、Iris 工作台和独立 CLI 提供图像、视频、语音
|
|
|
44
44
|
|
|
45
45
|
项目目前处于早期版本,接口和配置格式仍可能随版本迭代调整。
|
|
46
46
|
|
|
47
|
-
Iris 0.2.
|
|
47
|
+
Iris 0.2.2 同时提供 DSH 插件与无 DSH 的 CLI,共用任务、产物和模型路由,升级可控提示词编辑与媒体运行可靠性,保留 OpenAI 兼容图片与视觉工作流。Core 内部接口尚未冻结为公共 SDK。
|
|
48
48
|
|
|
49
49
|
> 版本支持:Iris `0.2.x` 要求 Node.js `>=22.0.0`,DSH 插件仅支持准确版本 `0.2.0-rc.2`。旧 DSH 使用下文列出的 `@mokuyoaxis/dsh-iris@0.1.4`,不要直接跟随 npm latest 更新。Iris 与 DSH 的版本号独立。
|
|
50
50
|
|
|
51
|
-
## 0.2.
|
|
51
|
+
## 0.2.2 更新重点
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
**可控提示词编辑与媒体运行可靠性**,在既有 OpenAI 兼容图片与视觉工作流上继续完善。
|
|
54
54
|
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
- **
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
- **作品与 CLI 管理**:统一分页过滤、跨页选择、ZIP 下载、Core 回收与恢复;CLI 补齐 S2V、HTML 截图、配置和有界等待。
|
|
61
|
-
- **模型恢复规则**:短时 429 显示琥珀冷却,明确额度或预算耗尽显示红色停用,需手动实测成功恢复。
|
|
55
|
+
- **提示词一般功能**:折叠五用途、原稿与改动预览;默认忠实整理,明确改写与独立建议需用户选择。
|
|
56
|
+
- **明确功能模型池**:能力来自配置或可信元数据,裸账号与名称不自动赋能;保留功能入口、有序候选和既有明确标签。
|
|
57
|
+
- **Core 恢复与交付**:保留 writer 创建/释放/恢复中断证据,非图片产物使用文件接收与分块哈希;不自动抢占租约或重新生成。
|
|
58
|
+
- **生图诊断**:尺寸分隔符归一、合法长边和本地未受理校验;区分网络/正文故障、取消/超时与完整 HTTP 业务错误。
|
|
59
|
+
- **跨平台回归**:修复中断夹具的根路径别名与分隔符假设,保留实际检查点验证。
|
|
62
60
|
|
|
63
|
-
|
|
61
|
+
完整变化和待验边界见 [0.2.2 发布说明](docs/releases/0.2.2.md) 与 [CHANGELOG](CHANGELOG.md)。
|
|
64
62
|
|
|
65
63
|
后续计划继续适配其他协议,并增加 **Music 音乐生成**功能,详见 [路线图](docs/ROADMAP.md#后续功能方向)。
|
|
66
64
|
|
|
@@ -71,7 +69,7 @@ Iris 0.2.1 同时提供 DSH 插件与无 DSH 的 CLI,共用任务、产物和
|
|
|
71
69
|
| 适合谁 | 已在使用 DeepSeek Harness,想要 Agent 工具、工作台和对话内提示词优化 | 想在无 DSH 环境用命令行完成媒体生成、任务跟踪和作品导出 |
|
|
72
70
|
| 入口 | 按下文「最快开始」选择固定版本 | `dsh-iris run ...`,见 [Headless CLI](docs/HEADLESS_CLI.md) |
|
|
73
71
|
| 数据位置 | `$DSH_HOME/iris/v1/`(Core 数据根 `core-v0`) | 显式 `--data-root` 指定的任意绝对路径 |
|
|
74
|
-
| 自动观察 | 有(DSH Host 有界节拍 + 重启接管) | 显式 `task observe`;0.2.
|
|
72
|
+
| 自动观察 | 有(DSH Host 有界节拍 + 重启接管) | 显式 `task observe`;0.2.2 另提供有界 `task wait` |
|
|
75
73
|
| 依赖 | DSH `0.2.0-rc.2`、Node.js ≥ 22 | 仅 Node.js ≥ 22 与 `sharp`(视频抽帧另需 `ffmpeg`) |
|
|
76
74
|
|
|
77
75
|
两条路径读写同一份 Core Task/Artifact 事实:CLI 指向 DSH profile 的 `core-v0` 数据根即可 inspect/export DSH 生成的作品,反之亦然。同一数据根只允许一个写者。
|
|
@@ -90,7 +88,7 @@ Iris 0.2.1 同时提供 DSH 插件与无 DSH 的 CLI,共用任务、产物和
|
|
|
90
88
|
|
|
91
89
|
| 你的 DSH | Iris 选择 | 安装来源 |
|
|
92
90
|
|---|---|---|
|
|
93
|
-
| `0.2.0-rc.2` | `0.2.
|
|
91
|
+
| `0.2.0-rc.2` | `0.2.2` | 固定 npm 版本 |
|
|
94
92
|
| `>=0.1.2-rc.1 <0.1.3-0` 或 `0.1.5-rc.1` | 稳定版 `0.1.4` | 固定 npm 版本 |
|
|
95
93
|
| 其他版本 | 暂无当前支持声明 | 先核对宿主适配,不能按相邻版本推定兼容 |
|
|
96
94
|
|
|
@@ -111,29 +109,29 @@ npm pack @mokuyoaxis/dsh-iris@0.1.4
|
|
|
111
109
|
|
|
112
110
|
命令会在当前目录生成 `.tgz`。只需安装为普通 npm 依赖时可使用 `npm install @mokuyoaxis/dsh-iris@0.1.4`;这不会自动把插件加入 DSH profile。固定 `@0.1.4` 可在 latest 更新后继续取得旧稳定版本,见 [npm pack 文档](https://docs.npmjs.com/cli/v11/commands/npm-pack/)。0.1.4 不包含 0.2.0 的 Core 媒体 CLI,也不包含 DSH rc.2 的后续适配。
|
|
113
111
|
|
|
114
|
-
### DSH 0.2.0-rc.2:安装 0.2.
|
|
112
|
+
### DSH 0.2.0-rc.2:安装 0.2.2
|
|
115
113
|
|
|
116
114
|
安装固定版本到 Web profile:
|
|
117
115
|
|
|
118
116
|
```bash
|
|
119
|
-
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.
|
|
117
|
+
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.2
|
|
120
118
|
dsh web
|
|
121
119
|
```
|
|
122
120
|
|
|
123
121
|
插件在下一次 DSH 启动时装载。Web UI 默认位于 `http://127.0.0.1:3080`;启动输出带认证参数时请打开完整 URL。更新后需重新加载后端并刷新客户端。
|
|
124
122
|
|
|
125
|
-
### 独立 CLI:安装 0.2.
|
|
123
|
+
### 独立 CLI:安装 0.2.2
|
|
126
124
|
|
|
127
125
|
在自己的项目中安装,无需 DSH:
|
|
128
126
|
|
|
129
127
|
```bash
|
|
130
|
-
npm install @mokuyoaxis/dsh-iris@0.2.
|
|
128
|
+
npm install @mokuyoaxis/dsh-iris@0.2.2
|
|
131
129
|
npx dsh-iris --help
|
|
132
130
|
```
|
|
133
131
|
|
|
134
132
|
### dsh-market 安装时的版本选择
|
|
135
133
|
|
|
136
|
-
市场条目应对应完整包名 `@mokuyoaxis/dsh-iris`。安装前同时核对市场显示的 Iris 版本与本机 `dsh --version`:0.2.
|
|
134
|
+
市场条目应对应完整包名 `@mokuyoaxis/dsh-iris`。安装前同时核对市场显示的 Iris 版本与本机 `dsh --version`:0.2.2 仅用于 DSH rc.2;旧宿主使用上面的固定 `@0.1.4` 命令。市场目录与 npm 信息可能有缓存,以实际 npm 包的 `dsh.engines.dsh` 和 Node engines 为准;市场中可见不代表任意 DSH 版本兼容。
|
|
137
135
|
|
|
138
136
|
> npm 上无 scope 的 `dsh-iris` 属于另一款插件。安装和更新 Iris Media 时必须保留完整包名 `@mokuyoaxis/dsh-iris`。
|
|
139
137
|
|
|
@@ -167,7 +165,7 @@ DSH 的 profile 与插件命令由[官方安装说明](https://github.com/deepse
|
|
|
167
165
|
|
|
168
166
|
## 使用前准备
|
|
169
167
|
|
|
170
|
-
- 满足所用 DeepSeek Harness 版本要求的 Node.js;Iris 0.2.
|
|
168
|
+
- 满足所用 DeepSeek Harness 版本要求的 Node.js;Iris 0.2.2 最低为 22.0.0,旧 npm 0.1.4 的历史要求为 20.10.0
|
|
171
169
|
- 一个可用的 DeepSeek Harness 环境,以及 PATH 中的 `pnpm`
|
|
172
170
|
- 至少一个受支持的媒体或视觉服务供应商
|
|
173
171
|
- 从视频文件抽帧或摘要时,需要系统提供 `ffmpeg` 与 `ffprobe`;复用 Core 帧摘要无需这两个工具
|
|
@@ -176,14 +174,14 @@ DSH 的 profile 与插件命令由[官方安装说明](https://github.com/deepse
|
|
|
176
174
|
|
|
177
175
|
## DeepSeek Harness 适配
|
|
178
176
|
|
|
179
|
-
dsh-iris 仍按 DSH 原生插件装载。0.2.
|
|
177
|
+
dsh-iris 仍按 DSH 原生插件装载。0.2.2 服务端注册 15 个 Agent 工具(含改图),并使用宿主提供的路由、附件、模型和生命周期能力;Web 客户端接入设置页、会话输入区与全局悬浮层。插件不会启动额外服务或监听端口。
|
|
180
178
|
|
|
181
179
|
| Iris 范围 | DSH 范围 | 验证记录 |
|
|
182
180
|
|---|---|---|
|
|
183
181
|
| 已发布稳定版 `0.1.4` | `>=0.1.2-rc.1 <0.1.3-0` | 历史 Linux ARM64 干净与日常 Web profile 验收 |
|
|
184
182
|
| 已发布稳定版 `0.1.4` | `0.1.5-rc.1` | 历史 Android/Linux 日常 profile 验收 |
|
|
185
183
|
| `0.2.0` | 仅 `0.2.0-rc.2` | 真实安装服务隔离验收、Core diff 与 SlotRegistry;已有用户实机演示反馈,逐项浏览器操作与异步重启/回退继续验收 |
|
|
186
|
-
| `0.2.
|
|
184
|
+
| `0.2.2` | 仅 `0.2.0-rc.2` | 真实安装服务隔离检查覆盖 15 个工具与 31 项边界;完整浏览器/移动端及真实异步重启验收仍待完成 |
|
|
187
185
|
|
|
188
186
|
rc.2 修正与验证范围见[适配说明](docs/DSH_RC2_ADAPTATION.md);已发布 npm 0.1.4 包不包含这项后续适配。
|
|
189
187
|
|
|
@@ -241,15 +239,17 @@ Iris 支持三种文件来源,推荐顺序如下:
|
|
|
241
239
|
|
|
242
240
|
## 对话框提示词优化
|
|
243
241
|
|
|
244
|
-
0.2.
|
|
242
|
+
0.2.2 在既有按次规则、只组装和可编辑对照预览上增加一般功能。一般功能可折叠,提供通用、画图、改图、视频与数字人用途,默认忠实整理保留原文和句序;改写表达需明确选择,补充建议单独获取和采纳。默认指令贴近项目 Skills,既有自定义 v1 配置与旧 API 文字协议保留。规则不持久化,未新增独立提示词 CLI。功能及边界见 [提示词优化系统](docs/PROMPT_OPTIMIZER.md)。
|
|
245
243
|
|
|
246
|
-
Iris 会在 DSH 对话输入区提供一个无边框、无文字的“🫧”入口,不需要打开 Iris 工作台。点击后打开带背景模糊、半透明层次和柔和光影的玻璃悬浮窗;桌面端靠近输入区显示,窄屏与 Android
|
|
244
|
+
Iris 会在 DSH 对话输入区提供一个无边框、无文字的“🫧”入口,不需要打开 Iris 工作台。点击后打开带背景模糊、半透明层次和柔和光影的玻璃悬浮窗;桌面端靠近输入区显示,窄屏与 Android 浏览器自动切换为带安全区和内部滚动的底部面板。它只读取当前未发送的纯文本草稿;结果先预览,用户确认后才写回输入框,不会自动发送。含 `@` 或 `/` 结构化引用的草稿暂不改写,以免引用身份丢失。
|
|
247
245
|
|
|
248
246
|
默认使用当前会话选中的主模型;会话尚未选定模型时回退到 DSH 默认模型。优化请求不携带聊天历史、工具、附件或工作区,只发送当前草稿与目标模板。为避免推理模型在正文前耗尽生成预算,默认 `generation.reasoningEffort` 为 `off-if-supported`:仅在 DSH 模型元数据明确支持关闭 thinking 时禁用推理,否则使用供应商默认值,并且不再继承主会话的 High/Low 档位。可在 JSON 中改为 `provider-default`、`inherit` 或模型声明的具体 effort ID;成本与稳定性优先时,建议使用 `fixed` 路由指定轻量非思考模型。用户也可以导出 `prompt-optimizer.json`,将 `route.mode` 改为 `fixed` 并指定其他已在 DSH 注册的 `provider` 与 `model`,然后从面板重新导入。面板提供“恢复默认”,可还原 Iris 内置 Prompt、目标模板、会话模型路由和生成参数。该对话入口可以单独关闭,并从 Iris 工作台重新启用;关闭不会停用工作台、Agent 工具或任务后台。优化调用可能产生对应文本模型的费用。
|
|
249
247
|
|
|
250
248
|
## 模型分配与故障转移
|
|
251
249
|
|
|
252
|
-
|
|
250
|
+
Iris 按功能组织有序模型候选池,能力分配使用 `providerId::modelId` 区分执行器。同名模型来自不同供应商或账号时是独立选项;阿里云百炼可为媒体请求单独配置 Workspace `mediaBaseUrl`。
|
|
251
|
+
|
|
252
|
+
0.2.2 只采用明确功能标签、旧能力字段绑定或供应商能力元数据,裸账号和名称不再自动赋能。发现保留未标注模型,可在工作台“设置功能”或 CLI `models caps` 中明确用途;已有明确标签优先,分配顺序和安全切换保持。旧 0.2.1 的裸账号与模型名称推断不再用于功能赋能。
|
|
253
253
|
|
|
254
254
|
生成类能力可以配置多个候选模型。每次请求都从有序列表首项开始,并非 round-robin;Iris 只有在供应商明确证明未受理时才会尝试下一个候选;500、超时、断网、响应缺失、轮询失败和本地落盘失败都不会授权自动重提。远端服务一旦受理任务,Iris 只会恢复观察或交付,以免产生重复任务或重复计费。
|
|
255
255
|
|
|
@@ -261,7 +261,7 @@ Iris 会在 DSH 对话输入区提供一个无边框、无文字的“🫧”入
|
|
|
261
261
|
|
|
262
262
|
## 能力健康与模型验证
|
|
263
263
|
|
|
264
|
-
工作台与主泡泡用颜色和文字显示健康状态:灰色未配置,蓝色待验证,绿色表示对应“供应商 × 模型 × 能力”7 天内成功,暗红色表示明确认证/权限失败。0.2.
|
|
264
|
+
工作台与主泡泡用颜色和文字显示健康状态:灰色未配置,蓝色待验证,绿色表示对应“供应商 × 模型 × 能力”7 天内成功,暗红色表示明确认证/权限失败。0.2.2 另以琥珀色显示短时 429 冷却,红色显示已确认额度或预算耗尽,并给出原因和恢复条件。
|
|
265
265
|
|
|
266
266
|
Iris 不做后台探测。短时 429 遵从 `Retry-After`,缺失时冷却 60 秒;到期恢复候选资格,不自动调用验证。明确免费额度或预算耗尽则停用至手动实测成功,重启后仍跳过;实测按钮保持可用。模型池可逐项实测视觉、图片和 TTS,视频与转写可用 CLI 实测命令提供真实素材。网络、5xx、内容安全、取消和受理未知不覆盖近期成功。Host Doctor 只核验装载与 Host Port。完整规则见 [Provider 与能力健康状态](docs/PROVIDER_HEALTH.md)。
|
|
267
267
|
|
package/docs/AGENT_QUICKSTART.md
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
把下面一段交给负责安装或使用 Iris 的 Agent。版本与发布状态以当前 [README](../README.md) 为准;Iris 和 DSH 的版本号独立。
|
|
4
4
|
|
|
5
|
-
当前安装版本为 Iris 0.2.
|
|
5
|
+
当前安装版本为 Iris 0.2.2。先核对宿主与实际安装版本,再使用新视觉命令或 Artifact 改图;旧宿主仍固定安装 0.1.4。
|
|
6
6
|
|
|
7
7
|
## 中文
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
10
|
请根据本仓库 README,帮我安装并使用 Iris(@mokuyoaxis/dsh-iris)。
|
|
11
11
|
先确认运行环境、目标 DSH profile,并用 dsh --version 核对宿主;Iris 0.2.x 要求 Node.js >=22.0.0(旧 npm 0.1.4 的历史要求为 >=20.10.0):
|
|
12
|
-
- DSH 0.2.0-rc.2:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.
|
|
12
|
+
- DSH 0.2.0-rc.2:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.2。
|
|
13
13
|
- DSH >=0.1.2-rc.1 <0.1.3-0 或 0.1.5-rc.1:固定安装 dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.1.4;只下载用 npm pack @mokuyoaxis/dsh-iris@0.1.4。
|
|
14
14
|
- 其他 DSH 版本:先报告没有支持声明,不自行升级宿主或跳过版本检查。
|
|
15
|
-
没有 DSH、希望用 CLI 时,按 docs/HEADLESS_CLI.md 使用 npm 0.2.
|
|
16
|
-
先用 --help 和 Doctor 核对实际版本与命令。Iris 0.2.
|
|
15
|
+
没有 DSH、希望用 CLI 时,按 docs/HEADLESS_CLI.md 使用 npm 0.2.2;npm 0.1.4 不含新的 Core 媒体 CLI。
|
|
16
|
+
先用 --help 和 Doctor 核对实际版本与命令。Iris 0.2.2 支持 OpenAI 兼容图片与视觉工作流;其他协议与 music 是后续计划。
|
|
17
17
|
从 dsh-market 安装也要核对实际包名、版本和兼容范围;市场缓存不代表支持旧宿主,不对旧 DSH 安装 latest。
|
|
18
18
|
若使用其他 profile,把示例中的 web 换成已确认的目标。保留完整 scoped 包名,不把 dsh-iris 当作同一 npm 包。
|
|
19
19
|
安装后检查 Doctor 和工具可达性,再执行我指定的媒体任务;不要输出 API Key,重启宿主前说明影响。
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
```text
|
|
27
27
|
Help me install and use Iris (@mokuyoaxis/dsh-iris) according to this repository's README.
|
|
28
28
|
Check the environment, target DSH profile, and dsh --version first; Iris 0.2.x requires Node.js >=22.0.0 (the published npm 0.1.4 historically requires >=20.10.0):
|
|
29
|
-
- DSH 0.2.0-rc.2: pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.
|
|
29
|
+
- DSH 0.2.0-rc.2: pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.2.
|
|
30
30
|
- DSH >=0.1.2-rc.1 <0.1.3-0 or 0.1.5-rc.1: pin dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.1.4; download only with npm pack @mokuyoaxis/dsh-iris@0.1.4.
|
|
31
31
|
- Other DSH versions: report the missing support claim; do not upgrade the host or bypass its version checks automatically.
|
|
32
|
-
For CLI use without DSH, follow docs/HEADLESS_CLI.md using npm 0.2.
|
|
33
|
-
Check --help, Doctor and the actual installed version before using commands. Iris 0.2.
|
|
32
|
+
For CLI use without DSH, follow docs/HEADLESS_CLI.md using npm 0.2.2; npm 0.1.4 does not include the new Core media CLI.
|
|
33
|
+
Check --help, Doctor and the actual installed version before using commands. Iris 0.2.2 supports the OpenAI-compatible image and vision workflow; additional protocols and music remain future work.
|
|
34
34
|
For dsh-market, check the actual package name, version, and compatibility range too. Cached listings do not establish older-host support; do not install latest on an old DSH host.
|
|
35
35
|
Replace web with the confirmed profile when needed. Keep the scoped package name; unscoped dsh-iris is a different npm package.
|
|
36
36
|
Check Doctor and tool availability after installation, then carry out my requested media task. Do not expose API keys; explain the impact before restarting the host.
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Iris 架构与边界
|
|
2
2
|
|
|
3
|
-
状态:本文面向 **Iris 0.2.
|
|
3
|
+
状态:本文面向 **Iris 0.2.2**。0.2.0 建立实例化 Core Runtime、Headless CLI、共享 Provider 生命周期与 Task/Artifact 事实;0.2.2 补共享视觉、模型级图片协议、Artifact 编辑及维护入口。DSH 插件仅支持 `0.2.0-rc.2`,Node.js 最低为 22.0.0;旧宿主固定使用 npm `0.1.4`。Core 内部 API 尚未冻结为公共 SDK。
|
|
4
4
|
|
|
5
5
|
## 当前形态
|
|
6
6
|
|
|
@@ -41,7 +41,7 @@ DSH Host / Cordis Headless CLI
|
|
|
41
41
|
|
|
42
42
|
| 模块 | 职责 | DSH 运行时依赖 |
|
|
43
43
|
|---|---|---:|
|
|
44
|
-
| `core-contract.js` / `core-runtime.js` | 显式数据根、reader/writer 权限、单写者租约、取消与释放 | 无 |
|
|
44
|
+
| `core-contract.js` / `core-runtime.js` / `core-writer-lease.js`(0.2.2) | 显式数据根、reader/writer 权限、单写者租约、取消与释放 | 无 |
|
|
45
45
|
| `command-service.js` | 本地媒体命令、Task 控制面和 Artifact 查询/导出 | 无 |
|
|
46
46
|
| `generation-input.js` | CLI、DSH 与重试共用的生成参数校验和 Provider 字段转换 | 无 |
|
|
47
47
|
| `model-port-contract.js` / `model-invoker.js` | Text/Vision 内部契约、有限调用预算与取消 | 无 |
|
|
@@ -59,6 +59,8 @@ DSH Host / Cordis Headless CLI
|
|
|
59
59
|
|
|
60
60
|
完整规则见 [Core Runtime v0](CORE_RUNTIME_CONTRACT.md)、[Artifact Manifest v0](ARTIFACT_MANIFEST.md)、[Provider Adapter v0](PROVIDER_ADAPTER_CONTRACT.md) 与 [DSH → Core 渐进迁移](DSH_CORE_MIGRATION.md)。这些仍是内部契约,不是第三方 SDK 兼容承诺。
|
|
61
61
|
|
|
62
|
+
0.2.2 的 Core writer 在创建目录前发布完整 owner 意图,释放和显式恢复通过整体退役保留证据;普通启动不抢占。非图片 staging 复用文件复制接收与分块哈希,图片格式验证和 inline 解码仍可能使用完整 Buffer,不声称端到端流式传输。
|
|
63
|
+
|
|
62
64
|
## Task、Attempt 与 Artifact
|
|
63
65
|
|
|
64
66
|
- 一个用户意图对应一个 Core Task;每次候选供应商调用对应一个稳定 Attempt。Attempt 必须在可能发送计费请求前落盘。
|
|
@@ -72,8 +74,12 @@ DSH Host / Cordis Headless CLI
|
|
|
72
74
|
|
|
73
75
|
## Provider 边界
|
|
74
76
|
|
|
77
|
+
0.2.2按功能组织有序模型候选池,能力来自明确模型标签、旧能力字段绑定或供应商能力元数据。裸账号不物化默认模型,模型名称不授权进入候选链;明确空池与空标签保持权威。模型与供应商复合身份用于底层执行器,功能入口、分配排序及安全 failover 没有改为模型中心产品或默认轮转。旧 0.2.1 的能力推断行为不再用于裸账号或模型名称赋能。
|
|
78
|
+
|
|
75
79
|
Provider Adapter v0 固定 discovery、submit、poll、cancel、download 与 error mapping 六类生命周期操作;提交前的临时输入上传是可选准备能力,不自动成为 Core 事实。协议实现只接收显式凭据、模型和媒体端点,Core 保存复合模型身份与非敏感 binding,不保存端点原文。
|
|
76
80
|
|
|
81
|
+
0.2.2 的生图错误将 HTTP 前的尺寸拒绝明确记为未受理,网络异常保留实际请求/正文阶段及可用错误码,原生取消/超时保留原分类。错误诊断不改变受理门,网络超时或正文丢失仍不能触发自动重提。
|
|
82
|
+
|
|
77
83
|
Core Runner 不拥有后台 timer。Headless `task observe` 每次最多 poll 一次,`task wait` 仅在本次命令内有界观察;DSH 的有界自动观察属于 Host,插件释放时停止 timer 并中止在途观察,但不会把“停止本地观察”写成“远端已取消”。端点或协议 binding 漂移时恢复在联网前拒绝。
|
|
78
84
|
|
|
79
85
|
每个操作必须明确声明 supported 或 unsupported。当前 DashScope 与 OpenAI Images 媒体协议没有经过验证的远端取消实现,因此取消请求如实返回 not-supported,而不是伪造 canceled。完整受理与错误规则见 [Provider 提交契约 v0](PROVIDER_SUBMISSION_CONTRACT.md)。
|
|
@@ -84,6 +90,8 @@ Core Runner 不拥有后台 timer。Headless `task observe` 每次最多 poll
|
|
|
84
90
|
|
|
85
91
|
0.2.1通过 `prompt-optimizer-core.js` → `model-invoker.js` → `dsh-text-model-adapter.js` 接入首个提示词消费者;`prompt-optimizer.js` 继续拥有 v1 配置、模型选择、reasoning 策略和 Host 投影。共享核心不读取 Host/配置/Store,不取得 writer,也不创建媒体 Task/Attempt/Artifact。规则与预览见 [提示词优化系统](PROMPT_OPTIMIZER.md)。
|
|
86
92
|
|
|
93
|
+
0.2.2 的一般提示词功能在这个共享消费者上增加 faithful / rewrite / suggestions 策略:忠实正文由原稿片段按原顺序拼回,建议独立返回并要求明确采纳。五用途和折叠预览属于 DSH UI,不自动进入生图模型池,也不新增自持文本目录、CLI 或公共 SDK。
|
|
94
|
+
|
|
87
95
|
单图视觉将 Agent/工作台 look/relook 和显式视觉实测接入 `vision-core.js` 与 HTTP/DSH Vision Port:共享 120 秒整体预算、完整终态与候选策略,图片桥接核验原图与实际附件,接受合法宿主规范化。DSH 附件保存属于宿主副作用,不是 Core Artifact;rc.2 保存不可取消的限制如实保留。见 [单图视觉调用](VISION_MODEL.md)。视觉 CLI 复用这些业务;可选 `visionInput` 在入口层控制发送副本。未新增公共 SDK export,自持文本目录和独立提示词入口另行安排。
|
|
88
96
|
|
|
89
97
|
OCR 切片通过 `ocr-model-routing.js` 在入口解引用前建立整体 operation,`ocr.js` 仅接收图片字节和模型端口,使用现有 Sharp 做有限分块;全部块复用 `completeVision`,没有每块重置计时或调用额度。普通块失败可以产生明确部分结果,取消/超时终止整次操作;不取得 Core writer 或写入 Task/Artifact。见 [长图 OCR](OCR_MODEL.md)。
|
package/docs/ARTIFACT_LIBRARY.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Iris legacy 作品库 v0
|
|
2
2
|
|
|
3
|
-
状态:自 v0.1.4 实现,Iris 0.2.
|
|
3
|
+
状态:自 v0.1.4 实现,Iris 0.2.2 保留兼容。本文只描述旧 `outputs/` 与最小索引;当前工作台同时展示 Core Artifact,分页、过滤、批量下载与可恢复隔离见 [工作台作品管理](WORKBENCH_ARTIFACTS.md)。
|
|
4
4
|
|
|
5
5
|
作品库解决“清除任务历史后仍能看到本地作品”的问题。任务记录描述执行过程;作品记录只负责本地媒体的发现、展示和访问。两者生命周期彼此独立。
|
|
6
6
|
|
package/docs/CLI_MANAGEMENT.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# CLI 配置与任务管理
|
|
2
2
|
|
|
3
|
-
本文面向 Iris 0.2.
|
|
3
|
+
本文面向 Iris 0.2.2,沿用 `dsh-iris` 入口,无需启动 DSH,未新增生产依赖。安装 `npm install @mokuyoaxis/dsh-iris@0.2.2` 后运行 `npx dsh-iris ...`;也可从源码或本地 tarball 使用同一入口。视觉命令见 [视觉 CLI](VISION_CLI.md),基础媒体链路见 [Headless CLI](HEADLESS_CLI.md)。
|
|
4
4
|
|
|
5
5
|
所有需要 JSON 的命令均支持 `--input '<json>'`、`--input-file /path/input.json` 或 `--input -`(stdin),只能选择一种,输入最多 2 MiB。私有配置必须是普通文件、绝对路径,POSIX 权限为 `0600`。真实请求只由显式执行生成、发现、实测或观察命令触发。
|
|
6
6
|
|
|
7
|
+
能力配置规则已同步Iris 0.2.2:能力来自明确配置或供应商元数据,裸账号和模型名称不自动赋能。现有功能入口、按功能分配的有序候选池和安全切换规则保持。
|
|
8
|
+
|
|
7
9
|
## S2V 数字人视频
|
|
8
10
|
|
|
9
11
|
```bash
|
|
@@ -37,13 +39,13 @@ dsh-iris media html --data-root /path/core --input-file /path/html-input.json \
|
|
|
37
39
|
| `providers add/set --input-file ...` | 添加/局部更新账号;JSON 是 provider 对象,必须包含 id |
|
|
38
40
|
| `providers remove <id>` | 移除指定账号,剪去失效分配 |
|
|
39
41
|
| `models list` | 模型复合引用、能力和实测事实 |
|
|
40
|
-
| `models add <ref> [--input ...]` | 添加模型;可给 capabilities
|
|
42
|
+
| `models add <ref> [--input ...]` | 添加模型;可给 capabilities,省略或空数组则保持未标注 |
|
|
41
43
|
| `models caps <ref> --input ...` | 手动能力标签(允许空数组) |
|
|
42
44
|
| `models protocol <ref> --input ...` | 单模型图片协议;`auto` 恢复账号默认 |
|
|
43
45
|
| `models vision-input <ref> --input ...` | 模型视觉输入预算;`null` 恢复账号继承 |
|
|
44
46
|
| `models remove <ref>` | 移除模型,剪去失效分配 |
|
|
45
47
|
| `models discover <provider-id>` | 请求发现,仅预览,不修改配置 |
|
|
46
|
-
| `models discover <provider-id> --apply true` |
|
|
48
|
+
| `models discover <provider-id> --apply true` | 合并明确能力元数据,保留未标注条目、已有明确标签和实测记录 |
|
|
47
49
|
| `models test <ref> --capability vision` | 一次红图视觉实测,严格绑定该模型,记录 verified |
|
|
48
50
|
| `models test <ref> --capability image-gen/tts --data-root ...` | 实际生成测试,结果保存为 Core Task/Artifact,图片最多等待 60 秒 |
|
|
49
51
|
| `models test <ref> --capability video-gen/transcribe --data-root ... --input ...` | 使用真实素材单独实测,输入格式同 `run video/transcribe`,最多等待 60 秒;成功才恢复停用模型 |
|
package/docs/COMPOSITE_VISION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Core Runtime v0 内部契约
|
|
2
2
|
|
|
3
|
-
本文定义 Iris 0.2.
|
|
3
|
+
本文定义 Iris 0.2.2 沿用的 Core Runtime 内部接口,初版在 0.2.0 实现。内部接口在后续版本仍可能调整,npm 包不把它作为公开 API 导出;现有 `config.js`、`tasks.js` 和 `artifacts.js` 也尚未迁移。
|
|
4
4
|
|
|
5
5
|
## 目标与范围
|
|
6
6
|
|
|
@@ -19,6 +19,14 @@ Core Runtime 由调用方显式创建、启动和释放。数据根、操作权
|
|
|
19
19
|
|
|
20
20
|
初版租约优先使用 Node 标准库和本地文件系统能力,不新增生产依赖。Android 共享存储、网络文件系统和异常退出后的恢复只有拿到真实证据后才声明支持;实现不得假设 systemd 或常驻 daemon 存在。
|
|
21
21
|
|
|
22
|
+
0.2.2在原 v0 租约目录旁增加 `.iris-runtime-writer-v0.owner.json` 意图证据:完整私有 owner 先准备,再通过排他 hard link 原子发布,随后创建目录并链接 `owner.json`。新写者同时尊重目录和意图;创建中断仍保留完整 PID。文件系统不支持 hard link 时安全失败,不回退到可能半写的锁。Task、Artifact、配置格式和 CLI 参数不变,既有完整 v0 目录仍可诊断与显式恢复。
|
|
23
|
+
|
|
24
|
+
正常释放先整体 rename 非空目录为本实例 UUID 的退役目录,最后撤下意图;不会先在占位目录里删除 owner。退役目录本身不占有固定租约,但若撤下意图前中断,剩余意图仍阻止普通 writer,需要在 owner 已退出且证据完整时显式恢复。意图撤下后的清理只涉及本实例退役证据,清理失败不阻止新 writer;遗留退役目录不会在下次启动时自动删除。
|
|
25
|
+
|
|
26
|
+
恢复使用数据根中按前驱 UUID 排他发布的完整记录,保留原 owner,不替换或删除旧恢复步骤。Doctor 的 `phase` 可为 `owned`、`pending`、`recovering`;恢复再次中断时回显最新报告中的 PID,并复核链中每个 PID 均为 missing。并发恢复与旧观察被新 writer 接替均拒绝,不向新租约目录写入陈旧 claim。无 PID 的旧空目录、仅剩 `.owner.stale-*` 而缺少恢复 owner 的旧现场、未知文件、损坏或符号链接证据仍拒绝并保留。
|
|
27
|
+
|
|
28
|
+
私有审计先记录退役授权和完整恢复链,再整体移走租约到审计记录指定的 `evidenceDirectory`。审计 JSON 的存在本身不证明最终解除成功:命令成功结果和退役目录是相应完成证据。异常退出的准备文件、退役目录与根中的未归档恢复记录保留,普通启动不清理。当前证据来自本机私有文件系统的进程 SIGKILL 与 I/O 故障注入,不承诺断电持久性或 Android 共享/网络文件系统支持;混用旧版本 writer 不纳入这些新增保证。
|
|
29
|
+
|
|
22
30
|
## 访问模式和操作分类
|
|
23
31
|
|
|
24
32
|
| 模式 | `inspect` | `execute` | `recover` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DSH → Core 渐进迁移
|
|
2
2
|
|
|
3
|
-
本文描述 **Iris 0.2.
|
|
3
|
+
本文描述 **Iris 0.2.2** 的实现边界;0.2.0 建立的 Core 数据格式保持兼容。迁移逐条切换消费者,不原地改写 0.1.4 数据。
|
|
4
4
|
|
|
5
5
|
0.2.1 已把 S2V、HTML、单图视觉、OCR、定位、摘要和提示词预览接入共享 Core Command 或 Model Ports,并补齐视觉 CLI、配置/查询/维护命令。图片按模型选择四种协议,Artifact ID 聊天编辑另存新作品并保留来源关系;输入预算仅处理发送副本。功能范围见 [发布说明](releases/0.2.1.md)。
|
|
6
6
|
|
package/docs/FAULT_INJECTION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 故障注入矩阵
|
|
2
2
|
|
|
3
|
-
状态:本矩阵使用本地 fixture、Fake Provider、Mock Fetch 或临时目录,不发送真实供应商请求。前表记录 legacy Task v2 的受理与恢复语义;后表补充 Iris 0.2.
|
|
3
|
+
状态:本矩阵使用本地 fixture、Fake Provider、Mock Fetch 或临时目录,不发送真实供应商请求。前表记录 legacy Task v2 的受理与恢复语义;后表补充 Iris 0.2.2 的 Core、图片协议与视觉边界。
|
|
4
4
|
|
|
5
5
|
| 场景 | 预期事实 | 自动重复提交 | 证据 |
|
|
6
6
|
|---|---|---:|---|
|
|
@@ -33,4 +33,13 @@
|
|
|
33
33
|
| Artifact 来源缺失/损坏或编辑失败 | 生成前核验;来源保持原样,已受理未知不重提 | 0 | `chat-image-edit.mjs`、`chat-image-edit-cli.mjs` |
|
|
34
34
|
| Core 删除引用保护、隔离与恢复冲突 | 拒绝删除仍被引用的作品;可恢复隔离,冲突不覆盖 | 0 | `core-deletion-boundary.mjs`、`workbench-management.mjs` |
|
|
35
35
|
|
|
36
|
+
## 0.2.2 新增边界
|
|
37
|
+
|
|
38
|
+
| 场景 | 预期事实 | 自动重复提交 | 证据 |
|
|
39
|
+
|---|---|---:|---|
|
|
40
|
+
| writer 创建/释放/恢复在关键操作后强杀、恢复竞争 | 保留完整 owner/恢复证据;陈旧现场仅显式恢复,普通 writer 不抢占 | 0 | `core-lease-interruptions.mjs`、`runtime-recover.mjs` |
|
|
41
|
+
| 16 MiB 视频/音频/文本文件接收或复制失败 | staging 不整文件读取;失败保持远端 succeeded,显式重交付不 submit | 0 | `provider-file-delivery.mjs` |
|
|
42
|
+
| 忠实整理遗漏/重复/调换原文片段、建议或媒体混入 | 协议失败不交付成功预览;建议默认不进入正文,无隐藏第二次调用 | 0 | `prompt-optimizer-boundary.mjs`、`prompt-optimizer-api.mjs`、`prompt-optimizer-client.mjs` |
|
|
43
|
+
| 生图本地尺寸拒绝、DNS/TLS/网络超时、HTTP 200 后正文中断 | 本地校验 not_accepted 且 fetch=0;传输失败 unknown,保留分类/阶段/可用错误码 | 0 | `image-transport-errors.mjs`、`image-task-acceptance-unknown.mjs` |
|
|
44
|
+
|
|
36
45
|
矩阵的硬性规则是:只要已有 `accepted` 或 `unknown` 事实,任何自动路径的生成提交次数增量必须为 **0**。人工重试不属于自动恢复;它必须由用户逐次确认,并在数据中保留新旧 Task 的关系。
|
package/docs/HEADLESS_CLI.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Headless CLI
|
|
2
2
|
|
|
3
|
-
本文面向 Iris 0.2.
|
|
3
|
+
本文面向 Iris 0.2.2,涵盖无 DSH 的本地处理、媒体生成、视觉分析、配置和任务管理。媒体结果保存为 Core Artifact,可在后续进程中检查、分析或导出;纯视觉不自动创建产物。Core 内部接口与 Artifact v0 尚未冻结为公共 SDK。
|
|
4
4
|
|
|
5
|
-
需要 Node.js ≥ 22.0.0。安装 `npm install @mokuyoaxis/dsh-iris@0.2.
|
|
5
|
+
需要 Node.js ≥ 22.0.0。安装 `npm install @mokuyoaxis/dsh-iris@0.2.2` 后运行 `npx dsh-iris --help`。源码入口为 `node bin/dsh-iris.js ...`;安装本地 tarball 后也可运行 `dsh-iris ...`。
|
|
6
6
|
|
|
7
7
|
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)。
|
|
8
8
|
|
|
@@ -28,6 +28,8 @@ dsh-iris runtime recover --data-root /absolute/path/to/iris-data --confirm-stale
|
|
|
28
28
|
|
|
29
29
|
此命令会再次核对租约证据和 PID,写入私有恢复审计记录后释放陈旧租约;活跃、无法确认、损坏或 PID 不匹配时拒绝。它不是 Doctor 的自动副作用,也不会修复 Task/Artifact。不要手动删除 `.iris-runtime-writer-v0` 或把“PID 不存在”单独当作安全证明。
|
|
30
30
|
|
|
31
|
+
0.2.2保留创建/释放意图和恢复步骤证据。Doctor 可报告 `phase: pending` 或 `recovering`;恢复本身被强杀后重新运行 Doctor,回显最新 PID,不沿用旧确认。只有完整证据且所有相关 PID 已退出才可继续;无 owner 的旧空目录及仅剩旧 `.owner.stale-*` 的现场仍拒绝。恢复审计保留完整退役目录,普通启动不删除它们。需要支持 hard link 的私有文件系统;参数、Task/Artifact/配置版本不变。细节与验证边界见 [Core Runtime 契约](CORE_RUNTIME_CONTRACT.md)。
|
|
32
|
+
|
|
31
33
|
媒体与视觉路由会持久记录短时 429 冷却或明确额度/预算耗尽,后续候选跳过受阻模型。冷却到期不发起请求;持续停用需 `models test` 成功恢复。状态及私有配置写入规则见 [Provider 健康](PROVIDER_HEALTH.md) 与 [CLI 管理命令](CLI_MANAGEMENT.md)。
|
|
32
34
|
|
|
33
35
|
## 裁剪并保存 Artifact
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Host Adapter v0 契约
|
|
2
2
|
|
|
3
|
-
状态:**v0.1.4 内部契约与渐进迁移已完成,并通过真实 DSH 隔离 canary。** 本文固定真实消费者所需的最小边界;0.2.
|
|
3
|
+
状态:**v0.1.4 内部契约与渐进迁移已完成,并通过真实 DSH 隔离 canary。** 本文固定真实消费者所需的最小边界;0.2.2 已提供独立 Core/CLI,但未冻结公开 Host SDK,也未实现完整 Local Host。
|
|
4
4
|
|
|
5
5
|
## 目标
|
|
6
6
|
|