@glassly/miniapp 0.1.0-dev.26

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 (312) hide show
  1. package/README.md +275 -0
  2. package/dist/background/index.d.ts +64 -0
  3. package/dist/background/index.d.ts.map +1 -0
  4. package/dist/background/index.js +26 -0
  5. package/dist/background/index.js.map +1 -0
  6. package/dist/background/register.d.ts +39 -0
  7. package/dist/background/register.d.ts.map +1 -0
  8. package/dist/background/register.js +72 -0
  9. package/dist/background/register.js.map +1 -0
  10. package/dist/dev-reload.d.ts +21 -0
  11. package/dist/dev-reload.d.ts.map +1 -0
  12. package/dist/dev-reload.js +60 -0
  13. package/dist/dev-reload.js.map +1 -0
  14. package/dist/envelope.d.ts +23 -0
  15. package/dist/envelope.d.ts.map +1 -0
  16. package/dist/envelope.js +47 -0
  17. package/dist/envelope.js.map +1 -0
  18. package/dist/globals.d.ts +54 -0
  19. package/dist/globals.d.ts.map +1 -0
  20. package/dist/globals.js +12 -0
  21. package/dist/globals.js.map +1 -0
  22. package/dist/hardware.d.ts +24 -0
  23. package/dist/hardware.d.ts.map +1 -0
  24. package/dist/hardware.js +20 -0
  25. package/dist/hardware.js.map +1 -0
  26. package/dist/index.d.ts +65 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +34 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/modules/actions.d.ts +81 -0
  31. package/dist/modules/actions.d.ts.map +1 -0
  32. package/dist/modules/actions.js +137 -0
  33. package/dist/modules/actions.js.map +1 -0
  34. package/dist/modules/ai.d.ts +211 -0
  35. package/dist/modules/ai.d.ts.map +1 -0
  36. package/dist/modules/ai.js +117 -0
  37. package/dist/modules/ai.js.map +1 -0
  38. package/dist/modules/auth.d.ts +25 -0
  39. package/dist/modules/auth.d.ts.map +1 -0
  40. package/dist/modules/auth.js +52 -0
  41. package/dist/modules/auth.js.map +1 -0
  42. package/dist/modules/base64.d.ts +16 -0
  43. package/dist/modules/base64.d.ts.map +1 -0
  44. package/dist/modules/base64.js +92 -0
  45. package/dist/modules/base64.js.map +1 -0
  46. package/dist/modules/blob.d.ts +161 -0
  47. package/dist/modules/blob.d.ts.map +1 -0
  48. package/dist/modules/blob.js +277 -0
  49. package/dist/modules/blob.js.map +1 -0
  50. package/dist/modules/camera.d.ts +183 -0
  51. package/dist/modules/camera.d.ts.map +1 -0
  52. package/dist/modules/camera.js +119 -0
  53. package/dist/modules/camera.js.map +1 -0
  54. package/dist/modules/cloud.d.ts +34 -0
  55. package/dist/modules/cloud.d.ts.map +1 -0
  56. package/dist/modules/cloud.js +70 -0
  57. package/dist/modules/cloud.js.map +1 -0
  58. package/dist/modules/dashboard.d.ts +24 -0
  59. package/dist/modules/dashboard.d.ts.map +1 -0
  60. package/dist/modules/dashboard.js +39 -0
  61. package/dist/modules/dashboard.js.map +1 -0
  62. package/dist/modules/display.d.ts +174 -0
  63. package/dist/modules/display.d.ts.map +1 -0
  64. package/dist/modules/display.js +83 -0
  65. package/dist/modules/display.js.map +1 -0
  66. package/dist/modules/events.d.ts +178 -0
  67. package/dist/modules/events.d.ts.map +1 -0
  68. package/dist/modules/events.js +168 -0
  69. package/dist/modules/events.js.map +1 -0
  70. package/dist/modules/glasses.d.ts +36 -0
  71. package/dist/modules/glasses.d.ts.map +1 -0
  72. package/dist/modules/glasses.js +52 -0
  73. package/dist/modules/glasses.js.map +1 -0
  74. package/dist/modules/heading.d.ts +16 -0
  75. package/dist/modules/heading.d.ts.map +1 -0
  76. package/dist/modules/heading.js +20 -0
  77. package/dist/modules/heading.js.map +1 -0
  78. package/dist/modules/imu.d.ts +31 -0
  79. package/dist/modules/imu.d.ts.map +1 -0
  80. package/dist/modules/imu.js +40 -0
  81. package/dist/modules/imu.js.map +1 -0
  82. package/dist/modules/input.d.ts +50 -0
  83. package/dist/modules/input.d.ts.map +1 -0
  84. package/dist/modules/input.js +70 -0
  85. package/dist/modules/input.js.map +1 -0
  86. package/dist/modules/keys.d.ts +30 -0
  87. package/dist/modules/keys.d.ts.map +1 -0
  88. package/dist/modules/keys.js +37 -0
  89. package/dist/modules/keys.js.map +1 -0
  90. package/dist/modules/languages.d.ts +42 -0
  91. package/dist/modules/languages.d.ts.map +1 -0
  92. package/dist/modules/languages.js +57 -0
  93. package/dist/modules/languages.js.map +1 -0
  94. package/dist/modules/led.d.ts +35 -0
  95. package/dist/modules/led.d.ts.map +1 -0
  96. package/dist/modules/led.js +39 -0
  97. package/dist/modules/led.js.map +1 -0
  98. package/dist/modules/location.d.ts +27 -0
  99. package/dist/modules/location.d.ts.map +1 -0
  100. package/dist/modules/location.js +35 -0
  101. package/dist/modules/location.js.map +1 -0
  102. package/dist/modules/memory.d.ts +126 -0
  103. package/dist/modules/memory.d.ts.map +1 -0
  104. package/dist/modules/memory.js +141 -0
  105. package/dist/modules/memory.js.map +1 -0
  106. package/dist/modules/mic.d.ts +61 -0
  107. package/dist/modules/mic.d.ts.map +1 -0
  108. package/dist/modules/mic.js +94 -0
  109. package/dist/modules/mic.js.map +1 -0
  110. package/dist/modules/miniapps.d.ts +82 -0
  111. package/dist/modules/miniapps.d.ts.map +1 -0
  112. package/dist/modules/miniapps.js +58 -0
  113. package/dist/modules/miniapps.js.map +1 -0
  114. package/dist/modules/navigation.d.ts +332 -0
  115. package/dist/modules/navigation.d.ts.map +1 -0
  116. package/dist/modules/navigation.js +387 -0
  117. package/dist/modules/navigation.js.map +1 -0
  118. package/dist/modules/permissions.d.ts +58 -0
  119. package/dist/modules/permissions.d.ts.map +1 -0
  120. package/dist/modules/permissions.js +66 -0
  121. package/dist/modules/permissions.js.map +1 -0
  122. package/dist/modules/phone.d.ts +95 -0
  123. package/dist/modules/phone.d.ts.map +1 -0
  124. package/dist/modules/phone.js +110 -0
  125. package/dist/modules/phone.js.map +1 -0
  126. package/dist/modules/pivots/engine.d.ts +169 -0
  127. package/dist/modules/pivots/engine.d.ts.map +1 -0
  128. package/dist/modules/pivots/engine.js +778 -0
  129. package/dist/modules/pivots/engine.js.map +1 -0
  130. package/dist/modules/pivots/geometry.d.ts +84 -0
  131. package/dist/modules/pivots/geometry.d.ts.map +1 -0
  132. package/dist/modules/pivots/geometry.js +371 -0
  133. package/dist/modules/pivots/geometry.js.map +1 -0
  134. package/dist/modules/pivots/instructions.d.ts +139 -0
  135. package/dist/modules/pivots/instructions.d.ts.map +1 -0
  136. package/dist/modules/pivots/instructions.js +281 -0
  137. package/dist/modules/pivots/instructions.js.map +1 -0
  138. package/dist/modules/speaker.d.ts +175 -0
  139. package/dist/modules/speaker.d.ts.map +1 -0
  140. package/dist/modules/speaker.js +249 -0
  141. package/dist/modules/speaker.js.map +1 -0
  142. package/dist/modules/speakers.d.ts +29 -0
  143. package/dist/modules/speakers.d.ts.map +1 -0
  144. package/dist/modules/speakers.js +38 -0
  145. package/dist/modules/speakers.js.map +1 -0
  146. package/dist/modules/storage.d.ts +50 -0
  147. package/dist/modules/storage.d.ts.map +1 -0
  148. package/dist/modules/storage.js +99 -0
  149. package/dist/modules/storage.js.map +1 -0
  150. package/dist/modules/stream.d.ts +133 -0
  151. package/dist/modules/stream.d.ts.map +1 -0
  152. package/dist/modules/stream.js +53 -0
  153. package/dist/modules/stream.js.map +1 -0
  154. package/dist/modules/system.d.ts +71 -0
  155. package/dist/modules/system.d.ts.map +1 -0
  156. package/dist/modules/system.js +65 -0
  157. package/dist/modules/system.js.map +1 -0
  158. package/dist/modules/transcription.d.ts +99 -0
  159. package/dist/modules/transcription.d.ts.map +1 -0
  160. package/dist/modules/transcription.js +126 -0
  161. package/dist/modules/transcription.js.map +1 -0
  162. package/dist/modules/translation.d.ts +65 -0
  163. package/dist/modules/translation.d.ts.map +1 -0
  164. package/dist/modules/translation.js +121 -0
  165. package/dist/modules/translation.js.map +1 -0
  166. package/dist/modules/ui.d.ts +186 -0
  167. package/dist/modules/ui.d.ts.map +1 -0
  168. package/dist/modules/ui.js +289 -0
  169. package/dist/modules/ui.js.map +1 -0
  170. package/dist/protocol.d.ts +390 -0
  171. package/dist/protocol.d.ts.map +1 -0
  172. package/dist/protocol.js +419 -0
  173. package/dist/protocol.js.map +1 -0
  174. package/dist/react/MiniappHeader.d.ts +44 -0
  175. package/dist/react/MiniappHeader.d.ts.map +1 -0
  176. package/dist/react/MiniappHeader.js +32 -0
  177. package/dist/react/MiniappHeader.js.map +1 -0
  178. package/dist/react/MiniappProvider.d.ts +33 -0
  179. package/dist/react/MiniappProvider.d.ts.map +1 -0
  180. package/dist/react/MiniappProvider.js +15 -0
  181. package/dist/react/MiniappProvider.js.map +1 -0
  182. package/dist/react/capsuleHeaderLayout.d.ts +3 -0
  183. package/dist/react/capsuleHeaderLayout.d.ts.map +1 -0
  184. package/dist/react/capsuleHeaderLayout.js +5 -0
  185. package/dist/react/capsuleHeaderLayout.js.map +1 -0
  186. package/dist/react/index.d.ts +13 -0
  187. package/dist/react/index.d.ts.map +1 -0
  188. package/dist/react/index.js +9 -0
  189. package/dist/react/index.js.map +1 -0
  190. package/dist/react/useCapabilities.d.ts +26 -0
  191. package/dist/react/useCapabilities.d.ts.map +1 -0
  192. package/dist/react/useCapabilities.js +27 -0
  193. package/dist/react/useCapabilities.js.map +1 -0
  194. package/dist/react/useCapsuleHeaderStyle.d.ts +27 -0
  195. package/dist/react/useCapsuleHeaderStyle.d.ts.map +1 -0
  196. package/dist/react/useCapsuleHeaderStyle.js +39 -0
  197. package/dist/react/useCapsuleHeaderStyle.js.map +1 -0
  198. package/dist/react/useColorScheme.d.ts +18 -0
  199. package/dist/react/useColorScheme.d.ts.map +1 -0
  200. package/dist/react/useColorScheme.js +24 -0
  201. package/dist/react/useColorScheme.js.map +1 -0
  202. package/dist/react/useConnected.d.ts +17 -0
  203. package/dist/react/useConnected.d.ts.map +1 -0
  204. package/dist/react/useConnected.js +39 -0
  205. package/dist/react/useConnected.js.map +1 -0
  206. package/dist/react/useRpc.d.ts +29 -0
  207. package/dist/react/useRpc.d.ts.map +1 -0
  208. package/dist/react/useRpc.js +82 -0
  209. package/dist/react/useRpc.js.map +1 -0
  210. package/dist/react/useSafeArea.d.ts +21 -0
  211. package/dist/react/useSafeArea.d.ts.map +1 -0
  212. package/dist/react/useSafeArea.js +22 -0
  213. package/dist/react/useSafeArea.js.map +1 -0
  214. package/dist/session.d.ts +355 -0
  215. package/dist/session.d.ts.map +1 -0
  216. package/dist/session.js +688 -0
  217. package/dist/session.js.map +1 -0
  218. package/dist/sub-path-types.test-d.d.ts +40 -0
  219. package/dist/sub-path-types.test-d.d.ts.map +1 -0
  220. package/dist/sub-path-types.test-d.js +37 -0
  221. package/dist/sub-path-types.test-d.js.map +1 -0
  222. package/dist/transport/auto.d.ts +35 -0
  223. package/dist/transport/auto.d.ts.map +1 -0
  224. package/dist/transport/auto.js +124 -0
  225. package/dist/transport/auto.js.map +1 -0
  226. package/dist/transport/dispatch.d.ts +43 -0
  227. package/dist/transport/dispatch.d.ts.map +1 -0
  228. package/dist/transport/dispatch.js +91 -0
  229. package/dist/transport/dispatch.js.map +1 -0
  230. package/dist/transport/local-socket.d.ts +28 -0
  231. package/dist/transport/local-socket.d.ts.map +1 -0
  232. package/dist/transport/local-socket.js +80 -0
  233. package/dist/transport/local-socket.js.map +1 -0
  234. package/dist/transport/mock.d.ts +54 -0
  235. package/dist/transport/mock.d.ts.map +1 -0
  236. package/dist/transport/mock.js +210 -0
  237. package/dist/transport/mock.js.map +1 -0
  238. package/dist/transport/postmessage.d.ts +36 -0
  239. package/dist/transport/postmessage.d.ts.map +1 -0
  240. package/dist/transport/postmessage.js +78 -0
  241. package/dist/transport/postmessage.js.map +1 -0
  242. package/dist/transport/types.d.ts +25 -0
  243. package/dist/transport/types.d.ts.map +1 -0
  244. package/dist/transport/types.js +11 -0
  245. package/dist/transport/types.js.map +1 -0
  246. package/dist/ui/index.d.ts +107 -0
  247. package/dist/ui/index.d.ts.map +1 -0
  248. package/dist/ui/index.js +32 -0
  249. package/dist/ui/index.js.map +1 -0
  250. package/package.json +88 -0
  251. package/src/background/index.ts +177 -0
  252. package/src/background/register.ts +89 -0
  253. package/src/dev-reload.ts +59 -0
  254. package/src/envelope.ts +54 -0
  255. package/src/globals.ts +62 -0
  256. package/src/hardware.ts +25 -0
  257. package/src/index.ts +216 -0
  258. package/src/modules/actions.ts +189 -0
  259. package/src/modules/ai.ts +281 -0
  260. package/src/modules/auth.ts +68 -0
  261. package/src/modules/base64.ts +87 -0
  262. package/src/modules/blob.ts +341 -0
  263. package/src/modules/camera.ts +258 -0
  264. package/src/modules/cloud.ts +94 -0
  265. package/src/modules/dashboard.ts +51 -0
  266. package/src/modules/display.ts +214 -0
  267. package/src/modules/events.ts +318 -0
  268. package/src/modules/glasses.ts +58 -0
  269. package/src/modules/heading.ts +23 -0
  270. package/src/modules/imu.ts +44 -0
  271. package/src/modules/input.ts +87 -0
  272. package/src/modules/keys.ts +46 -0
  273. package/src/modules/languages.ts +72 -0
  274. package/src/modules/led.ts +61 -0
  275. package/src/modules/location.ts +39 -0
  276. package/src/modules/memory.ts +224 -0
  277. package/src/modules/mic.ts +103 -0
  278. package/src/modules/miniapps.ts +103 -0
  279. package/src/modules/navigation.ts +674 -0
  280. package/src/modules/permissions.ts +83 -0
  281. package/src/modules/phone.ts +155 -0
  282. package/src/modules/pivots/engine.ts +863 -0
  283. package/src/modules/pivots/geometry.ts +409 -0
  284. package/src/modules/pivots/instructions.ts +341 -0
  285. package/src/modules/speaker.ts +347 -0
  286. package/src/modules/speakers.ts +40 -0
  287. package/src/modules/storage.ts +109 -0
  288. package/src/modules/stream.ts +168 -0
  289. package/src/modules/system.ts +113 -0
  290. package/src/modules/transcription.ts +180 -0
  291. package/src/modules/translation.ts +156 -0
  292. package/src/modules/ui.ts +481 -0
  293. package/src/protocol.ts +482 -0
  294. package/src/react/MiniappHeader.tsx +114 -0
  295. package/src/react/MiniappProvider.tsx +50 -0
  296. package/src/react/capsuleHeaderLayout.ts +11 -0
  297. package/src/react/index.ts +12 -0
  298. package/src/react/useCapabilities.ts +29 -0
  299. package/src/react/useCapsuleHeaderStyle.ts +55 -0
  300. package/src/react/useColorScheme.ts +26 -0
  301. package/src/react/useConnected.ts +47 -0
  302. package/src/react/useRpc.ts +103 -0
  303. package/src/react/useSafeArea.ts +36 -0
  304. package/src/session.ts +969 -0
  305. package/src/sub-path-types.test-d.ts +60 -0
  306. package/src/transport/auto.ts +143 -0
  307. package/src/transport/dispatch.ts +106 -0
  308. package/src/transport/local-socket.ts +91 -0
  309. package/src/transport/mock.ts +255 -0
  310. package/src/transport/postmessage.ts +95 -0
  311. package/src/transport/types.ts +26 -0
  312. package/src/ui/index.ts +129 -0
@@ -0,0 +1,390 @@
1
+ /**
2
+ * @fileoverview Wire protocol for @glassly/miniapp.
3
+ *
4
+ * Fresh miniapp-naming enum values. No legacy tpa_/app_/applet_ prefixes.
5
+ * These values are the contract between @glassly/miniapp (running in a WebView)
6
+ * and LocalMiniappRuntime (running on the phone).
7
+ *
8
+ * IMPORTANT: This file has NO runtime dependency on @glassly/sdk. The cloud SDK's
9
+ * wire protocol enums live in @glassly/sdk/types/message-types.ts and are used
10
+ * for cloud↔app communication, not phone↔miniapp.
11
+ */
12
+ export declare enum MiniappRequestType {
13
+ /** Handshake: miniapp announces itself and asks phone to bind the session. */
14
+ CONNECT = "miniapp_connect",
15
+ /** Request a fresh miniapp-scoped backend auth token. */
16
+ AUTH_REFRESH = "miniapp_auth_refresh",
17
+ /** Update the set of streams the miniapp is subscribed to. */
18
+ SUBSCRIBE = "miniapp_subscribe",
19
+ /**
20
+ * Declare the touch gestures this miniapp is handling itself, suppressing
21
+ * the host's default behavior for them (e.g. double_tap opens the
22
+ * dashboard) while the app is foreground on the glasses.
23
+ */
24
+ CLAIM_GESTURES = "miniapp_claim_gestures",
25
+ /**
26
+ * Push a legacy display layout to the glasses. The SDK no longer emits this
27
+ * (render()/RENDER replaced it); hosts keep accepting it from bundles packed
28
+ * with older SDKs and from cloud-shaped layouts.
29
+ */
30
+ DISPLAY = "miniapp_display",
31
+ /** Render a whole scene of positioned elements (replace-the-frame). */
32
+ RENDER = "miniapp_render",
33
+ /**
34
+ * Feed the device's firmware-rendered navigation UI (capability
35
+ * `hasNativeNavigation`): structured turn-by-turn card fields and
36
+ * pre-rendered map bitmaps. Only accepted while a trip is active.
37
+ */
38
+ NATIVE_NAV = "miniapp_native_nav",
39
+ /** Play an arbitrary audio URL through the phone's audio playback service. */
40
+ PLAY_AUDIO = "miniapp_play_audio",
41
+ /** Stop any audio playback this miniapp initiated. */
42
+ STOP_AUDIO = "miniapp_stop_audio",
43
+ /** Speak text via cloud TTS — phone constructs the URL. */
44
+ SPEAK = "miniapp_speak",
45
+ /**
46
+ * Live PCM output stream to the phone's audio playback service
47
+ * (speaker.createStream). OPEN provisions a native chunk player; WRITE
48
+ * appends base64 PCM (replies with {bufferedMs} for backpressure); CLOSE
49
+ * drains and finishes; ABORT drops immediately.
50
+ */
51
+ SPEAKER_STREAM_OPEN = "miniapp_speaker_stream_open",
52
+ SPEAKER_STREAM_WRITE = "miniapp_speaker_stream_write",
53
+ SPEAKER_STREAM_CLOSE = "miniapp_speaker_stream_close",
54
+ SPEAKER_STREAM_ABORT = "miniapp_speaker_stream_abort",
55
+ /** Control the glasses RGB LED. */
56
+ RGB_LED = "miniapp_rgb_led",
57
+ /** One-shot location poll. */
58
+ LOCATION_POLL = "miniapp_location_poll",
59
+ /** Read a bounded snapshot of phone calendar events. */
60
+ CALENDAR_LIST_EVENTS = "miniapp_calendar_list_events",
61
+ /** Start a turn-by-turn navigation trip. Android only. */
62
+ NAVIGATION_START = "miniapp_navigation_start",
63
+ /** Stop the active navigation trip (if any). */
64
+ NAVIGATION_STOP = "miniapp_navigation_stop",
65
+ /** Dev-only: nudge the simulator off-route to test rerouting. Android sim only. */
66
+ NAVIGATION_DEVIATE = "miniapp_navigation_deviate",
67
+ /** Dev-only: lock simulated locations to the wrong sidewalk for pivot-trigger testing. */
68
+ NAVIGATION_SET_WRONG_SIDEWALK = "miniapp_navigation_set_wrong_sidewalk",
69
+ /** Dev-only: take over the simulator and walk a polyline with crossings stripped. */
70
+ NAVIGATION_SET_SKIP_CROSSINGS = "miniapp_navigation_set_skip_crossings",
71
+ /** Snapshot of the active trip (or null). Lets a miniapp opening mid-trip hydrate. */
72
+ NAVIGATION_GET_STATE = "miniapp_navigation_get_state",
73
+ /** Compute a route without starting a trip. Replaces hand-rolled Directions calls. */
74
+ NAVIGATION_COMPUTE_ROUTE = "miniapp_navigation_compute_route",
75
+ /** Reverse-geocode a coordinate to a short road name + full formatted
76
+ * address. `road` backs the engine's fallback for pivots whose Routes-API
77
+ * instruction didn't include a parseable road; `address` backs UI labels for
78
+ * dropped pins / POI taps. Resolved in the v2 cloud maps service (Mapbox
79
+ * today) via the host bridge — the miniapp never holds a maps token. */
80
+ NAVIGATION_REVERSE_GEOCODE = "miniapp_navigation_reverse_geocode",
81
+ /** Type-ahead place search (autocomplete). Resolved in the v2 cloud maps
82
+ * service (Mapbox Search Box today) via the host bridge — the miniapp never
83
+ * holds a maps token. Pairs with NAVIGATION_PLACE_DETAILS via a sessionToken. */
84
+ NAVIGATION_PLACE_AUTOCOMPLETE = "miniapp_navigation_place_autocomplete",
85
+ /** Resolve an autocomplete suggestion (placeId + sessionToken) to coordinates,
86
+ * in the v2 cloud maps service via the host bridge. */
87
+ NAVIGATION_PLACE_DETAILS = "miniapp_navigation_place_details",
88
+ /** Request nav permission up-front so start() doesn't have to (no dialog under Mapbox). */
89
+ NAVIGATION_REQUEST_PERMISSION = "miniapp_navigation_request_permission",
90
+ /**
91
+ * Read a user-supplied provider API key (Settings > API Keys) by provider
92
+ * name. Requires the API_KEYS manifest permission; the host only serves an
93
+ * allowlisted provider set (see KeysModule) — notably the Soniox key is
94
+ * excluded. Keys are device-local; the value never transits any server.
95
+ */
96
+ KEYS_GET = "miniapp_keys_get",
97
+ /**
98
+ * Run one LLM completion turn through the platform. Requires the AI manifest
99
+ * permission. The host routes to the cloud LLM service, which picks the
100
+ * provider and pays with the platform key — or with the user's own key when
101
+ * they've saved one for that provider (Settings > API Keys), in which case
102
+ * the call isn't metered against their plan.
103
+ *
104
+ * Single-shot or a client-side tool loop: when the model wants a tool run,
105
+ * the result comes back with stopReason "tool_use" and the calls to execute;
106
+ * append the answers and call again. The `webSearch` flag grants the
107
+ * provider's own server-side search tool; other provider server-side tools
108
+ * (Anthropic code_execution / Files API) and streaming are deliberately not
109
+ * exposed — see cloud-v2/packages/protocol/src/llm.ts.
110
+ */
111
+ AI_COMPLETE = "miniapp_ai_complete",
112
+ AI_GENERATE = "miniapp_ai_generate",
113
+ /** Phone-local simple storage. */
114
+ STORAGE_GET = "miniapp_storage_get",
115
+ STORAGE_SET = "miniapp_storage_set",
116
+ STORAGE_DELETE = "miniapp_storage_delete",
117
+ STORAGE_LIST = "miniapp_storage_list",
118
+ STORAGE_CLEAR = "miniapp_storage_clear",
119
+ STORAGE_HAS = "miniapp_storage_has",
120
+ STORAGE_GET_ALL = "miniapp_storage_get_all",
121
+ STORAGE_SET_MULTIPLE = "miniapp_storage_set_multiple",
122
+ STORAGE_FLUSH = "miniapp_storage_flush",
123
+ /**
124
+ * Shared user-level memory timeline (transcript lines + notes + hourly
125
+ * summaries), stored host-side and scoped to the USER — not to this
126
+ * miniapp's storage namespace. Requires the MEMORY manifest permission.
127
+ * The user manages the same timeline in Settings > Memory.
128
+ */
129
+ MEMORY_APPEND_LINE = "miniapp_memory_append_line",
130
+ MEMORY_ADD_NOTE = "miniapp_memory_add_note",
131
+ MEMORY_REMOVE_ENTRY = "miniapp_memory_remove_entry",
132
+ MEMORY_REMOVE_SCOPE = "miniapp_memory_remove_scope",
133
+ MEMORY_SESSION_LIST = "miniapp_memory_session_list",
134
+ MEMORY_QUERY = "miniapp_memory_query",
135
+ MEMORY_WINDOW = "miniapp_memory_window",
136
+ MEMORY_EXPORT_TEXT = "miniapp_memory_export_text",
137
+ MEMORY_SUMMARY_ADD = "miniapp_memory_summary_add",
138
+ MEMORY_SUMMARY_LIST = "miniapp_memory_summary_list",
139
+ MEMORY_PENDING_SUMMARY_HOUR = "miniapp_memory_pending_summary_hour",
140
+ MEMORY_CLEAR = "miniapp_memory_clear",
141
+ /**
142
+ * Resolve an enrolled-speaker id (`spk_…` from TranscriptionData.speakerId)
143
+ * to the user's display name for that speaker. Requires the SPEAKERS
144
+ * manifest permission — names are on-device PII and only cross into a
145
+ * miniapp through this explicit, user-visible gate.
146
+ */
147
+ SPEAKERS_RESOLVE_NAME = "miniapp_speakers_resolve_name",
148
+ /** Write camera FOV settings. */
149
+ CAMERA_FOV = "miniapp_camera_fov",
150
+ /** Pre-warm the glasses camera so the next takePhoto() is near-instant. */
151
+ CAMERA_WARM_UP = "miniapp_camera_warm_up",
152
+ /**
153
+ * Enable/disable raw accelerometer (IMU) streaming on the glasses. The
154
+ * accel stream also auto-enables on subscribe; this is an explicit override
155
+ * for callers who want to control the sensor directly. G2 only today.
156
+ */
157
+ IMU_SET_ENABLED = "miniapp_imu_set_enabled",
158
+ /** Explicitly enable/disable glasses-side VAD (GX8002). Mirrors the app's mic settings toggle. */
159
+ MIC_SET_VAD_ENABLED = "miniapp_mic_set_vad_enabled",
160
+ /** Explicitly enable/disable the center-mic loudness gate ("Barrier"). */
161
+ MIC_SET_LOUDNESS_GATE_ENABLED = "miniapp_mic_set_loudness_gate_enabled",
162
+ /**
163
+ * Enable or disable Wi-Fi ADB (wireless debugging) on Mentra Live.
164
+ * SYSTEM-only — host rejects with NOT_PERMITTED for non-system callers.
165
+ */
166
+ SET_WIFI_ADB_STATE = "miniapp_set_wifi_adb_state",
167
+ /** Share content via the OS share sheet. */
168
+ SHARE = "miniapp_share",
169
+ /** Open a URL in the system browser. */
170
+ OPEN_URL = "miniapp_open_url",
171
+ /** Copy text to the system clipboard. */
172
+ COPY_CLIPBOARD = "miniapp_copy_clipboard",
173
+ /** Download a file (triggers OS share sheet for save location). */
174
+ DOWNLOAD = "miniapp_download",
175
+ /**
176
+ * Open a phone-camera QR scanner overlay. Host must not unmount the miniapp
177
+ * (clearing foreground fires UI_CLOSE and can hang up live sessions).
178
+ */
179
+ SCAN_QR = "miniapp_scan_qr",
180
+ /**
181
+ * Phone-local persistent binary blob storage, scoped to (userId, packageName).
182
+ * Unlike STORAGE_* (small string KV in MMKV), blobs are arbitrary bytes written
183
+ * to the phone filesystem. Large payloads are moved in chunks (BLOB_WRITE /
184
+ * BLOB_READ) so a single bridge message never carries a multi-MB string.
185
+ */
186
+ BLOB_CREATE = "miniapp_blob_create",
187
+ BLOB_WRITE = "miniapp_blob_write",
188
+ BLOB_COMMIT = "miniapp_blob_commit",
189
+ BLOB_ABORT = "miniapp_blob_abort",
190
+ BLOB_GET = "miniapp_blob_get",
191
+ BLOB_LIST = "miniapp_blob_list",
192
+ BLOB_DELETE = "miniapp_blob_delete",
193
+ BLOB_CLEAR = "miniapp_blob_clear",
194
+ BLOB_USAGE = "miniapp_blob_usage",
195
+ BLOB_OPEN_READ = "miniapp_blob_open_read",
196
+ BLOB_READ = "miniapp_blob_read",
197
+ BLOB_CLOSE_READ = "miniapp_blob_close_read",
198
+ /** Download a URL straight into a blob, host-side (no bytes cross the bridge). */
199
+ BLOB_SET_FROM_URL = "miniapp_blob_set_from_url",
200
+ /** Open the OS file picker and import the chosen file into a blob, host-side. */
201
+ BLOB_IMPORT = "miniapp_blob_import",
202
+ /** Share a stored blob from disk via the OS share sheet (no bytes cross the bridge). */
203
+ BLOB_SHARE = "miniapp_blob_share",
204
+ /** Phone → miniapp liveness probe. Miniapp SDK auto-replies with PONG. */
205
+ PING = "miniapp_ping",
206
+ /**
207
+ * Apply transcription configuration (language hints, vocabulary, diarization).
208
+ * Phone forwards to the cloud STT layer. Fire-and-forget; cached client-side
209
+ * so future reconnect logic can re-send.
210
+ */
211
+ TRANSCRIPTION_CONFIG = "miniapp_transcription_config",
212
+ /** Dashboard content update. Noop in v1. */
213
+ DASHBOARD_CONTENT_UPDATE = "miniapp_dashboard_content_update",
214
+ /** Bring the glasses' native dashboard (OS idle screen) to the foreground. */
215
+ SHOW_NATIVE_DASHBOARD = "miniapp_show_native_dashboard",
216
+ PHOTO = "miniapp_photo",
217
+ VIDEO_RECORDING_START = "miniapp_video_recording_start",
218
+ VIDEO_RECORDING_STOP = "miniapp_video_recording_stop",
219
+ STREAM_START = "miniapp_stream_start",
220
+ STREAM_STOP = "miniapp_stream_stop",
221
+ MANAGED_STREAM_START = "miniapp_managed_stream_start",
222
+ MANAGED_STREAM_STOP = "miniapp_managed_stream_stop",
223
+ /** Ask the host to open the glasses Wi-Fi setup flow (mirrors the cloud SDK's requestWifiSetup). */
224
+ REQUEST_WIFI_SETUP = "miniapp_request_wifi_setup",
225
+ /** List installed miniapps (compatibility-filtered, with declared actions). SYSTEM-only. */
226
+ MINIAPPS_LIST = "miniapp_apps_list",
227
+ /** Start another miniapp (user-tap semantics). SYSTEM-only. */
228
+ MINIAPPS_START = "miniapp_apps_start",
229
+ /** Stop another miniapp. SYSTEM-only. */
230
+ MINIAPPS_STOP = "miniapp_apps_stop",
231
+ /** Stop the CALLING miniapp itself. One-shot (no reply) and NOT system-gated. */
232
+ MINIAPPS_STOP_SELF = "miniapp_apps_stop_self",
233
+ /** List every action the caller may invoke across installed miniapps (MCP tools/list analog). */
234
+ ACTIONS_LIST = "miniapp_actions_list",
235
+ /** Invoke a declared action on another miniapp; headless-wakes it if stopped. */
236
+ ACTION_INVOKE = "miniapp_action_invoke",
237
+ /** Target → host: the result of a delivered ACTION_CALL, correlated by callId. */
238
+ ACTION_RESULT = "miniapp_action_result",
239
+ /** Ask the host to stop THIS miniapp (self-close; e.g. after finishing a one-shot action). */
240
+ SYSTEM_EXIT = "miniapp_system_exit"
241
+ }
242
+ export declare enum MiniappResponseType {
243
+ /** Response to CONNECT carrying userId, packageName, capabilities. */
244
+ CONNECT_ACK = "miniapp_connect_ack",
245
+ /** Push: a streamed event for a subscribed stream. */
246
+ EVENT = "miniapp_event",
247
+ /** Response to any request that needs a result (matched by requestId). */
248
+ REQUEST_RESULT = "miniapp_request_result",
249
+ /** Push: glasses capabilities changed. */
250
+ CAPABILITIES_UPDATE = "miniapp_capabilities_update",
251
+ /** Push: miniapp's foreground/background state changed. */
252
+ VISIBILITY_CHANGE = "miniapp_visibility_change",
253
+ /** Push: host color scheme (light/dark) changed. */
254
+ COLOR_SCHEME_CHANGE = "miniapp_color_scheme_change",
255
+ /**
256
+ * Push: speaker playback state transitioned. Per-miniapp; the runtime sends
257
+ * to the owning miniapp only. Carries {state, errorCode?, errorMessage?,
258
+ * durationMs?}. See SpeakerModule.onStateChange().
259
+ */
260
+ SPEAKER_STATE = "miniapp_speaker_state",
261
+ /**
262
+ * Push: manifest-declared permissions changed (e.g. dev miniapp re-scanned
263
+ * with updated manifest). Carries a full PermissionRecord. SDK caches it
264
+ * and fires session.permissions.onUpdate handlers.
265
+ */
266
+ PERMISSIONS_UPDATE = "miniapp_permissions_update",
267
+ /**
268
+ * Push: miniapp-scoped backend auth token changed. Carries a token minted for
269
+ * this packageName only; it is never a Core or runtime access token.
270
+ */
271
+ AUTH_UPDATE = "miniapp_auth_update",
272
+ /** Reply to PING. SDK auto-handles this; developers never see it. */
273
+ PONG = "miniapp_pong",
274
+ /**
275
+ * Host → target: deliver an action call (from another miniapp's
276
+ * session.actions.invoke) to this miniapp's session.actions.handle handler.
277
+ * Carries {callId, actionId, params, callerPackageName}. The SDK runs the
278
+ * handler and replies with an ACTION_RESULT request keyed by callId.
279
+ */
280
+ ACTION_CALL = "miniapp_action_call",
281
+ /**
282
+ * Push: phone is about to tear down the miniapp's session. Gives the SDK
283
+ * a brief window (~50ms grace on the phone side) to fire one last
284
+ * `sendOneShot` before the transport closes — used to flush final
285
+ * cleanup like `display.render([])`. Synchronous handlers only.
286
+ */
287
+ WILL_DISCONNECT = "miniapp_will_disconnect",
288
+ /** Async error not tied to a specific request. */
289
+ ERROR = "miniapp_error"
290
+ }
291
+ export declare enum MiniappStreamType {
292
+ BUTTON_PRESS = "button_press",
293
+ TOUCH_EVENT = "touch_event",
294
+ HEAD_POSITION = "head_position",
295
+ /**
296
+ * Raw accelerometer reading from the glasses IMU — `{x, y, z}` in g, plus a
297
+ * timestamp. G2 only today. A richer combined IMU stream (accel + gyro +
298
+ * magnetometer) is future work; this is the single-sensor precursor.
299
+ */
300
+ ACCEL_DATA = "accel_data",
301
+ GLASSES_BATTERY = "glasses_battery",
302
+ PHONE_BATTERY = "phone_battery",
303
+ GLASSES_CONNECTION = "glasses_connection",
304
+ /** Glasses Wi-Fi state (connected/ssid). Glasses with Wi-Fi only; needed for streaming. */
305
+ GLASSES_WIFI = "glasses_wifi",
306
+ TRANSCRIPTION = "transcription",// language variant: "transcription:en-US"
307
+ TRANSLATION = "translation",// language variant: "translation:en-US"
308
+ AUDIO_CHUNK = "audio_chunk",
309
+ VAD = "vad",
310
+ LOCATION_UPDATE = "location_update",
311
+ /** Compass heading in degrees (0=N, 90=E). */
312
+ HEADING_UPDATE = "heading_update",
313
+ /** Turn-by-turn navigation event (maneuver / rerouting / arrived / error). */
314
+ NAVIGATION_UPDATE = "navigation_update",
315
+ /** Active navigation route polyline — full path, fired once per route build. */
316
+ NAVIGATION_ROUTE = "navigation_route",
317
+ PHONE_NOTIFICATION = "phone_notification",
318
+ /**
319
+ * A previously-posted notification was dismissed by the user.
320
+ *
321
+ * Android-only today. iOS does not expose dismiss callbacks to apps
322
+ * (Apple privacy restriction); subscribing on iOS succeeds but no events
323
+ * fire. See agents/miniapp-speaker-state-and-notif-dismissed-plan.md.
324
+ */
325
+ PHONE_NOTIFICATION_DISMISSED = "phone_notification_dismissed",
326
+ PHOTO_TAKEN = "photo_taken",
327
+ STREAM_STATUS = "stream_status"
328
+ }
329
+ export declare enum MiniappErrorCode {
330
+ /** Request arguments failed host-side validation. */
331
+ INVALID_ARGUMENT = "INVALID_ARGUMENT",
332
+ /** The miniapp subscribed to a stream whose required permission wasn't in its manifest. */
333
+ PERMISSION_NOT_DECLARED = "PERMISSION_NOT_DECLARED",
334
+ /** The required phone OS permission is not currently granted. */
335
+ PERMISSION_DENIED = "PERMISSION_DENIED",
336
+ /** Request routed to a method that isn't supported yet. */
337
+ NOT_IMPLEMENTED = "NOT_IMPLEMENTED",
338
+ /** Request timed out or the session was torn down before it could complete. */
339
+ REQUEST_ABORTED = "REQUEST_ABORTED",
340
+ /** Phone-side code path threw. Check `message`. */
341
+ INTERNAL = "INTERNAL",
342
+ /**
343
+ * The account's free-tier allowance for this feature (e.g. monthly AI
344
+ * credit) is used up. Not retryable this period; the user can upgrade or
345
+ * the miniapp can fall back to a non-cloud path.
346
+ */
347
+ QUOTA_EXCEEDED = "QUOTA_EXCEEDED",
348
+ /** Cloud TTS returned a non-2xx for a SPEAK request. */
349
+ TTS_TEXT_TOO_LONG = "TTS_TEXT_TOO_LONG",
350
+ TTS_INVALID_VOICE = "TTS_INVALID_VOICE",
351
+ TTS_UPSTREAM_ERROR = "TTS_UPSTREAM_ERROR",
352
+ /** `speak({forceLocal: true})` but the on-device offline TTS model isn't downloaded/ready. */
353
+ TTS_LOCAL_UNAVAILABLE = "TTS_LOCAL_UNAVAILABLE",
354
+ /** Not connected / pre-ACK and transport closed. */
355
+ NOT_CONNECTED = "NOT_CONNECTED",
356
+ /**
357
+ * Caller is not a system app — SYSTEM-only APIs (interop list/start/stop/invoke,
358
+ * setWifiAdbState) reject with this code.
359
+ */
360
+ NOT_PERMITTED = "NOT_PERMITTED",
361
+ /** Target miniapp is not installed. */
362
+ APP_NOT_FOUND = "APP_NOT_FOUND",
363
+ /** Target miniapp is incompatible with the connected glasses. */
364
+ APP_NOT_COMPATIBLE = "APP_NOT_COMPATIBLE",
365
+ /** Target miniapp does not declare the requested action. */
366
+ ACTION_NOT_FOUND = "ACTION_NOT_FOUND",
367
+ /** Target connected but never registered a handler for the action (within the buffer window). */
368
+ NO_ACTION_HANDLER = "NO_ACTION_HANDLER",
369
+ /** Target failed to wake / complete its CONNECT handshake for an invoke. */
370
+ WAKE_FAILED = "WAKE_FAILED",
371
+ /** Action handler did not return within the caller's timeout. */
372
+ ACTION_TIMEOUT = "ACTION_TIMEOUT",
373
+ /** Action params or result exceeded the 256 KB size cap. */
374
+ PAYLOAD_TOO_LARGE = "PAYLOAD_TOO_LARGE",
375
+ /** No blob with the given id in this miniapp's namespace. */
376
+ BLOB_NOT_FOUND = "BLOB_NOT_FOUND",
377
+ /** Writing this blob would exceed the per-app blob quota. */
378
+ BLOB_QUOTA_EXCEEDED = "BLOB_QUOTA_EXCEEDED",
379
+ /** Blob is larger than the requested in-memory read can hold. */
380
+ BLOB_TOO_LARGE = "BLOB_TOO_LARGE",
381
+ /** Write/read handle is unknown, already settled, or belongs to another app. */
382
+ BLOB_HANDLE_INVALID = "BLOB_HANDLE_INVALID",
383
+ /** Filesystem write failed (out of disk, permissions, etc.). */
384
+ BLOB_WRITE_FAILED = "BLOB_WRITE_FAILED",
385
+ /** `blob.setFromUrl` could not download the URL (network / non-2xx). */
386
+ BLOB_DOWNLOAD_FAILED = "BLOB_DOWNLOAD_FAILED",
387
+ /** `blob.importFile` failed (not the user cancelling — that resolves to null). */
388
+ BLOB_IMPORT_FAILED = "BLOB_IMPORT_FAILED"
389
+ }
390
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}