@hypersoniclabs/helix-mcp 0.2.1 → 0.2.3

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.
@@ -10,12 +10,14 @@
10
10
  4. **Finalize** — the platform verifies every declared file landed byte-exact, then atomically activates the build. A draft world auto-publishes on its first successful build.
11
11
  5. You get back the **play URL** — shareable, instant, no install.
12
12
 
13
- ## Login (human prerequisite)
13
+ ## Login (human-in-the-loop)
14
14
 
15
- Publishing requires a creator account session. Agents cannot log in — the flow is interactive. If `whoami` says not logged in, ask the human to run:
15
+ Publishing requires a creator account session. The sign-in itself is human (browser + website), but you drive it: call `start_login` — the human's browser opens to the HELIX sign-in page (relay the returned URL if it doesn't) — then poll `check_login` until it reports success. The minted token is saved locally by the MCP process and never enters the conversation.
16
+
17
+ Terminal alternative (same flow, human-run):
16
18
 
17
19
  ```bash
18
- npm i -g @hypersoniclabs/helix-cli # NOT `npx helix` — that's an unrelated package
20
+ npm i -g {{CLI_PKG}} # NOT `npx helix` — that's an unrelated package
19
21
  helix login
20
22
  ```
21
23
 
@@ -30,13 +32,12 @@ Creator access is currently invite-only (curated launch); the account must have
30
32
 
31
33
  ## After publishing
32
34
 
33
- - World page: `https://helix-instant-website-production.up.railway.app/w/<slug>`
34
- - Instant play: `https://helix-instant-website-production.up.railway.app/play/<slug>`
35
+ - The publish response returns the canonical **play URL** — share that link directly (don't construct portal URLs by hand; they differ per environment).
35
36
  - Title, content rating, mobile support, and `requiresAuth` on the world page all come from the manifest — re-publish to update them.
36
37
 
37
38
  ## Keeping the toolchain current
38
39
 
39
40
  The `@helix` packages publish independently; call `check_for_updates` (or `helix doctor`) to see what's behind and get the exact update command.
40
41
 
41
- - **CLI and MCP** — run them via `npx -y @hypersoniclabs/helix-cli@latest` / `npx -y @hypersoniclabs/helix-mcp@latest` and they're always current (the MCP config already does this). A global install goes stale; refresh it with `npm i -g @hypersoniclabs/helix-cli@latest`.
42
- - **SDK** (`@hypersoniclabs/helix-sdk`, pinned in a world's `package.json`) — a `^0.x` range locks the minor, so a new minor isn't picked up by `npm update`. Bump the range and reinstall: `npm i @hypersoniclabs/helix-sdk@latest`.
42
+ - **CLI and MCP** — run them via `npx -y {{CLI_PKG}}@latest` / `npx -y {{MCP_PKG}}@latest` and they're always current (the MCP config already does this). A global install goes stale.
43
+ - **SDK** (`@hypersoniclabs/helix-sdk`, pinned in a world's `package.json`) — a version pin isn't picked up by `npm update`. `check_for_updates` returns the exact per-package update command for this environment — use those commands verbatim (don't hand-write them; on non-production lanes the dependency value is an npm alias).
package/docs/sdk.md CHANGED
@@ -7,7 +7,7 @@ The HELIX Instant SDK. Worlds running on HELIX Instant use it for player identit
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npm install @hypersoniclabs/helix-sdk
10
+ npm install {{SDK_INSTALL_SPEC}}
11
11
  ```
12
12
 
13
13
  ## Core concepts
@@ -82,7 +82,19 @@ Subscribes to login/logout. Fires with the user on login and `null` on logout. R
82
82
 
83
83
  ### `Helix.getSessionToken(): string | null`
84
84
 
85
- The raw world-scoped session token (JWT, `aud: helixb-world`). Most worlds never need this; later SDK modules use it internally.
85
+ The raw world-scoped session token (JWT, `aud: helix-instant-world`). Most worlds never need this; later SDK modules use it internally.
86
+
87
+ ### `Helix.avatar.getEquipped(): Promise<EquippedAvatar | null>`
88
+
89
+ The local player's equipped **universal avatar** — the single character a world renders for them.
90
+ `EquippedAvatar = { source: 'equipped' | 'auto' | 'default', itemId, glbUrl, skeleton }`. Resolves `null` for
91
+ guests / standalone / any failure — the world falls back to the default body, never breaks. Feed it to
92
+ `loadCharacterAssets`'s `avatar` option (single-player) or the `AvatarModelCache` (multiplayer) — see the
93
+ character recipe §8 and the `hangout` template §3a. **Gate on `skeleton === 'helix-humanoid'`** (the
94
+ `UNIVERSAL_AVATAR_SKELETON` export): only a converted avatar can be driven by the platform clips; the
95
+ `loadCharacterAssets` `avatar` option does this gate for you. Call **after `Helix.init()`** and **before**
96
+ character assets load — the body is bind-once. In multiplayer, remote players' avatars arrive on room state
97
+ (`player.avatarUrl`, `''` = none) — you never look up another user's avatar yourself.
86
98
 
87
99
  ## Manifest requirements
88
100
 
@@ -27,7 +27,7 @@ my-world/
27
27
  "build": "vite build"
28
28
  },
29
29
  "dependencies": {
30
- "@hypersoniclabs/helix-sdk": "^0.1.0",
30
+ "@hypersoniclabs/helix-sdk": "{{SDK_DEP_SPEC}}",
31
31
  "three": "^0.172.0"
32
32
  },
33
33
  "devDependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hypersoniclabs/helix-mcp",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "HELIX Instant MCP server — gives AI coding agents the platform contract: world recipes, manifest schema, validation, catalog discovery, and publishing.",
5
5
  "type": "commonjs",
6
6
  "main": "dist/server.js",
@@ -17,7 +17,7 @@
17
17
  "test": "node scripts/smoke.mjs"
18
18
  },
19
19
  "dependencies": {
20
- "@hypersoniclabs/helix-cli": "^0.1.0",
20
+ "@hypersoniclabs/helix-cli": "^0.1.5",
21
21
  "@modelcontextprotocol/sdk": "^1.12.0",
22
22
  "zod": "^3.24.0"
23
23
  },
@@ -25,7 +25,7 @@
25
25
  "@types/node": "^22.10.0",
26
26
  "typescript": "~5.7.3"
27
27
  },
28
- "license": "UNLICENSED",
28
+ "license": "MIT",
29
29
  "publishConfig": {
30
30
  "access": "public",
31
31
  "registry": "https://registry.npmjs.org"