@volter/cyclotron 0.5.211 → 0.5.213

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 (888) hide show
  1. package/BUNDLED_NOTICES +232 -1964
  2. package/LICENSE +2 -3
  3. package/LICENSE-BLENDER +9 -8
  4. package/NOTICE +8 -3
  5. package/README.md +39 -30
  6. package/dist/.vite/manifest.json +1215 -4338
  7. package/dist/assets/AudioViewer-B5pkIGXS.js +1 -0
  8. package/dist/assets/ImageViewer-BPVLEEQ2.js +1 -0
  9. package/dist/assets/JsonAssetDocument-DuVW9del.js +2 -0
  10. package/dist/assets/ProjectAuthoringBootstrap-CZJz4Svb.js +2 -0
  11. package/dist/assets/SourceAssetViewer-LwHBW53R.js +1 -0
  12. package/dist/assets/VideoViewer-Bfjjp4zH.js +1 -0
  13. package/dist/assets/client-BLXKEWrR.js +25 -0
  14. package/dist/assets/index-BKjLHm6K.js +483 -0
  15. package/dist/assets/index-CJcVFJ-l.css +1 -0
  16. package/dist/assets/product-CaIfLQVS.js +1 -0
  17. package/dist/assets/story-capture-C3xmgE62.js +1 -0
  18. package/dist/assets/volter-sdk-DT0xmh2J.js +1407 -0
  19. package/dist/assets/volter-sdk-activation-events-B-WERmWU.js +1 -0
  20. package/dist/assets/volter-sdk-active-project-DvEsy8Q6.js +1 -0
  21. package/dist/assets/volter-sdk-adapter-editor-config-CQ5V6W-o.js +1 -0
  22. package/dist/assets/volter-sdk-animation-animation-clock-Cy7j_2qF.js +1 -0
  23. package/dist/assets/volter-sdk-animation-stage-transport-DoUDq6Gb.js +1 -0
  24. package/dist/assets/volter-sdk-api-base-Dr1bx5e0.js +1 -0
  25. package/dist/assets/volter-sdk-api-project-open-D4nPvIPU.js +1 -0
  26. package/dist/assets/volter-sdk-api-project-source-DoO7WBwQ.js +1 -0
  27. package/dist/assets/volter-sdk-api-settings-BEHgO5wf.js +1 -0
  28. package/dist/assets/volter-sdk-asset-capabilities-CGkNwaAe.js +1 -0
  29. package/dist/assets/volter-sdk-asset-document-write-policy-CzWM1HhK.js +1 -0
  30. package/dist/assets/volter-sdk-asset-editor-context-BkSK1vL1.js +1 -0
  31. package/dist/assets/volter-sdk-asset-thumbnails-zSmJgI_x.js +1 -0
  32. package/dist/assets/volter-sdk-asset-viewers-B-ICvlkR.js +1 -0
  33. package/dist/assets/volter-sdk-asset-workflow-project-content-C6Ow0R-F.js +1 -0
  34. package/dist/assets/volter-sdk-authoring-active-adapter-CKuWwxgH.js +1 -0
  35. package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-DTwFKBkS.js +1 -0
  36. package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-iRSbSHpV.js +1 -0
  37. package/dist/assets/volter-sdk-authoring-consumer-actions-DK9-B-wg.js +1 -0
  38. package/dist/assets/volter-sdk-authoring-design-time-mount-registry-BQnWcBVe.js +1 -0
  39. package/dist/assets/volter-sdk-authoring-design-time-roots-BKSmkD7_.js +1 -0
  40. package/dist/assets/volter-sdk-authoring-layered-pick-C-YvuxEG.js +1 -0
  41. package/dist/assets/volter-sdk-authoring-no-authoring-adapter-Cv9DD6G0.js +1 -0
  42. package/dist/assets/volter-sdk-authoring-panel-authoring-BLOrFs8L.js +1 -0
  43. package/dist/assets/volter-sdk-authoring-react-design-canvas-style-Dr9i31o5.js +1 -0
  44. package/dist/assets/volter-sdk-authoring-react-story-board-BlCQQM-8.js +1 -0
  45. package/dist/assets/volter-sdk-authoring-seam-evidence-CjetY_ZG.js +1 -0
  46. package/dist/assets/volter-sdk-authoring-selection-scope-BxmbC71H.js +1 -0
  47. package/dist/assets/volter-sdk-authoring-shell-document-ops-DDb8oGx9.js +1 -0
  48. package/dist/assets/volter-sdk-authoring-stage-root-B50LLhnJ.js +1 -0
  49. package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-BVV9fbcw.js +1 -0
  50. package/dist/assets/volter-sdk-authoring-viewport-tool-context-cQafPSkT.js +1 -0
  51. package/dist/assets/volter-sdk-authoring-viewport-tool-owner-BppqL4f_.js +1 -0
  52. package/dist/assets/volter-sdk-authoring-world-session-state-BlpdiKod.js +1 -0
  53. package/dist/assets/volter-sdk-bitmap-label-BbtGPWgP.js +1 -0
  54. package/dist/assets/volter-sdk-breakpoint-state-DCFuSvgm.js +1 -0
  55. package/dist/assets/volter-sdk-bytes-codec-CrNeVT4e.js +1 -0
  56. package/dist/assets/volter-sdk-cancellation-reason-ByOH3mlF.js +1 -0
  57. package/dist/assets/volter-sdk-canvas-frames-BU8Rqr4J.js +1 -0
  58. package/dist/assets/volter-sdk-capture-size-D4cNT2XC.js +1 -0
  59. package/dist/assets/volter-sdk-chrome-registry-qHUiDauw.js +1 -0
  60. package/dist/assets/volter-sdk-command-result-text-2wzEhQ5t.js +1 -0
  61. package/dist/assets/volter-sdk-commands-C4RgHEOa.js +1 -0
  62. package/dist/assets/volter-sdk-component-board-registry-6gFZBkTP.js +1 -0
  63. package/dist/assets/volter-sdk-components-AssetEditorShell-CQVLedvW.js +1 -0
  64. package/dist/assets/volter-sdk-components-InspectorCanvasPreview-CN5ROhNT.js +1 -0
  65. package/dist/assets/volter-sdk-components-SurfaceStateOverlay-Cc9Ov1Ol.js +1 -0
  66. package/dist/assets/volter-sdk-components-Toolbar-ZoV9Yq_A.js +1 -0
  67. package/dist/assets/volter-sdk-components-TransientHint-BML2V3uu.js +1 -0
  68. package/dist/assets/volter-sdk-components-inspector-preview-section-BhDjhUyz.js +1 -0
  69. package/dist/assets/volter-sdk-components-use-after-paint-BVSO4qjV.js +1 -0
  70. package/dist/assets/volter-sdk-components-workspace-history-CThvGfsY.js +1 -0
  71. package/dist/assets/volter-sdk-content-entry-source-registry-CJLVq3tC.js +1 -0
  72. package/dist/assets/volter-sdk-contribution-surfaces-CeEDmriM.js +1 -0
  73. package/dist/assets/volter-sdk-contributions-x6j41XZp.js +1 -0
  74. package/dist/assets/volter-sdk-coverage-design-time-surfaces-D-tNGazo.js +1 -0
  75. package/dist/assets/volter-sdk-creation-site-registry-64gyrZPD.js +1 -0
  76. package/dist/assets/volter-sdk-css-numeric-style-CXeWqAoG.js +1 -0
  77. package/dist/assets/volter-sdk-declared-tools-BAzHxyUW.js +1 -0
  78. package/dist/assets/volter-sdk-document-areas-4DXjy0el.js +1 -0
  79. package/dist/assets/volter-sdk-document-layer-B4VYMPZ9.js +1 -0
  80. package/dist/assets/volter-sdk-document-open-registry-BLDMaEoN.js +1 -0
  81. package/dist/assets/volter-sdk-document-play-extension-Dv3fyS6K.js +1 -0
  82. package/dist/assets/volter-sdk-document-probe-drBhAyza.js +1 -0
  83. package/dist/assets/volter-sdk-document-stage-sessions-CtI9anAf.js +1 -0
  84. package/dist/assets/volter-sdk-document-viewports-BO0N7VyN.js +1 -0
  85. package/dist/assets/volter-sdk-editor-commands-BJ9Otxzu.js +1 -0
  86. package/dist/assets/volter-sdk-editor-console-BaGgfWmH.js +1 -0
  87. package/dist/assets/volter-sdk-editor-document-probe-D0ZhaXHx.js +1 -0
  88. package/dist/assets/volter-sdk-editor-mode-B07FDozS.js +1 -0
  89. package/dist/assets/volter-sdk-editor-runtime-D00Du7hG.js +1 -0
  90. package/dist/assets/volter-sdk-editor-server-response-C6kOPAsW.js +1 -0
  91. package/dist/assets/volter-sdk-editor-session-attribution-CggpIFb4.js +1 -0
  92. package/dist/assets/volter-sdk-editor-view-DEMsxlaT.js +1 -0
  93. package/dist/assets/volter-sdk-environment-images-OQtFG1kA.js +1 -0
  94. package/dist/assets/volter-sdk-extension-script-DanTHcyo.js +1 -0
  95. package/dist/assets/volter-sdk-eyedropper-session-BfVXtjzc.js +1 -0
  96. package/dist/assets/volter-sdk-files-file-provider-CXL6oCMd.js +1 -0
  97. package/dist/assets/volter-sdk-files-project-files-SBAE37py.js +1 -0
  98. package/dist/assets/volter-sdk-framed-document-capture-7TnE8pn1.js +1 -0
  99. package/dist/assets/volter-sdk-framed-document-driver-C0K3-SRt.js +1 -0
  100. package/dist/assets/volter-sdk-hierarchy-component-marks-BmJEMvvO.js +1 -0
  101. package/dist/assets/volter-sdk-hierarchy-kind-icon-CrwdpecY.js +1 -0
  102. package/dist/assets/volter-sdk-hierarchy-node-rows-FcK7_ULi.js +1 -0
  103. package/dist/assets/volter-sdk-hierarchy-projection-CKzUOZUa.js +1 -0
  104. package/dist/assets/volter-sdk-hierarchy-row-media-Czg40Ddi.js +1 -0
  105. package/dist/assets/volter-sdk-hierarchy-row-model-BGzmcywF.js +1 -0
  106. package/dist/assets/volter-sdk-hierarchy-rows-VAI0psTR.js +1 -0
  107. package/dist/assets/volter-sdk-hierarchy-walk-CaVqG7v2.js +1 -0
  108. package/dist/assets/volter-sdk-history-history-delegate-DH_xBvdh.js +1 -0
  109. package/dist/assets/volter-sdk-history-history-service-D0n0Gl5Z.js +1 -0
  110. package/dist/assets/volter-sdk-history-persistence-coordinator-CcywAFdm.js +1 -0
  111. package/dist/assets/volter-sdk-history-resource-registry-DMTlnwGv.js +1 -0
  112. package/dist/assets/volter-sdk-history-snapshot-store-BVh1DtBp.js +1 -0
  113. package/dist/assets/volter-sdk-history-source-history-backend-ulJ-65tX.js +1 -0
  114. package/dist/assets/volter-sdk-hmr-registration-group-DvMQVKyO.js +1 -0
  115. package/dist/assets/volter-sdk-hmr-stable-react-context-BMVr5YVk.js +1 -0
  116. package/dist/assets/volter-sdk-host-D765Py2w.js +1 -0
  117. package/dist/assets/volter-sdk-hotkeys-TesTKdAZ.js +1 -0
  118. package/dist/assets/volter-sdk-index-BABXozHr.js +1 -0
  119. package/dist/assets/volter-sdk-inference-diagnostics-CsDbQ0M5.js +1 -0
  120. package/dist/assets/volter-sdk-inspection-document-subject-BMRD77Va.js +1 -0
  121. package/dist/assets/volter-sdk-inspection-group-icons-Wpz-YhkE.js +1 -0
  122. package/dist/assets/volter-sdk-inspection-model-BVOyStdc.js +1 -0
  123. package/dist/assets/volter-sdk-inspection-node-media-B8AL8_3F.js +1 -0
  124. package/dist/assets/volter-sdk-inspection-null-subject-d5bQZCbS.js +1 -0
  125. package/dist/assets/volter-sdk-inspector-property-grouping-BqrZkwo4.js +1 -0
  126. package/dist/assets/volter-sdk-inspector-section-registry-C6U15zvC.js +1 -0
  127. package/dist/assets/volter-sdk-js-heap-CcOnY0kf.js +1 -0
  128. package/dist/assets/volter-sdk-keymap-presets-CSM-jVcZ.js +1 -0
  129. package/dist/assets/volter-sdk-layout-arrangements-DHA3uifx.js +1 -0
  130. package/dist/assets/volter-sdk-layouts-4v9ECCn9.js +1 -0
  131. package/dist/assets/volter-sdk-light-explorer-model-CPuZjpiR.js +1 -0
  132. package/dist/assets/volter-sdk-live-seam-evidence-B_RyDaOp.js +1 -0
  133. package/dist/assets/volter-sdk-live-session-registry-C6gHroaH.js +1 -0
  134. package/dist/assets/volter-sdk-manifest-project-CVVUDDuL.js +1 -0
  135. package/dist/assets/volter-sdk-mount-css-scope-DaJoEo3v.js +1 -0
  136. package/dist/assets/volter-sdk-mount-failure-report-Cm92oiGJ.js +1 -0
  137. package/dist/assets/volter-sdk-native-selection-style-Bp4IBnA4.js +1 -0
  138. package/dist/assets/volter-sdk-photograph-notice-C6_gZGpW.js +1 -0
  139. package/dist/assets/volter-sdk-play-camera-flight-SwlYhOxW.js +1 -0
  140. package/dist/assets/volter-sdk-product-command-G8kKVJ-i.js +1 -0
  141. package/dist/assets/volter-sdk-progress-4GGmPvZn.js +1 -0
  142. package/dist/assets/volter-sdk-project-module-changes-DIrDIHeD.js +1 -0
  143. package/dist/assets/volter-sdk-project-module-url-BuAUWpus.js +1 -0
  144. package/dist/assets/volter-sdk-project-output-roots-BON7FOwQ.js +1 -0
  145. package/dist/assets/volter-sdk-project-tab-census-CO06UOh-.js +1 -0
  146. package/dist/assets/volter-sdk-renderer-resource-counts-2kLiD8_S.js +1 -0
  147. package/dist/assets/volter-sdk-scoped-project-css-DA63CYkM.js +1 -0
  148. package/dist/assets/volter-sdk-selection-CSUq7EiY.js +1 -0
  149. package/dist/assets/volter-sdk-served-url-B_MypeId.js +1 -0
  150. package/dist/assets/volter-sdk-settings-settings-provider-CJuWxTB5.js +1 -0
  151. package/dist/assets/volter-sdk-settings-store-CEFKDj0h.js +1 -0
  152. package/dist/assets/volter-sdk-shell-store-Cl4sX9p4.js +1 -0
  153. package/dist/assets/volter-sdk-shell-store-door-DGjybg0J.js +1 -0
  154. package/dist/assets/volter-sdk-source-conflict-CV8Gk053.js +1 -0
  155. package/dist/assets/volter-sdk-stage-context-Cb0SaYhi.js +1 -0
  156. package/dist/assets/volter-sdk-stage-invalidation-VlBciYA0.js +1 -0
  157. package/dist/assets/volter-sdk-stage-store-registry-BpIy_QKq.js +1 -0
  158. package/dist/assets/volter-sdk-startup-failure-C_8H4xuP.js +1 -0
  159. package/dist/assets/volter-sdk-stories-StoryPreviewMount-BUX42gIR.js +1 -0
  160. package/dist/assets/volter-sdk-stories-compose-project-stories-CkSd4Si5.js +1 -0
  161. package/dist/assets/volter-sdk-stories-scope-Dndn7MD8.js +1 -0
  162. package/dist/assets/volter-sdk-stories-story-declared-medium-Byi4XWeJ.js +1 -0
  163. package/dist/assets/volter-sdk-stories-story-dom-runtime-BS1VPvJ6.js +1 -0
  164. package/dist/assets/volter-sdk-stories-story-grouping-CpNh4cUf.js +1 -0
  165. package/dist/assets/volter-sdk-story-document-openers-Ba5jQqay.js +1 -0
  166. package/dist/assets/volter-sdk-surface-state-BhQ45ars.js +1 -0
  167. package/dist/assets/volter-sdk-tab-census-D0r0s37y.js +1 -0
  168. package/dist/assets/volter-sdk-tool-contribution-convention-JCXL6f2w.js +1 -0
  169. package/dist/assets/volter-sdk-transform-mode-request-Cwk_Kyty.js +1 -0
  170. package/dist/assets/volter-sdk-transient-hint-BOfFzAV8.js +1 -0
  171. package/dist/assets/volter-sdk-types-CkT8l5N_.js +1 -0
  172. package/dist/assets/volter-sdk-ui-source-file-region-resolver-Cfza3eEl.js +1 -0
  173. package/dist/assets/volter-sdk-ui-source-inspect-CEjmAN75.js +1 -0
  174. package/dist/assets/volter-sdk-ui-source-source-write-backend-0njgRdI6.js +1 -0
  175. package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-CpsxorYU.js +1 -0
  176. package/dist/assets/volter-sdk-viewport-activation-timings-B3hRTu3A.js +1 -0
  177. package/dist/assets/volter-sdk-viewport-editor-controls-DDBd-VqO.js +1 -0
  178. package/dist/assets/volter-sdk-viewport-presentation-DRhiAH1h.js +1 -0
  179. package/dist/assets/volter-sdk-volter-contributions-nlGXjgJZ.js +1 -0
  180. package/dist/assets/volter-sdk-wait-until-CMvYQmO8.js +1 -0
  181. package/dist/assets/volter-sdk-widgets-design-system-BJOyO8sO.js +1 -0
  182. package/dist/assets/volter-sdk-widgets-editor-appearance-eVtkxsIm.js +1 -0
  183. package/dist/assets/volter-sdk-widgets-editor-material-BoQP_5SK.js +1 -0
  184. package/dist/assets/volter-sdk-widgets-icon-set-registry-CP0D74kc.js +1 -0
  185. package/dist/assets/volter-sdk-widgets-index-De34FpYu.js +1 -0
  186. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-_GjMjIGb.js +1 -0
  187. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-B7vN7BEd.js +1 -0
  188. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-E2J8cpyT.js +1 -0
  189. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-D6TERGKs.js +1 -0
  190. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-CXR8n-CA.js +1 -0
  191. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-CDvfWY4Q.js +1 -0
  192. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BgpW8FW8.js +1 -0
  193. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DOOBkXjY.js +1 -0
  194. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-1NXWR_gB.js +1 -0
  195. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-Cd2-HwFn.js +1 -0
  196. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-C4HuSjFu.js +1 -0
  197. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DUU2CCtc.js +1 -0
  198. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-D5kwrOUQ.js +1 -0
  199. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CkFN2SUn.js +1 -0
  200. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-DynpKMMZ.js +1 -0
  201. package/dist/assets/volter-sdk-widgets-palette-colors-DhL1I42R.js +1 -0
  202. package/dist/assets/volter-sdk-widgets-patterns-Dialog-EUtcZi0Y.js +1 -0
  203. package/dist/assets/volter-sdk-widgets-patterns-Fields-Bl_eaBej.js +1 -0
  204. package/dist/assets/volter-sdk-widgets-patterns-List--NE_1N5-.js +1 -0
  205. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-BHXpv7qi.js +1 -0
  206. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BdKa5HGV.js +1 -0
  207. package/dist/assets/volter-sdk-widgets-patterns-Tabs-sFV7f1UP.js +1 -0
  208. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CIr5Cs49.js +1 -0
  209. package/dist/assets/volter-sdk-widgets-patterns-Tree-C2YHfddf.js +1 -0
  210. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DCclspnW.js +1 -0
  211. package/dist/assets/volter-sdk-widgets-primitives-Button-B0YxR4ea.js +1 -0
  212. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-B1_SLTuc.js +1 -0
  213. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CpHzPdt8.js +1 -0
  214. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Dw4knhya.js +1 -0
  215. package/dist/assets/volter-sdk-widgets-primitives-FormControls-BAbRanmE.js +1 -0
  216. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Cj7jKNd4.js +1 -0
  217. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-C0DCI5bE.js +1 -0
  218. package/dist/assets/volter-sdk-widgets-primitives-Layout-gT4Z6mtt.js +1 -0
  219. package/dist/assets/volter-sdk-widgets-primitives-Menu-9EESAp9m.js +1 -0
  220. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Dk-5zqJ8.js +1 -0
  221. package/dist/assets/volter-sdk-widgets-primitives-Panel-BQWJF-Pb.js +1 -0
  222. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DXvmafCK.js +1 -0
  223. package/dist/assets/volter-sdk-widgets-primitives-Text-yBrdWK2w.js +1 -0
  224. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CRhefpUL.js +1 -0
  225. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D5Kcb-ZC.js +1 -0
  226. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DiG6PEIe.js +1 -0
  227. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DhnSxXVK.js +1 -0
  228. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-e65mgyAk.js +1 -0
  229. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BVL0mN8g.js +1 -0
  230. package/dist/assets/volter-sdk-widgets-theme-C-_RU9Ov.js +1 -0
  231. package/dist/assets/volter-sdk-widgets-z-index-CrJJXeKL.js +1 -0
  232. package/dist/assets/volter-sdk-worker-call-metrics-BTfmngck.js +1 -0
  233. package/dist/assets/volter-sdk-workspace-core-utilities-DtHGK9PF.js +1 -0
  234. package/dist/assets/volter-sdk-workspace-document-ids-COULA7c6.js +1 -0
  235. package/dist/assets/volter-sdk-workspace-document-registry-6m5csVP7.js +1 -0
  236. package/dist/assets/volter-sdk-workspace-document-restore-M8ifJMou.js +1 -0
  237. package/dist/assets/volter-sdk-workspace-host-commands-8Qzej--P.js +1 -0
  238. package/dist/assets/volter-sdk-workspace-static-panels-Ckk7qUuS.js +1 -0
  239. package/dist/assets/volter-sdk-workspace-status-registry-BdU0dZAt.js +1 -0
  240. package/dist/assets/volter-sdk-workspace-utility-registry-BHxymD2l.js +1 -0
  241. package/dist/assets/volter-sdk-world-canvas-viewport-state-CHO8s9gE.js +1 -0
  242. package/dist/assets/volter-sdk-world-pan-state-C-9xgzAh.js +1 -0
  243. package/dist/assets/volter-sdk-write-pipe-CJHg7J4i.js +1 -0
  244. package/dist/assets/volter-shared-fontawesome-BEv9WEZj.js +1 -0
  245. package/dist/assets/volter-shared-jsx-dev-runtime-domcKDU3.js +1 -0
  246. package/dist/assets/volter-shared-jsx-runtime-Cu7pVW-1.js +1 -0
  247. package/dist/assets/volter-shared-react-BLHga76C.js +1 -0
  248. package/dist/assets/volter-shared-react-dom-client-vi6WsWu2.js +1 -0
  249. package/dist/assets/volter-shared-react-dom-kzJVGsQd.js +1 -0
  250. package/dist/assets/volter-shared-three-BWbOWtM5.js +4220 -0
  251. package/dist/assets/volter-shared-three-core-DEsIwtOu.js +9 -0
  252. package/dist/volter-shared-modules.json +227 -0
  253. package/dist/volter-shared-react.json +6 -6
  254. package/dist/volter-shared-three.json +2 -1
  255. package/dist-node/cli.js +2962 -6245
  256. package/dist-node/create.js +350 -278
  257. package/package.json +51 -31
  258. package/src/index.ts +4 -6
  259. package/src/product-id.d.ts +4 -0
  260. package/src/styles/maya.style.ts +14 -0
  261. package/src/styles/substance.style.ts +15 -0
  262. package/starter/AGENTS.md +216 -156
  263. package/starter/cube.py +3 -9
  264. package/starter/film/boards/title.png +0 -0
  265. package/starter/film/cut.json +12 -0
  266. package/starter/film/film.json +7 -0
  267. package/starter/film/music/.gitkeep +0 -0
  268. package/starter/film/music.json +4 -0
  269. package/starter/film/script.fountain +16 -0
  270. package/starter/film/shots.json +26 -0
  271. package/starter/film/sounds/whoosh.wav +0 -0
  272. package/starter/film/src/graphics/title.css +33 -0
  273. package/starter/film/src/graphics/title.stories.tsx +6 -0
  274. package/starter/film/src/graphics/title.tsx +14 -0
  275. package/starter/film/src/models/opening.blend +0 -0
  276. package/starter/film/src/models/opening.py +87 -0
  277. package/starter/film/story.md +14 -0
  278. package/starter/film/takes/.gitkeep +0 -0
  279. package/starter/film/takes.json +4 -0
  280. package/starter/film-skills/film-cut/SKILL.md +31 -0
  281. package/starter/film-skills/film-shots/SKILL.md +32 -0
  282. package/starter/film-skills/film-story/SKILL.md +19 -0
  283. package/starter/game/levels/MainLevel.tsx +24 -0
  284. package/starter/game/prefabs/ground/Ground.tsx +24 -0
  285. package/starter/game/prefabs/ground/ground.blend +0 -0
  286. package/starter/game/prefabs/ground/ground.glb +0 -0
  287. package/starter/game/prefabs/ground/ground.py +106 -0
  288. package/starter/package.json +3 -2
  289. package/starter/sounds/mix.json +10 -0
  290. package/dist/assets/BVHLoader-V9f-EnYd.js +0 -1
  291. package/dist/assets/ColladaLoader-Cp-E7iiV.js +0 -3
  292. package/dist/assets/EntityModelDocument-DxdGehCz.js +0 -1
  293. package/dist/assets/EnvironmentAssetDocument-DSTdQdSt.js +0 -1
  294. package/dist/assets/FBXLoader-CpZqH4xx.js +0 -1
  295. package/dist/assets/InspectorObjectPreview-De6zT2B7.js +0 -1
  296. package/dist/assets/LiveModuleDocument-Do5YRpzB.js +0 -2
  297. package/dist/assets/LutAssetDocument-BjZgLVjR.js +0 -1
  298. package/dist/assets/MTLLoader-JK_iLZsm.js +0 -2
  299. package/dist/assets/ModelAssetDocument-Bb5UYcrj.js +0 -1
  300. package/dist/assets/NonThreeAuthoringBootstrap-CVri610U.js +0 -1
  301. package/dist/assets/OBJLoader-eGO6iVw8.js +0 -5
  302. package/dist/assets/Object3DDocumentToolbar-C7HT5nHi.js +0 -1
  303. package/dist/assets/Object3DPreview-CaOEIIdC.js +0 -2
  304. package/dist/assets/OrbitControls-DrHRrSFA.js +0 -1
  305. package/dist/assets/PLYLoader-BCSN1tYw.js +0 -2
  306. package/dist/assets/QuarksAssetDocument-DzS5h2Bc.js +0 -2
  307. package/dist/assets/RectAreaLightUniformsLib-HqHjURQQ.js +0 -1
  308. package/dist/assets/STLLoader-vhCvZeOF.js +0 -1
  309. package/dist/assets/ShaderAssetDocument-DYXX7aw5.js +0 -1
  310. package/dist/assets/StageHost-DVnv4TcF.js +0 -1179
  311. package/dist/assets/TDSLoader-DbUHSEO9.js +0 -1
  312. package/dist/assets/ToolObject3DPreview-Dad57oap.js +0 -1
  313. package/dist/assets/ViewportShadingMenu-Bl8IlWGh.js +0 -1
  314. package/dist/assets/animation-mixers.service-qJ4SNabd.js +0 -1
  315. package/dist/assets/animation-timeline.utility-wNtZO_cS.js +0 -1
  316. package/dist/assets/anthropic-DwpKRVGM.svg +0 -1
  317. package/dist/assets/asset-preview-OYr2sUbO.js +0 -4
  318. package/dist/assets/blender-display-shaders-BpnqnkG8.lut +0 -0
  319. package/dist/assets/blender-emscripten-engine-CTeOMKcG.js +0 -2
  320. package/dist/assets/blender-motion-worker-CtT2cV3V.js +0 -1
  321. package/dist/assets/blender-node-editor.document-pEhp9MZH.js +0 -1
  322. package/dist/assets/blender-properties-model-B7O1AR0g.js +0 -1
  323. package/dist/assets/blender-properties-tab-CBdCQseg.js +0 -3
  324. package/dist/assets/blender-runtime-host-swgDAdoy.js +0 -7221
  325. package/dist/assets/blender-runtime.document-BbtLLRrN.js +0 -13
  326. package/dist/assets/blender-screenshot.menu-CD1Bg0Z-.js +0 -1
  327. package/dist/assets/blender-timeline.document-DT_mWXnn.js +0 -1
  328. package/dist/assets/blender-uv-editor.document-9j_SUkf7.js +0 -1
  329. package/dist/assets/blender-version.status-Z13Xgrj-.js +0 -1
  330. package/dist/assets/blender-wali-engine-kfyCxO_U.js +0 -2
  331. package/dist/assets/blender.command-zp1Oe3pY.js +0 -1
  332. package/dist/assets/blender.environment-CG-pC7sk.js +0 -1
  333. package/dist/assets/blender.keymap-BmOBRY7p.js +0 -1
  334. package/dist/assets/blender.status-MRiv-9Ju.js +0 -1
  335. package/dist/assets/blender.style--aBP5V1k.js +0 -1
  336. package/dist/assets/city-EkhAOo5s.exr +0 -0
  337. package/dist/assets/courtyard-DqlebbpC.exr +0 -0
  338. package/dist/assets/forest-P_CQY3b_.exr +0 -0
  339. package/dist/assets/icon-BkiLD9ed.png +0 -0
  340. package/dist/assets/index-C8BwtQGN.js +0 -952
  341. package/dist/assets/interior-Bo_lba15.exr +0 -0
  342. package/dist/assets/linear-resolve-Cuka7Ypb.js +0 -377
  343. package/dist/assets/live-mixers-B-bwLZ7c.js +0 -1
  344. package/dist/assets/model-inspection-DVE8f3Dj.js +0 -1
  345. package/dist/assets/model.layout-BpZE1W9V.js +0 -1
  346. package/dist/assets/models.finder-5z7xbsOu.js +0 -1
  347. package/dist/assets/night-CvV4Gybt.exr +0 -0
  348. package/dist/assets/object3d-document-session-registry-DDpmVmir.js +0 -2
  349. package/dist/assets/openai-DHNKzFtc.svg +0 -1
  350. package/dist/assets/output-pass-j4dAGrPY.js +0 -85
  351. package/dist/assets/play-live-BBkOuWQn.js +0 -1
  352. package/dist/assets/product-CUU4-nDZ.js +0 -14
  353. package/dist/assets/product-DPOIZgKM.css +0 -1
  354. package/dist/assets/properties-bone-constraints.inspector-D8CtPu9c.js +0 -1
  355. package/dist/assets/properties-bone.inspector-j9aNQrP9.js +0 -1
  356. package/dist/assets/properties-collection.inspector-CaMveBur.js +0 -1
  357. package/dist/assets/properties-constraints.inspector-DB9bBgqn.js +0 -1
  358. package/dist/assets/properties-data.inspector-C7dh_XTe.js +0 -1
  359. package/dist/assets/properties-material.inspector-DWC5NJkW.js +0 -1
  360. package/dist/assets/properties-modifiers.inspector-CBUxUSB0.js +0 -1
  361. package/dist/assets/properties-object.inspector-wvO8nuGD.js +0 -1
  362. package/dist/assets/properties-output.inspector-CFyAZn9F.js +0 -1
  363. package/dist/assets/properties-particles.inspector-zEaTW3U7.js +0 -1
  364. package/dist/assets/properties-physics.inspector-CO-4UZbX.js +0 -1
  365. package/dist/assets/properties-render.inspector-DoJ1BMKP.js +0 -1
  366. package/dist/assets/properties-scene.inspector-BOhaiC0_.js +0 -1
  367. package/dist/assets/properties-texture.inspector-1JoYUWiR.js +0 -1
  368. package/dist/assets/properties-view-layer.inspector-DuRkFWtq.js +0 -1
  369. package/dist/assets/properties-world.inspector-Csfv-x0A.js +0 -1
  370. package/dist/assets/react-18-Dh4gvPqw.js +0 -1
  371. package/dist/assets/regions-DWeEBnE2.js +0 -1
  372. package/dist/assets/sculpt.layout-D-K5cLw6.js +0 -1
  373. package/dist/assets/session-CvHLFvpx.js +0 -6056
  374. package/dist/assets/shading.layout-CZZHKBer.js +0 -1
  375. package/dist/assets/sky-precompute-worker-CPGW9t_C.js +0 -1
  376. package/dist/assets/spark.module-CTTm62aa.js +0 -12120
  377. package/dist/assets/stage-keyboard-BvTth28t.js +0 -1
  378. package/dist/assets/stage-overlay-set-Dt6IH1xC.js +0 -1
  379. package/dist/assets/stage-presence-markers-DszBO9B1.js +0 -1
  380. package/dist/assets/stage-transform-tools-D6H_SBLV.js +0 -1
  381. package/dist/assets/standard-viewport-dressing-BSYojdsQ.js +0 -24
  382. package/dist/assets/studio-CysTBGIb.exr +0 -0
  383. package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
  384. package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
  385. package/dist/assets/texture.layout-DASpHVht.js +0 -1
  386. package/dist/assets/three-integration.service-DvOyomjh.js +0 -2
  387. package/dist/assets/three.module-CtVjCPcj.js +0 -3840
  388. package/dist/assets/uv-editing.layout-A8RA-cbM.js +0 -1
  389. package/dist/assets/volter-sdk-account-fYMnFHfe.js +0 -1
  390. package/dist/assets/volter-sdk-client-JmBOIwGe.js +0 -1
  391. package/dist/assets/volter-sdk-contributions-l9HrPjwW.js +0 -1
  392. package/dist/assets/volter-sdk-css-numeric-style-ud28AcW3.js +0 -1
  393. package/dist/assets/volter-sdk-document-probe-C4RhslOI.js +0 -1
  394. package/dist/assets/volter-sdk-editor-view-B_mScT1w.js +0 -1
  395. package/dist/assets/volter-sdk-host-B9QOINsX.js +0 -1
  396. package/dist/assets/volter-sdk-http-transport.browser-6a_cUtge.js +0 -1
  397. package/dist/assets/volter-sdk-index-DDdgpWqc.js +0 -1
  398. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-CRc93EXv.js +0 -1
  399. package/dist/assets/volter-sdk-kit-account-client-ByjTbat7.js +0 -1
  400. package/dist/assets/volter-sdk-kit-action-registry-J5l20B9X.js +0 -1
  401. package/dist/assets/volter-sdk-kit-active-product-BTHzjkrh.js +0 -1
  402. package/dist/assets/volter-sdk-kit-active-project-CgXmYhKx.js +0 -1
  403. package/dist/assets/volter-sdk-kit-adapter-editor-config-CcSGBUF1.js +0 -1
  404. package/dist/assets/volter-sdk-kit-adapter-module-CqkP49hA.js +0 -1
  405. package/dist/assets/volter-sdk-kit-adapter-observation-MWNd8Bmj.js +0 -1
  406. package/dist/assets/volter-sdk-kit-animation-animation-clock-C5QhnLuY.js +0 -1
  407. package/dist/assets/volter-sdk-kit-animation-stage-transport-DFbbJ80P.js +0 -1
  408. package/dist/assets/volter-sdk-kit-api-assets-Dtg4_1jX.js +0 -1
  409. package/dist/assets/volter-sdk-kit-api-base-De8oXkY8.js +0 -1
  410. package/dist/assets/volter-sdk-kit-api-build-Cgmw35Ng.js +0 -1
  411. package/dist/assets/volter-sdk-kit-api-logs-B1mQlcPQ.js +0 -1
  412. package/dist/assets/volter-sdk-kit-api-project-identity-DEZz1U5_.js +0 -1
  413. package/dist/assets/volter-sdk-kit-api-project-open-DuXZ6vyn.js +0 -1
  414. package/dist/assets/volter-sdk-kit-api-project-source-DMnPoTP2.js +0 -1
  415. package/dist/assets/volter-sdk-kit-api-project-state-6Lu0Vxdr.js +0 -1
  416. package/dist/assets/volter-sdk-kit-api-relay-BuCkenvE.js +0 -1
  417. package/dist/assets/volter-sdk-kit-api-settings-CkFO_pMP.js +0 -1
  418. package/dist/assets/volter-sdk-kit-api-themes-D5J6TiAR.js +0 -1
  419. package/dist/assets/volter-sdk-kit-api-worktrees-de1U7-9B.js +0 -1
  420. package/dist/assets/volter-sdk-kit-asset-capabilities-IBJRDoU_.js +0 -1
  421. package/dist/assets/volter-sdk-kit-asset-compare-core-qeWQI0-1.js +0 -1
  422. package/dist/assets/volter-sdk-kit-asset-editor-context-JZ2T8xhF.js +0 -1
  423. package/dist/assets/volter-sdk-kit-asset-events-wfq-jH9_.js +0 -1
  424. package/dist/assets/volter-sdk-kit-asset-inspector-actions-NlF3CeMC.js +0 -1
  425. package/dist/assets/volter-sdk-kit-asset-selection-BUXGqut1.js +0 -1
  426. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-DNj4RggW.js +0 -1
  427. package/dist/assets/volter-sdk-kit-asset-thumbnails-CPp1sS_w.js +0 -1
  428. package/dist/assets/volter-sdk-kit-asset-viewers-PKilU3Lm.js +0 -1
  429. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-DHDfKVAJ.js +0 -1
  430. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-Ch0TDXil.js +0 -1
  431. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-Cb0-daSo.js +0 -1
  432. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Bznr7T6d.js +0 -1
  433. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-BriZZqYC.js +0 -1
  434. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-5K3HN4kg.js +0 -1
  435. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-F65PsmIZ.js +0 -1
  436. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-DzxVbaeb.js +0 -1
  437. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-B2Oxd31D.js +0 -1
  438. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-BmPO24SY.js +0 -1
  439. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-BPRq-xQf.js +0 -1
  440. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-CM64IwuA.js +0 -1
  441. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-BIKxorKS.js +0 -1
  442. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-7CNTmzBZ.js +0 -1
  443. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-C3EJl866.js +0 -1
  444. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-CQrbYiAp.js +0 -1
  445. package/dist/assets/volter-sdk-kit-authoring-active-adapter-BC9Cf4yx.js +0 -1
  446. package/dist/assets/volter-sdk-kit-authoring-active-systems-GZm33tOS.js +0 -1
  447. package/dist/assets/volter-sdk-kit-authoring-adapter-key-C4-d6xt1.js +0 -1
  448. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-CEEw_XEg.js +0 -1
  449. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-BJsS0bnj.js +0 -1
  450. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-1NA63Idp.js +0 -1
  451. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-BlbGyg38.js +0 -1
  452. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-D0FSf6DM.js +0 -1
  453. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-J7MnHWK3.js +0 -1
  454. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-CnLS2erF.js +0 -1
  455. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-BrmHkPuP.js +0 -1
  456. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-HQAxbCiB.js +0 -1
  457. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-CdLSRvO0.js +0 -1
  458. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-EWM45v6y.js +0 -1
  459. package/dist/assets/volter-sdk-kit-authoring-layered-pick-BX3K3GR7.js +0 -1
  460. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-BGatqFLR.js +0 -1
  461. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-CerY6qmy.js +0 -1
  462. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DxZ-V-ys.js +0 -1
  463. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-Bbv7lJc5.js +0 -1
  464. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-C5rP-I6e.js +0 -1
  465. package/dist/assets/volter-sdk-kit-authoring-provenance-BNVk0DFH.js +0 -1
  466. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-BqUskgSb.js +0 -1
  467. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-DB8S6Vfi.js +0 -1
  468. package/dist/assets/volter-sdk-kit-authoring-react-story-board-M-VqCWKu.js +0 -1
  469. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-Qbbz8M6t.js +0 -1
  470. package/dist/assets/volter-sdk-kit-authoring-selection-scope-CkblMrR8.js +0 -1
  471. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-B9Y9p91j.js +0 -1
  472. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-7umaPaVS.js +0 -1
  473. package/dist/assets/volter-sdk-kit-authoring-three-root-M5Gj55-Z.js +0 -1
  474. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-CH5NA-YI.js +0 -1
  475. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-CzTEMmzx.js +0 -1
  476. package/dist/assets/volter-sdk-kit-authoring-world-session-state-BjKbimsg.js +0 -1
  477. package/dist/assets/volter-sdk-kit-availability-tick-C7I6Zrut.js +0 -1
  478. package/dist/assets/volter-sdk-kit-bitmap-label-DPmffd8g.js +0 -1
  479. package/dist/assets/volter-sdk-kit-boot-routing-CaKypcBx.js +0 -1
  480. package/dist/assets/volter-sdk-kit-breakpoint-state-5m0qTYvY.js +0 -1
  481. package/dist/assets/volter-sdk-kit-build-identity-HQ0VWGG8.js +0 -1
  482. package/dist/assets/volter-sdk-kit-bytes-codec-BJDqylNg.js +0 -1
  483. package/dist/assets/volter-sdk-kit-cancellation-reason-B0z-IzQ9.js +0 -1
  484. package/dist/assets/volter-sdk-kit-canvas-frames-BtkS3lNe.js +0 -1
  485. package/dist/assets/volter-sdk-kit-capture-camera-pose-CUejcTcV.js +0 -1
  486. package/dist/assets/volter-sdk-kit-capture-size-Uyb3uqXA.js +0 -1
  487. package/dist/assets/volter-sdk-kit-chrome-registry-cc3AZlnV.js +0 -1
  488. package/dist/assets/volter-sdk-kit-chrome-slot-registry-C4g-na11.js +0 -1
  489. package/dist/assets/volter-sdk-kit-collaboration-client-Cd6918QC.js +0 -1
  490. package/dist/assets/volter-sdk-kit-collaboration-presence-qXC7JfS2.js +0 -1
  491. package/dist/assets/volter-sdk-kit-command-dispatch-D07Pn7pe.js +0 -1
  492. package/dist/assets/volter-sdk-kit-command-listener-Bm2sgP0i.js +0 -1
  493. package/dist/assets/volter-sdk-kit-command-registry-CJoVRu6V.js +0 -1
  494. package/dist/assets/volter-sdk-kit-component-board-registry-D7xm8cFr.js +0 -1
  495. package/dist/assets/volter-sdk-kit-component-states-registry-DtippeT3.js +0 -1
  496. package/dist/assets/volter-sdk-kit-components-AlignToolbar-BporX2iz.js +0 -1
  497. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DfmKRYtb.js +0 -1
  498. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-B-_vx-Jb.js +0 -1
  499. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-CyEcoLKv.js +0 -1
  500. package/dist/assets/volter-sdk-kit-components-BoardRulers-CjoDr2Ak.js +0 -1
  501. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-Bz4W0Y2g.js +0 -1
  502. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-Cyd5bYha.js +0 -1
  503. package/dist/assets/volter-sdk-kit-components-ChromeSlot-q_wsahlZ.js +0 -1
  504. package/dist/assets/volter-sdk-kit-components-CodeView-COOHbFef.js +0 -1
  505. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-F5yS9e4v.js +0 -1
  506. package/dist/assets/volter-sdk-kit-components-ConsolePanel-Dnnq15qj.js +0 -1
  507. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-CFCva8sQ.js +0 -1
  508. package/dist/assets/volter-sdk-kit-components-InspectionProjection-Cj0eqFPF.js +0 -1
  509. package/dist/assets/volter-sdk-kit-components-Inspector-DhnEEQ_5.js +0 -1
  510. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-ljsWq41X.js +0 -1
  511. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-pUp0DKhG.js +0 -1
  512. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-BJKmp0B3.js +0 -1
  513. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-DBDxp3Ir.js +0 -1
  514. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-eGVZo2ph.js +0 -1
  515. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-jKqvAsdL.js +0 -1
  516. package/dist/assets/volter-sdk-kit-components-MediaProperties-DEn9gV9T.js +0 -1
  517. package/dist/assets/volter-sdk-kit-components-ProjectHeader-CtsMXibh.js +0 -1
  518. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-Bdu_gdRF.js +0 -1
  519. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-8PYXBIYy.js +0 -1
  520. package/dist/assets/volter-sdk-kit-components-RootTextEditor-DFkpwNlX.js +0 -1
  521. package/dist/assets/volter-sdk-kit-components-SaveStatus-BP1Q1tfu.js +0 -1
  522. package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-C_FxlEvS.js +0 -1
  523. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-C_O4-zsY.js +0 -1
  524. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-DAoNJ2KS.js +0 -1
  525. package/dist/assets/volter-sdk-kit-components-ToolHost-z-CSuvra.js +0 -1
  526. package/dist/assets/volter-sdk-kit-components-Toolbar-CUsODOE2.js +0 -1
  527. package/dist/assets/volter-sdk-kit-components-TransientHint-BsejPKYD.js +0 -1
  528. package/dist/assets/volter-sdk-kit-components-VersionControlSection-ldwCuasW.js +0 -1
  529. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-DjfcwDPM.js +0 -1
  530. package/dist/assets/volter-sdk-kit-components-VolterLogo-wmAjAypV.js +0 -1
  531. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-JN-eaFqo.js +0 -1
  532. package/dist/assets/volter-sdk-kit-components-account-documents-BcgknOsj.js +0 -1
  533. package/dist/assets/volter-sdk-kit-components-asset-documents-B2W4TjZO.js +0 -1
  534. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-NTgC5Ngq.js +0 -1
  535. package/dist/assets/volter-sdk-kit-components-asset-selection-section-CLS4gJUE.js +0 -1
  536. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-CaYPgAtN.js +0 -1
  537. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-DbLUYMKF.js +0 -1
  538. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-B3ieuK68.js +0 -1
  539. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-DicJ06Cl.js +0 -1
  540. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-DRBY_95W.js +0 -1
  541. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-BR14tR5R.js +0 -1
  542. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-BI9bFeTE.js +0 -1
  543. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-d7Wqtjxk.js +0 -1
  544. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-Ykl90edA.js +0 -1
  545. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-BmwRhUts.js +0 -1
  546. package/dist/assets/volter-sdk-kit-components-board-guides-Dw7AT-AY.js +0 -1
  547. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-s3AK_b58.js +0 -1
  548. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-DKdXJcd9.js +0 -1
  549. package/dist/assets/volter-sdk-kit-components-core-utilities-C5ZKnxiW.js +0 -1
  550. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-BHsR6Ljx.js +0 -1
  551. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-BcItYP-3.js +0 -1
  552. package/dist/assets/volter-sdk-kit-components-inspector-selection-DnVCu9NI.js +0 -1
  553. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BbWmsm9H.js +0 -1
  554. package/dist/assets/volter-sdk-kit-components-inspector-transform-BCj8sqj5.js +0 -1
  555. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-DmyQlGz0.js +0 -1
  556. package/dist/assets/volter-sdk-kit-components-kind-documents-BECHMIFC.js +0 -1
  557. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-BB28QlBb.js +0 -1
  558. package/dist/assets/volter-sdk-kit-components-project-tool-documents-CrMMOzM5.js +0 -1
  559. package/dist/assets/volter-sdk-kit-components-scene-documents-B3yfDsBz.js +0 -1
  560. package/dist/assets/volter-sdk-kit-components-status-contributions-CDzNj8Hu.js +0 -1
  561. package/dist/assets/volter-sdk-kit-components-tool-documents-BpEG-ABF.js +0 -1
  562. package/dist/assets/volter-sdk-kit-components-tool-schema-form-BOiPCwKc.js +0 -1
  563. package/dist/assets/volter-sdk-kit-components-use-after-paint-AcvAjLMf.js +0 -1
  564. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-CRFbWY4e.js +0 -1
  565. package/dist/assets/volter-sdk-kit-components-workspace-history-DTgNtIrO.js +0 -1
  566. package/dist/assets/volter-sdk-kit-components-world-documents-N9ea5nLy.js +0 -1
  567. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-CvVXrTkV.js +0 -1
  568. package/dist/assets/volter-sdk-kit-composite-screenshot-BsiNQIxC.js +0 -1
  569. package/dist/assets/volter-sdk-kit-content-entry-source-registry-BX8YW40L.js +0 -1
  570. package/dist/assets/volter-sdk-kit-contribution-surfaces-CMblNYDG.js +0 -1
  571. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-BtPYs0AY.js +0 -1
  572. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-BCRK-uUC.js +0 -1
  573. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-3YuOn0LN.js +0 -1
  574. package/dist/assets/volter-sdk-kit-coverage-session-vitals-BpsIwBM0.js +0 -1
  575. package/dist/assets/volter-sdk-kit-creation-site-registry-C1_mEFTL.js +0 -1
  576. package/dist/assets/volter-sdk-kit-delegate-harness-registry-V07K9odj.js +0 -1
  577. package/dist/assets/volter-sdk-kit-document-areas-TQELDKqa.js +0 -1
  578. package/dist/assets/volter-sdk-kit-document-context-registry-BaPLLOGQ.js +0 -1
  579. package/dist/assets/volter-sdk-kit-document-open-registry-D-zxkb7y.js +0 -1
  580. package/dist/assets/volter-sdk-kit-document-play-extension-F8i5xdiU.js +0 -1
  581. package/dist/assets/volter-sdk-kit-document-preview-source-DgDf2lpD.js +0 -1
  582. package/dist/assets/volter-sdk-kit-document-renderer-session-YWnbpDFE.js +0 -1
  583. package/dist/assets/volter-sdk-kit-document-stage-sessions-BKZBGbit.js +0 -1
  584. package/dist/assets/volter-sdk-kit-document-viewports-DNuE6MQl.js +0 -1
  585. package/dist/assets/volter-sdk-kit-editor-api-DZDj3o86.js +0 -1
  586. package/dist/assets/volter-sdk-kit-editor-chrome-capture-De6DmSgV.js +0 -1
  587. package/dist/assets/volter-sdk-kit-editor-commands-CImZE1nE.js +0 -1
  588. package/dist/assets/volter-sdk-kit-editor-console-nzCbsR0U.js +0 -1
  589. package/dist/assets/volter-sdk-kit-editor-current-view-POB-DPkt.js +0 -1
  590. package/dist/assets/volter-sdk-kit-editor-document-probe-B5tRXCfR.js +0 -1
  591. package/dist/assets/volter-sdk-kit-editor-git-client-SsYoNC6J.js +0 -1
  592. package/dist/assets/volter-sdk-kit-editor-hotkeys-B4ocILot.js +0 -1
  593. package/dist/assets/volter-sdk-kit-editor-lease-CBvYmCsH.js +0 -1
  594. package/dist/assets/volter-sdk-kit-editor-lease-view-DVuaJEec.js +0 -1
  595. package/dist/assets/volter-sdk-kit-editor-mode-B2vWMS-_.js +0 -1
  596. package/dist/assets/volter-sdk-kit-editor-notifications-DgsalU9q.js +0 -1
  597. package/dist/assets/volter-sdk-kit-editor-presence-BQiXcYKf.js +0 -1
  598. package/dist/assets/volter-sdk-kit-editor-presentation-activity-DO7YpI0H.js +0 -1
  599. package/dist/assets/volter-sdk-kit-editor-presentation-notice-BZtrnX57.js +0 -1
  600. package/dist/assets/volter-sdk-kit-editor-runtime-C8mqfYkM.js +0 -1
  601. package/dist/assets/volter-sdk-kit-editor-server-response-qipqMDto.js +0 -1
  602. package/dist/assets/volter-sdk-kit-editor-session-attribution-_PNhRyeQ.js +0 -1
  603. package/dist/assets/volter-sdk-kit-editor-session-mode-BcDn3FZY.js +0 -1
  604. package/dist/assets/volter-sdk-kit-editor-state-facets-3r455vYW.js +0 -1
  605. package/dist/assets/volter-sdk-kit-editor-view-presentation-Dovw_-H_.js +0 -1
  606. package/dist/assets/volter-sdk-kit-environment-images-DNJU9lPC.js +0 -1
  607. package/dist/assets/volter-sdk-kit-eyedropper-session-DJMkT_IO.js +0 -1
  608. package/dist/assets/volter-sdk-kit-files-file-provider-BnmRHNTp.js +0 -1
  609. package/dist/assets/volter-sdk-kit-files-project-files-CiKUZlIY.js +0 -1
  610. package/dist/assets/volter-sdk-kit-finders-index-qZKU8xjn.js +0 -1
  611. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-DBTnLBhQ.js +0 -1
  612. package/dist/assets/volter-sdk-kit-frame-frame-parts-DY-_uCea.js +0 -1
  613. package/dist/assets/volter-sdk-kit-framed-document-capture-CsprF9Ct.js +0 -1
  614. package/dist/assets/volter-sdk-kit-game-surface-defaults-Dz1sExNZ.js +0 -1
  615. package/dist/assets/volter-sdk-kit-gameplay-export-state-BwkWHkY-.js +0 -1
  616. package/dist/assets/volter-sdk-kit-gameplay-replay-CgF6vM6H.js +0 -1
  617. package/dist/assets/volter-sdk-kit-gameplay-session-time-BrdLX9MN.js +0 -1
  618. package/dist/assets/volter-sdk-kit-gameplay-sessions-0YRBcIBD.js +0 -1
  619. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-pwxcueeL.js +0 -1
  620. package/dist/assets/volter-sdk-kit-hierarchy-internals-qxAC9Yyz.js +0 -1
  621. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-Bguy3R2P.js +0 -1
  622. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-CQ_dm6ZG.js +0 -1
  623. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BJliwGW1.js +0 -1
  624. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-C6zK-ewB.js +0 -1
  625. package/dist/assets/volter-sdk-kit-hierarchy-projection-q1LvhfSm.js +0 -1
  626. package/dist/assets/volter-sdk-kit-hierarchy-row-media-jZ989Tvr.js +0 -1
  627. package/dist/assets/volter-sdk-kit-hierarchy-row-model-BmrBiFlP.js +0 -1
  628. package/dist/assets/volter-sdk-kit-hierarchy-rows-BMI3XBi-.js +0 -1
  629. package/dist/assets/volter-sdk-kit-hierarchy-walk-oEWRF-Iz.js +0 -1
  630. package/dist/assets/volter-sdk-kit-history-editor-session-CdficO7Z.js +0 -1
  631. package/dist/assets/volter-sdk-kit-history-history-commands-D7VwYk3h.js +0 -1
  632. package/dist/assets/volter-sdk-kit-history-history-delegate-DgIAPV-4.js +0 -1
  633. package/dist/assets/volter-sdk-kit-history-history-limit-notices-Bu07tHVz.js +0 -1
  634. package/dist/assets/volter-sdk-kit-history-history-service-BzbUb6oV.js +0 -1
  635. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-DuWeeacm.js +0 -1
  636. package/dist/assets/volter-sdk-kit-history-project-file-history-C7m0teYF.js +0 -1
  637. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-mip7BKbu.js +0 -1
  638. package/dist/assets/volter-sdk-kit-history-resource-registry-CZoZX7pJ.js +0 -1
  639. package/dist/assets/volter-sdk-kit-history-snapshot-store-DFlmQKjf.js +0 -1
  640. package/dist/assets/volter-sdk-kit-history-source-history-backend-C1tXQx-3.js +0 -1
  641. package/dist/assets/volter-sdk-kit-hmr-registration-group-CdWSrJkL.js +0 -1
  642. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-B_NNyLJr.js +0 -1
  643. package/dist/assets/volter-sdk-kit-hotkeys-9UuVecd2.js +0 -1
  644. package/dist/assets/volter-sdk-kit-inference-diagnostics-Bp6UhMrh.js +0 -1
  645. package/dist/assets/volter-sdk-kit-initial-project-mIrJ1z4F.js +0 -1
  646. package/dist/assets/volter-sdk-kit-inspection-active-subject-Ci13od8C.js +0 -1
  647. package/dist/assets/volter-sdk-kit-inspection-active-surface-BbND9Nn7.js +0 -1
  648. package/dist/assets/volter-sdk-kit-inspection-compose-subject-Cruyx55P.js +0 -1
  649. package/dist/assets/volter-sdk-kit-inspection-display-Ckb72SDN.js +0 -1
  650. package/dist/assets/volter-sdk-kit-inspection-document-subject-Dd7sTsiM.js +0 -1
  651. package/dist/assets/volter-sdk-kit-inspection-game-subject-Zye7SfKC.js +0 -1
  652. package/dist/assets/volter-sdk-kit-inspection-model-B6kt5U5M.js +0 -1
  653. package/dist/assets/volter-sdk-kit-inspection-node-media-3WYK4mrg.js +0 -1
  654. package/dist/assets/volter-sdk-kit-inspection-null-subject-j5MU6Bqp.js +0 -1
  655. package/dist/assets/volter-sdk-kit-inspection-serialize-C5ElmYGd.js +0 -1
  656. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-Dqr8YOfV.js +0 -1
  657. package/dist/assets/volter-sdk-kit-inspector-presentation-Bxm_mJug.js +0 -1
  658. package/dist/assets/volter-sdk-kit-inspector-property-grouping-DGsJwl0r.js +0 -1
  659. package/dist/assets/volter-sdk-kit-inspector-section-registry-BTw0xKeK.js +0 -1
  660. package/dist/assets/volter-sdk-kit-instance-source-actions-B_SYfHzK.js +0 -1
  661. package/dist/assets/volter-sdk-kit-js-heap-CMHIxDFc.js +0 -1
  662. package/dist/assets/volter-sdk-kit-key-actions-npGWeBwX.js +0 -1
  663. package/dist/assets/volter-sdk-kit-keymap-presets-Dgo5jMVc.js +0 -1
  664. package/dist/assets/volter-sdk-kit-layout-policy-D6cqDneT.js +0 -1
  665. package/dist/assets/volter-sdk-kit-light-explorer-model-D9220Fr3.js +0 -1
  666. package/dist/assets/volter-sdk-kit-live-canvas-frame-CQvRrTp5.js +0 -1
  667. package/dist/assets/volter-sdk-kit-live-document-StECWB5n.js +0 -1
  668. package/dist/assets/volter-sdk-kit-live-gesture-lock-DpKIl8Kh.js +0 -1
  669. package/dist/assets/volter-sdk-kit-live-seam-evidence-WkwVMDpm.js +0 -1
  670. package/dist/assets/volter-sdk-kit-live-session-registry-DmaGkq5x.js +0 -1
  671. package/dist/assets/volter-sdk-kit-live-transition-B5jM4iFM.js +0 -1
  672. package/dist/assets/volter-sdk-kit-manifest-project-amCdVxUh.js +0 -1
  673. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-CpTsYq8x.js +0 -1
  674. package/dist/assets/volter-sdk-kit-mount-failure-report-DcYXxWwN.js +0 -1
  675. package/dist/assets/volter-sdk-kit-native-selection-style-bMu0TkER.js +0 -1
  676. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-DCtXUN3w.js +0 -1
  677. package/dist/assets/volter-sdk-kit-packaged-runtime-8FNZVNB9.js +0 -1
  678. package/dist/assets/volter-sdk-kit-performance-profiler-DKuyDNq0.js +0 -1
  679. package/dist/assets/volter-sdk-kit-performance-sources-CUq2AYlp.js +0 -1
  680. package/dist/assets/volter-sdk-kit-photograph-notice-CJC3RuIs.js +0 -1
  681. package/dist/assets/volter-sdk-kit-play-boot-phase-CvmjrYem.js +0 -1
  682. package/dist/assets/volter-sdk-kit-play-camera-flight-Dp3bYFl4.js +0 -1
  683. package/dist/assets/volter-sdk-kit-presentation-surface-DDAJLzOO.js +0 -1
  684. package/dist/assets/volter-sdk-kit-product-command-CevBP_kA.js +0 -1
  685. package/dist/assets/volter-sdk-kit-project-adapter-DZMJa9qO.js +0 -1
  686. package/dist/assets/volter-sdk-kit-project-asset-refresh-BlzSWFsZ.js +0 -1
  687. package/dist/assets/volter-sdk-kit-project-asset-roots-ByJUql0c.js +0 -1
  688. package/dist/assets/volter-sdk-kit-project-local-state-CzuDIgqm.js +0 -1
  689. package/dist/assets/volter-sdk-kit-project-manager-KiOTeJwI.js +0 -1
  690. package/dist/assets/volter-sdk-kit-project-module-changes-BDLfMwF6.js +0 -1
  691. package/dist/assets/volter-sdk-kit-project-module-split-DVZB3699.js +0 -1
  692. package/dist/assets/volter-sdk-kit-project-provenance-GZJY3tis.js +0 -1
  693. package/dist/assets/volter-sdk-kit-project-ready-EtjRqua9.js +0 -1
  694. package/dist/assets/volter-sdk-kit-project-shape-Jb91qwQJ.js +0 -1
  695. package/dist/assets/volter-sdk-kit-project-tools-n1IzvKJM.js +0 -1
  696. package/dist/assets/volter-sdk-kit-readiness-j18YadCv.js +0 -1
  697. package/dist/assets/volter-sdk-kit-renderer-resource-counts-BjvWDcz5.js +0 -1
  698. package/dist/assets/volter-sdk-kit-reported-play-state-BdYUBkLM.js +0 -1
  699. package/dist/assets/volter-sdk-kit-resolve-contributed-command-7ZIwPRlj.js +0 -1
  700. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BEqx2z44.js +0 -1
  701. package/dist/assets/volter-sdk-kit-retained-document-states-BWSvbm_C.js +0 -1
  702. package/dist/assets/volter-sdk-kit-scene-document-plan-B8Q6NbgU.js +0 -1
  703. package/dist/assets/volter-sdk-kit-scene-live-open-PVToaH1e.js +0 -1
  704. package/dist/assets/volter-sdk-kit-scoped-game-css-DOF-inf1.js +0 -1
  705. package/dist/assets/volter-sdk-kit-served-url-C3OFjtsJ.js +0 -1
  706. package/dist/assets/volter-sdk-kit-session-close-CfqKNfrE.js +0 -1
  707. package/dist/assets/volter-sdk-kit-session-tombstone-wgZaXyq-.js +0 -1
  708. package/dist/assets/volter-sdk-kit-settings-settings-provider-CkU3sFW7.js +0 -1
  709. package/dist/assets/volter-sdk-kit-settings-store-vv_SoMfR.js +0 -1
  710. package/dist/assets/volter-sdk-kit-shell-store-DTExcaKL.js +0 -1
  711. package/dist/assets/volter-sdk-kit-shell-store-door-Y-FBGkmI.js +0 -1
  712. package/dist/assets/volter-sdk-kit-source-conflict-CnIJpwkZ.js +0 -1
  713. package/dist/assets/volter-sdk-kit-stage-context-q9FWjN1-.js +0 -1
  714. package/dist/assets/volter-sdk-kit-stage-invalidation-43bhizXB.js +0 -1
  715. package/dist/assets/volter-sdk-kit-stage-store-registry-BQo-SIuU.js +0 -1
  716. package/dist/assets/volter-sdk-kit-startup-failure-B7USi1FF.js +0 -1
  717. package/dist/assets/volter-sdk-kit-state-report-deferral-Cur6y3FE.js +0 -1
  718. package/dist/assets/volter-sdk-kit-storage-host-files-storage-C9d8xXNc.js +0 -1
  719. package/dist/assets/volter-sdk-kit-storage-http-storage-MuV46OcN.js +0 -1
  720. package/dist/assets/volter-sdk-kit-storage-index-CcMXaj5N.js +0 -1
  721. package/dist/assets/volter-sdk-kit-storage-mem-storage-CaZsvmox.js +0 -1
  722. package/dist/assets/volter-sdk-kit-storage-path-lock-ClaJ7vSM.js +0 -1
  723. package/dist/assets/volter-sdk-kit-storage-paths-Ci2ZChlj.js +0 -1
  724. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-OjN0fncW.js +0 -1
  725. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-BlKWWJmk.js +0 -1
  726. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-CcmeyBzg.js +0 -1
  727. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-CA_oKZKb.js +0 -1
  728. package/dist/assets/volter-sdk-kit-stories-project-story-regions-CFAyIdjW.js +0 -1
  729. package/dist/assets/volter-sdk-kit-stories-scope-XvZpLAc5.js +0 -1
  730. package/dist/assets/volter-sdk-kit-stories-story-capture-K4eH6MMa.js +0 -1
  731. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-e8MXBoO_.js +0 -1
  732. package/dist/assets/volter-sdk-kit-stories-story-discovery-DViKEE-J.js +0 -1
  733. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-DdlXu5tN.js +0 -1
  734. package/dist/assets/volter-sdk-kit-stories-story-grouping-BbgkS2Kl.js +0 -1
  735. package/dist/assets/volter-sdk-kit-stories-story-presentation-Bw39PGHN.js +0 -1
  736. package/dist/assets/volter-sdk-kit-stories-story-registry-DpouLkjB.js +0 -1
  737. package/dist/assets/volter-sdk-kit-story-document-openers-DckbFGIr.js +0 -1
  738. package/dist/assets/volter-sdk-kit-story-thumbnails-ruZKvQPb.js +0 -1
  739. package/dist/assets/volter-sdk-kit-surface-keyboard-ChQta2gu.js +0 -1
  740. package/dist/assets/volter-sdk-kit-surface-state-CUbH0mE7.js +0 -1
  741. package/dist/assets/volter-sdk-kit-system-seam-evidence-hHuyimda.js +0 -1
  742. package/dist/assets/volter-sdk-kit-tab-census-BKO-Cotm.js +0 -1
  743. package/dist/assets/volter-sdk-kit-tab-lifecycle-client--HEzpfrP.js +0 -1
  744. package/dist/assets/volter-sdk-kit-theme-library-cooHZE2t.js +0 -1
  745. package/dist/assets/volter-sdk-kit-theme-preference-BfzIz8X4.js +0 -1
  746. package/dist/assets/volter-sdk-kit-three-viewport-presentation-DJQ6GD49.js +0 -1
  747. package/dist/assets/volter-sdk-kit-tool-contribution-play-B1vfLya9.js +0 -1
  748. package/dist/assets/volter-sdk-kit-tool-loader-C_B2N1As.js +0 -1
  749. package/dist/assets/volter-sdk-kit-transform-mode-request-tOzI-V8h.js +0 -1
  750. package/dist/assets/volter-sdk-kit-transient-hint-qly8UT5T.js +0 -1
  751. package/dist/assets/volter-sdk-kit-transport-strip-CrqMX70b.js +0 -1
  752. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-CjFRrSBS.js +0 -1
  753. package/dist/assets/volter-sdk-kit-ui-source-inspect-CPbxbbEw.js +0 -1
  754. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-Ci45ai4Y.js +0 -1
  755. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-B_pwEKI_.js +0 -1
  756. package/dist/assets/volter-sdk-kit-user-local-state-CZtLuAED.js +0 -1
  757. package/dist/assets/volter-sdk-kit-viewport-activation-timings-DtO34FL_.js +0 -1
  758. package/dist/assets/volter-sdk-kit-viewport-editor-controls-C4eYemqw.js +0 -1
  759. package/dist/assets/volter-sdk-kit-viewport-presentation-D1_lvqyl.js +0 -1
  760. package/dist/assets/volter-sdk-kit-viewport-surface-status-BsGJAuRu.js +0 -1
  761. package/dist/assets/volter-sdk-kit-wait-until-DlHFfLUu.js +0 -1
  762. package/dist/assets/volter-sdk-kit-worker-call-metrics-FsK4U-gz.js +0 -1
  763. package/dist/assets/volter-sdk-kit-workspace-areas-CvTSMn-H.js +0 -1
  764. package/dist/assets/volter-sdk-kit-workspace-aux-commands-CrxEUAQx.js +0 -1
  765. package/dist/assets/volter-sdk-kit-workspace-available-documents-Cl8CigSt.js +0 -1
  766. package/dist/assets/volter-sdk-kit-workspace-core-utilities-rQQcVO5n.js +0 -1
  767. package/dist/assets/volter-sdk-kit-workspace-document-ids-CisQDpex.js +0 -1
  768. package/dist/assets/volter-sdk-kit-workspace-document-registry-D4w40sGe.js +0 -1
  769. package/dist/assets/volter-sdk-kit-workspace-document-restore-B0s9617k.js +0 -1
  770. package/dist/assets/volter-sdk-kit-workspace-host-commands-DLqH47QQ.js +0 -1
  771. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-eeXMeNbc.js +0 -1
  772. package/dist/assets/volter-sdk-kit-workspace-play-utilities-sGc6TcaG.js +0 -1
  773. package/dist/assets/volter-sdk-kit-workspace-presets-D-OZK4QQ.js +0 -1
  774. package/dist/assets/volter-sdk-kit-workspace-regions-CLU4KicA.js +0 -1
  775. package/dist/assets/volter-sdk-kit-workspace-static-panels-BtUQumTF.js +0 -1
  776. package/dist/assets/volter-sdk-kit-workspace-status-registry-BlOrc7aA.js +0 -1
  777. package/dist/assets/volter-sdk-kit-workspace-storage-B1cvxes9.js +0 -1
  778. package/dist/assets/volter-sdk-kit-workspace-style-Czyy_uk2.js +0 -1
  779. package/dist/assets/volter-sdk-kit-workspace-utility-commands-D7ToZCgr.js +0 -1
  780. package/dist/assets/volter-sdk-kit-workspace-utility-registry-Czk_iMpg.js +0 -1
  781. package/dist/assets/volter-sdk-kit-world-adoption-CvxzEI8V.js +0 -1
  782. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-CjG34H8g.js +0 -1
  783. package/dist/assets/volter-sdk-kit-world-document-routing-B3yT1rzx.js +0 -1
  784. package/dist/assets/volter-sdk-kit-world-pan-state-Co5VSMOo.js +0 -1
  785. package/dist/assets/volter-sdk-kit-write-pipe-GbyDlxkJ.js +0 -1
  786. package/dist/assets/volter-sdk-layout-arrangements-DmBix6Gx.js +0 -1
  787. package/dist/assets/volter-sdk-layouts-CQccgb8u.js +0 -1
  788. package/dist/assets/volter-sdk-mgLi8_Cw.js +0 -2364
  789. package/dist/assets/volter-sdk-selection-wggwzLen.js +0 -1
  790. package/dist/assets/volter-sdk-session-command-table-HilHgL7-.js +0 -1
  791. package/dist/assets/volter-sdk-session-editor-brand-CnZ3VbR-.js +0 -1
  792. package/dist/assets/volter-sdk-session-editor-compatibility-BOYTGttq.js +0 -1
  793. package/dist/assets/volter-sdk-session-editor-control-protocol-DG79HI_x.js +0 -1
  794. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-D9FXlkS2.js +0 -1
  795. package/dist/assets/volter-sdk-session-game-css-scope-CZmonWfe.js +0 -1
  796. package/dist/assets/volter-sdk-session-limited-view-KNOq_tYc.js +0 -1
  797. package/dist/assets/volter-sdk-session-project-module-url-D7htWtkD.js +0 -1
  798. package/dist/assets/volter-sdk-session-relative-path-guard-DYa5PL0U.js +0 -1
  799. package/dist/assets/volter-sdk-session-tool-contribution-convention-GC2AWVch.js +0 -1
  800. package/dist/assets/volter-sdk-types-Couxbiwa.js +0 -1
  801. package/dist/assets/volter-sdk-views-D8qvTyCn.js +0 -1
  802. package/dist/assets/volter-sdk-widgets-design-system-DOW3sA7o.js +0 -1
  803. package/dist/assets/volter-sdk-widgets-editor-appearance-iH79zcxr.js +0 -1
  804. package/dist/assets/volter-sdk-widgets-editor-material-D-LB0zxr.js +0 -1
  805. package/dist/assets/volter-sdk-widgets-icon-set-registry-ylLmSwSr.js +0 -1
  806. package/dist/assets/volter-sdk-widgets-index-DMo0Rqvn.js +0 -1
  807. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DhdNVPDu.js +0 -1
  808. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BEDX8viW.js +0 -1
  809. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-9Vk3QrCy.js +0 -1
  810. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-rhGdxW0L.js +0 -1
  811. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BXu0Q3-y.js +0 -1
  812. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-C49uoql_.js +0 -1
  813. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BoRWZylN.js +0 -1
  814. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-GxINOtYX.js +0 -1
  815. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-rvCzzMDI.js +0 -1
  816. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-DG-MGXQX.js +0 -1
  817. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-Cy4AI76M.js +0 -1
  818. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-ncKgVdwJ.js +0 -1
  819. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-BtW7A1an.js +0 -1
  820. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-lOZ7oJLL.js +0 -1
  821. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-BbS6qOlJ.js +0 -1
  822. package/dist/assets/volter-sdk-widgets-patterns-Dialog-BqcAE1N1.js +0 -1
  823. package/dist/assets/volter-sdk-widgets-patterns-Fields-CD2kSMcv.js +0 -1
  824. package/dist/assets/volter-sdk-widgets-patterns-List-CZyrvaL-.js +0 -1
  825. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-D8L-se9D.js +0 -1
  826. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-sW43gM3D.js +0 -1
  827. package/dist/assets/volter-sdk-widgets-patterns-Tabs-CTEQRAHE.js +0 -1
  828. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CF8cj2Xd.js +0 -1
  829. package/dist/assets/volter-sdk-widgets-patterns-Tree-KffO8vo1.js +0 -1
  830. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-D2my2vjj.js +0 -1
  831. package/dist/assets/volter-sdk-widgets-primitives-Button-CiaR71jI.js +0 -1
  832. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DAxGHgoQ.js +0 -1
  833. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CCZYI-j9.js +0 -1
  834. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Fn9aFuF_.js +0 -1
  835. package/dist/assets/volter-sdk-widgets-primitives-FormControls-BMxlOety.js +0 -1
  836. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-BzwvyU3c.js +0 -1
  837. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-CTc6p9EQ.js +0 -1
  838. package/dist/assets/volter-sdk-widgets-primitives-Layout-CE-beP_c.js +0 -1
  839. package/dist/assets/volter-sdk-widgets-primitives-Menu-DfNc6W9I.js +0 -1
  840. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Cyjw5Lzx.js +0 -1
  841. package/dist/assets/volter-sdk-widgets-primitives-Panel-LGno17LT.js +0 -1
  842. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-Cljf9N48.js +0 -1
  843. package/dist/assets/volter-sdk-widgets-primitives-Text-B4gPva4d.js +0 -1
  844. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CXqwIkjb.js +0 -1
  845. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-DjwM-P34.js +0 -1
  846. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DWMZJklN.js +0 -1
  847. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-bbpLeXlG.js +0 -1
  848. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DB06CYVu.js +0 -1
  849. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-FxdDZA6W.js +0 -1
  850. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-CEiBBzGS.js +0 -1
  851. package/dist/assets/volter-sdk-widgets-theme-BysNs-Ha.js +0 -1
  852. package/dist/assets/volter-sdk-widgets-z-index-CQdgvLGF.js +0 -1
  853. package/dist/assets/volter-shared-fontawesome-BiNKLNA8.js +0 -1
  854. package/dist/assets/volter-shared-jsx-dev-runtime-BgDFKHr4.js +0 -1
  855. package/dist/assets/volter-shared-jsx-runtime-B6IXdFn7.js +0 -1
  856. package/dist/assets/volter-shared-react-dom-DOBDwT0W.js +0 -1
  857. package/dist/assets/volter-shared-react-dom-client-DxxNJanr.js +0 -1
  858. package/dist/assets/volter-shared-react-wgC9wOqr.js +0 -1
  859. package/dist/assets/volter-shared-three-CUSZKPWM.js +0 -1
  860. package/dist/assets/worker-DvJ796ja.js +0 -8
  861. package/dist/volter-shared-sdk.json +0 -465
  862. package/src/contributions.d.ts +0 -4
  863. package/starter/add-play/game-state.ts +0 -25
  864. package/starter/add-play/game.tsx +0 -16
  865. package/starter/add-play/model.play.ts +0 -77
  866. package/starter/playable/src/models/canyon.blend +0 -0
  867. package/starter/playable/src/models/canyon.play.ts +0 -107
  868. package/starter/playable/src/models/canyon.py +0 -55
  869. package/starter/playable/src/models/circuit.py +0 -131
  870. package/starter/playable/src/models/complete_environment.py +0 -35
  871. package/starter/playable/src/models/course.ts +0 -12
  872. package/starter/playable/src/models/detail.py +0 -44
  873. package/starter/playable/src/models/driver_details.py +0 -25
  874. package/starter/playable/src/models/environment.py +0 -87
  875. package/starter/playable/src/models/finish_scene.py +0 -13
  876. package/starter/playable/src/models/kart_finish.py +0 -31
  877. package/starter/playable/src/models/polish.py +0 -75
  878. package/starter/playable/src/models/race-state.ts +0 -15
  879. package/starter/playable/src/models/refine.py +0 -69
  880. package/starter/playable/src/models/scene_helpers.py +0 -54
  881. package/starter/playable/src/models/scenery_ao.py +0 -114
  882. package/starter/playable/src/textures/asphalt.png +0 -0
  883. package/starter/playable/src/textures/generate.py +0 -16
  884. package/starter/playable/src/textures/sandstone.png +0 -0
  885. package/starter/playable/src/ui/game.stories.tsx +0 -16
  886. package/starter/playable/src/ui/game.tsx +0 -6
  887. package/starter/playable/src/ui/race-hud.tsx +0 -29
  888. package/starter/playable/src/ui/race-widgets.tsx +0 -29
@@ -5,11 +5,11 @@ var __export = (target, all) => {
5
5
  };
6
6
 
7
7
  // node/create.ts
8
- import { spawn } from "node:child_process";
9
- import { constants, existsSync, symlinkSync } from "node:fs";
10
- import { mkdir, writeFile, copyFile, readFile, readdir } from "node:fs/promises";
11
- import { resolve, join, dirname, relative } from "node:path";
12
- import { fileURLToPath } from "node:url";
8
+ import { spawn as spawn2 } from "node:child_process";
9
+ import { constants, existsSync as existsSync2, symlinkSync } from "node:fs";
10
+ import { appendFile, mkdir, writeFile, copyFile, readFile, readdir, rm } from "node:fs/promises";
11
+ import { resolve as resolve2, join as join2, dirname as dirname2, relative as relative2 } from "node:path";
12
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
13
13
 
14
14
  // ../../node_modules/zod/v4/classic/external.js
15
15
  var external_exports = {};
@@ -13780,99 +13780,61 @@ function date4(params) {
13780
13780
  config(en_default());
13781
13781
 
13782
13782
  // ../project/src/manifest/schema.ts
13783
- var GAME_MANIFEST_VERSION = 2;
13784
- var REMOVED_SURFACE_SPELLING = {
13785
- threejs: "three",
13786
- pixijs: "canvas",
13787
- react: "dom"
13788
- };
13789
- var REMOVED_BARE_ADAPTER_SPELLING = {
13790
- threejs: "three",
13791
- pixijs: "canvas",
13792
- react: "dom"
13793
- };
13794
- function removedSpellingMessage(bad, where) {
13795
- const canonical = where === "adapter" ? REMOVED_BARE_ADAPTER_SPELLING[bad] : REMOVED_SURFACE_SPELLING[bad];
13796
- return `Game manifest: \`${where}\`: "${bad}" \u2014 that spelling was REMOVED (ARCHITECTURE-CORE \xA7Vocabulary). The surface vocabulary is 'three' | 'canvas' | 'dom' \u2014 what the HOST HANDS the root, never which library it uses.
13797
- Fix: change \`${where}\` to "${canonical}".`;
13798
- }
13799
- function rejectRemovedRootAdapterSpelling(value, ctx) {
13800
- if (typeof value === "string" && REMOVED_BARE_ADAPTER_SPELLING[value]) {
13801
- ctx.addIssue({ code: "custom", message: removedSpellingMessage(value, "adapter") });
13802
- return external_exports.NEVER;
13803
- }
13804
- if (value && typeof value === "object" && "surface" in value) {
13805
- const surface = value.surface;
13806
- if (typeof surface === "string" && REMOVED_SURFACE_SPELLING[surface]) {
13807
- ctx.addIssue({
13808
- code: "custom",
13809
- message: removedSpellingMessage(surface, "adapter.surface")
13810
- });
13811
- return external_exports.NEVER;
13812
- }
13813
- }
13814
- return value;
13815
- }
13816
- var RootAdapterSchema = external_exports.preprocess(
13817
- rejectRemovedRootAdapterSpelling,
13818
- external_exports.union([
13819
- external_exports.enum(["three", "canvas", "dom"]),
13820
- external_exports.object({
13821
- module: external_exports.string().describe("Game-folder-relative path to a custom adapter module (trust boundary)"),
13822
- surface: external_exports.enum(["three", "canvas", "dom"]).describe("Native surface exposed by this custom adapter contract")
13823
- }).strict(),
13824
- external_exports.object({
13825
- surface: external_exports.enum(["three", "canvas", "dom"]).describe("Native surface captured from the unmodified game"),
13826
- ingest: external_exports.object({
13827
- contractShim: external_exports.string().optional().describe(
13828
- "Project-relative path to a HOST-ADDED ES module that declares this game's `window.volterGame` contract (adapter/ingest/game-contract.ts) WITHOUT editing a vendored byte \u2014 the pristine-copy door. The host imports it immediately BEFORE the game's own entry module, in the editor's realm. TIMING CONTRACT, which a shim author must obey: because it runs before the game`s entry, it MUST assign `window.volterGame` SYNCHRONOUSLY at top level. Anything that needs the game`s own modules must be LAZY: a dynamic `import()` INSIDE each verb/provider closure, resolved at call time. Importing a game module eagerly from the shim would evaluate it ahead of the game`s own entry and reorder its module side effects. Every such `import()` MUST take a STRING LITERAL, never a variable/table lookup. A variable specifier is not statically analyzable, so the dev server leaves it alone and it resolves at runtime against the shim`s own `/@fs/` url \u2014 while the game`s entry has had ITS relative imports rewritten to whatever url the server considers canonical for those files. Module identity is per-url, so the shim silently binds a SECOND, freshly-evaluated copy of the whole game and every provider reports a game that never started. Measured on a vendored three game: 285 world segments through the game`s own graph, 0 through the shim`s, and no error anywhere."
13829
- ),
13830
- dataWriter: external_exports.string().optional().describe(
13831
- "Project-relative path to a HOST-ADDED ES module that writes this game's own DATA file back \u2014 the sibling of a source write for a game whose authorable truth is not source. A level-based game places its enemies, pickups and objectives in binary records inside a level file, reaching no source literal, so an authored move of one is an edit to that file and nothing else can write it. The module declares two exports and the host knows nothing else about it: `dataFile` (a project-relative string \u2014 the ONE file this writer edits) and `planDataEdit(bytes, {record, property, baseline, next})`, which returns `{changed: true, bytes}` or `{changed: false, reason}` and may be async. It is loaded in the editor realm beside the game, so it may `import()` the game's own modules to resolve what only a running game knows (a level writer asks the game`s own spatial lookup which cell a moved object landed in, and refuses \"outside the level\" rather than writing data the game would read back wrong). It NEVER fabricates: a record it cannot address, or a property it does not model, is a named refusal. An object is anchored to a record by carrying `userData.volterRecordIndex` \u2014 the game declares that identity itself (a recorded patch or a shim); the host never infers one."
13832
- ),
13833
- assets: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
13834
- "Path-substring -> served-URL rewrites for this ingested game (IngestGame.assets today)"
13835
- ),
13836
- moduleAliases: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
13837
- "The game's OWN bundler path aliases, restated as a mounting fact so its source resolves unedited. A game built with its own Vite/webpack config routinely imports itself through an alias (`~/lib/config`, `@/store/x`); the editor boots Vite from the ENGINE's config and never reads a game's own, so without this every such import is an unresolvable specifier and the mount dies at transform time. Key = the specifier PREFIX exactly as the game writes it (\"~/\"); value = the repo-root-relative directory it means (\"/vendor/games/<id>/src/\"). SELF-SCOPING: the host honors an entry only for importers inside the vendored game folder the value points into, so one game's alias can never capture another module's import. Rewriting the game's own imports instead would be a large non-seam-shaped diff against unmodified source \u2014 this declares the fact rather than editing it away."
13838
- ),
13839
- domStubs: external_exports.array(external_exports.string()).optional().describe(
13840
- "DOM API stub ids this ingested game requires to run headlessly/in-realm"
13841
- ),
13842
- captureTimeoutMs: external_exports.number().optional().describe(
13843
- "How long the host waits for this game's first captured frame before the mount FAILS by name. A game that needs a long boot (streamed world assets, a menu the player must clear) raises it; the default is 10s."
13844
- )
13845
- }).strict().describe(
13846
- "Ingest adapter configuration for an unmodified game (a repo-vendored game or your own external folder)"
13783
+ var PROJECT_MANIFEST_VERSION = 2;
13784
+ var RootAdapterSchema = external_exports.union([
13785
+ external_exports.enum(["stage", "canvas", "dom"]),
13786
+ external_exports.object({
13787
+ module: external_exports.string().describe("Project-folder-relative path to a custom adapter module (trust boundary)"),
13788
+ surface: external_exports.enum(["stage", "canvas", "dom"]).describe("Native surface exposed by this custom adapter contract")
13789
+ }).strict(),
13790
+ external_exports.object({
13791
+ surface: external_exports.enum(["stage", "canvas", "dom"]).describe("Native surface captured from the unmodified project"),
13792
+ ingest: external_exports.object({
13793
+ dataWriter: external_exports.string().optional().describe(
13794
+ "Project-relative path to a HOST-ADDED ES module that writes this project's own DATA file back \u2014 the sibling of a source write for a project whose authorable truth is not source. A level-based project places its enemies, pickups and objectives in binary records inside a level file, reaching no source literal, so an authored move of one is an edit to that file and nothing else can write it. The module declares two exports and the host knows nothing else about it: `dataFile` (a project-relative string \u2014 the ONE file this writer edits) and `planDataEdit(bytes, {record, property, baseline, next})`, which returns `{changed: true, bytes}` or `{changed: false, reason}` and may be async. It is loaded in the editor realm beside the project, so it may `import()` the project's own modules to resolve what only a running project knows (a level writer asks the project`s own spatial lookup which cell a moved object landed in, and refuses \"outside the level\" rather than writing data the project would read back wrong). It NEVER fabricates: a record it cannot address, or a property it does not model, is a named refusal. An object is anchored to a record by carrying `userData.volterRecordIndex` \u2014 the project declares that identity itself (a recorded patch or a shim); the host never infers one."
13795
+ ),
13796
+ assets: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
13797
+ "Path-substring -> served-URL rewrites for this ingested project"
13798
+ ),
13799
+ moduleAliases: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
13800
+ "The project's OWN bundler path aliases, restated as a mounting fact so its source resolves unedited. A project built with its own Vite/webpack config routinely imports itself through an alias (`~/lib/config`, `@/store/x`); the editor boots Vite from the ENGINE's config and never reads a project's own, so without this every such import is an unresolvable specifier and the mount dies at transform time. Key = the specifier PREFIX exactly as the project writes it (\"~/\"); value = the repo-root-relative directory it means (\"/vendor/<id>/src/\"). SELF-SCOPING: the host honors an entry only for importers inside the vendored folder the value points into, so one project's alias can never capture another module's import. Rewriting the project's own imports instead would be a large non-seam-shaped diff against unmodified source \u2014 this declares the fact rather than editing it away."
13801
+ ),
13802
+ domStubs: external_exports.array(external_exports.string()).optional().describe(
13803
+ "DOM API stub ids this ingested project requires to run headlessly/in-realm"
13804
+ ),
13805
+ captureTimeoutMs: external_exports.number().optional().describe(
13806
+ "How long the host waits for this project's first captured frame before the mount FAILS by name. A project that needs a long boot (streamed world assets, a menu the player must clear) raises it; the default is 10s."
13847
13807
  )
13848
- }).strict()
13849
- ])
13850
- ).describe(
13851
- "Root adapter identity: built-in 'three'/'canvas'/'dom' (what the host hands the root \u2014 'canvas' covers Pixi/Phaser/Babylon/raw WebGL, 'dom' covers React/Vue/plain HTML), a custom { module, surface } adapter, or an { ingest, surface } adapter for an unmodified game."
13808
+ }).strict().describe(
13809
+ "Ingest adapter configuration for an unmodified project (a repo-vendored one or your own external folder)"
13810
+ )
13811
+ }).strict()
13812
+ ]).describe(
13813
+ "Root adapter identity: built-in 'stage'/'canvas'/'dom' (what the host hands the root \u2014 'canvas' covers any canvas library or raw WebGL, 'dom' covers React/Vue/plain HTML), a custom { module, surface } adapter, or an { ingest, surface } adapter for an unmodified project."
13852
13814
  );
13853
13815
  var AdapterRootSchema = external_exports.object({
13854
13816
  id: external_exports.string().describe(
13855
- "Unique id for this root within the manifest (enforced-unique, D-V6 \u2014 GameManifestSchema.roots rejects duplicates)"
13817
+ "Unique id for this root within the manifest (enforced-unique, D-V6 \u2014 ProjectManifestSchema.roots rejects duplicates)"
13856
13818
  ),
13857
13819
  description: external_exports.string().optional().describe(
13858
- "Optional one-line description of this root's game/content (e.g. an ingested game's blurb \u2014 the manifest-native replacement for a registry entry's description field)"
13820
+ "Optional one-line description of this root's content"
13859
13821
  ),
13860
13822
  adapter: RootAdapterSchema.describe(
13861
13823
  "This root's adapter and sole rendering/lifecycle discriminator"
13862
13824
  ),
13863
13825
  entry: external_exports.string().optional().describe(
13864
- "Module exporting a world root \u2014 a TSX/R3F component or a setup()/adapter (three), or a React component (dom). Required for every built-in adapter root."
13826
+ "Module exporting a world root \u2014 a TSX component, which the built-in stage dialect renders, or a setup()/adapter (stage), or a React component (dom). Required for every built-in adapter root."
13865
13827
  ),
13866
13828
  styles: external_exports.array(external_exports.string()).optional().describe(
13867
- "Project-root-relative CSS files this root's mount needs \u2014 the PAGE-level stylesheet a game written to own a browser tab keeps its layout in (an ingested game is the standing case: its own entry imported the sheet, the host shim that replaces that entry cannot, because `html`/`body`/`*` rules would restyle the editor). Declared here, the editor serves each file rewritten to apply ONLY inside the container it mounts the root's DOM in (`@scope`; packages/editor/server/scoped-game-css.ts), so the HUD is styled on the UI board's story cards and on the game surface without the editor seeing a single one of those rules. The files themselves are never modified."
13829
+ "Project-root-relative CSS files this root's mount needs \u2014 the PAGE-level stylesheet a project written to own a browser tab keeps its layout in (an ingested project is the standing case: its own entry imported the sheet, the host shim that replaces that entry cannot, because `html`/`body`/`*` rules would restyle the editor). Declared here, the editor serves each file rewritten to apply ONLY inside the container it mounts the root's DOM in (`@scope`; packages/sdk/src/scoped-project-css.ts), so the HUD is styled on the UI board's story cards and on the play surface without the editor seeing a single one of those rules. The files themselves are never modified."
13868
13830
  ),
13869
13831
  world: external_exports.object({
13870
- entry: external_exports.string().describe("Project-relative path to the game's OWN module exporting that component"),
13832
+ entry: external_exports.string().describe("Project-relative path to the project's OWN module exporting that component"),
13871
13833
  export: external_exports.string().optional().describe(
13872
13834
  "Named export to read from that module; omit when the module default-exports it"
13873
13835
  )
13874
13836
  }).strict().optional().describe(
13875
- "The component this root's WORLD is, in the game's own source. Two readers, and they mount different things: the EDITOR mounts THIS component alone as the root's design-time document, while `entry` above stays what PLAY mounts (the whole game \u2014 its own composition, its own HUD, its own loop). It sits on the ROOT rather than inside any one adapter because the split it names is not about ingest: a game whose runtime entry is a SHELL over the thing an author actually edits has this shape whether the source is vendored or first-party. Two shipped cases, one field: an ingested game whose `entry` mounts game+HUD+loop while the named export is the world alone; and a translated Unity/Godot port, whose `entry` is a scene HOST that mounts the scene the built player starts on (`EditorBuildSettings` index 0 \u2014 routinely a menu with no 3D content at all) while the named export opens the scene an author edits. That is Unity's own split: build settings say where the PLAYER starts; the Scene view opens a scene, and Unity keeps that fact somewhere else entirely. A game whose world is not a separate component omits this and keeps mounting through `entry` in both modes."
13837
+ "The component this root's WORLD is, in the project's own source. Two readers, and they mount different things: the EDITOR mounts THIS component alone as the root's design-time document, while `entry` above stays what PLAY mounts (the whole project \u2014 its own composition, its own HUD, its own loop). It sits on the ROOT rather than inside any one adapter because the split it names is not about ingest: a project whose runtime entry is a SHELL over the thing an author actually edits has this shape whether the source is vendored or first-party. A project whose world is not a separate component omits this and keeps mounting through `entry` in both modes."
13876
13838
  ),
13877
13839
  zOrder: external_exports.number().int().default(0).describe("Canvas stacking order; ties broken by array order"),
13878
13840
  pausable: external_exports.boolean().default(true).describe("Whether play-mode pause/step applies to this root"),
@@ -13883,41 +13845,39 @@ var AdapterRootSchema = external_exports.object({
13883
13845
  function rootMedium(root) {
13884
13846
  return typeof root.adapter === "string" ? root.adapter : root.adapter.surface;
13885
13847
  }
13886
- var LearnKindSchema = external_exports.enum(["starter", "feature", "sample-game", "lesson-companion"]).describe(
13887
- "Content kind in the FTUE taxonomy (\xA73): starter (minimal per-genre starting point), feature (demonstrates a subsystem), sample-game (complete game as an architectural reference), lesson-companion (exists to back a Learn-site lesson)"
13848
+ var LearnKindSchema = external_exports.enum(["starter", "feature", "sample-project", "lesson-companion"]).describe(
13849
+ "Content kind: starter (minimal per-genre starting point), feature (demonstrates a subsystem), sample-project (a complete project as an architectural reference), lesson-companion (exists to back a Learn-site lesson)"
13888
13850
  );
13889
13851
  var LearnDifficultySchema = external_exports.enum(["beginner", "intermediate", "advanced"]).describe("Learner-facing difficulty rating");
13890
13852
  var LearnMetadataSchema = external_exports.object({
13891
13853
  kind: LearnKindSchema,
13892
- title: external_exports.string().min(1).describe("Learner-facing display title (gallery card headline)"),
13893
- summary: external_exports.string().min(1).describe("One-sentence learner-facing summary (gallery card body)"),
13854
+ title: external_exports.string().min(1).describe("Learner-facing display title"),
13855
+ summary: external_exports.string().min(1).describe("One-sentence learner-facing summary"),
13894
13856
  difficulty: LearnDifficultySchema,
13895
- features: external_exports.array(external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, "features tags must be kebab-case")).describe("Short kebab-case feature tags used as gallery/catalog filter facets"),
13857
+ features: external_exports.array(external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, "features tags must be kebab-case")).describe("Short kebab-case tags describing project features"),
13896
13858
  thumbnail: external_exports.string().optional().describe(
13897
- "Optional thumbnail image reference, PROJECT-relative (canonical path: learn/thumbnail.png \u2014 the \xA73 schema path). Generated per FT-11 by the deterministic render tooling (scripts/generate-learn-thumbnails.ts), never hand-made"
13859
+ "Optional thumbnail image reference, PROJECT-relative (canonical path: learn/thumbnail.png)"
13898
13860
  ),
13899
13861
  preview: external_exports.string().optional().describe(
13900
- "Optional short preview video/loop reference, PROJECT-relative (canonical path: learn/preview.mp4; generated per FT-11)"
13862
+ "Optional short preview video/loop reference, PROJECT-relative (canonical path: learn/preview.mp4)"
13901
13863
  ),
13902
13864
  lesson: external_exports.string().optional().describe(
13903
13865
  "Optional Learn-site lesson URL that teaches this project 1:1 (e.g. https://example.com/manual/physics/joints/)"
13904
13866
  )
13905
13867
  }).strict().describe(
13906
- "Learner-facing metadata (FT-5) \u2014 powers the example gallery, New Project wizard, and Learn-site catalog. Registries are generated from this block; there is no parallel hand-edited catalog."
13868
+ "Learner-facing metadata carried by example project manifests."
13907
13869
  );
13908
- var ConfigurationEnvelopeSchema = external_exports.object({
13909
- id: external_exports.string().min(1).describe("Configuration id, unique in the manifest"),
13910
- kind: external_exports.string().min(1).describe("A registered run kind")
13911
- }).passthrough();
13912
- var GameManifestSchema = external_exports.object({
13870
+ var ProjectManifestSchema = external_exports.object({
13913
13871
  $schema: external_exports.string().optional().describe("Optional JSON Schema URI for editor autocomplete and validation"),
13914
- manifestVersion: external_exports.literal(GAME_MANIFEST_VERSION).describe("Manifest file format version (v2 clean roots)"),
13915
- name: external_exports.string().describe("Game display name"),
13872
+ manifestVersion: external_exports.number().int().describe(
13873
+ `The manifest format version the project was written with (this editor writes ${PROJECT_MANIFEST_VERSION}); a manifest is read by its shape, never refused for its number`
13874
+ ),
13875
+ name: external_exports.string().describe("Project display name"),
13916
13876
  appId: external_exports.string().optional().describe("Stable reverse-domain application id used by packaged targets"),
13917
- version: external_exports.string().describe("The game's own version (used for orphan detection)"),
13877
+ version: external_exports.string().describe("The project's own version"),
13918
13878
  engine: external_exports.object({
13919
13879
  version: external_exports.string().describe(
13920
- "Exact @volter/project semver this game was scaffolded/last upgraded against \u2014 an identity pin, not a range"
13880
+ "Exact @volter/project semver this project was scaffolded/last upgraded against \u2014 an identity pin, not a range"
13921
13881
  )
13922
13882
  }).strict().describe("Engine version pin"),
13923
13883
  roots: external_exports.array(AdapterRootSchema).superRefine((roots, ctx) => {
@@ -13928,7 +13888,7 @@ var GameManifestSchema = external_exports.object({
13928
13888
  const idsText = duplicates.map((id) => `"${id}"`).join(", ");
13929
13889
  ctx.addIssue({
13930
13890
  code: external_exports.ZodIssueCode.custom,
13931
- message: duplicates.length === 1 ? `Game manifest: duplicate root id ${idsText} \u2014 root ids must be unique across the manifest (enforced-unique).` : `Game manifest: duplicate root ids: ${idsText} \u2014 root ids must be unique across the manifest (enforced-unique).`
13891
+ message: duplicates.length === 1 ? `Project manifest: duplicate root id ${idsText} \u2014 root ids must be unique across the manifest (enforced-unique).` : `Project manifest: duplicate root ids: ${idsText} \u2014 root ids must be unique across the manifest (enforced-unique).`
13932
13892
  });
13933
13893
  }
13934
13894
  const idsByMedium = /* @__PURE__ */ new Map();
@@ -13942,11 +13902,11 @@ var GameManifestSchema = external_exports.object({
13942
13902
  if (ids.length < 2) continue;
13943
13903
  ctx.addIssue({
13944
13904
  code: external_exports.ZodIssueCode.custom,
13945
- message: `Game manifest: a project has at most one ${medium} world root \u2014 ${ids.map((id) => `"${id}"`).join(", ")} all occupy the ${medium} surface. Keep one and remove the rest, or move a root to a different medium (three / canvas / dom); only one root per medium is ever mounted, so a second one's content would never appear.`
13905
+ message: `Project manifest: a project has at most one ${medium} world root \u2014 ${ids.map((id) => `"${id}"`).join(", ")} all occupy the ${medium} surface. Keep one and remove the rest, or move a root to a different medium (stage / canvas / dom); only one root per medium is ever mounted, so a second one's content would never appear.`
13946
13906
  });
13947
13907
  }
13948
13908
  }).describe(
13949
- "The project's explicit adapter-root composition \u2014 ZERO OR MORE roots, and no implicit root: a project with no roots mounts nothing (a library of models, a folder of documents) and the editor derives its chrome from what IS declared. Root ids are unique, and a project declares at most ONE world root per medium \u2014 one `three`, one `dom`, one canvas-surface root (first-party canvas, canvas ingest and canvas module are the same medium)."
13909
+ "The project's explicit adapter-root composition \u2014 ZERO OR MORE roots, and no implicit root: a project with no roots mounts nothing (a library of models, a folder of documents) and the editor derives its chrome from what IS declared. Root ids are unique, and a project declares at most ONE world root per medium \u2014 one `stage`, one `dom`, one canvas-surface root (first-party canvas, canvas ingest and canvas module are the same medium)."
13950
13910
  ),
13951
13911
  authoring: external_exports.object({
13952
13912
  hierarchy: external_exports.object({
@@ -13960,62 +13920,14 @@ var GameManifestSchema = external_exports.object({
13960
13920
  ).optional().describe("Optional editor-only hierarchy groups")
13961
13921
  }).strict().optional().describe("Editor projection for native adapter roots")
13962
13922
  }).strict().optional().describe("Editor-only authoring metadata; never runtime ownership"),
13963
- configurations: external_exports.array(ConfigurationEnvelopeSchema).optional().describe(
13964
- "The project's run configurations \u2014 its ENTRYPOINTS beyond the host mount (`play`): each an id and a registered kind (`process`, `compound`, and whatever a capability registers) with that kind's own fields. The editor's transport and a harness start the same declaration."
13965
- ),
13966
13923
  resolution: external_exports.object({
13967
13924
  width: external_exports.number().describe("Canvas width in pixels"),
13968
13925
  height: external_exports.number().describe("Canvas height in pixels")
13969
13926
  }).strict().optional().describe("Canvas resolution"),
13970
- rendering: external_exports.object({
13971
- antialias: external_exports.boolean().describe(
13972
- "Whether every three root is built with a multisampled drawing buffer. This is the ONE render property a world cannot declare for itself (adapter/renderer-config.ts): a WebGL context fixes its sample count at CREATION from this boolean, long before a world mounts, so it belongs to the PROJECT. The runtime reader is mount-manifest.ts, which threads it into createHostRenderer for each three root. WebGL exposes no sample COUNT \u2014 the implementation picks one (4x on every desktop browser measured), so a source engine that authored 8x/16x gets multisampling but not its exact count."
13973
- )
13974
- }).strict().optional().describe(
13975
- "Construction-time renderer properties, which no world can declare after the fact. Everything a world CAN declare (tone mapping, output colour space, clear colour, shadow filter) lives on the world's own renderer config instead."
13976
- ),
13977
- debug: external_exports.object({
13978
- allowInProduction: external_exports.boolean().describe(
13979
- "Allow the ?volter-debug=1 introspection bridge and debug-command invocation in production builds. Default false: the bridge only installs in dev builds. The runtime reader is the debug-bridge installer (D18)."
13980
- )
13981
- }).strict().optional().describe(
13982
- "Debug-bridge production gating (D18) \u2014 governs whether ?volter-debug=1 installs window.__volter outside dev builds."
13983
- ),
13984
- determinism: external_exports.object({
13985
- seededRandom: external_exports.boolean().describe(
13986
- "Declares that ALL gameplay RNG in this project flows through ctx.random (the named-stream seeded PRNG) rather than raw Math.random/Date.now/performance.now. Three runtime enforcers key off this flag: the boot-time seeding reader (mount-manifest.ts seeds ctx.random from defaultSeed/?volter-seed=/explicit config, in that precedence, only when true), the gameplay-rng-ban burn-down scan (test/gameplay-rng-ban.test.ts \u2014 lints this project's src/ for raw RNG/wall-clock calls), and the dev-mode Math.random phase trap (runtime/gameplay-rng-trap.ts \u2014 warns once per call site during a gameplay frame, never throws). Default false: an undeclared project gets no determinism contract at all (that IS the opt-out \u2014 no dead field)."
13987
- ),
13988
- defaultSeed: external_exports.number().int().optional().describe(
13989
- "The seed ctx.random boots from when seededRandom is true, unless overridden by ?volter-seed=<int> (the query param always wins over this manifest default) or an even higher-precedence explicit config value a host passes directly. Optional \u2014 omit to fall back to the runtime's own fixed default seed."
13990
- )
13991
- }).strict().optional().describe(
13992
- "Seeded-RNG determinism contract (D15) \u2014 governs whether ctx.random is boot-seeded from a reproducible seed and whether the gameplay-rng-ban scan / dev-mode Math.random phase trap are active for this project."
13993
- ),
13994
- budget: external_exports.object({
13995
- frameCpuMsP95: external_exports.number().positive().optional().describe(
13996
- "Maximum allowed p95 of per-frame CPU time (ms) across the measured frames of a `volter perf` seeded headless run. CPU-side only: headless runs rasterize under SwiftShader, so this is main-thread frame cost, NOT real GPU frame time. Machine-dependent \u2014 prefer the baseline-diff tolerance band for regression gating and use this as a coarse absolute ceiling."
13997
- ),
13998
- physicsMsP95: external_exports.number().positive().optional().describe(
13999
- "Maximum allowed p95 of the profiler's `physics` phase time (ms) per fixed-step frame in a `volter perf` run. Same CPU-timing caveats as frameCpuMsP95."
14000
- ),
14001
- maxEntities: external_exports.number().int().nonnegative().optional().describe(
14002
- "Maximum allowed entity-tagged scene-graph nodes (nodes carrying userData.entityId) summed across the game's three/canvas worlds at the end of a `volter perf` run. Exact and deterministic under a seed \u2014 no tolerance band."
14003
- ),
14004
- maxDrawCalls: external_exports.number().int().positive().optional().describe(
14005
- "Maximum allowed renderer draw calls in any measured frame of a `volter perf` run (the profiler's per-frame render.drawCalls, from renderer.info). Exact and deterministic under a seed."
14006
- ),
14007
- maxTriangles: external_exports.number().int().positive().optional().describe(
14008
- "Maximum allowed rendered triangles in any measured frame of a `volter perf` run (the profiler's per-frame render.triangles, from renderer.info). Exact and deterministic under a seed."
14009
- )
14010
- }).strict().refine((budget) => Object.values(budget).some((value) => value !== void 0), {
14011
- message: "Game manifest: `budget` must set at least one metric (frameCpuMsP95, physicsMsP95, maxEntities, maxDrawCalls, maxTriangles) \u2014 an empty budget block gates nothing (the no-dead-fields policy)."
14012
- }).optional().describe(
14013
- "Performance budget (W3d, F11 perf regression gates) asserted by `volter perf --assert-budget`: a seeded, fixed-step headless run samples the engine profiler and fails (nonzero exit) when any metric here is exceeded. Only headlessly-measurable metrics are budgetable; real GPU frame time is not (SwiftShader)."
14014
- ),
14015
13927
  learn: LearnMetadataSchema.optional().describe(
14016
- "Optional learner-facing metadata (FT-5) \u2014 set on shipped example projects so the gallery/wizard/Learn-catalog registries can be generated from the manifest itself"
13928
+ "Optional learner-facing metadata for example projects."
14017
13929
  )
14018
- }).strict().describe("Game manifest (volter.project.json) \u2014 the complete v2 project configuration");
13930
+ }).strict().describe("Project manifest (volter.project.json) \u2014 the complete v2 project configuration");
14019
13931
 
14020
13932
  // ../project/src/manifest/filename.ts
14021
13933
  var MANIFEST_FILENAME = "volter.project.json";
@@ -14023,14 +13935,16 @@ var MANIFEST_FILENAME = "volter.project.json";
14023
13935
  // package.json
14024
13936
  var package_default = {
14025
13937
  name: "@volter/cyclotron",
13938
+ publisher: "volter",
14026
13939
  author: "Volter AI, Inc.",
14027
- version: "0.5.211",
13940
+ version: "0.5.213",
14028
13941
  publishConfig: {
14029
13942
  access: "public"
14030
13943
  },
14031
13944
  type: "module",
14032
13945
  engines: {
14033
- node: ">=24"
13946
+ node: ">=26.8.1",
13947
+ vscode: "*"
14034
13948
  },
14035
13949
  license: "AGPL-3.0-only AND GPL-3.0-or-later AND MIT",
14036
13950
  description: "A free, open-source game editor by videogame.ai using Blender 5.2 compiled to WebAssembly, Code-OSS, three.js, TypeScript and React.",
@@ -14065,80 +13979,180 @@ var package_default = {
14065
13979
  "BUNDLED_NOTICES"
14066
13980
  ],
14067
13981
  scripts: {
14068
- build: "vite build --config vite.config.ts",
13982
+ build: "npm run build --prefix ../play && vite build --config vite.config.ts",
14069
13983
  "build:node": "node scripts/build-node.mjs",
14070
13984
  typecheck: "tsc -p tsconfig.node.json",
14071
- test: "npm run build:node && node --test test/first-run.test.mjs"
13985
+ test: "npm run build:node && node --test test/first-run.test.mjs test/cli-args.test.mjs test/play-lost-answer.test.mjs"
14072
13986
  },
14073
- volter: {
14074
- product: {
14075
- entry: "./src/index.ts",
14076
- displayName: "Volter Cyclotron",
14077
- install: "npx @volter/cyclotron create my-game",
14078
- colorTheme: "dark",
14079
- upgrade: true,
14080
- adapterRequired: true,
14081
- workbench: {
14082
- "darwin-arm64": {
14083
- release: "cyclotron-4782d9a281ef-ec1e0e845c3a-darwin-arm64",
14084
- tarballSha256: "2a57c0cbc8baa64114d727fe9be00e849f5b8257a8416b50189017f247982c55"
14085
- },
14086
- "linux-x64": {
14087
- release: "cyclotron-4782d9a281ef-5b6840f8c154-linux-x64",
14088
- tarballSha256: "5fe9b6965453ad47a140f6ca939fbbc56a5b7ab9b2aec4b125d7d31f5adea5f9"
14089
- },
14090
- "win32-x64": {
14091
- release: "cyclotron-4782d9a281ef-5b6840f8c154-win32-x64",
14092
- tarballSha256: "c623156000dff25c6dbb4d88992b4a3d4d5a7aeb42a1882f1b9e20c8f496df04"
13987
+ contributes: {
13988
+ volter: {
13989
+ looks: [
13990
+ "./src/styles/maya.style.ts",
13991
+ "./src/styles/substance.style.ts"
13992
+ ],
13993
+ product: {
13994
+ entry: "./src/index.ts",
13995
+ composes: [
13996
+ "@volter/editor-blender",
13997
+ "@volter/editor-threejs",
13998
+ "@volter/play",
13999
+ "@volter/chat"
14000
+ ],
14001
+ displayName: "Volter Cyclotron",
14002
+ install: "npx @volter/cyclotron create my-game",
14003
+ colorTheme: "dark",
14004
+ upgrade: true,
14005
+ adapterRequired: true,
14006
+ workbench: {
14007
+ "darwin-arm64": {
14008
+ release: "cyclotron-624490512f0c-0ba7394f05b2-darwin-arm64",
14009
+ tarballSha256: "4b752c3abd5595e2e4f7ae4d750b78d2f3c1a0da98140a8ee04c89893689a836"
14010
+ },
14011
+ "linux-x64": {
14012
+ release: "cyclotron-624490512f0c-0ba7394f05b2-linux-x64",
14013
+ tarballSha256: "6028c6d71df09bbb67ee90b936fc80fdc429d5ef0b1c78db07a6c39d9a4b2e1c"
14014
+ },
14015
+ "win32-x64": {
14016
+ release: "cyclotron-624490512f0c-0ba7394f05b2-win32-x64",
14017
+ tarballSha256: "57e8fa6dbc439de5fba7da35fa17c710644d465842bd967c8ba7f1e73fcbee2f"
14018
+ }
14093
14019
  }
14094
14020
  }
14095
14021
  }
14096
14022
  },
14097
14023
  dependencies: {
14098
- "@volter/editor-core": "0.5.211",
14099
- "@volter/editor-blender": "0.1.150",
14100
- "@volter/editor-threejs": "0.5.211",
14101
- "@volter/blender-engine": "0.1.148",
14102
- "@volter/project": "0.5.211",
14103
- "@volter/sdk": "0.5.211",
14104
- "@volter/live": "0.5.211",
14024
+ "@volter/editor-core": "0.5.213",
14025
+ "@volter/editor-blender": "0.1.152",
14026
+ "@volter/editor-threejs": "0.5.213",
14027
+ "@volter/chat": "0.5.213",
14028
+ "@volter/blender-engine": "0.1.150",
14029
+ "@volter/project": "0.5.213",
14030
+ "@volter/sdk": "0.5.213",
14031
+ "@volter/live": "0.5.213",
14032
+ "@volter/play": "0.5.213",
14033
+ three: "^0.186.1",
14105
14034
  "@modelcontextprotocol/sdk": "1.32.1",
14106
14035
  typescript: "5.9.3",
14107
14036
  undici: "7.29.1"
14108
14037
  },
14038
+ devDependencies: {
14039
+ esbuild: "0.25.12"
14040
+ },
14109
14041
  bin: {
14110
14042
  cyclotron: "./dist-node/cli.js"
14111
14043
  }
14112
14044
  };
14113
14045
 
14114
- // node/create.ts
14046
+ // node/identity.ts
14047
+ var COMMAND = Object.keys(package_default.bin)[0];
14048
+ var DISPLAY_NAME = package_default.contributes.volter.product.displayName;
14049
+
14050
+ // node/std.ts
14051
+ import { spawn } from "node:child_process";
14052
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
14053
+ import { dirname, join, relative, resolve } from "node:path";
14054
+ import { fileURLToPath } from "node:url";
14055
+ import { workbenchProductId } from "@volter/live/product-locator";
14115
14056
  var productRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
14057
+ function checkoutRoot() {
14058
+ for (let dir = productRoot; dirname(dir) !== dir; dir = dirname(dir))
14059
+ if (existsSync(join(dir, "packages", workbenchProductId(package_default.name), "package.json"))) return dir;
14060
+ return null;
14061
+ }
14062
+ function pinnedStd(verb) {
14063
+ const root = checkoutRoot();
14064
+ if (root === null)
14065
+ throw new Error(`${verb} makes a volter-ai/std game with the std a Cyclotron checkout pins (external/std); this Cyclotron is installed from npm and carries no std yet. Run ${verb} from a checkout of volter-ai/editor.`);
14066
+ const std = join(root, "external", "std");
14067
+ const devTools = join(std, "packages", "std-dev");
14068
+ if (!existsSync(join(devTools, "package.json")))
14069
+ throw new Error(`${verb}: the pinned std is not checked out at ${std}: run \`git submodule update --init external/std\` in ${root}.`);
14070
+ if (!existsSync(join(devTools, "dist", "cli.js")) || !existsSync(join(devTools, "template", "std.json")))
14071
+ throw new Error(`${verb}: the pinned std at ${std} is not built: run \`pnpm install\` and \`pnpm build\` there (Node 24 and pnpm 12.15 or newer).`);
14072
+ return join(devTools, "bin", "std.js");
14073
+ }
14074
+ function run(program, args, cwd, what) {
14075
+ return new Promise((done, fail) => {
14076
+ const windows = process.platform === "win32" && program !== process.execPath;
14077
+ const child = windows ? spawn([program, ...args].map((arg) => JSON.stringify(arg)).join(" "), { cwd, stdio: "inherit", windowsHide: true, shell: true }) : spawn(program, args, { cwd, stdio: "inherit", windowsHide: true });
14078
+ child.once("error", (error48) => fail(new Error(`${what} could not start: ${error48.message}`)));
14079
+ child.once("exit", (code) => code === 0 ? done() : fail(new Error(`${what} ended with code ${String(code)}.`)));
14080
+ });
14081
+ }
14082
+ function stdNew(std, folder, name) {
14083
+ return run(process.execPath, [std, "new", folder, "--name", name], dirname(folder), "std new");
14084
+ }
14085
+ function pnpmInstall(project) {
14086
+ console.log("Installing the game's dependencies with pnpm\u2026");
14087
+ return run("pnpm", ["install", "--config.confirmModulesPurge=false"], project, "pnpm install");
14088
+ }
14089
+ function checkoutLinks(names) {
14090
+ const root = checkoutRoot();
14091
+ if (root === null) throw new Error("checkoutLinks: Cyclotron is not running from a checkout.");
14092
+ const folders = /* @__PURE__ */ new Map();
14093
+ for (const folder of readdirSync(join(root, "packages"))) {
14094
+ const manifest = join(root, "packages", folder, "package.json");
14095
+ if (!existsSync(manifest)) continue;
14096
+ const { name } = JSON.parse(readFileSync(manifest, "utf8"));
14097
+ if (typeof name === "string") folders.set(name, join(root, "packages", folder));
14098
+ }
14099
+ return Object.fromEntries(names.map((name) => {
14100
+ const folder = folders.get(name);
14101
+ if (folder === void 0) throw new Error(`The checkout at ${root} has no package ${name}.`);
14102
+ return [name, `link:${folder.split("\\").join("/")}`];
14103
+ }));
14104
+ }
14105
+
14106
+ // node/create.ts
14107
+ var productRoot2 = resolve2(dirname2(fileURLToPath2(import.meta.url)), "..");
14116
14108
  var UPGRADING = {
14117
14109
  packageName: package_default.name,
14118
- command: Object.keys(package_default.bin)[0],
14119
- dir: productRoot,
14120
- replaces: [{
14121
- packageName: "@volter/model-editor",
14122
- command: "volter-model-editor",
14123
- names: [["Volter Model Editor", "Volter Cyclotron"], ["Model Editor", "Cyclotron"]]
14124
- }]
14125
- };
14126
- var PLAY_SCAFFOLD = {
14127
- uiRoot: { id: "ui", adapter: "dom", entry: "src/ui/game.tsx", zOrder: 1 },
14110
+ command: COMMAND,
14111
+ dir: productRoot2
14112
+ };
14113
+ var PLAY_PACKAGES = (kit) => ({
14114
+ "@volter/play": kit,
14115
+ "@volter/editor-ui": kit,
14116
+ "@volter/editor-react": kit,
14117
+ "@volter/editor-movie": kit
14118
+ });
14119
+ var EXAMPLES = {
14120
+ "canyon-comet": {
14121
+ name: "Canyon Comet",
14122
+ description: "A three-lap kart race through a desert canyon: a std game, its race the room's, its HUD React, with win and lose bots.",
14123
+ roots: [{ id: "ui", adapter: "dom", entry: "client/hud/race-hud.tsx", zOrder: 1 }],
14124
+ resolution: { width: 1672, height: 941 },
14125
+ // (i18next: the HUD's words are keys in locales/, read with t())
14126
+ dependencies: { i18next: "~26.7.2" },
14127
+ /** The goal the game's `play` scripts name in place of the starter's. */
14128
+ goal: "win",
14129
+ /** std's starter files the example has no use for: its main level, its walking characters and its chat. */
14130
+ removes: ["levels/MainLevel.tsx", "client/characters.tsx", "client/chat.tsx"]
14131
+ }
14132
+ };
14133
+ var isExample = (id) => Object.hasOwn(EXAMPLES, id);
14134
+ var FILM = {
14135
+ graphicsRoot: { id: "graphics", adapter: "dom", entry: "src/graphics/title.tsx", zOrder: 1 },
14128
14136
  resolution: { width: 1280, height: 720 },
14129
- dependencies: { react: "~19.2.4", "react-dom": "~19.2.4", three: "^0.180.0" },
14130
- /** The kit packages Play and the DOM root need, at the kit version this product was released against. */
14131
- devDependencies: (kit) => ({ "@volter/play": kit, "@volter/editor-ui": kit, "@volter/editor-react": kit }),
14132
- /** The adapter line that lets the UI board discover `src/ui` stories. */
14133
- regionIncludes: " regionIncludes: { ui: { include: ['src/ui/**/*.tsx'] } },\n"
14134
- };
14135
- var PLAYABLE = {
14136
- ...PLAY_SCAFFOLD,
14137
- resolution: { width: 1672, height: 941 },
14138
- defaultDocument: "model:src/models/canyon.blend",
14139
- /** The folder under `starter/` that is copied onto the new project. */
14140
- example: "playable"
14141
- };
14137
+ dependencies: { react: "~19.2.4", "react-dom": "~19.2.4" },
14138
+ devDependencies: (kit) => ({ "@volter/editor-film": kit }),
14139
+ regionIncludes: " regionIncludes: { graphics: { include: ['src/graphics/**/*.tsx'] } },\n",
14140
+ /** The film's documents beside its models (`@volter/editor-film`'s finder), the script open first. */
14141
+ defaultDocument: "film:script.fountain",
14142
+ finder: ", { finder: 'filmFiles', include: ['script.fountain', 'shots.json', 'cut.json'] }",
14143
+ example: "film",
14144
+ skills: "film-skills"
14145
+ };
14146
+ async function copyStarterTree(folder, to) {
14147
+ const from = join2(productRoot2, "starter", folder);
14148
+ for (const entry of await readdir(from, { recursive: true, withFileTypes: true })) {
14149
+ if (!entry.isFile()) continue;
14150
+ const source = join2(entry.parentPath, entry.name);
14151
+ const target = join2(to, relative2(from, source));
14152
+ await mkdir(dirname2(target), { recursive: true });
14153
+ await copyFile(source, target, constants.COPYFILE_EXCL);
14154
+ }
14155
+ }
14142
14156
  var PROJECT_TSCONFIG = JSON.stringify({
14143
14157
  compilerOptions: {
14144
14158
  target: "ES2022",
@@ -14154,26 +14168,36 @@ var PROJECT_TSCONFIG = JSON.stringify({
14154
14168
  include: ["src/**/*.ts", "src/**/*.tsx"]
14155
14169
  }, null, 2) + "\n";
14156
14170
  async function productVersions() {
14157
- const product = JSON.parse(await readFile(join(productRoot, "package.json"), "utf8"));
14171
+ const product = JSON.parse(await readFile(join2(productRoot2, "package.json"), "utf8"));
14158
14172
  return { product, kit: product.dependencies["@volter/project"] };
14159
14173
  }
14160
14174
  var declaration = {
14161
- product: "@volter/cyclotron",
14175
+ product: package_default.name,
14162
14176
  templates: [
14163
14177
  { id: "models", name: "Models", description: "Blender modeling with a starter cube." },
14164
- { id: "playable", name: "Playable", description: "Canyon Comet: a three-lap kart race with a model play script and React HUD." }
14178
+ { id: "game", name: "Game", description: "A volter-ai/std game (three.js, React Three Fiber, Rapier and Colyseus), made by std new from the std this checkout pins." },
14179
+ { id: "film", name: "Film", description: "A short film as files: story, script, shots, takes, boards, music, graphics and the cut, each checked by npm run check." }
14165
14180
  ],
14181
+ examples: Object.entries(EXAMPLES).map(([id, example]) => ({ id, name: example.name, description: example.description })),
14166
14182
  async create(request) {
14183
+ if (request.example !== void 0 && request.template !== void 0) throw new Error("create makes a project from a template or an example, not both.");
14184
+ if (request.example !== void 0 && !isExample(request.example))
14185
+ throw new Error(`Unknown Cyclotron example ${JSON.stringify(request.example)}: ${Object.keys(EXAMPLES).join(", ")}.`);
14186
+ if (request.template === "game" || request.example !== void 0) {
14187
+ const result2 = await writeGame(request);
14188
+ await pnpmInstall(result2.targetDir);
14189
+ return result2;
14190
+ }
14167
14191
  const result = await writeProject(request);
14168
14192
  const checkout = checkoutNodeModules();
14169
14193
  if (checkout) {
14170
- symlinkSync(checkout, join(result.targetDir, "node_modules"), "junction");
14194
+ symlinkSync(checkout, join2(result.targetDir, "node_modules"), "junction");
14171
14195
  return result;
14172
14196
  }
14173
14197
  console.log("Installing project dependencies\u2026");
14174
14198
  await new Promise((done, fail) => {
14175
14199
  const windows = process.platform === "win32";
14176
- const child = windows ? spawn("npm install", { windowsHide: true, cwd: result.targetDir, stdio: "inherit", shell: true }) : spawn("npm", ["install"], { windowsHide: true, cwd: result.targetDir, stdio: "inherit" });
14200
+ const child = windows ? spawn2("npm install --no-audit --no-fund", { windowsHide: true, cwd: result.targetDir, stdio: "inherit", shell: true }) : spawn2("npm", ["install", "--no-audit", "--no-fund"], { windowsHide: true, cwd: result.targetDir, stdio: "inherit" });
14177
14201
  child.once("error", fail);
14178
14202
  child.once("exit", (code) => code === 0 ? done() : fail(new Error(`Dependency installation failed (${code}); project source remains at ${result.targetDir}.`)));
14179
14203
  });
@@ -14181,122 +14205,170 @@ var declaration = {
14181
14205
  }
14182
14206
  };
14183
14207
  function checkoutNodeModules() {
14184
- for (let dir = productRoot; dirname(dir) !== dir; dir = dirname(dir)) {
14185
- if (existsSync(join(dir, "packages", "cyclotron", "package.json"))) {
14186
- const nodeModules = join(dir, "node_modules");
14187
- return existsSync(join(nodeModules, "@volter", "project", "package.json")) ? nodeModules : null;
14188
- }
14189
- }
14190
- return null;
14208
+ const root = checkoutRoot();
14209
+ if (root === null) return null;
14210
+ const nodeModules = join2(root, "node_modules");
14211
+ return existsSync2(join2(nodeModules, "@volter", "project", "package.json")) ? nodeModules : null;
14212
+ }
14213
+ function cyclotronPackages(product, kit) {
14214
+ return {
14215
+ [package_default.name]: product.version,
14216
+ "@volter/project": kit,
14217
+ "@volter/editor-blender": product.dependencies["@volter/editor-blender"],
14218
+ ...PLAY_PACKAGES(kit)
14219
+ };
14220
+ }
14221
+ async function writeCyclotronFiles(target) {
14222
+ const write = (path, content) => writeFile(join2(target, path), content, { flag: "wx" });
14223
+ const mcpEntry = [
14224
+ "const { dirname, resolve } = require('node:path');",
14225
+ "const { pathToFileURL } = require('node:url');",
14226
+ `const manifest = require.resolve('${package_default.name}/package.json');`,
14227
+ `const cli = resolve(dirname(manifest), require(manifest).bin['${COMMAND}']);`,
14228
+ "process.argv.splice(1, 0, cli);",
14229
+ "import(pathToFileURL(cli).href);"
14230
+ ].join(" ");
14231
+ const blenderMcp = { command: "node", args: ["--input-type=commonjs", "--eval", mcpEntry, "--", "blender-mcp"] };
14232
+ await write(".mcp.json", JSON.stringify({ mcpServers: { blender: blenderMcp } }, null, 2) + "\n");
14233
+ await mkdir(join2(target, ".codex"));
14234
+ await write(".codex/config.toml", [
14235
+ "[mcp_servers.blender]",
14236
+ `command = ${JSON.stringify(blenderMcp.command)}`,
14237
+ `args = [${blenderMcp.args.map((arg) => JSON.stringify(arg)).join(", ")}]`,
14238
+ ""
14239
+ ].join("\n"));
14240
+ for (const file2 of ["AGENTS.md", "CLAUDE.md"])
14241
+ await copyFile(join2(productRoot2, "starter", file2), join2(target, file2), constants.COPYFILE_EXCL);
14242
+ }
14243
+ var GAME_LEVEL = "game";
14244
+ var CYCLOTRON_IGNORES = ["node_modules", ".volter/", "logs/"];
14245
+ async function writeGame({ name, targetDir, example: exampleId }) {
14246
+ if (!name.trim()) throw new Error("A project name is required.");
14247
+ const target = resolve2(targetDir);
14248
+ const example = exampleId !== void 0 && isExample(exampleId) ? EXAMPLES[exampleId] : void 0;
14249
+ const std = pinnedStd(example === void 0 ? "create --template game" : `create --example ${exampleId}`);
14250
+ if (existsSync2(target)) throw Object.assign(new Error(`${target} already exists: create makes a new folder.`), { code: "EEXIST" });
14251
+ await mkdir(dirname2(target), { recursive: true });
14252
+ await stdNew(std, target, name);
14253
+ const from = example === void 0 ? join2(productRoot2, "starter", GAME_LEVEL) : join2(productRoot2, "examples", exampleId);
14254
+ for (const entry of await readdir(from, { recursive: true, withFileTypes: true })) {
14255
+ if (!entry.isFile()) continue;
14256
+ const source = join2(entry.parentPath, entry.name);
14257
+ await mkdir(dirname2(join2(target, relative2(from, source))), { recursive: true });
14258
+ await copyFile(source, join2(target, relative2(from, source)));
14259
+ }
14260
+ for (const path of example?.removes ?? []) await rm(join2(target, path));
14261
+ const { product, kit } = await productVersions();
14262
+ const manifest = ProjectManifestSchema.parse({
14263
+ manifestVersion: 2,
14264
+ name,
14265
+ version: "0.1.0",
14266
+ engine: { version: product.dependencies["@volter/editor-core"] },
14267
+ roots: example?.roots ?? [],
14268
+ ...example === void 0 ? {} : { resolution: example.resolution }
14269
+ });
14270
+ await writeFile(join2(target, MANIFEST_FILENAME), JSON.stringify(manifest, null, 2) + "\n", { flag: "wx" });
14271
+ await writeCyclotronFiles(target);
14272
+ const ignored = (await readFile(join2(target, ".gitignore"), "utf8")).split(/\r?\n/);
14273
+ const missing = CYCLOTRON_IGNORES.filter((line) => !ignored.includes(line));
14274
+ if (missing.length > 0) await appendFile(join2(target, ".gitignore"), `# Cyclotron's own files.
14275
+ ${missing.join("\n")}
14276
+ `);
14277
+ const pkg = JSON.parse(await readFile(join2(target, "package.json"), "utf8"));
14278
+ pkg.scripts = { ...pkg.scripts, edit: `${COMMAND} edit .`, [COMMAND]: COMMAND };
14279
+ if (example !== void 0) {
14280
+ for (const [script, line] of Object.entries(pkg.scripts)) pkg.scripts[script] = line.replace(/--goal \S+/, `--goal ${example.goal}`);
14281
+ pkg.dependencies = { ...pkg.dependencies, ...example.dependencies };
14282
+ }
14283
+ pkg.devDependencies = { ...pkg.devDependencies, ...checkoutLinks(Object.keys(cyclotronPackages(product, kit))) };
14284
+ await writeFile(join2(target, "package.json"), JSON.stringify(pkg, null, 2) + "\n");
14285
+ return { targetDir: target, manifest };
14191
14286
  }
14192
14287
  async function writeProject({ name, targetDir, template }) {
14193
- if (template !== void 0 && !["models", "playable"].includes(template)) throw new Error("Unknown Cyclotron template.");
14194
- const playable = template === "playable";
14288
+ if (template !== void 0 && !["models", "film"].includes(template)) throw new Error(`Unknown Cyclotron template ${JSON.stringify(template)}: models, game or film.`);
14289
+ const film = template === "film";
14195
14290
  if (!name.trim()) throw new Error("A project name is required.");
14196
- const target = resolve(targetDir);
14291
+ const target = resolve2(targetDir);
14197
14292
  const { product, kit } = await productVersions();
14198
- const manifest = GameManifestSchema.parse({
14293
+ const manifest = ProjectManifestSchema.parse({
14199
14294
  manifestVersion: 2,
14200
14295
  name,
14201
14296
  version: "0.1.0",
14202
14297
  engine: { version: product.dependencies["@volter/editor-core"] },
14203
- roots: playable ? [PLAYABLE.uiRoot] : [],
14204
- ...playable ? { resolution: PLAYABLE.resolution } : {}
14298
+ roots: film ? [FILM.graphicsRoot] : [],
14299
+ ...film ? { resolution: FILM.resolution } : {}
14205
14300
  });
14206
- await mkdir(dirname(target), { recursive: true });
14301
+ await mkdir(dirname2(target), { recursive: true });
14207
14302
  await mkdir(target);
14208
- await mkdir(join(target, "src/models"), { recursive: true });
14209
- const write = (path, content) => writeFile(join(target, path), content, { flag: "wx" });
14303
+ await mkdir(join2(target, "src/models"), { recursive: true });
14304
+ const write = (path, content) => writeFile(join2(target, path), content, { flag: "wx" });
14305
+ for (const root of ["prefabs", "scenes", "sounds", "images", "fonts", "effects", "data", "locales/context"]) {
14306
+ await mkdir(join2(target, root), { recursive: true });
14307
+ await write(`${root}/.gitkeep`, "");
14308
+ }
14309
+ await write("locales/en.json", "{}\n");
14310
+ await write("locales/context/keys.json", "{}\n");
14311
+ await copyFile(join2(productRoot2, "starter", "sounds", "mix.json"), join2(target, "sounds/mix.json"));
14210
14312
  await write(MANIFEST_FILENAME, JSON.stringify(manifest, null, 2) + "\n");
14211
14313
  await write("package.json", JSON.stringify({
14212
14314
  name: name.toLowerCase().replace(/[^a-z0-9-]+/g, "-").replace(/^-|-$/g, "") || "models",
14213
14315
  private: true,
14214
14316
  version: "0.1.0",
14215
14317
  type: "module",
14216
- scripts: { dev: "cyclotron edit .", cyclotron: "cyclotron" },
14318
+ scripts: { dev: `${COMMAND} edit .`, [COMMAND]: COMMAND, ...film ? { check: "volter-film check" } : {} },
14217
14319
  // The two install scripts the editor's tree runs, reviewed: npm 11 lists unreviewed ones in a new user's first
14218
14320
  // install ("not yet covered by allowScripts") and a later npm blocks them. The entries are npm's own
14219
14321
  // name-only form (`npm approve-scripts --no-allow-scripts-pin`).
14220
14322
  allowScripts: { esbuild: true, "msgpackr-extract": true },
14221
- ...playable ? { dependencies: PLAYABLE.dependencies } : {},
14323
+ ...film ? { dependencies: FILM.dependencies } : {},
14222
14324
  devDependencies: {
14223
- "@volter/cyclotron": product.version,
14224
- "@volter/project": kit,
14225
- "@volter/editor-blender": product.dependencies["@volter/editor-blender"],
14226
- ...playable ? PLAYABLE.devDependencies(kit) : {}
14325
+ ...cyclotronPackages(product, kit),
14326
+ ...film ? FILM.devDependencies(kit) : {}
14227
14327
  }
14228
14328
  }, null, 2) + "\n");
14229
14329
  await write("tsconfig.json", PROJECT_TSCONFIG);
14230
- await mkdir(join(target, "editor"));
14330
+ await mkdir(join2(target, "editor"));
14231
14331
  await write("editor/volter.adapter.ts", `import { defineAdapter } from '@volter/project/adapter/adapter-module';
14232
14332
  import { ModelLayout } from '@volter/editor-blender/layouts';
14233
- import { blenderStyle, blenderKeymap } from '@volter/editor-blender/looks';
14333
+ import { blenderKeymap } from '@volter/editor-blender/looks';
14234
14334
 
14235
14335
  export default defineAdapter({
14236
- ${playable ? PLAYABLE.regionIncludes : ""} editor: { Layout: ModelLayout, style: blenderStyle, keymap: blenderKeymap, inspector: 'properties' },
14237
- documents: { default: '${playable ? PLAYABLE.defaultDocument : "model:src/models/cube.blend"}', find: [{ finder: 'modelsFromBlendFiles', include: ['src/models/**/*.blend'] }] },
14336
+ ${film ? FILM.regionIncludes : ""} editor: { Layout: ModelLayout, keymap: blenderKeymap, inspector: 'properties' },
14337
+ documents: { default: '${film ? FILM.defaultDocument : "model:src/models/cube.blend"}', find: [{ finder: 'modelsFromBlendFiles', include: ['src/models/**/*.blend'] }${film ? FILM.finder : ""}] },
14238
14338
  });
14239
14339
  `);
14240
- const mcpEntry = [
14241
- "const { dirname, resolve } = require('node:path');",
14242
- "const { pathToFileURL } = require('node:url');",
14243
- "const manifest = require.resolve('@volter/cyclotron/package.json');",
14244
- "const cli = resolve(dirname(manifest), require(manifest).bin['cyclotron']);",
14245
- "process.argv.splice(1, 0, cli);",
14246
- "import(pathToFileURL(cli).href);"
14247
- ].join(" ");
14248
- const blenderMcp = { command: "node", args: ["--input-type=commonjs", "--eval", mcpEntry, "--", "blender-mcp"] };
14249
- await write(".mcp.json", JSON.stringify({ mcpServers: { blender: blenderMcp } }, null, 2) + "\n");
14250
- await mkdir(join(target, ".codex"));
14251
- await write(".codex/config.toml", [
14252
- "[mcp_servers.blender]",
14253
- `command = ${JSON.stringify(blenderMcp.command)}`,
14254
- `args = [${blenderMcp.args.map((arg) => JSON.stringify(arg)).join(", ")}]`,
14255
- ""
14256
- ].join("\n"));
14257
- await write(".gitignore", "node_modules\n.volter/\nlogs/\n");
14258
- for (const file2 of ["AGENTS.md", "CLAUDE.md"])
14259
- await copyFile(join(productRoot, "starter", file2), join(target, file2));
14260
- if (playable) {
14261
- const example = join(productRoot, "starter", PLAYABLE.example);
14262
- for (const entry of await readdir(example, { recursive: true, withFileTypes: true })) {
14263
- if (!entry.isFile()) continue;
14264
- const from = join(entry.parentPath, entry.name);
14265
- const to = join(target, relative(example, from));
14266
- await mkdir(dirname(to), { recursive: true });
14267
- await copyFile(from, to, constants.COPYFILE_EXCL);
14268
- }
14269
- } else {
14270
- for (const file2 of ["cube.blend", "cube.py"])
14271
- await copyFile(join(productRoot, "starter", file2), join(target, "src/models", file2));
14340
+ await writeCyclotronFiles(target);
14341
+ await write(".gitignore", `${CYCLOTRON_IGNORES.join("\n")}
14342
+ `);
14343
+ for (const file2 of ["cube.blend", "cube.py"])
14344
+ await copyFile(join2(productRoot2, "starter", file2), join2(target, "src/models", file2));
14345
+ if (film) {
14346
+ await copyStarterTree(FILM.example, target);
14347
+ await copyStarterTree(FILM.skills, join2(target, ".claude", "skills"));
14272
14348
  }
14273
14349
  return { targetDir: target, manifest };
14274
14350
  }
14275
- async function refreshStarterGuidance(projectDir, log = console.log) {
14276
- const target = join(projectDir, "AGENTS.md");
14351
+ async function refreshStarterGuidance(projectDir) {
14352
+ const target = join2(projectDir, "AGENTS.md");
14277
14353
  let current;
14278
14354
  try {
14279
14355
  current = await readFile(target, "utf8");
14280
14356
  } catch {
14281
14357
  return;
14282
14358
  }
14283
- const starter = await readFile(join(productRoot, "starter", "AGENTS.md"), "utf8");
14359
+ const starter = await readFile(join2(productRoot2, "starter", "AGENTS.md"), "utf8");
14284
14360
  const normal = (text) => text.replace(/\r\n/g, "\n");
14285
14361
  const firstLine = (text) => normal(text).split("\n", 1)[0] ?? "";
14286
14362
  if (normal(current) === normal(starter) || firstLine(current) !== firstLine(starter)) return;
14287
- await mkdir(join(projectDir, ".volter"), { recursive: true });
14288
- await writeFile(join(projectDir, ".volter", "AGENTS.previous.md"), current);
14363
+ await mkdir(join2(projectDir, ".volter"), { recursive: true });
14364
+ await writeFile(join2(projectDir, ".volter", "AGENTS.previous.md"), current);
14289
14365
  await writeFile(target, starter);
14290
- log("AGENTS.md updated to the installed editor guidance (the previous copy is .volter/AGENTS.previous.md).");
14366
+ console.log("AGENTS.md updated to the installed editor guidance (the previous copy is .volter/AGENTS.previous.md).");
14291
14367
  }
14292
14368
  export {
14293
- PLAYABLE,
14294
- PLAY_SCAFFOLD,
14295
- PROJECT_TSCONFIG,
14369
+ PLAY_PACKAGES,
14296
14370
  UPGRADING,
14297
14371
  declaration,
14298
- productRoot,
14299
- productVersions,
14300
14372
  refreshStarterGuidance,
14301
14373
  writeProject
14302
14374
  };