dsh-motion-ui 0.0.0-stage → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/DESIGN.zh-CN.md +56 -0
  3. package/LICENSE +21 -0
  4. package/README.md +162 -2
  5. package/RELEASE-PLAN.zh-CN.md +52 -0
  6. package/VERIFICATION.md +133 -0
  7. package/client.js +23645 -0
  8. package/cordis.patch.yml +3 -0
  9. package/examples/agent-architecture.json +48 -0
  10. package/examples/bicycle-explorer.json +108 -0
  11. package/examples/calculator.json +94 -0
  12. package/examples/comparison.json +59 -0
  13. package/examples/conditional-budget.json +148 -0
  14. package/examples/live-memory-curve.json +251 -0
  15. package/examples/scene-comparison.json +86 -0
  16. package/examples/scene-dashboard.json +92 -0
  17. package/examples/scene-guide.json +56 -0
  18. package/examples/scene-report.json +61 -0
  19. package/examples/scene-status.json +70 -0
  20. package/examples/scene-workbench.json +105 -0
  21. package/examples/sine-motion.json +49 -0
  22. package/examples/speed-memory-scatter.json +113 -0
  23. package/index.js +69 -0
  24. package/lib/author-expression.js +60 -0
  25. package/lib/build-info.js +2 -0
  26. package/lib/canvas-design.js +10 -0
  27. package/lib/canvas-example.js +46 -0
  28. package/lib/canvas-export.js +9 -0
  29. package/lib/canvas-preview.js +31 -0
  30. package/lib/canvas-system.js +14 -0
  31. package/lib/catalog.js +92 -0
  32. package/lib/components.js +28 -0
  33. package/lib/export-runtime-bundle.js +2 -0
  34. package/lib/format-number.js +7 -0
  35. package/lib/freeform.js +13 -0
  36. package/lib/inspection.js +13 -0
  37. package/lib/presentation.js +6 -0
  38. package/lib/protocol.js +295 -0
  39. package/lib/refinement.js +31 -0
  40. package/lib/sandbox.js +52 -0
  41. package/lib/scenes.js +50 -0
  42. package/lib/store.js +176 -0
  43. package/lib/stream.js +87 -0
  44. package/lib/tool-json.js +7 -0
  45. package/lib/ui-intent.js +14 -0
  46. package/lib/ui-skill.js +46 -0
  47. package/lib/visual-audit.js +18 -0
  48. package/lib/visual-examples.js +28 -0
  49. package/package.json +75 -4
  50. package/skills/intelligent-ui/SKILL.md +86 -0
@@ -0,0 +1,251 @@
1
+ {
2
+ "version": 1,
3
+ "title": "上下文与理论内存曲线",
4
+ "fallback": "理论估算,只计算纯权重与 KV cache,不包含运行缓冲、量化元数据或多卡分配。默认 27B、4.25 bpw、32K 上下文、48 KiB/token KV,权重约 13.36 GiB,权重加 KV 约 14.86 GiB。",
5
+ "state": {
6
+ "parametersB": {
7
+ "type": "number",
8
+ "default": 27,
9
+ "min": 1,
10
+ "max": 200,
11
+ "step": 1
12
+ },
13
+ "bits": {
14
+ "type": "number",
15
+ "default": 4.25,
16
+ "min": 2,
17
+ "max": 8,
18
+ "step": 0.25
19
+ },
20
+ "contextK": {
21
+ "type": "number",
22
+ "default": 32,
23
+ "min": 8,
24
+ "max": 128,
25
+ "step": 8
26
+ },
27
+ "kvKib": {
28
+ "type": "number",
29
+ "default": 48,
30
+ "min": 8,
31
+ "max": 192,
32
+ "step": 8
33
+ }
34
+ },
35
+ "data": {
36
+ "samples": [
37
+ {
38
+ "fraction": 0.25
39
+ },
40
+ {
41
+ "fraction": 0.5
42
+ },
43
+ {
44
+ "fraction": 0.75
45
+ },
46
+ {
47
+ "fraction": 1
48
+ }
49
+ ]
50
+ },
51
+ "derived": {
52
+ "weightGiB": {
53
+ "op": "div",
54
+ "args": [
55
+ {
56
+ "op": "mul",
57
+ "args": [
58
+ {
59
+ "ref": "state.parametersB"
60
+ },
61
+ {
62
+ "const": 1000000000
63
+ },
64
+ {
65
+ "ref": "state.bits"
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "const": 8589934592
71
+ }
72
+ ]
73
+ },
74
+ "totalGiB": {
75
+ "op": "add",
76
+ "args": [
77
+ {
78
+ "ref": "derived.weightGiB"
79
+ },
80
+ {
81
+ "op": "div",
82
+ "args": [
83
+ {
84
+ "op": "mul",
85
+ "args": [
86
+ {
87
+ "ref": "state.contextK"
88
+ },
89
+ {
90
+ "ref": "state.kvKib"
91
+ }
92
+ ]
93
+ },
94
+ {
95
+ "const": 1024
96
+ }
97
+ ]
98
+ }
99
+ ]
100
+ },
101
+ "curve": {
102
+ "map": {
103
+ "source": "data.samples",
104
+ "fields": {
105
+ "contextK": {
106
+ "op": "mul",
107
+ "args": [
108
+ {
109
+ "ref": "state.contextK"
110
+ },
111
+ {
112
+ "ref": "item.fraction"
113
+ }
114
+ ]
115
+ },
116
+ "totalGiB": {
117
+ "op": "add",
118
+ "args": [
119
+ {
120
+ "ref": "derived.weightGiB"
121
+ },
122
+ {
123
+ "op": "div",
124
+ "args": [
125
+ {
126
+ "op": "mul",
127
+ "args": [
128
+ {
129
+ "ref": "state.contextK"
130
+ },
131
+ {
132
+ "ref": "item.fraction"
133
+ },
134
+ {
135
+ "ref": "state.kvKib"
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ "const": 1024
141
+ }
142
+ ]
143
+ }
144
+ ]
145
+ }
146
+ }
147
+ }
148
+ }
149
+ },
150
+ "nodes": [
151
+ {
152
+ "id": "note",
153
+ "type": "text",
154
+ "tone": "warning",
155
+ "text": "理论值,不是实测推理显存。仅计纯权重 + KV cache,不含运行缓冲、量化元数据或多卡分配。"
156
+ },
157
+ {
158
+ "id": "controls",
159
+ "type": "card",
160
+ "title": "参数调整",
161
+ "icon": "sliders",
162
+ "children": [
163
+ {
164
+ "id": "parameters",
165
+ "type": "input",
166
+ "label": "参数量 B(十亿)",
167
+ "bind": "state.parametersB"
168
+ },
169
+ {
170
+ "id": "bits",
171
+ "type": "slider",
172
+ "label": "假设有效位宽 bit",
173
+ "bind": "state.bits"
174
+ },
175
+ {
176
+ "id": "context",
177
+ "type": "slider",
178
+ "label": "最大上下文 K tokens",
179
+ "bind": "state.contextK"
180
+ },
181
+ {
182
+ "id": "kv",
183
+ "type": "slider",
184
+ "label": "每 token KV 开销 KiB",
185
+ "bind": "state.kvKib"
186
+ }
187
+ ]
188
+ },
189
+ {
190
+ "id": "metric",
191
+ "type": "metric",
192
+ "label": "最大上下文下的理论权重 + KV",
193
+ "icon": "database",
194
+ "value": {
195
+ "ref": "derived.totalGiB"
196
+ },
197
+ "unit": "GiB",
198
+ "decimals": 2
199
+ },
200
+ {
201
+ "id": "curveChart",
202
+ "type": "chart",
203
+ "kind": "line",
204
+ "xScale": "linear",
205
+ "label": "上下文 K tokens → 权重 + KV",
206
+ "unit": "GiB",
207
+ "rows": {
208
+ "ref": "derived.curve"
209
+ },
210
+ "labelKey": "contextK",
211
+ "valueKey": "totalGiB"
212
+ },
213
+ {
214
+ "id": "curveTable",
215
+ "type": "table",
216
+ "rows": {
217
+ "ref": "derived.curve"
218
+ },
219
+ "columns": [
220
+ {
221
+ "key": "contextK",
222
+ "label": "上下文",
223
+ "unit": "K tokens"
224
+ },
225
+ {
226
+ "key": "totalGiB",
227
+ "label": "理论内存",
228
+ "unit": "GiB"
229
+ }
230
+ ]
231
+ },
232
+ {
233
+ "id": "followup",
234
+ "type": "button",
235
+ "text": "按当前曲线继续分析",
236
+ "action": "analyze"
237
+ }
238
+ ],
239
+ "actions": {
240
+ "analyze": {
241
+ "type": "agent.followup",
242
+ "intent": "依据当前参数与 derived.curve 理论曲线分析上下文和内存取舍,说明尚未计入的实际运行开销。",
243
+ "stateKeys": [
244
+ "parametersB",
245
+ "bits",
246
+ "contextK",
247
+ "kvKib"
248
+ ]
249
+ }
250
+ }
251
+ }
@@ -0,0 +1,86 @@
1
+ {
2
+ "version": 1,
3
+ "title": "方案对比 · 存储取舍示例",
4
+ "fallback": "这是布局与交互示例,数据为演示数据;不代表实际测试、任务进度或推荐结论。",
5
+ "presentation": {
6
+ "layout": "comparison",
7
+ "accent": "violet"
8
+ },
9
+ "nodes": [
10
+ {
11
+ "id": "note",
12
+ "type": "text",
13
+ "text": "以下为假设场景;应结合实际读写、价格和数据重要性决策。",
14
+ "tone": "warning"
15
+ },
16
+ {
17
+ "id": "plans",
18
+ "type": "row",
19
+ "children": [
20
+ {
21
+ "id": "local",
22
+ "type": "card",
23
+ "title": "本地方案",
24
+ "children": [
25
+ {
26
+ "id": "localTag",
27
+ "type": "badge",
28
+ "text": "优先低延迟",
29
+ "tone": "accent",
30
+ "icon": "cpu"
31
+ },
32
+ {
33
+ "id": "capacityA",
34
+ "type": "metric",
35
+ "label": "示例可用容量",
36
+ "value": 2,
37
+ "unit": "TiB",
38
+ "tone": "accent",
39
+ "decimals": 0
40
+ },
41
+ {
42
+ "id": "localCopy",
43
+ "type": "text",
44
+ "text": "直接访问、延迟低。需要自行安排异地备份。"
45
+ }
46
+ ],
47
+ "surface": "outline"
48
+ },
49
+ {
50
+ "id": "hybrid",
51
+ "type": "card",
52
+ "title": "混合方案",
53
+ "children": [
54
+ {
55
+ "id": "hybridTag",
56
+ "type": "badge",
57
+ "text": "优先异地副本",
58
+ "tone": "accent",
59
+ "icon": "layers"
60
+ },
61
+ {
62
+ "id": "capacityB",
63
+ "type": "metric",
64
+ "label": "示例可用容量",
65
+ "value": 2,
66
+ "unit": "TiB",
67
+ "tone": "accent",
68
+ "decimals": 0
69
+ },
70
+ {
71
+ "id": "hybridCopy",
72
+ "type": "text",
73
+ "text": "本地工作副本与远端备份。需考虑带宽和持续费用。"
74
+ }
75
+ ],
76
+ "surface": "featured"
77
+ }
78
+ ]
79
+ },
80
+ {
81
+ "id": "decision",
82
+ "type": "text",
83
+ "text": "强调卡片表示当前讨论重点,不自动代表最佳或最便宜的方案。"
84
+ }
85
+ ]
86
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "version": 1,
3
+ "title": "分析仪表盘 · 示例",
4
+ "fallback": "这是布局与交互示例,数据为演示数据;不代表实际测试、任务进度或推荐结论。",
5
+ "presentation": {
6
+ "layout": "dashboard",
7
+ "accent": "blue"
8
+ },
9
+ "nodes": [
10
+ {
11
+ "id": "source",
12
+ "type": "badge",
13
+ "text": "演示数据",
14
+ "tone": "neutral",
15
+ "icon": "database"
16
+ },
17
+ {
18
+ "id": "metrics",
19
+ "type": "row",
20
+ "children": [
21
+ {
22
+ "id": "count",
23
+ "type": "metric",
24
+ "label": "测试样本",
25
+ "value": 120,
26
+ "unit": "项",
27
+ "tone": "accent",
28
+ "decimals": 0
29
+ },
30
+ {
31
+ "id": "pass",
32
+ "type": "metric",
33
+ "label": "通过样本",
34
+ "value": 108,
35
+ "unit": "项",
36
+ "tone": "success",
37
+ "decimals": 0
38
+ },
39
+ {
40
+ "id": "review",
41
+ "type": "metric",
42
+ "label": "待复核",
43
+ "value": 12,
44
+ "unit": "项",
45
+ "tone": "warning",
46
+ "decimals": 0
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ "id": "chart",
52
+ "type": "chart",
53
+ "kind": "bar",
54
+ "label": "各组通过样本",
55
+ "unit": "项",
56
+ "rows": {
57
+ "ref": "data.groups"
58
+ },
59
+ "labelKey": "name",
60
+ "valueKey": "passed"
61
+ },
62
+ {
63
+ "id": "conclusion",
64
+ "type": "card",
65
+ "title": "观察与下一步",
66
+ "children": [
67
+ {
68
+ "id": "observation",
69
+ "type": "text",
70
+ "text": "B 组通过样本较少;需要查看失败类型和各组总样本,才能判断差异原因。"
71
+ }
72
+ ],
73
+ "surface": "soft"
74
+ }
75
+ ],
76
+ "data": {
77
+ "groups": [
78
+ {
79
+ "name": "A 组",
80
+ "passed": 38
81
+ },
82
+ {
83
+ "name": "B 组",
84
+ "passed": 32
85
+ },
86
+ {
87
+ "name": "C 组",
88
+ "passed": 38
89
+ }
90
+ ]
91
+ }
92
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "version": 1,
3
+ "title": "步骤指南 · 开发环境准备",
4
+ "fallback": "这是布局与交互示例,数据为演示数据;不代表实际测试、任务进度或推荐结论。",
5
+ "presentation": {
6
+ "layout": "guide",
7
+ "accent": "amber"
8
+ },
9
+ "nodes": [
10
+ {
11
+ "id": "tag",
12
+ "type": "badge",
13
+ "text": "操作清单示例",
14
+ "tone": "neutral",
15
+ "icon": "target"
16
+ },
17
+ {
18
+ "id": "note",
19
+ "type": "text",
20
+ "text": "步骤状态仅用于演示;插件不会自动执行这些操作。"
21
+ },
22
+ {
23
+ "id": "steps",
24
+ "type": "steps",
25
+ "items": [
26
+ {
27
+ "title": "确认版本",
28
+ "description": "记录宿主版本、插件版本和所用配置目录。",
29
+ "status": "pending"
30
+ },
31
+ {
32
+ "title": "准备隔离环境",
33
+ "description": "备份配置,使用独立开发会话和演示数据。",
34
+ "status": "pending"
35
+ },
36
+ {
37
+ "title": "构建并验收",
38
+ "description": "验证交互、刷新恢复、深浅主题和窄屏布局。",
39
+ "status": "pending"
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ "id": "details",
45
+ "type": "details",
46
+ "title": "验收时记录什么",
47
+ "children": [
48
+ {
49
+ "id": "criteria",
50
+ "type": "text",
51
+ "text": "记录明确的输入、可观察结果、错误以及尚未验证的范围。"
52
+ }
53
+ ]
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "version": 1,
3
+ "title": "阅读报告 · 评估结论组织",
4
+ "fallback": "这是布局与交互示例,数据为演示数据;不代表实际测试、任务进度或推荐结论。",
5
+ "presentation": {
6
+ "layout": "report",
7
+ "accent": "rose"
8
+ },
9
+ "nodes": [
10
+ {
11
+ "id": "tag",
12
+ "type": "badge",
13
+ "text": "报告结构示例",
14
+ "tone": "neutral",
15
+ "icon": "info"
16
+ },
17
+ {
18
+ "id": "lead",
19
+ "type": "text",
20
+ "text": "先写结论及适用条件,再展示支持它的数据。将事实、推测与待验证项分开陈述,方便读者判断结论的边界。"
21
+ },
22
+ {
23
+ "id": "findings",
24
+ "type": "card",
25
+ "title": "主要发现",
26
+ "children": [
27
+ {
28
+ "id": "findingText",
29
+ "type": "text",
30
+ "text": "本示例展示信息层级,不包含真实模型评估结论。正式报告应说明样本、设置与测量方式。"
31
+ }
32
+ ],
33
+ "surface": "outline"
34
+ },
35
+ {
36
+ "id": "limits",
37
+ "type": "card",
38
+ "title": "适用范围",
39
+ "children": [
40
+ {
41
+ "id": "limitText",
42
+ "type": "text",
43
+ "text": "单个样例无法代表整体能力;速度与质量结果应关联具体配置。"
44
+ }
45
+ ],
46
+ "surface": "outline"
47
+ },
48
+ {
49
+ "id": "appendix",
50
+ "type": "details",
51
+ "title": "方法与复现信息",
52
+ "children": [
53
+ {
54
+ "id": "method",
55
+ "type": "text",
56
+ "text": "记录版本、提示词、采样参数、样本来源和失败案例,提供可复核证据。"
57
+ }
58
+ ]
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "version": 1,
3
+ "title": "状态面板 · 批次统计示例",
4
+ "fallback": "这是布局与交互示例,数据为演示数据;不代表实际测试、任务进度或推荐结论。",
5
+ "presentation": {
6
+ "layout": "status",
7
+ "accent": "teal"
8
+ },
9
+ "nodes": [
10
+ {
11
+ "id": "tag",
12
+ "type": "badge",
13
+ "text": "演示快照 · 非实时任务",
14
+ "tone": "warning",
15
+ "icon": "info"
16
+ },
17
+ {
18
+ "id": "counts",
19
+ "type": "row",
20
+ "children": [
21
+ {
22
+ "id": "done",
23
+ "type": "metric",
24
+ "label": "示例已处理",
25
+ "value": 72,
26
+ "unit": "项",
27
+ "tone": "success",
28
+ "decimals": 0
29
+ },
30
+ {
31
+ "id": "remaining",
32
+ "type": "metric",
33
+ "label": "示例待处理",
34
+ "value": 28,
35
+ "unit": "项",
36
+ "tone": "accent",
37
+ "decimals": 0
38
+ }
39
+ ]
40
+ },
41
+ {
42
+ "id": "progress",
43
+ "type": "progress",
44
+ "label": "示例处理进度",
45
+ "value": 72,
46
+ "max": 100,
47
+ "unit": "项",
48
+ "tone": "accent"
49
+ },
50
+ {
51
+ "id": "steps",
52
+ "type": "steps",
53
+ "items": [
54
+ {
55
+ "title": "读取示例清单",
56
+ "status": "done"
57
+ },
58
+ {
59
+ "title": "处理示例批次",
60
+ "description": "当前快照停留在这一阶段。",
61
+ "status": "active"
62
+ },
63
+ {
64
+ "title": "汇总结果",
65
+ "status": "pending"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ }