@tantawowa/hosanna-tools 2.22.0 → 2.23.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.
Files changed (90) hide show
  1. package/README.md +95 -52
  2. package/dist/build-info.json +3 -3
  3. package/dist/cli.js +437 -157
  4. package/dist/cli.js.map +1 -1
  5. package/dist/device/device-cli.d.ts +2 -2
  6. package/dist/device/device-cli.js +7 -6
  7. package/dist/device/device-cli.js.map +1 -1
  8. package/dist/device/devices-file.js +9 -1
  9. package/dist/device/devices-file.js.map +1 -1
  10. package/dist/device/drivers/roku-driver.js +1 -1
  11. package/dist/device/drivers/roku-driver.js.map +1 -1
  12. package/dist/device/log-stream.d.ts +2 -0
  13. package/dist/device/log-stream.js +24 -14
  14. package/dist/device/log-stream.js.map +1 -1
  15. package/dist/device/types.d.ts +4 -0
  16. package/dist/index.d.ts +51 -2
  17. package/dist/index.js +44 -7
  18. package/dist/index.js.map +1 -1
  19. package/dist/lib/env-info.js +30 -24
  20. package/dist/lib/env-info.js.map +1 -1
  21. package/dist/lib/hosanna-config.d.ts +51 -0
  22. package/dist/lib/hosanna-config.js +323 -0
  23. package/dist/lib/hosanna-config.js.map +1 -0
  24. package/dist/run/android-emulator.d.ts +40 -0
  25. package/dist/run/android-emulator.js +590 -0
  26. package/dist/run/android-emulator.js.map +1 -0
  27. package/dist/run/apple-tv.d.ts +32 -0
  28. package/dist/run/apple-tv.js +367 -0
  29. package/dist/run/apple-tv.js.map +1 -0
  30. package/dist/run/ios-device.d.ts +17 -0
  31. package/dist/run/ios-device.js +229 -0
  32. package/dist/run/ios-device.js.map +1 -0
  33. package/dist/run/ios-simulator.d.ts +21 -0
  34. package/dist/run/ios-simulator.js +187 -0
  35. package/dist/run/ios-simulator.js.map +1 -0
  36. package/dist/run/process-utils.d.ts +2 -0
  37. package/dist/run/process-utils.js +31 -0
  38. package/dist/run/process-utils.js.map +1 -0
  39. package/dist/run/run-config.d.ts +20 -0
  40. package/dist/run/run-config.js +72 -0
  41. package/dist/run/run-config.js.map +1 -0
  42. package/dist/run/run-controller.d.ts +66 -0
  43. package/dist/run/run-controller.js +1017 -0
  44. package/dist/run/run-controller.js.map +1 -0
  45. package/dist/run/session-manager.d.ts +25 -0
  46. package/dist/run/session-manager.js +99 -0
  47. package/dist/run/session-manager.js.map +1 -0
  48. package/dist/run/targets.d.ts +60 -0
  49. package/dist/run/targets.js +210 -0
  50. package/dist/run/targets.js.map +1 -0
  51. package/dist/run/types.d.ts +60 -0
  52. package/dist/run/types.js +32 -0
  53. package/dist/run/types.js.map +1 -0
  54. package/dist/support-tools/framework-sync.d.ts +75 -0
  55. package/dist/support-tools/framework-sync.js +346 -0
  56. package/dist/support-tools/framework-sync.js.map +1 -0
  57. package/dist/support-tools/mcp-server/cli-test-recorder.js +1 -1
  58. package/dist/support-tools/mcp-server/cli-test-recorder.js.map +1 -1
  59. package/dist/support-tools/mcp-server/cli-test-runner.js +1 -1
  60. package/dist/support-tools/mcp-server/cli-test-runner.js.map +1 -1
  61. package/dist/support-tools/mcp-server/game-tools.js +1 -1
  62. package/dist/support-tools/mcp-server/game-tools.js.map +1 -1
  63. package/dist/support-tools/mcp-server/index.d.ts +1 -1
  64. package/dist/support-tools/mcp-server/instance-lock.js +1 -1
  65. package/dist/support-tools/mcp-server/tools.js +3 -3
  66. package/dist/support-tools/mcp-server/tools.js.map +1 -1
  67. package/dist/updater/compiler-installer.d.ts +17 -0
  68. package/dist/updater/compiler-installer.js +102 -0
  69. package/dist/updater/compiler-installer.js.map +1 -1
  70. package/dist/updater/framework-installer.d.ts +43 -0
  71. package/dist/updater/framework-installer.js +260 -0
  72. package/dist/updater/framework-installer.js.map +1 -0
  73. package/dist/updater/license-manager.d.ts +57 -0
  74. package/dist/updater/license-manager.js +265 -0
  75. package/dist/updater/license-manager.js.map +1 -0
  76. package/dist/updater/sdk-manager.d.ts +7 -1
  77. package/dist/updater/sdk-manager.js +15 -6
  78. package/dist/updater/sdk-manager.js.map +1 -1
  79. package/dist/updater/symlink-manager.js +25 -3
  80. package/dist/updater/symlink-manager.js.map +1 -1
  81. package/dist/updater/symlink-registry.d.ts +1 -0
  82. package/dist/updater/symlink-registry.js +6 -0
  83. package/dist/updater/symlink-registry.js.map +1 -1
  84. package/package.json +1 -1
  85. package/dist/lib/env-cloud-agent-setup-help.d.ts +0 -5
  86. package/dist/lib/env-cloud-agent-setup-help.js +0 -26
  87. package/dist/lib/env-cloud-agent-setup-help.js.map +0 -1
  88. package/dist/support-tools/cloud-agent-setup.d.ts +0 -41
  89. package/dist/support-tools/cloud-agent-setup.js +0 -132
  90. package/dist/support-tools/cloud-agent-setup.js.map +0 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Documentation
4
4
 
5
- - **[MCP debugger & UI tests](src/support-tools/mcp-server/README.md)** — `hst run:mcp`, all MCP tools, commands by use case, examples, `hst test:ui` / `hst test:record`.
5
+ - **[MCP debugger & UI tests](src/support-tools/mcp-server/README.md)** — `hst mcp:start`, all MCP tools, commands by use case, examples, `hst test:ui` / `hst test:record`.
6
6
  - **[docs/README.md](docs/README.md)** — index of docs in this repo (MCP + source-map note).
7
7
  - **hosanna-ui** (separate repo): `docs/README.md` for agentic debugging and links back to this README.
8
8
 
@@ -23,7 +23,7 @@ npm install . -g # path to the hosanna-tools directory
23
23
  Hosanna Tools can also be imported by app build chains. The CLI remains available as `hst`, but package imports are library-safe and do not parse CLI arguments or call `process.exit` during import. Public wrappers for process-oriented commands use no-exit mode where supported, so API callers receive structured results or thrown errors instead of forced process termination.
24
24
 
25
25
  ```ts
26
- import { buildConfig, env, generate, install, roku, secrets } from '@tantawowa/hosanna-tools';
26
+ import { buildConfig, compiler, env, generate, roku, secrets } from '@tantawowa/hosanna-tools';
27
27
 
28
28
  await generate.all({
29
29
  rootFolder: './src',
@@ -37,7 +37,7 @@ await buildConfig.resolve({
37
37
  out: 'assets/meta/build-config.json',
38
38
  });
39
39
 
40
- await install.compiler({ version: '0.33.7' });
40
+ await compiler.install({ version: '0.33.7' });
41
41
  await roku.package({ env: 'prod', prebuild: 'npm run roku:build:prod' });
42
42
  ```
43
43
 
@@ -45,13 +45,13 @@ Common build-script replacements:
45
45
 
46
46
  | CLI command | Programmatic API |
47
47
  | --- | --- |
48
- | `npx hst generate --rootFolder ./src` | `await generate.all({ rootFolder: './src' })` |
48
+ | `npx hst generate:all --rootFolder ./src` | `await generate.all({ rootFolder: './src' })` |
49
49
  | `npx hst generate:clean` | `await generate.clean()` |
50
- | `npx hst build-config resolve --env dev --platform roku --out assets/meta/build-config.json` | `await buildConfig.resolve({ env: 'dev', platform: 'roku', out: 'assets/meta/build-config.json' })` |
51
- | `npx hst install:compiler 0.33.7` | `await install.compiler({ version: '0.33.7' })` |
50
+ | `npx hst build-config:resolve --env dev --platform roku --out assets/meta/build-config.json` | `await buildConfig.resolve({ env: 'dev', platform: 'roku', out: 'assets/meta/build-config.json' })` |
51
+ | `npx hst compiler:install 0.33.7` | `await compiler.install({ version: '0.33.7' })` |
52
52
  | `npx hst roku:package --env prod --prebuild 'npm run roku:build:prod'` | `await roku.package({ env: 'prod', prebuild: 'npm run roku:build:prod' })` |
53
53
  | `npx hst secrets:check` | `await secrets.check({ cwd: process.cwd() })` |
54
- | `npx hst env` | `await env.check({ cwd: process.cwd() })` |
54
+ | `npx hst env check` | `await env.check({ cwd: process.cwd() })` |
55
55
 
56
56
  Long-running APIs such as `dev.run`, `debugger.start`, `mcp.start`, `test.record`, and RASP capture-style workflows keep the same operational behavior as the corresponding CLI commands: they start services, attach to debuggers, or wait for user/session activity. `mcp.start`, `dev.run`, and `test.ui` are wired for programmatic no-exit behavior through the top-level API.
57
57
 
@@ -143,9 +143,35 @@ Hosanna Tools is a comprehensive CLI toolset for the Hosanna framework that prov
143
143
 
144
144
  The CLI commands are organized into logical groups using colon-separated namespacing:
145
145
 
146
- ### Run Commands (`run:*`) - Development Execution
147
- - `run:dev` - Run dev processes: vite, generator watch, and optional debugger
148
- - `run:debugger` - Start the command debugger WebSocket proxy (only one debugger is needed for multiple apps; if the port is already in use, a friendly message is shown instead of crashing)
146
+ ### Development Commands
147
+ - `run` - Canonical cross-platform app launcher. Requires `--platform` and supports web, Roku, iOS, Apple TV, Android, and Android TV launch targets.
148
+ - `target:list` - List launch targets for humans or agents, including web previews, simulators, and physical devices.
149
+ - `dev:start` - Run dev processes: vite, generator watch, and optional debugger
150
+ - `debugger:start` - Start the command debugger WebSocket proxy (only one debugger is needed for multiple apps; if the port is already in use, a friendly message is shown instead of crashing)
151
+
152
+ Examples:
153
+
154
+ ```bash
155
+ hst run --platform web
156
+ hst run --platform roku --target web
157
+ hst run --platform roku --target simulated
158
+ hst run --platform roku --target emulated
159
+ hst run --platform ios --target simulator --device "iPhone 17 Pro"
160
+ hst run --platform ios --target device --device "George iPhone" --no-logs
161
+ hst run --platform android --target emulator --device "Pixel_8" --no-logs
162
+ hst run --platform android --target device --device "RF8M62694QT" --no-logs
163
+ hst run --platform android-tv --target emulator --device "Television_1080p" --no-logs
164
+ hst run --platform apple-tv --target simulator --device "Apple TV 4K"
165
+ hst run --platform roku --target device --device "Living Room"
166
+ hst run --platform roku --target device --device "Living Room" --replace
167
+ hst target:list --platform ios --target device --json
168
+ hst target:list --platform android --target emulator --json
169
+ hst target:list --platform android-tv --target emulator --json
170
+ hst target:list --platform apple-tv --target simulator --json
171
+ hst target:list --form-factor tv --json
172
+ ```
173
+
174
+ `hst run` is platform-explicit by design, so non-interactive agents do not guess between iOS, Apple TV, Android, Android TV, Roku, or web. For Roku, `web`, `simulated`, and `emulated` all launch the web preview; `device` deploys to a physical Roku. For iOS and Apple TV, `simulator` launches an Apple simulator and `device` launches paired physical hardware. For Android and Android TV, `emulator` launches an Android emulator and `device` launches ADB-connected physical hardware. Device/emulator runs record the target and refuse to overwrite a recorded session or safe-to-kill occupied resource in non-interactive mode unless `--replace` is passed. Preferred run defaults live in `.hosanna-tools/run.json`, and preferred devices live in `.hosanna-tools/devices.json` or `~/.hosanna-tools/devices.json`. Legacy `.hs-devices.json` files are still read for compatibility.
149
175
 
150
176
  ### Roku Commands (`roku:*`) - Roku Deployment & Packaging
151
177
  - `roku:run` - Deploy a Roku app to a device (supports .zip file or folder)
@@ -168,37 +194,39 @@ hst roku:map-stack --text "file/line: pkg:/components/source_0.brs(7475)"
168
194
  Supported inputs include `file/line: pkg:/components/source_0.brs(7475)`, `at ... (pkg:/components/source_1.brs:6636)`, `in pkg:/components/source_3.brs(4710)`, and bare generated references such as `source_10.brs:8211`. See [docs/roku-map-stack.md](docs/roku-map-stack.md).
169
195
 
170
196
  ### Generate Commands (`generate:*`) - Code Generation
171
- - `generate` - Generate structs and command handler maps
197
+ - `generate:all` - Generate structs and command handler maps
172
198
  - `generate:structs` - Generate structs only for the specified files
173
199
  - `generate:clean` - Clean generated files in the generated folder
174
200
 
175
- ### Install Commands (`install:*`) - Setup & Installation
176
- - `install` - Install the SDK by creating hosanna.json
177
- - `install:compiler` - Install or update the Hosanna compiler (hsc)
178
- - `install:template` - Create a new template app with the Hosanna SDK
201
+ ### Setup Commands
202
+ - `sdk:install` - Install the SDK by creating hosanna.json
203
+ - `compiler:install` - Install or update the Hosanna compiler (hsc)
204
+ - `compiler:status` - Print local compiler status for this project
205
+ - `compiler:list` - List compiler versions known from local config, install, and cache
206
+ - `template:create` - Create a new template app with the Hosanna SDK
179
207
 
180
208
  ### Build Config Commands (`build-config`) - Runtime Configuration
181
- - `build-config resolve` - Resolve `build-config/base.json`, env/platform overlays, secrets, and optional developer profiles into the canonical runtime `build-config.json`
209
+ - `build-config:resolve` - Resolve `build-config/base.json`, env/platform overlays, secrets, and optional developer profiles into the canonical runtime `build-config.json`
182
210
 
183
211
  Native builds can resolve config immediately before the platform build:
184
212
 
185
213
  ```bash
186
- npx hst build-config resolve --env dev --platform roku --out assets/meta/build-config.json
214
+ npx hst build-config:resolve --env dev --platform roku --out assets/meta/build-config.json
187
215
  npm run roku:build
188
216
 
189
- HS_ENV=dev HS_PLATFORM=android npx hst build-config resolve --out assets/meta/build-config.json
217
+ HS_ENV=dev HS_PLATFORM=android npx hst build-config:resolve --out assets/meta/build-config.json
190
218
  npm run android:build-code
191
219
 
192
- HS_ENV=dev HS_PLATFORM=apple HS_BUILD_PROFILE=george npx hst build-config resolve --out assets/meta/build-config.json
220
+ HS_ENV=dev HS_PLATFORM=apple HS_BUILD_PROFILE=george npx hst build-config:resolve --out assets/meta/build-config.json
193
221
  npm run apple:build-code
194
222
  ```
195
223
 
196
224
  ### CI Commands (`ci:*`) - Continuous Integration
197
225
  - `ci:extract-pkg-key` - Extract signing key from an existing signed Roku package as base64
198
- - `ci:configure-hosanna-url` - Configure hosanna.json git-url from argument or environment
226
+ - `config set --git-url` - Configure hosanna.json git-url from argument or environment
199
227
 
200
228
  ### Build Config Commands (`build-config:*`) - Build/runtime config
201
- - `build-config resolve` - Merge build config overlays into `assets/meta/build-config.json`
229
+ - `build-config:resolve` - Merge build config overlays into `assets/meta/build-config.json`
202
230
  - `build-config:restore-secrets` - Restore ignored `secrets/*.json` overlays from `BUILD_CONFIG_SECRETS_*_BASE64`
203
231
 
204
232
  ### Secrets Commands (`secrets:*`) - Portable `.secrets` files
@@ -209,10 +237,10 @@ npm run apple:build-code
209
237
 
210
238
  Shared options: `--file` (secrets path), `--template` (template path for `check` / `init` / `list --template`), `--format text|json`.
211
239
 
212
- ### Environment Commands (`env:*`) - Environment Management
213
- - `env` - Print environment information and run checks with auto-fix option
214
- - `env:prepare-gitignore` - Ensure .gitignore contains required entries
215
- - `env:cloud-agent-setup` - Write `build-config/profiles/cloud-agent.json`, patch `remoteDebug` for cloud agents, optionally start debugger and `npm run dev` with `HS_BUILD_PROFILE=cloud-agent`
240
+ ### Environment Commands (`env ...`) - Environment Management
241
+ - `env check` - Print environment information and run checks
242
+ - `env fix` - Check and repair environment issues
243
+ - `env prepare-gitignore` - Ensure .gitignore contains required entries
216
244
 
217
245
  ### Framework Source Symlinks (semver-keyed registry)
218
246
 
@@ -231,8 +259,8 @@ tags, branches, `@latest`, and `LOCAL_SDK` alike.
231
259
  | >= 1.0.0 | `hosanna-bridge-http`, `hosanna-bridge-lib`, `hosanna-bridge-targets`, `hosanna-list`, `hosanna-ui` |
232
260
  | >= 1.31.0 | the above + `hosanna-bridge-core` |
233
261
 
234
- `hst env` always prints the active set, the matched registry version, and the
235
- source (`built-in`, `hosanna.json override`, `+ N extra`). `hst env --fix`
262
+ `hst env check` always prints the active set, the matched registry version, and the
263
+ source (`built-in`, `hosanna.json override`, `+ N extra`). `hst env fix`
236
264
  creates missing links, repairs wrong targets, and removes obsolete ones — with
237
265
  no git/network access when only symlinks are wrong. Symlinks are also re-synced
238
266
  as part of every SDK update.
@@ -251,7 +279,7 @@ to the resolved defaults; cannot break them. Folder names are forgiving
251
279
 
252
280
  Use this for game projects (`hosanna-game`, `hosanna-game-examples`) or when a
253
281
  project wants the example rigs (`hosanna-ui-examples`). Removing an entry makes
254
- its symlink obsolete; the next `env --fix` cleans it up.
282
+ its symlink obsolete; the next `env fix` cleans it up.
255
283
 
256
284
  **Replacing the registry (`symlink-registry`)** — rare; total control. A valid
257
285
  key fully replaces the built-in registry (extras still append on top). Folders
@@ -268,7 +296,7 @@ everything the project needs:
268
296
  ```
269
297
 
270
298
  An invalid `symlink-registry`/`symlink-extra-folders` value falls back to the
271
- built-in registry and is reported as an issue by `hst env` — a typo cannot
299
+ built-in registry and is reported as an issue by `hst env check` — a typo cannot
272
300
  silently break an install.
273
301
 
274
302
  **Safety rules:**
@@ -276,16 +304,16 @@ silently break an install.
276
304
  warning, never an error (older framework versions predate some folders).
277
305
  - Obsolete cleanup only ever deletes **symlinks** at known framework paths
278
306
  (registry union, extras, retired folders such as `src/hosanna-game`).
279
- Real directories and files are never deleted; `env --fix` reports them for
307
+ Real directories and files are never deleted; `env fix` reports them for
280
308
  manual handling instead.
281
- - `.gitignore` (via `env:prepare-gitignore` or any SDK update) covers the union
309
+ - `.gitignore` (via `env prepare-gitignore` or any SDK update) covers the union
282
310
  of the built-in registry, any override, and any extras for the project.
283
311
 
284
- ### MCP Debugging Commands (`run:mcp`, `stop:mcp`) - AI Agent Debugging
285
- - `run:mcp` - Start the Hosanna MCP server for AI agent debugging
286
- - `stop:mcp` - Stop the Hosanna MCP server
312
+ ### MCP Debugging Commands (`mcp:start`, `mcp:stop`) - AI Agent Debugging
313
+ - `mcp:start` - Start the Hosanna MCP server for AI agent debugging
314
+ - `mcp:stop` - Stop the Hosanna MCP server
287
315
 
288
- **Cursor agents and MCP:** Cursor does not magically attach to a terminal `hst run:mcp`. You add Hosanna as an MCP server (project **`.cursor/mcp.json`** or **Cursor Settings → MCP → Add Custom MCP**) so Cursor spawns **`hosanna-mcp`** (stdio transport). That process talks to the **command debugger** on HTTP **59150** and extension WebSocket **59153** by default. In **Cursor Cloud Agents**, run **`npx hst env:cloud-agent-setup --start-debugger --start-app`** so those services are up before the agent uses MCP tools. See [Cursor MCP settings](#cursor-settings--mcp-hosanna-debugger) below.
316
+ **Cursor and MCP:** Cursor does not magically attach to a terminal `hst mcp:start`. Add Hosanna as a Command MCP server (project **`.cursor/mcp.json`** or **Cursor Settings → MCP → Add Custom MCP**) so Cursor spawns **`hosanna-mcp`** over stdio. Start the command debugger/app explicitly with `hst run --platform web`, `hst run --platform roku --target web`, or `hst run --platform roku --target device`.
289
317
 
290
318
  ### UI Test Commands (`test:*`) - UI Test Automation
291
319
  - `test:ui` - Replay UI test recordings against a running Hosanna app
@@ -295,23 +323,39 @@ silently break an install.
295
323
 
296
324
  ```bash
297
325
  # Development workflow
298
- hst run:dev # Start development server
299
- hst generate --watch # Generate code with file watching
300
- hst roku:run --app-package myapp.zip # Deploy to Roku device
326
+ hst run --platform web # Start/reuse web dev services
327
+ hst run --platform roku --target web
328
+ hst run --platform roku --target simulated
329
+ hst run --platform roku --target emulated
330
+ hst run --platform ios --target simulator --device "iPhone 17 Pro"
331
+ hst run --platform ios --target device --device "George iPhone" --no-logs
332
+ hst run --platform android --target emulator --device "Pixel_8" --no-logs
333
+ hst run --platform android --target device --device "RF8M62694QT" --no-logs
334
+ hst run --platform android-tv --target emulator --device "Television_1080p" --no-logs
335
+ hst run --platform apple-tv --target simulator --device "Apple TV 4K"
336
+ hst run --platform roku --target device --device "Living Room"
337
+ hst run --platform roku --target device --device "Living Room" --replace
338
+ hst target:list --platform ios --target device --json
339
+ hst target:list --platform android --target emulator --json
340
+ hst target:list --platform android-tv --target emulator --json
341
+ hst target:list --platform apple-tv --target simulator --json
342
+ hst target:list --form-factor tv --json
343
+ hst generate:all --watch # Generate code with file watching
344
+ hst dev:start # Lower-level dev server command
301
345
 
302
346
  # Building and packaging
303
347
  hst roku:package --ip 192.168.1.10 # Package and deploy Roku app
304
348
  hst generate:clean # Clean generated files
305
349
 
306
350
  # Setup and installation
307
- hst install # Initialize Hosanna SDK
308
- hst install:compiler # Install Hosanna compiler
309
- hst install:template # Create new template app
351
+ hst sdk:install # Initialize Hosanna SDK
352
+ hst compiler:install # Install Hosanna compiler
353
+ hst template:create # Create new template app
310
354
 
311
355
  # CI/CD operations
312
356
  hst ci:extract-pkg-key myapp.pkg # Extract signing key for CI
313
357
  hst build-config:restore-secrets
314
- hst build-config resolve --env prod --platform roku --out assets/meta/build-config.json
358
+ hst build-config:resolve --env prod --platform roku --out assets/meta/build-config.json
315
359
 
316
360
  # Secrets (.secrets / .secrets.example)
317
361
  hst secrets:list
@@ -321,13 +365,12 @@ hst secrets:exec -- npm run build
321
365
  hst secrets:init
322
366
 
323
367
  # Environment management
324
- hst env --fix # Check and fix environment issues
325
- hst env:prepare-gitignore # Update .gitignore
326
- hst env:cloud-agent-setup --start-debugger --start-app
368
+ hst env fix # Check and fix environment issues
369
+ hst env prepare-gitignore # Update .gitignore
327
370
 
328
371
  # MCP debugging (AI agent integration)
329
- hst run:debugger # Start debug proxy (required)
330
- hst run:mcp # Start MCP server for Cursor/Claude
372
+ hst debugger:start # Start debug proxy (required)
373
+ hst mcp:start # Start MCP server for Cursor/Claude
331
374
 
332
375
  # UI test automation
333
376
  hst test:record --name "My test" # Record UI test interactively
@@ -350,7 +393,7 @@ Use **Type: Command** (not URL). Cursor spawns one long-lived process and speaks
350
393
  | **Type** | **Command** |
351
394
  | **Command** | `hosanna-mcp` if `@tantawowa/hosanna-tools` is on your `PATH` (e.g. `npm install -g` or project `node_modules/.bin`). Otherwise use **`npx`** and put the package + binary in **Arguments** (see JSON below). |
352
395
  | **Arguments** | Usually empty when **Command** is `hosanna-mcp`. With `npx`: `-y --package=@tantawowa/hosanna-tools hosanna-mcp` (one token per argv if the UI supports a list; otherwise a single line matching the JSON `args` array). |
353
- | **Environment** | Optional; defaults match `hst run:debugger`. Use only if you use non-default ports. |
396
+ | **Environment** | Optional; defaults match `hst debugger:start`. Use only if you use non-default ports. |
354
397
 
355
398
  Equivalent **`~/.cursor/mcp.json`** or **`.cursor/mcp.json`** (project) entry:
356
399
 
@@ -384,20 +427,20 @@ Equivalent **`~/.cursor/mcp.json`** or **`.cursor/mcp.json`** (project) entry:
384
427
  |-----|----------------|
385
428
  | `HOSANNA_MANAGEMENT_PORT` | `59150` |
386
429
  | `HOSANNA_MANAGEMENT_HOST` | `localhost` |
387
- | `HOSANNA_EXTENSION_PORT` | `59153` (must match `hst run:debugger`) |
430
+ | `HOSANNA_EXTENSION_PORT` | `59153` (must match `hst debugger:start`) |
388
431
 
389
- After saving, enable the server in the MCP list. **`hst run:mcp`** is still useful in a terminal for manual runs; Cursor agents use the configured MCP spawn instead.
432
+ After saving, enable the server in the MCP list. **`hst mcp:start`** is still useful in a terminal for manual runs; Cursor agents use the configured MCP spawn instead.
390
433
 
391
434
  ### Quick Start
392
435
 
393
436
  ```bash
394
437
  # 1. Start the debug proxy (required for both MCP and test automation)
395
- hst run:debugger
438
+ hst debugger:start
396
439
 
397
440
  # 2. Start your Hosanna app with remote debugging enabled
398
441
 
399
442
  # 3. For AI debugging (Cursor, Claude Code):
400
- # Add MCP server (see "Cursor Settings → MCP" above) or hst run:mcp in a terminal
443
+ # Add MCP server (see "Cursor Settings → MCP" above) or hst mcp:start in a terminal
401
444
 
402
445
  # 4. For UI test recording:
403
446
  hst test:record --name "My test flow"
@@ -1,6 +1,6 @@
1
1
  {
2
- "buildDate": "2026-06-13T08:12:41+01:00",
3
- "buildDateISO": "2026-06-13T07:12:41.815Z",
2
+ "buildDate": "2026-06-14T08:41:07+01:00",
3
+ "buildDateISO": "2026-06-14T07:41:07.025Z",
4
4
  "timeZone": "Europe/London",
5
- "gitHash": "477199d"
5
+ "gitHash": "21b0bc5"
6
6
  }