@mokuyoaxis/dsh-iris 0.1.4 → 0.2.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/.dsh/skills/iris-compose-media/SKILL.md +10 -5
- package/.dsh/skills/iris-compose-media/references/workflows.md +7 -1
- package/.dsh/skills/iris-verify-ui/SKILL.md +2 -1
- package/CHANGELOG.md +99 -1
- package/README.en.md +124 -31
- package/README.md +124 -31
- package/bin/dsh-iris.js +593 -13
- package/docs/AGENT_QUICKSTART.md +39 -0
- package/docs/ARCHITECTURE.md +87 -64
- package/docs/ARTIFACT_LIBRARY.md +5 -5
- package/docs/ARTIFACT_MANIFEST.md +60 -0
- package/docs/CLI_MANAGEMENT.md +181 -0
- package/docs/COMPOSITE_VISION.md +35 -0
- package/docs/CORE_RUNTIME_CONTRACT.md +84 -0
- package/docs/DSH_CORE_MIGRATION.md +135 -0
- package/docs/DSH_RC2_ADAPTATION.md +38 -0
- package/docs/FAULT_INJECTION.md +12 -2
- package/docs/HEADLESS_CLI.md +223 -0
- package/docs/HOST_ADAPTER_CONTRACT.md +36 -17
- package/docs/HOST_DOCTOR.md +4 -2
- package/docs/MODEL_PORT_CONTRACT.md +305 -0
- package/docs/OCR_MODEL.md +39 -0
- package/docs/PROMPT_OPTIMIZER.md +47 -0
- package/docs/PROVIDER_ADAPTER_CONTRACT.md +53 -10
- package/docs/PROVIDER_HEALTH.md +22 -5
- package/docs/PROVIDER_RUNTIME_HARNESS.md +33 -0
- package/docs/PROVIDER_SUBMISSION_CONTRACT.md +2 -2
- package/docs/ROADMAP.md +49 -83
- package/docs/SECURITY.md +8 -7
- package/docs/TASK_SEMANTICS.md +2 -2
- package/docs/VISION_CLI.md +132 -0
- package/docs/VISION_MODEL.md +51 -0
- package/docs/WORKBENCH_ARTIFACTS.md +67 -0
- package/docs/assets/logo/README.md +55 -0
- package/docs/assets/logo/iris-bubble-concept.svg +67 -0
- package/docs/assets/logo/iris-bubble.svg +14 -0
- package/docs/assets/logo/iris-interim-flower.png +0 -0
- package/docs/assets/logo/iris-logo-mono-inverse.svg +78 -0
- package/docs/assets/logo/iris-logo-mono.svg +78 -0
- package/docs/assets/logo/iris-logo.svg +78 -0
- package/docs/assets/logo/iris-mark-mono-inverse.svg +42 -0
- package/docs/assets/logo/iris-mark-mono.svg +42 -0
- package/docs/assets/logo/iris-mark.svg +42 -0
- package/docs/file-access-across-environments.md +8 -5
- package/docs/releases/0.2.0.md +48 -0
- package/docs/releases/0.2.1.md +56 -0
- package/lib/actions.js +520 -591
- package/lib/adapters.js +184 -36
- package/lib/api.js +200 -11
- package/lib/chromium-browser.js +117 -0
- package/lib/client.js +1390 -105
- package/lib/command-service.js +534 -0
- package/lib/composite-vision-routing.js +42 -0
- package/lib/config.js +143 -51
- package/lib/core-artifact-store.js +630 -0
- package/lib/core-artifacts.js +4 -0
- package/lib/core-attention.js +103 -0
- package/lib/core-contract.js +105 -0
- package/lib/core-doctor.js +41 -0
- package/lib/core-lease-recovery.js +170 -0
- package/lib/core-maintenance.js +213 -0
- package/lib/core-runtime.js +232 -0
- package/lib/core-tasks.js +567 -0
- package/lib/core-user-projection.js +193 -0
- package/lib/doctor.js +92 -33
- package/lib/dsh-core-adapter.js +653 -0
- package/lib/dsh-host-adapter.js +58 -7
- package/lib/dsh-text-model-adapter.js +222 -0
- package/lib/dsh-vision-model-adapter.js +75 -0
- package/lib/generation-input.js +126 -0
- package/lib/guard.js +3 -3
- package/lib/headless-vision.js +181 -0
- package/lib/host-runtime.js +1 -0
- package/lib/http-vision-model-adapter.js +187 -0
- package/lib/image-edit-input.js +34 -0
- package/lib/index.js +323 -188
- package/lib/locate.js +86 -28
- package/lib/media-probe.js +2 -1
- package/lib/model-call-runtime.js +45 -0
- package/lib/model-invoker.js +220 -0
- package/lib/model-port-contract.js +341 -0
- package/lib/models.js +105 -14
- package/lib/ocr-model-routing.js +26 -0
- package/lib/ocr.js +110 -64
- package/lib/prompt-optimizer-config.js +2 -1
- package/lib/prompt-optimizer-core.js +121 -0
- package/lib/prompt-optimizer.js +37 -193
- package/lib/provider-adapter.js +49 -23
- package/lib/provider-adapters.js +165 -26
- package/lib/provider-catalog.js +183 -0
- package/lib/provider-config-service.js +236 -0
- package/lib/provider-contract.js +74 -4
- package/lib/provider-health.js +80 -1
- package/lib/provider-protocol.js +74 -2
- package/lib/provider-task-runner.js +370 -0
- package/lib/summarize.js +31 -20
- package/lib/summary-input.js +52 -0
- package/lib/task-wait.js +40 -0
- package/lib/tasks.js +16 -4
- package/lib/video-input.js +30 -0
- package/lib/vision-core.js +42 -0
- package/lib/vision-image-input.js +83 -0
- package/lib/vision-input.js +31 -0
- package/lib/vision-model-routing.js +180 -0
- package/lib/vision.js +31 -9
- package/lib/workbench-artifacts.js +52 -0
- package/lib/workbench-management.js +151 -0
- package/lib/workbench-zip.js +39 -0
- package/package.json +8 -8
- package/user_guide.md +71 -26
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="96" viewBox="-8 -8 88 96" role="img" aria-label="IRIS 图形标(单色)" shape-rendering="crispEdges">
|
|
2
|
+
<title>IRIS 图形标(单色)</title>
|
|
3
|
+
<desc>像素块鸢尾花图形标,单色墨</desc>
|
|
4
|
+
<rect x="32" y="0" width="8" height="8" fill="#1E1E24"/>
|
|
5
|
+
<rect x="24" y="8" width="8" height="8" fill="#1E1E24"/>
|
|
6
|
+
<rect x="32" y="8" width="8" height="8" fill="#1E1E24"/>
|
|
7
|
+
<rect x="40" y="8" width="8" height="8" fill="#1E1E24"/>
|
|
8
|
+
<rect x="16" y="16" width="8" height="8" fill="#1E1E24"/>
|
|
9
|
+
<rect x="24" y="16" width="8" height="8" fill="#1E1E24"/>
|
|
10
|
+
<rect x="32" y="16" width="8" height="8" fill="#1E1E24"/>
|
|
11
|
+
<rect x="40" y="16" width="8" height="8" fill="#1E1E24"/>
|
|
12
|
+
<rect x="48" y="16" width="8" height="8" fill="#1E1E24"/>
|
|
13
|
+
<rect x="16" y="24" width="8" height="8" fill="#1E1E24"/>
|
|
14
|
+
<rect x="24" y="24" width="8" height="8" fill="#1E1E24"/>
|
|
15
|
+
<rect x="32" y="24" width="8" height="8" fill="#1E1E24"/>
|
|
16
|
+
<rect x="40" y="24" width="8" height="8" fill="#1E1E24"/>
|
|
17
|
+
<rect x="48" y="24" width="8" height="8" fill="#1E1E24"/>
|
|
18
|
+
<rect x="0" y="32" width="8" height="8" fill="#1E1E24"/>
|
|
19
|
+
<rect x="24" y="32" width="8" height="8" fill="#1E1E24"/>
|
|
20
|
+
<rect x="32" y="32" width="8" height="8" fill="#1E1E24"/>
|
|
21
|
+
<rect x="40" y="32" width="8" height="8" fill="#1E1E24"/>
|
|
22
|
+
<rect x="64" y="32" width="8" height="8" fill="#1E1E24"/>
|
|
23
|
+
<rect x="0" y="40" width="8" height="8" fill="#1E1E24"/>
|
|
24
|
+
<rect x="8" y="40" width="8" height="8" fill="#1E1E24"/>
|
|
25
|
+
<rect x="24" y="40" width="8" height="8" fill="#1E1E24"/>
|
|
26
|
+
<rect x="32" y="40" width="8" height="8" fill="#1E1E24"/>
|
|
27
|
+
<rect x="40" y="40" width="8" height="8" fill="#1E1E24"/>
|
|
28
|
+
<rect x="56" y="40" width="8" height="8" fill="#1E1E24"/>
|
|
29
|
+
<rect x="64" y="40" width="8" height="8" fill="#1E1E24"/>
|
|
30
|
+
<rect x="8" y="48" width="8" height="8" fill="#1E1E24"/>
|
|
31
|
+
<rect x="16" y="48" width="8" height="8" fill="#1E1E24"/>
|
|
32
|
+
<rect x="32" y="48" width="8" height="8" fill="#1E1E24"/>
|
|
33
|
+
<rect x="48" y="48" width="8" height="8" fill="#1E1E24"/>
|
|
34
|
+
<rect x="56" y="48" width="8" height="8" fill="#1E1E24"/>
|
|
35
|
+
<rect x="16" y="56" width="8" height="8" fill="#1E1E24"/>
|
|
36
|
+
<rect x="24" y="56" width="8" height="8" fill="#1E1E24"/>
|
|
37
|
+
<rect x="32" y="56" width="8" height="8" fill="#1E1E24"/>
|
|
38
|
+
<rect x="40" y="56" width="8" height="8" fill="#1E1E24"/>
|
|
39
|
+
<rect x="48" y="56" width="8" height="8" fill="#1E1E24"/>
|
|
40
|
+
<rect x="32" y="64" width="8" height="8" fill="#1E1E24"/>
|
|
41
|
+
<rect x="32" y="72" width="8" height="8" fill="#1E1E24"/>
|
|
42
|
+
</svg>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="96" viewBox="-8 -8 88 96" role="img" aria-label="IRIS 图形标(彩色)" shape-rendering="crispEdges">
|
|
2
|
+
<title>IRIS 图形标(彩色)</title>
|
|
3
|
+
<desc>像素块鸢尾花图形标,带一格留白,紧凑图标与 App 角标适用</desc>
|
|
4
|
+
<rect x="32" y="0" width="8" height="8" fill="#8C77EE"/>
|
|
5
|
+
<rect x="24" y="8" width="8" height="8" fill="#8C77EE"/>
|
|
6
|
+
<rect x="32" y="8" width="8" height="8" fill="#8C77EE"/>
|
|
7
|
+
<rect x="40" y="8" width="8" height="8" fill="#8C77EE"/>
|
|
8
|
+
<rect x="16" y="16" width="8" height="8" fill="#8C77EE"/>
|
|
9
|
+
<rect x="24" y="16" width="8" height="8" fill="#8C77EE"/>
|
|
10
|
+
<rect x="32" y="16" width="8" height="8" fill="#8C77EE"/>
|
|
11
|
+
<rect x="40" y="16" width="8" height="8" fill="#8C77EE"/>
|
|
12
|
+
<rect x="48" y="16" width="8" height="8" fill="#8C77EE"/>
|
|
13
|
+
<rect x="16" y="24" width="8" height="8" fill="#8C77EE"/>
|
|
14
|
+
<rect x="24" y="24" width="8" height="8" fill="#8C77EE"/>
|
|
15
|
+
<rect x="32" y="24" width="8" height="8" fill="#8C77EE"/>
|
|
16
|
+
<rect x="40" y="24" width="8" height="8" fill="#8C77EE"/>
|
|
17
|
+
<rect x="48" y="24" width="8" height="8" fill="#8C77EE"/>
|
|
18
|
+
<rect x="0" y="32" width="8" height="8" fill="#3F32A8"/>
|
|
19
|
+
<rect x="24" y="32" width="8" height="8" fill="#8C77EE"/>
|
|
20
|
+
<rect x="32" y="32" width="8" height="8" fill="#8C77EE"/>
|
|
21
|
+
<rect x="40" y="32" width="8" height="8" fill="#8C77EE"/>
|
|
22
|
+
<rect x="64" y="32" width="8" height="8" fill="#3F32A8"/>
|
|
23
|
+
<rect x="0" y="40" width="8" height="8" fill="#3F32A8"/>
|
|
24
|
+
<rect x="8" y="40" width="8" height="8" fill="#3F32A8"/>
|
|
25
|
+
<rect x="24" y="40" width="8" height="8" fill="#8C77EE"/>
|
|
26
|
+
<rect x="32" y="40" width="8" height="8" fill="#F0B23E"/>
|
|
27
|
+
<rect x="40" y="40" width="8" height="8" fill="#8C77EE"/>
|
|
28
|
+
<rect x="56" y="40" width="8" height="8" fill="#3F32A8"/>
|
|
29
|
+
<rect x="64" y="40" width="8" height="8" fill="#3F32A8"/>
|
|
30
|
+
<rect x="8" y="48" width="8" height="8" fill="#3F32A8"/>
|
|
31
|
+
<rect x="16" y="48" width="8" height="8" fill="#3F32A8"/>
|
|
32
|
+
<rect x="32" y="48" width="8" height="8" fill="#F0B23E"/>
|
|
33
|
+
<rect x="48" y="48" width="8" height="8" fill="#3F32A8"/>
|
|
34
|
+
<rect x="56" y="48" width="8" height="8" fill="#3F32A8"/>
|
|
35
|
+
<rect x="16" y="56" width="8" height="8" fill="#3F32A8"/>
|
|
36
|
+
<rect x="24" y="56" width="8" height="8" fill="#3F32A8"/>
|
|
37
|
+
<rect x="32" y="56" width="8" height="8" fill="#4A9E6F"/>
|
|
38
|
+
<rect x="40" y="56" width="8" height="8" fill="#3F32A8"/>
|
|
39
|
+
<rect x="48" y="56" width="8" height="8" fill="#3F32A8"/>
|
|
40
|
+
<rect x="32" y="64" width="8" height="8" fill="#4A9E6F"/>
|
|
41
|
+
<rect x="32" y="72" width="8" height="8" fill="#4A9E6F"/>
|
|
42
|
+
</svg>
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
# 文件访问与跨环境
|
|
2
2
|
|
|
3
|
-
Iris
|
|
3
|
+
Iris 0.2.1 可以从 Core Artifact ID、浏览器上传、会话附件或宿主文件路径读取媒体。已有 Core 作品优先使用 ID;外部文件按实际环境选择上传、附件或路径。
|
|
4
4
|
|
|
5
5
|
## 推荐顺序
|
|
6
6
|
|
|
7
|
-
1.
|
|
7
|
+
1. **Core Artifact ID**
|
|
8
|
+
看图、OCR、定位和聊天改图可直接使用已有图片/帧的 `artifact_id`,无需复制路径或先导出文件。按 ID 看图/OCR 会核验原始字节、MIME 和 SHA-256;PNG、JPEG、WebP 均可直接输入。CLI 需显式 `--data-root`,见 [视觉 CLI](VISION_CLI.md)。摘要还可复用 `frame_artifact_ids`。
|
|
9
|
+
|
|
10
|
+
2. **浏览器上传**
|
|
8
11
|
适合图片、音频和中小型视频。文件内容会传到运行 DeepSeek Harness 的宿主,因此不要求浏览器和宿主共享文件系统。
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
3. **会话附件**
|
|
11
14
|
适合复用当前会话中已有的图片或 Iris 生成的产物。附件引用比手动复制路径更稳定。
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
4. **宿主路径**
|
|
14
17
|
适合宿主本地的大文件,可以避免再次复制。路径必须从宿主进程的视角填写,浏览器能看到并不代表宿主也能读取。
|
|
15
18
|
|
|
16
19
|
## 环境差异
|
|
@@ -21,7 +24,7 @@ Iris 可以从浏览器上传、会话附件或宿主文件路径读取媒体。
|
|
|
21
24
|
| 原生 Windows | 上传、附件或宿主路径 | 使用 Windows 绝对路径,例如 `C:\Media\video.mp4` |
|
|
22
25
|
| WSL | 优先上传或附件 | Windows 文件在 WSL 中通常映射为 `/mnt/c/...`,不能直接使用 Windows 路径 |
|
|
23
26
|
| 容器或远程宿主 | 上传或附件 | 浏览器本地路径通常对远端进程不可见 |
|
|
24
|
-
| Android + PRoot | 优先上传 |
|
|
27
|
+
| Android + PRoot | 优先上传 | 共享存储是否可读取取决于挂载方式和 Android 权限 |
|
|
25
28
|
|
|
26
29
|
浏览器文件选择器交给 Iris 的是文件内容,而不是一个可供宿主读取的本地路径。因此,它也适用于 WSL、远程部署和 Android 文件选择器返回 `content://` URI 的情况。
|
|
27
30
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
## Iris Media for DSH 0.2.0
|
|
2
|
+
|
|
3
|
+
Iris 0.2.0 brings the media runtime to the command line and adapts the DSH plugin to DeepSeek Harness `0.2.0-rc.2`. The npm package remains `@mokuyoaxis/dsh-iris`.
|
|
4
|
+
|
|
5
|
+
### Highlights
|
|
6
|
+
|
|
7
|
+
- Run crop, image diff, video frame extraction, image/video/speech generation and transcription without DSH. Inspect, observe and export tasks and artifacts across CLI processes.
|
|
8
|
+
- Share Core Task, Attempt and Artifact facts between the CLI, DSH tools and the workbench. Core owns the explicit data root, single-writer lease, lifecycle, cancellation and orderly shutdown.
|
|
9
|
+
- Add Artifact Manifest v0 with content hashes, relationships, a rebuildable index and orphan recovery. Core records keep prompts, credentials and private URLs out of durable task history.
|
|
10
|
+
- Share task controls across the CLI, API and workbench: observe again, redeliver, cancel where supported, and retry as a new task with explicit billing confirmation. Accepted or uncertain submissions never trigger automatic resubmission.
|
|
11
|
+
- Add read-only provider/capability listings, Core Doctor and explicit stale-writer recovery. Keep old task data intact; this release does not rewrite 0.1.4 storage in place.
|
|
12
|
+
- Preserve complete DSH attachment references, bind image-capable vision routes explicitly, handle stream errors, and follow rc.2 client main-view selection.
|
|
13
|
+
- Replace the floating bubble's pixel silhouette with a curved iris SVG, keeping existing status and interaction behavior.
|
|
14
|
+
- Publish bilingual agent quickstart prompts and separate installation instructions for current and older hosts.
|
|
15
|
+
|
|
16
|
+
### Compatibility and upgrade
|
|
17
|
+
|
|
18
|
+
- Node.js: `>=22.0.0`.
|
|
19
|
+
- DSH plugin: **exactly `0.2.0-rc.2`**, including the five optional client peers. Other rc versions and DSH 0.2.0 stable have no compatibility claim.
|
|
20
|
+
- Older DSH `>=0.1.2-rc.1 <0.1.3-0` or `0.1.5-rc.1`: keep using `@mokuyoaxis/dsh-iris@0.1.4`. Its historical Node minimum remains 20.10.0; do not follow npm latest on those hosts.
|
|
21
|
+
- Headless CLI: no DSH installation required. Video frame extraction needs `ffmpeg` and `ffprobe`.
|
|
22
|
+
- In dsh-market, check the full scoped package name, displayed version and host requirements. Marketplace caches may lag npm; a visible listing is not a compatibility guarantee.
|
|
23
|
+
|
|
24
|
+
Install on DSH rc.2:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.0
|
|
28
|
+
dsh web
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
For the CLI in your own project:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install @mokuyoaxis/dsh-iris@0.2.0
|
|
35
|
+
npx dsh-iris --help
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Download the older stable package separately with `npm pack @mokuyoaxis/dsh-iris@0.1.4`.
|
|
39
|
+
|
|
40
|
+
### Verification and current limits
|
|
41
|
+
|
|
42
|
+
Release checks cover 123 test files, Ubuntu and Windows on Node 22.0.0 and current Node 22, repeated minimum-version shutdown regressions, an isolated packed-package consumer without DSH, and isolated checks against installed rc.2 host services.
|
|
43
|
+
|
|
44
|
+
These checks do not establish complete personal-profile restart/rollback, every paid-provider path, native Windows DSH usage, or every Android browser action. Detailed boundaries remain in [the rc.2 adaptation notes](https://github.com/mokuyoaxis/dsh-iris/blob/v0.2.0/docs/DSH_RC2_ADAPTATION.md) and [the migration notes](https://github.com/mokuyoaxis/dsh-iris/blob/v0.2.0/docs/DSH_CORE_MIGRATION.md). Core internals and Model Port are not a frozen public SDK. The CLI observes one step at a time; it does not start a background service. Core Task/Artifact deletion is not exposed in this release.
|
|
45
|
+
|
|
46
|
+
Generation and transcription may consume provider quota or incur charges. The repository and package naming transition will follow a second real Host Adapter, with a new npm package at that point.
|
|
47
|
+
|
|
48
|
+
Full changelog: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.4...v0.2.0
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## Iris Media for DSH 0.2.1
|
|
2
|
+
|
|
3
|
+
Iris 0.2.1 completes the OpenAI-compatible image and vision workflow: image generation → Core Artifact → vision/OCR by ID → chat editing → new Artifact. Model discovery and capability classification, per-model protocols and shared artifact management bring this workflow to both the CLI and DSH workbench. The package remains `@mokuyoaxis/dsh-iris`.
|
|
4
|
+
|
|
5
|
+
### Highlights
|
|
6
|
+
|
|
7
|
+
- Choose an image protocol per model: native DashScope, OpenAI Images, gateway chat image generation, or Responses image generation. Models within one account can use different interfaces while keeping routing, health evidence and task bindings separate.
|
|
8
|
+
- Preserve generated PNG, JPEG and WebP bytes with matching MIME types, extensions and content hashes. Fix base64 validation that could overflow the stack on large 4K image responses.
|
|
9
|
+
- Edit an existing Core image by Artifact ID through `iris_edit_image`, a workbench image card, or CLI `run image` with `source_artifact_id`. Chat image models create a new Artifact with a `derived-from` relationship; the source stays intact and remains protected by task references.
|
|
10
|
+
- Run `vision look / locate / ocr / summarize` without DSH, with explicit model selection and JSON, text or file output. Look, OCR and locate accept image Artifact IDs; summaries reuse existing frame Artifacts without the original video or another ffmpeg pass.
|
|
11
|
+
- Set account and model input budgets. Look, OCR chunks, locate and chat editing prepare sending copies when necessary, using an 8 MiB default budget while preserving Core originals. OCR reports resized inputs; locate maps normalized coordinates and EXIF orientation back to original pixels.
|
|
12
|
+
- Browse Core and legacy media together with pagination, filters, details and explicit selection across pages. Copy IDs, download a mixed-source ZIP, or preview and confirm recoverable Core deletion. Restore checks hashes and refuses conflicting destinations.
|
|
13
|
+
- Complete CLI support for S2V video, restricted HTML screenshots, provider/model/configuration management, bounded task waiting, filtered queries, bulk export and recoverable Core maintenance.
|
|
14
|
+
- Distinguish temporary 429 cooldown from confirmed quota or budget exhaustion. Amber cooldown expires into candidate eligibility without an automatic probe. Red exhaustion blocks the model across restarts until a manual model test succeeds.
|
|
15
|
+
- Use shared Text/Vision Model Ports for prompt previews and visual operations, with complete-result checks, shared deadlines and cancellation. Composer previews also gain per-operation rules, assembly without a model call and editable comparisons.
|
|
16
|
+
|
|
17
|
+
### Compatibility and upgrade
|
|
18
|
+
|
|
19
|
+
- Node.js: `>=22.0.0`.
|
|
20
|
+
- DSH plugin: **exactly `0.2.0-rc.2`**. No compatibility claim is added for other rc versions or DSH 0.2.0 stable.
|
|
21
|
+
- Older supported DSH hosts should keep `@mokuyoaxis/dsh-iris@0.1.4`.
|
|
22
|
+
- Headless CLI requires no DSH installation. Video-file frame extraction requires ffmpeg/ffprobe; HTML screenshots require an explicitly configured Chromium executable.
|
|
23
|
+
- Configuration remains v1 with optional per-model settings. No production dependency or public SDK export is added.
|
|
24
|
+
|
|
25
|
+
Install the pinned package on DSH rc.2:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.1
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or install the CLI in your project:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install @mokuyoaxis/dsh-iris@0.2.1
|
|
35
|
+
npx dsh-iris --help
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
After updating a DSH plugin, reload the backend and refresh the web client. Older supported hosts should keep the pinned 0.1.4 release.
|
|
39
|
+
|
|
40
|
+
### Verification and limits
|
|
41
|
+
|
|
42
|
+
Verification covers 163 test files, lint over 263 source files, an actual tarball installed outside the repository without DSH, and 31 isolated checks against installed DSH rc.2 services. Live checks also exercised gateway image generation, Artifact-ID vision, and chat edits delivered through DSH and the workbench while preserving source hashes.
|
|
43
|
+
|
|
44
|
+
Browser/mobile acceptance of the complete work-library flow and asynchronous restart with CLI takeover remain open. These checks are not inferred from automated tests or isolated host-service checks.
|
|
45
|
+
|
|
46
|
+
Responses image generation currently supports synchronous single-image requests. Chat image generation/editing is a gateway extension to Chat Completions, not a claim that every OpenAI-compatible chat service supports images. Editing accepts one static PNG/JPEG/WebP Artifact; masks, multiple references and conversation edit history are not implemented. Image detail, edit fidelity and output resolution depend on the selected service.
|
|
47
|
+
|
|
48
|
+
OpenAI-compatible image and vision support does not add generic video, TTS, transcription or music protocols. Core deletion is recoverable quarantine, with no permanent purge; legacy work deletion retains its existing permanent behavior. Accepted or uncertain generation never automatically resubmits. Core and Model Port internals remain outside a frozen public SDK.
|
|
49
|
+
|
|
50
|
+
### Future plans
|
|
51
|
+
|
|
52
|
+
Extend support to other protocols and add music generation, building on Core tasks, Artifacts and work-library management. These are planned follow-up features and are not included in 0.2.1; see the [roadmap](https://github.com/mokuyoaxis/dsh-iris/blob/v0.2.1/docs/ROADMAP.md#后续功能方向).
|
|
53
|
+
|
|
54
|
+
Full scope: [CHANGELOG](https://github.com/mokuyoaxis/dsh-iris/blob/v0.2.1/CHANGELOG.md), [CLI management](https://github.com/mokuyoaxis/dsh-iris/blob/v0.2.1/docs/CLI_MANAGEMENT.md), [workbench artifacts](https://github.com/mokuyoaxis/dsh-iris/blob/v0.2.1/docs/WORKBENCH_ARTIFACTS.md), and [roadmap](https://github.com/mokuyoaxis/dsh-iris/blob/v0.2.1/docs/ROADMAP.md).
|
|
55
|
+
|
|
56
|
+
Full changelog: [v0.2.0…v0.2.1](https://github.com/mokuyoaxis/dsh-iris/compare/v0.2.0...v0.2.1).
|