@gxp-dev/tools 2.0.36 → 2.0.38

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 CHANGED
@@ -1,244 +1,151 @@
1
1
  # GxP Dev Tools
2
2
 
3
- A development devtools for creating plugins for the GxP kiosk platform. This package provides CLI tools, project scaffolding, and a development environment that emulates the GxP platform.
3
+ A development toolkit for creating plugins for the GxP kiosk platform. Provides CLI tools, project scaffolding, an interactive TUI, and a development environment that emulates the GxP platform.
4
4
 
5
5
  ## Installation
6
6
 
7
+ ### Global (Recommended)
8
+
9
+ ```bash
10
+ npm install -g @gxp-dev/tools
11
+ ```
12
+
13
+ ### Project-Level
14
+
7
15
  ```bash
8
- pnpm install -g @gxp-dev/tools
16
+ npm install --save-dev @gxp-dev/tools
9
17
  ```
10
18
 
11
- Or use it as a dev dependency in your project:
19
+ ### Updating
12
20
 
13
21
  ```bash
14
- pnpm install --save-dev @gxp-dev/tools
22
+ # Global
23
+ npm update -g @gxp-dev/tools
24
+
25
+ # Project-level
26
+ npm update @gxp-dev/tools
15
27
  ```
16
28
 
29
+ After updating, run `gxdev init` in existing projects to sync dependencies and config files.
30
+
17
31
  ## Quick Start
18
32
 
19
- Create a new GxP plugin project:
33
+ ### New Project
20
34
 
21
35
  ```bash
22
36
  gxdev init my-plugin
23
37
  cd my-plugin
24
- git init
25
- pnpm run dev
38
+ npm run dev-http
39
+ ```
40
+
41
+ Your plugin is running at `http://localhost:3060`. Press `Ctrl+Shift+D` to open the in-browser Dev Tools.
42
+
43
+ ### Existing Project
44
+
45
+ If you already have a Vue/Vite project:
46
+
47
+ ```bash
48
+ cd my-existing-project
49
+ gxdev init
50
+ npm install
51
+ npm run dev-http
26
52
  ```
27
53
 
54
+ When run in a directory with an existing `package.json` (no name argument), `gxdev init` will:
55
+ - Add missing required dependencies and devDependencies
56
+ - Update mismatched dependency versions
57
+ - Add missing npm scripts (`dev`, `build`, `dev-http`, etc.)
58
+ - Back up your existing `vite.config.js` to `vite.config.js.backup`
59
+ - Copy config files (`app-manifest.json`, `.env.example`, store setup, AI agent configs)
60
+
61
+ It will **not** overwrite your source files (`src/`, `theme-layouts/`, etc.).
62
+
28
63
  ## CLI Commands
29
64
 
30
65
  | Command | Description |
31
66
  |---------|-------------|
67
+ | `gxdev` | Launch interactive TUI |
32
68
  | `gxdev init [name]` | Create a new project or update an existing one |
33
- | `gxdev dev` | Start development server with HTTPS and Socket.IO |
34
- | `gxdev dev --no-https` | Start development server with HTTP only |
69
+ | `gxdev dev` | Start development server (HTTPS + TUI) |
70
+ | `gxdev dev --no-https` | Start with HTTP only |
71
+ | `gxdev dev --with-socket` | Start with Socket.IO server |
72
+ | `gxdev dev --chrome` | Start and launch Chrome with extension |
73
+ | `gxdev dev --firefox` | Start and launch Firefox with extension |
35
74
  | `gxdev build` | Build plugin for production |
36
75
  | `gxdev setup-ssl` | Generate SSL certificates for HTTPS development |
37
76
  | `gxdev publish <file>` | Copy runtime files to your project for customization |
38
77
  | `gxdev datastore <action>` | Manage GxP datastore (list, add, scan-strings, config) |
39
78
  | `gxdev socket <action>` | Simulate socket events (list, send) |
40
79
  | `gxdev assets <action>` | Manage development assets (list, init, generate) |
41
- | `gxdev ext:firefox` | Launch Firefox with browser extension |
80
+ | `gxdev add-dependency` | Add API dependency via interactive wizard |
81
+ | `gxdev extract-config` | Extract GxP config from source files |
42
82
  | `gxdev ext:chrome` | Launch Chrome with browser extension |
83
+ | `gxdev ext:firefox` | Launch Firefox with browser extension |
43
84
  | `gxdev ext:build` | Build browser extensions for distribution |
44
85
 
45
86
  ## Features
46
87
 
47
- - **Platform Emulator**: PortalContainer.vue mimics the GxP platform environment
48
- - **Hot Module Replacement**: Instant updates during development
49
- - **Socket.IO Integration**: Test real-time features with simulated events
50
- - **SSL Support**: HTTPS development with auto-generated certificates
51
- - **Browser Extensions**: Test plugins on live GxP pages
52
- - **Dev Tools Modal**: In-browser tools for inspecting state, switching layouts, and more
53
- - **Asset Generation**: Create placeholder images for development
54
-
55
- ---
88
+ - **Platform Emulator** - PortalContainer.vue mimics the GxP platform environment
89
+ - **Interactive TUI** - Terminal UI for managing dev services, logs, and slash commands
90
+ - **Hot Module Replacement** - Instant updates during development
91
+ - **Socket.IO Integration** - Test real-time features with simulated events
92
+ - **SSL Support** - HTTPS development with auto-generated certificates
93
+ - **Browser Extensions** - Chrome/Firefox DevTools panel for inspecting plugins
94
+ - **Dev Tools Modal** - In-browser tools for inspecting state, switching layouts, and more (Ctrl+Shift+D)
95
+ - **AI Scaffolding** - Generate starter code with Claude, Codex, or Gemini during init
96
+ - **Mock API** - Local mock API server with OpenAPI spec integration
97
+ - **Asset Generation** - Create placeholder images for development
56
98
 
57
- # DevTools Development Guide
99
+ ## Project Structure
58
100
 
59
- This section is for developers contributing to the devtools itself.
60
-
61
- ## Repository Structure
101
+ After `gxdev init`, your project contains:
62
102
 
63
103
  ```
64
- gx-devtools/
65
- ├── bin/ # CLI tool
66
- │ ├── gx-devtools.js # Entry point (delegates to lib/cli.js)
67
- └── lib/ # Modular CLI components
68
- │ ├── cli.js # Yargs command definitions
69
- │ ├── constants.js # Dependencies, scripts, ports
70
- │ ├── commands/ # Individual command modules
71
- │ │ ├── init.js # gxdev init
72
- │ │ ├── dev.js # gxdev dev
73
- │ │ ├── build.js # gxdev build
74
- │ │ ├── publish.js # gxdev publish
75
- │ │ ├── ssl.js # gxdev setup-ssl
76
- │ │ ├── datastore.js
77
- │ │ ├── socket.js
78
- │ │ ├── assets.js
79
- │ │ └── extensions.js
80
- │ └── utils/ # Shared utilities
81
- │ ├── paths.js # Path resolution
82
- │ ├── ssl.js # SSL certificate management
83
- │ ├── files.js # File operations
84
- │ └── prompts.js # User prompts
85
- ├── runtime/ # Files used from node_modules (NOT copied to projects)
86
- │ ├── PortalContainer.vue # Platform emulator (immutable for users)
87
- │ ├── server.js # Socket.IO development server
88
- │ ├── dev-tools/ # In-browser development tools
89
- │ │ ├── DevToolsModal.vue
90
- │ │ ├── StoreInspector.vue
91
- │ │ ├── LayoutSwitcher.vue
92
- │ │ ├── SocketSimulator.vue
93
- │ │ └── MockDataEditor.vue
104
+ my-plugin/
105
+ ├── src/
106
+ │ ├── Plugin.vue # Main plugin entry point
107
+ ├── DemoPage.vue # Example component
94
108
  │ └── stores/
95
- │ └── gxpPortalConfigStore.js # Core Pinia store
96
- ├── template/ # Files copied to new projects during init
97
- ├── src/
98
- │ │ ├── Plugin.vue # User's app entry point
99
- │ │ ├── DemoPage.vue # Example component
100
- │ │ └── stores/ # Store setup
101
- │ ├── theme-layouts/ # Layout templates
102
- │ ├── dev-assets/ # Placeholder images
103
- │ ├── main.js # Dev entry point
104
- │ ├── vite.config.js # Project build config
105
- │ └── ...
106
- ├── socket-events/ # Socket event templates for simulation
107
- ├── browser-extensions/ # Chrome and Firefox extensions
108
- │ ├── chrome/
109
- │ └── firefox/
110
- └── scripts/ # Build and launch scripts
109
+ │ └── index.js # Pinia store setup
110
+ ├── theme-layouts/ # Layout components (Public, Private, System)
111
+ ├── dev-assets/images/ # Development placeholder images
112
+ ├── socket-events/ # Socket event templates
113
+ ├── app-manifest.json # Plugin configuration (strings, settings, assets)
114
+ ├── .env # Environment variables
115
+ └── package.json
111
116
  ```
112
117
 
113
- ## Key Concepts
114
-
115
- ### Runtime vs Template
116
-
117
- - **`/runtime/`**: Files that stay in node_modules and are imported at runtime via the `@gx-runtime` Vite alias. Users cannot modify these files directly.
118
-
119
- - **`/template/`**: Files copied to user projects during `gxdev init`. Users can edit these files.
120
-
121
- ### Vite Aliases
122
-
123
- Projects use these aliases (defined in `template/vite.config.js`):
118
+ The dev server automatically serves `index.html` and `main.js` from the toolkit runtime — no local copies needed.
124
119
 
125
- - `@` → Project's `src/` directory
126
- - `@layouts` → Project's `theme-layouts/` directory
127
- - `@gx-runtime` → DevTools's `runtime/` directory (from node_modules)
120
+ ## Environment Variables
128
121
 
129
- ### PortalContainer.vue
122
+ Key variables (set in `.env`):
130
123
 
131
- The platform emulator that wraps user plugins during development. It:
132
- - Provides mock router, theme, and navigation
133
- - Injects props that the real platform provides
134
- - Includes the dev tools modal (Ctrl+Shift+D)
135
- - Lives in `/runtime/` so users can't accidentally modify it
136
-
137
- ## Setting Up for Development
138
-
139
- 1. **Clone the repository**:
140
- ```bash
141
- git clone https://github.com/GramercyTech/gx-devtools.git
142
- cd gx-devtools
143
- ```
144
-
145
- 2. **Install dependencies**:
146
- ```bash
147
- pnpm install
148
- ```
149
-
150
- 3. **Link for local testing**:
151
- ```bash
152
- pnpm link
153
- ```
154
-
155
- 4. **Create a test project**:
156
- ```bash
157
- mkdir /tmp/test-project
158
- cd /tmp/test-project
159
- gxdev init test-app
160
- cd test-app
161
-
162
- # Link to local devtools instead of published version
163
- rm -rf node_modules/@gxp-dev/tools
164
- mkdir -p node_modules/@gramercytech
165
- ln -s /path/to/gx-devtools node_modules/@gxp-dev/tools
166
-
167
- pnpm run dev-http
168
- ```
169
-
170
- ## Making Changes
171
-
172
- ### Adding a New CLI Command
173
-
174
- 1. Create a new file in `bin/lib/commands/`:
175
- ```javascript
176
- // bin/lib/commands/mycommand.js
177
- function myCommand(argv) {
178
- console.log("My command running!");
179
- }
180
- module.exports = { myCommand };
181
- ```
182
-
183
- 2. Export from `bin/lib/commands/index.js`
184
-
185
- 3. Register in `bin/lib/cli.js`:
186
- ```javascript
187
- .command('mycommand', 'Description', {}, myCommand)
188
- ```
189
-
190
- ### Modifying the Dev Tools Modal
191
-
192
- Dev tools components are in `/runtime/dev-tools/`. Changes here affect all projects using the devtools.
193
-
194
- ### Adding Template Files
195
-
196
- Add files to `/template/` and update `bin/lib/commands/init.js` to copy them during project creation.
197
-
198
- ## Testing
199
-
200
- ### Manual Testing
201
-
202
- ```bash
203
- # Test CLI help
204
- node bin/gx-devtools.js --help
205
-
206
- # Test init command
207
- cd /tmp && rm -rf test-project
208
- node /path/to/gx-devtools/bin/gx-devtools.js init test-project
209
-
210
- # Test dev server (after linking)
211
- cd test-project
212
- pnpm run dev-http
213
-
214
- # Test build
215
- pnpm run build
216
- ```
124
+ | Variable | Default | Description |
125
+ |----------|---------|-------------|
126
+ | `NODE_PORT` | `3060` | Development server port |
127
+ | `SOCKET_IO_PORT` | `3061` | Socket.IO server port |
128
+ | `COMPONENT_PATH` | `./src/Plugin.vue` | Main component path |
129
+ | `USE_HTTPS` | `true` | Enable HTTPS |
130
+ | `CERT_PATH` | | SSL certificate path |
131
+ | `KEY_PATH` | | SSL private key path |
132
+ | `USE_LOCAL_INDEX` | | Set to `true` to use a local `index.html` instead of the runtime version |
133
+ | `USE_LOCAL_MAIN` | | Set to `true` to use a local `main.js` instead of the runtime version |
134
+ | `SOCKET_IO_ENABLED` | `false` | Auto-start Socket.IO |
135
+ | `API_ENV` | `mock` | API environment (mock, local, development, staging, production) |
217
136
 
218
- ### Verifying Changes
137
+ ## Runtime vs Template
219
138
 
220
- 1. Create a fresh test project
221
- 2. Link the local devtools
222
- 3. Run `pnpm run dev-http` and verify the app loads
223
- 4. Run `pnpm run build` and check `dist/` output
224
- 5. Test dev tools with Ctrl+Shift+D
139
+ - **Runtime files** stay in `node_modules/` and are served automatically (`index.html`, `main.js`, store, dev tools, Vite config). Override `index.html`/`main.js` with `USE_LOCAL_INDEX`/`USE_LOCAL_MAIN` env vars. Use `gxdev publish` to copy other runtime files locally for customization.
140
+ - **Template files** are copied to your project during `gxdev init` and are fully yours to edit.
225
141
 
226
- ## Publishing
142
+ ## Documentation
227
143
 
228
- 1. Update version in `package.json`
229
- 2. Ensure all new directories are included (runtime/, template/, socket-events/)
230
- 3. Run `pnpm publish`
144
+ Full documentation is available at the [GxP Documentation site](https://docs.gramercytech.com/gx-devtools).
231
145
 
232
- ## Dependencies
146
+ ## Contributing
233
147
 
234
- The devtools uses:
235
- - **Vite** - Build tool and dev server
236
- - **Vue 3** - UI framework
237
- - **Pinia** - State management
238
- - **Socket.IO** - Real-time communication
239
- - **yargs** - CLI argument parsing
240
- - **shelljs** - Shell commands
241
- - **mkcert** - SSL certificate generation
148
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup, architecture details, and how to make changes to the toolkit itself.
242
149
 
243
150
  ## License
244
151
 
@@ -78,7 +78,7 @@ if (!isOneShot) {
78
78
  })();
79
79
  } else {
80
80
  // TUI not compiled yet, use traditional CLI
81
- console.log('Note: TUI not yet available. Run "pnpm run build:tui" to enable interactive mode.');
81
+ console.log('Note: TUI not yet available. Run "npm run build:tui" to enable interactive mode.');
82
82
  require("./lib/cli");
83
83
  }
84
84
  } else {
@@ -322,7 +322,7 @@ async function buildCommand(argv) {
322
322
 
323
323
  const command = [
324
324
  ...envVars,
325
- `pnpm exec vite build --config "${viteConfigPath}"`,
325
+ `npx vite build --config "${viteConfigPath}"`,
326
326
  ].join(" && ");
327
327
 
328
328
  const result = shell.exec(command);
@@ -403,7 +403,7 @@ async function initDatastoreInExistingProject() {
403
403
 
404
404
  // Install new dependencies
405
405
  console.log("📦 Installing dependencies...");
406
- const result = shell.exec("pnpm install", {
406
+ const result = shell.exec("npm install", {
407
407
  cwd: projectPath,
408
408
  silent: false,
409
409
  });
@@ -411,16 +411,16 @@ async function initDatastoreInExistingProject() {
411
411
  if (result.code === 0) {
412
412
  console.log("✅ GxP Datastore added successfully!");
413
413
  console.log("");
414
- console.log("📊 Manage test data with: pnpm run datastore:add");
415
- console.log("🔍 Scan components for strings: pnpm run datastore:scan");
416
- console.log("📋 List all store variables: pnpm run datastore:list");
414
+ console.log("📊 Manage test data with: npm run datastore:add");
415
+ console.log("🔍 Scan components for strings: npm run datastore:scan");
416
+ console.log("📋 List all store variables: npm run datastore:list");
417
417
  console.log("");
418
418
  console.log("💡 Update your components to use the store:");
419
419
  console.log(' import { useGxpStore } from "/src/stores/index.js"');
420
420
  console.log(" const gxpStore = useGxpStore()");
421
421
  } else {
422
422
  console.error(
423
- '❌ Failed to install dependencies. Please run "pnpm install" manually.'
423
+ '❌ Failed to install dependencies. Please run "npm install" manually.'
424
424
  );
425
425
  }
426
426
  } catch (error) {
@@ -50,7 +50,7 @@ function getBrowserExtensionConfig(browser, projectPath, paths, options = {}) {
50
50
  return {
51
51
  name: "FIREFOX",
52
52
  color: "yellow",
53
- command: `pnpm exec web-ext run --source-dir "${extensionPath}" --start-url "${startUrl}"`,
53
+ command: `npx web-ext run --source-dir "${extensionPath}" --start-url "${startUrl}"`,
54
54
  extensionPath,
55
55
  startUrl,
56
56
  };
@@ -127,7 +127,7 @@ function devCommand(argv) {
127
127
 
128
128
  if (!existingCerts) {
129
129
  console.log(
130
- "⚠ SSL certificates not found. Run 'pnpm run setup-ssl' to enable HTTPS"
130
+ "⚠ SSL certificates not found. Run 'npm run setup-ssl' to enable HTTPS"
131
131
  );
132
132
  console.log("🌐 Starting HTTP development server...");
133
133
  useHttps = false;
@@ -280,7 +280,7 @@ function devCommand(argv) {
280
280
  // Vite is always included
281
281
  const viteCommand = [
282
282
  ...envVars,
283
- `pnpm exec vite dev --config "${viteConfigPath}"`,
283
+ `npx vite dev --config "${viteConfigPath}"`,
284
284
  ].join(" && ");
285
285
  processes.push(`"${viteCommand}"`);
286
286
  names.push("VITE");
@@ -288,7 +288,7 @@ function devCommand(argv) {
288
288
 
289
289
  // Socket server (optional)
290
290
  if (withSocket && serverJsPath) {
291
- processes.push(`"pnpm exec nodemon \\"${serverJsPath}\\""`);
291
+ processes.push(`"npx nodemon \\"${serverJsPath}\\""`);
292
292
  names.push("SOCKET");
293
293
  colors.push("green");
294
294
  }
@@ -310,12 +310,12 @@ function devCommand(argv) {
310
310
  // Build the final command
311
311
  if (processes.length > 1) {
312
312
  // Use concurrently to run multiple processes
313
- command = `pnpm exec concurrently --names "${names.join(
313
+ command = `npx concurrently --names "${names.join(
314
314
  ","
315
315
  )}" --prefix-colors "${colors.join(",")}" ${processes.join(" ")}`;
316
316
  } else {
317
317
  // Just run Vite dev server alone
318
- command = [...envVars, `pnpm exec vite dev --config "${viteConfigPath}"`].join(
318
+ command = [...envVars, `npx vite dev --config "${viteConfigPath}"`].join(
319
319
  " && "
320
320
  );
321
321
  }
@@ -45,7 +45,7 @@ function extensionFirefoxCommand() {
45
45
 
46
46
  console.log("🦊 Launching Firefox with extension...");
47
47
  console.log("📁 Extension path:", extensionPath);
48
- shell.exec(`pnpm exec web-ext run --source-dir "${extensionPath}"`);
48
+ shell.exec(`npx web-ext run --source-dir "${extensionPath}"`);
49
49
  }
50
50
 
51
51
  /**
@@ -245,7 +245,7 @@ function extensionBuildCommand() {
245
245
  ? "dist/firefox"
246
246
  : path.join(projectPath, "dist/firefox");
247
247
  shell.exec(
248
- `pnpm exec web-ext build --source-dir "${firefoxPath}" --artifacts-dir "${outputDir}"`
248
+ `npx web-ext build --source-dir "${firefoxPath}" --artifacts-dir "${outputDir}"`
249
249
  );
250
250
  } else {
251
251
  console.log("⚠️ No Firefox extension found to build");
@@ -65,11 +65,6 @@ function copyTemplateFiles(projectPath, paths, overwrite = false) {
65
65
  dest: "theme-layouts/AdditionalStyling.css",
66
66
  desc: "AdditionalStyling.css",
67
67
  },
68
- {
69
- src: "src/stores/index.js",
70
- dest: "src/stores/index.js",
71
- desc: "Pinia store setup",
72
- },
73
68
  {
74
69
  src: "src/Plugin.vue",
75
70
  dest: "src/Plugin.vue",
@@ -80,6 +75,23 @@ function copyTemplateFiles(projectPath, paths, overwrite = false) {
80
75
  dest: "src/DemoPage.vue",
81
76
  desc: "DemoPage.vue (Example component)",
82
77
  },
78
+ ];
79
+
80
+ // Copy template files
81
+ filesToCopy.forEach((file) => {
82
+ const srcPath = path.join(paths.templateDir, file.src);
83
+ const destPath = path.join(projectPath, file.dest);
84
+ safeCopyFile(srcPath, destPath, file.desc, overwrite);
85
+ });
86
+ }
87
+
88
+ function copyBundleFiles(projectPath, paths, overwrite = false) {
89
+ const filesToCopy = [
90
+ {
91
+ src: "src/stores/index.js",
92
+ dest: "src/stores/index.js",
93
+ desc: "Pinia store setup",
94
+ },
83
95
  {
84
96
  src: "default-styling.css",
85
97
  dest: "default-styling.css",
@@ -137,7 +149,6 @@ function copyTemplateFiles(projectPath, paths, overwrite = false) {
137
149
  safeCopyFile(srcPath, destPath, file.desc, overwrite);
138
150
  });
139
151
  }
140
-
141
152
  /**
142
153
  * Copy extension scripts to project
143
154
  * @param {string} projectPath - Target project path
@@ -262,7 +273,7 @@ function launchDevServer(projectPath, options = {}) {
262
273
 
263
274
  console.log(`\n🚀 Starting development server...`);
264
275
 
265
- const child = spawn("pnpm", args, {
276
+ const child = spawn("npm", args, {
266
277
  cwd: projectPath,
267
278
  stdio: "inherit",
268
279
  shell: true,
@@ -341,9 +352,9 @@ async function runInteractiveConfig(projectPath, initialName, isLocal = false) {
341
352
  if (availableProviders.length === 0) {
342
353
  console.log(" ⚠️ No AI providers available.");
343
354
  console.log(" To enable AI scaffolding, set up one of:");
344
- console.log(" • Claude CLI: pnpm install -g @anthropic-ai/claude-code && claude login");
345
- console.log(" • Codex CLI: pnpm install -g @openai/codex && codex auth");
346
- console.log(" • Gemini CLI: pnpm install -g @google/gemini-cli && gemini");
355
+ console.log(" • Claude CLI: npm install -g @anthropic-ai/claude-code && claude login");
356
+ console.log(" • Codex CLI: npm install -g @openai/codex && codex auth");
357
+ console.log(" • Gemini CLI: npm install -g @google/gemini-cli && gemini");
347
358
  console.log(" • Gemini API: export GEMINI_API_KEY=your_key");
348
359
  console.log("");
349
360
  aiChoice = "skip";
@@ -405,7 +416,7 @@ async function runInteractiveConfig(projectPath, initialName, isLocal = false) {
405
416
 
406
417
  const sslChoice = await arrowSelectPrompt("Set up SSL certificates for HTTPS development?", [
407
418
  { label: "Yes, set up SSL", value: "yes", description: "Recommended for full feature access" },
408
- { label: "Skip SSL setup", value: "no", description: "Can be set up later with pnpm run setup-ssl" },
419
+ { label: "Skip SSL setup", value: "no", description: "Can be set up later with npm run setup-ssl" },
409
420
  ]);
410
421
 
411
422
  let sslSetup = false;
@@ -504,11 +515,11 @@ function printFinalInstructions(projectPath, projectName, sslSetup, isLocal = fa
504
515
  console.log(` cd ${projectName}`);
505
516
  }
506
517
  if (sslSetup) {
507
- console.log(" pnpm run dev # HTTPS with TUI");
508
- console.log(" pnpm run dev-http # HTTP only");
518
+ console.log(" npm run dev # HTTPS with TUI");
519
+ console.log(" npm run dev-http # HTTP only");
509
520
  } else {
510
- console.log(" pnpm run dev-http # HTTP dev server");
511
- console.log(" pnpm run setup-ssl # Then pnpm run dev for HTTPS");
521
+ console.log(" npm run dev-http # HTTP dev server");
522
+ console.log(" npm run setup-ssl # Then npm run dev for HTTPS");
512
523
  }
513
524
  console.log("");
514
525
  console.log("📚 Documentation: https://docs.gramercytech.com/gxp-toolkit");
@@ -523,7 +534,10 @@ async function initCommand(argv) {
523
534
  const hasPackageJson = fs.existsSync(path.join(currentDir, "package.json"));
524
535
  let projectPath = currentDir;
525
536
  let projectName;
537
+
526
538
  const overwrite = argv.local && argv.yes;
539
+ // Copy template files
540
+ const paths = resolveGxPaths();
527
541
 
528
542
  // Handle --local flag: initialize in current directory
529
543
  if (argv.local) {
@@ -541,6 +555,7 @@ async function initCommand(argv) {
541
555
  if (hasPackageJson && !argv.name) {
542
556
  console.log("Updating existing project...");
543
557
  updateExistingProject(projectPath);
558
+ copyBundleFiles(projectPath, paths, false);
544
559
  console.log("✅ Project updated!");
545
560
  return;
546
561
  }
@@ -588,9 +603,9 @@ async function initCommand(argv) {
588
603
  console.log("⏭️ Skipping package.json (already exists)");
589
604
  }
590
605
 
591
- // Copy template files
592
- const paths = resolveGxPaths();
606
+
593
607
  copyTemplateFiles(projectPath, paths, overwrite);
608
+ copyBundleFiles(projectPath, paths, overwrite);
594
609
  copyExtensionScripts(projectPath, paths, overwrite);
595
610
  createSupportingFiles(projectPath);
596
611
 
@@ -140,7 +140,7 @@ async function sendSocketEvent(eventName, identifier) {
140
140
  if (error.code === "ECONNREFUSED") {
141
141
  console.error("❌ Cannot connect to Socket.IO server");
142
142
  console.log("💡 Make sure the server is running:");
143
- console.log(" pnpm run dev");
143
+ console.log(" npm run dev");
144
144
  console.log(" or");
145
145
  console.log(" nodemon server.js");
146
146
  } else {
@@ -33,11 +33,11 @@ function setupSSLCommand() {
33
33
  console.log("🔒 Your development server will now use HTTPS");
34
34
  console.log("📁 Certificates stored in .certs/ directory");
35
35
  console.log(
36
- "🚀 Run 'pnpm run dev' to start HTTPS development with Socket.IO"
36
+ "🚀 Run 'npm run dev' to start HTTPS development with Socket.IO"
37
37
  );
38
38
  } else {
39
39
  console.log(
40
- "❌ SSL setup failed. You can still use HTTP with 'pnpm run dev-http'"
40
+ "❌ SSL setup failed. You can still use HTTP with 'npm run dev-http'"
41
41
  );
42
42
  }
43
43
  }
@@ -32,8 +32,8 @@ export function startTUI(options: TUIOptions = {}) {
32
32
  console.error('Try running the command directly from your terminal, not from a script or pipe.');
33
33
  console.error('');
34
34
  console.error('Alternatively, use the non-TUI commands:');
35
- console.error(' pnpm run dev # Start Vite dev server');
36
- console.error(' pnpm run dev-http # Start HTTP dev server');
35
+ console.error(' npm run dev # Start Vite dev server');
36
+ console.error(' npm run dev-http # Start HTTP dev server');
37
37
  console.error(' gxdev socket list # List socket events');
38
38
  process.exit(1);
39
39
  return;
@@ -93,7 +93,7 @@ export function getAvailableProviders(): AIProviderInfo[] {
93
93
  id: 'claude',
94
94
  name: 'Claude',
95
95
  available: false,
96
- reason: 'Install: pnpm i -g @anthropic-ai/claude-code && claude login',
96
+ reason: 'Install: npm i -g @anthropic-ai/claude-code && claude login',
97
97
  });
98
98
  }
99
99
 
@@ -109,7 +109,7 @@ export function getAvailableProviders(): AIProviderInfo[] {
109
109
  id: 'codex',
110
110
  name: 'Codex',
111
111
  available: false,
112
- reason: 'Install: pnpm i -g @openai/codex && codex auth',
112
+ reason: 'Install: npm i -g @openai/codex && codex auth',
113
113
  });
114
114
  }
115
115
 
@@ -144,7 +144,7 @@ export function getAvailableProviders(): AIProviderInfo[] {
144
144
  id: 'gemini',
145
145
  name: 'Gemini',
146
146
  available: false,
147
- reason: 'Install: pnpm i -g @google/gemini-cli && gemini',
147
+ reason: 'Install: npm i -g @google/gemini-cli && gemini',
148
148
  });
149
149
  }
150
150
  } else {
@@ -152,7 +152,7 @@ export function getAvailableProviders(): AIProviderInfo[] {
152
152
  id: 'gemini',
153
153
  name: 'Gemini',
154
154
  available: false,
155
- reason: 'Install: pnpm i -g @google/gemini-cli && gemini',
155
+ reason: 'Install: npm i -g @google/gemini-cli && gemini',
156
156
  });
157
157
  }
158
158
 
@@ -102,8 +102,8 @@ export function startExtension(options: ExtensionOptions): void {
102
102
  const config: ServiceConfig = {
103
103
  id: serviceId,
104
104
  name: 'Firefox Extension',
105
- command: 'pnpm',
106
- args: ['exec', 'web-ext', 'run', '--source-dir', extensionPath, '--start-url', startUrl],
105
+ command: 'npx',
106
+ args: ['web-ext', 'run', '--source-dir', extensionPath, '--start-url', startUrl],
107
107
  cwd,
108
108
  env: {
109
109
  FORCE_COLOR: '1',
@@ -89,8 +89,8 @@ export function startVite(options: ViteOptions = {}): void {
89
89
  const config: ServiceConfig = {
90
90
  id: 'vite',
91
91
  name: 'Vite',
92
- command: 'pnpm',
93
- args: ['exec', 'vite', 'dev', '--config', viteConfigPath],
92
+ command: 'npx',
93
+ args: ['vite', 'dev', '--config', viteConfigPath],
94
94
  cwd,
95
95
  env,
96
96
  };
@@ -162,7 +162,7 @@ async function checkClaudeAvailable() {
162
162
  return {
163
163
  available: false,
164
164
  reason:
165
- "Claude CLI not installed. Install with: pnpm install -g @anthropic-ai/claude-code",
165
+ "Claude CLI not installed. Install with: npm install -g @anthropic-ai/claude-code",
166
166
  };
167
167
  }
168
168
  }
@@ -180,7 +180,7 @@ async function checkCodexAvailable() {
180
180
  return {
181
181
  available: false,
182
182
  reason:
183
- "Codex CLI not installed. Install with: pnpm install -g @openai/codex",
183
+ "Codex CLI not installed. Install with: npm install -g @openai/codex",
184
184
  };
185
185
  }
186
186
  }
@@ -222,7 +222,7 @@ async function checkGeminiAvailable() {
222
222
  available: false,
223
223
  reason:
224
224
  "Gemini requires one of:\n" +
225
- " • Gemini CLI logged in (pnpm i -g @google/gemini-cli && gemini), or\n" +
225
+ " • Gemini CLI logged in (npm i -g @google/gemini-cli && gemini), or\n" +
226
226
  " • GEMINI_API_KEY environment variable, or\n" +
227
227
  " • gcloud CLI logged in (gcloud auth login)",
228
228
  };
@@ -109,9 +109,9 @@ function installDependencies(projectPath) {
109
109
 
110
110
  try {
111
111
  process.chdir(projectPath);
112
- const result = shell.exec("pnpm install", { silent: false });
112
+ const result = shell.exec("npm install", { silent: false });
113
113
  if (result.code !== 0) {
114
- console.warn("⚠ pnpm install completed with warnings");
114
+ console.warn("⚠ npm install completed with warnings");
115
115
  }
116
116
  } finally {
117
117
  process.chdir(currentDir);
@@ -25,7 +25,7 @@ function ensureMkcertInstalled() {
25
25
  }
26
26
 
27
27
  console.log("Installing mkcert globally...");
28
- const result = shell.exec("pnpm install -g mkcert", { silent: true });
28
+ const result = shell.exec("npm install -g mkcert", { silent: true });
29
29
 
30
30
  if (result.code === 0) {
31
31
  console.log("✓ mkcert installed successfully");
@@ -135,7 +135,7 @@ function generateSSLCertificates(projectPath) {
135
135
  let mkcertCmd = "mkcert";
136
136
  if (!isMkcertInstalled()) {
137
137
  // Use local mkcert via npx
138
- mkcertCmd = "pnpm exec mkcert";
138
+ mkcertCmd = "npx mkcert";
139
139
  }
140
140
 
141
141
  // Change to certs directory and generate certificates
package/dist/tui/index.js CHANGED
@@ -24,8 +24,8 @@ export function startTUI(options = {}) {
24
24
  console.error('Try running the command directly from your terminal, not from a script or pipe.');
25
25
  console.error('');
26
26
  console.error('Alternatively, use the non-TUI commands:');
27
- console.error(' pnpm run dev # Start Vite dev server');
28
- console.error(' pnpm run dev-http # Start HTTP dev server');
27
+ console.error(' npm run dev # Start Vite dev server');
28
+ console.error(' npm run dev-http # Start HTTP dev server');
29
29
  console.error(' gxdev socket list # List socket events');
30
30
  process.exit(1);
31
31
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../bin/lib/tui/index.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,mEAAmE;AACnE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAO1D,MAAM,UAAU,QAAQ,CAAC,UAAsB,EAAE;IAC/C,qEAAqE;IACrE,sBAAsB;IACtB,+BAA+B;IAC/B,qCAAqC;IACrC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IAExC,qEAAqE;IACrE,gEAAgE;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACjG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC9B,KAAC,GAAG,IACF,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,GAClB,CACH,CAAC;IAEF,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACxB,iDAAiD;QACjD,cAAc,CAAC,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrF,IAAI,MAAM,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../bin/lib/tui/index.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,mEAAmE;AACnE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAO1D,MAAM,UAAU,QAAQ,CAAC,UAAsB,EAAE;IAC/C,qEAAqE;IACrE,sBAAsB;IACtB,+BAA+B;IAC/B,qCAAqC;IACrC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IAExC,qEAAqE;IACrE,gEAAgE;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACjG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC9B,KAAC,GAAG,IACF,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,GAClB,CACH,CAAC;IAEF,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACxB,iDAAiD;QACjD,cAAc,CAAC,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrF,IAAI,MAAM,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -69,7 +69,7 @@ export function getAvailableProviders() {
69
69
  id: 'claude',
70
70
  name: 'Claude',
71
71
  available: false,
72
- reason: 'Install: pnpm i -g @anthropic-ai/claude-code && claude login',
72
+ reason: 'Install: npm i -g @anthropic-ai/claude-code && claude login',
73
73
  });
74
74
  }
75
75
  // Check Codex CLI
@@ -85,7 +85,7 @@ export function getAvailableProviders() {
85
85
  id: 'codex',
86
86
  name: 'Codex',
87
87
  available: false,
88
- reason: 'Install: pnpm i -g @openai/codex && codex auth',
88
+ reason: 'Install: npm i -g @openai/codex && codex auth',
89
89
  });
90
90
  }
91
91
  // Check Gemini (CLI, API key, or gcloud)
@@ -122,7 +122,7 @@ export function getAvailableProviders() {
122
122
  id: 'gemini',
123
123
  name: 'Gemini',
124
124
  available: false,
125
- reason: 'Install: pnpm i -g @google/gemini-cli && gemini',
125
+ reason: 'Install: npm i -g @google/gemini-cli && gemini',
126
126
  });
127
127
  }
128
128
  }
@@ -131,7 +131,7 @@ export function getAvailableProviders() {
131
131
  id: 'gemini',
132
132
  name: 'Gemini',
133
133
  available: false,
134
- reason: 'Install: pnpm i -g @google/gemini-cli && gemini',
134
+ reason: 'Install: npm i -g @google/gemini-cli && gemini',
135
135
  });
136
136
  }
137
137
  return providers;
@@ -1 +1 @@
1
- {"version":3,"file":"AIService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/AIService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/AIService.ts"],"names":[],"mappings":"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"}
@@ -80,8 +80,8 @@ export function startExtension(options) {
80
80
  const config = {
81
81
  id: serviceId,
82
82
  name: 'Firefox Extension',
83
- command: 'pnpm',
84
- args: ['exec', 'web-ext', 'run', '--source-dir', extensionPath, '--start-url', startUrl],
83
+ command: 'npx',
84
+ args: ['web-ext', 'run', '--source-dir', extensionPath, '--start-url', startUrl],
85
85
  cwd,
86
86
  env: {
87
87
  FORCE_COLOR: '1',
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ExtensionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExtensionService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ExtensionService.ts"],"names":[],"mappings":"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"}
@@ -73,8 +73,8 @@ export function startVite(options = {}) {
73
73
  const config = {
74
74
  id: 'vite',
75
75
  name: 'Vite',
76
- command: 'pnpm',
77
- args: ['exec', 'vite', 'dev', '--config', viteConfigPath],
76
+ command: 'npx',
77
+ args: ['vite', 'dev', '--config', viteConfigPath],
78
78
  cwd,
79
79
  env,
80
80
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ViteService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ViteService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViteService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ViteService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gxp-dev/tools",
3
- "version": "2.0.36",
3
+ "version": "2.0.38",
4
4
  "description": "Dev tools to create platform plugins",
5
5
  "type": "commonjs",
6
6
  "publishConfig": {
@@ -17,6 +17,21 @@
17
17
  "browser-extensions",
18
18
  "scripts"
19
19
  ],
20
+ "scripts": {
21
+ "test": "vitest run",
22
+ "test:watch": "vitest",
23
+ "test:coverage": "vitest run --coverage",
24
+ "dev": "concurrently 'vite dev' 'nodemon config/server.js'",
25
+ "dev-app": "vite dev",
26
+ "ext:firefox": "web-ext run --source-dir browser-extensions/firefox",
27
+ "ext:firefox-build": "web-ext build --source-dir browser-extensions/firefox --artifacts-dir dist/firefox",
28
+ "ext:chrome": "node scripts/launch-chrome.js",
29
+ "ext:chrome-pack": "node scripts/pack-chrome.js",
30
+ "ext:install": "npm run ext:firefox & npm run ext:chrome",
31
+ "ext:build": "npm run ext:firefox-build && npm run ext:chrome-pack",
32
+ "build:tui": "tsc -p tsconfig.tui.json && echo '{\"type\":\"module\"}' > dist/tui/package.json",
33
+ "dev:tui": "tsx watch bin/lib/tui/index.tsx"
34
+ },
20
35
  "repository": {
21
36
  "type": "git",
22
37
  "url": "git+ssh://git@github.com/GramercyTech/gx-devtools.git"
@@ -26,10 +41,11 @@
26
41
  "gxp-api-server": "mcp/gxp-api-server.js"
27
42
  },
28
43
  "keywords": [
29
- "tunnel",
30
- "gtcp",
31
- "eventfinity",
32
- "gxp"
44
+ "gxp",
45
+ "gxp-devtools",
46
+ "gramercy",
47
+ "devtools",
48
+ "plugin"
33
49
  ],
34
50
  "author": "Peek",
35
51
  "license": "ISC",
@@ -75,20 +91,5 @@
75
91
  "tsx": "^4.21.0",
76
92
  "typescript": "^5.9.3",
77
93
  "vitest": "^2.1.9"
78
- },
79
- "scripts": {
80
- "test": "vitest run",
81
- "test:watch": "vitest",
82
- "test:coverage": "vitest run --coverage",
83
- "dev": "concurrently 'vite dev' 'nodemon config/server.js'",
84
- "dev-app": "vite dev",
85
- "ext:firefox": "web-ext run --source-dir browser-extensions/firefox",
86
- "ext:firefox-build": "web-ext build --source-dir browser-extensions/firefox --artifacts-dir dist/firefox",
87
- "ext:chrome": "node scripts/launch-chrome.js",
88
- "ext:chrome-pack": "node scripts/pack-chrome.js",
89
- "ext:install": "pnpm run ext:firefox & pnpm run ext:chrome",
90
- "ext:build": "pnpm run ext:firefox-build && pnpm run ext:chrome-pack",
91
- "build:tui": "tsc -p tsconfig.tui.json && echo '{\"type\":\"module\"}' > dist/tui/package.json",
92
- "dev:tui": "tsx watch bin/lib/tui/index.tsx"
93
94
  }
94
- }
95
+ }
@@ -132,22 +132,24 @@ export default defineConfig(({ mode }) => {
132
132
  const toolkitPath = findToolkitPath();
133
133
  const runtimeDir = path.resolve(toolkitPath, "runtime");
134
134
 
135
- // Check for local dev files
135
+ // Check for local dev files (requires both env var AND file to exist)
136
136
  const hasLocalIndexHtml = hasLocalFile("index.html");
137
137
  const hasLocalMainJs = hasLocalFile("main.js");
138
+ const useLocalIndex = env.USE_LOCAL_INDEX === "true" && hasLocalIndexHtml;
139
+ const useLocalMain = env.USE_LOCAL_MAIN === "true" && hasLocalMainJs;
138
140
 
139
141
  // Log which files are being used
140
- console.log(`📄 index.html: ${hasLocalIndexHtml ? "local" : "runtime"}`);
141
- console.log(`📄 main.js: ${hasLocalMainJs ? "local" : "runtime"}`);
142
+ console.log(`📄 index.html: ${useLocalIndex ? "local" : "runtime"}`);
143
+ console.log(`📄 main.js: ${useLocalMain ? "local" : "runtime"}`);
142
144
 
143
145
  // Create plugin to serve runtime files (index.html and main.js) if no local ones exist
144
146
  const runtimeFilesPlugin = {
145
147
  name: "runtime-files",
146
148
  configureServer(server) {
147
149
  server.middlewares.use((req, res, next) => {
148
- // Serve runtime index.html for root requests (if no local index.html)
150
+ // Serve runtime index.html for root requests (unless local index.html is opted in)
149
151
  if (
150
- !hasLocalIndexHtml &&
152
+ !useLocalIndex &&
151
153
  (req.url === "/" || req.url === "/index.html")
152
154
  ) {
153
155
  const runtimeIndexPath = path.join(runtimeDir, "index.html");
@@ -170,9 +172,9 @@ export default defineConfig(({ mode }) => {
170
172
  }
171
173
  }
172
174
 
173
- // Serve runtime main.js for @gx-runtime/main.js requests (if no local main.js)
175
+ // Serve runtime main.js for @gx-runtime/main.js requests (unless local main.js is opted in)
174
176
  if (
175
- !hasLocalMainJs &&
177
+ !useLocalMain &&
176
178
  (req.url === "/@gx-runtime/main.js" ||
177
179
  req.url?.startsWith("/@gx-runtime/main.js?"))
178
180
  ) {
@@ -316,8 +316,8 @@ This is the main configuration file. Changes hot-reload during development:
316
316
 
317
317
  ```bash
318
318
  # Start development server
319
- pnpm run dev # HTTPS with Socket.IO
320
- pnpm run dev-http # HTTP only
319
+ npm run dev # HTTPS with Socket.IO
320
+ npm run dev-http # HTTP only
321
321
 
322
322
  # Test socket events
323
323
  gxdev socket list # List available events
@@ -6,13 +6,13 @@ This project was created with `@gxp-dev/tools` and includes the `@gramercytech/g
6
6
 
7
7
  ```bash
8
8
  # Start HTTP development server
9
- pnpm run dev-http
9
+ npm run dev-http
10
10
 
11
11
  # Start HTTPS development server with Socket.IO
12
- pnpm run dev
12
+ npm run dev
13
13
 
14
14
  # Build for production
15
- pnpm run build
15
+ npm run build
16
16
  ```
17
17
 
18
18
  ## Project Structure
@@ -85,16 +85,16 @@ You can customize these layouts to match your kiosk's design.
85
85
 
86
86
  | Script | Description |
87
87
  |--------|-------------|
88
- | `pnpm run dev` | Start HTTPS dev server with Socket.IO |
89
- | `pnpm run dev-app` | Start HTTPS dev server only |
90
- | `pnpm run dev-http` | Start HTTP dev server (no SSL) |
91
- | `pnpm run build` | Build for production |
92
- | `pnpm run setup-ssl` | Generate SSL certificates |
93
- | `pnpm run socket:list` | List available socket events |
94
- | `pnpm run socket:send` | Send test socket events |
95
- | `pnpm run assets:list` | List development assets |
96
- | `pnpm run assets:init` | Initialize asset directories |
97
- | `pnpm run assets:generate` | Generate placeholder images |
88
+ | `npm run dev` | Start HTTPS dev server with Socket.IO |
89
+ | `npm run dev-app` | Start HTTPS dev server only |
90
+ | `npm run dev-http` | Start HTTP dev server (no SSL) |
91
+ | `npm run build` | Build for production |
92
+ | `npm run setup-ssl` | Generate SSL certificates |
93
+ | `npm run socket:list` | List available socket events |
94
+ | `npm run socket:send` | Send test socket events |
95
+ | `npm run assets:list` | List development assets |
96
+ | `npm run assets:init` | Initialize asset directories |
97
+ | `npm run assets:generate` | Generate placeholder images |
98
98
 
99
99
  ### Dev Tools Modal
100
100
 
@@ -257,10 +257,10 @@ Test real-time features with socket simulation:
257
257
 
258
258
  ```bash
259
259
  # List available socket events
260
- pnpm run socket:list
260
+ npm run socket:list
261
261
 
262
262
  # Send a socket event
263
- pnpm run socket:send
263
+ npm run socket:send
264
264
 
265
265
  # Send to specific channel
266
266
  gxdev socket send --event SocialStreamPostCreated --identifier "stream_123"
@@ -272,13 +272,13 @@ Socket event templates are in `socket-events/` directory. Add your own JSON file
272
272
 
273
273
  ```bash
274
274
  # List all development assets
275
- pnpm run assets:list
275
+ npm run assets:list
276
276
 
277
277
  # Initialize asset directories
278
- pnpm run assets:init
278
+ npm run assets:init
279
279
 
280
280
  # Generate placeholder images (requires ImageMagick)
281
- pnpm run assets:generate
281
+ npm run assets:generate
282
282
  gxdev assets generate --size 800x600 --name product-image
283
283
  gxdev assets generate --name logo --size 200x200 --color "#FF5722" --text "My Logo"
284
284
  ```
@@ -297,7 +297,7 @@ sudo apt-get install imagemagick
297
297
  ## Building for Production
298
298
 
299
299
  ```bash
300
- pnpm run build
300
+ npm run build
301
301
  ```
302
302
 
303
303
  This creates a `dist/` folder with:
@@ -28,7 +28,6 @@ SOCKET_IO_PORT=3061
28
28
 
29
29
  # Logging configuration
30
30
  NODE_LOG_LEVEL=info
31
- TUNNEL_LOG_LEVEL=error
32
31
 
33
32
  # Component configuration
34
33
  COMPONENT_PATH=./src/Plugin.vue
@@ -42,6 +41,12 @@ KEY_PATH=.certs/localhost-key.pem
42
41
  NODE_DEBUG=false
43
42
  SOCKET_IO_ENABLED=true
44
43
 
44
+ # Local file overrides
45
+ # By default, index.html and main.js are served from the toolkit runtime.
46
+ # Set these to true to use local copies instead (files must exist in project root).
47
+ #USE_LOCAL_INDEX=true
48
+ #USE_LOCAL_MAIN=true
49
+
45
50
  # Mock API Configuration
46
51
  # Enable to generate mock API responses from OpenAPI/AsyncAPI specs
47
52
  MOCK_API_ENABLED=false
@@ -41,7 +41,6 @@ logs/
41
41
  npm-debug.log*
42
42
  yarn-debug.log*
43
43
  yarn-error.log*
44
- pnpm-debug.log*
45
44
 
46
45
  # Testing
47
46
  coverage/