r1-create 1.0.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/LICENSE +201 -0
- package/README.md +245 -0
- package/dist/hardware/index.d.ts +87 -0
- package/dist/hardware/index.d.ts.map +1 -0
- package/dist/hardware/index.js +172 -0
- package/dist/hardware/index.js.map +1 -0
- package/dist/index.d.ts +88 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +196 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/index.d.ts +100 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +177 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/media/index.d.ts +176 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +396 -0
- package/dist/media/index.js.map +1 -0
- package/dist/storage/index.d.ts +115 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +179 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/types/index.d.ts +66 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/index.d.ts +170 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +311 -0
- package/dist/ui/index.js.map +1 -0
- package/examples/README.md +64 -0
- package/examples/basic/index.html +157 -0
- package/package.json +49 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Hardware API module for R1 device access
|
|
4
|
+
* Provides accelerometer, touch simulation, and hardware button events
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.hardwareEvents = exports.touch = exports.accelerometer = exports.HardwareEvents = exports.TouchAPI = exports.AccelerometerAPI = void 0;
|
|
8
|
+
class AccelerometerAPI {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.isListening = false;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check if accelerometer is available on the device
|
|
14
|
+
*/
|
|
15
|
+
async isAvailable() {
|
|
16
|
+
return await window.creationSensors?.accelerometer?.isAvailable() ?? false;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Start receiving accelerometer data
|
|
20
|
+
* @param callback Function to handle accelerometer data
|
|
21
|
+
* @param options Configuration options including frequency
|
|
22
|
+
*/
|
|
23
|
+
start(callback, options) {
|
|
24
|
+
if (this.isListening) {
|
|
25
|
+
this.stop();
|
|
26
|
+
}
|
|
27
|
+
this.currentCallback = callback;
|
|
28
|
+
this.isListening = true;
|
|
29
|
+
if (window.creationSensors?.accelerometer) {
|
|
30
|
+
window.creationSensors.accelerometer.start(callback, options);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Stop receiving accelerometer data
|
|
35
|
+
*/
|
|
36
|
+
stop() {
|
|
37
|
+
if (this.isListening && window.creationSensors?.accelerometer) {
|
|
38
|
+
window.creationSensors.accelerometer.stop();
|
|
39
|
+
this.isListening = false;
|
|
40
|
+
this.currentCallback = undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if currently listening for accelerometer data
|
|
45
|
+
*/
|
|
46
|
+
isActive() {
|
|
47
|
+
return this.isListening;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.AccelerometerAPI = AccelerometerAPI;
|
|
51
|
+
class TouchAPI {
|
|
52
|
+
/**
|
|
53
|
+
* Simulate a tap at specific coordinates
|
|
54
|
+
* @param x X coordinate (0-240)
|
|
55
|
+
* @param y Y coordinate (0-282)
|
|
56
|
+
*/
|
|
57
|
+
tap(x, y) {
|
|
58
|
+
this.sendTouchEvent({ type: 'tap', x, y });
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Simulate touch down event
|
|
62
|
+
* @param x X coordinate
|
|
63
|
+
* @param y Y coordinate
|
|
64
|
+
*/
|
|
65
|
+
touchDown(x, y) {
|
|
66
|
+
this.sendTouchEvent({ type: 'down', x, y });
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Simulate touch up event
|
|
70
|
+
* @param x X coordinate
|
|
71
|
+
* @param y Y coordinate
|
|
72
|
+
*/
|
|
73
|
+
touchUp(x, y) {
|
|
74
|
+
this.sendTouchEvent({ type: 'up', x, y });
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Simulate touch move event
|
|
78
|
+
* @param x X coordinate
|
|
79
|
+
* @param y Y coordinate
|
|
80
|
+
*/
|
|
81
|
+
touchMove(x, y) {
|
|
82
|
+
this.sendTouchEvent({ type: 'move', x, y });
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Cancel touch event
|
|
86
|
+
* @param x X coordinate
|
|
87
|
+
* @param y Y coordinate
|
|
88
|
+
*/
|
|
89
|
+
touchCancel(x, y) {
|
|
90
|
+
this.sendTouchEvent({ type: 'cancel', x, y });
|
|
91
|
+
}
|
|
92
|
+
sendTouchEvent(event) {
|
|
93
|
+
if (typeof TouchEventHandler !== 'undefined') {
|
|
94
|
+
TouchEventHandler.postMessage(JSON.stringify(event));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.TouchAPI = TouchAPI;
|
|
99
|
+
class HardwareEvents {
|
|
100
|
+
constructor() {
|
|
101
|
+
this.listeners = new Map();
|
|
102
|
+
this.initializeEventListeners();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Add event listener for hardware button events
|
|
106
|
+
* @param event Event type to listen for
|
|
107
|
+
* @param callback Function to call when event occurs
|
|
108
|
+
*/
|
|
109
|
+
on(event, callback) {
|
|
110
|
+
if (!this.listeners.has(event)) {
|
|
111
|
+
this.listeners.set(event, new Set());
|
|
112
|
+
}
|
|
113
|
+
this.listeners.get(event).add(callback);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Remove event listener
|
|
117
|
+
* @param event Event type
|
|
118
|
+
* @param callback Function to remove
|
|
119
|
+
*/
|
|
120
|
+
off(event, callback) {
|
|
121
|
+
const callbacks = this.listeners.get(event);
|
|
122
|
+
if (callbacks) {
|
|
123
|
+
callbacks.delete(callback);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Remove all listeners for an event type
|
|
128
|
+
* @param event Event type to clear
|
|
129
|
+
*/
|
|
130
|
+
removeAllListeners(event) {
|
|
131
|
+
if (event) {
|
|
132
|
+
this.listeners.delete(event);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.listeners.clear();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
initializeEventListeners() {
|
|
139
|
+
// Only initialize in browser environment
|
|
140
|
+
if (typeof window === 'undefined')
|
|
141
|
+
return;
|
|
142
|
+
// Side button (PTT) events
|
|
143
|
+
window.addEventListener('sideClick', () => {
|
|
144
|
+
this.emit('sideClick');
|
|
145
|
+
});
|
|
146
|
+
window.addEventListener('longPressStart', () => {
|
|
147
|
+
this.emit('longPressStart');
|
|
148
|
+
});
|
|
149
|
+
window.addEventListener('longPressEnd', () => {
|
|
150
|
+
this.emit('longPressEnd');
|
|
151
|
+
});
|
|
152
|
+
// Scroll wheel events
|
|
153
|
+
window.addEventListener('scrollUp', () => {
|
|
154
|
+
this.emit('scrollUp');
|
|
155
|
+
});
|
|
156
|
+
window.addEventListener('scrollDown', () => {
|
|
157
|
+
this.emit('scrollDown');
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
emit(event) {
|
|
161
|
+
const callbacks = this.listeners.get(event);
|
|
162
|
+
if (callbacks) {
|
|
163
|
+
callbacks.forEach(callback => callback());
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
exports.HardwareEvents = HardwareEvents;
|
|
168
|
+
// Export singleton instances
|
|
169
|
+
exports.accelerometer = new AccelerometerAPI();
|
|
170
|
+
exports.touch = new TouchAPI();
|
|
171
|
+
exports.hardwareEvents = new HardwareEvents();
|
|
172
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hardware/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* R1 Create SDK
|
|
3
|
+
* Official SDK for building R1/RabbitOS plugins
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Hardware access (accelerometer, touch, PTT, scroll)
|
|
7
|
+
* - Secure/plain storage with Base64 encoding
|
|
8
|
+
* - LLM interaction and messaging
|
|
9
|
+
* - Optimized UI utilities for 240x282px display
|
|
10
|
+
* - Media APIs (camera, microphone, speaker)
|
|
11
|
+
* - Event-driven architecture
|
|
12
|
+
* - Mobile performance optimizations
|
|
13
|
+
*/
|
|
14
|
+
export * from './types';
|
|
15
|
+
export type { HardwareEventType } from './types';
|
|
16
|
+
export { AccelerometerAPI, TouchAPI, HardwareEvents, accelerometer, touch, hardwareEvents } from './hardware';
|
|
17
|
+
export { Base64Utils, R1Storage, storage } from './storage';
|
|
18
|
+
export { R1Messaging, LLMHelpers, messaging, llmHelpers } from './llm';
|
|
19
|
+
export { CSSUtils, DOMUtils, LayoutUtils, PerformanceUtils, R1Component, R1_DIMENSIONS } from './ui';
|
|
20
|
+
export { CameraAPI, MicrophoneAPI, SpeakerAPI, MediaUtils, camera, microphone, speaker } from './media';
|
|
21
|
+
import { R1Storage } from './storage';
|
|
22
|
+
/**
|
|
23
|
+
* R1 SDK main class
|
|
24
|
+
* Provides a unified interface to all R1 capabilities
|
|
25
|
+
*/
|
|
26
|
+
export declare class R1SDK {
|
|
27
|
+
readonly accelerometer: import("./hardware").AccelerometerAPI;
|
|
28
|
+
readonly touch: import("./hardware").TouchAPI;
|
|
29
|
+
readonly hardware: import("./hardware").HardwareEvents;
|
|
30
|
+
readonly storage: R1Storage;
|
|
31
|
+
readonly messaging: import("./llm").R1Messaging;
|
|
32
|
+
readonly llm: import("./llm").LLMHelpers;
|
|
33
|
+
readonly camera: import("./media").CameraAPI;
|
|
34
|
+
readonly microphone: import("./media").MicrophoneAPI;
|
|
35
|
+
readonly speaker: import("./media").SpeakerAPI;
|
|
36
|
+
readonly DIMENSIONS: import("./types").R1Dimensions;
|
|
37
|
+
/**
|
|
38
|
+
* Initialize the SDK and check environment
|
|
39
|
+
*/
|
|
40
|
+
initialize(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Get available R1 features
|
|
43
|
+
*/
|
|
44
|
+
getAvailableFeatures(): Promise<{
|
|
45
|
+
storage: boolean;
|
|
46
|
+
secureStorage: boolean;
|
|
47
|
+
accelerometer: boolean;
|
|
48
|
+
camera: boolean;
|
|
49
|
+
microphone: boolean;
|
|
50
|
+
speaker: boolean;
|
|
51
|
+
messaging: boolean;
|
|
52
|
+
}>;
|
|
53
|
+
/**
|
|
54
|
+
* Create a simple R1 plugin with common setup
|
|
55
|
+
* @param config Plugin configuration
|
|
56
|
+
*/
|
|
57
|
+
createPlugin(config: {
|
|
58
|
+
onMount?: () => void;
|
|
59
|
+
onUnmount?: () => void;
|
|
60
|
+
onMessage?: (data: any) => void;
|
|
61
|
+
onHardwareEvent?: (event: string) => void;
|
|
62
|
+
}): R1Plugin;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Simple plugin class for quick R1 app development
|
|
66
|
+
*/
|
|
67
|
+
export declare class R1Plugin {
|
|
68
|
+
private config;
|
|
69
|
+
private mounted;
|
|
70
|
+
constructor(config: {
|
|
71
|
+
onMount?: () => void;
|
|
72
|
+
onUnmount?: () => void;
|
|
73
|
+
onMessage?: (data: any) => void;
|
|
74
|
+
onHardwareEvent?: (event: string) => void;
|
|
75
|
+
});
|
|
76
|
+
mount(): void;
|
|
77
|
+
unmount(): void;
|
|
78
|
+
private setupEventListeners;
|
|
79
|
+
}
|
|
80
|
+
export declare const r1: R1SDK;
|
|
81
|
+
export declare const initializeR1: () => Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Quick setup function for simple R1 plugins
|
|
84
|
+
* @param setup Setup function that receives the SDK instance
|
|
85
|
+
*/
|
|
86
|
+
export declare const createR1App: (setup: (sdk: R1SDK) => void) => void;
|
|
87
|
+
export default r1;
|
|
88
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* R1 Create SDK
|
|
4
|
+
* Official SDK for building R1/RabbitOS plugins
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Hardware access (accelerometer, touch, PTT, scroll)
|
|
8
|
+
* - Secure/plain storage with Base64 encoding
|
|
9
|
+
* - LLM interaction and messaging
|
|
10
|
+
* - Optimized UI utilities for 240x282px display
|
|
11
|
+
* - Media APIs (camera, microphone, speaker)
|
|
12
|
+
* - Event-driven architecture
|
|
13
|
+
* - Mobile performance optimizations
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
27
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
28
|
+
};
|
|
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;
|
|
31
|
+
// Type definitions
|
|
32
|
+
__exportStar(require("./types"), exports);
|
|
33
|
+
// Hardware APIs
|
|
34
|
+
var hardware_1 = require("./hardware");
|
|
35
|
+
Object.defineProperty(exports, "AccelerometerAPI", { enumerable: true, get: function () { return hardware_1.AccelerometerAPI; } });
|
|
36
|
+
Object.defineProperty(exports, "TouchAPI", { enumerable: true, get: function () { return hardware_1.TouchAPI; } });
|
|
37
|
+
Object.defineProperty(exports, "HardwareEvents", { enumerable: true, get: function () { return hardware_1.HardwareEvents; } });
|
|
38
|
+
Object.defineProperty(exports, "accelerometer", { enumerable: true, get: function () { return hardware_1.accelerometer; } });
|
|
39
|
+
Object.defineProperty(exports, "touch", { enumerable: true, get: function () { return hardware_1.touch; } });
|
|
40
|
+
Object.defineProperty(exports, "hardwareEvents", { enumerable: true, get: function () { return hardware_1.hardwareEvents; } });
|
|
41
|
+
// Storage APIs
|
|
42
|
+
var storage_1 = require("./storage");
|
|
43
|
+
Object.defineProperty(exports, "Base64Utils", { enumerable: true, get: function () { return storage_1.Base64Utils; } });
|
|
44
|
+
Object.defineProperty(exports, "R1Storage", { enumerable: true, get: function () { return storage_1.R1Storage; } });
|
|
45
|
+
Object.defineProperty(exports, "storage", { enumerable: true, get: function () { return storage_1.storage; } });
|
|
46
|
+
// LLM and messaging APIs
|
|
47
|
+
var llm_1 = require("./llm");
|
|
48
|
+
Object.defineProperty(exports, "R1Messaging", { enumerable: true, get: function () { return llm_1.R1Messaging; } });
|
|
49
|
+
Object.defineProperty(exports, "LLMHelpers", { enumerable: true, get: function () { return llm_1.LLMHelpers; } });
|
|
50
|
+
Object.defineProperty(exports, "messaging", { enumerable: true, get: function () { return llm_1.messaging; } });
|
|
51
|
+
Object.defineProperty(exports, "llmHelpers", { enumerable: true, get: function () { return llm_1.llmHelpers; } });
|
|
52
|
+
// UI utilities
|
|
53
|
+
var ui_1 = require("./ui");
|
|
54
|
+
Object.defineProperty(exports, "CSSUtils", { enumerable: true, get: function () { return ui_1.CSSUtils; } });
|
|
55
|
+
Object.defineProperty(exports, "DOMUtils", { enumerable: true, get: function () { return ui_1.DOMUtils; } });
|
|
56
|
+
Object.defineProperty(exports, "LayoutUtils", { enumerable: true, get: function () { return ui_1.LayoutUtils; } });
|
|
57
|
+
Object.defineProperty(exports, "PerformanceUtils", { enumerable: true, get: function () { return ui_1.PerformanceUtils; } });
|
|
58
|
+
Object.defineProperty(exports, "R1Component", { enumerable: true, get: function () { return ui_1.R1Component; } });
|
|
59
|
+
Object.defineProperty(exports, "R1_DIMENSIONS", { enumerable: true, get: function () { return ui_1.R1_DIMENSIONS; } });
|
|
60
|
+
// Media APIs
|
|
61
|
+
var media_1 = require("./media");
|
|
62
|
+
Object.defineProperty(exports, "CameraAPI", { enumerable: true, get: function () { return media_1.CameraAPI; } });
|
|
63
|
+
Object.defineProperty(exports, "MicrophoneAPI", { enumerable: true, get: function () { return media_1.MicrophoneAPI; } });
|
|
64
|
+
Object.defineProperty(exports, "SpeakerAPI", { enumerable: true, get: function () { return media_1.SpeakerAPI; } });
|
|
65
|
+
Object.defineProperty(exports, "MediaUtils", { enumerable: true, get: function () { return media_1.MediaUtils; } });
|
|
66
|
+
Object.defineProperty(exports, "camera", { enumerable: true, get: function () { return media_1.camera; } });
|
|
67
|
+
Object.defineProperty(exports, "microphone", { enumerable: true, get: function () { return media_1.microphone; } });
|
|
68
|
+
Object.defineProperty(exports, "speaker", { enumerable: true, get: function () { return media_1.speaker; } });
|
|
69
|
+
const hardware_2 = require("./hardware");
|
|
70
|
+
const storage_2 = require("./storage");
|
|
71
|
+
const llm_2 = require("./llm");
|
|
72
|
+
const ui_2 = require("./ui");
|
|
73
|
+
const media_2 = require("./media");
|
|
74
|
+
/**
|
|
75
|
+
* R1 SDK main class
|
|
76
|
+
* Provides a unified interface to all R1 capabilities
|
|
77
|
+
*/
|
|
78
|
+
class R1SDK {
|
|
79
|
+
constructor() {
|
|
80
|
+
// Hardware access
|
|
81
|
+
this.accelerometer = hardware_2.accelerometer;
|
|
82
|
+
this.touch = hardware_2.touch;
|
|
83
|
+
this.hardware = hardware_2.hardwareEvents;
|
|
84
|
+
// Storage
|
|
85
|
+
this.storage = storage_2.storage;
|
|
86
|
+
// LLM and messaging
|
|
87
|
+
this.messaging = llm_2.messaging;
|
|
88
|
+
this.llm = llm_2.llmHelpers;
|
|
89
|
+
// Media
|
|
90
|
+
this.camera = media_2.camera;
|
|
91
|
+
this.microphone = media_2.microphone;
|
|
92
|
+
this.speaker = media_2.speaker;
|
|
93
|
+
// Constants
|
|
94
|
+
this.DIMENSIONS = ui_2.R1_DIMENSIONS;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Initialize the SDK and check environment
|
|
98
|
+
*/
|
|
99
|
+
async initialize() {
|
|
100
|
+
// Check if running in R1 environment
|
|
101
|
+
if (typeof window === 'undefined') {
|
|
102
|
+
throw new Error('R1 SDK must be used in a browser environment');
|
|
103
|
+
}
|
|
104
|
+
// Log SDK initialization
|
|
105
|
+
console.log('R1 SDK initialized');
|
|
106
|
+
console.log(`Display dimensions: ${ui_2.R1_DIMENSIONS.width}x${ui_2.R1_DIMENSIONS.height}px`);
|
|
107
|
+
// Check available features
|
|
108
|
+
const features = await this.getAvailableFeatures();
|
|
109
|
+
console.log('Available features:', features);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get available R1 features
|
|
113
|
+
*/
|
|
114
|
+
async getAvailableFeatures() {
|
|
115
|
+
return {
|
|
116
|
+
storage: storage_2.R1Storage.isAvailable(),
|
|
117
|
+
secureStorage: storage_2.R1Storage.isSecureAvailable(),
|
|
118
|
+
accelerometer: await this.accelerometer.isAvailable(),
|
|
119
|
+
camera: await this.camera.isAvailable(),
|
|
120
|
+
microphone: await this.microphone.isAvailable(),
|
|
121
|
+
speaker: await media_2.MediaUtils.isSupported('speaker'),
|
|
122
|
+
messaging: typeof PluginMessageHandler !== 'undefined'
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create a simple R1 plugin with common setup
|
|
127
|
+
* @param config Plugin configuration
|
|
128
|
+
*/
|
|
129
|
+
createPlugin(config) {
|
|
130
|
+
return new R1Plugin(config);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.R1SDK = R1SDK;
|
|
134
|
+
/**
|
|
135
|
+
* Simple plugin class for quick R1 app development
|
|
136
|
+
*/
|
|
137
|
+
class R1Plugin {
|
|
138
|
+
constructor(config) {
|
|
139
|
+
this.config = config;
|
|
140
|
+
this.mounted = false;
|
|
141
|
+
this.setupEventListeners();
|
|
142
|
+
}
|
|
143
|
+
mount() {
|
|
144
|
+
if (this.mounted)
|
|
145
|
+
return;
|
|
146
|
+
this.mounted = true;
|
|
147
|
+
this.config.onMount?.();
|
|
148
|
+
}
|
|
149
|
+
unmount() {
|
|
150
|
+
if (!this.mounted)
|
|
151
|
+
return;
|
|
152
|
+
this.mounted = false;
|
|
153
|
+
this.config.onUnmount?.();
|
|
154
|
+
}
|
|
155
|
+
setupEventListeners() {
|
|
156
|
+
// Setup message handling
|
|
157
|
+
if (this.config.onMessage) {
|
|
158
|
+
llm_2.messaging.onMessage(this.config.onMessage);
|
|
159
|
+
}
|
|
160
|
+
// Setup hardware event handling
|
|
161
|
+
if (this.config.onHardwareEvent) {
|
|
162
|
+
const events = [
|
|
163
|
+
'sideClick',
|
|
164
|
+
'longPressStart',
|
|
165
|
+
'longPressEnd',
|
|
166
|
+
'scrollUp',
|
|
167
|
+
'scrollDown'
|
|
168
|
+
];
|
|
169
|
+
events.forEach(event => {
|
|
170
|
+
hardware_2.hardwareEvents.on(event, () => {
|
|
171
|
+
this.config.onHardwareEvent?.(event);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.R1Plugin = R1Plugin;
|
|
178
|
+
// Create and export default SDK instance
|
|
179
|
+
exports.r1 = new R1SDK();
|
|
180
|
+
// Export convenience functions
|
|
181
|
+
const initializeR1 = () => exports.r1.initialize();
|
|
182
|
+
exports.initializeR1 = initializeR1;
|
|
183
|
+
/**
|
|
184
|
+
* Quick setup function for simple R1 plugins
|
|
185
|
+
* @param setup Setup function that receives the SDK instance
|
|
186
|
+
*/
|
|
187
|
+
const createR1App = (setup) => {
|
|
188
|
+
document.addEventListener('DOMContentLoaded', async () => {
|
|
189
|
+
await exports.r1.initialize();
|
|
190
|
+
setup(exports.r1);
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
exports.createR1App = createR1App;
|
|
194
|
+
// Default export
|
|
195
|
+
exports.default = exports.r1;
|
|
196
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM and messaging module for R1 AI integration
|
|
3
|
+
* Provides structured messaging and LLM interaction capabilities
|
|
4
|
+
*/
|
|
5
|
+
import type { PluginMessageResponse } from '../types';
|
|
6
|
+
export interface LLMOptions {
|
|
7
|
+
wantsR1Response?: boolean;
|
|
8
|
+
wantsJournalEntry?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface MessageOptions extends LLMOptions {
|
|
11
|
+
useLLM?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Type-safe LLM response handler
|
|
15
|
+
*/
|
|
16
|
+
export type MessageHandler<T = any> = (response: PluginMessageResponse & {
|
|
17
|
+
parsedData?: T;
|
|
18
|
+
}) => void;
|
|
19
|
+
/**
|
|
20
|
+
* LLM and messaging API for R1 interactions
|
|
21
|
+
*/
|
|
22
|
+
export declare class R1Messaging {
|
|
23
|
+
private messageHandlers;
|
|
24
|
+
private isInitialized;
|
|
25
|
+
constructor();
|
|
26
|
+
/**
|
|
27
|
+
* Send a simple message to the server
|
|
28
|
+
* @param message Message text
|
|
29
|
+
* @param options Message options
|
|
30
|
+
*/
|
|
31
|
+
sendMessage(message: string, options?: MessageOptions): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Send a message and get LLM response
|
|
34
|
+
* @param message Message text
|
|
35
|
+
* @param options LLM options
|
|
36
|
+
*/
|
|
37
|
+
askLLM(message: string, options?: LLMOptions): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Ask LLM to speak response through R1 speaker
|
|
40
|
+
* @param message Message text
|
|
41
|
+
* @param saveToJournal Whether to save interaction to journal
|
|
42
|
+
*/
|
|
43
|
+
askLLMSpeak(message: string, saveToJournal?: boolean): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Ask LLM for JSON structured response
|
|
46
|
+
* @param message Message text (should specify desired JSON format)
|
|
47
|
+
* @param options LLM options
|
|
48
|
+
*/
|
|
49
|
+
askLLMJSON<T = any>(message: string, options?: LLMOptions): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Add message handler for incoming responses
|
|
52
|
+
* @param handler Function to handle incoming messages
|
|
53
|
+
*/
|
|
54
|
+
onMessage<T = any>(handler: MessageHandler<T>): void;
|
|
55
|
+
/**
|
|
56
|
+
* Remove message handler
|
|
57
|
+
* @param handler Handler function to remove
|
|
58
|
+
*/
|
|
59
|
+
offMessage(handler: MessageHandler): void;
|
|
60
|
+
/**
|
|
61
|
+
* Remove all message handlers
|
|
62
|
+
*/
|
|
63
|
+
removeAllHandlers(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Close the current plugin/webview
|
|
66
|
+
*/
|
|
67
|
+
closePlugin(): void;
|
|
68
|
+
private initializeMessageHandler;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Convenient helper functions for common LLM interactions
|
|
72
|
+
*/
|
|
73
|
+
export declare class LLMHelpers {
|
|
74
|
+
private messaging;
|
|
75
|
+
constructor(messaging: R1Messaging);
|
|
76
|
+
/**
|
|
77
|
+
* Ask LLM about user memories/context
|
|
78
|
+
*/
|
|
79
|
+
getUserMemories(): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Ask LLM to analyze an image or data
|
|
82
|
+
* @param prompt Analysis prompt
|
|
83
|
+
* @param data Optional data to analyze
|
|
84
|
+
*/
|
|
85
|
+
analyzeData(prompt: string, data?: any): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Ask LLM to perform a task and speak the result
|
|
88
|
+
* @param task Task description
|
|
89
|
+
* @param saveToJournal Whether to save to journal
|
|
90
|
+
*/
|
|
91
|
+
performTask(task: string, saveToJournal?: boolean): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Get LLM suggestions for user interface
|
|
94
|
+
* @param context Current UI context
|
|
95
|
+
*/
|
|
96
|
+
getUISuggestions(context: string): Promise<void>;
|
|
97
|
+
}
|
|
98
|
+
export declare const messaging: R1Messaging;
|
|
99
|
+
export declare const llmHelpers: LLMHelpers;
|
|
100
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|