@mokuyoaxis/dsh-iris 0.2.7 → 0.3.0-alpha.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 +81 -1
- package/README.en.md +103 -312
- package/README.md +100 -310
- package/bin/dsh-iris.js +333 -65
- package/docs/AGENT_CORE_QUICKSTART.md +64 -0
- package/docs/AGENT_QUICKSTART.md +2 -0
- package/docs/ARCHITECTURE.md +13 -3
- package/docs/AUDIO_FLOWS.md +71 -0
- package/docs/CONTACT_SHEET.md +62 -0
- package/docs/CORE_CONNECTIONS.md +99 -0
- package/docs/CORE_QUICKSTART.md +108 -0
- package/docs/CORE_RUNTIME_CONTRACT.md +7 -2
- package/docs/CORE_SERVICE.md +97 -0
- package/docs/CORE_SKILLS.md +35 -3
- package/docs/DSH_COMPATIBILITY.md +10 -0
- package/docs/DSH_RC2_ADAPTATION.md +1 -1
- package/docs/DSH_RUNTIME.md +6 -2
- package/docs/HEADLESS_CLI.md +2 -2
- package/docs/IMAGE_FLOW.md +4 -0
- package/docs/IMAGE_GENERATION.md +127 -0
- package/docs/LOCAL_API.md +4 -2
- package/docs/LOCAL_API_CONTRACT.md +39 -14
- package/docs/LOCAL_CREATION.md +7 -1
- package/docs/LOCAL_OPERATIONS.md +46 -0
- package/docs/LOCAL_SELECTION.md +57 -0
- package/docs/LOCAL_WEB.md +201 -0
- package/docs/MCP.md +191 -0
- package/docs/MUSIC.md +2 -0
- package/docs/PANEL_EXTENSIONS.md +64 -0
- package/docs/PLUGINS.md +189 -0
- package/docs/PLUGIN_STARTUP.md +100 -0
- package/docs/PROVIDER_ADAPTER_CONTRACT.md +1 -1
- package/docs/PROVIDER_EXTENSIONS.md +78 -0
- package/docs/PROVIDER_HEALTH.md +3 -1
- package/docs/PROVIDER_SETTINGS.md +85 -0
- package/docs/PROVIDER_SUBMISSION_CONTRACT.md +6 -0
- package/docs/ROADMAP.md +17 -7
- package/docs/VISION_CLI.md +1 -1
- package/docs/WEB_PROTOTYPE.md +21 -6
- package/docs/WEB_RECOVERY.md +46 -0
- package/docs/WORKBENCH_LOGIN.md +63 -0
- package/docs/assets/screenshots/core-connections-preview.webp +0 -0
- package/docs/assets/screenshots/core-model-pools-preview.webp +0 -0
- package/docs/assets/screenshots/core-overview-preview.webp +0 -0
- package/docs/assets/screenshots/core-spectrum-preview.webp +0 -0
- package/docs/assets/screenshots/core-studio-dark-preview.webp +0 -0
- package/docs/assets/screenshots/core-studio-mobile-preview.webp +0 -0
- package/docs/assets/screenshots/core-studio-preview.webp +0 -0
- package/docs/releases/0.3.0-alpha.1.md +51 -0
- package/docs/screenshots.md +41 -1
- package/lib/actions.js +53 -2
- package/lib/adapters.js +20 -11
- package/lib/application-runtime.js +34 -7
- package/lib/audio-flow-input.js +37 -0
- package/lib/client.js +346 -53
- package/lib/comfyui-adapter.js +94 -0
- package/lib/comfyui-client.js +51 -0
- package/lib/comfyui-inspection.js +73 -0
- package/lib/comfyui-workflow.js +94 -0
- package/lib/config.js +36 -1
- package/lib/configured-image-runtime.js +50 -0
- package/lib/connection-skill.js +89 -0
- package/lib/connection-template.js +23 -0
- package/lib/core-artifact-store.js +16 -2
- package/lib/core-bridge-selection.js +31 -0
- package/lib/core-bridge-tools.js +83 -0
- package/lib/core-capability-catalog.js +182 -0
- package/lib/core-connection-diagnostics.js +49 -0
- package/lib/core-connection-store.js +277 -0
- package/lib/core-connections.js +225 -0
- package/lib/core-maintenance.js +9 -3
- package/lib/core-runtime.js +2 -1
- package/lib/core-service-client.js +170 -0
- package/lib/core-tasks.js +29 -12
- package/lib/core-writer-lease.js +16 -0
- package/lib/creation-request-store.js +38 -64
- package/lib/dsh-host-adapter.js +4 -1
- package/lib/dsh-service-bridge.js +66 -0
- package/lib/execution-ownership.js +43 -0
- package/lib/flow-store.js +105 -10
- package/lib/generation-input.js +10 -1
- package/lib/headless-vision.js +7 -7
- package/lib/image-edit-input.js +1 -1
- package/lib/image-flow.js +73 -29
- package/lib/index.js +37 -17
- package/lib/local-api-projection.js +10 -5
- package/lib/local-api-token-directory.js +31 -0
- package/lib/local-api.js +769 -67
- package/lib/local-creation.js +89 -24
- package/lib/local-operations.js +36 -0
- package/lib/local-request-root.js +86 -0
- package/lib/local-web-assets.js +37 -0
- package/lib/mcp-bridge.js +58 -0
- package/lib/mcp-check.js +26 -0
- package/lib/mcp-config.js +42 -0
- package/lib/mcp-delivery.js +46 -0
- package/lib/mcp-http.js +101 -0
- package/lib/mcp-server.js +47 -0
- package/lib/model-directory-service.js +16 -6
- package/lib/model-directory.js +3 -3
- package/lib/models.js +2 -2
- package/lib/music-transport.js +2 -1
- package/lib/operation-runner.js +236 -0
- package/lib/operation-store.js +216 -0
- package/lib/panel-extension.js +36 -0
- package/lib/plugin-contract.js +194 -0
- package/lib/plugin-execution.js +51 -0
- package/lib/plugin-launch.js +86 -0
- package/lib/plugin-operation-store.js +101 -0
- package/lib/plugin-operations.js +28 -0
- package/lib/plugin-registry.js +109 -0
- package/lib/plugin-selection.js +15 -0
- package/lib/plugin-source-image.js +5 -0
- package/lib/plugin-web-assets.js +54 -0
- package/lib/plugins.d.ts +288 -0
- package/lib/plugins.js +58 -0
- package/lib/provider-adapter.js +5 -1
- package/lib/provider-adapters.js +56 -18
- package/lib/provider-catalog.js +40 -29
- package/lib/provider-config-service.js +105 -23
- package/lib/provider-diagnostics.js +56 -0
- package/lib/provider-extensions.js +29 -0
- package/lib/provider-health.js +8 -1
- package/lib/provider-monitor.js +79 -0
- package/lib/provider-protocol.js +70 -20
- package/lib/provider-registry.js +118 -0
- package/lib/provider-response.js +28 -0
- package/lib/provider-settings.js +134 -0
- package/lib/provider-task-runner.js +22 -9
- package/lib/skill-installation.js +23 -11
- package/lib/vision-model-routing.js +3 -0
- package/lib/web/app.js +642 -0
- package/lib/web/appearance.js +111 -0
- package/lib/web/comfyui.js +146 -0
- package/lib/web/connections.js +377 -0
- package/lib/web/creation.js +355 -0
- package/lib/web/flow-view.js +33 -0
- package/lib/web/gallery.js +132 -0
- package/lib/web/index.html +291 -0
- package/lib/web/media-client.js +204 -0
- package/lib/web/plugin-panel.js +221 -0
- package/lib/web/plugin-surface.css +17 -0
- package/lib/web/providers.js +492 -0
- package/lib/web/recovery.js +105 -0
- package/lib/web/startup.js +18 -0
- package/lib/web/styles.css +518 -0
- package/lib/web/transport.js +96 -0
- package/lib/web/workbench-login.js +165 -0
- package/lib/workbench-auth-cli.js +47 -0
- package/lib/workbench-auth.js +200 -0
- package/package.json +20 -5
- package/plugins/contact-sheet/index.d.mts +4 -0
- package/plugins/contact-sheet/index.mjs +33 -0
- package/plugins/contact-sheet/web/board.css +14 -0
- package/plugins/contact-sheet/web/board.mjs +93 -0
- package/skills/iris-core/SKILL.md +8 -4
- package/skills/iris-core/references/cli.md +2 -2
- package/skills/iris-core/references/comfyui.md +69 -0
- package/skills/iris-core/references/tasks.md +2 -0
- package/user_guide.md +5 -1
package/README.en.md
CHANGED
|
@@ -3,386 +3,177 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<img src="docs/assets/logo/iris-interim-flower.png" width="
|
|
6
|
+
<img src="docs/assets/logo/iris-interim-flower.png" width="240" alt="Iris line-art flower (interim mark)">
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
|
-
<h1 align="center">Iris
|
|
9
|
+
<h1 align="center">Iris</h1>
|
|
10
10
|
|
|
11
|
-
<p align="center"><strong>A multimodal
|
|
11
|
+
<p align="center"><strong>A multimodal workspace for your Agent.</strong></p>
|
|
12
12
|
|
|
13
13
|
<p align="center">
|
|
14
|
-
<a href="#deepseek-harness-adaptation"><img alt="DeepSeek Harness compatible" src="https://img.shields.io/badge/DeepSeek%20Harness-compatible-4D6BFE.svg?style=flat-square"></a>
|
|
15
14
|
<a href="https://www.npmjs.com/package/@mokuyoaxis/dsh-iris"><img alt="npm version" src="https://img.shields.io/npm/v/%40mokuyoaxis%2Fdsh-iris.svg?style=flat-square"></a>
|
|
16
15
|
<a href="https://nodejs.org/"><img alt="Node.js 22 or newer" src="https://img.shields.io/badge/Node.js-%3E%3D22-339933.svg?style=flat-square&logo=nodedotjs&logoColor=white"></a>
|
|
17
16
|
<a href="https://github.com/mokuyoaxis/dsh-iris/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/mokuyoaxis/dsh-iris/actions/workflows/ci.yml/badge.svg"></a>
|
|
18
17
|
<a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-1689FF.svg?style=flat-square"></a>
|
|
19
18
|
</p>
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
Iris connects media services and keeps creative work, tasks and outputs together. Agents can generate, edit, inspect and reuse media through a standalone CLI, a native DSH plugin, or the 0.3 alpha Core workbench and generic MCP. Core owns execution and storage; users choose what each client can access.
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
**Release channels: `0.3.0-alpha.1` is the first 0.3 prerelease, available through npm `alpha`; stable `latest` remains `0.2.7`.** The standalone Web workbench, production MCP, ComfyUI and Core plugins require the alpha package. Stable 0.2.7 does not include these new entry points. Alpha contracts can change; see the [release notes](docs/releases/0.3.0-alpha.1.md) for scope.
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
<p align="center">
|
|
32
|
-
<img src="docs/assets/examples/iris-flower-generated.webp" width="720" alt="A violet-blue iris generated from a prompt optimized by Iris">
|
|
33
|
-
</p>
|
|
24
|
+
| What you need | Entry | Availability |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| Media tools and prompt refinement inside DSH | [DSH plugin](#dsh-plugin-027) | Published 0.2.7 |
|
|
27
|
+
| Media generation, task inspection and export in a terminal | [Standalone CLI](#standalone-cli-027) | Published 0.2.7; no DSH required |
|
|
28
|
+
| A dedicated UI for models, creation and works | [Core quickstart](docs/CORE_QUICKSTART.md) | 0.3.0-alpha.1 / current source |
|
|
29
|
+
| Other Agents sharing the same media workspace | [MCP](docs/MCP.md) · [Agent guide](docs/AGENT_CORE_QUICKSTART.md) | 0.3.0-alpha.1 / current source |
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
## Workbench preview
|
|
36
32
|
|
|
37
|
-
|
|
33
|
+
A white interface with subtle iris colors, light/dark themes, local backgrounds and mobile layouts. Advanced parameters and details start collapsed.
|
|
38
34
|
|
|
39
|
-
|
|
35
|
+

|
|
40
36
|
|
|
41
|
-
|
|
|
37
|
+
| Capability overview | Function model pools |
|
|
42
38
|
|---|---|
|
|
43
|
-
| 
|
|
50
|
-
|
|
51
|
-
The project is at an early stage; interfaces and configuration formats may still change between releases.
|
|
52
|
-
|
|
53
|
-
This document describes **Iris 0.2.7**. Pin the version when installing or upgrading, and check the host compatibility range below first.
|
|
54
|
-
|
|
55
|
-
Iris 0.2.7 provides a DSH plugin and a headless CLI sharing tasks, artifacts and model routing. This release fixes host screenshots and adds persistent image workflows, a local API, and explicit Core Skill installation. Connection reuse, function pools, directory synchronization, and existing media features remain available. Core internals have not been frozen as a public SDK.
|
|
39
|
+
|  |  |
|
|
40
|
+
| **Health spectrum and connection checks** | **MCP capabilities and operation permissions** |
|
|
41
|
+
|  |  |
|
|
56
42
|
|
|
57
|
-
|
|
43
|
+
> Real UI from the current source, using an isolated demo workspace and works from the earlier controlled replay. This capture session makes no paid-model or ComfyUI GPU calls. Only built-in themes are shown, without a personal background. See the [full gallery](docs/screenshots.md) for mobile, dark mode and provenance.
|
|
58
44
|
|
|
59
|
-
|
|
45
|
+
## What Iris provides
|
|
60
46
|
|
|
61
|
-
|
|
47
|
+
- **Media and vision:** image generation/editing, video, music, speech, transcription and visual understanding, plus local crop, difference, video-frame and HTML screenshot tools. Entry-point coverage differs; see below.
|
|
48
|
+
- **Per-function model pools:** automatic selection, a manually ordered list, or disabled. Automatic pools use confirmed, eligible models in stable order. Switching requires known non-acceptance; existing tasks keep their original binding.
|
|
49
|
+
- **Persistent creative work:** Core stores tasks, artifacts and fixed flows. Inspect the original request, recover outputs, select an image and continue using it. Unknown acceptance never triggers automatic regeneration.
|
|
50
|
+
- **User-selected Agent access:** MCP grants select media, operation scopes and tools. stdio and Streamable HTTP share Core, with generic configuration and explicit client templates.
|
|
51
|
+
- **Optional plugins:** Providers, business operations, pages, settings forms and artifact previews can be contributed by plugins. Core validates and assembles them; users grant access. The bundled contact sheet demonstrates a complete persistent business.
|
|
62
52
|
|
|
63
|
-
|
|
53
|
+
### Current entry-point coverage
|
|
64
54
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
- **Directories and checks:** refresh directories before automatic requests and exclude confirmed missing models from later requests. Capability checks and advanced sections start collapsed; paid probes require separate confirmation.
|
|
73
|
-
- **Older and transitional hosts:** the twelve exact versions in the matrix share current features and use the same manifest, client peer and Doctor compatibility boundary.
|
|
74
|
-
|
|
75
|
-
**Upgrades preserve your allowed scope:** existing lists and missing or empty assignments do not become automatic. New directory entries still require confirmation of their uses; absence alone does not prove a model unavailable. Explicitly add host vision or enable it in the automatic vision pool. Existing tasks retain their bindings. See [function pools](docs/FUNCTION_MODEL_POOLS.md).
|
|
76
|
-
|
|
77
|
-
See the [0.2.7 release notes](docs/releases/0.2.7.md) for upgrade steps and validation limits, and the [CHANGELOG](CHANGELOG.md). Older-host support was restored in [0.2.5](docs/releases/0.2.5.md); image import arrived in [0.2.4](docs/releases/0.2.4.md), and music and Skills in [0.2.3](docs/releases/0.2.3.md).
|
|
78
|
-
|
|
79
|
-
Future work includes additional protocol adapters and creative workflows; see the [roadmap](docs/ROADMAP.md#后续功能方向).
|
|
55
|
+
| Capability | DSH / standalone CLI (alpha) | Core Web / MCP (alpha) |
|
|
56
|
+
|---|---|---|
|
|
57
|
+
| Image generation, import and editing | Available | Available; text-to-image requires a new generation-capable root |
|
|
58
|
+
| Speech and transcription | Available | Available in a new v3 root |
|
|
59
|
+
| Video, music and vision | Available, depending on service and local dependencies | Configurable uses; creation entries still pending |
|
|
60
|
+
| ComfyUI workflows and exposed parameters | Added in alpha; absent from stable 0.2.7 | Implemented; live GPU inference remains unverified |
|
|
61
|
+
| Contact-sheet plugin | Outside 0.2.7 | Available when explicitly enabled |
|
|
80
62
|
|
|
81
|
-
|
|
63
|
+
“Available” means an implemented entry, requiring a supported protocol, model and grant. A listed model, eligible candidate, reachable connection and successful media test are different facts. Speech and ComfyUI development checks include controlled services; they do not establish compatibility with arbitrary upstreams.
|
|
82
64
|
|
|
83
|
-
|
|
84
|
-
|---|---|---|
|
|
85
|
-
| 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 |
|
|
86
|
-
| Entry point | Choose a pinned release under "Quickest start" below | `dsh-iris run ...` — see [Headless CLI](docs/HEADLESS_CLI.md) |
|
|
87
|
-
| Data location | `$DSH_HOME/iris/v1/` (Core data root `core-v0`) | Any absolute path passed via `--data-root` |
|
|
88
|
-
| Automatic observation | Yes (bounded DSH host ticks + restart takeover) | Explicit `task observe`; 0.2.2 also offers bounded `task wait` |
|
|
89
|
-
| Dependencies | A DSH version in the compatibility matrix, and Node.js ≥ 22 meeting host requirements | Node.js ≥ 22 and `sharp` (`ffmpeg` and `ffprobe` for video frames) |
|
|
65
|
+
## Quickstart
|
|
90
66
|
|
|
91
|
-
|
|
67
|
+
### Core workbench (0.3 alpha)
|
|
92
68
|
|
|
93
|
-
|
|
69
|
+
Pin the prerelease in your own project, then choose a **new private location**. Existing workspaces are not migrated:
|
|
94
70
|
|
|
95
|
-
|
|
71
|
+
```bash
|
|
72
|
+
npm install @mokuyoaxis/dsh-iris@0.3.0-alpha.1
|
|
73
|
+
|
|
74
|
+
IRIS_PREVIEW="$HOME/.iris/preview"
|
|
75
|
+
mkdir -p "$IRIS_PREVIEW"
|
|
76
|
+
npx dsh-iris flow init --data-root "$IRIS_PREVIEW/core"
|
|
77
|
+
npx dsh-iris execution init --audio --data-root "$IRIS_PREVIEW/core"
|
|
78
|
+
npx dsh-iris config init --provider-config "$IRIS_PREVIEW/providers.json"
|
|
79
|
+
|
|
80
|
+
npx dsh-iris web serve \
|
|
81
|
+
--data-root "$IRIS_PREVIEW/core" --auth-store "$IRIS_PREVIEW/auth" \
|
|
82
|
+
--provider-config "$IRIS_PREVIEW/providers.json" \
|
|
83
|
+
--allow-provider-management --allow-execution --allow-selection \
|
|
84
|
+
--connection-store "$IRIS_PREVIEW/connections" \
|
|
85
|
+
--allow-connection-management --allow-mcp --port 3182
|
|
86
|
+
```
|
|
96
87
|
|
|
97
|
-
For a
|
|
88
|
+
For a source checkout, install locked dependencies with `npm ci` and replace `npx dsh-iris` with `node bin/dsh-iris.js`. Use `@mokuyoaxis/dsh-iris@alpha` to follow prereleases, or keep the exact version for a reproducible setup.
|
|
98
89
|
|
|
99
|
-
|
|
90
|
+
Open the printed **`loginUrl` once to set an access password**, then use the ordinary address. Remembered devices survive refreshes and normal restarts; sign back in with the same password after logout. Mobile browsers do not need access to Termux files.
|
|
100
91
|
|
|
101
|
-
|
|
92
|
+
In **模型服务** (Model services), add a connection, read or enter exact models and confirm their uses. Choose a policy under **功能模型池** (Function pools), then generate in **创作** (Studio). Starting the service, editing configuration and reading a directory do not generate media. Clicking Generate calls the provider and may incur charges.
|
|
102
93
|
|
|
103
|
-
|
|
94
|
+
Under **客户端** (Clients), create a connection, choose capabilities and permissions, then generate and merge the appropriate MCP configuration into your client. **Keep Core running.** stdio starts a bridge; HTTP uses the same service's `/mcp`. Templates do not install clients or grant additional access. Keep exported connection configuration private.
|
|
104
95
|
|
|
105
|
-
|
|
106
|
-
|---|---|---|
|
|
107
|
-
| Exact 0.1.2 / 0.1.5 / 0.1.7 / 0.2 versions in the matrix | `0.2.7` | Pinned npm version |
|
|
108
|
-
| Versions outside the matrix | Not yet validated | Check the actual host interfaces |
|
|
96
|
+
See the [Core quickstart](docs/CORE_QUICKSTART.md) for login, recovery, switch descriptions and an Agent example. Enable plugins separately through an [explicit startup selection](docs/PLUGIN_STARTUP.md). Iris does not scan user disks or install plugin code automatically.
|
|
109
97
|
|
|
110
|
-
### DSH plugin
|
|
98
|
+
### DSH plugin (0.2.7)
|
|
111
99
|
|
|
112
|
-
|
|
100
|
+
Check `dsh --version`, Node.js ≥22 and `pnpm` on PATH. Iris 0.2.7 declares the 12 exact DSH versions in its [compatibility matrix](docs/DSH_COMPATIBILITY.md); other versions need separate verification.
|
|
113
101
|
|
|
114
102
|
```bash
|
|
115
103
|
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.2.7
|
|
116
104
|
dsh web
|
|
117
105
|
```
|
|
118
106
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
### Standalone CLI: install 0.2.7
|
|
122
|
-
|
|
123
|
-
Install in your own project without DSH:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
npm install @mokuyoaxis/dsh-iris@0.2.7
|
|
127
|
-
npx dsh-iris --help
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Download the package separately with `npm pack @mokuyoaxis/dsh-iris@0.2.7`. Users who need historical Iris0.1.4 can still pin it; see the matrix for its DSH/Node requirements. It lacks the current Core media CLI and later features.
|
|
131
|
-
|
|
132
|
-
### Choosing a version in dsh-market
|
|
133
|
-
|
|
134
|
-
The marketplace entry should resolve to the full package name `@mokuyoaxis/dsh-iris`. Check its Iris version and your local `dsh --version` against the [compatibility matrix](docs/DSH_COMPATIBILITY.md) for that release. Catalog and npm data may be cached. The actual package's top-level `engines.dsh`, Node requirement, and client peers define its requirements; a visible listing does not imply support for every DSH release.
|
|
135
|
-
|
|
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.
|
|
107
|
+
Under Settings → Iris Workbench, reference an existing DSH API-key connection or add a service. Choose its protocol, approve model uses and select pool policies. Native DSH mode uses host routes, attachments and lifecycle without a separate Core Web service; it provides 17 Agent tools and the 🫧 prompt-refinement entry.
|
|
137
108
|
|
|
138
|
-
|
|
109
|
+
These commands retain the stable version. To use additions such as the alpha ComfyUI UI, explicitly install `dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.3.0-alpha.1`. The exact supported host versions do not expand.
|
|
139
110
|
|
|
140
|
-
|
|
111
|
+
After configuration, a minimal request is:
|
|
141
112
|
|
|
142
113
|
```text
|
|
143
|
-
Use iris_draw_image
|
|
144
|
-
|
|
145
|
-
Summarize /absolute/path/demo.mp4 with Iris, then turn the summary into speech.
|
|
114
|
+
Use iris_draw_image to draw a white cat sitting beside a blue window.
|
|
115
|
+
Use Iris to generate retro-rock background music and save it as an audio artifact.
|
|
146
116
|
```
|
|
147
117
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
For a copyable installation and usage prompt, see [Agent quickstart prompt](docs/AGENT_QUICKSTART.md).
|
|
151
|
-
|
|
152
|
-
## Feature overview
|
|
153
|
-
|
|
154
|
-

|
|
155
|
-
|
|
156
|
-
- Image generation, text-to-video, image-to-video, and S2V digital-human video
|
|
157
|
-
- Music generation, text-to-speech, and audio transcription
|
|
158
|
-
- Visual question answering, long-image OCR, target grounding, cropping, and pixel-diff analysis
|
|
159
|
-
- Video frame extraction and multimodal video summarization
|
|
160
|
-
- Asynchronous task tracking, restart recovery, and token-authorized media playback
|
|
161
|
-
- An independent work library that survives task-history cleanup and can re-index older `outputs/`
|
|
162
|
-
- A multi-provider model pool with per `provider + model` capability assignment
|
|
163
|
-
- Three file sources: browser upload, session attachments, and host paths
|
|
164
|
-
- Workbench-independent composer prompt optimization with current-session and JSON-configured fixed model routing
|
|
165
|
-
|
|
166
|
-
## Prerequisites
|
|
167
|
-
|
|
168
|
-
- A Node.js version that satisfies your DeepSeek Harness release's requirement; Iris 0.2.x requires at least 22.0.0, while the published npm 0.1.4 historically requires 20.10.0
|
|
169
|
-
- A working DeepSeek Harness environment with `pnpm` on the PATH
|
|
170
|
-
- At least one supported media or vision provider
|
|
171
|
-
- `ffmpeg` and `ffprobe` for extracting frames or summarizing a video file; summaries of existing Core frames need neither
|
|
172
|
-
|
|
173
|
-
After installing the plugin, add a provider in the Iris workbench and assign models to the capabilities you need. Provider keys are kept in Iris's host-side configuration; on POSIX systems, Iris's own directories and files are tightened to `0700` and `0600` respectively, and neither the UI nor the API ever returns full keys. On Windows, file modes are not equivalent to ACLs — keep relying on your user directory and system account permissions.
|
|
174
|
-
|
|
175
|
-
## DeepSeek Harness adaptation
|
|
176
|
-
|
|
177
|
-
dsh-iris remains a native DSH plugin. Iris 0.2.7 registers 17 agent tools, including import, editing, and music, and uses host routing, attachments, models, 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.
|
|
178
|
-
|
|
179
|
-
Save an uploaded or local image as a persistent Artifact for viewing, editing and export; see [image import](docs/IMAGE_IMPORT.md) (Chinese).
|
|
180
|
-
|
|
181
|
-
| Iris version | DSH range | Verification |
|
|
182
|
-
|---|---|---|
|
|
183
|
-
| Published stable `0.1.4` | `>=0.1.2-rc.1 <0.1.3-0` | Historical clean and daily Web profiles on Linux ARM64 |
|
|
184
|
-
| Published stable `0.1.4` | `0.1.5-rc.1` | Historical daily Android/Linux profile checks |
|
|
185
|
-
| `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.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
|
-
| `0.2.3` | Only `0.2.0-rc.2` | Adds music and a third skill; check actual loading with Host Doctor after upgrading |
|
|
188
|
-
| `0.2.4` | `0.2.0-rc.2` or `0.2.1-alpha.4` | 17 tools / 3 skills; actual SDK, loader, and client slot isolation checks; full browser and hot reload checks remain separate |
|
|
189
|
-
| `0.2.5` | 12 exact versions across the 0.1.2 / 0.1.5 / 0.1.7 / 0.2 lines; see the matrix | Official SDK isolation checks including Music and Qwen dispatch; old profiles also load the actual installed package |
|
|
190
|
-
| `0.2.7` | Retains the 12 exact versions declared in 0.2.6 | Screenshot fixes, instance runtime, image workflows, local API, and Core Skill; standalone Web remains a source-only demo |
|
|
191
|
-
| `0.2.6` | Retains the 12 exact versions declared in 0.2.5 | Adds connection reuse, function pools and directories; connection reuse requires public host services; see that release's notes |
|
|
192
|
-
|
|
193
|
-
See the [compatibility matrix](docs/DSH_COMPATIBILITY.md) for the current scope and [rc.2 adaptation notes](docs/DSH_RC2_ADAPTATION.md) for historical changes. npm 0.1.4 does not contain these later adaptations.
|
|
194
|
-
|
|
195
|
-
Version 0.2.5 adapts to host API capabilities and declares support for the exact versions tested. Other versions need separate validation. Checks cover loading, tools, Skills, routes and client slots; full browser interaction and old-data upgrades remain separate. Doctor identifies the boundaries it can observe at runtime.
|
|
196
|
-
|
|
197
|
-
Core and the DSH Adapter are being separated: DSH keeps loading the same npm package, while the Adapter maps host capabilities into Core. A DSH API change should require an Adapter or client-bridge fix, not a rewrite of Task or Artifact semantics. Version 0.2.0 includes the headless CLI. The `dsh` prefix will be removed after a second real Host Adapter is implemented and accepted, with a new npm package at that point; see the [roadmap](docs/ROADMAP.md).
|
|
198
|
-
|
|
199
|
-
## Tools
|
|
200
|
-
|
|
201
|
-
### Generation, speech, and tasks
|
|
202
|
-
|
|
203
|
-
| Tool | Purpose |
|
|
204
|
-
|---|---|
|
|
205
|
-
| `iris_draw_image` | Generate images from a prompt |
|
|
206
|
-
| `iris_import_image` | Save a local or session image as a persistent Artifact for later operations |
|
|
207
|
-
| `iris_edit_image` | Edit a source Artifact with a chat image model or supported native Qwen edit model, preserving provenance |
|
|
208
|
-
| `iris_generate_video` | Text-to-video, image-to-video, or S2V digital-human video |
|
|
209
|
-
| `iris_generate_music` | Generate music from a description and save playable, downloadable audio |
|
|
210
|
-
| `iris_speak_text` | Synthesize speech from text |
|
|
211
|
-
| `iris_transcribe_audio` | Transcribe audio to text |
|
|
212
|
-
| `iris_task_status` | Check the status and outputs of one task or the recent tasks |
|
|
213
|
-
|
|
214
|
-
### Vision and image processing
|
|
215
|
-
|
|
216
|
-
| Tool | Purpose |
|
|
217
|
-
|---|---|
|
|
218
|
-
| `iris_look_at_image` | Ask a question about an image and get a vision model's answer |
|
|
219
|
-
| `iris_relook_attachment` | Re-inspect an image attachment from the session with a new question |
|
|
220
|
-
| `iris_long_ocr` | Recognize text in tall screenshots or long images, chunk by chunk |
|
|
221
|
-
| `iris_locate` | Ground a target in an image and return pixel coordinates |
|
|
222
|
-
| `iris_crop` | Crop an image by pixel region |
|
|
223
|
-
| `iris_pixel_diff` | Compare two images and produce diff statistics and a heatmap |
|
|
224
|
-
| `iris_html_screenshot` | Render an HTML string to a screenshot in a restricted environment |
|
|
225
|
-
|
|
226
|
-
### Video processing
|
|
227
|
-
|
|
228
|
-
| Tool | Purpose |
|
|
229
|
-
|---|---|
|
|
230
|
-
| `iris_video_frames` | Extract frames evenly from a video |
|
|
231
|
-
| `iris_media_summarize` | Summarize a video from sampled frames plus optional audio transcription |
|
|
232
|
-
|
|
233
|
-
## File inputs
|
|
234
|
-
|
|
235
|
-
Look, locate and OCR accept a local path, session attachment or Core image `artifact_id`; summaries can reuse `frame_artifact_ids`. Artifact inputs are read-only and checked against their MIME type and content hash. PNG/JPEG/WebP inputs need no manual JPEG conversion. See [vision CLI](docs/VISION_CLI.md).
|
|
236
|
-
|
|
237
|
-
Look, OCR chunks, locate and chat editing prepare sending copies using account/model budgets, with an 8 MiB default. Core originals, downloaded dimensions and hashes stay intact. OCR reports resizing and small-text risk; locate returns source-pixel coordinates. See [input budgets](docs/CLI_MANAGEMENT.md#看图输入预算).
|
|
238
|
-
|
|
239
|
-
Image editing uses a source Artifact ID and saves a linked new image through a chat image model or, in 0.2.4, supported native DashScope Qwen models. See [Artifact editing](docs/CLI_MANAGEMENT.md#artifact-聊天改图) and [workbench management](docs/WORKBENCH_ARTIFACTS.md) for supported models, filtering, selection, downloads and recovery.
|
|
240
|
-
|
|
241
|
-
Iris accepts three file sources, in the recommended order:
|
|
242
|
-
|
|
243
|
-
1. **Browser upload** — best for local files and cross-environment access; 64 MB per file.
|
|
244
|
-
2. **Session attachments** — best for reusing media already uploaded or generated in the current session.
|
|
245
|
-
3. **Host paths** — best for large files the host can read directly. Enter the path as seen by the host process; it is not always the path on the machine your browser runs on.
|
|
246
|
-
|
|
247
|
-
Uploads are stored under `$DSH_HOME/iris/v1/uploads/` and kept for 7 days by default. For path-picking advice on different platforms, see [File access across environments](docs/file-access-across-environments.md) (Chinese).
|
|
248
|
-
|
|
249
|
-
## Conversation prompt optimization
|
|
250
|
-
|
|
251
|
-
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).
|
|
118
|
+
See the [user guide](user_guide.md) and [release-oriented Agent prompt](docs/AGENT_QUICKSTART.md). Updates require a normal plugin backend reload and client refresh; an Agent should not restart unrelated work.
|
|
252
119
|
|
|
253
|
-
|
|
120
|
+
### Standalone CLI (0.2.7)
|
|
254
121
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
## Model assignment and failover
|
|
258
|
-
|
|
259
|
-
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`.
|
|
260
|
-
|
|
261
|
-
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.
|
|
262
|
-
|
|
263
|
-
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, Core may only resume observation or delivery. The music entry point separately supports configured, bounded HTTP 502 retries as linked new tasks; these may consume extra quota and can be disabled with `retry_502: 0`. See [Music](docs/MUSIC.md).
|
|
264
|
-
|
|
265
|
-
The workbench lists paused observation, unknown acceptance/outcome, and successful generation with failed delivery under “Needs attention.” Re-observe never submits; re-deliver never regenerates; acknowledge/restore only changes the local reminder queue; only an explicitly confirmed informed retry creates a linked new task and may incur duplicate charges. Creating that task archives the original reminder while preserving its unknown facts and audit link. See [Task semantics](docs/TASK_SEMANTICS.md), [Architecture](docs/ARCHITECTURE.md), [Security](docs/SECURITY.md), and the [Fault-injection matrix](docs/FAULT_INJECTION.md).
|
|
266
|
-
|
|
267
|
-

|
|
268
|
-
|
|
269
|
-
Transcription is a separate `transcribe` capability and does not consume the TTS or vision model configuration.
|
|
270
|
-
|
|
271
|
-
## Capability health and model verification
|
|
272
|
-
|
|
273
|
-
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.
|
|
274
|
-
|
|
275
|
-
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).
|
|
276
|
-
|
|
277
|
-
## Offline diagnostics
|
|
278
|
-
|
|
279
|
-
No DSH installation or running host is required, and no provider request is sent:
|
|
122
|
+
Install in your own project; DSH is not required:
|
|
280
123
|
|
|
281
124
|
```bash
|
|
282
|
-
|
|
283
|
-
npx
|
|
125
|
+
npm install @mokuyoaxis/dsh-iris@0.2.7
|
|
126
|
+
npx dsh-iris --help
|
|
284
127
|
```
|
|
285
128
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
A running DSH instance also provides a “Host diagnostics” card and `/iris/api/doctor` JSON protected by Iris's Host and browser-origin guards. These guards do not authenticate users. Doctor checks the host version, plugin, 17 tools and three skills, four route groups, host capabilities, client version, and four UI slots. It reads safe registration evidence without calling Browser, models, or providers. See [Host Doctor](docs/HOST_DOCTOR.md).
|
|
289
|
-
|
|
290
|
-
## Composed workflow example
|
|
291
|
-
|
|
292
|
-
Three bundled skills guide single media operations, creative workflows, and UI acceptance. The existing "look → redraw → self-check" example below is one optional route: review follows the requested goal, useful outputs remain available, and music is an optional asset step.
|
|
293
|
-
|
|
294
|
-

|
|
295
|
-
|
|
296
|
-
The repository also carries SVG versions and editable drawio sources under [`docs/assets/diagrams/`](docs/assets/diagrams/); the npm package ships only the PNGs shown above. Diagram labels are currently in Chinese.
|
|
297
|
-
|
|
298
|
-
## Data and tasks
|
|
299
|
-
|
|
300
|
-
Runtime data lives under `$DSH_HOME/iris/v1/` by default:
|
|
301
|
-
|
|
302
|
-
| Location | Contents |
|
|
303
|
-
|---|---|
|
|
304
|
-
| `providers.json` | Providers, capability assignments, and redacted health evidence; file mode 0600 |
|
|
305
|
-
| `prompt-optimizer.json` | Imported optimizer prompt, target templates, model route, and generation settings; file mode 0600 |
|
|
306
|
-
| `core-v0/` | New tasks, attempts, Artifact objects, manifests and recoverable quarantine transactions |
|
|
307
|
-
| `tasks.json` | Legacy task metadata and attachment indexes; up to 500 records |
|
|
308
|
-
| `artifacts.json` | Legacy work-library index and random access tokens; no prompt, provider, or task relationship |
|
|
309
|
-
| `outputs/` | Legacy generated and processed media |
|
|
310
|
-
| `uploads/` | Temporary copies of browser uploads |
|
|
311
|
-
|
|
312
|
-
On first load, 0.1.1 tightens POSIX permissions across an existing `$DSH_HOME/iris/v1/` tree without modifying file contents or following symlinks. Large media downloads stream to a private temporary file and are moved into place atomically, instead of loading a whole video into memory.
|
|
313
|
-
|
|
314
|
-
Asynchronous tasks are polled in the background. After a plugin restart, Iris can re-adopt tasks that are still running remotely. Cancellation signals propagate through local waits and polling; whether the remote computation itself can be cancelled depends on the provider's API.
|
|
315
|
-
|
|
316
|
-
The work library has its own lifecycle: clearing terminal task history does not delete works, and older media can be recovered by re-indexing `outputs/`. Legacy deletion removes actual files with separate confirmation; see [Work library v0](docs/ARTIFACT_LIBRARY.md). Core deletion uses preview and recoverable quarantine; see [workbench management](docs/WORKBENCH_ARTIFACTS.md). Favorites, tags and search remain future work.
|
|
129
|
+
Supply an explicit `--data-root` and private `--provider-config` for generation, task inspection and artifact export. See [Headless CLI](docs/HEADLESS_CLI.md). Its [`iris-core` Skill](docs/CORE_SKILLS.md) can be installed into an explicitly chosen Skills directory. An MCP connection has a separate permission-matched Skill.
|
|
317
130
|
|
|
318
|
-
|
|
131
|
+
Keep the full scoped package name **`@mokuyoaxis/dsh-iris`** when installing or searching a marketplace. The unscoped `dsh-iris` is a different plugin.
|
|
319
132
|
|
|
320
|
-
##
|
|
133
|
+
## Configuration and data
|
|
321
134
|
|
|
322
|
-
-
|
|
323
|
-
-
|
|
324
|
-
-
|
|
325
|
-
-
|
|
326
|
-
-
|
|
327
|
-
-
|
|
328
|
-
- Legacy media links use random capability tokens; Core media reads verify Artifact content hashes. A host allowlist does not replace user authentication.
|
|
329
|
-
- Iris provides no account system of its own; multi-user isolation and access control are the responsibility of the DeepSeek Harness deployment.
|
|
135
|
+
- Iris does not scan other projects or clients by default. DSH can [reference host API-key connections](docs/DSH_PROVIDER_CONNECTIONS.md); the Core workbench manages its media services. A chat subscription or OAuth login is not media API authentication.
|
|
136
|
+
- Existing lists and missing/empty assignments are not silently enabled on upgrade. New directory models need explicit use approval; an empty manual pool stays empty. See [function pools](docs/FUNCTION_MODEL_POOLS.md).
|
|
137
|
+
- `IRIS_IMPORT_WORKBENCH_CONFIG` explicitly selects an old ai-paint configuration for [one-time import](user_guide.md#从旧工作台显式导入). It does not modify or continuously synchronize the source, or migrate a Core data root.
|
|
138
|
+
- DSH data lives under `$DSH_HOME/iris/v1/`, with media Core data in `core-v0`. Standalone CLI/Web use the selected root. The new workbench does not automatically import works from other roots.
|
|
139
|
+
- Each root has one writer and an instance execution queue; read-only inspection may coexist. The gallery is not a backup. There is no automatic disk quota or garbage collection; deletion, recovery and dependencies require explicit operations.
|
|
140
|
+
- Credentials live in private storage: typically `0600` files and `0700` directories on POSIX. Windows still relies on accounts and ACLs. Keep secrets and authenticated URLs out of public configuration and captures. Workspace passwords, MCP credentials and provider keys are managed separately.
|
|
330
141
|
|
|
331
|
-
|
|
142
|
+
Node.js ≥22 and a loadable `sharp` installation are required. Video extraction needs `ffmpeg`/`ffprobe`. HTML capture needs the chosen browser backend; DSH host services and standalone Chromium have different requirements. On Termux/PRoot, keep data on a private Linux filesystem supporting permissions and hard links.
|
|
332
143
|
|
|
333
|
-
|
|
334
|
-
- Video-file frame extraction and summaries require system-installed `ffmpeg` and `ffprobe`; summaries of existing Core frames need neither.
|
|
335
|
-
- HTML screenshots load no remote scripts, fonts, or images; inline the resources you need first.
|
|
336
|
-
- Under WSL, containers, and remote deployments, browser paths usually cannot be handed to the host directly — prefer uploading files.
|
|
337
|
-
- Provider model lists are candidate sets only; whether a model truly supports a capability is settled by real calls.
|
|
144
|
+
## Real generation and native DSH
|
|
338
145
|
|
|
339
|
-
|
|
146
|
+
<p align="center">
|
|
147
|
+
<img src="docs/assets/examples/iris-flower-generated.webp" width="520" alt="A blue-purple iris actually generated through Iris">
|
|
148
|
+
</p>
|
|
340
149
|
|
|
341
|
-
|
|
150
|
+
> Historical real generation: the draft “iris flower” was refined using `deepseek-v4-flash` (thinking off), then generated through DashScope `qwen-image-3.0-pro` at 2048×2048. This is separate from the controlled replay used for the new workbench captures.
|
|
342
151
|
|
|
343
|
-
|
|
152
|
+
<details>
|
|
153
|
+
<summary>Native DSH on Android 16 / Termux</summary>
|
|
344
154
|
|
|
345
|
-
|
|
|
155
|
+
| Prompt entry | Refined draft |
|
|
346
156
|
|---|---|
|
|
347
|
-
| [
|
|
348
|
-
| [`iris-compose-media`](.dsh/skills/iris-compose-media/SKILL.md) | Image revisions, video assets, narration, S2V, and optional music |
|
|
349
|
-
| [`iris-verify-ui`](.dsh/skills/iris-verify-ui/SKILL.md) | Interface reproduction and screenshot acceptance, including confirmed failure |
|
|
157
|
+
|  |  |
|
|
350
158
|
|
|
351
|
-
|
|
159
|
+

|
|
352
160
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
```text
|
|
356
|
-
/iris-use Generate a rock soundtrack and return its audio artifact and playback link
|
|
357
|
-
|
|
358
|
-
/iris-compose-media Inspect my uploaded product photo, create a matching poster, then verify the requested constraints
|
|
359
|
-
|
|
360
|
-
/iris-verify-ui Compare the current screenshot with the reference, locate regressions, and return an evidence-based verdict
|
|
361
|
-
```
|
|
161
|
+
Historical device captures from an Android browser connected to DSH in Termux/PRoot Debian ARM64, using the host's default skin. [Full sequence and provenance](docs/screenshots.md).
|
|
362
162
|
|
|
363
|
-
|
|
163
|
+
</details>
|
|
364
164
|
|
|
365
|
-
##
|
|
165
|
+
## Documentation and development
|
|
366
166
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
Releases are triggered by `v*` tags through `.github/workflows/release.yml`: the full test suite runs first, then the tarball is packaged, a GitHub Release is created with the workflow's built-in `GITHUB_TOKEN` (tarball attached; release notes taken first from `docs/releases/<version>.md`, otherwise from the matching CHANGELOG section), and npm publish happens when an `NPM_TOKEN` secret is configured. No local GitHub credentials are needed.
|
|
376
|
-
|
|
377
|
-
## Documentation
|
|
167
|
+
| Topic | Documentation |
|
|
168
|
+
|---|---|
|
|
169
|
+
| Getting started | [Core quickstart](docs/CORE_QUICKSTART.md) · [Agent Core guide](docs/AGENT_CORE_QUICKSTART.md) · [DSH guide](user_guide.md) · [CLI](docs/HEADLESS_CLI.md) |
|
|
170
|
+
| Workbench and connections | [Login](docs/WORKBENCH_LOGIN.md) · [Web](docs/LOCAL_WEB.md) · [MCP](docs/MCP.md) · [Skills](docs/CORE_SKILLS.md) |
|
|
171
|
+
| Models and flows | [Providers, pools and spectrum](docs/PROVIDER_SETTINGS.md) · [Images / ComfyUI](docs/IMAGE_GENERATION.md) · [Speech / transcription](docs/AUDIO_FLOWS.md) · [Task semantics](docs/TASK_SEMANTICS.md) |
|
|
172
|
+
| Extensions | [Plugin contract](docs/PLUGINS.md) · [Startup](docs/PLUGIN_STARTUP.md) · [Panel](docs/PANEL_EXTENSIONS.md) · [Contact sheet](docs/CONTACT_SHEET.md) |
|
|
173
|
+
| Releases and direction | [0.3 alpha release notes](docs/releases/0.3.0-alpha.1.md) · [0.2.7 stable](docs/releases/0.2.7.md) · [CHANGELOG](CHANGELOG.md) · [ROADMAP](docs/ROADMAP.md) · [Architecture](docs/ARCHITECTURE.md) |
|
|
378
174
|
|
|
379
|
-
- [
|
|
380
|
-
- [Changelog](CHANGELOG.md) (Chinese)
|
|
381
|
-
- [Roadmap](docs/ROADMAP.md) (Chinese)
|
|
382
|
-
- [File access across environments](docs/file-access-across-environments.md) (Chinese)
|
|
383
|
-
- [Android 16 screenshot gallery](docs/screenshots.md)
|
|
384
|
-
- [Task/Attempt v2 semantics (Chinese)](docs/TASK_SEMANTICS.md)
|
|
175
|
+
The DSH package retains [`iris-use`](.dsh/skills/iris-use/SKILL.md), [`iris-compose-media`](.dsh/skills/iris-compose-media/SKILL.md) and [`iris-verify-ui`](.dsh/skills/iris-verify-ui/SKILL.md). Core and connection Skills do not replace them.
|
|
385
176
|
|
|
386
|
-
|
|
177
|
+
The project uses ES Modules and needs no build step. Install the locked dependencies and run `npm test`; browser verification uses a real local service with controlled upstreams. New Core plugin contracts and configuration remain experimental, without a marketplace or stable SDK commitment. Specific verified Agent connections do not establish attachment presentation in every client.
|
|
387
178
|
|
|
388
|
-
[MIT](LICENSE)
|
|
179
|
+
[MIT License](LICENSE)
|