valence-cli 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +56 -53
  2. package/README.original.md +56 -53
  3. package/dist/README.md +56 -53
  4. package/dist/commands/add.d.ts.map +1 -1
  5. package/dist/commands/add.js +39 -1
  6. package/dist/commands/add.js.map +1 -1
  7. package/dist/commands/features/audio.d.ts +2 -0
  8. package/dist/commands/features/audio.d.ts.map +1 -0
  9. package/dist/commands/features/audio.js +17 -0
  10. package/dist/commands/features/audio.js.map +1 -0
  11. package/dist/commands/features/input.d.ts +2 -0
  12. package/dist/commands/features/input.d.ts.map +1 -0
  13. package/dist/commands/features/input.js +13 -0
  14. package/dist/commands/features/input.js.map +1 -0
  15. package/dist/commands/features/native.d.ts.map +1 -1
  16. package/dist/commands/features/native.js +0 -8
  17. package/dist/commands/features/native.js.map +1 -1
  18. package/dist/commands/features/settings.d.ts +2 -0
  19. package/dist/commands/features/settings.d.ts.map +1 -0
  20. package/dist/commands/features/settings.js +13 -0
  21. package/dist/commands/features/settings.js.map +1 -0
  22. package/dist/commands/features/state.d.ts +2 -0
  23. package/dist/commands/features/state.d.ts.map +1 -0
  24. package/dist/commands/features/state.js +12 -0
  25. package/dist/commands/features/state.js.map +1 -0
  26. package/dist/commands/features/storage.d.ts +2 -0
  27. package/dist/commands/features/storage.d.ts.map +1 -0
  28. package/dist/commands/features/storage.js +33 -0
  29. package/dist/commands/features/storage.js.map +1 -0
  30. package/dist/commands/features/tailwind.d.ts.map +1 -1
  31. package/dist/commands/features/tailwind.js +8 -8
  32. package/dist/commands/features/tailwind.js.map +1 -1
  33. package/dist/commands/generate.d.ts.map +1 -1
  34. package/dist/commands/generate.js +19 -0
  35. package/dist/commands/generate.js.map +1 -1
  36. package/dist/commands/new-helpers.d.ts +2 -1
  37. package/dist/commands/new-helpers.d.ts.map +1 -1
  38. package/dist/commands/new-helpers.js +28 -76
  39. package/dist/commands/new-helpers.js.map +1 -1
  40. package/dist/commands/new.d.ts +1 -0
  41. package/dist/commands/new.d.ts.map +1 -1
  42. package/dist/commands/new.js +58 -38
  43. package/dist/commands/new.js.map +1 -1
  44. package/dist/constants/versions.d.ts +3 -0
  45. package/dist/constants/versions.d.ts.map +1 -1
  46. package/dist/constants/versions.js +3 -0
  47. package/dist/constants/versions.js.map +1 -1
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/templates/angular.d.ts +2 -2
  51. package/dist/templates/angular.d.ts.map +1 -1
  52. package/dist/templates/angular.js +4 -5
  53. package/dist/templates/angular.js.map +1 -1
  54. package/dist/templates/audio.d.ts +2 -0
  55. package/dist/templates/audio.d.ts.map +1 -0
  56. package/dist/templates/audio.js +95 -0
  57. package/dist/templates/audio.js.map +1 -0
  58. package/dist/templates/index.d.ts +5 -0
  59. package/dist/templates/index.d.ts.map +1 -1
  60. package/dist/templates/index.js +5 -0
  61. package/dist/templates/index.js.map +1 -1
  62. package/dist/templates/input.d.ts +2 -0
  63. package/dist/templates/input.d.ts.map +1 -0
  64. package/dist/templates/input.js +159 -0
  65. package/dist/templates/input.js.map +1 -0
  66. package/dist/templates/phaser-scene.d.ts +2 -0
  67. package/dist/templates/phaser-scene.d.ts.map +1 -0
  68. package/dist/templates/phaser-scene.js +27 -0
  69. package/dist/templates/phaser-scene.js.map +1 -0
  70. package/dist/templates/phaser.d.ts +2 -0
  71. package/dist/templates/phaser.d.ts.map +1 -0
  72. package/dist/templates/phaser.js +147 -0
  73. package/dist/templates/phaser.js.map +1 -0
  74. package/dist/templates/settings.d.ts +2 -0
  75. package/dist/templates/settings.d.ts.map +1 -0
  76. package/dist/templates/settings.js +66 -0
  77. package/dist/templates/settings.js.map +1 -0
  78. package/dist/templates/state.d.ts +2 -0
  79. package/dist/templates/state.d.ts.map +1 -0
  80. package/dist/templates/state.js +35 -0
  81. package/dist/templates/state.js.map +1 -0
  82. package/dist/templates/storage.d.ts +4 -0
  83. package/dist/templates/storage.d.ts.map +1 -0
  84. package/dist/templates/storage.js +121 -0
  85. package/dist/templates/storage.js.map +1 -0
  86. package/dist/templates.d.ts +2 -0
  87. package/dist/templates.d.ts.map +1 -1
  88. package/dist/templates.js +2 -0
  89. package/dist/templates.js.map +1 -1
  90. package/dist/utils/ast/modify-app-component.d.ts +2 -0
  91. package/dist/utils/ast/modify-app-component.d.ts.map +1 -0
  92. package/dist/utils/ast/modify-app-component.js +136 -0
  93. package/dist/utils/ast/modify-app-component.js.map +1 -0
  94. package/dist/utils/configurators/angular.d.ts +2 -0
  95. package/dist/utils/configurators/angular.d.ts.map +1 -0
  96. package/dist/utils/configurators/angular.js +28 -0
  97. package/dist/utils/configurators/angular.js.map +1 -0
  98. package/dist/utils/configurators/electron.d.ts +2 -0
  99. package/dist/utils/configurators/electron.d.ts.map +1 -0
  100. package/dist/utils/configurators/electron.js +12 -0
  101. package/dist/utils/configurators/electron.js.map +1 -0
  102. package/dist/utils/configurators/meta.d.ts +5 -0
  103. package/dist/utils/configurators/meta.d.ts.map +1 -0
  104. package/dist/utils/configurators/meta.js +14 -0
  105. package/dist/utils/configurators/meta.js.map +1 -0
  106. package/dist/utils/configurators/package.d.ts +5 -0
  107. package/dist/utils/configurators/package.d.ts.map +1 -0
  108. package/dist/utils/configurators/package.js +23 -0
  109. package/dist/utils/configurators/package.js.map +1 -0
  110. package/dist/utils/files.d.ts +17 -0
  111. package/dist/utils/files.d.ts.map +1 -0
  112. package/dist/utils/files.js +41 -0
  113. package/dist/utils/files.js.map +1 -0
  114. package/package.json +1 -1
package/README.md CHANGED
@@ -35,12 +35,16 @@ valence start
35
35
  ## 🛠 Commands
36
36
 
37
37
  ### `valence new <name>`
38
- Scaffolds a new project with:
38
+ Scaffolds a new high-performance project. You will be prompted to select your engine:
39
+
40
+ * **3D (Babylon.js)**: Full 3D capabilities with Havok Physics, XR, and Inspector support.
41
+ * **2D (Phaser)**: Fast 2D game engine with configured scenes and arcade physics.
42
+
43
+ **Both environments include:**
39
44
  - **Angular**: Latest CLI, SCSS, Routing.
40
45
  - **Electron**: TypeScript Main/Preload processes, securely configured.
41
- - **Babylon.js**: Core dependencies pre-installed.
42
- - **Forge**: configured for building `.exe` / `.zip` / installers.
43
- - **Pro Template**: Includes a rotating wireframe plane, FPS counter, and real-time Camera Rotation (XYZ) tracker with a premium glassmorphic UI.
46
+ - **Forge**: Configured for building `.exe` / `.zip` / installers.
47
+ - **Valence UI**: Premium glassmorphic HUD with FPS and status tracking.
44
48
 
45
49
  ### `valence start`
46
50
  Runs the application in **Development Mode**:
@@ -55,6 +59,9 @@ Compiles the application for **Production**:
55
59
  - Optimizes assets.
56
60
  - Enforces relative paths (`baseHref="./"`) for Electron compatibility.
57
61
 
62
+ ### `valence test`
63
+ Runs the project's automated test suite (if configured).
64
+
58
65
  ### `valence package`
59
66
  Packages the application for distribution:
60
67
  - Runs `valence build`.
@@ -63,71 +70,67 @@ Packages the application for distribution:
63
70
 
64
71
  ### `valence publish`
65
72
  Automates the release pipeline:
66
- 1. Bumps project version (patch).
67
- 2. Updates `README.md` version badges.
68
- 3. Builds & Packages.
69
- 4. Generates `RELEASES_README.md` entry.
70
- 5. Publishes via Electron Forge (e.g., to GitHub Releases).
73
+ - Bumps project version (patch).
74
+ - Updates `README.md` version badges.
75
+ - Builds & Packages.
76
+ - Generates `RELEASES_README.md` entry.
77
+ - Publishes via Electron Forge.
71
78
 
72
- ### `valence generate scene <name>`
73
- *Alias: `valence g scene <name>`*
74
- Scaffolds a new **Babylon.js Scene component** in `src/app/scenes/<name>`:
75
- - Pre-wired `Engine` and `Scene` creation.
76
- - Includes Camera, Light, and Resize event handling.
77
- - Ready for 3D logic immediately.
79
+ ---
78
80
 
79
- ### `valence generate bridge <name>`
81
+ ## 🎮 Gameplay Services
80
82
 
81
- *Alias: `valence g bridge <name>`*
83
+ Valence can automatically inject core game systems into your project.
82
84
 
83
- Generates a type-safe IPC communication channel:
85
+ ### `valence add <feature>`
84
86
 
85
- - Main Process: Registers `ipcMain.handle` listener.
86
- - Preload: Exposes `contextBridge` API safe for Renderer.
87
- - Service: Creates an Angular service wrapper to call the API.
87
+ #### Core Systems
88
+ * **`input`**: Unified Action Mapping (Keyboard/Gamepad) via Angular Signals.
89
+ * **`audio`**: Channel-based audio manager (Master/Music/SFX) using Howler.js.
90
+ * **`storage`**: Secure, atomic file I/O for save games (Write-Temp-Rename pattern) via Electron IPC.
91
+ * **`settings`**: Centralized configuration manager (Audio/Graphics) persisted to storage.
92
+ * **`state`**: Strict Game State Machine (Boot, Menu, Gameplay, Paused) via Signals.
88
93
 
89
- ### `valence add <feature>`
94
+ #### 3D Features (Babylon.js)
95
+ * **`physics`**: Installs Havok engine (WASM) & initializes physics.
96
+ * **`inspector`**: Installs & binds Babylon Inspector to `Ctrl+I`.
97
+ * **`gui`**: Installs `lil-gui` debug panel.
98
+ * **`materials`**: Installs `@babylonjs/materials`.
99
+ * **`skybox`**: Creates environmental skybox.
100
+ * **`xr`**: Initializes WebXR (VR/AR) experience.
90
101
 
91
- Injects advanced capabilities into an existing project.
92
- **Now powered by AST (Abstract Syntax Tree)** parsing to safely inject code into `ValenceEngineService` without breaking your custom logic.
102
+ #### Universal Features
103
+ * **`tailwind`**: Configures TailwindCSS with Angular.
104
+ * **`multiplayer`**: Scaffolds Colyseus server & client.
105
+ * **`pipeline`**: Enables Asset Optimization Pipeline (sharp).
106
+ * **`native`**: Scaffolds Rust (Neon) native module.
93
107
 
94
- - `physics`: Installs Havok engine, configures WASM assets, and initializes physics in the global scene.
95
- - `inspector`: Installs `@babylonjs/inspector` and binds `Ctrl+I` to toggle the dedicated 3D debugger overlay.
96
- - `gui`: Installs `lil-gui` and creates a debug panel for tweaking parameters at runtime.
97
- - `materials`: Installs `@babylonjs/materials`, enabling Grid, Gradient, and other advanced materials.
98
- - `skybox`: Automatically creates a large skybox mesh to provide environmental context.
99
- - `xr`: Initializes WebXR default experience (Teleportation + Controller support) for VR/AR.
100
- - `tailwind`: Configures TailwindCSS with Angular (PostCSS, Config, Styles).
101
- - `multiplayer`: Scaffolds a dedicated Colyseus server and injects a real-time network client.
102
- - `pipeline`: Enables the Asset Optimization Pipeline (sharp) to auto-compress textures on build.
103
- - `native`: Scaffolds a Rust (Neon) native module for high-performance Node.js bindings.
108
+ ---
104
109
 
105
- ### `valence template <type>`
110
+ ## 🎲 Generators
106
111
 
107
- Swaps the default 3D scene logic for a genre-specific starter.
112
+ ### `valence generate scene <name>`
113
+ *Alias: `valence g scene <name>`*
114
+ Scaffolds a new Scene component:
115
+ * **3D**: Pre-wired Babylon.js `Scene` with Camera/Light/Resize handling.
116
+ * **2D**: Pre-wired Phaser `Scene` class with lifecycle methods.
108
117
 
109
- - `fps`: First Person Shooter setup (WASD + Mouse Look + Gravity + Collisions).
110
- - `orbit`: Product/Model Viewer setup (ArcRotateCamera + Studio Lighting).
111
- - `platformer`: Third-person follow camera with a capsule character controller.
112
- - `iso`: Isometric orthographic view (RTS/Strategy style) with tile grid,
113
- - `gallery`: First-person interactive walkthrough with raycast-based highlighting.
118
+ ### `valence generate bridge <name>`
119
+ *Alias: `valence g bridge <name>`*
120
+ Generates a type-safe IPC communication channel:
121
+ * **Main Process**: Registers `ipcMain.handle`.
122
+ * **Preload**: Exposes `contextBridge` API.
123
+ * **Service**: Creates Angular service wrapper.
114
124
 
115
125
  ### `valence codegen assets`
126
+ Scans `src/assets` and generates typed constants in `core/asset-keys.ts` for IntelliSense.
116
127
 
117
- Scans your `src/assets` folder and generates a TypeScript file (`core/asset-keys.ts`) with typed constants for every file path.
128
+ ---
118
129
 
119
- - Usage: `scene.createTexture(AssetKeys.TEXTURES_GRASS_PNG)`
130
+ ## 🩺 Diagnostics
120
131
 
121
132
  ### `valence doctor`
122
-
123
- Diagnoses your development environment:
124
- - Checks Node.js & NPM versions.
125
- - Verifies Git installation.
126
- - Checks for global Angular CLI (optional).
133
+ Diagnoses your development environment (Node, NPM, Git).
127
134
 
128
135
  ### `valence verify`
129
-
130
- Performs a deep health check of your project structure and configuration:
131
- - **Engine Service**: Validates `ValenceEngineService` class and `createScene` method structure.
132
- - **Electron Config**: Checks `main.ts` existence and `package.json` entry point (`dist/electron/main.js`).
133
- - **Build Config**: Verifies `angular.json` output paths and `index.html` base href for Electron compatibility.
136
+ Performs deep health check of project structure and configuration.
@@ -35,12 +35,16 @@ valence start
35
35
  ## 🛠 Commands
36
36
 
37
37
  ### `valence new <name>`
38
- Scaffolds a new project with:
38
+ Scaffolds a new high-performance project. You will be prompted to select your engine:
39
+
40
+ * **3D (Babylon.js)**: Full 3D capabilities with Havok Physics, XR, and Inspector support.
41
+ * **2D (Phaser)**: Fast 2D game engine with configured scenes and arcade physics.
42
+
43
+ **Both environments include:**
39
44
  - **Angular**: Latest CLI, SCSS, Routing.
40
45
  - **Electron**: TypeScript Main/Preload processes, securely configured.
41
- - **Babylon.js**: Core dependencies pre-installed.
42
- - **Forge**: configured for building `.exe` / `.zip` / installers.
43
- - **Pro Template**: Includes a rotating wireframe plane, FPS counter, and real-time Camera Rotation (XYZ) tracker with a premium glassmorphic UI.
46
+ - **Forge**: Configured for building `.exe` / `.zip` / installers.
47
+ - **Valence UI**: Premium glassmorphic HUD with FPS and status tracking.
44
48
 
45
49
  ### `valence start`
46
50
  Runs the application in **Development Mode**:
@@ -55,6 +59,9 @@ Compiles the application for **Production**:
55
59
  - Optimizes assets.
56
60
  - Enforces relative paths (`baseHref="./"`) for Electron compatibility.
57
61
 
62
+ ### `valence test`
63
+ Runs the project's automated test suite (if configured).
64
+
58
65
  ### `valence package`
59
66
  Packages the application for distribution:
60
67
  - Runs `valence build`.
@@ -63,71 +70,67 @@ Packages the application for distribution:
63
70
 
64
71
  ### `valence publish`
65
72
  Automates the release pipeline:
66
- 1. Bumps project version (patch).
67
- 2. Updates `README.md` version badges.
68
- 3. Builds & Packages.
69
- 4. Generates `RELEASES_README.md` entry.
70
- 5. Publishes via Electron Forge (e.g., to GitHub Releases).
73
+ - Bumps project version (patch).
74
+ - Updates `README.md` version badges.
75
+ - Builds & Packages.
76
+ - Generates `RELEASES_README.md` entry.
77
+ - Publishes via Electron Forge.
71
78
 
72
- ### `valence generate scene <name>`
73
- *Alias: `valence g scene <name>`*
74
- Scaffolds a new **Babylon.js Scene component** in `src/app/scenes/<name>`:
75
- - Pre-wired `Engine` and `Scene` creation.
76
- - Includes Camera, Light, and Resize event handling.
77
- - Ready for 3D logic immediately.
79
+ ---
78
80
 
79
- ### `valence generate bridge <name>`
81
+ ## 🎮 Gameplay Services
80
82
 
81
- *Alias: `valence g bridge <name>`*
83
+ Valence can automatically inject core game systems into your project.
82
84
 
83
- Generates a type-safe IPC communication channel:
85
+ ### `valence add <feature>`
84
86
 
85
- - Main Process: Registers `ipcMain.handle` listener.
86
- - Preload: Exposes `contextBridge` API safe for Renderer.
87
- - Service: Creates an Angular service wrapper to call the API.
87
+ #### Core Systems
88
+ * **`input`**: Unified Action Mapping (Keyboard/Gamepad) via Angular Signals.
89
+ * **`audio`**: Channel-based audio manager (Master/Music/SFX) using Howler.js.
90
+ * **`storage`**: Secure, atomic file I/O for save games (Write-Temp-Rename pattern) via Electron IPC.
91
+ * **`settings`**: Centralized configuration manager (Audio/Graphics) persisted to storage.
92
+ * **`state`**: Strict Game State Machine (Boot, Menu, Gameplay, Paused) via Signals.
88
93
 
89
- ### `valence add <feature>`
94
+ #### 3D Features (Babylon.js)
95
+ * **`physics`**: Installs Havok engine (WASM) & initializes physics.
96
+ * **`inspector`**: Installs & binds Babylon Inspector to `Ctrl+I`.
97
+ * **`gui`**: Installs `lil-gui` debug panel.
98
+ * **`materials`**: Installs `@babylonjs/materials`.
99
+ * **`skybox`**: Creates environmental skybox.
100
+ * **`xr`**: Initializes WebXR (VR/AR) experience.
90
101
 
91
- Injects advanced capabilities into an existing project.
92
- **Now powered by AST (Abstract Syntax Tree)** parsing to safely inject code into `ValenceEngineService` without breaking your custom logic.
102
+ #### Universal Features
103
+ * **`tailwind`**: Configures TailwindCSS with Angular.
104
+ * **`multiplayer`**: Scaffolds Colyseus server & client.
105
+ * **`pipeline`**: Enables Asset Optimization Pipeline (sharp).
106
+ * **`native`**: Scaffolds Rust (Neon) native module.
93
107
 
94
- - `physics`: Installs Havok engine, configures WASM assets, and initializes physics in the global scene.
95
- - `inspector`: Installs `@babylonjs/inspector` and binds `Ctrl+I` to toggle the dedicated 3D debugger overlay.
96
- - `gui`: Installs `lil-gui` and creates a debug panel for tweaking parameters at runtime.
97
- - `materials`: Installs `@babylonjs/materials`, enabling Grid, Gradient, and other advanced materials.
98
- - `skybox`: Automatically creates a large skybox mesh to provide environmental context.
99
- - `xr`: Initializes WebXR default experience (Teleportation + Controller support) for VR/AR.
100
- - `tailwind`: Configures TailwindCSS with Angular (PostCSS, Config, Styles).
101
- - `multiplayer`: Scaffolds a dedicated Colyseus server and injects a real-time network client.
102
- - `pipeline`: Enables the Asset Optimization Pipeline (sharp) to auto-compress textures on build.
103
- - `native`: Scaffolds a Rust (Neon) native module for high-performance Node.js bindings.
108
+ ---
104
109
 
105
- ### `valence template <type>`
110
+ ## 🎲 Generators
106
111
 
107
- Swaps the default 3D scene logic for a genre-specific starter.
112
+ ### `valence generate scene <name>`
113
+ *Alias: `valence g scene <name>`*
114
+ Scaffolds a new Scene component:
115
+ * **3D**: Pre-wired Babylon.js `Scene` with Camera/Light/Resize handling.
116
+ * **2D**: Pre-wired Phaser `Scene` class with lifecycle methods.
108
117
 
109
- - `fps`: First Person Shooter setup (WASD + Mouse Look + Gravity + Collisions).
110
- - `orbit`: Product/Model Viewer setup (ArcRotateCamera + Studio Lighting).
111
- - `platformer`: Third-person follow camera with a capsule character controller.
112
- - `iso`: Isometric orthographic view (RTS/Strategy style) with tile grid,
113
- - `gallery`: First-person interactive walkthrough with raycast-based highlighting.
118
+ ### `valence generate bridge <name>`
119
+ *Alias: `valence g bridge <name>`*
120
+ Generates a type-safe IPC communication channel:
121
+ * **Main Process**: Registers `ipcMain.handle`.
122
+ * **Preload**: Exposes `contextBridge` API.
123
+ * **Service**: Creates Angular service wrapper.
114
124
 
115
125
  ### `valence codegen assets`
126
+ Scans `src/assets` and generates typed constants in `core/asset-keys.ts` for IntelliSense.
116
127
 
117
- Scans your `src/assets` folder and generates a TypeScript file (`core/asset-keys.ts`) with typed constants for every file path.
128
+ ---
118
129
 
119
- - Usage: `scene.createTexture(AssetKeys.TEXTURES_GRASS_PNG)`
130
+ ## 🩺 Diagnostics
120
131
 
121
132
  ### `valence doctor`
122
-
123
- Diagnoses your development environment:
124
- - Checks Node.js & NPM versions.
125
- - Verifies Git installation.
126
- - Checks for global Angular CLI (optional).
133
+ Diagnoses your development environment (Node, NPM, Git).
127
134
 
128
135
  ### `valence verify`
129
-
130
- Performs a deep health check of your project structure and configuration:
131
- - **Engine Service**: Validates `ValenceEngineService` class and `createScene` method structure.
132
- - **Electron Config**: Checks `main.ts` existence and `package.json` entry point (`dist/electron/main.js`).
133
- - **Build Config**: Verifies `angular.json` output paths and `index.html` base href for Electron compatibility.
136
+ Performs deep health check of project structure and configuration.
package/dist/README.md CHANGED
@@ -35,12 +35,16 @@ valence start
35
35
  ## 🛠 Commands
36
36
 
37
37
  ### `valence new <name>`
38
- Scaffolds a new project with:
38
+ Scaffolds a new high-performance project. You will be prompted to select your engine:
39
+
40
+ * **3D (Babylon.js)**: Full 3D capabilities with Havok Physics, XR, and Inspector support.
41
+ * **2D (Phaser)**: Fast 2D game engine with configured scenes and arcade physics.
42
+
43
+ **Both environments include:**
39
44
  - **Angular**: Latest CLI, SCSS, Routing.
40
45
  - **Electron**: TypeScript Main/Preload processes, securely configured.
41
- - **Babylon.js**: Core dependencies pre-installed.
42
- - **Forge**: configured for building `.exe` / `.zip` / installers.
43
- - **Pro Template**: Includes a rotating wireframe plane, FPS counter, and real-time Camera Rotation (XYZ) tracker with a premium glassmorphic UI.
46
+ - **Forge**: Configured for building `.exe` / `.zip` / installers.
47
+ - **Valence UI**: Premium glassmorphic HUD with FPS and status tracking.
44
48
 
45
49
  ### `valence start`
46
50
  Runs the application in **Development Mode**:
@@ -55,6 +59,9 @@ Compiles the application for **Production**:
55
59
  - Optimizes assets.
56
60
  - Enforces relative paths (`baseHref="./"`) for Electron compatibility.
57
61
 
62
+ ### `valence test`
63
+ Runs the project's automated test suite (if configured).
64
+
58
65
  ### `valence package`
59
66
  Packages the application for distribution:
60
67
  - Runs `valence build`.
@@ -63,71 +70,67 @@ Packages the application for distribution:
63
70
 
64
71
  ### `valence publish`
65
72
  Automates the release pipeline:
66
- 1. Bumps project version (patch).
67
- 2. Updates `README.md` version badges.
68
- 3. Builds & Packages.
69
- 4. Generates `RELEASES_README.md` entry.
70
- 5. Publishes via Electron Forge (e.g., to GitHub Releases).
73
+ - Bumps project version (patch).
74
+ - Updates `README.md` version badges.
75
+ - Builds & Packages.
76
+ - Generates `RELEASES_README.md` entry.
77
+ - Publishes via Electron Forge.
71
78
 
72
- ### `valence generate scene <name>`
73
- *Alias: `valence g scene <name>`*
74
- Scaffolds a new **Babylon.js Scene component** in `src/app/scenes/<name>`:
75
- - Pre-wired `Engine` and `Scene` creation.
76
- - Includes Camera, Light, and Resize event handling.
77
- - Ready for 3D logic immediately.
79
+ ---
78
80
 
79
- ### `valence generate bridge <name>`
81
+ ## 🎮 Gameplay Services
80
82
 
81
- *Alias: `valence g bridge <name>`*
83
+ Valence can automatically inject core game systems into your project.
82
84
 
83
- Generates a type-safe IPC communication channel:
85
+ ### `valence add <feature>`
84
86
 
85
- - Main Process: Registers `ipcMain.handle` listener.
86
- - Preload: Exposes `contextBridge` API safe for Renderer.
87
- - Service: Creates an Angular service wrapper to call the API.
87
+ #### Core Systems
88
+ * **`input`**: Unified Action Mapping (Keyboard/Gamepad) via Angular Signals.
89
+ * **`audio`**: Channel-based audio manager (Master/Music/SFX) using Howler.js.
90
+ * **`storage`**: Secure, atomic file I/O for save games (Write-Temp-Rename pattern) via Electron IPC.
91
+ * **`settings`**: Centralized configuration manager (Audio/Graphics) persisted to storage.
92
+ * **`state`**: Strict Game State Machine (Boot, Menu, Gameplay, Paused) via Signals.
88
93
 
89
- ### `valence add <feature>`
94
+ #### 3D Features (Babylon.js)
95
+ * **`physics`**: Installs Havok engine (WASM) & initializes physics.
96
+ * **`inspector`**: Installs & binds Babylon Inspector to `Ctrl+I`.
97
+ * **`gui`**: Installs `lil-gui` debug panel.
98
+ * **`materials`**: Installs `@babylonjs/materials`.
99
+ * **`skybox`**: Creates environmental skybox.
100
+ * **`xr`**: Initializes WebXR (VR/AR) experience.
90
101
 
91
- Injects advanced capabilities into an existing project.
92
- **Now powered by AST (Abstract Syntax Tree)** parsing to safely inject code into `ValenceEngineService` without breaking your custom logic.
102
+ #### Universal Features
103
+ * **`tailwind`**: Configures TailwindCSS with Angular.
104
+ * **`multiplayer`**: Scaffolds Colyseus server & client.
105
+ * **`pipeline`**: Enables Asset Optimization Pipeline (sharp).
106
+ * **`native`**: Scaffolds Rust (Neon) native module.
93
107
 
94
- - `physics`: Installs Havok engine, configures WASM assets, and initializes physics in the global scene.
95
- - `inspector`: Installs `@babylonjs/inspector` and binds `Ctrl+I` to toggle the dedicated 3D debugger overlay.
96
- - `gui`: Installs `lil-gui` and creates a debug panel for tweaking parameters at runtime.
97
- - `materials`: Installs `@babylonjs/materials`, enabling Grid, Gradient, and other advanced materials.
98
- - `skybox`: Automatically creates a large skybox mesh to provide environmental context.
99
- - `xr`: Initializes WebXR default experience (Teleportation + Controller support) for VR/AR.
100
- - `tailwind`: Configures TailwindCSS with Angular (PostCSS, Config, Styles).
101
- - `multiplayer`: Scaffolds a dedicated Colyseus server and injects a real-time network client.
102
- - `pipeline`: Enables the Asset Optimization Pipeline (sharp) to auto-compress textures on build.
103
- - `native`: Scaffolds a Rust (Neon) native module for high-performance Node.js bindings.
108
+ ---
104
109
 
105
- ### `valence template <type>`
110
+ ## 🎲 Generators
106
111
 
107
- Swaps the default 3D scene logic for a genre-specific starter.
112
+ ### `valence generate scene <name>`
113
+ *Alias: `valence g scene <name>`*
114
+ Scaffolds a new Scene component:
115
+ * **3D**: Pre-wired Babylon.js `Scene` with Camera/Light/Resize handling.
116
+ * **2D**: Pre-wired Phaser `Scene` class with lifecycle methods.
108
117
 
109
- - `fps`: First Person Shooter setup (WASD + Mouse Look + Gravity + Collisions).
110
- - `orbit`: Product/Model Viewer setup (ArcRotateCamera + Studio Lighting).
111
- - `platformer`: Third-person follow camera with a capsule character controller.
112
- - `iso`: Isometric orthographic view (RTS/Strategy style) with tile grid,
113
- - `gallery`: First-person interactive walkthrough with raycast-based highlighting.
118
+ ### `valence generate bridge <name>`
119
+ *Alias: `valence g bridge <name>`*
120
+ Generates a type-safe IPC communication channel:
121
+ * **Main Process**: Registers `ipcMain.handle`.
122
+ * **Preload**: Exposes `contextBridge` API.
123
+ * **Service**: Creates Angular service wrapper.
114
124
 
115
125
  ### `valence codegen assets`
126
+ Scans `src/assets` and generates typed constants in `core/asset-keys.ts` for IntelliSense.
116
127
 
117
- Scans your `src/assets` folder and generates a TypeScript file (`core/asset-keys.ts`) with typed constants for every file path.
128
+ ---
118
129
 
119
- - Usage: `scene.createTexture(AssetKeys.TEXTURES_GRASS_PNG)`
130
+ ## 🩺 Diagnostics
120
131
 
121
132
  ### `valence doctor`
122
-
123
- Diagnoses your development environment:
124
- - Checks Node.js & NPM versions.
125
- - Verifies Git installation.
126
- - Checks for global Angular CLI (optional).
133
+ Diagnoses your development environment (Node, NPM, Git).
127
134
 
128
135
  ### `valence verify`
129
-
130
- Performs a deep health check of your project structure and configuration:
131
- - **Engine Service**: Validates `ValenceEngineService` class and `createScene` method structure.
132
- - **Electron Config**: Checks `main.ts` existence and `package.json` entry point (`dist/electron/main.js`).
133
- - **Build Config**: Verifies `angular.json` output paths and `index.html` base href for Electron compatibility.
136
+ Performs deep health check of project structure and configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,kBAyB/C,CAAA"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,kBAmD/C,CAAA"}
@@ -7,6 +7,11 @@ import { addNative } from './features/native.js';
7
7
  import { addPipeline } from './features/pipeline.js';
8
8
  import { addTailwind } from './features/tailwind.js';
9
9
  import { addInspector, addGui, addMaterials, addSkybox, addXr } from './features/assets.js';
10
+ import { addInput } from './features/input.js';
11
+ import { addAudio } from './features/audio.js';
12
+ import { addStorage } from './features/storage.js';
13
+ import { addSettings } from './features/settings.js';
14
+ import { addState } from './features/state.js';
10
15
  export const addFeature = async (feature) => {
11
16
  const cwd = process.cwd();
12
17
  const packageJsonPath = path.join(cwd, 'package.json');
@@ -17,6 +22,24 @@ export const addFeature = async (feature) => {
17
22
  if (packageJson.valence?.type !== 'valence-project') {
18
23
  console.warn(chalk.yellow('This does not strictly resemble a Valence project. Proceeding anyway...'));
19
24
  }
25
+ // Check Engine Compatibility
26
+ const valenceConfigPath = path.join(cwd, '.valence', 'valence.json');
27
+ let engineType = '3d'; // Default to 3d for legacy projects
28
+ if (await fs.pathExists(valenceConfigPath)) {
29
+ const config = await fs.readJson(valenceConfigPath);
30
+ if (config.engine)
31
+ engineType = config.engine;
32
+ }
33
+ const featureCompatibility = {
34
+ 'physics': ['3d'],
35
+ 'inspector': ['3d'],
36
+ 'materials': ['3d'],
37
+ 'skybox': ['3d'],
38
+ 'xr': ['3d'],
39
+ };
40
+ if (featureCompatibility[feature] && !featureCompatibility[feature].includes(engineType)) {
41
+ throw new Error(chalk.red(`Feature "${feature}" is not compatible with ${engineType.toUpperCase()} engine.`));
42
+ }
20
43
  switch (feature) {
21
44
  case 'physics':
22
45
  await addPhysics(cwd);
@@ -48,8 +71,23 @@ export const addFeature = async (feature) => {
48
71
  case 'native':
49
72
  await addNative(cwd);
50
73
  break;
74
+ case 'input':
75
+ await addInput(cwd);
76
+ break;
77
+ case 'audio':
78
+ await addAudio(cwd);
79
+ break;
80
+ case 'storage':
81
+ await addStorage(cwd);
82
+ break;
83
+ case 'settings':
84
+ await addSettings(cwd);
85
+ break;
86
+ case 'state':
87
+ await addState(cwd);
88
+ break;
51
89
  default:
52
- throw new Error(`Unknown feature: ${feature}. Available: physics, inspector, gui, materials, skybox, xr, tailwind, multiplayer, pipeline, native`);
90
+ throw new Error(`Unknown feature: ${feature}. Available: physics, inspector, gui, materials, skybox, xr, tailwind, multiplayer, pipeline, native, input, audio, storage, settings, state`);
53
91
  }
54
92
  };
55
93
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE5F,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,yEAAyE,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,SAAS;YAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QAC7C,KAAK,WAAW;YAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACjD,KAAK,KAAK;YAAE,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACrC,KAAK,WAAW;YAAE,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACjD,KAAK,QAAQ;YAAE,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QAC3C,KAAK,IAAI;YAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACnC,KAAK,UAAU;YAAE,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QAC/C,KAAK,aAAa;YAAE,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QACrD,KAAK,UAAU;YAAE,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QAC/C,KAAK,QAAQ;YAAE,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;QAC3C;YACI,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,sGAAsG,CAAC,CAAC;IAC3J,CAAC;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const addAudio: (projectPath: string) => Promise<void>;
2
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../src/commands/features/audio.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,GAAU,aAAa,MAAM,kBAcjD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import fs from 'fs-extra';
2
+ import * as path from 'path';
3
+ import chalk from 'chalk';
4
+ import { execa } from 'execa';
5
+ import { audioServiceTemplate } from '../../templates.js';
6
+ export const addAudio = async (projectPath) => {
7
+ console.log(chalk.blue('Installing Audio System...'));
8
+ // 1. Install Howler
9
+ await execa('npm', ['install', 'howler', '@types/howler'], { cwd: projectPath, stdio: 'inherit' });
10
+ // 2. Create Service
11
+ const audioDir = path.join(projectPath, 'src/app/core/audio');
12
+ await fs.ensureDir(audioDir);
13
+ await fs.writeFile(path.join(audioDir, 'audio.service.ts'), audioServiceTemplate.trim());
14
+ console.log(chalk.green('✓ Audio Service created at src/app/core/audio/audio.service.ts'));
15
+ console.log(chalk.gray(' (Dependencies: howler installed)'));
16
+ };
17
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../src/commands/features/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,oBAAoB;IACpB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAEnG,oBAAoB;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE7B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC;IAEzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const addInput: (projectPath: string) => Promise<void>;
2
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/commands/features/input.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ,GAAU,aAAa,MAAM,kBAUjD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import fs from 'fs-extra';
2
+ import * as path from 'path';
3
+ import chalk from 'chalk';
4
+ import { inputServiceTemplate } from '../../templates.js';
5
+ export const addInput = async (projectPath) => {
6
+ console.log(chalk.blue('Installing Input System...'));
7
+ const inputDir = path.join(projectPath, 'src/app/core/input');
8
+ await fs.ensureDir(inputDir);
9
+ await fs.writeFile(path.join(inputDir, 'input.service.ts'), inputServiceTemplate.trim());
10
+ console.log(chalk.green('✓ Input Service created at src/app/core/input/input.service.ts'));
11
+ console.log(chalk.gray(' (Auto-binds WASD, Arrows, Space, and Gamepad 1)'));
12
+ };
13
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/commands/features/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE7B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC;IAEzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,iBAkF1C"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,iBA0E1C"}
@@ -26,14 +26,6 @@ export async function addNative(cwd) {
26
26
  await fs.writeFile(path.join(nativeDir, 'src', 'lib.rs'), nativeLibRs.trim());
27
27
  return 'Native files created';
28
28
  });
29
- // 2. Install Deps - Skipped (No npm deps needed for direct cargo build)
30
- /*
31
- await runStage('Installing Native Deps', async (spinner) => {
32
- const nativeDir = path.join(cwd, 'native');
33
- await execWithScrollingLogger(spinner, 'npm', ['install'], { cwd: nativeDir, title: 'Installing neon...', rows: 5 });
34
- return 'Neon installed';
35
- });
36
- */
37
29
  await runStage('Linking Native Module', async (spinner) => {
38
30
  const rootPkgPath = path.join(cwd, 'package.json');
39
31
  const rootPkg = await fs.readJSON(rootPkgPath);
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/commands/features/native.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const addSettings: (projectPath: string) => Promise<void>;
2
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/commands/features/settings.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,GAAU,aAAa,MAAM,kBAUpD,CAAC"}