@mentra/sdk 2.1.29-beta.2 → 2.1.29

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 (81) hide show
  1. package/dist/app/server/index.d.ts +70 -5
  2. package/dist/app/server/index.d.ts.map +1 -1
  3. package/dist/app/session/device-state.d.ts +83 -0
  4. package/dist/app/session/device-state.d.ts.map +1 -0
  5. package/dist/app/session/events.d.ts +9 -0
  6. package/dist/app/session/events.d.ts.map +1 -1
  7. package/dist/app/session/index.d.ts +23 -3
  8. package/dist/app/session/index.d.ts.map +1 -1
  9. package/dist/app/session/modules/camera.d.ts +5 -43
  10. package/dist/app/session/modules/camera.d.ts.map +1 -1
  11. package/dist/index.d.ts +6 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +389 -135
  14. package/dist/index.js.map +16 -14
  15. package/dist/types/capabilities.d.ts +3 -90
  16. package/dist/types/capabilities.d.ts.map +1 -1
  17. package/dist/types/index.d.ts +1 -1
  18. package/dist/types/index.d.ts.map +1 -1
  19. package/dist/types/message-types.d.ts +8 -3
  20. package/dist/types/message-types.d.ts.map +1 -1
  21. package/dist/types/messages/app-to-cloud.d.ts +15 -1
  22. package/dist/types/messages/app-to-cloud.d.ts.map +1 -1
  23. package/dist/types/messages/cloud-to-app.d.ts +14 -1
  24. package/dist/types/messages/cloud-to-app.d.ts.map +1 -1
  25. package/dist/types/messages/cloud-to-glasses.d.ts +10 -3
  26. package/dist/types/messages/cloud-to-glasses.d.ts.map +1 -1
  27. package/dist/types/messages/glasses-to-cloud.d.ts +20 -2
  28. package/dist/types/messages/glasses-to-cloud.d.ts.map +1 -1
  29. package/dist/utils/Observable.d.ts +92 -0
  30. package/dist/utils/Observable.d.ts.map +1 -0
  31. package/node_modules/@mentra/types/README.md +134 -0
  32. package/node_modules/@mentra/types/dist/applet.d.ts +39 -0
  33. package/node_modules/@mentra/types/dist/applet.d.ts.map +1 -0
  34. package/node_modules/@mentra/types/dist/applet.js +5 -0
  35. package/node_modules/@mentra/types/dist/capabilities/even-realities-g1.d.ts +12 -0
  36. package/node_modules/@mentra/types/dist/capabilities/even-realities-g1.d.ts.map +1 -0
  37. package/node_modules/@mentra/types/dist/capabilities/even-realities-g1.js +54 -0
  38. package/node_modules/@mentra/types/dist/capabilities/mentra-live.d.ts +12 -0
  39. package/node_modules/@mentra/types/dist/capabilities/mentra-live.d.ts.map +1 -0
  40. package/node_modules/@mentra/types/dist/capabilities/mentra-live.js +94 -0
  41. package/node_modules/@mentra/types/dist/capabilities/simulated-glasses.d.ts +13 -0
  42. package/node_modules/@mentra/types/dist/capabilities/simulated-glasses.d.ts.map +1 -0
  43. package/node_modules/@mentra/types/dist/capabilities/simulated-glasses.js +67 -0
  44. package/node_modules/@mentra/types/dist/capabilities/vuzix-z100.d.ts +12 -0
  45. package/node_modules/@mentra/types/dist/capabilities/vuzix-z100.d.ts.map +1 -0
  46. package/node_modules/@mentra/types/dist/capabilities/vuzix-z100.js +51 -0
  47. package/node_modules/@mentra/types/dist/cli.d.ts +130 -0
  48. package/node_modules/@mentra/types/dist/cli.d.ts.map +1 -0
  49. package/node_modules/@mentra/types/dist/cli.js +7 -0
  50. package/node_modules/@mentra/types/dist/device.d.ts +32 -0
  51. package/node_modules/@mentra/types/dist/device.d.ts.map +1 -0
  52. package/node_modules/@mentra/types/dist/device.js +6 -0
  53. package/node_modules/@mentra/types/dist/enums.d.ts +34 -0
  54. package/node_modules/@mentra/types/dist/enums.d.ts.map +1 -0
  55. package/node_modules/@mentra/types/dist/enums.js +39 -0
  56. package/node_modules/@mentra/types/dist/hardware.d.ts +141 -0
  57. package/node_modules/@mentra/types/dist/hardware.d.ts.map +1 -0
  58. package/node_modules/@mentra/types/dist/hardware.js +33 -0
  59. package/node_modules/@mentra/types/dist/index.d.ts +18 -0
  60. package/node_modules/@mentra/types/dist/index.d.ts.map +1 -0
  61. package/node_modules/@mentra/types/dist/index.js +25 -0
  62. package/node_modules/@mentra/types/package.json +31 -0
  63. package/node_modules/@mentra/types/src/applet.ts +51 -0
  64. package/node_modules/@mentra/types/src/capabilities/even-realities-g1.ts +63 -0
  65. package/node_modules/@mentra/types/src/capabilities/mentra-live.ts +103 -0
  66. package/node_modules/@mentra/types/src/capabilities/simulated-glasses.ts +76 -0
  67. package/node_modules/@mentra/types/src/capabilities/vuzix-z100.ts +60 -0
  68. package/node_modules/@mentra/types/src/cli.ts +169 -0
  69. package/node_modules/@mentra/types/src/device.ts +43 -0
  70. package/node_modules/@mentra/types/src/enums.ts +36 -0
  71. package/node_modules/@mentra/types/src/hardware.ts +172 -0
  72. package/node_modules/@mentra/types/src/index.ts +64 -0
  73. package/node_modules/@mentra/types/tsconfig.json +22 -0
  74. package/node_modules/@mentra/types/tsconfig.tsbuildinfo +1 -0
  75. package/package.json +6 -6
  76. package/dist/display-utils/test/ScrollView.test.d.ts +0 -2
  77. package/dist/display-utils/test/ScrollView.test.d.ts.map +0 -1
  78. package/dist/display-utils/test/TextMeasurer.test.d.ts +0 -2
  79. package/dist/display-utils/test/TextMeasurer.test.d.ts.map +0 -1
  80. package/dist/display-utils/test/TextWrapper.test.d.ts +0 -2
  81. package/dist/display-utils/test/TextWrapper.test.d.ts.map +0 -1
@@ -0,0 +1,134 @@
1
+ # @mentra/types
2
+
3
+ Shared TypeScript types for MentraOS client and cloud.
4
+
5
+ ## Purpose
6
+
7
+ Single source of truth for client-facing types used by both mobile app and cloud backend. Eliminates type drift and duplication.
8
+
9
+ ## What's Included
10
+
11
+ - `AppletInterface` - Minimal app interface for home screen (8 fields)
12
+ - `HardwareRequirement` - Hardware requirements for apps
13
+ - `Capabilities` - Device hardware capabilities
14
+ - `AppletPermission` - App permission types
15
+ - Enums: `HardwareType`, `HardwareRequirementLevel`
16
+
17
+ ## Installation
18
+
19
+ Already linked via Bun workspace. Just import:
20
+
21
+ ```typescript
22
+ import { AppletInterface, HardwareType, Capabilities } from "@mentra/types";
23
+ ```
24
+
25
+ ## Development
26
+
27
+ ```bash
28
+ # Build (compile TypeScript)
29
+ bun run build
30
+
31
+ # Watch mode
32
+ bun run dev
33
+
34
+ # Type check only
35
+ bun run typecheck
36
+
37
+ # Test Bun compatibility
38
+ bun run src/index.ts # Should output nothing (no errors)
39
+ ```
40
+
41
+ ## Bun Compatibility
42
+
43
+ This package uses **explicit exports** to work with Bun's runtime TypeScript execution:
44
+
45
+ ```typescript
46
+ // ✅ Types/Interfaces - export type
47
+ export type { AppletInterface, Capabilities } from "./applet";
48
+
49
+ // ✅ Enums (runtime) - export
50
+ export { HardwareType } from "./enums";
51
+
52
+ // ❌ Never use this (breaks Bun)
53
+ export * from "./applet";
54
+ ```
55
+
56
+ See `cloud/issues/todo/sdk-type-exports/README.md` for details.
57
+
58
+ ## Usage Examples
59
+
60
+ ### In Cloud Services
61
+
62
+ ```typescript
63
+ import { AppletInterface } from "@mentra/types";
64
+
65
+ export class ClientAppsService {
66
+ static async getAppsForHomeScreen(
67
+ userId: string,
68
+ ): Promise<AppletInterface[]> {
69
+ // Return minimal interface for client
70
+ }
71
+ }
72
+ ```
73
+
74
+ ### In Mobile Client
75
+
76
+ ```typescript
77
+ import { AppletInterface, HardwareType } from "@mentra/types";
78
+
79
+ function renderAppList(apps: AppletInterface[]) {
80
+ // Render home screen
81
+ }
82
+ ```
83
+
84
+ ## What NOT to Include
85
+
86
+ - ❌ Internal database models (`AppI`, `UserI`)
87
+ - ❌ Service logic or business rules
88
+ - ❌ Validation schemas
89
+ - ❌ Complex SDK types (webhooks, tool schemas)
90
+ - ❌ Runtime dependencies
91
+
92
+ ## What to Include
93
+
94
+ - ✅ Client-facing app types
95
+ - ✅ Hardware capability types
96
+ - ✅ Permission types
97
+ - ✅ Shared enums
98
+ - ✅ Minimal DTOs
99
+
100
+ ## Adding New Types
101
+
102
+ 1. Add type definition in appropriate file (`applet.ts`, `hardware.ts`, etc.)
103
+ 2. Add explicit export in `src/index.ts`:
104
+
105
+ ```typescript
106
+ // For types/interfaces
107
+ export type { MyNewType } from "./file";
108
+
109
+ // For enums/values
110
+ export { MyNewEnum } from "./file";
111
+ ```
112
+
113
+ 3. Test Bun compatibility: `bun run src/index.ts`
114
+ 4. Build: `bun run build`
115
+ 5. Bump version in `package.json` (semver)
116
+
117
+ ## Versioning
118
+
119
+ - **Major**: Breaking changes to existing types
120
+ - **Minor**: New optional fields or new types
121
+ - **Patch**: Documentation, internal changes
122
+
123
+ ## Files
124
+
125
+ - `src/enums.ts` - Runtime enums (HardwareType, etc.)
126
+ - `src/hardware.ts` - Hardware capability types
127
+ - `src/applet.ts` - App/applet types for clients
128
+ - `src/index.ts` - Main export (Bun-compatible)
129
+
130
+ ## Links
131
+
132
+ - [Design Docs](../../issues/client-apps-api/)
133
+ - [Bun Export Pattern](../../issues/client-apps-api/bun-export-pattern.md)
134
+ - [SDK Type Export Issue](../../issues/todo/sdk-type-exports/)
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @mentra/types - App/Applet types for client interfaces
3
+ */
4
+ import { HardwareRequirement } from "./hardware";
5
+ /**
6
+ * App execution model types
7
+ */
8
+ export type AppletType = "standard" | "background" | "system_dashboard";
9
+ /**
10
+ * Permission types that apps can request
11
+ */
12
+ export type AppPermissionType = "ALL" | "MICROPHONE" | "CAMERA" | "CALENDAR" | "LOCATION" | "BACKGROUND_LOCATION" | "READ_NOTIFICATIONS" | "POST_NOTIFICATIONS";
13
+ /**
14
+ * Permission object with type and description
15
+ */
16
+ export interface AppletPermission {
17
+ type: AppPermissionType;
18
+ description?: string;
19
+ required?: boolean;
20
+ }
21
+ /**
22
+ * Minimal app interface for client home screen display
23
+ * Optimized for fast rendering - only essential fields (9 fields)
24
+ *
25
+ * This is the client-facing interface used by mobile apps.
26
+ * Internal cloud services use AppI from models (more fields).
27
+ */
28
+ export interface AppletInterface {
29
+ packageName: string;
30
+ name: string;
31
+ webviewUrl: string;
32
+ logoUrl: string;
33
+ type: AppletType;
34
+ permissions: AppletPermission[];
35
+ running: boolean;
36
+ healthy: boolean;
37
+ hardwareRequirements: HardwareRequirement[];
38
+ }
39
+ //# sourceMappingURL=applet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applet.d.ts","sourceRoot":"","sources":["../src/applet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,mBAAmB,EAAC,MAAM,YAAY,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,kBAAkB,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,KAAK,GACL,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,UAAU,GACV,qBAAqB,GACrB,oBAAoB,GACpB,oBAAoB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;CAC7C"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * @mentra/types - App/Applet types for client interfaces
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Even Realities G1 Hardware Capabilities
3
+ *
4
+ * Capability profile for the Even Realities G1 smart glasses model.
5
+ * Defines the hardware and software features available on this device.
6
+ */
7
+ import type { Capabilities } from "../hardware";
8
+ /**
9
+ * Even Realities G1 capability profile
10
+ */
11
+ export declare const evenRealitiesG1: Capabilities;
12
+ //# sourceMappingURL=even-realities-g1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"even-realities-g1.d.ts","sourceRoot":"","sources":["../../src/capabilities/even-realities-g1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YAkD7B,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Even Realities G1 Hardware Capabilities
4
+ *
5
+ * Capability profile for the Even Realities G1 smart glasses model.
6
+ * Defines the hardware and software features available on this device.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.evenRealitiesG1 = void 0;
10
+ /**
11
+ * Even Realities G1 capability profile
12
+ */
13
+ exports.evenRealitiesG1 = {
14
+ modelName: "Even Realities G1",
15
+ // Camera capabilities - G1 does not have a camera
16
+ hasCamera: false,
17
+ camera: null,
18
+ // Display capabilities - G1 has a green monochrome display
19
+ hasDisplay: true,
20
+ display: {
21
+ count: 2,
22
+ isColor: false,
23
+ color: "green",
24
+ canDisplayBitmap: true,
25
+ resolution: { width: 640, height: 200 },
26
+ fieldOfView: { horizontal: 25 },
27
+ maxTextLines: 5,
28
+ adjustBrightness: true,
29
+ },
30
+ // Microphone capabilities - G1 has one microphone without VAD
31
+ hasMicrophone: true,
32
+ microphone: {
33
+ count: 1,
34
+ hasVAD: false,
35
+ },
36
+ // Speaker capabilities - G1 does not have a speaker
37
+ hasSpeaker: false,
38
+ speaker: null,
39
+ // IMU capabilities - G1 has IMU for head-up/down detection but raw data not exposed to apps
40
+ hasIMU: true,
41
+ imu: null,
42
+ // Button capabilities - G1 does not have buttons
43
+ hasButton: false,
44
+ button: null,
45
+ // Light capabilities - G1 does not have lights
46
+ hasLight: false,
47
+ light: null,
48
+ // Power capabilities - G1 does not have external battery
49
+ power: {
50
+ hasExternalBattery: false,
51
+ },
52
+ // WiFi capabilities - G1 does not support WiFi
53
+ hasWifi: false,
54
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Mentra Live Hardware Capabilities
3
+ *
4
+ * Capability profile for the Mentra Live smart glasses model.
5
+ * Defines the hardware and software features available on this device.
6
+ */
7
+ import type { Capabilities } from "../hardware";
8
+ /**
9
+ * Mentra Live capability profile
10
+ */
11
+ export declare const mentraLive: Capabilities;
12
+ //# sourceMappingURL=mentra-live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mentra-live.d.ts","sourceRoot":"","sources":["../../src/capabilities/mentra-live.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,YA0FxB,CAAC"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Mentra Live Hardware Capabilities
4
+ *
5
+ * Capability profile for the Mentra Live smart glasses model.
6
+ * Defines the hardware and software features available on this device.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.mentraLive = void 0;
10
+ /**
11
+ * Mentra Live capability profile
12
+ */
13
+ exports.mentraLive = {
14
+ modelName: "Mentra Live",
15
+ // Camera capabilities - Mentra Live has camera with streaming
16
+ hasCamera: true,
17
+ camera: {
18
+ resolution: { width: 1920, height: 1080 },
19
+ hasHDR: false,
20
+ hasFocus: true,
21
+ video: {
22
+ canRecord: true,
23
+ canStream: true,
24
+ supportedStreamTypes: ["rtmp"],
25
+ supportedResolutions: [
26
+ { width: 1920, height: 1080 },
27
+ { width: 1280, height: 720 },
28
+ { width: 640, height: 480 },
29
+ ],
30
+ },
31
+ },
32
+ // Display capabilities - Mentra Live does not have a display
33
+ hasDisplay: false,
34
+ display: null,
35
+ // Microphone capabilities - Mentra Live has one microphone with VAD
36
+ hasMicrophone: true,
37
+ microphone: {
38
+ count: 1,
39
+ hasVAD: true,
40
+ },
41
+ // Speaker capabilities - Mentra Live has one standard speaker
42
+ hasSpeaker: true,
43
+ speaker: {
44
+ count: 1,
45
+ isPrivate: false,
46
+ },
47
+ // IMU capabilities - Mentra Live has 6-axis IMU
48
+ hasIMU: true,
49
+ imu: {
50
+ axisCount: 6,
51
+ hasAccelerometer: true,
52
+ hasCompass: false,
53
+ hasGyroscope: true,
54
+ },
55
+ // Button capabilities - Mentra Live has one physical button
56
+ hasButton: true,
57
+ button: {
58
+ count: 1,
59
+ buttons: [
60
+ {
61
+ type: "press",
62
+ events: ["press", "double_press", "long_press"],
63
+ isCapacitive: false,
64
+ },
65
+ ],
66
+ },
67
+ // Light capabilities - Mentra Live has two lights: privacy light + RGB LED
68
+ hasLight: true,
69
+ light: {
70
+ count: 2,
71
+ lights: [
72
+ {
73
+ id: "privacy",
74
+ purpose: "privacy",
75
+ isFullColor: false,
76
+ color: "white",
77
+ position: "front_facing",
78
+ },
79
+ {
80
+ id: "user_feedback",
81
+ purpose: "user_feedback",
82
+ isFullColor: true,
83
+ color: "rgb",
84
+ position: "user_facing",
85
+ },
86
+ ],
87
+ },
88
+ // Power capabilities - Mentra Live does not have external battery
89
+ power: {
90
+ hasExternalBattery: false,
91
+ },
92
+ // WiFi capabilities - Mentra Live supports WiFi
93
+ hasWifi: true,
94
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview Simulated Glasses Hardware Capabilities
3
+ *
4
+ * Capability profile for the Simulated Glasses model.
5
+ * Defines the hardware and software features available on this device.
6
+ * This profile matches the Vuzix Z100 capabilities for testing purposes.
7
+ */
8
+ import type { Capabilities } from "../hardware";
9
+ /**
10
+ * Simulated Glasses capability profile
11
+ */
12
+ export declare const simulatedGlasses: Capabilities;
13
+ //# sourceMappingURL=simulated-glasses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulated-glasses.d.ts","sourceRoot":"","sources":["../../src/capabilities/simulated-glasses.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YA8D9B,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Simulated Glasses Hardware Capabilities
4
+ *
5
+ * Capability profile for the Simulated Glasses model.
6
+ * Defines the hardware and software features available on this device.
7
+ * This profile matches the Vuzix Z100 capabilities for testing purposes.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.simulatedGlasses = void 0;
11
+ /**
12
+ * Simulated Glasses capability profile
13
+ */
14
+ exports.simulatedGlasses = {
15
+ modelName: "Simulated Glasses",
16
+ // Camera capabilities - does not have a camera
17
+ hasCamera: false,
18
+ camera: null,
19
+ // Display capabilities - has a green monochrome display
20
+ hasDisplay: true,
21
+ display: {
22
+ count: 1,
23
+ isColor: false,
24
+ color: "green",
25
+ canDisplayBitmap: false,
26
+ resolution: { width: 640, height: 480 },
27
+ fieldOfView: { horizontal: 30 },
28
+ maxTextLines: 7,
29
+ adjustBrightness: true,
30
+ },
31
+ // Microphone capabilities - has a microphone (phone mic)
32
+ hasMicrophone: true,
33
+ microphone: {
34
+ count: 1,
35
+ hasVAD: false,
36
+ },
37
+ // Speaker capabilities - has a speaker (phone speaker)
38
+ hasSpeaker: true,
39
+ speaker: {
40
+ count: 1,
41
+ isPrivate: false,
42
+ },
43
+ // IMU capabilities - does not have an IMU
44
+ hasIMU: false,
45
+ imu: null,
46
+ // Button capabilities - Has one simulated button
47
+ hasButton: true,
48
+ button: {
49
+ count: 1,
50
+ buttons: [
51
+ {
52
+ type: "press",
53
+ events: ["press"],
54
+ isCapacitive: false,
55
+ },
56
+ ],
57
+ },
58
+ // Light capabilities - does not have lights
59
+ hasLight: false,
60
+ light: null,
61
+ // Power capabilities - does not have external battery
62
+ power: {
63
+ hasExternalBattery: false,
64
+ },
65
+ // WiFi capabilities - does not support WiFi
66
+ hasWifi: false,
67
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Vuzix Z100 Hardware Capabilities
3
+ *
4
+ * Capability profile for the Vuzix Z100 smart glasses model.
5
+ * Defines the hardware and software features available on this device.
6
+ */
7
+ import type { Capabilities } from "../hardware";
8
+ /**
9
+ * Vuzix Z100 capability profile
10
+ */
11
+ export declare const vuzixZ100: Capabilities;
12
+ //# sourceMappingURL=vuzix-z100.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vuzix-z100.d.ts","sourceRoot":"","sources":["../../src/capabilities/vuzix-z100.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,YA+CvB,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Vuzix Z100 Hardware Capabilities
4
+ *
5
+ * Capability profile for the Vuzix Z100 smart glasses model.
6
+ * Defines the hardware and software features available on this device.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.vuzixZ100 = void 0;
10
+ /**
11
+ * Vuzix Z100 capability profile
12
+ */
13
+ exports.vuzixZ100 = {
14
+ modelName: "Vuzix Z100",
15
+ // Camera capabilities - does not have a camera
16
+ hasCamera: false,
17
+ camera: null,
18
+ // Display capabilities - has a green monochrome display
19
+ hasDisplay: true,
20
+ display: {
21
+ count: 1,
22
+ isColor: false,
23
+ color: "green",
24
+ canDisplayBitmap: false,
25
+ resolution: { width: 640, height: 480 },
26
+ fieldOfView: { horizontal: 30 },
27
+ maxTextLines: 7,
28
+ adjustBrightness: true,
29
+ },
30
+ // Microphone capabilities - does not have a microphone
31
+ hasMicrophone: false,
32
+ microphone: null,
33
+ // Speaker capabilities - does not have a speaker
34
+ hasSpeaker: false,
35
+ speaker: null,
36
+ // IMU capabilities - does not have an IMU
37
+ hasIMU: false,
38
+ imu: null,
39
+ // Button capabilities - does not have buttons
40
+ hasButton: false,
41
+ button: null,
42
+ // Light capabilities - does not have lights
43
+ hasLight: false,
44
+ light: null,
45
+ // Power capabilities - does not have external battery
46
+ power: {
47
+ hasExternalBattery: false,
48
+ },
49
+ // WiFi capabilities - does not support WiFi
50
+ hasWifi: false,
51
+ };
@@ -0,0 +1,130 @@
1
+ /**
2
+ * CLI API Key Management Types
3
+ *
4
+ * Shared between cloud backend and CLI tool.
5
+ */
6
+ /**
7
+ * CLI API Key stored in database
8
+ */
9
+ export interface CLIApiKey {
10
+ /** Unique key identifier (UUID v4) */
11
+ keyId: string;
12
+ /** User ID who owns this key (ObjectId as string) */
13
+ userId: string;
14
+ /** User email (denormalized for backward compatibility) */
15
+ email: string;
16
+ /** User-friendly name for the key */
17
+ name: string;
18
+ /** SHA-256 hash of the JWT token (for revocation checks) */
19
+ hashedToken: string;
20
+ /** When the key was created */
21
+ createdAt: Date;
22
+ /** When the key was last updated */
23
+ updatedAt: Date;
24
+ /** Last time this key was used (optional tracking) */
25
+ lastUsedAt?: Date;
26
+ /** Optional expiration date */
27
+ expiresAt?: Date;
28
+ /** Whether key is active (false = revoked) */
29
+ isActive: boolean;
30
+ /** Optional metadata */
31
+ metadata?: {
32
+ createdFrom?: string;
33
+ userAgent?: string;
34
+ };
35
+ }
36
+ /**
37
+ * Request to generate a new CLI API key
38
+ */
39
+ export interface GenerateCLIKeyRequest {
40
+ /** User-friendly name for the key */
41
+ name: string;
42
+ /** Optional expiration in days (default: never) */
43
+ expiresInDays?: number;
44
+ }
45
+ /**
46
+ * Response when generating a CLI API key
47
+ * Token is shown ONCE and never retrievable
48
+ */
49
+ export interface GenerateCLIKeyResponse {
50
+ /** The CLI API key ID */
51
+ keyId: string;
52
+ /** User-friendly name */
53
+ name: string;
54
+ /** JWT token (ONLY shown once!) */
55
+ token: string;
56
+ /** When it was created */
57
+ createdAt: string;
58
+ /** Optional expiration date */
59
+ expiresAt?: string;
60
+ }
61
+ /**
62
+ * CLI API Key list item (token not included)
63
+ */
64
+ export interface CLIApiKeyListItem {
65
+ /** Key identifier */
66
+ keyId: string;
67
+ /** User-friendly name */
68
+ name: string;
69
+ /** Creation timestamp */
70
+ createdAt: string;
71
+ /** Last usage timestamp (if tracked) */
72
+ lastUsedAt?: string;
73
+ /** Expiration timestamp */
74
+ expiresAt?: string;
75
+ /** Whether key is active */
76
+ isActive: boolean;
77
+ }
78
+ /**
79
+ * Request to update a CLI API key
80
+ */
81
+ export interface UpdateCLIKeyRequest {
82
+ /** New name for the key */
83
+ name: string;
84
+ }
85
+ /**
86
+ * JWT payload for CLI API keys
87
+ */
88
+ export interface CLITokenPayload {
89
+ /** User email */
90
+ email: string;
91
+ /** Token type discriminator */
92
+ type: "cli";
93
+ /** Key ID for revocation lookups */
94
+ keyId: string;
95
+ /** User-friendly key name */
96
+ name: string;
97
+ /** Issued at (Unix timestamp) */
98
+ iat: number;
99
+ /** Optional expiration (Unix timestamp) */
100
+ exp?: number;
101
+ }
102
+ /**
103
+ * CLI credentials stored locally on user's machine
104
+ */
105
+ export interface CLICredentials {
106
+ /** JWT token */
107
+ token: string;
108
+ /** User email (extracted from token) */
109
+ email: string;
110
+ /** Key name (extracted from token) */
111
+ keyName: string;
112
+ /** Key ID (extracted from token) */
113
+ keyId: string;
114
+ /** When credentials were stored */
115
+ storedAt: string;
116
+ /** Optional expiration timestamp */
117
+ expiresAt?: string;
118
+ }
119
+ /**
120
+ * Cloud environment configuration
121
+ */
122
+ export interface Cloud {
123
+ /** Display name */
124
+ name: string;
125
+ /** API URL */
126
+ url: string;
127
+ /** Whether this is a built-in cloud */
128
+ builtin?: boolean;
129
+ }
130
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IAEb,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAA;IAEd,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAA;IAEb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IAEZ,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IAEnB,+BAA+B;IAC/B,SAAS,EAAE,IAAI,CAAA;IAEf,oCAAoC;IACpC,SAAS,EAAE,IAAI,CAAA;IAEf,sDAAsD;IACtD,UAAU,CAAC,EAAE,IAAI,CAAA;IAEjB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,IAAI,CAAA;IAEhB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAA;IAEjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IAEZ,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAA;IAEb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAA;IAEZ,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IAEb,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAA;IAEjB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAA;IAEb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAA;IAEZ,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAA;IAEjB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IAEb,+BAA+B;IAC/B,IAAI,EAAE,KAAK,CAAA;IAEX,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;IAEb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAA;IAEZ,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;IAEX,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAA;IAEb,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAA;IAEb,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;IAEb,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAEhB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAA;IAEZ,cAAc;IACd,GAAG,EAAE,MAAM,CAAA;IAEX,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * CLI API Key Management Types
4
+ *
5
+ * Shared between cloud backend and CLI tool.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });