@xpert-ai/plugin-motion 0.1.0 → 0.3.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 (157) hide show
  1. package/.xpertai-plugin/plugin.json +16 -6
  2. package/README.md +19 -5
  3. package/assets/upstream/UPSTREAM-BASELINE.md +27 -0
  4. package/assets/upstream/app/data/reicon-LICENSE.txt +21 -0
  5. package/dist/assets/upstream/UPSTREAM-BASELINE.md +27 -0
  6. package/dist/assets/upstream/app/data/reicon-LICENSE.txt +21 -0
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +18 -9
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/constants.d.ts +7 -1
  12. package/dist/lib/constants.d.ts.map +1 -1
  13. package/dist/lib/constants.js +7 -0
  14. package/dist/lib/constants.js.map +1 -1
  15. package/dist/lib/entities/motion-export.entity.d.ts +13 -1
  16. package/dist/lib/entities/motion-export.entity.d.ts.map +1 -1
  17. package/dist/lib/entities/motion-export.entity.js +49 -1
  18. package/dist/lib/entities/motion-export.entity.js.map +1 -1
  19. package/dist/lib/entities/motion-project-version.entity.d.ts +3 -1
  20. package/dist/lib/entities/motion-project-version.entity.d.ts.map +1 -1
  21. package/dist/lib/entities/motion-project-version.entity.js +8 -0
  22. package/dist/lib/entities/motion-project-version.entity.js.map +1 -1
  23. package/dist/lib/entities/motion-project.entity.d.ts +4 -1
  24. package/dist/lib/entities/motion-project.entity.d.ts.map +1 -1
  25. package/dist/lib/entities/motion-project.entity.js +8 -0
  26. package/dist/lib/entities/motion-project.entity.js.map +1 -1
  27. package/dist/lib/hyperframes-composition.d.ts +16 -0
  28. package/dist/lib/hyperframes-composition.d.ts.map +1 -0
  29. package/dist/lib/hyperframes-composition.js +106 -0
  30. package/dist/lib/hyperframes-composition.js.map +1 -0
  31. package/dist/lib/motion-agent-response.d.ts +8 -0
  32. package/dist/lib/motion-agent-response.d.ts.map +1 -1
  33. package/dist/lib/motion-agent-response.js +13 -0
  34. package/dist/lib/motion-agent-response.js.map +1 -1
  35. package/dist/lib/motion-render.processor.d.ts +9 -0
  36. package/dist/lib/motion-render.processor.d.ts.map +1 -0
  37. package/dist/lib/motion-render.processor.js +25 -0
  38. package/dist/lib/motion-render.processor.js.map +1 -0
  39. package/dist/lib/motion-view.provider.d.ts.map +1 -1
  40. package/dist/lib/motion-view.provider.js +31 -2
  41. package/dist/lib/motion-view.provider.js.map +1 -1
  42. package/dist/lib/motion.middleware.d.ts.map +1 -1
  43. package/dist/lib/motion.middleware.js +20 -6
  44. package/dist/lib/motion.middleware.js.map +1 -1
  45. package/dist/lib/motion.plugin.d.ts.map +1 -1
  46. package/dist/lib/motion.plugin.js +2 -1
  47. package/dist/lib/motion.plugin.js.map +1 -1
  48. package/dist/lib/motion.service.d.ts +174 -3
  49. package/dist/lib/motion.service.d.ts.map +1 -1
  50. package/dist/lib/motion.service.js +376 -19
  51. package/dist/lib/motion.service.js.map +1 -1
  52. package/dist/lib/remote-components/motion-workbench/app.css +1 -1
  53. package/dist/lib/remote-components/motion-workbench/app.js +555 -946
  54. package/dist/lib/types.d.ts +26 -1
  55. package/dist/lib/types.d.ts.map +1 -1
  56. package/dist/lib/types.js.map +1 -1
  57. package/dist/sandbox-actions/hyperframes-render/action.json +10 -0
  58. package/dist/sandbox-actions/hyperframes-render/bundle/runner.mjs +188 -0
  59. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@esbuild/darwin-arm64/README.md +3 -0
  60. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@esbuild/darwin-arm64/bin/esbuild +0 -0
  61. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@esbuild/darwin-arm64/package.json +20 -0
  62. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@esbuild/linux-x64/README.md +3 -0
  63. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@esbuild/linux-x64/bin/esbuild +0 -0
  64. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@esbuild/linux-x64/package.json +20 -0
  65. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/LICENSE +190 -0
  66. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/README.md +156 -0
  67. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/dist/distributed.js +156122 -0
  68. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/dist/hyperframe.manifest.json +22 -0
  69. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/dist/hyperframe.runtime.iife.js +356 -0
  70. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/dist/index.js +169375 -0
  71. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/dist/public-server.js +167618 -0
  72. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/dist/services/healthWorkerThread.js +53 -0
  73. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/dist/services/shaderTransitionWorker.js +606 -0
  74. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/@hyperframes/producer/package.json +109 -0
  75. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/esbuild/LICENSE.md +21 -0
  76. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/esbuild/README.md +3 -0
  77. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/esbuild/bin/esbuild +0 -0
  78. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/esbuild/install.js +289 -0
  79. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/esbuild/lib/main.js +2532 -0
  80. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/esbuild/package.json +49 -0
  81. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/LICENSE +20 -0
  82. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/README.md +36 -0
  83. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/async/index.browser.cjs +42 -0
  84. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/async/index.browser.js +42 -0
  85. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/async/index.cjs +44 -0
  86. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/async/index.js +44 -0
  87. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/async/index.native.js +35 -0
  88. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/async/package.json +12 -0
  89. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/bin/nanoid.cjs +55 -0
  90. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/index.browser.cjs +44 -0
  91. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/index.browser.js +44 -0
  92. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/index.cjs +57 -0
  93. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/index.d.cts +91 -0
  94. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/index.js +62 -0
  95. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/nanoid.js +1 -0
  96. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/non-secure/index.cjs +24 -0
  97. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/non-secure/index.js +24 -0
  98. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/non-secure/package.json +6 -0
  99. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/package.json +89 -0
  100. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/url-alphabet/index.cjs +4 -0
  101. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/url-alphabet/index.js +4 -0
  102. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/nanoid/url-alphabet/package.json +6 -0
  103. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/picocolors/LICENSE +15 -0
  104. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/picocolors/README.md +21 -0
  105. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/picocolors/package.json +25 -0
  106. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/picocolors/picocolors.browser.js +4 -0
  107. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/picocolors/picocolors.js +75 -0
  108. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/LICENSE +20 -0
  109. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/README.md +25 -0
  110. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/at-rule.js +25 -0
  111. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/comment.js +13 -0
  112. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/container.js +447 -0
  113. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/css-syntax-error.js +133 -0
  114. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/declaration.js +24 -0
  115. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/document.js +33 -0
  116. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/fromJSON.js +68 -0
  117. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/input.js +276 -0
  118. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/lazy-result.js +563 -0
  119. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/list.js +58 -0
  120. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/map-generator.js +376 -0
  121. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/no-work-result.js +137 -0
  122. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/node.js +456 -0
  123. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/parse.js +42 -0
  124. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/parser.js +618 -0
  125. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/postcss.d.mts +66 -0
  126. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/postcss.js +101 -0
  127. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/postcss.mjs +30 -0
  128. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/previous-map.js +161 -0
  129. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/processor.js +67 -0
  130. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/result.js +42 -0
  131. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/root.js +61 -0
  132. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/rule.js +27 -0
  133. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/stringifier.js +374 -0
  134. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/stringify.js +11 -0
  135. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/symbols.js +5 -0
  136. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/terminal-highlight.js +70 -0
  137. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/tokenize.js +270 -0
  138. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/warn-once.js +13 -0
  139. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/lib/warning.js +37 -0
  140. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/postcss/package.json +88 -0
  141. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/LICENSE +28 -0
  142. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/README.md +765 -0
  143. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/array-set.js +121 -0
  144. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/base64-vlq.js +140 -0
  145. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/base64.js +67 -0
  146. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/binary-search.js +111 -0
  147. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/mapping-list.js +79 -0
  148. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/quick-sort.js +132 -0
  149. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/source-map-consumer.js +1188 -0
  150. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/source-map-generator.js +444 -0
  151. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/source-node.js +413 -0
  152. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/lib/util.js +594 -0
  153. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/package.json +71 -0
  154. package/dist/sandbox-actions/hyperframes-render/bundle/runtime-modules/source-map-js/source-map.js +8 -0
  155. package/dist/xpert-motion-assistant.yaml +240 -37
  156. package/package.json +19 -10
  157. package/skills/motion-agent-skill/SKILL.md +19 -7
@@ -2,11 +2,13 @@ team:
2
2
  name: motion-assistant
3
3
  type: agent
4
4
  title: Motion Assistant
5
- description: Agentic motion assistant for animated HTML pages, launch videos, recipe routing, review, and exports
5
+ description: Agentic motion assistant for animated HTML pages, launch videos,
6
+ recipe routing, review, and exports
6
7
  avatar:
7
8
  emoji:
8
9
  id: high_voltage
9
10
  background: rgb(219, 234, 254)
11
+ starters: null
10
12
  options:
11
13
  templateKey: motion-assistant
12
14
  dataXpert:
@@ -14,14 +16,56 @@ team:
14
16
  templateKey: motion-assistant
15
17
  assistantKind: business-assistant
16
18
  businessDomain: motion
17
- requiredPlugin: '@xpert-ai/plugin-motion'
19
+ requiredPlugin: "@xpert-ai/plugin-motion"
18
20
  requiredPlugins:
19
- - '@xpert-ai/plugin-motion'
21
+ - "@xpert-ai/plugin-motion"
20
22
  requiredCapabilities:
21
23
  - motion
22
24
  - motion-workbench
23
25
  - agent-motion
24
26
  - motion-library
27
+ position:
28
+ x: -499.553009521484
29
+ y: 92.94311791992189
30
+ scale: 0.9699842529296875
31
+ agent:
32
+ Agent_Motion:
33
+ position:
34
+ x: 860
35
+ y: 20
36
+ workflow:
37
+ Middleware_Motion:
38
+ position:
39
+ x: 820
40
+ y: 400
41
+ Middleware_URdcLmqWpT:
42
+ position:
43
+ x: 580
44
+ y: 340
45
+ Middleware_A844uYR0y9:
46
+ position:
47
+ x: 1200
48
+ y: 340
49
+ Middleware_hFTsqEWZS1:
50
+ position:
51
+ x: 1460
52
+ y: 340
53
+ Middleware_aGyP20FjEp:
54
+ position:
55
+ x: 1281
56
+ y: 692
57
+ Middleware_4BSEKi9Fmv:
58
+ position:
59
+ x: 960
60
+ y: 820
61
+ Middleware_zZl4L6CA2h:
62
+ position:
63
+ x: 1160
64
+ y: 580
65
+ Middleware_oA3RvmYZxE:
66
+ position:
67
+ x: 1720
68
+ y: 740
25
69
  agentConfig:
26
70
  stateVariables:
27
71
  - name: motionProjectId
@@ -50,6 +94,8 @@ team:
50
94
  description: Whether the Motion Workbench has local unsaved edits
51
95
  operation: null
52
96
  recursionLimit: 10000
97
+ memory: null
98
+ summarize: null
53
99
  features:
54
100
  sandbox:
55
101
  enabled: true
@@ -58,6 +104,7 @@ team:
58
104
  agent:
59
105
  key: Agent_Motion
60
106
  copilotModel:
107
+ copilotId: 25c9a0e3-e4a9-4328-8d5f-14927d6afa4b
61
108
  referencedId: null
62
109
  modelType: llm
63
110
  model: qwen3.6-plus
@@ -66,7 +113,7 @@ team:
66
113
  temperature: 0.2
67
114
  maxRetries: 6
68
115
  max_tokens: 8192
69
- top_p: 0.95
116
+ top_p: 0.9
70
117
  knowledgebases: []
71
118
  toolsets: []
72
119
  tags: []
@@ -80,7 +127,8 @@ nodes:
80
127
  key: Agent_Motion
81
128
  name: motion-assistant
82
129
  title: Motion Assistant
83
- description: Agentic motion assistant for animated HTML pages, launch videos, recipe routing, review, and exports
130
+ description: Agentic motion assistant for animated HTML pages, launch videos,
131
+ recipe routing, review, and exports
84
132
  avatar:
85
133
  emoji:
86
134
  id: high_voltage
@@ -90,45 +138,70 @@ nodes:
90
138
  tasteful animated HTML pages and editable launch-video compositions.
91
139
 
92
140
  Use Motion middleware tools as the system of record. Do not claim that a
93
- Motion project, version, or export was saved unless a tool call succeeded.
141
+ Motion project, version, or export was saved unless a tool call
142
+ succeeded.
94
143
 
95
- Runtime Motion Workbench context may be empty when no project, component,
96
- layer, or recipe is selected:
97
- - motionProjectId: {{env.motionProjectId}}
98
- - motionSurface: {{env.motionSurface}}
99
- - motionSelectedComponentJson: {{{env.motionSelectedComponentJson}}}
100
- - motionSelectedRecipeId: {{env.motionSelectedRecipeId}}
101
- - motionDirty: {{env.motionDirty}}
144
+ Runtime Motion Workbench context may be empty when no project,
145
+ component, layer, or recipe is selected: - motionProjectId:
146
+ {{env.motionProjectId}} - motionSurface: {{env.motionSurface}} -
147
+ motionSelectedComponentJson: {{{env.motionSelectedComponentJson}}} -
148
+ motionSelectedRecipeId: {{env.motionSelectedRecipeId}} - motionDirty:
149
+ {{env.motionDirty}}
102
150
 
103
- Follow the Motion standard:
104
- - Motion must serve feedback, continuity, or attention.
105
- - Prefer the smallest recipe set that satisfies the brief.
106
- - Respect recipe avoid_when and restraint. At most one celebratory or
151
+ Follow the Motion standard: - Motion must serve feedback, continuity, or
152
+ attention. - Prefer the smallest recipe set that satisfies the brief. -
153
+ Respect recipe avoid_when and restraint. At most one celebratory or
107
154
  attention-grabbing moment per visible view.
108
- - Use transform and opacity for moving/fading elements.
109
- - Always preserve prefers-reduced-motion fallbacks.
110
- - Prefer load/scroll/hover/click triggers for HTML and keyframe tracks for
111
- video. Do not add busy decorative motion just because a recipe exists.
155
+ - Use transform and opacity for moving/fading elements. - Always
156
+ preserve prefers-reduced-motion fallbacks. - Prefer
157
+ load/scroll/hover/click triggers for HTML, timed data-hf-id elements for
158
+ HyperFrames, and keyframe tracks only for legacy video. Do not add busy
159
+ decorative motion just because a recipe exists.
112
160
 
113
- Workflow:
114
- 1. Search recipes with motion_search_recipes before choosing specific
161
+ Workflow: 1. Search recipes with motion_search_recipes before choosing
162
+ specific
115
163
  recipes unless the user directly selected a recipe.
116
- 2. If motionProjectId is empty, create a project with motion_create_project.
164
+ 2. If motionProjectId is empty, create a project with
165
+ motion_create_project.
117
166
  Use surface "web" for animated HTML and "video" for launch-video asks.
118
167
  3. For web projects, save complete self-contained HTML with
119
168
  motion_save_web_artifact. Include inline CSS/JS and no external CDN
120
169
  dependency unless the user explicitly asks for one.
121
- 4. For video projects, save a JSON composition with
122
- motion_save_video_composition. Use scenes or layers, keyframe tracks,
123
- kinetic typography, transitions, and motion paths.
124
- 5. Finalize meaningful milestones with motion_finalize_version.
125
- 6. Export text artifacts with motion_export_artifact. For MP4/GIF, tell the
126
- user the Workbench browser exporter will render and save the generated
127
- file.
128
- 7. Use motion_report_failure when generation, import, validation, save, or
170
+ 4. New video projects use native HyperFrames HTML. Save a complete,
171
+ self-contained document with motion_save_hyperframes_composition.
172
+ Include a data-composition-id root, positive data-width, data-height,
173
+ and data-duration, plus stable data-hf-id values. Inline assets because
174
+ production rendering is network-isolated. Use
175
+ motion_save_video_composition only when motion_get_project identifies
176
+ an existing project as legacy_canvas; never convert legacy content by
177
+ guessing.
178
+ 5. Finalize meaningful milestones with motion_finalize_version. 6.
179
+ Export text artifacts with motion_export_artifact. For MP4/GIF on a
180
+ HyperFrames project, the tool queues the Producer production renderer;
181
+ report it as queued until export status succeeds. Legacy Canvas projects
182
+ continue to use the Workbench WebCodecs exporter.
183
+ 7. Use motion_report_failure when generation, import, validation, save,
184
+ or
129
185
  export cannot be completed.
130
186
 
131
- Match the user's language. If the user's language is unclear, respond in English.
187
+ Match the user's language. If the user's language is unclear, respond in
188
+ English.
189
+ promptTemplates: null
190
+ parameters: null
191
+ outputVariables: null
192
+ options: null
193
+ copilotModel:
194
+ copilotId: 25c9a0e3-e4a9-4328-8d5f-14927d6afa4b
195
+ referencedId: null
196
+ modelType: llm
197
+ model: qwen3.6-plus
198
+ options:
199
+ context_size: 1000000
200
+ temperature: 0.2
201
+ maxRetries: 6
202
+ max_tokens: 8192
203
+ top_p: 0.9
204
+ leaderKey: null
132
205
  collaboratorNames: []
133
206
  toolsetIds: []
134
207
  knowledgebaseIds: []
@@ -136,13 +209,143 @@ nodes:
136
209
  - type: workflow
137
210
  key: Middleware_Motion
138
211
  position:
139
- x: 1160
140
- y: 332
212
+ x: 820
213
+ y: 400
141
214
  entity:
142
215
  type: middleware
143
216
  key: Middleware_Motion
144
217
  title: Motion Agent Tools
145
218
  provider: MotionMiddleware
146
219
  required: true
147
- hash: motion-middleware-v1
148
- connections: []
220
+ hash: 080eaa8125eae83fe69fbf21e49d21514649c8778d3747bd640935767204dde3
221
+ - type: workflow
222
+ key: Middleware_URdcLmqWpT
223
+ position:
224
+ x: 580
225
+ y: 340
226
+ entity:
227
+ id: Middleware_URdcLmqWpT
228
+ type: middleware
229
+ key: Middleware_URdcLmqWpT
230
+ title: skillsMiddleware
231
+ provider: skillsMiddleware
232
+ required: true
233
+ options:
234
+ skills:
235
+ - 30b7955a-f618-407c-b782-c4fb5c44741d
236
+ hash: 1152d22519836ee41ecc7300ee3ac3b96573c77eaa24c88b34af32f192567f5c
237
+ - type: workflow
238
+ key: Middleware_A844uYR0y9
239
+ position:
240
+ x: 1200
241
+ y: 340
242
+ entity:
243
+ type: middleware
244
+ key: Middleware_A844uYR0y9
245
+ title: 中间件 3
246
+ provider: WebTools
247
+ required: true
248
+ hash: 2dd0c7ab9fd7fd3fe48216f0a8467dc374e1ef4923dd7ff98bf21c7d39355761
249
+ - type: workflow
250
+ key: Middleware_hFTsqEWZS1
251
+ position:
252
+ x: 1460
253
+ y: 340
254
+ entity:
255
+ type: middleware
256
+ key: Middleware_hFTsqEWZS1
257
+ title: 中间件 4
258
+ provider: SandboxFile
259
+ required: true
260
+ hash: a675047631c81c774f5e3b0c5f66cd7574e3fafa10862631720ab18df685c1b6
261
+ - type: workflow
262
+ key: Middleware_aGyP20FjEp
263
+ position:
264
+ x: 1281
265
+ y: 692
266
+ entity:
267
+ type: middleware
268
+ key: Middleware_aGyP20FjEp
269
+ title: 中间件 5
270
+ provider: SandboxShell
271
+ required: true
272
+ - type: workflow
273
+ key: Middleware_4BSEKi9Fmv
274
+ position:
275
+ x: 960
276
+ y: 820
277
+ entity:
278
+ type: middleware
279
+ key: Middleware_4BSEKi9Fmv
280
+ title: 中间件 6
281
+ provider: LoopGuardMiddleware
282
+ required: true
283
+ hash: 6a89f0825e6e7f90a5bb4e2c4bd7c75594936aaa433b4a05016a6dae023fd6ef
284
+ - type: workflow
285
+ key: Middleware_zZl4L6CA2h
286
+ position:
287
+ x: 1160
288
+ y: 580
289
+ entity:
290
+ type: middleware
291
+ key: Middleware_zZl4L6CA2h
292
+ title: 中间件 7
293
+ provider: ModelRetryMiddleware
294
+ required: true
295
+ options:
296
+ maxRetries: 2
297
+ initialDelayMs: 1000
298
+ backoffFactor: 2
299
+ maxDelayMs: 60000
300
+ jitter: true
301
+ retryAllErrors: true
302
+ retryableErrorNames: []
303
+ retryableStatusCodes: []
304
+ retryableMessageIncludes: []
305
+ onFailure: continue
306
+ hash: 44bd8bad13dfac4b430de900b408d8b8ae4d2eae537ba11f318e9d1cc7dec320
307
+ - type: workflow
308
+ key: Middleware_oA3RvmYZxE
309
+ position:
310
+ x: 1720
311
+ y: 740
312
+ entity:
313
+ type: middleware
314
+ key: Middleware_oA3RvmYZxE
315
+ title: 中间件 8
316
+ provider: ViewImageMiddleware
317
+ required: true
318
+ hash: 33cb91a7c27c118eb4ba5e8c91a2cebf37f19134a6c3b0c8ee8e916f3726daa1
319
+ connections:
320
+ - type: workflow
321
+ key: Agent_Motion/Middleware_URdcLmqWpT
322
+ from: Agent_Motion
323
+ to: Middleware_URdcLmqWpT
324
+ - type: workflow
325
+ key: Agent_Motion/Middleware_Motion
326
+ from: Agent_Motion
327
+ to: Middleware_Motion
328
+ - type: workflow
329
+ key: Agent_Motion/Middleware_A844uYR0y9
330
+ from: Agent_Motion
331
+ to: Middleware_A844uYR0y9
332
+ - type: workflow
333
+ key: Agent_Motion/Middleware_hFTsqEWZS1
334
+ from: Agent_Motion
335
+ to: Middleware_hFTsqEWZS1
336
+ - type: workflow
337
+ key: Agent_Motion/Middleware_aGyP20FjEp
338
+ from: Agent_Motion
339
+ to: Middleware_aGyP20FjEp
340
+ - type: workflow
341
+ key: Agent_Motion/Middleware_zZl4L6CA2h
342
+ from: Agent_Motion
343
+ to: Middleware_zZl4L6CA2h
344
+ - type: workflow
345
+ key: Agent_Motion/Middleware_4BSEKi9Fmv
346
+ from: Agent_Motion
347
+ to: Middleware_4BSEKi9Fmv
348
+ - type: workflow
349
+ key: Agent_Motion/Middleware_oA3RvmYZxE
350
+ from: Agent_Motion
351
+ to: Middleware_oA3RvmYZxE
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xpert-ai/plugin-motion",
3
- "version": "0.1.0",
4
- "description": "Motion app plugin for agent-generated animated HTML, launch video compositions, motion recipe routing, reviewable versions, and exportable artifacts.",
3
+ "version": "0.3.0",
4
+ "description": "Motion Agentic App with Motion Anything-derived workflows, native HyperFrames video composition, Player preview, and Producer rendering.",
5
5
  "author": {
6
6
  "name": "XpertAI",
7
7
  "url": "https://xpertai.cn"
@@ -38,7 +38,8 @@
38
38
  ],
39
39
  "xpert": {
40
40
  "plugin": {
41
- "level": "system"
41
+ "level": "system",
42
+ "artifactNamespace": "motion"
42
43
  }
43
44
  },
44
45
  "dependencies": {
@@ -49,8 +50,8 @@
49
50
  "@nestjs/common": "^11.1.6",
50
51
  "@nestjs/core": "^11.1.6",
51
52
  "@nestjs/typeorm": "^11.0.0",
52
- "@xpert-ai/contracts": "^3.10.1",
53
- "@xpert-ai/plugin-sdk": "^3.10.1",
53
+ "@xpert-ai/contracts": "^3.15.12",
54
+ "@xpert-ai/plugin-sdk": "^3.15.12",
54
55
  "react": ">=18",
55
56
  "react-dom": ">=18",
56
57
  "typeorm": "^0.3.24",
@@ -66,8 +67,13 @@
66
67
  "@types/node": "^20.19.9",
67
68
  "@types/react": "^18.3.31",
68
69
  "@types/react-dom": "^18.3.7",
69
- "@xpert-ai/contracts": "3.10.1",
70
- "@xpert-ai/plugin-sdk": "^3.10.1",
70
+ "@hyperframes/player": "0.7.63",
71
+ "@hyperframes/producer": "0.7.63",
72
+ "@hyperframes/sdk": "0.7.63",
73
+ "@esbuild/darwin-arm64": "0.27.7",
74
+ "@esbuild/linux-x64": "0.27.7",
75
+ "@xpert-ai/contracts": "3.15.12",
76
+ "@xpert-ai/plugin-sdk": "3.15.12",
71
77
  "esbuild": "^0.27.0",
72
78
  "jest": "^30.0.2",
73
79
  "react": "^18.3.1",
@@ -82,9 +88,12 @@
82
88
  "access": "public"
83
89
  },
84
90
  "scripts": {
85
- "build": "node scripts/build-remote-components.mjs && tsc -p tsconfig.lib.json && node scripts/copy-assets.mjs",
91
+ "build:ui": "pnpm --filter @xpert-ai/plugin-shadcn-ui build",
92
+ "build:sandbox-action": "node scripts/build-sandbox-action.mjs",
93
+ "verify:sandbox-action": "node scripts/verify-sandbox-action.mjs",
94
+ "build": "pnpm run build:ui && node scripts/build-remote-components.mjs && tsc -p tsconfig.lib.json && node scripts/copy-assets.mjs && pnpm run build:sandbox-action && pnpm run verify:sandbox-action",
86
95
  "lint": "echo \"(todo) add lint\"",
87
- "test": "jest --config jest.config.ts && tsc -p tsconfig.spec.json --noEmit && tsc -p tsconfig.remote.json --noEmit && node scripts/build-remote-components.mjs --check",
88
- "typecheck": "tsc -p tsconfig.spec.json --noEmit && tsc -p tsconfig.remote.json --noEmit && node scripts/build-remote-components.mjs --check"
96
+ "test": "pnpm run build:ui && jest --config jest.config.ts && tsc -p tsconfig.spec.json --noEmit && tsc -p tsconfig.remote.json --noEmit && node scripts/build-remote-components.mjs --check && pnpm run build:sandbox-action && pnpm run verify:sandbox-action",
97
+ "typecheck": "pnpm run build:ui && tsc -p tsconfig.spec.json --noEmit && tsc -p tsconfig.remote.json --noEmit && node scripts/build-remote-components.mjs --check"
89
98
  }
90
99
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: motion-agent-skill
3
- description: Use the Motion Workbench to create motion artifacts, including animated HTML and video compositions, with human review.
3
+ description: Use the Motion Workbench to create animated HTML and native HyperFrames video compositions, with legacy-video compatibility and human review.
4
4
  ---
5
5
 
6
6
  Use this skill when creating, editing, reviewing, versioning, or exporting Motion artifacts through the Xpert Motion plugin.
@@ -22,12 +22,13 @@ Use the tools in this order unless the user asks for a direct lookup:
22
22
 
23
23
  - `motion_search_recipes`: find recipes by query, surface, target, runtime, export kind, and status.
24
24
  - `motion_get_recipe`: inspect a selected recipe manifest, skill text, and implementation files.
25
- - `motion_create_project`: create a project from title, brief, selected recipes, HTML, or video composition.
25
+ - `motion_create_project`: create a project from title, brief, selected recipes, HTML, or native HyperFrames source. A new `video` project defaults to HyperFrames.
26
26
  - `motion_get_project`: retrieve working copy, versions, exports, and logs.
27
27
  - `motion_save_web_artifact`: persist a complete HTML document with Motion runtime attributes.
28
- - `motion_save_video_composition`: persist a JSON video composition.
28
+ - `motion_save_hyperframes_composition`: persist a complete self-contained native HyperFrames HTML composition. Use this for new video projects.
29
+ - `motion_save_video_composition`: persist a JSON composition only when `motion_get_project` identifies the existing project as `legacy_canvas`.
29
30
  - `motion_finalize_version`: create a reviewable version from the current working copy.
30
- - `motion_export_artifact`: export text artifacts. For MP4/GIF, use the Workbench browser exporter and save through the file action.
31
+ - `motion_export_artifact`: export text artifacts. MP4/GIF on HyperFrames projects queues Producer; legacy projects continue to use the Workbench browser exporter.
31
32
  - `motion_update_project_status`: mark draft, reviewed, archived, or failed.
32
33
  - `motion_report_failure`: record failed operations and evidence.
33
34
 
@@ -41,9 +42,20 @@ HTML artifacts must be complete HTML documents. Use Motion attributes on editabl
41
42
 
42
43
  Keep motion useful and restrained. Always preserve reduced-motion behavior by relying on the injected runtime.
43
44
 
44
- ## Video Composition Rules
45
+ ## HyperFrames Video Rules
45
46
 
46
- Video compositions are JSON objects with:
47
+ New video projects use a complete native HyperFrames HTML document as the source of truth:
48
+
49
+ - Include one root with `data-composition-id`, positive `data-width`, `data-height`, and `data-duration`.
50
+ - Give editable elements stable `data-hf-id` values and explicit `data-start` / `data-duration` timing when relevant.
51
+ - Keep the document self-contained. Inline CSS, scripts, fonts, and data-URI media; production Sandbox Jobs have no network access.
52
+ - Use the public HyperFrames SDK document model. Preview is handled by Player; production MP4/GIF is handled by Producer.
53
+ - Never require or generate a HyperFrames Studio embedding.
54
+ - After saving, use `motion_export_artifact` with `mp4` or `gif` to queue a production render. Report the queued state truthfully; do not claim completion until the export record is `succeeded`.
55
+
56
+ ## Legacy Video Compatibility
57
+
58
+ Only existing `legacy_canvas` projects use JSON compositions with:
47
59
 
48
60
  - `w`, `h`, `fps`, `bg`, and `duration`.
49
61
  - `layers` for simple one-scene videos.
@@ -51,7 +63,7 @@ Video compositions are JSON objects with:
51
63
  - `shared` for backgrounds or persistent layers.
52
64
  - Layer tracks for `opacity`, `x`, `y`, `scale`, `rotate`, and `blur`.
53
65
 
54
- Prefer kinetic typography, clear scene pacing, simple transitions, and a small number of meaningful visual moments.
66
+ Canvas/WebCodecs is retained for quick local preview and historical-project export. Do not convert a legacy project implicitly, and do not add new engine-level features to this path.
55
67
 
56
68
  ## Failure Handling
57
69