@todesktop/plugin-recall 1.2.0 → 1.3.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 +2 -0
- package/package.json +6 -2
- package/dist/shared.js +0 -35
- package/dist/shared.js.map +0 -1
- package/dist/store.js +0 -238
- package/dist/store.js.map +0 -1
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@todesktop/plugin-recall",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "ToDesktop plugin for Recall.ai Desktop Recording SDK - Plugin package",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -65,7 +65,11 @@
|
|
|
65
65
|
"rimraf": "^5.0.0"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@recallai/desktop-sdk": "
|
|
68
|
+
"@recallai/desktop-sdk": "2.0.0",
|
|
69
69
|
"@types/node": "20.19.2"
|
|
70
|
+
},
|
|
71
|
+
"repository": {
|
|
72
|
+
"type": "git",
|
|
73
|
+
"url": "git+https://github.com/ToDesktop/todesktop-recall.git"
|
|
70
74
|
}
|
|
71
75
|
}
|
package/dist/shared.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared types and constants for Recall Desktop SDK integration
|
|
3
|
-
*/
|
|
4
|
-
// IPC channel names - use unique namespace to avoid conflicts
|
|
5
|
-
export const IPC_CHANNELS = {
|
|
6
|
-
// SDK lifecycle
|
|
7
|
-
INIT_SDK: 'recall-desktop:init-sdk',
|
|
8
|
-
SHUTDOWN_SDK: 'recall-desktop:shutdown-sdk',
|
|
9
|
-
GET_STATUS: 'recall-desktop:get-status',
|
|
10
|
-
// Recording management
|
|
11
|
-
START_RECORDING: 'recall-desktop:start-recording',
|
|
12
|
-
STOP_RECORDING: 'recall-desktop:stop-recording',
|
|
13
|
-
PAUSE_RECORDING: 'recall-desktop:pause-recording',
|
|
14
|
-
RESUME_RECORDING: 'recall-desktop:resume-recording',
|
|
15
|
-
UPLOAD_RECORDING: 'recall-desktop:upload-recording',
|
|
16
|
-
// Desktop audio recording
|
|
17
|
-
PREPARE_DESKTOP_AUDIO: 'recall-desktop:prepare-desktop-audio',
|
|
18
|
-
// Permission management
|
|
19
|
-
REQUEST_PERMISSION: 'recall-desktop:request-permission',
|
|
20
|
-
// Configuration
|
|
21
|
-
SET_CONFIG: 'recall-desktop:set-config',
|
|
22
|
-
GET_CONFIG: 'recall-desktop:get-config',
|
|
23
|
-
// Event subscription
|
|
24
|
-
SUBSCRIBE_EVENTS: 'recall-desktop:subscribe-events',
|
|
25
|
-
UNSUBSCRIBE_EVENTS: 'recall-desktop:unsubscribe-events',
|
|
26
|
-
};
|
|
27
|
-
// Error types
|
|
28
|
-
export class RecallSdkError extends Error {
|
|
29
|
-
constructor(message, code) {
|
|
30
|
-
super(message);
|
|
31
|
-
this.code = code;
|
|
32
|
-
this.name = 'RecallSdkError';
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=shared.js.map
|
package/dist/shared.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,gBAAgB;IAChB,QAAQ,EAAE,yBAAyB;IACnC,YAAY,EAAE,6BAA6B;IAC3C,UAAU,EAAE,2BAA2B;IAEvC,uBAAuB;IACvB,eAAe,EAAE,gCAAgC;IACjD,cAAc,EAAE,+BAA+B;IAC/C,eAAe,EAAE,gCAAgC;IACjD,gBAAgB,EAAE,iCAAiC;IACnD,gBAAgB,EAAE,iCAAiC;IAEnD,0BAA0B;IAC1B,qBAAqB,EAAE,sCAAsC;IAE7D,wBAAwB;IACxB,kBAAkB,EAAE,mCAAmC;IAEvD,gBAAgB;IAChB,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,2BAA2B;IAEvC,qBAAqB;IACrB,gBAAgB,EAAE,iCAAiC;IACnD,kBAAkB,EAAE,mCAAmC;CAC/C,CAAC;AA0JX,cAAc;AACd,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe,EAAS,IAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,SAAI,GAAJ,IAAI,CAAS;QAE/C,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
package/dist/store.js
DELETED
|
@@ -1,238 +0,0 @@
|
|
|
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
|
-
requestPermissionsOnStartup: true,
|
|
10
|
-
};
|
|
11
|
-
this.initialized = false;
|
|
12
|
-
this.sdkInitialized = false;
|
|
13
|
-
this.currentSdkState = 'idle';
|
|
14
|
-
// Active meetings and recordings
|
|
15
|
-
this.activeMeetings = new Map();
|
|
16
|
-
this.activeRecordings = new Map();
|
|
17
|
-
// Permission status
|
|
18
|
-
this.permissions = {
|
|
19
|
-
accessibility: false,
|
|
20
|
-
screenCapture: false,
|
|
21
|
-
microphone: false,
|
|
22
|
-
systemAudio: 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
|
-
// autoRecord removed by design
|
|
67
|
-
if (preferences.requestPermissionsOnStartup !== undefined) {
|
|
68
|
-
this.config.requestPermissionsOnStartup = preferences.requestPermissionsOnStartup;
|
|
69
|
-
}
|
|
70
|
-
console.log('RecallSdkStore: Loaded configuration from preferences:', this.config);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Check if plugin is initialized
|
|
74
|
-
*/
|
|
75
|
-
isInitialized() {
|
|
76
|
-
return this.initialized;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Check if plugin is enabled
|
|
80
|
-
*/
|
|
81
|
-
isEnabled() {
|
|
82
|
-
return this.config.enabled;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Set SDK initialization status
|
|
86
|
-
*/
|
|
87
|
-
setSdkInitialized(initialized) {
|
|
88
|
-
this.sdkInitialized = initialized;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Check if SDK is initialized
|
|
92
|
-
*/
|
|
93
|
-
isSdkInitialized() {
|
|
94
|
-
return this.sdkInitialized;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Set current SDK state
|
|
98
|
-
*/
|
|
99
|
-
setSdkState(state) {
|
|
100
|
-
this.currentSdkState = state;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Get current SDK state
|
|
104
|
-
*/
|
|
105
|
-
getSdkState() {
|
|
106
|
-
return this.currentSdkState;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Add an active meeting
|
|
110
|
-
*/
|
|
111
|
-
addMeeting(meeting) {
|
|
112
|
-
this.activeMeetings.set(meeting.id, meeting);
|
|
113
|
-
console.log(`RecallSdkStore: Added meeting ${meeting.id}:`, meeting);
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Remove a meeting
|
|
117
|
-
*/
|
|
118
|
-
removeMeeting(windowId) {
|
|
119
|
-
this.activeMeetings.delete(windowId);
|
|
120
|
-
console.log(`RecallSdkStore: Removed meeting ${windowId}`);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Get active meeting by window ID
|
|
124
|
-
*/
|
|
125
|
-
getMeeting(windowId) {
|
|
126
|
-
return this.activeMeetings.get(windowId);
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Get all active meetings
|
|
130
|
-
*/
|
|
131
|
-
getAllMeetings() {
|
|
132
|
-
return Array.from(this.activeMeetings.values());
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Start a recording
|
|
136
|
-
*/
|
|
137
|
-
startRecording(windowId, uploadToken) {
|
|
138
|
-
const window = this.activeMeetings.get(windowId);
|
|
139
|
-
if (window) {
|
|
140
|
-
this.activeRecordings.set(windowId, { window, uploadToken });
|
|
141
|
-
console.log(`RecallSdkStore: Started recording for ${windowId}`);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Stop a recording
|
|
146
|
-
*/
|
|
147
|
-
stopRecording(windowId) {
|
|
148
|
-
this.activeRecordings.delete(windowId);
|
|
149
|
-
console.log(`RecallSdkStore: Stopped recording for ${windowId}`);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Get active recording by window ID
|
|
153
|
-
*/
|
|
154
|
-
getRecording(windowId) {
|
|
155
|
-
return this.activeRecordings.get(windowId);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Get all active recordings
|
|
159
|
-
*/
|
|
160
|
-
getAllRecordings() {
|
|
161
|
-
return Array.from(this.activeRecordings.values());
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Update permission status
|
|
165
|
-
*/
|
|
166
|
-
setPermissionStatus(permission, status) {
|
|
167
|
-
const granted = status === 'granted' || status === 'authorized' || status === 'ALLOWED';
|
|
168
|
-
if (permission === 'screen-capture') {
|
|
169
|
-
this.permissions.screenCapture = granted;
|
|
170
|
-
}
|
|
171
|
-
else if (permission === 'system-audio') {
|
|
172
|
-
this.permissions.systemAudio = granted;
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
// permission is 'accessibility' | 'microphone'
|
|
176
|
-
// @ts-ignore - index by key
|
|
177
|
-
this.permissions[permission] = granted;
|
|
178
|
-
}
|
|
179
|
-
console.log(`RecallSdkStore: Permission ${permission} status: ${status}`);
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Get permission status
|
|
183
|
-
*/
|
|
184
|
-
getPermissions() {
|
|
185
|
-
return { ...this.permissions };
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Check if all required permissions are granted
|
|
189
|
-
*/
|
|
190
|
-
arePermissionsGranted() {
|
|
191
|
-
return (this.permissions.accessibility &&
|
|
192
|
-
this.permissions.screenCapture &&
|
|
193
|
-
this.permissions.microphone);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Add event listener for SDK events
|
|
197
|
-
*/
|
|
198
|
-
addEventListener(listener) {
|
|
199
|
-
this.eventListeners.add(listener);
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Remove event listener
|
|
203
|
-
*/
|
|
204
|
-
removeEventListener(listener) {
|
|
205
|
-
this.eventListeners.delete(listener);
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Emit event to all listeners
|
|
209
|
-
*/
|
|
210
|
-
emitEvent(event) {
|
|
211
|
-
this.eventListeners.forEach(listener => {
|
|
212
|
-
try {
|
|
213
|
-
listener(event);
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
console.error('RecallSdkStore: Error in event listener:', error);
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Clear all state (useful for shutdown/reset)
|
|
222
|
-
*/
|
|
223
|
-
clearState() {
|
|
224
|
-
this.activeMeetings.clear();
|
|
225
|
-
this.activeRecordings.clear();
|
|
226
|
-
this.setSdkInitialized(false);
|
|
227
|
-
this.setSdkState('idle');
|
|
228
|
-
this.permissions = {
|
|
229
|
-
accessibility: false,
|
|
230
|
-
screenCapture: false,
|
|
231
|
-
microphone: false,
|
|
232
|
-
systemAudio: false,
|
|
233
|
-
};
|
|
234
|
-
console.log('RecallSdkStore: Cleared all state');
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
export const recallSdkStore = new RecallSdkStore();
|
|
238
|
-
//# sourceMappingURL=store.js.map
|
package/dist/store.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|