@openclaw/google-meet 2026.7.2-beta.7 → 2026.7.33
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/dist/{chrome-create-DMKruRFW.js → .setup/chrome-create-CFNlY-qH.mjs} +153 -132
- package/dist/{cli-DCcRyaMf.js → .setup/cli-DfOl5mwt.mjs} +707 -716
- package/dist/{config-BcaS1BDr.js → .setup/config-DeJhjNWQ.mjs} +95 -76
- package/dist/{create-af1MDlus.js → .setup/create-BVsTTJt1.mjs} +3 -21
- package/dist/{google-api-errors-CDUYkIcK.js → .setup/google-api-errors-BDYXfKRa.mjs} +1 -1
- package/dist/{oauth-DOfMKlGp.js → .setup/oauth-CtVbvmvR.mjs} +4 -3
- package/dist/doctor-contract-api.js +3 -1
- package/dist/index.js +3868 -1818
- package/node_modules/{jszip/node_modules/setimmediate/LICENSE.txt → commander/LICENSE} +10 -8
- package/node_modules/commander/Readme.md +1172 -0
- package/node_modules/commander/index.js +21 -0
- package/node_modules/commander/lib/argument.js +147 -0
- package/node_modules/commander/lib/command.js +2790 -0
- package/node_modules/commander/lib/error.js +36 -0
- package/node_modules/commander/lib/help.js +731 -0
- package/node_modules/commander/lib/option.js +377 -0
- package/node_modules/commander/lib/suggestSimilar.js +99 -0
- package/node_modules/commander/package-support.json +19 -0
- package/node_modules/commander/package.json +64 -0
- package/node_modules/commander/typings/index.d.ts +1113 -0
- package/node_modules/typebox/build/compile/validator.d.mts +4 -1
- package/node_modules/typebox/build/guard/guard.d.mts +1 -1
- package/node_modules/typebox/build/guard/guard.mjs +2 -5
- package/node_modules/typebox/build/guard/string.mjs +4 -16
- package/node_modules/typebox/build/schema/engine/_functions.mjs +15 -34
- package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
- package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -8
- package/node_modules/typebox/build/typebox.d.mts +1 -1
- package/node_modules/typebox/build/typebox.mjs +1 -1
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +32 -29
- package/openclaw.plugin.json +3 -4
- package/package.json +7 -9
- package/dist/cli-metadata.js +0 -13
- package/dist/cli-output-mode-BwH_6tH8.js +0 -28
- package/node_modules/jszip/.codeclimate.yml +0 -16
- package/node_modules/jszip/.editorconfig +0 -8
- package/node_modules/jszip/.eslintrc.js +0 -43
- package/node_modules/jszip/.github/workflows/pr.yaml +0 -58
- package/node_modules/jszip/.jekyll-metadata +0 -0
- package/node_modules/jszip/.travis.yml +0 -17
- package/node_modules/jszip/CHANGES.md +0 -204
- package/node_modules/jszip/LICENSE.markdown +0 -651
- package/node_modules/jszip/README.markdown +0 -33
- package/node_modules/jszip/deps.js +0 -37
- package/node_modules/jszip/dist/jszip.js +0 -11577
- package/node_modules/jszip/dist/jszip.min.js +0 -13
- package/node_modules/jszip/graph.svg +0 -601
- package/node_modules/jszip/index.d.ts +0 -330
- package/node_modules/jszip/lib/base64.js +0 -106
- package/node_modules/jszip/lib/compressedObject.js +0 -74
- package/node_modules/jszip/lib/compressions.js +0 -14
- package/node_modules/jszip/lib/crc32.js +0 -77
- package/node_modules/jszip/lib/defaults.js +0 -11
- package/node_modules/jszip/lib/external.js +0 -18
- package/node_modules/jszip/lib/flate.js +0 -85
- package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
- package/node_modules/jszip/lib/generate/index.js +0 -57
- package/node_modules/jszip/lib/index.js +0 -55
- package/node_modules/jszip/lib/license_header.js +0 -11
- package/node_modules/jszip/lib/load.js +0 -88
- package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
- package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
- package/node_modules/jszip/lib/nodejsUtils.js +0 -57
- package/node_modules/jszip/lib/object.js +0 -384
- package/node_modules/jszip/lib/readable-stream-browser.js +0 -10
- package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
- package/node_modules/jszip/lib/reader/DataReader.js +0 -116
- package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
- package/node_modules/jszip/lib/reader/StringReader.js +0 -38
- package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
- package/node_modules/jszip/lib/reader/readerFor.js +0 -28
- package/node_modules/jszip/lib/signature.js +0 -7
- package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
- package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
- package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
- package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
- package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
- package/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
- package/node_modules/jszip/lib/support.js +0 -38
- package/node_modules/jszip/lib/utf8.js +0 -275
- package/node_modules/jszip/lib/utils.js +0 -501
- package/node_modules/jszip/lib/zipEntries.js +0 -261
- package/node_modules/jszip/lib/zipEntry.js +0 -293
- package/node_modules/jszip/lib/zipObject.js +0 -133
- package/node_modules/jszip/node_modules/core-util-is/LICENSE +0 -19
- package/node_modules/jszip/node_modules/core-util-is/README.md +0 -3
- package/node_modules/jszip/node_modules/core-util-is/lib/util.js +0 -107
- package/node_modules/jszip/node_modules/core-util-is/package.json +0 -38
- package/node_modules/jszip/node_modules/immediate/LICENSE.txt +0 -20
- package/node_modules/jszip/node_modules/immediate/README.md +0 -93
- package/node_modules/jszip/node_modules/immediate/dist/immediate.js +0 -75
- package/node_modules/jszip/node_modules/immediate/dist/immediate.min.js +0 -1
- package/node_modules/jszip/node_modules/immediate/lib/browser.js +0 -69
- package/node_modules/jszip/node_modules/immediate/lib/index.js +0 -73
- package/node_modules/jszip/node_modules/immediate/package.json +0 -42
- package/node_modules/jszip/node_modules/inherits/LICENSE +0 -16
- package/node_modules/jszip/node_modules/inherits/README.md +0 -42
- package/node_modules/jszip/node_modules/inherits/inherits.js +0 -9
- package/node_modules/jszip/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/jszip/node_modules/inherits/package.json +0 -29
- package/node_modules/jszip/node_modules/isarray/.npmignore +0 -1
- package/node_modules/jszip/node_modules/isarray/.travis.yml +0 -4
- package/node_modules/jszip/node_modules/isarray/Makefile +0 -6
- package/node_modules/jszip/node_modules/isarray/README.md +0 -60
- package/node_modules/jszip/node_modules/isarray/component.json +0 -19
- package/node_modules/jszip/node_modules/isarray/index.js +0 -5
- package/node_modules/jszip/node_modules/isarray/package.json +0 -45
- package/node_modules/jszip/node_modules/isarray/test.js +0 -20
- package/node_modules/jszip/node_modules/lie/README.md +0 -62
- package/node_modules/jszip/node_modules/lie/dist/lie.js +0 -350
- package/node_modules/jszip/node_modules/lie/dist/lie.min.js +0 -1
- package/node_modules/jszip/node_modules/lie/dist/lie.polyfill.js +0 -358
- package/node_modules/jszip/node_modules/lie/dist/lie.polyfill.min.js +0 -1
- package/node_modules/jszip/node_modules/lie/lib/browser.js +0 -273
- package/node_modules/jszip/node_modules/lie/lib/index.js +0 -298
- package/node_modules/jszip/node_modules/lie/license.md +0 -7
- package/node_modules/jszip/node_modules/lie/lie.d.ts +0 -244
- package/node_modules/jszip/node_modules/lie/package.json +0 -69
- package/node_modules/jszip/node_modules/lie/polyfill.js +0 -4
- package/node_modules/jszip/node_modules/pako/CHANGELOG.md +0 -164
- package/node_modules/jszip/node_modules/pako/LICENSE +0 -21
- package/node_modules/jszip/node_modules/pako/README.md +0 -191
- package/node_modules/jszip/node_modules/pako/dist/pako.js +0 -6818
- package/node_modules/jszip/node_modules/pako/dist/pako.min.js +0 -1
- package/node_modules/jszip/node_modules/pako/dist/pako_deflate.js +0 -3997
- package/node_modules/jszip/node_modules/pako/dist/pako_deflate.min.js +0 -1
- package/node_modules/jszip/node_modules/pako/dist/pako_inflate.js +0 -3300
- package/node_modules/jszip/node_modules/pako/dist/pako_inflate.min.js +0 -1
- package/node_modules/jszip/node_modules/pako/index.js +0 -14
- package/node_modules/jszip/node_modules/pako/lib/deflate.js +0 -400
- package/node_modules/jszip/node_modules/pako/lib/inflate.js +0 -423
- package/node_modules/jszip/node_modules/pako/lib/utils/common.js +0 -105
- package/node_modules/jszip/node_modules/pako/lib/utils/strings.js +0 -187
- package/node_modules/jszip/node_modules/pako/lib/zlib/README +0 -59
- package/node_modules/jszip/node_modules/pako/lib/zlib/adler32.js +0 -51
- package/node_modules/jszip/node_modules/pako/lib/zlib/constants.js +0 -68
- package/node_modules/jszip/node_modules/pako/lib/zlib/crc32.js +0 -59
- package/node_modules/jszip/node_modules/pako/lib/zlib/deflate.js +0 -1874
- package/node_modules/jszip/node_modules/pako/lib/zlib/gzheader.js +0 -58
- package/node_modules/jszip/node_modules/pako/lib/zlib/inffast.js +0 -345
- package/node_modules/jszip/node_modules/pako/lib/zlib/inflate.js +0 -1556
- package/node_modules/jszip/node_modules/pako/lib/zlib/inftrees.js +0 -343
- package/node_modules/jszip/node_modules/pako/lib/zlib/messages.js +0 -32
- package/node_modules/jszip/node_modules/pako/lib/zlib/trees.js +0 -1222
- package/node_modules/jszip/node_modules/pako/lib/zlib/zstream.js +0 -47
- package/node_modules/jszip/node_modules/pako/package.json +0 -44
- package/node_modules/jszip/node_modules/process-nextick-args/index.js +0 -45
- package/node_modules/jszip/node_modules/process-nextick-args/license.md +0 -19
- package/node_modules/jszip/node_modules/process-nextick-args/package.json +0 -25
- package/node_modules/jszip/node_modules/process-nextick-args/readme.md +0 -18
- package/node_modules/jszip/node_modules/readable-stream/.travis.yml +0 -34
- package/node_modules/jszip/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/jszip/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/jszip/node_modules/readable-stream/LICENSE +0 -47
- package/node_modules/jszip/node_modules/readable-stream/README.md +0 -58
- package/node_modules/jszip/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/node_modules/jszip/node_modules/readable-stream/duplex-browser.js +0 -1
- package/node_modules/jszip/node_modules/readable-stream/duplex.js +0 -1
- package/node_modules/jszip/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/node_modules/jszip/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/node_modules/jszip/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/node_modules/jszip/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/node_modules/jszip/node_modules/readable-stream/lib/_stream_writable.js +0 -685
- package/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
- package/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
- package/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/jszip/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/jszip/node_modules/readable-stream/package.json +0 -52
- package/node_modules/jszip/node_modules/readable-stream/passthrough.js +0 -1
- package/node_modules/jszip/node_modules/readable-stream/readable-browser.js +0 -7
- package/node_modules/jszip/node_modules/readable-stream/readable.js +0 -19
- package/node_modules/jszip/node_modules/readable-stream/transform.js +0 -1
- package/node_modules/jszip/node_modules/readable-stream/writable-browser.js +0 -1
- package/node_modules/jszip/node_modules/readable-stream/writable.js +0 -8
- package/node_modules/jszip/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/jszip/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/jszip/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/jszip/node_modules/safe-buffer/index.js +0 -62
- package/node_modules/jszip/node_modules/safe-buffer/package.json +0 -37
- package/node_modules/jszip/node_modules/setimmediate/package.json +0 -30
- package/node_modules/jszip/node_modules/setimmediate/setImmediate.js +0 -186
- package/node_modules/jszip/node_modules/string_decoder/.travis.yml +0 -50
- package/node_modules/jszip/node_modules/string_decoder/LICENSE +0 -48
- package/node_modules/jszip/node_modules/string_decoder/README.md +0 -47
- package/node_modules/jszip/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/node_modules/jszip/node_modules/string_decoder/package.json +0 -31
- package/node_modules/jszip/node_modules/util-deprecate/History.md +0 -16
- package/node_modules/jszip/node_modules/util-deprecate/LICENSE +0 -24
- package/node_modules/jszip/node_modules/util-deprecate/README.md +0 -53
- package/node_modules/jszip/node_modules/util-deprecate/browser.js +0 -67
- package/node_modules/jszip/node_modules/util-deprecate/node.js +0 -6
- package/node_modules/jszip/node_modules/util-deprecate/package.json +0 -27
- package/node_modules/jszip/package.json +0 -67
- package/node_modules/jszip/sponsors.md +0 -21
- package/node_modules/jszip/tsconfig.json +0 -101
- package/node_modules/jszip/vendor/FileSaver.js +0 -247
- package/node_modules/pretty-ms/index.d.ts +0 -157
- package/node_modules/pretty-ms/index.js +0 -149
- package/node_modules/pretty-ms/license +0 -9
- package/node_modules/pretty-ms/node_modules/parse-ms/index.d.ts +0 -30
- package/node_modules/pretty-ms/node_modules/parse-ms/index.js +0 -45
- package/node_modules/pretty-ms/node_modules/parse-ms/license +0 -9
- package/node_modules/pretty-ms/node_modules/parse-ms/package.json +0 -47
- package/node_modules/pretty-ms/node_modules/parse-ms/readme.md +0 -46
- package/node_modules/pretty-ms/package.json +0 -55
- package/node_modules/pretty-ms/readme.md +0 -179
|
@@ -1,32 +1,13 @@
|
|
|
1
|
-
import { t as googleApiError } from "./google-api-errors-
|
|
1
|
+
import { t as googleApiError } from "./google-api-errors-BDYXfKRa.mjs";
|
|
2
2
|
import { asRecord, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
|
|
4
4
|
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
5
|
-
import { buildMeetingSoxAudioCommands } from "openclaw/plugin-sdk/meeting-runtime";
|
|
6
5
|
import { addTimerTimeoutGraceMs, resolvePositiveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
7
6
|
import { REALTIME_VOICE_AGENT_CONSULT_TOOL_NAME, resolveRealtimeVoiceAgentConsultToolPolicy } from "openclaw/plugin-sdk/realtime-voice";
|
|
8
|
-
//#region extensions/google-meet/src/meet-url.ts
|
|
9
|
-
function normalizeOptionalString$1(value) {
|
|
10
|
-
if (typeof value !== "string") return;
|
|
11
|
-
return value.trim() || void 0;
|
|
12
|
-
}
|
|
13
|
-
function normalizeMeetUrl(input) {
|
|
14
|
-
const raw = normalizeOptionalString$1(input);
|
|
15
|
-
if (!raw) throw new Error("url required");
|
|
16
|
-
let url;
|
|
17
|
-
try {
|
|
18
|
-
url = new URL(raw);
|
|
19
|
-
} catch {
|
|
20
|
-
throw new Error("url must be a valid Google Meet URL");
|
|
21
|
-
}
|
|
22
|
-
if (url.protocol !== "https:" || url.hostname.toLowerCase() !== "meet.google.com" || url.port || url.username || url.password) throw new Error("url must be an explicit https://meet.google.com/... URL");
|
|
23
|
-
if (!/^\/[a-z]{3}-[a-z]{4}-[a-z]{3}(?:$|[/?#])/i.test(url.pathname)) throw new Error("url must include a Google Meet meeting code");
|
|
24
|
-
return url.toString();
|
|
25
|
-
}
|
|
26
|
-
//#endregion
|
|
27
7
|
//#region extensions/google-meet/src/calendar.ts
|
|
28
8
|
const GOOGLE_CALENDAR_API_BASE_URL = "https://www.googleapis.com/calendar/v3";
|
|
29
9
|
const GOOGLE_CALENDAR_API_HOST = "www.googleapis.com";
|
|
10
|
+
const GOOGLE_MEET_URL_HOST = "meet.google.com";
|
|
30
11
|
const GOOGLE_CALENDAR_EVENTS_SCOPE = "https://www.googleapis.com/auth/calendar.events.readonly";
|
|
31
12
|
const GOOGLE_CALENDAR_REQUEST_TIMEOUT_MS = 3e4;
|
|
32
13
|
function appendQuery(url, query) {
|
|
@@ -34,40 +15,24 @@ function appendQuery(url, query) {
|
|
|
34
15
|
for (const [key, value] of Object.entries(query)) if (value !== void 0) parsed.searchParams.set(key, String(value));
|
|
35
16
|
return parsed.toString();
|
|
36
17
|
}
|
|
37
|
-
function
|
|
38
|
-
if (!value?.trim()) return;
|
|
18
|
+
function isGoogleMeetUri(value) {
|
|
19
|
+
if (!value?.trim()) return false;
|
|
39
20
|
try {
|
|
40
|
-
|
|
41
|
-
if (url.protocol !== "http:" && url.protocol !== "https:") return;
|
|
42
|
-
if (url.hostname.toLowerCase() !== "meet.google.com" || url.port || url.username || url.password) return;
|
|
43
|
-
url.protocol = "https:";
|
|
44
|
-
return normalizeMeetUrl(url.toString());
|
|
21
|
+
return new URL(value).hostname === GOOGLE_MEET_URL_HOST;
|
|
45
22
|
} catch {
|
|
46
|
-
return;
|
|
23
|
+
return false;
|
|
47
24
|
}
|
|
48
25
|
}
|
|
49
26
|
function extractGoogleMeetUriFromText(value) {
|
|
50
|
-
|
|
51
|
-
for (const match of matches ?? []) {
|
|
52
|
-
const uri = normalizeGoogleMeetCalendarUri(match[0]);
|
|
53
|
-
if (uri) return uri;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function findFirstGoogleMeetCalendarUri(entryPoints, predicate = () => true) {
|
|
57
|
-
for (const entry of entryPoints) {
|
|
58
|
-
if (!predicate(entry)) continue;
|
|
59
|
-
const uri = normalizeGoogleMeetCalendarUri(entry.uri);
|
|
60
|
-
if (uri) return uri;
|
|
61
|
-
}
|
|
27
|
+
return (value?.match(/https:\/\/meet\.google\.com\/[a-z0-9-]+/i))?.[0];
|
|
62
28
|
}
|
|
63
29
|
function extractGoogleMeetUriFromCalendarEvent(event) {
|
|
64
|
-
|
|
65
|
-
if (hangoutLink) return hangoutLink;
|
|
30
|
+
if (isGoogleMeetUri(event.hangoutLink)) return event.hangoutLink;
|
|
66
31
|
const entryPoints = event.conferenceData?.entryPoints ?? [];
|
|
67
|
-
const
|
|
68
|
-
if (
|
|
69
|
-
const
|
|
70
|
-
if (
|
|
32
|
+
const videoEntry = entryPoints.find((entry) => entry.entryPointType === "video" && isGoogleMeetUri(entry.uri));
|
|
33
|
+
if (videoEntry?.uri) return videoEntry.uri;
|
|
34
|
+
const meetEntry = entryPoints.find((entry) => isGoogleMeetUri(entry.uri));
|
|
35
|
+
if (meetEntry?.uri) return meetEntry.uri;
|
|
71
36
|
return extractGoogleMeetUriFromText(event.location) ?? extractGoogleMeetUriFromText(event.description);
|
|
72
37
|
}
|
|
73
38
|
function buildGoogleMeetCalendarDayWindow(now = /* @__PURE__ */ new Date()) {
|
|
@@ -91,7 +56,7 @@ function rankCalendarEvent(event, nowMs) {
|
|
|
91
56
|
const endMs = parseCalendarEventTime(event.end) ?? startMs;
|
|
92
57
|
if (startMs <= nowMs && endMs >= nowMs) return 0;
|
|
93
58
|
if (startMs > nowMs) return startMs - nowMs;
|
|
94
|
-
return nowMs - startMs +
|
|
59
|
+
return nowMs - startMs + 2592e6;
|
|
95
60
|
}
|
|
96
61
|
function chooseBestMeetCalendarEvent(events, now) {
|
|
97
62
|
const nowMs = now.getTime();
|
|
@@ -181,31 +146,85 @@ const SOX_DEFAULT_BUFFER_BYTES = 8192;
|
|
|
181
146
|
const SOX_MIN_BUFFER_BYTES = 17;
|
|
182
147
|
const DEFAULT_GOOGLE_MEET_AUDIO_BUFFER_BYTES = SOX_DEFAULT_BUFFER_BYTES / 2;
|
|
183
148
|
const PLAIN_DECIMAL_NUMBER_RE = /^\d+(?:\.\d+)?$/;
|
|
184
|
-
function
|
|
185
|
-
return
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
149
|
+
function withSoxBuffer(command, bufferBytes) {
|
|
150
|
+
return [
|
|
151
|
+
command[0] ?? "sox",
|
|
152
|
+
"-q",
|
|
153
|
+
"--buffer",
|
|
154
|
+
String(bufferBytes),
|
|
155
|
+
...command.slice(2)
|
|
156
|
+
];
|
|
157
|
+
}
|
|
158
|
+
const DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE = [
|
|
159
|
+
"sox",
|
|
160
|
+
"-q",
|
|
161
|
+
"-t",
|
|
162
|
+
"coreaudio",
|
|
163
|
+
"BlackHole 2ch",
|
|
164
|
+
"-t",
|
|
165
|
+
"raw",
|
|
166
|
+
"-r",
|
|
167
|
+
"24000",
|
|
168
|
+
"-c",
|
|
169
|
+
"1",
|
|
170
|
+
"-e",
|
|
171
|
+
"signed-integer",
|
|
172
|
+
"-b",
|
|
173
|
+
"16",
|
|
174
|
+
"-L",
|
|
175
|
+
"-"
|
|
176
|
+
];
|
|
177
|
+
const DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE = [
|
|
178
|
+
"sox",
|
|
179
|
+
"-q",
|
|
180
|
+
"-t",
|
|
181
|
+
"raw",
|
|
182
|
+
"-r",
|
|
183
|
+
"24000",
|
|
184
|
+
"-c",
|
|
185
|
+
"1",
|
|
186
|
+
"-e",
|
|
187
|
+
"signed-integer",
|
|
188
|
+
"-b",
|
|
189
|
+
"16",
|
|
190
|
+
"-L",
|
|
191
|
+
"-",
|
|
192
|
+
"-t",
|
|
193
|
+
"coreaudio",
|
|
194
|
+
"BlackHole 2ch"
|
|
195
|
+
];
|
|
196
|
+
const LEGACY_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE = [
|
|
197
|
+
"rec",
|
|
198
|
+
"-q",
|
|
199
|
+
"-t",
|
|
200
|
+
"raw",
|
|
201
|
+
"-r",
|
|
202
|
+
"8000",
|
|
203
|
+
"-c",
|
|
204
|
+
"1",
|
|
205
|
+
"-e",
|
|
206
|
+
"mu-law",
|
|
207
|
+
"-b",
|
|
208
|
+
"8",
|
|
209
|
+
"-"
|
|
210
|
+
];
|
|
211
|
+
const LEGACY_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE = [
|
|
212
|
+
"play",
|
|
213
|
+
"-q",
|
|
214
|
+
"-t",
|
|
215
|
+
"raw",
|
|
216
|
+
"-r",
|
|
217
|
+
"8000",
|
|
218
|
+
"-c",
|
|
219
|
+
"1",
|
|
220
|
+
"-e",
|
|
221
|
+
"mu-law",
|
|
222
|
+
"-b",
|
|
223
|
+
"8",
|
|
224
|
+
"-"
|
|
225
|
+
];
|
|
226
|
+
const DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND = withSoxBuffer(DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE, DEFAULT_GOOGLE_MEET_AUDIO_BUFFER_BYTES);
|
|
227
|
+
const DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND = withSoxBuffer(DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE, DEFAULT_GOOGLE_MEET_AUDIO_BUFFER_BYTES);
|
|
209
228
|
const DEFAULT_GOOGLE_MEET_CHROME_AUDIO_FORMAT = "pcm16-24khz";
|
|
210
229
|
const DEFAULT_GOOGLE_MEET_BARGE_IN_RMS_THRESHOLD = 650;
|
|
211
230
|
const DEFAULT_GOOGLE_MEET_BARGE_IN_PEAK_THRESHOLD = 2500;
|
|
@@ -352,10 +371,10 @@ function resolveAudioBufferBytes(value, fallback) {
|
|
|
352
371
|
return Math.max(SOX_MIN_BUFFER_BYTES, Math.trunc(number));
|
|
353
372
|
}
|
|
354
373
|
function defaultAudioInputCommand(format, bufferBytes) {
|
|
355
|
-
return
|
|
374
|
+
return withSoxBuffer(format === "g711-ulaw-8khz" ? LEGACY_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE : DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE, bufferBytes);
|
|
356
375
|
}
|
|
357
376
|
function defaultAudioOutputCommand(format, bufferBytes) {
|
|
358
|
-
return
|
|
377
|
+
return withSoxBuffer(format === "g711-ulaw-8khz" ? LEGACY_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE : DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE, bufferBytes);
|
|
359
378
|
}
|
|
360
379
|
function resolveGoogleMeetConfig(input) {
|
|
361
380
|
return resolveGoogleMeetConfigWithEnv(input);
|
|
@@ -447,4 +466,4 @@ function resolveGoogleMeetConfigWithEnv(input, env = process.env) {
|
|
|
447
466
|
};
|
|
448
467
|
}
|
|
449
468
|
//#endregion
|
|
450
|
-
export { buildGoogleMeetCalendarDayWindow as a,
|
|
469
|
+
export { buildGoogleMeetCalendarDayWindow as a, resolveGoogleMeetGatewayOperationTimeoutMs as i, DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND as n, findGoogleMeetCalendarEvent as o, resolveGoogleMeetConfig as r, listGoogleMeetCalendarEvents as s, DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND as t };
|
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { resolveGoogleMeetAccessToken } from "./oauth-
|
|
1
|
+
import { f as createGoogleMeetSpace, t as createMeetWithBrowserProxyOnNode } from "./chrome-create-CFNlY-qH.mjs";
|
|
2
|
+
import { resolveGoogleMeetAccessToken } from "./oauth-CtVbvmvR.mjs";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
|
-
//#region \0rolldown/runtime.js
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __exportAll = (all, no_symbols) => {
|
|
7
|
-
let target = {};
|
|
8
|
-
for (var name in all) __defProp(target, name, {
|
|
9
|
-
get: all[name],
|
|
10
|
-
enumerable: true
|
|
11
|
-
});
|
|
12
|
-
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
13
|
-
return target;
|
|
14
|
-
};
|
|
15
|
-
//#endregion
|
|
16
4
|
//#region extensions/google-meet/src/create.ts
|
|
17
|
-
var create_exports = /* @__PURE__ */ __exportAll({
|
|
18
|
-
createAndJoinMeetFromParams: () => createAndJoinMeetFromParams,
|
|
19
|
-
createMeetFromParams: () => createMeetFromParams,
|
|
20
|
-
hasCreateSpaceConfigInput: () => hasCreateSpaceConfigInput,
|
|
21
|
-
resolveCreateSpaceConfig: () => resolveCreateSpaceConfig
|
|
22
|
-
});
|
|
23
5
|
function normalizeTransport(value) {
|
|
24
6
|
return value === "chrome" || value === "chrome-node" || value === "twilio" ? value : void 0;
|
|
25
7
|
}
|
|
@@ -124,4 +106,4 @@ async function createAndJoinMeetFromParams(params) {
|
|
|
124
106
|
};
|
|
125
107
|
}
|
|
126
108
|
//#endregion
|
|
127
|
-
export {
|
|
109
|
+
export { createAndJoinMeetFromParams, createMeetFromParams, hasCreateSpaceConfigInput, resolveCreateSpaceConfig };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
|
|
2
2
|
//#region extensions/google-meet/src/google-api-errors.ts
|
|
3
3
|
const REAUTH_HINT = "Re-run `openclaw googlemeet auth login` and store the refreshed oauth block.";
|
|
4
|
-
const GOOGLE_API_ERROR_BODY_LIMIT_BYTES =
|
|
4
|
+
const GOOGLE_API_ERROR_BODY_LIMIT_BYTES = 8192;
|
|
5
5
|
function scopeText(scopes) {
|
|
6
6
|
return scopes.map((scope) => `\`${scope}\``).join(", ");
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as readGoogleApiErrorDetail } from "./google-api-errors-
|
|
1
|
+
import { n as readGoogleApiErrorDetail } from "./google-api-errors-BDYXfKRa.mjs";
|
|
2
2
|
import { readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
|
|
3
3
|
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
4
4
|
import { MAX_DATE_TIMESTAMP_MS, resolveDateTimestampMs, resolveExpiresAtMsFromDurationSeconds } from "openclaw/plugin-sdk/number-runtime";
|
|
@@ -10,7 +10,7 @@ const GOOGLE_MEET_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
|
10
10
|
const GOOGLE_MEET_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
11
11
|
const GOOGLE_MEET_TOKEN_HOST = "oauth2.googleapis.com";
|
|
12
12
|
const GOOGLE_MEET_DEFAULT_TOKEN_LIFETIME_SECONDS = 3600;
|
|
13
|
-
const GOOGLE_OAUTH_TOKEN_JSON_MAX_BYTES =
|
|
13
|
+
const GOOGLE_OAUTH_TOKEN_JSON_MAX_BYTES = 262144;
|
|
14
14
|
const GOOGLE_OAUTH_REQUEST_TIMEOUT_MS = 3e4;
|
|
15
15
|
const GOOGLE_MEET_SCOPES = [
|
|
16
16
|
"https://www.googleapis.com/auth/meetings.space.created",
|
|
@@ -134,7 +134,8 @@ function isLocalCallbackListenerError(error) {
|
|
|
134
134
|
return error.message.includes("EADDRINUSE") || error.message.includes("port") || error.message.includes("listen");
|
|
135
135
|
}
|
|
136
136
|
async function readManualGoogleMeetAuthCode(params) {
|
|
137
|
-
const
|
|
137
|
+
const input = await params.promptInput("Paste the full redirect URL here: ");
|
|
138
|
+
const parsed = parseOAuthCallbackInput(input, {
|
|
138
139
|
missingState: "Missing 'state' parameter. Paste the full redirect URL.",
|
|
139
140
|
invalidInput: "Paste the full redirect URL, not just the code."
|
|
140
141
|
});
|
|
@@ -20,7 +20,9 @@ const legacyConfigRules = [{
|
|
|
20
20
|
match: hasLegacyGoogleRealtimeProvider
|
|
21
21
|
}];
|
|
22
22
|
function migrateGoogleMeetLegacyRealtimeProvider(config) {
|
|
23
|
-
const
|
|
23
|
+
const rawEntry = asNullableRecord(config.plugins?.entries?.["google-meet"]);
|
|
24
|
+
const rawPluginConfig = asNullableRecord(rawEntry?.config);
|
|
25
|
+
const rawRealtime = asNullableRecord(rawPluginConfig?.realtime);
|
|
24
26
|
if (!rawRealtime || !hasLegacyGoogleRealtimeProvider(rawRealtime)) return null;
|
|
25
27
|
const nextConfig = structuredClone(config);
|
|
26
28
|
const nextPlugins = asNullableRecord(nextConfig.plugins) ?? {};
|