@openclaw/google-meet 2026.6.11 → 2026.6.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-DWEeDc7N.js → chrome-create-C48OmpbM.js} +2 -1
- package/dist/{cli-BnEq0tBJ.js → cli-Cn8kxkfr.js} +3 -3
- package/dist/{create-C7GxW7BL.js → create-C0XRpM4Z.js} +2 -2
- package/dist/index.js +18 -17
- package/dist/{oauth-BzOU5Ztq.js → oauth-DK1mwF2i.js} +32 -15
- package/npm-shrinkwrap.json +3 -3
- package/package.json +4 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { t as googleApiError } from "./google-api-errors-CDUYkIcK.js";
|
|
2
2
|
import { uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
4
|
+
import { readProviderTextResponse } from "openclaw/plugin-sdk/provider-http";
|
|
4
5
|
import { addTimerTimeoutGraceMs } from "openclaw/plugin-sdk/number-runtime";
|
|
5
6
|
import { sleep } from "openclaw/plugin-sdk/runtime-env";
|
|
6
7
|
//#region extensions/google-meet/src/drive.ts
|
|
@@ -40,7 +41,7 @@ async function exportGoogleDriveDocumentText(params) {
|
|
|
40
41
|
prefix: "Google Drive files.export",
|
|
41
42
|
scopes: [GOOGLE_DRIVE_MEET_SCOPE]
|
|
42
43
|
});
|
|
43
|
-
return await response.
|
|
44
|
+
return await readProviderTextResponse(response, "Google Drive files.export");
|
|
44
45
|
} finally {
|
|
45
46
|
await release();
|
|
46
47
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as buildGoogleMeetCalendarDayWindow, i as resolveGoogleMeetGatewayOperationTimeoutMs, o as findGoogleMeetCalendarEvent, s as listGoogleMeetCalendarEvents } from "./config-D_YKxh0m.js";
|
|
2
|
-
import { d as createGoogleMeetSpace, f as endGoogleMeetActiveConference, g as fetchLatestGoogleMeetConferenceRecord, h as fetchGoogleMeetSpace, m as fetchGoogleMeetAttendance, p as fetchGoogleMeetArtifacts, u as buildGoogleMeetPreflightReport } from "./chrome-create-
|
|
3
|
-
import { buildGoogleMeetAuthUrl, createGoogleMeetOAuthState, createGoogleMeetPkce, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode } from "./oauth-
|
|
4
|
-
import { hasCreateSpaceConfigInput, resolveCreateSpaceConfig } from "./create-
|
|
2
|
+
import { d as createGoogleMeetSpace, f as endGoogleMeetActiveConference, g as fetchLatestGoogleMeetConferenceRecord, h as fetchGoogleMeetSpace, m as fetchGoogleMeetAttendance, p as fetchGoogleMeetArtifacts, u as buildGoogleMeetPreflightReport } from "./chrome-create-C48OmpbM.js";
|
|
3
|
+
import { buildGoogleMeetAuthUrl, createGoogleMeetOAuthState, createGoogleMeetPkce, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode } from "./oauth-DK1mwF2i.js";
|
|
4
|
+
import { hasCreateSpaceConfigInput, resolveCreateSpaceConfig } from "./create-C0XRpM4Z.js";
|
|
5
5
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
6
6
|
import { callGatewayFromCli } from "openclaw/plugin-sdk/gateway-runtime";
|
|
7
7
|
import { clampTimerTimeoutMs, parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as createGoogleMeetSpace, t as createMeetWithBrowserProxyOnNode } from "./chrome-create-
|
|
2
|
-
import { resolveGoogleMeetAccessToken } from "./oauth-
|
|
1
|
+
import { d as createGoogleMeetSpace, t as createMeetWithBrowserProxyOnNode } from "./chrome-create-C48OmpbM.js";
|
|
2
|
+
import { resolveGoogleMeetAccessToken } from "./oauth-DK1mwF2i.js";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
//#region extensions/google-meet/src/create.ts
|
|
5
5
|
function normalizeTransport(value) {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as buildGoogleMeetCalendarDayWindow, i as resolveGoogleMeetGatewayOperationTimeoutMs, n as DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND, o as findGoogleMeetCalendarEvent, r as resolveGoogleMeetConfig, s as listGoogleMeetCalendarEvents, t as DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND } from "./config-D_YKxh0m.js";
|
|
2
|
-
import { a as isSameMeetUrlForReuse, c as resolveChromeNode, f as endGoogleMeetActiveConference, g as fetchLatestGoogleMeetConferenceRecord, h as fetchGoogleMeetSpace, i as callBrowserProxyOnNode, l as resolveChromeNodeInfo, m as fetchGoogleMeetAttendance, n as isGoogleMeetBrowserManualActionError, o as normalizeMeetUrlForReuse, p as fetchGoogleMeetArtifacts, r as asBrowserTabs, s as readBrowserTab, t as createMeetWithBrowserProxyOnNode, u as buildGoogleMeetPreflightReport } from "./chrome-create-
|
|
2
|
+
import { a as isSameMeetUrlForReuse, c as resolveChromeNode, f as endGoogleMeetActiveConference, g as fetchLatestGoogleMeetConferenceRecord, h as fetchGoogleMeetSpace, i as callBrowserProxyOnNode, l as resolveChromeNodeInfo, m as fetchGoogleMeetAttendance, n as isGoogleMeetBrowserManualActionError, o as normalizeMeetUrlForReuse, p as fetchGoogleMeetArtifacts, r as asBrowserTabs, s as readBrowserTab, t as createMeetWithBrowserProxyOnNode, u as buildGoogleMeetPreflightReport } from "./chrome-create-C48OmpbM.js";
|
|
3
3
|
import { optionalPositiveIntegerSchema, readPositiveIntegerParam } from "openclaw/plugin-sdk/channel-actions";
|
|
4
4
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
5
5
|
import { ErrorCodes, GatewayClient, callGatewayFromCli, errorShape, startGatewayClientWhenEventLoopReady } from "openclaw/plugin-sdk/gateway-runtime";
|
|
@@ -75,23 +75,21 @@ function wake(session) {
|
|
|
75
75
|
for (const waiter of waiters) waiter();
|
|
76
76
|
}
|
|
77
77
|
function stopSession(session) {
|
|
78
|
-
|
|
78
|
+
if (session.closed) return;
|
|
79
79
|
session.closed = true;
|
|
80
|
-
session.closedAt
|
|
80
|
+
session.closedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
81
81
|
terminateChild(session.input);
|
|
82
82
|
terminateChild(session.output);
|
|
83
|
-
|
|
83
|
+
wake(session);
|
|
84
84
|
}
|
|
85
85
|
function attachOutputProcessHandlers(session, outputProcess) {
|
|
86
|
-
|
|
86
|
+
const stopIfCurrent = () => {
|
|
87
87
|
if (session.output === outputProcess) stopSession(session);
|
|
88
|
-
}
|
|
89
|
-
outputProcess.on("
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
outputProcess.
|
|
93
|
-
if (session.output === outputProcess) stopSession(session);
|
|
94
|
-
});
|
|
88
|
+
};
|
|
89
|
+
outputProcess.on("exit", stopIfCurrent);
|
|
90
|
+
outputProcess.on("error", stopIfCurrent);
|
|
91
|
+
outputProcess.stdin?.on("error", stopIfCurrent);
|
|
92
|
+
outputProcess.stderr?.on("error", stopIfCurrent);
|
|
95
93
|
}
|
|
96
94
|
function startOutputProcess(command) {
|
|
97
95
|
return spawn(command.command, command.args, { stdio: [
|
|
@@ -132,9 +130,12 @@ function startCommandPair(params) {
|
|
|
132
130
|
if (session.chunks.length > 200) session.chunks.splice(0, session.chunks.length - 200);
|
|
133
131
|
wake(session);
|
|
134
132
|
});
|
|
135
|
-
|
|
133
|
+
const stop = () => stopSession(session);
|
|
134
|
+
inputProcess.on("exit", stop);
|
|
135
|
+
inputProcess.on("error", stop);
|
|
136
|
+
inputProcess.stdout?.on("error", stop);
|
|
137
|
+
inputProcess.stderr?.on("error", stop);
|
|
136
138
|
attachOutputProcessHandlers(session, outputProcess);
|
|
137
|
-
inputProcess.on("error", () => stopSession(session));
|
|
138
139
|
sessions.set(session.id, session);
|
|
139
140
|
return session;
|
|
140
141
|
}
|
|
@@ -3725,11 +3726,11 @@ var GoogleMeetRuntime = class {
|
|
|
3725
3726
|
let googleMeetCreateModulePromise = null;
|
|
3726
3727
|
let googleMeetCliModulePromise = null;
|
|
3727
3728
|
const loadGoogleMeetCreateModule = async () => {
|
|
3728
|
-
googleMeetCreateModulePromise ??= import("./create-
|
|
3729
|
+
googleMeetCreateModulePromise ??= import("./create-C0XRpM4Z.js");
|
|
3729
3730
|
return await googleMeetCreateModulePromise;
|
|
3730
3731
|
};
|
|
3731
3732
|
const loadGoogleMeetCliModule = async () => {
|
|
3732
|
-
googleMeetCliModulePromise ??= import("./cli-
|
|
3733
|
+
googleMeetCliModulePromise ??= import("./cli-Cn8kxkfr.js");
|
|
3733
3734
|
return await googleMeetCliModulePromise;
|
|
3734
3735
|
};
|
|
3735
3736
|
const googleMeetConfigSchema = {
|
|
@@ -4102,7 +4103,7 @@ async function createAndJoinMeetFromParams(params) {
|
|
|
4102
4103
|
return (await loadGoogleMeetCreateModule()).createAndJoinMeetFromParams(params);
|
|
4103
4104
|
}
|
|
4104
4105
|
async function resolveGoogleMeetTokenFromParams(config, raw) {
|
|
4105
|
-
const { resolveGoogleMeetAccessToken } = await import("./oauth-
|
|
4106
|
+
const { resolveGoogleMeetAccessToken } = await import("./oauth-DK1mwF2i.js");
|
|
4106
4107
|
return resolveGoogleMeetAccessToken({
|
|
4107
4108
|
clientId: normalizeOptionalString(raw.clientId) ?? config.oauth.clientId,
|
|
4108
4109
|
clientSecret: normalizeOptionalString(raw.clientSecret) ?? config.oauth.clientSecret,
|
|
@@ -124,25 +124,42 @@ function createGoogleMeetPkce() {
|
|
|
124
124
|
function createGoogleMeetOAuthState() {
|
|
125
125
|
return generateOAuthState();
|
|
126
126
|
}
|
|
127
|
+
function isLocalCallbackListenerError(error) {
|
|
128
|
+
if (!(error instanceof Error)) return false;
|
|
129
|
+
return error.message.includes("EADDRINUSE") || error.message.includes("port") || error.message.includes("listen");
|
|
130
|
+
}
|
|
131
|
+
async function readManualGoogleMeetAuthCode(params) {
|
|
132
|
+
const parsed = parseOAuthCallbackInput(await params.promptInput("Paste the full redirect URL here: "), {
|
|
133
|
+
missingState: "Missing 'state' parameter. Paste the full redirect URL.",
|
|
134
|
+
invalidInput: "Paste the full redirect URL, not just the code."
|
|
135
|
+
});
|
|
136
|
+
if ("error" in parsed) throw new Error(parsed.error);
|
|
137
|
+
if (parsed.state !== params.state) throw new Error("OAuth state mismatch - please try again");
|
|
138
|
+
return parsed.code;
|
|
139
|
+
}
|
|
127
140
|
async function waitForGoogleMeetAuthCode(params) {
|
|
128
141
|
params.writeLine(`Open this URL in your browser:\n\n${params.authUrl}\n`);
|
|
129
|
-
if (params.manual) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
142
|
+
if (params.manual) return await readManualGoogleMeetAuthCode({
|
|
143
|
+
state: params.state,
|
|
144
|
+
promptInput: params.promptInput
|
|
145
|
+
});
|
|
146
|
+
try {
|
|
147
|
+
return (await waitForLocalOAuthCallback({
|
|
148
|
+
expectedState: params.state,
|
|
149
|
+
timeoutMs: params.timeoutMs,
|
|
150
|
+
port: 8085,
|
|
151
|
+
callbackPath: "/oauth2callback",
|
|
152
|
+
redirectUri: GOOGLE_MEET_REDIRECT_URI,
|
|
153
|
+
successTitle: "Google Meet OAuth complete"
|
|
154
|
+
})).code;
|
|
155
|
+
} catch (error) {
|
|
156
|
+
if (!isLocalCallbackListenerError(error)) throw error;
|
|
157
|
+
params.writeLine("Local callback server failed. Switching to manual mode...");
|
|
158
|
+
return await readManualGoogleMeetAuthCode({
|
|
159
|
+
state: params.state,
|
|
160
|
+
promptInput: params.promptInput
|
|
133
161
|
});
|
|
134
|
-
if ("error" in parsed) throw new Error(parsed.error);
|
|
135
|
-
if (parsed.state !== params.state) throw new Error("OAuth state mismatch - please try again");
|
|
136
|
-
return parsed.code;
|
|
137
162
|
}
|
|
138
|
-
return (await waitForLocalOAuthCallback({
|
|
139
|
-
expectedState: params.state,
|
|
140
|
-
timeoutMs: params.timeoutMs,
|
|
141
|
-
port: 8085,
|
|
142
|
-
callbackPath: "/oauth2callback",
|
|
143
|
-
redirectUri: GOOGLE_MEET_REDIRECT_URI,
|
|
144
|
-
successTitle: "Google Meet OAuth complete"
|
|
145
|
-
})).code;
|
|
146
163
|
}
|
|
147
164
|
//#endregion
|
|
148
165
|
export { buildGoogleMeetAuthUrl, createGoogleMeetOAuthState, createGoogleMeetPkce, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode };
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/google-meet",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.33",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/google-meet",
|
|
9
|
-
"version": "2026.6.
|
|
9
|
+
"version": "2026.6.33",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"commander": "14.0.3",
|
|
12
12
|
"typebox": "1.1.39"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"openclaw": ">=2026.6.
|
|
15
|
+
"openclaw": ">=2026.6.33"
|
|
16
16
|
},
|
|
17
17
|
"peerDependenciesMeta": {
|
|
18
18
|
"openclaw": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/google-meet",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.33",
|
|
4
4
|
"description": "OpenClaw Google Meet participant plugin for joining calls through Chrome or Twilio transports.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"typebox": "1.1.39"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"openclaw": ">=2026.6.
|
|
15
|
+
"openclaw": ">=2026.6.33"
|
|
16
16
|
},
|
|
17
17
|
"peerDependenciesMeta": {
|
|
18
18
|
"openclaw": {
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"minHostVersion": ">=2026.4.20"
|
|
30
30
|
},
|
|
31
31
|
"compat": {
|
|
32
|
-
"pluginApi": ">=2026.6.
|
|
32
|
+
"pluginApi": ">=2026.6.33"
|
|
33
33
|
},
|
|
34
34
|
"build": {
|
|
35
|
-
"openclawVersion": "2026.6.
|
|
35
|
+
"openclawVersion": "2026.6.33"
|
|
36
36
|
},
|
|
37
37
|
"release": {
|
|
38
38
|
"publishToClawHub": true,
|