@todesktop/plugin-recall 1.0.1
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 +271 -0
- package/dist/main.d.ts +23 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +694 -0
- package/dist/main.js.map +1 -0
- package/dist/preload.d.ts +136 -0
- package/dist/preload.d.ts.map +1 -0
- package/dist/preload.js +218 -0
- package/dist/preload.js.map +1 -0
- package/dist/shared.d.ts +139 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +35 -0
- package/dist/shared.js.map +1 -0
- package/dist/store.d.ts +128 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +231 -0
- package/dist/store.js.map +1 -0
- package/package.json +71 -0
- package/src/main.ts +474 -0
- package/src/preload.ts +237 -0
- package/src/shared.ts +204 -0
- package/src/store.ts +266 -0
- package/tsconfig.json +11 -0
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recall Desktop SDK plugin state management and storage
|
|
3
|
+
*/
|
|
4
|
+
import { RecallSdkConfig, MeetingWindow, PermissionType } from './shared';
|
|
5
|
+
declare class RecallSdkStore {
|
|
6
|
+
private config;
|
|
7
|
+
private initialized;
|
|
8
|
+
private sdkInitialized;
|
|
9
|
+
private currentSdkState;
|
|
10
|
+
private activeMeetings;
|
|
11
|
+
private activeRecordings;
|
|
12
|
+
private permissions;
|
|
13
|
+
private eventListeners;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the plugin store
|
|
16
|
+
*/
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Get current plugin configuration
|
|
20
|
+
*/
|
|
21
|
+
getConfig(): RecallSdkConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Update plugin configuration
|
|
24
|
+
*/
|
|
25
|
+
setConfig(updates: Partial<RecallSdkConfig>): void;
|
|
26
|
+
/**
|
|
27
|
+
* Load configuration from ToDesktop preferences
|
|
28
|
+
*/
|
|
29
|
+
loadFromPreferences(preferences: Record<string, any>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Check if plugin is initialized
|
|
32
|
+
*/
|
|
33
|
+
isInitialized(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Check if plugin is enabled
|
|
36
|
+
*/
|
|
37
|
+
isEnabled(): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Set SDK initialization status
|
|
40
|
+
*/
|
|
41
|
+
setSdkInitialized(initialized: boolean): void;
|
|
42
|
+
/**
|
|
43
|
+
* Check if SDK is initialized
|
|
44
|
+
*/
|
|
45
|
+
isSdkInitialized(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Set current SDK state
|
|
48
|
+
*/
|
|
49
|
+
setSdkState(state: 'recording' | 'idle' | 'paused'): void;
|
|
50
|
+
/**
|
|
51
|
+
* Get current SDK state
|
|
52
|
+
*/
|
|
53
|
+
getSdkState(): 'recording' | 'idle' | 'paused';
|
|
54
|
+
/**
|
|
55
|
+
* Add an active meeting
|
|
56
|
+
*/
|
|
57
|
+
addMeeting(meeting: MeetingWindow): void;
|
|
58
|
+
/**
|
|
59
|
+
* Remove a meeting
|
|
60
|
+
*/
|
|
61
|
+
removeMeeting(windowId: string): void;
|
|
62
|
+
/**
|
|
63
|
+
* Get active meeting by window ID
|
|
64
|
+
*/
|
|
65
|
+
getMeeting(windowId: string): MeetingWindow | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Get all active meetings
|
|
68
|
+
*/
|
|
69
|
+
getAllMeetings(): MeetingWindow[];
|
|
70
|
+
/**
|
|
71
|
+
* Start a recording
|
|
72
|
+
*/
|
|
73
|
+
startRecording(windowId: string, uploadToken: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Stop a recording
|
|
76
|
+
*/
|
|
77
|
+
stopRecording(windowId: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Get active recording by window ID
|
|
80
|
+
*/
|
|
81
|
+
getRecording(windowId: string): {
|
|
82
|
+
window: MeetingWindow;
|
|
83
|
+
uploadToken: string;
|
|
84
|
+
} | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Get all active recordings
|
|
87
|
+
*/
|
|
88
|
+
getAllRecordings(): {
|
|
89
|
+
window: MeetingWindow;
|
|
90
|
+
uploadToken: string;
|
|
91
|
+
}[];
|
|
92
|
+
/**
|
|
93
|
+
* Update permission status
|
|
94
|
+
*/
|
|
95
|
+
setPermissionStatus(permission: PermissionType, status: string): void;
|
|
96
|
+
/**
|
|
97
|
+
* Get permission status
|
|
98
|
+
*/
|
|
99
|
+
getPermissions(): {
|
|
100
|
+
accessibility: boolean;
|
|
101
|
+
screenCapture: boolean;
|
|
102
|
+
microphone: boolean;
|
|
103
|
+
systemAudio: boolean;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Check if all required permissions are granted
|
|
107
|
+
*/
|
|
108
|
+
arePermissionsGranted(): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Add event listener for SDK events
|
|
111
|
+
*/
|
|
112
|
+
addEventListener(listener: (event: any) => void): void;
|
|
113
|
+
/**
|
|
114
|
+
* Remove event listener
|
|
115
|
+
*/
|
|
116
|
+
removeEventListener(listener: (event: any) => void): void;
|
|
117
|
+
/**
|
|
118
|
+
* Emit event to all listeners
|
|
119
|
+
*/
|
|
120
|
+
emitEvent(event: any): void;
|
|
121
|
+
/**
|
|
122
|
+
* Clear all state (useful for shutdown/reset)
|
|
123
|
+
*/
|
|
124
|
+
clearState(): void;
|
|
125
|
+
}
|
|
126
|
+
export declare const recallSdkStore: RecallSdkStore;
|
|
127
|
+
export {};
|
|
128
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1E,cAAM,cAAc;IAClB,OAAO,CAAC,MAAM,CAIZ;IAEF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAA2C;IAGlE,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,gBAAgB,CAAqE;IAG7F,OAAO,CAAC,WAAW,CAKjB;IAGF,OAAO,CAAC,cAAc,CAAmC;IAEzD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAKlD;;OAEG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAc3D;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAI7C;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIzD;;OAEG;IACH,WAAW,IAAI,WAAW,GAAG,MAAM,GAAG,QAAQ;IAI9C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKxC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIvD;;OAEG;IACH,cAAc,IAAI,aAAa,EAAE;IAIjC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAQ3D;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAI1F;;OAEG;IACH,gBAAgB,IAAI;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;IAIpE;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAcrE;;OAEG;IACH,cAAc,IAAI;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IAI/G;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAQhC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAItD;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAIzD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAU3B;;OAEG;IACH,UAAU,IAAI,IAAI;CAanB;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
package/dist/store.js
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recall Desktop SDK plugin state management and storage
|
|
3
|
+
*/
|
|
4
|
+
class RecallSdkStore {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.config = {
|
|
7
|
+
enabled: true,
|
|
8
|
+
apiUrl: 'https://us-east-1.recall.ai',
|
|
9
|
+
autoRecord: false,
|
|
10
|
+
requestPermissionsOnStartup: true,
|
|
11
|
+
};
|
|
12
|
+
this.initialized = false;
|
|
13
|
+
this.sdkInitialized = false;
|
|
14
|
+
this.currentSdkState = 'idle';
|
|
15
|
+
// Active meetings and recordings
|
|
16
|
+
this.activeMeetings = new Map();
|
|
17
|
+
this.activeRecordings = new Map();
|
|
18
|
+
// Permission status
|
|
19
|
+
this.permissions = {
|
|
20
|
+
accessibility: false,
|
|
21
|
+
screenCapture: false,
|
|
22
|
+
microphone: false,
|
|
23
|
+
};
|
|
24
|
+
// Event listeners for SDK events
|
|
25
|
+
this.eventListeners = new Set();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Initialize the plugin store
|
|
29
|
+
*/
|
|
30
|
+
async initialize() {
|
|
31
|
+
// Load configuration from ToDesktop preferences
|
|
32
|
+
try {
|
|
33
|
+
// In a real implementation, this would load from ToDesktop's preference system
|
|
34
|
+
// For now, we'll use the defaults
|
|
35
|
+
this.initialized = true;
|
|
36
|
+
console.log('RecallSdkStore: Initialized successfully');
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error('RecallSdkStore: Failed to initialize:', error);
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get current plugin configuration
|
|
45
|
+
*/
|
|
46
|
+
getConfig() {
|
|
47
|
+
return { ...this.config };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Update plugin configuration
|
|
51
|
+
*/
|
|
52
|
+
setConfig(updates) {
|
|
53
|
+
this.config = { ...this.config, ...updates };
|
|
54
|
+
console.log('RecallSdkStore: Configuration updated:', this.config);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Load configuration from ToDesktop preferences
|
|
58
|
+
*/
|
|
59
|
+
loadFromPreferences(preferences) {
|
|
60
|
+
if (preferences.enabled !== undefined) {
|
|
61
|
+
this.config.enabled = preferences.enabled;
|
|
62
|
+
}
|
|
63
|
+
if (preferences.apiUrl !== undefined) {
|
|
64
|
+
this.config.apiUrl = preferences.apiUrl;
|
|
65
|
+
}
|
|
66
|
+
if (preferences.autoRecord !== undefined) {
|
|
67
|
+
this.config.autoRecord = preferences.autoRecord;
|
|
68
|
+
}
|
|
69
|
+
if (preferences.requestPermissionsOnStartup !== undefined) {
|
|
70
|
+
this.config.requestPermissionsOnStartup = preferences.requestPermissionsOnStartup;
|
|
71
|
+
}
|
|
72
|
+
console.log('RecallSdkStore: Loaded configuration from preferences:', this.config);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Check if plugin is initialized
|
|
76
|
+
*/
|
|
77
|
+
isInitialized() {
|
|
78
|
+
return this.initialized;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if plugin is enabled
|
|
82
|
+
*/
|
|
83
|
+
isEnabled() {
|
|
84
|
+
return this.config.enabled;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Set SDK initialization status
|
|
88
|
+
*/
|
|
89
|
+
setSdkInitialized(initialized) {
|
|
90
|
+
this.sdkInitialized = initialized;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Check if SDK is initialized
|
|
94
|
+
*/
|
|
95
|
+
isSdkInitialized() {
|
|
96
|
+
return this.sdkInitialized;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Set current SDK state
|
|
100
|
+
*/
|
|
101
|
+
setSdkState(state) {
|
|
102
|
+
this.currentSdkState = state;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get current SDK state
|
|
106
|
+
*/
|
|
107
|
+
getSdkState() {
|
|
108
|
+
return this.currentSdkState;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Add an active meeting
|
|
112
|
+
*/
|
|
113
|
+
addMeeting(meeting) {
|
|
114
|
+
this.activeMeetings.set(meeting.id, meeting);
|
|
115
|
+
console.log(`RecallSdkStore: Added meeting ${meeting.id}:`, meeting);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Remove a meeting
|
|
119
|
+
*/
|
|
120
|
+
removeMeeting(windowId) {
|
|
121
|
+
this.activeMeetings.delete(windowId);
|
|
122
|
+
console.log(`RecallSdkStore: Removed meeting ${windowId}`);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get active meeting by window ID
|
|
126
|
+
*/
|
|
127
|
+
getMeeting(windowId) {
|
|
128
|
+
return this.activeMeetings.get(windowId);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get all active meetings
|
|
132
|
+
*/
|
|
133
|
+
getAllMeetings() {
|
|
134
|
+
return Array.from(this.activeMeetings.values());
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Start a recording
|
|
138
|
+
*/
|
|
139
|
+
startRecording(windowId, uploadToken) {
|
|
140
|
+
const window = this.activeMeetings.get(windowId);
|
|
141
|
+
if (window) {
|
|
142
|
+
this.activeRecordings.set(windowId, { window, uploadToken });
|
|
143
|
+
console.log(`RecallSdkStore: Started recording for ${windowId}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Stop a recording
|
|
148
|
+
*/
|
|
149
|
+
stopRecording(windowId) {
|
|
150
|
+
this.activeRecordings.delete(windowId);
|
|
151
|
+
console.log(`RecallSdkStore: Stopped recording for ${windowId}`);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get active recording by window ID
|
|
155
|
+
*/
|
|
156
|
+
getRecording(windowId) {
|
|
157
|
+
return this.activeRecordings.get(windowId);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get all active recordings
|
|
161
|
+
*/
|
|
162
|
+
getAllRecordings() {
|
|
163
|
+
return Array.from(this.activeRecordings.values());
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Update permission status
|
|
167
|
+
*/
|
|
168
|
+
setPermissionStatus(permission, granted) {
|
|
169
|
+
if (permission === 'screen-capture') {
|
|
170
|
+
this.permissions.screenCapture = granted;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
this.permissions[permission] = granted;
|
|
174
|
+
}
|
|
175
|
+
console.log(`RecallSdkStore: Permission ${permission} ${granted ? 'granted' : 'denied'}`);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get permission status
|
|
179
|
+
*/
|
|
180
|
+
getPermissions() {
|
|
181
|
+
return { ...this.permissions };
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Check if all required permissions are granted
|
|
185
|
+
*/
|
|
186
|
+
arePermissionsGranted() {
|
|
187
|
+
return this.permissions.accessibility && this.permissions.screenCapture && this.permissions.microphone;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Add event listener for SDK events
|
|
191
|
+
*/
|
|
192
|
+
addEventListener(listener) {
|
|
193
|
+
this.eventListeners.add(listener);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Remove event listener
|
|
197
|
+
*/
|
|
198
|
+
removeEventListener(listener) {
|
|
199
|
+
this.eventListeners.delete(listener);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Emit event to all listeners
|
|
203
|
+
*/
|
|
204
|
+
emitEvent(event) {
|
|
205
|
+
this.eventListeners.forEach(listener => {
|
|
206
|
+
try {
|
|
207
|
+
listener(event);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
console.error('RecallSdkStore: Error in event listener:', error);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Clear all state (useful for shutdown/reset)
|
|
216
|
+
*/
|
|
217
|
+
clearState() {
|
|
218
|
+
this.activeMeetings.clear();
|
|
219
|
+
this.activeRecordings.clear();
|
|
220
|
+
this.setSdkInitialized(false);
|
|
221
|
+
this.setSdkState('idle');
|
|
222
|
+
this.permissions = {
|
|
223
|
+
accessibility: false,
|
|
224
|
+
screenCapture: false,
|
|
225
|
+
microphone: false,
|
|
226
|
+
};
|
|
227
|
+
console.log('RecallSdkStore: Cleared all state');
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
export const recallSdkStore = new RecallSdkStore();
|
|
231
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@todesktop/plugin-recall",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "ToDesktop plugin for Recall.ai Desktop Recording SDK - Plugin package",
|
|
5
|
+
"private": false,
|
|
6
|
+
"main": "dist/main.js",
|
|
7
|
+
"types": "dist/main.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc --outDir dist --declaration && npm run generate-types",
|
|
10
|
+
"dev": "tsc --outDir dist --declaration --watch",
|
|
11
|
+
"clean": "rimraf dist",
|
|
12
|
+
"typecheck": "tsc --noEmit",
|
|
13
|
+
"lint": "eslint src --ext .ts",
|
|
14
|
+
"generate-types": "dts-bundle-generator -o ../client/src/generated/preload.d.ts src/preload.ts --no-check",
|
|
15
|
+
"release:patch": "npm version patch && npm publish",
|
|
16
|
+
"release:minor": "npm version minor && npm publish",
|
|
17
|
+
"release:major": "npm version major && npm publish"
|
|
18
|
+
},
|
|
19
|
+
"todesktop": {
|
|
20
|
+
"namespace": "recallDesktop",
|
|
21
|
+
"version": 3,
|
|
22
|
+
"main": "./dist/main.js",
|
|
23
|
+
"preload": "./dist/preload.js",
|
|
24
|
+
"preferences": [
|
|
25
|
+
{
|
|
26
|
+
"id": "enabled",
|
|
27
|
+
"type": "checkbox",
|
|
28
|
+
"name": "Enable Recall Desktop Recording",
|
|
29
|
+
"description": "Enable automatic meeting recording with Recall.ai Desktop SDK",
|
|
30
|
+
"spec": {}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "apiUrl",
|
|
34
|
+
"type": "text",
|
|
35
|
+
"name": "Recall API URL",
|
|
36
|
+
"description": "The Recall.ai API URL for your region",
|
|
37
|
+
"spec": {
|
|
38
|
+
"value": "https://us-east-1.recall.ai"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "requestPermissionsOnStartup",
|
|
43
|
+
"type": "checkbox",
|
|
44
|
+
"name": "Request permissions on startup",
|
|
45
|
+
"description": "Automatically request required permissions when the app starts",
|
|
46
|
+
"spec": {}
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"keywords": [
|
|
51
|
+
"todesktop",
|
|
52
|
+
"plugin",
|
|
53
|
+
"electron",
|
|
54
|
+
"recall",
|
|
55
|
+
"recording",
|
|
56
|
+
"meetings"
|
|
57
|
+
],
|
|
58
|
+
"author": "ToDesktop",
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"publishConfig": {
|
|
61
|
+
"access": "public"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"electron": "^30.0.0",
|
|
65
|
+
"rimraf": "^5.0.0"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@recallai/desktop-sdk": "1.1.0",
|
|
69
|
+
"@types/node": "20.19.2"
|
|
70
|
+
}
|
|
71
|
+
}
|