@mokuyoaxis/dsh-iris 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.dsh/skills/iris-compose-media/SKILL.md +23 -49
  2. package/.dsh/skills/iris-compose-media/references/task-v2-recovery.md +30 -0
  3. package/.dsh/skills/iris-compose-media/references/workflows.md +38 -0
  4. package/.dsh/skills/iris-verify-ui/SKILL.md +3 -25
  5. package/.dsh/skills/iris-verify-ui/agents/openai.yaml +4 -0
  6. package/.dsh/skills/iris-verify-ui/references/verdict-and-degradation.md +31 -0
  7. package/CHANGELOG.md +77 -2
  8. package/README.en.md +98 -19
  9. package/README.md +98 -19
  10. package/bin/dsh-iris.js +392 -13
  11. package/docs/AGENT_QUICKSTART.md +35 -0
  12. package/docs/ARCHITECTURE.md +82 -52
  13. package/docs/ARTIFACT_LIBRARY.md +24 -0
  14. package/docs/ARTIFACT_MANIFEST.md +60 -0
  15. package/docs/CORE_RUNTIME_CONTRACT.md +83 -0
  16. package/docs/DSH_CORE_MIGRATION.md +106 -0
  17. package/docs/DSH_RC2_ADAPTATION.md +36 -0
  18. package/docs/HEADLESS_CLI.md +217 -0
  19. package/docs/HOST_ADAPTER_CONTRACT.md +105 -0
  20. package/docs/HOST_DOCTOR.md +49 -0
  21. package/docs/MODEL_PORT_CONTRACT.md +300 -0
  22. package/docs/PROVIDER_ADAPTER_CONTRACT.md +138 -0
  23. package/docs/PROVIDER_HEALTH.md +39 -0
  24. package/docs/PROVIDER_RUNTIME_HARNESS.md +33 -0
  25. package/docs/PROVIDER_SUBMISSION_CONTRACT.md +2 -2
  26. package/docs/ROADMAP.md +42 -76
  27. package/docs/SECURITY.md +10 -5
  28. package/docs/TASK_SEMANTICS.md +3 -2
  29. package/docs/assets/diagrams/iris-architecture.png +0 -0
  30. package/docs/assets/diagrams/iris-architecture.svg +5 -5
  31. package/docs/assets/logo/README.md +55 -0
  32. package/docs/assets/logo/iris-bubble-concept.svg +67 -0
  33. package/docs/assets/logo/iris-bubble.svg +14 -0
  34. package/docs/assets/logo/iris-interim-flower.png +0 -0
  35. package/docs/assets/logo/iris-logo-mono-inverse.svg +78 -0
  36. package/docs/assets/logo/iris-logo-mono.svg +78 -0
  37. package/docs/assets/logo/iris-logo.svg +78 -0
  38. package/docs/assets/logo/iris-mark-mono-inverse.svg +42 -0
  39. package/docs/assets/logo/iris-mark-mono.svg +42 -0
  40. package/docs/assets/logo/iris-mark.svg +42 -0
  41. package/docs/releases/0.1.4.md +59 -0
  42. package/docs/releases/0.2.0.md +48 -0
  43. package/lib/actions.js +673 -525
  44. package/lib/adapters.js +58 -21
  45. package/lib/api.js +182 -16
  46. package/lib/artifacts.js +239 -0
  47. package/lib/bundled-skills.js +5 -5
  48. package/lib/client.js +1116 -86
  49. package/lib/command-service.js +420 -0
  50. package/lib/config.js +245 -49
  51. package/lib/core-artifact-store.js +598 -0
  52. package/lib/core-artifacts.js +4 -0
  53. package/lib/core-attention.js +103 -0
  54. package/lib/core-contract.js +105 -0
  55. package/lib/core-doctor.js +41 -0
  56. package/lib/core-lease-recovery.js +170 -0
  57. package/lib/core-runtime.js +232 -0
  58. package/lib/core-tasks.js +560 -0
  59. package/lib/core-user-projection.js +192 -0
  60. package/lib/doctor.js +260 -30
  61. package/lib/dsh-core-adapter.js +599 -0
  62. package/lib/dsh-host-adapter.js +240 -0
  63. package/lib/generation-input.js +95 -0
  64. package/lib/guard.js +3 -3
  65. package/lib/host-contract.js +131 -0
  66. package/lib/host-runtime.js +156 -0
  67. package/lib/index.js +255 -166
  68. package/lib/locate.js +1 -1
  69. package/lib/media.js +16 -6
  70. package/lib/model-invoker.js +218 -0
  71. package/lib/model-port-contract.js +333 -0
  72. package/lib/models.js +97 -11
  73. package/lib/prompt-optimizer.js +10 -20
  74. package/lib/provider-adapter.js +397 -0
  75. package/lib/provider-adapters.js +342 -0
  76. package/lib/provider-catalog.js +171 -0
  77. package/lib/provider-contract.js +72 -3
  78. package/lib/provider-health.js +59 -0
  79. package/lib/provider-protocol.js +51 -2
  80. package/lib/provider-task-runner.js +328 -0
  81. package/lib/render.js +43 -12
  82. package/lib/tasks.js +45 -9
  83. package/lib/vision.js +51 -56
  84. package/package.json +20 -14
  85. package/user_guide.md +67 -12
  86. package/docs/assets/diagrams/iris-architecture.drawio +0 -1
  87. package/docs/assets/diagrams/iris-task-lifecycle.drawio +0 -1
  88. package/docs/assets/diagrams/iris-workflow-compose.drawio +0 -1
  89. package/docs/releases/0.1.1.md +0 -51
  90. package/docs/releases/0.1.2.md +0 -26
  91. package/docs/releases/0.1.3.md +0 -30
@@ -0,0 +1,78 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="208" height="80" viewBox="0 0 208 80" role="img" aria-label="IRIS 标志(单色)" shape-rendering="crispEdges">
2
+ <title>IRIS 标志(单色)</title>
3
+ <desc>像素块鸢尾花与 IRIS 像素字标,单色墨,浅底色适用</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
+ <rect x="88" y="16" width="8" height="8" fill="#1E1E24"/>
43
+ <rect x="96" y="16" width="8" height="8" fill="#1E1E24"/>
44
+ <rect x="104" y="16" width="8" height="8" fill="#1E1E24"/>
45
+ <rect x="96" y="24" width="8" height="8" fill="#1E1E24"/>
46
+ <rect x="96" y="32" width="8" height="8" fill="#1E1E24"/>
47
+ <rect x="96" y="40" width="8" height="8" fill="#1E1E24"/>
48
+ <rect x="88" y="48" width="8" height="8" fill="#1E1E24"/>
49
+ <rect x="96" y="48" width="8" height="8" fill="#1E1E24"/>
50
+ <rect x="104" y="48" width="8" height="8" fill="#1E1E24"/>
51
+ <rect x="120" y="16" width="8" height="8" fill="#1E1E24"/>
52
+ <rect x="128" y="16" width="8" height="8" fill="#1E1E24"/>
53
+ <rect x="120" y="24" width="8" height="8" fill="#1E1E24"/>
54
+ <rect x="136" y="24" width="8" height="8" fill="#1E1E24"/>
55
+ <rect x="120" y="32" width="8" height="8" fill="#1E1E24"/>
56
+ <rect x="128" y="32" width="8" height="8" fill="#1E1E24"/>
57
+ <rect x="120" y="40" width="8" height="8" fill="#1E1E24"/>
58
+ <rect x="136" y="40" width="8" height="8" fill="#1E1E24"/>
59
+ <rect x="120" y="48" width="8" height="8" fill="#1E1E24"/>
60
+ <rect x="136" y="48" width="8" height="8" fill="#1E1E24"/>
61
+ <rect x="152" y="16" width="8" height="8" fill="#1E1E24"/>
62
+ <rect x="160" y="16" width="8" height="8" fill="#1E1E24"/>
63
+ <rect x="168" y="16" width="8" height="8" fill="#1E1E24"/>
64
+ <rect x="160" y="24" width="8" height="8" fill="#1E1E24"/>
65
+ <rect x="160" y="32" width="8" height="8" fill="#1E1E24"/>
66
+ <rect x="160" y="40" width="8" height="8" fill="#1E1E24"/>
67
+ <rect x="152" y="48" width="8" height="8" fill="#1E1E24"/>
68
+ <rect x="160" y="48" width="8" height="8" fill="#1E1E24"/>
69
+ <rect x="168" y="48" width="8" height="8" fill="#1E1E24"/>
70
+ <rect x="192" y="16" width="8" height="8" fill="#1E1E24"/>
71
+ <rect x="200" y="16" width="8" height="8" fill="#1E1E24"/>
72
+ <rect x="184" y="24" width="8" height="8" fill="#1E1E24"/>
73
+ <rect x="192" y="32" width="8" height="8" fill="#1E1E24"/>
74
+ <rect x="200" y="32" width="8" height="8" fill="#1E1E24"/>
75
+ <rect x="200" y="40" width="8" height="8" fill="#1E1E24"/>
76
+ <rect x="184" y="48" width="8" height="8" fill="#1E1E24"/>
77
+ <rect x="192" y="48" width="8" height="8" fill="#1E1E24"/>
78
+ </svg>
@@ -0,0 +1,78 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="208" height="80" viewBox="0 0 208 80" role="img" aria-label="IRIS 标志(彩色)" shape-rendering="crispEdges">
2
+ <title>IRIS 标志(彩色)</title>
3
+ <desc>像素块鸢尾花与 IRIS 像素字标,浅底色适用</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
+ <rect x="88" y="16" width="8" height="8" fill="#26204F"/>
43
+ <rect x="96" y="16" width="8" height="8" fill="#26204F"/>
44
+ <rect x="104" y="16" width="8" height="8" fill="#26204F"/>
45
+ <rect x="96" y="24" width="8" height="8" fill="#26204F"/>
46
+ <rect x="96" y="32" width="8" height="8" fill="#26204F"/>
47
+ <rect x="96" y="40" width="8" height="8" fill="#26204F"/>
48
+ <rect x="88" y="48" width="8" height="8" fill="#26204F"/>
49
+ <rect x="96" y="48" width="8" height="8" fill="#26204F"/>
50
+ <rect x="104" y="48" width="8" height="8" fill="#26204F"/>
51
+ <rect x="120" y="16" width="8" height="8" fill="#26204F"/>
52
+ <rect x="128" y="16" width="8" height="8" fill="#26204F"/>
53
+ <rect x="120" y="24" width="8" height="8" fill="#26204F"/>
54
+ <rect x="136" y="24" width="8" height="8" fill="#26204F"/>
55
+ <rect x="120" y="32" width="8" height="8" fill="#26204F"/>
56
+ <rect x="128" y="32" width="8" height="8" fill="#26204F"/>
57
+ <rect x="120" y="40" width="8" height="8" fill="#26204F"/>
58
+ <rect x="136" y="40" width="8" height="8" fill="#26204F"/>
59
+ <rect x="120" y="48" width="8" height="8" fill="#26204F"/>
60
+ <rect x="136" y="48" width="8" height="8" fill="#26204F"/>
61
+ <rect x="152" y="16" width="8" height="8" fill="#26204F"/>
62
+ <rect x="160" y="16" width="8" height="8" fill="#26204F"/>
63
+ <rect x="168" y="16" width="8" height="8" fill="#26204F"/>
64
+ <rect x="160" y="24" width="8" height="8" fill="#26204F"/>
65
+ <rect x="160" y="32" width="8" height="8" fill="#26204F"/>
66
+ <rect x="160" y="40" width="8" height="8" fill="#26204F"/>
67
+ <rect x="152" y="48" width="8" height="8" fill="#26204F"/>
68
+ <rect x="160" y="48" width="8" height="8" fill="#26204F"/>
69
+ <rect x="168" y="48" width="8" height="8" fill="#26204F"/>
70
+ <rect x="192" y="16" width="8" height="8" fill="#26204F"/>
71
+ <rect x="200" y="16" width="8" height="8" fill="#26204F"/>
72
+ <rect x="184" y="24" width="8" height="8" fill="#26204F"/>
73
+ <rect x="192" y="32" width="8" height="8" fill="#26204F"/>
74
+ <rect x="200" y="32" width="8" height="8" fill="#26204F"/>
75
+ <rect x="200" y="40" width="8" height="8" fill="#26204F"/>
76
+ <rect x="184" y="48" width="8" height="8" fill="#26204F"/>
77
+ <rect x="192" y="48" width="8" height="8" fill="#26204F"/>
78
+ </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>像素块鸢尾花图形标,反白</desc>
4
+ <rect x="32" y="0" width="8" height="8" fill="#F5F3FF"/>
5
+ <rect x="24" y="8" width="8" height="8" fill="#F5F3FF"/>
6
+ <rect x="32" y="8" width="8" height="8" fill="#F5F3FF"/>
7
+ <rect x="40" y="8" width="8" height="8" fill="#F5F3FF"/>
8
+ <rect x="16" y="16" width="8" height="8" fill="#F5F3FF"/>
9
+ <rect x="24" y="16" width="8" height="8" fill="#F5F3FF"/>
10
+ <rect x="32" y="16" width="8" height="8" fill="#F5F3FF"/>
11
+ <rect x="40" y="16" width="8" height="8" fill="#F5F3FF"/>
12
+ <rect x="48" y="16" width="8" height="8" fill="#F5F3FF"/>
13
+ <rect x="16" y="24" width="8" height="8" fill="#F5F3FF"/>
14
+ <rect x="24" y="24" width="8" height="8" fill="#F5F3FF"/>
15
+ <rect x="32" y="24" width="8" height="8" fill="#F5F3FF"/>
16
+ <rect x="40" y="24" width="8" height="8" fill="#F5F3FF"/>
17
+ <rect x="48" y="24" width="8" height="8" fill="#F5F3FF"/>
18
+ <rect x="0" y="32" width="8" height="8" fill="#F5F3FF"/>
19
+ <rect x="24" y="32" width="8" height="8" fill="#F5F3FF"/>
20
+ <rect x="32" y="32" width="8" height="8" fill="#F5F3FF"/>
21
+ <rect x="40" y="32" width="8" height="8" fill="#F5F3FF"/>
22
+ <rect x="64" y="32" width="8" height="8" fill="#F5F3FF"/>
23
+ <rect x="0" y="40" width="8" height="8" fill="#F5F3FF"/>
24
+ <rect x="8" y="40" width="8" height="8" fill="#F5F3FF"/>
25
+ <rect x="24" y="40" width="8" height="8" fill="#F5F3FF"/>
26
+ <rect x="32" y="40" width="8" height="8" fill="#F5F3FF"/>
27
+ <rect x="40" y="40" width="8" height="8" fill="#F5F3FF"/>
28
+ <rect x="56" y="40" width="8" height="8" fill="#F5F3FF"/>
29
+ <rect x="64" y="40" width="8" height="8" fill="#F5F3FF"/>
30
+ <rect x="8" y="48" width="8" height="8" fill="#F5F3FF"/>
31
+ <rect x="16" y="48" width="8" height="8" fill="#F5F3FF"/>
32
+ <rect x="32" y="48" width="8" height="8" fill="#F5F3FF"/>
33
+ <rect x="48" y="48" width="8" height="8" fill="#F5F3FF"/>
34
+ <rect x="56" y="48" width="8" height="8" fill="#F5F3FF"/>
35
+ <rect x="16" y="56" width="8" height="8" fill="#F5F3FF"/>
36
+ <rect x="24" y="56" width="8" height="8" fill="#F5F3FF"/>
37
+ <rect x="32" y="56" width="8" height="8" fill="#F5F3FF"/>
38
+ <rect x="40" y="56" width="8" height="8" fill="#F5F3FF"/>
39
+ <rect x="48" y="56" width="8" height="8" fill="#F5F3FF"/>
40
+ <rect x="32" y="64" width="8" height="8" fill="#F5F3FF"/>
41
+ <rect x="32" y="72" width="8" height="8" fill="#F5F3FF"/>
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>像素块鸢尾花图形标,单色墨</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>
@@ -0,0 +1,59 @@
1
+ ## Iris Media for DSH 0.1.4
2
+
3
+ Iris 0.1.4 is an architecture and operability release. It puts explicit host and provider boundaries around the plugin, deepens the two bundled agent Skills, and adds compatibility diagnostics for a running DSH instance. It does not add a new media provider and it does not introduce a standalone server.
4
+
5
+ ### Highlights
6
+
7
+ - Adds an internal Host Adapter v0 with nine named ports for tools, routes, client slots, Skills, attachments, sessions, Browser, text models, and vision models. Core candidates and shared commands no longer receive a raw DSH context.
8
+ - Adds deterministic Local Host fixtures that run local image operations and Task recovery flows without installing DSH, and that fail predictably when a port is missing.
9
+ - Adds Provider Adapter v0 for the full lifecycle: discovery, submission, acceptance, polling, cancellation, download, and error mapping. DashScope and the OpenAI Images compatibility path pass the same zero-network conformance runner, and every operation is explicitly supported or unsupported.
10
+ - Adds Host Doctor to the Iris workbench and to the authenticated `GET /iris/api/doctor` endpoint. It reports the DSH version, plugin identity, 14 tools, two Skills, four route groups, optional host capabilities, server and client versions, and four UI slots without leaving the process.
11
+ - Adds persistent provider x model x capability health evidence. Gray means unconfigured, blue means configured but unverified or stale, green means a success within the last seven days, and muted red is reserved for explicit authentication or permission failures.
12
+ - Treats real task success and explicit per-model probes as the same evidence source, shows the evidence time, invalidates evidence on critical configuration or model-capability changes, and aggregates ordered failover paths conservatively. Aggregate timestamps come only from the candidates that determine the displayed state.
13
+ - Adds Work Library v0. New media is indexed independently of task history, existing `outputs/` are adopted on upgrade, the workbench shows a paginated mobile-friendly grid, and the floating bubble reads recent works from the same durable index.
14
+ - Separates cleanup semantics: clearing terminal tasks keeps works visible, re-indexing recovers local media, and deleting one work, clearing the library, and purging true orphan files remain three distinct confirmed actions.
15
+ - Deepens the bundled `iris-verify-ui` and `iris-compose-media` Skills with an explicit user and model invocation policy, DSH slash-command examples, progressive references, Task v2 stopping rules, and ten zero-cost behavioral contracts.
16
+ - Tightens the floating bubble for narrow mobile viewports, handles pointer cancellation, and adds a runtime component-tree smoke test that mounts the workbench, the progress dock, and the bubble.
17
+ - Adds a restricted same-origin client handshake that reports only plugin, version, protocol, and slot scalars. Concurrent slot reports are merged monotonically so out-of-order requests cannot produce false missing-slot errors.
18
+ - Detects the running DSH version through the real npm/npx CLI target, including symbolic links, and reports unknown or unsupported hosts with actionable guidance.
19
+ - Publishes the Host Adapter, Provider Adapter, Host Doctor, artifact library, health, architecture, and updated user documentation.
20
+
21
+ ### Safety notes
22
+
23
+ - Host Doctor does not invoke host ports, open Browser, inspect attachments or sessions, call text or vision models, or contact providers.
24
+ - Health tracking performs no scheduled provider probes. Rate limits, network errors, 5xx responses, content-safety failures, cancellation, and unknown acceptance never overwrite a recent success and never trigger hidden cost.
25
+ - Provider and host conformance tests are deterministic fixtures. They never submit billable media requests.
26
+ - Automatic provider failover remains limited to explicit `not_accepted` results. Accepted or unknown work is never resubmitted automatically.
27
+ - Unverified remote cancellation is reported as explicitly unsupported instead of being guessed from private provider APIs.
28
+ - The client handshake is diagnostic evidence only. It does not grant capabilities, participate in authentication, or accept API keys, prompts, sessions, or attachment data.
29
+ - `artifacts.json` stores only a random ID, an access token, a basename, a MIME type, a size, and a timestamp. It deliberately excludes prompts, provider and model identity, task relationships, credentials, and absolute paths. Work URLs still require an unguessable capability token.
30
+ - The work library is not a backup. Deleting a work removes the underlying file after explicit confirmation, so important media should be copied elsewhere.
31
+
32
+ ### Compatibility
33
+
34
+ - DeepSeek Harness: `>=0.1.2-rc.1 <0.1.3-0` or `0.1.5-rc.1` (the only two verified windows)
35
+ - Node.js: `>=20.10.0`
36
+ - `ffmpeg` and `ffprobe` are optional and are needed only for video frame extraction and video summaries.
37
+
38
+ DSH is still a developer preview. These are the only two windows that passed a host canary; other preview versions, including 0.1.4 and a released 0.1.5, are not claimed as compatible until their own canary passes.
39
+
40
+ ### Install or update
41
+
42
+ ```bash
43
+ dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.1.4
44
+ dsh web
45
+ ```
46
+
47
+ Open the complete authentication URL printed by `dsh web`; a bare `http://127.0.0.1:3080` URL may be rejected.
48
+
49
+ ### Verification
50
+
51
+ - All 56 test files pass, and the structural lint guard covers every JS and MJS file in `lib/`, `tests/`, and `scripts/`.
52
+ - Isolated source-link and packed-tarball canaries run on DSH `0.1.2-rc.1` with Node.js 22: the authenticated application bundle registers 14 tools, two Skills, and four route groups, and the client handshake reports four UI slots.
53
+ - Host Doctor reports zero hard errors on the canary host. A missing `dsh-builtin-browser` is the only expected warning.
54
+ - The daily Android/Linux host on DSH `0.1.5-rc.1` with Node.js 22 loads all 14 tools, two Skills, four route groups, and four UI slots, and Host Doctor accepts the second verified window.
55
+ - The packed tarball is scanned for credentials, host-specific absolute paths, and internal records before release.
56
+
57
+ Image, video, speech, transcription, and model verification requests may consume provider quota or incur charges.
58
+
59
+ Full changelog: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.3...v0.1.4
@@ -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