@recallai/desktop-sdk 2.0.3 → 2.0.5
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/CHANGELOG.md +30 -1
- package/index.d.ts +10 -0
- package/index.js +35 -4
- package/package.json +2 -2
- package/dummy.node +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
### 2.0.5 [patch] (MacOS+Windows) - 2026-02-11
|
|
2
|
+
|
|
3
|
+
- Support for Google Chrome 145.0.7632.46+
|
|
4
|
+
- Improvements for Brave
|
|
5
|
+
- Automatically detect which microphone is being used by the meeting platform
|
|
6
|
+
- Improvements for energy consumption and CPU usage
|
|
7
|
+
- Fix an issue with flickering video during screenshare
|
|
8
|
+
- Fix an issue with screensharing Chrome tabs in Google Meet
|
|
9
|
+
- Fix an issue where recording Chrome would capture a flash of other content when changing tabs
|
|
10
|
+
|
|
11
|
+
### 2.0.4 [patch] (MacOS+Windows) - 2026-01-29
|
|
12
|
+
|
|
13
|
+
- Teams detection, diarization improvements on windows.
|
|
14
|
+
- Fix freeze requesting full disk access permission on macOS.
|
|
15
|
+
- Fix issue switching audio devices on windows for meeting capture.
|
|
16
|
+
- Fixes to phantom participants on Google Meet on both macOS/windows.
|
|
17
|
+
- Support Microsoft Edge browser for Google Meet on windows.
|
|
18
|
+
- Emulate all permission statuses on windows by default.
|
|
19
|
+
- Support meeting title scraping for Zoom on windows.
|
|
20
|
+
- Fixed an issue capturing video on macOS.
|
|
21
|
+
- Fixed an issue with short meetings not uploading properly.
|
|
22
|
+
- Improved energy consumption for Zoom on MacOS.
|
|
23
|
+
- Improved energy consumption for chrome and chromium users with multiple open windows on MacOS.
|
|
24
|
+
- Fix unexpected chrome title change on MacOS.
|
|
25
|
+
- Improve audio post-processing energy consumption on MacOS.
|
|
26
|
+
- Improve audio post-processing quality on MacOS.
|
|
27
|
+
- Fix GMeet compliance messaging for tabs with "Meet" in the title on MacOS.
|
|
28
|
+
- Improve logging and telemetry on MacOS.
|
|
29
|
+
|
|
1
30
|
### 2.0.3 [patch] (MacOS+Windows) - 2026-01-07
|
|
2
31
|
|
|
3
32
|
- Significantly reduce energy consumption on Chromium and Safari browsers on macOS.
|
|
@@ -143,4 +172,4 @@
|
|
|
143
172
|
|
|
144
173
|
### 1.0.0 [major] (MacOS+Windows) - 2025-07-24 (deprecated)
|
|
145
174
|
|
|
146
|
-
- Initial Changelog Entry
|
|
175
|
+
- Initial Changelog Entry
|
package/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export type RecallAiSdkEvent = RecordingStartEvent | RecordingStopEvent | Upload
|
|
|
2
2
|
export type EventTypeToPayloadMap = {
|
|
3
3
|
'recording-started': RecordingStartEvent;
|
|
4
4
|
'recording-ended': RecordingStopEvent;
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Recordings are uploaded in parallel to recording now, there is no progress.
|
|
7
|
+
*/
|
|
5
8
|
'upload-progress': UploadProgressEvent;
|
|
6
9
|
'meeting-detected': MeetingDetectedEvent;
|
|
7
10
|
'meeting-updated': MeetingUpdatedEvent;
|
|
@@ -43,6 +46,9 @@ export interface PauseRecordingConfig {
|
|
|
43
46
|
export interface ResumeRecordingConfig {
|
|
44
47
|
windowId: string;
|
|
45
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Recordings are uploaded based on the upload token config.
|
|
51
|
+
*/
|
|
46
52
|
export interface UploadRecordingConfig {
|
|
47
53
|
windowId: string;
|
|
48
54
|
}
|
|
@@ -114,10 +120,14 @@ export interface LogEvent {
|
|
|
114
120
|
export declare function init(options: RecallAiSdkConfig): Promise<null>;
|
|
115
121
|
export declare function shutdown(): Promise<null>;
|
|
116
122
|
export declare function dumpAXTree(procName: string): Promise<any>;
|
|
123
|
+
export declare function dumpAllApplications(): Promise<any>;
|
|
117
124
|
export declare function startRecording(config: StartRecordingConfig): Promise<null>;
|
|
118
125
|
export declare function stopRecording({ windowId }: StopRecordingConfig): Promise<null>;
|
|
119
126
|
export declare function pauseRecording({ windowId }: PauseRecordingConfig): Promise<null>;
|
|
120
127
|
export declare function resumeRecording({ windowId }: ResumeRecordingConfig): Promise<null>;
|
|
128
|
+
/**
|
|
129
|
+
* @deprecated Recordings are uploaded based on the upload token config.
|
|
130
|
+
*/
|
|
121
131
|
export declare function uploadRecording({ windowId }: UploadRecordingConfig): Promise<null>;
|
|
122
132
|
export declare function prepareDesktopAudioRecording(): Promise<string>;
|
|
123
133
|
export declare function requestPermission(permission: Permission): Promise<null>;
|
package/index.js
CHANGED
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.init = init;
|
|
37
37
|
exports.shutdown = shutdown;
|
|
38
38
|
exports.dumpAXTree = dumpAXTree;
|
|
39
|
+
exports.dumpAllApplications = dumpAllApplications;
|
|
39
40
|
exports.startRecording = startRecording;
|
|
40
41
|
exports.stopRecording = stopRecording;
|
|
41
42
|
exports.pauseRecording = pauseRecording;
|
|
@@ -77,6 +78,23 @@ let unexpectedShutdown = false;
|
|
|
77
78
|
let exiting = false;
|
|
78
79
|
let logBuffer = [];
|
|
79
80
|
let logIndex = 0;
|
|
81
|
+
let packageVersion;
|
|
82
|
+
function getPackageVersion() {
|
|
83
|
+
if (packageVersion !== undefined) {
|
|
84
|
+
return packageVersion;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const packagePath = path.join(__dirname, "package.json");
|
|
88
|
+
const packageJson = JSON.parse(fs.readFileSync(packagePath, "utf8"));
|
|
89
|
+
if (typeof packageJson.version === "string") {
|
|
90
|
+
packageVersion = packageJson.version;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
packageVersion = undefined;
|
|
95
|
+
}
|
|
96
|
+
return packageVersion;
|
|
97
|
+
}
|
|
80
98
|
process.on("exit", () => {
|
|
81
99
|
exiting = true;
|
|
82
100
|
if (proc && !proc.killed) {
|
|
@@ -220,7 +238,11 @@ function startProcess() {
|
|
|
220
238
|
catch { }
|
|
221
239
|
}
|
|
222
240
|
if (!envExtra["EXE_NAME"]) {
|
|
223
|
-
envExtra["EXE_NAME"] = path.
|
|
241
|
+
envExtra["EXE_NAME"] = path.parse(process.execPath).name;
|
|
242
|
+
}
|
|
243
|
+
let sdk_version = getPackageVersion();
|
|
244
|
+
if (sdk_version) {
|
|
245
|
+
envExtra["SDK_VERSION"] = sdk_version;
|
|
224
246
|
}
|
|
225
247
|
const gst_dump_dir = process.env.RECALLAI_DESKTOP_SDK_DEV ? path.join(os.tmpdir(), "gst.nocommit") : os.tmpdir();
|
|
226
248
|
if (!fs.existsSync(gst_dump_dir)) {
|
|
@@ -234,7 +256,8 @@ function startProcess() {
|
|
|
234
256
|
proc = (0, child_process_1.spawn)(exe_path, {
|
|
235
257
|
stdio: (process.platform === "darwin" ? ["pipe", "pipe", "pipe", "pipe"] : "pipe"),
|
|
236
258
|
env: {
|
|
237
|
-
|
|
259
|
+
GST_RECALL_DEBUG: "2,transcriber:4,rtewebsocketsink:4,rtewebhooksink:4,audiomixer:4,galleryview:4,dsdks3sink:5",
|
|
260
|
+
GST_DEBUG: "3,GST_CAPS:5,GST_SCHEDULING:5,GST_PADS:5,video-scaler:1,transcriber:4,filebuffereds3sink:4,seekables3sink:4,rtpsession:1,videodecoder:2,basesink:2,webrtcbin:2,websocketsink:4,audiomixer:4,galleryview:4,removeonsinkeosbin:4,fallbackswitch:6,sendmessageonsinkeosbin:4,dsdks3sink:5",
|
|
238
261
|
GST_DEBUG_DUMP_DOT_DIR: gst_dump_dir,
|
|
239
262
|
RUST_BACKTRACE: "1",
|
|
240
263
|
// "DYLD_INSERT_LIBRARIES":"/opt/homebrew/lib/libjemalloc.dylib",
|
|
@@ -371,8 +394,10 @@ async function init(options) {
|
|
|
371
394
|
if (options.restartOnError === undefined) {
|
|
372
395
|
options.restartOnError = true;
|
|
373
396
|
}
|
|
374
|
-
|
|
375
|
-
|
|
397
|
+
const version = getPackageVersion();
|
|
398
|
+
const initConfig = version ? { ...options, sdkVersion: version } : { ...options };
|
|
399
|
+
lastOptions = initConfig;
|
|
400
|
+
await doInit(initConfig);
|
|
376
401
|
return null;
|
|
377
402
|
}
|
|
378
403
|
async function shutdown() {
|
|
@@ -390,6 +415,9 @@ async function shutdown() {
|
|
|
390
415
|
function dumpAXTree(procName) {
|
|
391
416
|
return sendCommand("dumpAXTree", { procName });
|
|
392
417
|
}
|
|
418
|
+
function dumpAllApplications() {
|
|
419
|
+
return sendCommand("dumpAllApplications", {});
|
|
420
|
+
}
|
|
393
421
|
function startRecording(config) {
|
|
394
422
|
return sendCommand("startRecording", { config: JSON.stringify(config) });
|
|
395
423
|
}
|
|
@@ -402,6 +430,9 @@ function pauseRecording({ windowId }) {
|
|
|
402
430
|
function resumeRecording({ windowId }) {
|
|
403
431
|
return sendCommand("resumeRecording", { windowId });
|
|
404
432
|
}
|
|
433
|
+
/**
|
|
434
|
+
* @deprecated Recordings are uploaded based on the upload token config.
|
|
435
|
+
*/
|
|
405
436
|
function uploadRecording({ windowId }) {
|
|
406
437
|
return sendCommand("uploadRecording", { windowId });
|
|
407
438
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@recallai/desktop-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "Recall Desktop SDK",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -20,5 +20,5 @@
|
|
|
20
20
|
"@types/node": "^24.2.0",
|
|
21
21
|
"typescript": "^5.3.3"
|
|
22
22
|
},
|
|
23
|
-
"commit_sha": "
|
|
23
|
+
"commit_sha": "1b16e47f85434833b8313ed393df0f1be5a981a5"
|
|
24
24
|
}
|
package/dummy.node
DELETED
|
File without changes
|