@prestyj/cli 5.28.0 → 5.29.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 (398) hide show
  1. package/README.md +2 -2
  2. package/assets/motion/THIRD-PARTY.md +14 -19
  3. package/assets/motion/bin/contact-sheet.mjs +9 -3
  4. package/assets/motion/bin/cues.mjs +337 -0
  5. package/assets/motion/bin/flash-check.mjs +314 -0
  6. package/assets/motion/bin/fonts.mjs +17 -13
  7. package/assets/motion/bin/library.mjs +61 -18
  8. package/assets/motion/bin/motion-blur.mjs +943 -0
  9. package/assets/motion/bin/motion-check.mjs +366 -9
  10. package/assets/motion/bin/music-fit.mjs +436 -0
  11. package/assets/motion/bin/pdf-extract.mjs +22 -10
  12. package/assets/motion/bin/reference-study.mjs +346 -0
  13. package/assets/motion/bin/score-synth.mjs +1052 -93
  14. package/assets/motion/fonts/finger-paint/OFL.txt +93 -0
  15. package/assets/motion/fonts/finger-paint/finger-paint-normal.woff2 +0 -0
  16. package/assets/motion/fonts/fonts.json +56 -0
  17. package/assets/motion/fonts/short-stack/OFL.txt +94 -0
  18. package/assets/motion/fonts/short-stack/short-stack-normal.woff2 +0 -0
  19. package/assets/motion/fonts/sora/OFL.txt +93 -0
  20. package/assets/motion/fonts/sora/sora-normal.woff2 +0 -0
  21. package/assets/motion/fonts/specimen.jpg +0 -0
  22. package/assets/motion/fonts/unbounded/OFL.txt +93 -0
  23. package/assets/motion/fonts/unbounded/unbounded-normal.woff2 +0 -0
  24. package/assets/motion/library/README.md +52 -14
  25. package/assets/motion/library/kit/moves.js +1981 -0
  26. package/assets/motion/library/library.json +232 -0
  27. package/assets/motion/library/pieces/camera-rig/meta.json +13 -0
  28. package/assets/motion/library/pieces/camera-rig/piece.html +153 -0
  29. package/assets/motion/library/pieces/camera-rig/preview.jpg +0 -0
  30. package/assets/motion/library/pieces/chain-knock/meta.json +13 -0
  31. package/assets/motion/library/pieces/chain-knock/piece.html +195 -0
  32. package/assets/motion/library/pieces/chain-knock/preview.jpg +0 -0
  33. package/assets/motion/library/pieces/gather-to-logo/meta.json +13 -0
  34. package/assets/motion/library/pieces/gather-to-logo/piece.html +159 -0
  35. package/assets/motion/library/pieces/gather-to-logo/preview.jpg +0 -0
  36. package/assets/motion/library/pieces/morph-carry/meta.json +13 -0
  37. package/assets/motion/library/pieces/morph-carry/piece.html +173 -0
  38. package/assets/motion/library/pieces/morph-carry/preview.jpg +0 -0
  39. package/assets/motion/library/pieces/one-shape-journey/meta.json +13 -0
  40. package/assets/motion/library/pieces/one-shape-journey/piece.html +195 -0
  41. package/assets/motion/library/pieces/one-shape-journey/preview.jpg +0 -0
  42. package/assets/motion/library/pieces/open-from-subject/meta.json +13 -0
  43. package/assets/motion/library/pieces/open-from-subject/piece.html +168 -0
  44. package/assets/motion/library/pieces/open-from-subject/preview.jpg +0 -0
  45. package/assets/motion/library/pieces/request-to-result/meta.json +13 -0
  46. package/assets/motion/library/pieces/request-to-result/piece.html +212 -0
  47. package/assets/motion/library/pieces/request-to-result/preview.jpg +0 -0
  48. package/assets/motion/library/pieces/scale-dive/meta.json +13 -0
  49. package/assets/motion/library/pieces/scale-dive/piece.html +321 -0
  50. package/assets/motion/library/pieces/scale-dive/preview.jpg +0 -0
  51. package/assets/motion/library/pieces/screen-replica-steps/meta.json +13 -0
  52. package/assets/motion/library/pieces/screen-replica-steps/piece.html +366 -0
  53. package/assets/motion/library/pieces/screen-replica-steps/preview.jpg +0 -0
  54. package/assets/motion/library/pieces/zoom-into-card/meta.json +13 -0
  55. package/assets/motion/library/pieces/zoom-into-card/piece.html +179 -0
  56. package/assets/motion/library/pieces/zoom-into-card/preview.jpg +0 -0
  57. package/assets/motion/library/sheets/diagram.jpg +0 -0
  58. package/assets/motion/library/sheets/frame.jpg +0 -0
  59. package/assets/motion/library/sheets/transition.jpg +0 -0
  60. package/assets/motion/library/sheets/ui.jpg +0 -0
  61. package/assets/motion/plugin.json +1 -1
  62. package/assets/motion/references/build-sheet.md +206 -0
  63. package/assets/motion/references/runtime/determinism-rules.md +3 -3
  64. package/assets/motion/references/runtime/gsap-easing-and-stagger.md +28 -28
  65. package/assets/motion/references/runtime/gsap.md +3 -3
  66. package/assets/motion/references/runtime/inputs-and-assets.md +21 -16
  67. package/assets/motion/references/runtime/lint-validate-inspect.md +3 -3
  68. package/assets/motion/references/runtime/minimal-composition.md +6 -0
  69. package/assets/motion/references/runtime/preview-render.md +3 -3
  70. package/assets/motion/skills/app-walkthrough/SKILL.md +66 -0
  71. package/assets/motion/skills/before-after/SKILL.md +53 -0
  72. package/assets/motion/skills/brand-kit/SKILL.md +17 -16
  73. package/assets/motion/skills/dev-tool-video/SKILL.md +57 -0
  74. package/assets/motion/skills/launch-video/SKILL.md +62 -0
  75. package/assets/motion/skills/match-reference/SKILL.md +58 -0
  76. package/assets/motion/skills/motion/SKILL.md +167 -98
  77. package/assets/motion/skills/source-ingest/SKILL.md +23 -15
  78. package/assets/motion/skills/website-video/SKILL.md +59 -0
  79. package/assets/skills/bulletproof/SKILL.md +36 -11
  80. package/assets/skills/bulletproof/references/agent-surface.md +19 -9
  81. package/assets/skills/bulletproof/references/audit-protocol.md +20 -5
  82. package/assets/skills/bulletproof/references/platform-playbooks.md +5 -4
  83. package/assets/skills/bulletproof/references/provenance.md +26 -1
  84. package/assets/skills/bulletproof/references/secure-defaults.md +6 -5
  85. package/assets/skills/bulletproof/references/supply-chain.md +21 -17
  86. package/assets/skills/bulletproof/references/threat-landscape.md +28 -26
  87. package/assets/skills/bulletproof/references/verification.md +2 -0
  88. package/assets/skills/clarify/SKILL.md +25 -16
  89. package/assets/skills/code-review/SKILL.md +71 -13
  90. package/assets/skills/code-review/references/agent-diffs.md +27 -0
  91. package/assets/skills/code-review/references/tests.md +19 -0
  92. package/assets/skills/compliance-guard/SKILL.md +20 -5
  93. package/assets/skills/compliance-guard/references/artifacts.md +1 -1
  94. package/assets/skills/compliance-guard/references/eu-uk.md +16 -16
  95. package/assets/skills/compliance-guard/references/lawsuit-vectors.md +5 -5
  96. package/assets/skills/compliance-guard/references/provenance.md +41 -2
  97. package/assets/skills/compliance-guard/references/sector-gates.md +3 -3
  98. package/assets/skills/compliance-guard/references/security-baseline.md +2 -2
  99. package/assets/skills/compliance-guard/references/trigger-map.md +5 -5
  100. package/assets/skills/compliance-guard/references/us.md +27 -21
  101. package/assets/skills/durable/SKILL.md +87 -79
  102. package/assets/skills/durable/references/agent-db-safety.md +69 -0
  103. package/assets/skills/durable/references/backups-and-runtime.md +19 -12
  104. package/assets/skills/durable/references/migrations-and-schema.md +13 -6
  105. package/assets/skills/evidence-led-ui/SKILL.md +69 -127
  106. package/assets/skills/evidence-led-ui/references/anti-defaults.md +107 -208
  107. package/assets/skills/evidence-led-ui/references/direction.md +124 -0
  108. package/assets/skills/evidence-led-ui/references/production-contract.md +8 -0
  109. package/assets/skills/evidence-led-ui/references/provenance.md +24 -1
  110. package/assets/skills/lean/SKILL.md +90 -71
  111. package/assets/skills/lean/references/memory-and-processes.md +3 -2
  112. package/assets/skills/lean/references/playbooks.md +37 -12
  113. package/assets/skills/refactoring/SKILL.md +24 -3
  114. package/assets/skills/refactoring/references/agent-pitfalls.md +4 -1
  115. package/assets/skills/refactoring/references/legacy.md +21 -0
  116. package/assets/skills/root-cause/SKILL.md +20 -10
  117. package/assets/skills/shared-language/SKILL.md +16 -14
  118. package/assets/skills/tdd/SKILL.md +27 -15
  119. package/dist/app-sidecar.js +203 -47
  120. package/dist/app-sidecar.js.map +1 -1
  121. package/dist/cli.js +20 -28
  122. package/dist/cli.js.map +1 -1
  123. package/dist/core/acceptance-checks.d.ts +48 -0
  124. package/dist/core/acceptance-checks.js +144 -0
  125. package/dist/core/acceptance-checks.js.map +1 -0
  126. package/dist/core/agent-session.d.ts +119 -75
  127. package/dist/core/agent-session.js +561 -395
  128. package/dist/core/agent-session.js.map +1 -1
  129. package/dist/core/agents.d.ts +6 -5
  130. package/dist/core/agents.js +12 -3
  131. package/dist/core/agents.js.map +1 -1
  132. package/dist/core/ask-user.d.ts +90 -8
  133. package/dist/core/ask-user.js +124 -13
  134. package/dist/core/ask-user.js.map +1 -1
  135. package/dist/core/auth-providers.js +1 -1
  136. package/dist/core/auth-providers.js.map +1 -1
  137. package/dist/core/autopilot-verdict.d.ts +5 -1
  138. package/dist/core/autopilot-verdict.js +30 -13
  139. package/dist/core/autopilot-verdict.js.map +1 -1
  140. package/dist/core/bundled-agents.js +1 -3
  141. package/dist/core/bundled-agents.js.map +1 -1
  142. package/dist/core/cache-diagnostics.d.ts +68 -0
  143. package/dist/core/cache-diagnostics.js +196 -0
  144. package/dist/core/cache-diagnostics.js.map +1 -0
  145. package/dist/core/cache-expiry.d.ts +87 -0
  146. package/dist/core/cache-expiry.js +111 -0
  147. package/dist/core/cache-expiry.js.map +1 -0
  148. package/dist/core/compaction/compactor.js +78 -48
  149. package/dist/core/compaction/compactor.js.map +1 -1
  150. package/dist/core/compaction/plan-step-policy.d.ts +46 -0
  151. package/dist/core/compaction/plan-step-policy.js +57 -0
  152. package/dist/core/compaction/plan-step-policy.js.map +1 -0
  153. package/dist/core/destructive-git-guard.d.ts +90 -0
  154. package/dist/core/destructive-git-guard.js +871 -0
  155. package/dist/core/destructive-git-guard.js.map +1 -0
  156. package/dist/core/event-bus.d.ts +3 -0
  157. package/dist/core/event-bus.js +5 -0
  158. package/dist/core/event-bus.js.map +1 -1
  159. package/dist/core/fast-apply-benchmark.d.ts +1 -1
  160. package/dist/core/fast-apply-benchmark.js +2 -2
  161. package/dist/core/fast-apply-benchmark.js.map +1 -1
  162. package/dist/core/injection-detect.d.ts +38 -0
  163. package/dist/core/injection-detect.js +232 -0
  164. package/dist/core/injection-detect.js.map +1 -0
  165. package/dist/core/keep-awake.d.ts +88 -0
  166. package/dist/core/keep-awake.js +251 -0
  167. package/dist/core/keep-awake.js.map +1 -0
  168. package/dist/core/mcp/client.d.ts +72 -0
  169. package/dist/core/mcp/client.js +264 -41
  170. package/dist/core/mcp/client.js.map +1 -1
  171. package/dist/core/mcp/content.js +6 -2
  172. package/dist/core/mcp/content.js.map +1 -1
  173. package/dist/core/mcp/store.d.ts +6 -1
  174. package/dist/core/mcp/store.js +12 -1
  175. package/dist/core/mcp/store.js.map +1 -1
  176. package/dist/core/mcp/types.d.ts +18 -0
  177. package/dist/core/model-unavailable.d.ts +14 -0
  178. package/dist/core/model-unavailable.js +23 -0
  179. package/dist/core/model-unavailable.js.map +1 -0
  180. package/dist/core/node-debugger.d.ts +148 -0
  181. package/dist/core/node-debugger.js +642 -0
  182. package/dist/core/node-debugger.js.map +1 -0
  183. package/dist/core/nolan-context.d.ts +7 -5
  184. package/dist/core/nolan-context.js +106 -16
  185. package/dist/core/nolan-context.js.map +1 -1
  186. package/dist/core/nolan-prompt.js +24 -21
  187. package/dist/core/nolan-prompt.js.map +1 -1
  188. package/dist/core/package-threats.d.ts +18 -0
  189. package/dist/core/package-threats.js +168 -0
  190. package/dist/core/package-threats.js.map +1 -0
  191. package/dist/core/persistent-shell.d.ts +58 -6
  192. package/dist/core/persistent-shell.js +331 -49
  193. package/dist/core/persistent-shell.js.map +1 -1
  194. package/dist/core/process-manager.d.ts +14 -0
  195. package/dist/core/process-manager.js +61 -0
  196. package/dist/core/process-manager.js.map +1 -1
  197. package/dist/core/progress/git-xp.js +8 -14
  198. package/dist/core/progress/git-xp.js.map +1 -1
  199. package/dist/core/project-discovery.js +77 -26
  200. package/dist/core/project-discovery.js.map +1 -1
  201. package/dist/core/semantic-search-benchmark.d.ts +1 -1
  202. package/dist/core/semantic-search-benchmark.js +2 -2
  203. package/dist/core/semantic-search-benchmark.js.map +1 -1
  204. package/dist/core/session-history.d.ts +12 -0
  205. package/dist/core/session-history.js +27 -0
  206. package/dist/core/session-history.js.map +1 -1
  207. package/dist/core/session-manager.d.ts +13 -1
  208. package/dist/core/session-manager.js +38 -18
  209. package/dist/core/session-manager.js.map +1 -1
  210. package/dist/core/session-summary-index.d.ts +37 -0
  211. package/dist/core/session-summary-index.js +172 -0
  212. package/dist/core/session-summary-index.js.map +1 -0
  213. package/dist/core/settings-manager.d.ts +2 -0
  214. package/dist/core/settings-manager.js +10 -0
  215. package/dist/core/settings-manager.js.map +1 -1
  216. package/dist/core/shell-threats-popular-packages.d.ts +11 -0
  217. package/dist/core/shell-threats-popular-packages.js +675 -0
  218. package/dist/core/shell-threats-popular-packages.js.map +1 -0
  219. package/dist/core/shell-threats.d.ts +8 -0
  220. package/dist/core/shell-threats.js +186 -0
  221. package/dist/core/shell-threats.js.map +1 -0
  222. package/dist/core/skills.js +16 -4
  223. package/dist/core/skills.js.map +1 -1
  224. package/dist/core/stream-rules.d.ts +30 -0
  225. package/dist/core/stream-rules.js +151 -0
  226. package/dist/core/stream-rules.js.map +1 -0
  227. package/dist/core/subagent-manager.d.ts +23 -6
  228. package/dist/core/subagent-manager.js +25 -9
  229. package/dist/core/subagent-manager.js.map +1 -1
  230. package/dist/core/subagent-policy.js +1 -1
  231. package/dist/core/subagent-policy.js.map +1 -1
  232. package/dist/core/subagent-receipt.d.ts +54 -0
  233. package/dist/core/subagent-receipt.js +276 -0
  234. package/dist/core/subagent-receipt.js.map +1 -0
  235. package/dist/core/subagent-turn-record.d.ts +2 -0
  236. package/dist/core/subagent-turn-record.js.map +1 -1
  237. package/dist/core/test-impact.d.ts +73 -0
  238. package/dist/core/test-impact.js +467 -0
  239. package/dist/core/test-impact.js.map +1 -0
  240. package/dist/core/thinking-level.d.ts +1 -1
  241. package/dist/core/thinking-level.js +1 -1
  242. package/dist/core/thinking-level.js.map +1 -1
  243. package/dist/core/verification-gate.d.ts +2 -0
  244. package/dist/core/verification-gate.js +4 -0
  245. package/dist/core/verification-gate.js.map +1 -1
  246. package/dist/core/verification-snapshot.js +3 -5
  247. package/dist/core/verification-snapshot.js.map +1 -1
  248. package/dist/core/workspace-guard.d.ts +18 -7
  249. package/dist/core/workspace-guard.js +227 -60
  250. package/dist/core/workspace-guard.js.map +1 -1
  251. package/dist/core/worktree-setup.d.ts +23 -0
  252. package/dist/core/worktree-setup.js +128 -9
  253. package/dist/core/worktree-setup.js.map +1 -1
  254. package/dist/core/worktree.d.ts +20 -2
  255. package/dist/core/worktree.js +74 -31
  256. package/dist/core/worktree.js.map +1 -1
  257. package/dist/interactive.js +2 -1
  258. package/dist/interactive.js.map +1 -1
  259. package/dist/modes/json-mode.js +11 -2
  260. package/dist/modes/json-mode.js.map +1 -1
  261. package/dist/modes/subagent-worker-mode.d.ts +36 -1
  262. package/dist/modes/subagent-worker-mode.js +100 -42
  263. package/dist/modes/subagent-worker-mode.js.map +1 -1
  264. package/dist/motion-agent/motion-agent.d.ts +7 -3
  265. package/dist/motion-agent/motion-agent.js +6 -8
  266. package/dist/motion-agent/motion-agent.js.map +1 -1
  267. package/dist/motion-agent/motion-prompt.d.ts +1 -1
  268. package/dist/motion-agent/motion-prompt.js +16 -25
  269. package/dist/motion-agent/motion-prompt.js.map +1 -1
  270. package/dist/motion-agent/motion-review-session.js +1 -1
  271. package/dist/motion-agent/motion-review-session.js.map +1 -1
  272. package/dist/motion-agent/motion-review.d.ts +10 -3
  273. package/dist/motion-agent/motion-review.js +15 -7
  274. package/dist/motion-agent/motion-review.js.map +1 -1
  275. package/dist/motion-agent/motion-studio-context.js +1 -1
  276. package/dist/motion-agent/motion-studio-context.js.map +1 -1
  277. package/dist/system-prompt.d.ts +2 -1
  278. package/dist/system-prompt.js +15 -4
  279. package/dist/system-prompt.js.map +1 -1
  280. package/dist/test-support/keep-alive.d.ts +14 -0
  281. package/dist/test-support/keep-alive.js +17 -0
  282. package/dist/test-support/keep-alive.js.map +1 -0
  283. package/dist/tools/ask-user.js +3 -3
  284. package/dist/tools/ask-user.js.map +1 -1
  285. package/dist/tools/bash-read-evidence.d.ts +10 -0
  286. package/dist/tools/bash-read-evidence.js +133 -0
  287. package/dist/tools/bash-read-evidence.js.map +1 -0
  288. package/dist/tools/bash.d.ts +10 -1
  289. package/dist/tools/bash.js +179 -7
  290. package/dist/tools/bash.js.map +1 -1
  291. package/dist/tools/debug.d.ts +54 -0
  292. package/dist/tools/debug.js +233 -0
  293. package/dist/tools/debug.js.map +1 -0
  294. package/dist/tools/edit.js +13 -5
  295. package/dist/tools/edit.js.map +1 -1
  296. package/dist/tools/goals.d.ts +1 -1
  297. package/dist/tools/index.d.ts +25 -2
  298. package/dist/tools/index.js +48 -7
  299. package/dist/tools/index.js.map +1 -1
  300. package/dist/tools/prompt-hints.js +2 -0
  301. package/dist/tools/prompt-hints.js.map +1 -1
  302. package/dist/tools/read-tracker.d.ts +35 -2
  303. package/dist/tools/read-tracker.js +108 -11
  304. package/dist/tools/read-tracker.js.map +1 -1
  305. package/dist/tools/read.js +39 -7
  306. package/dist/tools/read.js.map +1 -1
  307. package/dist/tools/skill.js +5 -0
  308. package/dist/tools/skill.js.map +1 -1
  309. package/dist/tools/subagent-control.js +44 -8
  310. package/dist/tools/subagent-control.js.map +1 -1
  311. package/dist/tools/subagent-shared.d.ts +48 -8
  312. package/dist/tools/subagent-shared.js +75 -14
  313. package/dist/tools/subagent-shared.js.map +1 -1
  314. package/dist/tools/subagent.d.ts +8 -2
  315. package/dist/tools/subagent.js +28 -10
  316. package/dist/tools/subagent.js.map +1 -1
  317. package/dist/tools/task-output.js +3 -2
  318. package/dist/tools/task-output.js.map +1 -1
  319. package/dist/tools/task-send.d.ts +1 -1
  320. package/dist/tools/task-send.js +15 -1
  321. package/dist/tools/task-send.js.map +1 -1
  322. package/dist/tools/tool-tiers.d.ts +2 -2
  323. package/dist/tools/tool-tiers.js +3 -2
  324. package/dist/tools/tool-tiers.js.map +1 -1
  325. package/dist/tools/truncate.d.ts +21 -0
  326. package/dist/tools/truncate.js +187 -0
  327. package/dist/tools/truncate.js.map +1 -1
  328. package/dist/tools/ui-adopt.js +2 -0
  329. package/dist/tools/ui-adopt.js.map +1 -1
  330. package/dist/tools/write.js +4 -3
  331. package/dist/tools/write.js.map +1 -1
  332. package/dist/ui/App.d.ts +0 -4
  333. package/dist/ui/App.js +5 -28
  334. package/dist/ui/App.js.map +1 -1
  335. package/dist/ui/components/ActivityIndicator.js +1 -0
  336. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  337. package/dist/ui/components/Footer.js +1 -1
  338. package/dist/ui/components/Footer.js.map +1 -1
  339. package/dist/ui/hooks/useAgentLoop.d.ts +1 -8
  340. package/dist/ui/hooks/useAgentLoop.js +1 -119
  341. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  342. package/dist/ui/render.d.ts +2 -4
  343. package/dist/ui/render.js +3 -2
  344. package/dist/ui/render.js.map +1 -1
  345. package/dist/utils/git.d.ts +77 -0
  346. package/dist/utils/git.js +285 -21
  347. package/dist/utils/git.js.map +1 -1
  348. package/dist/utils/github-ci.js +2 -1
  349. package/dist/utils/github-ci.js.map +1 -1
  350. package/dist/utils/github.js +11 -9
  351. package/dist/utils/github.js.map +1 -1
  352. package/dist/utils/image.d.ts +14 -0
  353. package/dist/utils/image.js +16 -0
  354. package/dist/utils/image.js.map +1 -1
  355. package/dist/utils/process.d.ts +20 -0
  356. package/dist/utils/process.js +98 -0
  357. package/dist/utils/process.js.map +1 -1
  358. package/dist/utils/text.d.ts +12 -0
  359. package/dist/utils/text.js +11 -0
  360. package/dist/utils/text.js.map +1 -1
  361. package/package.json +6 -6
  362. package/assets/motion/skills/mixkit-split-text-617/SKILL.md +0 -115
  363. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-480.json +0 -1
  364. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-494.json +0 -1
  365. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-5.json +0 -1
  366. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-508.json +0 -1
  367. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6525.json +0 -1
  368. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6539.json +0 -1
  369. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6647.json +0 -1
  370. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6663.json +0 -1
  371. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6677.json +0 -1
  372. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6691.json +0 -1
  373. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6706.json +0 -1
  374. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6722.json +0 -1
  375. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6736.json +0 -1
  376. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6750.json +0 -1
  377. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6764.json +0 -1
  378. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6780.json +0 -1
  379. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6794.json +0 -1
  380. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6810.json +0 -1
  381. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6823.json +0 -1
  382. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6872.json +0 -1
  383. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-6936.json +0 -1
  384. package/assets/motion/skills/mixkit-split-text-617/data/compositions/comp-76.json +0 -1
  385. package/assets/motion/skills/mixkit-split-text-617/data/manifest.json +0 -495
  386. package/assets/motion/skills/mixkit-split-text-617/references/RECONSTRUCTION.md +0 -201
  387. package/assets/motion/skills/mixkit-split-text-617/references/VERIFICATION.md +0 -107
  388. package/assets/motion/skills/mixkit-split-text-617/tools/inspect_motion.py +0 -130
  389. package/assets/motion/skills/video-qa/SKILL.md +0 -66
  390. package/dist/core/ideal-review-subagent.d.ts +0 -42
  391. package/dist/core/ideal-review-subagent.js +0 -95
  392. package/dist/core/ideal-review-subagent.js.map +0 -1
  393. package/dist/core/ideal-review.d.ts +0 -82
  394. package/dist/core/ideal-review.js +0 -242
  395. package/dist/core/ideal-review.js.map +0 -1
  396. package/dist/motion-agent/motion-check-tool.d.ts +0 -21
  397. package/dist/motion-agent/motion-check-tool.js +0 -206
  398. package/dist/motion-agent/motion-check-tool.js.map +0 -1
@@ -0,0 +1,168 @@
1
+ <!doctype html>
2
+ <!--
3
+ open-from-subject: a hero mark (a round dot with a short label) pops in and
4
+ holds; then the next stage opens as a growing circle out of the mark's own
5
+ centre, revealing a --field-2 scene whose headline rises in. The headline
6
+ ink is whichever of --ink / --field reads better on --field-2 (measured
7
+ once from the look's tokens, so it stays seek-safe).
8
+ Needs the move kit: `library.mjs add` installs it; put its <script> in the
9
+ root head after GSAP.
10
+ Params (script top): POP_AT (mark arrives), LABEL_AT (label slides in),
11
+ OPEN_AT / OPEN_DUR / OPEN_EASE (the circle), HEAD_DELAY (open start ->
12
+ headline). Mark place: --os-x / --os-y (centre), size --os-size.
13
+ -->
14
+ <html lang="en">
15
+ <head>
16
+ <meta charset="UTF-8" />
17
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
18
+ </head>
19
+ <body>
20
+ <div
21
+ id="open-from-subject-root"
22
+ data-composition-id="open-from-subject"
23
+ data-start="0"
24
+ data-duration="4"
25
+ data-width="1920"
26
+ data-height="1080"
27
+ >
28
+ <style>
29
+ [data-composition-id="open-from-subject"] {
30
+ --os-x: 960px;
31
+ --os-y: 480px;
32
+ --os-size: 200px;
33
+ position: absolute;
34
+ inset: 0;
35
+ overflow: hidden;
36
+ color: var(--ink, #111);
37
+ font-family: var(--text, sans-serif);
38
+ }
39
+ [data-composition-id="open-from-subject"] .os-mark {
40
+ position: absolute;
41
+ left: calc(var(--os-x) - var(--os-size) / 2);
42
+ top: calc(var(--os-y) - var(--os-size) / 2);
43
+ width: var(--os-size);
44
+ height: var(--os-size);
45
+ border-radius: 50%;
46
+ background: var(--ink, #111);
47
+ color: var(--field, #fff);
48
+ display: grid;
49
+ place-items: center;
50
+ font-family: var(--display, sans-serif);
51
+ font-weight: var(--display-weight, 700);
52
+ font-size: calc(var(--os-size) * 0.42);
53
+ letter-spacing: var(--display-tracking, -0.02em);
54
+ }
55
+ [data-composition-id="open-from-subject"] .os-label {
56
+ position: absolute;
57
+ left: 0;
58
+ right: 0;
59
+ top: calc(var(--os-y) + var(--os-size) / 2 + 44px);
60
+ text-align: center;
61
+ font-family: var(--display, sans-serif);
62
+ font-weight: var(--display-weight, 700);
63
+ font-stretch: var(--display-stretch, 100%);
64
+ letter-spacing: var(--display-tracking, -0.02em);
65
+ font-size: 64px;
66
+ line-height: 1;
67
+ }
68
+ [data-composition-id="open-from-subject"] .os-stage {
69
+ position: absolute;
70
+ inset: 0;
71
+ background: var(--field-2, #222);
72
+ display: flex;
73
+ flex-direction: column;
74
+ align-items: center;
75
+ justify-content: center;
76
+ gap: 36px;
77
+ clip-path: circle(0px at 50% 50%);
78
+ }
79
+ [data-composition-id="open-from-subject"] .os-kicker {
80
+ font-family: var(--mono, monospace);
81
+ font-size: 28px;
82
+ letter-spacing: 0.12em;
83
+ text-transform: uppercase;
84
+ opacity: 0;
85
+ }
86
+ [data-composition-id="open-from-subject"] .os-head {
87
+ font-family: var(--display, sans-serif);
88
+ font-weight: var(--display-weight, 700);
89
+ font-stretch: var(--display-stretch, 100%);
90
+ letter-spacing: var(--display-tracking, -0.02em);
91
+ font-size: 150px;
92
+ line-height: 1;
93
+ white-space: nowrap;
94
+ }
95
+ [data-composition-id="open-from-subject"] .os-probe {
96
+ position: absolute;
97
+ width: 0;
98
+ height: 0;
99
+ visibility: hidden;
100
+ }
101
+ </style>
102
+ <!-- edit: the mark's glyph and its label -->
103
+ <div class="os-mark" data-layout-allow-occlusion>G</div>
104
+ <div class="os-label" data-layout-allow-occlusion>Gather</div>
105
+ <div class="os-stage">
106
+ <!-- edit: next stage kicker and headline -->
107
+ <div class="os-kicker">Introducing</div>
108
+ <div class="os-head">One place for all of it</div>
109
+ </div>
110
+ <i class="os-probe" style="color: var(--ink, #111); background-color: var(--field, #fff); border-color: var(--field-2, #222)"></i>
111
+ </div>
112
+ <script>
113
+ (function () {
114
+ const POP_AT = 0.2;
115
+ const LABEL_AT = 0.55;
116
+ const OPEN_AT = 1.75;
117
+ const OPEN_DUR = 1.0;
118
+ const OPEN_EASE = "travel";
119
+ const HEAD_DELAY = 0.55;
120
+
121
+ const kit = window.GGMotionKit;
122
+ const root = document.querySelector('[data-composition-id="open-from-subject"]');
123
+ const mark = root.querySelector(".os-mark");
124
+ const label = root.querySelector(".os-label");
125
+ const stage = root.querySelector(".os-stage");
126
+ const kicker = root.querySelector(".os-kicker");
127
+ const head = root.querySelector(".os-head");
128
+ const tl = gsap.timeline({ paused: true });
129
+
130
+ // Pick the stage ink: --ink or --field, whichever contrasts more with --field-2.
131
+ const probe = getComputedStyle(root.querySelector(".os-probe"));
132
+ const rgb = (s) => (s.match(/[\d.]+/g) || [0, 0, 0]).slice(0, 3).map(Number);
133
+ const lum = ([r, g, b]) => {
134
+ const f = (v) => ((v /= 255) <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4);
135
+ return 0.2126 * f(r) + 0.7152 * f(g) + 0.0722 * f(b);
136
+ };
137
+ const contrast = (a, b) => {
138
+ const [hi, lo] = [lum(a), lum(b)].sort((x, y) => y - x);
139
+ return (hi + 0.05) / (lo + 0.05);
140
+ };
141
+ const bg = rgb(probe.borderTopColor);
142
+ const useInk = contrast(rgb(probe.color), bg) >= contrast(rgb(probe.backgroundColor), bg);
143
+ stage.style.color = useInk ? "var(--ink, #111)" : "var(--field, #fff)";
144
+
145
+ // The subject arrives and holds.
146
+ kit.pop(tl, mark, POP_AT, { spring: "bouncy" });
147
+ tl.fromTo(label, { opacity: 0, y: 24 }, { opacity: 1, y: 0, duration: 0.5, ease: kit.ease.snap }, LABEL_AT);
148
+ // A small breath before the open, pulled from the centre.
149
+ tl.to(mark, { scale: 0.9, duration: 0.18, ease: "power2.in" }, OPEN_AT - 0.18);
150
+ tl.to(mark, { scale: 1.15, duration: 0.4, ease: kit.ease.snap }, OPEN_AT);
151
+
152
+ // The next stage opens out of the mark's centre.
153
+ const c = kit.centerOf(mark, root);
154
+ kit.openFrom(tl, stage, OPEN_AT, { x: c.x, y: c.y, duration: OPEN_DUR, ease: OPEN_EASE });
155
+
156
+ // Once the circle has swallowed the subject, take it out of the frame.
157
+ tl.set([mark, label], { visibility: "hidden" }, OPEN_AT + 0.45);
158
+
159
+ const riseAt = OPEN_AT + HEAD_DELAY;
160
+ kit.liftWords(tl, head, riseAt, { stagger: 0.08 });
161
+ tl.fromTo(kicker, { opacity: 0, y: 14 }, { opacity: 0.8, y: 0, duration: 0.4, ease: kit.ease.snap }, riseAt + 0.3);
162
+
163
+ window.__timelines = window.__timelines || {};
164
+ window.__timelines["open-from-subject"] = tl;
165
+ })();
166
+ </script>
167
+ </body>
168
+ </html>
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "request-to-result",
3
+ "name": "Request to result",
4
+ "kind": "ui",
5
+ "description": "A request types into a prompt box, a cursor presses Send, and the same box grows into the result card as rows land one by one with drawn checks; one element carries the scene, no crossfade. Edit the request text, the result header and the rows.",
6
+ "tags": ["prompt", "cursor", "typing", "morph", "result", "checklist", "ai", "continuous", "kit"],
7
+ "fonts": [],
8
+ "duration": 7,
9
+ "previewAt": 5.2,
10
+ "license": "original",
11
+ "requires": ["kit"],
12
+ "previewLook": "soft-light-ad"
13
+ }
@@ -0,0 +1,212 @@
1
+ <!doctype html>
2
+ <!--
3
+ request-to-result: one element carries the scene (move kit). A prompt box
4
+ sits mid-frame; the request types in (kit.typewrite), a cursor travels in and
5
+ presses Send (kit.cursorPath), and the prompt box itself grows into the
6
+ result card (kit.reshape). The request stays as the card's header and
7
+ result rows land one by one, each with a drawn check (kit.tick). No
8
+ crossfade: the box you typed into is the box that answers.
9
+ Needs the move kit: `library.mjs add` installs it; put its <script> in the
10
+ root head after GSAP.
11
+ Params (script top): TYPE_AT (typing starts), CPS (typing speed),
12
+ BOX_FROM / BOX_TO (prompt and result rects, stage px: x, y, w, h, r),
13
+ ROW_GAP (seconds between result rows), CURSOR_FROM (cursor start point).
14
+ -->
15
+ <html lang="en">
16
+ <head>
17
+ <meta charset="UTF-8" />
18
+ <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
19
+ </head>
20
+ <body>
21
+ <div
22
+ id="request-to-result-root"
23
+ data-composition-id="request-to-result"
24
+ data-start="0"
25
+ data-duration="7"
26
+ data-width="1920"
27
+ data-height="1080"
28
+ >
29
+ <style>
30
+ [data-composition-id="request-to-result"] {
31
+ position: absolute;
32
+ inset: 0;
33
+ overflow: hidden;
34
+ color: var(--ink, #111);
35
+ font-family: var(--text, sans-serif);
36
+ }
37
+ [data-composition-id="request-to-result"] .rr-box {
38
+ position: absolute;
39
+ left: 410px;
40
+ top: 470px;
41
+ width: 1100px;
42
+ height: 140px;
43
+ border-radius: 36px;
44
+ box-sizing: border-box;
45
+ overflow: hidden;
46
+ background: color-mix(in srgb, var(--field, #fff) 92%, var(--ink, #111));
47
+ border: 2px solid var(--line, rgba(0, 0, 0, 0.16));
48
+ box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.35);
49
+ }
50
+ [data-composition-id="request-to-result"] .rr-prompt {
51
+ position: absolute;
52
+ left: 52px;
53
+ top: 0;
54
+ right: 150px;
55
+ height: 136px;
56
+ display: flex;
57
+ align-items: center;
58
+ font-size: 38px;
59
+ white-space: nowrap;
60
+ overflow: hidden;
61
+ }
62
+ [data-composition-id="request-to-result"] .rr-send {
63
+ position: absolute;
64
+ right: 26px;
65
+ top: 26px;
66
+ width: 84px;
67
+ height: 84px;
68
+ border-radius: 50%;
69
+ background: var(--ink, #111);
70
+ color: var(--field, #fff);
71
+ display: grid;
72
+ place-items: center;
73
+ }
74
+ [data-composition-id="request-to-result"] .rr-rule {
75
+ position: absolute;
76
+ left: 52px;
77
+ right: 52px;
78
+ top: 136px;
79
+ height: 2px;
80
+ background: var(--line, rgba(0, 0, 0, 0.16));
81
+ transform-origin: 0 50%;
82
+ }
83
+ [data-composition-id="request-to-result"] .rr-rows {
84
+ position: absolute;
85
+ left: 52px;
86
+ right: 52px;
87
+ top: 176px;
88
+ display: flex;
89
+ flex-direction: column;
90
+ gap: 22px;
91
+ }
92
+ [data-composition-id="request-to-result"] .rr-head {
93
+ font-family: var(--mono, monospace);
94
+ font-size: 24px;
95
+ letter-spacing: 0.08em;
96
+ text-transform: uppercase;
97
+ color: var(--muted, #666);
98
+ margin-bottom: 6px;
99
+ }
100
+ [data-composition-id="request-to-result"] .rr-row {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: 28px;
104
+ height: 88px;
105
+ padding: 0 30px;
106
+ border-radius: calc(var(--radius, 16px) * 0.8);
107
+ background: color-mix(in srgb, var(--field, #fff) 80%, var(--ink, #111) 4%);
108
+ border: 2px solid var(--line, rgba(0, 0, 0, 0.12));
109
+ font-size: 36px;
110
+ }
111
+ [data-composition-id="request-to-result"] .rr-row b {
112
+ font-weight: 600;
113
+ }
114
+ [data-composition-id="request-to-result"] .rr-row span.rr-meta {
115
+ margin-left: auto;
116
+ font-family: var(--mono, monospace);
117
+ font-size: 26px;
118
+ color: var(--muted, #666);
119
+ }
120
+ [data-composition-id="request-to-result"] .rr-cursor {
121
+ position: absolute;
122
+ left: 0;
123
+ top: 0;
124
+ width: 56px;
125
+ height: 56px;
126
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.22));
127
+ }
128
+ </style>
129
+ <div class="rr-box">
130
+ <!-- edit: the request -->
131
+ <div class="rr-prompt">Find invoices over $5k that are past due</div>
132
+ <div class="rr-send">
133
+ <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5M5 12l7-7 7 7" /></svg>
134
+ </div>
135
+ <div class="rr-rule"></div>
136
+ <div class="rr-rows">
137
+ <!-- edit: result header + rows (name, detail) -->
138
+ <div class="rr-head">3 invoices found</div>
139
+ <div class="rr-row">
140
+ <svg width="44" height="44" viewBox="0 0 24 24" fill="none" stroke="var(--accent, #2f5bff)" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"><path class="rr-check" d="M20 6L9 17l-5-5" /></svg>
141
+ <b>Northwind Ltd</b><span class="rr-meta">$12,400 · 21 days late</span>
142
+ </div>
143
+ <div class="rr-row">
144
+ <svg width="44" height="44" viewBox="0 0 24 24" fill="none" stroke="var(--accent, #2f5bff)" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"><path class="rr-check" d="M20 6L9 17l-5-5" /></svg>
145
+ <b>Halden &amp; Co</b><span class="rr-meta">$8,950 · 9 days late</span>
146
+ </div>
147
+ <div class="rr-row">
148
+ <svg width="44" height="44" viewBox="0 0 24 24" fill="none" stroke="var(--accent, #2f5bff)" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"><path class="rr-check" d="M20 6L9 17l-5-5" /></svg>
149
+ <b>Brightline Studio</b><span class="rr-meta">$5,300 · 4 days late</span>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ <svg class="rr-cursor" viewBox="0 0 28 28">
154
+ <path d="M5 3.2v19.6c0 .8 1 1.2 1.5.6l4.6-5.1 3.4 7.6c.3.6 1 .9 1.6.6l2.3-1c.6-.3.9-1 .6-1.6l-3.4-7.5h6.8c.8 0 1.2-1 .6-1.6L6.5 2.6C6 2.1 5 2.4 5 3.2z" fill="var(--ink, #111)" stroke="var(--field, #fff)" stroke-width="1.6" stroke-linejoin="round" />
155
+ </svg>
156
+ </div>
157
+ <script>
158
+ (function () {
159
+ const TYPE_AT = 0.5;
160
+ const CPS = 24;
161
+ const BOX_FROM = { x: 410, y: 470, w: 1100, h: 140, r: 36 };
162
+ const BOX_TO = { x: 360, y: 230, w: 1200, h: 610, r: 36 };
163
+ const ROW_GAP = 0.42;
164
+ const CURSOR_FROM = { x: 1700, y: 960 };
165
+
166
+ const kit = window.GGMotionKit;
167
+ const root = document.querySelector('[data-composition-id="request-to-result"]');
168
+ const box = root.querySelector(".rr-box");
169
+ const send = root.querySelector(".rr-send");
170
+ const cursor = root.querySelector(".rr-cursor");
171
+ const rows = [...root.querySelectorAll(".rr-row")];
172
+ const checks = [...root.querySelectorAll(".rr-check")];
173
+ const tl = gsap.timeline({ paused: true });
174
+
175
+ gsap.set(box, { left: BOX_FROM.x, top: BOX_FROM.y, width: BOX_FROM.w, height: BOX_FROM.h, borderRadius: BOX_FROM.r });
176
+ tl.fromTo(box, { opacity: 0, y: 30 }, { opacity: 1, y: 0, duration: 0.5, ease: "expo.out" }, 0);
177
+
178
+ const typed = kit.typewrite(tl, root.querySelector(".rr-prompt"), TYPE_AT, { cps: CPS, seed: 5 });
179
+
180
+ // Send's centre in stage px (box is at BOX_FROM when the press lands).
181
+ const sendAt = { x: BOX_FROM.x + BOX_FROM.w - 26 - 42, y: BOX_FROM.y + 26 + 42 };
182
+ tl.fromTo(cursor, { opacity: 0 }, { opacity: 1, duration: 0.2 }, typed - 0.2);
183
+ const path = kit.cursorPath(tl, cursor, typed - 0.2, [
184
+ { ...CURSOR_FROM },
185
+ { ...sendAt, click: true, hold: 0.1 },
186
+ { x: sendAt.x + 260, y: sendAt.y + 420, duration: 0.7 },
187
+ ]);
188
+ const press = path.presses[0];
189
+ tl.to(send, { scale: 0.88, duration: 0.09, ease: "power2.out" }, press);
190
+ tl.to(send, { scale: 1, duration: 0.3, ease: kit.ease.bounce }, press + 0.09);
191
+ tl.to(cursor, { opacity: 0, duration: 0.3 }, path.end - 0.3);
192
+
193
+ // The box becomes the result card; Send shrinks away.
194
+ const grown = kit.reshape(tl, box, press + 0.2, BOX_TO, { spring: "heavy" });
195
+ tl.to(send, { scale: 0, opacity: 0, duration: 0.3, ease: "power2.in" }, press + 0.35);
196
+ tl.fromTo(root.querySelector(".rr-rule"), { scaleX: 0 }, { scaleX: 1, duration: 0.6, ease: kit.ease.snap }, press + 0.3);
197
+ tl.fromTo(root.querySelector(".rr-head"), { opacity: 0, y: 16 }, { opacity: 1, y: 0, duration: 0.4, ease: "expo.out" }, grown - 0.1);
198
+
199
+ rows.forEach((row, i) => {
200
+ const at = grown + 0.15 + i * ROW_GAP;
201
+ tl.fromTo(row, { opacity: 0, y: 40 }, { opacity: 1, y: 0, duration: 0.5, ease: kit.ease.snap }, at);
202
+ tl.fromTo(checks[i], { opacity: 0 }, { opacity: 1, duration: 0.01 }, at + 0.15);
203
+ kit.tick(tl, checks[i], at + 0.15, { duration: 0.35 });
204
+ });
205
+ tl.to({}, { duration: Math.max(0, 7 - tl.duration()) });
206
+
207
+ window.__timelines = window.__timelines || {};
208
+ window.__timelines["request-to-result"] = tl;
209
+ })();
210
+ </script>
211
+ </body>
212
+ </html>
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "scale-dive",
3
+ "name": "Scale dive",
4
+ "kind": "transition",
5
+ "description": "A powers-of-ten camera dive on one world layer: a wide dashboard, into one card, into the number inside it, which fills the frame and rests as the payoff. Edit the dashboard copy, the target card and the number; nested levels are authored large and scaled down so text stays crisp at every zoom.",
6
+ "tags": ["zoom", "dive", "camera", "dashboard", "number", "payoff", "continuous", "kit"],
7
+ "fonts": [],
8
+ "duration": 6,
9
+ "previewAt": 2.3,
10
+ "license": "original",
11
+ "requires": ["kit"],
12
+ "previewLook": "soft-light-ad"
13
+ }