mudra-skills 1.2.0 → 3.0.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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mudra-xr
3
- version: 2.2.0
3
+ version: 3.0.0
4
4
  description: Generate a single-file Mudra-controlled 3D/XR app using XR Blocks. Use when the user describes a 3D, XR, VR, or AR experience controlled by the Mudra Band.
5
5
  ---
6
6
 
@@ -9,13 +9,13 @@ description: Generate a single-file Mudra-controlled 3D/XR app using XR Blocks.
9
9
  Generate a complete, working single-file HTML 3D/XR app controlled by Mudra Band signals.
10
10
  The output runs in any modern Chromium browser — no build step, no server, no headset required.
11
11
 
12
- **Mandatory feature (v0.3.0):** Every generated app MUST include a
12
+ **Mandatory feature:** Every generated app MUST include a
13
13
  Manual/Mudra **Mode toggle** as defined in `references/promt.md`
14
14
  § Section 15 "Mode Toggle (Manual / Mudra) — Required". Manual is the
15
15
  default; Mudra opens a single WebSocket lazily and disables the
16
16
  simulator panel so signals come only from the band.
17
17
 
18
- **Mandatory feature (v0.3.0):** Connection state MUST reflect the
18
+ **Mandatory feature:** Connection state MUST reflect the
19
19
  **band**, not the WebSocket. The Companion service accepts socket
20
20
  connections even when no band is paired, so flipping to "Connected" on
21
21
  `ws.onopen` is a lie. Every generated app MUST send
@@ -29,7 +29,7 @@ overlay, toast, or any other separate disconnect alert. Connection
29
29
  state is communicated **only** through the existing connection-status
30
30
  pill (`Manual` / `Connecting…` / `Connected` / `Disconnected`).
31
31
 
32
- **Branding (v0.3.0):** The footer/badge text MUST be exactly
32
+ **Branding:** The footer/badge text MUST be exactly
33
33
  **"Created by Mudra"** — never "Created with Mudra Studio",
34
34
  "Powered by Mudra", or any other variant. See § Section 16.
35
35
 
@@ -38,7 +38,7 @@ sub-actions the app actually handles. If the app maps `nav_direction` to
38
38
  Up/Down only, omit Left/Right/Roll L/Roll R. If `gesture` only handles
39
39
  `tap`, omit Twist/2Twist/2Tap. See § Section 5.
40
40
 
41
- The canonical protocol is in `references/agent_protocol.json` (v2.0).
41
+ The canonical protocol rules are in `references/prompt.md` Section 1 (signals, commands, error frames) and Section 15 (state machine, hand chip). See also `specs/001-mudra-xr-connection-update/contracts/websocket-protocol.md` for the wire-protocol contract.
42
42
 
43
43
  ## Invocation
44
44
 
@@ -237,7 +237,7 @@ Print the absolute path to the written file and a one-line summary:
237
237
  - Motion modes are mutually exclusive: Pointer (`navigation`+`button`) / Direction (`nav_direction`) / IMU+Biometric (`imu_acc`+`imu_gyro`+`snc`)
238
238
  - IMU+Biometric bundle: `imu_acc`, `imu_gyro`, `snc` always subscribed together — never partially
239
239
  - `gesture` and `pressure` are mutually exclusive — never combine them
240
- - Free-combining signals (one or the other, not both): `gesture` OR `pressure`, plus `button`, `battery`
240
+ - Free-combining signals (one or the other, not both): `gesture` OR `pressure`, plus `button`
241
241
  - **Navigation sensitivity is gentle by default**: sim button + keyboard `I`/`J`/`K`/`L` emit `±3` per event; cursor multiplier on inbound `delta_x`/`delta_y` is `0.002`. Raise only when the prompt explicitly asks for fast/snappy movement. See Section 6 + Section 11 of `references/promt.md`.
242
242
  - **Reserved for XR Blocks desktop simulator** — Mudra never claims these: `W`/`A`/`S`/`D` and arrow keys (camera walk), `Q`/`E` (roll/vertical), `R` (reset), right-click drag (orbit), mouse wheel (zoom). Mudra navigation uses `I`/`J`/`K`/`L`; Mudra IMU uses `U`/`O`/`M`/`N`. See Section 6 of `references/promt.md`.
243
243
  - Keyboard handlers: `{ capture: true }` + `stopPropagation()` on Mudra-claimed keys
@@ -348,18 +348,6 @@
348
348
  "For HUD: use buf[buf.length-1]; for time-series plots: draw all buffered samples"
349
349
  ]
350
350
  },
351
- "battery": {
352
- "description": "Battery level",
353
- "data_format": {
354
- "type": "battery",
355
- "data": {
356
- "level": 85,
357
- "charging": false,
358
- "timestamp": 1234567890
359
- },
360
- "timestamp": 1234567890
361
- }
362
- },
363
351
  "button": {
364
352
  "description": "Air touch button events (Pointer mode — pairs with navigation)",
365
353
  "states": [
@@ -424,7 +412,6 @@
424
412
  "can_combine": [
425
413
  "gesture OR pressure",
426
414
  "button (with pointer/direction/imu_biometric/none)",
427
- "battery",
428
415
  "ONE OF: pointer_mode OR direction_mode OR imu_biometric_mode"
429
416
  ],
430
417
  "cannot_combine": [
@@ -492,7 +479,7 @@
492
479
  "reason": "Button is part of pointer mode - cannot mix with direction mode"
493
480
  }
494
481
  ],
495
- "guidance": "Three mutually exclusive motion groups: (1) Pointer mode: navigation+button for continuous cursor/drag/pan, (2) Direction mode: nav_direction for discrete swipe-like gestures, (3) IMU+Biometric mode: imu_acc+imu_gyro+snc as an inseparable bundle for orientation/tilt/rotation/biometric. Pick ONE per app. gesture XOR pressure; button and battery combine freely (subject to mode rules)."
482
+ "guidance": "Three mutually exclusive motion groups: (1) Pointer mode: navigation+button for continuous cursor/drag/pan, (2) Direction mode: nav_direction for discrete swipe-like gestures, (3) IMU+Biometric mode: imu_acc+imu_gyro+snc as an inseparable bundle for orientation/tilt/rotation/biometric. Pick ONE per app. gesture XOR pressure; button combines freely (subject to mode rules)."
496
483
  },
497
484
  "websocket_api": {
498
485
  "url": "ws://127.0.0.1:8766",