@aura3d/engine 1.0.2 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/README.md +331 -16
  2. package/dist/animation/AnimationClipEvents.d.ts +57 -0
  3. package/dist/animation/AnimationClipEvents.d.ts.map +1 -0
  4. package/dist/animation/AnimationClipEvents.js +171 -0
  5. package/dist/animation/AnimationClipEvents.js.map +1 -0
  6. package/dist/animation/AnimationClipRegistry.d.ts +76 -0
  7. package/dist/animation/AnimationClipRegistry.d.ts.map +1 -0
  8. package/dist/animation/AnimationClipRegistry.js +130 -0
  9. package/dist/animation/AnimationClipRegistry.js.map +1 -0
  10. package/dist/animation/AnimationController.d.ts +168 -0
  11. package/dist/animation/AnimationController.d.ts.map +1 -0
  12. package/dist/animation/AnimationController.js +619 -0
  13. package/dist/animation/AnimationController.js.map +1 -0
  14. package/dist/animation/HumanoidRetargeting.d.ts +76 -0
  15. package/dist/animation/HumanoidRetargeting.d.ts.map +1 -0
  16. package/dist/animation/HumanoidRetargeting.js +331 -0
  17. package/dist/animation/HumanoidRetargeting.js.map +1 -0
  18. package/dist/animation/browser-index.d.ts +18 -0
  19. package/dist/animation/browser-index.d.ts.map +1 -1
  20. package/dist/animation/browser-index.js +13 -0
  21. package/dist/animation/browser-index.js.map +1 -1
  22. package/dist/animation/index.d.ts +16 -1
  23. package/dist/animation/index.d.ts.map +1 -1
  24. package/dist/animation/index.js +11 -1
  25. package/dist/animation/index.js.map +1 -1
  26. package/dist/animation/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
  27. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js +3 -5
  28. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
  29. package/dist/assets/GLTFAnimationRuntime.js +1 -1
  30. package/dist/assets/GLTFLoader.js +1 -1
  31. package/dist/aura3d-cli/cli.js +194 -8
  32. package/dist/aura3d-cli/cli.js.map +1 -1
  33. package/dist/aura3d-cli/index.d.ts +280 -3
  34. package/dist/aura3d-cli/index.d.ts.map +1 -1
  35. package/dist/aura3d-cli/index.js +886 -4
  36. package/dist/aura3d-cli/index.js.map +1 -1
  37. package/dist/aura3d-cli/pull-bridge.d.ts +95 -0
  38. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -0
  39. package/dist/aura3d-cli/pull-bridge.js +247 -0
  40. package/dist/aura3d-cli/pull-bridge.js.map +1 -0
  41. package/dist/create-aura3d/index.d.ts +1 -1
  42. package/dist/create-aura3d/index.d.ts.map +1 -1
  43. package/dist/create-aura3d/index.js +9 -2
  44. package/dist/create-aura3d/index.js.map +1 -1
  45. package/dist/editor-runtime/ProjectSerializer.d.ts +74 -1
  46. package/dist/editor-runtime/ProjectSerializer.d.ts.map +1 -1
  47. package/dist/editor-runtime/ProjectSerializer.js +123 -6
  48. package/dist/editor-runtime/ProjectSerializer.js.map +1 -1
  49. package/dist/editor-runtime/TimelineModel.d.ts +18 -0
  50. package/dist/editor-runtime/TimelineModel.d.ts.map +1 -1
  51. package/dist/editor-runtime/TimelineModel.js +67 -3
  52. package/dist/editor-runtime/TimelineModel.js.map +1 -1
  53. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts +98 -0
  54. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts.map +1 -0
  55. package/dist/editor-runtime/TimelineRuntimeBridge.js +186 -0
  56. package/dist/editor-runtime/TimelineRuntimeBridge.js.map +1 -0
  57. package/dist/editor-runtime/index.d.ts +3 -1
  58. package/dist/editor-runtime/index.d.ts.map +1 -1
  59. package/dist/editor-runtime/index.js +1 -0
  60. package/dist/editor-runtime/index.js.map +1 -1
  61. package/dist/engine/agent-api/AnimationController.d.ts +607 -0
  62. package/dist/engine/agent-api/AnimationController.d.ts.map +1 -0
  63. package/dist/engine/agent-api/AnimationController.js +2192 -0
  64. package/dist/engine/agent-api/AnimationController.js.map +1 -0
  65. package/dist/engine/agent-api/AssetEvidence.d.ts +88 -0
  66. package/dist/engine/agent-api/AssetEvidence.d.ts.map +1 -0
  67. package/dist/engine/agent-api/AssetEvidence.js +157 -0
  68. package/dist/engine/agent-api/AssetEvidence.js.map +1 -0
  69. package/dist/engine/agent-api/AuraAppHandle.d.ts +55 -0
  70. package/dist/engine/agent-api/AuraAppHandle.d.ts.map +1 -0
  71. package/dist/engine/agent-api/AuraAppHandle.js +15 -0
  72. package/dist/engine/agent-api/AuraAppHandle.js.map +1 -0
  73. package/dist/engine/agent-api/AuraVoiceBridge.d.ts +96 -0
  74. package/dist/engine/agent-api/AuraVoiceBridge.d.ts.map +1 -0
  75. package/dist/engine/agent-api/AuraVoiceBridge.js +370 -0
  76. package/dist/engine/agent-api/AuraVoiceBridge.js.map +1 -0
  77. package/dist/engine/agent-api/CartoonDirector.d.ts +95 -0
  78. package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
  79. package/dist/engine/agent-api/CartoonDirector.js +342 -0
  80. package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
  81. package/dist/engine/agent-api/CartoonPerformance.d.ts +149 -0
  82. package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
  83. package/dist/engine/agent-api/CartoonPerformance.js +317 -0
  84. package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
  85. package/dist/engine/agent-api/CartoonRenderQueue.d.ts +132 -0
  86. package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
  87. package/dist/engine/agent-api/CartoonRenderQueue.js +385 -0
  88. package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
  89. package/dist/engine/agent-api/CharacterAssembly.d.ts +126 -0
  90. package/dist/engine/agent-api/CharacterAssembly.d.ts.map +1 -0
  91. package/dist/engine/agent-api/CharacterAssembly.js +280 -0
  92. package/dist/engine/agent-api/CharacterAssembly.js.map +1 -0
  93. package/dist/engine/agent-api/DialoguePerformance.d.ts +150 -0
  94. package/dist/engine/agent-api/DialoguePerformance.d.ts.map +1 -0
  95. package/dist/engine/agent-api/DialoguePerformance.js +335 -0
  96. package/dist/engine/agent-api/DialoguePerformance.js.map +1 -0
  97. package/dist/engine/agent-api/FrameLoop.d.ts +70 -0
  98. package/dist/engine/agent-api/FrameLoop.d.ts.map +1 -0
  99. package/dist/engine/agent-api/FrameLoop.js +165 -0
  100. package/dist/engine/agent-api/FrameLoop.js.map +1 -0
  101. package/dist/engine/agent-api/GameAssetValidation.d.ts +279 -0
  102. package/dist/engine/agent-api/GameAssetValidation.d.ts.map +1 -0
  103. package/dist/engine/agent-api/GameAssetValidation.js +719 -0
  104. package/dist/engine/agent-api/GameAssetValidation.js.map +1 -0
  105. package/dist/engine/agent-api/GameEvidence.d.ts +148 -0
  106. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -0
  107. package/dist/engine/agent-api/GameEvidence.js +269 -0
  108. package/dist/engine/agent-api/GameEvidence.js.map +1 -0
  109. package/dist/engine/agent-api/GameRuntime.d.ts +931 -0
  110. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -0
  111. package/dist/engine/agent-api/GameRuntime.js +2229 -0
  112. package/dist/engine/agent-api/GameRuntime.js.map +1 -0
  113. package/dist/engine/agent-api/GameSceneBridge.d.ts +54 -0
  114. package/dist/engine/agent-api/GameSceneBridge.d.ts.map +1 -0
  115. package/dist/engine/agent-api/GameSceneBridge.js +110 -0
  116. package/dist/engine/agent-api/GameSceneBridge.js.map +1 -0
  117. package/dist/engine/agent-api/PromptAnimationContract.d.ts +278 -0
  118. package/dist/engine/agent-api/PromptAnimationContract.d.ts.map +1 -0
  119. package/dist/engine/agent-api/PromptAnimationContract.js +238 -0
  120. package/dist/engine/agent-api/PromptAnimationContract.js.map +1 -0
  121. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts +183 -0
  122. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts.map +1 -0
  123. package/dist/engine/agent-api/PromptAnimationEvidence.js +454 -0
  124. package/dist/engine/agent-api/PromptAnimationEvidence.js.map +1 -0
  125. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +100 -0
  126. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -0
  127. package/dist/engine/agent-api/RuntimeNodeHandle.js +36 -0
  128. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -0
  129. package/dist/engine/agent-api/ShotTimeline.d.ts +179 -0
  130. package/dist/engine/agent-api/ShotTimeline.d.ts.map +1 -0
  131. package/dist/engine/agent-api/ShotTimeline.js +264 -0
  132. package/dist/engine/agent-api/ShotTimeline.js.map +1 -0
  133. package/dist/engine/agent-api/VisemeController.d.ts +89 -0
  134. package/dist/engine/agent-api/VisemeController.d.ts.map +1 -0
  135. package/dist/engine/agent-api/VisemeController.js +207 -0
  136. package/dist/engine/agent-api/VisemeController.js.map +1 -0
  137. package/dist/engine/agent-api/game-kits/fighting.d.ts +123 -0
  138. package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -0
  139. package/dist/engine/agent-api/game-kits/fighting.js +483 -0
  140. package/dist/engine/agent-api/game-kits/fighting.js.map +1 -0
  141. package/dist/engine/agent-api/game-kits/index.d.ts +15 -0
  142. package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -0
  143. package/dist/engine/agent-api/game-kits/index.js +6 -0
  144. package/dist/engine/agent-api/game-kits/index.js.map +1 -0
  145. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts +18 -81
  146. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts.map +1 -1
  147. package/dist/engine/agent-api/humanoid-walk-runtime.js +4 -279
  148. package/dist/engine/agent-api/humanoid-walk-runtime.js.map +1 -1
  149. package/dist/engine/agent-api/index.d.ts +490 -4
  150. package/dist/engine/agent-api/index.d.ts.map +1 -1
  151. package/dist/engine/agent-api/index.js +759 -1802
  152. package/dist/engine/agent-api/index.js.map +1 -1
  153. package/dist/engine/agent-api/particle-fountain-runtime.d.ts +5 -80
  154. package/dist/engine/agent-api/particle-fountain-runtime.d.ts.map +1 -1
  155. package/dist/engine/agent-api/particle-fountain-runtime.js +7 -291
  156. package/dist/engine/agent-api/particle-fountain-runtime.js.map +1 -1
  157. package/dist/engine/agent-api/product-viewer-runtime.d.ts +17 -107
  158. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  159. package/dist/engine/agent-api/product-viewer-runtime.js +4 -330
  160. package/dist/engine/agent-api/product-viewer-runtime.js.map +1 -1
  161. package/dist/index.d.ts +1 -0
  162. package/dist/index.js +1 -0
  163. package/dist/physics/CollisionVolumes.d.ts +57 -0
  164. package/dist/physics/CollisionVolumes.d.ts.map +1 -0
  165. package/dist/physics/CollisionVolumes.js +159 -0
  166. package/dist/physics/CollisionVolumes.js.map +1 -0
  167. package/dist/physics/HitboxWorld.d.ts +229 -0
  168. package/dist/physics/HitboxWorld.d.ts.map +1 -0
  169. package/dist/physics/HitboxWorld.js +640 -0
  170. package/dist/physics/HitboxWorld.js.map +1 -0
  171. package/dist/physics/KinematicBody.d.ts +157 -0
  172. package/dist/physics/KinematicBody.d.ts.map +1 -0
  173. package/dist/physics/KinematicBody.js +405 -0
  174. package/dist/physics/KinematicBody.js.map +1 -0
  175. package/dist/physics/KinematicWorld.d.ts +58 -0
  176. package/dist/physics/KinematicWorld.d.ts.map +1 -0
  177. package/dist/physics/KinematicWorld.js +246 -0
  178. package/dist/physics/KinematicWorld.js.map +1 -0
  179. package/dist/physics/index.d.ts +4 -0
  180. package/dist/physics/index.d.ts.map +1 -1
  181. package/dist/physics/index.js +4 -0
  182. package/dist/physics/index.js.map +1 -1
  183. package/dist/rendering/ForwardPass.js +2 -2
  184. package/dist/rendering/ShaderLibrary.js +2 -2
  185. package/dist/rendering/SkinnedLitMaterial.js +3 -3
  186. package/dist/rendering/SkinnedUnlitMaterial.js +3 -3
  187. package/dist/scene/Renderable.js +2 -2
  188. package/dist/scripting/VisualGraph.d.ts +2 -1
  189. package/dist/scripting/VisualGraph.d.ts.map +1 -1
  190. package/dist/scripting/VisualGraph.js +118 -1
  191. package/dist/scripting/VisualGraph.js.map +1 -1
  192. package/dist/scripting/VisualGraphContext.d.ts +123 -0
  193. package/dist/scripting/VisualGraphContext.d.ts.map +1 -0
  194. package/dist/scripting/VisualGraphContext.js +2 -0
  195. package/dist/scripting/VisualGraphContext.js.map +1 -0
  196. package/dist/scripting/VisualGraphExecutor.d.ts +6 -1
  197. package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
  198. package/dist/scripting/VisualGraphExecutor.js +364 -7
  199. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  200. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  201. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  202. package/dist/scripting/VisualNodeCatalog.js +61 -1
  203. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  204. package/dist/scripting/index.d.ts +1 -0
  205. package/dist/scripting/index.d.ts.map +1 -1
  206. package/dist/scripting/index.js.map +1 -1
  207. package/package.json +193 -121
  208. package/templates/product-viewer/src/main.ts +1 -0
  209. package/dist/three-compat/ThreeApiInventory.d.ts +0 -18
  210. package/dist/three-compat/ThreeApiInventory.d.ts.map +0 -1
  211. package/dist/three-compat/ThreeApiInventory.js +0 -99
  212. package/dist/three-compat/ThreeApiInventory.js.map +0 -1
  213. package/dist/three-compat/ThreeCompatibilityMatrix.d.ts +0 -30
  214. package/dist/three-compat/ThreeCompatibilityMatrix.d.ts.map +0 -1
  215. package/dist/three-compat/ThreeCompatibilityMatrix.js +0 -69
  216. package/dist/three-compat/ThreeCompatibilityMatrix.js.map +0 -1
  217. package/dist/three-compat/animation/index.d.ts +0 -3
  218. package/dist/three-compat/animation/index.d.ts.map +0 -1
  219. package/dist/three-compat/animation/index.js +0 -2
  220. package/dist/three-compat/animation/index.js.map +0 -1
  221. package/dist/three-compat/cameras/index.d.ts +0 -24
  222. package/dist/three-compat/cameras/index.d.ts.map +0 -1
  223. package/dist/three-compat/cameras/index.js +0 -44
  224. package/dist/three-compat/cameras/index.js.map +0 -1
  225. package/dist/three-compat/controls/index.d.ts +0 -3
  226. package/dist/three-compat/controls/index.d.ts.map +0 -1
  227. package/dist/three-compat/controls/index.js +0 -2
  228. package/dist/three-compat/controls/index.js.map +0 -1
  229. package/dist/three-compat/core/Object3DCompat.d.ts +0 -62
  230. package/dist/three-compat/core/Object3DCompat.d.ts.map +0 -1
  231. package/dist/three-compat/core/Object3DCompat.js +0 -112
  232. package/dist/three-compat/core/Object3DCompat.js.map +0 -1
  233. package/dist/three-compat/core/RaycasterCompat.d.ts +0 -18
  234. package/dist/three-compat/core/RaycasterCompat.d.ts.map +0 -1
  235. package/dist/three-compat/core/RaycasterCompat.js +0 -28
  236. package/dist/three-compat/core/RaycasterCompat.js.map +0 -1
  237. package/dist/three-compat/core/SceneCompat.d.ts +0 -8
  238. package/dist/three-compat/core/SceneCompat.d.ts.map +0 -1
  239. package/dist/three-compat/core/SceneCompat.js +0 -8
  240. package/dist/three-compat/core/SceneCompat.js.map +0 -1
  241. package/dist/three-compat/geometries/index.d.ts +0 -67
  242. package/dist/three-compat/geometries/index.d.ts.map +0 -1
  243. package/dist/three-compat/geometries/index.js +0 -114
  244. package/dist/three-compat/geometries/index.js.map +0 -1
  245. package/dist/three-compat/helpers/index.d.ts +0 -40
  246. package/dist/three-compat/helpers/index.d.ts.map +0 -1
  247. package/dist/three-compat/helpers/index.js +0 -129
  248. package/dist/three-compat/helpers/index.js.map +0 -1
  249. package/dist/three-compat/index.d.ts +0 -32
  250. package/dist/three-compat/index.d.ts.map +0 -1
  251. package/dist/three-compat/index.js +0 -22
  252. package/dist/three-compat/index.js.map +0 -1
  253. package/dist/three-compat/lights/index.d.ts +0 -35
  254. package/dist/three-compat/lights/index.d.ts.map +0 -1
  255. package/dist/three-compat/lights/index.js +0 -39
  256. package/dist/three-compat/lights/index.js.map +0 -1
  257. package/dist/three-compat/loaders/index.d.ts +0 -54
  258. package/dist/three-compat/loaders/index.d.ts.map +0 -1
  259. package/dist/three-compat/loaders/index.js +0 -79
  260. package/dist/three-compat/loaders/index.js.map +0 -1
  261. package/dist/three-compat/materials/index.d.ts +0 -70
  262. package/dist/three-compat/materials/index.d.ts.map +0 -1
  263. package/dist/three-compat/materials/index.js +0 -85
  264. package/dist/three-compat/materials/index.js.map +0 -1
  265. package/dist/three-compat/math/index.d.ts +0 -34
  266. package/dist/three-compat/math/index.d.ts.map +0 -1
  267. package/dist/three-compat/math/index.js +0 -90
  268. package/dist/three-compat/math/index.js.map +0 -1
  269. package/dist/three-compat/migration/CompatibilityWarnings.d.ts +0 -6
  270. package/dist/three-compat/migration/CompatibilityWarnings.d.ts.map +0 -1
  271. package/dist/three-compat/migration/CompatibilityWarnings.js +0 -8
  272. package/dist/three-compat/migration/CompatibilityWarnings.js.map +0 -1
  273. package/dist/three-compat/migration/ImportMap.d.ts +0 -2
  274. package/dist/three-compat/migration/ImportMap.d.ts.map +0 -1
  275. package/dist/three-compat/migration/ImportMap.js +0 -10
  276. package/dist/three-compat/migration/ImportMap.js.map +0 -1
  277. package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts +0 -8
  278. package/dist/three-compat/migration/ThreeToA3DAdapter.d.ts.map +0 -1
  279. package/dist/three-compat/migration/ThreeToA3DAdapter.js +0 -20
  280. package/dist/three-compat/migration/ThreeToA3DAdapter.js.map +0 -1
  281. package/dist/three-compat/postprocessing/index.d.ts +0 -2
  282. package/dist/three-compat/postprocessing/index.d.ts.map +0 -1
  283. package/dist/three-compat/postprocessing/index.js +0 -2
  284. package/dist/three-compat/postprocessing/index.js.map +0 -1
  285. package/dist/three-compat/render-targets/index.d.ts +0 -17
  286. package/dist/three-compat/render-targets/index.d.ts.map +0 -1
  287. package/dist/three-compat/render-targets/index.js +0 -29
  288. package/dist/three-compat/render-targets/index.js.map +0 -1
  289. package/dist/three-compat/shaders/index.d.ts +0 -3
  290. package/dist/three-compat/shaders/index.d.ts.map +0 -1
  291. package/dist/three-compat/shaders/index.js +0 -3
  292. package/dist/three-compat/shaders/index.js.map +0 -1
  293. package/dist/three-compat/textures/index.d.ts +0 -19
  294. package/dist/three-compat/textures/index.d.ts.map +0 -1
  295. package/dist/three-compat/textures/index.js +0 -24
  296. package/dist/three-compat/textures/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VisualGraph.js","sourceRoot":"","sources":["../../../../packages/scripting/src/VisualGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VisualGraph.js","sourceRoot":"","sources":["../../../../packages/scripting/src/VisualGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ export type VisualVector3 = readonly [number, number, number] | {
2
+ readonly x?: number;
3
+ readonly y?: number;
4
+ readonly z?: number;
5
+ };
6
+ export type VisualInputSet = readonly string[] | Readonly<Record<string, boolean>>;
7
+ export type VisualStateCollection<T extends {
8
+ readonly id: string;
9
+ }> = readonly T[] | Readonly<Record<string, T>>;
10
+ export interface VisualRuntimeNodeState {
11
+ readonly id: string;
12
+ readonly position?: VisualVector3;
13
+ readonly rotation?: VisualVector3;
14
+ readonly scale?: VisualVector3;
15
+ readonly visible?: boolean;
16
+ readonly material?: Readonly<Record<string, unknown>>;
17
+ readonly morphTargets?: Readonly<Record<string, number>>;
18
+ readonly tags?: readonly string[];
19
+ }
20
+ export interface VisualInputSnapshot {
21
+ readonly pressed?: VisualInputSet;
22
+ readonly held?: VisualInputSet;
23
+ readonly released?: VisualInputSet;
24
+ readonly buffered?: VisualInputSet;
25
+ readonly combos?: VisualInputSet;
26
+ readonly axes?: Readonly<Record<string, number>>;
27
+ }
28
+ export interface VisualAnimationEvent {
29
+ readonly id?: string;
30
+ readonly type: string;
31
+ readonly controllerId?: string;
32
+ readonly clip?: string;
33
+ readonly time?: number;
34
+ readonly bone?: string;
35
+ readonly payload?: unknown;
36
+ }
37
+ export interface VisualAnimationControllerState {
38
+ readonly id: string;
39
+ readonly nodeId?: string;
40
+ readonly currentClip?: string;
41
+ readonly clipTime?: number;
42
+ readonly clips?: readonly string[];
43
+ readonly layers?: Readonly<Record<string, number>>;
44
+ readonly morphTargets?: readonly string[];
45
+ readonly events?: readonly VisualAnimationEvent[];
46
+ }
47
+ export interface VisualPhysicsBodyState {
48
+ readonly id: string;
49
+ readonly position?: VisualVector3;
50
+ readonly velocity?: VisualVector3;
51
+ readonly grounded?: boolean;
52
+ }
53
+ export interface VisualCollisionEvent {
54
+ readonly id?: string;
55
+ readonly type: "enter" | "exit";
56
+ readonly bodyId?: string;
57
+ readonly otherBodyId?: string;
58
+ readonly point?: VisualVector3;
59
+ readonly normal?: VisualVector3;
60
+ readonly payload?: unknown;
61
+ }
62
+ export interface VisualRaycastHit {
63
+ readonly id: string;
64
+ readonly hit: boolean;
65
+ readonly bodyId?: string;
66
+ readonly point?: VisualVector3;
67
+ readonly normal?: VisualVector3;
68
+ readonly distance?: number;
69
+ }
70
+ export interface VisualOverlapResult {
71
+ readonly id: string;
72
+ readonly bodyIds: readonly string[];
73
+ }
74
+ export interface VisualCombatEvent {
75
+ readonly id?: string;
76
+ readonly type: "hit" | "blocked" | "damage" | "knockback";
77
+ readonly actorId?: string;
78
+ readonly targetId?: string;
79
+ readonly hitboxId?: string;
80
+ readonly amount?: number;
81
+ readonly payload?: unknown;
82
+ }
83
+ export interface VisualCameraState {
84
+ readonly id?: string;
85
+ readonly position?: VisualVector3;
86
+ readonly targetIds?: readonly string[];
87
+ }
88
+ export interface VisualGraphExecutionContext {
89
+ readonly frame?: number;
90
+ readonly time?: number;
91
+ readonly dt?: number;
92
+ readonly runtimeNodes?: VisualStateCollection<VisualRuntimeNodeState>;
93
+ readonly input?: VisualInputSnapshot;
94
+ readonly animationControllers?: VisualStateCollection<VisualAnimationControllerState>;
95
+ readonly animationEvents?: readonly VisualAnimationEvent[];
96
+ readonly physicsBodies?: VisualStateCollection<VisualPhysicsBodyState>;
97
+ readonly collisionEvents?: readonly VisualCollisionEvent[];
98
+ readonly raycastHits?: VisualStateCollection<VisualRaycastHit>;
99
+ readonly overlaps?: VisualStateCollection<VisualOverlapResult>;
100
+ readonly combatEvents?: readonly VisualCombatEvent[];
101
+ readonly camera?: VisualCameraState;
102
+ readonly evidence?: Readonly<Record<string, unknown>>;
103
+ }
104
+ export interface VisualGraphValidationOptions {
105
+ readonly context?: VisualGraphExecutionContext;
106
+ readonly strictReferences?: boolean;
107
+ readonly allowCycles?: boolean;
108
+ }
109
+ export interface VisualGraphSideEffect {
110
+ readonly kind: string;
111
+ readonly nodeId: string;
112
+ readonly target?: string;
113
+ readonly frame?: number;
114
+ readonly time?: number;
115
+ readonly payload: unknown;
116
+ }
117
+ export interface VisualGraphDiagnostic {
118
+ readonly level: "info" | "warning" | "error";
119
+ readonly code: string;
120
+ readonly message: string;
121
+ readonly nodeId?: string;
122
+ }
123
+ //# sourceMappingURL=VisualGraphContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisualGraphContext.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/VisualGraphContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=VisualGraphContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisualGraphContext.js","sourceRoot":"","sources":["../../../../packages/scripting/src/VisualGraphContext.ts"],"names":[],"mappings":""}
@@ -1,11 +1,16 @@
1
1
  import { type VisualGraph } from "./VisualGraph";
2
+ import { type VisualGraphDiagnostic, type VisualGraphExecutionContext, type VisualGraphSideEffect } from "./VisualGraphContext";
2
3
  export interface VisualExecutionResult {
3
4
  readonly values: ReadonlyMap<string, unknown>;
4
5
  readonly executionOrder: readonly string[];
5
6
  readonly nodeKinds: readonly string[];
7
+ readonly sideEffects: readonly VisualGraphSideEffect[];
8
+ readonly diagnostics: readonly VisualGraphDiagnostic[];
6
9
  readonly blockedClaims: readonly string[];
7
10
  }
8
11
  export declare class VisualGraphExecutor {
9
- execute(graph: VisualGraph): VisualExecutionResult;
12
+ private readonly defaultContext;
13
+ constructor(context?: VisualGraphExecutionContext);
14
+ execute(graph: VisualGraph, context?: VisualGraphExecutionContext): VisualExecutionResult;
10
15
  }
11
16
  //# sourceMappingURL=VisualGraphExecutor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VisualGraphExecutor.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/VisualGraphExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAMjF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,qBAAqB;CAiDnD"}
1
+ {"version":3,"file":"VisualGraphExecutor.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/VisualGraphExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAI3B,MAAM,sBAAsB,CAAC;AAM9B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;gBAEjD,OAAO,GAAE,2BAAgC;IAIrD,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,2BAAiD,GAAG,qBAAqB;CAsD/G"}
@@ -1,15 +1,22 @@
1
1
  import { validateGraph } from "./VisualGraph.js";
2
+ import {} from "./VisualGraphContext.js";
2
3
  import { getVisualNodeDefinition } from "./VisualNodeCatalog.js";
3
4
  import {} from "./VisualNode.js";
4
5
  const visualNodeOutputsBrand = Symbol("VisualNodeOutputs");
5
6
  export class VisualGraphExecutor {
6
- execute(graph) {
7
- const errors = validateGraph(graph);
7
+ defaultContext;
8
+ constructor(context = {}) {
9
+ this.defaultContext = context;
10
+ }
11
+ execute(graph, context = this.defaultContext) {
12
+ const errors = validateGraph(graph, { context });
8
13
  if (errors.length > 0) {
9
14
  throw new Error(errors.join("; "));
10
15
  }
11
16
  const values = new Map();
12
17
  const executionOrder = [];
18
+ const sideEffects = [];
19
+ const diagnostics = [];
13
20
  const nodes = new Map(graph.nodes.map((node) => [node.id, node]));
14
21
  const visiting = new Set();
15
22
  const visited = new Set();
@@ -27,7 +34,7 @@ export class VisualGraphExecutor {
27
34
  for (const edge of graph.edges.filter((candidate) => candidate.toNode === node.id)) {
28
35
  executeNode(edge.fromNode);
29
36
  }
30
- setNodeOutput(values, node, executeVisualNode(node, graph.edges.filter((edge) => edge.toNode === node.id), values));
37
+ setNodeOutput(values, node, executeVisualNode(node, graph.edges.filter((edge) => edge.toNode === node.id), values, context, sideEffects, diagnostics));
31
38
  visiting.delete(nodeId);
32
39
  visited.add(nodeId);
33
40
  executionOrder.push(nodeId);
@@ -39,22 +46,31 @@ export class VisualGraphExecutor {
39
46
  values,
40
47
  executionOrder,
41
48
  nodeKinds: [...new Set(graph.nodes.map((node) => node.kind))].sort(),
49
+ sideEffects,
50
+ diagnostics,
42
51
  blockedClaims: [
43
52
  "Unity Visual Scripting parity",
44
53
  "Unreal Blueprint parity",
45
54
  "async latent action graph parity",
46
- "editor-authored visual scripting parity"
55
+ "editor-authored visual scripting parity",
56
+ "live engine installGraph bridge parity"
47
57
  ]
48
58
  };
49
59
  }
50
60
  }
51
- function executeVisualNode(node, inputEdges, values) {
61
+ function executeVisualNode(node, inputEdges, values, context, sideEffects, diagnostics) {
52
62
  const definition = getVisualNodeDefinition(node.kind);
53
63
  if (!definition)
54
64
  throw new Error(`Unsupported visual node kind: ${node.kind}`);
55
65
  const input = (port) => getInputValue(node, port, inputEdges, values);
56
- const number = (port) => Number(input(port) ?? 0);
66
+ const number = (port) => finiteNumber(input(port));
57
67
  const boolean = (port) => Boolean(input(port));
68
+ const string = (port) => String(input(port) ?? "");
69
+ const optionalString = (port) => {
70
+ const value = input(port);
71
+ return typeof value === "string" && value.length > 0 ? value : undefined;
72
+ };
73
+ const object = (port) => stableClone(input(port) ?? {});
58
74
  switch (node.kind) {
59
75
  case "const":
60
76
  return node.data?.value;
@@ -62,7 +78,7 @@ function executeVisualNode(node, inputEdges, values) {
62
78
  return input("in");
63
79
  case "add":
64
80
  return inputEdges.length > 1
65
- ? inputEdges.reduce((total, edge) => total + Number(readEdgeValue(edge, values) ?? 0), 0)
81
+ ? inputEdges.reduce((total, edge) => total + finiteNumber(readEdgeValue(edge, values)), 0)
66
82
  : number("in");
67
83
  case "subtract":
68
84
  return number("a") - number("b");
@@ -184,7 +200,249 @@ function executeVisualNode(node, inputEdges, values) {
184
200
  isOpen
185
201
  });
186
202
  }
203
+ case "onStart": {
204
+ const active = (context.frame ?? 0) === 0 && (context.time ?? 0) === 0;
205
+ return outputs(active, { out: active, active });
206
+ }
207
+ case "onFrame": {
208
+ const frame = { dt: context.dt ?? 0, time: context.time ?? 0, frame: context.frame ?? 0 };
209
+ return outputs(frame, { out: true, dt: frame.dt, time: frame.time, frame: frame.frame, context: frame });
210
+ }
211
+ case "getNode": {
212
+ const nodeId = string("nodeId");
213
+ const runtimeNode = collectionGet(context.runtimeNodes, nodeId);
214
+ if (!runtimeNode) {
215
+ diagnostics.push({ level: "warning", code: "runtime.nodeMissing", message: `Runtime node not found: ${nodeId}`, nodeId: node.id });
216
+ }
217
+ return outputs(stableClone(runtimeNode ?? null), {
218
+ node: stableClone(runtimeNode ?? null),
219
+ nodeId,
220
+ exists: runtimeNode !== undefined,
221
+ position: normalizeVector(runtimeNode?.position)
222
+ });
223
+ }
224
+ case "setPosition":
225
+ return command("runtime.setPosition", node, context, sideEffects, string("nodeId"), {
226
+ nodeId: string("nodeId"),
227
+ position: normalizeVector(input("position"))
228
+ });
229
+ case "translate": {
230
+ const nodeId = string("nodeId");
231
+ const current = normalizeVector(collectionGet(context.runtimeNodes, nodeId)?.position);
232
+ const delta = normalizeVector(input("delta"));
233
+ return command("runtime.translate", node, context, sideEffects, nodeId, {
234
+ nodeId,
235
+ from: current,
236
+ delta,
237
+ position: addVectors(current, delta)
238
+ });
239
+ }
240
+ case "rotate":
241
+ return command("runtime.rotate", node, context, sideEffects, string("nodeId"), {
242
+ nodeId: string("nodeId"),
243
+ rotation: normalizeVector(input("rotation"))
244
+ });
245
+ case "setVisible":
246
+ return command("runtime.setVisible", node, context, sideEffects, string("nodeId"), {
247
+ nodeId: string("nodeId"),
248
+ visible: boolean("visible")
249
+ });
250
+ case "setMaterial":
251
+ return command("runtime.setMaterial", node, context, sideEffects, string("nodeId"), {
252
+ nodeId: string("nodeId"),
253
+ material: object("material")
254
+ });
255
+ case "pressed":
256
+ return inputFlag(context.input?.pressed, string("action"));
257
+ case "held":
258
+ return inputFlag(context.input?.held, string("action"));
259
+ case "released":
260
+ return inputFlag(context.input?.released, string("action"));
261
+ case "axis":
262
+ return finiteNumber(context.input?.axes?.[string("axis")]);
263
+ case "buffered":
264
+ return inputFlag(context.input?.buffered, string("action"));
265
+ case "combo":
266
+ return inputFlag(context.input?.combos, string("combo"));
267
+ case "playClip":
268
+ return command("animation.playClip", node, context, sideEffects, string("controllerId"), {
269
+ controllerId: string("controllerId"),
270
+ clip: string("clip"),
271
+ loop: boolean("loop")
272
+ });
273
+ case "restartClip":
274
+ return command("animation.restartClip", node, context, sideEffects, string("controllerId"), {
275
+ controllerId: string("controllerId"),
276
+ clip: string("clip"),
277
+ restart: true
278
+ });
279
+ case "crossFade":
280
+ return command("animation.crossFade", node, context, sideEffects, string("controllerId"), {
281
+ controllerId: string("controllerId"),
282
+ clip: string("clip"),
283
+ duration: number("duration"),
284
+ restart: boolean("restart"),
285
+ layer: optionalString("layer")
286
+ });
287
+ case "setLayerWeight":
288
+ return command("animation.setLayerWeight", node, context, sideEffects, string("controllerId"), {
289
+ controllerId: string("controllerId"),
290
+ layer: string("layer"),
291
+ weight: number("weight")
292
+ });
293
+ case "onAnimationEvent": {
294
+ const event = findAnimationEvent(context, string("controllerId"), string("eventType"), optionalString("clip"));
295
+ return outputs(stableClone(event ?? null), {
296
+ out: event !== undefined,
297
+ fired: event !== undefined,
298
+ event: stableClone(event ?? null)
299
+ });
300
+ }
301
+ case "setMorphTarget": {
302
+ const morphTarget = string("morphTarget");
303
+ const weight = number("weight");
304
+ return command("animation.setMorphTarget", node, context, sideEffects, string("controllerId"), {
305
+ controllerId: string("controllerId"),
306
+ morphTarget,
307
+ weight,
308
+ weights: { [morphTarget]: weight }
309
+ });
310
+ }
311
+ case "setMorphTargets":
312
+ return command("animation.setMorphTargets", node, context, sideEffects, string("controllerId"), {
313
+ controllerId: string("controllerId"),
314
+ weights: object("weights")
315
+ });
316
+ case "getClipTime": {
317
+ const controller = collectionGet(context.animationControllers, string("controllerId"));
318
+ return outputs(controller?.clipTime ?? 0, {
319
+ out: controller?.clipTime ?? 0,
320
+ clip: controller?.currentClip ?? ""
321
+ });
322
+ }
323
+ case "setVelocity":
324
+ return command("physics.setVelocity", node, context, sideEffects, string("bodyId"), {
325
+ bodyId: string("bodyId"),
326
+ velocity: normalizeVector(input("velocity"))
327
+ });
328
+ case "jump":
329
+ return command("physics.jump", node, context, sideEffects, string("bodyId"), {
330
+ bodyId: string("bodyId"),
331
+ impulse: number("impulse")
332
+ });
333
+ case "dash":
334
+ return command("physics.dash", node, context, sideEffects, string("bodyId"), {
335
+ bodyId: string("bodyId"),
336
+ direction: normalizeVector(input("direction")),
337
+ speed: number("speed")
338
+ });
339
+ case "onCollisionEnter": {
340
+ const event = findCollisionEvent(context.collisionEvents, "enter", string("bodyId"), optionalString("otherBodyId"));
341
+ return outputs(stableClone(event ?? null), { out: event !== undefined, collided: event !== undefined, event: stableClone(event ?? null) });
342
+ }
343
+ case "onCollisionExit": {
344
+ const event = findCollisionEvent(context.collisionEvents, "exit", string("bodyId"), optionalString("otherBodyId"));
345
+ return outputs(stableClone(event ?? null), { out: event !== undefined, collided: event !== undefined, event: stableClone(event ?? null) });
346
+ }
347
+ case "raycast": {
348
+ const hit = collectionGet(context.raycastHits, string("queryId"));
349
+ return outputs(stableClone(hit ?? null), { hit: hit?.hit === true, result: stableClone(hit ?? null) });
350
+ }
351
+ case "overlap": {
352
+ const overlap = collectionGet(context.overlaps, string("queryId"));
353
+ return outputs(stableClone(overlap ?? null), { hit: (overlap?.bodyIds.length ?? 0) > 0, result: stableClone(overlap ?? null) });
354
+ }
355
+ case "openHitbox":
356
+ return command("combat.openHitbox", node, context, sideEffects, string("hitboxId"), {
357
+ hitboxId: string("hitboxId"),
358
+ ownerId: string("ownerId"),
359
+ damage: number("damage"),
360
+ payload: object("payload")
361
+ });
362
+ case "closeHitbox":
363
+ return command("combat.closeHitbox", node, context, sideEffects, string("hitboxId"), {
364
+ hitboxId: string("hitboxId")
365
+ });
366
+ case "setHurtbox":
367
+ return command("combat.setHurtbox", node, context, sideEffects, string("hurtboxId"), {
368
+ hurtboxId: string("hurtboxId"),
369
+ ownerId: string("ownerId"),
370
+ payload: object("payload")
371
+ });
372
+ case "onHit": {
373
+ const event = findCombatHit(context.combatEvents, optionalString("actorId"), optionalString("hitboxId"));
374
+ return outputs(stableClone(event ?? null), { out: event !== undefined, hit: event !== undefined, event: stableClone(event ?? null) });
375
+ }
376
+ case "applyDamage":
377
+ return command("combat.applyDamage", node, context, sideEffects, string("targetId"), {
378
+ targetId: string("targetId"),
379
+ amount: number("amount"),
380
+ sourceId: optionalString("sourceId")
381
+ });
382
+ case "applyKnockback":
383
+ return command("combat.applyKnockback", node, context, sideEffects, string("targetId"), {
384
+ targetId: string("targetId"),
385
+ velocity: normalizeVector(input("velocity")),
386
+ sourceId: optionalString("sourceId")
387
+ });
388
+ case "follow":
389
+ return command("camera.follow", node, context, sideEffects, string("targetId"), {
390
+ targetId: string("targetId"),
391
+ stiffness: number("stiffness")
392
+ });
393
+ case "frameTargets":
394
+ return command("camera.frameTargets", node, context, sideEffects, undefined, {
395
+ targetIds: object("targetIds"),
396
+ padding: number("padding")
397
+ });
398
+ case "shake":
399
+ return command("camera.shake", node, context, sideEffects, context.camera?.id, {
400
+ intensity: number("intensity"),
401
+ duration: number("duration")
402
+ });
403
+ case "cutTo":
404
+ return command("camera.cutTo", node, context, sideEffects, context.camera?.id, {
405
+ position: normalizeVector(input("position")),
406
+ target: stableClone(input("target") ?? null)
407
+ });
408
+ case "captureSnapshot": {
409
+ const snapshot = cleanObject({
410
+ kind: "evidence.snapshot",
411
+ label: optionalString("label") ?? node.id,
412
+ frame: context.frame,
413
+ time: context.time,
414
+ dt: context.dt,
415
+ runtimeNodes: context.runtimeNodes,
416
+ animationControllers: context.animationControllers,
417
+ physicsBodies: context.physicsBodies,
418
+ camera: context.camera,
419
+ evidence: context.evidence
420
+ });
421
+ pushSideEffect(sideEffects, "evidence.captureSnapshot", node, context, optionalString("label"), snapshot);
422
+ return outputs(snapshot, { out: true, snapshot });
423
+ }
424
+ case "markProof":
425
+ return command("evidence.markProof", node, context, sideEffects, string("proofId"), {
426
+ proofId: string("proofId"),
427
+ details: object("details")
428
+ });
429
+ case "assertState": {
430
+ const operator = optionalString("operator") ?? "equals";
431
+ const actual = input("actual");
432
+ const expected = input("expected");
433
+ const passed = evaluateAssertion(actual, expected, operator);
434
+ const assertion = cleanObject({
435
+ kind: "evidence.assertState",
436
+ operator,
437
+ actual,
438
+ expected,
439
+ passed
440
+ });
441
+ pushSideEffect(sideEffects, "evidence.assertState", node, context, undefined, assertion);
442
+ return outputs(assertion, { out: passed, passed, assertion });
443
+ }
187
444
  }
445
+ throw new Error(`Unsupported visual node kind: ${node.kind}`);
188
446
  }
189
447
  function getInputValue(node, portId, inputEdges, values) {
190
448
  const edge = inputEdges.find((candidate) => candidate.toPort === portId);
@@ -211,4 +469,103 @@ function outputs(value, byPort) {
211
469
  function isOutputMap(value) {
212
470
  return typeof value === "object" && value !== null && value[visualNodeOutputsBrand] === true;
213
471
  }
472
+ function finiteNumber(value) {
473
+ const numeric = Number(value ?? 0);
474
+ return Number.isFinite(numeric) ? numeric : 0;
475
+ }
476
+ function inputFlag(source, key) {
477
+ if (!source || key.length === 0)
478
+ return false;
479
+ return Array.isArray(source) ? source.includes(key) : source[key] === true;
480
+ }
481
+ function normalizeVector(value, fallback = { x: 0, y: 0, z: 0 }) {
482
+ if (Array.isArray(value)) {
483
+ return { x: finiteNumber(value[0] ?? fallback.x), y: finiteNumber(value[1] ?? fallback.y), z: finiteNumber(value[2] ?? fallback.z) };
484
+ }
485
+ if (typeof value === "object" && value !== null) {
486
+ const vector = value;
487
+ return {
488
+ x: finiteNumber(vector.x ?? fallback.x),
489
+ y: finiteNumber(vector.y ?? fallback.y),
490
+ z: finiteNumber(vector.z ?? fallback.z)
491
+ };
492
+ }
493
+ return { ...fallback };
494
+ }
495
+ function addVectors(a, b) {
496
+ return { x: a.x + b.x, y: a.y + b.y, z: a.z + b.z };
497
+ }
498
+ function command(kind, node, context, sideEffects, target, payload) {
499
+ const commandPayload = cleanObject({ kind, target, ...payload });
500
+ pushSideEffect(sideEffects, kind, node, context, target, commandPayload);
501
+ return outputs(commandPayload, { out: true, command: commandPayload });
502
+ }
503
+ function pushSideEffect(sideEffects, kind, node, context, target, payload) {
504
+ sideEffects.push(cleanObject({
505
+ kind,
506
+ nodeId: node.id,
507
+ target,
508
+ frame: context.frame,
509
+ time: context.time,
510
+ payload
511
+ }));
512
+ }
513
+ function collectionGet(collection, id) {
514
+ if (!collection || id.length === 0)
515
+ return undefined;
516
+ return Array.isArray(collection) ? collection.find((entry) => entry.id === id) : collection[id];
517
+ }
518
+ function findAnimationEvent(context, controllerId, eventType, clip) {
519
+ const controller = collectionGet(context.animationControllers, controllerId);
520
+ const events = [...(context.animationEvents ?? []), ...(controller?.events ?? [])];
521
+ return events.find((event) => event.type === eventType &&
522
+ (event.controllerId === undefined || event.controllerId === controllerId) &&
523
+ (clip === undefined || event.clip === undefined || event.clip === clip));
524
+ }
525
+ function findCollisionEvent(events, type, bodyId, otherBodyId) {
526
+ return events?.find((event) => event.type === type &&
527
+ (event.bodyId === bodyId || event.otherBodyId === bodyId) &&
528
+ (otherBodyId === undefined || event.bodyId === otherBodyId || event.otherBodyId === otherBodyId));
529
+ }
530
+ function findCombatHit(events, actorId, hitboxId) {
531
+ return events?.find((event) => event.type === "hit" &&
532
+ (actorId === undefined || event.actorId === actorId || event.targetId === actorId) &&
533
+ (hitboxId === undefined || event.hitboxId === hitboxId));
534
+ }
535
+ function evaluateAssertion(actual, expected, operator) {
536
+ switch (operator) {
537
+ case "equals":
538
+ return stableStringify(actual) === stableStringify(expected);
539
+ case "notEquals":
540
+ return stableStringify(actual) !== stableStringify(expected);
541
+ case "truthy":
542
+ return Boolean(actual);
543
+ case "falsy":
544
+ return !actual;
545
+ default:
546
+ return false;
547
+ }
548
+ }
549
+ function stableClone(value) {
550
+ return cleanObject(value);
551
+ }
552
+ function cleanObject(value) {
553
+ if (Array.isArray(value)) {
554
+ return value.map((entry) => cleanObject(entry));
555
+ }
556
+ if (typeof value === "object" && value !== null) {
557
+ const output = {};
558
+ for (const key of Object.keys(value).sort()) {
559
+ const entry = value[key];
560
+ if (entry !== undefined) {
561
+ output[key] = cleanObject(entry);
562
+ }
563
+ }
564
+ return output;
565
+ }
566
+ return value;
567
+ }
568
+ function stableStringify(value) {
569
+ return JSON.stringify(cleanObject(value));
570
+ }
214
571
  //# sourceMappingURL=VisualGraphExecutor.js.map