cozyclay 3.1.5 → 3.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 (67) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/bin/agent/agent-runner.mjs +9 -4
  3. package/bin/agent/openai-compatible-provider.mjs +24 -1
  4. package/dist/app/index.html +5 -5
  5. package/dist/assets/TaskBoard-BUjjuvm5.js +1 -0
  6. package/dist/assets/{app-CEP7jzXB.css → app-Dige7q3X.css} +1 -1
  7. package/dist/assets/app-DxoI941o.js +5144 -0
  8. package/dist/assets/compile-worker-DRWRa9pr.js +6 -0
  9. package/dist/assets/{motion3-compile-Du7UXrWn.js → motion3-compile-B4SX4TGx.js} +1 -1
  10. package/dist/assets/scene-asset-sync-LeI3eSnO.js +13 -0
  11. package/dist/assets/task-board-5PKn7ZaA.js +15 -0
  12. package/dist/assets/{workflow-DJwOUzqJ.js → workflow-Dg9jCKOq.js} +3 -3
  13. package/dist/cozyclay-package.json +1 -1
  14. package/dist/index.html +1 -1
  15. package/dist/workflow/index.html +3 -3
  16. package/mcp/project-camera.mjs +43 -0
  17. package/package.json +3 -1
  18. package/src/App.jsx +5 -5
  19. package/src/commands/index.js +2 -1
  20. package/src/commands/physics.js +21 -0
  21. package/src/domains/motion.js +7 -9
  22. package/src/motion/center-of-mass.js +5 -23
  23. package/src/motion/contact-project.js +143 -0
  24. package/src/motion/fix-collisions.js +1 -1
  25. package/src/motion/ik-drag.js +93 -1
  26. package/src/motion/timeline.css +12 -0
  27. package/src/motion/timeline.jsx +2 -2
  28. package/src/motion3/compile-job.js +3 -2
  29. package/src/motion3/compiler/compile.js +3 -3
  30. package/src/motion3/compiler/spring.js +95 -0
  31. package/src/motion3/compiler/validate-objects.js +18 -2
  32. package/src/motion3/compiler/validate-parts.js +1 -0
  33. package/src/motion3/compiler/vocab.js +1 -1
  34. package/src/motion3/fix/index.js +8 -4
  35. package/src/motion3/fix/person.js +110 -0
  36. package/src/motion3/free-motion.js +49 -11
  37. package/src/motion3/object-pose.js +44 -2
  38. package/src/motion3/people.js +16 -1
  39. package/src/motion3/physics-frames.js +72 -0
  40. package/src/motion3/physics-trail.js +45 -0
  41. package/src/motion3/physics-view.js +79 -0
  42. package/src/motion3/pipeline.js +5 -1
  43. package/src/motion3/qa/ballistic.js +67 -0
  44. package/src/motion3/qa/com.js +140 -0
  45. package/src/motion3/qa/ground.js +10 -3
  46. package/src/motion3/qa/hints-contact.js +9 -7
  47. package/src/motion3/qa/hints-motion.js +38 -1
  48. package/src/motion3/qa/key-checks.js +5 -4
  49. package/src/motion3/qa/patch.js +28 -3
  50. package/src/motion3/qa/people-checks.js +1 -1
  51. package/src/motion3/qa/spring-pivot.js +23 -0
  52. package/src/motion3/qa/style.js +13 -30
  53. package/src/motion3/schema/fields.js +4 -2
  54. package/src/motion3/schema/topics.js +15 -11
  55. package/src/motion3/schema/types.js +13 -9
  56. package/src/physics-overlay-settings.js +41 -0
  57. package/src/physics-overlay.js +152 -0
  58. package/src/physics-overlay.jsx +54 -0
  59. package/src/physics-toggle.jsx +20 -0
  60. package/src/posestudio.jsx +1 -1
  61. package/tools/run-tests.mjs +9 -16
  62. package/tools/verify-package-tarball.mjs +29 -1
  63. package/dist/assets/TaskBoard-DwXhsJXz.js +0 -1
  64. package/dist/assets/app-CTKcyPM-.js +0 -5144
  65. package/dist/assets/compile-worker-or7djI2v.js +0 -6
  66. package/dist/assets/scene-asset-sync-t45pWCyq.js +0 -13
  67. package/dist/assets/task-board-CkLZGPkv.js +0 -15
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Fa as t,Ji as n,c as r,d as i,f as a,l as o,m as s,o as c,v as l}from"./task-board-CkLZGPkv.js";import{o as u,r as d,t as f}from"./motion3-compile-Du7UXrWn.js";var p=e(t(),1),m=2e3,h=(e,t)=>new Promise(n=>{let r=setTimeout(n,e);t.addEventListener(`abort`,()=>{clearTimeout(r),n()},{once:!0})});function g(e,t){(0,p.useEffect)(()=>{let r=new Map;for(let[n,i]of Object.entries(e))for(let e of i)r.set(e,t[n]??n);let i=()=>{for(let e of document.querySelectorAll(`[data-node-id]`)){let t=r.get(e.getAttribute(`data-node-id`));t?(e.setAttribute(`data-task-scope`,t),e.setAttribute(`title`,n(`In task: ${t}`,`작업 중: ${t}`,`任务中:${t}`))):e.hasAttribute(`data-task-scope`)&&(e.removeAttribute(`data-task-scope`),e.removeAttribute(`title`))}};i();let a=new MutationObserver(i);return a.observe(document.body,{childList:!0,subtree:!0}),()=>{a.disconnect(),r.clear(),i()}},[e,t])}function _({sessionId:e,pulse:t,labelOf:n,onMainNote:_}){let v=(0,p.useMemo)(()=>c(),[]),y=u(),[b,x]=(0,p.useReducer)((e,t)=>t.seed?s(e,t.seed):t.reset?r():i(e,t.event),void 0,r),[S,C]=(0,p.useState)({}),[w,T]=(0,p.useState)(f),E=(0,p.useRef)(0),D=(0,p.useRef)(_);(0,p.useEffect)(()=>{E.current=b.after,D.current=_},[b.after,_]),(0,p.useEffect)(()=>{x({reset:!0}),E.current=0},[e]),(0,p.useEffect)(()=>d(T),[]),(0,p.useEffect)(()=>y.subscribe(e=>{typeof e?.type!=`string`||!e.type.startsWith(`task.`)||(C(t=>a(t,e)),(e.type===`task.userEdit`||e.type===`task.undone`)&&x({event:e}))}),[y]),(0,p.useEffect)(()=>{if(!e)return;let t=new AbortController;return(async()=>{for(;!t.signal.aborted;){try{let{tasks:n}=await v.board(e);x({seed:n}),await v.events(e,E.current,e=>{if(e.type===`main.turn`&&e.turnId){let n=``;v.frames(e.turnId,e=>{e.type===`text.delta`&&(n+=e.text??``),e.type===`tool.start`&&(n=``)},t.signal).then(()=>D.current?.(n),()=>{})}x({event:e})},t.signal)}catch{}await h(m,t.signal)}})(),()=>t.abort()},[v,e,t]);let O=b.order.filter(e=>b.tasks[e]?.status===`running`&&b.tasks[e]?.turnId),k=O.map(e=>`${e}:${b.tasks[e].turnId}`).join();return(0,p.useEffect)(()=>{let e=O.map(e=>{let t=new AbortController,{turnId:r}=b.tasks[e];return v.frames(r,t=>{let r=o(t,n);r&&x({event:{type:`task.progress`,taskId:e,status:`running`,progress:r}})},t.signal).catch(()=>{}),t});return()=>e.forEach(e=>e.abort())},[v,k,n]),g(S,(0,p.useMemo)(()=>Object.fromEntries(b.order.map(e=>[e,b.tasks[e].title])),[b])),(0,p.useEffect)(()=>{l.set({client:v,labelOf:n,undo:async e=>{let t=await y.run(`task.undo`,{taskId:e});if(t?.ok===!1)throw Error(t.message??t.code);x({event:{type:`task.undone`,taskId:e}})}})},[y,v,n]),(0,p.useEffect)(()=>{l.set({board:b,activity:w})},[b,w]),(0,p.useEffect)(()=>()=>l.set({board:r(),open:null}),[e]),null}export{_ as default};