@openclaw/google-meet 2026.7.2-beta.7 → 2026.8.1-beta.3
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-DCcRyaMf.js → cli-Bd63VJ5q.js} +191 -237
- package/dist/{config-BcaS1BDr.js → config-wBK8loBb.js} +97 -221
- package/dist/{create-af1MDlus.js → create-BEDHM6uL.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-C9-Y0Ago.js} +335 -355
- package/dist/plugin-registration-Csi-NdQU.js +131 -0
- package/dist/runtime-B8d1beHo.js +1308 -0
- package/openclaw.plugin.json +15 -47
- package/package.json +4 -6
- 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
|
@@ -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 };
|