@downdraft/engine 0.1.1 → 0.1.2-alpha.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.
- package/app/README.md +11 -0
- package/app/src/renderer/bootstrap.ts +295 -19
- package/app/src/renderer/game-module.ts +60 -12
- package/app/src/renderer/hooks.ts +9 -1
- package/app/src/renderer/hot-reload.ts +9 -9
- package/app/src/renderer/mcp-harness.ts +2 -2
- package/app/src/renderer/standard-automation-tools.ts +104 -3
- package/app/src/shared/feature-log.ts +2 -1
- package/app/src/shared/mcp-discovery.ts +8 -3
- package/app/src/shared/mcp-proxy.ts +2 -2
- package/asset-bake/README.md +22 -0
- package/core/README.md +25 -0
- package/core/src/animation/skeleton-animator.ts +23 -5
- package/core/src/assets/manager.ts +4 -4
- package/core/src/ecs/events.ts +1 -1
- package/core/src/ecs/schedule.ts +1 -1
- package/core/src/ecs/world.ts +1 -1
- package/core/src/index.ts +3 -4
- package/core/src/library/host.ts +27 -13
- package/core/src/library/library.ts +13 -5
- package/core/src/module/cross-thread.ts +6 -0
- package/core/src/module/diagnostics.ts +10 -6
- package/core/src/module/host.ts +65 -18
- package/core/src/module/index.ts +1 -0
- package/core/src/module/module.ts +11 -5
- package/core/src/module/renderer-module.ts +15 -0
- package/core/src/physics/safety.ts +1 -1
- package/core/src/platform/bun-preload.ts +7 -2
- package/core/src/platform/glob-polyfill.ts +17 -8
- package/core/src/platform/pkg-root.ts +27 -0
- package/core/src/platform/runtime.ts +29 -0
- package/core/src/plugin/discovery.ts +1 -1
- package/core/src/plugin/extension-loaders.ts +6 -4
- package/core/src/plugin/host.ts +13 -13
- package/core/src/plugin/loader-asset.ts +5 -5
- package/core/src/plugin/loader-quickjs.ts +1 -1
- package/core/src/plugin/loader-wasm.ts +3 -3
- package/core/src/plugin/loader-worker.ts +1 -1
- package/core/src/plugin/manifest.ts +8 -3
- package/core/src/plugin/workshop.ts +3 -3
- package/core/src/profiling/index.ts +1 -1
- package/core/src/profiling/profiling-sab.ts +19 -0
- package/core/src/profiling/warnings.ts +1 -1
- package/core/src/profiling/worker-prelude.ts +1 -1
- package/core/src/render/bindless/frame-bindings.ts +1 -1
- package/core/src/render/bindless/material-manager.ts +2 -2
- package/core/src/render/bindless/texture-registry.ts +2 -2
- package/core/src/render/device.ts +5 -5
- package/core/src/render/frame-graph.ts +2 -2
- package/core/src/render/game-renderer.ts +42 -18
- package/core/src/render/hot-reload.ts +3 -3
- package/core/src/render/renderer-module-host.ts +32 -12
- package/core/src/render/shader-validator.ts +7 -7
- package/core/src/render/surface.ts +1 -1
- package/core/src/sab/errors.ts +1 -1
- package/core/src/sab/sab-polyfill.ts +1 -1
- package/core/src/save/migration-registry.ts +4 -4
- package/core/src/save/schema.ts +1 -1
- package/core/src/scene/prefab.ts +1 -1
- package/core/src/scene/scene-manager.ts +2 -2
- package/core/src/scene/scene.ts +4 -4
- package/core/src/scene/streaming.ts +2 -2
- package/core/src/scripting/hot-reload.ts +2 -2
- package/core/src/sim/hot-reload-pipeline.ts +30 -6
- package/core/src/sim/sim-state-helper.ts +1 -1
- package/core/src/sim/transient-state-registry.ts +1 -1
- package/core/src/sim/worker-loop.ts +2 -2
- package/core/src/telemetry/gpu-profiler.ts +3 -3
- package/core/src/util/index.ts +1 -1
- package/core/src/util/logger.ts +36 -5
- package/core/src/version.ts +13 -0
- package/core/src/worker/base-worker-host.ts +87 -25
- package/core/src/worker/buffer-sync.ts +1 -1
- package/core/src/worker/crash-recovery.ts +2 -2
- package/core/src/worker/instrumented-worker-host.ts +3 -3
- package/core/src/worker/rpc.ts +62 -11
- package/core/src/worker/sim-worker-base.ts +3 -8
- package/core/src/worker/task-pool.ts +2 -2
- package/dist/.dd-manifest.json +4119 -0
- package/dist/app/src/index.js +9 -0
- package/dist/app/src/renderer/bootstrap.js +446 -0
- package/dist/app/src/renderer/downdraft-base.css +93 -0
- package/dist/app/src/renderer/feature-log.js +180 -0
- package/dist/app/src/renderer/game-module.js +562 -0
- package/dist/app/src/renderer/hooks.js +82 -0
- package/dist/app/src/renderer/hot-reload.js +158 -0
- package/dist/app/src/renderer/import-cache.js +77 -0
- package/dist/app/src/renderer/index.js +149 -0
- package/dist/app/src/renderer/mcp-harness.js +112 -0
- package/dist/app/src/renderer/save-store-factory.js +180 -0
- package/dist/app/src/renderer/sim-bridge.js +138 -0
- package/dist/app/src/renderer/standard-automation-tools.js +720 -0
- package/dist/app/src/shared/feature-log.js +54 -0
- package/dist/app/src/shared/gpu-info.js +74 -0
- package/dist/app/src/shared/import-cache-store.js +123 -0
- package/dist/app/src/shared/index.js +4 -0
- package/dist/app/src/shared/mcp-discovery.js +55 -0
- package/dist/app/src/shared/mcp-proxy.js +71 -0
- package/dist/app/src/shared/types.js +13 -0
- package/dist/asset-bake/src/bake-audio.js +103 -0
- package/dist/asset-bake/src/bake-gltf.js +141 -0
- package/dist/asset-bake/src/bake.js +63 -0
- package/dist/asset-bake/src/cache.js +147 -0
- package/dist/asset-bake/src/config.js +93 -0
- package/dist/asset-bake/src/index.js +25 -0
- package/dist/core/src/animation/animation-event.js +24 -0
- package/dist/core/src/animation/bone-mask.js +103 -0
- package/dist/core/src/animation/clip.js +210 -0
- package/dist/core/src/animation/index.js +13 -0
- package/dist/core/src/animation/mixamo.js +78 -0
- package/dist/core/src/animation/morph-target.js +37 -0
- package/dist/core/src/animation/player.js +621 -0
- package/dist/core/src/animation/retarget.js +101 -0
- package/dist/core/src/animation/skeleton-animator.js +1361 -0
- package/dist/core/src/animation/skeleton.js +166 -0
- package/dist/core/src/animation/state-machine.js +252 -0
- package/dist/core/src/assets/blob-store.js +14 -0
- package/dist/core/src/assets/cache.js +168 -0
- package/dist/core/src/assets/cubemap-converter.js +129 -0
- package/dist/core/src/assets/environment-manager.js +84 -0
- package/dist/core/src/assets/import-cache.js +36 -0
- package/dist/core/src/assets/import-settings.js +34 -0
- package/dist/core/src/assets/importer.js +78 -0
- package/dist/core/src/assets/index.js +29 -0
- package/dist/core/src/assets/irradiance-generator.js +179 -0
- package/dist/core/src/assets/loader-audio.js +70 -0
- package/dist/core/src/assets/loader-cubemap.js +141 -0
- package/dist/core/src/assets/loader-dds.js +185 -0
- package/dist/core/src/assets/loader-hdr.js +430 -0
- package/dist/core/src/assets/loader-mesh.js +47 -0
- package/dist/core/src/assets/loader-shader.js +61 -0
- package/dist/core/src/assets/loader-texture.js +264 -0
- package/dist/core/src/assets/lod.js +150 -0
- package/dist/core/src/assets/manager.js +401 -0
- package/dist/core/src/assets/manifest.js +57 -0
- package/dist/core/src/assets/material-bridge.js +160 -0
- package/dist/core/src/assets/model-importer.js +32 -0
- package/dist/core/src/assets/model-normalizer.js +213 -0
- package/dist/core/src/assets/model-to-gpu.js +44 -0
- package/dist/core/src/assets/model-to-mesh.js +171 -0
- package/dist/core/src/assets/prefilter-generator.js +220 -0
- package/dist/core/src/audio/engine.js +153 -0
- package/dist/core/src/audio/interface.js +8 -0
- package/dist/core/src/audio/listener.js +19 -0
- package/dist/core/src/audio/mixer.js +124 -0
- package/dist/core/src/audio/registry.js +43 -0
- package/dist/core/src/audio/sab.js +74 -0
- package/dist/core/src/audio/source.js +60 -0
- package/dist/core/src/change-detection/atomics.js +1 -0
- package/dist/core/src/change-detection/tracker.js +26 -0
- package/dist/core/src/debug-draw/lines.js +27 -0
- package/dist/core/src/debug-draw/points.js +9 -0
- package/dist/core/src/debug-draw/queue.js +77 -0
- package/dist/core/src/debug-draw/text.js +12 -0
- package/dist/core/src/ecs/archetype.js +271 -0
- package/dist/core/src/ecs/component.js +109 -0
- package/dist/core/src/ecs/entity.js +11 -0
- package/dist/core/src/ecs/events.js +73 -0
- package/dist/core/src/ecs/hierarchy.js +104 -0
- package/dist/core/src/ecs/hmr-swap-registry.js +15 -0
- package/dist/core/src/ecs/index.js +14 -0
- package/dist/core/src/ecs/query.js +110 -0
- package/dist/core/src/ecs/resource.js +3 -0
- package/dist/core/src/ecs/schedule.js +157 -0
- package/dist/core/src/ecs/system-params.js +45 -0
- package/dist/core/src/ecs/system.js +18 -0
- package/dist/core/src/ecs/world.js +292 -0
- package/dist/core/src/index.js +191 -0
- package/dist/core/src/input/context.js +69 -0
- package/dist/core/src/input/dom-handler.js +288 -0
- package/dist/core/src/input/local-player-manager.js +145 -0
- package/dist/core/src/input/mapping.js +36 -0
- package/dist/core/src/input/multi-sab-bridge.js +224 -0
- package/dist/core/src/input/multi-state.js +48 -0
- package/dist/core/src/input/sab-bridge.js +66 -0
- package/dist/core/src/input/state.js +108 -0
- package/dist/core/src/input/ui-router.js +76 -0
- package/dist/core/src/library/host.js +291 -0
- package/dist/core/src/library/index.js +1 -0
- package/dist/core/src/library/library.js +20 -0
- package/dist/core/src/material/compiler.js +73 -0
- package/dist/core/src/material/graph-bridge.js +119 -0
- package/dist/core/src/material/index.js +6 -0
- package/dist/core/src/material/library.js +414 -0
- package/dist/core/src/material/material.js +120 -0
- package/dist/core/src/material/variants.js +37 -0
- package/dist/core/src/math/mat4.js +198 -0
- package/dist/core/src/math/perlin-noise-2d.js +66 -0
- package/dist/core/src/math/perlin-noise-3d.js +76 -0
- package/dist/core/src/math/quat.js +29 -0
- package/dist/core/src/math/rng.js +25 -0
- package/dist/core/src/math/trig.js +42 -0
- package/dist/core/src/math/value-noise.js +49 -0
- package/dist/core/src/mesh/builder.js +137 -0
- package/dist/core/src/mesh/csg.js +250 -0
- package/dist/core/src/mesh/greased-line.js +102 -0
- package/dist/core/src/mesh/mesh.js +6 -0
- package/dist/core/src/mesh/parametric.js +392 -0
- package/dist/core/src/mesh/skinning.js +30 -0
- package/dist/core/src/mesh/vertex-layout.js +65 -0
- package/dist/core/src/module/cross-thread.js +126 -0
- package/dist/core/src/module/diagnostics.js +99 -0
- package/dist/core/src/module/host.js +449 -0
- package/dist/core/src/module/index.js +6 -0
- package/dist/core/src/module/module.js +1 -0
- package/dist/core/src/module/registry.js +83 -0
- package/dist/core/src/module/renderer-module.js +13 -0
- package/dist/core/src/module/ts-loader.js +20 -0
- package/dist/core/src/particles/compute-pass.js +329 -0
- package/dist/core/src/particles/emitter.js +113 -0
- package/dist/core/src/particles/index.js +7 -0
- package/dist/core/src/particles/particle-data.js +33 -0
- package/dist/core/src/particles/render-pass.js +338 -0
- package/dist/core/src/particles/simulator.js +224 -0
- package/dist/core/src/particles/system.js +157 -0
- package/dist/core/src/physics/body.js +25 -0
- package/dist/core/src/physics/ccd-heuristic.js +46 -0
- package/dist/core/src/physics/character.js +184 -0
- package/dist/core/src/physics/collider.js +36 -0
- package/dist/core/src/physics/collision-system.js +62 -0
- package/dist/core/src/physics/events.js +74 -0
- package/dist/core/src/physics/index.js +24 -0
- package/dist/core/src/physics/interface.js +14 -0
- package/dist/core/src/physics/interpolation-buffer.js +182 -0
- package/dist/core/src/physics/lifecycle.js +66 -0
- package/dist/core/src/physics/load-shedder.js +155 -0
- package/dist/core/src/physics/physics-accumulator.js +94 -0
- package/dist/core/src/physics/physics-system.js +142 -0
- package/dist/core/src/physics/ragdoll-presets.js +248 -0
- package/dist/core/src/physics/ragdoll-system.js +193 -0
- package/dist/core/src/physics/ragdoll.js +117 -0
- package/dist/core/src/physics/raycast.js +97 -0
- package/dist/core/src/physics/realm-manager.js +431 -0
- package/dist/core/src/physics/realm-worker-pool.js +181 -0
- package/dist/core/src/physics/realm-worker.js +91 -0
- package/dist/core/src/physics/realm.js +137 -0
- package/dist/core/src/physics/registry.js +43 -0
- package/dist/core/src/physics/safety.js +211 -0
- package/dist/core/src/physics/snapshot-manager.js +118 -0
- package/dist/core/src/physics/worker-protocol.js +1 -0
- package/dist/core/src/platform/bun-preload.js +175 -0
- package/dist/core/src/platform/css-stub.js +4 -0
- package/dist/core/src/platform/glob-polyfill.js +137 -0
- package/dist/core/src/platform/hidpi.js +52 -0
- package/dist/core/src/platform/pkg-root.js +27 -0
- package/dist/core/src/platform/render-surface.js +15 -0
- package/dist/core/src/platform/rpc.js +82 -0
- package/dist/core/src/platform/runtime.js +93 -0
- package/dist/core/src/plugin/context.js +144 -0
- package/dist/core/src/plugin/diagnostics.js +20 -0
- package/dist/core/src/plugin/discovery.js +124 -0
- package/dist/core/src/plugin/extension-loaders.js +111 -0
- package/dist/core/src/plugin/host.js +542 -0
- package/dist/core/src/plugin/index.js +19 -0
- package/dist/core/src/plugin/loader-asset.js +105 -0
- package/dist/core/src/plugin/loader-quickjs.js +67 -0
- package/dist/core/src/plugin/loader-wasm.js +385 -0
- package/dist/core/src/plugin/loader-worker.js +228 -0
- package/dist/core/src/plugin/manifest.js +424 -0
- package/dist/core/src/plugin/material-registry.js +44 -0
- package/dist/core/src/plugin/mcp-tools.js +147 -0
- package/dist/core/src/plugin/permissions.js +152 -0
- package/dist/core/src/plugin/quickjs-bridge.js +219 -0
- package/dist/core/src/plugin/registry.js +92 -0
- package/dist/core/src/plugin/sandbox-shim.js +79 -0
- package/dist/core/src/plugin/sandbox-worker.js +194 -0
- package/dist/core/src/plugin/wasm-abi.js +62 -0
- package/dist/core/src/plugin/wasm-worker.js +234 -0
- package/dist/core/src/plugin/workshop.js +131 -0
- package/dist/core/src/profiling/event-loop.js +164 -0
- package/dist/core/src/profiling/index.js +23 -0
- package/dist/core/src/profiling/iops/idb-patch.js +211 -0
- package/dist/core/src/profiling/iops/opfs-patch.js +206 -0
- package/dist/core/src/profiling/profiling-sab.js +632 -0
- package/dist/core/src/profiling/task-latency.js +118 -0
- package/dist/core/src/profiling/thread-metrics.js +103 -0
- package/dist/core/src/profiling/trace-event-writer.js +165 -0
- package/dist/core/src/profiling/warnings.js +304 -0
- package/dist/core/src/profiling/worker-prelude.js +281 -0
- package/dist/core/src/render/bind-group.js +33 -0
- package/dist/core/src/render/bindless/bindless-struct.js +39 -0
- package/dist/core/src/render/bindless/bindless.wgsl.js +163 -0
- package/dist/core/src/render/bindless/frame-bindings.js +142 -0
- package/dist/core/src/render/bindless/index.js +6 -0
- package/dist/core/src/render/bindless/material-manager.js +182 -0
- package/dist/core/src/render/bindless/texture-registry.js +498 -0
- package/dist/core/src/render/buffer.js +74 -0
- package/dist/core/src/render/camera-2d.js +151 -0
- package/dist/core/src/render/camera-controller.js +370 -0
- package/dist/core/src/render/camera.js +332 -0
- package/dist/core/src/render/canvas-resize-watcher.js +36 -0
- package/dist/core/src/render/compute-kernel.js +130 -0
- package/dist/core/src/render/constants.js +2 -0
- package/dist/core/src/render/device.js +91 -0
- package/dist/core/src/render/frame-graph.js +594 -0
- package/dist/core/src/render/frustum.js +152 -0
- package/dist/core/src/render/fullscreen-vs.js +24 -0
- package/dist/core/src/render/g-buffer.js +156 -0
- package/dist/core/src/render/game-renderer.js +1165 -0
- package/dist/core/src/render/gpu-driven/cull-pass.js +352 -0
- package/dist/core/src/render/gpu-driven/hzb.js +183 -0
- package/dist/core/src/render/gpu-driven/index.js +6 -0
- package/dist/core/src/render/gpu-driven/indirect-draw-pass.js +300 -0
- package/dist/core/src/render/gpu-driven/instance-buffer.js +150 -0
- package/dist/core/src/render/gpu-driven/mesh-table.js +130 -0
- package/dist/core/src/render/gpu-driven/passes/hzb-build-pass.js +39 -0
- package/dist/core/src/render/gpu-utils.js +72 -0
- package/dist/core/src/render/hdr.js +69 -0
- package/dist/core/src/render/hot-reload.js +236 -0
- package/dist/core/src/render/ibl-bind-group.js +232 -0
- package/dist/core/src/render/ibl.js +148 -0
- package/dist/core/src/render/index.js +86 -0
- package/dist/core/src/render/input-manager.js +224 -0
- package/dist/core/src/render/lighting/area-light.js +142 -0
- package/dist/core/src/render/lighting/cluster-grid.js +255 -0
- package/dist/core/src/render/lighting/cluster-types.js +87 -0
- package/dist/core/src/render/lighting/ies-parser.js +111 -0
- package/dist/core/src/render/lighting.js +300 -0
- package/dist/core/src/render/material-types/depth.wgsl +44 -0
- package/dist/core/src/render/material-types/line.wgsl +50 -0
- package/dist/core/src/render/material-types/matcap.wgsl +51 -0
- package/dist/core/src/render/material-types/normal.wgsl +41 -0
- package/dist/core/src/render/material-types/physical.wgsl +152 -0
- package/dist/core/src/render/material-types/sprite.wgsl +46 -0
- package/dist/core/src/render/material-types/sss.wgsl +79 -0
- package/dist/core/src/render/material-types/toon.wgsl +79 -0
- package/dist/core/src/render/passes/README.md +121 -0
- package/dist/core/src/render/passes/atmosphere.js +107 -0
- package/dist/core/src/render/passes/cluster-lighting-pass.js +441 -0
- package/dist/core/src/render/passes/csm.js +338 -0
- package/dist/core/src/render/passes/cubemap-capture.js +93 -0
- package/dist/core/src/render/passes/debug-viz.js +248 -0
- package/dist/core/src/render/passes/debug.js +500 -0
- package/dist/core/src/render/passes/decal-mesh.js +86 -0
- package/dist/core/src/render/passes/decal-pass.js +344 -0
- package/dist/core/src/render/passes/deferred-lighting.js +406 -0
- package/dist/core/src/render/passes/depth-prepass.js +148 -0
- package/dist/core/src/render/passes/dome-360.js +68 -0
- package/dist/core/src/render/passes/fluid-render.js +116 -0
- package/dist/core/src/render/passes/gi-types.js +78 -0
- package/dist/core/src/render/passes/graph-compute.js +251 -0
- package/dist/core/src/render/passes/greased-line-pass.js +218 -0
- package/dist/core/src/render/passes/morph-target.js +35 -0
- package/dist/core/src/render/passes/opaque.js +966 -0
- package/dist/core/src/render/passes/point-light-shadow.js +221 -0
- package/dist/core/src/render/passes/procedural-texture.js +142 -0
- package/dist/core/src/render/passes/reflection-probe.js +100 -0
- package/dist/core/src/render/passes/rsm-pass.js +228 -0
- package/dist/core/src/render/passes/sdf-text.js +114 -0
- package/dist/core/src/render/passes/shadow-map.js +121 -0
- package/dist/core/src/render/passes/shadow.js +191 -0
- package/dist/core/src/render/passes/skinning-vs.js +102 -0
- package/dist/core/src/render/passes/skinning.js +282 -0
- package/dist/core/src/render/passes/sky-dome.js +380 -0
- package/dist/core/src/render/passes/skybox.js +146 -0
- package/dist/core/src/render/passes/spot-light-shadow.js +223 -0
- package/dist/core/src/render/passes/terrain.js +303 -0
- package/dist/core/src/render/passes/transparent.js +323 -0
- package/dist/core/src/render/passes/underwater-fog.js +173 -0
- package/dist/core/src/render/passes/video-texture.js +58 -0
- package/dist/core/src/render/passes/volumetric-pass.js +278 -0
- package/dist/core/src/render/passes/volumetric-types.js +96 -0
- package/dist/core/src/render/passes/water.js +697 -0
- package/dist/core/src/render/pbr.js +257 -0
- package/dist/core/src/render/pipeline.js +49 -0
- package/dist/core/src/render/render-pass.js +13 -0
- package/dist/core/src/render/renderer-input-bus.js +176 -0
- package/dist/core/src/render/renderer-module-host.js +539 -0
- package/dist/core/src/render/resource-tracker.js +59 -0
- package/dist/core/src/render/sab-canvas-overlay.js +83 -0
- package/dist/core/src/render/shader-validator.js +172 -0
- package/dist/core/src/render/shaders/debug/debug-line.wgsl +27 -0
- package/dist/core/src/render/shaders/debug/debug-point.wgsl +30 -0
- package/dist/core/src/render/shaders/debug/debug-text.wgsl +42 -0
- package/dist/core/src/render/shaders/debug-viz/aabb.wgsl +20 -0
- package/dist/core/src/render/shaders/debug-viz/depth.wgsl +29 -0
- package/dist/core/src/render/shaders/debug-viz/lod.wgsl +38 -0
- package/dist/core/src/render/shaders/debug-viz/normals.wgsl +30 -0
- package/dist/core/src/render/shaders/debug-viz/overdraw.wgsl +21 -0
- package/dist/core/src/render/shaders/debug-viz/tangents.wgsl +29 -0
- package/dist/core/src/render/shaders/debug-viz/wireframe.wgsl +33 -0
- package/dist/core/src/render/shaders/shadow-chunks.js +133 -0
- package/dist/core/src/render/skybox.js +123 -0
- package/dist/core/src/render/splitscreen.js +60 -0
- package/dist/core/src/render/surface.js +63 -0
- package/dist/core/src/render/tonemap.js +171 -0
- package/dist/core/src/render/tracked-render-pass.js +115 -0
- package/dist/core/src/render/viewport.js +81 -0
- package/dist/core/src/render/wgsl-hmr.js +66 -0
- package/dist/core/src/sab/core-input-channel.js +22 -0
- package/dist/core/src/sab/define.js +127 -0
- package/dist/core/src/sab/errors.js +60 -0
- package/dist/core/src/sab/game-input.js +299 -0
- package/dist/core/src/sab/gamepad-devices.js +205 -0
- package/dist/core/src/sab/grid-buffer.js +91 -0
- package/dist/core/src/sab/input.js +38 -0
- package/dist/core/src/sab/layout.js +160 -0
- package/dist/core/src/sab/multi-input-channel.js +39 -0
- package/dist/core/src/sab/record-buffer.js +130 -0
- package/dist/core/src/sab/sab-polyfill.js +47 -0
- package/dist/core/src/sab/sim-channel.js +397 -0
- package/dist/core/src/sab/slot-buffer.js +140 -0
- package/dist/core/src/sab/types.js +1 -0
- package/dist/core/src/safety/bounds.js +71 -0
- package/dist/core/src/safety/json.js +70 -0
- package/dist/core/src/safety/path.js +151 -0
- package/dist/core/src/save/binary-format.js +95 -0
- package/dist/core/src/save/game-save-system.js +101 -0
- package/dist/core/src/save/grid-save-system.js +102 -0
- package/dist/core/src/save/migrate.js +35 -0
- package/dist/core/src/save/migration-registry.js +66 -0
- package/dist/core/src/save/persist-types.js +4 -0
- package/dist/core/src/save/schema.js +36 -0
- package/dist/core/src/save/serializer.js +139 -0
- package/dist/core/src/scene/builder.js +31 -0
- package/dist/core/src/scene/camera.js +118 -0
- package/dist/core/src/scene/checkpoint.js +84 -0
- package/dist/core/src/scene/game-loop.js +155 -0
- package/dist/core/src/scene/index.js +14 -0
- package/dist/core/src/scene/layer.js +7 -0
- package/dist/core/src/scene/prefab.js +97 -0
- package/dist/core/src/scene/scene-manager.js +141 -0
- package/dist/core/src/scene/scene.js +147 -0
- package/dist/core/src/scene/sky.js +179 -0
- package/dist/core/src/scene/spatial-grid.js +140 -0
- package/dist/core/src/scene/streaming.js +247 -0
- package/dist/core/src/scene/vegetation.js +107 -0
- package/dist/core/src/scene/world.js +66 -0
- package/dist/core/src/scripting/binding.js +85 -0
- package/dist/core/src/scripting/hot-reload.js +123 -0
- package/dist/core/src/scripting/script.js +68 -0
- package/dist/core/src/sim/hot-reload-pipeline.js +65 -0
- package/dist/core/src/sim/sim-state-helper.js +40 -0
- package/dist/core/src/sim/transient-state-registry.js +63 -0
- package/dist/core/src/sim/types.js +4 -0
- package/dist/core/src/sim/worker-loop.js +168 -0
- package/dist/core/src/stores/game-store.js +81 -0
- package/dist/core/src/stores/hot-reload-store.js +19 -0
- package/dist/core/src/telemetry/collector.js +303 -0
- package/dist/core/src/telemetry/gc-controller.js +365 -0
- package/dist/core/src/telemetry/gc-profiler.js +82 -0
- package/dist/core/src/telemetry/gc-tracker.js +63 -0
- package/dist/core/src/telemetry/gpu-profiler.js +554 -0
- package/dist/core/src/telemetry/gpu-resource-tracker.js +234 -0
- package/dist/core/src/telemetry/gpu-timer-pool.js +223 -0
- package/dist/core/src/telemetry/gpu-timer.js +117 -0
- package/dist/core/src/telemetry/gpu-timestamp-gate.js +22 -0
- package/dist/core/src/telemetry/reporter.js +56 -0
- package/dist/core/src/types/engine-types.js +21 -0
- package/dist/core/src/ui-font-scale.js +111 -0
- package/dist/core/src/util/broad-phase-grid.js +77 -0
- package/dist/core/src/util/feature-log.js +176 -0
- package/dist/core/src/util/index.js +4 -0
- package/dist/core/src/util/logger.js +596 -0
- package/dist/core/src/version.js +11 -0
- package/dist/core/src/webgpu-destroy-augmentation.d.ts +25 -0
- package/dist/core/src/worker/base-worker-host.js +212 -0
- package/dist/core/src/worker/buffer-sync.js +454 -0
- package/dist/core/src/worker/crash-recovery.js +153 -0
- package/dist/core/src/worker/entity-sim-worker-host.js +128 -0
- package/dist/core/src/worker/instrumented-worker-host.js +139 -0
- package/dist/core/src/worker/rpc.js +244 -0
- package/dist/core/src/worker/sim-worker-base.js +558 -0
- package/dist/core/src/worker/sim-worker-host.js +271 -0
- package/dist/core/src/worker/task-pool.js +205 -0
- package/dist/core/src/worker/task-worker.js +77 -0
- package/dist/libraries/asset-browser/src/index.js +10 -0
- package/dist/libraries/asset-browser/src/software-thumbnails.js +940 -0
- package/dist/libraries/audio-kira/src/backend.js +405 -0
- package/dist/libraries/audio-kira/src/index.js +4 -0
- package/dist/libraries/audio-kira/src/library.js +54 -0
- package/dist/libraries/blitz-ui/src/index.js +13 -0
- package/dist/libraries/blitz-ui/src/native-module.js +162 -0
- package/dist/libraries/blitz-ui/src/native-osr-ffi.js +409 -0
- package/dist/libraries/blitz-ui/src/router.js +82 -0
- package/dist/libraries/blitz-ui/src/shaders/ui-blit.wgsl.js +32 -0
- package/dist/libraries/blitz-ui/src/ui-blit-pass.js +108 -0
- package/dist/libraries/character/src/character-animator.js +323 -0
- package/dist/libraries/character/src/customization.js +464 -0
- package/dist/libraries/character/src/index.js +19 -0
- package/dist/libraries/character/src/inspectable.js +77 -0
- package/dist/libraries/character/src/loader.js +336 -0
- package/dist/libraries/character/src/locomotion.js +84 -0
- package/dist/libraries/character/src/preview.js +280 -0
- package/dist/libraries/devtools/src/backend.js +449 -0
- package/dist/libraries/devtools/src/cdp-bridge.js +293 -0
- package/dist/libraries/devtools/src/collectors.js +318 -0
- package/dist/libraries/devtools/src/index.js +31 -0
- package/dist/libraries/devtools/src/native-providers.js +749 -0
- package/dist/libraries/devtools/src/snapshot.js +35 -0
- package/dist/libraries/devtools/src/verify.js +139 -0
- package/dist/libraries/devtools/src/web/browser.js +94 -0
- package/dist/libraries/devtools/src/web/host.js +183 -0
- package/dist/libraries/devtools/src/web/mirror.js +26 -0
- package/dist/libraries/devtools/src/web/server.js +187 -0
- package/dist/libraries/entities/src/index.js +3 -0
- package/dist/libraries/entities/src/library.js +46 -0
- package/dist/libraries/entities/src/model-renderer.js +1307 -0
- package/dist/libraries/entities/src/shaders/model.wgsl +375 -0
- package/dist/libraries/gamepad/src/feed-input.js +54 -0
- package/dist/libraries/gamepad/src/filters.js +44 -0
- package/dist/libraries/gamepad/src/glyphs.js +83 -0
- package/dist/libraries/gamepad/src/hub.js +164 -0
- package/dist/libraries/gamepad/src/index.js +10 -0
- package/dist/libraries/gamepad/src/library.js +56 -0
- package/dist/libraries/gamepad/src/source-sab.js +62 -0
- package/dist/libraries/gamepad/src/sysfs-enrich.js +125 -0
- package/dist/libraries/gaussian-splats/src/gpu-sort.js +506 -0
- package/dist/libraries/gaussian-splats/src/index.js +8 -0
- package/dist/libraries/gaussian-splats/src/library.js +44 -0
- package/dist/libraries/gaussian-splats/src/parser.js +297 -0
- package/dist/libraries/gaussian-splats/src/renderer.js +368 -0
- package/dist/libraries/gaussian-splats/src/sh-eval.js +196 -0
- package/dist/libraries/gaussian-splats/src/sorter.js +76 -0
- package/dist/libraries/gaussian-splats/src/tile-raster.js +424 -0
- package/dist/libraries/gpu-kernels/src/index.js +8 -0
- package/dist/libraries/gpu-kernels/src/kernel.js +591 -0
- package/dist/libraries/gpu-kernels/src/transpile.js +896 -0
- package/dist/libraries/html-ui-kit/src/behaviors.js +231 -0
- package/dist/libraries/html-ui-kit/src/components.js +219 -0
- package/dist/libraries/html-ui-kit/src/index.js +17 -0
- package/dist/libraries/html-ui-kit/src/nav/nav-controller.js +215 -0
- package/dist/libraries/html-ui-kit/src/nav/nav-input.js +138 -0
- package/dist/libraries/html-ui-kit/src/nav/osk.js +135 -0
- package/dist/libraries/html-ui-kit/src/nav/router.js +152 -0
- package/dist/libraries/html-ui-kit/src/nav/vcursor.js +177 -0
- package/dist/libraries/html-ui-kit/src/ten-foot.js +138 -0
- package/dist/libraries/html-ui-kit/src/theme.js +235 -0
- package/dist/libraries/inspectable/src/index.js +6 -0
- package/dist/libraries/inspectable/src/inspectable.js +205 -0
- package/dist/libraries/lighting/src/index.js +4 -0
- package/dist/libraries/lighting/src/library.js +48 -0
- package/dist/libraries/lighting/src/light-system.js +395 -0
- package/dist/libraries/lighting/src/lighting-system.js +57 -0
- package/dist/libraries/lighting/src/shaders/light-debug.wgsl +30 -0
- package/dist/libraries/marching-cubes/src/chunked-field.js +130 -0
- package/dist/libraries/marching-cubes/src/deformation.js +41 -0
- package/dist/libraries/marching-cubes/src/generator.js +356 -0
- package/dist/libraries/marching-cubes/src/index.js +13 -0
- package/dist/libraries/marching-cubes/src/library.js +54 -0
- package/dist/libraries/marching-cubes/src/lod.js +95 -0
- package/dist/libraries/marching-cubes/src/marching-tetrahedra.js +261 -0
- package/dist/libraries/marching-cubes/src/sab.js +40 -0
- package/dist/libraries/marching-cubes/src/streaming-config.js +28 -0
- package/dist/libraries/marching-cubes/src/streaming-manager.js +490 -0
- package/dist/libraries/marching-cubes/src/tables.js +314 -0
- package/dist/libraries/marching-cubes/src/types.js +1 -0
- package/dist/libraries/models/src/bake-node-transforms.js +146 -0
- package/dist/libraries/models/src/bind-unskinned-meshes.js +145 -0
- package/dist/libraries/models/src/codecs/basisu-codec.js +134 -0
- package/dist/libraries/models/src/codecs/draco-codec.js +236 -0
- package/dist/libraries/models/src/codecs/draco3dgltf.d.ts +40 -0
- package/dist/libraries/models/src/codecs/index.js +5 -0
- package/dist/libraries/models/src/codecs/meshopt-codec.js +59 -0
- package/dist/libraries/models/src/codecs/registry.js +111 -0
- package/dist/libraries/models/src/dae.js +665 -0
- package/dist/libraries/models/src/default-part-selection.js +58 -0
- package/dist/libraries/models/src/dxf.js +235 -0
- package/dist/libraries/models/src/fbx/index.js +438 -0
- package/dist/libraries/models/src/fbx/interpreter/animation.js +369 -0
- package/dist/libraries/models/src/fbx/interpreter/blend-shapes.js +283 -0
- package/dist/libraries/models/src/fbx/interpreter/connections.js +158 -0
- package/dist/libraries/models/src/fbx/interpreter/diagnostics.js +48 -0
- package/dist/libraries/models/src/fbx/interpreter/geometry.js +430 -0
- package/dist/libraries/models/src/fbx/interpreter/global-settings.js +77 -0
- package/dist/libraries/models/src/fbx/interpreter/materials.js +231 -0
- package/dist/libraries/models/src/fbx/interpreter/nodes.js +168 -0
- package/dist/libraries/models/src/fbx/interpreter/skeleton.js +454 -0
- package/dist/libraries/models/src/fbx/parsers/binary-parser.js +217 -0
- package/dist/libraries/models/src/fbx/types.js +88 -0
- package/dist/libraries/models/src/gltf-extensions.js +121 -0
- package/dist/libraries/models/src/gltf.js +724 -0
- package/dist/libraries/models/src/index.js +46 -0
- package/dist/libraries/models/src/library.js +44 -0
- package/dist/libraries/models/src/loader.js +218 -0
- package/dist/libraries/models/src/material-adapter.js +82 -0
- package/dist/libraries/models/src/mini-xml.js +145 -0
- package/dist/libraries/models/src/normalize.js +168 -0
- package/dist/libraries/models/src/obj.js +247 -0
- package/dist/libraries/models/src/off.js +94 -0
- package/dist/libraries/models/src/ply.js +329 -0
- package/dist/libraries/models/src/pose-sampler.js +183 -0
- package/dist/libraries/models/src/sidecar/blender-extras.js +32 -0
- package/dist/libraries/models/src/sidecar/ddmeta.js +98 -0
- package/dist/libraries/models/src/sidecar/godot-import.js +76 -0
- package/dist/libraries/models/src/sidecar/resolver.js +112 -0
- package/dist/libraries/models/src/sidecar/types.js +8 -0
- package/dist/libraries/models/src/sidecar/unity-meta.js +46 -0
- package/dist/libraries/models/src/skeleton-synthesis.js +122 -0
- package/dist/libraries/models/src/stl.js +129 -0
- package/dist/libraries/models/src/threeds.js +312 -0
- package/dist/libraries/models/src/threemf.js +203 -0
- package/dist/libraries/models/src/types.js +33 -0
- package/dist/libraries/models/src/vtk.js +242 -0
- package/dist/libraries/navmesh/src/crowd-system.js +207 -0
- package/dist/libraries/navmesh/src/debug-viz.js +52 -0
- package/dist/libraries/navmesh/src/index.js +7 -0
- package/dist/libraries/navmesh/src/library.js +47 -0
- package/dist/libraries/navmesh/src/navmesh-generator.js +364 -0
- package/dist/libraries/navmesh/src/navmesh.js +141 -0
- package/dist/libraries/navmesh/src/pathfinder.js +221 -0
- package/dist/libraries/navmesh/src/types.js +1 -0
- package/dist/libraries/networking/src/authority.js +107 -0
- package/dist/libraries/networking/src/connection.js +107 -0
- package/dist/libraries/networking/src/discovery.js +314 -0
- package/dist/libraries/networking/src/enhanced-replication.js +282 -0
- package/dist/libraries/networking/src/epic-adapter.js +101 -0
- package/dist/libraries/networking/src/index.js +16 -0
- package/dist/libraries/networking/src/library.js +45 -0
- package/dist/libraries/networking/src/lobby.js +84 -0
- package/dist/libraries/networking/src/platform-adapter.js +92 -0
- package/dist/libraries/networking/src/rcs-adapter.js +100 -0
- package/dist/libraries/networking/src/remote-input.js +162 -0
- package/dist/libraries/networking/src/replication.js +273 -0
- package/dist/libraries/networking/src/rpc.js +172 -0
- package/dist/libraries/networking/src/session.js +129 -0
- package/dist/libraries/networking/src/transport.js +156 -0
- package/dist/libraries/networking/src/webrtc.js +266 -0
- package/dist/libraries/pathfinding-2d/src/astar-grid.js +255 -0
- package/dist/libraries/pathfinding-2d/src/index.js +9 -0
- package/dist/libraries/persistence/src/autosave-manager.js +94 -0
- package/dist/libraries/persistence/src/binary-record-store.js +205 -0
- package/dist/libraries/persistence/src/browser.js +16 -0
- package/dist/libraries/persistence/src/file-save-store.js +507 -0
- package/dist/libraries/persistence/src/hash-utils.js +54 -0
- package/dist/libraries/persistence/src/index.js +17 -0
- package/dist/libraries/persistence/src/library.js +51 -0
- package/dist/libraries/persistence/src/mock-opfs.js +114 -0
- package/dist/libraries/persistence/src/node-fs-directory-handle.js +168 -0
- package/dist/libraries/persistence/src/opfs-save-store.js +584 -0
- package/dist/libraries/persistence/src/save-worker-proxy.js +96 -0
- package/dist/libraries/persistence/src/save-worker.js +76 -0
- package/dist/libraries/persistence/src/xxh3-ts.d.ts +10 -0
- package/dist/libraries/physics-native/src/backend.js +960 -0
- package/dist/libraries/physics-native/src/broadphase.js +79 -0
- package/dist/libraries/physics-native/src/index.js +6 -0
- package/dist/libraries/physics-native/src/library.js +57 -0
- package/dist/libraries/physics-native/src/narrowphase-shapes.js +348 -0
- package/dist/libraries/physics-native/src/narrowphase.js +60 -0
- package/dist/libraries/physics-native/src/solver.js +105 -0
- package/dist/libraries/physics-native/src/types.js +4 -0
- package/dist/libraries/physics-rapier/src/api.js +352 -0
- package/dist/libraries/physics-rapier/src/auto-backend.js +54 -0
- package/dist/libraries/physics-rapier/src/backend.js +1066 -0
- package/dist/libraries/physics-rapier/src/bulk-ops.js +46 -0
- package/dist/libraries/physics-rapier/src/ffi-backend.js +17 -0
- package/dist/libraries/physics-rapier/src/ffi-lib.js +605 -0
- package/dist/libraries/physics-rapier/src/index.js +9 -0
- package/dist/libraries/physics-rapier/src/library.js +71 -0
- package/dist/libraries/physics-rapier/src/rapier-backend.js +1102 -0
- package/dist/libraries/physics-rapier/src/realm-worker-script.js +233 -0
- package/dist/libraries/postfx/src/index.js +14 -0
- package/dist/libraries/postfx/src/library.js +207 -0
- package/dist/libraries/postfx/src/post-process-stack.js +1641 -0
- package/dist/libraries/postfx/src/shaders/post-process/afterimage.wgsl +14 -0
- package/dist/libraries/postfx/src/shaders/post-process/ascii.wgsl +24 -0
- package/dist/libraries/postfx/src/shaders/post-process/blit.wgsl +12 -0
- package/dist/libraries/postfx/src/shaders/post-process/bloom-blur.wgsl +21 -0
- package/dist/libraries/postfx/src/shaders/post-process/bloom-bright.wgsl +15 -0
- package/dist/libraries/postfx/src/shaders/post-process/bloom-composite.wgsl +14 -0
- package/dist/libraries/postfx/src/shaders/post-process/bloom-downsample.wgsl +60 -0
- package/dist/libraries/postfx/src/shaders/post-process/bloom-soft.wgsl +46 -0
- package/dist/libraries/postfx/src/shaders/post-process/bloom-upsample.wgsl +51 -0
- package/dist/libraries/postfx/src/shaders/post-process/channel-mixer.wgsl +36 -0
- package/dist/libraries/postfx/src/shaders/post-process/chromatic-aberration.wgsl +37 -0
- package/dist/libraries/postfx/src/shaders/post-process/dithering.wgsl +64 -0
- package/dist/libraries/postfx/src/shaders/post-process/dof.wgsl +131 -0
- package/dist/libraries/postfx/src/shaders/post-process/edges.wgsl +45 -0
- package/dist/libraries/postfx/src/shaders/post-process/fullscreen-vs.wgsl +15 -0
- package/dist/libraries/postfx/src/shaders/post-process/fxaa.wgsl +102 -0
- package/dist/libraries/postfx/src/shaders/post-process/gaussian-blur.wgsl +37 -0
- package/dist/libraries/postfx/src/shaders/post-process/glow-blur.wgsl +33 -0
- package/dist/libraries/postfx/src/shaders/post-process/glow-composite.wgsl +25 -0
- package/dist/libraries/postfx/src/shaders/post-process/grain.wgsl +37 -0
- package/dist/libraries/postfx/src/shaders/post-process/halftone.wgsl +80 -0
- package/dist/libraries/postfx/src/shaders/post-process/highlight-blur.wgsl +33 -0
- package/dist/libraries/postfx/src/shaders/post-process/highlight-composite.wgsl +32 -0
- package/dist/libraries/postfx/src/shaders/post-process/lens-distortion.wgsl +43 -0
- package/dist/libraries/postfx/src/shaders/post-process/lens-flare.wgsl +68 -0
- package/dist/libraries/postfx/src/shaders/post-process/lut.wgsl +30 -0
- package/dist/libraries/postfx/src/shaders/post-process/motion-blur.wgsl +55 -0
- package/dist/libraries/postfx/src/shaders/post-process/occluder-chunk.wgsl +28 -0
- package/dist/libraries/postfx/src/shaders/post-process/outline.wgsl +51 -0
- package/dist/libraries/postfx/src/shaders/post-process/pixelation.wgsl +47 -0
- package/dist/libraries/postfx/src/shaders/post-process/sharpen.wgsl +32 -0
- package/dist/libraries/postfx/src/shaders/post-process/sobel.wgsl +26 -0
- package/dist/libraries/postfx/src/shaders/post-process/split-tone.wgsl +36 -0
- package/dist/libraries/postfx/src/shaders/post-process/ssao-blur.wgsl +38 -0
- package/dist/libraries/postfx/src/shaders/post-process/ssao-composite.wgsl +25 -0
- package/dist/libraries/postfx/src/shaders/post-process/ssao.wgsl +147 -0
- package/dist/libraries/postfx/src/shaders/post-process/ssr.wgsl +155 -0
- package/dist/libraries/postfx/src/shaders/post-process/taa.wgsl +98 -0
- package/dist/libraries/postfx/src/shaders/post-process/tonemap.wgsl +40 -0
- package/dist/libraries/postfx/src/shaders/post-process/watercolor.wgsl +82 -0
- package/dist/libraries/postfx/src/shaders/post-process/white-balance.wgsl +41 -0
- package/dist/libraries/recast/src/backend.js +124 -0
- package/dist/libraries/recast/src/crowd-system.js +310 -0
- package/dist/libraries/recast/src/index.js +4 -0
- package/dist/libraries/recast/src/library.js +59 -0
- package/dist/libraries/recast/src/types.js +4 -0
- package/dist/libraries/sand/src/cell.js +32 -0
- package/dist/libraries/sand/src/fields.js +27 -0
- package/dist/libraries/sand/src/fluid-grid.js +267 -0
- package/dist/libraries/sand/src/grid-dims.js +47 -0
- package/dist/libraries/sand/src/grid-sim-buffer.js +184 -0
- package/dist/libraries/sand/src/index.js +20 -0
- package/dist/libraries/sand/src/library.js +67 -0
- package/dist/libraries/sand/src/materials.js +437 -0
- package/dist/libraries/sand/src/palette.js +87 -0
- package/dist/libraries/sand/src/particles.js +163 -0
- package/dist/libraries/sand/src/render/sand-grid-pass.js +377 -0
- package/dist/libraries/sand/src/rng.js +44 -0
- package/dist/libraries/sand/src/rules/builtin-rules.js +125 -0
- package/dist/libraries/sand/src/rules/rule-compiler.js +164 -0
- package/dist/libraries/sand/src/rules/rule-engine.js +210 -0
- package/dist/libraries/sand/src/rules/rule-types.js +27 -0
- package/dist/libraries/sand/src/sand-step-pool.js +458 -0
- package/dist/libraries/sand/src/sand-step-worker.js +101 -0
- package/dist/libraries/sand/src/sand-world.js +3382 -0
- package/dist/libraries/stickman/src/index.js +7 -0
- package/dist/libraries/stickman/src/library.js +44 -0
- package/dist/libraries/stickman/src/proportions.js +40 -0
- package/dist/libraries/stickman/src/shader.js +113 -0
- package/dist/libraries/stickman/src/skeleton.js +163 -0
- package/dist/libraries/stickman/src/stickman-pass.js +210 -0
- package/dist/libraries/stickman/src/thick-line.js +120 -0
- package/dist/libraries/surface-nets/src/chunked-field.js +5 -0
- package/dist/libraries/surface-nets/src/deformation.js +29 -0
- package/dist/libraries/surface-nets/src/index.js +15 -0
- package/dist/libraries/surface-nets/src/library.js +41 -0
- package/dist/libraries/surface-nets/src/lod.js +6 -0
- package/dist/libraries/surface-nets/src/sab.js +4 -0
- package/dist/libraries/surface-nets/src/streaming-config.js +4 -0
- package/dist/libraries/surface-nets/src/streaming-manager.js +9 -0
- package/dist/libraries/surface-nets/src/surface-nets.js +361 -0
- package/dist/libraries/surface-nets/src/types.js +1 -0
- package/dist/libraries/water/src/buoyancy.js +80 -0
- package/dist/libraries/water/src/index.js +12 -0
- package/dist/libraries/water/src/library.js +65 -0
- package/dist/libraries/water/src/shore-damping.js +70 -0
- package/dist/libraries/water/src/water-buffer.js +78 -0
- package/dist/libraries/water/src/water-chunks.js +5 -0
- package/dist/libraries/water/src/water-physics.js +315 -0
- package/dist/libraries/water/src/water-renderer.js +736 -0
- package/dist/libraries/water/src/water-sab.js +138 -0
- package/dist/libraries/water/src/wave-sources.js +45 -0
- package/dist/libraries/weather/src/index.js +5 -0
- package/dist/libraries/weather/src/library.js +48 -0
- package/dist/libraries/weather/src/types.js +29 -0
- package/dist/libraries/weather/src/weather-blend.js +108 -0
- package/dist/libraries/weather/src/weather-system.js +275 -0
- package/dist/libraries/weatherfx/src/cloud-provider.js +5 -0
- package/dist/libraries/weatherfx/src/cloud-system.js +294 -0
- package/dist/libraries/weatherfx/src/index.js +4 -0
- package/dist/libraries/weatherfx/src/library.js +41 -0
- package/dist/libraries/weatherfx/src/particle-system.js +350 -0
- package/dist/libraries/weatherfx/src/shaders/cloud.wgsl +111 -0
- package/dist/libraries/weatherfx/src/shaders/particle-compute.wgsl +187 -0
- package/dist/libraries/weatherfx/src/shaders/particle-render.wgsl +95 -0
- package/dist/mcp/src/client.js +669 -0
- package/dist/mcp/src/engine-context.js +99 -0
- package/dist/mcp/src/http-transport.js +423 -0
- package/dist/mcp/src/index.js +5 -0
- package/dist/mcp/src/prompts/add-entity.js +39 -0
- package/dist/mcp/src/prompts/create-scene.js +41 -0
- package/dist/mcp/src/prompts/debug-frame.js +36 -0
- package/dist/mcp/src/prompts/index.js +10 -0
- package/dist/mcp/src/resources/asset-list.js +28 -0
- package/dist/mcp/src/resources/checkpoint-list.js +29 -0
- package/dist/mcp/src/resources/entity-state.js +45 -0
- package/dist/mcp/src/resources/gpu-info.js +90 -0
- package/dist/mcp/src/resources/index.js +51 -0
- package/dist/mcp/src/resources/performance.js +33 -0
- package/dist/mcp/src/resources/scene-tree.js +37 -0
- package/dist/mcp/src/server.js +307 -0
- package/dist/mcp/src/tools/animation.js +102 -0
- package/dist/mcp/src/tools/asset.js +146 -0
- package/dist/mcp/src/tools/audio.js +80 -0
- package/dist/mcp/src/tools/build.js +128 -0
- package/dist/mcp/src/tools/camera.js +157 -0
- package/dist/mcp/src/tools/checkpoint.js +90 -0
- package/dist/mcp/src/tools/component.js +176 -0
- package/dist/mcp/src/tools/debug.js +273 -0
- package/dist/mcp/src/tools/entity.js +309 -0
- package/dist/mcp/src/tools/inspect.js +192 -0
- package/dist/mcp/src/tools/lighting.js +239 -0
- package/dist/mcp/src/tools/material.js +225 -0
- package/dist/mcp/src/tools/mesh.js +210 -0
- package/dist/mcp/src/tools/physics.js +251 -0
- package/dist/mcp/src/tools/scene.js +139 -0
- package/dist/mcp/src/tools/script.js +114 -0
- package/dist/mcp/src/types.js +9 -0
- package/dist/mcp/src/undo-redo.js +64 -0
- package/dist/modules/camera-controls/src/index.js +116 -0
- package/dist/modules/controller-ui/src/index.js +149 -0
- package/dist/modules/devtools/src/api.js +317 -0
- package/dist/modules/devtools/src/asset-utils.js +102 -0
- package/dist/modules/devtools/src/bind-debug-store.js +34 -0
- package/dist/modules/devtools/src/blitz/host.js +391 -0
- package/dist/modules/devtools/src/blitz/module.js +65 -0
- package/dist/modules/devtools/src/blitz/panels/console.js +217 -0
- package/dist/modules/devtools/src/blitz/panels/elements.js +79 -0
- package/dist/modules/devtools/src/blitz/panels/gpu.js +61 -0
- package/dist/modules/devtools/src/blitz/panels/performance.js +113 -0
- package/dist/modules/devtools/src/blitz/panels/snapshot.js +141 -0
- package/dist/modules/devtools/src/blitz/panels/types.js +55 -0
- package/dist/modules/devtools/src/blitz/theme.js +167 -0
- package/dist/modules/devtools/src/data-bridge.js +247 -0
- package/dist/modules/devtools/src/debug-overlay.js +181 -0
- package/dist/modules/devtools/src/debug-raycast.js +296 -0
- package/dist/modules/devtools/src/debug-store.js +28 -0
- package/dist/modules/devtools/src/debug-view-descriptors.js +24 -0
- package/dist/modules/devtools/src/doctor-panel.js +163 -0
- package/dist/modules/devtools/src/gizmo-module.js +95 -0
- package/dist/modules/devtools/src/graph-model.js +387 -0
- package/dist/modules/devtools/src/grid-renderer.js +145 -0
- package/dist/modules/devtools/src/height-ruler-renderer.js +189 -0
- package/dist/modules/devtools/src/index.js +46 -0
- package/dist/modules/devtools/src/init.js +204 -0
- package/dist/modules/devtools/src/label-overlay.js +129 -0
- package/dist/modules/devtools/src/material-stats-panel.js +171 -0
- package/dist/modules/devtools/src/profiling-bridge.js +288 -0
- package/dist/modules/devtools/src/profiling-hooks.js +63 -0
- package/dist/modules/devtools/src/renderer-adapter.js +61 -0
- package/dist/modules/devtools/src/scene-inspector.js +571 -0
- package/dist/modules/devtools/src/scene-store.js +212 -0
- package/dist/modules/devtools/src/scene-sync.js +92 -0
- package/dist/modules/devtools/src/shaders/transform-gizmo.wgsl +38 -0
- package/dist/modules/devtools/src/sim-stats-panel.js +250 -0
- package/dist/modules/devtools/src/sim-stats-provider.js +73 -0
- package/dist/modules/devtools/src/skeleton-renderer.js +326 -0
- package/dist/modules/devtools/src/transform-gizmo.js +677 -0
- package/dist/modules/devtools/src/types.js +5 -0
- package/dist/modules/devtools/src/worker-expose.js +59 -0
- package/dist/modules/devtools/src/worker-sync.js +115 -0
- package/dist/modules/editor/src/commands/component.js +151 -0
- package/dist/modules/editor/src/commands/entity.js +253 -0
- package/dist/modules/editor/src/commands/hierarchy.js +79 -0
- package/dist/modules/editor/src/commands/index.js +57 -0
- package/dist/modules/editor/src/commands/prefab.js +149 -0
- package/dist/modules/editor/src/commands/registry.js +246 -0
- package/dist/modules/editor/src/commands/scene-io.js +206 -0
- package/dist/modules/editor/src/commands/selection.js +71 -0
- package/dist/modules/editor/src/commands/transform.js +88 -0
- package/dist/modules/editor/src/ddscene.js +189 -0
- package/dist/modules/editor/src/document.js +96 -0
- package/dist/modules/editor/src/editor-context.js +115 -0
- package/dist/modules/editor/src/index.js +11 -0
- package/dist/modules/editor/src/mcp.js +91 -0
- package/dist/modules/editor/src/module.js +115 -0
- package/dist/modules/editor/src/selection.js +60 -0
- package/dist/modules/editor/src/shell.js +397 -0
- package/dist/modules/editor/src/viewport.js +186 -0
- package/dist/modules/html-ui/src/composite.js +116 -0
- package/dist/modules/html-ui/src/create-html-ui.js +137 -0
- package/dist/modules/html-ui/src/doc-backend.js +518 -0
- package/dist/modules/html-ui/src/host.js +819 -0
- package/dist/modules/html-ui/src/index.js +5 -0
- package/dist/modules/html-ui/src/jsx-dev-runtime.js +9 -0
- package/dist/modules/html-ui/src/jsx-runtime.js +121 -0
- package/dist/modules/html-ui/src/protocol.js +6 -0
- package/dist/modules/html-ui/src/ui-worker.js +10 -0
- package/dist/modules/mcp/src/index.js +62 -0
- package/dist/modules/movement-2d/src/grid-character.js +345 -0
- package/dist/modules/movement-2d/src/index.js +27 -0
- package/dist/modules/movement-3d/src/character-motor.js +166 -0
- package/dist/modules/movement-3d/src/index.js +27 -0
- package/dist/modules/native-osr/src/index.js +12 -0
- package/dist/modules/native-osr/src/input-router.js +335 -0
- package/dist/modules/native-osr/src/native-osr-manager.js +210 -0
- package/dist/modules/native-osr/src/native-texture-source.js +66 -0
- package/dist/modules/native-osr/src/types.js +8 -0
- package/dist/modules/native-osr/src/world-space-ui-pass.js +313 -0
- package/dist/modules/sailing/src/index.js +39 -0
- package/dist/modules/terrain/src/index.js +44 -0
- package/dist/modules/vitals/src/index.js +25 -0
- package/dist/modules/vitals/src/vitals.js +195 -0
- package/dist/modules/xr/src/camera-rig.js +119 -0
- package/dist/modules/xr/src/debug.js +45 -0
- package/dist/modules/xr/src/frame-loop.js +139 -0
- package/dist/modules/xr/src/index.js +10 -0
- package/dist/modules/xr/src/input.js +164 -0
- package/dist/modules/xr/src/layer.js +100 -0
- package/dist/modules/xr/src/session.js +133 -0
- package/dist/modules/xr/src/sim-module.js +21 -0
- package/dist/modules/xr/src/types.js +4 -0
- package/dist/modules/xr/src/webxr.d.ts +182 -0
- package/dist/modules/xr/src/xr-module.js +134 -0
- package/dist/shader-graph/src/chunks.js +340 -0
- package/dist/shader-graph/src/compiler.js +639 -0
- package/dist/shader-graph/src/compute-compiler.js +384 -0
- package/dist/shader-graph/src/compute-graph.js +55 -0
- package/dist/shader-graph/src/compute-profiles.js +39 -0
- package/dist/shader-graph/src/graph.js +38 -0
- package/dist/shader-graph/src/index.js +15 -0
- package/dist/shader-graph/src/profiles.js +305 -0
- package/dist/shader-graph/src/validator.js +42 -0
- package/dist/shader-graph/src/wgsl-binding-validator.js +110 -0
- package/dist/shader-graph/src/wgsl-struct-validator.js +222 -0
- package/dist/shader-graph/src/wgsl-struct.js +251 -0
- package/dist/test/src/index.js +1 -0
- package/dist/test/src/vision-test.js +228 -0
- package/libraries/asset-browser/src/software-thumbnails.ts +2 -2
- package/libraries/audio-kira/src/backend.ts +2 -1
- package/libraries/blitz-ui/native/src/shell.rs +35 -1
- package/libraries/blitz-ui/native-osr/Cargo.toml +8 -0
- package/libraries/blitz-ui/native-osr/src/lib.rs +213 -22
- package/libraries/blitz-ui/native-osr/src/mutate.rs +109 -14
- package/libraries/blitz-ui/src/native-osr-ffi.ts +71 -8
- package/libraries/blitz-ui/src/router.ts +3 -1
- package/libraries/blitz-ui/src/ui-blit-pass.ts +1 -1
- package/libraries/character/src/character-animator.ts +1 -1
- package/libraries/character/src/customization.ts +513 -0
- package/libraries/character/src/index.ts +6 -0
- package/libraries/character/src/inspectable.ts +111 -0
- package/libraries/character/src/loader.ts +38 -13
- package/libraries/character/src/locomotion.ts +13 -1
- package/libraries/character/src/preview.ts +94 -24
- package/libraries/devtools/README.md +16 -18
- package/libraries/devtools/src/backend.ts +505 -0
- package/libraries/devtools/src/cdp-bridge.ts +8 -8
- package/libraries/devtools/src/collectors.ts +41 -37
- package/libraries/devtools/src/index.ts +32 -14
- package/libraries/devtools/src/native-providers.ts +20 -12
- package/libraries/devtools/src/snapshot.ts +77 -0
- package/libraries/devtools/src/web/host.ts +11 -12
- package/libraries/devtools/src/web/mirror.ts +14 -405
- package/libraries/devtools/src/web/server.ts +4 -3
- package/libraries/entities/src/model-renderer.ts +96 -23
- package/libraries/gamepad/src/library.ts +2 -1
- package/libraries/inspectable/src/index.ts +11 -0
- package/libraries/inspectable/src/inspectable.ts +277 -0
- package/libraries/marching-cubes/src/streaming-manager.ts +4 -4
- package/libraries/models/src/bind-unskinned-meshes.ts +131 -0
- package/libraries/models/src/index.ts +1 -0
- package/libraries/models/src/types.ts +22 -0
- package/libraries/persistence/src/autosave-manager.ts +1 -1
- package/libraries/persistence/src/binary-record-store.ts +1 -1
- package/libraries/persistence/src/file-save-store.ts +4 -4
- package/libraries/persistence/src/library.ts +1 -1
- package/libraries/persistence/src/opfs-save-store.ts +5 -5
- package/libraries/persistence/src/save-worker.ts +13 -14
- package/libraries/physics-rapier/src/ffi-lib.ts +2 -1
- package/libraries/postfx/src/post-process-stack.ts +1 -1
- package/libraries/sand/src/sand-step-pool.ts +5 -0
- package/libraries/water/src/water-renderer.ts +1 -1
- package/libraries/weatherfx/src/cloud-system.ts +3 -3
- package/mcp/README.md +20 -0
- package/mcp/src/client.ts +75 -22
- package/mcp/src/undo-redo.ts +2 -2
- package/modules/devtools/src/blitz/host.ts +430 -0
- package/modules/devtools/src/blitz/module.ts +101 -0
- package/modules/devtools/src/blitz/panels/console.ts +223 -0
- package/modules/devtools/src/blitz/panels/elements.ts +92 -0
- package/modules/devtools/src/blitz/panels/gpu.ts +70 -0
- package/modules/devtools/src/blitz/panels/performance.ts +120 -0
- package/modules/devtools/src/blitz/panels/snapshot.ts +152 -0
- package/modules/devtools/src/blitz/panels/types.ts +120 -0
- package/modules/devtools/src/blitz/theme.ts +168 -0
- package/modules/devtools/src/data-bridge.ts +1 -1
- package/modules/devtools/src/index.ts +6 -0
- package/modules/devtools/src/profiling-bridge.ts +17 -13
- package/modules/devtools/src/profiling-hooks.ts +22 -13
- package/modules/devtools/src/scene-inspector.ts +1 -1
- package/modules/devtools/src/worker-sync.ts +9 -1
- package/modules/editor/src/commands/registry.ts +2 -2
- package/modules/editor/src/module.ts +1 -1
- package/modules/html-ui/src/composite.ts +1 -1
- package/modules/html-ui/src/create-html-ui.ts +21 -9
- package/modules/html-ui/src/doc-backend.ts +189 -10
- package/modules/html-ui/src/host.ts +354 -40
- package/modules/html-ui/src/index.ts +1 -1
- package/modules/html-ui/src/jsx-runtime.ts +1 -1
- package/modules/html-ui/src/protocol.ts +53 -6
- package/modules/mcp/README.md +6 -0
- package/modules/mcp/src/index.ts +70 -3
- package/modules/movement-3d/src/character-motor.ts +83 -10
- package/package.json +838 -165
- package/shader-graph/README.md +25 -0
- package/test/README.md +16 -0
- package/libraries/blitz-ui/native-osr-spike.ts +0 -70
- package/libraries/devtools/native/Cargo.toml +0 -12
- package/libraries/devtools/native/src/lib.rs +0 -1646
- package/libraries/devtools/native/src/panels/console.rs +0 -338
- package/libraries/devtools/native/src/panels/dom_tree.rs +0 -47
- package/libraries/devtools/native/src/panels/generic.rs +0 -317
- package/libraries/devtools/native/src/panels/gpu.rs +0 -107
- package/libraries/devtools/native/src/panels/input.rs +0 -88
- package/libraries/devtools/native/src/panels/mod.rs +0 -154
- package/libraries/devtools/native/src/panels/perf_metrics.rs +0 -91
- package/libraries/devtools/native/src/panels/perf_recorder.rs +0 -158
- package/libraries/devtools/native/src/panels/scene.rs +0 -72
- package/libraries/devtools/native/src/state.rs +0 -394
- package/libraries/devtools/src/egui-ffi.ts +0 -804
- package/libraries/devtools/src/egui-renderer.ts +0 -407
- package/libraries/devtools/src/host.ts +0 -363
- package/libraries/devtools/src/mirror.ts +0 -794
- package/libraries/models/test-fixtures/fbx/LICENSE-notice.txt +0 -24
- package/libraries/models/test-fixtures/fbx/README.md +0 -46
- package/libraries/models/test-fixtures/fbx/m01_cube_phong.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m02_geo_ngons.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m03_normals.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m04_material_properties.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m05_external_diffuse.png +0 -0
- package/libraries/models/test-fixtures/fbx/m05_textures.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m06_uv_transform.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m07_multimaterial.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m08_transforms.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m09_skinning.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m10_morph.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m11_node_anim.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m12_skeletal_anim.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m13_morph_anim.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m14_multiclip.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m15_camera_lights.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m16_axis_yup.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m16_axis_zup.fbx +0 -0
- package/libraries/models/test-fixtures/fbx/m16_units_254.fbx +0 -0
- package/libraries/physics-native/src/ffi-spike-worker.ts +0 -71
- package/libraries/physics-rapier/bench/ffi-bench.ts +0 -79
- package/libraries/physics-rapier/bench/wasm-baseline.ts +0 -90
|
@@ -49,7 +49,7 @@ export class MigrationRegistryImpl implements IMigrationRegistry {
|
|
|
49
49
|
const entry = this.components.get(component);
|
|
50
50
|
if (!entry) {
|
|
51
51
|
if (fromVersion === 1) return { data, version: 1 };
|
|
52
|
-
log.warn("
|
|
52
|
+
log.warn("migration-registry", `Unknown component "${component}" with version ${fromVersion}`);
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -59,7 +59,7 @@ export class MigrationRegistryImpl implements IMigrationRegistry {
|
|
|
59
59
|
|
|
60
60
|
if (fromVersion > entry.currentVersion) {
|
|
61
61
|
log.warn(
|
|
62
|
-
"
|
|
62
|
+
"migration-registry",
|
|
63
63
|
`Component "${component}" save version ${fromVersion} > current ${entry.currentVersion} — forward incompatible`,
|
|
64
64
|
);
|
|
65
65
|
return null;
|
|
@@ -72,7 +72,7 @@ export class MigrationRegistryImpl implements IMigrationRegistry {
|
|
|
72
72
|
const step = entry.migrations.get(version);
|
|
73
73
|
if (!step) {
|
|
74
74
|
log.warn(
|
|
75
|
-
"
|
|
75
|
+
"migration-registry",
|
|
76
76
|
`Missing migration for "${component}" v${version}→v${version + 1} — marking as abandoned`,
|
|
77
77
|
);
|
|
78
78
|
return null;
|
|
@@ -82,7 +82,7 @@ export class MigrationRegistryImpl implements IMigrationRegistry {
|
|
|
82
82
|
version = step.toVersion;
|
|
83
83
|
} catch (e) {
|
|
84
84
|
log.warn(
|
|
85
|
-
"
|
|
85
|
+
"migration-registry",
|
|
86
86
|
`Migration failed for "${component}" v${version}→v${step.toVersion}: ${e}`,
|
|
87
87
|
);
|
|
88
88
|
return null;
|
package/core/src/save/schema.ts
CHANGED
|
@@ -31,7 +31,7 @@ export class SchemaRegistry {
|
|
|
31
31
|
try {
|
|
32
32
|
current = fn(current);
|
|
33
33
|
} catch (e) {
|
|
34
|
-
log.warn("
|
|
34
|
+
log.warn("schema-registry", `Migration v${version}→v${version + 1} failed: ${e} — returning data at v${version}`);
|
|
35
35
|
return current;
|
|
36
36
|
}
|
|
37
37
|
version++;
|
package/core/src/scene/prefab.ts
CHANGED
|
@@ -30,7 +30,7 @@ export class PrefabRegistry {
|
|
|
30
30
|
|
|
31
31
|
register(prefab: Prefab): void {
|
|
32
32
|
if (this.prefabs.has(prefab.name)) {
|
|
33
|
-
log.warn("
|
|
33
|
+
log.warn("prefab-registry", `Overwriting prefab "${prefab.name}"`);
|
|
34
34
|
}
|
|
35
35
|
this.prefabs.set(prefab.name, prefab);
|
|
36
36
|
}
|
|
@@ -17,7 +17,7 @@ export class SceneManager {
|
|
|
17
17
|
|
|
18
18
|
register(scene: Scene): void {
|
|
19
19
|
if (this.scenes.has(scene.name)) {
|
|
20
|
-
log.warn("
|
|
20
|
+
log.warn("scene-manager", `Overwriting scene "${scene.name}"`);
|
|
21
21
|
}
|
|
22
22
|
this.scenes.set(scene.name, scene);
|
|
23
23
|
}
|
|
@@ -108,7 +108,7 @@ export class SceneManager {
|
|
|
108
108
|
next.activate();
|
|
109
109
|
this.activeScenes.add(name);
|
|
110
110
|
this._currentScene = next;
|
|
111
|
-
log.info("
|
|
111
|
+
log.info("scene-manager", `Transitioned to "${name}"`);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
// ── Additive Loading ───────────────────────────────────────────
|
package/core/src/scene/scene.ts
CHANGED
|
@@ -95,7 +95,7 @@ export class Scene {
|
|
|
95
95
|
|
|
96
96
|
async load(): Promise<void> {
|
|
97
97
|
if (this.state !== "unloaded") {
|
|
98
|
-
log.warn("
|
|
98
|
+
log.warn("scene", `Cannot load "${this.name}" — current state: ${this.state}`);
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
101
|
this.state = "loading";
|
|
@@ -105,7 +105,7 @@ export class Scene {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
this.state = "loaded";
|
|
108
|
-
log.info("
|
|
108
|
+
log.info("scene", `Loaded "${this.name}" (${this._entities.length} entities)`);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
unload(): void {
|
|
@@ -122,12 +122,12 @@ export class Scene {
|
|
|
122
122
|
this._entities = [];
|
|
123
123
|
this._entitySet.clear();
|
|
124
124
|
this.state = "unloaded";
|
|
125
|
-
log.info("
|
|
125
|
+
log.info("scene", `Unloaded "${this.name}"`);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
activate(): void {
|
|
129
129
|
if (this.state === "unloaded" || this.state === "loading") {
|
|
130
|
-
log.warn("
|
|
130
|
+
log.warn("scene", `Cannot activate "${this.name}" — not loaded`);
|
|
131
131
|
return;
|
|
132
132
|
}
|
|
133
133
|
this.state = "active";
|
|
@@ -198,12 +198,12 @@ export class WorldStreamer {
|
|
|
198
198
|
} catch (err) {
|
|
199
199
|
const retries = this.retryCounts.get(key) ?? 0;
|
|
200
200
|
if (retries >= MAX_CHUNK_RETRIES) {
|
|
201
|
-
log.error("
|
|
201
|
+
log.error("world-streamer", `Chunk ${key} failed after ${MAX_CHUNK_RETRIES} retries: ${err}`);
|
|
202
202
|
this.retryCounts.delete(key);
|
|
203
203
|
} else {
|
|
204
204
|
const delay = INITIAL_RETRY_DELAY_MS * (1 << retries);
|
|
205
205
|
this.retryCounts.set(key, retries + 1);
|
|
206
|
-
log.warn("
|
|
206
|
+
log.warn("world-streamer", `Chunk ${key} load failed (retry ${retries + 1}/${MAX_CHUNK_RETRIES}), retrying in ${delay}ms: ${err}`);
|
|
207
207
|
setTimeout(() => {
|
|
208
208
|
this.loadQueue.push({
|
|
209
209
|
coord,
|
|
@@ -70,7 +70,7 @@ export class HotReloader {
|
|
|
70
70
|
try {
|
|
71
71
|
entry.cleanups[i]();
|
|
72
72
|
} catch (err) {
|
|
73
|
-
log.error("
|
|
73
|
+
log.error("hot-reloader", `Cleanup error for "${name}": ${err}`);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
entry.cleanups = [];
|
|
@@ -79,7 +79,7 @@ export class HotReloader {
|
|
|
79
79
|
await this.scripting.hotReload(name, path);
|
|
80
80
|
if (entry.onReload) entry.onReload(path);
|
|
81
81
|
} catch (err) {
|
|
82
|
-
log.error("
|
|
82
|
+
log.error("hot-reloader", `Reload error for "${name}": ${err}`);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -11,6 +11,30 @@ import type { IWorkerManager } from "./types";
|
|
|
11
11
|
|
|
12
12
|
const log = createLogger();
|
|
13
13
|
|
|
14
|
+
// Per-step bounds. A wedged worker must not hang the pipeline forever — the
|
|
15
|
+
// dev shell escalates unresponsive swaps to a session restart, and an
|
|
16
|
+
// unbounded hotReload promise keeps the dying session (worker host, SABs,
|
|
17
|
+
// module graph) pinned. `start` gets the largest budget: dev cold-transform
|
|
18
|
+
// of a cache-busted worker module can legitimately take tens of seconds.
|
|
19
|
+
const SAVE_TIMEOUT_MS = 15_000;
|
|
20
|
+
const STOP_TIMEOUT_MS = 15_000;
|
|
21
|
+
const START_TIMEOUT_MS = 90_000;
|
|
22
|
+
const RESTORE_TIMEOUT_MS = 30_000;
|
|
23
|
+
|
|
24
|
+
async function withTimeout<T>(p: Promise<T>, ms: number, label: string): Promise<T> {
|
|
25
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
26
|
+
try {
|
|
27
|
+
return await Promise.race([
|
|
28
|
+
p,
|
|
29
|
+
new Promise<never>((_, rej) => {
|
|
30
|
+
timer = setTimeout(() => rej(new Error(`${label} timed out after ${ms}ms`)), ms);
|
|
31
|
+
}),
|
|
32
|
+
]);
|
|
33
|
+
} finally {
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
14
38
|
export class HotReloadPipeline {
|
|
15
39
|
private workerManager: IWorkerManager;
|
|
16
40
|
|
|
@@ -24,25 +48,25 @@ export class HotReloadPipeline {
|
|
|
24
48
|
// 1. Save state if preserving
|
|
25
49
|
if (preserveState) {
|
|
26
50
|
try {
|
|
27
|
-
const result = await this.workerManager.save("hot-reload");
|
|
51
|
+
const result = await withTimeout(this.workerManager.save("hot-reload"), SAVE_TIMEOUT_MS, "save");
|
|
28
52
|
if (result?.stateJson) stateJson = result.stateJson;
|
|
29
53
|
} catch (err) {
|
|
30
|
-
log.warn("
|
|
54
|
+
log.warn("hot-reload-pipeline", `State save failed, reloading without preservation: ${err}`);
|
|
31
55
|
}
|
|
32
56
|
}
|
|
33
57
|
|
|
34
58
|
// 2. Stop current worker
|
|
35
|
-
await this.workerManager.stop();
|
|
59
|
+
await withTimeout(this.workerManager.stop(), STOP_TIMEOUT_MS, "worker stop");
|
|
36
60
|
|
|
37
61
|
// 3. Start new worker
|
|
38
|
-
await this.workerManager.start(config);
|
|
62
|
+
await withTimeout(this.workerManager.start(config), START_TIMEOUT_MS, "worker start");
|
|
39
63
|
|
|
40
64
|
// 4. Restore state if preserving
|
|
41
65
|
if (preserveState && stateJson) {
|
|
42
66
|
try {
|
|
43
|
-
await this.workerManager.restoreFromState(stateJson);
|
|
67
|
+
await withTimeout(this.workerManager.restoreFromState(stateJson), RESTORE_TIMEOUT_MS, "state restore");
|
|
44
68
|
} catch (err) {
|
|
45
|
-
log.error("
|
|
69
|
+
log.error("hot-reload-pipeline", `State restore failed: ${err}. Starting fresh.`);
|
|
46
70
|
}
|
|
47
71
|
}
|
|
48
72
|
}
|
|
@@ -34,7 +34,7 @@ export class SimStateHelper {
|
|
|
34
34
|
this.registry.stripTransientFlags(state);
|
|
35
35
|
return JSON.stringify(state);
|
|
36
36
|
} catch (err) {
|
|
37
|
-
log.error("
|
|
37
|
+
log.error("sim-state-helper", `Failed to strip transient flags: ${err}`);
|
|
38
38
|
return stateJson;
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -57,7 +57,7 @@ export class TransientStateRegistry {
|
|
|
57
57
|
try {
|
|
58
58
|
this.resetCallbacks[i]();
|
|
59
59
|
} catch (err) {
|
|
60
|
-
log.error("
|
|
60
|
+
log.error("transient-state-registry", `Reset callback ${i} failed: ${err}`);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -187,7 +187,7 @@ export class SimWorkerLoop {
|
|
|
187
187
|
const nowMs = performance.now();
|
|
188
188
|
if (nowMs - this.lastClampWarn > 5000) {
|
|
189
189
|
this.lastClampWarn = nowMs;
|
|
190
|
-
log.warn("
|
|
190
|
+
log.warn("sim-worker-loop", `Clamped to ${this.maxStepsPerFrame} ticks this frame (sim falling behind, accumulator=${this.tickAccumulator.toFixed(1)})`);
|
|
191
191
|
}
|
|
192
192
|
this.tickAccumulator = 0;
|
|
193
193
|
}
|
|
@@ -195,7 +195,7 @@ export class SimWorkerLoop {
|
|
|
195
195
|
}
|
|
196
196
|
} catch (err) {
|
|
197
197
|
const error = err as Error;
|
|
198
|
-
log.error("
|
|
198
|
+
log.error("sim-worker-loop", `Tick crashed at tick ${this.tickCount}: ${error.message}\n${error.stack}`);
|
|
199
199
|
this.onErrorCb?.(error);
|
|
200
200
|
this.running = false;
|
|
201
201
|
return;
|
|
@@ -159,7 +159,7 @@ export class GPUProfiler {
|
|
|
159
159
|
if (!state) {
|
|
160
160
|
// First occurrence — log immediately and start a throttle window.
|
|
161
161
|
self.errorThrottle.set(key, { count: 1, firstSeen: now, lastLogged: now, suppressed: 0 });
|
|
162
|
-
log.error("
|
|
162
|
+
log.error("gpu", `${label ? label + " " : ""}WebGPU uncaptured error: ${message}`);
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
165
165
|
state.count++;
|
|
@@ -172,7 +172,7 @@ export class GPUProfiler {
|
|
|
172
172
|
// Window elapsed — emit a summary of suppressed duplicates and reset.
|
|
173
173
|
const suppressed = state.suppressed + 1; // +1 for this occurrence
|
|
174
174
|
log.error(
|
|
175
|
-
"
|
|
175
|
+
"gpu",
|
|
176
176
|
`${label ? label + " " : ""}WebGPU uncaptured error: ${message} ` +
|
|
177
177
|
`(repeated ${suppressed}× in ${Math.round(elapsed)}ms)`,
|
|
178
178
|
);
|
|
@@ -182,7 +182,7 @@ export class GPUProfiler {
|
|
|
182
182
|
|
|
183
183
|
device.lost.then((info: GPUDeviceLostInfo) => {
|
|
184
184
|
self.deviceLost = true;
|
|
185
|
-
log.error("
|
|
185
|
+
log.error("gpu", `WebGPU device lost: ${info?.reason ?? "unknown"} — ${info?.message ?? ""}`);
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
188
|
|
package/core/src/util/index.ts
CHANGED
|
@@ -12,6 +12,6 @@ export {
|
|
|
12
12
|
formatBytesShort
|
|
13
13
|
} from "./feature-log";
|
|
14
14
|
export type { FeatureLogData } from "./feature-log";
|
|
15
|
-
export { addLogSink, ConsoleLogger, createLogger, getRecentLogs, setThreadTag } from "./logger";
|
|
15
|
+
export { addLogSink, ConsoleLogger, createLogger, getLogTheme, getRecentLogs, setThreadTag } from "./logger";
|
|
16
16
|
export type { Logger, LogSink, LogSinkEntry } from "./logger";
|
|
17
17
|
|
package/core/src/util/logger.ts
CHANGED
|
@@ -29,7 +29,7 @@ if (proc?.stderr?.on) proc.stderr.on("error", swallowStreamError);
|
|
|
29
29
|
|
|
30
30
|
// ── Log sinks (for the native devtools console bridge) ──
|
|
31
31
|
// Sinks receive every log line (ANSI-stripped) so an external consumer like
|
|
32
|
-
// the
|
|
32
|
+
// the devtools console can display logs that bypass console.log
|
|
33
33
|
// (the native logger writes directly to process.stdout, which CDP never sees).
|
|
34
34
|
export interface LogSinkEntry {
|
|
35
35
|
level: string; // "trace"|"debug"|"info"|"warn"|"error"|"fatal"
|
|
@@ -207,6 +207,21 @@ function linkifyModule(module: string): string {
|
|
|
207
207
|
return makeFileLink(module);
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
+
/** Normalize a module tag to the lowercase-kebab convention
|
|
211
|
+
* ("GameRenderer" → "game-renderer", "SIM WORKER" → "sim-worker").
|
|
212
|
+
* Only word-style names are rewritten — anything with heavier
|
|
213
|
+
* separators (paths, "plugin:x", "dev/hmr", bundle names like
|
|
214
|
+
* "chunk-5H6VXLYO.js:2419") already carries its own format and
|
|
215
|
+
* passes through untouched. */
|
|
216
|
+
function normalizeModuleTag(module: string): string {
|
|
217
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9 _]*$/.test(module)) return module;
|
|
218
|
+
return module
|
|
219
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1-$2")
|
|
220
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1-$2")
|
|
221
|
+
.replace(/[\s_]+/g, "-")
|
|
222
|
+
.toLowerCase();
|
|
223
|
+
}
|
|
224
|
+
|
|
210
225
|
function getJsonColors(theme: "light" | "dark") {
|
|
211
226
|
const t = THEMES[theme];
|
|
212
227
|
return {
|
|
@@ -430,6 +445,14 @@ let _theme: "light" | "dark" | undefined;
|
|
|
430
445
|
function getTheme(): "light" | "dark" {
|
|
431
446
|
if (_theme) return _theme;
|
|
432
447
|
|
|
448
|
+
// DD_LOG_THEME — `draft` detects the theme once (its stdout is the real
|
|
449
|
+
// TTY, so the OSC-11 probe works) and stamps it into the env of every
|
|
450
|
+
// spawned child. Piped-stdout processes (dev shell, games, workers)
|
|
451
|
+
// skip the subprocess probes — which would guess via gsettings/dbus and
|
|
452
|
+
// can disagree with the actual terminal background.
|
|
453
|
+
const forced = proc.env.DD_LOG_THEME;
|
|
454
|
+
if (forced === "dark" || forced === "light") return (_theme = forced);
|
|
455
|
+
|
|
433
456
|
const colorfgbg = proc.env.COLORFGBG;
|
|
434
457
|
if (colorfgbg) {
|
|
435
458
|
const parts = colorfgbg.split(";");
|
|
@@ -511,6 +534,13 @@ function getTheme(): "light" | "dark" {
|
|
|
511
534
|
return (_theme = "dark");
|
|
512
535
|
}
|
|
513
536
|
|
|
537
|
+
/** The resolved log theme (env override → terminal/desktop probes → "dark").
|
|
538
|
+
* Resolved once and cached — CLIs stamp it into DD_LOG_THEME so spawned
|
|
539
|
+
* children inherit it without re-running the probes. */
|
|
540
|
+
export function getLogTheme(): "light" | "dark" {
|
|
541
|
+
return getTheme();
|
|
542
|
+
}
|
|
543
|
+
|
|
514
544
|
export class ConsoleLogger implements Logger {
|
|
515
545
|
private readonly palette: (typeof THEMES)["dark"];
|
|
516
546
|
|
|
@@ -522,12 +552,13 @@ export class ConsoleLogger implements Logger {
|
|
|
522
552
|
const cleanMsg = msg.replace(/\n+$/, "");
|
|
523
553
|
const color = (this.palette as any)[level];
|
|
524
554
|
const timestamp = new Date().toTimeString().slice(0, 8);
|
|
525
|
-
const
|
|
555
|
+
const moduleName = normalizeModuleTag(module);
|
|
556
|
+
const linkedModule = linkifyModule(moduleName);
|
|
526
557
|
let moduleStr: string;
|
|
527
|
-
if (isPathLike(
|
|
558
|
+
if (isPathLike(moduleName)) {
|
|
528
559
|
moduleStr = linkedModule;
|
|
529
560
|
} else {
|
|
530
|
-
moduleStr = `${this.palette.module}${
|
|
561
|
+
moduleStr = `${this.palette.module}${moduleName}`;
|
|
531
562
|
}
|
|
532
563
|
const tag = getThreadTag();
|
|
533
564
|
const tagColor = (this.palette.thread as Record<string, string>)[tag] ?? this.palette.module;
|
|
@@ -539,7 +570,7 @@ export class ConsoleLogger implements Logger {
|
|
|
539
570
|
// Notify log sinks (native devtools console bridge) with clean text.
|
|
540
571
|
emitToSinks({
|
|
541
572
|
level,
|
|
542
|
-
module,
|
|
573
|
+
module: moduleName,
|
|
543
574
|
message: stripAnsi(cleanMsg),
|
|
544
575
|
thread: tag,
|
|
545
576
|
timestamp: (typeof performance !== "undefined" ? performance.now() : Date.now()),
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// version.ts — ENGINE_VERSION as a leaf module.
|
|
3
|
+
//
|
|
4
|
+
// Lives outside the root barrel (index.ts re-exports it) so startup-critical
|
|
5
|
+
// consumers — platform-native's createNativeHost, the shared feature-log —
|
|
6
|
+
// can take a @downdraft/engine/version edge instead of pulling the whole
|
|
7
|
+
// barrel subtree into the dev transform graph.
|
|
8
|
+
// ============================================================================
|
|
9
|
+
|
|
10
|
+
import pkg from "../../package.json" with { type: "json" };
|
|
11
|
+
|
|
12
|
+
/** Engine semver — single source of truth is package.json. */
|
|
13
|
+
export const ENGINE_VERSION: string = pkg.version;
|
|
@@ -36,6 +36,7 @@ export abstract class BaseWorkerHost<TApi extends WorkerApi> {
|
|
|
36
36
|
protected ready = false;
|
|
37
37
|
private unsubEvents: (() => void) | null = null;
|
|
38
38
|
private syncHost: BufferSyncHost | null = null;
|
|
39
|
+
private lifecycleLock: Promise<void> | null = null;
|
|
39
40
|
|
|
40
41
|
constructor(sab: SharedArrayBuffer) {
|
|
41
42
|
this.sab = sab;
|
|
@@ -56,6 +57,36 @@ export abstract class BaseWorkerHost<TApi extends WorkerApi> {
|
|
|
56
57
|
return this.proxy;
|
|
57
58
|
}
|
|
58
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Serialize start()/stop() — a hot-reload save→stop→start cycle racing a
|
|
62
|
+
* second caller (overlapping swap events, session teardown) must not
|
|
63
|
+
* interleave worker/proxy swaps, or workers get orphaned mid-flight.
|
|
64
|
+
* FIFO mutex; uncontended calls invoke fn synchronously so start() wires
|
|
65
|
+
* the worker in the caller's own tick (post-await subscribers rely on it).
|
|
66
|
+
*/
|
|
67
|
+
private serialized<T>(fn: () => Promise<T>): Promise<T> {
|
|
68
|
+
let release!: () => void;
|
|
69
|
+
const mine = new Promise<void>((r) => (release = r));
|
|
70
|
+
const prev = this.lifecycleLock;
|
|
71
|
+
this.lifecycleLock = mine;
|
|
72
|
+
const settle = () => {
|
|
73
|
+
if (this.lifecycleLock === mine) this.lifecycleLock = null;
|
|
74
|
+
release();
|
|
75
|
+
};
|
|
76
|
+
if (!prev) {
|
|
77
|
+
const result = Promise.resolve(fn());
|
|
78
|
+
void result.finally(settle);
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
return prev.then(async () => {
|
|
82
|
+
try {
|
|
83
|
+
return await fn();
|
|
84
|
+
} finally {
|
|
85
|
+
settle();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
59
90
|
/**
|
|
60
91
|
* Spawn the worker and call its init RPC.
|
|
61
92
|
*
|
|
@@ -68,32 +99,47 @@ export abstract class BaseWorkerHost<TApi extends WorkerApi> {
|
|
|
68
99
|
* override getSyncConfig() to declare the region layout.
|
|
69
100
|
*/
|
|
70
101
|
async start(): Promise<void> {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
this.
|
|
90
|
-
|
|
91
|
-
|
|
102
|
+
return this.serialized(async () => {
|
|
103
|
+
// Re-entrant start while a worker is live (overlapping hot reloads,
|
|
104
|
+
// teardown racing a respawn) must not orphan the old worker.
|
|
105
|
+
if (this.worker || this.proxy) await this.stopInner();
|
|
106
|
+
|
|
107
|
+
this.worker = this.createWorker();
|
|
108
|
+
// A live worker must never be the only handle pinning the process —
|
|
109
|
+
// window-close teardown stops it explicitly (sim.stop()), but a worker
|
|
110
|
+
// that slips through (error path, missing stop impl) shouldn't hold
|
|
111
|
+
// the runtime open forever. No-op where unref doesn't exist (Deno).
|
|
112
|
+
(this.worker as any).unref?.();
|
|
113
|
+
// 120s rather than the 30s default: in dev, vite's cold transform of a
|
|
114
|
+
// large worker module can exceed 30s, killing init with a spurious
|
|
115
|
+
// timeout while the worker is still legitimately loading.
|
|
116
|
+
this.proxy = wrap<TApi>(this.worker, { timeoutMs: 120_000 });
|
|
117
|
+
// Tag the Worker with its RPC proxy so external force-terminates (dev
|
|
118
|
+
// session teardown) reject pending calls instead of leaving them to
|
|
119
|
+
// hang until their timeout — a hanging caller pins the dying session.
|
|
120
|
+
(this.worker as any).__ddWorkerProxy = this.proxy;
|
|
121
|
+
|
|
122
|
+
this.worker.onerror = (e: ErrorEvent) => {
|
|
123
|
+
this.onError(e);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
this.unsubEvents = this.proxy.onEvents((kind: string, data?: unknown) => {
|
|
127
|
+
this.onEvent(kind, data);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// SAB polyfill: start buffer sync host before onInit so input sync begins
|
|
131
|
+
// as soon as the worker is ready. The host uses rAF to sync input regions.
|
|
132
|
+
if (!usingRealSAB && this.getSyncConfig()) {
|
|
133
|
+
const { BufferSyncHost: BSH } = await import("./buffer-sync");
|
|
134
|
+
this.syncHost = new BSH(this.worker, this.getSyncConfig()!);
|
|
135
|
+
this.syncHost.start();
|
|
136
|
+
}
|
|
92
137
|
|
|
93
|
-
|
|
94
|
-
|
|
138
|
+
// Hook for subclasses to run setup before onInit (e.g. attaching profiling SAB).
|
|
139
|
+
await this.beforeInit();
|
|
95
140
|
|
|
96
|
-
|
|
141
|
+
await this.onInit();
|
|
142
|
+
});
|
|
97
143
|
}
|
|
98
144
|
|
|
99
145
|
/**
|
|
@@ -110,11 +156,27 @@ export abstract class BaseWorkerHost<TApi extends WorkerApi> {
|
|
|
110
156
|
* Safe to call multiple times.
|
|
111
157
|
*/
|
|
112
158
|
async stop(): Promise<void> {
|
|
159
|
+
return this.serialized(() => this.stopInner());
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
private async stopInner(): Promise<void> {
|
|
113
163
|
this.syncHost?.stop();
|
|
114
164
|
this.syncHost = null;
|
|
115
165
|
if (this.proxy) {
|
|
116
166
|
try {
|
|
117
|
-
|
|
167
|
+
// Bounded graceful shutdown — a wedged worker must not hang stop()
|
|
168
|
+
// (and through it, hot-reload pipelines and session teardown).
|
|
169
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
170
|
+
try {
|
|
171
|
+
await Promise.race([
|
|
172
|
+
this.proxy.proxy.shutdown(),
|
|
173
|
+
new Promise((_, rej) => {
|
|
174
|
+
timer = setTimeout(() => rej(new Error("shutdown RPC timed out")), 2_000);
|
|
175
|
+
}),
|
|
176
|
+
]);
|
|
177
|
+
} finally {
|
|
178
|
+
clearTimeout(timer);
|
|
179
|
+
}
|
|
118
180
|
} catch {
|
|
119
181
|
// Worker may already be dead
|
|
120
182
|
}
|
|
@@ -190,7 +190,7 @@ class SyncProfiler {
|
|
|
190
190
|
const avgKB = (e.totalBytes / e.count / 1024).toFixed(1);
|
|
191
191
|
lines.push(` ${label}: ${e.count}x avg=${avgMs}ms max=${maxMs}ms avgSize=${avgKB}KB total=${totalKB}KB`);
|
|
192
192
|
}
|
|
193
|
-
log.warn("
|
|
193
|
+
log.warn("buffer-sync", `Profiling: ${this.samples.length} samples over last ${this.logInterval}ms:\n${lines.join("\n")}`);
|
|
194
194
|
this.samples = [];
|
|
195
195
|
}
|
|
196
196
|
}
|
|
@@ -103,7 +103,7 @@ export class CrashRecoveryManager {
|
|
|
103
103
|
key: name,
|
|
104
104
|
data: saveData,
|
|
105
105
|
}).catch((err) => {
|
|
106
|
-
log.error("
|
|
106
|
+
log.error("crash-recovery", `Failed to persist checkpoint: ${err}`);
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -152,7 +152,7 @@ export class CrashRecoveryManager {
|
|
|
152
152
|
this.state.isRecovering = false;
|
|
153
153
|
return true;
|
|
154
154
|
} catch (err) {
|
|
155
|
-
log.error("
|
|
155
|
+
log.error("crash-recovery", `Recovery failed: ${err}`);
|
|
156
156
|
this.state.isRecovering = false;
|
|
157
157
|
return false;
|
|
158
158
|
}
|
|
@@ -85,7 +85,7 @@ export abstract class InstrumentedWorkerHost<TApi extends WorkerApi> extends Bas
|
|
|
85
85
|
},
|
|
86
86
|
);
|
|
87
87
|
} catch (err) {
|
|
88
|
-
log.warn("
|
|
88
|
+
log.warn("instrumented-worker-host", `__profilingAttach failed for "${opts.workerTag}": ${err}`);
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
@@ -98,7 +98,7 @@ export abstract class InstrumentedWorkerHost<TApi extends WorkerApi> extends Bas
|
|
|
98
98
|
try {
|
|
99
99
|
await (proxy.proxy as any).__profilingAddRule(rule);
|
|
100
100
|
} catch (err) {
|
|
101
|
-
log.warn("
|
|
101
|
+
log.warn("instrumented-worker-host", `__profilingAddRule failed: ${err}`);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
@@ -118,7 +118,7 @@ export abstract class InstrumentedWorkerHost<TApi extends WorkerApi> extends Bas
|
|
|
118
118
|
await (proxy.proxy as any).__profilingOnWarning();
|
|
119
119
|
return unsub;
|
|
120
120
|
} catch (err) {
|
|
121
|
-
log.warn("
|
|
121
|
+
log.warn("instrumented-worker-host", `__profilingOnWarning failed: ${err}`);
|
|
122
122
|
return () => {};
|
|
123
123
|
}
|
|
124
124
|
}
|