r1-create 1.0.0 → 1.1.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.
package/README.md CHANGED
@@ -1,14 +1,17 @@
1
1
  # R1 Create SDK
2
2
 
3
- Official JavaScript/TypeScript SDK for building R1/RabbitOS plugins with full hardware access, AI integration, and mobile optimization.
3
+ Unofficial community JavaScript/TypeScript SDK for building R1/RabbitOS plugins with full hardware access, AI integration, and mobile optimization.
4
4
 
5
5
  ## Features
6
6
 
7
7
  - 🔧 **Hardware Access**: Accelerometer, touch simulation, PTT button, scroll wheel
8
8
  - 💾 **Storage**: Secure and plain storage with automatic Base64 encoding
9
- - 🤖 **LLM Integration**: Direct interaction with R1's AI system
9
+ - 🤖 **LLM Integration**: Direct interaction with R1's AI system + text-to-speech
10
+ - 🌐 **Web Search**: SERP API integration for real-time information
10
11
  - 📱 **Optimized UI**: Purpose-built for 240x282px display with hardware acceleration
12
+ - 🎨 **UI Design System**: Responsive components and design utilities
11
13
  - 🎥 **Media APIs**: Camera, microphone, speaker with web standard compatibility
14
+ - 🎮 **Device Controls**: Convenient hardware event management
12
15
  - ⚡ **Performance**: Minimal DOM operations, hardware-accelerated CSS
13
16
  - 📦 **TypeScript**: Full type definitions and IntelliSense support
14
17
 
@@ -21,19 +24,26 @@ npm install r1-create
21
24
  ## Quick Start
22
25
 
23
26
  ```typescript
24
- import { r1, createR1App } from 'r1-create';
27
+ import { r1, createR1App, deviceControls, ui } from 'r1-create';
25
28
 
26
29
  // Simple setup
27
- createR1App((sdk) => {
30
+ createR1App(async (sdk) => {
28
31
  console.log('R1 App initialized!');
29
32
 
30
- // Listen for side button press
31
- sdk.hardware.on('sideClick', () => {
33
+ // Setup UI
34
+ ui.setupViewport();
35
+
36
+ // Setup device controls
37
+ deviceControls.init();
38
+ deviceControls.on('sideButton', () => {
32
39
  console.log('Side button clicked!');
33
40
  });
34
41
 
42
+ // Text-to-speech
43
+ await sdk.messaging.speakText('Hello from R1!');
44
+
35
45
  // Ask the LLM something
36
- sdk.llm.askLLMSpeak('Hello, how are you today?');
46
+ await sdk.llm.askLLMSpeak('Hello, how are you today?');
37
47
  });
38
48
  ```
39
49
 
@@ -76,6 +86,20 @@ await r1.messaging.sendMessage('What time is it?', { useLLM: true });
76
86
  // Ask LLM to speak response
77
87
  await r1.llm.askLLMSpeak('Tell me a joke', true); // Save to journal
78
88
 
89
+ // Direct text-to-speech (no LLM processing)
90
+ await r1.messaging.speakText('Hello world!');
91
+ await r1.llm.textToSpeech('This will be spoken directly');
92
+
93
+ // Web search with SERP API
94
+ await r1.messaging.searchWeb('current weather in Tokyo');
95
+
96
+ // Send message with plugin ID and image
97
+ await r1.messaging.sendMessage('Analyze this image', {
98
+ useLLM: true,
99
+ pluginId: 'image-analyzer',
100
+ imageBase64: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=='
101
+ });
102
+
79
103
  // Get structured JSON response
80
104
  await r1.llm.askLLMJSON('List 3 facts about rabbits in JSON format');
81
105
 
@@ -124,6 +148,66 @@ CSSUtils.addTransition(element, 'transform', 300);
124
148
  console.log(`Screen: ${R1_DIMENSIONS.width}x${R1_DIMENSIONS.height}px`);
125
149
  ```
126
150
 
151
+ ### UI Design System
152
+
153
+ ```typescript
154
+ import { ui } from 'r1-create';
155
+
156
+ // Setup viewport for proper scaling
157
+ ui.setupViewport();
158
+
159
+ // Create responsive button
160
+ const button = document.createElement('button');
161
+ ui.createButton(button, { type: 'wide', background: '#FE5F00' });
162
+ button.textContent = 'Press Me';
163
+
164
+ // Create responsive text
165
+ const title = document.createElement('h1');
166
+ ui.createText(title, { size: 'title', color: '#FFFFFF' });
167
+ title.textContent = 'Welcome';
168
+
169
+ // Create grid layout
170
+ const grid = document.createElement('div');
171
+ ui.createGrid(grid, { columns: 2, gap: ui.getSpacing().md });
172
+
173
+ // Get design tokens
174
+ const colors = ui.getColors();
175
+ const fonts = ui.getFontSizes();
176
+ const spacing = ui.getSpacing();
177
+
178
+ // Convert pixels to viewport units
179
+ const vwValue = ui.pxToVw(30); // "12.5vw"
180
+ ```
181
+
182
+ ### Device Controls
183
+
184
+ ```typescript
185
+ import { deviceControls } from 'r1-create';
186
+
187
+ // Initialize with options
188
+ deviceControls.init({
189
+ sideButtonEnabled: true,
190
+ scrollWheelEnabled: true,
191
+ keyboardFallback: true // Space bar simulates side button
192
+ });
193
+
194
+ // Register event handlers
195
+ deviceControls.on('sideButton', (event) => {
196
+ console.log('Side button pressed');
197
+ });
198
+
199
+ deviceControls.on('scrollWheel', (data) => {
200
+ console.log('Scrolled', data.direction); // 'up' or 'down'
201
+ });
202
+
203
+ // Control enable/disable
204
+ deviceControls.setSideButtonEnabled(false);
205
+ deviceControls.setScrollWheelEnabled(true);
206
+
207
+ // Programmatic triggering (for testing)
208
+ deviceControls.triggerSideButton();
209
+ ```
210
+
127
211
  ## Advanced Usage
128
212
 
129
213
  ### Custom Plugin Class
@@ -229,8 +313,12 @@ See the [examples directory](./examples) for complete plugin examples:
229
313
  - Basic Plugin Template
230
314
  - Camera Photo App
231
315
  - Voice Recorder
316
+ - Text-to-Speech App
317
+ - Web Search Integration
232
318
  - Accelerometer Game
233
319
  - LLM Chat Interface
320
+ - UI Design System Demo
321
+ - Device Controls Example
234
322
 
235
323
  ## API Reference
236
324
 
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Device Controls module for R1 hardware interaction
3
+ * Provides convenient wrappers for scroll wheel and side button events
4
+ */
5
+ export interface DeviceControlsOptions {
6
+ sideButtonEnabled?: boolean;
7
+ scrollWheelEnabled?: boolean;
8
+ keyboardFallback?: boolean;
9
+ }
10
+ export interface ScrollWheelData {
11
+ direction: 'up' | 'down';
12
+ event?: Event;
13
+ }
14
+ export type SideButtonHandler = (event?: Event) => void;
15
+ export type ScrollWheelHandler = (data: ScrollWheelData) => void;
16
+ /**
17
+ * Device Controls for R1 hardware (scroll wheel, side button)
18
+ */
19
+ export declare class DeviceControls {
20
+ private sideButtonEnabled;
21
+ private scrollWheelEnabled;
22
+ private eventListeners;
23
+ /**
24
+ * Initialize device controls
25
+ * @param options Configuration options
26
+ */
27
+ init(options?: DeviceControlsOptions): void;
28
+ /**
29
+ * Setup side button event listener
30
+ */
31
+ private setupSideButtonListener;
32
+ /**
33
+ * Setup scroll wheel event listener
34
+ */
35
+ private setupScrollWheelListener;
36
+ /**
37
+ * Setup keyboard fallback (space bar = side button)
38
+ */
39
+ private setupKeyboardFallback;
40
+ /**
41
+ * Handle side button click
42
+ * @param event The side click event
43
+ */
44
+ private handleSideButtonClick;
45
+ /**
46
+ * Handle scroll wheel events
47
+ * @param data The scroll data
48
+ */
49
+ private handleScrollWheel;
50
+ /**
51
+ * Register event handler
52
+ * @param eventType 'sideButton' or 'scrollWheel'
53
+ * @param handler Event handler function
54
+ */
55
+ on(eventType: 'sideButton' | 'scrollWheel', handler: SideButtonHandler | ScrollWheelHandler): void;
56
+ /**
57
+ * Remove event handler
58
+ * @param eventType 'sideButton' or 'scrollWheel'
59
+ * @param handler Event handler function to remove
60
+ */
61
+ off(eventType: 'sideButton' | 'scrollWheel', handler: SideButtonHandler | ScrollWheelHandler): void;
62
+ /**
63
+ * Enable or disable side button
64
+ * @param enabled Enable state
65
+ */
66
+ setSideButtonEnabled(enabled: boolean): void;
67
+ /**
68
+ * Enable or disable scroll wheel
69
+ * @param enabled Enable state
70
+ */
71
+ setScrollWheelEnabled(enabled: boolean): void;
72
+ /**
73
+ * Simulate side button click (for testing)
74
+ */
75
+ triggerSideButton(): void;
76
+ /**
77
+ * Check if side button is enabled
78
+ */
79
+ isSideButtonEnabled(): boolean;
80
+ /**
81
+ * Check if scroll wheel is enabled
82
+ */
83
+ isScrollWheelEnabled(): boolean;
84
+ /**
85
+ * Get all registered event listeners for debugging
86
+ */
87
+ getEventListeners(): Record<string, number>;
88
+ }
89
+ export declare const deviceControls: DeviceControls;
90
+ //# sourceMappingURL=device-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-controls.d.ts","sourceRoot":"","sources":["../../src/hardware/device-controls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;AAEjE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,cAAc,CAAyC;IAE/D;;;OAGG;IACH,IAAI,CAAC,OAAO,GAAE,qBAA0B,GAAG,IAAI;IAkB/C;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;OAIG;IACH,EAAE,CAAC,SAAS,EAAE,YAAY,GAAG,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,IAAI;IAOlG;;;;OAIG;IACH,GAAG,CAAC,SAAS,EAAE,YAAY,GAAG,aAAa,EAAE,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,IAAI;IAOnG;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5C;;;OAGG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI7C;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAOzB;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACH,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAO5C;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ /**
3
+ * Device Controls module for R1 hardware interaction
4
+ * Provides convenient wrappers for scroll wheel and side button events
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.deviceControls = exports.DeviceControls = void 0;
8
+ /**
9
+ * Device Controls for R1 hardware (scroll wheel, side button)
10
+ */
11
+ class DeviceControls {
12
+ constructor() {
13
+ this.sideButtonEnabled = true;
14
+ this.scrollWheelEnabled = true;
15
+ this.eventListeners = new Map();
16
+ }
17
+ /**
18
+ * Initialize device controls
19
+ * @param options Configuration options
20
+ */
21
+ init(options = {}) {
22
+ this.sideButtonEnabled = options.sideButtonEnabled ?? true;
23
+ this.scrollWheelEnabled = options.scrollWheelEnabled ?? true;
24
+ if (this.sideButtonEnabled) {
25
+ this.setupSideButtonListener();
26
+ }
27
+ if (this.scrollWheelEnabled) {
28
+ this.setupScrollWheelListener();
29
+ }
30
+ // Setup keyboard fallback for development
31
+ if (options.keyboardFallback !== false) {
32
+ this.setupKeyboardFallback();
33
+ }
34
+ }
35
+ /**
36
+ * Setup side button event listener
37
+ */
38
+ setupSideButtonListener() {
39
+ window.addEventListener('sideClick', (event) => {
40
+ if (!this.sideButtonEnabled)
41
+ return;
42
+ this.handleSideButtonClick(event);
43
+ });
44
+ }
45
+ /**
46
+ * Setup scroll wheel event listener
47
+ */
48
+ setupScrollWheelListener() {
49
+ // Flutter sends scrollUp and scrollDown events instead of wheel events
50
+ window.addEventListener('scrollUp', (event) => {
51
+ if (!this.scrollWheelEnabled)
52
+ return;
53
+ this.handleScrollWheel({ direction: 'up', event });
54
+ });
55
+ window.addEventListener('scrollDown', (event) => {
56
+ if (!this.scrollWheelEnabled)
57
+ return;
58
+ this.handleScrollWheel({ direction: 'down', event });
59
+ });
60
+ }
61
+ /**
62
+ * Setup keyboard fallback (space bar = side button)
63
+ */
64
+ setupKeyboardFallback() {
65
+ window.addEventListener('keydown', (event) => {
66
+ if (event.code === 'Space') {
67
+ event.preventDefault();
68
+ const sideClickEvent = new CustomEvent('sideClick', {
69
+ detail: { source: 'keyboard' }
70
+ });
71
+ window.dispatchEvent(sideClickEvent);
72
+ }
73
+ });
74
+ }
75
+ /**
76
+ * Handle side button click
77
+ * @param event The side click event
78
+ */
79
+ handleSideButtonClick(event) {
80
+ const handlers = this.eventListeners.get('sideButton') || new Set();
81
+ handlers.forEach(handler => handler(event));
82
+ }
83
+ /**
84
+ * Handle scroll wheel events
85
+ * @param data The scroll data
86
+ */
87
+ handleScrollWheel(data) {
88
+ const handlers = this.eventListeners.get('scrollWheel') || new Set();
89
+ handlers.forEach(handler => handler(data));
90
+ }
91
+ /**
92
+ * Register event handler
93
+ * @param eventType 'sideButton' or 'scrollWheel'
94
+ * @param handler Event handler function
95
+ */
96
+ on(eventType, handler) {
97
+ if (!this.eventListeners.has(eventType)) {
98
+ this.eventListeners.set(eventType, new Set());
99
+ }
100
+ this.eventListeners.get(eventType).add(handler);
101
+ }
102
+ /**
103
+ * Remove event handler
104
+ * @param eventType 'sideButton' or 'scrollWheel'
105
+ * @param handler Event handler function to remove
106
+ */
107
+ off(eventType, handler) {
108
+ const handlers = this.eventListeners.get(eventType);
109
+ if (handlers) {
110
+ handlers.delete(handler);
111
+ }
112
+ }
113
+ /**
114
+ * Enable or disable side button
115
+ * @param enabled Enable state
116
+ */
117
+ setSideButtonEnabled(enabled) {
118
+ this.sideButtonEnabled = enabled;
119
+ }
120
+ /**
121
+ * Enable or disable scroll wheel
122
+ * @param enabled Enable state
123
+ */
124
+ setScrollWheelEnabled(enabled) {
125
+ this.scrollWheelEnabled = enabled;
126
+ }
127
+ /**
128
+ * Simulate side button click (for testing)
129
+ */
130
+ triggerSideButton() {
131
+ const event = new CustomEvent('sideClick', {
132
+ detail: { source: 'programmatic' }
133
+ });
134
+ window.dispatchEvent(event);
135
+ }
136
+ /**
137
+ * Check if side button is enabled
138
+ */
139
+ isSideButtonEnabled() {
140
+ return this.sideButtonEnabled;
141
+ }
142
+ /**
143
+ * Check if scroll wheel is enabled
144
+ */
145
+ isScrollWheelEnabled() {
146
+ return this.scrollWheelEnabled;
147
+ }
148
+ /**
149
+ * Get all registered event listeners for debugging
150
+ */
151
+ getEventListeners() {
152
+ const result = {};
153
+ this.eventListeners.forEach((handlers, eventType) => {
154
+ result[eventType] = handlers.size;
155
+ });
156
+ return result;
157
+ }
158
+ }
159
+ exports.DeviceControls = DeviceControls;
160
+ // Export singleton instance
161
+ exports.deviceControls = new DeviceControls();
162
+ //# sourceMappingURL=device-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-controls.js","sourceRoot":"","sources":["../../src/hardware/device-controls.ts"],"names":[],"mappings":"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"}
@@ -84,4 +84,6 @@ export declare class HardwareEvents {
84
84
  export declare const accelerometer: AccelerometerAPI;
85
85
  export declare const touch: TouchAPI;
86
86
  export declare const hardwareEvents: HardwareEvents;
87
+ export { DeviceControls, deviceControls } from './device-controls';
88
+ export type { DeviceControlsOptions, ScrollWheelData, SideButtonHandler, ScrollWheelHandler } from './device-controls';
87
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAc,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEvG,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAC,CAAoC;IAE5D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAaxF;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGpB;AAED,qBAAa,QAAQ;IACnB;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvC,OAAO,CAAC,cAAc;CAKvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;;IAMvE;;;;OAIG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAOxD;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAOzD;;;OAGG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAQnD,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,IAAI;CAMb;AAGD,eAAO,MAAM,aAAa,kBAAyB,CAAC;AACpD,eAAO,MAAM,KAAK,UAAiB,CAAC;AACpC,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAc,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEvG,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAC,CAAoC;IAE5D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAaxF;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGpB;AAED,qBAAa,QAAQ;IACnB;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvC,OAAO,CAAC,cAAc;CAKvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;;IAMvE;;;;OAIG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAOxD;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAOzD;;;OAGG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAQnD,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,IAAI;CAMb;AAGD,eAAO,MAAM,aAAa,kBAAyB,CAAC;AACpD,eAAO,MAAM,KAAK,UAAiB,CAAC;AACpC,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Provides accelerometer, touch simulation, and hardware button events
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.hardwareEvents = exports.touch = exports.accelerometer = exports.HardwareEvents = exports.TouchAPI = exports.AccelerometerAPI = void 0;
7
+ exports.deviceControls = exports.DeviceControls = exports.hardwareEvents = exports.touch = exports.accelerometer = exports.HardwareEvents = exports.TouchAPI = exports.AccelerometerAPI = void 0;
8
8
  class AccelerometerAPI {
9
9
  constructor() {
10
10
  this.isListening = false;
@@ -169,4 +169,8 @@ exports.HardwareEvents = HardwareEvents;
169
169
  exports.accelerometer = new AccelerometerAPI();
170
170
  exports.touch = new TouchAPI();
171
171
  exports.hardwareEvents = new HardwareEvents();
172
+ // Re-export device controls
173
+ var device_controls_1 = require("./device-controls");
174
+ Object.defineProperty(exports, "DeviceControls", { enumerable: true, get: function () { return device_controls_1.DeviceControls; } });
175
+ Object.defineProperty(exports, "deviceControls", { enumerable: true, get: function () { return device_controls_1.deviceControls; } });
172
176
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * R1 Create SDK
3
- * Official SDK for building R1/RabbitOS plugins
3
+ * Unofficial community SDK for building R1/RabbitOS plugins
4
4
  *
5
5
  * Features:
6
6
  * - Hardware access (accelerometer, touch, PTT, scroll)
@@ -13,10 +13,10 @@
13
13
  */
14
14
  export * from './types';
15
15
  export type { HardwareEventType } from './types';
16
- export { AccelerometerAPI, TouchAPI, HardwareEvents, accelerometer, touch, hardwareEvents } from './hardware';
16
+ export { AccelerometerAPI, TouchAPI, HardwareEvents, accelerometer, touch, hardwareEvents, DeviceControls, deviceControls, type DeviceControlsOptions, type ScrollWheelData, type SideButtonHandler, type ScrollWheelHandler } from './hardware';
17
17
  export { Base64Utils, R1Storage, storage } from './storage';
18
18
  export { R1Messaging, LLMHelpers, messaging, llmHelpers } from './llm';
19
- export { CSSUtils, DOMUtils, LayoutUtils, PerformanceUtils, R1Component, R1_DIMENSIONS } from './ui';
19
+ export { CSSUtils, DOMUtils, LayoutUtils, PerformanceUtils, R1Component, R1_DIMENSIONS, R1UI, ui, type UIDimensions, type UIFontSizes, type UISpacing, type UIButtonSizes, type UIColorPalette, type UIContainerOptions, type UIButtonOptions, type UITextOptions, type UIGridOptions } from './ui';
20
20
  export { CameraAPI, MicrophoneAPI, SpeakerAPI, MediaUtils, camera, microphone, speaker } from './media';
21
21
  import { R1Storage } from './storage';
22
22
  /**
@@ -27,12 +27,14 @@ export declare class R1SDK {
27
27
  readonly accelerometer: import("./hardware").AccelerometerAPI;
28
28
  readonly touch: import("./hardware").TouchAPI;
29
29
  readonly hardware: import("./hardware").HardwareEvents;
30
+ readonly deviceControls: import("./hardware").DeviceControls;
30
31
  readonly storage: R1Storage;
31
32
  readonly messaging: import("./llm").R1Messaging;
32
33
  readonly llm: import("./llm").LLMHelpers;
33
34
  readonly camera: import("./media").CameraAPI;
34
35
  readonly microphone: import("./media").MicrophoneAPI;
35
36
  readonly speaker: import("./media").SpeakerAPI;
37
+ readonly ui: import("./ui").R1UI;
36
38
  readonly DIMENSIONS: import("./types").R1Dimensions;
37
39
  /**
38
40
  * Initialize the SDK and check environment
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,KAAK,EACL,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACR,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACX,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,EACd,MAAM,MAAM,CAAC;AAGd,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,OAAO,EACR,MAAM,SAAS,CAAC;AASjB,OAAO,EAAW,SAAS,EAAE,MAAM,WAAW,CAAC;AAK/C;;;GAGG;AACH,qBAAa,KAAK;IAEhB,SAAgB,aAAa,wCAAiB;IAC9C,SAAgB,KAAK,gCAAS;IAC9B,SAAgB,QAAQ,sCAAkB;IAG1C,SAAgB,OAAO,YAAW;IAGlC,SAAgB,SAAS,8BAAa;IACtC,SAAgB,GAAG,6BAAc;IAGjC,SAAgB,MAAM,8BAAU;IAChC,SAAgB,UAAU,kCAAc;IACxC,SAAgB,OAAO,+BAAW;IAGlC,SAAgB,UAAU,iCAAiB;IAE3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IAYF;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;QAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C,GAAG,QAAQ;CAGb;AAED;;GAEG;AACH,qBAAa,QAAQ;IAGP,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,OAAO,CAAS;gBAEJ,MAAM,EAAE;QAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;QAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C;IAID,KAAK,IAAI,IAAI;IAOb,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,mBAAmB;CAuB5B;AAGD,eAAO,MAAM,EAAE,OAAc,CAAC;AAG9B,eAAO,MAAM,YAAY,qBAAwB,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,SAKtD,CAAC;AAGF,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,KAAK,EACL,cAAc,EAEd,cAAc,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACR,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACX,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,EAEb,IAAI,EACJ,EAAE,EACF,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,MAAM,CAAC;AAGd,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,OAAO,EACR,MAAM,SAAS,CAAC;AAUjB,OAAO,EAAW,SAAS,EAAE,MAAM,WAAW,CAAC;AAK/C;;;GAGG;AACH,qBAAa,KAAK;IAEhB,SAAgB,aAAa,wCAAiB;IAC9C,SAAgB,KAAK,gCAAS;IAC9B,SAAgB,QAAQ,sCAAkB;IAC1C,SAAgB,cAAc,sCAAkB;IAGhD,SAAgB,OAAO,YAAW;IAGlC,SAAgB,SAAS,8BAAa;IACtC,SAAgB,GAAG,6BAAc;IAGjC,SAAgB,MAAM,8BAAU;IAChC,SAAgB,UAAU,kCAAc;IACxC,SAAgB,OAAO,+BAAW;IAGlC,SAAgB,EAAE,sBAAM;IAGxB,SAAgB,UAAU,iCAAiB;IAE3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IAYF;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;QAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C,GAAG,QAAQ;CAGb;AAED;;GAEG;AACH,qBAAa,QAAQ;IAGP,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,OAAO,CAAS;gBAEJ,MAAM,EAAE;QAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;QAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C;IAID,KAAK,IAAI,IAAI;IAOb,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,mBAAmB;CAuB5B;AAGD,eAAO,MAAM,EAAE,OAAc,CAAC;AAG9B,eAAO,MAAM,YAAY,qBAAwB,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,SAKtD,CAAC;AAGF,eAAe,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * R1 Create SDK
4
- * Official SDK for building R1/RabbitOS plugins
4
+ * Unofficial community SDK for building R1/RabbitOS plugins
5
5
  *
6
6
  * Features:
7
7
  * - Hardware access (accelerometer, touch, PTT, scroll)
@@ -27,7 +27,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
27
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.createR1App = exports.initializeR1 = exports.r1 = exports.R1Plugin = exports.R1SDK = exports.speaker = exports.microphone = exports.camera = exports.MediaUtils = exports.SpeakerAPI = exports.MicrophoneAPI = exports.CameraAPI = exports.R1_DIMENSIONS = exports.R1Component = exports.PerformanceUtils = exports.LayoutUtils = exports.DOMUtils = exports.CSSUtils = exports.llmHelpers = exports.messaging = exports.LLMHelpers = exports.R1Messaging = exports.storage = exports.R1Storage = exports.Base64Utils = exports.hardwareEvents = exports.touch = exports.accelerometer = exports.HardwareEvents = exports.TouchAPI = exports.AccelerometerAPI = void 0;
30
+ exports.createR1App = exports.initializeR1 = exports.r1 = exports.R1Plugin = exports.R1SDK = exports.speaker = exports.microphone = exports.camera = exports.MediaUtils = exports.SpeakerAPI = exports.MicrophoneAPI = exports.CameraAPI = exports.ui = exports.R1UI = exports.R1_DIMENSIONS = exports.R1Component = exports.PerformanceUtils = exports.LayoutUtils = exports.DOMUtils = exports.CSSUtils = exports.llmHelpers = exports.messaging = exports.LLMHelpers = exports.R1Messaging = exports.storage = exports.R1Storage = exports.Base64Utils = exports.deviceControls = exports.DeviceControls = exports.hardwareEvents = exports.touch = exports.accelerometer = exports.HardwareEvents = exports.TouchAPI = exports.AccelerometerAPI = void 0;
31
31
  // Type definitions
32
32
  __exportStar(require("./types"), exports);
33
33
  // Hardware APIs
@@ -38,6 +38,9 @@ Object.defineProperty(exports, "HardwareEvents", { enumerable: true, get: functi
38
38
  Object.defineProperty(exports, "accelerometer", { enumerable: true, get: function () { return hardware_1.accelerometer; } });
39
39
  Object.defineProperty(exports, "touch", { enumerable: true, get: function () { return hardware_1.touch; } });
40
40
  Object.defineProperty(exports, "hardwareEvents", { enumerable: true, get: function () { return hardware_1.hardwareEvents; } });
41
+ // New device controls
42
+ Object.defineProperty(exports, "DeviceControls", { enumerable: true, get: function () { return hardware_1.DeviceControls; } });
43
+ Object.defineProperty(exports, "deviceControls", { enumerable: true, get: function () { return hardware_1.deviceControls; } });
41
44
  // Storage APIs
42
45
  var storage_1 = require("./storage");
43
46
  Object.defineProperty(exports, "Base64Utils", { enumerable: true, get: function () { return storage_1.Base64Utils; } });
@@ -57,6 +60,9 @@ Object.defineProperty(exports, "LayoutUtils", { enumerable: true, get: function
57
60
  Object.defineProperty(exports, "PerformanceUtils", { enumerable: true, get: function () { return ui_1.PerformanceUtils; } });
58
61
  Object.defineProperty(exports, "R1Component", { enumerable: true, get: function () { return ui_1.R1Component; } });
59
62
  Object.defineProperty(exports, "R1_DIMENSIONS", { enumerable: true, get: function () { return ui_1.R1_DIMENSIONS; } });
63
+ // New UI design system
64
+ Object.defineProperty(exports, "R1UI", { enumerable: true, get: function () { return ui_1.R1UI; } });
65
+ Object.defineProperty(exports, "ui", { enumerable: true, get: function () { return ui_1.ui; } });
60
66
  // Media APIs
61
67
  var media_1 = require("./media");
62
68
  Object.defineProperty(exports, "CameraAPI", { enumerable: true, get: function () { return media_1.CameraAPI; } });
@@ -81,6 +87,7 @@ class R1SDK {
81
87
  this.accelerometer = hardware_2.accelerometer;
82
88
  this.touch = hardware_2.touch;
83
89
  this.hardware = hardware_2.hardwareEvents;
90
+ this.deviceControls = hardware_2.deviceControls;
84
91
  // Storage
85
92
  this.storage = storage_2.storage;
86
93
  // LLM and messaging
@@ -90,6 +97,8 @@ class R1SDK {
90
97
  this.camera = media_2.camera;
91
98
  this.microphone = media_2.microphone;
92
99
  this.speaker = media_2.speaker;
100
+ // UI
101
+ this.ui = ui_2.ui;
93
102
  // Constants
94
103
  this.DIMENSIONS = ui_2.R1_DIMENSIONS;
95
104
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;AAEH,mBAAmB;AACnB,0CAAwB;AAGxB,gBAAgB;AAChB,uCAOoB;AANlB,4GAAA,gBAAgB,OAAA;AAChB,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AACd,yGAAA,aAAa,OAAA;AACb,iGAAA,KAAK,OAAA;AACL,0GAAA,cAAc,OAAA;AAGhB,eAAe;AACf,qCAImB;AAHjB,sGAAA,WAAW,OAAA;AACX,oGAAA,SAAS,OAAA;AACT,kGAAA,OAAO,OAAA;AAGT,yBAAyB;AACzB,6BAKe;AAJb,kGAAA,WAAW,OAAA;AACX,iGAAA,UAAU,OAAA;AACV,gGAAA,SAAS,OAAA;AACT,iGAAA,UAAU,OAAA;AAGZ,eAAe;AACf,2BAOc;AANZ,8FAAA,QAAQ,OAAA;AACR,8FAAA,QAAQ,OAAA;AACR,iGAAA,WAAW,OAAA;AACX,sGAAA,gBAAgB,OAAA;AAChB,iGAAA,WAAW,OAAA;AACX,mGAAA,aAAa,OAAA;AAGf,aAAa;AACb,iCAQiB;AAPf,kGAAA,SAAS,OAAA;AACT,sGAAA,aAAa,OAAA;AACb,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,+FAAA,MAAM,OAAA;AACN,mGAAA,UAAU,OAAA;AACV,gGAAA,OAAO,OAAA;AAKT,yCAIoB;AACpB,uCAA+C;AAC/C,+BAA8C;AAC9C,6BAAqC;AACrC,mCAAkE;AAElE;;;GAGG;AACH,MAAa,KAAK;IAAlB;QACE,kBAAkB;QACF,kBAAa,GAAG,wBAAa,CAAC;QAC9B,UAAK,GAAG,gBAAK,CAAC;QACd,aAAQ,GAAG,yBAAc,CAAC;QAE1C,UAAU;QACM,YAAO,GAAG,iBAAO,CAAC;QAElC,oBAAoB;QACJ,cAAS,GAAG,eAAS,CAAC;QACtB,QAAG,GAAG,gBAAU,CAAC;QAEjC,QAAQ;QACQ,WAAM,GAAG,cAAM,CAAC;QAChB,eAAU,GAAG,kBAAU,CAAC;QACxB,YAAO,GAAG,eAAO,CAAC;QAElC,YAAY;QACI,eAAU,GAAG,kBAAa,CAAC;IAuD7C,CAAC;IArDC;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,qCAAqC;QACrC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,yBAAyB;QACzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,uBAAuB,kBAAa,CAAC,KAAK,IAAI,kBAAa,CAAC,MAAM,IAAI,CAAC,CAAC;QAEpF,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QASxB,OAAO;YACL,OAAO,EAAE,mBAAS,CAAC,WAAW,EAAE;YAChC,aAAa,EAAE,mBAAS,CAAC,iBAAiB,EAAE;YAC5C,aAAa,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACrD,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACvC,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC/C,OAAO,EAAE,MAAM,kBAAU,CAAC,WAAW,CAAC,SAAS,CAAC;YAChD,SAAS,EAAE,OAAO,oBAAoB,KAAK,WAAW;SACvD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAKZ;QACC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF;AA1ED,sBA0EC;AAED;;GAEG;AACH,MAAa,QAAQ;IAGnB,YAAoB,MAKnB;QALmB,WAAM,GAAN,MAAM,CAKzB;QAPO,YAAO,GAAG,KAAK,CAAC;QAQtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;IAC5B,CAAC;IAEO,mBAAmB;QACzB,yBAAyB;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,eAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,MAAM,GAAwB;gBAClC,WAAW;gBACX,gBAAgB;gBAChB,cAAc;gBACd,UAAU;gBACV,YAAY;aACb,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,yBAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAjDD,4BAiDC;AAED,yCAAyC;AAC5B,QAAA,EAAE,GAAG,IAAI,KAAK,EAAE,CAAC;AAE9B,+BAA+B;AACxB,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,UAAE,CAAC,UAAU,EAAE,CAAC;AAArC,QAAA,YAAY,gBAAyB;AAElD;;;GAGG;AACI,MAAM,WAAW,GAAG,CAAC,KAA2B,EAAE,EAAE;IACzD,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,UAAE,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,UAAE,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEF,iBAAiB;AACjB,kBAAe,UAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ export interface LLMOptions {
9
9
  }
10
10
  export interface MessageOptions extends LLMOptions {
11
11
  useLLM?: boolean;
12
+ useSerpAPI?: boolean;
13
+ pluginId?: string;
14
+ imageBase64?: string;
12
15
  }
13
16
  /**
14
17
  * Type-safe LLM response handler
@@ -35,6 +38,18 @@ export declare class R1Messaging {
35
38
  * @param options LLM options
36
39
  */
37
40
  askLLM(message: string, options?: LLMOptions): Promise<void>;
41
+ /**
42
+ * Send a SERP API request for web search
43
+ * @param query Search query
44
+ * @param options Additional options
45
+ */
46
+ searchWeb(query: string, options?: Omit<MessageOptions, 'useSerpAPI'>): Promise<void>;
47
+ /**
48
+ * Send text for text-to-speech output (without LLM processing)
49
+ * @param text Text to speak
50
+ * @param options Additional options
51
+ */
52
+ speakText(text: string, options?: Omit<MessageOptions, 'useLLM' | 'wantsR1Response'>): Promise<void>;
38
53
  /**
39
54
  * Ask LLM to speak response through R1 speaker
40
55
  * @param message Message text
@@ -89,6 +104,12 @@ export declare class LLMHelpers {
89
104
  * @param saveToJournal Whether to save to journal
90
105
  */
91
106
  performTask(task: string, saveToJournal?: boolean): Promise<void>;
107
+ /**
108
+ * Convert text to speech using R1 speaker (no LLM processing)
109
+ * @param text Text to speak
110
+ * @param saveToJournal Whether to save to journal
111
+ */
112
+ textToSpeech(text: string, saveToJournal?: boolean): Promise<void>;
92
113
  /**
93
114
  * Get LLM suggestions for user interface
94
115
  * @param context Current UI context
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,CAAA;CAAE,KAAK,IAAI,CAAC;AAErG;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAS;;IAM9B;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/E;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtE;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjF;;;;OAIG;IACG,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnF;;;OAGG;IACH,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAIpD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIzC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,wBAAwB;CAiCjC;AAED;;GAEG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,WAAW;IAE1C;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;;;OAIG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMvD;AAGD,eAAO,MAAM,SAAS,aAAoB,CAAC;AAC3C,eAAO,MAAM,UAAU,YAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,CAAA;CAAE,KAAK,IAAI,CAAC;AAErG;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAS;;IAM9B;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/E;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtE;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/F;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,iBAAiB,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9G;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjF;;;;OAIG;IACG,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnF;;;OAGG;IACH,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAIpD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIzC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,wBAAwB;CAiCjC;AAED;;GAEG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,WAAW;IAE1C;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;;;OAIG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMvD;AAGD,eAAO,MAAM,SAAS,aAAoB,CAAC;AAC3C,eAAO,MAAM,UAAU,YAA4B,CAAC"}