@openclaw/google-meet 2026.7.2-beta.5 → 2026.8.1-beta.2
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-PKAyxCiL.js +325 -0
- package/dist/{cli-GeuAaEIy.js → cli-o7RWVqDb.js} +166 -234
- package/dist/{config-BcaS1BDr.js → config-wBK8loBb.js} +97 -221
- package/dist/{create-af1MDlus.js → create-UHeaRzsH.js} +3 -14
- package/dist/google-meet-platform-adapter-C3J-iFRE.js +791 -0
- package/dist/google-meet-platform-constants-Bs5iAg3E.js +25 -0
- package/dist/index.js +185 -2639
- package/dist/meet-url-BP2Jlvjs.js +17 -0
- package/dist/node-host-BXtXbsMa.js +49 -0
- package/dist/node-invoke-policy-B0gOlLJR.js +24 -0
- package/dist/{oauth-DOfMKlGp.js → oauth-9sUJ68Mw.js} +3 -14
- package/dist/{chrome-create-DMKruRFW.js → plugin-helpers-CfeT1SYY.js} +335 -355
- package/dist/plugin-registration-rSOssQmm.js +141 -0
- package/dist/runtime-B8d1beHo.js +1308 -0
- package/openclaw.plugin.json +8 -47
- package/package.json +4 -4
- /package/node_modules/{core-util-is → jszip/node_modules/core-util-is}/LICENSE +0 -0
- /package/node_modules/{core-util-is → jszip/node_modules/core-util-is}/README.md +0 -0
- /package/node_modules/{core-util-is → jszip/node_modules/core-util-is}/lib/util.js +0 -0
- /package/node_modules/{core-util-is → jszip/node_modules/core-util-is}/package.json +0 -0
- /package/node_modules/{immediate → jszip/node_modules/immediate}/LICENSE.txt +0 -0
- /package/node_modules/{immediate → jszip/node_modules/immediate}/README.md +0 -0
- /package/node_modules/{immediate → jszip/node_modules/immediate}/dist/immediate.js +0 -0
- /package/node_modules/{immediate → jszip/node_modules/immediate}/dist/immediate.min.js +0 -0
- /package/node_modules/{immediate → jszip/node_modules/immediate}/lib/browser.js +0 -0
- /package/node_modules/{immediate → jszip/node_modules/immediate}/lib/index.js +0 -0
- /package/node_modules/{immediate → jszip/node_modules/immediate}/package.json +0 -0
- /package/node_modules/{inherits → jszip/node_modules/inherits}/LICENSE +0 -0
- /package/node_modules/{inherits → jszip/node_modules/inherits}/README.md +0 -0
- /package/node_modules/{inherits → jszip/node_modules/inherits}/inherits.js +0 -0
- /package/node_modules/{inherits → jszip/node_modules/inherits}/inherits_browser.js +0 -0
- /package/node_modules/{inherits → jszip/node_modules/inherits}/package.json +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/.npmignore +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/.travis.yml +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/Makefile +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/README.md +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/component.json +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/index.js +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/package.json +0 -0
- /package/node_modules/{isarray → jszip/node_modules/isarray}/test.js +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/README.md +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/dist/lie.js +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/dist/lie.min.js +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/dist/lie.polyfill.js +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/dist/lie.polyfill.min.js +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/lib/browser.js +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/lib/index.js +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/license.md +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/lie.d.ts +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/package.json +0 -0
- /package/node_modules/{lie → jszip/node_modules/lie}/polyfill.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/CHANGELOG.md +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/LICENSE +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/README.md +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/dist/pako.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/dist/pako.min.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/dist/pako_deflate.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/dist/pako_deflate.min.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/dist/pako_inflate.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/dist/pako_inflate.min.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/index.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/deflate.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/inflate.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/utils/common.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/utils/strings.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/README +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/adler32.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/constants.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/crc32.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/deflate.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/gzheader.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/inffast.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/inflate.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/inftrees.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/messages.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/trees.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/lib/zlib/zstream.js +0 -0
- /package/node_modules/{pako → jszip/node_modules/pako}/package.json +0 -0
- /package/node_modules/{process-nextick-args → jszip/node_modules/process-nextick-args}/index.js +0 -0
- /package/node_modules/{process-nextick-args → jszip/node_modules/process-nextick-args}/license.md +0 -0
- /package/node_modules/{process-nextick-args → jszip/node_modules/process-nextick-args}/package.json +0 -0
- /package/node_modules/{process-nextick-args → jszip/node_modules/process-nextick-args}/readme.md +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/.travis.yml +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/CONTRIBUTING.md +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/GOVERNANCE.md +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/LICENSE +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/README.md +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/doc/wg-meetings/2015-01-30.md +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/duplex-browser.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/duplex.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/_stream_duplex.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/_stream_passthrough.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/_stream_readable.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/_stream_transform.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/_stream_writable.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/internal/streams/BufferList.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/internal/streams/destroy.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/internal/streams/stream-browser.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/lib/internal/streams/stream.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/package.json +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/passthrough.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/readable-browser.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/readable.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/transform.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/writable-browser.js +0 -0
- /package/node_modules/{readable-stream → jszip/node_modules/readable-stream}/writable.js +0 -0
- /package/node_modules/{safe-buffer → jszip/node_modules/safe-buffer}/LICENSE +0 -0
- /package/node_modules/{safe-buffer → jszip/node_modules/safe-buffer}/README.md +0 -0
- /package/node_modules/{safe-buffer → jszip/node_modules/safe-buffer}/index.d.ts +0 -0
- /package/node_modules/{safe-buffer → jszip/node_modules/safe-buffer}/index.js +0 -0
- /package/node_modules/{safe-buffer → jszip/node_modules/safe-buffer}/package.json +0 -0
- /package/node_modules/{setimmediate → jszip/node_modules/setimmediate}/LICENSE.txt +0 -0
- /package/node_modules/{setimmediate → jszip/node_modules/setimmediate}/package.json +0 -0
- /package/node_modules/{setimmediate → jszip/node_modules/setimmediate}/setImmediate.js +0 -0
- /package/node_modules/{string_decoder → jszip/node_modules/string_decoder}/.travis.yml +0 -0
- /package/node_modules/{string_decoder → jszip/node_modules/string_decoder}/LICENSE +0 -0
- /package/node_modules/{string_decoder → jszip/node_modules/string_decoder}/README.md +0 -0
- /package/node_modules/{string_decoder → jszip/node_modules/string_decoder}/lib/string_decoder.js +0 -0
- /package/node_modules/{string_decoder → jszip/node_modules/string_decoder}/package.json +0 -0
- /package/node_modules/{util-deprecate → jszip/node_modules/util-deprecate}/History.md +0 -0
- /package/node_modules/{util-deprecate → jszip/node_modules/util-deprecate}/LICENSE +0 -0
- /package/node_modules/{util-deprecate → jszip/node_modules/util-deprecate}/README.md +0 -0
- /package/node_modules/{util-deprecate → jszip/node_modules/util-deprecate}/browser.js +0 -0
- /package/node_modules/{util-deprecate → jszip/node_modules/util-deprecate}/node.js +0 -0
- /package/node_modules/{util-deprecate → jszip/node_modules/util-deprecate}/package.json +0 -0
- /package/node_modules/{parse-ms → pretty-ms/node_modules/parse-ms}/index.d.ts +0 -0
- /package/node_modules/{parse-ms → pretty-ms/node_modules/parse-ms}/index.js +0 -0
- /package/node_modules/{parse-ms → pretty-ms/node_modules/parse-ms}/license +0 -0
- /package/node_modules/{parse-ms → pretty-ms/node_modules/parse-ms}/package.json +0 -0
- /package/node_modules/{parse-ms → pretty-ms/node_modules/parse-ms}/readme.md +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
|
+
//#region extensions/google-meet/src/meet-url.ts
|
|
3
|
+
function normalizeMeetUrl(input) {
|
|
4
|
+
const raw = normalizeOptionalString(input);
|
|
5
|
+
if (!raw) throw new Error("url required");
|
|
6
|
+
let url;
|
|
7
|
+
try {
|
|
8
|
+
url = new URL(raw);
|
|
9
|
+
} catch {
|
|
10
|
+
throw new Error("url must be a valid Google Meet URL");
|
|
11
|
+
}
|
|
12
|
+
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");
|
|
13
|
+
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");
|
|
14
|
+
return url.toString();
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { normalizeMeetUrl as t };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-Bs5iAg3E.js";
|
|
2
|
+
import { n as DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND, t as DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND } from "./config-wBK8loBb.js";
|
|
3
|
+
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-C3J-iFRE.js";
|
|
4
|
+
import { MeetingPlatformAdapter } from "openclaw/plugin-sdk/meeting-runtime";
|
|
5
|
+
//#region extensions/google-meet/src/node-host.ts
|
|
6
|
+
function normalizeMeetKey(value) {
|
|
7
|
+
if (!value) return;
|
|
8
|
+
try {
|
|
9
|
+
const url = new URL(value);
|
|
10
|
+
if (url.hostname.toLowerCase() !== "meet.google.com") return value;
|
|
11
|
+
return /^\/([a-z]{3}-[a-z]{4}-[a-z]{3})(?:$|[/?#])/i.exec(url.pathname)?.[1]?.toLowerCase() ?? value;
|
|
12
|
+
} catch {
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const googleMeetNodeHost = MeetingPlatformAdapter.createNodeHostHandler({
|
|
17
|
+
commandName: GOOGLE_MEET_NODE_COMMAND,
|
|
18
|
+
displayName: "Google Meet",
|
|
19
|
+
browserLabel: "Meet",
|
|
20
|
+
bridgeIdPrefix: "meet_node_",
|
|
21
|
+
defaultAudioInputCommand: DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND,
|
|
22
|
+
defaultAudioOutputCommand: DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND,
|
|
23
|
+
defaultAudio: {
|
|
24
|
+
backend: "auto",
|
|
25
|
+
bufferBytes: 4096,
|
|
26
|
+
format: "pcm16-24khz"
|
|
27
|
+
},
|
|
28
|
+
meetingLabel: "Google Meet",
|
|
29
|
+
sharePrerequisiteDeadline: true,
|
|
30
|
+
talkBackModes: /* @__PURE__ */ new Set([
|
|
31
|
+
"agent",
|
|
32
|
+
"bidi",
|
|
33
|
+
"realtime"
|
|
34
|
+
]),
|
|
35
|
+
agentMode: "agent",
|
|
36
|
+
normalizeUrl: (url) => GOOGLE_MEET_PLATFORM_ADAPTER.urls.validateAndNormalize(url),
|
|
37
|
+
normalizeMeetingKey: normalizeMeetKey,
|
|
38
|
+
browser: {
|
|
39
|
+
application: "Google Chrome",
|
|
40
|
+
buildProfileArgs: (profile) => ["--args", `--profile-directory=${profile}`],
|
|
41
|
+
openedStatus: "chrome-opened",
|
|
42
|
+
openedNotes: ["Browser page control is handled by OpenClaw browser automation when using chrome-node."]
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
async function handleGoogleMeetNodeHostCommand(paramsJSON) {
|
|
46
|
+
return await googleMeetNodeHost(paramsJSON);
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { handleGoogleMeetNodeHostCommand };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-Bs5iAg3E.js";
|
|
2
|
+
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-C3J-iFRE.js";
|
|
3
|
+
import { createMeetingBrowserNodeInvokePolicy } from "openclaw/plugin-sdk/meeting-runtime";
|
|
4
|
+
//#region extensions/google-meet/src/node-invoke-policy.ts
|
|
5
|
+
const GOOGLE_MEET_CHROME_NODE_COMMAND = GOOGLE_MEET_NODE_COMMAND;
|
|
6
|
+
const START_MODES = /* @__PURE__ */ new Set([
|
|
7
|
+
"agent",
|
|
8
|
+
"bidi",
|
|
9
|
+
"realtime",
|
|
10
|
+
"transcribe"
|
|
11
|
+
]);
|
|
12
|
+
function createGoogleMeetChromeNodeInvokePolicy(config) {
|
|
13
|
+
return createMeetingBrowserNodeInvokePolicy({
|
|
14
|
+
commandName: GOOGLE_MEET_CHROME_NODE_COMMAND,
|
|
15
|
+
displayName: "Google Meet",
|
|
16
|
+
deniedCode: "GOOGLE_MEET_NODE_POLICY_DENIED",
|
|
17
|
+
supportedModes: START_MODES,
|
|
18
|
+
normalizeUrl: (url) => GOOGLE_MEET_PLATFORM_ADAPTER.urls.validateAndNormalize(url),
|
|
19
|
+
useConfiguredSetupCommands: true,
|
|
20
|
+
start: config.chrome
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { GOOGLE_MEET_CHROME_NODE_COMMAND, createGoogleMeetChromeNodeInvokePolicy };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { n as readGoogleApiErrorDetail } from "./google-api-errors-CDUYkIcK.js";
|
|
2
|
+
import { MAX_DATE_TIMESTAMP_MS, resolveDateTimestampMs, resolveExpiresAtMsFromDurationSeconds } from "openclaw/plugin-sdk/number-runtime";
|
|
3
|
+
import { parseOAuthCallbackInput, waitForLocalOAuthCallback } from "openclaw/plugin-sdk/provider-auth-runtime";
|
|
2
4
|
import { readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
|
|
3
5
|
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
4
|
-
import { MAX_DATE_TIMESTAMP_MS, resolveDateTimestampMs, resolveExpiresAtMsFromDurationSeconds } from "openclaw/plugin-sdk/number-runtime";
|
|
5
|
-
import { generateHexPkceVerifierChallenge } from "openclaw/plugin-sdk/provider-auth";
|
|
6
|
-
import { generateOAuthState, parseOAuthCallbackInput, waitForLocalOAuthCallback } from "openclaw/plugin-sdk/provider-auth-runtime";
|
|
7
6
|
//#region extensions/google-meet/src/oauth.ts
|
|
8
7
|
const GOOGLE_MEET_REDIRECT_URI = "http://localhost:8085/oauth2callback";
|
|
9
8
|
const GOOGLE_MEET_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
@@ -119,16 +118,6 @@ async function resolveGoogleMeetAccessToken(params) {
|
|
|
119
118
|
refreshed: true
|
|
120
119
|
};
|
|
121
120
|
}
|
|
122
|
-
function createGoogleMeetPkce() {
|
|
123
|
-
const { verifier, challenge } = generateHexPkceVerifierChallenge();
|
|
124
|
-
return {
|
|
125
|
-
verifier,
|
|
126
|
-
challenge
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
function createGoogleMeetOAuthState() {
|
|
130
|
-
return generateOAuthState();
|
|
131
|
-
}
|
|
132
121
|
function isLocalCallbackListenerError(error) {
|
|
133
122
|
if (!(error instanceof Error)) return false;
|
|
134
123
|
return error.message.includes("EADDRINUSE") || error.message.includes("port") || error.message.includes("listen");
|
|
@@ -167,4 +156,4 @@ async function waitForGoogleMeetAuthCode(params) {
|
|
|
167
156
|
}
|
|
168
157
|
}
|
|
169
158
|
//#endregion
|
|
170
|
-
export { buildGoogleMeetAuthUrl,
|
|
159
|
+
export { buildGoogleMeetAuthUrl, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode };
|