cozyclay 3.1.3 → 3.1.5

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 (125) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/INSTALL_FOR_AGENTS.md +3 -0
  3. package/README.md +5 -0
  4. package/bin/agent/agent-failure-codes.mjs +31 -0
  5. package/bin/agent/agent-routes.mjs +5 -10
  6. package/bin/agent/agent-runner.mjs +5 -3
  7. package/bin/cozyclay.mjs +18 -112
  8. package/bin/star-prompt.mjs +123 -0
  9. package/bin/studio-routes.mjs +69 -0
  10. package/bin/update-check.mjs +53 -5
  11. package/bin/update-install.mjs +136 -0
  12. package/bin/update-routes.mjs +80 -0
  13. package/dist/ai-camera-control/index.html +1 -1
  14. package/dist/app/index.html +5 -6
  15. package/dist/assets/{TaskBoard-U1Yl-4F1.js → TaskBoard-DwXhsJXz.js} +1 -1
  16. package/dist/assets/app-CEP7jzXB.css +1 -0
  17. package/dist/assets/app-CTKcyPM-.js +5144 -0
  18. package/dist/assets/compile-worker-or7djI2v.js +6 -0
  19. package/dist/assets/{motion3-compile-DDG3wklD.js → motion3-compile-Du7UXrWn.js} +1 -1
  20. package/dist/assets/scene-asset-sync-t45pWCyq.js +13 -0
  21. package/dist/assets/task-board-CkLZGPkv.js +15 -0
  22. package/dist/assets/workflow-DJwOUzqJ.js +179 -0
  23. package/dist/cozyclay-package.json +1 -1
  24. package/dist/greybox-to-video/index.html +3 -3
  25. package/dist/index.html +533 -264
  26. package/dist/media/cozyclay-mark.png +0 -0
  27. package/dist/media/cozyclay-truck-demo-poster.jpg +0 -0
  28. package/dist/media/step-move-poster.jpg +0 -0
  29. package/dist/media/step-shoot-poster.jpg +0 -0
  30. package/dist/media/step-stage-poster.jpg +0 -0
  31. package/dist/media/truck-greybox-poster.jpg +0 -0
  32. package/dist/media/truck-seedance-poster.jpg +0 -0
  33. package/dist/previs-software/index.html +4 -4
  34. package/dist/privacy/index.html +46 -19
  35. package/dist/seedance-camera-control/index.html +3 -3
  36. package/dist/sitemap.xml +6 -6
  37. package/dist/workflow/index.html +3 -4
  38. package/package.json +1 -1
  39. package/src/App.jsx +59 -70
  40. package/src/analytics-controls.js +17 -0
  41. package/src/analytics-friction.js +124 -0
  42. package/src/analytics-strict.js +139 -0
  43. package/src/analytics-values.js +49 -0
  44. package/src/analytics.js +37 -133
  45. package/src/asset-pane.jsx +4 -5
  46. package/src/click-friction.js +101 -0
  47. package/src/command-bus-telemetry.js +155 -0
  48. package/src/command-bus.js +10 -8
  49. package/src/commands/motion3.js +7 -2
  50. package/src/controls.jsx +3 -2
  51. package/src/crash-telemetry.js +45 -0
  52. package/src/domains/cast.js +2 -11
  53. package/src/domains/motion.js +49 -38
  54. package/src/domains/objects.js +3 -0
  55. package/src/domains/scene-undo.js +27 -0
  56. package/src/domains/scenes.js +1 -1
  57. package/src/error-boundary.jsx +2 -0
  58. package/src/export-attempt.js +100 -0
  59. package/src/export-workspace.js +12 -1
  60. package/src/first-success-guide.jsx +11 -7
  61. package/src/guide-telemetry.js +60 -0
  62. package/src/hierarchy-panel.jsx +2 -1
  63. package/src/live-control.js +2 -9
  64. package/src/locale-zh/domains.js +1 -0
  65. package/src/main.jsx +5 -0
  66. package/src/motion/timeline.jsx +9 -5
  67. package/src/motion-draft-telemetry.js +62 -0
  68. package/src/motion3/compiler/channels.js +7 -5
  69. package/src/motion3/compiler/compile.js +6 -2
  70. package/src/motion3/compiler/finger-close.js +84 -7
  71. package/src/motion3/compiler/head-lead.js +70 -0
  72. package/src/motion3/compiler/head-steady.js +1 -1
  73. package/src/motion3/compiler/limbs.js +10 -3
  74. package/src/motion3/compiler/pose.js +1 -1
  75. package/src/motion3/compiler/validate.js +5 -3
  76. package/src/motion3/pipeline.js +4 -0
  77. package/src/motion3/qa/explain.js +2 -1
  78. package/src/motion3/qa/finger-checks.js +80 -0
  79. package/src/motion3/qa/gait-observe.js +88 -0
  80. package/src/motion3/qa/grasp-checks.js +3 -0
  81. package/src/motion3/qa/hints-grasp.js +8 -0
  82. package/src/motion3/qa/index.js +2 -1
  83. package/src/motion3/qa/motion-life.js +26 -3
  84. package/src/motion3/schema/topics.js +1 -1
  85. package/src/playback-telemetry.js +107 -0
  86. package/src/post-turn-edits.js +62 -0
  87. package/src/search-friction.js +49 -0
  88. package/src/semantic-edit.js +19 -6
  89. package/src/shell/BoardSlot.jsx +3 -3
  90. package/src/shell/BottomDock.jsx +1 -1
  91. package/src/shell/DetailsSlot.jsx +1 -1
  92. package/src/shell/MenuBar.jsx +13 -13
  93. package/src/shell/StudioShell.jsx +7 -1
  94. package/src/shell/TopBar.jsx +2 -0
  95. package/src/shell/ViewportToolbar.jsx +2 -2
  96. package/src/shortcut-friction.js +122 -0
  97. package/src/stage-canvas-rigs.jsx +3 -4
  98. package/src/studio-telemetry.js +97 -0
  99. package/src/thrash-friction.js +90 -0
  100. package/src/update/UpdateChip.jsx +86 -0
  101. package/src/update/UpdateDialog.jsx +147 -0
  102. package/src/update/update-client.js +188 -0
  103. package/src/update/update-telemetry.js +78 -0
  104. package/src/update/update.css +94 -0
  105. package/src/use-webgl-available.js +35 -0
  106. package/src/workflow/AgentPanel.jsx +29 -30
  107. package/src/workflow/CozySceneNode.jsx +1 -1
  108. package/src/workflow/LoginPanel.jsx +15 -5
  109. package/src/workflow/agent-client.js +10 -91
  110. package/src/workflow/agent-failure-codes.js +47 -0
  111. package/src/workflow/agent-turn-telemetry.js +222 -0
  112. package/src/workflow/connect-telemetry.js +86 -0
  113. package/src/workflow/prompt-telemetry.js +105 -0
  114. package/tools/dev/pages/privacy.html +44 -17
  115. package/tools/loc-baseline.json +10 -10
  116. package/tools/run-tests.mjs +8 -8
  117. package/dist/assets/app-BdRlMf4J.css +0 -1
  118. package/dist/assets/app-DwETmoQZ.js +0 -5144
  119. package/dist/assets/compile-worker-oy_P9HHh.js +0 -6
  120. package/dist/assets/landing-y3EqDgSZ.js +0 -1
  121. package/dist/assets/modulepreload-polyfill-P2Xu9kJm.js +0 -1
  122. package/dist/assets/scene-asset-sync-Bz59Ghdz.js +0 -13
  123. package/dist/assets/task-board-DFfNa0xg.js +0 -15
  124. package/dist/assets/workflow-BMJGd_gZ.js +0 -179
  125. package/dist/media/playground-poster.jpg +0 -0
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$t as t,An as n,Mn as r,Pi as i,Un as a,Vn as o,Zt as s,en as c,fa as l,kn as u,nn as d,rn as f,tn as p,un as m}from"./task-board-DFfNa0xg.js";var h=e(l(),1),g=(0,h.createContext)(null);function _(){let e=(0,h.useContext)(g);return(0,h.useMemo)(()=>({run:(...t)=>e.bus.run(...t),subscribe:(...t)=>e.bus.subscribe(...t)}),[e])}var v=e=>({current:e});function y({characters:e=v(null),scenes:t=v(null),motion:n=v(null),state:r=v(null),getBus:a,notify:o}={}){let s=new Map,c=new WeakMap,l=new WeakSet,u=new Map,d=[],f=[],p=null,m=0,h={},g=e=>s.get(e),_=()=>[...s.values()],y={storeDomain:g,storeDomains:_},b={storeDomain:g,storeDomains:_},x=(e,t)=>{throw new i(e,t)},S=e=>g(e.name)===e.handle&&e.store.isRetained(e.id),C=e=>e.members.every(S),w=e=>e?f[0]:d.at(-1),T=(e,t)=>!p&&e===w(t)&&C(e)&&e.members.every(e=>t?e.store.canRedo()&&e.store.history().future[0]?.historyEntryId===e.id:e.store.canUndo(e.id));function E(){for(let[e,t]of u)t.members.some(e=>{if(g(e.name)!==e.handle)return!1;let t=e.store.history();return e.store.isRetained(e.id)||(t.past[0]??t.present).historyEntryId===e.id})||u.delete(e);d=d.filter(e=>u.has(e.id)),f=f.filter(e=>u.has(e.id))}function D(e,t){if(!e||!T(e,t))return!1;let n=y.revision?.current;for(let n of t?e.members:[...e.members].reverse())(t?n.store.redo:n.store.undo)();return t?(f.shift(),d.push(e)):(d.pop(),f.unshift(e)),m++,n!==void 0&&(y.revision.current=n+1),!0}function O(e){if(!e.length)return{historyEntryId:null};let t=e.length===1?e[0].id:crypto.randomUUID();if(u.has(t))return{historyEntryId:t};for(let e of f)u.delete(e.id);f=[];let n={id:t,members:e};return n.handle=e.length===1?e[0].handle:{documentStore:{isRetained:e=>e===t&&u.has(t)&&C(n)},canUndo:e=>(e===void 0||e===t)&&T(n,!1),stepHistory:e=>D(n,e)},u.set(t,n),d.push(n),m++,E(),{historyEntryId:t}}function k(e,t=null,n=!1){if(p){!p.running&&!n&&x(`TARGET_BUSY`,`A composed document transaction is already open.`);let r=p;return r.touch(e,t),{run:r.run,commit:()=>({historyEntryId:null}),cancel:r.cancel}}let r=new Map,i=!1,a=()=>{i&&x(`STALE_TARGET`,`The composed document transaction is closed.`)},o={running:0,touches:e=>r.has(e),touch(e,t){a();let n=g(e);n||x(`CAPABILITY_MISSING`,`No document owner is registered for ${e}.`),r.has(n)||r.set(n,{name:e,handle:n,store:n.documentStore,session:c.get(n)(t)})},run(e){a(),o.running++;try{return[...r.values()].reduceRight((e,t)=>()=>t.session.run(e),e)()}finally{o.running--}},commit(){a();let e=[...r.values()].flatMap(e=>{let t=e.session.commit();return t.historyEntryId?[{name:e.name,handle:e.handle,store:e.store,id:t.historyEntryId}]:[]});return i=!0,p=null,O(e)},savepoint(){return a(),new Map([...r].map(([e,t])=>[e,t.session.mark()]))},rollback(e=new Map){a();for(let[t,n]of[...r].reverse())n.session.rollback(e.get(t))},cancel(e){if(i)return!1;i=!0,p=null;for(let t of[...r.values()].reverse())t.session.cancel(e);return!0}};p=o;try{o.touch(e,t)}catch(e){throw o.cancel(),e}return o}function A(e,t,n=null,r=!1){let i=k(e,n,r),a=e=>({result:e,...i.commit()}),o=e=>{throw i.cancel(),e};try{let e=i.run(t);return e?.then?e.then(a,o):a(e)}catch(e){return o(e)}}return{beginAction:k,recordAction:A,notify:o,storeDomain:g,storeDomainForReceipt(e){let t=u.get(e?.undo?.historyEntryId);return t&&C(t)?t.handle:void 0},storeDomains:_,registerStoreDomain(e,t){let n=t.documentStore;if(n&&!l.has(n)){l.add(n);let r=r=>(r.historyEntryId&&!p&&O([{name:e,handle:t,store:n,id:r.historyEntryId}]),r),i=n.beginAction,a=n.recordAction;n.beginAction=(...e)=>{let t=i(...e);return{...t,commit:()=>r(t.commit())}},n.recordAction=(...e)=>{let t=a(...e);return t?.then?t.then(r):r(t)}}if(t.beginAction&&!c.has(t)&&(c.set(t,t.beginAction.bind(t)),t.beginAction=t=>k(e,t),t.stepHistory=e=>{let n=w(e);return n?.handle===t&&D(n,e)},t.load)){let e=t.load.bind(t);t.load=(...n)=>{p?.touches(t)&&p.cancel();let r=e(...n);return E(),r}}return s.set(e,t),()=>{p?.touches(t)&&p.cancel(),g(e)===t&&s.delete(e),E()}},nextStoreHistory(e){E();let t=w(e);return t&&T(t,e)?t.handle:void 0},historyEntry(e=!1){let t=w(e);return t&&T(t,e)?t.id:null},loadStoreDomains(e){let t=new Set;for(let[n,r]of s)r.load&&(r.load(r.sceneSlice?r.sceneSlice(e):e[n]),t.add(n));return t},forRender(e){return Object.create(this,{shared:{value:e}})},get undoClock(){return m},live:Object.freeze({get state(){return r.current},get characters(){return e.current},get scenes(){return t.current},get motion(){return n.current}}),publishLive(e){r.current=e},patchLive(e){Object.assign(r.current,e)},patchTimeline(e){Object.assign(r.current.timeline,e)},publishCharacters(t){e.current=t},publishScenes(e){t.current=e},publishMotion(e){n.current=e},get bus(){return a()},ports:y,actionPorts:b,updatePorts(e){h=e;for(let t of Object.keys(e))t===`revision`?y[t]=e[t]:y[t]||(y[t]=(...e)=>h[t](...e))},updateActionPorts(e){Object.assign(b,e)}}}var b=.5,x=[-1,1,-2,2],S=.1,C=5,w=e=>typeof e==`number`&&Number.isFinite(e),T=e=>u(e)<=b*Math.max(Math.abs(e.limit),.01);function E(e,t){let n=/\buse\[(\d+)\] (\w+)/.exec(e),r=Number(n?.[1]),i=n&&t.use?.[r],a=n&&i?.skill===n[2]?m[i.skill]:null;if(!a?.tune)return[];let o=[];for(let e of[1,2])for(let[t,n]of Object.entries(a.tune)){let s=a.args[t]??{},c=i.args?.[t]??s.default;if(w(c))for(let a of x.filter(t=>Math.abs(t)===e)){let e=c+a*n,l=s.type===`integer`?Math.round(e):Math.round(e*1e4)/1e4;!(l>0)||l===c||o.push(i.args?[{op:i.args[t]===void 0?`add`:`replace`,path:`/use/${r}/args/${t}`,value:l}]:[{op:`add`,path:`/use/${r}/args`,value:{[t]:l}}])}}return o}function D(e,t,n){if(![`SPEED`,`ACC`,`POP`].includes(e.kind))return[];let r=/between keys\[(\d+)\] f(\d+) and keys\[(\d+)\] f(\d+)/.exec(t);if(!r)return[];let[i,a,o,s]=r.slice(1).map(Number),c=n.keys??[];if(c[i]?.f!==a||c[o]?.f!==s)return[];let l=Number.isInteger(n.frames)?n.frames-1:1/0,u=[];for(let e of[1,2])a-e>=0&&u.push([{op:`replace`,path:`/keys/${i}/f`,value:a-e}]),s+e<=l&&u.push([{op:`replace`,path:`/keys/${o}/f`,value:s+e}]);return u}var O=e=>Math.round(e*1e4)/1e4;function k(e,t,n){let r=e.keys??[],i=[],a=(e.use??[]).map((e,t)=>({u:e,i:t})).filter(({u:e})=>(e?.skill===`standIdle`||e?.skill===`walkTo`)&&e.f0<=t).sort((e,t)=>e.u.f0-t.u.f0).at(-1),o=r.map((e,t)=>({k:e,j:t})).filter(({k:e})=>Array.isArray(e?.set?.root)&&e.set.root.length===3&&w(e.f)&&e.f>(a?.u.f0??-1));if(o.some(({k:e})=>e.f<=t))for(let e of[0,2])for(let t of[-n,n])i.push(o.map(({k:n,j:r})=>({op:`replace`,path:`/keys/${r}/set/root`,value:n.set.root.map((n,r)=>r===e?O(n+t*.03):n)})));else if(a){let{u:e,i:t}=a,r=m[e.skill].place??{},o=e.args?.steps??8;for(let[a,s]of Object.entries(r)){if(a===`step`&&o<=2)continue;let r=e.args?.[a]??m[e.skill].args[a]?.default,c=n=>[e.args?{op:e.args[a]===void 0?`add`:`replace`,path:`/use/${t}/args/${a}`,value:n}:{op:`add`,path:`/use/${t}/args`,value:{[a]:n}}];if(Array.isArray(r))for(let e of[0,r.length-1])for(let t of[-n,n])i.push(c(r.map((n,r)=>r===e?O(n+t*s):n)));else if(w(r))for(let e of[-n,n])r+e*s>.05&&i.push(c(O(r+e*s)))}}let s=r.map((e,t)=>({f:e?.f,j:t})).filter(({j:e})=>w(r[e]?.set?.spine_pitch)&&w(r[e].f)).sort((e,t)=>e.f-t.f),c=[s.filter(e=>e.f<=t).at(-1),s.find(e=>e.f>t)].filter(Boolean).map(e=>e.j);for(let e of c.length?[n,-n]:[])i.push(c.map(t=>({op:`replace`,path:`/keys/${t}/set/spine_pitch`,value:r[t].set.spine_pitch+e*C})));return i}var A=[10,20,30,-10],j=12;function ee(e,t){let n=e.keys??[],r=Math.round(t),i=Number.isInteger(e.frames)?e.frames-1:1/0,a=n.filter(e=>w(e?.f)&&w(e?.set?.spine_pitch)).sort((e,t)=>e.f-t.f),o=a.filter(e=>e.f<r).at(-1),s=a.find(e=>e.f>r),c=o?.set.spine_pitch??0,l=n.findIndex(e=>e?.f===r&&e.set&&typeof e.set==`object`);return A.map(e=>{let t=c+e,a=[l>=0?{op:n[l].set.spine_pitch===void 0?`add`:`replace`,path:`/keys/${l}/set/spine_pitch`,value:t}:{op:`add`,path:`/keys/-`,value:{f:r,set:{spine_pitch:t}}}];return(!o||r-o.f>j)&&r-j>=0&&a.push({op:`add`,path:`/keys/-`,value:{f:r-j,set:{spine_pitch:c}}}),(!s||s.f-r>j)&&r+j<=i&&a.push({op:`add`,path:`/keys/-`,value:{f:r+j,set:{spine_pitch:s?.set.spine_pitch??c}}}),a})}function M(e,t){if(typeof e.cause!=`string`||e.kind===`WRIST`&&e.cause.startsWith(`fix.self`))return[];if(e.kind===`WRIST`&&w(e.worstFrame))return[...ee(t,e.worstFrame),...[1,2].flatMap(n=>k(t,e.worstFrame,n)).filter(e=>e.every(e=>e.path.endsWith(`/spine_pitch`)))];let n=!e.patch&&T(e)?[...E(e.cause,t),...D(e,e.cause,t)]:[];return e.kind!==`GOAL`||!w(e.worstFrame)||u(e)>S?n:[...n,...k(t,e.worstFrame,1),...k(t,e.worstFrame,2)]}var N=3,te=2,ne=2e4,P=e=>e?.qa?.groups??[],F=e=>P(e).reduce((e,t)=>e+(t.severity??0),0),I=e=>(e?.qa?.goals??[]).filter(e=>!e.ok).length,L=(e,t)=>P(e).find(e=>n(e)===t),R=(e,t)=>p(e?.qa,t?.qa).better,re=/^(hand|farm|uarm)_[lr]\b|^(Left|Right)(Arm|ForeArm|Hand)/,z=e=>e.kind===`REACH`&&/^arm_miss_[lr]$/.test(e.subject)||[`WRIST`,`ELBOW`].includes(e.kind)||[`BODY`,`FACE`,`COLLIDE`,`POP`,`ACC`,`SPEED`,`FLIP`].includes(e.kind)&&re.test(e.subject),B=e=>e.some(e=>/^\/use\/\d+\/args(\/(at|step|firstStep|to))?$/.test(e.path)&&(!e.path.endsWith(`/args`)||[`at`,`step`,`firstStep`,`to`].some(t=>e.value?.[t]!==void 0))||/^\/keys\/\d+\/set\/root$/.test(e.path)||e.path===`/keys/-`&&e.value?.set?.root!==void 0),ie=`the body moved: no change that keeps it in place fixed this arm's failure`;function V(e,t,i){let a=Math.min(8,Math.max(1,Math.round(Number(t?.rounds??4))||4)),o=performance.now(),s=()=>performance.now()-o>=ne,c=e,l=i(e),u=1,d=0,f=0,p=new Set,m=[],h=e=>{try{let t=r(c,e);return u+=1,{next:t,r:i(t)}}catch{return d+=1,null}},g=(e,t,n,{next:r,r:i})=>{let a=z(e)&&B(n);m.push({kind:e.kind,subject:e.subject,patch:n,severity:[e.severity,L(i,t)?.severity??0],...a?{movedBody:ie}:{}}),c=r,l=i},_=(e,t)=>{let r=null;for(let e of t){if(s())break;let t=h(e);if(t&&(R(t.r,r?.r??l)?(r&&(d+=1),r={...t,patch:e}):d+=1,r&&F(r.r)===0&&!I(r.r)))break}return r&&g(e,n(e),r.patch,r),!!r},v=e=>{let t=M(e,c);return z(e)?_(e,t.filter(e=>!B(e)))||_(e,t.filter(B)):_(e,t)};for(;f<a&&!s();){let e=P(l).filter(e=>e.patch&&!p.has(JSON.stringify(e.patch))).slice(0,N).map(n),t=P(l).filter(e=>M(e,c).length).slice(0,te).map(n);if(!e.length&&!t.length)break;f+=1;let r=0,i=[];for(let t of e){let e=L(l,t);if(!e?.patch||s())continue;if(z(e)&&B(e.patch)){i.push(t);continue}let n=h(e.patch);n&&R(n.r,l)?(g(e,t,e.patch,n),r+=1):(p.add(JSON.stringify(e.patch)),n&&(d+=1))}for(let e of r?[]:t){let t=L(l,e);if(t&&!s()&&v(t)){r+=1;break}}for(let e of r?[]:i){let t=L(l,e);if(!t?.patch||s())continue;let n=h(t.patch);if(n&&R(n.r,l)){g(t,e,t.patch,n),r+=1;break}p.add(JSON.stringify(t.patch)),n&&(d+=1)}if(!r)break}return{spec:c,result:l,repair:{rounds:f,compiles:u,applied:m,rejected:d}}}var H=2,U=e=>Math.round(e*100)/100;function W(e,t,i){let a=0;for(let o of t?.groups??[]){if(!o.patch)continue;if(a>=H){delete o.patch;continue}a+=1;let s=n(o),c;try{c=i(r(e,o.patch))}catch(e){c={error:String(e?.message??e).slice(0,160)}}let l=o.patch.map(e=>`${e.op} ${e.path}`).join(`, `),u=o.patch;if(delete o.patch,c?.error||!c?.groups){o.patchTried=`${l}: does not compile (${c?.error??`no QA`})`;continue}let f=[U(d(t,s)),U(d(c,s))],m=p(c,t);if(f[1]<f[0]&&m.better){o.patch=u,o.patchChecked={severity:f,total:m.sev,problems:m.problems};continue}let h=f[1]<f[0]?m.why:`this group ${f[0]} -> ${f[1]}`;o.patchTried=`${l}: compiled, did not help (${h}${h.startsWith(`problems`)?``:`; problems ${m.problems[0]} -> ${m.problems[1]}`})`}return t}var G=24,K=(e,t)=>{throw Object.assign(Error(t),{code:e})};function q(e){try{return e()}catch(e){throw/^MOTION_SPEC_INVALID/.test(e.message)&&K(`INVALID_ARGUMENT`,e.message.replace(/^MOTION_SPEC_INVALID:\s*/,``)),e}}function J({model:e,scene:n,spec:r,probes:i,checks:l,lenient:u,repair:d,bake:p}){let m=a(e),h={...l?{checks:l}:{},...u?{lenient:!0}:{}},g=e=>{let{spec:r,probes:a}=c(e,i);r?.fps!==void 0&&r.fps!==G&&K(`INVALID_ARGUMENT`,`spec.fps must be ${G}, the timeline rate.`);let o={fps:G,...r},s=q(()=>t(o,{sk:m,scene:n},{...h,probes:a}));return{...s,stored:s.spec===o?r:s.spec}},_=[],v=d&&!u?f(r,{sk:m,scene:n},_):r,y=new Map,b=e=>{let t=g(e);return y.set(JSON.stringify(e),t.qa),t},x=performance.now(),S=d?V(v,d,b):{spec:r,result:b(r)};if(d)W(S.spec,S.result.qa,e=>y.get(JSON.stringify(e))??b(e).qa);else for(let e of S.result.qa?.groups??[])delete e.patch;let C=S.result,w=S.spec?.label??null,T=S.repair?{...C.ms,repair:Math.round(performance.now()-x)}:C.ms,E=p?s(m,C.out,{position:p.position,yaw:p.yaw},{spec:C.stored,prompt:(`prompt`in p?p.prompt:w)??``}):void 0,D=E&&o(n,[C.expanded,C.stored]);return D&&(E.people=D),{stored:C.stored,qa:C.qa,observations:C.observations,used:C.used,fixed:C.fixed,search:C.search,timeline:C.timeline,...C.probes?{probes:C.probes}:{},...C.notes||_.length?{notes:[..._,...C.notes??[]]}:{},ms:T,frameCount:C.out.frameCount,label:w,...S.repair?{repair:S.repair}:{},...E?{take:E}:{}}}var ae=2;function Y(e){throw e?.code&&!(e instanceof i)?new i(e.code,e.message):e instanceof Error?e:Object.assign(Error(e?.message??String(e)),{name:e?.name??`Error`})}var X=e=>{try{return J(e)}catch(e){return Y(e)}};function oe(){return typeof Worker==`function`?new Worker(new URL(`/assets/compile-worker-oy_P9HHh.js`,``+import.meta.url),{type:`module`,name:`motion-compile`}):null}var Z=new Set,Q={running:[],waiting:[]},se=e=>{Q=e;for(let e of Z)e(Q)},ce=()=>Q;function le(e){return Z.add(e),()=>Z.delete(e)}function $({spawn:e=oe,size:t=ae}={}){let n=!1,r=null,i=0,a=[],o=[],s=()=>se({running:a.filter(e=>e.job).map(e=>e.job.meta),waiting:o.map(e=>e.meta)}),c=e=>{n=!0,r??=`The motion compile worker stopped (${e}); compiling on the main thread, which is slower and blocks the editor while it runs.`;let t=[...a.flatMap(e=>e.job?[e.job]:[]),...o.splice(0)];for(let e of a.splice(0))e.worker?.terminate?.();for(let{job:e,resolve:n,reject:r}of t)try{n(X(e))}catch(e){r(e)}s()},l=()=>{let t;try{t=e()}catch(e){return c(e?.message??String(e)),null}if(!t)return n=!0,null;let r={worker:t,job:null};return t.onmessage=({data:{id:e,value:t,error:n}})=>{let i=r.job;if(!(!i||i.id!==e)){if(r.job=null,n)try{Y(n)}catch(e){i.reject(e)}else i.resolve(t);u()}},t.onerror=e=>{e?.preventDefault?.(),c(e?.message||`worker error`)},t.onmessageerror=()=>c(`an answer could not be read`),a.push(r),r},u=()=>{for(;!n&&o.length;){let e=a.find(e=>!e.job)??(a.length<t?l():null);if(!e)break;e.job=o.shift();try{e.worker.postMessage({id:e.job.id,job:e.job.job})}catch(e){c(e?.message??String(e));return}}if(n)for(let e of o.splice(0))try{e.resolve(X(e.job))}catch(t){e.reject(t)}s()};return{run(e,t={}){return n||!a.length&&!l()?X(e):new Promise((n,r)=>{o.push({id:++i,job:e,meta:t,resolve:n,reject:r}),u()})},takeWarning(){let e=r;return e&&(r=``),e||null}}}export{y as a,g as i,$ as n,_ as o,le as r,ce as t};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$n as t,Cn as n,En as r,Fa as i,Nn as a,Qn as o,Sn as s,Tn as c,bn as l,fr as u,ra as d,tr as f,ur as p,wn as m}from"./task-board-CkLZGPkv.js";var h=e(i(),1),g=(0,h.createContext)(null);function _(){let e=(0,h.useContext)(g);return(0,h.useMemo)(()=>({run:(...t)=>e.bus.run(...t),subscribe:(...t)=>e.bus.subscribe(...t)}),[e])}var v=e=>({current:e});function y({characters:e=v(null),scenes:t=v(null),motion:n=v(null),state:r=v(null),getBus:i,notify:a}={}){let o=new Map,s=new WeakMap,c=new WeakSet,l=new Map,u=[],f=[],p=null,m=0,h={},g=e=>o.get(e),_=()=>[...o.values()],y={storeDomain:g,storeDomains:_},b={storeDomain:g,storeDomains:_},x=(e,t)=>{throw new d(e,t)},S=e=>g(e.name)===e.handle&&e.store.isRetained(e.id),C=e=>e.members.every(S),w=e=>e?f[0]:u.at(-1),T=(e,t)=>!p&&e===w(t)&&C(e)&&e.members.every(e=>t?e.store.canRedo()&&e.store.history().future[0]?.historyEntryId===e.id:e.store.canUndo(e.id));function E(){for(let[e,t]of l)t.members.some(e=>{if(g(e.name)!==e.handle)return!1;let t=e.store.history();return e.store.isRetained(e.id)||(t.past[0]??t.present).historyEntryId===e.id})||l.delete(e);u=u.filter(e=>l.has(e.id)),f=f.filter(e=>l.has(e.id))}function D(e,t){if(!e||!T(e,t))return!1;let n=y.revision?.current;for(let n of t?e.members:[...e.members].reverse())(t?n.store.redo:n.store.undo)();return t?(f.shift(),u.push(e)):(u.pop(),f.unshift(e)),m++,n!==void 0&&(y.revision.current=n+1),!0}function O(e){if(!e.length)return{historyEntryId:null};let t=e.length===1?e[0].id:crypto.randomUUID();if(l.has(t))return{historyEntryId:t};for(let e of f)l.delete(e.id);f=[];let n={id:t,members:e};return n.handle=e.length===1?e[0].handle:{documentStore:{isRetained:e=>e===t&&l.has(t)&&C(n)},canUndo:e=>(e===void 0||e===t)&&T(n,!1),stepHistory:e=>D(n,e)},l.set(t,n),u.push(n),m++,E(),{historyEntryId:t}}function k(e,t=null,n=!1){if(p){!p.running&&!n&&x(`TARGET_BUSY`,`A composed document transaction is already open.`);let r=p;return r.touch(e,t),{run:r.run,commit:()=>({historyEntryId:null}),cancel:r.cancel}}let r=new Map,i=!1,a=()=>{i&&x(`STALE_TARGET`,`The composed document transaction is closed.`)},o={running:0,touches:e=>r.has(e),touch(e,t){a();let n=g(e);n||x(`CAPABILITY_MISSING`,`No document owner is registered for ${e}.`),r.has(n)||r.set(n,{name:e,handle:n,store:n.documentStore,session:s.get(n)(t)})},run(e){a(),o.running++;try{return[...r.values()].reduceRight((e,t)=>()=>t.session.run(e),e)()}finally{o.running--}},commit(){a();let e=[...r.values()].flatMap(e=>{let t=e.session.commit();return t.historyEntryId?[{name:e.name,handle:e.handle,store:e.store,id:t.historyEntryId}]:[]});return i=!0,p=null,O(e)},savepoint(){return a(),new Map([...r].map(([e,t])=>[e,t.session.mark()]))},rollback(e=new Map){a();for(let[t,n]of[...r].reverse())n.session.rollback(e.get(t))},cancel(e){if(i)return!1;i=!0,p=null;for(let t of[...r.values()].reverse())t.session.cancel(e);return!0}};p=o;try{o.touch(e,t)}catch(e){throw o.cancel(),e}return o}function A(e,t,n=null,r=!1){let i=k(e,n,r),a=e=>({result:e,...i.commit()}),o=e=>{throw i.cancel(),e};try{let e=i.run(t);return e?.then?e.then(a,o):a(e)}catch(e){return o(e)}}return{beginAction:k,recordAction:A,notify:a,storeDomain:g,storeDomainForReceipt(e){let t=l.get(e?.undo?.historyEntryId);return t&&C(t)?t.handle:void 0},storeDomains:_,registerStoreDomain(e,t){let n=t.documentStore;if(n&&!c.has(n)){c.add(n);let r=r=>(r.historyEntryId&&!p&&O([{name:e,handle:t,store:n,id:r.historyEntryId}]),r),i=n.beginAction,a=n.recordAction;n.beginAction=(...e)=>{let t=i(...e);return{...t,commit:()=>r(t.commit())}},n.recordAction=(...e)=>{let t=a(...e);return t?.then?t.then(r):r(t)}}if(t.beginAction&&!s.has(t)&&(s.set(t,t.beginAction.bind(t)),t.beginAction=t=>k(e,t),t.stepHistory=e=>{let n=w(e);return n?.handle===t&&D(n,e)},t.load)){let e=t.load.bind(t);t.load=(...n)=>{p?.touches(t)&&p.cancel();let r=e(...n);return E(),r}}return o.set(e,t),()=>{p?.touches(t)&&p.cancel(),g(e)===t&&o.delete(e),E()}},nextStoreHistory(e){E();let t=w(e);return t&&T(t,e)?t.handle:void 0},historyEntry(e=!1){let t=w(e);return t&&T(t,e)?t.id:null},loadStoreDomains(e){let t=new Set;for(let[n,r]of o)r.load&&(r.load(r.sceneSlice?r.sceneSlice(e):e[n]),t.add(n));return t},forRender(e){return Object.create(this,{shared:{value:e}})},get undoClock(){return m},live:Object.freeze({get state(){return r.current},get characters(){return e.current},get scenes(){return t.current},get motion(){return n.current}}),publishLive(e){r.current=e},patchLive(e){Object.assign(r.current,e)},patchTimeline(e){Object.assign(r.current.timeline,e)},publishCharacters(t){e.current=t},publishScenes(e){t.current=e},publishMotion(e){n.current=e},get bus(){return i()},ports:y,actionPorts:b,updatePorts(e){h=e;for(let t of Object.keys(e))t===`revision`?y[t]=e[t]:y[t]||(y[t]=(...e)=>h[t](...e))},updateActionPorts(e){Object.assign(b,e)}}}var b=.5,x=[-1,1,-2,2],S=.1,C=5,w=e=>typeof e==`number`&&Number.isFinite(e),T=e=>o(e)<=b*Math.max(Math.abs(e.limit),.01);function E(e,t){let n=/\buse\[(\d+)\] (\w+)/.exec(e),r=Number(n?.[1]),i=n&&t.use?.[r],o=n&&i?.skill===n[2]?a[i.skill]:null;if(!o?.tune)return[];let s=[];for(let e of[1,2])for(let[t,n]of Object.entries(o.tune)){let a=o.args[t]??{},c=i.args?.[t]??a.default;if(w(c))for(let o of x.filter(t=>Math.abs(t)===e)){let e=c+o*n,l=a.type===`integer`?Math.round(e):Math.round(e*1e4)/1e4;!(l>0)||l===c||s.push(i.args?[{op:i.args[t]===void 0?`add`:`replace`,path:`/use/${r}/args/${t}`,value:l}]:[{op:`add`,path:`/use/${r}/args`,value:{[t]:l}}])}}return s}function D(e,t,n){if(![`SPEED`,`ACC`,`POP`].includes(e.kind))return[];let r=/between keys\[(\d+)\] f(\d+) and keys\[(\d+)\] f(\d+)/.exec(t);if(!r)return[];let[i,a,o,s]=r.slice(1).map(Number),c=n.keys??[];if(c[i]?.f!==a||c[o]?.f!==s)return[];let l=Number.isInteger(n.frames)?n.frames-1:1/0,u=[];for(let e of[1,2])a-e>=0&&u.push([{op:`replace`,path:`/keys/${i}/f`,value:a-e}]),s+e<=l&&u.push([{op:`replace`,path:`/keys/${o}/f`,value:s+e}]);return u}var O=e=>Math.round(e*1e4)/1e4;function k(e,t,n){let r=e.keys??[],i=[],o=(e.use??[]).map((e,t)=>({u:e,i:t})).filter(({u:e})=>(e?.skill===`standIdle`||e?.skill===`walkTo`)&&e.f0<=t).sort((e,t)=>e.u.f0-t.u.f0).at(-1),s=r.map((e,t)=>({k:e,j:t})).filter(({k:e})=>Array.isArray(e?.set?.root)&&e.set.root.length===3&&w(e.f)&&e.f>(o?.u.f0??-1));if(s.some(({k:e})=>e.f<=t))for(let e of[0,2])for(let t of[-n,n])i.push(s.map(({k:n,j:r})=>({op:`replace`,path:`/keys/${r}/set/root`,value:n.set.root.map((n,r)=>r===e?O(n+t*.03):n)})));else if(o){let{u:e,i:t}=o,r=a[e.skill].place??{},s=e.args?.steps??8;for(let[o,c]of Object.entries(r)){if(o===`step`&&s<=2)continue;let r=e.args?.[o]??a[e.skill].args[o]?.default,l=n=>[e.args?{op:e.args[o]===void 0?`add`:`replace`,path:`/use/${t}/args/${o}`,value:n}:{op:`add`,path:`/use/${t}/args`,value:{[o]:n}}];if(Array.isArray(r))for(let e of[0,r.length-1])for(let t of[-n,n])i.push(l(r.map((n,r)=>r===e?O(n+t*c):n)));else if(w(r))for(let e of[-n,n])r+e*c>.05&&i.push(l(O(r+e*c)))}}let c=r.map((e,t)=>({f:e?.f,j:t})).filter(({j:e})=>w(r[e]?.set?.spine_pitch)&&w(r[e].f)).sort((e,t)=>e.f-t.f),l=[c.filter(e=>e.f<=t).at(-1),c.find(e=>e.f>t)].filter(Boolean).map(e=>e.j);for(let e of l.length?[n,-n]:[])i.push(l.map(t=>({op:`replace`,path:`/keys/${t}/set/spine_pitch`,value:r[t].set.spine_pitch+e*C})));return i}var A=[10,20,30,-10],j=12;function ee(e,t){let n=e.keys??[],r=Math.round(t),i=Number.isInteger(e.frames)?e.frames-1:1/0,a=n.filter(e=>w(e?.f)&&w(e?.set?.spine_pitch)).sort((e,t)=>e.f-t.f),o=a.filter(e=>e.f<r).at(-1),s=a.find(e=>e.f>r),c=o?.set.spine_pitch??0,l=n.findIndex(e=>e?.f===r&&e.set&&typeof e.set==`object`);return A.map(e=>{let t=c+e,a=[l>=0?{op:n[l].set.spine_pitch===void 0?`add`:`replace`,path:`/keys/${l}/set/spine_pitch`,value:t}:{op:`add`,path:`/keys/-`,value:{f:r,set:{spine_pitch:t}}}];return(!o||r-o.f>j)&&r-j>=0&&a.push({op:`add`,path:`/keys/-`,value:{f:r-j,set:{spine_pitch:c}}}),(!s||s.f-r>j)&&r+j<=i&&a.push({op:`add`,path:`/keys/-`,value:{f:r+j,set:{spine_pitch:s?.set.spine_pitch??c}}}),a})}function M(e,t){if(typeof e.cause!=`string`||e.kind===`WRIST`&&e.cause.startsWith(`fix.self`))return[];if(e.kind===`WRIST`&&w(e.worstFrame))return[...ee(t,e.worstFrame),...[1,2].flatMap(n=>k(t,e.worstFrame,n)).filter(e=>e.every(e=>e.path.endsWith(`/spine_pitch`)))];let n=!e.patch&&T(e)?[...E(e.cause,t),...D(e,e.cause,t)]:[];return e.kind!==`GOAL`||!w(e.worstFrame)||o(e)>S?n:[...n,...k(t,e.worstFrame,1),...k(t,e.worstFrame,2)]}var N=3,te=2,ne=2e4,P=e=>e?.qa?.groups??[],F=e=>P(e).reduce((e,t)=>e+(t.severity??0),0),I=e=>(e?.qa?.goals??[]).filter(e=>!e.ok).length,L=(e,n)=>P(e).find(e=>t(e)===n),R=(e,t)=>m(e?.qa,t?.qa).better,re=/^(hand|farm|uarm)_[lr]\b|^(Left|Right)(Arm|ForeArm|Hand)/,z=e=>e.kind===`REACH`&&/^arm_miss_[lr]$/.test(e.subject)||[`WRIST`,`ELBOW`].includes(e.kind)||[`BODY`,`FACE`,`COLLIDE`,`POP`,`ACC`,`SPEED`,`FLIP`].includes(e.kind)&&re.test(e.subject),B=e=>e.some(e=>/^\/use\/\d+\/args(\/(at|step|firstStep|to))?$/.test(e.path)&&(!e.path.endsWith(`/args`)||[`at`,`step`,`firstStep`,`to`].some(t=>e.value?.[t]!==void 0))||/^\/keys\/\d+\/set\/root$/.test(e.path)||e.path===`/keys/-`&&e.value?.set?.root!==void 0),ie=`the body moved: no change that keeps it in place fixed this arm's failure`;function V(e,n,r){let i=Math.min(8,Math.max(1,Math.round(Number(n?.rounds??4))||4)),a=performance.now(),o=()=>performance.now()-a>=ne,s=e,c=r(e),l=1,u=0,d=0,p=new Set,m=[],h=e=>{try{let t=f(s,e);return l+=1,{next:t,r:r(t)}}catch{return u+=1,null}},g=(e,t,n,{next:r,r:i})=>{let a=z(e)&&B(n);m.push({kind:e.kind,subject:e.subject,patch:n,severity:[e.severity,L(i,t)?.severity??0],...a?{movedBody:ie}:{}}),s=r,c=i},_=(e,n)=>{let r=null;for(let e of n){if(o())break;let t=h(e);if(t&&(R(t.r,r?.r??c)?(r&&(u+=1),r={...t,patch:e}):u+=1,r&&F(r.r)===0&&!I(r.r)))break}return r&&g(e,t(e),r.patch,r),!!r},v=e=>{let t=M(e,s);return z(e)?_(e,t.filter(e=>!B(e)))||_(e,t.filter(B)):_(e,t)};for(;d<i&&!o();){let e=P(c).filter(e=>e.patch&&!p.has(JSON.stringify(e.patch))).slice(0,N).map(t),n=P(c).filter(e=>M(e,s).length).slice(0,te).map(t);if(!e.length&&!n.length)break;d+=1;let r=0,i=[];for(let t of e){let e=L(c,t);if(!e?.patch||o())continue;if(z(e)&&B(e.patch)){i.push(t);continue}let n=h(e.patch);n&&R(n.r,c)?(g(e,t,e.patch,n),r+=1):(p.add(JSON.stringify(e.patch)),n&&(u+=1))}for(let e of r?[]:n){let t=L(c,e);if(t&&!o()&&v(t)){r+=1;break}}for(let e of r?[]:i){let t=L(c,e);if(!t?.patch||o())continue;let n=h(t.patch);if(n&&R(n.r,c)){g(t,e,t.patch,n),r+=1;break}p.add(JSON.stringify(t.patch)),n&&(u+=1)}if(!r)break}return{spec:s,result:c,repair:{rounds:d,compiles:l,applied:m,rejected:u}}}var H=2,U=e=>Math.round(e*100)/100;function W(e,n,r){let i=0;for(let a of n?.groups??[]){if(!a.patch)continue;if(i>=H){delete a.patch;continue}i+=1;let o=t(a),s;try{s=r(f(e,a.patch))}catch(e){s={error:String(e?.message??e).slice(0,160)}}let l=a.patch.map(e=>`${e.op} ${e.path}`).join(`, `),u=a.patch;if(delete a.patch,s?.error||!s?.groups){a.patchTried=`${l}: does not compile (${s?.error??`no QA`})`;continue}let d=[U(c(n,o)),U(c(s,o))],p=m(s,n);if(d[1]<d[0]&&p.better){a.patch=u,a.patchChecked={severity:d,total:p.sev,problems:p.problems};continue}let h=d[1]<d[0]?p.why:`this group ${d[0]} -> ${d[1]}`;a.patchTried=`${l}: compiled, did not help (${h}${h.startsWith(`problems`)?``:`; problems ${p.problems[0]} -> ${p.problems[1]}`})`}return n}var G=24,K=(e,t)=>{throw Object.assign(Error(t),{code:e})};function q(e){try{return e()}catch(e){throw/^MOTION_SPEC_INVALID/.test(e.message)&&K(`INVALID_ARGUMENT`,e.message.replace(/^MOTION_SPEC_INVALID:\s*/,``)),e}}function J({model:e,scene:t,spec:i,probes:a,checks:o,lenient:c,repair:d,bake:f}){let m=u(e),h={...o?{checks:o}:{},...c?{lenient:!0}:{}},g=e=>{let{spec:r,probes:i}=n(e,a);r?.fps!==void 0&&r.fps!==G&&K(`INVALID_ARGUMENT`,`spec.fps must be ${G}, the timeline rate.`);let o={fps:G,...r},c=q(()=>s(o,{sk:m,scene:t},{...h,probes:i}));return{...c,stored:c.spec===o?r:c.spec}},_=[],v=d&&!c?r(i,{sk:m,scene:t},_):i,y=new Map,b=e=>{let t=g(e);return y.set(JSON.stringify(e),t.qa),t},x=performance.now(),S=d?V(v,d,b):{spec:i,result:b(i)};if(d)W(S.spec,S.result.qa,e=>y.get(JSON.stringify(e))??b(e).qa);else for(let e of S.result.qa?.groups??[])delete e.patch;let C=S.result,w=S.spec?.label??null,T=S.repair?{...C.ms,repair:Math.round(performance.now()-x)}:C.ms,E=f?l(m,C.out,{position:f.position,yaw:f.yaw},{spec:C.stored,prompt:(`prompt`in f?f.prompt:w)??``}):void 0,D=E&&p(t,[C.expanded,C.stored]);return D&&(E.people=D),{stored:C.stored,qa:C.qa,observations:C.observations,used:C.used,fixed:C.fixed,search:C.search,timeline:C.timeline,...C.probes?{probes:C.probes}:{},...C.notes||_.length?{notes:[..._,...C.notes??[]]}:{},ms:T,frameCount:C.out.frameCount,label:w,...S.repair?{repair:S.repair}:{},...E?{take:E}:{}}}var ae=2;function Y(e){throw e?.code&&!(e instanceof d)?new d(e.code,e.message):e instanceof Error?e:Object.assign(Error(e?.message??String(e)),{name:e?.name??`Error`})}var X=e=>{try{return J(e)}catch(e){return Y(e)}};function oe(){return typeof Worker==`function`?new Worker(new URL(`/assets/compile-worker-or7djI2v.js`,``+import.meta.url),{type:`module`,name:`motion-compile`}):null}var Z=new Set,Q={running:[],waiting:[]},se=e=>{Q=e;for(let e of Z)e(Q)},ce=()=>Q;function le(e){return Z.add(e),()=>Z.delete(e)}function $({spawn:e=oe,size:t=ae}={}){let n=!1,r=null,i=0,a=[],o=[],s=()=>se({running:a.filter(e=>e.job).map(e=>e.job.meta),waiting:o.map(e=>e.meta)}),c=e=>{n=!0,r??=`The motion compile worker stopped (${e}); compiling on the main thread, which is slower and blocks the editor while it runs.`;let t=[...a.flatMap(e=>e.job?[e.job]:[]),...o.splice(0)];for(let e of a.splice(0))e.worker?.terminate?.();for(let{job:e,resolve:n,reject:r}of t)try{n(X(e))}catch(e){r(e)}s()},l=()=>{let t;try{t=e()}catch(e){return c(e?.message??String(e)),null}if(!t)return n=!0,null;let r={worker:t,job:null};return t.onmessage=({data:{id:e,value:t,error:n}})=>{let i=r.job;if(!(!i||i.id!==e)){if(r.job=null,n)try{Y(n)}catch(e){i.reject(e)}else i.resolve(t);u()}},t.onerror=e=>{e?.preventDefault?.(),c(e?.message||`worker error`)},t.onmessageerror=()=>c(`an answer could not be read`),a.push(r),r},u=()=>{for(;!n&&o.length;){let e=a.find(e=>!e.job)??(a.length<t?l():null);if(!e)break;e.job=o.shift();try{e.worker.postMessage({id:e.job.id,job:e.job.job})}catch(e){c(e?.message??String(e));return}}if(n)for(let e of o.splice(0))try{e.resolve(X(e.job))}catch(t){e.reject(t)}s()};return{run(e,t={}){return n||!a.length&&!l()?X(e):new Promise((n,r)=>{o.push({id:++i,job:e,meta:t,resolve:n,reject:r}),u()})},takeWarning(){let e=r;return e&&(r=``),e||null}}}export{y as a,g as i,$ as n,_ as o,le as r,ce as t};