@forgeax/engine-app 0.0.0-dev.8d955ade1c79
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/LICENSE +202 -0
- package/README.md +424 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/animation-asset-lookup.unit.test.d.ts +2 -0
- package/dist/__tests__/animation-asset-lookup.unit.test.d.ts.map +1 -0
- package/dist/__tests__/callback-deletion.unit.test.d.ts +2 -0
- package/dist/__tests__/callback-deletion.unit.test.d.ts.map +1 -0
- package/dist/__tests__/callback-inference.test-d.d.ts +2 -0
- package/dist/__tests__/callback-inference.test-d.d.ts.map +1 -0
- package/dist/__tests__/component-introspection.unit.test.d.ts +2 -0
- package/dist/__tests__/component-introspection.unit.test.d.ts.map +1 -0
- package/dist/__tests__/consumer-migration.unit.test.d.ts +2 -0
- package/dist/__tests__/consumer-migration.unit.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-error-retention.integration.test.d.ts +2 -0
- package/dist/__tests__/create-app-error-retention.integration.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-features.test.d.ts +2 -0
- package/dist/__tests__/create-app-features.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-listener-sync.test.d.ts +2 -0
- package/dist/__tests__/create-app-listener-sync.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-lock-provider.test.d.ts +2 -0
- package/dist/__tests__/create-app-lock-provider.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-physics-plugin-failure.integration.test.d.ts +2 -0
- package/dist/__tests__/create-app-physics-plugin-failure.integration.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-plugin.test.d.ts +2 -0
- package/dist/__tests__/create-app-plugin.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-stop.test.d.ts +2 -0
- package/dist/__tests__/create-app-stop.test.d.ts.map +1 -0
- package/dist/__tests__/create-app-time.unit.test.d.ts +2 -0
- package/dist/__tests__/create-app-time.unit.test.d.ts.map +1 -0
- package/dist/__tests__/create-app.test-d.d.ts +2 -0
- package/dist/__tests__/create-app.test-d.d.ts.map +1 -0
- package/dist/__tests__/create-app.test.d.ts +2 -0
- package/dist/__tests__/create-app.test.d.ts.map +1 -0
- package/dist/__tests__/create-renderer-error.integration.test.d.ts +2 -0
- package/dist/__tests__/create-renderer-error.integration.test.d.ts.map +1 -0
- package/dist/__tests__/create-renderer-lifecycle.integration.test.d.ts +2 -0
- package/dist/__tests__/create-renderer-lifecycle.integration.test.d.ts.map +1 -0
- package/dist/__tests__/docs-gate-green.unit.test.d.ts +2 -0
- package/dist/__tests__/docs-gate-green.unit.test.d.ts.map +1 -0
- package/dist/__tests__/draw-source-injected-world-update-visibility.test.d.ts +2 -0
- package/dist/__tests__/draw-source-injected-world-update-visibility.test.d.ts.map +1 -0
- package/dist/__tests__/draw-source-single-world-regression.test.d.ts +2 -0
- package/dist/__tests__/draw-source-single-world-regression.test.d.ts.map +1 -0
- package/dist/__tests__/engine-worker-bootstrap-channel.unit.test.d.ts +2 -0
- package/dist/__tests__/engine-worker-bootstrap-channel.unit.test.d.ts.map +1 -0
- package/dist/__tests__/engine-worker-world-swap.unit.test.d.ts +2 -0
- package/dist/__tests__/engine-worker-world-swap.unit.test.d.ts.map +1 -0
- package/dist/__tests__/errors-pointer-lock-failed.test.d.ts +2 -0
- package/dist/__tests__/errors-pointer-lock-failed.test.d.ts.map +1 -0
- package/dist/__tests__/execution-bootstrap-isolation.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-bootstrap-isolation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-error-detail.test-d.d.ts +2 -0
- package/dist/__tests__/execution-error-detail.test-d.d.ts.map +1 -0
- package/dist/__tests__/execution-error-detail.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-error-detail.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-frame-order.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-frame-order.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-frame-protocol.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-frame-protocol.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-input-sample.contract.test.d.ts +2 -0
- package/dist/__tests__/execution-input-sample.contract.test.d.ts.map +1 -0
- package/dist/__tests__/execution-measurement.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-measurement.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-public-api.test-d.d.ts +2 -0
- package/dist/__tests__/execution-public-api.test-d.d.ts.map +1 -0
- package/dist/__tests__/execution-public-api.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-public-api.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-rebuild.contract.test.d.ts +2 -0
- package/dist/__tests__/execution-rebuild.contract.test.d.ts.map +1 -0
- package/dist/__tests__/execution-report.contract.test.d.ts +2 -0
- package/dist/__tests__/execution-report.contract.test.d.ts.map +1 -0
- package/dist/__tests__/execution-report.types.test-d.d.ts +2 -0
- package/dist/__tests__/execution-report.types.test-d.d.ts.map +1 -0
- package/dist/__tests__/execution-schema-freshness.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-schema-freshness.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-selector.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-selector.unit.test.d.ts.map +1 -0
- package/dist/__tests__/execution-shared-kernel.unit.test.d.ts +2 -0
- package/dist/__tests__/execution-shared-kernel.unit.test.d.ts.map +1 -0
- package/dist/__tests__/fallback-camera.unit.test.d.ts +2 -0
- package/dist/__tests__/fallback-camera.unit.test.d.ts.map +1 -0
- package/dist/__tests__/frame-loop-time-elapsed.test.d.ts +2 -0
- package/dist/__tests__/frame-loop-time-elapsed.test.d.ts.map +1 -0
- package/dist/__tests__/frame-loop-time.unit.test.d.ts +2 -0
- package/dist/__tests__/frame-loop-time.unit.test.d.ts.map +1 -0
- package/dist/__tests__/frame-loop-world-array.test.d.ts +2 -0
- package/dist/__tests__/frame-loop-world-array.test.d.ts.map +1 -0
- package/dist/__tests__/kernel-worker-runtime.unit.test.d.ts +2 -0
- package/dist/__tests__/kernel-worker-runtime.unit.test.d.ts.map +1 -0
- package/dist/__tests__/migration-surface-inventory.unit.test.d.ts +2 -0
- package/dist/__tests__/migration-surface-inventory.unit.test.d.ts.map +1 -0
- package/dist/__tests__/plugin-policy.integration.test.d.ts +2 -0
- package/dist/__tests__/plugin-policy.integration.test.d.ts.map +1 -0
- package/dist/__tests__/plugin-profiles.unit.test.d.ts +2 -0
- package/dist/__tests__/plugin-profiles.unit.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-default-off.test.d.ts +2 -0
- package/dist/__tests__/profiler-default-off.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-frame-token.test.d.ts +2 -0
- package/dist/__tests__/profiler-frame-token.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-catalog.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts +2 -0
- package/dist/__tests__/profiler-phase-integration.test.d.ts.map +1 -0
- package/dist/__tests__/profiler-remote-bridge.test.d.ts +2 -0
- package/dist/__tests__/profiler-remote-bridge.test.d.ts.map +1 -0
- package/dist/__tests__/remote-integration.test.d.ts +2 -0
- package/dist/__tests__/remote-integration.test.d.ts.map +1 -0
- package/dist/__tests__/rhi-capture-capability.test-d.d.ts +2 -0
- package/dist/__tests__/rhi-capture-capability.test-d.d.ts.map +1 -0
- package/dist/__tests__/rhi-capture-host.integration.test.d.ts +2 -0
- package/dist/__tests__/rhi-capture-host.integration.test.d.ts.map +1 -0
- package/dist/__tests__/rhi-capture.browser.test.d.ts +2 -0
- package/dist/__tests__/rhi-capture.browser.test.d.ts.map +1 -0
- package/dist/__tests__/surface-handoff.test.d.ts +2 -0
- package/dist/__tests__/surface-handoff.test.d.ts.map +1 -0
- package/dist/__tests__/types-m2.test-d.d.ts +2 -0
- package/dist/__tests__/types-m2.test-d.d.ts.map +1 -0
- package/dist/__tests__/visibility-remote.integration.test.d.ts +2 -0
- package/dist/__tests__/visibility-remote.integration.test.d.ts.map +1 -0
- package/dist/__tests__/worker-execution-stop.test.d.ts +2 -0
- package/dist/__tests__/worker-execution-stop.test.d.ts.map +1 -0
- package/dist/animation-asset-lookup.d.ts +7 -0
- package/dist/animation-asset-lookup.d.ts.map +1 -0
- package/dist/browser-frame-signal.d.ts +17 -0
- package/dist/browser-frame-signal.d.ts.map +1 -0
- package/dist/canvas-policy.d.ts +4 -0
- package/dist/canvas-policy.d.ts.map +1 -0
- package/dist/create-app.d.ts +78 -0
- package/dist/create-app.d.ts.map +1 -0
- package/dist/engine-worker-runtime.mjs +827 -0
- package/dist/engine-worker-runtime.mjs.map +1 -0
- package/dist/errors.d.ts +254 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/execution/attached-world-swap.d.ts +10 -0
- package/dist/execution/attached-world-swap.d.ts.map +1 -0
- package/dist/execution/bootstrap-entry.d.ts +30 -0
- package/dist/execution/bootstrap-entry.d.ts.map +1 -0
- package/dist/execution/bootstrap-url.d.ts +5 -0
- package/dist/execution/bootstrap-url.d.ts.map +1 -0
- package/dist/execution/capabilities.d.ts +5 -0
- package/dist/execution/capabilities.d.ts.map +1 -0
- package/dist/execution/control.d.ts +12 -0
- package/dist/execution/control.d.ts.map +1 -0
- package/dist/execution/engine-worker-runtime.d.ts +2 -0
- package/dist/execution/engine-worker-runtime.d.ts.map +1 -0
- package/dist/execution/engine-worker.d.ts +24 -0
- package/dist/execution/engine-worker.d.ts.map +1 -0
- package/dist/execution/host-controller.d.ts +16 -0
- package/dist/execution/host-controller.d.ts.map +1 -0
- package/dist/execution/index.d.ts +10 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/kernel-pool.d.ts +14 -0
- package/dist/execution/kernel-pool.d.ts.map +1 -0
- package/dist/execution/kernel-worker-runtime.d.ts +2 -0
- package/dist/execution/kernel-worker-runtime.d.ts.map +1 -0
- package/dist/execution/measurement.d.ts +7 -0
- package/dist/execution/measurement.d.ts.map +1 -0
- package/dist/execution/protocol.d.ts +87 -0
- package/dist/execution/protocol.d.ts.map +1 -0
- package/dist/execution/report.d.ts +5 -0
- package/dist/execution/report.d.ts.map +1 -0
- package/dist/execution/schema.d.ts +4 -0
- package/dist/execution/schema.d.ts.map +1 -0
- package/dist/execution/selector.d.ts +10 -0
- package/dist/execution/selector.d.ts.map +1 -0
- package/dist/execution/types.d.ts +123 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/fallback-camera.d.ts +8 -0
- package/dist/fallback-camera.d.ts.map +1 -0
- package/dist/game-context.d.ts +98 -0
- package/dist/game-context.d.ts.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +3980 -0
- package/dist/index.mjs.map +1 -0
- package/dist/input-map-plugin.d.ts +5 -0
- package/dist/input-map-plugin.d.ts.map +1 -0
- package/dist/input-plugin.d.ts +4 -0
- package/dist/input-plugin.d.ts.map +1 -0
- package/dist/internal/assembled-engine-profile.d.ts +5 -0
- package/dist/internal/assembled-engine-profile.d.ts.map +1 -0
- package/dist/internal/assets-world-plugin.d.ts +7 -0
- package/dist/internal/assets-world-plugin.d.ts.map +1 -0
- package/dist/internal/browser-remote-bridge.d.ts +24 -0
- package/dist/internal/browser-remote-bridge.d.ts.map +1 -0
- package/dist/internal/browser-rhi-debug-runtime.d.ts +18 -0
- package/dist/internal/browser-rhi-debug-runtime.d.ts.map +1 -0
- package/dist/internal/component-introspection.d.ts +24 -0
- package/dist/internal/component-introspection.d.ts.map +1 -0
- package/dist/internal/debug-draw.d.ts +9 -0
- package/dist/internal/debug-draw.d.ts.map +1 -0
- package/dist/internal/ecs-import.d.ts +6 -0
- package/dist/internal/ecs-import.d.ts.map +1 -0
- package/dist/internal/engine-profile-common.d.ts +9 -0
- package/dist/internal/engine-profile-common.d.ts.map +1 -0
- package/dist/internal/error-fanout.d.ts +66 -0
- package/dist/internal/error-fanout.d.ts.map +1 -0
- package/dist/internal/frame-loop.d.ts +38 -0
- package/dist/internal/frame-loop.d.ts.map +1 -0
- package/dist/internal/input-attach.d.ts +44 -0
- package/dist/internal/input-attach.d.ts.map +1 -0
- package/dist/internal/main-engine-profile.d.ts +19 -0
- package/dist/internal/main-engine-profile.d.ts.map +1 -0
- package/dist/internal/remote-serve-flag.d.ts +19 -0
- package/dist/internal/remote-serve-flag.d.ts.map +1 -0
- package/dist/internal/remote-server-plugin.d.ts +8 -0
- package/dist/internal/remote-server-plugin.d.ts.map +1 -0
- package/dist/internal/rhi-capture.d.ts +19 -0
- package/dist/internal/rhi-capture.d.ts.map +1 -0
- package/dist/internal/rhi-debug-flag.d.ts +18 -0
- package/dist/internal/rhi-debug-flag.d.ts.map +1 -0
- package/dist/internal/worker-engine-profile.d.ts +15 -0
- package/dist/internal/worker-engine-profile.d.ts.map +1 -0
- package/dist/kernel-worker-runtime.mjs +69 -0
- package/dist/kernel-worker-runtime.mjs.map +1 -0
- package/dist/load-game-errors.d.ts +131 -0
- package/dist/load-game-errors.d.ts.map +1 -0
- package/dist/load-game.d.ts +34 -0
- package/dist/load-game.d.ts.map +1 -0
- package/dist/plugin-factories.d.ts +3 -0
- package/dist/plugin-factories.d.ts.map +1 -0
- package/dist/renderer-plugin.d.ts +25 -0
- package/dist/renderer-plugin.d.ts.map +1 -0
- package/dist/tool-preview/bootstrap.d.ts +113 -0
- package/dist/tool-preview/bootstrap.d.ts.map +1 -0
- package/dist/tool-preview/evidence.d.ts +20 -0
- package/dist/tool-preview/evidence.d.ts.map +1 -0
- package/dist/tool-preview/framing.d.ts +13 -0
- package/dist/tool-preview/framing.d.ts.map +1 -0
- package/dist/tool-preview/recipe.d.ts +54 -0
- package/dist/tool-preview/recipe.d.ts.map +1 -0
- package/dist/types.d.ts +404 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +85 -0
- package/schema/execution-report.schema.json +168 -0
- package/src/__tests__/animation-asset-lookup.unit.test.ts +20 -0
- package/src/__tests__/callback-deletion.unit.test.ts +14 -0
- package/src/__tests__/callback-inference.test-d.ts +36 -0
- package/src/__tests__/component-introspection.unit.test.ts +56 -0
- package/src/__tests__/consumer-migration.unit.test.ts +34 -0
- package/src/__tests__/create-app-error-retention.integration.test.ts +125 -0
- package/src/__tests__/create-app-features.test.ts +51 -0
- package/src/__tests__/create-app-listener-sync.test.ts +381 -0
- package/src/__tests__/create-app-lock-provider.test.ts +212 -0
- package/src/__tests__/create-app-physics-plugin-failure.integration.test.ts +142 -0
- package/src/__tests__/create-app-plugin.test.ts +217 -0
- package/src/__tests__/create-app-stop.test.ts +609 -0
- package/src/__tests__/create-app-time.unit.test.ts +26 -0
- package/src/__tests__/create-app.test-d.ts +83 -0
- package/src/__tests__/create-app.test.ts +287 -0
- package/src/__tests__/create-renderer-error.integration.test.ts +25 -0
- package/src/__tests__/create-renderer-lifecycle.integration.test.ts +24 -0
- package/src/__tests__/docs-gate-green.unit.test.ts +61 -0
- package/src/__tests__/draw-source-injected-world-update-visibility.test.ts +176 -0
- package/src/__tests__/draw-source-single-world-regression.test.ts +184 -0
- package/src/__tests__/engine-worker-bootstrap-channel.unit.test.ts +82 -0
- package/src/__tests__/engine-worker-world-swap.unit.test.ts +69 -0
- package/src/__tests__/errors-pointer-lock-failed.test.ts +265 -0
- package/src/__tests__/execution-bootstrap-isolation.unit.test.ts +79 -0
- package/src/__tests__/execution-error-detail.test-d.ts +13 -0
- package/src/__tests__/execution-error-detail.unit.test.ts +35 -0
- package/src/__tests__/execution-frame-order.unit.test.ts +38 -0
- package/src/__tests__/execution-frame-protocol.unit.test.ts +60 -0
- package/src/__tests__/execution-input-sample.contract.test.ts +23 -0
- package/src/__tests__/execution-measurement.unit.test.ts +20 -0
- package/src/__tests__/execution-public-api.test-d.ts +14 -0
- package/src/__tests__/execution-public-api.unit.test.ts +9 -0
- package/src/__tests__/execution-rebuild.contract.test.ts +36 -0
- package/src/__tests__/execution-report.contract.test.ts +50 -0
- package/src/__tests__/execution-report.types.test-d.ts +16 -0
- package/src/__tests__/execution-schema-freshness.unit.test.ts +20 -0
- package/src/__tests__/execution-selector.unit.test.ts +72 -0
- package/src/__tests__/execution-shared-kernel.unit.test.ts +180 -0
- package/src/__tests__/fallback-camera.unit.test.ts +32 -0
- package/src/__tests__/frame-loop-time-elapsed.test.ts +115 -0
- package/src/__tests__/frame-loop-time.unit.test.ts +61 -0
- package/src/__tests__/frame-loop-world-array.test.ts +450 -0
- package/src/__tests__/kernel-worker-runtime.unit.test.ts +50 -0
- package/src/__tests__/migration-surface-inventory.unit.test.ts +13 -0
- package/src/__tests__/plugin-policy.integration.test.ts +15 -0
- package/src/__tests__/plugin-profiles.unit.test.ts +190 -0
- package/src/__tests__/profiler-default-off.test.ts +53 -0
- package/src/__tests__/profiler-frame-token.test.ts +235 -0
- package/src/__tests__/profiler-phase-catalog.test.ts +30 -0
- package/src/__tests__/profiler-phase-integration.test.ts +117 -0
- package/src/__tests__/profiler-remote-bridge.test.ts +31 -0
- package/src/__tests__/remote-integration.test.ts +224 -0
- package/src/__tests__/rhi-capture-capability.test-d.ts +22 -0
- package/src/__tests__/rhi-capture-host.integration.test.ts +157 -0
- package/src/__tests__/rhi-capture.browser.test.ts +51 -0
- package/src/__tests__/surface-handoff.test.ts +89 -0
- package/src/__tests__/types-m2.test-d.ts +81 -0
- package/src/__tests__/visibility-remote.integration.test.ts +116 -0
- package/src/__tests__/worker-execution-stop.test.ts +173 -0
- package/src/animation-asset-lookup.ts +13 -0
- package/src/browser-frame-signal.ts +44 -0
- package/src/canvas-policy.ts +16 -0
- package/src/create-app.ts +1264 -0
- package/src/errors.ts +442 -0
- package/src/execution/attached-world-swap.ts +33 -0
- package/src/execution/bootstrap-entry.ts +122 -0
- package/src/execution/bootstrap-url.ts +25 -0
- package/src/execution/capabilities.ts +102 -0
- package/src/execution/control.ts +48 -0
- package/src/execution/engine-worker-runtime.ts +383 -0
- package/src/execution/engine-worker.ts +163 -0
- package/src/execution/host-controller.ts +460 -0
- package/src/execution/index.ts +44 -0
- package/src/execution/kernel-pool.ts +236 -0
- package/src/execution/kernel-worker-runtime.ts +103 -0
- package/src/execution/measurement.ts +39 -0
- package/src/execution/protocol.ts +134 -0
- package/src/execution/report.ts +66 -0
- package/src/execution/schema.ts +168 -0
- package/src/execution/selector.ts +98 -0
- package/src/execution/types.ts +163 -0
- package/src/fallback-camera.ts +20 -0
- package/src/game-context.ts +126 -0
- package/src/index.ts +190 -0
- package/src/input-map-plugin.ts +21 -0
- package/src/input-plugin.ts +26 -0
- package/src/internal/assembled-engine-profile.ts +14 -0
- package/src/internal/assets-world-plugin.ts +33 -0
- package/src/internal/browser-remote-bridge.ts +269 -0
- package/src/internal/browser-rhi-debug-runtime.ts +67 -0
- package/src/internal/component-introspection.ts +116 -0
- package/src/internal/debug-draw.ts +38 -0
- package/src/internal/ecs-import.ts +41 -0
- package/src/internal/engine-profile-common.ts +9 -0
- package/src/internal/error-fanout.ts +129 -0
- package/src/internal/frame-loop.ts +539 -0
- package/src/internal/input-attach.ts +104 -0
- package/src/internal/main-engine-profile.ts +84 -0
- package/src/internal/remote-serve-flag.ts +41 -0
- package/src/internal/remote-server-plugin.ts +16 -0
- package/src/internal/rhi-capture.ts +211 -0
- package/src/internal/rhi-debug-flag.ts +40 -0
- package/src/internal/worker-engine-profile.ts +47 -0
- package/src/load-game-errors.ts +211 -0
- package/src/load-game.ts +115 -0
- package/src/plugin-factories.ts +2 -0
- package/src/renderer-plugin.ts +96 -0
- package/src/tool-preview/bootstrap.ts +835 -0
- package/src/tool-preview/evidence.ts +59 -0
- package/src/tool-preview/framing.ts +52 -0
- package/src/tool-preview/recipe.ts +137 -0
- package/src/types.ts +450 -0
- package/src/vite-env.d.ts +10 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Closed LoadGameErrorCode union (3 members).
|
|
3
|
+
*
|
|
4
|
+
* | code | trigger |
|
|
5
|
+
* |:--|:--|
|
|
6
|
+
* | `'module-not-found'` | resolver throws an error distinguishable as module-not-found (e.g. "Cannot find module"). Detail carries `slug` so AI users can surface which game path failed. |
|
|
7
|
+
* | `'invalid-format'` | resolver returns a module without a valid native Cordis default export. Detail carries `exportKeys` so AI users can inspect the module shape. |
|
|
8
|
+
* | `'import-failed'` | resolver throws a generic Error (network error, build error, etc.) not distinguishable as module-not-found. Detail carries the original `cause` Error so AI users can chain narrow. |
|
|
9
|
+
*
|
|
10
|
+
* Plan-strategy D-3 locks the count at 3.
|
|
11
|
+
*/
|
|
12
|
+
export type LoadGameErrorCode = keyof typeof loadGameErrorPolicy;
|
|
13
|
+
/**
|
|
14
|
+
* Detail variant for the `'module-not-found'` arm.
|
|
15
|
+
*
|
|
16
|
+
* `slug` carries the game identifier that the resolver failed to locate
|
|
17
|
+
* so AI users can surface exactly which game could not be loaded.
|
|
18
|
+
*/
|
|
19
|
+
export interface LoadGameDetailModuleNotFound {
|
|
20
|
+
readonly slug: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Detail variant for the `'invalid-format'` arm.
|
|
24
|
+
*
|
|
25
|
+
* `exportKeys` carries the keys of the module object returned by the
|
|
26
|
+
* resolver. AI users inspect these to understand why the native default
|
|
27
|
+
* plugin export was rejected.
|
|
28
|
+
*/
|
|
29
|
+
export interface LoadGameDetailInvalidFormat {
|
|
30
|
+
readonly exportKeys: string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Detail variant for the `'import-failed'` arm.
|
|
34
|
+
*
|
|
35
|
+
* `cause` carries the original thrown value verbatim so AI users can
|
|
36
|
+
* chain narrow (e.g. `cause instanceof TypeError` for network errors)
|
|
37
|
+
* without losing structure.
|
|
38
|
+
*/
|
|
39
|
+
export interface LoadGameDetailImportFailed {
|
|
40
|
+
readonly cause: unknown;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Conditional resolver from `LoadGameErrorCode` to its detail payload type.
|
|
44
|
+
*/
|
|
45
|
+
export type LoadGameErrorDetailFor<C extends LoadGameErrorCode> = C extends 'module-not-found' ? LoadGameDetailModuleNotFound : C extends 'invalid-format' ? LoadGameDetailInvalidFormat : LoadGameDetailImportFailed;
|
|
46
|
+
/**
|
|
47
|
+
* Tagged union of `.detail` payloads carried by structured LoadGameError.
|
|
48
|
+
*/
|
|
49
|
+
export type LoadGameErrorDetail = LoadGameErrorDetailFor<LoadGameErrorCode>;
|
|
50
|
+
declare class LoadGameErrorClass extends Error {
|
|
51
|
+
readonly code: LoadGameErrorCode;
|
|
52
|
+
readonly expected: string;
|
|
53
|
+
readonly hint: string;
|
|
54
|
+
readonly detail: LoadGameErrorDetail;
|
|
55
|
+
constructor(args: {
|
|
56
|
+
code: LoadGameErrorCode;
|
|
57
|
+
expected: string;
|
|
58
|
+
hint: string;
|
|
59
|
+
detail: LoadGameErrorDetail;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Variant intersection: a `LoadGameErrorClass` instance whose `code` literal
|
|
64
|
+
* narrows to `C` and whose `detail` narrows to `LoadGameErrorDetailFor<C>`.
|
|
65
|
+
*/
|
|
66
|
+
type LoadGameErrorVariant<C extends LoadGameErrorCode> = LoadGameErrorClass & {
|
|
67
|
+
readonly code: C;
|
|
68
|
+
readonly detail: LoadGameErrorDetailFor<C>;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Public LoadGameError type -- discriminated union of the 3 variants.
|
|
72
|
+
*
|
|
73
|
+
* AI-user form (charter P3 explicit failure):
|
|
74
|
+
*
|
|
75
|
+
* ```ts
|
|
76
|
+
* function recover(err: LoadGameError): string {
|
|
77
|
+
* switch (err.code) {
|
|
78
|
+
* case 'module-not-found': return `game not found: ${err.detail.slug}`;
|
|
79
|
+
* case 'invalid-format': return `bad shape, exports: ${err.detail.exportKeys.join(', ')}`;
|
|
80
|
+
* case 'import-failed': return err.detail.cause instanceof Error ? err.detail.cause.message : 'unknown';
|
|
81
|
+
* }
|
|
82
|
+
* }
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export type LoadGameError = {
|
|
86
|
+
[C in LoadGameErrorCode]: LoadGameErrorVariant<C>;
|
|
87
|
+
}[LoadGameErrorCode];
|
|
88
|
+
interface LoadGameErrorConstructor {
|
|
89
|
+
new <C extends LoadGameErrorCode>(args: {
|
|
90
|
+
code: C;
|
|
91
|
+
expected: string;
|
|
92
|
+
hint: string;
|
|
93
|
+
detail: LoadGameErrorDetailFor<C>;
|
|
94
|
+
}): LoadGameErrorVariant<C>;
|
|
95
|
+
readonly prototype: LoadGameErrorClass;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* LoadGameError constructor -- `new LoadGameError({ code, expected, hint, detail })`.
|
|
99
|
+
*/
|
|
100
|
+
export declare const LoadGameError: LoadGameErrorConstructor;
|
|
101
|
+
declare const loadGameErrorPolicy: {
|
|
102
|
+
'module-not-found': {
|
|
103
|
+
expected: string;
|
|
104
|
+
hint: string;
|
|
105
|
+
};
|
|
106
|
+
'invalid-format': {
|
|
107
|
+
expected: string;
|
|
108
|
+
hint: string;
|
|
109
|
+
};
|
|
110
|
+
'import-failed': {
|
|
111
|
+
expected: string;
|
|
112
|
+
hint: string;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
export declare const LOAD_GAME_EXPECTED: Readonly<Record<LoadGameErrorCode, string>>;
|
|
116
|
+
/**
|
|
117
|
+
* `hint` table -- actionable recovery guidance per code (charter P3).
|
|
118
|
+
*
|
|
119
|
+
* 3 keys; the policy-owner proof locks the exact count, order, and values.
|
|
120
|
+
*/
|
|
121
|
+
export declare const LOAD_GAME_ERROR_HINTS: Readonly<Record<LoadGameErrorCode, string>>;
|
|
122
|
+
/**
|
|
123
|
+
* Type guard for narrowing unknown errors to LoadGameError.
|
|
124
|
+
*
|
|
125
|
+
* AI users who catch mixed error types can call `if (isLoadGameError(e))`
|
|
126
|
+
* before walking `.code`. Uses instanceof against the internal class
|
|
127
|
+
* (the public constructor delegates to LoadGameErrorClass).
|
|
128
|
+
*/
|
|
129
|
+
export declare function isLoadGameError(err: unknown): err is LoadGameError;
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=load-game-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-game-errors.d.ts","sourceRoot":"","sources":["../src/load-game-errors.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,iBAAiB,IAAI,CAAC,SAAS,kBAAkB,GAC1F,4BAA4B,GAC5B,CAAC,SAAS,gBAAgB,GACxB,2BAA2B,GAC3B,0BAA0B,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;AAE5E,cAAM,kBAAmB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;gBAEzB,IAAI,EAAE;QAChB,IAAI,EAAE,iBAAiB,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,mBAAmB,CAAC;KAC7B;CAQF;AAED;;;GAGG;AACH,KAAK,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,IAAI,kBAAkB,GAAG;IAC5E,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,iBAAiB,GAAG,oBAAoB,CAAC,CAAC,CAAC;CAClD,CAAC,iBAAiB,CAAC,CAAC;AAErB,UAAU,wBAAwB;IAChC,KAAK,CAAC,SAAS,iBAAiB,EAAE,IAAI,EAAE;QACtC,IAAI,EAAE,CAAC,CAAC;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;KACnC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;CACxC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,wBAC+B,CAAC;AAW5D,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;CAesB,CAAC;AAEhD,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAE3B,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAG5B,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAElE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Plugin } from '@forgeax/engine-plugin';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
3
|
+
import { LoadGameError } from './load-game-errors';
|
|
4
|
+
/**
|
|
5
|
+
* The shape of a module that the resolver returns.
|
|
6
|
+
*/
|
|
7
|
+
interface GameEntryModule {
|
|
8
|
+
readonly default?: unknown;
|
|
9
|
+
readonly [key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Resolver function signature: receives a slug (the game identifier),
|
|
13
|
+
* returns a Promise that resolves to a module object.
|
|
14
|
+
*
|
|
15
|
+
* The host (apps/preview/) injects this as a dynamic import proxy,
|
|
16
|
+
* e.g. `(slug) => import(\`../../templates/\${slug}/src/main.ts\`)`.
|
|
17
|
+
* loadGame does not hardcode any import path.
|
|
18
|
+
*/
|
|
19
|
+
export type GamePluginResolver = (slug: string) => Promise<GameEntryModule>;
|
|
20
|
+
/**
|
|
21
|
+
* Load and validate a game template module.
|
|
22
|
+
*
|
|
23
|
+
* Returns `Result.ok<Plugin>` when the resolver returns a module
|
|
24
|
+
* whose default export is a native Cordis plugin. Returns `Result.err<LoadGameError>`
|
|
25
|
+
* with one of 3 error codes on failure.
|
|
26
|
+
*
|
|
27
|
+
* @param slug - The game identifier (e.g. 'game-default'). Passed
|
|
28
|
+
* through to the resolver and carried in the 'module-not-found' detail.
|
|
29
|
+
* @param resolver - Async function that imports/fetches the game module.
|
|
30
|
+
* The host owns all path resolution logic.
|
|
31
|
+
*/
|
|
32
|
+
export declare function loadGame(slug: string, resolver: GamePluginResolver): Promise<Result<Plugin, LoadGameError>>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=load-game.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-game.d.ts","sourceRoot":"","sources":["../src/load-game.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAA6C,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE9F;;GAEG;AACH,UAAU,eAAe;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAY5E;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CA4CxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-factories.d.ts","sourceRoot":"","sources":["../src/plugin-factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Plugin } from '@forgeax/engine-plugin';
|
|
2
|
+
import type { RenderError, Renderer, RenderFeature, RenderResult } from '@forgeax/engine-render';
|
|
3
|
+
import type { RendererFeatureAssemblyHost } from '@forgeax/engine-render/internal/construct-renderer';
|
|
4
|
+
export interface RenderFeatureHost {
|
|
5
|
+
installFeature(feature: RenderFeature<unknown>): Promise<RenderResult<RenderFeatureLease, RenderError>>;
|
|
6
|
+
}
|
|
7
|
+
export interface RenderFeatureLease {
|
|
8
|
+
release(): Promise<RenderResult<void, RenderError>>;
|
|
9
|
+
}
|
|
10
|
+
export declare function createRenderFeatureHost(host: RendererFeatureAssemblyHost): RenderFeatureHost;
|
|
11
|
+
declare module '@forgeax/engine-plugin' {
|
|
12
|
+
interface EngineContextServices {
|
|
13
|
+
renderer?: Renderer;
|
|
14
|
+
renderFeatureHost?: RenderFeatureHost;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** Provide the renderer without transferring its host-owned lifetime. */
|
|
18
|
+
export declare function rendererPlugin(renderer: Renderer): Plugin;
|
|
19
|
+
/** Provide an App/Worker-owned Renderer and release it after dependent Fibers. */
|
|
20
|
+
export declare function ownedRendererPlugin(renderer: Renderer): Plugin;
|
|
21
|
+
/** Provide the App-owned late RenderFeature assembly capability. */
|
|
22
|
+
export declare function renderFeatureHostPlugin(host: RenderFeatureHost): Plugin;
|
|
23
|
+
/** Install a producer feature under the same Cordis Fiber that owns the caller. */
|
|
24
|
+
export declare function renderFeaturePlugin(feature: RenderFeature<unknown>): Plugin;
|
|
25
|
+
//# sourceMappingURL=renderer-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer-plugin.d.ts","sourceRoot":"","sources":["../src/renderer-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AAEtG,MAAM,WAAW,iBAAiB;IAChC,cAAc,CACZ,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;CACrD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,GAAG,iBAAiB,CAkB5F;AAED,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,qBAAqB;QAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;CACF;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAQzD;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAS9D;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAQvE;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM,CAmB3E"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { type ArtifactRef, type PreviewArtifactManifest, type SnapshotRef, type ToolTiming } from '@forgeax/engine-tool-runtime';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
3
|
+
import type { App, BundlerOptions, CreateAppOptions } from '../types';
|
|
4
|
+
import { type ToolPreviewAction, type ToolPreviewRecipe, type ToolPreviewTrace } from './recipe';
|
|
5
|
+
export type ToolPreviewResourceKind = 'material' | 'mesh' | 'texture' | 'vfx';
|
|
6
|
+
export interface ToolPreviewResourceRequest {
|
|
7
|
+
readonly kind: ToolPreviewResourceKind;
|
|
8
|
+
readonly guid: string;
|
|
9
|
+
readonly size?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ToolPreviewResourceFacts {
|
|
12
|
+
readonly kind: ToolPreviewResourceKind;
|
|
13
|
+
readonly guid: string;
|
|
14
|
+
readonly asset: unknown;
|
|
15
|
+
readonly digest?: string;
|
|
16
|
+
readonly ownerFacts?: Readonly<Record<string, string | number | boolean>>;
|
|
17
|
+
readonly observation?: Readonly<Record<string, string | number | boolean | readonly number[]>>;
|
|
18
|
+
}
|
|
19
|
+
export interface ToolPreviewHostOptions {
|
|
20
|
+
readonly runId?: string;
|
|
21
|
+
readonly recipe: ToolPreviewRecipe;
|
|
22
|
+
readonly snapshot: SnapshotRef;
|
|
23
|
+
readonly canvas?: HTMLCanvasElement;
|
|
24
|
+
readonly root?: Document | HTMLElement;
|
|
25
|
+
readonly app?: Omit<CreateAppOptions, 'rhi'>;
|
|
26
|
+
readonly bundler?: BundlerOptions;
|
|
27
|
+
readonly resource?: ToolPreviewResourceRequest;
|
|
28
|
+
readonly prepare?: (app: App) => void | ToolPreviewResourceFacts | Promise<void | ToolPreviewResourceFacts>;
|
|
29
|
+
/** Refresh producer-owned resource facts after the bounded real frame run. */
|
|
30
|
+
readonly collectResourceFacts?: (app: App, current: ToolPreviewResourceFacts | undefined) => void | ToolPreviewResourceFacts | Promise<void | ToolPreviewResourceFacts>;
|
|
31
|
+
/** Dispose producer-owned preview attachments before the App. */
|
|
32
|
+
readonly onDispose?: (app: App) => void | Promise<void>;
|
|
33
|
+
readonly executeAction?: (action: ToolPreviewAction, app: App) => boolean | Promise<boolean>;
|
|
34
|
+
}
|
|
35
|
+
export interface ToolPreviewHostError {
|
|
36
|
+
readonly code: 'tool-preview-capability-unavailable' | 'tool-preview-bootstrap-failed';
|
|
37
|
+
readonly expected: string;
|
|
38
|
+
readonly hint: string;
|
|
39
|
+
readonly detail: {
|
|
40
|
+
readonly phase: string;
|
|
41
|
+
readonly cause?: unknown;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface ToolPreviewHost {
|
|
45
|
+
readonly app: App;
|
|
46
|
+
readonly recipe: ToolPreviewRecipe;
|
|
47
|
+
readonly trace: ToolPreviewTrace;
|
|
48
|
+
capture(): Promise<Result<ToolPreviewCaptureResult, ToolPreviewHostError>>;
|
|
49
|
+
run(): Promise<Result<ToolPreviewRunResult, ToolPreviewHostError>>;
|
|
50
|
+
dispose(): Promise<Result<void, ToolPreviewHostError>>;
|
|
51
|
+
}
|
|
52
|
+
export interface ToolPreviewCaptureResult {
|
|
53
|
+
readonly recipe: ToolPreviewRecipe;
|
|
54
|
+
readonly snapshot: SnapshotRef;
|
|
55
|
+
readonly trace: ToolPreviewTrace;
|
|
56
|
+
readonly captureId: string;
|
|
57
|
+
readonly actionTrace: readonly ToolPreviewAction[];
|
|
58
|
+
readonly tape: {
|
|
59
|
+
readonly runId: string;
|
|
60
|
+
readonly jsonUri: string;
|
|
61
|
+
readonly blobUri: string;
|
|
62
|
+
readonly byteLength: number;
|
|
63
|
+
};
|
|
64
|
+
readonly profile: {
|
|
65
|
+
readonly captureId: string;
|
|
66
|
+
readonly uri: string;
|
|
67
|
+
};
|
|
68
|
+
readonly capturePng: {
|
|
69
|
+
readonly uri: string;
|
|
70
|
+
readonly width: number;
|
|
71
|
+
readonly height: number;
|
|
72
|
+
};
|
|
73
|
+
readonly executeDurationMs: number;
|
|
74
|
+
readonly captureDurationMs: number;
|
|
75
|
+
readonly browserJsHeapBytes?: number;
|
|
76
|
+
readonly appErrors: readonly unknown[];
|
|
77
|
+
readonly resource?: ToolPreviewResourceFacts;
|
|
78
|
+
}
|
|
79
|
+
export interface ToolPreviewRunResult {
|
|
80
|
+
readonly trace: ToolPreviewTrace;
|
|
81
|
+
readonly captureId: string;
|
|
82
|
+
readonly drawCalls: number;
|
|
83
|
+
readonly committedDrawIndex: number;
|
|
84
|
+
readonly nonBlackPixels: number;
|
|
85
|
+
readonly actionTrace: readonly ToolPreviewAction[];
|
|
86
|
+
readonly tape: {
|
|
87
|
+
readonly runId: string;
|
|
88
|
+
readonly jsonUri: string;
|
|
89
|
+
readonly blobUri: string;
|
|
90
|
+
readonly byteLength: number;
|
|
91
|
+
};
|
|
92
|
+
readonly profile: {
|
|
93
|
+
readonly captureId: string;
|
|
94
|
+
readonly uri: string;
|
|
95
|
+
};
|
|
96
|
+
readonly capturePng: {
|
|
97
|
+
readonly uri: string;
|
|
98
|
+
readonly width: number;
|
|
99
|
+
readonly height: number;
|
|
100
|
+
};
|
|
101
|
+
readonly png: {
|
|
102
|
+
readonly uri: string;
|
|
103
|
+
readonly width: number;
|
|
104
|
+
readonly height: number;
|
|
105
|
+
};
|
|
106
|
+
readonly manifest: PreviewArtifactManifest;
|
|
107
|
+
readonly artifacts: readonly ArtifactRef[];
|
|
108
|
+
readonly operationTiming: ToolTiming;
|
|
109
|
+
readonly resource?: ToolPreviewResourceFacts;
|
|
110
|
+
}
|
|
111
|
+
export declare function replayToolPreviewCapture(capture: ToolPreviewCaptureResult): Promise<Result<ToolPreviewRunResult, ToolPreviewHostError>>;
|
|
112
|
+
export declare function createToolPreviewHost(options: ToolPreviewHostOptions): Promise<Result<ToolPreviewHost, ToolPreviewHostError>>;
|
|
113
|
+
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/tool-preview/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ArtifactRef, type PreviewArtifactManifest, type PreviewArtifactRole, type SnapshotRef, type ToolRuntimeError } from '@forgeax/engine-tool-runtime';
|
|
2
|
+
import { type Result } from '@forgeax/engine-types';
|
|
3
|
+
import type { ToolPreviewTrace } from './recipe';
|
|
4
|
+
export interface ToolPreviewEvidence {
|
|
5
|
+
readonly trace: ToolPreviewTrace;
|
|
6
|
+
readonly artifacts: readonly ArtifactRef[];
|
|
7
|
+
readonly manifest?: PreviewArtifactManifest;
|
|
8
|
+
}
|
|
9
|
+
export declare function joinToolPreviewEvidence(input: {
|
|
10
|
+
readonly trace: ToolPreviewTrace;
|
|
11
|
+
readonly manifest: PreviewArtifactManifest;
|
|
12
|
+
readonly required: readonly PreviewArtifactRole[];
|
|
13
|
+
}): Result<ToolPreviewEvidence, ToolRuntimeError>;
|
|
14
|
+
export declare function createToolPreviewEvidence(trace: ToolPreviewTrace, artifacts: readonly ArtifactRef[]): ToolPreviewEvidence;
|
|
15
|
+
export declare function joinResourcePreviewEvidence(input: {
|
|
16
|
+
readonly snapshot: SnapshotRef;
|
|
17
|
+
readonly manifest: PreviewArtifactManifest;
|
|
18
|
+
readonly requiredRoles: readonly PreviewArtifactRole[];
|
|
19
|
+
}): Result<PreviewArtifactManifest, ToolRuntimeError>;
|
|
20
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/tool-preview/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CAC7C;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACnD,GAAG,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAgBhD;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,SAAS,WAAW,EAAE,GAChC,mBAAmB,CAErB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACxD,GAAG,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAMpD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ToolPreviewCameraFrame {
|
|
2
|
+
readonly center: readonly [number, number, number];
|
|
3
|
+
readonly radius: number;
|
|
4
|
+
readonly distance: number;
|
|
5
|
+
readonly near: number;
|
|
6
|
+
readonly far: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function fitToolPreviewCameraToAabb(aabb: readonly [number, number, number, number, number, number], options: {
|
|
9
|
+
readonly aspect: number;
|
|
10
|
+
readonly fov: number;
|
|
11
|
+
readonly padding?: number;
|
|
12
|
+
}): ToolPreviewCameraFrame;
|
|
13
|
+
//# sourceMappingURL=framing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../../src/tool-preview/framing.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC/D,OAAO,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,sBAAsB,CAwCxB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type JsonValue } from '@forgeax/engine-tool-runtime';
|
|
2
|
+
export type ToolPreviewPresentation = 'hidden' | 'visible';
|
|
3
|
+
export interface ToolPreviewAction {
|
|
4
|
+
readonly frame: number;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly value?: JsonValue;
|
|
7
|
+
}
|
|
8
|
+
export interface ToolPreviewRecipe {
|
|
9
|
+
readonly backend: 'webgpu';
|
|
10
|
+
readonly presentation: ToolPreviewPresentation;
|
|
11
|
+
readonly viewport: {
|
|
12
|
+
readonly width: number;
|
|
13
|
+
readonly height: number;
|
|
14
|
+
};
|
|
15
|
+
readonly actions: readonly ToolPreviewAction[];
|
|
16
|
+
readonly deltaSeconds: number;
|
|
17
|
+
readonly frames: number;
|
|
18
|
+
}
|
|
19
|
+
export interface ToolPreviewRecipeOptions {
|
|
20
|
+
readonly backend?: 'webgpu' | 'rhi-null' | string;
|
|
21
|
+
readonly presentation?: ToolPreviewPresentation;
|
|
22
|
+
readonly viewport?: {
|
|
23
|
+
readonly width: number;
|
|
24
|
+
readonly height: number;
|
|
25
|
+
};
|
|
26
|
+
readonly actions?: readonly ToolPreviewAction[];
|
|
27
|
+
readonly deltaSeconds?: number;
|
|
28
|
+
readonly frames?: number;
|
|
29
|
+
}
|
|
30
|
+
export type ToolPreviewTraceEvent = 'canvas-created' | 'rhi-debug-armed' | 'renderer-created' | 'world-updated' | 'draw-submitted' | 'validation-complete';
|
|
31
|
+
export interface ToolPreviewTrace {
|
|
32
|
+
readonly events: readonly ToolPreviewTraceEvent[];
|
|
33
|
+
readonly backend: 'webgpu' | string;
|
|
34
|
+
readonly adapter: string;
|
|
35
|
+
readonly presentation: ToolPreviewPresentation;
|
|
36
|
+
}
|
|
37
|
+
export type ToolPreviewTraceValidation = {
|
|
38
|
+
readonly ok: true;
|
|
39
|
+
readonly value: ToolPreviewTrace;
|
|
40
|
+
} | {
|
|
41
|
+
readonly ok: false;
|
|
42
|
+
readonly error: {
|
|
43
|
+
readonly code: 'tool-preview-invalid-trace';
|
|
44
|
+
readonly expected: string;
|
|
45
|
+
readonly hint: string;
|
|
46
|
+
readonly detail: {
|
|
47
|
+
readonly missing: string;
|
|
48
|
+
readonly index: number;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export declare function createToolPreviewRecipe(options: ToolPreviewRecipeOptions): ToolPreviewRecipe;
|
|
53
|
+
export declare function validateToolPreviewTrace(trace: ToolPreviewTrace): ToolPreviewTraceValidation;
|
|
54
|
+
//# sourceMappingURL=recipe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/tool-preview/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEnF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;CAChD;AAED,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GACvD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;QAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KACvE,CAAC;CACH,CAAC;AAEN,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAyC5F;AAWD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,0BAA0B,CA6B5F"}
|