create-aura3d 3.0.0 → 4.0.0
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/README.md +1 -1
- package/dist/agent-skills.d.ts +38 -0
- package/dist/agent-skills.d.ts.map +1 -0
- package/dist/agent-skills.js +103 -0
- package/dist/agent-skills.js.map +1 -0
- package/dist/cli.js +32 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +32 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -10
- package/dist/index.js.map +1 -1
- package/dist/showcase-spec-artifacts.d.ts +1 -1
- package/dist/showcase-spec-game-geometry-extractor.js +8 -11
- package/dist/showcase-spec-game-geometry-extractor.js.map +1 -1
- package/dist/template-hdri.d.ts +12 -0
- package/dist/template-hdri.d.ts.map +1 -0
- package/dist/template-hdri.js +49 -0
- package/dist/template-hdri.js.map +1 -0
- package/hdri/ATTRIBUTION.md +8 -0
- package/hdri/autumn_field_puresky_1k.hdr +0 -0
- package/hdri/kloppenheim_06_puresky_1k.hdr +0 -0
- package/hdri/night-2k.hdr +0 -0
- package/hdri/studio_small_08_1k.hdr +0 -0
- package/package.json +14 -10
- package/skills/agent-files/AGENTS.md +3 -0
- package/skills/aura3d-animation-studio/SKILL.md +153 -0
- package/skills/aura3d-animation-studio/references/shot-looks.md +26 -0
- package/skills/aura3d-art-direction/SKILL.md +84 -0
- package/skills/aura3d-art-direction/references/failure-gallery.md +64 -0
- package/skills/aura3d-art-direction/references/framing-and-shots.md +45 -0
- package/skills/aura3d-art-direction/references/look-recipes.md +32 -0
- package/skills/aura3d-art-direction/references/quality-bar.md +103 -0
- package/skills/aura3d-art-direction/references/reference-frames.md +82 -0
- package/skills/aura3d-assets/SKILL.md +132 -0
- package/skills/aura3d-assets/references/preview-under-look.md +26 -0
- package/skills/aura3d-browser-game/SKILL.md +127 -0
- package/skills/aura3d-browser-game/references/genre-looks.md +52 -0
- package/skills/aura3d-character-animation/SKILL.md +129 -0
- package/skills/aura3d-character-animation/references/stage-and-lighting.md +31 -0
- package/skills/aura3d-core/SKILL.md +121 -0
- package/skills/aura3d-core/references/boundaries.md +91 -0
- package/skills/aura3d-evidence-review/SKILL.md +106 -0
- package/skills/aura3d-game-art/SKILL.md +118 -0
- package/skills/aura3d-game-art/references/sheet-check.mjs +58 -0
- package/skills/aura3d-game-art/references/sprite-palettes.md +25 -0
- package/skills/aura3d-materials-environments/SKILL.md +139 -0
- package/skills/aura3d-performance/SKILL.md +97 -0
- package/skills/aura3d-retexture/SKILL.md +115 -0
- package/skills/aura3d-retexture/references/geometry-hash.mjs +89 -0
- package/skills/aura3d-scene-authoring/SKILL.md +132 -0
- package/skills/aura3d-scene-authoring/references/look-by-family.md +28 -0
- package/skills/aura3d-threejs-migration/SKILL.md +125 -0
- package/skills/aura3d-threejs-migration/references/look-mapping.md +27 -0
- package/skills/llms.txt +117 -0
- package/skills/manifest.json +163 -0
- package/skills/meshy-cli/SKILL.md +133 -0
- package/templates/animation-channel/.claude/CLAUDE.md +3 -0
- package/templates/animation-channel/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/animation-channel/AGENTS.md +3 -0
- package/templates/animation-channel/package.json +4 -3
- package/templates/animation-channel/src/main.ts +5 -6
- package/templates/animation-channel/src/render-plan.ts +5 -3
- package/templates/animation-channel/tests/look-floor.ts +270 -0
- package/templates/animation-channel/tests/route-health.spec.ts +13 -0
- package/templates/animation-channel/tests/screenshot.spec.ts +10 -5
- package/templates/animation-channel/vite.config.ts +7 -0
- package/templates/animation-studio/.claude/CLAUDE.md +3 -0
- package/templates/animation-studio/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/animation-studio/AGENTS.md +2 -70
- package/templates/animation-studio/package.json +5 -4
- package/templates/animation-studio/public/aura-assets/luma.thumb.svg +1 -1
- package/templates/animation-studio/public/aura-assets/miko.thumb.svg +1 -1
- package/templates/{falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg → animation-studio/public/aura-assets/moonGarden.thumb.svg} +1 -1
- package/templates/animation-studio/scripts/build-clip-library.ts +6 -5
- package/templates/animation-studio/scripts/resolve-asset.ts +7 -4
- package/templates/animation-studio/src/asset-contract.ts +19 -0
- package/templates/animation-studio/src/aura-assets.ts +651 -54
- package/templates/animation-studio/src/scene-player.ts +6 -6
- package/templates/animation-studio/src/set-templates.ts +13 -9
- package/templates/animation-studio/tests/look-floor.ts +270 -0
- package/templates/animation-studio/tests/route-health.spec.ts +2 -2
- package/templates/animation-studio/tests/screenshot.spec.ts +18 -10
- package/templates/animation-studio/vite.config.ts +2 -0
- package/templates/architecture-interior/.claude/CLAUDE.md +3 -0
- package/templates/architecture-interior/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/architecture-interior/AGENTS.md +3 -0
- package/templates/architecture-interior/README.md +16 -0
- package/templates/architecture-interior/aura.assets.json +24 -0
- package/templates/architecture-interior/package.json +24 -0
- package/templates/architecture-interior/public/aura-assets/kenneyModularDungeonRoomSmall.a7e74a5f.glb +0 -0
- package/templates/architecture-interior/src/aura-assets.ts +16 -0
- package/templates/architecture-interior/src/main.ts +23 -0
- package/templates/architecture-interior/tests/look-floor.ts +270 -0
- package/templates/{three-compat-architecture-interior → architecture-interior}/tests/route-health.spec.ts +3 -3
- package/templates/architecture-interior/tests/screenshot.spec.ts +21 -0
- package/templates/architecture-interior/vite.config.ts +7 -0
- package/templates/arena-shooter/.claude/CLAUDE.md +3 -0
- package/templates/arena-shooter/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/arena-shooter/AGENTS.md +3 -0
- package/templates/arena-shooter/README.md +45 -0
- package/templates/arena-shooter/aura.assets.json +62 -0
- package/templates/arena-shooter/index.html +32 -0
- package/templates/arena-shooter/package.json +23 -0
- package/templates/arena-shooter/playwright.config.ts +15 -0
- package/templates/arena-shooter/public/aura-assets/craft_miner.de323205.glb +0 -0
- package/templates/arena-shooter/public/aura-assets/craft_racer.bce8cb3d.glb +0 -0
- package/templates/arena-shooter/public/aura-assets/meteor_detailed.f30379ab.glb +0 -0
- package/templates/arena-shooter/src/aura-assets.ts +56 -0
- package/templates/arena-shooter/src/main.ts +616 -0
- package/templates/arena-shooter/tests/look-floor.ts +270 -0
- package/templates/arena-shooter/tests/playable.spec.ts +56 -0
- package/templates/arena-shooter/tests/route-health.spec.ts +87 -0
- package/templates/arena-shooter/tests/screenshot.spec.ts +22 -0
- package/templates/arena-shooter/tsconfig.json +15 -0
- package/templates/arena-shooter/vite.config.ts +7 -0
- package/templates/asset-inspector/.claude/CLAUDE.md +3 -0
- package/templates/asset-inspector/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/asset-inspector/AGENTS.md +3 -0
- package/templates/asset-inspector/README.md +13 -0
- package/templates/asset-inspector/aura.assets.json +24 -0
- package/templates/{three-compat-custom-threejs-migration → asset-inspector}/package.json +6 -4
- package/templates/asset-inspector/public/aura-assets/kenneyCarKitSedanSports.2889c428.glb +0 -0
- package/templates/asset-inspector/src/aura-assets.ts +16 -0
- package/templates/asset-inspector/src/main.ts +23 -0
- package/templates/asset-inspector/tests/look-floor.ts +270 -0
- package/templates/{three-compat-character-viewer → asset-inspector}/tests/route-health.spec.ts +3 -3
- package/templates/asset-inspector/tests/screenshot.spec.ts +21 -0
- package/templates/asset-inspector/vite.config.ts +7 -0
- package/templates/character-controller/.claude/CLAUDE.md +3 -0
- package/templates/character-controller/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/character-controller/AGENTS.md +3 -0
- package/templates/character-controller/README.md +7 -1
- package/templates/character-controller/aura.assets.json +29 -22
- package/templates/character-controller/index.html +4 -5
- package/templates/character-controller/package.json +6 -5
- package/templates/character-controller/playwright.config.ts +1 -0
- package/templates/character-controller/public/aura-assets/auraclash-player-rig.glb +0 -0
- package/templates/character-controller/src/aura-assets.ts +25 -7
- package/templates/character-controller/src/main.ts +190 -47
- package/templates/character-controller/tests/certified-rig.spec.ts +2 -2
- package/templates/character-controller/tests/look-floor.ts +270 -0
- package/templates/character-controller/tests/route-health.spec.ts +49 -4
- package/templates/character-controller/tests/screenshot.spec.ts +17 -5
- package/templates/character-controller/vite.config.ts +7 -0
- package/templates/character-viewer/.claude/CLAUDE.md +3 -0
- package/templates/character-viewer/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/character-viewer/AGENTS.md +3 -0
- package/templates/character-viewer/README.md +13 -0
- package/templates/character-viewer/aura.assets.json +24 -0
- package/templates/{three-compat-asset-inspector → character-viewer}/package.json +6 -4
- package/templates/character-viewer/public/aura-assets/kenneyMiniForestCharacterArcher.0fd0f92e.glb +0 -0
- package/templates/character-viewer/src/aura-assets.ts +16 -0
- package/templates/character-viewer/src/main.ts +21 -0
- package/templates/character-viewer/tests/look-floor.ts +270 -0
- package/templates/{three-compat-custom-threejs-migration → character-viewer}/tests/route-health.spec.ts +3 -3
- package/templates/character-viewer/tests/screenshot.spec.ts +21 -0
- package/templates/character-viewer/vite.config.ts +7 -0
- package/templates/cinematic-scene/.claude/CLAUDE.md +3 -0
- package/templates/cinematic-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/cinematic-scene/AGENTS.md +3 -0
- package/templates/cinematic-scene/README.md +11 -2
- package/templates/cinematic-scene/package.json +4 -3
- package/templates/cinematic-scene/src/main.ts +46 -11
- package/templates/cinematic-scene/tests/look-floor.ts +270 -0
- package/templates/cinematic-scene/tests/route-health.spec.ts +31 -3
- package/templates/cinematic-scene/tests/screenshot.spec.ts +34 -45
- package/templates/cinematic-scene/vite.config.ts +7 -0
- package/templates/custom-scene/.claude/CLAUDE.md +3 -0
- package/templates/custom-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/custom-scene/AGENTS.md +3 -0
- package/templates/custom-scene/README.md +13 -0
- package/templates/custom-scene/aura.assets.json +24 -0
- package/templates/{three-compat-character-viewer → custom-scene}/package.json +6 -4
- package/templates/custom-scene/public/aura-assets/kenneyPirateKitShipMedium.279ea019.glb +0 -0
- package/templates/custom-scene/src/aura-assets.ts +16 -0
- package/templates/custom-scene/src/main.ts +23 -0
- package/templates/custom-scene/tests/look-floor.ts +270 -0
- package/templates/{three-compat-asset-inspector → custom-scene}/tests/route-health.spec.ts +3 -3
- package/templates/custom-scene/tests/screenshot.spec.ts +21 -0
- package/templates/custom-scene/vite.config.ts +7 -0
- package/templates/episode-builder/.claude/CLAUDE.md +3 -0
- package/templates/episode-builder/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/episode-builder/AGENTS.md +3 -0
- package/templates/episode-builder/package.json +4 -3
- package/templates/episode-builder/src/main.ts +5 -3
- package/templates/episode-builder/src/render-plan.ts +5 -3
- package/templates/episode-builder/tests/look-floor.ts +270 -0
- package/templates/episode-builder/tests/route-health.spec.ts +11 -0
- package/templates/episode-builder/tests/screenshot.spec.ts +10 -4
- package/templates/episode-builder/vite.config.ts +7 -0
- package/templates/falling-blocks-starter/.claude/CLAUDE.md +3 -0
- package/templates/falling-blocks-starter/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/falling-blocks-starter/AGENTS.md +3 -0
- package/templates/falling-blocks-starter/README.md +10 -1
- package/templates/falling-blocks-starter/aura.assets.json +40 -23
- package/templates/falling-blocks-starter/package.json +4 -3
- package/templates/falling-blocks-starter/public/aura-assets/quaternius-cube-crate.glb +0 -0
- package/templates/falling-blocks-starter/public/aura-assets/quaternius-wall-modular.glb +0 -0
- package/templates/falling-blocks-starter/src/aura-assets.ts +33 -10
- package/templates/falling-blocks-starter/src/main.ts +317 -96
- package/templates/falling-blocks-starter/tests/look-floor.ts +270 -0
- package/templates/falling-blocks-starter/tests/playable.spec.ts +51 -18
- package/templates/falling-blocks-starter/tests/route-health.spec.ts +17 -7
- package/templates/falling-blocks-starter/tests/screenshot.spec.ts +21 -0
- package/templates/falling-blocks-starter/vite.config.ts +7 -0
- package/templates/fighting-game/.claude/CLAUDE.md +3 -0
- package/templates/fighting-game/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/fighting-game/AGENTS.md +3 -0
- package/templates/fighting-game/README.md +2 -0
- package/templates/fighting-game/aura.assets.json +56 -46
- package/templates/fighting-game/package.json +5 -3
- package/templates/fighting-game/public/aura-assets/auraclash-player-rig.glb +0 -0
- package/templates/fighting-game/public/aura-assets/auraclash-rival-rig.glb +0 -0
- package/templates/fighting-game/src/aura-assets.ts +54 -20
- package/templates/fighting-game/src/game/fighters.ts +57 -12
- package/templates/fighting-game/src/main.ts +135 -53
- package/templates/fighting-game/tests/certified-rig.spec.ts +1 -1
- package/templates/fighting-game/tests/gameplay-smoke.spec.ts +25 -33
- package/templates/fighting-game/tests/look-floor.ts +270 -0
- package/templates/fighting-game/tests/route-health.spec.ts +23 -4
- package/templates/fighting-game/tests/screenshot.spec.ts +10 -4
- package/templates/fighting-game/vite.config.ts +7 -0
- package/templates/large-scene/.claude/CLAUDE.md +3 -0
- package/templates/large-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/large-scene/AGENTS.md +3 -0
- package/templates/large-scene/README.md +13 -0
- package/templates/large-scene/aura.assets.json +40 -0
- package/templates/{three-compat-architecture-interior → large-scene}/package.json +6 -4
- package/templates/large-scene/public/aura-assets/kenneyMiniForestRocksHigh.226728a0.glb +0 -0
- package/templates/large-scene/public/aura-assets/kenneyMiniForestTree.0075d505.glb +0 -0
- package/templates/large-scene/src/aura-assets.ts +28 -0
- package/templates/large-scene/src/main.ts +43 -0
- package/templates/large-scene/tests/look-floor.ts +270 -0
- package/templates/large-scene/tests/route-health.spec.ts +16 -0
- package/templates/large-scene/tests/screenshot.spec.ts +21 -0
- package/templates/large-scene/vite.config.ts +7 -0
- package/templates/material-authoring/.claude/CLAUDE.md +3 -0
- package/templates/material-authoring/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/material-authoring/AGENTS.md +3 -0
- package/templates/material-authoring/README.md +15 -0
- package/templates/material-authoring/aura.assets.json +24 -0
- package/templates/material-authoring/package.json +24 -0
- package/templates/material-authoring/public/aura-assets/kenneyCarKitSedanSports.2889c428.glb +0 -0
- package/templates/material-authoring/src/aura-assets.ts +16 -0
- package/templates/material-authoring/src/main.ts +78 -0
- package/templates/material-authoring/tests/look-floor.ts +270 -0
- package/templates/material-authoring/tests/route-health.spec.ts +16 -0
- package/templates/material-authoring/tests/screenshot.spec.ts +21 -0
- package/templates/material-authoring/vite.config.ts +7 -0
- package/templates/mini-game/.claude/CLAUDE.md +3 -0
- package/templates/mini-game/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/mini-game/AGENTS.md +3 -0
- package/templates/mini-game/README.md +9 -6
- package/templates/mini-game/aura.assets.json +177 -36
- package/templates/mini-game/package.json +4 -2
- package/templates/mini-game/public/aura-assets/kaykit-barbarian.glb +0 -0
- package/templates/mini-game/public/aura-assets/kenneyPlatformerKitKey.2e930961.glb +0 -0
- package/templates/mini-game/public/aura-assets/kenneyPlatformerKitStar.a102a1b9.glb +0 -0
- package/templates/mini-game/public/aura-assets/quaternius-crate.glb +0 -0
- package/templates/mini-game/public/aura-assets/quaternius-cube-crate.glb +0 -0
- package/templates/mini-game/src/aura-assets.ts +140 -32
- package/templates/mini-game/src/main.ts +204 -71
- package/templates/mini-game/tests/certified-rig.spec.ts +2 -2
- package/templates/mini-game/tests/look-floor.ts +270 -0
- package/templates/mini-game/tests/playable.spec.ts +23 -2
- package/templates/mini-game/tests/route-health.spec.ts +2 -2
- package/templates/mini-game/tests/screenshot.spec.ts +44 -53
- package/templates/mini-game/vite.config.ts +7 -0
- package/templates/postprocess-scene/.claude/CLAUDE.md +3 -0
- package/templates/postprocess-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/postprocess-scene/AGENTS.md +3 -0
- package/templates/postprocess-scene/README.md +17 -0
- package/templates/postprocess-scene/aura.assets.json +38 -0
- package/templates/postprocess-scene/package.json +24 -0
- package/templates/postprocess-scene/public/aura-assets/showcaseLuma.ef389217.glb +0 -0
- package/templates/postprocess-scene/public/aura-assets/showcaseMiko.fcdc2b75.glb +0 -0
- package/templates/postprocess-scene/src/aura-assets.ts +28 -0
- package/templates/postprocess-scene/src/main.ts +29 -0
- package/templates/postprocess-scene/tests/look-floor.ts +270 -0
- package/templates/postprocess-scene/tests/route-health.spec.ts +16 -0
- package/templates/postprocess-scene/tests/screenshot.spec.ts +21 -0
- package/templates/postprocess-scene/vite.config.ts +7 -0
- package/templates/premium-product-viewer/.claude/CLAUDE.md +3 -0
- package/templates/premium-product-viewer/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/premium-product-viewer/AGENTS.md +3 -0
- package/templates/premium-product-viewer/README.md +18 -0
- package/templates/premium-product-viewer/aura.assets.json +24 -0
- package/templates/premium-product-viewer/package.json +24 -0
- package/templates/premium-product-viewer/public/aura-assets/khronosToyCar.01a60862.glb +0 -0
- package/templates/premium-product-viewer/src/aura-assets.ts +16 -0
- package/templates/premium-product-viewer/src/main.ts +33 -0
- package/templates/premium-product-viewer/tests/look-floor.ts +270 -0
- package/templates/premium-product-viewer/tests/route-health.spec.ts +16 -0
- package/templates/premium-product-viewer/tests/screenshot.spec.ts +21 -0
- package/templates/premium-product-viewer/vite.config.ts +7 -0
- package/templates/product-viewer/.claude/CLAUDE.md +3 -0
- package/templates/product-viewer/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/product-viewer/AGENTS.md +3 -0
- package/templates/product-viewer/README.md +10 -8
- package/templates/product-viewer/package.json +4 -2
- package/templates/product-viewer/src/aura-assets.ts +1 -1
- package/templates/product-viewer/src/main.ts +78 -19
- package/templates/product-viewer/tests/look-floor.ts +270 -0
- package/templates/product-viewer/tests/route-health.spec.ts +19 -1
- package/templates/product-viewer/tests/screenshot.spec.ts +35 -41
- package/templates/product-viewer/vite.config.ts +7 -0
- package/templates/prompt-animation-channel/.claude/CLAUDE.md +3 -0
- package/templates/prompt-animation-channel/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/prompt-animation-channel/AGENTS.md +3 -0
- package/templates/prompt-animation-channel/package.json +4 -3
- package/templates/prompt-animation-channel/src/main.ts +5 -3
- package/templates/prompt-animation-channel/src/render-plan.ts +5 -3
- package/templates/prompt-animation-channel/tests/look-floor.ts +270 -0
- package/templates/prompt-animation-channel/tests/route-health.spec.ts +12 -1
- package/templates/prompt-animation-channel/tests/screenshot.spec.ts +10 -4
- package/templates/prompt-animation-channel/tests/storyboard-playback.spec.ts +1 -1
- package/templates/prompt-animation-channel/vite.config.ts +7 -0
- package/templates/racing-starter/.claude/CLAUDE.md +3 -0
- package/templates/racing-starter/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/racing-starter/AGENTS.md +3 -0
- package/templates/racing-starter/README.md +8 -6
- package/templates/racing-starter/package.json +4 -3
- package/templates/racing-starter/src/main.ts +169 -123
- package/templates/racing-starter/tests/geometry-certification.json +34 -0
- package/templates/racing-starter/tests/look-floor.ts +270 -0
- package/templates/racing-starter/tests/playable.spec.ts +63 -80
- package/templates/racing-starter/tests/route-health.spec.ts +14 -12
- package/templates/racing-starter/tests/screenshot.spec.ts +21 -0
- package/templates/racing-starter/vite.config.ts +7 -0
- package/templates/character-controller/public/aura-assets/showcaseWalkAnimatedGirl.93872fc2.glb +0 -0
- package/templates/character-controller/public/aura-assets/showcaseWalkAnimatedGirl.thumb.svg +0 -1
- package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.679d52fe.glb +0 -0
- package/templates/fighting-game/public/aura-assets/showcaseRunnerRobot.252b3a16.glb +0 -0
- package/templates/fighting-game/public/aura-assets/showcaseRunnerRobot.thumb.svg +0 -1
- package/templates/fighting-game/public/aura-assets/showcaseWalkAnimatedGirl.93872fc2.glb +0 -0
- package/templates/fighting-game/public/aura-assets/showcaseWalkAnimatedGirl.thumb.svg +0 -1
- package/templates/mini-game/public/aura-assets/showcaseKenneyOobiPlatformerHero.3f821141.glb +0 -0
- package/templates/mini-game/public/aura-assets/showcaseKenneyOobiPlatformerHero.thumb.svg +0 -1
- package/templates/three-compat-architecture-interior/aura.assets.json +0 -7
- package/templates/three-compat-architecture-interior/src/aura-assets.ts +0 -3
- package/templates/three-compat-architecture-interior/src/main.ts +0 -27
- package/templates/three-compat-architecture-interior/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-asset-inspector/aura.assets.json +0 -7
- package/templates/three-compat-asset-inspector/src/aura-assets.ts +0 -3
- package/templates/three-compat-asset-inspector/src/main.ts +0 -17
- package/templates/three-compat-asset-inspector/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-character-viewer/aura.assets.json +0 -7
- package/templates/three-compat-character-viewer/src/aura-assets.ts +0 -3
- package/templates/three-compat-character-viewer/src/main.ts +0 -17
- package/templates/three-compat-character-viewer/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-custom-threejs-migration/aura.assets.json +0 -7
- package/templates/three-compat-custom-threejs-migration/src/aura-assets.ts +0 -3
- package/templates/three-compat-custom-threejs-migration/src/main.ts +0 -16
- package/templates/three-compat-custom-threejs-migration/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-large-scene/aura.assets.json +0 -7
- package/templates/three-compat-large-scene/package.json +0 -22
- package/templates/three-compat-large-scene/src/aura-assets.ts +0 -3
- package/templates/three-compat-large-scene/src/main.ts +0 -31
- package/templates/three-compat-large-scene/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-large-scene/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-material-authoring/aura.assets.json +0 -7
- package/templates/three-compat-material-authoring/package.json +0 -22
- package/templates/three-compat-material-authoring/src/aura-assets.ts +0 -3
- package/templates/three-compat-material-authoring/src/main.ts +0 -33
- package/templates/three-compat-material-authoring/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-material-authoring/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-postprocess-scene/aura.assets.json +0 -7
- package/templates/three-compat-postprocess-scene/package.json +0 -22
- package/templates/three-compat-postprocess-scene/src/aura-assets.ts +0 -3
- package/templates/three-compat-postprocess-scene/src/main.ts +0 -17
- package/templates/three-compat-postprocess-scene/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-postprocess-scene/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-premium-product-viewer/aura.assets.json +0 -7
- package/templates/three-compat-premium-product-viewer/package.json +0 -22
- package/templates/three-compat-premium-product-viewer/src/aura-assets.ts +0 -3
- package/templates/three-compat-premium-product-viewer/src/main.ts +0 -18
- package/templates/three-compat-premium-product-viewer/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-premium-product-viewer/tests/screenshot.spec.ts +0 -15
- /package/templates/{three-compat-architecture-interior → architecture-interior}/index.html +0 -0
- /package/templates/{three-compat-architecture-interior → architecture-interior}/playwright.config.ts +0 -0
- /package/templates/{three-compat-architecture-interior → architecture-interior}/tsconfig.json +0 -0
- /package/templates/{three-compat-asset-inspector → asset-inspector}/index.html +0 -0
- /package/templates/{three-compat-asset-inspector → asset-inspector}/playwright.config.ts +0 -0
- /package/templates/{three-compat-asset-inspector → asset-inspector}/tsconfig.json +0 -0
- /package/templates/{three-compat-character-viewer → character-viewer}/index.html +0 -0
- /package/templates/{three-compat-character-viewer → character-viewer}/playwright.config.ts +0 -0
- /package/templates/{three-compat-character-viewer → character-viewer}/tsconfig.json +0 -0
- /package/templates/{three-compat-custom-threejs-migration → custom-scene}/index.html +0 -0
- /package/templates/{three-compat-custom-threejs-migration → custom-scene}/playwright.config.ts +0 -0
- /package/templates/{three-compat-custom-threejs-migration → custom-scene}/tsconfig.json +0 -0
- /package/templates/{three-compat-large-scene → large-scene}/index.html +0 -0
- /package/templates/{three-compat-large-scene → large-scene}/playwright.config.ts +0 -0
- /package/templates/{three-compat-large-scene → large-scene}/tsconfig.json +0 -0
- /package/templates/{three-compat-material-authoring → material-authoring}/index.html +0 -0
- /package/templates/{three-compat-material-authoring → material-authoring}/playwright.config.ts +0 -0
- /package/templates/{three-compat-material-authoring → material-authoring}/tsconfig.json +0 -0
- /package/templates/{three-compat-postprocess-scene → postprocess-scene}/index.html +0 -0
- /package/templates/{three-compat-postprocess-scene → postprocess-scene}/playwright.config.ts +0 -0
- /package/templates/{three-compat-postprocess-scene → postprocess-scene}/tsconfig.json +0 -0
- /package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/index.html +0 -0
- /package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/playwright.config.ts +0 -0
- /package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/tsconfig.json +0 -0
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ npx create-aura3d@latest my-fighter --template fighting-game
|
|
|
25
25
|
npx create-aura3d@latest my-episode --template prompt-animation-channel
|
|
26
26
|
npx create-aura3d@latest my-studio --template animation-studio
|
|
27
27
|
npx create-aura3d@latest my-character --template character-controller
|
|
28
|
-
npx create-aura3d@latest my-migration --template
|
|
28
|
+
npx create-aura3d@latest my-migration --template custom-scene
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Run the full list at any time:
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type AuraAgentClient = "claude" | "cursor" | "copilot" | "generic";
|
|
2
|
+
export type AuraAgentTarget = AuraAgentClient | "all";
|
|
3
|
+
export type AuraSkillMode = "core" | "all" | "none";
|
|
4
|
+
export interface AuraSkillsManifest {
|
|
5
|
+
readonly schema: string;
|
|
6
|
+
readonly cliVersion: string;
|
|
7
|
+
readonly docsBase: string;
|
|
8
|
+
readonly coreSet: readonly string[];
|
|
9
|
+
readonly skills: Readonly<Record<string, {
|
|
10
|
+
readonly tier: string;
|
|
11
|
+
readonly prd: string;
|
|
12
|
+
}>>;
|
|
13
|
+
readonly templates: Readonly<Record<string, readonly string[]>>;
|
|
14
|
+
readonly clients: Readonly<Record<AuraAgentClient, string>>;
|
|
15
|
+
}
|
|
16
|
+
export interface WriteAgentSkillsOptions {
|
|
17
|
+
readonly projectDir: string;
|
|
18
|
+
readonly agent: AuraAgentTarget;
|
|
19
|
+
readonly skills?: AuraSkillMode;
|
|
20
|
+
/** Adds the manifest's template-specific skills on top of the selected mode. */
|
|
21
|
+
readonly template?: string;
|
|
22
|
+
/** Override the bundled skills directory (tests, monorepo sync). */
|
|
23
|
+
readonly skillsDir?: string;
|
|
24
|
+
/** Write the bundled llms.txt into the project root when absent or unmodified. */
|
|
25
|
+
readonly writeLlms?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface WriteAgentSkillsResult {
|
|
28
|
+
readonly skills: readonly string[];
|
|
29
|
+
readonly written: readonly string[];
|
|
30
|
+
readonly skippedUserModified: readonly string[];
|
|
31
|
+
}
|
|
32
|
+
export declare const AURA_SKILLS_LEDGER = ".aura3d-skills.json";
|
|
33
|
+
export declare const AURA_AGENT_CLIENTS: readonly AuraAgentClient[];
|
|
34
|
+
export declare function findBundledSkillsDir(start?: string): string;
|
|
35
|
+
export declare function readSkillsManifest(skillsDir?: string): AuraSkillsManifest;
|
|
36
|
+
export declare function selectSkills(manifest: AuraSkillsManifest, mode: AuraSkillMode, template?: string): readonly string[];
|
|
37
|
+
export declare function writeAgentSkills(options: WriteAgentSkillsOptions): WriteAgentSkillsResult;
|
|
38
|
+
//# sourceMappingURL=agent-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-skills.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/agent-skills.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,KAAK,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC3F,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAChE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAED,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AACxD,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAA+C,CAAC;AAEzG,wBAAgB,oBAAoB,CAAC,KAAK,SAA0C,GAAG,MAAM,CAU5F;AAED,wBAAgB,kBAAkB,CAAC,SAAS,SAAyB,GAAG,kBAAkB,CAEzF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKpH;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAqCzF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
export const AURA_SKILLS_LEDGER = ".aura3d-skills.json";
|
|
6
|
+
export const AURA_AGENT_CLIENTS = ["generic", "claude", "cursor", "copilot"];
|
|
7
|
+
export function findBundledSkillsDir(start = dirname(fileURLToPath(import.meta.url))) {
|
|
8
|
+
let current = start;
|
|
9
|
+
for (let depth = 0; depth < 8; depth += 1) {
|
|
10
|
+
const candidate = resolve(current, "skills");
|
|
11
|
+
if (existsSync(resolve(candidate, "manifest.json")))
|
|
12
|
+
return candidate;
|
|
13
|
+
const next = dirname(current);
|
|
14
|
+
if (next === current)
|
|
15
|
+
break;
|
|
16
|
+
current = next;
|
|
17
|
+
}
|
|
18
|
+
throw new Error("Aura3D skills bundle not found (expected skills/manifest.json next to the package).");
|
|
19
|
+
}
|
|
20
|
+
export function readSkillsManifest(skillsDir = findBundledSkillsDir()) {
|
|
21
|
+
return JSON.parse(readFileSync(resolve(skillsDir, "manifest.json"), "utf8"));
|
|
22
|
+
}
|
|
23
|
+
export function selectSkills(manifest, mode, template) {
|
|
24
|
+
if (mode === "none")
|
|
25
|
+
return [];
|
|
26
|
+
const selected = new Set(mode === "all" ? Object.keys(manifest.skills) : manifest.coreSet);
|
|
27
|
+
if (template)
|
|
28
|
+
for (const name of manifest.templates[template] ?? [])
|
|
29
|
+
selected.add(name);
|
|
30
|
+
return [...selected].filter((name) => name in manifest.skills).sort();
|
|
31
|
+
}
|
|
32
|
+
export function writeAgentSkills(options) {
|
|
33
|
+
const projectDir = resolve(options.projectDir);
|
|
34
|
+
const skillsDir = options.skillsDir ?? findBundledSkillsDir();
|
|
35
|
+
const manifest = readSkillsManifest(skillsDir);
|
|
36
|
+
const names = selectSkills(manifest, options.skills ?? "core", options.template);
|
|
37
|
+
const clients = options.agent === "all" ? AURA_AGENT_CLIENTS : [options.agent];
|
|
38
|
+
const ledger = readLedger(projectDir);
|
|
39
|
+
const written = [];
|
|
40
|
+
const skipped = [];
|
|
41
|
+
const put = (target, contents) => {
|
|
42
|
+
const key = relative(projectDir, target);
|
|
43
|
+
if (existsSync(target)) {
|
|
44
|
+
const current = hash(readFileSync(target, "utf8"));
|
|
45
|
+
const recorded = ledger[key];
|
|
46
|
+
if (current === hash(contents))
|
|
47
|
+
return;
|
|
48
|
+
if (recorded === undefined || recorded !== current) {
|
|
49
|
+
skipped.push(target);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
54
|
+
writeFileSync(target, contents);
|
|
55
|
+
ledger[key] = hash(contents);
|
|
56
|
+
written.push(target);
|
|
57
|
+
};
|
|
58
|
+
for (const client of clients) {
|
|
59
|
+
const root = resolve(projectDir, manifest.clients[client]);
|
|
60
|
+
for (const name of names) {
|
|
61
|
+
const source = resolve(skillsDir, name);
|
|
62
|
+
if (!existsSync(resolve(source, "SKILL.md")))
|
|
63
|
+
throw new Error(`Bundled skill missing SKILL.md: ${name}`);
|
|
64
|
+
for (const file of listFiles(source))
|
|
65
|
+
put(resolve(root, name, relative(source, file)), readFileSync(file, "utf8"));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const llmsSource = resolve(skillsDir, "llms.txt");
|
|
69
|
+
if (options.writeLlms !== false && existsSync(llmsSource))
|
|
70
|
+
put(resolve(projectDir, "llms.txt"), readFileSync(llmsSource, "utf8"));
|
|
71
|
+
if (written.length > 0)
|
|
72
|
+
writeFileSync(resolve(projectDir, AURA_SKILLS_LEDGER), `${JSON.stringify(sortKeys(ledger), null, 2)}\n`);
|
|
73
|
+
return { skills: names, written, skippedUserModified: skipped };
|
|
74
|
+
}
|
|
75
|
+
function readLedger(projectDir) {
|
|
76
|
+
const path = resolve(projectDir, AURA_SKILLS_LEDGER);
|
|
77
|
+
if (!existsSync(path))
|
|
78
|
+
return {};
|
|
79
|
+
try {
|
|
80
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return {};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function listFiles(directory) {
|
|
87
|
+
const files = [];
|
|
88
|
+
for (const entry of readdirSync(directory, { withFileTypes: true })) {
|
|
89
|
+
const path = join(directory, entry.name);
|
|
90
|
+
if (entry.isDirectory())
|
|
91
|
+
files.push(...listFiles(path));
|
|
92
|
+
else if (entry.name !== ".DS_Store")
|
|
93
|
+
files.push(path);
|
|
94
|
+
}
|
|
95
|
+
return files.sort();
|
|
96
|
+
}
|
|
97
|
+
function hash(contents) {
|
|
98
|
+
return createHash("sha256").update(contents).digest("hex");
|
|
99
|
+
}
|
|
100
|
+
function sortKeys(value) {
|
|
101
|
+
return Object.fromEntries(Object.entries(value).sort(([a], [b]) => a.localeCompare(b)));
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=agent-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-skills.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/agent-skills.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { CREATE_AURA3D_TEMPLATES, createA3DProject } from "./index.js";
|
|
2
|
+
import { CREATE_AURA3D_TEMPLATES, createA3DProject, resolveTemplateAlias, templateAliasWarning } from "./index.js";
|
|
3
3
|
import { compileShowcaseSpecFile } from "./showcase-spec-compiler.js";
|
|
4
4
|
const args = process.argv.slice(2);
|
|
5
5
|
if (args.includes("--help") || args.includes("-h")) {
|
|
@@ -8,6 +8,13 @@ if (args.includes("--help") || args.includes("-h")) {
|
|
|
8
8
|
Usage:
|
|
9
9
|
create-aura3d demo --template product-viewer
|
|
10
10
|
create-aura3d apps/showcase-demo --spec showcase-spec.json
|
|
11
|
+
create-aura3d demo --template fighting-game --agent all --skills core
|
|
12
|
+
create-aura3d demo --no-agent
|
|
13
|
+
|
|
14
|
+
Agent files (default --agent all --skills core):
|
|
15
|
+
--agent claude|cursor|copilot|generic|all write Aura3D skills + llms.txt for these clients
|
|
16
|
+
--skills core|all|none core = shared skills + template-specific skills
|
|
17
|
+
--no-agent skip agent skills and llms.txt
|
|
11
18
|
|
|
12
19
|
Templates:
|
|
13
20
|
${CREATE_AURA3D_TEMPLATES.join("\n ")}
|
|
@@ -23,12 +30,32 @@ if (specPath) {
|
|
|
23
30
|
process.exitCode = 1;
|
|
24
31
|
process.exit();
|
|
25
32
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
const templateArg = readOption("--template") ?? "product-viewer";
|
|
34
|
+
const resolvedTemplate = resolveTemplateAlias(templateArg);
|
|
35
|
+
if (!resolvedTemplate) {
|
|
36
|
+
console.error(`Unknown template "${templateArg}". Available templates: ${CREATE_AURA3D_TEMPLATES.join(", ")}`);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
const aliasWarning = templateAliasWarning(resolvedTemplate);
|
|
40
|
+
if (aliasWarning)
|
|
41
|
+
console.error(aliasWarning);
|
|
42
|
+
const template = resolvedTemplate.template;
|
|
43
|
+
const agentOption = args.includes("--no-agent") ? undefined : (readOption("--agent") ?? "all");
|
|
44
|
+
if (agentOption && !["claude", "cursor", "copilot", "generic", "all"].includes(agentOption)) {
|
|
45
|
+
console.error(`Unsupported --agent "${agentOption}". Use claude, cursor, copilot, generic, or all.`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const skillsOption = readOption("--skills") ?? "core";
|
|
49
|
+
if (!["core", "all", "none"].includes(skillsOption)) {
|
|
50
|
+
console.error(`Unsupported --skills "${skillsOption}". Use core, all, or none.`);
|
|
29
51
|
process.exit(1);
|
|
30
52
|
}
|
|
31
|
-
const result = createA3DProject({
|
|
53
|
+
const result = createA3DProject({
|
|
54
|
+
targetDir,
|
|
55
|
+
template,
|
|
56
|
+
agent: agentOption,
|
|
57
|
+
skills: skillsOption
|
|
58
|
+
});
|
|
32
59
|
console.log(JSON.stringify(result, null, 2));
|
|
33
60
|
function readOption(name) {
|
|
34
61
|
const index = args.indexOf(name);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,45 @@
|
|
|
1
|
-
export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "racing-starter", "falling-blocks-starter", "fighting-game", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "character-controller", "
|
|
1
|
+
export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "racing-starter", "falling-blocks-starter", "fighting-game", "arena-shooter", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "character-controller", "premium-product-viewer", "architecture-interior", "material-authoring", "asset-inspector", "character-viewer", "postprocess-scene", "custom-scene", "large-scene"];
|
|
2
2
|
export type CreateA3DTemplate = (typeof CREATE_AURA3D_TEMPLATES)[number];
|
|
3
|
+
/**
|
|
4
|
+
* Retired template names → current names (Q-13-4 / #700: the `three-compat-*`
|
|
5
|
+
* starters take their §6.8 names). Each entry is a one-minor deprecation alias:
|
|
6
|
+
* the CLI scaffolds the current template and prints `templateAliasWarning`.
|
|
7
|
+
* Entries are added as each template is renamed and dropped in the next minor.
|
|
8
|
+
*/
|
|
9
|
+
export declare const TEMPLATE_ALIASES: Readonly<{
|
|
10
|
+
readonly "three-compat-premium-product-viewer": "premium-product-viewer";
|
|
11
|
+
readonly "three-compat-architecture-interior": "architecture-interior";
|
|
12
|
+
readonly "three-compat-material-authoring": "material-authoring";
|
|
13
|
+
readonly "three-compat-asset-inspector": "asset-inspector";
|
|
14
|
+
readonly "three-compat-character-viewer": "character-viewer";
|
|
15
|
+
readonly "three-compat-postprocess-scene": "postprocess-scene";
|
|
16
|
+
readonly "three-compat-custom-threejs-migration": "custom-scene";
|
|
17
|
+
readonly "three-compat-large-scene": "large-scene";
|
|
18
|
+
}>;
|
|
19
|
+
export type CreateA3DTemplateAlias = keyof typeof TEMPLATE_ALIASES;
|
|
20
|
+
export interface ResolvedTemplateName {
|
|
21
|
+
readonly template: CreateA3DTemplate;
|
|
22
|
+
/** The retired name the caller used, or null for a current template name. */
|
|
23
|
+
readonly deprecated: string | null;
|
|
24
|
+
}
|
|
25
|
+
/** Resolve a current template name or a retired alias; null when neither. */
|
|
26
|
+
export declare function resolveTemplateAlias(name: string): ResolvedTemplateName | null;
|
|
27
|
+
/** Deprecation warning for a resolved alias; null when no alias was used. */
|
|
28
|
+
export declare function templateAliasWarning(resolved: ResolvedTemplateName): string | null;
|
|
3
29
|
export interface CreateA3DProjectOptions {
|
|
4
30
|
readonly targetDir: string;
|
|
5
31
|
readonly template?: CreateA3DTemplate;
|
|
6
32
|
readonly packageVersion?: string;
|
|
7
33
|
readonly rootDir?: string;
|
|
34
|
+
/** Write Aura3D agent skills + llms.txt for these clients after scaffolding. Omit to skip. */
|
|
35
|
+
readonly agent?: import("./agent-skills.js").AuraAgentTarget;
|
|
36
|
+
readonly skills?: import("./agent-skills.js").AuraSkillMode;
|
|
8
37
|
}
|
|
9
38
|
export interface CreateA3DProjectResult {
|
|
10
39
|
readonly targetDir: string;
|
|
11
40
|
readonly template: CreateA3DTemplate;
|
|
12
41
|
readonly files: readonly string[];
|
|
42
|
+
readonly agentSkills?: import("./agent-skills.js").WriteAgentSkillsResult;
|
|
13
43
|
}
|
|
14
44
|
export declare function createA3DProject(options: CreateA3DProjectOptions): CreateA3DProjectResult;
|
|
15
45
|
export declare function writeCreateA3DReport(path: string, result: CreateA3DProjectResult): void;
|
|
@@ -17,4 +47,5 @@ export { probeShowcaseGameGeometry, type ShowcaseGameGeometryCategory, type Show
|
|
|
17
47
|
export type { ExtractOptions as ShowcaseGameGeometryExtractOptions, GeometryExtractionFailure as ShowcaseGameGeometryExtractionFailure, GeometryExtractionResult as ShowcaseGameGeometryExtractionResult, GeometryExtractionSuccess as ShowcaseGameGeometryExtractionSuccess } from "./showcase-spec-game-geometry-extractor.js";
|
|
18
48
|
export type { ShowcasePlatformerPlayableSurfaceMap, ShowcaseRacingTrackTopology } from "./showcase-spec-types.js";
|
|
19
49
|
export { SHOWCASE_ASSET_PAIR_COMPOSITION_THRESHOLDS, validateShowcaseAssetPairComposition, validateShowcaseAssetPairCompositionFromDisk, type ShowcaseAssetPairCompositionCategory, type ShowcaseAssetPairCompositionCheck, type ShowcaseAssetPairCompositionInput, type ShowcaseAssetPairCompositionReport, type ValidateShowcaseAssetPairCompositionFromDiskOptions } from "./showcase-spec-asset-pair-composition.js";
|
|
50
|
+
export { AURA_AGENT_CLIENTS, AURA_SKILLS_LEDGER, findBundledSkillsDir, readSkillsManifest, selectSkills, writeAgentSkills, type AuraAgentClient, type AuraAgentTarget, type AuraSkillMode, type AuraSkillsManifest, type WriteAgentSkillsOptions, type WriteAgentSkillsResult } from "./agent-skills.js";
|
|
20
51
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,uBAAuB,+ZAqB1B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;EAS0B,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAM9E;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAGlF;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,mBAAmB,EAAE,eAAe,CAAC;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,mBAAmB,EAAE,aAAa,CAAC;CAC7D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,sBAAsB,CAAC;CAC3E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAwCzF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGvF;AA0BD,OAAO,EACL,yBAAyB,EACzB,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,cAAc,IAAI,kCAAkC,EACpD,yBAAyB,IAAI,qCAAqC,EAClE,wBAAwB,IAAI,oCAAoC,EAChE,yBAAyB,IAAI,qCAAqC,EACnE,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,oCAAoC,EACpC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,0CAA0C,EAC1C,oCAAoC,EACpC,4CAA4C,EAC5C,KAAK,oCAAoC,EACzC,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,mDAAmD,EACzD,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, relative, resolve } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { writeAgentSkills } from "./agent-skills.js";
|
|
5
|
+
import { copyTemplateHdris, TEMPLATE_HDRI_DIR, templateAuthorsLook } from "./template-hdri.js";
|
|
4
6
|
export const CREATE_AURA3D_TEMPLATES = [
|
|
5
7
|
"product-viewer",
|
|
6
8
|
"cinematic-scene",
|
|
@@ -8,20 +10,51 @@ export const CREATE_AURA3D_TEMPLATES = [
|
|
|
8
10
|
"racing-starter",
|
|
9
11
|
"falling-blocks-starter",
|
|
10
12
|
"fighting-game",
|
|
13
|
+
"arena-shooter",
|
|
11
14
|
"animation-channel",
|
|
12
15
|
"prompt-animation-channel",
|
|
13
16
|
"animation-studio",
|
|
14
17
|
"episode-builder",
|
|
15
18
|
"character-controller",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
19
|
+
"premium-product-viewer",
|
|
20
|
+
"architecture-interior",
|
|
21
|
+
"material-authoring",
|
|
22
|
+
"asset-inspector",
|
|
23
|
+
"character-viewer",
|
|
24
|
+
"postprocess-scene",
|
|
25
|
+
"custom-scene",
|
|
26
|
+
"large-scene"
|
|
24
27
|
];
|
|
28
|
+
/**
|
|
29
|
+
* Retired template names → current names (Q-13-4 / #700: the `three-compat-*`
|
|
30
|
+
* starters take their §6.8 names). Each entry is a one-minor deprecation alias:
|
|
31
|
+
* the CLI scaffolds the current template and prints `templateAliasWarning`.
|
|
32
|
+
* Entries are added as each template is renamed and dropped in the next minor.
|
|
33
|
+
*/
|
|
34
|
+
export const TEMPLATE_ALIASES = Object.freeze({
|
|
35
|
+
"three-compat-premium-product-viewer": "premium-product-viewer",
|
|
36
|
+
"three-compat-architecture-interior": "architecture-interior",
|
|
37
|
+
"three-compat-material-authoring": "material-authoring",
|
|
38
|
+
"three-compat-asset-inspector": "asset-inspector",
|
|
39
|
+
"three-compat-character-viewer": "character-viewer",
|
|
40
|
+
"three-compat-postprocess-scene": "postprocess-scene",
|
|
41
|
+
"three-compat-custom-threejs-migration": "custom-scene",
|
|
42
|
+
"three-compat-large-scene": "large-scene"
|
|
43
|
+
});
|
|
44
|
+
/** Resolve a current template name or a retired alias; null when neither. */
|
|
45
|
+
export function resolveTemplateAlias(name) {
|
|
46
|
+
if (CREATE_AURA3D_TEMPLATES.includes(name)) {
|
|
47
|
+
return { template: name, deprecated: null };
|
|
48
|
+
}
|
|
49
|
+
const template = Object.prototype.hasOwnProperty.call(TEMPLATE_ALIASES, name) ? TEMPLATE_ALIASES[name] : undefined;
|
|
50
|
+
return template ? { template, deprecated: name } : null;
|
|
51
|
+
}
|
|
52
|
+
/** Deprecation warning for a resolved alias; null when no alias was used. */
|
|
53
|
+
export function templateAliasWarning(resolved) {
|
|
54
|
+
if (!resolved.deprecated)
|
|
55
|
+
return null;
|
|
56
|
+
return `Template "${resolved.deprecated}" renamed to "${resolved.template}"; the "${resolved.deprecated}" alias is removed in the next minor.`;
|
|
57
|
+
}
|
|
25
58
|
export function createA3DProject(options) {
|
|
26
59
|
const template = options.template ?? "product-viewer";
|
|
27
60
|
if (!CREATE_AURA3D_TEMPLATES.includes(template)) {
|
|
@@ -42,7 +75,7 @@ export function createA3DProject(options) {
|
|
|
42
75
|
const dependencies = { ...(packageJson.dependencies ?? {}) };
|
|
43
76
|
const auraDependencies = Object.keys(dependencies).filter((name) => name.startsWith("@aura3d/"));
|
|
44
77
|
if (auraDependencies.length === 0) {
|
|
45
|
-
dependencies["@aura3d/engine"] = options.packageVersion ?? "
|
|
78
|
+
dependencies["@aura3d/engine"] = options.packageVersion ?? "4.0.0";
|
|
46
79
|
}
|
|
47
80
|
else if (options.packageVersion) {
|
|
48
81
|
for (const dependency of auraDependencies)
|
|
@@ -50,10 +83,18 @@ export function createA3DProject(options) {
|
|
|
50
83
|
}
|
|
51
84
|
packageJson.dependencies = dependencies;
|
|
52
85
|
writeFileSync(packagePath, `${JSON.stringify(packageJson, null, 2)}\n`);
|
|
86
|
+
// Look presets load /hdri/<file>.hdr; ship the package's HDRI set (sibling of
|
|
87
|
+
// templates/ under the same root) with every template that authors a look.
|
|
88
|
+
if (templateAuthorsLook(targetDir))
|
|
89
|
+
copyTemplateHdris(resolve(rootDir, TEMPLATE_HDRI_DIR), targetDir);
|
|
90
|
+
const agentSkills = options.agent
|
|
91
|
+
? writeAgentSkills({ projectDir: targetDir, agent: options.agent, skills: options.skills ?? "core", template })
|
|
92
|
+
: undefined;
|
|
53
93
|
return {
|
|
54
94
|
targetDir,
|
|
55
95
|
template,
|
|
56
|
-
files: listTemplateFiles(targetDir)
|
|
96
|
+
files: listTemplateFiles(targetDir),
|
|
97
|
+
...(agentSkills ? { agentSkills } : {})
|
|
57
98
|
};
|
|
58
99
|
}
|
|
59
100
|
export function writeCreateA3DReport(path, result) {
|
|
@@ -88,4 +129,5 @@ function findDefaultTemplateRoot() {
|
|
|
88
129
|
}
|
|
89
130
|
export { probeShowcaseGameGeometry } from "./showcase-spec-game-geometry-probe.js";
|
|
90
131
|
export { SHOWCASE_ASSET_PAIR_COMPOSITION_THRESHOLDS, validateShowcaseAssetPairComposition, validateShowcaseAssetPairCompositionFromDisk } from "./showcase-spec-asset-pair-composition.js";
|
|
132
|
+
export { AURA_AGENT_CLIENTS, AURA_SKILLS_LEDGER, findBundledSkillsDir, readSkillsManifest, selectSkills, writeAgentSkills } from "./agent-skills.js";
|
|
91
133
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export declare function createRouteHealth(spec: ShowcaseSpec, finalStatus: Showc
|
|
|
34
34
|
typedRef: string;
|
|
35
35
|
role: string;
|
|
36
36
|
status: string;
|
|
37
|
-
quality: "candidate" | "
|
|
37
|
+
quality: "candidate" | "release" | "prototype";
|
|
38
38
|
}[];
|
|
39
39
|
primitiveStatus: {
|
|
40
40
|
sourceOccurrences: number;
|
|
@@ -802,21 +802,18 @@ function sortPlayableSurfaceCandidate(a, b) {
|
|
|
802
802
|
* the position array by about a third and, more importantly, makes the mesh watertight
|
|
803
803
|
* enough that a downward ray cannot slip through a seam between two adjacent road quads.
|
|
804
804
|
*
|
|
805
|
-
*
|
|
806
|
-
*
|
|
807
|
-
*
|
|
805
|
+
* Every source triangle is kept. An earlier `maxTriangles = 4000` cap decimated by
|
|
806
|
+
* keeping every Nth triangle; road quads are emitted as consecutive triangle pairs, so a
|
|
807
|
+
* stride of 2 (Turbo Drift: 4052 source triangles) kept exactly one half of every quad
|
|
808
|
+
* and turned the whole circuit into a checkerboard of holes. Wheels on the missing
|
|
809
|
+
* diagonal halves reported no surface, which is the "wheels sink / car tilts" defect.
|
|
810
|
+
* A drivable mesh with holes is never an acceptable approximation, so there is no cap.
|
|
808
811
|
*/
|
|
809
|
-
function createDrivableMesh(primitives
|
|
812
|
+
function createDrivableMesh(primitives) {
|
|
810
813
|
const triangles = primitives.flatMap((primitive) => primitive.triangles);
|
|
811
814
|
if (triangles.length === 0)
|
|
812
815
|
return undefined;
|
|
813
|
-
const
|
|
814
|
-
const kept = [];
|
|
815
|
-
for (let index = 0; index < triangles.length; index += stride) {
|
|
816
|
-
const triangle = triangles[index];
|
|
817
|
-
if (triangle)
|
|
818
|
-
kept.push(triangle);
|
|
819
|
-
}
|
|
816
|
+
const kept = triangles;
|
|
820
817
|
const positions = [];
|
|
821
818
|
const indices = [];
|
|
822
819
|
const indexByKey = new Map();
|